@hmcts/ccd-case-ui-toolkit 7.0.41 → 7.0.42-cfv-timestamps

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.
@@ -51,7 +51,7 @@ function CaseFileViewFolderComponent_div_8_cdk_nested_tree_node_4_Template(rf, c
51
51
  i0.ɵɵadvance(4);
52
52
  i0.ɵɵtextInterpolate1(" ", node_r2.name, " ");
53
53
  i0.ɵɵadvance(3);
54
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(9, 5, node_r2.upload_timestamp, "dd MMM YYYY"));
54
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(9, 5, node_r2.upload_timestamp, "dd MMM YYYY HH:mm"));
55
55
  i0.ɵɵadvance(3);
56
56
  i0.ɵɵproperty("allowMoving", ctx_r2.allowMoving);
57
57
  } }
@@ -344,7 +344,7 @@ export class CaseFileViewFolderComponent {
344
344
  }
345
345
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CaseFileViewFolderComponent, [{
346
346
  type: Component,
347
- args: [{ selector: 'ccd-case-file-view-folder', template: "<div class=\"document-filter-container\">\n <div class=\"form-group document-filter\" [formGroup]=\"documentFilterFormGroup\">\n <input class=\"form-control document-search\"\n type=\"search\"\n id=\"document-search\"\n name=\"documentSearchFormControl\"\n formControlName=\"documentSearchFormControl\"\n placeholder=\"Search by document name\"\n aria-label=\"Search by document name\">\n </div>\n</div>\n\n<div class=\"document-folders-header\">\n <div class=\"document-folders-header__title\">Documents ({{ documentCount }})</div>\n <div>\n <ccd-case-file-view-folder-sort\n (sortAscending)=\"sortDataSourceAscending($event)\"\n (sortDescending)=\"sortDataSourceDescending($event)\"\n ></ccd-case-file-view-folder-sort>\n </div>\n</div>\n\n<div class=\"document-tree-container\" *ngIf=\"documentTreeData\">\n <div *ngIf=\"!nestedDataSource || nestedDataSource.length === 0\">\n No results found\n </div>\n <div>\n <cdk-tree [dataSource]=\"nestedDataSource\" [treeControl]=\"nestedTreeControl\">\n <!-- document -->\n <cdk-nested-tree-node class=\"document-tree-container__node document-tree-container__node--document\" *cdkTreeNodeDef=\"let node\">\n <button class=\"node\" (click)=\"selectedNodeItem = node; clickedDocument.emit(node)\"\n [class.node--selected]=\"selectedNodeItem?.name === node.name\">\n <div class=\"node__icon\" disabled>\n <img src=\"/assets/img/case-file-view/case-file-view-document.svg\" class=\"node__iconImg\" alt=\"Document icon\">\n </div>\n <span class=\"node__name node-name-document\">\n {{node.name}}\n <br>\n <span class=\"node__document-upload-timestamp\">{{node.upload_timestamp | date:\"dd MMM YYYY\"}}</span>\n </span>\n <div class=\"node__document-options\">\n <ccd-case-file-view-folder-document-actions\n (changeFolderAction)=\"triggerDocumentAction('changeFolder', node)\"\n (openInANewTabAction)=\"triggerDocumentAction('openInANewTab', node)\"\n (downloadAction)=\"triggerDocumentAction('download', node)\"\n (printAction)=\"triggerDocumentAction('print', node)\"\n [allowMoving]=\"allowMoving\"\n >\n </ccd-case-file-view-folder-document-actions>\n </div>\n </button>\n </cdk-nested-tree-node>\n <!-- folder-->\n <cdk-nested-tree-node class=\"document-tree-container__node document-tree-container__folder\" *cdkTreeNodeDef=\"let node; when: nestedChildren\">\n <button class=\"node\" cdkTreeNodeToggle>\n <div class=\"node__icon\" [attr.aria-label]=\"'toggle ' + node.name\" >\n <img class=\"node__iconImg\"\n [src]=\"nestedTreeControl.isExpanded(node) ? '/assets/images/folder-open.png' : '/assets/images/folder.png'\" alt=\"Folder icon\">\n <span class=\"node__count\">{{node.childDocumentCount}}</span>\n </div>\n <span class=\"node__name node__name--folder\">{{node.name}}</span>\n </button>\n\n <div [class.document-tree-invisible]=\"!nestedTreeControl.isExpanded(node)\">\n <ng-container cdkTreeNodeOutlet></ng-container>\n </div>\n </cdk-nested-tree-node>\n </cdk-tree>\n </div>\n</div>\n", styles: [":host{display:flex;height:100%;flex-direction:column}:host .document-tree-container{flex:1 0}.document-filter-container{border-bottom:2px solid #C9C9C9}.document-filter-container .document-filter{padding:10px}.document-filter-container .document-filter .document-search{background:url(/assets/images/icon-search-black.svg) no-repeat right #fff;background-position-x:calc(100% - 4px);padding-right:30px;width:100%}.document-filter-container .documents-title{height:30%;margin-left:8px;font-weight:700}.document-tree-container{padding:4px;overflow-x:hidden;overflow-y:scroll}.document-tree-container__node{display:block}.document-tree-container__node .document-tree-container__node{padding-left:40px}.document-tree-container .document-tree-invisible{display:none}.document-tree-container::-webkit-scrollbar{width:7px}.document-tree-container::-webkit-scrollbar-thumb{border:4px solid rgba(0,0,0,0);background-clip:padding-box;border-radius:9999px;background-color:#aaa}.document-tree-container::-webkit-scrollbar-button{display:none}.document-tree-container::-webkit-scrollbar-track-piece{background:#eee}.document-tree-container::-webkit-scrollbar-thumb{background:#ccc}.document-folders-header{display:flex;align-items:center;justify-content:space-between;border-bottom:2px solid #C9C9C9;padding:10px}.document-folders-header__title{font-weight:700}.node{display:flex;align-items:center;width:100%;padding:10px;background:none;border:0;cursor:pointer;white-space:nowrap}.node--selected{background:#fff2cc}.node__icon{position:relative;display:inline-block}.node__count{color:#fff;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:.875rem;padding-top:4px}.node__iconImg{display:block;height:30px;width:30px}.node__name{margin-left:6px;font-size:1rem;overflow:hidden;text-overflow:ellipsis}.node__document-options{margin-left:auto;margin-right:0}.node__document-upload-timestamp{font-size:.8rem;float:left;padding-left:10px}\n"] }]
347
+ args: [{ selector: 'ccd-case-file-view-folder', template: "<div class=\"document-filter-container\">\n <div class=\"form-group document-filter\" [formGroup]=\"documentFilterFormGroup\">\n <input class=\"form-control document-search\"\n type=\"search\"\n id=\"document-search\"\n name=\"documentSearchFormControl\"\n formControlName=\"documentSearchFormControl\"\n placeholder=\"Search by document name\"\n aria-label=\"Search by document name\">\n </div>\n</div>\n\n<div class=\"document-folders-header\">\n <div class=\"document-folders-header__title\">Documents ({{ documentCount }})</div>\n <div>\n <ccd-case-file-view-folder-sort\n (sortAscending)=\"sortDataSourceAscending($event)\"\n (sortDescending)=\"sortDataSourceDescending($event)\"\n ></ccd-case-file-view-folder-sort>\n </div>\n</div>\n\n<div class=\"document-tree-container\" *ngIf=\"documentTreeData\">\n <div *ngIf=\"!nestedDataSource || nestedDataSource.length === 0\">\n No results found\n </div>\n <div>\n <cdk-tree [dataSource]=\"nestedDataSource\" [treeControl]=\"nestedTreeControl\">\n <!-- document -->\n <cdk-nested-tree-node class=\"document-tree-container__node document-tree-container__node--document\" *cdkTreeNodeDef=\"let node\">\n <button class=\"node\" (click)=\"selectedNodeItem = node; clickedDocument.emit(node)\"\n [class.node--selected]=\"selectedNodeItem?.name === node.name\">\n <div class=\"node__icon\" disabled>\n <img src=\"/assets/img/case-file-view/case-file-view-document.svg\" class=\"node__iconImg\" alt=\"Document icon\">\n </div>\n <span class=\"node__name node-name-document\">\n {{node.name}}\n <br>\n <span class=\"node__document-upload-timestamp\">{{node.upload_timestamp | date:\"dd MMM YYYY HH:mm\"}}</span>\n </span>\n <div class=\"node__document-options\">\n <ccd-case-file-view-folder-document-actions\n (changeFolderAction)=\"triggerDocumentAction('changeFolder', node)\"\n (openInANewTabAction)=\"triggerDocumentAction('openInANewTab', node)\"\n (downloadAction)=\"triggerDocumentAction('download', node)\"\n (printAction)=\"triggerDocumentAction('print', node)\"\n [allowMoving]=\"allowMoving\"\n >\n </ccd-case-file-view-folder-document-actions>\n </div>\n </button>\n </cdk-nested-tree-node>\n <!-- folder-->\n <cdk-nested-tree-node class=\"document-tree-container__node document-tree-container__folder\" *cdkTreeNodeDef=\"let node; when: nestedChildren\">\n <button class=\"node\" cdkTreeNodeToggle>\n <div class=\"node__icon\" [attr.aria-label]=\"'toggle ' + node.name\" >\n <img class=\"node__iconImg\"\n [src]=\"nestedTreeControl.isExpanded(node) ? '/assets/images/folder-open.png' : '/assets/images/folder.png'\" alt=\"Folder icon\">\n <span class=\"node__count\">{{node.childDocumentCount}}</span>\n </div>\n <span class=\"node__name node__name--folder\">{{node.name}}</span>\n </button>\n\n <div [class.document-tree-invisible]=\"!nestedTreeControl.isExpanded(node)\">\n <ng-container cdkTreeNodeOutlet></ng-container>\n </div>\n </cdk-nested-tree-node>\n </cdk-tree>\n </div>\n</div>\n", styles: [":host{display:flex;height:100%;flex-direction:column}:host .document-tree-container{flex:1 0}.document-filter-container{border-bottom:2px solid #C9C9C9}.document-filter-container .document-filter{padding:10px}.document-filter-container .document-filter .document-search{background:url(/assets/images/icon-search-black.svg) no-repeat right #fff;background-position-x:calc(100% - 4px);padding-right:30px;width:100%}.document-filter-container .documents-title{height:30%;margin-left:8px;font-weight:700}.document-tree-container{padding:4px;overflow-x:hidden;overflow-y:scroll}.document-tree-container__node{display:block}.document-tree-container__node .document-tree-container__node{padding-left:40px}.document-tree-container .document-tree-invisible{display:none}.document-tree-container::-webkit-scrollbar{width:7px}.document-tree-container::-webkit-scrollbar-thumb{border:4px solid rgba(0,0,0,0);background-clip:padding-box;border-radius:9999px;background-color:#aaa}.document-tree-container::-webkit-scrollbar-button{display:none}.document-tree-container::-webkit-scrollbar-track-piece{background:#eee}.document-tree-container::-webkit-scrollbar-thumb{background:#ccc}.document-folders-header{display:flex;align-items:center;justify-content:space-between;border-bottom:2px solid #C9C9C9;padding:10px}.document-folders-header__title{font-weight:700}.node{display:flex;align-items:center;width:100%;padding:10px;background:none;border:0;cursor:pointer;white-space:nowrap}.node--selected{background:#fff2cc}.node__icon{position:relative;display:inline-block}.node__count{color:#fff;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:.875rem;padding-top:4px}.node__iconImg{display:block;height:30px;width:30px}.node__name{margin-left:6px;font-size:1rem;overflow:hidden;text-overflow:ellipsis}.node__document-options{margin-left:auto;margin-right:0}.node__document-upload-timestamp{font-size:.8rem;float:left;padding-left:10px}\n"] }]
348
348
  }], () => [{ type: i1.WindowService }, { type: i2.Router }, { type: i1.DocumentManagementService }, { type: i3.MatLegacyDialog }, { type: i4.AbstractAppConfig }], { categoriesAndDocuments: [{
349
349
  type: Input
350
350
  }], allowMoving: [{
@@ -355,4 +355,4 @@ export class CaseFileViewFolderComponent {
355
355
  type: Output
356
356
  }] }); })();
