verben-authentication-ui 0.5.1 → 0.5.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -351,11 +351,11 @@ export class UserManagementComponent {
351
351
  }
352
352
  }
353
353
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UserManagementComponent, deps: [{ token: i1.UserManagementService }], target: i0.ɵɵFactoryTarget.Component });
354
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: UserManagementComponent, selector: "lib-user-management", viewQueries: [{ propertyName: "cardDataView", first: true, predicate: ["vdcv"], descendants: true }, { propertyName: "dataView", first: true, predicate: ["vdv"], descendants: true }], ngImport: i0, template: "<div class=\"flex flex-col gap-4 message-log-container\">\n <verben-data-view\n #vdv\n [viewState]=\"{\n isSearch: true,\n isColumn: true,\n isFilter: true,\n isSort: true,\n isExport: true,\n isSelect: true,\n isCreate: true,\n isToggle:true\n }\"\n [buttonClass]=\"'my-custom-button-class'\"\n [iconClass]=\"'my-icon-class'\"\n [activeIconClass]=\"'my-active-icon-class'\"\n [selectedColumnCount]=\"0\"\n [selectedSortCount]=\"0\"\n [selectedFilterTableCount]=\"0\"\n (viewChange)=\"onViewChange($event)\"\n (stateChange)=\"onStateChange($event)\"\n >\n <div class=\"mt-2\" table-content>\n <lib-data-table\n [data]=\"data\"\n [columns]=\"columns\"\n [styleConfig]=\"styles\"\n (selectionChange)=\"onSelectionChange($event)\"\n >\n <ng-container libColumn=\"select\">\n <ng-template #cell let-isSelected=\"isSelected\" let-toggleRowSelection=\"toggleRowSelection\">\n <input type=\"checkbox\" [checked]=\"isSelected\" (change)=\"toggleRowSelection()\" />\n </ng-template>\n <ng-template #header let-allRowsSelected=\"allRowsSelected\" let-someRowsSelected=\"someRowsSelected\"\n let-toggleAllRows=\"toggleAllRows\">\n <input type=\"checkbox\" [checked]=\"allRowsSelected()\" [indeterminate]=\"someRowsSelected()\"\n (change)=\"toggleAllRows()\" />\n </ng-template>\n </ng-container>\n <ng-container libColumn=\"createdAt\">\n <ng-template #cell let-value>\n {{ value | date }}\n </ng-template>\n </ng-container>\n <ng-container libColumn=\"actions\">\n <ng-template #cell let-value let-deleteRow >\n <div class=\"flex gap-6\">\n <verben-svg\n (click)=\"openDetailView(value)\"\n icon=\"edit\"\n [width]=\"15\"\n [height]=\"15\"\n class=\"cursor-pointer\"\n ></verben-svg>\n\n <verben-svg\n icon=\"delete\"\n [width]=\"15\"\n [height]=\"15\"\n (click)=\"deleteRow()\"\n class=\"cursor-pointer\"\n ></verben-svg>\n </div>\n </ng-template>\n <ng-template #header>\n <strong>Actions</strong>\n </ng-template>\n </ng-container>\n <ng-container libColumn=\"status\">\n <ng-template\n #cell\n let-isEditing=\"isEditing\"\n let-toggleRowEdit=\"toggleRowEdit\"\n let-deleteRow=\"deleteRow\"\n let-value=\"value\"\n >\n <verbena-badge\n borderRadius=\"20px\"\n width=\"121px\"\n text=\"{{value}}\"\n bgColor=\"#D6F3E6\"\n textColor=\"#2DB76F\"\n pd=\"5px 15px\"\n fontSize=\"16px\"\n >\n\n\n </verbena-badge>\n </ng-template>\n </ng-container>\n\n </lib-data-table>\n </div>\n <div card-content>\n <verben-card-data-view\n borderRadius=\"12px\"\n (loadMoreClick)=\"loadMore()\"\n #vdcv\n dataId=\"MailAddress\"\n border=\"5px\"\n [cardDataList]=\"cardData\"\n rbgColor=\"#f5f6f9\"\n mg=\"0px\"\n class=\"gap-1\"\n >\n <verben-left-card-data-view class=\"m-0 gap-2\" >\n <verben-left-card-data\n #vlcd\n [parent]=\"vdcv\"\n dataId=\"MailAddress\"\n class=\"bg-secondary-100 rounded-xl scroll-no border-primary border-[1px] gap-1 h-full justify-pp m-0 overflow-y-auto overflow-hidden\"\n [cardDataList]=\"cardData\"\n\n >\n <ng-template #card let-item>\n <div (click)=\"currentData = vdcv.onItemClick(item)\" class=\"flex\">\n <verben-svg\n [width]=\"15\"\n [height]=\"15\"\n (click)=\"vlcd.showChildren(item)\"\n [ngClass]=\"vlcd.showToggle(item) ? 'visible' : 'invisible'\"\n class=\"items-center flex cursor-pointer\"\n [icon]=\"item.isChildrenExpanded ? 'minus' : 'plus'\"\n />\n <div\n (click)=\"currentData = vdcv.onItemClick(item)\"\n class=\"flex cursor-pointer bg-secondary rounded-xl overflow-hidden w-[329px] !max-w-[329px]\"\n >\n <div\n class=\"w-2 rounded-xl rounded-tr-none rounded-br-none overflow-hidden\"\n [ngClass]=\"\n item.selected ? 'bg-primary' : 'bg-secondary-200'\n \"\n ></div>\n <div class=\"flex flex-col w-full \">\n <div class=\" grid grid-cols-5 items-center\">\n <div class=\" col-span-3\">\n <span class=\"font-semibold text-[16px] text-[#404040]\">{{\n item.title\n }}</span>\n <p class=\"flex items-center\">\n <label for=\"phone\" class=\"text-[10px] font-light\"\n >Phone Number:</label\n >\n <span id=\"phone\" class=\"text-[13px] font-medium truncate text-wrap\">{{\n item.data.PhoneNumber\n }}</span>\n </p>\n </div>\n\n <div class=\" col-span-2 \">\n <p class=\"grid\">\n <label for=\"phone\" class=\"text-[10px] font-light\"\n >Role</label\n >\n <span id=\"phone\" class=\"text-sm font-medium\"\n >Manager</span\n >\n <span class=\" bg-[#CAE1CC] text-center text-[#4ABB54] text-[13px] mt-[8px] rounded-[9px]\">\n {{item.data.Status}}\n </span>\n </p>\n <!-- <lib-user-access-request-status-badge\n [status]=\"item.data.Status\"\n ></lib-user-access-request-status-badge> -->\n </div>\n </div>\n\n <!-- <div class=\"flex\">\n <span class=\"font-normal text-sm\">{{ item.title }}</span>\n </div>\n @for (ciItem of item.body; track ciItem.value) {\n <div class=\"\">\n <span class=\"text-muted font-light text-xs\"\n >{{ ciItem.title }}:</span\n >\n <span class=\"text-black\">{{ ciItem.value }}</span>\n </div>\n } -->\n </div>\n </div>\n </div>\n </ng-template>\n </verben-left-card-data>\n </verben-left-card-data-view>\n\n <verben-right-card-data-view>\n <ng-template #parent>\n <div class=\" bg-secondary-100 py-10 flex flex-col gap-20 px-9\">\n <lib-user-request-form\n [currentData]=\"currentData\"\n (switchView)=\"vdv.toggleView()\"\n ></lib-user-request-form>\n <div class=\"flex justify-between bottom-8 left-0 right-0 p-3\">\n <verbena-button text=\"Delete\" bgColor=\"#999999\" textColor=\"white\"\n border=\"1px solid #999999\"></verbena-button>\n <div class=\"flex gap-3\">\n <verbena-button (click)=\"vdv.toggleView()\" text=\"Switch To Table\"\n styleType=\"ylw-outline\"></verbena-button>\n <verbena-button text=\"Save\" bgColor=\"#FFE681\" textColor=\"#404040\"\n border=\"1px solid #FFE681\">\n <!-- (click)=\"\" -->\n </verbena-button>\n </div>\n </div>\n </div>\n </ng-template>\n </verben-right-card-data-view>\n\n <verben-card-data-view-footer class=\"float-right\">\n <div class=\"flex gap-2\">\n <span class=\"paginator-text\"\n >{{ cardData.length }} records loaded</span\n >\n <button (click)=\"loadMore()\" class=\"load-more\">Load more</button>\n </div>\n </verben-card-data-view-footer>\n </verben-card-data-view>\n </div>\n <div column-content>\n <verben-visible-column\n (columnsUpdated)=\"onColumnsUpdated($event)\"\n [border]=\"'1px solid rgba(212, 160, 7, 1)'\"\n borderRadius=\"10px\"\n boxShadow=\"2px 2px 2px 0px silver\"\n bgColor=\"white\"\n width=\"400px\"\n textColor=\"black\"\n pd=\"1rem\"\n primaryColor=\"#FFE681\"\n secondaryColor=\"#3479E9\"\n [columns]=\"visibleColumns\"\n [displayedColumns]=\"5\"\n ></verben-visible-column>\n </div>\n <div filter-content>\n <verben-table-filter\n [border]=\"'1px solid rgba(212, 160, 7, 1)'\"\n borderRadius=\"10px\"\n boxShadow=\"2px 2px 2px 0px silver\"\n bgColor=\"white\"\n width=\"420px\"\n textColor=\"black\"\n pd=\"1rem\"\n primaryColor=\"#FFE681\"\n secondaryColor=\"#3479E9\"\n tertiaryColor=\"#404040\"\n [filterOptions]=\"filterArray\"\n [maxFilterLength]=\"3\"\n ></verben-table-filter>\n </div>\n <div sort-content>\n <verben-sort-table\n (selectedOptions)=\"onSortUpdated($event)\"\n [border]=\"'1px solid rgba(212, 160, 7, 1)'\"\n borderRadius=\"10px\"\n boxShadow=\"2px 2px 2px 0px silver\"\n bgColor=\"white\"\n width=\"400px\"\n textColor=\"black\"\n pd=\"1rem\"\n primaryColor=\"#FFE681\"\n secondaryColor=\"#3479E9\"\n tertiaryColor=\"#404040\"\n [enableDragAndDrop]=\"true\"\n [sortOptions]=\"sortOptions\"\n ></verben-sort-table>\n </div>\n <div export-content>\n <lib-data-export [data]=\"data\" (exportDataEvent)=\"handleExport($event)\">\n </lib-data-export>\n </div>\n </verben-data-view>\n <div *ngIf=\"!vdcv.hasCurrentItem() && this.cardContextHistory.length == 0\"\n class=\"message-log-button-container flex justify-between\">\n <verbena-button [fontWeight]=\"'bold'\" [bgColor]=\"'#8E8D87'\" [borderRadius]=\"'4px'\" [textColor]=\"'#fff'\"\n [text]=\"'Delete'\">\n </verbena-button>\n </div>\n</div>\n", styles: ["*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:currentColor}:before,:after{--tw-content: \"\"}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",Segoe UI Symbol,\"Noto Color Emoji\";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.visible{visibility:visible}.invisible{visibility:hidden}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.bottom-8{bottom:2rem}.left-0{left:0}.right-0{right:0}.col-span-2{grid-column:span 2 / span 2}.col-span-3{grid-column:span 3 / span 3}.float-right{float:right}.m-0{margin:0}.my-0{margin-top:0;margin-bottom:0}.my-2{margin-top:.5rem;margin-bottom:.5rem}.mb-0{margin-bottom:0}.mb-2{margin-bottom:.5rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mt-\\[8px\\]{margin-top:8px}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.h-\\[100\\%\\]{height:100%}.h-\\[max-content\\]{height:-moz-max-content;height:max-content}.h-full{height:100%}.min-h-\\[50px\\]{min-height:50px}.w-2{width:.5rem}.w-3{width:.75rem}.w-\\[329px\\]{width:329px}.w-full{width:100%}.\\!max-w-\\[329px\\]{max-width:329px!important}.flex-1{flex:1 1 0%}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.flex-col{flex-direction:column}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-20{gap:5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-6{gap:1.5rem}.gap-\\[1\\.5vw\\]{gap:1.5vw}.gap-y-2{row-gap:.5rem}.space-x-8>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(2rem * var(--tw-space-x-reverse));margin-left:calc(2rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-7>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.75rem * var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem * var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-wrap{text-wrap:wrap}.break-all{word-break:break-all}.rounded-\\[9px\\]{border-radius:9px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-xl{border-radius:.75rem}.rounded-br-none{border-bottom-right-radius:0}.rounded-tr-none{border-top-right-radius:0}.border,.border-\\[1px\\]{border-width:1px}.border-primary{--tw-border-opacity: 1;border-color:rgb(212 160 7 / var(--tw-border-opacity, 1))}.border-secondary-200{border-color:#d7dbe6}.bg-\\[\\#CAE1CC\\]{--tw-bg-opacity: 1;background-color:rgb(202 225 204 / var(--tw-bg-opacity, 1))}.bg-primary{--tw-bg-opacity: 1;background-color:rgb(212 160 7 / var(--tw-bg-opacity, 1))}.bg-secondary{--tw-bg-opacity: 1;background-color:rgb(232 234 241 / var(--tw-bg-opacity, 1))}.bg-secondary-100{--tw-bg-opacity: 1;background-color:rgb(245 246 249 / var(--tw-bg-opacity, 1))}.bg-secondary-200{background-color:#d7dbe6}.p-3{padding:.75rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-9{padding-left:2.25rem;padding-right:2.25rem}.py-10{padding-top:2.5rem;padding-bottom:2.5rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.pb-2{padding-bottom:.5rem}.pb-3{padding-bottom:.75rem}.pr-1{padding-right:.25rem}.text-center{text-align:center}.\\!text-\\[10px\\]{font-size:10px!important}.text-\\[10px\\]{font-size:10px}.text-\\[12px\\]{font-size:12px}.text-\\[13px\\]{font-size:13px}.text-\\[16px\\]{font-size:16px}.text-\\[22px\\]{font-size:22px}.text-\\[24px\\]{font-size:24px}.text-\\[2rem\\]{font-size:2rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-light{font-weight:300}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.lowercase{text-transform:lowercase}.leading-6{line-height:1.5rem}.leading-\\[12\\.1px\\]{line-height:12.1px}.leading-\\[16\\.6px\\]{line-height:16.6px}.leading-\\[19\\.5px\\]{line-height:19.5px}.leading-\\[29\\.05px\\]{line-height:29.05px}.leading-\\[33px\\]{line-height:33px}.leading-\\[48px\\]{line-height:48px}.text-\\[\\#333\\]{--tw-text-opacity: 1;color:rgb(51 51 51 / var(--tw-text-opacity, 1))}.text-\\[\\#3479E9\\]{--tw-text-opacity: 1;color:rgb(52 121 233 / var(--tw-text-opacity, 1))}.text-\\[\\#404040\\]{--tw-text-opacity: 1;color:rgb(64 64 64 / var(--tw-text-opacity, 1))}.text-\\[\\#4ABB54\\]{--tw-text-opacity: 1;color:rgb(74 187 84 / var(--tw-text-opacity, 1))}.text-\\[black\\]{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity, 1))}.text-muted{color:#0009}.underline{text-decoration-line:underline}.outline-none{outline:2px solid transparent;outline-offset:2px}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.master-only-contanier{margin-top:0!important}.scroll-no::-webkit-scrollbar{width:4px}.scroll-no::-webkit-scrollbar-thumb{background:gray}.justify-pp{justify-content:start!important;margin-top:0!important}.toolbar{margin:0!important}@media screen and (max-width: 1024px){.scroll-no{padding:5px}}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.DataTableComponent, selector: "lib-data-table", inputs: ["data", "columns", "groupBy", "styleConfig"], outputs: ["rowEdit", "rowSave", "rowDelete", "selectionChange"] }, { kind: "directive", type: i3.ColumnDirective, selector: "[libColumn]", inputs: ["libColumn"] }, { kind: "component", type: i3.SvgComponent, selector: "verben-svg", inputs: ["icon", "width", "height", "fill", "stroke", "size"] }, { kind: "component", type: i3.DataViewComponent, selector: "verben-data-view", inputs: ["buttonClass", "iconClass", "activeIconClass", "columnCustomClass", "filterCustomClass", "sortCustomClass", "exportCustomClass", "selectCustomClass", "zIndex", "createCustomClass", "tableIcon", "cardIcon", "cardClass", "tableClass", "searchKey", "searchValue", "viewState", "searchTemplate", "columnTemplate", "filterTemplate", "sortTemplate", "children", "exportTemplate", "createTemplate", "selectedColumnCount", "selectedSortCount", "selectedFilterTableCount", "inputWidth", "showColumnChild", "showSortChild", "showFilterChild", "showExportChild", "create", "showSelected", "isTableView"], outputs: ["viewChange", "stateChange", "onSearchChange"] }, { kind: "component", type: i3.CardDataViewComponent, selector: "verben-card-data-view", inputs: ["pd", "mg", "lHeight", "rHeight", "rWidth", "lWidth", "textColor", "lbgColor", "rbgColor", "border", "display", "borderRadius", "activeCss", "inActiveCss", "displayAsRow", "cardDataList", "dataId", "totalRecords", "footer", "noOfVisibleChildren", "onItemClick", "onCardChildClick"], outputs: ["loadMoreClick"] }, { kind: "component", type: i3.LeftCardDataComponent, selector: "verben-left-card-data", inputs: ["pd", "mg", "height", "weight", "activeCss", "inActiveCss", "cardDataList", "iconCollapse", "iconExpanded", "parent", "dataId"] }, { kind: "component", type: i3.LeftCardDataViewComponent, selector: "verben-left-card-data-view", inputs: ["cardDataList"] }, { kind: "component", type: i3.RightCardDataViewComponent, selector: "verben-right-card-data-view", inputs: ["parentData", "chilData", "meth"] }, { kind: "component", type: i3.CardDataViewFooterComponent, selector: "verben-card-data-view-footer" }, { kind: "component", type: i3.SortTableComponent, selector: "verben-sort-table", inputs: ["enableDragAndDrop", "sortOptions", "resetText", "displayedOptions", "propertyText", "showMoreText", "sortButtonText", "pd", "mg", "height", "width", "bgColor", "boxShadow", "textColor", "primaryColor", "secondaryColor", "tertiaryColor", "border", "borderRadius", "selectWidth", "containerHeight"], outputs: ["selectedOptions"] }, { kind: "component", type: i3.VisibleColumnComponent, selector: "verben-visible-column", inputs: ["columns", "items", "enableDragAndDrop", "displayedColumns", "showMore", "pd", "mg", "height", "width", "bgColor", "boxShadow", "textColor", "primaryColor", "secondaryColor", "tertiaryColor", "border", "borderRadius", "selectWidth", "closeColumn"], outputs: ["columnsUpdated"] }, { kind: "component", type: i3.TableFilterComponent, selector: "verben-table-filter", inputs: ["filterOptions", "pd", "mg", "height", "width", "bgColor", "boxShadow", "textColor", "primaryColor", "secondaryColor", "tertiaryColor", "border", "borderRadius", "selectWidth", "maxFilterLength", "tooltip"], outputs: ["filtersApplied"] }, { kind: "component", type: i3.DataExportComponent, selector: "lib-data-export", inputs: ["data"], outputs: ["exportDataEvent"] }, { kind: "component", type: i3.VerbenaButtonComponent, selector: "verbena-button", inputs: ["text", "icon", "svgPosition", "bgColor", "textColor", "border", "borderRadius", "pd", "width", "height", "fontSize", "fontWeight", "disable", "styleType", "svg", "svgWidth", "svgHeight", "svgColor", "buttonClass", "buttonTextClass", "isLoading", "spinnerSize", "spinnerColor"] }, { kind: "component", type: i3.VerbenaBadgeComponent, selector: "verbena-badge", inputs: ["text", "bgColor", "textColor", "borderRadius", "pd", "fontSize", "width", "height"] }, { kind: "component", type: i4.UserManagementFormComponent, selector: "lib-user-request-form", inputs: ["currentData"], outputs: ["switchView"] }, { kind: "pipe", type: i2.DatePipe, name: "date" }] });
354
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: UserManagementComponent, selector: "lib-user-management", viewQueries: [{ propertyName: "cardDataView", first: true, predicate: ["vdcv"], descendants: true }, { propertyName: "dataView", first: true, predicate: ["vdv"], descendants: true }], ngImport: i0, template: "<div class=\"flex flex-col gap-4 message-log-container\">\n <verben-data-view\n #vdv\n [viewState]=\"{\n isSearch: true,\n isColumn: true,\n isFilter: true,\n isSort: true,\n isExport: true,\n isSelect: true,\n isCreate: true,\n isToggle:true\n }\"\n [buttonClass]=\"'my-custom-button-class'\"\n [iconClass]=\"'my-icon-class'\"\n [activeIconClass]=\"'my-active-icon-class'\"\n [selectedColumnCount]=\"0\"\n [selectedSortCount]=\"0\"\n [selectedFilterTableCount]=\"0\"\n (viewChange)=\"onViewChange($event)\"\n (stateChange)=\"onStateChange($event)\"\n >\n <div class=\"mt-2\" table-content>\n <lib-data-table\n [data]=\"data\"\n [columns]=\"columns\"\n [styleConfig]=\"styles\"\n (selectionChange)=\"onSelectionChange($event)\"\n >\n <ng-container libColumn=\"select\">\n <ng-template #cell let-isSelected=\"isSelected\" let-toggleRowSelection=\"toggleRowSelection\">\n <input type=\"checkbox\" [checked]=\"isSelected\" (change)=\"toggleRowSelection()\" />\n </ng-template>\n <ng-template #header let-allRowsSelected=\"allRowsSelected\" let-someRowsSelected=\"someRowsSelected\"\n let-toggleAllRows=\"toggleAllRows\">\n <input type=\"checkbox\" [checked]=\"allRowsSelected()\" [indeterminate]=\"someRowsSelected()\"\n (change)=\"toggleAllRows()\" />\n </ng-template>\n </ng-container>\n <ng-container libColumn=\"createdAt\">\n <ng-template #cell let-value>\n {{ value | date }}\n </ng-template>\n </ng-container>\n <ng-container libColumn=\"actions\">\n <ng-template #cell let-value let-deleteRow >\n <div class=\"flex gap-6\">\n <verben-svg\n (click)=\"openDetailView(value)\"\n icon=\"edit\"\n [width]=\"15\"\n [height]=\"15\"\n class=\"cursor-pointer\"\n ></verben-svg>\n\n <verben-svg\n icon=\"delete\"\n [width]=\"15\"\n [height]=\"15\"\n (click)=\"deleteRow()\"\n class=\"cursor-pointer\"\n ></verben-svg>\n </div>\n </ng-template>\n <ng-template #header>\n <strong>Actions</strong>\n </ng-template>\n </ng-container>\n <ng-container libColumn=\"status\">\n <ng-template\n #cell\n let-isEditing=\"isEditing\"\n let-toggleRowEdit=\"toggleRowEdit\"\n let-deleteRow=\"deleteRow\"\n let-value=\"value\"\n >\n <verbena-badge\n borderRadius=\"20px\"\n width=\"121px\"\n text=\"{{value}}\"\n bgColor=\"#D6F3E6\"\n textColor=\"#2DB76F\"\n pd=\"5px 15px\"\n fontSize=\"16px\"\n >\n\n\n </verbena-badge>\n </ng-template>\n </ng-container>\n\n </lib-data-table>\n </div>\n <div card-content>\n <verben-card-data-view\n borderRadius=\"12px\"\n (loadMoreClick)=\"loadMore()\"\n #vdcv\n dataId=\"MailAddress\"\n border=\"5px\"\n [cardDataList]=\"cardData\"\n rbgColor=\"#f5f6f9\"\n mg=\"0px\"\n class=\"gap-1\"\n >\n <verben-left-card-data-view class=\"m-0 gap-2\" >\n <verben-left-card-data\n #vlcd\n [parent]=\"vdcv\"\n dataId=\"MailAddress\"\n class=\"bg-secondary-100 rounded-xl scroll-no border-primary border-[1px] gap-1 h-full justify-pp m-0 overflow-y-auto overflow-hidden\"\n [cardDataList]=\"cardData\"\n\n >\n <ng-template #card let-item>\n <div (click)=\"currentData = vdcv.onItemClick(item)\" class=\"flex\">\n <verben-svg\n [width]=\"15\"\n [height]=\"15\"\n (click)=\"vlcd.showChildren(item)\"\n [ngClass]=\"vlcd.showToggle(item) ? 'visible' : 'invisible'\"\n class=\"items-center flex cursor-pointer\"\n [icon]=\"item.isChildrenExpanded ? 'minus' : 'plus'\"\n />\n <div\n (click)=\"currentData = vdcv.onItemClick(item)\"\n class=\"flex cursor-pointer bg-secondary rounded-xl overflow-hidden w-[329px] !max-w-[329px]\"\n >\n <div\n class=\"w-2 rounded-xl rounded-tr-none rounded-br-none overflow-hidden\"\n [ngClass]=\"\n item.selected ? 'bg-primary' : 'bg-secondary-200'\n \"\n ></div>\n <div class=\"flex flex-col w-full \">\n <div class=\" grid grid-cols-5 items-center pl-6 py-3 pr-1\">\n <div class=\" col-span-3\">\n <span class=\"font-semibold text-[16px] text-[#404040]\">{{\n item.title\n }}</span>\n <p class=\"flex items-center\">\n <label for=\"phone\" class=\"text-[10px] font-light\"\n >Phone Number:</label\n >\n <span id=\"phone\" class=\"text-[13px] font-medium truncate text-wrap\">{{\n item.data.PhoneNumber\n }}</span>\n </p>\n </div>\n\n <div class=\" col-span-2 \">\n <p class=\"grid\">\n <label for=\"phone\" class=\"text-[10px] font-light\"\n >Role</label\n >\n <span id=\"phone\" class=\"text-sm font-medium\"\n >Manager</span\n >\n <span class=\" bg-[#CAE1CC] text-center text-[#4ABB54] text-[13px] mt-[8px] rounded-[9px]\">\n {{item.data.Status}}\n </span>\n </p>\n <!-- <lib-user-access-request-status-badge\n [status]=\"item.data.Status\"\n ></lib-user-access-request-status-badge> -->\n </div>\n </div>\n\n <!-- <div class=\"flex\">\n <span class=\"font-normal text-sm\">{{ item.title }}</span>\n </div>\n @for (ciItem of item.body; track ciItem.value) {\n <div class=\"\">\n <span class=\"text-muted font-light text-xs\"\n >{{ ciItem.title }}:</span\n >\n <span class=\"text-black\">{{ ciItem.value }}</span>\n </div>\n } -->\n </div>\n </div>\n </div>\n </ng-template>\n </verben-left-card-data>\n </verben-left-card-data-view>\n\n <verben-right-card-data-view>\n <ng-template #parent>\n <div class=\" bg-secondary-100 py-10 flex flex-col gap-20 px-9\">\n <lib-user-request-form\n [currentData]=\"currentData\"\n (switchView)=\"vdv.toggleView()\"\n ></lib-user-request-form>\n <div class=\"flex justify-between bottom-8 left-0 right-0 p-3\">\n <verbena-button text=\"Delete\" bgColor=\"#999999\" textColor=\"white\"\n border=\"1px solid #999999\"></verbena-button>\n <div class=\"flex gap-3\">\n <verbena-button (click)=\"vdv.toggleView()\" text=\"Switch To Table\"\n styleType=\"ylw-outline\"></verbena-button>\n <verbena-button text=\"Save\" bgColor=\"#FFE681\" textColor=\"#404040\"\n border=\"1px solid #FFE681\">\n <!-- (click)=\"\" -->\n </verbena-button>\n </div>\n </div>\n </div>\n </ng-template>\n </verben-right-card-data-view>\n\n <verben-card-data-view-footer class=\"float-right\">\n <div class=\"flex gap-2\">\n <span class=\"paginator-text\"\n >{{ cardData.length }} records loaded</span\n >\n <button (click)=\"loadMore()\" class=\"load-more\">Load more</button>\n </div>\n </verben-card-data-view-footer>\n </verben-card-data-view>\n </div>\n <div column-content>\n <verben-visible-column\n (columnsUpdated)=\"onColumnsUpdated($event)\"\n [border]=\"'1px solid rgba(212, 160, 7, 1)'\"\n borderRadius=\"10px\"\n boxShadow=\"2px 2px 2px 0px silver\"\n bgColor=\"white\"\n width=\"400px\"\n textColor=\"black\"\n pd=\"1rem\"\n primaryColor=\"#FFE681\"\n secondaryColor=\"#3479E9\"\n [columns]=\"visibleColumns\"\n [displayedColumns]=\"5\"\n ></verben-visible-column>\n </div>\n <div filter-content>\n <verben-table-filter\n [border]=\"'1px solid rgba(212, 160, 7, 1)'\"\n borderRadius=\"10px\"\n boxShadow=\"2px 2px 2px 0px silver\"\n bgColor=\"white\"\n width=\"420px\"\n textColor=\"black\"\n pd=\"1rem\"\n primaryColor=\"#FFE681\"\n secondaryColor=\"#3479E9\"\n tertiaryColor=\"#404040\"\n [filterOptions]=\"filterArray\"\n [maxFilterLength]=\"3\"\n ></verben-table-filter>\n </div>\n <div sort-content>\n <verben-sort-table\n (selectedOptions)=\"onSortUpdated($event)\"\n [border]=\"'1px solid rgba(212, 160, 7, 1)'\"\n borderRadius=\"10px\"\n boxShadow=\"2px 2px 2px 0px silver\"\n bgColor=\"white\"\n width=\"400px\"\n textColor=\"black\"\n pd=\"1rem\"\n primaryColor=\"#FFE681\"\n secondaryColor=\"#3479E9\"\n tertiaryColor=\"#404040\"\n [enableDragAndDrop]=\"true\"\n [sortOptions]=\"sortOptions\"\n ></verben-sort-table>\n </div>\n <div export-content>\n <lib-data-export [data]=\"data\" (exportDataEvent)=\"handleExport($event)\">\n </lib-data-export>\n </div>\n </verben-data-view>\n <div *ngIf=\"!vdcv.hasCurrentItem() && this.cardContextHistory.length == 0\"\n class=\"message-log-button-container flex justify-between\">\n <verbena-button [fontWeight]=\"'bold'\" [bgColor]=\"'#8E8D87'\" [borderRadius]=\"'4px'\" [textColor]=\"'#fff'\"\n [text]=\"'Delete'\">\n </verbena-button>\n </div>\n</div>\n", styles: ["*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:currentColor}:before,:after{--tw-content: \"\"}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",Segoe UI Symbol,\"Noto Color Emoji\";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.visible{visibility:visible}.invisible{visibility:hidden}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.bottom-8{bottom:2rem}.left-0{left:0}.right-0{right:0}.col-span-2{grid-column:span 2 / span 2}.col-span-3{grid-column:span 3 / span 3}.float-right{float:right}.m-0{margin:0}.my-0{margin-top:0;margin-bottom:0}.my-2{margin-top:.5rem;margin-bottom:.5rem}.mb-0{margin-bottom:0}.mb-2{margin-bottom:.5rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mt-\\[8px\\]{margin-top:8px}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.h-\\[100\\%\\]{height:100%}.h-\\[max-content\\]{height:-moz-max-content;height:max-content}.h-full{height:100%}.min-h-\\[50px\\]{min-height:50px}.w-2{width:.5rem}.w-3{width:.75rem}.w-\\[329px\\]{width:329px}.w-full{width:100%}.\\!max-w-\\[329px\\]{max-width:329px!important}.flex-1{flex:1 1 0%}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.flex-col{flex-direction:column}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-20{gap:5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-6{gap:1.5rem}.gap-\\[1\\.5vw\\]{gap:1.5vw}.gap-y-2{row-gap:.5rem}.space-x-8>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(2rem * var(--tw-space-x-reverse));margin-left:calc(2rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-7>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.75rem * var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem * var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-wrap{text-wrap:wrap}.break-all{word-break:break-all}.rounded-\\[9px\\]{border-radius:9px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-xl{border-radius:.75rem}.rounded-br-none{border-bottom-right-radius:0}.rounded-tr-none{border-top-right-radius:0}.border,.border-\\[1px\\]{border-width:1px}.border-primary{--tw-border-opacity: 1;border-color:rgb(212 160 7 / var(--tw-border-opacity, 1))}.border-secondary-200{border-color:#d7dbe6}.bg-\\[\\#CAE1CC\\]{--tw-bg-opacity: 1;background-color:rgb(202 225 204 / var(--tw-bg-opacity, 1))}.bg-primary{--tw-bg-opacity: 1;background-color:rgb(212 160 7 / var(--tw-bg-opacity, 1))}.bg-secondary{--tw-bg-opacity: 1;background-color:rgb(232 234 241 / var(--tw-bg-opacity, 1))}.bg-secondary-100{--tw-bg-opacity: 1;background-color:rgb(245 246 249 / var(--tw-bg-opacity, 1))}.bg-secondary-200{background-color:#d7dbe6}.p-3{padding:.75rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-9{padding-left:2.25rem;padding-right:2.25rem}.py-10{padding-top:2.5rem;padding-bottom:2.5rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.pb-2{padding-bottom:.5rem}.pb-3{padding-bottom:.75rem}.pl-6{padding-left:1.5rem}.pr-1{padding-right:.25rem}.text-center{text-align:center}.\\!text-\\[10px\\]{font-size:10px!important}.text-\\[10px\\]{font-size:10px}.text-\\[12px\\]{font-size:12px}.text-\\[13px\\]{font-size:13px}.text-\\[16px\\]{font-size:16px}.text-\\[22px\\]{font-size:22px}.text-\\[24px\\]{font-size:24px}.text-\\[2rem\\]{font-size:2rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-light{font-weight:300}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.lowercase{text-transform:lowercase}.leading-6{line-height:1.5rem}.leading-\\[12\\.1px\\]{line-height:12.1px}.leading-\\[16\\.6px\\]{line-height:16.6px}.leading-\\[19\\.5px\\]{line-height:19.5px}.leading-\\[29\\.05px\\]{line-height:29.05px}.leading-\\[33px\\]{line-height:33px}.leading-\\[48px\\]{line-height:48px}.text-\\[\\#333\\]{--tw-text-opacity: 1;color:rgb(51 51 51 / var(--tw-text-opacity, 1))}.text-\\[\\#3479E9\\]{--tw-text-opacity: 1;color:rgb(52 121 233 / var(--tw-text-opacity, 1))}.text-\\[\\#404040\\]{--tw-text-opacity: 1;color:rgb(64 64 64 / var(--tw-text-opacity, 1))}.text-\\[\\#4ABB54\\]{--tw-text-opacity: 1;color:rgb(74 187 84 / var(--tw-text-opacity, 1))}.text-\\[black\\]{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity, 1))}.text-muted{color:#0009}.underline{text-decoration-line:underline}.outline-none{outline:2px solid transparent;outline-offset:2px}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.master-only-contanier{margin-top:0!important}.scroll-no::-webkit-scrollbar{width:4px}.scroll-no::-webkit-scrollbar-thumb{background:gray}.justify-pp{justify-content:start!important;margin-top:0!important}.toolbar{margin:0!important}@media screen and (max-width: 1024px){.scroll-no{padding:5px}}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.DataTableComponent, selector: "lib-data-table", inputs: ["data", "columns", "groupBy", "styleConfig"], outputs: ["rowEdit", "rowSave", "rowDelete", "selectionChange"] }, { kind: "directive", type: i3.ColumnDirective, selector: "[libColumn]", inputs: ["libColumn"] }, { kind: "component", type: i3.SvgComponent, selector: "verben-svg", inputs: ["icon", "width", "height", "fill", "stroke", "size"] }, { kind: "component", type: i3.DataViewComponent, selector: "verben-data-view", inputs: ["buttonClass", "iconClass", "activeIconClass", "columnCustomClass", "filterCustomClass", "sortCustomClass", "exportCustomClass", "selectCustomClass", "zIndex", "createCustomClass", "tableIcon", "cardIcon", "cardClass", "tableClass", "searchKey", "searchValue", "viewState", "searchTemplate", "columnTemplate", "filterTemplate", "sortTemplate", "children", "exportTemplate", "createTemplate", "selectedColumnCount", "selectedSortCount", "selectedFilterTableCount", "inputWidth", "showColumnChild", "showSortChild", "showFilterChild", "showExportChild", "create", "showSelected", "isTableView"], outputs: ["viewChange", "stateChange", "onSearchChange"] }, { kind: "component", type: i3.CardDataViewComponent, selector: "verben-card-data-view", inputs: ["pd", "mg", "lHeight", "rHeight", "rWidth", "lWidth", "textColor", "lbgColor", "rbgColor", "border", "display", "borderRadius", "activeCss", "inActiveCss", "displayAsRow", "cardDataList", "dataId", "totalRecords", "footer", "noOfVisibleChildren", "onItemClick", "onCardChildClick"], outputs: ["loadMoreClick"] }, { kind: "component", type: i3.LeftCardDataComponent, selector: "verben-left-card-data", inputs: ["pd", "mg", "height", "weight", "activeCss", "inActiveCss", "cardDataList", "iconCollapse", "iconExpanded", "parent", "dataId"] }, { kind: "component", type: i3.LeftCardDataViewComponent, selector: "verben-left-card-data-view", inputs: ["cardDataList"] }, { kind: "component", type: i3.RightCardDataViewComponent, selector: "verben-right-card-data-view", inputs: ["parentData", "chilData", "meth"] }, { kind: "component", type: i3.CardDataViewFooterComponent, selector: "verben-card-data-view-footer" }, { kind: "component", type: i3.SortTableComponent, selector: "verben-sort-table", inputs: ["enableDragAndDrop", "sortOptions", "resetText", "displayedOptions", "propertyText", "showMoreText", "sortButtonText", "pd", "mg", "height", "width", "bgColor", "boxShadow", "textColor", "primaryColor", "secondaryColor", "tertiaryColor", "border", "borderRadius", "selectWidth", "containerHeight"], outputs: ["selectedOptions"] }, { kind: "component", type: i3.VisibleColumnComponent, selector: "verben-visible-column", inputs: ["columns", "items", "enableDragAndDrop", "displayedColumns", "showMore", "pd", "mg", "height", "width", "bgColor", "boxShadow", "textColor", "primaryColor", "secondaryColor", "tertiaryColor", "border", "borderRadius", "selectWidth", "closeColumn"], outputs: ["columnsUpdated"] }, { kind: "component", type: i3.TableFilterComponent, selector: "verben-table-filter", inputs: ["filterOptions", "pd", "mg", "height", "width", "bgColor", "boxShadow", "textColor", "primaryColor", "secondaryColor", "tertiaryColor", "border", "borderRadius", "selectWidth", "maxFilterLength", "tooltip"], outputs: ["filtersApplied"] }, { kind: "component", type: i3.DataExportComponent, selector: "lib-data-export", inputs: ["data"], outputs: ["exportDataEvent"] }, { kind: "component", type: i3.VerbenaButtonComponent, selector: "verbena-button", inputs: ["text", "icon", "svgPosition", "bgColor", "textColor", "border", "borderRadius", "pd", "width", "height", "fontSize", "fontWeight", "disable", "styleType", "svg", "svgWidth", "svgHeight", "svgColor", "buttonClass", "buttonTextClass", "isLoading", "spinnerSize", "spinnerColor"] }, { kind: "component", type: i3.VerbenaBadgeComponent, selector: "verbena-badge", inputs: ["text", "bgColor", "textColor", "borderRadius", "pd", "fontSize", "width", "height"] }, { kind: "component", type: i4.UserManagementFormComponent, selector: "lib-user-request-form", inputs: ["currentData"], outputs: ["switchView"] }, { kind: "pipe", type: i2.DatePipe, name: "date" }] });
355
355
  }
356
356
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UserManagementComponent, decorators: [{
357
357
  type: Component,
358
- args: [{ selector: 'lib-user-management', template: "<div class=\"flex flex-col gap-4 message-log-container\">\n <verben-data-view\n #vdv\n [viewState]=\"{\n isSearch: true,\n isColumn: true,\n isFilter: true,\n isSort: true,\n isExport: true,\n isSelect: true,\n isCreate: true,\n isToggle:true\n }\"\n [buttonClass]=\"'my-custom-button-class'\"\n [iconClass]=\"'my-icon-class'\"\n [activeIconClass]=\"'my-active-icon-class'\"\n [selectedColumnCount]=\"0\"\n [selectedSortCount]=\"0\"\n [selectedFilterTableCount]=\"0\"\n (viewChange)=\"onViewChange($event)\"\n (stateChange)=\"onStateChange($event)\"\n >\n <div class=\"mt-2\" table-content>\n <lib-data-table\n [data]=\"data\"\n [columns]=\"columns\"\n [styleConfig]=\"styles\"\n (selectionChange)=\"onSelectionChange($event)\"\n >\n <ng-container libColumn=\"select\">\n <ng-template #cell let-isSelected=\"isSelected\" let-toggleRowSelection=\"toggleRowSelection\">\n <input type=\"checkbox\" [checked]=\"isSelected\" (change)=\"toggleRowSelection()\" />\n </ng-template>\n <ng-template #header let-allRowsSelected=\"allRowsSelected\" let-someRowsSelected=\"someRowsSelected\"\n let-toggleAllRows=\"toggleAllRows\">\n <input type=\"checkbox\" [checked]=\"allRowsSelected()\" [indeterminate]=\"someRowsSelected()\"\n (change)=\"toggleAllRows()\" />\n </ng-template>\n </ng-container>\n <ng-container libColumn=\"createdAt\">\n <ng-template #cell let-value>\n {{ value | date }}\n </ng-template>\n </ng-container>\n <ng-container libColumn=\"actions\">\n <ng-template #cell let-value let-deleteRow >\n <div class=\"flex gap-6\">\n <verben-svg\n (click)=\"openDetailView(value)\"\n icon=\"edit\"\n [width]=\"15\"\n [height]=\"15\"\n class=\"cursor-pointer\"\n ></verben-svg>\n\n <verben-svg\n icon=\"delete\"\n [width]=\"15\"\n [height]=\"15\"\n (click)=\"deleteRow()\"\n class=\"cursor-pointer\"\n ></verben-svg>\n </div>\n </ng-template>\n <ng-template #header>\n <strong>Actions</strong>\n </ng-template>\n </ng-container>\n <ng-container libColumn=\"status\">\n <ng-template\n #cell\n let-isEditing=\"isEditing\"\n let-toggleRowEdit=\"toggleRowEdit\"\n let-deleteRow=\"deleteRow\"\n let-value=\"value\"\n >\n <verbena-badge\n borderRadius=\"20px\"\n width=\"121px\"\n text=\"{{value}}\"\n bgColor=\"#D6F3E6\"\n textColor=\"#2DB76F\"\n pd=\"5px 15px\"\n fontSize=\"16px\"\n >\n\n\n </verbena-badge>\n </ng-template>\n </ng-container>\n\n </lib-data-table>\n </div>\n <div card-content>\n <verben-card-data-view\n borderRadius=\"12px\"\n (loadMoreClick)=\"loadMore()\"\n #vdcv\n dataId=\"MailAddress\"\n border=\"5px\"\n [cardDataList]=\"cardData\"\n rbgColor=\"#f5f6f9\"\n mg=\"0px\"\n class=\"gap-1\"\n >\n <verben-left-card-data-view class=\"m-0 gap-2\" >\n <verben-left-card-data\n #vlcd\n [parent]=\"vdcv\"\n dataId=\"MailAddress\"\n class=\"bg-secondary-100 rounded-xl scroll-no border-primary border-[1px] gap-1 h-full justify-pp m-0 overflow-y-auto overflow-hidden\"\n [cardDataList]=\"cardData\"\n\n >\n <ng-template #card let-item>\n <div (click)=\"currentData = vdcv.onItemClick(item)\" class=\"flex\">\n <verben-svg\n [width]=\"15\"\n [height]=\"15\"\n (click)=\"vlcd.showChildren(item)\"\n [ngClass]=\"vlcd.showToggle(item) ? 'visible' : 'invisible'\"\n class=\"items-center flex cursor-pointer\"\n [icon]=\"item.isChildrenExpanded ? 'minus' : 'plus'\"\n />\n <div\n (click)=\"currentData = vdcv.onItemClick(item)\"\n class=\"flex cursor-pointer bg-secondary rounded-xl overflow-hidden w-[329px] !max-w-[329px]\"\n >\n <div\n class=\"w-2 rounded-xl rounded-tr-none rounded-br-none overflow-hidden\"\n [ngClass]=\"\n item.selected ? 'bg-primary' : 'bg-secondary-200'\n \"\n ></div>\n <div class=\"flex flex-col w-full \">\n <div class=\" grid grid-cols-5 items-center\">\n <div class=\" col-span-3\">\n <span class=\"font-semibold text-[16px] text-[#404040]\">{{\n item.title\n }}</span>\n <p class=\"flex items-center\">\n <label for=\"phone\" class=\"text-[10px] font-light\"\n >Phone Number:</label\n >\n <span id=\"phone\" class=\"text-[13px] font-medium truncate text-wrap\">{{\n item.data.PhoneNumber\n }}</span>\n </p>\n </div>\n\n <div class=\" col-span-2 \">\n <p class=\"grid\">\n <label for=\"phone\" class=\"text-[10px] font-light\"\n >Role</label\n >\n <span id=\"phone\" class=\"text-sm font-medium\"\n >Manager</span\n >\n <span class=\" bg-[#CAE1CC] text-center text-[#4ABB54] text-[13px] mt-[8px] rounded-[9px]\">\n {{item.data.Status}}\n </span>\n </p>\n <!-- <lib-user-access-request-status-badge\n [status]=\"item.data.Status\"\n ></lib-user-access-request-status-badge> -->\n </div>\n </div>\n\n <!-- <div class=\"flex\">\n <span class=\"font-normal text-sm\">{{ item.title }}</span>\n </div>\n @for (ciItem of item.body; track ciItem.value) {\n <div class=\"\">\n <span class=\"text-muted font-light text-xs\"\n >{{ ciItem.title }}:</span\n >\n <span class=\"text-black\">{{ ciItem.value }}</span>\n </div>\n } -->\n </div>\n </div>\n </div>\n </ng-template>\n </verben-left-card-data>\n </verben-left-card-data-view>\n\n <verben-right-card-data-view>\n <ng-template #parent>\n <div class=\" bg-secondary-100 py-10 flex flex-col gap-20 px-9\">\n <lib-user-request-form\n [currentData]=\"currentData\"\n (switchView)=\"vdv.toggleView()\"\n ></lib-user-request-form>\n <div class=\"flex justify-between bottom-8 left-0 right-0 p-3\">\n <verbena-button text=\"Delete\" bgColor=\"#999999\" textColor=\"white\"\n border=\"1px solid #999999\"></verbena-button>\n <div class=\"flex gap-3\">\n <verbena-button (click)=\"vdv.toggleView()\" text=\"Switch To Table\"\n styleType=\"ylw-outline\"></verbena-button>\n <verbena-button text=\"Save\" bgColor=\"#FFE681\" textColor=\"#404040\"\n border=\"1px solid #FFE681\">\n <!-- (click)=\"\" -->\n </verbena-button>\n </div>\n </div>\n </div>\n </ng-template>\n </verben-right-card-data-view>\n\n <verben-card-data-view-footer class=\"float-right\">\n <div class=\"flex gap-2\">\n <span class=\"paginator-text\"\n >{{ cardData.length }} records loaded</span\n >\n <button (click)=\"loadMore()\" class=\"load-more\">Load more</button>\n </div>\n </verben-card-data-view-footer>\n </verben-card-data-view>\n </div>\n <div column-content>\n <verben-visible-column\n (columnsUpdated)=\"onColumnsUpdated($event)\"\n [border]=\"'1px solid rgba(212, 160, 7, 1)'\"\n borderRadius=\"10px\"\n boxShadow=\"2px 2px 2px 0px silver\"\n bgColor=\"white\"\n width=\"400px\"\n textColor=\"black\"\n pd=\"1rem\"\n primaryColor=\"#FFE681\"\n secondaryColor=\"#3479E9\"\n [columns]=\"visibleColumns\"\n [displayedColumns]=\"5\"\n ></verben-visible-column>\n </div>\n <div filter-content>\n <verben-table-filter\n [border]=\"'1px solid rgba(212, 160, 7, 1)'\"\n borderRadius=\"10px\"\n boxShadow=\"2px 2px 2px 0px silver\"\n bgColor=\"white\"\n width=\"420px\"\n textColor=\"black\"\n pd=\"1rem\"\n primaryColor=\"#FFE681\"\n secondaryColor=\"#3479E9\"\n tertiaryColor=\"#404040\"\n [filterOptions]=\"filterArray\"\n [maxFilterLength]=\"3\"\n ></verben-table-filter>\n </div>\n <div sort-content>\n <verben-sort-table\n (selectedOptions)=\"onSortUpdated($event)\"\n [border]=\"'1px solid rgba(212, 160, 7, 1)'\"\n borderRadius=\"10px\"\n boxShadow=\"2px 2px 2px 0px silver\"\n bgColor=\"white\"\n width=\"400px\"\n textColor=\"black\"\n pd=\"1rem\"\n primaryColor=\"#FFE681\"\n secondaryColor=\"#3479E9\"\n tertiaryColor=\"#404040\"\n [enableDragAndDrop]=\"true\"\n [sortOptions]=\"sortOptions\"\n ></verben-sort-table>\n </div>\n <div export-content>\n <lib-data-export [data]=\"data\" (exportDataEvent)=\"handleExport($event)\">\n </lib-data-export>\n </div>\n </verben-data-view>\n <div *ngIf=\"!vdcv.hasCurrentItem() && this.cardContextHistory.length == 0\"\n class=\"message-log-button-container flex justify-between\">\n <verbena-button [fontWeight]=\"'bold'\" [bgColor]=\"'#8E8D87'\" [borderRadius]=\"'4px'\" [textColor]=\"'#fff'\"\n [text]=\"'Delete'\">\n </verbena-button>\n </div>\n</div>\n", styles: ["*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:currentColor}:before,:after{--tw-content: \"\"}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",Segoe UI Symbol,\"Noto Color Emoji\";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.visible{visibility:visible}.invisible{visibility:hidden}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.bottom-8{bottom:2rem}.left-0{left:0}.right-0{right:0}.col-span-2{grid-column:span 2 / span 2}.col-span-3{grid-column:span 3 / span 3}.float-right{float:right}.m-0{margin:0}.my-0{margin-top:0;margin-bottom:0}.my-2{margin-top:.5rem;margin-bottom:.5rem}.mb-0{margin-bottom:0}.mb-2{margin-bottom:.5rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mt-\\[8px\\]{margin-top:8px}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.h-\\[100\\%\\]{height:100%}.h-\\[max-content\\]{height:-moz-max-content;height:max-content}.h-full{height:100%}.min-h-\\[50px\\]{min-height:50px}.w-2{width:.5rem}.w-3{width:.75rem}.w-\\[329px\\]{width:329px}.w-full{width:100%}.\\!max-w-\\[329px\\]{max-width:329px!important}.flex-1{flex:1 1 0%}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.flex-col{flex-direction:column}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-20{gap:5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-6{gap:1.5rem}.gap-\\[1\\.5vw\\]{gap:1.5vw}.gap-y-2{row-gap:.5rem}.space-x-8>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(2rem * var(--tw-space-x-reverse));margin-left:calc(2rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-7>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.75rem * var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem * var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-wrap{text-wrap:wrap}.break-all{word-break:break-all}.rounded-\\[9px\\]{border-radius:9px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-xl{border-radius:.75rem}.rounded-br-none{border-bottom-right-radius:0}.rounded-tr-none{border-top-right-radius:0}.border,.border-\\[1px\\]{border-width:1px}.border-primary{--tw-border-opacity: 1;border-color:rgb(212 160 7 / var(--tw-border-opacity, 1))}.border-secondary-200{border-color:#d7dbe6}.bg-\\[\\#CAE1CC\\]{--tw-bg-opacity: 1;background-color:rgb(202 225 204 / var(--tw-bg-opacity, 1))}.bg-primary{--tw-bg-opacity: 1;background-color:rgb(212 160 7 / var(--tw-bg-opacity, 1))}.bg-secondary{--tw-bg-opacity: 1;background-color:rgb(232 234 241 / var(--tw-bg-opacity, 1))}.bg-secondary-100{--tw-bg-opacity: 1;background-color:rgb(245 246 249 / var(--tw-bg-opacity, 1))}.bg-secondary-200{background-color:#d7dbe6}.p-3{padding:.75rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-9{padding-left:2.25rem;padding-right:2.25rem}.py-10{padding-top:2.5rem;padding-bottom:2.5rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.pb-2{padding-bottom:.5rem}.pb-3{padding-bottom:.75rem}.pr-1{padding-right:.25rem}.text-center{text-align:center}.\\!text-\\[10px\\]{font-size:10px!important}.text-\\[10px\\]{font-size:10px}.text-\\[12px\\]{font-size:12px}.text-\\[13px\\]{font-size:13px}.text-\\[16px\\]{font-size:16px}.text-\\[22px\\]{font-size:22px}.text-\\[24px\\]{font-size:24px}.text-\\[2rem\\]{font-size:2rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-light{font-weight:300}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.lowercase{text-transform:lowercase}.leading-6{line-height:1.5rem}.leading-\\[12\\.1px\\]{line-height:12.1px}.leading-\\[16\\.6px\\]{line-height:16.6px}.leading-\\[19\\.5px\\]{line-height:19.5px}.leading-\\[29\\.05px\\]{line-height:29.05px}.leading-\\[33px\\]{line-height:33px}.leading-\\[48px\\]{line-height:48px}.text-\\[\\#333\\]{--tw-text-opacity: 1;color:rgb(51 51 51 / var(--tw-text-opacity, 1))}.text-\\[\\#3479E9\\]{--tw-text-opacity: 1;color:rgb(52 121 233 / var(--tw-text-opacity, 1))}.text-\\[\\#404040\\]{--tw-text-opacity: 1;color:rgb(64 64 64 / var(--tw-text-opacity, 1))}.text-\\[\\#4ABB54\\]{--tw-text-opacity: 1;color:rgb(74 187 84 / var(--tw-text-opacity, 1))}.text-\\[black\\]{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity, 1))}.text-muted{color:#0009}.underline{text-decoration-line:underline}.outline-none{outline:2px solid transparent;outline-offset:2px}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.master-only-contanier{margin-top:0!important}.scroll-no::-webkit-scrollbar{width:4px}.scroll-no::-webkit-scrollbar-thumb{background:gray}.justify-pp{justify-content:start!important;margin-top:0!important}.toolbar{margin:0!important}@media screen and (max-width: 1024px){.scroll-no{padding:5px}}\n"] }]
358
+ args: [{ selector: 'lib-user-management', template: "<div class=\"flex flex-col gap-4 message-log-container\">\n <verben-data-view\n #vdv\n [viewState]=\"{\n isSearch: true,\n isColumn: true,\n isFilter: true,\n isSort: true,\n isExport: true,\n isSelect: true,\n isCreate: true,\n isToggle:true\n }\"\n [buttonClass]=\"'my-custom-button-class'\"\n [iconClass]=\"'my-icon-class'\"\n [activeIconClass]=\"'my-active-icon-class'\"\n [selectedColumnCount]=\"0\"\n [selectedSortCount]=\"0\"\n [selectedFilterTableCount]=\"0\"\n (viewChange)=\"onViewChange($event)\"\n (stateChange)=\"onStateChange($event)\"\n >\n <div class=\"mt-2\" table-content>\n <lib-data-table\n [data]=\"data\"\n [columns]=\"columns\"\n [styleConfig]=\"styles\"\n (selectionChange)=\"onSelectionChange($event)\"\n >\n <ng-container libColumn=\"select\">\n <ng-template #cell let-isSelected=\"isSelected\" let-toggleRowSelection=\"toggleRowSelection\">\n <input type=\"checkbox\" [checked]=\"isSelected\" (change)=\"toggleRowSelection()\" />\n </ng-template>\n <ng-template #header let-allRowsSelected=\"allRowsSelected\" let-someRowsSelected=\"someRowsSelected\"\n let-toggleAllRows=\"toggleAllRows\">\n <input type=\"checkbox\" [checked]=\"allRowsSelected()\" [indeterminate]=\"someRowsSelected()\"\n (change)=\"toggleAllRows()\" />\n </ng-template>\n </ng-container>\n <ng-container libColumn=\"createdAt\">\n <ng-template #cell let-value>\n {{ value | date }}\n </ng-template>\n </ng-container>\n <ng-container libColumn=\"actions\">\n <ng-template #cell let-value let-deleteRow >\n <div class=\"flex gap-6\">\n <verben-svg\n (click)=\"openDetailView(value)\"\n icon=\"edit\"\n [width]=\"15\"\n [height]=\"15\"\n class=\"cursor-pointer\"\n ></verben-svg>\n\n <verben-svg\n icon=\"delete\"\n [width]=\"15\"\n [height]=\"15\"\n (click)=\"deleteRow()\"\n class=\"cursor-pointer\"\n ></verben-svg>\n </div>\n </ng-template>\n <ng-template #header>\n <strong>Actions</strong>\n </ng-template>\n </ng-container>\n <ng-container libColumn=\"status\">\n <ng-template\n #cell\n let-isEditing=\"isEditing\"\n let-toggleRowEdit=\"toggleRowEdit\"\n let-deleteRow=\"deleteRow\"\n let-value=\"value\"\n >\n <verbena-badge\n borderRadius=\"20px\"\n width=\"121px\"\n text=\"{{value}}\"\n bgColor=\"#D6F3E6\"\n textColor=\"#2DB76F\"\n pd=\"5px 15px\"\n fontSize=\"16px\"\n >\n\n\n </verbena-badge>\n </ng-template>\n </ng-container>\n\n </lib-data-table>\n </div>\n <div card-content>\n <verben-card-data-view\n borderRadius=\"12px\"\n (loadMoreClick)=\"loadMore()\"\n #vdcv\n dataId=\"MailAddress\"\n border=\"5px\"\n [cardDataList]=\"cardData\"\n rbgColor=\"#f5f6f9\"\n mg=\"0px\"\n class=\"gap-1\"\n >\n <verben-left-card-data-view class=\"m-0 gap-2\" >\n <verben-left-card-data\n #vlcd\n [parent]=\"vdcv\"\n dataId=\"MailAddress\"\n class=\"bg-secondary-100 rounded-xl scroll-no border-primary border-[1px] gap-1 h-full justify-pp m-0 overflow-y-auto overflow-hidden\"\n [cardDataList]=\"cardData\"\n\n >\n <ng-template #card let-item>\n <div (click)=\"currentData = vdcv.onItemClick(item)\" class=\"flex\">\n <verben-svg\n [width]=\"15\"\n [height]=\"15\"\n (click)=\"vlcd.showChildren(item)\"\n [ngClass]=\"vlcd.showToggle(item) ? 'visible' : 'invisible'\"\n class=\"items-center flex cursor-pointer\"\n [icon]=\"item.isChildrenExpanded ? 'minus' : 'plus'\"\n />\n <div\n (click)=\"currentData = vdcv.onItemClick(item)\"\n class=\"flex cursor-pointer bg-secondary rounded-xl overflow-hidden w-[329px] !max-w-[329px]\"\n >\n <div\n class=\"w-2 rounded-xl rounded-tr-none rounded-br-none overflow-hidden\"\n [ngClass]=\"\n item.selected ? 'bg-primary' : 'bg-secondary-200'\n \"\n ></div>\n <div class=\"flex flex-col w-full \">\n <div class=\" grid grid-cols-5 items-center pl-6 py-3 pr-1\">\n <div class=\" col-span-3\">\n <span class=\"font-semibold text-[16px] text-[#404040]\">{{\n item.title\n }}</span>\n <p class=\"flex items-center\">\n <label for=\"phone\" class=\"text-[10px] font-light\"\n >Phone Number:</label\n >\n <span id=\"phone\" class=\"text-[13px] font-medium truncate text-wrap\">{{\n item.data.PhoneNumber\n }}</span>\n </p>\n </div>\n\n <div class=\" col-span-2 \">\n <p class=\"grid\">\n <label for=\"phone\" class=\"text-[10px] font-light\"\n >Role</label\n >\n <span id=\"phone\" class=\"text-sm font-medium\"\n >Manager</span\n >\n <span class=\" bg-[#CAE1CC] text-center text-[#4ABB54] text-[13px] mt-[8px] rounded-[9px]\">\n {{item.data.Status}}\n </span>\n </p>\n <!-- <lib-user-access-request-status-badge\n [status]=\"item.data.Status\"\n ></lib-user-access-request-status-badge> -->\n </div>\n </div>\n\n <!-- <div class=\"flex\">\n <span class=\"font-normal text-sm\">{{ item.title }}</span>\n </div>\n @for (ciItem of item.body; track ciItem.value) {\n <div class=\"\">\n <span class=\"text-muted font-light text-xs\"\n >{{ ciItem.title }}:</span\n >\n <span class=\"text-black\">{{ ciItem.value }}</span>\n </div>\n } -->\n </div>\n </div>\n </div>\n </ng-template>\n </verben-left-card-data>\n </verben-left-card-data-view>\n\n <verben-right-card-data-view>\n <ng-template #parent>\n <div class=\" bg-secondary-100 py-10 flex flex-col gap-20 px-9\">\n <lib-user-request-form\n [currentData]=\"currentData\"\n (switchView)=\"vdv.toggleView()\"\n ></lib-user-request-form>\n <div class=\"flex justify-between bottom-8 left-0 right-0 p-3\">\n <verbena-button text=\"Delete\" bgColor=\"#999999\" textColor=\"white\"\n border=\"1px solid #999999\"></verbena-button>\n <div class=\"flex gap-3\">\n <verbena-button (click)=\"vdv.toggleView()\" text=\"Switch To Table\"\n styleType=\"ylw-outline\"></verbena-button>\n <verbena-button text=\"Save\" bgColor=\"#FFE681\" textColor=\"#404040\"\n border=\"1px solid #FFE681\">\n <!-- (click)=\"\" -->\n </verbena-button>\n </div>\n </div>\n </div>\n </ng-template>\n </verben-right-card-data-view>\n\n <verben-card-data-view-footer class=\"float-right\">\n <div class=\"flex gap-2\">\n <span class=\"paginator-text\"\n >{{ cardData.length }} records loaded</span\n >\n <button (click)=\"loadMore()\" class=\"load-more\">Load more</button>\n </div>\n </verben-card-data-view-footer>\n </verben-card-data-view>\n </div>\n <div column-content>\n <verben-visible-column\n (columnsUpdated)=\"onColumnsUpdated($event)\"\n [border]=\"'1px solid rgba(212, 160, 7, 1)'\"\n borderRadius=\"10px\"\n boxShadow=\"2px 2px 2px 0px silver\"\n bgColor=\"white\"\n width=\"400px\"\n textColor=\"black\"\n pd=\"1rem\"\n primaryColor=\"#FFE681\"\n secondaryColor=\"#3479E9\"\n [columns]=\"visibleColumns\"\n [displayedColumns]=\"5\"\n ></verben-visible-column>\n </div>\n <div filter-content>\n <verben-table-filter\n [border]=\"'1px solid rgba(212, 160, 7, 1)'\"\n borderRadius=\"10px\"\n boxShadow=\"2px 2px 2px 0px silver\"\n bgColor=\"white\"\n width=\"420px\"\n textColor=\"black\"\n pd=\"1rem\"\n primaryColor=\"#FFE681\"\n secondaryColor=\"#3479E9\"\n tertiaryColor=\"#404040\"\n [filterOptions]=\"filterArray\"\n [maxFilterLength]=\"3\"\n ></verben-table-filter>\n </div>\n <div sort-content>\n <verben-sort-table\n (selectedOptions)=\"onSortUpdated($event)\"\n [border]=\"'1px solid rgba(212, 160, 7, 1)'\"\n borderRadius=\"10px\"\n boxShadow=\"2px 2px 2px 0px silver\"\n bgColor=\"white\"\n width=\"400px\"\n textColor=\"black\"\n pd=\"1rem\"\n primaryColor=\"#FFE681\"\n secondaryColor=\"#3479E9\"\n tertiaryColor=\"#404040\"\n [enableDragAndDrop]=\"true\"\n [sortOptions]=\"sortOptions\"\n ></verben-sort-table>\n </div>\n <div export-content>\n <lib-data-export [data]=\"data\" (exportDataEvent)=\"handleExport($event)\">\n </lib-data-export>\n </div>\n </verben-data-view>\n <div *ngIf=\"!vdcv.hasCurrentItem() && this.cardContextHistory.length == 0\"\n class=\"message-log-button-container flex justify-between\">\n <verbena-button [fontWeight]=\"'bold'\" [bgColor]=\"'#8E8D87'\" [borderRadius]=\"'4px'\" [textColor]=\"'#fff'\"\n [text]=\"'Delete'\">\n </verbena-button>\n </div>\n</div>\n", styles: ["*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:currentColor}:before,:after{--tw-content: \"\"}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",Segoe UI Symbol,\"Noto Color Emoji\";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.visible{visibility:visible}.invisible{visibility:hidden}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.bottom-8{bottom:2rem}.left-0{left:0}.right-0{right:0}.col-span-2{grid-column:span 2 / span 2}.col-span-3{grid-column:span 3 / span 3}.float-right{float:right}.m-0{margin:0}.my-0{margin-top:0;margin-bottom:0}.my-2{margin-top:.5rem;margin-bottom:.5rem}.mb-0{margin-bottom:0}.mb-2{margin-bottom:.5rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mt-\\[8px\\]{margin-top:8px}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.h-\\[100\\%\\]{height:100%}.h-\\[max-content\\]{height:-moz-max-content;height:max-content}.h-full{height:100%}.min-h-\\[50px\\]{min-height:50px}.w-2{width:.5rem}.w-3{width:.75rem}.w-\\[329px\\]{width:329px}.w-full{width:100%}.\\!max-w-\\[329px\\]{max-width:329px!important}.flex-1{flex:1 1 0%}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.flex-col{flex-direction:column}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-20{gap:5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-6{gap:1.5rem}.gap-\\[1\\.5vw\\]{gap:1.5vw}.gap-y-2{row-gap:.5rem}.space-x-8>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(2rem * var(--tw-space-x-reverse));margin-left:calc(2rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-7>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.75rem * var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem * var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-wrap{text-wrap:wrap}.break-all{word-break:break-all}.rounded-\\[9px\\]{border-radius:9px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-xl{border-radius:.75rem}.rounded-br-none{border-bottom-right-radius:0}.rounded-tr-none{border-top-right-radius:0}.border,.border-\\[1px\\]{border-width:1px}.border-primary{--tw-border-opacity: 1;border-color:rgb(212 160 7 / var(--tw-border-opacity, 1))}.border-secondary-200{border-color:#d7dbe6}.bg-\\[\\#CAE1CC\\]{--tw-bg-opacity: 1;background-color:rgb(202 225 204 / var(--tw-bg-opacity, 1))}.bg-primary{--tw-bg-opacity: 1;background-color:rgb(212 160 7 / var(--tw-bg-opacity, 1))}.bg-secondary{--tw-bg-opacity: 1;background-color:rgb(232 234 241 / var(--tw-bg-opacity, 1))}.bg-secondary-100{--tw-bg-opacity: 1;background-color:rgb(245 246 249 / var(--tw-bg-opacity, 1))}.bg-secondary-200{background-color:#d7dbe6}.p-3{padding:.75rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-9{padding-left:2.25rem;padding-right:2.25rem}.py-10{padding-top:2.5rem;padding-bottom:2.5rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.pb-2{padding-bottom:.5rem}.pb-3{padding-bottom:.75rem}.pl-6{padding-left:1.5rem}.pr-1{padding-right:.25rem}.text-center{text-align:center}.\\!text-\\[10px\\]{font-size:10px!important}.text-\\[10px\\]{font-size:10px}.text-\\[12px\\]{font-size:12px}.text-\\[13px\\]{font-size:13px}.text-\\[16px\\]{font-size:16px}.text-\\[22px\\]{font-size:22px}.text-\\[24px\\]{font-size:24px}.text-\\[2rem\\]{font-size:2rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-light{font-weight:300}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.lowercase{text-transform:lowercase}.leading-6{line-height:1.5rem}.leading-\\[12\\.1px\\]{line-height:12.1px}.leading-\\[16\\.6px\\]{line-height:16.6px}.leading-\\[19\\.5px\\]{line-height:19.5px}.leading-\\[29\\.05px\\]{line-height:29.05px}.leading-\\[33px\\]{line-height:33px}.leading-\\[48px\\]{line-height:48px}.text-\\[\\#333\\]{--tw-text-opacity: 1;color:rgb(51 51 51 / var(--tw-text-opacity, 1))}.text-\\[\\#3479E9\\]{--tw-text-opacity: 1;color:rgb(52 121 233 / var(--tw-text-opacity, 1))}.text-\\[\\#404040\\]{--tw-text-opacity: 1;color:rgb(64 64 64 / var(--tw-text-opacity, 1))}.text-\\[\\#4ABB54\\]{--tw-text-opacity: 1;color:rgb(74 187 84 / var(--tw-text-opacity, 1))}.text-\\[black\\]{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity, 1))}.text-muted{color:#0009}.underline{text-decoration-line:underline}.outline-none{outline:2px solid transparent;outline-offset:2px}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.master-only-contanier{margin-top:0!important}.scroll-no::-webkit-scrollbar{width:4px}.scroll-no::-webkit-scrollbar-thumb{background:gray}.justify-pp{justify-content:start!important;margin-top:0!important}.toolbar{margin:0!important}@media screen and (max-width: 1024px){.scroll-no{padding:5px}}\n"] }]
359
359
  }], ctorParameters: () => [{ type: i1.UserManagementService }], propDecorators: { cardDataView: [{
360
360
  type: ViewChild,
361
361
  args: ['vdcv']
@@ -363,4 +363,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
363
363
  type: ViewChild,
364
364
  args: ['vdv']
365
365
  }] } });
