ps-toolkit-ui 1.18.38 → 1.18.40
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/bundles/ps-toolkit-ui.umd.js +4 -4
- package/bundles/ps-toolkit-ui.umd.js.map +1 -1
- package/bundles/ps-toolkit-ui.umd.min.js +1 -1
- package/bundles/ps-toolkit-ui.umd.min.js.map +1 -1
- package/esm2015/lib/components/table/table.component.js +5 -5
- package/fesm2015/ps-toolkit-ui.js +4 -4
- package/fesm2015/ps-toolkit-ui.js.map +1 -1
- package/package.json +1 -1
- package/ps-toolkit-ui.metadata.json +1 -1
- package/src/assets/styles/base.css +75 -1
|
@@ -57,10 +57,10 @@ export class TableComponent {
|
|
|
57
57
|
this.table.set(this.changeRows);
|
|
58
58
|
if (this.table.searchForm) {
|
|
59
59
|
this.table.searchForm.displayLabel = this.table.expertSearch;
|
|
60
|
-
this.table.searchForm.class = (this.table.searchForm.class ? this.table.searchForm.class : '') + (this.table.expertSearch ? '' : ' p-0');
|
|
60
|
+
this.table.searchForm.class = (this.table.searchForm.class ? this.table.searchForm.class : '') + (this.table.expertSearch ? '' : ' w-1000-30 w-700-40 w-500-50 p-0');
|
|
61
61
|
if (this.table.expertSearch) {
|
|
62
|
-
const s = new InputClass(this.table.environment, this.table.l, 'Search', 'fad fa-magnifying-glass', InputType.Submit, 'blue');
|
|
63
|
-
s.style = {
|
|
62
|
+
const s = new InputClass(this.table.environment, this.table.l, 'Search', 'fad fa-magnifying-glass', InputType.Submit, 'blue h-30');
|
|
63
|
+
s.style = { top: '20px', left: '5px', position: 'absolute', width: '50%' };
|
|
64
64
|
this.table.searchForm.inputs.push(s);
|
|
65
65
|
}
|
|
66
66
|
this.table.searchForm.inputs.forEach(x => {
|
|
@@ -189,7 +189,7 @@ TableComponent.decorators = [
|
|
|
189
189
|
{ type: Component, args: [{
|
|
190
190
|
selector: 'lib-table',
|
|
191
191
|
template: "<div [id]=\"table.id + 'Table'\" [style]=\"table.style\" #tableDiv [className]=\"(table.class ? table.class : '') + (table.sortable ? 'sortable' : '') + (table.hasChildren || table.subTable != null ? ' has-children' : '') + (table.vertical ? ' vertical' : '') + (table.expertSearch ? ' expert-search' : '') + ' table-con w-100'\">\r\n <div *ngIf=\"table.displayLabel\" class=\"title\">\r\n <div class=\"f-r\">{{this.table.title ? this.table.title : table.l('List')}}</div>\r\n <span class=\"description\" *ngIf=\"this.table.description != null\" [innerHTML]=\"'( ' + this.table.description + ' )'\"></span>\r\n <div class=\"extra-buttons\" *ngIf=\"table.showExtraButtons\">\r\n <span *ngIf=\"isSelected()\">\r\n <lib-form-icon *ngFor=\"let btn of table.extraButtons\" [inp]=\"btn\"></lib-form-icon>\r\n </span>\r\n <span *ngIf=\"!isSelected()\">\r\n <lib-form-icon *ngIf=\"table.expertSearch\" [inp]=\"expertSearch\"></lib-form-icon>\r\n <lib-form-icon [inp]=\"reload\"></lib-form-icon>\r\n <lib-form-icon [inp]=\"maximum\"></lib-form-icon>\r\n </span>\r\n </div>\r\n <div *ngIf=\"table.buttons.length > 0\" class=\"buttons\">\r\n <span *ngFor=\"let btn of table.buttons\">\r\n <lib-form-button [inp]=\"btn\" *ngIf=\"btn.type == type.Button\"></lib-form-button>\r\n <lib-form-icon [inp]=\"btn\" *ngIf=\"btn.type == type.Icon\"></lib-form-icon>\r\n <lib-form-label [inp]=\"btn\" *ngIf=\"btn.type == type.Label\"></lib-form-label>\r\n <lib-form-select [inp]=\"btn\" *ngIf=\"btn.type == type.Select\"></lib-form-select>\r\n </span>\r\n </div>\r\n </div>\r\n <div class=\"search-form\" *ngIf=\"table.searchForm\" (click)=\"table.expertSearch && hideExpertSearch($event)\">\r\n <lib-form [form]=\"table.searchForm\"></lib-form>\r\n </div>\r\n <lib-form *ngIf=\"table.form && table.form.onTop\" [form]=\"table.form\"></lib-form>\r\n <div class=\"table\">\r\n <div class=\"header\">\r\n <div [className]=\"(table.hasChildren || table.subTable != null ? 'with-handle-children ' : '') + (table.sortable ? 'with-handle-sortable ' : '') + (table.withSelect ? 'with-handle-select ' : '') + 'row'\">\r\n <div class=\"handle-con\">\r\n <div class=\"handle handle-sortable\" *ngIf=\"table.sortable\"></div>\r\n <div class=\"handle handle-select\" *ngIf=\"table.hasChildren || table.subTable != null\"></div>\r\n <div class=\"handle handle-children\" *ngIf=\"table.withSelect\">\r\n <i (click)=\"selectAll()\" [className]=\"(allSelected() ? 'fa-solid fa-square-check c-green' : isSelected() ? 'fa-solid fa-square-minus c-green' : 'fa-regular fa-square') + ' select-row'\" *ngIf=\"table.rows.length > 0\"></i>\r\n </div>\r\n </div>\r\n <div (click)=\"!table.sortable && col.sort && changeSort($event, col.name)\" [className]=\"(!table.sortable && col.sort ? 'sort ' : '') + col.class + ' ' + col.name + '-cell cell w-100'\" *ngFor=\"let col of table.cols\">\r\n <div class=\"header-title\" *ngIf=\"col.search == null || table.sortable\" [innerHTML]=\"table.l(col.name)\"></div>\r\n <div class=\"header-search\" *ngIf=\"!table.sortable && col.search != null\">\r\n <lib-form-textbox *ngIf=\"col.type != colType.Date && col.type != colType.DateTime && col.type != colType.DateDif && col.type != colType.DateRemain && col.type != colType.Month && col.type != colType.Year && col.enum == null\" [inp]=\"col.search\"></lib-form-textbox>\r\n <lib-form-date *ngIf=\"(col.type == colType.Date || col.type == colType.DateTime || col.type === colType.DateDif || col.type === colType.DateRemain || col.type == colType.Month || col.type == colType.Year) && col.enum == null\" [inp]=\"col.search\"></lib-form-date>\r\n <lib-form-select *ngIf=\"col.enum != null\" [inp]=\"col.search\"></lib-form-select>\r\n </div>\r\n <i *ngIf=\"!table.sortable && col.sort\" [className]=\"'sort-icon fas' + (table.sort === col.name ? (table.sortType === 'ASC' ? ' fa-sort-up' : ' fa-sort-down') : ' fa-sort')\"></i>\r\n </div>\r\n <div class=\"cell options\" *ngIf=\"table.optionType == tableOptionType.Show\">{{table.l('Options')}}</div>\r\n </div>\r\n </div>\r\n <div class=\"body\" #rows [style]=\"table.perPage > 0 ? {minHeight: table.height * table.perPage + 'px'} : {minHeight: '120px'}\">\r\n <lib-table-row (confirmShow)=\"onConfirmShow($event)\" [level]=\"1\" (changeRows)=\"onChangeRows($event)\" [id]=\"row.id ? row.id : ''\" [table]=\"table\" [row]=\"row\" *ngFor=\"let row of getRows()\"></lib-table-row>\r\n <lib-table-loading [table]=\"table\"></lib-table-loading>\r\n </div>\r\n </div>\r\n <lib-table-pagination [table]=\"table\" *ngIf=\"table.perPage > 0\"></lib-table-pagination>\r\n <lib-modal *ngIf=\"table.modal != null\" [modal]=\"table.modal\"></lib-modal>\r\n <lib-modal [modal]=\"opt\" *ngFor=\"let opt of getModals()\"></lib-modal>\r\n <lib-confirm #confirm [tableId]=\"table.name\"></lib-confirm>\r\n</div>\r\n",
|
|
192
|
-
styles: [".table-con{background-color:#fff;border-radius:var(--border-radius-base);box-shadow:var(--box-shadow-table);float:right;overflow:hidden;padding:20px;position:relative}.table-con.maximum{border-radius:0;height:100%;overflow-y:auto;position:fixed;right:0;top:0;width:100%;z-index:102}.table-con>.title{float:right;font-size:16px;font-weight:700;line-height:40px;margin-bottom:10px;position:relative;text-align:right;width:100%}.table-con>.title .description{font-size:13px;font-weight:200;margin-right:10px}.table-con>.title .buttons,.table-con>.title .extra-buttons{float:left;margin-top:5px;position:relative;z-index:1}.table-con>.title .extra-buttons{min-width:80px}.table-con>.search-form{border-radius:var(--border-radius-base);float:right;margin-bottom:10px;width:100%}.table-con.expert-search>.search-form{background-color:rgba(51,51,51,.4);height:100%;left:0;margin-bottom:0;opacity:0;position:absolute;top:0;transition:all .35s ease-in-out;visibility:hidden;width:100%;z-index:3}.table-con.expert-search.show-expert-search>.search-form{opacity:1;visibility:visible}::ng-deep .table-con.expert-search>.search-form .form{background-color:var(--white);box-shadow:var(--box-shadow-
|
|
192
|
+
styles: [".table-con{background-color:#fff;border-radius:var(--border-radius-base);box-shadow:var(--box-shadow-table);float:right;overflow:hidden;padding:20px;position:relative}.table-con.maximum{border-radius:0;height:100%;overflow-y:auto;position:fixed;right:0;top:0;width:100%;z-index:102}.table-con>.title{float:right;font-size:16px;font-weight:700;line-height:40px;margin-bottom:10px;position:relative;text-align:right;width:100%}.table-con>.title .description{font-size:13px;font-weight:200;margin-right:10px}.table-con>.title .buttons,.table-con>.title .extra-buttons{float:left;margin-top:5px;position:relative;z-index:1}.table-con>.title .extra-buttons{min-width:80px}.table-con>.search-form{border-radius:var(--border-radius-base);float:right;margin-bottom:10px;width:100%}.table-con.expert-search>.search-form{background-color:rgba(51,51,51,.4);height:100%;left:0;margin-bottom:0;opacity:0;position:absolute;top:0;transition:all .35s ease-in-out;visibility:hidden;width:100%;z-index:3}.table-con.expert-search.show-expert-search>.search-form{opacity:1;visibility:visible}::ng-deep .table-con.expert-search>.search-form .form{background-color:var(--white);box-shadow:var(--box-shadow-right);height:100%;left:calc(-20% - 20px);padding:20px;position:absolute;top:0;transition:all .35s ease-in-out;width:20%;z-index:4}::ng-deep .table-con.expert-search>.search-form .form .inputs{float:right;height:calc(100% - 50px);margin:0;overflow-y:auto;width:100%}::ng-deep .table-con.expert-search.show-expert-search>.search-form .form{left:0}.table-con .table,.table-con .table .header{float:right;width:100%}.table-con .table .header .row{-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;align-items:center;background-color:var(--base-white);border-radius:var(--border-radius-base);display:flex;flex-wrap:wrap;float:right;justify-content:right;position:relative;width:100%}.table-con .table .header .row.with-handle-children,.table-con .table .header .row.with-handle-select,.table-con .table .header .row.with-handle-sortable{padding-right:30px}.table-con .table .header .row.with-handle-children.with-handle-select,.table-con .table .header .row.with-handle-sortable.with-handle-children,.table-con .table .header .row.with-handle-sortable.with-handle-select{padding-right:60px}.table-con .table .header .row.with-handle-sortable.with-handle-children.with-handle-select{padding-right:90px}.table-con .table .header .row .cell{align-items:center;color:var(--black-light);display:flex;float:right;font-size:12px;font-weight:200;font-weight:400;height:45px;justify-content:center;position:relative}.table-con .table .header .row .cell.options{margin-left:auto;margin-right:auto}.table-con .table .header .row .handle-con{height:100%;position:absolute;right:0;top:0}.table-con .table .header .row .handle-con .handle{align-items:center;display:flex;float:right;height:100%;justify-content:center;width:30px}.table-con .table .header .row .handle-con .handle i{cursor:pointer;font-size:18px}.table-con .table .header .row .cell.sort{cursor:pointer}.table-con .table .header .row .cell .header-title{float:right;padding:0 15px;text-align:center;width:calc(100% - 20px)}.table-con .table .header .row .cell .header-search{float:right;width:calc(100% - 20px)}.table-con .table .header .row .cell .sort-icon{float:right;font-size:13px;height:20px;left:5px;line-height:20px;opacity:.6;top:calc(50% - 10px);width:20px}.table-con .table .body{float:right;position:relative;width:100%}::ng-deep .table-con .table .header .row .cell .select-row{cursor:pointer;font-size:18px;height:30px;line-height:30px}::ng-deep .table-con.vertical .table lib-table-row>.row-con>.row:after{background-image:linear-gradient(180deg,rgba(0,0,0,.05),rgba(50,50,50,.15),rgba(0,0,0,.05));height:100%;left:0;right:unset;width:1px}::ng-deep .table-con.vertical:not(.sortable) .table lib-table-row:first-of-type>.row-con>.row:after,::ng-deep .table-con:not(.sortable) .table lib-table-row:last-of-type>.row-con>.row:after{background-image:unset}.table-con.vertical .table .header{display:none}::ng-deep .table-con .table lib-table-row{display:contents}.table-con.vertical .table .body{display:flex}::ng-deep .table-con.vertical .table lib-table-row:first-of-type>.row-con{background-color:var(--base-white);border-radius:var(--border-radius-base);max-width:150px}@media (max-width:499.99px){::ng-deep .table-con.expert-search>.search-form .form{left:calc(-100% - 20px);width:100%}}@media (min-width:500px) and (max-width:699.99px){::ng-deep .table-con.expert-search>.search-form .form{left:calc(-50% - 20px);width:50%}}@media (min-width:700px) and (max-width:999.99px){::ng-deep .table-con.expert-search>.search-form .form{left:calc(-40% - 20px);width:40%}}@media (min-width:1000px) and (max-width:1599.99px){::ng-deep .table-con.expert-search>.search-form .form{left:calc(-30% - 20px);width:30%}}"]
|
|
193
193
|
},] }
|
|
194
194
|
];
|
|
195
195
|
TableComponent.ctorParameters = () => [
|
|
@@ -203,4 +203,4 @@ TableComponent.propDecorators = {
|
|
|
203
203
|
exportDropDown: [{ type: ViewChild, args: ['exportDropDown',] }],
|
|
204
204
|
confirm: [{ type: ViewChild, args: ['confirm',] }]
|
|
205
205
|
};
|
|
206
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IkQ6L1BzVG9vbGtpdC9VSS9wcm9qZWN0cy9wcy10b29sa2l0LXVpL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL3RhYmxlL3RhYmxlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNwRyxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFFdkMsT0FBTyxFQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUN0RyxPQUFPLEVBQUMsVUFBVSxFQUFFLFdBQVcsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ2pFLE9BQU8sS0FBSyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBRTVCLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUNyRCxPQUFPLDBCQUEwQixDQUFDO0FBQ2xDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUN6RCxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFPL0QsTUFBTSxPQUFPLGNBQWM7SUFpQnpCLFlBQW1CLE1BQWM7UUFBZCxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBYmpDLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBUXhDLFdBQU0sR0FBZSxJQUFJLENBQUM7UUFJMUIsV0FBTSxHQUFlLElBQUksQ0FBQztJQUUxQixDQUFDO0lBYkQsSUFBSSxJQUFJLEtBQXNCLE9BQU8sU0FBUyxDQUFDLENBQUMsQ0FBQztJQUNqRCxJQUFJLGVBQWUsS0FBNEIsT0FBTyxlQUFlLENBQUMsQ0FBQyxDQUFDO0lBQ3hFLElBQUksT0FBTyxLQUEw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QUUsQ0FBQztJQUNwQixDQUFDO0lBQ0QsU0FBUztRQUNQLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxZQUFZLFVBQVUsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7SUFDRCxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ2hCLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEVBQ3ZDO1lBQ0UsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUMsV0FBVyxDQUFDLG9CQUFvQixDQUFDLENBQUM7U0FDbEU7SUFDSCxDQUFDOzs7WUExTEYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxXQUFXO2dCQUNyQixpL0pBQXFDOzthQUV0Qzs7O1lBZk8sTUFBTTs7O29CQWlCWCxLQUFLO3lCQUVMLE1BQU07bUJBS04sU0FBUyxTQUFDLE1BQU07dUJBQ2hCLFNBQVMsU0FBQyxVQUFVOzZCQUNwQixTQUFTLFNBQUMsZ0JBQWdCO3NCQUMxQixTQUFTLFNBQUMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtSb3V0ZXJ9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7VGFibGVDbGFzc30gZnJvbSAnLi4vLi4vY2xhc3Nlcy90YWJsZS5jbGFzcyc7XHJcbmltcG9ydCB7RW51bVV0aWxzLCBJbnB1dFR5cGUsIE1ldGhvZCwgVGFibGVDb2xsVHlwZSwgVGFibGVPcHRpb25UeXBlfSBmcm9tICcuLi8uLi9jbGFzc2VzL2VudW0uY2xhc3MnO1xyXG5pbXBvcnQge0lucHV0Q2xhc3MsIE9wdGlvbkNsYXNzfSBmcm9tICcuLi8uLi9jbGFzc2VzL2Zvcm0uY2xhc3MnO1xyXG5pbXBvcnQgKiBhcyAkIGZyb20gJ2pxdWVyeSc7XHJcbmltcG9ydCB7Q29uZmlybUNvbXBvbmVudH0gZnJvbSAnLi4vY29uZmlybS9jb25maXJtLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7TW9kYWxDbGFzc30gZnJvbSAnLi4vLi4vY2xhc3Nlcy9tb2RhbC5jbGFzcyc7XHJcbmltcG9ydCAnanF1ZXJ5LXVpLWRpc3QvanF1ZXJ5LXVpJztcclxuaW1wb3J0IHtSZXF1ZXN0Q2xhc3N9IGZyb20gJy4uLy4uL2NsYXNzZXMvcmVxdWVzdC5jbGFzcyc7XHJcbmltcG9ydCB7UGVybWlzc2lvbkNsYXNzfSBmcm9tICcuLi8uLi9jbGFzc2VzL3Blcm1pc3Npb24uY2xhc3MnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItdGFibGUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90YWJsZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdGFibGUuY29tcG9uZW50LmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUYWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdHtcclxuICBASW5wdXQoKVxyXG4gIHRhYmxlOiBUYWJsZUNsYXNzO1xyXG4gIEBPdXRwdXQoKVxyXG4gIGNoYW5nZVJvd3MgPSBuZXcgRXZlbnRFbWl0dGVyPG9iamVjdD4oKTtcclxuICBnZXQgdHlwZSgpOiB0eXBlb2YgSW5wdXRUeXBleyByZXR1cm4gSW5wdXRUeXBlOyB9XHJcbiAgZ2V0IHRhYmxlT3B0aW9uVHlwZSgpOiB0eXBlb2YgVGFibGVPcHRpb25UeXBleyByZXR1cm4gVGFibGVPcHRpb25UeXBlOyB9XHJcbiAgZ2V0IGNvbFR5cGUoKTogdHlwZW9mIFRhYmxlQ29sbFR5cGV7IHJldHVybiBUYWJsZUNvbGxUeXBlOyB9XHJcbiAgQFZpZXdDaGlsZCgncm93cycpIHJvd3M6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZCgndGFibGVEaXYnKSB0YWJsZURpdjogRWxlbWVudFJlZjtcclxuICBAVmlld0NoaWxkKCdleHBvcnREcm9wRG93bicpIGV4cG9ydERyb3BEb3duOiBFbGVtZW50UmVmO1xyXG4gIEBWaWV3Q2hpbGQoJ2NvbmZpcm0nKSBjb25maXJtOiBDb25maXJtQ29tcG9uZW50O1xyXG4gIHNlbGVjdDogSW5wdXRDbGFzcyA9IG51bGw7XHJcbiAgcmVsb2FkOiBJbnB1dENsYXNzO1xyXG4gIG1heGltdW06IElucHV0Q2xhc3M7XHJcbiAgZXhwZXJ0U2VhcmNoOiBJbnB1dENsYXNzO1xyXG4gIGV4cG9ydDogSW5wdXRDbGFzcyA9IG51bGw7XHJcbiAgY29uc3RydWN0b3IocHVibGljIHJvdXRlcjogUm91dGVyKSB7XHJcbiAgfVxyXG4gIG9wdGlvbnM6IElucHV0Q2xhc3NbXTtcclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMucmVsb2FkID0gbmV3IElucHV0Q2xhc3ModGhpcy50YWJsZS5lbnZpcm9ubWVudCwgdGhpcy50YWJsZS5sLCAnUmVsb2FkJywgJ2ZhZCBmYS1zeW5jLWFsdCcsIElucHV0VHlwZS5JY29uLCAnbS1yLTEwLXAnKTtcclxuICAgIHRoaXMubWF4aW11bSA9IG5ldyBJbnB1dENsYXNzKHRoaXMudGFibGUuZW52aXJvbm1lbnQsIHRoaXMudGFibGUubCwgJ01heGltdW0nLCAnZmFkIGZhLWFycm93cy1tYXhpbWl6ZScsIElucHV0VHlwZS5JY29uLCAnbS1yLTEwLXAnKTtcclxuICAgIHRoaXMuZXhwZXJ0U2VhcmNoID0gbmV3IElucHV0Q2xhc3ModGhpcy50YWJsZS5lbnZpcm9ubWVudCwgdGhpcy50YWJsZS5sLCAnRXhwZXJ0U2VhcmNoJywgJ2ZhZCBmYS1tYWduaWZ5aW5nLWdsYXNzJywgSW5wdXRUeXBlLkljb24sICdtLXItMTAtcCcpO1xyXG4gICAgZm9yIChjb25zdCBjIG9mIHRoaXMudGFibGUuY29scy5maWx0ZXIoeCA9PiB4LndpdGhTZWFyY2gpKXtcclxuICAgICAgYy5zZWFyY2ggPSBuZXcgSW5wdXRDbGFzcyh0aGlzLnRhYmxlLmVudmlyb25tZW50LCB0aGlzLnRhYmxlLmwsIGMubmFtZSwgbnVsbCwgSW5wdXRUeXBlLlRleHQsICdoLTI1IHRhYmxlLXNlYXJjaCcsIGMuc2VhcmNoRGVmYXVsdCk7XHJcbiAgICAgIGlmIChjLnR5cGUgPT09IFRhYmxlQ29sbFR5cGUuRGF0ZSB8fCBjLnR5cGUgPT09IFRhYmxlQ29sbFR5cGUuRGF0ZVRpbWUgfHwgYy50eXBlID09PSBUYWJsZUNvbGxUeXBlLkRhdGVEaWYgfHwgYy50eXBlID09PSBUYWJsZUNvbGxUeXBlLkRhdGVSZW1haW4pe1xyXG4gICAgICAgIGMuc2VhcmNoLnR5cGUgPSBJbnB1dFR5cGUuRGF0ZTtcclxuICAgICAgfSBlbHNlIGlmIChjLnR5cGUgPT09IFRhYmxlQ29sbFR5cGUuTW9udGgpe1xyXG4gICAgICAgIGMuc2VhcmNoLnR5cGUgPSBJbnB1dFR5cGUuTW9udGg7XHJcbiAgICAgIH0gZWxzZSBpZiAoYy50eXBlID09PSBUYWJsZUNvbGxUeXBlLlllYXIpe1xyXG4gICAgICAgIGMuc2VhcmNoLnR5cGUgPSBJbnB1dFR5cGUuWWVhcjtcclxuICAgICAgfSBlbHNlIGlmIChjLnR5cGUgPT09IFRhYmxlQ29sbFR5cGUuUHJpY2Upe1xyXG4gICAgICAgIGMuc2VhcmNoLnR5cGUgPSBJbnB1dFR5cGUuUHJpY2U7XHJcbiAgICAgIH0gZWxzZSBpZiAoYy5lbnVtICE9IG51bGwpe1xyXG4gICAgICAgIGMuc2VhcmNoLnR5cGUgPSBJbnB1dFR5cGUuU2VsZWN0O1xyXG4gICAgICAgIGMuc2VhcmNoLm9wdGlvbnMgPSBbbmV3IE9wdGlvbkNsYXNzKCcnLCAnLTEnKV0uY29uY2F0KEVudW1VdGlscy5nZXRLZXlzQW5kVmFsdWVzKGMuZW51bSkubWFwKHggPT4gbmV3IE9wdGlvbkNsYXNzKHRoaXMudGFibGUubCh4LmtleSksIHgudmFsdWUudG9TdHJpbmcoKSkpKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjLnNlYXJjaC50eXBlID0gSW5wdXRUeXBlLlRleHQ7XHJcbiAgICAgIH1cclxuICAgICAgYy5zZWFyY2guZGlzcGxheUxhYmVsID0gZmFsc2U7XHJcbiAgICAgIGMuc2VhcmNoLm9uQ2hhbmdlID0gKCkgPT4ge1xyXG4gICAgICAgIHRoaXMudGFibGUucGFnZSA9IDE7XHJcbiAgICAgICAgdGhpcy50YWJsZS5sb2FkKCk7XHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy50YWJsZS5zb3J0YWJsZSl7XHJcbiAgICAgIHRoaXMudGFibGUucGVyUGFnZSA9IC0xO1xyXG4gICAgICB0aGlzLnRhYmxlLm9uTG9hZCA9ICgpID0+IHtcclxuICAgICAgICB0aGlzLnNldFNvcnRhYmxlKCk7XHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICB0aGlzLnRhYmxlLnNldCh0aGlzLmNoYW5nZVJvd3MpO1xyXG4gICAgaWYgKHRoaXMudGFibGUuc2VhcmNoRm9ybSl7XHJcbiAgICAgIHRoaXMudGFibGUuc2VhcmNoRm9ybS5kaXNwbGF5TGFiZWwgPSB0aGlzLnRhYmxlLmV4cGVydFNlYXJjaDtcclxuICAgICAgdGhpcy50YWJsZS5zZWFyY2hGb3JtLmNsYXNzID0gKHRoaXMudGFibGUuc2VhcmNoRm9ybS5jbGFzcyA/IHRoaXMudGFibGUuc2VhcmNoRm9ybS5jbGFzcyA6ICcnKSArICh0aGlzLnRhYmxlLmV4cGVydFNlYXJjaCA/ICcnIDogJyBwLTAnKTtcclxuICAgICAgaWYgKHRoaXMudGFibGUuZXhwZXJ0U2VhcmNoKXtcclxuICAgICAgICBjb25zdCBzID0gbmV3IElucHV0Q2xhc3ModGhpcy50YWJsZS5lbnZpcm9ubWVudCwgdGhpcy50YWJsZS5sLCAnU2VhcmNoJywgJ2ZhZCBmYS1tYWduaWZ5aW5nLWdsYXNzJywgSW5wdXRUeXBlLlN1Ym1pdCwgJ2JsdWUnKTtcclxuICAgICAgICBzLnN0eWxlID0ge3Bvc2l0aW9uOiAnYWJzb2x1dGUnLCBib3R0b206ICcyMHB4JywgbGVmdDogJzAnfTtcclxuICAgICAgICB0aGlzLnRhYmxlLnNlYXJjaEZvcm0uaW5wdXRzLnB1c2gocyk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy50YWJsZS5zZWFyY2hGb3JtLmlucHV0cy5mb3JFYWNoKHggPT4ge1xyXG4gICAgICAgIGNvbnN0IGhhc1N1Ym1pdCA9IHRoaXMudGFibGUuc2VhcmNoRm9ybS5pbnB1dHMuc29tZShzID0+IHMudHlwZSA9PT0gSW5wdXRUeXBlLlN1Ym1pdCk7XHJcbiAgICAgICAgeC5yZXF1aXJlZCA9IGZhbHNlO1xyXG4gICAgICAgIHguZGlzcGxheUxhYmVsID0gdGhpcy50YWJsZS5leHBlcnRTZWFyY2g7XHJcbiAgICAgICAgeC5jbGFzcyA9IHguY2xhc3MgKyAnIHNlYXJjaC1mb3JtLWlucCc7XHJcbiAgICAgICAgeC53aXRoQ2xlYXIgPSAhaGFzU3VibWl0IHx8IHRoaXMudGFibGUuZXhwZXJ0U2VhcmNoO1xyXG4gICAgICAgIGlmICghaGFzU3VibWl0KXtcclxuICAgICAgICAgIGlmICh4Lm9uQ2hhbmdlID09IG51bGwpe1xyXG4gICAgICAgICAgICB4Lm9uQ2hhbmdlID0gKCkgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMudGFibGUubG9hZCgpO1xyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoeC50eXBlID09PSBJbnB1dFR5cGUuU3VibWl0KXtcclxuICAgICAgICAgIHgub25DbGljayA9ICgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy50YWJsZS5sb2FkKHgpO1xyXG4gICAgICAgICAgICAkKHRoaXMudGFibGVEaXYubmF0aXZlRWxlbWVudCkucmVtb3ZlQ2xhc3MoJ3Nob3ctZXhwZXJ0LXNlYXJjaCcpO1xyXG4gICAgICAgICAgfTtcclxuICAgICAgICAgIHRoaXMudGFibGUuc2VhcmNoRm9ybS5zdWJtaXQgPSAoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMudGFibGUubG9hZCh4KTtcclxuICAgICAgICAgICAgJCh0aGlzLnRhYmxlRGl2Lm5hdGl2ZUVsZW1lbnQpLnJlbW92ZUNsYXNzKCdzaG93LWV4cGVydC1zZWFyY2gnKTtcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIHRoaXMub3B0aW9ucyA9IHRoaXMuZ2V0T3B0aW9ucygpO1xyXG4gICAgdGhpcy5yZWxvYWQub25DbGljayA9ICgpID0+IHtcclxuICAgICAgdGhpcy50YWJsZS5sb2FkKHRoaXMucmVsb2FkKTtcclxuICAgIH07XHJcbiAgICB0aGlzLm1heGltdW0ub25DbGljayA9ICgpID0+IHtcclxuICAgICAgJCh0aGlzLnRhYmxlRGl2Lm5hdGl2ZUVsZW1lbnQpLnRvZ2dsZUNsYXNzKCdtYXhpbXVtJyk7XHJcbiAgICAgIHRoaXMubWF4aW11bS5pY29uID0gdGhpcy5tYXhpbXVtLm5hbWUgPT09ICdNaW5pbXVtJyA/ICdmYWQgZmEtYXJyb3dzLW1heGltaXplJyA6ICdmYWQgZmEtYXJyb3dzLW1pbmltaXplJztcclxuICAgICAgdGhpcy5tYXhpbXVtLm5hbWUgPSB0aGlzLm1heGltdW0ubmFtZSA9PT0gJ01pbmltdW0nID8gJ01heGltdW0nIDogJ01pbmltdW0nO1xyXG4gICAgfTtcclxuICAgIHRoaXMuZXhwZXJ0U2VhcmNoLm9uQ2xpY2sgPSAoKSA9PiB7XHJcbiAgICAgICQodGhpcy50YWJsZURpdi5uYXRpdmVFbGVtZW50KS5hZGRDbGFzcygnc2hvdy1leHBlcnQtc2VhcmNoJyk7XHJcbiAgICB9O1xyXG4gICAgdGhpcy50YWJsZS5zaG93Q29uZmlybSA9IChsOiBzdHJpbmcsIHVybDogc3RyaW5nLCBkYXRhLCBhY2NlcHQ6IChyZXN1bHQ6IGFueSkgPT4gdm9pZCkgPT4ge1xyXG4gICAgICB0aGlzLmNvbmZpcm0uc2hvdyhsLCB1cmwsIGRhdGEsIGFjY2VwdCk7XHJcbiAgICB9O1xyXG4gIH1cclxuICBhbGxTZWxlY3RlZCgpOiBib29sZWFue1xyXG4gICAgcmV0dXJuIHRoaXMudGFibGUucm93cy5maWx0ZXIoeCA9PiAheC5zZWxlY3RlZCkubGVuZ3RoID09PSAwO1xyXG4gIH1cclxuICBpc1NlbGVjdGVkKCk6IGJvb2xlYW57XHJcbiAgICByZXR1cm4gdGhpcy50YWJsZS5yb3dzLmZpbHRlcih4ID0+IHguc2VsZWN0ZWQpLmxlbmd0aCA+IDA7XHJcbiAgfVxyXG4gIHNlbGVjdEFsbCgpOiB2b2lke1xyXG4gICAgaWYgKHRoaXMudGFibGUucm93cy5maWx0ZXIoeCA9PiAheC5zZWxlY3RlZCkubGVuZ3RoID09PSAwKXtcclxuICAgICAgdGhpcy50YWJsZS5yb3dzLmZvckVhY2goeCA9PiB4LnNlbGVjdGVkID0gZmFsc2UpO1xyXG4gICAgfWVsc2V7XHJcbiAgICAgIHRoaXMudGFibGUucm93cy5mb3JFYWNoKHggPT4geC5zZWxlY3RlZCA9IHRydWUpO1xyXG4gICAgfVxyXG4gIH1cclxuICBnZXRPcHRpb25zKCk6IElucHV0Q2xhc3NbXXtcclxuICAgIHJldHVybiBbXTtcclxuICB9XHJcbiAgc2V0U29ydGFibGUoKTogdm9pZHtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICQodGhpcy5yb3dzLm5hdGl2ZUVsZW1lbnQpLnNvcnRhYmxlKHtcclxuICAgICAgICBheGlzOiAneScsXHJcbiAgICAgICAgaXRlbXM6ICcucm93JyxcclxuICAgICAgICBoYW5kbGU6ICc+IC5oYW5kbGUtY29uID4gLmhhbmRsZS5oYW5kbGUtc29ydGFibGUnLFxyXG4gICAgICAgIHVwZGF0ZTogKCkgPT4ge1xyXG4gICAgICAgICAgY29uc3QgZGF0YSA9IFtdO1xyXG4gICAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgICAgJCh0aGlzLnJvd3MubmF0aXZlRWxlbWVudCkuc29ydGFibGUoJ3RvQXJyYXknLCB7YXR0cmlidXRlOiAnZGF0YS1pZCd9KS5mb3JFYWNoKHggPT4ge1xyXG4gICAgICAgICAgICBkYXRhLnB1c2gocGFyc2VJbnQoeCwgMTApKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgY29uc3QgcCA9IG5ldyBQZXJtaXNzaW9uQ2xhc3MoKTtcclxuICAgICAgICAgIHAuQXJlYSA9IHRoaXMudGFibGUucGVybWlzc2lvbnMuQXJlYTtcclxuICAgICAgICAgIHAuQ29udHJvbGxlciA9IHRoaXMudGFibGUucGVybWlzc2lvbnMuQ29udHJvbGxlcjtcclxuICAgICAgICAgIHAuUmVsYXRlZElkID0gdGhpcy50YWJsZS5wZXJtaXNzaW9ucy5SZWxhdGVkSWQ7XHJcbiAgICAgICAgICBwLkFjdGlvbiA9IHRoaXMudGFibGUucGVybWlzc2lvbnMuQWN0aW9uID8gdGhpcy50YWJsZS5wZXJtaXNzaW9ucy5BY3Rpb24gKyAnLXNvcnQnIDogJ3NvcnQnO1xyXG4gICAgICAgICAgbmV3IFJlcXVlc3RDbGFzcyh0aGlzLnRhYmxlLmVudmlyb25tZW50LCB0aGlzLnRhYmxlLmwpLnNlbmQocC5nZXRVcmwoKS50b0xvd2VyQ2FzZSgpLCBNZXRob2QuUG9zdCwge0lkczogZGF0YX0sIG51bGwsICgpID0+IHtcclxuICAgICAgICAgICAgaWYgKHRoaXMudGFibGUub25Tb3J0KXtcclxuICAgICAgICAgICAgICB0aGlzLnRhYmxlLm9uU29ydCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9LCAoKSA9PiB7fSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KS5kaXNhYmxlU2VsZWN0aW9uKCk7XHJcbiAgICB9LCA1MDApO1xyXG4gIH1cclxuICBnZXRSb3dzKCk6IGFueVtde1xyXG4gICAgY29uc3QgYyA9IHRoaXMudGFibGUucm93cy5maWx0ZXIoeCA9PiAheC5EYXRhLlBhcmVudElkKTtcclxuICAgIGMuZm9yRWFjaCgoeCwgaSkgPT4geC5Sb3dOdW0gPSBjLmxlbmd0aCAtIGkgKyAxKTtcclxuICAgIHJldHVybiBjO1xyXG4gIH1cclxuICAvLyBnZXRPcHRpb25Nb2RhbHMoKTogSW5wdXRDbGFzc1tde1xyXG4gIC8vICAgY29uc3QgbW9kYWxzID0gW107XHJcbiAgLy8gICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyh0aGlzLnRhYmxlLm9wdGlvbkFjdGlvbnMpKSB7XHJcbiAgLy8gICAgIGlmICh0aGlzLnRhYmxlLm9wdGlvbkFjdGlvbnNba2V5XS5tb2RhbCl7XHJcbiAgLy8gICAgICAgbW9kYWxzLnB1c2godGhpcy50YWJsZS5vcHRpb25BY3Rpb25zW2tleV0ubW9kYWwpO1xyXG4gIC8vICAgICB9XHJcbiAgLy8gICB9XHJcbiAgLy8gICByZXR1cm4gbW9kYWxzO1xyXG4gIC8vIH1cclxuICBvbkNoYW5nZVJvd3MoZSk6IHZvaWR7XHJcbiAgICByZXR1cm4gdGhpcy5jaGFuZ2VSb3dzLmVtaXQoZSk7XHJcbiAgfVxyXG4gIG9uQ29uZmlybVNob3coZSk6IHZvaWR7XHJcbiAgICB0aGlzLmNvbmZpcm0uc2hvdyh0aGlzLnRhYmxlLmwoZS5hY3Rpb24gKyAnQ29uZmlybScpLCBlLnVybCwgZS5kYXRhLCBlLmFjY2VwdCk7XHJcbiAgfVxyXG4gIGNoYW5nZVNvcnQoZSwgczogc3RyaW5nKTogdm9pZHtcclxuICAgIGlmICgkKGUudGFyZ2V0KS5jbG9zZXN0KCcuaGVhZGVyLXNlYXJjaCcpLmhhc0NsYXNzKCdoZWFkZXItc2VhcmNoJykpe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLnRhYmxlLnNvcnRUeXBlID0gdGhpcy50YWJsZS5zb3J0ID09PSBzID8gdGhpcy50YWJsZS5zb3J0VHlwZSA9PT0gJ0FTQycgPyAnREVTQycgOiBudWxsIDogJ0FTQyc7XHJcbiAgICB0aGlzLnRhYmxlLnNvcnQgPSB0aGlzLnRhYmxlLnNvcnRUeXBlID09IG51bGwgPyBudWxsIDogcztcclxuICAgIHRoaXMudGFibGUubG9hZCgpO1xyXG4gIH1cclxuICBnZXRNb2RhbHMoKTogTW9kYWxDbGFzc1tde1xyXG4gICAgcmV0dXJuIHRoaXMudGFibGUub3B0aW9uc0FjdGlvbnMuZmlsdGVyKHggPT4geCBpbnN0YW5jZW9mIE1vZGFsQ2xhc3MpO1xyXG4gIH1cclxuICBoaWRlRXhwZXJ0U2VhcmNoKGUpOiB2b2lke1xyXG4gICAgaWYgKCQoZS50YXJnZXQpLmhhc0NsYXNzKCdzZWFyY2gtZm9ybScpKVxyXG4gICAge1xyXG4gICAgICAkKHRoaXMudGFibGVEaXYubmF0aXZlRWxlbWVudCkucmVtb3ZlQ2xhc3MoJ3Nob3ctZXhwZXJ0LXNlYXJjaCcpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
|
|
206
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IkQ6L1BzVG9vbGtpdC9VSS9wcm9qZWN0cy9wcy10b29sa2l0LXVpL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL3RhYmxlL3RhYmxlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNwRyxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFFdkMsT0FBTyxFQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUN0RyxPQUFPLEVBQUMsVUFBVSxFQUFFLFdBQVcsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ2pFLE9BQU8sS0FBSyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBRTVCLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUNyRCxPQUFPLDBCQUEwQixDQUFDO0FBQ2xDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUN6RCxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFPL0QsTUFBTSxPQUFPLGNBQWM7SUFpQnpCLFlBQW1CLE1BQWM7UUFBZCxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBYmpDLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBUXhDLFdBQU0sR0FBZSxJQUFJLENBQUM7UUFJMUIsV0FBTSxHQUFlLElBQUksQ0FBQztJQUUxQixDQUFDO0lBYkQsSUFBSSxJQUFJLEtBQXNCLE9BQU8sU0FBUyxDQUFDLENBQUMsQ0FBQztJQUNqRCxJQUFJLGVBQWUsS0FBNEIsT0FBTyxlQUFlLENBQUMsQ0FBQyxDQUFDO0lBQ3hFLElBQUksT0FBTyxLQUEwQixPQUFPLGFBQWEsQ0FBQyxDQUFDLENBQUM7SUFhNUQsUUFBUTtRQUNOLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLGlCQUFpQixFQUFFLFNBQVMsQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDNUgsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxTQUFTLEVBQUUsd0JBQXdCLEVBQUUsU0FBUyxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQztRQUNySSxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLGNBQWMsRUFBRSx5QkFBeUIsRUFBRSxTQUFTLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ2hKLEtBQUssTUFBTSxDQUFDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxFQUFDO1lBQ3hELENBQUMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsU0FBUyxDQUFDLElBQUksRUFBRSxtQkFBbUIsRUFBRSxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDcEksSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLGFBQWEsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxhQUFhLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssYUFBYSxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLGFBQWEsQ0FBQyxVQUFVLEVBQUM7Z0JBQ2hKLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUM7YUFDaEM7aUJBQU0sSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLGFBQWEsQ0FBQyxLQUFLLEVBQUM7Z0JBQ3hDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUM7YUFDakM7aUJBQU0sSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLGFBQWEsQ0FBQyxJQUFJLEVBQUM7Z0JBQ3ZDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUM7YUFDaEM7aUJBQU0sSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLGFBQWEsQ0FBQyxLQUFLLEVBQUM7Z0JBQ3hDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUM7YUFDakM7aUJBQU0sSUFBSSxDQUFDLENBQUMsSUFBSSxJQUFJLElBQUksRUFBQztnQkFDeEIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQztnQkFDakMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsQ0FBQyxJQUFJLFdBQVcsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUM5SjtpQkFBTTtnQkFDTCxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDO2FBQ2hDO1lBQ0QsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1lBQzlCLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxHQUFHLEdBQUcsRUFBRTtnQkFDdkIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDO2dCQUNwQixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3BCLENBQUMsQ0FBQztTQUNIO1FBQ0QsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBQztZQUN0QixJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQztZQUN4QixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxHQUFHLEVBQUU7Z0JBQ3ZCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNyQixDQUFDLENBQUM7U0FDSDtRQUNELElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNoQyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFDO1lBQ3hCLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQztZQUM3RCxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDO1lBQ3JLLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQUM7Z0JBQzFCLE1BQU0sQ0FBQyxHQUFHLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSx5QkFBeUIsRUFBRSxTQUFTLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxDQUFDO2dCQUNuSSxDQUFDLENBQUMsS0FBSyxHQUFHLEVBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBQyxDQUFDO2dCQUN6RSxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ3RDO1lBQ0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDdkMsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUN0RixDQUFDLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztnQkFDbkIsQ0FBQyxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQztnQkFDekMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsS0FBSyxHQUFHLGtCQUFrQixDQUFDO2dCQUN2QyxDQUFDLENBQUMsU0FBUyxHQUFHLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDO2dCQUNwRCxJQUFJLENBQUMsU0FBUyxFQUFDO29CQUNiLElBQUksQ0FBQyxDQUFDLFFBQVEsSUFBSSxJQUFJLEVBQUM7d0JBQ3JCLENBQUMsQ0FBQyxRQUFRLEdBQUcsR0FBRyxFQUFFOzRCQUNoQixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO3dCQUNwQixDQUFDLENBQUM7cUJBQ0g7aUJBQ0Y7Z0JBQ0QsSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQyxNQUFNLEVBQUM7b0JBQzlCLENBQUMsQ0FBQyxPQUFPLEdBQUcsR0FBRyxFQUFFO3dCQUNmLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO3dCQUNuQixDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQyxXQUFXLENBQUMsb0JBQW9CLENBQUMsQ0FBQztvQkFDbkUsQ0FBQyxDQUFDO29CQUNGLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLE1BQU0sR0FBRyxHQUFHLEVBQUU7d0JBQ2xDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO3dCQUNuQixDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQyxXQUFXLENBQUMsb0JBQW9CLENBQUMsQ0FBQztvQkFDbkUsQ0FBQyxDQUFDO2lCQUNIO1lBQ0gsQ0FBQyxDQUFDLENBQUM7U0FDSjtRQUNELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLEdBQUcsRUFBRTtZQUN6QixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDL0IsQ0FBQyxDQUFDO1FBQ0YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEdBQUcsR0FBRyxFQUFFO1lBQzFCLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUN0RCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLHdCQUF3QixDQUFDLENBQUMsQ0FBQyx3QkFBd0IsQ0FBQztZQUMxRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQzlFLENBQUMsQ0FBQztRQUNGLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxHQUFHLEdBQUcsRUFBRTtZQUMvQixDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQyxRQUFRLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUNoRSxDQUFDLENBQUM7UUFDRixJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQVMsRUFBRSxHQUFXLEVBQUUsSUFBSSxFQUFFLE1BQTZCLEVBQUUsRUFBRTtZQUN2RixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztRQUMxQyxDQUFDLENBQUM7SUFDSixDQUFDO0lBQ0QsV0FBVztRQUNULE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBQ0QsVUFBVTtRQUNSLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUNELFNBQVM7UUFDUCxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUM7WUFDeEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsQ0FBQztTQUNsRDthQUFJO1lBQ0gsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsQ0FBQztTQUNqRDtJQUNILENBQUM7SUFDRCxVQUFVO1FBQ1IsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBQ0QsV0FBVztRQUNULFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxhQUFhO1lBQ2IsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsUUFBUSxDQUFDO2dCQUNsQyxJQUFJLEVBQUUsR0FBRztnQkFDVCxLQUFLLEVBQUUsTUFBTTtnQkFDYixNQUFNLEVBQUUseUNBQXlDO2dCQUNqRCxNQUFNLEVBQUUsR0FBRyxFQUFFO29CQUNYLE1BQU0sSUFBSSxHQUFHLEVBQUUsQ0FBQztvQkFDaEIsYUFBYTtvQkFDYixDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLEVBQUMsU0FBUyxFQUFFLFNBQVMsRUFBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO3dCQUNqRixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztvQkFDN0IsQ0FBQyxDQUFDLENBQUM7b0JBQ0gsTUFBTSxDQUFDLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQztvQkFDaEMsQ0FBQyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7b0JBQ3JDLENBQUMsQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDO29CQUNqRCxDQUFDLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQztvQkFDL0MsQ0FBQyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztvQkFDNUYsSUFBSSxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFdBQVcsRUFBRSxFQUFFLE1BQU0sQ0FBQyxJQUFJLEVBQUUsRUFBQyxHQUFHLEVBQUUsSUFBSSxFQUFDLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRTt3QkFDekgsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBQzs0QkFDcEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQzt5QkFDckI7b0JBQ0gsQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUNmLENBQUM7YUFDRixDQUFDLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUN4QixDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDVixDQUFDO0lBQ0QsT0FBTztRQUNMLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN4RCxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNqRCxPQUFPLENBQUMsQ0FBQztJQUNYLENBQUM7SUFDRCxtQ0FBbUM7SUFDbkMsdUJBQXVCO0lBQ3ZCLDJFQUEyRTtJQUMzRSxnREFBZ0Q7SUFDaEQsMERBQTBEO0lBQzFELFFBQVE7SUFDUixNQUFNO0lBQ04sbUJBQW1CO0lBQ25CLElBQUk7SUFDSixZQUFZLENBQUMsQ0FBQztRQUNaLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUNELGFBQWEsQ0FBQyxDQUFDO1FBQ2IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2pGLENBQUM7SUFDRCxVQUFVLENBQUMsQ0FBQyxFQUFFLENBQVM7UUFDckIsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsRUFBQztZQUNsRSxPQUFPO1NBQ1I7UUFDRCxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUNwRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3pELElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUNELFNBQVM7UUFDUCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsWUFBWSxVQUFVLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBQ0QsZ0JBQWdCLENBQUMsQ0FBQztRQUNoQixJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxFQUN2QztZQUNFLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1NBQ2xFO0lBQ0gsQ0FBQzs7O1lBMUxGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsV0FBVztnQkFDckIsaS9KQUFxQzs7YUFFdEM7OztZQWZPLE1BQU07OztvQkFpQlgsS0FBSzt5QkFFTCxNQUFNO21CQUtOLFNBQVMsU0FBQyxNQUFNO3VCQUNoQixTQUFTLFNBQUMsVUFBVTs2QkFDcEIsU0FBUyxTQUFDLGdCQUFnQjtzQkFDMUIsU0FBUyxTQUFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7Um91dGVyfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQge1RhYmxlQ2xhc3N9IGZyb20gJy4uLy4uL2NsYXNzZXMvdGFibGUuY2xhc3MnO1xyXG5pbXBvcnQge0VudW1VdGlscywgSW5wdXRUeXBlLCBNZXRob2QsIFRhYmxlQ29sbFR5cGUsIFRhYmxlT3B0aW9uVHlwZX0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9lbnVtLmNsYXNzJztcclxuaW1wb3J0IHtJbnB1dENsYXNzLCBPcHRpb25DbGFzc30gZnJvbSAnLi4vLi4vY2xhc3Nlcy9mb3JtLmNsYXNzJztcclxuaW1wb3J0ICogYXMgJCBmcm9tICdqcXVlcnknO1xyXG5pbXBvcnQge0NvbmZpcm1Db21wb25lbnR9IGZyb20gJy4uL2NvbmZpcm0vY29uZmlybS5jb21wb25lbnQnO1xyXG5pbXBvcnQge01vZGFsQ2xhc3N9IGZyb20gJy4uLy4uL2NsYXNzZXMvbW9kYWwuY2xhc3MnO1xyXG5pbXBvcnQgJ2pxdWVyeS11aS1kaXN0L2pxdWVyeS11aSc7XHJcbmltcG9ydCB7UmVxdWVzdENsYXNzfSBmcm9tICcuLi8uLi9jbGFzc2VzL3JlcXVlc3QuY2xhc3MnO1xyXG5pbXBvcnQge1Blcm1pc3Npb25DbGFzc30gZnJvbSAnLi4vLi4vY2xhc3Nlcy9wZXJtaXNzaW9uLmNsYXNzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLXRhYmxlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdGFibGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RhYmxlLmNvbXBvbmVudC5jc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGFibGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXR7XHJcbiAgQElucHV0KClcclxuICB0YWJsZTogVGFibGVDbGFzcztcclxuICBAT3V0cHV0KClcclxuICBjaGFuZ2VSb3dzID0gbmV3IEV2ZW50RW1pdHRlcjxvYmplY3Q+KCk7XHJcbiAgZ2V0IHR5cGUoKTogdHlwZW9mIElucHV0VHlwZXsgcmV0dXJuIElucHV0VHlwZTsgfVxyXG4gIGdldCB0YWJsZU9wdGlvblR5cGUoKTogdHlwZW9mIFRhYmxlT3B0aW9uVHlwZXsgcmV0dXJuIFRhYmxlT3B0aW9uVHlwZTsgfVxyXG4gIGdldCBjb2xUeXBlKCk6IHR5cGVvZiBUYWJsZUNvbGxUeXBleyByZXR1cm4gVGFibGVDb2xsVHlwZTsgfVxyXG4gIEBWaWV3Q2hpbGQoJ3Jvd3MnKSByb3dzOiBFbGVtZW50UmVmO1xyXG4gIEBWaWV3Q2hpbGQoJ3RhYmxlRGl2JykgdGFibGVEaXY6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZCgnZXhwb3J0RHJvcERvd24nKSBleHBvcnREcm9wRG93bjogRWxlbWVudFJlZjtcclxuICBAVmlld0NoaWxkKCdjb25maXJtJykgY29uZmlybTogQ29uZmlybUNvbXBvbmVudDtcclxuICBzZWxlY3Q6IElucHV0Q2xhc3MgPSBudWxsO1xyXG4gIHJlbG9hZDogSW5wdXRDbGFzcztcclxuICBtYXhpbXVtOiBJbnB1dENsYXNzO1xyXG4gIGV4cGVydFNlYXJjaDogSW5wdXRDbGFzcztcclxuICBleHBvcnQ6IElucHV0Q2xhc3MgPSBudWxsO1xyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyByb3V0ZXI6IFJvdXRlcikge1xyXG4gIH1cclxuICBvcHRpb25zOiBJbnB1dENsYXNzW107XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnJlbG9hZCA9IG5ldyBJbnB1dENsYXNzKHRoaXMudGFibGUuZW52aXJvbm1lbnQsIHRoaXMudGFibGUubCwgJ1JlbG9hZCcsICdmYWQgZmEtc3luYy1hbHQnLCBJbnB1dFR5cGUuSWNvbiwgJ20tci0xMC1wJyk7XHJcbiAgICB0aGlzLm1heGltdW0gPSBuZXcgSW5wdXRDbGFzcyh0aGlzLnRhYmxlLmVudmlyb25tZW50LCB0aGlzLnRhYmxlLmwsICdNYXhpbXVtJywgJ2ZhZCBmYS1hcnJvd3MtbWF4aW1pemUnLCBJbnB1dFR5cGUuSWNvbiwgJ20tci0xMC1wJyk7XHJcbiAgICB0aGlzLmV4cGVydFNlYXJjaCA9IG5ldyBJbnB1dENsYXNzKHRoaXMudGFibGUuZW52aXJvbm1lbnQsIHRoaXMudGFibGUubCwgJ0V4cGVydFNlYXJjaCcsICdmYWQgZmEtbWFnbmlmeWluZy1nbGFzcycsIElucHV0VHlwZS5JY29uLCAnbS1yLTEwLXAnKTtcclxuICAgIGZvciAoY29uc3QgYyBvZiB0aGlzLnRhYmxlLmNvbHMuZmlsdGVyKHggPT4geC53aXRoU2VhcmNoKSl7XHJcbiAgICAgIGMuc2VhcmNoID0gbmV3IElucHV0Q2xhc3ModGhpcy50YWJsZS5lbnZpcm9ubWVudCwgdGhpcy50YWJsZS5sLCBjLm5hbWUsIG51bGwsIElucHV0VHlwZS5UZXh0LCAnaC0yNSB0YWJsZS1zZWFyY2gnLCBjLnNlYXJjaERlZmF1bHQpO1xyXG4gICAgICBpZiAoYy50eXBlID09PSBUYWJsZUNvbGxUeXBlLkRhdGUgfHwgYy50eXBlID09PSBUYWJsZUNvbGxUeXBlLkRhdGVUaW1lIHx8IGMudHlwZSA9PT0gVGFibGVDb2xsVHlwZS5EYXRlRGlmIHx8IGMudHlwZSA9PT0gVGFibGVDb2xsVHlwZS5EYXRlUmVtYWluKXtcclxuICAgICAgICBjLnNlYXJjaC50eXBlID0gSW5wdXRUeXBlLkRhdGU7XHJcbiAgICAgIH0gZWxzZSBpZiAoYy50eXBlID09PSBUYWJsZUNvbGxUeXBlLk1vbnRoKXtcclxuICAgICAgICBjLnNlYXJjaC50eXBlID0gSW5wdXRUeXBlLk1vbnRoO1xyXG4gICAgICB9IGVsc2UgaWYgKGMudHlwZSA9PT0gVGFibGVDb2xsVHlwZS5ZZWFyKXtcclxuICAgICAgICBjLnNlYXJjaC50eXBlID0gSW5wdXRUeXBlLlllYXI7XHJcbiAgICAgIH0gZWxzZSBpZiAoYy50eXBlID09PSBUYWJsZUNvbGxUeXBlLlByaWNlKXtcclxuICAgICAgICBjLnNlYXJjaC50eXBlID0gSW5wdXRUeXBlLlByaWNlO1xyXG4gICAgICB9IGVsc2UgaWYgKGMuZW51bSAhPSBudWxsKXtcclxuICAgICAgICBjLnNlYXJjaC50eXBlID0gSW5wdXRUeXBlLlNlbGVjdDtcclxuICAgICAgICBjLnNlYXJjaC5vcHRpb25zID0gW25ldyBPcHRpb25DbGFzcygnJywgJy0xJyldLmNvbmNhdChFbnVtVXRpbHMuZ2V0S2V5c0FuZFZhbHVlcyhjLmVudW0pLm1hcCh4ID0+IG5ldyBPcHRpb25DbGFzcyh0aGlzLnRhYmxlLmwoeC5rZXkpLCB4LnZhbHVlLnRvU3RyaW5nKCkpKSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgYy5zZWFyY2gudHlwZSA9IElucHV0VHlwZS5UZXh0O1xyXG4gICAgICB9XHJcbiAgICAgIGMuc2VhcmNoLmRpc3BsYXlMYWJlbCA9IGZhbHNlO1xyXG4gICAgICBjLnNlYXJjaC5vbkNoYW5nZSA9ICgpID0+IHtcclxuICAgICAgICB0aGlzLnRhYmxlLnBhZ2UgPSAxO1xyXG4gICAgICAgIHRoaXMudGFibGUubG9hZCgpO1xyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMudGFibGUuc29ydGFibGUpe1xyXG4gICAgICB0aGlzLnRhYmxlLnBlclBhZ2UgPSAtMTtcclxuICAgICAgdGhpcy50YWJsZS5vbkxvYWQgPSAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZXRTb3J0YWJsZSgpO1xyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgdGhpcy50YWJsZS5zZXQodGhpcy5jaGFuZ2VSb3dzKTtcclxuICAgIGlmICh0aGlzLnRhYmxlLnNlYXJjaEZvcm0pe1xyXG4gICAgICB0aGlzLnRhYmxlLnNlYXJjaEZvcm0uZGlzcGxheUxhYmVsID0gdGhpcy50YWJsZS5leHBlcnRTZWFyY2g7XHJcbiAgICAgIHRoaXMudGFibGUuc2VhcmNoRm9ybS5jbGFzcyA9ICh0aGlzLnRhYmxlLnNlYXJjaEZvcm0uY2xhc3MgPyB0aGlzLnRhYmxlLnNlYXJjaEZvcm0uY2xhc3MgOiAnJykgKyAodGhpcy50YWJsZS5leHBlcnRTZWFyY2ggPyAnJyA6ICcgdy0xMDAwLTMwIHctNzAwLTQwIHctNTAwLTUwIHAtMCcpO1xyXG4gICAgICBpZiAodGhpcy50YWJsZS5leHBlcnRTZWFyY2gpe1xyXG4gICAgICAgIGNvbnN0IHMgPSBuZXcgSW5wdXRDbGFzcyh0aGlzLnRhYmxlLmVudmlyb25tZW50LCB0aGlzLnRhYmxlLmwsICdTZWFyY2gnLCAnZmFkIGZhLW1hZ25pZnlpbmctZ2xhc3MnLCBJbnB1dFR5cGUuU3VibWl0LCAnYmx1ZSBoLTMwJyk7XHJcbiAgICAgICAgcy5zdHlsZSA9IHt0b3A6ICcyMHB4JywgbGVmdDogJzVweCcsIHBvc2l0aW9uOiAnYWJzb2x1dGUnLCB3aWR0aDogJzUwJSd9O1xyXG4gICAgICAgIHRoaXMudGFibGUuc2VhcmNoRm9ybS5pbnB1dHMucHVzaChzKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnRhYmxlLnNlYXJjaEZvcm0uaW5wdXRzLmZvckVhY2goeCA9PiB7XHJcbiAgICAgICAgY29uc3QgaGFzU3VibWl0ID0gdGhpcy50YWJsZS5zZWFyY2hGb3JtLmlucHV0cy5zb21lKHMgPT4gcy50eXBlID09PSBJbnB1dFR5cGUuU3VibWl0KTtcclxuICAgICAgICB4LnJlcXVpcmVkID0gZmFsc2U7XHJcbiAgICAgICAgeC5kaXNwbGF5TGFiZWwgPSB0aGlzLnRhYmxlLmV4cGVydFNlYXJjaDtcclxuICAgICAgICB4LmNsYXNzID0geC5jbGFzcyArICcgc2VhcmNoLWZvcm0taW5wJztcclxuICAgICAgICB4LndpdGhDbGVhciA9ICFoYXNTdWJtaXQgfHwgdGhpcy50YWJsZS5leHBlcnRTZWFyY2g7XHJcbiAgICAgICAgaWYgKCFoYXNTdWJtaXQpe1xyXG4gICAgICAgICAgaWYgKHgub25DaGFuZ2UgPT0gbnVsbCl7XHJcbiAgICAgICAgICAgIHgub25DaGFuZ2UgPSAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgdGhpcy50YWJsZS5sb2FkKCk7XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh4LnR5cGUgPT09IElucHV0VHlwZS5TdWJtaXQpe1xyXG4gICAgICAgICAgeC5vbkNsaWNrID0gKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnRhYmxlLmxvYWQoeCk7XHJcbiAgICAgICAgICAgICQodGhpcy50YWJsZURpdi5uYXRpdmVFbGVtZW50KS5yZW1vdmVDbGFzcygnc2hvdy1leHBlcnQtc2VhcmNoJyk7XHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgICAgdGhpcy50YWJsZS5zZWFyY2hGb3JtLnN1Ym1pdCA9ICgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy50YWJsZS5sb2FkKHgpO1xyXG4gICAgICAgICAgICAkKHRoaXMudGFibGVEaXYubmF0aXZlRWxlbWVudCkucmVtb3ZlQ2xhc3MoJ3Nob3ctZXhwZXJ0LXNlYXJjaCcpO1xyXG4gICAgICAgICAgfTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgdGhpcy5vcHRpb25zID0gdGhpcy5nZXRPcHRpb25zKCk7XHJcbiAgICB0aGlzLnJlbG9hZC5vbkNsaWNrID0gKCkgPT4ge1xyXG4gICAgICB0aGlzLnRhYmxlLmxvYWQodGhpcy5yZWxvYWQpO1xyXG4gICAgfTtcclxuICAgIHRoaXMubWF4aW11bS5vbkNsaWNrID0gKCkgPT4ge1xyXG4gICAgICAkKHRoaXMudGFibGVEaXYubmF0aXZlRWxlbWVudCkudG9nZ2xlQ2xhc3MoJ21heGltdW0nKTtcclxuICAgICAgdGhpcy5tYXhpbXVtLmljb24gPSB0aGlzLm1heGltdW0ubmFtZSA9PT0gJ01pbmltdW0nID8gJ2ZhZCBmYS1hcnJvd3MtbWF4aW1pemUnIDogJ2ZhZCBmYS1hcnJvd3MtbWluaW1pemUnO1xyXG4gICAgICB0aGlzLm1heGltdW0ubmFtZSA9IHRoaXMubWF4aW11bS5uYW1lID09PSAnTWluaW11bScgPyAnTWF4aW11bScgOiAnTWluaW11bSc7XHJcbiAgICB9O1xyXG4gICAgdGhpcy5leHBlcnRTZWFyY2gub25DbGljayA9ICgpID0+IHtcclxuICAgICAgJCh0aGlzLnRhYmxlRGl2Lm5hdGl2ZUVsZW1lbnQpLmFkZENsYXNzKCdzaG93LWV4cGVydC1zZWFyY2gnKTtcclxuICAgIH07XHJcbiAgICB0aGlzLnRhYmxlLnNob3dDb25maXJtID0gKGw6IHN0cmluZywgdXJsOiBzdHJpbmcsIGRhdGEsIGFjY2VwdDogKHJlc3VsdDogYW55KSA9PiB2b2lkKSA9PiB7XHJcbiAgICAgIHRoaXMuY29uZmlybS5zaG93KGwsIHVybCwgZGF0YSwgYWNjZXB0KTtcclxuICAgIH07XHJcbiAgfVxyXG4gIGFsbFNlbGVjdGVkKCk6IGJvb2xlYW57XHJcbiAgICByZXR1cm4gdGhpcy50YWJsZS5yb3dzLmZpbHRlcih4ID0+ICF4LnNlbGVjdGVkKS5sZW5ndGggPT09IDA7XHJcbiAgfVxyXG4gIGlzU2VsZWN0ZWQoKTogYm9vbGVhbntcclxuICAgIHJldHVybiB0aGlzLnRhYmxlLnJvd3MuZmlsdGVyKHggPT4geC5zZWxlY3RlZCkubGVuZ3RoID4gMDtcclxuICB9XHJcbiAgc2VsZWN0QWxsKCk6IHZvaWR7XHJcbiAgICBpZiAodGhpcy50YWJsZS5yb3dzLmZpbHRlcih4ID0+ICF4LnNlbGVjdGVkKS5sZW5ndGggPT09IDApe1xyXG4gICAgICB0aGlzLnRhYmxlLnJvd3MuZm9yRWFjaCh4ID0+IHguc2VsZWN0ZWQgPSBmYWxzZSk7XHJcbiAgICB9ZWxzZXtcclxuICAgICAgdGhpcy50YWJsZS5yb3dzLmZvckVhY2goeCA9PiB4LnNlbGVjdGVkID0gdHJ1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGdldE9wdGlvbnMoKTogSW5wdXRDbGFzc1tde1xyXG4gICAgcmV0dXJuIFtdO1xyXG4gIH1cclxuICBzZXRTb3J0YWJsZSgpOiB2b2lke1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgJCh0aGlzLnJvd3MubmF0aXZlRWxlbWVudCkuc29ydGFibGUoe1xyXG4gICAgICAgIGF4aXM6ICd5JyxcclxuICAgICAgICBpdGVtczogJy5yb3cnLFxyXG4gICAgICAgIGhhbmRsZTogJz4gLmhhbmRsZS1jb24gPiAuaGFuZGxlLmhhbmRsZS1zb3J0YWJsZScsXHJcbiAgICAgICAgdXBkYXRlOiAoKSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBkYXRhID0gW107XHJcbiAgICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgICAkKHRoaXMucm93cy5uYXRpdmVFbGVtZW50KS5zb3J0YWJsZSgndG9BcnJheScsIHthdHRyaWJ1dGU6ICdkYXRhLWlkJ30pLmZvckVhY2goeCA9PiB7XHJcbiAgICAgICAgICAgIGRhdGEucHVzaChwYXJzZUludCh4LCAxMCkpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICBjb25zdCBwID0gbmV3IFBlcm1pc3Npb25DbGFzcygpO1xyXG4gICAgICAgICAgcC5BcmVhID0gdGhpcy50YWJsZS5wZXJtaXNzaW9ucy5BcmVhO1xyXG4gICAgICAgICAgcC5Db250cm9sbGVyID0gdGhpcy50YWJsZS5wZXJtaXNzaW9ucy5Db250cm9sbGVyO1xyXG4gICAgICAgICAgcC5SZWxhdGVkSWQgPSB0aGlzLnRhYmxlLnBlcm1pc3Npb25zLlJlbGF0ZWRJZDtcclxuICAgICAgICAgIHAuQWN0aW9uID0gdGhpcy50YWJsZS5wZXJtaXNzaW9ucy5BY3Rpb24gPyB0aGlzLnRhYmxlLnBlcm1pc3Npb25zLkFjdGlvbiArICctc29ydCcgOiAnc29ydCc7XHJcbiAgICAgICAgICBuZXcgUmVxdWVzdENsYXNzKHRoaXMudGFibGUuZW52aXJvbm1lbnQsIHRoaXMudGFibGUubCkuc2VuZChwLmdldFVybCgpLnRvTG93ZXJDYXNlKCksIE1ldGhvZC5Qb3N0LCB7SWRzOiBkYXRhfSwgbnVsbCwgKCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAodGhpcy50YWJsZS5vblNvcnQpe1xyXG4gICAgICAgICAgICAgIHRoaXMudGFibGUub25Tb3J0KCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0sICgpID0+IHt9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pLmRpc2FibGVTZWxlY3Rpb24oKTtcclxuICAgIH0sIDUwMCk7XHJcbiAgfVxyXG4gIGdldFJvd3MoKTogYW55W117XHJcbiAgICBjb25zdCBjID0gdGhpcy50YWJsZS5yb3dzLmZpbHRlcih4ID0+ICF4LkRhdGEuUGFyZW50SWQpO1xyXG4gICAgYy5mb3JFYWNoKCh4LCBpKSA9PiB4LlJvd051bSA9IGMubGVuZ3RoIC0gaSArIDEpO1xyXG4gICAgcmV0dXJuIGM7XHJcbiAgfVxyXG4gIC8vIGdldE9wdGlvbk1vZGFscygpOiBJbnB1dENsYXNzW117XHJcbiAgLy8gICBjb25zdCBtb2RhbHMgPSBbXTtcclxuICAvLyAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHRoaXMudGFibGUub3B0aW9uQWN0aW9ucykpIHtcclxuICAvLyAgICAgaWYgKHRoaXMudGFibGUub3B0aW9uQWN0aW9uc1trZXldLm1vZGFsKXtcclxuICAvLyAgICAgICBtb2RhbHMucHVzaCh0aGlzLnRhYmxlLm9wdGlvbkFjdGlvbnNba2V5XS5tb2RhbCk7XHJcbiAgLy8gICAgIH1cclxuICAvLyAgIH1cclxuICAvLyAgIHJldHVybiBtb2RhbHM7XHJcbiAgLy8gfVxyXG4gIG9uQ2hhbmdlUm93cyhlKTogdm9pZHtcclxuICAgIHJldHVybiB0aGlzLmNoYW5nZVJvd3MuZW1pdChlKTtcclxuICB9XHJcbiAgb25Db25maXJtU2hvdyhlKTogdm9pZHtcclxuICAgIHRoaXMuY29uZmlybS5zaG93KHRoaXMudGFibGUubChlLmFjdGlvbiArICdDb25maXJtJyksIGUudXJsLCBlLmRhdGEsIGUuYWNjZXB0KTtcclxuICB9XHJcbiAgY2hhbmdlU29ydChlLCBzOiBzdHJpbmcpOiB2b2lke1xyXG4gICAgaWYgKCQoZS50YXJnZXQpLmNsb3Nlc3QoJy5oZWFkZXItc2VhcmNoJykuaGFzQ2xhc3MoJ2hlYWRlci1zZWFyY2gnKSl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMudGFibGUuc29ydFR5cGUgPSB0aGlzLnRhYmxlLnNvcnQgPT09IHMgPyB0aGlzLnRhYmxlLnNvcnRUeXBlID09PSAnQVNDJyA/ICdERVNDJyA6IG51bGwgOiAnQVNDJztcclxuICAgIHRoaXMudGFibGUuc29ydCA9IHRoaXMudGFibGUuc29ydFR5cGUgPT0gbnVsbCA/IG51bGwgOiBzO1xyXG4gICAgdGhpcy50YWJsZS5sb2FkKCk7XHJcbiAgfVxyXG4gIGdldE1vZGFscygpOiBNb2RhbENsYXNzW117XHJcbiAgICByZXR1cm4gdGhpcy50YWJsZS5vcHRpb25zQWN0aW9ucy5maWx0ZXIoeCA9PiB4IGluc3RhbmNlb2YgTW9kYWxDbGFzcyk7XHJcbiAgfVxyXG4gIGhpZGVFeHBlcnRTZWFyY2goZSk6IHZvaWR7XHJcbiAgICBpZiAoJChlLnRhcmdldCkuaGFzQ2xhc3MoJ3NlYXJjaC1mb3JtJykpXHJcbiAgICB7XHJcbiAgICAgICQodGhpcy50YWJsZURpdi5uYXRpdmVFbGVtZW50KS5yZW1vdmVDbGFzcygnc2hvdy1leHBlcnQtc2VhcmNoJyk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -3085,10 +3085,10 @@ class TableComponent {
|
|
|
3085
3085
|
this.table.set(this.changeRows);
|
|
3086
3086
|
if (this.table.searchForm) {
|
|
3087
3087
|
this.table.searchForm.displayLabel = this.table.expertSearch;
|
|
3088
|
-
this.table.searchForm.class = (this.table.searchForm.class ? this.table.searchForm.class : '') + (this.table.expertSearch ? '' : ' p-0');
|
|
3088
|
+
this.table.searchForm.class = (this.table.searchForm.class ? this.table.searchForm.class : '') + (this.table.expertSearch ? '' : ' w-1000-30 w-700-40 w-500-50 p-0');
|
|
3089
3089
|
if (this.table.expertSearch) {
|
|
3090
|
-
const s = new InputClass(this.table.environment, this.table.l, 'Search', 'fad fa-magnifying-glass', InputType.Submit, 'blue');
|
|
3091
|
-
s.style = {
|
|
3090
|
+
const s = new InputClass(this.table.environment, this.table.l, 'Search', 'fad fa-magnifying-glass', InputType.Submit, 'blue h-30');
|
|
3091
|
+
s.style = { top: '20px', left: '5px', position: 'absolute', width: '50%' };
|
|
3092
3092
|
this.table.searchForm.inputs.push(s);
|
|
3093
3093
|
}
|
|
3094
3094
|
this.table.searchForm.inputs.forEach(x => {
|
|
@@ -3217,7 +3217,7 @@ TableComponent.decorators = [
|
|
|
3217
3217
|
{ type: Component, args: [{
|
|
3218
3218
|
selector: 'lib-table',
|
|
3219
3219
|
template: "<div [id]=\"table.id + 'Table'\" [style]=\"table.style\" #tableDiv [className]=\"(table.class ? table.class : '') + (table.sortable ? 'sortable' : '') + (table.hasChildren || table.subTable != null ? ' has-children' : '') + (table.vertical ? ' vertical' : '') + (table.expertSearch ? ' expert-search' : '') + ' table-con w-100'\">\r\n <div *ngIf=\"table.displayLabel\" class=\"title\">\r\n <div class=\"f-r\">{{this.table.title ? this.table.title : table.l('List')}}</div>\r\n <span class=\"description\" *ngIf=\"this.table.description != null\" [innerHTML]=\"'( ' + this.table.description + ' )'\"></span>\r\n <div class=\"extra-buttons\" *ngIf=\"table.showExtraButtons\">\r\n <span *ngIf=\"isSelected()\">\r\n <lib-form-icon *ngFor=\"let btn of table.extraButtons\" [inp]=\"btn\"></lib-form-icon>\r\n </span>\r\n <span *ngIf=\"!isSelected()\">\r\n <lib-form-icon *ngIf=\"table.expertSearch\" [inp]=\"expertSearch\"></lib-form-icon>\r\n <lib-form-icon [inp]=\"reload\"></lib-form-icon>\r\n <lib-form-icon [inp]=\"maximum\"></lib-form-icon>\r\n </span>\r\n </div>\r\n <div *ngIf=\"table.buttons.length > 0\" class=\"buttons\">\r\n <span *ngFor=\"let btn of table.buttons\">\r\n <lib-form-button [inp]=\"btn\" *ngIf=\"btn.type == type.Button\"></lib-form-button>\r\n <lib-form-icon [inp]=\"btn\" *ngIf=\"btn.type == type.Icon\"></lib-form-icon>\r\n <lib-form-label [inp]=\"btn\" *ngIf=\"btn.type == type.Label\"></lib-form-label>\r\n <lib-form-select [inp]=\"btn\" *ngIf=\"btn.type == type.Select\"></lib-form-select>\r\n </span>\r\n </div>\r\n </div>\r\n <div class=\"search-form\" *ngIf=\"table.searchForm\" (click)=\"table.expertSearch && hideExpertSearch($event)\">\r\n <lib-form [form]=\"table.searchForm\"></lib-form>\r\n </div>\r\n <lib-form *ngIf=\"table.form && table.form.onTop\" [form]=\"table.form\"></lib-form>\r\n <div class=\"table\">\r\n <div class=\"header\">\r\n <div [className]=\"(table.hasChildren || table.subTable != null ? 'with-handle-children ' : '') + (table.sortable ? 'with-handle-sortable ' : '') + (table.withSelect ? 'with-handle-select ' : '') + 'row'\">\r\n <div class=\"handle-con\">\r\n <div class=\"handle handle-sortable\" *ngIf=\"table.sortable\"></div>\r\n <div class=\"handle handle-select\" *ngIf=\"table.hasChildren || table.subTable != null\"></div>\r\n <div class=\"handle handle-children\" *ngIf=\"table.withSelect\">\r\n <i (click)=\"selectAll()\" [className]=\"(allSelected() ? 'fa-solid fa-square-check c-green' : isSelected() ? 'fa-solid fa-square-minus c-green' : 'fa-regular fa-square') + ' select-row'\" *ngIf=\"table.rows.length > 0\"></i>\r\n </div>\r\n </div>\r\n <div (click)=\"!table.sortable && col.sort && changeSort($event, col.name)\" [className]=\"(!table.sortable && col.sort ? 'sort ' : '') + col.class + ' ' + col.name + '-cell cell w-100'\" *ngFor=\"let col of table.cols\">\r\n <div class=\"header-title\" *ngIf=\"col.search == null || table.sortable\" [innerHTML]=\"table.l(col.name)\"></div>\r\n <div class=\"header-search\" *ngIf=\"!table.sortable && col.search != null\">\r\n <lib-form-textbox *ngIf=\"col.type != colType.Date && col.type != colType.DateTime && col.type != colType.DateDif && col.type != colType.DateRemain && col.type != colType.Month && col.type != colType.Year && col.enum == null\" [inp]=\"col.search\"></lib-form-textbox>\r\n <lib-form-date *ngIf=\"(col.type == colType.Date || col.type == colType.DateTime || col.type === colType.DateDif || col.type === colType.DateRemain || col.type == colType.Month || col.type == colType.Year) && col.enum == null\" [inp]=\"col.search\"></lib-form-date>\r\n <lib-form-select *ngIf=\"col.enum != null\" [inp]=\"col.search\"></lib-form-select>\r\n </div>\r\n <i *ngIf=\"!table.sortable && col.sort\" [className]=\"'sort-icon fas' + (table.sort === col.name ? (table.sortType === 'ASC' ? ' fa-sort-up' : ' fa-sort-down') : ' fa-sort')\"></i>\r\n </div>\r\n <div class=\"cell options\" *ngIf=\"table.optionType == tableOptionType.Show\">{{table.l('Options')}}</div>\r\n </div>\r\n </div>\r\n <div class=\"body\" #rows [style]=\"table.perPage > 0 ? {minHeight: table.height * table.perPage + 'px'} : {minHeight: '120px'}\">\r\n <lib-table-row (confirmShow)=\"onConfirmShow($event)\" [level]=\"1\" (changeRows)=\"onChangeRows($event)\" [id]=\"row.id ? row.id : ''\" [table]=\"table\" [row]=\"row\" *ngFor=\"let row of getRows()\"></lib-table-row>\r\n <lib-table-loading [table]=\"table\"></lib-table-loading>\r\n </div>\r\n </div>\r\n <lib-table-pagination [table]=\"table\" *ngIf=\"table.perPage > 0\"></lib-table-pagination>\r\n <lib-modal *ngIf=\"table.modal != null\" [modal]=\"table.modal\"></lib-modal>\r\n <lib-modal [modal]=\"opt\" *ngFor=\"let opt of getModals()\"></lib-modal>\r\n <lib-confirm #confirm [tableId]=\"table.name\"></lib-confirm>\r\n</div>\r\n",
|
|
3220
|
-
styles: [".table-con{background-color:#fff;border-radius:var(--border-radius-base);box-shadow:var(--box-shadow-table);float:right;overflow:hidden;padding:20px;position:relative}.table-con.maximum{border-radius:0;height:100%;overflow-y:auto;position:fixed;right:0;top:0;width:100%;z-index:102}.table-con>.title{float:right;font-size:16px;font-weight:700;line-height:40px;margin-bottom:10px;position:relative;text-align:right;width:100%}.table-con>.title .description{font-size:13px;font-weight:200;margin-right:10px}.table-con>.title .buttons,.table-con>.title .extra-buttons{float:left;margin-top:5px;position:relative;z-index:1}.table-con>.title .extra-buttons{min-width:80px}.table-con>.search-form{border-radius:var(--border-radius-base);float:right;margin-bottom:10px;width:100%}.table-con.expert-search>.search-form{background-color:rgba(51,51,51,.4);height:100%;left:0;margin-bottom:0;opacity:0;position:absolute;top:0;transition:all .35s ease-in-out;visibility:hidden;width:100%;z-index:3}.table-con.expert-search.show-expert-search>.search-form{opacity:1;visibility:visible}::ng-deep .table-con.expert-search>.search-form .form{background-color:var(--white);box-shadow:var(--box-shadow-
|
|
3220
|
+
styles: [".table-con{background-color:#fff;border-radius:var(--border-radius-base);box-shadow:var(--box-shadow-table);float:right;overflow:hidden;padding:20px;position:relative}.table-con.maximum{border-radius:0;height:100%;overflow-y:auto;position:fixed;right:0;top:0;width:100%;z-index:102}.table-con>.title{float:right;font-size:16px;font-weight:700;line-height:40px;margin-bottom:10px;position:relative;text-align:right;width:100%}.table-con>.title .description{font-size:13px;font-weight:200;margin-right:10px}.table-con>.title .buttons,.table-con>.title .extra-buttons{float:left;margin-top:5px;position:relative;z-index:1}.table-con>.title .extra-buttons{min-width:80px}.table-con>.search-form{border-radius:var(--border-radius-base);float:right;margin-bottom:10px;width:100%}.table-con.expert-search>.search-form{background-color:rgba(51,51,51,.4);height:100%;left:0;margin-bottom:0;opacity:0;position:absolute;top:0;transition:all .35s ease-in-out;visibility:hidden;width:100%;z-index:3}.table-con.expert-search.show-expert-search>.search-form{opacity:1;visibility:visible}::ng-deep .table-con.expert-search>.search-form .form{background-color:var(--white);box-shadow:var(--box-shadow-right);height:100%;left:calc(-20% - 20px);padding:20px;position:absolute;top:0;transition:all .35s ease-in-out;width:20%;z-index:4}::ng-deep .table-con.expert-search>.search-form .form .inputs{float:right;height:calc(100% - 50px);margin:0;overflow-y:auto;width:100%}::ng-deep .table-con.expert-search.show-expert-search>.search-form .form{left:0}.table-con .table,.table-con .table .header{float:right;width:100%}.table-con .table .header .row{-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;align-items:center;background-color:var(--base-white);border-radius:var(--border-radius-base);display:flex;flex-wrap:wrap;float:right;justify-content:right;position:relative;width:100%}.table-con .table .header .row.with-handle-children,.table-con .table .header .row.with-handle-select,.table-con .table .header .row.with-handle-sortable{padding-right:30px}.table-con .table .header .row.with-handle-children.with-handle-select,.table-con .table .header .row.with-handle-sortable.with-handle-children,.table-con .table .header .row.with-handle-sortable.with-handle-select{padding-right:60px}.table-con .table .header .row.with-handle-sortable.with-handle-children.with-handle-select{padding-right:90px}.table-con .table .header .row .cell{align-items:center;color:var(--black-light);display:flex;float:right;font-size:12px;font-weight:200;font-weight:400;height:45px;justify-content:center;position:relative}.table-con .table .header .row .cell.options{margin-left:auto;margin-right:auto}.table-con .table .header .row .handle-con{height:100%;position:absolute;right:0;top:0}.table-con .table .header .row .handle-con .handle{align-items:center;display:flex;float:right;height:100%;justify-content:center;width:30px}.table-con .table .header .row .handle-con .handle i{cursor:pointer;font-size:18px}.table-con .table .header .row .cell.sort{cursor:pointer}.table-con .table .header .row .cell .header-title{float:right;padding:0 15px;text-align:center;width:calc(100% - 20px)}.table-con .table .header .row .cell .header-search{float:right;width:calc(100% - 20px)}.table-con .table .header .row .cell .sort-icon{float:right;font-size:13px;height:20px;left:5px;line-height:20px;opacity:.6;top:calc(50% - 10px);width:20px}.table-con .table .body{float:right;position:relative;width:100%}::ng-deep .table-con .table .header .row .cell .select-row{cursor:pointer;font-size:18px;height:30px;line-height:30px}::ng-deep .table-con.vertical .table lib-table-row>.row-con>.row:after{background-image:linear-gradient(180deg,rgba(0,0,0,.05),rgba(50,50,50,.15),rgba(0,0,0,.05));height:100%;left:0;right:unset;width:1px}::ng-deep .table-con.vertical:not(.sortable) .table lib-table-row:first-of-type>.row-con>.row:after,::ng-deep .table-con:not(.sortable) .table lib-table-row:last-of-type>.row-con>.row:after{background-image:unset}.table-con.vertical .table .header{display:none}::ng-deep .table-con .table lib-table-row{display:contents}.table-con.vertical .table .body{display:flex}::ng-deep .table-con.vertical .table lib-table-row:first-of-type>.row-con{background-color:var(--base-white);border-radius:var(--border-radius-base);max-width:150px}@media (max-width:499.99px){::ng-deep .table-con.expert-search>.search-form .form{left:calc(-100% - 20px);width:100%}}@media (min-width:500px) and (max-width:699.99px){::ng-deep .table-con.expert-search>.search-form .form{left:calc(-50% - 20px);width:50%}}@media (min-width:700px) and (max-width:999.99px){::ng-deep .table-con.expert-search>.search-form .form{left:calc(-40% - 20px);width:40%}}@media (min-width:1000px) and (max-width:1599.99px){::ng-deep .table-con.expert-search>.search-form .form{left:calc(-30% - 20px);width:30%}}"]
|
|
3221
3221
|
},] }
|
|
3222
3222
|
];
|
|
3223
3223
|
TableComponent.ctorParameters = () => [
|