357
357
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CaseFileViewFolderComponent, { className: "CaseFileViewFolderComponent", filePath: "lib/shared/components/palette/case-file-view/components/case-file-view-folder/case-file-view-folder.component.ts", lineNumber: 27 }); })();
358
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS1maWxlLXZpZXctZm9sZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9wYWxldHRlL2Nhc2UtZmlsZS12aWV3L2NvbXBvbmVudHMvY2FzZS1maWxlLXZpZXctZm9sZGVyL2Nhc2UtZmlsZS12aWV3LWZvbGRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvcGFsZXR0ZS9jYXNlLWZpbGUtdmlldy9jb21wb25lbnRzL2Nhc2UtZmlsZS12aWV3LWZvbGRlci9jYXNlLWZpbGUtdmlldy1mb2xkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUYsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsZUFBZSxJQUFJLFNBQVMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLE1BQU0sTUFBTSxlQUFlLENBQUM7QUFDbkMsT0FBTyxFQUFFLFVBQVUsRUFBZ0IsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3BELE9BQU8sRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDakUsT0FBTyxFQUlMLGdCQUFnQixFQUNoQixvQkFBb0IsRUFDckIsTUFBTSxzQ0FBc0MsQ0FBQztBQUM5QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDbEUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ25GLE9BQU8sRUFBRSxtQ0FBbUMsRUFBRSxNQUFNLDRFQUE0RSxDQUFDOzs7Ozs7Ozs7Ozs7SUNLL0gsMkJBQWdFO0lBQzlELGtDQUNGO0lBQUEsaUJBQU07Ozs7SUFLQSxBQURGLGdEQUErSCxpQkFFdkQ7SUFEakQsNFFBQWtDLG9DQUEwQixLQUFDO0lBRWhGLCtCQUFpQztJQUMvQiwwQkFBNEc7SUFDOUcsaUJBQU07SUFDTixnQ0FBNEM7SUFDMUMsWUFDQTtJQUFBLHFCQUFJO0lBQ0osZ0NBQThDO0lBQUEsWUFBOEM7O0lBQzlGLEFBRDhGLGlCQUFPLEVBQzlGO0lBRUwsQUFERixnQ0FBb0Msc0RBT2pDO0lBRkMsQUFEQSxBQURBLEFBREEsd1NBQXNCLDZCQUFzQixjQUFjLFVBQU8sS0FBQyw2UkFDM0MsNkJBQXNCLGVBQWUsVUFBTyxLQUFDLG1SQUNsRCw2QkFBc0IsVUFBVSxVQUFPLEtBQUMsNlFBQzNDLDZCQUFzQixPQUFPLFVBQU8sS0FBQztJQU01RCxBQURFLEFBREUsQUFERSxpQkFBNkMsRUFDekMsRUFDQyxFQUNZOzs7O0lBcEJiLGNBQTZEO0lBQTdELDBIQUE2RDtJQUtqRSxlQUNBO0lBREEsNkNBQ0E7SUFDOEMsZUFBOEM7SUFBOUMsbUZBQThDO0lBUTFGLGVBQTJCO0lBQTNCLGdEQUEyQjs7O0lBUy9CLEFBREYsQUFERixnREFBNkksaUJBQ3BHLGNBQzhCO0lBQ2pFLDBCQUNtSTtJQUNuSSxnQ0FBMEI7SUFBQSxZQUEyQjtJQUN2RCxBQUR1RCxpQkFBTyxFQUN4RDtJQUNOLGdDQUE0QztJQUFBLFlBQWE7SUFDM0QsQUFEMkQsaUJBQU8sRUFDekQ7SUFFVCwyQkFBMkU7SUFDekUsNEJBQStDO0lBRW5ELEFBREUsaUJBQU0sRUFDZTs7OztJQVhLLGVBQXlDOztJQUUxRCxjQUEyRztJQUEzRyxxSkFBMkc7SUFDdEYsZUFBMkI7SUFBM0IsZ0RBQTJCO0lBRVgsZUFBYTtJQUFiLGtDQUFhO0lBR3RELGNBQXFFO0lBQXJFLHdGQUFxRTs7O0lBekNsRiw4QkFBOEQ7SUFDNUQsa0ZBQWdFO0lBSTlELEFBREYsMkJBQUssa0JBQ3lFO0lBMEIxRSxBQXhCQSxzSEFBK0gseUdBd0JjO0lBZ0JuSixBQURFLEFBREUsaUJBQVcsRUFDUCxFQUNGOzs7SUE5Q0UsY0FBd0Q7SUFBeEQsdUZBQXdEO0lBSWxELGVBQStCO0lBQUMsQUFBaEMsb0RBQStCLHlDQUFrQztJQTBCOEMsZUFBb0I7SUFBcEIsMERBQW9COztBRGxDakosTUFBTSxDQUFDLE1BQU0sNkJBQTZCLEdBQUcsbUJBQW1CLENBQUM7QUFPakUsTUFBTSxPQUFPLDJCQUEyQjtJQW1DbkI7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQXRDWCxNQUFNLENBQVUsNkJBQTZCLEdBQUcseUJBQXlCLENBQUM7SUFDMUUsTUFBTSxDQUFVLGlDQUFpQyxHQUFHLDJCQUEyQixDQUFDO0lBQ2hGLE1BQU0sQ0FBVSx5QkFBeUIsR0FBRyxDQUFDLENBQUM7SUFFdEMsc0JBQXNCLENBQXFDO0lBQzNELFdBQVcsQ0FBVTtJQUNwQixlQUFlLEdBQUcsSUFBSSxZQUFZLEVBQW9CLENBQUM7SUFDdkQsWUFBWSxHQUFHLElBQUksWUFBWSxFQUF1RCxDQUFDO0lBRWpHLGlCQUFpQixDQUFzQztJQUN2RCxnQkFBZ0IsQ0FBcUI7SUFDckMsVUFBVSxHQUEyQixFQUFFLENBQUM7SUFDeEMsa0NBQWtDLENBQWU7SUFDakQsZ0JBQWdCLENBQStCO0lBRS9DLHVCQUF1QixDQUFZO0lBQ25DLHlCQUF5QixDQUFjO0lBQ3ZDLGdCQUFnQixDQUFxQjtJQUNyQywwQkFBMEIsQ0FBZTtJQUN6QyxnQkFBZ0IsQ0FBUztJQUV4QixXQUFXLEdBQUcsQ0FBQyxJQUFzQixFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzdELGNBQWMsR0FBRyxDQUFDLENBQVMsRUFBRSxRQUEwQixFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDO0lBQ3JGLElBQVcsYUFBYTtRQUN0QixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUNsQyxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUU7Z0JBQ2hELE9BQU8sR0FBRyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztZQUN2QyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDUixDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sQ0FBQyxDQUFDO1FBQ1gsQ0FBQztJQUNILENBQUM7SUFFRCxZQUNtQixhQUE0QixFQUM1QixNQUFjLEVBQ2QseUJBQW9ELEVBQ3BELE1BQWlCLEVBQ2pCLFNBQTRCO1FBSjVCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCw4QkFBeUIsR0FBekIseUJBQXlCLENBQTJCO1FBQ3BELFdBQU0sR0FBTixNQUFNLENBQVc7UUFDakIsY0FBUyxHQUFULFNBQVMsQ0FBbUI7UUFFN0MsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksaUJBQWlCLENBQW1CLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNyRixDQUFDO0lBRU0sUUFBUTtRQUNiLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxJQUFJLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMseUJBQXlCLEdBQUcsSUFBSSxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDckQsSUFBSSxDQUFDLHVCQUF1QixDQUFDLFVBQVUsQ0FBQywyQkFBMkIsQ0FBQyxpQ0FBaUMsRUFBRSxJQUFJLENBQUMseUJBQXlCLENBQUMsQ0FBQztRQUV2SSw0RkFBNEY7UUFDNUYsSUFBSSxDQUFDLDBCQUEwQixHQUFHLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUNoRixHQUFHLENBQUMsQ0FBQyxVQUFrQixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxFQUN0RSxTQUFTLENBQUMsQ0FBQyxVQUFrQixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQ2hGLENBQUMsU0FBUyxDQUFDLGdCQUFnQixDQUFDLEVBQUU7WUFDN0IsSUFBSSxDQUFDLGdCQUFnQixHQUFHLGdCQUFnQixDQUFDO1lBQ3pDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLEdBQUcsZ0JBQWdCLENBQUM7WUFDcEQsSUFBSSxDQUFDLGdCQUFnQixJQUFJLDJCQUEyQixDQUFDLHlCQUF5QjtnQkFDNUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLEVBQUU7Z0JBQ3BDLENBQUMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDM0MsQ0FBQyxDQUFDLENBQUM7UUFFSCxrR0FBa0c7UUFDbEcsSUFBSSxDQUFDLGtDQUFrQyxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxTQUFTLENBQUMsc0JBQXNCLENBQUMsRUFBRTtZQUN2RyxNQUFNLFVBQVUsR0FBRyxzQkFBc0IsQ0FBQyxVQUFVLENBQUM7WUFDckQsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7WUFDN0IsOENBQThDO1lBQzlDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDMUQsaUNBQWlDO1lBQ2pDLElBQUksc0JBQXNCLENBQUMsdUJBQXVCLElBQUksc0JBQXNCLENBQUMsdUJBQXVCLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUNoSCxNQUFNLHNCQUFzQixHQUFHLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxzQkFBc0IsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO2dCQUM5RyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLENBQUM7WUFDckQsQ0FBQztZQUVELDBDQUEwQztZQUMxQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDO1lBQzlDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDO1FBQzNELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLGdCQUFnQixDQUFDLFVBQWtDO1FBQ3hELE9BQU8sVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRTtZQUN0QyxNQUFNLG1CQUFtQixHQUFHLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztZQUNuRCxtQkFBbUIsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQztZQUM5QyxtQkFBbUIsQ0FBQyxJQUFJLEdBQUcsb0JBQW9CLENBQUMsTUFBTSxDQUFDO1lBQ3ZELG1CQUFtQixDQUFDLFFBQVEsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7WUFDckgsbUJBQW1CLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7WUFFekQsT0FBTztnQkFDTCxHQUFHLElBQUk7Z0JBQ1AsbUJBQW1CO2FBQ3BCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLGNBQWMsR0FBRyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDdkQsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ1QsQ0FBQztJQUVNLFlBQVksQ0FBQyxTQUFpQztRQUNuRCxNQUFNLGlCQUFpQixHQUF1QixFQUFFLENBQUM7UUFDakQsU0FBUyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUMzQixNQUFNLGdCQUFnQixHQUFHLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztZQUNoRCxnQkFBZ0IsQ0FBQyxJQUFJLEdBQUcsUUFBUSxDQUFDLGlCQUFpQixDQUFDO1lBQ25ELGdCQUFnQixDQUFDLElBQUksR0FBRyxvQkFBb0IsQ0FBQyxRQUFRLENBQUM7WUFDdEQsZ0JBQWdCLENBQUMsaUJBQWlCLEdBQUcsUUFBUSxDQUFDLGlCQUFpQixDQUFDO1lBQ2hFLGdCQUFnQixDQUFDLG1CQUFtQixHQUFHLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQztZQUNwRSxnQkFBZ0IsQ0FBQyxjQUFjLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQztZQUMxRCxnQkFBZ0IsQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLCtCQUErQixFQUFFO21CQUM3RSxRQUFRLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxNQUFNLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBRXpHLGlCQUFpQixDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzNDLENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxpQkFBaUIsQ0FBQztJQUMzQixDQUFDO0lBRU0seUJBQXlCLENBQUMsc0JBQThDO1FBQzdFLE1BQU0sU0FBUyxHQUF1QixFQUFFLENBQUM7UUFDekMsc0JBQXNCLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ3hDLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxnQkFBZ0IsRUFBRSxDQUFDO1lBQ2hELGdCQUFnQixDQUFDLElBQUksR0FBRyxRQUFRLENBQUMsaUJBQWlCLENBQUM7WUFDbkQsZ0JBQWdCLENBQUMsSUFBSSxHQUFHLG9CQUFvQixDQUFDLFFBQVEsQ0FBQztZQUN0RCxnQkFBZ0IsQ0FBQyxpQkFBaUIsR0FBRyxRQUFRLENBQUMsaUJBQWlCLENBQUM7WUFDaEUsZ0JBQWdCLENBQUMsbUJBQW1CLEdBQUcsUUFBUSxDQUFDLG1CQUFtQixDQUFDO1lBQ3BFLGdCQUFnQixDQUFDLGNBQWMsR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDO1lBQzFELGdCQUFnQixDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsK0JBQStCLEVBQUU7bUJBQzdFLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFFekcsU0FBUyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ25DLENBQUMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLGdCQUFnQixFQUFFLENBQUM7UUFDakQsaUJBQWlCLENBQUMsSUFBSSxHQUFHLDJCQUEyQixDQUFDLDZCQUE2QixDQUFDO1FBQ25GLGlCQUFpQixDQUFDLElBQUksR0FBRyxvQkFBb0IsQ0FBQyxNQUFNLENBQUM7UUFDckQsaUJBQWlCLENBQUMsUUFBUSxHQUFHLFNBQVMsQ0FBQztRQUV2QyxPQUFPLGlCQUFpQixDQUFDO0lBQzNCLENBQUM7SUFFTSxNQUFNLENBQUMsVUFBa0I7UUFDOUIsMkRBQTJEO1FBQzNELFNBQVMsSUFBSSxDQUFDLElBQXNCO1lBQ2xDLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxnQkFBZ0IsRUFBRSxDQUFDO1lBQ2hELE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUMvQyxDQUFDO1FBRUQsSUFBSSxZQUFZLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDO1FBQ3pDLElBQUksVUFBVSxJQUFJLFVBQVUsQ0FBQyxNQUFNLElBQUksMkJBQTJCLENBQUMseUJBQXlCLElBQUksSUFBSSxDQUFDLHVCQUF1QixDQUFDLFFBQVEsQ0FBQywyQkFBMkIsQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDdE4sWUFBWSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsY0FBYyxDQUFDLElBQXNCO2dCQUNsRyxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxvQkFBb0IsQ0FBQyxRQUFRLEVBQUUsQ0FBQztvQkFDN0csT0FBTyxJQUFJLENBQUM7Z0JBQ2QsQ0FBQztnQkFDRCx3Q0FBd0M7Z0JBQ3hDLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO29CQUNsQixPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7Z0JBQ2pGLENBQUM7WUFDSCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7UUFDRCxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRU0scUJBQXFCLENBQzFCLFVBQW1FLEVBQ25FLGdCQUFrQztRQUVsQyxRQUFRLFVBQVUsRUFBRSxDQUFDO1lBQ25CLEtBQUssQ0FBQyxjQUFjLENBQUM7Z0JBQ25CLElBQUksQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztnQkFDdEMsTUFBTTtZQUNSLEtBQUssQ0FBQyxlQUFlLENBQUM7Z0JBQ3BCLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLDZCQUE2QixFQUM5RCxJQUFJLENBQUMseUJBQXlCLENBQUMsa0JBQWtCLENBQUM7b0JBQ2hELG1CQUFtQixFQUFFLGdCQUFnQixDQUFDLG1CQUFtQjtvQkFDekQsaUJBQWlCLEVBQUUsZ0JBQWdCLENBQUMsaUJBQWlCO2lCQUN0RCxDQUFDLENBQUMsQ0FBQztnQkFFTixJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FDN0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUN6RCxDQUFDO2dCQUNGLE1BQU07WUFDUixLQUFLLENBQUMsVUFBVSxDQUFDO2dCQUNmLDZHQUE2RztnQkFDN0csK0dBQStHO2dCQUMvRyw4QkFBOEI7Z0JBQzlCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxHQUFHLENBQUMsZ0JBQWdCLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxRQUFRLEVBQUUsZ0JBQWdCLENBQUMsaUJBQWlCLENBQUMsQ0FBQztnQkFDOUcsTUFBTTtZQUNSLEtBQUssQ0FBQyxPQUFPLENBQUM7Z0JBQ1osSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUMzRSxNQUFNO1lBQ1I7Z0JBQ0UsT0FBTztRQUNYLENBQUM7SUFDSCxDQUFDO0lBRU0sdUJBQXVCLENBQUMsTUFBYztRQUMzQyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ2xELElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3hELE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFTSx3QkFBd0IsQ0FBQyxNQUFjO1FBQzVDLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDbEQsSUFBSSxDQUFDLHNCQUFzQixDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDMUQsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVNLGNBQWMsQ0FBQyxJQUF3QjtRQUM1QyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQ3JFLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDUCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDbkIsQ0FBQyxDQUFDLENBQUM7UUFFTCxJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDckMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUN4QyxNQUFNLG1CQUFtQixHQUFHLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztZQUNuRCxtQkFBbUIsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztZQUNyQyxtQkFBbUIsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztZQUNyQyxtQkFBbUIsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztZQUU3QyxPQUFPLG1CQUFtQixDQUFDO1FBQzdCLENBQUMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ3hELE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztRQUMzQixDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNWLE1BQU0sVUFBVSxHQUFHLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNoRCxPQUFPLFlBQVksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFDLENBQUMsQ0FBQyxDQUFDO1FBQ0gsVUFBVSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsa0NBQWtDLEVBQUUsV0FBVyxFQUFFLENBQUM7UUFDdkQsSUFBSSxDQUFDLDBCQUEwQixFQUFFLFdBQVcsRUFBRSxDQUFDO0lBQ2pELENBQUM7SUFFTyxjQUFjLENBQUMsSUFBc0I7UUFDM0MsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsbUNBQW1DLEVBQUU7WUFDdEUsSUFBSSxFQUFFLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtTQUN0RCxDQUFDLENBQUM7UUFFSCxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQzNDLElBQUksUUFBUSxFQUFFLENBQUM7Z0JBQ2IsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQ3BFLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxhQUFhLENBQUMsR0FBVztRQUM5QixNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3JDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRU0sWUFBWSxDQUFDLEdBQVcsRUFBRSxnQkFBd0I7UUFDdkQsTUFBTSxDQUFDLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN0QyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM3QixDQUFDLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxlQUFlLENBQUMsQ0FBQztRQUN6QyxDQUFDLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQztRQUNiLENBQUMsQ0FBQyxRQUFRLEdBQUcsZ0JBQWdCLENBQUM7UUFDOUIsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ1YsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ2IsQ0FBQztxRkF2UVUsMkJBQTJCOzZEQUEzQiwyQkFBMkI7WUN6QnRDLEFBREYsOEJBQXVDLGFBQ3lDO1lBQzVFLDJCQU11QztZQUUzQyxBQURFLGlCQUFNLEVBQ0Y7WUFHSixBQURGLDhCQUFxQyxhQUNTO1lBQUEsWUFBK0I7WUFBQSxpQkFBTTtZQUUvRSxBQURGLDJCQUFLLHdDQUlGO1lBREMsQUFEQSxzSkFBaUIsbUNBQStCLElBQUMsMklBQy9CLG9DQUFnQyxJQUFDO1lBR3pELEFBREUsQUFERyxpQkFBaUMsRUFDOUIsRUFDRjtZQUVOLDRFQUE4RDs7WUFyQnBCLGNBQXFDO1lBQXJDLHVEQUFxQztZQVlqQyxlQUErQjtZQUEvQiw0REFBK0I7WUFTdkMsZUFBc0I7WUFBdEIsMkNBQXNCOzs7aUZESS9DLDJCQUEyQjtjQUx2QyxTQUFTOzJCQUNFLDJCQUEyQjt5S0FTckIsc0JBQXNCO2tCQUFyQyxLQUFLO1lBQ1UsV0FBVztrQkFBMUIsS0FBSztZQUNXLGVBQWU7a0JBQS9CLE1BQU07WUFDVSxZQUFZO2tCQUE1QixNQUFNOztrRkFSSSwyQkFBMkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZXN0ZWRUcmVlQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay90cmVlJztcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdExlZ2FjeURpYWxvZyBhcyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9sZWdhY3ktZGlhbG9nJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudC9tb21lbnQnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgc3dpdGNoTWFwLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBBYnN0cmFjdEFwcENvbmZpZyB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2FwcC5jb25maWcnO1xuaW1wb3J0IHtcbiAgQ2FzZUZpbGVWaWV3Q2F0ZWdvcnksXG4gIENhc2VGaWxlVmlld0RvY3VtZW50LFxuICBDYXRlZ29yaWVzQW5kRG9jdW1lbnRzLFxuICBEb2N1bWVudFRyZWVOb2RlLFxuICBEb2N1bWVudFRyZWVOb2RlVHlwZVxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi9kb21haW4vY2FzZS1maWxlLXZpZXcnO1xuaW1wb3J0IHsgU29ydE9yZGVyIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vZG9tYWluL3NvcnQtb3JkZXIuZW51bSc7XG5pbXBvcnQgeyBEb2N1bWVudE1hbmFnZW1lbnRTZXJ2aWNlLCBXaW5kb3dTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHsgQ2FzZUZpbGVWaWV3Rm9sZGVyU2VsZWN0b3JDb21wb25lbnQgfSBmcm9tICcuLi9jYXNlLWZpbGUtdmlldy1mb2xkZXItc2VsZWN0b3IvY2FzZS1maWxlLXZpZXctZm9sZGVyLXNlbGVjdG9yLmNvbXBvbmVudCc7XG5leHBvcnQgY29uc3QgTUVESUFfVklFV0VSX0xPQ0FMU1RPUkFHRV9LRVkgPSAnbWVkaWEtdmlld2VyLWluZm8nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjY2QtY2FzZS1maWxlLXZpZXctZm9sZGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Nhc2UtZmlsZS12aWV3LWZvbGRlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Nhc2UtZmlsZS12aWV3LWZvbGRlci5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBDYXNlRmlsZVZpZXdGb2xkZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IFVOQ0FURUdPUklTRURfRE9DVU1FTlRTX1RJVExFID0gJ1VuY2F0ZWdvcmlzZWQgZG9jdW1lbnRzJztcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgRE9DVU1FTlRfU0VBUkNIX0ZPUk1fQ09OVFJPTF9OQU1FID0gJ2RvY3VtZW50U2VhcmNoRm9ybUNvbnRyb2wnO1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBNSU5JTVVNX1NFQVJDSF9DSEFSQUNURVJTID0gMTtcblxuICBASW5wdXQoKSBwdWJsaWMgY2F0ZWdvcmllc0FuZERvY3VtZW50czogT2JzZXJ2YWJsZTxDYXRlZ29yaWVzQW5kRG9jdW1lbnRzPjtcbiAgQElucHV0KCkgcHVibGljIGFsbG93TW92aW5nOiBib29sZWFuO1xuICBAT3V0cHV0KCkgcHVibGljIGNsaWNrZWREb2N1bWVudCA9IG5ldyBFdmVudEVtaXR0ZXI8RG9jdW1lbnRUcmVlTm9kZT4oKTtcbiAgQE91dHB1dCgpIHB1YmxpYyBtb3ZlRG9jdW1lbnQgPSBuZXcgRXZlbnRFbWl0dGVyPHsgbmV3Q2F0ZWdvcnk6IHN0cmluZywgZG9jdW1lbnQ6IERvY3VtZW50VHJlZU5vZGUgfT4oKTtcblxuICBwdWJsaWMgbmVzdGVkVHJlZUNvbnRyb2w6IE5lc3RlZFRyZWVDb250cm9sPERvY3VtZW50VHJlZU5vZGU+O1xuICBwdWJsaWMgbmVzdGVkRGF0YVNvdXJjZTogRG9jdW1lbnRUcmVlTm9kZVtdO1xuICBwdWJsaWMgY2F0ZWdvcmllczogQ2FzZUZpbGVWaWV3Q2F0ZWdvcnlbXSA9IFtdO1xuICBwdWJsaWMgY2F0ZWdvcmllc0FuZERvY3VtZW50c1N1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICBwdWJsaWMgc2VsZWN0ZWROb2RlSXRlbTogRG9jdW1lbnRUcmVlTm9kZSB8IHVuZGVmaW5lZDtcblxuICBwdWJsaWMgZG9jdW1lbnRGaWx0ZXJGb3JtR3JvdXA6IEZvcm1Hcm91cDtcbiAgcHVibGljIGRvY3VtZW50U2VhcmNoRm9ybUNvbnRyb2w6IEZvcm1Db250cm9sO1xuICBwdWJsaWMgZG9jdW1lbnRUcmVlRGF0YTogRG9jdW1lbnRUcmVlTm9kZVtdO1xuICBwdWJsaWMgZG9jdW1lbnRGaWx0ZXJTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgcHVibGljIHNlYXJjaFRlcm1MZW5ndGg6IG51bWJlcjtcblxuICBwcml2YXRlIGdldENoaWxkcmVuID0gKG5vZGU6IERvY3VtZW50VHJlZU5vZGUpID0+IG9mKG5vZGUuY2hpbGRyZW4pO1xuICBwdWJsaWMgbmVzdGVkQ2hpbGRyZW4gPSAoXzogbnVtYmVyLCBub2RlRGF0YTogRG9jdW1lbnRUcmVlTm9kZSkgPT4gbm9kZURhdGEuY2hpbGRyZW47XG4gIHB1YmxpYyBnZXQgZG9jdW1lbnRDb3VudCgpIHtcbiAgICBpZiAodGhpcy5uZXN0ZWREYXRhU291cmNlPy5sZW5ndGgpIHtcbiAgICAgIHJldHVybiB0aGlzLm5lc3RlZERhdGFTb3VyY2UucmVkdWNlKChhY2MsIGl0ZW0pID0+IHtcbiAgICAgICAgcmV0dXJuIGFjYyArIGl0ZW0uY2hpbGREb2N1bWVudENvdW50O1xuICAgICAgfSwgMCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiAwO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgd2luZG93U2VydmljZTogV2luZG93U2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZG9jdW1lbnRNYW5hZ2VtZW50U2VydmljZTogRG9jdW1lbnRNYW5hZ2VtZW50U2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRpYWxvZzogTWF0RGlhbG9nLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgYXBwQ29uZmlnOiBBYnN0cmFjdEFwcENvbmZpZ1xuICApIHtcbiAgICB0aGlzLm5lc3RlZFRyZWVDb250cm9sID0gbmV3IE5lc3RlZFRyZWVDb250cm9sPERvY3VtZW50VHJlZU5vZGU+KHRoaXMuZ2V0Q2hpbGRyZW4pO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZG9jdW1lbnRGaWx0ZXJGb3JtR3JvdXAgPSBuZXcgRm9ybUdyb3VwKHt9KTtcbiAgICB0aGlzLmRvY3VtZW50U2VhcmNoRm9ybUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woJycpO1xuICAgIHRoaXMuZG9jdW1lbnRGaWx0ZXJGb3JtR3JvdXAuYWRkQ29udHJvbChDYXNlRmlsZVZpZXdGb2xkZXJDb21wb25lbnQuRE9DVU1FTlRfU0VBUkNIX0ZPUk1fQ09OVFJPTF9OQU1FLCB0aGlzLmRvY3VtZW50U2VhcmNoRm9ybUNvbnRyb2wpO1xuXG4gICAgLy8gTGlzdGVuIHRvIHNlYXJjaCBpbnB1dCBhbmQgaW5pdGlhdGUgZmlsdGVyIGRvY3VtZW50cyBpZiBhdCBsZWFzdCB0aHJlZSBjaGFyYWN0ZXJzIGVudGVyZWRcbiAgICB0aGlzLmRvY3VtZW50RmlsdGVyU3Vic2NyaXB0aW9uID0gdGhpcy5kb2N1bWVudFNlYXJjaEZvcm1Db250cm9sLnZhbHVlQ2hhbmdlcy5waXBlKFxuICAgICAgdGFwKChzZWFyY2hUZXJtOiBzdHJpbmcpID0+IHRoaXMuc2VhcmNoVGVybUxlbmd0aCA9IHNlYXJjaFRlcm0ubGVuZ3RoKSxcbiAgICAgIHN3aXRjaE1hcCgoc2VhcmNoVGVybTogc3RyaW5nKSA9PiB0aGlzLmZpbHRlcihzZWFyY2hUZXJtLnRvTG93ZXJDYXNlKCkpLnBpcGUoKSlcbiAgICApLnN1YnNjcmliZShkb2N1bWVudFRyZWVEYXRhID0+IHtcbiAgICAgIHRoaXMubmVzdGVkRGF0YVNvdXJjZSA9IGRvY3VtZW50VHJlZURhdGE7XG4gICAgICB0aGlzLm5lc3RlZFRyZWVDb250cm9sLmRhdGFOb2RlcyA9IGRvY3VtZW50VHJlZURhdGE7XG4gICAgICB0aGlzLnNlYXJjaFRlcm1MZW5ndGggPj0gQ2FzZUZpbGVWaWV3Rm9sZGVyQ29tcG9uZW50Lk1JTklNVU1fU0VBUkNIX0NIQVJBQ1RFUlNcbiAgICAgICAgPyB0aGlzLm5lc3RlZFRyZWVDb250cm9sLmV4cGFuZEFsbCgpXG4gICAgICAgIDogdGhpcy5uZXN0ZWRUcmVlQ29udHJvbC5jb2xsYXBzZUFsbCgpO1xuICAgIH0pO1xuXG4gICAgLy8gU3Vic2NyaWJlIHRvIHRoZSBpbnB1dCBjYXRlZ29yaWVzIGFuZCBkb2N1bWVudHMsIGFuZCBnZW5lcmF0ZSB0cmVlIGRhdGEgYW5kIGluaXRpYWxpc2UgY2RrIHRyZWVcbiAgICB0aGlzLmNhdGVnb3JpZXNBbmREb2N1bWVudHNTdWJzY3JpcHRpb24gPSB0aGlzLmNhdGVnb3JpZXNBbmREb2N1bWVudHMuc3Vic2NyaWJlKGNhdGVnb3JpZXNBbmREb2N1bWVudHMgPT4ge1xuICAgICAgY29uc3QgY2F0ZWdvcmllcyA9IGNhdGVnb3JpZXNBbmREb2N1bWVudHMuY2F0ZWdvcmllcztcbiAgICAgIHRoaXMuY2F0ZWdvcmllcyA9IGNhdGVnb3JpZXM7XG4gICAgICAvLyBHZW5lcmF0ZSBkb2N1bWVudCB0cmVlIGRhdGEgZnJvbSBjYXRlZ29yaWVzXG4gICAgICB0aGlzLmRvY3VtZW50VHJlZURhdGEgPSB0aGlzLmdlbmVyYXRlVHJlZURhdGEoY2F0ZWdvcmllcyk7XG4gICAgICAvLyBBcHBlbmQgdW5jYXRlZ29yaXNlZCBkb2N1bWVudHNcbiAgICAgIGlmIChjYXRlZ29yaWVzQW5kRG9jdW1lbnRzLnVuY2F0ZWdvcmlzZWRfZG9jdW1lbnRzICYmIGNhdGVnb3JpZXNBbmREb2N1bWVudHMudW5jYXRlZ29yaXNlZF9kb2N1bWVudHMubGVuZ3RoID4gMCkge1xuICAgICAgICBjb25zdCB1bmNhdGVnb3Jpc2VkRG9jdW1lbnRzID0gdGhpcy5nZXRVbmNhdGVnb3Jpc2VkRG9jdW1lbnRzKGNhdGVnb3JpZXNBbmREb2N1bWVudHMudW5jYXRlZ29yaXNlZF9kb2N1bWVudHMpO1xuICAgICAgICB0aGlzLmRvY3VtZW50VHJlZURhdGEucHVzaCh1bmNhdGVnb3Jpc2VkRG9jdW1lbnRzKTtcbiAgICAgIH1cblxuICAgICAgLy8gSW5pdGlhbGlzZSBjZGsgdHJlZSB3aXRoIGdlbmVyYXRlZCBkYXRhXG4gICAgICB0aGlzLm5lc3RlZERhdGFTb3VyY2UgPSB0aGlzLmRvY3VtZW50VHJlZURhdGE7XG4gICAgICB0aGlzLm5lc3RlZFRyZWVDb250cm9sLmRhdGFOb2RlcyA9IHRoaXMuZG9jdW1lbnRUcmVlRGF0YTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZW5lcmF0ZVRyZWVEYXRhKGNhdGVnb3JpZXM6IENhc2VGaWxlVmlld0NhdGVnb3J5W10pOiBEb2N1bWVudFRyZWVOb2RlW10ge1xuICAgIHJldHVybiBjYXRlZ29yaWVzLnJlZHVjZSgodHJlZSwgbm9kZSkgPT4ge1xuICAgICAgY29uc3QgbmV3RG9jdW1lbnRUcmVlTm9kZSA9IG5ldyBEb2N1bWVudFRyZWVOb2RlKCk7XG4gICAgICBuZXdEb2N1bWVudFRyZWVOb2RlLm5hbWUgPSBub2RlLmNhdGVnb3J5X25hbWU7XG4gICAgICBuZXdEb2N1bWVudFRyZWVOb2RlLnR5cGUgPSBEb2N1bWVudFRyZWVOb2RlVHlwZS5GT0xERVI7XG4gICAgICBuZXdEb2N1bWVudFRyZWVOb2RlLmNoaWxkcmVuID0gWy4uLnRoaXMuZ2VuZXJhdGVUcmVlRGF0YShub2RlLnN1Yl9jYXRlZ29yaWVzKSwgLi4udGhpcy5nZXREb2N1bWVudHMobm9kZS5kb2N1bWVudHMpXTtcbiAgICAgIG5ld0RvY3VtZW50VHJlZU5vZGUuY2F0ZWdvcnlfb3JkZXIgPSBub2RlLmNhdGVnb3J5X29yZGVyO1xuXG4gICAgICByZXR1cm4gW1xuICAgICAgICAuLi50cmVlLFxuICAgICAgICBuZXdEb2N1bWVudFRyZWVOb2RlLFxuICAgICAgXS5zb3J0KChhLGIpID0+IGEuY2F0ZWdvcnlfb3JkZXIgLSBiLmNhdGVnb3J5X29yZGVyKTtcbiAgICB9LCBbXSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0RG9jdW1lbnRzKGRvY3VtZW50czogQ2FzZUZpbGVWaWV3RG9jdW1lbnRbXSk6IERvY3VtZW50VHJlZU5vZGVbXSB7XG4gICAgY29uc3QgZG9jdW1lbnRzVG9SZXR1cm46IERvY3VtZW50VHJlZU5vZGVbXSA9IFtdO1xuICAgIGRvY3VtZW50cy5mb3JFYWNoKGRvY3VtZW50ID0+IHtcbiAgICAgIGNvbnN0IGRvY3VtZW50VHJlZU5vZGUgPSBuZXcgRG9jdW1lbnRUcmVlTm9kZSgpO1xuICAgICAgZG9jdW1lbnRUcmVlTm9kZS5uYW1lID0gZG9jdW1lbnQuZG9jdW1lbnRfZmlsZW5hbWU7XG4gICAgICBkb2N1bWVudFRyZWVOb2RlLnR5cGUgPSBEb2N1bWVudFRyZWVOb2RlVHlwZS5ET0NVTUVOVDtcbiAgICAgIGRvY3VtZW50VHJlZU5vZGUuZG9jdW1lbnRfZmlsZW5hbWUgPSBkb2N1bWVudC5kb2N1bWVudF9maWxlbmFtZTtcbiAgICAgIGRvY3VtZW50VHJlZU5vZGUuZG9jdW1lbnRfYmluYXJ5X3VybCA9IGRvY3VtZW50LmRvY3VtZW50X2JpbmFyeV91cmw7XG4gICAgICBkb2N1bWVudFRyZWVOb2RlLmF0dHJpYnV0ZV9wYXRoID0gZG9jdW1lbnQuYXR0cmlidXRlX3BhdGg7XG4gICAgICBkb2N1bWVudFRyZWVOb2RlLnVwbG9hZF90aW1lc3RhbXAgPSB0aGlzLmFwcENvbmZpZy5nZXRFbmFibGVDYXNlRmlsZVZpZXdWZXJzaW9uMV8xKClcbiAgICAgICAgICAmJiBkb2N1bWVudC51cGxvYWRfdGltZXN0YW1wID8gbW9tZW50KGRvY3VtZW50LnVwbG9hZF90aW1lc3RhbXApLmZvcm1hdCgnREQgTU1NIFlZWVkgSEg6bW06c3MnKSA6ICcnO1xuXG4gICAgICBkb2N1bWVudHNUb1JldHVybi5wdXNoKGRvY3VtZW50VHJlZU5vZGUpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIGRvY3VtZW50c1RvUmV0dXJuO1xuICB9XG5cbiAgcHVibGljIGdldFVuY2F0ZWdvcmlzZWREb2N1bWVudHModW5jYXRlZ29yaXNlZERvY3VtZW50czogQ2FzZUZpbGVWaWV3RG9jdW1lbnRbXSk6IERvY3VtZW50VHJlZU5vZGUge1xuICAgIGNvbnN0IGRvY3VtZW50czogRG9jdW1lbnRUcmVlTm9kZVtdID0gW107XG4gICAgdW5jYXRlZ29yaXNlZERvY3VtZW50cy5mb3JFYWNoKGRvY3VtZW50ID0+IHtcbiAgICAgIGNvbnN0IGRvY3VtZW50VHJlZU5vZGUgPSBuZXcgRG9jdW1lbnRUcmVlTm9kZSgpO1xuICAgICAgZG9jdW1lbnRUcmVlTm9kZS5uYW1lID0gZG9jdW1lbnQuZG9jdW1lbnRfZmlsZW5hbWU7XG4gICAgICBkb2N1bWVudFRyZWVOb2RlLnR5cGUgPSBEb2N1bWVudFRyZWVOb2RlVHlwZS5ET0NVTUVOVDtcbiAgICAgIGRvY3VtZW50VHJlZU5vZGUuZG9jdW1lbnRfZmlsZW5hbWUgPSBkb2N1bWVudC5kb2N1bWVudF9maWxlbmFtZTtcbiAgICAgIGRvY3VtZW50VHJlZU5vZGUuZG9jdW1lbnRfYmluYXJ5X3VybCA9IGRvY3VtZW50LmRvY3VtZW50X2JpbmFyeV91cmw7XG4gICAgICBkb2N1bWVudFRyZWVOb2RlLmF0dHJpYnV0ZV9wYXRoID0gZG9jdW1lbnQuYXR0cmlidXRlX3BhdGg7XG4gICAgICBkb2N1bWVudFRyZWVOb2RlLnVwbG9hZF90aW1lc3RhbXAgPSB0aGlzLmFwcENvbmZpZy5nZXRFbmFibGVDYXNlRmlsZVZpZXdWZXJzaW9uMV8xKClcbiAgICAgICAgICAmJiBkb2N1bWVudC51cGxvYWRfdGltZXN0YW1wID8gbW9tZW50KGRvY3VtZW50LnVwbG9hZF90aW1lc3RhbXApLmZvcm1hdCgnREQgTU1NIFlZWVkgSEg6bW06c3MnKSA6ICcnO1xuXG4gICAgICBkb2N1bWVudHMucHVzaChkb2N1bWVudFRyZWVOb2RlKTtcbiAgICB9KTtcblxuICAgIGNvbnN0IHVuY2F0ZWdvcmlzZWROb2RlID0gbmV3IERvY3VtZW50VHJlZU5vZGUoKTtcbiAgICB1bmNhdGVnb3Jpc2VkTm9kZS5uYW1lID0gQ2FzZUZpbGVWaWV3Rm9sZGVyQ29tcG9uZW50LlVOQ0FURUdPUklTRURfRE9DVU1FTlRTX1RJVExFO1xuICAgIHVuY2F0ZWdvcmlzZWROb2RlLnR5cGUgPSBEb2N1bWVudFRyZWVOb2RlVHlwZS5GT0xERVI7XG4gICAgdW5jYXRlZ29yaXNlZE5vZGUuY2hpbGRyZW4gPSBkb2N1bWVudHM7XG5cbiAgICByZXR1cm4gdW5jYXRlZ29yaXNlZE5vZGU7XG4gIH1cblxuICBwdWJsaWMgZmlsdGVyKHNlYXJjaFRlcm06IHN0cmluZyk6IE9ic2VydmFibGU8RG9jdW1lbnRUcmVlTm9kZVtdPiB7XG4gICAgLy8gTWFrZSBhIGNvcHkgb2YgdGhlIGRhdGEgc28gd2UgZG8gbm90IG11dGF0ZSB0aGUgb3JpZ2luYWxcbiAgICBmdW5jdGlvbiBjb3B5KG5vZGU6IERvY3VtZW50VHJlZU5vZGUpIHtcbiAgICAgIGNvbnN0IGRvY3VtZW50VHJlZU5vZGUgPSBuZXcgRG9jdW1lbnRUcmVlTm9kZSgpO1xuICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oZG9jdW1lbnRUcmVlTm9kZSwgbm9kZSk7XG4gICAgfVxuXG4gICAgbGV0IGZpbHRlcmVkRGF0YSA9IHRoaXMuZG9jdW1lbnRUcmVlRGF0YTtcbiAgICBpZiAoc2VhcmNoVGVybSAmJiBzZWFyY2hUZXJtLmxlbmd0aCA+PSBDYXNlRmlsZVZpZXdGb2xkZXJDb21wb25lbnQuTUlOSU1VTV9TRUFSQ0hfQ0hBUkFDVEVSUyAmJiB0aGlzLmRvY3VtZW50RmlsdGVyRm9ybUdyb3VwLmNvbnRyb2xzW0Nhc2VGaWxlVmlld0ZvbGRlckNvbXBvbmVudC5ET0NVTUVOVF9TRUFSQ0hfRk9STV9DT05UUk9MX05BTUVdLnZhbHVlLmxlbmd0aCA+IDApIHtcbiAgICAgIGZpbHRlcmVkRGF0YSA9IHRoaXMuZG9jdW1lbnRUcmVlRGF0YS5tYXAoY29weSkuZmlsdGVyKGZ1bmN0aW9uIGZpbHRlclRyZWVEYXRhKG5vZGU6IERvY3VtZW50VHJlZU5vZGUpIHtcbiAgICAgICAgaWYgKG5vZGUubmFtZSAmJiBub2RlLm5hbWUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2hUZXJtKSAmJiBub2RlLnR5cGUgPT09IERvY3VtZW50VHJlZU5vZGVUeXBlLkRPQ1VNRU5UKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgLy8gQ2FsbCByZWN1cnNpdmVseSBpZiBub2RlIGhhcyBjaGlsZHJlblxuICAgICAgICBpZiAobm9kZS5jaGlsZHJlbikge1xuICAgICAgICAgIHJldHVybiAobm9kZS5jaGlsZHJlbiA9IG5vZGUuY2hpbGRyZW4ubWFwKGNvcHkpLmZpbHRlcihmaWx0ZXJUcmVlRGF0YSkpLmxlbmd0aDtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBvZihmaWx0ZXJlZERhdGEpO1xuICB9XG5cbiAgcHVibGljIHRyaWdnZXJEb2N1bWVudEFjdGlvbihcbiAgICBhY3Rpb25UeXBlOiAnY2hhbmdlRm9sZGVyJyB8ICdvcGVuSW5BTmV3VGFiJyB8ICdkb3dubG9hZCcgfCAncHJpbnQnLFxuICAgIGRvY3VtZW50VHJlZU5vZGU6IERvY3VtZW50VHJlZU5vZGVcbiAgKTogdm9pZCB7XG4gICAgc3dpdGNoIChhY3Rpb25UeXBlKSB7XG4gICAgICBjYXNlICgnY2hhbmdlRm9sZGVyJyk6XG4gICAgICAgIHRoaXMub3Blbk1vdmVEaWFsb2coZG9jdW1lbnRUcmVlTm9kZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAoJ29wZW5JbkFOZXdUYWInKTpcbiAgICAgICAgdGhpcy53aW5kb3dTZXJ2aWNlLnNldExvY2FsU3RvcmFnZShNRURJQV9WSUVXRVJfTE9DQUxTVE9SQUdFX0tFWSxcbiAgICAgICAgICB0aGlzLmRvY3VtZW50TWFuYWdlbWVudFNlcnZpY2UuZ2V0TWVkaWFWaWV3ZXJJbmZvKHtcbiAgICAgICAgICAgIGRvY3VtZW50X2JpbmFyeV91cmw6IGRvY3VtZW50VHJlZU5vZGUuZG9jdW1lbnRfYmluYXJ5X3VybCxcbiAgICAgICAgICAgIGRvY3VtZW50X2ZpbGVuYW1lOiBkb2N1bWVudFRyZWVOb2RlLmRvY3VtZW50X2ZpbGVuYW1lXG4gICAgICAgICAgfSkpO1xuXG4gICAgICAgIHRoaXMud2luZG93U2VydmljZS5vcGVuT25OZXdUYWIoXG4gICAgICAgICAgdGhpcy5yb3V0ZXIuY3JlYXRlVXJsVHJlZShbJy9tZWRpYS12aWV3ZXInXSk/LnRvU3RyaW5nKClcbiAgICAgICAgKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICgnZG93bmxvYWQnKTpcbiAgICAgICAgLy8gQ3JlYXRlIGEgVVJMIGZyb20gdGhlIGRvY3VtZW50X2JpbmFyeV91cmwgcHJvcGVydHkgKGFic29sdXRlIFVSTCkgYW5kIHVzZSB0aGUgcGF0aCBwb3J0aW9uIChyZWxhdGl2ZSBVUkwpLlxuICAgICAgICAvLyBUaGlzIGlzIG5lY2Vzc2FyeSBiZWNhdXNlIHRoZSBNYW5hZ2UgQ2FzZXMgYXBwbGljYXRpb24gd2lsbCBhdXRvbWF0aWNhbGx5IGFwcGx5IGEgcHJveHkgdG8gdGhlIHJlcXVlc3QsIHdpdGhcbiAgICAgICAgLy8gdGhlIGNvcnJlY3QgcmVtb3RlIGVuZHBvaW50XG4gICAgICAgIHRoaXMuZG93bmxvYWRGaWxlKG5ldyBVUkwoZG9jdW1lbnRUcmVlTm9kZS5kb2N1bWVudF9iaW5hcnlfdXJsKS5wYXRobmFtZSwgZG9jdW1lbnRUcmVlTm9kZS5kb2N1bWVudF9maWxlbmFtZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAoJ3ByaW50Jyk6XG4gICAgICAgIHRoaXMucHJpbnREb2N1bWVudChuZXcgVVJMKGRvY3VtZW50VHJlZU5vZGUuZG9jdW1lbnRfYmluYXJ5X3VybCkucGF0aG5hbWUpO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc29ydERhdGFTb3VyY2VBc2NlbmRpbmcoY29sdW1uOiBudW1iZXIpIHtcbiAgICBjb25zdCBzb3J0ZWREYXRhID0gdGhpcy5uZXN0ZWREYXRhU291cmNlLm1hcChpdGVtID0+IHtcbiAgICAgIGl0ZW0uc29ydENoaWxkcmVuQXNjZW5kaW5nKGNvbHVtbiwgU29ydE9yZGVyLkFTQ0VORElORyk7XG4gICAgICByZXR1cm4gaXRlbTtcbiAgICB9KTtcblxuICAgIHRoaXMudXBkYXRlTm9kZURhdGEoc29ydGVkRGF0YSk7XG4gIH1cblxuICBwdWJsaWMgc29ydERhdGFTb3VyY2VEZXNjZW5kaW5nKGNvbHVtbjogbnVtYmVyKSB7XG4gICAgY29uc3Qgc29ydGVkRGF0YSA9IHRoaXMubmVzdGVkRGF0YVNvdXJjZS5tYXAoaXRlbSA9PiB7XG4gICAgICBpdGVtLnNvcnRDaGlsZHJlbkRlc2NlbmRpbmcoY29sdW1uLCBTb3J0T3JkZXIuREVTQ0VORElORyk7XG4gICAgICByZXR1cm4gaXRlbTtcbiAgICB9KTtcblxuICAgIHRoaXMudXBkYXRlTm9kZURhdGEoc29ydGVkRGF0YSk7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlTm9kZURhdGEoZGF0YTogRG9jdW1lbnRUcmVlTm9kZVtdKTogdm9pZCB7XG4gICAgY29uc3QgcHJldlNlbGVjdGVkID0gdGhpcy5uZXN0ZWRUcmVlQ29udHJvbC5leHBhbnNpb25Nb2RlbC5zZWxlY3RlZC5tYXAoXG4gICAgICAoaXRlbSkgPT4ge1xuICAgICAgICByZXR1cm4gaXRlbS5uYW1lO1xuICAgICAgfSk7XG5cbiAgICB0aGlzLm5lc3RlZFRyZWVDb250cm9sLmNvbGxhcHNlQWxsKCk7XG4gICAgdGhpcy5uZXN0ZWREYXRhU291cmNlID0gZGF0YS5tYXAoKGl0ZW0pID0+IHtcbiAgICAgIGNvbnN0IG5ld0RvY3VtZW50VHJlZU5vZGUgPSBuZXcgRG9jdW1lbnRUcmVlTm9kZSgpO1xuICAgICAgbmV3RG9jdW1lbnRUcmVlTm9kZS5uYW1lID0gaXRlbS5uYW1lO1xuICAgICAgbmV3RG9jdW1lbnRUcmVlTm9kZS50eXBlID0gaXRlbS50eXBlO1xuICAgICAgbmV3RG9jdW1lbnRUcmVlTm9kZS5jaGlsZHJlbiA9IGl0ZW0uY2hpbGRyZW47XG5cbiAgICAgIHJldHVybiBuZXdEb2N1bWVudFRyZWVOb2RlO1xuICAgIH0pO1xuXG4gICAgY29uc3QgZmxhdHRlbmVkQXJyYXkgPSB0aGlzLm5lc3RlZERhdGFTb3VyY2UubWFwKChpdGVtKSA9PiB7XG4gICAgICByZXR1cm4gaXRlbS5mbGF0dGVuZWRBbGw7XG4gICAgfSkuZmxhdCgpO1xuICAgIGNvbnN0IG5ld09iamVjdHMgPSBmbGF0dGVuZWRBcnJheS5maWx0ZXIoKGl0ZW0pID0+IHtcbiAgICAgIHJldHVybiBwcmV2U2VsZWN0ZWQuaW5jbHVkZXMoaXRlbS5uYW1lKTtcbiAgICB9KTtcbiAgICBuZXdPYmplY3RzLmZvckVhY2gob2JqZWN0ID0+IHRoaXMubmVzdGVkVHJlZUNvbnRyb2wuZXhwYW5kKG9iamVjdCkpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuY2F0ZWdvcmllc0FuZERvY3VtZW50c1N1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLmRvY3VtZW50RmlsdGVyU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBvcGVuTW92ZURpYWxvZyhub2RlOiBEb2N1bWVudFRyZWVOb2RlKTogdm9pZCB7XG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihDYXNlRmlsZVZpZXdGb2xkZXJTZWxlY3RvckNvbXBvbmVudCwge1xuICAgICAgZGF0YTogeyBjYXRlZ29yaWVzOiB0aGlzLmNhdGVnb3JpZXMsIGRvY3VtZW50OiBub2RlIH1cbiAgICB9KTtcblxuICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZShuZXdDYXRJZCA9PiB7XG4gICAgICBpZiAobmV3Q2F0SWQpIHtcbiAgICAgICAgdGhpcy5tb3ZlRG9jdW1lbnQuZW1pdCh7IG5ld0NhdGVnb3J5OiBuZXdDYXRJZCwgZG9jdW1lbnQ6IG5vZGUgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgcHJpbnREb2N1bWVudCh1cmw6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IHByaW50V2luZG93ID0gd2luZG93Lm9wZW4odXJsKTtcbiAgICBwcmludFdpbmRvdy5wcmludCgpO1xuICB9XG5cbiAgcHVibGljIGRvd25sb2FkRmlsZSh1cmw6IHN0cmluZywgZG93bmxvYWRGaWxlTmFtZTogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGEpO1xuICAgIGEuc2V0QXR0cmlidXRlKCdzdHlsZScsICdkaXNwbGF5OiBub25lJyk7XG4gICAgYS5ocmVmID0gdXJsO1xuICAgIGEuZG93bmxvYWQgPSBkb3dubG9hZEZpbGVOYW1lO1xuICAgIGEuY2xpY2soKTtcbiAgICBhLnJlbW92ZSgpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZG9jdW1lbnQtZmlsdGVyLWNvbnRhaW5lclwiPlxuICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cCBkb2N1bWVudC1maWx0ZXJcIiBbZm9ybUdyb3VwXT1cImRvY3VtZW50RmlsdGVyRm9ybUdyb3VwXCI+XG4gICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jb250cm9sIGRvY3VtZW50LXNlYXJjaFwiXG4gICAgICB0eXBlPVwic2VhcmNoXCJcbiAgICAgIGlkPVwiZG9jdW1lbnQtc2VhcmNoXCJcbiAgICAgIG5hbWU9XCJkb2N1bWVudFNlYXJjaEZvcm1Db250cm9sXCJcbiAgICAgIGZvcm1Db250cm9sTmFtZT1cImRvY3VtZW50U2VhcmNoRm9ybUNvbnRyb2xcIlxuICAgICAgcGxhY2Vob2xkZXI9XCJTZWFyY2ggYnkgZG9jdW1lbnQgbmFtZVwiXG4gICAgICBhcmlhLWxhYmVsPVwiU2VhcmNoIGJ5IGRvY3VtZW50IG5hbWVcIj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPGRpdiBjbGFzcz1cImRvY3VtZW50LWZvbGRlcnMtaGVhZGVyXCI+XG4gIDxkaXYgY2xhc3M9XCJkb2N1bWVudC1mb2xkZXJzLWhlYWRlcl9fdGl0bGVcIj5Eb2N1bWVudHMgKHt7IGRvY3VtZW50Q291bnQgfX0pPC9kaXY+XG4gIDxkaXY+XG4gICAgPGNjZC1jYXNlLWZpbGUtdmlldy1mb2xkZXItc29ydFxuICAgICAgKHNvcnRBc2NlbmRpbmcpPVwic29ydERhdGFTb3VyY2VBc2NlbmRpbmcoJGV2ZW50KVwiXG4gICAgICAoc29ydERlc2NlbmRpbmcpPVwic29ydERhdGFTb3VyY2VEZXNjZW5kaW5nKCRldmVudClcIlxuICAgID48L2NjZC1jYXNlLWZpbGUtdmlldy1mb2xkZXItc29ydD5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPGRpdiBjbGFzcz1cImRvY3VtZW50LXRyZWUtY29udGFpbmVyXCIgKm5nSWY9XCJkb2N1bWVudFRyZWVEYXRhXCI+XG4gIDxkaXYgKm5nSWY9XCIhbmVzdGVkRGF0YVNvdXJjZSB8fCBuZXN0ZWREYXRhU291cmNlLmxlbmd0aCA9PT0gMFwiPlxuICAgIE5vIHJlc3VsdHMgZm91bmRcbiAgPC9kaXY+XG4gIDxkaXY+XG4gICAgPGNkay10cmVlIFtkYXRhU291cmNlXT1cIm5lc3RlZERhdGFTb3VyY2VcIiBbdHJlZUNvbnRyb2xdPVwibmVzdGVkVHJlZUNvbnRyb2xcIj5cbiAgICAgIDwhLS0gZG9jdW1lbnQgLS0+XG4gICAgICA8Y2RrLW5lc3RlZC10cmVlLW5vZGUgY2xhc3M9XCJkb2N1bWVudC10cmVlLWNvbnRhaW5lcl9fbm9kZSBkb2N1bWVudC10cmVlLWNvbnRhaW5lcl9fbm9kZS0tZG9jdW1lbnRcIiAqY2RrVHJlZU5vZGVEZWY9XCJsZXQgbm9kZVwiPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwibm9kZVwiIChjbGljayk9XCJzZWxlY3RlZE5vZGVJdGVtID0gbm9kZTsgY2xpY2tlZERvY3VtZW50LmVtaXQobm9kZSlcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5ub2RlLS1zZWxlY3RlZF09XCJzZWxlY3RlZE5vZGVJdGVtPy5uYW1lID09PSBub2RlLm5hbWVcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibm9kZV9faWNvblwiIGRpc2FibGVkPlxuICAgICAgICAgICAgPGltZyBzcmM9XCIvYXNzZXRzL2ltZy9jYXNlLWZpbGUtdmlldy9jYXNlLWZpbGUtdmlldy1kb2N1bWVudC5zdmdcIiBjbGFzcz1cIm5vZGVfX2ljb25JbWdcIiBhbHQ9XCJEb2N1bWVudCBpY29uXCI+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJub2RlX19uYW1lIG5vZGUtbmFtZS1kb2N1bWVudFwiPlxuICAgICAgICAgICAge3tub2RlLm5hbWV9fVxuICAgICAgICAgICAgPGJyPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJub2RlX19kb2N1bWVudC11cGxvYWQtdGltZXN0YW1wXCI+e3tub2RlLnVwbG9hZF90aW1lc3RhbXAgfCBkYXRlOlwiZGQgTU1NIFlZWVlcIn19PC9zcGFuPlxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibm9kZV9fZG9jdW1lbnQtb3B0aW9uc1wiPlxuICAgICAgICAgICAgPGNjZC1jYXNlLWZpbGUtdmlldy1mb2xkZXItZG9jdW1lbnQtYWN0aW9uc1xuICAgICAgICAgICAgICAoY2hhbmdlRm9sZGVyQWN0aW9uKT1cInRyaWdnZXJEb2N1bWVudEFjdGlvbignY2hhbmdlRm9sZGVyJywgbm9kZSlcIlxuICAgICAgICAgICAgICAob3BlbkluQU5ld1RhYkFjdGlvbik9XCJ0cmlnZ2VyRG9jdW1lbnRBY3Rpb24oJ29wZW5JbkFOZXdUYWInLCBub2RlKVwiXG4gICAgICAgICAgICAgIChkb3dubG9hZEFjdGlvbik9XCJ0cmlnZ2VyRG9jdW1lbnRBY3Rpb24oJ2Rvd25sb2FkJywgbm9kZSlcIlxuICAgICAgICAgICAgICAocHJpbnRBY3Rpb24pPVwidHJpZ2dlckRvY3VtZW50QWN0aW9uKCdwcmludCcsIG5vZGUpXCJcbiAgICAgICAgICAgICAgW2FsbG93TW92aW5nXT1cImFsbG93TW92aW5nXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDwvY2NkLWNhc2UtZmlsZS12aWV3LWZvbGRlci1kb2N1bWVudC1hY3Rpb25zPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvY2RrLW5lc3RlZC10cmVlLW5vZGU+XG4gICAgICA8IS0tIGZvbGRlci0tPlxuICAgICAgPGNkay1uZXN0ZWQtdHJlZS1ub2RlIGNsYXNzPVwiZG9jdW1lbnQtdHJlZS1jb250YWluZXJfX25vZGUgZG9jdW1lbnQtdHJlZS1jb250YWluZXJfX2ZvbGRlclwiICpjZGtUcmVlTm9kZURlZj1cImxldCBub2RlOyB3aGVuOiBuZXN0ZWRDaGlsZHJlblwiPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwibm9kZVwiIGNka1RyZWVOb2RlVG9nZ2xlPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJub2RlX19pY29uXCIgW2F0dHIuYXJpYS1sYWJlbF09XCIndG9nZ2xlICcgKyBub2RlLm5hbWVcIiA+XG4gICAgICAgICAgICA8aW1nIGNsYXNzPVwibm9kZV9faWNvbkltZ1wiXG4gICAgICAgICAgICAgICAgIFtzcmNdPVwibmVzdGVkVHJlZUNvbnRyb2wuaXNFeHBhbmRlZChub2RlKSA/ICcvYXNzZXRzL2ltYWdlcy9mb2xkZXItb3Blbi5wbmcnIDogJy9hc3NldHMvaW1hZ2VzL2ZvbGRlci5wbmcnXCIgYWx0PVwiRm9sZGVyIGljb25cIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibm9kZV9fY291bnRcIj57e25vZGUuY2hpbGREb2N1bWVudENvdW50fX08L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJub2RlX19uYW1lIG5vZGVfX25hbWUtLWZvbGRlclwiPnt7bm9kZS5uYW1lfX08L3NwYW4+XG4gICAgICAgIDwvYnV0dG9uPlxuXG4gICAgICAgIDxkaXYgW2NsYXNzLmRvY3VtZW50LXRyZWUtaW52aXNpYmxlXT1cIiFuZXN0ZWRUcmVlQ29udHJvbC5pc0V4cGFuZGVkKG5vZGUpXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciBjZGtUcmVlTm9kZU91dGxldD48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Nkay1uZXN0ZWQtdHJlZS1ub2RlPlxuICAgIDwvY2RrLXRyZWU+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
358
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS1maWxlLXZpZXctZm9sZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9wYWxldHRlL2Nhc2UtZmlsZS12aWV3L2NvbXBvbmVudHMvY2FzZS1maWxlLXZpZXctZm9sZGVyL2Nhc2UtZmlsZS12aWV3LWZvbGRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvcGFsZXR0ZS9jYXNlLWZpbGUtdmlldy9jb21wb25lbnRzL2Nhc2UtZmlsZS12aWV3LWZvbGRlci9jYXNlLWZpbGUtdmlldy1mb2xkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUYsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsZUFBZSxJQUFJLFNBQVMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLE1BQU0sTUFBTSxlQUFlLENBQUM7QUFDbkMsT0FBTyxFQUFFLFVBQVUsRUFBZ0IsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3BELE9BQU8sRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0s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QUFDLE9BQU8sRUFBRSxlQUFlLENBQUMsQ0FBQztRQUN6QyxDQUFDLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQztRQUNiLENBQUMsQ0FBQyxRQUFRLEdBQUcsZ0JBQWdCLENBQUM7UUFDOUIsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ1YsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ2IsQ0FBQztxRkF2UVUsMkJBQTJCOzZEQUEzQiwyQkFBMkI7WUN6QnRDLEFBREYsOEJBQXVDLGFBQ3lDO1lBQzVFLDJCQU11QztZQUUzQyxBQURFLGlCQUFNLEVBQ0Y7WUFHSixBQURGLDhCQUFxQyxhQUNTO1lBQUEsWUFBK0I7WUFBQSxpQkFBTTtZQUUvRSxBQURGLDJCQUFLLHdDQUlGO1lBREMsQUFEQSxzSkFBaUIsbUNBQStCLElBQUMsMklBQy9CLG9DQUFnQyxJQUFDO1lBR3pELEFBREUsQUFERyxpQkFBaUMsRUFDOUIsRUFDRjtZQUVOLDRFQUE4RDs7WUFyQnBCLGNBQXFDO1lBQXJDLHVEQUFxQztZQVlqQyxlQUErQjtZQUEvQiw0REFBK0I7WUFTdkMsZUFBc0I7WUFBdEIsMkNBQXNCOzs7aUZESS9DLDJCQUEyQjtjQUx2QyxTQUFTOzJCQUNFLDJCQUEyQjt5S0FTckIsc0JBQXNCO2tCQUFyQyxLQUFLO1lBQ1UsV0FBVztrQkFBMUIsS0FBSztZQUNXLGVBQWU7a0JBQS9CLE1BQU07WUFDVSxZQUFZO2tCQUE1QixNQUFNOztrRkFSSSwyQkFBMkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZXN0ZWRUcmVlQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay90cmVlJztcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdExlZ2FjeURpYWxvZyBhcyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9sZWdhY3ktZGlhbG9nJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudC9tb21lbnQnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgc3dpdGNoTWFwLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBBYnN0cmFjdEFwcENvbmZpZyB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2FwcC5jb25maWcnO1xuaW1wb3J0IHtcbiAgQ2FzZUZpbGVWaWV3Q2F0ZWdvcnksXG4gIENhc2VGaWxlVmlld0RvY3VtZW50LFxuICBDYXRlZ29yaWVzQW5kRG9jdW1lbnRzLFxuICBEb2N1bWVudFRyZWVOb2RlLFxuICBEb2N1bWVudFRyZWVOb2RlVHlwZVxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi9kb21haW4vY2FzZS1maWxlLXZpZXcnO1xuaW1wb3J0IHsgU29ydE9yZGVyIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vZG9tYWluL3NvcnQtb3JkZXIuZW51bSc7XG5pbXBvcnQgeyBEb2N1bWVudE1hbmFnZW1lbnRTZXJ2aWNlLCBXaW5kb3dTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHsgQ2FzZUZpbGVWaWV3Rm9sZGVyU2VsZWN0b3JDb21wb25lbnQgfSBmcm9tICcuLi9jYXNlLWZpbGUtdmlldy1mb2xkZXItc2VsZWN0b3IvY2FzZS1maWxlLXZpZXctZm9sZGVyLXNlbGVjdG9yLmNvbXBvbmVudCc7XG5leHBvcnQgY29uc3QgTUVESUFfVklFV0VSX0xPQ0FMU1RPUkFHRV9LRVkgPSAnbWVkaWEtdmlld2VyLWluZm8nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjY2QtY2FzZS1maWxlLXZpZXctZm9sZGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Nhc2UtZmlsZS12aWV3LWZvbGRlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Nhc2UtZmlsZS12aWV3LWZvbGRlci5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBDYXNlRmlsZVZpZXdGb2xkZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IFVOQ0FURUdPUklTRURfRE9DVU1FTlRTX1RJVExFID0gJ1VuY2F0ZWdvcmlzZWQgZG9jdW1lbnRzJztcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgRE9DVU1FTlRfU0VBUkNIX0ZPUk1fQ09OVFJPTF9OQU1FID0gJ2RvY3VtZW50U2VhcmNoRm9ybUNvbnRyb2wnO1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBNSU5JTVVNX1NFQVJDSF9DSEFSQUNURVJTID0gMTtcblxuICBASW5wdXQoKSBwdWJsaWMgY2F0ZWdvcmllc0FuZERvY3VtZW50czogT2JzZXJ2YWJsZTxDYXRlZ29yaWVzQW5kRG9jdW1lbnRzPjtcbiAgQElucHV0KCkgcHVibGljIGFsbG93TW92aW5nOiBib29sZWFuO1xuICBAT3V0cHV0KCkgcHVibGljIGNsaWNrZWREb2N1bWVudCA9IG5ldyBFdmVudEVtaXR0ZXI8RG9jdW1lbnRUcmVlTm9kZT4oKTtcbiAgQE91dHB1dCgpIHB1YmxpYyBtb3ZlRG9jdW1lbnQgPSBuZXcgRXZlbnRFbWl0dGVyPHsgbmV3Q2F0ZWdvcnk6IHN0cmluZywgZG9jdW1lbnQ6IERvY3VtZW50VHJlZU5vZGUgfT4oKTtcblxuICBwdWJsaWMgbmVzdGVkVHJlZUNvbnRyb2w6IE5lc3RlZFRyZWVDb250cm9sPERvY3VtZW50VHJlZU5vZGU+O1xuICBwdWJsaWMgbmVzdGVkRGF0YVNvdXJjZTogRG9jdW1lbnRUcmVlTm9kZVtdO1xuICBwdWJsaWMgY2F0ZWdvcmllczogQ2FzZUZpbGVWaWV3Q2F0ZWdvcnlbXSA9IFtdO1xuICBwdWJsaWMgY2F0ZWdvcmllc0FuZERvY3VtZW50c1N1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICBwdWJsaWMgc2VsZWN0ZWROb2RlSXRlbTogRG9jdW1lbnRUcmVlTm9kZSB8IHVuZGVmaW5lZDtcblxuICBwdWJsaWMgZG9jdW1lbnRGaWx0ZXJGb3JtR3JvdXA6IEZvcm1Hcm91cDtcbiAgcHVibGljIGRvY3VtZW50U2VhcmNoRm9ybUNvbnRyb2w6IEZvcm1Db250cm9sO1xuICBwdWJsaWMgZG9jdW1lbnRUcmVlRGF0YTogRG9jdW1lbnRUcmVlTm9kZVtdO1xuICBwdWJsaWMgZG9jdW1lbnRGaWx0ZXJTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgcHVibGljIHNlYXJjaFRlcm1MZW5ndGg6IG51bWJlcjtcblxuICBwcml2YXRlIGdldENoaWxkcmVuID0gKG5vZGU6IERvY3VtZW50VHJlZU5vZGUpID0+IG9mKG5vZGUuY2hpbGRyZW4pO1xuICBwdWJsaWMgbmVzdGVkQ2hpbGRyZW4gPSAoXzogbnVtYmVyLCBub2RlRGF0YTogRG9jdW1lbnRUcmVlTm9kZSkgPT4gbm9kZURhdGEuY2hpbGRyZW47XG4gIHB1YmxpYyBnZXQgZG9jdW1lbnRDb3VudCgpIHtcbiAgICBpZiAodGhpcy5uZXN0ZWREYXRhU291cmNlPy5sZW5ndGgpIHtcbiAgICAgIHJldHVybiB0aGlzLm5lc3RlZERhdGFTb3VyY2UucmVkdWNlKChhY2MsIGl0ZW0pID0+IHtcbiAgICAgICAgcmV0dXJuIGFjYyArIGl0ZW0uY2hpbGREb2N1bWVudENvdW50O1xuICAgICAgfSwgMCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiAwO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgd2luZG93U2VydmljZTogV2luZG93U2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZG9jdW1lbnRNYW5hZ2VtZW50U2VydmljZTogRG9jdW1lbnRNYW5hZ2VtZW50U2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRpYWxvZzogTWF0RGlhbG9nLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgYXBwQ29uZmlnOiBBYnN0cmFjdEFwcENvbmZpZ1xuICApIHtcbiAgICB0aGlzLm5lc3RlZFRyZWVDb250cm9sID0gbmV3IE5lc3RlZFRyZWVDb250cm9sPERvY3VtZW50VHJlZU5vZGU+KHRoaXMuZ2V0Q2hpbGRyZW4pO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZG9jdW1lbnRGaWx0ZXJGb3JtR3JvdXAgPSBuZXcgRm9ybUdyb3VwKHt9KTtcbiAgICB0aGlzLmRvY3VtZW50U2VhcmNoRm9ybUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woJycpO1xuICAgIHRoaXMuZG9jdW1lbnRGaWx0ZXJGb3JtR3JvdXAuYWRkQ29udHJvbChDYXNlRmlsZVZpZXdGb2xkZXJDb21wb25lbnQuRE9DVU1FTlRfU0VBUkNIX0ZPUk1fQ09OVFJPTF9OQU1FLCB0aGlzLmRvY3VtZW50U2VhcmNoRm9ybUNvbnRyb2wpO1xuXG4gICAgLy8gTGlzdGVuIHRvIHNlYXJjaCBpbnB1dCBhbmQgaW5pdGlhdGUgZmlsdGVyIGRvY3VtZW50cyBpZiBhdCBsZWFzdCB0aHJlZSBjaGFyYWN0ZXJzIGVudGVyZWRcbiAgICB0aGlzLmRvY3VtZW50RmlsdGVyU3Vic2NyaXB0aW9uID0gdGhpcy5kb2N1bWVudFNlYXJjaEZvcm1Db250cm9sLnZhbHVlQ2hhbmdlcy5waXBlKFxuICAgICAgdGFwKChzZWFyY2hUZXJtOiBzdHJpbmcpID0+IHRoaXMuc2VhcmNoVGVybUxlbmd0aCA9IHNlYXJjaFRlcm0ubGVuZ3RoKSxcbiAgICAgIHN3aXRjaE1hcCgoc2VhcmNoVGVybTogc3RyaW5nKSA9PiB0aGlzLmZpbHRlcihzZWFyY2hUZXJtLnRvTG93ZXJDYXNlKCkpLnBpcGUoKSlcbiAgICApLnN1YnNjcmliZShkb2N1bWVudFRyZWVEYXRhID0+IHtcbiAgICAgIHRoaXMubmVzdGVkRGF0YVNvdXJjZSA9IGRvY3VtZW50VHJlZURhdGE7XG4gICAgICB0aGlzLm5lc3RlZFRyZWVDb250cm9sLmRhdGFOb2RlcyA9IGRvY3VtZW50VHJlZURhdGE7XG4gICAgICB0aGlzLnNlYXJjaFRlcm1MZW5ndGggPj0gQ2FzZUZpbGVWaWV3Rm9sZGVyQ29tcG9uZW50Lk1JTklNVU1fU0VBUkNIX0NIQVJBQ1RFUlNcbiAgICAgICAgPyB0aGlzLm5lc3RlZFRyZWVDb250cm9sLmV4cGFuZEFsbCgpXG4gICAgICAgIDogdGhpcy5uZXN0ZWRUcmVlQ29udHJvbC5jb2xsYXBzZUFsbCgpO1xuICAgIH0pO1xuXG4gICAgLy8gU3Vic2NyaWJlIHRvIHRoZSBpbnB1dCBjYXRlZ29yaWVzIGFuZCBkb2N1bWVudHMsIGFuZCBnZW5lcmF0ZSB0cmVlIGRhdGEgYW5kIGluaXRpYWxpc2UgY2RrIHRyZWVcbiAgICB0aGlzLmNhdGVnb3JpZXNBbmREb2N1bWVudHNTdWJzY3JpcHRpb24gPSB0aGlzLmNhdGVnb3JpZXNBbmREb2N1bWVudHMuc3Vic2NyaWJlKGNhdGVnb3JpZXNBbmREb2N1bWVudHMgPT4ge1xuICAgICAgY29uc3QgY2F0ZWdvcmllcyA9IGNhdGVnb3JpZXNBbmREb2N1bWVudHMuY2F0ZWdvcmllcztcbiAgICAgIHRoaXMuY2F0ZWdvcmllcyA9IGNhdGVnb3JpZXM7XG4gICAgICAvLyBHZW5lcmF0ZSBkb2N1bWVudCB0cmVlIGRhdGEgZnJvbSBjYXRlZ29yaWVzXG4gICAgICB0aGlzLmRvY3VtZW50VHJlZURhdGEgPSB0aGlzLmdlbmVyYXRlVHJlZURhdGEoY2F0ZWdvcmllcyk7XG4gICAgICAvLyBBcHBlbmQgdW5jYXRlZ29yaXNlZCBkb2N1bWVudHNcbiAgICAgIGlmIChjYXRlZ29yaWVzQW5kRG9jdW1lbnRzLnVuY2F0ZWdvcmlzZWRfZG9jdW1lbnRzICYmIGNhdGVnb3JpZXNBbmREb2N1bWVudHMudW5jYXRlZ29yaXNlZF9kb2N1bWVudHMubGVuZ3RoID4gMCkge1xuICAgICAgICBjb25zdCB1bmNhdGVnb3Jpc2VkRG9jdW1lbnRzID0gdGhpcy5nZXRVbmNhdGVnb3Jpc2VkRG9jdW1lbnRzKGNhdGVnb3JpZXNBbmREb2N1bWVudHMudW5jYXRlZ29yaXNlZF9kb2N1bWVudHMpO1xuICAgICAgICB0aGlzLmRvY3VtZW50VHJlZURhdGEucHVzaCh1bmNhdGVnb3Jpc2VkRG9jdW1lbnRzKTtcbiAgICAgIH1cblxuICAgICAgLy8gSW5pdGlhbGlzZSBjZGsgdHJlZSB3aXRoIGdlbmVyYXRlZCBkYXRhXG4gICAgICB0aGlzLm5lc3RlZERhdGFTb3VyY2UgPSB0aGlzLmRvY3VtZW50VHJlZURhdGE7XG4gICAgICB0aGlzLm5lc3RlZFRyZWVDb250cm9sLmRhdGFOb2RlcyA9IHRoaXMuZG9jdW1lbnRUcmVlRGF0YTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZW5lcmF0ZVRyZWVEYXRhKGNhdGVnb3JpZXM6IENhc2VGaWxlVmlld0NhdGVnb3J5W10pOiBEb2N1bWVudFRyZWVOb2RlW10ge1xuICAgIHJldHVybiBjYXRlZ29yaWVzLnJlZHVjZSgodHJlZSwgbm9kZSkgPT4ge1xuICAgICAgY29uc3QgbmV3RG9jdW1lbnRUcmVlTm9kZSA9IG5ldyBEb2N1bWVudFRyZWVOb2RlKCk7XG4gICAgICBuZXdEb2N1bWVudFRyZWVOb2RlLm5hbWUgPSBub2RlLmNhdGVnb3J5X25hbWU7XG4gICAgICBuZXdEb2N1bWVudFRyZWVOb2RlLnR5cGUgPSBEb2N1bWVudFRyZWVOb2RlVHlwZS5GT0xERVI7XG4gICAgICBuZXdEb2N1bWVudFRyZWVOb2RlLmNoaWxkcmVuID0gWy4uLnRoaXMuZ2VuZXJhdGVUcmVlRGF0YShub2RlLnN1Yl9jYXRlZ29yaWVzKSwgLi4udGhpcy5nZXREb2N1bWVudHMobm9kZS5kb2N1bWVudHMpXTtcbiAgICAgIG5ld0RvY3VtZW50VHJlZU5vZGUuY2F0ZWdvcnlfb3JkZXIgPSBub2RlLmNhdGVnb3J5X29yZGVyO1xuXG4gICAgICByZXR1cm4gW1xuICAgICAgICAuLi50cmVlLFxuICAgICAgICBuZXdEb2N1bWVudFRyZWVOb2RlLFxuICAgICAgXS5zb3J0KChhLGIpID0+IGEuY2F0ZWdvcnlfb3JkZXIgLSBiLmNhdGVnb3J5X29yZGVyKTtcbiAgICB9LCBbXSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0RG9jdW1lbnRzKGRvY3VtZW50czogQ2FzZUZpbGVWaWV3RG9jdW1lbnRbXSk6IERvY3VtZW50VHJlZU5vZGVbXSB7XG4gICAgY29uc3QgZG9jdW1lbnRzVG9SZXR1cm46IERvY3VtZW50VHJlZU5vZGVbXSA9IFtdO1xuICAgIGRvY3VtZW50cy5mb3JFYWNoKGRvY3VtZW50ID0+IHtcbiAgICAgIGNvbnN0IGRvY3VtZW50VHJlZU5vZGUgPSBuZXcgRG9jdW1lbnRUcmVlTm9kZSgpO1xuICAgICAgZG9jdW1lbnRUcmVlTm9kZS5uYW1lID0gZG9jdW1lbnQuZG9jdW1lbnRfZmlsZW5hbWU7XG4gICAgICBkb2N1bWVudFRyZWVOb2RlLnR5cGUgPSBEb2N1bWVudFRyZWVOb2RlVHlwZS5ET0NVTUVOVDtcbiAgICAgIGRvY3VtZW50VHJlZU5vZGUuZG9jdW1lbnRfZmlsZW5hbWUgPSBkb2N1bWVudC5kb2N1bWVudF9maWxlbmFtZTtcbiAgICAgIGRvY3VtZW50VHJlZU5vZGUuZG9jdW1lbnRfYmluYXJ5X3VybCA9IGRvY3VtZW50LmRvY3VtZW50X2JpbmFyeV91cmw7XG4gICAgICBkb2N1bWVudFRyZWVOb2RlLmF0dHJpYnV0ZV9wYXRoID0gZG9jdW1lbnQuYXR0cmlidXRlX3BhdGg7XG4gICAgICBkb2N1bWVudFRyZWVOb2RlLnVwbG9hZF90aW1lc3RhbXAgPSB0aGlzLmFwcENvbmZpZy5nZXRFbmFibGVDYXNlRmlsZVZpZXdWZXJzaW9uMV8xKClcbiAgICAgICAgICAmJiBkb2N1bWVudC51cGxvYWRfdGltZXN0YW1wID8gbW9tZW50KGRvY3VtZW50LnVwbG9hZF90aW1lc3RhbXApLmZvcm1hdCgnREQgTU1NIFlZWVkgSEg6bW06c3MnKSA6ICcnO1xuXG4gICAgICBkb2N1bWVudHNUb1JldHVybi5wdXNoKGRvY3VtZW50VHJlZU5vZGUpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIGRvY3VtZW50c1RvUmV0dXJuO1xuICB9XG5cbiAgcHVibGljIGdldFVuY2F0ZWdvcmlzZWREb2N1bWVudHModW5jYXRlZ29yaXNlZERvY3VtZW50czogQ2FzZUZpbGVWaWV3RG9jdW1lbnRbXSk6IERvY3VtZW50VHJlZU5vZGUge1xuICAgIGNvbnN0IGRvY3VtZW50czogRG9jdW1lbnRUcmVlTm9kZVtdID0gW107XG4gICAgdW5jYXRlZ29yaXNlZERvY3VtZW50cy5mb3JFYWNoKGRvY3VtZW50ID0+IHtcbiAgICAgIGNvbnN0IGRvY3VtZW50VHJlZU5vZGUgPSBuZXcgRG9jdW1lbnRUcmVlTm9kZSgpO1xuICAgICAgZG9jdW1lbnRUcmVlTm9kZS5uYW1lID0gZG9jdW1lbnQuZG9jdW1lbnRfZmlsZW5hbWU7XG4gICAgICBkb2N1bWVudFRyZWVOb2RlLnR5cGUgPSBEb2N1bWVudFRyZWVOb2RlVHlwZS5ET0NVTUVOVDtcbiAgICAgIGRvY3VtZW50VHJlZU5vZGUuZG9jdW1lbnRfZmlsZW5hbWUgPSBkb2N1bWVudC5kb2N1bWVudF9maWxlbmFtZTtcbiAgICAgIGRvY3VtZW50VHJlZU5vZGUuZG9jdW1lbnRfYmluYXJ5X3VybCA9IGRvY3VtZW50LmRvY3VtZW50X2JpbmFyeV91cmw7XG4gICAgICBkb2N1bWVudFRyZWVOb2RlLmF0dHJpYnV0ZV9wYXRoID0gZG9jdW1lbnQuYXR0cmlidXRlX3BhdGg7XG4gICAgICBkb2N1bWVudFRyZWVOb2RlLnVwbG9hZF90aW1lc3RhbXAgPSB0aGlzLmFwcENvbmZpZy5nZXRFbmFibGVDYXNlRmlsZVZpZXdWZXJzaW9uMV8xKClcbiAgICAgICAgICAmJiBkb2N1bWVudC51cGxvYWRfdGltZXN0YW1wID8gbW9tZW50KGRvY3VtZW50LnVwbG9hZF90aW1lc3RhbXApLmZvcm1hdCgnREQgTU1NIFlZWVkgSEg6bW06c3MnKSA6ICcnO1xuXG4gICAgICBkb2N1bWVudHMucHVzaChkb2N1bWVudFRyZWVOb2RlKTtcbiAgICB9KTtcblxuICAgIGNvbnN0IHVuY2F0ZWdvcmlzZWROb2RlID0gbmV3IERvY3VtZW50VHJlZU5vZGUoKTtcbiAgICB1bmNhdGVnb3Jpc2VkTm9kZS5uYW1lID0gQ2FzZUZpbGVWaWV3Rm9sZGVyQ29tcG9uZW50LlVOQ0FURUdPUklTRURfRE9DVU1FTlRTX1RJVExFO1xuICAgIHVuY2F0ZWdvcmlzZWROb2RlLnR5cGUgPSBEb2N1bWVudFRyZWVOb2RlVHlwZS5GT0xERVI7XG4gICAgdW5jYXRlZ29yaXNlZE5vZGUuY2hpbGRyZW4gPSBkb2N1bWVudHM7XG5cbiAgICByZXR1cm4gdW5jYXRlZ29yaXNlZE5vZGU7XG4gIH1cblxuICBwdWJsaWMgZmlsdGVyKHNlYXJjaFRlcm06IHN0cmluZyk6IE9ic2VydmFibGU8RG9jdW1lbnRUcmVlTm9kZVtdPiB7XG4gICAgLy8gTWFrZSBhIGNvcHkgb2YgdGhlIGRhdGEgc28gd2UgZG8gbm90IG11dGF0ZSB0aGUgb3JpZ2luYWxcbiAgICBmdW5jdGlvbiBjb3B5KG5vZGU6IERvY3VtZW50VHJlZU5vZGUpIHtcbiAgICAgIGNvbnN0IGRvY3VtZW50VHJlZU5vZGUgPSBuZXcgRG9jdW1lbnRUcmVlTm9kZSgpO1xuICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oZG9jdW1lbnRUcmVlTm9kZSwgbm9kZSk7XG4gICAgfVxuXG4gICAgbGV0IGZpbHRlcmVkRGF0YSA9IHRoaXMuZG9jdW1lbnRUcmVlRGF0YTtcbiAgICBpZiAoc2VhcmNoVGVybSAmJiBzZWFyY2hUZXJtLmxlbmd0aCA+PSBDYXNlRmlsZVZpZXdGb2xkZXJDb21wb25lbnQuTUlOSU1VTV9TRUFSQ0hfQ0hBUkFDVEVSUyAmJiB0aGlzLmRvY3VtZW50RmlsdGVyRm9ybUdyb3VwLmNvbnRyb2xzW0Nhc2VGaWxlVmlld0ZvbGRlckNvbXBvbmVudC5ET0NVTUVOVF9TRUFSQ0hfRk9STV9DT05UUk9MX05BTUVdLnZhbHVlLmxlbmd0aCA+IDApIHtcbiAgICAgIGZpbHRlcmVkRGF0YSA9IHRoaXMuZG9jdW1lbnRUcmVlRGF0YS5tYXAoY29weSkuZmlsdGVyKGZ1bmN0aW9uIGZpbHRlclRyZWVEYXRhKG5vZGU6IERvY3VtZW50VHJlZU5vZGUpIHtcbiAgICAgICAgaWYgKG5vZGUubmFtZSAmJiBub2RlLm5hbWUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2hUZXJtKSAmJiBub2RlLnR5cGUgPT09IERvY3VtZW50VHJlZU5vZGVUeXBlLkRPQ1VNRU5UKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgLy8gQ2FsbCByZWN1cnNpdmVseSBpZiBub2RlIGhhcyBjaGlsZHJlblxuICAgICAgICBpZiAobm9kZS5jaGlsZHJlbikge1xuICAgICAgICAgIHJldHVybiAobm9kZS5jaGlsZHJlbiA9IG5vZGUuY2hpbGRyZW4ubWFwKGNvcHkpLmZpbHRlcihmaWx0ZXJUcmVlRGF0YSkpLmxlbmd0aDtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBvZihmaWx0ZXJlZERhdGEpO1xuICB9XG5cbiAgcHVibGljIHRyaWdnZXJEb2N1bWVudEFjdGlvbihcbiAgICBhY3Rpb25UeXBlOiAnY2hhbmdlRm9sZGVyJyB8ICdvcGVuSW5BTmV3VGFiJyB8ICdkb3dubG9hZCcgfCAncHJpbnQnLFxuICAgIGRvY3VtZW50VHJlZU5vZGU6IERvY3VtZW50VHJlZU5vZGVcbiAgKTogdm9pZCB7XG4gICAgc3dpdGNoIChhY3Rpb25UeXBlKSB7XG4gICAgICBjYXNlICgnY2hhbmdlRm9sZGVyJyk6XG4gICAgICAgIHRoaXMub3Blbk1vdmVEaWFsb2coZG9jdW1lbnRUcmVlTm9kZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAoJ29wZW5JbkFOZXdUYWInKTpcbiAgICAgICAgdGhpcy53aW5kb3dTZXJ2aWNlLnNldExvY2FsU3RvcmFnZShNRURJQV9WSUVXRVJfTE9DQUxTVE9SQUdFX0tFWSxcbiAgICAgICAgICB0aGlzLmRvY3VtZW50TWFuYWdlbWVudFNlcnZpY2UuZ2V0TWVkaWFWaWV3ZXJJbmZvKHtcbiAgICAgICAgICAgIGRvY3VtZW50X2JpbmFyeV91cmw6IGRvY3VtZW50VHJlZU5vZGUuZG9jdW1lbnRfYmluYXJ5X3VybCxcbiAgICAgICAgICAgIGRvY3VtZW50X2ZpbGVuYW1lOiBkb2N1bWVudFRyZWVOb2RlLmRvY3VtZW50X2ZpbGVuYW1lXG4gICAgICAgICAgfSkpO1xuXG4gICAgICAgIHRoaXMud2luZG93U2VydmljZS5vcGVuT25OZXdUYWIoXG4gICAgICAgICAgdGhpcy5yb3V0ZXIuY3JlYXRlVXJsVHJlZShbJy9tZWRpYS12aWV3ZXInXSk/LnRvU3RyaW5nKClcbiAgICAgICAgKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICgnZG93bmxvYWQnKTpcbiAgICAgICAgLy8gQ3JlYXRlIGEgVVJMIGZyb20gdGhlIGRvY3VtZW50X2JpbmFyeV91cmwgcHJvcGVydHkgKGFic29sdXRlIFVSTCkgYW5kIHVzZSB0aGUgcGF0aCBwb3J0aW9uIChyZWxhdGl2ZSBVUkwpLlxuICAgICAgICAvLyBUaGlzIGlzIG5lY2Vzc2FyeSBiZWNhdXNlIHRoZSBNYW5hZ2UgQ2FzZXMgYXBwbGljYXRpb24gd2lsbCBhdXRvbWF0aWNhbGx5IGFwcGx5IGEgcHJveHkgdG8gdGhlIHJlcXVlc3QsIHdpdGhcbiAgICAgICAgLy8gdGhlIGNvcnJlY3QgcmVtb3RlIGVuZHBvaW50XG4gICAgICAgIHRoaXMuZG93bmxvYWRGaWxlKG5ldyBVUkwoZG9jdW1lbnRUcmVlTm9kZS5kb2N1bWVudF9iaW5hcnlfdXJsKS5wYXRobmFtZSwgZG9jdW1lbnRUcmVlTm9kZS5kb2N1bWVudF9maWxlbmFtZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAoJ3ByaW50Jyk6XG4gICAgICAgIHRoaXMucHJpbnREb2N1bWVudChuZXcgVVJMKGRvY3VtZW50VHJlZU5vZGUuZG9jdW1lbnRfYmluYXJ5X3VybCkucGF0aG5hbWUpO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc29ydERhdGFTb3VyY2VBc2NlbmRpbmcoY29sdW1uOiBudW1iZXIpIHtcbiAgICBjb25zdCBzb3J0ZWREYXRhID0gdGhpcy5uZXN0ZWREYXRhU291cmNlLm1hcChpdGVtID0+IHtcbiAgICAgIGl0ZW0uc29ydENoaWxkcmVuQXNjZW5kaW5nKGNvbHVtbiwgU29ydE9yZGVyLkFTQ0VORElORyk7XG4gICAgICByZXR1cm4gaXRlbTtcbiAgICB9KTtcblxuICAgIHRoaXMudXBkYXRlTm9kZURhdGEoc29ydGVkRGF0YSk7XG4gIH1cblxuICBwdWJsaWMgc29ydERhdGFTb3VyY2VEZXNjZW5kaW5nKGNvbHVtbjogbnVtYmVyKSB7XG4gICAgY29uc3Qgc29ydGVkRGF0YSA9IHRoaXMubmVzdGVkRGF0YVNvdXJjZS5tYXAoaXRlbSA9PiB7XG4gICAgICBpdGVtLnNvcnRDaGlsZHJlbkRlc2NlbmRpbmcoY29sdW1uLCBTb3J0T3JkZXIuREVTQ0VORElORyk7XG4gICAgICByZXR1cm4gaXRlbTtcbiAgICB9KTtcblxuICAgIHRoaXMudXBkYXRlTm9kZURhdGEoc29ydGVkRGF0YSk7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlTm9kZURhdGEoZGF0YTogRG9jdW1lbnRUcmVlTm9kZVtdKTogdm9pZCB7XG4gICAgY29uc3QgcHJldlNlbGVjdGVkID0gdGhpcy5uZXN0ZWRUcmVlQ29udHJvbC5leHBhbnNpb25Nb2RlbC5zZWxlY3RlZC5tYXAoXG4gICAgICAoaXRlbSkgPT4ge1xuICAgICAgICByZXR1cm4gaXRlbS5uYW1lO1xuICAgICAgfSk7XG5cbiAgICB0aGlzLm5lc3RlZFRyZWVDb250cm9sLmNvbGxhcHNlQWxsKCk7XG4gICAgdGhpcy5uZXN0ZWREYXRhU291cmNlID0gZGF0YS5tYXAoKGl0ZW0pID0+IHtcbiAgICAgIGNvbnN0IG5ld0RvY3VtZW50VHJlZU5vZGUgPSBuZXcgRG9jdW1lbnRUcmVlTm9kZSgpO1xuICAgICAgbmV3RG9jdW1lbnRUcmVlTm9kZS5uYW1lID0gaXRlbS5uYW1lO1xuICAgICAgbmV3RG9jdW1lbnRUcmVlTm9kZS50eXBlID0gaXRlbS50eXBlO1xuICAgICAgbmV3RG9jdW1lbnRUcmVlTm9kZS5jaGlsZHJlbiA9IGl0ZW0uY2hpbGRyZW47XG5cbiAgICAgIHJldHVybiBuZXdEb2N1bWVudFRyZWVOb2RlO1xuICAgIH0pO1xuXG4gICAgY29uc3QgZmxhdHRlbmVkQXJyYXkgPSB0aGlzLm5lc3RlZERhdGFTb3VyY2UubWFwKChpdGVtKSA9PiB7XG4gICAgICByZXR1cm4gaXRlbS5mbGF0dGVuZWRBbGw7XG4gICAgfSkuZmxhdCgpO1xuICAgIGNvbnN0IG5ld09iamVjdHMgPSBmbGF0dGVuZWRBcnJheS5maWx0ZXIoKGl0ZW0pID0+IHtcbiAgICAgIHJldHVybiBwcmV2U2VsZWN0ZWQuaW5jbHVkZXMoaXRlbS5uYW1lKTtcbiAgICB9KTtcbiAgICBuZXdPYmplY3RzLmZvckVhY2gob2JqZWN0ID0+IHRoaXMubmVzdGVkVHJlZUNvbnRyb2wuZXhwYW5kKG9iamVjdCkpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuY2F0ZWdvcmllc0FuZERvY3VtZW50c1N1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLmRvY3VtZW50RmlsdGVyU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBvcGVuTW92ZURpYWxvZyhub2RlOiBEb2N1bWVudFRyZWVOb2RlKTogdm9pZCB7XG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihDYXNlRmlsZVZpZXdGb2xkZXJTZWxlY3RvckNvbXBvbmVudCwge1xuICAgICAgZGF0YTogeyBjYXRlZ29yaWVzOiB0aGlzLmNhdGVnb3JpZXMsIGRvY3VtZW50OiBub2RlIH1cbiAgICB9KTtcblxuICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZShuZXdDYXRJZCA9PiB7XG4gICAgICBpZiAobmV3Q2F0SWQpIHtcbiAgICAgICAgdGhpcy5tb3ZlRG9jdW1lbnQuZW1pdCh7IG5ld0NhdGVnb3J5OiBuZXdDYXRJZCwgZG9jdW1lbnQ6IG5vZGUgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgcHJpbnREb2N1bWVudCh1cmw6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IHByaW50V2luZG93ID0gd2luZG93Lm9wZW4odXJsKTtcbiAgICBwcmludFdpbmRvdy5wcmludCgpO1xuICB9XG5cbiAgcHVibGljIGRvd25sb2FkRmlsZSh1cmw6IHN0cmluZywgZG93bmxvYWRGaWxlTmFtZTogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGEpO1xuICAgIGEuc2V0QXR0cmlidXRlKCdzdHlsZScsICdkaXNwbGF5OiBub25lJyk7XG4gICAgYS5ocmVmID0gdXJsO1xuICAgIGEuZG93bmxvYWQgPSBkb3dubG9hZEZpbGVOYW1lO1xuICAgIGEuY2xpY2soKTtcbiAgICBhLnJlbW92ZSgpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZG9jdW1lbnQtZmlsdGVyLWNvbnRhaW5lclwiPlxuICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cCBkb2N1bWVudC1maWx0ZXJcIiBbZm9ybUdyb3VwXT1cImRvY3VtZW50RmlsdGVyRm9ybUdyb3VwXCI+XG4gICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jb250cm9sIGRvY3VtZW50LXNlYXJjaFwiXG4gICAgICB0eXBlPVwic2VhcmNoXCJcbiAgICAgIGlkPVwiZG9jdW1lbnQtc2VhcmNoXCJcbiAgICAgIG5hbWU9XCJkb2N1bWVudFNlYXJjaEZvcm1Db250cm9sXCJcbiAgICAgIGZvcm1Db250cm9sTmFtZT1cImRvY3VtZW50U2VhcmNoRm9ybUNvbnRyb2xcIlxuICAgICAgcGxhY2Vob2xkZXI9XCJTZWFyY2ggYnkgZG9jdW1lbnQgbmFtZVwiXG4gICAgICBhcmlhLWxhYmVsPVwiU2VhcmNoIGJ5IGRvY3VtZW50IG5hbWVcIj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPGRpdiBjbGFzcz1cImRvY3VtZW50LWZvbGRlcnMtaGVhZGVyXCI+XG4gIDxkaXYgY2xhc3M9XCJkb2N1bWVudC1mb2xkZXJzLWhlYWRlcl9fdGl0bGVcIj5Eb2N1bWVudHMgKHt7IGRvY3VtZW50Q291bnQgfX0pPC9kaXY+XG4gIDxkaXY+XG4gICAgPGNjZC1jYXNlLWZpbGUtdmlldy1mb2xkZXItc29ydFxuICAgICAgKHNvcnRBc2NlbmRpbmcpPVwic29ydERhdGFTb3VyY2VBc2NlbmRpbmcoJGV2ZW50KVwiXG4gICAgICAoc29ydERlc2NlbmRpbmcpPVwic29ydERhdGFTb3VyY2VEZXNjZW5kaW5nKCRldmVudClcIlxuICAgID48L2NjZC1jYXNlLWZpbGUtdmlldy1mb2xkZXItc29ydD5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPGRpdiBjbGFzcz1cImRvY3VtZW50LXRyZWUtY29udGFpbmVyXCIgKm5nSWY9XCJkb2N1bWVudFRyZWVEYXRhXCI+XG4gIDxkaXYgKm5nSWY9XCIhbmVzdGVkRGF0YVNvdXJjZSB8fCBuZXN0ZWREYXRhU291cmNlLmxlbmd0aCA9PT0gMFwiPlxuICAgIE5vIHJlc3VsdHMgZm91bmRcbiAgPC9kaXY+XG4gIDxkaXY+XG4gICAgPGNkay10cmVlIFtkYXRhU291cmNlXT1cIm5lc3RlZERhdGFTb3VyY2VcIiBbdHJlZUNvbnRyb2xdPVwibmVzdGVkVHJlZUNvbnRyb2xcIj5cbiAgICAgIDwhLS0gZG9jdW1lbnQgLS0+XG4gICAgICA8Y2RrLW5lc3RlZC10cmVlLW5vZGUgY2xhc3M9XCJkb2N1bWVudC10cmVlLWNvbnRhaW5lcl9fbm9kZSBkb2N1bWVudC10cmVlLWNvbnRhaW5lcl9fbm9kZS0tZG9jdW1lbnRcIiAqY2RrVHJlZU5vZGVEZWY9XCJsZXQgbm9kZVwiPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwibm9kZVwiIChjbGljayk9XCJzZWxlY3RlZE5vZGVJdGVtID0gbm9kZTsgY2xpY2tlZERvY3VtZW50LmVtaXQobm9kZSlcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5ub2RlLS1zZWxlY3RlZF09XCJzZWxlY3RlZE5vZGVJdGVtPy5uYW1lID09PSBub2RlLm5hbWVcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibm9kZV9faWNvblwiIGRpc2FibGVkPlxuICAgICAgICAgICAgPGltZyBzcmM9XCIvYXNzZXRzL2ltZy9jYXNlLWZpbGUtdmlldy9jYXNlLWZpbGUtdmlldy1kb2N1bWVudC5zdmdcIiBjbGFzcz1cIm5vZGVfX2ljb25JbWdcIiBhbHQ9XCJEb2N1bWVudCBpY29uXCI+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJub2RlX19uYW1lIG5vZGUtbmFtZS1kb2N1bWVudFwiPlxuICAgICAgICAgICAge3tub2RlLm5hbWV9fVxuICAgICAgICAgICAgPGJyPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJub2RlX19kb2N1bWVudC11cGxvYWQtdGltZXN0YW1wXCI+e3tub2RlLnVwbG9hZF90aW1lc3RhbXAgfCBkYXRlOlwiZGQgTU1NIFlZWVkgSEg6bW1cIn19PC9zcGFuPlxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibm9kZV9fZG9jdW1lbnQtb3B0aW9uc1wiPlxuICAgICAgICAgICAgPGNjZC1jYXNlLWZpbGUtdmlldy1mb2xkZXItZG9jdW1lbnQtYWN0aW9uc1xuICAgICAgICAgICAgICAoY2hhbmdlRm9sZGVyQWN0aW9uKT1cInRyaWdnZXJEb2N1bWVudEFjdGlvbignY2hhbmdlRm9sZGVyJywgbm9kZSlcIlxuICAgICAgICAgICAgICAob3BlbkluQU5ld1RhYkFjdGlvbik9XCJ0cmlnZ2VyRG9jdW1lbnRBY3Rpb24oJ29wZW5JbkFOZXdUYWInLCBub2RlKVwiXG4gICAgICAgICAgICAgIChkb3dubG9hZEFjdGlvbik9XCJ0cmlnZ2VyRG9jdW1lbnRBY3Rpb24oJ2Rvd25sb2FkJywgbm9kZSlcIlxuICAgICAgICAgICAgICAocHJpbnRBY3Rpb24pPVwidHJpZ2dlckRvY3VtZW50QWN0aW9uKCdwcmludCcsIG5vZGUpXCJcbiAgICAgICAgICAgICAgW2FsbG93TW92aW5nXT1cImFsbG93TW92aW5nXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDwvY2NkLWNhc2UtZmlsZS12aWV3LWZvbGRlci1kb2N1bWVudC1hY3Rpb25zPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvY2RrLW5lc3RlZC10cmVlLW5vZGU+XG4gICAgICA8IS0tIGZvbGRlci0tPlxuICAgICAgPGNkay1uZXN0ZWQtdHJlZS1ub2RlIGNsYXNzPVwiZG9jdW1lbnQtdHJlZS1jb250YWluZXJfX25vZGUgZG9jdW1lbnQtdHJlZS1jb250YWluZXJfX2ZvbGRlclwiICpjZGtUcmVlTm9kZURlZj1cImxldCBub2RlOyB3aGVuOiBuZXN0ZWRDaGlsZHJlblwiPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwibm9kZVwiIGNka1RyZWVOb2RlVG9nZ2xlPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJub2RlX19pY29uXCIgW2F0dHIuYXJpYS1sYWJlbF09XCIndG9nZ2xlICcgKyBub2RlLm5hbWVcIiA+XG4gICAgICAgICAgICA8aW1nIGNsYXNzPVwibm9kZV9faWNvbkltZ1wiXG4gICAgICAgICAgICAgICAgIFtzcmNdPVwibmVzdGVkVHJlZUNvbnRyb2wuaXNFeHBhbmRlZChub2RlKSA/ICcvYXNzZXRzL2ltYWdlcy9mb2xkZXItb3Blbi5wbmcnIDogJy9hc3NldHMvaW1hZ2VzL2ZvbGRlci5wbmcnXCIgYWx0PVwiRm9sZGVyIGljb25cIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibm9kZV9fY291bnRcIj57e25vZGUuY2hpbGREb2N1bWVudENvdW50fX08L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJub2RlX19uYW1lIG5vZGVfX25hbWUtLWZvbGRlclwiPnt7bm9kZS5uYW1lfX08L3NwYW4+XG4gICAgICAgIDwvYnV0dG9uPlxuXG4gICAgICAgIDxkaXYgW2NsYXNzLmRvY3VtZW50LXRyZWUtaW52aXNpYmxlXT1cIiFuZXN0ZWRUcmVlQ29udHJvbC5pc0V4cGFuZGVkKG5vZGUpXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciBjZGtUcmVlTm9kZU91dGxldD48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Nkay1uZXN0ZWQtdHJlZS1ub2RlPlxuICAgIDwvY2RrLXRyZWU+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -27,7 +27,7 @@ export const categoriesAndDocumentsTestData = {
27
27
  document_filename: 'Ale encyclopedia',
28
28
  document_binary_url: '/test/binary',
29
29
  attribute_path: '',
30
- upload_timestamp: new Date(2023, 2, 12, 0, 0, 0, 0),
30
+ upload_timestamp: new Date(2023, 2, 12, 1, 23, 1, 0),
31
31
  content_type: ''
32
32
  }