366
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1tYW5hZ2VtZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZlcmJlbi1hdXRoZW50aWNhdGlvbi11aS9zcmMvbGliL2NvbXBvbmVudHMvdXNlci1tYW5hZ2VtZW50L3VzZXItbWFuYWdlbWVudC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4tYXV0aGVudGljYXRpb24tdWkvc3JjL2xpYi9jb21wb25lbnRzL3VzZXItbWFuYWdlbWVudC91c2VyLW1hbmFnZW1lbnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRXBELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUUvQyxPQUFPLEVBRUwsY0FBYyxHQU1mLE1BQU0sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUd4RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7OztBQVkzRCxNQUFNLE9BQU8sdUJBQXVCO0lBU2Q7SUFSRCxZQUFZLENBQXlCO0lBQ3RDLFFBQVEsQ0FBcUI7SUFFL0MsS0FBSyxHQUFXLEVBQUUsQ0FBQztJQUNuQixZQUFZLEdBQVcsRUFBRSxDQUFDO0lBRTFCLGtCQUFrQixHQUFlLEVBQUUsQ0FBQztJQUVwQyxZQUFvQixxQkFBNEM7UUFBNUMsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtJQUFHLENBQUM7SUFFcEUsUUFBUTtRQUNOLElBQUksQ0FBQyxjQUFjLEdBQUcsR0FBRyxDQUFD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QUFHLENBQUMscUJBQXFCLEtBQUssQ0FBQyxHQUFHLEdBQUcsRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDNUQsSUFBSSxLQUFLLENBQUMsR0FBRyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQzNCLE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztZQUU5QixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFFZixpQ0FBaUM7WUFFakMsdUNBQXVDO1lBQ3ZDLGdDQUFnQztZQUNoQyxrQ0FBa0M7WUFDbEMsc0NBQXNDO1lBQ3RDLDZCQUE2QjtZQUM3QiwyQkFBMkI7WUFDM0Isb0VBQW9FO1lBQ3BFLFFBQVE7WUFDUixRQUFRO1lBRVIsK0RBQStEO1lBRS9ELHdDQUF3QztZQUN4QywrQ0FBK0M7WUFDL0MsSUFBSTtRQUNOLENBQUM7SUFDSCxDQUFDO3dHQS9ZVSx1QkFBdUI7NEZBQXZCLHVCQUF1QixtUEM5QnBDLHNqVkF3UkE7OzRGRDFQYSx1QkFBdUI7a0JBTG5DLFNBQVM7K0JBQ0UscUJBQXFCOzBGQUtaLFlBQVk7c0JBQTlCLFNBQVM7dUJBQUMsTUFBTTtnQkFDQyxRQUFRO3NCQUF6QixTQUFTO3VCQUFDLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY29sdW1ucyB9IGZyb20gJy4vdXNlci1tYW5hZ2VtZW50LmNvbHVtbnMnO1xuaW1wb3J0IHsgbW9ja0RhdGEgfSBmcm9tICcuL2hlbHBlcic7XG5pbXBvcnQgeyBiYXNlU3R5bGUgfSBmcm9tICcuL2Jhc2UtdGFibGUtc3R5bGUnO1xuaW1wb3J0IHsgVXNlck1hbmFnZW1lbnQgfSBmcm9tICcuLi8uLi9tb2RlbHMvdXNlci1tYW5hZ2VtZW50JztcbmltcG9ydCB7XG4gIENhcmREYXRhLFxuICBEYXRhRmlsdGVyVHlwZSxcbiAgSURhdGFGaWx0ZXIsXG4gIERyb3Bkb3duTG9hZEV2ZW50LFxuICBEcm9wZG93bkNoYW5nZUV2ZW50LFxuICBDYXJkRGF0YVZpZXdDb21wb25lbnQsXG4gIERhdGFWaWV3Q29tcG9uZW50LFxufSBmcm9tICd2ZXJiZW4tbmctdWknO1xuaW1wb3J0IHsgVXNlckFjY2Vzc1JlcXVlc3RTdGF0dXMgfSBmcm9tICcuLi8uLi9tb2RlbHMvdXNlci1hY2Nlc3MtcmVxdWVzdC1zdGF0dXMnO1xuaW1wb3J0IHsgT2JqZWN0U3RhdGUgfSBmcm9tICcuLi8uLi9tb2RlbHMvb2JqZWN0LXN0YXRlJztcbmltcG9ydCB7IFVzZXJNYW5hZ2VtZW50U2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvdXNlci1tYW5hZ2VtZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgVXNlciB9IGZyb20gJy4uLy4uL21vZGVscy91c2VyJztcbmltcG9ydCB7IEVycm9yUmVzcG9uc2UgfSBmcm9tICcuLi8uLi9tb2RlbHMvRXJyb3JSZXNwb25zZSc7XG5cbmludGVyZmFjZSBUZXN0UGFyZW50T2JqZWN0IHtcbiAgSWQ6IHN0cmluZztcbiAgTmFtZTogc3RyaW5nO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItdXNlci1tYW5hZ2VtZW50JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3VzZXItbWFuYWdlbWVudC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi91c2VyLW1hbmFnZW1lbnQuY29tcG9uZW50LmNzcycsXG59KVxuZXhwb3J0IGNsYXNzIFVzZXJNYW5hZ2VtZW50Q29tcG9uZW50IHtcbiAgQFZpZXdDaGlsZCgndmRjdicpIGNhcmREYXRhVmlldyE6IENhcmREYXRhVmlld0NvbXBvbmVudDtcbiAgQFZpZXdDaGlsZCgndmR2JykgZGF0YVZpZXchOiBEYXRhVmlld0NvbXBvbmVudDtcblxuICB1c2VyczogVXNlcltdID0gW107XG4gIGVycm9yTWVzc2FnZTogc3RyaW5nID0gJyc7XG5cbiAgY2FyZENvbnRleHRIaXN0b3J5OiBDYXJkRGF0YVtdID0gW107XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSB1c2VyTWFuYWdlbWVudFNlcnZpY2U6IFVzZXJNYW5hZ2VtZW50U2VydmljZSkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkUGFyZW50ID0gJzEnO1xuICAgIHRoaXMuc2VsZWN0ZWRPcHRpb24gPSBbJ09wdCAxJ107XG4gICAgdGhpcy5zZWxlY3RlZE9wdGlvblR3byA9IFsnMSddO1xuICAgIHRoaXMuc2VsZWN0ZWRPcHRpb25UaHJlZSA9ICcxJztcbiAgICB0aGlzLmZldGNoVXNlcnMoKTtcbiAgICB0aGlzLmZldGNoRGF0cSgpO1xuICB9XG5cbiAgYXN5bmMgZmV0Y2hVc2VycygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLnVzZXJNYW5hZ2VtZW50U2VydmljZS5nZXRVc2VycygwLCAxMCwgJ25hbWUnLCAnYXNjJyk7XG5cbiAgICBjb25zb2xlLmxvZyhyZXMpO1xuXG4gICAgaWYgKHJlcyBpbnN0YW5jZW9mIEVycm9yUmVzcG9uc2UpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yOicsIHJlcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY2FyZERhdGEgPSByZXMubWFwKFxuICAgICAgICAoeyBGaXJzdE5hbWUsIE1haWxBZGRyZXNzLCBQaG9uZU51bWJlciwgUm9sZUlELCBTdGF0dXMgfSkgPT4gKHtcbiAgICAgICAgICBzZWxlY3RlZDogZmFsc2UsXG4gICAgICAgICAgdGl0bGU6IEZpcnN0TmFtZSxcbiAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICBGaXJzdE5hbWUsXG4gICAgICAgICAgICBNYWlsQWRkcmVzcyxcbiAgICAgICAgICAgIFBob25lTnVtYmVyLFxuICAgICAgICAgICAgUm9sZUlELFxuICAgICAgICAgICAgU3RhdHVzLFxuICAgICAgICAgIH0gYXMgUGFydGlhbDxVc2VyTWFuYWdlbWVudD4sXG4gICAgICAgICAgYm9keTogW1xuICAgICAgICAgICAgeyB0aXRsZTogJ05hbWUnLCB2YWx1ZTogRmlyc3ROYW1lIH0sXG4gICAgICAgICAgICB7IHRpdGxlOiAnRS1NYWlsIEFkZHJlc3MnLCB2YWx1ZTogTWFpbEFkZHJlc3MgfSxcbiAgICAgICAgICAgIHsgdGl0bGU6ICdQaG9uZSBOdW1iZXInLCB2YWx1ZTogUGhvbmVOdW1iZXIgPz8gJycgfSxcbiAgICAgICAgICBdLFxuICAgICAgICAgIGNoaWxkcmVuOiBbXSxcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgLy8gbmV3IHVwZGF0ZVxuXG4gIGNhcmREYXRhOiBDYXJkRGF0YVtdID0gW107XG5cbiAgZGF0YTogYW55W10gPSBbXTsgLy8gSW5pdGlhbGl6ZSBkYXRhXG5cbiAgYXN5bmMgZmV0Y2hEYXRxKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHJlcyA9IGF3YWl0IHRoaXMudXNlck1hbmFnZW1lbnRTZXJ2aWNlLmdldFVzZXJzKDAsIDEwLCAnbmFtZScsICdhc2MnKTtcblxuICAgIGNvbnNvbGUubG9nKHJlcyk7XG5cbiAgICBpZiAocmVzIGluc3RhbmNlb2YgRXJyb3JSZXNwb25zZSkge1xuICAgICAgY29uc29sZS5lcnJvcignRXJyb3I6JywgcmVzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5kYXRhID0gcmVzLm1hcCgodXNlcikgPT4gKHtcbiAgICAgICAgQ3JlYXRlZEF0OiB1c2VyLkNyZWF0ZWRBdCwgLy8gQVBJIGtleSBmb3IgXCJDcmVhdGVkXCJcbiAgICAgICAgTmFtZTogYCR7dXNlci5GaXJzdE5hbWV9ICR7dXNlci5MYXN0TmFtZX1gLCAvLyBDb21iaW5lIEZpcnN0TmFtZSBhbmQgTGFzdE5hbWVcbiAgICAgICAgTWFpbEFkZHJlc3M6IHVzZXIuTWFpbEFkZHJlc3MsIC8vIFVzZSBjb3JyZWN0IGtleSBmb3IgXCJFLU1haWxcIlxuICAgICAgICBQaG9uZU51bWJlcjogdXNlci5QaG9uZU51bWJlciB8fCAnJywgLy8gSGFuZGxlIHVuZGVmaW5lZCBQaG9uZU51bWJlclxuICAgICAgICBBZGRyZXNzOiB1c2VyLkFkZHJlc3MgfHwgJycsIC8vIElmIEFkZHJlc3MgZXhpc3RzIGluIEFQSVxuICAgICAgICBSb2xlOiB1c2VyLlJvbGVJRCB8fCAnJywgLy8gTWFwIFJvbGUgaWYgYXZhaWxhYmxlXG4gICAgICAgIFN0YXR1czogdXNlci5TdGF0dXMgfHwgJycsIC8vIE1hcCBTdGF0dXNcbiAgICAgICAgVXBkYXRlZEF0OiB1c2VyLlVwZGF0ZWRBdCxcbiAgICAgICAgRGF0YVN0YXRlOiB1c2VyLkRhdGFTdGF0ZSxcbiAgICAgICAgRmlyc3ROYW1lOiB1c2VyLkZpcnN0TmFtZSxcbiAgICAgICAgTGFzdE5hbWU6IHVzZXIuTGFzdE5hbWUsXG4gICAgICAgIE90aGVyTmFtZTogdXNlci5PdGhlck5hbWUsXG4gICAgICB9KSk7XG4gICAgfVxuICB9XG5cbiAgY29sdW1ucyA9IGNvbHVtbnM7XG4gIC8vIGRhdGEgPSBtb2NrRGF0YTtcbiAgc3R5bGVzID0gYmFzZVN0eWxlO1xuXG4gIHNlbGVjdGVkUGFyZW50Pzogc3RyaW5nO1xuICBiYXNpY09wdGlvbj86IHN0cmluZztcbiAgc2VsZWN0ZWRPcHRpb246IHN0cmluZ1tdID0gW107XG4gIHNlbGVjdGVkT3B0aW9uVHdvOiBzdHJpbmdbXSA9IFtdO1xuICBzZWxlY3RlZE9wdGlvblRocmVlPzogc3RyaW5nO1xuICBtaXNzaW5nT2JqZWN0OiBhbnk7XG5cbiAgcHJpdmF0ZSBnZW5lcmF0ZU5ld1VzZXJNYW5hZ2VtZW50KCk6IFVzZXJNYW5hZ2VtZW50IHtcbiAgICBjb25zdCBuZXdJZCA9IHRoaXMuZGF0YS5sZW5ndGggKyAxOyAvLyBJbmNyZW1lbnRhbCBJRCBiYXNlZCBvbiBjdXJyZW50IGRhdGEgbGVuZ3RoXG5cbiAgICByZXR1cm4ge1xuICAgICAgRmlyc3ROYW1lOiBgRmlyc3QgJHtuZXdJZH1gLFxuICAgICAgTGFzdE5hbWU6IGBMYXN0ICR7bmV3SWR9YCxcbiAgICAgIE90aGVyTmFtZTogYE90aGVyICR7bmV3SWR9YCxcbiAgICAgIElkOiBgJHtuZXdJZH1gLFxuICAgICAgaWQ6IG5ld0lkLFxuICAgICAgTWFpbEFkZHJlc3M6IGAgYCxcbiAgICAgIFBob25lTnVtYmVyOiBgYCxcbiAgICAgIFJlcXVlc3RTdGF0dXM6IFVzZXJBY2Nlc3NSZXF1ZXN0U3RhdHVzLlBlbmRpbmcsXG4gICAgICBBZGRyZXNzOiBgIGAsXG4gICAgICBQYXNzd29yZDogJyAnLFxuICAgICAgRXhwaXJlT246IG5ldyBEYXRlKCksXG4gICAgICBJc1NlZWRlZDogZmFsc2UsXG4gICAgICBPVFBFeHBpcmVPbjogbmV3IERhdGUoKSxcbiAgICAgIFRlbmFudHM6IFtgVGVuYW50JHtuZXdJZH1gXSxcbiAgICAgIENyZWF0ZWRBdDogbmV3IERhdGUoKSxcbiAgICAgIFVwZGF0ZWRBdDogbmV3IERhdGUoKSxcbiAgICAgIERhdGFTdGF0ZTogT2JqZWN0U3RhdGUuTmV3LFxuICAgICAgVGVuYW50SWQ6IGBUZW5hbnQke25ld0lkfWAsXG4gICAgICBDb2RlOiAnJyxcbiAgICAgIFNlcnZpY2VOYW1lOiAnJyxcbiAgICAgIFN0YXR1czogVXNlckFjY2Vzc1JlcXVlc3RTdGF0dXMuUGVuZGluZyxcbiAgICB9O1xuICB9XG5cbiAgLy8gRnVuY3Rpb24gdG8gYWRkIGEgbmV3IHVzZXIgdG8gbW9ja0RhdGFcbiAgYWRkTmV3VXNlclRvTW9ja0RhdGEoKTogVXNlck1hbmFnZW1lbnQge1xuICAgIGNvbnN0IG5ld1VzZXIgPSB0aGlzLmdlbmVyYXRlTmV3VXNlck1hbmFnZW1lbnQoKTtcbiAgICB0aGlzLmRhdGEucHVzaChuZXdVc2VyKTsgLy8gQWRkcyB0aGUgbmV3IHVzZXIgdG8gdGhlIGRhdGEgYXJyYXlcblxuICAgIC8vIE9wdGlvbmFsbHksIHVwZGF0ZSBjYXJkRGF0YSB3aXRoIHRoZSBuZXcgdXNlciBlbnRyeSBmb3IgY2FyZCBkaXNwbGF5XG5cbiAgICBjb25zdCBmdWxsTmFtZSA9IGAke25ld1VzZXIuRmlyc3ROYW1lfSAke25ld1VzZXIuTGFzdE5hbWV9YDtcbiAgICBjb25zdCBuZXdDYXJkRGF0YTogQ2FyZERhdGEgPSB7XG4gICAgICBzZWxlY3RlZDogZmFsc2UsXG4gICAgICB0aXRsZTogZnVsbE5hbWUsXG4gICAgICBkYXRhOiB7XG4gICAgICAgIE5hbWU6IGZ1bGxOYW1lLFxuICAgICAgICBNYWlsQWRkcmVzczogbmV3VXNlci5NYWlsQWRkcmVzcyxcbiAgICAgICAgUGhvbmVOdW1iZXI6IG5ld1VzZXIuUGhvbmVOdW1iZXIsXG4gICAgICAgIFJvbGVJRDogbmV3VXNlci5Sb2xlLFxuICAgICAgICBTdGF0dXM6IG5ld1VzZXIuU3RhdHVzLFxuICAgICAgfSBhcyBQYXJ0aWFsPFVzZXJNYW5hZ2VtZW50PixcbiAgICAgIGJvZHk6IFtcbiAgICAgICAgeyB0aXRsZTogJ05hbWUnLCB2YWx1ZTogZnVsbE5hbWUgfSxcbiAgICAgICAgeyB0aXRsZTogJ0UtTWFpbCBBZGRyZXNzJywgdmFsdWU6IG5ld1VzZXIuTWFpbEFkZHJlc3MgfSxcbiAgICAgICAgeyB0aXRsZTogJ1Bob25lIE51bWJlcicsIHZhbHVlOiBuZXdVc2VyLlBob25lTnVtYmVyID8/ICcnIH0sXG4gICAgICBdLFxuICAgICAgY2hpbGRyZW46IFtdLFxuICAgIH07XG5cbiAgICB0aGlzLmNhcmREYXRhLnB1c2gobmV3Q2FyZERhdGEpOyAvLyBVcGRhdGUgY2FyZERhdGEgYXJyYXkgd2l0aCB0aGUgbmV3IHVzZXJcbiAgICByZXR1cm4gbmV3VXNlcjtcbiAgfVxuXG4gIC8vIEdyaWQgdmlldyBwcm9wZXJ0aWVzXG4gIGlzR3JpZFZpZXc6IGJvb2xlYW4gPSB0cnVlO1xuICBjdXJyZW50RGF0YSE6IENhcmREYXRhO1xuICBzZWxlY3RlZENvbHVtbkNvdW50OiBudW1iZXIgPSAwO1xuICBzZWxlY3RlZEZpbHRlclRhYmxlQ291bnQ6IG51bWJlciA9IDA7XG4gIGlzT1BlbjogYm9vbGVhbiA9IHRydWU7XG4gIHNlbGVjdGVkU29ydENvdW50OiBudW1iZXIgPSAwO1xuICBzaG93Q29sdW1uOiBib29sZWFuID0gZmFsc2U7XG4gIHNob3dTb3J0OiBib29sZWFuID0gZmFsc2U7XG4gIHNlbGVjdGVkQWxsOiBib29sZWFuID0gZmFsc2U7XG4gIHZpc2libGVDb2x1bW5zOiBJRGF0YUZpbHRlcltdID0gY29sdW1ucy5tYXAoKGNvbCkgPT4gKHtcbiAgICBjaGVja2VkOiBmYWxzZSxcbiAgICBuYW1lOiB0eXBlb2YgY29sLmhlYWRlciA9PT0gJ3N0cmluZycgPyBjb2wuaGVhZGVyIDogY29sLmlkLFxuICAgIHR5cGU6IERhdGFGaWx0ZXJUeXBlLkJvb2wsXG4gIH0pKTtcblxuICBmaWx0ZXJBcnJheTogSURhdGFGaWx0ZXJbXSA9IFtcbiAgICB7IG5hbWU6ICdOYW1lJywgdHlwZTogRGF0YUZpbHRlclR5cGUuU3RyaW5nLCBjaGVja2VkOiBmYWxzZSB9LFxuICAgIHsgbmFtZTogJ01haWxBZGRyZXNzJywgdHlwZTogRGF0YUZpbHRlclR5cGUuU3RyaW5nLCBjaGVja2VkOiBmYWxzZSB9LFxuICAgIHsgbmFtZTogJ1Bob25lTnVtYmVyJywgdHlwZTogRGF0YUZpbHRlclR5cGUuU3RyaW5nLCBjaGVja2VkOiBmYWxzZSB9LFxuICAgIHsgbmFtZTogJ0NyZWF0ZWRBdCcsIHR5cGU6IERhdGFGaWx0ZXJUeXBlLkRhdGUsIGNoZWNrZWQ6IGZhbHNlIH0sXG4gIF07XG5cbiAgc29ydE9wdGlvbnM6IElEYXRhRmlsdGVyW10gPSBbXG4gICAgeyBuYW1lOiAnTmFtZScsIHR5cGU6IERhdGFGaWx0ZXJUeXBlLlN0cmluZywgY2hlY2tlZDogZmFsc2UgfSxcbiAgICB7IG5hbWU6ICdNYWlsQWRkcmVzcycsIHR5cGU6IERhdGFGaWx0ZXJUeXBlLlN0cmluZywgY2hlY2tlZDogZmFsc2UgfSxcbiAgICB7IG5hbWU6ICdQaG9uZU51bWJlcicsIHR5cGU6IERhdGFGaWx0ZXJUeXBlLlN0cmluZywgY2hlY2tlZDogZmFsc2UgfSxcbiAgICB7IG5hbWU6ICdDcmVhdGVkQXQnLCB0eXBlOiBEYXRhRmlsdGVyVHlwZS5EYXRlLCBjaGVja2VkOiBmYWxzZSB9LFxuICBdO1xuXG4gIHRlc3RQYXJlbnRzOiBUZXN0UGFyZW50T2JqZWN0W10gPSBbXG4gICAgeyBJZDogJzEnLCBOYW1lOiAnTWFuYWdlcicgfSxcbiAgICB7IElkOiAnMicsIE5hbWU6ICdBZG1pbmlzdHJhdG9yJyB9LFxuICAgIHsgSWQ6ICczJywgTmFtZTogJ0plbG9tJyB9LFxuICBdO1xuXG4gIGdldFBhcmVudExhYmVsKGNvbnRleHQ6IGFueSk6IHN0cmluZyB7XG4gICAgY29uc29sZS5sb2coeyBNaXNzaW5nT2JqOiB0aGlzLm1pc3NpbmdPYmplY3QgfSk7XG4gICAgcmV0dXJuIHRoaXMubWlzc2luZ09iamVjdC5OYW1lO1xuICB9XG5cbiAgYXN5bmMgbG9hZE1vcmVQYXJlbnRzKGV2ZW50OiBEcm9wZG93bkxvYWRFdmVudCk6IFByb21pc2U8VGVzdFBhcmVudE9iamVjdFtdPiB7XG4gICAgY29uc29sZS5sb2coeyBQYXJlbnRMb2FkRXZlbnQ6IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoZXZlbnQpKSB9KTtcbiAgICByZXR1cm4gYXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUpID0+XG4gICAgICBzZXRUaW1lb3V0KFxuICAgICAgICAoKSA9PlxuICAgICAgICAgIHJlc29sdmUoW1xuICAgICAgICAgICAgeyBJZDogJzEnLCBOYW1lOiAnSmltbHknIH0sXG4gICAgICAgICAgICB7IElkOiAnMicsIE5hbWU6ICdKZWNpbCcgfSxcbiAgICAgICAgICAgIHsgSWQ6ICczJywgTmFtZTogJ0plbG9tJyB9LFxuICAgICAgICAgICAgeyBJZDogJzQnLCBOYW1lOiAnSmVtaW1hJyB9LFxuICAgICAgICAgICAgeyBJZDogJzUnLCBOYW1lOiAnQWtpbnR1bmRlJyB9LFxuICAgICAgICAgIF0pLFxuICAgICAgICAzMDAwXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIG9uRHJvcGRvd25DaGFuZ2UoZXZlbnQ6IERyb3Bkb3duQ2hhbmdlRXZlbnQpOiB2b2lkIHtcbiAgICAvLyBjb25zb2xlLmxvZyh7XG4gICAgLy8gICAnVGVzdCBQYXJlbnQgVmFsdWUnOiB0aGlzLnNlbGVjdGVkUGFyZW50LFxuICAgIC8vICAgLi4uXG4gICAgLy8gfSk7XG4gIH1cblxuICBvblNlbGVjdGlvbkNoYW5nZShzZWxlY3RlZFJvd3M6IFVzZXJNYW5hZ2VtZW50W10pIHtcbiAgICBjb25zb2xlLmxvZygnU2VsZWN0aW9uIGNoYW5nZWQ6Jywgc2VsZWN0ZWRSb3dzKTtcbiAgICAvLyBIYW5kbGUgdGhlIHNlbGVjdGlvbiBjaGFuZ2VcbiAgfVxuXG4gIGhhbmRsZUV4cG9ydChleHBvcnRlZERhdGE6IFBhcnRpYWw8YW55PltdKSB7XG4gICAgY29uc29sZS5sb2coJ0V4cG9ydGVkIGRhdGE6JywgZXhwb3J0ZWREYXRhKTtcbiAgICB0aGlzLmRvd25sb2FkQ1NWKGV4cG9ydGVkRGF0YSk7XG4gIH1cblxuICBwcml2YXRlIGRvd25sb2FkQ1NWKGRhdGE6IFBhcnRpYWw8YW55PltdKSB7XG4gICAgY29uc3QgaGVhZGVycyA9IE9iamVjdC5rZXlzKGRhdGFbMF0pO1xuICAgIGNvbnN0IGNzdkNvbnRlbnQgPSBbXG4gICAgICBoZWFkZXJzLmpvaW4oJywnKSxcbiAgICAgIC4uLmRhdGEubWFwKChyb3cpID0+IGhlYWRlcnMubWFwKChoZWFkZXIpID0+IHJvd1toZWFkZXJdKS5qb2luKCcsJykpLFxuICAgIF0uam9pbignXFxuJyk7XG5cbiAgICBjb25zdCBibG9iID0gbmV3IEJsb2IoW2NzdkNvbnRlbnRdLCB7IHR5cGU6ICd0ZXh0L2NzdjtjaGFyc2V0PXV0Zi04OycgfSk7XG4gICAgY29uc3QgbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcbiAgICBpZiAobGluay5kb3dubG9hZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb25zdCB1cmwgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpO1xuICAgICAgbGluay5zZXRBdHRyaWJ1dGUoJ2hyZWYnLCB1cmwpO1xuICAgICAgbGluay5zZXRBdHRyaWJ1dGUoJ2Rvd25sb2FkJywgJ2V4cG9ydC5jc3YnKTtcbiAgICAgIGxpbmsuc3R5bGUudmlzaWJpbGl0eSA9ICdoaWRkZW4nO1xuICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChsaW5rKTtcbiAgICAgIGxpbmsuY2xpY2soKTtcbiAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQobGluayk7XG4gICAgfVxuICB9XG5cbiAgLy8gYXBwbHlGaWx0ZXJzKCkge1xuICAvLyAgIHRoaXMuZmlsdGVyZWREYXRhID0gdGhpcy5kYXRhLmZpbHRlcigoaXRlbSkgPT4ge1xuICAvLyAgICAgcmV0dXJuIHRoaXMuZmlsdGVyQXJyYXkuZXZlcnkoKGZpbHRlcikgPT4ge1xuICAvLyAgICAgICBpZiAoZmlsdGVyLmNoZWNrZWQpIHtcbiAgLy8gICAgICAgICBzd2l0Y2ggKGZpbHRlci50eXBlKSB7XG4gIC8vICAgICAgICAgICBjYXNlIERhdGFGaWx0ZXJUeXBlLlN0cmluZzpcbiAgLy8gICAgICAgICAgICAgcmV0dXJuIGl0ZW1bZmlsdGVyLm5hbWVdLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoZmlsdGVyLm5hbWUudG9Mb3dlckNhc2UoKSk7XG4gIC8vICAgICAgICAgICBjYXNlIERhdGFGaWx0ZXJUeXBlLkRhdGU6XG4gIC8vICAgICAgICAgICAgIHJldHVybiBuZXcgRGF0ZShpdGVtW2ZpbHRlci5uYW1lXSkgPj0gbmV3IERhdGUoZmlsdGVyLm5hbWUpO1xuICAvLyAgICAgICAgICAgZGVmYXVsdDpcbiAgLy8gICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gIC8vICAgICAgICAgfVxuICAvLyAgICAgICB9XG4gIC8vICAgICAgIHJldHVybiB0cnVlO1xuICAvLyAgICAgfSk7XG4gIC8vICAgfSk7XG4gIC8vIH1cbiAgZ2V0Q2FyZERhdGFCeU1haWxBZGRyZXNzKG1haWxBZGRyZXNzOiBzdHJpbmcpOiBDYXJkRGF0YSB8IHVuZGVmaW5lZCB7XG4gICAgY29uc29sZS5sb2coJ2NhcmREYXRhIGFycmF5OicsIHRoaXMuY2FyZERhdGEpO1xuICAgIGNvbnNvbGUubG9nKG1haWxBZGRyZXNzKTtcblxuICAgIHJldHVybiB0aGlzLmNhcmREYXRhLmZpbmQoKHsgZGF0YSB9KSA9PiBkYXRhPy5NYWlsQWRkcmVzcyA9PT0gbWFpbEFkZHJlc3MpO1xuICB9XG5cbiAgb3BlbkRldGFpbFZpZXcobWFpbEFkZHJlc3M6IHN0cmluZykge1xuICAgIGNvbnN0IGNhcmRJdGVtID0gdGhpcy5nZXRDYXJkRGF0YUJ5TWFpbEFkZHJlc3MobWFpbEFkZHJlc3MpO1xuICAgIGNvbnNvbGUubG9nKGNhcmRJdGVtKTtcblxuICAgIGlmIChjYXJkSXRlbSAmJiB0aGlzLmNhcmREYXRhVmlldykge1xuICAgICAgdGhpcy5kYXRhVmlldy50b2dnbGVWaWV3KCk7XG4gICAgICAvLyBGaXJzdCByZXNldCBhbGwgc2VsZWN0aW9uc1xuICAgICAgdGhpcy5jYXJkRGF0YS5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgIGl0ZW0uc2VsZWN0ZWQgPSBmYWxzZTtcbiAgICAgICAgaWYgKGl0ZW0uY2hpbGRyZW4pIHtcbiAgICAgICAgICBpdGVtLmNoaWxkcmVuLmZvckVhY2goKGNoaWxkKSA9PiAoY2hpbGQuc2VsZWN0ZWQgPSBmYWxzZSkpO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgLy8gU2V0IHRoZSBzZWxlY3RlZCBpdGVtXG4gICAgICBjYXJkSXRlbS5zZWxlY3RlZCA9IHRydWU7XG4gICAgICB0aGlzLmN1cnJlbnREYXRhID0gdGhpcy5jYXJkRGF0YVZpZXcub25JdGVtQ2xpY2soY2FyZEl0ZW0pO1xuXG4gICAgICAvLyBGb3JjZSBjaGFuZ2UgZGV0ZWN0aW9uIGlmIG5lZWRlZFxuICAgICAgLy8gdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuICB9XG5cbiAgbmV3SXRlbSgpIHtcbiAgICBjb25zdCBuZXdEYXRhID0gdGhpcy5hZGROZXdVc2VyVG9Nb2NrRGF0YSgpO1xuICAgIGNvbnN0IG5ld0NhcmREYXRhOiBDYXJkRGF0YSA9IHtcbiAgICAgIHNlbGVjdGVkOiB0cnVlLFxuICAgICAgdGl0bGU6IGAke25ld0RhdGEuRmlyc3ROYW1lfSAke25ld0RhdGEuTGFzdE5hbWV9YCxcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgLi4ubmV3RGF0YSxcbiAgICAgIH0gYXMgUGFydGlhbDxVc2VyTWFuYWdlbWVudD4sXG4gICAgICBib2R5OiBbXG4gICAgICAgIHsgdGl0bGU6ICdOYW1lJywgdmFsdWU6IGAke25ld0RhdGEuRmlyc3ROYW1lfSAke25ld0RhdGEuTGFzdE5hbWV9YCB9LFxuICAgICAgICB7IHRpdGxlOiAnRS1NYWlsIEFkZHJlc3MnLCB2YWx1ZTogbmV3RGF0YS5NYWlsQWRkcmVzcyB9LFxuICAgICAgICB7IHRpdGxlOiAnUGhvbmUgTnVtYmVyJywgdmFsdWU6IG5ld0RhdGEuUGhvbmVOdW1iZXIgPz8gJycgfSxcbiAgICAgIF0sXG4gICAgICBjaGlsZHJlbjogW10sXG4gICAgfTtcblxuICAgIGlmICh0aGlzLmRhdGFWaWV3LmlzVGFibGVWaWV3KSB7XG4gICAgICB0aGlzLmRhdGFWaWV3LnRvZ2dsZVZpZXcoKTtcbiAgICB9XG4gICAgLy8gRmlyc3QgcmVzZXQgYWxsIHNlbGVjdGlvbnNcbiAgICB0aGlzLmNhcmREYXRhLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgIGl0ZW0uc2VsZWN0ZWQgPSBmYWxzZTtcbiAgICAgIGlmIChpdGVtLmNoaWxkcmVuKSB7XG4gICAgICAgIGl0ZW0uY2hpbGRyZW4uZm9yRWFjaCgoY2hpbGQpID0+IChjaGlsZC5zZWxlY3RlZCA9IGZhbHNlKSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgLy8gdGhpcy5jYXJkRGF0YSA9IFtuZXdDYXJkRGF0YV0uY29uY2F0KHRoaXMuY2FyZERhdGEpO1xuICAgIC8vIHRoaXMuY2FyZERhdGFWaWV3Lm9uSXRlbUNsaWNrKG5ld0NhcmREYXRhKVxuXG4gICAgdGhpcy5jYXJkRGF0YSA9IFtuZXdDYXJkRGF0YSwgLi4udGhpcy5jYXJkRGF0YV07XG5cbiAgICB0aGlzLmN1cnJlbnREYXRhID0gdGhpcy5jYXJkRGF0YVZpZXcub25JdGVtQ2xpY2sobmV3Q2FyZERhdGEpO1xuICB9XG5cbiAgLy8gdG9nZ2xlQ2hpbGRWaWV3KGFjdGlvbjogc3RyaW5nKSB7XG4gIC8vICAgaWYgKGFjdGlvbiA9PT0gJ2NyZWF0ZScpIHtcbiAgLy8gICAgIGNvbnN0IG5ld0NhcmQ6IENhcmREYXRhID0ge1xuICAvLyAgICAgICBzZWxlY3RlZDogZmFsc2UsXG4gIC8vICAgICAgIHRpdGxlOiAnTmV3IENhcmQnLCAvLyBEZWZhdWx0IHRpdGxlLCBjaGFuZ2UgYXMgbmVlZGVkXG4gIC8vICAgICAgIGRhdGE6IHsgTmFtZTogJycsIE1haWxBZGRyZXNzOiAnJywgUGhvbmVOdW1iZXI6ICcnIH0sXG4gIC8vICAgICAgIGJvZHk6IFtcbiAgLy8gICAgICAgICB7IHRpdGxlOiAnTmFtZScsIHZhbHVlOiAnJyB9LFxuICAvLyAgICAgICAgIHsgdGl0bGU6ICdFLU1haWwgQWRkcmVzcycsIHZhbHVlOiAnJyB9LFxuICAvLyAgICAgICAgIHsgdGl0bGU6ICdQaG9uZSBOdW1iZXInLCB2YWx1ZTogJycgfVxuICAvLyAgICAgICBdLFxuICAvLyAgICAgICBjaGlsZHJlbjogW11cbiAgLy8gICAgIH07XG5cbiAgLy8gICAgIHRoaXMuY2FyZERhdGEucHVzaChuZXdDYXJkKTtcbiAgLy8gICB9XG4gIC8vIH1cblxuICBjbGVhckRhdGEoKSB7XG4gICAgdGhpcy5jdXJyZW50RGF0YSA9IHt9IGFzIENhcmREYXRhO1xuICB9XG5cbiAgbG9hZE1vcmUoKSB7XG4gICAgdGhpcy5jYXJkRGF0YSA9IHRoaXMuY2FyZERhdGEuY29uY2F0KHRoaXMuY2FyZERhdGEpO1xuICB9XG5cbiAgb25Db2x1bW5DaGFuZ2UoZXZlbnQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnNob3dDb2x1bW4gPSBldmVudDtcbiAgfVxuXG4gIG9uU29ydENoYW5nZShldmVudDogYm9vbGVhbikge1xuICAgIHRoaXMuc2hvd1NvcnQgPSBldmVudDtcbiAgICBjb25zb2xlLmxvZyhldmVudCk7XG4gIH1cblxuICBvbkNvbHVtbnNVcGRhdGVkKHVwZGF0ZWRDb2x1bW5zOiBJRGF0YUZpbHRlcltdKSB7XG4gICAgdGhpcy5vbkNvbHVtbkNoYW5nZShmYWxzZSk7XG4gICAgdGhpcy5zZWxlY3RlZENvbHVtbkNvdW50ID0gdXBkYXRlZENvbHVtbnMubGVuZ3RoO1xuICB9XG5cbiAgb25Tb3J0VXBkYXRlZCh1cGRhdGVkU29ydHM6IElEYXRhRmlsdGVyW10pIHtcbiAgICB0aGlzLm9uU29ydENoYW5nZShmYWxzZSk7XG4gICAgdGhpcy5zZWxlY3RlZFNvcnRDb3VudCA9IHVwZGF0ZWRTb3J0cy5sZW5ndGg7XG4gICAgY29uc29sZS5sb2codXBkYXRlZFNvcnRzKTtcbiAgfVxuXG4gIG9uVmlld0NoYW5nZShpc0dyaWRWaWV3OiBib29sZWFuKTogdm9pZCB7fVxuXG4gIG9uU3RhdGVDaGFuZ2UoZXZlbnQ6IHsga2V5OiBzdHJpbmc7IHZhbHVlOiBib29sZWFuIH0pOiB2b2lkIHtcbiAgICBjb25zb2xlLmxvZyhgU3RhdGUgY2hhbmdlZCBmb3IgJHtldmVudC5rZXl9OmAsIGV2ZW50LnZhbHVlKTtcbiAgICBpZiAoZXZlbnQua2V5ID09PSAnY3JlYXRlJykge1xuICAgICAgY29uc29sZS5sb2coJ3BlYWNlIGlzIGEgYm95Jyk7XG5cbiAgICAgIHRoaXMubmV3SXRlbSgpO1xuXG4gICAgICAvLyBjb25zdCBuZXdVc2VyID0gdGhpcy5uZXdJdGVtKClcblxuICAgICAgLy8gaWYgKCBuZXdVc2VyICYmIHRoaXMuY2FyZERhdGFWaWV3KSB7XG4gICAgICAvLyAgIHRoaXMuZGF0YVZpZXcudG9nZ2xlVmlldygpO1xuICAgICAgLy8gICAvLyBGaXJzdCByZXNldCBhbGwgc2VsZWN0aW9uc1xuICAgICAgLy8gICB0aGlzLmNhcmREYXRhLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgIC8vICAgICBpdGVtLnNlbGVjdGVkID0gZmFsc2U7XG4gICAgICAvLyAgICAgaWYgKGl0ZW0uY2hpbGRyZW4pIHtcbiAgICAgIC8vICAgICAgIGl0ZW0uY2hpbGRyZW4uZm9yRWFjaCgoY2hpbGQpID0+IChjaGlsZC5zZWxlY3RlZCA9IGZhbHNlKSk7XG4gICAgICAvLyAgICAgfVxuICAgICAgLy8gICB9KTtcblxuICAgICAgLy8gICB0aGlzLmN1cnJlbnREYXRhID0gdGhpcy5jYXJkRGF0YVZpZXcub25JdGVtQ2xpY2sobmV3VXNlcik7XG5cbiAgICAgIC8vICAgLy8gRm9yY2UgY2hhbmdlIGRldGVjdGlvbiBpZiBuZWVkZWRcbiAgICAgIC8vICAgLy8gdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAvLyB9XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBnYXAtNCBtZXNzYWdlLWxvZy1jb250YWluZXJcIj5cbiAgPHZlcmJlbi1kYXRhLXZpZXdcbiAgICAjdmR2XG4gICAgW3ZpZXdTdGF0ZV09XCJ7XG4gICAgICBpc1NlYXJjaDogdHJ1ZSxcbiAgICAgIGlzQ29sdW1uOiB0cnVlLFxuICAgICAgaXNGaWx0ZXI6IHRydWUsXG4gICAgICBpc1NvcnQ6IHRydWUsXG4gICAgICBpc0V4cG9ydDogdHJ1ZSxcbiAgICAgIGlzU2VsZWN0OiB0cnVlLFxuICAgICAgaXNDcmVhdGU6IHRydWUsXG4gICAgICBpc1RvZ2dsZTp0cnVlXG4gICAgfVwiXG4gICAgW2J1dHRvbkNsYXNzXT1cIidteS1jdXN0b20tYnV0dG9uLWNsYXNzJ1wiXG4gICAgW2ljb25DbGFzc109XCInbXktaWNvbi1jbGFzcydcIlxuICAgIFthY3RpdmVJY29uQ2xhc3NdPVwiJ215LWFjdGl2ZS1pY29uLWNsYXNzJ1wiXG4gICAgW3NlbGVjdGVkQ29sdW1uQ291bnRdPVwiMFwiXG4gICAgW3NlbGVjdGVkU29ydENvdW50XT1cIjBcIlxuICAgIFtzZWxlY3RlZEZpbHRlclRhYmxlQ291bnRdPVwiMFwiXG4gICAgKHZpZXdDaGFuZ2UpPVwib25WaWV3Q2hhbmdlKCRldmVudClcIlxuICAgIChzdGF0ZUNoYW5nZSk9XCJvblN0YXRlQ2hhbmdlKCRldmVudClcIlxuICA+XG4gICAgPGRpdiBjbGFzcz1cIm10LTJcIiB0YWJsZS1jb250ZW50PlxuICAgICAgPGxpYi1kYXRhLXRhYmxlXG4gICAgICAgIFtkYXRhXT1cImRhdGFcIlxuICAgICAgICBbY29sdW1uc109XCJjb2x1bW5zXCJcbiAgICAgICAgW3N0eWxlQ29uZmlnXT1cInN0eWxlc1wiXG4gICAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwib25TZWxlY3Rpb25DaGFuZ2UoJGV2ZW50KVwiXG4gICAgICA+XG4gICAgICA8bmctY29udGFpbmVyIGxpYkNvbHVtbj1cInNlbGVjdFwiPlxuICAgICAgICA8bmctdGVtcGxhdGUgI2NlbGwgbGV0LWlzU2VsZWN0ZWQ9XCJpc1NlbGVjdGVkXCIgbGV0LXRvZ2dsZVJvd1NlbGVjdGlvbj1cInRvZ2dsZVJvd1NlbGVjdGlvblwiPlxuICAgICAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBbY2hlY2tlZF09XCJpc1NlbGVjdGVkXCIgKGNoYW5nZSk9XCJ0b2dnbGVSb3dTZWxlY3Rpb24oKVwiIC8+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjaGVhZGVyIGxldC1hbGxSb3dzU2VsZWN0ZWQ9XCJhbGxSb3dzU2VsZWN0ZWRcIiBsZXQtc29tZVJvd3NTZWxlY3RlZD1cInNvbWVSb3dzU2VsZWN0ZWRcIlxuICAgICAgICAgIGxldC10b2dnbGVBbGxSb3dzPVwidG9nZ2xlQWxsUm93c1wiPlxuICAgICAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBbY2hlY2tlZF09XCJhbGxSb3dzU2VsZWN0ZWQoKVwiIFtpbmRldGVybWluYXRlXT1cInNvbWVSb3dzU2VsZWN0ZWQoKVwiXG4gICAgICAgICAgICAoY2hhbmdlKT1cInRvZ2dsZUFsbFJvd3MoKVwiIC8+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBsaWJDb2x1bW49XCJjcmVhdGVkQXRcIj5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgI2NlbGwgbGV0LXZhbHVlPlxuICAgICAgICAgICAge3sgdmFsdWUgfCBkYXRlIH19XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy1jb250YWluZXIgbGliQ29sdW1uPVwiYWN0aW9uc1wiPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjY2VsbCBsZXQtdmFsdWUgbGV0LWRlbGV0ZVJvdyA+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBnYXAtNlwiPlxuICAgICAgICAgICAgICA8dmVyYmVuLXN2Z1xuICAgICAgICAgICAgICAgIChjbGljayk9XCJvcGVuRGV0YWlsVmlldyh2YWx1ZSlcIlxuICAgICAgICAgICAgICAgIGljb249XCJlZGl0XCJcbiAgICAgICAgICAgICAgICBbd2lkdGhdPVwiMTVcIlxuICAgICAgICAgICAgICAgIFtoZWlnaHRdPVwiMTVcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIlxuICAgICAgICAgICAgICA+PC92ZXJiZW4tc3ZnPlxuXG4gICAgICAgICAgICAgIDx2ZXJiZW4tc3ZnXG4gICAgICAgICAgICAgICAgaWNvbj1cImRlbGV0ZVwiXG4gICAgICAgICAgICAgICAgW3dpZHRoXT1cIjE1XCJcbiAgICAgICAgICAgICAgICBbaGVpZ2h0XT1cIjE1XCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiZGVsZXRlUm93KClcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIlxuICAgICAgICAgICAgICA+PC92ZXJiZW4tc3ZnPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgI2hlYWRlcj5cbiAgICAgICAgICAgIDxzdHJvbmc+QWN0aW9uczwvc3Ryb25nPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyIGxpYkNvbHVtbj1cInN0YXR1c1wiPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICNjZWxsXG4gICAgICAgICAgbGV0LWlzRWRpdGluZz1cImlzRWRpdGluZ1wiXG4gICAgICAgICAgbGV0LXRvZ2dsZVJvd0VkaXQ9XCJ0b2dnbGVSb3dFZGl0XCJcbiAgICAgICAgICBsZXQtZGVsZXRlUm93PVwiZGVsZXRlUm93XCJcbiAgICAgICAgICBsZXQtdmFsdWU9XCJ2YWx1ZVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHZlcmJlbmEtYmFkZ2VcbiAgICAgICAgICAgYm9yZGVyUmFkaXVzPVwiMjBweFwiXG4gICAgICAgICAgIHdpZHRoPVwiMTIxcHhcIlxuICAgICAgICAgICAgdGV4dD1cInt7dmFsdWV9fVwiXG4gICAgICAgICAgICBiZ0NvbG9yPVwiI0Q2RjNFNlwiXG4gICAgICAgICAgICB0ZXh0Q29sb3I9XCIjMkRCNzZGXCJcbiAgICAgICAgICAgIHBkPVwiNXB4IDE1cHhcIlxuICAgICAgICAgICAgZm9udFNpemU9XCIxNnB4XCJcbiAgICAgICAgICA+XG5cblxuICAgICAgICA8L3ZlcmJlbmEtYmFkZ2U+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDwvbGliLWRhdGEtdGFibGU+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjYXJkLWNvbnRlbnQ+XG4gICAgICA8dmVyYmVuLWNhcmQtZGF0YS12aWV3XG4gICAgICAgIGJvcmRlclJhZGl1cz1cIjEycHhcIlxuICAgICAgICAobG9hZE1vcmVDbGljayk9XCJsb2FkTW9yZSgpXCJcbiAgICAgICAgI3ZkY3ZcbiAgICAgICAgZGF0YUlkPVwiTWFpbEFkZHJlc3NcIlxuICAgICAgICBib3JkZXI9XCI1cHhcIlxuICAgICAgICBbY2FyZERhdGFMaXN0XT1cImNhcmREYXRhXCJcbiAgICAgICAgcmJnQ29sb3I9XCIjZjVmNmY5XCJcbiAgICAgICAgbWc9XCIwcHhcIlxuICAgICAgICBjbGFzcz1cImdhcC0xXCJcbiAgICAgID5cbiAgICAgICAgPHZlcmJlbi1sZWZ0LWNhcmQtZGF0YS12aWV3IGNsYXNzPVwibS0wIGdhcC0yXCIgPlxuICAgICAgICAgIDx2ZXJiZW4tbGVmdC1jYXJkLWRhdGFcbiAgICAgICAgICAgICN2bGNkXG4gICAgICAgICAgICBbcGFyZW50XT1cInZkY3ZcIlxuICAgICAgICAgICAgZGF0YUlkPVwiTWFpbEFkZHJlc3NcIlxuICAgICAgICAgICAgY2xhc3M9XCJiZy1zZWNvbmRhcnktMTAwICByb3VuZGVkLXhsIHNjcm9sbC1ubyBib3JkZXItcHJpbWFyeSBib3JkZXItWzFweF0gZ2FwLTEgaC1mdWxsIGp1c3RpZnktcHAgbS0wIG92ZXJmbG93LXktYXV0byBvdmVyZmxvdy1oaWRkZW5cIlxuICAgICAgICAgICAgW2NhcmREYXRhTGlzdF09XCJjYXJkRGF0YVwiXG5cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI2NhcmQgbGV0LWl0ZW0+XG4gICAgICAgICAgICAgIDxkaXYgKGNsaWNrKT1cImN1cnJlbnREYXRhID0gdmRjdi5vbkl0ZW1DbGljayhpdGVtKVwiIGNsYXNzPVwiZmxleFwiPlxuICAgICAgICAgICAgICAgIDx2ZXJiZW4tc3ZnXG4gICAgICAgICAgICAgICAgICBbd2lkdGhdPVwiMTVcIlxuICAgICAgICAgICAgICAgICAgW2hlaWdodF09XCIxNVwiXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwidmxjZC5zaG93Q2hpbGRyZW4oaXRlbSlcIlxuICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwidmxjZC5zaG93VG9nZ2xlKGl0ZW0pID8gJ3Zpc2libGUnIDogJ2ludmlzaWJsZSdcIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpdGVtcy1jZW50ZXIgZmxleCAgY3Vyc29yLXBvaW50ZXJcIlxuICAgICAgICAgICAgICAgICAgW2ljb25dPVwiaXRlbS5pc0NoaWxkcmVuRXhwYW5kZWQgPyAnbWludXMnIDogJ3BsdXMnXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjdXJyZW50RGF0YSA9IHZkY3Yub25JdGVtQ2xpY2soaXRlbSlcIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGN1cnNvci1wb2ludGVyICBiZy1zZWNvbmRhcnkgcm91bmRlZC14bCBvdmVyZmxvdy1oaWRkZW4gdy1bMzI5cHhdICFtYXgtdy1bMzI5cHhdXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidy0yIHJvdW5kZWQteGwgcm91bmRlZC10ci1ub25lIHJvdW5kZWQtYnItbm9uZSBvdmVyZmxvdy1oaWRkZW5cIlxuICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJcbiAgICAgICAgICAgICAgICAgICAgICBpdGVtLnNlbGVjdGVkID8gJ2JnLXByaW1hcnknIDogJ2JnLXNlY29uZGFyeS0yMDAnXG4gICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICA+PC9kaXY+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCB3LWZ1bGwgIFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiIGdyaWQgZ3JpZC1jb2xzLTUgaXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIiBjb2wtc3Bhbi0zXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZvbnQtc2VtaWJvbGQgdGV4dC1bMTZweF0gdGV4dC1bIzQwNDA0MF1cIj57e1xuICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtLnRpdGxlXG4gICAgICAgICAgICAgICAgICAgICAgICB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInBob25lXCIgY2xhc3M9XCJ0ZXh0LVsxMHB4XSBmb250LWxpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+UGhvbmUgTnVtYmVyOjwvbGFiZWxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBpZD1cInBob25lXCIgY2xhc3M9XCJ0ZXh0LVsxM3B4XSBmb250LW1lZGl1bSB0cnVuY2F0ZSB0ZXh0LXdyYXBcIj57e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0uZGF0YS5QaG9uZU51bWJlclxuICAgICAgICAgICAgICAgICAgICAgICAgICB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCIgY29sLXNwYW4tMiBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiZ3JpZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwicGhvbmVcIiBjbGFzcz1cInRleHQtWzEwcHhdIGZvbnQtbGlnaHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5Sb2xlPC9sYWJlbFxuICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGlkPVwicGhvbmVcIiBjbGFzcz1cInRleHQtc20gZm9udC1tZWRpdW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5NYW5hZ2VyPC9zcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCIgYmctWyNDQUUxQ0NdIHRleHQtY2VudGVyIHRleHQtWyM0QUJCNTRdIHRleHQtWzEzcHhdIG10LVs4cHhdIHJvdW5kZWQtWzlweF1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2l0ZW0uZGF0YS5TdGF0dXN9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxsaWItdXNlci1hY2Nlc3MtcmVxdWVzdC1zdGF0dXMtYmFkZ2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0YXR1c109XCJpdGVtLmRhdGEuU3RhdHVzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L2xpYi11c2VyLWFjY2Vzcy1yZXF1ZXN0LXN0YXR1cy1iYWRnZT4gLS0+XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImZsZXhcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZvbnQtbm9ybWFsIHRleHQtc21cIj57eyBpdGVtLnRpdGxlIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgQGZvciAoY2lJdGVtIG9mIGl0ZW0uYm9keTsgdHJhY2sgY2lJdGVtLnZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtbXV0ZWQgZm9udC1saWdodCB0ZXh0LXhzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID57eyBjaUl0ZW0udGl0bGUgfX06PC9zcGFuXG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1ibGFja1wiPnt7IGNpSXRlbS52YWx1ZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIH0gLS0+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgIDwvdmVyYmVuLWxlZnQtY2FyZC1kYXRhPlxuICAgICAgICA8L3ZlcmJlbi1sZWZ0LWNhcmQtZGF0YS12aWV3PlxuXG4gICAgICAgIDx2ZXJiZW4tcmlnaHQtY2FyZC1kYXRhLXZpZXc+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNwYXJlbnQ+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIiBiZy1zZWNvbmRhcnktMTAwIHB5LTEwIGZsZXggZmxleC1jb2wgZ2FwLTIwIHB4LTlcIj5cbiAgICAgICAgICAgIDxsaWItdXNlci1yZXF1ZXN0LWZvcm1cbiAgICAgICAgICAgIFtjdXJyZW50RGF0YV09XCJjdXJyZW50RGF0YVwiXG4gICAgICAgICAgICAoc3dpdGNoVmlldyk9XCJ2ZHYudG9nZ2xlVmlldygpXCJcbiAgICAgICAgICAgID48L2xpYi11c2VyLXJlcXVlc3QtZm9ybT5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktYmV0d2VlbiBib3R0b20tOCBsZWZ0LTAgcmlnaHQtMCBwLTNcIj5cbiAgICAgICAgICAgICAgPHZlcmJlbmEtYnV0dG9uIHRleHQ9XCJEZWxldGVcIiBiZ0NvbG9yPVwiIzk5OTk5OVwiIHRleHRDb2xvcj1cIndoaXRlXCJcbiAgICAgICAgICAgICAgICBib3JkZXI9XCIxcHggc29saWQgIzk5OTk5OVwiPjwvdmVyYmVuYS1idXR0b24+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGdhcC0zXCI+XG4gICAgICAgICAgICAgICAgPHZlcmJlbmEtYnV0dG9uIChjbGljayk9XCJ2ZHYudG9nZ2xlVmlldygpXCIgdGV4dD1cIlN3aXRjaCBUbyBUYWJsZVwiXG4gICAgICAgICAgICAgICAgICBzdHlsZVR5cGU9XCJ5bHctb3V0bGluZVwiPjwvdmVyYmVuYS1idXR0b24+XG4gICAgICAgICAgICAgICAgPHZlcmJlbmEtYnV0dG9uICB0ZXh0PVwiU2F2ZVwiIGJnQ29sb3I9XCIjRkZFNjgxXCIgdGV4dENvbG9yPVwiIzQwNDA0MFwiXG4gICAgICAgICAgICAgICAgICBib3JkZXI9XCIxcHggc29saWQgI0ZGRTY4MVwiPlxuICAgICAgICAgICAgICAgICAgPCEtLSAoY2xpY2spPVwiXCIgLS0+XG4gICAgICAgICAgICAgICAgPC92ZXJiZW5hLWJ1dHRvbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L3ZlcmJlbi1yaWdodC1jYXJkLWRhdGEtdmlldz5cblxuICAgICAgICA8dmVyYmVuLWNhcmQtZGF0YS12aWV3LWZvb3RlciBjbGFzcz1cImZsb2F0LXJpZ2h0XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZ2FwLTJcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicGFnaW5hdG9yLXRleHRcIlxuICAgICAgICAgICAgICA+e3sgY2FyZERhdGEubGVuZ3RoIH19IHJlY29yZHMgbG9hZGVkPC9zcGFuXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJsb2FkTW9yZSgpXCIgY2xhc3M9XCJsb2FkLW1vcmVcIj5Mb2FkIG1vcmU8L2J1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC92ZXJiZW4tY2FyZC1kYXRhLXZpZXctZm9vdGVyPlxuICAgICAgPC92ZXJiZW4tY2FyZC1kYXRhLXZpZXc+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjb2x1bW4tY29udGVudD5cbiAgICAgIDx2ZXJiZW4tdmlzaWJsZS1jb2x1bW5cbiAgICAgICAgKGNvbHVtbnNVcGRhdGVkKT1cIm9uQ29sdW1uc1VwZGF0ZWQoJGV2ZW50KVwiXG4gICAgICAgIFtib3JkZXJdPVwiJzFweCBzb2xpZCByZ2JhKDIxMiwgMTYwLCA3LCAxKSdcIlxuICAgICAgICBib3JkZXJSYWRpdXM9XCIxMHB4XCJcbiAgICAgICAgYm94U2hhZG93PVwiMnB4IDJweCAycHggMHB4IHNpbHZlclwiXG4gICAgICAgIGJnQ29sb3I9XCJ3aGl0ZVwiXG4gICAgICAgIHdpZHRoPVwiNDAwcHhcIlxuICAgICAgICB0ZXh0Q29sb3I9XCJibGFja1wiXG4gICAgICAgIHBkPVwiMXJlbVwiXG4gICAgICAgIHByaW1hcnlDb2xvcj1cIiNGRkU2ODFcIlxuICAgICAgICBzZWNvbmRhcnlDb2xvcj1cIiMzNDc5RTlcIlxuICAgICAgICBbY29sdW1uc109XCJ2aXNpYmxlQ29sdW1uc1wiXG4gICAgICAgIFtkaXNwbGF5ZWRDb2x1bW5zXT1cIjVcIlxuICAgICAgPjwvdmVyYmVuLXZpc2libGUtY29sdW1uPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgZmlsdGVyLWNvbnRlbnQ+XG4gICAgICA8dmVyYmVuLXRhYmxlLWZpbHRlclxuICAgICAgICBbYm9yZGVyXT1cIicxcHggc29saWQgcmdiYSgyMTIsIDE2MCwgNywgMSknXCJcbiAgICAgICAgYm9yZGVyUmFkaXVzPVwiMTBweFwiXG4gICAgICAgIGJveFNoYWRvdz1cIjJweCAycHggMnB4IDBweCBzaWx2ZXJcIlxuICAgICAgICBiZ0NvbG9yPVwid2hpdGVcIlxuICAgICAgICB3aWR0aD1cIjQyMHB4XCJcbiAgICAgICAgdGV4dENvbG9yPVwiYmxhY2tcIlxuICAgICAgICBwZD1cIjFyZW1cIlxuICAgICAgICBwcmltYXJ5Q29sb3I9XCIjRkZFNjgxXCJcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3I9XCIjMzQ3OUU5XCJcbiAgICAgICAgdGVydGlhcnlDb2xvcj1cIiM0MDQwNDBcIlxuICAgICAgICBbZmlsdGVyT3B0aW9uc109XCJmaWx0ZXJBcnJheVwiXG4gICAgICAgIFttYXhGaWx0ZXJMZW5ndGhdPVwiM1wiXG4gICAgICA+PC92ZXJiZW4tdGFibGUtZmlsdGVyPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgc29ydC1jb250ZW50PlxuICAgICAgPHZlcmJlbi1zb3J0LXRhYmxlXG4gICAgICAgIChzZWxlY3RlZE9wdGlvbnMpPVwib25Tb3J0VXBkYXRlZCgkZXZlbnQpXCJcbiAgICAgICAgW2JvcmRlcl09XCInMXB4IHNvbGlkIHJnYmEoMjEyLCAxNjAsIDcsIDEpJ1wiXG4gICAgICAgIGJvcmRlclJhZGl1cz1cIjEwcHhcIlxuICAgICAgICBib3hTaGFkb3c9XCIycHggMnB4IDJweCAwcHggc2lsdmVyXCJcbiAgICAgICAgYmdDb2xvcj1cIndoaXRlXCJcbiAgICAgICAgd2lkdGg9XCI0MDBweFwiXG4gICAgICAgIHRleHRDb2xvcj1cImJsYWNrXCJcbiAgICAgICAgcGQ9XCIxcmVtXCJcbiAgICAgICAgcHJpbWFyeUNvbG9yPVwiI0ZGRTY4MVwiXG4gICAgICAgIHNlY29uZGFyeUNvbG9yPVwiIzM0NzlFOVwiXG4gICAgICAgIHRlcnRpYXJ5Q29sb3I9XCIjNDA0MDQwXCJcbiAgICAgICAgW2VuYWJsZURyYWdBbmREcm9wXT1cInRydWVcIlxuICAgICAgICBbc29ydE9wdGlvbnNdPVwic29ydE9wdGlvbnNcIlxuICAgICAgPjwvdmVyYmVuLXNvcnQtdGFibGU+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBleHBvcnQtY29udGVudD5cbiAgICAgIDxsaWItZGF0YS1leHBvcnQgW2RhdGFdPVwiZGF0YVwiIChleHBvcnREYXRhRXZlbnQpPVwiaGFuZGxlRXhwb3J0KCRldmVudClcIj5cbiAgICAgIDwvbGliLWRhdGEtZXhwb3J0PlxuICAgIDwvZGl2PlxuICA8L3ZlcmJlbi1kYXRhLXZpZXc+XG4gICAgPGRpdiAqbmdJZj1cIiF2ZGN2Lmhhc0N1cnJlbnRJdGVtKCkgJiYgdGhpcy5jYXJkQ29udGV4dEhpc3RvcnkubGVuZ3RoID09IDBcIlxuICAgIGNsYXNzPVwibWVzc2FnZS1sb2ctYnV0dG9uLWNvbnRhaW5lciBmbGV4IGp1c3RpZnktYmV0d2VlblwiPlxuICAgIDx2ZXJiZW5hLWJ1dHRvbiBbZm9udFdlaWdodF09XCInYm9sZCdcIiBbYmdDb2xvcl09XCInIzhFOEQ4NydcIiBbYm9yZGVyUmFkaXVzXT1cIic0cHgnXCIgW3RleHRDb2xvcl09XCInI2ZmZidcIlxuICAgICAgW3RleHRdPVwiJ0RlbGV0ZSdcIj5cbiAgICA8L3ZlcmJlbmEtYnV0dG9uPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
366
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1tYW5hZ2VtZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZlcmJlbi1hdXRoZW50aWNhdGlvbi11aS9zcmMvbGliL2NvbXBvbmVudHMvdXNlci1tYW5hZ2VtZW50L3VzZXItbWFuYWdlbWVudC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4tYXV0aGVudGljYXRpb24tdWkvc3JjL2xpYi9jb21wb25lbnRzL3VzZXItbWFuYWdlbWVudC91c2VyLW1hbmFnZW1lbnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRXBELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUUvQyxPQUFPLEVBRUwsY0FBYyxHQU1mLE1BQU0sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUd4RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7OztBQVkzRCxNQUFNLE9BQU8sdUJBQXVCO0lBU2Q7SUFSRCxZQUFZLENBQXlCO0lBQ3RDLFFBQVEsQ0FBcUI7SUFFL0MsS0FBSyxHQUFXLEVBQUUsQ0FBQztJQUNuQixZQUFZLEdBQVcsRUFBRSxDQUFDO0lBRTFCLGtCQUFrQixHQUFlLEVBQUUsQ0FBQztJQUVwQyxZQUFvQixxQkFBNEM7UUFBNUMsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtJQUFHLENBQUM7SUFFcEUsUUFBUTtRQUNOLElBQUksQ0FBQyxjQUFjLEdBQUcsR0FBRyxDQUFD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QUFHLENBQUMscUJBQXFCLEtBQUssQ0FBQyxHQUFHLEdBQUcsRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDNUQsSUFBSSxLQUFLLENBQUMsR0FBRyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQzNCLE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztZQUU5QixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFFZixpQ0FBaUM7WUFFakMsdUNBQXVDO1lBQ3ZDLGdDQUFnQztZQUNoQyxrQ0FBa0M7WUFDbEMsc0NBQXNDO1lBQ3RDLDZCQUE2QjtZQUM3QiwyQkFBMkI7WUFDM0Isb0VBQW9FO1lBQ3BFLFFBQVE7WUFDUixRQUFRO1lBRVIsK0RBQStEO1lBRS9ELHdDQUF3QztZQUN4QywrQ0FBK0M7WUFDL0MsSUFBSTtRQUNOLENBQUM7SUFDSCxDQUFDO3dHQS9ZVSx1QkFBdUI7NEZBQXZCLHVCQUF1QixtUEM5QnBDLHFrVkF3UkE7OzRGRDFQYSx1QkFBdUI7a0JBTG5DLFNBQVM7K0JBQ0UscUJBQXFCOzBGQUtaLFlBQVk7c0JBQTlCLFNBQVM7dUJBQUMsTUFBTTtnQkFDQyxRQUFRO3NCQUF6QixTQUFTO3VCQUFDLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY29sdW1ucyB9IGZyb20gJy4vdXNlci1tYW5hZ2VtZW50LmNvbHVtbnMnO1xuaW1wb3J0IHsgbW9ja0RhdGEgfSBmcm9tICcuL2hlbHBlcic7XG5pbXBvcnQgeyBiYXNlU3R5bGUgfSBmcm9tICcuL2Jhc2UtdGFibGUtc3R5bGUnO1xuaW1wb3J0IHsgVXNlck1hbmFnZW1lbnQgfSBmcm9tICcuLi8uLi9tb2RlbHMvdXNlci1tYW5hZ2VtZW50JztcbmltcG9ydCB7XG4gIENhcmREYXRhLFxuICBEYXRhRmlsdGVyVHlwZSxcbiAgSURhdGFGaWx0ZXIsXG4gIERyb3Bkb3duTG9hZEV2ZW50LFxuICBEcm9wZG93bkNoYW5nZUV2ZW50LFxuICBDYXJkRGF0YVZpZXdDb21wb25lbnQsXG4gIERhdGFWaWV3Q29tcG9uZW50LFxufSBmcm9tICd2ZXJiZW4tbmctdWknO1xuaW1wb3J0IHsgVXNlckFjY2Vzc1JlcXVlc3RTdGF0dXMgfSBmcm9tICcuLi8uLi9tb2RlbHMvdXNlci1hY2Nlc3MtcmVxdWVzdC1zdGF0dXMnO1xuaW1wb3J0IHsgT2JqZWN0U3RhdGUgfSBmcm9tICcuLi8uLi9tb2RlbHMvb2JqZWN0LXN0YXRlJztcbmltcG9ydCB7IFVzZXJNYW5hZ2VtZW50U2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvdXNlci1tYW5hZ2VtZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgVXNlciB9IGZyb20gJy4uLy4uL21vZGVscy91c2VyJztcbmltcG9ydCB7IEVycm9yUmVzcG9uc2UgfSBmcm9tICcuLi8uLi9tb2RlbHMvRXJyb3JSZXNwb25zZSc7XG5cbmludGVyZmFjZSBUZXN0UGFyZW50T2JqZWN0IHtcbiAgSWQ6IHN0cmluZztcbiAgTmFtZTogc3RyaW5nO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItdXNlci1tYW5hZ2VtZW50JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3VzZXItbWFuYWdlbWVudC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi91c2VyLW1hbmFnZW1lbnQuY29tcG9uZW50LmNzcycsXG59KVxuZXhwb3J0IGNsYXNzIFVzZXJNYW5hZ2VtZW50Q29tcG9uZW50IHtcbiAgQFZpZXdDaGlsZCgndmRjdicpIGNhcmREYXRhVmlldyE6IENhcmREYXRhVmlld0NvbXBvbmVudDtcbiAgQFZpZXdDaGlsZCgndmR2JykgZGF0YVZpZXchOiBEYXRhVmlld0NvbXBvbmVudDtcblxuICB1c2VyczogVXNlcltdID0gW107XG4gIGVycm9yTWVzc2FnZTogc3RyaW5nID0gJyc7XG5cbiAgY2FyZENvbnRleHRIaXN0b3J5OiBDYXJkRGF0YVtdID0gW107XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSB1c2VyTWFuYWdlbWVudFNlcnZpY2U6IFVzZXJNYW5hZ2VtZW50U2VydmljZSkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkUGFyZW50ID0gJzEnO1xuICAgIHRoaXMuc2VsZWN0ZWRPcHRpb24gPSBbJ09wdCAxJ107XG4gICAgdGhpcy5zZWxlY3RlZE9wdGlvblR3byA9IFsnMSddO1xuICAgIHRoaXMuc2VsZWN0ZWRPcHRpb25UaHJlZSA9ICcxJztcbiAgICB0aGlzLmZldGNoVXNlcnMoKTtcbiAgICB0aGlzLmZldGNoRGF0cSgpO1xuICB9XG5cbiAgYXN5bmMgZmV0Y2hVc2VycygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLnVzZXJNYW5hZ2VtZW50U2VydmljZS5nZXRVc2VycygwLCAxMCwgJ25hbWUnLCAnYXNjJyk7XG5cbiAgICBjb25zb2xlLmxvZyhyZXMpO1xuXG4gICAgaWYgKHJlcyBpbnN0YW5jZW9mIEVycm9yUmVzcG9uc2UpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yOicsIHJlcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY2FyZERhdGEgPSByZXMubWFwKFxuICAgICAgICAoeyBGaXJzdE5hbWUsIE1haWxBZGRyZXNzLCBQaG9uZU51bWJlciwgUm9sZUlELCBTdGF0dXMgfSkgPT4gKHtcbiAgICAgICAgICBzZWxlY3RlZDogZmFsc2UsXG4gICAgICAgICAgdGl0bGU6IEZpcnN0TmFtZSxcbiAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICBGaXJzdE5hbWUsXG4gICAgICAgICAgICBNYWlsQWRkcmVzcyxcbiAgICAgICAgICAgIFBob25lTnVtYmVyLFxuICAgICAgICAgICAgUm9sZUlELFxuICAgICAgICAgICAgU3RhdHVzLFxuICAgICAgICAgIH0gYXMgUGFydGlhbDxVc2VyTWFuYWdlbWVudD4sXG4gICAgICAgICAgYm9keTogW1xuICAgICAgICAgICAgeyB0aXRsZTogJ05hbWUnLCB2YWx1ZTogRmlyc3ROYW1lIH0sXG4gICAgICAgICAgICB7IHRpdGxlOiAnRS1NYWlsIEFkZHJlc3MnLCB2YWx1ZTogTWFpbEFkZHJlc3MgfSxcbiAgICAgICAgICAgIHsgdGl0bGU6ICdQaG9uZSBOdW1iZXInLCB2YWx1ZTogUGhvbmVOdW1iZXIgPz8gJycgfSxcbiAgICAgICAgICBdLFxuICAgICAgICAgIGNoaWxkcmVuOiBbXSxcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgLy8gbmV3IHVwZGF0ZVxuXG4gIGNhcmREYXRhOiBDYXJkRGF0YVtdID0gW107XG5cbiAgZGF0YTogYW55W10gPSBbXTsgLy8gSW5pdGlhbGl6ZSBkYXRhXG5cbiAgYXN5bmMgZmV0Y2hEYXRxKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHJlcyA9IGF3YWl0IHRoaXMudXNlck1hbmFnZW1lbnRTZXJ2aWNlLmdldFVzZXJzKDAsIDEwLCAnbmFtZScsICdhc2MnKTtcblxuICAgIGNvbnNvbGUubG9nKHJlcyk7XG5cbiAgICBpZiAocmVzIGluc3RhbmNlb2YgRXJyb3JSZXNwb25zZSkge1xuICAgICAgY29uc29sZS5lcnJvcignRXJyb3I6JywgcmVzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5kYXRhID0gcmVzLm1hcCgodXNlcikgPT4gKHtcbiAgICAgICAgQ3JlYXRlZEF0OiB1c2VyLkNyZWF0ZWRBdCwgLy8gQVBJIGtleSBmb3IgXCJDcmVhdGVkXCJcbiAgICAgICAgTmFtZTogYCR7dXNlci5GaXJzdE5hbWV9ICR7dXNlci5MYXN0TmFtZX1gLCAvLyBDb21iaW5lIEZpcnN0TmFtZSBhbmQgTGFzdE5hbWVcbiAgICAgICAgTWFpbEFkZHJlc3M6IHVzZXIuTWFpbEFkZHJlc3MsIC8vIFVzZSBjb3JyZWN0IGtleSBmb3IgXCJFLU1haWxcIlxuICAgICAgICBQaG9uZU51bWJlcjogdXNlci5QaG9uZU51bWJlciB8fCAnJywgLy8gSGFuZGxlIHVuZGVmaW5lZCBQaG9uZU51bWJlclxuICAgICAgICBBZGRyZXNzOiB1c2VyLkFkZHJlc3MgfHwgJycsIC8vIElmIEFkZHJlc3MgZXhpc3RzIGluIEFQSVxuICAgICAgICBSb2xlOiB1c2VyLlJvbGVJRCB8fCAnJywgLy8gTWFwIFJvbGUgaWYgYXZhaWxhYmxlXG4gICAgICAgIFN0YXR1czogdXNlci5TdGF0dXMgfHwgJycsIC8vIE1hcCBTdGF0dXNcbiAgICAgICAgVXBkYXRlZEF0OiB1c2VyLlVwZGF0ZWRBdCxcbiAgICAgICAgRGF0YVN0YXRlOiB1c2VyLkRhdGFTdGF0ZSxcbiAgICAgICAgRmlyc3ROYW1lOiB1c2VyLkZpcnN0TmFtZSxcbiAgICAgICAgTGFzdE5hbWU6IHVzZXIuTGFzdE5hbWUsXG4gICAgICAgIE90aGVyTmFtZTogdXNlci5PdGhlck5hbWUsXG4gICAgICB9KSk7XG4gICAgfVxuICB9XG5cbiAgY29sdW1ucyA9IGNvbHVtbnM7XG4gIC8vIGRhdGEgPSBtb2NrRGF0YTtcbiAgc3R5bGVzID0gYmFzZVN0eWxlO1xuXG4gIHNlbGVjdGVkUGFyZW50Pzogc3RyaW5nO1xuICBiYXNpY09wdGlvbj86IHN0cmluZztcbiAgc2VsZWN0ZWRPcHRpb246IHN0cmluZ1tdID0gW107XG4gIHNlbGVjdGVkT3B0aW9uVHdvOiBzdHJpbmdbXSA9IFtdO1xuICBzZWxlY3RlZE9wdGlvblRocmVlPzogc3RyaW5nO1xuICBtaXNzaW5nT2JqZWN0OiBhbnk7XG5cbiAgcHJpdmF0ZSBnZW5lcmF0ZU5ld1VzZXJNYW5hZ2VtZW50KCk6IFVzZXJNYW5hZ2VtZW50IHtcbiAgICBjb25zdCBuZXdJZCA9IHRoaXMuZGF0YS5sZW5ndGggKyAxOyAvLyBJbmNyZW1lbnRhbCBJRCBiYXNlZCBvbiBjdXJyZW50IGRhdGEgbGVuZ3RoXG5cbiAgICByZXR1cm4ge1xuICAgICAgRmlyc3ROYW1lOiBgRmlyc3QgJHtuZXdJZH1gLFxuICAgICAgTGFzdE5hbWU6IGBMYXN0ICR7bmV3SWR9YCxcbiAgICAgIE90aGVyTmFtZTogYE90aGVyICR7bmV3SWR9YCxcbiAgICAgIElkOiBgJHtuZXdJZH1gLFxuICAgICAgaWQ6IG5ld0lkLFxuICAgICAgTWFpbEFkZHJlc3M6IGAgYCxcbiAgICAgIFBob25lTnVtYmVyOiBgYCxcbiAgICAgIFJlcXVlc3RTdGF0dXM6IFVzZXJBY2Nlc3NSZXF1ZXN0U3RhdHVzLlBlbmRpbmcsXG4gICAgICBBZGRyZXNzOiBgIGAsXG4gICAgICBQYXNzd29yZDogJyAnLFxuICAgICAgRXhwaXJlT246IG5ldyBEYXRlKCksXG4gICAgICBJc1NlZWRlZDogZmFsc2UsXG4gICAgICBPVFBFeHBpcmVPbjogbmV3IERhdGUoKSxcbiAgICAgIFRlbmFudHM6IFtgVGVuYW50JHtuZXdJZH1gXSxcbiAgICAgIENyZWF0ZWRBdDogbmV3IERhdGUoKSxcbiAgICAgIFVwZGF0ZWRBdDogbmV3IERhdGUoKSxcbiAgICAgIERhdGFTdGF0ZTogT2JqZWN0U3RhdGUuTmV3LFxuICAgICAgVGVuYW50SWQ6IGBUZW5hbnQke25ld0lkfWAsXG4gICAgICBDb2RlOiAnJyxcbiAgICAgIFNlcnZpY2VOYW1lOiAnJyxcbiAgICAgIFN0YXR1czogVXNlckFjY2Vzc1JlcXVlc3RTdGF0dXMuUGVuZGluZyxcbiAgICB9O1xuICB9XG5cbiAgLy8gRnVuY3Rpb24gdG8gYWRkIGEgbmV3IHVzZXIgdG8gbW9ja0RhdGFcbiAgYWRkTmV3VXNlclRvTW9ja0RhdGEoKTogVXNlck1hbmFnZW1lbnQge1xuICAgIGNvbnN0IG5ld1VzZXIgPSB0aGlzLmdlbmVyYXRlTmV3VXNlck1hbmFnZW1lbnQoKTtcbiAgICB0aGlzLmRhdGEucHVzaChuZXdVc2VyKTsgLy8gQWRkcyB0aGUgbmV3IHVzZXIgdG8gdGhlIGRhdGEgYXJyYXlcblxuICAgIC8vIE9wdGlvbmFsbHksIHVwZGF0ZSBjYXJkRGF0YSB3aXRoIHRoZSBuZXcgdXNlciBlbnRyeSBmb3IgY2FyZCBkaXNwbGF5XG5cbiAgICBjb25zdCBmdWxsTmFtZSA9IGAke25ld1VzZXIuRmlyc3ROYW1lfSAke25ld1VzZXIuTGFzdE5hbWV9YDtcbiAgICBjb25zdCBuZXdDYXJkRGF0YTogQ2FyZERhdGEgPSB7XG4gICAgICBzZWxlY3RlZDogZmFsc2UsXG4gICAgICB0aXRsZTogZnVsbE5hbWUsXG4gICAgICBkYXRhOiB7XG4gICAgICAgIE5hbWU6IGZ1bGxOYW1lLFxuICAgICAgICBNYWlsQWRkcmVzczogbmV3VXNlci5NYWlsQWRkcmVzcyxcbiAgICAgICAgUGhvbmVOdW1iZXI6IG5ld1VzZXIuUGhvbmVOdW1iZXIsXG4gICAgICAgIFJvbGVJRDogbmV3VXNlci5Sb2xlLFxuICAgICAgICBTdGF0dXM6IG5ld1VzZXIuU3RhdHVzLFxuICAgICAgfSBhcyBQYXJ0aWFsPFVzZXJNYW5hZ2VtZW50PixcbiAgICAgIGJvZHk6IFtcbiAgICAgICAgeyB0aXRsZTogJ05hbWUnLCB2YWx1ZTogZnVsbE5hbWUgfSxcbiAgICAgICAgeyB0aXRsZTogJ0UtTWFpbCBBZGRyZXNzJywgdmFsdWU6IG5ld1VzZXIuTWFpbEFkZHJlc3MgfSxcbiAgICAgICAgeyB0aXRsZTogJ1Bob25lIE51bWJlcicsIHZhbHVlOiBuZXdVc2VyLlBob25lTnVtYmVyID8/ICcnIH0sXG4gICAgICBdLFxuICAgICAgY2hpbGRyZW46IFtdLFxuICAgIH07XG5cbiAgICB0aGlzLmNhcmREYXRhLnB1c2gobmV3Q2FyZERhdGEpOyAvLyBVcGRhdGUgY2FyZERhdGEgYXJyYXkgd2l0aCB0aGUgbmV3IHVzZXJcbiAgICByZXR1cm4gbmV3VXNlcjtcbiAgfVxuXG4gIC8vIEdyaWQgdmlldyBwcm9wZXJ0aWVzXG4gIGlzR3JpZFZpZXc6IGJvb2xlYW4gPSB0cnVlO1xuICBjdXJyZW50RGF0YSE6IENhcmREYXRhO1xuICBzZWxlY3RlZENvbHVtbkNvdW50OiBudW1iZXIgPSAwO1xuICBzZWxlY3RlZEZpbHRlclRhYmxlQ291bnQ6IG51bWJlciA9IDA7XG4gIGlzT1BlbjogYm9vbGVhbiA9IHRydWU7XG4gIHNlbGVjdGVkU29ydENvdW50OiBudW1iZXIgPSAwO1xuICBzaG93Q29sdW1uOiBib29sZWFuID0gZmFsc2U7XG4gIHNob3dTb3J0OiBib29sZWFuID0gZmFsc2U7XG4gIHNlbGVjdGVkQWxsOiBib29sZWFuID0gZmFsc2U7XG4gIHZpc2libGVDb2x1bW5zOiBJRGF0YUZpbHRlcltdID0gY29sdW1ucy5tYXAoKGNvbCkgPT4gKHtcbiAgICBjaGVja2VkOiBmYWxzZSxcbiAgICBuYW1lOiB0eXBlb2YgY29sLmhlYWRlciA9PT0gJ3N0cmluZycgPyBjb2wuaGVhZGVyIDogY29sLmlkLFxuICAgIHR5cGU6IERhdGFGaWx0ZXJUeXBlLkJvb2wsXG4gIH0pKTtcblxuICBmaWx0ZXJBcnJheTogSURhdGFGaWx0ZXJbXSA9IFtcbiAgICB7IG5hbWU6ICdOYW1lJywgdHlwZTogRGF0YUZpbHRlclR5cGUuU3RyaW5nLCBjaGVja2VkOiBmYWxzZSB9LFxuICAgIHsgbmFtZTogJ01haWxBZGRyZXNzJywgdHlwZTogRGF0YUZpbHRlclR5cGUuU3RyaW5nLCBjaGVja2VkOiBmYWxzZSB9LFxuICAgIHsgbmFtZTogJ1Bob25lTnVtYmVyJywgdHlwZTogRGF0YUZpbHRlclR5cGUuU3RyaW5nLCBjaGVja2VkOiBmYWxzZSB9LFxuICAgIHsgbmFtZTogJ0NyZWF0ZWRBdCcsIHR5cGU6IERhdGFGaWx0ZXJUeXBlLkRhdGUsIGNoZWNrZWQ6IGZhbHNlIH0sXG4gIF07XG5cbiAgc29ydE9wdGlvbnM6IElEYXRhRmlsdGVyW10gPSBbXG4gICAgeyBuYW1lOiAnTmFtZScsIHR5cGU6IERhdGFGaWx0ZXJUeXBlLlN0cmluZywgY2hlY2tlZDogZmFsc2UgfSxcbiAgICB7IG5hbWU6ICdNYWlsQWRkcmVzcycsIHR5cGU6IERhdGFGaWx0ZXJUeXBlLlN0cmluZywgY2hlY2tlZDogZmFsc2UgfSxcbiAgICB7IG5hbWU6ICdQaG9uZU51bWJlcicsIHR5cGU6IERhdGFGaWx0ZXJUeXBlLlN0cmluZywgY2hlY2tlZDogZmFsc2UgfSxcbiAgICB7IG5hbWU6ICdDcmVhdGVkQXQnLCB0eXBlOiBEYXRhRmlsdGVyVHlwZS5EYXRlLCBjaGVja2VkOiBmYWxzZSB9LFxuICBdO1xuXG4gIHRlc3RQYXJlbnRzOiBUZXN0UGFyZW50T2JqZWN0W10gPSBbXG4gICAgeyBJZDogJzEnLCBOYW1lOiAnTWFuYWdlcicgfSxcbiAgICB7IElkOiAnMicsIE5hbWU6ICdBZG1pbmlzdHJhdG9yJyB9LFxuICAgIHsgSWQ6ICczJywgTmFtZTogJ0plbG9tJyB9LFxuICBdO1xuXG4gIGdldFBhcmVudExhYmVsKGNvbnRleHQ6IGFueSk6IHN0cmluZyB7XG4gICAgY29uc29sZS5sb2coeyBNaXNzaW5nT2JqOiB0aGlzLm1pc3NpbmdPYmplY3QgfSk7XG4gICAgcmV0dXJuIHRoaXMubWlzc2luZ09iamVjdC5OYW1lO1xuICB9XG5cbiAgYXN5bmMgbG9hZE1vcmVQYXJlbnRzKGV2ZW50OiBEcm9wZG93bkxvYWRFdmVudCk6IFByb21pc2U8VGVzdFBhcmVudE9iamVjdFtdPiB7XG4gICAgY29uc29sZS5sb2coeyBQYXJlbnRMb2FkRXZlbnQ6IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoZXZlbnQpKSB9KTtcbiAgICByZXR1cm4gYXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUpID0+XG4gICAgICBzZXRUaW1lb3V0KFxuICAgICAgICAoKSA9PlxuICAgICAgICAgIHJlc29sdmUoW1xuICAgICAgICAgICAgeyBJZDogJzEnLCBOYW1lOiAnSmltbHknIH0sXG4gICAgICAgICAgICB7IElkOiAnMicsIE5hbWU6ICdKZWNpbCcgfSxcbiAgICAgICAgICAgIHsgSWQ6ICczJywgTmFtZTogJ0plbG9tJyB9LFxuICAgICAgICAgICAgeyBJZDogJzQnLCBOYW1lOiAnSmVtaW1hJyB9LFxuICAgICAgICAgICAgeyBJZDogJzUnLCBOYW1lOiAnQWtpbnR1bmRlJyB9LFxuICAgICAgICAgIF0pLFxuICAgICAgICAzMDAwXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIG9uRHJvcGRvd25DaGFuZ2UoZXZlbnQ6IERyb3Bkb3duQ2hhbmdlRXZlbnQpOiB2b2lkIHtcbiAgICAvLyBjb25zb2xlLmxvZyh7XG4gICAgLy8gICAnVGVzdCBQYXJlbnQgVmFsdWUnOiB0aGlzLnNlbGVjdGVkUGFyZW50LFxuICAgIC8vICAgLi4uXG4gICAgLy8gfSk7XG4gIH1cblxuICBvblNlbGVjdGlvbkNoYW5nZShzZWxlY3RlZFJvd3M6IFVzZXJNYW5hZ2VtZW50W10pIHtcbiAgICBjb25zb2xlLmxvZygnU2VsZWN0aW9uIGNoYW5nZWQ6Jywgc2VsZWN0ZWRSb3dzKTtcbiAgICAvLyBIYW5kbGUgdGhlIHNlbGVjdGlvbiBjaGFuZ2VcbiAgfVxuXG4gIGhhbmRsZUV4cG9ydChleHBvcnRlZERhdGE6IFBhcnRpYWw8YW55PltdKSB7XG4gICAgY29uc29sZS5sb2coJ0V4cG9ydGVkIGRhdGE6JywgZXhwb3J0ZWREYXRhKTtcbiAgICB0aGlzLmRvd25sb2FkQ1NWKGV4cG9ydGVkRGF0YSk7XG4gIH1cblxuICBwcml2YXRlIGRvd25sb2FkQ1NWKGRhdGE6IFBhcnRpYWw8YW55PltdKSB7XG4gICAgY29uc3QgaGVhZGVycyA9IE9iamVjdC5rZXlzKGRhdGFbMF0pO1xuICAgIGNvbnN0IGNzdkNvbnRlbnQgPSBbXG4gICAgICBoZWFkZXJzLmpvaW4oJywnKSxcbiAgICAgIC4uLmRhdGEubWFwKChyb3cpID0+IGhlYWRlcnMubWFwKChoZWFkZXIpID0+IHJvd1toZWFkZXJdKS5qb2luKCcsJykpLFxuICAgIF0uam9pbignXFxuJyk7XG5cbiAgICBjb25zdCBibG9iID0gbmV3IEJsb2IoW2NzdkNvbnRlbnRdLCB7IHR5cGU6ICd0ZXh0L2NzdjtjaGFyc2V0PXV0Zi04OycgfSk7XG4gICAgY29uc3QgbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcbiAgICBpZiAobGluay5kb3dubG9hZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb25zdCB1cmwgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpO1xuICAgICAgbGluay5zZXRBdHRyaWJ1dGUoJ2hyZWYnLCB1cmwpO1xuICAgICAgbGluay5zZXRBdHRyaWJ1dGUoJ2Rvd25sb2FkJywgJ2V4cG9ydC5jc3YnKTtcbiAgICAgIGxpbmsuc3R5bGUudmlzaWJpbGl0eSA9ICdoaWRkZW4nO1xuICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChsaW5rKTtcbiAgICAgIGxpbmsuY2xpY2soKTtcbiAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQobGluayk7XG4gICAgfVxuICB9XG5cbiAgLy8gYXBwbHlGaWx0ZXJzKCkge1xuICAvLyAgIHRoaXMuZmlsdGVyZWREYXRhID0gdGhpcy5kYXRhLmZpbHRlcigoaXRlbSkgPT4ge1xuICAvLyAgICAgcmV0dXJuIHRoaXMuZmlsdGVyQXJyYXkuZXZlcnkoKGZpbHRlcikgPT4ge1xuICAvLyAgICAgICBpZiAoZmlsdGVyLmNoZWNrZWQpIHtcbiAgLy8gICAgICAgICBzd2l0Y2ggKGZpbHRlci50eXBlKSB7XG4gIC8vICAgICAgICAgICBjYXNlIERhdGFGaWx0ZXJUeXBlLlN0cmluZzpcbiAgLy8gICAgICAgICAgICAgcmV0dXJuIGl0ZW1bZmlsdGVyLm5hbWVdLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoZmlsdGVyLm5hbWUudG9Mb3dlckNhc2UoKSk7XG4gIC8vICAgICAgICAgICBjYXNlIERhdGFGaWx0ZXJUeXBlLkRhdGU6XG4gIC8vICAgICAgICAgICAgIHJldHVybiBuZXcgRGF0ZShpdGVtW2ZpbHRlci5uYW1lXSkgPj0gbmV3IERhdGUoZmlsdGVyLm5hbWUpO1xuICAvLyAgICAgICAgICAgZGVmYXVsdDpcbiAgLy8gICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gIC8vICAgICAgICAgfVxuICAvLyAgICAgICB9XG4gIC8vICAgICAgIHJldHVybiB0cnVlO1xuICAvLyAgICAgfSk7XG4gIC8vICAgfSk7XG4gIC8vIH1cbiAgZ2V0Q2FyZERhdGFCeU1haWxBZGRyZXNzKG1haWxBZGRyZXNzOiBzdHJpbmcpOiBDYXJkRGF0YSB8IHVuZGVmaW5lZCB7XG4gICAgY29uc29sZS5sb2coJ2NhcmREYXRhIGFycmF5OicsIHRoaXMuY2FyZERhdGEpO1xuICAgIGNvbnNvbGUubG9nKG1haWxBZGRyZXNzKTtcblxuICAgIHJldHVybiB0aGlzLmNhcmREYXRhLmZpbmQoKHsgZGF0YSB9KSA9PiBkYXRhPy5NYWlsQWRkcmVzcyA9PT0gbWFpbEFkZHJlc3MpO1xuICB9XG5cbiAgb3BlbkRldGFpbFZpZXcobWFpbEFkZHJlc3M6IHN0cmluZykge1xuICAgIGNvbnN0IGNhcmRJdGVtID0gdGhpcy5nZXRDYXJkRGF0YUJ5TWFpbEFkZHJlc3MobWFpbEFkZHJlc3MpO1xuICAgIGNvbnNvbGUubG9nKGNhcmRJdGVtKTtcblxuICAgIGlmIChjYXJkSXRlbSAmJiB0aGlzLmNhcmREYXRhVmlldykge1xuICAgICAgdGhpcy5kYXRhVmlldy50b2dnbGVWaWV3KCk7XG4gICAgICAvLyBGaXJzdCByZXNldCBhbGwgc2VsZWN0aW9uc1xuICAgICAgdGhpcy5jYXJkRGF0YS5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgIGl0ZW0uc2VsZWN0ZWQgPSBmYWxzZTtcbiAgICAgICAgaWYgKGl0ZW0uY2hpbGRyZW4pIHtcbiAgICAgICAgICBpdGVtLmNoaWxkcmVuLmZvckVhY2goKGNoaWxkKSA9PiAoY2hpbGQuc2VsZWN0ZWQgPSBmYWxzZSkpO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgLy8gU2V0IHRoZSBzZWxlY3RlZCBpdGVtXG4gICAgICBjYXJkSXRlbS5zZWxlY3RlZCA9IHRydWU7XG4gICAgICB0aGlzLmN1cnJlbnREYXRhID0gdGhpcy5jYXJkRGF0YVZpZXcub25JdGVtQ2xpY2soY2FyZEl0ZW0pO1xuXG4gICAgICAvLyBGb3JjZSBjaGFuZ2UgZGV0ZWN0aW9uIGlmIG5lZWRlZFxuICAgICAgLy8gdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuICB9XG5cbiAgbmV3SXRlbSgpIHtcbiAgICBjb25zdCBuZXdEYXRhID0gdGhpcy5hZGROZXdVc2VyVG9Nb2NrRGF0YSgpO1xuICAgIGNvbnN0IG5ld0NhcmREYXRhOiBDYXJkRGF0YSA9IHtcbiAgICAgIHNlbGVjdGVkOiB0cnVlLFxuICAgICAgdGl0bGU6IGAke25ld0RhdGEuRmlyc3ROYW1lfSAke25ld0RhdGEuTGFzdE5hbWV9YCxcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgLi4ubmV3RGF0YSxcbiAgICAgIH0gYXMgUGFydGlhbDxVc2VyTWFuYWdlbWVudD4sXG4gICAgICBib2R5OiBbXG4gICAgICAgIHsgdGl0bGU6ICdOYW1lJywgdmFsdWU6IGAke25ld0RhdGEuRmlyc3ROYW1lfSAke25ld0RhdGEuTGFzdE5hbWV9YCB9LFxuICAgICAgICB7IHRpdGxlOiAnRS1NYWlsIEFkZHJlc3MnLCB2YWx1ZTogbmV3RGF0YS5NYWlsQWRkcmVzcyB9LFxuICAgICAgICB7IHRpdGxlOiAnUGhvbmUgTnVtYmVyJywgdmFsdWU6IG5ld0RhdGEuUGhvbmVOdW1iZXIgPz8gJycgfSxcbiAgICAgIF0sXG4gICAgICBjaGlsZHJlbjogW10sXG4gICAgfTtcblxuICAgIGlmICh0aGlzLmRhdGFWaWV3LmlzVGFibGVWaWV3KSB7XG4gICAgICB0aGlzLmRhdGFWaWV3LnRvZ2dsZVZpZXcoKTtcbiAgICB9XG4gICAgLy8gRmlyc3QgcmVzZXQgYWxsIHNlbGVjdGlvbnNcbiAgICB0aGlzLmNhcmREYXRhLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgIGl0ZW0uc2VsZWN0ZWQgPSBmYWxzZTtcbiAgICAgIGlmIChpdGVtLmNoaWxkcmVuKSB7XG4gICAgICAgIGl0ZW0uY2hpbGRyZW4uZm9yRWFjaCgoY2hpbGQpID0+IChjaGlsZC5zZWxlY3RlZCA9IGZhbHNlKSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgLy8gdGhpcy5jYXJkRGF0YSA9IFtuZXdDYXJkRGF0YV0uY29uY2F0KHRoaXMuY2FyZERhdGEpO1xuICAgIC8vIHRoaXMuY2FyZERhdGFWaWV3Lm9uSXRlbUNsaWNrKG5ld0NhcmREYXRhKVxuXG4gICAgdGhpcy5jYXJkRGF0YSA9IFtuZXdDYXJkRGF0YSwgLi4udGhpcy5jYXJkRGF0YV07XG5cbiAgICB0aGlzLmN1cnJlbnREYXRhID0gdGhpcy5jYXJkRGF0YVZpZXcub25JdGVtQ2xpY2sobmV3Q2FyZERhdGEpO1xuICB9XG5cbiAgLy8gdG9nZ2xlQ2hpbGRWaWV3KGFjdGlvbjogc3RyaW5nKSB7XG4gIC8vICAgaWYgKGFjdGlvbiA9PT0gJ2NyZWF0ZScpIHtcbiAgLy8gICAgIGNvbnN0IG5ld0NhcmQ6IENhcmREYXRhID0ge1xuICAvLyAgICAgICBzZWxlY3RlZDogZmFsc2UsXG4gIC8vICAgICAgIHRpdGxlOiAnTmV3IENhcmQnLCAvLyBEZWZhdWx0IHRpdGxlLCBjaGFuZ2UgYXMgbmVlZGVkXG4gIC8vICAgICAgIGRhdGE6IHsgTmFtZTogJycsIE1haWxBZGRyZXNzOiAnJywgUGhvbmVOdW1iZXI6ICcnIH0sXG4gIC8vICAgICAgIGJvZHk6IFtcbiAgLy8gICAgICAgICB7IHRpdGxlOiAnTmFtZScsIHZhbHVlOiAnJyB9LFxuICAvLyAgICAgICAgIHsgdGl0bGU6ICdFLU1haWwgQWRkcmVzcycsIHZhbHVlOiAnJyB9LFxuICAvLyAgICAgICAgIHsgdGl0bGU6ICdQaG9uZSBOdW1iZXInLCB2YWx1ZTogJycgfVxuICAvLyAgICAgICBdLFxuICAvLyAgICAgICBjaGlsZHJlbjogW11cbiAgLy8gICAgIH07XG5cbiAgLy8gICAgIHRoaXMuY2FyZERhdGEucHVzaChuZXdDYXJkKTtcbiAgLy8gICB9XG4gIC8vIH1cblxuICBjbGVhckRhdGEoKSB7XG4gICAgdGhpcy5jdXJyZW50RGF0YSA9IHt9IGFzIENhcmREYXRhO1xuICB9XG5cbiAgbG9hZE1vcmUoKSB7XG4gICAgdGhpcy5jYXJkRGF0YSA9IHRoaXMuY2FyZERhdGEuY29uY2F0KHRoaXMuY2FyZERhdGEpO1xuICB9XG5cbiAgb25Db2x1bW5DaGFuZ2UoZXZlbnQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnNob3dDb2x1bW4gPSBldmVudDtcbiAgfVxuXG4gIG9uU29ydENoYW5nZShldmVudDogYm9vbGVhbikge1xuICAgIHRoaXMuc2hvd1NvcnQgPSBldmVudDtcbiAgICBjb25zb2xlLmxvZyhldmVudCk7XG4gIH1cblxuICBvbkNvbHVtbnNVcGRhdGVkKHVwZGF0ZWRDb2x1bW5zOiBJRGF0YUZpbHRlcltdKSB7XG4gICAgdGhpcy5vbkNvbHVtbkNoYW5nZShmYWxzZSk7XG4gICAgdGhpcy5zZWxlY3RlZENvbHVtbkNvdW50ID0gdXBkYXRlZENvbHVtbnMubGVuZ3RoO1xuICB9XG5cbiAgb25Tb3J0VXBkYXRlZCh1cGRhdGVkU29ydHM6IElEYXRhRmlsdGVyW10pIHtcbiAgICB0aGlzLm9uU29ydENoYW5nZShmYWxzZSk7XG4gICAgdGhpcy5zZWxlY3RlZFNvcnRDb3VudCA9IHVwZGF0ZWRTb3J0cy5sZW5ndGg7XG4gICAgY29uc29sZS5sb2codXBkYXRlZFNvcnRzKTtcbiAgfVxuXG4gIG9uVmlld0NoYW5nZShpc0dyaWRWaWV3OiBib29sZWFuKTogdm9pZCB7fVxuXG4gIG9uU3RhdGVDaGFuZ2UoZXZlbnQ6IHsga2V5OiBzdHJpbmc7IHZhbHVlOiBib29sZWFuIH0pOiB2b2lkIHtcbiAgICBjb25zb2xlLmxvZyhgU3RhdGUgY2hhbmdlZCBmb3IgJHtldmVudC5rZXl9OmAsIGV2ZW50LnZhbHVlKTtcbiAgICBpZiAoZXZlbnQua2V5ID09PSAnY3JlYXRlJykge1xuICAgICAgY29uc29sZS5sb2coJ3BlYWNlIGlzIGEgYm95Jyk7XG5cbiAgICAgIHRoaXMubmV3SXRlbSgpO1xuXG4gICAgICAvLyBjb25zdCBuZXdVc2VyID0gdGhpcy5uZXdJdGVtKClcblxuICAgICAgLy8gaWYgKCBuZXdVc2VyICYmIHRoaXMuY2FyZERhdGFWaWV3KSB7XG4gICAgICAvLyAgIHRoaXMuZGF0YVZpZXcudG9nZ2xlVmlldygpO1xuICAgICAgLy8gICAvLyBGaXJzdCByZXNldCBhbGwgc2VsZWN0aW9uc1xuICAgICAgLy8gICB0aGlzLmNhcmREYXRhLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgIC8vICAgICBpdGVtLnNlbGVjdGVkID0gZmFsc2U7XG4gICAgICAvLyAgICAgaWYgKGl0ZW0uY2hpbGRyZW4pIHtcbiAgICAgIC8vICAgICAgIGl0ZW0uY2hpbGRyZW4uZm9yRWFjaCgoY2hpbGQpID0+IChjaGlsZC5zZWxlY3RlZCA9IGZhbHNlKSk7XG4gICAgICAvLyAgICAgfVxuICAgICAgLy8gICB9KTtcblxuICAgICAgLy8gICB0aGlzLmN1cnJlbnREYXRhID0gdGhpcy5jYXJkRGF0YVZpZXcub25JdGVtQ2xpY2sobmV3VXNlcik7XG5cbiAgICAgIC8vICAgLy8gRm9yY2UgY2hhbmdlIGRldGVjdGlvbiBpZiBuZWVkZWRcbiAgICAgIC8vICAgLy8gdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAvLyB9XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBnYXAtNCBtZXNzYWdlLWxvZy1jb250YWluZXJcIj5cbiAgPHZlcmJlbi1kYXRhLXZpZXdcbiAgICAjdmR2XG4gICAgW3ZpZXdTdGF0ZV09XCJ7XG4gICAgICBpc1NlYXJjaDogdHJ1ZSxcbiAgICAgIGlzQ29sdW1uOiB0cnVlLFxuICAgICAgaXNGaWx0ZXI6IHRydWUsXG4gICAgICBpc1NvcnQ6IHRydWUsXG4gICAgICBpc0V4cG9ydDogdHJ1ZSxcbiAgICAgIGlzU2VsZWN0OiB0cnVlLFxuICAgICAgaXNDcmVhdGU6IHRydWUsXG4gICAgICBpc1RvZ2dsZTp0cnVlXG4gICAgfVwiXG4gICAgW2J1dHRvbkNsYXNzXT1cIidteS1jdXN0b20tYnV0dG9uLWNsYXNzJ1wiXG4gICAgW2ljb25DbGFzc109XCInbXktaWNvbi1jbGFzcydcIlxuICAgIFthY3RpdmVJY29uQ2xhc3NdPVwiJ215LWFjdGl2ZS1pY29uLWNsYXNzJ1wiXG4gICAgW3NlbGVjdGVkQ29sdW1uQ291bnRdPVwiMFwiXG4gICAgW3NlbGVjdGVkU29ydENvdW50XT1cIjBcIlxuICAgIFtzZWxlY3RlZEZpbHRlclRhYmxlQ291bnRdPVwiMFwiXG4gICAgKHZpZXdDaGFuZ2UpPVwib25WaWV3Q2hhbmdlKCRldmVudClcIlxuICAgIChzdGF0ZUNoYW5nZSk9XCJvblN0YXRlQ2hhbmdlKCRldmVudClcIlxuICA+XG4gICAgPGRpdiBjbGFzcz1cIm10LTJcIiB0YWJsZS1jb250ZW50PlxuICAgICAgPGxpYi1kYXRhLXRhYmxlXG4gICAgICAgIFtkYXRhXT1cImRhdGFcIlxuICAgICAgICBbY29sdW1uc109XCJjb2x1bW5zXCJcbiAgICAgICAgW3N0eWxlQ29uZmlnXT1cInN0eWxlc1wiXG4gICAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwib25TZWxlY3Rpb25DaGFuZ2UoJGV2ZW50KVwiXG4gICAgICA+XG4gICAgICA8bmctY29udGFpbmVyIGxpYkNvbHVtbj1cInNlbGVjdFwiPlxuICAgICAgICA8bmctdGVtcGxhdGUgI2NlbGwgbGV0LWlzU2VsZWN0ZWQ9XCJpc1NlbGVjdGVkXCIgbGV0LXRvZ2dsZVJvd1NlbGVjdGlvbj1cInRvZ2dsZVJvd1NlbGVjdGlvblwiPlxuICAgICAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBbY2hlY2tlZF09XCJpc1NlbGVjdGVkXCIgKGNoYW5nZSk9XCJ0b2dnbGVSb3dTZWxlY3Rpb24oKVwiIC8+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjaGVhZGVyIGxldC1hbGxSb3dzU2VsZWN0ZWQ9XCJhbGxSb3dzU2VsZWN0ZWRcIiBsZXQtc29tZVJvd3NTZWxlY3RlZD1cInNvbWVSb3dzU2VsZWN0ZWRcIlxuICAgICAgICAgIGxldC10b2dnbGVBbGxSb3dzPVwidG9nZ2xlQWxsUm93c1wiPlxuICAgICAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBbY2hlY2tlZF09XCJhbGxSb3dzU2VsZWN0ZWQoKVwiIFtpbmRldGVybWluYXRlXT1cInNvbWVSb3dzU2VsZWN0ZWQoKVwiXG4gICAgICAgICAgICAoY2hhbmdlKT1cInRvZ2dsZUFsbFJvd3MoKVwiIC8+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBsaWJDb2x1bW49XCJjcmVhdGVkQXRcIj5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgI2NlbGwgbGV0LXZhbHVlPlxuICAgICAgICAgICAge3sgdmFsdWUgfCBkYXRlIH19XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy1jb250YWluZXIgbGliQ29sdW1uPVwiYWN0aW9uc1wiPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjY2VsbCBsZXQtdmFsdWUgbGV0LWRlbGV0ZVJvdyA+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBnYXAtNlwiPlxuICAgICAgICAgICAgICA8dmVyYmVuLXN2Z1xuICAgICAgICAgICAgICAgIChjbGljayk9XCJvcGVuRGV0YWlsVmlldyh2YWx1ZSlcIlxuICAgICAgICAgICAgICAgIGljb249XCJlZGl0XCJcbiAgICAgICAgICAgICAgICBbd2lkdGhdPVwiMTVcIlxuICAgICAgICAgICAgICAgIFtoZWlnaHRdPVwiMTVcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIlxuICAgICAgICAgICAgICA+PC92ZXJiZW4tc3ZnPlxuXG4gICAgICAgICAgICAgIDx2ZXJiZW4tc3ZnXG4gICAgICAgICAgICAgICAgaWNvbj1cImRlbGV0ZVwiXG4gICAgICAgICAgICAgICAgW3dpZHRoXT1cIjE1XCJcbiAgICAgICAgICAgICAgICBbaGVpZ2h0XT1cIjE1XCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiZGVsZXRlUm93KClcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIlxuICAgICAgICAgICAgICA+PC92ZXJiZW4tc3ZnPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgI2hlYWRlcj5cbiAgICAgICAgICAgIDxzdHJvbmc+QWN0aW9uczwvc3Ryb25nPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyIGxpYkNvbHVtbj1cInN0YXR1c1wiPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICNjZWxsXG4gICAgICAgICAgbGV0LWlzRWRpdGluZz1cImlzRWRpdGluZ1wiXG4gICAgICAgICAgbGV0LXRvZ2dsZVJvd0VkaXQ9XCJ0b2dnbGVSb3dFZGl0XCJcbiAgICAgICAgICBsZXQtZGVsZXRlUm93PVwiZGVsZXRlUm93XCJcbiAgICAgICAgICBsZXQtdmFsdWU9XCJ2YWx1ZVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHZlcmJlbmEtYmFkZ2VcbiAgICAgICAgICAgYm9yZGVyUmFkaXVzPVwiMjBweFwiXG4gICAgICAgICAgIHdpZHRoPVwiMTIxcHhcIlxuICAgICAgICAgICAgdGV4dD1cInt7dmFsdWV9fVwiXG4gICAgICAgICAgICBiZ0NvbG9yPVwiI0Q2RjNFNlwiXG4gICAgICAgICAgICB0ZXh0Q29sb3I9XCIjMkRCNzZGXCJcbiAgICAgICAgICAgIHBkPVwiNXB4IDE1cHhcIlxuICAgICAgICAgICAgZm9udFNpemU9XCIxNnB4XCJcbiAgICAgICAgICA+XG5cblxuICAgICAgICA8L3ZlcmJlbmEtYmFkZ2U+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDwvbGliLWRhdGEtdGFibGU+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjYXJkLWNvbnRlbnQ+XG4gICAgICA8dmVyYmVuLWNhcmQtZGF0YS12aWV3XG4gICAgICAgIGJvcmRlclJhZGl1cz1cIjEycHhcIlxuICAgICAgICAobG9hZE1vcmVDbGljayk9XCJsb2FkTW9yZSgpXCJcbiAgICAgICAgI3ZkY3ZcbiAgICAgICAgZGF0YUlkPVwiTWFpbEFkZHJlc3NcIlxuICAgICAgICBib3JkZXI9XCI1cHhcIlxuICAgICAgICBbY2FyZERhdGFMaXN0XT1cImNhcmREYXRhXCJcbiAgICAgICAgcmJnQ29sb3I9XCIjZjVmNmY5XCJcbiAgICAgICAgbWc9XCIwcHhcIlxuICAgICAgICBjbGFzcz1cImdhcC0xXCJcbiAgICAgID5cbiAgICAgICAgPHZlcmJlbi1sZWZ0LWNhcmQtZGF0YS12aWV3IGNsYXNzPVwibS0wIGdhcC0yXCIgPlxuICAgICAgICAgIDx2ZXJiZW4tbGVmdC1jYXJkLWRhdGFcbiAgICAgICAgICAgICN2bGNkXG4gICAgICAgICAgICBbcGFyZW50XT1cInZkY3ZcIlxuICAgICAgICAgICAgZGF0YUlkPVwiTWFpbEFkZHJlc3NcIlxuICAgICAgICAgICAgY2xhc3M9XCJiZy1zZWNvbmRhcnktMTAwICByb3VuZGVkLXhsIHNjcm9sbC1ubyBib3JkZXItcHJpbWFyeSBib3JkZXItWzFweF0gZ2FwLTEgaC1mdWxsIGp1c3RpZnktcHAgbS0wIG92ZXJmbG93LXktYXV0byBvdmVyZmxvdy1oaWRkZW5cIlxuICAgICAgICAgICAgW2NhcmREYXRhTGlzdF09XCJjYXJkRGF0YVwiXG5cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI2NhcmQgbGV0LWl0ZW0+XG4gICAgICAgICAgICAgIDxkaXYgKGNsaWNrKT1cImN1cnJlbnREYXRhID0gdmRjdi5vbkl0ZW1DbGljayhpdGVtKVwiIGNsYXNzPVwiZmxleFwiPlxuICAgICAgICAgICAgICAgIDx2ZXJiZW4tc3ZnXG4gICAgICAgICAgICAgICAgICBbd2lkdGhdPVwiMTVcIlxuICAgICAgICAgICAgICAgICAgW2hlaWdodF09XCIxNVwiXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwidmxjZC5zaG93Q2hpbGRyZW4oaXRlbSlcIlxuICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwidmxjZC5zaG93VG9nZ2xlKGl0ZW0pID8gJ3Zpc2libGUnIDogJ2ludmlzaWJsZSdcIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpdGVtcy1jZW50ZXIgZmxleCAgY3Vyc29yLXBvaW50ZXJcIlxuICAgICAgICAgICAgICAgICAgW2ljb25dPVwiaXRlbS5pc0NoaWxkcmVuRXhwYW5kZWQgPyAnbWludXMnIDogJ3BsdXMnXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjdXJyZW50RGF0YSA9IHZkY3Yub25JdGVtQ2xpY2soaXRlbSlcIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGN1cnNvci1wb2ludGVyICBiZy1zZWNvbmRhcnkgcm91bmRlZC14bCBvdmVyZmxvdy1oaWRkZW4gdy1bMzI5cHhdICFtYXgtdy1bMzI5cHhdXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidy0yIHJvdW5kZWQteGwgcm91bmRlZC10ci1ub25lIHJvdW5kZWQtYnItbm9uZSBvdmVyZmxvdy1oaWRkZW5cIlxuICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJcbiAgICAgICAgICAgICAgICAgICAgICBpdGVtLnNlbGVjdGVkID8gJ2JnLXByaW1hcnknIDogJ2JnLXNlY29uZGFyeS0yMDAnXG4gICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICA+PC9kaXY+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCB3LWZ1bGwgIFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiIGdyaWQgZ3JpZC1jb2xzLTUgaXRlbXMtY2VudGVyIHBsLTYgcHktMyBwci0xXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIiBjb2wtc3Bhbi0zXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZvbnQtc2VtaWJvbGQgdGV4dC1bMTZweF0gdGV4dC1bIzQwNDA0MF1cIj57e1xuICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtLnRpdGxlXG4gICAgICAgICAgICAgICAgICAgICAgICB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInBob25lXCIgY2xhc3M9XCJ0ZXh0LVsxMHB4XSBmb250LWxpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+UGhvbmUgTnVtYmVyOjwvbGFiZWxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBpZD1cInBob25lXCIgY2xhc3M9XCJ0ZXh0LVsxM3B4XSBmb250LW1lZGl1bSB0cnVuY2F0ZSB0ZXh0LXdyYXBcIj57e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0uZGF0YS5QaG9uZU51bWJlclxuICAgICAgICAgICAgICAgICAgICAgICAgICB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCIgY29sLXNwYW4tMiBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiZ3JpZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwicGhvbmVcIiBjbGFzcz1cInRleHQtWzEwcHhdIGZvbnQtbGlnaHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5Sb2xlPC9sYWJlbFxuICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGlkPVwicGhvbmVcIiBjbGFzcz1cInRleHQtc20gZm9udC1tZWRpdW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5NYW5hZ2VyPC9zcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCIgYmctWyNDQUUxQ0NdIHRleHQtY2VudGVyIHRleHQtWyM0QUJCNTRdIHRleHQtWzEzcHhdIG10LVs4cHhdIHJvdW5kZWQtWzlweF1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2l0ZW0uZGF0YS5TdGF0dXN9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxsaWItdXNlci1hY2Nlc3MtcmVxdWVzdC1zdGF0dXMtYmFkZ2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0YXR1c109XCJpdGVtLmRhdGEuU3RhdHVzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L2xpYi11c2VyLWFjY2Vzcy1yZXF1ZXN0LXN0YXR1cy1iYWRnZT4gLS0+XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImZsZXhcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZvbnQtbm9ybWFsIHRleHQtc21cIj57eyBpdGVtLnRpdGxlIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgQGZvciAoY2lJdGVtIG9mIGl0ZW0uYm9keTsgdHJhY2sgY2lJdGVtLnZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtbXV0ZWQgZm9udC1saWdodCB0ZXh0LXhzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID57eyBjaUl0ZW0udGl0bGUgfX06PC9zcGFuXG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1ibGFja1wiPnt7IGNpSXRlbS52YWx1ZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIH0gLS0+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgIDwvdmVyYmVuLWxlZnQtY2FyZC1kYXRhPlxuICAgICAgICA8L3ZlcmJlbi1sZWZ0LWNhcmQtZGF0YS12aWV3PlxuXG4gICAgICAgIDx2ZXJiZW4tcmlnaHQtY2FyZC1kYXRhLXZpZXc+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNwYXJlbnQ+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIiBiZy1zZWNvbmRhcnktMTAwIHB5LTEwIGZsZXggZmxleC1jb2wgZ2FwLTIwIHB4LTlcIj5cbiAgICAgICAgICAgIDxsaWItdXNlci1yZXF1ZXN0LWZvcm1cbiAgICAgICAgICAgIFtjdXJyZW50RGF0YV09XCJjdXJyZW50RGF0YVwiXG4gICAgICAgICAgICAoc3dpdGNoVmlldyk9XCJ2ZHYudG9nZ2xlVmlldygpXCJcbiAgICAgICAgICAgID48L2xpYi11c2VyLXJlcXVlc3QtZm9ybT5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktYmV0d2VlbiBib3R0b20tOCBsZWZ0LTAgcmlnaHQtMCBwLTNcIj5cbiAgICAgICAgICAgICAgPHZlcmJlbmEtYnV0dG9uIHRleHQ9XCJEZWxldGVcIiBiZ0NvbG9yPVwiIzk5OTk5OVwiIHRleHRDb2xvcj1cIndoaXRlXCJcbiAgICAgICAgICAgICAgICBib3JkZXI9XCIxcHggc29saWQgIzk5OTk5OVwiPjwvdmVyYmVuYS1idXR0b24+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGdhcC0zXCI+XG4gICAgICAgICAgICAgICAgPHZlcmJlbmEtYnV0dG9uIChjbGljayk9XCJ2ZHYudG9nZ2xlVmlldygpXCIgdGV4dD1cIlN3aXRjaCBUbyBUYWJsZVwiXG4gICAgICAgICAgICAgICAgICBzdHlsZVR5cGU9XCJ5bHctb3V0bGluZVwiPjwvdmVyYmVuYS1idXR0b24+XG4gICAgICAgICAgICAgICAgPHZlcmJlbmEtYnV0dG9uICB0ZXh0PVwiU2F2ZVwiIGJnQ29sb3I9XCIjRkZFNjgxXCIgdGV4dENvbG9yPVwiIzQwNDA0MFwiXG4gICAgICAgICAgICAgICAgICBib3JkZXI9XCIxcHggc29saWQgI0ZGRTY4MVwiPlxuICAgICAgICAgICAgICAgICAgPCEtLSAoY2xpY2spPVwiXCIgLS0+XG4gICAgICAgICAgICAgICAgPC92ZXJiZW5hLWJ1dHRvbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L3ZlcmJlbi1yaWdodC1jYXJkLWRhdGEtdmlldz5cblxuICAgICAgICA8dmVyYmVuLWNhcmQtZGF0YS12aWV3LWZvb3RlciBjbGFzcz1cImZsb2F0LXJpZ2h0XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZ2FwLTJcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicGFnaW5hdG9yLXRleHRcIlxuICAgICAgICAgICAgICA+e3sgY2FyZERhdGEubGVuZ3RoIH19IHJlY29yZHMgbG9hZGVkPC9zcGFuXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJsb2FkTW9yZSgpXCIgY2xhc3M9XCJsb2FkLW1vcmVcIj5Mb2FkIG1vcmU8L2J1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC92ZXJiZW4tY2FyZC1kYXRhLXZpZXctZm9vdGVyPlxuICAgICAgPC92ZXJiZW4tY2FyZC1kYXRhLXZpZXc+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjb2x1bW4tY29udGVudD5cbiAgICAgIDx2ZXJiZW4tdmlzaWJsZS1jb2x1bW5cbiAgICAgICAgKGNvbHVtbnNVcGRhdGVkKT1cIm9uQ29sdW1uc1VwZGF0ZWQoJGV2ZW50KVwiXG4gICAgICAgIFtib3JkZXJdPVwiJzFweCBzb2xpZCByZ2JhKDIxMiwgMTYwLCA3LCAxKSdcIlxuICAgICAgICBib3JkZXJSYWRpdXM9XCIxMHB4XCJcbiAgICAgICAgYm94U2hhZG93PVwiMnB4IDJweCAycHggMHB4IHNpbHZlclwiXG4gICAgICAgIGJnQ29sb3I9XCJ3aGl0ZVwiXG4gICAgICAgIHdpZHRoPVwiNDAwcHhcIlxuICAgICAgICB0ZXh0Q29sb3I9XCJibGFja1wiXG4gICAgICAgIHBkPVwiMXJlbVwiXG4gICAgICAgIHByaW1hcnlDb2xvcj1cIiNGRkU2ODFcIlxuICAgICAgICBzZWNvbmRhcnlDb2xvcj1cIiMzNDc5RTlcIlxuICAgICAgICBbY29sdW1uc109XCJ2aXNpYmxlQ29sdW1uc1wiXG4gICAgICAgIFtkaXNwbGF5ZWRDb2x1bW5zXT1cIjVcIlxuICAgICAgPjwvdmVyYmVuLXZpc2libGUtY29sdW1uPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgZmlsdGVyLWNvbnRlbnQ+XG4gICAgICA8dmVyYmVuLXRhYmxlLWZpbHRlclxuICAgICAgICBbYm9yZGVyXT1cIicxcHggc29saWQgcmdiYSgyMTIsIDE2MCwgNywgMSknXCJcbiAgICAgICAgYm9yZGVyUmFkaXVzPVwiMTBweFwiXG4gICAgICAgIGJveFNoYWRvdz1cIjJweCAycHggMnB4IDBweCBzaWx2ZXJcIlxuICAgICAgICBiZ0NvbG9yPVwid2hpdGVcIlxuICAgICAgICB3aWR0aD1cIjQyMHB4XCJcbiAgICAgICAgdGV4dENvbG9yPVwiYmxhY2tcIlxuICAgICAgICBwZD1cIjFyZW1cIlxuICAgICAgICBwcmltYXJ5Q29sb3I9XCIjRkZFNjgxXCJcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3I9XCIjMzQ3OUU5XCJcbiAgICAgICAgdGVydGlhcnlDb2xvcj1cIiM0MDQwNDBcIlxuICAgICAgICBbZmlsdGVyT3B0aW9uc109XCJmaWx0ZXJBcnJheVwiXG4gICAgICAgIFttYXhGaWx0ZXJMZW5ndGhdPVwiM1wiXG4gICAgICA+PC92ZXJiZW4tdGFibGUtZmlsdGVyPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgc29ydC1jb250ZW50PlxuICAgICAgPHZlcmJlbi1zb3J0LXRhYmxlXG4gICAgICAgIChzZWxlY3RlZE9wdGlvbnMpPVwib25Tb3J0VXBkYXRlZCgkZXZlbnQpXCJcbiAgICAgICAgW2JvcmRlcl09XCInMXB4IHNvbGlkIHJnYmEoMjEyLCAxNjAsIDcsIDEpJ1wiXG4gICAgICAgIGJvcmRlclJhZGl1cz1cIjEwcHhcIlxuICAgICAgICBib3hTaGFkb3c9XCIycHggMnB4IDJweCAwcHggc2lsdmVyXCJcbiAgICAgICAgYmdDb2xvcj1cIndoaXRlXCJcbiAgICAgICAgd2lkdGg9XCI0MDBweFwiXG4gICAgICAgIHRleHRDb2xvcj1cImJsYWNrXCJcbiAgICAgICAgcGQ9XCIxcmVtXCJcbiAgICAgICAgcHJpbWFyeUNvbG9yPVwiI0ZGRTY4MVwiXG4gICAgICAgIHNlY29uZGFyeUNvbG9yPVwiIzM0NzlFOVwiXG4gICAgICAgIHRlcnRpYXJ5Q29sb3I9XCIjNDA0MDQwXCJcbiAgICAgICAgW2VuYWJsZURyYWdBbmREcm9wXT1cInRydWVcIlxuICAgICAgICBbc29ydE9wdGlvbnNdPVwic29ydE9wdGlvbnNcIlxuICAgICAgPjwvdmVyYmVuLXNvcnQtdGFibGU+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBleHBvcnQtY29udGVudD5cbiAgICAgIDxsaWItZGF0YS1leHBvcnQgW2RhdGFdPVwiZGF0YVwiIChleHBvcnREYXRhRXZlbnQpPVwiaGFuZGxlRXhwb3J0KCRldmVudClcIj5cbiAgICAgIDwvbGliLWRhdGEtZXhwb3J0PlxuICAgIDwvZGl2PlxuICA8L3ZlcmJlbi1kYXRhLXZpZXc+XG4gICAgPGRpdiAqbmdJZj1cIiF2ZGN2Lmhhc0N1cnJlbnRJdGVtKCkgJiYgdGhpcy5jYXJkQ29udGV4dEhpc3RvcnkubGVuZ3RoID09IDBcIlxuICAgIGNsYXNzPVwibWVzc2FnZS1sb2ctYnV0dG9uLWNvbnRhaW5lciBmbGV4IGp1c3RpZnktYmV0d2VlblwiPlxuICAgIDx2ZXJiZW5hLWJ1dHRvbiBbZm9udFdlaWdodF09XCInYm9sZCdcIiBbYmdDb2xvcl09XCInIzhFOEQ4NydcIiBbYm9yZGVyUmFkaXVzXT1cIic0cHgnXCIgW3RleHRDb2xvcl09XCInI2ZmZidcIlxuICAgICAgW3RleHRdPVwiJ0RlbGV0ZSdcIj5cbiAgICA8L3ZlcmJlbmEtYnV0dG9uPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19