vc-create-dashboard 2.5.0 → 2.5.1

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.
@@ -182,7 +182,7 @@ export class CategoriesComponent {
182
182
  CategoriesComponent.decorators = [
183
183
  { type: Component, args: [{
184
184
  selector: 'app-categories',
185
- template: "<div class=\"category-list\" [class.animate-slideInRight]=\"animation\">\r\n <div class=\"category-list-head vx-d-flex vx-align-center vx-justify-between vx-p-3\">\r\n <span class=\"vx-fw-500 vx-label-txt vx-lh-5\">Select Program(s)</span>\r\n <!-- <button class=\"vx-d-flex vx-align-center vx-label-txt vx-tt-uppercase vx-fw-500 vx-p-0\"><i class=\"icons\">&#xeb29;</i> Back</button> -->\r\n </div>\r\n <div class=\"category-list-mid\">\r\n <!-- <div class=\"category-list-tab\">\r\n <ul>\r\n <li class=\"active\"><button>Compliance<span>98</span></button></li>\r\n <li><button>Risks<span>120</span></button></li>\r\n <li><button>Audit<span>28</span></button></li>\r\n <li><button>Policy<span>45</span></button></li>\r\n </ul>\r\n </div> -->\r\n \r\n <div class=\"vx-d-flex vx-mb-2\">\r\n \r\n <div class=\"category-list-card\" [class.active]=\"activeTab == 'regulations'\" (click)=\"activeTab = 'regulations'\">\r\n <div class=\"left\">\r\n <label>REGULATIONS</label>\r\n <p *ngIf=\"categoryList?.regulations?.selectedList?.length != 0\">\r\n {{categoryList?.regulations?.selectedList?.length}}\r\n {{(categoryList?.regulations?.selectedList?.length==1)?'Category':'Categories'}} selected\r\n </p>\r\n </div>\r\n <span class=\"counter\">{{categoryList?.regulations?.list?.length}}</span>\r\n </div>\r\n <div class=\"category-list-card\" [class.active]=\"activeTab == 'standards'\" (click)=\"activeTab = 'standards'\">\r\n <div class=\"left\">\r\n <label>STANDARDS</label>\r\n <p *ngIf=\"categoryList?.standards?.selectedList?.length != 0\">\r\n {{categoryList?.standards?.selectedList?.length}}\r\n {{(categoryList?.standards?.selectedList?.length==1)?'Category':'Categories'}} selected\r\n </p>\r\n </div>\r\n <span class=\"counter\">{{categoryList?.standards?.list?.length}}</span>\r\n </div>\r\n <div class=\"category-list-card\" [class.active]=\"activeTab == 'internalControls'\"\r\n (click)=\"activeTab = 'internalControls'\">\r\n <div class=\"left\">\r\n <label>INTERNAL CONTROLS</label>\r\n <p *ngIf=\"categoryList?.internalControls?.selectedList?.length != 0\">\r\n {{categoryList?.internalControls?.selectedList?.length}}\r\n {{(categoryList?.internalControls?.selectedList?.length==1)?'Category':'Categories'}} selected\r\n </p>\r\n </div>\r\n <span class=\"counter\">{{categoryList?.internalControls?.list?.length}}</span>\r\n </div>\r\n <div class=\"category-list-card\" [class.active]=\"activeTab == 'others'\" (click)=\"activeTab = 'others'\">\r\n <div class=\"left\">\r\n <label>OTHERS</label>\r\n <p *ngIf=\"categoryList?.others?.selectedList?.length != 0\">\r\n {{categoryList?.others?.selectedList?.length}}\r\n {{(categoryList?.others?.selectedList?.length==1)?'Category':'Categories'}} selected\r\n </p>\r\n </div>\r\n <span class=\"counter\">{{categoryList?.others?.list?.length}}</span>\r\n </div>\r\n </div>\r\n \r\n <div class=\"search\">\r\n <i class=\"icons vx-fs-3\">&#xe90b;</i>\r\n <input type=\"text\" [(ngModel)]=\"search\" placeholder=\"Search Responsibility Category\" />\r\n </div>\r\n\r\n <ng-container *ngIf=\"(categoryList[activeTab].list | filter: search) as searchList\">\r\n <div class=\"select-all\" *ngIf=\"searchList.length > 1\">\r\n <app-cs-checkbox [ngValue]=\"checkSelectAll(activeTab)\" (ngValueChange)=\"selectAll($event,activeTab)\">\r\n <strong>{{checkSelectAll(activeTab) ? 'Deselect All' : 'Select All'}}</strong>\r\n </app-cs-checkbox>\r\n </div>\r\n <div class=\"category-list-item\" *ngIf=\"searchList.length > 0\">\r\n <ul class=\"category-list-item-ul vx-m-0 vx-p-0\">\r\n <li class=\"vx-mb-5\" *ngFor=\"let category of searchList\" >\r\n <app-cs-checkbox [ngValue]=\"selectedIds.includes(category[categoryIdKey])\"\r\n (ngValueChange)=\"selectCategory($event,activeTab,category)\">\r\n <ul class=\"categories\">\r\n <li *ngFor=\"let entity of category.category_name; let j = index\" [arTooltip]=\"entity\" placement=\"bottom-left\" delay=\"0\">\r\n {{entity}}\r\n </li>\r\n </ul>\r\n </app-cs-checkbox>\r\n </li>\r\n </ul>\r\n </div>\r\n\r\n <app-no-data *ngIf=\"searchList.length == 0\"\r\n [noDataImage]=\"'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/search-data.svg'\" [noDataText]=\"'No data to display'\">\r\n </app-no-data>\r\n </ng-container>\r\n </div>\r\n <app-dashboard-footer \r\n [footerDetails] =\"footerDetails\"\r\n (cancelEvent)=\"close()\"\r\n (deleteEvent) =\"deleteEvent($event)\"\r\n (submitEvent)=\"save()\"\r\n ></app-dashboard-footer>\r\n</div>\r\n",
185
+ template: "<div class=\"category-list\" [class.animate-slideInRight]=\"animation\">\r\n <div class=\"category-list-head vx-d-flex vx-align-center vx-justify-between vx-p-3\">\r\n <span class=\"vx-fw-500 vx-label-txt vx-lh-5\">Select Program(s)</span>\r\n <!-- <button class=\"vx-d-flex vx-align-center vx-label-txt vx-tt-uppercase vx-fw-500 vx-p-0\"><i class=\"icons\">&#xeb29;</i> Back</button> -->\r\n </div>\r\n <div class=\"category-list-mid\">\r\n <!-- <div class=\"category-list-tab\">\r\n <ul>\r\n <li class=\"active\"><button>Compliance<span>98</span></button></li>\r\n <li><button>Risks<span>120</span></button></li>\r\n <li><button>Audit<span>28</span></button></li>\r\n <li><button>Policy<span>45</span></button></li>\r\n </ul>\r\n </div> -->\r\n \r\n <div class=\"vx-d-flex vx-mb-2\">\r\n \r\n <div class=\"category-list-card\" [class.active]=\"activeTab == 'regulations'\" (click)=\"activeTab = 'regulations'\">\r\n <div class=\"left\">\r\n <label>REGULATIONS</label>\r\n <p *ngIf=\"categoryList?.regulations?.selectedList?.length != 0\">\r\n {{categoryList?.regulations?.selectedList?.length}}\r\n {{(categoryList?.regulations?.selectedList?.length==1)?'Category':'Categories'}} selected\r\n </p>\r\n </div>\r\n <span class=\"counter\">{{categoryList?.regulations?.list?.length}}</span>\r\n </div>\r\n <div class=\"category-list-card\" [class.active]=\"activeTab == 'standards'\" (click)=\"activeTab = 'standards'\">\r\n <div class=\"left\">\r\n <label>STANDARDS</label>\r\n <p *ngIf=\"categoryList?.standards?.selectedList?.length != 0\">\r\n {{categoryList?.standards?.selectedList?.length}}\r\n {{(categoryList?.standards?.selectedList?.length==1)?'Category':'Categories'}} selected\r\n </p>\r\n </div>\r\n <span class=\"counter\">{{categoryList?.standards?.list?.length}}</span>\r\n </div>\r\n <div class=\"category-list-card\" [class.active]=\"activeTab == 'internalControls'\"\r\n (click)=\"activeTab = 'internalControls'\">\r\n <div class=\"left\">\r\n <label>INTERNAL CONTROLS</label>\r\n <p *ngIf=\"categoryList?.internalControls?.selectedList?.length != 0\">\r\n {{categoryList?.internalControls?.selectedList?.length}}\r\n {{(categoryList?.internalControls?.selectedList?.length==1)?'Category':'Categories'}} selected\r\n </p>\r\n </div>\r\n <span class=\"counter\">{{categoryList?.internalControls?.list?.length}}</span>\r\n </div>\r\n <div class=\"category-list-card\" [class.active]=\"activeTab == 'others'\" (click)=\"activeTab = 'others'\">\r\n <div class=\"left\">\r\n <label>OTHERS</label>\r\n <p *ngIf=\"categoryList?.others?.selectedList?.length != 0\">\r\n {{categoryList?.others?.selectedList?.length}}\r\n {{(categoryList?.others?.selectedList?.length==1)?'Category':'Categories'}} selected\r\n </p>\r\n </div>\r\n <span class=\"counter\">{{categoryList?.others?.list?.length}}</span>\r\n </div>\r\n </div>\r\n \r\n <div class=\"search\">\r\n <i class=\"icons vx-fs-3\">&#xe90b;</i>\r\n <input type=\"text\" [(ngModel)]=\"search\" placeholder=\"Search Program\" />\r\n </div>\r\n\r\n <ng-container *ngIf=\"(categoryList[activeTab].list | filter: search) as searchList\">\r\n <div class=\"select-all\" *ngIf=\"searchList.length > 1\">\r\n <app-cs-checkbox [ngValue]=\"checkSelectAll(activeTab)\" (ngValueChange)=\"selectAll($event,activeTab)\">\r\n <strong>{{checkSelectAll(activeTab) ? 'Deselect All' : 'Select All'}}</strong>\r\n </app-cs-checkbox>\r\n </div>\r\n <div class=\"category-list-item\" *ngIf=\"searchList.length > 0\">\r\n <ul class=\"category-list-item-ul vx-m-0 vx-p-0\">\r\n <li class=\"vx-mb-5\" *ngFor=\"let category of searchList\" >\r\n <app-cs-checkbox [ngValue]=\"selectedIds.includes(category[categoryIdKey])\"\r\n (ngValueChange)=\"selectCategory($event,activeTab,category)\">\r\n <ul class=\"categories\">\r\n <li *ngFor=\"let entity of category.category_name; let j = index\" [arTooltip]=\"entity\" placement=\"bottom-left\" delay=\"0\">\r\n {{entity}}\r\n </li>\r\n </ul>\r\n </app-cs-checkbox>\r\n </li>\r\n </ul>\r\n </div>\r\n\r\n <app-no-data *ngIf=\"searchList.length == 0\"\r\n [noDataImage]=\"'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/search-data.svg'\" [noDataText]=\"'No data to display'\">\r\n </app-no-data>\r\n </ng-container>\r\n </div>\r\n <app-dashboard-footer \r\n [footerDetails] =\"footerDetails\"\r\n (cancelEvent)=\"close()\"\r\n (deleteEvent) =\"deleteEvent($event)\"\r\n (submitEvent)=\"save()\"\r\n ></app-dashboard-footer>\r\n</div>\r\n",
186
186
  styles: ["@import url(\"https://cdn.v-comply.com/design-system/css/icons/icons.css\");@import url(\"https://cdn.v-comply.com/design-system/css/text/text.css\");@import url(\"https://cdn.v-comply.com/design-system/css/color/color.css\");@import url(\"https://cdn.v-comply.com/design-system/css/display/display.css\");@import url(\"https://cdn.v-comply.com/design-system/css/alignment/alignment.css\");@import url(\"https://cdn.v-comply.com/design-system/css/width/width.css\");@import url(\"https://cdn.v-comply.com/design-system/css/margin/margin.css\");@import url(\"https://cdn.v-comply.com/design-system/css/margin/margin-top.css\");@import url(\"https://cdn.v-comply.com/design-system/css/margin/margin-bottom.css\");@import url(\"https://cdn.v-comply.com/design-system/css/margin/margin-left.css\");@import url(\"https://cdn.v-comply.com/design-system/css/margin/margin-right.css\");@import url(\"https://cdn.v-comply.com/design-system/css/padding/padding.css\");@import url(\"https://cdn.v-comply.com/design-system/css/padding/padding-top.css\");@import url(\"https://cdn.v-comply.com/design-system/css/padding/padding-bottom.css\");@import url(\"https://cdn.v-comply.com/design-system/css/padding/padding-left.css\");@import url(\"https://cdn.v-comply.com/design-system/css/padding/padding-right.css\");@import url(\"https://cdn.v-comply.com/design-system/css/button/button.css\");@import url(\"https://cdn.v-comply.com/design-system/css/animate/animation.css\");@import url(\"https://cdn.v-comply.com/design-system/css/animate/animate-slide-right.css\");@import url(\"https://cdn.v-comply.com/design-system/css/table-card/table-card.css\");::ng-deep .category-list{background:#fff}::ng-deep .category-list-head{background:#fbfbfb;border-bottom:1px solid #f1f1f1;border-radius:2px 2px 0 0}::ng-deep .category-list-head span{font-size:14px}::ng-deep .category-list-head button{background:#0000;border-radius:0;border:none}::ng-deep .category-list-head button i{margin:-1px 4px 0 0}::ng-deep .category-list-card{display:flex;align-items:center;border:1px solid #dbdbdb;border-radius:4px;height:55px;padding:12px 12px 12px 16px;width:100%;justify-content:space-between;cursor:pointer}::ng-deep .category-list-card .left{display:flex;flex-wrap:wrap;pointer-events:none}::ng-deep .category-list-card .left label{font-weight:600;text-transform:uppercase;color:#747576;line-height:16px;margin-left:0;font-size:11px;width:100%}::ng-deep .category-list-card .left p{line-height:16px;font-size:11px;color:#161b2f;font-weight:600;margin:0}::ng-deep .category-list-card span.counter{display:flex;height:32px;min-width:32px;border-radius:4px;background:#042e7d;color:#fff;font-size:11px;line-height:32px;justify-content:center;align-items:center;padding:0 5px;pointer-events:none}::ng-deep .category-list-card.active{box-shadow:0 3px 6px #1e5dd326}::ng-deep .category-list-card+.category-list-card{margin-left:4px}::ng-deep .category-list-mid{background:#fff;height:calc(100vh - 112px);border-radius:0 0 1px 1px;padding:24px 36px 4px;overflow-y:auto}::ng-deep .category-list-mid::-webkit-scrollbar-track{background-color:#fff}::ng-deep .category-list-mid .category-card .vx-table-card:last-of-type{margin-right:0!important}::ng-deep .category-list-mid .search{position:relative;margin-bottom:8px}::ng-deep .category-list-mid .search i{position:absolute;top:16px;left:16px;color:#dbdbdb}::ng-deep .category-list-mid .search input{border:1px solid #dbdbdb;border-radius:4px;height:44px;padding:10px 180px 10px 40px;width:100%;font-size:14px;color:#747576;outline:none}::ng-deep .category-list-mid .search input:focus{border-color:#1e5dd3;box-shadow:0 0 5px #1e5dd345}::ng-deep .category-list-mid .select-all{display:flex;padding-bottom:20px}::ng-deep .category-list-mid .select-all app-cs-checkbox{display:flex}::ng-deep .category-list-mid .select-all app-cs-checkbox .checkbox-item .value{max-width:unset!important}::ng-deep .category-list-mid .select-all app-cs-checkbox .checkbox-item .value strong{font-weight:600;color:#161b2f}::ng-deep .category-list-item ul.category-list-item-ul{list-style-type:none;display:block;align-items:flex-start;flex-wrap:wrap;max-height:calc(100vh - 295px);min-height:calc(100vh - 295px);overflow:auto;padding:16px 0 0}::ng-deep .category-list-item ul.category-list-item-ul::-webkit-scrollbar-track{background-color:#fff}::ng-deep .category-list-item ul.category-list-item-ul li{list-style:none}::ng-deep .category-list-item ul.category-list-item-ul li app-cs-checkbox,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-radio{display:flex}::ng-deep .category-list-item ul.category-list-item-ul li app-cs-checkbox label,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-radio label{width:100%}::ng-deep .category-list-item ul.category-list-item-ul li app-cs-checkbox label.checkbox-item span.value,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-checkbox label.radio-item span.value,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-radio label.checkbox-item span.value,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-radio label.radio-item span.value{width:auto;justify-content:flex-start}::ng-deep .category-list-item ul.category-list-item-ul li app-cs-checkbox label.checkbox-item span.value ul.categories,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-checkbox label.radio-item span.value ul.categories,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-radio label.checkbox-item span.value ul.categories,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-radio label.radio-item span.value ul.categories{display:flex;max-width:100%;padding:0;margin:0;justify-content:flex-start;width:auto}::ng-deep .category-list-item ul.category-list-item-ul li app-cs-checkbox label.checkbox-item span.value ul.categories li,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-checkbox label.radio-item span.value ul.categories li,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-radio label.checkbox-item span.value ul.categories li,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-radio label.radio-item span.value ul.categories li{display:block;padding:0 8px;position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:13px;color:#747576}::ng-deep .category-list-item ul.category-list-item-ul li app-cs-checkbox label.checkbox-item span.value ul.categories li:after,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-checkbox label.radio-item span.value ul.categories li:after,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-radio label.checkbox-item span.value ul.categories li:after,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-radio label.radio-item span.value ul.categories li:after{content:\">\";position:absolute;top:0;right:0;color:#747576;font-size:13px}::ng-deep .category-list-item ul.category-list-item-ul li app-cs-checkbox label.checkbox-item span.value ul.categories li:last-of-type,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-checkbox label.radio-item span.value ul.categories li:last-of-type,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-radio label.checkbox-item span.value ul.categories li:last-of-type,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-radio label.radio-item span.value ul.categories li:last-of-type{color:#34aa44}::ng-deep .category-list-item ul.category-list-item-ul li app-cs-checkbox label.checkbox-item span.value ul.categories li:last-of-type:after,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-checkbox label.radio-item span.value ul.categories li:last-of-type:after,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-radio label.checkbox-item span.value ul.categories li:last-of-type:after,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-radio label.radio-item span.value ul.categories li:last-of-type:after{display:none}::ng-deep .category-list-item ul.category-list-item-ul li app-cs-checkbox label.checkbox-item span.value ul.categories li:first-of-type,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-checkbox label.radio-item span.value ul.categories li:first-of-type,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-radio label.checkbox-item span.value ul.categories li:first-of-type,::ng-deep .category-list-item ul.category-list-item-ul li app-cs-radio label.radio-item span.value ul.categories li:first-of-type{padding-left:0;color:#1e5dd3}"]
187
187
  },] }
188
188
  ];
@@ -196,4 +196,4 @@ CategoriesComponent.propDecorators = {
196
196
  closeList: [{ type: Output }],
197
197
  closeCategoriesList: [{ type: Output }]
198
198
  };
199
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcmllcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jcmVhdGUtZGFzaGJvYXJkL3NyYy9saWIvY3JlYXRlLWRhc2hib2FyZC1jb250YWluZXIvY2F0ZWdvcmllcy9jYXRlZ29yaWVzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBUy9FLE1BQU0sT0FBTyxtQkFBbUI7SUFnRDlCO1FBN0NTLGlCQUFZLEdBQXFCO1lBQ3hDLFdBQVcsRUFBRTtnQkFDWCxJQUFJLEVBQUUsRUFBRTtnQkFDUixZQUFZLEVBQUUsRUFBRTthQUNqQjtZQUNILFNBQVMsRUFBRTtnQkFDUCxJQUFJLEVBQUUsRUFBRTtnQkFDUixZQUFZLEVBQUUsRUFBRTthQUNqQjtZQUNILGdCQUFnQixFQUFFO2dCQUNkLElBQUksRUFBRSxFQUFFO2dCQUNSLFlBQVksRUFBRSxFQUFFO2FBQ2pCO1lBQ0gsTUFBTSxFQUFFO2dCQUNKLElBQUksRUFBRSxFQUFFO2dCQUNSLFlBQVksRUFBRSxFQUFFO2FBQ2pCO1NBQ0YsQ0FBQztRQUNPLGtCQUFhLEdBQVUsRUFBRSxDQUFDO1FBRzFCLHVCQUFrQixHQUFVLEVBQUUsQ0FBQztRQUV4QyxXQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ1osY0FBUyxHQUE4RCxhQUFhLENBQUM7UUFDckYsZ0JBQVcsR0FBVSxFQUFFLENBQUM7UUFDeEIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUVsQixrQkFBYSxHQUEwQjtZQUNyQyxZQUFZLEVBQUUsRUFBRTtZQUNoQixnQkFBZ0IsRUFBQyxFQUFFO1lBQ25CLGlCQUFpQixFQUFFLFdBQVc7WUFDOUIsU0FBUyxFQUFFLFNBQVM7WUFDcEIsWUFBWSxFQUFFLGtDQUFrQztZQUNoRCxVQUFVLEVBQUUs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MUI7YUFBTTtZQUNMLElBQUksQ0FBQyxTQUFTLEdBQUcsYUFBYSxDQUFBO1NBQy9CO0lBQ0gsQ0FBQztJQUdELGNBQWMsQ0FBQyxTQUF1RTtRQUNwRixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3pILE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELElBQUk7UUFDRixJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2xDLENBQUM7OztZQXZNRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGdCQUFnQjtnQkFDMUIsa2lMQUEwQzs7YUFFM0M7Ozs7MkJBSUUsS0FBSzs0QkFrQkwsS0FBSzs0QkFFTCxLQUFLO2lDQUNMLEtBQUs7bUNBb0JMLE1BQU07d0JBQ04sTUFBTTtrQ0FDTixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEYXNoYm9hcmRGb290ZXJDb25maWcgfSBmcm9tICcuLi8uLi91aS1raXQvZGFzaGJvYXJkLWZvb3Rlci9kYXNoYm9hcmQtZm9vdGVyLWNvbmZpZyc7XHJcbmltcG9ydCB7IENhdGVnb3JpZXNDb25maWcgfSBmcm9tICcuL2NhdGVnb3JpZXMtY29uZmlnJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWNhdGVnb3JpZXMnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jYXRlZ29yaWVzLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jYXRlZ29yaWVzLmNvbXBvbmVudC5sZXNzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIENhdGVnb3JpZXNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuXHJcbiAgQElucHV0KCkgY2F0ZWdvcnlMaXN0OiBDYXRlZ29yaWVzQ29uZmlnID0ge1xyXG4gICAgcmVndWxhdGlvbnM6IHtcclxuICAgICAgbGlzdDogW10sXHJcbiAgICAgIHNlbGVjdGVkTGlzdDogW11cclxuICAgIH0sXHJcbiAgc3RhbmRhcmRzOiB7XHJcbiAgICAgIGxpc3Q6IFtdLFxyXG4gICAgICBzZWxlY3RlZExpc3Q6IFtdXHJcbiAgICB9LFxyXG4gIGludGVybmFsQ29udHJvbHM6IHtcclxuICAgICAgbGlzdDogW10sXHJcbiAgICAgIHNlbGVjdGVkTGlzdDogW11cclxuICAgIH0sXHJcbiAgb3RoZXJzOiB7XHJcbiAgICAgIGxpc3Q6IFtdLFxyXG4gICAgICBzZWxlY3RlZExpc3Q6IFtdXHJcbiAgICB9XHJcbiAgfTtcclxuICBASW5wdXQoKSBhbGxDYXRlZ29yaWVzOiBhbnlbXSA9IFtdO1xyXG5cclxuICBASW5wdXQoKSBjYXRlZ29yeUlkS2V5OiBhbnk7XHJcbiAgQElucHV0KCkgc2VsZWN0ZWRDYXRlZ29yaWVzOiBhbnlbXSA9IFtdO1xyXG5cclxuICBzZWFyY2ggPSAnJztcclxuICBhY3RpdmVUYWI6IFwic3RhbmRhcmRzXCIgfCBcInJlZ3VsYXRpb25zXCIgfCBcImludGVybmFsQ29udHJvbHNcIiB8IFwib3RoZXJzXCI9XCJyZWd1bGF0aW9uc1wiO1xyXG4gIHNlbGVjdGVkSWRzOiBhbnlbXSA9IFtdO1xyXG4gIGFuaW1hdGlvbiA9IGZhbHNlO1xyXG4gIGJsb2NrV2lkdGg6IGFueTtcclxuICBmb290ZXJEZXRhaWxzOiBEYXNoYm9hcmRGb290ZXJDb25maWcgPSB7XHJcbiAgICBzZWxlY3RlZERhdGE6IFtdLFxyXG4gICAgbm9uUmVtb3ZhYmxlTGlzdDpbXSxcclxuICAgIGRpc3BsYXlFbGVtZW50S2V5OiAnaXRlbV9uYW1lJyxcclxuICAgIGVsZW1lbnRJZDogJ2l0ZW1faWQnLFxyXG4gICAgc2luZ3VsYXJUZXh0OiAnUmVzcG9uc2liaWxpdHkgQ2F0ZWdvcnkgc2VsZWN0ZWQnLFxyXG4gICAgcGx1cmFsVGV4dDogJ1Jlc3BvbnNpYmlsaXR5IENhdGVnb3JpZXMgc2VsZWN0ZWQnLFxyXG4gICAgc2hvd0ZyZXF1ZW5jeTogZmFsc2UsXHJcbiAgICBmcmVxdWVuY3lUZXh0OiAnJyxcclxuICAgIGlzRGlzYWJsZWQ6IGZhbHNlXHJcblxyXG4gIH07XHJcblxyXG4gIEBPdXRwdXQoKSBzYXZlU2VsZWN0ZWRDYXRlZ29yeSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgY2xvc2VMaXN0ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBjbG9zZUNhdGVnb3JpZXNMaXN0ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuYW5pbWF0aW9uID0gdHJ1ZTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLmFuaW1hdGlvbiA9IGZhbHNlO1xyXG4gICAgfSwgMzAwKTtcclxuICAgIHRoaXMuc2VsZWN0ZWRJZHMgPSBbXTtcclxuICAgIGlmICh0aGlzLnNlbGVjdGVkQ2F0ZWdvcmllcykge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkQ2F0ZWdvcmllcy5mb3JFYWNoKGVsZW1lbnQgPT4ge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJZHMucHVzaChlbGVtZW50W3RoaXMuY2F0ZWdvcnlJZEtleV0pO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIHRoaXMuc2V0TGlzdCgpXHJcblxyXG5cclxuICB9XHJcblxyXG4gIHNlbGVjdENhdGVnb3J5KG1vZGU6IGFueSwgYWN0aXZlVGFiOiBhbnksIGNhdGVnb3J5OiBhbnkpIHtcclxuICAgIGlmIChtb2RlKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRJZHMucHVzaChjYXRlZ29yeVt0aGlzLmNhdGVnb3J5SWRLZXldKTtcclxuICAgICAgY29uc3QgcmNFbGVtZW50ID0gdGhpcy5hbGxDYXRlZ29yaWVzLmZpbmRJbmRleCgoZWxlOiBhbnkpID0+IGVsZS5jYXRlZ29yeV9pZCA9PSBjYXRlZ29yeVt0aGlzLmNhdGVnb3J5SWRLZXldKTtcclxuICAgICAgaWYgKHJjRWxlbWVudCAhPT0gLTEpIHtcclxuICAgICAgICBjb25zdCBwYXJlbnRSYzogYW55ID0gdGhpcy5hbGxDYXRlZ29yaWVzW3JjRWxlbWVudF07XHJcbiAgICAgICAgaWYgKHBhcmVudFJjPy5jaGlsZF9jYXRfaWRzPy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICBwYXJlbnRSYy5jaGlsZF9jYXRfaWRzLmZvckVhY2goKGNoaWxkRWxlbWVudDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIGlmKCF0aGlzLnNlbGVjdGVkSWRzLmluY2x1ZGVzKGNoaWxkRWxlbWVudCkpe1xyXG4gICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJZHMucHVzaChjaGlsZEVsZW1lbnQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5zZWxlY3RlZElkcy5maW5kSW5kZXgoKGVsZW1lbnQ6IGFueSkgPT4gZWxlbWVudCA9PSBjYXRlZ29yeVt0aGlzLmNhdGVnb3J5SWRLZXldKTtcclxuICAgICAgdGhpcy5zZWxlY3RlZElkcy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgICBjb25zdCByY0VsZW1lbnQgPSB0aGlzLmFsbENhdGVnb3JpZXMuZmluZEluZGV4KChlbGU6IGFueSkgPT4gZWxlLmNhdGVnb3J5X2lkID09IGNhdGVnb3J5W3RoaXMuY2F0ZWdvcnlJZEtleV0pO1xyXG4gICAgICAgIGlmIChyY0VsZW1lbnQgIT09IC0xKSB7XHJcbiAgICAgICAgICBjb25zdCBwYXJlbnRSYzogYW55ID0gdGhpcy5hbGxDYXRlZ29yaWVzW3JjRWxlbWVudF07XHJcbiAgICAgICAgICBpZiAocGFyZW50UmM/LmNoaWxkX2NhdF9pZHM/Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgcGFyZW50UmMuY2hpbGRfY2F0X2lkcy5mb3JFYWNoKChjaGlsZEVsZW1lbnQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgIGNvbnN0IHJlbW92ZUluZGV4ID0gdGhpcy5zZWxlY3RlZElkcy5maW5kSW5kZXgoKHJlbW92ZUVsZW1lbnQ6IGFueSkgPT4gcmVtb3ZlRWxlbWVudCA9PSBjaGlsZEVsZW1lbnQpO1xyXG4gICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJZHMuc3BsaWNlKHJlbW92ZUluZGV4LCAxKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5zZXRMaXN0KCk7XHJcblxyXG4gIH1cclxuXHJcbiAgZGVsZXRlRXZlbnQoZXZlbnQ6IGFueSkge1xyXG4gICAgY29uc3QgaW5kZXggPSB0aGlzLnNlbGVjdGVkSWRzLmZpbmRJbmRleCgoZWxlbWVudDogYW55KSA9PiBlbGVtZW50ID09IGV2ZW50W3RoaXMuY2F0ZWdvcnlJZEtleV0pO1xyXG4gICAgdGhpcy5zZWxlY3RlZElkcy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgdGhpcy5zZXRMaXN0KCk7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RBbGwobW9kZTogYW55LCBhY3RpdmVUYWI6ICBcInN0YW5kYXJkc1wiIHwgXCJyZWd1bGF0aW9uc1wiIHwgXCJpbnRlcm5hbENvbnRyb2xzXCIgfCBcIm90aGVyc1wiKSB7XHJcblxyXG4gICAgaWYgKG1vZGUpIHtcclxuICAgICAgICBjb25zdCBsaXN0ID0gWy4uLnRoaXMuY2F0ZWdvcnlMaXN0W2FjdGl2ZVRhYl0ubGlzdF07XHJcbiAgICAgICAgbGlzdC5mb3JFYWNoKGVsZW1lbnQgPT4ge1xyXG4gICAgICAgICAgaWYgKCF0aGlzLnNlbGVjdGVkSWRzLmluY2x1ZGVzKGVsZW1lbnRbdGhpcy5jYXRlZ29yeUlkS2V5XSkpIHtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZElkcy5wdXNoKGVsZW1lbnRbdGhpcy5jYXRlZ29yeUlkS2V5XSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7ICAgIFxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3QgbGlzdCA9IFsuLi50aGlzLmNhdGVnb3J5TGlzdFthY3RpdmVUYWJdLmxpc3RdO1xyXG4gICAgICBsaXN0LmZvckVhY2goZWxlbWVudCA9PiB7XHJcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRJZHMuaW5jbHVkZXMoZWxlbWVudFt0aGlzLmNhdGVnb3J5SWRLZXldKSkge1xyXG4gICAgICAgICAgbGV0IGlkSW5kZXggPSB0aGlzLnNlbGVjdGVkSWRzLmZpbmRJbmRleCgoaWQ6IGFueSkgPT4gaWQgPT0gZWxlbWVudFt0aGlzLmNhdGVnb3J5SWRLZXldKTtcclxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJZHMuc3BsaWNlKGlkSW5kZXgsIDEpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnNldExpc3QoKTtcclxuICB9XHJcblxyXG4gIHNldExpc3QoKSB7XHJcbiAgICBjb25zdCBkYXRhOiBhbnkgPSBbXTtcclxuICAgIGNvbnN0IGNhdGVnb3J5TGlzdCA9IFsuLi5uZXcgU2V0KHRoaXMuYWxsQ2F0ZWdvcmllcyldIFxyXG4gICAgLy8gY2xvbmVEZWVwKHRoaXMuYWxsQ2F0ZWdvcmllcylcclxuICAgIGNvbnN0IHNlbGVjdGVkSWRzID1bLi4ubmV3IFNldCh0aGlzLnNlbGVjdGVkSWRzKV0gXHJcbiAgICAvLyAgY2xvbmVEZWVwKHRoaXMuc2VsZWN0ZWRJZHMpO1xyXG4gICAgdGhpcy5jYXRlZ29yeUxpc3QucmVndWxhdGlvbnMuc2VsZWN0ZWRMaXN0ID0gW107XHJcbiAgICB0aGlzLmNhdGVnb3J5TGlzdC5zdGFuZGFyZHMuc2VsZWN0ZWRMaXN0ID0gW107XHJcbiAgICB0aGlzLmNhdGVnb3J5TGlzdC5pbnRlcm5hbENvbnRyb2xzLnNlbGVjdGVkTGlzdCA9IFtdO1xyXG4gICAgdGhpcy5jYXRlZ29yeUxpc3Qub3RoZXJzLnNlbGVjdGVkTGlzdCA9IFtdO1xyXG5cclxuICAgIGNhdGVnb3J5TGlzdC5mb3JFYWNoKChlbGVtZW50OiBhbnkpID0+IHtcclxuICAgICAgaWYgKHNlbGVjdGVkSWRzLmluY2x1ZGVzKGVsZW1lbnRbdGhpcy5jYXRlZ29yeUlkS2V5XSkpIHtcclxuICAgICAgICBkYXRhLnB1c2goZWxlbWVudCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgdGhpcy5zZWxlY3RlZENhdGVnb3JpZXMgPSBkYXRhO1xyXG4gICAgdGhpcy5mb290ZXJEZXRhaWxzLnNlbGVjdGVkRGF0YSA9IGRhdGE7XHJcblxyXG4gICAgdGhpcy5jYXRlZ29yeUxpc3QucmVndWxhdGlvbnMubGlzdC5mb3JFYWNoKChjYXRlZ29yeTogYW55KSA9PiB7XHJcbiAgICAgIGlmIChzZWxlY3RlZElkcy5pbmNsdWRlcyhjYXRlZ29yeVt0aGlzLmNhdGVnb3J5SWRLZXldKSkge1xyXG4gICAgICAgIHRoaXMuY2F0ZWdvcnlMaXN0LnJlZ3VsYXRpb25zLnNlbGVjdGVkTGlzdC5wdXNoKGNhdGVnb3J5KVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHRoaXMuY2F0ZWdvcnlMaXN0LnN0YW5kYXJkcy5saXN0LmZvckVhY2goKGNhdGVnb3J5OiBhbnkpID0+IHtcclxuICAgICAgaWYgKHNlbGVjdGVkSWRzLmluY2x1ZGVzKGNhdGVnb3J5W3RoaXMuY2F0ZWdvcnlJZEtleV0pKSB7XHJcbiAgICAgICAgdGhpcy5jYXRlZ29yeUxpc3Quc3RhbmRhcmRzLnNlbGVjdGVkTGlzdC5wdXNoKGNhdGVnb3J5KVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHRoaXMuY2F0ZWdvcnlMaXN0LmludGVybmFsQ29udHJvbHMubGlzdC5mb3JFYWNoKChjYXRlZ29yeTogYW55KSA9PiB7XHJcbiAgICAgIGlmIChzZWxlY3RlZElkcy5pbmNsdWRlcyhjYXRlZ29yeVt0aGlzLmNhdGVnb3J5SWRLZXldKSkge1xyXG4gICAgICAgIHRoaXMuY2F0ZWdvcnlMaXN0LmludGVybmFsQ29udHJvbHMuc2VsZWN0ZWRMaXN0LnB1c2goY2F0ZWdvcnkpXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgdGhpcy5jYXRlZ29yeUxpc3Qub3RoZXJzLmxpc3QuZm9yRWFjaCgoY2F0ZWdvcnk6IGFueSkgPT4ge1xyXG4gICAgICBpZiAoc2VsZWN0ZWRJZHMuaW5jbHVkZXMoY2F0ZWdvcnlbdGhpcy5jYXRlZ29yeUlkS2V5XSkpIHtcclxuICAgICAgICB0aGlzLmNhdGVnb3J5TGlzdC5vdGhlcnMuc2VsZWN0ZWRMaXN0LnB1c2goY2F0ZWdvcnkpXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgaWYgKCF0aGlzLmFjdGl2ZVRhYikge1xyXG4gICAgICB0aGlzLnNldEFjdGl2ZVRhYigpO1xyXG4gICAgfVxyXG4gIH1cclxuICBzZXRBY3RpdmVUYWIoKSB7XHJcbiAgICBpZiAodGhpcy5jYXRlZ29yeUxpc3QucmVndWxhdGlvbnMuc2VsZWN0ZWRMaXN0Lmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy5hY3RpdmVUYWIgPSAncmVndWxhdGlvbnMnXHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuY2F0ZWdvcnlMaXN0LnN0YW5kYXJkcy5zZWxlY3RlZExpc3QubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLmFjdGl2ZVRhYiA9ICdzdGFuZGFyZHMnXHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuY2F0ZWdvcnlMaXN0LmludGVybmFsQ29udHJvbHMuc2VsZWN0ZWRMaXN0Lmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy5hY3RpdmVUYWIgPSAnaW50ZXJuYWxDb250cm9scydcclxuICAgIH0gZWxzZSBpZiAodGhpcy5jYXRlZ29yeUxpc3Qub3RoZXJzLnNlbGVjdGVkTGlzdC5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMuYWN0aXZlVGFiID0gJ290aGVycydcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuYWN0aXZlVGFiID0gJ3JlZ3VsYXRpb25zJ1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4gIGNoZWNrU2VsZWN0QWxsKGFjdGl2ZVRhYjogIFwic3RhbmRhcmRzXCIgfCBcInJlZ3VsYXRpb25zXCIgfCBcImludGVybmFsQ29udHJvbHNcIiB8IFwib3RoZXJzXCIpIHtcclxuICAgIGNvbnN0IGRhdGEgPSB0aGlzLmNhdGVnb3J5TGlzdFthY3RpdmVUYWJdLmxpc3QuZXZlcnkoKHVzZXI6IGFueSkgPT4gdGhpcy5zZWxlY3RlZElkcy5pbmNsdWRlcyh1c2VyW3RoaXMuY2F0ZWdvcnlJZEtleV0pKTtcclxuICAgIHJldHVybiBkYXRhO1xyXG4gIH1cclxuXHJcbiAgc2F2ZSgpIHtcclxuICAgIHRoaXMuc2F2ZVNlbGVjdGVkQ2F0ZWdvcnkuZW1pdCh0aGlzLnNlbGVjdGVkQ2F0ZWdvcmllcyk7XHJcbiAgfVxyXG5cclxuICBjbG9zZSgpIHtcclxuICAgIHRoaXMuY2xvc2VDYXRlZ29yaWVzTGlzdC5lbWl0KCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
199
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcmllcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jcmVhdGUtZGFzaGJvYXJkL3NyYy9saWIvY3JlYXRlLWRhc2hib2FyZC1jb250YWluZXIvY2F0ZWdvcmllcy9jYXRlZ29yaWVzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBUy9FLE1BQU0sT0FBTyxtQkFBbUI7SUFnRDlCO1FBN0NTLGlCQUFZLEdBQXFCO1lBQ3hDLFdBQVcsRUFBRTtnQkFDWCxJQUFJLEVBQUUsRUFBRTtnQkFDUixZQUFZLEVBQUUsRUFBRTthQUNqQjtZQUNILFNBQVMsRUFBRTtnQkFDUCxJQUFJLEVBQUUsRUFBRTtnQkFDUixZQUFZLEVBQUUsRUFBRTthQUNqQjtZQUNILGdCQUFnQixFQUFFO2dCQUNkLElBQUksRUFBRSxFQUFFO2dCQUNSLFlBQVksRUFBRSxFQUFFO2FBQ2pCO1lBQ0gsTUFBTSxFQUFFO2dCQUNKLElBQUksRUFBRSxFQUFFO2dCQUNSLFlBQVksRUFBRSxFQUFFO2FBQ2pCO1NBQ0YsQ0FBQztRQUNPLGtCQUFhLEdBQVUsRUFBRSxDQUFDO1FBRzFCLHVCQUFrQixHQUFVLEVBQUUsQ0FBQztRQUV4QyxXQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ1osY0FBUyxHQUE4RCxhQUFhLENBQUM7UUFDckYsZ0JBQVcsR0FBVSxFQUFFLENBQUM7UUFDeEIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUVsQixrQkFBYSxHQUEwQjtZQUNyQyxZQUFZLEVBQUUsRUFBRTtZQUNoQixnQkFBZ0IsRUFBQyxFQUFFO1lBQ25CLGlCQUFpQixFQUFFLFdBQVc7WUFDOUIsU0FBUyxFQUFFLFNBQVM7WUFDcEIsWUFBWSxFQUFFLGtDQUFrQztZQUNoRCxVQUFVLEVBQUUs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MUI7YUFBTTtZQUNMLElBQUksQ0FBQyxTQUFTLEdBQUcsYUFBYSxDQUFBO1NBQy9CO0lBQ0gsQ0FBQztJQUdELGNBQWMsQ0FBQyxTQUF1RTtRQUNwRixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3pILE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELElBQUk7UUFDRixJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2xDLENBQUM7OztZQXZNRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGdCQUFnQjtnQkFDMUIsa2hMQUEwQzs7YUFFM0M7Ozs7MkJBSUUsS0FBSzs0QkFrQkwsS0FBSzs0QkFFTCxLQUFLO2lDQUNMLEtBQUs7bUNBb0JMLE1BQU07d0JBQ04sTUFBTTtrQ0FDTixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEYXNoYm9hcmRGb290ZXJDb25maWcgfSBmcm9tICcuLi8uLi91aS1raXQvZGFzaGJvYXJkLWZvb3Rlci9kYXNoYm9hcmQtZm9vdGVyLWNvbmZpZyc7XHJcbmltcG9ydCB7IENhdGVnb3JpZXNDb25maWcgfSBmcm9tICcuL2NhdGVnb3JpZXMtY29uZmlnJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWNhdGVnb3JpZXMnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jYXRlZ29yaWVzLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jYXRlZ29yaWVzLmNvbXBvbmVudC5sZXNzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIENhdGVnb3JpZXNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuXHJcbiAgQElucHV0KCkgY2F0ZWdvcnlMaXN0OiBDYXRlZ29yaWVzQ29uZmlnID0ge1xyXG4gICAgcmVndWxhdGlvbnM6IHtcclxuICAgICAgbGlzdDogW10sXHJcbiAgICAgIHNlbGVjdGVkTGlzdDogW11cclxuICAgIH0sXHJcbiAgc3RhbmRhcmRzOiB7XHJcbiAgICAgIGxpc3Q6IFtdLFxyXG4gICAgICBzZWxlY3RlZExpc3Q6IFtdXHJcbiAgICB9LFxyXG4gIGludGVybmFsQ29udHJvbHM6IHtcclxuICAgICAgbGlzdDogW10sXHJcbiAgICAgIHNlbGVjdGVkTGlzdDogW11cclxuICAgIH0sXHJcbiAgb3RoZXJzOiB7XHJcbiAgICAgIGxpc3Q6IFtdLFxyXG4gICAgICBzZWxlY3RlZExpc3Q6IFtdXHJcbiAgICB9XHJcbiAgfTtcclxuICBASW5wdXQoKSBhbGxDYXRlZ29yaWVzOiBhbnlbXSA9IFtdO1xyXG5cclxuICBASW5wdXQoKSBjYXRlZ29yeUlkS2V5OiBhbnk7XHJcbiAgQElucHV0KCkgc2VsZWN0ZWRDYXRlZ29yaWVzOiBhbnlbXSA9IFtdO1xyXG5cclxuICBzZWFyY2ggPSAnJztcclxuICBhY3RpdmVUYWI6IFwic3RhbmRhcmRzXCIgfCBcInJlZ3VsYXRpb25zXCIgfCBcImludGVybmFsQ29udHJvbHNcIiB8IFwib3RoZXJzXCI9XCJyZWd1bGF0aW9uc1wiO1xyXG4gIHNlbGVjdGVkSWRzOiBhbnlbXSA9IFtdO1xyXG4gIGFuaW1hdGlvbiA9IGZhbHNlO1xyXG4gIGJsb2NrV2lkdGg6IGFueTtcclxuICBmb290ZXJEZXRhaWxzOiBEYXNoYm9hcmRGb290ZXJDb25maWcgPSB7XHJcbiAgICBzZWxlY3RlZERhdGE6IFtdLFxyXG4gICAgbm9uUmVtb3ZhYmxlTGlzdDpbXSxcclxuICAgIGRpc3BsYXlFbGVtZW50S2V5OiAnaXRlbV9uYW1lJyxcclxuICAgIGVsZW1lbnRJZDogJ2l0ZW1faWQnLFxyXG4gICAgc2luZ3VsYXJUZXh0OiAnUmVzcG9uc2liaWxpdHkgQ2F0ZWdvcnkgc2VsZWN0ZWQnLFxyXG4gICAgcGx1cmFsVGV4dDogJ1Jlc3BvbnNpYmlsaXR5IENhdGVnb3JpZXMgc2VsZWN0ZWQnLFxyXG4gICAgc2hvd0ZyZXF1ZW5jeTogZmFsc2UsXHJcbiAgICBmcmVxdWVuY3lUZXh0OiAnJyxcclxuICAgIGlzRGlzYWJsZWQ6IGZhbHNlXHJcblxyXG4gIH07XHJcblxyXG4gIEBPdXRwdXQoKSBzYXZlU2VsZWN0ZWRDYXRlZ29yeSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgY2xvc2VMaXN0ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBjbG9zZUNhdGVnb3JpZXNMaXN0ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuYW5pbWF0aW9uID0gdHJ1ZTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLmFuaW1hdGlvbiA9IGZhbHNlO1xyXG4gICAgfSwgMzAwKTtcclxuICAgIHRoaXMuc2VsZWN0ZWRJZHMgPSBbXTtcclxuICAgIGlmICh0aGlzLnNlbGVjdGVkQ2F0ZWdvcmllcykge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkQ2F0ZWdvcmllcy5mb3JFYWNoKGVsZW1lbnQgPT4ge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJZHMucHVzaChlbGVtZW50W3RoaXMuY2F0ZWdvcnlJZEtleV0pO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIHRoaXMuc2V0TGlzdCgpXHJcblxyXG5cclxuICB9XHJcblxyXG4gIHNlbGVjdENhdGVnb3J5KG1vZGU6IGFueSwgYWN0aXZlVGFiOiBhbnksIGNhdGVnb3J5OiBhbnkpIHtcclxuICAgIGlmIChtb2RlKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRJZHMucHVzaChjYXRlZ29yeVt0aGlzLmNhdGVnb3J5SWRLZXldKTtcclxuICAgICAgY29uc3QgcmNFbGVtZW50ID0gdGhpcy5hbGxDYXRlZ29yaWVzLmZpbmRJbmRleCgoZWxlOiBhbnkpID0+IGVsZS5jYXRlZ29yeV9pZCA9PSBjYXRlZ29yeVt0aGlzLmNhdGVnb3J5SWRLZXldKTtcclxuICAgICAgaWYgKHJjRWxlbWVudCAhPT0gLTEpIHtcclxuICAgICAgICBjb25zdCBwYXJlbnRSYzogYW55ID0gdGhpcy5hbGxDYXRlZ29yaWVzW3JjRWxlbWVudF07XHJcbiAgICAgICAgaWYgKHBhcmVudFJjPy5jaGlsZF9jYXRfaWRzPy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICBwYXJlbnRSYy5jaGlsZF9jYXRfaWRzLmZvckVhY2goKGNoaWxkRWxlbWVudDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIGlmKCF0aGlzLnNlbGVjdGVkSWRzLmluY2x1ZGVzKGNoaWxkRWxlbWVudCkpe1xyXG4gICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJZHMucHVzaChjaGlsZEVsZW1lbnQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5zZWxlY3RlZElkcy5maW5kSW5kZXgoKGVsZW1lbnQ6IGFueSkgPT4gZWxlbWVudCA9PSBjYXRlZ29yeVt0aGlzLmNhdGVnb3J5SWRLZXldKTtcclxuICAgICAgdGhpcy5zZWxlY3RlZElkcy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgICBjb25zdCByY0VsZW1lbnQgPSB0aGlzLmFsbENhdGVnb3JpZXMuZmluZEluZGV4KChlbGU6IGFueSkgPT4gZWxlLmNhdGVnb3J5X2lkID09IGNhdGVnb3J5W3RoaXMuY2F0ZWdvcnlJZEtleV0pO1xyXG4gICAgICAgIGlmIChyY0VsZW1lbnQgIT09IC0xKSB7XHJcbiAgICAgICAgICBjb25zdCBwYXJlbnRSYzogYW55ID0gdGhpcy5hbGxDYXRlZ29yaWVzW3JjRWxlbWVudF07XHJcbiAgICAgICAgICBpZiAocGFyZW50UmM/LmNoaWxkX2NhdF9pZHM/Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgcGFyZW50UmMuY2hpbGRfY2F0X2lkcy5mb3JFYWNoKChjaGlsZEVsZW1lbnQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgIGNvbnN0IHJlbW92ZUluZGV4ID0gdGhpcy5zZWxlY3RlZElkcy5maW5kSW5kZXgoKHJlbW92ZUVsZW1lbnQ6IGFueSkgPT4gcmVtb3ZlRWxlbWVudCA9PSBjaGlsZEVsZW1lbnQpO1xyXG4gICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJZHMuc3BsaWNlKHJlbW92ZUluZGV4LCAxKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5zZXRMaXN0KCk7XHJcblxyXG4gIH1cclxuXHJcbiAgZGVsZXRlRXZlbnQoZXZlbnQ6IGFueSkge1xyXG4gICAgY29uc3QgaW5kZXggPSB0aGlzLnNlbGVjdGVkSWRzLmZpbmRJbmRleCgoZWxlbWVudDogYW55KSA9PiBlbGVtZW50ID09IGV2ZW50W3RoaXMuY2F0ZWdvcnlJZEtleV0pO1xyXG4gICAgdGhpcy5zZWxlY3RlZElkcy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgdGhpcy5zZXRMaXN0KCk7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RBbGwobW9kZTogYW55LCBhY3RpdmVUYWI6ICBcInN0YW5kYXJkc1wiIHwgXCJyZWd1bGF0aW9uc1wiIHwgXCJpbnRlcm5hbENvbnRyb2xzXCIgfCBcIm90aGVyc1wiKSB7XHJcblxyXG4gICAgaWYgKG1vZGUpIHtcclxuICAgICAgICBjb25zdCBsaXN0ID0gWy4uLnRoaXMuY2F0ZWdvcnlMaXN0W2FjdGl2ZVRhYl0ubGlzdF07XHJcbiAgICAgICAgbGlzdC5mb3JFYWNoKGVsZW1lbnQgPT4ge1xyXG4gICAgICAgICAgaWYgKCF0aGlzLnNlbGVjdGVkSWRzLmluY2x1ZGVzKGVsZW1lbnRbdGhpcy5jYXRlZ29yeUlkS2V5XSkpIHtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZElkcy5wdXNoKGVsZW1lbnRbdGhpcy5jYXRlZ29yeUlkS2V5XSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7ICAgIFxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3QgbGlzdCA9IFsuLi50aGlzLmNhdGVnb3J5TGlzdFthY3RpdmVUYWJdLmxpc3RdO1xyXG4gICAgICBsaXN0LmZvckVhY2goZWxlbWVudCA9PiB7XHJcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRJZHMuaW5jbHVkZXMoZWxlbWVudFt0aGlzLmNhdGVnb3J5SWRLZXldKSkge1xyXG4gICAgICAgICAgbGV0IGlkSW5kZXggPSB0aGlzLnNlbGVjdGVkSWRzLmZpbmRJbmRleCgoaWQ6IGFueSkgPT4gaWQgPT0gZWxlbWVudFt0aGlzLmNhdGVnb3J5SWRLZXldKTtcclxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJZHMuc3BsaWNlKGlkSW5kZXgsIDEpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnNldExpc3QoKTtcclxuICB9XHJcblxyXG4gIHNldExpc3QoKSB7XHJcbiAgICBjb25zdCBkYXRhOiBhbnkgPSBbXTtcclxuICAgIGNvbnN0IGNhdGVnb3J5TGlzdCA9IFsuLi5uZXcgU2V0KHRoaXMuYWxsQ2F0ZWdvcmllcyldIFxyXG4gICAgLy8gY2xvbmVEZWVwKHRoaXMuYWxsQ2F0ZWdvcmllcylcclxuICAgIGNvbnN0IHNlbGVjdGVkSWRzID1bLi4ubmV3IFNldCh0aGlzLnNlbGVjdGVkSWRzKV0gXHJcbiAgICAvLyAgY2xvbmVEZWVwKHRoaXMuc2VsZWN0ZWRJZHMpO1xyXG4gICAgdGhpcy5jYXRlZ29yeUxpc3QucmVndWxhdGlvbnMuc2VsZWN0ZWRMaXN0ID0gW107XHJcbiAgICB0aGlzLmNhdGVnb3J5TGlzdC5zdGFuZGFyZHMuc2VsZWN0ZWRMaXN0ID0gW107XHJcbiAgICB0aGlzLmNhdGVnb3J5TGlzdC5pbnRlcm5hbENvbnRyb2xzLnNlbGVjdGVkTGlzdCA9IFtdO1xyXG4gICAgdGhpcy5jYXRlZ29yeUxpc3Qub3RoZXJzLnNlbGVjdGVkTGlzdCA9IFtdO1xyXG5cclxuICAgIGNhdGVnb3J5TGlzdC5mb3JFYWNoKChlbGVtZW50OiBhbnkpID0+IHtcclxuICAgICAgaWYgKHNlbGVjdGVkSWRzLmluY2x1ZGVzKGVsZW1lbnRbdGhpcy5jYXRlZ29yeUlkS2V5XSkpIHtcclxuICAgICAgICBkYXRhLnB1c2goZWxlbWVudCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgdGhpcy5zZWxlY3RlZENhdGVnb3JpZXMgPSBkYXRhO1xyXG4gICAgdGhpcy5mb290ZXJEZXRhaWxzLnNlbGVjdGVkRGF0YSA9IGRhdGE7XHJcblxyXG4gICAgdGhpcy5jYXRlZ29yeUxpc3QucmVndWxhdGlvbnMubGlzdC5mb3JFYWNoKChjYXRlZ29yeTogYW55KSA9PiB7XHJcbiAgICAgIGlmIChzZWxlY3RlZElkcy5pbmNsdWRlcyhjYXRlZ29yeVt0aGlzLmNhdGVnb3J5SWRLZXldKSkge1xyXG4gICAgICAgIHRoaXMuY2F0ZWdvcnlMaXN0LnJlZ3VsYXRpb25zLnNlbGVjdGVkTGlzdC5wdXNoKGNhdGVnb3J5KVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHRoaXMuY2F0ZWdvcnlMaXN0LnN0YW5kYXJkcy5saXN0LmZvckVhY2goKGNhdGVnb3J5OiBhbnkpID0+IHtcclxuICAgICAgaWYgKHNlbGVjdGVkSWRzLmluY2x1ZGVzKGNhdGVnb3J5W3RoaXMuY2F0ZWdvcnlJZEtleV0pKSB7XHJcbiAgICAgICAgdGhpcy5jYXRlZ29yeUxpc3Quc3RhbmRhcmRzLnNlbGVjdGVkTGlzdC5wdXNoKGNhdGVnb3J5KVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHRoaXMuY2F0ZWdvcnlMaXN0LmludGVybmFsQ29udHJvbHMubGlzdC5mb3JFYWNoKChjYXRlZ29yeTogYW55KSA9PiB7XHJcbiAgICAgIGlmIChzZWxlY3RlZElkcy5pbmNsdWRlcyhjYXRlZ29yeVt0aGlzLmNhdGVnb3J5SWRLZXldKSkge1xyXG4gICAgICAgIHRoaXMuY2F0ZWdvcnlMaXN0LmludGVybmFsQ29udHJvbHMuc2VsZWN0ZWRMaXN0LnB1c2goY2F0ZWdvcnkpXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgdGhpcy5jYXRlZ29yeUxpc3Qub3RoZXJzLmxpc3QuZm9yRWFjaCgoY2F0ZWdvcnk6IGFueSkgPT4ge1xyXG4gICAgICBpZiAoc2VsZWN0ZWRJZHMuaW5jbHVkZXMoY2F0ZWdvcnlbdGhpcy5jYXRlZ29yeUlkS2V5XSkpIHtcclxuICAgICAgICB0aGlzLmNhdGVnb3J5TGlzdC5vdGhlcnMuc2VsZWN0ZWRMaXN0LnB1c2goY2F0ZWdvcnkpXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgaWYgKCF0aGlzLmFjdGl2ZVRhYikge1xyXG4gICAgICB0aGlzLnNldEFjdGl2ZVRhYigpO1xyXG4gICAgfVxyXG4gIH1cclxuICBzZXRBY3RpdmVUYWIoKSB7XHJcbiAgICBpZiAodGhpcy5jYXRlZ29yeUxpc3QucmVndWxhdGlvbnMuc2VsZWN0ZWRMaXN0Lmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy5hY3RpdmVUYWIgPSAncmVndWxhdGlvbnMnXHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuY2F0ZWdvcnlMaXN0LnN0YW5kYXJkcy5zZWxlY3RlZExpc3QubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLmFjdGl2ZVRhYiA9ICdzdGFuZGFyZHMnXHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuY2F0ZWdvcnlMaXN0LmludGVybmFsQ29udHJvbHMuc2VsZWN0ZWRMaXN0Lmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy5hY3RpdmVUYWIgPSAnaW50ZXJuYWxDb250cm9scydcclxuICAgIH0gZWxzZSBpZiAodGhpcy5jYXRlZ29yeUxpc3Qub3RoZXJzLnNlbGVjdGVkTGlzdC5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMuYWN0aXZlVGFiID0gJ290aGVycydcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuYWN0aXZlVGFiID0gJ3JlZ3VsYXRpb25zJ1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4gIGNoZWNrU2VsZWN0QWxsKGFjdGl2ZVRhYjogIFwic3RhbmRhcmRzXCIgfCBcInJlZ3VsYXRpb25zXCIgfCBcImludGVybmFsQ29udHJvbHNcIiB8IFwib3RoZXJzXCIpIHtcclxuICAgIGNvbnN0IGRhdGEgPSB0aGlzLmNhdGVnb3J5TGlzdFthY3RpdmVUYWJdLmxpc3QuZXZlcnkoKHVzZXI6IGFueSkgPT4gdGhpcy5zZWxlY3RlZElkcy5pbmNsdWRlcyh1c2VyW3RoaXMuY2F0ZWdvcnlJZEtleV0pKTtcclxuICAgIHJldHVybiBkYXRhO1xyXG4gIH1cclxuXHJcbiAgc2F2ZSgpIHtcclxuICAgIHRoaXMuc2F2ZVNlbGVjdGVkQ2F0ZWdvcnkuZW1pdCh0aGlzLnNlbGVjdGVkQ2F0ZWdvcmllcyk7XHJcbiAgfVxyXG5cclxuICBjbG9zZSgpIHtcclxuICAgIHRoaXMuY2xvc2VDYXRlZ29yaWVzTGlzdC5lbWl0KCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -63,7 +63,7 @@ export function View_CategoriesComponent_0(_l) { return i1.ɵvid(0, [i1.ɵpid(0,
63
63
  } return ad; }, null, null)), (_l()(), i1.ɵeld(24, 0, null, null, 4, "div", [["class", "left"]], null, null, null, null, null)), (_l()(), i1.ɵeld(25, 0, null, null, 1, "label", [], null, null, null, null, null)), (_l()(), i1.ɵted(-1, null, ["INTERNAL CONTROLS"])), (_l()(), i1.ɵand(16777216, null, null, 1, null, View_CategoriesComponent_3)), i1.ɵdid(28, 16384, null, 0, i5.NgIf, [i1.ViewContainerRef, i1.TemplateRef], { ngIf: [0, "ngIf"] }, null), (_l()(), i1.ɵeld(29, 0, null, null, 1, "span", [["class", "counter"]], null, null, null, null, null)), (_l()(), i1.ɵted(30, null, ["", ""])), (_l()(), i1.ɵeld(31, 0, null, null, 7, "div", [["class", "category-list-card"]], [[2, "active", null]], [[null, "click"]], function (_v, en, $event) { var ad = true; var _co = _v.component; if (("click" === en)) {
64
64
  var pd_0 = ((_co.activeTab = "others") !== false);
65
65
  ad = (pd_0 && ad);
66
- } return ad; }, null, null)), (_l()(), i1.ɵeld(32, 0, null, null, 4, "div", [["class", "left"]], null, null, null, null, null)), (_l()(), i1.ɵeld(33, 0, null, null, 1, "label", [], null, null, null, null, null)), (_l()(), i1.ɵted(-1, null, ["OTHERS"])), (_l()(), i1.ɵand(16777216, null, null, 1, null, View_CategoriesComponent_4)), i1.ɵdid(36, 16384, null, 0, i5.NgIf, [i1.ViewContainerRef, i1.TemplateRef], { ngIf: [0, "ngIf"] }, null), (_l()(), i1.ɵeld(37, 0, null, null, 1, "span", [["class", "counter"]], null, null, null, null, null)), (_l()(), i1.ɵted(38, null, ["", ""])), (_l()(), i1.ɵeld(39, 0, null, null, 8, "div", [["class", "search"]], null, null, null, null, null)), (_l()(), i1.ɵeld(40, 0, null, null, 1, "i", [["class", "icons vx-fs-3"]], null, null, null, null, null)), (_l()(), i1.ɵted(-1, null, ["\uE90B"])), (_l()(), i1.ɵeld(42, 0, null, null, 5, "input", [["placeholder", "Search Responsibility Category"], ["type", "text"]], [[2, "ng-untouched", null], [2, "ng-touched", null], [2, "ng-pristine", null], [2, "ng-dirty", null], [2, "ng-valid", null], [2, "ng-invalid", null], [2, "ng-pending", null]], [[null, "ngModelChange"], [null, "input"], [null, "blur"], [null, "compositionstart"], [null, "compositionend"]], function (_v, en, $event) { var ad = true; var _co = _v.component; if (("input" === en)) {
66
+ } return ad; }, null, null)), (_l()(), i1.ɵeld(32, 0, null, null, 4, "div", [["class", "left"]], null, null, null, null, null)), (_l()(), i1.ɵeld(33, 0, null, null, 1, "label", [], null, null, null, null, null)), (_l()(), i1.ɵted(-1, null, ["OTHERS"])), (_l()(), i1.ɵand(16777216, null, null, 1, null, View_CategoriesComponent_4)), i1.ɵdid(36, 16384, null, 0, i5.NgIf, [i1.ViewContainerRef, i1.TemplateRef], { ngIf: [0, "ngIf"] }, null), (_l()(), i1.ɵeld(37, 0, null, null, 1, "span", [["class", "counter"]], null, null, null, null, null)), (_l()(), i1.ɵted(38, null, ["", ""])), (_l()(), i1.ɵeld(39, 0, null, null, 8, "div", [["class", "search"]], null, null, null, null, null)), (_l()(), i1.ɵeld(40, 0, null, null, 1, "i", [["class", "icons vx-fs-3"]], null, null, null, null, null)), (_l()(), i1.ɵted(-1, null, ["\uE90B"])), (_l()(), i1.ɵeld(42, 0, null, null, 5, "input", [["placeholder", "Search Program"], ["type", "text"]], [[2, "ng-untouched", null], [2, "ng-touched", null], [2, "ng-pristine", null], [2, "ng-dirty", null], [2, "ng-valid", null], [2, "ng-invalid", null], [2, "ng-pending", null]], [[null, "ngModelChange"], [null, "input"], [null, "blur"], [null, "compositionstart"], [null, "compositionend"]], function (_v, en, $event) { var ad = true; var _co = _v.component; if (("input" === en)) {
67
67
  var pd_0 = (i1.ɵnov(_v, 43)._handleInput($event.target.value) !== false);
68
68
  ad = (pd_0 && ad);
69
69
  } if (("blur" === en)) {
@@ -91,4 +91,4 @@ export function View_CategoriesComponent_0(_l) { return i1.ɵvid(0, [i1.ɵpid(0,
91
91
  export function View_CategoriesComponent_Host_0(_l) { return i1.ɵvid(0, [(_l()(), i1.ɵeld(0, 0, null, null, 1, "app-categories", [], null, null, null, View_CategoriesComponent_0, RenderType_CategoriesComponent)), i1.ɵdid(1, 114688, null, 0, i12.CategoriesComponent, [], null, null)], function (_ck, _v) { _ck(_v, 1, 0); }, null); }
92
92
  var CategoriesComponentNgFactory = i1.ɵccf("app-categories", i12.CategoriesComponent, View_CategoriesComponent_Host_0, { categoryList: "categoryList", allCategories: "allCategories", categoryIdKey: "categoryIdKey", selectedCategories: "selectedCategories" }, { saveSelectedCategory: "saveSelectedCategory", closeList: "closeList", closeCategoriesList: "closeCategoriesList" }, []);
93
93
  export { CategoriesComponentNgFactory as CategoriesComponentNgFactory };
94
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcmllcy5jb21wb25lbnQubmdmYWN0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3JlYXRlLWRhc2hib2FyZC9zcmMvbGliL2NyZWF0ZS1kYXNoYm9hcmQtY29udGFpbmVyL2NhdGVnb3JpZXMvY2F0ZWdvcmllcy5jb21wb25lbnQubmdmYWN0b3J5LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3JlYXRlLWRhc2hib2FyZC9zcmMvbGliL2NyZWF0ZS1kYXNoYm9hcmQtY29udGFpbmVyL2NhdGVnb3JpZXMvY2F0ZWdvcmllcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzhEQ29Ca0IsMEVBR0ksS0FINEQsa21CQUdoRTs4REFPQSwwRUFHSSxLQUgwRCxzbEJBRzlEOzhEQVFBLDBFQUdJLEtBSGlFLGdvQkFHckU7OERBT0EsMEVBR0ksS0FIdUQsb2tCQUczRDs4REFZVixtR0FJTSxLQUhGLG9KQUVvQixZQUZtQzs7d0JBQTZDO01BQXBHLHVNQUVvQixNQURoQiw0RUFBOEUsS0FBdEUsZ0NBQTZELG1EQUR4RCxzQ0FBcUMsYUFBdEQsWUFFb0IsRUFGSCxTQUFxQyxtREFDMUMsNEdBQTZEOzhEQVN6RDs7Ozs7Ozs7Ozs7Ozs7O3lMQUVLLElBRm1ILGtDQUV4SCwyQkFGaUUsa0JBQW9CLG9CQUFDLDZCQUF1QixFQUE3RyxZQUVLLEVBRjRELFNBQW9CLEVBQUMsU0FBdUIsMkJBQVcsNkRBRXhIOzhEQU5aLCtGQVNLLEtBUkQsb0pBT2tCLFlBTmxCOzt3QkFBMkQ7TUFEM0QsdU1BT2tCLE1BTGQsK0ZBSUssS0FIRCxpTkFFSyxpREFMSSxpRUFBeUQsa0JBQTFFLFlBT2tCLEVBUEQsU0FBeUQsR0FHOUQsa0JBQTRELGtDQUFoRSxZQUVLLEVBRkQsU0FBNEQ7OERBTnBGLDJHQWFNLEtBWkYsMkhBV0ssS0FWRCxpTkFTSyx5QkFUZSxrQkFBbUMsc0JBQXZELFlBU0ssRUFUZSxTQUFtQzsrREFhL0Qsa1FBRWMseUJBRGQsb0dBQW9HLEVBQUMsb0NBQW1DLEVBRHhJLFlBRWMsRUFEZCxTQUFvRyxFQUFDLFNBQW1DOzhEQXRCNUksNkVBd0JlLEtBdkJYLG1MQUlNLElBQ04sbUxBYU0sSUFFTixvTEFFYyw4REF0QlUsMkNBQTZCLEdBQXJELFlBSU0sRUFKa0IsU0FBNkIsR0FLckIsMkNBQTZCLEdBQTdELFlBYU0sRUFiMEIsU0FBNkIsR0FlL0MsNENBQThCLEdBQTVDLFlBRWMsRUFGQSxTQUE4QjtvR0F0RnBELHNJQWlHTSxLQWhHRiwrSkFHTSxLQUZGLHdIQUFxRSxLQUF4Qiw4Q0FBaUIsTUFHbEUsMkdBcUZNLEtBM0VGLDJHQTJDTSxLQXpDRixnTEFTUSxZQVRvRTs7d0JBQW1DO01BQS9HLHdCQVNRLEtBUkosNkZBTU0sS0FMSiw4RUFBMEIsS0FBbkIsd0NBQVcsTUFDbEIsb0xBR0ksSUFFTixrR0FBd0UsS0FBbEQsaUNBQTJDLE1BRW5FLGlMQVNNLFlBVG9FOzt3QkFBaUM7TUFBM0csd0JBU00sS0FSSiw4RkFNTSxLQUxKLCtFQUF3QixLQUFqQixzQ0FBUyxNQUNoQixvTEFHSSxJQUVOLGtHQUFzRSxLQUFoRCxpQ0FBeUMsTUFFakUsaUxBVU0sWUFUSjs7d0JBQXdDO01BRDFDLHdCQVVNLEtBUkosOEZBTU0sS0FMSiwrRUFBZ0MsS0FBekIsOENBQWlCLE1BQ3hCLG9MQUdJLElBRU4sa0dBQTZFLEtBQXZELGlDQUFnRCxNQUV4RSxpTEFTTSxZQVRpRTs7d0JBQThCO01BQXJHLHdCQVNNLEtBUkosOEZBTU0sS0FMSiwrRUFBcUIsS0FBZCxtQ0FBTSxNQUNiLG9MQUdJLElBRU4sa0dBQW1FLEtBQTdDLGlDQUFzQyxNQUlwRSxnR0FHTSxLQUZKLHFHQUFxQyxLQUFaLG1DQUFRLE1BQ2pDOzs7Ozs7Ozs7Ozt3QkFBdUY7TUFBcEU7O3dCQUFvQjtNQUF2Qyw0aUJBQXVGLElBRzdGLG9MQXdCZSxHQXhCRCxhQUFxRSxJQTBCbkYsc01BSzBCLFlBSDFCOzt3QkFBdUI7TUFDdEI7O3dCQUFvQztNQUNwQzs7d0JBQXNCO01BSnZCLDBSQUswQixtREE1RVQsNk5BQTRELEdBQS9ELGFBR0ksRUFIRCxTQUE0RCxHQVU1RCx1TkFBMEQsR0FBN0QsYUFHSSxFQUhELFNBQTBELEdBVzFELDRPQUFpRSxHQUFwRSxhQUdJLEVBSEQsU0FBaUUsR0FVakUsK01BQXVELEdBQTFELGFBR0ksRUFIRCxVQUF1RCxHQVcvQyxvQkFBb0IsU0FBdkMsYUFBdUYsRUFBcEUsVUFBb0IsR0FHL0IsNEdBQXFFLFdBQW5GLGFBd0JlLEVBeEJELFVBQXFFLEdBMkJuRixvQkFBZ0MsZ0JBRGhDLGFBSzBCLEVBSjFCLFVBQWdDLG1EQTVGVCxtQkFBd0MsWUFBbkUsWUFpR00sRUFqR3FCLFNBQXdDLEdBaUJ2QiwrQ0FBMkMsR0FBM0UsWUFTUSxFQVR3QixTQUEyQyxHQVFqRCxpT0FBMkMsR0FFbkMsNkNBQXlDLEdBQXpFLGFBU00sRUFUMEIsU0FBeUMsR0FRakQsMk5BQXlDLEdBRWpDLG9EQUFnRCxHQUFoRixhQVVNLEVBVjBCLFNBQWdELEdBU3hELGdQQUFnRCxHQUV4QywyQ0FBc0MsR0FBdEUsYUFTTSxFQVQwQixVQUFzQyxHQVE5QyxvTkFBc0MsR0FNbEUsZ2JBQXVGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgaTAgZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pMC5Db21wb25lbnRGYWN0b3J5O1xuIiwiPGRpdiBjbGFzcz1cImNhdGVnb3J5LWxpc3RcIiBbY2xhc3MuYW5pbWF0ZS1zbGlkZUluUmlnaHRdPVwiYW5pbWF0aW9uXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2F0ZWdvcnktbGlzdC1oZWFkIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1iZXR3ZWVuIHZ4LXAtM1wiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwidngtZnctNTAwIHZ4LWxhYmVsLXR4dCB2eC1saC01XCI+U2VsZWN0IFByb2dyYW0ocyk8L3NwYW4+XHJcbiAgICAgICAgPCEtLSA8YnV0dG9uIGNsYXNzPVwidngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1sYWJlbC10eHQgdngtdHQtdXBwZXJjYXNlIHZ4LWZ3LTUwMCB2eC1wLTBcIj48aSBjbGFzcz1cImljb25zXCI+JiN4ZWIyOTs8L2k+IEJhY2s8L2J1dHRvbj4gLS0+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXRlZ29yeS1saXN0LW1pZFwiPlxyXG4gICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImNhdGVnb3J5LWxpc3QtdGFiXCI+XHJcbiAgICAgICAgICAgIDx1bD5cclxuICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cImFjdGl2ZVwiPjxidXR0b24+Q29tcGxpYW5jZTxzcGFuPjk4PC9zcGFuPjwvYnV0dG9uPjwvbGk+XHJcbiAgICAgICAgICAgICAgICA8bGk+PGJ1dHRvbj5SaXNrczxzcGFuPjEyMDwvc3Bhbj48L2J1dHRvbj48L2xpPlxyXG4gICAgICAgICAgICAgICAgPGxpPjxidXR0b24+QXVkaXQ8c3Bhbj4yODwvc3Bhbj48L2J1dHRvbj48L2xpPlxyXG4gICAgICAgICAgICAgICAgPGxpPjxidXR0b24+UG9saWN5PHNwYW4+NDU8L3NwYW4+PC9idXR0b24+PC9saT5cclxuICAgICAgICAgICAgPC91bD5cclxuICAgICAgICA8L2Rpdj4gLS0+XHJcbiAgICAgICAgXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInZ4LWQtZmxleCB2eC1tYi0yXCI+XHJcbiAgICAgICAgXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXRlZ29yeS1saXN0LWNhcmRcIiBbY2xhc3MuYWN0aXZlXT1cImFjdGl2ZVRhYiA9PSAncmVndWxhdGlvbnMnXCIgKGNsaWNrKT1cImFjdGl2ZVRhYiA9ICdyZWd1bGF0aW9ucydcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxsYWJlbD5SRUdVTEFUSU9OUzwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgIDxwICpuZ0lmPVwiY2F0ZWdvcnlMaXN0Py5yZWd1bGF0aW9ucz8uc2VsZWN0ZWRMaXN0Py5sZW5ndGggIT0gMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7Y2F0ZWdvcnlMaXN0Py5yZWd1bGF0aW9ucz8uc2VsZWN0ZWRMaXN0Py5sZW5ndGh9fVxyXG4gICAgICAgICAgICAgICAgICAgIHt7KGNhdGVnb3J5TGlzdD8ucmVndWxhdGlvbnM/LnNlbGVjdGVkTGlzdD8ubGVuZ3RoPT0xKT8nQ2F0ZWdvcnknOidDYXRlZ29yaWVzJ319IHNlbGVjdGVkXHJcbiAgICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjb3VudGVyXCI+e3tjYXRlZ29yeUxpc3Q/LnJlZ3VsYXRpb25zPy5saXN0Py5sZW5ndGh9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2F0ZWdvcnktbGlzdC1jYXJkXCIgW2NsYXNzLmFjdGl2ZV09XCJhY3RpdmVUYWIgPT0gJ3N0YW5kYXJkcydcIiAoY2xpY2spPVwiYWN0aXZlVGFiID0gJ3N0YW5kYXJkcydcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxsYWJlbD5TVEFOREFSRFM8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8cCAqbmdJZj1cImNhdGVnb3J5TGlzdD8uc3RhbmRhcmRzPy5zZWxlY3RlZExpc3Q/Lmxlbmd0aCAhPSAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3tjYXRlZ29yeUxpc3Q/LnN0YW5kYXJkcz8uc2VsZWN0ZWRMaXN0Py5sZW5ndGh9fVxyXG4gICAgICAgICAgICAgICAgICAgIHt7KGNhdGVnb3J5TGlzdD8uc3RhbmRhcmRzPy5zZWxlY3RlZExpc3Q/Lmxlbmd0aD09MSk/J0NhdGVnb3J5JzonQ2F0ZWdvcmllcyd9fSBzZWxlY3RlZFxyXG4gICAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY291bnRlclwiPnt7Y2F0ZWdvcnlMaXN0Py5zdGFuZGFyZHM/Lmxpc3Q/Lmxlbmd0aH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXRlZ29yeS1saXN0LWNhcmRcIiBbY2xhc3MuYWN0aXZlXT1cImFjdGl2ZVRhYiA9PSAnaW50ZXJuYWxDb250cm9scydcIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImFjdGl2ZVRhYiA9ICdpbnRlcm5hbENvbnRyb2xzJ1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxlZnRcIj5cclxuICAgICAgICAgICAgICAgICAgPGxhYmVsPklOVEVSTkFMIENPTlRST0xTPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPHAgKm5nSWY9XCJjYXRlZ29yeUxpc3Q/LmludGVybmFsQ29udHJvbHM/LnNlbGVjdGVkTGlzdD8ubGVuZ3RoICE9IDBcIj5cclxuICAgICAgICAgICAgICAgICAgICB7e2NhdGVnb3J5TGlzdD8uaW50ZXJuYWxDb250cm9scz8uc2VsZWN0ZWRMaXN0Py5sZW5ndGh9fVxyXG4gICAgICAgICAgICAgICAgICAgIHt7KGNhdGVnb3J5TGlzdD8uaW50ZXJuYWxDb250cm9scz8uc2VsZWN0ZWRMaXN0Py5sZW5ndGg9PTEpPydDYXRlZ29yeSc6J0NhdGVnb3JpZXMnfX0gc2VsZWN0ZWRcclxuICAgICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNvdW50ZXJcIj57e2NhdGVnb3J5TGlzdD8uaW50ZXJuYWxDb250cm9scz8ubGlzdD8ubGVuZ3RofX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhdGVnb3J5LWxpc3QtY2FyZFwiIFtjbGFzcy5hY3RpdmVdPVwiYWN0aXZlVGFiID09ICdvdGhlcnMnXCIgKGNsaWNrKT1cImFjdGl2ZVRhYiA9ICdvdGhlcnMnXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGVmdFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bGFiZWw+T1RIRVJTPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPHAgKm5nSWY9XCJjYXRlZ29yeUxpc3Q/Lm90aGVycz8uc2VsZWN0ZWRMaXN0Py5sZW5ndGggIT0gMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7Y2F0ZWdvcnlMaXN0Py5vdGhlcnM/LnNlbGVjdGVkTGlzdD8ubGVuZ3RofX1cclxuICAgICAgICAgICAgICAgICAgICB7eyhjYXRlZ29yeUxpc3Q/Lm90aGVycz8uc2VsZWN0ZWRMaXN0Py5sZW5ndGg9PTEpPydDYXRlZ29yeSc6J0NhdGVnb3JpZXMnfX0gc2VsZWN0ZWRcclxuICAgICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNvdW50ZXJcIj57e2NhdGVnb3J5TGlzdD8ub3RoZXJzPy5saXN0Py5sZW5ndGh9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICBcclxuICAgICAgICA8ZGl2IGNsYXNzPVwic2VhcmNoXCI+XHJcbiAgICAgICAgICA8aSBjbGFzcz1cImljb25zIHZ4LWZzLTNcIj4mI3hlOTBiOzwvaT5cclxuICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIFsobmdNb2RlbCldPVwic2VhcmNoXCIgcGxhY2Vob2xkZXI9XCJTZWFyY2ggUmVzcG9uc2liaWxpdHkgQ2F0ZWdvcnlcIiAvPlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIoY2F0ZWdvcnlMaXN0W2FjdGl2ZVRhYl0ubGlzdCB8IGZpbHRlcjogc2VhcmNoKSBhcyBzZWFyY2hMaXN0XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdC1hbGxcIiAqbmdJZj1cInNlYXJjaExpc3QubGVuZ3RoID4gMVwiPlxyXG4gICAgICAgICAgICA8YXBwLWNzLWNoZWNrYm94IFtuZ1ZhbHVlXT1cImNoZWNrU2VsZWN0QWxsKGFjdGl2ZVRhYilcIiAobmdWYWx1ZUNoYW5nZSk9XCJzZWxlY3RBbGwoJGV2ZW50LGFjdGl2ZVRhYilcIj5cclxuICAgICAgICAgICAgICAgIDxzdHJvbmc+e3tjaGVja1NlbGVjdEFsbChhY3RpdmVUYWIpID8gJ0Rlc2VsZWN0IEFsbCcgOiAnU2VsZWN0IEFsbCd9fTwvc3Ryb25nPlxyXG4gICAgICAgICAgICAgIDwvYXBwLWNzLWNoZWNrYm94PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXRlZ29yeS1saXN0LWl0ZW1cIiAqbmdJZj1cInNlYXJjaExpc3QubGVuZ3RoID4gMFwiPlxyXG4gICAgICAgICAgICA8dWwgY2xhc3M9XCJjYXRlZ29yeS1saXN0LWl0ZW0tdWwgdngtbS0wIHZ4LXAtMFwiPlxyXG4gICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwidngtbWItNVwiICpuZ0Zvcj1cImxldCBjYXRlZ29yeSBvZiBzZWFyY2hMaXN0XCIgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxhcHAtY3MtY2hlY2tib3ggW25nVmFsdWVdPVwic2VsZWN0ZWRJZHMuaW5jbHVkZXMoY2F0ZWdvcnlbY2F0ZWdvcnlJZEtleV0pXCJcclxuICAgICAgICAgICAgICAgICAgICAobmdWYWx1ZUNoYW5nZSk9XCJzZWxlY3RDYXRlZ29yeSgkZXZlbnQsYWN0aXZlVGFiLGNhdGVnb3J5KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJjYXRlZ29yaWVzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgKm5nRm9yPVwibGV0IGVudGl0eSBvZiBjYXRlZ29yeS5jYXRlZ29yeV9uYW1lOyBsZXQgaiA9IGluZGV4XCIgW2FyVG9vbHRpcF09XCJlbnRpdHlcIiBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiIGRlbGF5PVwiMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ZW50aXR5fX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9hcHAtY3MtY2hlY2tib3g+XHJcbiAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8YXBwLW5vLWRhdGEgICpuZ0lmPVwic2VhcmNoTGlzdC5sZW5ndGggPT0gMFwiXHJcbiAgICAgICAgW25vRGF0YUltYWdlXT1cIidodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvc2VhcmNoLWRhdGEuc3ZnJ1wiIFtub0RhdGFUZXh0XT1cIidObyBkYXRhIHRvIGRpc3BsYXknXCI+XHJcbiAgICAgICAgPC9hcHAtbm8tZGF0YT5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8YXBwLWRhc2hib2FyZC1mb290ZXIgXHJcbiAgICBbZm9vdGVyRGV0YWlsc10gPVwiZm9vdGVyRGV0YWlsc1wiXHJcbiAgICAoY2FuY2VsRXZlbnQpPVwiY2xvc2UoKVwiXHJcbiAgICAgKGRlbGV0ZUV2ZW50KSA9XCJkZWxldGVFdmVudCgkZXZlbnQpXCJcclxuICAgICAoc3VibWl0RXZlbnQpPVwic2F2ZSgpXCJcclxuICAgICAgPjwvYXBwLWRhc2hib2FyZC1mb290ZXI+XHJcbjwvZGl2PlxyXG4iXX0=
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcmllcy5jb21wb25lbnQubmdmYWN0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3JlYXRlLWRhc2hib2FyZC9zcmMvbGliL2NyZWF0ZS1kYXNoYm9hcmQtY29udGFpbmVyL2NhdGVnb3JpZXMvY2F0ZWdvcmllcy5jb21wb25lbnQubmdmYWN0b3J5LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3JlYXRlLWRhc2hib2FyZC9zcmMvbGliL2NyZWF0ZS1kYXNoYm9hcmQtY29udGFpbmVyL2NhdGVnb3JpZXMvY2F0ZWdvcmllcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzhEQ29Ca0IsMEVBR0ksS0FINEQsa21CQUdoRTs4REFPQSwwRUFHSSxLQUgwRCxzbEJBRzlEOzhEQVFBLDBFQUdJLEtBSGlFLGdvQkFHckU7OERBT0EsMEVBR0ksS0FIdUQsb2tCQUczRDs4REFZVixtR0FJTSxLQUhGLG9KQUVvQixZQUZtQzs7d0JBQTZDO01BQXBHLHVNQUVvQixNQURoQiw0RUFBOEUsS0FBdEUsZ0NBQTZELG1EQUR4RCxzQ0FBcUMsYUFBdEQsWUFFb0IsRUFGSCxTQUFxQyxtREFDMUMsNEdBQTZEOzhEQVN6RDs7Ozs7Ozs7Ozs7Ozs7O3lMQUVLLElBRm1ILGtDQUV4SCwyQkFGaUUsa0JBQW9CLG9CQUFDLDZCQUF1QixFQUE3RyxZQUVLLEVBRjRELFNBQW9CLEVBQUMsU0FBdUIsMkJBQVcsNkRBRXhIOzhEQU5aLCtGQVNLLEtBUkQsb0pBT2tCLFlBTmxCOzt3QkFBMkQ7TUFEM0QsdU1BT2tCLE1BTGQsK0ZBSUssS0FIRCxpTkFFSyxpREFMSSxpRUFBeUQsa0JBQTFFLFlBT2tCLEVBUEQsU0FBeUQsR0FHOUQsa0JBQTRELGtDQUFoRSxZQUVLLEVBRkQsU0FBNEQ7OERBTnBGLDJHQWFNLEtBWkYsMkhBV0ssS0FWRCxpTkFTSyx5QkFUZSxrQkFBbUMsc0JBQXZELFlBU0ssRUFUZSxTQUFtQzsrREFhL0Qsa1FBRWMseUJBRGQsb0dBQW9HLEVBQUMsb0NBQW1DLEVBRHhJLFlBRWMsRUFEZCxTQUFvRyxFQUFDLFNBQW1DOzhEQXRCNUksNkVBd0JlLEtBdkJYLG1MQUlNLElBQ04sbUxBYU0sSUFFTixvTEFFYyw4REF0QlUsMkNBQTZCLEdBQXJELFlBSU0sRUFKa0IsU0FBNkIsR0FLckIsMkNBQTZCLEdBQTdELFlBYU0sRUFiMEIsU0FBNkIsR0FlL0MsNENBQThCLEdBQTVDLFlBRWMsRUFGQSxTQUE4QjtvR0F0RnBELHNJQWlHTSxLQWhHRiwrSkFHTSxLQUZGLHdIQUFxRSxLQUF4Qiw4Q0FBaUIsTUFHbEUsMkdBcUZNLEtBM0VGLDJHQTJDTSxLQXpDRixnTEFTUSxZQVRvRTs7d0JBQW1DO01BQS9HLHdCQVNRLEtBUkosNkZBTU0sS0FMSiw4RUFBMEIsS0FBbkIsd0NBQVcsTUFDbEIsb0xBR0ksSUFFTixrR0FBd0UsS0FBbEQsaUNBQTJDLE1BRW5FLGlMQVNNLFlBVG9FOzt3QkFBaUM7TUFBM0csd0JBU00sS0FSSiw4RkFNTSxLQUxKLCtFQUF3QixLQUFqQixzQ0FBUyxNQUNoQixvTEFHSSxJQUVOLGtHQUFzRSxLQUFoRCxpQ0FBeUMsTUFFakUsaUxBVU0sWUFUSjs7d0JBQXdDO01BRDFDLHdCQVVNLEtBUkosOEZBTU0sS0FMSiwrRUFBZ0MsS0FBekIsOENBQWlCLE1BQ3hCLG9MQUdJLElBRU4sa0dBQTZFLEtBQXZELGlDQUFnRCxNQUV4RSxpTEFTTSxZQVRpRTs7d0JBQThCO01BQXJHLHdCQVNNLEtBUkosOEZBTU0sS0FMSiwrRUFBcUIsS0FBZCxtQ0FBTSxNQUNiLG9MQUdJLElBRU4sa0dBQW1FLEtBQTdDLGlDQUFzQyxNQUlwRSxnR0FHTSxLQUZKLHFHQUFxQyxLQUFaLG1DQUFRLE1BQ2pDOzs7Ozs7Ozs7Ozt3QkFBdUU7TUFBcEQ7O3dCQUFvQjtNQUF2Qyw0aUJBQXVFLElBRzdFLG9MQXdCZSxHQXhCRCxhQUFxRSxJQTBCbkYsc01BSzBCLFlBSDFCOzt3QkFBdUI7TUFDdEI7O3dCQUFvQztNQUNwQzs7d0JBQXNCO01BSnZCLDBSQUswQixtREE1RVQsNk5BQTRELEdBQS9ELGFBR0ksRUFIRCxTQUE0RCxHQVU1RCx1TkFBMEQsR0FBN0QsYUFHSSxFQUhELFNBQTBELEdBVzFELDRPQUFpRSxHQUFwRSxhQUdJLEVBSEQsU0FBaUUsR0FVakUsK01BQXVELEdBQTFELGFBR0ksRUFIRCxVQUF1RCxHQVcvQyxvQkFBb0IsU0FBdkMsYUFBdUUsRUFBcEQsVUFBb0IsR0FHL0IsNEdBQXFFLFdBQW5GLGFBd0JlLEVBeEJELFVBQXFFLEdBMkJuRixvQkFBZ0MsZ0JBRGhDLGFBSzBCLEVBSjFCLFVBQWdDLG1EQTVGVCxtQkFBd0MsWUFBbkUsWUFpR00sRUFqR3FCLFNBQXdDLEdBaUJ2QiwrQ0FBMkMsR0FBM0UsWUFTUSxFQVR3QixTQUEyQyxHQVFqRCxpT0FBMkMsR0FFbkMsNkNBQXlDLEdBQXpFLGFBU00sRUFUMEIsU0FBeUMsR0FRakQsMk5BQXlDLEdBRWpDLG9EQUFnRCxHQUFoRixhQVVNLEVBVjBCLFNBQWdELEdBU3hELGdQQUFnRCxHQUV4QywyQ0FBc0MsR0FBdEUsYUFTTSxFQVQwQixVQUFzQyxHQVE5QyxvTkFBc0MsR0FNbEUsZ2JBQXVFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgaTAgZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pMC5Db21wb25lbnRGYWN0b3J5O1xuIiwiPGRpdiBjbGFzcz1cImNhdGVnb3J5LWxpc3RcIiBbY2xhc3MuYW5pbWF0ZS1zbGlkZUluUmlnaHRdPVwiYW5pbWF0aW9uXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2F0ZWdvcnktbGlzdC1oZWFkIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1iZXR3ZWVuIHZ4LXAtM1wiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwidngtZnctNTAwIHZ4LWxhYmVsLXR4dCB2eC1saC01XCI+U2VsZWN0IFByb2dyYW0ocyk8L3NwYW4+XHJcbiAgICAgICAgPCEtLSA8YnV0dG9uIGNsYXNzPVwidngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1sYWJlbC10eHQgdngtdHQtdXBwZXJjYXNlIHZ4LWZ3LTUwMCB2eC1wLTBcIj48aSBjbGFzcz1cImljb25zXCI+JiN4ZWIyOTs8L2k+IEJhY2s8L2J1dHRvbj4gLS0+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXRlZ29yeS1saXN0LW1pZFwiPlxyXG4gICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImNhdGVnb3J5LWxpc3QtdGFiXCI+XHJcbiAgICAgICAgICAgIDx1bD5cclxuICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cImFjdGl2ZVwiPjxidXR0b24+Q29tcGxpYW5jZTxzcGFuPjk4PC9zcGFuPjwvYnV0dG9uPjwvbGk+XHJcbiAgICAgICAgICAgICAgICA8bGk+PGJ1dHRvbj5SaXNrczxzcGFuPjEyMDwvc3Bhbj48L2J1dHRvbj48L2xpPlxyXG4gICAgICAgICAgICAgICAgPGxpPjxidXR0b24+QXVkaXQ8c3Bhbj4yODwvc3Bhbj48L2J1dHRvbj48L2xpPlxyXG4gICAgICAgICAgICAgICAgPGxpPjxidXR0b24+UG9saWN5PHNwYW4+NDU8L3NwYW4+PC9idXR0b24+PC9saT5cclxuICAgICAgICAgICAgPC91bD5cclxuICAgICAgICA8L2Rpdj4gLS0+XHJcbiAgICAgICAgXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInZ4LWQtZmxleCB2eC1tYi0yXCI+XHJcbiAgICAgICAgXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXRlZ29yeS1saXN0LWNhcmRcIiBbY2xhc3MuYWN0aXZlXT1cImFjdGl2ZVRhYiA9PSAncmVndWxhdGlvbnMnXCIgKGNsaWNrKT1cImFjdGl2ZVRhYiA9ICdyZWd1bGF0aW9ucydcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxsYWJlbD5SRUdVTEFUSU9OUzwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgIDxwICpuZ0lmPVwiY2F0ZWdvcnlMaXN0Py5yZWd1bGF0aW9ucz8uc2VsZWN0ZWRMaXN0Py5sZW5ndGggIT0gMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7Y2F0ZWdvcnlMaXN0Py5yZWd1bGF0aW9ucz8uc2VsZWN0ZWRMaXN0Py5sZW5ndGh9fVxyXG4gICAgICAgICAgICAgICAgICAgIHt7KGNhdGVnb3J5TGlzdD8ucmVndWxhdGlvbnM/LnNlbGVjdGVkTGlzdD8ubGVuZ3RoPT0xKT8nQ2F0ZWdvcnknOidDYXRlZ29yaWVzJ319IHNlbGVjdGVkXHJcbiAgICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjb3VudGVyXCI+e3tjYXRlZ29yeUxpc3Q/LnJlZ3VsYXRpb25zPy5saXN0Py5sZW5ndGh9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2F0ZWdvcnktbGlzdC1jYXJkXCIgW2NsYXNzLmFjdGl2ZV09XCJhY3RpdmVUYWIgPT0gJ3N0YW5kYXJkcydcIiAoY2xpY2spPVwiYWN0aXZlVGFiID0gJ3N0YW5kYXJkcydcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxsYWJlbD5TVEFOREFSRFM8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8cCAqbmdJZj1cImNhdGVnb3J5TGlzdD8uc3RhbmRhcmRzPy5zZWxlY3RlZExpc3Q/Lmxlbmd0aCAhPSAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3tjYXRlZ29yeUxpc3Q/LnN0YW5kYXJkcz8uc2VsZWN0ZWRMaXN0Py5sZW5ndGh9fVxyXG4gICAgICAgICAgICAgICAgICAgIHt7KGNhdGVnb3J5TGlzdD8uc3RhbmRhcmRzPy5zZWxlY3RlZExpc3Q/Lmxlbmd0aD09MSk/J0NhdGVnb3J5JzonQ2F0ZWdvcmllcyd9fSBzZWxlY3RlZFxyXG4gICAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY291bnRlclwiPnt7Y2F0ZWdvcnlMaXN0Py5zdGFuZGFyZHM/Lmxpc3Q/Lmxlbmd0aH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXRlZ29yeS1saXN0LWNhcmRcIiBbY2xhc3MuYWN0aXZlXT1cImFjdGl2ZVRhYiA9PSAnaW50ZXJuYWxDb250cm9scydcIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImFjdGl2ZVRhYiA9ICdpbnRlcm5hbENvbnRyb2xzJ1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxlZnRcIj5cclxuICAgICAgICAgICAgICAgICAgPGxhYmVsPklOVEVSTkFMIENPTlRST0xTPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPHAgKm5nSWY9XCJjYXRlZ29yeUxpc3Q/LmludGVybmFsQ29udHJvbHM/LnNlbGVjdGVkTGlzdD8ubGVuZ3RoICE9IDBcIj5cclxuICAgICAgICAgICAgICAgICAgICB7e2NhdGVnb3J5TGlzdD8uaW50ZXJuYWxDb250cm9scz8uc2VsZWN0ZWRMaXN0Py5sZW5ndGh9fVxyXG4gICAgICAgICAgICAgICAgICAgIHt7KGNhdGVnb3J5TGlzdD8uaW50ZXJuYWxDb250cm9scz8uc2VsZWN0ZWRMaXN0Py5sZW5ndGg9PTEpPydDYXRlZ29yeSc6J0NhdGVnb3JpZXMnfX0gc2VsZWN0ZWRcclxuICAgICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNvdW50ZXJcIj57e2NhdGVnb3J5TGlzdD8uaW50ZXJuYWxDb250cm9scz8ubGlzdD8ubGVuZ3RofX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhdGVnb3J5LWxpc3QtY2FyZFwiIFtjbGFzcy5hY3RpdmVdPVwiYWN0aXZlVGFiID09ICdvdGhlcnMnXCIgKGNsaWNrKT1cImFjdGl2ZVRhYiA9ICdvdGhlcnMnXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGVmdFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bGFiZWw+T1RIRVJTPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPHAgKm5nSWY9XCJjYXRlZ29yeUxpc3Q/Lm90aGVycz8uc2VsZWN0ZWRMaXN0Py5sZW5ndGggIT0gMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7Y2F0ZWdvcnlMaXN0Py5vdGhlcnM/LnNlbGVjdGVkTGlzdD8ubGVuZ3RofX1cclxuICAgICAgICAgICAgICAgICAgICB7eyhjYXRlZ29yeUxpc3Q/Lm90aGVycz8uc2VsZWN0ZWRMaXN0Py5sZW5ndGg9PTEpPydDYXRlZ29yeSc6J0NhdGVnb3JpZXMnfX0gc2VsZWN0ZWRcclxuICAgICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNvdW50ZXJcIj57e2NhdGVnb3J5TGlzdD8ub3RoZXJzPy5saXN0Py5sZW5ndGh9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICBcclxuICAgICAgICA8ZGl2IGNsYXNzPVwic2VhcmNoXCI+XHJcbiAgICAgICAgICA8aSBjbGFzcz1cImljb25zIHZ4LWZzLTNcIj4mI3hlOTBiOzwvaT5cclxuICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIFsobmdNb2RlbCldPVwic2VhcmNoXCIgcGxhY2Vob2xkZXI9XCJTZWFyY2ggUHJvZ3JhbVwiIC8+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIihjYXRlZ29yeUxpc3RbYWN0aXZlVGFiXS5saXN0IHwgZmlsdGVyOiBzZWFyY2gpIGFzIHNlYXJjaExpc3RcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0LWFsbFwiICpuZ0lmPVwic2VhcmNoTGlzdC5sZW5ndGggPiAxXCI+XHJcbiAgICAgICAgICAgIDxhcHAtY3MtY2hlY2tib3ggW25nVmFsdWVdPVwiY2hlY2tTZWxlY3RBbGwoYWN0aXZlVGFiKVwiIChuZ1ZhbHVlQ2hhbmdlKT1cInNlbGVjdEFsbCgkZXZlbnQsYWN0aXZlVGFiKVwiPlxyXG4gICAgICAgICAgICAgICAgPHN0cm9uZz57e2NoZWNrU2VsZWN0QWxsKGFjdGl2ZVRhYikgPyAnRGVzZWxlY3QgQWxsJyA6ICdTZWxlY3QgQWxsJ319PC9zdHJvbmc+XHJcbiAgICAgICAgICAgICAgPC9hcHAtY3MtY2hlY2tib3g+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhdGVnb3J5LWxpc3QtaXRlbVwiICpuZ0lmPVwic2VhcmNoTGlzdC5sZW5ndGggPiAwXCI+XHJcbiAgICAgICAgICAgIDx1bCBjbGFzcz1cImNhdGVnb3J5LWxpc3QtaXRlbS11bCB2eC1tLTAgdngtcC0wXCI+XHJcbiAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJ2eC1tYi01XCIgKm5nRm9yPVwibGV0IGNhdGVnb3J5IG9mIHNlYXJjaExpc3RcIiA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGFwcC1jcy1jaGVja2JveCBbbmdWYWx1ZV09XCJzZWxlY3RlZElkcy5pbmNsdWRlcyhjYXRlZ29yeVtjYXRlZ29yeUlkS2V5XSlcIlxyXG4gICAgICAgICAgICAgICAgICAgIChuZ1ZhbHVlQ2hhbmdlKT1cInNlbGVjdENhdGVnb3J5KCRldmVudCxhY3RpdmVUYWIsY2F0ZWdvcnkpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cImNhdGVnb3JpZXNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSAqbmdGb3I9XCJsZXQgZW50aXR5IG9mIGNhdGVnb3J5LmNhdGVnb3J5X25hbWU7IGxldCBqID0gaW5kZXhcIiBbYXJUb29sdGlwXT1cImVudGl0eVwiIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCIgZGVsYXk9XCIwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tlbnRpdHl9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICAgICAgICA8L2FwcC1jcy1jaGVja2JveD5cclxuICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxhcHAtbm8tZGF0YSAgKm5nSWY9XCJzZWFyY2hMaXN0Lmxlbmd0aCA9PSAwXCJcclxuICAgICAgICBbbm9EYXRhSW1hZ2VdPVwiJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9zZWFyY2gtZGF0YS5zdmcnXCIgW25vRGF0YVRleHRdPVwiJ05vIGRhdGEgdG8gZGlzcGxheSdcIj5cclxuICAgICAgICA8L2FwcC1uby1kYXRhPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxhcHAtZGFzaGJvYXJkLWZvb3RlciBcclxuICAgIFtmb290ZXJEZXRhaWxzXSA9XCJmb290ZXJEZXRhaWxzXCJcclxuICAgIChjYW5jZWxFdmVudCk9XCJjbG9zZSgpXCJcclxuICAgICAoZGVsZXRlRXZlbnQpID1cImRlbGV0ZUV2ZW50KCRldmVudClcIlxyXG4gICAgIChzdWJtaXRFdmVudCk9XCJzYXZlKClcIlxyXG4gICAgICA+PC9hcHAtZGFzaGJvYXJkLWZvb3Rlcj5cclxuPC9kaXY+XHJcbiJdfQ==
@@ -30,7 +30,7 @@ export class ConfigureWidgetsComponent {
30
30
  {
31
31
  title: 'Overview',
32
32
  id: 'overview',
33
- description: 'Overview shows the performance of responsibilities and Responsibility Categories.',
33
+ description: 'Overview shows the performance of responsibilities and Programs.',
34
34
  widgetImage: 'https://cdn.v-comply.com/libraries/configure-widget/assets/images/overview.png',
35
35
  value: false,
36
36
  visibility: true,
@@ -528,4 +528,4 @@ ConfigureWidgetsComponent.propDecorators = {
528
528
  showCompliance: [{ type: Input }],
529
529
  mode: [{ type: Input }]
530
530
  };
531
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJlLXdpZGdldHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3JlYXRlLWRhc2hib2FyZC9zcmMvbGliL2NyZWF0ZS1kYXNoYm9hcmQtY29udGFpbmVyL2NvbmZpZ3VyZS13aWRnZXRzL2NvbmZpZ3VyZS13aWRnZXRzL2NvbmZpZ3VyZS13aWRnZXRzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUNuRixPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUcxRixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFOUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBTzlFLE1BQU0sT0FBTyx5QkFBeUI7SUF5QnBDLFlBQ1UsTUFBaUIsRUFDbEIsdUJBQWdELEVBQy9DLFFBQXlCO1FBRnpCLFdBQU0sR0FBTixNQUFNLENBQVc7UUFDbEIsNEJBQXVCLEdBQXZCLHVCQUF1QixDQUF5QjtRQUMvQyxhQUFRLEdBQVIsUUFBUSxDQUFpQjtRQTFCekIsd0JBQW1CLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDNUQsMEJBQXFCLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFFeEUsV0FBTSxHQUFXLEVBQUUsQ0FBQztRQUNwQixpQkFBWSxHQUE2QyxFQUFFLENBQUM7UUFDNUQsb0JBQWUsR0FBMkIsRUFBRSxDQUFDO1FBRTdDLFdBQU0sR0FBMEIsWUFBWSxDQUFDO1FBQ3BDLHdCQUFtQixHQUFRLEVBQUUsQ0FBQztRQUM5QixxQkFBZ0IsR0FBUSxFQUFFLENBQUM7UUFDM0IsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixtQkFBYyxHQUFHLEtBQUssQ0FBQztRQUN2QixTQUFJLEdBQUcsUUFBUSxDQUFBO1FBQ3hCLGVBQVUsR0FBRyx1R0FBdUcsQ0FBQztRQUVySCxzQkFBaUIsR0FBUSxFQUFFLENBQUM7UUFDNUIsZ0NBQTJCLEdBQVksS0FBSyxDQUFBO1FBQzVDLG1DQUE4QixHQUFZLEtBQUssQ0FBQTtRQUMvQyxnQkFBVyxHQUFHLElBQUksQ0FBQztRQUNuQixrQ0FBNkIsR0FBRyxDQUFDLENBQUM7UUFDbEMsNEJBQXVCLEdBQUcsRUFBRSxDQUFDO1FBcUg3QixnQkFBVyxHQUFHO1lBQ1osVUFBVSxFQUFFO2dCQUNWO29CQUNFLEtBQUssRUFBRSxVQUFVO29CQUNqQixFQUFFLEVBQUUsVUFBVTtvQkFDZCxXQUFXLEVBQUUsbUZBQW1GO29CQUNoRyxXQUFXLEVBQUUsZ0ZBQWdGO29CQUM3RixLQUFLLEVBQUUsS0FBSztvQkFDWixVQUFVLEVBQUMsSUFBSTtvQkFDZixNQUFNLEVBQUUsWUFBWTtvQkFDcEIsVUFBVSxFQUFFLEVBQUU7aUJBQ2Y7Z0JBQ0Q7b0JBQ0UsS0FBSyxFQUFFLHlCQUF5QjtvQkFDaEMsRUFBRSxFQUFFLDBCQUEwQjtvQkFDOUIsV0FBVyxFQUFFLCtLQUErSztvQkFDNUwsV0FBVyxFQUFFLCtGQUErRjtvQkFDNUcsS0FBSyxFQUFFLEtBQUs7b0JBQ1osVUFBVSxFQUFDLElBQUk7b0JBQ2YsTUFBTSxFQUFFLFlBQVk7b0JBQ3BCLFVBQVUsRUFBRSxFQUFFO2lCQUNmO2dCQUNEO29CQUNFLEtBQUssRUFBRSxnQ0FBZ0M7b0JBQ3ZDLEVBQUUsRUFBRSxxQ0FBcUM7b0JBQ3pDLFdBQVcsRUFBRSwwR0FBMEc7b0JBQ3ZILFdBQVcsRUFBRSxzR0FBc0c7b0JBQ25ILEtBQUssRUFBRSxLQUFLO29CQUNaLFVBQVUsRUFBQyxJQUFJO29CQUNmLE1BQU0sRUFBRSxZQUFZO29CQUNwQixVQUFVLEVBQUUsRUFBRTtpQkFDZjtnQkFDRDtvQkFDRSxLQUFLLEVBQUUsa0JBQWtCO29CQUN6QixFQUFFLEVBQUUscUJBQXFCO29CQUN6QixXQUFXLEVBQUUsNExBQTRMO29CQUN6TSxXQUFXLEVBQUUsMkZBQTJGO29CQUN4RyxTQUFTLEVBQUUsSUFBSTtvQkFDZixLQUFLLEVBQUUsS0FBSztvQkFDWixVQUFVLEVBQUMsSUFBSTtvQkFDZixNQUFNLEVBQUUsWUFBWTtvQkFDcEIsVUFBVSxFQUFFO3dCQUNWOzRCQUNFLEtBQUssRUFBRSxxQkFBcUI7NEJBQzVCLEVBQUUsRUFBRSx3QkFBd0I7NEJBQzVCLEtBQUssRUFBRSxLQUFLOzRCQUNaLFVBQVUsRUFBQyxJQUFJO3lCQUNoQjt3QkFDRDs0QkFDRSxLQUFLLEVBQUUsZUFBZTs0QkFDdEIsRUFBRSxFQUFFLDhCQUE4Qjs0QkFDbEMsS0FBSyxFQUFFLEtBQUs7NEJBQ1osVUFBVSxFQUFDLElBQUk7eUJBQ2hCO3dCQUNEOzRCQUNFLEtBQUssRUFBRSxnQkFBZ0I7NEJBQ3ZCLEVBQUUsRUFBRSx3QkFBd0I7NEJBQzVCLEtBQUssRUFBRSxLQUFLOzRCQUNaLFVBQVUsRUFBQyxJQUFJO3lCQUNoQjtxQkFDRjtpQkFDRjtnQkFDRDtvQkFDRSxLQUFLLEVBQUUsc0JBQXNCO29CQUM3QixFQUFFLEVBQUUsc0JBQXNCO29CQUMxQixXQUFXLEVBQUUsNExBQTRMO29CQUN6TSxXQUFXLEVBQUUsNEZBQTRGO29CQUN6RyxTQUFTLEVBQUUsSUFBSTtvQkFDZixLQUFLLEVBQUUsS0FBSztvQkFDWixVQUFVLEVBQUMsSUFBSTtvQkFDZixNQUFNLEVBQUUsWUFBWTtvQkFDcEIsVUFBVSxFQUFFO3dCQUNWOzRCQUNFLEtBQUssRUFBRSxVQUFVOzRCQUNqQixFQUFFLEVBQUUsb0NBQW9DOzRCQUN4QyxLQUFLLEVBQUUsS0FBSzs0QkFDWixVQUFVLEVBQUMsSUFBSTt5QkFDaEI7d0JBQ0Q7NEJBQ0UsS0FBSyxFQUFFLHFCQUFxQjs0QkFDNUIsRUFBRSxFQUFFLDhCQUE4Qjs0QkFDbEMsS0FBSyxFQUFFLEtBQUs7NEJBQ1osVUFBVSxFQUFDLElBQUk7eUJBQ2hCO3dCQUNEOzRCQUNFLEtBQUssRUFBRSxlQUFlOzRCQUN0QixFQUFFLEVBQUUseUJBQXlCOzRCQUM3QixLQUFLLEVBQUUsS0FBSzs0QkFDWixVQUFVLEVBQUMsSUFBSTt5QkFDaEI7d0JBQ0Q7NEJBQ0UsS0FBSyxFQUFFLGdCQUFnQjs0QkFDdkIsRUFBRSxFQUFFLDBCQUEwQjs0QkFDOUIsS0FBSyxFQUFFLEtBQUs7NEJBQ1osVUFBVSxFQUFDLElBQUk7eUJBQ2hCO3FCQUNGO2lCQUNGO2dCQUNEO29CQUNFLEtBQUssRUFBRSxnQkFBZ0I7b0JBQ3ZCLEVBQUUsRUFBRSxxQkFBcUI7b0JBQ3pCLFdBQVcsRUFBRSx3R0FBd0c7b0JBQ3JILFdBQVcsRUFBRSxzRkFBc0Y7b0JBQ25HLEtBQUssRUFBRSxLQUFLO29CQUNaLFVBQVUsRUFBQyxJQUFJO29CQUNmLE1BQU0sRUFBRSxZQUFZO29CQUNwQixVQUFVLEVBQUUsRUFBRTtpQkFDZjtnQkFDRDtvQkFDRSxLQUFLLEVBQUUsa0JBQWtCO29CQUN6QixFQUFFLEVBQUUscUJBQXFCO29CQUN6QixXQUFXLEVBQUUseUlBQXlJO29CQUN0SixXQUFXLEVBQUUsd0ZBQXdGO29CQUNyRyxLQUFLLEVBQUUsS0FBSztvQkFDWixVQUFVLEVBQUMsSUFBSTtvQkFDZixNQUFNLEVBQUUsWUFBWTtvQkFDcEIsVUFBVSxFQUFFLEVBQUU7aUJBQ2Y7Z0JBQ0Q7b0JBQ0UsS0FBSyxFQUFFLG1CQUFtQjtvQkFDMUIsRUFBRSxFQUFFLHNCQUFzQjtvQkFDMUIsV0FBVyxFQUFFLHlFQUF5RTtvQkFDdEYsV0FBVyxFQUFFLHlGQUF5RjtvQkFDdEcsS0FBSyxFQUFFLEtBQUs7b0JBQ1osVUFBVSxFQUFDLElBQUk7b0JBQ2YsTUFBTSxFQUFFLFlBQVk7b0JBQ3BCLFVBQVUsRUFBRSxFQUFFO2lCQUNmO2dCQUNEO29CQUNFLEtBQUssRUFBRSxtQkFBbUI7b0JBQzFCLEVBQUUsRUFBRSx3QkFBd0I7b0JBQzVCLFdBQVcsRUFBRSxnSEFBZ0g7b0JBQzdILFdBQVcsRUFBRSx5RkFBeUY7b0JBQ3RHLEtBQUssRUFBRSxLQUFLO29CQUNaLFVBQVUsRUFBQyxJQUFJO29CQUNmLE1BQU0sRUFBRSxZQUFZO29CQUNwQixVQUFVLEVBQUUsRUFBRTtpQkFDZjthQUNGO1lBQ0QsSUFBSSxFQUFFO2dCQUNKO29CQUNFLEtBQUssRUFBRSxlQUFlO29CQUN0QixFQUFFLEVBQUUsZUFBZTtvQkFDbkIsV0FBVyxFQUFFLDBGQUEwRjtvQkFDdkcsV0FBVyxFQUFFLHFGQUFxRjtvQkFDbEcsS0FBSyxFQUFFLEtBQUs7b0JBQ1osVUFBVSxFQUFDLElBQUk7b0JBQ2YsTUFBTSxFQUFFLE1BQU07b0JBQ2QsVUFBVSxFQUFFLEVBQUU7aUJBQ2Y7Z0JBQ0Q7b0JBQ0UsS0FBSyxFQUFFLGNBQWM7b0JBQ3JCLEVBQUUsRUFBRSxjQUFjO29CQUNsQixXQUFXLEVBQUUsb1JBQW9SO29CQUNqUyxXQUFXLEVBQUUsMEZBQTBGO29CQUN2RyxLQUFLLEVBQUUsS0FBSztvQkFDWixVQUFVLEVBQUMsSUFBSTtvQkFDZixNQUFNLEVBQUUsTUFBTTtvQkFDZCxVQUFVLEVBQUU7d0JBQ1Y7NEJBQ0UsS0FBSyxFQUFFLDJCQUEyQjs0QkFDbEMsRUFBRSxFQUFFLHlCQUF5Qjs0QkFDN0IsS0FBSyxFQUFFLEtBQUs7NEJBQ1osVUFBVSxFQUFDLElBQUk7eUJBQ2hCO3dCQUNEOzRCQUNFLEtBQUssRUFBRSxjQUFjOzRCQUNyQixFQUFFLEVBQUUsY0FBYzs0QkFDbEIsS0FBSyxFQUFFLEtBQUs7NEJBQ1osVUFBVSxFQUFDLElBQUk7eUJBQ2hCO3dCQUNEOzRCQUNFLEtBQUssRUFBRSx3QkFBd0I7NEJBQy9CLEVBQUUsRUFBRSx3QkFBd0I7NEJBQzVCLEtBQUssRUFBRSxLQUFLOzRCQUNaLFVBQVUsRUFBQyxJQUFJO3lCQUNoQjt3QkFDRDs0QkFDRSxLQUFLLEVBQUUsd0JBQXdCOzRCQUMvQixFQUFFLEVBQUUsd0JBQXdCOzRCQUM1QixLQUFLLEVBQUUsS0FBSzs0QkFDWixVQUFVLEVBQUMsSUFBSTt5QkFDaEI7cUJBQ0Y7aUJBQ0Y7Z0JBRUQ7b0JBQ0UsS0FBSyxFQUFFLGlEQUFpRDtvQkFDeEQsRUFBRSxFQUFFLGdEQUFnRDtvQkFDcEQsV0FBVyxFQUFFLDZJQUE2STtvQkFDMUosV0FBVyxFQUFFLG1GQUFtRjtvQkFDaEcsS0FBSyxFQUFFLEtBQUs7b0JBQ1osVUFBVSxFQUFDLElBQUk7b0JBQ2YsTUFBTSxFQUFFLE1BQU07b0JBQ2QsVUFBVSxFQUFFLEVBQUU7aUJBQ2Y7Z0JBQ0Q7b0JBQ0UsS0FBSyxFQUFFLGlEQUFpRDtvQkFDeEQsRUFBRSxFQUFFLGdEQUFnRDtvQkFDcEQsV0FBVyxFQUFFLDZJQUE2STtvQkFDMUosV0FBVyxFQUFFLG1GQUFtRjtvQkFDaEcsS0FBSyxFQUFFLEtBQUs7b0JBQ1osVUFBVSxFQUFDLElBQUk7b0JBQ2YsTUFBTSxFQUFFLE1BQU07b0JBQ2QsVUFBVSxFQUFFLEVBQUU7aUJBQ2Y7Z0JBQ0Q7b0JBQ0UsS0FBSyxFQUFFLHdCQUF3QjtvQkFDL0IsRUFBRSxFQUFFLHdCQUF3QjtvQkFDNUIsV0FBVyxFQUFFLDRIQUE0SDtvQkFDekksV0FBVyxFQUFFLDhGQUE4RjtvQkFDM0csS0FBSyxFQUFFLEtBQUs7b0JBQ1osVUFBVSxFQUFDLElBQUk7b0JBQ2YsTUFBTSxFQUFFLE1BQU07b0JBQ2QsVUFBVSxFQUFFLEVBQUU7aUJBQ2Y7Z0JBQ0Q7b0JBQ0UsS0FBSyxFQUFFLGNBQWM7b0JBQ3JCLEVBQUUsRUFBRSxjQUFjO29CQUNsQixXQUFXLEVBQUUscUVBQXFFO29CQUNsRixXQUFXLEVBQUUsb0ZBQW9GO29CQUNqRyxLQUFLLEVBQUUsS0FBSztvQkFDWixVQUFVLEVBQUMsSUFBSTtvQkFDZixNQUFNLEVBQUUsTUFBTTtvQkFDZCxVQUFVLEVBQUUsRUFBRTtpQkFDZjtnQkFDRDtvQkFDRSxLQUFLLEVBQUUsb0NBQW9DO29CQUMzQyxFQUFFLEVBQUUsb0NBQW9DO29CQUN4QyxXQUFXLEVBQUUsOElBQThJO29CQUMzSixXQUFXLEVBQUUsMkZBQTJGO29CQUN4RyxLQUFLLEVBQUUsS0FBSztvQkFDWixVQUFVLEVBQUMsSUFBSTtvQkFDZixNQUFNLEVBQUUsTUFBTTtvQkFDZCxVQUFVLEVBQUUsRUFBRTtpQkFDZjtnQkFFRDtvQkFDRSxLQUFLLEVBQUUsb0NBQW9DO29CQUMzQyxFQUFFLEVBQUUsb0NBQW9DO29CQUN4QyxXQUFXLEVBQUUsOElBQThJO29CQUMzSixXQUFXLEVBQUUsMkZBQTJGO29CQUN4RyxLQUFLLEVBQUUsS0FBSztvQkFDWixVQUFVLEVBQUMsSUFBSTtvQkFDZixNQUFNLEVBQUUsTUFBTTtvQkFDZCxVQUFVLEVBQUUsRUFBRTtpQkFDZjtnQkFDRDtvQkFDRSxLQUFLLEVBQUUsc0RBQXNEO29CQUM3RCxFQUFFLEVBQUUsc0RBQXNEO29CQUMxRCxXQUFXLEVBQUUsd0tBQXdLO29CQUNyTCxXQUFXLEVBQUUsc0ZBQXNGO29CQUNuRyxLQUFLLEVBQUUsS0FBSztvQkFDWixVQUFVLEVBQUMsSUFBSTtvQkFDZixNQUFNLEVBQUUsTUFBTTtvQkFDZCxVQUFVLEVBQUUsRUFBRTtpQkFDZjtnQkFDRDtvQkFDRSxLQUFLLEVBQUUsc0RBQXNEO29CQUM3RCxFQUFFLEVBQUUsc0RBQXNEO29CQUMxRCxXQUFXLEVBQUUsd0tBQXdLO29CQUNyTCxXQUFXLEVBQUUsc0ZBQXNGO29CQUNuRyxLQUFLLEVBQUUsS0FBSztvQkFDWixVQUFVLEVBQUMsSUFBSTtvQkFDZixNQUFNLEVBQUUsTUFBTTtvQkFDZCxVQUFVLEVBQUUsRUFBRTtpQkFDZjtnQkFDRDtvQkFDRSxLQUFLLEVBQUUsaUNBQWlDO29CQUN4QyxFQUFFLEVBQUUsaUNBQWlDO29CQUNyQyxXQUFXLEVBQUUsNEhBQTRIO29CQUN6SSxXQUFXLEVBQUUsa0ZBQWtGO29CQUMvRixLQUFLLEVBQUUsS0FBSztvQkFDWixVQUFVLEVBQUMsSUFBSTtvQkFDZixNQUFNLEVBQUUsTUFBTTtvQkFDZCxVQUFVLEVBQUUsRUFBRTtpQkFDZjtnQkFDRDtvQkFDRSxLQUFLLEVBQUUsb0JBQW9CO29CQUMzQixFQUFFLEVBQUUsNkJBQTZCO29CQUNqQyxXQUFXLEVBQUUscUVBQXFFO29CQUNsRixXQUFXLEVBQUUsc0ZBQXNGO29CQUNuRyxLQUFLLEVBQUUsS0FBSztvQkFDWixVQUFVLEVBQUMsSUFBSTtvQkFDZixNQUFNLEVBQUUsTUFBTTtvQkFDZCxVQUFVLEVBQUUsRUFBRTtpQkFDZjthQUNGO1NBQ0YsQ0FBQTtJQTdZRCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxNQUFNLEVBQUU7WUFDdkIsSUFBSSxDQUFDLDJCQUEyQixFQUFFLENBQUE7WUFDbEMsSUFBSSxDQUFDLHVCQUF1QixHQUFHLENBQUMsQ0FBQztZQUNqQyxJQUFJLENBQUMsNkJBQTZCLEdBQUcsQ0FBQyxDQUFDO1lBQ3ZDLE1BQU0sU0FBUyxHQUFHLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO1lBQ3RELFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFZLEVBQUUsS0FBVSxFQUFFLEVBQUU7Z0JBQzdDLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQVEsRUFBRSxFQUFFO29CQUMvQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLElBQUksT0FBTyxDQUFDLFdBQVcsRUFBRTt3QkFDakMsR0FBRyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7d0JBQ3RCLElBQUksR0FBRyxDQUFDLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFOzRCQUM3QixNQUFNLFVBQVUsR0FBUSxFQUFFLENBQUE7NEJBQzFCLE9BQU8sQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsU0FBYyxFQUFFLEVBQUU7Z0NBQzFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDOzRCQUMzQyxDQUFDLENBQUMsQ0FBQzs0QkFDSCxHQUFHLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFVBQWUsRUFBRSxRQUFnQixFQUFFLEVBQUU7Z0NBQzNELElBQUksVUFBVSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLEVBQUU7b0NBQ3RDLEdBQUcsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztpQ0FDNUM7cUNBQU07b0NBQ0wsR0FBRyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO2lDQUM3Qzs0QkFDSCxDQUFDLENBQUMsQ0FBQzt5QkFDSjt3QkFDRCxJQUFJLENBQUMsNkJBQTZCLEVBQUUsQ0FBQTtxQkFDckM7Z0JBQ0gsQ0FBQyxDQUFDLENBQUE7Z0JBQ0YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBUSxFQUFFLEVBQUU7b0JBQ3pDLElBQUksR0FBRyxDQUFDLEVBQUUsSUFBSSxPQUFPLENBQUMsV0FBVyxFQUFFO3dCQUNqQyxHQUFHLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQzt3QkFDdEIsSUFBSSxHQUFHLENBQUMsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7NEJBQzdCLE1BQU0sVUFBVSxHQUFRLEVBQUUsQ0FBQTs0QkFDMUIsT0FBTyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxTQUFjLEVBQUUsRUFBRTtnQ0FDMUMsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUM7NEJBQzNDLENBQUMsQ0FBQyxDQUFDOzRCQUNILEdBQUcsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsVUFBZSxFQUFFLFFBQWdCLEVBQUUsRUFBRTtnQ0FDM0QsSUFBSSxVQUFVLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsRUFBRTtvQ0FDdEMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO2lDQUM1QztxQ0FBTTtvQ0FDTCxHQUFHLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7aUNBQzdDOzRCQUNILENBQUMsQ0FBQyxDQUFDO3lCQUVKO3dCQUNELElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFBO3FCQUMvQjtnQkFDSCxDQUFDLENBQUMsQ0FBQTtZQUNKLENBQUMsQ0FBQyxDQUFDO1NBQ0o7UUFDRCxNQUFNLElBQUksR0FBRyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBWSxFQUFFLEtBQVUsRUFBRSxFQUFFO1lBQ3hDLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQVEsRUFBRSxFQUFFO2dCQUMvQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLElBQUksT0FBTyxDQUFDLFdBQVcsSUFBSSxPQUFPLENBQUMsS0FBSyxJQUFJLFFBQVEsRUFBRTtvQkFDOUQsR0FBRyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7b0JBQ2pCLElBQUksR0FBRyxDQUFDLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO3dCQUM3QixNQUFNLFVBQVUsR0FBUSxFQUFFLENBQUE7d0JBQzFCLE9BQU8sQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsU0FBYyxFQUFFLEVBQUU7NEJBQzVDLElBQUksU0FBUyxDQUFDLEtBQUssSUFBSSxRQUFRLEVBQUU7Z0NBQy9CLFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDOzZCQUN4Qzt3QkFDSCxDQUFDLENBQUMsQ0FBQzt3QkFDSCxHQUFHLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFVBQWUsRUFBRSxRQUFnQixFQUFFLEVBQUU7NEJBQzNELElBQUksVUFBVSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLEVBQUU7Z0NBQ3RDLEdBQUcsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQzs2QkFDdkM7aUNBQU07Z0NBQ0wsR0FBRyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDOzZCQUN4Qzt3QkFDSCxDQUFDLENBQUMsQ0FBQztxQkFFSjtvQkFDRCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztpQkFFaEM7WUFDSCxDQUFDLENBQUMsQ0FBQTtZQUNGLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQVEsRUFBRSxFQUFFO2dCQUN6QyxJQUFJLEdBQUcsQ0FBQyxFQUFFLElBQUksT0FBTyxDQUFDLFdBQVcsSUFBSSxPQUFPLENBQUMsS0FBSyxJQUFJLFFBQVEsRUFBRTtvQkFDOUQsR0FBRyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7b0JBQ2pCLElBQUksR0FBRyxDQUFDLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO3dCQUM3QixNQUFNLFVBQVUsR0FBUSxFQUFFLENBQUE7d0JBQzFCLE9BQU8sQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsU0FBYyxFQUFFLEVBQUU7NEJBQzVDLElBQUksU0FBUyxDQUFDLEtBQUssSUFBSSxRQUFRLEVBQUU7Z0NBQy9CLFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDOzZCQUN4Qzt3QkFDSCxDQUFDLENBQUMsQ0FBQzt3QkFDSCxHQUFHLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFVBQWUsRUFBRSxRQUFnQixFQUFFLEVBQUU7NEJBQzNELElBQUksVUFBVSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLEVBQUU7Z0NBQ3RDLEdBQUcsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQzs2QkFDdkM7aUNBQU07Z0NBQ0wsR0FBRyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDOzZCQUN4Qzt3QkFDSCxDQUFDLENBQUMsQ0FBQztxQkFFSjtvQkFDRCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztpQkFFaEM7WUFDSCxDQUFDLENBQUMsQ0FBQTtRQUVKLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFDNUQsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVELFFBQVE7SUFFUixDQUFDO0lBcVNELFlBQVksQ0FBQyxLQUFVLEVBQUUsTUFBNkIsRUFBRSxRQUFnQixFQUFFLFdBQW9CO1FBQzVGLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBUSxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxJQUFJLFFBQVEsQ0FBQyxDQUFDO1FBQ3pGLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBRSxNQUFXLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEtBQUssUUFBUSxDQUFFLENBQUE7UUFDcEcsSUFBSSxLQUFLLEVBQUU7WUFDVCxJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsV0FBVyxJQUFJLGtCQUFrQixJQUFJLENBQUMsQ0FBQyxFQUFFO2dCQUNsRixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFDO2dCQUMzRCxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztnQkFDekIsVUFBVSxDQUFDLEdBQUcsRUFBRTtvQkFDZCxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7b0JBQ3BELElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO2dCQUMxQixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQ1AsT0FBTTthQUNQO1lBQ0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1lBQ25ELElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDL0QsSUFBSSxDQUFDLFdBQVcsRUFBRTtvQkFDaEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsQ0FBQztpQkFDbkY7cUJBQU07b0JBQ0wsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBUSxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxJQUFJLFdBQVcsQ0FBQyxDQUFDO29CQUN2SCxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUMsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO2lCQUMvRTthQUNGO1NBQ0Y7YUFBTTtZQUNMLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDL0QsSUFBSSxDQUFDLFdBQVcsRUFBRTtvQkFDaEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO29CQUNwRCxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFRLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLENBQUM7aUJBQzNGO3FCQUFNO29CQUNMLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQVEsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsSUFBSSxXQUFXLENBQUMsQ0FBQztvQkFDdkgsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztvQkFFL0UsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFRLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxLQUFLLElBQUksS0FBSyxDQUFDLENBQUM7b0JBQ3JILElBQUksbUJBQW1CLEVBQUU7d0JBQ3ZCLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztxQkFDckQ7aUJBQ0Y7YUFDRjtpQkFBTTtnQkFDTCxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7YUFDckQ7U0FDRjtRQUNELElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBRTVCLENBQUM7SUFDRCxrQkFBa0I7UUFDaEIsSUFBSSxDQUFDLGVBQWUsR0FBRyxFQUFFLENBQUE7UUFDekIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBUSxFQUFFLEVBQUU7WUFDL0MsSUFBSSxHQUFHLENBQUMsS0FBSyxFQUFFO2dCQUNiLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO2FBQy9CO1FBQ0gsQ0FBQyxDQUFDLENBQUE7UUFDRixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFRLEVBQUUsRUFBRTtZQUN6QyxJQUFJLEdBQUcsQ0FBQyxLQUFLLEVBQUU7Z0JBQ2IsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7YUFDL0I7UUFDSCxDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRCxZQUFZLENBQUMsTUFBb0I7UUFDL0IsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBUSxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxJQUFJLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNqRyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQzNELElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDdEUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQVEsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsQ0FBQztTQUNsRztRQUNELElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFBO0lBQzNCLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELHVCQUF1QjtRQUNyQixJQUFJLENBQUMsZUFBZSxHQUFHLEVBQUUsQ0FBQztRQUMxQixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELDJCQUEyQjtRQUN6QixJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFRLEVBQUUsRUFBRTtZQUM3QyxHQUFHLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztZQUN2QixJQUFJLEdBQUcsQ0FBQyxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDN0IsR0FBRyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxVQUFlLEVBQUUsRUFBRTtvQkFDekMsVUFBVSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7Z0JBQ2hDLENBQUMsQ0FBQyxDQUFDO2FBQ0o7UUFDTCxDQUFDLENBQUMsQ0FBQTtRQUNGLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQVEsRUFBRSxFQUFFO1lBQ3ZDLEdBQUcsQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1lBQ3ZCLElBQUksR0FBRyxDQUFDLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO2dCQUM3QixHQUFHLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFVBQWUsRUFBRSxFQUFFO29CQUN6QyxVQUFVLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztnQkFDaEMsQ0FBQyxDQUFDLENBQUM7YUFDSjtRQUNMLENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQzs7O1lBL2dCRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLHVCQUF1QjtnQkFDakMsdzZJQUFpRDs7YUFFbEQ7OztZQVJRLFNBQVM7WUFKVCx1QkFBdUI7WUFNdkIsZUFBZTs7O2tDQVNyQixNQUFNO29DQUNOLE1BQU07a0NBT04sS0FBSzsrQkFDTCxLQUFLO3VCQUNMLEtBQUs7NkJBQ0wsS0FBSzttQkFDTCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29uZmlndXJlV2lkZ2V0c1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jb25maWd1cmUtd2lkZ2V0cy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IHJldHJ5IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyB3aWRnZXREYXRhTW9kZWwgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL3dpZGdldC1kYXRhLW1vZGVsJztcclxuaW1wb3J0IHsgRGlhbG9nUmVmIH0gZnJvbSAnLi4vLi4vLi4vdWkta2l0L2RpYWxvZy9kaWFsb2ctcmVmJztcclxuaW1wb3J0IHsgd2lkZ2V0Q29uZmlnIH0gZnJvbSAnLi93aWRnZXQuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgU25hY2tCYXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vdWkta2l0L3NuYWNrLWJhci9zbmFjay1iYXIuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1jb25maWd1cmUtd2lkZ2V0cycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbmZpZ3VyZS13aWRnZXRzLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jb25maWd1cmUtd2lkZ2V0cy5jb21wb25lbnQubGVzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb25maWd1cmVXaWRnZXRzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xyXG5cclxuICBAT3V0cHV0KCkgd2lkZ2V0c0RhdGFNb2RpZmllZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGNsb3NlQ29uZmlndXJlV2lkZ2V0czogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgY2hlY2tib3hTdGF0dXMhOiBhbnk7XHJcbiAgc2VhcmNoOiBzdHJpbmcgPSAnJztcclxuICBjaGVja2VkQXJyYXk6IEFycmF5PHsgaW5kZXg6IG51bWJlciwgc3RhdHVzOiBudW1iZXIgfT4gPSBbXTtcclxuICBzZWxlY3RlZFdpZGdldHM6IEFycmF5PHdpZGdldERhdGFNb2RlbD4gPSBbXTtcclxuXHJcbiAgbW9kdWxlOiBcIkNPTVBMSUFOQ0VcIiB8IFwiUklTS1wiID0gJ0NPTVBMSUFOQ0UnO1xyXG4gIEBJbnB1dCgpIHNlbGVjdGVkV2lkZ2V0c0RhdGE6IGFueSA9IFtdO1xyXG4gIEBJbnB1dCgpIGRpc3BsYXllZFdpZGdldHM6IGFueSA9IFtdO1xyXG4gIEBJbnB1dCgpIHNob3dSaXNrID0gZmFsc2U7XHJcbiAgQElucHV0KCkgc2hvd0NvbXBsaWFuY2UgPSBmYWxzZTtcclxuICBASW5wdXQoKSBtb2RlID0gJ0NSRUFURSdcclxuICBub0RhdGFUZXh0ID0gJ1lvdSBoYXZlIG5vdCBjb25maWd1cmVkIGFueSB3aWRnZXRzLiBDbGljayBvbiB0aGUgPHN0cm9uZz5Db25maWd1cmUgV2lkZ2V0czwvc3Ryb25nPiBidXR0b24gdG8gYmVnaW4uJztcclxuXHJcbiAgc2VsZWN0ZWRXaWRnZXRJZHM6IGFueSA9IFtdO1xyXG4gIHN1YlJlc3BvbnNpYmlsaXRpZXNTZWxlY3RlZDogYm9vbGVhbiA9IGZhbHNlXHJcbiAgc3ViS2V5UmVzcG9uc2liaWxpdGllc1NlbGVjdGVkOiBib29sZWFuID0gZmFsc2VcclxuICBzaG93V2lkZ2V0cyA9IHRydWU7XHJcbiAgY29tcGxpYW5jZVdpZGdldHNEaXNwbGF5Q291bnQgPSA5O1xyXG4gIHJpc2tXaWRnZXRzRGlzcGxheUNvdW50ID0gMTI7XHJcblxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgZGlhbG9nOiBEaWFsb2dSZWYsXHJcbiAgICBwdWJsaWMgY29uZmlndXJlV2lkZ2V0c1NlcnZpY2U6IENvbmZpZ3VyZVdpZGdldHNTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBzbmFja0JhcjogU25hY2tCYXJTZXJ2aWNlKSB7XHJcblxyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoKSB7XHJcbiAgICBpZiAodGhpcy5tb2RlID09ICdFRElUJykge1xyXG4gICAgICB0aGlzLnNldFdpZGdldHNWaXNpYmlsaXR5VG9GYWxzZSgpXHJcbiAgICAgIHRoaXMucmlza1dpZGdldHNEaXNwbGF5Q291bnQgPSAwO1xyXG4gICAgICB0aGlzLmNvbXBsaWFuY2VXaWRnZXRzRGlzcGxheUNvdW50ID0gMDtcclxuICAgICAgY29uc3QgZmluYWxEYXRhID0gWy4uLm5ldyBTZXQodGhpcy5kaXNwbGF5ZWRXaWRnZXRzKV07XHJcbiAgICAgIGZpbmFsRGF0YS5mb3JFYWNoKChlbGVtZW50OiBhbnksIGluZGV4OiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLndpZGdldHNMaXN0LkNPTVBMSUFOQ0UuZm9yRWFjaCgoZWxlOiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChlbGUuaWQgPT0gZWxlbWVudC53aWRnZXRfY29kZSkge1xyXG4gICAgICAgICAgICBlbGUudmlzaWJpbGl0eSA9IHRydWU7XHJcbiAgICAgICAgICAgIGlmIChlbGUuc3ViV2lkZ2V0cy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgY29uc3QgZmlsdGVyRGF0YTogYW55ID0gW11cclxuICAgICAgICAgICAgICBlbGVtZW50LnN1Yl93aWRnZXRzLmZpbHRlcigoc3Vid2lkZ2V0OiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgZmlsdGVyRGF0YS5wdXNoKHN1YndpZGdldC53aWRnZXRfY29kZSk7XHJcbiAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgZWxlLnN1YldpZGdldHMuZm9yRWFjaCgoc3ViRWxlbWVudDogYW55LCBzdWJJbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZmlsdGVyRGF0YS5pbmNsdWRlcyhzdWJFbGVtZW50LmlkKSkge1xyXG4gICAgICAgICAgICAgICAgICBlbGUuc3ViV2lkZ2V0c1tzdWJJbmRleF0udmlzaWJpbGl0eSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICBlbGUuc3ViV2lkZ2V0c1tzdWJJbmRleF0udmlzaWJpbGl0eSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMuY29tcGxpYW5jZVdpZGdldHNEaXNwbGF5Q291bnQrK1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgdGhpcy53aWRnZXRzTGlzdC5SSVNLLmZvckVhY2goKGVsZTogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAoZWxlLmlkID09IGVsZW1lbnQud2lkZ2V0X2NvZGUpIHtcclxuICAgICAgICAgICAgZWxlLnZpc2liaWxpdHkgPSB0cnVlO1xyXG4gICAgICAgICAgICBpZiAoZWxlLnN1YldpZGdldHMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgIGNvbnN0IGZpbHRlckRhdGE6IGFueSA9IFtdXHJcbiAgICAgICAgICAgICAgZWxlbWVudC5zdWJfd2lkZ2V0cy5maWx0ZXIoKHN1YndpZGdldDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIGZpbHRlckRhdGEucHVzaChzdWJ3aWRnZXQud2lkZ2V0X2NvZGUpO1xyXG4gICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgIGVsZS5zdWJXaWRnZXRzLmZvckVhY2goKHN1YkVsZW1lbnQ6IGFueSwgc3ViSW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKGZpbHRlckRhdGEuaW5jbHVkZXMoc3ViRWxlbWVudC5pZCkpIHtcclxuICAgICAgICAgICAgICAgICAgZWxlLnN1YldpZGdldHNbc3ViSW5kZXhdLnZpc2liaWxpdHkgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgZWxlLnN1YldpZGdldHNbc3ViSW5kZXhdLnZpc2liaWxpdHkgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5yaXNrV2lkZ2V0c0Rpc3BsYXlDb3VudCsrXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBkYXRhID0gWy4uLm5ldyBTZXQodGhpcy5zZWxlY3RlZFdpZGdldHNEYXRhKV07XHJcbiAgICBkYXRhLmZvckVhY2goKGVsZW1lbnQ6IGFueSwgaW5kZXg6IGFueSkgPT4ge1xyXG4gICAgICB0aGlzLndpZGdldHNMaXN0LkNPTVBMSUFOQ0UuZm9yRWFjaCgoZWxlOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAoZWxlLmlkID09IGVsZW1lbnQud2lkZ2V0X2NvZGUgJiYgZWxlbWVudC5zdGF0ZSA9PSAnQUNUSVZFJykge1xyXG4gICAgICAgICAgZWxlLnZhbHVlID0gdHJ1ZTtcclxuICAgICAgICAgIGlmIChlbGUuc3ViV2lkZ2V0cy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGZpbHRlckRhdGE6IGFueSA9IFtdXHJcbiAgICAgICAgICAgIGVsZW1lbnQuc3ViX3dpZGdldHMuZmlsdGVyKChzdWJ3aWRnZXQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgIGlmIChzdWJ3aWRnZXQuc3RhdGUgPT0gJ0FDVElWRScpIHtcclxuICAgICAgICAgICAgICAgIGZpbHRlckRhdGEucHVzaChzdWJ3aWRnZXQud2lkZ2V0X2NvZGUpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIGVsZS5zdWJXaWRnZXRzLmZvckVhY2goKHN1YkVsZW1lbnQ6IGFueSwgc3ViSW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgICAgICAgICAgIGlmIChmaWx0ZXJEYXRhLmluY2x1ZGVzKHN1YkVsZW1lbnQuaWQpKSB7XHJcbiAgICAgICAgICAgICAgICBlbGUuc3ViV2lkZ2V0c1tzdWJJbmRleF0udmFsdWUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBlbGUuc3ViV2lkZ2V0c1tzdWJJbmRleF0udmFsdWUgPSBmYWxzZTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRXaWRnZXRzLnB1c2goZWxlKTtcclxuXHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgICB0aGlzLndpZGdldHNMaXN0LlJJU0suZm9yRWFjaCgoZWxlOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAoZWxlLmlkID09IGVsZW1lbnQud2lkZ2V0X2NvZGUgJiYgZWxlbWVudC5zdGF0ZSA9PSAnQUNUSVZFJykge1xyXG4gICAgICAgICAgZWxlLnZhbHVlID0gdHJ1ZTtcclxuICAgICAgICAgIGlmIChlbGUuc3ViV2lkZ2V0cy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGZpbHRlckRhdGE6IGFueSA9IFtdXHJcbiAgICAgICAgICAgIGVsZW1lbnQuc3ViX3dpZGdldHMuZmlsdGVyKChzdWJ3aWRnZXQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgIGlmIChzdWJ3aWRnZXQuc3RhdGUgPT0gJ0FDVElWRScpIHtcclxuICAgICAgICAgICAgICAgIGZpbHRlckRhdGEucHVzaChzdWJ3aWRnZXQud2lkZ2V0X2NvZGUpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIGVsZS5zdWJXaWRnZXRzLmZvckVhY2goKHN1YkVsZW1lbnQ6IGFueSwgc3ViSW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgICAgICAgICAgIGlmIChmaWx0ZXJEYXRhLmluY2x1ZGVzKHN1YkVsZW1lbnQuaWQpKSB7XHJcbiAgICAgICAgICAgICAgICBlbGUuc3ViV2lkZ2V0c1tzdWJJbmRleF0udmFsdWUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBlbGUuc3ViV2lkZ2V0c1tzdWJJbmRleF0udmFsdWUgPSBmYWxzZTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRXaWRnZXRzLnB1c2goZWxlKTtcclxuXHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG5cclxuICAgIH0pO1xyXG4gICAgdGhpcy5tb2R1bGUgPSAodGhpcy5zaG93Q29tcGxpYW5jZSkgPyAnQ09NUExJQU5DRScgOiAnUklTSyc7XHJcbiAgICB0aGlzLnNldFNlbGVjdGVkV2lkZ2V0cygpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcblxyXG4gIH1cclxuXHJcblxyXG4gIHdpZGdldHNMaXN0ID0ge1xyXG4gICAgQ09NUExJQU5DRTogW1xyXG4gICAgICB7XHJcbiAgICAgICAgdGl0bGU6ICdPdmVydmlldycsXHJcbiAgICAgICAgaWQ6ICdvdmVydmlldycsXHJcbiAgICAgICAgZGVzY3JpcHRpb246ICdPdmVydmlldyBzaG93cyB0aGUgcGVyZm9ybWFuY2Ugb2YgcmVzcG9uc2liaWxpdGllcyBhbmQgUmVzcG9uc2liaWxpdHkgQ2F0ZWdvcmllcy4nLFxyXG4gICAgICAgIHdpZGdldEltYWdlOiAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy9jb25maWd1cmUtd2lkZ2V0L2Fzc2V0cy9pbWFnZXMvb3ZlcnZpZXcucG5nJyxcclxuICAgICAgICB2YWx1ZTogZmFsc2UsXHJcbiAgICAgICAgdmlzaWJpbGl0eTp0cnVlLFxyXG4gICAgICAgIG1vZHVsZTogJ0NPTVBMSUFOQ0UnLFxyXG4gICAgICAgIHN1YldpZGdldHM6IFtdXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICB0aXRsZTogJ1Jlc3BvbnNpYmlsaXR5IENhbGVuZGFyJyxcclxuICAgICAgICBpZDogJ2NvbXBsaWFuY2VfY2FsZW5kYXJfZmxhZycsXHJcbiAgICAgICAgZGVzY3JpcHRpb246ICdUaGUgUmVzcG9uc2liaWxpdHkgQ2FsZW5kYXIgc2hvd3MgdGhlIGR1ZSBkYXRlcyBvZiByZXNwb25zaWJpbGl0aWVzIGluIGEgY2FsZW5kYXIgZm9ybWF0LiBUaGUgcmVzcG9uc2liaWxpdGllcyBhcmUgY29sb3IgY29kZWQgdG8gcmVmbGVjdCB0aGUgc3RhdHVzIG9mIHRoZSByZXNwb25zaWJpbGl0aWVzLicsXHJcbiAgICAgICAgd2lkZ2V0SW1hZ2U6ICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL2NvbmZpZ3VyZS13aWRnZXQvYXNzZXRzL2ltYWdlcy9yZXNwb25zaWJpbGl0eS1jYWxlbmRlci5wbmcnLFxyXG4gICAgICAgIHZhbHVlOiBmYWxzZSxcclxuICAgICAgICB2aXNpYmlsaXR5OnRydWUsXHJcbiAgICAgICAgbW9kdWxlOiAnQ09NUExJQU5DRScsXHJcbiAgICAgICAgc3ViV2lkZ2V0czogW11cclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIHRpdGxlOiAnUmVzcG9uc2liaWxpdHkgQ2VudGVyIE92ZXJ2aWV3JyxcclxuICAgICAgICBpZDogJ3Jlc3BvbnNpYmlsaXR5X2NlbnRlcl9vdmVydmlld19mbGFnJyxcclxuICAgICAgICBkZXNjcmlwdGlvbjogJ1RoZSBSZXNwb25zaWJpbGl0eSBDZW50ZXIgT3ZlcnZpZXcgc2hvd3MgdGhlIHBlcmZvcm1hbmNlIG9mIHJlc3BvbnNpYmlsaXRpZXMgYW5kIFJlc3BvbnNpYmlsaXR5IENlbnRlcnMuJyxcclxuICAgICAgICB3aWRnZXRJbWFnZTogJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvY29uZmlndXJlLXdpZGdldC9hc3NldHMvaW1hZ2VzL3Jlc3BvbnNpYmlsaXR5LWNlbnRlci1vdmVydmlldy5wbmcnLFxyXG4gICAgICAgIHZhbHVlOiBmYWxzZSxcclxuICAgICAgICB2aXNpYmlsaXR5OnRydWUsXHJcbiAgICAgICAgbW9kdWxlOiAnQ09NUExJQU5DRScsXHJcbiAgICAgICAgc3ViV2lkZ2V0czogW11cclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIHRpdGxlOiAnUmVzcG9uc2liaWxpdGllcycsXHJcbiAgICAgICAgaWQ6ICdteV9yZXNwb25zaWJpbGl0aWVzJyxcclxuICAgICAgICBkZXNjcmlwdGlvbjogJ1RoaXMgd2lkZ2V0IHNob3dzIHRoZSBwZXJmb3JtYW5jZSBvZiB0aGUgcmVzcG9uc2liaWxpdGllcyB0aGF0IHlvdSBhcmUgcmVxdWlyZWQgdG8gY29tcGxldGUsIHRoZSByZXNwb25zaWJpbGl0aWVzIHRoYXQgeW91IGFyZSByZXZpZXdpbmcgYW5kIHRoZSByZXNwb25zaWJpbGl0aWVzIHRoYXQgeW91IGFyZSBvdmVyc2VlaW5nLicsXHJcbiAgICAgICAgd2lkZ2V0SW1hZ2U6ICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL2NvbmZpZ3VyZS13aWRnZXQvYXNzZXRzL2ltYWdlcy9teS1yZXNwb25zaWJpbGl0aWVzLnBuZycsXHJcbiAgICAgICAgdGFiT3B0aW9uOiB0cnVlLFxyXG4gICAgICAgIHZhbHVlOiBmYWxzZSxcclxuICAgICAgICB2aXNpYmlsaXR5OnRydWUsXHJcbiAgICAgICAgbW9kdWxlOiAnQ09NUExJQU5DRScsXHJcbiAgICAgICAgc3ViV2lkZ2V0czogW1xyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICB0aXRsZTogJ015IFJlc3BvbnNpYmlsaXRpZXMnLFxyXG4gICAgICAgICAgICBpZDogJ215X3Jlc3BvbnNpYmlsaXR5X2ZsYWcnLFxyXG4gICAgICAgICAgICB2YWx1ZTogZmFsc2UsXHJcbiAgICAgICAgICAgIHZpc2liaWxpdHk6dHJ1ZSxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIHRpdGxlOiAnSeKAmW0gUmV2aWV3aW5nJyxcclxuICAgICAgICAgICAgaWQ6ICdyZXZpZXdlcl9yZXNwb25zaWJpbGl0eV9mbGFnJyxcclxuICAgICAgICAgICAgdmFsdWU6IGZhbHNlLFxyXG4gICAgICAgICAgICB2aXNpYmlsaXR5OnRydWUsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICB0aXRsZTogJ0nigJltIE92ZXJzZWVpbmcnLFxyXG4gICAgICAgICAgICBpZDogJ2NjX3Jlc3BvbnNpYmlsaXR5X2ZsYWcnLFxyXG4gICAgICAgICAgICB2YWx1ZTogZmFsc2UsXHJcbiAgICAgICAgICAgIHZpc2liaWxpdHk6dHJ1ZSxcclxuICAgICAgICAgIH1cclxuICAgICAgICBdXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICB0aXRsZTogJ0tleSBSZXNwb25zaWJpbGl0aWVzJyxcclxuICAgICAgICBpZDogJ2tleV9yZXNwb25zaWJpbGl0aWVzJyxcclxuICAgICAgICBkZXNjcmlwdGlvbjogJ1RoaXMgd2lkZ2V0IHNob3dzIHRoZSBwZXJmb3JtYW5jZSBvZiBrZXkgcmVzcG9uc2liaWxpdGllcyB0aGF0IHlvdSBhcmUgcmVxdWlyZWQgdG8gY29tcGxldGUsIHRoYXQgeW91IGFyZSByZXZpZXdpbmcsIHRoYXQgeW91IGFyZSBvdmVyc2VlaW5nIGFuZCB0aGF0IHlvdSBoYXZlIGFzc2lnbmVkIHRvIGFub3RoZXIgcGVyc29uLicsXHJcbiAgICAgICAgd2lkZ2V0SW1hZ2U6ICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL2NvbmZpZ3VyZS13aWRnZXQvYXNzZXRzL2ltYWdlcy9rZXktcmVzcG9uc2liaWxpdGllcy5wbmcnLFxyXG4gICAgICAgIHRhYk9wdGlvbjogdHJ1ZSxcclxuICAgICAgICB2YWx1ZTogZmFsc2UsXHJcbiAgICAgICAgdmlzaWJpbGl0eTp0cnVlLFxyXG4gICAgICAgIG1vZHVsZTogJ0NPTVBMSUFOQ0UnLFxyXG4gICAgICAgIHN1YldpZGdldHM6IFtcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgdGl0bGU6ICdPdmVydmlldycsXHJcbiAgICAgICAgICAgIGlkOiAna2V5X3Jlc3BvbnNpYmlsaXRpZXNfb3ZlcnZpZXdfZmxhZycsXHJcbiAgICAgICAgICAgIHZhbHVlOiBmYWxzZSxcclxuICAgICAgICAgICAgdmlzaWJpbGl0eTp0cnVlLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgdGl0bGU6ICdNeSBSZXNwb25zaWJpbGl0aWVzJyxcclxuICAgICAgICAgICAgaWQ6ICdrZXlfbXlfcmVzcG9uc2liaWxpdGllc19mbGFnJyxcclxuICAgICAgICAgICAgdmFsdWU6IGZhbHNlLFxyXG4gICAgICAgICAgICB2aXNpYmlsaXR5OnRydWUsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICB0aXRsZTogJ0nigJltIFJldmlld2luZycsXHJcbiAgICAgICAgICAgIGlkOiAna2V5X2lfYW1fcmV2aWV3aW5nX2ZsYWcnLFxyXG4gICAgICAgICAgICB2YWx1ZTogZmFsc2UsXHJcbiAgICAgICAgICAgIHZpc2liaWxpdHk6dHJ1ZSxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIHRpdGxlOiAnSeKAmW0gT3ZlcnNlZWluZycsXHJcbiAgICAgICAgICAgIGlkOiAna2V5X2lfYW1fb3ZlcnNlZWluZ19mbGFnJyxcclxuICAgICAgICAgICAgdmFsdWU6IGZhbHNlLFxyXG4gICAgICAgICAgICB2aXNpYmlsaXR5OnRydWUsXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgXVxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgdGl0bGU6ICdUcmVuZCBBbmFseXNpcycsXHJcbiAgICAgICAgaWQ6ICd0cmVuZF9hbmFseXNpc19mbGFnJyxcclxuICAgICAgICBkZXNjcmlwdGlvbjogJ1RoZSBUcmVuZCBBbmFseXNpcyBpcyBhIGdyYXBoaWNhbCByZXByZXNlbnRhdGlvbiBvZiB0aGUgcGVyZm9ybWFuY2Ugb2YgcmVzcG9uc2liaWxpdGllcyBvdmVyIGEgcGVyaW9kLicsXHJcbiAgICAgICAgd2lkZ2V0SW1hZ2U6ICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL2NvbmZpZ3VyZS13aWRnZXQvYXNzZXRzL2ltYWdlcy90cmVuZC1hbmFseXNpcy5wbmcnLFxyXG4gICAgICAgIHZhbHVlOiBmYWxzZSxcclxuICAgICAgICB2aXNpYmlsaXR5OnRydWUsXHJcbiAgICAgICAgbW9kdWxlOiAnQ09NUExJQU5DRScsXHJcbiAgICAgICAgc3ViV2lkZ2V0czogW11cclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIHRpdGxlOiAnV29ya3Jvb20gVXBkYXRlcycsXHJcbiAgICAgICAgaWQ6ICd3b3Jrcm9vbV9hbGVydF9mbGFnJyxcclxuICAgICAgICBkZXNjcmlwdGlvbjogJ1RoZSBSZXNwb25zaWJpbGl0eSBXb3Jrcm9vbSBzaG93cyB1cGRhdGVzIGZyb20gdGhlIFJlc3BvbnNpYmlsaXR5IFdvcmtyb29tcy4gQSBSZXNwb25zaWJpbGl0eSBXb3Jrcm9vbSBleGlzdHMgZm9yIGFsbCByZXNwb25zaWJpbGl0aWVzLicsXHJcbiAgICAgICAgd2lkZ2V0SW1hZ2U6ICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL2NvbmZpZ3VyZS13aWRnZXQvYXNzZXRzL2ltYWdlcy93b3Jrcm9vbS11cGRhdGVzLnBuZycsXHJcbiAgICAgICAgdmFsdWU6IGZhbHNlLFxyXG4gICAgICAgIHZpc2liaWxpdHk6dHJ1ZSxcclxuICAgICAgICBtb2R1bGU6ICdDT01QTElBTkNFJyxcclxuICAgICAgICBzdWJXaWRnZXRzOiBbXVxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgdGl0bGU6ICdSZWNlbnQgQWN0aXZpdGllcycsXHJcbiAgICAgICAgaWQ6ICdyZWNlbnRfYWN0aXZpdHlfZmxhZycsXHJcbiAgICAgICAgZGVzY3JpcHRpb246ICdUaGlzIGlzIGEgY2hyb25vbG9naWNhbCB2aWV3IG9mIHRoZSByZWNlbnQgdXBkYXRlcyBvZiByZXNwb25zaWJpbGl0aWVzLicsXHJcbiAgICAgICAgd2lkZ2V0SW1hZ2U6ICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL2NvbmZpZ3VyZS13aWRnZXQvYXNzZXRzL2ltYWdlcy9yZWNlbnQtYWN0aXZpdGllcy5wbmcnLFxyXG4gICAgICAgIHZhbHVlOiBmYWxzZSxcclxuICAgICAgICB2aXNpYmlsaXR5OnRydWUsXHJcbiAgICAgICAgbW9kdWxlOiAnQ09NUExJQU5DRScsXHJcbiAgICAgICAgc3ViV2lkZ2V0czogW11cclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIHRpdGxlOiAnRXhjZXB0aW9uIFN1bW1hcnknLFxyXG4gICAgICAgIGlkOiAnZXhjZXB0aW9uX3N1bW1hcnlfZmxhZycsXHJcbiAgICAgICAgZGVzY3JpcHRpb246ICdFeGNlcHRpb25zIFN1bW1hcnkgc2hvdyB0aGUgbnVtYmVyIG9mIHJlc3BvbnNpYmlsaXRpZXMgdGhhdCBhcmUgZWl0aGVyIG5vdCBhY2NlcHRlZCwgbm90IGNvbXBsZXRlZCBvciBkZWxldGVkLicsXHJcbiAgICAgICAgd2lkZ2V0SW1hZ2U6ICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL2NvbmZpZ3VyZS13aWRnZXQvYXNzZXRzL2ltYWdlcy9leGNlcHRpb24tc3VtbWFyeS5wbmcnLFxyXG4gICAgICAgIHZhbHVlOiBmYWxzZSxcclxuICAgICAgICB2aXNpYmlsaXR5OnRydWUsXHJcbiAgICAgICAgbW9kdWxlOiAnQ09NUExJQU5DRScsXHJcbiAgICAgICAgc3ViV2lkZ2V0czogW11cclxuICAgICAgfVxyXG4gICAgXSxcclxuICAgIFJJU0s6IFtcclxuICAgICAge1xyXG4gICAgICAgIHRpdGxlOiAnUmlzayBPdmVydmlldycsXHJcbiAgICAgICAgaWQ6ICdyaXNrX292ZXJ2aWV3JyxcclxuICAgICAgICBkZXNjcmlwdGlvbjogJ1RoaXMgd2lkZ2V0IHNob3dzIHRoZSBudW1iZXIgYW5kIHBlcmNlbnRhZ2Ugb2Ygcmlza3Mgd2l0aGluIGVhY2ggcmlzayByZXNwb25zZSBzdHJhdGVneS4nLFxyXG4gICAgICAgIHdpZGdldEltYWdlOiAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy9jb25maWd1cmUtd2lkZ2V0L2Fzc2V0cy9pbWFnZXMvcmlzay1vdmVydmlldy5wbmcnLFxyXG4gICAgICAgIHZhbHVlOiBmYWxzZSxcclxuICAgICAgICB2aXNpYmlsaXR5OnRydWUsXHJcbiAgICAgICAgbW9kdWxlOiAnUklTSycsXHJcbiAgICAgICAgc3ViV2lkZ2V0czogW11cclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIHRpdGxlOiAnUmlzayBNZXRyaWNzJyxcclxuICAgICAgICBpZDogJ3Jpc2tfbWV0cmljcycsXHJcbiAgICAgICAgZGVzY3JpcHRpb246ICdUaGlzIHdpZGdldCBzaG93cyB0aGUgbnVtYmVyIG9mIHJpc2tzIHdpdGhpbiBlYWNoIHJpc2sgYXBwZXRpdGUsIHRoZSBudW1iZXIgb2Ygcmlza3MgdGhhdCBleGNlZWQgdGhlIHJpc2sgYXBwZXRpdGUsIHRoZSBudW1iZXIgb2Ygcmlza3MgdGhhdCBleGNlZWQgdGhlIHJpc2sgdG9sZXJhbmNlLCB0aGUgbnVtYmVyIG9mIHJpc2tzIHdpdGhpbiBlYWNoIHJpc2sgcmF0aW5nLCBhbmQgdGhlIG51bWJlciBvZiByaXNrcyB0aGF0IGRvIG5vdCBoYXZlIGFueSBsaW5rZWQgY29udHJvbHMuJyxcclxuICAgICAgICB3aWRnZXRJbWFnZTogJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvY29uZmlndXJlLXdpZGdldC9hc3NldHMvaW1hZ2VzL2FwcGV0aXRlLXRvbGVyYW5jZS5wbmcnLFxyXG4gICAgICAgIHZhbHVlOiBmYWxzZSxcclxuICAgICAgICB2aXNpYmlsaXR5OnRydWUsXHJcbiAgICAgICAgbW9kdWxlOiAnUklTSycsXHJcbiAgICAgICAgc3ViV2lkZ2V0czogW1xyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICB0aXRsZTogJ1Jpc2sgQXBwZXRpdGUgJiBUb2xlcmFuY2UnLFxyXG4gICAgICAgICAgICBpZDogJ3Jpc2tfYXBwZXRpdGVfdG9sZXJhbmNlJyxcclxuICAgICAgICAgICAgdmFsdWU6IGZhbHNlLFxyXG4gICAgICAgICAgICB2aXNpYmlsaXR5OnRydWUsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICB0aXRsZTogJ1Jpc2sgUmF0aW5ncycsXHJcbiAgICAgICAgICAgIGlkOiAncmlza19yYXRpbmdzJyxcclxuICAgICAgICAgICAgdmFsdWU6IGZhbHNlLFxyXG4gICAgICAgICAgICB2aXNpYmlsaXR5OnRydWUsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICB0aXRsZTogJ1Jpc2tzIFdpdGhvdXQgQ29udHJvbHMnLFxyXG4gICAgICAgICAgICBpZDogJ3Jpc2tzX3dpdGhvdXRfY29udHJvbHMnLFxyXG4gICAgICAgICAgICB2YWx1ZTogZmFsc2UsXHJcbiAgICAgICAgICAgIHZpc2liaWxpdHk6dHJ1ZSxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIHRpdGxlOiAnRXhjZWVkcyBSaXNrIFRvbGVyYW5jZScsXHJcbiAgICAgICAgICAgIGlkOiAnZXhjZWVkc19yaXNrX3RvbGVyYW5jZScsXHJcbiAgICAgICAgICAgIHZhbHVlOiBmYWxzZSxcclxuICAgICAgICAgICAgdmlzaWJpbGl0eTp0cnVlLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICBdXHJcbiAgICAgIH0sXHJcblxyXG4gICAgICB7XHJcbiAgICAgICAgdGl0bGU6ICdJbmhlcmVudCBSaXNrIFJhdGluZyBieSBSZXNwb25zaWJpbGl0eSBDZW50ZXJzICcsXHJcbiAgICAgICAgaWQ6ICdpbmhlcmVudF9yaXNrX3JhdGluZ19ieV9yZXNwb25zaWJpbGl0eV9jZW50ZXJzJyxcclxuICAgICAgICBkZXNjcmlwdGlvbjogJ1RoaXMgd2lkZ2V0IHNob3dzIHRoZSBudW1iZXIgb2Ygcmlza3Mgd2l0aGluIGVhY2ggaW5oZXJlbnQgcmlzayByYXRpbmcsIGdyb3VwZWQgYWNjb3JkaW5nIHRvIHRoZcKgUmVzcG9uc2liaWxpdHkgQ2VudGVywqBleHBvc2VkIHRvIHRoZSByaXNrLicsXHJcbiAgICAgICAgd2lkZ2V0SW1hZ2U6ICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL2NvbmZpZ3VyZS13aWRnZXQvYXNzZXRzL2ltYWdlcy9pbmhlcmVudC1SQy5wbmcnLFxyXG4gICAgICAgIHZhbHVlOiBmYWxzZSxcclxuICAgICAgICB2aXNpYmlsaXR5OnRydWUsXHJcbiAgICAgICAgbW9kdWxlOiAnUklTSycsXHJcbiAgICAgICAgc3ViV2lkZ2V0czogW11cclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIHRpdGxlOiAnUmVzaWR1YWwgUmlzayBSYXRpbmcgYnkgUmVzcG9uc2liaWxpdHkgQ2VudGVycyAnLFxyXG4gICAgICAgIGlkOiAncmVzaWR1YWxfcmlza19yYXRpbmdfYnlfcmVzcG9uc2liaWxpdHlfY2VudGVycycsXHJcbiAgICAgICAgZGVzY3JpcHRpb246ICdUaGlzIHdpZGdldCBzaG93cyB0aGUgbnVtYmVyIG9mIHJpc2tzIHdpdGhpbiBlYWNoIHJlc2lkdWFsIHJpc2sgcmF0aW5nLCBncm91cGVkIGFjY29yZGluZyB0byB0aGXCoFJlc3BvbnNpYmlsaXR5IENlbnRlcsKgZXhwb3NlZCB0byB0aGUgcmlzay4nLFxyXG4gICAgICAgIHdpZGdldEltYWdlOiAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy9jb25maWd1cmUtd2lkZ2V0L2Fzc2V0cy9pbWFnZXMvcmVzaWR1YWwtUkMucG5nJyxcclxuICAgICAgICB2YWx1ZTogZmFsc2UsXHJcbiAgICAgICAgdmlzaWJpbGl0eTp0cnVlLFxyXG4gICAgICAgIG1vZHVsZTogJ1JJU0snLFxyXG4gICAgICAgIHN1YldpZGdldHM6IFtdXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICB0aXRsZTogJ1Jpc2sgQ2F0ZWdvcnkgT3ZlcnZpZXcnLFxyXG4gICAgICAgIGlkOiAncmlza19jYXRlZ29yeV9vdmVydmlldycsXHJcbiAgICAgICAgZGVzY3JpcHRpb246ICdUaGlzIHdpZGdldHMgc2hvd3MgdGhlwqBudW1iZXIgb2Ygcmlza3Mgd2l0aGluIGVhY2ggc3RhdHVzLCBncm91cGVkIGFjY29yZGluZyB0byB0aGUgUmlzayBDYXRlZ29yeSB0aGUgcmlzayBpcyBhc3NpZ25lZCB0by4nLFxyXG4gICAgICAgIHdpZGdldEltYWdlOiAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy9jb25maWd1cmUtd2lkZ2V0L2Fzc2V0cy9pbWFnZXMvcmlzay1jYXRlZ29yeS1vdmVydmlldy5wbmcnLFxyXG4gICAgICAgIHZhbHVlOiBmYWxzZSxcclxuICAgICAgICB2aXNpYmlsaXR5OnRydWUsXHJcbiAgICAgICAgbW9kdWxlOiAnUklTSycsXHJcbiAgICAgICAgc3ViV2lkZ2V0czogW11cclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIHRpdGxlOiAnUmlzayBIZWF0bWFwJyxcclxuICAgICAgICBpZDogJ3Jpc2tfaGVhdG1hcCcsXHJcbiAgICAgICAgZGVzY3JpcHRpb246ICdUaGXCoFJpc2sgSGVhdG1hcCBkaXNwbGF5cyB0aGUgcmlzayBtYXRyaXggZm9yIGFueSB0d28gcmlzayBmYWN0b3JzLicsXHJcbiAgICAgICAgd2lkZ2V0SW1hZ2U6ICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL2NvbmZpZ3VyZS13aWRnZXQvYXNzZXRzL2ltYWdlcy9yaXNrLWhlYXRtYXAucG5nJyxcclxuICAgICAgICB2YWx1ZTogZmFsc2UsXHJcbiAgICAgICAgdmlzaWJpbGl0eTp0cnVlLFxyXG4gICAgICAgIG1vZHVsZTogJ1JJU0snLFxyXG4gICAgICAgIHN1YldpZGdldHM6IFtdXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICB0aXRsZTogJ0luaGVyZW50IFJpc2sgUmF0aW5nIGJ5IENhdGVnb3JpZXMnLFxyXG4gICAgICAgIGlkOiAnaW5oZXJlbnRfcmlza19yYXRpbmdfYnlfY2F0ZWdvcmllcycsXHJcbiAgICAgICAgZGVzY3JpcHRpb246ICdUaGlzIHdpZGdldCBzaG93cyB0aGUgbnVtYmVyIG9mIHJpc2tzIHdpdGhpbiBlYWNoIGluaGVyZW50IHJpc2sgcmF0aW5nLCBncm91cGVkIGFjY29yZGluZyB0byB0aGUgUmlzayBDYXRlZ29yecKgdGhhdMKgdGhlIHJpc2sgaXMgYXNzaWduZWQgdG8uJyxcclxuICAgICAgICB3aWRnZXRJbWFnZTogJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvY29uZmlndXJlLXdpZGdldC9hc3NldHMvaW1hZ2VzL2luaGVyZW50LWNhdGVnb3JpZXMucG5nJyxcclxuICAgICAgICB2YWx1ZTogZmFsc2UsXHJcbiAgICAgICAgdmlzaWJpbGl0eTp0cnVlLFxyXG4gICAgICAgIG1vZHVsZTogJ1JJU0snLFxyXG4gICAgICAgIHN1YldpZGdldHM6IFtdXHJcbiAgICAgIH0sXHJcblxyXG4gICAgICB7XHJcbiAgICAgICAgdGl0bGU6ICdSZXNpZHVhbCBSaXNrIFJhdGluZyBieSBDYXRlZ29yaWVzJyxcclxuICAgICAgICBpZDogJ3Jlc2lkdWFsX3Jpc2tfcmF0aW5nX2J5X2NhdGVnb3JpZXMnLFxyXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnVGhpcyB3aWRnZXQgc2hvd3MgdGhlIG51bWJlciBvZiByaXNrcyB3aXRoaW4gZWFjaCByZXNpZHVhbCByaXNrIHJhdGluZywgZ3JvdXBlZCBhY2NvcmRpbmcgdG8gdGhlIFJpc2sgQ2F0ZWdvcnnCoHRoYXTCoHRoZSByaXNrIGlzIGFzc2lnbmVkIHRvLicsXHJcbiAgICAgICAgd2lkZ2V0SW1hZ2U6ICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL2NvbmZpZ3VyZS13aWRnZXQvYXNzZXRzL2ltYWdlcy9yZXNpZHVhbC1jYXRlZ29yaWVzLnBuZycsXHJcbiAgICAgICAgdmFsdWU6IGZhbHNlLFxyXG4gICAgICAgIHZpc2liaWxpdHk6dHJ1ZSxcclxuICAgICAgICBtb2R1bGU6ICdSSVNLJyxcclxuICAgICAgICBzdWJXaWRnZXRzOiBbXVxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgdGl0bGU6ICdJbmhlcmVudCBSaXNrIFJhdGluZyBUcmVuZCBieSBSZXNwb25zaWJpbGl0eSBDZW50ZXJzJyxcclxuICAgICAgICBpZDogJ2luaGVyZW50X3Jpc2tfcmF0aW5nX3RyZW5kX2J5X3Jlc3BvbnNpYmlsaXR5X2NlbnRlcnMnLFxyXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnVGhpcyB3aWRnZXQgaXMgYSBncmFwaGljYWwgcmVwcmVzZW50YXRpb24gb2YgdGhlIG51bWJlciBvZiByaXNrcyB3aXRoaW4gZWFjaCBpbmhlcmVudCByaXNrIHJhdGluZywgZ3JvdXBlZCBhY2NvcmRpbmcgdG8gdGhlIFJlc3BvbnNpYmlsaXR5IENlbnRlciBleHBvc2VkIHRvIHRoZSByaXNrLicsXHJcbiAgICAgICAgd2lkZ2V0SW1hZ2U6ICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL2NvbmZpZ3VyZS13aWRnZXQvYXNzZXRzL2ltYWdlcy9pbmhlcmVudC10cmVuZC5wbmcnLFxyXG4gICAgICAgIHZhbHVlOiBmYWxzZSxcclxuICAgICAgICB2aXNpYmlsaXR5OnRydWUsXHJcbiAgICAgICAgbW9kdWxlOiAnUklTSycsXHJcbiAgICAgICAgc3ViV2lkZ2V0czogW11cclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIHRpdGxlOiAnUmVzaWR1YWwgUmlzayBSYXRpbmcgVHJlbmQgYnkgUmVzcG9uc2liaWxpdHkgQ2VudGVycycsXHJcbiAgICAgICAgaWQ6ICdyZXNpZHVhbF9yaXNrX3JhdGluZ190cmVuZF9ieV9yZXNwb25zaWJpbGl0eV9jZW50ZXJzJyxcclxuICAgICAgICBkZXNjcmlwdGlvbjogJ1RoaXMgd2lkZ2V0IGlzIGEgZ3JhcGhpY2FsIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBudW1iZXIgb2Ygcmlza3Mgd2l0aGluIGVhY2ggcmVzaWR1YWwgcmlzayByYXRpbmcsIGdyb3VwZWQgYWNjb3JkaW5nIHRvIHRoZSBSZXNwb25zaWJpbGl0eSBDZW50ZXIgZXhwb3NlZCB0byB0aGUgcmlzay4nLFxyXG4gICAgICAgIHdpZGdldEltYWdlOiAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy9jb25maWd1cmUtd2lkZ2V0L2Fzc2V0cy9pbWFnZXMvcmVzaWR1YWwtdHJlbmQucG5nJyxcclxuICAgICAgICB2YWx1ZTogZmFsc2UsXHJcbiAgICAgICAgdmlzaWJpbGl0eTp0cnVlLFxyXG4gICAgICAgIG1vZHVsZTogJ1JJU0snLFxyXG4gICAgICAgIHN1YldpZGdldHM6IFtdXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICB0aXRsZTogJ1Jpc2sgUmF0aW5nIFRyZW5kIGJ5IENhdGVnb3JpZXMnLFxyXG4gICAgICAgIGlkOiAncmlza19yYXRpbmdfdHJlbmRfYnlfY2F0ZWdvcmllcycsXHJcbiAgICAgICAgZGVzY3JpcHRpb246ICdUaGlzIHdpZGdldHMgaXMgYSB0cmVuZCBjaGFydCB0aGF0IHNob3dzIHRoZSBpbmhlcmVudCBhbmQgcmVzaWR1YWwgcmlzayByYXRpbmcgdHJlbmQgYWNyb3NzIHRoZSBkaWZmZXJlbnQgUmlzayBDYXRlZ29yaWVzLicsXHJcbiAgICAgICAgd2lkZ2V0SW1hZ2U6ICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL2NvbmZpZ3VyZS13aWRnZXQvYXNzZXRzL2ltYWdlcy9yaXNrLXRyZW5kLnBuZycsXHJcbiAgICAgICAgdmFsdWU6IGZhbHNlLFxyXG4gICAgICAgIHZpc2liaWxpdHk6dHJ1ZSxcclxuICAgICAgICBtb2R1bGU6ICdSSVNLJyxcclxuICAgICAgICBzdWJXaWRnZXRzOiBbXVxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgdGl0bGU6ICdUb3AgNSBSaXNrIFJhdGluZ3MnLFxyXG4gICAgICAgIGlkOiAndG9wXzVfcmVzaWR1YWxfcmlza19yYXRpbmdzJyxcclxuICAgICAgICBkZXNjcmlwdGlvbjogJ1RoaXMgd2lkZ2V0cyBzaG93cyB0aHMgdG9wIGZpdmUgcmlza3Mgd2l0aCB0aGUgaGlnaGVzdCByaXNrIHJhdGluZy4nLFxyXG4gICAgICAgIHdpZGdldEltYWdlOiAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy9jb25maWd1cmUtd2lkZ2V0L2Fzc2V0cy9pbWFnZXMvNS1yaXNrLXJhdGluZ3MucG5nJyxcclxuICAgICAgICB2YWx1ZTogZmFsc2UsXHJcbiAgICAgICAgdmlzaWJpbGl0eTp0cnVlLFxyXG4gICAgICAgIG1vZHVsZTogJ1JJU0snLFxyXG4gICAgICAgIHN1YldpZGdldHM6IFtdXHJcbiAgICAgIH1cclxuICAgIF1cclxuICB9XHJcblxyXG4gIHNlbGVjdFdpZGdldChldmVudDogYW55LCBtb2R1bGU6ICdDT01QTElBTkNFJyB8ICdSSVNLJywgd2lkZ2V0SWQ6IHN0cmluZywgc3ViV2lkZ2V0SWQ/OiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IHdpZGdldEluZGV4ID0gdGhpcy53aWRnZXRzTGlzdFttb2R1bGVdLmZpbmRJbmRleCgoZWxlOiBhbnkpID0+IGVsZS5pZCA9PSB3aWRnZXRJZCk7XHJcbiAgICBjb25zdCBpc1N1YldpZGdldEFkZGFibGUgPSB0aGlzLnNlbGVjdGVkV2lkZ2V0cy5maW5kSW5kZXgoKCB3aWRnZXQ6IGFueSkgPT4gd2lkZ2V0LmlkID09PSB3aWRnZXRJZCApXHJcbiAgICBpZiAoZXZlbnQpIHtcclxuICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRXaWRnZXRzLmxlbmd0aCA+PSAxMCAmJiAhKHN1YldpZGdldElkICYmIGlzU3ViV2lkZ2V0QWRkYWJsZSA+PSAwKSkge1xyXG4gICAgICAgIHRoaXMuc25hY2tCYXIuc2hvdygnWW91IGNhbm5vdCBhZGQgbW9yZSB0aGFuIDEwIHdpZGdldHMuJyk7XHJcbiAgICAgICAgdGhpcy5zaG93V2lkZ2V0cyA9IGZhbHNlO1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy53aWRnZXRzTGlzdFttb2R1bGVdW3dpZGdldEluZGV4XS52YWx1ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5zaG93V2lkZ2V0cyA9IHRydWU7XHJcbiAgICAgICAgfSwgMTApO1xyXG4gICAgICAgIHJldHVyblxyXG4gICAgICB9XHJcbiAgICAgIHRoaXMud2lkZ2V0c0xpc3RbbW9kdWxlXVt3aWRnZXRJbmRleF0udmFsdWUgPSB0cnVlO1xyXG4gICAgICBpZiAodGhpcy53aWRnZXRzTGlzdFttb2R1bGVdW3dpZGdldEluZGV4XS5zdWJXaWRnZXRzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICBpZiAoIXN1YldpZGdldElkKSB7XHJcbiAgICAgICAgICB0aGlzLndpZGdldHNMaXN0W21vZHVsZV1bd2lkZ2V0SW5kZXhdLnN1YldpZGdldHMuZm9yRWFjaChlbGUgPT4gZWxlLnZhbHVlID0gdHJ1ZSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGNvbnN0IHN1YldpZGdldEluZGV4ID0gdGhpcy53aWRnZXRzTGlzdFttb2R1bGVdW3dpZGdldEluZGV4XS5zdWJXaWRnZXRzLmZpbmRJbmRleCgoZWxlOiBhbnkpID0+IGVsZS5pZCA9PSBzdWJXaWRnZXRJZCk7XHJcbiAgICAgICAgICB0aGlzLndpZGdldHNMaXN0W21vZHVsZV1bd2lkZ2V0SW5kZXhdLnN1YldpZGdldHNbc3ViV2lkZ2V0SW5kZXhdLnZhbHVlID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmICh0aGlzLndpZGdldHNMaXN0W21vZHVsZV1bd2lkZ2V0SW5kZXhdLnN1YldpZGdldHMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIGlmICghc3ViV2lkZ2V0SWQpIHtcclxuICAgICAgICAgIHRoaXMud2lkZ2V0c0xpc3RbbW9kdWxlXVt3aWRnZXRJbmRleF0udmFsdWUgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMud2lkZ2V0c0xpc3RbbW9kdWxlXVt3aWRnZXRJbmRleF0uc3ViV2lkZ2V0cy5mb3JFYWNoKChlbGU6IGFueSkgPT4gZWxlLnZhbHVlID0gZmFsc2UpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBjb25zdCBzdWJXaWRnZXRJbmRleCA9IHRoaXMud2lkZ2V0c0xpc3RbbW9kdWxlXVt3aWRnZXRJbmRleF0uc3ViV2lkZ2V0cy5maW5kSW5kZXgoKGVsZTogYW55KSA9PiBlbGUuaWQgPT0gc3ViV2lkZ2V0SWQpO1xyXG4gICAgICAgICAgdGhpcy53aWRnZXRzTGlzdFttb2R1bGVdW3dpZGdldEluZGV4XS5zdWJXaWRnZXRzW3N1YldpZGdldEluZGV4XS52YWx1ZSA9IGZhbHNlO1xyXG5cclxuICAgICAgICAgIGNvbnN0IGlzQWxsV2lkZ2V0c1JlbW92ZWQgPSB0aGlzLndpZGdldHNMaXN0W21vZHVsZV1bd2lkZ2V0SW5kZXhdLnN1YldpZGdldHMuZXZlcnkoKGVsZTogYW55KSA9PiBlbGUudmFsdWUgPT0gZmFsc2UpO1xyXG4gICAgICAgICAgaWYgKGlzQWxsV2lkZ2V0c1JlbW92ZWQpIHtcclxuICAgICAgICAgICAgdGhpcy53aWRnZXRzTGlzdFttb2R1bGVdW3dpZGdldEluZGV4XS52YWx1ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLndpZGdldHNMaXN0W21vZHVsZV1bd2lkZ2V0SW5kZXhdLnZhbHVlID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMuc2V0U2VsZWN0ZWRXaWRnZXRzKCk7XHJcblxyXG4gIH1cclxuICBzZXRTZWxlY3RlZFdpZGdldHMoKSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkV2lkZ2V0cyA9IFtdXHJcbiAgICB0aGlzLndpZGdldHNMaXN0LkNPTVBMSUFOQ0UuZm9yRWFjaCgoZWxlOiBhbnkpID0+IHtcclxuICAgICAgaWYgKGVsZS52YWx1ZSkge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRXaWRnZXRzLnB1c2goZWxlKVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gICAgdGhpcy53aWRnZXRzTGlzdC5SSVNLLmZvckVhY2goKGVsZTogYW55KSA9PiB7XHJcbiAgICAgIGlmIChlbGUudmFsdWUpIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkV2lkZ2V0cy5wdXNoKGVsZSlcclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIHJlbW92ZVdpZGdldCh3aWRnZXQ6IHdpZGdldENvbmZpZykge1xyXG4gICAgY29uc3Qgd2lkZ2V0SW5kZXggPSB0aGlzLndpZGdldHNMaXN0W3dpZGdldC5tb2R1bGVdLmZpbmRJbmRleCgoZWxlOiBhbnkpID0+IGVsZS5pZCA9PSB3aWRnZXQuaWQpO1xyXG4gICAgdGhpcy53aWRnZXRzTGlzdFt3aWRnZXQubW9kdWxlXVt3aWRnZXRJbmRleF0udmFsdWUgPSBmYWxzZTtcclxuICAgIGlmICh0aGlzLndpZGdldHNMaXN0W3dpZGdldC5tb2R1bGVdW3dpZGdldEluZGV4XS5zdWJXaWRnZXRzLmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy53aWRnZXRzTGlzdFt3aWRnZXQubW9kdWxlXVt3aWRnZXRJbmRleF0uc3ViV2lkZ2V0cy5mb3JFYWNoKChlbGU6IGFueSkgPT4gZWxlLnZhbHVlID0gZmFsc2UpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZXRTZWxlY3RlZFdpZGdldHMoKVxyXG4gIH1cclxuXHJcbiAgb25OZXh0Q2xpY2soKSB7XHJcbiAgICB0aGlzLndpZGdldHNEYXRhTW9kaWZpZWQuZW1pdCh0aGlzLnNlbGVjdGVkV2lkZ2V0cyk7XHJcbiAgfVxyXG5cclxuICBjbG9zZUNvbmZpZ3VyZURhc2hib2FyZCgpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRXaWRnZXRzID0gW107XHJcbiAgICB0aGlzLmRpYWxvZy5jbG9zZSgpO1xyXG4gICAgdGhpcy5jbG9zZUNvbmZpZ3VyZVdpZGdldHMuZW1pdChmYWxzZSk7XHJcbiAgfVxyXG5cclxuICBzZXRXaWRnZXRzVmlzaWJpbGl0eVRvRmFsc2UoKXtcclxuICAgIHRoaXMud2lkZ2V0c0xpc3QuQ09NUExJQU5DRS5mb3JFYWNoKChlbGU6IGFueSkgPT4ge1xyXG4gICAgICAgIGVsZS52aXNpYmlsaXR5ID0gZmFsc2U7XHJcbiAgICAgICAgaWYgKGVsZS5zdWJXaWRnZXRzLmxlbmd0aCA+IDApIHsgICAgICAgIFxyXG4gICAgICAgICAgZWxlLnN1YldpZGdldHMuZm9yRWFjaCgoc3ViRWxlbWVudDogYW55KSA9PiB7ICAgICAgICBcclxuICAgICAgICAgICAgc3ViRWxlbWVudC52aXNpYmlsaXR5ID0gZmFsc2U7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICB9KVxyXG4gICAgdGhpcy53aWRnZXRzTGlzdC5SSVNLLmZvckVhY2goKGVsZTogYW55KSA9PiB7XHJcbiAgICAgICAgZWxlLnZpc2liaWxpdHkgPSBmYWxzZTtcclxuICAgICAgICBpZiAoZWxlLnN1YldpZGdldHMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgZWxlLnN1YldpZGdldHMuZm9yRWFjaCgoc3ViRWxlbWVudDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIHN1YkVsZW1lbnQudmlzaWJpbGl0eSA9IGZhbHNlO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcbn1cclxuIl19
531
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJlLXdpZGdldHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3JlYXRlLWRhc2hib2FyZC9zcmMvbGliL2NyZWF0ZS1kYXNoYm9hcmQtY29udGFpbmVyL2NvbmZpZ3VyZS13aWRnZXRzL2NvbmZpZ3VyZS13aWRnZXRzL2NvbmZpZ3VyZS13aWRnZXRzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUNuRixPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUcxRixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFOUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBTzlFLE1BQU0sT0FBTyx5QkFBeUI7SUF5QnBDLFlBQ1UsTUFBaUIsRUFDbEIsdUJBQWdELEVBQy9DLFFBQXlCO1FBRnpCLFdBQU0sR0FBTixNQUFNLENBQVc7UUFDbEIsNEJBQXVCLEdBQXZCLHVCQUF1QixDQUF5QjtRQUMvQyxhQUFRLEdBQVIsUUFBUSxDQUFpQjtRQTFCekIsd0JBQW1CLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDNUQsMEJBQXFCLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFFeEUsV0FBTSxHQUFXLEVBQUUsQ0FBQztRQUNwQixpQkFBWSxHQUE2QyxFQUFFLENBQUM7UUFDNUQsb0JBQWUsR0FBMkIsRUFBRSxDQUFDO1FBRTdDLFdBQU0sR0FBMEIsWUFBWSxDQUFDO1FBQ3BDLHdCQUFtQixHQUFRLEVBQUUsQ0FBQztRQUM5QixxQkFBZ0IsR0FBUSxFQUFFLENBQUM7UUFDM0IsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixtQkFBYyxHQUFHLEtBQUss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QUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29uZmlndXJlV2lkZ2V0c1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jb25maWd1cmUtd2lkZ2V0cy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IHJldHJ5IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyB3aWRnZXREYXRhTW9kZWwgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL3dpZGdldC1kYXRhLW1vZGVsJztcclxuaW1wb3J0IHsgRGlhbG9nUmVmIH0gZnJvbSAnLi4vLi4vLi4vdWkta2l0L2RpYWxvZy9kaWFsb2ctcmVmJztcclxuaW1wb3J0IHsgd2lkZ2V0Q29uZmlnIH0gZnJvbSAnLi93aWRnZXQuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgU25hY2tCYXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vdWkta2l0L3NuYWNrLWJhci9zbmFjay1iYXIuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1jb25maWd1cmUtd2lkZ2V0cycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbmZpZ3VyZS13aWRnZXRzLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jb25maWd1cmUtd2lkZ2V0cy5jb21wb25lbnQubGVzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb25maWd1cmVXaWRnZXRzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xyXG5cclxuICBAT3V0cHV0KCkgd2lkZ2V0c0RhdGFNb2RpZmllZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGNsb3NlQ29uZmlndXJlV2lkZ2V0czogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgY2hlY2tib3hTdGF0dXMhOiBhbnk7XHJcbiAgc2VhcmNoOiBzdHJpbmcgPSAnJztcclxuICBjaGVja2VkQXJyYXk6IEFycmF5PHsgaW5kZXg6IG51bWJlciwgc3RhdHVzOiBudW1iZXIgfT4gPSBbXTtcclxuICBzZWxlY3RlZFdpZGdldHM6IEFycmF5PHdpZGdldERhdGFNb2RlbD4gPSBbXTtcclxuXHJcbiAgbW9kdWxlOiBcIkNPTVBMSUFOQ0VcIiB8IFwiUklTS1wiID0gJ0NPTVBMSUFOQ0UnO1xyXG4gIEBJbnB1dCgpIHNlbGVjdGVkV2lkZ2V0c0RhdGE6IGFueSA9IFtdO1xyXG4gIEBJbnB1dCgpIGRpc3BsYXllZFdpZGdldHM6IGFueSA9IFtdO1xyXG4gIEBJbnB1dCgpIHNob3dSaXNrID0gZmFsc2U7XHJcbiAgQElucHV0KCkgc2hvd0NvbXBsaWFuY2UgPSBmYWxzZTtcclxuICBASW5wdXQoKSBtb2RlID0gJ0NSRUFURSdcclxuICBub0RhdGFUZXh0ID0gJ1lvdSBoYXZlIG5vdCBjb25maWd1cmVkIGFueSB3aWRnZXRzLiBDbGljayBvbiB0aGUgPHN0cm9uZz5Db25maWd1cmUgV2lkZ2V0czwvc3Ryb25nPiBidXR0b24gdG8gYmVnaW4uJztcclxuXHJcbiAgc2VsZWN0ZWRXaWRnZXRJZHM6IGFueSA9IFtdO1xyXG4gIHN1YlJlc3BvbnNpYmlsaXRpZXNTZWxlY3RlZDogYm9vbGVhbiA9IGZhbHNlXHJcbiAgc3ViS2V5UmVzcG9uc2liaWxpdGllc1NlbGVjdGVkOiBib29sZWFuID0gZmFsc2VcclxuICBzaG93V2lkZ2V0cyA9IHRydWU7XHJcbiAgY29tcGxpYW5jZVdpZGdldHNEaXNwbGF5Q291bnQgPSA5O1xyXG4gIHJpc2tXaWRnZXRzRGlzcGxheUNvdW50ID0gMTI7XHJcblxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgZGlhbG9nOiBEaWFsb2dSZWYsXHJcbiAgICBwdWJsaWMgY29uZmlndXJlV2lkZ2V0c1NlcnZpY2U6IENvbmZpZ3VyZVdpZGdldHNTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBzbmFja0JhcjogU25hY2tCYXJTZXJ2aWNlKSB7XHJcblxyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoKSB7XHJcbiAgICBpZiAodGhpcy5tb2RlID09ICdFRElUJykge1xyXG4gICAgICB0aGlzLnNldFdpZGdldHNWaXNpYmlsaXR5VG9GYWxzZSgpXHJcbiAgICAgIHRoaXMucmlza1dpZGdldHNEaXNwbGF5Q291bnQgPSAwO1xyXG4gICAgICB0aGlzLmNvbXBsaWFuY2VXaWRnZXRzRGlzcGxheUNvdW50ID0gMDtcclxuICAgICAgY29uc3QgZmluYWxEYXRhID0gWy4uLm5ldyBTZXQodGhpcy5kaXNwbGF5ZWRXaWRnZXRzKV07XHJcbiAgICAgIGZpbmFsRGF0YS5mb3JFYWNoKChlbGVtZW50OiBhbnksIGluZGV4OiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLndpZGdldHNMaXN0LkNPTVBMSUFOQ0UuZm9yRWFjaCgoZWxlOiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChlbGUuaWQgPT0gZWxlbWVudC53aWRnZXRfY29kZSkge1xyXG4gICAgICAgICAgICBlbGUudmlzaWJpbGl0eSA9IHRydWU7XHJcbiAgICAgICAgICAgIGlmIChlbGUuc3ViV2lkZ2V0cy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgY29uc3QgZmlsdGVyRGF0YTogYW55ID0gW11cclxuICAgICAgICAgICAgICBlbGVtZW50LnN1Yl93aWRnZXRzLmZpbHRlcigoc3Vid2lkZ2V0OiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgZmlsdGVyRGF0YS5wdXNoKHN1YndpZGdldC53aWRnZXRfY29kZSk7XHJcbiAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgZWxlLnN1YldpZGdldHMuZm9yRWFjaCgoc3ViRWxlbWVudDogYW55LCBzdWJJbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZmlsdGVyRGF0YS5pbmNsdWRlcyhzdWJFbGVtZW50LmlkKSkge1xyXG4gICAgICAgICAgICAgICAgICBlbGUuc3ViV2lkZ2V0c1tzdWJJbmRleF0udmlzaWJpbGl0eSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICBlbGUuc3ViV2lkZ2V0c1tzdWJJbmRleF0udmlzaWJpbGl0eSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMuY29tcGxpYW5jZVdpZGdldHNEaXNwbGF5Q291bnQrK1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgdGhpcy53aWRnZXRzTGlzdC5SSVNLLmZvckVhY2goKGVsZTogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAoZWxlLmlkID09IGVsZW1lbnQud2lkZ2V0X2NvZGUpIHtcclxuICAgICAgICAgICAgZWxlLnZpc2liaWxpdHkgPSB0cnVlO1xyXG4gICAgICAgICAgICBpZiAoZWxlLnN1YldpZGdldHMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgIGNvbnN0IGZpbHRlckRhdGE6IGFueSA9IFtdXHJcbiAgICAgICAgICAgICAgZWxlbWVudC5zdWJfd2lkZ2V0cy5maWx0ZXIoKHN1YndpZGdldDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIGZpbHRlckRhdGEucHVzaChzdWJ3aWRnZXQud2lkZ2V0X2NvZGUpO1xyXG4gICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgIGVsZS5zdWJXaWRnZXRzLmZvckVhY2goKHN1YkVsZW1lbnQ6IGFueSwgc3ViSW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKGZpbHRlckRhdGEuaW5jbHVkZXMoc3ViRWxlbWVudC5pZCkpIHtcclxuICAgICAgICAgICAgICAgICAgZWxlLnN1YldpZGdldHNbc3ViSW5kZXhdLnZpc2liaWxpdHkgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgZWxlLnN1YldpZGdldHNbc3ViSW5kZXhdLnZpc2liaWxpdHkgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5yaXNrV2lkZ2V0c0Rpc3BsYXlDb3VudCsrXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBkYXRhID0gWy4uLm5ldyBTZXQodGhpcy5zZWxlY3RlZFdpZGdldHNEYXRhKV07XHJcbiAgICBkYXRhLmZvckVhY2goKGVsZW1lbnQ6IGFueSwgaW5kZXg6IGFueSkgPT4ge1xyXG4gICAgICB0aGlzLndpZGdldHNMaXN0LkNPTVBMSUFOQ0UuZm9yRWFjaCgoZWxlOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAoZWxlLmlkID09IGVsZW1lbnQud2lkZ2V0X2NvZGUgJiYgZWxlbWVudC5zdGF0ZSA9PSAnQUNUSVZFJykge1xyXG4gICAgICAgICAgZWxlLnZhbHVlID0gdHJ1ZTtcclxuICAgICAgICAgIGlmIChlbGUuc3ViV2lkZ2V0cy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGZpbHRlckRhdGE6IGFueSA9IFtdXHJcbiAgICAgICAgICAgIGVsZW1lbnQuc3ViX3dpZGdldHMuZmlsdGVyKChzdWJ3aWRnZXQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgIGlmIChzdWJ3aWRnZXQuc3RhdGUgPT0gJ0FDVElWRScpIHtcclxuICAgICAgICAgICAgICAgIGZpbHRlckRhdGEucHVzaChzdWJ3aWRnZXQud2lkZ2V0X2NvZGUpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIGVsZS5zdWJXaWRnZXRzLmZvckVhY2goKHN1YkVsZW1lbnQ6IGFueSwgc3ViSW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgICAgICAgICAgIGlmIChmaWx0ZXJEYXRhLmluY2x1ZGVzKHN1YkVsZW1lbnQuaWQpKSB7XHJcbiAgICAgICAgICAgICAgICBlbGUuc3ViV2lkZ2V0c1tzdWJJbmRleF0udmFsdWUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBlbGUuc3ViV2lkZ2V0c1tzdWJJbmRleF0udmFsdWUgPSBmYWxzZTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRXaWRnZXRzLnB1c2goZWxlKTtcclxuXHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgICB0aGlzLndpZGdldHNMaXN0LlJJU0suZm9yRWFjaCgoZWxlOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAoZWxlLmlkID09IGVsZW1lbnQud2lkZ2V0X2NvZGUgJiYgZWxlbWVudC5zdGF0ZSA9PSAnQUNUSVZFJykge1xyXG4gICAgICAgICAgZWxlLnZhbHVlID0gdHJ1ZTtcclxuICAgICAgICAgIGlmIChlbGUuc3ViV2lkZ2V0cy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGZpbHRlckRhdGE6IGFueSA9IFtdXHJcbiAgICAgICAgICAgIGVsZW1lbnQuc3ViX3dpZGdldHMuZmlsdGVyKChzdWJ3aWRnZXQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgIGlmIChzdWJ3aWRnZXQuc3RhdGUgPT0gJ0FDVElWRScpIHtcclxuICAgICAgICAgICAgICAgIGZpbHRlckRhdGEucHVzaChzdWJ3aWRnZXQud2lkZ2V0X2NvZGUpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIGVsZS5zdWJXaWRnZXRzLmZvckVhY2goKHN1YkVsZW1lbnQ6IGFueSwgc3ViSW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgICAgICAgICAgIGlmIChmaWx0ZXJEYXRhLmluY2x1ZGVzKHN1YkVsZW1lbnQuaWQpKSB7XHJcbiAgICAgICAgICAgICAgICBlbGUuc3ViV2lkZ2V0c1tzdWJJbmRleF0udmFsdWUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBlbGUuc3ViV2lkZ2V0c1tzdWJJbmRleF0udmFsdWUgPSBmYWxzZTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRXaWRnZXRzLnB1c2goZWxlKTtcclxuXHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG5cclxuICAgIH0pO1xyXG4gICAgdGhpcy5tb2R1bGUgPSAodGhpcy5zaG93Q29tcGxpYW5jZSkgPyAnQ09NUExJQU5DRScgOiAnUklTSyc7XHJcbiAgICB0aGlzLnNldFNlbGVjdGVkV2lkZ2V0cygpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcblxyXG4gIH1cclxuXHJcblxyXG4gIHdpZGdldHNMaXN0ID0ge1xyXG4gICAgQ09NUExJQU5DRTogW1xyXG4gICAgICB7XHJcbiAgICAgICAgdGl0bGU6ICdPdmVydmlldycsXHJcbiAgICAgICAgaWQ6ICdvdmVydmlldycsXHJcbiAgICAgICAgZGVzY3JpcHRpb246ICdPdmVydmlldyBzaG93cyB0aGUgcGVyZm9ybWFuY2Ugb2YgcmVzcG9uc2liaWxpdGllcyBhbmQgUHJvZ3JhbXMuJyxcclxuICAgICAgICB3aWRnZXRJbWFnZTogJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvY29uZmlndXJlLXdpZGdldC9hc3NldHMvaW1hZ2VzL292ZXJ2aWV3LnBuZycsXHJcbiAgICAgICAgdmFsdWU6IGZhbHNlLFxyXG4gICAgICAgIHZpc2liaWxpdHk6dHJ1ZSxcclxuICAgICAgICBtb2R1bGU6ICdDT01QTElBTkNFJyxcclxuICAgICAgICBzdWJXaWRnZXRzOiBbXVxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgdGl0bGU6ICdSZXNwb25zaWJpbGl0eSBDYWxlbmRhcicsXHJcbiAgICAgICAgaWQ6ICdjb21wbGlhbmNlX2NhbGVuZGFyX2ZsYWcnLFxyXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnVGhlIFJlc3BvbnNpYmlsaXR5IENhbGVuZGFyIHNob3dzIHRoZSBkdWUgZGF0ZXMgb2YgcmVzcG9uc2liaWxpdGllcyBpbiBhIGNhbGVuZGFyIGZvcm1hdC4gVGhlIHJlc3BvbnNpYmlsaXRpZXMgYXJlIGNvbG9yIGNvZGVkIHRvIHJlZmxlY3QgdGhlIHN0YXR1cyBvZiB0aGUgcmVzcG9uc2liaWxpdGllcy4nLFxyXG4gICAgICAgIHdpZGdldEltYWdlOiAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy9jb25maWd1cmUtd2lkZ2V0L2Fzc2V0cy9pbWFnZXMvcmVzcG9uc2liaWxpdHktY2FsZW5kZXIucG5nJyxcclxuICAgICAgICB2YWx1ZTogZmFsc2UsXHJcbiAgICAgICAgdmlzaWJpbGl0eTp0cnVlLFxyXG4gICAgICAgIG1vZHVsZTogJ0NPTVBMSUFOQ0UnLFxyXG4gICAgICAgIHN1YldpZGdldHM6IFtdXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICB0aXRsZTogJ1Jlc3BvbnNpYmlsaXR5IENlbnRlciBPdmVydmlldycsXHJcbiAgICAgICAgaWQ6ICdyZXNwb25zaWJpbGl0eV9jZW50ZXJfb3ZlcnZpZXdfZmxhZycsXHJcbiAgICAgICAgZGVzY3JpcHRpb246ICdUaGUgUmVzcG9uc2liaWxpdHkgQ2VudGVyIE92ZXJ2aWV3IHNob3dzIHRoZSBwZXJmb3JtYW5jZSBvZiByZXNwb25zaWJpbGl0aWVzIGFuZCBSZXNwb25zaWJpbGl0eSBDZW50ZXJzLicsXHJcbiAgICAgICAgd2lkZ2V0SW1hZ2U6ICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL2NvbmZpZ3VyZS13aWRnZXQvYXNzZXRzL2ltYWdlcy9yZXNwb25zaWJpbGl0eS1jZW50ZXItb3ZlcnZpZXcucG5nJyxcclxuICAgICAgICB2YWx1ZTogZmFsc2UsXHJcbiAgICAgICAgdmlzaWJpbGl0eTp0cnVlLFxyXG4gICAgICAgIG1vZHVsZTogJ0NPTVBMSUFOQ0UnLFxyXG4gICAgICAgIHN1YldpZGdldHM6IFtdXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICB0aXRsZTogJ1Jlc3BvbnNpYmlsaXRpZXMnLFxyXG4gICAgICAgIGlkOiAnbXlfcmVzcG9uc2liaWxpdGllcycsXHJcbiAgICAgICAgZGVzY3JpcHRpb246ICdUaGlzIHdpZGdldCBzaG93cyB0aGUgcGVyZm9ybWFuY2Ugb2YgdGhlIHJlc3BvbnNpYmlsaXRpZXMgdGhhdCB5b3UgYXJlIHJlcXVpcmVkIHRvIGNvbXBsZXRlLCB0aGUgcmVzcG9uc2liaWxpdGllcyB0aGF0IHlvdSBhcmUgcmV2aWV3aW5nIGFuZCB0aGUgcmVzcG9uc2liaWxpdGllcyB0aGF0IHlvdSBhcmUgb3ZlcnNlZWluZy4nLFxyXG4gICAgICAgIHdpZGdldEltYWdlOiAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy9jb25maWd1cmUtd2lkZ2V0L2Fzc2V0cy9pbWFnZXMvbXktcmVzcG9uc2liaWxpdGllcy5wbmcnLFxyXG4gICAgICAgIHRhYk9wdGlvbjogdHJ1ZSxcclxuICAgICAgICB2YWx1ZTogZmFsc2UsXHJcbiAgICAgICAgdmlzaWJpbGl0eTp0cnVlLFxyXG4gICAgICAgIG1vZHVsZTogJ0NPTVBMSUFOQ0UnLFxyXG4gICAgICAgIHN1YldpZGdldHM6IFtcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgdGl0bGU6ICdNeSBSZXNwb25zaWJpbGl0aWVzJyxcclxuICAgICAgICAgICAgaWQ6ICdteV9yZXNwb25zaWJpbGl0eV9mbGFnJyxcclxuICAgICAgICAgICAgdmFsdWU6IGZhbHNlLFxyXG4gICAgICAgICAgICB2aXNpYmlsaXR5OnRydWUsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICB0aXRsZTogJ0nigJltIFJldmlld2luZycsXHJcbiAgICAgICAgICAgIGlkOiAncmV2aWV3ZXJfcmVzcG9uc2liaWxpdHlfZmxhZycsXHJcbiAgICAgICAgICAgIHZhbHVlOiBmYWxzZSxcclxuICAgICAgICAgICAgdmlzaWJpbGl0eTp0cnVlLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgdGl0bGU6ICdJ4oCZbSBPdmVyc2VlaW5nJyxcclxuICAgICAgICAgICAgaWQ6ICdjY19yZXNwb25zaWJpbGl0eV9mbGFnJyxcclxuICAgICAgICAgICAgdmFsdWU6IGZhbHNlLFxyXG4gICAgICAgICAgICB2aXNpYmlsaXR5OnRydWUsXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgXVxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgdGl0bGU6ICdLZXkgUmVzcG9uc2liaWxpdGllcycsXHJcbiAgICAgICAgaWQ6ICdrZXlfcmVzcG9uc2liaWxpdGllcycsXHJcbiAgICAgICAgZGVzY3JpcHRpb246ICdUaGlzIHdpZGdldCBzaG93cyB0aGUgcGVyZm9ybWFuY2Ugb2Yga2V5IHJlc3BvbnNpYmlsaXRpZXMgdGhhdCB5b3UgYXJlIHJlcXVpcmVkIHRvIGNvbXBsZXRlLCB0aGF0IHlvdSBhcmUgcmV2aWV3aW5nLCB0aGF0IHlvdSBhcmUgb3ZlcnNlZWluZyBhbmQgdGhhdCB5b3UgaGF2ZSBhc3NpZ25lZCB0byBhbm90aGVyIHBlcnNvbi4nLFxyXG4gICAgICAgIHdpZGdldEltYWdlOiAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy9jb25maWd1cmUtd2lkZ2V0L2Fzc2V0cy9pbWFnZXMva2V5LXJlc3BvbnNpYmlsaXRpZXMucG5nJyxcclxuICAgICAgICB0YWJPcHRpb246IHRydWUsXHJcbiAgICAgICAgdmFsdWU6IGZhbHNlLFxyXG4gICAgICAgIHZpc2liaWxpdHk6dHJ1ZSxcclxuICAgICAgICBtb2R1bGU6ICdDT01QTElBTkNFJyxcclxuICAgICAgICBzdWJXaWRnZXRzOiBbXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIHRpdGxlOiAnT3ZlcnZpZXcnLFxyXG4gICAgICAgICAgICBpZDogJ2tleV9yZXNwb25zaWJpbGl0aWVzX292ZXJ2aWV3X2ZsYWcnLFxyXG4gICAgICAgICAgICB2YWx1ZTogZmFsc2UsXHJcbiAgICAgICAgICAgIHZpc2liaWxpdHk6dHJ1ZSxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIHRpdGxlOiAnTXkgUmVzcG9uc2liaWxpdGllcycsXHJcbiAgICAgICAgICAgIGlkOiAna2V5X215X3Jlc3BvbnNpYmlsaXRpZXNfZmxhZycsXHJcbiAgICAgICAgICAgIHZhbHVlOiBmYWxzZSxcclxuICAgICAgICAgICAgdmlzaWJpbGl0eTp0cnVlLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgdGl0bGU6ICdJ4oCZbSBSZXZpZXdpbmcnLFxyXG4gICAgICAgICAgICBpZDogJ2tleV9pX2FtX3Jldmlld2luZ19mbGFnJyxcclxuICAgICAgICAgICAgdmFsdWU6IGZhbHNlLFxyXG4gICAgICAgICAgICB2aXNpYmlsaXR5OnRydWUsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICB0aXRsZTogJ0nigJltIE92ZXJzZWVpbmcnLFxyXG4gICAgICAgICAgICBpZDogJ2tleV9pX2FtX292ZXJzZWVpbmdfZmxhZycsXHJcbiAgICAgICAgICAgIHZhbHVlOiBmYWxzZSxcclxuICAgICAgICAgICAgdmlzaWJpbGl0eTp0cnVlLFxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIF1cclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIHRpdGxlOiAnVHJlbmQgQW5hbHlzaXMnLFxyXG4gICAgICAgIGlkOiAndHJlbmRfYW5hbHlzaXNfZmxhZycsXHJcbiAgICAgICAgZGVzY3JpcHRpb246ICdUaGUgVHJlbmQgQW5hbHlzaXMgaXMgYSBncmFwaGljYWwgcmVwcmVzZW50YXRpb24gb2YgdGhlIHBlcmZvcm1hbmNlIG9mIHJlc3BvbnNpYmlsaXRpZXMgb3ZlciBhIHBlcmlvZC4nLFxyXG4gICAgICAgIHdpZGdldEltYWdlOiAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy9jb25maWd1cmUtd2lkZ2V0L2Fzc2V0cy9pbWFnZXMvdHJlbmQtYW5hbHlzaXMucG5nJyxcclxuICAgICAgICB2YWx1ZTogZmFsc2UsXHJcbiAgICAgICAgdmlzaWJpbGl0eTp0cnVlLFxyXG4gICAgICAgIG1vZHVsZTogJ0NPTVBMSUFOQ0UnLFxyXG4gICAgICAgIHN1YldpZGdldHM6IFtdXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICB0aXRsZTogJ1dvcmtyb29tIFVwZGF0ZXMnLFxyXG4gICAgICAgIGlkOiAnd29ya3Jvb21fYWxlcnRfZmxhZycsXHJcbiAgICAgICAgZGVzY3JpcHRpb246ICdUaGUgUmVzcG9uc2liaWxpdHkgV29ya3Jvb20gc2hvd3MgdXBkYXRlcyBmcm9tIHRoZSBSZXNwb25zaWJpbGl0eSBXb3Jrcm9vbXMuIEEgUmVzcG9uc2liaWxpdHkgV29ya3Jvb20gZXhpc3RzIGZvciBhbGwgcmVzcG9uc2liaWxpdGllcy4nLFxyXG4gICAgICAgIHdpZGdldEltYWdlOiAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy9jb25maWd1cmUtd2lkZ2V0L2Fzc2V0cy9pbWFnZXMvd29ya3Jvb20tdXBkYXRlcy5wbmcnLFxyXG4gICAgICAgIHZhbHVlOiBmYWxzZSxcclxuICAgICAgICB2aXNpYmlsaXR5OnRydWUsXHJcbiAgICAgICAgbW9kdWxlOiAnQ09NUExJQU5DRScsXHJcbiAgICAgICAgc3ViV2lkZ2V0czogW11cclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIHRpdGxlOiAnUmVjZW50IEFjdGl2aXRpZXMnLFxyXG4gICAgICAgIGlkOiAncmVjZW50X2FjdGl2aXR5X2ZsYWcnLFxyXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnVGhpcyBpcyBhIGNocm9ub2xvZ2ljYWwgdmlldyBvZiB0aGUgcmVjZW50IHVwZGF0ZXMgb2YgcmVzcG9uc2liaWxpdGllcy4nLFxyXG4gICAgICAgIHdpZGdldEltYWdlOiAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy9jb25maWd1cmUtd2lkZ2V0L2Fzc2V0cy9pbWFnZXMvcmVjZW50LWFjdGl2aXRpZXMucG5nJyxcclxuICAgICAgICB2YWx1ZTogZmFsc2UsXHJcbiAgICAgICAgdmlzaWJpbGl0eTp0cnVlLFxyXG4gICAgICAgIG1vZHVsZTogJ0NPTVBMSUFOQ0UnLFxyXG4gICAgICAgIHN1YldpZGdldHM6IFtdXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICB0aXRsZTogJ0V4Y2VwdGlvbiBTdW1tYXJ5JyxcclxuICAgICAgICBpZDogJ2V4Y2VwdGlvbl9zdW1tYXJ5X2ZsYWcnLFxyXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnRXhjZXB0aW9ucyBTdW1tYXJ5IHNob3cgdGhlIG51bWJlciBvZiByZXNwb25zaWJpbGl0aWVzIHRoYXQgYXJlIGVpdGhlciBub3QgYWNjZXB0ZWQsIG5vdCBjb21wbGV0ZWQgb3IgZGVsZXRlZC4nLFxyXG4gICAgICAgIHdpZGdldEltYWdlOiAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy9jb25maWd1cmUtd2lkZ2V0L2Fzc2V0cy9pbWFnZXMvZXhjZXB0aW9uLXN1bW1hcnkucG5nJyxcclxuICAgICAgICB2YWx1ZTogZmFsc2UsXHJcbiAgICAgICAgdmlzaWJpbGl0eTp0cnVlLFxyXG4gICAgICAgIG1vZHVsZTogJ0NPTVBMSUFOQ0UnLFxyXG4gICAgICAgIHN1YldpZGdldHM6IFtdXHJcbiAgICAgIH1cclxuICAgIF0sXHJcbiAgICBSSVNLOiBbXHJcbiAgICAgIHtcclxuICAgICAgICB0aXRsZTogJ1Jpc2sgT3ZlcnZpZXcnLFxyXG4gICAgICAgIGlkOiAncmlza19vdmVydmlldycsXHJcbiAgICAgICAgZGVzY3JpcHRpb246ICdUaGlzIHdpZGdldCBzaG93cyB0aGUgbnVtYmVyIGFuZCBwZXJjZW50YWdlIG9mIHJpc2tzIHdpdGhpbiBlYWNoIHJpc2sgcmVzcG9uc2Ugc3RyYXRlZ3kuJyxcclxuICAgICAgICB3aWRnZXRJbWFnZTogJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvY29uZmlndXJlLXdpZGdldC9hc3NldHMvaW1hZ2VzL3Jpc2stb3ZlcnZpZXcucG5nJyxcclxuICAgICAgICB2YWx1ZTogZmFsc2UsXHJcbiAgICAgICAgdmlzaWJpbGl0eTp0cnVlLFxyXG4gICAgICAgIG1vZHVsZTogJ1JJU0snLFxyXG4gICAgICAgIHN1YldpZGdldHM6IFtdXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICB0aXRsZTogJ1Jpc2sgTWV0cmljcycsXHJcbiAgICAgICAgaWQ6ICdyaXNrX21ldHJpY3MnLFxyXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnVGhpcyB3aWRnZXQgc2hvd3MgdGhlIG51bWJlciBvZiByaXNrcyB3aXRoaW4gZWFjaCByaXNrIGFwcGV0aXRlLCB0aGUgbnVtYmVyIG9mIHJpc2tzIHRoYXQgZXhjZWVkIHRoZSByaXNrIGFwcGV0aXRlLCB0aGUgbnVtYmVyIG9mIHJpc2tzIHRoYXQgZXhjZWVkIHRoZSByaXNrIHRvbGVyYW5jZSwgdGhlIG51bWJlciBvZiByaXNrcyB3aXRoaW4gZWFjaCByaXNrIHJhdGluZywgYW5kIHRoZSBudW1iZXIgb2Ygcmlza3MgdGhhdCBkbyBub3QgaGF2ZSBhbnkgbGlua2VkIGNvbnRyb2xzLicsXHJcbiAgICAgICAgd2lkZ2V0SW1hZ2U6ICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL2NvbmZpZ3VyZS13aWRnZXQvYXNzZXRzL2ltYWdlcy9hcHBldGl0ZS10b2xlcmFuY2UucG5nJyxcclxuICAgICAgICB2YWx1ZTogZmFsc2UsXHJcbiAgICAgICAgdmlzaWJpbGl0eTp0cnVlLFxyXG4gICAgICAgIG1vZHVsZTogJ1JJU0snLFxyXG4gICAgICAgIHN1YldpZGdldHM6IFtcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgdGl0bGU6ICdSaXNrIEFwcGV0aXRlICYgVG9sZXJhbmNlJyxcclxuICAgICAgICAgICAgaWQ6ICdyaXNrX2FwcGV0aXRlX3RvbGVyYW5jZScsXHJcbiAgICAgICAgICAgIHZhbHVlOiBmYWxzZSxcclxuICAgICAgICAgICAgdmlzaWJpbGl0eTp0cnVlLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgdGl0bGU6ICdSaXNrIFJhdGluZ3MnLFxyXG4gICAgICAgICAgICBpZDogJ3Jpc2tfcmF0aW5ncycsXHJcbiAgICAgICAgICAgIHZhbHVlOiBmYWxzZSxcclxuICAgICAgICAgICAgdmlzaWJpbGl0eTp0cnVlLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgdGl0bGU6ICdSaXNrcyBXaXRob3V0IENvbnRyb2xzJyxcclxuICAgICAgICAgICAgaWQ6ICdyaXNrc193aXRob3V0X2NvbnRyb2xzJyxcclxuICAgICAgICAgICAgdmFsdWU6IGZhbHNlLFxyXG4gICAgICAgICAgICB2aXNpYmlsaXR5OnRydWUsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICB0aXRsZTogJ0V4Y2VlZHMgUmlzayBUb2xlcmFuY2UnLFxyXG4gICAgICAgICAgICBpZDogJ2V4Y2VlZHNfcmlza190b2xlcmFuY2UnLFxyXG4gICAgICAgICAgICB2YWx1ZTogZmFsc2UsXHJcbiAgICAgICAgICAgIHZpc2liaWxpdHk6dHJ1ZSxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgXVxyXG4gICAgICB9LFxyXG5cclxuICAgICAge1xyXG4gICAgICAgIHRpdGxlOiAnSW5oZXJlbnQgUmlzayBSYXRpbmcgYnkgUmVzcG9uc2liaWxpdHkgQ2VudGVycyAnLFxyXG4gICAgICAgIGlkOiAnaW5oZXJlbnRfcmlza19yYXRpbmdfYnlfcmVzcG9uc2liaWxpdHlfY2VudGVycycsXHJcbiAgICAgICAgZGVzY3JpcHRpb246ICdUaGlzIHdpZGdldCBzaG93cyB0aGUgbnVtYmVyIG9mIHJpc2tzIHdpdGhpbiBlYWNoIGluaGVyZW50IHJpc2sgcmF0aW5nLCBncm91cGVkIGFjY29yZGluZyB0byB0aGXCoFJlc3BvbnNpYmlsaXR5IENlbnRlcsKgZXhwb3NlZCB0byB0aGUgcmlzay4nLFxyXG4gICAgICAgIHdpZGdldEltYWdlOiAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy9jb25maWd1cmUtd2lkZ2V0L2Fzc2V0cy9pbWFnZXMvaW5oZXJlbnQtUkMucG5nJyxcclxuICAgICAgICB2YWx1ZTogZmFsc2UsXHJcbiAgICAgICAgdmlzaWJpbGl0eTp0cnVlLFxyXG4gICAgICAgIG1vZHVsZTogJ1JJU0snLFxyXG4gICAgICAgIHN1YldpZGdldHM6IFtdXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICB0aXRsZTogJ1Jlc2lkdWFsIFJpc2sgUmF0aW5nIGJ5IFJlc3BvbnNpYmlsaXR5IENlbnRlcnMgJyxcclxuICAgICAgICBpZDogJ3Jlc2lkdWFsX3Jpc2tfcmF0aW5nX2J5X3Jlc3BvbnNpYmlsaXR5X2NlbnRlcnMnLFxyXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnVGhpcyB3aWRnZXQgc2hvd3MgdGhlIG51bWJlciBvZiByaXNrcyB3aXRoaW4gZWFjaCByZXNpZHVhbCByaXNrIHJhdGluZywgZ3JvdXBlZCBhY2NvcmRpbmcgdG8gdGhlwqBSZXNwb25zaWJpbGl0eSBDZW50ZXLCoGV4cG9zZWQgdG8gdGhlIHJpc2suJyxcclxuICAgICAgICB3aWRnZXRJbWFnZTogJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvY29uZmlndXJlLXdpZGdldC9hc3NldHMvaW1hZ2VzL3Jlc2lkdWFsLVJDLnBuZycsXHJcbiAgICAgICAgdmFsdWU6IGZhbHNlLFxyXG4gICAgICAgIHZpc2liaWxpdHk6dHJ1ZSxcclxuICAgICAgICBtb2R1bGU6ICdSSVNLJyxcclxuICAgICAgICBzdWJXaWRnZXRzOiBbXVxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgdGl0bGU6ICdSaXNrIENhdGVnb3J5IE92ZXJ2aWV3JyxcclxuICAgICAgICBpZDogJ3Jpc2tfY2F0ZWdvcnlfb3ZlcnZpZXcnLFxyXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnVGhpcyB3aWRnZXRzIHNob3dzIHRoZcKgbnVtYmVyIG9mIHJpc2tzIHdpdGhpbiBlYWNoIHN0YXR1cywgZ3JvdXBlZCBhY2NvcmRpbmcgdG8gdGhlIFJpc2sgQ2F0ZWdvcnkgdGhlIHJpc2sgaXMgYXNzaWduZWQgdG8uJyxcclxuICAgICAgICB3aWRnZXRJbWFnZTogJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvY29uZmlndXJlLXdpZGdldC9hc3NldHMvaW1hZ2VzL3Jpc2stY2F0ZWdvcnktb3ZlcnZpZXcucG5nJyxcclxuICAgICAgICB2YWx1ZTogZmFsc2UsXHJcbiAgICAgICAgdmlzaWJpbGl0eTp0cnVlLFxyXG4gICAgICAgIG1vZHVsZTogJ1JJU0snLFxyXG4gICAgICAgIHN1YldpZGdldHM6IFtdXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICB0aXRsZTogJ1Jpc2sgSGVhdG1hcCcsXHJcbiAgICAgICAgaWQ6ICdyaXNrX2hlYXRtYXAnLFxyXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnVGhlwqBSaXNrIEhlYXRtYXAgZGlzcGxheXMgdGhlIHJpc2sgbWF0cml4IGZvciBhbnkgdHdvIHJpc2sgZmFjdG9ycy4nLFxyXG4gICAgICAgIHdpZGdldEltYWdlOiAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy9jb25maWd1cmUtd2lkZ2V0L2Fzc2V0cy9pbWFnZXMvcmlzay1oZWF0bWFwLnBuZycsXHJcbiAgICAgICAgdmFsdWU6IGZhbHNlLFxyXG4gICAgICAgIHZpc2liaWxpdHk6dHJ1ZSxcclxuICAgICAgICBtb2R1bGU6ICdSSVNLJyxcclxuICAgICAgICBzdWJXaWRnZXRzOiBbXVxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgdGl0bGU6ICdJbmhlcmVudCBSaXNrIFJhdGluZyBieSBDYXRlZ29yaWVzJyxcclxuICAgICAgICBpZDogJ2luaGVyZW50X3Jpc2tfcmF0aW5nX2J5X2NhdGVnb3JpZXMnLFxyXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnVGhpcyB3aWRnZXQgc2hvd3MgdGhlIG51bWJlciBvZiByaXNrcyB3aXRoaW4gZWFjaCBpbmhlcmVudCByaXNrIHJhdGluZywgZ3JvdXBlZCBhY2NvcmRpbmcgdG8gdGhlIFJpc2sgQ2F0ZWdvcnnCoHRoYXTCoHRoZSByaXNrIGlzIGFzc2lnbmVkIHRvLicsXHJcbiAgICAgICAgd2lkZ2V0SW1hZ2U6ICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL2NvbmZpZ3VyZS13aWRnZXQvYXNzZXRzL2ltYWdlcy9pbmhlcmVudC1jYXRlZ29yaWVzLnBuZycsXHJcbiAgICAgICAgdmFsdWU6IGZhbHNlLFxyXG4gICAgICAgIHZpc2liaWxpdHk6dHJ1ZSxcclxuICAgICAgICBtb2R1bGU6ICdSSVNLJyxcclxuICAgICAgICBzdWJXaWRnZXRzOiBbXVxyXG4gICAgICB9LFxyXG5cclxuICAgICAge1xyXG4gICAgICAgIHRpdGxlOiAnUmVzaWR1YWwgUmlzayBSYXRpbmcgYnkgQ2F0ZWdvcmllcycsXHJcbiAgICAgICAgaWQ6ICdyZXNpZHVhbF9yaXNrX3JhdGluZ19ieV9jYXRlZ29yaWVzJyxcclxuICAgICAgICBkZXNjcmlwdGlvbjogJ1RoaXMgd2lkZ2V0IHNob3dzIHRoZSBudW1iZXIgb2Ygcmlza3Mgd2l0aGluIGVhY2ggcmVzaWR1YWwgcmlzayByYXRpbmcsIGdyb3VwZWQgYWNjb3JkaW5nIHRvIHRoZSBSaXNrIENhdGVnb3J5wqB0aGF0wqB0aGUgcmlzayBpcyBhc3NpZ25lZCB0by4nLFxyXG4gICAgICAgIHdpZGdldEltYWdlOiAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy9jb25maWd1cmUtd2lkZ2V0L2Fzc2V0cy9pbWFnZXMvcmVzaWR1YWwtY2F0ZWdvcmllcy5wbmcnLFxyXG4gICAgICAgIHZhbHVlOiBmYWxzZSxcclxuICAgICAgICB2aXNpYmlsaXR5OnRydWUsXHJcbiAgICAgICAgbW9kdWxlOiAnUklTSycsXHJcbiAgICAgICAgc3ViV2lkZ2V0czogW11cclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIHRpdGxlOiAnSW5oZXJlbnQgUmlzayBSYXRpbmcgVHJlbmQgYnkgUmVzcG9uc2liaWxpdHkgQ2VudGVycycsXHJcbiAgICAgICAgaWQ6ICdpbmhlcmVudF9yaXNrX3JhdGluZ190cmVuZF9ieV9yZXNwb25zaWJpbGl0eV9jZW50ZXJzJyxcclxuICAgICAgICBkZXNjcmlwdGlvbjogJ1RoaXMgd2lkZ2V0IGlzIGEgZ3JhcGhpY2FsIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBudW1iZXIgb2Ygcmlza3Mgd2l0aGluIGVhY2ggaW5oZXJlbnQgcmlzayByYXRpbmcsIGdyb3VwZWQgYWNjb3JkaW5nIHRvIHRoZSBSZXNwb25zaWJpbGl0eSBDZW50ZXIgZXhwb3NlZCB0byB0aGUgcmlzay4nLFxyXG4gICAgICAgIHdpZGdldEltYWdlOiAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy9jb25maWd1cmUtd2lkZ2V0L2Fzc2V0cy9pbWFnZXMvaW5oZXJlbnQtdHJlbmQucG5nJyxcclxuICAgICAgICB2YWx1ZTogZmFsc2UsXHJcbiAgICAgICAgdmlzaWJpbGl0eTp0cnVlLFxyXG4gICAgICAgIG1vZHVsZTogJ1JJU0snLFxyXG4gICAgICAgIHN1YldpZGdldHM6IFtdXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICB0aXRsZTogJ1Jlc2lkdWFsIFJpc2sgUmF0aW5nIFRyZW5kIGJ5IFJlc3BvbnNpYmlsaXR5IENlbnRlcnMnLFxyXG4gICAgICAgIGlkOiAncmVzaWR1YWxfcmlza19yYXRpbmdfdHJlbmRfYnlfcmVzcG9uc2liaWxpdHlfY2VudGVycycsXHJcbiAgICAgICAgZGVzY3JpcHRpb246ICdUaGlzIHdpZGdldCBpcyBhIGdyYXBoaWNhbCByZXByZXNlbnRhdGlvbiBvZiB0aGUgbnVtYmVyIG9mIHJpc2tzIHdpdGhpbiBlYWNoIHJlc2lkdWFsIHJpc2sgcmF0aW5nLCBncm91cGVkIGFjY29yZGluZyB0byB0aGUgUmVzcG9uc2liaWxpdHkgQ2VudGVyIGV4cG9zZWQgdG8gdGhlIHJpc2suJyxcclxuICAgICAgICB3aWRnZXRJbWFnZTogJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvY29uZmlndXJlLXdpZGdldC9hc3NldHMvaW1hZ2VzL3Jlc2lkdWFsLXRyZW5kLnBuZycsXHJcbiAgICAgICAgdmFsdWU6IGZhbHNlLFxyXG4gICAgICAgIHZpc2liaWxpdHk6dHJ1ZSxcclxuICAgICAgICBtb2R1bGU6ICdSSVNLJyxcclxuICAgICAgICBzdWJXaWRnZXRzOiBbXVxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgdGl0bGU6ICdSaXNrIFJhdGluZyBUcmVuZCBieSBDYXRlZ29yaWVzJyxcclxuICAgICAgICBpZDogJ3Jpc2tfcmF0aW5nX3RyZW5kX2J5X2NhdGVnb3JpZXMnLFxyXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnVGhpcyB3aWRnZXRzIGlzIGEgdHJlbmQgY2hhcnQgdGhhdCBzaG93cyB0aGUgaW5oZXJlbnQgYW5kIHJlc2lkdWFsIHJpc2sgcmF0aW5nIHRyZW5kIGFjcm9zcyB0aGUgZGlmZmVyZW50IFJpc2sgQ2F0ZWdvcmllcy4nLFxyXG4gICAgICAgIHdpZGdldEltYWdlOiAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy9jb25maWd1cmUtd2lkZ2V0L2Fzc2V0cy9pbWFnZXMvcmlzay10cmVuZC5wbmcnLFxyXG4gICAgICAgIHZhbHVlOiBmYWxzZSxcclxuICAgICAgICB2aXNpYmlsaXR5OnRydWUsXHJcbiAgICAgICAgbW9kdWxlOiAnUklTSycsXHJcbiAgICAgICAgc3ViV2lkZ2V0czogW11cclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIHRpdGxlOiAnVG9wIDUgUmlzayBSYXRpbmdzJyxcclxuICAgICAgICBpZDogJ3RvcF81X3Jlc2lkdWFsX3Jpc2tfcmF0aW5ncycsXHJcbiAgICAgICAgZGVzY3JpcHRpb246ICdUaGlzIHdpZGdldHMgc2hvd3MgdGhzIHRvcCBmaXZlIHJpc2tzIHdpdGggdGhlIGhpZ2hlc3QgcmlzayByYXRpbmcuJyxcclxuICAgICAgICB3aWRnZXRJbWFnZTogJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvY29uZmlndXJlLXdpZGdldC9hc3NldHMvaW1hZ2VzLzUtcmlzay1yYXRpbmdzLnBuZycsXHJcbiAgICAgICAgdmFsdWU6IGZhbHNlLFxyXG4gICAgICAgIHZpc2liaWxpdHk6dHJ1ZSxcclxuICAgICAgICBtb2R1bGU6ICdSSVNLJyxcclxuICAgICAgICBzdWJXaWRnZXRzOiBbXVxyXG4gICAgICB9XHJcbiAgICBdXHJcbiAgfVxyXG5cclxuICBzZWxlY3RXaWRnZXQoZXZlbnQ6IGFueSwgbW9kdWxlOiAnQ09NUExJQU5DRScgfCAnUklTSycsIHdpZGdldElkOiBzdHJpbmcsIHN1YldpZGdldElkPzogc3RyaW5nKSB7XHJcbiAgICBjb25zdCB3aWRnZXRJbmRleCA9IHRoaXMud2lkZ2V0c0xpc3RbbW9kdWxlXS5maW5kSW5kZXgoKGVsZTogYW55KSA9PiBlbGUuaWQgPT0gd2lkZ2V0SWQpO1xyXG4gICAgY29uc3QgaXNTdWJXaWRnZXRBZGRhYmxlID0gdGhpcy5zZWxlY3RlZFdpZGdldHMuZmluZEluZGV4KCggd2lkZ2V0OiBhbnkpID0+IHdpZGdldC5pZCA9PT0gd2lkZ2V0SWQgKVxyXG4gICAgaWYgKGV2ZW50KSB7XHJcbiAgICAgIGlmICh0aGlzLnNlbGVjdGVkV2lkZ2V0cy5sZW5ndGggPj0gMTAgJiYgIShzdWJXaWRnZXRJZCAmJiBpc1N1YldpZGdldEFkZGFibGUgPj0gMCkpIHtcclxuICAgICAgICB0aGlzLnNuYWNrQmFyLnNob3coJ1lvdSBjYW5ub3QgYWRkIG1vcmUgdGhhbiAxMCB3aWRnZXRzLicpO1xyXG4gICAgICAgIHRoaXMuc2hvd1dpZGdldHMgPSBmYWxzZTtcclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgIHRoaXMud2lkZ2V0c0xpc3RbbW9kdWxlXVt3aWRnZXRJbmRleF0udmFsdWUgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuc2hvd1dpZGdldHMgPSB0cnVlO1xyXG4gICAgICAgIH0sIDEwKTtcclxuICAgICAgICByZXR1cm5cclxuICAgICAgfVxyXG4gICAgICB0aGlzLndpZGdldHNMaXN0W21vZHVsZV1bd2lkZ2V0SW5kZXhdLnZhbHVlID0gdHJ1ZTtcclxuICAgICAgaWYgKHRoaXMud2lkZ2V0c0xpc3RbbW9kdWxlXVt3aWRnZXRJbmRleF0uc3ViV2lkZ2V0cy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgaWYgKCFzdWJXaWRnZXRJZCkge1xyXG4gICAgICAgICAgdGhpcy53aWRnZXRzTGlzdFttb2R1bGVdW3dpZGdldEluZGV4XS5zdWJXaWRnZXRzLmZvckVhY2goZWxlID0+IGVsZS52YWx1ZSA9IHRydWUpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBjb25zdCBzdWJXaWRnZXRJbmRleCA9IHRoaXMud2lkZ2V0c0xpc3RbbW9kdWxlXVt3aWRnZXRJbmRleF0uc3ViV2lkZ2V0cy5maW5kSW5kZXgoKGVsZTogYW55KSA9PiBlbGUuaWQgPT0gc3ViV2lkZ2V0SWQpO1xyXG4gICAgICAgICAgdGhpcy53aWRnZXRzTGlzdFttb2R1bGVdW3dpZGdldEluZGV4XS5zdWJXaWRnZXRzW3N1YldpZGdldEluZGV4XS52YWx1ZSA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAodGhpcy53aWRnZXRzTGlzdFttb2R1bGVdW3dpZGdldEluZGV4XS5zdWJXaWRnZXRzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICBpZiAoIXN1YldpZGdldElkKSB7XHJcbiAgICAgICAgICB0aGlzLndpZGdldHNMaXN0W21vZHVsZV1bd2lkZ2V0SW5kZXhdLnZhbHVlID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLndpZGdldHNMaXN0W21vZHVsZV1bd2lkZ2V0SW5kZXhdLnN1YldpZGdldHMuZm9yRWFjaCgoZWxlOiBhbnkpID0+IGVsZS52YWx1ZSA9IGZhbHNlKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgY29uc3Qgc3ViV2lkZ2V0SW5kZXggPSB0aGlzLndpZGdldHNMaXN0W21vZHVsZV1bd2lkZ2V0SW5kZXhdLnN1YldpZGdldHMuZmluZEluZGV4KChlbGU6IGFueSkgPT4gZWxlLmlkID09IHN1YldpZGdldElkKTtcclxuICAgICAgICAgIHRoaXMud2lkZ2V0c0xpc3RbbW9kdWxlXVt3aWRnZXRJbmRleF0uc3ViV2lkZ2V0c1tzdWJXaWRnZXRJbmRleF0udmFsdWUgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgICBjb25zdCBpc0FsbFdpZGdldHNSZW1vdmVkID0gdGhpcy53aWRnZXRzTGlzdFttb2R1bGVdW3dpZGdldEluZGV4XS5zdWJXaWRnZXRzLmV2ZXJ5KChlbGU6IGFueSkgPT4gZWxlLnZhbHVlID09IGZhbHNlKTtcclxuICAgICAgICAgIGlmIChpc0FsbFdpZGdldHNSZW1vdmVkKSB7XHJcbiAgICAgICAgICAgIHRoaXMud2lkZ2V0c0xpc3RbbW9kdWxlXVt3aWRnZXRJbmRleF0udmFsdWUgPSBmYWxzZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy53aWRnZXRzTGlzdFttb2R1bGVdW3dpZGdldEluZGV4XS52YWx1ZSA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLnNldFNlbGVjdGVkV2lkZ2V0cygpO1xyXG5cclxuICB9XHJcbiAgc2V0U2VsZWN0ZWRXaWRnZXRzKCkge1xyXG4gICAgdGhpcy5zZWxlY3RlZFdpZGdldHMgPSBbXVxyXG4gICAgdGhpcy53aWRnZXRzTGlzdC5DT01QTElBTkNFLmZvckVhY2goKGVsZTogYW55KSA9PiB7XHJcbiAgICAgIGlmIChlbGUudmFsdWUpIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkV2lkZ2V0cy5wdXNoKGVsZSlcclxuICAgICAgfVxyXG4gICAgfSlcclxuICAgIHRoaXMud2lkZ2V0c0xpc3QuUklTSy5mb3JFYWNoKChlbGU6IGFueSkgPT4ge1xyXG4gICAgICBpZiAoZWxlLnZhbHVlKSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFdpZGdldHMucHVzaChlbGUpXHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICByZW1vdmVXaWRnZXQod2lkZ2V0OiB3aWRnZXRDb25maWcpIHtcclxuICAgIGNvbnN0IHdpZGdldEluZGV4ID0gdGhpcy53aWRnZXRzTGlzdFt3aWRnZXQubW9kdWxlXS5maW5kSW5kZXgoKGVsZTogYW55KSA9PiBlbGUuaWQgPT0gd2lkZ2V0LmlkKTtcclxuICAgIHRoaXMud2lkZ2V0c0xpc3Rbd2lkZ2V0Lm1vZHVsZV1bd2lkZ2V0SW5kZXhdLnZhbHVlID0gZmFsc2U7XHJcbiAgICBpZiAodGhpcy53aWRnZXRzTGlzdFt3aWRnZXQubW9kdWxlXVt3aWRnZXRJbmRleF0uc3ViV2lkZ2V0cy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMud2lkZ2V0c0xpc3Rbd2lkZ2V0Lm1vZHVsZV1bd2lkZ2V0SW5kZXhdLnN1YldpZGdldHMuZm9yRWFjaCgoZWxlOiBhbnkpID0+IGVsZS52YWx1ZSA9IGZhbHNlKTtcclxuICAgIH1cclxuICAgIHRoaXMuc2V0U2VsZWN0ZWRXaWRnZXRzKClcclxuICB9XHJcblxyXG4gIG9uTmV4dENsaWNrKCkge1xyXG4gICAgdGhpcy53aWRnZXRzRGF0YU1vZGlmaWVkLmVtaXQodGhpcy5zZWxlY3RlZFdpZGdldHMpO1xyXG4gIH1cclxuXHJcbiAgY2xvc2VDb25maWd1cmVEYXNoYm9hcmQoKSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkV2lkZ2V0cyA9IFtdO1xyXG4gICAgdGhpcy5kaWFsb2cuY2xvc2UoKTtcclxuICAgIHRoaXMuY2xvc2VDb25maWd1cmVXaWRnZXRzLmVtaXQoZmFsc2UpO1xyXG4gIH1cclxuXHJcbiAgc2V0V2lkZ2V0c1Zpc2liaWxpdHlUb0ZhbHNlKCl7XHJcbiAgICB0aGlzLndpZGdldHNMaXN0LkNPTVBMSUFOQ0UuZm9yRWFjaCgoZWxlOiBhbnkpID0+IHtcclxuICAgICAgICBlbGUudmlzaWJpbGl0eSA9IGZhbHNlO1xyXG4gICAgICAgIGlmIChlbGUuc3ViV2lkZ2V0cy5sZW5ndGggPiAwKSB7ICAgICAgICBcclxuICAgICAgICAgIGVsZS5zdWJXaWRnZXRzLmZvckVhY2goKHN1YkVsZW1lbnQ6IGFueSkgPT4geyAgICAgICAgXHJcbiAgICAgICAgICAgIHN1YkVsZW1lbnQudmlzaWJpbGl0eSA9IGZhbHNlO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfSlcclxuICAgIHRoaXMud2lkZ2V0c0xpc3QuUklTSy5mb3JFYWNoKChlbGU6IGFueSkgPT4ge1xyXG4gICAgICAgIGVsZS52aXNpYmlsaXR5ID0gZmFsc2U7XHJcbiAgICAgICAgaWYgKGVsZS5zdWJXaWRnZXRzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgIGVsZS5zdWJXaWRnZXRzLmZvckVhY2goKHN1YkVsZW1lbnQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICBzdWJFbGVtZW50LnZpc2liaWxpdHkgPSBmYWxzZTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG59XHJcbiJdfQ==