33
33
  ],
@@ -230,4 +230,4 @@ export const categoriesAndDocumentsTestData = {
230
230
  }
231
231
  ]
232
232
  };
233
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcmllcy1hbmQtZG9jdW1lbnRzLXRlc3QtZGF0YS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9wYWxldHRlL2Nhc2UtZmlsZS12aWV3L3Rlc3QtZGF0YS9jYXRlZ29yaWVzLWFuZC1kb2N1bWVudHMtdGVzdC1kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sQ0FBQyxNQUFNLDhCQUE4QixHQUEyQjtJQUNwRSxZQUFZLEVBQUUsQ0FBQztJQUNmLFVBQVUsRUFBRTtRQUNWO1lBQ0UsV0FBVyxFQUFFLE9BQU87WUFDcEIsYUFBYSxFQUFFLE9BQU87WUFDdEIsY0FBYyxFQUFFLENBQUM7WUFDakIsU0FBUyxFQUFFO2dCQUNUO29CQUNFLFlBQVksRUFBRSxPQUFPO29CQUNyQixpQkFBaUIsRUFBRSxvQkFBb0I7b0JBQ3ZDLG1CQUFtQixFQUFFLGNBQWM7b0JBQ25DLGNBQWMsRUFBRSxFQUFFO29CQUNsQixnQkFBZ0IsRUFBRSxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7b0JBQ25ELFlBQVksRUFBRSxFQUFFO2lCQUNqQjtnQkFDRDtvQkFDRSxZQUFZLEVBQUUsT0FBTztvQkFDckIsaUJBQWlCLEVBQUUsb0JBQW9CO29CQUN2QyxtQkFBbUIsRUFBRSxjQUFjO29CQUNuQyxjQUFjLEVBQUUsRUFBRTtvQkFDbEIsZ0JBQWdCLEVBQUUsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO29CQUNuRCxZQUFZLEVBQUUsRUFBRTtpQkFDakI7Z0JBQ0Q7b0JBQ0UsWUFBWSxF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bUJBQW1COzRCQUNoQyxhQUFhLEVBQUUsYUFBYTs0QkFDNUIsY0FBYyxFQUFFLENBQUM7NEJBQ2pCLFNBQVMsRUFBRSxFQUFFOzRCQUNiLGNBQWMsRUFBRSxFQUFFO3lCQUNuQjtxQkFDRjtpQkFDRjthQUNGO1NBQ0Y7S0FDRjtJQUNELHVCQUF1QixFQUFFO1FBQ3ZCO1lBQ0UsWUFBWSxFQUFFLDJCQUEyQjtZQUN6QyxpQkFBaUIsRUFBRSwwQkFBMEI7WUFDN0MsbUJBQW1CLEVBQUUsY0FBYztZQUNuQyxjQUFjLEVBQUUsRUFBRTtZQUNsQixnQkFBZ0IsRUFBRSxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDcEQsWUFBWSxFQUFFLEVBQUU7U0FDakI7UUFDRDtZQUNFLFlBQVksRUFBRSwyQkFBMkI7WUFDekMsaUJBQWlCLEVBQUUsMEJBQTBCO1lBQzdDLG1CQUFtQixFQUFFLGNBQWM7WUFDbkMsY0FBYyxFQUFFLEVBQUU7WUFDbEIsZ0JBQWdCLEVBQUUsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ25ELFlBQVksRUFBRSxFQUFFO1NBQ2pCO0tBQ0Y7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2F0ZWdvcmllc0FuZERvY3VtZW50cyB9IGZyb20gJy4uLy4uLy4uLy4uL2RvbWFpbi9jYXNlLWZpbGUtdmlldyc7XG5cbmV4cG9ydCBjb25zdCBjYXRlZ29yaWVzQW5kRG9jdW1lbnRzVGVzdERhdGE6IENhdGVnb3JpZXNBbmREb2N1bWVudHMgPSB7XG4gIGNhc2VfdmVyc2lvbjogMSxcbiAgY2F0ZWdvcmllczogW1xuICAgIHtcbiAgICAgIGNhdGVnb3J5X2lkOiAnQmVlcnMnLFxuICAgICAgY2F0ZWdvcnlfbmFtZTogJ0JlZXJzJyxcbiAgICAgIGNhdGVnb3J5X29yZGVyOiAxLFxuICAgICAgZG9jdW1lbnRzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBkb2N1bWVudF91cmw6ICcvdGVzdCcsXG4gICAgICAgICAgZG9jdW1lbnRfZmlsZW5hbWU6ICdMYWdlciBlbmN5Y2xvcGVkaWEnLFxuICAgICAgICAgIGRvY3VtZW50X2JpbmFyeV91cmw6ICcvdGVzdC9iaW5hcnknLFxuICAgICAgICAgIGF0dHJpYnV0ZV9wYXRoOiAnJyxcbiAgICAgICAgICB1cGxvYWRfdGltZXN0YW1wOiBuZXcgRGF0ZSgyMDIzLCA0LCAxMSwgMCwgMCwgMCwgMCksXG4gICAgICAgICAgY29udGVudF90eXBlOiAnJ1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgZG9jdW1lbnRfdXJsOiAnL3Rlc3QnLFxuICAgICAgICAgIGRvY3VtZW50X2ZpbGVuYW1lOiAnQmVlcnMgZW5jeWNsb3BlZGlhJyxcbiAgICAgICAgICBkb2N1bWVudF9iaW5hcnlfdXJsOiAnL3Rlc3QvYmluYXJ5JyxcbiAgICAgICAgICBhdHRyaWJ1dGVfcGF0aDogJycsXG4gICAgICAgICAgdXBsb2FkX3RpbWVzdGFtcDogbmV3IERhdGUoMjAyMywgMywgMTQsIDAsIDAsIDAsIDApLFxuICAgICAgICAgIGNvbnRlbnRfdHlwZTogJydcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGRvY3VtZW50X3VybDogJy90ZXN0JyxcbiAgICAgICAgICBkb2N1bWVudF9maWxlbmFtZTogJ0FsZSBlbmN5Y2xvcGVkaWEnLFxuICAgICAgICAgIGRvY3VtZW50X2JpbmFyeV91cmw6ICcvdGVzdC9iaW5hcnknLFxuICAgICAgICAgIGF0dHJpYnV0ZV9wYXRoOiAnJyxcbiAgICAgICAgICB1cGxvYWRfdGltZXN0YW1wOiBuZXcgRGF0ZSgyMDIzLCAyLCAxMiwgMCwgMCwgMCwgMCksXG4gICAgICAgICAgY29udGVudF90eXBlOiAnJ1xuICAgICAgICB9XG4gICAgICBdLFxuICAgICAgc3ViX2NhdGVnb3JpZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGNhdGVnb3J5X2lkOiAnQmVlcnNCaXR0ZXJzJyxcbiAgICAgICAgICBjYXRlZ29yeV9uYW1lOiAnQml0dGVycycsXG4gICAgICAgICAgY2F0ZWdvcnlfb3JkZXI6IDEsXG4gICAgICAgICAgZG9jdW1lbnRzOiBbXSxcbiAgICAgICAgICBzdWJfY2F0ZWdvcmllczogW11cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGNhdGVnb3J5X2lkOiAnQmVlcnNBbWVyaWNhbicsXG4gICAgICAgICAgY2F0ZWdvcnlfbmFtZTogJ0FtZXJpY2FuJyxcbiAgICAgICAgICBjYXRlZ29yeV9vcmRlcjogMixcbiAgICAgICAgICBkb2N1bWVudHM6IFtdLFxuICAgICAgICAgIHN1Yl9jYXRlZ29yaWVzOiBbXVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgY2F0ZWdvcnlfaWQ6ICdCZWVyc0FzaWFuJyxcbiAgICAgICAgICBjYXRlZ29yeV9uYW1lOiAnQXNpYW4nLFxuICAgICAgICAgIGNhdGVnb3J5X29yZGVyOiAzLFxuICAgICAgICAgIGRvY3VtZW50czogW10sXG4gICAgICAgICAgc3ViX2NhdGVnb3JpZXM6IFtdXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9LFxuICAgIHtcbiAgICAgIGNhdGVnb3J5X2lkOiAnV2luZXMnLFxuICAgICAgY2F0ZWdvcnlfbmFtZTogJ1dpbmVzJyxcbiAgICAgIGNhdGVnb3J5X29yZGVyOiAyLFxuICAgICAgZG9jdW1lbnRzOiBbXSxcbiAgICAgIHN1Yl9jYXRlZ29yaWVzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBjYXRlZ29yeV9pZDogJ1dpbmVzRnJlbmNoJyxcbiAgICAgICAgICBjYXRlZ29yeV9uYW1lOiAnRnJlbmNoJyxcbiAgICAgICAgICBjYXRlZ29yeV9vcmRlcjogMSxcbiAgICAgICAgICBkb2N1bWVudHM6IFtdLFxuICAgICAgICAgIHN1Yl9jYXRlZ29yaWVzOiBbXVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgY2F0ZWdvcnlfaWQ6ICdXaW5lc0l0YWxpYW4nLFxuICAgICAgICAgIGNhdGVnb3J5X25hbWU6ICdJdGFsaWFuJyxcbiAgICAgICAgICBjYXRlZ29yeV9vcmRlcjogMixcbiAgICAgICAgICBkb2N1bWVudHM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgZG9jdW1lbnRfdXJsOiAnL3JlZC13aW5lJyxcbiAgICAgICAgICAgICAgZG9jdW1lbnRfZmlsZW5hbWU6ICdEZXRhaWxzIGFib3V0IHJlZCB3aW5lJyxcbiAgICAgICAgICAgICAgZG9jdW1lbnRfYmluYXJ5X3VybDogJy90ZXN0L2JpbmFyeScsXG4gICAgICAgICAgICAgIGF0dHJpYnV0ZV9wYXRoOiAnJyxcbiAgICAgICAgICAgICAgdXBsb2FkX3RpbWVzdGFtcDogbnVsbCxcbiAgICAgICAgICAgICAgY29udGVudF90eXBlOiAnJ1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgZG9jdW1lbnRfdXJsOiAnL3doaXRlLXdpbmUnLFxuICAgICAgICAgICAgICBkb2N1bWVudF9maWxlbmFtZTogJ0RldGFpbHMgYWJvdXQgd2hpdGUgd2luZScsXG4gICAgICAgICAgICAgIGRvY3VtZW50X2JpbmFyeV91cmw6ICcvdGVzdC9iaW5hcnknLFxuICAgICAgICAgICAgICBhdHRyaWJ1dGVfcGF0aDogJycsXG4gICAgICAgICAgICAgIHVwbG9hZF90aW1lc3RhbXA6IG5ldyBEYXRlKDIwMjMsIDEsIDEwLCAwLCAwLCAwLCAwKSxcbiAgICAgICAgICAgICAgY29udGVudF90eXBlOiAnJ1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgZG9jdW1lbnRfdXJsOiAnL3Byb3NlY2NvJyxcbiAgICAgICAgICAgICAgZG9jdW1lbnRfZmlsZW5hbWU6ICdEZXRhaWxzIGFib3V0IFByb3NlY2NvJyxcbiAgICAgICAgICAgICAgZG9jdW1lbnRfYmluYXJ5X3VybDogJy90ZXN0L2JpbmFyeScsXG4gICAgICAgICAgICAgIGF0dHJpYnV0ZV9wYXRoOiAnJyxcbiAgICAgICAgICAgICAgdXBsb2FkX3RpbWVzdGFtcDogbmV3IERhdGUoMjAyMywgMywgMTIsIDAsIDAsIDAsIDApLFxuICAgICAgICAgICAgICBjb250ZW50X3R5cGU6ICcnXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBkb2N1bWVudF91cmw6ICcvcGlub3QtZ3JpZ2lvJyxcbiAgICAgICAgICAgICAgZG9jdW1lbnRfZmlsZW5hbWU6ICdEZXRhaWxzIGFib3V0IFBpbm90IEdyaWdpbycsXG4gICAgICAgICAgICAgIGRvY3VtZW50X2JpbmFyeV91cmw6ICcvdGVzdC9iaW5hcnknLFxuICAgICAgICAgICAgICBhdHRyaWJ1dGVfcGF0aDogJycsXG4gICAgICAgICAgICAgIHVwbG9hZF90aW1lc3RhbXA6IG5ldyBEYXRlKDIwMjMsIDIsIDE2LCAwLCAwLCAwLCAwKSxcbiAgICAgICAgICAgICAgY29udGVudF90eXBlOiAnJ1xuICAgICAgICAgICAgfVxuICAgICAgICAgIF0sXG4gICAgICAgICAgc3ViX2NhdGVnb3JpZXM6IFtdXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9LFxuICAgIHtcbiAgICAgIGNhdGVnb3J5X2lkOiAnU3Bpcml0cycsXG4gICAgICBjYXRlZ29yeV9uYW1lOiAnU3Bpcml0cycsXG4gICAgICBjYXRlZ29yeV9vcmRlcjogMyxcbiAgICAgIGRvY3VtZW50czogW10sXG4gICAgICBzdWJfY2F0ZWdvcmllczogW1xuICAgICAgICB7XG4gICAgICAgICAgY2F0ZWdvcnlfaWQ6ICdTcGlyaXRzV2hpc2t5JyxcbiAgICAgICAgICBjYXRlZ29yeV9uYW1lOiAnU2NvdGNoIHdoaXNreScsXG4gICAgICAgICAgY2F0ZWdvcnlfb3JkZXI6IDEsXG4gICAgICAgICAgZG9jdW1lbnRzOiBbXSxcbiAgICAgICAgICBzdWJfY2F0ZWdvcmllczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBjYXRlZ29yeV9pZDogJ1doaXNreUhpZ2hsYW5kJyxcbiAgICAgICAgICAgICAgY2F0ZWdvcnlfbmFtZTogJ0hpZ2hsYW5kJyxcbiAgICAgICAgICAgICAgY2F0ZWdvcnlfb3JkZXI6IDEsXG4gICAgICAgICAgICAgIGRvY3VtZW50czogW10sXG4gICAgICAgICAgICAgIHN1Yl9jYXRlZ29yaWVzOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgY2F0ZWdvcnlfaWQ6ICdXaGlza3lIaWdobGFuZDEnLFxuICAgICAgICAgICAgICAgICAgY2F0ZWdvcnlfbmFtZTogJ0hpZ2hsYW5kIDEnLFxuICAgICAgICAgICAgICAgICAgY2F0ZWdvcnlfb3JkZXI6IDEsXG4gICAgICAgICAgICAgICAgICBkb2N1bWVudHM6IFtdLFxuICAgICAgICAgICAgICAgICAgc3ViX2NhdGVnb3JpZXM6IFtdXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBdXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBjYXRlZ29yeV9pZDogJ1doaXNreUxvd2xhbmQnLFxuICAgICAgICAgICAgICBjYXRlZ29yeV9uYW1lOiAnTG93bGFuZCcsXG4gICAgICAgICAgICAgIGNhdGVnb3J5X29yZGVyOiAyLFxuICAgICAgICAgICAgICBkb2N1bWVudHM6IFtdLFxuICAgICAgICAgICAgICBzdWJfY2F0ZWdvcmllczogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIGNhdGVnb3J5X2lkOiAnV2hpc2t5TG93bGFuZDEnLFxuICAgICAgICAgICAgICAgICAgY2F0ZWdvcnlfbmFtZTogJ0xvd2xhbmQgMScsXG4gICAgICAgICAgICAgICAgICBjYXRlZ29yeV9vcmRlcjogMSxcbiAgICAgICAgICAgICAgICAgIGRvY3VtZW50czogW1xuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnRfdXJsOiAnL3Rlc3QnLFxuICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50X2ZpbGVuYW1lOiAnRGV0YWlscyBhYm91dCBXaGlza3kgTG93bGFuZCAxJyxcbiAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudF9iaW5hcnlfdXJsOiAnL3Rlc3QvYmluYXJ5JyxcbiAgICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVfcGF0aDogJycsXG4gICAgICAgICAgICAgICAgICAgICAgdXBsb2FkX3RpbWVzdGFtcDogbmV3IERhdGUoMjAyMiwgNSwgMjEsIDAsIDAsIDAsIDApLFxuICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnRfdHlwZTogJydcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgIHN1Yl9jYXRlZ29yaWVzOiBbXVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgY2F0ZWdvcnlfaWQ6ICdXaGlza3lMb3dsYW5kMicsXG4gICAgICAgICAgICAgICAgICBjYXRlZ29yeV9uYW1lOiAnTG93bGFuZCAyJyxcbiAgICAgICAgICAgICAgICAgIGNhdGVnb3J5X29yZGVyOiAyLFxuICAgICAgICAgICAgICAgICAgZG9jdW1lbnRzOiBbXSxcbiAgICAgICAgICAgICAgICAgIHN1Yl9jYXRlZ29yaWVzOiBbXVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgY2F0ZWdvcnlfaWQ6ICdXaGlza3lJc2xheScsXG4gICAgICAgICAgICAgIGNhdGVnb3J5X25hbWU6ICdJc2xheScsXG4gICAgICAgICAgICAgIGNhdGVnb3J5X29yZGVyOiAzLFxuICAgICAgICAgICAgICBkb2N1bWVudHM6IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBkb2N1bWVudF91cmw6ICcvdGVzdCcsXG4gICAgICAgICAgICAgICAgICBkb2N1bWVudF9maWxlbmFtZTogJ0RldGFpbHMgYWJvdXQgV2hpc2t5IElzbGF5JyxcbiAgICAgICAgICAgICAgICAgIGRvY3VtZW50X2JpbmFyeV91cmw6ICcvdGVzdC9iaW5hcnknLFxuICAgICAgICAgICAgICAgICAgYXR0cmlidXRlX3BhdGg6ICcnLFxuICAgICAgICAgICAgICAgICAgdXBsb2FkX3RpbWVzdGFtcDogbmV3IERhdGUoMjAyMiwgMTAsIDQsIDAsIDAsIDAsIDApLFxuICAgICAgICAgICAgICAgICAgY29udGVudF90eXBlOiAnJ1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgZG9jdW1lbnRfdXJsOiAnL3Rlc3QnLFxuICAgICAgICAgICAgICAgICAgZG9jdW1lbnRfZmlsZW5hbWU6ICdNb3JlIGluZm9ybWF0aW9uIGFib3V0IFdoaXNreSBJc2xheScsXG4gICAgICAgICAgICAgICAgICBkb2N1bWVudF9iaW5hcnlfdXJsOiAnL3Rlc3QvYmluYXJ5JyxcbiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZV9wYXRoOiAnJyxcbiAgICAgICAgICAgICAgICAgIHVwbG9hZF90aW1lc3RhbXA6IG5ldyBEYXRlKDIwMjIsIDExLCAyOCwgMCwgMCwgMCwgMCksXG4gICAgICAgICAgICAgICAgICBjb250ZW50X3R5cGU6ICcnXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBzdWJfY2F0ZWdvcmllczogW11cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGNhdGVnb3J5X2lkOiAnV2hpc2t5U3BleXNpZGUnLFxuICAgICAgICAgICAgICBjYXRlZ29yeV9uYW1lOiAnU3BleXNpZGUnLFxuICAgICAgICAgICAgICBjYXRlZ29yeV9vcmRlcjogNCxcbiAgICAgICAgICAgICAgZG9jdW1lbnRzOiBbXSxcbiAgICAgICAgICAgICAgc3ViX2NhdGVnb3JpZXM6IFtdXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBjYXRlZ29yeV9pZDogJ1doaXNreUNhbXBiZWx0b3duJyxcbiAgICAgICAgICAgICAgY2F0ZWdvcnlfbmFtZTogJ0NhbXBiZWx0b3duJyxcbiAgICAgICAgICAgICAgY2F0ZWdvcnlfb3JkZXI6IDUsXG4gICAgICAgICAgICAgIGRvY3VtZW50czogW10sXG4gICAgICAgICAgICAgIHN1Yl9jYXRlZ29yaWVzOiBbXVxuICAgICAgICAgICAgfVxuICAgICAgICAgIF1cbiAgICAgICAgfVxuICAgICAgXVxuICAgIH1cbiAgXSxcbiAgdW5jYXRlZ29yaXNlZF9kb2N1bWVudHM6IFtcbiAgICB7XG4gICAgICBkb2N1bWVudF91cmw6ICcvdW5jYXRlZ29yaXNlZC1kb2N1bWVudC0xJyxcbiAgICAgIGRvY3VtZW50X2ZpbGVuYW1lOiAnVW5jYXRlZ29yaXNlZCBkb2N1bWVudCAxJyxcbiAgICAgIGRvY3VtZW50X2JpbmFyeV91cmw6ICcvdGVzdC9iaW5hcnknLFxuICAgICAgYXR0cmlidXRlX3BhdGg6ICcnLFxuICAgICAgdXBsb2FkX3RpbWVzdGFtcDogbmV3IERhdGUoMjAyMiwgMTAsIDE3LCAwLCAwLCAwLCAwKSxcbiAgICAgIGNvbnRlbnRfdHlwZTogJydcbiAgICB9LFxuICAgIHtcbiAgICAgIGRvY3VtZW50X3VybDogJy91bmNhdGVnb3Jpc2VkLWRvY3VtZW50LTInLFxuICAgICAgZG9jdW1lbnRfZmlsZW5hbWU6ICdVbmNhdGVnb3Jpc2VkIGRvY3VtZW50IDInLFxuICAgICAgZG9jdW1lbnRfYmluYXJ5X3VybDogJy90ZXN0L2JpbmFyeScsXG4gICAgICBhdHRyaWJ1dGVfcGF0aDogJycsXG4gICAgICB1cGxvYWRfdGltZXN0YW1wOiBuZXcgRGF0ZSgyMDIzLCAxLCAyMywgMCwgMCwgMCwgMCksXG4gICAgICBjb250ZW50X3R5cGU6ICcnXG4gICAgfVxuICBdXG59O1xuIl19
233
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcmllcy1hbmQtZG9jdW1lbnRzLXRlc3QtZGF0YS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9wYWxldHRlL2Nhc2UtZmlsZS12aWV3L3Rlc3QtZGF0YS9jYXRlZ29yaWVzLWFuZC1kb2N1bWVudHMtdGVzdC1kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sQ0FBQyxNQUFNLDhCQUE4QixHQUEyQjtJQUNwRSxZQUFZLEVBQUUsQ0FBQztJQUNmLFVBQVUsRUFBRTtRQUNWO1lBQ0UsV0FBVyxFQUFFLE9BQU87WUFDcEIsYUFBYSxFQUFFLE9BQU87WUFDdEIsY0FBYyxFQUFFLENBQUM7WUFDakIsU0FBUyxFQUFFO2dCQUNUO29CQUNFLFlBQVksRUFBRSxPQUFPO29CQUNyQixpQkFBaUIsRUFBRSxvQkFBb0I7b0JBQ3ZDLG1CQUFtQixFQUFFLGNBQWM7b0JBQ25DLGNBQWMsRUFBRSxFQUFFO29CQUNsQixnQkFBZ0IsRUFBRSxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7b0JBQ25ELFlBQVksRUFBRSxFQUFFO2lCQUNqQjtnQkFDRDtvQkFDRSxZQUFZLEVBQUUsT0FBTztvQkFDckIsaUJBQWlCLEVBQUUsb0JBQW9CO29CQUN2QyxtQkFBbUIsRUFBRSxjQUFjO29CQUNuQyxjQUFjLEVBQUUsRUFBRTtvQkFDbEIsZ0JBQWdCLEVBQUUsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO29CQUNuRCxZQUFZLEVBQUUsRUFBRTtpQkFDakI7Z0JBQ0Q7b0JBQ0UsWUFBWSxF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bUJBQW1COzRCQUNoQyxhQUFhLEVBQUUsYUFBYTs0QkFDNUIsY0FBYyxFQUFFLENBQUM7NEJBQ2pCLFNBQVMsRUFBRSxFQUFFOzRCQUNiLGNBQWMsRUFBRSxFQUFFO3lCQUNuQjtxQkFDRjtpQkFDRjthQUNGO1NBQ0Y7S0FDRjtJQUNELHVCQUF1QixFQUFFO1FBQ3ZCO1lBQ0UsWUFBWSxFQUFFLDJCQUEyQjtZQUN6QyxpQkFBaUIsRUFBRSwwQkFBMEI7WUFDN0MsbUJBQW1CLEVBQUUsY0FBYztZQUNuQyxjQUFjLEVBQUUsRUFBRTtZQUNsQixnQkFBZ0IsRUFBRSxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDcEQsWUFBWSxFQUFFLEVBQUU7U0FDakI7UUFDRDtZQUNFLFlBQVksRUFBRSwyQkFBMkI7WUFDekMsaUJBQWlCLEVBQUUsMEJBQTBCO1lBQzdDLG1CQUFtQixFQUFFLGNBQWM7WUFDbkMsY0FBYyxFQUFFLEVBQUU7WUFDbEIsZ0JBQWdCLEVBQUUsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ25ELFlBQVksRUFBRSxFQUFFO1NBQ2pCO0tBQ0Y7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2F0ZWdvcmllc0FuZERvY3VtZW50cyB9IGZyb20gJy4uLy4uLy4uLy4uL2RvbWFpbi9jYXNlLWZpbGUtdmlldyc7XG5cbmV4cG9ydCBjb25zdCBjYXRlZ29yaWVzQW5kRG9jdW1lbnRzVGVzdERhdGE6IENhdGVnb3JpZXNBbmREb2N1bWVudHMgPSB7XG4gIGNhc2VfdmVyc2lvbjogMSxcbiAgY2F0ZWdvcmllczogW1xuICAgIHtcbiAgICAgIGNhdGVnb3J5X2lkOiAnQmVlcnMnLFxuICAgICAgY2F0ZWdvcnlfbmFtZTogJ0JlZXJzJyxcbiAgICAgIGNhdGVnb3J5X29yZGVyOiAxLFxuICAgICAgZG9jdW1lbnRzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBkb2N1bWVudF91cmw6ICcvdGVzdCcsXG4gICAgICAgICAgZG9jdW1lbnRfZmlsZW5hbWU6ICdMYWdlciBlbmN5Y2xvcGVkaWEnLFxuICAgICAgICAgIGRvY3VtZW50X2JpbmFyeV91cmw6ICcvdGVzdC9iaW5hcnknLFxuICAgICAgICAgIGF0dHJpYnV0ZV9wYXRoOiAnJyxcbiAgICAgICAgICB1cGxvYWRfdGltZXN0YW1wOiBuZXcgRGF0ZSgyMDIzLCA0LCAxMSwgMCwgMCwgMCwgMCksXG4gICAgICAgICAgY29udGVudF90eXBlOiAnJ1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgZG9jdW1lbnRfdXJsOiAnL3Rlc3QnLFxuICAgICAgICAgIGRvY3VtZW50X2ZpbGVuYW1lOiAnQmVlcnMgZW5jeWNsb3BlZGlhJyxcbiAgICAgICAgICBkb2N1bWVudF9iaW5hcnlfdXJsOiAnL3Rlc3QvYmluYXJ5JyxcbiAgICAgICAgICBhdHRyaWJ1dGVfcGF0aDogJycsXG4gICAgICAgICAgdXBsb2FkX3RpbWVzdGFtcDogbmV3IERhdGUoMjAyMywgMywgMTQsIDAsIDAsIDAsIDApLFxuICAgICAgICAgIGNvbnRlbnRfdHlwZTogJydcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGRvY3VtZW50X3VybDogJy90ZXN0JyxcbiAgICAgICAgICBkb2N1bWVudF9maWxlbmFtZTogJ0FsZSBlbmN5Y2xvcGVkaWEnLFxuICAgICAgICAgIGRvY3VtZW50X2JpbmFyeV91cmw6ICcvdGVzdC9iaW5hcnknLFxuICAgICAgICAgIGF0dHJpYnV0ZV9wYXRoOiAnJyxcbiAgICAgICAgICB1cGxvYWRfdGltZXN0YW1wOiBuZXcgRGF0ZSgyMDIzLCAyLCAxMiwgMSwgMjMsIDEsIDApLFxuICAgICAgICAgIGNvbnRlbnRfdHlwZTogJydcbiAgICAgICAgfVxuICAgICAgXSxcbiAgICAgIHN1Yl9jYXRlZ29yaWVzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBjYXRlZ29yeV9pZDogJ0JlZXJzQml0dGVycycsXG4gICAgICAgICAgY2F0ZWdvcnlfbmFtZTogJ0JpdHRlcnMnLFxuICAgICAgICAgIGNhdGVnb3J5X29yZGVyOiAxLFxuICAgICAgICAgIGRvY3VtZW50czogW10sXG4gICAgICAgICAgc3ViX2NhdGVnb3JpZXM6IFtdXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBjYXRlZ29yeV9pZDogJ0JlZXJzQW1lcmljYW4nLFxuICAgICAgICAgIGNhdGVnb3J5X25hbWU6ICdBbWVyaWNhbicsXG4gICAgICAgICAgY2F0ZWdvcnlfb3JkZXI6IDIsXG4gICAgICAgICAgZG9jdW1lbnRzOiBbXSxcbiAgICAgICAgICBzdWJfY2F0ZWdvcmllczogW11cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGNhdGVnb3J5X2lkOiAnQmVlcnNBc2lhbicsXG4gICAgICAgICAgY2F0ZWdvcnlfbmFtZTogJ0FzaWFuJyxcbiAgICAgICAgICBjYXRlZ29yeV9vcmRlcjogMyxcbiAgICAgICAgICBkb2N1bWVudHM6IFtdLFxuICAgICAgICAgIHN1Yl9jYXRlZ29yaWVzOiBbXVxuICAgICAgICB9XG4gICAgICBdXG4gICAgfSxcbiAgICB7XG4gICAgICBjYXRlZ29yeV9pZDogJ1dpbmVzJyxcbiAgICAgIGNhdGVnb3J5X25hbWU6ICdXaW5lcycsXG4gICAgICBjYXRlZ29yeV9vcmRlcjogMixcbiAgICAgIGRvY3VtZW50czogW10sXG4gICAgICBzdWJfY2F0ZWdvcmllczogW1xuICAgICAgICB7XG4gICAgICAgICAgY2F0ZWdvcnlfaWQ6ICdXaW5lc0ZyZW5jaCcsXG4gICAgICAgICAgY2F0ZWdvcnlfbmFtZTogJ0ZyZW5jaCcsXG4gICAgICAgICAgY2F0ZWdvcnlfb3JkZXI6IDEsXG4gICAgICAgICAgZG9jdW1lbnRzOiBbXSxcbiAgICAgICAgICBzdWJfY2F0ZWdvcmllczogW11cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGNhdGVnb3J5X2lkOiAnV2luZXNJdGFsaWFuJyxcbiAgICAgICAgICBjYXRlZ29yeV9uYW1lOiAnSXRhbGlhbicsXG4gICAgICAgICAgY2F0ZWdvcnlfb3JkZXI6IDIsXG4gICAgICAgICAgZG9jdW1lbnRzOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGRvY3VtZW50X3VybDogJy9yZWQtd2luZScsXG4gICAgICAgICAgICAgIGRvY3VtZW50X2ZpbGVuYW1lOiAnRGV0YWlscyBhYm91dCByZWQgd2luZScsXG4gICAgICAgICAgICAgIGRvY3VtZW50X2JpbmFyeV91cmw6ICcvdGVzdC9iaW5hcnknLFxuICAgICAgICAgICAgICBhdHRyaWJ1dGVfcGF0aDogJycsXG4gICAgICAgICAgICAgIHVwbG9hZF90aW1lc3RhbXA6IG51bGwsXG4gICAgICAgICAgICAgIGNvbnRlbnRfdHlwZTogJydcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGRvY3VtZW50X3VybDogJy93aGl0ZS13aW5lJyxcbiAgICAgICAgICAgICAgZG9jdW1lbnRfZmlsZW5hbWU6ICdEZXRhaWxzIGFib3V0IHdoaXRlIHdpbmUnLFxuICAgICAgICAgICAgICBkb2N1bWVudF9iaW5hcnlfdXJsOiAnL3Rlc3QvYmluYXJ5JyxcbiAgICAgICAgICAgICAgYXR0cmlidXRlX3BhdGg6ICcnLFxuICAgICAgICAgICAgICB1cGxvYWRfdGltZXN0YW1wOiBuZXcgRGF0ZSgyMDIzLCAxLCAxMCwgMCwgMCwgMCwgMCksXG4gICAgICAgICAgICAgIGNvbnRlbnRfdHlwZTogJydcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGRvY3VtZW50X3VybDogJy9wcm9zZWNjbycsXG4gICAgICAgICAgICAgIGRvY3VtZW50X2ZpbGVuYW1lOiAnRGV0YWlscyBhYm91dCBQcm9zZWNjbycsXG4gICAgICAgICAgICAgIGRvY3VtZW50X2JpbmFyeV91cmw6ICcvdGVzdC9iaW5hcnknLFxuICAgICAgICAgICAgICBhdHRyaWJ1dGVfcGF0aDogJycsXG4gICAgICAgICAgICAgIHVwbG9hZF90aW1lc3RhbXA6IG5ldyBEYXRlKDIwMjMsIDMsIDEyLCAwLCAwLCAwLCAwKSxcbiAgICAgICAgICAgICAgY29udGVudF90eXBlOiAnJ1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgZG9jdW1lbnRfdXJsOiAnL3Bpbm90LWdyaWdpbycsXG4gICAgICAgICAgICAgIGRvY3VtZW50X2ZpbGVuYW1lOiAnRGV0YWlscyBhYm91dCBQaW5vdCBHcmlnaW8nLFxuICAgICAgICAgICAgICBkb2N1bWVudF9iaW5hcnlfdXJsOiAnL3Rlc3QvYmluYXJ5JyxcbiAgICAgICAgICAgICAgYXR0cmlidXRlX3BhdGg6ICcnLFxuICAgICAgICAgICAgICB1cGxvYWRfdGltZXN0YW1wOiBuZXcgRGF0ZSgyMDIzLCAyLCAxNiwgMCwgMCwgMCwgMCksXG4gICAgICAgICAgICAgIGNvbnRlbnRfdHlwZTogJydcbiAgICAgICAgICAgIH1cbiAgICAgICAgICBdLFxuICAgICAgICAgIHN1Yl9jYXRlZ29yaWVzOiBbXVxuICAgICAgICB9XG4gICAgICBdXG4gICAgfSxcbiAgICB7XG4gICAgICBjYXRlZ29yeV9pZDogJ1NwaXJpdHMnLFxuICAgICAgY2F0ZWdvcnlfbmFtZTogJ1NwaXJpdHMnLFxuICAgICAgY2F0ZWdvcnlfb3JkZXI6IDMsXG4gICAgICBkb2N1bWVudHM6IFtdLFxuICAgICAgc3ViX2NhdGVnb3JpZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGNhdGVnb3J5X2lkOiAnU3Bpcml0c1doaXNreScsXG4gICAgICAgICAgY2F0ZWdvcnlfbmFtZTogJ1Njb3RjaCB3aGlza3knLFxuICAgICAgICAgIGNhdGVnb3J5X29yZGVyOiAxLFxuICAgICAgICAgIGRvY3VtZW50czogW10sXG4gICAgICAgICAgc3ViX2NhdGVnb3JpZXM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgY2F0ZWdvcnlfaWQ6ICdXaGlza3lIaWdobGFuZCcsXG4gICAgICAgICAgICAgIGNhdGVnb3J5X25hbWU6ICdIaWdobGFuZCcsXG4gICAgICAgICAgICAgIGNhdGVnb3J5X29yZGVyOiAxLFxuICAgICAgICAgICAgICBkb2N1bWVudHM6IFtdLFxuICAgICAgICAgICAgICBzdWJfY2F0ZWdvcmllczogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIGNhdGVnb3J5X2lkOiAnV2hpc2t5SGlnaGxhbmQxJyxcbiAgICAgICAgICAgICAgICAgIGNhdGVnb3J5X25hbWU6ICdIaWdobGFuZCAxJyxcbiAgICAgICAgICAgICAgICAgIGNhdGVnb3J5X29yZGVyOiAxLFxuICAgICAgICAgICAgICAgICAgZG9jdW1lbnRzOiBbXSxcbiAgICAgICAgICAgICAgICAgIHN1Yl9jYXRlZ29yaWVzOiBbXVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgY2F0ZWdvcnlfaWQ6ICdXaGlza3lMb3dsYW5kJyxcbiAgICAgICAgICAgICAgY2F0ZWdvcnlfbmFtZTogJ0xvd2xhbmQnLFxuICAgICAgICAgICAgICBjYXRlZ29yeV9vcmRlcjogMixcbiAgICAgICAgICAgICAgZG9jdW1lbnRzOiBbXSxcbiAgICAgICAgICAgICAgc3ViX2NhdGVnb3JpZXM6IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBjYXRlZ29yeV9pZDogJ1doaXNreUxvd2xhbmQxJyxcbiAgICAgICAgICAgICAgICAgIGNhdGVnb3J5X25hbWU6ICdMb3dsYW5kIDEnLFxuICAgICAgICAgICAgICAgICAgY2F0ZWdvcnlfb3JkZXI6IDEsXG4gICAgICAgICAgICAgICAgICBkb2N1bWVudHM6IFtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50X3VybDogJy90ZXN0JyxcbiAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudF9maWxlbmFtZTogJ0RldGFpbHMgYWJvdXQgV2hpc2t5IExvd2xhbmQgMScsXG4gICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnRfYmluYXJ5X3VybDogJy90ZXN0L2JpbmFyeScsXG4gICAgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlX3BhdGg6ICcnLFxuICAgICAgICAgICAgICAgICAgICAgIHVwbG9hZF90aW1lc3RhbXA6IG5ldyBEYXRlKDIwMjIsIDUsIDIxLCAwLCAwLCAwLCAwKSxcbiAgICAgICAgICAgICAgICAgICAgICBjb250ZW50X3R5cGU6ICcnXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICBzdWJfY2F0ZWdvcmllczogW11cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIGNhdGVnb3J5X2lkOiAnV2hpc2t5TG93bGFuZDInLFxuICAgICAgICAgICAgICAgICAgY2F0ZWdvcnlfbmFtZTogJ0xvd2xhbmQgMicsXG4gICAgICAgICAgICAgICAgICBjYXRlZ29yeV9vcmRlcjogMixcbiAgICAgICAgICAgICAgICAgIGRvY3VtZW50czogW10sXG4gICAgICAgICAgICAgICAgICBzdWJfY2F0ZWdvcmllczogW11cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGNhdGVnb3J5X2lkOiAnV2hpc2t5SXNsYXknLFxuICAgICAgICAgICAgICBjYXRlZ29yeV9uYW1lOiAnSXNsYXknLFxuICAgICAgICAgICAgICBjYXRlZ29yeV9vcmRlcjogMyxcbiAgICAgICAgICAgICAgZG9jdW1lbnRzOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgZG9jdW1lbnRfdXJsOiAnL3Rlc3QnLFxuICAgICAgICAgICAgICAgICAgZG9jdW1lbnRfZmlsZW5hbWU6ICdEZXRhaWxzIGFib3V0IFdoaXNreSBJc2xheScsXG4gICAgICAgICAgICAgICAgICBkb2N1bWVudF9iaW5hcnlfdXJsOiAnL3Rlc3QvYmluYXJ5JyxcbiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZV9wYXRoOiAnJyxcbiAgICAgICAgICAgICAgICAgIHVwbG9hZF90aW1lc3RhbXA6IG5ldyBEYXRlKDIwMjIsIDEwLCA0LCAwLCAwLCAwLCAwKSxcbiAgICAgICAgICAgICAgICAgIGNvbnRlbnRfdHlwZTogJydcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIGRvY3VtZW50X3VybDogJy90ZXN0JyxcbiAgICAgICAgICAgICAgICAgIGRvY3VtZW50X2ZpbGVuYW1lOiAnTW9yZSBpbmZvcm1hdGlvbiBhYm91dCBXaGlza3kgSXNsYXknLFxuICAgICAgICAgICAgICAgICAgZG9jdW1lbnRfYmluYXJ5X3VybDogJy90ZXN0L2JpbmFyeScsXG4gICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVfcGF0aDogJycsXG4gICAgICAgICAgICAgICAgICB1cGxvYWRfdGltZXN0YW1wOiBuZXcgRGF0ZSgyMDIyLCAxMSwgMjgsIDAsIDAsIDAsIDApLFxuICAgICAgICAgICAgICAgICAgY29udGVudF90eXBlOiAnJ1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgc3ViX2NhdGVnb3JpZXM6IFtdXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBjYXRlZ29yeV9pZDogJ1doaXNreVNwZXlzaWRlJyxcbiAgICAgICAgICAgICAgY2F0ZWdvcnlfbmFtZTogJ1NwZXlzaWRlJyxcbiAgICAgICAgICAgICAgY2F0ZWdvcnlfb3JkZXI6IDQsXG4gICAgICAgICAgICAgIGRvY3VtZW50czogW10sXG4gICAgICAgICAgICAgIHN1Yl9jYXRlZ29yaWVzOiBbXVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgY2F0ZWdvcnlfaWQ6ICdXaGlza3lDYW1wYmVsdG93bicsXG4gICAgICAgICAgICAgIGNhdGVnb3J5X25hbWU6ICdDYW1wYmVsdG93bicsXG4gICAgICAgICAgICAgIGNhdGVnb3J5X29yZGVyOiA1LFxuICAgICAgICAgICAgICBkb2N1bWVudHM6IFtdLFxuICAgICAgICAgICAgICBzdWJfY2F0ZWdvcmllczogW11cbiAgICAgICAgICAgIH1cbiAgICAgICAgICBdXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9XG4gIF0sXG4gIHVuY2F0ZWdvcmlzZWRfZG9jdW1lbnRzOiBbXG4gICAge1xuICAgICAgZG9jdW1lbnRfdXJsOiAnL3VuY2F0ZWdvcmlzZWQtZG9jdW1lbnQtMScsXG4gICAgICBkb2N1bWVudF9maWxlbmFtZTogJ1VuY2F0ZWdvcmlzZWQgZG9jdW1lbnQgMScsXG4gICAgICBkb2N1bWVudF9iaW5hcnlfdXJsOiAnL3Rlc3QvYmluYXJ5JyxcbiAgICAgIGF0dHJpYnV0ZV9wYXRoOiAnJyxcbiAgICAgIHVwbG9hZF90aW1lc3RhbXA6IG5ldyBEYXRlKDIwMjIsIDEwLCAxNywgMCwgMCwgMCwgMCksXG4gICAgICBjb250ZW50X3R5cGU6ICcnXG4gICAgfSxcbiAgICB7XG4gICAgICBkb2N1bWVudF91cmw6ICcvdW5jYXRlZ29yaXNlZC1kb2N1bWVudC0yJyxcbiAgICAgIGRvY3VtZW50X2ZpbGVuYW1lOiAnVW5jYXRlZ29yaXNlZCBkb2N1bWVudCAyJyxcbiAgICAgIGRvY3VtZW50X2JpbmFyeV91cmw6ICcvdGVzdC9iaW5hcnknLFxuICAgICAgYXR0cmlidXRlX3BhdGg6ICcnLFxuICAgICAgdXBsb2FkX3RpbWVzdGFtcDogbmV3IERhdGUoMjAyMywgMSwgMjMsIDAsIDAsIDAsIDApLFxuICAgICAgY29udGVudF90eXBlOiAnJ1xuICAgIH1cbiAgXVxufTtcbiJdfQ==
@@ -18,25 +18,48 @@ function LinkedCasesFromTableComponent_a_0_Template(rf, ctx) { if (rf & 1) {
18
18
  i0.ɵɵadvance();
19
19
  i0.ɵɵtextInterpolate(ctx_r1.showHideLinkText);
20
20
  } }
