@trudb/tru-common-lib 0.1.228 → 0.1.231
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/esm2022/lib/components/card-column/classes/tru-card-column-config.mjs +2 -0
- package/esm2022/lib/components/card-column/classes/tru-card-column-data.mjs +3 -0
- package/esm2022/lib/components/card-column/tru-card-column.mjs +16 -17
- package/esm2022/lib/services/tru-report-manager.mjs +10 -7
- package/fesm2022/trudb-tru-common-lib.mjs +22 -20
- package/fesm2022/trudb-tru-common-lib.mjs.map +1 -1
- package/lib/components/card-column/classes/tru-card-column-config.d.ts +28 -0
- package/lib/components/card-column/classes/tru-card-column-data.d.ts +4 -0
- package/lib/components/card-column/tru-card-column.d.ts +3 -2
- package/lib/services/tru-report-manager.d.ts +4 -2
- package/package.json +1 -1
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LWNhcmQtY29sdW1uLWNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RydS1jb21tb24tbGliL3NyYy9saWIvY29tcG9uZW50cy9jYXJkLWNvbHVtbi9jbGFzc2VzL3RydS1jYXJkLWNvbHVtbi1jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBUcnVUYWJsZUNvbmZpZ0Jhc2UgfSBmcm9tIFwiLi4vLi4vLi4vYmFzZS1jbGFzc2VzL3RydS10YWJsZS1jb25maWctYmFzZVwiO1xyXG5pbXBvcnQgeyBUcnVSZXBvcnRDb25maWcgfSBmcm9tIFwiLi4vLi4vLi4vY2xhc3Nlcy90cnUtcmVwb3J0LWNvbmZpZ1wiO1xyXG5pbXBvcnQgeyBUcnVFbnRpdHlCYXNlIH0gZnJvbSBcIi4uLy4uLy4uL2Jhc2UtY2xhc3Nlcy90cnUtZW50aXR5LWJhc2VcIjtcclxuaW1wb3J0IHsgVHJ1Q2FyZENvbHVtbkRhdGEgfSBmcm9tIFwiLi90cnUtY2FyZC1jb2x1bW4tZGF0YVwiO1xyXG5pbXBvcnQgeyBFbnRpdHlRdWVyeSB9IGZyb20gXCJicmVlemUtY2xpZW50XCI7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElUcnVDYXJkQ29sdW1uQ29uZmlnIHtcclxuICBwYXJlbnRUYWJsZU5hbWU6IHN0cmluZztcclxuICBrZXk6IHN0cmluZztcclxuICBwYXJlbnRRdWVyeTogYW55O1xyXG4gIGxvY2tQcm9wZXJ0eTogc3RyaW5nO1xyXG4gIGVudGl0eVBsdXJhbE5hbWU6IHN0cmluZztcclxuICBlbnRpdHlOYW1lOiBzdHJpbmc7XHJcbiAgY29sdW1uU29ydDogYW55O1xyXG4gIFxyXG4gIGNvbG9yOiBzdHJpbmc7XHJcblxyXG4gIHVuYXNzaWduZWRWaXNpYmxlOiBhbnk7XHJcbiAgdW5hc3NpZ25lZE5hbWU6IHN0cmluZztcclxuICB1bmFzc2lnbmVkTG9ja2VkOiBhbnk7XHJcbiAgdW5hc3NpZ25lZENvbG9yOiBzdHJpbmc7XHJcbiAgdW5hc3NpZ25lZERyYWdnYWJsZTogYm9vbGVhbjtcclxuICB1bmFzc2lnbmVkRHJvcHBhYmxlOiBib29sZWFuO1xyXG5cclxuICBpbmFjdGl2ZVZpc2libGU6IGJvb2xlYW47XHJcbiAgaW5hY3RpdmVEcmFnZ2FibGU6IGJvb2xlYW47XHJcbiAgaW5hY3RpdmVEcm9wcGFibGU6IGJvb2xlYW47XHJcblxyXG4gIHJlc3VsdENvbmZpZzogYW55O1xyXG4gIHJlcG9ydENvbmZpZzogVHJ1UmVwb3J0Q29uZmlnO1xyXG5cclxuICBjYXJkU29ydDogKGNhcmRzOiBBcnJheTxhbnk+KSA9PiBhbnk7XHJcbiAgZGF0YTogKGVudGl0eTogVHJ1RW50aXR5QmFzZSkgPT4gVHJ1Q2FyZENvbHVtbkRhdGE7XHJcbiAgcXVlcnk6IChicmVlemVRdWVyeTogRW50aXR5UXVlcnksIHByb3BlcnR5TmFtZTogc3RyaW5nKSA9PiBhbnk7XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export class TruCardColumnData {
|
|
2
|
+
}
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LWNhcmQtY29sdW1uLWRhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cnUtY29tbW9uLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvY2FyZC1jb2x1bW4vY2xhc3Nlcy90cnUtY2FyZC1jb2x1bW4tZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFLQSxNQUFNLE9BQWdCLGlCQUFpQjtDQUV0QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBUcnVUYWJsZUNvbmZpZ0Jhc2UgfSBmcm9tIFwiLi4vLi4vLi4vYmFzZS1jbGFzc2VzL3RydS10YWJsZS1jb25maWctYmFzZVwiO1xyXG5pbXBvcnQgeyBUcnVSZXBvcnRDb25maWcgfSBmcm9tIFwiLi4vLi4vLi4vY2xhc3Nlcy90cnUtcmVwb3J0LWNvbmZpZ1wiO1xyXG5pbXBvcnQgeyBUcnVFbnRpdHlCYXNlIH0gZnJvbSBcIi4uLy4uLy4uL2Jhc2UtY2xhc3Nlcy90cnUtZW50aXR5LWJhc2VcIjtcclxuXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBUcnVDYXJkQ29sdW1uRGF0YSB7XHJcbiAgYWJzdHJhY3QgJGVudGl0eTogVHJ1RW50aXR5QmFzZTtcclxufVxyXG4iXX0=
|
|
@@ -5,7 +5,6 @@ import { v4 as uuidv4 } from 'uuid';
|
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
import * as i1 from "../../services/tru-data-context";
|
|
7
7
|
import * as i2 from "../../services/tru-model-type-lookup";
|
|
8
|
-
import * as i3 from "@angular/common";
|
|
9
8
|
export class TruCardColumn {
|
|
10
9
|
dataContext;
|
|
11
10
|
modelTypeLookup;
|
|
@@ -18,7 +17,6 @@ export class TruCardColumn {
|
|
|
18
17
|
entityPluralName = this.config.entityPluralName;
|
|
19
18
|
entityName = this.config.entityName;
|
|
20
19
|
columnSort = this.config.columnSort;
|
|
21
|
-
cardSort = this.config.cardSort;
|
|
22
20
|
color = this.config.color;
|
|
23
21
|
unassignedVisible = this.config.unassignedVisible;
|
|
24
22
|
unassignedName = this.config.unassignedName;
|
|
@@ -36,6 +34,7 @@ export class TruCardColumn {
|
|
|
36
34
|
columnFilterRefs = [];
|
|
37
35
|
cardFilterStr;
|
|
38
36
|
uniqueId;
|
|
37
|
+
busyMessage = 'Rendering...';
|
|
39
38
|
columns;
|
|
40
39
|
lockedColumns;
|
|
41
40
|
constructor(dataContext, modelTypeLookup) {
|
|
@@ -56,7 +55,7 @@ export class TruCardColumn {
|
|
|
56
55
|
parentTableModel = null; //dataService.model.tables[parentTableName];
|
|
57
56
|
userHasParentTableRole = null; //parentTableModel.canDisplay;
|
|
58
57
|
createDataForEntity = (entity) => {
|
|
59
|
-
var data = this.config.
|
|
58
|
+
var data = this.config.data(entity);
|
|
60
59
|
data.$entity = entity;
|
|
61
60
|
return data;
|
|
62
61
|
};
|
|
@@ -92,8 +91,8 @@ export class TruCardColumn {
|
|
|
92
91
|
this.selectedCards.pop();
|
|
93
92
|
}
|
|
94
93
|
;
|
|
95
|
-
this.config.onSelectionChanged([]);
|
|
96
|
-
this.config.clearFilters();
|
|
94
|
+
//this.config.onSelectionChanged([]);
|
|
95
|
+
//this.config.clearFilters();
|
|
97
96
|
};
|
|
98
97
|
getValueFromSortPath = (args) => {
|
|
99
98
|
let current = args[0];
|
|
@@ -119,7 +118,7 @@ export class TruCardColumn {
|
|
|
119
118
|
if (!revert)
|
|
120
119
|
localStorage.setItem('scroll_position' + uuidv4(), '0');
|
|
121
120
|
if (newEntities.length)
|
|
122
|
-
this.
|
|
121
|
+
this.busyMessage = 'Rendering...';
|
|
123
122
|
this.columnFilterRefs = [];
|
|
124
123
|
this.cardFilterStr = null;
|
|
125
124
|
if (!newEntities.length) {
|
|
@@ -132,14 +131,14 @@ export class TruCardColumn {
|
|
|
132
131
|
let columns = [];
|
|
133
132
|
let query = new breeze.EntityQuery('Query' + this.parentTableName);
|
|
134
133
|
var relatedChildProperty = 'o' + this.relatedChildName;
|
|
135
|
-
if (this.config.
|
|
136
|
-
query = this.config.
|
|
134
|
+
if (this.config.query)
|
|
135
|
+
query = this.config.query(query, relatedChildProperty);
|
|
137
136
|
else
|
|
138
137
|
query = query.expand('o' + this.relatedChildName);
|
|
139
138
|
//if (this.parentQuery)
|
|
140
139
|
// query = queries[this.parentQuery](query);
|
|
141
140
|
this.dataContext.entityAccess().customSearch(this.modelTypeLookup.getType(this.parentTableName), query).subscribe((parents) => {
|
|
142
|
-
this.config.addParentsToFilter(parents);
|
|
141
|
+
//this.config.addParentsToFilter(parents);
|
|
143
142
|
emptyParents = _.filter(parents, (parent) => {
|
|
144
143
|
if (this.hasUndefinedChildren(parent) || this.hasEmptyChildren(parent) || this.hasInactiveChildren(parent)) {
|
|
145
144
|
if (!this.hasAddedUnsavedChildren(newEntities, parent.Ref)) {
|
|
@@ -232,18 +231,18 @@ export class TruCardColumn {
|
|
|
232
231
|
return null;
|
|
233
232
|
});
|
|
234
233
|
}
|
|
235
|
-
if (this.cardSort) {
|
|
234
|
+
if (typeof this.config.cardSort === 'function') {
|
|
236
235
|
lockedColumns.forEach((column) => {
|
|
237
|
-
column.cards = this.cardSort(column.cards);
|
|
236
|
+
column.cards = this.config.cardSort(column.cards);
|
|
238
237
|
});
|
|
239
238
|
columns.forEach((column) => {
|
|
240
|
-
column.cards = this.cardSort(column.cards);
|
|
239
|
+
column.cards = this.config.cardSort(column.cards);
|
|
241
240
|
});
|
|
242
241
|
inactiveWithParent.forEach((column) => {
|
|
243
|
-
column.cards = this.cardSort(column.cards);
|
|
242
|
+
column.cards = this.config.cardSort(column.cards);
|
|
244
243
|
});
|
|
245
244
|
activeWithoutParent.forEach((column) => {
|
|
246
|
-
column.cards = this.cardSort(column.cards);
|
|
245
|
+
column.cards = this.config.cardSort(column.cards);
|
|
247
246
|
});
|
|
248
247
|
}
|
|
249
248
|
if (this.inactiveVisible)
|
|
@@ -271,15 +270,15 @@ export class TruCardColumn {
|
|
|
271
270
|
}
|
|
272
271
|
}
|
|
273
272
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: TruCardColumn, deps: [{ token: i1.TruDataContext }, { token: i2.TruModelTypeLookup }], target: i0.ɵɵFactoryTarget.Component });
|
|
274
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.5", type: TruCardColumn, selector: "tru-card-column", inputs: { config: "config" }, viewQueries: [{ propertyName: "portal", first: true, predicate: [".tru-card-portal"], descendants: true }], ngImport: i0, template: "
|
|
273
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.5", type: TruCardColumn, selector: "tru-card-column", inputs: { config: "config" }, viewQueries: [{ propertyName: "portal", first: true, predicate: [".tru-card-portal"], descendants: true }], ngImport: i0, template: "<!--<div class=\"tru-card\">\r\n <div *ngIf=\"config.isBusy\"\r\n class=\"tru-card-busy-indicator\">\r\n <p>Searching for {{config.entityPluralLabel}}...</p>\r\n </div>\r\n <div *ngIf=\"config.busyMessage\"\r\n class=\"tru-card-busy-indicator\">\r\n <p>{{config.busyMessage}}</p>\r\n </div>-->\r\n <!--<tru-toolbar [config]=\"config.toolbarConfig\" class=\"main-toolbar\"></tru-toolbar>-->\r\n <!--<div class=\"tru-card-portal\">\r\n <div [ngStyle]=\"{'width': ((config.width * lockedColumns.length) + (10 * lockedColumns.length - 1)) + 'px' }\"\r\n [ngClass]=\"{'tru-card-portal-locked-columns-divider': lockedColumns.length}\"\r\n *ngIf=\"lockedColumns.length\"\r\n class=\"tru-card-portal-locked-columns locked-columns\">\r\n\r\n </div>\r\n <div [ngStyle]=\"{'left': lockedColumns.length ? ((config.width * lockedColumns.length) + (10 * lockedColumns.length - 1) + 22) + 'px' : 0 }\"\r\n class=\"tru-card-portal-columns unlocked-columns\">\r\n\r\n </div>\r\n </div>\r\n</div>-->\r\n", styles: [".tru-card-busy-indicator{position:absolute;inset:25px 0 0;z-index:10000;background-color:transparent}.tru-card-busy-indicator p{position:relative;float:left;top:50%;left:50%;transform:translate(-50%,-50%);color:#fff}.tru-card-filter{position:absolute;top:0;left:0;right:0;height:30px;line-height:30px;padding-left:10px}.tru-card-portal{position:absolute;inset:30px 10px 0;border:1px solid #ddd;padding:10px;background-color:#0079bf}.tru-card-portal-disabled>*{opacity:.75;pointer-events:none}.tru-card-portal-locked-columns{position:absolute;top:10px;left:0;bottom:0;padding:0 5px 10px 10px;display:flex;flex-direction:column;flex-wrap:wrap;align-content:flex-start}.tru-card-portal-locked-columns .tru-card-portal-column{margin-left:0;margin-bottom:0}.tru-card-portal-locked-columns .tru-card-portal-column:not(:first-child){margin-left:10px!important}.tru-card-portal-locked-columns-divider{border-right:1px solid #cdd2d4}.tru-card-portal-columns{position:absolute;inset:10px 10px 10px 222px;padding-top:0;display:flex;flex-direction:column;flex-wrap:wrap;align-content:flex-start;overflow-x:auto;overflow-y:hidden}.tru-card-portal-column{position:relative;border:1px solid #ddd;border-radius:4px;background:#e2e4e6;vertical-align:top;max-height:calc(100% + 8px);margin-left:10px;margin-bottom:10px;display:flex;flex-direction:column}.tru-card-portal-column-inactive *{font-style:italic;opacity:.7}.tru-card-portal-column-header{flex:0 0 auto;padding:5px;position:relative;min-height:18px}.tru-card-portal-column-header-extras{position:absolute;right:5px;top:4px}.tru-card-portal-column-header-extra-button{border-radius:3px;background:transparent}.tru-card-portal-column-header-extra-button:hover{border-radius:3px;background:#cdd2d4}.tru-card-portal-column-footer{flex:0 0 auto;padding:0 3px 3px;position:relative;height:25px;line-height:25px;display:none}.tru-card-portal-column-footer-text{font-size:14px;color:#777;padding-left:5px;text-decoration:none}.tru-card-portal-column-footer-text:hover{text-decoration:underline;color:#777}.tru-card-portal-column-footer-text:active,.tru-card-portal-column-footer-text:visited{color:#777}.tru-card-icon-small{color:#999;height:18px;font-size:14px;line-height:18px;width:19px;-webkit-font-smoothing:antialiased;display:inline-block!important;font-style:normal;font-weight:400;text-align:center;text-decoration:none;position:relative}.tru-card-portal-column-headertext{font-weight:700;font-size:16px;color:#333;padding-left:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-right:20px}.tru-card-portal-column-headertext-hover:hover{text-decoration:underline}.tru-card-portal-card-scroll-port{overflow-y:auto;overflow-x:hidden}.tru-card-portal-card-container{margin:0 3px;padding:0 2px;height:37px;transition:all .4s ease-out;opacity:1}.tru-card-portal-card-container.show{opacity:1}.tru-card-portal-card-container *{pointer-events:none}.tru-card-portal-card{background-color:#fff;border:1px solid #fff;border-radius:3px;padding:2px 6px 2px 8px;position:relative;cursor:pointer;display:block;min-height:15px;text-decoration:none;z-index:0;outline:none;box-shadow:0 .5px #ccc}.tru-card-portal-card:hover{background-color:#efefef;border:1px solid #efefef}.tru-card-portal-card p{word-wrap:break-word}.tru-card-portal-card:focus{outline:none}.tru-card-portal-card.empty{border:1px dashed #999}.tru-card-placeholder{position:absolute;left:0;right:0;margin:0;z-index:100;border-color:#0079bf;border-top-style:dashed;border-bottom-style:dashed}.tru-card-selected{border-color:#52a8eccc!important;background-color:#52a8eccc!important}.tru-card-selected p{color:#000!important}.tru-card-menu{position:absolute;top:20px;right:0;background:#fff;border:1px #ccc solid;border-radius:3px;z-index:1;padding:7px;width:200px}.tru-card-menu hr{height:1px;border:1px #ccc solid;border-bottom:0;border-left:0;border-right:0;width:100%;margin:0;padding:0}.tru-card-menu a{color:#777;text-decoration:none;float:left;line-height:16px;margin-top:2px;margin-bottom:2px}.tru-card-menu span{color:#777;float:left;line-height:16px;margin-top:3px}.tru-card-menu a:hover{text-decoration:underline;color:#777}.tru-card-menu a:active,.tru-card-menu a:visited{color:#777}.tru-card-menu-move-container{width:100%!important;display:inline-flex}.tru-card-menu-move-container select{width:100%!important}.tru-card-menu-move-container a{margin-top:1px;margin-left:3px;display:block}.tru-card-menu-move-container span{color:#0079bf;margin-top:0}.tru-card-menu-move-container .move-button-disabled{pointer-events:none;opacity:.75}.tru-card-menu-move-container .move-button-disabled span{color:#ccc}.tru-card-portal-column-filtered,.tru-card-portal-card-filtered{display:none}\n"] });
|
|
275
274
|
}
|
|
276
275
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: TruCardColumn, decorators: [{
|
|
277
276
|
type: Component,
|
|
278
|
-
args: [{ selector: 'tru-card-column', template: "
|
|
277
|
+
args: [{ selector: 'tru-card-column', template: "<!--<div class=\"tru-card\">\r\n <div *ngIf=\"config.isBusy\"\r\n class=\"tru-card-busy-indicator\">\r\n <p>Searching for {{config.entityPluralLabel}}...</p>\r\n </div>\r\n <div *ngIf=\"config.busyMessage\"\r\n class=\"tru-card-busy-indicator\">\r\n <p>{{config.busyMessage}}</p>\r\n </div>-->\r\n <!--<tru-toolbar [config]=\"config.toolbarConfig\" class=\"main-toolbar\"></tru-toolbar>-->\r\n <!--<div class=\"tru-card-portal\">\r\n <div [ngStyle]=\"{'width': ((config.width * lockedColumns.length) + (10 * lockedColumns.length - 1)) + 'px' }\"\r\n [ngClass]=\"{'tru-card-portal-locked-columns-divider': lockedColumns.length}\"\r\n *ngIf=\"lockedColumns.length\"\r\n class=\"tru-card-portal-locked-columns locked-columns\">\r\n\r\n </div>\r\n <div [ngStyle]=\"{'left': lockedColumns.length ? ((config.width * lockedColumns.length) + (10 * lockedColumns.length - 1) + 22) + 'px' : 0 }\"\r\n class=\"tru-card-portal-columns unlocked-columns\">\r\n\r\n </div>\r\n </div>\r\n</div>-->\r\n", styles: [".tru-card-busy-indicator{position:absolute;inset:25px 0 0;z-index:10000;background-color:transparent}.tru-card-busy-indicator p{position:relative;float:left;top:50%;left:50%;transform:translate(-50%,-50%);color:#fff}.tru-card-filter{position:absolute;top:0;left:0;right:0;height:30px;line-height:30px;padding-left:10px}.tru-card-portal{position:absolute;inset:30px 10px 0;border:1px solid #ddd;padding:10px;background-color:#0079bf}.tru-card-portal-disabled>*{opacity:.75;pointer-events:none}.tru-card-portal-locked-columns{position:absolute;top:10px;left:0;bottom:0;padding:0 5px 10px 10px;display:flex;flex-direction:column;flex-wrap:wrap;align-content:flex-start}.tru-card-portal-locked-columns .tru-card-portal-column{margin-left:0;margin-bottom:0}.tru-card-portal-locked-columns .tru-card-portal-column:not(:first-child){margin-left:10px!important}.tru-card-portal-locked-columns-divider{border-right:1px solid #cdd2d4}.tru-card-portal-columns{position:absolute;inset:10px 10px 10px 222px;padding-top:0;display:flex;flex-direction:column;flex-wrap:wrap;align-content:flex-start;overflow-x:auto;overflow-y:hidden}.tru-card-portal-column{position:relative;border:1px solid #ddd;border-radius:4px;background:#e2e4e6;vertical-align:top;max-height:calc(100% + 8px);margin-left:10px;margin-bottom:10px;display:flex;flex-direction:column}.tru-card-portal-column-inactive *{font-style:italic;opacity:.7}.tru-card-portal-column-header{flex:0 0 auto;padding:5px;position:relative;min-height:18px}.tru-card-portal-column-header-extras{position:absolute;right:5px;top:4px}.tru-card-portal-column-header-extra-button{border-radius:3px;background:transparent}.tru-card-portal-column-header-extra-button:hover{border-radius:3px;background:#cdd2d4}.tru-card-portal-column-footer{flex:0 0 auto;padding:0 3px 3px;position:relative;height:25px;line-height:25px;display:none}.tru-card-portal-column-footer-text{font-size:14px;color:#777;padding-left:5px;text-decoration:none}.tru-card-portal-column-footer-text:hover{text-decoration:underline;color:#777}.tru-card-portal-column-footer-text:active,.tru-card-portal-column-footer-text:visited{color:#777}.tru-card-icon-small{color:#999;height:18px;font-size:14px;line-height:18px;width:19px;-webkit-font-smoothing:antialiased;display:inline-block!important;font-style:normal;font-weight:400;text-align:center;text-decoration:none;position:relative}.tru-card-portal-column-headertext{font-weight:700;font-size:16px;color:#333;padding-left:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-right:20px}.tru-card-portal-column-headertext-hover:hover{text-decoration:underline}.tru-card-portal-card-scroll-port{overflow-y:auto;overflow-x:hidden}.tru-card-portal-card-container{margin:0 3px;padding:0 2px;height:37px;transition:all .4s ease-out;opacity:1}.tru-card-portal-card-container.show{opacity:1}.tru-card-portal-card-container *{pointer-events:none}.tru-card-portal-card{background-color:#fff;border:1px solid #fff;border-radius:3px;padding:2px 6px 2px 8px;position:relative;cursor:pointer;display:block;min-height:15px;text-decoration:none;z-index:0;outline:none;box-shadow:0 .5px #ccc}.tru-card-portal-card:hover{background-color:#efefef;border:1px solid #efefef}.tru-card-portal-card p{word-wrap:break-word}.tru-card-portal-card:focus{outline:none}.tru-card-portal-card.empty{border:1px dashed #999}.tru-card-placeholder{position:absolute;left:0;right:0;margin:0;z-index:100;border-color:#0079bf;border-top-style:dashed;border-bottom-style:dashed}.tru-card-selected{border-color:#52a8eccc!important;background-color:#52a8eccc!important}.tru-card-selected p{color:#000!important}.tru-card-menu{position:absolute;top:20px;right:0;background:#fff;border:1px #ccc solid;border-radius:3px;z-index:1;padding:7px;width:200px}.tru-card-menu hr{height:1px;border:1px #ccc solid;border-bottom:0;border-left:0;border-right:0;width:100%;margin:0;padding:0}.tru-card-menu a{color:#777;text-decoration:none;float:left;line-height:16px;margin-top:2px;margin-bottom:2px}.tru-card-menu span{color:#777;float:left;line-height:16px;margin-top:3px}.tru-card-menu a:hover{text-decoration:underline;color:#777}.tru-card-menu a:active,.tru-card-menu a:visited{color:#777}.tru-card-menu-move-container{width:100%!important;display:inline-flex}.tru-card-menu-move-container select{width:100%!important}.tru-card-menu-move-container a{margin-top:1px;margin-left:3px;display:block}.tru-card-menu-move-container span{color:#0079bf;margin-top:0}.tru-card-menu-move-container .move-button-disabled{pointer-events:none;opacity:.75}.tru-card-menu-move-container .move-button-disabled span{color:#ccc}.tru-card-portal-column-filtered,.tru-card-portal-card-filtered{display:none}\n"] }]
|
|
279
278
|
}], ctorParameters: () => [{ type: i1.TruDataContext }, { type: i2.TruModelTypeLookup }], propDecorators: { config: [{
|
|
280
279
|
type: Input
|
|
281
280
|
}], portal: [{
|
|
282
281
|
type: ViewChild,
|
|
283
282
|
args: ['.tru-card-portal', { static: false }]
|
|
284
283
|
}] } });
|
|
285
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LWNhcmQtY29sdW1uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJ1LWNvbW1vbi1saWIvc3JjL2xpYi9jb21wb25lbnRzL2NhcmQtY29sdW1uL3RydS1jYXJkLWNvbHVtbi50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RydS1jb21tb24tbGliL3NyYy9saWIvY29tcG9uZW50cy9jYXJkLWNvbHVtbi90cnUtY2FyZC1jb2x1bW4uaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUQsT0FBTyxLQUFLLENBQUMsTUFBTSxZQUFZLENBQUM7QUFDaEMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUUsRUFBRSxJQUFJLE1BQU0sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7QUFVcEMsTUFBTSxPQUFPLGFBQWE7SUFzQ2Q7SUFDQTtJQXRDRCxNQUFNLENBQU07SUFFNkIsTUFBTSxDQUFrQjtJQUVsRSxlQUFlLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUM7SUFDOUMsR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDO0lBQ3RCLFdBQVcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQztJQUN0QyxZQUFZLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUM7SUFDeEMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQztJQUNoRCxVQUFVLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUM7SUFDcEMsVUFBVSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDO0lBQ3BDLFFBQVEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQztJQUNoQyxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7SUFFMUIsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQztJQUNsRCxjQUFjLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUM7SUFDNUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQztJQUNoRCxlQUFlLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUM7SUFDOUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQztJQUN0RCxtQkFBbUIsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDO0lBRXRELGVBQWUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQztJQUM5QyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDO0lBQ2xELGlCQUFpQixHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUM7SUFFbEQsaUJBQWlCLENBQUM7SUFDbEIsZ0JBQWdCLENBQUM7SUFDakIsWUFBWSxDQUFNO0lBQ2xCLGFBQWEsR0FBRyxFQUFFLENBQUM7SUFDbkIsZ0JBQWdCLEdBQUcsRUFBRSxDQUFDO0lBQ3RCLGFBQWEsQ0FBTTtJQUNuQixRQUFRLENBQUM7SUFFakIsT0FBTyxDQUFNO0lBQ2IsYUFBYSxDQUFNO0lBRW5CLFlBQ1UsV0FBMkIsRUFDM0IsZUFBbUM7UUFEbkMsZ0JBQVcsR0FBWCxXQUFXLENBQWdCO1FBQzNCLG9CQUFlLEdBQWYsZUFBZSxDQUFvQjtRQUUzQyxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDdkQsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDM0MsSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUNYLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxNQUFNLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQztZQUN2RCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsTUFBTSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztRQUN6RCxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDO1lBQzlDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7UUFDaEQsQ0FBQztRQUVELElBQUksQ0FBQyxRQUFRLEdBQUcsTUFBTSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVPLGdCQUFnQixHQUFHLElBQUksQ0FBQyxDQUFBLDRDQUE0QztJQUNwRSxzQkFBc0IsR0FBRyxJQUFJLENBQUMsQ0FBQyw4QkFBOEI7SUFFN0QsbUJBQW1CLEdBQUcsQ0FBQyxNQUFxQixFQUFFLEVBQUU7UUFDdEQsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDMUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7UUFDdEIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDLENBQUM7SUFFTSxvQkFBb0IsR0FBRyxDQUFDLE1BQXFCLEVBQUUsRUFBRTtRQUV2RCxNQUFNLGtCQUFrQixHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsZ0JBQW1DLENBQUM7UUFDMUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQ3JDLENBQUMsQ0FBQTtJQUVPLGdCQUFnQixHQUFHLENBQUMsTUFBcUIsRUFBRSxFQUFFO1FBRW5ELE1BQU0sa0JBQWtCLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxnQkFBbUMsQ0FBQztRQUMxRSxPQUFPLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUMsTUFBTSxDQUFDO0lBQzVDLENBQUMsQ0FBQTtJQUVPLG1CQUFtQixHQUFHLENBQUMsTUFBcUIsRUFBRSxFQUFFO1FBRXRELE1BQU0sa0JBQWtCLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxnQkFBbUMsQ0FBQztRQUMxRSxPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLENBQUMsS0FBVSxFQUFFLEVBQUUsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2xGLENBQUMsQ0FBQTtJQUVPLHVCQUF1QixHQUFHLENBQUMsUUFBOEIsRUFBRSxTQUFpQixFQUFFLEVBQUU7UUFDdEYsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLE1BQXFCLEVBQUUsRUFBRTtZQUVoRCxNQUFNLGtCQUFrQixHQUFHLElBQUksQ0FBQyxHQUFzQixDQUFDO1lBQ3ZELE9BQU8sTUFBTSxDQUFDLGtCQUFrQixDQUFDLEtBQUssU0FBUyxDQUFBO1FBQ2pELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFBO0lBRU8sS0FBSyxHQUFHLEdBQUcsRUFBRTtRQUNuQixJQUFJLGFBQWEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdkUsSUFBSSxlQUFlLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRTNFLE9BQU8sYUFBYSxJQUFJLGFBQWEsQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQUMsQ0FBQztRQUFBLENBQUM7UUFDekcsT0FBTyxlQUFlLElBQUksZUFBZSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUM7UUFBQyxDQUFDO1FBQ2hILE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxFQUFFLENBQUM7UUFBQyxDQUFDO1FBQUEsQ0FBQztRQUNoRSxJQUFJLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ25DLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDN0IsQ0FBQyxDQUFBO0lBRU8sb0JBQW9CLEdBQUcsQ0FBQyxJQUFxQixFQUFPLEVBQUU7UUFDNUQsSUFBSSxPQUFPLEdBQVEsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzNCLEtBQUssSUFBSSxDQUFDLEdBQVcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDaEQsSUFBSSxRQUFnQixDQUFDO1lBQ3JCLElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQzdCLFFBQVEsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzlCLENBQUM7aUJBQU0sQ0FBQztnQkFDTixRQUFRLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3hCLENBQUM7WUFFRCxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO2dCQUN0QixPQUFPLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzlCLENBQUM7aUJBQU0sQ0FBQztnQkFDTixPQUFPLElBQUksQ0FBQztZQUNkLENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQyxDQUFBO0lBRU8saUJBQWlCLENBQUMsV0FBdUIsRUFBRSxNQUFlO1FBQ2hFLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNiLElBQUksQ0FBQyxNQUFNO1lBQ1QsWUFBWSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsR0FBRyxNQUFNLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUUxRCxJQUFJLFdBQVcsQ0FBQyxNQUFNO1lBQ3BCLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxHQUFHLGNBQWMsQ0FBQztRQUUzQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsRUFBRSxDQUFDO1FBQzNCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO1FBRTFCLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7WUFDbEIsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLGFBQWEsR0FBZSxFQUFFLENBQUM7UUFDbkMsSUFBSSxZQUFZLEdBQWUsRUFBRSxDQUFDO1FBQ2xDLElBQUksT0FBTyxHQUFlLEVBQUUsQ0FBQztRQUU3QixJQUFJLEtBQUssR0FBRyxJQUFJLE1BQU0sQ0FBQyxXQUFXLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUVuRSxJQUFJLG9CQUFvQixHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7UUFFdkQsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLDRCQUE0QjtZQUMxQyxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyw0QkFBNEIsQ0FBQyxLQUFLLEVBQUUsb0JBQW9CLENBQUMsQ0FBQzs7WUFFOUUsS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBRXBELHVCQUF1QjtRQUN2Qiw2Q0FBNkM7UUFFN0MsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQzVILElBQUksQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUM7WUFFeEMsWUFBWSxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUMsTUFBTSxFQUFFLEVBQUU7Z0JBQzFDLElBQUksSUFBSSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxJQUFJLENBQUMsbUJBQW1CLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztvQkFDM0csSUFBSSxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxXQUFXLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7d0JBQzNELE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7d0JBQ3JCLE9BQU8sSUFBSSxDQUFDO29CQUNkLENBQUM7Z0JBQ0gsQ0FBQztnQkFDRCxPQUFPLEtBQUssQ0FBQztZQUNmLENBQUMsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxtQkFBbUIsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7WUFFcEQsSUFBSSxrQkFBa0IsR0FBZSxFQUFFLENBQUM7WUFDeEMsSUFBSSxtQkFBbUIsR0FBZTtnQkFDcEM7b0JBQ0UsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLEtBQUssRUFBRSxFQUFFO2lCQUNWO2FBQ0YsQ0FBQztZQUVGLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFXLEVBQUUsRUFBRTtnQkFDOUIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztnQkFDckIsSUFBSSxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7b0JBQ3pELElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDO3dCQUM5QixhQUFhLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUM3QixDQUFDO3lCQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQzt3QkFDM0UsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztvQkFDdkIsQ0FBQztnQkFDSCxDQUFDO3FCQUFNLENBQUM7b0JBQ04sTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLElBQUksQ0FBQztvQkFDMUIsa0JBQWtCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUNsQyxDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7WUFFSCxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7Z0JBQzdCLElBQUksWUFBWSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUU7b0JBQ3ZDLElBQUksTUFBTSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUM7d0JBQ3RDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsS0FBSyxNQUFNLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLEdBQUcsQ0FBQztvQkFDNUQsT0FBTyxLQUFLLENBQUM7Z0JBQ2YsQ0FBQyxDQUFDLENBQUM7Z0JBRUgsSUFBSSxZQUFZLEVBQUUsQ0FBQztvQkFDakIsSUFBSSxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7d0JBQy9ELFlBQVksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO29CQUM1RCxDQUFDO3lCQUFNLENBQUM7d0JBQ04sWUFBWSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7b0JBQzVELENBQUM7Z0JBQ0gsQ0FBQztxQkFBTSxJQUNMLENBQUMsWUFBWTtvQkFDYixNQUFNLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztvQkFDcEMsTUFBTSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxFQUFFLENBQUM7b0JBQy9DLElBQUksY0FBYyxHQUFHLE1BQU0sQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7b0JBQzFELElBQUksa0JBQWtCLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7d0JBQ3RELGNBQWMsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7d0JBQzdCLGNBQWMsQ0FBQyxVQUFVLENBQUMsR0FBRyxJQUFJLENBQUM7d0JBQ2xDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztvQkFDMUMsQ0FBQztvQkFDRCxjQUFjLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztnQkFDOUQsQ0FBQztxQkFBTSxDQUFDO29CQUNOLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7Z0JBQ3RFLENBQUM7WUFDSCxDQUFDLENBQUMsQ0FBQztZQUVILElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUNwQixJQUFJLGVBQWUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFFakQsYUFBYSxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUU7b0JBQzVDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxlQUFlLENBQUMsQ0FBQyxDQUFDO29CQUN4RCxJQUFJLENBQUM7d0JBQ0gsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzs7d0JBRXBDLE9BQU8sSUFBSSxDQUFDO2dCQUNoQixDQUFDLENBQUMsQ0FBQztnQkFDSCxPQUFPLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTtvQkFDaEMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxFQUFFLGVBQWUsQ0FBQyxDQUFDLENBQUM7b0JBQ3hELElBQUksQ0FBQzt3QkFDSCxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDOzt3QkFFcEMsT0FBTyxJQUFJLENBQUM7Z0JBQ2hCLENBQUMsQ0FBQyxDQUFDO2dCQUNILGtCQUFrQixHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTtvQkFDdEQsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxFQUFFLGVBQWUsQ0FBQyxDQUFDLENBQUM7b0JBQ3hELElBQUksQ0FBQzt3QkFDSCxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDOzt3QkFFcEMsT0FBTyxJQUFJLENBQUM7Z0JBQ2hCLENBQUMsQ0FBQyxDQUFDO2dCQUNILFlBQVksR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFO29CQUMxQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLEVBQUUsZUFBZSxDQUFDLENBQUMsQ0FBQztvQkFDeEQsSUFBSSxDQUFDO3dCQUNILE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7O3dCQUVwQyxPQUFPLElBQUksQ0FBQztnQkFDaEIsQ0FBQyxDQUFDLENBQUM7WUFDTCxDQUFDO1lBRUQsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ2xCLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtvQkFDL0IsTUFBTSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDN0MsQ0FBQyxDQUFDLENBQUM7Z0JBRUgsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO29CQUN6QixNQUFNLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUM3QyxDQUFDLENBQUMsQ0FBQztnQkFFSCxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtvQkFDcEMsTUFBTSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDN0MsQ0FBQyxDQUFDLENBQUM7Z0JBRUgsbUJBQW1CLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7b0JBQ3JDLE1BQU0sQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzdDLENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztZQUVELElBQUksSUFBSSxDQUFDLGVBQWU7Z0JBQ3RCLE9BQU8sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7WUFFL0MsT0FBTyxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7WUFFdkMsSUFBSSxJQUFJLENBQUMsaUJBQWlCLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCO2dCQUNsRCxPQUFPLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1lBRWhELElBQUksSUFBSSxDQUFDLGlCQUFpQixJQUFJLElBQUksQ0FBQyxnQkFBZ0I7Z0JBQ2pELGFBQWEsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBRWhELElBQUksQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDO1lBQ25DLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1lBRXZCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUNiLElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUUvQyxJQUFJLE1BQU0sRUFBRSxDQUFDO29CQUNYLElBQUksYUFBYSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsMEJBQTBCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDaEYsSUFBSSxzQkFBc0IsR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLGlCQUFpQixHQUFHLE1BQU0sRUFBRSxDQUFDLENBQUM7b0JBQ2hGLGFBQWEsQ0FBQyxVQUFVLEdBQUcsc0JBQXNCLENBQUMsQ0FBQyxDQUFDLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDbEYsQ0FBQztZQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFFSCxNQUFNLFFBQVE7WUFDWixZQUFZLGFBQWtCLEVBQUUsT0FBWTtZQUU1QyxDQUFDO1NBQ0Y7SUFDSCxDQUFDO3VHQTNTVSxhQUFhOzJGQUFiLGFBQWEsaU1DYjFCLGtoQ0F1QkE7OzJGRFZhLGFBQWE7a0JBTHpCLFNBQVM7K0JBQ0UsaUJBQWlCO29IQUtsQixNQUFNO3NCQUFkLEtBQUs7Z0JBRTRDLE1BQU07c0JBQXZELFNBQVM7dUJBQUMsa0JBQWtCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCAqIGFzIF8gZnJvbSAndW5kZXJzY29yZSc7XHJcbmltcG9ydCB7IGJyZWV6ZSB9IGZyb20gJ2JyZWV6ZS1jbGllbnQnO1xyXG5pbXBvcnQgeyB2NCBhcyB1dWlkdjQgfSBmcm9tICd1dWlkJztcclxuaW1wb3J0IHsgVHJ1RGF0YUNvbnRleHQgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90cnUtZGF0YS1jb250ZXh0JztcclxuaW1wb3J0IHsgVHJ1RW50aXR5QmFzZSB9IGZyb20gJy4uLy4uL2Jhc2UtY2xhc3Nlcy90cnUtZW50aXR5LWJhc2UnO1xyXG5pbXBvcnQgeyBUcnVNb2RlbFR5cGVMb29rdXAgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90cnUtbW9kZWwtdHlwZS1sb29rdXAnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd0cnUtY2FyZC1jb2x1bW4nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90cnUtY2FyZC1jb2x1bW4uaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdHJ1LWNhcmQtY29sdW1uLmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcnVDYXJkQ29sdW1uIHtcclxuICBASW5wdXQoKSBjb25maWchOiBhbnlcclxuXHJcbiAgQFZpZXdDaGlsZCgnLnRydS1jYXJkLXBvcnRhbCcsIHsgc3RhdGljOiBmYWxzZSB9KSBwb3J0YWwhOiBIVE1MRGl2RWxlbWVudDtcclxuXHJcbiAgcHJpdmF0ZSBwYXJlbnRUYWJsZU5hbWUgPSB0aGlzLmNvbmZpZy5wYXJlbnRUYWJsZU5hbWU7XHJcbiAgcHJpdmF0ZSBrZXkgPSB0aGlzLmNvbmZpZy5rZXk7XHJcbiAgcHJpdmF0ZSBwYXJlbnRRdWVyeSA9IHRoaXMuY29uZmlnLnBhcmVudFF1ZXJ5O1xyXG4gIHByaXZhdGUgbG9ja1Byb3BlcnR5ID0gdGhpcy5jb25maWcubG9ja1Byb3BlcnR5O1xyXG4gIHByaXZhdGUgZW50aXR5UGx1cmFsTmFtZSA9IHRoaXMuY29uZmlnLmVudGl0eVBsdXJhbE5hbWU7XHJcbiAgcHJpdmF0ZSBlbnRpdHlOYW1lID0gdGhpcy5jb25maWcuZW50aXR5TmFtZTtcclxuICBwcml2YXRlIGNvbHVtblNvcnQgPSB0aGlzLmNvbmZpZy5jb2x1bW5Tb3J0O1xyXG4gIHByaXZhdGUgY2FyZFNvcnQgPSB0aGlzLmNvbmZpZy5jYXJkU29ydDtcclxuICBwcml2YXRlIGNvbG9yID0gdGhpcy5jb25maWcuY29sb3I7XHJcblxyXG4gIHByaXZhdGUgdW5hc3NpZ25lZFZpc2libGUgPSB0aGlzLmNvbmZpZy51bmFzc2lnbmVkVmlzaWJsZTtcclxuICBwcml2YXRlIHVuYXNzaWduZWROYW1lID0gdGhpcy5jb25maWcudW5hc3NpZ25lZE5hbWU7XHJcbiAgcHJpdmF0ZSB1bmFzc2lnbmVkTG9ja2VkID0gdGhpcy5jb25maWcudW5hc3NpZ25lZExvY2tlZDtcclxuICBwcml2YXRlIHVuYXNzaWduZWRDb2xvciA9IHRoaXMuY29uZmlnLnVuYXNzaWduZWRDb2xvcjtcclxuICBwcml2YXRlIHVuYXNzaWduZWREcmFnZ2FibGUgPSB0aGlzLmNvbmZpZy51bmFzc2lnbmVkRHJhZ2dhYmxlO1xyXG4gIHByaXZhdGUgdW5hc3NpZ25lZERyb3BwYWJsZSA9IHRoaXMuY29uZmlnLnVuYXNzaWduZWREcm9wcGFibGU7XHJcblxyXG4gIHByaXZhdGUgaW5hY3RpdmVWaXNpYmxlID0gdGhpcy5jb25maWcuaW5hY3RpdmVWaXNpYmxlO1xyXG4gIHByaXZhdGUgaW5hY3RpdmVEcmFnZ2FibGUgPSB0aGlzLmNvbmZpZy5pbmFjdGl2ZURyYWdnYWJsZTtcclxuICBwcml2YXRlIGluYWN0aXZlRHJvcHBhYmxlID0gdGhpcy5jb25maWcuaW5hY3RpdmVEcm9wcGFibGU7XHJcblxyXG4gIHByaXZhdGUgcmVsYXRlZFBhcmVudE5hbWU7XHJcbiAgcHJpdmF0ZSByZWxhdGVkQ2hpbGROYW1lO1xyXG4gIHByaXZhdGUgaW5zZXJ0QmVmb3JlOiBhbnk7XHJcbiAgcHJpdmF0ZSBzZWxlY3RlZENhcmRzID0gW107XHJcbiAgcHJpdmF0ZSBjb2x1bW5GaWx0ZXJSZWZzID0gW107XHJcbiAgcHJpdmF0ZSBjYXJkRmlsdGVyU3RyOiBhbnk7XHJcbiAgcHJpdmF0ZSB1bmlxdWVJZDtcclxuXHJcbiAgY29sdW1uczogYW55O1xyXG4gIGxvY2tlZENvbHVtbnM6IGFueTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGRhdGFDb250ZXh0OiBUcnVEYXRhQ29udGV4dCxcclxuICAgIHByaXZhdGUgbW9kZWxUeXBlTG9va3VwOiBUcnVNb2RlbFR5cGVMb29rdXApIHtcclxuXHJcbiAgICBsZXQgaW5kZXggPSB0aGlzLmtleS5sYXN0SW5kZXhPZih0aGlzLnBhcmVudFRhYmxlTmFtZSk7XHJcbiAgICBsZXQgcHJlZml4ID0gdGhpcy5rZXkuc3Vic3RyaW5nKGluZGV4LCAtMSk7XHJcbiAgICBpZiAocHJlZml4KSB7XHJcbiAgICAgIHRoaXMucmVsYXRlZFBhcmVudE5hbWUgPSBwcmVmaXggKyB0aGlzLnBhcmVudFRhYmxlTmFtZTtcclxuICAgICAgdGhpcy5yZWxhdGVkQ2hpbGROYW1lID0gcHJlZml4ICsgdGhpcy5lbnRpdHlQbHVyYWxOYW1lO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5yZWxhdGVkUGFyZW50TmFtZSA9IHRoaXMucGFyZW50VGFibGVOYW1lO1xyXG4gICAgICB0aGlzLnJlbGF0ZWRDaGlsZE5hbWUgPSB0aGlzLmVudGl0eVBsdXJhbE5hbWU7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy51bmlxdWVJZCA9IHV1aWR2NCgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBwYXJlbnRUYWJsZU1vZGVsID0gbnVsbDsvL2RhdGFTZXJ2aWNlLm1vZGVsLnRhYmxlc1twYXJlbnRUYWJsZU5hbWVdO1xyXG4gIHByaXZhdGUgdXNlckhhc1BhcmVudFRhYmxlUm9sZSA9IG51bGw7IC8vcGFyZW50VGFibGVNb2RlbC5jYW5EaXNwbGF5O1xyXG5cclxuICBwcml2YXRlIGNyZWF0ZURhdGFGb3JFbnRpdHkgPSAoZW50aXR5OiBUcnVFbnRpdHlCYXNlKSA9PiB7XHJcbiAgICB2YXIgZGF0YSA9IHRoaXMuY29uZmlnLmNyZWF0ZURhdGEoZW50aXR5KTtcclxuICAgIGRhdGEuJGVudGl0eSA9IGVudGl0eTtcclxuICAgIHJldHVybiBkYXRhO1xyXG4gIH07XHJcblxyXG4gIHByaXZhdGUgaGFzVW5kZWZpbmVkQ2hpbGRyZW4gPSAoZW50aXR5OiBUcnVFbnRpdHlCYXNlKSA9PiB7XHJcbiAgICB0eXBlIEVudGl0eU9iamVjdEtleSA9IGtleW9mIHR5cGVvZiBlbnRpdHk7XHJcbiAgICBjb25zdCBlbnRpdHlQcm9wZXJ0eU5hbWUgPSAnbycgKyB0aGlzLnJlbGF0ZWRDaGlsZE5hbWUgYXMgRW50aXR5T2JqZWN0S2V5O1xyXG4gICAgcmV0dXJuICFlbnRpdHlbZW50aXR5UHJvcGVydHlOYW1lXTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaGFzRW1wdHlDaGlsZHJlbiA9IChlbnRpdHk6IFRydUVudGl0eUJhc2UpID0+IHtcclxuICAgIHR5cGUgRW50aXR5T2JqZWN0S2V5ID0ga2V5b2YgdHlwZW9mIGVudGl0eTtcclxuICAgIGNvbnN0IGVudGl0eVByb3BlcnR5TmFtZSA9ICdvJyArIHRoaXMucmVsYXRlZENoaWxkTmFtZSBhcyBFbnRpdHlPYmplY3RLZXk7XHJcbiAgICByZXR1cm4gIWVudGl0eVtlbnRpdHlQcm9wZXJ0eU5hbWVdLmxlbmd0aDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaGFzSW5hY3RpdmVDaGlsZHJlbiA9IChlbnRpdHk6IFRydUVudGl0eUJhc2UpID0+IHtcclxuICAgIHR5cGUgRW50aXR5T2JqZWN0S2V5ID0ga2V5b2YgdHlwZW9mIGVudGl0eTtcclxuICAgIGNvbnN0IGVudGl0eVByb3BlcnR5TmFtZSA9ICdvJyArIHRoaXMucmVsYXRlZENoaWxkTmFtZSBhcyBFbnRpdHlPYmplY3RLZXk7XHJcbiAgICByZXR1cm4gXy5ldmVyeShbZW50aXR5UHJvcGVydHlOYW1lXSwgKGNoaWxkOiBhbnkpID0+IHsgcmV0dXJuICFjaGlsZC5hY3RpdmU7IH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBoYXNBZGRlZFVuc2F2ZWRDaGlsZHJlbiA9IChlbnRpdGllczogQXJyYXk8VHJ1RW50aXR5QmFzZT4sIHBhcmVudFJlZjogbnVtYmVyKSA9PiB7XHJcbiAgICByZXR1cm4gXy5zb21lKGVudGl0aWVzLCAoZW50aXR5OiBUcnVFbnRpdHlCYXNlKSA9PiB7XHJcbiAgICAgIHR5cGUgRW50aXR5T2JqZWN0S2V5ID0ga2V5b2YgdHlwZW9mIGVudGl0eTtcclxuICAgICAgY29uc3QgZW50aXR5UHJvcGVydHlOYW1lID0gdGhpcy5rZXkgYXMgRW50aXR5T2JqZWN0S2V5O1xyXG4gICAgICByZXR1cm4gZW50aXR5W2VudGl0eVByb3BlcnR5TmFtZV0gPT09IHBhcmVudFJlZlxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNsZWFyID0gKCkgPT4ge1xyXG4gICAgdmFyIGxvY2tlZENvbHVtbnMgPSB0aGlzLnBvcnRhbC5xdWVyeVNlbGVjdG9yQWxsKCcubG9ja2VkLWNvbHVtbnMnKVswXTtcclxuICAgIHZhciB1bmxvY2tlZENvbHVtbnMgPSB0aGlzLnBvcnRhbC5xdWVyeVNlbGVjdG9yQWxsKCcudW5sb2NrZWQtY29sdW1ucycpWzBdO1xyXG5cclxuICAgIHdoaWxlIChsb2NrZWRDb2x1bW5zICYmIGxvY2tlZENvbHVtbnMubGFzdENoaWxkKSB7IGxvY2tlZENvbHVtbnMucmVtb3ZlQ2hpbGQobG9ja2VkQ29sdW1ucy5sYXN0Q2hpbGQpOyB9O1xyXG4gICAgd2hpbGUgKHVubG9ja2VkQ29sdW1ucyAmJiB1bmxvY2tlZENvbHVtbnMubGFzdENoaWxkKSB7IHVubG9ja2VkQ29sdW1ucy5yZW1vdmVDaGlsZCh1bmxvY2tlZENvbHVtbnMubGFzdENoaWxkKTsgfVxyXG4gICAgd2hpbGUgKHRoaXMuc2VsZWN0ZWRDYXJkcy5sZW5ndGgpIHsgdGhpcy5zZWxlY3RlZENhcmRzLnBvcCgpOyB9O1xyXG4gICAgdGhpcy5jb25maWcub25TZWxlY3Rpb25DaGFuZ2VkKFtdKTtcclxuICAgIHRoaXMuY29uZmlnLmNsZWFyRmlsdGVycygpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRWYWx1ZUZyb21Tb3J0UGF0aCA9IChhcmdzOiBbYW55LCBzdHJpbmdbXV0pOiBhbnkgPT4ge1xyXG4gICAgbGV0IGN1cnJlbnQ6IGFueSA9IGFyZ3NbMF07XHJcbiAgICBmb3IgKGxldCBpOiBudW1iZXIgPSAwOyBpIDwgYXJnc1sxXS5sZW5ndGg7IGkrKykge1xyXG4gICAgICBsZXQgcGFydE5hbWU6IHN0cmluZztcclxuICAgICAgaWYgKGkgIT09IGFyZ3NbMV0ubGVuZ3RoIC0gMSkge1xyXG4gICAgICAgIHBhcnROYW1lID0gJ28nICsgYXJnc1sxXVtpXTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBwYXJ0TmFtZSA9IGFyZ3NbMV1baV07XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChjdXJyZW50W3BhcnROYW1lXSkge1xyXG4gICAgICAgIGN1cnJlbnQgPSBjdXJyZW50W3BhcnROYW1lXTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGN1cnJlbnQ7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHVwZGF0ZUl0ZW1zU291cmNlKG5ld0VudGl0aWVzOiBBcnJheTxhbnk+LCByZXZlcnQ6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuY2xlYXIoKTtcclxuICAgIGlmICghcmV2ZXJ0KVxyXG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnc2Nyb2xsX3Bvc2l0aW9uJyArIHV1aWR2NCgpLCAnMCcpO1xyXG5cclxuICAgIGlmIChuZXdFbnRpdGllcy5sZW5ndGgpXHJcbiAgICAgIHRoaXMuY29uZmlnLmJ1c3lNZXNzYWdlID0gJ1JlbmRlcmluZy4uLic7XHJcblxyXG4gICAgdGhpcy5jb2x1bW5GaWx0ZXJSZWZzID0gW107XHJcbiAgICB0aGlzLmNhcmRGaWx0ZXJTdHIgPSBudWxsO1xyXG5cclxuICAgIGlmICghbmV3RW50aXRpZXMubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMubG9ja2VkQ29sdW1ucyA9IFtdO1xyXG4gICAgICB0aGlzLmNvbHVtbnMgPSBbXTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCBsb2NrZWRDb2x1bW5zOiBBcnJheTxhbnk+ID0gW107XHJcbiAgICBsZXQgZW1wdHlQYXJlbnRzOiBBcnJheTxhbnk+ID0gW107XHJcbiAgICBsZXQgY29sdW1uczogQXJyYXk8YW55PiA9IFtdO1xyXG5cclxuICAgIGxldCBxdWVyeSA9IG5ldyBicmVlemUuRW50aXR5UXVlcnkoJ1F1ZXJ5JyArIHRoaXMucGFyZW50VGFibGVOYW1lKTtcclxuXHJcbiAgICB2YXIgcmVsYXRlZENoaWxkUHJvcGVydHkgPSAnbycgKyB0aGlzLnJlbGF0ZWRDaGlsZE5hbWU7XHJcblxyXG4gICAgaWYgKHRoaXMuY29uZmlnLmN1c3RvbUNhcmRDb2x1bW5RdWVyeUZhY3RvcnkpXHJcbiAgICAgIHF1ZXJ5ID0gdGhpcy5jb25maWcuY3VzdG9tQ2FyZENvbHVtblF1ZXJ5RmFjdG9yeShxdWVyeSwgcmVsYXRlZENoaWxkUHJvcGVydHkpO1xyXG4gICAgZWxzZVxyXG4gICAgICBxdWVyeSA9IHF1ZXJ5LmV4cGFuZCgnbycgKyB0aGlzLnJlbGF0ZWRDaGlsZE5hbWUpO1xyXG5cclxuICAgIC8vaWYgKHRoaXMucGFyZW50UXVlcnkpXHJcbiAgICAvLyAgcXVlcnkgPSBxdWVyaWVzW3RoaXMucGFyZW50UXVlcnldKHF1ZXJ5KTtcclxuXHJcbiAgICB0aGlzLmRhdGFDb250ZXh0LmVudGl0eUFjY2VzcygpLmN1c3RvbVNlYXJjaCh0aGlzLm1vZGVsVHlwZUxvb2t1cC5nZXRUeXBlKHRoaXMucGFyZW50VGFibGVOYW1lKSwgcXVlcnkpLnN1YnNjcmliZSgocGFyZW50cykgPT4ge1xyXG4gICAgICB0aGlzLmNvbmZpZy5hZGRQYXJlbnRzVG9GaWx0ZXIocGFyZW50cyk7XHJcblxyXG4gICAgICBlbXB0eVBhcmVudHMgPSBfLmZpbHRlcihwYXJlbnRzLCAocGFyZW50KSA9PiB7XHJcbiAgICAgICAgaWYgKHRoaXMuaGFzVW5kZWZpbmVkQ2hpbGRyZW4ocGFyZW50KSB8fCB0aGlzLmhhc0VtcHR5Q2hpbGRyZW4ocGFyZW50KSB8fCB0aGlzLmhhc0luYWN0aXZlQ2hpbGRyZW4ocGFyZW50KSkge1xyXG4gICAgICAgICAgaWYgKCF0aGlzLmhhc0FkZGVkVW5zYXZlZENoaWxkcmVuKG5ld0VudGl0aWVzLCBwYXJlbnQuUmVmKSkge1xyXG4gICAgICAgICAgICBwYXJlbnRbJ2NhcmRzJ10gPSBbXTtcclxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfSk7XHJcbiAgICAgIGxldCBxdWVyeWFibGVQYXJlbnRSZWZzID0gXy5wbHVjayhwYXJlbnRzLCB0aGlzLmtleSlcclxuXHJcbiAgICAgIGxldCBpbmFjdGl2ZVdpdGhQYXJlbnQ6IEFycmF5PGFueT4gPSBbXTtcclxuICAgICAgbGV0IGFjdGl2ZVdpdGhvdXRQYXJlbnQ6IEFycmF5PGFueT4gPSBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgdW5hc3NpZ25lZDogdHJ1ZSxcclxuICAgICAgICAgIGNhcmRzOiBbXVxyXG4gICAgICAgIH1cclxuICAgICAgXTtcclxuXHJcbiAgICAgIHBhcmVudHMuZm9yRWFjaCgocGFyZW50OiBhbnkpID0+IHtcclxuICAgICAgICBwYXJlbnRbJ2NhcmRzJ10gPSBbXTtcclxuICAgICAgICBpZiAocXVlcnlhYmxlUGFyZW50UmVmcy5pbmRleE9mKHBhcmVudFt0aGlzLmtleV0pICE9PSAtMSkge1xyXG4gICAgICAgICAgaWYgKHBhcmVudFt0aGlzLmxvY2tQcm9wZXJ0eV0pIHtcclxuICAgICAgICAgICAgbG9ja2VkQ29sdW1ucy5wdXNoKHBhcmVudCk7XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKCFwYXJlbnRbdGhpcy5sb2NrUHJvcGVydHldICYmICFfLmNvbnRhaW5zKGVtcHR5UGFyZW50cywgcGFyZW50KSkge1xyXG4gICAgICAgICAgICBjb2x1bW5zLnB1c2gocGFyZW50KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcGFyZW50WydpbmFjdGl2ZSddID0gdHJ1ZTtcclxuICAgICAgICAgIGluYWN0aXZlV2l0aFBhcmVudC5wdXNoKHBhcmVudCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIG5ld0VudGl0aWVzLmZvckVhY2goKGVudGl0eSkgPT4ge1xyXG4gICAgICAgIHZhciBlbnRpdHlQYXJlbnQgPSBfLmZpbmQocGFyZW50cywgKHApID0+IHtcclxuICAgICAgICAgIGlmIChlbnRpdHlbJ28nICsgdGhpcy5yZWxhdGVkUGFyZW50TmFtZV0pXHJcbiAgICAgICAgICAgIHJldHVybiBwLlJlZiA9PT0gZW50aXR5WydvJyArIHRoaXMucmVsYXRlZFBhcmVudE5hbWVdLlJlZjtcclxuICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgaWYgKGVudGl0eVBhcmVudCkge1xyXG4gICAgICAgICAgaWYgKHF1ZXJ5YWJsZVBhcmVudFJlZnMuaW5kZXhPZihlbnRpdHlQYXJlbnRbdGhpcy5rZXldKSAhPT0gLTEpIHtcclxuICAgICAgICAgICAgZW50aXR5UGFyZW50LmNhcmRzLnB1c2godGhpcy5jcmVhdGVEYXRhRm9yRW50aXR5KGVudGl0eSkpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgZW50aXR5UGFyZW50LmNhcmRzLnB1c2godGhpcy5jcmVhdGVEYXRhRm9yRW50aXR5KGVudGl0eSkpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSBpZiAoXHJcbiAgICAgICAgICAhZW50aXR5UGFyZW50ICYmXHJcbiAgICAgICAgICBlbnRpdHlbJ28nICsgdGhpcy5yZWxhdGVkUGFyZW50TmFtZV0gJiZcclxuICAgICAgICAgIGVudGl0eVsnbycgKyB0aGlzLnJlbGF0ZWRQYXJlbnROYW1lXS5SZWYgPiAwKSB7XHJcbiAgICAgICAgICBsZXQgaW5hY3RpdmVQYXJlbnQgPSBlbnRpdHlbJ28nICsgdGhpcy5yZWxhdGVkUGFyZW50TmFtZV07XHJcbiAgICAgICAgICBpZiAoaW5hY3RpdmVXaXRoUGFyZW50LmluZGV4T2YoaW5hY3RpdmVQYXJlbnQpID09PSAtMSkge1xyXG4gICAgICAgICAgICBpbmFjdGl2ZVBhcmVudFsnY2FyZHMnXSA9IFtdO1xyXG4gICAgICAgICAgICBpbmFjdGl2ZVBhcmVudFsnaW5hY3RpdmUnXSA9IHRydWU7XHJcbiAgICAgICAgICAgIGluYWN0aXZlV2l0aFBhcmVudC5wdXNoKGluYWN0aXZlUGFyZW50KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGluYWN0aXZlUGFyZW50LmNhcmRzLnB1c2godGhpcy5jcmVhdGVEYXRhRm9yRW50aXR5KGVudGl0eSkpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBhY3RpdmVXaXRob3V0UGFyZW50WzBdLmNhcmRzLnB1c2godGhpcy5jcmVhdGVEYXRhRm9yRW50aXR5KGVudGl0eSkpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcblxyXG4gICAgICBpZiAodGhpcy5jb2x1bW5Tb3J0KSB7XHJcbiAgICAgICAgdmFyIGNvbHVtblNvcnRQYXJ0cyA9IHRoaXMuY29sdW1uU29ydC5zcGxpdCgnLycpO1xyXG5cclxuICAgICAgICBsb2NrZWRDb2x1bW5zID0gXy5zb3J0QnkobG9ja2VkQ29sdW1ucywgKG8pID0+IHtcclxuICAgICAgICAgIHZhciB2ID0gdGhpcy5nZXRWYWx1ZUZyb21Tb3J0UGF0aChbbywgY29sdW1uU29ydFBhcnRzXSk7XHJcbiAgICAgICAgICBpZiAodilcclxuICAgICAgICAgICAgcmV0dXJuIF8uaXNTdHJpbmcodikgPyB2LnRyaW0oKSA6IHY7XHJcbiAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGNvbHVtbnMgPSBfLnNvcnRCeShjb2x1bW5zLCAobykgPT4ge1xyXG4gICAgICAgICAgdmFyIHYgPSB0aGlzLmdldFZhbHVlRnJvbVNvcnRQYXRoKFtvLCBjb2x1bW5Tb3J0UGFydHNdKTtcclxuICAgICAgICAgIGlmICh2KVxyXG4gICAgICAgICAgICByZXR1cm4gXy5pc1N0cmluZyh2KSA/IHYudHJpbSgpIDogdjtcclxuICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgaW5hY3RpdmVXaXRoUGFyZW50ID0gXy5zb3J0QnkoaW5hY3RpdmVXaXRoUGFyZW50LCAobykgPT4ge1xyXG4gICAgICAgICAgdmFyIHYgPSB0aGlzLmdldFZhbHVlRnJvbVNvcnRQYXRoKFtvLCBjb2x1bW5Tb3J0UGFydHNdKTtcclxuICAgICAgICAgIGlmICh2KVxyXG4gICAgICAgICAgICByZXR1cm4gXy5pc1N0cmluZyh2KSA/IHYudHJpbSgpIDogdjtcclxuICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgZW1wdHlQYXJlbnRzID0gXy5zb3J0QnkoZW1wdHlQYXJlbnRzLCAobykgPT4ge1xyXG4gICAgICAgICAgdmFyIHYgPSB0aGlzLmdldFZhbHVlRnJvbVNvcnRQYXRoKFtvLCBjb2x1bW5Tb3J0UGFydHNdKTtcclxuICAgICAgICAgIGlmICh2KVxyXG4gICAgICAgICAgICByZXR1cm4gXy5pc1N0cmluZyh2KSA/IHYudHJpbSgpIDogdjtcclxuICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmICh0aGlzLmNhcmRTb3J0KSB7XHJcbiAgICAgICAgbG9ja2VkQ29sdW1ucy5mb3JFYWNoKChjb2x1bW4pID0+IHtcclxuICAgICAgICAgIGNvbHVtbi5jYXJkcyA9IHRoaXMuY2FyZFNvcnQoY29sdW1uLmNhcmRzKTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgY29sdW1ucy5mb3JFYWNoKChjb2x1bW4pID0+IHtcclxuICAgICAgICAgIGNvbHVtbi5jYXJkcyA9IHRoaXMuY2FyZFNvcnQoY29sdW1uLmNhcmRzKTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgaW5hY3RpdmVXaXRoUGFyZW50LmZvckVhY2goKGNvbHVtbikgPT4ge1xyXG4gICAgICAgICAgY29sdW1uLmNhcmRzID0gdGhpcy5jYXJkU29ydChjb2x1bW4uY2FyZHMpO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICBhY3RpdmVXaXRob3V0UGFyZW50LmZvckVhY2goKGNvbHVtbikgPT4ge1xyXG4gICAgICAgICAgY29sdW1uLmNhcmRzID0gdGhpcy5jYXJkU29ydChjb2x1bW4uY2FyZHMpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAodGhpcy5pbmFjdGl2ZVZpc2libGUpXHJcbiAgICAgICAgY29sdW1ucyA9IGNvbHVtbnMuY29uY2F0KGluYWN0aXZlV2l0aFBhcmVudCk7XHJcblxyXG4gICAgICBjb2x1bW5zID0gY29sdW1ucy5jb25jYXQoZW1wdHlQYXJlbnRzKTtcclxuXHJcbiAgICAgIGlmICh0aGlzLnVuYXNzaWduZWRWaXNpYmxlICYmICF0aGlzLnVuYXNzaWduZWRMb2NrZWQpXHJcbiAgICAgICAgY29sdW1ucyA9IGNvbHVtbnMuY29uY2F0KGFjdGl2ZVdpdGhvdXRQYXJlbnQpO1xyXG5cclxuICAgICAgaWYgKHRoaXMudW5hc3NpZ25lZFZpc2libGUgJiYgdGhpcy51bmFzc2lnbmVkTG9ja2VkKVxyXG4gICAgICAgIGxvY2tlZENvbHVtbnMgPSBjb2x1bW5zLmNvbmNhdChsb2NrZWRDb2x1bW5zKTtcclxuXHJcbiAgICAgIHRoaXMubG9ja2VkQ29sdW1ucyA9IGxvY2tlZENvbHVtbnM7XHJcbiAgICAgIHRoaXMuY29sdW1ucyA9IGNvbHVtbnM7XHJcblxyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICB0aGlzLmNsZWFyKCk7XHJcbiAgICAgICAgbmV3IENhcmRWaWV3KHRoaXMubG9ja2VkQ29sdW1ucywgdGhpcy5jb2x1bW5zKTtcclxuXHJcbiAgICAgICAgaWYgKHJldmVydCkge1xyXG4gICAgICAgICAgbGV0IGNvbHVtbkVsZW1lbnQgPSB0aGlzLnBvcnRhbC5xdWVyeVNlbGVjdG9yQWxsKCcudHJ1LWNhcmQtcG9ydGFsLWNvbHVtbnMnKVswXTtcclxuICAgICAgICAgIGxldCBwcmV2aW91c1Njcm9sbFBvc2l0aW9uID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3Njcm9sbF9wb3NpdGlvbicgKyB1dWlkdjQoKSk7XHJcbiAgICAgICAgICBjb2x1bW5FbGVtZW50LnNjcm9sbExlZnQgPSBwcmV2aW91c1Njcm9sbFBvc2l0aW9uID8gK3ByZXZpb3VzU2Nyb2xsUG9zaXRpb24gOiAwO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuXHJcbiAgICBjbGFzcyBDYXJkVmlldyB7XHJcbiAgICAgIGNvbnN0cnVjdG9yKGxvY2tlZENvbHVtbnM6IGFueSwgY29sdW1uczogYW55KSB7XHJcblxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJ0cnUtY2FyZFwiPlxyXG4gIDxkaXYgKm5nSWY9XCJjb25maWcuaXNCdXN5XCJcclxuICAgICAgIGNsYXNzPVwidHJ1LWNhcmQtYnVzeS1pbmRpY2F0b3JcIj5cclxuICAgIDxwPlNlYXJjaGluZyBmb3Ige3tjb25maWcuZW50aXR5UGx1cmFsTGFiZWx9fS4uLjwvcD5cclxuICA8L2Rpdj5cclxuICA8ZGl2ICpuZ0lmPVwiY29uZmlnLmJ1c3lNZXNzYWdlXCJcclxuICAgICAgIGNsYXNzPVwidHJ1LWNhcmQtYnVzeS1pbmRpY2F0b3JcIj5cclxuICAgIDxwPnt7Y29uZmlnLmJ1c3lNZXNzYWdlfX08L3A+XHJcbiAgPC9kaXY+XHJcbiAgPCEtLTx0cnUtdG9vbGJhciBbY29uZmlnXT1cImNvbmZpZy50b29sYmFyQ29uZmlnXCIgY2xhc3M9XCJtYWluLXRvb2xiYXJcIj48L3RydS10b29sYmFyPi0tPlxyXG4gIDxkaXYgY2xhc3M9XCJ0cnUtY2FyZC1wb3J0YWxcIj5cclxuICAgIDxkaXYgW25nU3R5bGVdPVwieyd3aWR0aCc6ICgoY29uZmlnLndpZHRoICogbG9ja2VkQ29sdW1ucy5sZW5ndGgpICsgKDEwICogbG9ja2VkQ29sdW1ucy5sZW5ndGggLSAxKSkgKyAncHgnIH1cIlxyXG4gICAgICAgICBbbmdDbGFzc109XCJ7J3RydS1jYXJkLXBvcnRhbC1sb2NrZWQtY29sdW1ucy1kaXZpZGVyJzogbG9ja2VkQ29sdW1ucy5sZW5ndGh9XCJcclxuICAgICAgICAgKm5nSWY9XCJsb2NrZWRDb2x1bW5zLmxlbmd0aFwiXHJcbiAgICAgICAgIGNsYXNzPVwidHJ1LWNhcmQtcG9ydGFsLWxvY2tlZC1jb2x1bW5zIGxvY2tlZC1jb2x1bW5zXCI+XHJcblxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IFtuZ1N0eWxlXT1cInsnbGVmdCc6IGxvY2tlZENvbHVtbnMubGVuZ3RoID8gKChjb25maWcud2lkdGggKiBsb2NrZWRDb2x1bW5zLmxlbmd0aCkgKyAoMTAgKiBsb2NrZWRDb2x1bW5zLmxlbmd0aCAtIDEpICsgMjIpICsgJ3B4JyA6IDAgfVwiXHJcbiAgICAgICAgIGNsYXNzPVwidHJ1LWNhcmQtcG9ydGFsLWNvbHVtbnMgdW5sb2NrZWQtY29sdW1uc1wiPlxyXG5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
|
|
284
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LWNhcmQtY29sdW1uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJ1LWNvbW1vbi1saWIvc3JjL2xpYi9jb21wb25lbnRzL2NhcmQtY29sdW1uL3RydS1jYXJkLWNvbHVtbi50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RydS1jb21tb24tbGliL3NyYy9saWIvY29tcG9uZW50cy9jYXJkLWNvbHVtbi90cnUtY2FyZC1jb2x1bW4uaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUQsT0FBTyxLQUFLLENBQUMsTUFBTSxZQUFZLENBQUM7QUFDaEMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUUsRUFBRSxJQUFJLE1BQU0sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7OztBQVdwQyxNQUFNLE9BQU8sYUFBYTtJQXNDZDtJQUNBO0lBdENELE1BQU0sQ0FBdUI7SUFFWSxNQUFNLENBQWtCO0lBRWxFLGVBQWUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQztJQUM5QyxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUM7SUFDdEIsV0FBVyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDO0lBQ3RDLFlBQVksR0FBVyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQztJQUNoRCxnQkFBZ0IsR0FBVyxJQUFJLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDO0lBQ3hELFVBQVUsR0FBVyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQztJQUM1QyxVQUFVLEdBQVcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUM7SUFDNUMsS0FBSyxHQUFXLElBQUksQ0FBQyxNQUFNLENBQUMs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MUIsZ2lDQXVCQTs7MkZEVGEsYUFBYTtrQkFMekIsU0FBUzsrQkFDRSxpQkFBaUI7b0hBS2xCLE1BQU07c0JBQWQsS0FBSztnQkFFNEMsTUFBTTtzQkFBdkQsU0FBUzt1QkFBQyxrQkFBa0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0ICogYXMgXyBmcm9tICd1bmRlcnNjb3JlJztcclxuaW1wb3J0IHsgYnJlZXplIH0gZnJvbSAnYnJlZXplLWNsaWVudCc7XHJcbmltcG9ydCB7IHY0IGFzIHV1aWR2NCB9IGZyb20gJ3V1aWQnO1xyXG5pbXBvcnQgeyBUcnVEYXRhQ29udGV4dCB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RydS1kYXRhLWNvbnRleHQnO1xyXG5pbXBvcnQgeyBUcnVFbnRpdHlCYXNlIH0gZnJvbSAnLi4vLi4vYmFzZS1jbGFzc2VzL3RydS1lbnRpdHktYmFzZSc7XHJcbmltcG9ydCB7IFRydU1vZGVsVHlwZUxvb2t1cCB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RydS1tb2RlbC10eXBlLWxvb2t1cCc7XHJcbmltcG9ydCB7IElUcnVDYXJkQ29sdW1uQ29uZmlnIH0gZnJvbSAnLi9jbGFzc2VzL3RydS1jYXJkLWNvbHVtbi1jb25maWcnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd0cnUtY2FyZC1jb2x1bW4nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90cnUtY2FyZC1jb2x1bW4uaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdHJ1LWNhcmQtY29sdW1uLmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcnVDYXJkQ29sdW1uIHtcclxuICBASW5wdXQoKSBjb25maWchOiBJVHJ1Q2FyZENvbHVtbkNvbmZpZ1xyXG5cclxuICBAVmlld0NoaWxkKCcudHJ1LWNhcmQtcG9ydGFsJywgeyBzdGF0aWM6IGZhbHNlIH0pIHBvcnRhbCE6IEhUTUxEaXZFbGVtZW50O1xyXG5cclxuICBwcml2YXRlIHBhcmVudFRhYmxlTmFtZSA9IHRoaXMuY29uZmlnLnBhcmVudFRhYmxlTmFtZTtcclxuICBwcml2YXRlIGtleSA9IHRoaXMuY29uZmlnLmtleTtcclxuICBwcml2YXRlIHBhcmVudFF1ZXJ5ID0gdGhpcy5jb25maWcucGFyZW50UXVlcnk7XHJcbiAgcHJpdmF0ZSBsb2NrUHJvcGVydHk6IHN0cmluZyA9IHRoaXMuY29uZmlnLmxvY2tQcm9wZXJ0eTtcclxuICBwcml2YXRlIGVudGl0eVBsdXJhbE5hbWU6IHN0cmluZyA9IHRoaXMuY29uZmlnLmVudGl0eVBsdXJhbE5hbWU7XHJcbiAgcHJpdmF0ZSBlbnRpdHlOYW1lOiBzdHJpbmcgPSB0aGlzLmNvbmZpZy5lbnRpdHlOYW1lO1xyXG4gIHByaXZhdGUgY29sdW1uU29ydDogc3RyaW5nID0gdGhpcy5jb25maWcuY29sdW1uU29ydDtcclxuICBwcml2YXRlIGNvbG9yOiBzdHJpbmcgPSB0aGlzLmNvbmZpZy5jb2xvcjtcclxuXHJcbiAgcHJpdmF0ZSB1bmFzc2lnbmVkVmlzaWJsZTogYm9vbGVhbiA9IHRoaXMuY29uZmlnLnVuYXNzaWduZWRWaXNpYmxlO1xyXG4gIHByaXZhdGUgdW5hc3NpZ25lZE5hbWU6IHN0cmluZyA9IHRoaXMuY29uZmlnLnVuYXNzaWduZWROYW1lO1xyXG4gIHByaXZhdGUgdW5hc3NpZ25lZExvY2tlZDogc3RyaW5nID0gdGhpcy5jb25maWcudW5hc3NpZ25lZExvY2tlZDtcclxuICBwcml2YXRlIHVuYXNzaWduZWRDb2xvcjogc3RyaW5nID0gdGhpcy5jb25maWcudW5hc3NpZ25lZENvbG9yO1xyXG4gIHByaXZhdGUgdW5hc3NpZ25lZERyYWdnYWJsZTogYm9vbGVhbiA9IHRoaXMuY29uZmlnLnVuYXNzaWduZWREcmFnZ2FibGU7XHJcbiAgcHJpdmF0ZSB1bmFzc2lnbmVkRHJvcHBhYmxlOiBib29sZWFuID0gdGhpcy5jb25maWcudW5hc3NpZ25lZERyb3BwYWJsZTtcclxuXHJcbiAgcHJpdmF0ZSBpbmFjdGl2ZVZpc2libGU6IGJvb2xlYW4gPSB0aGlzLmNvbmZpZy5pbmFjdGl2ZVZpc2libGU7XHJcbiAgcHJpdmF0ZSBpbmFjdGl2ZURyYWdnYWJsZTogYm9vbGVhbiA9IHRoaXMuY29uZmlnLmluYWN0aXZlRHJhZ2dhYmxlO1xyXG4gIHByaXZhdGUgaW5hY3RpdmVEcm9wcGFibGU6IGJvb2xlYW4gPSB0aGlzLmNvbmZpZy5pbmFjdGl2ZURyb3BwYWJsZTtcclxuXHJcbiAgcHJpdmF0ZSByZWxhdGVkUGFyZW50TmFtZTtcclxuICBwcml2YXRlIHJlbGF0ZWRDaGlsZE5hbWU7XHJcbiAgcHJpdmF0ZSBpbnNlcnRCZWZvcmU6IGFueTtcclxuICBwcml2YXRlIHNlbGVjdGVkQ2FyZHMgPSBbXTtcclxuICBwcml2YXRlIGNvbHVtbkZpbHRlclJlZnMgPSBbXTtcclxuICBwcml2YXRlIGNhcmRGaWx0ZXJTdHI6IGFueTtcclxuICBwcml2YXRlIHVuaXF1ZUlkO1xyXG4gIHByaXZhdGUgYnVzeU1lc3NhZ2U6IHN0cmluZyA9ICdSZW5kZXJpbmcuLi4nO1xyXG5cclxuICBjb2x1bW5zOiBhbnk7XHJcbiAgbG9ja2VkQ29sdW1uczogYW55O1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgZGF0YUNvbnRleHQ6IFRydURhdGFDb250ZXh0LFxyXG4gICAgcHJpdmF0ZSBtb2RlbFR5cGVMb29rdXA6IFRydU1vZGVsVHlwZUxvb2t1cCkge1xyXG5cclxuICAgIGxldCBpbmRleCA9IHRoaXMua2V5Lmxhc3RJbmRleE9mKHRoaXMucGFyZW50VGFibGVOYW1lKTtcclxuICAgIGxldCBwcmVmaXggPSB0aGlzLmtleS5zdWJzdHJpbmcoaW5kZXgsIC0xKTtcclxuICAgIGlmIChwcmVmaXgpIHtcclxuICAgICAgdGhpcy5yZWxhdGVkUGFyZW50TmFtZSA9IHByZWZpeCArIHRoaXMucGFyZW50VGFibGVOYW1lO1xyXG4gICAgICB0aGlzLnJlbGF0ZWRDaGlsZE5hbWUgPSBwcmVmaXggKyB0aGlzLmVudGl0eVBsdXJhbE5hbWU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnJlbGF0ZWRQYXJlbnROYW1lID0gdGhpcy5wYXJlbnRUYWJsZU5hbWU7XHJcbiAgICAgIHRoaXMucmVsYXRlZENoaWxkTmFtZSA9IHRoaXMuZW50aXR5UGx1cmFsTmFtZTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnVuaXF1ZUlkID0gdXVpZHY0KCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHBhcmVudFRhYmxlTW9kZWwgPSBudWxsOy8vZGF0YVNlcnZpY2UubW9kZWwudGFibGVzW3BhcmVudFRhYmxlTmFtZV07XHJcbiAgcHJpdmF0ZSB1c2VySGFzUGFyZW50VGFibGVSb2xlID0gbnVsbDsgLy9wYXJlbnRUYWJsZU1vZGVsLmNhbkRpc3BsYXk7XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlRGF0YUZvckVudGl0eSA9IChlbnRpdHk6IFRydUVudGl0eUJhc2UpID0+IHtcclxuICAgIHZhciBkYXRhID0gdGhpcy5jb25maWcuZGF0YShlbnRpdHkpO1xyXG4gICAgZGF0YS4kZW50aXR5ID0gZW50aXR5O1xyXG4gICAgcmV0dXJuIGRhdGE7XHJcbiAgfTtcclxuXHJcbiAgcHJpdmF0ZSBoYXNVbmRlZmluZWRDaGlsZHJlbiA9IChlbnRpdHk6IFRydUVudGl0eUJhc2UpID0+IHtcclxuICAgIHR5cGUgRW50aXR5T2JqZWN0S2V5ID0ga2V5b2YgdHlwZW9mIGVudGl0eTtcclxuICAgIGNvbnN0IGVudGl0eVByb3BlcnR5TmFtZSA9ICdvJyArIHRoaXMucmVsYXRlZENoaWxkTmFtZSBhcyBFbnRpdHlPYmplY3RLZXk7XHJcbiAgICByZXR1cm4gIWVudGl0eVtlbnRpdHlQcm9wZXJ0eU5hbWVdO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBoYXNFbXB0eUNoaWxkcmVuID0gKGVudGl0eTogVHJ1RW50aXR5QmFzZSkgPT4ge1xyXG4gICAgdHlwZSBFbnRpdHlPYmplY3RLZXkgPSBrZXlvZiB0eXBlb2YgZW50aXR5O1xyXG4gICAgY29uc3QgZW50aXR5UHJvcGVydHlOYW1lID0gJ28nICsgdGhpcy5yZWxhdGVkQ2hpbGROYW1lIGFzIEVudGl0eU9iamVjdEtleTtcclxuICAgIHJldHVybiAhZW50aXR5W2VudGl0eVByb3BlcnR5TmFtZV0ubGVuZ3RoO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBoYXNJbmFjdGl2ZUNoaWxkcmVuID0gKGVudGl0eTogVHJ1RW50aXR5QmFzZSkgPT4ge1xyXG4gICAgdHlwZSBFbnRpdHlPYmplY3RLZXkgPSBrZXlvZiB0eXBlb2YgZW50aXR5O1xyXG4gICAgY29uc3QgZW50aXR5UHJvcGVydHlOYW1lID0gJ28nICsgdGhpcy5yZWxhdGVkQ2hpbGROYW1lIGFzIEVudGl0eU9iamVjdEtleTtcclxuICAgIHJldHVybiBfLmV2ZXJ5KFtlbnRpdHlQcm9wZXJ0eU5hbWVdLCAoY2hpbGQ6IGFueSkgPT4geyByZXR1cm4gIWNoaWxkLmFjdGl2ZTsgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhhc0FkZGVkVW5zYXZlZENoaWxkcmVuID0gKGVudGl0aWVzOiBBcnJheTxUcnVFbnRpdHlCYXNlPiwgcGFyZW50UmVmOiBudW1iZXIpID0+IHtcclxuICAgIHJldHVybiBfLnNvbWUoZW50aXRpZXMsIChlbnRpdHk6IFRydUVudGl0eUJhc2UpID0+IHtcclxuICAgICAgdHlwZSBFbnRpdHlPYmplY3RLZXkgPSBrZXlvZiB0eXBlb2YgZW50aXR5O1xyXG4gICAgICBjb25zdCBlbnRpdHlQcm9wZXJ0eU5hbWUgPSB0aGlzLmtleSBhcyBFbnRpdHlPYmplY3RLZXk7XHJcbiAgICAgIHJldHVybiBlbnRpdHlbZW50aXR5UHJvcGVydHlOYW1lXSA9PT0gcGFyZW50UmVmXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY2xlYXIgPSAoKSA9PiB7XHJcbiAgICB2YXIgbG9ja2VkQ29sdW1ucyA9IHRoaXMucG9ydGFsLnF1ZXJ5U2VsZWN0b3JBbGwoJy5sb2NrZWQtY29sdW1ucycpWzBdO1xyXG4gICAgdmFyIHVubG9ja2VkQ29sdW1ucyA9IHRoaXMucG9ydGFsLnF1ZXJ5U2VsZWN0b3JBbGwoJy51bmxvY2tlZC1jb2x1bW5zJylbMF07XHJcblxyXG4gICAgd2hpbGUgKGxvY2tlZENvbHVtbnMgJiYgbG9ja2VkQ29sdW1ucy5sYXN0Q2hpbGQpIHsgbG9ja2VkQ29sdW1ucy5yZW1vdmVDaGlsZChsb2NrZWRDb2x1bW5zLmxhc3RDaGlsZCk7IH07XHJcbiAgICB3aGlsZSAodW5sb2NrZWRDb2x1bW5zICYmIHVubG9ja2VkQ29sdW1ucy5sYXN0Q2hpbGQpIHsgdW5sb2NrZWRDb2x1bW5zLnJlbW92ZUNoaWxkKHVubG9ja2VkQ29sdW1ucy5sYXN0Q2hpbGQpOyB9XHJcbiAgICB3aGlsZSAodGhpcy5zZWxlY3RlZENhcmRzLmxlbmd0aCkgeyB0aGlzLnNlbGVjdGVkQ2FyZHMucG9wKCk7IH07XHJcbiAgICAvL3RoaXMuY29uZmlnLm9uU2VsZWN0aW9uQ2hhbmdlZChbXSk7XHJcbiAgICAvL3RoaXMuY29uZmlnLmNsZWFyRmlsdGVycygpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRWYWx1ZUZyb21Tb3J0UGF0aCA9IChhcmdzOiBbYW55LCBzdHJpbmdbXV0pOiBhbnkgPT4ge1xyXG4gICAgbGV0IGN1cnJlbnQ6IGFueSA9IGFyZ3NbMF07XHJcbiAgICBmb3IgKGxldCBpOiBudW1iZXIgPSAwOyBpIDwgYXJnc1sxXS5sZW5ndGg7IGkrKykge1xyXG4gICAgICBsZXQgcGFydE5hbWU6IHN0cmluZztcclxuICAgICAgaWYgKGkgIT09IGFyZ3NbMV0ubGVuZ3RoIC0gMSkge1xyXG4gICAgICAgIHBhcnROYW1lID0gJ28nICsgYXJnc1sxXVtpXTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBwYXJ0TmFtZSA9IGFyZ3NbMV1baV07XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChjdXJyZW50W3BhcnROYW1lXSkge1xyXG4gICAgICAgIGN1cnJlbnQgPSBjdXJyZW50W3BhcnROYW1lXTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGN1cnJlbnQ7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHVwZGF0ZUl0ZW1zU291cmNlKG5ld0VudGl0aWVzOiBBcnJheTxhbnk+LCByZXZlcnQ6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuY2xlYXIoKTtcclxuICAgIGlmICghcmV2ZXJ0KVxyXG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnc2Nyb2xsX3Bvc2l0aW9uJyArIHV1aWR2NCgpLCAnMCcpO1xyXG5cclxuICAgIGlmIChuZXdFbnRpdGllcy5sZW5ndGgpXHJcbiAgICAgIHRoaXMuYnVzeU1lc3NhZ2UgPSAnUmVuZGVyaW5nLi4uJztcclxuXHJcbiAgICB0aGlzLmNvbHVtbkZpbHRlclJlZnMgPSBbXTtcclxuICAgIHRoaXMuY2FyZEZpbHRlclN0ciA9IG51bGw7XHJcblxyXG4gICAgaWYgKCFuZXdFbnRpdGllcy5sZW5ndGgpIHtcclxuICAgICAgdGhpcy5sb2NrZWRDb2x1bW5zID0gW107XHJcbiAgICAgIHRoaXMuY29sdW1ucyA9IFtdO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IGxvY2tlZENvbHVtbnM6IEFycmF5PGFueT4gPSBbXTtcclxuICAgIGxldCBlbXB0eVBhcmVudHM6IEFycmF5PGFueT4gPSBbXTtcclxuICAgIGxldCBjb2x1bW5zOiBBcnJheTxhbnk+ID0gW107XHJcblxyXG4gICAgbGV0IHF1ZXJ5ID0gbmV3IGJyZWV6ZS5FbnRpdHlRdWVyeSgnUXVlcnknICsgdGhpcy5wYXJlbnRUYWJsZU5hbWUpO1xyXG5cclxuICAgIHZhciByZWxhdGVkQ2hpbGRQcm9wZXJ0eSA9ICdvJyArIHRoaXMucmVsYXRlZENoaWxkTmFtZTtcclxuXHJcbiAgICBpZiAodGhpcy5jb25maWcucXVlcnkpXHJcbiAgICAgIHF1ZXJ5ID0gdGhpcy5jb25maWcucXVlcnkocXVlcnksIHJlbGF0ZWRDaGlsZFByb3BlcnR5KTtcclxuICAgIGVsc2VcclxuICAgICAgcXVlcnkgPSBxdWVyeS5leHBhbmQoJ28nICsgdGhpcy5yZWxhdGVkQ2hpbGROYW1lKTtcclxuXHJcbiAgICAvL2lmICh0aGlzLnBhcmVudFF1ZXJ5KVxyXG4gICAgLy8gIHF1ZXJ5ID0gcXVlcmllc1t0aGlzLnBhcmVudFF1ZXJ5XShxdWVyeSk7XHJcblxyXG4gICAgdGhpcy5kYXRhQ29udGV4dC5lbnRpdHlBY2Nlc3MoKS5jdXN0b21TZWFyY2godGhpcy5tb2RlbFR5cGVMb29rdXAuZ2V0VHlwZSh0aGlzLnBhcmVudFRhYmxlTmFtZSksIHF1ZXJ5KS5zdWJzY3JpYmUoKHBhcmVudHMpID0+IHtcclxuICAgICAgLy90aGlzLmNvbmZpZy5hZGRQYXJlbnRzVG9GaWx0ZXIocGFyZW50cyk7XHJcblxyXG4gICAgICBlbXB0eVBhcmVudHMgPSBfLmZpbHRlcihwYXJlbnRzLCAocGFyZW50KSA9PiB7XHJcbiAgICAgICAgaWYgKHRoaXMuaGFzVW5kZWZpbmVkQ2hpbGRyZW4ocGFyZW50KSB8fCB0aGlzLmhhc0VtcHR5Q2hpbGRyZW4ocGFyZW50KSB8fCB0aGlzLmhhc0luYWN0aXZlQ2hpbGRyZW4ocGFyZW50KSkge1xyXG4gICAgICAgICAgaWYgKCF0aGlzLmhhc0FkZGVkVW5zYXZlZENoaWxkcmVuKG5ld0VudGl0aWVzLCBwYXJlbnQuUmVmKSkge1xyXG4gICAgICAgICAgICBwYXJlbnRbJ2NhcmRzJ10gPSBbXTtcclxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfSk7XHJcbiAgICAgIGxldCBxdWVyeWFibGVQYXJlbnRSZWZzID0gXy5wbHVjayhwYXJlbnRzLCB0aGlzLmtleSlcclxuXHJcbiAgICAgIGxldCBpbmFjdGl2ZVdpdGhQYXJlbnQ6IEFycmF5PGFueT4gPSBbXTtcclxuICAgICAgbGV0IGFjdGl2ZVdpdGhvdXRQYXJlbnQ6IEFycmF5PGFueT4gPSBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgdW5hc3NpZ25lZDogdHJ1ZSxcclxuICAgICAgICAgIGNhcmRzOiBbXVxyXG4gICAgICAgIH1cclxuICAgICAgXTtcclxuXHJcbiAgICAgIHBhcmVudHMuZm9yRWFjaCgocGFyZW50OiBhbnkpID0+IHtcclxuICAgICAgICBwYXJlbnRbJ2NhcmRzJ10gPSBbXTtcclxuICAgICAgICBpZiAocXVlcnlhYmxlUGFyZW50UmVmcy5pbmRleE9mKHBhcmVudFt0aGlzLmtleV0pICE9PSAtMSkge1xyXG4gICAgICAgICAgaWYgKHBhcmVudFt0aGlzLmxvY2tQcm9wZXJ0eV0pIHtcclxuICAgICAgICAgICAgbG9ja2VkQ29sdW1ucy5wdXNoKHBhcmVudCk7XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKCFwYXJlbnRbdGhpcy5sb2NrUHJvcGVydHldICYmICFfLmNvbnRhaW5zKGVtcHR5UGFyZW50cywgcGFyZW50KSkge1xyXG4gICAgICAgICAgICBjb2x1bW5zLnB1c2gocGFyZW50KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcGFyZW50WydpbmFjdGl2ZSddID0gdHJ1ZTtcclxuICAgICAgICAgIGluYWN0aXZlV2l0aFBhcmVudC5wdXNoKHBhcmVudCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIG5ld0VudGl0aWVzLmZvckVhY2goKGVudGl0eSkgPT4ge1xyXG4gICAgICAgIHZhciBlbnRpdHlQYXJlbnQgPSBfLmZpbmQocGFyZW50cywgKHApID0+IHtcclxuICAgICAgICAgIGlmIChlbnRpdHlbJ28nICsgdGhpcy5yZWxhdGVkUGFyZW50TmFtZV0pXHJcbiAgICAgICAgICAgIHJldHVybiBwLlJlZiA9PT0gZW50aXR5WydvJyArIHRoaXMucmVsYXRlZFBhcmVudE5hbWVdLlJlZjtcclxuICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgaWYgKGVudGl0eVBhcmVudCkge1xyXG4gICAgICAgICAgaWYgKHF1ZXJ5YWJsZVBhcmVudFJlZnMuaW5kZXhPZihlbnRpdHlQYXJlbnRbdGhpcy5rZXldKSAhPT0gLTEpIHtcclxuICAgICAgICAgICAgZW50aXR5UGFyZW50LmNhcmRzLnB1c2godGhpcy5jcmVhdGVEYXRhRm9yRW50aXR5KGVudGl0eSkpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgZW50aXR5UGFyZW50LmNhcmRzLnB1c2godGhpcy5jcmVhdGVEYXRhRm9yRW50aXR5KGVudGl0eSkpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSBpZiAoXHJcbiAgICAgICAgICAhZW50aXR5UGFyZW50ICYmXHJcbiAgICAgICAgICBlbnRpdHlbJ28nICsgdGhpcy5yZWxhdGVkUGFyZW50TmFtZV0gJiZcclxuICAgICAgICAgIGVudGl0eVsnbycgKyB0aGlzLnJlbGF0ZWRQYXJlbnROYW1lXS5SZWYgPiAwKSB7XHJcbiAgICAgICAgICBsZXQgaW5hY3RpdmVQYXJlbnQgPSBlbnRpdHlbJ28nICsgdGhpcy5yZWxhdGVkUGFyZW50TmFtZV07XHJcbiAgICAgICAgICBpZiAoaW5hY3RpdmVXaXRoUGFyZW50LmluZGV4T2YoaW5hY3RpdmVQYXJlbnQpID09PSAtMSkge1xyXG4gICAgICAgICAgICBpbmFjdGl2ZVBhcmVudFsnY2FyZHMnXSA9IFtdO1xyXG4gICAgICAgICAgICBpbmFjdGl2ZVBhcmVudFsnaW5hY3RpdmUnXSA9IHRydWU7XHJcbiAgICAgICAgICAgIGluYWN0aXZlV2l0aFBhcmVudC5wdXNoKGluYWN0aXZlUGFyZW50KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGluYWN0aXZlUGFyZW50LmNhcmRzLnB1c2godGhpcy5jcmVhdGVEYXRhRm9yRW50aXR5KGVudGl0eSkpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBhY3RpdmVXaXRob3V0UGFyZW50WzBdLmNhcmRzLnB1c2godGhpcy5jcmVhdGVEYXRhRm9yRW50aXR5KGVudGl0eSkpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcblxyXG4gICAgICBpZiAodGhpcy5jb2x1bW5Tb3J0KSB7XHJcbiAgICAgICAgdmFyIGNvbHVtblNvcnRQYXJ0cyA9IHRoaXMuY29sdW1uU29ydC5zcGxpdCgnLycpO1xyXG5cclxuICAgICAgICBsb2NrZWRDb2x1bW5zID0gXy5zb3J0QnkobG9ja2VkQ29sdW1ucywgKG8pID0+IHtcclxuICAgICAgICAgIHZhciB2ID0gdGhpcy5nZXRWYWx1ZUZyb21Tb3J0UGF0aChbbywgY29sdW1uU29ydFBhcnRzXSk7XHJcbiAgICAgICAgICBpZiAodilcclxuICAgICAgICAgICAgcmV0dXJuIF8uaXNTdHJpbmcodikgPyB2LnRyaW0oKSA6IHY7XHJcbiAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGNvbHVtbnMgPSBfLnNvcnRCeShjb2x1bW5zLCAobykgPT4ge1xyXG4gICAgICAgICAgdmFyIHYgPSB0aGlzLmdldFZhbHVlRnJvbVNvcnRQYXRoKFtvLCBjb2x1bW5Tb3J0UGFydHNdKTtcclxuICAgICAgICAgIGlmICh2KVxyXG4gICAgICAgICAgICByZXR1cm4gXy5pc1N0cmluZyh2KSA/IHYudHJpbSgpIDogdjtcclxuICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgaW5hY3RpdmVXaXRoUGFyZW50ID0gXy5zb3J0QnkoaW5hY3RpdmVXaXRoUGFyZW50LCAobykgPT4ge1xyXG4gICAgICAgICAgdmFyIHYgPSB0aGlzLmdldFZhbHVlRnJvbVNvcnRQYXRoKFtvLCBjb2x1bW5Tb3J0UGFydHNdKTtcclxuICAgICAgICAgIGlmICh2KVxyXG4gICAgICAgICAgICByZXR1cm4gXy5pc1N0cmluZyh2KSA/IHYudHJpbSgpIDogdjtcclxuICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgZW1wdHlQYXJlbnRzID0gXy5zb3J0QnkoZW1wdHlQYXJlbnRzLCAobykgPT4ge1xyXG4gICAgICAgICAgdmFyIHYgPSB0aGlzLmdldFZhbHVlRnJvbVNvcnRQYXRoKFtvLCBjb2x1bW5Tb3J0UGFydHNdKTtcclxuICAgICAgICAgIGlmICh2KVxyXG4gICAgICAgICAgICByZXR1cm4gXy5pc1N0cmluZyh2KSA/IHYudHJpbSgpIDogdjtcclxuICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmICh0eXBlb2YgdGhpcy5jb25maWcuY2FyZFNvcnQgPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgICBsb2NrZWRDb2x1bW5zLmZvckVhY2goKGNvbHVtbikgPT4ge1xyXG4gICAgICAgICAgY29sdW1uLmNhcmRzID0gdGhpcy5jb25maWcuY2FyZFNvcnQoY29sdW1uLmNhcmRzKTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgY29sdW1ucy5mb3JFYWNoKChjb2x1bW4pID0+IHtcclxuICAgICAgICAgIGNvbHVtbi5jYXJkcyA9IHRoaXMuY29uZmlnLmNhcmRTb3J0KGNvbHVtbi5jYXJkcyk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIGluYWN0aXZlV2l0aFBhcmVudC5mb3JFYWNoKChjb2x1bW4pID0+IHtcclxuICAgICAgICAgIGNvbHVtbi5jYXJkcyA9IHRoaXMuY29uZmlnLmNhcmRTb3J0KGNvbHVtbi5jYXJkcyk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIGFjdGl2ZVdpdGhvdXRQYXJlbnQuZm9yRWFjaCgoY29sdW1uKSA9PiB7XHJcbiAgICAgICAgICBjb2x1bW4uY2FyZHMgPSB0aGlzLmNvbmZpZy5jYXJkU29ydChjb2x1bW4uY2FyZHMpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAodGhpcy5pbmFjdGl2ZVZpc2libGUpXHJcbiAgICAgICAgY29sdW1ucyA9IGNvbHVtbnMuY29uY2F0KGluYWN0aXZlV2l0aFBhcmVudCk7XHJcblxyXG4gICAgICBjb2x1bW5zID0gY29sdW1ucy5jb25jYXQoZW1wdHlQYXJlbnRzKTtcclxuXHJcbiAgICAgIGlmICh0aGlzLnVuYXNzaWduZWRWaXNpYmxlICYmICF0aGlzLnVuYXNzaWduZWRMb2NrZWQpXHJcbiAgICAgICAgY29sdW1ucyA9IGNvbHVtbnMuY29uY2F0KGFjdGl2ZVdpdGhvdXRQYXJlbnQpO1xyXG5cclxuICAgICAgaWYgKHRoaXMudW5hc3NpZ25lZFZpc2libGUgJiYgdGhpcy51bmFzc2lnbmVkTG9ja2VkKVxyXG4gICAgICAgIGxvY2tlZENvbHVtbnMgPSBjb2x1bW5zLmNvbmNhdChsb2NrZWRDb2x1bW5zKTtcclxuXHJcbiAgICAgIHRoaXMubG9ja2VkQ29sdW1ucyA9IGxvY2tlZENvbHVtbnM7XHJcbiAgICAgIHRoaXMuY29sdW1ucyA9IGNvbHVtbnM7XHJcblxyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICB0aGlzLmNsZWFyKCk7XHJcbiAgICAgICAgbmV3IENhcmRWaWV3KHRoaXMubG9ja2VkQ29sdW1ucywgdGhpcy5jb2x1bW5zKTtcclxuXHJcbiAgICAgICAgaWYgKHJldmVydCkge1xyXG4gICAgICAgICAgbGV0IGNvbHVtbkVsZW1lbnQgPSB0aGlzLnBvcnRhbC5xdWVyeVNlbGVjdG9yQWxsKCcudHJ1LWNhcmQtcG9ydGFsLWNvbHVtbnMnKVswXTtcclxuICAgICAgICAgIGxldCBwcmV2aW91c1Njcm9sbFBvc2l0aW9uID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3Njcm9sbF9wb3NpdGlvbicgKyB1dWlkdjQoKSk7XHJcbiAgICAgICAgICBjb2x1bW5FbGVtZW50LnNjcm9sbExlZnQgPSBwcmV2aW91c1Njcm9sbFBvc2l0aW9uID8gK3ByZXZpb3VzU2Nyb2xsUG9zaXRpb24gOiAwO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuXHJcbiAgICBjbGFzcyBDYXJkVmlldyB7XHJcbiAgICAgIGNvbnN0cnVjdG9yKGxvY2tlZENvbHVtbnM6IGFueSwgY29sdW1uczogYW55KSB7XHJcblxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjwhLS08ZGl2IGNsYXNzPVwidHJ1LWNhcmRcIj5cclxuICA8ZGl2ICpuZ0lmPVwiY29uZmlnLmlzQnVzeVwiXHJcbiAgICAgICBjbGFzcz1cInRydS1jYXJkLWJ1c3ktaW5kaWNhdG9yXCI+XHJcbiAgICA8cD5TZWFyY2hpbmcgZm9yIHt7Y29uZmlnLmVudGl0eVBsdXJhbExhYmVsfX0uLi48L3A+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiAqbmdJZj1cImNvbmZpZy5idXN5TWVzc2FnZVwiXHJcbiAgICAgICBjbGFzcz1cInRydS1jYXJkLWJ1c3ktaW5kaWNhdG9yXCI+XHJcbiAgICA8cD57e2NvbmZpZy5idXN5TWVzc2FnZX19PC9wPlxyXG4gIDwvZGl2Pi0tPlxyXG4gIDwhLS08dHJ1LXRvb2xiYXIgW2NvbmZpZ109XCJjb25maWcudG9vbGJhckNvbmZpZ1wiIGNsYXNzPVwibWFpbi10b29sYmFyXCI+PC90cnUtdG9vbGJhcj4tLT5cclxuICA8IS0tPGRpdiBjbGFzcz1cInRydS1jYXJkLXBvcnRhbFwiPlxyXG4gICAgPGRpdiBbbmdTdHlsZV09XCJ7J3dpZHRoJzogKChjb25maWcud2lkdGggKiBsb2NrZWRDb2x1bW5zLmxlbmd0aCkgKyAoMTAgKiBsb2NrZWRDb2x1bW5zLmxlbmd0aCAtIDEpKSArICdweCcgfVwiXHJcbiAgICAgICAgIFtuZ0NsYXNzXT1cInsndHJ1LWNhcmQtcG9ydGFsLWxvY2tlZC1jb2x1bW5zLWRpdmlkZXInOiBsb2NrZWRDb2x1bW5zLmxlbmd0aH1cIlxyXG4gICAgICAgICAqbmdJZj1cImxvY2tlZENvbHVtbnMubGVuZ3RoXCJcclxuICAgICAgICAgY2xhc3M9XCJ0cnUtY2FyZC1wb3J0YWwtbG9ja2VkLWNvbHVtbnMgbG9ja2VkLWNvbHVtbnNcIj5cclxuXHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgW25nU3R5bGVdPVwieydsZWZ0JzogbG9ja2VkQ29sdW1ucy5sZW5ndGggPyAoKGNvbmZpZy53aWR0aCAqIGxvY2tlZENvbHVtbnMubGVuZ3RoKSArICgxMCAqIGxvY2tlZENvbHVtbnMubGVuZ3RoIC0gMSkgKyAyMikgKyAncHgnIDogMCB9XCJcclxuICAgICAgICAgY2xhc3M9XCJ0cnUtY2FyZC1wb3J0YWwtY29sdW1ucyB1bmxvY2tlZC1jb2x1bW5zXCI+XHJcblxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2Pi0tPlxyXG4iXX0=
|
|
@@ -5,16 +5,19 @@ import * as i0 from "@angular/core";
|
|
|
5
5
|
import * as i1 from "./tru-data-context";
|
|
6
6
|
import * as i2 from "./tru-model-type-lookup";
|
|
7
7
|
import * as i3 from "./tru-app-environment";
|
|
8
|
-
import * as i4 from "./tru-
|
|
8
|
+
import * as i4 from "./tru-action-invoke";
|
|
9
|
+
import * as i5 from "./tru-user";
|
|
9
10
|
export class TruReportManager {
|
|
10
11
|
dataContext;
|
|
11
12
|
modelTypeLookup;
|
|
12
13
|
appEnvironment;
|
|
14
|
+
actionInvoke;
|
|
13
15
|
user;
|
|
14
|
-
constructor(dataContext, modelTypeLookup, appEnvironment, user) {
|
|
16
|
+
constructor(dataContext, modelTypeLookup, appEnvironment, actionInvoke, user) {
|
|
15
17
|
this.dataContext = dataContext;
|
|
16
18
|
this.modelTypeLookup = modelTypeLookup;
|
|
17
19
|
this.appEnvironment = appEnvironment;
|
|
20
|
+
this.actionInvoke = actionInvoke;
|
|
18
21
|
this.user = user;
|
|
19
22
|
}
|
|
20
23
|
setupMenuImpl(report, menu, getActionRefs, enabled) {
|
|
@@ -30,8 +33,8 @@ export class TruReportManager {
|
|
|
30
33
|
},
|
|
31
34
|
reportRef: reportRef,
|
|
32
35
|
mimeRef: mimeRef,
|
|
33
|
-
fire:
|
|
34
|
-
this.actionInvoke.processCustomReport(
|
|
36
|
+
fire: () => {
|
|
37
|
+
this.actionInvoke.processCustomReport(reportRef, getActionRefs(), mimeRef);
|
|
35
38
|
}
|
|
36
39
|
});
|
|
37
40
|
}
|
|
@@ -126,7 +129,7 @@ export class TruReportManager {
|
|
|
126
129
|
});
|
|
127
130
|
});
|
|
128
131
|
};
|
|
129
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: TruReportManager, deps: [{ token: i1.TruDataContext }, { token: i2.TruModelTypeLookup }, { token: i3.TruAppEnvironment }, { token: i4.TruUser }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
132
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: TruReportManager, deps: [{ token: i1.TruDataContext }, { token: i2.TruModelTypeLookup }, { token: i3.TruAppEnvironment }, { token: i4.TruActionInvoke }, { token: i5.TruUser }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
130
133
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: TruReportManager, providedIn: 'root' });
|
|
131
134
|
}
|
|
132
135
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: TruReportManager, decorators: [{
|
|
@@ -134,5 +137,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImpor
|
|
|
134
137
|
args: [{
|
|
135
138
|
providedIn: 'root',
|
|
136
139
|
}]
|
|
137
|
-
}], ctorParameters: () => [{ type: i1.TruDataContext }, { type: i2.TruModelTypeLookup }, { type: i3.TruAppEnvironment }, { type: i4.TruUser }] });
|
|
138
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LXJlcG9ydC1tYW5hZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJ1LWNvbW1vbi1saWIvc3JjL2xpYi9zZXJ2aWNlcy90cnUtcmVwb3J0LW1hbmFnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSXZDLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7QUFNNUMsTUFBTSxPQUFPLGdCQUFnQjtJQUVqQjtJQUNBO0lBQ0E7SUFDQTtJQUpWLFlBQ1UsV0FBMkIsRUFDM0IsZUFBbUMsRUFDbkMsY0FBaUMsRUFDakMsSUFBYTtRQUhiLGdCQUFXLEdBQVgsV0FBVyxDQUFnQjtRQUMzQixvQkFBZSxHQUFmLGVBQWUsQ0FBb0I7UUFDbkMsbUJBQWMsR0FBZCxjQUFjLENBQW1CO1FBQ2pDLFNBQUksR0FBSixJQUFJLENBQVM7SUFBSSxDQUFDO0lBRXBCLGFBQWEsQ0FBQyxNQUFXLEVBQUUsSUFBUyxFQUFFLGFBQWtCLEVBQUUsT0FBaUI7UUFDakYsSUFBSSxTQUFTLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQztRQUMzQixJQUFJLE9BQU8sR0FBRyxNQUFNLENBQUMsNEJBQTRCLENBQUM7UUFDbEQsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQ2xCO1lBQ0UsU0FBUyxFQUFFO2dCQUNULE9BQU8sSUFBSSxDQUFDO1lBQ2QsQ0FBQztZQUNELEtBQUssRUFBRSxNQUFNLENBQUMsVUFBVTtZQUN4QixPQUFPLEVBQUU7Z0JBQ1AsT0FBTyxPQUFPLEVBQUUsQ0FBQztZQUNuQixDQUFDO1lBQ0QsU0FBUyxFQUFFLFNBQVM7WUFDcEIsT0FBTyxFQUFFLE9BQU87WUFDaEIsSUFBSSxFQUFF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QUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQzt1R0E1SFMsZ0JBQWdCOzJHQUFoQixnQkFBZ0IsY0FGZixNQUFNOzsyRkFFUCxnQkFBZ0I7a0JBSDVCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBicmVlemUgfSBmcm9tICdicmVlemUtY2xpZW50JztcclxuaW1wb3J0IHsgVHJ1VXNlciB9IGZyb20gJy4vdHJ1LXVzZXInO1xyXG5pbXBvcnQgeyBUcnVEYXRhQ29udGV4dCB9IGZyb20gJy4vdHJ1LWRhdGEtY29udGV4dCc7XHJcbmltcG9ydCB7IFRydU1vZGVsVHlwZUxvb2t1cCB9IGZyb20gJy4vdHJ1LW1vZGVsLXR5cGUtbG9va3VwJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgZm9ya0pvaW4gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgVHJ1QXBwRW52aXJvbm1lbnQgfSBmcm9tICcuL3RydS1hcHAtZW52aXJvbm1lbnQnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFRydVJlcG9ydE1hbmFnZXIge1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBkYXRhQ29udGV4dDogVHJ1RGF0YUNvbnRleHQsXHJcbiAgICBwcml2YXRlIG1vZGVsVHlwZUxvb2t1cDogVHJ1TW9kZWxUeXBlTG9va3VwLFxyXG4gICAgcHJpdmF0ZSBhcHBFbnZpcm9ubWVudDogVHJ1QXBwRW52aXJvbm1lbnQsXHJcbiAgICBwcml2YXRlIHVzZXI6IFRydVVzZXIpIHsgfVxyXG5cclxuICBwcml2YXRlIHNldHVwTWVudUltcGwocmVwb3J0OiBhbnksIG1lbnU6IGFueSwgZ2V0QWN0aW9uUmVmczogYW55LCBlbmFibGVkOiAoKSA9PiB7fSkge1xyXG4gICAgdmFyIHJlcG9ydFJlZiA9IHJlcG9ydC5SZWY7XHJcbiAgICB2YXIgbWltZVJlZiA9IHJlcG9ydC5SZXBvcnRNaW1lVHlwZVN0ZE1pbWVUeXBlUmVmO1xyXG4gICAgbWVudVswXS5jaG9pY2VzLnB1c2goXHJcbiAgICAgIHtcclxuICAgICAgICBoYXNBY2Nlc3M6IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgbGFiZWw6IHJlcG9ydC5SZXBvcnROYW1lLFxyXG4gICAgICAgIGVuYWJsZWQ6IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgIHJldHVybiBlbmFibGVkKCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICByZXBvcnRSZWY6IHJlcG9ydFJlZixcclxuICAgICAgICBtaW1lUmVmOiBtaW1lUmVmLFxyXG4gICAgICAgIGZpcmU6IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgIHRoaXMuYWN0aW9uSW52b2tlLnByb2Nlc3NDdXN0b21SZXBvcnQoXHJcbiAgICAgICAgICAgIHRoaXMucmVwb3J0UmVmLFxyXG4gICAgICAgICAgICBnZXRBY3Rpb25SZWZzKCksXHJcbiAgICAgICAgICAgIHRoaXMubWltZVJlZlxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0KHVybDogc3RyaW5nLCBtZXRob2Q6IHN0cmluZywgY2FsbGJhY2s6IChvOiBhbnkpID0+IGFueSwgcGFyYW1zID0gbnVsbCkge1xyXG4gICAgbGV0IG9iaiA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpO1xyXG4gICAgdHJ5IHtcclxuICAgICAgb2JqID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7XHJcbiAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgIGFsZXJ0KFwiWW91ciBicm93c2VyIGRvZXMgbm90IHN1cHBvcnQgQWpheC5cIik7XHJcbiAgICB9XHJcbiAgICBvYmoub25yZWFkeXN0YXRlY2hhbmdlID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICBpZiAob2JqLnJlYWR5U3RhdGUgPT0gNCkge1xyXG4gICAgICAgIGNhbGxiYWNrKG9iaik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIG9iai5vcGVuKG1ldGhvZCwgdXJsLCB0cnVlKTtcclxuICAgIG9iai5zZW5kKHBhcmFtcyk7XHJcbiAgICByZXR1cm4gb2JqO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXR1cE1lbnUocmVwb3J0OiBhbnksIG1lbnU6IGFueSwgZ2V0QWN0aW9uUmVmczogYW55LCBlbmFibGVkOiAoKSA9PiB7fSk6IE9ic2VydmFibGU8YW55PiAge1xyXG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKG9icyA9PiB7XHJcbiAgICAgICAgdGhpcy5kYXRhQ29udGV4dC5lbnRpdHlBY2Nlc3MoKS5zZWFyY2godGhpcy5tb2RlbFR5cGVMb29rdXAuZ2V0VHlwZSgnVHJ1RGJDbG91ZEZpbGUnKSwgKHF1ZXJ5OiBhbnkpID0+IHtcclxuICAgICAgICAgIHZhciBwcmVkaWNhdGUgPSBuZXcgYnJlZXplLlByZWRpY2F0ZSgnVHJ1RGJDbG91ZEZpbGVSZWYnLCBicmVlemUuRmlsdGVyUXVlcnlPcC5FcXVhbHMsIHJlcG9ydC5SZXBvcnRUcnVEYkNsb3VkRmlsZVJlZilcclxuICAgICAgICAgIHJldHVybiBxdWVyeS53aGVyZShwcmVkaWNhdGUpO1xyXG4gICAgICAgIH0sIG51bGwsIGZhbHNlKS5zdWJzY3JpYmUoKGNsb3VkRmlsZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKGNsb3VkRmlsZXMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIC8vdGhlcmUgaXMgYSBjbG91ZCBmaWxlIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHJlcG9ydFxyXG4gICAgICAgICAgICBpZiAoY2xvdWRGaWxlc1swXS5GaWxlbmFtZS5lbmRzV2l0aChcIi5tcnRcIikpIHtcclxuICAgICAgICAgICAgICAvL3RoaXMgaXMgYSBzdGltdWxzb2Z0IHJlcG9ydCwgY2hlY2sgaWYgbGljZW5zZSBmaWxlIGV4aXN0c1xyXG5cclxuICAgICAgICAgICAgICB0aGlzLmRhdGFDb250ZXh0LmVudGl0eUFjY2VzcygpLnNlYXJjaCh0aGlzLm1vZGVsVHlwZUxvb2t1cC5nZXRUeXBlKCdUcnVEYkNvbmZpZycpLCAocXVlcnk6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdmFyIHByZWRpY2F0ZSA9IG5ldyBicmVlemUuUHJlZGljYXRlKCdLZXknLCBicmVlemUuRmlsdGVyUXVlcnlPcC5FcXVhbHMsICdTdGltdWxzb2Z0TGljZW5zZVBhdGgnKTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBxdWVyeS53aGVyZShwcmVkaWNhdGUpO1xyXG4gICAgICAgICAgICAgIH0sIG51bGwsIGZhbHNlKS5zdWJzY3JpYmUoKGNvbmZpZzogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoIWNvbmZpZy5sZW5ndGggfHwgIWNvbmZpZ1swXS5WYWx1ZSkge1xyXG4gICAgICAgICAgICAgICAgICAvL2RvIG5vdGhpbmcsIG5vIG1lbnUgb3B0aW9uIHdpbGwgYmUgcHVzaGVkIGludG8gdGhlIGRvbSBzaW5jZVxyXG4gICAgICAgICAgICAgICAgICAvL3dlIGNvdWxkbid0IGZpbmQgdGhlIHJlcXVpcmVkIGxpY2Vuc2UgcGF0aCBpbmZvIGluIHRoZSBjb25maWdcclxuICAgICAgICAgICAgICAgICAgb2JzLm5leHQobWVudSk7XHJcbiAgICAgICAgICAgICAgICAgIG9icy5jb21wbGV0ZSgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgIC8vdmFyIHBhdGggPSBjb25maWdbMF0uVmFsdWUucmVwbGFjZShcIn5cIiwgXCJcIik7XHJcbiAgICAgICAgICAgICAgICAgIC8vdGhpcy5nZXQocGF0aCwgJ2dldCcsIChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgLy8gIGlmIChkYXRhLmxlbmd0aCkge1xyXG5cclxuICAgICAgICAgICAgICAgICAgLy8gIH1cclxuICAgICAgICAgICAgICAgICAgLy99KTtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5zZXR1cE1lbnVJbXBsKHJlcG9ydCwgbWVudSwgZ2V0QWN0aW9uUmVmcywgZW5hYmxlZCk7XHJcbiAgICAgICAgICAgICAgICAgIG9icy5uZXh0KG1lbnUpO1xyXG4gICAgICAgICAgICAgICAgICBvYnMuY29tcGxldGUoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAvL3RoZXJlIGlzIGEgY2xvdWQgZmlsZSBhc3NvY2lhdGVkIHdpdGggdGhpcyByZXBvcnQsIGJ1dCBpdCBpc24ndCBhbiBtcnQgcmVwb3J0IHB1c2ggbWVudSBvcHRpb25cclxuICAgICAgICAgICAgICAvL3NpbmNlIHRoaXMgYSBkaWZmZXJlbnQgdHlwZSBvZiByZXBvcnQgKHdvcmQsIGV4Y2VsKVxyXG4gICAgICAgICAgICAgIHRoaXMuc2V0dXBNZW51SW1wbChyZXBvcnQsIG1lbnUsIGdldEFjdGlvblJlZnMsIGVuYWJsZWQpO1xyXG4gICAgICAgICAgICAgIG9icy5uZXh0KG1lbnUpO1xyXG4gICAgICAgICAgICAgIG9icy5jb21wbGV0ZSgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgLy9ubyBjbG91ZCBmaWxlLCBzbyBubyBuZWVkIHRvIGNoZWNrIGZvciBsaWNlbnNlLCBwdXNoIG1lbnUgb3B0aW9uXHJcbiAgICAgICAgICAgIC8vc2luY2UgdGhpcyBjb3VsZCBiZSBhIG5vbiBtcnQgcmVwb3J0ICh3b3JkLCBleGNlbClcclxuICAgICAgICAgICAgdGhpcy5zZXR1cE1lbnVJbXBsKHJlcG9ydCwgbWVudSwgZ2V0QWN0aW9uUmVmcywgZW5hYmxlZCk7XHJcbiAgICAgICAgICAgIG9icy5uZXh0KG1lbnUpO1xyXG4gICAgICAgICAgICBvYnMuY29tcGxldGUoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcXVlcnlSZXBvcnRzID0gKHRhYmxlTmFtZTogc3RyaW5nLCBtZW51OiBhbnksIGdldEFjdGlvblJlZnM6IHN0cmluZywgZW5hYmxlZDogKCkgPT4ge30pOiBPYnNlcnZhYmxlPGFueT4gPT4ge1xyXG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKG9icyA9PiB7XHJcbiAgICAgIHRoaXMuYXBwRW52aXJvbm1lbnQuZ2xvYmFsRGF0YUNvbnRleHQ/LmVudGl0eUFjY2VzcygpLnNlYXJjaENhY2hlT25seSh0aGlzLm1vZGVsVHlwZUxvb2t1cC5nZXRUeXBlKCdUcnVEYlJlcG9ydCcpLCAocXVlcnk6IGFueSkgPT4ge1xyXG4gICAgICAgIHZhciBwcmVkaWNhdGUgPSBuZXcgYnJlZXplLlByZWRpY2F0ZSgnT3duZXJUcnVEYlVzZXJSZWYnLCBicmVlemUuRmlsdGVyUXVlcnlPcC5FcXVhbHMsIHRoaXMudXNlci5hY3RpdmVVc2VyUmVmKVxyXG4gICAgICAgICAgLm9yKCdPd25lclRydURiVXNlclJlZicsIGJyZWV6ZS5GaWx0ZXJRdWVyeU9wLkVxdWFscywgbnVsbClcclxuICAgICAgICAgIC5vcignUHVibGljJywgYnJlZXplLkZpbHRlclF1ZXJ5T3AuRXF1YWxzLCB0cnVlKVxyXG4gICAgICAgICAgLmFuZCgnVGFibGVOYW1lJywgYnJlZXplLkZpbHRlclF1ZXJ5T3AuRXF1YWxzLCB0YWJsZU5hbWUpO1xyXG4gICAgICAgIHJldHVybiBxdWVyeS53aGVyZShwcmVkaWNhdGUpO1xyXG4gICAgICB9KS5zdWJzY3JpYmUoKHJlcG9ydHMpID0+IHtcclxuICAgICAgICBpZiAocmVwb3J0cy5sZW5ndGgpIHtcclxuICAgICAgICAgIGxldCBvYnNMaXN0ID0gW107XHJcbiAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlcG9ydHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgb2JzTGlzdC5wdXNoKHRoaXMuc2V0dXBNZW51KHJlcG9ydHNbaV0sIG1lbnUsIGdldEFjdGlvblJlZnMsIGVuYWJsZWQpKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGZvcmtKb2luKG9ic0xpc3QpLnN1YnNjcmliZShyZXNwb25zZSA9PiB7XHJcbiAgICAgICAgICAgIG9icy5uZXh0KG1lbnUpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgb2JzLm5leHQobWVudSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH07XHJcbn1cclxuIl19
|
|
140
|
+
}], ctorParameters: () => [{ type: i1.TruDataContext }, { type: i2.TruModelTypeLookup }, { type: i3.TruAppEnvironment }, { type: i4.TruActionInvoke }, { type: i5.TruUser }] });
|
|
141
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LXJlcG9ydC1tYW5hZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJ1LWNvbW1vbi1saWIvc3JjL2xpYi9zZXJ2aWNlcy90cnUtcmVwb3J0LW1hbmFnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSXZDLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7O0FBTzVDLE1BQU0sT0FBTyxnQkFBZ0I7SUFFakI7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUxWLFlBQ1UsV0FBMkIsRUFDM0IsZUFBbUMsRUFDbkMsY0FBaUMsRUFDakMsWUFBNkIsRUFDN0IsSUFBYTtRQUpiLGdCQUFXLEdBQVgsV0FBVyxDQUFnQjtRQUMzQixvQkFBZSxHQUFmLGVBQWUsQ0FBb0I7UUFDbkMsbUJBQWMsR0FBZCxjQUFjLENBQW1CO1FBQ2pDLGlCQUFZLEdBQVosWUFBWSxDQUFpQjtRQUM3QixTQUFJLEdBQUosSUFBSSxDQUFTO0lBQUksQ0FBQztJQUVwQixhQUFhLENBQUMsTUFBVyxFQUFFLElBQVMsRUFBRSxhQUFrQixFQUFFLE9BQWlCO1FBQ2pGLElBQUksU0FBUyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUM7UUFDM0IsSUFBSSxPQUFPLEdBQUcsTUFBTSxDQUFDLDRCQUE0QixDQUFDO1FBQ2xELElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUNsQjtZQUNFLFNBQVMsRUFBRTtnQkFDVCxPQUFPLElBQUksQ0FBQztZQUNkLENBQUM7WUFDRCxLQUFLLEVBQUUsTUFBTSxDQUFDLFVBQVU7WUFDeEIsT0FBTyxFQUFFO2dCQUNQLE9BQU8sT0FBTyxFQUFFLENBQUM7WUFDbkIsQ0FBQztZQUNELFNBQVMs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QUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNqQixDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQzt1R0E3SFMsZ0JBQWdCOzJHQUFoQixnQkFBZ0IsY0FGZixNQUFNOzsyRkFFUCxnQkFBZ0I7a0JBSDVCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBicmVlemUgfSBmcm9tICdicmVlemUtY2xpZW50JztcclxuaW1wb3J0IHsgVHJ1VXNlciB9IGZyb20gJy4vdHJ1LXVzZXInO1xyXG5pbXBvcnQgeyBUcnVEYXRhQ29udGV4dCB9IGZyb20gJy4vdHJ1LWRhdGEtY29udGV4dCc7XHJcbmltcG9ydCB7IFRydU1vZGVsVHlwZUxvb2t1cCB9IGZyb20gJy4vdHJ1LW1vZGVsLXR5cGUtbG9va3VwJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgZm9ya0pvaW4gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgVHJ1QXBwRW52aXJvbm1lbnQgfSBmcm9tICcuL3RydS1hcHAtZW52aXJvbm1lbnQnO1xyXG5pbXBvcnQgeyBUcnVBY3Rpb25JbnZva2UgfSBmcm9tICcuL3RydS1hY3Rpb24taW52b2tlJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcnVSZXBvcnRNYW5hZ2VyIHtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgZGF0YUNvbnRleHQ6IFRydURhdGFDb250ZXh0LFxyXG4gICAgcHJpdmF0ZSBtb2RlbFR5cGVMb29rdXA6IFRydU1vZGVsVHlwZUxvb2t1cCxcclxuICAgIHByaXZhdGUgYXBwRW52aXJvbm1lbnQ6IFRydUFwcEVudmlyb25tZW50LFxyXG4gICAgcHJpdmF0ZSBhY3Rpb25JbnZva2U6IFRydUFjdGlvbkludm9rZSxcclxuICAgIHByaXZhdGUgdXNlcjogVHJ1VXNlcikgeyB9XHJcblxyXG4gIHByaXZhdGUgc2V0dXBNZW51SW1wbChyZXBvcnQ6IGFueSwgbWVudTogYW55LCBnZXRBY3Rpb25SZWZzOiBhbnksIGVuYWJsZWQ6ICgpID0+IHt9KSB7XHJcbiAgICB2YXIgcmVwb3J0UmVmID0gcmVwb3J0LlJlZjtcclxuICAgIHZhciBtaW1lUmVmID0gcmVwb3J0LlJlcG9ydE1pbWVUeXBlU3RkTWltZVR5cGVSZWY7XHJcbiAgICBtZW51WzBdLmNob2ljZXMucHVzaChcclxuICAgICAge1xyXG4gICAgICAgIGhhc0FjY2VzczogZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBsYWJlbDogcmVwb3J0LlJlcG9ydE5hbWUsXHJcbiAgICAgICAgZW5hYmxlZDogZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgcmV0dXJuIGVuYWJsZWQoKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIHJlcG9ydFJlZjogcmVwb3J0UmVmLFxyXG4gICAgICAgIG1pbWVSZWY6IG1pbWVSZWYsXHJcbiAgICAgICAgZmlyZTogKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5hY3Rpb25JbnZva2UucHJvY2Vzc0N1c3RvbVJlcG9ydChcclxuICAgICAgICAgICAgcmVwb3J0UmVmLFxyXG4gICAgICAgICAgICBnZXRBY3Rpb25SZWZzKCksXHJcbiAgICAgICAgICAgIG1pbWVSZWZcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIGdldCh1cmw6IHN0cmluZywgbWV0aG9kOiBzdHJpbmcsIGNhbGxiYWNrOiAobzogYW55KSA9PiBhbnksIHBhcmFtcyA9IG51bGwpIHtcclxuICAgIGxldCBvYmogPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTtcclxuICAgIHRyeSB7XHJcbiAgICAgIG9iaiA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpO1xyXG4gICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICBhbGVydChcIllvdXIgYnJvd3NlciBkb2VzIG5vdCBzdXBwb3J0IEFqYXguXCIpO1xyXG4gICAgfVxyXG4gICAgb2JqLm9ucmVhZHlzdGF0ZWNoYW5nZSA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgaWYgKG9iai5yZWFkeVN0YXRlID09IDQpIHtcclxuICAgICAgICBjYWxsYmFjayhvYmopO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBvYmoub3BlbihtZXRob2QsIHVybCwgdHJ1ZSk7XHJcbiAgICBvYmouc2VuZChwYXJhbXMpO1xyXG4gICAgcmV0dXJuIG9iajtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0dXBNZW51KHJlcG9ydDogYW55LCBtZW51OiBhbnksIGdldEFjdGlvblJlZnM6IGFueSwgZW5hYmxlZDogKCkgPT4ge30pOiBPYnNlcnZhYmxlPGFueT4gIHtcclxuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZShvYnMgPT4ge1xyXG4gICAgICAgIHRoaXMuZGF0YUNvbnRleHQuZW50aXR5QWNjZXNzKCkuc2VhcmNoKHRoaXMubW9kZWxUeXBlTG9va3VwLmdldFR5cGUoJ1RydURiQ2xvdWRGaWxlJyksIChxdWVyeTogYW55KSA9PiB7XHJcbiAgICAgICAgICB2YXIgcHJlZGljYXRlID0gbmV3IGJyZWV6ZS5QcmVkaWNhdGUoJ1RydURiQ2xvdWRGaWxlUmVmJywgYnJlZXplLkZpbHRlclF1ZXJ5T3AuRXF1YWxzLCByZXBvcnQuUmVwb3J0VHJ1RGJDbG91ZEZpbGVSZWYpXHJcbiAgICAgICAgICByZXR1cm4gcXVlcnkud2hlcmUocHJlZGljYXRlKTtcclxuICAgICAgICB9LCBudWxsLCBmYWxzZSkuc3Vic2NyaWJlKChjbG91ZEZpbGVzOiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChjbG91ZEZpbGVzLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAvL3RoZXJlIGlzIGEgY2xvdWQgZmlsZSBhc3NvY2lhdGVkIHdpdGggdGhpcyByZXBvcnRcclxuICAgICAgICAgICAgaWYgKGNsb3VkRmlsZXNbMF0uRmlsZW5hbWUuZW5kc1dpdGgoXCIubXJ0XCIpKSB7XHJcbiAgICAgICAgICAgICAgLy90aGlzIGlzIGEgc3RpbXVsc29mdCByZXBvcnQsIGNoZWNrIGlmIGxpY2Vuc2UgZmlsZSBleGlzdHNcclxuXHJcbiAgICAgICAgICAgICAgdGhpcy5kYXRhQ29udGV4dC5lbnRpdHlBY2Nlc3MoKS5zZWFyY2godGhpcy5tb2RlbFR5cGVMb29rdXAuZ2V0VHlwZSgnVHJ1RGJDb25maWcnKSwgKHF1ZXJ5OiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgIHZhciBwcmVkaWNhdGUgPSBuZXcgYnJlZXplLlByZWRpY2F0ZSgnS2V5JywgYnJlZXplLkZpbHRlclF1ZXJ5T3AuRXF1YWxzLCAnU3RpbXVsc29mdExpY2Vuc2VQYXRoJyk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gcXVlcnkud2hlcmUocHJlZGljYXRlKTtcclxuICAgICAgICAgICAgICB9LCBudWxsLCBmYWxzZSkuc3Vic2NyaWJlKChjb25maWc6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKCFjb25maWcubGVuZ3RoIHx8ICFjb25maWdbMF0uVmFsdWUpIHtcclxuICAgICAgICAgICAgICAgICAgLy9kbyBub3RoaW5nLCBubyBtZW51IG9wdGlvbiB3aWxsIGJlIHB1c2hlZCBpbnRvIHRoZSBkb20gc2luY2VcclxuICAgICAgICAgICAgICAgICAgLy93ZSBjb3VsZG4ndCBmaW5kIHRoZSByZXF1aXJlZCBsaWNlbnNlIHBhdGggaW5mbyBpbiB0aGUgY29uZmlnXHJcbiAgICAgICAgICAgICAgICAgIG9icy5uZXh0KG1lbnUpO1xyXG4gICAgICAgICAgICAgICAgICBvYnMuY29tcGxldGUoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAvL3ZhciBwYXRoID0gY29uZmlnWzBdLlZhbHVlLnJlcGxhY2UoXCJ+XCIsIFwiXCIpO1xyXG4gICAgICAgICAgICAgICAgICAvL3RoaXMuZ2V0KHBhdGgsICdnZXQnLCAoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIC8vICBpZiAoZGF0YS5sZW5ndGgpIHtcclxuXHJcbiAgICAgICAgICAgICAgICAgIC8vICB9XHJcbiAgICAgICAgICAgICAgICAgIC8vfSk7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuc2V0dXBNZW51SW1wbChyZXBvcnQsIG1lbnUsIGdldEFjdGlvblJlZnMsIGVuYWJsZWQpO1xyXG4gICAgICAgICAgICAgICAgICBvYnMubmV4dChtZW51KTtcclxuICAgICAgICAgICAgICAgICAgb2JzLmNvbXBsZXRlKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgLy90aGVyZSBpcyBhIGNsb3VkIGZpbGUgYXNzb2NpYXRlZCB3aXRoIHRoaXMgcmVwb3J0LCBidXQgaXQgaXNuJ3QgYW4gbXJ0IHJlcG9ydCBwdXNoIG1lbnUgb3B0aW9uXHJcbiAgICAgICAgICAgICAgLy9zaW5jZSB0aGlzIGEgZGlmZmVyZW50IHR5cGUgb2YgcmVwb3J0ICh3b3JkLCBleGNlbClcclxuICAgICAgICAgICAgICB0aGlzLnNldHVwTWVudUltcGwocmVwb3J0LCBtZW51LCBnZXRBY3Rpb25SZWZzLCBlbmFibGVkKTtcclxuICAgICAgICAgICAgICBvYnMubmV4dChtZW51KTtcclxuICAgICAgICAgICAgICBvYnMuY29tcGxldGUoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIC8vbm8gY2xvdWQgZmlsZSwgc28gbm8gbmVlZCB0byBjaGVjayBmb3IgbGljZW5zZSwgcHVzaCBtZW51IG9wdGlvblxyXG4gICAgICAgICAgICAvL3NpbmNlIHRoaXMgY291bGQgYmUgYSBub24gbXJ0IHJlcG9ydCAod29yZCwgZXhjZWwpXHJcbiAgICAgICAgICAgIHRoaXMuc2V0dXBNZW51SW1wbChyZXBvcnQsIG1lbnUsIGdldEFjdGlvblJlZnMsIGVuYWJsZWQpO1xyXG4gICAgICAgICAgICBvYnMubmV4dChtZW51KTtcclxuICAgICAgICAgICAgb2JzLmNvbXBsZXRlKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHF1ZXJ5UmVwb3J0cyA9ICh0YWJsZU5hbWU6IHN0cmluZywgbWVudTogYW55LCBnZXRBY3Rpb25SZWZzOiAoKSA9PiBzdHJpbmcsIGVuYWJsZWQ6ICgpID0+IHt9KTogT2JzZXJ2YWJsZTxhbnk+ID0+IHtcclxuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZShvYnMgPT4ge1xyXG4gICAgICB0aGlzLmFwcEVudmlyb25tZW50Lmdsb2JhbERhdGFDb250ZXh0Py5lbnRpdHlBY2Nlc3MoKS5zZWFyY2hDYWNoZU9ubHkodGhpcy5tb2RlbFR5cGVMb29rdXAuZ2V0VHlwZSgnVHJ1RGJSZXBvcnQnKSwgKHF1ZXJ5OiBhbnkpID0+IHtcclxuICAgICAgICB2YXIgcHJlZGljYXRlID0gbmV3IGJyZWV6ZS5QcmVkaWNhdGUoJ093bmVyVHJ1RGJVc2VyUmVmJywgYnJlZXplLkZpbHRlclF1ZXJ5T3AuRXF1YWxzLCB0aGlzLnVzZXIuYWN0aXZlVXNlclJlZilcclxuICAgICAgICAgIC5vcignT3duZXJUcnVEYlVzZXJSZWYnLCBicmVlemUuRmlsdGVyUXVlcnlPcC5FcXVhbHMsIG51bGwpXHJcbiAgICAgICAgICAub3IoJ1B1YmxpYycsIGJyZWV6ZS5GaWx0ZXJRdWVyeU9wLkVxdWFscywgdHJ1ZSlcclxuICAgICAgICAgIC5hbmQoJ1RhYmxlTmFtZScsIGJyZWV6ZS5GaWx0ZXJRdWVyeU9wLkVxdWFscywgdGFibGVOYW1lKTtcclxuICAgICAgICByZXR1cm4gcXVlcnkud2hlcmUocHJlZGljYXRlKTtcclxuICAgICAgfSkuc3Vic2NyaWJlKChyZXBvcnRzKSA9PiB7XHJcbiAgICAgICAgaWYgKHJlcG9ydHMubGVuZ3RoKSB7XHJcbiAgICAgICAgICBsZXQgb2JzTGlzdCA9IFtdO1xyXG4gICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZXBvcnRzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIG9ic0xpc3QucHVzaCh0aGlzLnNldHVwTWVudShyZXBvcnRzW2ldLCBtZW51LCBnZXRBY3Rpb25SZWZzLCBlbmFibGVkKSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBmb3JrSm9pbihvYnNMaXN0KS5zdWJzY3JpYmUocmVzcG9uc2UgPT4ge1xyXG4gICAgICAgICAgICBvYnMubmV4dChtZW51KTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIG9icy5uZXh0KG1lbnUpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9O1xyXG59XHJcbiJdfQ==
|