imm-element-ui 1.4.6 → 1.4.7
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/am/am.component.mjs +18 -18
- package/esm2022/lib/crumb-action/crumb-action.component.mjs +3 -3
- package/esm2022/lib/page-form/page-form.component.mjs +12 -3
- package/esm2022/lib/steps/steps.component.mjs +9 -14
- package/fesm2022/imm-element-ui.mjs +38 -34
- package/fesm2022/imm-element-ui.mjs.map +1 -1
- package/lib/crumb-action/crumb-action.component.d.ts +1 -1
- package/lib/grid/grid/grid.component.d.ts +2 -2
- package/lib/page-form/page-form.component.d.ts +2 -0
- package/lib/steps/steps.component.d.ts +0 -2
- package/package.json +1 -1
|
@@ -95,7 +95,7 @@ export class AmComponent {
|
|
|
95
95
|
}
|
|
96
96
|
//全部创建或更新,根据ID判断
|
|
97
97
|
web_upsert(param) {
|
|
98
|
-
this.loadingService.setLoading(true);
|
|
98
|
+
// this.loadingService.setLoading(true);
|
|
99
99
|
if (!param.modelName) {
|
|
100
100
|
param = { modelName: this.modelName, ...param };
|
|
101
101
|
}
|
|
@@ -157,7 +157,7 @@ export class AmComponent {
|
|
|
157
157
|
}
|
|
158
158
|
}
|
|
159
159
|
web_deal(param) {
|
|
160
|
-
this.loadingService.setLoading(true);
|
|
160
|
+
// this.loadingService.setLoading(true);
|
|
161
161
|
return this.http.post(apiPath + 'deal', param).pipe(map((response) => {
|
|
162
162
|
this.dealPrm = { data: response, ...this.dealPrm };
|
|
163
163
|
return response;
|
|
@@ -175,7 +175,7 @@ export class AmComponent {
|
|
|
175
175
|
}
|
|
176
176
|
}
|
|
177
177
|
web_write(param) {
|
|
178
|
-
this.loadingService.setLoading(true);
|
|
178
|
+
// this.loadingService.setLoading(true);
|
|
179
179
|
if (!param.modelName) {
|
|
180
180
|
param = { modelName: this.modelName, ...param };
|
|
181
181
|
}
|
|
@@ -198,7 +198,7 @@ export class AmComponent {
|
|
|
198
198
|
}
|
|
199
199
|
}
|
|
200
200
|
web_remove(param) {
|
|
201
|
-
this.loadingService.setLoading(true);
|
|
201
|
+
// this.loadingService.setLoading(true);
|
|
202
202
|
return this.http.post(apiPath + 'remove', param).pipe(map((response) => {
|
|
203
203
|
if (param.log) {
|
|
204
204
|
delete param.log;
|
|
@@ -221,7 +221,7 @@ export class AmComponent {
|
|
|
221
221
|
if (!param.hasOwnProperty('modelName')) {
|
|
222
222
|
param.modelName = this.modelName;
|
|
223
223
|
}
|
|
224
|
-
this.loadingService.setLoading(true);
|
|
224
|
+
// this.loadingService.setLoading(true);
|
|
225
225
|
return this.http.post(apiPath + 'get', param).pipe(map((response) => {
|
|
226
226
|
this.getPrm.data = response;
|
|
227
227
|
if (response.id === 0 && param.hasOwnProperty('foreignKey')) {
|
|
@@ -243,7 +243,7 @@ export class AmComponent {
|
|
|
243
243
|
}
|
|
244
244
|
}
|
|
245
245
|
web_search(param) {
|
|
246
|
-
this.loadingService.setLoading(true);
|
|
246
|
+
// this.loadingService.setLoading(true);
|
|
247
247
|
return this.http.post(apiPath + 'search', param).pipe(map((response) => {
|
|
248
248
|
this.searchPrm = { ...response };
|
|
249
249
|
console.log('upsey-----', this.upsertPrm);
|
|
@@ -261,7 +261,7 @@ export class AmComponent {
|
|
|
261
261
|
}
|
|
262
262
|
}
|
|
263
263
|
web_searchmap(param) {
|
|
264
|
-
this.loadingService.setLoading(true);
|
|
264
|
+
// this.loadingService.setLoading(true);
|
|
265
265
|
return this.http.post(apiPath + 'searchMap', param).pipe(map((response) => {
|
|
266
266
|
this.searchPrm = { ...response };
|
|
267
267
|
console.log('upsey-----', this.upsertPrm);
|
|
@@ -280,7 +280,7 @@ export class AmComponent {
|
|
|
280
280
|
}
|
|
281
281
|
}
|
|
282
282
|
web_searchCount(param) {
|
|
283
|
-
this.loadingService.setLoading(true);
|
|
283
|
+
// this.loadingService.setLoading(true);
|
|
284
284
|
return this.http.post(apiPath + 'searchCount', param).pipe(map((response) => {
|
|
285
285
|
this.searchPrm = { ...response };
|
|
286
286
|
return response;
|
|
@@ -323,7 +323,7 @@ export class AmComponent {
|
|
|
323
323
|
if (!param.modelName) {
|
|
324
324
|
param = { modelName: this.modelName, ...param };
|
|
325
325
|
}
|
|
326
|
-
this.loadingService.setLoading(true);
|
|
326
|
+
// this.loadingService.setLoading(true);
|
|
327
327
|
return this.http.post(apiPath + 'export', param, { responseType: 'blob' }).pipe(map((response) => {
|
|
328
328
|
const data = new Blob([response], {
|
|
329
329
|
type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet; charset=UTF-8',
|
|
@@ -348,7 +348,7 @@ export class AmComponent {
|
|
|
348
348
|
if (!param.modelName) {
|
|
349
349
|
param = { modelName: this.modelName, ...param };
|
|
350
350
|
}
|
|
351
|
-
this.loadingService.setLoading(true);
|
|
351
|
+
// this.loadingService.setLoading(true);
|
|
352
352
|
return this.http.post(apiPath + 'dealExport', param, { responseType: 'blob' }).pipe(map((response) => {
|
|
353
353
|
const data = new Blob([response], {
|
|
354
354
|
type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet; charset=UTF-8',
|
|
@@ -370,7 +370,7 @@ export class AmComponent {
|
|
|
370
370
|
}
|
|
371
371
|
}
|
|
372
372
|
web_downloadTemplate(param) {
|
|
373
|
-
this.loadingService.setLoading(true);
|
|
373
|
+
// this.loadingService.setLoading(true);
|
|
374
374
|
return this.http.post(apiPath + 'download', param, { responseType: 'blob' }).pipe(map((response) => {
|
|
375
375
|
const data = new Blob([response], {
|
|
376
376
|
type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet; charset=UTF-8',
|
|
@@ -392,7 +392,7 @@ export class AmComponent {
|
|
|
392
392
|
}
|
|
393
393
|
}
|
|
394
394
|
web_imageDelete(fid) {
|
|
395
|
-
this.loadingService.setLoading(true);
|
|
395
|
+
// this.loadingService.setLoading(true);
|
|
396
396
|
return this.http.post(apiPath + 'imageDelete', fid).pipe(map((response) => {
|
|
397
397
|
this.messageService.add({ severity: 'success', summary: 'Success', detail: response });
|
|
398
398
|
return response;
|
|
@@ -410,7 +410,7 @@ export class AmComponent {
|
|
|
410
410
|
}
|
|
411
411
|
}
|
|
412
412
|
web_filerDelete(fid) {
|
|
413
|
-
this.loadingService.setLoading(true);
|
|
413
|
+
// this.loadingService.setLoading(true);
|
|
414
414
|
return this.http.post(apiPath + 'imageDelete', fid).pipe(map((response) => {
|
|
415
415
|
this.messageService.add({ severity: 'success', summary: 'Success', detail: response });
|
|
416
416
|
return response;
|
|
@@ -437,7 +437,7 @@ export class AmComponent {
|
|
|
437
437
|
}
|
|
438
438
|
}
|
|
439
439
|
web_createTable(param) {
|
|
440
|
-
this.loadingService.setLoading(true);
|
|
440
|
+
// this.loadingService.setLoading(true);
|
|
441
441
|
return this.http.post(apiPath + 'createTable', param).pipe(map((response) => {
|
|
442
442
|
// this.messageService.add({severity: 'success',summary: 'Success',detail: response})
|
|
443
443
|
return response;
|
|
@@ -472,7 +472,7 @@ export class AmComponent {
|
|
|
472
472
|
}
|
|
473
473
|
}
|
|
474
474
|
webDealQuery(param) {
|
|
475
|
-
this.loadingService.setLoading(true);
|
|
475
|
+
// this.loadingService.setLoading(true);
|
|
476
476
|
return this.http.post(apiPath + 'dealQuery', param).pipe(map((response) => {
|
|
477
477
|
this.dealPrm = { data: response, ...this.dealPrm };
|
|
478
478
|
return response;
|
|
@@ -489,7 +489,7 @@ export class AmComponent {
|
|
|
489
489
|
}
|
|
490
490
|
}
|
|
491
491
|
webDealCustom(param) {
|
|
492
|
-
this.loadingService.setLoading(true);
|
|
492
|
+
// this.loadingService.setLoading(true);
|
|
493
493
|
return this.http.post(apiPath + 'dealCustom', param).pipe(map((response) => {
|
|
494
494
|
this.dealPrm = { data: response, ...this.dealPrm };
|
|
495
495
|
return response;
|
|
@@ -506,7 +506,7 @@ export class AmComponent {
|
|
|
506
506
|
}
|
|
507
507
|
}
|
|
508
508
|
webDealSubmit(param) {
|
|
509
|
-
this.loadingService.setLoading(true);
|
|
509
|
+
// this.loadingService.setLoading(true);
|
|
510
510
|
return this.http.post(apiPath + 'dealSubmit', param).pipe(map((response) => {
|
|
511
511
|
this.dealPrm = { data: response, ...this.dealPrm };
|
|
512
512
|
return response;
|
|
@@ -527,4 +527,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
527
527
|
providers: [MessageService, ConfirmationService],
|
|
528
528
|
}]
|
|
529
529
|
}], ctorParameters: () => [] });
|
|
530
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW1tLWVsZW1lbnQtdWkvc3JjL2xpYi9hbS9hbS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBd0IsUUFBUSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJFLE9BQU8sS0FBSyxTQUFTLE1BQU0sWUFBWSxDQUFDO0FBR3hDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxjQUFjLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFNUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHlCQUF5QixDQUFDOztBQW9JdEQsTUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFDO0FBUW5CLE1BQU0sT0FBTyxXQUFXO0lBdUN2QjtRQXRDQSxRQUFRO1FBQ1IsVUFBSyxHQUFZLEtBQUssQ0FBQztRQUN2QixPQUFPO1FBQ1AsT0FBRSxHQUFXLENBQUMsQ0FBQztRQUNmLE1BQU07UUFDTixjQUFTLEdBQVcsRUFBRSxDQUFDO1FBQ3ZCLE1BQU07UUFDTixVQUFLLEdBQVUsRUFBRSxDQUFDO1FBQ2xCLFFBQUcsR0FBVyxFQUFFLENBQUM7UUFDakIsSUFBSTtRQUNKLGNBQVMsR0FBZ0IsRUFBRSxDQUFDO1FBQzVCLElBQUk7UUFDSixrQkFBYSxHQUFrQixFQUFFLENBQUM7UUFDbEMsTUFBTTtRQUNOLGdCQUFXLEdBQWdCLEVBQUUsQ0FBQztRQUM5QixRQUFRO1FBQ1IsY0FBUyxHQUFX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eUM7UUFDOUMsQ0FBQyxDQUFDLENBQ0YsQ0FBQztJQUNILENBQUM7K0dBMWlCVyxXQUFXO21HQUFYLFdBQVcscURBRlosQ0FBQyxjQUFjLEVBQUUsbUJBQW1CLENBQUMsMEJBRHRDLEVBQUU7OzRGQUdBLFdBQVc7a0JBUHZCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLFFBQVE7b0JBQ2xCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixPQUFPLEVBQUUsRUFBRTtvQkFDWCxRQUFRLEVBQUUsRUFBRTtvQkFDWixTQUFTLEVBQUUsQ0FBQyxjQUFjLEVBQUUsbUJBQW1CLENBQUM7aUJBQ2hEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBlZmZlY3QsIGluamVjdCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaW5hbGl6ZSwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCAqIGFzIEZpbGVTYXZlciBmcm9tICdmaWxlLXNhdmVyJztcclxuaW1wb3J0IHsgRm9ybU9wdGlvbnMgfSBmcm9tICcuLi9mb3JtL2Zvcm0vZm9ybS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTZWFyY2hPcHRpb25zIH0gZnJvbSAnLi4vc2VhcmNoL3NlYXJjaC9zZWFyY2guY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29uZmlybWF0aW9uU2VydmljZSwgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICdwcmltZW5nL2FwaSc7XHJcbmltcG9ydCB7IFRvYXN0IH0gZnJvbSAncHJpbWVuZy90b2FzdCc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBMb2FkaW5nU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2UvbG9hZGluZy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgdG9PYnNlcnZhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xyXG5pbXBvcnQgeyBJMThuU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2UvaTE4bi5zZXJ2aWNlJztcclxuZXhwb3J0IGludGVyZmFjZSBQYXJhbSB7XHJcblx0aWQ/OiBudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVHJhY2VNZXNzYWdlIHtcclxuXHRpZD86IG51bWJlcjtcclxuXHRwaWQ/OiBudW1iZXI7IC8vIOihqOS4rWlkXHJcblx0ZnVuYz86IHN0cmluZztcclxuXHRvcGVyYXRvcj86IHN0cmluZztcclxuXHRjb250ZW50Pzogc3RyaW5nOyAvLyDkuLvooajlj5jmm7TmiYDmnInlrZfmrrXmi7zmjqXkuIDlnZdcclxuXHRzdWJDb250ZW50Pzogc3RyaW5nOyAvLyDlrZDooajlj5jmm7Tmi7zmjqXkuIDotbdcclxuXHRjcmVhdGVkQXQ/OiBzdHJpbmc7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBJbXBvcnRFeGNlbCB7XHJcblx0bW9kZWxOYW1lPzogc3RyaW5nO1xyXG5cdG9yZ0lkPzogbnVtYmVyO1xyXG5cdG9yZ05hbWU/OiBzdHJpbmc7XHJcblx0b3JnSWRGZWlsZD86IHN0cmluZztcclxuXHRvcmdOYW1lRmVpbGQ/OiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVXBzZXJ0IHtcclxuXHRtb2RlbE5hbWU/OiBzdHJpbmc7XHJcblx0YWRkRGF0YT86IFJlY29yZDxzdHJpbmcsIGFueT47XHJcblx0dXBkRGF0YT86IFJlY29yZDxzdHJpbmcsIGFueT47XHJcblx0c3Vic2VydD86IFN1YlVwc2VydFtdO1xyXG5cdGxvZ01vZGVsPzogc3RyaW5nO1xyXG5cdGxvZz86IFRyYWNlTWVzc2FnZTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTdWJVcHNlcnQge1xyXG5cdHN1Yk1vZGVsTmFtZT86IHN0cmluZztcclxuXHRmaz86IHN0cmluZztcclxuXHRzdWJEYXRhPzogUmVjb3JkPHN0cmluZywgYW55PltdO1xyXG5cdG1hcHRtcD86IE1hcDxudW1iZXIsIGFueT47XHJcblx0bG9ndG1wPzogTWFwPHN0cmluZywgYW55PjtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIERlYWwge1xyXG5cdG1vZGVsTmFtZT86IHN0cmluZztcclxuXHRkYXRhPzogYW55O1xyXG59XHJcbi8vIOabtOaWsOeJueWumuWtl+autVxyXG5leHBvcnQgaW50ZXJmYWNlIFdyaXRlIHtcclxuXHRtb2RlbE5hbWU/OiBzdHJpbmc7XHJcblx0ZGF0YT86IFJlY29yZDxzdHJpbmcsIGFueT47XHJcblx0bG9nTW9kZWw/OiBzdHJpbmc7XHJcblx0bG9nPzogVHJhY2VNZXNzYWdlO1xyXG5cdHRyYW5zYWN0aW9uPzogYm9vbGVhbjtcclxufVxyXG4vLyDliKDpmaTmjqXlj6Plo7DmmI5cclxuZXhwb3J0IGludGVyZmFjZSBSZW1vdmUge1xyXG5cdG1vZGVsTmFtZT86IHN0cmluZztcclxuXHRpZHM/OiBudW1iZXJbXTtcclxuXHRkYXRhPzogYW55O1xyXG5cdGxvZ01vZGVsPzogc3RyaW5nO1xyXG5cdGxvZz86IFRyYWNlTWVzc2FnZTtcclxuXHR0cmFuc2FjdGlvbj86IGJvb2xlYW47XHJcbn1cclxuLy8g6I635Y+W5Y2V5p2h5pWw5o2u6K+m5oOFXHJcbmV4cG9ydCBpbnRlcmZhY2UgR2V0IHtcclxuXHRtb2RlbE5hbWU/OiBzdHJpbmc7XHJcblx0dXNlckNvZGU/OiBzdHJpbmc7XHJcblx0b3JnRmllbGQ/OiBzdHJpbmc7XHJcblx0aWQ/OiBudW1iZXI7XHJcblx0cHJlbG9hZHM/OiBzdHJpbmdbXTsgLy8g6IGU6KGo5p+l6K+i6KGo5ZCN56ew77yM6ZyA5a+55bqU5ZCO56uvc3RydWN0XHJcblx0Zml0ZXJQcmVsb2Fkcz86IFByZWxvYWRbXTsgLy8g5Y+q6IO95Yqg5LiA5bGCIOexu+S8vCAnbW9kdWxlID0nIG1vZHVsZVxyXG5cdGdldExvZz86IGJvb2xlYW47IC8v6I635Y+W5pel5b+XXHJcblx0ZGF0YT86IGFueTsgLy/lkI7nq6/ov5Tlm57nmoRyZXNwb25zZVxyXG5cdGNvbHVtbkZpbHRlcnM/OiBDb2x1bW5GaWx0ZXJbXTsgLy/ov4fmu6TnmoTliJdcclxuXHRmb3JlaWduS2V5Pzogc3RyaW5nOyAvL+ebtOaOpeaPkuWFpeWtkOihqOmcgOimgeS8oOmAkuWklumUruWtl+auteS7peWPiuWklumUruWAvFxyXG5cdFtwcm9wTmFtZTogc3RyaW5nXTogYW55O1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgUHJlbG9hZCB7XHJcblx0ZmVpbGROYW1lPzogc3RyaW5nO1xyXG5cdGZpdGVycz86IENvbHVtbkZpbHRlcltdO1xyXG5cdHNvcnRzPzogU29ydFtdO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgQ29sdW1uRmlsdGVyIHtcclxuXHRjb2x1bW5GaWVsZD86IHN0cmluZztcclxuXHR0eXBlPzogc3RyaW5nO1xyXG5cdGZpdGVyPzogYW55O1xyXG5cdGZyb20/OiBzdHJpbmcgfCBudW1iZXI7XHJcblx0dG8/OiBzdHJpbmcgfCBudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU29ydCB7XHJcblx0ZmllbGQ/OiBzdHJpbmc7XHJcblx0aXNBc2M/OiBib29sZWFuO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNlYXJjaCB7XHJcblx0bW9kZWxOYW1lPzogc3RyaW5nO1xyXG5cdHVzZXJDb2RlPzogc3RyaW5nO1xyXG5cdG9yZ0ZpZWxkPzogc3RyaW5nO1xyXG5cdGNvdW50PzogYm9vbGVhbjsgLy/mmK/lkKbov5Tlm550b3RhbE51bVxyXG5cdHByZWxvYWRzPzogc3RyaW5nW107XHJcblx0Zml0ZXJQcmVsb2Fkcz86IFByZWxvYWRbXTtcclxuXHRtb2RlbD86IGFueTtcclxuXHRkYXRhPzogYW55O1xyXG5cdGNvbHVtbkZpbHRlcnM/OiBDb2x1bW5GaWx0ZXJbXTsgLy/ov4fmu6TnmoTliJdcclxuXHRzb3J0cz86IFNvcnRbXTtcclxuXHRncm91cHM/OiBzdHJpbmdbXTtcclxuXHRyZWFkPzogc3RyaW5nW107IC8vcmVhZCDmjIflrprmn6Xor6LnibnlrprlrZfmrrVcclxuXHRmdW5jcz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47IC8v6YCP6KeG6KGo5ZCO5pyf6KaB55SoXHJcblx0b2Zmc2V0PzogbnVtYmVyO1xyXG5cdGxpbWl0PzogbnVtYmVyO1xyXG5cdHRvdGFsTnVtPzogbnVtYmVyO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgVG9rZW5JbmZvIHtcclxuXHR0b2tlbj86IHN0cmluZztcclxuXHRleHBpcmVkPzogbnVtYmVyO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgYW1XZWIge1xyXG5cdGlkPzogbnVtYmVyO1xyXG5cdGNvZGU/OiBzdHJpbmc7XHJcblx0dHlwZT86IHN0cmluZztcclxuXHRuYW1lPzogc3RyaW5nO1xyXG5cdGFwcElkPzogbnVtYmVyO1xyXG5cdGNvbnRlbnQ/OiBzdHJpbmc7XHJcblx0Y3JlYXRlZEF0Pzogc3RyaW5nO1xyXG5cdHVwZGF0ZWRBdD86IHN0cmluZztcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFJmZCB7XHJcblx0bW9kZWxOYW1lPzogc3RyaW5nO1xyXG5cdGxhYmVsRmllbGQ/OiBzdHJpbmc7XHJcblx0dmFsdWVGaWVsZD86IHN0cmluZztcclxuXHR3aGVyZUZpZWxkPzogc3RyaW5nO1xyXG5cdHR5cGU/OiBzdHJpbmc7XHJcblx0Zml0ZXI/OiBhbnk7XHJcblx0ZGF0YT86IGFueTtcclxufVxyXG5jb25zdCBhcGlQYXRoID0gJyc7XHJcbkBDb21wb25lbnQoe1xyXG5cdHNlbGVjdG9yOiAnYXBwLWFtJyxcclxuXHRzdGFuZGFsb25lOiB0cnVlLFxyXG5cdGltcG9ydHM6IFtdLFxyXG5cdHRlbXBsYXRlOiAnJyxcclxuXHRwcm92aWRlcnM6IFtNZXNzYWdlU2VydmljZSwgQ29uZmlybWF0aW9uU2VydmljZV0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBbUNvbXBvbmVudCB7XHJcblx0Ly/mmK/lkKbmj5DkuqTml6Xlv5dcclxuXHRpc0xvZzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cdC8v5Li75pWw5o2uaWRcclxuXHRpZDogbnVtYmVyID0gMDtcclxuXHQvL+S4u+ihqOaooeWei1xyXG5cdG1vZGVsTmFtZTogc3RyaW5nID0gJyc7XHJcblx0Ly9JROWPguaVsFxyXG5cdHBhcmFtOiBQYXJhbSA9IHt9O1xyXG5cdGZpZDogc3RyaW5nID0gJyc7XHJcblx0Ly/lr7zlhaVcclxuXHRpbXBvcnRQcm06IEltcG9ydEV4Y2VsID0ge307XHJcblx0Ly/mkJzntKBcclxuXHRzZWFyY2hPcHRpb25zOiBTZWFyY2hPcHRpb25zID0ge307XHJcblx0Ly9mb3JtXHJcblx0Zm9ybU9wdGlvbnM6IEZvcm1PcHRpb25zID0ge307XHJcblx0Ly/liJvlu7rmiJbogIXmm7TmlrBcclxuXHR1cHNlcnRQcm06IFVwc2VydCA9IHsgdXBkRGF0YToge30sIGFkZERhdGE6IHt9LCBzdWJzZXJ0OiBbXSwgbG9nOiB7fSB9O1xyXG5cdC8v5aSE55CGXHJcblx0ZGVhbFBybTogRGVhbCA9IHt9O1xyXG5cdC8vbWFw5pu05pawXHJcblx0d3JpdGVQcm06IFdyaXRlID0ge307XHJcblx0Ly/liKDpmaRcclxuXHRyZW1vdmVQcm06IFJlbW92ZSA9IHt9O1xyXG5cdC8v6I635Y+W5LiA5p2h5pWw5o2uXHJcblx0Z2V0UHJtOiBHZXQgPSB7IGRhdGE6IHt9IH07XHJcblx0Ly/mn6Xor6LmnaHku7ZcclxuXHRmaWx0ZXI6IENvbHVtbkZpbHRlciA9IHt9O1xyXG5cdC8v5p+l6K+i5YiX6KGo5pWw5o2uXHJcblx0c2VhcmNoUHJtOiBTZWFyY2ggPSB7fTtcclxuXHRleHBvcnRQcm06IFNlYXJjaCA9IHt9O1xyXG5cdHRhbXBsYXRlOiBEZWFsID0ge307XHJcblx0aHR0cDogSHR0cENsaWVudCA9IGluamVjdChIdHRwQ2xpZW50KTtcclxuXHRtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UgPSBpbmplY3QoTWVzc2FnZVNlcnZpY2UpO1xyXG5cdGNvbmZpcm1hdGlvblNlcnZpY2UgPSBpbmplY3QoQ29uZmlybWF0aW9uU2VydmljZSk7XHJcblx0bG9hZGluZ1NlcnZpY2UgPSBpbmplY3QoTG9hZGluZ1NlcnZpY2UpO1xyXG5cdHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSA9IGluamVjdChBY3RpdmF0ZWRSb3V0ZSk7XHJcblx0cm91dGVyID0gaW5qZWN0KFJvdXRlcik7XHJcblx0aTE4biA9IGluamVjdChJMThuU2VydmljZSlcclxuXHRjb25zdHJ1Y3RvcigpIHt9XHJcblxyXG5cdHJmZChwcm06IFJmZCk6IE9ic2VydmFibGU8YW55PiB7XHJcblx0XHRyZXR1cm4gdGhpcy5odHRwLnBvc3QoYXBpUGF0aCArICdSRkQnLCBwcm0pLnBpcGUoXHJcblx0XHRcdG1hcCgocmVzcG9uc2U6IGFueSkgPT4ge1xyXG5cdFx0XHRcdHJldHVybiByZXNwb25zZTtcclxuXHRcdFx0fSksXHJcblx0XHRcdGZpbmFsaXplKCgpID0+IHtcclxuXHRcdFx0XHR0aGlzLmxvYWRpbmdTZXJ2aWNlLnNldExvYWRpbmcoZmFsc2UpO1xyXG5cdFx0XHR9KSxcclxuXHRcdCk7XHJcblx0fVxyXG5cdHdlYmdldChwYXJhbTogYW1XZWIpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cC5wb3N0KGFwaVBhdGggKyAnL2dvYW0vYXBpL3dlYmdldCcsIHBhcmFtKS5waXBlKFxyXG5cdFx0XHRtYXAoKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuXHRcdFx0XHRyZXR1cm4gcmVzcG9uc2U7XHJcblx0XHRcdH0pLFxyXG5cdFx0XHRmaW5hbGl6ZSgoKSA9PiB7XHJcblx0XHRcdFx0Ly8gdGhpcy5sb2FkaW5nU2VydmljZS5zZXRMb2FkaW5nKGZhbHNlKTtcclxuXHRcdFx0fSksXHJcblx0XHQpO1xyXG5cdH1cclxuXHJcblx0d2Vic2F2ZShwYXJhbTogYW1XZWIpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cC5wb3N0KGFwaVBhdGggKyAnL2dvYW0vYXBpL3dlYnNhdmUnLCBwYXJhbSkucGlwZShcclxuXHRcdFx0bWFwKChyZXNwb25zZTogYW55KSA9PiB7XHJcblx0XHRcdFx0cmV0dXJuIHJlc3BvbnNlO1xyXG5cdFx0XHR9KSxcclxuXHRcdFx0ZmluYWxpemUoKCkgPT4ge1xyXG4gICAgICAgIC8vIHRoaXMubG9hZGluZ1NlcnZpY2Uuc2V0TG9hZGluZyhmYWxzZSk7XHJcblx0XHRcdH0pLFxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdHdlYmRlbChwYXJhbTogYW1XZWIpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cC5wb3N0KGFwaVBhdGggKyAnd2ViZGVsJywgcGFyYW0pLnBpcGUoXHJcblx0XHRcdG1hcCgocmVzcG9uc2U6IGFueSkgPT4ge1xyXG5cdFx0XHRcdHJldHVybiByZXNwb25zZTtcclxuXHRcdFx0fSksXHJcblx0XHRcdGZpbmFsaXplKCgpID0+IHtcclxuICAgICAgICAvLyB0aGlzLmxvYWRpbmdTZXJ2aWNlLnNldExvYWRpbmcoZmFsc2UpO1xyXG5cdFx0XHR9KSxcclxuXHRcdCk7XHJcblx0fVxyXG5cclxuXHR1cHNlcnQocHJtPzogYW55LCBjYj86IEZ1bmN0aW9uKSB7XHJcblx0XHRpZiAocHJtKSB7XHJcblx0XHRcdHRoaXMud2ViX3Vwc2VydChwcm0pLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcblx0XHRcdFx0Y2IgJiYgY2IocmVzKTtcclxuXHRcdFx0XHR0aGlzLnJlc2V0UHJtKCd1cHNlcnQnKTtcclxuXHRcdFx0fSk7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHQvLyBjb25zdCBwbTogVXBzZXJ0ID0gdGhpcy51cHNlcnRzKClcclxuXHRcdFx0Ly8gY29uc29sZS5sb2coJzE9PT09JyxwbSlcclxuXHRcdFx0dGhpcy53ZWJfdXBzZXJ0KHRoaXMudXBzZXJ0UHJtKS5zdWJzY3JpYmUoKHJlcykgPT4ge1xyXG5cdFx0XHRcdGNiICYmIGNiKHJlcyk7XHJcblx0XHRcdFx0dGhpcy5yZXNldFBybSgndXBzZXJ0Jyk7XHJcblx0XHRcdH0pO1xyXG5cdFx0fVxyXG5cdH1cclxuXHQvL+WFqOmDqOWIm+W7uuaIluabtOaWsO+8jOagueaNrklE5Yik5patXHJcblx0d2ViX3Vwc2VydChwYXJhbTogVXBzZXJ0KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHRoaXMubG9hZGluZ1NlcnZpY2Uuc2V0TG9hZGluZyh0cnVlKTtcclxuXHRcdGlmICghcGFyYW0ubW9kZWxOYW1lKSB7XHJcblx0XHRcdHBhcmFtID0geyBtb2RlbE5hbWU6IHRoaXMubW9kZWxOYW1lLCAuLi5wYXJhbSB9O1xyXG5cdFx0fVxyXG5cdFx0bGV0IGFkZERhdGE6IGFueSA9IHBhcmFtLmFkZERhdGE7XHJcblx0XHRpZiAoT2JqZWN0LmtleXMoYWRkRGF0YSkubGVuZ3RoID09IDApIHtcclxuXHRcdFx0ZGVsZXRlIHBhcmFtLmFkZERhdGE7XHJcblx0XHR9XHJcblx0XHRsZXQgdXBkRGF0YTogYW55ID0gcGFyYW0udXBkRGF0YTtcclxuXHRcdGNvbnNvbGUubG9nKCdwYXJhbS0tLS0nLCBwYXJhbS51cGREYXRhKTtcclxuXHRcdGlmIChPYmplY3Qua2V5cyh1cGREYXRhKS5sZW5ndGggPT0gMCkge1xyXG5cdFx0XHRkZWxldGUgcGFyYW0udXBkRGF0YTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdHBhcmFtLnVwZERhdGEhWydpZCddID0gdGhpcy5pZDtcclxuXHRcdFx0cGFyYW0ubG9nIS5waWQgPSB0aGlzLmlkO1xyXG5cdFx0fVxyXG5cdFx0aWYgKCFwYXJhbT8uYWRkRGF0YSAmJiAhcGFyYW0udXBkRGF0YSkge1xyXG5cdFx0XHRwYXJhbSA9IHsgdXBkRGF0YTogeyBpZDogdGhpcy5pZCB9LCAuLi5wYXJhbSB9O1xyXG5cdFx0fVxyXG5cdFx0Y29uc29sZS5sb2coJ3RoaXMuaXNMb2ctLS0tJywgdGhpcy5pc0xvZyk7XHJcblx0XHRpZiAoIXRoaXMuaXNMb2cpIHtcclxuXHRcdFx0ZGVsZXRlIHBhcmFtLmxvZztcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdGxldCBsZzogc3RyaW5nID0gJyc7XHJcblx0XHRcdC8vIEB0cy1pZ25vcmVcclxuXHRcdFx0Y29uc3QgaXNJMThuID0gd2luZG93LmFwcElzSTE4blxyXG5cdFx0XHRsZXQgY3JlYXRlU3RyID0gaXNJMThuID8gdGhpcy5pMThuLmZhbnlpKCdhcHAuY3JlYXRlJykgOifmlrDlu7onXHJcblx0XHRcdHBhcmFtLnN1YnNlcnQ/LmZvckVhY2goKHYpID0+IHtcclxuXHRcdFx0XHR2LmxvZ3RtcD8uZm9yRWFjaCgodiwgaykgPT4ge1xyXG5cdFx0XHRcdFx0aWYgKHYuaWQgPT09IDApIHtcclxuXHRcdFx0XHRcdFx0bGcgKz0gYCR7Y3JlYXRlU3Ryfe+8miAtPiAke3YubmV3VmFsdWV9O2BcclxuXHRcdFx0XHRcdFx0Ly8gbGcgKz0gJ+aWsOW7uu+8miAtPiAnICsgdi5uZXdWYWx1ZSArICc7JztcclxuXHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdGxnICs9ICdbJyArIHYuaWQgKyAnLScgKyB2LmxhYmVsICsgJ10gJyArICh2Lm9sZFZhbHVlIHx8ICcnKSArICcgLT4gJyArICh2Lm5ld1ZhbHVlIHx8ICcnKSArICc7JztcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0fSk7XHJcblx0XHRcdHBhcmFtID0geyAuLi5wYXJhbSwgbG9nOiB7IC4uLnBhcmFtLmxvZywgc3ViQ29udGVudDogbGcgfSB9O1xyXG5cdFx0fVxyXG5cdFx0Y29uc29sZS5sb2coJ3BhcmFtPT09PScsIHBhcmFtKTtcclxuXHRcdHJldHVybiB0aGlzLmh0dHAucG9zdChhcGlQYXRoICsgJ3Vwc2VydCcsIHBhcmFtKS5waXBlKFxyXG5cdFx0XHRtYXAoKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuXHRcdFx0XHRpZiAocGFyYW0ubG9nKSB7XHJcblx0XHRcdFx0XHRkZWxldGUgcGFyYW0ubG9nO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRyZXR1cm4gcmVzcG9uc2U7XHJcblx0XHRcdH0pLFxyXG5cdFx0XHRmaW5hbGl6ZSgoKSA9PiB7XHJcbiAgICAgICAgLy8gdGhpcy5sb2FkaW5nU2VydmljZS5zZXRMb2FkaW5nKGZhbHNlKTtcclxuXHRcdFx0fSksXHJcblx0XHQpO1xyXG5cdH1cclxuXHQvL+iHquWkhOeQhumAu+i+kVxyXG5cdGRlYWwocHJtPzogRGVhbCkge1xyXG5cdFx0aWYgKHBybSkge1xyXG5cdFx0XHR0aGlzLndlYl9kZWFsKHBybSkuc3Vic2NyaWJlKCk7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHR0aGlzLndlYl9kZWFsKHRoaXMuZGVhbFBybSkuc3Vic2NyaWJlKCk7XHJcblx0XHR9XHJcblx0fVxyXG5cdHdlYl9kZWFsKHBhcmFtOiBEZWFsKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHRoaXMubG9hZGluZ1NlcnZpY2Uuc2V0TG9hZGluZyh0cnVlKTtcclxuXHRcdHJldHVybiB0aGlzLmh0dHAucG9zdChhcGlQYXRoICsgJ2RlYWwnLCBwYXJhbSkucGlwZShcclxuXHRcdFx0bWFwKChyZXNwb25zZTogYW55KSA9PiB7XHJcblx0XHRcdFx0dGhpcy5kZWFsUHJtID0geyBkYXRhOiByZXNwb25zZSwgLi4udGhpcy5kZWFsUHJtIH07XHJcblx0XHRcdFx0cmV0dXJuIHJlc3BvbnNlO1xyXG5cdFx0XHR9KSxcclxuXHRcdFx0ZmluYWxpemUoKCkgPT4ge1xyXG4gICAgICAgIC8vIHRoaXMubG9hZGluZ1NlcnZpY2Uuc2V0TG9hZGluZyhmYWxzZSk7XHJcblx0XHRcdH0pLFxyXG5cdFx0KTtcclxuXHR9XHJcblx0Ly/kvKDlhaVtYXDvvIzmoLnmja5JRO+8jOabtOaWsG1hcOaVsOaNrlxyXG5cdHdyaXRlKHBybT86IFdyaXRlKSB7XHJcblx0XHRpZiAocHJtKSB7XHJcblx0XHRcdHRoaXMud2ViX3dyaXRlKHBybSkuc3Vic2NyaWJlKCk7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHR0aGlzLndlYl93cml0ZSh0aGlzLndyaXRlUHJtKS5zdWJzY3JpYmUoKTtcclxuXHRcdH1cclxuXHR9XHJcblx0d2ViX3dyaXRlKHBhcmFtOiBXcml0ZSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICB0aGlzLmxvYWRpbmdTZXJ2aWNlLnNldExvYWRpbmcodHJ1ZSk7XHJcblx0XHRpZiAoIXBhcmFtLm1vZGVsTmFtZSkge1xyXG5cdFx0XHRwYXJhbSA9IHsgbW9kZWxOYW1lOiB0aGlzLm1vZGVsTmFtZSwgLi4ucGFyYW0gfTtcclxuXHRcdH1cclxuXHRcdHJldHVybiB0aGlzLmh0dHAucG9zdChhcGlQYXRoICsgJ3dyaXRlJywgcGFyYW0pLnBpcGUoXHJcblx0XHRcdG1hcCgocmVzcG9uc2U6IGFueSkgPT4ge1xyXG5cdFx0XHRcdGlmIChwYXJhbS5sb2cpIHtcclxuXHRcdFx0XHRcdGRlbGV0ZSBwYXJhbS5sb2c7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdHJldHVybiByZXNwb25zZTtcclxuXHRcdFx0fSksXHJcblx0XHRcdGZpbmFsaXplKCgpID0+IHtcclxuICAgICAgICAvLyB0aGlzLmxvYWRpbmdTZXJ2aWNlLnNldExvYWRpbmcoZmFsc2UpO1xyXG5cdFx0XHR9KSxcclxuXHRcdCk7XHJcblx0fVxyXG5cdC8v5qC55o2uSUTliKDpmaRcclxuXHRyZW1vdmUocHJtPzogUmVtb3ZlKSB7XHJcblx0XHRpZiAocHJtKSB7XHJcblx0XHRcdHRoaXMud2ViX3JlbW92ZShwcm0pLnN1YnNjcmliZSgpO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0dGhpcy53ZWJfcmVtb3ZlKHRoaXMucmVtb3ZlUHJtKS5zdWJzY3JpYmUoKTtcclxuXHRcdH1cclxuXHR9XHJcblx0d2ViX3JlbW92ZShwYXJhbTogUmVtb3ZlKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHRoaXMubG9hZGluZ1NlcnZpY2Uuc2V0TG9hZGluZyh0cnVlKTtcclxuXHRcdHJldHVybiB0aGlzLmh0dHAucG9zdChhcGlQYXRoICsgJ3JlbW92ZScsIHBhcmFtKS5waXBlKFxyXG5cdFx0XHRtYXAoKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuXHRcdFx0XHRpZiAocGFyYW0ubG9nKSB7XHJcblx0XHRcdFx0XHRkZWxldGUgcGFyYW0ubG9nO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRyZXR1cm4gcmVzcG9uc2U7XHJcblx0XHRcdH0pLFxyXG5cdFx0XHRmaW5hbGl6ZSgoKSA9PiB7XHJcbiAgICAgICAgLy8gdGhpcy5sb2FkaW5nU2VydmljZS5zZXRMb2FkaW5nKGZhbHNlKTtcclxuXHRcdFx0fSksXHJcblx0XHQpO1xyXG5cdH1cclxuXHQvL+agueaNrklE6I635Y+W5LiA5p2h5pWw5o2uXHJcblx0Z2V0KHBybT86IEdldCkge1xyXG5cdFx0aWYgKHBybSkge1xyXG5cdFx0XHR0aGlzLndlYl9nZXQocHJtKS5zdWJzY3JpYmUoKTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdHRoaXMud2ViX2dldCh0aGlzLmdldFBybSkuc3Vic2NyaWJlKCk7XHJcblx0XHR9XHJcblx0fVxyXG5cdHdlYl9nZXQocGFyYW06IEdldCk6IE9ic2VydmFibGU8YW55PiB7XHJcblx0XHRpZiAoIXBhcmFtLmhhc093blByb3BlcnR5KCdtb2RlbE5hbWUnKSkge1xyXG5cdFx0XHRwYXJhbS5tb2RlbE5hbWUgPSB0aGlzLm1vZGVsTmFtZTtcclxuXHRcdH1cclxuICAgIHRoaXMubG9hZGluZ1NlcnZpY2Uuc2V0TG9hZGluZyh0cnVlKTtcclxuXHRcdHJldHVybiB0aGlzLmh0dHAucG9zdChhcGlQYXRoICsgJ2dldCcsIHBhcmFtKS5waXBlKFxyXG5cdFx0XHRtYXAoKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuXHRcdFx0XHR0aGlzLmdldFBybS5kYXRhID0gcmVzcG9uc2U7XHJcblx0XHRcdFx0aWYgKHJlc3BvbnNlLmlkID09PSAwICYmIHBhcmFtLmhhc093blByb3BlcnR5KCdmb3JlaWduS2V5JykpIHtcclxuXHRcdFx0XHRcdHRoaXMudXBzZXJ0UHJtLmFkZERhdGEhW3BhcmFtLmZvcmVpZ25LZXkhXSA9IHBhcmFtW3BhcmFtLmZvcmVpZ25LZXkhXTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0dGhpcy5pZCA9IHJlc3BvbnNlPy5pZDtcclxuXHRcdFx0XHRyZXR1cm4gcmVzcG9uc2U7XHJcblx0XHRcdH0pLFxyXG5cdFx0XHRmaW5hbGl6ZSgoKSA9PiB7XHJcbiAgICAgICAgLy8gdGhpcy5sb2FkaW5nU2VydmljZS5zZXRMb2FkaW5nKGZhbHNlKTtcclxuXHRcdFx0fSksXHJcblx0XHQpO1xyXG5cdH1cclxuXHQvL+iOt+WPluWkmuadoeaVsOaNru+8jOagueaNruS8oOWFpeeahOadoeS7tuiHquWKqOe7hOe7h3NxbFxyXG5cdHNlYXJjaChwcm0/OiBTZWFyY2gpIHtcclxuXHRcdGlmIChwcm0pIHtcclxuXHRcdFx0dGhpcy53ZWJfc2VhcmNoKHBybSkuc3Vic2NyaWJlKCk7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHR0aGlzLndlYl9zZWFyY2godGhpcy5zZWFyY2hQcm0pLnN1YnNjcmliZSgpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHR3ZWJfc2VhcmNoKHBhcmFtOiBTZWFyY2gpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgdGhpcy5sb2FkaW5nU2VydmljZS5zZXRMb2FkaW5nKHRydWUpO1xyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cC5wb3N0KGFwaVBhdGggKyAnc2VhcmNoJywgcGFyYW0pLnBpcGUoXHJcblx0XHRcdG1hcCgocmVzcG9uc2U6IGFueSkgPT4ge1xyXG5cdFx0XHRcdHRoaXMuc2VhcmNoUHJtID0geyAuLi5yZXNwb25zZSB9O1xyXG5cdFx0XHRcdGNvbnNvbGUubG9nKCd1cHNleS0tLS0tJywgdGhpcy51cHNlcnRQcm0pO1xyXG5cdFx0XHRcdHJldHVybiByZXNwb25zZTtcclxuXHRcdFx0fSksXHJcblx0XHRcdGZpbmFsaXplKCgpID0+IHtcclxuICAgICAgICAvLyB0aGlzLmxvYWRpbmdTZXJ2aWNlLnNldExvYWRpbmcoZmFsc2UpO1xyXG5cdFx0XHR9KSxcclxuXHRcdCk7XHJcblx0fVxyXG5cdHNlYXJjaG1hcChwcm0/OiBTZWFyY2gpIHtcclxuXHRcdGlmIChwcm0pIHtcclxuXHRcdFx0dGhpcy53ZWJfc2VhcmNoKHBybSkuc3Vic2NyaWJlKCk7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHR0aGlzLndlYl9zZWFyY2godGhpcy5zZWFyY2hQcm0pLnN1YnNjcmliZSgpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHR3ZWJfc2VhcmNobWFwKHBhcmFtOiBTZWFyY2gpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgdGhpcy5sb2FkaW5nU2VydmljZS5zZXRMb2FkaW5nKHRydWUpO1xyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cC5wb3N0KGFwaVBhdGggKyAnc2VhcmNoTWFwJywgcGFyYW0pLnBpcGUoXHJcblx0XHRcdG1hcCgocmVzcG9uc2U6IGFueSkgPT4ge1xyXG5cdFx0XHRcdHRoaXMuc2VhcmNoUHJtID0geyAuLi5yZXNwb25zZSB9O1xyXG5cdFx0XHRcdGNvbnNvbGUubG9nKCd1cHNleS0tLS0tJywgdGhpcy51cHNlcnRQcm0pO1xyXG5cdFx0XHRcdHJldHVybiByZXNwb25zZTtcclxuXHRcdFx0fSksXHJcblx0XHRcdGZpbmFsaXplKCgpID0+IHtcclxuICAgICAgICAvLyB0aGlzLmxvYWRpbmdTZXJ2aWNlLnNldExvYWRpbmcoZmFsc2UpO1xyXG5cdFx0XHR9KSxcclxuXHRcdCk7XHJcblx0fVxyXG5cdC8v6I635Y+W5aSa5p2h5pWw5o2u77yM5qC55o2u5Lyg5YWl55qE5p2h5Lu26Ieq5Yqo57uE57uHc3FsXHJcblx0c2VhcmNoQ291bnQocHJtPzogU2VhcmNoKSB7XHJcblx0XHRpZiAocHJtKSB7XHJcblx0XHRcdHRoaXMud2ViX3NlYXJjaENvdW50KHBybSkuc3Vic2NyaWJlKCk7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHR0aGlzLndlYl9zZWFyY2hDb3VudCh0aGlzLnNlYXJjaFBybSkuc3Vic2NyaWJlKCk7XHJcblx0XHR9XHJcblx0fVxyXG5cdHdlYl9zZWFyY2hDb3VudChwYXJhbTogU2VhcmNoKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHRoaXMubG9hZGluZ1NlcnZpY2Uuc2V0TG9hZGluZyh0cnVlKTtcclxuXHRcdHJldHVybiB0aGlzLmh0dHAucG9zdChhcGlQYXRoICsgJ3NlYXJjaENvdW50JywgcGFyYW0pLnBpcGUoXHJcblx0XHRcdG1hcCgocmVzcG9uc2U6IGFueSkgPT4ge1xyXG5cdFx0XHRcdHRoaXMuc2VhcmNoUHJtID0geyAuLi5yZXNwb25zZSB9O1xyXG5cdFx0XHRcdHJldHVybiByZXNwb25zZTtcclxuXHRcdFx0fSksXHJcblx0XHRcdGZpbmFsaXplKCgpID0+IHtcclxuICAgICAgICAvLyB0aGlzLmxvYWRpbmdTZXJ2aWNlLnNldExvYWRpbmcoZmFsc2UpO1xyXG5cdFx0XHR9KSxcclxuXHRcdCk7XHJcblx0fVxyXG5cdC8vZXhjZWzlr7zlhaVcclxuXHQvLyBpbXBvcnQocGFyYW06IEltcG9ydEV4Y2VsKTpPYnNlcnZhYmxlPGFueT4ge1xyXG5cdC8vICAgdGhpcy5pc0xvYWRpbmcuc2V0KHRydWUpO1xyXG5cdC8vICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFwiYW0vcmVtb3ZlXCIscGFyYW0saHR0cE9wdGlvbnMpXHJcblx0Ly8gICAucGlwZShcclxuXHQvLyAgICAgbWFwKChyZXNwb25zZTogYW55KSA9PntcclxuXHQvLyAgICAgICB0aGlzLm1lc3NhZ2Uuc2V0KHJlc3BvbnNlKTtcclxuXHQvLyAgICAgICB0aGlzLmlzU3VjY2Vzcy5zZXQodHJ1ZSk7XHJcblx0Ly8gICAgICAgcmV0dXJuIHJlc3BvbnNlO1xyXG5cdC8vICAgICB9KSxcclxuXHQvLyAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcclxuXHQvLyAgICAgICAvLyDoi6Xor7fmsYLlh7rplJnvvIzorr7nva7or7fmsYLmiJDlip/nirbmgIHkuLogZmFsc2XvvIzlubblsIbplJnor6/ph43mlrDmipvlh7pcclxuXHQvLyAgICAgICB0aGlzLmlzU3VjY2Vzcy5zZXQoZmFsc2UpO1xyXG5cdC8vICAgICAgIHRoaXMubWVzc2FnZS5zZXQoZXJyb3IpO1xyXG5cdC8vICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IGVycm9yKTtcclxuXHQvLyAgICAgfSksXHJcblx0Ly8gICAgIGZpbmFsaXplKCgpID0+IHtcclxuXHQvLyAgICAgICAvLyDml6Dorrror7fmsYLmiJDlip/kuI7lkKbvvIzpg73lsIbliqDovb3kuK3nirbmgIHorr7nva7kuLogZmFsc2VcclxuXHQvLyAgICAgICB0aGlzLmlzTG9hZGluZy5zZXQoZmFsc2UpO1xyXG5cdC8vICAgICB9KVxyXG5cdC8vICAgKTtcclxuXHQvLyB9XHJcblx0Ly8vL2V4Y2VsIOWvvOWHulxyXG5cdGV4cG9ydChwcm0/OiBTZWFyY2gpIHtcclxuXHRcdGlmIChwcm0pIHtcclxuXHRcdFx0dGhpcy53ZWJfZXhwb3J0KHBybSkuc3Vic2NyaWJlKCk7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHR0aGlzLndlYl9leHBvcnQodGhpcy5leHBvcnRQcm0pLnN1YnNjcmliZSgpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHR3ZWJfZXhwb3J0KHBhcmFtOiBTZWFyY2gpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG5cdFx0aWYgKCFwYXJhbS5tb2RlbE5hbWUpIHtcclxuXHRcdFx0cGFyYW0gPSB7IG1vZGVsTmFtZTogdGhpcy5tb2RlbE5hbWUsIC4uLnBhcmFtIH07XHJcblx0XHR9XHJcbiAgICB0aGlzLmxvYWRpbmdTZXJ2aWNlLnNldExvYWRpbmcodHJ1ZSk7XHJcblx0XHRyZXR1cm4gdGhpcy5odHRwLnBvc3QoYXBpUGF0aCArICdleHBvcnQnLCBwYXJhbSwgeyByZXNwb25zZVR5cGU6ICdibG9iJyB9KS5waXBlKFxyXG5cdFx0XHRtYXAoKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuXHRcdFx0XHRjb25zdCBkYXRhOiBCbG9iID0gbmV3IEJsb2IoW3Jlc3BvbnNlXSwge1xyXG5cdFx0XHRcdFx0dHlwZTogJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0OyBjaGFyc2V0PVVURi04JyxcclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0XHRjb25zdCBmaWxlTmFtZSA9IHBhcmFtLm1vZGVsTmFtZSArICcueGxzeCc7XHJcblx0XHRcdFx0RmlsZVNhdmVyLnNhdmVBcyhkYXRhLCBmaWxlTmFtZSk7XHJcblx0XHRcdFx0cmV0dXJuIHJlc3BvbnNlO1xyXG5cdFx0XHR9KSxcclxuXHRcdFx0ZmluYWxpemUoKCkgPT4ge1xyXG4gICAgICAgIC8vIHRoaXMubG9hZGluZ1NlcnZpY2Uuc2V0TG9hZGluZyhmYWxzZSk7XHJcblx0XHRcdH0pLFxyXG5cdFx0KTtcclxuXHR9XHJcblx0Ly/kurrlt6XlpITnkIblr7zlhaVcclxuXHRkZWFsRXhwb3J0KHBybT86IFNlYXJjaCkge1xyXG5cdFx0aWYgKHBybSkge1xyXG5cdFx0XHR0aGlzLndlYl9kZWFsX2V4cG9ydChwcm0pLnN1YnNjcmliZSgpO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0dGhpcy53ZWJfZGVhbF9leHBvcnQodGhpcy5leHBvcnRQcm0pLnN1YnNjcmliZSgpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHR3ZWJfZGVhbF9leHBvcnQocGFyYW06IFNlYXJjaCk6IE9ic2VydmFibGU8YW55PiB7XHJcblx0XHRpZiAoIXBhcmFtLm1vZGVsTmFtZSkge1xyXG5cdFx0XHRwYXJhbSA9IHsgbW9kZWxOYW1lOiB0aGlzLm1vZGVsTmFtZSwgLi4ucGFyYW0gfTtcclxuXHRcdH1cclxuICAgIHRoaXMubG9hZGluZ1NlcnZpY2Uuc2V0TG9hZGluZyh0cnVlKTtcclxuXHRcdHJldHVybiB0aGlzLmh0dHAucG9zdChhcGlQYXRoICsgJ2RlYWxFeHBvcnQnLCBwYXJhbSwgeyByZXNwb25zZVR5cGU6ICdibG9iJyB9KS5waXBlKFxyXG5cdFx0XHRtYXAoKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuXHRcdFx0XHRjb25zdCBkYXRhOiBCbG9iID0gbmV3IEJsb2IoW3Jlc3BvbnNlXSwge1xyXG5cdFx0XHRcdFx0dHlwZTogJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0OyBjaGFyc2V0PVVURi04JyxcclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0XHRjb25zdCBmaWxlTmFtZSA9IHBhcmFtLm1vZGVsTmFtZSArICcueGxzeCc7XHJcblx0XHRcdFx0RmlsZVNhdmVyLnNhdmVBcyhkYXRhLCBmaWxlTmFtZSk7XHJcblx0XHRcdFx0cmV0dXJuIHJlc3BvbnNlO1xyXG5cdFx0XHR9KSxcclxuXHRcdFx0ZmluYWxpemUoKCkgPT4ge1xyXG4gICAgICAgIC8vIHRoaXMubG9hZGluZ1NlcnZpY2Uuc2V0TG9hZGluZyhmYWxzZSk7XHJcblx0XHRcdH0pLFxyXG5cdFx0KTtcclxuXHR9XHJcblx0Ly/kuIvovb3lr7zlhaXnmoTmqKHmnb9cclxuXHRkb3dubG9hZFRlbXBsYXRlKHBybT86IERlYWwpIHtcclxuXHRcdGlmIChwcm0pIHtcclxuXHRcdFx0dGhpcy53ZWJfZG93bmxvYWRUZW1wbGF0ZShwcm0pLnN1YnNjcmliZSgpO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0dGhpcy53ZWJfZG93bmxvYWRUZW1wbGF0ZSh0aGlzLnRhbXBsYXRlKS5zdWJzY3JpYmUoKTtcclxuXHRcdH1cclxuXHR9XHJcblx0d2ViX2Rvd25sb2FkVGVtcGxhdGUocGFyYW06IERlYWwpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgdGhpcy5sb2FkaW5nU2VydmljZS5zZXRMb2FkaW5nKHRydWUpO1xyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cC5wb3N0KGFwaVBhdGggKyAnZG93bmxvYWQnLCBwYXJhbSwgeyByZXNwb25zZVR5cGU6ICdibG9iJyB9KS5waXBlKFxyXG5cdFx0XHRtYXAoKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuXHRcdFx0XHRjb25zdCBkYXRhOiBCbG9iID0gbmV3IEJsb2IoW3Jlc3BvbnNlXSwge1xyXG5cdFx0XHRcdFx0dHlwZTogJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0OyBjaGFyc2V0PVVURi04JyxcclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0XHRjb25zdCBmaWxlTmFtZSA9IHBhcmFtLm1vZGVsTmFtZSArICfmqKHmnb8ueGxzeCc7XHJcblx0XHRcdFx0RmlsZVNhdmVyLnNhdmVBcyhkYXRhLCBmaWxlTmFtZSk7XHJcblx0XHRcdFx0cmV0dXJuIHJlc3BvbnNlO1xyXG5cdFx0XHR9KSxcclxuXHRcdFx0ZmluYWxpemUoKCkgPT4ge1xyXG4gICAgICAgIC8vIHRoaXMubG9hZGluZ1NlcnZpY2Uuc2V0TG9hZGluZyhmYWxzZSk7XHJcblx0XHRcdH0pLFxyXG5cdFx0KTtcclxuXHR9XHJcblx0Ly/liKDpmaTlm77niYdcclxuXHRpbWFnZURlbGV0ZShmaWQ/OiBzdHJpbmcpIHtcclxuXHRcdGlmIChmaWQpIHtcclxuXHRcdFx0dGhpcy53ZWJfaW1hZ2VEZWxldGUoZmlkKS5zdWJzY3JpYmUoKTtcclxuXHRcdH0gZWxzZSBpZiAodGhpcy5maWQubGVuZ3RoID4gMCkge1xyXG5cdFx0XHR0aGlzLndlYl9pbWFnZURlbGV0ZSh0aGlzLmZpZCkuc3Vic2NyaWJlKCk7XHJcblx0XHR9XHJcblx0fVxyXG5cdHdlYl9pbWFnZURlbGV0ZShmaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICB0aGlzLmxvYWRpbmdTZXJ2aWNlLnNldExvYWRpbmcodHJ1ZSk7XHJcblx0XHRyZXR1cm4gdGhpcy5odHRwLnBvc3QoYXBpUGF0aCArICdpbWFnZURlbGV0ZScsIGZpZCkucGlwZShcclxuXHRcdFx0bWFwKChyZXNwb25zZTogYW55KSA9PiB7XHJcblx0XHRcdFx0dGhpcy5tZXNzYWdlU2VydmljZS5hZGQoeyBzZXZlcml0eTogJ3N1Y2Nlc3MnLCBzdW1tYXJ5OiAnU3VjY2VzcycsIGRldGFpbDogcmVzcG9uc2UgfSk7XHJcblx0XHRcdFx0cmV0dXJuIHJlc3BvbnNlO1xyXG5cdFx0XHR9KSxcclxuXHRcdFx0ZmluYWxpemUoKCkgPT4ge1xyXG4gICAgICAgIC8vIHRoaXMubG9hZGluZ1NlcnZpY2Uuc2V0TG9hZGluZyhmYWxzZSk7XHJcblx0XHRcdH0pLFxyXG5cdFx0KTtcclxuXHR9XHJcblx0Ly/liKDpmaTlm77niYdcclxuXHRmaWxlckRlbGV0ZShmaWQ/OiBzdHJpbmcpIHtcclxuXHRcdGlmIChmaWQpIHtcclxuXHRcdFx0dGhpcy53ZWJfZmlsZXJEZWxldGUoZmlkKS5zdWJzY3JpYmUoKTtcclxuXHRcdH0gZWxzZSBpZiAodGhpcy5maWQubGVuZ3RoID4gMCkge1xyXG5cdFx0XHR0aGlzLndlYl9maWxlckRlbGV0ZSh0aGlzLmZpZCkuc3Vic2NyaWJlKCk7XHJcblx0XHR9XHJcblx0fVxyXG5cdHdlYl9maWxlckRlbGV0ZShmaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICB0aGlzLmxvYWRpbmdTZXJ2aWNlLnNldExvYWRpbmcodHJ1ZSk7XHJcblx0XHRyZXR1cm4gdGhpcy5odHRwLnBvc3QoYXBpUGF0aCArICdpbWFnZURlbGV0ZScsIGZpZCkucGlwZShcclxuXHRcdFx0bWFwKChyZXNwb25zZTogYW55KSA9PiB7XHJcblx0XHRcdFx0dGhpcy5tZXNzYWdlU2VydmljZS5hZGQoeyBzZXZlcml0eTogJ3N1Y2Nlc3MnLCBzdW1tYXJ5OiAnU3VjY2VzcycsIGRldGFpbDogcmVzcG9uc2UgfSk7XHJcblx0XHRcdFx0cmV0dXJuIHJlc3BvbnNlO1xyXG5cdFx0XHR9KSxcclxuXHRcdFx0ZmluYWxpemUoKCkgPT4ge1xyXG5cdFx0XHRcdC8vIHRoaXMubG9hZGluZ1NlcnZpY2Uuc2V0TG9hZGluZyhmYWxzZSk7XHJcblx0XHRcdH0pLFxyXG5cdFx0KTtcclxuXHR9XHJcblx0Ly/liLfmlrB0b2tlblxyXG5cdHJlZnJlc2hUb2tlbihwYXJhbTogVG9rZW5JbmZvKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuXHRcdHJldHVybiB0aGlzLmh0dHAucG9zdChhcGlQYXRoICsgJ3JlZnJlc2hUb2tlbicsIHBhcmFtKS5waXBlKFxyXG5cdFx0XHRtYXAoKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuXHRcdFx0XHR0aGlzLmRlYWxQcm0gPSB7IGRhdGE6IHJlc3BvbnNlLCAuLi50aGlzLmRlYWxQcm0gfTtcclxuXHRcdFx0XHRyZXR1cm4gcmVzcG9uc2U7XHJcblx0XHRcdH0pLFxyXG5cdFx0XHRmaW5hbGl6ZSgoKSA9PiB7XHJcbiAgICAgICAgLy8gdGhpcy5sb2FkaW5nU2VydmljZS5zZXRMb2FkaW5nKGZhbHNlKTtcclxuXHRcdFx0fSksXHJcblx0XHQpO1xyXG5cdH1cclxuXHQvL+WIm+W7uuihqFxyXG5cdGNyZWF0ZVRhYmxlKHBybT86IFBhcmFtKSB7XHJcblx0XHRpZiAocHJtKSB7XHJcblx0XHRcdHRoaXMud2ViX2NyZWF0ZVRhYmxlKHBybSkuc3Vic2NyaWJlKCk7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHR0aGlzLndlYl9jcmVhdGVUYWJsZSh0aGlzLnBhcmFtKS5zdWJzY3JpYmUoKTtcclxuXHRcdH1cclxuXHR9XHJcblx0d2ViX2NyZWF0ZVRhYmxlKHBhcmFtOiBQYXJhbSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICB0aGlzLmxvYWRpbmdTZXJ2aWNlLnNldExvYWRpbmcodHJ1ZSk7XHJcblx0XHRyZXR1cm4gdGhpcy5odHRwLnBvc3QoYXBpUGF0aCArICdjcmVhdGVUYWJsZScsIHBhcmFtKS5waXBlKFxyXG5cdFx0XHRtYXAoKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuXHRcdFx0XHQvLyB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7c2V2ZXJpdHk6ICdzdWNjZXNzJyxzdW1tYXJ5OiAnU3VjY2VzcycsZGV0YWlsOiByZXNwb25zZX0pXHJcblx0XHRcdFx0cmV0dXJuIHJlc3BvbnNlO1xyXG5cdFx0XHR9KSxcclxuXHRcdFx0ZmluYWxpemUoKCkgPT4ge1xyXG4gICAgICAgIC8vIHRoaXMubG9hZGluZ1NlcnZpY2Uuc2V0TG9hZGluZyhmYWxzZSk7XHJcblx0XHRcdH0pLFxyXG5cdFx0KTtcclxuXHR9XHJcblx0Ly8g5pqC5peg56Gu5a6a5piv5ZCm6YeN572u5YW25LuW5YWs5YWx5Y+Y6YePXHJcblx0cmVzZXRQcm0oc2VhcmNoPzogc3RyaW5nKSB7XHJcblx0XHRzd2l0Y2ggKHNlYXJjaCkge1xyXG5cdFx0XHRjYXNlICd1cHNlcnQnOlxyXG5cdFx0XHRcdHRoaXMudXBzZXJ0UHJtLmFkZERhdGEgPSB7fTtcclxuXHRcdFx0XHR0aGlzLnVwc2VydFBybS51cGREYXRhID0ge307XHJcblx0XHRcdFx0dGhpcy51cHNlcnRQcm0ubG9nID0ge307XHJcblx0XHRcdFx0dGhpcy51cHNlcnRQcm0uc3Vic2VydD8uZm9yRWFjaCgodikgPT4ge1xyXG5cdFx0XHRcdFx0di5sb2d0bXAgPSBuZXcgTWFwKCk7XHJcblx0XHRcdFx0XHR2Lm1hcHRtcCA9IG5ldyBNYXAoKTtcclxuXHRcdFx0XHRcdHYuc3ViRGF0YSA9IFtdO1xyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRkZWZhdWx0OlxyXG5cdFx0XHRcdCcnO1xyXG5cdFx0fVxyXG5cdH1cclxuXHQvL+iHquWkhOeQhumAu+i+kVxyXG5cdGRlYWxRdWVyeShwcm0/OiBEZWFsKSB7XHJcblx0XHRpZiAocHJtKSB7XHJcblx0XHRcdHRoaXMud2ViRGVhbFF1ZXJ5KHBybSkuc3Vic2NyaWJlKCk7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHR0aGlzLndlYkRlYWxRdWVyeSh0aGlzLmRlYWxQcm0pLnN1YnNjcmliZSgpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHR3ZWJEZWFsUXVlcnkocGFyYW06IERlYWwpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgdGhpcy5sb2FkaW5nU2VydmljZS5zZXRMb2FkaW5nKHRydWUpO1xyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cC5wb3N0KGFwaVBhdGggKyAnZGVhbFF1ZXJ5JywgcGFyYW0pLnBpcGUoXHJcblx0XHRcdG1hcCgocmVzcG9uc2U6IGFueSkgPT4ge1xyXG5cdFx0XHRcdHRoaXMuZGVhbFBybSA9IHsgZGF0YTogcmVzcG9uc2UsIC4uLnRoaXMuZGVhbFBybSB9O1xyXG5cdFx0XHRcdHJldHVybiByZXNwb25zZTtcclxuXHRcdFx0fSksXHJcblx0XHRcdGZpbmFsaXplKCgpID0+IHtcclxuICAgICAgICAvLyB0aGlzLmxvYWRpbmdTZXJ2aWNlLnNldExvYWRpbmcoZmFsc2UpO1xyXG5cdFx0XHR9KSxcclxuXHRcdCk7XHJcblx0fVxyXG5cdGRlYWxDdXN0b20ocHJtPzogRGVhbCkge1xyXG5cdFx0aWYgKHBybSkge1xyXG5cdFx0XHR0aGlzLndlYkRlYWxDdXN0b20ocHJtKS5zdWJzY3JpYmUoKTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdHRoaXMud2ViRGVhbEN1c3RvbSh0aGlzLmRlYWxQcm0pLnN1YnNjcmliZSgpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHR3ZWJEZWFsQ3VzdG9tKHBhcmFtOiBEZWFsKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHRoaXMubG9hZGluZ1NlcnZpY2Uuc2V0TG9hZGluZyh0cnVlKTtcclxuXHRcdHJldHVybiB0aGlzLmh0dHAucG9zdChhcGlQYXRoICsgJ2RlYWxDdXN0b20nLCBwYXJhbSkucGlwZShcclxuXHRcdFx0bWFwKChyZXNwb25zZTogYW55KSA9PiB7XHJcblx0XHRcdFx0dGhpcy5kZWFsUHJtID0geyBkYXRhOiByZXNwb25zZSwgLi4udGhpcy5kZWFsUHJtIH07XHJcblx0XHRcdFx0cmV0dXJuIHJlc3BvbnNlO1xyXG5cdFx0XHR9KSxcclxuXHRcdFx0ZmluYWxpemUoKCkgPT4ge1xyXG4gICAgICAgIC8vIHRoaXMubG9hZGluZ1NlcnZpY2Uuc2V0TG9hZGluZyhmYWxzZSk7XHJcblx0XHRcdH0pLFxyXG5cdFx0KTtcclxuXHR9XHJcblx0ZGVhbFN1Ym1pdChwcm0/OiBEZWFsKSB7XHJcblx0XHRpZiAocHJtKSB7XHJcblx0XHRcdHRoaXMud2ViRGVhbEN1c3RvbShwcm0pLnN1YnNjcmliZSgpO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0dGhpcy53ZWJEZWFsQ3VzdG9tKHRoaXMuZGVhbFBybSkuc3Vic2NyaWJlKCk7XHJcblx0XHR9XHJcblx0fVxyXG5cdHdlYkRlYWxTdWJtaXQocGFyYW06IERlYWwpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgdGhpcy5sb2FkaW5nU2VydmljZS5zZXRMb2FkaW5nKHRydWUpO1xyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cC5wb3N0KGFwaVBhdGggKyAnZGVhbFN1Ym1pdCcsIHBhcmFtKS5waXBlKFxyXG5cdFx0XHRtYXAoKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuXHRcdFx0XHR0aGlzLmRlYWxQcm0gPSB7IGRhdGE6IHJlc3BvbnNlLCAuLi50aGlzLmRlYWxQcm0gfTtcclxuXHRcdFx0XHRyZXR1cm4gcmVzcG9uc2U7XHJcblx0XHRcdH0pLFxyXG5cdFx0XHRmaW5hbGl6ZSgoKSA9PiB7XHJcbiAgICAgICAgLy8gdGhpcy5sb2FkaW5nU2VydmljZS5zZXRMb2FkaW5nKGZhbHNlKTtcclxuXHRcdFx0fSksXHJcblx0XHQpO1xyXG5cdH1cclxufVxyXG4iXX0=
|
|
530
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW1tLWVsZW1lbnQtdWkvc3JjL2xpYi9hbS9hbS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBd0IsUUFBUSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJFLE9BQU8sS0FBSyxTQUFTLE1BQU0sWUFBWSxDQUFDO0FBR3hDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxjQUFjLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFNUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHlCQUF5QixDQUFDOztBQW9JdEQsTUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFDO0FBUW5CLE1BQU0sT0FBTyxXQUFXO0lBdUN2QjtRQXRDQSxRQUFRO1FBQ1IsVUFBSyxHQUFZLEtBQUssQ0FBQztRQUN2QixPQUFPO1FBQ1AsT0FBRSxHQUFXLENBQUMsQ0FBQztRQUNmLE1BQU07UUFDTixjQUFTLEdBQVcsRUFBRSxDQUFDO1FBQ3ZCLE1BQU07UUFDTixVQUFLLEdBQVUsRUFBRSxDQUFDO1FBQ2xCLFFBQUcsR0FBVyxFQUFFLENBQUM7UUFDakIsSUFBSTtRQUNKLGNBQVMsR0FBZ0IsRUFBRSxDQUFDO1FBQzVCLElBQUk7UUFDSixrQkFBYSxHQUFrQixFQUFFLENBQUM7UUFDbEMsTUFBTTtRQUNOLGdCQUFXLEdBQWdCLEVBQUUsQ0FBQztRQUM5QixRQUFRO1FBQ1IsY0FBUyxHQUFXLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFDO1FBQ3ZFLElBQUk7UUFDSixZQUFPLEdBQVMsRUFBRSxDQUFDO1FBQ25CLE9BQU87UUFDUCxhQUFRLEdBQVUsRUFBRSxDQUFDO1FBQ3JCLElBQUk7UUFDSixjQUFTLEdBQVcsRUFBRSxDQUFDO1FBQ3ZCLFFBQVE7UUFDUixXQUFNLEdBQVEsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUM7UUFDM0IsTUFBTTtRQUNOLFdBQU0sR0FBaUIsRUFBRSxDQUFDO1FBQzFCLFFBQVE7UUFDUixjQUFTLEdBQVcsRUFBRSxDQUFDO1FBQ3ZCLGNBQVMsR0FBVyxFQUFFLENBQUM7UUFDdkIsYUFBUSxHQUFTLEVBQUUsQ0FBQztRQUNwQixTQUFJLEdBQWUsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3RDLG1CQUFjLEdBQW1CLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUN4RCx3QkFBbUIsR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUNsRCxtQkFBYyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUN4QyxVQUFLLEdBQW1CLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUMvQyxXQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3hCLFNBQUksR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUE7SUFDWCxDQUFDO0lBRWhCLEdBQUcsQ0FBQyxHQUFRO1FBQ1gsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FDL0MsR0FBRyxDQUFDLENBQUMsUUFBYSxFQUFFLEVBQUU7WUFDckIsT0FBTyxRQUFRLENBQUM7UUFDakIsQ0FBQyxDQUFDLEVBQ0YsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUNiLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZDLENBQUMsQ0FBQyxDQUNGLENBQUM7SUFDSCxDQUFDO0lBQ0QsTUFBTSxDQUFDLEtBQVk7UUFDbEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsa0JBQWtCLEVBQUUsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUM5RCxHQUFHLENBQUMsQ0FBQyxRQUFhLEVBQUUsRUFBRTtZQUNyQixPQUFPLFFBQVEsQ0FBQztRQUNqQixDQUFDLENBQUMsRUFDRixRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ2IseUNBQXlDO1FBQzFDLENBQUMsQ0FBQyxDQUNGLENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxDQUFDLEtBQVk7UUFDbkIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsbUJBQW1CLEVBQUUsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUMvRCxHQUFHLENBQUMsQ0FBQyxRQUFhLEVBQUUsRUFBRTtZQUNyQixPQUFPLFFBQVEsQ0FBQztRQUNqQixDQUFDLENBQUMsRUFDRixRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ1QseUNBQXlDO1FBQzlDLENBQUMsQ0FBQyxDQUNGLENBQUM7SUFDSCxDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQVk7UUFDbEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FDcEQsR0FBRyxDQUFDLENBQUMsUUFBYSxFQUFFLEVBQUU7WUFDckIsT0FBTyxRQUFRLENBQUM7UUFDakIsQ0FBQyxDQUFDLEVBQ0YsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUNULHlDQUF5QztRQUM5QyxDQUFDLENBQUMsQ0FDRixDQUFDO0lBQ0gsQ0FBQztJQUVELE1BQU0sQ0FBQyxHQUFTLEVBQUUsRUFBYTtRQUM5QixJQUFJLEdBQUcsRUFBRSxDQUFDO1lBQ1QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDdEMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDZCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3pCLENBQUMsQ0FBQyxDQUFDO1FBQ0osQ0FBQzthQUFNLENBQUM7WUFDUCxvQ0FBb0M7WUFDcEMsMEJBQTBCO1lBQzFCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUNqRCxFQUFFLElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNkLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDekIsQ0FBQyxDQUFDLENBQUM7UUFDSixDQUFDO0lBQ0YsQ0FBQztJQUNELGdCQUFnQjtJQUNoQixVQUFVLENBQUMsS0FBYTtRQUNyQix3Q0FBd0M7UUFDMUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUN0QixLQUFLLEdBQUcsRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxHQUFHLEtBQUssRUFBRSxDQUFDO1FBQ2pELENBQUM7UUFDRCxJQUFJLE9BQU8sR0FBUSxLQUFLLENBQUMsT0FBTyxDQUFDO1FBQ2pDLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDdEMsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDO1FBQ3RCLENBQUM7UUFDRCxJQUFJLE9BQU8sR0FBUSxLQUFLLENBQUMsT0FBTyxDQUFDO1FBQ2pDLE9BQU8sQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN4QyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ3RDLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQztRQUN0QixDQUFDO2FBQU0sQ0FBQztZQUNQLEtBQUssQ0FBQyxPQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUMvQixLQUFLLENBQUMsR0FBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQzFCLENBQUM7UUFDRCxJQUFJLENBQUMsS0FBSyxFQUFFLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUN2QyxLQUFLLEdBQUcsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsS0FBSyxFQUFFLENBQUM7UUFDaEQsQ0FBQztRQUNELE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDakIsT0FBTyxLQUFLLENBQUMsR0FBRyxDQUFDO1FBQ2xCLENBQUM7YUFBTSxDQUFDO1lBQ1AsSUFBSSxFQUFFLEdBQVcsRUFBRSxDQUFDO1lBQ3BCLGFBQWE7WUFDYixNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFBO1lBQy9CLElBQUksU0FBUyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFBLElBQUksQ0FBQTtZQUM1RCxLQUFLLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO2dCQUM1QixDQUFDLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtvQkFDMUIsSUFBSSxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDO3dCQUNoQixFQUFFLElBQUksR0FBRyxTQUFTLFFBQVEsQ0FBQyxDQUFDLFFBQVEsR0FBRyxDQUFBO3dCQUN2QyxzQ0FBc0M7b0JBQ3ZDLENBQUM7eUJBQU0sQ0FBQzt3QkFDUCxFQUFFLElBQUksR0FBRyxHQUFHLENBQUMsQ0FBQyxFQUFFLEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQyxLQUFLLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLFFBQVEsSUFBSSxFQUFFLENBQUMsR0FBRyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQyxHQUFHLEdBQUcsQ0FBQztvQkFDbEcsQ0FBQztnQkFDRixDQUFDLENBQUMsQ0FBQztZQUNKLENBQUMsQ0FBQyxDQUFDO1lBQ0gsS0FBSyxHQUFHLEVBQUUsR0FBRyxLQUFLLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxLQUFLLENBQUMsR0FBRyxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO1FBQzdELENBQUM7UUFDRCxPQUFPLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNoQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUNwRCxHQUFHLENBQUMsQ0FBQyxRQUFhLEVBQUUsRUFBRTtZQUNyQixJQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQztnQkFDZixPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUM7WUFDbEIsQ0FBQztZQUNELE9BQU8sUUFBUSxDQUFDO1FBQ2pCLENBQUMsQ0FBQyxFQUNGLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDVCx5Q0FBeUM7UUFDOUMsQ0FBQyxDQUFDLENBQ0YsQ0FBQztJQUNILENBQUM7SUFDRCxPQUFPO0lBQ1AsSUFBSSxDQUFDLEdBQVU7UUFDZCxJQUFJLEdBQUcsRUFBRSxDQUFDO1lBQ1QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNoQyxDQUFDO2FBQU0sQ0FBQztZQUNQLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ3pDLENBQUM7SUFDRixDQUFDO0lBQ0QsUUFBUSxDQUFDLEtBQVc7UUFDakIsd0NBQXdDO1FBQzFDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQ2xELEdBQUcsQ0FBQyxDQUFDLFFBQWEsRUFBRSxFQUFFO1lBQ3JCLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ25ELE9BQU8sUUFBUSxDQUFDO1FBQ2pCLENBQUMsQ0FBQyxFQUNGLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDVCx5Q0FBeUM7UUFDOUMsQ0FBQyxDQUFDLENBQ0YsQ0FBQztJQUNILENBQUM7SUFDRCxvQkFBb0I7SUFDcEIsS0FBSyxDQUFDLEdBQVc7UUFDaEIsSUFBSSxHQUFHLEVBQUUsQ0FBQztZQUNULElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDakMsQ0FBQzthQUFNLENBQUM7WUFDUCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUMzQyxDQUFDO0lBQ0YsQ0FBQztJQUNELFNBQVMsQ0FBQyxLQUFZO1FBQ25CLHdDQUF3QztRQUMxQyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3RCLEtBQUssR0FBRyxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLEdBQUcsS0FBSyxFQUFFLENBQUM7UUFDakQsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQ25ELEdBQUcsQ0FBQyxDQUFDLFFBQWEsRUFBRSxFQUFFO1lBQ3JCLElBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDO2dCQUNmLE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQztZQUNsQixDQUFDO1lBQ0QsT0FBTyxRQUFRLENBQUM7UUFDakIsQ0FBQyxDQUFDLEVBQ0YsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUNULHlDQUF5QztRQUM5QyxDQUFDLENBQUMsQ0FDRixDQUFDO0lBQ0gsQ0FBQztJQUNELFFBQVE7SUFDUixNQUFNLENBQUMsR0FBWTtRQUNsQixJQUFJLEdBQUcsRUFBRSxDQUFDO1lBQ1QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNsQyxDQUFDO2FBQU0sQ0FBQztZQUNQLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQzdDLENBQUM7SUFDRixDQUFDO0lBQ0QsVUFBVSxDQUFDLEtBQWE7UUFDckIsd0NBQXdDO1FBQzFDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxHQUFHLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQ3BELEdBQUcsQ0FBQyxDQUFDLFFBQWEsRUFBRSxFQUFFO1lBQ3JCLElBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDO2dCQUNmLE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQztZQUNsQixDQUFDO1lBQ0QsT0FBTyxRQUFRLENBQUM7UUFDakIsQ0FBQyxDQUFDLEVBQ0YsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUNULHlDQUF5QztRQUM5QyxDQUFDLENBQUMsQ0FDRixDQUFDO0lBQ0gsQ0FBQztJQUNELFlBQVk7SUFDWixHQUFHLENBQUMsR0FBUztRQUNaLElBQUksR0FBRyxFQUFFLENBQUM7WUFDVCxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQy9CLENBQUM7YUFBTSxDQUFDO1lBQ1AsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDdkMsQ0FBQztJQUNGLENBQUM7SUFDRCxPQUFPLENBQUMsS0FBVTtRQUNqQixJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO1lBQ3hDLEtBQUssQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUNsQyxDQUFDO1FBQ0Msd0NBQXdDO1FBQzFDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQ2pELEdBQUcsQ0FBQyxDQUFDLFFBQWEsRUFBRSxFQUFFO1lBQ3JCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxHQUFHLFFBQVEsQ0FBQztZQUM1QixJQUFJLFFBQVEsQ0FBQyxFQUFFLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQztnQkFDN0QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFRLENBQUMsS0FBSyxDQUFDLFVBQVcsQ0FBQyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsVUFBVyxDQUFDLENBQUM7WUFDdkUsQ0FBQztZQUNELElBQUksQ0FBQyxFQUFFLEdBQUcsUUFBUSxFQUFFLEVBQUUsQ0FBQztZQUN2QixPQUFPLFFBQVEsQ0FBQztRQUNqQixDQUFDLENBQUMsRUFDRixRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ1QseUNBQXlDO1FBQzlDLENBQUMsQ0FBQyxDQUNGLENBQUM7SUFDSCxDQUFDO0lBQ0QsdUJBQXVCO0lBQ3ZCLE1BQU0sQ0FBQyxHQUFZO1FBQ2xCLElBQUksR0FBRyxFQUFFLENBQUM7WUFDVCxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ2xDLENBQUM7YUFBTSxDQUFDO1lBQ1AsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDN0MsQ0FBQztJQUNGLENBQUM7SUFDRCxVQUFVLENBQUMsS0FBYTtRQUNyQix3Q0FBd0M7UUFDMUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FDcEQsR0FBRyxDQUFDLENBQUMsUUFBYSxFQUFFLEVBQUU7WUFDckIsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLEdBQUcsUUFBUSxFQUFFLENBQUM7WUFDakMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQzFDLE9BQU8sUUFBUSxDQUFDO1FBQ2pCLENBQUMsQ0FBQyxFQUNGLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDVCx5Q0FBeUM7UUFDOUMsQ0FBQyxDQUFDLENBQ0YsQ0FBQztJQUNILENBQUM7SUFDRCxTQUFTLENBQUMsR0FBWTtRQUNyQixJQUFJLEdBQUcsRUFBRSxDQUFDO1lBQ1QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNsQyxDQUFDO2FBQU0sQ0FBQztZQUNQLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQzdDLENBQUM7SUFDRixDQUFDO0lBQ0QsYUFBYSxDQUFDLEtBQWE7UUFDeEIsd0NBQXdDO1FBQzFDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxHQUFHLFdBQVcsRUFBRSxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQ3ZELEdBQUcsQ0FBQyxDQUFDLFFBQWEsRUFBRSxFQUFFO1lBQ3JCLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxHQUFHLFFBQVEsRUFBRSxDQUFDO1lBQ2pDLE9BQU8sQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUMxQyxPQUFPLFFBQVEsQ0FBQztRQUNqQixDQUFDLENBQUMsRUFDRixRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ1QseUNBQXlDO1FBQzlDLENBQUMsQ0FBQyxDQUNGLENBQUM7SUFDSCxDQUFDO0lBQ0QsdUJBQXVCO0lBQ3ZCLFdBQVcsQ0FBQyxHQUFZO1FBQ3ZCLElBQUksR0FBRyxFQUFFLENBQUM7WUFDVCxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ3ZDLENBQUM7YUFBTSxDQUFDO1lBQ1AsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDbEQsQ0FBQztJQUNGLENBQUM7SUFDRCxlQUFlLENBQUMsS0FBYTtRQUMxQix3Q0FBd0M7UUFDMUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsYUFBYSxFQUFFLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FDekQsR0FBRyxDQUFDLENBQUMsUUFBYSxFQUFFLEVBQUU7WUFDckIsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLEdBQUcsUUFBUSxFQUFFLENBQUM7WUFDakMsT0FBTyxRQUFRLENBQUM7UUFDakIsQ0FBQyxDQUFDLEVBQ0YsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUNULHlDQUF5QztRQUM5QyxDQUFDLENBQUMsQ0FDRixDQUFDO0lBQ0gsQ0FBQztJQUNELFNBQVM7SUFDVCwrQ0FBK0M7SUFDL0MsOEJBQThCO0lBQzlCLHlEQUF5RDtJQUN6RCxXQUFXO0lBQ1gsOEJBQThCO0lBQzlCLG9DQUFvQztJQUNwQyxrQ0FBa0M7SUFDbEMseUJBQXlCO0lBQ3pCLFVBQVU7SUFDViw4QkFBOEI7SUFDOUIsMENBQTBDO0lBQzFDLG1DQUFtQztJQUNuQyxpQ0FBaUM7SUFDakMsd0NBQXdDO0lBQ3hDLFVBQVU7SUFDVix1QkFBdUI7SUFDdkIscUNBQXFDO0lBQ3JDLG1DQUFtQztJQUNuQyxTQUFTO0lBQ1QsT0FBTztJQUNQLElBQUk7SUFDSixZQUFZO0lBQ1osTUFBTSxDQUFDLEdBQVk7UUFDbEIsSUFBSSxHQUFHLEVBQUUsQ0FBQztZQUNULElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDbEMsQ0FBQzthQUFNLENBQUM7WUFDUCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUM3QyxDQUFDO0lBQ0YsQ0FBQztJQUNELFVBQVUsQ0FBQyxLQUFhO1FBQ3ZCLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDdEIsS0FBSyxHQUFHLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsR0FBRyxLQUFLLEVBQUUsQ0FBQztRQUNqRCxDQUFDO1FBQ0Msd0NBQXdDO1FBQzFDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxHQUFHLFFBQVEsRUFBRSxLQUFLLEVBQUUsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQzlFLEdBQUcsQ0FBQyxDQUFDLFFBQWEsRUFBRSxFQUFFO1lBQ3JCLE1BQU0sSUFBSSxHQUFTLElBQUksSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUU7Z0JBQ3ZDLElBQUksRUFBRSxrRkFBa0Y7YUFDeEYsQ0FBQyxDQUFDO1lBQ0gsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUM7WUFDM0MsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDakMsT0FBTyxRQUFRLENBQUM7UUFDakIsQ0FBQyxDQUFDLEVBQ0YsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUNULHlDQUF5QztRQUM5QyxDQUFDLENBQUMsQ0FDRixDQUFDO0lBQ0gsQ0FBQztJQUNELFFBQVE7SUFDUixVQUFVLENBQUMsR0FBWTtRQUN0QixJQUFJLEdBQUcsRUFBRSxDQUFDO1lBQ1QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUN2QyxDQUFDO2FBQU0sQ0FBQztZQUNQLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ2xELENBQUM7SUFDRixDQUFDO0lBQ0QsZUFBZSxDQUFDLEtBQWE7UUFDNUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUN0QixLQUFLLEdBQUcsRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxHQUFHLEtBQUssRUFBRSxDQUFDO1FBQ2pELENBQUM7UUFDQyx3Q0FBd0M7UUFDMUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsWUFBWSxFQUFFLEtBQUssRUFBRSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FDbEYsR0FBRyxDQUFDLENBQUMsUUFBYSxFQUFFLEVBQUU7WUFDckIsTUFBTSxJQUFJLEdBQVMsSUFBSSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRTtnQkFDdkMsSUFBSSxFQUFFLGtGQUFrRjthQUN4RixDQUFDLENBQUM7WUFDSCxNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQztZQUMzQyxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztZQUNqQyxPQUFPLFFBQVEsQ0FBQztRQUNqQixDQUFDLENBQUMsRUFDRixRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ1QseUNBQXlDO1FBQzlDLENBQUMsQ0FBQyxDQUNGLENBQUM7SUFDSCxDQUFDO0lBQ0QsU0FBUztJQUNULGdCQUFnQixDQUFDLEdBQVU7UUFDMUIsSUFBSSxHQUFHLEVBQUUsQ0FBQztZQUNULElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUM1QyxDQUFDO2FBQU0sQ0FBQztZQUNQLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDdEQsQ0FBQztJQUNGLENBQUM7SUFDRCxvQkFBb0IsQ0FBQyxLQUFXO1FBQzdCLHdDQUF3QztRQUMxQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxVQUFVLEVBQUUsS0FBSyxFQUFFLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUMsSUFBSSxDQUNoRixHQUFHLENBQUMsQ0FBQyxRQUFhLEVBQUUsRUFBRTtZQUNyQixNQUFNLElBQUksR0FBUyxJQUFJLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFO2dCQUN2QyxJQUFJLEVBQUUsa0ZBQWtGO2FBQ3hGLENBQUMsQ0FBQztZQUNILE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1lBQzdDLFNBQVMsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQ2pDLE9BQU8sUUFBUSxDQUFDO1FBQ2pCLENBQUMsQ0FBQyxFQUNGLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDVCx5Q0FBeUM7UUFDOUMsQ0FBQyxDQUFDLENBQ0YsQ0FBQztJQUNILENBQUM7SUFDRCxNQUFNO0lBQ04sV0FBVyxDQUFDLEdBQVk7UUFDdkIsSUFBSSxHQUFHLEVBQUUsQ0FBQztZQUNULElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDdkMsQ0FBQzthQUFNLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDaEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDNUMsQ0FBQztJQUNGLENBQUM7SUFDRCxlQUFlLENBQUMsR0FBVztRQUN4Qix3Q0FBd0M7UUFDMUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsYUFBYSxFQUFFLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FDdkQsR0FBRyxDQUFDLENBQUMsUUFBYSxFQUFFLEVBQUU7WUFDckIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDdkYsT0FBTyxRQUFRLENBQUM7UUFDakIsQ0FBQyxDQUFDLEVBQ0YsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUNULHlDQUF5QztRQUM5QyxDQUFDLENBQUMsQ0FDRixDQUFDO0lBQ0gsQ0FBQztJQUNELE1BQU07SUFDTixXQUFXLENBQUMsR0FBWTtRQUN2QixJQUFJLEdBQUcsRUFBRSxDQUFDO1lBQ1QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUN2QyxDQUFDO2FBQU0sSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNoQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUM1QyxDQUFDO0lBQ0YsQ0FBQztJQUNELGVBQWUsQ0FBQyxHQUFXO1FBQ3hCLHdDQUF3QztRQUMxQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxhQUFhLEVBQUUsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUN2RCxHQUFHLENBQUMsQ0FBQyxRQUFhLEVBQUUsRUFBRTtZQUNyQixJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztZQUN2RixPQUFPLFFBQVEsQ0FBQztRQUNqQixDQUFDLENBQUMsRUFDRixRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ2IseUNBQXlDO1FBQzFDLENBQUMsQ0FBQyxDQUNGLENBQUM7SUFDSCxDQUFDO0lBQ0QsU0FBUztJQUNULFlBQVksQ0FBQyxLQUFnQjtRQUM1QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxjQUFjLEVBQUUsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUMxRCxHQUFHLENBQUMsQ0FBQyxRQUFhLEVBQUUsRUFBRTtZQUNyQixJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNuRCxPQUFPLFFBQVEsQ0FBQztRQUNqQixDQUFDLENBQUMsRUFDRixRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ1QseUNBQXlDO1FBQzlDLENBQUMsQ0FBQyxDQUNGLENBQUM7SUFDSCxDQUFDO0lBQ0QsS0FBSztJQUNMLFdBQVcsQ0FBQyxHQUFXO1FBQ3RCLElBQUksR0FBRyxFQUFFLENBQUM7WUFDVCxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ3ZDLENBQUM7YUFBTSxDQUFDO1lBQ1AsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDOUMsQ0FBQztJQUNGLENBQUM7SUFDRCxlQUFlLENBQUMsS0FBWTtRQUN6Qix3Q0FBd0M7UUFDMUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsYUFBYSxFQUFFLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FDekQsR0FBRyxDQUFDLENBQUMsUUFBYSxFQUFFLEVBQUU7WUFDckIscUZBQXFGO1lBQ3JGLE9BQU8sUUFBUSxDQUFDO1FBQ2pCLENBQUMsQ0FBQyxFQUNGLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDVCx5Q0FBeUM7UUFDOUMsQ0FBQyxDQUFDLENBQ0YsQ0FBQztJQUNILENBQUM7SUFDRCxpQkFBaUI7SUFDakIsUUFBUSxDQUFDLE1BQWU7UUFDdkIsUUFBUSxNQUFNLEVBQUUsQ0FBQztZQUNoQixLQUFLLFFBQVE7Z0JBQ1osSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO2dCQUM1QixJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7Z0JBQzVCLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQztnQkFDeEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7b0JBQ3JDLENBQUMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztvQkFDckIsQ0FBQyxDQUFDLE1BQU0sR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO29CQUNyQixDQUFDLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztnQkFDaEIsQ0FBQyxDQUFDLENBQUM7Z0JBQ0gsTUFBTTtZQUNQO2dCQUNDLEVBQUUsQ0FBQztRQUNMLENBQUM7SUFDRixDQUFDO0lBQ0QsT0FBTztJQUNQLFNBQVMsQ0FBQyxHQUFVO1FBQ25CLElBQUksR0FBRyxFQUFFLENBQUM7WUFDVCxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ3BDLENBQUM7YUFBTSxDQUFDO1lBQ1AsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDN0MsQ0FBQztJQUNGLENBQUM7SUFDRCxZQUFZLENBQUMsS0FBVztRQUNyQix3Q0FBd0M7UUFDMUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsV0FBVyxFQUFFLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FDdkQsR0FBRyxDQUFDLENBQUMsUUFBYSxFQUFFLEVBQUU7WUFDckIsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDbkQsT0FBTyxRQUFRLENBQUM7UUFDakIsQ0FBQyxDQUFDLEVBQ0YsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUNULHlDQUF5QztRQUM5QyxDQUFDLENBQUMsQ0FDRixDQUFDO0lBQ0gsQ0FBQztJQUNELFVBQVUsQ0FBQyxHQUFVO1FBQ3BCLElBQUksR0FBRyxFQUFFLENBQUM7WUFDVCxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ3JDLENBQUM7YUFBTSxDQUFDO1lBQ1AsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDOUMsQ0FBQztJQUNGLENBQUM7SUFDRCxhQUFhLENBQUMsS0FBVztRQUN0Qix3Q0FBd0M7UUFDMUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsWUFBWSxFQUFFLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FDeEQsR0FBRyxDQUFDLENBQUMsUUFBYSxFQUFFLEVBQUU7WUFDckIsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDbkQsT0FBTyxRQUFRLENBQUM7UUFDakIsQ0FBQyxDQUFDLEVBQ0YsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUNULHlDQUF5QztRQUM5QyxDQUFDLENBQUMsQ0FDRixDQUFDO0lBQ0gsQ0FBQztJQUNELFVBQVUsQ0FBQyxHQUFVO1FBQ3BCLElBQUksR0FBRyxFQUFFLENBQUM7WUFDVCxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ3JDLENBQUM7YUFBTSxDQUFDO1lBQ1AsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDOUMsQ0FBQztJQUNGLENBQUM7SUFDRCxhQUFhLENBQUMsS0FBVztRQUN0Qix3Q0FBd0M7UUFDMUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsWUFBWSxFQUFFLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FDeEQsR0FBRyxDQUFDLENBQUMsUUFBYSxFQUFFLEVBQUU7WUFDckIsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDbkQsT0FBTyxRQUFRLENBQUM7UUFDakIsQ0FBQyxDQUFDLEVBQ0YsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUNULHlDQUF5QztRQUM5QyxDQUFDLENBQUMsQ0FDRixDQUFDO0lBQ0gsQ0FBQzsrR0ExaUJXLFdBQVc7bUdBQVgsV0FBVyxxREFGWixDQUFDLGNBQWMsRUFBRSxtQkFBbUIsQ0FBQywwQkFEdEMsRUFBRTs7NEZBR0EsV0FBVztrQkFQdkIsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsUUFBUTtvQkFDbEIsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLE9BQU8sRUFBRSxFQUFFO29CQUNYLFFBQVEsRUFBRSxFQUFFO29CQUNaLFNBQVMsRUFBRSxDQUFDLGNBQWMsRUFBRSxtQkFBbUIsQ0FBQztpQkFDaEQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGVmZmVjdCwgaW5qZWN0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbmFsaXplLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0ICogYXMgRmlsZVNhdmVyIGZyb20gJ2ZpbGUtc2F2ZXInO1xyXG5pbXBvcnQgeyBGb3JtT3B0aW9ucyB9IGZyb20gJy4uL2Zvcm0vZm9ybS9mb3JtLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFNlYXJjaE9wdGlvbnMgfSBmcm9tICcuLi9zZWFyY2gvc2VhcmNoL3NlYXJjaC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb25maXJtYXRpb25TZXJ2aWNlLCBNZXNzYWdlU2VydmljZSB9IGZyb20gJ3ByaW1lbmcvYXBpJztcclxuaW1wb3J0IHsgVG9hc3QgfSBmcm9tICdwcmltZW5nL3RvYXN0JztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IExvYWRpbmdTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZS9sb2FkaW5nLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyB0b09ic2VydmFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XHJcbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZS9pMThuLnNlcnZpY2UnO1xyXG5leHBvcnQgaW50ZXJmYWNlIFBhcmFtIHtcclxuXHRpZD86IG51bWJlcjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBUcmFjZU1lc3NhZ2Uge1xyXG5cdGlkPzogbnVtYmVyO1xyXG5cdHBpZD86IG51bWJlcjsgLy8g6KGo5LitaWRcclxuXHRmdW5jPzogc3RyaW5nO1xyXG5cdG9wZXJhdG9yPzogc3RyaW5nO1xyXG5cdGNvbnRlbnQ/OiBzdHJpbmc7IC8vIOS4u+ihqOWPmOabtOaJgOacieWtl+auteaLvOaOpeS4gOWdl1xyXG5cdHN1YkNvbnRlbnQ/OiBzdHJpbmc7IC8vIOWtkOihqOWPmOabtOaLvOaOpeS4gOi1t1xyXG5cdGNyZWF0ZWRBdD86IHN0cmluZztcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIEltcG9ydEV4Y2VsIHtcclxuXHRtb2RlbE5hbWU/OiBzdHJpbmc7XHJcblx0b3JnSWQ/OiBudW1iZXI7XHJcblx0b3JnTmFtZT86IHN0cmluZztcclxuXHRvcmdJZEZlaWxkPzogc3RyaW5nO1xyXG5cdG9yZ05hbWVGZWlsZD86IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBVcHNlcnQge1xyXG5cdG1vZGVsTmFtZT86IHN0cmluZztcclxuXHRhZGREYXRhPzogUmVjb3JkPHN0cmluZywgYW55PjtcclxuXHR1cGREYXRhPzogUmVjb3JkPHN0cmluZywgYW55PjtcclxuXHRzdWJzZXJ0PzogU3ViVXBzZXJ0W107XHJcblx0bG9nTW9kZWw/OiBzdHJpbmc7XHJcblx0bG9nPzogVHJhY2VNZXNzYWdlO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFN1YlVwc2VydCB7XHJcblx0c3ViTW9kZWxOYW1lPzogc3RyaW5nO1xyXG5cdGZrPzogc3RyaW5nO1xyXG5cdHN1YkRhdGE/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+W107XHJcblx0bWFwdG1wPzogTWFwPG51bWJlciwgYW55PjtcclxuXHRsb2d0bXA/OiBNYXA8c3RyaW5nLCBhbnk+O1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgRGVhbCB7XHJcblx0bW9kZWxOYW1lPzogc3RyaW5nO1xyXG5cdGRhdGE/OiBhbnk7XHJcbn1cclxuLy8g5pu05paw54m55a6a5a2X5q61XHJcbmV4cG9ydCBpbnRlcmZhY2UgV3JpdGUge1xyXG5cdG1vZGVsTmFtZT86IHN0cmluZztcclxuXHRkYXRhPzogUmVjb3JkPHN0cmluZywgYW55PjtcclxuXHRsb2dNb2RlbD86IHN0cmluZztcclxuXHRsb2c/OiBUcmFjZU1lc3NhZ2U7XHJcblx0dHJhbnNhY3Rpb24/OiBib29sZWFuO1xyXG59XHJcbi8vIOWIoOmZpOaOpeWPo+WjsOaYjlxyXG5leHBvcnQgaW50ZXJmYWNlIFJlbW92ZSB7XHJcblx0bW9kZWxOYW1lPzogc3RyaW5nO1xyXG5cdGlkcz86IG51bWJlcltdO1xyXG5cdGRhdGE/OiBhbnk7XHJcblx0bG9nTW9kZWw/OiBzdHJpbmc7XHJcblx0bG9nPzogVHJhY2VNZXNzYWdlO1xyXG5cdHRyYW5zYWN0aW9uPzogYm9vbGVhbjtcclxufVxyXG4vLyDojrflj5bljZXmnaHmlbDmja7or6bmg4VcclxuZXhwb3J0IGludGVyZmFjZSBHZXQge1xyXG5cdG1vZGVsTmFtZT86IHN0cmluZztcclxuXHR1c2VyQ29kZT86IHN0cmluZztcclxuXHRvcmdGaWVsZD86IHN0cmluZztcclxuXHRpZD86IG51bWJlcjtcclxuXHRwcmVsb2Fkcz86IHN0cmluZ1tdOyAvLyDogZTooajmn6Xor6LooajlkI3np7DvvIzpnIDlr7nlupTlkI7nq69zdHJ1Y3RcclxuXHRmaXRlclByZWxvYWRzPzogUHJlbG9hZFtdOyAvLyDlj6rog73liqDkuIDlsYIg57G75Ly8ICdtb2R1bGUgPScgbW9kdWxlXHJcblx0Z2V0TG9nPzogYm9vbGVhbjsgLy/ojrflj5bml6Xlv5dcclxuXHRkYXRhPzogYW55OyAvL+WQjuerr+i/lOWbnueahHJlc3BvbnNlXHJcblx0Y29sdW1uRmlsdGVycz86IENvbHVtbkZpbHRlcltdOyAvL+i/h+a7pOeahOWIl1xyXG5cdGZvcmVpZ25LZXk/OiBzdHJpbmc7IC8v55u05o6l5o+S5YWl5a2Q6KGo6ZyA6KaB5Lyg6YCS5aSW6ZSu5a2X5q615Lul5Y+K5aSW6ZSu5YC8XHJcblx0W3Byb3BOYW1lOiBzdHJpbmddOiBhbnk7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBQcmVsb2FkIHtcclxuXHRmZWlsZE5hbWU/OiBzdHJpbmc7XHJcblx0Zml0ZXJzPzogQ29sdW1uRmlsdGVyW107XHJcblx0c29ydHM/OiBTb3J0W107XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBDb2x1bW5GaWx0ZXIge1xyXG5cdGNvbHVtbkZpZWxkPzogc3RyaW5nO1xyXG5cdHR5cGU/OiBzdHJpbmc7XHJcblx0Zml0ZXI/OiBhbnk7XHJcblx0ZnJvbT86IHN0cmluZyB8IG51bWJlcjtcclxuXHR0bz86IHN0cmluZyB8IG51bWJlcjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTb3J0IHtcclxuXHRmaWVsZD86IHN0cmluZztcclxuXHRpc0FzYz86IGJvb2xlYW47XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU2VhcmNoIHtcclxuXHRtb2RlbE5hbWU/OiBzdHJpbmc7XHJcblx0dXNlckNvZGU/OiBzdHJpbmc7XHJcblx0b3JnRmllbGQ/OiBzdHJpbmc7XHJcblx0Y291bnQ/OiBib29sZWFuOyAvL+aYr+WQpui/lOWbnnRvdGFsTnVtXHJcblx0cHJlbG9hZHM/OiBzdHJpbmdbXTtcclxuXHRmaXRlclByZWxvYWRzPzogUHJlbG9hZFtdO1xyXG5cdG1vZGVsPzogYW55O1xyXG5cdGRhdGE/OiBhbnk7XHJcblx0Y29sdW1uRmlsdGVycz86IENvbHVtbkZpbHRlcltdOyAvL+i/h+a7pOeahOWIl1xyXG5cdHNvcnRzPzogU29ydFtdO1xyXG5cdGdyb3Vwcz86IHN0cmluZ1tdO1xyXG5cdHJlYWQ/OiBzdHJpbmdbXTsgLy9yZWFkIOaMh+WumuafpeivoueJueWumuWtl+autVxyXG5cdGZ1bmNzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjsgLy/pgI/op4booajlkI7mnJ/opoHnlKhcclxuXHRvZmZzZXQ/OiBudW1iZXI7XHJcblx0bGltaXQ/OiBudW1iZXI7XHJcblx0dG90YWxOdW0/OiBudW1iZXI7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBUb2tlbkluZm8ge1xyXG5cdHRva2VuPzogc3RyaW5nO1xyXG5cdGV4cGlyZWQ/OiBudW1iZXI7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBhbVdlYiB7XHJcblx0aWQ/OiBudW1iZXI7XHJcblx0Y29kZT86IHN0cmluZztcclxuXHR0eXBlPzogc3RyaW5nO1xyXG5cdG5hbWU/OiBzdHJpbmc7XHJcblx0YXBwSWQ/OiBudW1iZXI7XHJcblx0Y29udGVudD86IHN0cmluZztcclxuXHRjcmVhdGVkQXQ/OiBzdHJpbmc7XHJcblx0dXBkYXRlZEF0Pzogc3RyaW5nO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgUmZkIHtcclxuXHRtb2RlbE5hbWU/OiBzdHJpbmc7XHJcblx0bGFiZWxGaWVsZD86IHN0cmluZztcclxuXHR2YWx1ZUZpZWxkPzogc3RyaW5nO1xyXG5cdHdoZXJlRmllbGQ/OiBzdHJpbmc7XHJcblx0dHlwZT86IHN0cmluZztcclxuXHRmaXRlcj86IGFueTtcclxuXHRkYXRhPzogYW55O1xyXG59XHJcbmNvbnN0IGFwaVBhdGggPSAnJztcclxuQENvbXBvbmVudCh7XHJcblx0c2VsZWN0b3I6ICdhcHAtYW0nLFxyXG5cdHN0YW5kYWxvbmU6IHRydWUsXHJcblx0aW1wb3J0czogW10sXHJcblx0dGVtcGxhdGU6ICcnLFxyXG5cdHByb3ZpZGVyczogW01lc3NhZ2VTZXJ2aWNlLCBDb25maXJtYXRpb25TZXJ2aWNlXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEFtQ29tcG9uZW50IHtcclxuXHQvL+aYr+WQpuaPkOS6pOaXpeW/l1xyXG5cdGlzTG9nOiBib29sZWFuID0gZmFsc2U7XHJcblx0Ly/kuLvmlbDmja5pZFxyXG5cdGlkOiBudW1iZXIgPSAwO1xyXG5cdC8v5Li76KGo5qih5Z6LXHJcblx0bW9kZWxOYW1lOiBzdHJpbmcgPSAnJztcclxuXHQvL0lE5Y+C5pWwXHJcblx0cGFyYW06IFBhcmFtID0ge307XHJcblx0ZmlkOiBzdHJpbmcgPSAnJztcclxuXHQvL+WvvOWFpVxyXG5cdGltcG9ydFBybTogSW1wb3J0RXhjZWwgPSB7fTtcclxuXHQvL+aQnOe0oFxyXG5cdHNlYXJjaE9wdGlvbnM6IFNlYXJjaE9wdGlvbnMgPSB7fTtcclxuXHQvL2Zvcm1cclxuXHRmb3JtT3B0aW9uczogRm9ybU9wdGlvbnMgPSB7fTtcclxuXHQvL+WIm+W7uuaIluiAheabtOaWsFxyXG5cdHVwc2VydFBybTogVXBzZXJ0ID0geyB1cGREYXRhOiB7fSwgYWRkRGF0YToge30sIHN1YnNlcnQ6IFtdLCBsb2c6IHt9IH07XHJcblx0Ly/lpITnkIZcclxuXHRkZWFsUHJtOiBEZWFsID0ge307XHJcblx0Ly9tYXDmm7TmlrBcclxuXHR3cml0ZVBybTogV3JpdGUgPSB7fTtcclxuXHQvL+WIoOmZpFxyXG5cdHJlbW92ZVBybTogUmVtb3ZlID0ge307XHJcblx0Ly/ojrflj5bkuIDmnaHmlbDmja5cclxuXHRnZXRQcm06IEdldCA9IHsgZGF0YToge30gfTtcclxuXHQvL+afpeivouadoeS7tlxyXG5cdGZpbHRlcjogQ29sdW1uRmlsdGVyID0ge307XHJcblx0Ly/mn6Xor6LliJfooajmlbDmja5cclxuXHRzZWFyY2hQcm06IFNlYXJjaCA9IHt9O1xyXG5cdGV4cG9ydFBybTogU2VhcmNoID0ge307XHJcblx0dGFtcGxhdGU6IERlYWwgPSB7fTtcclxuXHRodHRwOiBIdHRwQ2xpZW50ID0gaW5qZWN0KEh0dHBDbGllbnQpO1xyXG5cdG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSA9IGluamVjdChNZXNzYWdlU2VydmljZSk7XHJcblx0Y29uZmlybWF0aW9uU2VydmljZSA9IGluamVjdChDb25maXJtYXRpb25TZXJ2aWNlKTtcclxuXHRsb2FkaW5nU2VydmljZSA9IGluamVjdChMb2FkaW5nU2VydmljZSk7XHJcblx0cm91dGU6IEFjdGl2YXRlZFJvdXRlID0gaW5qZWN0KEFjdGl2YXRlZFJvdXRlKTtcclxuXHRyb3V0ZXIgPSBpbmplY3QoUm91dGVyKTtcclxuXHRpMThuID0gaW5qZWN0KEkxOG5TZXJ2aWNlKVxyXG5cdGNvbnN0cnVjdG9yKCkge31cclxuXHJcblx0cmZkKHBybTogUmZkKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuXHRcdHJldHVybiB0aGlzLmh0dHAucG9zdChhcGlQYXRoICsgJ1JGRCcsIHBybSkucGlwZShcclxuXHRcdFx0bWFwKChyZXNwb25zZTogYW55KSA9PiB7XHJcblx0XHRcdFx0cmV0dXJuIHJlc3BvbnNlO1xyXG5cdFx0XHR9KSxcclxuXHRcdFx0ZmluYWxpemUoKCkgPT4ge1xyXG5cdFx0XHRcdHRoaXMubG9hZGluZ1NlcnZpY2Uuc2V0TG9hZGluZyhmYWxzZSk7XHJcblx0XHRcdH0pLFxyXG5cdFx0KTtcclxuXHR9XHJcblx0d2ViZ2V0KHBhcmFtOiBhbVdlYik6IE9ic2VydmFibGU8YW55PiB7XHJcblx0XHRyZXR1cm4gdGhpcy5odHRwLnBvc3QoYXBpUGF0aCArICcvZ29hbS9hcGkvd2ViZ2V0JywgcGFyYW0pLnBpcGUoXHJcblx0XHRcdG1hcCgocmVzcG9uc2U6IGFueSkgPT4ge1xyXG5cdFx0XHRcdHJldHVybiByZXNwb25zZTtcclxuXHRcdFx0fSksXHJcblx0XHRcdGZpbmFsaXplKCgpID0+IHtcclxuXHRcdFx0XHQvLyB0aGlzLmxvYWRpbmdTZXJ2aWNlLnNldExvYWRpbmcoZmFsc2UpO1xyXG5cdFx0XHR9KSxcclxuXHRcdCk7XHJcblx0fVxyXG5cclxuXHR3ZWJzYXZlKHBhcmFtOiBhbVdlYik6IE9ic2VydmFibGU8YW55PiB7XHJcblx0XHRyZXR1cm4gdGhpcy5odHRwLnBvc3QoYXBpUGF0aCArICcvZ29hbS9hcGkvd2Vic2F2ZScsIHBhcmFtKS5waXBlKFxyXG5cdFx0XHRtYXAoKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuXHRcdFx0XHRyZXR1cm4gcmVzcG9uc2U7XHJcblx0XHRcdH0pLFxyXG5cdFx0XHRmaW5hbGl6ZSgoKSA9PiB7XHJcbiAgICAgICAgLy8gdGhpcy5sb2FkaW5nU2VydmljZS5zZXRMb2FkaW5nKGZhbHNlKTtcclxuXHRcdFx0fSksXHJcblx0XHQpO1xyXG5cdH1cclxuXHJcblx0d2ViZGVsKHBhcmFtOiBhbVdlYik6IE9ic2VydmFibGU8YW55PiB7XHJcblx0XHRyZXR1cm4gdGhpcy5odHRwLnBvc3QoYXBpUGF0aCArICd3ZWJkZWwnLCBwYXJhbSkucGlwZShcclxuXHRcdFx0bWFwKChyZXNwb25zZTogYW55KSA9PiB7XHJcblx0XHRcdFx0cmV0dXJuIHJlc3BvbnNlO1xyXG5cdFx0XHR9KSxcclxuXHRcdFx0ZmluYWxpemUoKCkgPT4ge1xyXG4gICAgICAgIC8vIHRoaXMubG9hZGluZ1NlcnZpY2Uuc2V0TG9hZGluZyhmYWxzZSk7XHJcblx0XHRcdH0pLFxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdHVwc2VydChwcm0/OiBhbnksIGNiPzogRnVuY3Rpb24pIHtcclxuXHRcdGlmIChwcm0pIHtcclxuXHRcdFx0dGhpcy53ZWJfdXBzZXJ0KHBybSkuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuXHRcdFx0XHRjYiAmJiBjYihyZXMpO1xyXG5cdFx0XHRcdHRoaXMucmVzZXRQcm0oJ3Vwc2VydCcpO1xyXG5cdFx0XHR9KTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdC8vIGNvbnN0IHBtOiBVcHNlcnQgPSB0aGlzLnVwc2VydHMoKVxyXG5cdFx0XHQvLyBjb25zb2xlLmxvZygnMT09PT0nLHBtKVxyXG5cdFx0XHR0aGlzLndlYl91cHNlcnQodGhpcy51cHNlcnRQcm0pLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcblx0XHRcdFx0Y2IgJiYgY2IocmVzKTtcclxuXHRcdFx0XHR0aGlzLnJlc2V0UHJtKCd1cHNlcnQnKTtcclxuXHRcdFx0fSk7XHJcblx0XHR9XHJcblx0fVxyXG5cdC8v5YWo6YOo5Yib5bu65oiW5pu05paw77yM5qC55o2uSUTliKTmlq1cclxuXHR3ZWJfdXBzZXJ0KHBhcmFtOiBVcHNlcnQpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgLy8gdGhpcy5sb2FkaW5nU2VydmljZS5zZXRMb2FkaW5nKHRydWUpO1xyXG5cdFx0aWYgKCFwYXJhbS5tb2RlbE5hbWUpIHtcclxuXHRcdFx0cGFyYW0gPSB7IG1vZGVsTmFtZTogdGhpcy5tb2RlbE5hbWUsIC4uLnBhcmFtIH07XHJcblx0XHR9XHJcblx0XHRsZXQgYWRkRGF0YTogYW55ID0gcGFyYW0uYWRkRGF0YTtcclxuXHRcdGlmIChPYmplY3Qua2V5cyhhZGREYXRhKS5sZW5ndGggPT0gMCkge1xyXG5cdFx0XHRkZWxldGUgcGFyYW0uYWRkRGF0YTtcclxuXHRcdH1cclxuXHRcdGxldCB1cGREYXRhOiBhbnkgPSBwYXJhbS51cGREYXRhO1xyXG5cdFx0Y29uc29sZS5sb2coJ3BhcmFtLS0tLScsIHBhcmFtLnVwZERhdGEpO1xyXG5cdFx0aWYgKE9iamVjdC5rZXlzKHVwZERhdGEpLmxlbmd0aCA9PSAwKSB7XHJcblx0XHRcdGRlbGV0ZSBwYXJhbS51cGREYXRhO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0cGFyYW0udXBkRGF0YSFbJ2lkJ10gPSB0aGlzLmlkO1xyXG5cdFx0XHRwYXJhbS5sb2chLnBpZCA9IHRoaXMuaWQ7XHJcblx0XHR9XHJcblx0XHRpZiAoIXBhcmFtPy5hZGREYXRhICYmICFwYXJhbS51cGREYXRhKSB7XHJcblx0XHRcdHBhcmFtID0geyB1cGREYXRhOiB7IGlkOiB0aGlzLmlkIH0sIC4uLnBhcmFtIH07XHJcblx0XHR9XHJcblx0XHRjb25zb2xlLmxvZygndGhpcy5pc0xvZy0tLS0nLCB0aGlzLmlzTG9nKTtcclxuXHRcdGlmICghdGhpcy5pc0xvZykge1xyXG5cdFx0XHRkZWxldGUgcGFyYW0ubG9nO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0bGV0IGxnOiBzdHJpbmcgPSAnJztcclxuXHRcdFx0Ly8gQHRzLWlnbm9yZVxyXG5cdFx0XHRjb25zdCBpc0kxOG4gPSB3aW5kb3cuYXBwSXNJMThuXHJcblx0XHRcdGxldCBjcmVhdGVTdHIgPSBpc0kxOG4gPyB0aGlzLmkxOG4uZmFueWkoJ2FwcC5jcmVhdGUnKSA6J+aWsOW7uidcclxuXHRcdFx0cGFyYW0uc3Vic2VydD8uZm9yRWFjaCgodikgPT4ge1xyXG5cdFx0XHRcdHYubG9ndG1wPy5mb3JFYWNoKCh2LCBrKSA9PiB7XHJcblx0XHRcdFx0XHRpZiAodi5pZCA9PT0gMCkge1xyXG5cdFx0XHRcdFx0XHRsZyArPSBgJHtjcmVhdGVTdHJ977yaIC0+ICR7di5uZXdWYWx1ZX07YFxyXG5cdFx0XHRcdFx0XHQvLyBsZyArPSAn5paw5bu677yaIC0+ICcgKyB2Lm5ld1ZhbHVlICsgJzsnO1xyXG5cdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0bGcgKz0gJ1snICsgdi5pZCArICctJyArIHYubGFiZWwgKyAnXSAnICsgKHYub2xkVmFsdWUgfHwgJycpICsgJyAtPiAnICsgKHYubmV3VmFsdWUgfHwgJycpICsgJzsnO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHR9KTtcclxuXHRcdFx0cGFyYW0gPSB7IC4uLnBhcmFtLCBsb2c6IHsgLi4ucGFyYW0ubG9nLCBzdWJDb250ZW50OiBsZyB9IH07XHJcblx0XHR9XHJcblx0XHRjb25zb2xlLmxvZygncGFyYW09PT09JywgcGFyYW0pO1xyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cC5wb3N0KGFwaVBhdGggKyAndXBzZXJ0JywgcGFyYW0pLnBpcGUoXHJcblx0XHRcdG1hcCgocmVzcG9uc2U6IGFueSkgPT4ge1xyXG5cdFx0XHRcdGlmIChwYXJhbS5sb2cpIHtcclxuXHRcdFx0XHRcdGRlbGV0ZSBwYXJhbS5sb2c7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdHJldHVybiByZXNwb25zZTtcclxuXHRcdFx0fSksXHJcblx0XHRcdGZpbmFsaXplKCgpID0+IHtcclxuICAgICAgICAvLyB0aGlzLmxvYWRpbmdTZXJ2aWNlLnNldExvYWRpbmcoZmFsc2UpO1xyXG5cdFx0XHR9KSxcclxuXHRcdCk7XHJcblx0fVxyXG5cdC8v6Ieq5aSE55CG6YC76L6RXHJcblx0ZGVhbChwcm0/OiBEZWFsKSB7XHJcblx0XHRpZiAocHJtKSB7XHJcblx0XHRcdHRoaXMud2ViX2RlYWwocHJtKS5zdWJzY3JpYmUoKTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdHRoaXMud2ViX2RlYWwodGhpcy5kZWFsUHJtKS5zdWJzY3JpYmUoKTtcclxuXHRcdH1cclxuXHR9XHJcblx0d2ViX2RlYWwocGFyYW06IERlYWwpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgLy8gdGhpcy5sb2FkaW5nU2VydmljZS5zZXRMb2FkaW5nKHRydWUpO1xyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cC5wb3N0KGFwaVBhdGggKyAnZGVhbCcsIHBhcmFtKS5waXBlKFxyXG5cdFx0XHRtYXAoKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuXHRcdFx0XHR0aGlzLmRlYWxQcm0gPSB7IGRhdGE6IHJlc3BvbnNlLCAuLi50aGlzLmRlYWxQcm0gfTtcclxuXHRcdFx0XHRyZXR1cm4gcmVzcG9uc2U7XHJcblx0XHRcdH0pLFxyXG5cdFx0XHRmaW5hbGl6ZSgoKSA9PiB7XHJcbiAgICAgICAgLy8gdGhpcy5sb2FkaW5nU2VydmljZS5zZXRMb2FkaW5nKGZhbHNlKTtcclxuXHRcdFx0fSksXHJcblx0XHQpO1xyXG5cdH1cclxuXHQvL+S8oOWFpW1hcO+8jOagueaNrklE77yM5pu05pawbWFw5pWw5o2uXHJcblx0d3JpdGUocHJtPzogV3JpdGUpIHtcclxuXHRcdGlmIChwcm0pIHtcclxuXHRcdFx0dGhpcy53ZWJfd3JpdGUocHJtKS5zdWJzY3JpYmUoKTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdHRoaXMud2ViX3dyaXRlKHRoaXMud3JpdGVQcm0pLnN1YnNjcmliZSgpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHR3ZWJfd3JpdGUocGFyYW06IFdyaXRlKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIC8vIHRoaXMubG9hZGluZ1NlcnZpY2Uuc2V0TG9hZGluZyh0cnVlKTtcclxuXHRcdGlmICghcGFyYW0ubW9kZWxOYW1lKSB7XHJcblx0XHRcdHBhcmFtID0geyBtb2RlbE5hbWU6IHRoaXMubW9kZWxOYW1lLCAuLi5wYXJhbSB9O1xyXG5cdFx0fVxyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cC5wb3N0KGFwaVBhdGggKyAnd3JpdGUnLCBwYXJhbSkucGlwZShcclxuXHRcdFx0bWFwKChyZXNwb25zZTogYW55KSA9PiB7XHJcblx0XHRcdFx0aWYgKHBhcmFtLmxvZykge1xyXG5cdFx0XHRcdFx0ZGVsZXRlIHBhcmFtLmxvZztcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0cmV0dXJuIHJlc3BvbnNlO1xyXG5cdFx0XHR9KSxcclxuXHRcdFx0ZmluYWxpemUoKCkgPT4ge1xyXG4gICAgICAgIC8vIHRoaXMubG9hZGluZ1NlcnZpY2Uuc2V0TG9hZGluZyhmYWxzZSk7XHJcblx0XHRcdH0pLFxyXG5cdFx0KTtcclxuXHR9XHJcblx0Ly/moLnmja5JROWIoOmZpFxyXG5cdHJlbW92ZShwcm0/OiBSZW1vdmUpIHtcclxuXHRcdGlmIChwcm0pIHtcclxuXHRcdFx0dGhpcy53ZWJfcmVtb3ZlKHBybSkuc3Vic2NyaWJlKCk7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHR0aGlzLndlYl9yZW1vdmUodGhpcy5yZW1vdmVQcm0pLnN1YnNjcmliZSgpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHR3ZWJfcmVtb3ZlKHBhcmFtOiBSZW1vdmUpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgLy8gdGhpcy5sb2FkaW5nU2VydmljZS5zZXRMb2FkaW5nKHRydWUpO1xyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cC5wb3N0KGFwaVBhdGggKyAncmVtb3ZlJywgcGFyYW0pLnBpcGUoXHJcblx0XHRcdG1hcCgocmVzcG9uc2U6IGFueSkgPT4ge1xyXG5cdFx0XHRcdGlmIChwYXJhbS5sb2cpIHtcclxuXHRcdFx0XHRcdGRlbGV0ZSBwYXJhbS5sb2c7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdHJldHVybiByZXNwb25zZTtcclxuXHRcdFx0fSksXHJcblx0XHRcdGZpbmFsaXplKCgpID0+IHtcclxuICAgICAgICAvLyB0aGlzLmxvYWRpbmdTZXJ2aWNlLnNldExvYWRpbmcoZmFsc2UpO1xyXG5cdFx0XHR9KSxcclxuXHRcdCk7XHJcblx0fVxyXG5cdC8v5qC55o2uSUTojrflj5bkuIDmnaHmlbDmja5cclxuXHRnZXQocHJtPzogR2V0KSB7XHJcblx0XHRpZiAocHJtKSB7XHJcblx0XHRcdHRoaXMud2ViX2dldChwcm0pLnN1YnNjcmliZSgpO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0dGhpcy53ZWJfZ2V0KHRoaXMuZ2V0UHJtKS5zdWJzY3JpYmUoKTtcclxuXHRcdH1cclxuXHR9XHJcblx0d2ViX2dldChwYXJhbTogR2V0KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuXHRcdGlmICghcGFyYW0uaGFzT3duUHJvcGVydHkoJ21vZGVsTmFtZScpKSB7XHJcblx0XHRcdHBhcmFtLm1vZGVsTmFtZSA9IHRoaXMubW9kZWxOYW1lO1xyXG5cdFx0fVxyXG4gICAgLy8gdGhpcy5sb2FkaW5nU2VydmljZS5zZXRMb2FkaW5nKHRydWUpO1xyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cC5wb3N0KGFwaVBhdGggKyAnZ2V0JywgcGFyYW0pLnBpcGUoXHJcblx0XHRcdG1hcCgocmVzcG9uc2U6IGFueSkgPT4ge1xyXG5cdFx0XHRcdHRoaXMuZ2V0UHJtLmRhdGEgPSByZXNwb25zZTtcclxuXHRcdFx0XHRpZiAocmVzcG9uc2UuaWQgPT09IDAgJiYgcGFyYW0uaGFzT3duUHJvcGVydHkoJ2ZvcmVpZ25LZXknKSkge1xyXG5cdFx0XHRcdFx0dGhpcy51cHNlcnRQcm0uYWRkRGF0YSFbcGFyYW0uZm9yZWlnbktleSFdID0gcGFyYW1bcGFyYW0uZm9yZWlnbktleSFdO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHR0aGlzLmlkID0gcmVzcG9uc2U/LmlkO1xyXG5cdFx0XHRcdHJldHVybiByZXNwb25zZTtcclxuXHRcdFx0fSksXHJcblx0XHRcdGZpbmFsaXplKCgpID0+IHtcclxuICAgICAgICAvLyB0aGlzLmxvYWRpbmdTZXJ2aWNlLnNldExvYWRpbmcoZmFsc2UpO1xyXG5cdFx0XHR9KSxcclxuXHRcdCk7XHJcblx0fVxyXG5cdC8v6I635Y+W5aSa5p2h5pWw5o2u77yM5qC55o2u5Lyg5YWl55qE5p2h5Lu26Ieq5Yqo57uE57uHc3FsXHJcblx0c2VhcmNoKHBybT86IFNlYXJjaCkge1xyXG5cdFx0aWYgKHBybSkge1xyXG5cdFx0XHR0aGlzLndlYl9zZWFyY2gocHJtKS5zdWJzY3JpYmUoKTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdHRoaXMud2ViX3NlYXJjaCh0aGlzLnNlYXJjaFBybSkuc3Vic2NyaWJlKCk7XHJcblx0XHR9XHJcblx0fVxyXG5cdHdlYl9zZWFyY2gocGFyYW06IFNlYXJjaCk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICAvLyB0aGlzLmxvYWRpbmdTZXJ2aWNlLnNldExvYWRpbmcodHJ1ZSk7XHJcblx0XHRyZXR1cm4gdGhpcy5odHRwLnBvc3QoYXBpUGF0aCArICdzZWFyY2gnLCBwYXJhbSkucGlwZShcclxuXHRcdFx0bWFwKChyZXNwb25zZTogYW55KSA9PiB7XHJcblx0XHRcdFx0dGhpcy5zZWFyY2hQcm0gPSB7IC4uLnJlc3BvbnNlIH07XHJcblx0XHRcdFx0Y29uc29sZS5sb2coJ3Vwc2V5LS0tLS0nLCB0aGlzLnVwc2VydFBybSk7XHJcblx0XHRcdFx0cmV0dXJuIHJlc3BvbnNlO1xyXG5cdFx0XHR9KSxcclxuXHRcdFx0ZmluYWxpemUoKCkgPT4ge1xyXG4gICAgICAgIC8vIHRoaXMubG9hZGluZ1NlcnZpY2Uuc2V0TG9hZGluZyhmYWxzZSk7XHJcblx0XHRcdH0pLFxyXG5cdFx0KTtcclxuXHR9XHJcblx0c2VhcmNobWFwKHBybT86IFNlYXJjaCkge1xyXG5cdFx0aWYgKHBybSkge1xyXG5cdFx0XHR0aGlzLndlYl9zZWFyY2gocHJtKS5zdWJzY3JpYmUoKTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdHRoaXMud2ViX3NlYXJjaCh0aGlzLnNlYXJjaFBybSkuc3Vic2NyaWJlKCk7XHJcblx0XHR9XHJcblx0fVxyXG5cdHdlYl9zZWFyY2htYXAocGFyYW06IFNlYXJjaCk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICAvLyB0aGlzLmxvYWRpbmdTZXJ2aWNlLnNldExvYWRpbmcodHJ1ZSk7XHJcblx0XHRyZXR1cm4gdGhpcy5odHRwLnBvc3QoYXBpUGF0aCArICdzZWFyY2hNYXAnLCBwYXJhbSkucGlwZShcclxuXHRcdFx0bWFwKChyZXNwb25zZTogYW55KSA9PiB7XHJcblx0XHRcdFx0dGhpcy5zZWFyY2hQcm0gPSB7IC4uLnJlc3BvbnNlIH07XHJcblx0XHRcdFx0Y29uc29sZS5sb2coJ3Vwc2V5LS0tLS0nLCB0aGlzLnVwc2VydFBybSk7XHJcblx0XHRcdFx0cmV0dXJuIHJlc3BvbnNlO1xyXG5cdFx0XHR9KSxcclxuXHRcdFx0ZmluYWxpemUoKCkgPT4ge1xyXG4gICAgICAgIC8vIHRoaXMubG9hZGluZ1NlcnZpY2Uuc2V0TG9hZGluZyhmYWxzZSk7XHJcblx0XHRcdH0pLFxyXG5cdFx0KTtcclxuXHR9XHJcblx0Ly/ojrflj5blpJrmnaHmlbDmja7vvIzmoLnmja7kvKDlhaXnmoTmnaHku7boh6rliqjnu4Tnu4dzcWxcclxuXHRzZWFyY2hDb3VudChwcm0/OiBTZWFyY2gpIHtcclxuXHRcdGlmIChwcm0pIHtcclxuXHRcdFx0dGhpcy53ZWJfc2VhcmNoQ291bnQocHJtKS5zdWJzY3JpYmUoKTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdHRoaXMud2ViX3NlYXJjaENvdW50KHRoaXMuc2VhcmNoUHJtKS5zdWJzY3JpYmUoKTtcclxuXHRcdH1cclxuXHR9XHJcblx0d2ViX3NlYXJjaENvdW50KHBhcmFtOiBTZWFyY2gpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgLy8gdGhpcy5sb2FkaW5nU2VydmljZS5zZXRMb2FkaW5nKHRydWUpO1xyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cC5wb3N0KGFwaVBhdGggKyAnc2VhcmNoQ291bnQnLCBwYXJhbSkucGlwZShcclxuXHRcdFx0bWFwKChyZXNwb25zZTogYW55KSA9PiB7XHJcblx0XHRcdFx0dGhpcy5zZWFyY2hQcm0gPSB7IC4uLnJlc3BvbnNlIH07XHJcblx0XHRcdFx0cmV0dXJuIHJlc3BvbnNlO1xyXG5cdFx0XHR9KSxcclxuXHRcdFx0ZmluYWxpemUoKCkgPT4ge1xyXG4gICAgICAgIC8vIHRoaXMubG9hZGluZ1NlcnZpY2Uuc2V0TG9hZGluZyhmYWxzZSk7XHJcblx0XHRcdH0pLFxyXG5cdFx0KTtcclxuXHR9XHJcblx0Ly9leGNlbOWvvOWFpVxyXG5cdC8vIGltcG9ydChwYXJhbTogSW1wb3J0RXhjZWwpOk9ic2VydmFibGU8YW55PiB7XHJcblx0Ly8gICB0aGlzLmlzTG9hZGluZy5zZXQodHJ1ZSk7XHJcblx0Ly8gICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXCJhbS9yZW1vdmVcIixwYXJhbSxodHRwT3B0aW9ucylcclxuXHQvLyAgIC5waXBlKFxyXG5cdC8vICAgICBtYXAoKHJlc3BvbnNlOiBhbnkpID0+e1xyXG5cdC8vICAgICAgIHRoaXMubWVzc2FnZS5zZXQocmVzcG9uc2UpO1xyXG5cdC8vICAgICAgIHRoaXMuaXNTdWNjZXNzLnNldCh0cnVlKTtcclxuXHQvLyAgICAgICByZXR1cm4gcmVzcG9uc2U7XHJcblx0Ly8gICAgIH0pLFxyXG5cdC8vICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xyXG5cdC8vICAgICAgIC8vIOiLpeivt+axguWHuumUme+8jOiuvue9ruivt+axguaIkOWKn+eKtuaAgeS4uiBmYWxzZe+8jOW5tuWwhumUmeivr+mHjeaWsOaKm+WHulxyXG5cdC8vICAgICAgIHRoaXMuaXNTdWNjZXNzLnNldChmYWxzZSk7XHJcblx0Ly8gICAgICAgdGhpcy5tZXNzYWdlLnNldChlcnJvcik7XHJcblx0Ly8gICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gZXJyb3IpO1xyXG5cdC8vICAgICB9KSxcclxuXHQvLyAgICAgZmluYWxpemUoKCkgPT4ge1xyXG5cdC8vICAgICAgIC8vIOaXoOiuuuivt+axguaIkOWKn+S4juWQpu+8jOmDveWwhuWKoOi9veS4reeKtuaAgeiuvue9ruS4uiBmYWxzZVxyXG5cdC8vICAgICAgIHRoaXMuaXNMb2FkaW5nLnNldChmYWxzZSk7XHJcblx0Ly8gICAgIH0pXHJcblx0Ly8gICApO1xyXG5cdC8vIH1cclxuXHQvLy8vZXhjZWwg5a+85Ye6XHJcblx0ZXhwb3J0KHBybT86IFNlYXJjaCkge1xyXG5cdFx0aWYgKHBybSkge1xyXG5cdFx0XHR0aGlzLndlYl9leHBvcnQocHJtKS5zdWJzY3JpYmUoKTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdHRoaXMud2ViX2V4cG9ydCh0aGlzLmV4cG9ydFBybSkuc3Vic2NyaWJlKCk7XHJcblx0XHR9XHJcblx0fVxyXG5cdHdlYl9leHBvcnQocGFyYW06IFNlYXJjaCk6IE9ic2VydmFibGU8YW55PiB7XHJcblx0XHRpZiAoIXBhcmFtLm1vZGVsTmFtZSkge1xyXG5cdFx0XHRwYXJhbSA9IHsgbW9kZWxOYW1lOiB0aGlzLm1vZGVsTmFtZSwgLi4ucGFyYW0gfTtcclxuXHRcdH1cclxuICAgIC8vIHRoaXMubG9hZGluZ1NlcnZpY2Uuc2V0TG9hZGluZyh0cnVlKTtcclxuXHRcdHJldHVybiB0aGlzLmh0dHAucG9zdChhcGlQYXRoICsgJ2V4cG9ydCcsIHBhcmFtLCB7IHJlc3BvbnNlVHlwZTogJ2Jsb2InIH0pLnBpcGUoXHJcblx0XHRcdG1hcCgocmVzcG9uc2U6IGFueSkgPT4ge1xyXG5cdFx0XHRcdGNvbnN0IGRhdGE6IEJsb2IgPSBuZXcgQmxvYihbcmVzcG9uc2VdLCB7XHJcblx0XHRcdFx0XHR0eXBlOiAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQ7IGNoYXJzZXQ9VVRGLTgnLFxyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHRcdGNvbnN0IGZpbGVOYW1lID0gcGFyYW0ubW9kZWxOYW1lICsgJy54bHN4JztcclxuXHRcdFx0XHRGaWxlU2F2ZXIuc2F2ZUFzKGRhdGEsIGZpbGVOYW1lKTtcclxuXHRcdFx0XHRyZXR1cm4gcmVzcG9uc2U7XHJcblx0XHRcdH0pLFxyXG5cdFx0XHRmaW5hbGl6ZSgoKSA9PiB7XHJcbiAgICAgICAgLy8gdGhpcy5sb2FkaW5nU2VydmljZS5zZXRMb2FkaW5nKGZhbHNlKTtcclxuXHRcdFx0fSksXHJcblx0XHQpO1xyXG5cdH1cclxuXHQvL+S6uuW3peWkhOeQhuWvvOWFpVxyXG5cdGRlYWxFeHBvcnQocHJtPzogU2VhcmNoKSB7XHJcblx0XHRpZiAocHJtKSB7XHJcblx0XHRcdHRoaXMud2ViX2RlYWxfZXhwb3J0KHBybSkuc3Vic2NyaWJlKCk7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHR0aGlzLndlYl9kZWFsX2V4cG9ydCh0aGlzLmV4cG9ydFBybSkuc3Vic2NyaWJlKCk7XHJcblx0XHR9XHJcblx0fVxyXG5cdHdlYl9kZWFsX2V4cG9ydChwYXJhbTogU2VhcmNoKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuXHRcdGlmICghcGFyYW0ubW9kZWxOYW1lKSB7XHJcblx0XHRcdHBhcmFtID0geyBtb2RlbE5hbWU6IHRoaXMubW9kZWxOYW1lLCAuLi5wYXJhbSB9O1xyXG5cdFx0fVxyXG4gICAgLy8gdGhpcy5sb2FkaW5nU2VydmljZS5zZXRMb2FkaW5nKHRydWUpO1xyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cC5wb3N0KGFwaVBhdGggKyAnZGVhbEV4cG9ydCcsIHBhcmFtLCB7IHJlc3BvbnNlVHlwZTogJ2Jsb2InIH0pLnBpcGUoXHJcblx0XHRcdG1hcCgocmVzcG9uc2U6IGFueSkgPT4ge1xyXG5cdFx0XHRcdGNvbnN0IGRhdGE6IEJsb2IgPSBuZXcgQmxvYihbcmVzcG9uc2VdLCB7XHJcblx0XHRcdFx0XHR0eXBlOiAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQ7IGNoYXJzZXQ9VVRGLTgnLFxyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHRcdGNvbnN0IGZpbGVOYW1lID0gcGFyYW0ubW9kZWxOYW1lICsgJy54bHN4JztcclxuXHRcdFx0XHRGaWxlU2F2ZXIuc2F2ZUFzKGRhdGEsIGZpbGVOYW1lKTtcclxuXHRcdFx0XHRyZXR1cm4gcmVzcG9uc2U7XHJcblx0XHRcdH0pLFxyXG5cdFx0XHRmaW5hbGl6ZSgoKSA9PiB7XHJcbiAgICAgICAgLy8gdGhpcy5sb2FkaW5nU2VydmljZS5zZXRMb2FkaW5nKGZhbHNlKTtcclxuXHRcdFx0fSksXHJcblx0XHQpO1xyXG5cdH1cclxuXHQvL+S4i+i9veWvvOWFpeeahOaooeadv1xyXG5cdGRvd25sb2FkVGVtcGxhdGUocHJtPzogRGVhbCkge1xyXG5cdFx0aWYgKHBybSkge1xyXG5cdFx0XHR0aGlzLndlYl9kb3dubG9hZFRlbXBsYXRlKHBybSkuc3Vic2NyaWJlKCk7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHR0aGlzLndlYl9kb3dubG9hZFRlbXBsYXRlKHRoaXMudGFtcGxhdGUpLnN1YnNjcmliZSgpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHR3ZWJfZG93bmxvYWRUZW1wbGF0ZShwYXJhbTogRGVhbCk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICAvLyB0aGlzLmxvYWRpbmdTZXJ2aWNlLnNldExvYWRpbmcodHJ1ZSk7XHJcblx0XHRyZXR1cm4gdGhpcy5odHRwLnBvc3QoYXBpUGF0aCArICdkb3dubG9hZCcsIHBhcmFtLCB7IHJlc3BvbnNlVHlwZTogJ2Jsb2InIH0pLnBpcGUoXHJcblx0XHRcdG1hcCgocmVzcG9uc2U6IGFueSkgPT4ge1xyXG5cdFx0XHRcdGNvbnN0IGRhdGE6IEJsb2IgPSBuZXcgQmxvYihbcmVzcG9uc2VdLCB7XHJcblx0XHRcdFx0XHR0eXBlOiAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQ7IGNoYXJzZXQ9VVRGLTgnLFxyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHRcdGNvbnN0IGZpbGVOYW1lID0gcGFyYW0ubW9kZWxOYW1lICsgJ+aooeadvy54bHN4JztcclxuXHRcdFx0XHRGaWxlU2F2ZXIuc2F2ZUFzKGRhdGEsIGZpbGVOYW1lKTtcclxuXHRcdFx0XHRyZXR1cm4gcmVzcG9uc2U7XHJcblx0XHRcdH0pLFxyXG5cdFx0XHRmaW5hbGl6ZSgoKSA9PiB7XHJcbiAgICAgICAgLy8gdGhpcy5sb2FkaW5nU2VydmljZS5zZXRMb2FkaW5nKGZhbHNlKTtcclxuXHRcdFx0fSksXHJcblx0XHQpO1xyXG5cdH1cclxuXHQvL+WIoOmZpOWbvueJh1xyXG5cdGltYWdlRGVsZXRlKGZpZD86IHN0cmluZykge1xyXG5cdFx0aWYgKGZpZCkge1xyXG5cdFx0XHR0aGlzLndlYl9pbWFnZURlbGV0ZShmaWQpLnN1YnNjcmliZSgpO1xyXG5cdFx0fSBlbHNlIGlmICh0aGlzLmZpZC5sZW5ndGggPiAwKSB7XHJcblx0XHRcdHRoaXMud2ViX2ltYWdlRGVsZXRlKHRoaXMuZmlkKS5zdWJzY3JpYmUoKTtcclxuXHRcdH1cclxuXHR9XHJcblx0d2ViX2ltYWdlRGVsZXRlKGZpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIC8vIHRoaXMubG9hZGluZ1NlcnZpY2Uuc2V0TG9hZGluZyh0cnVlKTtcclxuXHRcdHJldHVybiB0aGlzLmh0dHAucG9zdChhcGlQYXRoICsgJ2ltYWdlRGVsZXRlJywgZmlkKS5waXBlKFxyXG5cdFx0XHRtYXAoKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuXHRcdFx0XHR0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7IHNldmVyaXR5OiAnc3VjY2VzcycsIHN1bW1hcnk6ICdTdWNjZXNzJywgZGV0YWlsOiByZXNwb25zZSB9KTtcclxuXHRcdFx0XHRyZXR1cm4gcmVzcG9uc2U7XHJcblx0XHRcdH0pLFxyXG5cdFx0XHRmaW5hbGl6ZSgoKSA9PiB7XHJcbiAgICAgICAgLy8gdGhpcy5sb2FkaW5nU2VydmljZS5zZXRMb2FkaW5nKGZhbHNlKTtcclxuXHRcdFx0fSksXHJcblx0XHQpO1xyXG5cdH1cclxuXHQvL+WIoOmZpOWbvueJh1xyXG5cdGZpbGVyRGVsZXRlKGZpZD86IHN0cmluZykge1xyXG5cdFx0aWYgKGZpZCkge1xyXG5cdFx0XHR0aGlzLndlYl9maWxlckRlbGV0ZShmaWQpLnN1YnNjcmliZSgpO1xyXG5cdFx0fSBlbHNlIGlmICh0aGlzLmZpZC5sZW5ndGggPiAwKSB7XHJcblx0XHRcdHRoaXMud2ViX2ZpbGVyRGVsZXRlKHRoaXMuZmlkKS5zdWJzY3JpYmUoKTtcclxuXHRcdH1cclxuXHR9XHJcblx0d2ViX2ZpbGVyRGVsZXRlKGZpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIC8vIHRoaXMubG9hZGluZ1NlcnZpY2Uuc2V0TG9hZGluZyh0cnVlKTtcclxuXHRcdHJldHVybiB0aGlzLmh0dHAucG9zdChhcGlQYXRoICsgJ2ltYWdlRGVsZXRlJywgZmlkKS5waXBlKFxyXG5cdFx0XHRtYXAoKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuXHRcdFx0XHR0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7IHNldmVyaXR5OiAnc3VjY2VzcycsIHN1bW1hcnk6ICdTdWNjZXNzJywgZGV0YWlsOiByZXNwb25zZSB9KTtcclxuXHRcdFx0XHRyZXR1cm4gcmVzcG9uc2U7XHJcblx0XHRcdH0pLFxyXG5cdFx0XHRmaW5hbGl6ZSgoKSA9PiB7XHJcblx0XHRcdFx0Ly8gdGhpcy5sb2FkaW5nU2VydmljZS5zZXRMb2FkaW5nKGZhbHNlKTtcclxuXHRcdFx0fSksXHJcblx0XHQpO1xyXG5cdH1cclxuXHQvL+WIt+aWsHRva2VuXHJcblx0cmVmcmVzaFRva2VuKHBhcmFtOiBUb2tlbkluZm8pOiBPYnNlcnZhYmxlPGFueT4ge1xyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cC5wb3N0KGFwaVBhdGggKyAncmVmcmVzaFRva2VuJywgcGFyYW0pLnBpcGUoXHJcblx0XHRcdG1hcCgocmVzcG9uc2U6IGFueSkgPT4ge1xyXG5cdFx0XHRcdHRoaXMuZGVhbFBybSA9IHsgZGF0YTogcmVzcG9uc2UsIC4uLnRoaXMuZGVhbFBybSB9O1xyXG5cdFx0XHRcdHJldHVybiByZXNwb25zZTtcclxuXHRcdFx0fSksXHJcblx0XHRcdGZpbmFsaXplKCgpID0+IHtcclxuICAgICAgICAvLyB0aGlzLmxvYWRpbmdTZXJ2aWNlLnNldExvYWRpbmcoZmFsc2UpO1xyXG5cdFx0XHR9KSxcclxuXHRcdCk7XHJcblx0fVxyXG5cdC8v5Yib5bu66KGoXHJcblx0Y3JlYXRlVGFibGUocHJtPzogUGFyYW0pIHtcclxuXHRcdGlmIChwcm0pIHtcclxuXHRcdFx0dGhpcy53ZWJfY3JlYXRlVGFibGUocHJtKS5zdWJzY3JpYmUoKTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdHRoaXMud2ViX2NyZWF0ZVRhYmxlKHRoaXMucGFyYW0pLnN1YnNjcmliZSgpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHR3ZWJfY3JlYXRlVGFibGUocGFyYW06IFBhcmFtKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIC8vIHRoaXMubG9hZGluZ1NlcnZpY2Uuc2V0TG9hZGluZyh0cnVlKTtcclxuXHRcdHJldHVybiB0aGlzLmh0dHAucG9zdChhcGlQYXRoICsgJ2NyZWF0ZVRhYmxlJywgcGFyYW0pLnBpcGUoXHJcblx0XHRcdG1hcCgocmVzcG9uc2U6IGFueSkgPT4ge1xyXG5cdFx0XHRcdC8vIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHtzZXZlcml0eTogJ3N1Y2Nlc3MnLHN1bW1hcnk6ICdTdWNjZXNzJyxkZXRhaWw6IHJlc3BvbnNlfSlcclxuXHRcdFx0XHRyZXR1cm4gcmVzcG9uc2U7XHJcblx0XHRcdH0pLFxyXG5cdFx0XHRmaW5hbGl6ZSgoKSA9PiB7XHJcbiAgICAgICAgLy8gdGhpcy5sb2FkaW5nU2VydmljZS5zZXRMb2FkaW5nKGZhbHNlKTtcclxuXHRcdFx0fSksXHJcblx0XHQpO1xyXG5cdH1cclxuXHQvLyDmmoLml6Dnoa7lrprmmK/lkKbph43nva7lhbbku5blhazlhbHlj5jph49cclxuXHRyZXNldFBybShzZWFyY2g/OiBzdHJpbmcpIHtcclxuXHRcdHN3aXRjaCAoc2VhcmNoKSB7XHJcblx0XHRcdGNhc2UgJ3Vwc2VydCc6XHJcblx0XHRcdFx0dGhpcy51cHNlcnRQcm0uYWRkRGF0YSA9IHt9O1xyXG5cdFx0XHRcdHRoaXMudXBzZXJ0UHJtLnVwZERhdGEgPSB7fTtcclxuXHRcdFx0XHR0aGlzLnVwc2VydFBybS5sb2cgPSB7fTtcclxuXHRcdFx0XHR0aGlzLnVwc2VydFBybS5zdWJzZXJ0Py5mb3JFYWNoKCh2KSA9PiB7XHJcblx0XHRcdFx0XHR2LmxvZ3RtcCA9IG5ldyBNYXAoKTtcclxuXHRcdFx0XHRcdHYubWFwdG1wID0gbmV3IE1hcCgpO1xyXG5cdFx0XHRcdFx0di5zdWJEYXRhID0gW107XHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdGRlZmF1bHQ6XHJcblx0XHRcdFx0Jyc7XHJcblx0XHR9XHJcblx0fVxyXG5cdC8v6Ieq5aSE55CG6YC76L6RXHJcblx0ZGVhbFF1ZXJ5KHBybT86IERlYWwpIHtcclxuXHRcdGlmIChwcm0pIHtcclxuXHRcdFx0dGhpcy53ZWJEZWFsUXVlcnkocHJtKS5zdWJzY3JpYmUoKTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdHRoaXMud2ViRGVhbFF1ZXJ5KHRoaXMuZGVhbFBybSkuc3Vic2NyaWJlKCk7XHJcblx0XHR9XHJcblx0fVxyXG5cdHdlYkRlYWxRdWVyeShwYXJhbTogRGVhbCk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICAvLyB0aGlzLmxvYWRpbmdTZXJ2aWNlLnNldExvYWRpbmcodHJ1ZSk7XHJcblx0XHRyZXR1cm4gdGhpcy5odHRwLnBvc3QoYXBpUGF0aCArICdkZWFsUXVlcnknLCBwYXJhbSkucGlwZShcclxuXHRcdFx0bWFwKChyZXNwb25zZTogYW55KSA9PiB7XHJcblx0XHRcdFx0dGhpcy5kZWFsUHJtID0geyBkYXRhOiByZXNwb25zZSwgLi4udGhpcy5kZWFsUHJtIH07XHJcblx0XHRcdFx0cmV0dXJuIHJlc3BvbnNlO1xyXG5cdFx0XHR9KSxcclxuXHRcdFx0ZmluYWxpemUoKCkgPT4ge1xyXG4gICAgICAgIC8vIHRoaXMubG9hZGluZ1NlcnZpY2Uuc2V0TG9hZGluZyhmYWxzZSk7XHJcblx0XHRcdH0pLFxyXG5cdFx0KTtcclxuXHR9XHJcblx0ZGVhbEN1c3RvbShwcm0/OiBEZWFsKSB7XHJcblx0XHRpZiAocHJtKSB7XHJcblx0XHRcdHRoaXMud2ViRGVhbEN1c3RvbShwcm0pLnN1YnNjcmliZSgpO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0dGhpcy53ZWJEZWFsQ3VzdG9tKHRoaXMuZGVhbFBybSkuc3Vic2NyaWJlKCk7XHJcblx0XHR9XHJcblx0fVxyXG5cdHdlYkRlYWxDdXN0b20ocGFyYW06IERlYWwpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgLy8gdGhpcy5sb2FkaW5nU2VydmljZS5zZXRMb2FkaW5nKHRydWUpO1xyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cC5wb3N0KGFwaVBhdGggKyAnZGVhbEN1c3RvbScsIHBhcmFtKS5waXBlKFxyXG5cdFx0XHRtYXAoKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuXHRcdFx0XHR0aGlzLmRlYWxQcm0gPSB7IGRhdGE6IHJlc3BvbnNlLCAuLi50aGlzLmRlYWxQcm0gfTtcclxuXHRcdFx0XHRyZXR1cm4gcmVzcG9uc2U7XHJcblx0XHRcdH0pLFxyXG5cdFx0XHRmaW5hbGl6ZSgoKSA9PiB7XHJcbiAgICAgICAgLy8gdGhpcy5sb2FkaW5nU2VydmljZS5zZXRMb2FkaW5nKGZhbHNlKTtcclxuXHRcdFx0fSksXHJcblx0XHQpO1xyXG5cdH1cclxuXHRkZWFsU3VibWl0KHBybT86IERlYWwpIHtcclxuXHRcdGlmIChwcm0pIHtcclxuXHRcdFx0dGhpcy53ZWJEZWFsQ3VzdG9tKHBybSkuc3Vic2NyaWJlKCk7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHR0aGlzLndlYkRlYWxDdXN0b20odGhpcy5kZWFsUHJtKS5zdWJzY3JpYmUoKTtcclxuXHRcdH1cclxuXHR9XHJcblx0d2ViRGVhbFN1Ym1pdChwYXJhbTogRGVhbCk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICAvLyB0aGlzLmxvYWRpbmdTZXJ2aWNlLnNldExvYWRpbmcodHJ1ZSk7XHJcblx0XHRyZXR1cm4gdGhpcy5odHRwLnBvc3QoYXBpUGF0aCArICdkZWFsU3VibWl0JywgcGFyYW0pLnBpcGUoXHJcblx0XHRcdG1hcCgocmVzcG9uc2U6IGFueSkgPT4ge1xyXG5cdFx0XHRcdHRoaXMuZGVhbFBybSA9IHsgZGF0YTogcmVzcG9uc2UsIC4uLnRoaXMuZGVhbFBybSB9O1xyXG5cdFx0XHRcdHJldHVybiByZXNwb25zZTtcclxuXHRcdFx0fSksXHJcblx0XHRcdGZpbmFsaXplKCgpID0+IHtcclxuICAgICAgICAvLyB0aGlzLmxvYWRpbmdTZXJ2aWNlLnNldExvYWRpbmcoZmFsc2UpO1xyXG5cdFx0XHR9KSxcclxuXHRcdCk7XHJcblx0fVxyXG59XHJcbiJdfQ==
|