fantasy-ngzorro 2.2.1 → 2.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -1
- package/bundles/fantasy-ngzorro.umd.js +6 -5
- package/bundles/fantasy-ngzorro.umd.js.map +1 -1
- package/bundles/fantasy-ngzorro.umd.min.js +1 -1
- package/bundles/fantasy-ngzorro.umd.min.js.map +1 -1
- package/esm2015/hd-detail-lines/hd-detail-lines.component.js +6 -5
- package/esm2015/hd-detail-lines-page/hd-detail-lines-page.component.js +1 -1
- package/esm5/hd-detail-lines/hd-detail-lines.component.js +6 -5
- package/esm5/hd-detail-lines-page/hd-detail-lines-page.component.js +1 -1
- package/fantasy-ngzorro.metadata.json +1 -1
- package/fesm2015/fantasy-ngzorro.js +6 -5
- package/fesm2015/fantasy-ngzorro.js.map +1 -1
- package/fesm5/fantasy-ngzorro.js +6 -5
- package/fesm5/fantasy-ngzorro.js.map +1 -1
- package/package.json +2 -2
|
@@ -67,8 +67,9 @@ export class HdDetailLinesComponent {
|
|
|
67
67
|
* @return {?}
|
|
68
68
|
*/
|
|
69
69
|
get effectiveScroll() {
|
|
70
|
-
// 不自动补 y
|
|
71
|
-
//
|
|
70
|
+
// 不自动补 nzScroll.y:有 y 会拆表头/表体,无列宽时列错位。
|
|
71
|
+
// 仅有 x 时的纵滚由 less(max-height + overflow-y)承担,表头 sticky。
|
|
72
|
+
// 仅当父组件显式传了 scroll.y 时才走 nz-table 分体纵滚。
|
|
72
73
|
return this.scroll != null ? this.scroll : this.tableScroll;
|
|
73
74
|
}
|
|
74
75
|
/**
|
|
@@ -495,8 +496,8 @@ export class HdDetailLinesComponent {
|
|
|
495
496
|
HdDetailLinesComponent.decorators = [
|
|
496
497
|
{ type: Component, args: [{
|
|
497
498
|
selector: "hd-detail-lines",
|
|
498
|
-
template: "<ng-container>\n <hd-button-group *ngIf=\"showSearch\">\n <ng-template #buttonGroupLeft>\n <nz-input-group [nzSuffix]=\"suffixIconSearch\">\n <input type=\"text\" nz-input (keyup.enter)=\"searchLines()\" placeholder=\"\u8BF7\u8F93\u5165\u5185\u5BB9\u641C\u7D22\" style=\"width: 300px;\"\n [(ngModel)]=\"filterStr\" />\n </nz-input-group>\n <ng-template #suffixIconSearch>\n <i nz-icon nzType=\"search\" (click)=\"searchLines()\"></i>\n </ng-template>\n </ng-template>\n </hd-button-group>\n\n <hd-space *ngIf=\"showSearch\" background=\"transparent\" type=\"row\" size=\"16\"></hd-space>\n\n <nz-table *ngIf=\"showTable\" #hdTable class=\"hd-table-container\"\n [class.hd-detail-lines--scroll-y]=\"!!(effectiveScroll && effectiveScroll.y)\"\n [class.hd-detail-lines--scroll-x]=\"!!(effectiveScroll && effectiveScroll.x)\"\n [nzScroll]=\"effectiveScroll\" nzShowSizeChanger\n [nzFrontPagination]=\"hdFrontPagination\" [nzShowQuickJumper]=\"hdFrontPagination\" [nzShowTotal]=\"tableTotalTemplate\"\n nzSize=\"middle\" [nzData]=\"displayLines\" [nzLoading]=\"tableLoading\" [(nzPageSize)]=\"tablePageSize\"\n [nzPageSizeOptions]=\"[ 10, 50, 100, 200, 500, 1000 ]\"\n (nzCurrentPageDataChange)=\"showSelected ? currentPageDataChange($event) : null\">\n <thead>\n <tr>\n <th *ngIf=\"showSelected\" nzWidth=\"40px\" nzLeft=\"0px\" nzShowCheckbox [(nzChecked)]=\"isAllDisplayDataChecked\"\n [nzIndeterminate]=\"isIndeterminate\" (nzCheckedChange)=\"checkAll($event)\"></th>\n <ng-container *ngTemplateOutlet=\"detailLineHead\"></ng-container>\n </tr>\n </thead>\n <tbody *ngIf=\"!allowDrop;else allowDropTemplate\">\n <tr *ngFor=\"let data of hdTable.data;index as i\" [class.hd-table-row-invalid]=\"isInvalidRow(data)\">\n <td *ngIf=\"showSelected\" nzWidth=\"40px\" nzLeft=\"0px\" nzShowCheckbox\n [nzChecked]=\"mapOfCheckedId[data[selectField]]\" [nzDisabled]=\"isSelectDisabled(data)\"\n (nzCheckedChange)=\"refreshStatus($event, data)\"></td>\n <ng-container *ngTemplateOutlet=\"detailLineBody;context:{$implicit: data, index: i}\"></ng-container>\n </tr>\n <!-- \u5408\u8BA1\u533A\u57DF -->\n <tr *ngIf=\"showTotal\" class=\"hd-table-total\">\n <td *ngIf=\"showSelected\"></td>\n <td>\u5408\u8BA1</td>\n <ng-container *ngFor=\"let totalOption of totalOptionList\">\n <td *ngIf=\"!totalOption.isHide\" [nzAlign]=\"totalOption.align ? totalOption.align : 'left'\">{{\n (totalOption.value || totalOption.value ===\n 0) ? (((totalOption.value % 1 === 0) && !totalOption.showDecimal ) ? totalOption.value :\n LodashRound(totalOption.value, totalOption.preserveNumber).toFixed(totalOption.preserveNumber)) : '' }} </td>\n </ng-container>\n </tr>\n </tbody>\n <ng-template #allowDropTemplate>\n <tbody cdkDropList (cdkDropListDropped)=\"drop($event)\">\n <tr *ngFor=\"let data of hdTable.data;index as i\" cdkDrag [class.hd-table-row-invalid]=\"isInvalidRow(data)\">\n <td *ngIf=\"showSelected\" nzWidth=\"40px\" nzLeft=\"0px\" nzShowCheckbox\n [nzChecked]=\"mapOfCheckedId[data[selectField]]\" [nzDisabled]=\"isSelectDisabled(data)\"\n (nzCheckedChange)=\"refreshStatus($event, data)\"></td>\n <ng-container *ngTemplateOutlet=\"detailLineBody;context:{$implicit: data, index: i}\"></ng-container>\n </tr>\n <!-- \u5408\u8BA1\u533A\u57DF -->\n <tr *ngIf=\"showTotal\" class=\"hd-table-total\">\n <td *ngIf=\"showSelected\"></td>\n <td>\u5408\u8BA1</td>\n <ng-container *ngFor=\"let totalOption of totalOptionList\">\n <td *ngIf=\"!totalOption.isHide\" [nzAlign]=\"totalOption.align ? totalOption.align : 'left'\">{{\n (totalOption.value || totalOption.value\n === 0) ? (((totalOption.value % 1 === 0) && !totalOption.showDecimal ) ? totalOption.value :\n LodashRound(totalOption.value, totalOption.preserveNumber).toFixed(totalOption.preserveNumber)) : '' }} </td>\n </ng-container>\n </tr>\n </tbody>\n </ng-template>\n <ng-template #tableTotalTemplate>\n \u5171 {{displayLines.length}} \u6761\u6570\u636E\n </ng-template>\n </nz-table>\n</ng-container>\n",
|
|
499
|
-
styles: ["::ng-deep .common-btn-group>a{font-size:14px;font-weight:400;color:#20b95d!important;white-space:nowrap}::ng-deep .common-btn-group .common-danger-btn:hover{color:#f05b24!important}::ng-deep .common-btn-group>a:hover{color:#20bd62!important}::ng-deep .common-btn-group>a:not(:last-child)::after{content:'';margin:0 2px}::ng-deep .common-billNumber>a{color:#3b77e3}button{box-shadow:unset;text-shadow:unset}::ng-deep .ant-form-item-label>label{color:#4b504e;font-size:14px}::ng-deep .ant-input-number-input{height:32px}::ng-deep .ant-input-number{height:32px}textarea.ant-input{height:auto;min-height:32px}::ng-deep .ant-select-selection--multiple{min-height:32px}::ng-deep .ant-select-selection__rendered>ul>li{height:26px!important;margin-top:3px!important;line-height:26px!important}::ng-deep .ant-advanced-search-form .ant-form-item{margin-bottom:0!important}::ng-deep .ant-select-selection--single{height:32px!important}::ng-deep .ant-input{height:32px}::ng-deep .ant-input[disabled]:hover{border-color:#d9d9d9!important}::ng-deep .ant-select-selection__rendered{line-height:32px!important}::ng-deep .ant-calendar-range-picker-input{text-align:left!important}::ng-deep .ant-calendar-picker{width:100%!important}::ng-deep .ant-row{margin-right:0!important;margin-left:0!important}::ng-deep .ant-col-6{padding-left:12px;padding-right:12px}::ng-deep .ant-col-12{padding-left:12px;padding-right:12px}::ng-deep .ant-col-18{padding-left:12px;padding-right:12px}::ng-deep .ant-col-24{padding-left:12px;padding-right:12px}::ng-deep .ant-alert-info{background-color:#f5f8f6;border:1px solid #cfe3d4}::ng-deep .hd-table-container .ant-table-td-left-sticky,::ng-deep .hd-table-container .ant-table-td-right-sticky,::ng-deep .hd-table-container .ant-table-th-left-sticky,::ng-deep .hd-table-container .ant-table-th-right-sticky{z-index:2;transform:translateZ(0)}::ng-deep .hd-table-container .ant-table-thead>tr>th.ant-table-th-left-sticky,::ng-deep .hd-table-container .ant-table-thead>tr>th.ant-table-th-right-sticky{background:#f5f8f6!important}::ng-deep .hd-table-container .ant-table-tbody>tr>td.ant-table-td-left-sticky,::ng-deep .hd-table-container .ant-table-tbody>tr>td.ant-table-td-right-sticky{background:#fff}::ng-deep .hd-table-container .ant-table-tbody>tr.ant-table-row-hover>td.ant-table-td-left-sticky,::ng-deep .hd-table-container .ant-table-tbody>tr.ant-table-row-hover>td.ant-table-td-right-sticky,::ng-deep .hd-table-container .ant-table-tbody>tr:hover>td.ant-table-td-left-sticky,::ng-deep .hd-table-container .ant-table-tbody>tr:hover>td.ant-table-td-right-sticky{background:#ecf8f1!important}::ng-deep .hd-table-container .ant-table-scroll-position-left .ant-table-td-right-sticky,::ng-deep .hd-table-container .ant-table-scroll-position-left .ant-table-th-right-sticky,::ng-deep .hd-table-container .ant-table-scroll-position-middle .ant-table-td-right-sticky,::ng-deep .hd-table-container .ant-table-scroll-position-middle .ant-table-th-right-sticky,::ng-deep .hd-table-container .ant-table-scroll-position-right .ant-table-td-right-sticky,::ng-deep .hd-table-container .ant-table-scroll-position-right .ant-table-th-right-sticky{box-shadow:none!important}::ng-deep .hd-table-container .ant-table-fixed-right{right:0!important}:host ::ng-deep th{background:#f5f8f6!important;font-weight:700!important;white-space:nowrap;font-size:14px;font-family:PingFangSC-Medium,PingFang SC;color:#2a3634;padding:8px!important;box-sizing:border-box}:host ::ng-deep td{font-weight:400;font-style:normal;font-size:14px;color:#2a3634;text-align:left;white-space:nowrap;padding:8px!important;box-sizing:border-box}::ng-deep .ant-pagination-options{display:inline-flex;align-items:center}::ng-deep .ant-pagination-options .ant-select,::ng-deep .ant-pagination-options .ant-select-selection--single{min-width:100px}::ng-deep .ant-pagination-options-size-changer.ant-select{min-width:100px}::ng-deep .ant-time-picker{width:100%}::ng-deep .cdk-overlay-pane .hd-cascader-menus.ant-cascader-menus>.ant-cascader-menu:only-child{width:-webkit-max-content!important;width:-moz-max-content!important;width:max-content!important;min-width:var(--hd-cascader-menu-min-width,auto);max-width:560px}::ng-deep .cdk-overlay-pane .hd-cascader-menus.ant-cascader-menus>.ant-cascader-menu:only-child .ant-cascader-menu-item{white-space:nowrap}.ant-input-number-disabled,.ant-input[disabled],.ant-select-disabled{color:#4b504e}.hd-table-container ::ng-deep .ant-pagination-options-quick-jumper input{border-radius:2px;border:1px solid #d9d9d9}.hd-table-container ::ng-deep .ant-pagination-options .ant-select-selection{border-radius:2px}.hd-table-container ::ng-deep .ant-table-thead>tr>th{border-bottom:1px solid #ecf1ed}.hd-table-container ::ng-deep .ant-table-tbody>tr>td{border-bottom:1px solid #ecf1ed}.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid.ant-table-row-hover>td,.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid.ant-table-row-hover>td.ant-table-td-left-sticky,.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid.ant-table-row-hover>td.ant-table-td-right-sticky,.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid:hover>td,.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid:hover>td.ant-table-td-left-sticky,.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid:hover>td.ant-table-td-right-sticky,.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid>td,.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid>td.ant-table-td-left-sticky,.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid>td.ant-table-td-right-sticky{background:#f7f8fa!important;color:#868a9c!important}.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid .common-btn-group>a{color:#20b95d!important}.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid .common-btn-group>a:hover{color:#20bd62!important}.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid .common-btn-group .common-danger-btn:hover{color:#f05b24!important}.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid .hd-table-cell-value>a,.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid>td>a{color:#20b95d}.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid .common-billNumber>a{color:#3b77e3}.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid .hd-status-text{color:#868a9c!important}.hd-table-container ::ng-deep .hd-table-total>td{border:0!important}.hd-table-container.hd-detail-lines--scroll-x:not(.hd-detail-lines--scroll-y) ::ng-deep .ant-table-body{max-height:
|
|
499
|
+
template: "<ng-container>\n <hd-button-group *ngIf=\"showSearch\">\n <ng-template #buttonGroupLeft>\n <nz-input-group [nzSuffix]=\"suffixIconSearch\">\n <input type=\"text\" nz-input (keyup.enter)=\"searchLines()\" placeholder=\"\u8BF7\u8F93\u5165\u5185\u5BB9\u641C\u7D22\" style=\"width: 300px;\"\n [(ngModel)]=\"filterStr\" />\n </nz-input-group>\n <ng-template #suffixIconSearch>\n <i nz-icon nzType=\"search\" (click)=\"searchLines()\"></i>\n </ng-template>\n </ng-template>\n </hd-button-group>\n\n <hd-space *ngIf=\"showSearch\" background=\"transparent\" type=\"row\" size=\"16\"></hd-space>\n\n <nz-table *ngIf=\"showTable\" #hdTable class=\"hd-table-container\"\n [class.hd-detail-lines--scroll-y]=\"!!(effectiveScroll && effectiveScroll.y)\"\n [class.hd-detail-lines--scroll-x]=\"!!(effectiveScroll && effectiveScroll.x)\"\n [class.hd-detail-lines--with-search]=\"showSearch\"\n [nzScroll]=\"effectiveScroll\" nzShowSizeChanger\n [nzFrontPagination]=\"hdFrontPagination\" [nzShowQuickJumper]=\"hdFrontPagination\" [nzShowTotal]=\"tableTotalTemplate\"\n nzSize=\"middle\" [nzData]=\"displayLines\" [nzLoading]=\"tableLoading\" [(nzPageSize)]=\"tablePageSize\"\n [nzPageSizeOptions]=\"[ 10, 50, 100, 200, 500, 1000 ]\"\n (nzCurrentPageDataChange)=\"showSelected ? currentPageDataChange($event) : null\">\n <thead>\n <tr>\n <th *ngIf=\"showSelected\" nzWidth=\"40px\" nzLeft=\"0px\" nzShowCheckbox [(nzChecked)]=\"isAllDisplayDataChecked\"\n [nzIndeterminate]=\"isIndeterminate\" (nzCheckedChange)=\"checkAll($event)\"></th>\n <ng-container *ngTemplateOutlet=\"detailLineHead\"></ng-container>\n </tr>\n </thead>\n <tbody *ngIf=\"!allowDrop;else allowDropTemplate\">\n <tr *ngFor=\"let data of hdTable.data;index as i\" [class.hd-table-row-invalid]=\"isInvalidRow(data)\">\n <td *ngIf=\"showSelected\" nzWidth=\"40px\" nzLeft=\"0px\" nzShowCheckbox\n [nzChecked]=\"mapOfCheckedId[data[selectField]]\" [nzDisabled]=\"isSelectDisabled(data)\"\n (nzCheckedChange)=\"refreshStatus($event, data)\"></td>\n <ng-container *ngTemplateOutlet=\"detailLineBody;context:{$implicit: data, index: i}\"></ng-container>\n </tr>\n <!-- \u5408\u8BA1\u533A\u57DF -->\n <tr *ngIf=\"showTotal\" class=\"hd-table-total\">\n <td *ngIf=\"showSelected\"></td>\n <td>\u5408\u8BA1</td>\n <ng-container *ngFor=\"let totalOption of totalOptionList\">\n <td *ngIf=\"!totalOption.isHide\" [nzAlign]=\"totalOption.align ? totalOption.align : 'left'\">{{\n (totalOption.value || totalOption.value ===\n 0) ? (((totalOption.value % 1 === 0) && !totalOption.showDecimal ) ? totalOption.value :\n LodashRound(totalOption.value, totalOption.preserveNumber).toFixed(totalOption.preserveNumber)) : '' }} </td>\n </ng-container>\n </tr>\n </tbody>\n <ng-template #allowDropTemplate>\n <tbody cdkDropList (cdkDropListDropped)=\"drop($event)\">\n <tr *ngFor=\"let data of hdTable.data;index as i\" cdkDrag [class.hd-table-row-invalid]=\"isInvalidRow(data)\">\n <td *ngIf=\"showSelected\" nzWidth=\"40px\" nzLeft=\"0px\" nzShowCheckbox\n [nzChecked]=\"mapOfCheckedId[data[selectField]]\" [nzDisabled]=\"isSelectDisabled(data)\"\n (nzCheckedChange)=\"refreshStatus($event, data)\"></td>\n <ng-container *ngTemplateOutlet=\"detailLineBody;context:{$implicit: data, index: i}\"></ng-container>\n </tr>\n <!-- \u5408\u8BA1\u533A\u57DF -->\n <tr *ngIf=\"showTotal\" class=\"hd-table-total\">\n <td *ngIf=\"showSelected\"></td>\n <td>\u5408\u8BA1</td>\n <ng-container *ngFor=\"let totalOption of totalOptionList\">\n <td *ngIf=\"!totalOption.isHide\" [nzAlign]=\"totalOption.align ? totalOption.align : 'left'\">{{\n (totalOption.value || totalOption.value\n === 0) ? (((totalOption.value % 1 === 0) && !totalOption.showDecimal ) ? totalOption.value :\n LodashRound(totalOption.value, totalOption.preserveNumber).toFixed(totalOption.preserveNumber)) : '' }} </td>\n </ng-container>\n </tr>\n </tbody>\n </ng-template>\n <ng-template #tableTotalTemplate>\n \u5171 {{displayLines.length}} \u6761\u6570\u636E\n </ng-template>\n </nz-table>\n</ng-container>\n",
|
|
500
|
+
styles: ["::ng-deep .common-btn-group>a{font-size:14px;font-weight:400;color:#20b95d!important;white-space:nowrap}::ng-deep .common-btn-group .common-danger-btn:hover{color:#f05b24!important}::ng-deep .common-btn-group>a:hover{color:#20bd62!important}::ng-deep .common-btn-group>a:not(:last-child)::after{content:'';margin:0 2px}::ng-deep .common-billNumber>a{color:#3b77e3}button{box-shadow:unset;text-shadow:unset}::ng-deep .ant-form-item-label>label{color:#4b504e;font-size:14px}::ng-deep .ant-input-number-input{height:32px}::ng-deep .ant-input-number{height:32px}textarea.ant-input{height:auto;min-height:32px}::ng-deep .ant-select-selection--multiple{min-height:32px}::ng-deep .ant-select-selection__rendered>ul>li{height:26px!important;margin-top:3px!important;line-height:26px!important}::ng-deep .ant-advanced-search-form .ant-form-item{margin-bottom:0!important}::ng-deep .ant-select-selection--single{height:32px!important}::ng-deep .ant-input{height:32px}::ng-deep .ant-input[disabled]:hover{border-color:#d9d9d9!important}::ng-deep .ant-select-selection__rendered{line-height:32px!important}::ng-deep .ant-calendar-range-picker-input{text-align:left!important}::ng-deep .ant-calendar-picker{width:100%!important}::ng-deep .ant-row{margin-right:0!important;margin-left:0!important}::ng-deep .ant-col-6{padding-left:12px;padding-right:12px}::ng-deep .ant-col-12{padding-left:12px;padding-right:12px}::ng-deep .ant-col-18{padding-left:12px;padding-right:12px}::ng-deep .ant-col-24{padding-left:12px;padding-right:12px}::ng-deep .ant-alert-info{background-color:#f5f8f6;border:1px solid #cfe3d4}::ng-deep .hd-table-container .ant-table-td-left-sticky,::ng-deep .hd-table-container .ant-table-td-right-sticky,::ng-deep .hd-table-container .ant-table-th-left-sticky,::ng-deep .hd-table-container .ant-table-th-right-sticky{z-index:2;transform:translateZ(0)}::ng-deep .hd-table-container .ant-table-thead>tr>th.ant-table-th-left-sticky,::ng-deep .hd-table-container .ant-table-thead>tr>th.ant-table-th-right-sticky{background:#f5f8f6!important}::ng-deep .hd-table-container .ant-table-tbody>tr>td.ant-table-td-left-sticky,::ng-deep .hd-table-container .ant-table-tbody>tr>td.ant-table-td-right-sticky{background:#fff}::ng-deep .hd-table-container .ant-table-tbody>tr.ant-table-row-hover>td.ant-table-td-left-sticky,::ng-deep .hd-table-container .ant-table-tbody>tr.ant-table-row-hover>td.ant-table-td-right-sticky,::ng-deep .hd-table-container .ant-table-tbody>tr:hover>td.ant-table-td-left-sticky,::ng-deep .hd-table-container .ant-table-tbody>tr:hover>td.ant-table-td-right-sticky{background:#ecf8f1!important}::ng-deep .hd-table-container .ant-table-scroll-position-left .ant-table-td-right-sticky,::ng-deep .hd-table-container .ant-table-scroll-position-left .ant-table-th-right-sticky,::ng-deep .hd-table-container .ant-table-scroll-position-middle .ant-table-td-right-sticky,::ng-deep .hd-table-container .ant-table-scroll-position-middle .ant-table-th-right-sticky,::ng-deep .hd-table-container .ant-table-scroll-position-right .ant-table-td-right-sticky,::ng-deep .hd-table-container .ant-table-scroll-position-right .ant-table-th-right-sticky{box-shadow:none!important}::ng-deep .hd-table-container .ant-table-fixed-right{right:0!important}:host ::ng-deep th{background:#f5f8f6!important;font-weight:700!important;white-space:nowrap;font-size:14px;font-family:PingFangSC-Medium,PingFang SC;color:#2a3634;padding:8px!important;box-sizing:border-box}:host ::ng-deep td{font-weight:400;font-style:normal;font-size:14px;color:#2a3634;text-align:left;white-space:nowrap;padding:8px!important;box-sizing:border-box}::ng-deep .ant-pagination-options{display:inline-flex;align-items:center}::ng-deep .ant-pagination-options .ant-select,::ng-deep .ant-pagination-options .ant-select-selection--single{min-width:100px}::ng-deep .ant-pagination-options-size-changer.ant-select{min-width:100px}::ng-deep .ant-time-picker{width:100%}::ng-deep .cdk-overlay-pane .hd-cascader-menus.ant-cascader-menus>.ant-cascader-menu:only-child{width:-webkit-max-content!important;width:-moz-max-content!important;width:max-content!important;min-width:var(--hd-cascader-menu-min-width,auto);max-width:560px}::ng-deep .cdk-overlay-pane .hd-cascader-menus.ant-cascader-menus>.ant-cascader-menu:only-child .ant-cascader-menu-item{white-space:nowrap}.ant-input-number-disabled,.ant-input[disabled],.ant-select-disabled{color:#4b504e}.hd-table-container ::ng-deep .ant-pagination-options-quick-jumper input{border-radius:2px;border:1px solid #d9d9d9}.hd-table-container ::ng-deep .ant-pagination-options .ant-select-selection{border-radius:2px}.hd-table-container ::ng-deep .ant-table-thead>tr>th{border-bottom:1px solid #ecf1ed}.hd-table-container ::ng-deep .ant-table-tbody>tr>td{border-bottom:1px solid #ecf1ed}.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid.ant-table-row-hover>td,.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid.ant-table-row-hover>td.ant-table-td-left-sticky,.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid.ant-table-row-hover>td.ant-table-td-right-sticky,.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid:hover>td,.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid:hover>td.ant-table-td-left-sticky,.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid:hover>td.ant-table-td-right-sticky,.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid>td,.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid>td.ant-table-td-left-sticky,.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid>td.ant-table-td-right-sticky{background:#f7f8fa!important;color:#868a9c!important}.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid .common-btn-group>a{color:#20b95d!important}.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid .common-btn-group>a:hover{color:#20bd62!important}.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid .common-btn-group .common-danger-btn:hover{color:#f05b24!important}.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid .hd-table-cell-value>a,.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid>td>a{color:#20b95d}.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid .common-billNumber>a{color:#3b77e3}.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid .hd-status-text{color:#868a9c!important}.hd-table-container ::ng-deep .hd-table-total>td{border:0!important}.hd-table-container.hd-detail-lines--scroll-x:not(.hd-detail-lines--scroll-y) ::ng-deep .ant-table-body{max-height:calc(100vh - 280px)!important;overflow-y:auto!important}.hd-table-container.hd-detail-lines--scroll-x:not(.hd-detail-lines--scroll-y).hd-detail-lines--with-search ::ng-deep .ant-table-body{max-height:calc(100vh - 320px)!important}.hd-table-container.hd-detail-lines--scroll-x:not(.hd-detail-lines--scroll-y) ::ng-deep .ant-table-thead>tr>th{position:-webkit-sticky;position:sticky;top:0;z-index:2;background:#fafafa}.hd-table-container:not(.hd-detail-lines--scroll-y):not(.hd-detail-lines--scroll-x) ::ng-deep .ant-table-body{max-height:none!important;overflow-y:visible!important}"]
|
|
500
501
|
}] }
|
|
501
502
|
];
|
|
502
503
|
/** @nocollapse */
|
|
@@ -645,4 +646,4 @@ if (false) {
|
|
|
645
646
|
*/
|
|
646
647
|
HdDetailLinesComponent.prototype.cdr;
|
|
647
648
|
}
|
|
648
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGQtZGV0YWlsLWxpbmVzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2ZhbnRhc3ktbmd6b3Jyby8iLCJzb3VyY2VzIjpbImhkLWRldGFpbC1saW5lcy9oZC1kZXRhaWwtbGluZXMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFlLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3RFLE9BQU8sRUFFTCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUlMLE1BQU0sRUFFTixXQUFXLEVBQ1gsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDL0IsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM1QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsc0JBQXNCLEVBQUUsK0JBQStCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQVE5SCxNQUFNLE9BQU8sc0JBQXNCOzs7O0lBOERqQyxZQUFvQixHQUFzQjtRQUF0QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQTFEakIsaUJBQVksR0FBWSxLQUFLLENBQUM7UUFDOUIsY0FBUyxHQUFZLEtBQUssQ0FBQztRQUMzQixlQUFVLEdBQVksS0FBSyxDQUFDOztRQUU1QyxpQkFBWSxHQUFhLEVBQUUsQ0FBQzs7Ozs7UUFLNUIsV0FBTSxHQUE4QixFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQztRQUMxRCxnQkFBVyxHQUErQixJQUFJLENBQUM7UUFDdEMsZ0JBQVcsR0FBVyxZQUFZLENBQUM7UUFZbEMsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDOztRQU1sQixjQUFTLEdBQVksS0FBSyxDQUFDO1FBQzNDLGdCQUFXLEdBQXVCLEVBQUUsQ0FBQztRQUNyQyxrQkFBYSxHQUFvQixDQUFDLENBQUM7UUFDbkMsc0JBQWlCLEdBQVksS0FBSyxDQUFDO1FBQzVDLG9CQUFlLEdBQUcsRUFBRSxDQUFDO1FBRXJCLGNBQVMsR0FBYyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ2xDLGlCQUFZLEdBQVksS0FBSyxDQUFDOztRQUU5QixtQkFBYyxHQUFXLENBQUMsQ0FBQztRQUNsQixrQkFBYSxHQUFXLEdBQUcsQ0FBQzs7UUFFckMsNEJBQXVCLEdBQUcsS0FBSyxDQUFDO1FBQ2hDLG9CQUFlLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLHNCQUFpQixHQUFHLEVBQUUsQ0FBQztRQUN2QixrQkFBYSxHQUFHLEVBQUUsQ0FBQztRQUVuQixtQkFBYyxHQUErQixFQUFFLENBQUM7UUFDaEQsbUJBQWMsR0FBMkIsRUFBRSxDQUFDOzs7O1FBRzVDLGlCQUFZLEdBQWUsRUFBRSxDQUFDOzs7O1FBRTlCLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLHVCQUFrQixHQUFRLEVBQUUsQ0FBQyxDQUFDLFlBQVk7Ozs7O1FBRTFDLGNBQVMsR0FBRyxJQUFJLENBQUM7UUFDVCxxQkFBZ0IsR0FBd0IsSUFBSSxDQUFDO0lBRVIsQ0FBQzs7OztJQUU5QyxJQUFJLGVBQWU7UUFDakIsd0NBQXdDO1FBQ3hDLHNDQUFzQztRQUN0QyxPQUFPLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzlELENBQUM7Ozs7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7UUFDL0IsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFDN0IsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN4QixDQUFDOzs7O0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyw0QkFBNEIsRUFBRSxDQUFDO0lBQ3RDLENBQUM7Ozs7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLDBCQUEwQixFQUFFLENBQUM7SUFDcEMsQ0FBQzs7Ozs7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDcEIsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUU7Z0JBQ3RCLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO2dCQUMvQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO2FBQ3RDO2lCQUFNLElBQ0wsQ0FBQyxJQUFJLENBQUMsa0JBQWtCO2dCQUN4QixJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxLQUFLLENBQUMsRUFDcEM7Z0JBQ0EsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7YUFDaEM7U0FDRjtRQUNELElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdEIsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksT0FBTyxDQUFDLGNBQWMsQ0FBQyxFQUFFO1lBQy9DLElBQUksQ0FBQyw0QkFBNEIsRUFBRSxDQUFDO1NBQ3JDO0lBQ0gsQ0FBQzs7Ozs7O0lBRU8sNEJBQTRCLENBQUMsS0FBSyxHQUFHLENBQUM7O2NBQ3RDLEtBQUssR0FBRyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7UUFDbEMsVUFBVTs7O1FBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksRUFBRTtnQkFDdkIsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7YUFDN0I7WUFDRCxJQUFJLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxDQUFDLENBQUM7O2tCQUMzQixNQUFNLEdBQ1YsQ0FBQyxJQUFJLENBQUMsZUFBZSxJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDO2dCQUNoRCxDQUFDLElBQUksQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7WUFDMUMsSUFDRSxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUk7Z0JBQ25CLEtBQUssR0FBRyxDQUFDO2dCQUNULElBQUksQ0FBQyxZQUFZO2dCQUNqQixJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sR0FBRyxDQUFDO2dCQUM1QixDQUFDLE1BQU07Z0JBQ1Asb0JBQW9CLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxFQUNqRDtnQkFDQSxJQUFJLENBQUMsNEJBQTRCLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDO2FBQzlDO1FBQ0gsQ0FBQyxHQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ1osQ0FBQzs7Ozs7SUFFTyxvQkFBb0I7UUFDMUIsSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksRUFBRTtZQUN2QixPQUFPO1NBQ1I7O2NBQ0ssT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUM7O2NBQzNELFVBQVUsR0FBRyxzQkFBc0IsQ0FDdkMsSUFBSSxDQUFDLGdCQUFnQixFQUNyQixPQUFPLENBQ1I7O2NBQ0ssS0FBSyxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtRQUM5Qyw0Q0FBNEM7UUFDNUMsSUFBSSxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxFQUFFO1lBQzNFLE9BQU87U0FDUjs7Y0FDSyxRQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztRQUMzRCxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUMvQyxJQUFJLFFBQVEsRUFBRTtZQUNaLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNwQixPQUFPO1NBQ1I7UUFDRCxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNuQyxDQUFDOzs7Ozs7SUFHTyxZQUFZO1FBQ2xCLElBQUksQ0FBQywwQkFBMEIsRUFBRSxDQUFDO1FBQ2xDLFVBQVU7OztRQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDeEIsVUFBVTs7O1lBQUMsR0FBRyxFQUFFO2dCQUNkLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO2dCQUN0QixJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO2dCQUN4QixVQUFVOzs7Z0JBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUM7WUFDckQsQ0FBQyxFQUFDLENBQUM7UUFDTCxDQUFDLEVBQUMsQ0FBQztJQUNMLENBQUM7Ozs7Ozs7SUFHTyx3QkFBd0IsQ0FBQyxLQUFLLEdBQUcsQ0FBQztRQUN4QyxJQUFJLENBQUMsMEJBQTBCLEVBQUUsQ0FBQztRQUNsQyxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDL0UsT0FBTztTQUNSOztjQUNLLE1BQU0sR0FBRywrQkFBK0IsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7UUFDckUsSUFBSSxNQUFNLEVBQUU7WUFDVixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsTUFBTSxDQUFDO1lBQy9CLE9BQU87U0FDUjtRQUNELElBQUksS0FBSyxHQUFHLENBQUMsRUFBRTtZQUNiLFVBQVU7OztZQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEdBQUUsRUFBRSxDQUFDLENBQUM7U0FDaEU7SUFDSCxDQUFDOzs7OztJQUVPLDBCQUEwQjtRQUNoQyxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUN6QixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO1NBQzlCO0lBQ0gsQ0FBQzs7Ozs7O0lBRU8sdUJBQXVCLENBQUMsTUFBbUI7O2NBQzNDLElBQUksR0FBRyxNQUFNLElBQUksSUFBSSxDQUFDLEtBQUs7UUFDakMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUN6RSxDQUFDOzs7Ozs7SUFHTyxxQkFBcUI7UUFDM0IsSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUN2QyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7WUFDL0IsT0FBTztTQUNSO1FBQ0QsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsa0JBQWtCO1lBQ3pDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7WUFDckQsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUNULENBQUM7Ozs7O0lBRU8sZ0JBQWdCO1FBQ3RCLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1FBQzFCLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1FBQzFCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLDRCQUE0QixFQUFFLENBQUM7SUFDdEMsQ0FBQzs7Ozs7SUFHRCxXQUFXO1FBQ1QsMENBQTBDO1FBQzFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUM3QyxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixJQUFJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO2dCQUNsRSxPQUFPO2FBQ1I7WUFDRCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztZQUN6QixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUN4QixPQUFPO1NBQ1I7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixJQUFJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ2xFLE9BQU87U0FDUjtRQUNELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDOztjQUNuQixXQUFXLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUU7UUFDdkQsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7O2NBRW5CLFlBQVksR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTTs7OztRQUFDLENBQUMsSUFBUyxFQUFFLEVBQUU7WUFDaEUsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO2dCQUN4RCxLQUFLLE1BQU0sSUFBSSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUU7b0JBQ3BDLElBQ0UsSUFBSSxDQUFDLElBQUksQ0FBQzt3QkFDVixJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxFQUN6RDt3QkFDQSxPQUFPLElBQUksQ0FBQztxQkFDYjtpQkFDRjtnQkFDRCxPQUFPLEtBQUssQ0FBQzthQUNkO1lBQ0QsS0FBSyxNQUFNLElBQUksSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO2dCQUNwQyxJQUNFLElBQUksQ0FBQyxJQUFJLENBQUM7b0JBQ1YsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsRUFDekQ7b0JBQ0EsT0FBTyxJQUFJLENBQUM7aUJBQ2I7YUFDRjtZQUNELE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQyxFQUFDO1FBQ0YsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztRQUM3RCxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztRQUMxQixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyw0QkFBNEIsRUFBRSxDQUFDO0lBQ3RDLENBQUM7Ozs7O0lBRU8sYUFBYTtRQUNuQixJQUNFLElBQUksQ0FBQyxZQUFZO1lBQ2pCLElBQUksQ0FBQyxhQUFhO1lBQ2xCLElBQUksQ0FBQyxZQUFZO1lBQ2pCLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUN4QjtZQUNBLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTzs7OztZQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7Z0JBQ2pDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEVBQUU7b0JBQ3JFLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQztvQkFDbkQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDO2lCQUNwRDtZQUNILENBQUMsRUFBQyxDQUFDO1lBQ0gsSUFDRSxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sS0FBSyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxNQUFNLEVBQ3BFO2dCQUNBLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxJQUFJLENBQUM7Z0JBQ3BDLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO2FBQzdCO1NBQ0Y7SUFDSCxDQUFDOzs7O0lBRUQsSUFBSSxXQUFXO1FBQ2IsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOzs7OztJQUVELElBQUksQ0FBQyxLQUE0QjtRQUMvQixlQUFlLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxLQUFLLENBQUMsYUFBYSxFQUFFLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUM1RSxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztRQUNsRSxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRTtZQUN0QixJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO1NBQ3pFO0lBQ0gsQ0FBQzs7OztJQUVELGNBQWM7UUFDWixXQUFXO1FBQ1gsSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUU7WUFDbkUsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUMxRSxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU87Ozs7WUFBQyxDQUFDLElBQUksRUFBRSxFQUFFO2dCQUNoQyxJQUFJLElBQUksQ0FBQyxXQUFXLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxXQUFXLEtBQUssQ0FBQyxDQUFDLEVBQUU7b0JBQ3BFLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUMsR0FBRzt3QkFDM0MsS0FBSyxFQUFFLElBQUksQ0FBQyxXQUFXO3dCQUN2QixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssSUFBSSxPQUFPO3dCQUM1QixXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVcsSUFBSSxLQUFLO3dCQUN0QyxjQUFjLEVBQUUsSUFBSSxDQUFDLGNBQWMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUM7d0JBQ3JFLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxJQUFJLEtBQUs7cUJBQzdCLENBQUM7aUJBQ0g7WUFDSCxDQUFDLEVBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQzs7Ozs7O0lBR0QscUJBQXFCLENBQUMsTUFBVztRQUMvQixJQUFJLENBQUMsaUJBQWlCLEdBQUcsTUFBTSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsNEJBQTRCLEVBQUUsQ0FBQztJQUN0QyxDQUFDOzs7O0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyx1QkFBdUIsR0FBRyxLQUFLLENBQUM7UUFDckMsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7UUFDN0IsSUFBSSxDQUFDLGNBQWMsR0FBRyxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLGNBQWMsR0FBRyxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDNUIsQ0FBQzs7Ozs7O0lBRUQsYUFBYSxDQUFDLFFBQWlCLEtBQUssRUFBRSxPQUFZLElBQUk7UUFDcEQsSUFBSSxJQUFJLEVBQUU7WUFDUixJQUFJLEtBQUssSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ3hDLE9BQU87YUFDUjtZQUNELElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQztZQUNwRCxJQUFJLEtBQUssRUFBRTtnQkFDVCxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztvQkFDMUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQzthQUN4RDtpQkFBTTtnQkFDTCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7b0JBQ3pDLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7YUFDdEQ7U0FDRjs7Y0FDSyxjQUFjLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU07Ozs7UUFDbEQsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxFQUN2QztRQUNELElBQUksQ0FBQyx1QkFBdUI7WUFDMUIsY0FBYyxDQUFDLE1BQU0sR0FBRyxDQUFDO2dCQUN6QixjQUFjLENBQUMsS0FBSzs7OztnQkFBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQUMsQ0FBQztRQUM5RSxJQUFJLENBQUMsZUFBZTtZQUNsQixjQUFjLENBQUMsSUFBSTs7OztZQUNqQixDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQ3RELElBQUksQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUM7UUFDckMsYUFBYTtRQUNiLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNwQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO1NBQzNEO0lBQ0gsQ0FBQzs7Ozs7SUFFRCxRQUFRLENBQUMsS0FBYztRQUNyQixJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTzs7OztRQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDdEMsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQy9CLE9BQU87YUFDUjtZQUNELElBQUksS0FBSyxFQUFFO2dCQUNULENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO29CQUMxQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO2FBQ3hEO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztvQkFDekMsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQzthQUN0RDtZQUNELElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQztRQUN0RCxDQUFDLEVBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN2QixDQUFDOzs7Ozs7SUFHRCxnQkFBZ0IsQ0FBQyxJQUFTO1FBQ3hCLE9BQU8sQ0FBQyxDQUFDLENBQ1AsSUFBSSxDQUFDLG1CQUFtQjtZQUN4QixJQUFJO1lBQ0osSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLElBQUksQ0FDeEMsQ0FBQztJQUNKLENBQUM7Ozs7OztJQUdELFlBQVksQ0FBQyxJQUFTO1FBQ3BCLE9BQU8sQ0FBQyxDQUFDLENBQ1AsSUFBSSxDQUFDLGVBQWU7WUFDcEIsSUFBSTtZQUNKLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssSUFBSSxDQUNwQyxDQUFDO0lBQ0osQ0FBQzs7O1lBM1lGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsaUJBQWlCO2dCQUMzQiwyeUlBQStDOzthQUVoRDs7OztZQXhCQyxpQkFBaUI7OzsrQkEyQmhCLFNBQVMsU0FBQyxTQUFTLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO29CQUN0QyxLQUFLOzJCQUNMLEtBQUs7d0JBQ0wsS0FBSzt5QkFDTCxLQUFLOzJCQUVMLEtBQUs7cUJBS0wsS0FBSzswQkFFTCxLQUFLOzRCQUNMLEtBQUs7a0NBS0wsS0FBSzs4QkFLTCxLQUFLOzBCQUNMLE1BQU07NkJBQ04sWUFBWSxTQUFDLGdCQUFnQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTs2QkFFaEQsWUFBWSxTQUFDLGdCQUFnQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTt3QkFHaEQsS0FBSzswQkFDTCxLQUFLOzRCQUNMLEtBQUs7Z0NBQ0wsS0FBSzs0QkFPTCxLQUFLOztBQXZDbUI7SUFBZixZQUFZLEVBQUU7OzREQUErQjtBQUM5QjtJQUFmLFlBQVksRUFBRTs7eURBQTRCO0FBQzNCO0lBQWYsWUFBWSxFQUFFOzswREFBNkI7QUEyQjVCO0lBQWYsWUFBWSxFQUFFOzt5REFBNEI7OztJQS9CcEQsa0RBQTRFOztJQUM1RSx1Q0FBMkI7O0lBQzNCLDhDQUF1RDs7SUFDdkQsMkNBQW9EOztJQUNwRCw0Q0FBcUQ7O0lBRXJELDhDQUFxQzs7Ozs7O0lBS3JDLHdDQUEwRDs7SUFDMUQsNkNBQStDOztJQUMvQyw2Q0FBNEM7O0lBQzVDLCtDQUErQjs7Ozs7O0lBSy9CLHFEQUFxQzs7Ozs7O0lBS3JDLGlEQUFpQzs7SUFDakMsNkNBQTJDOztJQUMzQyxnREFDaUM7O0lBQ2pDLGdEQUNpQzs7SUFFakMsMkNBQW9EOztJQUNwRCw2Q0FBOEM7O0lBQzlDLCtDQUE0Qzs7SUFDNUMsbURBQTRDOztJQUM1QyxpREFBcUI7O0lBRXJCLDJDQUFrQzs7SUFDbEMsOENBQThCOztJQUU5QixnREFBMkI7O0lBQzNCLCtDQUFxQzs7SUFFckMseURBQWdDOztJQUNoQyxpREFBd0I7O0lBQ3hCLG1EQUF1Qjs7SUFDdkIsK0NBQW1COztJQUNuQixpREFBZ0Q7O0lBQ2hELGdEQUFnRDs7SUFDaEQsZ0RBQTRDOztJQUM1QywyQ0FBa0I7Ozs7O0lBRWxCLDhDQUE4Qjs7Ozs7SUFFOUIsOENBQXFCOztJQUNyQixvREFBNkI7Ozs7O0lBRTdCLDJDQUFpQjs7Ozs7SUFDakIsa0RBQXFEOzs7OztJQUV6QyxxQ0FBOEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDZGtEcmFnRHJvcCwgbW92ZUl0ZW1JbkFycmF5IH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9kcmFnLWRyb3BcIjtcbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgcm91bmQgfSBmcm9tIFwibG9kYXNoXCI7XG5pbXBvcnQgeyBJbnB1dEJvb2xlYW4gfSBmcm9tIFwibmctem9ycm8tYW50ZC9jb3JlXCI7XG5pbXBvcnQgeyBOelRhYmxlQ29tcG9uZW50IH0gZnJvbSBcIm5nLXpvcnJvLWFudGQvdGFibGVcIjtcbmltcG9ydCB7IFBhZ2UgfSBmcm9tIFwiLi4vbW9kZWwvY29tbW9uLXR5cGVcIjtcbmltcG9ydCB7IG1lYXN1cmVUYWJsZUNvbFdpZHRoLCByZXNvbHZlQXV0b1RhYmxlU2Nyb2xsLCBiaW5kTnpUYWJsZUhlYWRlckJvZHlTY3JvbGxTeW5jIH0gZnJvbSBcIi4uL3V0aWxzL2hkLXRhYmxlLXNjcm9sbC51dGlsXCI7XG5pbXBvcnQgeyBUb3RhbE9wdGlvbiB9IGZyb20gXCIuL2hkLWRldGFpbC1saW5lcy5zZXJ2aWNlXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJoZC1kZXRhaWwtbGluZXNcIixcbiAgdGVtcGxhdGVVcmw6IFwiLi9oZC1kZXRhaWwtbGluZXMuY29tcG9uZW50Lmh0bWxcIixcbiAgc3R5bGVVcmxzOiBbXCIuL2hkLWRldGFpbC1saW5lcy5jb21wb25lbnQubGVzc1wiXSxcbn0pXG5leHBvcnQgY2xhc3MgSGREZXRhaWxMaW5lc0NvbXBvbmVudFxuICBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICBAVmlld0NoaWxkKFwiaGRUYWJsZVwiLCB7IHN0YXRpYzogZmFsc2UgfSkgbnpUYWJsZUNvbXBvbmVudDogTnpUYWJsZUNvbXBvbmVudDtcbiAgQElucHV0KCkgbGluZXM6IEFycmF5PGFueT47XG4gIEBJbnB1dCgpIEBJbnB1dEJvb2xlYW4oKSBzaG93U2VsZWN0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgQElucHV0Qm9vbGVhbigpIGFsbG93RHJvcDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBASW5wdXRCb29sZWFuKCkgc2hvd1NlYXJjaDogYm9vbGVhbiA9IGZhbHNlO1xuICAvLyDkuI3kvKDpgJLov5nkuKrlrZfmrrXml7bpu5jorqTkuLrmn6Xor6LmiYDmnInlrZfmrrXmmK/lkKbmnInljLnphY3nmoRcbiAgQElucHV0KCkgc2VhcmNoRmllbGRzOiBzdHJpbmdbXSA9IFtdO1xuICAvKipcbiAgICog5qiq5ZCR5rua5Yqo44CC5Y6G5Y+y6buY6K6kIGB7IHg6ICcxcHgnIH1g77yIMi4xLjI4IOWJjeS4gOebtOWmguatpO+8ie+8muW8gOWQr+aoqua7muS9huS4jemUgeatu+WIl+Wuve+8jFxuICAgKiDkuJrliqHpobXlj6/kuI3lhpkgdGgvdGQgd2lkdGjvvIznlLHlhoXlrrnoh6rpgILlupTjgILkvKAgbnVsbCDliJnmjInlrrnlmajoh6rliqjmtYvnrpfjgIJcbiAgICovXG4gIEBJbnB1dCgpIHNjcm9sbDogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHsgeDogXCIxcHhcIiB9O1xuICB0YWJsZVNjcm9sbDogeyB4Pzogc3RyaW5nOyB5Pzogc3RyaW5nIH0gPSBudWxsO1xuICBASW5wdXQoKSBzZWxlY3RGaWVsZDogc3RyaW5nID0gXCJiaWxsTnVtYmVyXCI7XG4gIEBJbnB1dCgpIHNlbGVjdGVkRmllbGQ6IHN0cmluZztcbiAgLyoqXG4gICAqIOihjOWLvumAieemgeeUqOWtl+auteWQjeOAguWumuS5ieWQjuWPluW9k+WJjeihjOivpeWtl+aute+8mlxuICAgKiDkuLogdHJ1ZSDml7bnpoHnlKjor6XooYzli77pgInvvIjlhajpgInkuZ/kvJrot7Pov4fvvInjgIJcbiAgICovXG4gIEBJbnB1dCgpIHNlbGVjdERpc2FibGVkRmllbGQ6IHN0cmluZztcbiAgLyoqXG4gICAqIOihjOWkseaViOWtl+auteWQjeOAguWumuS5ieWQjuWPluW9k+WJjeihjOivpeWtl+aute+8mlxuICAgKiDkuLogdHJ1ZSDml7bmlbTooYzog4zmma/oibLkuLogI0Y3RjhGQeOAgeaWh+WtlyAjODY4QTlD44CCXG4gICAqL1xuICBASW5wdXQoKSByb3dJbnZhbGlkRmllbGQ6IHN0cmluZztcbiAgQE91dHB1dCgpIHNlbGVjdEV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAQ29udGVudENoaWxkKFwiZGV0YWlsTGluZUhlYWRcIiwgeyBzdGF0aWM6IGZhbHNlIH0pXG4gIGRldGFpbExpbmVIZWFkOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBAQ29udGVudENoaWxkKFwiZGV0YWlsTGluZUJvZHlcIiwgeyBzdGF0aWM6IGZhbHNlIH0pXG4gIGRldGFpbExpbmVCb2R5OiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAvLyDlkIjorqHljLrln59cbiAgQElucHV0KCkgQElucHV0Qm9vbGVhbigpIHNob3dUb3RhbDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSB0b3RhbE9wdGlvbjogQXJyYXk8VG90YWxPcHRpb24+ID0gW107XG4gIEBJbnB1dCgpIGNvbHVtbnNOdW1iZXI6IG51bWJlciB8IHN0cmluZyA9IDA7XG4gIEBJbnB1dCgpIGhkRnJvbnRQYWdpbmF0aW9uOiBib29sZWFuID0gZmFsc2U7XG4gIHRvdGFsT3B0aW9uTGlzdCA9IFtdO1xuXG4gIHRhYmxlRGF0YTogUGFnZTxhbnk+ID0gbmV3IFBhZ2UoKTtcbiAgdGFibGVMb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XG4gIC8vIOihqOagvOWIhumhteWPguaVsFxuICB0YWJsZVBhZ2VJbmRleDogbnVtYmVyID0gMTtcbiAgQElucHV0KCkgdGFibGVQYWdlU2l6ZTogbnVtYmVyID0gMTAwO1xuICAvLyDooajmoLzli77pgInlj4LmlbBcbiAgaXNBbGxEaXNwbGF5RGF0YUNoZWNrZWQgPSBmYWxzZTtcbiAgaXNJbmRldGVybWluYXRlID0gZmFsc2U7XG4gIGxpc3RPZkRpc3BsYXlEYXRhID0gW107XG4gIGxpc3RPZkFsbERhdGEgPSBbXTtcbiAgbGlzdE9mU2VsZWN0aW9uOiBBcnJheTxhbnk+IHwgVGVtcGxhdGVSZWY8dm9pZD47XG4gIG1hcE9mQ2hlY2tlZElkOiB7IFtrZXk6IHN0cmluZ106IGJvb2xlYW4gfSA9IHt9O1xuICBtYXBPZkNoZWNrTGlzdDogeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9IHt9O1xuICBmaWx0ZXJTdHI6IHN0cmluZztcbiAgLyoqIOihqOagvOWunumZheWxleekuueahOaVsOaNru+8iOetm+mAiee7k+aenOaIluWFqOmHj++8iSAqL1xuICBkaXNwbGF5TGluZXM6IEFycmF5PGFueT4gPSBbXTtcbiAgLyoqIOaYr+WQpuWkhOS6juetm+mAieeKtuaAgSAqL1xuICBpc0ZpbHRlckRhdGEgPSBmYWxzZTtcbiAgc3RvcmVGb3JtTGluZXNEYXRhOiBhbnkgPSBbXTsgLy8g57yT5a2Y55qE5oC755qE5YiX6KGo5pWw5o2uXG4gIC8qKiDmjqfliLYgbnotdGFibGUg6YeN5bu677yac2Nyb2xsLnkg5LuO5peg5Yiw5pyJ5pe25b+F6aG76YeN5bu677yM5ZCm5YiZ6KGo5aS05LiN6Lef5qiq5ruaICovXG4gIHNob3dUYWJsZSA9IHRydWU7XG4gIHByaXZhdGUgdW5iaW5kQm9keVNjcm9sbDogKCgpID0+IHZvaWQpIHwgbnVsbCA9IG51bGw7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG4gIGdldCBlZmZlY3RpdmVTY3JvbGwoKTogeyB4Pzogc3RyaW5nOyB5Pzogc3RyaW5nIH0ge1xuICAgIC8vIOS4jeiHquWKqOihpSB577ya5Lia5Yqh6aG15YiX5a695aSa5Li66Ieq6YCC5bqU77yM5LiA5pem5pyJIHkg5Lya5ouG6KGo5aS0L+ihqOS9k+WvvOiHtOWIl+mUmeS9jeOAglxuICAgIC8vIOe6tea7muS6pOe7memhtemdou+8m+S7heW9k+eItue7hOS7tuaYvuW8j+S8oOS6hiBzY3JvbGwueSDml7bmiY3lkK/nlKjooajlhoXnurXmu5rjgIJcbiAgICByZXR1cm4gdGhpcy5zY3JvbGwgIT0gbnVsbCA/IHRoaXMuc2Nyb2xsIDogdGhpcy50YWJsZVNjcm9sbDtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc3luY1N0b3JlRnJvbUxpbmVzSW5wdXQoKTtcbiAgICB0aGlzLmFwcGx5RGlzcGxheUZyb21TdG9yZSgpO1xuICAgIHRoaXMuY291bnRTZWxlY3RlZCgpO1xuICAgIHRoaXMuY2FsY3VsYXRlVG90YWwoKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNjaGVkdWxlU3luY0hvcml6b250YWxTY3JvbGwoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMudW5iaW5kSGVhZGVyQm9keVNjcm9sbFN5bmMoKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlc1tcImxpbmVzXCJdKSB7XG4gICAgICBpZiAoIXRoaXMuaXNGaWx0ZXJEYXRhKSB7XG4gICAgICAgIHRoaXMuc3luY1N0b3JlRnJvbUxpbmVzSW5wdXQoKTtcbiAgICAgICAgdGhpcy5kaXNwbGF5TGluZXMgPSB0aGlzLmxpbmVzIHx8IFtdO1xuICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgIXRoaXMuc3RvcmVGb3JtTGluZXNEYXRhIHx8XG4gICAgICAgIHRoaXMuc3RvcmVGb3JtTGluZXNEYXRhLmxlbmd0aCA9PT0gMFxuICAgICAgKSB7XG4gICAgICAgIHRoaXMuc3luY1N0b3JlRnJvbUxpbmVzSW5wdXQoKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5jb3VudFNlbGVjdGVkKCk7XG4gICAgdGhpcy5jYWxjdWxhdGVUb3RhbCgpO1xuICAgIGlmIChjaGFuZ2VzW1wibGluZXNcIl0gfHwgY2hhbmdlc1tcInNob3dTZWxlY3RlZFwiXSkge1xuICAgICAgdGhpcy5zY2hlZHVsZVN5bmNIb3Jpem9udGFsU2Nyb2xsKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzY2hlZHVsZVN5bmNIb3Jpem9udGFsU2Nyb2xsKHJldHJ5ID0gMCk6IHZvaWQge1xuICAgIGNvbnN0IGRlbGF5ID0gcmV0cnkgPT09IDAgPyAwIDogNTA7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5zY3JvbGwgPT0gbnVsbCkge1xuICAgICAgICB0aGlzLnN5bmNIb3Jpem9udGFsU2Nyb2xsKCk7XG4gICAgICB9XG4gICAgICB0aGlzLmJpbmRIZWFkZXJCb2R5U2Nyb2xsU3luYygwKTtcbiAgICAgIGNvbnN0IGFmdGVyWCA9XG4gICAgICAgICh0aGlzLmVmZmVjdGl2ZVNjcm9sbCAmJiB0aGlzLmVmZmVjdGl2ZVNjcm9sbC54KSB8fFxuICAgICAgICAodGhpcy50YWJsZVNjcm9sbCAmJiB0aGlzLnRhYmxlU2Nyb2xsLngpO1xuICAgICAgaWYgKFxuICAgICAgICB0aGlzLnNjcm9sbCA9PSBudWxsICYmXG4gICAgICAgIHJldHJ5IDwgNSAmJlxuICAgICAgICB0aGlzLmRpc3BsYXlMaW5lcyAmJlxuICAgICAgICB0aGlzLmRpc3BsYXlMaW5lcy5sZW5ndGggPiAwICYmXG4gICAgICAgICFhZnRlclggJiZcbiAgICAgICAgbWVhc3VyZVRhYmxlQ29sV2lkdGgodGhpcy5uelRhYmxlQ29tcG9uZW50KSA9PT0gMFxuICAgICAgKSB7XG4gICAgICAgIHRoaXMuc2NoZWR1bGVTeW5jSG9yaXpvbnRhbFNjcm9sbChyZXRyeSArIDEpO1xuICAgICAgfVxuICAgIH0sIGRlbGF5KTtcbiAgfVxuXG4gIHByaXZhdGUgc3luY0hvcml6b250YWxTY3JvbGwoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2Nyb2xsICE9IG51bGwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgaGFzRGF0YSA9ICEhKHRoaXMuZGlzcGxheUxpbmVzICYmIHRoaXMuZGlzcGxheUxpbmVzLmxlbmd0aCk7XG4gICAgY29uc3QgbmV4dFNjcm9sbCA9IHJlc29sdmVBdXRvVGFibGVTY3JvbGwoXG4gICAgICB0aGlzLm56VGFibGVDb21wb25lbnQsXG4gICAgICBoYXNEYXRhLFxuICAgICk7XG4gICAgY29uc3QgbmV4dFggPSBuZXh0U2Nyb2xsID8gbmV4dFNjcm9sbC54IDogbnVsbDtcbiAgICAvLyDoh6rliqjmtYvnrpflj6rorr4geO+8jOS4jeiuviB577yI5LiOIDIuMS42NCDliY3kuIDoh7TvvIzpgb/lhY3ml6DliJflrr3ml7booajlpLQv6KGo5L2T6ZSZ5L2N77yJXG4gICAgaWYgKHRoaXMudGFibGVTY3JvbGwgJiYgdGhpcy50YWJsZVNjcm9sbC54ID09PSBuZXh0WCAmJiAhdGhpcy50YWJsZVNjcm9sbC55KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHByZXZIYXNZID0gISEodGhpcy50YWJsZVNjcm9sbCAmJiB0aGlzLnRhYmxlU2Nyb2xsLnkpO1xuICAgIHRoaXMudGFibGVTY3JvbGwgPSBuZXh0WCA/IHsgeDogbmV4dFggfSA6IG51bGw7XG4gICAgaWYgKHByZXZIYXNZKSB7XG4gICAgICB0aGlzLnJlbW91bnRUYWJsZSgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB0aGlzLmJpbmRIZWFkZXJCb2R5U2Nyb2xsU3luYygwKTtcbiAgfVxuXG4gIC8qKiDph43lu7ogbnotdGFibGXvvIzorqkgaGVhZGVyL2JvZHkg5rua5Yqo5ZCM5q2l5ZyoIEFmdGVyVmlld0luaXQg6YeN5paw57uR5a6aICovXG4gIHByaXZhdGUgcmVtb3VudFRhYmxlKCk6IHZvaWQge1xuICAgIHRoaXMudW5iaW5kSGVhZGVyQm9keVNjcm9sbFN5bmMoKTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuc2hvd1RhYmxlID0gZmFsc2U7XG4gICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLnNob3dUYWJsZSA9IHRydWU7XG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuYmluZEhlYWRlckJvZHlTY3JvbGxTeW5jKDApKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqIOihqOS9k+aoqua7muaXtuWQjOatpeihqOWktO+8iOWFnOW6lSBuZy16b3JybyDnm5HlkKzkuKLlpLHvvInvvJtET00g5pyq5bCx57uq5pe26YeN6K+VICovXG4gIHByaXZhdGUgYmluZEhlYWRlckJvZHlTY3JvbGxTeW5jKHJldHJ5ID0gMCk6IHZvaWQge1xuICAgIHRoaXMudW5iaW5kSGVhZGVyQm9keVNjcm9sbFN5bmMoKTtcbiAgICBpZiAoIXRoaXMubnpUYWJsZUNvbXBvbmVudCB8fCAhKHRoaXMuZWZmZWN0aXZlU2Nyb2xsICYmIHRoaXMuZWZmZWN0aXZlU2Nyb2xsLngpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHVuYmluZCA9IGJpbmROelRhYmxlSGVhZGVyQm9keVNjcm9sbFN5bmModGhpcy5uelRhYmxlQ29tcG9uZW50KTtcbiAgICBpZiAodW5iaW5kKSB7XG4gICAgICB0aGlzLnVuYmluZEJvZHlTY3JvbGwgPSB1bmJpbmQ7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChyZXRyeSA8IDgpIHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5iaW5kSGVhZGVyQm9keVNjcm9sbFN5bmMocmV0cnkgKyAxKSwgNTApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdW5iaW5kSGVhZGVyQm9keVNjcm9sbFN5bmMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMudW5iaW5kQm9keVNjcm9sbCkge1xuICAgICAgdGhpcy51bmJpbmRCb2R5U2Nyb2xsKCk7XG4gICAgICB0aGlzLnVuYmluZEJvZHlTY3JvbGwgPSBudWxsO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc3luY1N0b3JlRnJvbUxpbmVzSW5wdXQoc291cmNlPzogQXJyYXk8YW55Pik6IHZvaWQge1xuICAgIGNvbnN0IGRhdGEgPSBzb3VyY2UgfHwgdGhpcy5saW5lcztcbiAgICB0aGlzLnN0b3JlRm9ybUxpbmVzRGF0YSA9IGRhdGEgPyBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGRhdGEpKSA6IFtdO1xuICB9XG5cbiAgLyoqIOacquetm+mAieaXtuS4jueItue7hOS7tiBsaW5lcyDlkIzmupDvvIzpgb/lhY3mqKHmnb/lhoUgbmdNb2RlbCDkuI7niLbmlbDmja7ohLHoioIgKi9cbiAgcHJpdmF0ZSBhcHBseURpc3BsYXlGcm9tU3RvcmUoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMubGluZXMgJiYgdGhpcy5saW5lcy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLmRpc3BsYXlMaW5lcyA9IHRoaXMubGluZXM7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuZGlzcGxheUxpbmVzID0gdGhpcy5zdG9yZUZvcm1MaW5lc0RhdGFcbiAgICAgID8gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLnN0b3JlRm9ybUxpbmVzRGF0YSkpXG4gICAgICA6IFtdO1xuICB9XG5cbiAgcHJpdmF0ZSByZXN0b3JlRnJvbVN0b3JlKCk6IHZvaWQge1xuICAgIHRoaXMuaXNGaWx0ZXJEYXRhID0gZmFsc2U7XG4gICAgdGhpcy5hcHBseURpc3BsYXlGcm9tU3RvcmUoKTtcbiAgICB0aGlzLnRhYmxlTG9hZGluZyA9IGZhbHNlO1xuICAgIHRoaXMuY291bnRTZWxlY3RlZCgpO1xuICAgIHRoaXMuY2FsY3VsYXRlVG90YWwoKTtcbiAgICB0aGlzLnNjaGVkdWxlU3luY0hvcml6b250YWxTY3JvbGwoKTtcbiAgfVxuXG4gIC8vIOWFqOWxgOaAp+eahOaQnOe0ou+8iOa2teeblumhtemdouS4iuaJgOacieeahOWPr+inhuaWh+Wtl++8iVxuICBzZWFyY2hMaW5lcygpIHtcbiAgICAvLyDmuIXnqbrmkJzntKLvvJrljbPkvb/lvZPliY3lsZXnpLrkuLrnqbrkuZ/opoHog73ku47nvJPlrZjmgaLlpI3vvIjlr7npvZAgaGQtZm9ybS1saW5lc++8iVxuICAgIGlmICghdGhpcy5maWx0ZXJTdHIgfHwgIXRoaXMuZmlsdGVyU3RyLnRyaW0oKSkge1xuICAgICAgaWYgKCF0aGlzLnN0b3JlRm9ybUxpbmVzRGF0YSB8fCB0aGlzLnN0b3JlRm9ybUxpbmVzRGF0YS5sZW5ndGggPCAxKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHRoaXMudGFibGVMb2FkaW5nID0gdHJ1ZTtcbiAgICAgIHRoaXMucmVzdG9yZUZyb21TdG9yZSgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoIXRoaXMuc3RvcmVGb3JtTGluZXNEYXRhIHx8IHRoaXMuc3RvcmVGb3JtTGluZXNEYXRhLmxlbmd0aCA8IDEpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy50YWJsZUxvYWRpbmcgPSB0cnVlO1xuICAgIGNvbnN0IGZpbHRlclZhbHVlID0gdGhpcy5maWx0ZXJTdHIudHJpbSgpLnRvTG93ZXJDYXNlKCk7XG4gICAgdGhpcy5pc0ZpbHRlckRhdGEgPSB0cnVlO1xuXG4gICAgY29uc3QgZmlsdGVyZWREYXRhID0gdGhpcy5zdG9yZUZvcm1MaW5lc0RhdGEuZmlsdGVyKChkYXRhOiBhbnkpID0+IHtcbiAgICAgIGlmICghdGhpcy5zZWFyY2hGaWVsZHMgfHwgdGhpcy5zZWFyY2hGaWVsZHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIGZvciAoY29uc3QgaXRlbSBvZiBPYmplY3Qua2V5cyhkYXRhKSkge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIGRhdGFbaXRlbV0gJiZcbiAgICAgICAgICAgIGRhdGFbaXRlbV0udG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGZpbHRlclZhbHVlKVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIGZvciAoY29uc3QgaXRlbSBvZiB0aGlzLnNlYXJjaEZpZWxkcykge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgZGF0YVtpdGVtXSAmJlxuICAgICAgICAgIGRhdGFbaXRlbV0udG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGZpbHRlclZhbHVlKVxuICAgICAgICApIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH0pO1xuICAgIHRoaXMuZGlzcGxheUxpbmVzID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShmaWx0ZXJlZERhdGEpKTtcbiAgICB0aGlzLnRhYmxlTG9hZGluZyA9IGZhbHNlO1xuICAgIHRoaXMuY291bnRTZWxlY3RlZCgpO1xuICAgIHRoaXMuY2FsY3VsYXRlVG90YWwoKTtcbiAgICB0aGlzLnNjaGVkdWxlU3luY0hvcml6b250YWxTY3JvbGwoKTtcbiAgfVxuXG4gIHByaXZhdGUgY291bnRTZWxlY3RlZCgpOiB2b2lkIHtcbiAgICBpZiAoXG4gICAgICB0aGlzLnNob3dTZWxlY3RlZCAmJlxuICAgICAgdGhpcy5zZWxlY3RlZEZpZWxkICYmXG4gICAgICB0aGlzLmRpc3BsYXlMaW5lcyAmJlxuICAgICAgdGhpcy5kaXNwbGF5TGluZXMubGVuZ3RoXG4gICAgKSB7XG4gICAgICB0aGlzLmRpc3BsYXlMaW5lcy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgIGlmIChpdGVtW3RoaXMuc2VsZWN0ZWRGaWVsZF0gPT09IHRydWUgJiYgIXRoaXMuaXNTZWxlY3REaXNhYmxlZChpdGVtKSkge1xuICAgICAgICAgIHRoaXMubWFwT2ZDaGVja2VkSWRbaXRlbVt0aGlzLnNlbGVjdEZpZWxkXV0gPSB0cnVlO1xuICAgICAgICAgIHRoaXMubWFwT2ZDaGVja0xpc3RbaXRlbVt0aGlzLnNlbGVjdEZpZWxkXV0gPSBpdGVtO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIGlmIChcbiAgICAgICAgdGhpcy5kaXNwbGF5TGluZXMubGVuZ3RoID09PSBPYmplY3Qua2V5cyh0aGlzLm1hcE9mQ2hlY2tMaXN0KS5sZW5ndGhcbiAgICAgICkge1xuICAgICAgICB0aGlzLmlzQWxsRGlzcGxheURhdGFDaGVja2VkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5pc0luZGV0ZXJtaW5hdGUgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGdldCBMb2Rhc2hSb3VuZCgpIHtcbiAgICByZXR1cm4gcm91bmQ7XG4gIH1cblxuICBkcm9wKGV2ZW50OiBDZGtEcmFnRHJvcDxzdHJpbmdbXT4pOiB2b2lkIHtcbiAgICBtb3ZlSXRlbUluQXJyYXkodGhpcy5kaXNwbGF5TGluZXMsIGV2ZW50LnByZXZpb3VzSW5kZXgsIGV2ZW50LmN1cnJlbnRJbmRleCk7XG4gICAgdGhpcy5kaXNwbGF5TGluZXMgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuZGlzcGxheUxpbmVzKSk7XG4gICAgaWYgKCF0aGlzLmlzRmlsdGVyRGF0YSkge1xuICAgICAgdGhpcy5zdG9yZUZvcm1MaW5lc0RhdGEgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuZGlzcGxheUxpbmVzKSk7XG4gICAgfVxuICB9XG5cbiAgY2FsY3VsYXRlVG90YWwoKSB7XG4gICAgLy8g6L+Z6YeM5aSE55CG5ZCI6K6h5pWw5o2uXG4gICAgaWYgKHRoaXMuc2hvd1RvdGFsICYmIHRoaXMuZGlzcGxheUxpbmVzICYmIHRoaXMuZGlzcGxheUxpbmVzLmxlbmd0aCkge1xuICAgICAgdGhpcy50b3RhbE9wdGlvbkxpc3QgPSBuZXcgQXJyYXkoTnVtYmVyKHRoaXMuY29sdW1uc051bWJlcikgLSAxKS5maWxsKFwiXCIpO1xuICAgICAgdGhpcy50b3RhbE9wdGlvbi5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgIGlmIChpdGVtLmluc2VydEluZGV4ICYmIChpdGVtLmluc2VydFZhbHVlIHx8IGl0ZW0uaW5zZXJ0VmFsdWUgPT09IDApKSB7XG4gICAgICAgICAgdGhpcy50b3RhbE9wdGlvbkxpc3RbaXRlbS5pbnNlcnRJbmRleCAtIDFdID0ge1xuICAgICAgICAgICAgdmFsdWU6IGl0ZW0uaW5zZXJ0VmFsdWUsXG4gICAgICAgICAgICBhbGlnbjogaXRlbS5hbGlnbiB8fCBcInJpZ2h0XCIsXG4gICAgICAgICAgICBzaG93RGVjaW1hbDogaXRlbS5zaG93RGVjaW1hbCB8fCBmYWxzZSxcbiAgICAgICAgICAgIHByZXNlcnZlTnVtYmVyOiBpdGVtLnByZXNlcnZlTnVtYmVyICE9IG51bGwgPyBpdGVtLnByZXNlcnZlTnVtYmVyIDogMixcbiAgICAgICAgICAgIGlzSGlkZTogaXRlbS5pc0hpZGUgfHwgZmFsc2UsXG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLy8g6KGo5qC85Yu+6YCJ6YC76L6RXG4gIGN1cnJlbnRQYWdlRGF0YUNoYW5nZSgkZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIHRoaXMubGlzdE9mRGlzcGxheURhdGEgPSAkZXZlbnQ7XG4gICAgdGhpcy5yZWZyZXNoU3RhdHVzKCk7XG4gICAgdGhpcy5zY2hlZHVsZVN5bmNIb3Jpem9udGFsU2Nyb2xsKCk7XG4gIH1cblxuICByZXNldFN0YXR1cygpIHtcbiAgICB0aGlzLmlzQWxsRGlzcGxheURhdGFDaGVja2VkID0gZmFsc2U7XG4gICAgdGhpcy5pc0luZGV0ZXJtaW5hdGUgPSBmYWxzZTtcbiAgICB0aGlzLm1hcE9mQ2hlY2tlZElkID0ge307XG4gICAgdGhpcy5tYXBPZkNoZWNrTGlzdCA9IHt9O1xuICAgIHRoaXMuc2VsZWN0RXZlbnQuZW1pdChbXSk7XG4gIH1cblxuICByZWZyZXNoU3RhdHVzKGV2ZW50OiBib29sZWFuID0gZmFsc2UsIGRhdGE6IGFueSA9IG51bGwpOiB2b2lkIHtcbiAgICBpZiAoZGF0YSkge1xuICAgICAgaWYgKGV2ZW50ICYmIHRoaXMuaXNTZWxlY3REaXNhYmxlZChkYXRhKSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB0aGlzLm1hcE9mQ2hlY2tlZElkW2RhdGFbdGhpcy5zZWxlY3RGaWVsZF1dID0gZXZlbnQ7XG4gICAgICBpZiAoZXZlbnQpIHtcbiAgICAgICAgIXRoaXMubWFwT2ZDaGVja0xpc3RbZGF0YVt0aGlzLnNlbGVjdEZpZWxkXV0gJiZcbiAgICAgICAgICAodGhpcy5tYXBPZkNoZWNrTGlzdFtkYXRhW3RoaXMuc2VsZWN0RmllbGRdXSA9IGRhdGEpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5tYXBPZkNoZWNrTGlzdFtkYXRhW3RoaXMuc2VsZWN0RmllbGRdXSAmJlxuICAgICAgICAgIGRlbGV0ZSB0aGlzLm1hcE9mQ2hlY2tMaXN0W2RhdGFbdGhpcy5zZWxlY3RGaWVsZF1dO1xuICAgICAgfVxuICAgIH1cbiAgICBjb25zdCBzZWxlY3RhYmxlTGlzdCA9IHRoaXMubGlzdE9mRGlzcGxheURhdGEuZmlsdGVyKFxuICAgICAgKGl0ZW0pID0+ICF0aGlzLmlzU2VsZWN0RGlzYWJsZWQoaXRlbSksXG4gICAgKTtcbiAgICB0aGlzLmlzQWxsRGlzcGxheURhdGFDaGVja2VkID1cbiAgICAgIHNlbGVjdGFibGVMaXN0Lmxlbmd0aCA+IDAgJiZcbiAgICAgIHNlbGVjdGFibGVMaXN0LmV2ZXJ5KChpdGVtKSA9PiB0aGlzLm1hcE9mQ2hlY2tlZElkW2l0ZW1bdGhpcy5zZWxlY3RGaWVsZF1dKTtcbiAgICB0aGlzLmlzSW5kZXRlcm1pbmF0ZSA9XG4gICAgICBzZWxlY3RhYmxlTGlzdC5zb21lKFxuICAgICAgICAoaXRlbSkgPT4gdGhpcy5tYXBPZkNoZWNrZWRJZFtpdGVtW3RoaXMuc2VsZWN0RmllbGRdXSxcbiAgICAgICkgJiYgIXRoaXMuaXNBbGxEaXNwbGF5RGF0YUNoZWNrZWQ7XG4gICAgLy8g6Kem5Y+Rc2VsZWN05LqL5Lu2XG4gICAgaWYgKHRoaXMuc2VsZWN0RXZlbnQpIHtcbiAgICAgIHRoaXMuc2VsZWN0RXZlbnQuZW1pdChPYmplY3QudmFsdWVzKHRoaXMubWFwT2ZDaGVja0xpc3QpKTtcbiAgICB9XG4gIH1cblxuICBjaGVja0FsbCh2YWx1ZTogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMubGlzdE9mRGlzcGxheURhdGEuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgaWYgKHRoaXMuaXNTZWxlY3REaXNhYmxlZChpdGVtKSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgIXRoaXMubWFwT2ZDaGVja0xpc3RbaXRlbVt0aGlzLnNlbGVjdEZpZWxkXV0gJiZcbiAgICAgICAgICAodGhpcy5tYXBPZkNoZWNrTGlzdFtpdGVtW3RoaXMuc2VsZWN0RmllbGRdXSA9IGl0ZW0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5tYXBPZkNoZWNrTGlzdFtpdGVtW3RoaXMuc2VsZWN0RmllbGRdXSAmJlxuICAgICAgICAgIGRlbGV0ZSB0aGlzLm1hcE9mQ2hlY2tMaXN0W2l0ZW1bdGhpcy5zZWxlY3RGaWVsZF1dO1xuICAgICAgfVxuICAgICAgdGhpcy5tYXBPZkNoZWNrZWRJZFtpdGVtW3RoaXMuc2VsZWN0RmllbGRdXSA9IHZhbHVlO1xuICAgIH0pO1xuICAgIHRoaXMucmVmcmVzaFN0YXR1cygpO1xuICB9XG5cbiAgLyoqIOW9k+WJjeihjOaYr+WQpuemgeeUqOWLvumAiSAqL1xuICBpc1NlbGVjdERpc2FibGVkKGRhdGE6IGFueSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIShcbiAgICAgIHRoaXMuc2VsZWN0RGlzYWJsZWRGaWVsZCAmJlxuICAgICAgZGF0YSAmJlxuICAgICAgZGF0YVt0aGlzLnNlbGVjdERpc2FibGVkRmllbGRdID09PSB0cnVlXG4gICAgKTtcbiAgfVxuXG4gIC8qKiDlvZPliY3ooYzmmK/lkKblpLHmlYggKi9cbiAgaXNJbnZhbGlkUm93KGRhdGE6IGFueSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIShcbiAgICAgIHRoaXMucm93SW52YWxpZEZpZWxkICYmXG4gICAgICBkYXRhICYmXG4gICAgICBkYXRhW3RoaXMucm93SW52YWxpZEZpZWxkXSA9PT0gdHJ1ZVxuICAgICk7XG4gIH1cbn1cbiJdfQ==
|
|
649
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGQtZGV0YWlsLWxpbmVzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2ZhbnRhc3ktbmd6b3Jyby8iLCJzb3VyY2VzIjpbImhkLWRldGFpbC1saW5lcy9oZC1kZXRhaWwtbGluZXMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFlLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3RFLE9BQU8sRUFFTCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUlMLE1BQU0sRUFFTixXQUFXLEVBQ1gsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDL0IsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM1QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsc0JBQXNCLEVBQUUsK0JBQStCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQVE5SCxNQUFNLE9BQU8sc0JBQXNCOzs7O0lBOERqQyxZQUFvQixHQUFzQjtRQUF0QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQTFEakIsaUJBQVksR0FBWSxLQUFLLENBQUM7UUFDOUIsY0FBUyxHQUFZLEtBQUssQ0FBQztRQUMzQixlQUFVLEdBQVksS0FBSyxDQUFDOztRQUU1QyxpQkFBWSxHQUFhLEVBQUUsQ0FBQzs7Ozs7UUFLNUIsV0FBTSxHQUE4QixFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQztRQUMxRCxnQkFBVyxHQUErQixJQUFJLENBQUM7UUFDdEMsZ0JBQVcsR0FBVyxZQUFZLENBQUM7UUFZbEMsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDOztRQU1s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QTJCOztJQUMzQiw4Q0FBdUQ7O0lBQ3ZELDJDQUFvRDs7SUFDcEQsNENBQXFEOztJQUVyRCw4Q0FBcUM7Ozs7OztJQUtyQyx3Q0FBMEQ7O0lBQzFELDZDQUErQzs7SUFDL0MsNkNBQTRDOztJQUM1QywrQ0FBK0I7Ozs7OztJQUsvQixxREFBcUM7Ozs7OztJQUtyQyxpREFBaUM7O0lBQ2pDLDZDQUEyQzs7SUFDM0MsZ0RBQ2lDOztJQUNqQyxnREFDaUM7O0lBRWpDLDJDQUFvRDs7SUFDcEQsNkNBQThDOztJQUM5QywrQ0FBNEM7O0lBQzVDLG1EQUE0Qzs7SUFDNUMsaURBQXFCOztJQUVyQiwyQ0FBa0M7O0lBQ2xDLDhDQUE4Qjs7SUFFOUIsZ0RBQTJCOztJQUMzQiwrQ0FBcUM7O0lBRXJDLHlEQUFnQzs7SUFDaEMsaURBQXdCOztJQUN4QixtREFBdUI7O0lBQ3ZCLCtDQUFtQjs7SUFDbkIsaURBQWdEOztJQUNoRCxnREFBZ0Q7O0lBQ2hELGdEQUE0Qzs7SUFDNUMsMkNBQWtCOzs7OztJQUVsQiw4Q0FBOEI7Ozs7O0lBRTlCLDhDQUFxQjs7SUFDckIsb0RBQTZCOzs7OztJQUU3QiwyQ0FBaUI7Ozs7O0lBQ2pCLGtEQUFxRDs7Ozs7SUFFekMscUNBQThCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2RrRHJhZ0Ryb3AsIG1vdmVJdGVtSW5BcnJheSB9IGZyb20gXCJAYW5ndWxhci9jZGsvZHJhZy1kcm9wXCI7XG5pbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IHJvdW5kIH0gZnJvbSBcImxvZGFzaFwiO1xuaW1wb3J0IHsgSW5wdXRCb29sZWFuIH0gZnJvbSBcIm5nLXpvcnJvLWFudGQvY29yZVwiO1xuaW1wb3J0IHsgTnpUYWJsZUNvbXBvbmVudCB9IGZyb20gXCJuZy16b3Jyby1hbnRkL3RhYmxlXCI7XG5pbXBvcnQgeyBQYWdlIH0gZnJvbSBcIi4uL21vZGVsL2NvbW1vbi10eXBlXCI7XG5pbXBvcnQgeyBtZWFzdXJlVGFibGVDb2xXaWR0aCwgcmVzb2x2ZUF1dG9UYWJsZVNjcm9sbCwgYmluZE56VGFibGVIZWFkZXJCb2R5U2Nyb2xsU3luYyB9IGZyb20gXCIuLi91dGlscy9oZC10YWJsZS1zY3JvbGwudXRpbFwiO1xuaW1wb3J0IHsgVG90YWxPcHRpb24gfSBmcm9tIFwiLi9oZC1kZXRhaWwtbGluZXMuc2VydmljZVwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwiaGQtZGV0YWlsLWxpbmVzXCIsXG4gIHRlbXBsYXRlVXJsOiBcIi4vaGQtZGV0YWlsLWxpbmVzLmNvbXBvbmVudC5odG1sXCIsXG4gIHN0eWxlVXJsczogW1wiLi9oZC1kZXRhaWwtbGluZXMuY29tcG9uZW50Lmxlc3NcIl0sXG59KVxuZXhwb3J0IGNsYXNzIEhkRGV0YWlsTGluZXNDb21wb25lbnRcbiAgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgQFZpZXdDaGlsZChcImhkVGFibGVcIiwgeyBzdGF0aWM6IGZhbHNlIH0pIG56VGFibGVDb21wb25lbnQ6IE56VGFibGVDb21wb25lbnQ7XG4gIEBJbnB1dCgpIGxpbmVzOiBBcnJheTxhbnk+O1xuICBASW5wdXQoKSBASW5wdXRCb29sZWFuKCkgc2hvd1NlbGVjdGVkOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIEBJbnB1dEJvb2xlYW4oKSBhbGxvd0Ryb3A6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgQElucHV0Qm9vbGVhbigpIHNob3dTZWFyY2g6IGJvb2xlYW4gPSBmYWxzZTtcbiAgLy8g5LiN5Lyg6YCS6L+Z5Liq5a2X5q615pe26buY6K6k5Li65p+l6K+i5omA5pyJ5a2X5q615piv5ZCm5pyJ5Yy56YWN55qEXG4gIEBJbnB1dCgpIHNlYXJjaEZpZWxkczogc3RyaW5nW10gPSBbXTtcbiAgLyoqXG4gICAqIOaoquWQkea7muWKqOOAguWOhuWPsum7mOiupCBgeyB4OiAnMXB4JyB9YO+8iDIuMS4yOCDliY3kuIDnm7TlpoLmraTvvInvvJrlvIDlkK/mqKrmu5rkvYbkuI3plIHmrbvliJflrr3vvIxcbiAgICog5Lia5Yqh6aG15Y+v5LiN5YaZIHRoL3RkIHdpZHRo77yM55Sx5YaF5a656Ieq6YCC5bqU44CC5LygIG51bGwg5YiZ5oyJ5a655Zmo6Ieq5Yqo5rWL566X44CCXG4gICAqL1xuICBASW5wdXQoKSBzY3JvbGw6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7IHg6IFwiMXB4XCIgfTtcbiAgdGFibGVTY3JvbGw6IHsgeD86IHN0cmluZzsgeT86IHN0cmluZyB9ID0gbnVsbDtcbiAgQElucHV0KCkgc2VsZWN0RmllbGQ6IHN0cmluZyA9IFwiYmlsbE51bWJlclwiO1xuICBASW5wdXQoKSBzZWxlY3RlZEZpZWxkOiBzdHJpbmc7XG4gIC8qKlxuICAgKiDooYzli77pgInnpoHnlKjlrZfmrrXlkI3jgILlrprkuYnlkI7lj5blvZPliY3ooYzor6XlrZfmrrXvvJpcbiAgICog5Li6IHRydWUg5pe256aB55So6K+l6KGM5Yu+6YCJ77yI5YWo6YCJ5Lmf5Lya6Lez6L+H77yJ44CCXG4gICAqL1xuICBASW5wdXQoKSBzZWxlY3REaXNhYmxlZEZpZWxkOiBzdHJpbmc7XG4gIC8qKlxuICAgKiDooYzlpLHmlYjlrZfmrrXlkI3jgILlrprkuYnlkI7lj5blvZPliY3ooYzor6XlrZfmrrXvvJpcbiAgICog5Li6IHRydWUg5pe25pW06KGM6IOM5pmv6Imy5Li6ICNGN0Y4RkHjgIHmloflrZcgIzg2OEE5Q+OAglxuICAgKi9cbiAgQElucHV0KCkgcm93SW52YWxpZEZpZWxkOiBzdHJpbmc7XG4gIEBPdXRwdXQoKSBzZWxlY3RFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQENvbnRlbnRDaGlsZChcImRldGFpbExpbmVIZWFkXCIsIHsgc3RhdGljOiBmYWxzZSB9KVxuICBkZXRhaWxMaW5lSGVhZDogVGVtcGxhdGVSZWY8YW55PjtcbiAgQENvbnRlbnRDaGlsZChcImRldGFpbExpbmVCb2R5XCIsIHsgc3RhdGljOiBmYWxzZSB9KVxuICBkZXRhaWxMaW5lQm9keTogVGVtcGxhdGVSZWY8YW55PjtcbiAgLy8g5ZCI6K6h5Yy65Z+fXG4gIEBJbnB1dCgpIEBJbnB1dEJvb2xlYW4oKSBzaG93VG90YWw6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgdG90YWxPcHRpb246IEFycmF5PFRvdGFsT3B0aW9uPiA9IFtdO1xuICBASW5wdXQoKSBjb2x1bW5zTnVtYmVyOiBudW1iZXIgfCBzdHJpbmcgPSAwO1xuICBASW5wdXQoKSBoZEZyb250UGFnaW5hdGlvbjogYm9vbGVhbiA9IGZhbHNlO1xuICB0b3RhbE9wdGlvbkxpc3QgPSBbXTtcblxuICB0YWJsZURhdGE6IFBhZ2U8YW55PiA9IG5ldyBQYWdlKCk7XG4gIHRhYmxlTG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xuICAvLyDooajmoLzliIbpobXlj4LmlbBcbiAgdGFibGVQYWdlSW5kZXg6IG51bWJlciA9IDE7XG4gIEBJbnB1dCgpIHRhYmxlUGFnZVNpemU6IG51bWJlciA9IDEwMDtcbiAgLy8g6KGo5qC85Yu+6YCJ5Y+C5pWwXG4gIGlzQWxsRGlzcGxheURhdGFDaGVja2VkID0gZmFsc2U7XG4gIGlzSW5kZXRlcm1pbmF0ZSA9IGZhbHNlO1xuICBsaXN0T2ZEaXNwbGF5RGF0YSA9IFtdO1xuICBsaXN0T2ZBbGxEYXRhID0gW107XG4gIGxpc3RPZlNlbGVjdGlvbjogQXJyYXk8YW55PiB8IFRlbXBsYXRlUmVmPHZvaWQ+O1xuICBtYXBPZkNoZWNrZWRJZDogeyBba2V5OiBzdHJpbmddOiBib29sZWFuIH0gPSB7fTtcbiAgbWFwT2ZDaGVja0xpc3Q6IHsgW2tleTogc3RyaW5nXTogYW55IH0gPSB7fTtcbiAgZmlsdGVyU3RyOiBzdHJpbmc7XG4gIC8qKiDooajmoLzlrp7pmYXlsZXnpLrnmoTmlbDmja7vvIjnrZvpgInnu5PmnpzmiJblhajph4/vvIkgKi9cbiAgZGlzcGxheUxpbmVzOiBBcnJheTxhbnk+ID0gW107XG4gIC8qKiDmmK/lkKblpITkuo7nrZvpgInnirbmgIEgKi9cbiAgaXNGaWx0ZXJEYXRhID0gZmFsc2U7XG4gIHN0b3JlRm9ybUxpbmVzRGF0YTogYW55ID0gW107IC8vIOe8k+WtmOeahOaAu+eahOWIl+ihqOaVsOaNrlxuICAvKiog5o6n5Yi2IG56LXRhYmxlIOmHjeW7uu+8mnNjcm9sbC55IOS7juaXoOWIsOacieaXtuW/hemhu+mHjeW7uu+8jOWQpuWImeihqOWktOS4jei3n+aoqua7miAqL1xuICBzaG93VGFibGUgPSB0cnVlO1xuICBwcml2YXRlIHVuYmluZEJvZHlTY3JvbGw6ICgoKSA9PiB2b2lkKSB8IG51bGwgPSBudWxsO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICBnZXQgZWZmZWN0aXZlU2Nyb2xsKCk6IHsgeD86IHN0cmluZzsgeT86IHN0cmluZyB9IHtcbiAgICAvLyDkuI3oh6rliqjooaUgbnpTY3JvbGwuee+8muaciSB5IOS8muaLhuihqOWktC/ooajkvZPvvIzml6DliJflrr3ml7bliJfplJnkvY3jgIJcbiAgICAvLyDku4XmnIkgeCDml7bnmoTnurXmu5rnlLEgbGVzc++8iG1heC1oZWlnaHQgKyBvdmVyZmxvdy1577yJ5om/5ouF77yM6KGo5aS0IHN0aWNreeOAglxuICAgIC8vIOS7heW9k+eItue7hOS7tuaYvuW8j+S8oOS6hiBzY3JvbGwueSDml7bmiY3otbAgbnotdGFibGUg5YiG5L2T57q15rua44CCXG4gICAgcmV0dXJuIHRoaXMuc2Nyb2xsICE9IG51bGwgPyB0aGlzLnNjcm9sbCA6IHRoaXMudGFibGVTY3JvbGw7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnN5bmNTdG9yZUZyb21MaW5lc0lucHV0KCk7XG4gICAgdGhpcy5hcHBseURpc3BsYXlGcm9tU3RvcmUoKTtcbiAgICB0aGlzLmNvdW50U2VsZWN0ZWQoKTtcbiAgICB0aGlzLmNhbGN1bGF0ZVRvdGFsKCk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zY2hlZHVsZVN5bmNIb3Jpem9udGFsU2Nyb2xsKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnVuYmluZEhlYWRlckJvZHlTY3JvbGxTeW5jKCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbXCJsaW5lc1wiXSkge1xuICAgICAgaWYgKCF0aGlzLmlzRmlsdGVyRGF0YSkge1xuICAgICAgICB0aGlzLnN5bmNTdG9yZUZyb21MaW5lc0lucHV0KCk7XG4gICAgICAgIHRoaXMuZGlzcGxheUxpbmVzID0gdGhpcy5saW5lcyB8fCBbXTtcbiAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICF0aGlzLnN0b3JlRm9ybUxpbmVzRGF0YSB8fFxuICAgICAgICB0aGlzLnN0b3JlRm9ybUxpbmVzRGF0YS5sZW5ndGggPT09IDBcbiAgICAgICkge1xuICAgICAgICB0aGlzLnN5bmNTdG9yZUZyb21MaW5lc0lucHV0KCk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuY291bnRTZWxlY3RlZCgpO1xuICAgIHRoaXMuY2FsY3VsYXRlVG90YWwoKTtcbiAgICBpZiAoY2hhbmdlc1tcImxpbmVzXCJdIHx8IGNoYW5nZXNbXCJzaG93U2VsZWN0ZWRcIl0pIHtcbiAgICAgIHRoaXMuc2NoZWR1bGVTeW5jSG9yaXpvbnRhbFNjcm9sbCgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2NoZWR1bGVTeW5jSG9yaXpvbnRhbFNjcm9sbChyZXRyeSA9IDApOiB2b2lkIHtcbiAgICBjb25zdCBkZWxheSA9IHJldHJ5ID09PSAwID8gMCA6IDUwO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuc2Nyb2xsID09IG51bGwpIHtcbiAgICAgICAgdGhpcy5zeW5jSG9yaXpvbnRhbFNjcm9sbCgpO1xuICAgICAgfVxuICAgICAgdGhpcy5iaW5kSGVhZGVyQm9keVNjcm9sbFN5bmMoMCk7XG4gICAgICBjb25zdCBhZnRlclggPVxuICAgICAgICAodGhpcy5lZmZlY3RpdmVTY3JvbGwgJiYgdGhpcy5lZmZlY3RpdmVTY3JvbGwueCkgfHxcbiAgICAgICAgKHRoaXMudGFibGVTY3JvbGwgJiYgdGhpcy50YWJsZVNjcm9sbC54KTtcbiAgICAgIGlmIChcbiAgICAgICAgdGhpcy5zY3JvbGwgPT0gbnVsbCAmJlxuICAgICAgICByZXRyeSA8IDUgJiZcbiAgICAgICAgdGhpcy5kaXNwbGF5TGluZXMgJiZcbiAgICAgICAgdGhpcy5kaXNwbGF5TGluZXMubGVuZ3RoID4gMCAmJlxuICAgICAgICAhYWZ0ZXJYICYmXG4gICAgICAgIG1lYXN1cmVUYWJsZUNvbFdpZHRoKHRoaXMubnpUYWJsZUNvbXBvbmVudCkgPT09IDBcbiAgICAgICkge1xuICAgICAgICB0aGlzLnNjaGVkdWxlU3luY0hvcml6b250YWxTY3JvbGwocmV0cnkgKyAxKTtcbiAgICAgIH1cbiAgICB9LCBkZWxheSk7XG4gIH1cblxuICBwcml2YXRlIHN5bmNIb3Jpem9udGFsU2Nyb2xsKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnNjcm9sbCAhPSBudWxsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGhhc0RhdGEgPSAhISh0aGlzLmRpc3BsYXlMaW5lcyAmJiB0aGlzLmRpc3BsYXlMaW5lcy5sZW5ndGgpO1xuICAgIGNvbnN0IG5leHRTY3JvbGwgPSByZXNvbHZlQXV0b1RhYmxlU2Nyb2xsKFxuICAgICAgdGhpcy5uelRhYmxlQ29tcG9uZW50LFxuICAgICAgaGFzRGF0YSxcbiAgICApO1xuICAgIGNvbnN0IG5leHRYID0gbmV4dFNjcm9sbCA/IG5leHRTY3JvbGwueCA6IG51bGw7XG4gICAgLy8g6Ieq5Yqo5rWL566X5Y+q6K6+IHjvvIzkuI3orr4gee+8iOS4jiAyLjEuNjQg5YmN5LiA6Ie077yM6YG/5YWN5peg5YiX5a695pe26KGo5aS0L+ihqOS9k+mUmeS9je+8iVxuICAgIGlmICh0aGlzLnRhYmxlU2Nyb2xsICYmIHRoaXMudGFibGVTY3JvbGwueCA9PT0gbmV4dFggJiYgIXRoaXMudGFibGVTY3JvbGwueSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBwcmV2SGFzWSA9ICEhKHRoaXMudGFibGVTY3JvbGwgJiYgdGhpcy50YWJsZVNjcm9sbC55KTtcbiAgICB0aGlzLnRhYmxlU2Nyb2xsID0gbmV4dFggPyB7IHg6IG5leHRYIH0gOiBudWxsO1xuICAgIGlmIChwcmV2SGFzWSkge1xuICAgICAgdGhpcy5yZW1vdW50VGFibGUoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgdGhpcy5iaW5kSGVhZGVyQm9keVNjcm9sbFN5bmMoMCk7XG4gIH1cblxuICAvKiog6YeN5bu6IG56LXRhYmxl77yM6K6pIGhlYWRlci9ib2R5IOa7muWKqOWQjOatpeWcqCBBZnRlclZpZXdJbml0IOmHjeaWsOe7keWumiAqL1xuICBwcml2YXRlIHJlbW91bnRUYWJsZSgpOiB2b2lkIHtcbiAgICB0aGlzLnVuYmluZEhlYWRlckJvZHlTY3JvbGxTeW5jKCk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnNob3dUYWJsZSA9IGZhbHNlO1xuICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5zaG93VGFibGUgPSB0cnVlO1xuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmJpbmRIZWFkZXJCb2R5U2Nyb2xsU3luYygwKSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKiDooajkvZPmqKrmu5rml7blkIzmraXooajlpLTvvIjlhZzlupUgbmctem9ycm8g55uR5ZCs5Lii5aSx77yJ77ybRE9NIOacquWwsee7quaXtumHjeivlSAqL1xuICBwcml2YXRlIGJpbmRIZWFkZXJCb2R5U2Nyb2xsU3luYyhyZXRyeSA9IDApOiB2b2lkIHtcbiAgICB0aGlzLnVuYmluZEhlYWRlckJvZHlTY3JvbGxTeW5jKCk7XG4gICAgaWYgKCF0aGlzLm56VGFibGVDb21wb25lbnQgfHwgISh0aGlzLmVmZmVjdGl2ZVNjcm9sbCAmJiB0aGlzLmVmZmVjdGl2ZVNjcm9sbC54KSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCB1bmJpbmQgPSBiaW5kTnpUYWJsZUhlYWRlckJvZHlTY3JvbGxTeW5jKHRoaXMubnpUYWJsZUNvbXBvbmVudCk7XG4gICAgaWYgKHVuYmluZCkge1xuICAgICAgdGhpcy51bmJpbmRCb2R5U2Nyb2xsID0gdW5iaW5kO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAocmV0cnkgPCA4KSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuYmluZEhlYWRlckJvZHlTY3JvbGxTeW5jKHJldHJ5ICsgMSksIDUwKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHVuYmluZEhlYWRlckJvZHlTY3JvbGxTeW5jKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnVuYmluZEJvZHlTY3JvbGwpIHtcbiAgICAgIHRoaXMudW5iaW5kQm9keVNjcm9sbCgpO1xuICAgICAgdGhpcy51bmJpbmRCb2R5U2Nyb2xsID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHN5bmNTdG9yZUZyb21MaW5lc0lucHV0KHNvdXJjZT86IEFycmF5PGFueT4pOiB2b2lkIHtcbiAgICBjb25zdCBkYXRhID0gc291cmNlIHx8IHRoaXMubGluZXM7XG4gICAgdGhpcy5zdG9yZUZvcm1MaW5lc0RhdGEgPSBkYXRhID8gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShkYXRhKSkgOiBbXTtcbiAgfVxuXG4gIC8qKiDmnKrnrZvpgInml7bkuI7niLbnu4Tku7YgbGluZXMg5ZCM5rqQ77yM6YG/5YWN5qih5p2/5YaFIG5nTW9kZWwg5LiO54i25pWw5o2u6ISx6IqCICovXG4gIHByaXZhdGUgYXBwbHlEaXNwbGF5RnJvbVN0b3JlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmxpbmVzICYmIHRoaXMubGluZXMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5kaXNwbGF5TGluZXMgPSB0aGlzLmxpbmVzO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmRpc3BsYXlMaW5lcyA9IHRoaXMuc3RvcmVGb3JtTGluZXNEYXRhXG4gICAgICA/IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5zdG9yZUZvcm1MaW5lc0RhdGEpKVxuICAgICAgOiBbXTtcbiAgfVxuXG4gIHByaXZhdGUgcmVzdG9yZUZyb21TdG9yZSgpOiB2b2lkIHtcbiAgICB0aGlzLmlzRmlsdGVyRGF0YSA9IGZhbHNlO1xuICAgIHRoaXMuYXBwbHlEaXNwbGF5RnJvbVN0b3JlKCk7XG4gICAgdGhpcy50YWJsZUxvYWRpbmcgPSBmYWxzZTtcbiAgICB0aGlzLmNvdW50U2VsZWN0ZWQoKTtcbiAgICB0aGlzLmNhbGN1bGF0ZVRvdGFsKCk7XG4gICAgdGhpcy5zY2hlZHVsZVN5bmNIb3Jpem9udGFsU2Nyb2xsKCk7XG4gIH1cblxuICAvLyDlhajlsYDmgKfnmoTmkJzntKLvvIjmtrXnm5bpobXpnaLkuIrmiYDmnInnmoTlj6/op4bmloflrZfvvIlcbiAgc2VhcmNoTGluZXMoKSB7XG4gICAgLy8g5riF56m65pCc57Si77ya5Y2z5L2/5b2T5YmN5bGV56S65Li656m65Lmf6KaB6IO95LuO57yT5a2Y5oGi5aSN77yI5a+56b2QIGhkLWZvcm0tbGluZXPvvIlcbiAgICBpZiAoIXRoaXMuZmlsdGVyU3RyIHx8ICF0aGlzLmZpbHRlclN0ci50cmltKCkpIHtcbiAgICAgIGlmICghdGhpcy5zdG9yZUZvcm1MaW5lc0RhdGEgfHwgdGhpcy5zdG9yZUZvcm1MaW5lc0RhdGEubGVuZ3RoIDwgMSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB0aGlzLnRhYmxlTG9hZGluZyA9IHRydWU7XG4gICAgICB0aGlzLnJlc3RvcmVGcm9tU3RvcmUoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKCF0aGlzLnN0b3JlRm9ybUxpbmVzRGF0YSB8fCB0aGlzLnN0b3JlRm9ybUxpbmVzRGF0YS5sZW5ndGggPCAxKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMudGFibGVMb2FkaW5nID0gdHJ1ZTtcbiAgICBjb25zdCBmaWx0ZXJWYWx1ZSA9IHRoaXMuZmlsdGVyU3RyLnRyaW0oKS50b0xvd2VyQ2FzZSgpO1xuICAgIHRoaXMuaXNGaWx0ZXJEYXRhID0gdHJ1ZTtcblxuICAgIGNvbnN0IGZpbHRlcmVkRGF0YSA9IHRoaXMuc3RvcmVGb3JtTGluZXNEYXRhLmZpbHRlcigoZGF0YTogYW55KSA9PiB7XG4gICAgICBpZiAoIXRoaXMuc2VhcmNoRmllbGRzIHx8IHRoaXMuc2VhcmNoRmllbGRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgT2JqZWN0LmtleXMoZGF0YSkpIHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBkYXRhW2l0ZW1dICYmXG4gICAgICAgICAgICBkYXRhW2l0ZW1dLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhmaWx0ZXJWYWx1ZSlcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgdGhpcy5zZWFyY2hGaWVsZHMpIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIGRhdGFbaXRlbV0gJiZcbiAgICAgICAgICBkYXRhW2l0ZW1dLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhmaWx0ZXJWYWx1ZSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9KTtcbiAgICB0aGlzLmRpc3BsYXlMaW5lcyA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoZmlsdGVyZWREYXRhKSk7XG4gICAgdGhpcy50YWJsZUxvYWRpbmcgPSBmYWxzZTtcbiAgICB0aGlzLmNvdW50U2VsZWN0ZWQoKTtcbiAgICB0aGlzLmNhbGN1bGF0ZVRvdGFsKCk7XG4gICAgdGhpcy5zY2hlZHVsZVN5bmNIb3Jpem9udGFsU2Nyb2xsKCk7XG4gIH1cblxuICBwcml2YXRlIGNvdW50U2VsZWN0ZWQoKTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgdGhpcy5zaG93U2VsZWN0ZWQgJiZcbiAgICAgIHRoaXMuc2VsZWN0ZWRGaWVsZCAmJlxuICAgICAgdGhpcy5kaXNwbGF5TGluZXMgJiZcbiAgICAgIHRoaXMuZGlzcGxheUxpbmVzLmxlbmd0aFxuICAgICkge1xuICAgICAgdGhpcy5kaXNwbGF5TGluZXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICBpZiAoaXRlbVt0aGlzLnNlbGVjdGVkRmllbGRdID09PSB0cnVlICYmICF0aGlzLmlzU2VsZWN0RGlzYWJsZWQoaXRlbSkpIHtcbiAgICAgICAgICB0aGlzLm1hcE9mQ2hlY2tlZElkW2l0ZW1bdGhpcy5zZWxlY3RGaWVsZF1dID0gdHJ1ZTtcbiAgICAgICAgICB0aGlzLm1hcE9mQ2hlY2tMaXN0W2l0ZW1bdGhpcy5zZWxlY3RGaWVsZF1dID0gaXRlbTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICBpZiAoXG4gICAgICAgIHRoaXMuZGlzcGxheUxpbmVzLmxlbmd0aCA9PT0gT2JqZWN0LmtleXModGhpcy5tYXBPZkNoZWNrTGlzdCkubGVuZ3RoXG4gICAgICApIHtcbiAgICAgICAgdGhpcy5pc0FsbERpc3BsYXlEYXRhQ2hlY2tlZCA9IHRydWU7XG4gICAgICAgIHRoaXMuaXNJbmRldGVybWluYXRlID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBnZXQgTG9kYXNoUm91bmQoKSB7XG4gICAgcmV0dXJuIHJvdW5kO1xuICB9XG5cbiAgZHJvcChldmVudDogQ2RrRHJhZ0Ryb3A8c3RyaW5nW10+KTogdm9pZCB7XG4gICAgbW92ZUl0ZW1JbkFycmF5KHRoaXMuZGlzcGxheUxpbmVzLCBldmVudC5wcmV2aW91c0luZGV4LCBldmVudC5jdXJyZW50SW5kZXgpO1xuICAgIHRoaXMuZGlzcGxheUxpbmVzID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLmRpc3BsYXlMaW5lcykpO1xuICAgIGlmICghdGhpcy5pc0ZpbHRlckRhdGEpIHtcbiAgICAgIHRoaXMuc3RvcmVGb3JtTGluZXNEYXRhID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLmRpc3BsYXlMaW5lcykpO1xuICAgIH1cbiAgfVxuXG4gIGNhbGN1bGF0ZVRvdGFsKCkge1xuICAgIC8vIOi/memHjOWkhOeQhuWQiOiuoeaVsOaNrlxuICAgIGlmICh0aGlzLnNob3dUb3RhbCAmJiB0aGlzLmRpc3BsYXlMaW5lcyAmJiB0aGlzLmRpc3BsYXlMaW5lcy5sZW5ndGgpIHtcbiAgICAgIHRoaXMudG90YWxPcHRpb25MaXN0ID0gbmV3IEFycmF5KE51bWJlcih0aGlzLmNvbHVtbnNOdW1iZXIpIC0gMSkuZmlsbChcIlwiKTtcbiAgICAgIHRoaXMudG90YWxPcHRpb24uZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICBpZiAoaXRlbS5pbnNlcnRJbmRleCAmJiAoaXRlbS5pbnNlcnRWYWx1ZSB8fCBpdGVtLmluc2VydFZhbHVlID09PSAwKSkge1xuICAgICAgICAgIHRoaXMudG90YWxPcHRpb25MaXN0W2l0ZW0uaW5zZXJ0SW5kZXggLSAxXSA9IHtcbiAgICAgICAgICAgIHZhbHVlOiBpdGVtLmluc2VydFZhbHVlLFxuICAgICAgICAgICAgYWxpZ246IGl0ZW0uYWxpZ24gfHwgXCJyaWdodFwiLFxuICAgICAgICAgICAgc2hvd0RlY2ltYWw6IGl0ZW0uc2hvd0RlY2ltYWwgfHwgZmFsc2UsXG4gICAgICAgICAgICBwcmVzZXJ2ZU51bWJlcjogaXRlbS5wcmVzZXJ2ZU51bWJlciAhPSBudWxsID8gaXRlbS5wcmVzZXJ2ZU51bWJlciA6IDIsXG4gICAgICAgICAgICBpc0hpZGU6IGl0ZW0uaXNIaWRlIHx8IGZhbHNlLFxuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8vIOihqOagvOWLvumAiemAu+i+kVxuICBjdXJyZW50UGFnZURhdGFDaGFuZ2UoJGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLmxpc3RPZkRpc3BsYXlEYXRhID0gJGV2ZW50O1xuICAgIHRoaXMucmVmcmVzaFN0YXR1cygpO1xuICAgIHRoaXMuc2NoZWR1bGVTeW5jSG9yaXpvbnRhbFNjcm9sbCgpO1xuICB9XG5cbiAgcmVzZXRTdGF0dXMoKSB7XG4gICAgdGhpcy5pc0FsbERpc3BsYXlEYXRhQ2hlY2tlZCA9IGZhbHNlO1xuICAgIHRoaXMuaXNJbmRldGVybWluYXRlID0gZmFsc2U7XG4gICAgdGhpcy5tYXBPZkNoZWNrZWRJZCA9IHt9O1xuICAgIHRoaXMubWFwT2ZDaGVja0xpc3QgPSB7fTtcbiAgICB0aGlzLnNlbGVjdEV2ZW50LmVtaXQoW10pO1xuICB9XG5cbiAgcmVmcmVzaFN0YXR1cyhldmVudDogYm9vbGVhbiA9IGZhbHNlLCBkYXRhOiBhbnkgPSBudWxsKTogdm9pZCB7XG4gICAgaWYgKGRhdGEpIHtcbiAgICAgIGlmIChldmVudCAmJiB0aGlzLmlzU2VsZWN0RGlzYWJsZWQoZGF0YSkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdGhpcy5tYXBPZkNoZWNrZWRJZFtkYXRhW3RoaXMuc2VsZWN0RmllbGRdXSA9IGV2ZW50O1xuICAgICAgaWYgKGV2ZW50KSB7XG4gICAgICAgICF0aGlzLm1hcE9mQ2hlY2tMaXN0W2RhdGFbdGhpcy5zZWxlY3RGaWVsZF1dICYmXG4gICAgICAgICAgKHRoaXMubWFwT2ZDaGVja0xpc3RbZGF0YVt0aGlzLnNlbGVjdEZpZWxkXV0gPSBkYXRhKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMubWFwT2ZDaGVja0xpc3RbZGF0YVt0aGlzLnNlbGVjdEZpZWxkXV0gJiZcbiAgICAgICAgICBkZWxldGUgdGhpcy5tYXBPZkNoZWNrTGlzdFtkYXRhW3RoaXMuc2VsZWN0RmllbGRdXTtcbiAgICAgIH1cbiAgICB9XG4gICAgY29uc3Qgc2VsZWN0YWJsZUxpc3QgPSB0aGlzLmxpc3RPZkRpc3BsYXlEYXRhLmZpbHRlcihcbiAgICAgIChpdGVtKSA9PiAhdGhpcy5pc1NlbGVjdERpc2FibGVkKGl0ZW0pLFxuICAgICk7XG4gICAgdGhpcy5pc0FsbERpc3BsYXlEYXRhQ2hlY2tlZCA9XG4gICAgICBzZWxlY3RhYmxlTGlzdC5sZW5ndGggPiAwICYmXG4gICAgICBzZWxlY3RhYmxlTGlzdC5ldmVyeSgoaXRlbSkgPT4gdGhpcy5tYXBPZkNoZWNrZWRJZFtpdGVtW3RoaXMuc2VsZWN0RmllbGRdXSk7XG4gICAgdGhpcy5pc0luZGV0ZXJtaW5hdGUgPVxuICAgICAgc2VsZWN0YWJsZUxpc3Quc29tZShcbiAgICAgICAgKGl0ZW0pID0+IHRoaXMubWFwT2ZDaGVja2VkSWRbaXRlbVt0aGlzLnNlbGVjdEZpZWxkXV0sXG4gICAgICApICYmICF0aGlzLmlzQWxsRGlzcGxheURhdGFDaGVja2VkO1xuICAgIC8vIOinpuWPkXNlbGVjdOS6i+S7tlxuICAgIGlmICh0aGlzLnNlbGVjdEV2ZW50KSB7XG4gICAgICB0aGlzLnNlbGVjdEV2ZW50LmVtaXQoT2JqZWN0LnZhbHVlcyh0aGlzLm1hcE9mQ2hlY2tMaXN0KSk7XG4gICAgfVxuICB9XG5cbiAgY2hlY2tBbGwodmFsdWU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmxpc3RPZkRpc3BsYXlEYXRhLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgIGlmICh0aGlzLmlzU2VsZWN0RGlzYWJsZWQoaXRlbSkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICF0aGlzLm1hcE9mQ2hlY2tMaXN0W2l0ZW1bdGhpcy5zZWxlY3RGaWVsZF1dICYmXG4gICAgICAgICAgKHRoaXMubWFwT2ZDaGVja0xpc3RbaXRlbVt0aGlzLnNlbGVjdEZpZWxkXV0gPSBpdGVtKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMubWFwT2ZDaGVja0xpc3RbaXRlbVt0aGlzLnNlbGVjdEZpZWxkXV0gJiZcbiAgICAgICAgICBkZWxldGUgdGhpcy5tYXBPZkNoZWNrTGlzdFtpdGVtW3RoaXMuc2VsZWN0RmllbGRdXTtcbiAgICAgIH1cbiAgICAgIHRoaXMubWFwT2ZDaGVja2VkSWRbaXRlbVt0aGlzLnNlbGVjdEZpZWxkXV0gPSB2YWx1ZTtcbiAgICB9KTtcbiAgICB0aGlzLnJlZnJlc2hTdGF0dXMoKTtcbiAgfVxuXG4gIC8qKiDlvZPliY3ooYzmmK/lkKbnpoHnlKjli77pgIkgKi9cbiAgaXNTZWxlY3REaXNhYmxlZChkYXRhOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISEoXG4gICAgICB0aGlzLnNlbGVjdERpc2FibGVkRmllbGQgJiZcbiAgICAgIGRhdGEgJiZcbiAgICAgIGRhdGFbdGhpcy5zZWxlY3REaXNhYmxlZEZpZWxkXSA9PT0gdHJ1ZVxuICAgICk7XG4gIH1cblxuICAvKiog5b2T5YmN6KGM5piv5ZCm5aSx5pWIICovXG4gIGlzSW52YWxpZFJvdyhkYXRhOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISEoXG4gICAgICB0aGlzLnJvd0ludmFsaWRGaWVsZCAmJlxuICAgICAgZGF0YSAmJlxuICAgICAgZGF0YVt0aGlzLnJvd0ludmFsaWRGaWVsZF0gPT09IHRydWVcbiAgICApO1xuICB9XG59XG4iXX0=
|
|
@@ -625,7 +625,7 @@ HdDetailLinesPageComponent.decorators = [
|
|
|
625
625
|
{ type: Component, args: [{
|
|
626
626
|
selector: "hd-detail-lines-page",
|
|
627
627
|
template: "<ng-container>\n <nz-table\n *ngIf=\"showTable\"\n #hdTable\n class=\"hd-table-container\"\n [class.hd-detail-lines-page--virtual]=\"useVirtualScroll\"\n [class.hd-detail-lines-page--scroll-y]=\"!!(resolvedScroll && resolvedScroll.y)\"\n [class.hd-detail-lines-page--scroll-x]=\"!!(resolvedScroll && resolvedScroll.x)\"\n [nzScroll]=\"resolvedScroll\"\n nzShowSizeChanger\n nzShowQuickJumper\n nzFrontPagination=\"false\"\n nzSize=\"middle\"\n [nzData]=\"displayLines\"\n [nzTotal]=\"totalCount\"\n [(nzPageIndex)]=\"tablePageIndex\"\n [(nzPageSize)]=\"tablePageSize\"\n [nzLoading]=\"tableLoading\"\n [nzPageSizeOptions]=\"[ 10, 50, 100, 200, 500, 1000 ]\"\n (nzPageIndexChange)=\"onPageIndexChange($event)\"\n (nzPageSizeChange)=\"onPageSizeChange($event)\"\n [nzShowTotal]=\"tableTotalTemplate\"\n (nzCurrentPageDataChange)=\"showSelected ? currentPageDataChange($event) : null\"\n [nzVirtualScroll]=\"useVirtualScroll\"\n [nzVirtualItemSize]=\"useVirtualScroll ? effectiveVirtualItemSize : 0\"\n [nzVirtualForTrackBy]=\"virtualTrackByRow\"\n >\n <thead>\n <tr>\n <th *ngIf=\"showSelected\" nzWidth=\"40px\" nzLeft=\"0px\" nzShowCheckbox [(nzChecked)]=\"isAllDisplayDataChecked\"\n [nzIndeterminate]=\"isIndeterminate\" (nzCheckedChange)=\"checkAll($event)\"></th>\n <ng-container *ngTemplateOutlet=\"detailLineHead\"></ng-container>\n </tr>\n </thead>\n <tbody *ngIf=\"!allowDrop;else allowDropTemplate\">\n <ng-template *ngIf=\"useVirtualScroll\" nz-virtual-scroll let-data let-index=\"index\">\n <tr class=\"hd-detail-lines-page-virtual-row\" [class.hd-table-row-invalid]=\"isInvalidRow(data)\">\n <td *ngIf=\"showSelected\" nzWidth=\"40px\" nzLeft=\"0px\" nzShowCheckbox\n [nzChecked]=\"mapOfCheckedId[data[selectField]]\" [nzDisabled]=\"isSelectDisabled(data)\"\n (nzCheckedChange)=\"refreshStatus($event, data)\"></td>\n <ng-container\n *ngTemplateOutlet=\"detailLineBody;context:{$implicit: data, index: getRowIndex(index)}\"></ng-container>\n </tr>\n </ng-template>\n <ng-container *ngIf=\"!useVirtualScroll\">\n <tr *ngFor=\"let data of hdTable.data;index as i\" [class.hd-table-row-invalid]=\"isInvalidRow(data)\">\n <td *ngIf=\"showSelected\" nzWidth=\"40px\" nzLeft=\"0px\" nzShowCheckbox\n [nzChecked]=\"mapOfCheckedId[data[selectField]]\" [nzDisabled]=\"isSelectDisabled(data)\"\n (nzCheckedChange)=\"refreshStatus($event, data)\"></td>\n <ng-container\n *ngTemplateOutlet=\"detailLineBody;context:{$implicit: data, index: getRowIndex(i)}\"></ng-container>\n </tr>\n <tr *ngIf=\"showTotal\" class=\"hd-table-total\">\n <td *ngIf=\"showSelected\"></td>\n <td>\u5408\u8BA1</td>\n <ng-container *ngFor=\"let totalOption of totalOptionList\">\n <td *ngIf=\"!totalOption.isHide\" [nzAlign]=\"totalOption.align ? totalOption.align : 'left'\">{{\n (totalOption.value || totalOption.value ===\n 0) ? (((totalOption.value % 1 === 0) && !totalOption.showDecimal ) ? totalOption.value :\n LodashRound(totalOption.value, totalOption.preserveNumber).toFixed(totalOption.preserveNumber)) : '' }} </td>\n </ng-container>\n </tr>\n </ng-container>\n </tbody>\n <tfoot *ngIf=\"useVirtualScroll && showTotal\">\n <tr class=\"hd-table-total\">\n <td *ngIf=\"showSelected\"></td>\n <td>\u5408\u8BA1</td>\n <ng-container *ngFor=\"let totalOption of totalOptionList\">\n <td *ngIf=\"!totalOption.isHide\" [nzAlign]=\"totalOption.align ? totalOption.align : 'left'\">{{\n (totalOption.value || totalOption.value ===\n 0) ? (((totalOption.value % 1 === 0) && !totalOption.showDecimal ) ? totalOption.value :\n LodashRound(totalOption.value, totalOption.preserveNumber).toFixed(totalOption.preserveNumber)) : '' }} </td>\n </ng-container>\n </tr>\n </tfoot>\n <ng-template #allowDropTemplate>\n <tbody cdkDropList (cdkDropListDropped)=\"drop($event)\">\n <tr *ngFor=\"let data of hdTable.data;index as i\" cdkDrag [class.hd-table-row-invalid]=\"isInvalidRow(data)\">\n <td *ngIf=\"showSelected\" nzWidth=\"40px\" nzLeft=\"0px\" nzShowCheckbox\n [nzChecked]=\"mapOfCheckedId[data[selectField]]\" [nzDisabled]=\"isSelectDisabled(data)\"\n (nzCheckedChange)=\"refreshStatus($event, data)\"></td>\n <ng-container\n *ngTemplateOutlet=\"detailLineBody;context:{$implicit: data, index: getRowIndex(i)}\"></ng-container>\n </tr>\n <tr *ngIf=\"showTotal\" class=\"hd-table-total\">\n <td *ngIf=\"showSelected\"></td>\n <td>\u5408\u8BA1</td>\n <ng-container *ngFor=\"let totalOption of totalOptionList\">\n <td *ngIf=\"!totalOption.isHide\" [nzAlign]=\"totalOption.align ? totalOption.align : 'left'\">{{\n (totalOption.value || totalOption.value\n === 0) ? (((totalOption.value % 1 === 0) && !totalOption.showDecimal ) ? totalOption.value :\n LodashRound(totalOption.value, totalOption.preserveNumber).toFixed(totalOption.preserveNumber)) : '' }} </td>\n </ng-container>\n </tr>\n </tbody>\n </ng-template>\n <ng-template #tableTotalTemplate>\n \u5171 {{totalCount}} \u6761\u6570\u636E\n </ng-template>\n </nz-table>\n</ng-container>\n",
|
|
628
|
-
styles: ["::ng-deep .common-btn-group>a{font-size:14px;font-weight:400;color:#20b95d!important;white-space:nowrap}::ng-deep .common-btn-group .common-danger-btn:hover{color:#f05b24!important}::ng-deep .common-btn-group>a:hover{color:#20bd62!important}::ng-deep .common-btn-group>a:not(:last-child)::after{content:'';margin:0 2px}::ng-deep .common-billNumber>a{color:#3b77e3}button{box-shadow:unset;text-shadow:unset}::ng-deep .ant-form-item-label>label{color:#4b504e;font-size:14px}::ng-deep .ant-input-number-input{height:32px}::ng-deep .ant-input-number{height:32px}textarea.ant-input{height:auto;min-height:32px}::ng-deep .ant-select-selection--multiple{min-height:32px}::ng-deep .ant-select-selection__rendered>ul>li{height:26px!important;margin-top:3px!important;line-height:26px!important}::ng-deep .ant-advanced-search-form .ant-form-item{margin-bottom:0!important}::ng-deep .ant-select-selection--single{height:32px!important}::ng-deep .ant-input{height:32px}::ng-deep .ant-input[disabled]:hover{border-color:#d9d9d9!important}::ng-deep .ant-select-selection__rendered{line-height:32px!important}::ng-deep .ant-calendar-range-picker-input{text-align:left!important}::ng-deep .ant-calendar-picker{width:100%!important}::ng-deep .ant-row{margin-right:0!important;margin-left:0!important}::ng-deep .ant-col-6{padding-left:12px;padding-right:12px}::ng-deep .ant-col-12{padding-left:12px;padding-right:12px}::ng-deep .ant-col-18{padding-left:12px;padding-right:12px}::ng-deep .ant-col-24{padding-left:12px;padding-right:12px}::ng-deep .ant-alert-info{background-color:#f5f8f6;border:1px solid #cfe3d4}::ng-deep .hd-table-container .ant-table-td-left-sticky,::ng-deep .hd-table-container .ant-table-td-right-sticky,::ng-deep .hd-table-container .ant-table-th-left-sticky,::ng-deep .hd-table-container .ant-table-th-right-sticky{z-index:2;transform:translateZ(0)}::ng-deep .hd-table-container .ant-table-thead>tr>th.ant-table-th-left-sticky,::ng-deep .hd-table-container .ant-table-thead>tr>th.ant-table-th-right-sticky{background:#f5f8f6!important}::ng-deep .hd-table-container .ant-table-tbody>tr>td.ant-table-td-left-sticky,::ng-deep .hd-table-container .ant-table-tbody>tr>td.ant-table-td-right-sticky{background:#fff}::ng-deep .hd-table-container .ant-table-tbody>tr.ant-table-row-hover>td.ant-table-td-left-sticky,::ng-deep .hd-table-container .ant-table-tbody>tr.ant-table-row-hover>td.ant-table-td-right-sticky,::ng-deep .hd-table-container .ant-table-tbody>tr:hover>td.ant-table-td-left-sticky,::ng-deep .hd-table-container .ant-table-tbody>tr:hover>td.ant-table-td-right-sticky{background:#ecf8f1!important}::ng-deep .hd-table-container .ant-table-scroll-position-left .ant-table-td-right-sticky,::ng-deep .hd-table-container .ant-table-scroll-position-left .ant-table-th-right-sticky,::ng-deep .hd-table-container .ant-table-scroll-position-middle .ant-table-td-right-sticky,::ng-deep .hd-table-container .ant-table-scroll-position-middle .ant-table-th-right-sticky,::ng-deep .hd-table-container .ant-table-scroll-position-right .ant-table-td-right-sticky,::ng-deep .hd-table-container .ant-table-scroll-position-right .ant-table-th-right-sticky{box-shadow:none!important}::ng-deep .hd-table-container .ant-table-fixed-right{right:0!important}:host ::ng-deep th{background:#f5f8f6!important;font-weight:700!important;white-space:nowrap;font-size:14px;font-family:PingFangSC-Medium,PingFang SC;color:#2a3634;padding:8px!important;box-sizing:border-box}:host ::ng-deep td{font-weight:400;font-style:normal;font-size:14px;color:#2a3634;text-align:left;white-space:nowrap;padding:8px!important;box-sizing:border-box}::ng-deep .ant-pagination-options{display:inline-flex;align-items:center}::ng-deep .ant-pagination-options .ant-select,::ng-deep .ant-pagination-options .ant-select-selection--single{min-width:100px}::ng-deep .ant-pagination-options-size-changer.ant-select{min-width:100px}::ng-deep .ant-time-picker{width:100%}::ng-deep .cdk-overlay-pane .hd-cascader-menus.ant-cascader-menus>.ant-cascader-menu:only-child{width:-webkit-max-content!important;width:-moz-max-content!important;width:max-content!important;min-width:var(--hd-cascader-menu-min-width,auto);max-width:560px}::ng-deep .cdk-overlay-pane .hd-cascader-menus.ant-cascader-menus>.ant-cascader-menu:only-child .ant-cascader-menu-item{white-space:nowrap}.ant-input-number-disabled,.ant-input[disabled],.ant-select-disabled{color:#4b504e}.hd-table-container ::ng-deep .ant-pagination-options-quick-jumper input{border-radius:2px;border:1px solid #d9d9d9}.hd-table-container ::ng-deep .ant-pagination-options .ant-select-selection{border-radius:2px}.hd-table-container ::ng-deep .ant-table-thead>tr>th{border-bottom:1px solid #ecf1ed}.hd-table-container ::ng-deep .ant-table-tbody>tr>td{border-bottom:1px solid #ecf1ed}.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid.ant-table-row-hover>td,.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid.ant-table-row-hover>td.ant-table-td-left-sticky,.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid.ant-table-row-hover>td.ant-table-td-right-sticky,.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid:hover>td,.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid:hover>td.ant-table-td-left-sticky,.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid:hover>td.ant-table-td-right-sticky,.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid>td,.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid>td.ant-table-td-left-sticky,.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid>td.ant-table-td-right-sticky{background:#f7f8fa!important;color:#868a9c!important}.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid .common-btn-group>a{color:#20b95d!important}.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid .common-btn-group>a:hover{color:#20bd62!important}.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid .common-btn-group .common-danger-btn:hover{color:#f05b24!important}.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid .hd-table-cell-value>a,.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid>td>a{color:#20b95d}.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid .common-billNumber>a{color:#3b77e3}.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid .hd-status-text{color:#868a9c!important}.hd-table-container ::ng-deep .hd-table-total>td{border:0!important}.hd-table-container ::ng-deep cdk-virtual-scroll-viewport.ant-table-body .hd-detail-lines-page-virtual-row>td{box-sizing:border-box}.hd-table-container.hd-detail-lines-page--scroll-x:not(.hd-detail-lines-page--scroll-y) ::ng-deep .ant-table-body{max-height:
|
|
628
|
+
styles: ["::ng-deep .common-btn-group>a{font-size:14px;font-weight:400;color:#20b95d!important;white-space:nowrap}::ng-deep .common-btn-group .common-danger-btn:hover{color:#f05b24!important}::ng-deep .common-btn-group>a:hover{color:#20bd62!important}::ng-deep .common-btn-group>a:not(:last-child)::after{content:'';margin:0 2px}::ng-deep .common-billNumber>a{color:#3b77e3}button{box-shadow:unset;text-shadow:unset}::ng-deep .ant-form-item-label>label{color:#4b504e;font-size:14px}::ng-deep .ant-input-number-input{height:32px}::ng-deep .ant-input-number{height:32px}textarea.ant-input{height:auto;min-height:32px}::ng-deep .ant-select-selection--multiple{min-height:32px}::ng-deep .ant-select-selection__rendered>ul>li{height:26px!important;margin-top:3px!important;line-height:26px!important}::ng-deep .ant-advanced-search-form .ant-form-item{margin-bottom:0!important}::ng-deep .ant-select-selection--single{height:32px!important}::ng-deep .ant-input{height:32px}::ng-deep .ant-input[disabled]:hover{border-color:#d9d9d9!important}::ng-deep .ant-select-selection__rendered{line-height:32px!important}::ng-deep .ant-calendar-range-picker-input{text-align:left!important}::ng-deep .ant-calendar-picker{width:100%!important}::ng-deep .ant-row{margin-right:0!important;margin-left:0!important}::ng-deep .ant-col-6{padding-left:12px;padding-right:12px}::ng-deep .ant-col-12{padding-left:12px;padding-right:12px}::ng-deep .ant-col-18{padding-left:12px;padding-right:12px}::ng-deep .ant-col-24{padding-left:12px;padding-right:12px}::ng-deep .ant-alert-info{background-color:#f5f8f6;border:1px solid #cfe3d4}::ng-deep .hd-table-container .ant-table-td-left-sticky,::ng-deep .hd-table-container .ant-table-td-right-sticky,::ng-deep .hd-table-container .ant-table-th-left-sticky,::ng-deep .hd-table-container .ant-table-th-right-sticky{z-index:2;transform:translateZ(0)}::ng-deep .hd-table-container .ant-table-thead>tr>th.ant-table-th-left-sticky,::ng-deep .hd-table-container .ant-table-thead>tr>th.ant-table-th-right-sticky{background:#f5f8f6!important}::ng-deep .hd-table-container .ant-table-tbody>tr>td.ant-table-td-left-sticky,::ng-deep .hd-table-container .ant-table-tbody>tr>td.ant-table-td-right-sticky{background:#fff}::ng-deep .hd-table-container .ant-table-tbody>tr.ant-table-row-hover>td.ant-table-td-left-sticky,::ng-deep .hd-table-container .ant-table-tbody>tr.ant-table-row-hover>td.ant-table-td-right-sticky,::ng-deep .hd-table-container .ant-table-tbody>tr:hover>td.ant-table-td-left-sticky,::ng-deep .hd-table-container .ant-table-tbody>tr:hover>td.ant-table-td-right-sticky{background:#ecf8f1!important}::ng-deep .hd-table-container .ant-table-scroll-position-left .ant-table-td-right-sticky,::ng-deep .hd-table-container .ant-table-scroll-position-left .ant-table-th-right-sticky,::ng-deep .hd-table-container .ant-table-scroll-position-middle .ant-table-td-right-sticky,::ng-deep .hd-table-container .ant-table-scroll-position-middle .ant-table-th-right-sticky,::ng-deep .hd-table-container .ant-table-scroll-position-right .ant-table-td-right-sticky,::ng-deep .hd-table-container .ant-table-scroll-position-right .ant-table-th-right-sticky{box-shadow:none!important}::ng-deep .hd-table-container .ant-table-fixed-right{right:0!important}:host ::ng-deep th{background:#f5f8f6!important;font-weight:700!important;white-space:nowrap;font-size:14px;font-family:PingFangSC-Medium,PingFang SC;color:#2a3634;padding:8px!important;box-sizing:border-box}:host ::ng-deep td{font-weight:400;font-style:normal;font-size:14px;color:#2a3634;text-align:left;white-space:nowrap;padding:8px!important;box-sizing:border-box}::ng-deep .ant-pagination-options{display:inline-flex;align-items:center}::ng-deep .ant-pagination-options .ant-select,::ng-deep .ant-pagination-options .ant-select-selection--single{min-width:100px}::ng-deep .ant-pagination-options-size-changer.ant-select{min-width:100px}::ng-deep .ant-time-picker{width:100%}::ng-deep .cdk-overlay-pane .hd-cascader-menus.ant-cascader-menus>.ant-cascader-menu:only-child{width:-webkit-max-content!important;width:-moz-max-content!important;width:max-content!important;min-width:var(--hd-cascader-menu-min-width,auto);max-width:560px}::ng-deep .cdk-overlay-pane .hd-cascader-menus.ant-cascader-menus>.ant-cascader-menu:only-child .ant-cascader-menu-item{white-space:nowrap}.ant-input-number-disabled,.ant-input[disabled],.ant-select-disabled{color:#4b504e}.hd-table-container ::ng-deep .ant-pagination-options-quick-jumper input{border-radius:2px;border:1px solid #d9d9d9}.hd-table-container ::ng-deep .ant-pagination-options .ant-select-selection{border-radius:2px}.hd-table-container ::ng-deep .ant-table-thead>tr>th{border-bottom:1px solid #ecf1ed}.hd-table-container ::ng-deep .ant-table-tbody>tr>td{border-bottom:1px solid #ecf1ed}.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid.ant-table-row-hover>td,.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid.ant-table-row-hover>td.ant-table-td-left-sticky,.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid.ant-table-row-hover>td.ant-table-td-right-sticky,.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid:hover>td,.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid:hover>td.ant-table-td-left-sticky,.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid:hover>td.ant-table-td-right-sticky,.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid>td,.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid>td.ant-table-td-left-sticky,.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid>td.ant-table-td-right-sticky{background:#f7f8fa!important;color:#868a9c!important}.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid .common-btn-group>a{color:#20b95d!important}.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid .common-btn-group>a:hover{color:#20bd62!important}.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid .common-btn-group .common-danger-btn:hover{color:#f05b24!important}.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid .hd-table-cell-value>a,.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid>td>a{color:#20b95d}.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid .common-billNumber>a{color:#3b77e3}.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid .hd-status-text{color:#868a9c!important}.hd-table-container ::ng-deep .hd-table-total>td{border:0!important}.hd-table-container ::ng-deep cdk-virtual-scroll-viewport.ant-table-body .hd-detail-lines-page-virtual-row>td{box-sizing:border-box}.hd-table-container.hd-detail-lines-page--scroll-x:not(.hd-detail-lines-page--scroll-y) ::ng-deep .ant-table-body{max-height:calc(100vh - 280px)!important;overflow-y:auto!important}.hd-table-container.hd-detail-lines-page--scroll-x:not(.hd-detail-lines-page--scroll-y) ::ng-deep .ant-table-thead>tr>th{position:-webkit-sticky;position:sticky;top:0;z-index:2;background:#fafafa}.hd-table-container:not(.hd-detail-lines-page--scroll-y):not(.hd-detail-lines-page--scroll-x) ::ng-deep .ant-table-body{max-height:none!important;overflow-y:visible!important}"]
|
|
629
629
|
}] }
|
|
630
630
|
];
|
|
631
631
|
/** @nocollapse */
|
|
@@ -65,8 +65,9 @@ var HdDetailLinesComponent = /** @class */ (function () {
|
|
|
65
65
|
* @return {?}
|
|
66
66
|
*/
|
|
67
67
|
function () {
|
|
68
|
-
// 不自动补 y
|
|
69
|
-
//
|
|
68
|
+
// 不自动补 nzScroll.y:有 y 会拆表头/表体,无列宽时列错位。
|
|
69
|
+
// 仅有 x 时的纵滚由 less(max-height + overflow-y)承担,表头 sticky。
|
|
70
|
+
// 仅当父组件显式传了 scroll.y 时才走 nz-table 分体纵滚。
|
|
70
71
|
return this.scroll != null ? this.scroll : this.tableScroll;
|
|
71
72
|
},
|
|
72
73
|
enumerable: true,
|
|
@@ -634,8 +635,8 @@ var HdDetailLinesComponent = /** @class */ (function () {
|
|
|
634
635
|
HdDetailLinesComponent.decorators = [
|
|
635
636
|
{ type: Component, args: [{
|
|
636
637
|
selector: "hd-detail-lines",
|
|
637
|
-
template: "<ng-container>\n <hd-button-group *ngIf=\"showSearch\">\n <ng-template #buttonGroupLeft>\n <nz-input-group [nzSuffix]=\"suffixIconSearch\">\n <input type=\"text\" nz-input (keyup.enter)=\"searchLines()\" placeholder=\"\u8BF7\u8F93\u5165\u5185\u5BB9\u641C\u7D22\" style=\"width: 300px;\"\n [(ngModel)]=\"filterStr\" />\n </nz-input-group>\n <ng-template #suffixIconSearch>\n <i nz-icon nzType=\"search\" (click)=\"searchLines()\"></i>\n </ng-template>\n </ng-template>\n </hd-button-group>\n\n <hd-space *ngIf=\"showSearch\" background=\"transparent\" type=\"row\" size=\"16\"></hd-space>\n\n <nz-table *ngIf=\"showTable\" #hdTable class=\"hd-table-container\"\n [class.hd-detail-lines--scroll-y]=\"!!(effectiveScroll && effectiveScroll.y)\"\n [class.hd-detail-lines--scroll-x]=\"!!(effectiveScroll && effectiveScroll.x)\"\n [nzScroll]=\"effectiveScroll\" nzShowSizeChanger\n [nzFrontPagination]=\"hdFrontPagination\" [nzShowQuickJumper]=\"hdFrontPagination\" [nzShowTotal]=\"tableTotalTemplate\"\n nzSize=\"middle\" [nzData]=\"displayLines\" [nzLoading]=\"tableLoading\" [(nzPageSize)]=\"tablePageSize\"\n [nzPageSizeOptions]=\"[ 10, 50, 100, 200, 500, 1000 ]\"\n (nzCurrentPageDataChange)=\"showSelected ? currentPageDataChange($event) : null\">\n <thead>\n <tr>\n <th *ngIf=\"showSelected\" nzWidth=\"40px\" nzLeft=\"0px\" nzShowCheckbox [(nzChecked)]=\"isAllDisplayDataChecked\"\n [nzIndeterminate]=\"isIndeterminate\" (nzCheckedChange)=\"checkAll($event)\"></th>\n <ng-container *ngTemplateOutlet=\"detailLineHead\"></ng-container>\n </tr>\n </thead>\n <tbody *ngIf=\"!allowDrop;else allowDropTemplate\">\n <tr *ngFor=\"let data of hdTable.data;index as i\" [class.hd-table-row-invalid]=\"isInvalidRow(data)\">\n <td *ngIf=\"showSelected\" nzWidth=\"40px\" nzLeft=\"0px\" nzShowCheckbox\n [nzChecked]=\"mapOfCheckedId[data[selectField]]\" [nzDisabled]=\"isSelectDisabled(data)\"\n (nzCheckedChange)=\"refreshStatus($event, data)\"></td>\n <ng-container *ngTemplateOutlet=\"detailLineBody;context:{$implicit: data, index: i}\"></ng-container>\n </tr>\n <!-- \u5408\u8BA1\u533A\u57DF -->\n <tr *ngIf=\"showTotal\" class=\"hd-table-total\">\n <td *ngIf=\"showSelected\"></td>\n <td>\u5408\u8BA1</td>\n <ng-container *ngFor=\"let totalOption of totalOptionList\">\n <td *ngIf=\"!totalOption.isHide\" [nzAlign]=\"totalOption.align ? totalOption.align : 'left'\">{{\n (totalOption.value || totalOption.value ===\n 0) ? (((totalOption.value % 1 === 0) && !totalOption.showDecimal ) ? totalOption.value :\n LodashRound(totalOption.value, totalOption.preserveNumber).toFixed(totalOption.preserveNumber)) : '' }} </td>\n </ng-container>\n </tr>\n </tbody>\n <ng-template #allowDropTemplate>\n <tbody cdkDropList (cdkDropListDropped)=\"drop($event)\">\n <tr *ngFor=\"let data of hdTable.data;index as i\" cdkDrag [class.hd-table-row-invalid]=\"isInvalidRow(data)\">\n <td *ngIf=\"showSelected\" nzWidth=\"40px\" nzLeft=\"0px\" nzShowCheckbox\n [nzChecked]=\"mapOfCheckedId[data[selectField]]\" [nzDisabled]=\"isSelectDisabled(data)\"\n (nzCheckedChange)=\"refreshStatus($event, data)\"></td>\n <ng-container *ngTemplateOutlet=\"detailLineBody;context:{$implicit: data, index: i}\"></ng-container>\n </tr>\n <!-- \u5408\u8BA1\u533A\u57DF -->\n <tr *ngIf=\"showTotal\" class=\"hd-table-total\">\n <td *ngIf=\"showSelected\"></td>\n <td>\u5408\u8BA1</td>\n <ng-container *ngFor=\"let totalOption of totalOptionList\">\n <td *ngIf=\"!totalOption.isHide\" [nzAlign]=\"totalOption.align ? totalOption.align : 'left'\">{{\n (totalOption.value || totalOption.value\n === 0) ? (((totalOption.value % 1 === 0) && !totalOption.showDecimal ) ? totalOption.value :\n LodashRound(totalOption.value, totalOption.preserveNumber).toFixed(totalOption.preserveNumber)) : '' }} </td>\n </ng-container>\n </tr>\n </tbody>\n </ng-template>\n <ng-template #tableTotalTemplate>\n \u5171 {{displayLines.length}} \u6761\u6570\u636E\n </ng-template>\n </nz-table>\n</ng-container>\n",
|
|
638
|
-
styles: ["::ng-deep .common-btn-group>a{font-size:14px;font-weight:400;color:#20b95d!important;white-space:nowrap}::ng-deep .common-btn-group .common-danger-btn:hover{color:#f05b24!important}::ng-deep .common-btn-group>a:hover{color:#20bd62!important}::ng-deep .common-btn-group>a:not(:last-child)::after{content:'';margin:0 2px}::ng-deep .common-billNumber>a{color:#3b77e3}button{box-shadow:unset;text-shadow:unset}::ng-deep .ant-form-item-label>label{color:#4b504e;font-size:14px}::ng-deep .ant-input-number-input{height:32px}::ng-deep .ant-input-number{height:32px}textarea.ant-input{height:auto;min-height:32px}::ng-deep .ant-select-selection--multiple{min-height:32px}::ng-deep .ant-select-selection__rendered>ul>li{height:26px!important;margin-top:3px!important;line-height:26px!important}::ng-deep .ant-advanced-search-form .ant-form-item{margin-bottom:0!important}::ng-deep .ant-select-selection--single{height:32px!important}::ng-deep .ant-input{height:32px}::ng-deep .ant-input[disabled]:hover{border-color:#d9d9d9!important}::ng-deep .ant-select-selection__rendered{line-height:32px!important}::ng-deep .ant-calendar-range-picker-input{text-align:left!important}::ng-deep .ant-calendar-picker{width:100%!important}::ng-deep .ant-row{margin-right:0!important;margin-left:0!important}::ng-deep .ant-col-6{padding-left:12px;padding-right:12px}::ng-deep .ant-col-12{padding-left:12px;padding-right:12px}::ng-deep .ant-col-18{padding-left:12px;padding-right:12px}::ng-deep .ant-col-24{padding-left:12px;padding-right:12px}::ng-deep .ant-alert-info{background-color:#f5f8f6;border:1px solid #cfe3d4}::ng-deep .hd-table-container .ant-table-td-left-sticky,::ng-deep .hd-table-container .ant-table-td-right-sticky,::ng-deep .hd-table-container .ant-table-th-left-sticky,::ng-deep .hd-table-container .ant-table-th-right-sticky{z-index:2;transform:translateZ(0)}::ng-deep .hd-table-container .ant-table-thead>tr>th.ant-table-th-left-sticky,::ng-deep .hd-table-container .ant-table-thead>tr>th.ant-table-th-right-sticky{background:#f5f8f6!important}::ng-deep .hd-table-container .ant-table-tbody>tr>td.ant-table-td-left-sticky,::ng-deep .hd-table-container .ant-table-tbody>tr>td.ant-table-td-right-sticky{background:#fff}::ng-deep .hd-table-container .ant-table-tbody>tr.ant-table-row-hover>td.ant-table-td-left-sticky,::ng-deep .hd-table-container .ant-table-tbody>tr.ant-table-row-hover>td.ant-table-td-right-sticky,::ng-deep .hd-table-container .ant-table-tbody>tr:hover>td.ant-table-td-left-sticky,::ng-deep .hd-table-container .ant-table-tbody>tr:hover>td.ant-table-td-right-sticky{background:#ecf8f1!important}::ng-deep .hd-table-container .ant-table-scroll-position-left .ant-table-td-right-sticky,::ng-deep .hd-table-container .ant-table-scroll-position-left .ant-table-th-right-sticky,::ng-deep .hd-table-container .ant-table-scroll-position-middle .ant-table-td-right-sticky,::ng-deep .hd-table-container .ant-table-scroll-position-middle .ant-table-th-right-sticky,::ng-deep .hd-table-container .ant-table-scroll-position-right .ant-table-td-right-sticky,::ng-deep .hd-table-container .ant-table-scroll-position-right .ant-table-th-right-sticky{box-shadow:none!important}::ng-deep .hd-table-container .ant-table-fixed-right{right:0!important}:host ::ng-deep th{background:#f5f8f6!important;font-weight:700!important;white-space:nowrap;font-size:14px;font-family:PingFangSC-Medium,PingFang SC;color:#2a3634;padding:8px!important;box-sizing:border-box}:host ::ng-deep td{font-weight:400;font-style:normal;font-size:14px;color:#2a3634;text-align:left;white-space:nowrap;padding:8px!important;box-sizing:border-box}::ng-deep .ant-pagination-options{display:inline-flex;align-items:center}::ng-deep .ant-pagination-options .ant-select,::ng-deep .ant-pagination-options .ant-select-selection--single{min-width:100px}::ng-deep .ant-pagination-options-size-changer.ant-select{min-width:100px}::ng-deep .ant-time-picker{width:100%}::ng-deep .cdk-overlay-pane .hd-cascader-menus.ant-cascader-menus>.ant-cascader-menu:only-child{width:-webkit-max-content!important;width:-moz-max-content!important;width:max-content!important;min-width:var(--hd-cascader-menu-min-width,auto);max-width:560px}::ng-deep .cdk-overlay-pane .hd-cascader-menus.ant-cascader-menus>.ant-cascader-menu:only-child .ant-cascader-menu-item{white-space:nowrap}.ant-input-number-disabled,.ant-input[disabled],.ant-select-disabled{color:#4b504e}.hd-table-container ::ng-deep .ant-pagination-options-quick-jumper input{border-radius:2px;border:1px solid #d9d9d9}.hd-table-container ::ng-deep .ant-pagination-options .ant-select-selection{border-radius:2px}.hd-table-container ::ng-deep .ant-table-thead>tr>th{border-bottom:1px solid #ecf1ed}.hd-table-container ::ng-deep .ant-table-tbody>tr>td{border-bottom:1px solid #ecf1ed}.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid.ant-table-row-hover>td,.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid.ant-table-row-hover>td.ant-table-td-left-sticky,.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid.ant-table-row-hover>td.ant-table-td-right-sticky,.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid:hover>td,.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid:hover>td.ant-table-td-left-sticky,.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid:hover>td.ant-table-td-right-sticky,.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid>td,.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid>td.ant-table-td-left-sticky,.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid>td.ant-table-td-right-sticky{background:#f7f8fa!important;color:#868a9c!important}.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid .common-btn-group>a{color:#20b95d!important}.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid .common-btn-group>a:hover{color:#20bd62!important}.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid .common-btn-group .common-danger-btn:hover{color:#f05b24!important}.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid .hd-table-cell-value>a,.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid>td>a{color:#20b95d}.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid .common-billNumber>a{color:#3b77e3}.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid .hd-status-text{color:#868a9c!important}.hd-table-container ::ng-deep .hd-table-total>td{border:0!important}.hd-table-container.hd-detail-lines--scroll-x:not(.hd-detail-lines--scroll-y) ::ng-deep .ant-table-body{max-height:
|
|
638
|
+
template: "<ng-container>\n <hd-button-group *ngIf=\"showSearch\">\n <ng-template #buttonGroupLeft>\n <nz-input-group [nzSuffix]=\"suffixIconSearch\">\n <input type=\"text\" nz-input (keyup.enter)=\"searchLines()\" placeholder=\"\u8BF7\u8F93\u5165\u5185\u5BB9\u641C\u7D22\" style=\"width: 300px;\"\n [(ngModel)]=\"filterStr\" />\n </nz-input-group>\n <ng-template #suffixIconSearch>\n <i nz-icon nzType=\"search\" (click)=\"searchLines()\"></i>\n </ng-template>\n </ng-template>\n </hd-button-group>\n\n <hd-space *ngIf=\"showSearch\" background=\"transparent\" type=\"row\" size=\"16\"></hd-space>\n\n <nz-table *ngIf=\"showTable\" #hdTable class=\"hd-table-container\"\n [class.hd-detail-lines--scroll-y]=\"!!(effectiveScroll && effectiveScroll.y)\"\n [class.hd-detail-lines--scroll-x]=\"!!(effectiveScroll && effectiveScroll.x)\"\n [class.hd-detail-lines--with-search]=\"showSearch\"\n [nzScroll]=\"effectiveScroll\" nzShowSizeChanger\n [nzFrontPagination]=\"hdFrontPagination\" [nzShowQuickJumper]=\"hdFrontPagination\" [nzShowTotal]=\"tableTotalTemplate\"\n nzSize=\"middle\" [nzData]=\"displayLines\" [nzLoading]=\"tableLoading\" [(nzPageSize)]=\"tablePageSize\"\n [nzPageSizeOptions]=\"[ 10, 50, 100, 200, 500, 1000 ]\"\n (nzCurrentPageDataChange)=\"showSelected ? currentPageDataChange($event) : null\">\n <thead>\n <tr>\n <th *ngIf=\"showSelected\" nzWidth=\"40px\" nzLeft=\"0px\" nzShowCheckbox [(nzChecked)]=\"isAllDisplayDataChecked\"\n [nzIndeterminate]=\"isIndeterminate\" (nzCheckedChange)=\"checkAll($event)\"></th>\n <ng-container *ngTemplateOutlet=\"detailLineHead\"></ng-container>\n </tr>\n </thead>\n <tbody *ngIf=\"!allowDrop;else allowDropTemplate\">\n <tr *ngFor=\"let data of hdTable.data;index as i\" [class.hd-table-row-invalid]=\"isInvalidRow(data)\">\n <td *ngIf=\"showSelected\" nzWidth=\"40px\" nzLeft=\"0px\" nzShowCheckbox\n [nzChecked]=\"mapOfCheckedId[data[selectField]]\" [nzDisabled]=\"isSelectDisabled(data)\"\n (nzCheckedChange)=\"refreshStatus($event, data)\"></td>\n <ng-container *ngTemplateOutlet=\"detailLineBody;context:{$implicit: data, index: i}\"></ng-container>\n </tr>\n <!-- \u5408\u8BA1\u533A\u57DF -->\n <tr *ngIf=\"showTotal\" class=\"hd-table-total\">\n <td *ngIf=\"showSelected\"></td>\n <td>\u5408\u8BA1</td>\n <ng-container *ngFor=\"let totalOption of totalOptionList\">\n <td *ngIf=\"!totalOption.isHide\" [nzAlign]=\"totalOption.align ? totalOption.align : 'left'\">{{\n (totalOption.value || totalOption.value ===\n 0) ? (((totalOption.value % 1 === 0) && !totalOption.showDecimal ) ? totalOption.value :\n LodashRound(totalOption.value, totalOption.preserveNumber).toFixed(totalOption.preserveNumber)) : '' }} </td>\n </ng-container>\n </tr>\n </tbody>\n <ng-template #allowDropTemplate>\n <tbody cdkDropList (cdkDropListDropped)=\"drop($event)\">\n <tr *ngFor=\"let data of hdTable.data;index as i\" cdkDrag [class.hd-table-row-invalid]=\"isInvalidRow(data)\">\n <td *ngIf=\"showSelected\" nzWidth=\"40px\" nzLeft=\"0px\" nzShowCheckbox\n [nzChecked]=\"mapOfCheckedId[data[selectField]]\" [nzDisabled]=\"isSelectDisabled(data)\"\n (nzCheckedChange)=\"refreshStatus($event, data)\"></td>\n <ng-container *ngTemplateOutlet=\"detailLineBody;context:{$implicit: data, index: i}\"></ng-container>\n </tr>\n <!-- \u5408\u8BA1\u533A\u57DF -->\n <tr *ngIf=\"showTotal\" class=\"hd-table-total\">\n <td *ngIf=\"showSelected\"></td>\n <td>\u5408\u8BA1</td>\n <ng-container *ngFor=\"let totalOption of totalOptionList\">\n <td *ngIf=\"!totalOption.isHide\" [nzAlign]=\"totalOption.align ? totalOption.align : 'left'\">{{\n (totalOption.value || totalOption.value\n === 0) ? (((totalOption.value % 1 === 0) && !totalOption.showDecimal ) ? totalOption.value :\n LodashRound(totalOption.value, totalOption.preserveNumber).toFixed(totalOption.preserveNumber)) : '' }} </td>\n </ng-container>\n </tr>\n </tbody>\n </ng-template>\n <ng-template #tableTotalTemplate>\n \u5171 {{displayLines.length}} \u6761\u6570\u636E\n </ng-template>\n </nz-table>\n</ng-container>\n",
|
|
639
|
+
styles: ["::ng-deep .common-btn-group>a{font-size:14px;font-weight:400;color:#20b95d!important;white-space:nowrap}::ng-deep .common-btn-group .common-danger-btn:hover{color:#f05b24!important}::ng-deep .common-btn-group>a:hover{color:#20bd62!important}::ng-deep .common-btn-group>a:not(:last-child)::after{content:'';margin:0 2px}::ng-deep .common-billNumber>a{color:#3b77e3}button{box-shadow:unset;text-shadow:unset}::ng-deep .ant-form-item-label>label{color:#4b504e;font-size:14px}::ng-deep .ant-input-number-input{height:32px}::ng-deep .ant-input-number{height:32px}textarea.ant-input{height:auto;min-height:32px}::ng-deep .ant-select-selection--multiple{min-height:32px}::ng-deep .ant-select-selection__rendered>ul>li{height:26px!important;margin-top:3px!important;line-height:26px!important}::ng-deep .ant-advanced-search-form .ant-form-item{margin-bottom:0!important}::ng-deep .ant-select-selection--single{height:32px!important}::ng-deep .ant-input{height:32px}::ng-deep .ant-input[disabled]:hover{border-color:#d9d9d9!important}::ng-deep .ant-select-selection__rendered{line-height:32px!important}::ng-deep .ant-calendar-range-picker-input{text-align:left!important}::ng-deep .ant-calendar-picker{width:100%!important}::ng-deep .ant-row{margin-right:0!important;margin-left:0!important}::ng-deep .ant-col-6{padding-left:12px;padding-right:12px}::ng-deep .ant-col-12{padding-left:12px;padding-right:12px}::ng-deep .ant-col-18{padding-left:12px;padding-right:12px}::ng-deep .ant-col-24{padding-left:12px;padding-right:12px}::ng-deep .ant-alert-info{background-color:#f5f8f6;border:1px solid #cfe3d4}::ng-deep .hd-table-container .ant-table-td-left-sticky,::ng-deep .hd-table-container .ant-table-td-right-sticky,::ng-deep .hd-table-container .ant-table-th-left-sticky,::ng-deep .hd-table-container .ant-table-th-right-sticky{z-index:2;transform:translateZ(0)}::ng-deep .hd-table-container .ant-table-thead>tr>th.ant-table-th-left-sticky,::ng-deep .hd-table-container .ant-table-thead>tr>th.ant-table-th-right-sticky{background:#f5f8f6!important}::ng-deep .hd-table-container .ant-table-tbody>tr>td.ant-table-td-left-sticky,::ng-deep .hd-table-container .ant-table-tbody>tr>td.ant-table-td-right-sticky{background:#fff}::ng-deep .hd-table-container .ant-table-tbody>tr.ant-table-row-hover>td.ant-table-td-left-sticky,::ng-deep .hd-table-container .ant-table-tbody>tr.ant-table-row-hover>td.ant-table-td-right-sticky,::ng-deep .hd-table-container .ant-table-tbody>tr:hover>td.ant-table-td-left-sticky,::ng-deep .hd-table-container .ant-table-tbody>tr:hover>td.ant-table-td-right-sticky{background:#ecf8f1!important}::ng-deep .hd-table-container .ant-table-scroll-position-left .ant-table-td-right-sticky,::ng-deep .hd-table-container .ant-table-scroll-position-left .ant-table-th-right-sticky,::ng-deep .hd-table-container .ant-table-scroll-position-middle .ant-table-td-right-sticky,::ng-deep .hd-table-container .ant-table-scroll-position-middle .ant-table-th-right-sticky,::ng-deep .hd-table-container .ant-table-scroll-position-right .ant-table-td-right-sticky,::ng-deep .hd-table-container .ant-table-scroll-position-right .ant-table-th-right-sticky{box-shadow:none!important}::ng-deep .hd-table-container .ant-table-fixed-right{right:0!important}:host ::ng-deep th{background:#f5f8f6!important;font-weight:700!important;white-space:nowrap;font-size:14px;font-family:PingFangSC-Medium,PingFang SC;color:#2a3634;padding:8px!important;box-sizing:border-box}:host ::ng-deep td{font-weight:400;font-style:normal;font-size:14px;color:#2a3634;text-align:left;white-space:nowrap;padding:8px!important;box-sizing:border-box}::ng-deep .ant-pagination-options{display:inline-flex;align-items:center}::ng-deep .ant-pagination-options .ant-select,::ng-deep .ant-pagination-options .ant-select-selection--single{min-width:100px}::ng-deep .ant-pagination-options-size-changer.ant-select{min-width:100px}::ng-deep .ant-time-picker{width:100%}::ng-deep .cdk-overlay-pane .hd-cascader-menus.ant-cascader-menus>.ant-cascader-menu:only-child{width:-webkit-max-content!important;width:-moz-max-content!important;width:max-content!important;min-width:var(--hd-cascader-menu-min-width,auto);max-width:560px}::ng-deep .cdk-overlay-pane .hd-cascader-menus.ant-cascader-menus>.ant-cascader-menu:only-child .ant-cascader-menu-item{white-space:nowrap}.ant-input-number-disabled,.ant-input[disabled],.ant-select-disabled{color:#4b504e}.hd-table-container ::ng-deep .ant-pagination-options-quick-jumper input{border-radius:2px;border:1px solid #d9d9d9}.hd-table-container ::ng-deep .ant-pagination-options .ant-select-selection{border-radius:2px}.hd-table-container ::ng-deep .ant-table-thead>tr>th{border-bottom:1px solid #ecf1ed}.hd-table-container ::ng-deep .ant-table-tbody>tr>td{border-bottom:1px solid #ecf1ed}.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid.ant-table-row-hover>td,.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid.ant-table-row-hover>td.ant-table-td-left-sticky,.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid.ant-table-row-hover>td.ant-table-td-right-sticky,.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid:hover>td,.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid:hover>td.ant-table-td-left-sticky,.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid:hover>td.ant-table-td-right-sticky,.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid>td,.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid>td.ant-table-td-left-sticky,.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid>td.ant-table-td-right-sticky{background:#f7f8fa!important;color:#868a9c!important}.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid .common-btn-group>a{color:#20b95d!important}.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid .common-btn-group>a:hover{color:#20bd62!important}.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid .common-btn-group .common-danger-btn:hover{color:#f05b24!important}.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid .hd-table-cell-value>a,.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid>td>a{color:#20b95d}.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid .common-billNumber>a{color:#3b77e3}.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid .hd-status-text{color:#868a9c!important}.hd-table-container ::ng-deep .hd-table-total>td{border:0!important}.hd-table-container.hd-detail-lines--scroll-x:not(.hd-detail-lines--scroll-y) ::ng-deep .ant-table-body{max-height:calc(100vh - 280px)!important;overflow-y:auto!important}.hd-table-container.hd-detail-lines--scroll-x:not(.hd-detail-lines--scroll-y).hd-detail-lines--with-search ::ng-deep .ant-table-body{max-height:calc(100vh - 320px)!important}.hd-table-container.hd-detail-lines--scroll-x:not(.hd-detail-lines--scroll-y) ::ng-deep .ant-table-thead>tr>th{position:-webkit-sticky;position:sticky;top:0;z-index:2;background:#fafafa}.hd-table-container:not(.hd-detail-lines--scroll-y):not(.hd-detail-lines--scroll-x) ::ng-deep .ant-table-body{max-height:none!important;overflow-y:visible!important}"]
|
|
639
640
|
}] }
|
|
640
641
|
];
|
|
641
642
|
/** @nocollapse */
|
|
@@ -787,4 +788,4 @@ if (false) {
|
|
|
787
788
|
*/
|
|
788
789
|
HdDetailLinesComponent.prototype.cdr;
|
|
789
790
|
}
|
|
790
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGQtZGV0YWlsLWxpbmVzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2ZhbnRhc3ktbmd6b3Jyby8iLCJzb3VyY2VzIjpbImhkLWRldGFpbC1saW5lcy9oZC1kZXRhaWwtbGluZXMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFlLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3RFLE9BQU8sRUFFTCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUlMLE1BQU0sRUFFTixXQUFXLEVBQ1gsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDL0IsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM1QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsc0JBQXNCLEVBQUUsK0JBQStCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUc5SDtJQW1FRSxnQ0FBb0IsR0FBc0I7UUFBdEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUExRGpCLGlCQUFZLEdBQVksS0FBSyxDQUFDO1FBQzlCLGNBQVMsR0FBWSxLQUFLLENBQUM7UUFDM0IsZUFBVSxHQUFZLEtBQUssQ0FBQzs7UUFFNUMsaUJBQVksR0FBYSxFQUFFLENBQUM7Ozs7O1FBSzVCLFdBQU0sR0FBOEIsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUM7UUFDMUQsZ0JBQVcsR0FBK0IsSUFBSSxDQUFDO1FBQ3RDLGdCQUFXLEdBQVcsWUFBWSxDQUFDO1FBWWxDLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQzs7UUFNbEIsY0FBUyxHQUFZLEtBQUssQ0FB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Q3hCLG1EQUF1Qjs7SUFDdkIsK0NBQW1COztJQUNuQixpREFBZ0Q7O0lBQ2hELGdEQUFnRDs7SUFDaEQsZ0RBQTRDOztJQUM1QywyQ0FBa0I7Ozs7O0lBRWxCLDhDQUE4Qjs7Ozs7SUFFOUIsOENBQXFCOztJQUNyQixvREFBNkI7Ozs7O0lBRTdCLDJDQUFpQjs7Ozs7SUFDakIsa0RBQXFEOzs7OztJQUV6QyxxQ0FBOEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDZGtEcmFnRHJvcCwgbW92ZUl0ZW1JbkFycmF5IH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9kcmFnLWRyb3BcIjtcbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgcm91bmQgfSBmcm9tIFwibG9kYXNoXCI7XG5pbXBvcnQgeyBJbnB1dEJvb2xlYW4gfSBmcm9tIFwibmctem9ycm8tYW50ZC9jb3JlXCI7XG5pbXBvcnQgeyBOelRhYmxlQ29tcG9uZW50IH0gZnJvbSBcIm5nLXpvcnJvLWFudGQvdGFibGVcIjtcbmltcG9ydCB7IFBhZ2UgfSBmcm9tIFwiLi4vbW9kZWwvY29tbW9uLXR5cGVcIjtcbmltcG9ydCB7IG1lYXN1cmVUYWJsZUNvbFdpZHRoLCByZXNvbHZlQXV0b1RhYmxlU2Nyb2xsLCBiaW5kTnpUYWJsZUhlYWRlckJvZHlTY3JvbGxTeW5jIH0gZnJvbSBcIi4uL3V0aWxzL2hkLXRhYmxlLXNjcm9sbC51dGlsXCI7XG5pbXBvcnQgeyBUb3RhbE9wdGlvbiB9IGZyb20gXCIuL2hkLWRldGFpbC1saW5lcy5zZXJ2aWNlXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJoZC1kZXRhaWwtbGluZXNcIixcbiAgdGVtcGxhdGVVcmw6IFwiLi9oZC1kZXRhaWwtbGluZXMuY29tcG9uZW50Lmh0bWxcIixcbiAgc3R5bGVVcmxzOiBbXCIuL2hkLWRldGFpbC1saW5lcy5jb21wb25lbnQubGVzc1wiXSxcbn0pXG5leHBvcnQgY2xhc3MgSGREZXRhaWxMaW5lc0NvbXBvbmVudFxuICBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICBAVmlld0NoaWxkKFwiaGRUYWJsZVwiLCB7IHN0YXRpYzogZmFsc2UgfSkgbnpUYWJsZUNvbXBvbmVudDogTnpUYWJsZUNvbXBvbmVudDtcbiAgQElucHV0KCkgbGluZXM6IEFycmF5PGFueT47XG4gIEBJbnB1dCgpIEBJbnB1dEJvb2xlYW4oKSBzaG93U2VsZWN0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgQElucHV0Qm9vbGVhbigpIGFsbG93RHJvcDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBASW5wdXRCb29sZWFuKCkgc2hvd1NlYXJjaDogYm9vbGVhbiA9IGZhbHNlO1xuICAvLyDkuI3kvKDpgJLov5nkuKrlrZfmrrXml7bpu5jorqTkuLrmn6Xor6LmiYDmnInlrZfmrrXmmK/lkKbmnInljLnphY3nmoRcbiAgQElucHV0KCkgc2VhcmNoRmllbGRzOiBzdHJpbmdbXSA9IFtdO1xuICAvKipcbiAgICog5qiq5ZCR5rua5Yqo44CC5Y6G5Y+y6buY6K6kIGB7IHg6ICcxcHgnIH1g77yIMi4xLjI4IOWJjeS4gOebtOWmguatpO+8ie+8muW8gOWQr+aoqua7muS9huS4jemUgeatu+WIl+Wuve+8jFxuICAgKiDkuJrliqHpobXlj6/kuI3lhpkgdGgvdGQgd2lkdGjvvIznlLHlhoXlrrnoh6rpgILlupTjgILkvKAgbnVsbCDliJnmjInlrrnlmajoh6rliqjmtYvnrpfjgIJcbiAgICovXG4gIEBJbnB1dCgpIHNjcm9sbDogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHsgeDogXCIxcHhcIiB9O1xuICB0YWJsZVNjcm9sbDogeyB4Pzogc3RyaW5nOyB5Pzogc3RyaW5nIH0gPSBudWxsO1xuICBASW5wdXQoKSBzZWxlY3RGaWVsZDogc3RyaW5nID0gXCJiaWxsTnVtYmVyXCI7XG4gIEBJbnB1dCgpIHNlbGVjdGVkRmllbGQ6IHN0cmluZztcbiAgLyoqXG4gICAqIOihjOWLvumAieemgeeUqOWtl+auteWQjeOAguWumuS5ieWQjuWPluW9k+WJjeihjOivpeWtl+aute+8mlxuICAgKiDkuLogdHJ1ZSDml7bnpoHnlKjor6XooYzli77pgInvvIjlhajpgInkuZ/kvJrot7Pov4fvvInjgIJcbiAgICovXG4gIEBJbnB1dCgpIHNlbGVjdERpc2FibGVkRmllbGQ6IHN0cmluZztcbiAgLyoqXG4gICAqIOihjOWkseaViOWtl+auteWQjeOAguWumuS5ieWQjuWPluW9k+WJjeihjOivpeWtl+aute+8mlxuICAgKiDkuLogdHJ1ZSDml7bmlbTooYzog4zmma/oibLkuLogI0Y3RjhGQeOAgeaWh+WtlyAjODY4QTlD44CCXG4gICAqL1xuICBASW5wdXQoKSByb3dJbnZhbGlkRmllbGQ6IHN0cmluZztcbiAgQE91dHB1dCgpIHNlbGVjdEV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAQ29udGVudENoaWxkKFwiZGV0YWlsTGluZUhlYWRcIiwgeyBzdGF0aWM6IGZhbHNlIH0pXG4gIGRldGFpbExpbmVIZWFkOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBAQ29udGVudENoaWxkKFwiZGV0YWlsTGluZUJvZHlcIiwgeyBzdGF0aWM6IGZhbHNlIH0pXG4gIGRldGFpbExpbmVCb2R5OiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAvLyDlkIjorqHljLrln59cbiAgQElucHV0KCkgQElucHV0Qm9vbGVhbigpIHNob3dUb3RhbDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSB0b3RhbE9wdGlvbjogQXJyYXk8VG90YWxPcHRpb24+ID0gW107XG4gIEBJbnB1dCgpIGNvbHVtbnNOdW1iZXI6IG51bWJlciB8IHN0cmluZyA9IDA7XG4gIEBJbnB1dCgpIGhkRnJvbnRQYWdpbmF0aW9uOiBib29sZWFuID0gZmFsc2U7XG4gIHRvdGFsT3B0aW9uTGlzdCA9IFtdO1xuXG4gIHRhYmxlRGF0YTogUGFnZTxhbnk+ID0gbmV3IFBhZ2UoKTtcbiAgdGFibGVMb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XG4gIC8vIOihqOagvOWIhumhteWPguaVsFxuICB0YWJsZVBhZ2VJbmRleDogbnVtYmVyID0gMTtcbiAgQElucHV0KCkgdGFibGVQYWdlU2l6ZTogbnVtYmVyID0gMTAwO1xuICAvLyDooajmoLzli77pgInlj4LmlbBcbiAgaXNBbGxEaXNwbGF5RGF0YUNoZWNrZWQgPSBmYWxzZTtcbiAgaXNJbmRldGVybWluYXRlID0gZmFsc2U7XG4gIGxpc3RPZkRpc3BsYXlEYXRhID0gW107XG4gIGxpc3RPZkFsbERhdGEgPSBbXTtcbiAgbGlzdE9mU2VsZWN0aW9uOiBBcnJheTxhbnk+IHwgVGVtcGxhdGVSZWY8dm9pZD47XG4gIG1hcE9mQ2hlY2tlZElkOiB7IFtrZXk6IHN0cmluZ106IGJvb2xlYW4gfSA9IHt9O1xuICBtYXBPZkNoZWNrTGlzdDogeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9IHt9O1xuICBmaWx0ZXJTdHI6IHN0cmluZztcbiAgLyoqIOihqOagvOWunumZheWxleekuueahOaVsOaNru+8iOetm+mAiee7k+aenOaIluWFqOmHj++8iSAqL1xuICBkaXNwbGF5TGluZXM6IEFycmF5PGFueT4gPSBbXTtcbiAgLyoqIOaYr+WQpuWkhOS6juetm+mAieeKtuaAgSAqL1xuICBpc0ZpbHRlckRhdGEgPSBmYWxzZTtcbiAgc3RvcmVGb3JtTGluZXNEYXRhOiBhbnkgPSBbXTsgLy8g57yT5a2Y55qE5oC755qE5YiX6KGo5pWw5o2uXG4gIC8qKiDmjqfliLYgbnotdGFibGUg6YeN5bu677yac2Nyb2xsLnkg5LuO5peg5Yiw5pyJ5pe25b+F6aG76YeN5bu677yM5ZCm5YiZ6KGo5aS05LiN6Lef5qiq5ruaICovXG4gIHNob3dUYWJsZSA9IHRydWU7XG4gIHByaXZhdGUgdW5iaW5kQm9keVNjcm9sbDogKCgpID0+IHZvaWQpIHwgbnVsbCA9IG51bGw7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG4gIGdldCBlZmZlY3RpdmVTY3JvbGwoKTogeyB4Pzogc3RyaW5nOyB5Pzogc3RyaW5nIH0ge1xuICAgIC8vIOS4jeiHquWKqOihpSB577ya5Lia5Yqh6aG15YiX5a695aSa5Li66Ieq6YCC5bqU77yM5LiA5pem5pyJIHkg5Lya5ouG6KGo5aS0L+ihqOS9k+WvvOiHtOWIl+mUmeS9jeOAglxuICAgIC8vIOe6tea7muS6pOe7memhtemdou+8m+S7heW9k+eItue7hOS7tuaYvuW8j+S8oOS6hiBzY3JvbGwueSDml7bmiY3lkK/nlKjooajlhoXnurXmu5rjgIJcbiAgICByZXR1cm4gdGhpcy5zY3JvbGwgIT0gbnVsbCA/IHRoaXMuc2Nyb2xsIDogdGhpcy50YWJsZVNjcm9sbDtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc3luY1N0b3JlRnJvbUxpbmVzSW5wdXQoKTtcbiAgICB0aGlzLmFwcGx5RGlzcGxheUZyb21TdG9yZSgpO1xuICAgIHRoaXMuY291bnRTZWxlY3RlZCgpO1xuICAgIHRoaXMuY2FsY3VsYXRlVG90YWwoKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNjaGVkdWxlU3luY0hvcml6b250YWxTY3JvbGwoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMudW5iaW5kSGVhZGVyQm9keVNjcm9sbFN5bmMoKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlc1tcImxpbmVzXCJdKSB7XG4gICAgICBpZiAoIXRoaXMuaXNGaWx0ZXJEYXRhKSB7XG4gICAgICAgIHRoaXMuc3luY1N0b3JlRnJvbUxpbmVzSW5wdXQoKTtcbiAgICAgICAgdGhpcy5kaXNwbGF5TGluZXMgPSB0aGlzLmxpbmVzIHx8IFtdO1xuICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgIXRoaXMuc3RvcmVGb3JtTGluZXNEYXRhIHx8XG4gICAgICAgIHRoaXMuc3RvcmVGb3JtTGluZXNEYXRhLmxlbmd0aCA9PT0gMFxuICAgICAgKSB7XG4gICAgICAgIHRoaXMuc3luY1N0b3JlRnJvbUxpbmVzSW5wdXQoKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5jb3VudFNlbGVjdGVkKCk7XG4gICAgdGhpcy5jYWxjdWxhdGVUb3RhbCgpO1xuICAgIGlmIChjaGFuZ2VzW1wibGluZXNcIl0gfHwgY2hhbmdlc1tcInNob3dTZWxlY3RlZFwiXSkge1xuICAgICAgdGhpcy5zY2hlZHVsZVN5bmNIb3Jpem9udGFsU2Nyb2xsKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzY2hlZHVsZVN5bmNIb3Jpem9udGFsU2Nyb2xsKHJldHJ5ID0gMCk6IHZvaWQge1xuICAgIGNvbnN0IGRlbGF5ID0gcmV0cnkgPT09IDAgPyAwIDogNTA7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5zY3JvbGwgPT0gbnVsbCkge1xuICAgICAgICB0aGlzLnN5bmNIb3Jpem9udGFsU2Nyb2xsKCk7XG4gICAgICB9XG4gICAgICB0aGlzLmJpbmRIZWFkZXJCb2R5U2Nyb2xsU3luYygwKTtcbiAgICAgIGNvbnN0IGFmdGVyWCA9XG4gICAgICAgICh0aGlzLmVmZmVjdGl2ZVNjcm9sbCAmJiB0aGlzLmVmZmVjdGl2ZVNjcm9sbC54KSB8fFxuICAgICAgICAodGhpcy50YWJsZVNjcm9sbCAmJiB0aGlzLnRhYmxlU2Nyb2xsLngpO1xuICAgICAgaWYgKFxuICAgICAgICB0aGlzLnNjcm9sbCA9PSBudWxsICYmXG4gICAgICAgIHJldHJ5IDwgNSAmJlxuICAgICAgICB0aGlzLmRpc3BsYXlMaW5lcyAmJlxuICAgICAgICB0aGlzLmRpc3BsYXlMaW5lcy5sZW5ndGggPiAwICYmXG4gICAgICAgICFhZnRlclggJiZcbiAgICAgICAgbWVhc3VyZVRhYmxlQ29sV2lkdGgodGhpcy5uelRhYmxlQ29tcG9uZW50KSA9PT0gMFxuICAgICAgKSB7XG4gICAgICAgIHRoaXMuc2NoZWR1bGVTeW5jSG9yaXpvbnRhbFNjcm9sbChyZXRyeSArIDEpO1xuICAgICAgfVxuICAgIH0sIGRlbGF5KTtcbiAgfVxuXG4gIHByaXZhdGUgc3luY0hvcml6b250YWxTY3JvbGwoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2Nyb2xsICE9IG51bGwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgaGFzRGF0YSA9ICEhKHRoaXMuZGlzcGxheUxpbmVzICYmIHRoaXMuZGlzcGxheUxpbmVzLmxlbmd0aCk7XG4gICAgY29uc3QgbmV4dFNjcm9sbCA9IHJlc29sdmVBdXRvVGFibGVTY3JvbGwoXG4gICAgICB0aGlzLm56VGFibGVDb21wb25lbnQsXG4gICAgICBoYXNEYXRhLFxuICAgICk7XG4gICAgY29uc3QgbmV4dFggPSBuZXh0U2Nyb2xsID8gbmV4dFNjcm9sbC54IDogbnVsbDtcbiAgICAvLyDoh6rliqjmtYvnrpflj6rorr4geO+8jOS4jeiuviB577yI5LiOIDIuMS42NCDliY3kuIDoh7TvvIzpgb/lhY3ml6DliJflrr3ml7booajlpLQv6KGo5L2T6ZSZ5L2N77yJXG4gICAgaWYgKHRoaXMudGFibGVTY3JvbGwgJiYgdGhpcy50YWJsZVNjcm9sbC54ID09PSBuZXh0WCAmJiAhdGhpcy50YWJsZVNjcm9sbC55KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHByZXZIYXNZID0gISEodGhpcy50YWJsZVNjcm9sbCAmJiB0aGlzLnRhYmxlU2Nyb2xsLnkpO1xuICAgIHRoaXMudGFibGVTY3JvbGwgPSBuZXh0WCA/IHsgeDogbmV4dFggfSA6IG51bGw7XG4gICAgaWYgKHByZXZIYXNZKSB7XG4gICAgICB0aGlzLnJlbW91bnRUYWJsZSgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB0aGlzLmJpbmRIZWFkZXJCb2R5U2Nyb2xsU3luYygwKTtcbiAgfVxuXG4gIC8qKiDph43lu7ogbnotdGFibGXvvIzorqkgaGVhZGVyL2JvZHkg5rua5Yqo5ZCM5q2l5ZyoIEFmdGVyVmlld0luaXQg6YeN5paw57uR5a6aICovXG4gIHByaXZhdGUgcmVtb3VudFRhYmxlKCk6IHZvaWQge1xuICAgIHRoaXMudW5iaW5kSGVhZGVyQm9keVNjcm9sbFN5bmMoKTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuc2hvd1RhYmxlID0gZmFsc2U7XG4gICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLnNob3dUYWJsZSA9IHRydWU7XG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuYmluZEhlYWRlckJvZHlTY3JvbGxTeW5jKDApKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqIOihqOS9k+aoqua7muaXtuWQjOatpeihqOWktO+8iOWFnOW6lSBuZy16b3JybyDnm5HlkKzkuKLlpLHvvInvvJtET00g5pyq5bCx57uq5pe26YeN6K+VICovXG4gIHByaXZhdGUgYmluZEhlYWRlckJvZHlTY3JvbGxTeW5jKHJldHJ5ID0gMCk6IHZvaWQge1xuICAgIHRoaXMudW5iaW5kSGVhZGVyQm9keVNjcm9sbFN5bmMoKTtcbiAgICBpZiAoIXRoaXMubnpUYWJsZUNvbXBvbmVudCB8fCAhKHRoaXMuZWZmZWN0aXZlU2Nyb2xsICYmIHRoaXMuZWZmZWN0aXZlU2Nyb2xsLngpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHVuYmluZCA9IGJpbmROelRhYmxlSGVhZGVyQm9keVNjcm9sbFN5bmModGhpcy5uelRhYmxlQ29tcG9uZW50KTtcbiAgICBpZiAodW5iaW5kKSB7XG4gICAgICB0aGlzLnVuYmluZEJvZHlTY3JvbGwgPSB1bmJpbmQ7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChyZXRyeSA8IDgpIHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5iaW5kSGVhZGVyQm9keVNjcm9sbFN5bmMocmV0cnkgKyAxKSwgNTApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdW5iaW5kSGVhZGVyQm9keVNjcm9sbFN5bmMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMudW5iaW5kQm9keVNjcm9sbCkge1xuICAgICAgdGhpcy51bmJpbmRCb2R5U2Nyb2xsKCk7XG4gICAgICB0aGlzLnVuYmluZEJvZHlTY3JvbGwgPSBudWxsO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc3luY1N0b3JlRnJvbUxpbmVzSW5wdXQoc291cmNlPzogQXJyYXk8YW55Pik6IHZvaWQge1xuICAgIGNvbnN0IGRhdGEgPSBzb3VyY2UgfHwgdGhpcy5saW5lcztcbiAgICB0aGlzLnN0b3JlRm9ybUxpbmVzRGF0YSA9IGRhdGEgPyBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGRhdGEpKSA6IFtdO1xuICB9XG5cbiAgLyoqIOacquetm+mAieaXtuS4jueItue7hOS7tiBsaW5lcyDlkIzmupDvvIzpgb/lhY3mqKHmnb/lhoUgbmdNb2RlbCDkuI7niLbmlbDmja7ohLHoioIgKi9cbiAgcHJpdmF0ZSBhcHBseURpc3BsYXlGcm9tU3RvcmUoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMubGluZXMgJiYgdGhpcy5saW5lcy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLmRpc3BsYXlMaW5lcyA9IHRoaXMubGluZXM7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuZGlzcGxheUxpbmVzID0gdGhpcy5zdG9yZUZvcm1MaW5lc0RhdGFcbiAgICAgID8gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLnN0b3JlRm9ybUxpbmVzRGF0YSkpXG4gICAgICA6IFtdO1xuICB9XG5cbiAgcHJpdmF0ZSByZXN0b3JlRnJvbVN0b3JlKCk6IHZvaWQge1xuICAgIHRoaXMuaXNGaWx0ZXJEYXRhID0gZmFsc2U7XG4gICAgdGhpcy5hcHBseURpc3BsYXlGcm9tU3RvcmUoKTtcbiAgICB0aGlzLnRhYmxlTG9hZGluZyA9IGZhbHNlO1xuICAgIHRoaXMuY291bnRTZWxlY3RlZCgpO1xuICAgIHRoaXMuY2FsY3VsYXRlVG90YWwoKTtcbiAgICB0aGlzLnNjaGVkdWxlU3luY0hvcml6b250YWxTY3JvbGwoKTtcbiAgfVxuXG4gIC8vIOWFqOWxgOaAp+eahOaQnOe0ou+8iOa2teeblumhtemdouS4iuaJgOacieeahOWPr+inhuaWh+Wtl++8iVxuICBzZWFyY2hMaW5lcygpIHtcbiAgICAvLyDmuIXnqbrmkJzntKLvvJrljbPkvb/lvZPliY3lsZXnpLrkuLrnqbrkuZ/opoHog73ku47nvJPlrZjmgaLlpI3vvIjlr7npvZAgaGQtZm9ybS1saW5lc++8iVxuICAgIGlmICghdGhpcy5maWx0ZXJTdHIgfHwgIXRoaXMuZmlsdGVyU3RyLnRyaW0oKSkge1xuICAgICAgaWYgKCF0aGlzLnN0b3JlRm9ybUxpbmVzRGF0YSB8fCB0aGlzLnN0b3JlRm9ybUxpbmVzRGF0YS5sZW5ndGggPCAxKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHRoaXMudGFibGVMb2FkaW5nID0gdHJ1ZTtcbiAgICAgIHRoaXMucmVzdG9yZUZyb21TdG9yZSgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoIXRoaXMuc3RvcmVGb3JtTGluZXNEYXRhIHx8IHRoaXMuc3RvcmVGb3JtTGluZXNEYXRhLmxlbmd0aCA8IDEpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy50YWJsZUxvYWRpbmcgPSB0cnVlO1xuICAgIGNvbnN0IGZpbHRlclZhbHVlID0gdGhpcy5maWx0ZXJTdHIudHJpbSgpLnRvTG93ZXJDYXNlKCk7XG4gICAgdGhpcy5pc0ZpbHRlckRhdGEgPSB0cnVlO1xuXG4gICAgY29uc3QgZmlsdGVyZWREYXRhID0gdGhpcy5zdG9yZUZvcm1MaW5lc0RhdGEuZmlsdGVyKChkYXRhOiBhbnkpID0+IHtcbiAgICAgIGlmICghdGhpcy5zZWFyY2hGaWVsZHMgfHwgdGhpcy5zZWFyY2hGaWVsZHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIGZvciAoY29uc3QgaXRlbSBvZiBPYmplY3Qua2V5cyhkYXRhKSkge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIGRhdGFbaXRlbV0gJiZcbiAgICAgICAgICAgIGRhdGFbaXRlbV0udG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGZpbHRlclZhbHVlKVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIGZvciAoY29uc3QgaXRlbSBvZiB0aGlzLnNlYXJjaEZpZWxkcykge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgZGF0YVtpdGVtXSAmJlxuICAgICAgICAgIGRhdGFbaXRlbV0udG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGZpbHRlclZhbHVlKVxuICAgICAgICApIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH0pO1xuICAgIHRoaXMuZGlzcGxheUxpbmVzID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShmaWx0ZXJlZERhdGEpKTtcbiAgICB0aGlzLnRhYmxlTG9hZGluZyA9IGZhbHNlO1xuICAgIHRoaXMuY291bnRTZWxlY3RlZCgpO1xuICAgIHRoaXMuY2FsY3VsYXRlVG90YWwoKTtcbiAgICB0aGlzLnNjaGVkdWxlU3luY0hvcml6b250YWxTY3JvbGwoKTtcbiAgfVxuXG4gIHByaXZhdGUgY291bnRTZWxlY3RlZCgpOiB2b2lkIHtcbiAgICBpZiAoXG4gICAgICB0aGlzLnNob3dTZWxlY3RlZCAmJlxuICAgICAgdGhpcy5zZWxlY3RlZEZpZWxkICYmXG4gICAgICB0aGlzLmRpc3BsYXlMaW5lcyAmJlxuICAgICAgdGhpcy5kaXNwbGF5TGluZXMubGVuZ3RoXG4gICAgKSB7XG4gICAgICB0aGlzLmRpc3BsYXlMaW5lcy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgIGlmIChpdGVtW3RoaXMuc2VsZWN0ZWRGaWVsZF0gPT09IHRydWUgJiYgIXRoaXMuaXNTZWxlY3REaXNhYmxlZChpdGVtKSkge1xuICAgICAgICAgIHRoaXMubWFwT2ZDaGVja2VkSWRbaXRlbVt0aGlzLnNlbGVjdEZpZWxkXV0gPSB0cnVlO1xuICAgICAgICAgIHRoaXMubWFwT2ZDaGVja0xpc3RbaXRlbVt0aGlzLnNlbGVjdEZpZWxkXV0gPSBpdGVtO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIGlmIChcbiAgICAgICAgdGhpcy5kaXNwbGF5TGluZXMubGVuZ3RoID09PSBPYmplY3Qua2V5cyh0aGlzLm1hcE9mQ2hlY2tMaXN0KS5sZW5ndGhcbiAgICAgICkge1xuICAgICAgICB0aGlzLmlzQWxsRGlzcGxheURhdGFDaGVja2VkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5pc0luZGV0ZXJtaW5hdGUgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGdldCBMb2Rhc2hSb3VuZCgpIHtcbiAgICByZXR1cm4gcm91bmQ7XG4gIH1cblxuICBkcm9wKGV2ZW50OiBDZGtEcmFnRHJvcDxzdHJpbmdbXT4pOiB2b2lkIHtcbiAgICBtb3ZlSXRlbUluQXJyYXkodGhpcy5kaXNwbGF5TGluZXMsIGV2ZW50LnByZXZpb3VzSW5kZXgsIGV2ZW50LmN1cnJlbnRJbmRleCk7XG4gICAgdGhpcy5kaXNwbGF5TGluZXMgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuZGlzcGxheUxpbmVzKSk7XG4gICAgaWYgKCF0aGlzLmlzRmlsdGVyRGF0YSkge1xuICAgICAgdGhpcy5zdG9yZUZvcm1MaW5lc0RhdGEgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuZGlzcGxheUxpbmVzKSk7XG4gICAgfVxuICB9XG5cbiAgY2FsY3VsYXRlVG90YWwoKSB7XG4gICAgLy8g6L+Z6YeM5aSE55CG5ZCI6K6h5pWw5o2uXG4gICAgaWYgKHRoaXMuc2hvd1RvdGFsICYmIHRoaXMuZGlzcGxheUxpbmVzICYmIHRoaXMuZGlzcGxheUxpbmVzLmxlbmd0aCkge1xuICAgICAgdGhpcy50b3RhbE9wdGlvbkxpc3QgPSBuZXcgQXJyYXkoTnVtYmVyKHRoaXMuY29sdW1uc051bWJlcikgLSAxKS5maWxsKFwiXCIpO1xuICAgICAgdGhpcy50b3RhbE9wdGlvbi5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgIGlmIChpdGVtLmluc2VydEluZGV4ICYmIChpdGVtLmluc2VydFZhbHVlIHx8IGl0ZW0uaW5zZXJ0VmFsdWUgPT09IDApKSB7XG4gICAgICAgICAgdGhpcy50b3RhbE9wdGlvbkxpc3RbaXRlbS5pbnNlcnRJbmRleCAtIDFdID0ge1xuICAgICAgICAgICAgdmFsdWU6IGl0ZW0uaW5zZXJ0VmFsdWUsXG4gICAgICAgICAgICBhbGlnbjogaXRlbS5hbGlnbiB8fCBcInJpZ2h0XCIsXG4gICAgICAgICAgICBzaG93RGVjaW1hbDogaXRlbS5zaG93RGVjaW1hbCB8fCBmYWxzZSxcbiAgICAgICAgICAgIHByZXNlcnZlTnVtYmVyOiBpdGVtLnByZXNlcnZlTnVtYmVyICE9IG51bGwgPyBpdGVtLnByZXNlcnZlTnVtYmVyIDogMixcbiAgICAgICAgICAgIGlzSGlkZTogaXRlbS5pc0hpZGUgfHwgZmFsc2UsXG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLy8g6KGo5qC85Yu+6YCJ6YC76L6RXG4gIGN1cnJlbnRQYWdlRGF0YUNoYW5nZSgkZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIHRoaXMubGlzdE9mRGlzcGxheURhdGEgPSAkZXZlbnQ7XG4gICAgdGhpcy5yZWZyZXNoU3RhdHVzKCk7XG4gICAgdGhpcy5zY2hlZHVsZVN5bmNIb3Jpem9udGFsU2Nyb2xsKCk7XG4gIH1cblxuICByZXNldFN0YXR1cygpIHtcbiAgICB0aGlzLmlzQWxsRGlzcGxheURhdGFDaGVja2VkID0gZmFsc2U7XG4gICAgdGhpcy5pc0luZGV0ZXJtaW5hdGUgPSBmYWxzZTtcbiAgICB0aGlzLm1hcE9mQ2hlY2tlZElkID0ge307XG4gICAgdGhpcy5tYXBPZkNoZWNrTGlzdCA9IHt9O1xuICAgIHRoaXMuc2VsZWN0RXZlbnQuZW1pdChbXSk7XG4gIH1cblxuICByZWZyZXNoU3RhdHVzKGV2ZW50OiBib29sZWFuID0gZmFsc2UsIGRhdGE6IGFueSA9IG51bGwpOiB2b2lkIHtcbiAgICBpZiAoZGF0YSkge1xuICAgICAgaWYgKGV2ZW50ICYmIHRoaXMuaXNTZWxlY3REaXNhYmxlZChkYXRhKSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB0aGlzLm1hcE9mQ2hlY2tlZElkW2RhdGFbdGhpcy5zZWxlY3RGaWVsZF1dID0gZXZlbnQ7XG4gICAgICBpZiAoZXZlbnQpIHtcbiAgICAgICAgIXRoaXMubWFwT2ZDaGVja0xpc3RbZGF0YVt0aGlzLnNlbGVjdEZpZWxkXV0gJiZcbiAgICAgICAgICAodGhpcy5tYXBPZkNoZWNrTGlzdFtkYXRhW3RoaXMuc2VsZWN0RmllbGRdXSA9IGRhdGEpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5tYXBPZkNoZWNrTGlzdFtkYXRhW3RoaXMuc2VsZWN0RmllbGRdXSAmJlxuICAgICAgICAgIGRlbGV0ZSB0aGlzLm1hcE9mQ2hlY2tMaXN0W2RhdGFbdGhpcy5zZWxlY3RGaWVsZF1dO1xuICAgICAgfVxuICAgIH1cbiAgICBjb25zdCBzZWxlY3RhYmxlTGlzdCA9IHRoaXMubGlzdE9mRGlzcGxheURhdGEuZmlsdGVyKFxuICAgICAgKGl0ZW0pID0+ICF0aGlzLmlzU2VsZWN0RGlzYWJsZWQoaXRlbSksXG4gICAgKTtcbiAgICB0aGlzLmlzQWxsRGlzcGxheURhdGFDaGVja2VkID1cbiAgICAgIHNlbGVjdGFibGVMaXN0Lmxlbmd0aCA+IDAgJiZcbiAgICAgIHNlbGVjdGFibGVMaXN0LmV2ZXJ5KChpdGVtKSA9PiB0aGlzLm1hcE9mQ2hlY2tlZElkW2l0ZW1bdGhpcy5zZWxlY3RGaWVsZF1dKTtcbiAgICB0aGlzLmlzSW5kZXRlcm1pbmF0ZSA9XG4gICAgICBzZWxlY3RhYmxlTGlzdC5zb21lKFxuICAgICAgICAoaXRlbSkgPT4gdGhpcy5tYXBPZkNoZWNrZWRJZFtpdGVtW3RoaXMuc2VsZWN0RmllbGRdXSxcbiAgICAgICkgJiYgIXRoaXMuaXNBbGxEaXNwbGF5RGF0YUNoZWNrZWQ7XG4gICAgLy8g6Kem5Y+Rc2VsZWN05LqL5Lu2XG4gICAgaWYgKHRoaXMuc2VsZWN0RXZlbnQpIHtcbiAgICAgIHRoaXMuc2VsZWN0RXZlbnQuZW1pdChPYmplY3QudmFsdWVzKHRoaXMubWFwT2ZDaGVja0xpc3QpKTtcbiAgICB9XG4gIH1cblxuICBjaGVja0FsbCh2YWx1ZTogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMubGlzdE9mRGlzcGxheURhdGEuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgaWYgKHRoaXMuaXNTZWxlY3REaXNhYmxlZChpdGVtKSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgIXRoaXMubWFwT2ZDaGVja0xpc3RbaXRlbVt0aGlzLnNlbGVjdEZpZWxkXV0gJiZcbiAgICAgICAgICAodGhpcy5tYXBPZkNoZWNrTGlzdFtpdGVtW3RoaXMuc2VsZWN0RmllbGRdXSA9IGl0ZW0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5tYXBPZkNoZWNrTGlzdFtpdGVtW3RoaXMuc2VsZWN0RmllbGRdXSAmJlxuICAgICAgICAgIGRlbGV0ZSB0aGlzLm1hcE9mQ2hlY2tMaXN0W2l0ZW1bdGhpcy5zZWxlY3RGaWVsZF1dO1xuICAgICAgfVxuICAgICAgdGhpcy5tYXBPZkNoZWNrZWRJZFtpdGVtW3RoaXMuc2VsZWN0RmllbGRdXSA9IHZhbHVlO1xuICAgIH0pO1xuICAgIHRoaXMucmVmcmVzaFN0YXR1cygpO1xuICB9XG5cbiAgLyoqIOW9k+WJjeihjOaYr+WQpuemgeeUqOWLvumAiSAqL1xuICBpc1NlbGVjdERpc2FibGVkKGRhdGE6IGFueSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIShcbiAgICAgIHRoaXMuc2VsZWN0RGlzYWJsZWRGaWVsZCAmJlxuICAgICAgZGF0YSAmJlxuICAgICAgZGF0YVt0aGlzLnNlbGVjdERpc2FibGVkRmllbGRdID09PSB0cnVlXG4gICAgKTtcbiAgfVxuXG4gIC8qKiDlvZPliY3ooYzmmK/lkKblpLHmlYggKi9cbiAgaXNJbnZhbGlkUm93KGRhdGE6IGFueSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIShcbiAgICAgIHRoaXMucm93SW52YWxpZEZpZWxkICYmXG4gICAgICBkYXRhICYmXG4gICAgICBkYXRhW3RoaXMucm93SW52YWxpZEZpZWxkXSA9PT0gdHJ1ZVxuICAgICk7XG4gIH1cbn1cbiJdfQ==
|
|
791
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGQtZGV0YWlsLWxpbmVzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2ZhbnRhc3ktbmd6b3Jyby8iLCJzb3VyY2VzIjpbImhkLWRldGFpbC1saW5lcy9oZC1kZXRhaWwtbGluZXMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFlLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3RFLE9BQU8sRUFFTCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUlMLE1BQU0sRUFFTixXQUFXLEVBQ1gsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDL0IsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM1QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsc0JBQXNCLEVBQUUsK0JBQStCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUc5SDtJQW1FRSxnQ0FBb0IsR0FBc0I7UUFBdEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUExRGpCLGlCQUFZLEdBQVksS0FBSyxDQUFDO1FBQzlCLGNBQVMsR0FBWSxLQUFLLENBQUM7UUFDM0IsZUFBVSxHQUFZLEtBQUssQ0FBQzs7UUFFNUMsaUJBQVksR0FBYSxFQUFFLENBQUM7Ozs7O1FBSzVCLFdBQU0sR0FBOEIsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUM7UUFDMUQsZ0JBQVcsR0FBK0IsSUFBSSxDQUFDO1FBQ3RDLGdCQUFXLEdBQVcsWUFBWSxDQUFDO1FBWWxDLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQzs7UUFNbEIsY0FBUyxHQUFZLEtBQUssQ0FB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aEMsaURBQXdCOztJQUN4QixtREFBdUI7O0lBQ3ZCLCtDQUFtQjs7SUFDbkIsaURBQWdEOztJQUNoRCxnREFBZ0Q7O0lBQ2hELGdEQUE0Qzs7SUFDNUMsMkNBQWtCOzs7OztJQUVsQiw4Q0FBOEI7Ozs7O0lBRTlCLDhDQUFxQjs7SUFDckIsb0RBQTZCOzs7OztJQUU3QiwyQ0FBaUI7Ozs7O0lBQ2pCLGtEQUFxRDs7Ozs7SUFFekMscUNBQThCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2RrRHJhZ0Ryb3AsIG1vdmVJdGVtSW5BcnJheSB9IGZyb20gXCJAYW5ndWxhci9jZGsvZHJhZy1kcm9wXCI7XG5pbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IHJvdW5kIH0gZnJvbSBcImxvZGFzaFwiO1xuaW1wb3J0IHsgSW5wdXRCb29sZWFuIH0gZnJvbSBcIm5nLXpvcnJvLWFudGQvY29yZVwiO1xuaW1wb3J0IHsgTnpUYWJsZUNvbXBvbmVudCB9IGZyb20gXCJuZy16b3Jyby1hbnRkL3RhYmxlXCI7XG5pbXBvcnQgeyBQYWdlIH0gZnJvbSBcIi4uL21vZGVsL2NvbW1vbi10eXBlXCI7XG5pbXBvcnQgeyBtZWFzdXJlVGFibGVDb2xXaWR0aCwgcmVzb2x2ZUF1dG9UYWJsZVNjcm9sbCwgYmluZE56VGFibGVIZWFkZXJCb2R5U2Nyb2xsU3luYyB9IGZyb20gXCIuLi91dGlscy9oZC10YWJsZS1zY3JvbGwudXRpbFwiO1xuaW1wb3J0IHsgVG90YWxPcHRpb24gfSBmcm9tIFwiLi9oZC1kZXRhaWwtbGluZXMuc2VydmljZVwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwiaGQtZGV0YWlsLWxpbmVzXCIsXG4gIHRlbXBsYXRlVXJsOiBcIi4vaGQtZGV0YWlsLWxpbmVzLmNvbXBvbmVudC5odG1sXCIsXG4gIHN0eWxlVXJsczogW1wiLi9oZC1kZXRhaWwtbGluZXMuY29tcG9uZW50Lmxlc3NcIl0sXG59KVxuZXhwb3J0IGNsYXNzIEhkRGV0YWlsTGluZXNDb21wb25lbnRcbiAgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgQFZpZXdDaGlsZChcImhkVGFibGVcIiwgeyBzdGF0aWM6IGZhbHNlIH0pIG56VGFibGVDb21wb25lbnQ6IE56VGFibGVDb21wb25lbnQ7XG4gIEBJbnB1dCgpIGxpbmVzOiBBcnJheTxhbnk+O1xuICBASW5wdXQoKSBASW5wdXRCb29sZWFuKCkgc2hvd1NlbGVjdGVkOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIEBJbnB1dEJvb2xlYW4oKSBhbGxvd0Ryb3A6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgQElucHV0Qm9vbGVhbigpIHNob3dTZWFyY2g6IGJvb2xlYW4gPSBmYWxzZTtcbiAgLy8g5LiN5Lyg6YCS6L+Z5Liq5a2X5q615pe26buY6K6k5Li65p+l6K+i5omA5pyJ5a2X5q615piv5ZCm5pyJ5Yy56YWN55qEXG4gIEBJbnB1dCgpIHNlYXJjaEZpZWxkczogc3RyaW5nW10gPSBbXTtcbiAgLyoqXG4gICAqIOaoquWQkea7muWKqOOAguWOhuWPsum7mOiupCBgeyB4OiAnMXB4JyB9YO+8iDIuMS4yOCDliY3kuIDnm7TlpoLmraTvvInvvJrlvIDlkK/mqKrmu5rkvYbkuI3plIHmrbvliJflrr3vvIxcbiAgICog5Lia5Yqh6aG15Y+v5LiN5YaZIHRoL3RkIHdpZHRo77yM55Sx5YaF5a656Ieq6YCC5bqU44CC5LygIG51bGwg5YiZ5oyJ5a655Zmo6Ieq5Yqo5rWL566X44CCXG4gICAqL1xuICBASW5wdXQoKSBzY3JvbGw6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7IHg6IFwiMXB4XCIgfTtcbiAgdGFibGVTY3JvbGw6IHsgeD86IHN0cmluZzsgeT86IHN0cmluZyB9ID0gbnVsbDtcbiAgQElucHV0KCkgc2VsZWN0RmllbGQ6IHN0cmluZyA9IFwiYmlsbE51bWJlclwiO1xuICBASW5wdXQoKSBzZWxlY3RlZEZpZWxkOiBzdHJpbmc7XG4gIC8qKlxuICAgKiDooYzli77pgInnpoHnlKjlrZfmrrXlkI3jgILlrprkuYnlkI7lj5blvZPliY3ooYzor6XlrZfmrrXvvJpcbiAgICog5Li6IHRydWUg5pe256aB55So6K+l6KGM5Yu+6YCJ77yI5YWo6YCJ5Lmf5Lya6Lez6L+H77yJ44CCXG4gICAqL1xuICBASW5wdXQoKSBzZWxlY3REaXNhYmxlZEZpZWxkOiBzdHJpbmc7XG4gIC8qKlxuICAgKiDooYzlpLHmlYjlrZfmrrXlkI3jgILlrprkuYnlkI7lj5blvZPliY3ooYzor6XlrZfmrrXvvJpcbiAgICog5Li6IHRydWUg5pe25pW06KGM6IOM5pmv6Imy5Li6ICNGN0Y4RkHjgIHmloflrZcgIzg2OEE5Q+OAglxuICAgKi9cbiAgQElucHV0KCkgcm93SW52YWxpZEZpZWxkOiBzdHJpbmc7XG4gIEBPdXRwdXQoKSBzZWxlY3RFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQENvbnRlbnRDaGlsZChcImRldGFpbExpbmVIZWFkXCIsIHsgc3RhdGljOiBmYWxzZSB9KVxuICBkZXRhaWxMaW5lSGVhZDogVGVtcGxhdGVSZWY8YW55PjtcbiAgQENvbnRlbnRDaGlsZChcImRldGFpbExpbmVCb2R5XCIsIHsgc3RhdGljOiBmYWxzZSB9KVxuICBkZXRhaWxMaW5lQm9keTogVGVtcGxhdGVSZWY8YW55PjtcbiAgLy8g5ZCI6K6h5Yy65Z+fXG4gIEBJbnB1dCgpIEBJbnB1dEJvb2xlYW4oKSBzaG93VG90YWw6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgdG90YWxPcHRpb246IEFycmF5PFRvdGFsT3B0aW9uPiA9IFtdO1xuICBASW5wdXQoKSBjb2x1bW5zTnVtYmVyOiBudW1iZXIgfCBzdHJpbmcgPSAwO1xuICBASW5wdXQoKSBoZEZyb250UGFnaW5hdGlvbjogYm9vbGVhbiA9IGZhbHNlO1xuICB0b3RhbE9wdGlvbkxpc3QgPSBbXTtcblxuICB0YWJsZURhdGE6IFBhZ2U8YW55PiA9IG5ldyBQYWdlKCk7XG4gIHRhYmxlTG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xuICAvLyDooajmoLzliIbpobXlj4LmlbBcbiAgdGFibGVQYWdlSW5kZXg6IG51bWJlciA9IDE7XG4gIEBJbnB1dCgpIHRhYmxlUGFnZVNpemU6IG51bWJlciA9IDEwMDtcbiAgLy8g6KGo5qC85Yu+6YCJ5Y+C5pWwXG4gIGlzQWxsRGlzcGxheURhdGFDaGVja2VkID0gZmFsc2U7XG4gIGlzSW5kZXRlcm1pbmF0ZSA9IGZhbHNlO1xuICBsaXN0T2ZEaXNwbGF5RGF0YSA9IFtdO1xuICBsaXN0T2ZBbGxEYXRhID0gW107XG4gIGxpc3RPZlNlbGVjdGlvbjogQXJyYXk8YW55PiB8IFRlbXBsYXRlUmVmPHZvaWQ+O1xuICBtYXBPZkNoZWNrZWRJZDogeyBba2V5OiBzdHJpbmddOiBib29sZWFuIH0gPSB7fTtcbiAgbWFwT2ZDaGVja0xpc3Q6IHsgW2tleTogc3RyaW5nXTogYW55IH0gPSB7fTtcbiAgZmlsdGVyU3RyOiBzdHJpbmc7XG4gIC8qKiDooajmoLzlrp7pmYXlsZXnpLrnmoTmlbDmja7vvIjnrZvpgInnu5PmnpzmiJblhajph4/vvIkgKi9cbiAgZGlzcGxheUxpbmVzOiBBcnJheTxhbnk+ID0gW107XG4gIC8qKiDmmK/lkKblpITkuo7nrZvpgInnirbmgIEgKi9cbiAgaXNGaWx0ZXJEYXRhID0gZmFsc2U7XG4gIHN0b3JlRm9ybUxpbmVzRGF0YTogYW55ID0gW107IC8vIOe8k+WtmOeahOaAu+eahOWIl+ihqOaVsOaNrlxuICAvKiog5o6n5Yi2IG56LXRhYmxlIOmHjeW7uu+8mnNjcm9sbC55IOS7juaXoOWIsOacieaXtuW/hemhu+mHjeW7uu+8jOWQpuWImeihqOWktOS4jei3n+aoqua7miAqL1xuICBzaG93VGFibGUgPSB0cnVlO1xuICBwcml2YXRlIHVuYmluZEJvZHlTY3JvbGw6ICgoKSA9PiB2b2lkKSB8IG51bGwgPSBudWxsO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICBnZXQgZWZmZWN0aXZlU2Nyb2xsKCk6IHsgeD86IHN0cmluZzsgeT86IHN0cmluZyB9IHtcbiAgICAvLyDkuI3oh6rliqjooaUgbnpTY3JvbGwuee+8muaciSB5IOS8muaLhuihqOWktC/ooajkvZPvvIzml6DliJflrr3ml7bliJfplJnkvY3jgIJcbiAgICAvLyDku4XmnIkgeCDml7bnmoTnurXmu5rnlLEgbGVzc++8iG1heC1oZWlnaHQgKyBvdmVyZmxvdy1577yJ5om/5ouF77yM6KGo5aS0IHN0aWNreeOAglxuICAgIC8vIOS7heW9k+eItue7hOS7tuaYvuW8j+S8oOS6hiBzY3JvbGwueSDml7bmiY3otbAgbnotdGFibGUg5YiG5L2T57q15rua44CCXG4gICAgcmV0dXJuIHRoaXMuc2Nyb2xsICE9IG51bGwgPyB0aGlzLnNjcm9sbCA6IHRoaXMudGFibGVTY3JvbGw7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnN5bmNTdG9yZUZyb21MaW5lc0lucHV0KCk7XG4gICAgdGhpcy5hcHBseURpc3BsYXlGcm9tU3RvcmUoKTtcbiAgICB0aGlzLmNvdW50U2VsZWN0ZWQoKTtcbiAgICB0aGlzLmNhbGN1bGF0ZVRvdGFsKCk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zY2hlZHVsZVN5bmNIb3Jpem9udGFsU2Nyb2xsKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnVuYmluZEhlYWRlckJvZHlTY3JvbGxTeW5jKCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbXCJsaW5lc1wiXSkge1xuICAgICAgaWYgKCF0aGlzLmlzRmlsdGVyRGF0YSkge1xuICAgICAgICB0aGlzLnN5bmNTdG9yZUZyb21MaW5lc0lucHV0KCk7XG4gICAgICAgIHRoaXMuZGlzcGxheUxpbmVzID0gdGhpcy5saW5lcyB8fCBbXTtcbiAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICF0aGlzLnN0b3JlRm9ybUxpbmVzRGF0YSB8fFxuICAgICAgICB0aGlzLnN0b3JlRm9ybUxpbmVzRGF0YS5sZW5ndGggPT09IDBcbiAgICAgICkge1xuICAgICAgICB0aGlzLnN5bmNTdG9yZUZyb21MaW5lc0lucHV0KCk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuY291bnRTZWxlY3RlZCgpO1xuICAgIHRoaXMuY2FsY3VsYXRlVG90YWwoKTtcbiAgICBpZiAoY2hhbmdlc1tcImxpbmVzXCJdIHx8IGNoYW5nZXNbXCJzaG93U2VsZWN0ZWRcIl0pIHtcbiAgICAgIHRoaXMuc2NoZWR1bGVTeW5jSG9yaXpvbnRhbFNjcm9sbCgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2NoZWR1bGVTeW5jSG9yaXpvbnRhbFNjcm9sbChyZXRyeSA9IDApOiB2b2lkIHtcbiAgICBjb25zdCBkZWxheSA9IHJldHJ5ID09PSAwID8gMCA6IDUwO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuc2Nyb2xsID09IG51bGwpIHtcbiAgICAgICAgdGhpcy5zeW5jSG9yaXpvbnRhbFNjcm9sbCgpO1xuICAgICAgfVxuICAgICAgdGhpcy5iaW5kSGVhZGVyQm9keVNjcm9sbFN5bmMoMCk7XG4gICAgICBjb25zdCBhZnRlclggPVxuICAgICAgICAodGhpcy5lZmZlY3RpdmVTY3JvbGwgJiYgdGhpcy5lZmZlY3RpdmVTY3JvbGwueCkgfHxcbiAgICAgICAgKHRoaXMudGFibGVTY3JvbGwgJiYgdGhpcy50YWJsZVNjcm9sbC54KTtcbiAgICAgIGlmIChcbiAgICAgICAgdGhpcy5zY3JvbGwgPT0gbnVsbCAmJlxuICAgICAgICByZXRyeSA8IDUgJiZcbiAgICAgICAgdGhpcy5kaXNwbGF5TGluZXMgJiZcbiAgICAgICAgdGhpcy5kaXNwbGF5TGluZXMubGVuZ3RoID4gMCAmJlxuICAgICAgICAhYWZ0ZXJYICYmXG4gICAgICAgIG1lYXN1cmVUYWJsZUNvbFdpZHRoKHRoaXMubnpUYWJsZUNvbXBvbmVudCkgPT09IDBcbiAgICAgICkge1xuICAgICAgICB0aGlzLnNjaGVkdWxlU3luY0hvcml6b250YWxTY3JvbGwocmV0cnkgKyAxKTtcbiAgICAgIH1cbiAgICB9LCBkZWxheSk7XG4gIH1cblxuICBwcml2YXRlIHN5bmNIb3Jpem9udGFsU2Nyb2xsKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnNjcm9sbCAhPSBudWxsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGhhc0RhdGEgPSAhISh0aGlzLmRpc3BsYXlMaW5lcyAmJiB0aGlzLmRpc3BsYXlMaW5lcy5sZW5ndGgpO1xuICAgIGNvbnN0IG5leHRTY3JvbGwgPSByZXNvbHZlQXV0b1RhYmxlU2Nyb2xsKFxuICAgICAgdGhpcy5uelRhYmxlQ29tcG9uZW50LFxuICAgICAgaGFzRGF0YSxcbiAgICApO1xuICAgIGNvbnN0IG5leHRYID0gbmV4dFNjcm9sbCA/IG5leHRTY3JvbGwueCA6IG51bGw7XG4gICAgLy8g6Ieq5Yqo5rWL566X5Y+q6K6+IHjvvIzkuI3orr4gee+8iOS4jiAyLjEuNjQg5YmN5LiA6Ie077yM6YG/5YWN5peg5YiX5a695pe26KGo5aS0L+ihqOS9k+mUmeS9je+8iVxuICAgIGlmICh0aGlzLnRhYmxlU2Nyb2xsICYmIHRoaXMudGFibGVTY3JvbGwueCA9PT0gbmV4dFggJiYgIXRoaXMudGFibGVTY3JvbGwueSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBwcmV2SGFzWSA9ICEhKHRoaXMudGFibGVTY3JvbGwgJiYgdGhpcy50YWJsZVNjcm9sbC55KTtcbiAgICB0aGlzLnRhYmxlU2Nyb2xsID0gbmV4dFggPyB7IHg6IG5leHRYIH0gOiBudWxsO1xuICAgIGlmIChwcmV2SGFzWSkge1xuICAgICAgdGhpcy5yZW1vdW50VGFibGUoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgdGhpcy5iaW5kSGVhZGVyQm9keVNjcm9sbFN5bmMoMCk7XG4gIH1cblxuICAvKiog6YeN5bu6IG56LXRhYmxl77yM6K6pIGhlYWRlci9ib2R5IOa7muWKqOWQjOatpeWcqCBBZnRlclZpZXdJbml0IOmHjeaWsOe7keWumiAqL1xuICBwcml2YXRlIHJlbW91bnRUYWJsZSgpOiB2b2lkIHtcbiAgICB0aGlzLnVuYmluZEhlYWRlckJvZHlTY3JvbGxTeW5jKCk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnNob3dUYWJsZSA9IGZhbHNlO1xuICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5zaG93VGFibGUgPSB0cnVlO1xuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmJpbmRIZWFkZXJCb2R5U2Nyb2xsU3luYygwKSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKiDooajkvZPmqKrmu5rml7blkIzmraXooajlpLTvvIjlhZzlupUgbmctem9ycm8g55uR5ZCs5Lii5aSx77yJ77ybRE9NIOacquWwsee7quaXtumHjeivlSAqL1xuICBwcml2YXRlIGJpbmRIZWFkZXJCb2R5U2Nyb2xsU3luYyhyZXRyeSA9IDApOiB2b2lkIHtcbiAgICB0aGlzLnVuYmluZEhlYWRlckJvZHlTY3JvbGxTeW5jKCk7XG4gICAgaWYgKCF0aGlzLm56VGFibGVDb21wb25lbnQgfHwgISh0aGlzLmVmZmVjdGl2ZVNjcm9sbCAmJiB0aGlzLmVmZmVjdGl2ZVNjcm9sbC54KSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCB1bmJpbmQgPSBiaW5kTnpUYWJsZUhlYWRlckJvZHlTY3JvbGxTeW5jKHRoaXMubnpUYWJsZUNvbXBvbmVudCk7XG4gICAgaWYgKHVuYmluZCkge1xuICAgICAgdGhpcy51bmJpbmRCb2R5U2Nyb2xsID0gdW5iaW5kO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAocmV0cnkgPCA4KSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuYmluZEhlYWRlckJvZHlTY3JvbGxTeW5jKHJldHJ5ICsgMSksIDUwKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHVuYmluZEhlYWRlckJvZHlTY3JvbGxTeW5jKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnVuYmluZEJvZHlTY3JvbGwpIHtcbiAgICAgIHRoaXMudW5iaW5kQm9keVNjcm9sbCgpO1xuICAgICAgdGhpcy51bmJpbmRCb2R5U2Nyb2xsID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHN5bmNTdG9yZUZyb21MaW5lc0lucHV0KHNvdXJjZT86IEFycmF5PGFueT4pOiB2b2lkIHtcbiAgICBjb25zdCBkYXRhID0gc291cmNlIHx8IHRoaXMubGluZXM7XG4gICAgdGhpcy5zdG9yZUZvcm1MaW5lc0RhdGEgPSBkYXRhID8gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShkYXRhKSkgOiBbXTtcbiAgfVxuXG4gIC8qKiDmnKrnrZvpgInml7bkuI7niLbnu4Tku7YgbGluZXMg5ZCM5rqQ77yM6YG/5YWN5qih5p2/5YaFIG5nTW9kZWwg5LiO54i25pWw5o2u6ISx6IqCICovXG4gIHByaXZhdGUgYXBwbHlEaXNwbGF5RnJvbVN0b3JlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmxpbmVzICYmIHRoaXMubGluZXMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5kaXNwbGF5TGluZXMgPSB0aGlzLmxpbmVzO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmRpc3BsYXlMaW5lcyA9IHRoaXMuc3RvcmVGb3JtTGluZXNEYXRhXG4gICAgICA/IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5zdG9yZUZvcm1MaW5lc0RhdGEpKVxuICAgICAgOiBbXTtcbiAgfVxuXG4gIHByaXZhdGUgcmVzdG9yZUZyb21TdG9yZSgpOiB2b2lkIHtcbiAgICB0aGlzLmlzRmlsdGVyRGF0YSA9IGZhbHNlO1xuICAgIHRoaXMuYXBwbHlEaXNwbGF5RnJvbVN0b3JlKCk7XG4gICAgdGhpcy50YWJsZUxvYWRpbmcgPSBmYWxzZTtcbiAgICB0aGlzLmNvdW50U2VsZWN0ZWQoKTtcbiAgICB0aGlzLmNhbGN1bGF0ZVRvdGFsKCk7XG4gICAgdGhpcy5zY2hlZHVsZVN5bmNIb3Jpem9udGFsU2Nyb2xsKCk7XG4gIH1cblxuICAvLyDlhajlsYDmgKfnmoTmkJzntKLvvIjmtrXnm5bpobXpnaLkuIrmiYDmnInnmoTlj6/op4bmloflrZfvvIlcbiAgc2VhcmNoTGluZXMoKSB7XG4gICAgLy8g5riF56m65pCc57Si77ya5Y2z5L2/5b2T5YmN5bGV56S65Li656m65Lmf6KaB6IO95LuO57yT5a2Y5oGi5aSN77yI5a+56b2QIGhkLWZvcm0tbGluZXPvvIlcbiAgICBpZiAoIXRoaXMuZmlsdGVyU3RyIHx8ICF0aGlzLmZpbHRlclN0ci50cmltKCkpIHtcbiAgICAgIGlmICghdGhpcy5zdG9yZUZvcm1MaW5lc0RhdGEgfHwgdGhpcy5zdG9yZUZvcm1MaW5lc0RhdGEubGVuZ3RoIDwgMSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB0aGlzLnRhYmxlTG9hZGluZyA9IHRydWU7XG4gICAgICB0aGlzLnJlc3RvcmVGcm9tU3RvcmUoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKCF0aGlzLnN0b3JlRm9ybUxpbmVzRGF0YSB8fCB0aGlzLnN0b3JlRm9ybUxpbmVzRGF0YS5sZW5ndGggPCAxKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMudGFibGVMb2FkaW5nID0gdHJ1ZTtcbiAgICBjb25zdCBmaWx0ZXJWYWx1ZSA9IHRoaXMuZmlsdGVyU3RyLnRyaW0oKS50b0xvd2VyQ2FzZSgpO1xuICAgIHRoaXMuaXNGaWx0ZXJEYXRhID0gdHJ1ZTtcblxuICAgIGNvbnN0IGZpbHRlcmVkRGF0YSA9IHRoaXMuc3RvcmVGb3JtTGluZXNEYXRhLmZpbHRlcigoZGF0YTogYW55KSA9PiB7XG4gICAgICBpZiAoIXRoaXMuc2VhcmNoRmllbGRzIHx8IHRoaXMuc2VhcmNoRmllbGRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgT2JqZWN0LmtleXMoZGF0YSkpIHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBkYXRhW2l0ZW1dICYmXG4gICAgICAgICAgICBkYXRhW2l0ZW1dLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhmaWx0ZXJWYWx1ZSlcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgdGhpcy5zZWFyY2hGaWVsZHMpIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIGRhdGFbaXRlbV0gJiZcbiAgICAgICAgICBkYXRhW2l0ZW1dLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhmaWx0ZXJWYWx1ZSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9KTtcbiAgICB0aGlzLmRpc3BsYXlMaW5lcyA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoZmlsdGVyZWREYXRhKSk7XG4gICAgdGhpcy50YWJsZUxvYWRpbmcgPSBmYWxzZTtcbiAgICB0aGlzLmNvdW50U2VsZWN0ZWQoKTtcbiAgICB0aGlzLmNhbGN1bGF0ZVRvdGFsKCk7XG4gICAgdGhpcy5zY2hlZHVsZVN5bmNIb3Jpem9udGFsU2Nyb2xsKCk7XG4gIH1cblxuICBwcml2YXRlIGNvdW50U2VsZWN0ZWQoKTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgdGhpcy5zaG93U2VsZWN0ZWQgJiZcbiAgICAgIHRoaXMuc2VsZWN0ZWRGaWVsZCAmJlxuICAgICAgdGhpcy5kaXNwbGF5TGluZXMgJiZcbiAgICAgIHRoaXMuZGlzcGxheUxpbmVzLmxlbmd0aFxuICAgICkge1xuICAgICAgdGhpcy5kaXNwbGF5TGluZXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICBpZiAoaXRlbVt0aGlzLnNlbGVjdGVkRmllbGRdID09PSB0cnVlICYmICF0aGlzLmlzU2VsZWN0RGlzYWJsZWQoaXRlbSkpIHtcbiAgICAgICAgICB0aGlzLm1hcE9mQ2hlY2tlZElkW2l0ZW1bdGhpcy5zZWxlY3RGaWVsZF1dID0gdHJ1ZTtcbiAgICAgICAgICB0aGlzLm1hcE9mQ2hlY2tMaXN0W2l0ZW1bdGhpcy5zZWxlY3RGaWVsZF1dID0gaXRlbTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICBpZiAoXG4gICAgICAgIHRoaXMuZGlzcGxheUxpbmVzLmxlbmd0aCA9PT0gT2JqZWN0LmtleXModGhpcy5tYXBPZkNoZWNrTGlzdCkubGVuZ3RoXG4gICAgICApIHtcbiAgICAgICAgdGhpcy5pc0FsbERpc3BsYXlEYXRhQ2hlY2tlZCA9IHRydWU7XG4gICAgICAgIHRoaXMuaXNJbmRldGVybWluYXRlID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBnZXQgTG9kYXNoUm91bmQoKSB7XG4gICAgcmV0dXJuIHJvdW5kO1xuICB9XG5cbiAgZHJvcChldmVudDogQ2RrRHJhZ0Ryb3A8c3RyaW5nW10+KTogdm9pZCB7XG4gICAgbW92ZUl0ZW1JbkFycmF5KHRoaXMuZGlzcGxheUxpbmVzLCBldmVudC5wcmV2aW91c0luZGV4LCBldmVudC5jdXJyZW50SW5kZXgpO1xuICAgIHRoaXMuZGlzcGxheUxpbmVzID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLmRpc3BsYXlMaW5lcykpO1xuICAgIGlmICghdGhpcy5pc0ZpbHRlckRhdGEpIHtcbiAgICAgIHRoaXMuc3RvcmVGb3JtTGluZXNEYXRhID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLmRpc3BsYXlMaW5lcykpO1xuICAgIH1cbiAgfVxuXG4gIGNhbGN1bGF0ZVRvdGFsKCkge1xuICAgIC8vIOi/memHjOWkhOeQhuWQiOiuoeaVsOaNrlxuICAgIGlmICh0aGlzLnNob3dUb3RhbCAmJiB0aGlzLmRpc3BsYXlMaW5lcyAmJiB0aGlzLmRpc3BsYXlMaW5lcy5sZW5ndGgpIHtcbiAgICAgIHRoaXMudG90YWxPcHRpb25MaXN0ID0gbmV3IEFycmF5KE51bWJlcih0aGlzLmNvbHVtbnNOdW1iZXIpIC0gMSkuZmlsbChcIlwiKTtcbiAgICAgIHRoaXMudG90YWxPcHRpb24uZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICBpZiAoaXRlbS5pbnNlcnRJbmRleCAmJiAoaXRlbS5pbnNlcnRWYWx1ZSB8fCBpdGVtLmluc2VydFZhbHVlID09PSAwKSkge1xuICAgICAgICAgIHRoaXMudG90YWxPcHRpb25MaXN0W2l0ZW0uaW5zZXJ0SW5kZXggLSAxXSA9IHtcbiAgICAgICAgICAgIHZhbHVlOiBpdGVtLmluc2VydFZhbHVlLFxuICAgICAgICAgICAgYWxpZ246IGl0ZW0uYWxpZ24gfHwgXCJyaWdodFwiLFxuICAgICAgICAgICAgc2hvd0RlY2ltYWw6IGl0ZW0uc2hvd0RlY2ltYWwgfHwgZmFsc2UsXG4gICAgICAgICAgICBwcmVzZXJ2ZU51bWJlcjogaXRlbS5wcmVzZXJ2ZU51bWJlciAhPSBudWxsID8gaXRlbS5wcmVzZXJ2ZU51bWJlciA6IDIsXG4gICAgICAgICAgICBpc0hpZGU6IGl0ZW0uaXNIaWRlIHx8IGZhbHNlLFxuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8vIOihqOagvOWLvumAiemAu+i+kVxuICBjdXJyZW50UGFnZURhdGFDaGFuZ2UoJGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLmxpc3RPZkRpc3BsYXlEYXRhID0gJGV2ZW50O1xuICAgIHRoaXMucmVmcmVzaFN0YXR1cygpO1xuICAgIHRoaXMuc2NoZWR1bGVTeW5jSG9yaXpvbnRhbFNjcm9sbCgpO1xuICB9XG5cbiAgcmVzZXRTdGF0dXMoKSB7XG4gICAgdGhpcy5pc0FsbERpc3BsYXlEYXRhQ2hlY2tlZCA9IGZhbHNlO1xuICAgIHRoaXMuaXNJbmRldGVybWluYXRlID0gZmFsc2U7XG4gICAgdGhpcy5tYXBPZkNoZWNrZWRJZCA9IHt9O1xuICAgIHRoaXMubWFwT2ZDaGVja0xpc3QgPSB7fTtcbiAgICB0aGlzLnNlbGVjdEV2ZW50LmVtaXQoW10pO1xuICB9XG5cbiAgcmVmcmVzaFN0YXR1cyhldmVudDogYm9vbGVhbiA9IGZhbHNlLCBkYXRhOiBhbnkgPSBudWxsKTogdm9pZCB7XG4gICAgaWYgKGRhdGEpIHtcbiAgICAgIGlmIChldmVudCAmJiB0aGlzLmlzU2VsZWN0RGlzYWJsZWQoZGF0YSkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdGhpcy5tYXBPZkNoZWNrZWRJZFtkYXRhW3RoaXMuc2VsZWN0RmllbGRdXSA9IGV2ZW50O1xuICAgICAgaWYgKGV2ZW50KSB7XG4gICAgICAgICF0aGlzLm1hcE9mQ2hlY2tMaXN0W2RhdGFbdGhpcy5zZWxlY3RGaWVsZF1dICYmXG4gICAgICAgICAgKHRoaXMubWFwT2ZDaGVja0xpc3RbZGF0YVt0aGlzLnNlbGVjdEZpZWxkXV0gPSBkYXRhKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMubWFwT2ZDaGVja0xpc3RbZGF0YVt0aGlzLnNlbGVjdEZpZWxkXV0gJiZcbiAgICAgICAgICBkZWxldGUgdGhpcy5tYXBPZkNoZWNrTGlzdFtkYXRhW3RoaXMuc2VsZWN0RmllbGRdXTtcbiAgICAgIH1cbiAgICB9XG4gICAgY29uc3Qgc2VsZWN0YWJsZUxpc3QgPSB0aGlzLmxpc3RPZkRpc3BsYXlEYXRhLmZpbHRlcihcbiAgICAgIChpdGVtKSA9PiAhdGhpcy5pc1NlbGVjdERpc2FibGVkKGl0ZW0pLFxuICAgICk7XG4gICAgdGhpcy5pc0FsbERpc3BsYXlEYXRhQ2hlY2tlZCA9XG4gICAgICBzZWxlY3RhYmxlTGlzdC5sZW5ndGggPiAwICYmXG4gICAgICBzZWxlY3RhYmxlTGlzdC5ldmVyeSgoaXRlbSkgPT4gdGhpcy5tYXBPZkNoZWNrZWRJZFtpdGVtW3RoaXMuc2VsZWN0RmllbGRdXSk7XG4gICAgdGhpcy5pc0luZGV0ZXJtaW5hdGUgPVxuICAgICAgc2VsZWN0YWJsZUxpc3Quc29tZShcbiAgICAgICAgKGl0ZW0pID0+IHRoaXMubWFwT2ZDaGVja2VkSWRbaXRlbVt0aGlzLnNlbGVjdEZpZWxkXV0sXG4gICAgICApICYmICF0aGlzLmlzQWxsRGlzcGxheURhdGFDaGVja2VkO1xuICAgIC8vIOinpuWPkXNlbGVjdOS6i+S7tlxuICAgIGlmICh0aGlzLnNlbGVjdEV2ZW50KSB7XG4gICAgICB0aGlzLnNlbGVjdEV2ZW50LmVtaXQoT2JqZWN0LnZhbHVlcyh0aGlzLm1hcE9mQ2hlY2tMaXN0KSk7XG4gICAgfVxuICB9XG5cbiAgY2hlY2tBbGwodmFsdWU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmxpc3RPZkRpc3BsYXlEYXRhLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgIGlmICh0aGlzLmlzU2VsZWN0RGlzYWJsZWQoaXRlbSkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICF0aGlzLm1hcE9mQ2hlY2tMaXN0W2l0ZW1bdGhpcy5zZWxlY3RGaWVsZF1dICYmXG4gICAgICAgICAgKHRoaXMubWFwT2ZDaGVja0xpc3RbaXRlbVt0aGlzLnNlbGVjdEZpZWxkXV0gPSBpdGVtKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMubWFwT2ZDaGVja0xpc3RbaXRlbVt0aGlzLnNlbGVjdEZpZWxkXV0gJiZcbiAgICAgICAgICBkZWxldGUgdGhpcy5tYXBPZkNoZWNrTGlzdFtpdGVtW3RoaXMuc2VsZWN0RmllbGRdXTtcbiAgICAgIH1cbiAgICAgIHRoaXMubWFwT2ZDaGVja2VkSWRbaXRlbVt0aGlzLnNlbGVjdEZpZWxkXV0gPSB2YWx1ZTtcbiAgICB9KTtcbiAgICB0aGlzLnJlZnJlc2hTdGF0dXMoKTtcbiAgfVxuXG4gIC8qKiDlvZPliY3ooYzmmK/lkKbnpoHnlKjli77pgIkgKi9cbiAgaXNTZWxlY3REaXNhYmxlZChkYXRhOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISEoXG4gICAgICB0aGlzLnNlbGVjdERpc2FibGVkRmllbGQgJiZcbiAgICAgIGRhdGEgJiZcbiAgICAgIGRhdGFbdGhpcy5zZWxlY3REaXNhYmxlZEZpZWxkXSA9PT0gdHJ1ZVxuICAgICk7XG4gIH1cblxuICAvKiog5b2T5YmN6KGM5piv5ZCm5aSx5pWIICovXG4gIGlzSW52YWxpZFJvdyhkYXRhOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISEoXG4gICAgICB0aGlzLnJvd0ludmFsaWRGaWVsZCAmJlxuICAgICAgZGF0YSAmJlxuICAgICAgZGF0YVt0aGlzLnJvd0ludmFsaWRGaWVsZF0gPT09IHRydWVcbiAgICApO1xuICB9XG59XG4iXX0=
|