21
+ function LinkedCasesFromTableComponent_table_1_tbody_13_tr_1_td_18_span_1_a_4_Template(rf, ctx) { if (rf & 1) {
22
+ i0.ɵɵelementStart(0, "a", 20);
23
+ i0.ɵɵtext(1);
24
+ i0.ɵɵelementEnd();
25
+ } if (rf & 2) {
26
+ const case_r3 = i0.ɵɵnextContext(3).$implicit;
27
+ const ctx_r1 = i0.ɵɵnextContext(3);
28
+ i0.ɵɵpropertyInterpolate1("href", "cases/case-details/", case_r3.caseReference, "", i0.ɵɵsanitizeUrl);
29
+ i0.ɵɵadvance();
30
+ i0.ɵɵtextInterpolate(ctx_r1.getCaseReferenceLink(case_r3.caseReference));
31
+ } }
32
+ function LinkedCasesFromTableComponent_table_1_tbody_13_tr_1_td_18_span_1_br_5_Template(rf, ctx) { if (rf & 1) {
33
+ i0.ɵɵelement(0, "br");
34
+ } }
21
35
  function LinkedCasesFromTableComponent_table_1_tbody_13_tr_1_td_18_span_1_Template(rf, ctx) { if (rf & 1) {
22
36
  i0.ɵɵelementStart(0, "span");
23
37
  i0.ɵɵtext(1);
24
38
  i0.ɵɵpipe(2, "ccdLinkCasesFromReasonValue");
25
- i0.ɵɵelement(3, "br");
39
+ i0.ɵɵelementStart(3, "span");
40
+ i0.ɵɵtemplate(4, LinkedCasesFromTableComponent_table_1_tbody_13_tr_1_td_18_span_1_a_4_Template, 2, 3, "a", 18);
41
+ i0.ɵɵelementEnd();
42
+ i0.ɵɵtemplate(5, LinkedCasesFromTableComponent_table_1_tbody_13_tr_1_td_18_span_1_br_5_Template, 1, 0, "br", 19);
26
43
  i0.ɵɵelementEnd();
27
44
  } if (rf & 2) {
28
- const reason_r3 = ctx.$implicit;
45
+ const reason_r4 = ctx.$implicit;
46
+ const isLast_r5 = ctx.last;
47
+ const ctx_r1 = i0.ɵɵnextContext(5);
48
+ i0.ɵɵadvance();
49
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 3, reason_r4), "");
50
+ i0.ɵɵadvance(3);
51
+ i0.ɵɵproperty("ngIf", ctx_r1.hasLeadCaseOrConsolidated(reason_r4.reasonCode));
29
52
  i0.ɵɵadvance();
