tango-app-ui-manage-tickets 3.7.0-beta.5 → 3.7.0-beta.51
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/audit-mapping-list/audit-mapping-list.component.mjs +486 -0
- package/esm2022/lib/components/audit-report-popup/audit-report-popup.component.mjs +387 -0
- package/esm2022/lib/components/audit-retag/audit-retag.component.mjs +472 -0
- package/esm2022/lib/components/custom-select/custom-select.component.mjs +174 -0
- package/esm2022/lib/components/filter-options/filter-options.component.mjs +41 -0
- package/esm2022/lib/components/footfall-dic/footfall-dic.component.mjs +373 -202
- package/esm2022/lib/components/footfall-dicview/footfall-dicview.component.mjs +1014 -0
- package/esm2022/lib/components/footfall-popup/footfall-popup.component.mjs +15 -0
- package/esm2022/lib/components/reactive-select/reactive-select.component.mjs +3 -3
- package/esm2022/lib/components/remove-audit/remove-audit.component.mjs +80 -0
- package/esm2022/lib/components/start-audit/start-audit.component.mjs +751 -0
- package/esm2022/lib/components/tango-manage-tickets/tango-manage-tickets.component.mjs +7 -3
- package/esm2022/lib/components/ticket-filter-panel/ticket-filter-panel.component.mjs +337 -0
- package/esm2022/lib/components/ticket-footfall-new/ticket-footfall-new.component.mjs +2443 -0
- package/esm2022/lib/components/ticketclosepopup/ticketclosepopup.component.mjs +43 -0
- package/esm2022/lib/components/tickets/tickets.component.mjs +62 -8
- package/esm2022/lib/components/viewcategory/viewcategory.component.mjs +89 -0
- package/esm2022/lib/services/audit.service.mjs +88 -0
- package/esm2022/lib/services/ticket.service.mjs +171 -34
- package/esm2022/lib/services/timer.service.mjs +84 -0
- package/esm2022/lib/tango-manage-tickets-routing.module.mjs +22 -2
- package/esm2022/lib/tango-manage-tickets.module.mjs +60 -5
- package/fesm2022/tango-app-ui-manage-tickets.mjs +7135 -332
- package/fesm2022/tango-app-ui-manage-tickets.mjs.map +1 -1
- package/lib/components/audit-mapping-list/audit-mapping-list.component.d.ts +73 -0
- package/lib/components/audit-metrics/audit-metrics.component.d.ts +1 -1
- package/lib/components/audit-report-popup/audit-report-popup.component.d.ts +51 -0
- package/lib/components/audit-retag/audit-retag.component.d.ts +59 -0
- package/lib/components/custom-select/custom-select.component.d.ts +34 -0
- package/lib/components/filter-options/filter-options.component.d.ts +15 -0
- package/lib/components/footfall-dic/footfall-dic.component.d.ts +22 -9
- package/lib/components/footfall-dicview/footfall-dicview.component.d.ts +132 -0
- package/lib/components/footfall-popup/footfall-popup.component.d.ts +8 -0
- package/lib/components/remove-audit/remove-audit.component.d.ts +16 -0
- package/lib/components/start-audit/start-audit.component.d.ts +86 -0
- package/lib/components/tango-manage-tickets/tango-manage-tickets.component.d.ts +1 -0
- package/lib/components/ticket-filter-panel/ticket-filter-panel.component.d.ts +62 -0
- package/lib/components/ticket-footfall-new/ticket-footfall-new.component.d.ts +273 -0
- package/lib/components/ticketclosepopup/ticketclosepopup.component.d.ts +15 -0
- package/lib/components/tickets/tickets.component.d.ts +4 -0
- package/lib/components/viewcategory/viewcategory.component.d.ts +16 -0
- package/lib/services/audit.service.d.ts +36 -0
- package/lib/services/ticket.service.d.ts +35 -8
- package/lib/services/timer.service.d.ts +22 -0
- package/lib/tango-manage-tickets.module.d.ts +22 -5
- package/package.json +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { Injectable } from
|
|
1
|
+
import { Injectable } from "@angular/core";
|
|
2
2
|
import { BehaviorSubject, } from "rxjs";
|
|
3
|
-
import { HttpParams } from
|
|
3
|
+
import { HttpParams } from "@angular/common/http";
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
import * as i1 from "@angular/common/http";
|
|
6
6
|
import * as i2 from "tango-app-ui-global";
|
|
@@ -15,6 +15,8 @@ export class TicketService {
|
|
|
15
15
|
footfallDirapiUrl;
|
|
16
16
|
footfallCDN;
|
|
17
17
|
trafficApiUrl;
|
|
18
|
+
revopApiUrl;
|
|
19
|
+
clientApiUrl;
|
|
18
20
|
dropDownTrigger = new BehaviorSubject(null);
|
|
19
21
|
constructor(http, gs) {
|
|
20
22
|
this.http = http;
|
|
@@ -26,9 +28,11 @@ export class TicketService {
|
|
|
26
28
|
this.auditmetricApiUrl = env.auditmetricApiUrl;
|
|
27
29
|
this.auditApiUrl = env.auditApiUrl;
|
|
28
30
|
this.zoneauditApiUrl = env.zoneauditApiUrl;
|
|
31
|
+
this.clientApiUrl = env.clientApiUrl;
|
|
29
32
|
this.footfallDirapiUrl = env.footfallDirapiUrl;
|
|
30
33
|
this.footfallCDN = env.footfallCDN;
|
|
31
34
|
this.trafficApiUrl = env.trafficApiUrl;
|
|
35
|
+
this.revopApiUrl = env.revopApiUrl;
|
|
32
36
|
}
|
|
33
37
|
});
|
|
34
38
|
}
|
|
@@ -36,13 +40,17 @@ export class TicketService {
|
|
|
36
40
|
return this.http.post(`${this.userApiUrl}/get-list`, params);
|
|
37
41
|
}
|
|
38
42
|
exportInstallationList(data) {
|
|
39
|
-
return this.http.post(`${this.ticketsApiUrl}/infra/installationTable`, data, { responseType:
|
|
43
|
+
return this.http.post(`${this.ticketsApiUrl}/infra/installationTable`, data, { responseType: "arraybuffer" });
|
|
40
44
|
}
|
|
41
45
|
exportInfraList(data) {
|
|
42
|
-
return this.http.post(`${this.ticketsApiUrl}/infra/infraTable`, data, {
|
|
46
|
+
return this.http.post(`${this.ticketsApiUrl}/infra/infraTable`, data, {
|
|
47
|
+
responseType: "arraybuffer",
|
|
48
|
+
});
|
|
43
49
|
}
|
|
44
50
|
exportMatList(data) {
|
|
45
|
-
return this.http.post(`${this.ticketsApiUrl}/infra/matTable`, data, {
|
|
51
|
+
return this.http.post(`${this.ticketsApiUrl}/infra/matTable`, data, {
|
|
52
|
+
responseType: "arraybuffer",
|
|
53
|
+
});
|
|
46
54
|
}
|
|
47
55
|
getSotresList(data) {
|
|
48
56
|
return this.http.post(`${this.ticketsApiUrl}/infra/storeFilter`, data);
|
|
@@ -65,12 +73,6 @@ export class TicketService {
|
|
|
65
73
|
getUserActiveList(params) {
|
|
66
74
|
return this.http.post(`${this.userApiUrl}/list`, params);
|
|
67
75
|
}
|
|
68
|
-
getDataMismathList(data) {
|
|
69
|
-
return this.http.post(`${this.ticketsApiUrl}/infra/dataMismatchTable`, data);
|
|
70
|
-
}
|
|
71
|
-
exportDataMismatchList(data) {
|
|
72
|
-
return this.http.post(`${this.ticketsApiUrl}/infra/dataMismatchTable`, data, { responseType: 'arraybuffer' });
|
|
73
|
-
}
|
|
74
76
|
getAllCounts(data) {
|
|
75
77
|
return this.http.post(`${this.ticketsApiUrl}/infra/allCounts`, data);
|
|
76
78
|
}
|
|
@@ -89,70 +91,205 @@ export class TicketService {
|
|
|
89
91
|
auditretrigger(data) {
|
|
90
92
|
return this.http.post(`${this.auditApiUrl}/metrics/re-trigger`, data);
|
|
91
93
|
}
|
|
94
|
+
getfootfallcount(data) {
|
|
95
|
+
return this.http.get(`${this.revopApiUrl}/store-processed-data?storeId=${data.storeId}&fromDate=${data.Date}&toDate=${data.Date}`);
|
|
96
|
+
}
|
|
92
97
|
getstoreList(data) {
|
|
93
98
|
return this.http.post(`${this.auditApiUrl}/audit-stores`, data);
|
|
94
99
|
}
|
|
100
|
+
checkTicketExists(data) {
|
|
101
|
+
return this.http.post(`${this.footfallDirapiUrl}/checkTicketExists`, data);
|
|
102
|
+
}
|
|
103
|
+
mergeticket(data) {
|
|
104
|
+
return this.http.post(`${this.footfallDirapiUrl}/mergeticket`, data);
|
|
105
|
+
}
|
|
106
|
+
getDataMismathList(data) {
|
|
107
|
+
return this.http.post(`${this.ticketsApiUrl}/infra/dataMismatchTable`, data);
|
|
108
|
+
}
|
|
109
|
+
exportDataMismatchList(data) {
|
|
110
|
+
return this.http.post(`${this.ticketsApiUrl}/infra/dataMismatchTable`, data, { responseType: "arraybuffer" });
|
|
111
|
+
}
|
|
95
112
|
getAuditImages(data) {
|
|
96
113
|
return this.http.get(`${this.auditApiUrl}/audit-images?fileDate=${data?.fileDate}&storeId=${data?.storeId}&imageType=${data?.imageType}&export=${data?.export}&zoneName=${data?.zoneName}&moduleType=${data?.moduleType}`);
|
|
97
114
|
}
|
|
98
115
|
ExportAuditImagesasxlsx(data) {
|
|
99
|
-
return this.http.get(`${this.auditApiUrl}/audit-images?fileDate=${data?.fileDate}&storeId=${data?.storeId}&imageType=${data?.imageType}&export=${data?.export}&zoneName=${data?.zoneName}&moduleType=${data?.moduleType}`, { responseType:
|
|
116
|
+
return this.http.get(`${this.auditApiUrl}/audit-images?fileDate=${data?.fileDate}&storeId=${data?.storeId}&imageType=${data?.imageType}&export=${data?.export}&zoneName=${data?.zoneName}&moduleType=${data?.moduleType}`, { responseType: "arraybuffer" });
|
|
100
117
|
}
|
|
101
|
-
getTicketSummaryApi(client, fromDate, toDate) {
|
|
102
|
-
return this.http.get(`${this.footfallDirapiUrl}/ticket-summary?clientId=${client}&fromDate=${fromDate}&toDate=${toDate}`);
|
|
118
|
+
getTicketSummaryApi(client, fromDate, toDate, tangoType) {
|
|
119
|
+
return this.http.get(`${this.footfallDirapiUrl}/ticket-summary?clientId=${client}&fromDate=${fromDate}&toDate=${toDate}&tangoType=${tangoType}`);
|
|
103
120
|
}
|
|
104
|
-
|
|
121
|
+
getTicketListOldApi(client, fromDate, toDate, searchvalue, limit, offset, isExport, sortBy, sortOrder) {
|
|
105
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}`);
|
|
106
123
|
}
|
|
107
|
-
|
|
108
|
-
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' });
|
|
109
|
-
}
|
|
110
|
-
getTicketsApi(store, fromDate, toDate, revopsType, status, action, offset, limit) {
|
|
124
|
+
getTicketListApi(client, fromDate, toDate, searchvalue, limit, offset, isExport, sortBy, sortOrder, tangoType, permissionType, filterByStatus = [], filterByReviewer = null, filterByApprover = null, filterByTango = null, filterByReviewedBy = [], fileterByApprovedBy = []) {
|
|
111
125
|
let params = new HttpParams()
|
|
112
|
-
.set('
|
|
126
|
+
.set('clientId', client)
|
|
113
127
|
.set('fromDate', fromDate)
|
|
114
128
|
.set('toDate', toDate)
|
|
129
|
+
.set('searchValue', searchvalue || '')
|
|
130
|
+
.set('limit', limit)
|
|
115
131
|
.set('offset', offset)
|
|
116
|
-
.set('
|
|
132
|
+
.set('isExport', isExport)
|
|
133
|
+
.set('sortBy', sortBy || '')
|
|
134
|
+
.set('sortOrder', sortOrder)
|
|
135
|
+
.set('tangoType', tangoType || '');
|
|
136
|
+
// 🔥 always send permissionType key (even if null/undefined)
|
|
137
|
+
if (permissionType) {
|
|
138
|
+
params = params.set('permissionType', permissionType);
|
|
139
|
+
}
|
|
140
|
+
// small helpers
|
|
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 });
|
|
157
|
+
}
|
|
158
|
+
getTicketListExportOldApi(client, fromDate, toDate, searchvalue, limit, offset, isExport, sortBy, sortOrder) {
|
|
159
|
+
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" });
|
|
160
|
+
}
|
|
161
|
+
getTicketListExportApi(client, fromDate, toDate, searchvalue, limit, offset, isExport, sortBy, sortOrder, tangoType, permissionType, filters) {
|
|
162
|
+
let url = `${this.footfallDirapiUrl}/ticket-list?` +
|
|
163
|
+
`clientId=${client}` +
|
|
164
|
+
`&fromDate=${fromDate}` +
|
|
165
|
+
`&toDate=${toDate}` +
|
|
166
|
+
`&searchValue=${searchvalue}` +
|
|
167
|
+
`&limit=${limit}` +
|
|
168
|
+
`&offset=${offset}` +
|
|
169
|
+
`&isExport=${isExport}` +
|
|
170
|
+
`&sortBy=${sortBy}` +
|
|
171
|
+
`&sortOrder=${sortOrder}` +
|
|
172
|
+
`&tangoType=${tangoType}`;
|
|
173
|
+
if (permissionType) {
|
|
174
|
+
url += `&permissionType=${permissionType}`;
|
|
175
|
+
}
|
|
176
|
+
if (filters) {
|
|
177
|
+
if (filters.filterByStatus?.length) {
|
|
178
|
+
url += `&filterByStatus=${encodeURIComponent(filters.filterByStatus.join(','))}`;
|
|
179
|
+
}
|
|
180
|
+
if (filters.filterByReviewedBy?.length) {
|
|
181
|
+
url += `&filterByReviewedBy=${encodeURIComponent(filters.filterByReviewedBy.join(','))}`;
|
|
182
|
+
}
|
|
183
|
+
if (filters.fileterByApprovedBy?.length) {
|
|
184
|
+
url += `&fileterByApprovedBy=${encodeURIComponent(filters.fileterByApprovedBy.join(','))}`;
|
|
185
|
+
}
|
|
186
|
+
if (filters.filterByReviewer) {
|
|
187
|
+
url += `&filterByReviewer=${encodeURIComponent(filters.filterByReviewer)}`;
|
|
188
|
+
}
|
|
189
|
+
if (filters.filterByApprover) {
|
|
190
|
+
url += `&filterByApprover=${encodeURIComponent(filters.filterByApprover)}`;
|
|
191
|
+
}
|
|
192
|
+
if (filters.filterByTango) {
|
|
193
|
+
url += `&filterByTango=${encodeURIComponent(filters.filterByTango)}`;
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
const options = isExport
|
|
197
|
+
? { responseType: 'arraybuffer' }
|
|
198
|
+
: {};
|
|
199
|
+
return this.http.get(url, options);
|
|
200
|
+
}
|
|
201
|
+
getTicketsApi(store, fromDate, toDate, revopsType, status, action, offset, limit) {
|
|
202
|
+
let params = new HttpParams()
|
|
203
|
+
.set("storeId", store)
|
|
204
|
+
.set("fromDate", fromDate)
|
|
205
|
+
.set("toDate", toDate)
|
|
206
|
+
.set("offset", offset)
|
|
207
|
+
.set("limit", limit);
|
|
117
208
|
if (revopsType) {
|
|
118
|
-
params = params.set(
|
|
209
|
+
params = params.set("revopsType", revopsType);
|
|
119
210
|
}
|
|
120
211
|
if (status) {
|
|
121
|
-
params = params.set(
|
|
212
|
+
params = params.set("status", status);
|
|
122
213
|
}
|
|
123
214
|
if (action) {
|
|
124
|
-
params = params.set(
|
|
215
|
+
params = params.set("action", action);
|
|
125
216
|
}
|
|
126
217
|
return this.http.get(`${this.footfallDirapiUrl}/get-tickets`, { params });
|
|
127
218
|
}
|
|
128
|
-
|
|
219
|
+
getTicketsNewApi(ticketId) {
|
|
220
|
+
let params = new HttpParams().set("ticketId", ticketId);
|
|
221
|
+
return this.http.get(`${this.footfallDirapiUrl}/get-tickets`, { params });
|
|
222
|
+
}
|
|
223
|
+
getTaggedStoresApi(client, fromDate, toDate, searchValue, clusters, sortOrder) {
|
|
129
224
|
let params = new HttpParams()
|
|
130
|
-
.set(
|
|
131
|
-
.set(
|
|
132
|
-
.set(
|
|
225
|
+
.set("clientId", client)
|
|
226
|
+
.set("fromDate", fromDate)
|
|
227
|
+
.set("toDate", toDate); // Add searchValue as an empty string if not provided
|
|
133
228
|
// Only add 'clusters' if it's not null, undefined, or an empty array/string
|
|
134
229
|
if (searchValue) {
|
|
135
|
-
params = params.set(
|
|
230
|
+
params = params.set("searchValue", searchValue);
|
|
136
231
|
}
|
|
137
232
|
if (clusters && clusters.length > 0) {
|
|
138
|
-
params = params.set(
|
|
233
|
+
params = params.set("clusters", clusters);
|
|
234
|
+
}
|
|
235
|
+
if (sortOrder) {
|
|
236
|
+
params = params.set("sortOrder", sortOrder);
|
|
139
237
|
}
|
|
140
|
-
return this.http.get(`${this.footfallDirapiUrl}/get-tagged-stores`, {
|
|
238
|
+
return this.http.get(`${this.footfallDirapiUrl}/get-tagged-stores`, {
|
|
239
|
+
params,
|
|
240
|
+
});
|
|
141
241
|
}
|
|
142
242
|
getUpdateStatusApi(data) {
|
|
143
243
|
const url = `${this.footfallDirapiUrl}/update-status`;
|
|
144
244
|
return this.http.put(url, data);
|
|
145
245
|
}
|
|
246
|
+
getUpdateTempStatusApi(data) {
|
|
247
|
+
return this.http.post(`${this.footfallDirapiUrl}/update-temp-status`, data);
|
|
248
|
+
}
|
|
249
|
+
getOpenTicketListApi(data) {
|
|
250
|
+
return this.http.post(`${this.footfallDirapiUrl}/open-ticket-list`, data);
|
|
251
|
+
}
|
|
252
|
+
getUpdateTicketStatusApi(data) {
|
|
253
|
+
return this.http.post(`${this.footfallDirapiUrl}/update-ticket-status`, data);
|
|
254
|
+
}
|
|
255
|
+
getCreateTicketListApi(data) {
|
|
256
|
+
return this.http.post(`${this.footfallDirapiUrl}/create-ticket`, data);
|
|
257
|
+
}
|
|
258
|
+
CreateinternalTicketApi(data) {
|
|
259
|
+
return this.http.post(`${this.footfallDirapiUrl}/create-internalticket`, data);
|
|
260
|
+
}
|
|
146
261
|
getclusters(data) {
|
|
147
262
|
return this.http.post(`${this.trafficApiUrl}/headercluster_v2`, data);
|
|
148
263
|
}
|
|
264
|
+
getReviewerApi(clientId, type) {
|
|
265
|
+
let params = new HttpParams().set("clientId", clientId)
|
|
266
|
+
.set("type", type);
|
|
267
|
+
return this.http.get(`${this.footfallDirapiUrl}/reviewer-list`, { params });
|
|
268
|
+
}
|
|
269
|
+
getTicketAssignApi(data) {
|
|
270
|
+
return this.http.post(`${this.footfallDirapiUrl}/assign-ticket`, data);
|
|
271
|
+
}
|
|
272
|
+
getMultiCloseTicketApi(data) {
|
|
273
|
+
return this.http.post(`${this.footfallDirapiUrl}/multi-close-tickets`, data);
|
|
274
|
+
}
|
|
275
|
+
getTypeFunction(clientId) {
|
|
276
|
+
let params = new HttpParams().set("clientId", clientId);
|
|
277
|
+
return this.http.get(`${this.clientApiUrl}/get-footfall-directory-config`, { params });
|
|
278
|
+
}
|
|
279
|
+
footfallData;
|
|
280
|
+
setFootfallData(data) {
|
|
281
|
+
this.footfallData = data;
|
|
282
|
+
}
|
|
283
|
+
getFootfallData() {
|
|
284
|
+
return this.footfallData;
|
|
285
|
+
}
|
|
149
286
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TicketService, deps: [{ token: i1.HttpClient }, { token: i2.GlobalStateService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
150
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TicketService, providedIn:
|
|
287
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TicketService, providedIn: "root" });
|
|
151
288
|
}
|
|
152
289
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TicketService, decorators: [{
|
|
153
290
|
type: Injectable,
|
|
154
291
|
args: [{
|
|
155
|
-
providedIn:
|
|
292
|
+
providedIn: "root",
|
|
156
293
|
}]
|
|
157
294
|
}], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.GlobalStateService }] });
|
|
158
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlja2V0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1tYW5hZ2UtdGlja2V0cy9zcmMvbGliL3NlcnZpY2VzL3RpY2tldC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQVksTUFBTSxlQUFlLENBQUM7QUFFckQsT0FBTyxFQUNMLGVBQWUsR0FNaEIsTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7QUFJbEQsTUFBTSxPQUFPLGFBQWE7SUFVSjtJQUEwQjtJQVQ5QyxVQUFVLENBQU07SUFDaEIsYUFBYSxDQUFNO0lBQ25CLFdBQVcsQ0FBSztJQUNoQixpQkFBaUIsQ0FBSztJQUN0QixlQUFlLENBQUs7SUFDcEIsaUJBQWlCLENBQU07SUFDdkIsV0FBVyxDQUFLO0lBQ2hCLGFBQWEsQ0FBSztJQUNsQixlQUFlLEdBQUcsSUFBSSxlQUFlLENBQU0sSUFBSSxDQUFDLENBQUE7SUFDaEQsWUFBb0IsSUFBZ0IsRUFBVSxFQUFzQjtRQUFoRCxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQVUsT0FBRSxHQUFGLEVBQUUsQ0FBb0I7UUFDbEUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDcEMsSUFBSSxHQUFHLEVBQUU7Z0JBQ1AsSUFBSSxDQUFDLFVBQVUsR0FBRyxHQUFHLENBQUMsVUFBVSxDQUFDO2dCQUNqQyxJQUFJLENBQUMsYUFBYSxHQUFFLEdBQUcsQ0FBQyxhQUFhLENBQUM7Z0JBQ3RDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxHQUFHLENBQUMsaUJBQWlCLENBQUM7Z0JBQy9DLElBQUksQ0FBQyxXQUFXLEdBQUcsR0FBRyxDQUFDLFdBQVcsQ0FBQztnQkFDbkMsSUFBSSxDQUFDLGVBQWUsR0FBRyxHQUFH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YUFBYSxtQkFBbUIsRUFBRSxJQUFJLENBQUMsQ0FBQTtJQUN2RSxDQUFDO3dHQTFKVSxhQUFhOzRHQUFiLGFBQWEsY0FGWixNQUFNOzs0RkFFUCxhQUFhO2tCQUh6QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEdsb2JhbFN0YXRlU2VydmljZSB9IGZyb20gJ3RhbmdvLWFwcC11aS1nbG9iYWwnO1xyXG5pbXBvcnQge1xyXG4gIEJlaGF2aW9yU3ViamVjdCxcclxuICBPYnNlcnZhYmxlLFxyXG4gIGNhdGNoRXJyb3IsXHJcbiAgbWFwLFxyXG4gIG9mLFxyXG4gIHRocm93RXJyb3IsXHJcbn0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgSHR0cFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgVGlja2V0U2VydmljZSB7XHJcbiAgdXNlckFwaVVybDogYW55O1xyXG4gIHRpY2tldHNBcGlVcmw6IGFueTtcclxuICBhdWRpdEFwaVVybDphbnk7XHJcbiAgYXVkaXRtZXRyaWNBcGlVcmw6YW55O1xyXG4gIHpvbmVhdWRpdEFwaVVybDphbnk7XHJcbiAgZm9vdGZhbGxEaXJhcGlVcmw6IGFueTtcclxuICBmb290ZmFsbENETjphbnk7XHJcbiAgdHJhZmZpY0FwaVVybDphbnk7XHJcbiAgZHJvcERvd25UcmlnZ2VyID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnk+KG51bGwpXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LCBwcml2YXRlIGdzOiBHbG9iYWxTdGF0ZVNlcnZpY2UpIHtcclxuICAgIHRoaXMuZ3MuZW52aXJvbm1lbnQuc3Vic2NyaWJlKChlbnYpID0+IHtcclxuICAgICAgaWYgKGVudikge1xyXG4gICAgICAgIHRoaXMudXNlckFwaVVybCA9IGVudi51c2VyQXBpVXJsO1xyXG4gICAgICAgIHRoaXMudGlja2V0c0FwaVVybCA9ZW52LnRpY2tldHNBcGlVcmw7XHJcbiAgICAgICAgdGhpcy5hdWRpdG1ldHJpY0FwaVVybCA9IGVudi5hdWRpdG1ldHJpY0FwaVVybDtcclxuICAgICAgICB0aGlzLmF1ZGl0QXBpVXJsID0gZW52LmF1ZGl0QXBpVXJsO1xyXG4gICAgICAgIHRoaXMuem9uZWF1ZGl0QXBpVXJsID0gZW52LnpvbmVhdWRpdEFwaVVybDtcclxuICAgICAgICB0aGlzLmZvb3RmYWxsRGlyYXBpVXJsPSBlbnYuZm9vdGZhbGxEaXJhcGlVcmw7XHJcbiAgICAgICAgdGhpcy5mb290ZmFsbENETiA9ZW52LmZvb3RmYWxsQ0ROO1xyXG4gICAgICAgIHRoaXMudHJhZmZpY0FwaVVybCA9ZW52LnRyYWZmaWNBcGlVcmw7XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBnZXRVc2VyTGlzdChwYXJhbXM6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihgJHt0aGlzLnVzZXJBcGlVcmx9L2dldC1saXN0YCwgcGFyYW1zKVxyXG4gIH1cclxuICBleHBvcnRJbnN0YWxsYXRpb25MaXN0KGRhdGE6YW55KXtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRpY2tldHNBcGlVcmx9L2luZnJhL2luc3RhbGxhdGlvblRhYmxlYCxkYXRhLHtyZXNwb25zZVR5cGU6ICdhcnJheWJ1ZmZlcid9KVxyXG4gIH1cclxuICBleHBvcnRJbmZyYUxpc3QoZGF0YTphbnkpe1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudGlja2V0c0FwaVVybH0vaW5mcmEvaW5mcmFUYWJsZWAsZGF0YSx7cmVzcG9uc2VUeXBlOiAnYXJyYXlidWZmZXInfSlcclxuICB9XHJcbiAgZXhwb3J0TWF0TGlzdChkYXRhOmFueSl7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy50aWNrZXRzQXBpVXJsfS9pbmZyYS9tYXRUYWJsZWAsZGF0YSx7cmVzcG9uc2VUeXBlOiAnYXJyYXlidWZmZXInfSlcclxuICB9XHJcbiAgZ2V0U290cmVzTGlzdChkYXRhOmFueSl7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihgJHt0aGlzLnRpY2tldHNBcGlVcmx9L2luZnJhL3N0b3JlRmlsdGVyYCwgZGF0YSlcclxuICB9XHJcblxyXG4gIGdldEluc3RhbGxhdGlvbkxpc3QoZGF0YTphbnkpe1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7dGhpcy50aWNrZXRzQXBpVXJsfS9pbmZyYS9pbnN0YWxsYXRpb25UYWJsZWAsIGRhdGEpXHJcbiAgfVxyXG5cclxuICBnZXRJbmZyYUxpc3QoZGF0YTphbnkpe1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7dGhpcy50aWNrZXRzQXBpVXJsfS9pbmZyYS9pbmZyYVRhYmxlYCwgZGF0YSlcclxuICB9XHJcblxyXG4gIGdldEFzc2lnblRpY2tldChkYXRhOmFueSl7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihgJHt0aGlzLnRpY2tldHNBcGlVcmx9L2luZnJhL2Fzc2lnblRpY2tldGAsIGRhdGEpXHJcbiAgfVxyXG4gIGdldE1hdExpc3QoZGF0YTphbnkpe1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7dGhpcy50aWNrZXRzQXBpVXJsfS9pbmZyYS9tYXRUYWJsZWAsIGRhdGEpXHJcbiAgfVxyXG4gIFxyXG4gIHVwZGF0ZVRpY2tldElzc3VlKGRhdGE6YW55KXtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KGAke3RoaXMudGlja2V0c0FwaVVybH0vZW1wbG95ZWVUcmFuaW5nL3VwZGF0ZWNvbW1lbnRgLCBkYXRhKVxyXG4gIH1cclxuXHJcbiAgZ2V0VXNlckFjdGl2ZUxpc3QocGFyYW1zOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7dGhpcy51c2VyQXBpVXJsfS9saXN0YCwgcGFyYW1zKVxyXG4gIH1cclxuICBcclxuICBnZXREYXRhTWlzbWF0aExpc3QoZGF0YTphbnkpe1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7dGhpcy50aWNrZXRzQXBpVXJsfS9pbmZyYS9kYXRhTWlzbWF0Y2hUYWJsZWAsIGRhdGEpXHJcbiAgfVxyXG4gIGV4cG9ydERhdGFNaXNtYXRjaExpc3QoZGF0YTphbnkpe1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudGlja2V0c0FwaVVybH0vaW5mcmEvZGF0YU1pc21hdGNoVGFibGVgLGRhdGEse3Jlc3BvbnNlVHlwZTogJ2FycmF5YnVmZmVyJ30pXHJcbiAgfVxyXG5cclxuICBnZXRBbGxDb3VudHMoZGF0YTphbnkpe1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7dGhpcy50aWNrZXRzQXBpVXJsfS9pbmZyYS9hbGxDb3VudHNgLCBkYXRhKVxyXG4gIH1cclxuICBnZXRzdG9yZU1ldHJpY3MoZGF0YTphbnkpe1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuYXVkaXRBcGlVcmx9L21ldHJpY3Mvc3RvcmUtbWV0cmljc2AsZGF0YSlcclxuICB9XHJcbiAgZ2V0c3RvcmVNZXRyaWNzRXhwb3J0KGRhdGE6YW55KXtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmF1ZGl0QXBpVXJsfS9tZXRyaWNzL3N0b3JlLW1ldHJpY3NgLGRhdGEse3Jlc3BvbnNlVHlwZTogJ2FycmF5YnVmZmVyJ30pXHJcbiAgfVxyXG4gIGdldGNsaWVudExpc3QoKXtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuYXVkaXRBcGlVcmx9L2NsaWVudHNgKVxyXG4gIH1cclxuICBnZXR1c2VyTGlzdCgpe1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5hdWRpdEFwaVVybH0vdGFuZ28tdXNlcnNgKVxyXG4gIH1cclxuICBhdWRpdHJldHJpZ2dlcihkYXRhOmFueSl7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5hdWRpdEFwaVVybH0vbWV0cmljcy9yZS10cmlnZ2VyYCxkYXRhKVxyXG4gfVxyXG4gZ2V0c3RvcmVMaXN0KGRhdGE6YW55KXtcclxuICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5hdWRpdEFwaVVybH0vYXVkaXQtc3RvcmVzYCxkYXRhKVxyXG4gfVxyXG4gZ2V0QXVkaXRJbWFnZXMoZGF0YTphbnkpe1xyXG4gIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuYXVkaXRBcGlVcmx9L2F1ZGl0LWltYWdlcz9maWxlRGF0ZT0ke2RhdGE/LmZpbGVEYXRlfSZzdG9yZUlkPSR7ZGF0YT8uc3RvcmVJZH0maW1hZ2VUeXBlPSR7ZGF0YT8uaW1hZ2VUeXBlfSZleHBvcnQ9JHtkYXRhPy5leHBvcnR9JnpvbmVOYW1lPSR7ZGF0YT8uem9uZU5hbWV9Jm1vZHVsZVR5cGU9JHtkYXRhPy5tb2R1bGVUeXBlfWApXHJcbiAgfVxyXG4gIEV4cG9ydEF1ZGl0SW1hZ2VzYXN4bHN4KGRhdGE6YW55KXtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuYXVkaXRBcGlVcmx9L2F1ZGl0LWltYWdlcz9maWxlRGF0ZT0ke2RhdGE/LmZpbGVEYXRlfSZzdG9yZUlkPSR7ZGF0YT8uc3RvcmVJZH0maW1hZ2VUeXBlPSR7ZGF0YT8uaW1hZ2VUeXBlfSZleHBvcnQ9JHtkYXRhPy5leHBvcnR9JnpvbmVOYW1lPSR7ZGF0YT8uem9uZU5hbWV9Jm1vZHVsZVR5cGU9JHtkYXRhPy5tb2R1bGVUeXBlfWAse3Jlc3BvbnNlVHlwZTonYXJyYXlidWZmZXInfSlcclxuICB9XHJcblxyXG4gIGdldFRpY2tldFN1bW1hcnlBcGkoY2xpZW50OiBhbnksIGZyb21EYXRlOiBhbnksIHRvRGF0ZTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuZm9vdGZhbGxEaXJhcGlVcmx9L3RpY2tldC1zdW1tYXJ5P2NsaWVudElkPSR7Y2xpZW50fSZmcm9tRGF0ZT0ke2Zyb21EYXRlfSZ0b0RhdGU9JHt0b0RhdGV9YCk7XHJcbiAgfVxyXG5cclxuICBnZXRUaWNrZXRMaXN0QXBpKGNsaWVudDogYW55LCBmcm9tRGF0ZTogYW55LCB0b0RhdGU6IGFueSwgc2VhcmNodmFsdWU6YW55LCBsaW1pdDphbnksIG9mZnNldDphbnksIGlzRXhwb3J0OmFueSxzb3J0Qnk6YW55LHNvcnRPcmRlcjphbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5mb290ZmFsbERpcmFwaVVybH0vdGlja2V0LWxpc3Q/Y2xpZW50SWQ9JHtjbGllbnR9JmZyb21EYXRlPSR7ZnJvbURhdGV9JnRvRGF0ZT0ke3RvRGF0ZX0mc2VhcmNoVmFsdWU9JHtzZWFyY2h2YWx1ZX0mbGltaXQ9JHtsaW1pdH0mb2Zmc2V0PSR7b2Zmc2V0fSZpc0V4cG9ydD0ke2lzRXhwb3J0fSZzb3J0Qnk9JHtzb3J0Qnl9JnNvcnRPcmRlcj0ke3NvcnRPcmRlcn1gKTtcclxuICB9XHJcblxyXG4gIGdldFRpY2tldExpc3RFeHBvcnRBcGkoY2xpZW50OiBhbnksIGZyb21EYXRlOiBhbnksIHRvRGF0ZTogYW55LCBzZWFyY2h2YWx1ZTphbnksIGxpbWl0OmFueSwgb2Zmc2V0OmFueSwgaXNFeHBvcnQ6YW55LHNvcnRCeTphbnksc29ydE9yZGVyOmFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLmZvb3RmYWxsRGlyYXBpVXJsfS90aWNrZXQtbGlzdD9jbGllbnRJZD0ke2NsaWVudH0mZnJvbURhdGU9JHtmcm9tRGF0ZX0mdG9EYXRlPSR7dG9EYXRlfSZzZWFyY2hWYWx1ZT0ke3NlYXJjaHZhbHVlfSZsaW1pdD0ke2xpbWl0fSZvZmZzZXQ9JHtvZmZzZXR9JmlzRXhwb3J0PSR7aXNFeHBvcnR9JnNvcnRCeT0ke3NvcnRCeX0mc29ydE9yZGVyPSR7c29ydE9yZGVyfWAse3Jlc3BvbnNlVHlwZTogJ2FycmF5YnVmZmVyJ30pO1xyXG4gIH1cclxuXHJcblxyXG5cclxuZ2V0VGlja2V0c0FwaShzdG9yZTogYW55LCBmcm9tRGF0ZTogYW55LCB0b0RhdGU6IGFueSwgcmV2b3BzVHlwZTogYW55LCBzdGF0dXM6IGFueSwgYWN0aW9uOiBhbnksIG9mZnNldDogYW55LCBsaW1pdDogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICBsZXQgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKVxyXG4gICAgLnNldCgnc3RvcmVJZCcsIHN0b3JlKVxyXG4gICAgLnNldCgnZnJvbURhdGUnLCBmcm9tRGF0ZSlcclxuICAgIC5zZXQoJ3RvRGF0ZScsIHRvRGF0ZSlcclxuICAgIC5zZXQoJ29mZnNldCcsIG9mZnNldClcclxuICAgIC5zZXQoJ2xpbWl0JywgbGltaXQpO1xyXG4gIGlmIChyZXZvcHNUeXBlKSB7XHJcbiAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdyZXZvcHNUeXBlJywgcmV2b3BzVHlwZSk7XHJcbiAgfVxyXG4gIGlmIChzdGF0dXMpIHtcclxuICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ3N0YXR1cycsIHN0YXR1cyk7XHJcbiAgfVxyXG4gIGlmIChhY3Rpb24pIHtcclxuICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ2FjdGlvbicsIGFjdGlvbik7XHJcbiAgfVxyXG4gIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuZm9vdGZhbGxEaXJhcGlVcmx9L2dldC10aWNrZXRzYCwgeyBwYXJhbXMgfSk7XHJcbn1cclxuXHJcbmdldFRhZ2dlZFN0b3Jlc0FwaShjbGllbnQ6IGFueSwgZnJvbURhdGU6IGFueSwgdG9EYXRlOiBhbnksc2VhcmNoVmFsdWU6YW55LCBjbHVzdGVyczogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICBsZXQgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKVxyXG4gICAgLnNldCgnY2xpZW50SWQnLCBjbGllbnQpXHJcbiAgICAuc2V0KCdmcm9tRGF0ZScsIGZyb21EYXRlKVxyXG4gICAgLnNldCgndG9EYXRlJywgdG9EYXRlKTsgLy8gQWRkIHNlYXJjaFZhbHVlIGFzIGFuIGVtcHR5IHN0cmluZyBpZiBub3QgcHJvdmlkZWRcclxuICAgIC8vIE9ubHkgYWRkICdjbHVzdGVycycgaWYgaXQncyBub3QgbnVsbCwgdW5kZWZpbmVkLCBvciBhbiBlbXB0eSBhcnJheS9zdHJpbmdcclxuICAgIGlmIChzZWFyY2hWYWx1ZSkge1xyXG4gICAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ3NlYXJjaFZhbHVlJywgc2VhcmNoVmFsdWUpO1xyXG4gICAgICB9XHJcbiAgaWYgKGNsdXN0ZXJzICYmIGNsdXN0ZXJzLmxlbmd0aCA+IDApIHtcclxuICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ2NsdXN0ZXJzJywgY2x1c3RlcnMpO1xyXG4gIH1cclxuICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLmZvb3RmYWxsRGlyYXBpVXJsfS9nZXQtdGFnZ2VkLXN0b3Jlc2AsIHsgcGFyYW1zIH0pO1xyXG59XHJcblxyXG5cclxuZ2V0VXBkYXRlU3RhdHVzQXBpKGRhdGE6YW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICBjb25zdCB1cmwgPSBgJHt0aGlzLmZvb3RmYWxsRGlyYXBpVXJsfS91cGRhdGUtc3RhdHVzYDtcclxuICByZXR1cm4gdGhpcy5odHRwLnB1dCh1cmwsIGRhdGEpO1xyXG59XHJcbiAgZ2V0Y2x1c3RlcnMoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy50cmFmZmljQXBpVXJsfS9oZWFkZXJjbHVzdGVyX3YyYCwgZGF0YSlcclxuICB9XHJcbn1cclxuIl19
|
|
295
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlja2V0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1tYW5hZ2UtdGlja2V0cy9zcmMvbGliL3NlcnZpY2VzL3RpY2tldC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQVksTUFBTSxlQUFlLENBQUM7QUFFckQsT0FBTyxFQUNMLGVBQWUsR0FNaEIsTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7QUFJbEQsTUFBTSxPQUFPLGFBQWE7SUFZSjtJQUEwQjtJQVg5QyxVQUFVLENBQU07SUFDaEIsYUFBYSxDQUFNO0lBQ25CLFdBQVcsQ0FBTTtJQUNqQixpQkFBaUIsQ0FBTTtJQUN2QixlQUFlLENBQU07SUFDckIsaUJBQWlCLENBQU07SUFDdkIsV0FBVyxDQUFNO0lBQ2pCLGFBQWEsQ0FBTTtJQUNuQixXQUFXLENBQU07SUFDakIsWUFBWSxDQUFLO0lBQ2pCLGVBQWUsR0FBRyxJQUFJLGVBQWUsQ0FBTSxJQUFJLENBQUMsQ0FBQztJQUNqRCxZQUFvQixJQUFnQixFQUFVLEVBQXNCO1FBQWhELFNBQUksR0FBSixJQUFJLENBQVk7UUFBVSxPQUFFLEdBQUYsRUFBRSxDQUFvQjtRQUNsRSxJQUFJLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUNwQyxJQUFJLEdBQUcsRUFBRTtnQkFDUCxJQUFJLENBQUMsVUFBVSxHQUFHLEdBQUcsQ0FBQyxVQUFVLENBQUM7Z0JBQ2pDLElBQUksQ0FBQyxhQUFhLEdBQUcsR0FBRyxDQUFDLGFBQWEsQ0FBQztnQkFDdkMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQztnQkFDL0MsSUFBSSxDQUFDLFdBQVcsR0FBRyxHQUFHLENBQUMsV0FBVyxDQUFDO2dCQUNuQyxJQUFJLENBQUMsZUFBZSxHQUFHLEdBQUcsQ0FBQyxlQUFlLENBQUM7Z0JBQzNDLElBQUksQ0FBQyxZQUFZLEdBQUcsR0FBRyxDQUFDLFlBQVksQ0FBQztnQkFDckMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQztnQkFDL0MsSUFBSSxDQUFDLFdBQVcsR0FBRyxHQUFHLENBQUMsV0FBVyxDQUFDO2dCQUNuQyxJQUFJLENBQUMsYUFBYSxHQUFHLEdBQUcsQ0FBQyxhQUFhLENBQUM7Z0JBQ3ZDLElBQUksQ0FBQyxXQUFXLEdBQUcsR0FBRyxDQUFDLFdBQVcsQ0FBQzthQUNwQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVcsQ0FBQyxNQUFXO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQU0sR0FBRyxJQUFJLENBQUMsVUFBVSxXQUFXLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUVELHNCQUFzQixDQUFDLElBQVM7UUFDOUIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FDbkIsR0FBRyxJQUFJLENBQUMsYUFBYSwwQkFBMEIsRUFDL0MsSUFBSSxFQUNKLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxDQUNoQyxDQUFDO0lBQ0osQ0FBQztJQUVELGVBQWUsQ0FBQyxJQUFTO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsYUFBYSxtQkFBbUIsRUFBRSxJQUFJLEVBQUU7WUFDcEUsWUFBWSxFQUFFLGFBQWE7U0FDNUIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGFBQWEsQ0FBQyxJQUFTO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsYUFBYSxpQkFBaUIsRUFBRSxJQUFJLEVBQUU7WUFDbEUsWUFBWSxFQUFFLGFBQWE7U0FDNUIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGFBQWEsQ0FBQyxJQUFTO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQU0sR0FBRyxJQUFJLENBQUMsYUFBYSxvQkFBb0IsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM5RSxDQUFDO0lBRUQsbUJBQW1CLENBQUMsSUFBUztRQUMzQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUNuQixHQUFHLElBQUksQ0FBQyxhQUFhLDBCQUEwQixFQUMvQyxJQUFJLENBQ0wsQ0FBQztJQUNKLENBQUM7SUFFRCxZQUFZLENBQUMsSUFBUztRQUNwQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFNLEdBQUcsSUFBSSxDQUFDLGFBQWEsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDN0UsQ0FBQztJQUVELGVBQWUsQ0FBQyxJQUFTO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQ25CLEdBQUcsSUFBSSxDQUFDLGFBQWEscUJBQXFCLEVBQzFDLElBQUksQ0FDTCxDQUFDO0lBQ0osQ0FBQztJQUVELFVBQVUsQ0FBQyxJQUFTO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQU0sR0FBRyxJQUFJLENBQUMsYUFBYSxpQkFBaUIsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUMzRSxDQUFDO0lBRUQsaUJBQWlCLENBQUMsSUFBUztRQUN6QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUNuQixHQUFHLElBQUksQ0FBQyxhQUFhLGdDQUFnQyxFQUNyRCxJQUFJLENBQ0wsQ0FBQztJQUNKLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxNQUFXO1FBQzNCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQU0sR0FBRyxJQUFJLENBQUMsVUFBVSxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVELFlBQVksQ0FBQyxJQUFRO1FBQ25CLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQU0sR0FBRyxJQUFJLENBQUMsYUFBYSxrQkFBa0IsRUFBRSxJQUFJLENBQUMsQ0FBQTtJQUMzRSxDQUFDO0lBQ0QsZUFBZSxDQUFDLElBQVE7UUFDdEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLHdCQUF3QixFQUFDLElBQUksQ0FBQyxDQUFBO0lBQ3pFLENBQUM7SUFDRCxxQkFBcUIsQ0FBQyxJQUFRO1FBQzVCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyx3QkFBd0IsRUFBQyxJQUFJLEVBQUMsRUFBQyxZQUFZLEVBQUUsYUFBYSxFQUFDLENBQUMsQ0FBQTtJQUN2RyxDQUFDO0lBQ0QsYUFBYTtRQUNYLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxVQUFVLENBQUMsQ0FBQTtJQUNyRCxDQUFDO0lBQ0QsV0FBVztRQUNULE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxjQUFjLENBQUMsQ0FBQTtJQUN6RCxDQUFDO0lBQ0QsY0FBYyxDQUFDLElBQVE7UUFDckIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLHFCQUFxQixFQUFDLElBQUksQ0FBQyxDQUFBO0lBQ3ZFLENBQUM7SUFDRCxnQkFBZ0IsQ0FBQyxJQUFRO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxpQ0FBaUMsSUFBSSxDQUFDLE9BQU8sYUFBYSxJQUFJLENBQUMsSUFBSSxXQUFXLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFBO0lBRXRJLENBQUM7SUFDRCxZQUFZLENBQUMsSUFBUTtRQUNwQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsZUFBZSxFQUFDLElBQUksQ0FBQyxDQUFBO0lBQy9ELENBQUM7SUFDRCxpQkFBaUIsQ0FBQyxJQUFRO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLG9CQUFvQixFQUFDLElBQUksQ0FBQyxDQUFBO0lBQzFFLENBQUM7SUFDRCxXQUFXLENBQUMsSUFBUTtRQUNuQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixjQUFjLEVBQUMsSUFBSSxDQUFDLENBQUE7SUFDcEUsQ0FBQztJQUNBLGtCQUFrQixDQUFDLElBQVM7UUFDMUIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FDbkIsR0FBRyxJQUFJLENBQUMsYUFBYSwwQkFBMEIsRUFDL0MsSUFBSSxDQUNMLENBQUM7SUFDSixDQUFDO0lBRUQsc0JBQXNCLENBQUMsSUFBUztRQUM5QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUNuQixHQUFHLElBQUksQ0FBQyxhQUFhLDBCQUEwQixFQUMvQyxJQUFJLEVBQ0osRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLENBQ2hDLENBQUM7SUFDSixDQUFDO0lBR0QsY0FBYyxDQUFDLElBQVM7UUFDdEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FDbEIsR0FBRyxJQUFJLENBQUMsV0FBVywwQkFBMEIsSUFBSSxFQUFFLFFBQVEsWUFBWSxJQUFJLEVBQUUsT0FBTyxjQUFjLElBQUksRUFBRSxTQUFTLFdBQVcsSUFBSSxFQUFFLE1BQU0sYUFBYSxJQUFJLEVBQUUsUUFBUSxlQUFlLElBQUksRUFBRSxVQUFVLEVBQUUsQ0FDck0sQ0FBQztJQUNKLENBQUM7SUFDRCx1QkFBdUIsQ0FBQyxJQUFTO1FBQy9CLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQ2xCLEdBQUcsSUFBSSxDQUFDLFdBQVcsMEJBQTBCLElBQUksRUFBRSxRQUFRLFlBQVksSUFBSSxFQUFFLE9BQU8sY0FBYyxJQUFJLEVBQUUsU0FBUyxXQUFXLElBQUksRUFBRSxNQUFNLGFBQWEsSUFBSSxFQUFFLFFBQVEsZUFBZSxJQUFJLEVBQUUsVUFBVSxFQUFFLEVBQ3BNLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxDQUNoQyxDQUFDO0lBQ0osQ0FBQztJQUVELG1CQUFtQixDQUNqQixNQUFXLEVBQ1gsUUFBYSxFQUNiLE1BQVcsRUFDWCxTQUFhO1FBRWIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FDbEIsR0FBRyxJQUFJLENBQUMsaUJBQWlCLDRCQUE0QixNQUFNLGFBQWEsUUFBUSxXQUFXLE1BQU0sY0FBYyxTQUFTLEVBQUUsQ0FDM0gsQ0FBQztJQUNKLENBQUM7SUFFRCxtQkFBbUIsQ0FDakIsTUFBVyxFQUNYLFFBQWEsRUFDYixNQUFXLEVBQ1gsV0FBZ0IsRUFDaEIsS0FBVSxFQUNWLE1BQVcsRUFDWCxRQUFhLEVBQ2IsTUFBVyxFQUNYLFNBQWM7UUFFZCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUNsQixHQUFHLElBQUksQ0FBQyxpQkFBaUIseUJBQXlCLE1BQU0sYUFBYSxRQUFRLFdBQVcsTUFBTSxnQkFBZ0IsV0FBVyxVQUFVLEtBQUssV0FBVyxNQUFNLGFBQWEsUUFBUSxXQUFXLE1BQU0sY0FBYyxTQUFTLEVBQUUsQ0FDek4sQ0FBQztJQUNKLENBQUM7SUFFSCxnQkFBZ0IsQ0FDZCxNQUFXLEVBQ1gsUUFBYSxFQUNiLE1BQVcsRUFDWCxXQUFnQixFQUNoQixLQUFVLEVBQ1YsTUFBVyxFQUNYLFFBQWEsRUFDYixNQUFXLEVBQ1gsU0FBYyxFQUNkLFNBQWMsRUFDZCxjQUEyQixFQUUzQixpQkFBd0IsRUFBRSxFQUMxQixtQkFBK0IsSUFBSSxFQUNuQyxtQkFBK0IsSUFBSSxFQUNuQyxnQkFBNEIsSUFBSSxFQUNoQyxxQkFBNEIsRUFBRSxFQUM5QixzQkFBNkIsRUFBRTtRQUcvQixJQUFJLE1BQU0sR0FBRyxJQUFJLFVBQVUsRUFBRTthQUMxQixHQUFHLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQzthQUN2QixHQUFHLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQzthQUN6QixHQUFHLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQzthQUNyQixHQUFHLENBQUMsYUFBYSxFQUFFLFdBQVcsSUFBSSxFQUFFLENBQUM7YUFDckMsR0FBRyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUM7YUFDbkIsR0FBRyxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUM7YUFDckIsR0FBRyxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUM7YUFDekIsR0FBRyxDQUFDLFFBQVEsRUFBRSxNQUFNLElBQUksRUFBRSxDQUFDO2FBQzNCLEdBQUcsQ0FBQyxXQUFXLEVBQUUsU0FBUyxDQUFDO2FBQzNCLEdBQUcsQ0FBQyxXQUFXLEVBQUUsU0FBUyxJQUFJLEVBQUUsQ0FBQyxDQUFBO1FBQ2xDLDZEQUE2RDtRQUNqRSxJQUFJLGNBQWMsRUFBRTtZQUNsQixNQUFNLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsRUFBRSxjQUFjLENBQUMsQ0FBQztTQUN2RDtRQUVDLGdCQUFnQjtRQUNoQixNQUFNLFFBQVEsR0FBRyxDQUFDLEdBQVcsRUFBRSxHQUE2QixFQUFFLEVBQUU7WUFDOUQsTUFBTSxLQUFLLEdBQUcsR0FBRyxJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNyRCxNQUFNLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBRyxvQkFBb0I7UUFDekQsQ0FBQyxDQUFDO1FBRUYsTUFBTSxTQUFTLEdBQUcsQ0FBQyxHQUFXLEVBQUUsS0FBNkIsRUFBRSxFQUFFO1lBQy9ELE1BQU0sR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQy9ELENBQUMsQ0FBQztRQUVGLFNBQVM7UUFDVCxRQUFRLENBQUMsZ0JBQWdCLEVBQUUsY0FBYyxDQUFDLENBQUM7UUFDM0MsUUFBUSxDQUFDLG9CQUFvQixFQUFFLGtCQUFrQixDQUFDLENBQUM7UUFDbkQsUUFBUSxDQUFDLHFCQUFxQixFQUFFLG1CQUFtQixDQUFDLENBQUM7UUFFckQsaUJBQWlCO1FBQ2pCLFNBQVMsQ0FBQyxrQkFBa0IsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ2hELFNBQVMsQ0FBQyxrQkFBa0IsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ2hELFNBQVMsQ0FBQyxlQUFlLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFFMUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsY0FBYyxFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBSUMseUJBQXlCLENBQ3ZCLE1BQVcsRUFDWCxRQUFhLEVBQ2IsTUFBVyxFQUNYLFdBQWdCLEVBQ2hCLEtBQVUsRUFDVixNQUFXLEVBQ1gsUUFBYSxFQUNiLE1BQVcsRUFDWCxTQUFjO1FBRWQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FDbEIsR0FBRyxJQUFJLENBQUMsaUJBQWlCLHlCQUF5QixNQUFNLGFBQWEsUUFBUSxXQUFXLE1BQU0sZ0JBQWdCLFdBQVcsVUFBVSxLQUFLLFdBQVcsTUFBTSxhQUFhLFFBQVEsV0FBVyxNQUFNLGNBQWMsU0FBUyxFQUFFLEVBQ3hOLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxDQUNoQyxDQUFDO0lBQ0osQ0FBQztJQUVILHNCQUFzQixDQUNwQixNQUFXLEVBQ1gsUUFBYSxFQUNiLE1BQVcsRUFDWCxXQUFnQixFQUNoQixLQUFVLEVBQ1YsTUFBVyxFQUNYLFFBQWEsRUFDYixNQUFXLEVBQ1gsU0FBYyxFQUNkLFNBQWMsRUFDZCxjQUE4QixFQUM5QixPQU9DO1FBRUQsSUFBSSxHQUFHLEdBQ0wsR0FBRyxJQUFJLENBQUMsaUJBQWlCLGVBQWU7WUFDeEMsWUFBWSxNQUFNLEVBQUU7WUFDcEIsYUFBYSxRQUFRLEVBQUU7WUFDdkIsV0FBVyxNQUFNLEVBQUU7WUFDbkIsZ0JBQWdCLFdBQVcsRUFBRTtZQUM3QixVQUFVLEtBQUssRUFBRTtZQUNqQixXQUFXLE1BQU0sRUFBRTtZQUNuQixhQUFhLFFBQVEsRUFBRTtZQUN2QixXQUFXLE1BQU0sRUFBRTtZQUNuQixjQUFjLFNBQVMsRUFBRTtZQUN6QixjQUFjLFNBQVMsRUFBRSxDQUFDO1FBRTVCLElBQUksY0FBYyxFQUFFO1lBQ2xCLEdBQUcsSUFBSSxtQkFBbUIsY0FBYyxFQUFFLENBQUM7U0FDNUM7UUFFRCxJQUFJLE9BQU8sRUFBRTtZQUNYLElBQUksT0FBTyxDQUFDLGNBQWMsRUFBRSxNQUFNLEVBQUU7Z0JBQ2xDLEdBQUcsSUFBSSxtQkFBbUIsa0JBQWtCLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO2FBQ2xGO1lBRUQsSUFBSSxPQUFPLENBQUMsa0JBQWtCLEVBQUUsTUFBTSxFQUFFO2dCQUN0QyxHQUFHLElBQUksdUJBQXVCLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO2FBQzFGO1lBRUQsSUFBSSxPQUFPLENBQUMsbUJBQW1CLEVBQUUsTUFBTSxFQUFFO2dCQUN2QyxHQUFHLElBQUksd0JBQXdCLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO2FBQzVGO1lBRUQsSUFBSSxPQUFPLENBQUMsZ0JBQWdCLEVBQUU7Z0JBQzVCLEdBQUcsSUFBSSxxQkFBcUIsa0JBQWtCLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQzthQUM1RTtZQUVELElBQUksT0FBTyxDQUFDLGdCQUFnQixFQUFFO2dCQUM1QixHQUFHLElBQUkscUJBQXFCLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUM7YUFDNUU7WUFFRCxJQUFJLE9BQU8sQ0FBQyxhQUFhLEVBQUU7Z0JBQ3pCLEdBQUcsSUFBSSxrQkFBa0Isa0JBQWtCLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUM7YUFDdEU7U0FDRjtRQUVELE1BQU0sT0FBTyxHQUFHLFFBQVE7WUFDdEIsQ0FBQyxDQUFDLEVBQUUsWUFBWSxFQUFFLGFBQXVCLEVBQUU7WUFDM0MsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUVQLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFHQyxhQUFhLENBQ1gsS0FBVSxFQUNWLFFBQWEsRUFDYixNQUFXLEVBQ1gsVUFBZSxFQUNmLE1BQVcsRUFDWCxNQUFXLEVBQ1gsTUFBVyxFQUNYLEtBQVU7UUFFVixJQUFJLE1BQU0sR0FBRyxJQUFJLFVBQVUsRUFBRTthQUMxQixHQUFHLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQzthQUNyQixHQUFHLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQzthQUN6QixHQUFHLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQzthQUNyQixHQUFHLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQzthQUNyQixHQUFHLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3ZCLElBQUksVUFBVSxFQUFFO1lBQ2QsTUFBTSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1NBQy9DO1FBQ0QsSUFBSSxNQUFNLEVBQUU7WUFDVixNQUFNLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7U0FDdkM7UUFDRCxJQUFJLE1BQU0sRUFBRTtZQUNWLE1BQU0sR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztTQUN2QztRQUNELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLGNBQWMsRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDNUUsQ0FBQztJQUVELGdCQUFnQixDQUFDLFFBQWE7UUFDNUIsSUFBSSxNQUFNLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3hELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLGNBQWMsRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDNUUsQ0FBQztJQUVELGtCQUFrQixDQUNoQixNQUFXLEVBQ1gsUUFBYSxFQUNiLE1BQVcsRUFDWCxXQUFnQixFQUNoQixRQUFhLEVBQ2IsU0FBYztRQUVkLElBQUksTUFBTSxHQUFHLElBQUksVUFBVSxFQUFFO2FBQzFCLEdBQUcsQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDO2FBQ3ZCLEdBQUcsQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDO2FBQ3pCLEdBQUcsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxxREFBcUQ7UUFDL0UsNEVBQTRFO1FBQzVFLElBQUksV0FBVyxFQUFFO1lBQ2YsTUFBTSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1NBQ2pEO1FBRUQsSUFBSSxRQUFRLElBQUksUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDbkMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1NBQzNDO1FBQ0QsSUFBSSxTQUFTLEVBQUU7WUFDYixNQUFNLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsU0FBUyxDQUFDLENBQUM7U0FDN0M7UUFDRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixvQkFBb0IsRUFBRTtZQUNsRSxNQUFNO1NBQ1AsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGtCQUFrQixDQUFDLElBQVM7UUFDMUIsTUFBTSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsaUJBQWlCLGdCQUFnQixDQUFDO1FBQ3RELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxzQkFBc0IsQ0FBQyxJQUFTO1FBQzlCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLHFCQUFxQixFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzlFLENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxJQUFTO1FBQzVCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLG1CQUFtQixFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFFRCx3QkFBd0IsQ0FBQyxJQUFTO1FBQ2hDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQ25CLEdBQUcsSUFBSSxDQUFDLGlCQUFpQix1QkFBdUIsRUFDaEQsSUFBSSxDQUNMLENBQUM7SUFDSixDQUFDO0lBRUgsc0JBQXNCLENBQUMsSUFBUTtRQUM3QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixnQkFBZ0IsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBQ0QsdUJBQXVCLENBQUMsSUFBUTtRQUM5QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLGlCQUFpQix3QkFBd0IsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNqRixDQUFDO0lBQ0MsV0FBVyxDQUFDLElBQVM7UUFDbkIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxhQUFhLG1CQUFtQixFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3hFLENBQUM7SUFFRCxjQUFjLENBQUMsUUFBYSxFQUFDLElBQVE7UUFDbkMsSUFBSSxNQUFNLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQzthQUNwRCxHQUFHLENBQUMsTUFBTSxFQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLGdCQUFnQixFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUM5RSxDQUFDO0lBRUQsa0JBQWtCLENBQUMsSUFBUztRQUMxQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixnQkFBZ0IsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRUQsc0JBQXNCLENBQUMsSUFBUztRQUM5QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUNuQixHQUFHLElBQUksQ0FBQyxpQkFBaUIsc0JBQXNCLEVBQy9DLElBQUksQ0FDTCxDQUFDO0lBQ0osQ0FBQztJQUVELGVBQWUsQ0FBQyxRQUFhO1FBQzNCLElBQUksTUFBTSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUN4RCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLFlBQVksZ0NBQWdDLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBR3pGLENBQUM7SUFDTyxZQUFZLENBQU07SUFFMUIsZUFBZSxDQUFDLElBQVM7UUFDdkIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7SUFDM0IsQ0FBQztJQUVELGVBQWU7UUFDYixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDM0IsQ0FBQzt3R0FqY1UsYUFBYTs0R0FBYixhQUFhLGNBRlosTUFBTTs7NEZBRVAsYUFBYTtrQkFIekIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XHJcbmltcG9ydCB7IEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgR2xvYmFsU3RhdGVTZXJ2aWNlIH0gZnJvbSBcInRhbmdvLWFwcC11aS1nbG9iYWxcIjtcclxuaW1wb3J0IHtcclxuICBCZWhhdmlvclN1YmplY3QsXHJcbiAgT2JzZXJ2YWJsZSxcclxuICBjYXRjaEVycm9yLFxyXG4gIG1hcCxcclxuICBvZixcclxuICB0aHJvd0Vycm9yLFxyXG59IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IEh0dHBQYXJhbXMgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46IFwicm9vdFwiLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGlja2V0U2VydmljZSB7XHJcbiAgdXNlckFwaVVybDogYW55O1xyXG4gIHRpY2tldHNBcGlVcmw6IGFueTtcclxuICBhdWRpdEFwaVVybDogYW55O1xyXG4gIGF1ZGl0bWV0cmljQXBpVXJsOiBhbnk7XHJcbiAgem9uZWF1ZGl0QXBpVXJsOiBhbnk7XHJcbiAgZm9vdGZhbGxEaXJhcGlVcmw6IGFueTtcclxuICBmb290ZmFsbENETjogYW55O1xyXG4gIHRyYWZmaWNBcGlVcmw6IGFueTtcclxuICByZXZvcEFwaVVybDogYW55O1xyXG4gIGNsaWVudEFwaVVybDphbnk7XHJcbiAgZHJvcERvd25UcmlnZ2VyID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnk+KG51bGwpO1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogSHR0cENsaWVudCwgcHJpdmF0ZSBnczogR2xvYmFsU3RhdGVTZXJ2aWNlKSB7XHJcbiAgICB0aGlzLmdzLmVudmlyb25tZW50LnN1YnNjcmliZSgoZW52KSA9PiB7XHJcbiAgICAgIGlmIChlbnYpIHtcclxuICAgICAgICB0aGlzLnVzZXJBcGlVcmwgPSBlbnYudXNlckFwaVVybDtcclxuICAgICAgICB0aGlzLnRpY2tldHNBcGlVcmwgPSBlbnYudGlja2V0c0FwaVVybDtcclxuICAgICAgICB0aGlzLmF1ZGl0bWV0cmljQXBpVXJsID0gZW52LmF1ZGl0bWV0cmljQXBpVXJsO1xyXG4gICAgICAgIHRoaXMuYXVkaXRBcGlVcmwgPSBlbnYuYXVkaXRBcGlVcmw7XHJcbiAgICAgICAgdGhpcy56b25lYXVkaXRBcGlVcmwgPSBlbnYuem9uZWF1ZGl0QXBpVXJsO1xyXG4gICAgICAgIHRoaXMuY2xpZW50QXBpVXJsID0gZW52LmNsaWVudEFwaVVybDtcclxuICAgICAgICB0aGlzLmZvb3RmYWxsRGlyYXBpVXJsID0gZW52LmZvb3RmYWxsRGlyYXBpVXJsO1xyXG4gICAgICAgIHRoaXMuZm9vdGZhbGxDRE4gPSBlbnYuZm9vdGZhbGxDRE47XHJcbiAgICAgICAgdGhpcy50cmFmZmljQXBpVXJsID0gZW52LnRyYWZmaWNBcGlVcmw7XHJcbiAgICAgICAgdGhpcy5yZXZvcEFwaVVybCA9IGVudi5yZXZvcEFwaVVybDtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBnZXRVc2VyTGlzdChwYXJhbXM6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihgJHt0aGlzLnVzZXJBcGlVcmx9L2dldC1saXN0YCwgcGFyYW1zKTtcclxuICB9XHJcblxyXG4gIGV4cG9ydEluc3RhbGxhdGlvbkxpc3QoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMudGlja2V0c0FwaVVybH0vaW5mcmEvaW5zdGFsbGF0aW9uVGFibGVgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgICB7IHJlc3BvbnNlVHlwZTogXCJhcnJheWJ1ZmZlclwiIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBleHBvcnRJbmZyYUxpc3QoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy50aWNrZXRzQXBpVXJsfS9pbmZyYS9pbmZyYVRhYmxlYCwgZGF0YSwge1xyXG4gICAgICByZXNwb25zZVR5cGU6IFwiYXJyYXlidWZmZXJcIixcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZXhwb3J0TWF0TGlzdChkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRpY2tldHNBcGlVcmx9L2luZnJhL21hdFRhYmxlYCwgZGF0YSwge1xyXG4gICAgICByZXNwb25zZVR5cGU6IFwiYXJyYXlidWZmZXJcIixcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0U290cmVzTGlzdChkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KGAke3RoaXMudGlja2V0c0FwaVVybH0vaW5mcmEvc3RvcmVGaWx0ZXJgLCBkYXRhKTtcclxuICB9XHJcblxyXG4gIGdldEluc3RhbGxhdGlvbkxpc3QoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihcclxuICAgICAgYCR7dGhpcy50aWNrZXRzQXBpVXJsfS9pbmZyYS9pbnN0YWxsYXRpb25UYWJsZWAsXHJcbiAgICAgIGRhdGFcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRJbmZyYUxpc3QoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihgJHt0aGlzLnRpY2tldHNBcGlVcmx9L2luZnJhL2luZnJhVGFibGVgLCBkYXRhKTtcclxuICB9XHJcblxyXG4gIGdldEFzc2lnblRpY2tldChkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KFxyXG4gICAgICBgJHt0aGlzLnRpY2tldHNBcGlVcmx9L2luZnJhL2Fzc2lnblRpY2tldGAsXHJcbiAgICAgIGRhdGFcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRNYXRMaXN0KGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7dGhpcy50aWNrZXRzQXBpVXJsfS9pbmZyYS9tYXRUYWJsZWAsIGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlVGlja2V0SXNzdWUoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihcclxuICAgICAgYCR7dGhpcy50aWNrZXRzQXBpVXJsfS9lbXBsb3llZVRyYW5pbmcvdXBkYXRlY29tbWVudGAsXHJcbiAgICAgIGRhdGFcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRVc2VyQWN0aXZlTGlzdChwYXJhbXM6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihgJHt0aGlzLnVzZXJBcGlVcmx9L2xpc3RgLCBwYXJhbXMpO1xyXG4gIH1cclxuXHJcbiAgZ2V0QWxsQ291bnRzKGRhdGE6YW55KXtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KGAke3RoaXMudGlja2V0c0FwaVVybH0vaW5mcmEvYWxsQ291bnRzYCwgZGF0YSlcclxuICB9XHJcbiAgZ2V0c3RvcmVNZXRyaWNzKGRhdGE6YW55KXtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmF1ZGl0QXBpVXJsfS9tZXRyaWNzL3N0b3JlLW1ldHJpY3NgLGRhdGEpXHJcbiAgfVxyXG4gIGdldHN0b3JlTWV0cmljc0V4cG9ydChkYXRhOmFueSl7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5hdWRpdEFwaVVybH0vbWV0cmljcy9zdG9yZS1tZXRyaWNzYCxkYXRhLHtyZXNwb25zZVR5cGU6ICdhcnJheWJ1ZmZlcid9KVxyXG4gIH1cclxuICBnZXRjbGllbnRMaXN0KCl7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLmF1ZGl0QXBpVXJsfS9jbGllbnRzYClcclxuICB9XHJcbiAgZ2V0dXNlckxpc3QoKXtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuYXVkaXRBcGlVcmx9L3RhbmdvLXVzZXJzYClcclxuICB9XHJcbiAgYXVkaXRyZXRyaWdnZXIoZGF0YTphbnkpe1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuYXVkaXRBcGlVcmx9L21ldHJpY3MvcmUtdHJpZ2dlcmAsZGF0YSlcclxuIH1cclxuIGdldGZvb3RmYWxsY291bnQoZGF0YTphbnkpe1xyXG4gICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMucmV2b3BBcGlVcmx9L3N0b3JlLXByb2Nlc3NlZC1kYXRhP3N0b3JlSWQ9JHtkYXRhLnN0b3JlSWR9JmZyb21EYXRlPSR7ZGF0YS5EYXRlfSZ0b0RhdGU9JHtkYXRhLkRhdGV9YClcclxuICBcclxuIH1cclxuIGdldHN0b3JlTGlzdChkYXRhOmFueSl7XHJcbiAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuYXVkaXRBcGlVcmx9L2F1ZGl0LXN0b3Jlc2AsZGF0YSlcclxuIH1cclxuIGNoZWNrVGlja2V0RXhpc3RzKGRhdGE6YW55KXtcclxuICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5mb290ZmFsbERpcmFwaVVybH0vY2hlY2tUaWNrZXRFeGlzdHNgLGRhdGEpXHJcbiB9XHJcbiBtZXJnZXRpY2tldChkYXRhOmFueSl7XHJcbiAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuZm9vdGZhbGxEaXJhcGlVcmx9L21lcmdldGlja2V0YCxkYXRhKVxyXG4gfVxyXG4gIGdldERhdGFNaXNtYXRoTGlzdChkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KFxyXG4gICAgICBgJHt0aGlzLnRpY2tldHNBcGlVcmx9L2luZnJhL2RhdGFNaXNtYXRjaFRhYmxlYCxcclxuICAgICAgZGF0YVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGV4cG9ydERhdGFNaXNtYXRjaExpc3QoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMudGlja2V0c0FwaVVybH0vaW5mcmEvZGF0YU1pc21hdGNoVGFibGVgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgICB7IHJlc3BvbnNlVHlwZTogXCJhcnJheWJ1ZmZlclwiIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuXHJcbiAgZ2V0QXVkaXRJbWFnZXMoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChcclxuICAgICAgYCR7dGhpcy5hdWRpdEFwaVVybH0vYXVkaXQtaW1hZ2VzP2ZpbGVEYXRlPSR7ZGF0YT8uZmlsZURhdGV9JnN0b3JlSWQ9JHtkYXRhPy5zdG9yZUlkfSZpbWFnZVR5cGU9JHtkYXRhPy5pbWFnZVR5cGV9JmV4cG9ydD0ke2RhdGE/LmV4cG9ydH0mem9uZU5hbWU9JHtkYXRhPy56b25lTmFtZX0mbW9kdWxlVHlwZT0ke2RhdGE/Lm1vZHVsZVR5cGV9YFxyXG4gICAgKTtcclxuICB9XHJcbiAgRXhwb3J0QXVkaXRJbWFnZXNhc3hsc3goZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChcclxuICAgICAgYCR7dGhpcy5hdWRpdEFwaVVybH0vYXVkaXQtaW1hZ2VzP2ZpbGVEYXRlPSR7ZGF0YT8uZmlsZURhdGV9JnN0b3JlSWQ9JHtkYXRhPy5zdG9yZUlkfSZpbWFnZVR5cGU9JHtkYXRhPy5pbWFnZVR5cGV9JmV4cG9ydD0ke2RhdGE/LmV4cG9ydH0mem9uZU5hbWU9JHtkYXRhPy56b25lTmFtZX0mbW9kdWxlVHlwZT0ke2RhdGE/Lm1vZHVsZVR5cGV9YCxcclxuICAgICAgeyByZXNwb25zZVR5cGU6IFwiYXJyYXlidWZmZXJcIiB9XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0VGlja2V0U3VtbWFyeUFwaShcclxuICAgIGNsaWVudDogYW55LFxyXG4gICAgZnJvbURhdGU6IGFueSxcclxuICAgIHRvRGF0ZTogYW55LFxyXG4gICAgdGFuZ29UeXBlOmFueSxcclxuICApOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoXHJcbiAgICAgIGAke3RoaXMuZm9vdGZhbGxEaXJhcGlVcmx9L3RpY2tldC1zdW1tYXJ5P2NsaWVudElkPSR7Y2xpZW50fSZmcm9tRGF0ZT0ke2Zyb21EYXRlfSZ0b0RhdGU9JHt0b0RhdGV9JnRhbmdvVHlwZT0ke3RhbmdvVHlwZX1gXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0VGlja2V0TGlzdE9sZEFwaShcclxuICAgIGNsaWVudDogYW55LFxyXG4gICAgZnJvbURhdGU6IGFueSxcclxuICAgIHRvRGF0ZTogYW55LFxyXG4gICAgc2VhcmNodmFsdWU6IGFueSxcclxuICAgIGxpbWl0OiBhbnksXHJcbiAgICBvZmZzZXQ6IGFueSxcclxuICAgIGlzRXhwb3J0OiBhbnksXHJcbiAgICBzb3J0Qnk6IGFueSxcclxuICAgIHNvcnRPcmRlcjogYW55XHJcbiAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KFxyXG4gICAgICBgJHt0aGlzLmZvb3RmYWxsRGlyYXBpVXJsfS90aWNrZXQtbGlzdD9jbGllbnRJZD0ke2NsaWVudH0mZnJvbURhdGU9JHtmcm9tRGF0ZX0mdG9EYXRlPSR7dG9EYXRlfSZzZWFyY2hWYWx1ZT0ke3NlYXJjaHZhbHVlfSZsaW1pdD0ke2xpbWl0fSZvZmZzZXQ9JHtvZmZzZXR9JmlzRXhwb3J0PSR7aXNFeHBvcnR9JnNvcnRCeT0ke3NvcnRCeX0mc29ydE9yZGVyPSR7c29ydE9yZGVyfWBcclxuICAgICk7XHJcbiAgfVxyXG5cclxuZ2V0VGlja2V0TGlzdEFwaShcclxuICBjbGllbnQ6IGFueSxcclxuICBmcm9tRGF0ZTogYW55LFxyXG4gIHRvRGF0ZTogYW55LFxyXG4gIHNlYXJjaHZhbHVlOiBhbnksXHJcbiAgbGltaXQ6IGFueSxcclxuICBvZmZzZXQ6IGFueSxcclxuICBpc0V4cG9ydDogYW55LFxyXG4gIHNvcnRCeTogYW55LFxyXG4gIHNvcnRPcmRlcjogYW55LFxyXG4gIHRhbmdvVHlwZTogYW55LFxyXG4gIHBlcm1pc3Npb25UeXBlPzogYW55IHwgbnVsbCxcclxuXHJcbiAgZmlsdGVyQnlTdGF0dXM6IGFueVtdID0gW10sXHJcbiAgZmlsdGVyQnlSZXZpZXdlcjogYW55IHwgbnVsbCA9IG51bGwsXHJcbiAgZmlsdGVyQnlBcHByb3ZlcjogYW55IHwgbnVsbCA9IG51bGwsXHJcbiAgZmlsdGVyQnlUYW5nbzogYW55IHwgbnVsbCA9IG51bGwsXHJcbiAgZmlsdGVyQnlSZXZpZXdlZEJ5OiBhbnlbXSA9IFtdLFxyXG4gIGZpbGV0ZXJCeUFwcHJvdmVkQnk6IGFueVtdID0gW10sXHJcbik6IE9ic2VydmFibGU8YW55PiB7XHJcblxyXG4gIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpXHJcbiAgICAuc2V0KCdjbGllbnRJZCcsIGNsaWVudClcclxuICAgIC5zZXQoJ2Zyb21EYXRlJywgZnJvbURhdGUpXHJcbiAgICAuc2V0KCd0b0RhdGUnLCB0b0RhdGUpXHJcbiAgICAuc2V0KCdzZWFyY2hWYWx1ZScsIHNlYXJjaHZhbHVlIHx8ICcnKVxyXG4gICAgLnNldCgnbGltaXQnLCBsaW1pdClcclxuICAgIC5zZXQoJ29mZnNldCcsIG9mZnNldClcclxuICAgIC5zZXQoJ2lzRXhwb3J0JywgaXNFeHBvcnQpXHJcbiAgICAuc2V0KCdzb3J0QnknLCBzb3J0QnkgfHwgJycpXHJcbiAgICAuc2V0KCdzb3J0T3JkZXInLCBzb3J0T3JkZXIpXHJcbiAgICAuc2V0KCd0YW5nb1R5cGUnLCB0YW5nb1R5cGUgfHwgJycpXHJcbiAgICAvLyDwn5SlIGFsd2F5cyBzZW5kIHBlcm1pc3Npb25UeXBlIGtleSAoZXZlbiBpZiBudWxsL3VuZGVmaW5lZClcclxuaWYgKHBlcm1pc3Npb25UeXBlKSB7XHJcbiAgcGFyYW1zID0gcGFyYW1zLnNldCgncGVybWlzc2lvblR5cGUnLCBwZXJtaXNzaW9uVHlwZSk7XHJcbn1cclxuXHJcbiAgLy8gc21hbGwgaGVscGVyc1xyXG4gIGNvbnN0IHNldEFycmF5ID0gKGtleTogc3RyaW5nLCBhcnI6IGFueVtdIHwgbnVsbCB8IHVuZGVmaW5lZCkgPT4ge1xyXG4gICAgY29uc3QgdmFsdWUgPSBhcnIgJiYgYXJyLmxlbmd0aCA/IGFyci5qb2luKCcsJykgOiAnJztcclxuICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoa2V5LCB2YWx1ZSk7ICAgLy8ga2V5IGFsd2F5cyBleGlzdHNcclxuICB9O1xyXG5cclxuICBjb25zdCBzZXRTY2FsYXIgPSAoa2V5OiBzdHJpbmcsIHZhbHVlOiBhbnkgfCBudWxsIHwgdW5kZWZpbmVkKSA9PiB7XHJcbiAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KGtleSwgdmFsdWUgIT0gbnVsbCA/IFN0cmluZyh2YWx1ZSkgOiAnJyk7XHJcbiAgfTtcclxuXHJcbiAgLy8gYXJyYXlzXHJcbiAgc2V0QXJyYXkoJ2ZpbHRlckJ5U3RhdHVzJywgZmlsdGVyQnlTdGF0dXMpO1xyXG4gIHNldEFycmF5KCdmaWx0ZXJCeVJldmlld2VkQnknLCBmaWx0ZXJCeVJldmlld2VkQnkpO1xyXG4gIHNldEFycmF5KCdmaWxldGVyQnlBcHByb3ZlZEJ5JywgZmlsZXRlckJ5QXBwcm92ZWRCeSk7XHJcblxyXG4gIC8vIHNjYWxhciBmaWx0ZXJzXHJcbiAgc2V0U2NhbGFyKCdmaWx0ZXJCeVJldmlld2VyJywgZmlsdGVyQnlSZXZpZXdlcik7XHJcbiAgc2V0U2NhbGFyKCdmaWx0ZXJCeUFwcHJvdmVyJywgZmlsdGVyQnlBcHByb3Zlcik7XHJcbiAgc2V0U2NhbGFyKCdmaWx0ZXJCeVRhbmdvJywgZmlsdGVyQnlUYW5nbyk7XHJcblxyXG4gIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuZm9vdGZhbGxEaXJhcGlVcmx9L3RpY2tldC1saXN0YCwgeyBwYXJhbXMgfSk7XHJcbn1cclxuXHJcblxyXG5cclxuICBnZXRUaWNrZXRMaXN0RXhwb3J0T2xkQXBpKFxyXG4gICAgY2xpZW50OiBhbnksXHJcbiAgICBmcm9tRGF0ZTogYW55LFxyXG4gICAgdG9EYXRlOiBhbnksXHJcbiAgICBzZWFyY2h2YWx1ZTogYW55LFxyXG4gICAgbGltaXQ6IGFueSxcclxuICAgIG9mZnNldDogYW55LFxyXG4gICAgaXNFeHBvcnQ6IGFueSxcclxuICAgIHNvcnRCeTogYW55LFxyXG4gICAgc29ydE9yZGVyOiBhbnlcclxuICApOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoXHJcbiAgICAgIGAke3RoaXMuZm9vdGZhbGxEaXJhcGlVcmx9L3RpY2tldC1saXN0P2NsaWVudElkPSR7Y2xpZW50fSZmcm9tRGF0ZT0ke2Zyb21EYXRlfSZ0b0RhdGU9JHt0b0RhdGV9JnNlYXJjaFZhbHVlPSR7c2VhcmNodmFsdWV9JmxpbWl0PSR7bGltaXR9Jm9mZnNldD0ke29mZnNldH0maXNFeHBvcnQ9JHtpc0V4cG9ydH0mc29ydEJ5PSR7c29ydEJ5fSZzb3J0T3JkZXI9JHtzb3J0T3JkZXJ9YCxcclxuICAgICAgeyByZXNwb25zZVR5cGU6IFwiYXJyYXlidWZmZXJcIiB9XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbmdldFRpY2tldExpc3RFeHBvcnRBcGkoXHJcbiAgY2xpZW50OiBhbnksXHJcbiAgZnJvbURhdGU6IGFueSxcclxuICB0b0RhdGU6IGFueSxcclxuICBzZWFyY2h2YWx1ZTogYW55LFxyXG4gIGxpbWl0OiBhbnksXHJcbiAgb2Zmc2V0OiBhbnksXHJcbiAgaXNFeHBvcnQ6IGFueSxcclxuICBzb3J0Qnk6IGFueSxcclxuICBzb3J0T3JkZXI6IGFueSxcclxuICB0YW5nb1R5cGU6IGFueSxcclxuICBwZXJtaXNzaW9uVHlwZT86IHN0cmluZyB8IG51bGwsXHJcbiAgZmlsdGVycz86IHtcclxuICAgIGZpbHRlckJ5U3RhdHVzPzogc3RyaW5nW107XHJcbiAgICBmaWx0ZXJCeVJldmlld2VyPzogc3RyaW5nIHwgbnVsbDtcclxuICAgIGZpbHRlckJ5QXBwcm92ZXI/OiBzdHJpbmcgfCBudWxsO1xyXG4gICAgZmlsdGVyQnlUYW5nbz86IHN0cmluZyB8IG51bGw7XHJcbiAgICBmaWx0ZXJCeVJldmlld2VkQnk/OiBzdHJpbmdbXTtcclxuICAgIGZpbGV0ZXJCeUFwcHJvdmVkQnk/OiBzdHJpbmdbXTtcclxuICB9XHJcbik6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgbGV0IHVybCA9XHJcbiAgICBgJHt0aGlzLmZvb3RmYWxsRGlyYXBpVXJsfS90aWNrZXQtbGlzdD9gICtcclxuICAgIGBjbGllbnRJZD0ke2NsaWVudH1gICtcclxuICAgIGAmZnJvbURhdGU9JHtmcm9tRGF0ZX1gICtcclxuICAgIGAmdG9EYXRlPSR7dG9EYXRlfWAgK1xyXG4gICAgYCZzZWFyY2hWYWx1ZT0ke3NlYXJjaHZhbHVlfWAgK1xyXG4gICAgYCZsaW1pdD0ke2xpbWl0fWAgK1xyXG4gICAgYCZvZmZzZXQ9JHtvZmZzZXR9YCArXHJcbiAgICBgJmlzRXhwb3J0PSR7aXNFeHBvcnR9YCArXHJcbiAgICBgJnNvcnRCeT0ke3NvcnRCeX1gICtcclxuICAgIGAmc29ydE9yZGVyPSR7c29ydE9yZGVyfWAgK1xyXG4gICAgYCZ0YW5nb1R5cGU9JHt0YW5nb1R5cGV9YDtcclxuXHJcbiAgaWYgKHBlcm1pc3Npb25UeXBlKSB7XHJcbiAgICB1cmwgKz0gYCZwZXJtaXNzaW9uVHlwZT0ke3Blcm1pc3Npb25UeXBlfWA7XHJcbiAgfVxyXG5cclxuICBpZiAoZmlsdGVycykge1xyXG4gICAgaWYgKGZpbHRlcnMuZmlsdGVyQnlTdGF0dXM/Lmxlbmd0aCkge1xyXG4gICAgICB1cmwgKz0gYCZmaWx0ZXJCeVN0YXR1cz0ke2VuY29kZVVSSUNvbXBvbmVudChmaWx0ZXJzLmZpbHRlckJ5U3RhdHVzLmpvaW4oJywnKSl9YDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoZmlsdGVycy5maWx0ZXJCeVJldmlld2VkQnk/Lmxlbmd0aCkge1xyXG4gICAgICB1cmwgKz0gYCZmaWx0ZXJCeVJldmlld2VkQnk9JHtlbmNvZGVVUklDb21wb25lbnQoZmlsdGVycy5maWx0ZXJCeVJldmlld2VkQnkuam9pbignLCcpKX1gO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChmaWx0ZXJzLmZpbGV0ZXJCeUFwcHJvdmVkQnk/Lmxlbmd0aCkge1xyXG4gICAgICB1cmwgKz0gYCZmaWxldGVyQnlBcHByb3ZlZEJ5PSR7ZW5jb2RlVVJJQ29tcG9uZW50KGZpbHRlcnMuZmlsZXRlckJ5QXBwcm92ZWRCeS5qb2luKCcsJykpfWA7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGZpbHRlcnMuZmlsdGVyQnlSZXZpZXdlcikge1xyXG4gICAgICB1cmwgKz0gYCZmaWx0ZXJCeVJldmlld2VyPSR7ZW5jb2RlVVJJQ29tcG9uZW50KGZpbHRlcnMuZmlsdGVyQnlSZXZpZXdlcil9YDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoZmlsdGVycy5maWx0ZXJCeUFwcHJvdmVyKSB7XHJcbiAgICAgIHVybCArPSBgJmZpbHRlckJ5QXBwcm92ZXI9JHtlbmNvZGVVUklDb21wb25lbnQoZmlsdGVycy5maWx0ZXJCeUFwcHJvdmVyKX1gO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChmaWx0ZXJzLmZpbHRlckJ5VGFuZ28pIHtcclxuICAgICAgdXJsICs9IGAmZmlsdGVyQnlUYW5nbz0ke2VuY29kZVVSSUNvbXBvbmVudChmaWx0ZXJzLmZpbHRlckJ5VGFuZ28pfWA7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjb25zdCBvcHRpb25zID0gaXNFeHBvcnRcclxuICAgID8geyByZXNwb25zZVR5cGU6ICdhcnJheWJ1ZmZlcicgYXMgJ2pzb24nIH1cclxuICAgIDoge307XHJcblxyXG4gIHJldHVybiB0aGlzLmh0dHAuZ2V0KHVybCwgb3B0aW9ucyk7XHJcbn1cclxuXHJcblxyXG4gIGdldFRpY2tldHNBcGkoXHJcbiAgICBzdG9yZTogYW55LFxyXG4gICAgZnJvbURhdGU6IGFueSxcclxuICAgIHRvRGF0ZTogYW55LFxyXG4gICAgcmV2b3BzVHlwZTogYW55LFxyXG4gICAgc3RhdHVzOiBhbnksXHJcbiAgICBhY3Rpb246IGFueSxcclxuICAgIG9mZnNldDogYW55LFxyXG4gICAgbGltaXQ6IGFueVxyXG4gICk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICBsZXQgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKVxyXG4gICAgICAuc2V0KFwic3RvcmVJZFwiLCBzdG9yZSlcclxuICAgICAgLnNldChcImZyb21EYXRlXCIsIGZyb21EYXRlKVxyXG4gICAgICAuc2V0KFwidG9EYXRlXCIsIHRvRGF0ZSlcclxuICAgICAgLnNldChcIm9mZnNldFwiLCBvZmZzZXQpXHJcbiAgICAgIC5zZXQoXCJsaW1pdFwiLCBsaW1pdCk7XHJcbiAgICBpZiAocmV2b3BzVHlwZSkge1xyXG4gICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KFwicmV2b3BzVHlwZVwiLCByZXZvcHNUeXBlKTtcclxuICAgIH1cclxuICAgIGlmIChzdGF0dXMpIHtcclxuICAgICAgcGFyYW1zID0gcGFyYW1zLnNldChcInN0YXR1c1wiLCBzdGF0dXMpO1xyXG4gICAgfVxyXG4gICAgaWYgKGFjdGlvbikge1xyXG4gICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KFwiYWN0aW9uXCIsIGFjdGlvbik7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLmZvb3RmYWxsRGlyYXBpVXJsfS9nZXQtdGlja2V0c2AsIHsgcGFyYW1zIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0VGlja2V0c05ld0FwaSh0aWNrZXRJZDogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpLnNldChcInRpY2tldElkXCIsIHRpY2tldElkKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuZm9vdGZhbGxEaXJhcGlVcmx9L2dldC10aWNrZXRzYCwgeyBwYXJhbXMgfSk7XHJcbiAgfVxyXG5cclxuICBnZXRUYWdnZWRTdG9yZXNBcGkoXHJcbiAgICBjbGllbnQ6IGFueSxcclxuICAgIGZyb21EYXRlOiBhbnksXHJcbiAgICB0b0RhdGU6IGFueSxcclxuICAgIHNlYXJjaFZhbHVlOiBhbnksXHJcbiAgICBjbHVzdGVyczogYW55LFxyXG4gICAgc29ydE9yZGVyOiBhbnlcclxuICApOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgbGV0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKClcclxuICAgICAgLnNldChcImNsaWVudElkXCIsIGNsaWVudClcclxuICAgICAgLnNldChcImZyb21EYXRlXCIsIGZyb21EYXRlKVxyXG4gICAgICAuc2V0KFwidG9EYXRlXCIsIHRvRGF0ZSk7IC8vIEFkZCBzZWFyY2hWYWx1ZSBhcyBhbiBlbXB0eSBzdHJpbmcgaWYgbm90IHByb3ZpZGVkXHJcbiAgICAvLyBPbmx5IGFkZCAnY2x1c3RlcnMnIGlmIGl0J3Mgbm90IG51bGwsIHVuZGVmaW5lZCwgb3IgYW4gZW1wdHkgYXJyYXkvc3RyaW5nXHJcbiAgICBpZiAoc2VhcmNoVmFsdWUpIHtcclxuICAgICAgcGFyYW1zID0gcGFyYW1zLnNldChcInNlYXJjaFZhbHVlXCIsIHNlYXJjaFZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoY2x1c3RlcnMgJiYgY2x1c3RlcnMubGVuZ3RoID4gMCkge1xyXG4gICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KFwiY2x1c3RlcnNcIiwgY2x1c3RlcnMpO1xyXG4gICAgfVxyXG4gICAgaWYgKHNvcnRPcmRlcikge1xyXG4gICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KFwic29ydE9yZGVyXCIsIHNvcnRPcmRlcik7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLmZvb3RmYWxsRGlyYXBpVXJsfS9nZXQtdGFnZ2VkLXN0b3Jlc2AsIHtcclxuICAgICAgcGFyYW1zLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBnZXRVcGRhdGVTdGF0dXNBcGkoZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGNvbnN0IHVybCA9IGAke3RoaXMuZm9vdGZhbGxEaXJhcGlVcmx9L3VwZGF0ZS1zdGF0dXNgO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQodXJsLCBkYXRhKTtcclxuICB9XHJcblxyXG4gIGdldFVwZGF0ZVRlbXBTdGF0dXNBcGkoZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmZvb3RmYWxsRGlyYXBpVXJsfS91cGRhdGUtdGVtcC1zdGF0dXNgLCBkYXRhKTtcclxuICB9XHJcblxyXG4gIGdldE9wZW5UaWNrZXRMaXN0QXBpKGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5mb290ZmFsbERpcmFwaVVybH0vb3Blbi10aWNrZXQtbGlzdGAsIGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgZ2V0VXBkYXRlVGlja2V0U3RhdHVzQXBpKGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuZm9vdGZhbGxEaXJhcGlVcmx9L3VwZGF0ZS10aWNrZXQtc3RhdHVzYCxcclxuICAgICAgZGF0YVxyXG4gICAgKTtcclxuICB9XHJcblxyXG5nZXRDcmVhdGVUaWNrZXRMaXN0QXBpKGRhdGE6YW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5mb290ZmFsbERpcmFwaVVybH0vY3JlYXRlLXRpY2tldGAsIGRhdGEpO1xyXG59XHJcbkNyZWF0ZWludGVybmFsVGlja2V0QXBpKGRhdGE6YW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5mb290ZmFsbERpcmFwaVVybH0vY3JlYXRlLWludGVybmFsdGlja2V0YCwgZGF0YSk7XHJcbn1cclxuICBnZXRjbHVzdGVycyhkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRyYWZmaWNBcGlVcmx9L2hlYWRlcmNsdXN0ZXJfdjJgLCBkYXRhKTtcclxuICB9XHJcblxyXG4gIGdldFJldmlld2VyQXBpKGNsaWVudElkOiBhbnksdHlwZTphbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgbGV0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCkuc2V0KFwiY2xpZW50SWRcIiwgY2xpZW50SWQpXHJcbiAgICAgIC5zZXQoXCJ0eXBlXCIsdHlwZSk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLmZvb3RmYWxsRGlyYXBpVXJsfS9yZXZpZXdlci1saXN0YCwgeyBwYXJhbXMgfSk7XHJcbiAgfVxyXG5cclxuICBnZXRUaWNrZXRBc3NpZ25BcGkoZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmZvb3RmYWxsRGlyYXBpVXJsfS9hc3NpZ24tdGlja2V0YCwgZGF0YSk7XHJcbiAgfVxyXG5cclxuICBnZXRNdWx0aUNsb3NlVGlja2V0QXBpKGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuZm9vdGZhbGxEaXJhcGlVcmx9L211bHRpLWNsb3NlLXRpY2tldHNgLFxyXG4gICAgICBkYXRhXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0VHlwZUZ1bmN0aW9uKGNsaWVudElkOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgbGV0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCkuc2V0KFwiY2xpZW50SWRcIiwgY2xpZW50SWQpO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5jbGllbnRBcGlVcmx9L2dldC1mb290ZmFsbC1kaXJlY3RvcnktY29uZmlnYCwgeyBwYXJhbXMgfSk7XHJcblxyXG4gICAgXHJcbiAgfVxyXG4gIHByaXZhdGUgZm9vdGZhbGxEYXRhOiBhbnk7XHJcblxyXG4gIHNldEZvb3RmYWxsRGF0YShkYXRhOiBhbnkpIHtcclxuICAgIHRoaXMuZm9vdGZhbGxEYXRhID0gZGF0YTtcclxuICB9XHJcblxyXG4gIGdldEZvb3RmYWxsRGF0YSgpIHtcclxuICAgIHJldHVybiB0aGlzLmZvb3RmYWxsRGF0YTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { interval, BehaviorSubject } from 'rxjs';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/router";
|
|
5
|
+
export class TimerService {
|
|
6
|
+
route;
|
|
7
|
+
timePassed = new BehaviorSubject(0); // Timer count
|
|
8
|
+
subscription = null; // Timer subscription
|
|
9
|
+
inactivityTimeout = null; // Timeout for inactivity
|
|
10
|
+
INACTIVITY_LIMIT = 5000;
|
|
11
|
+
constructor(route) {
|
|
12
|
+
this.route = route;
|
|
13
|
+
}
|
|
14
|
+
startTimer() {
|
|
15
|
+
if (!this.subscription) {
|
|
16
|
+
let currentTime = 0;
|
|
17
|
+
let timeSpent;
|
|
18
|
+
if ('timeSpent' in sessionStorage) {
|
|
19
|
+
timeSpent = JSON.parse(sessionStorage.getItem('timeSpent') || '{}');
|
|
20
|
+
currentTime = timeSpent || 0; // Retrieve the existing timer value
|
|
21
|
+
}
|
|
22
|
+
const timer$ = interval(1000); // Emits every 1 second
|
|
23
|
+
this.subscription = timer$.subscribe(() => {
|
|
24
|
+
currentTime += 1;
|
|
25
|
+
this.timePassed.next(currentTime);
|
|
26
|
+
timeSpent = currentTime;
|
|
27
|
+
sessionStorage.setItem('timeSpent', JSON.stringify(timeSpent)); // Store the updated object
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
this.resetInactivityTimeout();
|
|
31
|
+
}
|
|
32
|
+
stopTimer() {
|
|
33
|
+
if (this.subscription) {
|
|
34
|
+
this.subscription.unsubscribe();
|
|
35
|
+
this.subscription = null;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
stopTimerAfterInactivity() {
|
|
39
|
+
this.inactivityTimeout = setTimeout(() => {
|
|
40
|
+
this.stopTimer(); // Stop the timer after inactivity
|
|
41
|
+
}, this.INACTIVITY_LIMIT);
|
|
42
|
+
}
|
|
43
|
+
resetInactivityTimeout() {
|
|
44
|
+
if (this.inactivityTimeout) {
|
|
45
|
+
clearTimeout(this.inactivityTimeout); // Clear the previous inactivity timeout
|
|
46
|
+
}
|
|
47
|
+
this.stopTimerAfterInactivity(); // Set a new inactivity timeout
|
|
48
|
+
}
|
|
49
|
+
getTimePassed() {
|
|
50
|
+
return this.timePassed;
|
|
51
|
+
}
|
|
52
|
+
clearTimer() {
|
|
53
|
+
if (this.subscription) {
|
|
54
|
+
this.subscription.unsubscribe();
|
|
55
|
+
this.subscription = null;
|
|
56
|
+
}
|
|
57
|
+
// this.timePassed.next(0); // Optionally reset the timePassed
|
|
58
|
+
// sessionStorage.removeItem('totalfiles'); // Optionally clear session storage
|
|
59
|
+
// sessionStorage.removeItem('timeSpent')
|
|
60
|
+
}
|
|
61
|
+
resetTimer() {
|
|
62
|
+
this.timePassed.next(0); // Reset to 0
|
|
63
|
+
// this.resetInactivityTimeout(); // Reset inactivity timeout
|
|
64
|
+
}
|
|
65
|
+
formatTime(seconds) {
|
|
66
|
+
const hours = Math.floor(seconds / 3600);
|
|
67
|
+
const minutes = Math.floor((seconds % 3600) / 60);
|
|
68
|
+
const secs = seconds % 60;
|
|
69
|
+
return `${this.padZero(hours)}:${this.padZero(minutes)}:${this.padZero(secs)}`;
|
|
70
|
+
}
|
|
71
|
+
// Helper method to pad single digit numbers with a leading zero
|
|
72
|
+
padZero(num) {
|
|
73
|
+
return num < 10 ? '0' + num : '' + num;
|
|
74
|
+
}
|
|
75
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TimerService, deps: [{ token: i1.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
76
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TimerService, providedIn: 'root' });
|
|
77
|
+
}
|
|
78
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TimerService, decorators: [{
|
|
79
|
+
type: Injectable,
|
|
80
|
+
args: [{
|
|
81
|
+
providedIn: 'root'
|
|
82
|
+
}]
|
|
83
|
+
}], ctorParameters: () => [{ type: i1.ActivatedRoute }] });
|
|
84
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLW1hbmFnZS10aWNrZXRzL3NyYy9saWIvc2VydmljZXMvdGltZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUUsUUFBUSxFQUFZLGVBQWUsRUFBZSxNQUFNLE1BQU0sQ0FBQzs7O0FBTXhFLE1BQU0sT0FBTyxZQUFZO0lBT0g7SUFMWixVQUFVLEdBQUcsSUFBSSxlQUFlLENBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBRSxjQUFjO0lBQzVELFlBQVksR0FBd0IsSUFBSSxDQUFDLENBQUkscUJBQXFCO0lBQ2xFLGlCQUFpQixHQUFRLElBQUksQ0FBQyxDQUFlLHlCQUF5QjtJQUN0RSxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7SUFFaEMsWUFBb0IsS0FBb0I7UUFBcEIsVUFBSyxHQUFMLEtBQUssQ0FBZTtJQUV2QyxDQUFDO0lBRUQsVUFBVTtRQUNULElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3RCLElBQUksV0FBVyxHQUFHLENBQUMsQ0FBQztZQUNwQixJQUFJLFNBQWMsQ0FBQztZQUNuQixJQUFJLFdBQVcsSUFBSSxjQUFjLEVBQUU7Z0JBQ2pDLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUM7Z0JBQ3BFLFdBQVcsR0FBRyxTQUFTLElBQUksQ0FBQyxDQUFDLENBQUUsb0NBQW9DO2FBQ3BFO1lBRUQsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUUsdUJBQXVCO1lBRXZELElBQUksQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ3hDLFdBQVcsSUFBSSxDQUFDLENBQUM7Z0JBQ2pCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO2dCQUNsQyxTQUFTLEdBQUcsV0FBVyxDQUFDO2dCQUN4QixjQUFjLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBRSwyQkFBMkI7WUFDOUYsQ0FBQyxDQUFDLENBQUM7U0FDSjtRQUNELElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxTQUFTO1FBQ1AsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3JCLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDaEMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7U0FDMUI7SUFDSCxDQUFDO0lBRUQsd0JBQXdCO1FBQ3RCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ3ZDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFFLGtDQUFrQztRQUN2RCxDQUFDLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVELHNCQUFzQjtRQUNwQixJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUMxQixZQUFZLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBRSx3Q0FBd0M7U0FDaEY7UUFDRCxJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQyxDQUFFLCtCQUErQjtJQUNuRSxDQUFDO0lBRUQsYUFBYTtRQUNYLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN6QixDQUFDO0lBRUEsVUFBVTtRQUNULElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNyQixJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ2hDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1NBQzFCO1FBQ0QsK0RBQStEO1FBQy9ELGdGQUFnRjtRQUNoRix5Q0FBeUM7SUFDM0MsQ0FBQztJQUVELFVBQVU7UUFDUixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFFLGFBQWE7UUFDdkMsOERBQThEO0lBQ2hFLENBQUM7SUFFRCxVQUFVLENBQUMsT0FBZTtRQUN4QixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsQ0FBQztRQUN6QyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQ2xELE1BQU0sSUFBSSxHQUFHLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFFMUIsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7SUFDakYsQ0FBQztJQUVELGdFQUFnRTtJQUN4RCxPQUFPLENBQUMsR0FBVztRQUN6QixPQUFPLEdBQUcsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxHQUFHLENBQUM7SUFDekMsQ0FBQzt3R0FsRlUsWUFBWTs0R0FBWixZQUFZLGNBRlgsTUFBTTs7NEZBRVAsWUFBWTtrQkFIeEIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBpbnRlcnZhbCxPYnNlcnZhYmxlLEJlaGF2aW9yU3ViamVjdCxTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgUm91dGVyLEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFRpbWVyU2VydmljZSB7XHJcblxyXG4gIHByaXZhdGUgdGltZVBhc3NlZCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPigwKTsgIC8vIFRpbWVyIGNvdW50XHJcbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiB8IG51bGwgPSBudWxsOyAgICAvLyBUaW1lciBzdWJzY3JpcHRpb25cclxuICBwcml2YXRlIGluYWN0aXZpdHlUaW1lb3V0OiBhbnkgPSBudWxsOyAgICAgICAgICAgICAgIC8vIFRpbWVvdXQgZm9yIGluYWN0aXZpdHlcclxuICBwcml2YXRlIElOQUNUSVZJVFlfTElNSVQgPSA1MDAwO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvdXRlOkFjdGl2YXRlZFJvdXRlKSB7XHJcbiAgICAgIFxyXG4gICB9XHJcblxyXG4gICBzdGFydFRpbWVyKCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLnN1YnNjcmlwdGlvbikge1xyXG4gICAgICBsZXQgY3VycmVudFRpbWUgPSAwO1xyXG4gICAgICBsZXQgdGltZVNwZW50OiBhbnk7XHJcbiAgICAgIGlmICgndGltZVNwZW50JyBpbiBzZXNzaW9uU3RvcmFnZSkge1xyXG4gICAgICAgIHRpbWVTcGVudCA9IEpTT04ucGFyc2Uoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgndGltZVNwZW50JykgfHwgJ3t9Jyk7XHJcbiAgICAgICAgY3VycmVudFRpbWUgPSB0aW1lU3BlbnQgfHwgMDsgIC8vIFJldHJpZXZlIHRoZSBleGlzdGluZyB0aW1lciB2YWx1ZVxyXG4gICAgICB9XHJcbiAgXHJcbiAgICAgIGNvbnN0IHRpbWVyJCA9IGludGVydmFsKDEwMDApOyAgLy8gRW1pdHMgZXZlcnkgMSBzZWNvbmRcclxuICBcclxuICAgICAgdGhpcy5zdWJzY3JpcHRpb24gPSB0aW1lciQuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICBjdXJyZW50VGltZSArPSAxOyBcclxuICAgICAgICB0aGlzLnRpbWVQYXNzZWQubmV4dChjdXJyZW50VGltZSk7IFxyXG4gICAgICAgIHRpbWVTcGVudCA9IGN1cnJlbnRUaW1lO1xyXG4gICAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oJ3RpbWVTcGVudCcsIEpTT04uc3RyaW5naWZ5KHRpbWVTcGVudCkpOyAgLy8gU3RvcmUgdGhlIHVwZGF0ZWQgb2JqZWN0XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgdGhpcy5yZXNldEluYWN0aXZpdHlUaW1lb3V0KCk7XHJcbiAgfVxyXG5cclxuICBzdG9wVGltZXIoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5zdWJzY3JpcHRpb24pIHtcclxuICAgICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgICAgdGhpcy5zdWJzY3JpcHRpb24gPSBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc3RvcFRpbWVyQWZ0ZXJJbmFjdGl2aXR5KCk6IHZvaWQge1xyXG4gICAgdGhpcy5pbmFjdGl2aXR5VGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLnN0b3BUaW1lcigpOyAgLy8gU3RvcCB0aGUgdGltZXIgYWZ0ZXIgaW5hY3Rpdml0eVxyXG4gICAgfSwgdGhpcy5JTkFDVElWSVRZX0xJTUlUKTtcclxuICB9XHJcblxyXG4gIHJlc2V0SW5hY3Rpdml0eVRpbWVvdXQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5pbmFjdGl2aXR5VGltZW91dCkge1xyXG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5pbmFjdGl2aXR5VGltZW91dCk7ICAvLyBDbGVhciB0aGUgcHJldmlvdXMgaW5hY3Rpdml0eSB0aW1lb3V0XHJcbiAgICB9XHJcbiAgICB0aGlzLnN0b3BUaW1lckFmdGVySW5hY3Rpdml0eSgpOyAgLy8gU2V0IGEgbmV3IGluYWN0aXZpdHkgdGltZW91dFxyXG4gIH1cclxuXHJcbiAgZ2V0VGltZVBhc3NlZCgpOiBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPiB7XHJcbiAgICByZXR1cm4gdGhpcy50aW1lUGFzc2VkO1xyXG4gIH1cclxuXHJcbiAgIGNsZWFyVGltZXIoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5zdWJzY3JpcHRpb24pIHtcclxuICAgICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgICAgdGhpcy5zdWJzY3JpcHRpb24gPSBudWxsO1xyXG4gICAgfVxyXG4gICAgLy8gdGhpcy50aW1lUGFzc2VkLm5leHQoMCk7ICAvLyBPcHRpb25hbGx5IHJlc2V0IHRoZSB0aW1lUGFzc2VkXHJcbiAgICAvLyBzZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKCd0b3RhbGZpbGVzJyk7ICAvLyBPcHRpb25hbGx5IGNsZWFyIHNlc3Npb24gc3RvcmFnZVxyXG4gICAgLy8gc2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbSgndGltZVNwZW50JylcclxuICB9XHJcblxyXG4gIHJlc2V0VGltZXIoKTogdm9pZCB7XHJcbiAgICB0aGlzLnRpbWVQYXNzZWQubmV4dCgwKTsgIC8vIFJlc2V0IHRvIDBcclxuICAgIC8vIHRoaXMucmVzZXRJbmFjdGl2aXR5VGltZW91dCgpOyAgLy8gUmVzZXQgaW5hY3Rpdml0eSB0aW1lb3V0XHJcbiAgfVxyXG5cclxuICBmb3JtYXRUaW1lKHNlY29uZHM6IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICBjb25zdCBob3VycyA9IE1hdGguZmxvb3Ioc2Vjb25kcyAvIDM2MDApO1xyXG4gICAgY29uc3QgbWludXRlcyA9IE1hdGguZmxvb3IoKHNlY29uZHMgJSAzNjAwKSAvIDYwKTtcclxuICAgIGNvbnN0IHNlY3MgPSBzZWNvbmRzICUgNjA7XHJcblxyXG4gICAgcmV0dXJuIGAke3RoaXMucGFkWmVybyhob3Vycyl9OiR7dGhpcy5wYWRaZXJvKG1pbnV0ZXMpfToke3RoaXMucGFkWmVybyhzZWNzKX1gO1xyXG4gIH1cclxuXHJcbiAgLy8gSGVscGVyIG1ldGhvZCB0byBwYWQgc2luZ2xlIGRpZ2l0IG51bWJlcnMgd2l0aCBhIGxlYWRpbmcgemVyb1xyXG4gIHByaXZhdGUgcGFkWmVybyhudW06IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gbnVtIDwgMTAgPyAnMCcgKyBudW0gOiAnJyArIG51bTtcclxuICB9XHJcblxyXG59XHJcbiJdfQ==
|
|
@@ -1,13 +1,33 @@
|
|
|
1
1
|
import { NgModule } from '@angular/core';
|
|
2
2
|
import { RouterModule } from '@angular/router';
|
|
3
3
|
import { TangoManageTicketsComponent } from './components/tango-manage-tickets/tango-manage-tickets.component';
|
|
4
|
+
import { FootfallDicviewComponent } from './components/footfall-dicview/footfall-dicview.component';
|
|
5
|
+
import { StartAuditComponent } from './components/start-audit/start-audit.component';
|
|
6
|
+
import { AuditMappingListComponent } from './components/audit-mapping-list/audit-mapping-list.component';
|
|
7
|
+
import { AuditRetagComponent } from './components/audit-retag/audit-retag.component';
|
|
4
8
|
import * as i0 from "@angular/core";
|
|
5
9
|
import * as i1 from "@angular/router";
|
|
6
10
|
const routes = [
|
|
7
11
|
{
|
|
8
12
|
path: '',
|
|
9
13
|
component: TangoManageTicketsComponent
|
|
10
|
-
}
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
path: 'list',
|
|
17
|
+
component: FootfallDicviewComponent
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
path: "audit",
|
|
21
|
+
component: StartAuditComponent
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
path: "mapping-list",
|
|
25
|
+
component: AuditMappingListComponent
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
path: 'retag-mapping',
|
|
29
|
+
component: AuditRetagComponent
|
|
30
|
+
},
|
|
11
31
|
];
|
|
12
32
|
export class TangoManageTicketsRoutingModule {
|
|
13
33
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TangoManageTicketsRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
@@ -21,4 +41,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
21
41
|
exports: [RouterModule]
|
|
22
42
|
}]
|
|
23
43
|
}] });
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFuZ28tbWFuYWdlLXRpY2tldHMtcm91dGluZy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1tYW5hZ2UtdGlja2V0cy9zcmMvbGliL3RhbmdvLW1hbmFnZS10aWNrZXRzLXJvdXRpbmcubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBVSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGtFQUFrRSxDQUFDO0FBQy9HLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBQ3BHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ3JGLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBQ3pHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDOzs7QUFHckYsTUFBTSxNQUFNLEdBQVc7SUFDckI7UUFDRSxJQUFJLEVBQUMsRUFBRTtRQUNQLFNBQVMsRUFBQywyQkFBMkI7S0FDdEM7SUFDRDtRQUNJLElBQUksRUFBRSxNQUFNO1FBQ1osU0FBUyxFQUFFLHdCQUF3QjtLQUN0QztJQUNEO1FBQ0UsSUFBSSxFQUFDLE9BQU87UUFDWixTQUFTLEVBQUMsbUJBQW1CO0tBQzlCO0lBQ0Q7UUFDRSxJQUFJLEVBQUMsY0FBYztRQUNuQixTQUFTLEVBQUMseUJBQXlCO0tBQ3BDO0lBQ0E7UUFDRyxJQUFJLEVBQUMsZUFBZTtRQUNwQixTQUFTLEVBQUMsbUJBQW1CO0tBQzlCO0NBQ0osQ0FBQztBQU1GLE1BQU0sT0FBTywrQkFBK0I7d0dBQS9CLCtCQUErQjt5R0FBL0IsK0JBQStCLHdDQUZoQyxZQUFZO3lHQUVYLCtCQUErQixZQUhoQyxZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUM3QixZQUFZOzs0RkFFWCwrQkFBK0I7a0JBSjNDLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztvQkFDeEMsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO2lCQUN4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJvdXRlck1vZHVsZSwgUm91dGVzIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgVGFuZ29NYW5hZ2VUaWNrZXRzQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3RhbmdvLW1hbmFnZS10aWNrZXRzL3RhbmdvLW1hbmFnZS10aWNrZXRzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZvb3RmYWxsRGljdmlld0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9mb290ZmFsbC1kaWN2aWV3L2Zvb3RmYWxsLWRpY3ZpZXcuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU3RhcnRBdWRpdENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9zdGFydC1hdWRpdC9zdGFydC1hdWRpdC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBdWRpdE1hcHBpbmdMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2F1ZGl0LW1hcHBpbmctbGlzdC9hdWRpdC1tYXBwaW5nLWxpc3QuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQXVkaXRSZXRhZ0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hdWRpdC1yZXRhZy9hdWRpdC1yZXRhZy5jb21wb25lbnQnO1xyXG5cclxuXHJcbmNvbnN0IHJvdXRlczogUm91dGVzID0gW1xyXG4gIHtcclxuICAgIHBhdGg6JycsXHJcbiAgICBjb21wb25lbnQ6VGFuZ29NYW5hZ2VUaWNrZXRzQ29tcG9uZW50XHJcbiAgfSxcclxuICB7XHJcbiAgICAgIHBhdGg6ICdsaXN0JyxcclxuICAgICAgY29tcG9uZW50OiBGb290ZmFsbERpY3ZpZXdDb21wb25lbnRcclxuICB9LFxyXG4gIHtcclxuICAgIHBhdGg6XCJhdWRpdFwiLFxyXG4gICAgY29tcG9uZW50OlN0YXJ0QXVkaXRDb21wb25lbnRcclxuICB9LFxyXG4gIHtcclxuICAgIHBhdGg6XCJtYXBwaW5nLWxpc3RcIixcclxuICAgIGNvbXBvbmVudDpBdWRpdE1hcHBpbmdMaXN0Q29tcG9uZW50XHJcbiAgfSxcclxuICAge1xyXG4gICAgICBwYXRoOidyZXRhZy1tYXBwaW5nJyxcclxuICAgICAgY29tcG9uZW50OkF1ZGl0UmV0YWdDb21wb25lbnQgXHJcbiAgICB9LFxyXG5dO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBpbXBvcnRzOiBbUm91dGVyTW9kdWxlLmZvckNoaWxkKHJvdXRlcyldLFxyXG4gIGV4cG9ydHM6IFtSb3V0ZXJNb2R1bGVdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUYW5nb01hbmFnZVRpY2tldHNSb3V0aW5nTW9kdWxlIHsgfVxyXG4iXX0=
|