tango-app-ui-manage-tickets 3.7.0-beta.52 → 3.7.0-beta.53
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/ticket-filter-panel/ticket-filter-panel.component.mjs +46 -5
- package/esm2022/lib/components/ticket-footfall-new/ticket-footfall-new.component.mjs +24 -42
- package/esm2022/lib/services/ticket.service.mjs +37 -32
- package/fesm2022/tango-app-ui-manage-tickets.mjs +104 -76
- package/fesm2022/tango-app-ui-manage-tickets.mjs.map +1 -1
- package/lib/components/ticket-filter-panel/ticket-filter-panel.component.d.ts +8 -1
- package/lib/components/ticket-footfall-new/ticket-footfall-new.component.d.ts +4 -3
- package/lib/services/ticket.service.d.ts +8 -1
- package/package.json +1 -1
|
@@ -121,39 +121,44 @@ export class TicketService {
|
|
|
121
121
|
getTicketListOldApi(client, fromDate, toDate, searchvalue, limit, offset, isExport, sortBy, sortOrder) {
|
|
122
122
|
return this.http.get(`${this.footfallDirapiUrl}/ticket-list?clientId=${client}&fromDate=${fromDate}&toDate=${toDate}&searchValue=${searchvalue}&limit=${limit}&offset=${offset}&isExport=${isExport}&sortBy=${sortBy}&sortOrder=${sortOrder}`);
|
|
123
123
|
}
|
|
124
|
-
getTicketListApi(client, fromDate, toDate, searchvalue, limit, offset, isExport, sortBy, sortOrder, tangoType, permissionType,
|
|
125
|
-
let
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
// 🔥 always send permissionType key (even if null/undefined)
|
|
124
|
+
getTicketListApi(client, fromDate, toDate, searchvalue, limit, offset, isExport, sortBy, sortOrder, tangoType, permissionType, filters) {
|
|
125
|
+
let url = `${this.footfallDirapiUrl}/ticket-list?` +
|
|
126
|
+
`clientId=${client}` +
|
|
127
|
+
`&fromDate=${fromDate}` +
|
|
128
|
+
`&toDate=${toDate}` +
|
|
129
|
+
`&searchValue=${searchvalue}` +
|
|
130
|
+
`&limit=${limit}` +
|
|
131
|
+
`&offset=${offset}` +
|
|
132
|
+
`&isExport=${isExport}` +
|
|
133
|
+
`&sortBy=${sortBy}` +
|
|
134
|
+
`&sortOrder=${sortOrder}` +
|
|
135
|
+
`&tangoType=${tangoType}`;
|
|
137
136
|
if (permissionType) {
|
|
138
|
-
|
|
137
|
+
url += `&permissionType=${permissionType}`;
|
|
138
|
+
}
|
|
139
|
+
if (filters) {
|
|
140
|
+
// array params – send as comma-separated
|
|
141
|
+
if (filters.filterByStatus?.length) {
|
|
142
|
+
url += `&filterByStatus=${encodeURIComponent(filters.filterByStatus.join(','))}`;
|
|
143
|
+
}
|
|
144
|
+
if (filters.filterByReviewedBy?.length) {
|
|
145
|
+
url += `&filterByReviewedBy=${encodeURIComponent(filters.filterByReviewedBy.join(','))}`;
|
|
146
|
+
}
|
|
147
|
+
if (filters.fileterByApprovedBy?.length) {
|
|
148
|
+
url += `&fileterByApprovedBy=${encodeURIComponent(filters.fileterByApprovedBy.join(','))}`;
|
|
149
|
+
}
|
|
150
|
+
// string params – JSON stringified accuracy
|
|
151
|
+
if (filters.filterByReviewer) {
|
|
152
|
+
url += `&filterByReviewer=${encodeURIComponent(filters.filterByReviewer)}`;
|
|
153
|
+
}
|
|
154
|
+
if (filters.filterByApprover) {
|
|
155
|
+
url += `&filterByApprover=${encodeURIComponent(filters.filterByApprover)}`;
|
|
156
|
+
}
|
|
157
|
+
if (filters.filterByTango) {
|
|
158
|
+
url += `&filterByTango=${encodeURIComponent(filters.filterByTango)}`;
|
|
159
|
+
}
|
|
139
160
|
}
|
|
140
|
-
|
|
141
|
-
const setArray = (key, arr) => {
|
|
142
|
-
const value = arr && arr.length ? arr.join(',') : '';
|
|
143
|
-
params = params.set(key, value); // key always exists
|
|
144
|
-
};
|
|
145
|
-
const setScalar = (key, value) => {
|
|
146
|
-
params = params.set(key, value != null ? String(value) : '');
|
|
147
|
-
};
|
|
148
|
-
// arrays
|
|
149
|
-
setArray('filterByStatus', filterByStatus);
|
|
150
|
-
setArray('filterByReviewedBy', filterByReviewedBy);
|
|
151
|
-
setArray('fileterByApprovedBy', fileterByApprovedBy);
|
|
152
|
-
// scalar filters
|
|
153
|
-
setScalar('filterByReviewer', filterByReviewer);
|
|
154
|
-
setScalar('filterByApprover', filterByApprover);
|
|
155
|
-
setScalar('filterByTango', filterByTango);
|
|
156
|
-
return this.http.get(`${this.footfallDirapiUrl}/ticket-list`, { params });
|
|
161
|
+
return this.http.get(url);
|
|
157
162
|
}
|
|
158
163
|
getTicketListExportOldApi(client, fromDate, toDate, searchvalue, limit, offset, isExport, sortBy, sortOrder) {
|
|
159
164
|
return this.http.get(`${this.footfallDirapiUrl}/ticket-list?clientId=${client}&fromDate=${fromDate}&toDate=${toDate}&searchValue=${searchvalue}&limit=${limit}&offset=${offset}&isExport=${isExport}&sortBy=${sortBy}&sortOrder=${sortOrder}`, { responseType: "arraybuffer" });
|
|
@@ -292,4 +297,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
292
297
|
providedIn: "root",
|
|
293
298
|
}]
|
|
294
299
|
}], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.GlobalStateService }] });
|
|
295
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlja2V0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1tYW5hZ2UtdGlja2V0cy9zcmMvbGliL3NlcnZpY2VzL3RpY2tldC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQVksTUFBTSxlQUFlLENBQUM7QUFFckQsT0FBTyxFQUNMLGVBQWUsR0FNaEIsTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7QUFJbEQsTUFBTSxPQUFPLGFBQWE7SUFZSjtJQUEwQjtJQVg5QyxVQUFVLENBQU07SUFDaEIsYUFBYSxDQUFNO0lBQ25CLFdBQVcsQ0FBTTtJQUNqQixpQkFBaUIsQ0FBTTtJQUN2QixlQUFlLENBQU07SUFDckIsaUJBQWlCLENBQU07SUFDdkIsV0FBVyxDQUFNO0lBQ2pCLGFBQWEsQ0FBTTtJQUNuQixXQUFXLENBQU07SUFDakIsWUFBWSxDQUFLO0lBQ2pCLGVBQWUsR0FBRyxJQUFJLGVBQWUsQ0FBTSxJQUFJLENBQUMsQ0FBQztJQUNqRCxZQUFvQixJQUFnQixFQUFVLEVBQXNCO1FBQWhELFNBQUksR0FBSixJQUFJLENBQVk7UUFBVSxPQUFFLEdBQUYsRUFBRSxDQUFvQjtRQUNsRSxJQUFJLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUNwQyxJQUFJLEdBQUcsRUFBRTtnQkFDUCxJQUFJLENBQUMsVUFBVSxHQUFHLEdBQUcsQ0FBQyxVQUFVLENBQUM7Z0JBQ2pDLElBQUksQ0FBQyxhQUFhLEdBQUcsR0FBRyxDQUFDLGFBQWEsQ0FBQztnQkFDdkMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQztnQkFDL0MsSUFBSSxDQUFDLFdBQVcsR0FBRyxHQUFHLENBQUMsV0FBVyxDQUFD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R0FqY1UsYUFBYTs0R0FBYixhQUFhLGNBRlosTUFBTTs7NEZBRVAsYUFBYTtrQkFIekIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XHJcbmltcG9ydCB7IEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgR2xvYmFsU3RhdGVTZXJ2aWNlIH0gZnJvbSBcInRhbmdvLWFwcC11aS1nbG9iYWxcIjtcclxuaW1wb3J0IHtcclxuICBCZWhhdmlvclN1YmplY3QsXHJcbiAgT2JzZXJ2YWJsZSxcclxuICBjYXRjaEVycm9yLFxyXG4gIG1hcCxcclxuICBvZixcclxuICB0aHJvd0Vycm9yLFxyXG59IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IEh0dHBQYXJhbXMgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46IFwicm9vdFwiLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGlja2V0U2VydmljZSB7XHJcbiAgdXNlckFwaVVybDogYW55O1xyXG4gIHRpY2tldHNBcGlVcmw6IGFueTtcclxuICBhdWRpdEFwaVVybDogYW55O1xyXG4gIGF1ZGl0bWV0cmljQXBpVXJsOiBhbnk7XHJcbiAgem9uZWF1ZGl0QXBpVXJsOiBhbnk7XHJcbiAgZm9vdGZhbGxEaXJhcGlVcmw6IGFueTtcclxuICBmb290ZmFsbENETjogYW55O1xyXG4gIHRyYWZmaWNBcGlVcmw6IGFueTtcclxuICByZXZvcEFwaVVybDogYW55O1xyXG4gIGNsaWVudEFwaVVybDphbnk7XHJcbiAgZHJvcERvd25UcmlnZ2VyID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnk+KG51bGwpO1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogSHR0cENsaWVudCwgcHJpdmF0ZSBnczogR2xvYmFsU3RhdGVTZXJ2aWNlKSB7XHJcbiAgICB0aGlzLmdzLmVudmlyb25tZW50LnN1YnNjcmliZSgoZW52KSA9PiB7XHJcbiAgICAgIGlmIChlbnYpIHtcclxuICAgICAgICB0aGlzLnVzZXJBcGlVcmwgPSBlbnYudXNlckFwaVVybDtcclxuICAgICAgICB0aGlzLnRpY2tldHNBcGlVcmwgPSBlbnYudGlja2V0c0FwaVVybDtcclxuICAgICAgICB0aGlzLmF1ZGl0bWV0cmljQXBpVXJsID0gZW52LmF1ZGl0bWV0cmljQXBpVXJsO1xyXG4gICAgICAgIHRoaXMuYXVkaXRBcGlVcmwgPSBlbnYuYXVkaXRBcGlVcmw7XHJcbiAgICAgICAgdGhpcy56b25lYXVkaXRBcGlVcmwgPSBlbnYuem9uZWF1ZGl0QXBpVXJsO1xyXG4gICAgICAgIHRoaXMuY2xpZW50QXBpVXJsID0gZW52LmNsaWVudEFwaVVybDtcclxuICAgICAgICB0aGlzLmZvb3RmYWxsRGlyYXBpVXJsID0gZW52LmZvb3RmYWxsRGlyYXBpVXJsO1xyXG4gICAgICAgIHRoaXMuZm9vdGZhbGxDRE4gPSBlbnYuZm9vdGZhbGxDRE47XHJcbiAgICAgICAgdGhpcy50cmFmZmljQXBpVXJsID0gZW52LnRyYWZmaWNBcGlVcmw7XHJcbiAgICAgICAgdGhpcy5yZXZvcEFwaVVybCA9IGVudi5yZXZvcEFwaVVybDtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBnZXRVc2VyTGlzdChwYXJhbXM6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihgJHt0aGlzLnVzZXJBcGlVcmx9L2dldC1saXN0YCwgcGFyYW1zKTtcclxuICB9XHJcblxyXG4gIGV4cG9ydEluc3RhbGxhdGlvbkxpc3QoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMudGlja2V0c0FwaVVybH0vaW5mcmEvaW5zdGFsbGF0aW9uVGFibGVgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgICB7IHJlc3BvbnNlVHlwZTogXCJhcnJheWJ1ZmZlclwiIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBleHBvcnRJbmZyYUxpc3QoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy50aWNrZXRzQXBpVXJsfS9pbmZyYS9pbmZyYVRhYmxlYCwgZGF0YSwge1xyXG4gICAgICByZXNwb25zZVR5cGU6IFwiYXJyYXlidWZmZXJcIixcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZXhwb3J0TWF0TGlzdChkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRpY2tldHNBcGlVcmx9L2luZnJhL21hdFRhYmxlYCwgZGF0YSwge1xyXG4gICAgICByZXNwb25zZVR5cGU6IFwiYXJyYXlidWZmZXJcIixcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0U290cmVzTGlzdChkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KGAke3RoaXMudGlja2V0c0FwaVVybH0vaW5mcmEvc3RvcmVGaWx0ZXJgLCBkYXRhKTtcclxuICB9XHJcblxyXG4gIGdldEluc3RhbGxhdGlvbkxpc3QoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihcclxuICAgICAgYCR7dGhpcy50aWNrZXRzQXBpVXJsfS9pbmZyYS9pbnN0YWxsYXRpb25UYWJsZWAsXHJcbiAgICAgIGRhdGFcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRJbmZyYUxpc3QoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihgJHt0aGlzLnRpY2tldHNBcGlVcmx9L2luZnJhL2luZnJhVGFibGVgLCBkYXRhKTtcclxuICB9XHJcblxyXG4gIGdldEFzc2lnblRpY2tldChkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KFxyXG4gICAgICBgJHt0aGlzLnRpY2tldHNBcGlVcmx9L2luZnJhL2Fzc2lnblRpY2tldGAsXHJcbiAgICAgIGRhdGFcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRNYXRMaXN0KGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7dGhpcy50aWNrZXRzQXBpVXJsfS9pbmZyYS9tYXRUYWJsZWAsIGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlVGlja2V0SXNzdWUoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihcclxuICAgICAgYCR7dGhpcy50aWNrZXRzQXBpVXJsfS9lbXBsb3llZVRyYW5pbmcvdXBkYXRlY29tbWVudGAsXHJcbiAgICAgIGRhdGFcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRVc2VyQWN0aXZlTGlzdChwYXJhbXM6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihgJHt0aGlzLnVzZXJBcGlVcmx9L2xpc3RgLCBwYXJhbXMpO1xyXG4gIH1cclxuXHJcbiAgZ2V0QWxsQ291bnRzKGRhdGE6YW55KXtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KGAke3RoaXMudGlja2V0c0FwaVVybH0vaW5mcmEvYWxsQ291bnRzYCwgZGF0YSlcclxuICB9XHJcbiAgZ2V0c3RvcmVNZXRyaWNzKGRhdGE6YW55KXtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmF1ZGl0QXBpVXJsfS9tZXRyaWNzL3N0b3JlLW1ldHJpY3NgLGRhdGEpXHJcbiAgfVxyXG4gIGdldHN0b3JlTWV0cmljc0V4cG9ydChkYXRhOmFueSl7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5hdWRpdEFwaVVybH0vbWV0cmljcy9zdG9yZS1tZXRyaWNzYCxkYXRhLHtyZXNwb25zZVR5cGU6ICdhcnJheWJ1ZmZlcid9KVxyXG4gIH1cclxuICBnZXRjbGllbnRMaXN0KCl7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLmF1ZGl0QXBpVXJsfS9jbGllbnRzYClcclxuICB9XHJcbiAgZ2V0dXNlckxpc3QoKXtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuYXVkaXRBcGlVcmx9L3RhbmdvLXVzZXJzYClcclxuICB9XHJcbiAgYXVkaXRyZXRyaWdnZXIoZGF0YTphbnkpe1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuYXVkaXRBcGlVcmx9L21ldHJpY3MvcmUtdHJpZ2dlcmAsZGF0YSlcclxuIH1cclxuIGdldGZvb3RmYWxsY291bnQoZGF0YTphbnkpe1xyXG4gICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMucmV2b3BBcGlVcmx9L3N0b3JlLXByb2Nlc3NlZC1kYXRhP3N0b3JlSWQ9JHtkYXRhLnN0b3JlSWR9JmZyb21EYXRlPSR7ZGF0YS5EYXRlfSZ0b0RhdGU9JHtkYXRhLkRhdGV9YClcclxuICBcclxuIH1cclxuIGdldHN0b3JlTGlzdChkYXRhOmFueSl7XHJcbiAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuYXVkaXRBcGlVcmx9L2F1ZGl0LXN0b3Jlc2AsZGF0YSlcclxuIH1cclxuIGNoZWNrVGlja2V0RXhpc3RzKGRhdGE6YW55KXtcclxuICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5mb290ZmFsbERpcmFwaVVybH0vY2hlY2tUaWNrZXRFeGlzdHNgLGRhdGEpXHJcbiB9XHJcbiBtZXJnZXRpY2tldChkYXRhOmFueSl7XHJcbiAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuZm9vdGZhbGxEaXJhcGlVcmx9L21lcmdldGlja2V0YCxkYXRhKVxyXG4gfVxyXG4gIGdldERhdGFNaXNtYXRoTGlzdChkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KFxyXG4gICAgICBgJHt0aGlzLnRpY2tldHNBcGlVcmx9L2luZnJhL2RhdGFNaXNtYXRjaFRhYmxlYCxcclxuICAgICAgZGF0YVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGV4cG9ydERhdGFNaXNtYXRjaExpc3QoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMudGlja2V0c0FwaVVybH0vaW5mcmEvZGF0YU1pc21hdGNoVGFibGVgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgICB7IHJlc3BvbnNlVHlwZTogXCJhcnJheWJ1ZmZlclwiIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuXHJcbiAgZ2V0QXVkaXRJbWFnZXMoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChcclxuICAgICAgYCR7dGhpcy5hdWRpdEFwaVVybH0vYXVkaXQtaW1hZ2VzP2ZpbGVEYXRlPSR7ZGF0YT8uZmlsZURhdGV9JnN0b3JlSWQ9JHtkYXRhPy5zdG9yZUlkfSZpbWFnZVR5cGU9JHtkYXRhPy5pbWFnZVR5cGV9JmV4cG9ydD0ke2RhdGE/LmV4cG9ydH0mem9uZU5hbWU9JHtkYXRhPy56b25lTmFtZX0mbW9kdWxlVHlwZT0ke2RhdGE/Lm1vZHVsZVR5cGV9YFxyXG4gICAgKTtcclxuICB9XHJcbiAgRXhwb3J0QXVkaXRJbWFnZXNhc3hsc3goZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChcclxuICAgICAgYCR7dGhpcy5hdWRpdEFwaVVybH0vYXVkaXQtaW1hZ2VzP2ZpbGVEYXRlPSR7ZGF0YT8uZmlsZURhdGV9JnN0b3JlSWQ9JHtkYXRhPy5zdG9yZUlkfSZpbWFnZVR5cGU9JHtkYXRhPy5pbWFnZVR5cGV9JmV4cG9ydD0ke2RhdGE/LmV4cG9ydH0mem9uZU5hbWU9JHtkYXRhPy56b25lTmFtZX0mbW9kdWxlVHlwZT0ke2RhdGE/Lm1vZHVsZVR5cGV9YCxcclxuICAgICAgeyByZXNwb25zZVR5cGU6IFwiYXJyYXlidWZmZXJcIiB9XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0VGlja2V0U3VtbWFyeUFwaShcclxuICAgIGNsaWVudDogYW55LFxyXG4gICAgZnJvbURhdGU6IGFueSxcclxuICAgIHRvRGF0ZTogYW55LFxyXG4gICAgdGFuZ29UeXBlOmFueSxcclxuICApOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoXHJcbiAgICAgIGAke3RoaXMuZm9vdGZhbGxEaXJhcGlVcmx9L3RpY2tldC1zdW1tYXJ5P2NsaWVudElkPSR7Y2xpZW50fSZmcm9tRGF0ZT0ke2Zyb21EYXRlfSZ0b0RhdGU9JHt0b0RhdGV9JnRhbmdvVHlwZT0ke3RhbmdvVHlwZX1gXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0VGlja2V0TGlzdE9sZEFwaShcclxuICAgIGNsaWVudDogYW55LFxyXG4gICAgZnJvbURhdGU6IGFueSxcclxuICAgIHRvRGF0ZTogYW55LFxyXG4gICAgc2VhcmNodmFsdWU6IGFueSxcclxuICAgIGxpbWl0OiBhbnksXHJcbiAgICBvZmZzZXQ6IGFueSxcclxuICAgIGlzRXhwb3J0OiBhbnksXHJcbiAgICBzb3J0Qnk6IGFueSxcclxuICAgIHNvcnRPcmRlcjogYW55XHJcbiAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KFxyXG4gICAgICBgJHt0aGlzLmZvb3RmYWxsRGlyYXBpVXJsfS90aWNrZXQtbGlzdD9jbGllbnRJZD0ke2NsaWVudH0mZnJvbURhdGU9JHtmcm9tRGF0ZX0mdG9EYXRlPSR7dG9EYXRlfSZzZWFyY2hWYWx1ZT0ke3NlYXJjaHZhbHVlfSZsaW1pdD0ke2xpbWl0fSZvZmZzZXQ9JHtvZmZzZXR9JmlzRXhwb3J0PSR7aXNFeHBvcnR9JnNvcnRCeT0ke3NvcnRCeX0mc29ydE9yZGVyPSR7c29ydE9yZGVyfWBcclxuICAgICk7XHJcbiAgfVxyXG5cclxuZ2V0VGlja2V0TGlzdEFwaShcclxuICBjbGllbnQ6IGFueSxcclxuICBmcm9tRGF0ZTogYW55LFxyXG4gIHRvRGF0ZTogYW55LFxyXG4gIHNlYXJjaHZhbHVlOiBhbnksXHJcbiAgbGltaXQ6IGFueSxcclxuICBvZmZzZXQ6IGFueSxcclxuICBpc0V4cG9ydDogYW55LFxyXG4gIHNvcnRCeTogYW55LFxyXG4gIHNvcnRPcmRlcjogYW55LFxyXG4gIHRhbmdvVHlwZTogYW55LFxyXG4gIHBlcm1pc3Npb25UeXBlPzogYW55IHwgbnVsbCxcclxuXHJcbiAgZmlsdGVyQnlTdGF0dXM6IGFueVtdID0gW10sXHJcbiAgZmlsdGVyQnlSZXZpZXdlcjogYW55IHwgbnVsbCA9IG51bGwsXHJcbiAgZmlsdGVyQnlBcHByb3ZlcjogYW55IHwgbnVsbCA9IG51bGwsXHJcbiAgZmlsdGVyQnlUYW5nbzogYW55IHwgbnVsbCA9IG51bGwsXHJcbiAgZmlsdGVyQnlSZXZpZXdlZEJ5OiBhbnlbXSA9IFtdLFxyXG4gIGZpbGV0ZXJCeUFwcHJvdmVkQnk6IGFueVtdID0gW10sXHJcbik6IE9ic2VydmFibGU8YW55PiB7XHJcblxyXG4gIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpXHJcbiAgICAuc2V0KCdjbGllbnRJZCcsIGNsaWVudClcclxuICAgIC5zZXQoJ2Zyb21EYXRlJywgZnJvbURhdGUpXHJcbiAgICAuc2V0KCd0b0RhdGUnLCB0b0RhdGUpXHJcbiAgICAuc2V0KCdzZWFyY2hWYWx1ZScsIHNlYXJjaHZhbHVlIHx8ICcnKVxyXG4gICAgLnNldCgnbGltaXQnLCBsaW1pdClcclxuICAgIC5zZXQoJ29mZnNldCcsIG9mZnNldClcclxuICAgIC5zZXQoJ2lzRXhwb3J0JywgaXNFeHBvcnQpXHJcbiAgICAuc2V0KCdzb3J0QnknLCBzb3J0QnkgfHwgJycpXHJcbiAgICAuc2V0KCdzb3J0T3JkZXInLCBzb3J0T3JkZXIpXHJcbiAgICAuc2V0KCd0YW5nb1R5cGUnLCB0YW5nb1R5cGUgfHwgJycpXHJcbiAgICAvLyDwn5SlIGFsd2F5cyBzZW5kIHBlcm1pc3Npb25UeXBlIGtleSAoZXZlbiBpZiBudWxsL3VuZGVmaW5lZClcclxuaWYgKHBlcm1pc3Npb25UeXBlKSB7XHJcbiAgcGFyYW1zID0gcGFyYW1zLnNldCgncGVybWlzc2lvblR5cGUnLCBwZXJtaXNzaW9uVHlwZSk7XHJcbn1cclxuXHJcbiAgLy8gc21hbGwgaGVscGVyc1xyXG4gIGNvbnN0IHNldEFycmF5ID0gKGtleTogc3RyaW5nLCBhcnI6IGFueVtdIHwgbnVsbCB8IHVuZGVmaW5lZCkgPT4ge1xyXG4gICAgY29uc3QgdmFsdWUgPSBhcnIgJiYgYXJyLmxlbmd0aCA/IGFyci5qb2luKCcsJykgOiAnJztcclxuICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoa2V5LCB2YWx1ZSk7ICAgLy8ga2V5IGFsd2F5cyBleGlzdHNcclxuICB9O1xyXG5cclxuICBjb25zdCBzZXRTY2FsYXIgPSAoa2V5OiBzdHJpbmcsIHZhbHVlOiBhbnkgfCBudWxsIHwgdW5kZWZpbmVkKSA9PiB7XHJcbiAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KGtleSwgdmFsdWUgIT0gbnVsbCA/IFN0cmluZyh2YWx1ZSkgOiAnJyk7XHJcbiAgfTtcclxuXHJcbiAgLy8gYXJyYXlzXHJcbiAgc2V0QXJyYXkoJ2ZpbHRlckJ5U3RhdHVzJywgZmlsdGVyQnlTdGF0dXMpO1xyXG4gIHNldEFycmF5KCdmaWx0ZXJCeVJldmlld2VkQnknLCBmaWx0ZXJCeVJldmlld2VkQnkpO1xyXG4gIHNldEFycmF5KCdmaWxldGVyQnlBcHByb3ZlZEJ5JywgZmlsZXRlckJ5QXBwcm92ZWRCeSk7XHJcblxyXG4gIC8vIHNjYWxhciBmaWx0ZXJzXHJcbiAgc2V0U2NhbGFyKCdmaWx0ZXJCeVJldmlld2VyJywgZmlsdGVyQnlSZXZpZXdlcik7XHJcbiAgc2V0U2NhbGFyKCdmaWx0ZXJCeUFwcHJvdmVyJywgZmlsdGVyQnlBcHByb3Zlcik7XHJcbiAgc2V0U2NhbGFyKCdmaWx0ZXJCeVRhbmdvJywgZmlsdGVyQnlUYW5nbyk7XHJcblxyXG4gIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuZm9vdGZhbGxEaXJhcGlVcmx9L3RpY2tldC1saXN0YCwgeyBwYXJhbXMgfSk7XHJcbn1cclxuXHJcblxyXG5cclxuICBnZXRUaWNrZXRMaXN0RXhwb3J0T2xkQXBpKFxyXG4gICAgY2xpZW50OiBhbnksXHJcbiAgICBmcm9tRGF0ZTogYW55LFxyXG4gICAgdG9EYXRlOiBhbnksXHJcbiAgICBzZWFyY2h2YWx1ZTogYW55LFxyXG4gICAgbGltaXQ6IGFueSxcclxuICAgIG9mZnNldDogYW55LFxyXG4gICAgaXNFeHBvcnQ6IGFueSxcclxuICAgIHNvcnRCeTogYW55LFxyXG4gICAgc29ydE9yZGVyOiBhbnlcclxuICApOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoXHJcbiAgICAgIGAke3RoaXMuZm9vdGZhbGxEaXJhcGlVcmx9L3RpY2tldC1saXN0P2NsaWVudElkPSR7Y2xpZW50fSZmcm9tRGF0ZT0ke2Zyb21EYXRlfSZ0b0RhdGU9JHt0b0RhdGV9JnNlYXJjaFZhbHVlPSR7c2VhcmNodmFsdWV9JmxpbWl0PSR7bGltaXR9Jm9mZnNldD0ke29mZnNldH0maXNFeHBvcnQ9JHtpc0V4cG9ydH0mc29ydEJ5PSR7c29ydEJ5fSZzb3J0T3JkZXI9JHtzb3J0T3JkZXJ9YCxcclxuICAgICAgeyByZXNwb25zZVR5cGU6IFwiYXJyYXlidWZmZXJcIiB9XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbmdldFRpY2tldExpc3RFeHBvcnRBcGkoXHJcbiAgY2xpZW50OiBhbnksXHJcbiAgZnJvbURhdGU6IGFueSxcclxuICB0b0RhdGU6IGFueSxcclxuICBzZWFyY2h2YWx1ZTogYW55LFxyXG4gIGxpbWl0OiBhbnksXHJcbiAgb2Zmc2V0OiBhbnksXHJcbiAgaXNFeHBvcnQ6IGFueSxcclxuICBzb3J0Qnk6IGFueSxcclxuICBzb3J0T3JkZXI6IGFueSxcclxuICB0YW5nb1R5cGU6IGFueSxcclxuICBwZXJtaXNzaW9uVHlwZT86IHN0cmluZyB8IG51bGwsXHJcbiAgZmlsdGVycz86IHtcclxuICAgIGZpbHRlckJ5U3RhdHVzPzogc3RyaW5nW107XHJcbiAgICBmaWx0ZXJCeVJldmlld2VyPzogc3RyaW5nIHwgbnVsbDtcclxuICAgIGZpbHRlckJ5QXBwcm92ZXI/OiBzdHJpbmcgfCBudWxsO1xyXG4gICAgZmlsdGVyQnlUYW5nbz86IHN0cmluZyB8IG51bGw7XHJcbiAgICBmaWx0ZXJCeVJldmlld2VkQnk/OiBzdHJpbmdbXTtcclxuICAgIGZpbGV0ZXJCeUFwcHJvdmVkQnk/OiBzdHJpbmdbXTtcclxuICB9XHJcbik6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgbGV0IHVybCA9XHJcbiAgICBgJHt0aGlzLmZvb3RmYWxsRGlyYXBpVXJsfS90aWNrZXQtbGlzdD9gICtcclxuICAgIGBjbGllbnRJZD0ke2NsaWVudH1gICtcclxuICAgIGAmZnJvbURhdGU9JHtmcm9tRGF0ZX1gICtcclxuICAgIGAmdG9EYXRlPSR7dG9EYXRlfWAgK1xyXG4gICAgYCZzZWFyY2hWYWx1ZT0ke3NlYXJjaHZhbHVlfWAgK1xyXG4gICAgYCZsaW1pdD0ke2xpbWl0fWAgK1xyXG4gICAgYCZvZmZzZXQ9JHtvZmZzZXR9YCArXHJcbiAgICBgJmlzRXhwb3J0PSR7aXNFeHBvcnR9YCArXHJcbiAgICBgJnNvcnRCeT0ke3NvcnRCeX1gICtcclxuICAgIGAmc29ydE9yZGVyPSR7c29ydE9yZGVyfWAgK1xyXG4gICAgYCZ0YW5nb1R5cGU9JHt0YW5nb1R5cGV9YDtcclxuXHJcbiAgaWYgKHBlcm1pc3Npb25UeXBlKSB7XHJcbiAgICB1cmwgKz0gYCZwZXJtaXNzaW9uVHlwZT0ke3Blcm1pc3Npb25UeXBlfWA7XHJcbiAgfVxyXG5cclxuICBpZiAoZmlsdGVycykge1xyXG4gICAgaWYgKGZpbHRlcnMuZmlsdGVyQnlTdGF0dXM/Lmxlbmd0aCkge1xyXG4gICAgICB1cmwgKz0gYCZmaWx0ZXJCeVN0YXR1cz0ke2VuY29kZVVSSUNvbXBvbmVudChmaWx0ZXJzLmZpbHRlckJ5U3RhdHVzLmpvaW4oJywnKSl9YDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoZmlsdGVycy5maWx0ZXJCeVJldmlld2VkQnk/Lmxlbmd0aCkge1xyXG4gICAgICB1cmwgKz0gYCZmaWx0ZXJCeVJldmlld2VkQnk9JHtlbmNvZGVVUklDb21wb25lbnQoZmlsdGVycy5maWx0ZXJCeVJldmlld2VkQnkuam9pbignLCcpKX1gO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChmaWx0ZXJzLmZpbGV0ZXJCeUFwcHJvdmVkQnk/Lmxlbmd0aCkge1xyXG4gICAgICB1cmwgKz0gYCZmaWxldGVyQnlBcHByb3ZlZEJ5PSR7ZW5jb2RlVVJJQ29tcG9uZW50KGZpbHRlcnMuZmlsZXRlckJ5QXBwcm92ZWRCeS5qb2luKCcsJykpfWA7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGZpbHRlcnMuZmlsdGVyQnlSZXZpZXdlcikge1xyXG4gICAgICB1cmwgKz0gYCZmaWx0ZXJCeVJldmlld2VyPSR7ZW5jb2RlVVJJQ29tcG9uZW50KGZpbHRlcnMuZmlsdGVyQnlSZXZpZXdlcil9YDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoZmlsdGVycy5maWx0ZXJCeUFwcHJvdmVyKSB7XHJcbiAgICAgIHVybCArPSBgJmZpbHRlckJ5QXBwcm92ZXI9JHtlbmNvZGVVUklDb21wb25lbnQoZmlsdGVycy5maWx0ZXJCeUFwcHJvdmVyKX1gO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChmaWx0ZXJzLmZpbHRlckJ5VGFuZ28pIHtcclxuICAgICAgdXJsICs9IGAmZmlsdGVyQnlUYW5nbz0ke2VuY29kZVVSSUNvbXBvbmVudChmaWx0ZXJzLmZpbHRlckJ5VGFuZ28pfWA7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjb25zdCBvcHRpb25zID0gaXNFeHBvcnRcclxuICAgID8geyByZXNwb25zZVR5cGU6ICdhcnJheWJ1ZmZlcicgYXMgJ2pzb24nIH1cclxuICAgIDoge307XHJcblxyXG4gIHJldHVybiB0aGlzLmh0dHAuZ2V0KHVybCwgb3B0aW9ucyk7XHJcbn1cclxuXHJcblxyXG4gIGdldFRpY2tldHNBcGkoXHJcbiAgICBzdG9yZTogYW55LFxyXG4gICAgZnJvbURhdGU6IGFueSxcclxuICAgIHRvRGF0ZTogYW55LFxyXG4gICAgcmV2b3BzVHlwZTogYW55LFxyXG4gICAgc3RhdHVzOiBhbnksXHJcbiAgICBhY3Rpb246IGFueSxcclxuICAgIG9mZnNldDogYW55LFxyXG4gICAgbGltaXQ6IGFueVxyXG4gICk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICBsZXQgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKVxyXG4gICAgICAuc2V0KFwic3RvcmVJZFwiLCBzdG9yZSlcclxuICAgICAgLnNldChcImZyb21EYXRlXCIsIGZyb21EYXRlKVxyXG4gICAgICAuc2V0KFwidG9EYXRlXCIsIHRvRGF0ZSlcclxuICAgICAgLnNldChcIm9mZnNldFwiLCBvZmZzZXQpXHJcbiAgICAgIC5zZXQoXCJsaW1pdFwiLCBsaW1pdCk7XHJcbiAgICBpZiAocmV2b3BzVHlwZSkge1xyXG4gICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KFwicmV2b3BzVHlwZVwiLCByZXZvcHNUeXBlKTtcclxuICAgIH1cclxuICAgIGlmIChzdGF0dXMpIHtcclxuICAgICAgcGFyYW1zID0gcGFyYW1zLnNldChcInN0YXR1c1wiLCBzdGF0dXMpO1xyXG4gICAgfVxyXG4gICAgaWYgKGFjdGlvbikge1xyXG4gICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KFwiYWN0aW9uXCIsIGFjdGlvbik7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLmZvb3RmYWxsRGlyYXBpVXJsfS9nZXQtdGlja2V0c2AsIHsgcGFyYW1zIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0VGlja2V0c05ld0FwaSh0aWNrZXRJZDogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpLnNldChcInRpY2tldElkXCIsIHRpY2tldElkKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuZm9vdGZhbGxEaXJhcGlVcmx9L2dldC10aWNrZXRzYCwgeyBwYXJhbXMgfSk7XHJcbiAgfVxyXG5cclxuICBnZXRUYWdnZWRTdG9yZXNBcGkoXHJcbiAgICBjbGllbnQ6IGFueSxcclxuICAgIGZyb21EYXRlOiBhbnksXHJcbiAgICB0b0RhdGU6IGFueSxcclxuICAgIHNlYXJjaFZhbHVlOiBhbnksXHJcbiAgICBjbHVzdGVyczogYW55LFxyXG4gICAgc29ydE9yZGVyOiBhbnlcclxuICApOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgbGV0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKClcclxuICAgICAgLnNldChcImNsaWVudElkXCIsIGNsaWVudClcclxuICAgICAgLnNldChcImZyb21EYXRlXCIsIGZyb21EYXRlKVxyXG4gICAgICAuc2V0KFwidG9EYXRlXCIsIHRvRGF0ZSk7IC8vIEFkZCBzZWFyY2hWYWx1ZSBhcyBhbiBlbXB0eSBzdHJpbmcgaWYgbm90IHByb3ZpZGVkXHJcbiAgICAvLyBPbmx5IGFkZCAnY2x1c3RlcnMnIGlmIGl0J3Mgbm90IG51bGwsIHVuZGVmaW5lZCwgb3IgYW4gZW1wdHkgYXJyYXkvc3RyaW5nXHJcbiAgICBpZiAoc2VhcmNoVmFsdWUpIHtcclxuICAgICAgcGFyYW1zID0gcGFyYW1zLnNldChcInNlYXJjaFZhbHVlXCIsIHNlYXJjaFZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoY2x1c3RlcnMgJiYgY2x1c3RlcnMubGVuZ3RoID4gMCkge1xyXG4gICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KFwiY2x1c3RlcnNcIiwgY2x1c3RlcnMpO1xyXG4gICAgfVxyXG4gICAgaWYgKHNvcnRPcmRlcikge1xyXG4gICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KFwic29ydE9yZGVyXCIsIHNvcnRPcmRlcik7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLmZvb3RmYWxsRGlyYXBpVXJsfS9nZXQtdGFnZ2VkLXN0b3Jlc2AsIHtcclxuICAgICAgcGFyYW1zLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBnZXRVcGRhdGVTdGF0dXNBcGkoZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGNvbnN0IHVybCA9IGAke3RoaXMuZm9vdGZhbGxEaXJhcGlVcmx9L3VwZGF0ZS1zdGF0dXNgO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQodXJsLCBkYXRhKTtcclxuICB9XHJcblxyXG4gIGdldFVwZGF0ZVRlbXBTdGF0dXNBcGkoZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmZvb3RmYWxsRGlyYXBpVXJsfS91cGRhdGUtdGVtcC1zdGF0dXNgLCBkYXRhKTtcclxuICB9XHJcblxyXG4gIGdldE9wZW5UaWNrZXRMaXN0QXBpKGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5mb290ZmFsbERpcmFwaVVybH0vb3Blbi10aWNrZXQtbGlzdGAsIGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgZ2V0VXBkYXRlVGlja2V0U3RhdHVzQXBpKGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuZm9vdGZhbGxEaXJhcGlVcmx9L3VwZGF0ZS10aWNrZXQtc3RhdHVzYCxcclxuICAgICAgZGF0YVxyXG4gICAgKTtcclxuICB9XHJcblxyXG5nZXRDcmVhdGVUaWNrZXRMaXN0QXBpKGRhdGE6YW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5mb290ZmFsbERpcmFwaVVybH0vY3JlYXRlLXRpY2tldGAsIGRhdGEpO1xyXG59XHJcbkNyZWF0ZWludGVybmFsVGlja2V0QXBpKGRhdGE6YW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5mb290ZmFsbERpcmFwaVVybH0vY3JlYXRlLWludGVybmFsdGlja2V0YCwgZGF0YSk7XHJcbn1cclxuICBnZXRjbHVzdGVycyhkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRyYWZmaWNBcGlVcmx9L2hlYWRlcmNsdXN0ZXJfdjJgLCBkYXRhKTtcclxuICB9XHJcblxyXG4gIGdldFJldmlld2VyQXBpKGNsaWVudElkOiBhbnksdHlwZTphbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgbGV0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCkuc2V0KFwiY2xpZW50SWRcIiwgY2xpZW50SWQpXHJcbiAgICAgIC5zZXQoXCJ0eXBlXCIsdHlwZSk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLmZvb3RmYWxsRGlyYXBpVXJsfS9yZXZpZXdlci1saXN0YCwgeyBwYXJhbXMgfSk7XHJcbiAgfVxyXG5cclxuICBnZXRUaWNrZXRBc3NpZ25BcGkoZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmZvb3RmYWxsRGlyYXBpVXJsfS9hc3NpZ24tdGlja2V0YCwgZGF0YSk7XHJcbiAgfVxyXG5cclxuICBnZXRNdWx0aUNsb3NlVGlja2V0QXBpKGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuZm9vdGZhbGxEaXJhcGlVcmx9L211bHRpLWNsb3NlLXRpY2tldHNgLFxyXG4gICAgICBkYXRhXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0VHlwZUZ1bmN0aW9uKGNsaWVudElkOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgbGV0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCkuc2V0KFwiY2xpZW50SWRcIiwgY2xpZW50SWQpO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5jbGllbnRBcGlVcmx9L2dldC1mb290ZmFsbC1kaXJlY3RvcnktY29uZmlnYCwgeyBwYXJhbXMgfSk7XHJcblxyXG4gICAgXHJcbiAgfVxyXG4gIHByaXZhdGUgZm9vdGZhbGxEYXRhOiBhbnk7XHJcblxyXG4gIHNldEZvb3RmYWxsRGF0YShkYXRhOiBhbnkpIHtcclxuICAgIHRoaXMuZm9vdGZhbGxEYXRhID0gZGF0YTtcclxuICB9XHJcblxyXG4gIGdldEZvb3RmYWxsRGF0YSgpIHtcclxuICAgIHJldHVybiB0aGlzLmZvb3RmYWxsRGF0YTtcclxuICB9XHJcbn1cclxuIl19
|
|
300
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlja2V0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1tYW5hZ2UtdGlja2V0cy9zcmMvbGliL3NlcnZpY2VzL3RpY2tldC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQVksTUFBTSxlQUFlLENBQUM7QUFFckQsT0FBTyxFQUNMLGVBQWUsR0FNaEIsTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7QUFJbEQsTUFBTSxPQUFPLGFBQWE7SUFZSjtJQUEwQjtJQVg5QyxVQUFVLENBQU07SUFDaEIsYUFBYSxDQUFNO0lBQ25CLFdBQVcsQ0FBTTtJQUNqQixpQkFBaUIsQ0FBTTtJQUN2QixlQUFlLENBQU07SUFDckIsaUJBQWlCLENBQU07SUFDdkIsV0FBVyxDQUFNO0lBQ2pCLGFBQWEsQ0FBTTtJQUNuQixXQUFXLENBQU07SUFDakIsWUFBWSxDQUFLO0lBQ2pCLGVBQWUsR0FBRyxJQUFJLGVBQWUsQ0FBTSxJQUFJLENBQUMsQ0FBQztJQUNqRCxZQUFvQixJQUFnQixFQUFVLEVBQXNCO1FBQWhELFNBQUksR0FBSixJQUFJLENBQVk7UUFBVSxPQUFFLEdBQUYsRUFBRSxDQUFvQjtRQUNsRSxJQUFJLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUNwQyxJQUFJLEdBQUcsRUFBRTtnQkFDUCxJQUFJLENBQUMsVUFBVSxHQUFHLEdBQUcsQ0FBQyxVQUFVLENBQUM7Z0JBQ2pDLElBQUksQ0FBQyxhQUFhLEdBQUcsR0FBRyxDQUFDLGFBQWEsQ0FBQztnQkFDdkMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQztnQkFDL0MsSUFBSSxDQUFDLFdBQVcsR0FBRyxHQUFHLENBQUMsV0FBVyxDQUFD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QUFDO0lBRUQsa0JBQWtCLENBQUMsSUFBUztRQUMxQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixnQkFBZ0IsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRUQsc0JBQXNCLENBQUMsSUFBUztRQUM5QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUNuQixHQUFHLElBQUksQ0FBQyxpQkFBaUIsc0JBQXNCLEVBQy9DLElBQUksQ0FDTCxDQUFDO0lBQ0osQ0FBQztJQUVELGVBQWUsQ0FBQyxRQUFhO1FBQzNCLElBQUksTUFBTSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUN4RCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLFlBQVksZ0NBQWdDLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBR3pGLENBQUM7SUFDTyxZQUFZLENBQU07SUFFMUIsZUFBZSxDQUFDLElBQVM7UUFDdkIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7SUFDM0IsQ0FBQztJQUVELGVBQWU7UUFDYixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDM0IsQ0FBQzt3R0F6Y1UsYUFBYTs0R0FBYixhQUFhLGNBRlosTUFBTTs7NEZBRVAsYUFBYTtrQkFIekIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XHJcbmltcG9ydCB7IEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgR2xvYmFsU3RhdGVTZXJ2aWNlIH0gZnJvbSBcInRhbmdvLWFwcC11aS1nbG9iYWxcIjtcclxuaW1wb3J0IHtcclxuICBCZWhhdmlvclN1YmplY3QsXHJcbiAgT2JzZXJ2YWJsZSxcclxuICBjYXRjaEVycm9yLFxyXG4gIG1hcCxcclxuICBvZixcclxuICB0aHJvd0Vycm9yLFxyXG59IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IEh0dHBQYXJhbXMgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46IFwicm9vdFwiLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGlja2V0U2VydmljZSB7XHJcbiAgdXNlckFwaVVybDogYW55O1xyXG4gIHRpY2tldHNBcGlVcmw6IGFueTtcclxuICBhdWRpdEFwaVVybDogYW55O1xyXG4gIGF1ZGl0bWV0cmljQXBpVXJsOiBhbnk7XHJcbiAgem9uZWF1ZGl0QXBpVXJsOiBhbnk7XHJcbiAgZm9vdGZhbGxEaXJhcGlVcmw6IGFueTtcclxuICBmb290ZmFsbENETjogYW55O1xyXG4gIHRyYWZmaWNBcGlVcmw6IGFueTtcclxuICByZXZvcEFwaVVybDogYW55O1xyXG4gIGNsaWVudEFwaVVybDphbnk7XHJcbiAgZHJvcERvd25UcmlnZ2VyID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnk+KG51bGwpO1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogSHR0cENsaWVudCwgcHJpdmF0ZSBnczogR2xvYmFsU3RhdGVTZXJ2aWNlKSB7XHJcbiAgICB0aGlzLmdzLmVudmlyb25tZW50LnN1YnNjcmliZSgoZW52KSA9PiB7XHJcbiAgICAgIGlmIChlbnYpIHtcclxuICAgICAgICB0aGlzLnVzZXJBcGlVcmwgPSBlbnYudXNlckFwaVVybDtcclxuICAgICAgICB0aGlzLnRpY2tldHNBcGlVcmwgPSBlbnYudGlja2V0c0FwaVVybDtcclxuICAgICAgICB0aGlzLmF1ZGl0bWV0cmljQXBpVXJsID0gZW52LmF1ZGl0bWV0cmljQXBpVXJsO1xyXG4gICAgICAgIHRoaXMuYXVkaXRBcGlVcmwgPSBlbnYuYXVkaXRBcGlVcmw7XHJcbiAgICAgICAgdGhpcy56b25lYXVkaXRBcGlVcmwgPSBlbnYuem9uZWF1ZGl0QXBpVXJsO1xyXG4gICAgICAgIHRoaXMuY2xpZW50QXBpVXJsID0gZW52LmNsaWVudEFwaVVybDtcclxuICAgICAgICB0aGlzLmZvb3RmYWxsRGlyYXBpVXJsID0gZW52LmZvb3RmYWxsRGlyYXBpVXJsO1xyXG4gICAgICAgIHRoaXMuZm9vdGZhbGxDRE4gPSBlbnYuZm9vdGZhbGxDRE47XHJcbiAgICAgICAgdGhpcy50cmFmZmljQXBpVXJsID0gZW52LnRyYWZmaWNBcGlVcmw7XHJcbiAgICAgICAgdGhpcy5yZXZvcEFwaVVybCA9IGVudi5yZXZvcEFwaVVybDtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBnZXRVc2VyTGlzdChwYXJhbXM6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihgJHt0aGlzLnVzZXJBcGlVcmx9L2dldC1saXN0YCwgcGFyYW1zKTtcclxuICB9XHJcblxyXG4gIGV4cG9ydEluc3RhbGxhdGlvbkxpc3QoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMudGlja2V0c0FwaVVybH0vaW5mcmEvaW5zdGFsbGF0aW9uVGFibGVgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgICB7IHJlc3BvbnNlVHlwZTogXCJhcnJheWJ1ZmZlclwiIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBleHBvcnRJbmZyYUxpc3QoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy50aWNrZXRzQXBpVXJsfS9pbmZyYS9pbmZyYVRhYmxlYCwgZGF0YSwge1xyXG4gICAgICByZXNwb25zZVR5cGU6IFwiYXJyYXlidWZmZXJcIixcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZXhwb3J0TWF0TGlzdChkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRpY2tldHNBcGlVcmx9L2luZnJhL21hdFRhYmxlYCwgZGF0YSwge1xyXG4gICAgICByZXNwb25zZVR5cGU6IFwiYXJyYXlidWZmZXJcIixcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0U290cmVzTGlzdChkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KGAke3RoaXMudGlja2V0c0FwaVVybH0vaW5mcmEvc3RvcmVGaWx0ZXJgLCBkYXRhKTtcclxuICB9XHJcblxyXG4gIGdldEluc3RhbGxhdGlvbkxpc3QoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihcclxuICAgICAgYCR7dGhpcy50aWNrZXRzQXBpVXJsfS9pbmZyYS9pbnN0YWxsYXRpb25UYWJsZWAsXHJcbiAgICAgIGRhdGFcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRJbmZyYUxpc3QoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihgJHt0aGlzLnRpY2tldHNBcGlVcmx9L2luZnJhL2luZnJhVGFibGVgLCBkYXRhKTtcclxuICB9XHJcblxyXG4gIGdldEFzc2lnblRpY2tldChkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KFxyXG4gICAgICBgJHt0aGlzLnRpY2tldHNBcGlVcmx9L2luZnJhL2Fzc2lnblRpY2tldGAsXHJcbiAgICAgIGRhdGFcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRNYXRMaXN0KGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7dGhpcy50aWNrZXRzQXBpVXJsfS9pbmZyYS9tYXRUYWJsZWAsIGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlVGlja2V0SXNzdWUoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihcclxuICAgICAgYCR7dGhpcy50aWNrZXRzQXBpVXJsfS9lbXBsb3llZVRyYW5pbmcvdXBkYXRlY29tbWVudGAsXHJcbiAgICAgIGRhdGFcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRVc2VyQWN0aXZlTGlzdChwYXJhbXM6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihgJHt0aGlzLnVzZXJBcGlVcmx9L2xpc3RgLCBwYXJhbXMpO1xyXG4gIH1cclxuXHJcbiAgZ2V0QWxsQ291bnRzKGRhdGE6YW55KXtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KGAke3RoaXMudGlja2V0c0FwaVVybH0vaW5mcmEvYWxsQ291bnRzYCwgZGF0YSlcclxuICB9XHJcbiAgZ2V0c3RvcmVNZXRyaWNzKGRhdGE6YW55KXtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmF1ZGl0QXBpVXJsfS9tZXRyaWNzL3N0b3JlLW1ldHJpY3NgLGRhdGEpXHJcbiAgfVxyXG4gIGdldHN0b3JlTWV0cmljc0V4cG9ydChkYXRhOmFueSl7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5hdWRpdEFwaVVybH0vbWV0cmljcy9zdG9yZS1tZXRyaWNzYCxkYXRhLHtyZXNwb25zZVR5cGU6ICdhcnJheWJ1ZmZlcid9KVxyXG4gIH1cclxuICBnZXRjbGllbnRMaXN0KCl7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLmF1ZGl0QXBpVXJsfS9jbGllbnRzYClcclxuICB9XHJcbiAgZ2V0dXNlckxpc3QoKXtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuYXVkaXRBcGlVcmx9L3RhbmdvLXVzZXJzYClcclxuICB9XHJcbiAgYXVkaXRyZXRyaWdnZXIoZGF0YTphbnkpe1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuYXVkaXRBcGlVcmx9L21ldHJpY3MvcmUtdHJpZ2dlcmAsZGF0YSlcclxuIH1cclxuIGdldGZvb3RmYWxsY291bnQoZGF0YTphbnkpe1xyXG4gICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMucmV2b3BBcGlVcmx9L3N0b3JlLXByb2Nlc3NlZC1kYXRhP3N0b3JlSWQ9JHtkYXRhLnN0b3JlSWR9JmZyb21EYXRlPSR7ZGF0YS5EYXRlfSZ0b0RhdGU9JHtkYXRhLkRhdGV9YClcclxuICBcclxuIH1cclxuIGdldHN0b3JlTGlzdChkYXRhOmFueSl7XHJcbiAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuYXVkaXRBcGlVcmx9L2F1ZGl0LXN0b3Jlc2AsZGF0YSlcclxuIH1cclxuIGNoZWNrVGlja2V0RXhpc3RzKGRhdGE6YW55KXtcclxuICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5mb290ZmFsbERpcmFwaVVybH0vY2hlY2tUaWNrZXRFeGlzdHNgLGRhdGEpXHJcbiB9XHJcbiBtZXJnZXRpY2tldChkYXRhOmFueSl7XHJcbiAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuZm9vdGZhbGxEaXJhcGlVcmx9L21lcmdldGlja2V0YCxkYXRhKVxyXG4gfVxyXG4gIGdldERhdGFNaXNtYXRoTGlzdChkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KFxyXG4gICAgICBgJHt0aGlzLnRpY2tldHNBcGlVcmx9L2luZnJhL2RhdGFNaXNtYXRjaFRhYmxlYCxcclxuICAgICAgZGF0YVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGV4cG9ydERhdGFNaXNtYXRjaExpc3QoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMudGlja2V0c0FwaVVybH0vaW5mcmEvZGF0YU1pc21hdGNoVGFibGVgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgICB7IHJlc3BvbnNlVHlwZTogXCJhcnJheWJ1ZmZlclwiIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuXHJcbiAgZ2V0QXVkaXRJbWFnZXMoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChcclxuICAgICAgYCR7dGhpcy5hdWRpdEFwaVVybH0vYXVkaXQtaW1hZ2VzP2ZpbGVEYXRlPSR7ZGF0YT8uZmlsZURhdGV9JnN0b3JlSWQ9JHtkYXRhPy5zdG9yZUlkfSZpbWFnZVR5cGU9JHtkYXRhPy5pbWFnZVR5cGV9JmV4cG9ydD0ke2RhdGE/LmV4cG9ydH0mem9uZU5hbWU9JHtkYXRhPy56b25lTmFtZX0mbW9kdWxlVHlwZT0ke2RhdGE/Lm1vZHVsZVR5cGV9YFxyXG4gICAgKTtcclxuICB9XHJcbiAgRXhwb3J0QXVkaXRJbWFnZXNhc3hsc3goZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChcclxuICAgICAgYCR7dGhpcy5hdWRpdEFwaVVybH0vYXVkaXQtaW1hZ2VzP2ZpbGVEYXRlPSR7ZGF0YT8uZmlsZURhdGV9JnN0b3JlSWQ9JHtkYXRhPy5zdG9yZUlkfSZpbWFnZVR5cGU9JHtkYXRhPy5pbWFnZVR5cGV9JmV4cG9ydD0ke2RhdGE/LmV4cG9ydH0mem9uZU5hbWU9JHtkYXRhPy56b25lTmFtZX0mbW9kdWxlVHlwZT0ke2RhdGE/Lm1vZHVsZVR5cGV9YCxcclxuICAgICAgeyByZXNwb25zZVR5cGU6IFwiYXJyYXlidWZmZXJcIiB9XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0VGlja2V0U3VtbWFyeUFwaShcclxuICAgIGNsaWVudDogYW55LFxyXG4gICAgZnJvbURhdGU6IGFueSxcclxuICAgIHRvRGF0ZTogYW55LFxyXG4gICAgdGFuZ29UeXBlOmFueSxcclxuICApOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoXHJcbiAgICAgIGAke3RoaXMuZm9vdGZhbGxEaXJhcGlVcmx9L3RpY2tldC1zdW1tYXJ5P2NsaWVudElkPSR7Y2xpZW50fSZmcm9tRGF0ZT0ke2Zyb21EYXRlfSZ0b0RhdGU9JHt0b0RhdGV9JnRhbmdvVHlwZT0ke3RhbmdvVHlwZX1gXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0VGlja2V0TGlzdE9sZEFwaShcclxuICAgIGNsaWVudDogYW55LFxyXG4gICAgZnJvbURhdGU6IGFueSxcclxuICAgIHRvRGF0ZTogYW55LFxyXG4gICAgc2VhcmNodmFsdWU6IGFueSxcclxuICAgIGxpbWl0OiBhbnksXHJcbiAgICBvZmZzZXQ6IGFueSxcclxuICAgIGlzRXhwb3J0OiBhbnksXHJcbiAgICBzb3J0Qnk6IGFueSxcclxuICAgIHNvcnRPcmRlcjogYW55XHJcbiAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KFxyXG4gICAgICBgJHt0aGlzLmZvb3RmYWxsRGlyYXBpVXJsfS90aWNrZXQtbGlzdD9jbGllbnRJZD0ke2NsaWVudH0mZnJvbURhdGU9JHtmcm9tRGF0ZX0mdG9EYXRlPSR7dG9EYXRlfSZzZWFyY2hWYWx1ZT0ke3NlYXJjaHZhbHVlfSZsaW1pdD0ke2xpbWl0fSZvZmZzZXQ9JHtvZmZzZXR9JmlzRXhwb3J0PSR7aXNFeHBvcnR9JnNvcnRCeT0ke3NvcnRCeX0mc29ydE9yZGVyPSR7c29ydE9yZGVyfWBcclxuICAgICk7XHJcbiAgfVxyXG5cclxuZ2V0VGlja2V0TGlzdEFwaShcclxuICBjbGllbnQ6IGFueSxcclxuICBmcm9tRGF0ZTogYW55LFxyXG4gIHRvRGF0ZTogYW55LFxyXG4gIHNlYXJjaHZhbHVlOiBhbnksXHJcbiAgbGltaXQ6IGFueSxcclxuICBvZmZzZXQ6IGFueSxcclxuICBpc0V4cG9ydDogYW55LFxyXG4gIHNvcnRCeTogYW55LFxyXG4gIHNvcnRPcmRlcjogYW55LFxyXG4gIHRhbmdvVHlwZTogYW55LFxyXG4gIHBlcm1pc3Npb25UeXBlPzogc3RyaW5nIHwgbnVsbCxcclxuICBmaWx0ZXJzPzoge1xyXG4gICAgZmlsdGVyQnlTdGF0dXM6IGFueVtdO1xyXG4gICAgZmlsdGVyQnlSZXZpZXdlcjogYW55IHwgbnVsbDtcclxuICAgIGZpbHRlckJ5QXBwcm92ZXI6IGFueSB8IG51bGw7XHJcbiAgICBmaWx0ZXJCeVRhbmdvOiBhbnkgfCBudWxsO1xyXG4gICAgZmlsdGVyQnlSZXZpZXdlZEJ5OiBhbnlbXTtcclxuICAgIGZpbGV0ZXJCeUFwcHJvdmVkQnk6IGFueVtdO1xyXG4gIH1cclxuKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICBsZXQgdXJsID1cclxuICAgIGAke3RoaXMuZm9vdGZhbGxEaXJhcGlVcmx9L3RpY2tldC1saXN0P2AgK1xyXG4gICAgYGNsaWVudElkPSR7Y2xpZW50fWAgK1xyXG4gICAgYCZmcm9tRGF0ZT0ke2Zyb21EYXRlfWAgK1xyXG4gICAgYCZ0b0RhdGU9JHt0b0RhdGV9YCArXHJcbiAgICBgJnNlYXJjaFZhbHVlPSR7c2VhcmNodmFsdWV9YCArXHJcbiAgICBgJmxpbWl0PSR7bGltaXR9YCArXHJcbiAgICBgJm9mZnNldD0ke29mZnNldH1gICtcclxuICAgIGAmaXNFeHBvcnQ9JHtpc0V4cG9ydH1gICtcclxuICAgIGAmc29ydEJ5PSR7c29ydEJ5fWAgK1xyXG4gICAgYCZzb3J0T3JkZXI9JHtzb3J0T3JkZXJ9YCArXHJcbiAgICBgJnRhbmdvVHlwZT0ke3RhbmdvVHlwZX1gO1xyXG5cclxuICBpZiAocGVybWlzc2lvblR5cGUpIHtcclxuICAgIHVybCArPSBgJnBlcm1pc3Npb25UeXBlPSR7cGVybWlzc2lvblR5cGV9YDtcclxuICB9XHJcblxyXG4gIGlmIChmaWx0ZXJzKSB7XHJcbiAgICAvLyBhcnJheSBwYXJhbXMg4oCTIHNlbmQgYXMgY29tbWEtc2VwYXJhdGVkXHJcbiAgICBpZiAoZmlsdGVycy5maWx0ZXJCeVN0YXR1cz8ubGVuZ3RoKSB7XHJcbiAgICAgIHVybCArPSBgJmZpbHRlckJ5U3RhdHVzPSR7ZW5jb2RlVVJJQ29tcG9uZW50KGZpbHRlcnMuZmlsdGVyQnlTdGF0dXMuam9pbignLCcpKX1gO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChmaWx0ZXJzLmZpbHRlckJ5UmV2aWV3ZWRCeT8ubGVuZ3RoKSB7XHJcbiAgICAgIHVybCArPSBgJmZpbHRlckJ5UmV2aWV3ZWRCeT0ke2VuY29kZVVSSUNvbXBvbmVudChmaWx0ZXJzLmZpbHRlckJ5UmV2aWV3ZWRCeS5qb2luKCcsJykpfWA7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGZpbHRlcnMuZmlsZXRlckJ5QXBwcm92ZWRCeT8ubGVuZ3RoKSB7XHJcbiAgICAgIHVybCArPSBgJmZpbGV0ZXJCeUFwcHJvdmVkQnk9JHtlbmNvZGVVUklDb21wb25lbnQoZmlsdGVycy5maWxldGVyQnlBcHByb3ZlZEJ5LmpvaW4oJywnKSl9YDtcclxuICAgIH1cclxuXHJcbiAgICAvLyBzdHJpbmcgcGFyYW1zIOKAkyBKU09OIHN0cmluZ2lmaWVkIGFjY3VyYWN5XHJcbiAgICBpZiAoZmlsdGVycy5maWx0ZXJCeVJldmlld2VyKSB7XHJcbiAgICAgIHVybCArPSBgJmZpbHRlckJ5UmV2aWV3ZXI9JHtlbmNvZGVVUklDb21wb25lbnQoZmlsdGVycy5maWx0ZXJCeVJldmlld2VyKX1gO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChmaWx0ZXJzLmZpbHRlckJ5QXBwcm92ZXIpIHtcclxuICAgICAgdXJsICs9IGAmZmlsdGVyQnlBcHByb3Zlcj0ke2VuY29kZVVSSUNvbXBvbmVudChmaWx0ZXJzLmZpbHRlckJ5QXBwcm92ZXIpfWA7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGZpbHRlcnMuZmlsdGVyQnlUYW5nbykge1xyXG4gICAgICB1cmwgKz0gYCZmaWx0ZXJCeVRhbmdvPSR7ZW5jb2RlVVJJQ29tcG9uZW50KGZpbHRlcnMuZmlsdGVyQnlUYW5nbyl9YDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJldHVybiB0aGlzLmh0dHAuZ2V0KHVybCk7XHJcbn1cclxuXHJcblxyXG4gIGdldFRpY2tldExpc3RFeHBvcnRPbGRBcGkoXHJcbiAgICBjbGllbnQ6IGFueSxcclxuICAgIGZyb21EYXRlOiBhbnksXHJcbiAgICB0b0RhdGU6IGFueSxcclxuICAgIHNlYXJjaHZhbHVlOiBhbnksXHJcbiAgICBsaW1pdDogYW55LFxyXG4gICAgb2Zmc2V0OiBhbnksXHJcbiAgICBpc0V4cG9ydDogYW55LFxyXG4gICAgc29ydEJ5OiBhbnksXHJcbiAgICBzb3J0T3JkZXI6IGFueVxyXG4gICk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChcclxuICAgICAgYCR7dGhpcy5mb290ZmFsbERpcmFwaVVybH0vdGlja2V0LWxpc3Q/Y2xpZW50SWQ9JHtjbGllbnR9JmZyb21EYXRlPSR7ZnJvbURhdGV9JnRvRGF0ZT0ke3RvRGF0ZX0mc2VhcmNoVmFsdWU9JHtzZWFyY2h2YWx1ZX0mbGltaXQ9JHtsaW1pdH0mb2Zmc2V0PSR7b2Zmc2V0fSZpc0V4cG9ydD0ke2lzRXhwb3J0fSZzb3J0Qnk9JHtzb3J0Qnl9JnNvcnRPcmRlcj0ke3NvcnRPcmRlcn1gLFxyXG4gICAgICB7IHJlc3BvbnNlVHlwZTogXCJhcnJheWJ1ZmZlclwiIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuZ2V0VGlja2V0TGlzdEV4cG9ydEFwaShcclxuICBjbGllbnQ6IGFueSxcclxuICBmcm9tRGF0ZTogYW55LFxyXG4gIHRvRGF0ZTogYW55LFxyXG4gIHNlYXJjaHZhbHVlOiBhbnksXHJcbiAgbGltaXQ6IGFueSxcclxuICBvZmZzZXQ6IGFueSxcclxuICBpc0V4cG9ydDogYW55LFxyXG4gIHNvcnRCeTogYW55LFxyXG4gIHNvcnRPcmRlcjogYW55LFxyXG4gIHRhbmdvVHlwZTogYW55LFxyXG4gIHBlcm1pc3Npb25UeXBlPzogc3RyaW5nIHwgbnVsbCxcclxuICBmaWx0ZXJzPzoge1xyXG4gICAgZmlsdGVyQnlTdGF0dXM/OiBzdHJpbmdbXTtcclxuICAgIGZpbHRlckJ5UmV2aWV3ZXI/OiBzdHJpbmcgfCBudWxsO1xyXG4gICAgZmlsdGVyQnlBcHByb3Zlcj86IHN0cmluZyB8IG51bGw7XHJcbiAgICBmaWx0ZXJCeVRhbmdvPzogc3RyaW5nIHwgbnVsbDtcclxuICAgIGZpbHRlckJ5UmV2aWV3ZWRCeT86IHN0cmluZ1tdO1xyXG4gICAgZmlsZXRlckJ5QXBwcm92ZWRCeT86IHN0cmluZ1tdO1xyXG4gIH1cclxuKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICBsZXQgdXJsID1cclxuICAgIGAke3RoaXMuZm9vdGZhbGxEaXJhcGlVcmx9L3RpY2tldC1saXN0P2AgK1xyXG4gICAgYGNsaWVudElkPSR7Y2xpZW50fWAgK1xyXG4gICAgYCZmcm9tRGF0ZT0ke2Zyb21EYXRlfWAgK1xyXG4gICAgYCZ0b0RhdGU9JHt0b0RhdGV9YCArXHJcbiAgICBgJnNlYXJjaFZhbHVlPSR7c2VhcmNodmFsdWV9YCArXHJcbiAgICBgJmxpbWl0PSR7bGltaXR9YCArXHJcbiAgICBgJm9mZnNldD0ke29mZnNldH1gICtcclxuICAgIGAmaXNFeHBvcnQ9JHtpc0V4cG9ydH1gICtcclxuICAgIGAmc29ydEJ5PSR7c29ydEJ5fWAgK1xyXG4gICAgYCZzb3J0T3JkZXI9JHtzb3J0T3JkZXJ9YCArXHJcbiAgICBgJnRhbmdvVHlwZT0ke3RhbmdvVHlwZX1gO1xyXG5cclxuICBpZiAocGVybWlzc2lvblR5cGUpIHtcclxuICAgIHVybCArPSBgJnBlcm1pc3Npb25UeXBlPSR7cGVybWlzc2lvblR5cGV9YDtcclxuICB9XHJcblxyXG4gIGlmIChmaWx0ZXJzKSB7XHJcbiAgICBpZiAoZmlsdGVycy5maWx0ZXJCeVN0YXR1cz8ubGVuZ3RoKSB7XHJcbiAgICAgIHVybCArPSBgJmZpbHRlckJ5U3RhdHVzPSR7ZW5jb2RlVVJJQ29tcG9uZW50KGZpbHRlcnMuZmlsdGVyQnlTdGF0dXMuam9pbignLCcpKX1gO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChmaWx0ZXJzLmZpbHRlckJ5UmV2aWV3ZWRCeT8ubGVuZ3RoKSB7XHJcbiAgICAgIHVybCArPSBgJmZpbHRlckJ5UmV2aWV3ZWRCeT0ke2VuY29kZVVSSUNvbXBvbmVudChmaWx0ZXJzLmZpbHRlckJ5UmV2aWV3ZWRCeS5qb2luKCcsJykpfWA7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGZpbHRlcnMuZmlsZXRlckJ5QXBwcm92ZWRCeT8ubGVuZ3RoKSB7XHJcbiAgICAgIHVybCArPSBgJmZpbGV0ZXJCeUFwcHJvdmVkQnk9JHtlbmNvZGVVUklDb21wb25lbnQoZmlsdGVycy5maWxldGVyQnlBcHByb3ZlZEJ5LmpvaW4oJywnKSl9YDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoZmlsdGVycy5maWx0ZXJCeVJldmlld2VyKSB7XHJcbiAgICAgIHVybCArPSBgJmZpbHRlckJ5UmV2aWV3ZXI9JHtlbmNvZGVVUklDb21wb25lbnQoZmlsdGVycy5maWx0ZXJCeVJldmlld2VyKX1gO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChmaWx0ZXJzLmZpbHRlckJ5QXBwcm92ZXIpIHtcclxuICAgICAgdXJsICs9IGAmZmlsdGVyQnlBcHByb3Zlcj0ke2VuY29kZVVSSUNvbXBvbmVudChmaWx0ZXJzLmZpbHRlckJ5QXBwcm92ZXIpfWA7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGZpbHRlcnMuZmlsdGVyQnlUYW5nbykge1xyXG4gICAgICB1cmwgKz0gYCZmaWx0ZXJCeVRhbmdvPSR7ZW5jb2RlVVJJQ29tcG9uZW50KGZpbHRlcnMuZmlsdGVyQnlUYW5nbyl9YDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNvbnN0IG9wdGlvbnMgPSBpc0V4cG9ydFxyXG4gICAgPyB7IHJlc3BvbnNlVHlwZTogJ2FycmF5YnVmZmVyJyBhcyAnanNvbicgfVxyXG4gICAgOiB7fTtcclxuXHJcbiAgcmV0dXJuIHRoaXMuaHR0cC5nZXQodXJsLCBvcHRpb25zKTtcclxufVxyXG5cclxuXHJcbiAgZ2V0VGlja2V0c0FwaShcclxuICAgIHN0b3JlOiBhbnksXHJcbiAgICBmcm9tRGF0ZTogYW55LFxyXG4gICAgdG9EYXRlOiBhbnksXHJcbiAgICByZXZvcHNUeXBlOiBhbnksXHJcbiAgICBzdGF0dXM6IGFueSxcclxuICAgIGFjdGlvbjogYW55LFxyXG4gICAgb2Zmc2V0OiBhbnksXHJcbiAgICBsaW1pdDogYW55XHJcbiAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpXHJcbiAgICAgIC5zZXQoXCJzdG9yZUlkXCIsIHN0b3JlKVxyXG4gICAgICAuc2V0KFwiZnJvbURhdGVcIiwgZnJvbURhdGUpXHJcbiAgICAgIC5zZXQoXCJ0b0RhdGVcIiwgdG9EYXRlKVxyXG4gICAgICAuc2V0KFwib2Zmc2V0XCIsIG9mZnNldClcclxuICAgICAgLnNldChcImxpbWl0XCIsIGxpbWl0KTtcclxuICAgIGlmIChyZXZvcHNUeXBlKSB7XHJcbiAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoXCJyZXZvcHNUeXBlXCIsIHJldm9wc1R5cGUpO1xyXG4gICAgfVxyXG4gICAgaWYgKHN0YXR1cykge1xyXG4gICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KFwic3RhdHVzXCIsIHN0YXR1cyk7XHJcbiAgICB9XHJcbiAgICBpZiAoYWN0aW9uKSB7XHJcbiAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoXCJhY3Rpb25cIiwgYWN0aW9uKTtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuZm9vdGZhbGxEaXJhcGlVcmx9L2dldC10aWNrZXRzYCwgeyBwYXJhbXMgfSk7XHJcbiAgfVxyXG5cclxuICBnZXRUaWNrZXRzTmV3QXBpKHRpY2tldElkOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgbGV0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCkuc2V0KFwidGlja2V0SWRcIiwgdGlja2V0SWQpO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5mb290ZmFsbERpcmFwaVVybH0vZ2V0LXRpY2tldHNgLCB7IHBhcmFtcyB9KTtcclxuICB9XHJcblxyXG4gIGdldFRhZ2dlZFN0b3Jlc0FwaShcclxuICAgIGNsaWVudDogYW55LFxyXG4gICAgZnJvbURhdGU6IGFueSxcclxuICAgIHRvRGF0ZTogYW55LFxyXG4gICAgc2VhcmNoVmFsdWU6IGFueSxcclxuICAgIGNsdXN0ZXJzOiBhbnksXHJcbiAgICBzb3J0T3JkZXI6IGFueVxyXG4gICk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICBsZXQgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKVxyXG4gICAgICAuc2V0KFwiY2xpZW50SWRcIiwgY2xpZW50KVxyXG4gICAgICAuc2V0KFwiZnJvbURhdGVcIiwgZnJvbURhdGUpXHJcbiAgICAgIC5zZXQoXCJ0b0RhdGVcIiwgdG9EYXRlKTsgLy8gQWRkIHNlYXJjaFZhbHVlIGFzIGFuIGVtcHR5IHN0cmluZyBpZiBub3QgcHJvdmlkZWRcclxuICAgIC8vIE9ubHkgYWRkICdjbHVzdGVycycgaWYgaXQncyBub3QgbnVsbCwgdW5kZWZpbmVkLCBvciBhbiBlbXB0eSBhcnJheS9zdHJpbmdcclxuICAgIGlmIChzZWFyY2hWYWx1ZSkge1xyXG4gICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KFwic2VhcmNoVmFsdWVcIiwgc2VhcmNoVmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChjbHVzdGVycyAmJiBjbHVzdGVycy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoXCJjbHVzdGVyc1wiLCBjbHVzdGVycyk7XHJcbiAgICB9XHJcbiAgICBpZiAoc29ydE9yZGVyKSB7XHJcbiAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoXCJzb3J0T3JkZXJcIiwgc29ydE9yZGVyKTtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuZm9vdGZhbGxEaXJhcGlVcmx9L2dldC10YWdnZWQtc3RvcmVzYCwge1xyXG4gICAgICBwYXJhbXMsXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGdldFVwZGF0ZVN0YXR1c0FwaShkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5mb290ZmFsbERpcmFwaVVybH0vdXBkYXRlLXN0YXR1c2A7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dCh1cmwsIGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgZ2V0VXBkYXRlVGVtcFN0YXR1c0FwaShkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuZm9vdGZhbGxEaXJhcGlVcmx9L3VwZGF0ZS10ZW1wLXN0YXR1c2AsIGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgZ2V0T3BlblRpY2tldExpc3RBcGkoZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmZvb3RmYWxsRGlyYXBpVXJsfS9vcGVuLXRpY2tldC1saXN0YCwgZGF0YSk7XHJcbiAgfVxyXG5cclxuICBnZXRVcGRhdGVUaWNrZXRTdGF0dXNBcGkoZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5mb290ZmFsbERpcmFwaVVybH0vdXBkYXRlLXRpY2tldC1zdGF0dXNgLFxyXG4gICAgICBkYXRhXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbmdldENyZWF0ZVRpY2tldExpc3RBcGkoZGF0YTphbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmZvb3RmYWxsRGlyYXBpVXJsfS9jcmVhdGUtdGlja2V0YCwgZGF0YSk7XHJcbn1cclxuQ3JlYXRlaW50ZXJuYWxUaWNrZXRBcGkoZGF0YTphbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmZvb3RmYWxsRGlyYXBpVXJsfS9jcmVhdGUtaW50ZXJuYWx0aWNrZXRgLCBkYXRhKTtcclxufVxyXG4gIGdldGNsdXN0ZXJzKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudHJhZmZpY0FwaVVybH0vaGVhZGVyY2x1c3Rlcl92MmAsIGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgZ2V0UmV2aWV3ZXJBcGkoY2xpZW50SWQ6IGFueSx0eXBlOmFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICBsZXQgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKS5zZXQoXCJjbGllbnRJZFwiLCBjbGllbnRJZClcclxuICAgICAgLnNldChcInR5cGVcIix0eXBlKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuZm9vdGZhbGxEaXJhcGlVcmx9L3Jldmlld2VyLWxpc3RgLCB7IHBhcmFtcyB9KTtcclxuICB9XHJcblxyXG4gIGdldFRpY2tldEFzc2lnbkFwaShkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuZm9vdGZhbGxEaXJhcGlVcmx9L2Fzc2lnbi10aWNrZXRgLCBkYXRhKTtcclxuICB9XHJcblxyXG4gIGdldE11bHRpQ2xvc2VUaWNrZXRBcGkoZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5mb290ZmFsbERpcmFwaVVybH0vbXVsdGktY2xvc2UtdGlja2V0c2AsXHJcbiAgICAgIGRhdGFcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRUeXBlRnVuY3Rpb24oY2xpZW50SWQ6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICBsZXQgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKS5zZXQoXCJjbGllbnRJZFwiLCBjbGllbnRJZCk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLmNsaWVudEFwaVVybH0vZ2V0LWZvb3RmYWxsLWRpcmVjdG9yeS1jb25maWdgLCB7IHBhcmFtcyB9KTtcclxuXHJcbiAgICBcclxuICB9XHJcbiAgcHJpdmF0ZSBmb290ZmFsbERhdGE6IGFueTtcclxuXHJcbiAgc2V0Rm9vdGZhbGxEYXRhKGRhdGE6IGFueSkge1xyXG4gICAgdGhpcy5mb290ZmFsbERhdGEgPSBkYXRhO1xyXG4gIH1cclxuXHJcbiAgZ2V0Rm9vdGZhbGxEYXRhKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZm9vdGZhbGxEYXRhO1xyXG4gIH1cclxufVxyXG4iXX0=
|