30
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 1, reason_r3), " ");
53
+ i0.ɵɵproperty("ngIf", !isLast_r5);
31
54
  } }
32
55
  function LinkedCasesFromTableComponent_table_1_tbody_13_tr_1_td_18_Template(rf, ctx) { if (rf & 1) {
33
56
  i0.ɵɵelementStart(0, "td", 14);
34
- i0.ɵɵtemplate(1, LinkedCasesFromTableComponent_table_1_tbody_13_tr_1_td_18_span_1_Template, 4, 3, "span", 17);
57
+ i0.ɵɵtemplate(1, LinkedCasesFromTableComponent_table_1_tbody_13_tr_1_td_18_span_1_Template, 6, 5, "span", 17);
35
58
  i0.ɵɵelementEnd();
36
59
  } if (rf & 2) {
37
- const details_r4 = ctx.$implicit;
60
+ const details_r6 = ctx.$implicit;
38
61
  i0.ɵɵadvance();
39
- i0.ɵɵproperty("ngForOf", details_r4.reasons);
62
+ i0.ɵɵproperty("ngForOf", details_r6.reasons);
40
63
  } }
41
64
  function LinkedCasesFromTableComponent_table_1_tbody_13_tr_1_Template(rf, ctx) { if (rf & 1) {
42
65
  i0.ɵɵelementStart(0, "tr", 5)(1, "td", 11)(2, "p", 12)(3, "a", 13)(4, "span");
@@ -57,28 +80,28 @@ function LinkedCasesFromTableComponent_table_1_tbody_13_tr_1_Template(rf, ctx) {
57
80
  i0.ɵɵtemplate(18, LinkedCasesFromTableComponent_table_1_tbody_13_tr_1_td_18_Template, 2, 1, "td", 16);
58
81
  i0.ɵɵelementEnd();
59
82
  } if (rf & 2) {
60
- const case_r5 = ctx.$implicit;
83
+ const case_r3 = ctx.$implicit;
61
84
  i0.ɵɵadvance(3);
62
- i0.ɵɵpropertyInterpolate1("href", "cases/case-details/", case_r5.caseReference, "", i0.ɵɵsanitizeUrl);
85
+ i0.ɵɵpropertyInterpolate1("href", "cases/case-details/", case_r3.caseReference, "", i0.ɵɵsanitizeUrl);
63
86
  i0.ɵɵadvance(2);
64
- i0.ɵɵtextInterpolate1("", case_r5.caseNameHmctsInternal, " ");
87
+ i0.ɵɵtextInterpolate1("", case_r3.caseNameHmctsInternal, " ");
65
88
  i0.ɵɵadvance(2);
66
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(8, 10, case_r5.caseReference), "");
89
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(8, 10, case_r3.caseReference), "");
67
90
  i0.ɵɵadvance(3);
68
- i0.ɵɵproperty("title", case_r5.ccdCaseTypeDescription);
91
+ i0.ɵɵproperty("title", case_r3.ccdCaseTypeDescription);
69
92
  i0.ɵɵadvance();
70
- i0.ɵɵtextInterpolate(case_r5.ccdCaseType);
93
+ i0.ɵɵtextInterpolate(case_r3.ccdCaseType);
71
94
  i0.ɵɵadvance(3);
72
- i0.ɵɵtextInterpolate(case_r5.ccdJurisdiction);
95
+ i0.ɵɵtextInterpolate(case_r3.ccdJurisdiction);
73
96
  i0.ɵɵadvance(2);
74
- i0.ɵɵproperty("title", case_r5.stateDescription);
97
+ i0.ɵɵproperty("title", case_r3.stateDescription);
75
98
  i0.ɵɵadvance();
76
- i0.ɵɵtextInterpolate(case_r5.state);
99
+ i0.ɵɵtextInterpolate(case_r3.state);
77
100
  i0.ɵɵadvance();
78
- i0.ɵɵproperty("ngForOf", case_r5.linkDetails);
101
+ i0.ɵɵproperty("ngForOf", case_r3.linkDetails);
79
102
  } }
