ngx-edu-sharing-metaqs2 0.9.46 → 0.9.47
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.
|
@@ -154,7 +154,7 @@ export class CountsWithHistoryComponent extends BaseHistoricDataTableDirective {
|
|
|
154
154
|
}
|
|
155
155
|
}), takeUntilDestroyed(this.destroyRef))
|
|
156
156
|
.subscribe();
|
|
157
|
-
this.endValues$.subscribe();
|
|
157
|
+
this.endValues$.subscribe(() => { });
|
|
158
158
|
}
|
|
159
159
|
getCountByDate(data) {
|
|
160
160
|
console.debug('getCountByDate', data);
|
|
@@ -206,4 +206,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
206
206
|
MatRipple,
|
|
207
207
|
], template: "<mat-card appearance=\"raised\">\n <mat-card-header *ngIf=\"pageTitle\">\n <mat-card-title data-test-id=\"page-title\">\n Qualit\u00E4tsmetrik: {{ pageTitle | translate }}{{ isLoading() ? \": Lade neue Daten.\" : \"\" }}\n </mat-card-title>\n </mat-card-header>\n <!-- consider to put the filter in the table header to avoid that it is scrolled out of view-->\n <!-- show the filter after the values are loaded to avoid loading current data twice -->\n <mat-card-content class=\"toolbar\">\n <metaqs2-datepicker style=\"display: inline-block\" matRipple [disabled]=\"isLoading() || !isHistoryEnabled()\" [inputGroup]=\"range\" *ngIf=\"timeFilterLoaded() && isHistoryEnabled()\"></metaqs2-datepicker>\n <div style=\"flex: 1 1 auto\"></div>\n <mat-slide-toggle [ngModel]=\"isHistoryEnabled()\" (ngModelChange)=\"isHistoryEnabled.set($event)\" [disabled]=\"isLoading()\">\n <label>Zeige historische Daten</label>\n </mat-slide-toggle>\n </mat-card-content>\n</mat-card>\n<mat-card>\n <metaqs2-progress-spinner [displayProgressSpinner]=\"isLoading()\"></metaqs2-progress-spinner>\n <table [class.while-loading]=\"isLoading()\" mat-table [dataSource]=\"recentTypeCount$.value.rows\"\n class=\"quality-matrix\">\n <!-- Define columns of table -->\n <!-- Row Header Column -->\n <ng-container matColumnDef=\"label-col\" sticky>\n <th [attr.rowspan]=\"isHistoryEnabled() ? '2' : '1'\" mat-header-cell *matHeaderCellDef>\n <div>Quelle</div>\n </th>\n <td\n mat-cell\n *matCellDef=\"let row\"\n [matTooltip]=\"row.meta.alt_label\"\n class=\"label-col mat-cell-level-{{row.meta.level + 1}}\"\n >\n {{ row.meta.label }}\n </td>\n </ng-container>\n <!-- one column for each type -->\n <ng-container *ngFor=\"let col of (recentTypeCount$ | async)?.columns; trackBy:columnIdent\"\n [matColumnDef]=\"col.id + '_type'\">\n <th [attr.colspan]=\"isHistoryEnabled() ? '2' : '1'\" mat-header-cell *matHeaderCellDef [matTooltip]=\"col.label\">\n {{ columnTranslationkey ? (columnTranslationkey + col.label | translate) : col.label }}\n </th>\n </ng-container>\n <!-- one column for each type for the most current date-->\n <ng-container *ngFor=\"let col of (recentTypeCount$ | async)?.columns; trackBy:columnIdent\"\n [matColumnDef]=\"col.id + '_recent'\">\n <th class=\"recent-data-cell\" mat-header-cell *matHeaderCellDef\n matTooltip=\"no tooltip\">{{ range.controls.end.value.toLocaleString(DateTime.DATE_SHORT) }}\n </th>\n <td class=\"recent-data-cell\" mat-cell *matCellDef=\"let row\">\n <a [attr.href]=\"openInEditor(row.meta.id, col.id) | async\" target=\"editor_frontend\">{{ row.counts[col.id] ?? '\u2013' }}</a>\n </td>\n </ng-container>\n <!-- one column for each type for the older date-->\n <ng-container *ngFor=\"let col of (recentTypeCount$ | async)?.columns; trackBy:columnIdent\"\n [matColumnDef]=\"col.id + '_past'\">\n <th class=\"past-data-cell\" mat-header-cell *matHeaderCellDef matTooltip=\"no tooltip\">\n {{ (pastTypeCount$ | async)?.rows?.length ? range.controls.start.value.toLocaleString(DateTime.DATE_SHORT) : 'no past data' }}\n </th>\n <td class=\"past-data-cell\" mat-cell *matCellDef=\"let row;\" >\n <ng-container *ngIf=\"(pastTypeCount$ | async)?.rows?.length && pastTypeCount(row, col.id) as trend\">\n <span [class]=\"trend.trend\"> {{ trend.value ?? '\u2013' }}\n <mat-icon *ngIf=\"trend.value\" aria-hidden=\"false\" [attr.aria-label]=\"trend.trend\" [fontIcon]=\"trend.trend!\" /></span>\n <span class=\"cdk-visually-hidden\">{{ trend.trend }}</span>\n </ng-container>\n </td>\n </ng-container>\n <!-- generate actual table -->\n <tr mat-header-row *matHeaderRowDef=\"['label-col'].concat(typeColumns()); sticky:true;\"></tr>\n <tr [hidden]=\"!isHistoryEnabled()\" mat-header-row *matHeaderRowDef=\"allColumns(); sticky: true;\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: ['label-col'].concat(allColumns())\"></tr>\n\n </table>\n</mat-card>\n", styles: [".while-loading{filter:blur(2px)}tr:nth-child(2n){background-color:#e4e4e4}tr:nth-child(2n)>td.label-col,tr:nth-child(2n) td.recent-data-cell{border-right:1px solid white}tr:nth-child(odd){background-color:#fff}tr:nth-child(odd)>td.label-col,tr:nth-child(odd) td.recent-data-cell{border-right:1px solid #e4e4e4}td.label-col{text-align:left}.mat-mdc-header-cell,.mat-mdc-cell{text-align:center}.mat-mdc-header-cell a[href],.mat-mdc-cell a[href]{color:var(--mat-table-row-item-label-text-color);cursor:pointer;text-decoration:underline}.mat-mdc-header-cell a[href]:hover,.mat-mdc-cell a[href]:hover{text-decoration:underline}.mat-mdc-header-cell mat-icon,.mat-mdc-cell mat-icon{margin-left:5px;vertical-align:middle}.trending_down{color:#4abeff}.trending_up{color:#c20808}.toolbar,.actionbar{display:flex;flex-direction:row;justify-content:flex-start;align-items:center;gap:.5rem}\n"] }]
|
|
208
208
|
}] });
|
|
209
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291bnRzLXdpdGgtaGlzdG9yeS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1tZXRhLXdpZGdldHMtbGliL3NyYy9saWIvY291bnRzLXdpdGgtaGlzdG9yeS9jb3VudHMtd2l0aC1oaXN0b3J5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLW1ldGEtd2lkZ2V0cy1saWIvc3JjL2xpYi9jb3VudHMtd2l0aC1oaXN0b3J5L2NvdW50cy13aXRoLWhpc3RvcnkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRyxPQUFPLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzdHLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNySCxPQUFPLEVBQUUsZUFBZSxFQUFjLEVBQUUsRUFBRSxPQUFPLEVBQWtCLE1BQU0sTUFBTSxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFckQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUNqQyxP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UCxJQUFJLDRGQUNKLFdBQVcsK1ZBQ1gsY0FBYyxxVUFDZCxTQUFTLDhDQUNULHdCQUF3QiwwTEFDeEIsU0FBUzs7NEZBS0EsMEJBQTBCO2tCQTlCdEMsU0FBUzsrQkFDRSw2QkFBNkIsY0FDM0IsSUFBSSxXQUNQO3dCQUNQLGFBQWE7d0JBQ2IsT0FBTzt3QkFDUCxhQUFhO3dCQUNiLFlBQVk7d0JBQ1osY0FBYzt3QkFDZCxVQUFVO3dCQUNWLGNBQWM7d0JBQ2QsUUFBUTt3QkFDUixlQUFlO3dCQUNmLFlBQVk7d0JBQ1osZUFBZTt3QkFDZixNQUFNO3dCQUNOLFNBQVM7d0JBQ1QsT0FBTzt3QkFDUCxtQkFBbUI7d0JBQ25CLE9BQU87d0JBQ1AsSUFBSTt3QkFDSixXQUFXO3dCQUNYLGNBQWM7d0JBQ2QsU0FBUzt3QkFDVCx3QkFBd0I7d0JBQ3hCLFNBQVM7cUJBQ1YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGNvbXB1dGVkLCBEZXN0cm95UmVmLCBEaXJlY3RpdmUsIGluamVjdCwgSW5wdXQsIE9uSW5pdCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRDYXJkLCBNYXRDYXJkQ29udGVudCwgTWF0Q2FyZEhlYWRlciwgTWF0Q2FyZE1vZHVsZSwgTWF0Q2FyZFRpdGxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2FyZCc7XG5pbXBvcnQgeyBNYXRUb29sdGlwIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XG5pbXBvcnQgeyBNYXRIZWFkZXJSb3csIE1hdEhlYWRlclJvd0RlZiwgTWF0Um93LCBNYXRSb3dEZWYsIE1hdFRhYmxlLCBNYXRUYWJsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYmxlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgb2YsIFN1YmplY3QsIFVuc3Vic2NyaWJhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IEFzeW5jUGlwZSwgTmdGb3JPZiwgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBNZXRhQXBpU2VydmljZSB9IGZyb20gJy4uL21ldGEtYXBpLnNlcnZpY2UnO1xuaW1wb3J0IHsgRmlsdGVyLCBNYXRyaXhSb3dXaXRoQ291bnRzLCBNYXRyaXhXaXRoQ291bnRzLCBRdWFsaXR5TWF0cml4SGVhZGVyIH0gZnJvbSAnLi4vamF2YS1hcGknO1xuaW1wb3J0IHsgRGF0ZVRpbWUgfSBmcm9tICdsdXhvbic7XG5pbXBvcnQge1xuICBkaXN0aW5jdFVudGlsQ2hhbmdlZCxcbiAgZmlsdGVyLFxuICBmaW5hbGl6ZSxcbiAgbWFwLFxuICBza2lwV2hpbGUsXG4gIHN3aXRjaE1hcCxcbiAgdGFrZSxcbiAgdGFwLFxuICB0aHJvdHRsZVRpbWUsXG59IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRGF0ZXBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvZmlsdGVyL2RhdGVwaWNrZXIvZGF0ZXBpY2tlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWF0SWNvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkLCB0b09ic2VydmFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBNYXRTbGlkZVRvZ2dsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NsaWRlLXRvZ2dsZSc7XG5pbXBvcnQgeyBQcm9ncmVzc1NwaW5uZXJDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL2xvYWRpbmdfaW5kaWNhdG9yL3Byb2dyZXNzLXNwaW5uZXIvcHJvZ3Jlc3Mtc3Bpbm5lci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRWRpdG9yaWFsTGlua1NlcnZpY2UgfSBmcm9tICcuLi9jb21wb25lbnRzL2VkaXRvcmlhbC1saW5rLXNlcnZpY2UvZWRpdG9yaWFsLWxpbmsuc2VydmljZSc7XG5pbXBvcnQgeyBNYXRSaXBwbGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcblxuZXhwb3J0IHR5cGUgUGlja0tleXNCeVByb3BlcnR5VHlwZTxUT2JqZWN0IGV4dGVuZHMgb2JqZWN0LCBUUHJvcGVydHlUeXBlPiA9IHtcbiAgW1RLZXkgaW4ga2V5b2YgVE9iamVjdF06IFRPYmplY3RbVEtleV0gZXh0ZW5kcyBUUHJvcGVydHlUeXBlID8gVEtleSA6IG5ldmVyO1xufVtrZXlvZiBUT2JqZWN0XTtcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZUhpc3RvcmljRGF0YVRhYmxlRGlyZWN0aXZlPFxuICBUTG9hZGluZ0RhdGEgZXh0ZW5kcyBvYmplY3QsXG4gIFRNZXRob2RUeXBlIGV4dGVuZHMgTWV0YUFwaVNlcnZpY2Vba2V5b2YgTWV0YUFwaVNlcnZpY2VdICYgRnVuY3Rpb25cbj4ge1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgbWV0YUFwaSA9IGluamVjdChNZXRhQXBpU2VydmljZSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgbGlua1NlcnZpY2UgPSBpbmplY3QoRWRpdG9yaWFsTGlua1NlcnZpY2UpO1xuXG4gIEBJbnB1dCgpXG4gIGFwaU1ldGhvZDogUGlja0tleXNCeVByb3BlcnR5VHlwZTxNZXRhQXBpU2VydmljZSwgVE1ldGhvZFR5cGU+O1xuICBASW5wdXQoKVxuICBjb2x1bW5UcmFuc2xhdGlvbmtleTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIEBJbnB1dCgpXG4gIHBhZ2VUaXRsZTogc3RyaW5nO1xuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KVxuICBzb3VyY2VUeXBlOiAncmVwbGljYXRpb25Tb3VyY2UnIHwgJ2NvbGxlY3Rpb24nO1xuXG4gIHByb3RlY3RlZCBsb2FkaW5nQ291bnQgPSBzaWduYWwoMCk7XG4gIHByb3RlY3RlZCByZWFkb25seSBpc0xvYWRpbmcgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmxvYWRpbmdDb3VudCgpID4gMCk7XG4gIHJlYWRvbmx5IGlzSGlzdG9yeUVuYWJsZWQgPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgaXNIaXN0b3J5RW5hYmxlZCQgPSB0b09ic2VydmFibGUodGhpcy5pc0hpc3RvcnlFbmFibGVkKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgdGltZUZpbHRlckxvYWRlZCA9IHNpZ25hbChmYWxzZSk7XG4gIHByb3RlY3RlZCByZWNlbnRUeXBlQ291bnQkID0gbmV3IEJlaGF2aW9yU3ViamVjdCh7IGNvbHVtbnM6IFtdLCByb3dzOiBbXSB9IGFzIE1hdHJpeFdpdGhDb3VudHMpO1xuICBwcm90ZWN0ZWQgcGFzdFR5cGVDb3VudCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHsgY29sdW1uczogW10sIHJvd3M6IFtdIH0gYXMgTWF0cml4V2l0aENvdW50cyk7XG4gIHByb3RlY3RlZCByZWFkb25seSBEYXRlVGltZSA9IERhdGVUaW1lO1xuICBwdWJsaWMgY29sdW1ucyA9IHNpZ25hbChbXSBhcyBBcnJheTxRdWFsaXR5TWF0cml4SGVhZGVyPik7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGRhdGFGb3JQYXN0RGF0YSQgPSBuZXcgU3ViamVjdDxQYXJ0aWFsPFRMb2FkaW5nRGF0YT4+KCk7XG4gIHByb3RlY3RlZCByZWFkb25seSBkYXRhRm9yUmVjZW50RGF0YSQgPSBuZXcgU3ViamVjdDxQYXJ0aWFsPFRMb2FkaW5nRGF0YT4+KCk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHN0YXJ0VmFsdWVzJCA9IHRoaXMuZGF0YUZvclBhc3REYXRhJC5waXBlKFxuICAgIGZpbHRlcigoZGF0YSkgPT4gdGhpcy52YWxpZGF0ZUxvYWRpbmdEYXRhKGRhdGEpKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgoYSwgYikgPT4gdGhpcy5jb21wYXJlTG9hZGluZ0RhdGFFcXVhbChhLCBiKSksXG4gICAgdGhyb3R0bGVUaW1lKDUwMCksXG4gICAgc3dpdGNoTWFwKChzdGFydCkgPT4gdGhpcy5nZXRDb3VudEJ5RGF0ZShzdGFydCkpLFxuICAgIHRhcCgoaXQpID0+IHRoaXMucGFzdFR5cGVDb3VudCQubmV4dChpdCkpLFxuICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpXG4gICk7XG4gIHByb3RlY3RlZCByZWFkb25seSBlbmRWYWx1ZXMkID0gdGhpcy5kYXRhRm9yUmVjZW50RGF0YSQucGlwZShcbiAgICBmaWx0ZXIoKGRhdGEpID0+IHRoaXMudmFsaWRhdGVMb2FkaW5nRGF0YShkYXRhKSksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKGEsIGIpID0+IHRoaXMuY29tcGFyZUxvYWRpbmdEYXRhRXF1YWwoYSwgYikpLFxuICAgIHRocm90dGxlVGltZSg1MDApLFxuICAgIHN3aXRjaE1hcCgoZW5kKSA9PiB0aGlzLmdldENvdW50QnlEYXRlKGVuZCkpLFxuICAgIHRhcCgoaXQpID0+IHRoaXMucmVjZW50VHlwZUNvdW50JC5uZXh0KGl0KSksXG4gICAgdGFwKChpdCkgPT4gdGhpcy5jb2x1bW5zLnNldChpdC5jb2x1bW5zLnNsaWNlKCkpKSxcbiAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKVxuICApO1xuXG4gIHByb3RlY3RlZCBzdGFydERhdGVTdWJzY3JpcHRpb246IFVuc3Vic2NyaWJhYmxlIHwgdW5kZWZpbmVkO1xuICBwcm90ZWN0ZWQgc3RhcnRWYWx1ZXNTdWJzY3JpcHRpb246IFVuc3Vic2NyaWJhYmxlIHwgdW5kZWZpbmVkO1xuXG4gIC8qIEluIHRoaXMgd2lkZ2V0J3MgYmFja2VuZCB3ZSBkbyBoYXZlIGRhdGEgZm9yIHRvZGF5XG4gICAqIHRoZXJlZm9yZSB3ZSBzZXQgdGhlIGVuZCBkYXRlIHRvIHRvZGF5IGFuZCB1c2UgdGhlIHRpbWVyYW5nZSgpIGVuZHBvaW50IHRvIG9ubHkgc2V0IHRoZSBzdGFydCBkYXRlXG4gICAqL1xuICByZWFkb25seSByYW5nZTogRm9ybUdyb3VwPHtcbiAgICBzdGFydDogRm9ybUNvbnRyb2w8RGF0ZVRpbWU8Ym9vbGVhbj4+O1xuICAgIGVuZDogRm9ybUNvbnRyb2w8RGF0ZVRpbWU8Ym9vbGVhbj4+O1xuICB9PiA9IG5ldyBGb3JtR3JvdXAoe1xuICAgIHN0YXJ0OiBuZXcgRm9ybUNvbnRyb2woKSxcbiAgICBlbmQ6IG5ldyBGb3JtQ29udHJvbChEYXRlVGltZS51dGMoKS5zdGFydE9mKCdkYXknKSwgeyBub25OdWxsYWJsZTogdHJ1ZSB9KSxcbiAgfSk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHRpbWVyYW5nZVN0YXJ0JCA9IG9mKHVuZGVmaW5lZCkucGlwZShcbiAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5nZXRBdmFpbGFibGVEYXRlUmFuZ2UoKSksXG4gICAgdGFrZSgxKSxcbiAgICBtYXAoKHJhbmdlRmlsdGVyKSA9PiB0aGlzLmdldFN0YXJ0RGF0ZU9mUmFuZ2UocmFuZ2VGaWx0ZXIpKSxcbiAgICB0YXAoKHN0YXJ0RGF0ZSkgPT4ge1xuICAgICAgLy90aGlzIGlzIHRvIGhhdmUgYSBkZWZhdWx0IHZhbHVlIGZvciB0aGUgc3RhcnQgZGF0ZSA9PiB0aGUgbWluIGRhdGUgb2YgdGhlIHJhbmdlXG4gICAgICB0aGlzLnJhbmdlLnNldENvbnRyb2woJ3N0YXJ0JywgbmV3IEZvcm1Db250cm9sPERhdGVUaW1lPHRydWU+PihzdGFydERhdGUsIHsgbm9uTnVsbGFibGU6IHRydWUgfSkpO1xuICAgICAgdGhpcy50aW1lRmlsdGVyTG9hZGVkLnNldCh0cnVlKTtcbiAgICB9KSxcbiAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKVxuICApO1xuXG4gIHJlYWRvbmx5IGFsbENvbHVtbnMgPSBjb21wdXRlZDxBcnJheTxzdHJpbmc+PigoKSA9PiB7XG4gICAgaWYgKCF0aGlzLmlzSGlzdG9yeUVuYWJsZWQoKSkge1xuICAgICAgcmV0dXJuIHRoaXMucmVjZW50Q29sdW1ucygpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5wYXN0Q29sdW1ucygpLmZsYXRNYXAoKGUsIGkpID0+IFtlLCB0aGlzLnJlY2VudENvbHVtbnMoKVtpXV0pO1xuICB9KTtcblxuICByZWFkb25seSB0eXBlQ29sdW1ucyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5jb2x1bW5zKCkubWFwKChjKSA9PiBjLmlkICsgJ190eXBlJyk7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IHJlY2VudENvbHVtbnMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuY29sdW1ucygpLm1hcCgoYykgPT4gYy5pZCArICdfcmVjZW50Jyk7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IHBhc3RDb2x1bW5zID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLmNvbHVtbnMoKS5tYXAoKGMpID0+IGMuaWQgKyAnX3Bhc3QnKTtcbiAgfSk7XG5cbiAgcHJvdGVjdGVkIGFic3RyYWN0IGdldENvdW50QnlEYXRlKGRhdGU6IFRMb2FkaW5nRGF0YSk6IE9ic2VydmFibGU8TWF0cml4V2l0aENvdW50cz47XG4gIHByb3RlY3RlZCBhYnN0cmFjdCB2YWxpZGF0ZUxvYWRpbmdEYXRhKGRhdGE6IFBhcnRpYWw8VExvYWRpbmdEYXRhPik6IGRhdGEgaXMgVExvYWRpbmdEYXRhO1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgY29tcGFyZUxvYWRpbmdEYXRhRXF1YWwoYTogVExvYWRpbmdEYXRhLCBiOiBUTG9hZGluZ0RhdGEpOiBib29sZWFuO1xuXG4gIHByb3RlY3RlZCBnZXRBdmFpbGFibGVEYXRlUmFuZ2UoKSB7XG4gICAgcmV0dXJuIG9mKHVuZGVmaW5lZCkucGlwZShcbiAgICAgIHRhcCgoKSA9PiB0aGlzLmxvYWRpbmdDb3VudC51cGRhdGUoKGl0KSA9PiBpdCArIDEpKSxcbiAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLm1ldGFBcGkuZ2V0VGltZXJhbmdlRmlsdGVyKCkpLFxuICAgICAgZmlsdGVyKChmaWx0ZXIpOiBmaWx0ZXIgaXMgRmlsdGVyID0+IGZpbHRlciAhPSBudWxsKSxcbiAgICAgIHRhcCgoKSA9PiB0aGlzLmxvYWRpbmdDb3VudC51cGRhdGUoKGl0KSA9PiBpdCAtIDEpKVxuICAgICk7XG4gIH1cbiAgcHJpdmF0ZSBnZXRTdGFydERhdGVPZlJhbmdlKHJhbmdlRmlsdGVyOiBGaWx0ZXIpIHtcbiAgICByZXR1cm4gRGF0ZVRpbWUuZnJvbUlTTyhyYW5nZUZpbHRlci52YWx1ZXMuZmluZCgodikgPT4gdi5pZCA9PT0gJ3JhbmdlU3RhcnQnKT8ubGFiZWwhLCB7XG4gICAgICB6b25lOiAndXRjJyxcbiAgICB9KS5zdGFydE9mKCdkYXknKSBhcyBEYXRlVGltZTx0cnVlPjtcbiAgfVxuXG4gIHB1YmxpYyBjb2x1bW5JZGVudChfaW5kZXg6IG51bWJlciwgY29sOiBRdWFsaXR5TWF0cml4SGVhZGVyKSB7XG4gICAgcmV0dXJuIGNvbC5pZDtcbiAgfVxuXG4gIHB1YmxpYyBwYXN0VHlwZUNvdW50KHJvdzogTWF0cml4Um93V2l0aENvdW50cywgY29sdW1uaWQ6IHN0cmluZyk6IHsgZGVsdGE/OiBudW1iZXI7IHRyZW5kPzogc3RyaW5nOyB2YWx1ZT86IG51bWJlciB9IHtcbiAgICBpZiAoIXRoaXMucGFzdFR5cGVDb3VudCQudmFsdWUucm93cy5sZW5ndGgpIHtcbiAgICAgIHJldHVybiB7fTtcbiAgICB9XG4gICAgY29uc3QgcGFzdF9yb3cgPSB0aGlzLnBhc3RUeXBlQ291bnQkLnZhbHVlLnJvd3MuZmluZCgocHIpID0+IHByLm1ldGEuaWQgPT0gcm93Lm1ldGEuaWQpO1xuICAgIGNvbnN0IHBhc3RfY29sdW1uID0gdGhpcy5wYXN0VHlwZUNvdW50JC52YWx1ZS5jb2x1bW5zLmZpbmQoKGMpID0+IGMuaWQgPT0gY29sdW1uaWQpO1xuICAgIGlmICghcGFzdF9yb3cgfHwgIXBhc3RfY29sdW1uKSB7XG4gICAgICByZXR1cm4ge307XG4gICAgfVxuXG4gICAgY29uc3QgY3VycmVudFZhbHVlID0gcm93LmNvdW50c1tjb2x1bW5pZF07XG4gICAgY29uc3QgcGFzdFZhbHVlID0gcGFzdF9yb3cuY291bnRzW2NvbHVtbmlkXTtcblxuICAgIGNvbnN0IGRlbHRhID0gKGN1cnJlbnRWYWx1ZSB8fCAwKSAtIChwYXN0VmFsdWUgfHwgMCk7XG4gICAgY29uc3QgdHJlbmQgPSBkZWx0YSA9PT0gMCA/ICd0cmVuZGluZ19mbGF0JyA6IGRlbHRhIDwgMCA/ICd0cmVuZGluZ19kb3duJyA6ICd0cmVuZGluZ191cCc7XG4gICAgcmV0dXJuIHsgZGVsdGEsIHRyZW5kLCB2YWx1ZTogcGFzdFZhbHVlIH07XG4gIH1cblxuICBwdWJsaWMgb3BlbkluRWRpdG9yKHNvdXJjZUlkOiBzdHJpbmcsIGlzc3VlSWQ6IHN0cmluZykge1xuICAgIGlmICh0aGlzLnNvdXJjZVR5cGUgPT09ICdyZXBsaWNhdGlvblNvdXJjZScpIHtcbiAgICAgIC8vIGZpbmQgdGhlIGxvbmcgbmFtZSBmb3IgdGhlIHNvdXJjZVxuICAgICAgc291cmNlSWQgPSB0aGlzLnJlY2VudFR5cGVDb3VudCQudmFsdWUucm93cy5maW5kKChyKSA9PiByLm1ldGEuaWQgPT09IHNvdXJjZUlkKT8ubWV0YS5sYWJlbCB8fCBzb3VyY2VJZDtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMubGlua1NlcnZpY2UudHlwZXNMb2FkZWQkLnBpcGUoXG4gICAgICBza2lwV2hpbGUoKGxvYWRlZCkgPT4gIWxvYWRlZCksXG4gICAgICB0YWtlKDEpLFxuICAgICAgbWFwKCgpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMubGlua1NlcnZpY2UuY3JlYXRlTGlua0ZvckNvdW50c1dpdGhIaXN0b3J5KHRoaXMuc291cmNlVHlwZSwgc291cmNlSWQsIGlzc3VlSWQpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG59XG5cbnR5cGUgTG9hZGluZ0RhdGEgPSB7XG4gIGRhdGU6IERhdGVUaW1lO1xufTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWV0YXFzMi1jb3VudHMtd2l0aC1oaXN0b3J5JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIE1hdENhcmRNb2R1bGUsXG4gICAgTWF0Q2FyZCxcbiAgICBNYXRDYXJkSGVhZGVyLFxuICAgIE1hdENhcmRUaXRsZSxcbiAgICBNYXRDYXJkQ29udGVudCxcbiAgICBNYXRUb29sdGlwLFxuICAgIE1hdFRhYmxlTW9kdWxlLFxuICAgIE1hdFRhYmxlLFxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICBNYXRIZWFkZXJSb3csXG4gICAgTWF0SGVhZGVyUm93RGVmLFxuICAgIE1hdFJvdyxcbiAgICBNYXRSb3dEZWYsXG4gICAgTmdGb3JPZixcbiAgICBEYXRlcGlja2VyQ29tcG9uZW50LFxuICAgIE1hdEljb24sXG4gICAgTmdJZixcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBNYXRTbGlkZVRvZ2dsZSxcbiAgICBBc3luY1BpcGUsXG4gICAgUHJvZ3Jlc3NTcGlubmVyQ29tcG9uZW50LFxuICAgIE1hdFJpcHBsZSxcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvdW50cy13aXRoLWhpc3RvcnkuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vY291bnRzLXdpdGgtaGlzdG9yeS5jb21wb25lbnQuc2NzcycsXG59KVxuZXhwb3J0IGNsYXNzIENvdW50c1dpdGhIaXN0b3J5Q29tcG9uZW50XG4gIGV4dGVuZHMgQmFzZUhpc3RvcmljRGF0YVRhYmxlRGlyZWN0aXZlPExvYWRpbmdEYXRhLCAoZmlsdGVyczogRmlsdGVyW10pID0+IE9ic2VydmFibGU8TWF0cml4V2l0aENvdW50cz4+XG4gIGltcGxlbWVudHMgT25Jbml0XG57XG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuYXBpTWV0aG9kID8/PSAnZ2V0TWF0ZXJpYWxUeXBlQ291bnRzQnlSZXBsaWNhdGlvblNvdXJjZSc7XG5cbiAgICB0aGlzLnJhbmdlLnZhbHVlQ2hhbmdlc1xuICAgICAgLnBpcGUoXG4gICAgICAgIHRhcCgoZGF0YSkgPT4ge1xuICAgICAgICAgIGNvbnNvbGUuZGVidWcoJ3JhbmdlLnZhbHVlQ2hhbmdlcycsIGRhdGEpO1xuICAgICAgICAgIHRoaXMuZGF0YUZvclBhc3REYXRhJC5uZXh0KHsgZGF0ZTogZGF0YS5zdGFydCB9KTtcbiAgICAgICAgICB0aGlzLmRhdGFGb3JSZWNlbnREYXRhJC5uZXh0KHsgZGF0ZTogZGF0YS5lbmQgfSk7XG4gICAgICAgIH0pLFxuICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuXG4gICAgdGhpcy5pc0hpc3RvcnlFbmFibGVkJFxuICAgICAgLnBpcGUoXG4gICAgICAgIHRhcCgoZW5hYmxlZCkgPT4ge1xuICAgICAgICAgIGNvbnNvbGUuZGVidWcoJ2lzSGlzdG9yeUVuYWJsZWQnLCBlbmFibGVkKTtcbiAgICAgICAgICB0aGlzLnJhbmdlLmNvbnRyb2xzLmVuZC5yZXNldCgpO1xuICAgICAgICAgIGlmICghZW5hYmxlZCkge1xuICAgICAgICAgICAgdGhpcy5zdGFydERhdGVTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICB0aGlzLnN0YXJ0VmFsdWVzU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLnJhbmdlLmNvbnRyb2xzLnN0YXJ0LnJlc2V0KCk7XG4gICAgICAgICAgaWYgKCF0aGlzLnRpbWVGaWx0ZXJMb2FkZWQoKSkge1xuICAgICAgICAgICAgY29uc29sZS5kZWJ1ZygnaXNUaW1lRmlsdGVyTG9hZGVkJywgJ2ZhbHNlJyk7XG4gICAgICAgICAgICB0aGlzLnN0YXJ0RGF0ZVN1YnNjcmlwdGlvbiA9IHRoaXMudGltZXJhbmdlU3RhcnQkXG4gICAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHRha2UoMSksXG4gICAgICAgICAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZGVidWcoJ3N0YXJ0RGF0ZVN1YnNjcmlwdGlvbicsICdkb25lJyk7XG4gICAgICAgICAgICAgICAgICB0aGlzLnN0YXJ0VmFsdWVzU3Vic2NyaXB0aW9uID0gdGhpcy5zdGFydFZhbHVlcyQuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICAgICAgICB0aGlzLnJhbmdlLmNvbnRyb2xzLnN0YXJ0LnJlc2V0KCk7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc3RhcnRWYWx1ZXNTdWJzY3JpcHRpb24gPSB0aGlzLnN0YXJ0VmFsdWVzJC5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgIHRoaXMucmFuZ2UuY29udHJvbHMuc3RhcnQucmVzZXQoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pLFxuICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuXG4gICAgdGhpcy5lbmRWYWx1ZXMkLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldENvdW50QnlEYXRlKGRhdGE6IExvYWRpbmdEYXRhKTogT2JzZXJ2YWJsZTxNYXRyaXhXaXRoQ291bnRzPiB7XG4gICAgY29uc29sZS5kZWJ1ZygnZ2V0Q291bnRCeURhdGUnLCBkYXRhKTtcbiAgICBjb25zdCBmaWx0ZXI6IEZpbHRlciA9IHtcbiAgICAgIGZpZWxkOiAnYXNPZicsXG4gICAgICB2YWx1ZXM6IFt7IGlkOiBkYXRhLmRhdGUudG9JU08oeyBpbmNsdWRlT2Zmc2V0OiBmYWxzZSB9KSEsIGxhYmVsOiAnJyB9XSxcbiAgICB9O1xuXG4gICAgcmV0dXJuIG9mKHVuZGVmaW5lZCkucGlwZShcbiAgICAgIHRhcCgoKSA9PiB0aGlzLmxvYWRpbmdDb3VudC51cGRhdGUoKGl0KSA9PiBpdCArIDEpKSxcbiAgICAgIHN3aXRjaE1hcCgoKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLm1ldGFBcGlbdGhpcy5hcGlNZXRob2RdKFtmaWx0ZXJdKS5waXBlKGZpbmFsaXplKCgpID0+IHRoaXMubG9hZGluZ0NvdW50LnVwZGF0ZSgoaXQpID0+IGl0IC0gMSkpKTtcbiAgICAgIH0pLFxuICAgICAgbWFwKChyZXNwb25zZSkgPT4gKHtcbiAgICAgICAgLi4ucmVzcG9uc2UsXG4gICAgICAgIHJvd3M6IHJlc3BvbnNlLnJvd3MudG9Tb3J0ZWQoKGEsIGIpID0+IGEubWV0YS5sYWJlbC5sb2NhbGVDb21wYXJlKGIubWV0YS5sYWJlbCkpLFxuICAgICAgfSkpXG4gICAgKTtcbiAgfVxuXG4gIHByb3RlY3RlZCB2YWxpZGF0ZUxvYWRpbmdEYXRhKGRhdGE6IFBhcnRpYWw8TG9hZGluZ0RhdGE+KTogZGF0YSBpcyBMb2FkaW5nRGF0YSB7XG4gICAgY29uc29sZS5kZWJ1ZygndmFsaWRhdGVMb2FkaW5nRGF0YScsIGRhdGEsIGRhdGEuZGF0ZT8uaXNWYWxpZCk7XG4gICAgcmV0dXJuIGRhdGEuZGF0ZT8uaXNWYWxpZCA/PyBmYWxzZTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjb21wYXJlTG9hZGluZ0RhdGFFcXVhbChhOiBMb2FkaW5nRGF0YSwgYjogTG9hZGluZ0RhdGEpOiBib29sZWFuIHtcbiAgICByZXR1cm4gYS5kYXRlLmVxdWFscyhiLmRhdGUpO1xuICB9XG59XG4iLCI8bWF0LWNhcmQgYXBwZWFyYW5jZT1cInJhaXNlZFwiPlxuICA8bWF0LWNhcmQtaGVhZGVyICpuZ0lmPVwicGFnZVRpdGxlXCI+XG4gICAgPG1hdC1jYXJkLXRpdGxlIGRhdGEtdGVzdC1pZD1cInBhZ2UtdGl0bGVcIj5cbiAgICAgIFF1YWxpdMOkdHNtZXRyaWs6IHt7IHBhZ2VUaXRsZSB8IHRyYW5zbGF0ZSB9fXt7IGlzTG9hZGluZygpID8gXCI6IExhZGUgbmV1ZSBEYXRlbi5cIiA6IFwiXCIgfX1cbiAgICA8L21hdC1jYXJkLXRpdGxlPlxuICA8L21hdC1jYXJkLWhlYWRlcj5cbiAgPCEtLSBjb25zaWRlciB0byBwdXQgdGhlIGZpbHRlciBpbiB0aGUgdGFibGUgaGVhZGVyIHRvIGF2b2lkIHRoYXQgaXQgaXMgc2Nyb2xsZWQgb3V0IG9mIHZpZXctLT5cbiAgPCEtLSBzaG93IHRoZSBmaWx0ZXIgYWZ0ZXIgdGhlIHZhbHVlcyBhcmUgbG9hZGVkIHRvIGF2b2lkIGxvYWRpbmcgY3VycmVudCBkYXRhIHR3aWNlIC0tPlxuICA8bWF0LWNhcmQtY29udGVudCBjbGFzcz1cInRvb2xiYXJcIj5cbiAgICA8bWV0YXFzMi1kYXRlcGlja2VyIHN0eWxlPVwiZGlzcGxheTogaW5saW5lLWJsb2NrXCIgbWF0UmlwcGxlIFtkaXNhYmxlZF09XCJpc0xvYWRpbmcoKSB8fCAhaXNIaXN0b3J5RW5hYmxlZCgpXCIgW2lucHV0R3JvdXBdPVwicmFuZ2VcIiAqbmdJZj1cInRpbWVGaWx0ZXJMb2FkZWQoKSAmJiBpc0hpc3RvcnlFbmFibGVkKClcIj48L21ldGFxczItZGF0ZXBpY2tlcj5cbiAgICA8ZGl2IHN0eWxlPVwiZmxleDogMSAxIGF1dG9cIj48L2Rpdj5cbiAgICA8bWF0LXNsaWRlLXRvZ2dsZSBbbmdNb2RlbF09XCJpc0hpc3RvcnlFbmFibGVkKClcIiAobmdNb2RlbENoYW5nZSk9XCJpc0hpc3RvcnlFbmFibGVkLnNldCgkZXZlbnQpXCIgW2Rpc2FibGVkXT1cImlzTG9hZGluZygpXCI+XG4gICAgICA8bGFiZWw+WmVpZ2UgaGlzdG9yaXNjaGUgRGF0ZW48L2xhYmVsPlxuICAgIDwvbWF0LXNsaWRlLXRvZ2dsZT5cbiAgPC9tYXQtY2FyZC1jb250ZW50PlxuPC9tYXQtY2FyZD5cbjxtYXQtY2FyZD5cbiAgPG1ldGFxczItcHJvZ3Jlc3Mtc3Bpbm5lciBbZGlzcGxheVByb2dyZXNzU3Bpbm5lcl09XCJpc0xvYWRpbmcoKVwiPjwvbWV0YXFzMi1wcm9ncmVzcy1zcGlubmVyPlxuICA8dGFibGUgW2NsYXNzLndoaWxlLWxvYWRpbmddPVwiaXNMb2FkaW5nKClcIiBtYXQtdGFibGUgW2RhdGFTb3VyY2VdPVwicmVjZW50VHlwZUNvdW50JC52YWx1ZS5yb3dzXCJcbiAgICAgICAgIGNsYXNzPVwicXVhbGl0eS1tYXRyaXhcIj5cbiAgICA8IS0tIERlZmluZSBjb2x1bW5zIG9mIHRhYmxlIC0tPlxuICAgIDwhLS0gUm93IEhlYWRlciBDb2x1bW4gLS0+XG4gICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJsYWJlbC1jb2xcIiBzdGlja3k+XG4gICAgICA8dGggW2F0dHIucm93c3Bhbl09XCJpc0hpc3RvcnlFbmFibGVkKCkgPyAnMicgOiAnMSdcIiBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+XG4gICAgICAgIDxkaXY+UXVlbGxlPC9kaXY+XG4gICAgICA8L3RoPlxuICAgICAgPHRkXG4gICAgICAgIG1hdC1jZWxsXG4gICAgICAgICptYXRDZWxsRGVmPVwibGV0IHJvd1wiXG4gICAgICAgIFttYXRUb29sdGlwXT1cInJvdy5tZXRhLmFsdF9sYWJlbFwiXG4gICAgICAgIGNsYXNzPVwibGFiZWwtY29sIG1hdC1jZWxsLWxldmVsLXt7cm93Lm1ldGEubGV2ZWwgKyAxfX1cIlxuICAgICAgPlxuICAgICAgICB7eyByb3cubWV0YS5sYWJlbCB9fVxuICAgICAgPC90ZD5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8IS0tIG9uZSBjb2x1bW4gZm9yIGVhY2ggdHlwZSAtLT5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjb2wgb2YgKHJlY2VudFR5cGVDb3VudCQgfCBhc3luYyk/LmNvbHVtbnM7IHRyYWNrQnk6Y29sdW1uSWRlbnRcIlxuICAgICAgICAgICAgICAgICAgW21hdENvbHVtbkRlZl09XCJjb2wuaWQgKyAnX3R5cGUnXCI+XG4gICAgICA8dGggW2F0dHIuY29sc3Bhbl09XCJpc0hpc3RvcnlFbmFibGVkKCkgPyAnMicgOiAnMSdcIiBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWYgW21hdFRvb2x0aXBdPVwiY29sLmxhYmVsXCI+XG4gICAgICAgIHt7IGNvbHVtblRyYW5zbGF0aW9ua2V5ID8gKGNvbHVtblRyYW5zbGF0aW9ua2V5ICsgY29sLmxhYmVsIHwgdHJhbnNsYXRlKSA6IGNvbC5sYWJlbCB9fVxuICAgICAgPC90aD5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8IS0tIG9uZSBjb2x1bW4gZm9yIGVhY2ggdHlwZSBmb3IgdGhlIG1vc3QgY3VycmVudCBkYXRlLS0+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY29sIG9mIChyZWNlbnRUeXBlQ291bnQkIHwgYXN5bmMpPy5jb2x1bW5zOyB0cmFja0J5OmNvbHVtbklkZW50XCJcbiAgICAgICAgICAgICAgICAgIFttYXRDb2x1bW5EZWZdPVwiY29sLmlkICsgJ19yZWNlbnQnXCI+XG4gICAgICA8dGggY2xhc3M9XCJyZWNlbnQtZGF0YS1jZWxsXCIgbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmXG4gICAgICAgICAgbWF0VG9vbHRpcD1cIm5vIHRvb2x0aXBcIj57eyByYW5nZS5jb250cm9scy5lbmQudmFsdWUudG9Mb2NhbGVTdHJpbmcoRGF0ZVRpbWUuREFURV9TSE9SVCkgfX1cbiAgICAgIDwvdGg+XG4gICAgICA8dGQgY2xhc3M9XCJyZWNlbnQtZGF0YS1jZWxsXCIgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgcm93XCI+XG4gICAgICAgIDxhIFthdHRyLmhyZWZdPVwib3BlbkluRWRpdG9yKHJvdy5tZXRhLmlkLCBjb2wuaWQpIHwgYXN5bmNcIiB0YXJnZXQ9XCJlZGl0b3JfZnJvbnRlbmRcIj57eyByb3cuY291bnRzW2NvbC5pZF0gPz8gJ+KAkycgfX08L2E+XG4gICAgICA8L3RkPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwhLS0gb25lIGNvbHVtbiBmb3IgZWFjaCB0eXBlIGZvciB0aGUgb2xkZXIgZGF0ZS0tPlxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNvbCBvZiAocmVjZW50VHlwZUNvdW50JCB8IGFzeW5jKT8uY29sdW1uczsgdHJhY2tCeTpjb2x1bW5JZGVudFwiXG4gICAgICAgICAgICAgICAgICBbbWF0Q29sdW1uRGVmXT1cImNvbC5pZCArICdfcGFzdCdcIj5cbiAgICAgIDx0aCBjbGFzcz1cInBhc3QtZGF0YS1jZWxsXCIgbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmIG1hdFRvb2x0aXA9XCJubyB0b29sdGlwXCI+XG4gICAgICAgIHt7IChwYXN0VHlwZUNvdW50JCB8IGFzeW5jKT8ucm93cz8ubGVuZ3RoID8gcmFuZ2UuY29udHJvbHMuc3RhcnQudmFsdWUudG9Mb2NhbGVTdHJpbmcoRGF0ZVRpbWUuREFURV9TSE9SVCkgOiAnbm8gcGFzdCBkYXRhJyB9fVxuICAgICAgPC90aD5cbiAgICAgIDx0ZCBjbGFzcz1cInBhc3QtZGF0YS1jZWxsXCIgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgcm93O1wiID5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIihwYXN0VHlwZUNvdW50JCB8IGFzeW5jKT8ucm93cz8ubGVuZ3RoICYmIHBhc3RUeXBlQ291bnQocm93LCBjb2wuaWQpIGFzIHRyZW5kXCI+XG4gICAgICAgICAgPHNwYW4gW2NsYXNzXT1cInRyZW5kLnRyZW5kXCI+IHt7IHRyZW5kLnZhbHVlID8/ICfigJMnIH19XG4gICAgICAgICAgICA8bWF0LWljb24gKm5nSWY9XCJ0cmVuZC52YWx1ZVwiIGFyaWEtaGlkZGVuPVwiZmFsc2VcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInRyZW5kLnRyZW5kXCIgW2ZvbnRJY29uXT1cInRyZW5kLnRyZW5kIVwiIC8+PC9zcGFuPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2RrLXZpc3VhbGx5LWhpZGRlblwiPnt7IHRyZW5kLnRyZW5kIH19PC9zcGFuPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvdGQ+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPCEtLSBnZW5lcmF0ZSBhY3R1YWwgdGFibGUgLS0+XG4gICAgPHRyIG1hdC1oZWFkZXItcm93ICptYXRIZWFkZXJSb3dEZWY9XCJbJ2xhYmVsLWNvbCddLmNvbmNhdCh0eXBlQ29sdW1ucygpKTsgc3RpY2t5OnRydWU7XCI+PC90cj5cbiAgICA8dHIgW2hpZGRlbl09XCIhaXNIaXN0b3J5RW5hYmxlZCgpXCIgbWF0LWhlYWRlci1yb3cgKm1hdEhlYWRlclJvd0RlZj1cImFsbENvbHVtbnMoKTsgc3RpY2t5OiB0cnVlO1wiPjwvdHI+XG4gICAgPHRyIG1hdC1yb3cgKm1hdFJvd0RlZj1cImxldCByb3c7IGNvbHVtbnM6IFsnbGFiZWwtY29sJ10uY29uY2F0KGFsbENvbHVtbnMoKSlcIj48L3RyPlxuXG4gIDwvdGFibGU+XG48L21hdC1jYXJkPlxuIl19
|
|
209
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291bnRzLXdpdGgtaGlzdG9yeS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1tZXRhLXdpZGdldHMtbGliL3NyYy9saWIvY291bnRzLXdpdGgtaGlzdG9yeS9jb3VudHMtd2l0aC1oaXN0b3J5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLW1ldGEtd2lkZ2V0cy1saWIvc3JjL2xpYi9jb3VudHMtd2l0aC1oaXN0b3J5L2NvdW50cy13aXRoLWhpc3RvcnkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRyxPQUFPLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzdHLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNySCxPQUFPLEVBQUUsZUFBZSxFQUFjLEVBQUUsRUFBRSxPQUFPLEVBQWtCLE1BQU0sTUFBTSxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFckQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUNqQyxP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UCxtQkFBbUIsbUdBQ25CLE9BQU8sMklBQ1AsSUFBSSw0RkFDSixXQUFXLCtWQUNYLGNBQWMscVVBQ2QsU0FBUyw4Q0FDVCx3QkFBd0IsMExBQ3hCLFNBQVM7OzRGQUtBLDBCQUEwQjtrQkE5QnRDLFNBQVM7K0JBQ0UsNkJBQTZCLGNBQzNCLElBQUksV0FDUDt3QkFDUCxhQUFhO3dCQUNiLE9BQU87d0JBQ1AsYUFBYTt3QkFDYixZQUFZO3dCQUNaLGNBQWM7d0JBQ2QsVUFBVTt3QkFDVixjQUFjO3dCQUNkLFFBQVE7d0JBQ1IsZUFBZTt3QkFDZixZQUFZO3dCQUNaLGVBQWU7d0JBQ2YsTUFBTTt3QkFDTixTQUFTO3dCQUNULE9BQU87d0JBQ1AsbUJBQW1CO3dCQUNuQixPQUFPO3dCQUNQLElBQUk7d0JBQ0osV0FBVzt3QkFDWCxjQUFjO3dCQUNkLFNBQVM7d0JBQ1Qsd0JBQXdCO3dCQUN4QixTQUFTO3FCQUNWIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBjb21wdXRlZCwgRGVzdHJveVJlZiwgRGlyZWN0aXZlLCBpbmplY3QsIElucHV0LCBPbkluaXQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0Q2FyZCwgTWF0Q2FyZENvbnRlbnQsIE1hdENhcmRIZWFkZXIsIE1hdENhcmRNb2R1bGUsIE1hdENhcmRUaXRsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NhcmQnO1xuaW1wb3J0IHsgTWF0VG9vbHRpcCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xuaW1wb3J0IHsgTWF0SGVhZGVyUm93LCBNYXRIZWFkZXJSb3dEZWYsIE1hdFJvdywgTWF0Um93RGVmLCBNYXRUYWJsZSwgTWF0VGFibGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJsZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIG9mLCBTdWJqZWN0LCBVbnN1YnNjcmliYWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBBc3luY1BpcGUsIE5nRm9yT2YsIE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTWV0YUFwaVNlcnZpY2UgfSBmcm9tICcuLi9tZXRhLWFwaS5zZXJ2aWNlJztcbmltcG9ydCB7IEZpbHRlciwgTWF0cml4Um93V2l0aENvdW50cywgTWF0cml4V2l0aENvdW50cywgUXVhbGl0eU1hdHJpeEhlYWRlciB9IGZyb20gJy4uL2phdmEtYXBpJztcbmltcG9ydCB7IERhdGVUaW1lIH0gZnJvbSAnbHV4b24nO1xuaW1wb3J0IHtcbiAgZGlzdGluY3RVbnRpbENoYW5nZWQsXG4gIGZpbHRlcixcbiAgZmluYWxpemUsXG4gIG1hcCxcbiAgc2tpcFdoaWxlLFxuICBzd2l0Y2hNYXAsXG4gIHRha2UsXG4gIHRhcCxcbiAgdGhyb3R0bGVUaW1lLFxufSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IERhdGVwaWNrZXJDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL2ZpbHRlci9kYXRlcGlja2VyL2RhdGVwaWNrZXIuY29tcG9uZW50JztcbmltcG9ydCB7IE1hdEljb24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCwgdG9PYnNlcnZhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgTWF0U2xpZGVUb2dnbGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbGlkZS10b2dnbGUnO1xuaW1wb3J0IHsgUHJvZ3Jlc3NTcGlubmVyQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9sb2FkaW5nX2luZGljYXRvci9wcm9ncmVzcy1zcGlubmVyL3Byb2dyZXNzLXNwaW5uZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEVkaXRvcmlhbExpbmtTZXJ2aWNlIH0gZnJvbSAnLi4vY29tcG9uZW50cy9lZGl0b3JpYWwtbGluay1zZXJ2aWNlL2VkaXRvcmlhbC1saW5rLnNlcnZpY2UnO1xuaW1wb3J0IHsgTWF0UmlwcGxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5cbmV4cG9ydCB0eXBlIFBpY2tLZXlzQnlQcm9wZXJ0eVR5cGU8VE9iamVjdCBleHRlbmRzIG9iamVjdCwgVFByb3BlcnR5VHlwZT4gPSB7XG4gIFtUS2V5IGluIGtleW9mIFRPYmplY3RdOiBUT2JqZWN0W1RLZXldIGV4dGVuZHMgVFByb3BlcnR5VHlwZSA/IFRLZXkgOiBuZXZlcjtcbn1ba2V5b2YgVE9iamVjdF07XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VIaXN0b3JpY0RhdGFUYWJsZURpcmVjdGl2ZTxcbiAgVExvYWRpbmdEYXRhIGV4dGVuZHMgb2JqZWN0LFxuICBUTWV0aG9kVHlwZSBleHRlbmRzIE1ldGFBcGlTZXJ2aWNlW2tleW9mIE1ldGFBcGlTZXJ2aWNlXSAmIEZ1bmN0aW9uXG4+IHtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IG1ldGFBcGkgPSBpbmplY3QoTWV0YUFwaVNlcnZpY2UpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGxpbmtTZXJ2aWNlID0gaW5qZWN0KEVkaXRvcmlhbExpbmtTZXJ2aWNlKTtcblxuICBASW5wdXQoKVxuICBhcGlNZXRob2Q6IFBpY2tLZXlzQnlQcm9wZXJ0eVR5cGU8TWV0YUFwaVNlcnZpY2UsIFRNZXRob2RUeXBlPjtcbiAgQElucHV0KClcbiAgY29sdW1uVHJhbnNsYXRpb25rZXk6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKVxuICBwYWdlVGl0bGU6IHN0cmluZztcbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSlcbiAgc291cmNlVHlwZTogJ3JlcGxpY2F0aW9uU291cmNlJyB8ICdjb2xsZWN0aW9uJztcblxuICBwcm90ZWN0ZWQgbG9hZGluZ0NvdW50ID0gc2lnbmFsKDApO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgaXNMb2FkaW5nID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5sb2FkaW5nQ291bnQoKSA+IDApO1xuICByZWFkb25seSBpc0hpc3RvcnlFbmFibGVkID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGlzSGlzdG9yeUVuYWJsZWQkID0gdG9PYnNlcnZhYmxlKHRoaXMuaXNIaXN0b3J5RW5hYmxlZCk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHRpbWVGaWx0ZXJMb2FkZWQgPSBzaWduYWwoZmFsc2UpO1xuICBwcm90ZWN0ZWQgcmVjZW50VHlwZUNvdW50JCA9IG5ldyBCZWhhdmlvclN1YmplY3QoeyBjb2x1bW5zOiBbXSwgcm93czogW10gfSBhcyBNYXRyaXhXaXRoQ291bnRzKTtcbiAgcHJvdGVjdGVkIHBhc3RUeXBlQ291bnQkID0gbmV3IEJlaGF2aW9yU3ViamVjdCh7IGNvbHVtbnM6IFtdLCByb3dzOiBbXSB9IGFzIE1hdHJpeFdpdGhDb3VudHMpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgRGF0ZVRpbWUgPSBEYXRlVGltZTtcbiAgcHVibGljIGNvbHVtbnMgPSBzaWduYWwoW10gYXMgQXJyYXk8UXVhbGl0eU1hdHJpeEhlYWRlcj4pO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBkYXRhRm9yUGFzdERhdGEkID0gbmV3IFN1YmplY3Q8UGFydGlhbDxUTG9hZGluZ0RhdGE+PigpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZGF0YUZvclJlY2VudERhdGEkID0gbmV3IFN1YmplY3Q8UGFydGlhbDxUTG9hZGluZ0RhdGE+PigpO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBzdGFydFZhbHVlcyQgPSB0aGlzLmRhdGFGb3JQYXN0RGF0YSQucGlwZShcbiAgICBmaWx0ZXIoKGRhdGEpID0+IHRoaXMudmFsaWRhdGVMb2FkaW5nRGF0YShkYXRhKSksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKGEsIGIpID0+IHRoaXMuY29tcGFyZUxvYWRpbmdEYXRhRXF1YWwoYSwgYikpLFxuICAgIHRocm90dGxlVGltZSg1MDApLFxuICAgIHN3aXRjaE1hcCgoc3RhcnQpID0+IHRoaXMuZ2V0Q291bnRCeURhdGUoc3RhcnQpKSxcbiAgICB0YXAoKGl0KSA9PiB0aGlzLnBhc3RUeXBlQ291bnQkLm5leHQoaXQpKSxcbiAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKVxuICApO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZW5kVmFsdWVzJCA9IHRoaXMuZGF0YUZvclJlY2VudERhdGEkLnBpcGUoXG4gICAgZmlsdGVyKChkYXRhKSA9PiB0aGlzLnZhbGlkYXRlTG9hZGluZ0RhdGEoZGF0YSkpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKChhLCBiKSA9PiB0aGlzLmNvbXBhcmVMb2FkaW5nRGF0YUVxdWFsKGEsIGIpKSxcbiAgICB0aHJvdHRsZVRpbWUoNTAwKSxcbiAgICBzd2l0Y2hNYXAoKGVuZCkgPT4gdGhpcy5nZXRDb3VudEJ5RGF0ZShlbmQpKSxcbiAgICB0YXAoKGl0KSA9PiB0aGlzLnJlY2VudFR5cGVDb3VudCQubmV4dChpdCkpLFxuICAgIHRhcCgoaXQpID0+IHRoaXMuY29sdW1ucy5zZXQoaXQuY29sdW1ucy5zbGljZSgpKSksXG4gICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZilcbiAgKTtcblxuICBwcm90ZWN0ZWQgc3RhcnREYXRlU3Vic2NyaXB0aW9uOiBVbnN1YnNjcmliYWJsZSB8IHVuZGVmaW5lZDtcbiAgcHJvdGVjdGVkIHN0YXJ0VmFsdWVzU3Vic2NyaXB0aW9uOiBVbnN1YnNjcmliYWJsZSB8IHVuZGVmaW5lZDtcblxuICAvKiBJbiB0aGlzIHdpZGdldCdzIGJhY2tlbmQgd2UgZG8gaGF2ZSBkYXRhIGZvciB0b2RheVxuICAgKiB0aGVyZWZvcmUgd2Ugc2V0IHRoZSBlbmQgZGF0ZSB0byB0b2RheSBhbmQgdXNlIHRoZSB0aW1lcmFuZ2UoKSBlbmRwb2ludCB0byBvbmx5IHNldCB0aGUgc3RhcnQgZGF0ZVxuICAgKi9cbiAgcmVhZG9ubHkgcmFuZ2U6IEZvcm1Hcm91cDx7XG4gICAgc3RhcnQ6IEZvcm1Db250cm9sPERhdGVUaW1lPGJvb2xlYW4+PjtcbiAgICBlbmQ6IEZvcm1Db250cm9sPERhdGVUaW1lPGJvb2xlYW4+PjtcbiAgfT4gPSBuZXcgRm9ybUdyb3VwKHtcbiAgICBzdGFydDogbmV3IEZvcm1Db250cm9sKCksXG4gICAgZW5kOiBuZXcgRm9ybUNvbnRyb2woRGF0ZVRpbWUudXRjKCkuc3RhcnRPZignZGF5JyksIHsgbm9uTnVsbGFibGU6IHRydWUgfSksXG4gIH0pO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSB0aW1lcmFuZ2VTdGFydCQgPSBvZih1bmRlZmluZWQpLnBpcGUoXG4gICAgc3dpdGNoTWFwKCgpID0+IHRoaXMuZ2V0QXZhaWxhYmxlRGF0ZVJhbmdlKCkpLFxuICAgIHRha2UoMSksXG4gICAgbWFwKChyYW5nZUZpbHRlcikgPT4gdGhpcy5nZXRTdGFydERhdGVPZlJhbmdlKHJhbmdlRmlsdGVyKSksXG4gICAgdGFwKChzdGFydERhdGUpID0+IHtcbiAgICAgIC8vdGhpcyBpcyB0byBoYXZlIGEgZGVmYXVsdCB2YWx1ZSBmb3IgdGhlIHN0YXJ0IGRhdGUgPT4gdGhlIG1pbiBkYXRlIG9mIHRoZSByYW5nZVxuICAgICAgdGhpcy5yYW5nZS5zZXRDb250cm9sKCdzdGFydCcsIG5ldyBGb3JtQ29udHJvbDxEYXRlVGltZTx0cnVlPj4oc3RhcnREYXRlLCB7IG5vbk51bGxhYmxlOiB0cnVlIH0pKTtcbiAgICAgIHRoaXMudGltZUZpbHRlckxvYWRlZC5zZXQodHJ1ZSk7XG4gICAgfSksXG4gICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZilcbiAgKTtcblxuICByZWFkb25seSBhbGxDb2x1bW5zID0gY29tcHV0ZWQ8QXJyYXk8c3RyaW5nPj4oKCkgPT4ge1xuICAgIGlmICghdGhpcy5pc0hpc3RvcnlFbmFibGVkKCkpIHtcbiAgICAgIHJldHVybiB0aGlzLnJlY2VudENvbHVtbnMoKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMucGFzdENvbHVtbnMoKS5mbGF0TWFwKChlLCBpKSA9PiBbZSwgdGhpcy5yZWNlbnRDb2x1bW5zKClbaV1dKTtcbiAgfSk7XG5cbiAgcmVhZG9ubHkgdHlwZUNvbHVtbnMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuY29sdW1ucygpLm1hcCgoYykgPT4gYy5pZCArICdfdHlwZScpO1xuICB9KTtcblxuICByZWFkb25seSByZWNlbnRDb2x1bW5zID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLmNvbHVtbnMoKS5tYXAoKGMpID0+IGMuaWQgKyAnX3JlY2VudCcpO1xuICB9KTtcblxuICByZWFkb25seSBwYXN0Q29sdW1ucyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5jb2x1bW5zKCkubWFwKChjKSA9PiBjLmlkICsgJ19wYXN0Jyk7XG4gIH0pO1xuXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBnZXRDb3VudEJ5RGF0ZShkYXRlOiBUTG9hZGluZ0RhdGEpOiBPYnNlcnZhYmxlPE1hdHJpeFdpdGhDb3VudHM+O1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgdmFsaWRhdGVMb2FkaW5nRGF0YShkYXRhOiBQYXJ0aWFsPFRMb2FkaW5nRGF0YT4pOiBkYXRhIGlzIFRMb2FkaW5nRGF0YTtcbiAgcHJvdGVjdGVkIGFic3RyYWN0IGNvbXBhcmVMb2FkaW5nRGF0YUVxdWFsKGE6IFRMb2FkaW5nRGF0YSwgYjogVExvYWRpbmdEYXRhKTogYm9vbGVhbjtcblxuICBwcm90ZWN0ZWQgZ2V0QXZhaWxhYmxlRGF0ZVJhbmdlKCkge1xuICAgIHJldHVybiBvZih1bmRlZmluZWQpLnBpcGUoXG4gICAgICB0YXAoKCkgPT4gdGhpcy5sb2FkaW5nQ291bnQudXBkYXRlKChpdCkgPT4gaXQgKyAxKSksXG4gICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5tZXRhQXBpLmdldFRpbWVyYW5nZUZpbHRlcigpKSxcbiAgICAgIGZpbHRlcigoZmlsdGVyKTogZmlsdGVyIGlzIEZpbHRlciA9PiBmaWx0ZXIgIT0gbnVsbCksXG4gICAgICB0YXAoKCkgPT4gdGhpcy5sb2FkaW5nQ291bnQudXBkYXRlKChpdCkgPT4gaXQgLSAxKSlcbiAgICApO1xuICB9XG4gIHByaXZhdGUgZ2V0U3RhcnREYXRlT2ZSYW5nZShyYW5nZUZpbHRlcjogRmlsdGVyKSB7XG4gICAgcmV0dXJuIERhdGVUaW1lLmZyb21JU08ocmFuZ2VGaWx0ZXIudmFsdWVzLmZpbmQoKHYpID0+IHYuaWQgPT09ICdyYW5nZVN0YXJ0Jyk/LmxhYmVsISwge1xuICAgICAgem9uZTogJ3V0YycsXG4gICAgfSkuc3RhcnRPZignZGF5JykgYXMgRGF0ZVRpbWU8dHJ1ZT47XG4gIH1cblxuICBwdWJsaWMgY29sdW1uSWRlbnQoX2luZGV4OiBudW1iZXIsIGNvbDogUXVhbGl0eU1hdHJpeEhlYWRlcikge1xuICAgIHJldHVybiBjb2wuaWQ7XG4gIH1cblxuICBwdWJsaWMgcGFzdFR5cGVDb3VudChyb3c6IE1hdHJpeFJvd1dpdGhDb3VudHMsIGNvbHVtbmlkOiBzdHJpbmcpOiB7IGRlbHRhPzogbnVtYmVyOyB0cmVuZD86IHN0cmluZzsgdmFsdWU/OiBudW1iZXIgfSB7XG4gICAgaWYgKCF0aGlzLnBhc3RUeXBlQ291bnQkLnZhbHVlLnJvd3MubGVuZ3RoKSB7XG4gICAgICByZXR1cm4ge307XG4gICAgfVxuICAgIGNvbnN0IHBhc3Rfcm93ID0gdGhpcy5wYXN0VHlwZUNvdW50JC52YWx1ZS5yb3dzLmZpbmQoKHByKSA9PiBwci5tZXRhLmlkID09IHJvdy5tZXRhLmlkKTtcbiAgICBjb25zdCBwYXN0X2NvbHVtbiA9IHRoaXMucGFzdFR5cGVDb3VudCQudmFsdWUuY29sdW1ucy5maW5kKChjKSA9PiBjLmlkID09IGNvbHVtbmlkKTtcbiAgICBpZiAoIXBhc3Rfcm93IHx8ICFwYXN0X2NvbHVtbikge1xuICAgICAgcmV0dXJuIHt9O1xuICAgIH1cblxuICAgIGNvbnN0IGN1cnJlbnRWYWx1ZSA9IHJvdy5jb3VudHNbY29sdW1uaWRdO1xuICAgIGNvbnN0IHBhc3RWYWx1ZSA9IHBhc3Rfcm93LmNvdW50c1tjb2x1bW5pZF07XG5cbiAgICBjb25zdCBkZWx0YSA9IChjdXJyZW50VmFsdWUgfHwgMCkgLSAocGFzdFZhbHVlIHx8IDApO1xuICAgIGNvbnN0IHRyZW5kID0gZGVsdGEgPT09IDAgPyAndHJlbmRpbmdfZmxhdCcgOiBkZWx0YSA8IDAgPyAndHJlbmRpbmdfZG93bicgOiAndHJlbmRpbmdfdXAnO1xuICAgIHJldHVybiB7IGRlbHRhLCB0cmVuZCwgdmFsdWU6IHBhc3RWYWx1ZSB9O1xuICB9XG5cbiAgcHVibGljIG9wZW5JbkVkaXRvcihzb3VyY2VJZDogc3RyaW5nLCBpc3N1ZUlkOiBzdHJpbmcpIHtcbiAgICBpZiAodGhpcy5zb3VyY2VUeXBlID09PSAncmVwbGljYXRpb25Tb3VyY2UnKSB7XG4gICAgICAvLyBmaW5kIHRoZSBsb25nIG5hbWUgZm9yIHRoZSBzb3VyY2VcbiAgICAgIHNvdXJjZUlkID0gdGhpcy5yZWNlbnRUeXBlQ291bnQkLnZhbHVlLnJvd3MuZmluZCgocikgPT4gci5tZXRhLmlkID09PSBzb3VyY2VJZCk/Lm1ldGEubGFiZWwgfHwgc291cmNlSWQ7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmxpbmtTZXJ2aWNlLnR5cGVzTG9hZGVkJC5waXBlKFxuICAgICAgc2tpcFdoaWxlKChsb2FkZWQpID0+ICFsb2FkZWQpLFxuICAgICAgdGFrZSgxKSxcbiAgICAgIG1hcCgoKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmxpbmtTZXJ2aWNlLmNyZWF0ZUxpbmtGb3JDb3VudHNXaXRoSGlzdG9yeSh0aGlzLnNvdXJjZVR5cGUsIHNvdXJjZUlkLCBpc3N1ZUlkKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxufVxuXG50eXBlIExvYWRpbmdEYXRhID0ge1xuICBkYXRlOiBEYXRlVGltZTtcbn07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21ldGFxczItY291bnRzLXdpdGgtaGlzdG9yeScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBNYXRDYXJkTW9kdWxlLFxuICAgIE1hdENhcmQsXG4gICAgTWF0Q2FyZEhlYWRlcixcbiAgICBNYXRDYXJkVGl0bGUsXG4gICAgTWF0Q2FyZENvbnRlbnQsXG4gICAgTWF0VG9vbHRpcCxcbiAgICBNYXRUYWJsZU1vZHVsZSxcbiAgICBNYXRUYWJsZSxcbiAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgTWF0SGVhZGVyUm93LFxuICAgIE1hdEhlYWRlclJvd0RlZixcbiAgICBNYXRSb3csXG4gICAgTWF0Um93RGVmLFxuICAgIE5nRm9yT2YsXG4gICAgRGF0ZXBpY2tlckNvbXBvbmVudCxcbiAgICBNYXRJY29uLFxuICAgIE5nSWYsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgTWF0U2xpZGVUb2dnbGUsXG4gICAgQXN5bmNQaXBlLFxuICAgIFByb2dyZXNzU3Bpbm5lckNvbXBvbmVudCxcbiAgICBNYXRSaXBwbGUsXG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9jb3VudHMtd2l0aC1oaXN0b3J5LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2NvdW50cy13aXRoLWhpc3RvcnkuY29tcG9uZW50LnNjc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBDb3VudHNXaXRoSGlzdG9yeUNvbXBvbmVudFxuICBleHRlbmRzIEJhc2VIaXN0b3JpY0RhdGFUYWJsZURpcmVjdGl2ZTxMb2FkaW5nRGF0YSwgKGZpbHRlcnM6IEZpbHRlcltdKSA9PiBPYnNlcnZhYmxlPE1hdHJpeFdpdGhDb3VudHM+PlxuICBpbXBsZW1lbnRzIE9uSW5pdFxue1xuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmFwaU1ldGhvZCA/Pz0gJ2dldE1hdGVyaWFsVHlwZUNvdW50c0J5UmVwbGljYXRpb25Tb3VyY2UnO1xuXG4gICAgdGhpcy5yYW5nZS52YWx1ZUNoYW5nZXNcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAoKGRhdGEpID0+IHtcbiAgICAgICAgICBjb25zb2xlLmRlYnVnKCdyYW5nZS52YWx1ZUNoYW5nZXMnLCBkYXRhKTtcbiAgICAgICAgICB0aGlzLmRhdGFGb3JQYXN0RGF0YSQubmV4dCh7IGRhdGU6IGRhdGEuc3RhcnQgfSk7XG4gICAgICAgICAgdGhpcy5kYXRhRm9yUmVjZW50RGF0YSQubmV4dCh7IGRhdGU6IGRhdGEuZW5kIH0pO1xuICAgICAgICB9KSxcbiAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZilcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcblxuICAgIHRoaXMuaXNIaXN0b3J5RW5hYmxlZCRcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAoKGVuYWJsZWQpID0+IHtcbiAgICAgICAgICBjb25zb2xlLmRlYnVnKCdpc0hpc3RvcnlFbmFibGVkJywgZW5hYmxlZCk7XG4gICAgICAgICAgdGhpcy5yYW5nZS5jb250cm9scy5lbmQucmVzZXQoKTtcbiAgICAgICAgICBpZiAoIWVuYWJsZWQpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhcnREYXRlU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgdGhpcy5zdGFydFZhbHVlc1N1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5yYW5nZS5jb250cm9scy5zdGFydC5yZXNldCgpO1xuICAgICAgICAgIGlmICghdGhpcy50aW1lRmlsdGVyTG9hZGVkKCkpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZGVidWcoJ2lzVGltZUZpbHRlckxvYWRlZCcsICdmYWxzZScpO1xuICAgICAgICAgICAgdGhpcy5zdGFydERhdGVTdWJzY3JpcHRpb24gPSB0aGlzLnRpbWVyYW5nZVN0YXJ0JFxuICAgICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICB0YWtlKDEpLFxuICAgICAgICAgICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICBjb25zb2xlLmRlYnVnKCdzdGFydERhdGVTdWJzY3JpcHRpb24nLCAnZG9uZScpO1xuICAgICAgICAgICAgICAgICAgdGhpcy5zdGFydFZhbHVlc1N1YnNjcmlwdGlvbiA9IHRoaXMuc3RhcnRWYWx1ZXMkLnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgICAgICAgdGhpcy5yYW5nZS5jb250cm9scy5zdGFydC5yZXNldCgpO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgLnN1YnNjcmliZSgpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnN0YXJ0VmFsdWVzU3Vic2NyaXB0aW9uID0gdGhpcy5zdGFydFZhbHVlcyQuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICB0aGlzLnJhbmdlLmNvbnRyb2xzLnN0YXJ0LnJlc2V0KCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KSxcbiAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZilcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcblxuICAgIHRoaXMuZW5kVmFsdWVzJC5zdWJzY3JpYmUoKCkgPT4ge30pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldENvdW50QnlEYXRlKGRhdGE6IExvYWRpbmdEYXRhKTogT2JzZXJ2YWJsZTxNYXRyaXhXaXRoQ291bnRzPiB7XG4gICAgY29uc29sZS5kZWJ1ZygnZ2V0Q291bnRCeURhdGUnLCBkYXRhKTtcbiAgICBjb25zdCBmaWx0ZXI6IEZpbHRlciA9IHtcbiAgICAgIGZpZWxkOiAnYXNPZicsXG4gICAgICB2YWx1ZXM6IFt7IGlkOiBkYXRhLmRhdGUudG9JU08oeyBpbmNsdWRlT2Zmc2V0OiBmYWxzZSB9KSEsIGxhYmVsOiAnJyB9XSxcbiAgICB9O1xuXG4gICAgcmV0dXJuIG9mKHVuZGVmaW5lZCkucGlwZShcbiAgICAgIHRhcCgoKSA9PiB0aGlzLmxvYWRpbmdDb3VudC51cGRhdGUoKGl0KSA9PiBpdCArIDEpKSxcbiAgICAgIHN3aXRjaE1hcCgoKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLm1ldGFBcGlbdGhpcy5hcGlNZXRob2RdKFtmaWx0ZXJdKS5waXBlKGZpbmFsaXplKCgpID0+IHRoaXMubG9hZGluZ0NvdW50LnVwZGF0ZSgoaXQpID0+IGl0IC0gMSkpKTtcbiAgICAgIH0pLFxuICAgICAgbWFwKChyZXNwb25zZSkgPT4gKHtcbiAgICAgICAgLi4ucmVzcG9uc2UsXG4gICAgICAgIHJvd3M6IHJlc3BvbnNlLnJvd3MudG9Tb3J0ZWQoKGEsIGIpID0+IGEubWV0YS5sYWJlbC5sb2NhbGVDb21wYXJlKGIubWV0YS5sYWJlbCkpLFxuICAgICAgfSkpXG4gICAgKTtcbiAgfVxuXG4gIHByb3RlY3RlZCB2YWxpZGF0ZUxvYWRpbmdEYXRhKGRhdGE6IFBhcnRpYWw8TG9hZGluZ0RhdGE+KTogZGF0YSBpcyBMb2FkaW5nRGF0YSB7XG4gICAgY29uc29sZS5kZWJ1ZygndmFsaWRhdGVMb2FkaW5nRGF0YScsIGRhdGEsIGRhdGEuZGF0ZT8uaXNWYWxpZCk7XG4gICAgcmV0dXJuIGRhdGEuZGF0ZT8uaXNWYWxpZCA/PyBmYWxzZTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjb21wYXJlTG9hZGluZ0RhdGFFcXVhbChhOiBMb2FkaW5nRGF0YSwgYjogTG9hZGluZ0RhdGEpOiBib29sZWFuIHtcbiAgICByZXR1cm4gYS5kYXRlLmVxdWFscyhiLmRhdGUpO1xuICB9XG59XG4iLCI8bWF0LWNhcmQgYXBwZWFyYW5jZT1cInJhaXNlZFwiPlxuICA8bWF0LWNhcmQtaGVhZGVyICpuZ0lmPVwicGFnZVRpdGxlXCI+XG4gICAgPG1hdC1jYXJkLXRpdGxlIGRhdGEtdGVzdC1pZD1cInBhZ2UtdGl0bGVcIj5cbiAgICAgIFF1YWxpdMOkdHNtZXRyaWs6IHt7IHBhZ2VUaXRsZSB8IHRyYW5zbGF0ZSB9fXt7IGlzTG9hZGluZygpID8gXCI6IExhZGUgbmV1ZSBEYXRlbi5cIiA6IFwiXCIgfX1cbiAgICA8L21hdC1jYXJkLXRpdGxlPlxuICA8L21hdC1jYXJkLWhlYWRlcj5cbiAgPCEtLSBjb25zaWRlciB0byBwdXQgdGhlIGZpbHRlciBpbiB0aGUgdGFibGUgaGVhZGVyIHRvIGF2b2lkIHRoYXQgaXQgaXMgc2Nyb2xsZWQgb3V0IG9mIHZpZXctLT5cbiAgPCEtLSBzaG93IHRoZSBmaWx0ZXIgYWZ0ZXIgdGhlIHZhbHVlcyBhcmUgbG9hZGVkIHRvIGF2b2lkIGxvYWRpbmcgY3VycmVudCBkYXRhIHR3aWNlIC0tPlxuICA8bWF0LWNhcmQtY29udGVudCBjbGFzcz1cInRvb2xiYXJcIj5cbiAgICA8bWV0YXFzMi1kYXRlcGlja2VyIHN0eWxlPVwiZGlzcGxheTogaW5saW5lLWJsb2NrXCIgbWF0UmlwcGxlIFtkaXNhYmxlZF09XCJpc0xvYWRpbmcoKSB8fCAhaXNIaXN0b3J5RW5hYmxlZCgpXCIgW2lucHV0R3JvdXBdPVwicmFuZ2VcIiAqbmdJZj1cInRpbWVGaWx0ZXJMb2FkZWQoKSAmJiBpc0hpc3RvcnlFbmFibGVkKClcIj48L21ldGFxczItZGF0ZXBpY2tlcj5cbiAgICA8ZGl2IHN0eWxlPVwiZmxleDogMSAxIGF1dG9cIj48L2Rpdj5cbiAgICA8bWF0LXNsaWRlLXRvZ2dsZSBbbmdNb2RlbF09XCJpc0hpc3RvcnlFbmFibGVkKClcIiAobmdNb2RlbENoYW5nZSk9XCJpc0hpc3RvcnlFbmFibGVkLnNldCgkZXZlbnQpXCIgW2Rpc2FibGVkXT1cImlzTG9hZGluZygpXCI+XG4gICAgICA8bGFiZWw+WmVpZ2UgaGlzdG9yaXNjaGUgRGF0ZW48L2xhYmVsPlxuICAgIDwvbWF0LXNsaWRlLXRvZ2dsZT5cbiAgPC9tYXQtY2FyZC1jb250ZW50PlxuPC9tYXQtY2FyZD5cbjxtYXQtY2FyZD5cbiAgPG1ldGFxczItcHJvZ3Jlc3Mtc3Bpbm5lciBbZGlzcGxheVByb2dyZXNzU3Bpbm5lcl09XCJpc0xvYWRpbmcoKVwiPjwvbWV0YXFzMi1wcm9ncmVzcy1zcGlubmVyPlxuICA8dGFibGUgW2NsYXNzLndoaWxlLWxvYWRpbmddPVwiaXNMb2FkaW5nKClcIiBtYXQtdGFibGUgW2RhdGFTb3VyY2VdPVwicmVjZW50VHlwZUNvdW50JC52YWx1ZS5yb3dzXCJcbiAgICAgICAgIGNsYXNzPVwicXVhbGl0eS1tYXRyaXhcIj5cbiAgICA8IS0tIERlZmluZSBjb2x1bW5zIG9mIHRhYmxlIC0tPlxuICAgIDwhLS0gUm93IEhlYWRlciBDb2x1bW4gLS0+XG4gICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJsYWJlbC1jb2xcIiBzdGlja3k+XG4gICAgICA8dGggW2F0dHIucm93c3Bhbl09XCJpc0hpc3RvcnlFbmFibGVkKCkgPyAnMicgOiAnMSdcIiBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+XG4gICAgICAgIDxkaXY+UXVlbGxlPC9kaXY+XG4gICAgICA8L3RoPlxuICAgICAgPHRkXG4gICAgICAgIG1hdC1jZWxsXG4gICAgICAgICptYXRDZWxsRGVmPVwibGV0IHJvd1wiXG4gICAgICAgIFttYXRUb29sdGlwXT1cInJvdy5tZXRhLmFsdF9sYWJlbFwiXG4gICAgICAgIGNsYXNzPVwibGFiZWwtY29sIG1hdC1jZWxsLWxldmVsLXt7cm93Lm1ldGEubGV2ZWwgKyAxfX1cIlxuICAgICAgPlxuICAgICAgICB7eyByb3cubWV0YS5sYWJlbCB9fVxuICAgICAgPC90ZD5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8IS0tIG9uZSBjb2x1bW4gZm9yIGVhY2ggdHlwZSAtLT5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjb2wgb2YgKHJlY2VudFR5cGVDb3VudCQgfCBhc3luYyk/LmNvbHVtbnM7IHRyYWNrQnk6Y29sdW1uSWRlbnRcIlxuICAgICAgICAgICAgICAgICAgW21hdENvbHVtbkRlZl09XCJjb2wuaWQgKyAnX3R5cGUnXCI+XG4gICAgICA8dGggW2F0dHIuY29sc3Bhbl09XCJpc0hpc3RvcnlFbmFibGVkKCkgPyAnMicgOiAnMSdcIiBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWYgW21hdFRvb2x0aXBdPVwiY29sLmxhYmVsXCI+XG4gICAgICAgIHt7IGNvbHVtblRyYW5zbGF0aW9ua2V5ID8gKGNvbHVtblRyYW5zbGF0aW9ua2V5ICsgY29sLmxhYmVsIHwgdHJhbnNsYXRlKSA6IGNvbC5sYWJlbCB9fVxuICAgICAgPC90aD5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8IS0tIG9uZSBjb2x1bW4gZm9yIGVhY2ggdHlwZSBmb3IgdGhlIG1vc3QgY3VycmVudCBkYXRlLS0+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY29sIG9mIChyZWNlbnRUeXBlQ291bnQkIHwgYXN5bmMpPy5jb2x1bW5zOyB0cmFja0J5OmNvbHVtbklkZW50XCJcbiAgICAgICAgICAgICAgICAgIFttYXRDb2x1bW5EZWZdPVwiY29sLmlkICsgJ19yZWNlbnQnXCI+XG4gICAgICA8dGggY2xhc3M9XCJyZWNlbnQtZGF0YS1jZWxsXCIgbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmXG4gICAgICAgICAgbWF0VG9vbHRpcD1cIm5vIHRvb2x0aXBcIj57eyByYW5nZS5jb250cm9scy5lbmQudmFsdWUudG9Mb2NhbGVTdHJpbmcoRGF0ZVRpbWUuREFURV9TSE9SVCkgfX1cbiAgICAgIDwvdGg+XG4gICAgICA8dGQgY2xhc3M9XCJyZWNlbnQtZGF0YS1jZWxsXCIgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgcm93XCI+XG4gICAgICAgIDxhIFthdHRyLmhyZWZdPVwib3BlbkluRWRpdG9yKHJvdy5tZXRhLmlkLCBjb2wuaWQpIHwgYXN5bmNcIiB0YXJnZXQ9XCJlZGl0b3JfZnJvbnRlbmRcIj57eyByb3cuY291bnRzW2NvbC5pZF0gPz8gJ+KAkycgfX08L2E+XG4gICAgICA8L3RkPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwhLS0gb25lIGNvbHVtbiBmb3IgZWFjaCB0eXBlIGZvciB0aGUgb2xkZXIgZGF0ZS0tPlxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNvbCBvZiAocmVjZW50VHlwZUNvdW50JCB8IGFzeW5jKT8uY29sdW1uczsgdHJhY2tCeTpjb2x1bW5JZGVudFwiXG4gICAgICAgICAgICAgICAgICBbbWF0Q29sdW1uRGVmXT1cImNvbC5pZCArICdfcGFzdCdcIj5cbiAgICAgIDx0aCBjbGFzcz1cInBhc3QtZGF0YS1jZWxsXCIgbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmIG1hdFRvb2x0aXA9XCJubyB0b29sdGlwXCI+XG4gICAgICAgIHt7IChwYXN0VHlwZUNvdW50JCB8IGFzeW5jKT8ucm93cz8ubGVuZ3RoID8gcmFuZ2UuY29udHJvbHMuc3RhcnQudmFsdWUudG9Mb2NhbGVTdHJpbmcoRGF0ZVRpbWUuREFURV9TSE9SVCkgOiAnbm8gcGFzdCBkYXRhJyB9fVxuICAgICAgPC90aD5cbiAgICAgIDx0ZCBjbGFzcz1cInBhc3QtZGF0YS1jZWxsXCIgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgcm93O1wiID5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIihwYXN0VHlwZUNvdW50JCB8IGFzeW5jKT8ucm93cz8ubGVuZ3RoICYmIHBhc3RUeXBlQ291bnQocm93LCBjb2wuaWQpIGFzIHRyZW5kXCI+XG4gICAgICAgICAgPHNwYW4gW2NsYXNzXT1cInRyZW5kLnRyZW5kXCI+IHt7IHRyZW5kLnZhbHVlID8/ICfigJMnIH19XG4gICAgICAgICAgICA8bWF0LWljb24gKm5nSWY9XCJ0cmVuZC52YWx1ZVwiIGFyaWEtaGlkZGVuPVwiZmFsc2VcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInRyZW5kLnRyZW5kXCIgW2ZvbnRJY29uXT1cInRyZW5kLnRyZW5kIVwiIC8+PC9zcGFuPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2RrLXZpc3VhbGx5LWhpZGRlblwiPnt7IHRyZW5kLnRyZW5kIH19PC9zcGFuPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvdGQ+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPCEtLSBnZW5lcmF0ZSBhY3R1YWwgdGFibGUgLS0+XG4gICAgPHRyIG1hdC1oZWFkZXItcm93ICptYXRIZWFkZXJSb3dEZWY9XCJbJ2xhYmVsLWNvbCddLmNvbmNhdCh0eXBlQ29sdW1ucygpKTsgc3RpY2t5OnRydWU7XCI+PC90cj5cbiAgICA8dHIgW2hpZGRlbl09XCIhaXNIaXN0b3J5RW5hYmxlZCgpXCIgbWF0LWhlYWRlci1yb3cgKm1hdEhlYWRlclJvd0RlZj1cImFsbENvbHVtbnMoKTsgc3RpY2t5OiB0cnVlO1wiPjwvdHI+XG4gICAgPHRyIG1hdC1yb3cgKm1hdFJvd0RlZj1cImxldCByb3c7IGNvbHVtbnM6IFsnbGFiZWwtY29sJ10uY29uY2F0KGFsbENvbHVtbnMoKSlcIj48L3RyPlxuXG4gIDwvdGFibGU+XG48L21hdC1jYXJkPlxuIl19
|
|
@@ -3811,7 +3811,7 @@ class CountsWithHistoryComponent extends BaseHistoricDataTableDirective {
|
|
|
3811
3811
|
}
|
|
3812
3812
|
}), takeUntilDestroyed(this.destroyRef))
|
|
3813
3813
|
.subscribe();
|
|
3814
|
-
this.endValues$.subscribe();
|
|
3814
|
+
this.endValues$.subscribe(() => { });
|
|
3815
3815
|
}
|
|
3816
3816
|
getCountByDate(data) {
|
|
3817
3817
|
console.debug('getCountByDate', data);
|