80
103
  function LinkedCasesFromTableComponent_table_1_tbody_13_tr_2_Template(rf, ctx) { if (rf & 1) {
81
- i0.ɵɵelementStart(0, "tr", 5)(1, "td", 18);
104
+ i0.ɵɵelementStart(0, "tr", 5)(1, "td", 21);
82
105
  i0.ɵɵtext(2, " None ");
83
106
  i0.ɵɵelementEnd()();
84
107
  } }
@@ -121,6 +144,8 @@ export class LinkedCasesFromTableComponent {
121
144
  casesService;
122
145
  linkedCasesService;
123
146
  static CASE_NAME_MISSING_TEXT = 'Case name missing';
147
+ static CASE_CONSOLIDATED_REASON_CODE = 'CLRC015';
148
+ static CASE_PROGRESS_REASON_CODE = 'CLRC016';
124
149
  caseField;
125
150
  notifyAPIFailure = new EventEmitter(false);
126
151
  caseDetails;
@@ -187,13 +212,20 @@ export class LinkedCasesFromTableComponent {
187
212
  mapLookupIDToValueFromJurisdictions(fieldName, fieldValue) {
188
213
  return this.linkedCasesService.mapLookupIDToValueFromJurisdictions(fieldName, fieldValue);
189
214
  }
215
+ getCaseReferenceLink(caseRef) {
216
+ return caseRef.slice(this.caseId.length - 4);
217
+ }
218
+ hasLeadCaseOrConsolidated(reasonCode) {
219
+ return reasonCode === LinkedCasesFromTableComponent.CASE_PROGRESS_REASON_CODE ||
220
+ reasonCode === LinkedCasesFromTableComponent.CASE_CONSOLIDATED_REASON_CODE;
221
+ }
190
222
  onClick() {
191
223
  this.showHideLinkText = this.showHideLinkText === 'Show'
192
224
  ? 'Hide'
193
225
  : 'Show';
194
226
  }
195
227
  static ɵfac = function LinkedCasesFromTableComponent_Factory(t) { return new (t || LinkedCasesFromTableComponent)(i0.ɵɵdirectiveInject(i1.ActivatedRoute), i0.ɵɵdirectiveInject(i2.CasesService), i0.ɵɵdirectiveInject(i3.LinkedCasesService)); };
196
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: LinkedCasesFromTableComponent, selectors: [["ccd-linked-cases-from-table"]], inputs: { caseField: "caseField" }, outputs: { notifyAPIFailure: "notifyAPIFailure" }, decls: 2, vars: 2, consts: [["id", "show-hide-link", "class", "govuk-link", "href", "javascript:void(0)", 3, "click", 4, "ngIf"], ["aria-describedby", "table to display cases linked from", 4, "ngIf"], ["id", "show-hide-link", "href", "javascript:void(0)", 1, "govuk-link", 3, "click"], ["aria-describedby", "table to display cases linked from"], [1, "govuk-table__head"], [1, "govuk-table__row"], ["scope", "col", "width", "20%", 1, "govuk-table__header", "case-table-column"], ["class", "govuk-table__body", 4, "ngIf"], [1, "govuk-table__body"], ["class", "govuk-table__row", 4, "ngFor", "ngForOf"], ["class", "govuk-table__row", 4, "ngIf"], [1, "govuk-table__header", "case-table-column", "width-20"], [1, "govuk-body"], ["target", "_blank", "rel", "noopener", 1, "govuk-link", 3, "href"], [1, "case-table-column"], [3, "title"], ["class", "case-table-column", 4, "ngFor", "ngForOf"], [4, "ngFor", "ngForOf"], ["colspan", "5", 1, "govuk-table__cell"]], template: function LinkedCasesFromTableComponent_Template(rf, ctx) { if (rf & 1) {
228
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: LinkedCasesFromTableComponent, selectors: [["ccd-linked-cases-from-table"]], inputs: { caseField: "caseField" }, outputs: { notifyAPIFailure: "notifyAPIFailure" }, decls: 2, vars: 2, consts: [["id", "show-hide-link", "class", "govuk-link", "href", "javascript:void(0)", 3, "click", 4, "ngIf"], ["aria-describedby", "table to display cases linked from", 4, "ngIf"], ["id", "show-hide-link", "href", "javascript:void(0)", 1, "govuk-link", 3, "click"], ["aria-describedby", "table to display cases linked from"], [1, "govuk-table__head"], [1, "govuk-table__row"], ["scope", "col", "width", "20%", 1, "govuk-table__header", "case-table-column"], ["class", "govuk-table__body", 4, "ngIf"], [1, "govuk-table__body"], ["class", "govuk-table__row", 4, "ngFor", "ngForOf"], ["class", "govuk-table__row", 4, "ngIf"], [1, "govuk-table__header", "case-table-column", "width-20"], [1, "govuk-body"], ["target", "_blank", "rel", "noopener", 1, "govuk-link", 3, "href"], [1, "case-table-column"], [3, "title"], ["class", "case-table-column", 4, "ngFor", "ngForOf"], [4, "ngFor", "ngForOf"], ["class", "govuk-!-padding-left-1", 3, "href", 4, "ngIf"], [4, "ngIf"], [1, "govuk-!-padding-left-1", 3, "href"], ["colspan", "5", 1, "govuk-table__cell"]], template: function LinkedCasesFromTableComponent_Template(rf, ctx) { if (rf & 1) {
197
229
  i0.ɵɵtemplate(0, LinkedCasesFromTableComponent_a_0_Template, 2, 1, "a", 0)(1, LinkedCasesFromTableComponent_table_1_Template, 14, 1, "table", 1);
198
230
  } if (rf & 2) {
199
231
  i0.ɵɵproperty("ngIf", !ctx.noLinkedCases && !ctx.isServerError);
@@ -203,11 +235,11 @@ export class LinkedCasesFromTableComponent {
203
235
  }
204
236
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(LinkedCasesFromTableComponent, [{
205
237
  type: Component,
206
- args: [{ selector: 'ccd-linked-cases-from-table', template: "<a *ngIf=\"!noLinkedCases && !isServerError\" id=\"show-hide-link\" class=\"govuk-link\" href=\"javascript:void(0)\"\n (click)=\"onClick()\">{{showHideLinkText}}</a>\n<table *ngIf=\"(getLinkedCasesResponse && showHideLinkText === 'Hide') || noLinkedCases\"\n aria-describedby=\"table to display cases linked from\">\n <thead class=\"govuk-table__head\">\n <tr class=\"govuk-table__row\">\n <th scope=\"col\" class=\"govuk-table__header case-table-column\" width=\"20%\">Case name and number</th>\n <th scope=\"col\" class=\"govuk-table__header case-table-column\" width=\"20%\">Case type </th>\n <th scope=\"col\" class=\"govuk-table__header case-table-column\" width=\"20%\">Service</th>\n <th scope=\"col\" class=\"govuk-table__header case-table-column\" width=\"20%\">State</th>\n <th scope=\"col\" class=\"govuk-table__header case-table-column\" width=\"20%\">Reasons for case link</th>\n </tr>\n </thead>\n <tbody class=\"govuk-table__body\" *ngIf=\"getLinkedCasesResponse && (!isServerError && !isServerReasonCodeError)\">\n <tr class=\"govuk-table__row\" *ngFor=\"let case of getLinkedCasesResponse\">\n <td class=\"govuk-table__header case-table-column width-20\">\n <p class=\"govuk-body\"><a target=\"_blank\" class=\"govuk-link\" href=\"cases/case-details/{{case.caseReference}}\"\n rel=\"noopener\"><span>{{case.caseNameHmctsInternal}} <br>\n {{case.caseReference | ccdCaseReference}}</span></a></p>\n </td>\n <td class=\"case-table-column\"><span [title]=\"case.ccdCaseTypeDescription\">{{case.ccdCaseType}}</span></td>\n <td class=\"case-table-column\"><span>{{case.ccdJurisdiction}}</span></td>\n <td class=\"case-table-column\"><span [title]=\"case.stateDescription\">{{case.state}}</span></td>\n <td class=\"case-table-column\" *ngFor=\"let details of case.linkDetails\">\n <span *ngFor=\"let reason of details.reasons; let i = index; let isLast = last\">\n {{reason | ccdLinkCasesFromReasonValue}} <br>\n </span>\n </td>\n </tr>\n <tr class=\"govuk-table__row\" *ngIf=\"noLinkedCases\">\n <td class=\"govuk-table__cell\" colspan=\"5\">\n None\n </td>\n </tr>\n </tbody> \n</table>\n", styles: [".case-table-column{min-width:20%;max-width:20%}.heading-h2{margin-bottom:0}\n"] }]
238
+ args: [{ selector: 'ccd-linked-cases-from-table', template: "<a *ngIf=\"!noLinkedCases && !isServerError\" id=\"show-hide-link\" class=\"govuk-link\" href=\"javascript:void(0)\"\n (click)=\"onClick()\">{{showHideLinkText}}</a>\n<table *ngIf=\"(getLinkedCasesResponse && showHideLinkText === 'Hide') || noLinkedCases\"\n aria-describedby=\"table to display cases linked from\">\n <thead class=\"govuk-table__head\">\n <tr class=\"govuk-table__row\">\n <th scope=\"col\" class=\"govuk-table__header case-table-column\" width=\"20%\">Case name and number</th>\n <th scope=\"col\" class=\"govuk-table__header case-table-column\" width=\"20%\">Case type </th>\n <th scope=\"col\" class=\"govuk-table__header case-table-column\" width=\"20%\">Service</th>\n <th scope=\"col\" class=\"govuk-table__header case-table-column\" width=\"20%\">State</th>\n <th scope=\"col\" class=\"govuk-table__header case-table-column\" width=\"20%\">Reasons for case link</th>\n </tr>\n </thead>\n <tbody class=\"govuk-table__body\" *ngIf=\"getLinkedCasesResponse && (!isServerError && !isServerReasonCodeError)\">\n <tr class=\"govuk-table__row\" *ngFor=\"let case of getLinkedCasesResponse\">\n <td class=\"govuk-table__header case-table-column width-20\">\n <p class=\"govuk-body\"><a target=\"_blank\" class=\"govuk-link\" href=\"cases/case-details/{{case.caseReference}}\"\n rel=\"noopener\"><span>{{case.caseNameHmctsInternal}} <br>\n {{case.caseReference | ccdCaseReference}}</span></a></p>\n </td>\n <td class=\"case-table-column\"><span [title]=\"case.ccdCaseTypeDescription\">{{case.ccdCaseType}}</span></td>\n <td class=\"case-table-column\"><span>{{case.ccdJurisdiction}}</span></td>\n <td class=\"case-table-column\"><span [title]=\"case.stateDescription\">{{case.state}}</span></td>\n <td class=\"case-table-column\" *ngFor=\"let details of case.linkDetails\">\n <span *ngFor=\"let reason of details.reasons; let i = index; let isLast = last\">\n {{reason | ccdLinkCasesFromReasonValue}}<span><a class=\"govuk-!-padding-left-1\"\n href=\"cases/case-details/{{ case.caseReference }}\"\n *ngIf=\"hasLeadCaseOrConsolidated(reason.reasonCode)\">{{getCaseReferenceLink(case.caseReference)}}</a></span>\n <br *ngIf=\"!isLast\" />\n </span>\n </td>\n </tr>\n <tr class=\"govuk-table__row\" *ngIf=\"noLinkedCases\">\n <td class=\"govuk-table__cell\" colspan=\"5\">\n None\n </td>\n </tr>\n </tbody> \n</table>\n", styles: [".case-table-column{min-width:20%;max-width:20%}.heading-h2{margin-bottom:0}\n"] }]
207
239
  }], () => [{ type: i1.ActivatedRoute }, { type: i2.CasesService }, { type: i3.LinkedCasesService }], { caseField: [{
208
240
  type: Input
209
241
  }], notifyAPIFailure: [{
210
242
  type: Output
211
243
  }] }); })();
212
244
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(LinkedCasesFromTableComponent, { className: "LinkedCasesFromTableComponent", filePath: "lib/shared/components/palette/linked-cases/components/linked-cases-table/linked-cases-from-table.component.ts", lineNumber: 17 }); })();
213
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlua2VkLWNhc2VzLWZyb20tdGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvbGlua2VkLWNhc2VzL2NvbXBvbmVudHMvbGlua2VkLWNhc2VzLXRhYmxlL2xpbmtlZC1jYXNlcy1mcm9tLXRhYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9wYWxldHRlL2xpbmtlZC1jYXNlcy9jb21wb25lbnRzL2xpbmtlZC1jYXNlcy10YWJsZS9saW5rZWQtY2FzZXMtZnJvbS10YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFHakQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRTdELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUU5RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7OztJQ1JwRCw0QkFDc0I7SUFBcEIsa0xBQVMsZ0JBQVMsS0FBQztJQUFDLFlBQW9CO0lBQUEsaUJBQUk7OztJQUF4QixjQUFvQjtJQUFwQiw2Q0FBb0I7OztJQXVCbEMsNEJBQStFO0lBQzdFLFlBQXlDOztJQUFBLHFCQUFJO0lBQy9DLGlCQUFPOzs7SUFETCxjQUF5QztJQUF6QyxnRUFBeUM7OztJQUY3Qyw4QkFBdUU7SUFDckUsNkdBQStFO0lBR2pGLGlCQUFLOzs7SUFIc0IsY0FBb0I7SUFBcEIsNENBQW9COzs7SUFQMUIsQUFERyxBQUF0QixBQURGLEFBREYsNkJBQXlFLGFBQ1osWUFDbkMsWUFDSCxXQUFNO0lBQUEsWUFBK0I7SUFBQSxxQkFBSTtJQUN0RCxZQUF5Qzs7SUFDakQsQUFENEQsQUFBSixBQUFQLGlCQUFPLEVBQUksRUFBSSxFQUMzRDtJQUN5QixBQUE5Qiw4QkFBOEIsZ0JBQTRDO0lBQUEsYUFBb0I7SUFBTyxBQUFQLGlCQUFPLEVBQUs7SUFDNUUsQUFBOUIsK0JBQThCLFlBQU07SUFBQSxhQUF3QjtJQUFPLEFBQVAsaUJBQU8sRUFBSztJQUMxQyxBQUE5QiwrQkFBOEIsZ0JBQXNDO0lBQUEsYUFBYztJQUFPLEFBQVAsaUJBQU8sRUFBSztJQUM5RixxR0FBdUU7SUFLekUsaUJBQUs7OztJQVoyRCxlQUFnRDtJQUFoRCxxR0FBZ0Q7SUFDbkYsZUFBK0I7SUFBL0IsNkRBQStCO0lBQ2xELGVBQXlDO0lBQXpDLDRFQUF5QztJQUViLGVBQXFDO0lBQXJDLHNEQUFxQztJQUFDLGNBQW9CO0lBQXBCLHlDQUFvQjtJQUMxRCxlQUF3QjtJQUF4Qiw2Q0FBd0I7SUFDeEIsZUFBK0I7SUFBL0IsZ0RBQStCO0lBQUMsY0FBYztJQUFkLG1DQUFjO0lBQ2hDLGNBQW1CO0lBQW5CLDZDQUFtQjs7O0lBT3JFLEFBREYsNkJBQW1ELGFBQ1A7SUFDeEMsc0JBQ0Y7SUFDRixBQURFLGlCQUFLLEVBQ0Y7OztJQXBCUCxnQ0FBZ0g7SUFnQjlHLEFBZkEsK0ZBQXlFLGlGQWV0QjtJQUtuRCxpQkFBUTs7O0lBcEJzQyxjQUF5QjtJQUF6Qix1REFBeUI7SUFlekMsY0FBbUI7SUFBbkIsMkNBQW1COzs7SUF2Qi9DLEFBREYsQUFERixBQUZGLGdDQUN3RCxlQUNyQixZQUNGLFlBQytDO0lBQUEsb0NBQW9CO0lBQUEsaUJBQUs7SUFDbkcsNkJBQTBFO0lBQUEsMEJBQVU7SUFBQSxpQkFBSztJQUN6Riw2QkFBMEU7SUFBQSx1QkFBTztJQUFBLGlCQUFLO0lBQ3RGLDZCQUEwRTtJQUFBLHNCQUFLO0lBQUEsaUJBQUs7SUFDcEYsOEJBQTBFO0lBQUEsc0NBQXFCO0lBRW5HLEFBREUsQUFEaUcsaUJBQUssRUFDakcsRUFDQztJQUNSLDRGQUFnSDtJQXNCbEgsaUJBQVE7OztJQXRCNEIsZ0JBQTRFO0lBQTVFLGtIQUE0RTs7QURHaEgsTUFBTSxPQUFPLDZCQUE2QjtJQXFCckI7SUFDQTtJQUNBO0lBdEJYLE1BQU0sQ0FBVSxzQkFBc0IsR0FBRyxtQkFBbUIsQ0FBQztJQUc5RCxTQUFTLENBQVk7SUFHckIsZ0JBQWdCLEdBQTBCLElBQUksWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2xFLFdBQVcsQ0FBVztJQUN0QixTQUFTLENBQVM7SUFDbEIsUUFBUSxDQUFVO0lBQ2xCLHNCQUFzQixDQUFxQjtJQUMzQyxpQkFBaUIsQ0FBb0I7SUFFckMsTUFBTSxDQUFTO0lBQ2YsZ0JBQWdCLEdBQUcsTUFBTSxDQUFDO0lBQzFCLGFBQWEsR0FBRyxJQUFJLENBQUM7SUFDckIsYUFBYSxHQUFHLEtBQUssQ0FBQztJQUN0Qix1QkFBdUIsR0FBRyxLQUFLLENBQUM7SUFFdkMsWUFDbUIsS0FBcUIsRUFDckIsWUFBMEIsRUFDMUIsa0JBQXNDO1FBRnRDLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQ3JCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7SUFFekQsQ0FBQztJQUVNLGVBQWU7UUFDcEIsTUFBTSxVQUFVLEdBQUcsUUFBUSxDQUFDLHNCQUFzQixDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDeEUsSUFBSSxVQUFVLElBQUksVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3BDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDaEMsQ0FBQztJQUNILENBQUM7SUFFTSxRQUFRO1FBQ2IsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3JCLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2xDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztRQUN0RSxDQUFDO1FBQ0QsSUFBSSxDQUFDLHVCQUF1QixHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyx1QkFBdUIsQ0FBQztJQUNqRixDQUFDO0lBRU0sYUFBYTtRQUNsQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQ3BELElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxTQUFTLENBQUM7WUFDOUIsSUFBSSxFQUFFLFFBQVEsQ0FBQyxFQUFFO2dCQUNmLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO2dCQUMzQixJQUFJLENBQUMsc0JBQXNCLEdBQUcsUUFBUSxDQUFDLFdBQVcsSUFBSSxRQUFRLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRTtvQkFDcEYsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLG1DQUFtQyxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7b0JBQy9GLE1BQU0seUJBQXlCLEdBQUcsSUFBSSxDQUFDLG1DQUFtQyxDQUFDLHVCQUF1QixFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztvQkFDdEgsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLG1DQUFtQyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQ3RGLE1BQU0sMEJBQTBCLEdBQUcsSUFBSSxDQUFDLG1DQUFtQyxDQUFDLG1CQUFtQixFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDN0csTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsbUNBQW1DLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztvQkFDekcsT0FBTzt3QkFDTCxHQUFHLElBQUk7d0JBQ1AsV0FBVyxFQUFFLGNBQWM7d0JBQzNCLHNCQUFzQixFQUFFLHlCQUF5Qjt3QkFDakQsZUFBZSxFQUFFLGlCQUFpQjt3QkFDbEMsS0FBSyxFQUFFLGVBQWU7d0JBQ3RCLGdCQUFnQixFQUFFLDBCQUEwQjt3QkFDNUMscUJBQXFCLEVBQUUsSUFBSSxDQUFDLHFCQUFxQixJQUFJLDZCQUE2QixDQUFDLHNCQUFzQjt3QkFDekcsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXO3FCQUNWLENBQUM7Z0JBQ3hCLENBQUMsQ0FBQyxDQUFDO2dCQUNILElBQUksQ0FBQyxhQUFhLEdBQUcsQ0FBQyxRQUFRLENBQUMsV0FBVyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUM7WUFDN0UsQ0FBQztZQUNELEtBQUssRUFBRSxHQUFHLEVBQUU7Z0JBQ1YsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7Z0JBQzFCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDbkMsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxjQUFjO1FBQ25CLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFTSxtQ0FBbUMsQ0FBQyxTQUFTLEVBQUUsVUFBVTtRQUM5RCxPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxtQ0FBbUMsQ0FBQyxTQUFTLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDNUYsQ0FBQztJQUVNLE9BQU87UUFDWixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixLQUFLLE1BQU07WUFDdEQsQ0FBQyxDQUFDLE1BQU07WUFDUixDQUFDLENBQUMsTUFBTSxDQUFDO0lBQ2IsQ0FBQzt1RkFyRlUsNkJBQTZCOzZEQUE3Qiw2QkFBNkI7WUNkMUMsQUFGQSwwRUFDc0Isc0VBRWtDOztZQUhwRCwrREFBc0M7WUFFbEMsY0FBOEU7WUFBOUUseUdBQThFOzs7aUZEY3pFLDZCQUE2QjtjQU56QyxTQUFTOzJCQUNFLDZCQUE2QjsyR0FTaEMsU0FBUztrQkFEZixLQUFLO1lBSUMsZ0JBQWdCO2tCQUR0QixNQUFNOztrRkFOSSw2QkFBNkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDYXNlVmlldyB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2RvbWFpbic7XG5pbXBvcnQgeyBDYXNlRmllbGQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9kb21haW4vZGVmaW5pdGlvbic7XG5pbXBvcnQgeyBMb3ZSZWZEYXRhTW9kZWwgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9zZXJ2aWNlcy9jb21tb24tZGF0YS1zZXJ2aWNlL2NvbW1vbi1kYXRhLXNlcnZpY2UnO1xuaW1wb3J0IHsgQ2FzZXNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vY2FzZS1lZGl0b3Ivc2VydmljZXMvY2FzZXMuc2VydmljZSc7XG5pbXBvcnQgeyBDYXNlTGlua1Jlc3BvbnNlLCBMaW5rZWRDYXNlc1Jlc3BvbnNlIH0gZnJvbSAnLi4vLi4vZG9tYWluL2xpbmtlZC1jYXNlcy5tb2RlbCc7XG5pbXBvcnQgeyBMaW5rZWRDYXNlc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NjZC1saW5rZWQtY2FzZXMtZnJvbS10YWJsZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9saW5rZWQtY2FzZXMtZnJvbS10YWJsZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2xpbmtlZC1jYXNlcy1mcm9tLXRhYmxlLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5cbmV4cG9ydCBjbGFzcyBMaW5rZWRDYXNlc0Zyb21UYWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IENBU0VfTkFNRV9NSVNTSU5HX1RFWFQgPSAnQ2FzZSBuYW1lIG1pc3NpbmcnO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBjYXNlRmllbGQ6IENhc2VGaWVsZDtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIG5vdGlmeUFQSUZhaWx1cmU6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXIoZmFsc2UpO1xuICBwdWJsaWMgY2FzZURldGFpbHM6IENhc2VWaWV3O1xuICBwdWJsaWMgcGFyZW50VXJsOiBzdHJpbmc7XG4gIHB1YmxpYyBpc0xvYWRlZDogYm9vbGVhbjtcbiAgcHVibGljIGdldExpbmtlZENhc2VzUmVzcG9uc2U6IENhc2VMaW5rUmVzcG9uc2VbXTtcbiAgcHVibGljIGxpbmtlZENhc2VSZWFzb25zOiBMb3ZSZWZEYXRhTW9kZWxbXTtcblxuICBwdWJsaWMgY2FzZUlkOiBzdHJpbmc7XG4gIHB1YmxpYyBzaG93SGlkZUxpbmtUZXh0ID0gJ1Nob3cnO1xuICBwdWJsaWMgbm9MaW5rZWRDYXNlcyA9IHRydWU7XG4gIHB1YmxpYyBpc1NlcnZlckVycm9yID0gZmFsc2U7XG4gIHB1YmxpYyBpc1NlcnZlclJlYXNvbkNvZGVFcnJvciA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2FzZXNTZXJ2aWNlOiBDYXNlc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBsaW5rZWRDYXNlc1NlcnZpY2U6IExpbmtlZENhc2VzU2VydmljZSxcbiAgICApIHtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgY29uc3QgbGFiZWxGaWVsZCA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ2Nhc2Utdmlld2VyLWxhYmVsJyk7XG4gICAgaWYgKGxhYmVsRmllbGQgJiYgbGFiZWxGaWVsZC5sZW5ndGgpIHtcbiAgICAgIGxhYmVsRmllbGRbMF0ucmVwbGFjZVdpdGgoJycpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmZldGNoUGFnZURhdGEoKTtcbiAgICBpZiAodGhpcy5yb3V0ZS5zbmFwc2hvdC5kYXRhLmNhc2UpIHtcbiAgICAgIHRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLmNhc2VEZXRhaWxzID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5kYXRhLmNhc2U7XG4gICAgfVxuICAgIHRoaXMuaXNTZXJ2ZXJSZWFzb25Db2RlRXJyb3IgPSB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5pc1NlcnZlclJlYXNvbkNvZGVFcnJvcjtcbiAgfVxuXG4gIHB1YmxpYyBmZXRjaFBhZ2VEYXRhKCkge1xuICAgIHRoaXMuY2FzZUlkID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5kYXRhLmNhc2UuY2FzZV9pZDtcbiAgICB0aGlzLmdldExpbmtlZENhc2VzKCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IHJlc3BvbnNlID0+IHtcbiAgICAgICAgdGhpcy5pc1NlcnZlckVycm9yID0gZmFsc2U7XG4gICAgICAgIHRoaXMuZ2V0TGlua2VkQ2FzZXNSZXNwb25zZSA9IHJlc3BvbnNlLmxpbmtlZENhc2VzICYmIHJlc3BvbnNlLmxpbmtlZENhc2VzLm1hcChpdGVtID0+IHtcbiAgICAgICAgICBjb25zdCBtYXBwZWRDYXNldHlwZSA9IHRoaXMubWFwTG9va3VwSURUb1ZhbHVlRnJvbUp1cmlzZGljdGlvbnMoJ0NBU0VfVFlQRScsIGl0ZW0uY2NkQ2FzZVR5cGUpO1xuICAgICAgICAgIGNvbnN0IG1hcHBlZENhc2V0eXBlRGVzY3JpcHRpb24gPSB0aGlzLm1hcExvb2t1cElEVG9WYWx1ZUZyb21KdXJpc2RpY3Rpb25zKCdDQVNFX1RZUEVfREVTQ1JJUFRJT04nLCBpdGVtLmNjZENhc2VUeXBlKTtcbiAgICAgICAgICBjb25zdCBtYXBwZWRDYXNlU3RhdGUgPSB0aGlzLm1hcExvb2t1cElEVG9WYWx1ZUZyb21KdXJpc2RpY3Rpb25zKCdTVEFURScsIGl0ZW0uc3RhdGUpO1xuICAgICAgICAgIGNvbnN0IG1hcHBlZENhc2VTdGF0ZURlc2NyaXB0aW9uID0gdGhpcy5tYXBMb29rdXBJRFRvVmFsdWVGcm9tSnVyaXNkaWN0aW9ucygnU1RBVEVfREVTQ1JJUFRJT04nLCBpdGVtLnN0YXRlKTtcbiAgICAgICAgICBjb25zdCBtYXBwZWRDYXNlU2VydmljZSA9IHRoaXMubWFwTG9va3VwSURUb1ZhbHVlRnJvbUp1cmlzZGljdGlvbnMoJ0pVUklTRElDVElPTicsIGl0ZW0uY2NkSnVyaXNkaWN0aW9uKTtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4uaXRlbSxcbiAgICAgICAgICAgIGNjZENhc2VUeXBlOiBtYXBwZWRDYXNldHlwZSxcbiAgICAgICAgICAgIGNjZENhc2VUeXBlRGVzY3JpcHRpb246IG1hcHBlZENhc2V0eXBlRGVzY3JpcHRpb24sXG4gICAgICAgICAgICBjY2RKdXJpc2RpY3Rpb246IG1hcHBlZENhc2VTZXJ2aWNlLFxuICAgICAgICAgICAgc3RhdGU6IG1hcHBlZENhc2VTdGF0ZSxcbiAgICAgICAgICAgIHN0YXRlRGVzY3JpcHRpb246IG1hcHBlZENhc2VTdGF0ZURlc2NyaXB0aW9uLFxuICAgICAgICAgICAgY2FzZU5hbWVIbWN0c0ludGVybmFsOiBpdGVtLmNhc2VOYW1lSG1jdHNJbnRlcm5hbCB8fCBMaW5rZWRDYXNlc0Zyb21UYWJsZUNvbXBvbmVudC5DQVNFX05BTUVfTUlTU0lOR19URVhULFxuICAgICAgICAgICAgbGlua0RldGFpbHM6IGl0ZW0ubGlua0RldGFpbHNcbiAgICAgICAgICB9IGFzIENhc2VMaW5rUmVzcG9uc2U7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLm5vTGlua2VkQ2FzZXMgPSAhcmVzcG9uc2UubGlua2VkQ2FzZXMgfHwgIXJlc3BvbnNlLmxpbmtlZENhc2VzLmxlbmd0aDtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogKCkgPT4ge1xuICAgICAgICB0aGlzLmlzU2VydmVyRXJyb3IgPSB0cnVlO1xuICAgICAgICB0aGlzLm5vdGlmeUFQSUZhaWx1cmUuZW1pdCh0cnVlKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRMaW5rZWRDYXNlcygpOiBPYnNlcnZhYmxlPExpbmtlZENhc2VzUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5jYXNlc1NlcnZpY2UuZ2V0TGlua2VkQ2FzZXModGhpcy5jYXNlSWQpO1xuICB9XG5cbiAgcHVibGljIG1hcExvb2t1cElEVG9WYWx1ZUZyb21KdXJpc2RpY3Rpb25zKGZpZWxkTmFtZSwgZmllbGRWYWx1ZSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLm1hcExvb2t1cElEVG9WYWx1ZUZyb21KdXJpc2RpY3Rpb25zKGZpZWxkTmFtZSwgZmllbGRWYWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgb25DbGljaygpOiB2b2lkIHtcbiAgICB0aGlzLnNob3dIaWRlTGlua1RleHQgPSB0aGlzLnNob3dIaWRlTGlua1RleHQgPT09ICdTaG93J1xuICAgICAgPyAnSGlkZSdcbiAgICAgIDogJ1Nob3cnO1xuICB9XG59XG4iLCI8YSAqbmdJZj1cIiFub0xpbmtlZENhc2VzICYmICFpc1NlcnZlckVycm9yXCIgaWQ9XCJzaG93LWhpZGUtbGlua1wiIGNsYXNzPVwiZ292dWstbGlua1wiIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMClcIlxuICAoY2xpY2spPVwib25DbGljaygpXCI+e3tzaG93SGlkZUxpbmtUZXh0fX08L2E+XG48dGFibGUgKm5nSWY9XCIoZ2V0TGlua2VkQ2FzZXNSZXNwb25zZSAmJiBzaG93SGlkZUxpbmtUZXh0ID09PSAnSGlkZScpIHx8IG5vTGlua2VkQ2FzZXNcIlxuICBhcmlhLWRlc2NyaWJlZGJ5PVwidGFibGUgdG8gZGlzcGxheSBjYXNlcyBsaW5rZWQgZnJvbVwiPlxuICA8dGhlYWQgY2xhc3M9XCJnb3Z1ay10YWJsZV9faGVhZFwiPlxuICAgIDx0ciBjbGFzcz1cImdvdnVrLXRhYmxlX19yb3dcIj5cbiAgICAgIDx0aCBzY29wZT1cImNvbFwiIGNsYXNzPVwiZ292dWstdGFibGVfX2hlYWRlciBjYXNlLXRhYmxlLWNvbHVtblwiIHdpZHRoPVwiMjAlXCI+Q2FzZSBuYW1lIGFuZCBudW1iZXI8L3RoPlxuICAgICAgPHRoIHNjb3BlPVwiY29sXCIgY2xhc3M9XCJnb3Z1ay10YWJsZV9faGVhZGVyIGNhc2UtdGFibGUtY29sdW1uXCIgd2lkdGg9XCIyMCVcIj5DYXNlIHR5cGUgPC90aD5cbiAgICAgIDx0aCBzY29wZT1cImNvbFwiIGNsYXNzPVwiZ292dWstdGFibGVfX2hlYWRlciBjYXNlLXRhYmxlLWNvbHVtblwiIHdpZHRoPVwiMjAlXCI+U2VydmljZTwvdGg+XG4gICAgICA8dGggc2NvcGU9XCJjb2xcIiBjbGFzcz1cImdvdnVrLXRhYmxlX19oZWFkZXIgY2FzZS10YWJsZS1jb2x1bW5cIiB3aWR0aD1cIjIwJVwiPlN0YXRlPC90aD5cbiAgICAgIDx0aCBzY29wZT1cImNvbFwiIGNsYXNzPVwiZ292dWstdGFibGVfX2hlYWRlciBjYXNlLXRhYmxlLWNvbHVtblwiIHdpZHRoPVwiMjAlXCI+UmVhc29ucyBmb3IgY2FzZSBsaW5rPC90aD5cbiAgICA8L3RyPlxuICA8L3RoZWFkPlxuICA8dGJvZHkgY2xhc3M9XCJnb3Z1ay10YWJsZV9fYm9keVwiICpuZ0lmPVwiZ2V0TGlua2VkQ2FzZXNSZXNwb25zZSAmJiAoIWlzU2VydmVyRXJyb3IgJiYgIWlzU2VydmVyUmVhc29uQ29kZUVycm9yKVwiPlxuICAgIDx0ciBjbGFzcz1cImdvdnVrLXRhYmxlX19yb3dcIiAqbmdGb3I9XCJsZXQgY2FzZSBvZiBnZXRMaW5rZWRDYXNlc1Jlc3BvbnNlXCI+XG4gICAgICA8dGQgY2xhc3M9XCJnb3Z1ay10YWJsZV9faGVhZGVyIGNhc2UtdGFibGUtY29sdW1uIHdpZHRoLTIwXCI+XG4gICAgICAgIDxwIGNsYXNzPVwiZ292dWstYm9keVwiPjxhIHRhcmdldD1cIl9ibGFua1wiIGNsYXNzPVwiZ292dWstbGlua1wiIGhyZWY9XCJjYXNlcy9jYXNlLWRldGFpbHMve3tjYXNlLmNhc2VSZWZlcmVuY2V9fVwiXG4gICAgICAgICAgICByZWw9XCJub29wZW5lclwiPjxzcGFuPnt7Y2FzZS5jYXNlTmFtZUhtY3RzSW50ZXJuYWx9fSA8YnI+XG4gICAgICAgICAgICAgIHt7Y2FzZS5jYXNlUmVmZXJlbmNlIHwgY2NkQ2FzZVJlZmVyZW5jZX19PC9zcGFuPjwvYT48L3A+XG4gICAgICA8L3RkPlxuICAgICAgPHRkIGNsYXNzPVwiY2FzZS10YWJsZS1jb2x1bW5cIj48c3BhbiBbdGl0bGVdPVwiY2FzZS5jY2RDYXNlVHlwZURlc2NyaXB0aW9uXCI+e3tjYXNlLmNjZENhc2VUeXBlfX08L3NwYW4+PC90ZD5cbiAgICAgIDx0ZCBjbGFzcz1cImNhc2UtdGFibGUtY29sdW1uXCI+PHNwYW4+e3tjYXNlLmNjZEp1cmlzZGljdGlvbn19PC9zcGFuPjwvdGQ+XG4gICAgICA8dGQgY2xhc3M9XCJjYXNlLXRhYmxlLWNvbHVtblwiPjxzcGFuIFt0aXRsZV09XCJjYXNlLnN0YXRlRGVzY3JpcHRpb25cIj57e2Nhc2Uuc3RhdGV9fTwvc3Bhbj48L3RkPlxuICAgICAgPHRkIGNsYXNzPVwiY2FzZS10YWJsZS1jb2x1bW5cIiAqbmdGb3I9XCJsZXQgZGV0YWlscyBvZiBjYXNlLmxpbmtEZXRhaWxzXCI+XG4gICAgICAgIDxzcGFuICpuZ0Zvcj1cImxldCByZWFzb24gb2YgZGV0YWlscy5yZWFzb25zOyBsZXQgaSA9IGluZGV4OyBsZXQgaXNMYXN0ID0gbGFzdFwiPlxuICAgICAgICAgIHt7cmVhc29uIHwgY2NkTGlua0Nhc2VzRnJvbVJlYXNvblZhbHVlfX0gPGJyPlxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L3RkPlxuICAgIDwvdHI+XG4gICAgPHRyIGNsYXNzPVwiZ292dWstdGFibGVfX3Jvd1wiICpuZ0lmPVwibm9MaW5rZWRDYXNlc1wiPlxuICAgICAgPHRkIGNsYXNzPVwiZ292dWstdGFibGVfX2NlbGxcIiBjb2xzcGFuPVwiNVwiPlxuICAgICAgICBOb25lXG4gICAgICA8L3RkPlxuICAgIDwvdHI+XG4gICAgPC90Ym9keT4gIFxuPC90YWJsZT5cbiJdfQ==
245
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlua2VkLWNhc2VzLWZyb20tdGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvbGlua2VkLWNhc2VzL2NvbXBvbmVudHMvbGlua2VkLWNhc2VzLXRhYmxlL2xpbmtlZC1jYXNlcy1mcm9tLXRhYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9wYWxldHRlL2xpbmtlZC1jYXNlcy9jb21wb25lbnRzL2xpbmtlZC1jYXNlcy10YWJsZS9saW5rZWQtY2FzZXMtZnJvbS10YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFHakQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRTdELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUU5RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7OztJQ1JwRCw0QkFDc0I7SUFBcEIsa0xBQVMsZ0JBQVMsS0FBQztJQUFDLFlBQW9CO0lBQUEsaUJBQUk7OztJQUF4QixjQUFvQjtJQUFwQiw2Q0FBb0I7OztJQXdCYyw2QkFFUztJQUFBLFlBQTRDO0lBQUEsaUJBQUk7Ozs7SUFEckcscUdBQWtEO0lBQ0csY0FBNEM7SUFBNUMsd0VBQTRDOzs7SUFDckcscUJBQXNCOzs7SUFKdEIsNEJBQStFO0lBQzdFLFlBQXdDOztJQUFBLDRCQUFNO0lBQUEsOEdBRVM7SUFBZ0QsaUJBQU87SUFDaEgsZ0hBQXNCO0lBQ3RCLGlCQUFPOzs7OztJQUpMLGNBQXdDO0lBQXhDLCtEQUF3QztJQUVyQyxlQUFrRDtJQUFsRCw2RUFBa0Q7SUFDbEQsY0FBYTtJQUFiLGlDQUFhOzs7SUFMcEIsOEJBQXVFO0lBQ3JFLDZHQUErRTtJQU1qRixpQkFBSzs7O0lBTnNCLGNBQW9CO0lBQXBCLDRDQUFvQjs7O0lBUDFCLEFBREcsQUFBdEIsQUFERixBQURGLDZCQUF5RSxhQUNaLFlBQ25DLFlBQ0gsV0FBTTtJQUFBLFlBQStCO0lBQUEscUJBQUk7SUFDdEQsWUFBeUM7O0lBQ2pELEFBRDRELEFBQUosQUFBUCxpQkFBTyxFQUFJLEVBQUksRUFDM0Q7SUFDeUIsQUFBOUIsOEJBQThCLGdCQUE0QztJQUFBLGFBQW9CO0lBQU8sQUFBUCxpQkFBTyxFQUFLO0lBQzVFLEFBQTlCLCtCQUE4QixZQUFNO0lBQUEsYUFBd0I7SUFBTyxBQUFQLGlCQUFPLEVBQUs7SUFDMUMsQUFBOUIsK0JBQThCLGdCQUFzQztJQUFBLGFBQWM7SUFBTyxBQUFQLGlCQUFPLEVBQUs7SUFDOUYscUdBQXVFO0lBUXpFLGlCQUFLOzs7SUFmMkQsZUFBZ0Q7SUFBaEQscUdBQWdEO0lBQ25GLGVBQStCO0lBQS9CLDZEQUErQjtJQUNsRCxlQUF5QztJQUF6Qyw0RUFBeUM7SUFFYixlQUFxQztJQUFyQyxzREFBcUM7SUFBQyxjQUFvQjtJQUFwQix5Q0FBb0I7SUFDMUQsZUFBd0I7SUFBeEIsNkNBQXdCO0lBQ3hCLGVBQStCO0lBQS9CLGdEQUErQjtJQUFDLGNBQWM7SUFBZCxtQ0FBYztJQUNoQyxjQUFtQjtJQUFuQiw2Q0FBbUI7OztJQVVyRSxBQURGLDZCQUFtRCxhQUNQO0lBQ3hDLHNCQUNGO0lBQ0YsQUFERSxpQkFBSyxFQUNGOzs7SUF2QlAsZ0NBQWdIO0lBbUI5RyxBQWxCQSwrRkFBeUUsaUZBa0J0QjtJQUtuRCxpQkFBUTs7O0lBdkJzQyxjQUF5QjtJQUF6Qix1REFBeUI7SUFrQnpDLGNBQW1CO0lBQW5CLDJDQUFtQjs7O0lBMUIvQyxBQURGLEFBREYsQUFGRixnQ0FDd0QsZUFDckIsWUFDRixZQUMrQztJQUFBLG9DQUFvQjtJQUFBLGlCQUFLO0lBQ25HLDZCQUEwRTtJQUFBLDBCQUFVO0lBQUEsaUJBQUs7SUFDekYsNkJBQTBFO0lBQUEsdUJBQU87SUFBQSxpQkFBSztJQUN0Riw2QkFBMEU7SUFBQSxzQkFBSztJQUFBLGlCQUFLO0lBQ3BGLDhCQUEwRTtJQUFBLHNDQUFxQjtJQUVuRyxBQURFLEFBRGlHLGlCQUFLLEVBQ2pHLEVBQ0M7SUFDUiw0RkFBZ0g7SUF5QmxILGlCQUFROzs7SUF6QjRCLGdCQUE0RTtJQUE1RSxrSEFBNEU7O0FER2hILE1BQU0sT0FBTyw2QkFBNkI7SUF1QnJCO0lBQ0E7SUFDQTtJQXhCWCxNQUFNLENBQVUsc0JBQXNCLEdBQUcsbUJBQW1CLENBQUM7SUFDN0QsTUFBTSxDQUFVLDZCQUE2QixHQUFHLFNBQVMsQ0FBQztJQUMxRCxNQUFNLENBQVUseUJBQXlCLEdBQUcsU0FBUyxDQUFDO0lBR3ZELFNBQVMsQ0FBWTtJQUdyQixnQkFBZ0IsR0FBMEIsSUFBSSxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbEUsV0FBVyxDQUFXO0lBQ3RCLFNBQVMsQ0FBUztJQUNsQixRQUFRLENBQVU7SUFDbEIsc0JBQXNCLENBQXFCO0lBQzNDLGlCQUFpQixDQUFvQjtJQUVyQyxNQUFNLENBQVM7SUFDZixnQkFBZ0IsR0FBRyxNQUFNLENBQUM7SUFDMUIsYUFBYSxHQUFHLElBQUksQ0FBQztJQUNyQixhQUFhLEdBQUcsS0FBSyxDQUFDO0lBQ3RCLHVCQUF1QixHQUFHLEtBQUssQ0FBQztJQUV2QyxZQUNtQixLQUFxQixFQUNyQixZQUEwQixFQUMxQixrQkFBc0M7UUFGdEMsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFDckIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtJQUV6RCxDQUFDO0lBRU0sZUFBZTtRQUNwQixNQUFNLFVBQVUsR0FBRyxRQUFRLENBQUMsc0JBQXNCLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUN4RSxJQUFJLFVBQVUsSUFBSSxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDcEMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNoQyxDQUFDO0lBQ0gsQ0FBQztJQUVNLFFBQVE7UUFDYixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDckIsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDbEMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ3RFLENBQUM7UUFDRCxJQUFJLENBQUMsdUJBQXVCLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLHVCQUF1QixDQUFDO0lBQ2pGLENBQUM7SUFFTSxhQUFhO1FBQ2xCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDcEQsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLFNBQVMsQ0FBQztZQUM5QixJQUFJLEVBQUUsUUFBUSxDQUFDLEVBQUU7Z0JBQ2YsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7Z0JBQzNCLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxRQUFRLENBQUMsV0FBVyxJQUFJLFFBQVEsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFO29CQUNwRixNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsbUNBQW1DLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztvQkFDL0YsTUFBTSx5QkFBeUIsR0FBRyxJQUFJLENBQUMsbUNBQW1DLENBQUMsdUJBQXVCLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO29CQUN0SCxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsbUNBQW1DLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDdEYsTUFBTSwwQkFBMEIsR0FBRyxJQUFJLENBQUMsbUNBQW1DLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUM3RyxNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxtQ0FBbUMsQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO29CQUN6RyxPQUFPO3dCQUNMLEdBQUcsSUFBSTt3QkFDUCxXQUFXLEVBQUUsY0FBYzt3QkFDM0Isc0JBQXNCLEVBQUUseUJBQXlCO3dCQUNqRCxlQUFlLEVBQUUsaUJBQWlCO3dCQUNsQyxLQUFLLEVBQUUsZUFBZTt3QkFDdEIsZ0JBQWdCLEVBQUUsMEJBQTBCO3dCQUM1QyxxQkFBcUIsRUFBRSxJQUFJLENBQUMscUJBQXFCLElBQUksNkJBQTZCLENBQUMsc0JBQXNCO3dCQUN6RyxXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVc7cUJBQ1YsQ0FBQztnQkFDeEIsQ0FBQyxDQUFDLENBQUM7Z0JBQ0gsSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLFFBQVEsQ0FBQyxXQUFXLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQztZQUM3RSxDQUFDO1lBQ0QsS0FBSyxFQUFFLEdBQUcsRUFBRTtnQkFDVixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztnQkFDMUIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNuQyxDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLGNBQWM7UUFDbkIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVNLG1DQUFtQyxDQUFDLFNBQVMsRUFBRSxVQUFVO1FBQzlELE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLG1DQUFtQyxDQUFDLFNBQVMsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUM1RixDQUFDO0lBRU0sb0JBQW9CLENBQUMsT0FBZTtRQUN6QyxPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVNLHlCQUF5QixDQUFDLFVBQWtCO1FBQ2pELE9BQU8sVUFBVSxLQUFLLDZCQUE2QixDQUFDLHlCQUF5QjtZQUMzRSxVQUFVLEtBQUssNkJBQTZCLENBQUMsNkJBQTZCLENBQUM7SUFDL0UsQ0FBQztJQUVNLE9BQU87UUFDWixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixLQUFLLE1BQU07WUFDdEQsQ0FBQyxDQUFDLE1BQU07WUFDUixDQUFDLENBQUMsTUFBTSxDQUFDO0lBQ2IsQ0FBQzt1RkFoR1UsNkJBQTZCOzZEQUE3Qiw2QkFBNkI7WUNkMUMsQUFGQSwwRUFDc0Isc0VBRWtDOztZQUhwRCwrREFBc0M7WUFFbEMsY0FBOEU7WUFBOUUseUdBQThFOzs7aUZEY3pFLDZCQUE2QjtjQU56QyxTQUFTOzJCQUNFLDZCQUE2QjsyR0FXaEMsU0FBUztrQkFEZixLQUFLO1lBSUMsZ0JBQWdCO2tCQUR0QixNQUFNOztrRkFSSSw2QkFBNkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDYXNlVmlldyB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2RvbWFpbic7XG5pbXBvcnQgeyBDYXNlRmllbGQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9kb21haW4vZGVmaW5pdGlvbic7XG5pbXBvcnQgeyBMb3ZSZWZEYXRhTW9kZWwgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9zZXJ2aWNlcy9jb21tb24tZGF0YS1zZXJ2aWNlL2NvbW1vbi1kYXRhLXNlcnZpY2UnO1xuaW1wb3J0IHsgQ2FzZXNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vY2FzZS1lZGl0b3Ivc2VydmljZXMvY2FzZXMuc2VydmljZSc7XG5pbXBvcnQgeyBDYXNlTGlua1Jlc3BvbnNlLCBMaW5rZWRDYXNlc1Jlc3BvbnNlIH0gZnJvbSAnLi4vLi4vZG9tYWluL2xpbmtlZC1jYXNlcy5tb2RlbCc7XG5pbXBvcnQgeyBMaW5rZWRDYXNlc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NjZC1saW5rZWQtY2FzZXMtZnJvbS10YWJsZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9saW5rZWQtY2FzZXMtZnJvbS10YWJsZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2xpbmtlZC1jYXNlcy1mcm9tLXRhYmxlLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5cbmV4cG9ydCBjbGFzcyBMaW5rZWRDYXNlc0Zyb21UYWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IENBU0VfTkFNRV9NSVNTSU5HX1RFWFQgPSAnQ2FzZSBuYW1lIG1pc3NpbmcnO1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBDQVNFX0NPTlNPTElEQVRFRF9SRUFTT05fQ09ERSA9ICdDTFJDMDE1JztcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgQ0FTRV9QUk9HUkVTU19SRUFTT05fQ09ERSA9ICdDTFJDMDE2JztcblxuICBASW5wdXQoKVxuICBwdWJsaWMgY2FzZUZpZWxkOiBDYXNlRmllbGQ7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBub3RpZnlBUElGYWlsdXJlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyKGZhbHNlKTtcbiAgcHVibGljIGNhc2VEZXRhaWxzOiBDYXNlVmlldztcbiAgcHVibGljIHBhcmVudFVybDogc3RyaW5nO1xuICBwdWJsaWMgaXNMb2FkZWQ6IGJvb2xlYW47XG4gIHB1YmxpYyBnZXRMaW5rZWRDYXNlc1Jlc3BvbnNlOiBDYXNlTGlua1Jlc3BvbnNlW107XG4gIHB1YmxpYyBsaW5rZWRDYXNlUmVhc29uczogTG92UmVmRGF0YU1vZGVsW107XG5cbiAgcHVibGljIGNhc2VJZDogc3RyaW5nO1xuICBwdWJsaWMgc2hvd0hpZGVMaW5rVGV4dCA9ICdTaG93JztcbiAgcHVibGljIG5vTGlua2VkQ2FzZXMgPSB0cnVlO1xuICBwdWJsaWMgaXNTZXJ2ZXJFcnJvciA9IGZhbHNlO1xuICBwdWJsaWMgaXNTZXJ2ZXJSZWFzb25Db2RlRXJyb3IgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNhc2VzU2VydmljZTogQ2FzZXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbGlua2VkQ2FzZXNTZXJ2aWNlOiBMaW5rZWRDYXNlc1NlcnZpY2UsXG4gICAgKSB7XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGNvbnN0IGxhYmVsRmllbGQgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdjYXNlLXZpZXdlci1sYWJlbCcpO1xuICAgIGlmIChsYWJlbEZpZWxkICYmIGxhYmVsRmllbGQubGVuZ3RoKSB7XG4gICAgICBsYWJlbEZpZWxkWzBdLnJlcGxhY2VXaXRoKCcnKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5mZXRjaFBhZ2VEYXRhKCk7XG4gICAgaWYgKHRoaXMucm91dGUuc25hcHNob3QuZGF0YS5jYXNlKSB7XG4gICAgICB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5jYXNlRGV0YWlscyA9IHRoaXMucm91dGUuc25hcHNob3QuZGF0YS5jYXNlO1xuICAgIH1cbiAgICB0aGlzLmlzU2VydmVyUmVhc29uQ29kZUVycm9yID0gdGhpcy5saW5rZWRDYXNlc1NlcnZpY2UuaXNTZXJ2ZXJSZWFzb25Db2RlRXJyb3I7XG4gIH1cblxuICBwdWJsaWMgZmV0Y2hQYWdlRGF0YSgpIHtcbiAgICB0aGlzLmNhc2VJZCA9IHRoaXMucm91dGUuc25hcHNob3QuZGF0YS5jYXNlLmNhc2VfaWQ7XG4gICAgdGhpcy5nZXRMaW5rZWRDYXNlcygpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiByZXNwb25zZSA9PiB7XG4gICAgICAgIHRoaXMuaXNTZXJ2ZXJFcnJvciA9IGZhbHNlO1xuICAgICAgICB0aGlzLmdldExpbmtlZENhc2VzUmVzcG9uc2UgPSByZXNwb25zZS5saW5rZWRDYXNlcyAmJiByZXNwb25zZS5saW5rZWRDYXNlcy5tYXAoaXRlbSA9PiB7XG4gICAgICAgICAgY29uc3QgbWFwcGVkQ2FzZXR5cGUgPSB0aGlzLm1hcExvb2t1cElEVG9WYWx1ZUZyb21KdXJpc2RpY3Rpb25zKCdDQVNFX1RZUEUnLCBpdGVtLmNjZENhc2VUeXBlKTtcbiAgICAgICAgICBjb25zdCBtYXBwZWRDYXNldHlwZURlc2NyaXB0aW9uID0gdGhpcy5tYXBMb29rdXBJRFRvVmFsdWVGcm9tSnVyaXNkaWN0aW9ucygnQ0FTRV9UWVBFX0RFU0NSSVBUSU9OJywgaXRlbS5jY2RDYXNlVHlwZSk7XG4gICAgICAgICAgY29uc3QgbWFwcGVkQ2FzZVN0YXRlID0gdGhpcy5tYXBMb29rdXBJRFRvVmFsdWVGcm9tSnVyaXNkaWN0aW9ucygnU1RBVEUnLCBpdGVtLnN0YXRlKTtcbiAgICAgICAgICBjb25zdCBtYXBwZWRDYXNlU3RhdGVEZXNjcmlwdGlvbiA9IHRoaXMubWFwTG9va3VwSURUb1ZhbHVlRnJvbUp1cmlzZGljdGlvbnMoJ1NUQVRFX0RFU0NSSVBUSU9OJywgaXRlbS5zdGF0ZSk7XG4gICAgICAgICAgY29uc3QgbWFwcGVkQ2FzZVNlcnZpY2UgPSB0aGlzLm1hcExvb2t1cElEVG9WYWx1ZUZyb21KdXJpc2RpY3Rpb25zKCdKVVJJU0RJQ1RJT04nLCBpdGVtLmNjZEp1cmlzZGljdGlvbik7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIC4uLml0ZW0sXG4gICAgICAgICAgICBjY2RDYXNlVHlwZTogbWFwcGVkQ2FzZXR5cGUsXG4gICAgICAgICAgICBjY2RDYXNlVHlwZURlc2NyaXB0aW9uOiBtYXBwZWRDYXNldHlwZURlc2NyaXB0aW9uLFxuICAgICAgICAgICAgY2NkSnVyaXNkaWN0aW9uOiBtYXBwZWRDYXNlU2VydmljZSxcbiAgICAgICAgICAgIHN0YXRlOiBtYXBwZWRDYXNlU3RhdGUsXG4gICAgICAgICAgICBzdGF0ZURlc2NyaXB0aW9uOiBtYXBwZWRDYXNlU3RhdGVEZXNjcmlwdGlvbixcbiAgICAgICAgICAgIGNhc2VOYW1lSG1jdHNJbnRlcm5hbDogaXRlbS5jYXNlTmFtZUhtY3RzSW50ZXJuYWwgfHwgTGlua2VkQ2FzZXNGcm9tVGFibGVDb21wb25lbnQuQ0FTRV9OQU1FX01JU1NJTkdfVEVYVCxcbiAgICAgICAgICAgIGxpbmtEZXRhaWxzOiBpdGVtLmxpbmtEZXRhaWxzXG4gICAgICAgICAgfSBhcyBDYXNlTGlua1Jlc3BvbnNlO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5ub0xpbmtlZENhc2VzID0gIXJlc3BvbnNlLmxpbmtlZENhc2VzIHx8ICFyZXNwb25zZS5saW5rZWRDYXNlcy5sZW5ndGg7XG4gICAgICB9LFxuICAgICAgZXJyb3I6ICgpID0+IHtcbiAgICAgICAgdGhpcy5pc1NlcnZlckVycm9yID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5ub3RpZnlBUElGYWlsdXJlLmVtaXQodHJ1ZSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0TGlua2VkQ2FzZXMoKTogT2JzZXJ2YWJsZTxMaW5rZWRDYXNlc1Jlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FzZXNTZXJ2aWNlLmdldExpbmtlZENhc2VzKHRoaXMuY2FzZUlkKTtcbiAgfVxuXG4gIHB1YmxpYyBtYXBMb29rdXBJRFRvVmFsdWVGcm9tSnVyaXNkaWN0aW9ucyhmaWVsZE5hbWUsIGZpZWxkVmFsdWUpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5tYXBMb29rdXBJRFRvVmFsdWVGcm9tSnVyaXNkaWN0aW9ucyhmaWVsZE5hbWUsIGZpZWxkVmFsdWUpO1xuICB9XG5cbiAgcHVibGljIGdldENhc2VSZWZlcmVuY2VMaW5rKGNhc2VSZWY6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGNhc2VSZWYuc2xpY2UodGhpcy5jYXNlSWQubGVuZ3RoIC0gNCk7XG4gIH1cblxuICBwdWJsaWMgaGFzTGVhZENhc2VPckNvbnNvbGlkYXRlZChyZWFzb25Db2RlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gcmVhc29uQ29kZSA9PT0gTGlua2VkQ2FzZXNGcm9tVGFibGVDb21wb25lbnQuQ0FTRV9QUk9HUkVTU19SRUFTT05fQ09ERSB8fFxuICAgICAgcmVhc29uQ29kZSA9PT0gTGlua2VkQ2FzZXNGcm9tVGFibGVDb21wb25lbnQuQ0FTRV9DT05TT0xJREFURURfUkVBU09OX0NPREU7XG4gIH1cblxuICBwdWJsaWMgb25DbGljaygpOiB2b2lkIHtcbiAgICB0aGlzLnNob3dIaWRlTGlua1RleHQgPSB0aGlzLnNob3dIaWRlTGlua1RleHQgPT09ICdTaG93J1xuICAgICAgPyAnSGlkZSdcbiAgICAgIDogJ1Nob3cnO1xuICB9XG59XG4iLCI8YSAqbmdJZj1cIiFub0xpbmtlZENhc2VzICYmICFpc1NlcnZlckVycm9yXCIgaWQ9XCJzaG93LWhpZGUtbGlua1wiIGNsYXNzPVwiZ292dWstbGlua1wiIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMClcIlxuICAoY2xpY2spPVwib25DbGljaygpXCI+e3tzaG93SGlkZUxpbmtUZXh0fX08L2E+XG48dGFibGUgKm5nSWY9XCIoZ2V0TGlua2VkQ2FzZXNSZXNwb25zZSAmJiBzaG93SGlkZUxpbmtUZXh0ID09PSAnSGlkZScpIHx8IG5vTGlua2VkQ2FzZXNcIlxuICBhcmlhLWRlc2NyaWJlZGJ5PVwidGFibGUgdG8gZGlzcGxheSBjYXNlcyBsaW5rZWQgZnJvbVwiPlxuICA8dGhlYWQgY2xhc3M9XCJnb3Z1ay10YWJsZV9faGVhZFwiPlxuICAgIDx0ciBjbGFzcz1cImdvdnVrLXRhYmxlX19yb3dcIj5cbiAgICAgIDx0aCBzY29wZT1cImNvbFwiIGNsYXNzPVwiZ292dWstdGFibGVfX2hlYWRlciBjYXNlLXRhYmxlLWNvbHVtblwiIHdpZHRoPVwiMjAlXCI+Q2FzZSBuYW1lIGFuZCBudW1iZXI8L3RoPlxuICAgICAgPHRoIHNjb3BlPVwiY29sXCIgY2xhc3M9XCJnb3Z1ay10YWJsZV9faGVhZGVyIGNhc2UtdGFibGUtY29sdW1uXCIgd2lkdGg9XCIyMCVcIj5DYXNlIHR5cGUgPC90aD5cbiAgICAgIDx0aCBzY29wZT1cImNvbFwiIGNsYXNzPVwiZ292dWstdGFibGVfX2hlYWRlciBjYXNlLXRhYmxlLWNvbHVtblwiIHdpZHRoPVwiMjAlXCI+U2VydmljZTwvdGg+XG4gICAgICA8dGggc2NvcGU9XCJjb2xcIiBjbGFzcz1cImdvdnVrLXRhYmxlX19oZWFkZXIgY2FzZS10YWJsZS1jb2x1bW5cIiB3aWR0aD1cIjIwJVwiPlN0YXRlPC90aD5cbiAgICAgIDx0aCBzY29wZT1cImNvbFwiIGNsYXNzPVwiZ292dWstdGFibGVfX2hlYWRlciBjYXNlLXRhYmxlLWNvbHVtblwiIHdpZHRoPVwiMjAlXCI+UmVhc29ucyBmb3IgY2FzZSBsaW5rPC90aD5cbiAgICA8L3RyPlxuICA8L3RoZWFkPlxuICA8dGJvZHkgY2xhc3M9XCJnb3Z1ay10YWJsZV9fYm9keVwiICpuZ0lmPVwiZ2V0TGlua2VkQ2FzZXNSZXNwb25zZSAmJiAoIWlzU2VydmVyRXJyb3IgJiYgIWlzU2VydmVyUmVhc29uQ29kZUVycm9yKVwiPlxuICAgIDx0ciBjbGFzcz1cImdvdnVrLXRhYmxlX19yb3dcIiAqbmdGb3I9XCJsZXQgY2FzZSBvZiBnZXRMaW5rZWRDYXNlc1Jlc3BvbnNlXCI+XG4gICAgICA8dGQgY2xhc3M9XCJnb3Z1ay10YWJsZV9faGVhZGVyIGNhc2UtdGFibGUtY29sdW1uIHdpZHRoLTIwXCI+XG4gICAgICAgIDxwIGNsYXNzPVwiZ292dWstYm9keVwiPjxhIHRhcmdldD1cIl9ibGFua1wiIGNsYXNzPVwiZ292dWstbGlua1wiIGhyZWY9XCJjYXNlcy9jYXNlLWRldGFpbHMve3tjYXNlLmNhc2VSZWZlcmVuY2V9fVwiXG4gICAgICAgICAgICByZWw9XCJub29wZW5lclwiPjxzcGFuPnt7Y2FzZS5jYXNlTmFtZUhtY3RzSW50ZXJuYWx9fSA8YnI+XG4gICAgICAgICAgICAgIHt7Y2FzZS5jYXNlUmVmZXJlbmNlIHwgY2NkQ2FzZVJlZmVyZW5jZX19PC9zcGFuPjwvYT48L3A+XG4gICAgICA8L3RkPlxuICAgICAgPHRkIGNsYXNzPVwiY2FzZS10YWJsZS1jb2x1bW5cIj48c3BhbiBbdGl0bGVdPVwiY2FzZS5jY2RDYXNlVHlwZURlc2NyaXB0aW9uXCI+e3tjYXNlLmNjZENhc2VUeXBlfX08L3NwYW4+PC90ZD5cbiAgICAgIDx0ZCBjbGFzcz1cImNhc2UtdGFibGUtY29sdW1uXCI+PHNwYW4+e3tjYXNlLmNjZEp1cmlzZGljdGlvbn19PC9zcGFuPjwvdGQ+XG4gICAgICA8dGQgY2xhc3M9XCJjYXNlLXRhYmxlLWNvbHVtblwiPjxzcGFuIFt0aXRsZV09XCJjYXNlLnN0YXRlRGVzY3JpcHRpb25cIj57e2Nhc2Uuc3RhdGV9fTwvc3Bhbj48L3RkPlxuICAgICAgPHRkIGNsYXNzPVwiY2FzZS10YWJsZS1jb2x1bW5cIiAqbmdGb3I9XCJsZXQgZGV0YWlscyBvZiBjYXNlLmxpbmtEZXRhaWxzXCI+XG4gICAgICAgIDxzcGFuICpuZ0Zvcj1cImxldCByZWFzb24gb2YgZGV0YWlscy5yZWFzb25zOyBsZXQgaSA9IGluZGV4OyBsZXQgaXNMYXN0ID0gbGFzdFwiPlxuICAgICAgICAgIHt7cmVhc29uIHwgY2NkTGlua0Nhc2VzRnJvbVJlYXNvblZhbHVlfX08c3Bhbj48YSBjbGFzcz1cImdvdnVrLSEtcGFkZGluZy1sZWZ0LTFcIlxuICAgICAgICAgICAgaHJlZj1cImNhc2VzL2Nhc2UtZGV0YWlscy97eyBjYXNlLmNhc2VSZWZlcmVuY2UgfX1cIlxuICAgICAgICAgICAgKm5nSWY9XCJoYXNMZWFkQ2FzZU9yQ29uc29saWRhdGVkKHJlYXNvbi5yZWFzb25Db2RlKVwiPnt7Z2V0Q2FzZVJlZmVyZW5jZUxpbmsoY2FzZS5jYXNlUmVmZXJlbmNlKX19PC9hPjwvc3Bhbj5cbiAgICAgICAgPGJyICpuZ0lmPVwiIWlzTGFzdFwiIC8+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvdGQ+XG4gICAgPC90cj5cbiAgICA8dHIgY2xhc3M9XCJnb3Z1ay10YWJsZV9fcm93XCIgKm5nSWY9XCJub0xpbmtlZENhc2VzXCI+XG4gICAgICA8dGQgY2xhc3M9XCJnb3Z1ay10YWJsZV9fY2VsbFwiIGNvbHNwYW49XCI1XCI+XG4gICAgICAgIE5vbmVcbiAgICAgIDwvdGQ+XG4gICAgPC90cj5cbiAgICA8L3Rib2R5PiAgXG48L3RhYmxlPlxuIl19