tango-app-ui-analyse-trax 3.7.71 → 3.7.72

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.
@@ -1196,7 +1196,7 @@ export class AddChecklistComponent {
1196
1196
  delete sections[i].questions[j].descriptivetype;
1197
1197
  }
1198
1198
  if (ansType == 'date') {
1199
- if (this.dayjs(sections[i].questions[j].answers.startDate, 'DD-MM-YYYY') > this.dayjs(sections[i].questions[j].answers.endDate, 'DD-MM-YYYY')) {
1199
+ if (sections[i].questions[j].compliance && this.dayjs(sections[i].questions[j].answers.startDate, 'DD-MM-YYYY') > this.dayjs(sections[i].questions[j].answers.endDate, 'DD-MM-YYYY')) {
1200
1200
  let err = 'Start date is greater than end date';
1201
1201
  this.swalToast(err, 'error');
1202
1202
  return;
@@ -1379,7 +1379,7 @@ export class AddChecklistComponent {
1379
1379
  // }
1380
1380
  }
1381
1381
  if (sectionsarray[i].questions[j].answerType == 'date') {
1382
- if (this.dayjs(sectionsarray[i].questions[j].answers.startDate, 'DD-MM-YYYY') > this.dayjs(sectionsarray[i].questions[j].answers.endDate, 'DD-MM-YYYY')) {
1382
+ if (sectionsarray[i].questions[j].compliance && this.dayjs(sectionsarray[i].questions[j].answers.startDate, 'DD-MM-YYYY') > this.dayjs(sectionsarray[i].questions[j].answers.endDate, 'DD-MM-YYYY')) {
1383
1383
  let err = 'Start date is greater than end date';
1384
1384
  this.swalToast(err, 'error');
1385
1385
  return;
@@ -2259,4 +2259,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
2259
2259
  type: ViewChild,
2260
2260
  args: ['formRef']
2261
2261
  }] } });
2262
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLWNoZWNrbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hbmFseXNlLXRyYXgvc3JjL2xpYi9jb21wb25lbnRzL2FkZC1jaGVja2xpc3QvYWRkLWNoZWNrbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hbmFseXNlLXRyYXgvc3JjL2xpYi9jb21wb25lbnRzL2FkZC1jaGVja2xpc3QvYWRkLWNoZWNrbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLFNBQVMsRUFBaUMsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZHLE9BQU8sRUFBRSxTQUFTLEVBQWUsVUFBVSxFQUFFLFNBQVMsRUFBc0MsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuSCxPQUFPLEVBQWUsZUFBZSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekYsT0FBTyxFQUFFLEtBQUssRUFBQyxTQUFTLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRWhELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBSXRFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQzFGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUMvRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUMzRixPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDdEYsT0FBTyxpQkFBaUIsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMvRCxPQUFPLEdBQUcs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QkFDeFAsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUMsYUFBYSxFQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsaUJBQWlCLEVBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQzt3QkFDM0gsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxZQUFZLEVBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxFQUFDLFVBQVUsRUFBQyxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUMsVUFBVSxFQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBQyxVQUFVLEVBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFDLFlBQVksRUFBQyxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO3dCQUNsUSxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLGNBQWMsRUFBQyxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLEVBQUMsV0FBVyxFQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsRUFBQyxTQUFTLEVBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FB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QUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxVQUFVLEVBQUMsVUFBVSxFQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBQyxZQUFZLEVBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsVUFBVSxFQUFDLFVBQVUsRUFBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLEVBQUMsVUFBVSxFQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsRUFBQyxDQUFBLENBQUMsQ0FBQSxFQUFFLENBQUM7d0JBQ3pXLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUMsY0FBYyxFQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLFlBQVksRUFBQyxXQUFXLEVBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsU0FBUyxFQUFDLFNBQVMsRUFBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUMsQ0FBQSxDQUFDLENBQUEsRUFBRSxDQUFDO3dCQUNuTyxLQUFLLEVBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsS0FBSyxJQUFJLEtBQUs7d0JBQ3hELGFBQWEsRUFBQyxRQUFRLENBQUMsQ0FBQyxD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LENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsSUFBSSxhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQUMsWUFBWSxFQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLFVBQVUsRUFBQyxVQUFVLEVBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsUUFBUSxFQUFDLFlBQVksRUFBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxVQUFVLEVBQUMsVUFBVSxFQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsRUFBQyxVQUFVLEVBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxFQUFDLENBQUEsQ0FBQyxDQUFBLEVBQUUsQ0FBQzt3QkFDeFksR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBQyxjQUFjLEVBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsWUFBWSxFQUFDLFdBQVcsRUFBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxTQUFTLEVBQUMsU0FBUyxFQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBQyxDQUFBLENBQUMsQ0FBQSxFQUFFLENB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RUFBRSxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUM7aUJBQy9CO3FCQUFNLElBQUksUUFBUSxHQUFHLFFBQVEsRUFBRTtvQkFDOUIsT0FBTyxFQUFFLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztpQkFDN0I7YUFDRjtpQkFBTTtnQkFDTCxPQUFPLEVBQUUsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2FBQy9CO1NBQ0Y7SUFDSCxDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQVMsRUFBQyxNQUFhLEVBQUMsS0FBWTtRQUN6QyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQWU7YUFDOUMsRUFBRSxDQUFDLE1BQU0sQ0FBZTthQUN4QixHQUFHLENBQUMsV0FBVyxDQUFlO2FBQzlCLEVBQUUsQ0FBQyxLQUFLLENBQWUsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFlLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0RixJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQWU7YUFDOUMsRUFBRSxDQUFDLE1BQU0sQ0FBZTthQUN4QixHQUFHLENBQUMsV0FBVyxDQUFlO2FBQzlCLEVBQUUsQ0FBQyxLQUFLLENBQWUsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFlLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM3RixDQUFDO3dHQXh5RVUscUJBQXFCOzRGQUFyQixxQkFBcUIsNkpDN0JsQyw2MzJKQSt4Q007OzRGRGx3Q08scUJBQXFCO2tCQUxqQyxTQUFTOytCQUNFLG1CQUFtQjs2U0FLUCxPQUFPO3NCQUE1QixTQUFTO3VCQUFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBPbkRlc3Ryb3ksIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCwgRm9ybUNvbnRyb2wsIFZhbGlkYXRvcnMsIEZvcm1BcnJheSwgRm9ybUJ1aWxkZXIsIEZvcm0sIEFic3RyYWN0Q29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgR2xvYmFsU3RhdGVTZXJ2aWNlLCBQYWdlSW5mb1NlcnZpY2UgfSBmcm9tICd0YW5nby1hcHAtdWktZ2xvYmFsJztcclxuaW1wb3J0IHsgQ2RrRHJhZ0Ryb3AsIG1vdmVJdGVtSW5BcnJheSwgdHJhbnNmZXJBcnJheUl0ZW0gfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcclxuaW1wb3J0IHsgdGltZXIsdGFrZVVudGlsLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IE5nYk1vZGFsIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xyXG5pbXBvcnQgeyBUcmF4cG9wdXBDb21wb25lbnQgfSBmcm9tICcuLi90cmF4cG9wdXAvdHJheHBvcHVwLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IFRvYXN0U2VydmljZSB9IGZyb20gJ3RhbmdvLWFwcC11aS1zaGFyZWQnO1xyXG5pbXBvcnQgeyBUcmF4U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RyYXguc2VydmljZSc7XHJcbmltcG9ydCB7IG5vV2hpdGVzcGFjZVZhbGlkYXRvciB9IGZyb20gJy4uL2NyZWF0ZS10YXNrL3ZhbGlkYXRvcnMvd2hpdGVzcGFjZS12YWxpZGF0b3InO1xyXG5pbXBvcnQgeyB1bmlxdWVTdHJpbmdWYWxpZGF0b3IgfSBmcm9tICcuLi9jcmVhdGUtdGFzay92YWxpZGF0b3JzL3VuaXF1ZS1zdHJpbmctdmFsaWRhdG9yJztcclxuaW1wb3J0IHsgcmFuZ2VWYWxpZGF0b3IgfSBmcm9tICcuLi9jcmVhdGUtdGFzay92YWxpZGF0b3JzL2FzY2VuZGluZy12YWxpZGF0b3InO1xyXG5pbXBvcnQgeyBUcmF4UnVuQUlQb3B1cENvbXBvbmVudCB9IGZyb20gJy4uL3RyYXgtcnVuLWFpLXBvcHVwL3RyYXgtcnVuLWFpLXBvcHVwLmNvbXBvbmVudCc7XHJcbmltcG9ydCBkYXlqcyBmcm9tICdkYXlqcyc7XHJcbmltcG9ydCB7IENoZWNrbGlzdFBvcHVwQ29tcG9uZW50IH0gZnJvbSAnLi9jaGVja2xpc3QtcG9wdXAvY2hlY2tsaXN0LXBvcHVwLmNvbXBvbmVudCc7XHJcbmltcG9ydCBjdXN0b21QYXJzZUZvcm1hdCBmcm9tICdkYXlqcy9wbHVnaW4vY3VzdG9tUGFyc2VGb3JtYXQnO1xyXG5pbXBvcnQgdXRjIGZyb20gJ2RheWpzL3BsdWdpbi91dGMuanMnO1xyXG5pbXBvcnQgdGltZVpvbmUgZnJvbSAnZGF5anMvcGx1Z2luL3RpbWV6b25lLmpzJztcclxuZGF5anMuZXh0ZW5kKHRpbWVab25lKTtcclxuZGF5anMuZXh0ZW5kKHV0Yyk7XHJcbmRheWpzLmV4dGVuZChjdXN0b21QYXJzZUZvcm1hdCk7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItYWRkLWNoZWNrbGlzdCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2FkZC1jaGVja2xpc3QuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9hZGQtY2hlY2tsaXN0LmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQWRkQ2hlY2tsaXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LE9uRGVzdHJveSB7XHJcbiAgQFZpZXdDaGlsZCgnZm9ybVJlZicpIGZvcm1SZWY6IEVsZW1lbnRSZWY7XHJcblxyXG4gIENoZWNrbGlzdEZvcm0hOiBGb3JtR3JvdXA7XHJcbiAgc2hvdzogbnVtYmVyID0gMDtcclxuICBzZWN0aW9uSW5kZXg6IG51bWJlciA9IDA7XHJcbiAgZ2V0b2JqZWN0OiBhbnk7XHJcbiAgZWRpdHZhbHVlOiBhbnk7XHJcbiAgbm9zZWN0aW9uOmJvb2xlYW4gPSBmYWxzZTtcclxuICBzaG93dmFsdWU6IHN0cmluZztcclxuICByZWZJbWdRSWR4OiBudW1iZXIgPSAwO1xyXG4gIGNoZWNrbGlzdExvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwb3B1cENvdW50Om51bWJlciA9IDA7XHJcbiAgY2xpZW50SWQ6YW55O1xyXG4gIGRlbGV0ZWRMaXN0OmFueSA9IFtdO1xyXG4gIGVudmlyb25tZW50OmFueTtcclxuICB1c2VyVHlwZTogYW55O1xyXG4gIG1heFNlY3Rpb25OdW1iZXI6IGFueTtcclxuICBkcm9wZG93blZhbHVlOmFueSA9WzAsMSwyLDMsNCw1LDYsNyw4LDksMTBdO1xyXG4gIGRheWpzID0gZGF5anM7XHJcbiAgcHJpdmF0ZSBkZXRhY2ggPSBuZXcgU3ViamVjdCgpO1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcGFnZUluZm86UGFnZUluZm9TZXJ2aWNlLHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLHByaXZhdGUgY2hhbmdlZGV0ZWN0b3I6Q2hhbmdlRGV0ZWN0b3JSZWYscHJpdmF0ZSBkaWFsb2c6TmdiTW9kYWwscHJpdmF0ZSByb3V0ZTpBY3RpdmF0ZWRSb3V0ZSxwcml2YXRlIHRvYXN0OlRvYXN0U2VydmljZSxwcml2YXRlIHJvdXRlcjpSb3V0ZXIscHJpdmF0ZSBzb3BTZXJ2aWNlOlRyYXhTZXJ2aWNlLHByaXZhdGUgZ3M6R2xvYmFsU3RhdGVTZXJ2aWNlKSB7XHJcbiAgfVxyXG4gIFxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5pbml0Q2hlY2tsaXN0KCk7XHJcbiAgICB0aGlzLnNldFBhZ2VEYXRhKCk7XHJcbiAgICBsZXQgc3RvcmFnZURldGFpbHMgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdoZWFkZXItZmlsdGVycycpIHx8ICd7fScpO1xyXG5cclxuICAgIGxldCB1c2VySW5mbyA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3VzZXItaW5mbycpIHx8ICd7fScpXHJcbiAgICBpZih1c2VySW5mby51c2VyVHlwZSl7XHJcbiAgICAgIHRoaXMudXNlclR5cGUgPSB1c2VySW5mby51c2VyVHlwZTsgXHJcbiAgICB9IFxyXG5cclxuICAgIGlmKCFzdG9yYWdlRGV0YWlscz8uY2xpZW50KSB7XHJcbiAgICAgIHN0b3JhZ2VEZXRhaWxzID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnY2xpZW50LWRldGFpbHMnKSB8fCAne30nKTtcclxuICAgICAgc3RvcmFnZURldGFpbHMuY2xpZW50ID0gc3RvcmFnZURldGFpbHMuY2xpZW50SWQ7XHJcbiAgICB9XHJcbiAgICBpZihzdG9yYWdlRGV0YWlscz8uY2xpZW50KSB7XHJcbiAgICAgIHRoaXMuY2xpZW50SWQgPSBzdG9yYWdlRGV0YWlscy5jbGllbnQ7XHJcbiAgICAgIHRoaXMucm91dGUucXVlcnlQYXJhbXMuc3Vic2NyaWJlKChwYXJhbXM6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMuZWRpdHZhbHVlID0gcGFyYW1zLmNoZWNrbGlzdElkO1xyXG4gICAgICAgIGlmIChwYXJhbXMuY2hlY2tsaXN0SWQpIHtcclxuICAgICAgICAgIHRoaXMuc2hvd3ZhbHVlID0gJ2VkaXQnO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAvLyBPcGVuIFBvcHVwIGZvciBHZXQgQ2hlY2tsaXN0IE5hbWUgLy9cclxuICAgICAgICAgIFxyXG4gICAgICAgICAgdGhpcy5zaG93dmFsdWUgPSAnYWRkJ1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy5zaG93dmFsdWUgPT0gJ2VkaXQnIHx8IHBhcmFtcy50eXBlKSB7XHJcbiAgICAgICAgICBsZXQgb2JqOiBhbnkgPSB7fTtcclxuICAgICAgICAgIGlmIChwYXJhbXMuY2hlY2tsaXN0SWQpIHtcclxuICAgICAgICAgICAgb2JqLmNoZWNrTGlzdElkID0gcGFyYW1zLmNoZWNrbGlzdElkXHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBvYmoudHlwZSA9IHBhcmFtcy50eXBlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgb2JqLmNsaWVudElkID0gdGhpcy5jbGllbnRJZDtcclxuICAgICAgICAgIHRoaXMuY2hlY2tsaXN0TG9hZGluZyA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLnNvcFNlcnZpY2UuZ2V0Y29uZmlnKG9iaikucGlwZSh0YWtlVW50aWwodGhpcy5kZXRhY2gpKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgIGlmKHJlcykge1xyXG4gICAgICAgICAgICAgICAgaWYocmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0b2JqZWN0ID0gcmVzLmRhdGEuY2hlY2tMaXN0RGV0YWlscztcclxuICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtQ2hlY2tsaXN0UXVlc3Rpb25zKCk7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmNoZWNrbGlzdExvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmNoZWNrbGlzdExvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0sKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuY2hlY2tsaXN0TG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5pbml0Q2hlY2tsaXN0KCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIHRoaXMuZ3MuZW52aXJvbm1lbnQucGlwZSh0YWtlVW50aWwodGhpcy5kZXRhY2gpKS5zdWJzY3JpYmUoKGVudikgPT4ge1xyXG4gICAgICBpZiAoZW52KSB7XHJcbiAgICAgICAgdGhpcy5lbnZpcm9ubWVudCA9IGVudjtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGV0YWNoLm5leHQodHJ1ZSk7XHJcbiAgICB0aGlzLmRldGFjaC5jb21wbGV0ZSgpO1xyXG4gIH1cclxuXHJcbiAgc2V0UGFnZURhdGEoKSB7XHJcbiAgICB0aGlzLnBhZ2VJbmZvLnNldFRpdGxlKFwiTWFuYWdlIENoZWNrbGlzdFwiKTtcclxuICAgIHRoaXMucGFnZUluZm8uc2V0RGVzY3JpcHRpb24oXCJBdXRvbWF0ZSBvciBjcmVhdGUgY2hlY2tsaXN0cyB0byBpbXByb3ZlIG9wZXJhdGlvbmFsIGVmZmljaWVuY3lcIik7XHJcbiAgICB0aGlzLnBhZ2VJbmZvLnNldEJyZWFkY3J1bWJzKFtcclxuICAgICAgeyB0aXRsZTogXCJUYW5nbyBUcmF4XCIsIHBhdGg6IFwiL21hbmFnZS90cmF4L2Rhc2hib2FyZFwiLCBpc0FjdGl2ZTogZmFsc2UsIGlzU2VwYXJhdG9yOiBmYWxzZSB9LFxyXG4gICAgICB7IHRpdGxlOiBcIlRhbmdvIFRyYXhcIiwgcGF0aDogXCIvbWFuYWdlL3RyYXgvZGFzaGJvYXJkXCIsIGlzQWN0aXZlOiBmYWxzZSwgaXNTZXBhcmF0b3I6IHRydWUgfVxyXG4gICAgXSk7XHJcbiAgfVxyXG4gIFxyXG4gIHVwZGF0ZUlucHV0VmFsdWUoc2VjdGlvbkluZGV4OiBudW1iZXIsc2VjdGlvbk5hbWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgaWYgKHNlY3Rpb25OYW1lLnRyaW0oKSA9PT0gJycpIHtcclxuICAgICAgdGhpcy5nZXRTZWN0aW9uRm9ybUNvbnRyb2woc2VjdGlvbkluZGV4LCduYW1lJyk/LnNldFZhbHVlKGBTZWN0aW9uICR7c2VjdGlvbkluZGV4KzF9YCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHNjcm9sbFRvUXVlc3Rpb24oc2VjdGlvbkluZGV4OiBudW1iZXIsIHF1ZXN0aW9uSW5kZXg6IG51bWJlcik6IHZvaWQge1xyXG4gICAgY29uc3QgcXVlc3Rpb25JZCA9IGBxLSR7c2VjdGlvbkluZGV4fS0ke3F1ZXN0aW9uSW5kZXh9YDtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICBjb25zdCBxdWVzdGlvbkVsZW1lbnQgPSB0aGlzLmZvcm1SZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKGAjJHtxdWVzdGlvbklkfWApO1xyXG4gIFxyXG4gICAgICBpZiAocXVlc3Rpb25FbGVtZW50KSB7XHJcbiAgICAgICAgcXVlc3Rpb25FbGVtZW50LnNjcm9sbEludG9WaWV3KHsgYmxvY2s6ICdjZW50ZXInLCBiZWhhdmlvcjogJ3Ntb290aCcgfSk7XHJcbiAgICAgIH1cclxuICAgIH0sIDEwMCk7XHJcbiAgfVxyXG5cclxuICBmb3JtQ2hlY2tsaXN0UXVlc3Rpb25zKCkgeyBcclxuICAgIGxldCBzZWN0aW9uc2FycmF5OiBhbnkgPSBbXTtcclxuICAgIGxldCBzZWN0aW9uczogYW55W10gPSBbXTtcclxuICAgIHNlY3Rpb25zYXJyYXkgPSB0aGlzLmdldG9iamVjdC5zZWN0aW9uc1xyXG5cclxuICAgIHRoaXMubWF4U2VjdGlvbk51bWJlciA9IE1hdGgubWF4KC4uLnNlY3Rpb25zYXJyYXkubWFwKChlbGU6YW55KSA9PiBlbGUuc2VjdGlvbk51bWJlciApKTtcclxuICAgIC8vIGNvbnNvbGUubG9nKFwidGhpcy5tYXhTZWN0aW9uTnVtYmVyIDE9PlwiLCB0aGlzLm1heFNlY3Rpb25OdW1iZXIpXHJcbiAgICBzZWN0aW9uc2FycmF5LmZvckVhY2goKGk6IGFueSxzZWN0aW9uSW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgICBsZXQgcXVlc3Rpb25zOiBhbnlbXSA9IFtdO1xyXG4gICAgICBsZXQgc2VjdGlvbk51bWJlciA9IGk/LnNlY3Rpb25OdW1iZXIgfHwgKHNlY3Rpb25JbmRleCArIDEpXHJcbiAgICAgIGkucXVlc3Rpb25zLmZvckVhY2goKGo6IGFueSxxdWVzdGlvbkluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgICBsZXQgYW5zd2VyOiBhbnlbXSA9IFtdO1xyXG4gICAgICAgIGxldCBydW5BSTphbnlbXSA9IGouYW5zd2Vycy5maWx0ZXIoKGVsZTphbnkpID0+IGVsZS5ydW5BSSk7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCJydW5BSSA9PlwiLCBydW5BSSlcclxuICAgICAgICBqLmFuc3dlcnM/LmZvckVhY2goKGs6IGFueSxhbnN3ZXJJbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgICAvLyBpZih0eXBlb2Ygaz8ucmVmZXJlbmNlSW1hZ2UgPT0nc3RyaW5nJyAmJiBrPy5yZWZlcmVuY2VJbWFnZSAhPSAnJyAmJiBrLm11bHRpUmVmZXJlbmNlSW1hZ2UubGVuZ3RoKSB7XHJcbiAgICAgICAgICAvLyAgIGsubXVsdGlSZWZlcmVuY2VJbWFnZSA9IFt7aW1hZ2VVUkw6az8ucmVmZXJlbmNlSW1hZ2UscnVuQUk6ZmFsc2V9XVxyXG4gICAgICAgICAgLy8gfVxyXG4gICAgICAgICAgYW5zd2VyLnB1c2goXHJcbiAgICAgICAgICAgIHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICAgICAgICAgIC4uLighWydpbWFnZScsJ2Rlc2NyaXB0aXZlSW1hZ2UnLCdtdWx0aXBsZUltYWdlJywnbGluZWFyc2NhbGUnLCd0aW1lJywnZGF0ZScsJ2ltYWdlL3ZpZGVvJ10uaW5jbHVkZXMoaj8uYW5zd2VyVHlwZSkgJiYgaj8uYW5zd2VyVHlwZSAhPSAndmlkZW8nPyB7ICdhbnN3ZXInOiB0aGlzLmZiLmNvbnRyb2woe3ZhbHVlOms/LmFuc3dlcixkaXNhYmxlZDogKHRoaXMudXNlclR5cGUgPT09ICdjbGllbnQnID8gcnVuQUkubGVuZ3RoIDogZmFsc2UpIH0sIFtWYWxpZGF0b3JzLnJlcXVpcmVkLG5vV2hpdGVzcGFjZVZhbGlkYXRvcigpXSkgfSA6IHt9KSxcclxuICAgICAgICAgICAgICAnYW5zd2Vyb3B0aW9uTnVtYmVyJzogdGhpcy5mYi5jb250cm9sKGFuc3dlckluZGV4KSxcclxuICAgICAgICAgICAgICAuLi4oIVsnaW1hZ2UnLCdkZXNjcmlwdGl2ZUltYWdlJywnbXVsdGlwbGVJbWFnZScsJ2xpbmVhcnNjYWxlJ10uaW5jbHVkZXMoaj8uYW5zd2VyVHlwZSkgJiYgaj8uYW5zd2VyVHlwZSAhPSAndmlkZW8nPyB7ICdzb3BGbGFnJzogdGhpcy5mYi5jb250cm9sKGs/LnNvcEZsYWcgPyBrPy5zb3BGbGFnIDogZmFsc2UsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSkgfSA6IHt9KSxcclxuICAgICAgICAgICAgICAuLi4oIVsnaW1hZ2UnLCdkZXNjcmlwdGl2ZUltYWdlJywnbXVsdGlwbGVJbWFnZScsJ2xpbmVhcnNjYWxlJ10uaW5jbHVkZXMoaj8uYW5zd2VyVHlwZSkgJiYgaj8uYW5zd2VyVHlwZSAhPSAndmlkZW8nPyB7ICd2YWxpZGF0aW9uJzogdGhpcy5mYi5jb250cm9sKHt2YWx1ZTprPy52YWxpZGF0aW9uLGRpc2FibGVkOiAodGhpcy51c2VyVHlwZSA9PT0gJ2NsaWVudCcgPyBydW5BSS5sZW5ndGggOiBmYWxzZSkgfSwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSB9IDoge30pLFxyXG4gICAgICAgICAgICAgIC4uLighWydpbWFnZScsJ2Rlc2NyaXB0aXZlSW1hZ2UnLCdtdWx0aXBsZUltYWdlJywnbGluZWFyc2NhbGUnXS5pbmNsdWRlcyhqPy5hbnN3ZXJUeXBlKSAmJiBqPy5hbnN3ZXJUeXBlICE9ICd2aWRlbyc/IHsgJ3ZhbGlkYXRpb25UeXBlJzogdGhpcy5mYi5jb250cm9sKHt2YWx1ZTprPy52YWxpZGF0aW9uVHlwZSxkaXNhYmxlZDogKHRoaXMudXNlclR5cGUgPT09ICdjbGllbnQnID8gcnVuQUkubGVuZ3RoIDogZmFsc2UpIH0sIHRoaXMuYWxsb3dlZFZhbHVlc1ZhbGlkYXRvcihbXCJDYXB0dXJlIEltYWdlXCIsIFwiRGVzY3JpcHRpdmUgQW5zd2VyXCIsIFwiQ2FwdHVyZSBWaWRlb1wiXSkpIH0gOiB7fSksXHJcbiAgICAgICAgICAgICAgLi4uKFsnaW1hZ2UnLCdkZXNjcmlwdGl2ZUltYWdlJywnbXVsdGlwbGVJbWFnZSddLmluY2x1ZGVzKGo/LmFuc3dlclR5cGUpID8geyBcIm11bHRpUmVmZXJlbmNlSW1hZ2VcIjogdGhpcy5mYi5hcnJheShrPy5tdWx0aVJlZmVyZW5jZUltYWdlIHx8IFtdICkgfSA6IHt9KSxcclxuICAgICAgICAgICAgICAuLi4oKFsnaW1hZ2UnLCdkZXNjcmlwdGl2ZUltYWdlJywnbXVsdGlwbGVJbWFnZScsJ2ltYWdlL3ZpZGVvJ10uaW5jbHVkZXMoaj8uYW5zd2VyVHlwZSkgfHwgaj8uYW5zd2VyVHlwZSA9PSAndmlkZW8nKSA/IHsgJ2FsbG93VXBsb2FkZnJvbUdhbGxlcnknOiB0aGlzLmZiLmNvbnRyb2woe3ZhbHVlOmo/LmFsbG93VXBsb2FkZnJvbUdhbGxlcnkgPyB0cnVlIDogZmFsc2UsZGlzYWJsZWQ6ISFydW5BSS5sZW5ndGh9KSB9IDoge30pLFxyXG4gICAgICAgICAgICAgIC4uLihbJ2ltYWdlJywnZGVzY3JpcHRpdmVJbWFnZScsJ211bHRpcGxlSW1hZ2UnXS5pbmNsdWRlcyhqPy5hbnN3ZXJUeXBlKSA/IHsgJ3J1bkFJJzogdGhpcy5mYi5jb250cm9sKHt2YWx1ZTooaz8ucnVuQUkpID8gaz8ucnVuQUkgOiBmYWxzZSxkaXNhYmxlZDogKHRoaXMudXNlclR5cGUgPT09ICdjbGllbnQnID8gcnVuQUkubGVuZ3RoIDogZmFsc2UpIH0pIH0gOiB7fSksXHJcbiAgICAgICAgICAgICAgLi4uKFsnbXVsdGlwbGVjaG9pY2VzaW5nbGUnLCd5ZXMvbm8nXS5pbmNsdWRlcyhqPy5hbnN3ZXJUeXBlKSA/IHsgJ3Nob3dMaW5rZWQnOiB0aGlzLmZiLmNvbnRyb2woKGs/LnNob3dMaW5rZWQpID8gaz8uc2hvd0xpbmtlZCA6IGZhbHNlKSB9IDoge30pLFxyXG4gICAgICAgICAgICAgIC4uLihbJ211bHRpcGxlY2hvaWNlc2luZ2xlJywneWVzL25vJ10uaW5jbHVkZXMoaj8uYW5zd2VyVHlwZSkgPyB7ICdsaW5rZWRRdWVzdGlvbic6IHRoaXMuZmIuY29udHJvbCgoaz8ubGlua2VkUXVlc3Rpb24pID8gaz8ubGlua2VkUXVlc3Rpb24gOiAwKSB9IDoge30pLFxyXG4gICAgICAgICAgICAgICAuLi4oIVsnZGVzY3JpcHRpdmUnLCdpbWFnZScsICdkZXNjcmlwdGl2ZUltYWdlJywnbXVsdGlwbGVJbWFnZScsJ2RhdGUnXS5pbmNsdWRlcyhqPy5hbnN3ZXJUeXBlKSA/IHsgXCJtdWx0aVJlZmVyZW5jZUltYWdlXCI6IHRoaXMuZmIuYXJyYXkoaz8ubXVsdGlSZWZlcmVuY2VJbWFnZSB8fCBbXSApIH0gOiB7fSksXHJcbiAgICAgICAgICAgICAgLi4uKCghWydkZXNjcmlwdGl2ZScsJ2ltYWdlJywgJ2Rlc2NyaXB0aXZlSW1hZ2UnLCd2aWRlbycsJ211bHRpcGxlSW1hZ2UnLCdkYXRlJywnaW1hZ2UvdmlkZW8nXS5pbmNsdWRlcyhqPy5hbnN3ZXJUeXBlKSkgPyB7ICdhbGxvd1VwbG9hZGZyb21HYWxsZXJ5JzogdGhpcy5mYi5jb250cm9sKHt2YWx1ZTprPy5hbGxvd1VwbG9hZGZyb21HYWxsZXJ5ID8gdHJ1ZSA6IGZhbHNlLGRpc2FibGVkOiEhcnVuQUkubGVuZ3RofSkgfSA6IHt9KSxcclxuICAgICAgICAgICAgICAuLi4oIVsnZGVzY3JpcHRpdmUnLCdpbWFnZScsICdkZXNjcmlwdGl2ZUltYWdlJywnbXVsdGlwbGVJbWFnZScsJ2RhdGUnLCdpbWFnZS92aWRlbyddLmluY2x1ZGVzKGo/LmFuc3dlclR5cGUpID8geyAncnVuQUknOiB0aGlzLmZiLmNvbnRyb2woe3ZhbHVlOihrPy5ydW5BSSkgPyBrPy5ydW5BSSA6IGZhbHNlLGRpc2FibGVkOiAodGhpcy51c2VyVHlwZSA9PT0gJ2NsaWVudCcgPyBydW5BSS5sZW5ndGggOiBmYWxzZSkgfSkgfSA6IHt9KSxcclxuICAgICAgICAgICAgICAuLi4oIVsnZGF0ZScsJ2xpbmVhcnNjYWxlJywndGltZSddLmluY2x1ZGVzKGo/LmFuc3dlclR5cGUpID8geyAnZGVzY3JpcHRpdmV0eXBlJzp0aGlzLmZiLmNvbnRyb2woay5kZXNjcmlwdGl2ZXR5cGUpIH0gOiB7fSksXHJcbiAgICAgICAgICAgICAgLi4uKFsnbGluZWFyc2NhbGUnXS5pbmNsdWRlcyhqPy5hbnN3ZXJUeXBlKSA/IHsgJ3JhbmdlU3RhcnQnOnRoaXMuZmIuY29udHJvbChrLnJhbmdlU3RhcnQpLCdyYW5nZUVuZCc6dGhpcy5mYi5jb250cm9sKGsucmFuZ2VFbmQpLCdtaW5WYWx1ZSc6dGhpcy5mYi5jb250cm9sKGsubWluVmFsdWUpLCdtYXhWYWx1ZSc6dGhpcy5mYi5jb250cm9sKGsubWF4VmFsdWUpLCdsaW5lYXJUeXBlJzp0aGlzLmZiLmNvbnRyb2woay5saW5lYXJUeXBlKSB9IDoge30pLFxyXG4gICAgICAgICAgICAgIC4uLihbJ2RhdGUnXS5pbmNsdWRlcyhqPy5hbnN3ZXJUeXBlKSA/IHsgJ2hpc3RvcmljRGF0ZSc6dGhpcy5mYi5jb250cm9sKGsuaGlzdG9yaWNEYXRlKSwnc3RhcnREYXRlJzp0aGlzLmZiLmNvbnRyb2woay5zdGFydERhdGUpLCdlbmREYXRlJzp0aGlzLmZiLmNvbnRyb2woay5lbmREYXRlKX0gOiB7fSksXHJcbiAgICAgICAgICAgICAgcmVmZXJlbmNlSW1hZ2U6az8ucmVmZXJlbmNlSW1hZ2UgPz8gJycsXHJcbiAgICAgICAgICAgICAgLi4uKFsnaW1hZ2UvdmlkZW8nXS5pbmNsdWRlcyhqPy5hbnN3ZXJUeXBlKSAmJiB7ICdsaW1pdCc6dGhpcy5mYi5jb250cm9sKGsubGltaXQpLCdpbWFnZUxpbWl0Jzp0aGlzLmZiLmNvbnRyb2woay5pbWFnZUxpbWl0KSwndmlkZW9MaW1pdCc6dGhpcy5mYi5jb250cm9sKGsudmlkZW9MaW1pdCl9KSxcclxuICAgICAgICAgICAgICAuLi4oWydpbWFnZScsJ2xpbmVhcnNjYWxlJywnZGF0ZSddLmluY2x1ZGVzKGo/LmFuc3dlclR5cGUpICYmIHsgJ21hdGNoZWRDb3VudCc6dGhpcy5mYi5jb250cm9sKHBhcnNlSW50KGsubWF0Y2hlZENvdW50KSksJ25vdE1hdGNoZWRDb3VudCc6dGhpcy5mYi5jb250cm9sKHBhcnNlSW50KGsubm90TWF0Y2hlZENvdW50KSl9KSxcclxuICAgICAgICAgICAgICAuLi4oWydtdWx0aXBsZWNob2ljZXNpbmdsZScsJ3llcy9ubycsJ211bHRpcGxlY2hvaWNlbXVsdGlwbGUnXS5pbmNsdWRlcyhqPy5hbnN3ZXJUeXBlKSA/IHsgJ2NvbXBsaWFuY2VTY29yZSc6IHRoaXMuZmIuY29udHJvbChwYXJzZUludChrPy5jb21wbGlhbmNlU2NvcmUpKSB9IDoge30pLFxyXG4gICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICBcInJ1bkFJRmVhdHVyZXNcIjp0aGlzLmZiLmFycmF5KGs/LnJ1bkFJRmVhdHVyZXMgfHwgW10pLFxyXG4gICAgICAgICAgICAncnVuQUlEZXNjcmlwdGlvbic6IHRoaXMuZmIuY29udHJvbChrPy5ydW5BSURlc2NyaXB0aW9uIHx8ICcnKSxcclxuICAgICAgICAgICAgLi4uKFsnZGF0ZSddLmluY2x1ZGVzKGo/LmFuc3dlclR5cGUpICYmIHtcclxuICAgICAgICAgICAgXCJxblN0YXJ0RGF0ZVwiOiBbe1xyXG4gICAgICAgICAgICAgIFwic3RhcnREYXRlXCI6IHRoaXMuZGF5anMoay5zdGFydERhdGUsJ0RELU1NLVlZWVknKSxcclxuICAgICAgICAgICAgICBcImVuZERhdGVcIjogdGhpcy5kYXlqcyhrLnN0YXJ0RGF0ZSwnREQtTU0tWVlZWScpXHJcbiAgICAgICAgICAgIH1dLFxyXG4gICAgICAgICAgICBcInFuRW5kRGF0ZVwiOiBbe1xyXG4gICAgICAgICAgICAgIFwic3RhcnREYXRlXCI6IHRoaXMuZGF5anMoay5lbmREYXRlLCdERC1NTS1ZWVlZJyksXHJcbiAgICAgICAgICAgICAgXCJlbmREYXRlXCI6IHRoaXMuZGF5anMoay5lbmREYXRlLCdERC1NTS1ZWVlZJylcclxuICAgICAgICAgICAgfV1cclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgfSwgKFsnbGluZWFyc2NhbGUnXS5pbmNsdWRlcyhqPy5hbnN3ZXJUeXBlKSA/IHsgdmFsaWRhdG9yczogW3JhbmdlVmFsaWRhdG9yKCldIH0gOiB7fSkpKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICAvLyBpZih0eXBlb2Ygai5xdWVzdGlvblJlZmVyZW5jZUltYWdlID09ICdzdHJpbmcnICYmIGoucXVlc3Rpb25SZWZlcmVuY2VJbWFnZSAhPSAnJykge1xyXG4gICAgICAgIC8vICAgai5tdWx0aVF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UgPSBbe2ltYWdlVVJMOmoucXVlc3Rpb25SZWZlcmVuY2VJbWFnZSxydW5BSTpmYWxzZX1dO1xyXG4gICAgICAgIC8vIH1cclxuICAgICAgICBxdWVzdGlvbnMucHVzaChcclxuICAgICAgICAgIHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICAgICAgICBcInFub1wiOiB0aGlzLmZiLmNvbnRyb2wocXVlc3Rpb25JbmRleCsxKSxcclxuICAgICAgICAgICAgJ3FuYW1lJzogdGhpcy5mYi5jb250cm9sKHt2YWx1ZTpqPy5xbmFtZSxkaXNhYmxlZDpydW5BSS5sZW5ndGh9LCBbVmFsaWRhdG9ycy5yZXF1aXJlZCxub1doaXRlc3BhY2VWYWxpZGF0b3IoKV0pLFxyXG4gICAgICAgICAgICBcIm9sZFFuYW1lXCI6dGhpcy5mYi5jb250cm9sKGo/LnFuYW1lLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCxub1doaXRlc3BhY2VWYWxpZGF0b3IoKV0pLFxyXG4gICAgICAgICAgICAnYW5zd2VyVHlwZSc6IHRoaXMuZmIuY29udHJvbCh7dmFsdWU6aj8uYW5zd2VyVHlwZSxkaXNhYmxlZDpydW5BSS5sZW5ndGh9LCB0aGlzLmFsbG93ZWRWYWx1ZXNWYWxpZGF0b3IoW1wiZGVzY3JpcHRpdmVcIiwgXCJ5ZXMvbm9cIiwgXCJtdWx0aXBsZWNob2ljZXNpbmdsZVwiLCBcIm11bHRpcGxlY2hvaWNlbXVsdGlwbGVcIiwgXCJpbWFnZVwiLCBcInZpZGVvXCIsXCJkZXNjcmlwdGl2ZUltYWdlXCIsXCJtdWx0aXBsZUltYWdlXCIsJ2RhdGUnLCdsaW5lYXJzY2FsZScsJ3RpbWUnLCdpbWFnZS92aWRlbycsJ2Ryb3Bkb3duJ10pKSxcclxuICAgICAgICAgICAgLi4uKCFbJ2Rlc2NyaXB0aXZlJ10uaW5jbHVkZXMoaj8uYW5zd2VyVHlwZSkpID8geyAnYW5zd2Vycyc6IChbJ2ltYWdlJywnZGVzY3JpcHRpdmVJbWFnZScsICd2aWRlbycsJ211bHRpcGxlSW1hZ2UnLCd0aW1lJywnbGluZWFyc2NhbGUnLCdkYXRlJywnaW1hZ2UvdmlkZW8nXS5pbmNsdWRlcyhqPy5hbnN3ZXJUeXBlKSkgPyBhbnN3ZXJbMF0gOiB0aGlzLmZiLmFycmF5KGFuc3dlcixbdW5pcXVlU3RyaW5nVmFsaWRhdG9yKCldKSB9IDoge30sXHJcbiAgICAgICAgICAgICdydW5BSSc6IHRoaXMuZmIuY29udHJvbCh7dmFsdWU6KFsnaW1hZ2UnLCdkZXNjcmlwdGl2ZUltYWdlJyxcIm11bHRpcGxlSW1hZ2VcIl0uaW5jbHVkZXMoaj8uYW5zd2VyVHlwZSkpID8gKGo/LnJ1bkFJKSA/IHRydWUgOiBmYWxzZSA6IGZhbHNlLGRpc2FibGVkOiAhIXJ1bkFJLmxlbmd0aH0sIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXHJcbiAgICAgICAgICAgICdydW5BSURlZmF1bHQnOnRoaXMuZmIuY29udHJvbChqPy5ydW5BSSB8fCBmYWxzZSksXHJcbiAgICAgICAgICAgICdhbGxvd1VwbG9hZGZyb21HYWxsZXJ5JzogdGhpcy5mYi5jb250cm9sKHt2YWx1ZTooWydpbWFnZScsJ2Rlc2NyaXB0aXZlSW1hZ2UnLCd2aWRlbycsJ211bHRpcGxlSW1hZ2UnLCdpbWFnZS92aWRlbyddLmluY2x1ZGVzKGo/LmFuc3dlclR5cGUpKSA/IChqPy5hbGxvd1VwbG9hZGZyb21HYWxsZXJ5KSA/IHRydWUgOiBmYWxzZSA6IGZhbHNlLGRpc2FibGVkOiEhcnVuQUkubGVuZ3RofSwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcclxuICAgICAgICAgICAgLy8gJ3J1bkFJRGVzY3JpcHRpb24nOiB0aGlzLmZiLmNvbnRyb2woKFsnaW1hZ2UnLCdkZXNjcmlwdGl2ZUltYWdlJywnbXVsdGlwbGVJbWFnZSddLmluY2x1ZGVzKGo/LmFuc3dlclR5cGUpKSA/IChqPy5ydW5BSURlc2NyaXB0aW9uKSA6ICcnKSxcclxuICAgICAgICAgICAgJ2xpbmtUeXBlJzogdGhpcy5mYi5jb250cm9sKGo/LmxpbmtUeXBlKSxcclxuICAgICAgICAgICAgXCJtdWx0aVF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2VcIjp0aGlzLmZiLmFycmF5KGo/Lm11bHRpUXVlc3Rpb25SZWZlcmVuY2VJbWFnZSB8fCBbXSksXHJcbiAgICAgICAgICAgIC8vIFwibXVsdGlRdWVzdGlvblJlZmVyZW5jZUltYWdlXCI6IFtbaj8ucXVlc3Rpb25SZWZlcmVuY2VJbWFnZSA/PyAnJ11dLFxyXG4gICAgICAgICAgICAnZGVzY3JpcHRpdmV0eXBlJzogdGhpcy5mYi5jb250cm9sKHsgdmFsdWU6IGo/LmRlc2NyaXB0aXZldHlwZSxkaXNhYmxlZDohIXJ1bkFJLmxlbmd0aH0pLFxyXG4gICAgICAgICAgICBxdWVzdGlvblJlZmVyZW5jZUltYWdlOmo/LnF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UgPz8gJycsXHJcbiAgICAgICAgICAgIFwicnVuQUlGZWF0dXJlc1wiOnRoaXMuZmIuYXJyYXkoaj8ucnVuQUlGZWF0dXJlcyB8fCBbXSksXHJcbiAgICAgICAgICAgIGRpc2FibGVSdW5BSTpydW5BSS5sZW5ndGggPyB0cnVlIDogZmFsc2UsXHJcbiAgICAgICAgICAgICdydW5BSURlc2NyaXB0aW9uJzogdGhpcy5mYi5jb250cm9sKGo/LnJ1bkFJRGVzY3JpcHRpb24gfHwgJycpLFxyXG4gICAgICAgICAgICBcInVuaXF1ZXFub1wiOiB0aGlzLmZiLmNvbnRyb2woaj8udW5pcXVlcW5vIHx8IDApLFxyXG4gICAgICAgICAgICBcInVuaXF1ZXFpZFwiOiB0aGlzLmZiLmNvbnRyb2woaj8udW5pcXVlcWlkIHx8ICcnKSxcclxuICAgICAgICAgICAgJ2FsbG93TXVsdGlwbGUnOnRoaXMuZmIuY29udHJvbChqPy5hbGxvd011bHRpcGxlID8/IGZhbHNlKSxcclxuICAgICAgICAgICAgJ2NvbXBsaWFuY2UnOnRoaXMuZmIuY29udHJvbChqPy5jb21wbGlhbmNlID8/IGZhbHNlKSxcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICk7XHJcbiAgICAgIH0pO1xyXG4gICAgICBzZWN0aW9ucy5wdXNoKFxyXG4gICAgICAgIHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICAgICAgXCJuYW1lXCI6IHRoaXMuZmIuY29udHJvbChpPy5uYW1lLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5taW5MZW5ndGgoMSksbm9XaGl0ZXNwYWNlVmFsaWRhdG9yKCldKSxcclxuICAgICAgICAgIFwib2xkTmFtZVwiOnRoaXMuZmIuY29udHJvbChpPy5uYW1lLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5taW5MZW5ndGgoMSksbm9XaGl0ZXNwYWNlVmFsaWRhdG9yKCldKSxcclxuICAgICAgICAgIFwic2VjdGlvbk51bWJlclwiOiB0aGlzLmZiLmNvbnRyb2woc2VjdGlvbk51bWJlciksXHJcbiAgICAgICAgICBcInF1ZXN0aW9uc1wiOiB0aGlzLmZiLmFycmF5KHF1ZXN0aW9ucyksXHJcbiAgICAgICAgICBcIm1heFF1ZXN0aW9uTnVtYmVyXCI6IHRoaXMuZmIuY29udHJvbChpPy5tYXhRdWVzdGlvbk51bWJlciB8fCAwKSxcclxuICAgICAgfSkpO1xyXG4gICAgICBxdWVzdGlvbnMgPSBbXTtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuQ2hlY2tsaXN0Rm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICAnY2hlY2tsaXN0TmFtZSc6IHRoaXMuZmIuY29udHJvbCh0aGlzLmdldG9iamVjdC5jaGVja0xpc3ROYW1lLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCxub1doaXRlc3BhY2VWYWxpZGF0b3IoKV0pLFxyXG4gICAgICAnY2hlY2tsaXN0RGVzY3JpcHRpb24nOiB0aGlzLmZiLmNvbnRyb2wodGhpcy5nZXRvYmplY3QuY2hlY2tMaXN0RGVzY3JpcHRpb24pLFxyXG4gICAgICAnc2VjdGlvbnMnOiB0aGlzLmZiLmFycmF5KHNlY3Rpb25zKVxyXG4gICAgfSk7XHJcbiAgICBzZWN0aW9uc2FycmF5LmZvckVhY2goKF86IGFueSwgc2VjdGlvbkluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgdGhpcy5nZXRvYmplY3Quc2VjdGlvbnNbc2VjdGlvbkluZGV4XT8ucXVlc3Rpb25zPy5mb3JFYWNoKChfOiBhbnksIHF1ZXN0aW9uSW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgICAgIGlmICh0aGlzLmhhc1ZhbGlkYXRpb25FbmFibGVkKHNlY3Rpb25JbmRleCwgcXVlc3Rpb25JbmRleCkpIHtcclxuICAgICAgICAgICgoKCh0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheSkuYXQoc2VjdGlvbkluZGV4KSBhcyBGb3JtR3JvdXApLmdldCgncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChxdWVzdGlvbkluZGV4KSBhcyBGb3JtR3JvdXApPy5nZXQoJ2NvbXBsaWFuY2UnKT8ucGF0Y2hWYWx1ZShmYWxzZSk7XHJcbiAgICAgICAgICAoKCgodGhpcy5DaGVja2xpc3RGb3JtLmdldCgnc2VjdGlvbnMnKSBhcyBGb3JtQXJyYXkpLmF0KHNlY3Rpb25JbmRleCkgYXMgRm9ybUdyb3VwKS5nZXQoJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheSkuYXQocXVlc3Rpb25JbmRleCkgYXMgRm9ybUdyb3VwKT8uZ2V0KCdjb21wbGlhbmNlJyk/LmRpc2FibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuQ2hlY2tsaXN0Rm9ybS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICB0aGlzLmNoZWNrbGlzdExvYWRpbmcgPSBmYWxzZTtcclxuXHJcbiAgICBjb25zb2xlLmxvZyh0aGlzLkNoZWNrbGlzdEZvcm0udmFsdWUpXHJcblxyXG4gICAgLy8gY29uc29sZS5sb2codGhpcy5DaGVja2xpc3RGb3JtLCdmb3JtJyk7XHJcbiAgfVxyXG5cclxuICBpbml0Q2hlY2tsaXN0KCkge1xyXG4gICAgdGhpcy5DaGVja2xpc3RGb3JtID0gdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgICdjaGVja2xpc3ROYW1lJzogdGhpcy5mYi5jb250cm9sKCcnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCxub1doaXRlc3BhY2VWYWxpZGF0b3IoKV0pLFxyXG4gICAgICAnY2hlY2tsaXN0RGVzY3JpcHRpb24nOiB0aGlzLmZiLmNvbnRyb2woJycpLFxyXG4gICAgICAnc2VjdGlvbnMnOiB0aGlzLmZiLmFycmF5KFtcclxuICAgICAgICB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgICAgIFwibmFtZVwiOiB0aGlzLmZiLmNvbnRyb2woJ1NlY3Rpb24gMScsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLFZhbGlkYXRvcnMubWluTGVuZ3RoKDEpLG5vV2hpdGVzcGFjZVZhbGlkYXRvcigpXSksXHJcbiAgICAgICAgICBcInNlY3Rpb25OdW1iZXJcIjogdGhpcy5mYi5jb250cm9sKDEsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXHJcbiAgICAgICAgICBcInF1ZXN0aW9uc1wiOiB0aGlzLmZiLmFycmF5KFtcclxuICAgICAgICAgICAgdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgICAgICAgICAgXCJxbm9cIjogdGhpcy5mYi5jb250cm9sKDEsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXHJcbiAgICAgICAgICAgICAgJ3FuYW1lJzogdGhpcy5mYi5jb250cm9sKCcnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCxub1doaXRlc3BhY2VWYWxpZGF0b3IoKV0pLFxyXG4gICAgICAgICAgICAgICdhbnN3ZXJUeXBlJzogdGhpcy5mYi5jb250cm9sKCdkZXNjcmlwdGl2ZScsXHJcbiAgICAgICAgICAgICAgICB0aGlzLmFsbG93ZWRWYWx1ZXNWYWxpZGF0b3IoW1wiZGVzY3JpcHRpdmVcIiwgXCJ5ZXMvbm9cIiwgXCJtdWx0aXBsZWNob2ljZXNpbmdsZVwiLCBcIm11bHRpcGxlY2hvaWNlbXVsdGlwbGVcIixcImRlc2NyaXB0aXZlSW1hZ2VcIiwgXCJpbWFnZVwiLCBcInZpZGVvXCIsJ211bHRpcGxlSW1hZ2UnLCdkYXRlJywnbGluZWFyc2NhbGUnLCd0aW1lJywnaW1hZ2UvdmlkZW8nLCdkcm9wZG93biddKSksXHJcbiAgICAgICAgICAgICAgJ3J1bkFJJzogdGhpcy5mYi5jb250cm9sKGZhbHNlLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxyXG4gICAgICAgICAgICAgICdydW5BSURlc2NyaXB0aW9uJzogdGhpcy5mYi5jb250cm9sKCcnKSxcclxuICAgICAgICAgICAgICAnYWxsb3dVcGxvYWRmcm9tR2FsbGVyeSc6IHRoaXMuZmIuY29udHJvbChmYWxzZSwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcclxuICAgICAgICAgICAgICAnbGlua1R5cGUnOiB0aGlzLmZiLmNvbnRyb2woZmFsc2UsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXHJcbiAgICAgICAgICAgICAgXCJtdWx0aVF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2VcIjp0aGlzLmZiLmFycmF5KFtdKSxcclxuICAgICAgICAgICAgICAnZGVzY3JpcHRpdmV0eXBlJzp0aGlzLmZiLmNvbnRyb2woJ3RleHQnKSxcclxuICAgICAgICAgICAgICAncXVlc3Rpb25SZWZlcmVuY2VJbWFnZSc6dGhpcy5mYi5jb250cm9sKCcnKSwgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgIFwicnVuQUlGZWF0dXJlc1wiOnRoaXMuZmIuYXJyYXkoW10pLFxyXG4gICAgICAgICAgICAgIFwidW5pcXVlcW5vXCI6IHRoaXMuZmIuY29udHJvbCgwKSxcclxuICAgICAgICAgICAgICBcInVuaXF1ZXFpZFwiOiB0aGlzLmZiLmNvbnRyb2woJycpLFxyXG4gICAgICAgICAgICAgICdhbGxvd011bHRpcGxlJzp0aGlzLmZiLmNvbnRyb2woZmFsc2UpLFxyXG4gICAgICAgICAgICAgICdjb21wbGlhbmNlJzp0aGlzLmZiLmNvbnRyb2woZmFsc2UpLFxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgXSksXHJcbiAgICAgICAgICBcIm1heFF1ZXN0aW9uTnVtYmVyXCI6IHRoaXMuZmIuY29udHJvbCgwKSxcclxuICAgICAgICB9KVxyXG4gICAgICBdKVxyXG4gICAgfSk7XHJcbiAgICB0aGlzLmNoZWNrbGlzdExvYWRpbmcgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIGFsbG93ZWRWYWx1ZXNWYWxpZGF0b3IoYWxsb3dlZFZhbHVlczogc3RyaW5nW10pIHtcclxuICAgIHJldHVybiAoY29udHJvbDogYW55KSA9PiB7XHJcbiAgICAgIGNvbnN0IHZhbHVlID0gY29udHJvbC52YWx1ZTtcclxuICAgICAgaWYgKHZhbHVlICYmIGFsbG93ZWRWYWx1ZXMuaW5kZXhPZih2YWx1ZSkgPT09IC0xKSB7XHJcbiAgICAgICAgcmV0dXJuIHsgaW52YWxpZFZhbHVlOiB0cnVlIH07XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgYWRkTmV3U2VjdGlvbigpIHtcclxuICAgIGxldCBzZWN0aW9ucyA9IHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5O1xyXG4gICAgbGV0IHNlY3Rpb25MZW5ndGggPSBzZWN0aW9ucy5sZW5ndGg7XHJcbiAgICBpZih0aGlzLm1heFNlY3Rpb25OdW1iZXIpe1xyXG4gICAgICB0aGlzLm1heFNlY3Rpb25OdW1iZXIrKztcclxuICAgIH1lbHNle1xyXG4gICAgICB0aGlzLm1heFNlY3Rpb25OdW1iZXIgPSBNYXRoLm1heCguLi5zZWN0aW9ucy52YWx1ZS5tYXAoKGVsZTphbnkpID0+IGVsZS5zZWN0aW9uTnVtYmVyICkpKzE7XHJcbiAgICB9XHJcbiAgICAvLyBjb25zb2xlLmxvZyhcInRoaXMubWF4U2VjdGlvbk51bWJlciA9PlwiLCB0aGlzLm1heFNlY3Rpb25OdW1iZXIpO1xyXG5cclxuICAgICh0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheSkucHVzaChcclxuICAgICAgdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgICAgXCJuYW1lXCI6IHRoaXMuZmIuY29udHJvbChgU2VjdGlvbiAke3NlY3Rpb25MZW5ndGggKyAxfWAsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLFZhbGlkYXRvcnMubWluTGVuZ3RoKDEpLG5vV2hpdGVzcGFjZVZhbGlkYXRvcigpXSksXHJcbiAgICAgICAgXCJzZWN0aW9uTnVtYmVyXCI6IHRoaXMuZmIuY29udHJvbCh0aGlzLm1heFNlY3Rpb25OdW1iZXIsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXHJcbiAgICAgICAgLy8gXCJzZWN0aW9uTnVtYmVyXCI6IHRoaXMuZmIuY29udHJvbChmaW5kU2VjTnVtICsgMSwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcclxuICAgICAgICBcInF1ZXN0aW9uc1wiOiB0aGlzLmZiLmFycmF5KFtcclxuICAgICAgICAgIHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICAgICAgICBcInFub1wiOiB0aGlzLmZiLmNvbnRyb2woMSwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcclxuICAgICAgICAgICAgJ3FuYW1lJzogdGhpcy5mYi5jb250cm9sKCcnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCxub1doaXRlc3BhY2VWYWxpZGF0b3IoKV0pLFxyXG4gICAgICAgICAgICAnYW5zd2VyVHlwZSc6IHRoaXMuZmIuY29udHJvbCgnZGVzY3JpcHRpdmUnLFxyXG4gICAgICAgICAgICAgIHRoaXMuYWxsb3dlZFZhbHVlc1ZhbGlkYXRvcihbXCJkZXNjcmlwdGl2ZVwiLCBcInllcy9ub1wiLCBcIm11bHRpcGxlY2hvaWNlc2luZ2xlXCIsIFwibXVsdGlwbGVjaG9pY2VtdWx0aXBsZVwiLFwiZGVzY3JpcHRpdmVJbWFnZVwiLCBcImltYWdlXCIsIFwidmlkZW9cIiwnbXVsdGlwbGVJbWFnZScsJ2RhdGUnLCdsaW5lYXJzY2FsZScsJ3RpbWUnLCdpbWFnZS92aWRlbycsJ2Ryb3Bkb3duJ10pKSxcclxuICAgICAgICAgICAgJ3J1bkFJJzogdGhpcy5mYi5jb250cm9sKGZhbHNlLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxyXG4gICAgICAgICAgICAncnVuQUlEZXNjcmlwdGlvbic6IHRoaXMuZmIuY29udHJvbCgnJyksXHJcbiAgICAgICAgICAgICdhbGxvd1VwbG9hZGZyb21HYWxsZXJ5JzogdGhpcy5mYi5jb250cm9sKGZhbHNlLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxyXG4gICAgICAgICAgICAnbGlua1R5cGUnOiB0aGlzLmZiLmNvbnRyb2woZmFsc2UsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXHJcbiAgICAgICAgICAgIFwibXVsdGlRdWVzdGlvblJlZmVyZW5jZUltYWdlXCI6dGhpcy5mYi5hcnJheShbXSksXHJcbiAgICAgICAgICAgICdkZXNjcmlwdGl2ZXR5cGUnOnRoaXMuZmIuY29udHJvbCgndGV4dCcpLFxyXG4gICAgICAgICAgICAncXVlc3Rpb25SZWZlcmVuY2VJbWFnZSc6dGhpcy5mYi5jb250cm9sKCcnKSxcclxuICAgICAgICAgICAgJ3J1bkFJRmVhdHVyZXMnOnRoaXMuZmIuYXJyYXkoW10pLCAgICAgICAgICAgIFxyXG4gICAgICAgICAgICBcInVuaXF1ZXFub1wiOiB0aGlzLmZiLmNvbnRyb2woMCksXHJcbiAgICAgICAgICAgIFwidW5pcXVlcWlkXCI6IHRoaXMuZmIuY29udHJvbCgnJyksXHJcbiAgICAgICAgICAgICdhbGxvd011bHRpcGxlJzp0aGlzLmZiLmNvbnRyb2woZmFsc2UpLFxyXG4gICAgICAgICAgICAnY29tcGxpYW5jZSc6dGhpcy5mYi5jb250cm9sKGZhbHNlKVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICBdKSxcclxuICAgICAgICBcIm1heFF1ZXN0aW9uTnVtYmVyXCI6IHRoaXMuZmIuY29udHJvbCgwKSxcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgICBpZihzZWN0aW9uTGVuZ3RoID09IDApIHtcclxuICAgICAgdGhpcy5zaG93ID0gLTE7XHJcbiAgICB9XHJcbiAgICB0aGlzLmFjY29yZGlhbihzZWN0aW9uTGVuZ3RoKTtcclxuICAgIHRoaXMuc3dhbFRvYXN0KCdOZXcgc2VjdGlvbiBhZGRlZCEnKTtcclxuICB9XHJcblxyXG4gIHJlbW92ZVNlY3Rpb24oc2VjdGlvbkluZGV4OiBudW1iZXIpIHtcclxuICAgICh0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheSkucmVtb3ZlQXQoc2VjdGlvbkluZGV4KTtcclxuICB9XHJcblxyXG4gIGRyYWdEcm9wKHNlY3Rpb25JbmRleDogYW55LCBldmVudDogQ2RrRHJhZ0Ryb3A8YW55W10+KSB7XHJcbiAgICBpZiAoZXZlbnQucHJldmlvdXNDb250YWluZXIgPT09IGV2ZW50LmNvbnRhaW5lcikge1xyXG4gICAgICBtb3ZlSXRlbUluQXJyYXkoZXZlbnQuY29udGFpbmVyLmRhdGEsIGV2ZW50LnByZXZpb3VzSW5kZXgsIGV2ZW50LmN1cnJlbnRJbmRleCk7XHJcbiAgICAgIC8vIHRoaXMudXBkYXRlbGlua2VkUXVlc3Rpb25ObyhzZWN0aW9uSW5kZXgsZXZlbnQucHJldmlvdXNJbmRleCxldmVudC5jdXJyZW50SW5kZXgpXHJcbiAgICAgIHRoaXMudXBkYXRlUXVlc3Rpb25Rbm9zKHNlY3Rpb25JbmRleCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0cmFuc2ZlckFycmF5SXRlbShcclxuICAgICAgICBldmVudC5wcmV2aW91c0NvbnRhaW5lci5kYXRhLFxyXG4gICAgICAgIGV2ZW50LmNvbnRhaW5lci5kYXRhLFxyXG4gICAgICAgIGV2ZW50LnByZXZpb3VzSW5kZXgsXHJcbiAgICAgICAgZXZlbnQuY3VycmVudEluZGV4XHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB1cGRhdGVsaW5rZWRRdWVzdGlvbk5vKHNlY0lkeDpudW1iZXIscHJldklkeDpudW1iZXIscW5JZHg6bnVtYmVyKSB7XHJcbiAgICBsZXQgcXVlc3Rpb25zID0gKHRoaXMuZ2V0U2VjdGlvbkZvcm1BcnJheSgpLmF0KHNlY0lkeCkuZ2V0KCdxdWVzdGlvbnMnKSBhcyBGb3JtQXJyYXkpO1xyXG4gICAgZm9yKGxldCBpPTA7aTxxdWVzdGlvbnMubGVuZ3RoLTE7aSsrKSB7XHJcbiAgICAgIGxldCBhbnN3ZXJzID0gKChxdWVzdGlvbnMuYXQoaSkgYXMgRm9ybUdyb3VwKS5nZXQoJ2Fuc3dlcnMnKSBhcyBGb3JtQXJyYXkpO1xyXG4gICAgICBmb3IobGV0IGo9MDtqPGFuc3dlcnM/Lmxlbmd0aCAtMTtqKyspIHtcclxuICAgICAgICBsZXQgbGlua2VkID0gKGFuc3dlcnMuYXQoaikgYXMgRm9ybUdyb3VwKS5nZXQoJ3Nob3dMaW5rZWQnKT8udmFsdWU7XHJcbiAgICAgICAgaWYobGlua2VkKSB7XHJcbiAgICAgICAgICBsZXQgbGlua2VkTm8gPSAoYW5zd2Vycy5hdChqKSBhcyBGb3JtR3JvdXApLmdldCgnbGlua2VkUXVlc3Rpb24nKT8udmFsdWU7XHJcbiAgICAgICAgICBpZihsaW5rZWRObyA9PSBwcmV2SWR4ICsgMSkge1xyXG4gICAgICAgICAgICAoYW5zd2Vycy5hdChqKSBhcyBGb3JtR3JvdXApLmdldCgnbGlua2VkUXVlc3Rpb24nKT8uc2V0VmFsdWUocW5JZHggKyAxKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGVsc2UgaWYobGlua2VkTm8gPD0gcW5JZHggKyAxKSB7XHJcbiAgICAgICAgICAgIChhbnN3ZXJzLmF0KGopIGFzIEZvcm1Hcm91cCkuZ2V0KCdsaW5rZWRRdWVzdGlvbicpPy5zZXRWYWx1ZShsaW5rZWRObyAtIDEpO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICB9XHJcblxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgYW5zd2VyVHlwZVNlbGVjdGlvbihzZWN0aW9uSW5kZXg6IGFueSwgcXVlc3Rpb25JbmRleDogYW55LCBldmVudDogYW55KSB7XHJcbiAgICBsZXQgc2VsZWN0dmFsdWU6IHN0cmluZyA9IGV2ZW50LnRhcmdldC52YWx1ZTtcclxuICAgIFxyXG4gICAgKCgoKCh0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheSlcclxuICAgICAgLmF0KHNlY3Rpb25JbmRleCkgYXMgRm9ybUdyb3VwKVxyXG4gICAgICAuZ2V0KCdxdWVzdGlvbnMnKSBhcyBGb3JtQXJyYXkpXHJcbiAgICAgIC5hdChxdWVzdGlvbkluZGV4KSBhcyBGb3JtR3JvdXApLmdldChcIm11bHRpUXVlc3Rpb25SZWZlcmVuY2VJbWFnZVwiKSBhcyBGb3JtQXJyYXkpPy5jbGVhcigpO1xyXG4gICAgaWYoIVsnZGVzY3JpcHRpdmUnLCdtdWx0aXBsZUltYWdlJ10uaW5jbHVkZXMoc2VsZWN0dmFsdWUpKSB7XHJcbiAgICAgICAoKCgodGhpcy5DaGVja2xpc3RGb3JtLmdldCgnc2VjdGlvbnMnKSBhcyBGb3JtQXJyYXkpXHJcbiAgICAgIC5hdChzZWN0aW9uSW5kZXgpIGFzIEZvcm1Hcm91cClcclxuICAgICAgLmdldCgncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5KVxyXG4gICAgICAuYXQocXVlc3Rpb25JbmRleCkgYXMgRm9ybUdyb3VwKS5nZXQoJ2Rlc2NyaXB0aXZldHlwZScpPy5zZXRWYWx1ZSgnJyk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgKCgoKHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5KVxyXG4gICAgICAuYXQoc2VjdGlvbkluZGV4KSBhcyBGb3JtR3JvdXApXHJcbiAgICAgIC5nZXQoJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheSlcclxuICAgICAgLmF0KHF1ZXN0aW9uSW5kZXgpIGFzIEZvcm1Hcm91cCkuZ2V0KCdkZXNjcmlwdGl2ZXR5cGUnKT8uc2V0VmFsdWUoJ3RleHQnKTtcclxuICAgIH1cclxuICAgICgoKCh0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheSlcclxuICAgICAgLmF0KHNlY3Rpb25JbmRleCkgYXMgRm9ybUdyb3VwKVxyXG4gICAgICAuZ2V0KCdxdWVzdGlvbnMnKSBhcyBGb3JtQXJyYXkpXHJcbiAgICAgIC5hdChxdWVzdGlvbkluZGV4KSBhcyBGb3JtR3JvdXApLmdldCgnY29tcGxpYW5jZScpPy5zZXRWYWx1ZShmYWxzZSk7XHJcbiAgICB0aGlzLnJlbW92ZVF1ZXN0aW9uTGlua2VkKHNlY3Rpb25JbmRleCxxdWVzdGlvbkluZGV4KTtcclxuICAgIGlmIChbJ3llcy9ubycsJ211bHRpcGxlY2hvaWNlc2luZ2xlJywnbXVsdGlwbGVjaG9pY2VtdWx0aXBsZScsJ2Ryb3Bkb3duJ10uaW5jbHVkZXMoc2VsZWN0dmFsdWUpKSB7XHJcbiAgICAgIHRoaXMuc2V0QW5zd2VyQXNGb3JtQXJyYXkoc2VjdGlvbkluZGV4LCBxdWVzdGlvbkluZGV4LHNlbGVjdHZhbHVlKTtcclxuICAgIH0gZWxzZSBpZiAoc2VsZWN0dmFsdWUgPT0gJ2Rlc2NyaXB0aXZlJykge1xyXG4gICAgfSBlbHNlIGlmIChbJ2Rlc2NyaXB0aXZlSW1hZ2UnLCdpbWFnZScsJ3ZpZGVvJywnbXVsdGlwbGVJbWFnZScsLCdpbWFnZS92aWRlbyddLmluY2x1ZGVzKHNlbGVjdHZhbHVlKSkge1xyXG4gICAgICB0aGlzLnNldEFuc3dlckFzRm9ybUdyb3VwKHNlY3Rpb25JbmRleCwgcXVlc3Rpb25JbmRleCwgc2VsZWN0dmFsdWUpO1xyXG4gICAgfSBlbHNlIGlmIChbJ2RhdGUnLCd0aW1lJywnbGluZWFyc2NhbGUnXS5pbmNsdWRlcyhzZWxlY3R2YWx1ZSkpIHsgXHJcbiAgICAgIHRoaXMuc2V0QW5zd2VyQXNUaW1lKHNlY3Rpb25JbmRleCwgcXVlc3Rpb25JbmRleCwgc2VsZWN0dmFsdWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0QW5zd2VyQXNUaW1lKHNlY0lkeDpudW1iZXIscW5JZHg6bnVtYmVyLHR5cGU6c3RyaW5nKSB7XHJcbiAgICBsZXQgcXVlc3Rpb24gPSAoKCgodGhpcy5DaGVja2xpc3RGb3JtLmdldCgnc2VjdGlvbnMnKSBhcyBGb3JtQXJyYXkpXHJcbiAgICAgIC5hdChzZWNJZHgpIGFzIEZvcm1Hcm91cClcclxuICAgICAgLmdldCgncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5KVxyXG4gICAgICAuYXQocW5JZHgpIGFzIEZvcm1Hcm91cCk7XHJcbiAgICAgIGlmKHR5cGUgPT0gJ3RpbWUnKSB7XHJcbiAgICAgICAgcXVlc3Rpb24uc2V0Q29udHJvbCgnYW5zd2VycycsXHJcbiAgICAgICAgICAgdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgICAgICAgICAnYW5zd2VyJzogdGhpcy5mYi5jb250cm9sKCcnKSxcclxuICAgICAgICAgICAgICdhbnN3ZXJvcHRpb25OdW1iZXInOiB0aGlzLmZiLmNvbnRyb2woMSksXHJcbiAgICAgICAgICAgICAnc29wRmxhZyc6IHRoaXMuZmIuY29udHJvbChmYWxzZSksXHJcbiAgICAgICAgICAgICAndmFsaWRhdGlvbic6IHRoaXMuZmIuY29udHJvbChmYWxzZSksXHJcbiAgICAgICAgICAgICAndmFsaWRhdGlvblR5cGUnOiB0aGlzLmZiLmNvbnRyb2woJycpLFxyXG4gICAgICAgICAgICAgJ2xpbmtlZFF1ZXN0aW9uJzp0aGlzLmZiLmNvbnRyb2woMCksXHJcbiAgICAgICAgICAgICAnc2hvd0xpbmtlZCc6dGhpcy5mYi5jb250cm9sKGZhbHNlKSxcclxuICAgICAgICAgICAgIFwibXVsdGlSZWZlcmVuY2VJbWFnZVwiOiB0aGlzLmZiLmFycmF5KFtdKSxcclxuICAgICAgICAgICAgICdydW5BSSc6IHRoaXMuZmIuY29udHJvbChmYWxzZSksXHJcbiAgICAgICAgICAgICAnYWxsb3dVcGxvYWRmcm9tR2FsbGVyeSc6IHRoaXMuZmIuY29udHJvbChmYWxzZSksXHJcbiAgICAgICAgICAgICAnZGVzY3JpcHRpdmV0eXBlJzp0aGlzLmZiLmNvbnRyb2woJycpLFxyXG4gICAgICAgICAgICAgJ3J1bkFJRmVhdHVyZXMnOnRoaXMuZmIuYXJyYXkoW10pLFxyXG4gICAgICAgICAgICAgJ3J1bkFJRGVzY3JpcHRpb24nOiB0aGlzLmZiLmNvbnRyb2woJycpLFxyXG4gICAgICAgICAgIH0pLFxyXG4gICAgICAgICApO1xyXG4gICAgICB9IGVsc2UgaWYodHlwZSA9PSAnbGluZWFyc2NhbGUnKSB7XHJcbiAgICAgICAgY29uc3QgYW5zd2Vyc0dyb3VwID0gdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgICAgICAgICAnYW5zd2VyJzogdGhpcy5mYi5jb250cm9sKCcnKSxcclxuICAgICAgICAgICAgICdhbnN3ZXJvcHRpb25OdW1iZXInOiB0aGlzLmZiLmNvbnRyb2woMSksXHJcbiAgICAgICAgICAgICAnc29wRmxhZyc6IHRoaXMuZmIuY29udHJvbChmYWxzZSksXHJcbiAgICAgICAgICAgICAndmFsaWRhdGlvbic6IHRoaXMuZmIuY29udHJvbChmYWxzZSksXHJcbiAgICAgICAgICAgICAndmFsaWRhdGlvblR5cGUnOiB0aGlzLmZiLmNvbnRyb2woJycpLFxyXG4gICAgICAgICAgICAgJ2xpbmtlZFF1ZXN0aW9uJzp0aGlzLmZiLmNvbnRyb2woMCksXHJcbiAgICAgICAgICAgICAnc2hvd0xpbmtlZCc6dGhpcy5mYi5jb250cm9sKGZhbHNlKSxcclxuICAgICAgICAgICAgIFwibXVsdGlSZWZlcmVuY2VJbWFnZVwiOiB0aGlzLmZiLmFycmF5KFtdKSxcclxuICAgICAgICAgICAgICdydW5BSSc6IHRoaXMuZmIuY29udHJvbChmYWxzZSksXHJcbiAgICAgICAgICAgICAnYWxsb3dVcGxvYWRmcm9tR2FsbGVyeSc6IHRoaXMuZmIuY29udHJvbChmYWxzZSksXHJcbiAgICAgICAgICAgICAnZGVzY3JpcHRpdmV0eXBlJzp0aGlzLmZiLmNvbnRyb2woJ251bWJlcicpLFxyXG4gICAgICAgICAgICAgJ3JhbmdlU3RhcnQnOnRoaXMuZmIuY29udHJvbCgwKSxcclxuICAgICAgICAgICAgICdyYW5nZUVuZCc6dGhpcy5mYi5jb250cm9sKDEwMCksXHJcbiAgICAgICAgICAgICAncnVuQUlGZWF0dXJlcyc6dGhpcy5mYi5hcnJheShbXSksXHJcbiAgICAgICAgICAgICAncnVuQUlEZXNjcmlwdGlvbic6IHRoaXMuZmIuY29udHJvbCgnJyksXHJcbiAgICAgICAgICAgICAnbGluZWFyVHlwZSc6dGhpcy5mYi5jb250cm9sKCdudW1iZXInKSxcclxuICAgICAgICAgICAgICdtaW5WYWx1ZSc6dGhpcy5mYi5jb250cm9sKDApLFxyXG4gICAgICAgICAgICAgJ21heFZhbHVlJzp0aGlzLmZiLmNvbnRyb2woMTAwKSxcclxuICAgICAgICAgICAgICdtYXRjaGVkQ291bnQnOnRoaXMuZmIuY29udHJvbCgwKSxcclxuICAgICAgICAgICAgICdub3RNYXRjaGVkQ291bnQnOnRoaXMuZmIuY29udHJvbCgwKSxcclxuICAgICAgICAgICB9LCB7IHZhbGlkYXRvcnM6IHJhbmdlVmFsaWRhdG9yKCkgfSk7XHJcbiAgICAgICAgcXVlc3Rpb24uc2V0Q29udHJvbCgnYW5zd2VycycsIGFuc3dlcnNHcm91cCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcXVlc3Rpb24uc2V0Q29udHJvbCgnYW5zd2VycycsXHJcbiAgICAgICAgICAgdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgICAgICAgICAnYW5zd2VyJzogdGhpcy5mYi5jb250cm9sKCcnKSxcclxuICAgICAgICAgICAgICdhbnN3ZXJvcHRpb25OdW1iZXInOiB0aGlzLmZiLmNvbnRyb2woMSksXHJcbiAgICAgICAgICAgICAnc29wRmxhZyc6IHRoaXMuZmIuY29udHJvbChmYWxzZSksXHJcbiAgICAgICAgICAgICAndmFsaWRhdGlvbic6IHRoaXMuZmIuY29udHJvbChmYWxzZSksXHJcbiAgICAgICAgICAgICAndmFsaWRhdGlvblR5cGUnOiB0aGlzLmZiLmNvbnRyb2woJycpLFxyXG4gICAgICAgICAgICAgJ2xpbmtlZFF1ZXN0aW9uJzp0aGlzLmZiLmNvbnRyb2woMCksXHJcbiAgICAgICAgICAgICAnc2hvd0xpbmtlZCc6dGhpcy5mYi5jb250cm9sKGZhbHNlKSxcclxuICAgICAgICAgICAgIFwibXVsdGlSZWZlcmVuY2VJbWFnZVwiOiB0aGlzLmZiLmFycmF5KFtdKSxcclxuICAgICAgICAgICAgICdydW5BSSc6IHRoaXMuZmIuY29udHJvbChmYWxzZSksXHJcbiAgICAgICAgICAgICAnYWxsb3dVcGxvYWRmcm9tR2FsbGVyeSc6IHRoaXMuZmIuY29udHJvbChmYWxzZSksXHJcbiAgICAgICAgICAgICAnaGlzdG9yaWNEYXRlJzogdGhpcy5mYi5jb250cm9sKGZhbHNlKSxcclxuICAgICAgICAgICAgICdkZXNjcmlwdGl2ZXR5cGUnOnRoaXMuZmIuY29udHJvbCgnbnVtYmVyJyksXHJcbiAgICAgICAgICAgICAncnVuQUlGZWF0dXJlcyc6dGhpcy5mYi5hcnJheShbXSksXHJcbiAgICAgICAgICAgICAncnVuQUlEZXNjcmlwdGlvbic6IHRoaXMuZmIuY29udHJvbCgnJyksXHJcbiAgICAgICAgICAgICAnc3RhcnREYXRlJzogdGhpcy5mYi5jb250cm9sKHRoaXMuZGF5anMoKS5mb3JtYXQoJ0RELU1NLVlZWVknKSksXHJcbiAgICAgICAgICAgICAnZW5kRGF0ZSc6IHRoaXMuZmIuY29udHJvbCh0aGlzLmRheWpzKCkuZm9ybWF0KCdERC1NTS1ZWVlZJykpLFxyXG4gICAgICAgICAgICAgJ21hdGNoZWRDb3VudCc6dGhpcy5mYi5jb250cm9sKDApLFxyXG4gICAgICAgICAgICAgJ25vdE1hdGNoZWRDb3VudCc6dGhpcy5mYi5jb250cm9sKDApLFxyXG4gICAgICAgICAgICAgJ3FuU3RhcnREYXRlJzogdGhpcy5mYi5jb250cm9sKHt9KSxcclxuICAgICAgICAgICAgICdxbkVuZERhdGUnOiB0aGlzLmZiLmNvbnRyb2woe30pLFxyXG4gICAgICAgICAgIH0pLFxyXG4gICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICAgIFxyXG4gICAgXHJcblxyXG4gICAgLy8gY29uc29sZS5sb2cocXVlc3Rpb24pO1xyXG4gICAgXHJcbiAgfVxyXG5cclxuICByZW1vdmVRdWVzdGlvbkxpbmtlZChzZWNJZHg6YW55LHFuSWR4OmFueSkge1xyXG4gICAgbGV0IGFuc3dlcnMgPSAoKCh0aGlzLmdldFNlY3Rpb25Gb3JtQXJyYXkoKS5hdChzZWNJZHgpLmdldCgncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChxbklkeCkgYXMgRm9ybUdyb3VwKS5nZXQoJ2Fuc3dlcnMnKSBhcyBGb3JtQXJyYXkpO1xyXG4gICAgaWYoYW5zd2Vycykge1xyXG4gICAgICBmb3IobGV0IGk9MDtpPGFuc3dlcnMubGVuZ3RoO2krKyl7XHJcbiAgICAgICAgbGV0IHFuID0gKGFuc3dlcnMuYXQoaSkgYXMgRm9ybUdyb3VwKS5nZXQoJ2xpbmtlZFF1ZXN0aW9uJyk/LnZhbHVlO1xyXG4gICAgICAgIGlmKHFuKSB7XHJcbiAgICAgICAgICAoKHRoaXMuZ2V0U2VjdGlvbkZvcm1BcnJheSgpLmF0KHNlY0lkeCkuZ2V0KCdxdWVzdGlvbnMnKSBhcyBGb3JtQXJyYXkpLmF0KHFuIC0gMSkgYXMgRm9ybUdyb3VwKS5nZXQoJ2xpbmtUeXBlJyk/LnNldFZhbHVlKGZhbHNlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgXHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHVwZGF0ZVZhbGlkYXRpb25UeXBlKGV2ZW50OmFueSxzZWN0aW9uOm51bWJlcixxdWVzdGlvbjpudW1iZXIsYW5zd2VyOm51bWJlcikge1xyXG4gICAgbGV0IHF1ZXN0aW9uSW5mbyA9ICgoKCh0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheSlcclxuICAgICAgLmF0KHNlY3Rpb24pIGFzIEZvcm1Hcm91cClcclxuICAgICAgLmdldCgncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5KVxyXG4gICAgICAuYXQocXVlc3Rpb24pIGFzIEZvcm1Hcm91cCkuZ2V0KCdjb21wbGlhbmNlJyk/LnZhbHVlO1xyXG4gICAgbGV0IGFuc3dlcnMgPSAoKCgoKHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5KVxyXG4gICAgICAuYXQoc2VjdGlvbikgYXMgRm9ybUdyb3VwKVxyXG4gICAgICAuZ2V0KCdxdWVzdGlvbnMnKSBhcyBGb3JtQXJyYXkpXHJcbiAgICAgIC5hdChxdWVzdGlvbikgYXMgRm9ybUdyb3VwKS5nZXQoJ2Fuc3dlcnMnKSBhcyBGb3JtQXJyYXkpPy52YWx1ZTtcclxuICAgIGlmKCFhbnN3ZXJzLmV2ZXJ5KChlbGU6YW55KSA9PiBlbGUucnVuQUkpICYmIHF1ZXN0aW9uSW5mbykge1xyXG4gICAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKFRyYXhwb3B1cENvbXBvbmVudCx7Y2VudGVyZWQ6IHRydWUsIHNpemU6ICdtZCd9KTtcclxuICAgICAgZGlhbG9nUmVmLmNvbXBvbmVudEluc3RhbmNlLmRhdGEgPSB7XHJcbiAgICAgICAgaW1hZ2VzcmM6IGA8c3Bhbj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjU2XCIgaGVpZ2h0PVwiNTZcIiB2aWV3Qm94PVwiMCAwIDU2IDU2XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgIDxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgZmlsbD1cIiNGRUYwQzdcIi8+XHJcbiAgICAgICAgICAgICAgICA8cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIHN0cm9rZT1cIiNGRkZBRUJcIiBzdHJva2Utd2lkdGg9XCI4XCIvPlxyXG4gICAgICAgICAgICAgICAgPHBhdGggZD1cIk0yNy45OTg4IDI0LjAwMTJWMjguMDAxMk0yNy45OTg4IDMyLjAwMTJIMjguMDA4OE0yNi4yODg4IDE4Ljg2MTJMMTcuODE4OCAzMy4wMDEyQzE3LjY0NDIgMzMuMzAzNiAxNy41NTE4IDMzLjY0NjUgMTcuNTUwOCAzMy45OTU3QzE3LjU0OTggMzQuMzQ0OSAxNy42NDAzIDM0LjY4ODMgMTcuODEzMiAzNC45OTE3QzE3Ljk4NjIgMzUuMjk1MSAxOC4yMzU1IDM1LjU0NzkgMTguNTM2NSAzNS43MjVDMTguODM3NSAzNS45MDIxIDE5LjE3OTYgMzUuOTk3MyAxOS41Mjg4IDM2LjAwMTJIMzYuNDY4OEMzNi44MTggMzUuOTk3MyAzNy4xNjAxIDM1LjkwMjEgMzcuNDYxMSAzNS43MjVDMzcuNzYyMSAzNS41NDc5IDM4LjAxMTQgMzUuMjk1MSAzOC4xODQ0IDM0Ljk5MTdDMzguMzU3MyAzNC42ODgzIDM4LjQ0NzggMzQuMzQ0OSAzOC40NDY4IDMzLjk5NTdDMzguNDQ1OCAzMy42NDY1IDM4LjM1MzQgMzMuMzAzNiAzOC4xNzg4IDMzLjAwMTJMMjkuNzA4OCAxOC44NjEyQzI5LjUzMDUgMTguNTY3MyAyOS4yNzk1IDE4LjMyNDMgMjguOTggMTguMTU1N0MyOC42ODA1IDE3Ljk4NyAyOC4zNDI1IDE3Ljg5ODQgMjcuOTk4OCAxNy44OTg0QzI3LjY1NTEgMTcuODk4NCAyNy4zMTcxIDE3Ljk4NyAyNy4wMTc2IDE4LjE1NTdDMjYuNzE4MSAxOC4zMjQzIDI2LjQ2NzEgMTguNTY3MyAyNi4yODg4IDE4Ljg2MTJaXCIgc3Ryb2tlPVwiI0RDNjgwM1wiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+YCxcclxuICAgICAgICB0aXRsZTogYERpc2FibGluZyBDb21wbGlhbmNlIFNjb3JlYCxcclxuICAgICAgICBjb250ZW50OiBgQnkgY2xpY2tpbmcgYW5kIGVuYWJsZSB0aGUgdmFsaWRhdGUgcmVzcG9uc2UsIHRoZSBjb21wbGlhbmNlIHNjb3JlIGNvbmZpZ3VyZWQgd2lsbCBiZSBkaXNhYmxlZCBzaW5jZSBpdCB3b3JrcyBvbmx5IGZvciBDYXB0dXJlIEltYWdlIHdpdGggUnVuIEFJIGVuYWJsZWQuIEFyZSB5b3Ugc3VyZSB0byBwcm9jZWVkP2AsXHJcbiAgICAgICAgYnV0dG9udHlwZTogXCJjb21wbGlhbmNlXCIsXHJcbiAgICAgIH07XHJcbiAgICAgIGRpYWxvZ1JlZi5yZXN1bHQudGhlbigocmVzKSA9PiB7XHJcbiAgICAgICAgaWYocmVzID09ICdjb25maXJtJykge1xyXG4gICAgICAgICAgKCgoKHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChzZWN0aW9uKSBhcyBGb3JtR3JvdXApLmdldCgncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChxdWVzdGlvbikgYXMgRm9ybUdyb3VwKT8uZ2V0KCdjb21wbGlhbmNlJyk/LnBhdGNoVmFsdWUoZmFsc2UpO1xyXG4gICAgICAgICAgKCgoKHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChzZWN0aW9uKSBhcyBGb3JtR3JvdXApLmdldCgncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChxdWVzdGlvbikgYXMgRm9ybUdyb3VwKT8uZ2V0KCdjb21wbGlhbmNlJyk/LmRpc2FibGUoe2VtaXRFdmVudDpmYWxzZX0pO1xyXG4gICAgICAgICAgKCgoKHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChzZWN0aW9uKSBhcyBGb3JtR3JvdXApLmdldCgncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChxdWVzdGlvbikgYXMgRm9ybUdyb3VwKT8uZ2V0KCdjb21wbGlhbmNlU2NvcmUnKT8ucGF0Y2hWYWx1ZSgwKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgaWYoYW5zd2Vycy5ldmVyeSgoZWxlOmFueSkgPT4gZWxlLnJ1bkFJKSAmJiAhdGhpcy5oYXNWYWxpZGF0aW9uRW5hYmxlZChzZWN0aW9uLCBxdWVzdGlvbikpIHtcclxuICAgICAgKCgoKHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChzZWN0aW9uKSBhcyBGb3JtR3JvdXApLmdldCgncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChxdWVzdGlvbikgYXMgRm9ybUdyb3VwKT8uZ2V0KCdjb21wbGlhbmNlJyk/LmVuYWJsZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKGV2ZW50LnRhcmdldC52YWx1ZSA9PSAnRGVzY3JpcHRpdmUgQW5zd2VyJykge1xyXG4gICAgICAoKCgoKCh0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheSlcclxuICAgICAgLmF0KHNlY3Rpb24pIGFzIEZvcm1Hcm91cClcclxuICAgICAgLmdldCgncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5KVxyXG4gICAgICAuYXQocXVlc3Rpb24pIGFzIEZvcm1Hcm91cCkuZ2V0KCdhbnN3ZXJzJykgYXMgRm9ybUFycmF5KS5hdChhbnN3ZXIpIGFzIEZvcm1Hcm91cCkuZ2V0KCdkZXNjcmlwdGl2ZXR5cGUnKT8uc2V0VmFsdWUoJ3RleHQnKTtcclxuICAgIH1cclxuICAgICgoKCgoKHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5KVxyXG4gICAgICAuYXQoc2VjdGlvbikgYXMgRm9ybUdyb3VwKVxyXG4gICAgICAuZ2V0KCdxdWVzdGlvbnMnKSBhcyBGb3JtQXJyYXkpXHJcbiAgICAgIC5hdChxdWVzdGlvbikgYXMgRm9ybUdyb3VwKS5nZXQoJ2Fuc3dlcnMnKSBhcyBGb3JtQXJyYXkpLmF0KGFuc3dlcikgYXMgRm9ybUdyb3VwKS5nZXQoJ2FsbG93VXBsb2FkZnJvbUdhbGxlcnknKT8uc2V0VmFsdWUoZmFsc2UpO1xyXG4gICAgKCgoKCgodGhpcy5DaGVja2xpc3RGb3JtLmdldCgnc2VjdGlvbnMnKSBhcyBGb3JtQXJyYXkpXHJcbiAgICAgIC5hdChzZWN0aW9uKSBhcyBGb3JtR3JvdXApXHJcbiAgICAgIC5nZXQoJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheSlcclxuICAgICAgLmF0KHF1ZXN0aW9uKSBhcyBGb3JtR3JvdXApLmdldCgnYW5zd2VycycpIGFzIEZvcm1BcnJheSkuYXQoYW5zd2VyKSBhcyBGb3JtR3JvdXApLmdldCgncnVuQUknKT8uc2V0VmFsdWUoZmFsc2UpO1xyXG4gICAgKCgoKCgodGhpcy5DaGVja2xpc3RGb3JtLmdldCgnc2VjdGlvbnMnKSBhcyBGb3JtQXJyYXkpXHJcbiAgICAgIC5hdChzZWN0aW9uKSBhcyBGb3JtR3JvdXApXHJcbiAgICAgIC5nZXQoJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheSlcclxuICAgICAgLmF0KHF1ZXN0aW9uKSBhcyBGb3JtR3JvdXApLmdldCgnYW5zd2VycycpIGFzIEZvcm1BcnJheSkuYXQoYW5zd2VyKSBhcyBGb3JtR3JvdXApLmdldCgncnVuQUlEZXNjcmlwdGlvbicpPy5zZXRWYWx1ZSgnJyk7XHJcbiAgICAoKCgoKCgodGhpcy5DaGVja2xpc3RGb3JtLmdldCgnc2VjdGlvbnMnKSBhcyBGb3JtQXJyYXkpXHJcbiAgICAgIC5hdChzZWN0aW9uKSBhcyBGb3JtR3JvdXApXHJcbiAgICAgIC5nZXQoJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheSlcclxuICAgICAgLmF0KHF1ZXN0aW9uKSBhcyBGb3JtR3JvdXApLmdldCgnYW5zd2VycycpIGFzIEZvcm1BcnJheSkuYXQoYW5zd2VyKSBhcyBGb3JtR3JvdXApLmdldCgncnVuQUlGZWF0dXJlcycpIGFzIEZvcm1BcnJheSk/LmNsZWFyKCk7XHJcbiAgICAoKCgoKCgodGhpcy5DaGVja2xpc3RGb3JtLmdldCgnc2VjdGlvbnMnKSBhcyBGb3JtQXJyYXkpXHJcbiAgICAgIC5hdChzZWN0aW9uKSBhcyBGb3JtR3JvdXApXHJcbiAgICAgIC5nZXQoJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheSlcclxuICAgICAgLmF0KHF1ZXN0aW9uKSBhcyBGb3JtR3JvdXApLmdldCgnYW5zd2VycycpIGFzIEZvcm1BcnJheSkuYXQoYW5zd2VyKSBhcyBGb3JtR3JvdXApLmdldCgnbXVsdGlSZWZlcmVuY2VJbWFnZScpIGFzIEZvcm1BcnJheSk/LmNsZWFyKCk7XHJcbiAgfVxyXG5cclxuICBzZXRBbnN3ZXJBc0Zvcm1BcnJheShzZWN0aW9uSW5kZXg6IG51bWJlciwgcXVlc3Rpb25JbmRleDogbnVtYmVyLHNlbGVjdHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIGxldCBxdWVzdGlvbiA9ICgoKCh0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheSlcclxuICAgICAgLmF0KHNlY3Rpb25JbmRleCkgYXMgRm9ybUdyb3VwKVxyXG4gICAgICAuZ2V0KCdxdWVzdGlvbnMnKSBhcyBGb3JtQXJyYXkpXHJcbiAgICAgIC5hdChxdWVzdGlvbkluZGV4KSBhcyBGb3JtR3JvdXApO1xyXG4gICAgXHJcbiAgICBpZiAoc2VsZWN0dmFsdWUgPT0gJ3llcy9ubycpIHtcclxuICAgICAgcXVlc3Rpb24uc2V0Q29udHJvbCgnYW5zd2VycycsXHJcbiAgICAgICAgdGhpcy5mYi5hcnJheShbXHJcbiAgICAgICAgICB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgICAgICAgJ2Fuc3dlcic6IHRoaXMuZmIuY29udHJvbCgnWWVzJywgW1ZhbGlkYXRvcnMucmVxdWlyZWQsbm9XaGl0ZXNwYWNlVmFsaWRhdG9yKCldKSxcclxuICAgICAgICAgICAgJ2Fuc3dlcm9wdGlvbk51bWJlcic6IHRoaXMuZmIuY29udHJvbCgxKSxcclxuICAgICAgICAgICAgJ3NvcEZsYWcnOiB0aGlzLmZiLmNvbnRyb2woZmFsc2UsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXHJcbiAgICAgICAgICAgIC8vICdsaW5rUXVlc3Rpb24nOnRoaXMuZmIuY29udHJvbChmYWxzZSxbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxyXG4gICAgICAgICAgICAvLyAnYW5zd2VySW5wdXRTdHlsZSc6IHRoaXMuZmIuY29udHJvbCgncmFkaW8nLFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXHJcbiAgICAgICAgICAgICd2YWxpZGF0aW9uJzogdGhpcy5mYi5jb250cm9sKGZhbHNlLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxyXG4gICAgICAgICAgICAndmFsaWRhdGlvblR5cGUnOiB0aGlzLmZiLmNvbnRyb2woJ0NhcHR1cmUgSW1hZ2UnLCB0aGlzLmFsbG93ZWRWYWx1ZXNWYWxpZGF0b3IoW1wiQ2FwdHVyZSBJbWFnZVwiLCBcIkRlc2NyaXB0aXZlIEFuc3dlclwiLFwiQ2FwdHVyZSBWaWRlb1wiXSkpLFxyXG4gICAgICAgICAgICAnbGlua2VkUXVlc3Rpb24nOnRoaXMuZmIuY29udHJvbCgwLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxyXG4gICAgICAgICAgICAnc2hvd0xpbmtlZCc6dGhpcy5mYi5jb250cm9sKGZhbHNlLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxyXG4gICAgICAgICAgICBcIm11bHRpUmVmZXJlbmNlSW1hZ2VcIjogdGhpcy5mYi5hcnJheShbXSksXHJcbiAgICAgICAgICAgICdydW5BSSc6IHRoaXMuZmIuY29udHJvbChmYWxzZSksXHJcbiAgICAgICAgICAgICdhbGxvd1VwbG9hZGZyb21HYWxsZXJ5JzogdGhpcy5mYi5jb250cm9sKGZhbHNlKSxcclxuICAgICAgICAgICAgJ2Rlc2NyaXB0aXZldHlwZSc6dGhpcy5mYi5jb250cm9sKCcnKSxcclxuICAgICAgICAgICAgXCJyZWZlcmVuY2VJbWFnZVwiOnRoaXMuZmIuY29udHJvbCgnJyksICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIFwicnVuQUlGZWF0dXJlc1wiOnRoaXMuZmIuYXJyYXkoW10pLFxyXG4gICAgICAgICAgICAncnVuQUlEZXNjcmlwdGlvbic6IHRoaXMuZmIuY29udHJvbCgnJyksXHJcbiAgICAgICAgICAgICdjb21wbGlhbmNlU2NvcmUnOnRoaXMuZmIuY29udHJvbCgwKVxyXG4gICAgICAgICAgfSksXHJcbiAgICAgICAgICB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgICAgICAgJ2Fuc3dlcic6IHRoaXMuZmIuY29udHJvbCgnTm8nLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCxub1doaXRlc3BhY2VWYWxpZGF0b3IoKV0pLFxyXG4gICAgICAgICAgICAnYW5zd2Vyb3B0aW9uTnVtYmVyJzogdGhpcy5mYi5jb250cm9sKDIpLFxyXG4gICAgICAgICAgICAnc29wRmxhZyc6IHRoaXMuZmIuY29udHJvbChmYWxzZSwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcclxuICAgICAgICAgICAgJ3ZhbGlkYXRpb24nOiB0aGlzLmZiLmNvbnRyb2woZmFsc2UsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXHJcbiAgICAgICAgICAgICd2YWxpZGF0aW9uVHlwZSc6IHRoaXMuZmIuY29udHJvbCgnQ2FwdHVyZSBJbWFnZScsIHRoaXMuYWxsb3dlZFZhbHVlc1ZhbGlkYXRvcihbXCJDYXB0dXJlIEltYWdlXCIsIFwiRGVzY3JpcHRpdmUgQW5zd2VyXCIsXCJDYXB0dXJlIFZpZGVvXCJdKSksXHJcbiAgICAgICAgICAgICdsaW5rZWRRdWVzdGlvbic6dGhpcy5mYi5jb250cm9sKDAsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXHJcbiAgICAgICAgICAgICdzaG93TGlua2VkJzp0aGlzLmZiLmNvbnRyb2woZmFsc2UsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXHJcbiAgICAgICAgICAgIFwibXVsdGlSZWZlcmVuY2VJbWFnZVwiOiB0aGlzLmZiLmFycmF5KFtdKSxcclxuICAgICAgICAgICAgJ3J1bkFJJzogdGhpcy5mYi5jb250cm9sKGZhbHNlKSxcclxuICAgICAgICAgICAgJ2FsbG93VXBsb2FkZnJvbUdhbGxlcnknOiB0aGlzLmZiLmNvbnRyb2woZmFsc2UpLFxyXG4gICAgICAgICAgICAnZGVzY3JpcHRpdmV0eXBlJzp0aGlzLmZiLmNvbnRyb2woJycpLFxyXG4gICAgICAgICAgICBcInJlZmVyZW5jZUltYWdlXCI6dGhpcy5mYi5jb250cm9sKCcnKSwgICAgICAgICAgICBcclxuICAgICAgICAgICAgXCJydW5BSUZlYXR1cmVzXCI6dGhpcy5mYi5hcnJheShbXSksXHJcbiAgICAgICAgICAgICdydW5BSURlc2NyaXB0aW9uJzogdGhpcy5mYi5jb250cm9sKCcnKSxcclxuICAgICAgICAgICAgJ2NvbXBsaWFuY2VTY29yZSc6dGhpcy5mYi5jb250cm9sKDApXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgIF0sdW5pcXVlU3RyaW5nVmFsaWRhdG9yKCkpXHJcbiAgICAgICk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBxdWVzdGlvbi5zZXRDb250cm9sKCdhbnN3ZXJzJyxcclxuICAgICAgICB0aGlzLmZiLmFycmF5KFtcclxuICAgICAgICAgIHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICAgICAgICAnYW5zd2VyJzogdGhpcy5mYi5jb250cm9sKCcnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCxub1doaXRlc3BhY2VWYWxpZGF0b3IoKV0pLFxyXG4gICAgICAgICAgICAnYW5zd2Vyb3B0aW9uTnVtYmVyJzogdGhpcy5mYi5jb250cm9sKDEpLFxyXG4gICAgICAgICAgICAnc29wRmxhZyc6IHRoaXMuZmIuY29udHJvbChmYWxzZSwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcclxuICAgICAgICAgICAgJ3ZhbGlkYXRpb24nOiB0aGlzLmZiLmNvbnRyb2woZmFsc2UsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXHJcbiAgICAgICAgICAgICd2YWxpZGF0aW9uVHlwZSc6IHRoaXMuZmIuY29udHJvbCgnQ2FwdHVyZSBJbWFnZScsIHRoaXMuYWxsb3dlZFZhbHVlc1ZhbGlkYXRvcihbXCJDYXB0dXJlIEltYWdlXCIsIFwiRGVzY3JpcHRpdmUgQW5zd2VyXCIsXCJDYXB0dXJlIFZpZGVvXCJdKSksXHJcbiAgICAgICAgICAgIC4uLihzZWxlY3R2YWx1ZSA9PSAnbXVsdGlwbGVjaG9pY2VzaW5nbGUnID8ge1wibGlua2VkUXVlc3Rpb25cIjp0aGlzLmZiLmNvbnRyb2woMCwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSwnc2hvd0xpbmtlZCc6dGhpcy5mYi5jb250cm9sKGZhbHNlLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pfSA6IHt9KSxcclxuICAgICAgICAgICAgXCJtdWx0aVJlZmVyZW5jZUltYWdlXCI6IHRoaXMuZmIuYXJyYXkoW10pLFxyXG4gICAgICAgICAgICAncnVuQUknOiB0aGlzLmZiLmNvbnRyb2woZmFsc2UpLFxyXG4gICAgICAgICAgICAnYWxsb3dVcGxvYWRmcm9tR2FsbGVyeSc6IHRoaXMuZmIuY29udHJvbChmYWxzZSksXHJcbiAgICAgICAgICAgICdkZXNjcmlwdGl2ZXR5cGUnOnRoaXMuZmIuY29udHJvbCgnJyksXHJcbiAgICAgICAgICAgIFwicmVmZXJlbmNlSW1hZ2VcIjp0aGlzLmZiLmNvbnRyb2woJycpLFxyXG4gICAgICAgICAgICBcInJ1bkFJRmVhdHVyZXNcIjp0aGlzLmZiLmFycmF5KFtdKSxcclxuICAgICAgICAgICAgJ3J1bkFJRGVzY3JpcHRpb24nOiB0aGlzLmZiLmNvbnRyb2woJycpLFxyXG4gICAgICAgICAgICAnY29tcGxpYW5jZVNjb3JlJzp0aGlzLmZiLmNvbnRyb2woMClcclxuICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgICAgICAgICdhbnN3ZXInOiB0aGlzLmZiLmNvbnRyb2woJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLG5vV2hpdGVzcGFjZVZhbGlkYXRvcigpXSksXHJcbiAgICAgICAgICAgICdhbnN3ZXJvcHRpb25OdW1iZXInOiB0aGlzLmZiLmNvbnRyb2woMSksXHJcbiAgICAgICAgICAgICdzb3BGbGFnJzogdGhpcy5mYi5jb250cm9sKGZhbHNlLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxyXG4gICAgICAgICAgICAndmFsaWRhdGlvbic6IHRoaXMuZmIuY29udHJvbChmYWxzZSwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcclxuICAgICAgICAgICAgJ3ZhbGlkYXRpb25UeXBlJzogdGhpcy5mYi5jb250cm9sKCdDYXB0dXJlIEltYWdlJywgdGhpcy5hbGxvd2VkVmFsdWVzVmFsaWRhdG9yKFtcIkNhcHR1cmUgSW1hZ2VcIiwgXCJEZXNjcmlwdGl2ZSBBbnN3ZXJcIixcIkNhcHR1cmUgVmlkZW9cIl0pKSxcclxuICAgICAgICAgICAgLi4uKHNlbGVjdHZhbHVlID09ICdtdWx0aXBsZWNob2ljZXNpbmdsZScgPyB7XCJsaW5rZWRRdWVzdGlvblwiOnRoaXMuZmIuY29udHJvbCgwLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLCdzaG93TGlua2VkJzp0aGlzLmZiLmNvbnRyb2woZmFsc2UsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSl9IDoge30pLFxyXG4gICAgICAgICAgICBcIm11bHRpUmVmZXJlbmNlSW1hZ2VcIjogdGhpcy5mYi5hcnJheShbXSksXHJcbiAgICAgICAgICAgICdydW5BSSc6IHRoaXMuZmIuY29udHJvbChmYWxzZSksXHJcbiAgICAgICAgICAgICdhbGxvd1VwbG9hZGZyb21HYWxsZXJ5JzogdGhpcy5mYi5jb250cm9sKGZhbHNlKSxcclxuICAgICAgICAgICAgJ2Rlc2NyaXB0aXZldHlwZSc6dGhpcy5mYi5jb250cm9sKCcnKSxcclxuICAgICAgICAgICAgXCJyZWZlcmVuY2VJbWFnZVwiOnRoaXMuZmIuY29udHJvbCgnJyksXHJcbiAgICAgICAgICAgIFwicnVuQUlGZWF0dXJlc1wiOnRoaXMuZmIuYXJyYXkoW10pLFxyXG4gICAgICAgICAgICAncnVuQUlEZXNjcmlwdGlvbic6IHRoaXMuZmIuY29udHJvbCgnJyksXHJcbiAgICAgICAgICAgICdjb21wbGlhbmNlU2NvcmUnOnRoaXMuZmIuY29udHJvbCgwKVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICBdLHVuaXF1ZVN0cmluZ1ZhbGlkYXRvcigpKSxcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIHRoaXMuQ2hlY2tsaXN0Rm9ybS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgfVxyXG5cclxuICBzZXRBbnN3ZXJBc0Zvcm1Hcm91cChzZWN0aW9uSW5kZXg6IG51bWJlciwgcXVlc3Rpb25JbmRleDogbnVtYmVyLCBhbnN3ZXJUeXBlOiBzdHJpbmcpIHtcclxuICAgIGxldCBxdWVzdGlvbiA9ICgoKCh0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheSlcclxuICAgICAgLmF0KHNlY3Rpb25JbmRleCkgYXMgRm9ybUdyb3VwKVxyXG4gICAgICAuZ2V0KCdxdWVzdGlvbnMnKSBhcyBGb3JtQXJyYXkpXHJcbiAgICAgIC5hdChxdWVzdGlvbkluZGV4KSBhcyBGb3JtR3JvdXApXHJcbiAgICBpZiAoWydpbWFnZScsICdkZXNjcmlwdGl2ZUltYWdlJywnbXVsdGlwbGVJbWFnZScsJ2ltYWdlL3ZpZGVvJ10uaW5jbHVkZXMoYW5zd2VyVHlwZSkpIHtcclxuICAgICAgaWYoYW5zd2VyVHlwZSA9PSAnaW1hZ2UnKSB7XHJcbiAgICAgICAgcXVlc3Rpb24uZ2V0KCdjb21wbGlhbmNlJyk/LmRpc2FibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gICAgICB9XHJcbiAgICAgICgoKCh0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheSkuYXQoc2VjdGlvbkluZGV4KSBhcyBGb3JtR3JvdXApXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZ2V0KCdxdWVzdGlvbnMnKSBhcyBGb3JtQXJyYXkpLmF0KHF1ZXN0aW9uSW5kZXgpIGFzIEZvcm1Hcm91cClcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5zZXRDb250cm9sKCdhbnN3ZXJzJywgXHJcbiAgICAgICAgdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgICAgICBcIm11bHRpUmVmZXJlbmNlSW1hZ2VcIjogdGhpcy5mYi5hcnJheShbXSksXHJcbiAgICAgICAgICBcInJlZmVyZW5jZUltYWdlXCI6dGhpcy5mYi5jb250cm9sKCcnKSxcclxuICAgICAgICAgICdydW5BSSc6IHRoaXMuZmIuY29udHJvbChmYWxzZSksXHJcbiAgICAgICAgICAnYWxsb3dVcGxvYWRmcm9tR2FsbGVyeSc6IHRoaXMuZmIuY29udHJvbChmYWxzZSksXHJcbiAgICAgICAgICAuLi4oYW5zd2VyVHlwZSA9PSAnbXVsdGlwbGVJbWFnZScgPyB7J2Rlc2NyaXB0aXZldHlwZSc6dGhpcy5mYi5jb250cm9sKCd0ZXh0Jyl9Ont9KSxcclxuICAgICAgICAgIFwicnVuQUlGZWF0dXJlc1wiOnRoaXMuZmIuYXJyYXkoW10pLFxyXG4gICAgICAgICAgJ3J1bkFJRGVzY3JpcHRpb24nOiB0aGlzLmZiLmNvbnRyb2woJycpLFxyXG4gICAgICAgICAgLi4uKGFuc3dlclR5cGUgPT0gJ2ltYWdlL3ZpZGVvJyAmJiB7bGltaXQ6dGhpcy5mYi5jb250cm9sKGZhbHNlKSx2aWRlb0xpbWl0OnRoaXMuZmIuY29udHJvbCgxKSxpbWFnZUxpbWl0OnRoaXMuZmIuY29udHJvbCgxKX0pLFxyXG4gICAgICAgICAgLi4uKGFuc3dlclR5cGUgPT0gJ2ltYWdlJyAmJiB7bWF0Y2hlZENvdW50OnRoaXMuZmIuY29udHJvbCgwKSxub3RNYXRjaGVkQ291bnQ6dGhpcy5mYi5jb250cm9sKDApfSlcclxuICAgICAgICB9KSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBxdWVzdGlvbi5zZXRDb250cm9sKCdhbnN3ZXJzJywgdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgICAgJ2FsbG93VXBsb2FkZnJvbUdhbGxlcnknOiB0aGlzLmZiLmNvbnRyb2woZmFsc2UpLFxyXG4gICAgICB9KVxyXG4gICAgICApXHJcbiAgICB9XHJcbiAgICB0aGlzLkNoZWNrbGlzdEZvcm0udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gIH1cclxuXHJcbiAgbG9hZEltYWdlRnJvbURldmljZShzZWNJZHg6IG51bWJlcixxSWR4OiBudW1iZXIsZXZlbnQ6IGFueSxhbnNJZHg6bnVtYmVyPS0xLGN0cmxOYW1lOnN0cmluZyA9ICcnLGltZ0lkeDpudW1iZXI9LTEpIHtcclxuICAgIGlmIChldmVudC50YXJnZXQuZmlsZXMgIT0gdW5kZWZpbmVkICYmIGV2ZW50LnRhcmdldC5maWxlcy5sZW5ndGgpIHtcclxuICAgIH1cclxuICAgIGNvbnN0IGlucHV0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XHJcbiAgICBsZXQgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcclxuICAgIGxldCBmaWxlOiBGaWxlID0gZXZlbnQudGFyZ2V0LmZpbGVzWzBdO1xyXG4gICAgZm9ybURhdGEuYXBwZW5kKCdmaWxlJywgZmlsZSwgZmlsZS5uYW1lKTtcclxuICAgIGZvcm1EYXRhLmFwcGVuZCgnY2xpZW50SWQnLHRoaXMuY2xpZW50SWQpXHJcbiAgICB0aGlzLnNvcFNlcnZpY2UuaW1hZ2V1cGxvYWQoZm9ybURhdGEpLnBpcGUodGFrZVVudGlsKHRoaXMuZGV0YWNoKSkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICBpbnB1dC52YWx1ZSA9ICcnO1xyXG4gICAgICBjb25zdCBzZWN0aW9ucyA9IHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5IHwgbnVsbDtcclxuICAgICAgaWYgKCFzZWN0aW9ucykgcmV0dXJuIG51bGw7XHJcbiAgICBcclxuICAgICAgY29uc3Qgc2VjdGlvbiA9IHNlY3Rpb25zLmF0KHNlY0lkeCkgYXMgRm9ybUdyb3VwIHwgbnVsbDtcclxuICAgICAgaWYgKCFzZWN0aW9uKSByZXR1cm4gbnVsbDtcclxuICAgIFxyXG4gICAgICBjb25zdCBxdWVzdGlvbnMgPSBzZWN0aW9uLmdldCgncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5IHwgbnVsbDtcclxuICAgICAgaWYgKCFxdWVzdGlvbnMpIHJldHVybiBudWxsO1xyXG4gICAgXHJcbiAgICAgIGNvbnN0IHF1ZXN0aW9uID0gcXVlc3Rpb25zLmF0KHFJZHgpIGFzIEZvcm1Hcm91cCB8IG51bGw7XHJcblxyXG4gICAgICBpZiAoIXF1ZXN0aW9uKSByZXR1cm4gbnVsbDtcclxuICAgICAgaWYoY3RybE5hbWUpIHtcclxuICAgICAgICBsZXQgcmVmSW1hZ2VzO1xyXG4gICAgICAgIGlmKGN0cmxOYW1lID09IFwibXVsdGlRdWVzdGlvblJlZmVyZW5jZUltYWdlXCIpIHtcclxuICAgICAgICAgIHJlZkltYWdlcyA9IHF1ZXN0aW9uLmdldChjdHJsTmFtZSkgYXMgRm9ybUFycmF5O1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIGxldCBhbnN3ZXJzXHJcbiAgICAgICAgICBpZihhbnNJZHggIT0gLTEpIHtcclxuICAgICAgICAgICAgYW5zd2VycyA9ICgocXVlc3Rpb24uZ2V0KCdhbnN3ZXJzJykgYXMgRm9ybUFycmF5KS5hdChhbnNJZHgpIGFzIEZvcm1Hcm91cCk7IFxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIGFuc3dlcnMgPSBxdWVzdGlvbi5nZXQoJ2Fuc3dlcnMnKSBhcyBGb3JtR3JvdXA7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICByZWZJbWFnZXMgPSBhbnN3ZXJzPy5nZXQoXCJtdWx0aVJlZmVyZW5jZUltYWdlXCIpIGFzIEZvcm1BcnJheTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYocmVmSW1hZ2VzKSB7XHJcbiAgICAgICAgICBpZihpbWdJZHggIT0gLTEpIHtcclxuICAgICAgICAgICAgKHJlZkltYWdlcz8uYXQoaW1nSWR4KSBhcyBGb3JtR3JvdXApPy5zZXRWYWx1ZSh7aW1hZ2VVUkw6cmVzLmRhdGEuaW1nVXJsLHJ1bkFJOmZhbHNlfSlcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICByZWZJbWFnZXM/LnB1c2godGhpcy5mYi5ncm91cCh7aW1hZ2VVUkw6cmVzLmRhdGEuaW1nVXJsLHJ1bkFJOmZhbHNlfSkpXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGVsc2V7XHJcbiAgICAgICAgdGhpcy5nZXRBbnN3ZXJGb3JtR3JvdXBfRm9ybUNvbnRyb2woc2VjSWR4LHFJZHgsXCJtdWx0aVJlZmVyZW5jZUltYWdlXCIsYW5zSWR4KT8uc2V0VmFsdWUocmVzLmRhdGEuaW1nVXJsKTtcclxuICAgICAgfVxyXG4gICAgICBcclxuICAgICAgdGhpcy5DaGVja2xpc3RGb3JtLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgICAgdGhpcy5jaGFuZ2VkZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7ICAgICAgXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgY2xlYXJSZWZlcmVuY2VJbWFnZShzZWNJZHg6IG51bWJlcixxSWR4OiBudW1iZXIsYW5zSWR4Om51bWJlcj0tMSxpbWFnZUluZGV4Om51bWJlcj0tMSxjdHJsTmFtZTpzdHJpbmc9XCJcIikge1xyXG4gICAgLy8gdGhpcy5nZXRBbnN3ZXJGb3JtR3JvdXBfRm9ybUNvbnRyb2woc2VjSWR4LHFJZHgsXCJyZWZlcmVuY2VJbWFnZVwiLGFuc0lkeCk/LnNldFZhbHVlKCcnKTtcclxuICAgIC8vIHRoaXMuZ2V0QW5zd2VyRm9ybUdyb3VwX0Zvcm1Db250cm9sKHNlY0lkeCxxSWR4LCdydW5BSScsYW5zSWR4KT8uc2V0VmFsdWUoZmFsc2UpO1xyXG4gICAgY29uc3Qgc2VjdGlvbnMgPSB0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheSB8IG51bGw7XHJcbiAgICAgIGlmICghc2VjdGlvbnMpIHJldHVybiBudWxsO1xyXG4gICAgXHJcbiAgICAgIGNvbnN0IHNlY3Rpb24gPSBzZWN0aW9ucy5hdChzZWNJZHgpIGFzIEZvcm1Hcm91cCB8IG51bGw7XHJcbiAgICAgIGlmICghc2VjdGlvbikgcmV0dXJuIG51bGw7XHJcbiAgICBcclxuICAgICAgY29uc3QgcXVlc3Rpb25zID0gc2VjdGlvbi5nZXQoJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheSB8IG51bGw7XHJcbiAgICAgIGlmICghcXVlc3Rpb25zKSByZXR1cm4gbnVsbDtcclxuICAgIFxyXG4gICAgICBjb25zdCBxdWVzdGlvbiA9IHF1ZXN0aW9ucy5hdChxSWR4KSBhcyBGb3JtR3JvdXAgfCBudWxsO1xyXG4gICAgICBpZiAoIXF1ZXN0aW9uKSByZXR1cm4gbnVsbDtcclxuICAgIGlmKGltYWdlSW5kZXggIT0gLTEgJiYgY3RybE5hbWUpIHtcclxuICAgICAgbGV0IHJlZkltYWdlcztcclxuICAgICAgaWYoY3RybE5hbWUgPT0gXCJtdWx0aVF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2VcIikge1xyXG4gICAgICAgIHJlZkltYWdlcyA9IHF1ZXN0aW9uLmdldChjdHJsTmFtZSkgYXMgRm9ybUFycmF5O1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIGxldCBhbnN3ZXJzO1xyXG4gICAgICAgIGlmKGFuc0lkeCAhPSAtMSkge1xyXG4gICAgICAgICAgYW5zd2VycyA9ICgocXVlc3Rpb24uZ2V0KCdhbnN3ZXJzJykgYXMgRm9ybUFycmF5KS5hdChhbnNJZHgpIGFzIEZvcm1Hcm91cClcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICBhbnN3ZXJzID0gcXVlc3Rpb24uZ2V0KCdhbnN3ZXJzJykgYXMgRm9ybUdyb3VwO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZWZJbWFnZXMgPSBhbnN3ZXJzLmdldChjdHJsTmFtZSkgYXMgRm9ybUFycmF5O1xyXG4gICAgICB9XHJcbiAgICAgICAgcmVmSW1hZ2VzLnJlbW92ZUF0KGltYWdlSW5kZXgpO1xyXG5cclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAocXVlc3Rpb24uZ2V0KFwibXVsdGlSZWZlcmVuY2VJbWFnZVwiKSBhcyBGb3JtQXJyYXkpPy5jbGVhcigpO1xyXG4gICAgICAocXVlc3Rpb24uZ2V0KFwibXVsdGlRdWVzdGlvblJlZmVyZW5jZUltYWdlXCIpIGFzIEZvcm1BcnJheSk/LmNsZWFyKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXR2YWxpZGF0aW9uKHNlY3Rpb25JbmRleDogYW55LCBxdWVzdGlvbkluZGV4OiBhbnksIGFkZG1vcmVxbkluZGV4OiBhbnksIGV2ZW50OiBhbnkpIHtcclxuICAgICgoKCgoKHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChzZWN0aW9uSW5kZXgpIGFzIEZvcm1Hcm91cCkuZ2V0KCdxdWVzdGlvbnMnKSBhcyBGb3JtQXJyYXkpLmF0KHF1ZXN0aW9uSW5kZXgpIGFzIEZvcm1Hcm91cCkuZ2V0KCdhbnN3ZXJzJykgYXMgRm9ybUFycmF5KS5hdChhZGRtb3JlcW5JbmRleCkgYXMgRm9ybUdyb3VwKS5nZXQoJ3ZhbGlkYXRpb24nKT8uc2V0VmFsdWUoZXZlbnQudGFyZ2V0LmNoZWNrZWQpO1xyXG4gICAgbGV0IGFuc3dlcnMgPSAoKCgoKHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChzZWN0aW9uSW5kZXgpIGFzIEZvcm1Hcm91cCkuZ2V0KCdxdWVzdGlvbnMnKSBhcyBGb3JtQXJyYXkpLmF0KHF1ZXN0aW9uSW5kZXgpIGFzIEZvcm1Hcm91cCkuZ2V0KCdhbnN3ZXJzJykgYXMgRm9ybUFycmF5KS52YWx1ZTtcclxuICAgIGxldCBjb21wbGlhbmNlID0gKCgoKHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChzZWN0aW9uSW5kZXgpIGFzIEZvcm1Hcm91cCkuZ2V0KCdxdWVzdGlvbnMnKSBhcyBGb3JtQXJyYXkpLmF0KHF1ZXN0aW9uSW5kZXgpIGFzIEZvcm1Hcm91cCk/LmdldCgnY29tcGxpYW5jZScpPy52YWx1ZTtcclxuICAgIGlmKCFhbnN3ZXJzLnNvbWUoKGVsZTphbnkpID0+IGVsZS5ydW5BSSkgJiYgY29tcGxpYW5jZSkge1xyXG4gICAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKFRyYXhwb3B1cENvbXBvbmVudCx7Y2VudGVyZWQ6IHRydWUsIHNpemU6ICdtZCd9KTtcclxuICAgICAgZGlhbG9nUmVmLmNvbXBvbmVudEluc3RhbmNlLmRhdGEgPSB7XHJcbiAgICAgICAgaW1hZ2VzcmM6IGA8c3Bhbj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjU2XCIgaGVpZ2h0PVwiNTZcIiB2aWV3Qm94PVwiMCAwIDU2IDU2XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgIDxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgZmlsbD1cIiNGRUYwQzdcIi8+XHJcbiAgICAgICAgICAgICAgICA8cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIHN0cm9rZT1cIiNGRkZBRUJcIiBzdHJva2Utd2lkdGg9XCI4XCIvPlxyXG4gICAgICAgICAgICAgICAgPHBhdGggZD1cIk0yNy45OTg4IDI0LjAwMTJWMjguMDAxMk0yNy45OTg4IDMyLjAwMTJIMjguMDA4OE0yNi4yODg4IDE4Ljg2MTJMMTcuODE4OCAzMy4wMDEyQzE3LjY0NDIgMzMuMzAzNiAxNy41NTE4IDMzLjY0NjUgMTcuNTUwOCAzMy45OTU3QzE3LjU0OTggMzQuMzQ0OSAxNy42NDAzIDM0LjY4ODMgMTcuODEzMiAzNC45OTE3QzE3Ljk4NjIgMzUuMjk1MSAxOC4yMzU1IDM1LjU0NzkgMTguNTM2NSAzNS43MjVDMTguODM3NSAzNS45MDIxIDE5LjE3OTYgMzUuOTk3MyAxOS41Mjg4IDM2LjAwMTJIMzYuNDY4OEMzNi44MTggMzUuOTk3MyAzNy4xNjAxIDM1LjkwMjEgMzcuNDYxMSAzNS43MjVDMzcuNzYyMSAzNS41NDc5IDM4LjAxMTQgMzUuMjk1MSAzOC4xODQ0IDM0Ljk5MTdDMzguMzU3MyAzNC42ODgzIDM4LjQ0NzggMzQuMzQ0OSAzOC40NDY4IDMzLjk5NTdDMzguNDQ1OCAzMy42NDY1IDM4LjM1MzQgMzMuMzAzNiAzOC4xNzg4IDMzLjAwMTJMMjkuNzA4OCAxOC44NjEyQzI5LjUzMDUgMTguNTY3MyAyOS4yNzk1IDE4LjMyNDMgMjguOTggMTguMTU1N0MyOC42ODA1IDE3Ljk4NyAyOC4zNDI1IDE3Ljg5ODQgMjcuOTk4OCAxNy44OTg0QzI3LjY1NTEgMTcuODk4NCAyNy4zMTcxIDE3Ljk4NyAyNy4wMTc2IDE4LjE1NTdDMjYuNzE4MSAxOC4zMjQzIDI2LjQ2NzEgMTguNTY3MyAyNi4yODg4IDE4Ljg2MTJaXCIgc3Ryb2tlPVwiI0RDNjgwM1wiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+YCxcclxuICAgICAgICB0aXRsZTogYERpc2FibGluZyBDb21wbGlhbmNlIFNjb3JlYCxcclxuICAgICAgICBjb250ZW50OiBgQnkgY2xpY2tpbmcgYW5kIGVuYWJsZSB0aGUgdmFsaWRhdGUgcmVzcG9uc2UsIHRoZSBjb21wbGlhbmNlIHNjb3JlIGNvbmZpZ3VyZWQgd2lsbCBiZSBkaXNhYmxlZCBzaW5jZSBpdCB3b3JrcyBvbmx5IGZvciBDYXB0dXJlIEltYWdlIHdpdGggUnVuIEFJIGVuYWJsZWQuIEFyZSB5b3Ugc3VyZSB0byBwcm9jZWVkP2AsXHJcbiAgICAgICAgYnV0dG9udHlwZTogXCJjb21wbGlhbmNlXCIsXHJcbiAgICAgIH07XHJcbiAgICAgIGRpYWxvZ1JlZi5yZXN1bHQudGhlbigocmVzKSA9PiB7XHJcbiAgICAgICAgaWYocmVzID09ICdjb25maXJtJykge1xyXG4gICAgICAgICAgKCgoKHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChzZWN0aW9uSW5kZXgpIGFzIEZvcm1Hcm91cCkuZ2V0KCdxdWVzdGlvbnMnKSBhcyBGb3JtQXJyYXkpLmF0KHF1ZXN0aW9uSW5kZXgpIGFzIEZvcm1Hcm91cCk/LmdldCgnY29tcGxpYW5jZScpPy5wYXRjaFZhbHVlKGZhbHNlKTtcclxuICAgICAgICAgICgoKCh0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheSkuYXQoc2VjdGlvbkluZGV4KSBhcyBGb3JtR3JvdXApLmdldCgncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChxdWVzdGlvbkluZGV4KSBhcyBGb3JtR3JvdXApPy5nZXQoJ2NvbXBsaWFuY2UnKT8uZGlzYWJsZSh7ZW1pdEV2ZW50OmZhbHNlfSk7XHJcbiAgICAgICAgICAoKCgodGhpcy5DaGVja2xpc3RGb3JtLmdldCgnc2VjdGlvbnMnKSBhcyBGb3JtQXJyYXkpLmF0KHNlY3Rpb25JbmRleCkgYXMgRm9ybUdyb3VwKS5nZXQoJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheSkuYXQocXVlc3Rpb25JbmRleCkgYXMgRm9ybUdyb3VwKT8uZ2V0KCdjb21wbGlhbmNlU2NvcmUnKT8ucGF0Y2hWYWx1ZSgwKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAoKCgoKCh0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheSkuYXQoc2VjdGlvbkluZGV4KSBhcyBGb3JtR3JvdXApLmdldCgncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChxdWVzdGlvbkluZGV4KSBhcyBGb3JtR3JvdXApLmdldCgnYW5zd2VycycpIGFzIEZvcm1BcnJheSkuYXQoYWRkbW9yZXFuSW5kZXgpIGFzIEZvcm1Hcm91cCkuZ2V0KCd2YWxpZGF0aW9uJyk/LnNldFZhbHVlKGZhbHNlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG5cclxuICAgIH1cclxuICAgIGlmKCFhbnN3ZXJzLnNvbWUoKGVsZTphbnkpID0+IGVsZS5ydW5BSSkgJiYgIWNvbXBsaWFuY2UpIHtcclxuICAgICAgaWYoZXZlbnQudGFyZ2V0LmNoZWNrZWQpIHtcclxuICAgICAgICAoKCgodGhpcy5DaGVja2xpc3RGb3JtLmdldCgnc2VjdGlvbnMnKSBhcyBGb3JtQXJyYXkpLmF0KHNlY3Rpb25JbmRleCkgYXMgRm9ybUdyb3VwKS5nZXQoJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheSkuYXQocXVlc3Rpb25JbmRleCkgYXMgRm9ybUdyb3VwKT8uZ2V0KCdjb21wbGlhbmNlJyk/LmRpc2FibGUoe2VtaXRFdmVudDpmYWxzZX0pXHJcbiAgICAgIH1cclxuICAgICAgZWxzZSBpZighYW5zd2Vycy5zb21lKChlbGU6YW55KSA9PiBlbGUudmFsaWRhdGlvbikpIHtcclxuICAgICAgICAoKCgodGhpcy5DaGVja2xpc3RGb3JtLmdldCgnc2VjdGlvbnMnKSBhcyBGb3JtQXJyYXkpLmF0KHNlY3Rpb25JbmRleCkgYXMgRm9ybUdyb3VwKS5nZXQoJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheSkuYXQocXVlc3Rpb25JbmRleCkgYXMgRm9ybUdyb3VwKT8uZ2V0KCdjb21wbGlhbmNlJyk/LmVuYWJsZSh7ZW1pdEV2ZW50OmZhbHNlfSlcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYWRkTmV3UXVlc3Rpb24oc2VjdGlvbkluZGV4OiBudW1iZXIpIHtcclxuXHJcbiAgICBpZiAodGhpcy5zZWN0aW9uSW5kZXggPiAtMSkge1xyXG4gICAgICBpZiAoISgoKHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChzZWN0aW9uSW5kZXgpIGFzIEZvcm1Hcm91cCkuZ2V0KCdxdWVzdGlvbnMnKSkpIHtcclxuICAgICAgICAoKHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChzZWN0aW9uSW5kZXgpIGFzIEZvcm1Hcm91cCkuc2V0Q29udHJvbCgncXVlc3Rpb25zJywgdGhpcy5mYi5hcnJheShbXSkpO1xyXG4gICAgICB9XHJcbiAgICAgIGxldCBxdWVzdGlvbnMgPSAoKCh0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheSkuYXQoc2VjdGlvbkluZGV4KSBhcyBGb3JtR3JvdXApLmdldCgncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5KTtcclxuXHJcbiAgICAgIGxldCBxdWVzdGlvbnNMZW5ndGggPSBxdWVzdGlvbnMubGVuZ3RoO1xyXG4gICAgICBxdWVzdGlvbnMucHVzaCh0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgICBcInFub1wiOiB0aGlzLmZiLmNvbnRyb2wocXVlc3Rpb25zTGVuZ3RoICsgMSwpLFxyXG4gICAgICAgICdxbmFtZSc6IHRoaXMuZmIuY29udHJvbCgnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWQsbm9XaGl0ZXNwYWNlVmFsaWRhdG9yKCldKSxcclxuICAgICAgICAnYW5zd2VyVHlwZSc6IHRoaXMuZmIuY29udHJvbCgnZGVzY3JpcHRpdmUnLFxyXG4gICAgICAgICAgdGhpcy5hbGxvd2VkVmFsdWVzVmFsaWRhdG9yKFtcImRlc2NyaXB0aXZlXCIsIFwieWVzL25vXCIsIFwibXVsdGlwbGVjaG9pY2VzaW5nbGVcIiwgXCJtdWx0aXBsZWNob2ljZW11bHRpcGxlXCIsXCJkZXNjcmlwdGl2ZUltYWdlXCIsIFwiaW1hZ2VcIiwgXCJ2aWRlb1wiLCdtdWx0aXBsZUltYWdlJywnZGF0ZScsJ2xpbmVhcnNjYWxlJywndGltZScsJ2ltYWdlL3ZpZGVvJywnZHJvcGRvd24nXSkpLFxyXG4gICAgICAgICdydW5BSSc6IHRoaXMuZmIuY29udHJvbChmYWxzZSwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcclxuICAgICAgICAncnVuQUlEZXNjcmlwdGlvbic6IHRoaXMuZmIuY29udHJvbCgnJyksXHJcbiAgICAgICAgJ2FsbG93VXBsb2FkZnJvbUdhbGxlcnknOiB0aGlzLmZiLmNvbnRyb2woZmFsc2UsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXHJcbiAgICAgICAgJ2xpbmtUeXBlJzogdGhpcy5mYi5jb250cm9sKGZhbHNlLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxyXG4gICAgICAgIFwibXVsdGlRdWVzdGlvblJlZmVyZW5jZUltYWdlXCI6dGhpcy5mYi5hcnJheShbXSksXHJcbiAgICAgICAgJ2Rlc2NyaXB0aXZldHlwZSc6dGhpcy5mYi5jb250cm9sKCd0ZXh0JyksXHJcbiAgICAgICAgJ3F1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UnOnRoaXMuZmIuY29udHJvbCgnJyksXHJcbiAgICAgICAgXCJydW5BSUZlYXR1cmVzXCI6dGhpcy5mYi5hcnJheShbXSksICAgICAgICBcclxuICAgICAgICBcInVuaXF1ZXFub1wiOiB0aGlzLmZiLmNvbnRyb2woMCksXHJcbiAgICAgICAgXCJ1bmlxdWVxaWRcIjogdGhpcy5mYi5jb250cm9sKCcnKSxcclxuICAgICAgICBcImFsbG93TXVsdGlwbGVcIjp0aGlzLmZiLmNvbnRyb2woZmFsc2UpLFxyXG4gICAgICAgICdjb21wbGlhbmNlJzp0aGlzLmZiLmNvbnRyb2woZmFsc2UpXHJcbiAgICAgIH0pKTsgICAgICBcclxuICAgICAgdGhpcy5jaGFuZ2VkZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgIHRoaXMuc3dhbFRvYXN0KCdOZXcgcXVlc3Rpb24gYWRkZWQhJyk7XHJcbiAgICAgIHNldFRpbWVvdXQoKCk9PiB7XHJcbiAgICAgICAgdGhpcy5zY3JvbGxUb1F1ZXN0aW9uKHNlY3Rpb25JbmRleCxxdWVzdGlvbnNMZW5ndGgpO1xyXG4gICAgICB9LDEwMCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBkZWxldGVRdWVzdGlvbihzZWN0aW9uSW5kZXg6IGFueSwgcXVlc3Rpb25JbmRleDogYW55KSB7XHJcbiAgICB0aGlzLmRlbGV0ZWRMaXN0ID0gW107XHJcbiAgICBsZXQgcXVlc3Rpb24gPSB0aGlzLmdldFF1ZXN0aW9uRm9ybUNvbnRyb2woc2VjdGlvbkluZGV4LCBxdWVzdGlvbkluZGV4LCAncW5hbWUnKT8udmFsdWUgfHwgJyc7XHJcbiAgICBsZXQgcW5vID0gdGhpcy5nZXRRdWVzdGlvbkZvcm1Db250cm9sKHNlY3Rpb25JbmRleCwgcXVlc3Rpb25JbmRleCwgJ3FubycpPy52YWx1ZTtcclxuICAgIHF1ZXN0aW9uID0gcXVlc3Rpb24gPyBxdWVzdGlvbiA6IGBRdWVzdGlvbiAke3RoaXMuZ2V0UXVlc3Rpb25Gb3JtQ29udHJvbChzZWN0aW9uSW5kZXgsIHF1ZXN0aW9uSW5kZXgsICdxbm8nKT8udmFsdWUgfHwgJyd9YDtcclxuICAgIHF1ZXN0aW9uID0gcXVlc3Rpb24ubGVuZ3RoID4gMjAgPyBxdWVzdGlvbi5zbGljZSgwLDIwKSArICcuLi4nIDogcXVlc3Rpb247XHJcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKFRyYXhwb3B1cENvbXBvbmVudCx7Y2VudGVyZWQ6IHRydWUsIHNpemU6ICdtZCd9KTtcclxuICAgIGRpYWxvZ1JlZi5jb21wb25lbnRJbnN0YW5jZS5kYXRhID0ge1xyXG4gICAgICBpbWFnZXNyYzogYDxzcGFuPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiNTZcIiBoZWlnaHQ9XCI1NlwiIHZpZXdCb3g9XCIwIDAgNTYgNTZcIiBmaWxsPVwibm9uZVwiPjxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgZmlsbD1cIiNGRUU0RTJcIi8+PHBhdGggZD1cIk0yOCAyNFYyOE0yOCAzMkgyOC4wMU0zOCAyOEMzOCAzMy41MjI4IDMzLjUyMjggMzggMjggMzhDMjIuNDc3MiAzOCAxOCAzMy41MjI4IDE4IDI4QzE4IDIyLjQ3NzIgMjIuNDc3MiAxOCAyOCAxOEMzMy41MjI4IDE4IDM4IDIyLjQ3NzIgMzggMjhaXCIgc3Ryb2tlPVwiI0Q5MkQyMFwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PHJlY3QgeD1cIjRcIiB5PVwiNFwiIHdpZHRoPVwiNDhcIiBoZWlnaHQ9XCI0OFwiIHJ4PVwiMjRcIiBzdHJva2U9XCIjRkVGM0YyXCIgc3Ryb2tlLXdpZHRoPVwiOFwiLz48L3N2Zz48L3NwYW4+YCxcclxuICAgICAgdGl0bGU6IGBEZWxldGUgJyR7cXVlc3Rpb259Jz9gLFxyXG4gICAgICBjb250ZW50OiBgQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSA8Yj4nJHtxdWVzdGlvbn0nPC9iPj8gVGhpcyBhY3Rpb24gY2Fubm90IGJlIHVuZG9uZS5gLFxyXG4gICAgICBidXR0b250eXBlOiAnZGVsZXRlJ1xyXG4gICAgfVxyXG4gICAgZGlhbG9nUmVmLnJlc3VsdC50aGVuKChyZXMpID0+IHtcclxuICAgICAgaWYgKHJlcyA9PSAnZGVsZXRlJykge1xyXG4gICAgICAgIGxldCBsaW5rZWRRdWVzdGlvbjphbnkgPSAoKCh0aGlzLmdldFNlY3Rpb25Gb3JtQXJyYXkoKS5hdChzZWN0aW9uSW5kZXgpLmdldCgncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChxdWVzdGlvbkluZGV4KSBhcyBGb3JtR3JvdXApLmdldCgnYW5zd2VycycpIGFzIEZvcm1BcnJheSk7XHJcbiAgICAgICAgbGV0IHR5cGU6YW55ID0gKCh0aGlzLmdldFNlY3Rpb25Gb3JtQXJyYXkoKS5hdChzZWN0aW9uSW5kZXgpLmdldCgncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChxdWVzdGlvbkluZGV4KSBhcyBGb3JtR3JvdXApLmdldCgnYW5zd2VyVHlwZScpPy52YWx1ZTtcclxuICAgICAgICBpZighWydkZXNjcmlwdGl2ZScsJ2ltYWdlJywgJ2Rlc2NyaXB0aXZlSW1hZ2UnLCdtdWx0aXBsZUltYWdlJywndmlkZW8nLCdsaW5lYXJzY2FsZScsJ3RpbWUnLCdkYXRlJ10uaW5jbHVkZXModHlwZSkpIHtcclxuICAgICAgICAgIGZvcihsZXQgaT0wO2k8bGlua2VkUXVlc3Rpb24/Lmxlbmd0aDtpKyspIHtcclxuICAgICAgICAgICAgbGV0IGxpbmtlZFFuID0gKChsaW5rZWRRdWVzdGlvbi5hdChpKSBhcyBGb3JtR3JvdXApLmdldCgnbGlua2VkUXVlc3Rpb24nKT8udmFsdWUpO1xyXG4gICAgICAgICAgICBpZihsaW5rZWRRbikge1xyXG4gICAgICAgICAgICAgIGxldCBubyA9IGxpbmtlZFFuIC0xO1xyXG4gICAgICAgICAgICAgICgodGhpcy5nZXRTZWN0aW9uRm9ybUFycmF5KCkuYXQoc2VjdGlvbkluZGV4KS5nZXQoJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheSkuYXQobm8pIGFzIEZvcm1Hcm91cCkuZ2V0KCdsaW5rVHlwZScpPy5zZXRWYWx1ZShmYWxzZSk7XHJcbiAgICAgICAgICAgICAgaWYobGlua2VkUW4gJiYgcGFyc2VJbnQobGlua2VkUW4pID4gcXVlc3Rpb25JbmRleCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zdWJ0cmFjdFF1ZXN0aW9ubm8oc2VjdGlvbkluZGV4LGxpbmtlZFFuLTEpXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgICh0aGlzLmdldFNlY3Rpb25Gb3JtQ29udHJvbChzZWN0aW9uSW5kZXgsICdxdWVzdGlvbnMnKSBhcyBGb3JtQXJyYXkpLnJlbW92ZUF0KHF1ZXN0aW9uSW5kZXgpO1xyXG4gICAgICAgIHRoaXMucmVtb3ZlZE5lc3RlZFF1ZXN0aW9uKHNlY3Rpb25JbmRleCxxbm8pO1xyXG4gICAgICAgIHRoaXMudXBkYXRlUXVlc3Rpb25Rbm9zKHNlY3Rpb25JbmRleCk7XHJcbiAgICAgICAgdGhpcy5zd2FsVG9hc3QoYCR7cXVlc3Rpb259IGhhcyBiZWVuIGRlbGV0ZWQhYCk7XHJcbiAgICAgICAgdGhpcy5jaGFuZ2VkZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICB9XHJcblxyXG4gIHN1YnRyYWN0UXVlc3Rpb25ubyhzZWN0aW9uSW5kZXg6bnVtYmVyLHF1ZXN0aW9uSW5kZXg6YW55KSB7XHJcbiAgICBsZXQgbGlua2VkUXVlc3Rpb25BbnN3ZXJzID0gKCgodGhpcy5nZXRTZWN0aW9uRm9ybUFycmF5KCkuYXQoc2VjdGlvbkluZGV4KS5nZXQoJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheSkuYXQocXVlc3Rpb25JbmRleCkgYXMgRm9ybUdyb3VwKS5nZXQoJ2Fuc3dlcnMnKSBhcyBGb3JtQXJyYXkpO1xyXG4gICAgbGV0IG5vID0gKCh0aGlzLmdldFNlY3Rpb25Gb3JtQXJyYXkoKS5hdChzZWN0aW9uSW5kZXgpLmdldCgncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChxdWVzdGlvbkluZGV4KSBhcyBGb3JtR3JvdXApLmdldCgncW5vJyk/LnZhbHVlO1xyXG4gICAgdGhpcy5kZWxldGVkTGlzdC5wdXNoKG5vKTtcclxuICAgIGZvcihsZXQgaj0wO2o8bGlua2VkUXVlc3Rpb25BbnN3ZXJzPy5sZW5ndGg7aisrKSB7XHJcbiAgICAgIGxldCBsaW5rZWRRbiA9ICgobGlua2VkUXVlc3Rpb25BbnN3ZXJzLmF0KGopIGFzIEZvcm1Hcm91cCkuZ2V0KCdsaW5rZWRRdWVzdGlvbicpPy52YWx1ZSk7XHJcbiAgICAgIGlmKGxpbmtlZFFuICYmIHBhcnNlSW50KGxpbmtlZFFuKSA+IHF1ZXN0aW9uSW5kZXgpIHtcclxuICAgICAgICAoKGxpbmtlZFF1ZXN0aW9uQW5zd2Vycy5hdChqKSBhcyBGb3JtR3JvdXApLmdldCgnbGlua2VkUXVlc3Rpb24nKSk/LnNldFZhbHVlKGxpbmtlZFFuIC0gMSk7XHJcbiAgICAgICAgdGhpcy5zdWJ0cmFjdFF1ZXN0aW9ubm8oc2VjdGlvbkluZGV4LGxpbmtlZFFuLTEpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByYWlzZWZsYWcoc2VjdGlvbkluZGV4OiBudW1iZXIsIHF1ZXN0aW9uSW5kZXg6IG51bWJlciwgYW5zSWR4OiBudW1iZXIsdmFsdWU6IGJvb2xlYW4sbGlua0luZGV4Om51bWJlciA9IC0xLGxpbmtBbnNJbmRleDpudW1iZXIgPSAtMSkge1xyXG4gICAgbGV0IHF1ZXN0aW9uID0gKCgoKHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5KT8uYXQoc2VjdGlvbkluZGV4KSBhcyBGb3JtR3JvdXApLmdldCgncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChxdWVzdGlvbkluZGV4KSBhcyBGb3JtR3JvdXApO1xyXG4gICAgaWYodmFsdWUgPT0gdHJ1ZSkge1xyXG4gICAgICBsZXQgYW5zd2VycyA9IChxdWVzdGlvbi5nZXQoJ2Fuc3dlcnMnKSBhcyBGb3JtQXJyYXkpLnZhbHVlO1xyXG4gICAgICBpZihsaW5rSW5kZXggPT0gLTEpIHtcclxuICAgICAgICBpZihhbnN3ZXJzLmZpbHRlcigoeDphbnkpPT4geC5zb3BGbGFnID09IHRydWUpLmxlbmd0aCA9PSAoYW5zd2Vycy5sZW5ndGggLTEpKSB7XHJcbiAgICAgICAgICAoKHF1ZXN0aW9uLmdldCgnYW5zd2VycycpIGFzIEZvcm1BcnJheSkuYXQoYW5zSWR4KSBhcyBGb3JtR3JvdXApLmFkZENvbnRyb2woJ3Nob3dTT1BGbGFnRXJyb3InLHRoaXMuZmIuY29udHJvbCh0cnVlKSk7XHJcbiAgICAgICAgICB0aW1lcig1MDAwKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICAoKHF1ZXN0aW9uLmdldCgnYW5zd2VycycpIGFzIEZvcm1BcnJheSkuYXQoYW5zSWR4KSBhcyBGb3JtR3JvdXApLnJlbW92ZUNvbnRyb2woJ3Nob3dTT1BGbGFnRXJyb3InKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICBsZXQgYW5zd2VycyA9ICgocXVlc3Rpb24uZ2V0KCdhbnN3ZXJzJykgYXMgRm9ybUFycmF5KS5hdChhbnNJZHgpIGFzIEZvcm1Hcm91cCk7XHJcbiAgICAgICAgbGV0IGxpbmtRdWVzdGlvbiA9ICgoYW5zd2Vycy5nZXQoJ2xpbmtRdWVzdGlvbkFuc3dlcnMnKSBhcyBGb3JtQXJyYXkpLmF0KGxpbmtJbmRleCkgYXMgRm9ybUdyb3VwKTtcclxuICAgICAgICBsZXQgbGlua0Fuc3dlcnMgPSAobGlua1F1ZXN0aW9uLmdldCgnYW5zd2VycycpIGFzIEZvcm1BcnJheSkudmFsdWVcclxuICAgICAgICBpZihsaW5rQW5zd2Vycy5maWx0ZXIoKHg6YW55KT0+IHguc29wRmxhZyA9PSB0cnVlKS5sZW5ndGggPT0gKGxpbmtBbnN3ZXJzLmxlbmd0aCAtMSkpIHtcclxuICAgICAgICAgICgobGlua1F1ZXN0aW9uLmdldCgnYW5zd2VycycpIGFzIEZvcm1BcnJheSkuYXQobGlua0Fuc0luZGV4KSBhcyBGb3JtR3JvdXApLmFkZENvbnRyb2woJ3Nob3dTT1BGbGFnRXJyb3InLHRoaXMuZmIuY29udHJvbCh0cnVlKSk7XHJcbiAgICAgICAgICB0aW1lcig1MDAwKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICgobGlua1F1ZXN0aW9uLmdldCgnYW5zd2VycycpIGFzIEZvcm1BcnJheSkuYXQobGlua0Fuc0luZGV4KSBhcyBGb3JtR3JvdXApLnJlbW92ZUNvbnRyb2woJ3Nob3dTT1BGbGFnRXJyb3InKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgICBpZihsaW5rSW5kZXggPT0gLTEpXHJcbiAgICAgICAgKCgoKHF1ZXN0aW9uLmdldCgnYW5zd2VycycpIGFzIEZvcm1BcnJheSk/LmF0KGFuc0lkeCkgYXMgRm9ybUdyb3VwKT8uZ2V0KCdzb3BGbGFnJykgYXMgRm9ybUNvbnRyb2wpKT8uc2V0VmFsdWUodmFsdWUpOyBcclxuICAgIGVsc2UgICB7XHJcbiAgICAgICBsZXQgYW5zd2VycyA9ICgocXVlc3Rpb24uZ2V0KCdhbnN3ZXJzJykgYXMgRm9ybUFycmF5KS5hdChhbnNJZHgpIGFzIEZvcm1Hcm91cCk7XHJcbiAgICAgICAgbGV0IGxpbmtRdWVzdGlvbiA9ICgoYW5zd2Vycy5nZXQoJ2xpbmtRdWVzdGlvbkFuc3dlcnMnKSBhcyBGb3JtQXJyYXkpLmF0KGxpbmtJbmRleCkgYXMgRm9ybUdyb3VwKTtcclxuICAgICAgKCgoKGxpbmtRdWVzdGlvbi5nZXQoJ2Fuc3dlcnMnKSBhcyBGb3JtQXJyYXkpPy5hdChsaW5rQW5zSW5kZXgpIGFzIEZvcm1Hcm91cCk/LmdldCgnc29wRmxhZycpIGFzIEZvcm1Db250cm9sKSk/LnNldFZhbHVlKHZhbHVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGFkZE5lc3RlZFF1ZXN0aW9uKHNlY3Rpb25JbmRleDogbnVtYmVyLCBxdWVzdGlvbkluZGV4OiBudW1iZXIsIGFuc0lkeDogbnVtYmVyLHZhbHVlOiBib29sZWFuLGxpbmtlZFF1ZXN0aW9uSW5kZXg6bnVtYmVyPS0xLGxpbmtlZEFuc3dlcjpudW1iZXIgPSAtMSkge1xyXG4gICAgIGxldCBhbnN3ZXIgPSAoKCgoKHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5KVxyXG4gICAgICAuYXQoc2VjdGlvbkluZGV4KSBhcyBGb3JtR3JvdXApXHJcbiAgICAgIC5nZXQoJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheSlcclxuICAgICAgLmF0KHF1ZXN0aW9uSW5kZXgpIGFzIEZvcm1Hcm91cClcclxuICAgICAgLmdldCgnYW5zd2VycycpIGFzIEZvcm1BcnJheSlcclxuICAgICAgLmF0KGFuc0lkeCkgYXMgRm9ybUdyb3VwXHJcblxyXG4gICAgICBcclxuICAgICAgXHJcbiAgICBpZighYW5zd2VyPy5nZXQoJ2xpbmtRdWVzdGlvbkFuc3dlcnMnKT8udmFsdWUubGVuZ3RoKSB7XHJcbiAgICAgIGFuc3dlci5zZXRDb250cm9sKCdsaW5rUXVlc3Rpb25BbnN3ZXJzJyxcclxuICAgICAgICB0aGlzLmZiLmFycmF5KFtcclxuICAgICAgICAgIHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICAgICAgICBcInFub1wiOiB0aGlzLmZiLmNvbnRyb2woMSksXHJcbiAgICAgICAgICAgICdxbmFtZSc6IHRoaXMuZmIuY29udHJvbCgnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWQsbm9XaGl0ZXNwYWNlVmFsaWRhdG9yKCldKSxcclxuICAgICAgICAgICAgJ2Fuc3dlclR5cGUnOiB0aGlzLmZiLmNvbnRyb2woJ2Rlc2NyaXB0aXZlJyxcclxuICAgICAgICAgICAgICB0aGlzLmFsbG93ZWRWYWx1ZXNWYWxpZGF0b3IoW1wiZGVzY3JpcHRpdmVcIiwgXCJ5ZXMvbm9cIiwgXCJtdWx0aXBsZWNob2ljZXNpbmdsZVwiLCBcIm11bHRpcGxlY2hvaWNlbXVsdGlwbGVcIixcImRlc2NyaXB0aXZlSW1hZ2VcIiwgXCJpbWFnZVwiLCBcInZpZGVvXCIsJ211bHRpcGxlSW1hZ2UnLCdkYXRlJywnbGluZWFyc2NhbGUnLCd0aW1lJywnaW1hZ2UvdmlkZW8nLCdkcm9wZG93biddKSksXHJcbiAgICAgICAgICAgICdydW5BSSc6IHRoaXMuZmIuY29udHJvbChmYWxzZSwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcclxuICAgICAgICAgICAgJ3J1bkFJRGVzY3JpcHRpb24nOiB0aGlzLmZiLmNvbnRyb2woJycpLFxyXG4gICAgICAgICAgICAnYWxsb3dVcGxvYWRmcm9tR2FsbGVyeSc6IHRoaXMuZmIuY29udHJvbChmYWxzZSwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcclxuICAgICAgICAgICAgXCJtdWx0aVF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2VcIjp0aGlzLmZiLmFycmF5KFtdKSxcclxuICAgICAgICAgICAgJ2Rlc2NyaXB0aXZldHlwZSc6dGhpcy5mYi5jb250cm9sKCd0ZXh0JyksXHJcbiAgICAgICAgICAgICdxdWVzdGlvblJlZmVyZW5jZUltYWdlJzp0aGlzLmZiLmNvbnRyb2woJycpLFxyXG4gICAgICAgICAgICAncnVuQUlGZWF0dXJlcyc6dGhpcy5mYi5hcnJheShbXSksICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIFwidW5pcXVlcW5vXCI6IHRoaXMuZmIuY29udHJvbCgwKSxcclxuICAgICAgICAgICAgXCJ1bmlxdWVxaWRcIjogdGhpcy5mYi5jb250cm9sKCcnKSxcclxuICAgICAgICAgICAgXCJhbGxvd011bHRpcGxlXCI6dGhpcy5mYi5jb250cm9sKGZhbHNlKSxcclxuICAgICAgICAgICAgXCJjb21wbGlhbmNlXCI6dGhpcy5mYi5jb250cm9sKGZhbHNlKSxcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgXSlcclxuICAgICAgKVxyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIGxldCBuZXN0ZWRRdWVzdGlvbiA9IGFuc3dlci5nZXQoJ2xpbmtRdWVzdGlvbkFuc3dlcnMnKSBhcyBGb3JtQXJyYXlcclxuICAgICAgbmVzdGVkUXVlc3Rpb24ucHVzaCh0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgICBcInFub1wiOiB0aGlzLmZiLmNvbnRyb2woMSksXHJcbiAgICAgICAgJ3FuYW1lJzogdGhpcy5mYi5jb250cm9sKCcnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCxub1doaXRlc3BhY2VWYWxpZGF0b3IoKV0pLFxyXG4gICAgICAgICdhbnN3ZXJUeXBlJzogdGhpcy5mYi5jb250cm9sKCdkZXNjcmlwdGl2ZScsXHJcbiAgICAgICAgICB0aGlzLmFsbG93ZWRWYWx1ZXNWYWxpZGF0b3IoW1wiZGVzY3JpcHRpdmVcIiwgXCJ5ZXMvbm9cIiwgXCJtdWx0aXBsZWNob2ljZXNpbmdsZVwiLCBcIm11bHRpcGxlY2hvaWNlbXVsdGlwbGVcIixcImRlc2NyaXB0aXZlSW1hZ2VcIiwgXCJpbWFnZVwiLCBcInZpZGVvXCIsJ211bHRpcGxlSW1hZ2UnLCdkYXRlJywnbGluZWFyc2NhbGUnLCd0aW1lJywnaW1hZ2UvdmlkZW8nLCdkcm9wZG93biddKSksXHJcbiAgICAgICAgJ3J1bkFJJzogdGhpcy5mYi5jb250cm9sKGZhbHNlLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxyXG4gICAgICAgICdydW5BSURlc2NyaXB0aW9uJzogdGhpcy5mYi5jb250cm9sKCcnKSxcclxuICAgICAgICAnYWxsb3dVcGxvYWRmcm9tR2FsbGVyeSc6IHRoaXMuZmIuY29udHJvbChmYWxzZSwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcclxuICAgICAgICBcIm11bHRpUXVlc3Rpb25SZWZlcmVuY2VJbWFnZVwiOnRoaXMuZmIuYXJyYXkoW10pLFxyXG4gICAgICAgICdkZXNjcmlwdGl2ZXR5cGUnOnRoaXMuZmIuY29udHJvbCgndGV4dCcpLFxyXG4gICAgICAgICdxdWVzdGlvblJlZmVyZW5jZUltYWdlJzp0aGlzLmZiLmNvbnRyb2woJycpLFxyXG4gICAgICAgICdydW5BSUZlYXR1cmVzJzp0aGlzLmZiLmFycmF5KFtdKSwgICAgICAgIFxyXG4gICAgICAgIFwidW5pcXVlcW5vXCI6IHRoaXMuZmIuY29udHJvbCgwKSxcclxuICAgICAgICBcInVuaXF1ZXFpZFwiOiB0aGlzLmZiLmNvbnRyb2woJycpLFxyXG4gICAgICAgIFwiYWxsb3dNdWx0aXBsZVwiOnRoaXMuZmIuY29udHJvbChmYWxzZSksXHJcbiAgICAgICAgXCJjb21wbGlhbmNlXCI6dGhpcy5mYi5jb250cm9sKGZhbHNlKSxcclxuICAgICAgfSkpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5DaGVja2xpc3RGb3JtLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICB9XHJcbiBcclxuICBhY2NvcmRpYW4oaW5kZXg6IGFueSkge1xyXG4gICAgaWYgKHRoaXMuc2hvdyA9PSBpbmRleCkge1xyXG4gICAgICB0aGlzLnNob3cgPSAtMTtcclxuICAgICAgdGhpcy5zZWN0aW9uSW5kZXggPSAtMTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2hvdyA9IGluZGV4O1xyXG4gICAgICB0aGlzLnNlY3Rpb25JbmRleCA9IGluZGV4O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZGVsZXRlU2VjdGlvbihzZWN0aW9uSW5kZXg6IGFueSkge1xyXG4gICAgbGV0IHNlY3Rpb24gPSAoKHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChzZWN0aW9uSW5kZXgpIGFzIEZvcm1Hcm91cCk7XHJcbiAgICBsZXQgc2VjdGlvbkxlbmd0aDphbnkgPSBcIiBcIiArIChzZWN0aW9uLmdldCgncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5KS5sZW5ndGg7XHJcbiAgICBsZXQgc2VjdGlvbk5hbWU6c3RyaW5nID0gc2VjdGlvbi5nZXQoJ25hbWUnKT8udmFsdWU7XHJcbiAgICBzZWN0aW9uTmFtZSA9IHNlY3Rpb25OYW1lLmxlbmd0aCA+IDIwID8gKHNlY3Rpb25OYW1lLnNsaWNlKDAsIDIwKSArIFwiLi4uXCIpIDogc2VjdGlvbk5hbWU7XHJcbiAgICBsZXQgcXVlc3Rpb25fdGV4dCA9ICcnXHJcbiAgICBpZiAoc2VjdGlvbkxlbmd0aCA9PSAxKVxyXG4gICAgICBxdWVzdGlvbl90ZXh0ID0gJ1F1ZXN0aW9uJ1xyXG4gICAgZWxzZVxyXG4gICAgIHF1ZXN0aW9uX3RleHQgPSAnUXVlc3Rpb25zJ1xyXG4gICAgY29uc3QgcG9wdXBjb250ZW50ID0ge1xyXG4gICAgICBkaXNwbGF5cHJvcDogZmFsc2UsXHJcbiAgICAgIGltYWdlc3JjOiBgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCI1NlwiIGhlaWdodD1cIjU2XCIgdmlld0JveD1cIjAgMCA1NiA1NlwiIGZpbGw9XCJub25lXCI+PHJlY3QgeD1cIjRcIiB5PVwiNFwiIHdpZHRoPVwiNDhcIiBoZWlnaHQ9XCI0OFwiIHJ4PVwiMjRcIiBmaWxsPVwiI0ZFRTRFMlwiLz48cGF0aCBkPVwiTTI4IDI0VjI4TTI4IDMySDI4LjAxTTM4IDI4QzM4IDMzLjUyMjggMzMuNTIyOCAzOCAyOCAzOEMyMi40NzcyIDM4IDE4IDMzLjUyMjggMTggMjhDMTggMjIuNDc3MiAyMi40NzcyIDE4IDI4IDE4QzMzLjUyMjggMTggMzggMjIuNDc3MiAzOCAyOFpcIiBzdHJva2U9XCIjRDkyRDIwXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIHN0cm9rZT1cIiNGRUYzRjJcIiBzdHJva2Utd2lkdGg9XCI4XCIvPjwvc3ZnPmAsXHJcbiAgICAgIHRpdGxlOiBgRGVsZXRlICcke3NlY3Rpb25OYW1lfSBTZWN0aW9uJz9gLFxyXG4gICAgICBjb250ZW50OiBgQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZScgPGI+JyR7c2VjdGlvbk5hbWV9JzwvYj4/IHdpdGggPGI+JHtzZWN0aW9uTGVuZ3RofSAke3F1ZXN0aW9uX3RleHR9PC9iPiBUaGlzIGFjdGlvbiBjYW5ub3QgYmUgdW5kb25lLmAsXHJcbiAgICAgIGJ1dHRvbnR5cGU6ICdkZWxldGUnXHJcbiAgICB9XHJcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKFRyYXhwb3B1cENvbXBvbmVudCx7Y2VudGVyZWQ6IHRydWUsIHNpemU6ICdtZCd9KTtcclxuICAgIGRpYWxvZ1JlZi5jb21wb25lbnRJbnN0YW5jZS5kYXRhID0gcG9wdXBjb250ZW50XHJcbiAgICBkaWFsb2dSZWYucmVzdWx0LnRoZW4oKHJlcykgPT4ge1xyXG4gICAgICBpZiAocmVzID09ICdkZWxldGUnKSB7XHJcbiAgICAgICAgKHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5KS5yZW1vdmVBdChzZWN0aW9uSW5kZXgpXHJcbiAgICAgICAgdGhpcy5jaGFuZ2VkZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgQWRkTW9yZUFucyhzZWN0aW9uaW5kZXg6IGFueSwgcXVlc3Rpb25JbmRleDogYW55LHR5cGU6c3RyaW5nKSB7XHJcbiAgICBsZXQgYW5zb3B0aW9uID1cclxuICAgICAgKCgoKHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5KVxyXG4gICAgICAgIC5hdChzZWN0aW9uaW5kZXgpIGFzIEZvcm1Hcm91cClcclxuICAgICAgICAuZ2V0KCdxdWVzdGlvbnMnKSBhcyBGb3JtQXJyYXkpXHJcbiAgICAgICAgLmF0KHF1ZXN0aW9uSW5kZXgpXHJcbiAgICAgICAgLmdldCgnYW5zd2VycycpIGFzIEZvcm1BcnJheSk7XHJcbiAgICBsZXQgYW5zb3B0aW9uTGVuZ3RoID0gYW5zb3B0aW9uLmxlbmd0aDtcclxuICAgIGlmIChhbnNvcHRpb25MZW5ndGggPD0gMjkpIHtcclxuICAgICAgYW5zb3B0aW9uLnB1c2goXHJcbiAgICAgICAgdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgICAgICAnYW5zd2VyJzogdGhpcy5mYi5jb250cm9sKGBgLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCxub1doaXRlc3BhY2VWYWxpZGF0b3IoKV0pLFxyXG4gICAgICAgICAgJ2Fuc3dlcm9wdGlvbk51bWJlcic6IHRoaXMuZmIuY29udHJvbChhbnNvcHRpb25MZW5ndGggKyAxKSxcclxuICAgICAgICAgICdzb3BGbGFnJzogdGhpcy5mYi5jb250cm9sKGZhbHNlLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxyXG4gICAgICAgICAgJ3ZhbGlkYXRpb24nOiB0aGlzLmZiLmNvbnRyb2woZmFsc2UsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXHJcbiAgICAgICAgICAndmFsaWRhdGlvblR5cGUnOiB0aGlzLmZiLmNvbnRyb2woJ0NhcHR1cmUgSW1hZ2UnLCB0aGlzLmFsbG93ZWRWYWx1ZXNWYWxpZGF0b3IoW1wiQ2FwdHVyZSBJbWFnZVwiLCBcIkRlc2NyaXB0aXZlIEFuc3dlclwiLFwiQ2FwdHVyZSBWaWRlb1wiXSkpLFxyXG4gICAgICAgICAgXCJtdWx0aVJlZmVyZW5jZUltYWdlXCI6IHRoaXMuZmIuYXJyYXkoW10pLFxyXG4gICAgICAgICAgJ2FsbG93VXBsb2FkZnJvbUdhbGxlcnknOiB0aGlzLmZiLmNvbnRyb2woZmFsc2UpLFxyXG4gICAgICAgICAgLi4uKHR5cGUgPT0gJ211bHRpcGxlY2hvaWNlc2luZ2xlJyA/IHtcImxpbmtlZFF1ZXN0aW9uXCI6dGhpcy5mYi5jb250cm9sKDAsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksJ3Nob3dMaW5rZWQnOnRoaXMuZmIuY29udHJvbChmYWxzZSwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKX0gOiB7fSksXHJcbiAgICAgICAgICAncnVuQUknOiB0aGlzLmZiLmNvbnRyb2woZmFsc2UpLFxyXG4gICAgICAgICAgJ2Rlc2NyaXB0aXZldHlwZSc6dGhpcy5mYi5jb250cm9sKCcnKSxcclxuICAgICAgICAgIC4uLih0eXBlID09ICdtdWx0aXBsZUltYWdlJyA/IHsnZGVzY3JpcHRpdmV0eXBlJzp0aGlzLmZiLmNvbnRyb2woJ3RleHQnKX06e30pLFxyXG4gICAgICAgICAgJ3JlZmVyZW5jZUltYWdlJzp0aGlzLmZiLmNvbnRyb2woJycpLFxyXG4gICAgICAgICAgJ3J1bkFJRmVhdHVyZXMnOnRoaXMuZmIuYXJyYXkoW10pLFxyXG4gICAgICAgICAgJ3J1bkFJRGVzY3JpcHRpb24nOiB0aGlzLmZiLmNvbnRyb2woJycpLFxyXG4gICAgICAgICAgJ2NvbXBsaWFuY2VTY29yZSc6dGhpcy5mYi5jb250cm9sKDApXHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGRlbGV0ZUFuc3dlcihzZWN0aW9uSW5kZXg6IG51bWJlciwgcXVlc3Rpb25JbmRleDogbnVtYmVyLCBhZGRtb3JlcW5JbmRleDogbnVtYmVyLGFuc0luZGV4Om51bWJlciA9IC0xKSB7XHJcbiAgICBpZihhbnNJbmRleCAhPSAtMSkge1xyXG4gICAgICB0aGlzLmdldEZvcm1BcnJheVF1ZXN0aW9uc0Fuc3dlcihzZWN0aW9uSW5kZXgsIHF1ZXN0aW9uSW5kZXgsICdhbnN3ZXJzJyxhbnNJbmRleCkucmVtb3ZlQXQoYWRkbW9yZXFuSW5kZXgpOyAgICBcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLmdldEZvcm1BcnJheVF1ZXN0aW9uc0Fuc3dlcihzZWN0aW9uSW5kZXgsIHF1ZXN0aW9uSW5kZXgsICdhbnN3ZXJzJyxhbnNJbmRleCkucmVtb3ZlQXQoYWRkbW9yZXFuSW5kZXgpOyAgICBcclxuICAgIH1cclxuICAgIHRoaXMuQ2hlY2tsaXN0Rm9ybS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgfVxyXG5cclxuICBjbG9uZVF1ZXN0aW9uKHNlY3Rpb25pbmRleDogYW55LCBxdWVzdGlvbmluZGV4OiBhbnkpIHtcclxuICAgIGxldCBjbG9uZVF1ZXN0aW9uID0gKCh0aGlzLmdldFNlY3Rpb25Gb3JtQ29udHJvbChzZWN0aW9uaW5kZXgsICdxdWVzdGlvbnMnKSBhcyBGb3JtQXJyYXkpLmF0KHF1ZXN0aW9uaW5kZXgpIGFzIEZvcm1Hcm91cCkudmFsdWU7XHJcbiAgICBsZXQgcXVlc3Rpb25MZW5ndGggPSAgKHRoaXMuZ2V0U2VjdGlvbkZvcm1Db250cm9sKHNlY3Rpb25pbmRleCwgJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheSkudmFsdWU7XHJcbiAgICBsZXQgcXVlc3Rpb246IGFueTtcclxuICAgIGxldCBhbnN3ZXI6IGFueTtcclxuICAgIGlmIChjbG9uZVF1ZXN0aW9uLmFuc3dlcnMpIHtcclxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkoY2xvbmVRdWVzdGlvbi5hbnN3ZXJzKSAmJiBjbG9uZVF1ZXN0aW9uLmFuc3dlcnMubGVuZ3RoKSB7XHJcbiAgICAgICAgYW5zd2VyID0gW107XHJcbiAgICAgICAgY2xvbmVRdWVzdGlvbi5hbnN3ZXJzLmZvckVhY2goKGs6IGFueSkgPT4ge1xyXG4gICAgICAgICAgYW5zd2VyLnB1c2goXHJcbiAgICAgICAgICAgIHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICAgICAgICAgIC4uLighWydpbWFnZScsICdkZXNjcmlwdGl2ZUltYWdlJywnbXVsdGlwbGVJbWFnZSddLmluY2x1ZGVzKGNsb25lUXVlc3Rpb24/LmFuc3dlclR5cGUpICYmIGNsb25lUXVlc3Rpb24/LmFuc3dlclR5cGUgIT0gJ3ZpZGVvJyA/IHsgJ2Fuc3dlcic6IHRoaXMuZmIuY29udHJvbChrPy5hbnN3ZXIsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSkgfSA6IHt9KSxcclxuICAgICAgICAgICAgICAuLi4oIVsnaW1hZ2UnLCAnZGVzY3JpcHRpdmVJbWFnZScsJ211bHRpcGxlSW1hZ2UnXS5pbmNsdWRlcyhjbG9uZVF1ZXN0aW9uPy5hbnN3ZXJUeXBlKSAmJiBjbG9uZVF1ZXN0aW9uPy5hbnN3ZXJUeXBlICE9ICd2aWRlbycgPyB7ICdhbnN3ZXJvcHRpb25OdW1iZXInOiB0aGlzLmZiLmNvbnRyb2woaz8uYW5zd2Vyb3B0aW9uTnVtYmVyICsgMSkgfSA6IHt9KSxcclxuICAgICAgICAgICAgICAuLi4oIVsnaW1hZ2UnLCAnZGVzY3JpcHRpdmVJbWFnZScsJ211bHRpcGxlSW1hZ2UnXS5pbmNsdWRlcyhjbG9uZVF1ZXN0aW9uPy5hbnN3ZXJUeXBlKSAmJiBjbG9uZVF1ZXN0aW9uPy5hbnN3ZXJUeXBlICE9ICd2aWRlbycgPyB7ICdzb3BGbGFnJzogdGhpcy5mYi5jb250cm9sKGs/LnNvcEZsYWcgPyBrPy5zb3BGbGFnIDogZmFsc2UsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSkgfSA6IHt9KSxcclxuICAgICAgICAgICAgICAuLi4oIVsnaW1hZ2UnLCAnZGVzY3JpcHRpdmVJbWFnZScsJ211bHRpcGxlSW1hZ2UnXS5pbmNsdWRlcyhjbG9uZVF1ZXN0aW9uPy5hbnN3ZXJUeXBlKSAmJiBjbG9uZVF1ZXN0aW9uPy5hbnN3ZXJUeXBlICE9ICd2aWRlbycgPyB7ICd2YWxpZGF0aW9uJzogdGhpcy5mYi5jb250cm9sKGs/LnZhbGlkYXRpb24sIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSkgfSA6IHt9KSxcclxuICAgICAgICAgICAgICAuLi4oIVsnaW1hZ2UnLCAnZGVzY3JpcHRpdmVJbWFnZScsJ211bHRpcGxlSW1hZ2UnXS5pbmNsdWRlcyhjbG9uZVF1ZXN0aW9uPy5hbnN3ZXJUeXBlKSAmJiBjbG9uZVF1ZXN0aW9uPy5hbnN3ZXJUeXBlICE9ICd2aWRlbycgPyB7ICd2YWxpZGF0aW9uVHlwZSc6IHRoaXMuZmIuY29udHJvbChrPy52YWxpZGF0aW9uVHlwZSwgdGhpcy5hbGxvd2VkVmFsdWVzVmFsaWRhdG9yKFtcIkNhcHR1cmUgSW1hZ2VcIiwgXCJEZXNjcmlwdGl2ZSBBbnN3ZXJcIiwgXCJDYXB0dXJlIFZpZGVvXCJdKSkgfSA6IHt9KSxcclxuICAgICAgICAgICAgICAuLi4oIVsnZGVzY3JpcHRpdmUnLCdpbWFnZScsICdkZXNjcmlwdGl2ZUltYWdlJywnbXVsdGlwbGVJbWFnZScsJ2RhdGUnLCdpbWFnZS92aWRlbyddLmluY2x1ZGVzKGNsb25lUXVlc3Rpb24/LmFuc3dlclR5cGUpID8geyBcIm11bHRpUmVmZXJlbmNlSW1hZ2VcIjogdGhpcy5mYi5hcnJheShrPy5tdWx0aVJlZmVyZW5jZUltYWdlKSB9IDoge30pLFxyXG4gICAgICAgICAgICAgIC4uLigoIVsnZGVzY3JpcHRpdmUnLCdpbWFnZScsICdkZXNjcmlwdGl2ZUltYWdlJywnbXVsdGlwbGVJbWFnZScsJ2RhdGUnLCdpbWFnZS92aWRlbyddLmluY2x1ZGVzKGNsb25lUXVlc3Rpb24/LmFuc3dlclR5cGUpKSA/IHsgJ2FsbG93VXBsb2FkZnJvbUdhbGxlcnknOiB0aGlzLmZiLmNvbnRyb2woaz8uYWxsb3dVcGxvYWRmcm9tR2FsbGVyeSA9PSB0cnVlID8gdHJ1ZSA6IGZhbHNlKSB9IDoge30pLFxyXG4gICAgICAgICAgICAgIC4uLighWydkZXNjcmlwdGl2ZScsJ2ltYWdlJywgJ2Rlc2NyaXB0aXZlSW1hZ2UnLCdtdWx0aXBsZUltYWdlJywnZGF0ZScsJ2ltYWdlL3ZpZGVvJ10uaW5jbHVkZXMoY2xvbmVRdWVzdGlvbj8uYW5zd2VyVHlwZSkgPyB7ICdydW5BSSc6IHRoaXMuZmIuY29udHJvbChrPy5ydW5BSSA/IGs/LnJ1bkFJIDogZmFsc2UpIH0gOiB7fSksXHJcbiAgICAgICAgICAgICAgLi4uKFsnbXVsdGlwbGVjaG9pY2VzaW5nbGUnLCd5ZXMvbm8nXS5pbmNsdWRlcyhjbG9uZVF1ZXN0aW9uPy5hbnN3ZXJUeXBlKSA/IHsgJ3Nob3dMaW5rZWQnOiBmYWxzZSB9IDoge30pLFxyXG4gICAgICAgICAgICAgIC4uLihbJ211bHRpcGxlY2hvaWNlc2luZ2xlJywneWVzL25vJ10uaW5jbHVkZXMoY2xvbmVRdWVzdGlvbj8uYW5zd2VyVHlwZSkgPyB7ICdsaW5rZWRRdWVzdGlvbic6IDAgfSA6IHt9KSxcclxuICAgICAgICAgICAgICAuLi4oWydtdWx0aXBsZWNob2ljZXNpbmdsZScsJ3llcy9ubyddLmluY2x1ZGVzKGNsb25lUXVlc3Rpb24/LmFuc3dlclR5cGUpID8geyAnbGlua2VkUXVlc3Rpb24nOiAwIH0gOiB7fSksXHJcbiAgICAgICAgICAgICAgZGVzY3JpcHRpdmV0eXBlOnRoaXMuZmIuY29udHJvbChrPy5kZXNjcmlwdGl2ZXR5cGUpLFxyXG4gICAgICAgICAgICAgICdyZWZlcmVuY2VJbWFnZSc6dGhpcy5mYi5jb250cm9sKCcnKSxcclxuICAgICAgICAgICAgICAncnVuQUlGZWF0dXJlcyc6dGhpcy5mYi5hcnJheShrPy5ydW5BSUZlYXR1cmVzIHx8IFtdKSxcclxuICAgICAgICAgICAgICAncnVuQUlEZXNjcmlwdGlvbic6IHRoaXMuZmIuY29udHJvbCgnJyksXHJcbiAgICAgICAgICAgICAgJ2NvbXBsaWFuY2VTY29yZSc6dGhpcy5mYi5jb250cm9sKDApXHJcbiAgICAgICAgICAgIH0pKTtcclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIGlmKHR5cGVvZiBjbG9uZVF1ZXN0aW9uLmFuc3dlcnMgPT09ICdvYmplY3QnICYmIGNsb25lUXVlc3Rpb24uYW5zd2VycyAhPT0gbnVsbCkge1xyXG4gICAgICAgIGFuc3dlciA9IHRoaXMuZmIuZ3JvdXAoeyAgICAgICAgICBcclxuICAgICAgICAgIC4uLihbJ2ltYWdlJywgJ2Rlc2NyaXB0aXZlSW1hZ2UnLCdtdWx0aXBsZUltYWdlJ10uaW5jbHVkZXMoY2xvbmVRdWVzdGlvbj8uYW5zd2VyVHlwZSkgPyB7IFwibXVsdGlSZWZlcmVuY2VJbWFnZVwiOiB0aGlzLmZiLmFycmF5KGNsb25lUXVlc3Rpb24/LmFuc3dlcnM/Lm11bHRpUmVmZXJlbmNlSW1hZ2UpIH0gOiB7fSksXHJcbiAgICAgICAgICAuLi4oKFsnaW1hZ2UnLCAnZGVzY3JpcHRpdmVJbWFnZScsJ211bHRpcGxlSW1hZ2UnLCdpbWFnZS92aWRlbyddLmluY2x1ZGVzKGNsb25lUXVlc3Rpb24/LmFuc3dlclR5cGUpIHx8IGNsb25lUXVlc3Rpb24/LmFuc3dlclR5cGUgPT0gJ3ZpZGVvJykgPyB7ICdhbGxvd1VwbG9hZGZyb21HYWxsZXJ5JzogdGhpcy5mYi5jb250cm9sKGNsb25lUXVlc3Rpb24/LmFuc3dlcnM/LmFsbG93VXBsb2FkZnJvbUdhbGxlcnkgPT0gdHJ1ZSA/IHRydWUgOiBmYWxzZSkgfSA6IHt9KSxcclxuICAgICAgICAgIC4uLihbJ2ltYWdlJywgJ2Rlc2NyaXB0aXZlSW1hZ2UnLCdtdWx0aXBsZUltYWdlJ10uaW5jbHVkZXMoY2xvbmVRdWVzdGlvbj8uYW5zd2VyVHlwZSkgPyB7ICdydW5BSSc6IHRoaXMuZmIuY29udHJvbChjbG9uZVF1ZXN0aW9uPy5hbnN3ZXJzPy5ydW5BSSA/IGNsb25lUXVlc3Rpb24/LmFuc3dlcnM/LnJ1bkFJIDogZmFsc2UpIH0gOiB7fSksXHJcbiAgICAgICAgICAuLi4oWydtdWx0aXBsZUltYWdlJ10uaW5jbHVkZXMoY2xvbmVRdWVzdGlvbj8uYW5zd2VyVHlwZSkgPyB7IGRlc2NyaXB0aXZldHlwZTp0aGlzLmZiLmNvbnRyb2woY2xvbmVRdWVzdGlvbj8uYW5zd2Vycz8uZGVzY3JpcHRpdmV0eXBlKSB9IDoge30pLFxyXG4gICAgICAgICAgLi4uKFsnbGluZWFyc2NhbGUnXS5pbmNsdWRlcyhjbG9uZVF1ZXN0aW9uPy5hbnN3ZXJUeXBlKSA/IHsgJ3JhbmdlU3RhcnQnOnRoaXMuZmIuY29udHJvbChjbG9uZVF1ZXN0aW9uPy5hbnN3ZXJzLnJhbmdlU3RhcnQpLCdyYW5nZUVuZCc6dGhpcy5mYi5jb250cm9sKGNsb25lUXVlc3Rpb24/LmFuc3dlcnMucmFuZ2VFbmQpIH0gOiB7fSksXHJcbiAgICAgICAgICAuLi4oWydkYXRlJ10uaW5jbHVkZXMoY2xvbmVRdWVzdGlvbj8uYW5zd2VyVHlwZSkgPyB7ICdoaXN0b3JpY0RhdGUnOnRoaXMuZmIuY29udHJvbChjbG9uZVF1ZXN0aW9uPy5hbnN3ZXJzLmhpc3RvcmljRGF0ZSksc3RhcnREYXRlOnRoaXMuZmIuY29udHJvbCh0aGlzLmRheWpzKCkuZm9ybWF0KCdERC1NTS1ZWVlZJykpLGVuZERhdGU6dGhpcy5mYi5jb250cm9sKHRoaXMuZGF5anMoKS5mb3JtYXQoJ0RELU1NLVlZWVknKSl9IDoge30pLFxyXG4gICAgICAgICAgJ3JlZmVyZW5jZUltYWdlJzp0aGlzLmZiLmNvbnRyb2woJycpLFxyXG4gICAgICAgICAgJ3J1bkFJRmVhdHVyZXMnOnRoaXMuZmIuYXJyYXkoY2xvbmVRdWVzdGlvbj8ucnVuQUlGZWF0dXJlcyB8fCBbXSksXHJcbiAgICAgICAgICAncnVuQUlEZXNjcmlwdGlvbic6IHRoaXMuZmIuY29udHJvbChjbG9uZVF1ZXN0aW9uPy5ydW5BSURlc2NyaXB0aW9uIHx8ICcnKSxcclxuICAgICAgICAgICAuLi4oWydpbWFnZS92aWRlbyddLmluY2x1ZGVzKGNsb25lUXVlc3Rpb24/LmFuc3dlclR5cGUpICYmIHsgJ2xpbWl0Jzp0aGlzLmZiLmNvbnRyb2woY2xvbmVRdWVzdGlvbj8uYW5zd2Vycy5saW1pdCksJ2ltYWdlTGltaXQnOnRoaXMuZmIuY29udHJvbChjbG9uZVF1ZXN0aW9uPy5hbnN3ZXJzLmltYWdlTGltaXQpLCd2aWRlb0xpbWl0Jzp0aGlzLmZiLmNvbnRyb2woY2xvbmVRdWVzdGlvbj8uYW5zd2Vycy52aWRlb0xpbWl0KX0pLFxyXG4gICAgICAgICAgLi4uKFsnZGF0ZScsJ2xpbmVhcnNjYWxlJywnaW1hZ2UnXS5pbmNsdWRlcyhjbG9uZVF1ZXN0aW9uPy5hbnN3ZXJUeXBlKSAmJiB7bWF0Y2hlZENvdW50OnRoaXMuZmIuY29udHJvbCgwKSxub3RNYXRjaGVkQ291bnQ6dGhpcy5mYi5jb250cm9sKDApfSksXHJcbiAgICAgICAgICAuLi4oY2xvbmVRdWVzdGlvbj8uYW5zd2VyVHlwZSA9PSAnZGF0ZScgJiYge3FuU3RhcnREYXRlOnRoaXMuZmIuZ3JvdXAoe30pLHFuRW5kRGF0ZTp0aGlzLmZiLmdyb3VwKHt9KX0pXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIC8vIGlmKHR5cGVvZiBjbG9uZVF1ZXN0aW9uPy5xdWVzdGlvblJlZmVyZW5jZUltYWdlID09ICdzdHJpbmcnICYmIGNsb25lUXVlc3Rpb24/LnF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UgIT0gJycpIHtcclxuICAgIC8vICAgY2xvbmVRdWVzdGlvbi5tdWx0aVF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UgPSBbe2ltYWdlVVJMOmNsb25lUXVlc3Rpb24/LnF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UscnVuQUk6ZmFsc2V9XTtcclxuICAgIC8vIH1cclxuICAgIHF1ZXN0aW9uID0gdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgIFwicW5vXCI6IHRoaXMuZmIuY29udHJvbChxdWVzdGlvbkxlbmd0aC5sZW5ndGggKyAxKSxcclxuICAgICAgJ3FuYW1lJzogdGhpcy5mYi5jb250cm9sKGNsb25lUXVlc3Rpb24/LnFuYW1lLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCxub1doaXRlc3BhY2VWYWxpZGF0b3IoKV0pLFxyXG4gICAgICAnYW5zd2VyVHlwZSc6IHRoaXMuZmIuY29udHJvbChjbG9uZVF1ZXN0aW9uPy5hbnN3ZXJUeXBlLCB0aGlzLmFsbG93ZWRWYWx1ZXNWYWxpZGF0b3IoW1wiZGVzY3JpcHRpdmVcIiwgXCJ5ZXMvbm9cIiwgXCJtdWx0aXBsZWNob2ljZXNpbmdsZVwiLCBcIm11bHRpcGxlY2hvaWNlbXVsdGlwbGVcIixcImRlc2NyaXB0aXZlSW1hZ2VcIiwgXCJpbWFnZVwiLCBcInZpZGVvXCIsJ211bHRpcGxlSW1hZ2UnLCdkYXRlJywnbGluZWFyc2NhbGUnLCd0aW1lJywnaW1hZ2UvdmlkZW8nLCdkcm9wZG93biddKSksXHJcbiAgICAgIC4uLighWydkZXNjcmlwdGl2ZSddLmluY2x1ZGVzKGNsb25lUXVlc3Rpb24/LmFuc3dlclR5cGUpID8geyAnYW5zd2Vycyc6IChbJ2ltYWdlJywnZGVzY3JpcHRpdmVJbWFnZScsICd2aWRlbycsJ211bHRpcGxlSW1hZ2UnLCdsaW5lYXJzY2FsZScsJ3RpbWUnLCdpbWFnZS92aWRlbycsJ2RhdGUnXS5pbmNsdWRlcyhjbG9uZVF1ZXN0aW9uPy5hbnN3ZXJUeXBlKSkgPyBhbnN3ZXIgOiB0aGlzLmZiLmFycmF5KGFuc3dlcixbdW5pcXVlU3RyaW5nVmFsaWRhdG9yKCldKSB9IDoge30pLFxyXG4gICAgICAncnVuQUknOiB0aGlzLmZiLmNvbnRyb2woY2xvbmVRdWVzdGlvbj8ucnVuQUksIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXHJcbiAgICAgICdydW5BSURlc2NyaXB0aW9uJzogdGhpcy5mYi5jb250cm9sKGNsb25lUXVlc3Rpb24/LnJ1bkFJRGVzY3JpcHRpb24gfHwgJycpLFxyXG4gICAgICAnYWxsb3dVcGxvYWRmcm9tR2FsbGVyeSc6IHRoaXMuZmIuY29udHJvbChjbG9uZVF1ZXN0aW9uPy5hbGxvd1VwbG9hZGZyb21HYWxsZXJ5KSxcclxuICAgICAgJ2xpbmtUeXBlJzogdGhpcy5mYi5jb250cm9sKGZhbHNlKSxcclxuICAgICAgJ2Rlc2NyaXB0aXZldHlwZSc6dGhpcy5mYi5jb250cm9sKGNsb25lUXVlc3Rpb24/LmRlc2NyaXB0aXZldHlwZSksXHJcbiAgICAgIFwibXVsdGlRdWVzdGlvblJlZmVyZW5jZUltYWdlXCI6dGhpcy5mYi5hcnJheShjbG9uZVF1ZXN0aW9uPy5tdWx0aVF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UpLFxyXG4gICAgICAncXVlc3Rpb25SZWZlcmVuY2VJbWFnZSc6dGhpcy5mYi5jb250cm9sKCcnKSxcclxuICAgICAgJ3J1bkFJRmVhdHVyZXMnOnRoaXMuZmIuYXJyYXkoY2xvbmVRdWVzdGlvbj8ucnVuQUlGZWF0dXJlcyB8fCBbXSksICAgICAgXHJcbiAgICAgIFwidW5pcXVlcW5vXCI6IHRoaXMuZmIuY29udHJvbCgwKSxcclxuICAgICAgXCJ1bmlxdWVxaWRcIjogdGhpcy5mYi5jb250cm9sKCcnKSxcclxuICAgICAgXCJhbGxvd011bHRpcGxlXCI6dGhpcy5mYi5jb250cm9sKGZhbHNlKSxcclxuICAgICAgJ2NvbXBsaWFuY2UnOnRoaXMuZmIuY29udHJvbChmYWxzZSlcclxuICAgIH0pO1xyXG4gICAgLy8gdGhpcy51cGRhdGVDbG9uZWRsaW5rZWRRdWVzdGlvbk5vKHNlY3Rpb25pbmRleCwgY2xvbmVRdWVzdGlvbj8ucW5vKTtcclxuICAgICh0aGlzLmdldFNlY3Rpb25Gb3JtQ29udHJvbChzZWN0aW9uaW5kZXgsICdxdWVzdGlvbnMnKSBhcyBGb3JtQXJyYXkpLmluc2VydChjbG9uZVF1ZXN0aW9uPy5xbm8scXVlc3Rpb24pO1xyXG4gICAgdGhpcy5DaGVja2xpc3RGb3JtLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgIHRoaXMudXBkYXRlUXVlc3Rpb25Rbm9zKHNlY3Rpb25pbmRleCk7XHJcbiAgICB0aGlzLnN3YWxUb2FzdChgUXVlc3Rpb24gJHtjbG9uZVF1ZXN0aW9uPy5xbm99IGhhcyBiZWVuIGR1cGxpY2F0ZWQhYCk7XHJcbiAgICB0aGlzLmNoYW5nZWRldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZUNsb25lZGxpbmtlZFF1ZXN0aW9uTm8oc2VjSWR4Om51bWJlcixxaWR4Om51bWJlcikge1xyXG4gICAgbGV0IHF1ZXN0aW9ucyA9ICh0aGlzLmdldFNlY3Rpb25Gb3JtQXJyYXkoKS5hdChzZWNJZHgpLmdldCgncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5KTtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcXVlc3Rpb25zLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGxldCBhbnN3ZXJzID0gKHF1ZXN0aW9ucy5hdChpKSBhcyBGb3JtR3JvdXApPy5nZXQoJ2Fuc3dlcnMnKSBhcyBGb3JtQXJyYXk7XHJcbiAgICAgIGlmKGFuc3dlcnMpIHtcclxuICAgICAgICBmb3IobGV0IGo9MDtqPGFuc3dlcnMubGVuZ3RoO2orKykge1xyXG4gICAgICAgICAgbGV0IGxpbmtlZCA9IChhbnN3ZXJzLmF0KGopIGFzIEZvcm1Hcm91cCk/LmdldCgnc2hvd0xpbmtlZCcpPy52YWx1ZTtcclxuICAgICAgICAgIGlmKGxpbmtlZCkge1xyXG4gICAgICAgICAgICBsZXQgcXVlc3Rpb25ObyA9IChhbnN3ZXJzLmF0KGopIGFzIEZvcm1Hcm91cCk/LmdldCgnbGlua2VkUXVlc3Rpb24nKT8udmFsdWU7XHJcbiAgICAgICAgICAgIGlmKHF1ZXN0aW9uTm8gPiBxaWR4KSB7XHJcbiAgICAgICAgICAgICAgKGFuc3dlcnMuYXQoaikgYXMgRm9ybUdyb3VwKT8uZ2V0KCdsaW5rZWRRdWVzdGlvbicpPy5zZXRWYWx1ZShxdWVzdGlvbk5vICsgMSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNhdmVDaGVja2xpc3RRdWVzdGlvbnModHlwZTogc3RyaW5nKSB7XHJcbiAgICAgIGxldCBjaGVja2xpc3QgPSB0aGlzLkNoZWNrbGlzdEZvcm0udmFsdWU7XHJcbiAgICAgIC8vIGNvbnNvbGUubG9nKGNoZWNrbGlzdCwnY2hlY2tsaXN0JylcclxuICAgICAgaWYoIXRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ2NoZWNrbGlzdE5hbWUnKT8udmFsaWQpIHtcclxuICAgICAgICBsZXQgZXJyOiBzdHJpbmcgPSAnUGxlYXNlIGVudGVyIGNoZWNrbGlzdCBuYW1lISc7XHJcbiAgICAgICAgdGhpcy5zd2FsVG9hc3QoZXJyLCdlcnJvcicpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfSAgICAgIFxyXG4gICAgICBcclxuICAgICAgaWYgKCF0aGlzLkNoZWNrbGlzdEZvcm0udmFsaWQpIHtcclxuICAgICAgICB0aGlzLm1hcmtGb3JtQ29udHJvbHNBc1RvdWNoZWQodGhpcy5DaGVja2xpc3RGb3JtLDApO1xyXG4gICAgICAgIHRoaXMuc2Nyb2xsVG9FcnJvcnModGhpcy5DaGVja2xpc3RGb3JtLmdldCgnc2VjdGlvbnMnKSBhcyBGb3JtQXJyYXkpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBsZXQgc2VjdGlvbnMgPSBjaGVja2xpc3Quc2VjdGlvbnM7XHJcbiAgICAgIGlmKHR5cGUgPT0gJ3NhdmVBc0RyYWZ0Jykge1xyXG4gICAgICAgIGNoZWNrbGlzdC5zdWJtaXRUeXBlID0gJ3NhdmUnO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNoZWNrbGlzdC5zdWJtaXRUeXBlID0gJ2NvbmZpZ3VyZSc7XHJcbiAgICAgIH1cclxuICAgICAgaWYoIXNlY3Rpb25zLmxlbmd0aCkge1xyXG4gICAgICAgIGxldCBlcnI6IHN0cmluZyA9ICdQbGVhc2UgYWRkIGF0bGVhc3Qgb25lIHNlY3Rpb24hJztcclxuICAgICAgICB0aGlzLnN3YWxUb2FzdChlcnIsJ2Vycm9yJyk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2VjdGlvbnMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBpZih0eXBlID09ICdjb25maWd1cmUnICYmICFzZWN0aW9uc1tpXS5xdWVzdGlvbnMubGVuZ3RoKSB7XHJcbiAgICAgICAgICBsZXQgZXJyOiBzdHJpbmcgPSAnUGxlYXNlIGFkZCBhdGxlYXN0IG9uZSBxdWVzdGlvbiBpbiBzZWN0aW9uISc7XHJcbiAgICAgICAgICB0aGlzLnN3YWxUb2FzdChlcnIsJ2Vycm9yJyk7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCBmaW5kRXhpc3RzID0gc2VjdGlvbnMuZmlsdGVyKChlbGU6YW55LGluZGV4OmFueSkgPT4ge1xyXG4gICAgICAgICAgaWYoaW5kZXggIT0gaSAmJiBzZWN0aW9uc1tpXS5uYW1lLnRyaW0oKSA9PSBlbGUubmFtZS50cmltKCkpXHJcbiAgICAgICAgICAgIHJldHVybiBlbGU7XHJcbiAgICAgICAgfSlcclxuICAgICAgICBpZihmaW5kRXhpc3RzLmxlbmd0aCkge1xyXG4gICAgICAgICAgdGhpcy5zd2FsVG9hc3QoYCR7c2VjdGlvbnNbaV0ubmFtZX0gc2VjdGlvbiBuYW1lIGlzIER1cGxpY2F0ZWRgICwnZXJyb3InKTtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBzZWN0aW9uc1tpXS5xdWVzdGlvbnMubGVuZ3RoOyBqKyspIHtcclxuICAgICAgICAgIGxldCBhbnNUeXBlID0gc2VjdGlvbnNbaV0ucXVlc3Rpb25zW2pdLmFuc3dlclR5cGU7XHJcbiAgICAgICAgICBzZWN0aW9uc1tpXS5xdWVzdGlvbnNbal0ucW5hbWUgPSBzZWN0aW9uc1tpXS5xdWVzdGlvbnNbal0ucW5hbWUudHJpbSgpLnJlcGxhY2VBbGwoL1xcbi9nLCAnJylcclxuICAgICAgICAgIGxldCBmaW5kRXhpc3RzID0gc2VjdGlvbnNbaV0ucXVlc3Rpb25zLmZpbHRlcigoZWxlOmFueSxpbmRleDphbnkpID0+IHtcclxuICAgICAgICAgICAgaWYoaW5kZXggIT0gaiAmJiBzZWN0aW9uc1tpXS5xdWVzdGlvbnNbal0ucW5hbWUudHJpbSgpID09IGVsZS5xbmFtZS50cmltKCkpXHJcbiAgICAgICAgICAgICAgcmV0dXJuIGVsZTtcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgICBpZihmaW5kRXhpc3RzLmxlbmd0aCkge1xyXG4gICAgICAgICAgICB0aGlzLnN3YWxUb2FzdChgJHtzZWN0aW9uc1tpXS5xdWVzdGlvbnNbal0ucW5hbWV9IHF1ZXN0aW9uIG5hbWUgaXMgRHVwbGljYXRlZGAgLCdlcnJvcicpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZihhbnNUeXBlID09ICdsaW5lYXJzY2FsZScpIHtcclxuICAgICAgICAgICAgaWYoc2VjdGlvbnNbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnMucmFuZ2VTdGFydCA+PSBzZWN0aW9uc1tpXS5xdWVzdGlvbnNbal0uYW5zd2Vycy5yYW5nZUVuZCl7XHJcbiAgICAgICAgICAgICAgbGV0IGVycjogc3RyaW5nID0gJ01pbiB2YWx1ZSBtdXN0IGJlIGxlc3MgdGhhbiBtYXggdmFsdWUuJztcclxuICAgICAgICAgICAgICB0aGlzLnN3YWxUb2FzdChlcnIsJ2Vycm9yJyk7XHJcbiAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8vIGlmKHNlY3Rpb25zW2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzLmxpbmVhclR5cGUgIT0gJycgKXtcclxuICAgICAgICAgICAgLy8gICBpZihzZWN0aW9uc1tpXS5xdWVzdGlvbnNbal0uYW5zd2Vycy5taW5WYWx1ZSA+IHNlY3Rpb25zW2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzLm1heFZhbHVlKSB7XHJcbiAgICAgICAgICAgIC8vICAgICBsZXQgZXJyOiBzdHJpbmcgPSAnTWluIHZhbHVlIGlzIGdyZWF0ZXIgdGhhbiBNYXggVmFsdWUuJztcclxuICAgICAgICAgICAgLy8gICAgIHRoaXMuc3dhbFRvYXN0KGVyciwnZXJyb3InKTtcclxuICAgICAgICAgICAgLy8gICAgIHJldHVybjtcclxuICAgICAgICAgICAgLy8gICB9XHJcbiAgICAgICAgICAgIC8vIH1cclxuICAgICAgICAgICAgLy8gaWYoc2VjdGlvbnNbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnMubGluZWFyVHlwZSA9PSAnZGVncmVlJyAmJiAoc2VjdGlvbnNbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnMucmFuZ2VTdGFydCA8IC0yNzMuMTUgfHwgc2VjdGlvbnNbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnMucmFuZ2VFbmQgPCAtMjczLjE1KSkge1xyXG4gICAgICAgICAgICAvLyAgIGxldCBlcnI6IHN0cmluZyA9IFwiTWluIHZhbHVlIHNob3VsZG4ndCBncmVhdGVyIHRoYW4gLTI3My4xNVwiO1xyXG4gICAgICAgICAgICAvLyAgIHRoaXMuc3dhbFRvYXN0KGVyciwnZXJyb3InKTtcclxuICAgICAgICAgICAgLy8gICByZXR1cm47XHJcbiAgICAgICAgICAgIC8vIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmKGFuc1R5cGUgPT0gJ2ltYWdlL3ZpZGVvJykge1xyXG4gICAgICAgICAgICBpZihzZWN0aW9uc1tpXS5xdWVzdGlvbnNbal0uYW5zd2Vycy5saW1pdCAmJiAoIXNlY3Rpb25zW2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzLmltYWdlTGltaXQgfHwgIXNlY3Rpb25zW2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzLnZpZGVvTGltaXQpKXtcclxuICAgICAgICAgICAgICBsZXQgZXJyOiBzdHJpbmcgPSAnaW1hZ2UgJiB2aWRlbyBsaW1pdCBpcyByZXF1aXJlZCc7XHJcbiAgICAgICAgICAgICAgdGhpcy5zd2FsVG9hc3QoZXJyLCdlcnJvcicpO1xyXG4gICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYoYW5zVHlwZSAhPSAnZGVzY3JpcHRpdmUnKSB7XHJcbiAgICAgICAgICAgIGRlbGV0ZSBzZWN0aW9uc1tpXS5xdWVzdGlvbnNbal0uZGVzY3JpcHRpdmV0eXBlO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIGlmKGFuc1R5cGUgPT0gJ2RhdGUnKSB7XHJcbiAgICAgICAgICAgIGlmKHRoaXMuZGF5anMoc2VjdGlvbnNbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnMuc3RhcnREYXRlLCdERC1NTS1ZWVlZJykgPiB0aGlzLmRheWpzKHNlY3Rpb25zW2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzLmVuZERhdGUsJ0RELU1NLVlZWVknKSl7XHJcbiAgICAgICAgICAgICAgbGV0IGVycjogc3RyaW5nID0gJ1N0YXJ0IGRhdGUgaXMgZ3JlYXRlciB0aGFuIGVuZCBkYXRlJztcclxuICAgICAgICAgICAgICB0aGlzLnN3YWxUb2FzdChlcnIsJ2Vycm9yJyk7XHJcbiAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoW1wibXVsdGlwbGVjaG9pY2VtdWx0aXBsZVwiXS5pbmNsdWRlcyhhbnNUeXBlKSkge1xyXG4gICAgICAgICAgICBmb3IgKGxldCBrID0gMDsgayA8IHNlY3Rpb25zW2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzLmxlbmd0aDsgaysrKSB7XHJcbiAgICAgICAgICAgICAgc2VjdGlvbnNbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnNba11bJ3Nob3dMaW5rZWQnXSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgIHNlY3Rpb25zW2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzW2tdWydhbnN3ZXInXSA9IHNlY3Rpb25zW2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzW2tdWydhbnN3ZXInXS50cmltKCk7XHJcbiAgICAgICAgICAgICAgc2VjdGlvbnNbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnNba11bJ2xpbmtlZFF1ZXN0aW9uJ10gPSAwO1xyXG4gICAgICAgICAgICAgIHNlY3Rpb25zW2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzW2tdWydjb21wbGlhbmNlU2NvcmUnXSA9IHBhcnNlSW50KHNlY3Rpb25zW2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzW2tdWydjb21wbGlhbmNlU2NvcmUnXSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgc2VjdGlvbnNbaV0ucXVlc3Rpb25zW2pdLmFsbG93VXBsb2FkZnJvbUdhbGxlcnkgPSBmYWxzZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChbXCJtdWx0aXBsZWNob2ljZXNpbmdsZVwiLFwieWVzL25vXCJdLmluY2x1ZGVzKGFuc1R5cGUpKSB7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGsgPSAwOyBrIDwgc2VjdGlvbnNbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnMubGVuZ3RoOyBrKyspIHtcclxuICAgICAgICAgICAgICBzZWN0aW9uc1tpXS5xdWVzdGlvbnNbal0uYW5zd2Vyc1trXVsnYW5zd2VyJ10gPSBzZWN0aW9uc1tpXS5xdWVzdGlvbnNbal0uYW5zd2Vyc1trXVsnYW5zd2VyJ10udHJpbSgpO1xyXG4gICAgICAgICAgICAgIHNlY3Rpb25zW2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzW2tdWydjb21wbGlhbmNlU2NvcmUnXSA9IHBhcnNlSW50KHNlY3Rpb25zW2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzW2tdWydjb21wbGlhbmNlU2NvcmUnXSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmICh0eXBlb2Ygc2VjdGlvbnNbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnMgPT09ICdvYmplY3QnICYmXHJcbiAgICAgICAgICAgIHNlY3Rpb25zW2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzICE9PSBudWxsICYmXHJcbiAgICAgICAgICAgICFBcnJheS5pc0FycmF5KHNlY3Rpb25zW2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzKSB8fCBbJ2Rlc2NyaXB0aXZlJywnZGF0ZSddLmluY2x1ZGVzKGFuc1R5cGUpKSB7XHJcbiAgICAgICAgICAgIGxldCBpdGVtID0ge1xyXG4gICAgICAgICAgICAgIFwiYW5zd2VyXCI6ICcnLFxyXG4gICAgICAgICAgICAgIFwiYW5zd2Vyb3B0aW9uTnVtYmVyXCI6IDEsXHJcbiAgICAgICAgICAgICAgXCJzb3BGbGFnXCI6IGZhbHNlLFxyXG4gICAgICAgICAgICAgIFwidmFsaWRhdGlvblwiOiBmYWxzZSxcclxuICAgICAgICAgICAgICBcInZhbGlkYXRpb25UeXBlXCI6IFwiXCIsXHJcbiAgICAgICAgICAgICAgXCJ2YWxpZGF0aW9uQW5zd2VyXCI6IFwiXCIsXHJcbiAgICAgICAgICAgICAgXCJtdWx0aVJlZmVyZW5jZUltYWdlXCI6IHNlY3Rpb25zW2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzPy5tdWx0aVJlZmVyZW5jZUltYWdlID8gc2VjdGlvbnNbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnM/Lm11bHRpUmVmZXJlbmNlSW1hZ2UgOiBbXSxcclxuICAgICAgICAgICAgICBcInNob3dMaW5rZWRcIjpmYWxzZSxcclxuICAgICAgICAgICAgICBcImxpbmtlZFF1ZXN0aW9uXCI6MCxcclxuICAgICAgICAgICAgICAuLi4oYW5zVHlwZSA9PSAnbXVsdGlwbGVJbWFnZScgPyB7J2Rlc2NyaXB0aXZldHlwZSc6c2VjdGlvbnNbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnM/LmRlc2NyaXB0aXZldHlwZX06e30pLFxyXG4gICAgICAgICAgICAgLi4uKHNlY3Rpb25zW2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJUeXBlID09ICdsaW5lYXJzY2FsZScgPyB7J3JhbmdlU3RhcnQnOnNlY3Rpb25zW2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzPy5yYW5nZVN0YXJ0LCdyYW5nZUVuZCc6c2VjdGlvbnNbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnM/LnJhbmdlRW5kLCdsaW5lYXJUeXBlJzpzZWN0aW9uc1tpXS5xdWVzdGlvbnNbal0uYW5zd2Vycz8ubGluZWFyVHlwZSwnbWluVmFsdWUnOnBhcnNlSW50KHNlY3Rpb25zW2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzPy5taW5WYWx1ZSksJ21heFZhbHVlJzpwYXJzZUludChzZWN0aW9uc1tpXS5xdWVzdGlvbnNbal0uYW5zd2Vycz8ubWF4VmFsdWUpfTp7fSksXHJcbiAgICAgICAgICAgICAgLi4uKHNlY3Rpb25zW2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJUeXBlID09ICdkYXRlJyA/IHsnaGlzdG9yaWNEYXRlJzpzZWN0aW9uc1tpXS5xdWVzdGlvbnNbal0uYW5zd2Vycz8uaGlzdG9yaWNEYXRlLCdzdGFydERhdGUnOnNlY3Rpb25zW2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzPy5zdGFydERhdGUsJ2VuZERhdGUnOnNlY3Rpb25zW2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzPy5lbmREYXRlfTp7fSksXHJcbiAgICAgICAgICAgICAgcnVuQUk6c2VjdGlvbnNbaV0/LnF1ZXN0aW9uc1tqXT8uYW5zd2Vycz8ucnVuQUkgPz8gZmFsc2UsXHJcbiAgICAgICAgICAgICAgcnVuQUlGZWF0dXJlczpzZWN0aW9uc1tpXS5xdWVzdGlvbnNbal0/LmFuc3dlcnM/LnJ1bkFJRmVhdHVyZXMgPz8gW10sXHJcbiAgICAgICAgICAgICAgcnVuQUlEZXNjcmlwdGlvbjogc2VjdGlvbnNbaV0ucXVlc3Rpb25zW2pdPy5hbnN3ZXJzPy5ydW5BSURlc2NyaXB0aW9uID8gc2VjdGlvbnNbaV0ucXVlc3Rpb25zW2pdPy5hbnN3ZXJzPy5ydW5BSURlc2NyaXB0aW9uIDogXCJcIixcclxuICAgICAgICAgICAgICAuLi4oYW5zVHlwZSA9PSAnaW1hZ2UvdmlkZW8nID8geydsaW1pdCc6c2VjdGlvbnNbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnM/LmxpbWl0LCd2aWRlb0xpbWl0JzpzZWN0aW9uc1tpXS5xdWVzdGlvbnNbal0uYW5zd2Vycz8udmlkZW9MaW1pdCwnaW1hZ2VMaW1pdCc6c2VjdGlvbnNbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnM/LmltYWdlTGltaXR9Ont9KSxcclxuICAgICAgICAgICAgICAuLi4oWydkYXRlJywnbGluZWFyc2NhbGUnLCdpbWFnZSddLmluY2x1ZGVzKHNlY3Rpb25zW2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJUeXBlKSAmJiB7J21hdGNoZWRDb3VudCc6cGFyc2VJbnQoc2VjdGlvbnNbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnM/Lm1hdGNoZWRDb3VudCksJ25vdE1hdGNoZWRDb3VudCc6cGFyc2VJbnQoc2VjdGlvbnNbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnM/Lm5vdE1hdGNoZWRDb3VudCl9KVxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICBzZWN0aW9uc1tpXS5xdWVzdGlvbnNbal0uYWxsb3dVcGxvYWRmcm9tR2FsbGVyeSA9IHNlY3Rpb25zW2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzPy5hbGxvd1VwbG9hZGZyb21HYWxsZXJ5ID8gc2VjdGlvbnNbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnM/LmFsbG93VXBsb2FkZnJvbUdhbGxlcnkgOiBmYWxzZTtcclxuICAgICAgICAgICAgaWYoYW5zVHlwZSA9PSAnbXVsdGlwbGVJbWFnZScpIHtcclxuICAgICAgICAgICAgICBzZWN0aW9uc1tpXS5xdWVzdGlvbnNbal0uZGVzY3JpcHRpdmV0eXBlID0gc2VjdGlvbnNbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnM/LmRlc2NyaXB0aXZldHlwZSA/IHNlY3Rpb25zW2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzPy5kZXNjcmlwdGl2ZXR5cGUgOiAndGV4dCc7XHJcbiAgICAgICAgICAgICAgLy8gc2VjdGlvbnNbaV0ucXVlc3Rpb25zW2pdLm11bHRpUXVlc3Rpb25SZWZlcmVuY2VJbWFnZSA9IHNlY3Rpb25zW2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzPy5tdWx0aVJlZmVyZW5jZUltYWdlID8gc2VjdGlvbnNbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnM/Lm11bHRpUmVmZXJlbmNlSW1hZ2UgOiBbXTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBzZWN0aW9uc1tpXS5xdWVzdGlvbnNbal0uYW5zd2VycyA9IFtpdGVtXTtcclxuICAgICAgICAgICAgLy8gc2VjdGlvbnNbaV0ucXVlc3Rpb25zW2pdLnJ1bkFJID0gc2VjdGlvbnNbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnMucnVuQUk7XHJcbiAgICAgICAgICAgIC8vIHNlY3Rpb25zW2ldLnF1ZXN0aW9uc1tqXS5ydW5BSUZlYXR1cmVzID0gc2VjdGlvbnNbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnMucnVuQUlGZWF0dXJlcztcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgY2hlY2tsaXN0LnNlY3Rpb25zID0gc2VjdGlvbnM7XHJcbiAgICAgIGNoZWNrbGlzdC5jaGVja2xpc3ROYW1lID0gY2hlY2tsaXN0LmNoZWNrbGlzdE5hbWUudHJpbSgpLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgY2hlY2tsaXN0LmNoZWNrbGlzdE5hbWUudHJpbSgpLnNsaWNlKDEpO1xyXG4gICAgICBjaGVja2xpc3QuY2xpZW50SWQgPSB0aGlzLmNsaWVudElkO1xyXG4gICAgICBjaGVja2xpc3QuY2hlY2tsaXN0TmFtZSA9IGNoZWNrbGlzdC5jaGVja2xpc3ROYW1lLnRyaW0oKTtcclxuICAgICAgY2hlY2tsaXN0LmNoZWNrbGlzdERlc2NyaXB0aW9uID0gY2hlY2tsaXN0Py5jaGVja2xpc3REZXNjcmlwdGlvbiA/IGNoZWNrbGlzdD8uY2hlY2tsaXN0RGVzY3JpcHRpb24/LnRyaW0oKSA6ICcnO1xyXG4gICAgICB0aGlzLnNvcFNlcnZpY2UuY3JlYXRlQ2hlY2tsaXN0KGNoZWNrbGlzdCkucGlwZSh0YWtlVW50aWwodGhpcy5kZXRhY2gpKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgaWYocmVzKSB7XHJcbiAgICAgICAgICBpZiAocmVzPy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgICBpZih0eXBlPT0nY29uZmlndXJlJykge1xyXG4gICAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoYC9tYW5hZ2UvdHJheC9jb25maWd1cmU/Y2hlY2tMaXN0SWQ9JHtyZXMuZGF0YS5jaGVja2xpc3RJZH1gKTsgICAgIFxyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoJy9tYW5hZ2UvdHJheC9jaGVja2xpc3QnKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5zd2FsVG9hc3QoJ1VuYWJsZSB0byBjcmVhdGUgY2hlY2tsaXN0IScsJ2Vycm9yJyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuc3dhbFRvYXN0KCdVbmFibGUgdG8gY3JlYXRlIGNoZWNrbGlzdCEnLCdlcnJvcicpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSwoZXJyb3I6IGFueSkgPT4ge1xyXG4gICAgICAgIGxldCBlcnIgPSBlcnJvcj8uZXJyb3I/LmVycm9yPy5tZXNzYWdlIHx8ICdVbmFibGUgdG8gY3JlYXRlIGNoZWNrbGlzdCFTZXJ2ZXIgRXJyb3IhJztcclxuICAgICAgICB0aGlzLnN3YWxUb2FzdChlcnIsJ2Vycm9yJyk7XHJcbiAgICAgIH1cclxuICAgIClcclxuICB9XHJcblxyXG4gIHNhdmVBc0RyYWZ0UG9wKHR5cGU6IHN0cmluZykge1xyXG4gICAgICB0aGlzLnBvcHVwQ291bnQgPSB0aGlzLnBvcHVwQ291bnQgKyAxO1xyXG4gICAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKFRyYXhwb3B1cENvbXBvbmVudCx7Y2VudGVyZWQ6IHRydWUsIHNpemU6ICdtZCd9KTtcclxuICAgICAgZGlhbG9nUmVmLmNvbXBvbmVudEluc3RhbmNlLmRhdGEgPSB7XHJcbiAgICAgICAgaW1hZ2VzcmM6ICBgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCI1NlwiIGhlaWdodD1cIjU2XCIgdmlld0JveD1cIjAgMCA1NiA1NlwiIGZpbGw9XCJub25lXCI+PHJlY3QgeD1cIjRcIiB5PVwiNFwiIHdpZHRoPVwiNDhcIiBoZWlnaHQ9XCI0OFwiIHJ4PVwiMjRcIiBmaWxsPVwiI0ZFRjBDN1wiLz48cGF0aCBkPVwiTTI3Ljk5OTggMjQuMDAxMlYyOC4wMDEyTTI3Ljk5OTggMzIuMDAxMkgyOC4wMDk4TTI2LjI4OTggMTguODYxMkwxNy44MTk4IDMzLjAwMTJDMTcuNjQ1MSAzMy4zMDM2IDE3LjU1MjcgMzMuNjQ2NSAxNy41NTE4IDMzLjk5NTdDMTcuNTUwOCAzNC4zNDQ5IDE3LjY0MTMgMzQuNjg4MyAxNy44MTQyIDM0Ljk5MTdDMTcuOTg3MSAzNS4yOTUxIDE4LjIzNjUgMzUuNTQ3OSAxOC41Mzc1IDM1LjcyNUMxOC44Mzg1IDM1LjkwMjEgMTkuMTgwNiAzNS45OTczIDE5LjUyOTggMzYuMDAxMkgzNi40Njk4QzM2LjgxOSAzNS45OTczIDM3LjE2MTEgMzUuOTAyMSAzNy40NjIxIDM1LjcyNUMzNy43NjMxIDM1LjU0NzkgMzguMDEyNCAzNS4yOTUxIDM4LjE4NTQgMzQuOTkxN0MzOC4zNTgzIDM0LjY4ODMgMzguNDQ4OCAzNC4zNDQ5IDM4LjQ0NzggMzMuOTk1N0MzOC40NDY4IDMzLjY0NjUgMzguMzU0NCAzMy4zMDM2IDM4LjE3OTggMzMuMDAxMkwyOS43MDk4IDE4Ljg2MTJDMjkuNTMxNSAxOC41NjczIDI5LjI4MDUgMTguMzI0MyAyOC45ODEgMTguMTU1N0MyOC42ODE0IDE3Ljk4NyAyOC4zNDM1IDE3Ljg5ODQgMjcuOTk5OCAxNy44OTg0QzI3LjY1NiAxNy44OTg0IDI3LjMxODEgMTcuOTg3IDI3LjAxODYgMTguMTU1N0MyNi43MTkxIDE4LjMyNDMgMjYuNDY4IDE4LjU2NzMgMjYuMjg5OCAxOC44NjEyWlwiIHN0cm9rZT1cIiNEQzY4MDNcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgc3Ryb2tlPVwiI0ZGRkFFQlwiIHN0cm9rZS13aWR0aD1cIjhcIi8+PC9zdmc+YCxcclxuICAgICAgICB0aXRsZTpgVW5zYXZlZCBjaGFuZ2VzYCxcclxuICAgICAgICBjb250ZW50OmBEbyB5b3Ugd2FudCB0byBzYXZlIGFzIGRyYWZ0P2AsXHJcbiAgICAgICAgYnV0dG9udHlwZTonZHJhZnQnXHJcbiAgICAgIH1cclxuICAgICAgZGlhbG9nUmVmLnJlc3VsdC50aGVuKChyZXMpPT57XHJcbiAgICAgICAgaWYoIXJlcykge1xyXG4gICAgICAgICAgdGhpcy5wb3B1cENvdW50ID0gMDtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYocmVzKSB7XHJcbiAgICAgICAgICBpZih0eXBlID09ICdjcmVhdGUnKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2F2ZUNoZWNrbGlzdFF1ZXN0aW9ucygnc2F2ZUFzRHJhZnQnKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMudXBkYXRlQ2hlY2tsaXN0UXVlc3Rpb25zKCdzYXZlQXNEcmFmdCcpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVDaGVja2xpc3RRdWVzdGlvbnModHlwZTogc3RyaW5nKSB7XHJcbiAgICBsZXQgc2VjdGlvbnNhcnJheTogYW55ID0gW107XHJcbiAgICBsZXQgY2hlY2tsaXN0OiBhbnk7XHJcbiAgICBcclxuICAgIGlmKCF0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdjaGVja2xpc3ROYW1lJyk/LnZhbGlkKSB7XHJcbiAgICAgIGxldCBlcnI6IHN0cmluZyA9ICdQbGVhc2UgZW50ZXIgY2hlY2tsaXN0IG5hbWUhJztcclxuICAgICAgdGhpcy5zd2FsVG9hc3QoZXJyLCdlcnJvcicpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9ICAgICAgXHJcbiAgICBcclxuICAgIC8vIGNvbnNvbGUubG9nKHRoaXMuQ2hlY2tsaXN0Rm9ybSk7XHJcbiAgICAvLyByZXR1cm47XHJcbiAgICBjaGVja2xpc3QgPSB0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0UmF3VmFsdWUoKTtcclxuICAgIC8vIGNvbnNvbGUubG9nKHRoaXMuQ2hlY2tsaXN0Rm9ybSwnZm9ybScpXHJcbiAgICBpZiAoIXRoaXMuQ2hlY2tsaXN0Rm9ybS52YWxpZCkge1xyXG4gICAgICB0aGlzLm1hcmtGb3JtQ29udHJvbHNBc1RvdWNoZWQodGhpcy5DaGVja2xpc3RGb3JtLDApO1xyXG4gICAgICB0aGlzLnNjcm9sbFRvRXJyb3JzKHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5KTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgc2VjdGlvbnNhcnJheSA9IGNoZWNrbGlzdC5zZWN0aW9ucztcclxuICAgIGlmKCF0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdjaGVja2xpc3ROYW1lJyk/LnZhbGlkKSB7XHJcbiAgICAgIGxldCBlcnI6IHN0cmluZyA9ICdQbGVhc2UgZW50ZXIgY2hlY2tsaXN0IG5hbWUhJztcclxuICAgICAgdGhpcy5zd2FsVG9hc3QoZXJyLCdlcnJvcicpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZih0eXBlID09ICdzYXZlQXNEcmFmdCcpIHtcclxuICAgICAgY2hlY2tsaXN0LnN1Ym1pdFR5cGUgPSAnc2F2ZSc7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjaGVja2xpc3Quc3VibWl0VHlwZSA9ICdjb25maWd1cmUnO1xyXG4gICAgfVxyXG4gICAgaWYoIXNlY3Rpb25zYXJyYXkubGVuZ3RoKSB7XHJcbiAgICAgIGxldCBlcnI6IHN0cmluZyA9ICdQbGVhc2UgYWRkIGF0bGVhc3Qgb25lIHNlY3Rpb24hJztcclxuICAgICAgdGhpcy5zd2FsVG9hc3QoZXJyLCdlcnJvcicpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNlY3Rpb25zYXJyYXkubGVuZ3RoOyBpKyspIHtcclxuICAgICAgbGV0IHNlY3Rpb25OYW1lID0gc2VjdGlvbnNhcnJheVtpXS5uYW1lO1xyXG4gICAgICBsZXQgZmluZEV4aXN0cyA9IHNlY3Rpb25zYXJyYXkuZmlsdGVyKChlbGU6YW55LGluZGV4OmFueSkgPT4ge1xyXG4gICAgICAgICAgaWYoaW5kZXggIT0gaSAmJiBzZWN0aW9uTmFtZS50cmltKCkgPT0gZWxlLm5hbWUudHJpbSgpKVxyXG4gICAgICAgICAgICByZXR1cm4gZWxlO1xyXG4gICAgICB9KVxyXG4gICAgICBpZihmaW5kRXhpc3RzLmxlbmd0aCkge1xyXG4gICAgICAgIHRoaXMuc3dhbFRvYXN0KGAke3NlY3Rpb25OYW1lfSBzZWN0aW9uIG5hbWUgaXMgRHVwbGljYXRlZGAgLCdlcnJvcicpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBpZih0eXBlID09ICdjb25maWd1cmUnICYmICFzZWN0aW9uc2FycmF5W2ldLnF1ZXN0aW9ucy5sZW5ndGgpIHtcclxuICAgICAgICBsZXQgZXJyOiBzdHJpbmcgPSAnUGxlYXNlIGFkZCBhdGxlYXN0IG9uZSBxdWVzdGlvbiBpbiBzZWN0aW9uISc7XHJcbiAgICAgICAgdGhpcy5zd2FsVG9hc3QoZXJyLCdlcnJvcicpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHNlY3Rpb25zYXJyYXlbaV0ucXVlc3Rpb25zLmxlbmd0aDsgaisrKSB7XHJcbiAgICAgICAgc2VjdGlvbnNhcnJheVtpXS5xdWVzdGlvbnNbal0ucW5hbWUgPSBzZWN0aW9uc2FycmF5W2ldLnF1ZXN0aW9uc1tqXS5xbmFtZS50cmltKCkucmVwbGFjZUFsbCgvXFxuL2csICcnKVxyXG4gICAgICAgIGxldCBmaW5kRXhpc3RzID0gc2VjdGlvbnNhcnJheVtpXS5xdWVzdGlvbnMuZmlsdGVyKChlbGU6YW55LGluZGV4OmFueSkgPT4ge1xyXG4gICAgICAgICAgaWYoaW5kZXggIT0gaiAmJiBzZWN0aW9uc2FycmF5W2ldLnF1ZXN0aW9uc1tqXS5xbmFtZS50cmltKCkgPT0gZWxlLnFuYW1lLnRyaW0oKSlcclxuICAgICAgICAgICAgcmV0dXJuIGVsZTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIGlmKGZpbmRFeGlzdHMubGVuZ3RoKSB7XHJcbiAgICAgICAgICB0aGlzLnN3YWxUb2FzdChgJHtzZWN0aW9uc2FycmF5W2ldLnF1ZXN0aW9uc1tqXS5xbmFtZX0gcXVlc3Rpb24gbmFtZSBpcyBEdXBsaWNhdGVkYCAsJ2Vycm9yJyk7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmKHNlY3Rpb25zYXJyYXlbaV0ucXVlc3Rpb25zW2pdLmFuc3dlclR5cGUgPT0gJ2xpbmVhcnNjYWxlJykge1xyXG4gICAgICAgICAgaWYoc2VjdGlvbnNhcnJheVtpXS5xdWVzdGlvbnNbal0uYW5zd2Vycy5yYW5nZVN0YXJ0ID49IHNlY3Rpb25zYXJyYXlbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnMucmFuZ2VFbmQpe1xyXG4gICAgICAgICAgICAgIGxldCBlcnI6IHN0cmluZyA9ICdNaW4gdmFsdWUgbXVzdCBiZSBsZXNzIHRoYW4gbWF4IHZhbHVlLic7XHJcbiAgICAgICAgICAgICAgdGhpcy5zd2FsVG9hc3QoZXJyLCdlcnJvcicpO1xyXG4gICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvLyBpZihzZWN0aW9uc2FycmF5W2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzLmxpbmVhclR5cGUgIT0gJycgKXtcclxuICAgICAgICAgICAgLy8gICBpZihzZWN0aW9uc2FycmF5W2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzLm1pblZhbHVlID4gc2VjdGlvbnNhcnJheVtpXS5xdWVzdGlvbnNbal0uYW5zd2Vycy5tYXh2YWx1ZSkge1xyXG4gICAgICAgICAgICAvLyAgICAgbGV0IGVycjogc3RyaW5nID0gJ01pbiB2YWx1ZSBpcyBncmVhdGVyIHRoYW4gTWF4IFZhbHVlLic7XHJcbiAgICAgICAgICAgIC8vICAgICB0aGlzLnN3YWxUb2FzdChlcnIsJ2Vycm9yJyk7XHJcbiAgICAgICAgICAgIC8vICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIC8vICAgfVxyXG4gICAgICAgICAgICAvLyB9XHJcbiAgICAgICAgICAgIC8vIGlmKHNlY3Rpb25zYXJyYXlbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnMubGluZWFyVHlwZSA9PSAnZGVncmVlJyAmJiAoc2VjdGlvbnNhcnJheVtpXS5xdWVzdGlvbnNbal0uYW5zd2Vycy5yYW5nZVN0YXJ0IDwgLTI3My4xNSB8fCBzZWN0aW9uc2FycmF5W2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzLnJhbmdlRW5kIDwgLTI3My4xNSkpIHtcclxuICAgICAgICAgICAgLy8gICBsZXQgZXJyOiBzdHJpbmcgPSBcIk1pbiB2YWx1ZSBzaG91bGRuJ3QgZ3JlYXRlciB0aGFuIC0yNzMuMTVcIjtcclxuICAgICAgICAgICAgLy8gICB0aGlzLnN3YWxUb2FzdChlcnIsJ2Vycm9yJyk7XHJcbiAgICAgICAgICAgIC8vICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAvLyB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmKHNlY3Rpb25zYXJyYXlbaV0ucXVlc3Rpb25zW2pdLmFuc3dlclR5cGUgPT0gJ2RhdGUnKSB7XHJcbiAgICAgICAgICAgIGlmKHRoaXMuZGF5anMoc2VjdGlvbnNhcnJheVtpXS5xdWVzdGlvbnNbal0uYW5zd2Vycy5zdGFydERhdGUsJ0RELU1NLVlZWVknKSA+IHRoaXMuZGF5anMoc2VjdGlvbnNhcnJheVtpXS5xdWVzdGlvbnNbal0uYW5zd2Vycy5lbmREYXRlLCdERC1NTS1ZWVlZJykpe1xyXG4gICAgICAgICAgICAgIGxldCBlcnI6IHN0cmluZyA9ICdTdGFydCBkYXRlIGlzIGdyZWF0ZXIgdGhhbiBlbmQgZGF0ZSc7XHJcbiAgICAgICAgICAgICAgdGhpcy5zd2FsVG9hc3QoZXJyLCdlcnJvcicpO1xyXG4gICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIGlmKHNlY3Rpb25zYXJyYXlbaV0ucXVlc3Rpb25zW2pdLmFuc3dlclR5cGUgPT0gJ2ltYWdlL3ZpZGVvJykge1xyXG4gICAgICAgICAgaWYoc2VjdGlvbnNhcnJheVtpXS5xdWVzdGlvbnNbal0uYW5zd2Vycy5saW1pdCAmJiAoIXNlY3Rpb25zYXJyYXlbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnMuaW1hZ2VMaW1pdCB8fCAhc2VjdGlvbnNhcnJheVtpXS5xdWVzdGlvbnNbal0uYW5zd2Vycy52aWRlb0xpbWl0KSl7XHJcbiAgICAgICAgICAgIGxldCBlcnI6IHN0cmluZyA9ICdpbWFnZSAmIHZpZGVvIGxpbWl0IGlzIHJlcXVpcmVkJztcclxuICAgICAgICAgICAgdGhpcy5zd2FsVG9hc3QoZXJyLCdlcnJvcicpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmKHNlY3Rpb25zYXJyYXlbaV0ucXVlc3Rpb25zW2pdLmFuc3dlclR5cGUgIT0gJ2Rlc2NyaXB0aXZlJykge1xyXG4gICAgICAgICAgZGVsZXRlIHNlY3Rpb25zYXJyYXlbaV0ucXVlc3Rpb25zW2pdLmRlc2NyaXB0aXZldHlwZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKFtcIm11bHRpcGxlY2hvaWNlbXVsdGlwbGVcIl0uaW5jbHVkZXMoc2VjdGlvbnNhcnJheVtpXS5xdWVzdGlvbnNbal0uYW5zd2VyVHlwZSkpIHtcclxuICAgICAgICAgIGZvciAobGV0IGsgPSAwOyBrIDwgc2VjdGlvbnNhcnJheVtpXS5xdWVzdGlvbnNbal0uYW5zd2Vycy5sZW5ndGg7IGsrKykge1xyXG4gICAgICAgICAgICAvLyBzZWN0aW9uc2FycmF5W2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzW2tdWydhbnN3ZXJJbnB1dFN0eWxlJ10gPSBzZWN0aW9uc2FycmF5W2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJUeXBlO1xyXG4gICAgICAgICAgICAvLyBzZWN0aW9uc2FycmF5W2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzW2tdW1wibXVsdGlSZWZlcmVuY2VJbWFnZVwiXSA9IFwiXCI7XHJcbiAgICAgICAgICAgIC8vIHNlY3Rpb25zYXJyYXlbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnNba11bJ2FsbG93VXBsb2FkZnJvbUdhbGxlcnknXSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAvLyBzZWN0aW9uc2FycmF5W2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzW2tdWyd2YWxpZGF0aW9uQW5zd2VyJ10gPSBcIlwiOyAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAvLyBzZWN0aW9uc2FycmF5W2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzW2tdWydydW5BSSddID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHNlY3Rpb25zYXJyYXlbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnNba11bJ2Fuc3dlciddID0gc2VjdGlvbnNhcnJheVtpXS5xdWVzdGlvbnNbal0uYW5zd2Vyc1trXVsnYW5zd2VyJ10udHJpbSgpO1xyXG4gICAgICAgICAgICBzZWN0aW9uc2FycmF5W2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzW2tdWydzaG93TGlua2VkJ10gPSBmYWxzZTtcclxuICAgICAgICAgICAgc2VjdGlvbnNhcnJheVtpXS5xdWVzdGlvbnNbal0uYW5zd2Vyc1trXVsnbGlua2VkUXVlc3Rpb24nXSA9IDA7XHJcbiAgICAgICAgICAgIHNlY3Rpb25zYXJyYXlbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnNba11bJ2NvbXBsaWFuY2VTY29yZSddID0gcGFyc2VJbnQoc2VjdGlvbnNhcnJheVtpXS5xdWVzdGlvbnNbal0uYW5zd2Vyc1trXVsnY29tcGxpYW5jZVNjb3JlJ10pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgc2VjdGlvbnNhcnJheVtpXS5xdWVzdGlvbnNbal0uYWxsb3dVcGxvYWRmcm9tR2FsbGVyeSA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoW1wibXVsdGlwbGVjaG9pY2VzaW5nbGVcIixcInllcy9ub1wiXS5pbmNsdWRlcyhzZWN0aW9uc2FycmF5W2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJUeXBlKSkge1xyXG4gICAgICAgICAgICBmb3IgKGxldCBrID0gMDsgayA8IHNlY3Rpb25zYXJyYXlbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnMubGVuZ3RoOyBrKyspIHtcclxuICAgICAgICAgICAgICBzZWN0aW9uc2FycmF5W2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzW2tdWydhbnN3ZXInXSA9IHNlY3Rpb25zYXJyYXlbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnNba11bJ2Fuc3dlciddLnRyaW0oKTtcclxuICAgICAgICAgICAgICBzZWN0aW9uc2FycmF5W2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzW2tdWydjb21wbGlhbmNlU2NvcmUnXSA9IHBhcnNlSW50KHNlY3Rpb25zYXJyYXlbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnNba11bJ2NvbXBsaWFuY2VTY29yZSddKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIGlmICh0eXBlb2Ygc2VjdGlvbnNhcnJheVtpXS5xdWVzdGlvbnNbal0uYW5zd2VycyA9PT0gJ29iamVjdCcgJiZcclxuICAgICAgICAgIHNlY3Rpb25zYXJyYXlbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnMgIT09IG51bGwgJiZcclxuICAgICAgICAgICFBcnJheS5pc0FycmF5KHNlY3Rpb25zYXJyYXlbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnMpIHx8IFsnZGVzY3JpcHRpdmUnLCdkYXRlJ10uaW5jbHVkZXMoc2VjdGlvbnNhcnJheVtpXS5xdWVzdGlvbnNbal0uYW5zd2VyVHlwZSkpIHtcclxuICAgICAgICAgICAgbGV0IGl0ZW0gPSB7XHJcbiAgICAgICAgICAgICAgXCJhbnN3ZXJcIjogJycsXHJcbiAgICAgICAgICAgICAgXCJhbnN3ZXJvcHRpb25OdW1iZXJcIjogMSxcclxuICAgICAgICAgICAgICBcInNvcEZsYWdcIjogZmFsc2UsXHJcbiAgICAgICAgICAgICAgXCJ2YWxpZGF0aW9uXCI6IGZhbHNlLFxyXG4gICAgICAgICAgICAgIFwidmFsaWRhdGlvbkFuc3dlclwiOiBcIlwiLFxyXG4gICAgICAgICAgICAgIFwidmFsaWRhdGlvblR5cGVcIjogXCJcIixcclxuICAgICAgICAgICAgICBcIm11bHRpUmVmZXJlbmNlSW1hZ2VcIjogc2VjdGlvbnNhcnJheVtpXS5xdWVzdGlvbnNbal0uYW5zd2Vycz8ubXVsdGlSZWZlcmVuY2VJbWFnZSA/IHNlY3Rpb25zYXJyYXlbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnM/Lm11bHRpUmVmZXJlbmNlSW1hZ2UgOiBbXSxcclxuICAgICAgICAgICAgICBcInNob3dMaW5rZWRcIjpmYWxzZSxcclxuICAgICAgICAgICAgICBcImxpbmtlZFF1ZXN0aW9uXCI6MCxcclxuICAgICAgICAgICAgICByZWZlcmVuY2VJbWFnZTonJyxcclxuICAgICAgICAgICAgICAuLi4oc2VjdGlvbnNhcnJheVtpXS5xdWVzdGlvbnNbal0uYW5zd2VyVHlwZSA9PSAnbXVsdGlwbGVJbWFnZScgPyB7J2Rlc2NyaXB0aXZldHlwZSc6c2VjdGlvbnNhcnJheVtpXS5xdWVzdGlvbnNbal0uYW5zd2Vycz8uZGVzY3JpcHRpdmV0eXBlfTp7fSksXHJcbiAgICAgICAgICAgICAgLi4uKHNlY3Rpb25zYXJyYXlbaV0ucXVlc3Rpb25zW2pdLmFuc3dlclR5cGUgPT0gJ2xpbmVhcnNjYWxlJyA/IHsncmFuZ2VTdGFydCc6c2VjdGlvbnNhcnJheVtpXS5xdWVzdGlvbnNbal0uYW5zd2Vycz8ucmFuZ2VTdGFydCwncmFuZ2VFbmQnOnNlY3Rpb25zYXJyYXlbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnM/LnJhbmdlRW5kLCdsaW5lYXJUeXBlJzpzZWN0aW9uc2FycmF5W2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzPy5saW5lYXJUeXBlLCdtaW5WYWx1ZSc6cGFyc2VJbnQoc2VjdGlvbnNhcnJheVtpXS5xdWVzdGlvbnNbal0uYW5zd2Vycz8ubWluVmFsdWUpLCdtYXhWYWx1ZSc6cGFyc2VJbnQoc2VjdGlvbnNhcnJheVtpXS5xdWVzdGlvbnNbal0uYW5zd2Vycz8ubWF4VmFsdWUpfTp7fSksXHJcbiAgICAgICAgICAgICAgLi4uKHNlY3Rpb25zYXJyYXlbaV0ucXVlc3Rpb25zW2pdLmFuc3dlclR5cGUgPT0gJ2RhdGUnID8geydoaXN0b3JpY0RhdGUnOnNlY3Rpb25zYXJyYXlbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnM/Lmhpc3RvcmljRGF0ZSwnc3RhcnREYXRlJzpzZWN0aW9uc2FycmF5W2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzPy5zdGFydERhdGUsJ2VuZERhdGUnOnNlY3Rpb25zYXJyYXlbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnM/LmVuZERhdGV9Ont9KSxcclxuICAgICAgICAgICAgICBydW5BSTpzZWN0aW9uc2FycmF5W2ldLnF1ZXN0aW9uc1tqXT8uYW5zd2Vycz8ucnVuQUkgPz8gZmFsc2UsXHJcbiAgICAgICAgICAgICAgcnVuQUlGZWF0dXJlczpzZWN0aW9uc2FycmF5W2ldLnF1ZXN0aW9uc1tqXT8uYW5zd2Vycz8ucnVuQUlGZWF0dXJlcyA/PyBbXSxcclxuICAgICAgICAgICAgICBydW5BSURlc2NyaXB0aW9uOiBzZWN0aW9uc2FycmF5W2ldLnF1ZXN0aW9uc1tqXT8uYW5zd2Vycz8ucnVuQUlEZXNjcmlwdGlvbiA/IHNlY3Rpb25zYXJyYXlbaV0ucXVlc3Rpb25zW2pdPy5hbnN3ZXJzPy5ydW5BSURlc2NyaXB0aW9uIDogXCJcIixcclxuICAgICAgICAgICAgICAuLi4oc2VjdGlvbnNhcnJheVtpXS5xdWVzdGlvbnNbal0uYW5zd2VyVHlwZSA9PSAnaW1hZ2UvdmlkZW8nID8geydsaW1pdCc6c2VjdGlvbnNhcnJheVtpXS5xdWVzdGlvbnNbal0uYW5zd2Vycz8ubGltaXQsJ3ZpZGVvTGltaXQnOnNlY3Rpb25zYXJyYXlbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnM/LnZpZGVvTGltaXQsJ2ltYWdlTGltaXQnOnNlY3Rpb25zYXJyYXlbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnM/LmltYWdlTGltaXR9Ont9KSxcclxuICAgICAgICAgICAgICAuLi4oWydkYXRlJywnbGluZWFyc2NhbGUnLCdpbWFnZSddLmluY2x1ZGVzKHNlY3Rpb25zYXJyYXlbaV0ucXVlc3Rpb25zW2pdLmFuc3dlclR5cGUpICYmIHsnbWF0Y2hlZENvdW50JzpwYXJzZUludChzZWN0aW9uc2FycmF5W2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzPy5tYXRjaGVkQ291bnQpLCdub3RNYXRjaGVkQ291bnQnOnBhcnNlSW50KHNlY3Rpb25zYXJyYXlbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnM/Lm5vdE1hdGNoZWRDb3VudCl9KVxyXG5cclxuICAgICAgICAgICAgICAvLyBcImFsbG93VXBsb2FkZnJvbUdhbGxlcnlcIjogc2VjdGlvbnNhcnJheVtpXS5xdWVzdGlvbnNbal0uYW5zd2Vycz8uYWxsb3dVcGxvYWRmcm9tR2FsbGVyeSA/IHNlY3Rpb25zYXJyYXlbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnM/LmFsbG93VXBsb2FkZnJvbUdhbGxlcnkgOiBmYWxzZSxcclxuICAgICAgICAgICAgICAvLyBcImFuc3dlcklucHV0U3R5bGVcIjogc2VjdGlvbnNhcnJheVtpXS5xdWVzdGlvbnNbal0uYW5zd2Vycz8uYW5zd2VySW5wdXRTdHlsZSA/IHNlY3Rpb25zYXJyYXlbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnM/LmFuc3dlcklucHV0U3R5bGUgOiBcIlwiLFxyXG4gICAgICAgICAgICAgIC8vIFwicnVuQUlcIjogc2VjdGlvbnNhcnJheVtpXS5xdWVzdGlvbnNbal0uYW5zd2Vycy5ydW5BSSA/IHNlY3Rpb25zYXJyYXlbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnMucnVuQUkgOiBmYWxzZSxcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgc2VjdGlvbnNhcnJheVtpXS5xdWVzdGlvbnNbal0uYWxsb3dVcGxvYWRmcm9tR2FsbGVyeSA9IHNlY3Rpb25zYXJyYXlbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnM/LmFsbG93VXBsb2FkZnJvbUdhbGxlcnkgPyBzZWN0aW9uc2FycmF5W2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzPy5hbGxvd1VwbG9hZGZyb21HYWxsZXJ5IDogZmFsc2U7XHJcbiAgICAgICAgICAgIC8vIHNlY3Rpb25zYXJyYXlbaV0ucXVlc3Rpb25zW2pdLnJ1bkFJID0gc2VjdGlvbnNhcnJheVtpXS5xdWVzdGlvbnNbal0uYW5zd2Vycy5ydW5BSTtcclxuICAgICAgICAgICAgLy8gc2VjdGlvbnNhcnJheVtpXS5xdWVzdGlvbnNbal0ucnVuQUlGZWF0dXJlcyA9IHNlY3Rpb25zYXJyYXlbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnMucnVuQUlGZWF0dXJlcztcclxuICAgICAgICAgICAgaWYoc2VjdGlvbnNhcnJheVtpXS5xdWVzdGlvbnNbal0uYW5zd2VyVHlwZSA9PSAnbXVsdGlwbGVJbWFnZScpIHtcclxuICAgICAgICAgICAgICBzZWN0aW9uc2FycmF5W2ldLnF1ZXN0aW9uc1tqXS5kZXNjcmlwdGl2ZXR5cGUgPSBzZWN0aW9uc2FycmF5W2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzPy5kZXNjcmlwdGl2ZXR5cGUgPyBzZWN0aW9uc2FycmF5W2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzPy5kZXNjcmlwdGl2ZXR5cGUgOiAndGV4dCc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgc2VjdGlvbnNhcnJheVtpXS5xdWVzdGlvbnNbal0uYW5zd2VycyA9IFtpdGVtXTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGNoZWNrbGlzdC5zZWN0aW9ucyA9IHNlY3Rpb25zYXJyYXk7XHJcbiAgICBjaGVja2xpc3QuY2hlY2tsaXN0TmFtZSA9IGNoZWNrbGlzdC5jaGVja2xpc3ROYW1lLnRyaW0oKS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIGNoZWNrbGlzdC5jaGVja2xpc3ROYW1lLnRyaW0oKS5zbGljZSgxKTtcclxuICAgIGNoZWNrbGlzdC5jaGVja2xpc3ROYW1lID0gY2hlY2tsaXN0LmNoZWNrbGlzdE5hbWUudHJpbSgpO1xyXG4gICAgY2hlY2tsaXN0LmNoZWNrbGlzdERlc2NyaXB0aW9uID0gY2hlY2tsaXN0Py5jaGVja2xpc3REZXNjcmlwdGlvbiA/IGNoZWNrbGlzdD8uY2hlY2tsaXN0RGVzY3JpcHRpb24/LnRyaW0oKSA6ICcnO1xyXG4gICAgY2hlY2tsaXN0LmNsaWVudElkID0gdGhpcy5jbGllbnRJZDtcclxuICAgIHRoaXMuc29wU2VydmljZS5nZXRVcGRhdGVDaGVja2xpc3QodGhpcy5lZGl0dmFsdWUsIGNoZWNrbGlzdCkucGlwZSh0YWtlVW50aWwodGhpcy5kZXRhY2gpKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XHJcbiAgICAgIGlmKHJlcykge1xyXG4gICAgICAgIGlmIChyZXM/LmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgICBpZih0eXBlPT0nY29uZmlndXJlJykge1xyXG4gICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKGAvbWFuYWdlL3RyYXgvY29uZmlndXJlP2NoZWNrTGlzdElkPSR7cmVzLmRhdGEuY2hlY2tsaXN0SWR9JnNob3dFZGl0PXRydWVgKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoJy9tYW5hZ2UvdHJheC9jaGVja2xpc3QnKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5zd2FsVG9hc3QoJ1VuYWJsZSB0byB1cGRhdGUgY2hlY2tsaXN0IScsJ2Vycm9yJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuc3dhbFRvYXN0KCdVbmFibGUgdG8gdXBkYXRlIGNoZWNrbGlzdCEnLCdlcnJvcicpO1xyXG4gICAgICB9XHJcbiAgICB9LCAoZXJyb3IpID0+IHtcclxuICAgICAgbGV0IGVyciA9IGVycm9yPy5lcnJvcj8uZXJyb3I/Lm1lc3NhZ2UgfHwgJ1VuYWJsZSB0byBjcmVhdGUgY2hlY2tsaXN0IVNlcnZlciBFcnJvciEnO1xyXG4gICAgICB0aGlzLnN3YWxUb2FzdChlcnIsJ2Vycm9yJyk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG1hcmtGb3JtQ29udHJvbHNBc1RvdWNoZWQoY29udHJvbDogRm9ybUdyb3VwIHwgRm9ybUFycmF5LHNlY3Rpb25JbmRleD86IG51bWJlcikge1xyXG4gICAgY29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XHJcblxyXG4gICAgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBGb3JtR3JvdXApIHtcclxuICAgICAgZm9yIChjb25zdCBjb250cm9sTmFtZSBpbiBjb250cm9sLmNvbnRyb2xzKSB7XHJcbiAgICAgICAgdGhpcy5tYXJrRm9ybUNvbnRyb2xzQXNUb3VjaGVkKGNvbnRyb2wuZ2V0KGNvbnRyb2xOYW1lKSBhcyBGb3JtR3JvdXApO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2UgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBGb3JtQXJyYXkpIHtcclxuICAgICAgY29udHJvbC5jb250cm9scy5mb3JFYWNoKGZvcm1Db250cm9sID0+IHtcclxuICAgICAgICB0aGlzLm1hcmtGb3JtQ29udHJvbHNBc1RvdWNoZWQoZm9ybUNvbnRyb2wgYXMgRm9ybUdyb3VwKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzY3JvbGxUb0Vycm9ycyhzZWN0aW9uczogRm9ybUFycmF5KSB7XHJcbiAgICBmb3IobGV0IGk9MDtpPHNlY3Rpb25zLmxlbmd0aDtpKyspIHtcclxuICAgICAgbGV0IHNlY3Rpb24gPSBzZWN0aW9ucy5hdChpKSBhcyBGb3JtR3JvdXA7XHJcbiAgICAgIGlmIChzZWN0aW9uLmludmFsaWQpIHtcclxuICAgICAgICBsZXQgcXVlc3Rpb25zID0gc2VjdGlvbi5nZXQoJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheTtcclxuICAgICAgICBmb3IobGV0IGo9MDtqPHF1ZXN0aW9ucy5sZW5ndGg7aisrKSB7XHJcbiAgICAgICAgICBsZXQgcXVlc3Rpb24gPSBxdWVzdGlvbnMuYXQoaikgYXMgRm9ybUdyb3VwO1xyXG4gICAgICAgICAgLy8gY29uc29sZS5sb2cocXVlc3Rpb24sJ3F1ZXN0aW9uJyk7XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICBpZiAocXVlc3Rpb24uaW52YWxpZCkge1xyXG4gICAgICAgICAgICAgIHRoaXMuc2hvdyA9IGk7XHJcbiAgICAgICAgICAgICAgdGhpcy5zY3JvbGxUb1F1ZXN0aW9uKGksIGopO1xyXG4gICAgICAgICAgICAgIHRoaXMuc3dhbFRvYXN0KCdQbGVhc2UgZmlsbCBvdXQgYWxsIHRoZSBmaWVsZHMhJywnZXJyb3InKTtcclxuICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzd2FsVG9hc3QoZXJyOiBzdHJpbmcsdHlwZT86c3RyaW5nLGljb24/OiBzdHJpbmcpIHtcclxuICAgIGlmKHR5cGUgPT0gJ2Vycm9yJykge1xyXG4gICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoZXJyKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLnRvYXN0LmdldFN1Y2Nlc3NUb2FzdChlcnIpO1xyXG4gICAgfVxyXG4gICAgLy8gU3dhbC5maXJlKHtcclxuICAgIC8vICAgdG9hc3Q6IHRydWUsXHJcbiAgICAvLyAgIC4uLiggaWNvbiA/IHsgaWNvbkh0bWw6IGljb24gfSA6IHt9KSxcclxuICAgIC8vICAgLy8gdGl0bGVUZXh0OiBgQ2hlY2tsaXN0IEZvcm0gRXJyb3JgLFxyXG4gICAgLy8gICBodG1sOiBgPGRpdiBjbGFzcz1cInJvdyBcIj5cclxuICAgIC8vICAgPGRpdiBjbGFzcz1cImNvbC0xMiBtdC0yXCI+XHJcbiAgICAvLyAgIDxkaXYgY2xhc3M9XCJ0b2FzdHRpdGlsZVwiPiR7ZXJyfTwvZGl2PlxyXG4gICAgLy8gICA8L2Rpdj5cclxuICAgICBcclxuICAgIC8vICAgPC9kaXY+YCxcclxuICAgIC8vICAgcG9zaXRpb246ICdib3R0b20nLFxyXG4gICAgLy8gICBzaG93Q29uZmlybUJ1dHRvbjogZmFsc2UsXHJcbiAgICAvLyAgIHNob3dDbG9zZUJ1dHRvbjogdHJ1ZSxcclxuICAgIC8vICAgdGltZXI6IDYwMDAsXHJcbiAgICAvLyAgIHRpbWVyUHJvZ3Jlc3NCYXI6IHRydWUsXHJcbiAgICAvLyAgIGRpZE9wZW46ICh0b2FzdCkgPT4ge1xyXG4gICAgLy8gICAgIHRvYXN0LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZW50ZXInLCBTd2FsLnN0b3BUaW1lcilcclxuICAgIC8vICAgICB0b2FzdC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWxlYXZlJywgU3dhbC5yZXN1bWVUaW1lcilcclxuICAgIC8vICAgICAkKFwiI2t0X2NyZWF0ZV9hY2NvdW50X2Zvcm1fYWNjb3VudF90eXBlX3BlcnNvbmFsXCIpPy52YWwoJycpO1xyXG4gICAgLy8gICAgIHRoaXMuY2hhbmdlZGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgLy8gICB9XHJcbiAgICAvLyB9KTtcclxuICB9XHJcblxyXG4gIFJ1bkFJKHNJZHg6bnVtYmVyLHFJZHg6IG51bWJlcixhbnNJZHg6bnVtYmVyPS0xKSB7XHJcbiAgICBsZXQgZGlhbG9nUmVmOiBhbnk7XHJcbiAgICBsZXQgcXVlc3Rpb246IGFueSA9IHRoaXMuZ2V0UXVlc3Rpb25Gb3JtQ29udHJvbChzSWR4LHFJZHgsJ3FuYW1lJyk/LnZhbHVlO1xyXG4gICAgaWYodGhpcy5nZXRBbnN3ZXJGb3JtR3JvdXBfRm9ybUNvbnRyb2woc0lkeCxxSWR4LCdydW5BSScsYW5zSWR4KT8udmFsdWUgPT0gZmFsc2UpIHtcclxuICAgICAgaWYoIXF1ZXN0aW9uIHx8ICF0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdjaGVja2xpc3ROYW1lJyk/LnZhbHVlKSB7XHJcbiAgICAgICAgbGV0IGVycjogc3RyaW5nID0gIXF1ZXN0aW9uID8gJ1BsZWFzZSBlbnRlciBxdWVzdGlvbiB0byBjb250aW51ZSEnIDogJ1BsZWFzZSBlbnRlciBDaGVja2xpc3QgTmFtZSB0byBjb250aW51ZSEnO1xyXG4gICAgICAgIHRoaXMuc3dhbFRvYXN0KGVyciwnZXJyb3InKTsgICAgICAgIFxyXG4gICAgICAgIHRoaXMucnVuQUlPZmYoc0lkeCwgcUlkeCxmYWxzZSxhbnNJZHgpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKFRyYXhwb3B1cENvbXBvbmVudCx7Y2VudGVyZWQ6IHRydWUsIHNpemU6ICdtZCd9KTtcclxuICAgICAgICBkaWFsb2dSZWYuY29tcG9uZW50SW5zdGFuY2UuZGF0YSA9IHtcclxuICAgICAgICAgIGltYWdlc3JjOiBgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCI1NlwiIGhlaWdodD1cIjU2XCIgdmlld0JveD1cIjAgMCA1NiA1NlwiIGZpbGw9XCJub25lXCI+PHJlY3QgeD1cIjRcIiB5PVwiNFwiIHdpZHRoPVwiNDhcIiBoZWlnaHQ9XCI0OFwiIHJ4PVwiMjRcIiBmaWxsPVwiI0QxRkFERlwiLz48cGF0aCBkPVwiTTIzLjM1NjQgMTkuMzUyNUMyNC4xNzQ4IDE4LjczMjcgMjUuMTczOCAxOC4zOTg1IDI2LjIwMDQgMTguNDAwOUMyNi41NTQ5IDE4LjM5MyAyNi45MDU3IDE4LjQ3NDYgMjcuMjIwNCAxOC42MzgyQzI3LjUzNSAxOC44MDE4IDI3LjgwMzMgMTkuMDQyMSAyOC4wMDA0IDE5LjMzNjlDMjguMTk3NSAxOS4wNDIxIDI4LjQ2NTggMTguODAxOCAyOC43ODA0IDE4LjYzODJDMjkuMDk1IDE4LjQ3NDYgMjkuNDQ1OSAxOC4zOTMgMjkuODAwNCAxOC40MDA5QzMwLjgyNyAxOC4zOTg1IDMxLjgyNiAxOC43MzI3IDMyLjY0NDQgMTkuMzUyNUMzMy4yNzQ0IDE5Ljg0MjEgMzMuNzYwNCAyMC41MjAxIDMzLjkzMiAyMS4zMzk3QzM0LjMyNTYgMjEuMzY5NyAzNC42ODU2IDIxLjUzMjkgMzQuOTg4IDIxLjc3ODlDMzUuNDQ2NCAyMi4xNTA5IDM1Ljc4IDIyLjcwODkgMzUuOTkgMjMuMjk5M0MzNi4zMTg4IDI0LjIxNzMgMzYuNDA3NiAyNS4zODczIDM2LjA2NjggMjYuMzgzM0MzNi4xNTMyIDI2LjQyNDEgMzYuMjM4NCAyNi40NzIxIDM2LjMyMTIgMjYuNTI3M0MzNi42NTEyIDI2Ljc0NjkgMzYuOTAyIDI3LjA2MTMgMzcuMDg2OCAyNy40MzIxQzM3LjQ1MDQgMjguMTU4MSAzNy42MDA0IDI5LjE3MDkgMzcuNjAwNCAzMC40MDA5QzM3LjYwMDQgMzEuNzcwMSAzNy4wNzg0IDMyLjY4OTMgMzYuNDE2IDMzLjI1NjlDMzYuMDQ5NyAzMy41NzEgMzUuNjE3NCAzMy43OTg2IDM1LjE1MTIgMzMuOTIyOUMzNS4wMzEyIDM0LjU5MjUgMzQuNjk1MiAzNS4zNjc3IDM0LjE2ODQgMzYuMDI1M0MzMy40ODQ0IDM2Ljg4MzMgMzIuNDIzNiAzNy42MDA5IDMxLjAwMDQgMzcuNjAwOUMyOS44NzI0IDM3LjYwMDkgMjguOTc0OCAzNi45NzY5IDI4LjM5MTYgMzYuMzY0OUMyOC4yNTIyIDM2LjIxODggMjguMTIxNSAzNi4wNjQ1IDI4LjAwMDQgMzUuOTAyOUMyNy44NzkzIDM2LjA2NDUgMjcuNzQ4NiAzNi4yMTg4IDI3LjYwOTIgMzYuMzY0OUMyNy4wMjYgMzYuOTc2OSAyNi4xMjk2IDM3LjYwMDkgMjUuMDAwNCAzNy42MDA5QzIzLjU3NzIgMzcuNjAwOSAyMi41MTc2IDM2Ljg4MzMgMjEuODMyNCAzNi4wMjUzQzIxLjM0MDEgMzUuNDE0IDIxLjAwMjkgMzQuNjkyNyAyMC44NDk2IDMzLjkyMjlDMjAuMzgzNCAzMy43OTg2IDE5Ljk1MTEgMzMuNTcxIDE5LjU4NDggMzMuMjU2OUMxOC45MjI0IDMyLjY4OTMgMTguNDAwNCAzMS43Njg5IDE4LjQwMDQgMzAuNDAwOUMxOC40MDA0IDI5LjE3MDkgMTguNTUxNiAyOC4xNTY5IDE4LjkxNCAyNy40MzIxQzE5LjA4NTcgMjcuMDY4NSAxOS4zNDk3IDI2Ljc1NjEgMTkuNjc5NiAyNi41MjYxQzE5Ljc2MDYgMjYuNDcyNSAxOS44NDU3IDI2LjQyNTEgMTkuOTM0IDI2LjM4NDVDMTkuNTkzMiAyNS4zODYxIDE5LjY4MiAyNC4yMTczIDIwLjAxMDggMjMuMjk5M0MyMC4yMjA4IDIyLjcwODkgMjAuNTU0NCAyMi4xNTA5IDIxLjAxMjggMjEuNzc4OUMyMS4zMTUyIDIxLjUzMjkgMjEuNjc1MiAyMS4zNzA5IDIyLjA2ODggMjEuMzM5N0MyMi4yNDE2IDIwLjUyMDEgMjIuNzI2NCAxOS44NDIxIDIzLjM1NjQgMTkuMzUyNVpNMjcuNDAwNCAyMS40MDA5VjIxLjM4ODlMMjcuMzk4IDIxLjMyODlDMjcuMzgwMyAyMS4wMTYxIDI3LjMxODEgMjAuNzA3NCAyNy4yMTMyIDIwLjQxMjFDMjcuMTM4NSAyMC4xODkyIDI3LjAxMTMgMTkuOTg3NiAyNi44NDI0IDE5LjgyNDFDMjYuNjY1MSAxOS42Njk4IDI2LjQzNTIgMTkuNTg5OCAyNi4yMDA0IDE5LjYwMDlDMjUuNDQwNyAxOS41OTgzIDI0LjcwMDkgMTkuODQzNSAyNC4wOTMyIDIwLjI5OTNDMjMuNTM2NCAyMC43MzI1IDIzLjIwMDQgMjEuMzE5MyAyMy4yMDA0IDIyLjAwMDlDMjMuMjAwMyAyMi4wOTU5IDIzLjE3NzcgMjIuMTg5NiAyMy4xMzQzIDIyLjI3NDFDMjMuMDkxIDIyLjM1ODcgMjMuMDI4MiAyMi40MzE4IDIyLjk1MTEgMjIuNDg3M0MyMi44NzQgMjIuNTQyOCAyMi43ODQ4IDIyLjU3OTMgMjIuNjkwOSAyMi41OTM2QzIyLjU5NjkgMjIuNjA3OSAyMi41MDA5IDIyLjU5OTcgMjIuNDEwOCAyMi41Njk3QzIyLjE4NTIgMjIuNDk1MyAyMS45ODM2IDIyLjUzNzMgMjEuNzY4OCAyMi43MTAxQzIxLjUzMzYgMjIuOTAyMSAyMS4zMDQ0IDIzLjI0MjkgMjEuMTQgMjMuNzAyNUMyMC44MDUyIDI0LjY0MDkgMjAuODQgMjUuNzc3MyAyMS4yOTk2IDI2LjQ2ODVDMjEuMzY1MiAyNi41NjcgMjEuNDAwMyAyNi42ODI2IDIxLjQwMDQgMjYuODAwOUgyMi4zMDA0QzIzLjAxNjUgMjYuODAwOSAyMy43MDMyIDI3LjA4NTQgMjQuMjA5NiAyNy41OTE3QzI0LjcxNTkgMjguMDk4MSAyNS4wMDA0IDI4Ljc4NDggMjUuMDAwNCAyOS41MDA5VjI5LjkwMjlDMjUuNDAwNyAzMC4wNDQ1IDI1LjczODEgMzAuMzIzIDI1Ljk1MyAzMC42ODkyQzI2LjE2NzggMzEuMDU1NSAyNi4yNDYzIDMxLjQ4NTkgMjYuMTc0NSAzMS45MDQ0QzI2LjEwMjcgMzIuMzIyOSAyNS44ODUyIDMyLjcwMjUgMjUuNTYwNiAzMi45NzYyQzI1LjIzNTkgMzMuMjQ5OSAyNC44MjUgMzMuNCAyNC40MDA0IDMzLjRDMjMuOTc1OCAzMy40IDIzLjU2NDggMzMuMjQ5OSAyMy4yNDAyIDMyLjk3NjJDMjIuOTE1NiAzMi43MDI1IDIyLjY5ODEgMzIuMzIyOSAyMi42MjYzIDMxLjkwNDRDMjIuNTU0NSAzMS40ODU5IDIyLjYzMyAzMS4wNTU1IDIyLjg0NzggMzAuNjg5MkMyMy4wNjI3IDMwLjMyMyAyMy40MDAxIDMwLjA0NDUgMjMuODAwNCAyOS45MDI5VjI5LjUwMDlDMjMuODAwNCAyOC42NzI5IDIzLjEyODQgMjguMDAwOSAyMi4zMDA0IDI4LjAwMDlIMjAuMjAwNEMyMC4xMjg3IDI4LjAwMDggMjAuMDU3NSAyNy45ODc4IDE5Ljk5MDQgMjcuOTYyNUwxOS45ODY4IDI3Ljk2OTdDMTkuNzQ5MiAyOC40NDM3IDE5LjYwMDQgMjkuMjMwOSAxOS42MDA0IDMwLjQwMDlDMTkuNjAwNCAzMS40MzE3IDE5Ljk3ODQgMzIuMDEyNSAyMC4zNjYgMzIuMzQ0OUMyMC43ODI0IDMyLjcwMjUgMjEuMjQ0NCAzMi44MDA5IDIxLjQwMDQgMzIuODAwOUMyMS41NTk1IDMyLjgwMDkgMjEuNzEyMSAzMi44NjQxIDIxLjgyNDcgMzIuOTc2N0MyMS45MzcyIDMzLjA4OTIgMjIuMDAwNCAzMy4yNDE4IDIyLjAwMDQgMzMuNDAwOUMyMi4wMDA0IDMzLjg0MjUgMjIuMjQwNCAzNC42MTQxIDIyLjc2ODQgMzUuMjc2NUMyMy4yODMyIDM1LjkxODUgMjQuMDIzNiAzNi40MDA5IDI1LjAwMDQgMzYuNDAwOUMyNS42NzI0IDM2LjQwMDkgMjYuMjc0OCAzNi4wMjUzIDI2Ljc0MDQgMzUuNTM2OUMyNi45Njk2IDM1LjI5NjkgMjcuMTQ4NCAzNS4wNDg1IDI3LjI2NDggMzQuODQ0NUMyNy4zMTc4IDM0Ljc1NDEgMjcuMzYzMSAzNC42NTkzIDI3LjQwMDQgMzQuNTYxM1YyNS4wMDA5SDI2LjA5ODRDMjUuOTU2OSAyNS40MDEyIDI1LjY3ODMgMjUuNzM4NyAyNS4zMTIxIDI1Ljk1MzVDMjQuOTQ1OSAyNi4xNjgzIDI0LjUxNTQgMjYuMjQ2OCAyNC4wOTcgMjYuMTc1QzIzLjY3ODUgMjYuMTAzMiAyMy4yOTg4IDI1Ljg4NTggMjMuMDI1MSAyNS41NjExQzIyLjc1MTQgMjUuMjM2NSAyMi42MDEzIDI0LjgyNTUgMjIuNjAxMyAyNC40MDA5QzIyLjYwMTMgMjMuOTc2MyAyMi43NTE0IDIzLjU2NTQgMjMuMDI1MSAyMy4yNDA3QzIzLjI5ODggMjIuOTE2MSAyMy42Nzg1IDIyLjY5ODYgMjQuMDk3IDIyLjYyNjhDMjQuNTE1NCAyMi41NTUgMjQuOTQ1OSAyMi42MzM1IDI1LjMxMjEgMjIuODQ4M0MyNS42NzgzIDIzLjA2MzIgMjUuOTU2OSAyMy40MDA2IDI2LjA5ODQgMjMuODAwOUgyNy40MDA0VjIxLjQwMDlaTTI4LjYwMDQgMzMuMzk5N1YzNC41NjAxQzI4LjYzNzcgMzQuNjU4MSAyOC42ODMgMzQuNzUyOCAyOC43MzYgMzQuODQzM0MyOC44NTM2IDM1LjA0NzMgMjkuMDMxMiAzNS4yOTU3IDI5LjI1OTIgMzUuNTM1N0MyOS43MjYgMzYuMDI0MSAzMC4zMjk2IDM2LjM5OTcgMzEuMDAwNCAzNi4zOTk3QzMxLjk3NzIgMzYuMzk5NyAzMi43MTc2IDM1LjkxNzMgMzMuMjMyNCAzNS4yNzUzQzMzLjc2MDQgMzQuNjEyOSAzNC4wMDA0IDMzLjg0MTMgMzQuMDAwNCAzMy4zOTk3QzM0LjAwMDQgMzMuMjQwNiAzNC4wNjM2IDMzLjA4OCAzNC4xNzYxIDMyLjk3NTVDMzQuMjg4NiAzMi44NjI5IDM0LjQ0MTMgMzIuNzk5NyAzNC42MDA0IDMyLjc5OTdDMzQuNzU2NCAzMi43OTk3IDM1LjIxODQgMzIuNzAxMyAzNS42MzQ4IDMyLjM0MzdDMzYuMDIyNCAzMi4wMTEzIDM2LjQwMDQgMzEuNDMwNSAzNi40MDA0IDMwLjM5OTdDMzYuNDAwNCAyOS4yMjk3IDM2LjI1MDQgMjguNDQzNyAzNi4wMTQgMjcuOTY4NUMzNS45MzQ5IDI3Ljc5MTYgMzUuODEwOCAyNy42Mzg1IDM1LjY1NCAyNy41MjQ1QzM1LjUxODkgMjcuNDM4MSAzNS4zNjA2IDI3LjM5NSAzNS4yMDA0IDI3LjQwMDlDMzUuMDkxOSAyNy40MDA5IDM0Ljk4NTQgMjcuMzcxNCAzNC44OTIzIDI3LjMxNTZDMzQuNzk5MiAyNy4yNTk4IDM0LjcyMyAyNy4xNzk4IDM0LjY3MTcgMjcuMDg0MUMzNC42MjA1IDI2Ljk4ODQgMzQuNTk2MiAyNi44ODA3IDM0LjYwMTQgMjYuNzcyM0MzNC42MDY2IDI2LjY2MzggMzQuNjQxMSAyNi41NTg5IDM0LjcwMTIgMjYuNDY4NUMzNS4xNjIgMjUuNzc3MyAzNS4xOTU2IDI0LjY0MDkgMzQuODYwOCAyMy43MDI1QzM0LjY5NjQgMjMuMjQyOSAzNC40NjcyIDIyLjkwMDkgMzQuMjMyIDIyLjcxMDFDMzQuMDE3MiAyMi41MzczIDMzLjgxNTYgMjIuNDk0MSAzMy41OSAyMi41Njk3QzMzLjQ5OTggMjIuNTk5NyAzMy40MDM4IDIyLjYwNzkgMzMuMzA5OSAyMi41OTM2QzMzLjIxNiAyMi41NzkzIDMzLjEyNjggMjIuNTQyOCAzMy4wNDk3IDIyLjQ4NzNDMzIuOTcyNiAyMi40MzE4IDMyLjkwOTggMjIuMzU4NyAzMi44NjY0IDIyLjI3NDFDMzIuODIzMSAyMi4xODk2IDMyLjgwMDUgMjIuMDk1OSAzMi44MDA0IDIyLjAwMDlDMzIuODAwNCAyMS4zMTkzIDMyLjQ2NDQgMjAuNzMyNSAzMS45MDY0IDIwLjI5OTNDMzEuMjk5IDE5Ljg0MzggMzAuNTU5NiAxOS41OTg2IDI5LjgwMDQgMTkuNjAwOUMyOS41NjU2IDE5LjU4OTggMjkuMzM1NiAxOS42Njk4IDI5LjE1ODQgMTkuODI0MUMyOC45ODg5IDE5Ljk4NzQgMjguODYxMyAyMC4xODkxIDI4Ljc4NjQgMjAuNDEyMUMyOC42NzIxIDIwLjcyNTYgMjguNjA5MyAyMS4wNTU0IDI4LjYwMDQgMjEuMzg4OVYzMi4yMDA5SDI5LjUwMDRDMzAuMzI4NCAzMi4yMDA5IDMxLjAwMDQgMzEuNTI4OSAzMS4wMDA0IDMwLjcwMDlWMjguNDk4OUMzMC42MDAxIDI4LjM1NzQgMzAuMjYyNyAyOC4wNzg5IDMwLjA0NzggMjcuNzEyNkMyOS44MzMgMjcuMzQ2NCAyOS43NTQ1IDI2LjkxNiAyOS44MjYzIDI2LjQ5NzVDMjkuODk4MSAyNi4wNzkgMzAuMTE1NiAyNS42OTkzIDMwLjQ0MDIgMjUuNDI1N0MzMC43NjQ4IDI1LjE1MiAzMS4xNzU4IDI1LjAwMTkgMzEuNjAwNCAyNS4wMDE5QzMyLjAyNSAyNS4wMDE5IDMyLjQzNTkgMjUuMTUyIDMyLjc2MDYgMjUuNDI1N0MzMy4wODUyIDI1LjY5OTMgMzMuMzAyNyAyNi4wNzkgMzMuMzc0NSAyNi40OTc1QzMzLjQ0NjMgMjYuOTE2IDMzLjM2NzggMjcuMzQ2NCAzMy4xNTMgMjcuNzEyNkMzMi45MzgxIDI4LjA3ODkgMzIuNjAwNyAyOC4zNTc0IDMyLjIwMDQgMjguNDk4OVYzMC43MDA5QzMyLjIwMDQgMzEuNDE3IDMxLjkxNTkgMzIuMTAzOCAzMS40MDk2IDMyLjYxMDFDMzAuOTAzMiAzMy4xMTY1IDMwLjIxNjUgMzMuNDAwOSAyOS41MDA0IDMzLjQwMDlIMjguNjAwNFYzMy4zOTk3Wk0yMy44MDA0IDI0LjQwMDlDMjMuODAwNCAyNC41NjAxIDIzLjg2MzYgMjQuNzEyNyAyMy45NzYxIDI0LjgyNTJDMjQuMDg4NiAyNC45Mzc3IDI0LjI0MTMgMjUuMDAwOSAyNC40MDA0IDI1LjAwMDlDMjQuNTU5NSAyNS4wMDA5IDI0LjcxMjEgMjQuOTM3NyAyNC44MjQ3IDI0LjgyNTJDMjQuOTM3MiAyNC43MTI3IDI1LjAwMDQgMjQuNTYwMSAyNS4wMDA0IDI0LjQwMDlDMjUuMDAwNCAyNC4yNDE4IDI0LjkzNzIgMjQuMDg5MiAyNC44MjQ3IDIzLjk3NjdDMjQuNzEyMSAyMy44NjQxIDI0LjU1OTUgMjMuODAwOSAyNC40MDA0IDIzLjgwMDlDMjQuMjQxMyAyMy44MDA5IDI0LjA4ODYgMjMuODY0MSAyMy45NzYxIDIzLjk3NjdDMjMuODYzNiAyNC4wODkyIDIzLjgwMDQgMjQuMjQxOCAyMy44MDA0IDI0LjQwMDlaTTMxLjYwMDQgMjcuNDAwOUMzMS43NTk1IDI3LjQwMDkgMzEuOTEyMSAyNy4zMzc3IDMyLjAyNDcgMjcuMjI1MkMzMi4xMzcyIDI3LjExMjcgMzIuMjAwNCAyNi45NjAxIDMyLjIwMDQgMjYuODAwOUMzMi4yMDA0IDI2LjY0MTggMzIuMTM3MiAyNi40ODkyIDMyLjAyNDcgMjYuMzc2N0MzMS45MTIxIDI2LjI2NDEgMzEuNzU5NSAyNi4yMDA5IDMxLjYwMDQgMjYuMjAwOUMzMS40NDEzIDI2LjIwMDkgMzEuMjg4NiAyNi4yNjQxIDMxLjE3NjEgMjYuMzc2N0MzMS4wNjM2IDI2LjQ4OTIgMzEuMDAwNCAyNi42NDE4IDMxLjAwMDQgMjYuODAwOUMzMS4wMDA0IDI2Ljk2MDEgMzEuMDYzNiAyNy4xMTI3IDMxLjE3NjEgMjcuMjI1MkMzMS4yODg2IDI3LjMzNzcgMzEuNDQxMyAyNy40MDA5IDMxLjYwMDQgMjcuNDAwOVpNMjQuNDAwNCAzMS4wMDA5QzI0LjI0MTMgMzEuMDAwOSAyNC4wODg2IDMxLjA2NDEgMjMuOTc2MSAzMS4xNzY3QzIzLjg2MzYgMzEuMjg5MiAyMy44MDA0IDMxLjQ0MTggMjMuODAwNCAzMS42MDA5QzIzLjgwMDQgMzEuNzYwMSAyMy44NjM2IDMxLjkxMjcgMjMuOTc2MSAzMi4wMjUyQzI0LjA4ODYgMzIuMTM3NyAyNC4yNDEzIDMyLjIwMDkgMjQuNDAwNCAzMi4yMDA5QzI0LjU1OTUgMzIuMjAwOSAyNC43MTIxIDMyLjEzNzcgMjQuODI0NyAzMi4wMjUyQzI0LjkzNzIgMzEuOTEyNyAyNS4wMDA0IDMxLjc2MDEgMjUuMDAwNCAzMS42MDA5QzI1LjAwMDQgMzEuNDQxOCAyNC45MzcyIDMxLjI4OTIgMjQuODI0NyAzMS4xNzY3QzI0LjcxMjEgMzEuMDY0MSAyNC41NTk1IDMxLjAwMDkgMjQuNDAwNCAzMS4wMDA5WlwiIGZpbGw9XCIjMDM5ODU1XCIvPjxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgc3Ryb2tlPVwiI0VDRkRGM1wiIHN0cm9rZS13aWR0aD1cIjhcIi8+PC9zdmc+YCxcclxuICAgICAgICAgIHRpdGxlOiBgUnVuIEFJIG9uIGltYWdlIHVwbG9hZGVkYCxcclxuICAgICAgICAgIGNvbnRlbnQ6IGBVc2UgdGhlIHBvd2VyIG9mIEFJIHRvIGNvbXBhcmUgYW5kIGRldGVjdCBhbm9tYWxpZXMgYmV0d2VlbiB1cGxvYWRlZCBhbmQgcmVmZXJlbmNlIGltYWdlLmAsXHJcbiAgICAgICAgICBpbnB1dGxhYmVsMTogJ1F1ZXN0aW9uJyxcclxuICAgICAgICAgIGlucHV0dHlwZTE6ICd0ZXh0JyxcclxuICAgICAgICAgIGlucHV0MTogJ3RydWUnLFxyXG4gICAgICAgICAgaW5wdXRsYWJlbDI6ICdTcGVjaWZ5IHlvdXIgcmVxdWVzdCcsXHJcbiAgICAgICAgICBpbnB1dHR5cGUyOiAndGV4dCcsXHJcbiAgICAgICAgICByZXNUeXBlOiAnY3VzdG9tJyxcclxuICAgICAgICAgIGlucHV0MjogJ3RydWUnLFxyXG4gICAgICAgICAgcGxhY2Vob2xkZXIxOiBxdWVzdGlvbixcclxuICAgICAgICAgIHBsYWNlaG9sZGVyMjogJ1BsZWFzZSBjb21wYXJlIHRoZSB1cGxvYWRlZCBpbWFnZXMgYS4uJyxcclxuICAgICAgICAgIGJ1dHRvbnR5cGU6ICdSZXF1ZXN0J1xyXG4gICAgICAgIH1cclxuICAgICAgICBkaWFsb2dSZWYucmVzdWx0LnRoZW4oKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzICYmIHJlcy5zdGF0dXMgPT0gJ2NvbmZpcm0nKSB7XHJcbiAgICAgICAgICAgIGxldCByZXE6IGFueSA9IHtcclxuICAgICAgICAgICAgICBjaGVja2xpc3ROYW1lOiB0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdjaGVja2xpc3ROYW1lJyk/LnZhbHVlLFxyXG4gICAgICAgICAgICAgIHF1ZXN0aW9uTmFtZTogcXVlc3Rpb24sXHJcbiAgICAgICAgICAgICAgcnVuQUlEZXNjcmlwdGlvbjogcmVzLmRhdGEucmVxdWVzdFRleHQsXHJcbiAgICAgICAgICAgICAgYW5zd2VyVHlwZTogXCJpbWFnZVwiLFxyXG4gICAgICAgICAgICAgIHJlZmVyZW5jZUltYWdlOiB0aGlzLmdldEFuc3dlckZvcm1Hcm91cF9Gb3JtQ29udHJvbChzSWR4LCBxSWR4LCBcIm11bHRpUmVmZXJlbmNlSW1hZ2VcIixhbnNJZHgpPy52YWx1ZSB8fCAnJyxcclxuICAgICAgICAgICAgICBjbGllbnRJZDp0aGlzLmNsaWVudElkXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5zb3BTZXJ2aWNlLnJ1bkFJSW5zZXJ0KHJlcSkucGlwZSh0YWtlVW50aWwodGhpcy5kZXRhY2gpKS5zdWJzY3JpYmUoKGFwaXJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKGFwaXJlcykge1xyXG4gICAgICAgICAgICAgICAgaWYgKGFwaXJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuaGFzVmFsaWRhdGlvbkVuYWJsZWQoc0lkeCwgcUlkeCkpIHtcclxuICAgICAgICAgICAgICAgICAgICAoKCgodGhpcy5DaGVja2xpc3RGb3JtLmdldCgnc2VjdGlvbnMnKSBhcyBGb3JtQXJyYXkpXHJcbiAgICAgICAgICAgICAgICAgICAgLmF0KHNJZHgpIGFzIEZvcm1Hcm91cClcclxuICAgICAgICAgICAgICAgICAgICAuZ2V0KCdxdWVzdGlvbnMnKSBhcyBGb3JtQXJyYXkpXHJcbiAgICAgICAgICAgICAgICAgICAgLmF0KHFJZHgpIGFzIEZvcm1Hcm91cCkuZ2V0KCdjb21wbGlhbmNlJyk/LmVuYWJsZSh7IG9ubHlTZWxmOiB0cnVlIH0pXHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coKCgoKHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5KVxyXG4gICAgICAgICAgICAgICAgICAuYXQoc0lkeCkgYXMgRm9ybUdyb3VwKVxyXG4gICAgICAgICAgICAgICAgICAuZ2V0KCdxdWVzdGlvbnMnKSBhcyBGb3JtQXJyYXkpXHJcbiAgICAgICAgICAgICAgICAgIC5hdChxSWR4KSBhcyBGb3JtR3JvdXApLmdldCgnY29tcGxpYW5jZScpKVxyXG4gICAgICAgICAgICAgICAgICB0aGlzLmdldEFuc3dlckZvcm1Hcm91cF9Gb3JtQ29udHJvbChzSWR4LCBxSWR4LCAncnVuQUknLGFuc0lkeCk/LnBhdGNoVmFsdWUodHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0UXVlc3Rpb25Gb3JtQ29udHJvbChzSWR4LCBxSWR4LCAncnVuQUknLGFuc0lkeCk/LnBhdGNoVmFsdWUodHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0UXVlc3Rpb25Gb3JtQ29udHJvbChzSWR4LCBxSWR4LCAncnVuQUlEZXNjcmlwdGlvbicsYW5zSWR4KT8ucGF0Y2hWYWx1ZShyZXMuZGF0YS5yZXF1ZXN0VGV4dCk7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuc3dhbFRvYXN0KFxyXG4gICAgICAgICAgICAgICAgICAgIGA8c3BhbiBzdHlsZT1cInBhZGRpbmctcmlnaHQ6IDM2cHg7XCI+JHthcGlyZXMuZGF0YS5tZXNzYWdlfTwvc3Bhbj5gLFxyXG4gICAgICAgICAgICAgICAgICAgIGA8aW1nIHNyYz1cIi4uLy4uLy4uLy4uL2Fzc2V0cy9JY29ucy9zb3AtcnVuYWktdG9zdGljb24uc3ZnXCIgLz5gXHJcbiAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICAgIC8vIDxhIFxyXG4gICAgICAgICAgICAgICAgICAvLyAgICAgICBocmVmPVwiL3N1cHBvcnQvdmlldy10aWNrZXRzXCIgXHJcbiAgICAgICAgICAgICAgICAgIC8vICAgICAgIHRhcmdldD1cIl9ibGFua1wiIFxyXG4gICAgICAgICAgICAgICAgICAvLyAgICAgICBzdHlsZT1cImNvbG9yOiB2YXIoLS1wcmltYXJ5LTcwMCwgIzAwOUJGMyk7Zm9udC1mYW1pbHk6IFJvYm90bztmb250LXNpemU6IDE1cHg7Zm9udC13ZWlnaHQ6IDcwMDt0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtjdXJzb3I6IHBvaW50ZXI7XCI+XHJcbiAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgVmlldyBUaWNrZXRcclxuICAgICAgICAgICAgICAgICAgLy8gICA8L2E+XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLnJ1bkFJT2ZmKHNJZHgsIHFJZHgsdHJ1ZSxhbnNJZHgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJ1bkFJT2ZmKHNJZHgsIHFJZHgsdHJ1ZSxhbnNJZHgpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSwgKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICAgICAgdGhpcy5ydW5BSU9mZihzSWR4LCBxSWR4LHRydWUsYW5zSWR4KTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnJ1bkFJT2ZmKHNJZHgsIHFJZHgsZmFsc2UsYW5zSWR4KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihUcmF4cG9wdXBDb21wb25lbnQse2NlbnRlcmVkOiB0cnVlLCBzaXplOiAnbWQnfSk7XHJcbiAgICAgIGRpYWxvZ1JlZi5jb21wb25lbnRJbnN0YW5jZS5kYXRhID0ge1xyXG4gICAgICAgIGltYWdlc3JjOiBgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCI1NlwiIGhlaWdodD1cIjU2XCIgdmlld0JveD1cIjAgMCA1NiA1NlwiIGZpbGw9XCJub25lXCI+PHJlY3QgeD1cIjRcIiB5PVwiNFwiIHdpZHRoPVwiNDhcIiBoZWlnaHQ9XCI0OFwiIHJ4PVwiMjRcIiBmaWxsPVwiI0QxRkFERlwiLz48cGF0aCBkPVwiTTIzLjM1NjQgMTkuMzUyNUMyNC4xNzQ4IDE4LjczMjcgMjUuMTczOCAxOC4zOTg1IDI2LjIwMDQgMTguNDAwOUMyNi41NTQ5IDE4LjM5MyAyNi45MDU3IDE4LjQ3NDYgMjcuMjIwNCAxOC42MzgyQzI3LjUzNSAxOC44MDE4IDI3LjgwMzMgMTkuMDQyMSAyOC4wMDA0IDE5LjMzNjlDMjguMTk3NSAxOS4wNDIxIDI4LjQ2NTggMTguODAxOCAyOC43ODA0IDE4LjYzODJDMjkuMDk1IDE4LjQ3NDYgMjkuNDQ1OSAxOC4zOTMgMjkuODAwNCAxOC40MDA5QzMwLjgyNyAxOC4zOTg1IDMxLjgyNiAxOC43MzI3IDMyLjY0NDQgMTkuMzUyNUMzMy4yNzQ0IDE5Ljg0MjEgMzMuNzYwNCAyMC41MjAxIDMzLjkzMiAyMS4zMzk3QzM0LjMyNTYgMjEuMzY5NyAzNC42ODU2IDIxLjUzMjkgMzQuOTg4IDIxLjc3ODlDMzUuNDQ2NCAyMi4xNTA5IDM1Ljc4IDIyLjcwODkgMzUuOTkgMjMuMjk5M0MzNi4zMTg4IDI0LjIxNzMgMzYuNDA3NiAyNS4zODczIDM2LjA2NjggMjYuMzgzM0MzNi4xNTMyIDI2LjQyNDEgMzYuMjM4NCAyNi40NzIxIDM2LjMyMTIgMjYuNTI3M0MzNi42NTEyIDI2Ljc0NjkgMzYuOTAyIDI3LjA2MTMgMzcuMDg2OCAyNy40MzIxQzM3LjQ1MDQgMjguMTU4MSAzNy42MDA0IDI5LjE3MDkgMzcuNjAwNCAzMC40MDA5QzM3LjYwMDQgMzEuNzcwMSAzNy4wNzg0IDMyLjY4OTMgMzYuNDE2IDMzLjI1NjlDMzYuMDQ5NyAzMy41NzEgMzUuNjE3NCAzMy43OTg2IDM1LjE1MTIgMzMuOTIyOUMzNS4wMzEyIDM0LjU5MjUgMzQuNjk1MiAzNS4zNjc3IDM0LjE2ODQgMzYuMDI1M0MzMy40ODQ0IDM2Ljg4MzMgMzIuNDIzNiAzNy42MDA5IDMxLjAwMDQgMzcuNjAwOUMyOS44NzI0IDM3LjYwMDkgMjguOTc0OCAzNi45NzY5IDI4LjM5MTYgMzYuMzY0OUMyOC4yNTIyIDM2LjIxODggMjguMTIxNSAzNi4wNjQ1IDI4LjAwMDQgMzUuOTAyOUMyNy44NzkzIDM2LjA2NDUgMjcuNzQ4NiAzNi4yMTg4IDI3LjYwOTIgMzYuMzY0OUMyNy4wMjYgMzYuOTc2OSAyNi4xMjk2IDM3LjYwMDkgMjUuMDAwNCAzNy42MDA5QzIzLjU3NzIgMzcuNjAwOSAyMi41MTc2IDM2Ljg4MzMgMjEuODMyNCAzNi4wMjUzQzIxLjM0MDEgMzUuNDE0IDIxLjAwMjkgMzQuNjkyNyAyMC44NDk2IDMzLjkyMjlDMjAuMzgzNCAzMy43OTg2IDE5Ljk1MTEgMzMuNTcxIDE5LjU4NDggMzMuMjU2OUMxOC45MjI0IDMyLjY4OTMgMTguNDAwNCAzMS43Njg5IDE4LjQwMDQgMzAuNDAwOUMxOC40MDA0IDI5LjE3MDkgMTguNTUxNiAyOC4xNTY5IDE4LjkxNCAyNy40MzIxQzE5LjA4NTcgMjcuMDY4NSAxOS4zNDk3IDI2Ljc1NjEgMTkuNjc5NiAyNi41MjYxQzE5Ljc2MDYgMjYuNDcyNSAxOS44NDU3IDI2LjQyNTEgMTkuOTM0IDI2LjM4NDVDMTkuNTkzMiAyNS4zODYxIDE5LjY4MiAyNC4yMTczIDIwLjAxMDggMjMuMjk5M0MyMC4yMjA4IDIyLjcwODkgMjAuNTU0NCAyMi4xNTA5IDIxLjAxMjggMjEuNzc4OUMyMS4zMTUyIDIxLjUzMjkgMjEuNjc1MiAyMS4zNzA5IDIyLjA2ODggMjEuMzM5N0MyMi4yNDE2IDIwLjUyMDEgMjIuNzI2NCAxOS44NDIxIDIzLjM1NjQgMTkuMzUyNVpNMjcuNDAwNCAyMS40MDA5VjIxLjM4ODlMMjcuMzk4IDIxLjMyODlDMjcuMzgwMyAyMS4wMTYxIDI3LjMxODEgMjAuNzA3NCAyNy4yMTMyIDIwLjQxMjFDMjcuMTM4NSAyMC4xODkyIDI3LjAxMTMgMTkuOTg3NiAyNi44NDI0IDE5LjgyNDFDMjYuNjY1MSAxOS42Njk4IDI2LjQzNTIgMTkuNTg5OCAyNi4yMDA0IDE5LjYwMDlDMjUuNDQwNyAxOS41OTgzIDI0LjcwMDkgMTkuODQzNSAyNC4wOTMyIDIwLjI5OTNDMjMuNTM2NCAyMC43MzI1IDIzLjIwMDQgMjEuMzE5MyAyMy4yMDA0IDIyLjAwMDlDMjMuMjAwMyAyMi4wOTU5IDIzLjE3NzcgMjIuMTg5NiAyMy4xMzQzIDIyLjI3NDFDMjMuMDkxIDIyLjM1ODcgMjMuMDI4MiAyMi40MzE4IDIyLjk1MTEgMjIuNDg3M0MyMi44NzQgMjIuNTQyOCAyMi43ODQ4IDIyLjU3OTMgMjIuNjkwOSAyMi41OTM2QzIyLjU5NjkgMjIuNjA3OSAyMi41MDA5IDIyLjU5OTcgMjIuNDEwOCAyMi41Njk3QzIyLjE4NTIgMjIuNDk1MyAyMS45ODM2IDIyLjUzNzMgMjEuNzY4OCAyMi43MTAxQzIxLjUzMzYgMjIuOTAyMSAyMS4zMDQ0IDIzLjI0MjkgMjEuMTQgMjMuNzAyNUMyMC44MDUyIDI0LjY0MDkgMjAuODQgMjUuNzc3MyAyMS4yOTk2IDI2LjQ2ODVDMjEuMzY1MiAyNi41NjcgMjEuNDAwMyAyNi42ODI2IDIxLjQwMDQgMjYuODAwOUgyMi4zMDA0QzIzLjAxNjUgMjYuODAwOSAyMy43MDMyIDI3LjA4NTQgMjQuMjA5NiAyNy41OTE3QzI0LjcxNTkgMjguMDk4MSAyNS4wMDA0IDI4Ljc4NDggMjUuMDAwNCAyOS41MDA5VjI5LjkwMjlDMjUuNDAwNyAzMC4wNDQ1IDI1LjczODEgMzAuMzIzIDI1Ljk1MyAzMC42ODkyQzI2LjE2NzggMzEuMDU1NSAyNi4yNDYzIDMxLjQ4NTkgMjYuMTc0NSAzMS45MDQ0QzI2LjEwMjcgMzIuMzIyOSAyNS44ODUyIDMyLjcwMjUgMjUuNTYwNiAzMi45NzYyQzI1LjIzNTkgMzMuMjQ5OSAyNC44MjUgMzMuNCAyNC40MDA0IDMzLjRDMjMuOTc1OCAzMy40IDIzLjU2NDggMzMuMjQ5OSAyMy4yNDAyIDMyLjk3NjJDMjIuOTE1NiAzMi43MDI1IDIyLjY5ODEgMzIuMzIyOSAyMi42MjYzIDMxLjkwNDRDMjIuNTU0NSAzMS40ODU5IDIyLjYzMyAzMS4wNTU1IDIyLjg0NzggMzAuNjg5MkMyMy4wNjI3IDMwLjMyMyAyMy40MDAxIDMwLjA0NDUgMjMuODAwNCAyOS45MDI5VjI5LjUwMDlDMjMuODAwNCAyOC42NzI5IDIzLjEyODQgMjguMDAwOSAyMi4zMDA0IDI4LjAwMDlIMjAuMjAwNEMyMC4xMjg3IDI4LjAwMDggMjAuMDU3NSAyNy45ODc4IDE5Ljk5MDQgMjcuOTYyNUwxOS45ODY4IDI3Ljk2OTdDMTkuNzQ5MiAyOC40NDM3IDE5LjYwMDQgMjkuMjMwOSAxOS42MDA0IDMwLjQwMDlDMTkuNjAwNCAzMS40MzE3IDE5Ljk3ODQgMzIuMDEyNSAyMC4zNjYgMzIuMzQ0OUMyMC43ODI0IDMyLjcwMjUgMjEuMjQ0NCAzMi44MDA5IDIxLjQwMDQgMzIuODAwOUMyMS41NTk1IDMyLjgwMDkgMjEuNzEyMSAzMi44NjQxIDIxLjgyNDcgMzIuOTc2N0MyMS45MzcyIDMzLjA4OTIgMjIuMDAwNCAzMy4yNDE4IDIyLjAwMDQgMzMuNDAwOUMyMi4wMDA0IDMzLjg0MjUgMjIuMjQwNCAzNC42MTQxIDIyLjc2ODQgMzUuMjc2NUMyMy4yODMyIDM1LjkxODUgMjQuMDIzNiAzNi40MDA5IDI1LjAwMDQgMzYuNDAwOUMyNS42NzI0IDM2LjQwMDkgMjYuMjc0OCAzNi4wMjUzIDI2Ljc0MDQgMzUuNTM2OUMyNi45Njk2IDM1LjI5NjkgMjcuMTQ4NCAzNS4wNDg1IDI3LjI2NDggMzQuODQ0NUMyNy4zMTc4IDM0Ljc1NDEgMjcuMzYzMSAzNC42NTkzIDI3LjQwMDQgMzQuNTYxM1YyNS4wMDA5SDI2LjA5ODRDMjUuOTU2OSAyNS40MDEyIDI1LjY3ODMgMjUuNzM4NyAyNS4zMTIxIDI1Ljk1MzVDMjQuOTQ1OSAyNi4xNjgzIDI0LjUxNTQgMjYuMjQ2OCAyNC4wOTcgMjYuMTc1QzIzLjY3ODUgMjYuMTAzMiAyMy4yOTg4IDI1Ljg4NTggMjMuMDI1MSAyNS41NjExQzIyLjc1MTQgMjUuMjM2NSAyMi42MDEzIDI0LjgyNTUgMjIuNjAxMyAyNC40MDA5QzIyLjYwMTMgMjMuOTc2MyAyMi43NTE0IDIzLjU2NTQgMjMuMDI1MSAyMy4yNDA3QzIzLjI5ODggMjIuOTE2MSAyMy42Nzg1IDIyLjY5ODYgMjQuMDk3IDIyLjYyNjhDMjQuNTE1NCAyMi41NTUgMjQuOTQ1OSAyMi42MzM1IDI1LjMxMjEgMjIuODQ4M0MyNS42NzgzIDIzLjA2MzIgMjUuOTU2OSAyMy40MDA2IDI2LjA5ODQgMjMuODAwOUgyNy40MDA0VjIxLjQwMDlaTTI4LjYwMDQgMzMuMzk5N1YzNC41NjAxQzI4LjYzNzcgMzQuNjU4MSAyOC42ODMgMzQuNzUyOCAyOC43MzYgMzQuODQzM0MyOC44NTM2IDM1LjA0NzMgMjkuMDMxMiAzNS4yOTU3IDI5LjI1OTIgMzUuNTM1N0MyOS43MjYgMzYuMDI0MSAzMC4zMjk2IDM2LjM5OTcgMzEuMDAwNCAzNi4zOTk3QzMxLjk3NzIgMzYuMzk5NyAzMi43MTc2IDM1LjkxNzMgMzMuMjMyNCAzNS4yNzUzQzMzLjc2MDQgMzQuNjEyOSAzNC4wMDA0IDMzLjg0MTMgMzQuMDAwNCAzMy4zOTk3QzM0LjAwMDQgMzMuMjQwNiAzNC4wNjM2IDMzLjA4OCAzNC4xNzYxIDMyLjk3NTVDMzQuMjg4NiAzMi44NjI5IDM0LjQ0MTMgMzIuNzk5NyAzNC42MDA0IDMyLjc5OTdDMzQuNzU2NCAzMi43OTk3IDM1LjIxODQgMzIuNzAxMyAzNS42MzQ4IDMyLjM0MzdDMzYuMDIyNCAzMi4wMTEzIDM2LjQwMDQgMzEuNDMwNSAzNi40MDA0IDMwLjM5OTdDMzYuNDAwNCAyOS4yMjk3IDM2LjI1MDQgMjguNDQzNyAzNi4wMTQgMjcuOTY4NUMzNS45MzQ5IDI3Ljc5MTYgMzUuODEwOCAyNy42Mzg1IDM1LjY1NCAyNy41MjQ1QzM1LjUxODkgMjcuNDM4MSAzNS4zNjA2IDI3LjM5NSAzNS4yMDA0IDI3LjQwMDlDMzUuMDkxOSAyNy40MDA5IDM0Ljk4NTQgMjcuMzcxNCAzNC44OTIzIDI3LjMxNTZDMzQuNzk5MiAyNy4yNTk4IDM0LjcyMyAyNy4xNzk4IDM0LjY3MTcgMjcuMDg0MUMzNC42MjA1IDI2Ljk4ODQgMzQuNTk2MiAyNi44ODA3IDM0LjYwMTQgMjYuNzcyM0MzNC42MDY2IDI2LjY2MzggMzQuNjQxMSAyNi41NTg5IDM0LjcwMTIgMjYuNDY4NUMzNS4xNjIgMjUuNzc3MyAzNS4xOTU2IDI0LjY0MDkgMzQuODYwOCAyMy43MDI1QzM0LjY5NjQgMjMuMjQyOSAzNC40NjcyIDIyLjkwMDkgMzQuMjMyIDIyLjcxMDFDMzQuMDE3MiAyMi41MzczIDMzLjgxNTYgMjIuNDk0MSAzMy41OSAyMi41Njk3QzMzLjQ5OTggMjIuNTk5NyAzMy40MDM4IDIyLjYwNzkgMzMuMzA5OSAyMi41OTM2QzMzLjIxNiAyMi41NzkzIDMzLjEyNjggMjIuNTQyOCAzMy4wNDk3IDIyLjQ4NzNDMzIuOTcyNiAyMi40MzE4IDMyLjkwOTggMjIuMzU4NyAzMi44NjY0IDIyLjI3NDFDMzIuODIzMSAyMi4xODk2IDMyLjgwMDUgMjIuMDk1OSAzMi44MDA0IDIyLjAwMDlDMzIuODAwNCAyMS4zMTkzIDMyLjQ2NDQgMjAuNzMyNSAzMS45MDY0IDIwLjI5OTNDMzEuMjk5IDE5Ljg0MzggMzAuNTU5NiAxOS41OTg2IDI5LjgwMDQgMTkuNjAwOUMyOS41NjU2IDE5LjU4OTggMjkuMzM1NiAxOS42Njk4IDI5LjE1ODQgMTkuODI0MUMyOC45ODg5IDE5Ljk4NzQgMjguODYxMyAyMC4xODkxIDI4Ljc4NjQgMjAuNDEyMUMyOC42NzIxIDIwLjcyNTYgMjguNjA5MyAyMS4wNTU0IDI4LjYwMDQgMjEuMzg4OVYzMi4yMDA5SDI5LjUwMDRDMzAuMzI4NCAzMi4yMDA5IDMxLjAwMDQgMzEuNTI4OSAzMS4wMDA0IDMwLjcwMDlWMjguNDk4OUMzMC42MDAxIDI4LjM1NzQgMzAuMjYyNyAyOC4wNzg5IDMwLjA0NzggMjcuNzEyNkMyOS44MzMgMjcuMzQ2NCAyOS43NTQ1IDI2LjkxNiAyOS44MjYzIDI2LjQ5NzVDMjkuODk4MSAyNi4wNzkgMzAuMTE1NiAyNS42OTkzIDMwLjQ0MDIgMjUuNDI1N0MzMC43NjQ4IDI1LjE1MiAzMS4xNzU4IDI1LjAwMTkgMzEuNjAwNCAyNS4wMDE5QzMyLjAyNSAyNS4wMDE5IDMyLjQzNTkgMjUuMTUyIDMyLjc2MDYgMjUuNDI1N0MzMy4wODUyIDI1LjY5OTMgMzMuMzAyNyAyNi4wNzkgMzMuMzc0NSAyNi40OTc1QzMzLjQ0NjMgMjYuOTE2IDMzLjM2NzggMjcuMzQ2NCAzMy4xNTMgMjcuNzEyNkMzMi45MzgxIDI4LjA3ODkgMzIuNjAwNyAyOC4zNTc0IDMyLjIwMDQgMjguNDk4OVYzMC43MDA5QzMyLjIwMDQgMzEuNDE3IDMxLjkxNTkgMzIuMTAzOCAzMS40MDk2IDMyLjYxMDFDMzAuOTAzMiAzMy4xMTY1IDMwLjIxNjUgMzMuNDAwOSAyOS41MDA0IDMzLjQwMDlIMjguNjAwNFYzMy4zOTk3Wk0yMy44MDA0IDI0LjQwMDlDMjMuODAwNCAyNC41NjAxIDIzLjg2MzYgMjQuNzEyNyAyMy45NzYxIDI0LjgyNTJDMjQuMDg4NiAyNC45Mzc3IDI0LjI0MTMgMjUuMDAwOSAyNC40MDA0IDI1LjAwMDlDMjQuNTU5NSAyNS4wMDA5IDI0LjcxMjEgMjQuOTM3NyAyNC44MjQ3IDI0LjgyNTJDMjQuOTM3MiAyNC43MTI3IDI1LjAwMDQgMjQuNTYwMSAyNS4wMDA0IDI0LjQwMDlDMjUuMDAwNCAyNC4yNDE4IDI0LjkzNzIgMjQuMDg5MiAyNC44MjQ3IDIzLjk3NjdDMjQuNzEyMSAyMy44NjQxIDI0LjU1OTUgMjMuODAwOSAyNC40MDA0IDIzLjgwMDlDMjQuMjQxMyAyMy44MDA5IDI0LjA4ODYgMjMuODY0MSAyMy45NzYxIDIzLjk3NjdDMjMuODYzNiAyNC4wODkyIDIzLjgwMDQgMjQuMjQxOCAyMy44MDA0IDI0LjQwMDlaTTMxLjYwMDQgMjcuNDAwOUMzMS43NTk1IDI3LjQwMDkgMzEuOTEyMSAyNy4zMzc3IDMyLjAyNDcgMjcuMjI1MkMzMi4xMzcyIDI3LjExMjcgMzIuMjAwNCAyNi45NjAxIDMyLjIwMDQgMjYuODAwOUMzMi4yMDA0IDI2LjY0MTggMzIuMTM3MiAyNi40ODkyIDMyLjAyNDcgMjYuMzc2N0MzMS45MTIxIDI2LjI2NDEgMzEuNzU5NSAyNi4yMDA5IDMxLjYwMDQgMjYuMjAwOUMzMS40NDEzIDI2LjIwMDkgMzEuMjg4NiAyNi4yNjQxIDMxLjE3NjEgMjYuMzc2N0MzMS4wNjM2IDI2LjQ4OTIgMzEuMDAwNCAyNi42NDE4IDMxLjAwMDQgMjYuODAwOUMzMS4wMDA0IDI2Ljk2MDEgMzEuMDYzNiAyNy4xMTI3IDMxLjE3NjEgMjcuMjI1MkMzMS4yODg2IDI3LjMzNzcgMzEuNDQxMyAyNy40MDA5IDMxLjYwMDQgMjcuNDAwOVpNMjQuNDAwNCAzMS4wMDA5QzI0LjI0MTMgMzEuMDAwOSAyNC4wODg2IDMxLjA2NDEgMjMuOTc2MSAzMS4xNzY3QzIzLjg2MzYgMzEuMjg5MiAyMy44MDA0IDMxLjQ0MTggMjMuODAwNCAzMS42MDA5QzIzLjgwMDQgMzEuNzYwMSAyMy44NjM2IDMxLjkxMjcgMjMuOTc2MSAzMi4wMjUyQzI0LjA4ODYgMzIuMTM3NyAyNC4yNDEzIDMyLjIwMDkgMjQuNDAwNCAzMi4yMDA5QzI0LjU1OTUgMzIuMjAwOSAyNC43MTIxIDMyLjEzNzcgMjQuODI0NyAzMi4wMjUyQzI0LjkzNzIgMzEuOTEyNyAyNS4wMDA0IDMxLjc2MDEgMjUuMDAwNCAzMS42MDA5QzI1LjAwMDQgMzEuNDQxOCAyNC45MzcyIDMxLjI4OTIgMjQuODI0NyAzMS4xNzY3QzI0LjcxMjEgMzEuMDY0MSAyNC41NTk1IDMxLjAwMDkgMjQuNDAwNCAzMS4wMDA5WlwiIGZpbGw9XCIjMDM5ODU1XCIvPjxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgc3Ryb2tlPVwiI0VDRkRGM1wiIHN0cm9rZS13aWR0aD1cIjhcIi8+PC9zdmc+YCxcclxuICAgICAgICB0aXRsZTogYERvbid0IHJ1biBBSSBvbiBpbWFnZSB1cGxvYWRlZGAsXHJcbiAgICAgICAgY29udGVudDogYERvIHlvdSB3aXNoIHRvIG5vdCBydW4gQUkgaW4gdGhlIGltYWdlP2AsXHJcbiAgICAgICAgYnV0dG9udHlwZTogJ2NvbmZpcm0nXHJcbiAgICAgIH1cclxuICAgICAgZGlhbG9nUmVmLnJlc3VsdC50aGVuKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXMpIHtcclxuICAgICAgICAgIHRoaXMucnVuQUlPZmYoc0lkeCxxSWR4LGZhbHNlLGFuc0lkeCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuZ2V0QW5zd2VyRm9ybUdyb3VwX0Zvcm1Db250cm9sKHNJZHgsIHFJZHgsICdydW5BSScpPy5wYXRjaFZhbHVlKHRydWUpO1xyXG4gICAgICAgICAgdGhpcy5nZXRRdWVzdGlvbkZvcm1Db250cm9sKHNJZHgsIHFJZHgsICdydW5BSScpPy5wYXRjaFZhbHVlKHRydWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBydW5BSU9mZihzSWR4OiBudW1iZXIsIHFJZHg6IG51bWJlciwgc2hvd0Vycm9yPzogYm9vbGVhbixhbnNJZHg6bnVtYmVyPS0xKSB7XHJcbiAgICBjb25zdCBhbnN3ZXJGb3JtR3JvdXAgPSB0aGlzLmdldEFuc3dlckZvcm1Hcm91cF9Gb3JtQ29udHJvbChzSWR4LCBxSWR4LCAncnVuQUknLGFuc0lkeCk7XHJcbiAgICBsZXQgc2VjdGlvblF1ZXN0aW9uID0gKCgoKHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChzSWR4KSBhcyBGb3JtR3JvdXApLmdldCgncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChxSWR4KSBhcyBGb3JtR3JvdXApO1xyXG4gICAgaWYgKGFuc3dlckZvcm1Hcm91cCkge1xyXG4gICAgICBhbnN3ZXJGb3JtR3JvdXAucGF0Y2hWYWx1ZShmYWxzZSk7XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IGFuc3dlcnMgPSAoKHNlY3Rpb25RdWVzdGlvbi5nZXQoJ2Fuc3dlcnMnKSBhcyBGb3JtQXJyYXkpLmF0KGFuc0lkeCkgYXMgRm9ybUdyb3VwKTsgICAgICAgICAgICAgICAgXHJcbiAgICAgIChhbnN3ZXJzLmdldCgncnVuQUlGZWF0dXJlcycpIGFzIEZvcm1BcnJheSk/LmNsZWFyKCk7XHJcbiAgXHJcbiAgICBjb25zdCBxdWVzdGlvbkNvbnRyb2wgPSB0aGlzLmdldFF1ZXN0aW9uRm9ybUNvbnRyb2woc0lkeCwgcUlkeCwgJ3J1bkFJJyxhbnNJZHgpO1xyXG4gICAgaWYgKHF1ZXN0aW9uQ29udHJvbCkge1xyXG4gICAgICBxdWVzdGlvbkNvbnRyb2wucGF0Y2hWYWx1ZShmYWxzZSk7XHJcbiAgICB9XHJcbiAgXHJcbiAgICAvLyBjb25zb2xlLmxvZyhxdWVzdGlvbkNvbnRyb2wpO1xyXG4gICAgXHJcbiAgICAvLyBjb25zdCBkZXNjcmlwdGlvbkNvbnRyb2wgPSB0aGlzLmdldFF1ZXN0aW9uRm9ybUNvbnRyb2woc0lkeCwgcUlkeCwgJ3J1bkFJRGVzY3JpcHRpb24nLGFuc0lkeCk7XHJcbiAgICAvLyBpZiAoZGVzY3JpcHRpb25Db250cm9sKSB7XHJcbiAgICAvLyAgIGRlc2NyaXB0aW9uQ29udHJvbC5wYXRjaFZhbHVlKCcnKTtcclxuICAgIC8vIH1cclxuICAgIC8vIGxldCBhbnN3ZXJzO1xyXG4gICAgLy8gaWYoYW5zSWR4ICE9IC0xKSB7XHJcbiAgICAvLyAgIGFuc3dlcnMgPSAoKHNlY3Rpb25RdWVzdGlvbi5nZXQoJ2Fuc3dlcnMnKSBhcyBGb3JtQXJyYXkpLmF0KGFuc0lkeCkgYXMgRm9ybUdyb3VwKTsgICAgICAgICAgICAgICAgXHJcbiAgICAvLyAgIChhbnN3ZXJzLmdldCgncnVuQUlGZWF0dXJlcycpIGFzIEZvcm1BcnJheSk/LmNsZWFyKCk7XHJcbiAgICAvLyB9XHJcbiAgICAvLyBlbHNlIHtcclxuICAgIC8vICAgKChzZWN0aW9uUXVlc3Rpb24uZ2V0KCdhbnN3ZXJzJykgYXMgRm9ybUdyb3VwKS5nZXQoJ3J1bkFJRmVhdHVyZXMnKSBhcyBGb3JtQXJyYXkpPy5jbGVhcigpO1xyXG4gICAgLy8gICAoc2VjdGlvblF1ZXN0aW9uLmdldCgncnVuQUlGZWF0dXJlcycpIGFzIEZvcm1BcnJheSk/LmNsZWFyKCk7XHJcbiAgICAvLyAgIGlmKHNlY3Rpb25RdWVzdGlvbi5nZXQoJ2Fuc3dlclR5cGUnKT8udmFsdWUgPT0gJ2ltYWdlJykge1xyXG4gICAgLy8gICAgIGFuc3dlcnMgPSBzZWN0aW9uUXVlc3Rpb24uZ2V0KCdhbnN3ZXJzJykgYXMgRm9ybUdyb3VwO1xyXG4gICAgLy8gICB9XHJcbiAgICAvLyB9XHJcbiAgICAvLyBjb25zdCBpbWFnZXNGQSA9IGFuc3dlcnM/LmdldCgnbXVsdGlSZWZlcmVuY2VJbWFnZScpIGFzIEZvcm1BcnJheTtcclxuICAgIC8vIGltYWdlc0ZBPy5jb250cm9scz8uZm9yRWFjaCgoY29udHJvbDogQWJzdHJhY3RDb250cm9sKSA9PiB7XHJcbiAgICAvLyAgIGlmIChjb250cm9sIGluc3RhbmNlb2YgRm9ybUdyb3VwKSB7XHJcbiAgICAvLyAgICAgY29udHJvbC5wYXRjaFZhbHVlKHsgcnVuQUk6IGZhbHNlIH0pO1xyXG4gICAgLy8gICB9XHJcbiAgICAvLyB9KTsgICAgXHJcbiAgXHJcbiAgICBpZiAoc2hvd0Vycm9yKSB7XHJcbiAgICAgIHRoaXMuc3dhbFRvYXN0KCdVbmFibGUgdG8gcHJvY2VzcyBydW5BSSByZXF1ZXN0ISBUcnkgYWdhaW4gYWZ0ZXIgc29tZSB0aW1lIScsJ2Vycm9yJyk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIFxyXG5cclxuICBnZXRTZWN0aW9uRm9ybUFycmF5KCkge1xyXG4gICAgcmV0dXJuICh0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheSk7XHJcbiAgfVxyXG5cclxuICBnZXRGb3JtQ29udHJvbChmb3JtQ29udHJvbDogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gKHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoZm9ybUNvbnRyb2wpIGFzIEZvcm1Db250cm9sKTtcclxuICB9XHJcblxyXG4gIGdldFNlY3Rpb25Gb3JtQ29udHJvbChzZWN0aW9uSW5kZXg6IG51bWJlciwgZm9ybUNvbnRyb2xOYW1lOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiAoXHJcbiAgICAgICh0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheSlcclxuICAgICAgICAuYXQoc2VjdGlvbkluZGV4KSBhcyBGb3JtR3JvdXApXHJcbiAgICAgIC5nZXQoZm9ybUNvbnRyb2xOYW1lKTtcclxuICB9XHJcblxyXG4gIGdldFF1ZXN0aW9uRm9ybUNvbnRyb2woc2VjdGlvbkluZGV4OiBudW1iZXIsIHF1ZXN0aW9uSW5kZXg6IG51bWJlciwgZm9ybUNvbnRyb2xOYW1lOiBzdHJpbmcsYW5zSWR4Om51bWJlciA9IC0xKSB7XHJcbiAgICBjb25zdCBzZWN0aW9ucyA9IHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5IHwgbnVsbDtcclxuICAgIGlmICghc2VjdGlvbnMpIHJldHVybiBudWxsO1xyXG4gIFxyXG4gICAgY29uc3Qgc2VjdGlvbiA9IHNlY3Rpb25zLmF0KHNlY3Rpb25JbmRleCkgYXMgRm9ybUdyb3VwIHwgbnVsbDtcclxuICAgIGlmICghc2VjdGlvbikgcmV0dXJuIG51bGw7XHJcbiAgXHJcbiAgICBjb25zdCBxdWVzdGlvbnMgPSBzZWN0aW9uLmdldCgncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5IHwgbnVsbDtcclxuICAgIGlmICghcXVlc3Rpb25zKSByZXR1cm4gbnVsbDtcclxuICBcclxuICAgIGxldCBxdWVzdGlvbiA9IHF1ZXN0aW9ucy5hdChxdWVzdGlvbkluZGV4KSBhcyBGb3JtR3JvdXAgfCBudWxsO1xyXG4gICAgaWYgKCFxdWVzdGlvbikgcmV0dXJuIG51bGw7XHJcblxyXG4gICAgaWYoYW5zSWR4ICE9IC0xKSB7XHJcbiAgICAgIGxldCBhbnN3ZXJMaXN0ID0gcXVlc3Rpb24uZ2V0KCdhbnN3ZXJzJykgYXMgRm9ybUFycmF5IHwgbnVsbDtcclxuICAgICAgaWYoIWFuc3dlckxpc3QpIHJldHVybiBudWxsO1xyXG4gICAgICBxdWVzdGlvbiA9IGFuc3dlckxpc3QuYXQoYW5zSWR4KSBhcyBGb3JtR3JvdXAgfCBudWxsO1xyXG4gICAgICBpZighcXVlc3Rpb24pIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gIFxyXG4gICAgY29uc3QgY29udHJvbCA9IHF1ZXN0aW9uLmdldChmb3JtQ29udHJvbE5hbWUpIGFzIEZvcm1Db250cm9sIHwgbnVsbDtcclxuICAgIHJldHVybiBjb250cm9sO1xyXG4gIH1cclxuICBcclxuXHJcbiAgZ2V0Rm9ybUFycmF5UXVlc3Rpb25zKHNlY3Rpb25JbmRleDogbnVtYmVyKSB7XHJcbiAgICByZXR1cm4gKCh0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheSkuYXQoc2VjdGlvbkluZGV4KS5nZXQoJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheSk7XHJcbiAgfVxyXG5cclxuICAvLyBpbmRpdmlkdWFsIHF1ZXN0aW9uXHJcbiAgZ2V0UXVlc3Rpb25zRm9ybUdyb3VwKHNlY3Rpb25JbmRleDogbnVtYmVyLCBxdWVzdGlvbkluZGV4OiBudW1iZXIpIHtcclxuICAgIHJldHVybiAoKCh0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheSkuYXQoc2VjdGlvbkluZGV4KS5nZXQoJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheSkuYXQocXVlc3Rpb25JbmRleCkgYXMgRm9ybUdyb3VwKTtcclxuICB9XHJcblxyXG4gIGdldEZvcm1BcnJheVF1ZXN0aW9uc0Fuc3dlcihzZWN0aW9uSW5kZXg6IG51bWJlciwgcXVlc3Rpb25JbmRleDogbnVtYmVyLCBmb3JtQXJyYXlOYW1lOiBzdHJpbmcsYW5zSW5kZXg6bnVtYmVyID0gLTEsbGlua3F1ZXN0aW9uSW5kZXg6bnVtYmVyID0gLTEpIHtcclxuICAgIGxldCBzZWN0aW9uID0gKCh0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheSk/LmF0KHNlY3Rpb25JbmRleCkgYXMgRm9ybUdyb3VwKTtcclxuICAgIGxldCBxdWVzdGlvbnMgPSAoKHNlY3Rpb24uZ2V0KCdxdWVzdGlvbnMnKSBhcyBGb3JtQXJyYXkpPy5hdChxdWVzdGlvbkluZGV4KSBhcyBGb3JtR3JvdXApO1xyXG4gICAgaWYoYW5zSW5kZXggPT0gLTEpIHtcclxuICAgICAgcmV0dXJuIChxdWVzdGlvbnMuZ2V0KGZvcm1BcnJheU5hbWUpIGFzIEZvcm1BcnJheSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgbGV0IGFuc3dlcnMgPSAoKHF1ZXN0aW9ucy5nZXQoJ2Fuc3dlcnMnKSBhcyBGb3JtQXJyYXkpPy5hdChhbnNJbmRleCkgYXMgRm9ybUdyb3VwKTtcclxuICAgICAgbGV0IGxpbmtlZEluZGV4ID0gKChhbnN3ZXJzLmdldCgnbGlua1F1ZXN0aW9uQW5zd2VycycpIGFzIEZvcm1BcnJheSkuYXQobGlua3F1ZXN0aW9uSW5kZXgpIGFzIEZvcm1Hcm91cCk7XHJcbiAgICAgIHJldHVybiAobGlua2VkSW5kZXguZ2V0KCdhbnN3ZXJzJykgYXMgRm9ybUFycmF5KVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0Rm9ybUFycmF5TGlua2VkUXVlc3Rpb25zKHNlY3Rpb25JbmRleDogbnVtYmVyLCBxdWVzdGlvbkluZGV4OiBudW1iZXIsYW5zd2VySW5kZXg6bnVtYmVyKSB7XHJcbiAgICBsZXQgc2VjdGlvbiA9ICgodGhpcy5DaGVja2xpc3RGb3JtLmdldCgnc2VjdGlvbnMnKSBhcyBGb3JtQXJyYXkpPy5hdChzZWN0aW9uSW5kZXgpIGFzIEZvcm1Hcm91cCk7XHJcbiAgICBsZXQgcXVlc3Rpb25zID0gKChzZWN0aW9uLmdldCgncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5KT8uYXQocXVlc3Rpb25JbmRleCkgYXMgRm9ybUdyb3VwKTtcclxuICAgIGxldCBhbnN3ZXIgPSAocXVlc3Rpb25zLmdldCgnYW5zd2VycycpIGFzIEZvcm1BcnJheSk/LmF0KGFuc3dlckluZGV4KSBhcyBGb3JtR3JvdXA7XHJcbiAgICByZXR1cm4gKGFuc3dlci5nZXQoJ2xpbmtRdWVzdGlvbkFuc3dlcnMnKSBhcyBGb3JtQXJyYXkpXHJcbiAgfVxyXG5cclxuICBnZXRRdWVzdGlvbnNGb3JtQXJyYXlWYWx1ZXMoc2VjdGlvbkluZGV4OiBudW1iZXIpOiBhbnlbXSB7XHJcbiAgICByZXR1cm4gKCh0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheSkuYXQoc2VjdGlvbkluZGV4KS5nZXQoJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheSkuZ2V0UmF3VmFsdWUoKSB8fCBbXTtcclxuICB9XHJcblxyXG4gIGdldEFuc3dlckZvcm1Hcm91cF9Gb3JtQ29udHJvbChzZWN0aW9uSW5kZXg6IG51bWJlciwgcXVlc3Rpb25JbmRleDogbnVtYmVyLCBmb3JtQ29udHJvbE5hbWU6IHN0cmluZyxhbnNJZHg6bnVtYmVyPSAtMSkge1xyXG4gICAgY29uc3Qgc2VjdGlvbnMgPSB0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheSB8IG51bGw7XHJcbiAgICBpZiAoIXNlY3Rpb25zKSByZXR1cm4gbnVsbDtcclxuICBcclxuICAgIGNvbnN0IHNlY3Rpb24gPSBzZWN0aW9ucy5hdChzZWN0aW9uSW5kZXgpIGFzIEZvcm1Hcm91cCB8IG51bGw7XHJcbiAgICBpZiAoIXNlY3Rpb24pIHJldHVybiBudWxsO1xyXG4gIFxyXG4gICAgY29uc3QgcXVlc3Rpb25zID0gc2VjdGlvbi5nZXQoJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheSB8IG51bGw7XHJcbiAgICBpZiAoIXF1ZXN0aW9ucykgcmV0dXJuIG51bGw7XHJcbiAgXHJcbiAgICBjb25zdCBxdWVzdGlvbiA9IHF1ZXN0aW9ucy5hdChxdWVzdGlvbkluZGV4KSBhcyBGb3JtR3JvdXAgfCBudWxsO1xyXG4gICAgaWYgKCFxdWVzdGlvbikgcmV0dXJuIG51bGw7XHJcblxyXG4gICAgaWYoZm9ybUNvbnRyb2xOYW1lID09IFwibXVsdGlRdWVzdGlvblJlZmVyZW5jZUltYWdlXCIpIHtcclxuICAgICAgY29uc3QgY29udHJvbCA9IHF1ZXN0aW9uLmdldChmb3JtQ29udHJvbE5hbWUpIGFzIEZvcm1BcnJheSB8IG51bGw7XHJcbiAgICAgIHJldHVybiBjb250cm9sO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIGxldCBhbnN3ZXJzID0gcXVlc3Rpb24uZ2V0KCdhbnN3ZXJzJykgYXMgRm9ybUdyb3VwIHwgbnVsbDtcclxuICAgICAgaWYgKCFhbnN3ZXJzKSByZXR1cm4gbnVsbDtcclxuICBcclxuICAgICAgaWYoYW5zSWR4ICE9IC0xKSB7XHJcbiAgXHJcbiAgICAgICAgbGV0IGFuc3dlckxpc3QgPSBxdWVzdGlvbi5nZXQoJ2Fuc3dlcnMnKSBhcyBGb3JtQXJyYXkgfCBudWxsO1xyXG4gICAgICAgIGlmKCFhbnN3ZXJMaXN0KSByZXR1cm4gbnVsbDtcclxuICAgICAgICBhbnN3ZXJzID0gYW5zd2VyTGlzdC5hdChhbnNJZHgpIGFzIEZvcm1Hcm91cCB8IG51bGw7XHJcbiAgICAgICAgaWYgKCFhbnN3ZXJzKSByZXR1cm4gbnVsbDtcclxuICAgICAgfVxyXG4gICAgICBjb25zdCBjb250cm9sID0gYW5zd2Vycy5nZXQoZm9ybUNvbnRyb2xOYW1lKSBhcyBGb3JtQ29udHJvbCB8IG51bGw7XHJcbiAgICAgIHJldHVybiBjb250cm9sO1xyXG4gICAgfVxyXG4gIFxyXG4gIH1cclxuXHJcbiAgcmVtb3ZlZE5lc3RlZFF1ZXN0aW9uKHNlY3Rpb25pbmRleDogbnVtYmVyLHFubzphbnkpIHtcclxuICAgIGxldCBxdWVzdGlvbnMgPSAodGhpcy5nZXRTZWN0aW9uRm9ybUFycmF5KCkuYXQoc2VjdGlvbmluZGV4KS5nZXQoJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheSk7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHF1ZXN0aW9ucy5sZW5ndGg7IGkrKykge1xyXG4gICAgICBsZXQgYW5zd2VycyA9IChxdWVzdGlvbnMuYXQoaSkgYXMgRm9ybUdyb3VwKT8uZ2V0KCdhbnN3ZXJzJykgYXMgRm9ybUFycmF5O1xyXG4gICAgICBpZihhbnN3ZXJzKSB7XHJcbiAgICAgICAgZm9yKGxldCBqPTA7ajxhbnN3ZXJzLmxlbmd0aDtqKyspIHtcclxuICAgICAgICAgIGxldCBsaW5rZWQgPSAoYW5zd2Vycy5hdChqKSBhcyBGb3JtR3JvdXApPy5nZXQoJ3Nob3dMaW5rZWQnKT8udmFsdWU7XHJcbiAgICAgICAgICBpZihsaW5rZWQpIHtcclxuICAgICAgICAgICAgbGV0IHF1ZXN0aW9uTm8gPSAoYW5zd2Vycy5hdChqKSBhcyBGb3JtR3JvdXApPy5nZXQoJ2xpbmtlZFF1ZXN0aW9uJyk/LnZhbHVlO1xyXG4gICAgICAgICAgICBpZihxdWVzdGlvbk5vID09IHFubykge1xyXG4gICAgICAgICAgICAgIChhbnN3ZXJzLmF0KGopIGFzIEZvcm1Hcm91cCk/LmdldCgnbGlua2VkUXVlc3Rpb24nKT8uc2V0VmFsdWUoMCk7XHJcbiAgICAgICAgICAgICAgKGFuc3dlcnMuYXQoaikgYXMgRm9ybUdyb3VwKT8uZ2V0KCdzaG93TGlua2VkJyk/LnNldFZhbHVlKGZhbHNlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdXBkYXRlUXVlc3Rpb25Rbm9zKHNlY3Rpb25pbmRleDogbnVtYmVyKSB7XHJcbiAgICBsZXQgcXVlc3Rpb25zID0gKHRoaXMuZ2V0U2VjdGlvbkZvcm1BcnJheSgpLmF0KHNlY3Rpb25pbmRleCkuZ2V0KCdxdWVzdGlvbnMnKSBhcyBGb3JtQXJyYXkpO1xyXG4gICAgbGV0IHVwZGF0ZWRMaXN0OmFueSA9IFtdO1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBxdWVzdGlvbnMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgbGV0IHFubyA9IChxdWVzdGlvbnMuYXQoaSkgYXMgRm9ybUdyb3VwKT8uZ2V0KCdxbm8nKT8udmFsdWU7XHJcbiAgICAgIGlmKCF0aGlzLmRlbGV0ZWRMaXN0LmluY2x1ZGVzKHFubykpIHtcclxuICAgICAgICBsZXQgcXVlc3Rpb25BcnJheSA9IHF1ZXN0aW9ucz8udmFsdWU7XHJcbiAgICAgICAgZm9yKGxldCBxbiA9IDA7IHFuIDwgcXVlc3Rpb25BcnJheS5sZW5ndGggO3FuKyspIHtcclxuICAgICAgICAgIGlmKCF1cGRhdGVkTGlzdC5pbmNsdWRlcyhxbikpIHtcclxuICAgICAgICAgICAgbGV0IGl0ZW0gPSBxdWVzdGlvbkFycmF5W3FuXTtcclxuICAgICAgICAgICAgaWYgKCFbJ2Rlc2NyaXB0aXZlJywgJ2ltYWdlJywgJ2Rlc2NyaXB0aXZlSW1hZ2UnLCAnbXVsdGlwbGVJbWFnZScsICd2aWRlbycsJ2xpbmVhcnNjYWxlJywndGltZScsJ2RhdGUnXS5pbmNsdWRlcyhpdGVtLmFuc3dlclR5cGUpKSB7XHJcbiAgICAgICAgICAgICAgZm9yKGxldCBhbnMgPSAwOyBhbnMgPCBpdGVtLmFuc3dlcnMubGVuZ3RoIDsgYW5zKyspIHtcclxuICAgICAgICAgICAgICAgIGlmIChpdGVtLmFuc3dlcnNbYW5zXS5saW5rZWRRdWVzdGlvbiA9PSBxbm8pIHtcclxuICAgICAgICAgICAgICAgICAgdXBkYXRlZExpc3QucHVzaChxbik7XHJcbiAgICAgICAgICAgICAgICAgICgoKHF1ZXN0aW9ucy5hdChxbikgYXMgRm9ybUdyb3VwKT8uZ2V0KCdhbnN3ZXJzJykgYXMgRm9ybUFycmF5KS5hdChhbnMpIGFzIEZvcm1Hcm91cCkuZ2V0KCdsaW5rZWRRdWVzdGlvbicpPy5zZXRWYWx1ZShpKzEpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICAocXVlc3Rpb25zLmF0KGkpIGFzIEZvcm1Hcm91cCk/LmdldCgncW5vJyk/LnNldFZhbHVlKGkrMSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLkNoZWNrbGlzdEZvcm0udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gIH1cclxuXHJcbiAgLy8gdXBkYXRlUXVlc3Rpb25Rbm9zKHNlY3Rpb25pbmRleDogbnVtYmVyKSB7XHJcbiAgLy8gICBsZXQgcXVlc3Rpb25zID0gKHRoaXMuZ2V0U2VjdGlvbkZvcm1BcnJheSgpLmF0KHNlY3Rpb25pbmRleCkuZ2V0KCdxdWVzdGlvbnMnKSBhcyBGb3JtQXJyYXkpO1xyXG4gIC8vICAgbGV0IHF1ZXN0aW9uQXJyYXkgPSBxdWVzdGlvbnM/LnZhbHVlO1xyXG4gIC8vICAgZm9yIChsZXQgaSA9IDA7IGkgPCBxdWVzdGlvbnMubGVuZ3RoOyBpKyspIHtcclxuICAvLyAgICAgbGV0IHFubyA9IChxdWVzdGlvbnMuYXQoaSkgYXMgRm9ybUdyb3VwKT8uZ2V0KCdxbm8nKT8udmFsdWU7XHJcbiAgLy8gICAgIGlmKCF0aGlzLmRlbGV0ZWRMaXN0LmluY2x1ZGVzKHFubykpIHtcclxuICAvLyAgICAgICBmb3IobGV0IHFuID0gMDsgcW4gPCBxdWVzdGlvbkFycmF5Lmxlbmd0aCA7cW4rKykge1xyXG4gIC8vICAgICAgICAgbGV0IGl0ZW0gPSBxdWVzdGlvbkFycmF5W3FuXTtcclxuICAvLyAgICAgICAgIGlmICghWydkZXNjcmlwdGl2ZScsICdpbWFnZScsICdkZXNjcmlwdGl2ZUltYWdlJywgJ211bHRpcGxlSW1hZ2UnLCAndmlkZW8nLCdsaW5lYXJzY2FsZScsJ3RpbWUnLCdkYXRlJ10uaW5jbHVkZXMoaXRlbS5hbnN3ZXJUeXBlKSkge1xyXG4gIC8vICAgICAgICAgICBsZXQgZmluZEluZGV4ID0gaXRlbS5hbnN3ZXJzLm1hcCgoaXRlbTphbnksIGluZGV4OmFueSkgPT4gKGl0ZW0ubGlua2VkUXVlc3Rpb24gPT0gcW5vID8gaW5kZXggOiAtMSkpLmZpbHRlcigoaW5kZXg6YW55KSA9PiBpbmRleCAhPT0gLTEpO1xyXG4gIC8vICAgICAgICAgICBpZihmaW5kSW5kZXgubGVuZ3RoKSB7XHJcbiAgLy8gICAgICAgICAgICAgZmluZEluZGV4LmZvckVhY2goKGlkeDpudW1iZXIpID0+IHtcclxuICAvLyAgICAgICAgICAgICAgIGl0ZW0uYW5zd2Vyc1tpZHhdLmNoZWNrZWQgPSB0cnVlO1xyXG4gIC8vICAgICAgICAgICAgICAgKCgocXVlc3Rpb25zLmF0KHFuKSBhcyBGb3JtR3JvdXApPy5nZXQoJ2Fuc3dlcnMnKSBhcyBGb3JtQXJyYXkpLmF0KGlkeCkgYXMgRm9ybUdyb3VwKS5nZXQoJ2xpbmtlZFF1ZXN0aW9uJyk/LnNldFZhbHVlKGkrMSk7XHJcbiAgLy8gICAgICAgICAgICAgfSlcclxuICAvLyAgICAgICAgICAgfVxyXG4gIC8vICAgICAgICAgICAvLyBsZXQgZmluZEFuc0lkeCA9IGl0ZW0uYW5zd2Vycy5maW5kSW5kZXgoKGVsZTphbnkpID0+IGVsZS5saW5rZWRRdWVzdGlvbiA9PSBxbm8gJiYgIWl0ZW0uY2hlY2tlZCk7XHJcbiAgLy8gICAgICAgICAgIC8vIGlmKGZpbmRBbnNJZHggIT0gLTEpIHtcclxuICAvLyAgICAgICAgICAgLy8gfVxyXG4gIC8vICAgICAgICAgfVxyXG4gIC8vICAgICAgIH1cclxuICAvLyAgICAgfVxyXG4gIC8vICAgICAocXVlc3Rpb25zLmF0KGkpIGFzIEZvcm1Hcm91cCk/LmdldCgncW5vJyk/LnNldFZhbHVlKGkrMSk7XHJcbiAgLy8gICB9XHJcbiAgLy8gICB0aGlzLkNoZWNrbGlzdEZvcm0udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gIC8vIH1cclxuXHJcbiAgZ2V0UXVlc3Rpb25zQW5zd2VyRm9ybUdyb3VwKHNlY3Rpb25JbmRleDogbnVtYmVyLCBxdWVzdGlvbkluZGV4OiBudW1iZXIsYW5zSW5kZXg6bnVtYmVyKSB7XHJcbiAgICByZXR1cm4gKCgoKCh0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheSkuYXQoc2VjdGlvbkluZGV4KS5nZXQoJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheSkuYXQocXVlc3Rpb25JbmRleCkgYXMgRm9ybUdyb3VwKS5nZXQoJ2Fuc3dlcnMnKSBhcyBGb3JtQXJyYXkpLmF0KGFuc0luZGV4KSBhcyBGb3JtR3JvdXApO1xyXG4gIH1cclxuXHJcbiAgc2V0QWN0aXZlUXVlc3Rpb24oc2VjSWR4OiBudW1iZXIsIHF1ZXN0aW9uSW5kZXg6IG51bWJlciwgYWN0aXZlc3RhdHVzOiBudW1iZXIsYW5zd2VySW5kZXg6bnVtYmVyID0gLTEpIHtcclxuICAgIGlmKGFjdGl2ZXN0YXR1cyA9PSAxKSB7XHJcbiAgICAgIGlmKGFuc3dlckluZGV4ICE9IC0xKSB7XHJcbiAgICAgICAgdGhpcy5nZXRRdWVzdGlvbnNBbnN3ZXJGb3JtR3JvdXAoc2VjSWR4LHF1ZXN0aW9uSW5kZXgsYW5zd2VySW5kZXgpLmFkZENvbnRyb2woJ2FjdGl2ZScsdGhpcy5mYi5jb250cm9sKHRydWUpKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmdldFF1ZXN0aW9uc0Zvcm1Hcm91cChzZWNJZHgscXVlc3Rpb25JbmRleCkuYWRkQ29udHJvbCgnYWN0aXZlJyx0aGlzLmZiLmNvbnRyb2wodHJ1ZSkpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYoYW5zd2VySW5kZXggIT0gLTEpIHtcclxuICAgICAgICB0aGlzLmdldFF1ZXN0aW9uc0Fuc3dlckZvcm1Hcm91cChzZWNJZHgscXVlc3Rpb25JbmRleCxhbnN3ZXJJbmRleCkucmVtb3ZlQ29udHJvbCgnYWN0aXZlJyk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5nZXRRdWVzdGlvbnNGb3JtR3JvdXAoc2VjSWR4LHF1ZXN0aW9uSW5kZXgpLnJlbW92ZUNvbnRyb2woJ2FjdGl2ZScpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYWxsb3dBZGRBbnN3ZXIoYW5zd2VyczogYW55W10pIHtcclxuICAgIHJldHVybiBhbnN3ZXJzLmxlbmd0aCA8IDMwO1xyXG4gIH1cclxuXHJcbiAgZ2V0UXVlc3Rpb25MaXN0KHNlY0lkeDpudW1iZXIscW50SWR4Om51bWJlcixhbnNJZHg6bnVtYmVyKSB7XHJcbiAgICAvLyBmb3IobGV0IGFuc3dlciBvZiBxdWVzdGlvbj8uYW5zd2Vycykge1xyXG4gICAgLy8gICAgICAgICBpZigoYW5zd2VyLmxpbmtlZFF1ZXN0aW9uICYmIGFuc3dlci5saW5rZWRRdWVzdGlvbiA9PSBgJHtxdWVzdGlvbi5xbm99YCAmJiBxdWVzdGlvbi5xbm8gPT0gKHFudElkeCsxKSkgfHwgKCFhbnN3ZXIubGlua2VkUXVlc3Rpb24ubGVuZ3RoICYmIHF1ZXN0aW9uLnFubyAhPSAocW50SWR4KzEpKSkge1xyXG4gICAgLy8gICAgICAgICAgICAgcXVlc3Rpb25MaXN0LnB1c2gocXVlc3Rpb24ucW5vKVxyXG4gICAgLy8gICAgICAgICB9XHJcbiAgICAvLyAgICAgICB9XHJcbiAgICBsZXQgcXVlc3Rpb25EZXRhaWxzID0gKCh0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheSkuYXQoc2VjSWR4KS5nZXQoJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheSkuZ2V0UmF3VmFsdWUoKSB8fCBbXTtcclxuICAgIFxyXG4gICAgbGV0IHF1ZXN0aW9uTGlzdDphbnkgPSBbXTtcclxuICAgIGxldCBsaW5rZWRRdWVzdGlvbnM6YW55ID0gW107XHJcbiAgICBpZihxdWVzdGlvbkRldGFpbHMubGVuZ3RoKSB7XHJcbiAgICAgIGZvcihsZXQgcXVlc3Rpb24gb2YgcXVlc3Rpb25EZXRhaWxzKSB7XHJcbiAgICAgICAgaWYocXVlc3Rpb24uYW5zd2Vycykge1xyXG4gICAgICAgICAgaWYoWyd2aWRlbycsJ2ltYWdlJywnZGVzY3JpcHRpdmVJbWFnZScsJ211bHRpcGxlSW1hZ2UnLCdsaW5lYXJzY2FsZScsJ3RpbWUnLCdkYXRlJywnaW1hZ2UvdmlkZW8nXS5pbmNsdWRlcyhxdWVzdGlvbi5hbnN3ZXJUeXBlKSkge1xyXG4gICAgICAgICAgICBxdWVzdGlvbi5hbnN3ZXJzID0gW3F1ZXN0aW9uLmFuc3dlcnNdO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgIGZvcihsZXQgW2luZGV4LGFuc3dlcl0gb2YgcXVlc3Rpb24uYW5zd2Vycy5lbnRyaWVzKCkpIHtcclxuICAgICAgICAgICAgaWYoYW5zd2VyPy5saW5rZWRRdWVzdGlvbikge1xyXG4gICAgICAgICAgICAgIGxpbmtlZFF1ZXN0aW9ucy5wdXNoKHtcclxuICAgICAgICAgICAgICAgIHFubzpxdWVzdGlvbi5xbm8sXHJcbiAgICAgICAgICAgICAgICBhbnNJZHg6aW5kZXgsXHJcbiAgICAgICAgICAgICAgICBsaW5rZWRRdWVzdGlvbjpwYXJzZUludChhbnN3ZXIubGlua2VkUXVlc3Rpb24pXHJcbiAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICAvLyBxdWVzdGlvbkRldGFpbHMgPSBxdWVzdGlvbkRldGFpbHMuZmlsdGVyKChpdGVtOmFueSkgPT4gaXRlbS5xbm8gIT0gKHFudElkeCsxKSk7XHJcbiAgICAgIGZvcihsZXQgcXVlc3Rpb24gb2YgcXVlc3Rpb25EZXRhaWxzKSB7XHJcbiAgICAgICAgaWYocXVlc3Rpb24/LmFuc3dlcnMpIHtcclxuICAgICAgICAgIGxldCBmaW5kRXhpc3RzID0gbGlua2VkUXVlc3Rpb25zLmZpbmQoKGl0ZW06YW55KSA9PiAgaXRlbS5xbm8gPT0gcXVlc3Rpb24ucW5vICYmIGl0ZW0uYW5zSWR4ID09IGFuc0lkeCAmJiBpdGVtLnFubyA9PSAocW50SWR4KzEpKTtcclxuICAgICAgICAgIGxldCBjaGVja0xpbmtlZCA9IGxpbmtlZFF1ZXN0aW9ucy5maW5kKChpdGVtOmFueSkgPT4gaXRlbS5saW5rZWRRdWVzdGlvbiA9PSBxdWVzdGlvbi5xbm8gfHwgaXRlbS5saW5rZWRRdWVzdGlvbiA9PSAocW50SWR4KzEpKTtcclxuICAgICAgICAgIGlmKCFjaGVja0xpbmtlZCAmJiAhZmluZEV4aXN0cyAmJiBxdWVzdGlvbi5xbm8gIT0gKHFudElkeCsxKSAmJiAhcXVlc3Rpb25MaXN0LmluY2x1ZGVzKHF1ZXN0aW9uLnFubykpIHtcclxuICAgICAgICAgICAgcXVlc3Rpb25MaXN0LnB1c2gocXVlc3Rpb24ucW5vKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmKGZpbmRFeGlzdHMgJiYgIXF1ZXN0aW9uTGlzdC5pbmNsdWRlcyhmaW5kRXhpc3RzLmxpbmtlZFF1ZXN0aW9uKSApIHtcclxuICAgICAgICAgICAgcXVlc3Rpb25MaXN0LnB1c2goZmluZEV4aXN0cy5saW5rZWRRdWVzdGlvbik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgbGV0IGZpbmRFeGlzdHMgPSBsaW5rZWRRdWVzdGlvbnMuZmluZCgoaXRlbTphbnkpID0+ICBpdGVtLmxpbmtlZFF1ZXN0aW9uID09IHF1ZXN0aW9uLnFubyk7XHJcbiAgICAgICAgICBpZighZmluZEV4aXN0cyAmJiBxdWVzdGlvbi5xbm8gIT0gKHFudElkeCsxKSAmJiAhcXVlc3Rpb25MaXN0LmluY2x1ZGVzKHF1ZXN0aW9uLnFubykpIHtcclxuICAgICAgICAgICAgcXVlc3Rpb25MaXN0LnB1c2gocXVlc3Rpb24ucW5vKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgXHJcbiAgICAgIHJldHVybiBxdWVzdGlvbkxpc3Q7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB1cGRhdGVMaW5rZWQoc2VjSWR4Om51bWJlcixxbklkeDpudW1iZXIsYW5zSWR4Om51bWJlcikge1xyXG4gICAgbGV0IGxpbmtWYWx1ZSA9ICgoKCgoKHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChzZWNJZHgpIGFzIEZvcm1Hcm91cCkuZ2V0KCdxdWVzdGlvbnMnKSBhcyBGb3JtQXJyYXkpLmF0KHFuSWR4KSBhcyBGb3JtR3JvdXApLmdldCgnYW5zd2VycycpIGFzIEZvcm1BcnJheSkuYXQoYW5zSWR4KSBhcyBGb3JtR3JvdXApLmdldCgnc2hvd0xpbmtlZCcpPy52YWx1ZTtcclxuICAgIGlmKGxpbmtWYWx1ZSkge1xyXG4gICAgICBsZXQgbGlua2VkUXVlc3Rpb24gPSAoKCgoKHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChzZWNJZHgpLmdldCgncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChxbklkeCkgYXMgRm9ybUdyb3VwKS5nZXQoJ2Fuc3dlcnMnKSBhcyBGb3JtQXJyYXkpLmF0KGFuc0lkeCkgYXMgRm9ybUdyb3VwKS5nZXQoJ2xpbmtlZFF1ZXN0aW9uJyk/LnZhbHVlO1xyXG4gICAgICBpZihsaW5rZWRRdWVzdGlvbikge1xyXG4gICAgICAgICgoKHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChzZWNJZHgpLmdldCgncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChsaW5rZWRRdWVzdGlvbiAtIDEpIGFzIEZvcm1Hcm91cCkuZ2V0KCdsaW5rVHlwZScpPy5zZXRWYWx1ZShmYWxzZSk7XHJcbiAgICAgIH1cclxuICAgICAgKCgoKCgodGhpcy5DaGVja2xpc3RGb3JtLmdldCgnc2VjdGlvbnMnKSBhcyBGb3JtQXJyYXkpLmF0KHNlY0lkeCkgYXMgRm9ybUdyb3VwKS5nZXQoJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheSkuYXQocW5JZHgpIGFzIEZvcm1Hcm91cCkuZ2V0KCdhbnN3ZXJzJykgYXMgRm9ybUFycmF5KS5hdChhbnNJZHgpIGFzIEZvcm1Hcm91cCkuZ2V0KCdsaW5rZWRRdWVzdGlvbicpPy5zZXRWYWx1ZSgwKTtcclxuICAgIH1cclxuXHJcbiAgICBpZighbGlua1ZhbHVlKSB7XHJcbiAgICAgICgoKCgoKHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChzZWNJZHgpIGFzIEZvcm1Hcm91cCkuZ2V0KCdxdWVzdGlvbnMnKSBhcyBGb3JtQXJyYXkpLmF0KHFuSWR4KSBhcyBGb3JtR3JvdXApLmdldCgnYW5zd2VycycpIGFzIEZvcm1BcnJheSkuYXQoYW5zSWR4KSBhcyBGb3JtR3JvdXApLmdldCgndmFsaWRhdGlvbicpPy5zZXRWYWx1ZShmYWxzZSk7XHJcbiAgICAgIHRoaXMuY2xlYXJSZWZlcmVuY2VJbWFnZShzZWNJZHgscW5JZHgsYW5zSWR4KTtcclxuICAgIH1cclxuXHJcbiAgICAoKCgoKCh0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheSkuYXQoc2VjSWR4KSBhcyBGb3JtR3JvdXApLmdldCgncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChxbklkeCkgYXMgRm9ybUdyb3VwKS5nZXQoJ2Fuc3dlcnMnKSBhcyBGb3JtQXJyYXkpLmF0KGFuc0lkeCkgYXMgRm9ybUdyb3VwKS5nZXQoJ3Nob3dMaW5rZWQnKT8uc2V0VmFsdWUoIWxpbmtWYWx1ZSlcclxuICB9XHJcblxyXG4gIHVwZGF0ZVF1ZXN0aW9uVHlwZShzZWNJZHg6bnVtYmVyLHFuSWR4Om51bWJlcixhbnNJZHg6bnVtYmVyLGV2ZW50OmFueSkge1xyXG4gICAgbGV0IGxpbmtlZFF1ZXN0aW9uID0gKCgoKCh0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheSkuYXQoc2VjSWR4KS5nZXQoJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheSkuYXQocW5JZHgpIGFzIEZvcm1Hcm91cCkuZ2V0KCdhbnN3ZXJzJykgYXMgRm9ybUFycmF5KS5hdChhbnNJZHgpIGFzIEZvcm1Hcm91cCkuZ2V0KCdsaW5rZWRRdWVzdGlvbicpPy52YWx1ZTtcclxuICAgIGlmKGxpbmtlZFF1ZXN0aW9uKSB7XHJcbiAgICAgICgoKHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChzZWNJZHgpLmdldCgncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChsaW5rZWRRdWVzdGlvbiAtIDEpIGFzIEZvcm1Hcm91cCkuZ2V0KCdsaW5rVHlwZScpPy5zZXRWYWx1ZShmYWxzZSk7XHJcbiAgICB9XHJcbiAgICBpZihldmVudC50YXJnZXQudmFsdWUpIHtcclxuICAgICAgbGV0IGluZGV4ID0gcGFyc2VJbnQoZXZlbnQudGFyZ2V0LnZhbHVlKSAtIDE7XHJcbiAgICAgICgoKHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChzZWNJZHgpLmdldCgncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChpbmRleCkgYXMgRm9ybUdyb3VwKS5nZXQoJ2xpbmtUeXBlJyk/LnNldFZhbHVlKHRydWUpO1xyXG4gICAgICAoKCgoKHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChzZWNJZHgpLmdldCgncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChxbklkeCkgYXMgRm9ybUdyb3VwKS5nZXQoJ2Fuc3dlcnMnKSBhcyBGb3JtQXJyYXkpLmF0KGFuc0lkeCkgYXMgRm9ybUdyb3VwKS5nZXQoJ2xpbmtlZFF1ZXN0aW9uJyk/LnNldFZhbHVlKGV2ZW50LnRhcmdldC52YWx1ZSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgKCgoKCh0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheSkuYXQoc2VjSWR4KS5nZXQoJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheSkuYXQocW5JZHgpIGFzIEZvcm1Hcm91cCkuZ2V0KCdhbnN3ZXJzJykgYXMgRm9ybUFycmF5KS5hdChhbnNJZHgpIGFzIEZvcm1Hcm91cCkuZ2V0KCdsaW5rZWRRdWVzdGlvbicpPy5zZXRWYWx1ZSgwKTtcclxuICAgICAgKCgoKCh0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheSkuYXQoc2VjSWR4KS5nZXQoJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheSkuYXQocW5JZHgpIGFzIEZvcm1Hcm91cCkuZ2V0KCdhbnN3ZXJzJykgYXMgRm9ybUFycmF5KS5hdChhbnNJZHgpIGFzIEZvcm1Hcm91cCkuZ2V0KCdzaG93TGlua2VkJyk/LnNldFZhbHVlKGZhbHNlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNlbGVjdE9wdGlvbihxbm86YW55LGFuc0xpbmtlZDphbnkpIHtcclxuICAgIHJldHVybiBxbm8gPT0gYW5zTGlua2VkID8gdHJ1ZSA6IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgZ2V0UXVlc3Rpb25OYW1lKHNlY0lkeDpudW1iZXIscUlkeDpudW1iZXIpIHtcclxuICAgIHJldHVybiAoKHRoaXMuZ2V0U2VjdGlvbkZvcm1BcnJheSgpLmF0KHNlY0lkeCkuZ2V0KCdxdWVzdGlvbnMnKSBhcyBGb3JtQXJyYXkpLmF0KHFJZHgtMSkgYXMgRm9ybUdyb3VwKS5nZXQoJ3FuYW1lJyk/LnZhbHVlO1xyXG4gIH1cclxuXHJcblJ1bkFJTmV3KHNJZHg6bnVtYmVyLHFJZHg6IG51bWJlcixhbnNJZHg6bnVtYmVyPS0xLGV2ZW50OiBhbnkpIHtcclxuICBjb25zb2xlLmxvZyhcImV2ZW50ID0+XCIsIGV2ZW50LnRhcmdldC5jaGVja2VkKVxyXG4gIC8vIGlmKGV2ZW50LnRhcmdldC5jaGVja2VkKXtcclxuICAgIGxldCBxTmFtZTogYW55ID0gdGhpcy5nZXRRdWVzdGlvbkZvcm1Db250cm9sKHNJZHgscUlkeCwncW5hbWUnKT8udmFsdWU7IFxyXG4gICAgbGV0IHJ1bkFJRmVhdHVyZXM6IGFueSA9IFtdO1xyXG4gICAgbGV0IHJ1bkFJRGVzY3JpcHRpb246IGFueSA9ICcnO1xyXG4gICAgbGV0IHNlY3Rpb25RdWVzdGlvbiA9ICgoKCh0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheSkuYXQoc0lkeCkgYXMgRm9ybUdyb3VwKS5nZXQoJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheSkuYXQocUlkeCkgYXMgRm9ybUdyb3VwKTtcclxuICAgIGlmKGFuc0lkeCAhPSAtMSkge1xyXG4gICAgICBydW5BSUZlYXR1cmVzPSB0aGlzLmdldEFuc3dlckZvcm1Hcm91cF9Gb3JtQ29udHJvbChzSWR4LHFJZHgsJ3J1bkFJRmVhdHVyZXMnLGFuc0lkeCk/LnZhbHVlOyBcclxuICAgICAgcnVuQUlEZXNjcmlwdGlvbj0gdGhpcy5nZXRBbnN3ZXJGb3JtR3JvdXBfRm9ybUNvbnRyb2woc0lkeCxxSWR4LCdydW5BSURlc2NyaXB0aW9uJyxhbnNJZHgpPy52YWx1ZTtcclxuICAgIH0gXHJcbiAgICBlbHNlIHtcclxuICAgICAgcnVuQUlGZWF0dXJlcz0gKChzZWN0aW9uUXVlc3Rpb24uZ2V0KFwiYW5zd2Vyc1wiKSBhcyBGb3JtR3JvdXApLmdldChcInJ1bkFJRmVhdHVyZXNcIikgYXMgRm9ybUFycmF5KT8udmFsdWU7IFxyXG4gICAgICBydW5BSURlc2NyaXB0aW9uPSAoKHNlY3Rpb25RdWVzdGlvbi5nZXQoXCJhbnN3ZXJzXCIpIGFzIEZvcm1Hcm91cCkuZ2V0KFwicnVuQUlEZXNjcmlwdGlvblwiKSBhcyBGb3JtQXJyYXkpPy52YWx1ZTtcclxuICAgIH1cclxuICAgIGxldCBxdWVzdGlvbkltYWdlcztcclxuICAgIGlmKGFuc0lkeCAhPSAtMSkge1xyXG4gICAgICBsZXQgYW5zd2VycyA9ICgoc2VjdGlvblF1ZXN0aW9uLmdldCgnYW5zd2VycycpIGFzIEZvcm1BcnJheSkuYXQoYW5zSWR4KSBhcyBGb3JtR3JvdXApO1xyXG4gICAgICBxdWVzdGlvbkltYWdlcyA9IChhbnN3ZXJzLmdldCgnbXVsdGlSZWZlcmVuY2VJbWFnZScpIGFzIEZvcm1BcnJheSk/LnZhbHVlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYoWydpbWFnZScsJ211bHRpcGxlSW1hZ2UnLCdkZXNjcmlwdGl2ZUltYWdlJ10uaW5jbHVkZXModGhpcy5nZXRRdWVzdGlvbkZvcm1Db250cm9sKHNJZHgscUlkeCwnYW5zd2VyVHlwZScpPy52YWx1ZSkpIHtcclxuICAgICAgICBxdWVzdGlvbkltYWdlcyA9IChzZWN0aW9uUXVlc3Rpb24uZ2V0KCdhbnN3ZXJzJykgYXMgRm9ybUdyb3VwKS5nZXQoJ211bHRpUmVmZXJlbmNlSW1hZ2UnKT8udmFsdWU7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgcXVlc3Rpb25JbWFnZXMgPSAoc2VjdGlvblF1ZXN0aW9uLmdldCgnYW5zd2VycycpIGFzIEZvcm1Hcm91cCkuZ2V0KCdtdWx0aVF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UnKT8udmFsdWU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICBcclxuICBpZihldmVudC50YXJnZXQuY2hlY2tlZCl7ICBcclxuICAgIGlmICh0aGlzLmdldEFuc3dlckZvcm1Hcm91cF9Gb3JtQ29udHJvbChzSWR4LCBxSWR4LCBcInJ1bkFJXCIsIGFuc0lkeCk/LnZhbHVlID09IGZhbHNlKSB7XHJcbiAgICAgIGlmICghcU5hbWUgfHwgIXRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoXCJjaGVja2xpc3ROYW1lXCIpPy52YWx1ZSkge1xyXG4gICAgICAgIGxldCBlcnI6IHN0cmluZyA9ICFxTmFtZVxyXG4gICAgICAgICAgPyBcIlBsZWFzZSBlbnRlciBxdWVzdGlvbiB0byBjb250aW51ZSFcIlxyXG4gICAgICAgICAgOiBcIlBsZWFzZSBlbnRlciBDaGVja2xpc3QgTmFtZSB0byBjb250aW51ZSFcIjtcclxuICAgICAgICB0aGlzLnN3YWxUb2FzdChlcnIsIFwiZXJyb3JcIik7XHJcbiAgICAgICAgdGhpcy5ydW5BSU9mZihzSWR4LCBxSWR4LCBmYWxzZSwgYW5zSWR4KTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihUcmF4UnVuQUlQb3B1cENvbXBvbmVudCwge1xyXG4gICAgICAgIGNlbnRlcmVkOiB0cnVlLFxyXG4gICAgICAgIHNpemU6IFwibWRcIixcclxuICAgICAgICBiYWNrZHJvcDogXCJzdGF0aWNcIlxyXG4gICAgICB9KTtcclxuICAgICAgZGlhbG9nUmVmLmNvbXBvbmVudEluc3RhbmNlLmRhdGEgPSB7XHJcbiAgICAgICAgaW1hZ2VzcmM6IGA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjU2XCIgaGVpZ2h0PVwiNTZcIiB2aWV3Qm94PVwiMCAwIDU2IDU2XCIgZmlsbD1cIm5vbmVcIj48cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIGZpbGw9XCIjRDFGQURGXCIvPjxwYXRoIGQ9XCJNMjMuMzU2NCAxOS4zNTI1QzI0LjE3NDggMTguNzMyNyAyNS4xNzM4IDE4LjM5ODUgMjYuMjAwNCAxOC40MDA5QzI2LjU1NDkgMTguMzkzIDI2LjkwNTcgMTguNDc0NiAyNy4yMjA0IDE4LjYzODJDMjcuNTM1IDE4LjgwMTggMjcuODAzMyAxOS4wNDIxIDI4LjAwMDQgMTkuMzM2OUMyOC4xOTc1IDE5LjA0MjEgMjguNDY1OCAxOC44MDE4IDI4Ljc4MDQgMTguNjM4MkMyOS4wOTUgMTguNDc0NiAyOS40NDU5IDE4LjM5MyAyOS44MDA0IDE4LjQwMDlDMzAuODI3IDE4LjM5ODUgMzEuODI2IDE4LjczMjcgMzIuNjQ0NCAxOS4zNTI1QzMzLjI3NDQgMTkuODQyMSAzMy43NjA0IDIwLjUyMDEgMzMuOTMyIDIxLjMzOTdDMzQuMzI1NiAyMS4zNjk3IDM0LjY4NTYgMjEuNTMyOSAzNC45ODggMjEuNzc4OUMzNS40NDY0IDIyLjE1MDkgMzUuNzggMjIuNzA4OSAzNS45OSAyMy4yOTkzQzM2LjMxODggMjQuMjE3MyAzNi40MDc2IDI1LjM4NzMgMzYuMDY2OCAyNi4zODMzQzM2LjE1MzIgMjYuNDI0MSAzNi4yMzg0IDI2LjQ3MjEgMzYuMzIxMiAyNi41MjczQzM2LjY1MTIgMjYuNzQ2OSAzNi45MDIgMjcuMDYxMyAzNy4wODY4IDI3LjQzMjFDMzcuNDUwNCAyOC4xNTgxIDM3LjYwMDQgMjkuMTcwOSAzNy42MDA0IDMwLjQwMDlDMzcuNjAwNCAzMS43NzAxIDM3LjA3ODQgMzIuNjg5MyAzNi40MTYgMzMuMjU2OUMzNi4wNDk3IDMzLjU3MSAzNS42MTc0IDMzLjc5ODYgMzUuMTUxMiAzMy45MjI5QzM1LjAzMTIgMzQuNTkyNSAzNC42OTUyIDM1LjM2NzcgMzQuMTY4NCAzNi4wMjUzQzMzLjQ4NDQgMzYuODgzMyAzMi40MjM2IDM3LjYwMDkgMzEuMDAwNCAzNy42MDA5QzI5Ljg3MjQgMzcuNjAwOSAyOC45NzQ4IDM2Ljk3NjkgMjguMzkxNiAzNi4zNjQ5QzI4LjI1MjIgMzYuMjE4OCAyOC4xMjE1IDM2LjA2NDUgMjguMDAwNCAzNS45MDI5QzI3Ljg3OTMgMzYuMDY0NSAyNy43NDg2IDM2LjIxODggMjcuNjA5MiAzNi4zNjQ5QzI3LjAyNiAzNi45NzY5IDI2LjEyOTYgMzcuNjAwOSAyNS4wMDA0IDM3LjYwMDlDMjMuNTc3MiAzNy42MDA5IDIyLjUxNzYgMzYuODgzMyAyMS44MzI0IDM2LjAyNTNDMjEuMzQwMSAzNS40MTQgMjEuMDAyOSAzNC42OTI3IDIwLjg0OTYgMzMuOTIyOUMyMC4zODM0IDMzLjc5ODYgMTkuOTUxMSAzMy41NzEgMTkuNTg0OCAzMy4yNTY5QzE4LjkyMjQgMzIuNjg5MyAxOC40MDA0IDMxLjc2ODkgMTguNDAwNCAzMC40MDA5QzE4LjQwMDQgMjkuMTcwOSAxOC41NTE2IDI4LjE1NjkgMTguOTE0IDI3LjQzMjFDMTkuMDg1NyAyNy4wNjg1IDE5LjM0OTcgMjYuNzU2MSAxOS42Nzk2IDI2LjUyNjFDMTkuNzYwNiAyNi40NzI1IDE5Ljg0NTcgMjYuNDI1MSAxOS45MzQgMjYuMzg0NUMxOS41OTMyIDI1LjM4NjEgMTkuNjgyIDI0LjIxNzMgMjAuMDEwOCAyMy4yOTkzQzIwLjIyMDggMjIuNzA4OSAyMC41NTQ0IDIyLjE1MDkgMjEuMDEyOCAyMS43Nzg5QzIxLjMxNTIgMjEuNTMyOSAyMS42NzUyIDIxLjM3MDkgMjIuMDY4OCAyMS4zMzk3QzIyLjI0MTYgMjAuNTIwMSAyMi43MjY0IDE5Ljg0MjEgMjMuMzU2NCAxOS4zNTI1Wk0yNy40MDA0IDIxLjQwMDlWMjEuMzg4OUwyNy4zOTggMjEuMzI4OUMyNy4zODAzIDIxLjAxNjEgMjcuMzE4MSAyMC43MDc0IDI3LjIxMzIgMjAuNDEyMUMyNy4xMzg1IDIwLjE4OTIgMjcuMDExMyAxOS45ODc2IDI2Ljg0MjQgMTkuODI0MUMyNi42NjUxIDE5LjY2OTggMjYuNDM1MiAxOS41ODk4IDI2LjIwMDQgMTkuNjAwOUMyNS40NDA3IDE5LjU5ODMgMjQuNzAwOSAxOS44NDM1IDI0LjA5MzIgMjAuMjk5M0MyMy41MzY0IDIwLjczMjUgMjMuMjAwNCAyMS4zMTkzIDIzLjIwMDQgMjIuMDAwOUMyMy4yMDAzIDIyLjA5NTkgMjMuMTc3NyAyMi4xODk2IDIzLjEzNDMgMjIuMjc0MUMyMy4wOTEgMjIuMzU4NyAyMy4wMjgyIDIyLjQzMTggMjIuOTUxMSAyMi40ODczQzIyLjg3NCAyMi41NDI4IDIyLjc4NDggMjIuNTc5MyAyMi42OTA5IDIyLjU5MzZDMjIuNTk2OSAyMi42MDc5IDIyLjUwMDkgMjIuNTk5NyAyMi40MTA4IDIyLjU2OTdDMjIuMTg1MiAyMi40OTUzIDIxLjk4MzYgMjIuNTM3MyAyMS43Njg4IDIyLjcxMDFDMjEuNTMzNiAyMi45MDIxIDIxLjMwNDQgMjMuMjQyOSAyMS4xNCAyMy43MDI1QzIwLjgwNTIgMjQuNjQwOSAyMC44NCAyNS43NzczIDIxLjI5OTYgMjYuNDY4NUMyMS4zNjUyIDI2LjU2NyAyMS40MDAzIDI2LjY4MjYgMjEuNDAwNCAyNi44MDA5SDIyLjMwMDRDMjMuMDE2NSAyNi44MDA5IDIzLjcwMzIgMjcuMDg1NCAyNC4yMDk2IDI3LjU5MTdDMjQuNzE1OSAyOC4wOTgxIDI1LjAwMDQgMjguNzg0OCAyNS4wMDA0IDI5LjUwMDlWMjkuOTAyOUMyNS40MDA3IDMwLjA0NDUgMjUuNzM4MSAzMC4zMjMgMjUuOTUzIDMwLjY4OTJDMjYuMTY3OCAzMS4wNTU1IDI2LjI0NjMgMzEuNDg1OSAyNi4xNzQ1IDMxLjkwNDRDMjYuMTAyNyAzMi4zMjI5IDI1Ljg4NTIgMzIuNzAyNSAyNS41NjA2IDMyLjk3NjJDMjUuMjM1OSAzMy4yNDk5IDI0LjgyNSAzMy40IDI0LjQwMDQgMzMuNEMyMy45NzU4IDMzLjQgMjMuNTY0OCAzMy4yNDk5IDIzLjI0MDIgMzIuOTc2MkMyMi45MTU2IDMyLjcwMjUgMjIuNjk4MSAzMi4zMjI5IDIyLjYyNjMgMzEuOTA0NEMyMi41NTQ1IDMxLjQ4NTkgMjIuNjMzIDMxLjA1NTUgMjIuODQ3OCAzMC42ODkyQzIzLjA2MjcgMzAuMzIzIDIzLjQwMDEgMzAuMDQ0NSAyMy44MDA0IDI5LjkwMjlWMjkuNTAwOUMyMy44MDA0IDI4LjY3MjkgMjMuMTI4NCAyOC4wMDA5IDIyLjMwMDQgMjguMDAwOUgyMC4yMDA0QzIwLjEyODcgMjguMDAwOCAyMC4wNTc1IDI3Ljk4NzggMTkuOTkwNCAyNy45NjI1TDE5Ljk4NjggMjcuOTY5N0MxOS43NDkyIDI4LjQ0MzcgMTkuNjAwNCAyOS4yMzA5IDE5LjYwMDQgMzAuNDAwOUMxOS42MDA0IDMxLjQzMTcgMTkuOTc4NCAzMi4wMTI1IDIwLjM2NiAzMi4zNDQ5QzIwLjc4MjQgMzIuNzAyNSAyMS4yNDQ0IDMyLjgwMDkgMjEuNDAwNCAzMi44MDA5QzIxLjU1OTUgMzIuODAwOSAyMS43MTIxIDMyLjg2NDEgMjEuODI0NyAzMi45NzY3QzIxLjkzNzIgMzMuMDg5MiAyMi4wMDA0IDMzLjI0MTggMjIuMDAwNCAzMy40MDA5QzIyLjAwMDQgMzMuODQyNSAyMi4yNDA0IDM0LjYxNDEgMjIuNzY4NCAzNS4yNzY1QzIzLjI4MzIgMzUuOTE4NSAyNC4wMjM2IDM2LjQwMDkgMjUuMDAwNCAzNi40MDA5QzI1LjY3MjQgMzYuNDAwOSAyNi4yNzQ4IDM2LjAyNTMgMjYuNzQwNCAzNS41MzY5QzI2Ljk2OTYgMzUuMjk2OSAyNy4xNDg0IDM1LjA0ODUgMjcuMjY0OCAzNC44NDQ1QzI3LjMxNzggMzQuNzU0MSAyNy4zNjMxIDM0LjY1OTMgMjcuNDAwNCAzNC41NjEzVjI1LjAwMDlIMjYuMDk4NEMyNS45NTY5IDI1LjQwMTIgMjUuNjc4MyAyNS43Mzg3IDI1LjMxMjEgMjUuOTUzNUMyNC45NDU5IDI2LjE2ODMgMjQuNTE1NCAyNi4yNDY4IDI0LjA5NyAyNi4xNzVDMjMuNjc4NSAyNi4xMDMyIDIzLjI5ODggMjUuODg1OCAyMy4wMjUxIDI1LjU2MTFDMjIuNzUxNCAyNS4yMzY1IDIyLjYwMTMgMjQuODI1NSAyMi42MDEzIDI0LjQwMDlDMjIuNjAxMyAyMy45NzYzIDIyLjc1MTQgMjMuNTY1NCAyMy4wMjUxIDIzLjI0MDdDMjMuMjk4OCAyMi45MTYxIDIzLjY3ODUgMjIuNjk4NiAyNC4wOTcgMjIuNjI2OEMyNC41MTU0IDIyLjU1NSAyNC45NDU5IDIyLjYzMzUgMjUuMzEyMSAyMi44NDgzQzI1LjY3ODMgMjMuMDYzMiAyNS45NTY5IDIzLjQwMDYgMjYuMDk4NCAyMy44MDA5SDI3LjQwMDRWMjEuNDAwOVpNMjguNjAwNCAzMy4zOTk3VjM0LjU2MDFDMjguNjM3NyAzNC42NTgxIDI4LjY4MyAzNC43NTI4IDI4LjczNiAzNC44NDMzQzI4Ljg1MzYgMzUuMDQ3MyAyOS4wMzEyIDM1LjI5NTcgMjkuMjU5MiAzNS41MzU3QzI5LjcyNiAzNi4wMjQxIDMwLjMyOTYgMzYuMzk5NyAzMS4wMDA0IDM2LjM5OTdDMzEuOTc3MiAzNi4zOTk3IDMyLjcxNzYgMzUuOTE3MyAzMy4yMzI0IDM1LjI3NTNDMzMuNzYwNCAzNC42MTI5IDM0LjAwMDQgMzMuODQxMyAzNC4wMDA0IDMzLjM5OTdDMzQuMDAwNCAzMy4yNDA2IDM0LjA2MzYgMzMuMDg4IDM0LjE3NjEgMzIuOTc1NUMzNC4yODg2IDMyLjg2MjkgMzQuNDQxMyAzMi43OTk3IDM0LjYwMDQgMzIuNzk5N0MzNC43NTY0IDMyLjc5OTcgMzUuMjE4NCAzMi43MDEzIDM1LjYzNDggMzIuMzQzN0MzNi4wMjI0IDMyLjAxMTMgMzYuNDAwNCAzMS40MzA1IDM2LjQwMDQgMzAuMzk5N0MzNi40MDA0IDI5LjIyOTcgMzYuMjUwNCAyOC40NDM3IDM2LjAxNCAyNy45Njg1QzM1LjkzNDkgMjcuNzkxNiAzNS44MTA4IDI3LjYzODUgMzUuNjU0IDI3LjUyNDVDMzUuNTE4OSAyNy40MzgxIDM1LjM2MDYgMjcuMzk1IDM1LjIwMDQgMjcuNDAwOUMzNS4wOTE5IDI3LjQwMDkgMzQuOTg1NCAyNy4zNzE0IDM0Ljg5MjMgMjcuMzE1NkMzNC43OTkyIDI3LjI1OTggMzQuNzIzIDI3LjE3OTggMzQuNjcxNyAyNy4wODQxQzM0LjYyMDUgMjYuOTg4NCAzNC41OTYyIDI2Ljg4MDcgMzQuNjAxNCAyNi43NzIzQzM0LjYwNjYgMjYuNjYzOCAzNC42NDExIDI2LjU1ODkgMzQuNzAxMiAyNi40Njg1QzM1LjE2MiAyNS43NzczIDM1LjE5NTYgMjQuNjQwOSAzNC44NjA4IDIzLjcwMjVDMzQuNjk2NCAyMy4yNDI5IDM0LjQ2NzIgMjIuOTAwOSAzNC4yMzIgMjIuNzEwMUMzNC4wMTcyIDIyLjUzNzMgMzMuODE1NiAyMi40OTQxIDMzLjU5IDIyLjU2OTdDMzMuNDk5OCAyMi41OTk3IDMzLjQwMzggMjIuNjA3OSAzMy4zMDk5IDIyLjU5MzZDMzMuMjE2IDIyLjU3OTMgMzMuMTI2OCAyMi41NDI4IDMzLjA0OTcgMjIuNDg3M0MzMi45NzI2IDIyLjQzMTggMzIuOTA5OCAyMi4zNTg3IDMyLjg2NjQgMjIuMjc0MUMzMi44MjMxIDIyLjE4OTYgMzIuODAwNSAyMi4wOTU5IDMyLjgwMDQgMjIuMDAwOUMzMi44MDA0IDIxLjMxOTMgMzIuNDY0NCAyMC43MzI1IDMxLjkwNjQgMjAuMjk5M0MzMS4yOTkgMTkuODQzOCAzMC41NTk2IDE5LjU5ODYgMjkuODAwNCAxOS42MDA5QzI5LjU2NTYgMTkuNTg5OCAyOS4zMzU2IDE5LjY2OTggMjkuMTU4NCAxOS44MjQxQzI4Ljk4ODkgMTkuOTg3NCAyOC44NjEzIDIwLjE4OTEgMjguNzg2NCAyMC40MTIxQzI4LjY3MjEgMjAuNzI1NiAyOC42MDkzIDIxLjA1NTQgMjguNjAwNCAyMS4zODg5VjMyLjIwMDlIMjkuNTAwNEMzMC4zMjg0IDMyLjIwMDkgMzEuMDAwNCAzMS41Mjg5IDMxLjAwMDQgMzAuNzAwOVYyOC40OTg5QzMwLjYwMDEgMjguMzU3NCAzMC4yNjI3IDI4LjA3ODkgMzAuMDQ3OCAyNy43MTI2QzI5LjgzMyAyNy4zNDY0IDI5Ljc1NDUgMjYuOTE2IDI5LjgyNjMgMjYuNDk3NUMyOS44OTgxIDI2LjA3OSAzMC4xMTU2IDI1LjY5OTMgMzAuNDQwMiAyNS40MjU3QzMwLjc2NDggMjUuMTUyIDMxLjE3NTggMjUuMDAxOSAzMS42MDA0IDI1LjAwMTlDMzIuMDI1IDI1LjAwMTkgMzIuNDM1OSAyNS4xNTIgMzIuNzYwNiAyNS40MjU3QzMzLjA4NTIgMjUuNjk5MyAzMy4zMDI3IDI2LjA3OSAzMy4zNzQ1IDI2LjQ5NzVDMzMuNDQ2MyAyNi45MTYgMzMuMzY3OCAyNy4zNDY0IDMzLjE1MyAyNy43MTI2QzMyLjkzODEgMjguMDc4OSAzMi42MDA3IDI4LjM1NzQgMzIuMjAwNCAyOC40OTg5VjMwLjcwMDlDMzIuMjAwNCAzMS40MTcgMzEuOTE1OSAzMi4xMDM4IDMxLjQwOTYgMzIuNjEwMUMzMC45MDMyIDMzLjExNjUgMzAuMjE2NSAzMy40MDA5IDI5LjUwMDQgMzMuNDAwOUgyOC42MDA0VjMzLjM5OTdaTTIzLjgwMDQgMjQuNDAwOUMyMy44MDA0IDI0LjU2MDEgMjMuODYzNiAyNC43MTI3IDIzLjk3NjEgMjQuODI1MkMyNC4wODg2IDI0LjkzNzcgMjQuMjQxMyAyNS4wMDA5IDI0LjQwMDQgMjUuMDAwOUMyNC41NTk1IDI1LjAwMDkgMjQuNzEyMSAyNC45Mzc3IDI0LjgyNDcgMjQuODI1MkMyNC45MzcyIDI0LjcxMjcgMjUuMDAwNCAyNC41NjAxIDI1LjAwMDQgMjQuNDAwOUMyNS4wMDA0IDI0LjI0MTggMjQuOTM3MiAyNC4wODkyIDI0LjgyNDcgMjMuOTc2N0MyNC43MTIxIDIzLjg2NDEgMjQuNTU5NSAyMy44MDA5IDI0LjQwMDQgMjMuODAwOUMyNC4yNDEzIDIzLjgwMDkgMjQuMDg4NiAyMy44NjQxIDIzLjk3NjEgMjMuOTc2N0MyMy44NjM2IDI0LjA4OTIgMjMuODAwNCAyNC4yNDE4IDIzLjgwMDQgMjQuNDAwOVpNMzEuNjAwNCAyNy40MDA5QzMxLjc1OTUgMjcuNDAwOSAzMS45MTIxIDI3LjMzNzcgMzIuMDI0NyAyNy4yMjUyQzMyLjEzNzIgMjcuMTEyNyAzMi4yMDA0IDI2Ljk2MDEgMzIuMjAwNCAyNi44MDA5QzMyLjIwMDQgMjYuNjQxOCAzMi4xMzcyIDI2LjQ4OTIgMzIuMDI0NyAyNi4zNzY3QzMxLjkxMjEgMjYuMjY0MSAzMS43NTk1IDI2LjIwMDkgMzEuNjAwNCAyNi4yMDA5QzMxLjQ0MTMgMjYuMjAwOSAzMS4yODg2IDI2LjI2NDEgMzEuMTc2MSAyNi4zNzY3QzMxLjA2MzYgMjYuNDg5MiAzMS4wMDA0IDI2LjY0MTggMzEuMDAwNCAyNi44MDA5QzMxLjAwMDQgMjYuOTYwMSAzMS4wNjM2IDI3LjExMjcgMzEuMTc2MSAyNy4yMjUyQzMxLjI4ODYgMjcuMzM3NyAzMS40NDEzIDI3LjQwMDkgMzEuNjAwNCAyNy40MDA5Wk0yNC40MDA0IDMxLjAwMDlDMjQuMjQxMyAzMS4wMDA5IDI0LjA4ODYgMzEuMDY0MSAyMy45NzYxIDMxLjE3NjdDMjMuODYzNiAzMS4yODkyIDIzLjgwMDQgMzEuNDQxOCAyMy44MDA0IDMxLjYwMDlDMjMuODAwNCAzMS43NjAxIDIzLjg2MzYgMzEuOTEyNyAyMy45NzYxIDMyLjAyNTJDMjQuMDg4NiAzMi4xMzc3IDI0LjI0MTMgMzIuMjAwOSAyNC40MDA0IDMyLjIwMDlDMjQuNTU5NSAzMi4yMDA5IDI0LjcxMjEgMzIuMTM3NyAyNC44MjQ3IDMyLjAyNTJDMjQuOTM3MiAzMS45MTI3IDI1LjAwMDQgMzEuNzYwMSAyNS4wMDA0IDMxLjYwMDlDMjUuMDAwNCAzMS40NDE4IDI0LjkzNzIgMzEuMjg5MiAyNC44MjQ3IDMxLjE3NjdDMjQuNzEyMSAzMS4wNjQxIDI0LjU1OTUgMzEuMDAwOSAyNC40MDA0IDMxLjAwMDlaXCIgZmlsbD1cIiMwMzk4NTVcIi8+PHJlY3QgeD1cIjRcIiB5PVwiNFwiIHdpZHRoPVwiNDhcIiBoZWlnaHQ9XCI0OFwiIHJ4PVwiMjRcIiBzdHJva2U9XCIjRUNGREYzXCIgc3Ryb2tlLXdpZHRoPVwiOFwiLz48L3N2Zz5gLFxyXG4gICAgICAgIHRpdGxlOiBgUnVuIEFJIG9uIGltYWdlIHVwbG9hZGVkYCxcclxuICAgICAgICBjb250ZW50OiBgVXNlIHRoZSBwb3dlciBvZiBBSSB0byBjb21wYXJlIGFuZCBkZXRlY3QgYW5vbWFsaWVzIGJldHdlZW4gdXBsb2FkZWQgYW5kIHJlZmVyZW5jZSBpbWFnZS5gLFxyXG4gICAgICAgIHF1ZXN0aW9uTmFtZTogcU5hbWUsXHJcbiAgICAgICAgaW1hZ2VzOiBxdWVzdGlvbkltYWdlcyxcclxuICAgICAgICBlbnZpcm9ubWVudDogdGhpcy5lbnZpcm9ubWVudC5UcmF4QW5zd2VyQ0ROLFxyXG4gICAgICAgIHJ1bkFJRmVhdHVyZXM6IHJ1bkFJRmVhdHVyZXMsXHJcbiAgICAgICAgcnVuQUlEZXNjcmlwdGlvbjogcnVuQUlEZXNjcmlwdGlvbixcclxuICAgICAgICBjbGllbnRJZDp0aGlzLmNsaWVudElkXHJcbiAgICAgIH07XHJcbiAgICAgIGRpYWxvZ1JlZi5yZXN1bHQudGhlbigocmVzOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAocmVzICE9IFwiY2FuY2VsXCIpIHtcclxuICAgICAgICAgIGxldCBpbWFnZXM6IGFueTtcclxuICAgICAgICAgIGxldCBmZWF0dXJlczogYW55O1xyXG4gICAgICAgICAgaWYgKGFuc0lkeCAhPSAtMSkge1xyXG4gICAgICAgICAgICBpbWFnZXMgPSAoXHJcbiAgICAgICAgICAgICAgKHNlY3Rpb25RdWVzdGlvbi5nZXQoXCJhbnN3ZXJzXCIpIGFzIEZvcm1BcnJheSkuYXQoXHJcbiAgICAgICAgICAgICAgICBhbnNJZHhcclxuICAgICAgICAgICAgICApIGFzIEZvcm1Hcm91cFxyXG4gICAgICAgICAgICApPy5nZXQoXCJtdWx0aVJlZmVyZW5jZUltYWdlXCIpIGFzIEZvcm1BcnJheTtcclxuICAgICAgICAgICAgZmVhdHVyZXMgPSAoXHJcbiAgICAgICAgICAgICAgKHNlY3Rpb25RdWVzdGlvbi5nZXQoXCJhbnN3ZXJzXCIpIGFzIEZvcm1BcnJheSkuYXQoXHJcbiAgICAgICAgICAgICAgICBhbnNJZHhcclxuICAgICAgICAgICAgICApIGFzIEZvcm1Hcm91cFxyXG4gICAgICAgICAgICApPy5nZXQoXCJydW5BSUZlYXR1cmVzXCIpIGFzIEZvcm1BcnJheTtcclxuICAgICAgICAgICAgICgoc2VjdGlvblF1ZXN0aW9uLmdldChcImFuc3dlcnNcIikgYXMgRm9ybUFycmF5KS5hdChhbnNJZHgpIGFzIEZvcm1Hcm91cCkuZ2V0KFwicnVuQUlEZXNjcmlwdGlvblwiKT8uc2V0VmFsdWUocmVzLnJ1bkFJRGVzY3JpcHRpb24pO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgaW1hZ2VzID0gKHNlY3Rpb25RdWVzdGlvbi5nZXQoXCJhbnN3ZXJzXCIpIGFzIEZvcm1Hcm91cCkuZ2V0KFxyXG4gICAgICAgICAgICAgIFwibXVsdGlSZWZlcmVuY2VJbWFnZVwiXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIGZlYXR1cmVzID0gKHNlY3Rpb25RdWVzdGlvbi5nZXQoXCJhbnN3ZXJzXCIpIGFzIEZvcm1Hcm91cCkuZ2V0KFwicnVuQUlGZWF0dXJlc1wiKSBhcyBGb3JtQXJyYXk7XHJcbiAgICAgICAgICAgIChzZWN0aW9uUXVlc3Rpb24uZ2V0KFwiYW5zd2Vyc1wiKSBhcyBGb3JtR3JvdXApLmdldChcInJ1bkFJRGVzY3JpcHRpb25cIik/LnNldFZhbHVlKHJlcy5ydW5BSURlc2NyaXB0aW9uKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGltYWdlcy5jbGVhcigpO1xyXG4gICAgICAgICAgcmVzLmltYWdlcy5mb3JFYWNoKChpbWc6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICBpbWFnZXMucHVzaChcclxuICAgICAgICAgICAgICB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgICAgICAgICAgIGltYWdlVVJMOiBpbWcuaW1hZ2VVUkwsXHJcbiAgICAgICAgICAgICAgICBydW5BSTogaW1nLnJ1bkFJLFxyXG4gICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIGZlYXR1cmVzLmNsZWFyKCk7XHJcbiAgICAgICAgICByZXMucnVuQUlGZWF0dXJlcy5mb3JFYWNoKChlbGU6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICBmZWF0dXJlcy5wdXNoKFxyXG4gICAgICAgICAgICAgIHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICAgICAgICAgICAgZmVhdHVyZU5hbWU6IHRoaXMuZmIuY29udHJvbChlbGUuZmVhdHVyZU5hbWUpLFxyXG4gICAgICAgICAgICAgICAgbGFibGVOYW1lOiB0aGlzLmZiLmNvbnRyb2woZWxlLmxhYmxlTmFtZSksXHJcbiAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgdGhpcy5pbnNlcnRGZWF0dXJlcyhyZXMucnVuQUlGZWF0dXJlcyk7XHJcbiAgICAgICAgICBpZiAoIXRoaXMuaGFzVmFsaWRhdGlvbkVuYWJsZWQoc0lkeCwgcUlkeCkpIHtcclxuICAgICAgICAgICAgKCgoKHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5KVxyXG4gICAgICAgICAgLmF0KHNJZHgpIGFzIEZvcm1Hcm91cClcclxuICAgICAgICAgIC5nZXQoJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheSlcclxuICAgICAgICAgIC5hdChxSWR4KSBhcyBGb3JtR3JvdXApLmdldCgnY29tcGxpYW5jZScpPy5lbmFibGUoKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy50b2FzdC5nZXRTdWNjZXNzVG9hc3QoJ1J1bkFJIGVuYWJsZWQgc3VjY2Vzc2Z1bGx5Jyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5ydW5BSU9mZihzSWR4LCBxSWR4LCBmYWxzZSwgYW5zSWR4KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMucnVuQUlPZmYoc0lkeCwgcUlkeCwgZmFsc2UsIGFuc0lkeCk7XHJcbiAgICAgIHRoaXMudG9hc3QuZ2V0U3VjY2Vzc1RvYXN0KCdSdW5BSSBkaXNhYmxlZCBzdWNjZXNzZnVsbHknKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gIH1lbHNle1xyXG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihUcmF4cG9wdXBDb21wb25lbnQse2NlbnRlcmVkOiB0cnVlLCBzaXplOiAnbWQnLCBiYWNrZHJvcDogXCJzdGF0aWNcIn0pO1xyXG4gICAgZGlhbG9nUmVmLmNvbXBvbmVudEluc3RhbmNlLmRhdGEgPSB7XHJcbiAgICAgIGltYWdlc3JjOiBgPHNwYW4+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCI1NlwiIGhlaWdodD1cIjU2XCIgdmlld0JveD1cIjAgMCA1NiA1NlwiIGZpbGw9XCJub25lXCI+PHJlY3QgeD1cIjRcIiB5PVwiNFwiIHdpZHRoPVwiNDhcIiBoZWlnaHQ9XCI0OFwiIHJ4PVwiMjRcIiBmaWxsPVwiI0ZFRTRFMlwiLz48cGF0aCBkPVwiTTI4IDI0VjI4TTI4IDMySDI4LjAxTTM4IDI4QzM4IDMzLjUyMjggMzMuNTIyOCAzOCAyOCAzOEMyMi40NzcyIDM4IDE4IDMzLjUyMjggMTggMjhDMTggMjIuNDc3MiAyMi40NzcyIDE4IDI4IDE4QzMzLjUyMjggMTggMzggMjIuNDc3MiAzOCAyOFpcIiBzdHJva2U9XCIjRDkyRDIwXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIHN0cm9rZT1cIiNGRUYzRjJcIiBzdHJva2Utd2lkdGg9XCI4XCIvPjwvc3ZnPjwvc3Bhbj5gLFxyXG4gICAgICB0aXRsZTogYFJ1biBBSSBSZW1vdmVgLFxyXG4gICAgICBjb250ZW50OiBgQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIFJlbW92ZSBSdW4gQUk/YCxcclxuICAgICAgYnV0dG9udHlwZTogJ3JlbW92ZSdcclxuICAgIH1cclxuICAgIGRpYWxvZ1JlZi5yZXN1bHQudGhlbigocmVzKSA9PiB7XHJcbiAgICAgIC8vIGNvbnNvbGUubG9nKFwicmVzID0+XCIsIHJlcylcclxuICAgICAgaWYgKHJlcyA9PSAnZGVsZXRlJykge1xyXG4gICAgICAgICBsZXQgcXVlc3Rpb24gPSAoKCgodGhpcy5DaGVja2xpc3RGb3JtLmdldCgnc2VjdGlvbnMnKSBhcyBGb3JtQXJyYXkpXHJcbiAgICAgIC5hdChzSWR4KSBhcyBGb3JtR3JvdXApXHJcbiAgICAgIC5nZXQoJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheSlcclxuICAgICAgLmF0KHFJZHgpIGFzIEZvcm1Hcm91cClcclxuICAgICAgICBxdWVzdGlvbi5nZXQoJ2NvbXBsaWFuY2UnKT8uZGlzYWJsZSh7ZW1pdEV2ZW50OmZhbHNlfSlcclxuICAgICAgICBxdWVzdGlvbi5nZXQoJ2NvbXBsaWFuY2UnKT8ucGF0Y2hWYWx1ZShmYWxzZSk7XHJcbiAgICAgICAgdGhpcy50b2FzdC5nZXRTdWNjZXNzVG9hc3QoJ1J1bkFJIGRpc2FibGVkIHN1Y2Nlc3NmdWxseScpO1xyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICBjb25zdCBjb250cm9sID0gdGhpcy5nZXRBbnN3ZXJGb3JtR3JvdXBfRm9ybUNvbnRyb2woc0lkeCwgcUlkeCwgXCJydW5BSVwiLCBhbnNJZHgpO1xyXG4gICAgICAgIGlmIChjb250cm9sKSB7XHJcbiAgICAgICAgICBjb250cm9sLnNldFZhbHVlKHRydWUsIHsgZW1pdEV2ZW50OiB0cnVlIH0pOyAvLyByZXNldCB0byBPTlxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICByZXR1cm47XHJcbiAgICB9ICAgIFxyXG4gIH1cclxuXHJcbiAgaW5zZXJ0RmVhdHVyZXMoZGF0YTphbnkpIHtcclxuICAgIGxldCBwYXJhbXMgPSB7XHJcbiAgICAgIGNsaWVudElkOiB0aGlzLmNsaWVudElkLFxyXG4gICAgICBydW5BSUZlYXR1cmVzOiBkYXRhLFxyXG4gICAgfTtcclxuXHJcbiAgICB0aGlzLnNvcFNlcnZpY2UudXBkYXRlUnVuQUlGZWF0dXJlcyhwYXJhbXMpLnBpcGUodGFrZVVudGlsKHRoaXMuZGV0YWNoKSkuc3Vic2NyaWJlKChyZXM6YW55KSA9PiB7XHJcbiAgICAgIGlmKHJlcyAmJiByZXMuY29kZSA9PSAyMDApe31cclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICAgXHJcbiAgb25Qb3B1cChpbWFnZTpzdHJpbmcpe1xyXG4gICAgbGV0IGltYWdlUmVmID0gdGhpcy5kaWFsb2cub3BlbihUcmF4cG9wdXBDb21wb25lbnQsIHsgY2VudGVyZWQ6IHRydWUsIHNpemU6IFwibWRcIiB9KTtcclxuICAgIGltYWdlUmVmLmNvbXBvbmVudEluc3RhbmNlLmRhdGEgPSB7dHlwZTonaW1hZ2UnLGltYWdlOnRoaXMuZW52aXJvbm1lbnQuVHJheEFuc3dlckNETitpbWFnZX07XHJcbiAgICBpbWFnZVJlZi5yZXN1bHQudGhlbigoKSA9PiB7fSk7XHJcbiAgfVxyXG4gIFxyXG4gIGRhdGVSYW5nZShldmVudDphbnksdHlwZTpzdHJpbmcsc2VjSWR4Om51bWJlcixxbklkeDpudW1iZXIpIHtcclxuICAgIGlmKGV2ZW50LnN0YXJ0RGF0ZSApIHtcclxuICAgICAgaWYodHlwZSA9PSAnc3RhcnQnKSB7XHJcbiAgICAgICAgKCgoKCh0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheSlcclxuICAgICAgICAgIC5hdChzZWNJZHgpIGFzIEZvcm1Hcm91cClcclxuICAgICAgICAgIC5nZXQoJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheSlcclxuICAgICAgICAgIC5hdChxbklkeCkgYXMgRm9ybUdyb3VwKS5nZXQoJ2Fuc3dlcnMnKSBhcyBGb3JtR3JvdXApLmdldCgnc3RhcnREYXRlJyk/LnNldFZhbHVlKGV2ZW50LnN0YXJ0RGF0ZS5mb3JtYXQoJ0RELU1NLVlZWVknKSk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgKCgoKCh0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheSlcclxuICAgICAgICAgIC5hdChzZWNJZHgpIGFzIEZvcm1Hcm91cClcclxuICAgICAgICAgIC5nZXQoJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheSlcclxuICAgICAgICAgIC5hdChxbklkeCkgYXMgRm9ybUdyb3VwKS5nZXQoJ2Fuc3dlcnMnKSBhcyBGb3JtR3JvdXApLmdldCgnZW5kRGF0ZScpPy5zZXRWYWx1ZShldmVudC5zdGFydERhdGUuZm9ybWF0KCdERC1NTS1ZWVlZJykpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKiogUmV0dXJucyB0cnVlIHdoZW4gQ29uZmlndXJlIENvbXBsaWFuY2UgU2NvcmUgc2hvdWxkIGJlIGRpc2FibGVkLlxyXG4gICAqIERpc2FibGVkIHdoZW4gdmFsaWRhdGUgcmVzcG9uc2UgaXMgZW5hYmxlZCwgRVhDRVBUIHdoZW4gdmFsaWRhdGlvblR5cGUgaXMgXCJDYXB0dXJlIEltYWdlXCIgYW5kIFJ1biBBSSBpcyBlbmFibGVkLiAqL1xyXG4gIGhhc1ZhbGlkYXRpb25FbmFibGVkKHNlY3Rpb25JbmRleDogbnVtYmVyLCBxdWVzdGlvbkluZGV4OiBudW1iZXIpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IGFuc3dlcnMgPSB0aGlzLmdldEZvcm1BcnJheVF1ZXN0aW9uc0Fuc3dlcihzZWN0aW9uSW5kZXgsIHF1ZXN0aW9uSW5kZXgsICdhbnN3ZXJzJyk/LnZhbHVlO1xyXG4gICAgaWYgKCFBcnJheS5pc0FycmF5KGFuc3dlcnMpKSByZXR1cm4gZmFsc2U7XHJcbiAgICAvLyBEaXNhYmxlIGNvbXBsaWFuY2Ugd2hlbiBhbnkgYW5zd2VyIGhhcyB2YWxpZGF0aW9uIHRoYXQgaXMgTk9UIChDYXB0dXJlIEltYWdlICsgUnVuIEFJKVxyXG4gICAgcmV0dXJuIGFuc3dlcnMuc29tZSgoYTogYW55KSA9PiBhLnZhbGlkYXRpb24gJiYgKGEudmFsaWRhdGlvblR5cGUgIT09ICdDYXB0dXJlIEltYWdlJyB8fCAhYS5ydW5BSSkpO1xyXG4gIH1cclxuXHJcbiAgZ2V0Q29tcGxpYW5jZVRvYXN0KHNlY0lkeDpudW1iZXIscW5JZHg6bnVtYmVyLGV2ZW50OmFueSkge1xyXG4gICAgaWYoZXZlbnQudGFyZ2V0LmNoZWNrZWQpIHtcclxuICAgICAgbGV0IHF1ZXN0aW9uID0gKCgoKHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5KVxyXG4gICAgICAgICAgIC5hdChzZWNJZHgpIGFzIEZvcm1Hcm91cClcclxuICAgICAgICAgICAuZ2V0KCdxdWVzdGlvbnMnKSBhcyBGb3JtQXJyYXkpXHJcbiAgICAgICAgICAgLmF0KHFuSWR4KSBhcyBGb3JtR3JvdXApLmdldCgnYW5zd2VyVHlwZScpPy52YWx1ZTtcclxuXHJcbiAgICAgIGxldCBhbnN3ZXJzID0gKCgoKHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5KVxyXG4gICAgICAgICAgIC5hdChzZWNJZHgpIGFzIEZvcm1Hcm91cClcclxuICAgICAgICAgICAuZ2V0KCdxdWVzdGlvbnMnKSBhcyBGb3JtQXJyYXkpXHJcbiAgICAgICAgICAgLmF0KHFuSWR4KSBhcyBGb3JtR3JvdXApLmdldCgnYW5zd2VycycpPy52YWx1ZTtcclxuXHJcbiAgICAgIGlmKFsnbXVsdGlwbGVjaG9pY2VtdWx0aXBsZScsJ211bHRpcGxlY2hvaWNlc2luZ2xlJywneWVzL25vJ10uaW5jbHVkZXMocXVlc3Rpb24pICYmIGFuc3dlcnMuc29tZSgoZWxlOmFueSkgPT4gZWxlLnJ1bkFJKSkge1xyXG4gICAgICAgIHRoaXMudG9hc3QuZ2V0V2FybmluZ1RvYXN0KCdDb21wbGlhbmNlIHNjb3JlIGhhcyBiZWVuIGVuYWJsZWQgZm9yIFJ1biBBSScpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBidWxrVXBsb2FkUXVlc3Rpb24oKSB7XHJcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKENoZWNrbGlzdFBvcHVwQ29tcG9uZW50LCB7XHJcbiAgICAgIGNlbnRlcmVkOiB0cnVlLFxyXG4gICAgICBzaXplOiBcImxnXCIsXHJcbiAgICB9KTtcclxuICAgIGRpYWxvZ1JlZi5jb21wb25lbnRJbnN0YW5jZS5jaGVja2xpc3REYXRhID0ge1xyXG4gICAgICBjaGVja0xpc3ROYW1lOiB0aGlzLkNoZWNrbGlzdEZvcm0udmFsdWUuY2hlY2tsaXN0TmFtZSxcclxuICAgICAgY2hlY2tMaXN0RGVzY3JpcHRpb246IHRoaXMuQ2hlY2tsaXN0Rm9ybS52YWx1ZS5jaGVja2xpc3REZXNjcmlwdGlvbixcclxuICAgICAgY2xpZW50SWQ6IHRoaXMuY2xpZW50SWQsXHJcbiAgICAgIGNoZWNrbGlzdElkOiB0aGlzLmVkaXR2YWx1ZSxcclxuICAgIH07XHJcbiAgICBkaWFsb2dSZWYucmVzdWx0LnRoZW4oKHJlcykgPT4ge1xyXG4gICAgICBpZiAocmVzID09IFwicmVsb2FkXCIpIHtcclxuICAgICAgICB0aGlzLmNoZWNrbGlzdExvYWRpbmcgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuc29wU2VydmljZVxyXG4gICAgICAgICAgLmdldGNvbmZpZyh7IGNoZWNrTGlzdElkOiB0aGlzLmVkaXR2YWx1ZSwgY2xpZW50SWQ6IHRoaXMuY2xpZW50SWQgfSlcclxuICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRldGFjaCkpXHJcbiAgICAgICAgICAuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgICAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICBpZiAocmVzKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAocmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0b2JqZWN0ID0gcmVzLmRhdGEuY2hlY2tMaXN0RGV0YWlscztcclxuICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtQ2hlY2tsaXN0UXVlc3Rpb25zKCk7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmNoZWNrbGlzdExvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jaGVja2xpc3RMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAoZXJyb3IpID0+IHtcclxuICAgICAgICAgICAgICB0aGlzLmNoZWNrbGlzdExvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlTnVtYmVyKGV2ZW50OiBhbnksIHNlY0lkeDogbnVtYmVyLCBxbklkeDogbnVtYmVyKSB7XHJcbiAgICBjb25zdCBsaW5lYXJUeXBlID0gZXZlbnQ/LnRhcmdldD8udmFsdWUgYXMgJ3BlcmNlbnRhZ2UnIHwgJ251bWJlcicgfCAnZGVncmVlJztcclxuICAgIGNvbnN0IGFuc3dlcnMgPSAoKCgodGhpcy5DaGVja2xpc3RGb3JtLmdldCgnc2VjdGlvbnMnKSBhcyBGb3JtQXJyYXkpXHJcbiAgICAgIC5hdChzZWNJZHgpIGFzIEZvcm1Hcm91cClcclxuICAgICAgLmdldCgncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5KVxyXG4gICAgICAuYXQocW5JZHgpIGFzIEZvcm1Hcm91cCkuZ2V0KCdhbnN3ZXJzJykgYXMgRm9ybUdyb3VwO1xyXG5cclxuICAgIGNvbnN0IGRlZmF1bHRzOiBSZWNvcmQ8c3RyaW5nLCB7IHJhbmdlU3RhcnQ6IG51bWJlcjsgcmFuZ2VFbmQ6IG51bWJlciB9PiA9IHtcclxuICAgICAgcGVyY2VudGFnZTogeyByYW5nZVN0YXJ0OiAwLCByYW5nZUVuZDogMTAwIH0sXHJcbiAgICAgIG51bWJlcjogeyByYW5nZVN0YXJ0OiAwLCByYW5nZUVuZDogMTAwIH0sXHJcbiAgICAgIGRlZ3JlZTogeyByYW5nZVN0YXJ0OiAwLCByYW5nZUVuZDogMTAwIH0sIC8vIGRlZmF1bHQgMDsgdXNlciBjYW4gZW50ZXIgZG93biB0byAtMjczLjE1XHJcbiAgICB9O1xyXG4gICAgY29uc3QgeyByYW5nZVN0YXJ0LCByYW5nZUVuZCB9ID0gZGVmYXVsdHNbbGluZWFyVHlwZV0gPz8gZGVmYXVsdHMubnVtYmVyO1xyXG5cclxuICAgIGFuc3dlcnMuZ2V0KCdyYW5nZVN0YXJ0Jyk/LnNldFZhbHVlKHJhbmdlU3RhcnQpO1xyXG4gICAgYW5zd2Vycy5nZXQoJ3JhbmdlRW5kJyk/LnNldFZhbHVlKHJhbmdlRW5kKTtcclxuXHJcbiAgICBjb25zdCBtaW5WYWx1ZSA9IGFuc3dlcnMuZ2V0KCdtaW5WYWx1ZScpPy52YWx1ZTtcclxuICAgIGNvbnN0IG1heFZhbHVlID0gYW5zd2Vycy5nZXQoJ21heFZhbHVlJyk/LnZhbHVlO1xyXG4gICAgaWYgKG1pblZhbHVlICE9IG51bGwgJiYgbWluVmFsdWUgIT09ICcnICYmIE51bWJlcihtaW5WYWx1ZSkgPCByYW5nZVN0YXJ0KSB7XHJcbiAgICAgIGFuc3dlcnMuZ2V0KCdtaW5WYWx1ZScpPy5zZXRWYWx1ZShyYW5nZVN0YXJ0KTtcclxuICAgIH0gZWxzZSBpZiAobWluVmFsdWUgIT0gbnVsbCAmJiBtaW5WYWx1ZSAhPT0gJycgJiYgTnVtYmVyKG1pblZhbHVlKSA+IHJhbmdlRW5kKSB7XHJcbiAgICAgIGFuc3dlcnMuZ2V0KCdtaW5WYWx1ZScpPy5zZXRWYWx1ZShyYW5nZUVuZCk7XHJcbiAgICB9XHJcbiAgICBpZiAobWF4VmFsdWUgIT0gbnVsbCAmJiBtYXhWYWx1ZSAhPT0gJycgJiYgTnVtYmVyKG1heFZhbHVlKSA8IHJhbmdlU3RhcnQpIHtcclxuICAgICAgYW5zd2Vycy5nZXQoJ21heFZhbHVlJyk/LnNldFZhbHVlKHJhbmdlU3RhcnQpO1xyXG4gICAgfSBlbHNlIGlmIChtYXhWYWx1ZSAhPSBudWxsICYmIG1heFZhbHVlICE9PSAnJyAmJiBOdW1iZXIobWF4VmFsdWUpID4gcmFuZ2VFbmQpIHtcclxuICAgICAgYW5zd2Vycy5nZXQoJ21heFZhbHVlJyk/LnNldFZhbHVlKHJhbmdlRW5kKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uUmFuZ2VWYWx1ZUlucHV0KGV2ZW50OiBFdmVudCwgc2VjSWR4OiBudW1iZXIsIHFuSWR4OiBudW1iZXIsIGNvbnRyb2xOYW1lOiAnbWluVmFsdWUnIHwgJ21heFZhbHVlJykge1xyXG4gICAgY29uc3QgbGluZWFyVHlwZSA9IHRoaXMuZ2V0QW5zd2VyRm9ybUdyb3VwX0Zvcm1Db250cm9sKHNlY0lkeCwgcW5JZHgsICdsaW5lYXJUeXBlJyk/LnZhbHVlO1xyXG4gICAgaWYgKGxpbmVhclR5cGUgIT09ICdkZWdyZWUnKSByZXR1cm47XHJcblxyXG4gICAgY29uc3QgaW5wdXQgPSBldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcclxuICAgIGNvbnN0IGZpbHRlcmVkID0gaW5wdXQudmFsdWUucmVwbGFjZSgvW15cXGQuLV0vZywgJycpLnJlcGxhY2UoLyg/IV4pLS9nLCAnJykucmVwbGFjZSgvKFxcLi4qKVxcLi9nLCAnJDEnKTtcclxuICAgIGlmIChmaWx0ZXJlZCAhPT0gaW5wdXQudmFsdWUpIHtcclxuICAgICAgaW5wdXQudmFsdWUgPSBmaWx0ZXJlZDtcclxuICAgICAgY29uc3QgYW5zd2VycyA9ICgoKCh0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheSlcclxuICAgICAgICAuYXQoc2VjSWR4KSBhcyBGb3JtR3JvdXApXHJcbiAgICAgICAgLmdldCgncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5KVxyXG4gICAgICAgIC5hdChxbklkeCkgYXMgRm9ybUdyb3VwKS5nZXQoJ2Fuc3dlcnMnKSBhcyBGb3JtR3JvdXA7XHJcbiAgICAgIGNvbnN0IHZhbCA9IGZpbHRlcmVkID09PSAnJyB8fCBmaWx0ZXJlZCA9PT0gJy0nID8gZmlsdGVyZWQgOiBOdW1iZXIoZmlsdGVyZWQpO1xyXG4gICAgICBhbnN3ZXJzLmdldChjb250cm9sTmFtZSk/LnNldFZhbHVlKHZhbCwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2xhbXBSYW5nZUlucHV0KHNlY0lkeDogbnVtYmVyLCBxbklkeDogbnVtYmVyLCBjb250cm9sTmFtZTogJ21pblZhbHVlJyB8ICdtYXhWYWx1ZScpIHtcclxuICAgIGNvbnN0IGFuc3dlcnMgPSAoKCgodGhpcy5DaGVja2xpc3RGb3JtLmdldCgnc2VjdGlvbnMnKSBhcyBGb3JtQXJyYXkpXHJcbiAgICAgIC5hdChzZWNJZHgpIGFzIEZvcm1Hcm91cClcclxuICAgICAgLmdldCgncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5KVxyXG4gICAgICAuYXQocW5JZHgpIGFzIEZvcm1Hcm91cCkuZ2V0KCdhbnN3ZXJzJykgYXMgRm9ybUdyb3VwO1xyXG5cclxuICAgIGNvbnN0IHJhbmdlU3RhcnQgPSBhbnN3ZXJzLmdldCgncmFuZ2VTdGFydCcpPy52YWx1ZTtcclxuICAgIGNvbnN0IHJhbmdlRW5kID0gYW5zd2Vycy5nZXQoJ3JhbmdlRW5kJyk/LnZhbHVlO1xyXG5cclxuICAgIGlmIChyYW5nZVN0YXJ0ID09IG51bGwgfHwgcmFuZ2VFbmQgPT0gbnVsbCkgcmV0dXJuO1xyXG5cclxuICAgIGNvbnN0IGNvbnRyb2wgPSBhbnN3ZXJzLmdldChjb250cm9sTmFtZSk7XHJcbiAgICBjb25zdCB2YWx1ZSA9IGNvbnRyb2w/LnZhbHVlO1xyXG5cclxuICAgIGlmICh2YWx1ZSA9PT0gJycgfHwgdmFsdWUgPT09ICctJyB8fCAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJyAmJiBOdW1iZXIuaXNOYU4odmFsdWUpKSkge1xyXG4gICAgICBjb250cm9sPy5zZXRWYWx1ZShyYW5nZVN0YXJ0KTtcclxuICAgIH0gZWxzZSBpZiAodmFsdWUgIT0gbnVsbCkge1xyXG4gICAgICBjb25zdCBudW1WYWx1ZSA9IE51bWJlcih2YWx1ZSk7XHJcbiAgICAgIGlmICghTnVtYmVyLmlzTmFOKG51bVZhbHVlKSkge1xyXG4gICAgICAgIGlmIChudW1WYWx1ZSA8IHJhbmdlU3RhcnQpIHtcclxuICAgICAgICAgIGNvbnRyb2w/LnNldFZhbHVlKHJhbmdlU3RhcnQpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAobnVtVmFsdWUgPiByYW5nZUVuZCkge1xyXG4gICAgICAgICAgY29udHJvbD8uc2V0VmFsdWUocmFuZ2VFbmQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb250cm9sPy5zZXRWYWx1ZShyYW5nZVN0YXJ0KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdXBkYXRlTGltaXQoZXZlbnQ6YW55LHNlY0lkeDpudW1iZXIscW5JZHg6bnVtYmVyKSB7XHJcbiAgICAoKCgoKHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5KVxyXG4gICAgICAgICAgLmF0KHNlY0lkeCkgYXMgRm9ybUdyb3VwKVxyXG4gICAgICAgICAgLmdldCgncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5KVxyXG4gICAgICAgICAgLmF0KHFuSWR4KSBhcyBGb3JtR3JvdXApLmdldCgnYW5zd2VycycpIGFzIEZvcm1Hcm91cCkuZ2V0KCdpbWFnZUxpbWl0Jyk/LnNldFZhbHVlKDApO1xyXG4gICAgKCgoKCh0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheSlcclxuICAgICAgICAgIC5hdChzZWNJZHgpIGFzIEZvcm1Hcm91cClcclxuICAgICAgICAgIC5nZXQoJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheSlcclxuICAgICAgICAgIC5hdChxbklkeCkgYXMgRm9ybUdyb3VwKS5nZXQoJ2Fuc3dlcnMnKSBhcyBGb3JtR3JvdXApLmdldCgndmlkZW9MaW1pdCcpPy5zZXRWYWx1ZSgwKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImNhcmRcIiAqbmdJZj1cImNoZWNrbGlzdExvYWRpbmdcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJyb3cgbG9hZGVyIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzaGltbWVyXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgdGl0bGVcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBsaW5rXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgZGVzY3JpcHRpb25cIj48L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInNoaW1tZXJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSB0aXRsZVwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGxpbmtcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBkZXNjcmlwdGlvblwiPjwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuPGRpdiAqbmdJZj1cIiFjaGVja2xpc3RMb2FkaW5nXCIgaWQ9XCJjaGVja2xpc3RDcmVhdGVcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciBbZm9ybUdyb3VwXT1cIkNoZWNrbGlzdEZvcm1cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyIGJvcmRlci0wIHB0LTMgcGItM1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyB3LTEwMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtOVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJjYXJkLXRpdGxlIGFsaWduLWl0ZW1zLWNlbnRlciBtdC0zIG1iLTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgcm91dGVyTGluaz1cIi9tYW5hZ2UvdHJheC9jaGVja2xpc3RcIiBjbGFzcz1cImJ0biBidG4tc20gYnRuLW91dGxpbmUgbWUtNSBwcy0yIHB4LTNcIj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTE1LjgzMzIgMTAuMDAwM0g0LjE2NjVNNC4xNjY1IDEwLjAwMDNMOS45OTk4NCAxNS44MzM3TTQuMTY2NSAxMC4wMDAzTDkuOTk5ODQgNC4xNjY5OVwiIHN0cm9rZT1cIiMzNDQwNTRcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtY29sdW1uIHctODAwcHhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZWRpdGFibGVjb250ZW50IG1iLTQgdy0xMDBcIj48aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImNoZWNrbGlzdCBwbGFpbi1pbnB1dFwiICNjaGVja2xpc3ROYW1lIHBsYWNlaG9sZGVyPVwiRW50ZXIgQ2hlY2tsaXN0IE5hbWVcIiBmb3JtQ29udHJvbE5hbWU9XCJjaGVja2xpc3ROYW1lXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImVkaXRhYmxlY29udGVudCB3LTEwMFwiPjxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiY2hlY2tsaXN0RGVzY3JpcHRpb24gcGxhaW4taW5wdXRcIiAjY2hlY2tsaXN0RGVzY3JpcHRpb24gcGxhY2Vob2xkZXI9XCJFbnRlciBDaGVja2xpc3QgRGVzY3JpcHRpb25cIiBmb3JtQ29udHJvbE5hbWU9XCJjaGVja2xpc3REZXNjcmlwdGlvblwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvaDM+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggbXktNiBqdXN0aWZ5LWNvbnRlbnQtZW5kXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBwb3NpdGlvbi1yZWxhdGl2ZSBteS0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgbXgtMiBidG4tb3V0bGluZSBidG4tb3V0bGluZS1kZWZhdWx0IHJvdW5kZWQtMyB0ZXh0LW5vd3JhcCBib3JkZXItdmFsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJzaG93dmFsdWUgPT09ICdhZGQnXCIgKGNsaWNrKT1cInNhdmVDaGVja2xpc3RRdWVzdGlvbnMoJ2NvbmZpZ3VyZScpXCI+PHNwYW4gY2xhc3M9XCJtcy0yXCI+Q29uZmlndXJlPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLWRlZmF1bHQgbXgtMiBidG4tb3V0bGluZSBidG4tb3V0bGluZS1kZWZhdWx0IHJvdW5kZWQtMyB0ZXh0LW5vd3JhcCBib3JkZXItdmFsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJzaG93dmFsdWUgPT09ICdhZGQnXCIgKGNsaWNrKT1cInNhdmVBc0RyYWZ0UG9wKCdjcmVhdGUnKVwiPjxzcGFuIGNsYXNzPVwibXMtMlwiPlNhdmUgYXMgRHJhZnQ8L3NwYW4+IDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgbXgtMiBidG4tb3V0bGluZSBidG4tb3V0bGluZS1kZWZhdWx0IHJvdW5kZWQtMyB0ZXh0LW5vd3JhcCBib3JkZXItdmFsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJzaG93dmFsdWUgPT09ICdlZGl0J1wiIChjbGljayk9XCJ1cGRhdGVDaGVja2xpc3RRdWVzdGlvbnMoJ2NvbmZpZ3VyZScpXCI+PHNwYW4gY2xhc3M9XCJtcy0yXCI+Q29uZmlndXJlPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1kZWZhdWx0IG14LTIgYnRuLW91dGxpbmUgYnRuLW91dGxpbmUtZGVmYXVsdCByb3VuZGVkLTMgdGV4dC1ub3dyYXAgYm9yZGVyLXZhbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwic2hvd3ZhbHVlID09PSAnZWRpdCdcIiAoY2xpY2spPVwic2F2ZUFzRHJhZnRQb3AoJ3VwZGF0ZScpXCI+PHNwYW4gY2xhc3M9XCJtcy0yXCI+U2F2ZSBhcyBEcmFmdDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PlxyXG4gICAgXHJcbiAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0zIG10LTJcIj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbZm9ybUdyb3VwXT1cIkNoZWNrbGlzdEZvcm1cIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uLWxlZnQgY2FyZCBweC03IHB5LTdcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZnMtMThweCBmdy02MDAgdGV4dC1sZWZ0IG1iLTMgY29uY2lzZS1jaGVja2xpc3RuYW1lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7Z2V0Rm9ybUNvbnRyb2woJ2NoZWNrbGlzdE5hbWUnKS52YWx1ZSA/IGdldEZvcm1Db250cm9sKCdjaGVja2xpc3ROYW1lJykudmFsdWUgOiAnQ2hlY2tsaXN0TmFtZSd9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0LXBhbmVsLWNvbnRhaW5lclwiIGZvcm1BcnJheU5hbWU9XCJzZWN0aW9uc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBzZWN0aW9uIG9mIGdldFNlY3Rpb25Gb3JtQXJyYXkoKS5jb250cm9scztsZXQgaT1pbmRleDtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW2Zvcm1Hcm91cE5hbWVdPVwiaVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggc2VjdGlvbiBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWJldHdlZW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZzLTE4cHggZnctYm9sZCBlZGl0YWJsZWNvbnRlbnQtbGVmdFwiPnt7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRTZWN0aW9uRm9ybUNvbnRyb2woaSwnbmFtZScpPy52YWx1ZSA9PT0gJycgPyBcIlNlY3Rpb24gXCIgOiAnJ319e3tcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldFNlY3Rpb25Gb3JtQ29udHJvbChpLCduYW1lJyk/LnZhbHVlID8gZ2V0U2VjdGlvbkZvcm1Db250cm9sKGksJ25hbWUnKT8udmFsdWVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogZ2V0U2VjdGlvbkZvcm1Db250cm9sKGksJ3NlY3Rpb25OdW1iZXInKT8udmFsdWV9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aHIgY2xhc3M9XCJteC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgKGNsaWNrKT1cImRlbGV0ZVNlY3Rpb24oaSlcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIzNVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIzNVwiIHZpZXdCb3g9XCIwIDAgMTggMThcIiBtYXRUb29sdGlwPVwiRGVsZXRlIHNlY3Rpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0VG9vbHRpcFBvc2l0aW9uPVwiYWJvdmVcIiBtYXRUb29sdGlwQ2xhc3M9XCJjdXN0b20tdGVzdFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMi4yNSA0LjVIMy43NU0zLjc1IDQuNUgxNS43NU0zLjc1IDQuNVYxNUMzLjc1IDE1LjM5NzggMy45MDgwNCAxNS43Nzk0IDQuMTg5MzQgMTYuMDYwN0M0LjQ3MDY0IDE2LjM0MiA0Ljg1MjE4IDE2LjUgNS4yNSAxNi41SDEyLjc1QzEzLjE0NzggMTYuNSAxMy41Mjk0IDE2LjM0MiAxMy44MTA3IDE2LjA2MDdDMTQuMDkyIDE1Ljc3OTQgMTQuMjUgMTUuMzk3OCAxNC4yNSAxNVY0LjVIMy43NVpNNiA0LjVWM0M2IDIuNjAyMTggNi4xNTgwNCAyLjIyMDY0IDYuNDM5MzQgMS45MzkzNEM2LjcyMDY0IDEuNjU4MDQgNy4xMDIxOCAxLjUgNy41IDEuNUgxMC41QzEwLjg5NzggMS41IDExLjI3OTQgMS42NTgwNCAxMS41NjA3IDEuOTM5MzRDMTEuODQyIDIuMjIwNjQgMTIgMi42MDIxOCAxMiAzVjQuNU03LjUgOC4yNVYxMi43NU0xMC41IDguMjVWMTIuNzVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjRcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIChjbGljayk9XCJhY2NvcmRpYW4oaSlcIiBbbmdDbGFzc109XCJ7J3JvdGF0ZScgOiBzaG93ICE9PSBpfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIzNVwiIGhlaWdodD1cIjM1XCIgdmlld0JveD1cIjAgMCAyMCAyMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk01IDcuNUwxMCAxMi41TDE1IDcuNVwiIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2hvdz09PWlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjZGtEcm9wTGlzdCAoY2RrRHJvcExpc3REcm9wcGVkKT1cImRyYWdEcm9wKGksJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2RrRHJvcExpc3REYXRhXT1cImdldEZvcm1BcnJheVF1ZXN0aW9ucyhpKS5jb250cm9sc1wiIGNsYXNzPVwicXVlc3Rpb24tbGVmdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBmb3JtQXJyYXlOYW1lPVwicXVlc3Rpb25zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgcXVlc3Rpb24gb2YgZ2V0Rm9ybUFycmF5UXVlc3Rpb25zKGkpLmNvbnRyb2xzO2xldCBqPWluZGV4O1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibXktMiBjdXJzb3ItcG9pbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInF1ZXN0aW9uLmdldCgnYWN0aXZlJyk/LnZhbHVlID09PSB0cnVlID8gJ2FjdGl2ZS1xdWVzdGlvbicgOiAncS1idG4nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2RrRHJhZyAobW91c2VlbnRlcik9XCJzZXRBY3RpdmVRdWVzdGlvbihpLGosMSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2Nyb2xsVG9RdWVzdGlvbihpLGopO1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb3VzZWxlYXZlKT1cInNldEFjdGl2ZVF1ZXN0aW9uKGksaiwtMSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbZm9ybUdyb3VwTmFtZV09XCJqXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29uY2lzZS1xdWVzdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7Z2V0UXVlc3Rpb25Gb3JtQ29udHJvbChpLGosJ3FuYW1lJyk/LnZhbHVlID8gJycgOiBcIlF1ZXN0aW9uXCJ9fXt7IGdldFF1ZXN0aW9uRm9ybUNvbnRyb2woaSxqLCdxbmFtZScpPy52YWx1ZSA/XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0UXVlc3Rpb25Gb3JtQ29udHJvbChpLGosJ3FuYW1lJyk/LnZhbHVlIDpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRRdWVzdGlvbkZvcm1Db250cm9sKGksaiwncW5vJyk/LnZhbHVlIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICBcclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTkgbXQtMlwiPlxyXG4gICAgICAgICAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cIkNoZWNrbGlzdEZvcm1cIiAjZm9ybVJlZj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkIHB4LTdcIj5cclxuICAgICAgICAgICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJjaGVja2xpc3QtY2FyZCBweS01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwibXQtMlwiIHN0eWxlPVwidGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiRW50ZXIgY2hlY2tsaXN0IG5hbWUgaGVyZVwiIGZvcm1Db250cm9sTmFtZT1cImNoZWNrbGlzdE5hbWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJtdC00XCIgcGxhY2Vob2xkZXI9XCJFbnRlciBjaGVja2xpc3QgZGVzY3JpcHRpb24gaGVyZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJjaGVja2xpc3REZXNjcmlwdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIGZvcm1BcnJheU5hbWU9XCJzZWN0aW9uc1wiID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb25BcmVhIG10LTVcIiAqbmdGb3I9XCJsZXQgc2VjdGlvbiBvZiBnZXRTZWN0aW9uRm9ybUFycmF5KCkuY29udHJvbHM7bGV0IGk9aW5kZXg7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIFtmb3JtR3JvdXBOYW1lXT1cImlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbiBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCI+XHJcbiAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZzLTE4cHggZnctYm9sZCBlZGl0YWJsZWNvbnRlbnRcIj48aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cInBsYWluLWlucHV0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjc2VjdGlvbk5hbWUgKGNoYW5nZSk9XCJ1cGRhdGVJbnB1dFZhbHVlKGksc2VjdGlvbk5hbWUudmFsdWUpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJuYW1lXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxocj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz1cIm1sLTVcIiAoY2xpY2spPVwiZGVsZXRlU2VjdGlvbihpKVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgbWF0VG9vbHRpcD1cIkRlbGV0ZSBzZWN0aW9uXCIgbWF0VG9vbHRpcFBvc2l0aW9uPVwiYWJvdmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0VG9vbHRpcENsYXNzPVwiY3VzdG9tLXRlc3RcIiB2aWV3Qm94PVwiMCAwIDE4IDE4XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0yLjI1IDQuNUgzLjc1TTMuNzUgNC41SDE1Ljc1TTMuNzUgNC41VjE1QzMuNzUgMTUuMzk3OCAzLjkwODA0IDE1Ljc3OTQgNC4xODkzNCAxNi4wNjA3QzQuNDcwNjQgMTYuMzQyIDQuODUyMTggMTYuNSA1LjI1IDE2LjVIMTIuNzVDMTMuMTQ3OCAxNi41IDEzLjUyOTQgMTYuMzQyIDEzLjgxMDcgMTYuMDYwN0MxNC4wOTIgMTUuNzc5NCAxNC4yNSAxNS4zOTc4IDE0LjI1IDE1VjQuNUgzLjc1Wk02IDQuNVYzQzYgMi42MDIxOCA2LjE1ODA0IDIuMjIwNjQgNi40MzkzNCAxLjkzOTM0QzYuNzIwNjQgMS42NTgwNCA3LjEwMjE4IDEuNSA3LjUgMS41SDEwLjVDMTAuODk3OCAxLjUgMTEuMjc5NCAxLjY1ODA0IDExLjU2MDcgMS45MzkzNEMxMS44NDIgMi4yMjA2NCAxMiAyLjYwMjE4IDEyIDNWNC41TTcuNSA4LjI1VjEyLjc1TTEwLjUgOC4yNVYxMi43NVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuNFwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgKGNsaWNrKT1cImFjY29yZGlhbihpKVwiIFtuZ0NsYXNzXT1cInsncm90YXRlJyA6IHNob3cgIT09IGl9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTUgNy41TDEwIDEyLjVMMTUgNy41XCIgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJxdWVzdGlvbnNBcmVhXCIgKm5nSWY9XCJzaG93ID09PSBpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgZm9ybUFycmF5TmFtZT1cInF1ZXN0aW9uc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIlF1ZXN0aW9uLXNlYyBtdC0xMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IHF1ZXN0aW9uIG9mIGdldEZvcm1BcnJheVF1ZXN0aW9ucyhpKS5jb250cm9scztsZXQgaiA9IGluZGV4O1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vdXNlZW50ZXIpPVwic2V0QWN0aXZlUXVlc3Rpb24oaSxqLDEpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW91c2VsZWF2ZSk9XCJzZXRBY3RpdmVRdWVzdGlvbihpLGosLTEpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbZm9ybUdyb3VwTmFtZV09XCJqXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZnMtMThweCBweC0zIGVkaXRhYmxlY29udGVudCBxdWVzdGlvbnRpdGxlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwiY3Vyc29yOiBkZWZhdWx0O1wiPiBRdWVzdGlvbiB7e2orMX19PC9zcGFuPlxyXG4gICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGVja2xpc3QtY2FyZCBwYi01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGV4dGFyZWEgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZm9ybS1jb250cm9sLXNvbGlkXCIgcm93cz1cIjFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJtdC0wXCIgW2lkXT1cIidxLScgKyBpICsgJy0nICsgalwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJFbnRlciBxdWVzdGlvbiBoZXJlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJxbmFtZVwiPjwvdGV4dGFyZWE+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJxdWVzdGlvbi5nZXQoJ3FuYW1lJyk/LmludmFsaWQgJiYgcXVlc3Rpb24uZ2V0KCdxbmFtZScpPy50b3VjaGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgc3R5bGU9XCJjb2xvcjogcmVkO1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwicXVlc3Rpb24uZ2V0KCdxbmFtZScpPy5oYXNFcnJvcigncmVxdWlyZWQnKVwiPipcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUXVlc3Rpb24gaXMgcmVxdWlyZWQuPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhWydkZXNjcmlwdGl2ZUltYWdlJywnaW1hZ2UnLCdtdWx0aXBsZUltYWdlJ10uaW5jbHVkZXMocXVlc3Rpb24uZ2V0KCdhbnN3ZXJUeXBlJyk/LnZhbHVlKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC00IHctOTAgdGV4dC1jZW50ZXJcIiAqbmdGb3I9XCJsZXQgaW1hZ2Ugb2YgcXVlc3Rpb24uZ2V0KCdtdWx0aVF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UnKT8udmFsdWU7IGxldCBtID0gaW5kZXhcIiBzdHlsZT1cInBvc2l0aW9uOiByZWxhdGl2ZTtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaW1hZ2U/LmltYWdlVVJMXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpbWFnZS1jb250YWluZXIgcmVmX2ltZ19jb250IG1iLTQgbXQtNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cInt7ZW52aXJvbm1lbnQuVHJheEFuc3dlckNETn19e3tpbWFnZS5pbWFnZVVSTH19XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiOTAlXCIgaGVpZ2h0PVwiMzAwcHhcIiBjbGFzcz1cImF1dG8tYWRqdXN0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdD1cIlRhbmdvIEV5ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3ZlcmxheS1pY29uc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwicXVlc3Rpb24uZ2V0KCdkaXNhYmxlUnVuQUknKT8udmFsdWUgPyAnJyA6IG9uUG9wdXAoaW1hZ2UuaW1hZ2VVUkwpXCIgbmdiVG9vbHRpcD1cIkV4cGFuZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjQwXCIgaGVpZ2h0PVwiNDBcIiB2aWV3Qm94PVwiMCAwIDQwIDQwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGZpbHRlcj1cInVybCgjZmlsdGVyMF9kXzE0NTU3XzYyNTEzKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjJcIiB5PVwiMVwiIHdpZHRoPVwiMzZcIiBoZWlnaHQ9XCIzNlwiIHJ4PVwiOFwiIGZpbGw9XCJ3aGl0ZVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCIyLjVcIiB5PVwiMS41XCIgd2lkdGg9XCIzNVwiIGhlaWdodD1cIjM1XCIgcng9XCI3LjVcIiBzdHJva2U9XCIjRDBENUREXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0yMi41IDExLjVIMjcuNU0yNy41IDExLjVWMTYuNU0yNy41IDExLjVMMjEuNjY2NyAxNy4zMzMzTTE3LjUgMjYuNUgxMi41TTEyLjUgMjYuNVYyMS41TTEyLjUgMjYuNUwxOC4zMzMzIDIwLjY2NjdcIiBzdHJva2U9XCIjMzQ0MDU0XCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbHRlciBpZD1cImZpbHRlcjBfZF8xNDU1N182MjUxM1wiIHg9XCIwXCIgeT1cIjBcIiB3aWR0aD1cIjQwXCIgaGVpZ2h0PVwiNDBcIiBmaWx0ZXJVbml0cz1cInVzZXJTcGFjZU9uVXNlXCIgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPVwic1JHQlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT1cIjBcIiByZXN1bHQ9XCJCYWNrZ3JvdW5kSW1hZ2VGaXhcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVDb2xvck1hdHJpeCBpbj1cIlNvdXJjZUFscGhhXCIgdHlwZT1cIm1hdHJpeFwiIHZhbHVlcz1cIjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDEyNyAwXCIgcmVzdWx0PVwiaGFyZEFscGhhXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlT2Zmc2V0IGR5PVwiMVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249XCIxXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQ29sb3JNYXRyaXggdHlwZT1cIm1hdHJpeFwiIHZhbHVlcz1cIjAgMCAwIDAgMC4wNjI3NDUxIDAgMCAwIDAgMC4wOTQxMTc2IDAgMCAwIDAgMC4xNTY4NjMgMCAwIDAgMC4wNSAwXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQmxlbmQgbW9kZT1cIm5vcm1hbFwiIGluMj1cIkJhY2tncm91bmRJbWFnZUZpeFwiIHJlc3VsdD1cImVmZmVjdDFfZHJvcFNoYWRvd18xNDU1N182MjUxM1wiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUJsZW5kIG1vZGU9XCJub3JtYWxcIiBpbj1cIlNvdXJjZUdyYXBoaWNcIiBpbjI9XCJlZmZlY3QxX2Ryb3BTaGFkb3dfMTQ1NTdfNjI1MTNcIiByZXN1bHQ9XCJzaGFwZVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZmlsdGVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZC1ub25lXCIgW2lkXT1cIidmaWxldXBsb2FkcmVmXzEnK2kraittXCIgdHlwZT1cImZpbGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJhbnN3ZXJGaWxlXCIgYWNjZXB0PVwiaW1hZ2UvcG5nLCBpbWFnZS9qcGVnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwicXVlc3Rpb24uZ2V0KCdkaXNhYmxlUnVuQUknKT8udmFsdWUgPyAkZXZlbnQucHJldmVudERlZmF1bHQoKSA6IG51bGxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwicXVlc3Rpb24uZ2V0KCdkaXNhYmxlUnVuQUknKT8udmFsdWUgPyAnJyA6IGxvYWRJbWFnZUZyb21EZXZpY2UoaSxyZWZJbWdRSWR4LCRldmVudCwtMSwnbXVsdGlRdWVzdGlvblJlZmVyZW5jZUltYWdlJyxtKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cInJlZkltZ1FJZHg9ajtcIiBbZm9yXT1cIidmaWxldXBsb2FkcmVmXzEnK2kraittXCIgbmdiVG9vbHRpcD1cIlJldXBsb2FkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiNDBcIiBoZWlnaHQ9XCI0MFwiIHZpZXdCb3g9XCIwIDAgNDAgNDBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgZmlsdGVyPVwidXJsKCNmaWx0ZXIwX2RfMTQ1NTdfNjI1MjIpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiMlwiIHk9XCIxXCIgd2lkdGg9XCIzNlwiIGhlaWdodD1cIjM2XCIgcng9XCI4XCIgZmlsbD1cIndoaXRlXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjIuNVwiIHk9XCIxLjVcIiB3aWR0aD1cIjM1XCIgaGVpZ2h0PVwiMzVcIiByeD1cIjcuNVwiIHN0cm9rZT1cIiNEMEQ1RERcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTI3LjUgMjEuNVYyNC44MzMzQzI3LjUgMjUuMjc1NCAyNy4zMjQ0IDI1LjY5OTMgMjcuMDExOCAyNi4wMTE4QzI2LjY5OTMgMjYuMzI0NCAyNi4yNzU0IDI2LjUgMjUuODMzMyAyNi41SDE0LjE2NjdDMTMuNzI0NiAyNi41IDEzLjMwMDcgMjYuMzI0NCAxMi45ODgyIDI2LjAxMThDMTIuNjc1NiAyNS42OTkzIDEyLjUgMjUuMjc1NCAxMi41IDI0LjgzMzNWMjEuNU0yNC4xNjY3IDE1LjY2NjdMMjAgMTEuNU0yMCAxMS41TDE1LjgzMzMgMTUuNjY2N00yMCAxMS41VjIxLjVcIiBzdHJva2U9XCIjMzQ0MDU0XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbHRlciBpZD1cImZpbHRlcjBfZF8xNDU1N182MjUyMlwiIHg9XCIwXCIgeT1cIjBcIiB3aWR0aD1cIjQwXCIgaGVpZ2h0PVwiNDBcIiBmaWx0ZXJVbml0cz1cInVzZXJTcGFjZU9uVXNlXCIgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPVwic1JHQlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT1cIjBcIiByZXN1bHQ9XCJCYWNrZ3JvdW5kSW1hZ2VGaXhcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVDb2xvck1hdHJpeCBpbj1cIlNvdXJjZUFscGhhXCIgdHlwZT1cIm1hdHJpeFwiIHZhbHVlcz1cIjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDEyNyAwXCIgcmVzdWx0PVwiaGFyZEFscGhhXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlT2Zmc2V0IGR5PVwiMVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249XCIxXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQ29sb3JNYXRyaXggdHlwZT1cIm1hdHJpeFwiIHZhbHVlcz1cIjAgMCAwIDAgMC4wNjI3NDUxIDAgMCAwIDAgMC4wOTQxMTc2IDAgMCAwIDAgMC4xNTY4NjMgMCAwIDAgMC4wNSAwXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQmxlbmQgbW9kZT1cIm5vcm1hbFwiIGluMj1cIkJhY2tncm91bmRJbWFnZUZpeFwiIHJlc3VsdD1cImVmZmVjdDFfZHJvcFNoYWRvd18xNDU1N182MjUyMlwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUJsZW5kIG1vZGU9XCJub3JtYWxcIiBpbj1cIlNvdXJjZUdyYXBoaWNcIiBpbjI9XCJlZmZlY3QxX2Ryb3BTaGFkb3dfMTQ1NTdfNjI1MjJcIiByZXN1bHQ9XCJzaGFwZVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZmlsdGVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwicXVlc3Rpb24uZ2V0KCdkaXNhYmxlUnVuQUknKT8udmFsdWUgPyAnJyA6IGNsZWFyUmVmZXJlbmNlSW1hZ2UoaSxqLC0xLG0sJ211bHRpUXVlc3Rpb25SZWZlcmVuY2VJbWFnZScpO1wiIG5nYlRvb2x0aXA9XCJEZWxldGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCI0MFwiIGhlaWdodD1cIjQwXCIgdmlld0JveD1cIjAgMCA0MCA0MFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBmaWx0ZXI9XCJ1cmwoI2ZpbHRlcjBfZF8xNDU1N182MjUxNClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCIyXCIgeT1cIjFcIiB3aWR0aD1cIjM2XCIgaGVpZ2h0PVwiMzZcIiByeD1cIjhcIiBmaWxsPVwid2hpdGVcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiMi41XCIgeT1cIjEuNVwiIHdpZHRoPVwiMzVcIiBoZWlnaHQ9XCIzNVwiIHJ4PVwiNy41XCIgc3Ryb2tlPVwiI0QwRDVERFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTIuNSAxMy45OTc0SDE0LjE2NjdNMTQuMTY2NyAxMy45OTc0SDI3LjVNMTQuMTY2NyAxMy45OTc0VjI1LjY2NDFDMTQuMTY2NyAyNi4xMDYxIDE0LjM0MjMgMjYuNTMgMTQuNjU0OCAyNi44NDI2QzE0Ljk2NzQgMjcuMTU1MSAxNS4zOTEzIDI3LjMzMDcgMTUuODMzMyAyNy4zMzA3SDI0LjE2NjdDMjQuNjA4NyAyNy4zMzA3IDI1LjAzMjYgMjcuMTU1MSAyNS4zNDUyIDI2Ljg0MjZDMjUuNjU3NyAyNi41MyAyNS44MzMzIDI2LjEwNjEgMjUuODMzMyAyNS42NjQxVjEzLjk5NzRIMTQuMTY2N1pNMTYuNjY2NyAxMy45OTc0VjEyLjMzMDdDMTYuNjY2NyAxMS44ODg3IDE2Ljg0MjMgMTEuNDY0OCAxNy4xNTQ4IDExLjE1MjJDMTcuNDY3NCAxMC44Mzk3IDE3Ljg5MTMgMTAuNjY0MSAxOC4zMzMzIDEwLjY2NDFIMjEuNjY2N0MyMi4xMDg3IDEwLjY2NDEgMjIuNTMyNiAxMC44Mzk3IDIyLjg0NTIgMTEuMTUyMkMyMy4xNTc3IDExLjQ2NDggMjMuMzMzMyAxMS44ODg3IDIzLjMzMzMgMTIuMzMwN1YxMy45OTc0TTE4LjMzMzMgMTguMTY0MVYyMy4xNjQxTTIxLjY2NjcgMTguMTY0MVYyMy4xNjQxXCIgc3Ryb2tlPVwiIzM0NDA1NFwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWx0ZXIgaWQ9XCJmaWx0ZXIwX2RfMTQ1NTdfNjI1MTRcIiB4PVwiMFwiIHk9XCIwXCIgd2lkdGg9XCI0MFwiIGhlaWdodD1cIjQwXCIgZmlsdGVyVW5pdHM9XCJ1c2VyU3BhY2VPblVzZVwiIGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycz1cInNSR0JcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUZsb29kIGZsb29kLW9wYWNpdHk9XCIwXCIgcmVzdWx0PVwiQmFja2dyb3VuZEltYWdlRml4XCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQ29sb3JNYXRyaXggaW49XCJTb3VyY2VBbHBoYVwiIHR5cGU9XCJtYXRyaXhcIiB2YWx1ZXM9XCIwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAxMjcgMFwiIHJlc3VsdD1cImhhcmRBbHBoYVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZU9mZnNldCBkeT1cIjFcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVHYXVzc2lhbkJsdXIgc3RkRGV2aWF0aW9uPVwiMVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUNvbG9yTWF0cml4IHR5cGU9XCJtYXRyaXhcIiB2YWx1ZXM9XCIwIDAgMCAwIDAuMDYyNzQ1MSAwIDAgMCAwIDAuMDk0MTE3NiAwIDAgMCAwIDAuMTU2ODYzIDAgMCAwIDAuMDUgMFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUJsZW5kIG1vZGU9XCJub3JtYWxcIiBpbjI9XCJCYWNrZ3JvdW5kSW1hZ2VGaXhcIiByZXN1bHQ9XCJlZmZlY3QxX2Ryb3BTaGFkb3dfMTQ1NTdfNjI1MTRcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVCbGVuZCBtb2RlPVwibm9ybWFsXCIgaW49XCJTb3VyY2VHcmFwaGljXCIgaW4yPVwiZWZmZWN0MV9kcm9wU2hhZG93XzE0NTU3XzYyNTE0XCIgcmVzdWx0PVwic2hhcGVcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2ZpbHRlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJyZWZfZGVsX2ljb25cIiAoY2xpY2spPVwiY2xlYXJSZWZlcmVuY2VJbWFnZShpLGopO1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0yLjUgNS4wMDEzSDQuMTY2NjdNNC4xNjY2NyA1LjAwMTNIMTcuNU00LjE2NjY3IDUuMDAxM1YxNi42NjhDNC4xNjY2NyAxNy4xMSA0LjM0MjI2IDE3LjUzMzkgNC42NTQ4MiAxNy44NDY1QzQuOTY3MzggMTguMTU5IDUuMzkxMzEgMTguMzM0NiA1LjgzMzMzIDE4LjMzNDZIMTQuMTY2N0MxNC42MDg3IDE4LjMzNDYgMTUuMDMyNiAxOC4xNTkgMTUuMzQ1MiAxNy44NDY1QzE1LjY1NzcgMTcuNTMzOSAxNS44MzMzIDE3LjExIDE1LjgzMzMgMTYuNjY4VjUuMDAxM0g0LjE2NjY3Wk02LjY2NjY3IDUuMDAxM1YzLjMzNDY0QzYuNjY2NjcgMi44OTI2MSA2Ljg0MjI2IDIuNDY4NjggNy4xNTQ4MiAyLjE1NjEyQzcuNDY3MzggMS44NDM1NiA3Ljg5MTMxIDEuNjY3OTcgOC4zMzMzMyAxLjY2Nzk3SDExLjY2NjdDMTIuMTA4NyAxLjY2Nzk3IDEyLjUzMjYgMS44NDM1NiAxMi44NDUyIDIuMTU2MTJDMTMuMTU3NyAyLjQ2ODY4IDEzLjMzMzMgMi44OTI2MSAxMy4zMzMzIDMuMzM0NjRWNS4wMDEzTTguMzMzMzMgOS4xNjc5N1YxNC4xNjhNMTEuNjY2NyA5LjE2Nzk3VjE0LjE2OFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjQjQyMzE4XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IG1iLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxkaXYgKm5nSWY9XCJnZXRBbnN3ZXJGb3JtR3JvdXBfRm9ybUNvbnRyb2woaSxqLCdtdWx0aVF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UnKT8udmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNvbC1sZy0zIGJ0biBidG4tbGlnaHQtcHJpbWFyeSBtdC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImQtbm9uZVwiIFtpZF09XCInZmlsZXVwbG9hZF8nK2kralwiIHR5cGU9XCJmaWxlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJhbnN3ZXJGaWxlXCIgYWNjZXB0PVwiaW1hZ2UvcG5nLCBpbWFnZS9qcGVnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwibG9hZEltYWdlRnJvbURldmljZShpLHJlZkltZ1FJZHgsJGV2ZW50LC0xLCdtdWx0aVF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UnKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgW2Zvcl09XCInZmlsZXVwbG9hZF8nK2kralwiIChjbGljayk9XCJyZWZJbWdRSWR4PWo7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBjbGFzcz1cIm14LTJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMjFcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjEgMjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgY2xpcC1wYXRoPVwidXJsKCNjbGlwMF80MDgyXzMxMjIpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTE5LjY2NjcgMy4zMzUyN1Y4LjMzNTI3TTE5LjY2NjcgOC4zMzUyN0gxNC42NjY3TTE5LjY2NjcgOC4zMzUyN0wxNS44IDQuNzAxOTNDMTQuOTA0NCAzLjgwNTg2IDEzLjc5NjQgMy4xNTEyNyAxMi41NzkzIDIuNzk5MjVDMTEuMzYyMyAyLjQ0NzIyIDEwLjA3NTkgMi40MDkyMyA4Ljg0MDI1IDIuNjg4ODJDNy42MDQ1NiAyLjk2ODQxIDYuNDU5ODQgMy41NTY0NiA1LjUxMjkgNC4zOTgxMkM0LjU2NTk1IDUuMjM5NzcgMy44NDc2NSA2LjMwNzU5IDMuNDI1MDEgNy41MDE5M00xLjMzMzM0IDE2LjY2ODZWMTEuNjY4Nk0xLjMzMzM0IDExLjY2ODZINi4zMzMzNE0xLjMzMzM0IDExLjY2ODZMNS4yMDAwMSAxNS4zMDE5QzYuMDk1NjMgMTYuMTk4IDcuMjAzNjUgMTYuODUyNiA4LjQyMDY4IDE3LjIwNDZDOS42Mzc3MSAxNy41NTY3IDEwLjkyNDEgMTcuNTk0NiAxMi4xNTk4IDE3LjMxNTFDMTMuMzk1NSAxNy4wMzU1IDE0LjU0MDIgMTYuNDQ3NCAxNS40ODcxIDE1LjYwNThDMTYuNDM0MSAxNC43NjQxIDE3LjE1MjQgMTMuNjk2MyAxNy41NzUgMTIuNTAxOVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMDA5QkYzXCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cImNsaXAwXzQwODJfMzEyMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgZmlsbD1cIndoaXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm09XCJ0cmFuc2xhdGUoMC41KVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY2xpcFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+UmV1cGxvYWQgSW1hZ2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInF1ZXN0aW9uLmdldCgnbXVsdGlRdWVzdGlvblJlZmVyZW5jZUltYWdlJyk/LnZhbHVlLmxlbmd0aCA8NSAmJiAhcXVlc3Rpb24uZ2V0KCdkaXNhYmxlUnVuQUknKT8udmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNvbC1sZy0zIGJ0biBhZGQtcmVmLWJ0biBidG4tbGlnaHQtcHJpbWFyeSBteS0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImQtbm9uZVwiIFtpZF09XCInZmlsZXVwbG9hZFFuUmVmMV8yJytpK2pcIiB0eXBlPVwiZmlsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiZmlsZVwiIGFjY2VwdD1cImltYWdlL3BuZywgaW1hZ2UvanBlZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cImxvYWRJbWFnZUZyb21EZXZpY2UoaSxyZWZJbWdRSWR4LCRldmVudCwtMSwnbXVsdGlRdWVzdGlvblJlZmVyZW5jZUltYWdlJylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwicG9pbnRlclwiIFtmb3JdPVwiJ2ZpbGV1cGxvYWRRblJlZjFfMicraStqXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJyZWZJbWdRSWR4PWo7XCI+IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTAgNC4xNjc5N1YxNS44MzQ2TTQuMTY2NjkgMTAuMDAxM0gxNS44MzM0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzAwOUJGM1wiIHN0cm9rZS13aWR0aD1cIjEuNjdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+QWRkIFJlZmVyZW5jZSBJbWFnZSBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwicXVlc3Rpb24uZ2V0KCdtdWx0aVF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UnKT8udmFsdWUubGVuZ3RoID49IDUgfHwgcXVlc3Rpb24uZ2V0KCdkaXNhYmxlUnVuQUknKT8udmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNvbC1sZy0zIGJ0bi1saWdodC1kaXNiYWxlZCBidG4gYWRkLXJlZi1idG4gbXktMiBib3JkZXJDYXJkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInBvaW50ZXJcIj4gXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTEwLjAwMTMgNC4xNjQwNlYxNS44MzA3TTQuMTY3OTcgOS45OTc0SDE1LjgzNDZcIiBzdHJva2U9XCIjNkJDQUZGXCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPiA8c3Bhbj5BZGQgUmVmZXJlbmNlIEltYWdlPC9zcGFuPiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrbGlzdC1jYXJkIHBiLTVcIiBbbmdDbGFzc109XCJbJ2ltYWdlJywnbXVsdGlwbGVjaG9pY2VzaW5nbGUnLCd5ZXMvbm8nLCdkYXRlJywnbGluZWFyc2NhbGUnXS5pbmNsdWRlcyhxdWVzdGlvbi5nZXQoJ2Fuc3dlclR5cGUnKT8udmFsdWUpID8gJ2NvbC1tZC04JyA6J2NvbC1tZC0xMidcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VsZWN0IGNsYXNzPVwibXQtNVwiIG5hbWU9XCJzZWxlY3RvcHRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cImFuc3dlclR5cGVTZWxlY3Rpb24oaSxqLCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJhbnN3ZXJUeXBlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gbmFtZT1cImRlc2NyaXB0aXZlXCIgdmFsdWU9XCJkZXNjcmlwdGl2ZVwiPkRlc2NyaXB0aXZlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBbnN3ZXI8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiBuYW1lPVwieWVzL25vXCIgdmFsdWU9XCJ5ZXMvbm9cIj5BL0IgUXVlc3Rpb248L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiBuYW1lPVwibXVsdGlwbGVjaG9pY2VzaW5nbGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9XCJtdWx0aXBsZWNob2ljZXNpbmdsZVwiPk11bHRpcGxlIENob2ljZSBRdWVzdGlvbiAtXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTaW5nbGUgQW5zd2VyPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gbmFtZT1cIm11bHRpcGxlY2hvaWNlbXVsdGlwbGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9XCJtdWx0aXBsZWNob2ljZW11bHRpcGxlXCI+TXVsdGlwbGUgQ2hvaWNlIFF1ZXN0aW9uIC1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE11bHRpcGxlIEFuc3dlcjwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIG5hbWU9XCJkZXNjcmlwdGl2ZUltYWdlXCIgdmFsdWU9XCJkZXNjcmlwdGl2ZUltYWdlXCI+Q2FwdHVyZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW1hZ2Ugd2l0aCBEZXNjcmlwdGlvbjwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIG5hbWU9XCJpbWFnZVwiIHZhbHVlPVwiaW1hZ2VcIj5DYXB0dXJlIEltYWdlIGFzIGFuc3dlclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiBuYW1lPVwidmlkZW9cIiB2YWx1ZT1cInZpZGVvXCI+Q2FwdHVyZSB2aWRlbyBhcyBhbnN3ZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gbmFtZT1cIm11bHRpcGxlSW1hZ2VcIiB2YWx1ZT1cIm11bHRpcGxlSW1hZ2VcIj5DYXB0dXJlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNdWx0aXBsZSBJbWFnZTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIG5hbWU9XCJkYXRlXCIgdmFsdWU9XCJkYXRlXCI+RGF0ZSAtIEREL01NL1lZWVk8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiBuYW1lPVwibGluZWFyc2NhbGVcIiB2YWx1ZT1cImxpbmVhcnNjYWxlXCI+TGluZWFyIFNjYWxlPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gbmFtZT1cInRpbWVcIiB2YWx1ZT1cInRpbWVcIj5UaW1lPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gbmFtZT1cImltYWdlVmlkZW9cIiB2YWx1ZT1cImltYWdlL3ZpZGVvXCI+Q2FwdHVyZSBJbWFnZS9WaWRlbyBhcyBBbnN3ZXI8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiBuYW1lPVwiZHJvcGRvd25cIiB2YWx1ZT1cImRyb3Bkb3duXCI+RHJvcGRvd24gYXMgYW4gYW5zd2VyPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNFwiICpuZ0lmPVwiWydpbWFnZScsJ211bHRpcGxlY2hvaWNlc2luZ2xlJywneWVzL25vJywnZGF0ZScsJ2xpbmVhcnNjYWxlJ10uaW5jbHVkZXMocXVlc3Rpb24uZ2V0KCdhbnN3ZXJUeXBlJyk/LnZhbHVlKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tc3dpdGNoIHRleHQtbGVmdCBhbGlnbi1pdGVtcy1jZW50ZXIgYnRuLXNlYyBtdC0xMFwiID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBteC0wIHBvaW50ZXJcIiB0eXBlPVwiY2hlY2tib3hcIiBuYW1lPVwidG9jXCIgdmFsdWU9XCIxXCIgbmdEZWZhdWx0Q29udHJvbCBmb3JtQ29udHJvbE5hbWU9XCJjb21wbGlhbmNlXCIgKGNoYW5nZSk9XCJnZXRDb21wbGlhbmNlVG9hc3QoaSxqLCRldmVudClcIiBbYXR0ci5kaXNhYmxlZF09XCJoYXNWYWxpZGF0aW9uRW5hYmxlZChpLGopID8gdHJ1ZSA6IG51bGxcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCBwb2ludGVyIGZzLTE2cHhcIiBmb3I9XCJmbGV4U3dpdGNoQ2hlY2tEZWZhdWx0XCI+Q29uZmlndXJlIENvbXBsaWFuY2UgU2NvcmU8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0zIG14LTQgZC1mbGV4IG10LTNcIiAqbmdJZj1cIlsnZGVzY3JpcHRpdmUnXS5pbmNsdWRlcyhxdWVzdGlvbi5nZXQoJ2Fuc3dlclR5cGUnKT8udmFsdWUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVja1wiID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwiZGVzY3JpcHRpdmV0eXBlXCIgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IGN1cnNvci1wb2ludGVyXCIgdHlwZT1cInJhZGlvXCIgdmFsdWU9XCJ0ZXh0XCIgW25hbWVdPVwiJ2Rlc2NyaXB0aXZldHlwZSdcIiBbaWRdPVwiJ2lubGluZVJhZGlvMCcrIGkgKyBqXCIgIFthdHRyLmRpc2FibGVkXT1cInF1ZXN0aW9uLmdldCgnZGlzYWJsZVJ1bkFJJyk/LnZhbHVlID8gdHJ1ZSA6IG51bGxcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJjdXJzb3ItcG9pbnRlciBkc2NyaXB0aXZlVHlwZVwiIFtmb3JdPVwiJ2lubGluZVJhZGlvMCcrIGkgKyBqXCI+VGV4dDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIG1zLTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwiZGVzY3JpcHRpdmV0eXBlXCIgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IGN1cnNvci1wb2ludGVyXCIgdHlwZT1cInJhZGlvXCIgdmFsdWU9XCJudW1iZXJcIiBbbmFtZV09XCInZGVzY3JpcHRpdmV0eXBlJ1wiIFtpZF09XCInaW5saW5lUmFkaW8xJysgaSArIGpcIiBbYXR0ci5kaXNhYmxlZF09XCJxdWVzdGlvbi5nZXQoJ2Rpc2FibGVSdW5BSScpPy52YWx1ZSA/IHRydWUgOiBudWxsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXIgZHNjcmlwdGl2ZVR5cGVcIiAgW2Zvcl09XCInaW5saW5lUmFkaW8xJytpICsgalwiPk51bWJlcjwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiWyd5ZXMvbm8nLCdtdWx0aXBsZWNob2ljZXNpbmdsZScsJ211bHRpcGxlY2hvaWNlbXVsdGlwbGUnLCdkcm9wZG93biddLmluY2x1ZGVzKHF1ZXN0aW9uLmdldCgnYW5zd2VyVHlwZScpPy52YWx1ZSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZnMtMThweCBmdy1ib2xkZXJcIiBzdHlsZT1cImN1cnNvcjogZGVmYXVsdDtcIj5BbnN3ZXIgT3B0aW9uczwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tc3dpdGNoIHRleHQtbGVmdCBhbGlnbi1pdGVtcy1jZW50ZXIgYnRuLXNlYyBtdC0yXCIgKm5nSWY9XCJxdWVzdGlvbi5nZXQoJ2Fuc3dlclR5cGUnKT8udmFsdWUgPT0gJ2Ryb3Bkb3duJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IG14LTAgcG9pbnRlclwiIHR5cGU9XCJjaGVja2JveFwiIG5hbWU9XCJ0b2NcIiB2YWx1ZT1cIjFcIiBuZ0RlZmF1bHRDb250cm9sIGZvcm1Db250cm9sTmFtZT1cImFsbG93TXVsdGlwbGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCBwb2ludGVyIGZzLTE2cHhcIiBmb3I9XCJmbGV4U3dpdGNoQ2hlY2tEZWZhdWx0XCI+QWxsb3cgTXVsdGlwbGUgUmVzcG9uc2U8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBmb3JtQXJyYXlOYW1lPVwiYW5zd2Vyc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGFuc3dlciBvZiBnZXRGb3JtQXJyYXlRdWVzdGlvbnNBbnN3ZXIoaSxqLCdhbnN3ZXJzJyk/LmNvbnRyb2xzO2xldCBrID0gaW5kZXg7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIiBbZm9ybUdyb3VwTmFtZV09XCJrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWFuc3dlci5nZXQoJ2lzZGVsZXRlZCcpPy52YWx1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJBbnN3ZXIxXCIgW25nQ2xhc3NdPVwicXVlc3Rpb24uZ2V0KCdjb21wbGlhbmNlJyk/LnZhbHVlID8gJ2NvbC1sZy00JyA6ICdjb2wtbGctNidcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrbGlzdC1jYXJkIHBiLTAgbXQtNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJtdC0wXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIkVudGVyIGFuc3dlciBoZXJlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJhbnN3ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmxcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJxdWVzdGlvbi5nZXQoJ2Fuc3dlclR5cGUnKT8udmFsdWUgPT09ICd5ZXMvbm8nIHx8IHF1ZXN0aW9uLmdldCgnYW5zd2VyVHlwZScpPy52YWx1ZSA9PT0gJ211bHRpcGxlY2hvaWNlc2luZ2xlJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmdEZWZhdWx0Q29udHJvbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZsMlwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPVwiaW1nQWRkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJxdWVzdGlvbi5nZXQoJ2Rpc2FibGVSdW5BSScpPy52YWx1ZSA/JycgOnVwZGF0ZUxpbmtlZChpLGosaylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNOS45OTk5OSA0LjE2NjAyVjE1LjgzMjdNNC4xNjY2NiA5Ljk5OTM1SDE1LjgzMzNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzM0NDA1NFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIxLjY3XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJhbnN3ZXIuZ2V0KCdhbnN3ZXInKT8uaW52YWxpZCAmJiBhbnN3ZXIuZ2V0KCdhbnN3ZXInKT8udG91Y2hlZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIHN0eWxlPVwiY29sb3I6IHJlZDtcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImFuc3dlci5nZXQoJ2Fuc3dlcicpPy5oYXNFcnJvcigncmVxdWlyZWQnKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIEFuc3dlciBpcyByZXF1aXJlZC48L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIHN0eWxlPVwiY29sb3I6IHJlZDtcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiYW5zd2VyLmdldCgnc2hvd1NPUEZsYWdFcnJvcicpPy52YWx1ZSA9PT0gdHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEV2ZXJ5IGFuc3dlciBjYW7igJl0IGJlIGEgZmxhZy48L3A+XHJcbiAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgZm9ybUNvbnRyb2xOYW1lPVwic29wRmxhZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmdEZWZhdWx0Q29udHJvbD5cclxuICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgKGNsaWNrKT1cInF1ZXN0aW9uLmdldCgnZGlzYWJsZVJ1bkFJJyk/LnZhbHVlID8nJyA6IHJhaXNlZmxhZyhpLGosayx0cnVlKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdFRvb2x0aXA9XCJSYWlzZSBhIGZsYWcgaWYgdGhpcyBhbnN3ZXIgaXMgc2VsZWN0ZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRUb29sdGlwUG9zaXRpb249XCJhYm92ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdFRvb2x0aXBDbGFzcz1cImN1c3RvbS10ZXN0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJhbnN3ZXIuZ2V0KCdzb3BGbGFnJyk/LnZhbHVlID09PSBmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwia2l3aVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDE2IDE2XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTIuNjY2NjkgMTAuMDAwN0MyLjY2NjY5IDEwLjAwMDcgMy4zMzMzNSA5LjMzMzk4IDUuMzMzMzUgOS4zMzM5OEM3LjMzMzM1IDkuMzMzOTggOC42NjY2OSAxMC42NjczIDEwLjY2NjcgMTAuNjY3M0MxMi42NjY3IDEwLjY2NzMgMTMuMzMzNCAxMC4wMDA3IDEzLjMzMzQgMTAuMDAwN1YyLjAwMDY1QzEzLjMzMzQgMi4wMDA2NSAxMi42NjY3IDIuNjY3MzIgMTAuNjY2NyAyLjY2NzMyQzguNjY2NjkgMi42NjczMiA3LjMzMzM1IDEuMzMzOTggNS4zMzMzNSAxLjMzMzk4QzMuMzMzMzUgMS4zMzM5OCAyLjY2NjY5IDIuMDAwNjUgMi42NjY2OSAyLjAwMDY1VjEwLjAwMDdaTTIuNjY2NjkgMTAuMDAwN1YxNC42NjczXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiNEMEQ1RERcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgKGNsaWNrKT1cInF1ZXN0aW9uLmdldCgnZGlzYWJsZVJ1bkFJJyk/LnZhbHVlID8nJyA6IHJhaXNlZmxhZyhpLGosayxmYWxzZSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRUb29sdGlwPVwiUmFpc2UgYSBmbGFnIGlmIHRoaXMgYW5zd2VyIGlzIHNlbGVjdGVkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0VG9vbHRpcFBvc2l0aW9uPVwiYWJvdmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRUb29sdGlwQ2xhc3M9XCJjdXN0b20tdGVzdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiYW5zd2VyLmdldCgnc29wRmxhZycpPy52YWx1ZSA9PT0gdHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYWN0aXZlLWZsYWdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAxNiAxNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0yLjY2NjY5IDEwLjAwMDdDMi42NjY2OSAxMC4wMDA3IDMuMzMzMzUgOS4zMzM5OCA1LjMzMzM1IDkuMzMzOThDNy4zMzMzNSA5LjMzMzk4IDguNjY2NjkgMTAuNjY3MyAxMC42NjY3IDEwLjY2NzNDMTIuNjY2NyAxMC42NjczIDEzLjMzMzQgMTAuMDAwNyAxMy4zMzM0IDEwLjAwMDdWMi4wMDA2NUMxMy4zMzM0IDIuMDAwNjUgMTIuNjY2NyAyLjY2NzMyIDEwLjY2NjcgMi42NjczMkM4LjY2NjY5IDIuNjY3MzIgNy4zMzMzNSAxLjMzMzk4IDUuMzMzMzUgMS4zMzM5OEMzLjMzMzM1IDEuMzMzOTggMi42NjY2OSAyLjAwMDY1IDIuNjY2NjkgMi4wMDA2NVYxMC4wMDA3Wk0yLjY2NjY5IDEwLjAwMDdWMTQuNjY3M1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjRDBENUREXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBbbmdDbGFzc109XCJxdWVzdGlvbi5nZXQoJ2NvbXBsaWFuY2UnKT8udmFsdWUgPyAnY29sLWxnLTUnIDogJ2NvbC1sZy02J1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiIWFuc3dlci5nZXQoJ3Nob3dMaW5rZWQnKT8udmFsdWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbnN3ZXJ2YWxpZGF0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwibXQtN1wiIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwid2lkdGg6MTZweDtoZWlnaHQ6MTZweDtjdXJzb3I6IHBvaW50ZXI7XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9XCIxXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJnZXR2YWxpZGF0aW9uKGksaixrLCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJ2YWxpZGF0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoYWNrYm94IHB0LTQgbXQtMiBteC0yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJjdXJzb3I6IGRlZmF1bHQ7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMz5WYWxpZGF0ZSByZXNwb25zZTwvaDM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwibWItMFwiPlRyaWdnZXIgYW4gYWN0aW9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgZWFjaCByZXNwb25zZSB0byB2YWxpZGF0ZSBpdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgKm5nSWY9XCJxdWVzdGlvbi5nZXQoJ2Fuc3dlclR5cGUnKT8udmFsdWUgIT09ICd5ZXMvbm8nICYmIGdldEZvcm1BcnJheVF1ZXN0aW9uc0Fuc3dlcihpLGosJ2Fuc3dlcnMnKS52YWx1ZS5sZW5ndGggPiAyICYmICFxdWVzdGlvbi5nZXQoJ2NvbXBsaWFuY2UnKT8udmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJxdWVzdGlvbi5nZXQoJ2Rpc2FibGVSdW5BSScpPy52YWx1ZSA/JycgOmRlbGV0ZUFuc3dlcihpLGosaylcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibXQtOFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0VG9vbHRpcD1cIkRlbGV0ZSBhbnN3ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdFRvb2x0aXBQb3NpdGlvbj1cImFib3ZlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRUb29sdGlwQ2xhc3M9XCJjdXN0b20tdGVzdFwiIHdpZHRoPVwiMjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTE1IDVMNSAxNU01IDVMMTUgMTVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS42NjY2N1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTNcIiAqbmdJZj1cInF1ZXN0aW9uLmdldCgnY29tcGxpYW5jZScpPy52YWx1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VsZWN0IGNsYXNzPVwidy0xNTBweCBtdC03XCIgZm9ybUNvbnRyb2xOYW1lPVwiY29tcGxpYW5jZVNjb3JlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCB2YWx1ZSBvZiBkcm9wZG93blZhbHVlXCIgW3ZhbHVlXT1cInZhbHVlXCI+e3t2YWx1ZX19PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPVwibXMtM1wiICpuZ0lmPVwicXVlc3Rpb24uZ2V0KCdhbnN3ZXJUeXBlJyk/LnZhbHVlICE9PSAneWVzL25vJyAmJiBnZXRGb3JtQXJyYXlRdWVzdGlvbnNBbnN3ZXIoaSxqLCdhbnN3ZXJzJykudmFsdWUubGVuZ3RoID4gMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwicXVlc3Rpb24uZ2V0KCdkaXNhYmxlUnVuQUknKT8udmFsdWUgPycnIDpkZWxldGVBbnN3ZXIoaSxqLGspXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0VG9vbHRpcD1cIkRlbGV0ZSBhbnN3ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0VG9vbHRpcFBvc2l0aW9uPVwiYWJvdmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0VG9vbHRpcENsYXNzPVwiY3VzdG9tLXRlc3RcIiB3aWR0aD1cIjIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xNSA1TDUgMTVNNSA1TDE1IDE1XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIxLjY2NjY3XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gKm5nSWY9XCJtb3JlcW4udmFsaWRhdGlvblwiIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJhbnN3ZXIuZ2V0KCd2YWxpZGF0aW9uJyk/LnZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0zIHB0LTcgZnMtNCBmdy00MDAgbXQtMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgdGhlIHJlc3BvbnNlIGlzIHRoaXMsIHRoZW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBjbGFzcz1cIm10LTUgbXgtMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwidmFsaWRhdGlvblR5cGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwidXBkYXRlVmFsaWRhdGlvblR5cGUoJGV2ZW50LGksaixrKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24+RGVzY3JpcHRpdmUgQW5zd2VyPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbj5DYXB0dXJlIEltYWdlPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbj5DYXB0dXJlIFZpZGVvPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMyBteC00IGQtZmxleCBwdC04XCIgKm5nSWY9XCJhbnN3ZXIuZ2V0KCd2YWxpZGF0aW9uVHlwZScpPy52YWx1ZSA9PT0gJ0Rlc2NyaXB0aXZlIEFuc3dlcidcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGZvcm1Db250cm9sTmFtZT1cImRlc2NyaXB0aXZldHlwZVwiIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBjdXJzb3ItcG9pbnRlclwiIHR5cGU9XCJyYWRpb1wiIFtpZF09XCInaW5saW5lUmFkaW8yJyArIGkgKyBqICsga1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPVwidGV4dFwiIFtuYW1lXT1cIidkZXNjcmlwdGl2ZXR5cGUnXCIgW2F0dHIuZGlzYWJsZWRdPVwicXVlc3Rpb24uZ2V0KCdkaXNhYmxlUnVuQUknKT8udmFsdWUgPyB0cnVlIDogbnVsbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImN1cnNvci1wb2ludGVyIGRzY3JpcHRpdmVUeXBlXCIgW2Zvcl09XCInaW5saW5lUmFkaW8yJyArIGkgKyBqICsga1wiPlRleHQ8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBtcy01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGZvcm1Db250cm9sTmFtZT1cImRlc2NyaXB0aXZldHlwZVwiIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBjdXJzb3ItcG9pbnRlclwiIHR5cGU9XCJyYWRpb1wiIFtpZF09XCInaW5saW5lUmFkaW8zJysgaSArIGogKyBrXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9XCJudW1iZXJcIiBbbmFtZV09XCInZGVzY3JpcHRpdmV0eXBlJ1wiIFthdHRyLmRpc2FibGVkXT1cInF1ZXN0aW9uLmdldCgnZGlzYWJsZVJ1bkFJJyk/LnZhbHVlID8gdHJ1ZSA6IG51bGxcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJjdXJzb3ItcG9pbnRlciBkc2NyaXB0aXZlVHlwZVwiIFtmb3JdPVwiJ2lubGluZVJhZGlvMycgKyBpICsgaiArIGtcIj5OdW1iZXI8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImFuc3dlci5nZXQoJ3Nob3dMaW5rZWQnKT8udmFsdWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0zIHB0LTcgZnMtNCBmdy00MDAgbXQtMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlua2VkIFF1ZXN0aW9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzZWxlY3QgW2lkXT1cImkrJy0nK2tcIiBbbmFtZV09XCJpKyctJytrXCIgY2xhc3M9XCJtdC01XCIgKGNoYW5nZSk9XCJ1cGRhdGVRdWVzdGlvblR5cGUoaSxqLGssJGV2ZW50KVwiIFtkaXNhYmxlZF09XCJxdWVzdGlvbi5nZXQoJ2Rpc2FibGVSdW5BSScpPy52YWx1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJcIj5TZWxlY3QgUXVlc3Rpb248L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgZ2V0UXVlc3Rpb25MaXN0KGksaixrKVwiIFt2YWx1ZV09XCJvcHRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2VsZWN0ZWRdPVwic2VsZWN0T3B0aW9uKG9wdGlvbixhbnN3ZXIuZ2V0KCdsaW5rZWRRdWVzdGlvbicpPy52YWx1ZSlcIj5RdWVzdGlvbiB7e29wdGlvbn19PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiYW5zd2VyLmdldCgndmFsaWRhdGlvbicpPy52YWx1ZSAmJiBhbnN3ZXIuZ2V0KCd2YWxpZGF0aW9uVHlwZScpPy52YWx1ZSA9PT0gJ0NhcHR1cmUgSW1hZ2UnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGltYWdlIG9mIGdldEFuc3dlckZvcm1Hcm91cF9Gb3JtQ29udHJvbChpLGosJ211bHRpUmVmZXJlbmNlSW1hZ2UnLGspPy52YWx1ZTtsZXQgbj1pbmRleFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNvbC1tZC00IGltYWdlLWNvbnRhaW5lciByZWZfaW1nX2NvbnQgbWItNCBtdC01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cInt7ZW52aXJvbm1lbnQuVHJheEFuc3dlckNETn19e3tpbWFnZS5pbWFnZVVSTH19XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjkwJVwiIGhlaWdodD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImF1dG8tYWRqdSAgICBzdFwiIGFsdD1cIlRhbmdvIEV5ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm92ZXJsYXktaWNvbnNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJxdWVzdGlvbi5nZXQoJ2Rpc2FibGVSdW5BSScpPy52YWx1ZSA/JycgOm9uUG9wdXAoaW1hZ2UuaW1hZ2VVUkwpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjQwXCIgaGVpZ2h0PVwiNDBcIiB2aWV3Qm94PVwiMCAwIDQwIDQwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBmaWx0ZXI9XCJ1cmwoI2ZpbHRlcjBfZF8xNDU1N182MjUxMylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiMlwiIHk9XCIxXCIgd2lkdGg9XCIzNlwiIGhlaWdodD1cIjM2XCIgcng9XCI4XCIgZmlsbD1cIndoaXRlXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCIyLjVcIiB5PVwiMS41XCIgd2lkdGg9XCIzNVwiIGhlaWdodD1cIjM1XCIgcng9XCI3LjVcIiBzdHJva2U9XCIjRDBENUREXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMjIuNSAxMS41SDI3LjVNMjcuNSAxMS41VjE2LjVNMjcuNSAxMS41TDIxLjY2NjcgMTcuMzMzM00xNy41IDI2LjVIMTIuNU0xMi41IDI2LjVWMjEuNU0xMi41IDI2LjVMMTguMzMzMyAyMC42NjY3XCIgc3Ryb2tlPVwiIzM0NDA1NFwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWx0ZXIgaWQ9XCJmaWx0ZXIwX2RfMTQ1NTdfNjI1MTNcIiB4PVwiMFwiIHk9XCIwXCIgd2lkdGg9XCI0MFwiIGhlaWdodD1cIjQwXCIgZmlsdGVyVW5pdHM9XCJ1c2VyU3BhY2VPblVzZVwiIGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycz1cInNSR0JcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVGbG9vZCBmbG9vZC1vcGFjaXR5PVwiMFwiIHJlc3VsdD1cIkJhY2tncm91bmRJbWFnZUZpeFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVDb2xvck1hdHJpeCBpbj1cIlNvdXJjZUFscGhhXCIgdHlwZT1cIm1hdHJpeFwiIHZhbHVlcz1cIjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDEyNyAwXCIgcmVzdWx0PVwiaGFyZEFscGhhXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZU9mZnNldCBkeT1cIjFcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlR2F1c3NpYW5CbHVyIHN0ZERldmlhdGlvbj1cIjFcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQ29sb3JNYXRyaXggdHlwZT1cIm1hdHJpeFwiIHZhbHVlcz1cIjAgMCAwIDAgMC4wNjI3NDUxIDAgMCAwIDAgMC4wOTQxMTc2IDAgMCAwIDAgMC4xNTY4NjMgMCAwIDAgMC4wNSAwXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUJsZW5kIG1vZGU9XCJub3JtYWxcIiBpbjI9XCJCYWNrZ3JvdW5kSW1hZ2VGaXhcIiByZXN1bHQ9XCJlZmZlY3QxX2Ryb3BTaGFkb3dfMTQ1NTdfNjI1MTNcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQmxlbmQgbW9kZT1cIm5vcm1hbFwiIGluPVwiU291cmNlR3JhcGhpY1wiIGluMj1cImVmZmVjdDFfZHJvcFNoYWRvd18xNDU1N182MjUxM1wiIHJlc3VsdD1cInNoYXBlXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZmlsdGVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImQtbm9uZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpZF09XCInZmlsZXVwbG9hZF92YWxpZHJlZicraStqK2srblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJmaWxlXCIgbmFtZT1cImFuc3dlckZpbGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY2NlcHQ9XCJpbWFnZS9wbmcsIGltYWdlL2pwZWdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwicXVlc3Rpb24uZ2V0KCdkaXNhYmxlUnVuQUknKT8udmFsdWUgPyAkZXZlbnQucHJldmVudERlZmF1bHQoKSA6IG51bGxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cInF1ZXN0aW9uLmdldCgnZGlzYWJsZVJ1bkFJJyk/LnZhbHVlID8gJycgOiBsb2FkSW1hZ2VGcm9tRGV2aWNlKGkscmVmSW1nUUlkeCwkZXZlbnQsaywnbXVsdGlSZWZlcmVuY2VJbWFnZScsbilcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBbZm9yXT1cIidmaWxldXBsb2FkX3ZhbGlkcmVmJytpK2oraytuXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInJlZkltZ1FJZHg9ajtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjQwXCIgaGVpZ2h0PVwiNDBcIiB2aWV3Qm94PVwiMCAwIDQwIDQwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgZmlsdGVyPVwidXJsKCNmaWx0ZXIwX2RfMTQ1NTdfNjI1MjIpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCIyXCIgeT1cIjFcIiB3aWR0aD1cIjM2XCIgaGVpZ2h0PVwiMzZcIiByeD1cIjhcIiBmaWxsPVwid2hpdGVcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCIyLjVcIiB5PVwiMS41XCIgd2lkdGg9XCIzNVwiIGhlaWdodD1cIjM1XCIgcng9XCI3LjVcIiBzdHJva2U9XCIjRDBENUREXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTI3LjUgMjEuNVYyNC44MzMzQzI3LjUgMjUuMjc1NCAyNy4zMjQ0IDI1LjY5OTMgMjcuMDExOCAyNi4wMTE4QzI2LjY5OTMgMjYuMzI0NCAyNi4yNzU0IDI2LjUgMjUuODMzMyAyNi41SDE0LjE2NjdDMTMuNzI0NiAyNi41IDEzLjMwMDcgMjYuMzI0NCAxMi45ODgyIDI2LjAxMThDMTIuNjc1NiAyNS42OTkzIDEyLjUgMjUuMjc1NCAxMi41IDI0LjgzMzNWMjEuNU0yNC4xNjY3IDE1LjY2NjdMMjAgMTEuNU0yMCAxMS41TDE1LjgzMzMgMTUuNjY2N00yMCAxMS41VjIxLjVcIiBzdHJva2U9XCIjMzQ0MDU0XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbHRlciBpZD1cImZpbHRlcjBfZF8xNDU1N182MjUyMlwiIHg9XCIwXCIgeT1cIjBcIiB3aWR0aD1cIjQwXCIgaGVpZ2h0PVwiNDBcIiBmaWx0ZXJVbml0cz1cInVzZXJTcGFjZU9uVXNlXCIgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPVwic1JHQlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVGbG9vZCBmbG9vZC1vcGFjaXR5PVwiMFwiIHJlc3VsdD1cIkJhY2tncm91bmRJbWFnZUZpeFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQ29sb3JNYXRyaXggaW49XCJTb3VyY2VBbHBoYVwiIHR5cGU9XCJtYXRyaXhcIiB2YWx1ZXM9XCIwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAxMjcgMFwiIHJlc3VsdD1cImhhcmRBbHBoYVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlT2Zmc2V0IGR5PVwiMVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlR2F1c3NpYW5CbHVyIHN0ZERldmlhdGlvbj1cIjFcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUNvbG9yTWF0cml4IHR5cGU9XCJtYXRyaXhcIiB2YWx1ZXM9XCIwIDAgMCAwIDAuMDYyNzQ1MSAwIDAgMCAwIDAuMDk0MTE3NiAwIDAgMCAwIDAuMTU2ODYzIDAgMCAwIDAuMDUgMFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQmxlbmQgbW9kZT1cIm5vcm1hbFwiIGluMj1cIkJhY2tncm91bmRJbWFnZUZpeFwiIHJlc3VsdD1cImVmZmVjdDFfZHJvcFNoYWRvd18xNDU1N182MjUyMlwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQmxlbmQgbW9kZT1cIm5vcm1hbFwiIGluPVwiU291cmNlR3JhcGhpY1wiIGluMj1cImVmZmVjdDFfZHJvcFNoYWRvd18xNDU1N182MjUyMlwiIHJlc3VsdD1cInNoYXBlXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2ZpbHRlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwicXVlc3Rpb24uZ2V0KCdkaXNhYmxlUnVuQUknKT8udmFsdWUgPycnIDpjbGVhclJlZmVyZW5jZUltYWdlKGksaixrLG4sJ211bHRpUmVmZXJlbmNlSW1hZ2UnKTtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiNDBcIiBoZWlnaHQ9XCI0MFwiIHZpZXdCb3g9XCIwIDAgNDAgNDBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGZpbHRlcj1cInVybCgjZmlsdGVyMF9kXzE0NTU3XzYyNTE0KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCIyXCIgeT1cIjFcIiB3aWR0aD1cIjM2XCIgaGVpZ2h0PVwiMzZcIiByeD1cIjhcIiBmaWxsPVwid2hpdGVcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjIuNVwiIHk9XCIxLjVcIiB3aWR0aD1cIjM1XCIgaGVpZ2h0PVwiMzVcIiByeD1cIjcuNVwiIHN0cm9rZT1cIiNEMEQ1RERcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xMi41IDEzLjk5NzRIMTQuMTY2N00xNC4xNjY3IDEzLjk5NzRIMjcuNU0xNC4xNjY3IDEzLjk5NzRWMjUuNjY0MUMxNC4xNjY3IDI2LjEwNjEgMTQuMzQyMyAyNi41MyAxNC42NTQ4IDI2Ljg0MjZDMTQuOTY3NCAyNy4xNTUxIDE1LjM5MTMgMjcuMzMwNyAxNS44MzMzIDI3LjMzMDdIMjQuMTY2N0MyNC42MDg3IDI3LjMzMDcgMjUuMDMyNiAyNy4xNTUxIDI1LjM0NTIgMjYuODQyNkMyNS42NTc3IDI2LjUzIDI1LjgzMzMgMjYuMTA2MSAyNS44MzMzIDI1LjY2NDFWMTMuOTk3NEgxNC4xNjY3Wk0xNi42NjY3IDEzLjk5NzRWMTIuMzMwN0MxNi42NjY3IDExLjg4ODcgMTYuODQyMyAxMS40NjQ4IDE3LjE1NDggMTEuMTUyMkMxNy40Njc0IDEwLjgzOTcgMTcuODkxMyAxMC42NjQxIDE4LjMzMzMgMTAuNjY0MUgyMS42NjY3QzIyLjEwODcgMTAuNjY0MSAyMi41MzI2IDEwLjgzOTcgMjIuODQ1MiAxMS4xNTIyQzIzLjE1NzcgMTEuNDY0OCAyMy4zMzMzIDExLjg4ODcgMjMuMzMzMyAxMi4zMzA3VjEzLjk5NzRNMTguMzMzMyAxOC4xNjQxVjIzLjE2NDFNMjEuNjY2NyAxOC4xNjQxVjIzLjE2NDFcIiBzdHJva2U9XCIjMzQ0MDU0XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbHRlciBpZD1cImZpbHRlcjBfZF8xNDU1N182MjUxNFwiIHg9XCIwXCIgeT1cIjBcIiB3aWR0aD1cIjQwXCIgaGVpZ2h0PVwiNDBcIiBmaWx0ZXJVbml0cz1cInVzZXJTcGFjZU9uVXNlXCIgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPVwic1JHQlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUZsb29kIGZsb29kLW9wYWNpdHk9XCIwXCIgcmVzdWx0PVwiQmFja2dyb3VuZEltYWdlRml4XCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUNvbG9yTWF0cml4IGluPVwiU291cmNlQWxwaGFcIiB0eXBlPVwibWF0cml4XCIgdmFsdWVzPVwiMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMTI3IDBcIiByZXN1bHQ9XCJoYXJkQWxwaGFcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlT2Zmc2V0IGR5PVwiMVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVHYXVzc2lhbkJsdXIgc3RkRGV2aWF0aW9uPVwiMVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVDb2xvck1hdHJpeCB0eXBlPVwibWF0cml4XCIgdmFsdWVzPVwiMCAwIDAgMCAwLjA2Mjc0NTEgMCAwIDAgMCAwLjA5NDExNzYgMCAwIDAgMCAwLjE1Njg2MyAwIDAgMCAwLjA1IDBcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQmxlbmQgbW9kZT1cIm5vcm1hbFwiIGluMj1cIkJhY2tncm91bmRJbWFnZUZpeFwiIHJlc3VsdD1cImVmZmVjdDFfZHJvcFNoYWRvd18xNDU1N182MjUxNFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVCbGVuZCBtb2RlPVwibm9ybWFsXCIgaW49XCJTb3VyY2VHcmFwaGljXCIgaW4yPVwiZWZmZWN0MV9kcm9wU2hhZG93XzE0NTU3XzYyNTE0XCIgcmVzdWx0PVwic2hhcGVcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9maWx0ZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cInJlZl9kZWxfaWNvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNsZWFyUmVmZXJlbmNlSW1hZ2UoaSxqLGspO1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0yLjUgNS4wMDEzSDQuMTY2NjdNNC4xNjY2NyA1LjAwMTNIMTcuNU00LjE2NjY3IDUuMDAxM1YxNi42NjhDNC4xNjY2NyAxNy4xMSA0LjM0MjI2IDE3LjUzMzkgNC42NTQ4MiAxNy44NDY1QzQuOTY3MzggMTguMTU5IDUuMzkxMzEgMTguMzM0NiA1LjgzMzMzIDE4LjMzNDZIMTQuMTY2N0MxNC42MDg3IDE4LjMzNDYgMTUuMDMyNiAxOC4xNTkgMTUuMzQ1MiAxNy44NDY1QzE1LjY1NzcgMTcuNTMzOSAxNS44MzMzIDE3LjExIDE1LjgzMzMgMTYuNjY4VjUuMDAxM0g0LjE2NjY3Wk02LjY2NjY3IDUuMDAxM1YzLjMzNDY0QzYuNjY2NjcgMi44OTI2MSA2Ljg0MjI2IDIuNDY4NjggNy4xNTQ4MiAyLjE1NjEyQzcuNDY3MzggMS44NDM1NiA3Ljg5MTMxIDEuNjY3OTcgOC4zMzMzMyAxLjY2Nzk3SDExLjY2NjdDMTIuMTA4NyAxLjY2Nzk3IDEyLjUzMjYgMS44NDM1NiAxMi44NDUyIDIuMTU2MTJDMTMuMTU3NyAyLjQ2ODY4IDEzLjMzMzMgMi44OTI2MSAxMy4zMzMzIDMuMzM0NjRWNS4wMDEzTTguMzMzMzMgOS4xNjc5N1YxNC4xNjhNMTEuNjY2NyA5LjE2Nzk3VjE0LjE2OFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjQjQyMzE4XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjEuNjdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IG1iLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPGRpdiAqbmdJZj1cImdldEFuc3dlckZvcm1Hcm91cF9Gb3JtQ29udHJvbChpLGosJ211bHRpUmVmZXJlbmNlSW1hZ2UnLGspPy52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjb2wtbGctMyBidG4gYnRuLWxpZ2h0LXByaW1hcnkgbXQtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImQtbm9uZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpZF09XCInZmlsZXVwbG9hZF8nK2kraitrXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImZpbGVcIiBuYW1lPVwiYW5zd2VyRmlsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjY2VwdD1cImltYWdlL3BuZywgaW1hZ2UvanBlZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwibG9hZEltYWdlRnJvbURldmljZShpLHJlZkltZ1FJZHgsJGV2ZW50LGspXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIFtmb3JdPVwiJ2ZpbGV1cGxvYWRfJytpK2ora1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJyZWZJbWdRSWR4PWo7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm14LTJcIiB3aWR0aD1cIjIxXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMSAyMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzQwODJfMzEyMilcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTE5LjY2NjcgMy4zMzUyN1Y4LjMzNTI3TTE5LjY2NjcgOC4zMzUyN0gxNC42NjY3TTE5LjY2NjcgOC4zMzUyN0wxNS44IDQuNzAxOTNDMTQuOTA0NCAzLjgwNTg2IDEzLjc5NjQgMy4xNTEyNyAxMi41NzkzIDIuNzk5MjVDMTEuMzYyMyAyLjQ0NzIyIDEwLjA3NTkgMi40MDkyMyA4Ljg0MDI1IDIuNjg4ODJDNy42MDQ1NiAyLjk2ODQxIDYuNDU5ODQgMy41NTY0NiA1LjUxMjkgNC4zOTgxMkM0LjU2NTk1IDUuMjM5NzcgMy44NDc2NSA2LjMwNzU5IDMuNDI1MDEgNy41MDE5M00xLjMzMzM0IDE2LjY2ODZWMTEuNjY4Nk0xLjMzMzM0IDExLjY2ODZINi4zMzMzNE0xLjMzMzM0IDExLjY2ODZMNS4yMDAwMSAxNS4zMDE5QzYuMDk1NjMgMTYuMTk4IDcuMjAzNjUgMTYuODUyNiA4LjQyMDY4IDE3LjIwNDZDOS42Mzc3MSAxNy41NTY3IDEwLjkyNDEgMTcuNTk0NiAxMi4xNTk4IDE3LjMxNTFDMTMuMzk1NSAxNy4wMzU1IDE0LjU0MDIgMTYuNDQ3NCAxNS40ODcxIDE1LjYwNThDMTYuNDM0MSAxNC43NjQxIDE3LjE1MjQgMTMuNjk2MyAxNy41NzUgMTIuNTAxOVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMwMDlCRjNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIxLjY3XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjbGlwUGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNsaXAwXzQwODJfMzEyMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJ3aGl0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm09XCJ0cmFuc2xhdGUoMC41KVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+UmV1cGxvYWQgSW1hZ2U8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImdldEFuc3dlckZvcm1Hcm91cF9Gb3JtQ29udHJvbChpLGosJ211bHRpUmVmZXJlbmNlSW1hZ2UnLGspPy52YWx1ZS5sZW5ndGggPj0gNSB8fCBxdWVzdGlvbi5nZXQoJ2Rpc2FibGVSdW5BSScpPy52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjb2wtbGctMyBidG4tbGlnaHQtZGlzYmFsZWQgYnRuIGFkZC1yZWYtYnRuIG15LTIgYm9yZGVyQ2FyZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInBvaW50ZXJcIj4gXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xMC4wMDEzIDQuMTY0MDZWMTUuODMwN000LjE2Nzk3IDkuOTk3NEgxNS44MzQ2XCIgc3Ryb2tlPVwiIzZCQ0FGRlwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPiA8c3Bhbj5BZGQgUmVmZXJlbmNlIEltYWdlPC9zcGFuPiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIXF1ZXN0aW9uLmdldCgnZGlzYWJsZVJ1bkFJJyk/LnZhbHVlICYmIGdldEFuc3dlckZvcm1Hcm91cF9Gb3JtQ29udHJvbChpLGosJ211bHRpUmVmZXJlbmNlSW1hZ2UnLGspPy52YWx1ZS5sZW5ndGggPCA1XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNvbC1sZy0zIGJ0biBhZGQtcmVmLWJ0biBidG4tbGlnaHQtcHJpbWFyeSBteS0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZC1ub25lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lkXT1cIidmaWxldXBsb2FkX3ZhbGlkSW1hZ2UxJytpK2ora1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJmaWxlXCIgbmFtZT1cImZpbGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY2NlcHQ9XCJpbWFnZS9wbmcsIGltYWdlL2pwZWdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cImxvYWRJbWFnZUZyb21EZXZpY2UoaSxyZWZJbWdRSWR4LCRldmVudCxrLCdtdWx0aVJlZmVyZW5jZUltYWdlJylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJwb2ludGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Zvcl09XCInZmlsZXVwbG9hZF92YWxpZEltYWdlMScraStqK2tcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwicmVmSW1nUUlkeD1qO1wiPiA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMCA0LjE2Nzk3VjE1LjgzNDZNNC4xNjY2OSAxMC4wMDEzSDE1LjgzMzRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMwMDlCRjNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjEuNjdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+QWRkIFJlZmVyZW5jZSBJbWFnZSA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjb2wtbGctNCBmb3JtLWNoZWNrIGZvcm0tc3dpdGNoIG14LTIgYnRuLXNlYyBtdC02IHRleHQtbGVmdCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IG14LTAgcG9pbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiIG5hbWU9XCJ0b2NcIiB2YWx1ZT1cIjFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZ0RlZmF1bHRDb250cm9sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImFsbG93VXBsb2FkZnJvbUdhbGxlcnlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIHBvaW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3I9XCJmbGV4U3dpdGNoQ2hlY2tEZWZhdWx0XCI+PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBbGxvdyB1cGxvYWQgZnJvbSBnYWxsZXJ5XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMlwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0zIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlciBtdC0yXCIgKm5nSWY9XCJ1c2VyVHlwZSAmJiB1c2VyVHlwZSA9PT0gJ3RhbmdvJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cImZzMTYtNjAwIHB4LTEyXCI+IFJ1biBBSSDinKg8L2gzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tc3dpdGNoIGFsaWduLWl0ZW1zLWNlbnRlciBidG4tc2VjIG1sLTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSAoY2xpY2spPVwiUnVuQUlOZXcoaSxqLGspXCIgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgcG9pbnRlclwiIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJydW5BSVwiIG5hbWU9XCJ0b2NcIiB2YWx1ZT1cIjFcIiAoY2xpY2spPVwiUnVuQUlOZXcoaSxqLGssJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcj1cImZsZXhTd2l0Y2hDaGVja0RlZmF1bHRcIj48L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgW25nQ2xhc3NdPVwicXVlc3Rpb24uZ2V0KCdhbnN3ZXJUeXBlJyk/LnZhbHVlID09PSAnbXVsdGlwbGVJbWFnZScgPyAnbXQtMScgOiAnJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjE2XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRUb29sdGlwPVwiRW5hYmxlIEFJIHdoZXJlIHlvdSB3YW50IHRhbmdvIHRvIGlkZW50aWZ5LCB0cmFjayBhbmQgYWxlcnQgaW5zdGFuY2VzLlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdFRvb2x0aXBQb3NpdGlvbj1cImFib3ZlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0VG9vbHRpcENsYXNzPVwiY3VzdG9tLXRlc3RcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgY2xpcC1wYXRoPVwidXJsKCNjbGlwMF8yMzAxXzEwMDAzOClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk03Ljk5OTY3IDEwLjY2NTRWNy45OTg3TTcuOTk5NjcgNS4zMzIwM0g4LjAwNjM0TTE0LjY2NjMgNy45OTg3QzE0LjY2NjMgMTEuNjgwNiAxMS42ODE2IDE0LjY2NTQgNy45OTk2NyAxNC42NjU0QzQuMzE3NzggMTQuNjY1NCAxLjMzMzAxIDExLjY4MDYgMS4zMzMwMSA3Ljk5ODdDMS4zMzMwMSA0LjMxNjggNC4zMTc3OCAxLjMzMjAzIDcuOTk5NjcgMS4zMzIwM0MxMS42ODE2IDEuMzMyMDMgMTQuNjY2MyA0LjMxNjggMTQuNjY2MyA3Ljk5ODdaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjOThBMkIzXCIgc3Ryb2tlLXdpZHRoPVwiMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNsaXBQYXRoIGlkPVwiY2xpcDBfMjMwMV8xMDAwMzhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiBmaWxsPVwid2hpdGVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJxdWVzdGlvbi5nZXQoJ2Fuc3dlcnMnKT8uaGFzRXJyb3IoJ2R1cGxpY2F0ZVN0cmluZycpXCIgY2xhc3M9XCJ0ZXh0LWRhbmdlciBtdC0yXCI+KiBTYW1lIGFuc3dlciBjYW5ub3QgYmVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwZWF0ZWQ8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIGNsYXNzPVwicm93XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJbJ211bHRpcGxlY2hvaWNlbXVsdGlwbGUnLCdtdWx0aXBsZWNob2ljZXNpbmdsZScsJ2Ryb3Bkb3duJ10uaW5jbHVkZXMocXVlc3Rpb24uZ2V0KCdhbnN3ZXJUeXBlJyk/LnZhbHVlKSAmJiBhbGxvd0FkZEFuc3dlcihxdWVzdGlvbi5nZXQoJ2Fuc3dlcnMnKT8udmFsdWUpICYmICFxdWVzdGlvbi5nZXQoJ2Rpc2FibGVSdW5BSScpPy52YWx1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IChjbGljayk9XCJBZGRNb3JlQW5zKGksaixxdWVzdGlvbi5nZXQoJ2Fuc3dlclR5cGUnKT8udmFsdWUpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGNvbC1sZy0xMiBidG4tbGlnaHQtcHJpbWFyeSBteS0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBZGQgTW9yZSBBbnN3ZXI8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gSW1hZ2UgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiWydpbWFnZScsJ2Rlc2NyaXB0aXZlSW1hZ2UnLCdtdWx0aXBsZUltYWdlJ10uaW5jbHVkZXMocXVlc3Rpb24uZ2V0KCdhbnN3ZXJUeXBlJyk/LnZhbHVlKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBmb3JtR3JvdXBOYW1lPVwiYW5zd2Vyc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGltYWdlIG9mIGdldEFuc3dlckZvcm1Hcm91cF9Gb3JtQ29udHJvbChpLGosJ211bHRpUmVmZXJlbmNlSW1hZ2UnKT8udmFsdWU7bGV0IG49aW5kZXhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNvbC1tZC00IGltYWdlLWNvbnRhaW5lciByZWZfaW1nX2NvbnQgcmVmX2ltZ19jb250IG1iLTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCJ7e2Vudmlyb25tZW50LlRyYXhBbnN3ZXJDRE59fXt7aW1hZ2UuaW1hZ2VVUkx9fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjkwJVwiIGhlaWdodD1cIjMwMHB4XCIgY2xhc3M9XCJhdXRvLWFkanVzdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHQ9XCJUYW5nbyBFeWVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm92ZXJsYXktaWNvbnNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwib25Qb3B1cChpbWFnZS5pbWFnZVVSTClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjQwXCIgaGVpZ2h0PVwiNDBcIiB2aWV3Qm94PVwiMCAwIDQwIDQwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgZmlsdGVyPVwidXJsKCNmaWx0ZXIwX2RfMTQ1NTdfNjI1MTMpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCIyXCIgeT1cIjFcIiB3aWR0aD1cIjM2XCIgaGVpZ2h0PVwiMzZcIiByeD1cIjhcIiBmaWxsPVwid2hpdGVcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCIyLjVcIiB5PVwiMS41XCIgd2lkdGg9XCIzNVwiIGhlaWdodD1cIjM1XCIgcng9XCI3LjVcIiBzdHJva2U9XCIjRDBENUREXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTIyLjUgMTEuNUgyNy41TTI3LjUgMTEuNVYxNi41TTI3LjUgMTEuNUwyMS42NjY3IDE3LjMzMzNNMTcuNSAyNi41SDEyLjVNMTIuNSAyNi41VjIxLjVNMTIuNSAyNi41TDE4LjMzMzMgMjAuNjY2N1wiIHN0cm9rZT1cIiMzNDQwNTRcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsdGVyIGlkPVwiZmlsdGVyMF9kXzE0NTU3XzYyNTEzXCIgeD1cIjBcIiB5PVwiMFwiIHdpZHRoPVwiNDBcIiBoZWlnaHQ9XCI0MFwiIGZpbHRlclVuaXRzPVwidXNlclNwYWNlT25Vc2VcIiBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM9XCJzUkdCXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUZsb29kIGZsb29kLW9wYWNpdHk9XCIwXCIgcmVzdWx0PVwiQmFja2dyb3VuZEltYWdlRml4XCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVDb2xvck1hdHJpeCBpbj1cIlNvdXJjZUFscGhhXCIgdHlwZT1cIm1hdHJpeFwiIHZhbHVlcz1cIjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDEyNyAwXCIgcmVzdWx0PVwiaGFyZEFscGhhXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVPZmZzZXQgZHk9XCIxXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVHYXVzc2lhbkJsdXIgc3RkRGV2aWF0aW9uPVwiMVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQ29sb3JNYXRyaXggdHlwZT1cIm1hdHJpeFwiIHZhbHVlcz1cIjAgMCAwIDAgMC4wNjI3NDUxIDAgMCAwIDAgMC4wOTQxMTc2IDAgMCAwIDAgMC4xNTY4NjMgMCAwIDAgMC4wNSAwXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVCbGVuZCBtb2RlPVwibm9ybWFsXCIgaW4yPVwiQmFja2dyb3VuZEltYWdlRml4XCIgcmVzdWx0PVwiZWZmZWN0MV9kcm9wU2hhZG93XzE0NTU3XzYyNTEzXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVCbGVuZCBtb2RlPVwibm9ybWFsXCIgaW49XCJTb3VyY2VHcmFwaGljXCIgaW4yPVwiZWZmZWN0MV9kcm9wU2hhZG93XzE0NTU3XzYyNTEzXCIgcmVzdWx0PVwic2hhcGVcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZmlsdGVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImN1cnNvci1wb2ludGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZC1ub25lXCIgW2lkXT1cIidmaWxldXBsb2FkSW1hZ2VfNDUnK25cIiB0eXBlPVwiZmlsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImZpbGVcIiBhY2NlcHQ9XCJpbWFnZS9wbmcsIGltYWdlL2pwZWdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJxdWVzdGlvbi5nZXQoJ2Rpc2FibGVSdW5BSScpPy52YWx1ZSA/ICRldmVudC5wcmV2ZW50RGVmYXVsdCgpIDogbnVsbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJxdWVzdGlvbi5nZXQoJ2Rpc2FibGVSdW5BSScpPy52YWx1ZSA/ICcnIDogbG9hZEltYWdlRnJvbURldmljZShpLHJlZkltZ1FJZHgsJGV2ZW50LC0xLCdtdWx0aVJlZmVyZW5jZUltYWdlJyxuKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBbZm9yXT1cIidmaWxldXBsb2FkSW1hZ2VfNDUnK25cIiAoY2xpY2spPVwicmVmSW1nUUlkeD1qO1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjQwXCIgaGVpZ2h0PVwiNDBcIiB2aWV3Qm94PVwiMCAwIDQwIDQwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGZpbHRlcj1cInVybCgjZmlsdGVyMF9kXzE0NTU3XzYyNTIyKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjJcIiB5PVwiMVwiIHdpZHRoPVwiMzZcIiBoZWlnaHQ9XCIzNlwiIHJ4PVwiOFwiIGZpbGw9XCJ3aGl0ZVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCIyLjVcIiB5PVwiMS41XCIgd2lkdGg9XCIzNVwiIGhlaWdodD1cIjM1XCIgcng9XCI3LjVcIiBzdHJva2U9XCIjRDBENUREXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0yNy41IDIxLjVWMjQuODMzM0MyNy41IDI1LjI3NTQgMjcuMzI0NCAyNS42OTkzIDI3LjAxMTggMjYuMDExOEMyNi42OTkzIDI2LjMyNDQgMjYuMjc1NCAyNi41IDI1LjgzMzMgMjYuNUgxNC4xNjY3QzEzLjcyNDYgMjYuNSAxMy4zMDA3IDI2LjMyNDQgMTIuOTg4MiAyNi4wMTE4QzEyLjY3NTYgMjUuNjk5MyAxMi41IDI1LjI3NTQgMTIuNSAyNC44MzMzVjIxLjVNMjQuMTY2NyAxNS42NjY3TDIwIDExLjVNMjAgMTEuNUwxNS44MzMzIDE1LjY2NjdNMjAgMTEuNVYyMS41XCIgc3Ryb2tlPVwiIzM0NDA1NFwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWx0ZXIgaWQ9XCJmaWx0ZXIwX2RfMTQ1NTdfNjI1MjJcIiB4PVwiMFwiIHk9XCIwXCIgd2lkdGg9XCI0MFwiIGhlaWdodD1cIjQwXCIgZmlsdGVyVW5pdHM9XCJ1c2VyU3BhY2VPblVzZVwiIGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycz1cInNSR0JcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUZsb29kIGZsb29kLW9wYWNpdHk9XCIwXCIgcmVzdWx0PVwiQmFja2dyb3VuZEltYWdlRml4XCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQ29sb3JNYXRyaXggaW49XCJTb3VyY2VBbHBoYVwiIHR5cGU9XCJtYXRyaXhcIiB2YWx1ZXM9XCIwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAxMjcgMFwiIHJlc3VsdD1cImhhcmRBbHBoYVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZU9mZnNldCBkeT1cIjFcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVHYXVzc2lhbkJsdXIgc3RkRGV2aWF0aW9uPVwiMVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUNvbG9yTWF0cml4IHR5cGU9XCJtYXRyaXhcIiB2YWx1ZXM9XCIwIDAgMCAwIDAuMDYyNzQ1MSAwIDAgMCAwIDAuMDk0MTE3NiAwIDAgMCAwIDAuMTU2ODYzIDAgMCAwIDAuMDUgMFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUJsZW5kIG1vZGU9XCJub3JtYWxcIiBpbjI9XCJCYWNrZ3JvdW5kSW1hZ2VGaXhcIiByZXN1bHQ9XCJlZmZlY3QxX2Ryb3BTaGFkb3dfMTQ1NTdfNjI1MjJcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVCbGVuZCBtb2RlPVwibm9ybWFsXCIgaW49XCJTb3VyY2VHcmFwaGljXCIgaW4yPVwiZWZmZWN0MV9kcm9wU2hhZG93XzE0NTU3XzYyNTIyXCIgcmVzdWx0PVwic2hhcGVcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2ZpbHRlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwicXVlc3Rpb24uZ2V0KCdkaXNhYmxlUnVuQUknKT8udmFsdWUgPyAnJzogY2xlYXJSZWZlcmVuY2VJbWFnZShpLGosLTEsbiwnbXVsdGlSZWZlcmVuY2VJbWFnZScpO1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiNDBcIiBoZWlnaHQ9XCI0MFwiIHZpZXdCb3g9XCIwIDAgNDAgNDBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBmaWx0ZXI9XCJ1cmwoI2ZpbHRlcjBfZF8xNDU1N182MjUxNClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjJcIiB5PVwiMVwiIHdpZHRoPVwiMzZcIiBoZWlnaHQ9XCIzNlwiIHJ4PVwiOFwiIGZpbGw9XCJ3aGl0ZVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjIuNVwiIHk9XCIxLjVcIiB3aWR0aD1cIjM1XCIgaGVpZ2h0PVwiMzVcIiByeD1cIjcuNVwiIHN0cm9rZT1cIiNEMEQ1RERcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTIuNSAxMy45OTc0SDE0LjE2NjdNMTQuMTY2NyAxMy45OTc0SDI3LjVNMTQuMTY2NyAxMy45OTc0VjI1LjY2NDFDMTQuMTY2NyAyNi4xMDYxIDE0LjM0MjMgMjYuNTMgMTQuNjU0OCAyNi44NDI2QzE0Ljk2NzQgMjcuMTU1MSAxNS4zOTEzIDI3LjMzMDcgMTUuODMzMyAyNy4zMzA3SDI0LjE2NjdDMjQuNjA4NyAyNy4zMzA3IDI1LjAzMjYgMjcuMTU1MSAyNS4zNDUyIDI2Ljg0MjZDMjUuNjU3NyAyNi41MyAyNS44MzMzIDI2LjEwNjEgMjUuODMzMyAyNS42NjQxVjEzLjk5NzRIMTQuMTY2N1pNMTYuNjY2NyAxMy45OTc0VjEyLjMzMDdDMTYuNjY2NyAxMS44ODg3IDE2Ljg0MjMgMTEuNDY0OCAxNy4xNTQ4IDExLjE1MjJDMTcuNDY3NCAxMC44Mzk3IDE3Ljg5MTMgMTAuNjY0MSAxOC4zMzMzIDEwLjY2NDFIMjEuNjY2N0MyMi4xMDg3IDEwLjY2NDEgMjIuNTMyNiAxMC44Mzk3IDIyLjg0NTIgMTEuMTUyMkMyMy4xNTc3IDExLjQ2NDggMjMuMzMzMyAxMS44ODg3IDIzLjMzMzMgMTIuMzMwN1YxMy45OTc0TTE4LjMzMzMgMTguMTY0MVYyMy4xNjQxTTIxLjY2NjcgMTguMTY0MVYyMy4xNjQxXCIgc3Ryb2tlPVwiIzM0NDA1NFwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWx0ZXIgaWQ9XCJmaWx0ZXIwX2RfMTQ1NTdfNjI1MTRcIiB4PVwiMFwiIHk9XCIwXCIgd2lkdGg9XCI0MFwiIGhlaWdodD1cIjQwXCIgZmlsdGVyVW5pdHM9XCJ1c2VyU3BhY2VPblVzZVwiIGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycz1cInNSR0JcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT1cIjBcIiByZXN1bHQ9XCJCYWNrZ3JvdW5kSW1hZ2VGaXhcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUNvbG9yTWF0cml4IGluPVwiU291cmNlQWxwaGFcIiB0eXBlPVwibWF0cml4XCIgdmFsdWVzPVwiMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMTI3IDBcIiByZXN1bHQ9XCJoYXJkQWxwaGFcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZU9mZnNldCBkeT1cIjFcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249XCIxXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVDb2xvck1hdHJpeCB0eXBlPVwibWF0cml4XCIgdmFsdWVzPVwiMCAwIDAgMCAwLjA2Mjc0NTEgMCAwIDAgMCAwLjA5NDExNzYgMCAwIDAgMCAwLjE1Njg2MyAwIDAgMCAwLjA1IDBcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUJsZW5kIG1vZGU9XCJub3JtYWxcIiBpbjI9XCJCYWNrZ3JvdW5kSW1hZ2VGaXhcIiByZXN1bHQ9XCJlZmZlY3QxX2Ryb3BTaGFkb3dfMTQ1NTdfNjI1MTRcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUJsZW5kIG1vZGU9XCJub3JtYWxcIiBpbj1cIlNvdXJjZUdyYXBoaWNcIiBpbjI9XCJlZmZlY3QxX2Ryb3BTaGFkb3dfMTQ1NTdfNjI1MTRcIiByZXN1bHQ9XCJzaGFwZVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9maWx0ZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cInJlZl9kZWxfaWNvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiKHF1ZXN0aW9uLmdldCgnYW5zd2VyVHlwZScpPy52YWx1ZSA9PT0gJ2ltYWdlJyAmJiBxdWVzdGlvbi5nZXQoJ3J1bkFJRGVmYXVsdCcpPy52YWx1ZSkgPyAnJzogY2xlYXJSZWZlcmVuY2VJbWFnZShpLGopO1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBbc3R5bGVdPVwiKHF1ZXN0aW9uLmdldCgnYW5zd2VyVHlwZScpPy52YWx1ZSA9PT0gJ2ltYWdlJyAmJiBxdWVzdGlvbi5nZXQoJ3J1bkFJRGVmYXVsdCcpPy52YWx1ZSkgPyAnY3Vyc29yOmRlZmF1bHQnOicnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0yLjUgNS4wMDEzSDQuMTY2NjdNNC4xNjY2NyA1LjAwMTNIMTcuNU00LjE2NjY3IDUuMDAxM1YxNi42NjhDNC4xNjY2NyAxNy4xMSA0LjM0MjI2IDE3LjUzMzkgNC42NTQ4MiAxNy44NDY1QzQuOTY3MzggMTguMTU5IDUuMzkxMzEgMTguMzM0NiA1LjgzMzMzIDE4LjMzNDZIMTQuMTY2N0MxNC42MDg3IDE4LjMzNDYgMTUuMDMyNiAxOC4xNTkgMTUuMzQ1MiAxNy44NDY1QzE1LjY1NzcgMTcuNTMzOSAxNS44MzMzIDE3LjExIDE1LjgzMzMgMTYuNjY4VjUuMDAxM0g0LjE2NjY3Wk02LjY2NjY3IDUuMDAxM1YzLjMzNDY0QzYuNjY2NjcgMi44OTI2MSA2Ljg0MjI2IDIuNDY4NjggNy4xNTQ4MiAyLjE1NjEyQzcuNDY3MzggMS44NDM1NiA3Ljg5MTMxIDEuNjY3OTcgOC4zMzMzMyAxLjY2Nzk3SDExLjY2NjdDMTIuMTA4NyAxLjY2Nzk3IDEyLjUzMjYgMS44NDM1NiAxMi44NDUyIDIuMTU2MTJDMTMuMTU3NyAyLjQ2ODY4IDEzLjMzMzMgMi44OTI2MSAxMy4zMzMzIDMuMzM0NjRWNS4wMDEzTTguMzMzMzMgOS4xNjc5N1YxNC4xNjhNMTEuNjY2NyA5LjE2Nzk3VjE0LjE2OFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiNCNDIzMThcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPGRpdiAqbmdJZj1cImdldEFuc3dlckZvcm1Hcm91cF9Gb3JtQ29udHJvbChpLGosJ211bHRpUmVmZXJlbmNlSW1hZ2UnKT8udmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjb2wtbGctMyBidG4gYnRuLWxpZ2h0LXByaW1hcnkgbXQtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZC1ub25lXCIgaWQ9XCJmaWxldXBsb2FkXCIgdHlwZT1cImZpbGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJmaWxlXCIgYWNjZXB0PVwiaW1hZ2UvcG5nLCBpbWFnZS9qcGVnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cImxvYWRJbWFnZUZyb21EZXZpY2UoaSxyZWZJbWdRSWR4LCRldmVudClcIiAqbmdJZj1cIihxdWVzdGlvbi5nZXQoJ2Fuc3dlclR5cGUnKT8udmFsdWUgIT09ICdpbWFnZScgfHwgKHF1ZXN0aW9uLmdldCgnYW5zd2VyVHlwZScpPy52YWx1ZSA9PT0gJ2ltYWdlJyAmJiAhcXVlc3Rpb24uZ2V0KCdydW5BSURlZmF1bHQnKT8udmFsdWUpKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImZpbGV1cGxvYWRcIiAoY2xpY2spPVwicmVmSW1nUUlkeD1qO1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIGNsYXNzPVwibXgtMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMjFcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjEgMjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzQwODJfMzEyMilcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xOS42NjY3IDMuMzM1MjdWOC4zMzUyN00xOS42NjY3IDguMzM1MjdIMTQuNjY2N00xOS42NjY3IDguMzM1MjdMMTUuOCA0LjcwMTkzQzE0LjkwNDQgMy44MDU4NiAxMy43OTY0IDMuMTUxMjcgMTIuNTc5MyAyLjc5OTI1QzExLjM2MjMgMi40NDcyMiAxMC4wNzU5IDIuNDA5MjMgOC44NDAyNSAyLjY4ODgyQzcuNjA0NTYgMi45Njg0MSA2LjQ1OTg0IDMuNTU2NDYgNS41MTI5IDQuMzk4MTJDNC41NjU5NSA1LjIzOTc3IDMuODQ3NjUgNi4zMDc1OSAzLjQyNTAxIDcuNTAxOTNNMS4zMzMzNCAxNi42Njg2VjExLjY2ODZNMS4zMzMzNCAxMS42Njg2SDYuMzMzMzRNMS4zMzMzNCAxMS42Njg2TDUuMjAwMDEgMTUuMzAxOUM2LjA5NTYzIDE2LjE5OCA3LjIwMzY1IDE2Ljg1MjYgOC40MjA2OCAxNy4yMDQ2QzkuNjM3NzEgMTcuNTU2NyAxMC45MjQxIDE3LjU5NDYgMTIuMTU5OCAxNy4zMTUxQzEzLjM5NTUgMTcuMDM1NSAxNC41NDAyIDE2LjQ0NzQgMTUuNDg3MSAxNS42MDU4QzE2LjQzNDEgMTQuNzY0MSAxNy4xNTI0IDEzLjY5NjMgMTcuNTc1IDEyLjUwMTlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMwMDlCRjNcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2xpcFBhdGggaWQ9XCJjbGlwMF80MDgyXzMxMjJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwid2hpdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm09XCJ0cmFuc2xhdGUoMC41KVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2NsaXBQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+UmV1cGxvYWQgSW1hZ2U8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIhcXVlc3Rpb24uZ2V0KCdkaXNhYmxlUnVuQUknKT8udmFsdWUgJiYgZ2V0QW5zd2VyRm9ybUdyb3VwX0Zvcm1Db250cm9sKGksaiwnbXVsdGlSZWZlcmVuY2VJbWFnZScpPy52YWx1ZS5sZW5ndGggPCA1ICYmICFxdWVzdGlvbi5nZXQoJ2Rpc2FibGVSdW5BSScpPy52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNvbC1sZy0zIGJ0biBhZGQtcmVmLWJ0biBidG4tbGlnaHQtcHJpbWFyeSBteS0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJkLW5vbmVcIiBpZD1cImZpbGV1cGxvYWRyZWZJbWFnZTFcIiB0eXBlPVwiZmlsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImZpbGVcIiBhY2NlcHQ9XCJpbWFnZS9wbmcsIGltYWdlL2pwZWdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwibG9hZEltYWdlRnJvbURldmljZShpLHJlZkltZ1FJZHgsJGV2ZW50LC0xLCdtdWx0aVJlZmVyZW5jZUltYWdlJylcIiAqbmdJZj1cIihxdWVzdGlvbi5nZXQoJ2Fuc3dlclR5cGUnKT8udmFsdWUgIT09ICdpbWFnZScgfHwgKHF1ZXN0aW9uLmdldCgnYW5zd2VyVHlwZScpPy52YWx1ZSA9PT0gJ2ltYWdlJyAmJiAhcXVlc3Rpb24uZ2V0KCdydW5BSURlZmF1bHQnKT8udmFsdWUpKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwicG9pbnRlclwiIGZvcj1cImZpbGV1cGxvYWRyZWZJbWFnZTFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJyZWZJbWdRSWR4PWo7XCI+IDxzdmdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMCA0LjE2Nzk3VjE1LjgzNDZNNC4xNjY2OSAxMC4wMDEzSDE1LjgzMzRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzAwOUJGM1wiIHN0cm9rZS13aWR0aD1cIjEuNjdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+QWRkIFJlZmVyZW5jZSBJbWFnZSA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImdldEFuc3dlckZvcm1Hcm91cF9Gb3JtQ29udHJvbChpLGosJ211bHRpUmVmZXJlbmNlSW1hZ2UnKT8udmFsdWUubGVuZ3RoID49IDUgfHwgcXVlc3Rpb24uZ2V0KCdkaXNhYmxlUnVuQUknKT8udmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNvbC1sZy0zIGJ0bi1saWdodC1kaXNiYWxlZCBidG4gYWRkLXJlZi1idG4gbXktMiBib3JkZXJDYXJkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInBvaW50ZXJcIj4gXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTEwLjAwMTMgNC4xNjQwNlYxNS44MzA3TTQuMTY3OTcgOS45OTc0SDE1LjgzNDZcIiBzdHJva2U9XCIjNkJDQUZGXCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPiA8c3Bhbj5BZGQgUmVmZXJlbmNlIEltYWdlPC9zcGFuPiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjb2wtbGctNCBmb3JtLWNoZWNrIGZvcm0tc3dpdGNoIG14LTIgYnRuLXNlYyBtdC02IHRleHQtbGVmdCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgbXgtMCBwb2ludGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIiBuYW1lPVwidG9jXCIgdmFsdWU9XCIxXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZ0RlZmF1bHRDb250cm9sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiYWxsb3dVcGxvYWRmcm9tR2FsbGVyeVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCBwb2ludGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3I9XCJmbGV4U3dpdGNoQ2hlY2tEZWZhdWx0XCI+PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFsbG93IHVwbG9hZCBmcm9tIGdhbGxlcnlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIihbJ211bHRpcGxlSW1hZ2UnXS5pbmNsdWRlcyhxdWVzdGlvbi5nZXQoJ2Fuc3dlclR5cGUnKT8udmFsdWUpICYmIGdldEFuc3dlckZvcm1Hcm91cF9Gb3JtQ29udHJvbChpLGosJ211bHRpUmVmZXJlbmNlSW1hZ2UnKT8udmFsdWUgPT09ICcnKSA/ICdjb2wtbGctNCBtdC02JyA6IFsnaW1hZ2UnLCdkZXNjcmlwdGl2ZUltYWdlJ10uaW5jbHVkZXMocXVlc3Rpb24uZ2V0KCdhbnN3ZXJUeXBlJyk/LnZhbHVlKSA/ICdjb2wtbGctMicgOiAnJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleFwiICpuZ0lmPVwiKFsnbXVsdGlwbGVJbWFnZSddLmluY2x1ZGVzKHF1ZXN0aW9uLmdldCgnYW5zd2VyVHlwZScpPy52YWx1ZSkgJiYgZ2V0QW5zd2VyRm9ybUdyb3VwX0Zvcm1Db250cm9sKGksaiwnbXVsdGlSZWZlcmVuY2VJbWFnZScpPy52YWx1ZSA9PT0gJycpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2tcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGZvcm1Db250cm9sTmFtZT1cImRlc2NyaXB0aXZldHlwZVwiIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBjdXJzb3ItcG9pbnRlclwiIHR5cGU9XCJyYWRpb1wiIFtpZF09XCInaW5saW5lUmFkaW80JyArIGkgKyBqXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPVwidGV4dFwiIFtuYW1lXT1cIidkZXNjcmlwdGl2ZXR5cGUnXCIgW2F0dHIuZGlzYWJsZWRdPVwicXVlc3Rpb24uZ2V0KCdkaXNhYmxlUnVuQUknKT8udmFsdWUgPyB0cnVlIDogbnVsbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJjdXJzb3ItcG9pbnRlciBkc2NyaXB0aXZlVHlwZVwiIFtmb3JdPVwiJ2lubGluZVJhZGlvNCcgKyBpICsgalwiPlRleHQ8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIG1zLTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGZvcm1Db250cm9sTmFtZT1cImRlc2NyaXB0aXZldHlwZVwiIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBjdXJzb3ItcG9pbnRlclwiIHR5cGU9XCJyYWRpb1wiIFtpZF09XCInaW5saW5lUmFkaW81JyArIGkgKyBqXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPVwibnVtYmVyXCIgW25hbWVdPVwiJ2Rlc2NyaXB0aXZldHlwZSdcIiBbYXR0ci5kaXNhYmxlZF09XCJxdWVzdGlvbi5nZXQoJ2Rpc2FibGVSdW5BSScpPy52YWx1ZSA/IHRydWUgOiBudWxsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImN1cnNvci1wb2ludGVyIGRzY3JpcHRpdmVUeXBlXCIgW2Zvcl09XCInaW5saW5lUmFkaW81JyArIGkgKyBqXCI+TnVtYmVyPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImdldEFuc3dlckZvcm1Hcm91cF9Gb3JtQ29udHJvbChpLGosJ211bHRpUmVmZXJlbmNlSW1hZ2UnKT8udmFsdWUgJiYgWydpbWFnZScsJ211bHRpcGxlSW1hZ2UnLCdkZXNjcmlwdGl2ZUltYWdlJ10uaW5jbHVkZXMocXVlc3Rpb24uZ2V0KCdhbnN3ZXJUeXBlJyk/LnZhbHVlKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJxdWVzdGlvbi5nZXQoJ2Fuc3dlclR5cGUnKT8udmFsdWUgPT09ICdtdWx0aXBsZUltYWdlJyA/ICdjb2wtbGctNSBkLWZsZXggbXQtNicgOiAnY29sLWxnLTMgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyIG10LTInXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4XCIgKm5nSWY9XCJxdWVzdGlvbi5nZXQoJ2Fuc3dlclR5cGUnKT8udmFsdWUgPT09ICdtdWx0aXBsZUltYWdlJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJkZXNjcmlwdGl2ZXR5cGVcIiBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgY3Vyc29yLXBvaW50ZXJcIiB0eXBlPVwicmFkaW9cIiBbaWRdPVwiJ2lubGluZVJhZGlvNicgKyBpICsgalwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cInRleHRcIiBbbmFtZV09XCInZGVzY3JpcHRpdmV0eXBlJ1wiIFthdHRyLmRpc2FibGVkXT1cInF1ZXN0aW9uLmdldCgnZGlzYWJsZVJ1bkFJJyk/LnZhbHVlID8gdHJ1ZSA6IG51bGxcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXIgZHNjcmlwdGl2ZVR5cGVcIiBbZm9yXT1cIidpbmxpbmVSYWRpbzYnICsgaSArIGpcIj5UZXh0PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBtcy01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJkZXNjcmlwdGl2ZXR5cGVcIiBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgY3Vyc29yLXBvaW50ZXJcIiB0eXBlPVwicmFkaW9cIiBbaWRdPVwiJ2lubGluZVJhZGlvNicgKyBpICsgalwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cIm51bWJlclwiIFtuYW1lXT1cIidkZXNjcmlwdGl2ZXR5cGUnXCIgW2F0dHIuZGlzYWJsZWRdPVwicXVlc3Rpb24uZ2V0KCdkaXNhYmxlUnVuQUknKT8udmFsdWUgPyB0cnVlIDogbnVsbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJjdXJzb3ItcG9pbnRlciBkc2NyaXB0aXZlVHlwZVwiIFtmb3JdPVwiJ2lubGluZVJhZGlvNicgKyBpICsgalwiPk51bWJlcjwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXhcIiAqbmdJZj1cInVzZXJUeXBlICYmIHVzZXJUeXBlID09PSAndGFuZ28nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwiZnMxNi02MDAgcHgtMTJcIj4gUnVuIEFJIOKcqDwvaDM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1zd2l0Y2ggYWxpZ24taXRlbXMtY2VudGVyIGJ0bi1zZWMgbWwtNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIChjbGljayk9XCJSdW5BSU5ldyhpLGopXCIgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgcG9pbnRlclwiIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJydW5BSVwiIG5hbWU9XCJ0b2NcIiB2YWx1ZT1cIjFcIiAoY2xpY2spPVwiUnVuQUlOZXcoaSxqLC0xLCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3I9XCJmbGV4U3dpdGNoQ2hlY2tEZWZhdWx0XCI+PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIFtuZ0NsYXNzXT1cInF1ZXN0aW9uLmdldCgnYW5zd2VyVHlwZScpPy52YWx1ZSA9PT0gJ211bHRpcGxlSW1hZ2UnID8gJ210LTEnIDogJydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxNlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0VG9vbHRpcD1cIkVuYWJsZSBBSSB3aGVyZSB5b3Ugd2FudCB0YW5nbyB0byBpZGVudGlmeSwgdHJhY2sgYW5kIGFsZXJ0IGluc3RhbmNlcy5cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRUb29sdGlwUG9zaXRpb249XCJhYm92ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdFRvb2x0aXBDbGFzcz1cImN1c3RvbS10ZXN0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGNsaXAtcGF0aD1cInVybCgjY2xpcDBfMjMwMV8xMDAwMzgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNNy45OTk2NyAxMC42NjU0VjcuOTk4N003Ljk5OTY3IDUuMzMyMDNIOC4wMDYzNE0xNC42NjYzIDcuOTk4N0MxNC42NjYzIDExLjY4MDYgMTEuNjgxNiAxNC42NjU0IDcuOTk5NjcgMTQuNjY1NEM0LjMxNzc4IDE0LjY2NTQgMS4zMzMwMSAxMS42ODA2IDEuMzMzMDEgNy45OTg3QzEuMzMzMDEgNC4zMTY4IDQuMzE3NzggMS4zMzIwMyA3Ljk5OTY3IDEuMzMyMDNDMTEuNjgxNiAxLjMzMjAzIDE0LjY2NjMgNC4zMTY4IDE0LjY2NjMgNy45OTg3WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzk4QTJCM1wiIHN0cm9rZS13aWR0aD1cIjJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cImNsaXAwXzIzMDFfMTAwMDM4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgZmlsbD1cIndoaXRlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY2xpcFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAgKm5nSWY9XCJbJ2ltYWdlJ10uaW5jbHVkZXMocXVlc3Rpb24uZ2V0KCdhbnN3ZXJUeXBlJyk/LnZhbHVlKSAmJiBxdWVzdGlvbi5nZXQoJ2NvbXBsaWFuY2UnKT8udmFsdWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgZm9ybUdyb3VwTmFtZT1cImFuc3dlcnNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IG10LTMgZHJvcFRleHRcIiA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC0zIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiB0aGUgcmVzcG9uc2UgaW1hZ2UgaXMgbWF0Y2hlZCwgdGhlbiB0aGUgc2NvcmUgd2lsbCBiZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VsZWN0IGNsYXNzPVwidy0xNTBweCBtcy0xMFwiIGZvcm1Db250cm9sTmFtZT1cIm1hdGNoZWRDb3VudFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IHZhbHVlIG9mIGRyb3Bkb3duVmFsdWVcIiBbdmFsdWVdPVwidmFsdWVcIj57e3ZhbHVlfX08L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IG10LTMgZHJvcFRleHRcIiA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC0zIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiB0aGUgcmVzcG9uc2UgaW1hZ2UgaXMgbm90IG1hdGNoZWQsIHRoZW4gdGhlIHNjb3JlIHdpbGwgYmVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBjbGFzcz1cInctMTUwcHggbXMtMTBcIiBmb3JtQ29udHJvbE5hbWU9XCJub3RNYXRjaGVkQ291bnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCB2YWx1ZSBvZiBkcm9wZG93blZhbHVlXCIgW3ZhbHVlXT1cInZhbHVlXCI+e3t2YWx1ZX19PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBWaWRlbyAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInF1ZXN0aW9uLmdldCgnYW5zd2VyVHlwZScpPy52YWx1ZSA9PT0gJ3ZpZGVvJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBmb3JtR3JvdXBOYW1lPVwiYW5zd2Vyc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCIgY29sLWxnLTQgZm9ybS1jaGVjayBmb3JtLXN3aXRjaCB0ZXh0LWxlZnQgYWxpZ24taXRlbXMtY2VudGVyIGJ0bi1zZWMgbXQtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IG14LTAgcG9pbnRlclwiIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwidG9jXCIgdmFsdWU9XCIxXCIgbmdEZWZhdWx0Q29udHJvbFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiYWxsb3dVcGxvYWRmcm9tR2FsbGVyeVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIHBvaW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yPVwiZmxleFN3aXRjaENoZWNrRGVmYXVsdFwiPkFsbG93IHVwbG9hZCBmcm9tIGdhbGxlcnk8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPG5nLWNvbnRhaW5lciAqbmdJZj1cInF1ZXN0aW9uLmdldCgnYW5zd2VyVHlwZScpPy52YWx1ZSA9PT0gJ3RpbWUnXCIgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgZm9ybUdyb3VwTmFtZT1cImFuc3dlcnNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiIGNvbC1sZy00IGJ0bi1zZWMgbXQtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZm9ybS1jb250cm9sLXNvbGlkIGZsYXRwaWNrci1pbnB1dCB3LTIwMHB4XCIgdHlwZT1cInRpbWVcIiBuYW1lPVwidGltZVwiIG5nRGVmYXVsdENvbnRyb2wgZm9ybUNvbnRyb2xOYW1lPVwiYW5zd2VyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+IC0tPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInF1ZXN0aW9uLmdldCgnYW5zd2VyVHlwZScpPy52YWx1ZSA9PT0gJ2xpbmVhcnNjYWxlJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBmb3JtR3JvdXBOYW1lPVwiYW5zd2Vyc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHJvcFRleHRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTZWxlY3QgVHlwZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzZWxlY3QgY2xhc3M9XCJcIiBmb3JtQ29udHJvbE5hbWU9XCJsaW5lYXJUeXBlXCIgKGNoYW5nZSk9XCJ1cGRhdGVOdW1iZXIoJGV2ZW50LGksailcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiZGVncmVlXCI+RGVncmVlIMKwQzwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJudW1iZXJcIj5XaG9sZSBOdW1iZXI8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwicGVyY2VudGFnZVwiPlBlcmNlbnRhZ2U8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHJvcFRleHRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNaW4gVmFsdWVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGliLWNvdW50ZXIgc3R5bGU9XCJ3aWR0aDogNDAlXCIgZm9ybUNvbnRyb2xOYW1lPVwicmFuZ2VTdGFydFwiIFtzdGVwXT1cIjFcIiBwbGFjZWhvbGRlcj1cIjBcIiBbdHlwZV09XCJnZXRBbnN3ZXJGb3JtR3JvdXBfRm9ybUNvbnRyb2woaSxqLCdsaW5lYXJUeXBlJyk/LnZhbHVlXCI+PC9saWItY291bnRlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHJvcFRleHRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYXggVmFsdWVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGliLWNvdW50ZXIgc3R5bGU9XCJ3aWR0aDogNDAlXCIgZm9ybUNvbnRyb2xOYW1lPVwicmFuZ2VFbmRcIiBbc3RlcF09XCIxXCIgcGxhY2Vob2xkZXI9XCIwXCIgW3R5cGVdPVwiZ2V0QW5zd2VyRm9ybUdyb3VwX0Zvcm1Db250cm9sKGksaiwnbGluZWFyVHlwZScpPy52YWx1ZVwiPjwvbGliLWNvdW50ZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInF1ZXN0aW9uLmdldCgnYW5zd2VycycpPy5pbnZhbGlkICYmIHF1ZXN0aW9uLmdldCgnYW5zd2VycycpPy50b3VjaGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJxdWVzdGlvbi5nZXQoJ2Fuc3dlcnMnKT8uaGFzRXJyb3IoJ2ludmFsaWRSYW5nZScpXCIgY2xhc3M9XCJ0ZXh0LWRhbmdlciBtdC0yXCI+KiBNaW4gdmFsdWUgbXVzdCBiZSBsZXNzIHRoYW4gbWF4IHZhbHVlLjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJxdWVzdGlvbi5nZXQoJ2NvbXBsaWFuY2UnKT8udmFsdWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBtdC01XCIgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC04XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZmxleC1ub3dyYXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkcm9wVGV4dCBtZS0yXCI+SWYgdGhlIHJlc3BvbnNlIGlzIGJldHdlZW48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJidG4tc2VjIG1lLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY29udHJvbCBmb3JtLWNvbnRyb2wtc29saWQgZmxhdHBpY2tyLWlucHV0IHctMTAwcHhcIiBbYXR0ci50eXBlXT1cImdldEFuc3dlckZvcm1Hcm91cF9Gb3JtQ29udHJvbChpLGosJ2xpbmVhclR5cGUnKT8udmFsdWUgPT09ICdkZWdyZWUnID8gJ3RleHQnIDogJ251bWJlcidcIiBbYXR0ci5pbnB1dG1vZGVdPVwiZ2V0QW5zd2VyRm9ybUdyb3VwX0Zvcm1Db250cm9sKGksaiwnbGluZWFyVHlwZScpPy52YWx1ZSA9PT0gJ2RlZ3JlZScgPyAndGV4dCcgOiAnbnVtZXJpYydcIiBuYW1lPVwic3RhcnRcIiBuZ0RlZmF1bHRDb250cm9sIGZvcm1Db250cm9sTmFtZT1cIm1pblZhbHVlXCIgW21pbl09XCJxdWVzdGlvbi5nZXQoJ2Fuc3dlcnMnKT8uZ2V0KCdyYW5nZVN0YXJ0Jyk/LnZhbHVlXCIgW21heF09XCJxdWVzdGlvbi5nZXQoJ2Fuc3dlcnMnKT8uZ2V0KCdyYW5nZUVuZCcpPy52YWx1ZVwiIChpbnB1dCk9XCJvblJhbmdlVmFsdWVJbnB1dCgkZXZlbnQsIGksIGosICdtaW5WYWx1ZScpXCIgKGJsdXIpPVwiY2xhbXBSYW5nZUlucHV0KGksIGosICdtaW5WYWx1ZScpXCIgLz4gICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJidG4tc2VjIG1lLTIgYWxpZ24tc2VsZi1jZW50ZXJcIj50bzwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJ0bi1zZWMgbWUtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jb250cm9sIGZvcm0tY29udHJvbC1zb2xpZCBmbGF0cGlja3ItaW5wdXQgdy0xMDBweFwiIFthdHRyLnR5cGVdPVwiZ2V0QW5zd2VyRm9ybUdyb3VwX0Zvcm1Db250cm9sKGksaiwnbGluZWFyVHlwZScpPy52YWx1ZSA9PT0gJ2RlZ3JlZScgPyAndGV4dCcgOiAnbnVtYmVyJ1wiIFthdHRyLmlucHV0bW9kZV09XCJnZXRBbnN3ZXJGb3JtR3JvdXBfRm9ybUNvbnRyb2woaSxqLCdsaW5lYXJUeXBlJyk/LnZhbHVlID09PSAnZGVncmVlJyA/ICd0ZXh0JyA6ICdudW1lcmljJ1wiIG5hbWU9XCJzdGFydFwiIG5nRGVmYXVsdENvbnRyb2wgZm9ybUNvbnRyb2xOYW1lPVwibWF4VmFsdWVcIiBbbWluXT1cInF1ZXN0aW9uLmdldCgnYW5zd2VycycpPy5nZXQoJ3JhbmdlU3RhcnQnKT8udmFsdWVcIiBbbWF4XT1cInF1ZXN0aW9uLmdldCgnYW5zd2VycycpPy5nZXQoJ3JhbmdlRW5kJyk/LnZhbHVlXCIgKGlucHV0KT1cIm9uUmFuZ2VWYWx1ZUlucHV0KCRldmVudCwgaSwgaiwgJ21heFZhbHVlJylcIiAoYmx1cik9XCJjbGFtcFJhbmdlSW5wdXQoaSwgaiwgJ21heFZhbHVlJylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZHJvcFRleHQgbXMtMVwiPiwgdGhlbiB0aGUgc2NvcmUgd2lsbCBiZTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC00IHRleHQtZW5kXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBjbGFzcz1cInctMTUwcHggbXMtMTRcIiBmb3JtQ29udHJvbE5hbWU9XCJtYXRjaGVkQ291bnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgdmFsdWUgb2YgZHJvcGRvd25WYWx1ZVwiIFt2YWx1ZV09XCJ2YWx1ZVwiPnt7dmFsdWV9fTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IG10LTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wVGV4dCBtdC01IGNvbC1tZC04XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgdGhlIHJlc3BvbnNlIGRhdGUgaXMgb3RoZXIgdGhhbiB0aGUgc2VsZWN0ZWQgcmFuZ2UsIHRoZW4gdGhlIHNjb3JlIHdpbGwgYmUgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNCB0ZXh0LWVuZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzZWxlY3QgY2xhc3M9XCJ3LTE1MHB4IG1zLTE0XCIgZm9ybUNvbnRyb2xOYW1lPVwibm90TWF0Y2hlZENvdW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IHZhbHVlIG9mIGRyb3Bkb3duVmFsdWVcIiBbdmFsdWVdPVwidmFsdWVcIj57e3ZhbHVlfX08L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJxdWVzdGlvbi5nZXQoJ2Fuc3dlclR5cGUnKT8udmFsdWUgPT09ICdkYXRlJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBmb3JtR3JvdXBOYW1lPVwiYW5zd2Vyc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYW5zd2VydmFsaWRhdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJcIiB0eXBlPVwiY2hlY2tib3hcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJ3aWR0aDoxNnB4O2hlaWdodDoxNnB4O2N1cnNvcjogcG9pbnRlcjtcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9XCIxXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImhpc3RvcmljRGF0ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2tib3ggbXQtMSBteC0yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwiY3Vyc29yOiBkZWZhdWx0O1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzPkFsbG93IEhpc3RvcmljIERhdGVzIG9uIERhdGUgUGlja2VyPC9oMz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInF1ZXN0aW9uLmdldCgnY29tcGxpYW5jZScpPy52YWx1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IG10LTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyYW5nZVRleHRcIj5TZWxlY3QgUmFuZ2UgZnJvbTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zIHB4LTQgcGUtM1wiIGlkPVwiZGF0ZWNsYXNzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLWt0LWRhdGVyYW5nZXBpY2tlcj1cInRydWVcIiBkYXRhLWt0LWRhdGVyYW5nZXBpY2tlci1vcGVucz1cImxlZnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBwb3NpdGlvbi1yZWxhdGl2ZSBteS0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tMSBwb3NpdGlvbi1hYnNvbHV0ZSBtcy0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTMuMzMzMyAxLjY2NjYzVjQuOTk5OTZNNi42NjY2NyAxLjY2NjYzVjQuOTk5OTZNMi41IDguMzMzMjlIMTcuNU00LjE2NjY3IDMuMzMzMjlIMTUuODMzM0MxNi43NTM4IDMuMzMzMjkgMTcuNSA0LjA3OTQ4IDE3LjUgNC45OTk5NlYxNi42NjY2QzE3LjUgMTcuNTg3MSAxNi43NTM4IDE4LjMzMzMgMTUuODMzMyAxOC4zMzMzSDQuMTY2NjdDMy4yNDYxOSAxOC4zMzMzIDIuNSAxNy41ODcxIDIuNSAxNi42NjY2VjQuOTk5OTZDMi41IDQuMDc5NDggMy4yNDYxOSAzLjMzMzI5IDQuMTY2NjcgMy4zMzMyOVpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMzQ0MDU0XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmeC1kYXRlLXJhbmdlIGZvcm0tY29udHJvbCBwcy0xNFwiIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdElucHV0IG5neERhdGVyYW5nZXBpY2tlck1kIFtzaW5nbGVEYXRlUGlja2VyXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Ryb3BzXT1cIidkb3duJ1wiIFtvcGVuc109XCIncmlnaHQnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthbHdheXNTaG93Q2FsZW5kYXJzXT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtrZWVwQ2FsZW5kYXJPcGVuaW5nV2l0aFJhbmdlXT1cInRydWVcIiBbc2hvd0NhbmNlbF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXV0b0FwcGx5XT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xvY2FsZV09XCJ7IGZvcm1hdDogJ0RELU1NLVlZWVknLCBmaXJzdERheTogMSwgbW9udGhOYW1lczogWydKYW51YXJ5JywgJ0ZlYnJ1YXJ5JywgJ01hcmNoJywgJ0FwcmlsJywgJ01heScsICdKdW5lJywgJ0p1bHknLCAnQXVndXN0JywgJ1NlcHRlbWJlcicsICdPY3RvYmVyJywgJ05vdmVtYmVyJywgJ0RlY2VtYmVyJ10gfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZXNVcGRhdGVkKT1cImRhdGVSYW5nZSgkZXZlbnQsJ3N0YXJ0JyxpLGopXCIgbmFtZT1cImRhdGVyYW5nZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwidHJ1ZVwiIGZvcm1Db250cm9sTmFtZT1cInFuU3RhcnREYXRlXCIgW3Nob3dEcm9wZG93bnNdPVwidHJ1ZVwiLz4gXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyYW5nZVRleHRcIj5UbzwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zIHB4LTQgcGUtM1wiIGlkPVwiZGF0ZWNsYXNzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLWt0LWRhdGVyYW5nZXBpY2tlcj1cInRydWVcIiBkYXRhLWt0LWRhdGVyYW5nZXBpY2tlci1vcGVucz1cImxlZnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBwb3NpdGlvbi1yZWxhdGl2ZSBteS0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tMSBwb3NpdGlvbi1hYnNvbHV0ZSBtcy0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTMuMzMzMyAxLjY2NjYzVjQuOTk5OTZNNi42NjY2NyAxLjY2NjYzVjQuOTk5OTZNMi41IDguMzMzMjlIMTcuNU00LjE2NjY3IDMuMzMzMjlIMTUuODMzM0MxNi43NTM4IDMuMzMzMjkgMTcuNSA0LjA3OTQ4IDE3LjUgNC45OTk5NlYxNi42NjY2QzE3LjUgMTcuNTg3MSAxNi43NTM4IDE4LjMzMzMgMTUuODMzMyAxOC4zMzMzSDQuMTY2NjdDMy4yNDYxOSAxOC4zMzMzIDIuNSAxNy41ODcxIDIuNSAxNi42NjY2VjQuOTk5OTZDMi41IDQuMDc5NDggMy4yNDYxOSAzLjMzMzI5IDQuMTY2NjcgMy4zMzMyOVpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMzQ0MDU0XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmeC1kYXRlLXJhbmdlIGZvcm0tY29udHJvbCBwcy0xNFwiIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdElucHV0IG5neERhdGVyYW5nZXBpY2tlck1kIFtzaW5nbGVEYXRlUGlja2VyXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkcm9wc109XCInZG93bidcIiBbb3BlbnNdPVwiJ3JpZ2h0J1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYWx3YXlzU2hvd0NhbGVuZGFyc109XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBba2VlcENhbGVuZGFyT3BlbmluZ1dpdGhSYW5nZV09XCJ0cnVlXCIgW3Nob3dDYW5jZWxdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvY29tcGxldGU9XCJvZmZcIiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdXRvQXBwbHldPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbG9jYWxlXT1cInsgZm9ybWF0OiAnREQtTU0tWVlZWScsIGZpcnN0RGF5OiAxLCBtb250aE5hbWVzOiBbJ0phbnVhcnknLCAnRmVicnVhcnknLCAnTWFyY2gnLCAnQXByaWwnLCAnTWF5JywgJ0p1bmUnLCAnSnVseScsICdBdWd1c3QnLCAnU2VwdGVtYmVyJywgJ09jdG9iZXInLCAnTm92ZW1iZXInLCAnRGVjZW1iZXInXSB9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlc1VwZGF0ZWQpPVwiZGF0ZVJhbmdlKCRldmVudCwnZW5kJyxpLGopXCIgbmFtZT1cImRhdGVyYW5nZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwidHJ1ZVwiIGZvcm1Db250cm9sTmFtZT1cInFuRW5kRGF0ZVwiIFtzaG93RHJvcGRvd25zXT1cInRydWVcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggbXQtNSBkcm9wVGV4dFwiID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgdGhlIHJlc3BvbnNlIGRhdGUgaXMgYmV0d2VlbiB0aGUgc2VsZWN0ZWQgcmFuZ2UsIHRoZW4gdGhlIHNjb3JlIHdpbGwgYmVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VsZWN0IGNsYXNzPVwidy0xNTBweCBtcy0xNFwiIGZvcm1Db250cm9sTmFtZT1cIm1hdGNoZWRDb3VudFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCB2YWx1ZSBvZiBkcm9wZG93blZhbHVlXCIgW3ZhbHVlXT1cInZhbHVlXCI+e3t2YWx1ZX19PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggbXQtMyBkcm9wVGV4dFwiID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgdGhlIHJlc3BvbnNlIGRhdGUgaXMgb3RoZXIgdGhhbiB0aGUgc2VsZWN0ZWQgcmFuZ2UsIHRoZW4gdGhlIHNjb3JlIHdpbGwgYmVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VsZWN0IGNsYXNzPVwidy0xNTBweCBtcy0xMFwiIGZvcm1Db250cm9sTmFtZT1cIm5vdE1hdGNoZWRDb3VudFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCB2YWx1ZSBvZiBkcm9wZG93blZhbHVlXCIgW3ZhbHVlXT1cInZhbHVlXCI+e3t2YWx1ZX19PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicXVlc3Rpb24uZ2V0KCdhbnN3ZXJUeXBlJyk/LnZhbHVlID09PSAnaW1hZ2UvdmlkZW8nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIGZvcm1Hcm91cE5hbWU9XCJhbnN3ZXJzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIiBjb2wtbGctNCBmb3JtLWNoZWNrIGZvcm0tc3dpdGNoIHRleHQtbGVmdCBhbGlnbi1pdGVtcy1jZW50ZXIgYnRuLXNlYyBtdC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgbXgtMCBwb2ludGVyXCIgdHlwZT1cImNoZWNrYm94XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJ0b2NcIiB2YWx1ZT1cIjFcIiBuZ0RlZmF1bHRDb250cm9sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJhbGxvd1VwbG9hZGZyb21HYWxsZXJ5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgcG9pbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3I9XCJmbGV4U3dpdGNoQ2hlY2tEZWZhdWx0XCI+QWxsb3cgdXBsb2FkIGZyb20gZ2FsbGVyeTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCIgY29sLWxnLTQgZm9ybS1jaGVjayBmb3JtLXN3aXRjaCB0ZXh0LWxlZnQgYWxpZ24taXRlbXMtY2VudGVyIGJ0bi1zZWMgbXQtNVwiICpuZ0lmPVwidXNlclR5cGUgJiYgdXNlclR5cGUgPT09ICd0YW5nbydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBteC0wIHBvaW50ZXJcIiB0eXBlPVwiY2hlY2tib3hcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cInRvY1wiIHZhbHVlPVwiMVwiIG5nRGVmYXVsdENvbnRyb2xcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImxpbWl0XCIgKGNoYW5nZSk9XCJ1cGRhdGVMaW1pdCgkZXZlbnQsaSxqKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIHBvaW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yPVwiZmxleFN3aXRjaENoZWNrRGVmYXVsdFwiPlNldCBMaW1pdHMgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyBuZ2JUb29sdGlwPVwiVXBsb2FkcyBhcmUgYWxsb3dlZCBhcyBwZXIgdGhlIGNvbmZpZ3VyZWQgaW1hZ2UvdmlkZW8gbGltaXRzXCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCIgbWF0VG9vbHRpcD1cIkVuYWJsZSBBSSB3aGVyZSB5b3Ugd2FudCB0YW5nbyB0byBpZGVudGlmeSwgdHJhY2sgYW5kIGFsZXJ0IGluc3RhbmNlcy5cIiBtYXRUb29sdGlwUG9zaXRpb249XCJhYm92ZVwiIG1hdFRvb2x0aXBDbGFzcz1cImN1c3RvbS10ZXN0XCIgbmctcmVmbGVjdC1uZy1jbGFzcz1cIlwiPjxnIGNsaXAtcGF0aD1cInVybCgjY2xpcDBfMjMwMV8xMDAwMzgpXCI+PHBhdGggZD1cIk03Ljk5OTY3IDEwLjY2NTRWNy45OTg3TTcuOTk5NjcgNS4zMzIwM0g4LjAwNjM0TTE0LjY2NjMgNy45OTg3QzE0LjY2NjMgMTEuNjgwNiAxMS42ODE2IDE0LjY2NTQgNy45OTk2NyAxNC42NjU0QzQuMzE3NzggMTQuNjY1NCAxLjMzMzAxIDExLjY4MDYgMS4zMzMwMSA3Ljk5ODdDMS4zMzMwMSA0LjMxNjggNC4zMTc3OCAxLjMzMjAzIDcuOTk5NjcgMS4zMzIwM0MxMS42ODE2IDEuMzMyMDMgMTQuNjY2MyA0LjMxNjggMTQuNjY2MyA3Ljk5ODdaXCIgc3Ryb2tlPVwiIzk4QTJCM1wiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIj48L3BhdGg+PC9nPjxkZWZzPjxjbGlwUGF0aCBpZD1cImNsaXAwXzIzMDFfMTAwMDM4XCI+PHJlY3Qgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgZmlsbD1cIndoaXRlXCI+PC9yZWN0PjwvY2xpcFBhdGg+PC9kZWZzPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiIGNvbC1sZy0xMiBmb3JtLWNoZWNrIGZvcm0tc3dpdGNoIHRleHQtbGVmdCBhbGlnbi1pdGVtcy1jZW50ZXIgYnRuLXNlYyBtdC01XCIgKm5nSWY9XCJnZXRBbnN3ZXJGb3JtR3JvdXBfRm9ybUNvbnRyb2woaSxqLCdsaW1pdCcpPy52YWx1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWUtMyBtdC0zXCI+QXR0YWNoPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy03MHB4IG1lLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VsZWN0IGZvcm1Db250cm9sTmFtZT1cImltYWdlTGltaXRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjFcIj4xPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCIyXCI+Mjwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiM1wiPjM8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjRcIj40PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCI1XCI+NTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWUtMyBtdC0zXCI+aW1hZ2VzIGFuZDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctNzBweCBtZS0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBmb3JtQ29udHJvbE5hbWU9XCJ2aWRlb0xpbWl0XCIgcGxhY2Vob2xkZXI9XCItXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCIxXCI+MTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiMlwiPjI8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjNcIj4zPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCI0XCI+NDwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiNVwiPjU8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1lLTMgbXQtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZpZGVvcy5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGltaXRUb29sdGlwVGV4dCBtdC0zXCIgKm5nSWY9XCJnZXRBbnN3ZXJGb3JtR3JvdXBfRm9ybUNvbnRyb2woaSxqLCdsaW1pdCcpPy52YWx1ZSAmJiAoZ2V0QW5zd2VyRm9ybUdyb3VwX0Zvcm1Db250cm9sKGksaiwnaW1hZ2VMaW1pdCcpPy52YWx1ZSB8fCBnZXRBbnN3ZXJGb3JtR3JvdXBfRm9ybUNvbnRyb2woaSxqLCd2aWRlb0xpbWl0Jyk/LnZhbHVlKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnICB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIiBtYXRUb29sdGlwPVwiRW5hYmxlIEFJIHdoZXJlIHlvdSB3YW50IHRhbmdvIHRvIGlkZW50aWZ5LCB0cmFjayBhbmQgYWxlcnQgaW5zdGFuY2VzLlwiIG1hdFRvb2x0aXBQb3NpdGlvbj1cImFib3ZlXCIgbWF0VG9vbHRpcENsYXNzPVwiY3VzdG9tLXRlc3RcIiBuZy1yZWZsZWN0LW5nLWNsYXNzPVwiXCI+PGcgY2xpcC1wYXRoPVwidXJsKCNjbGlwMF8yMzAxXzEwMDAzOClcIj48cGF0aCBkPVwiTTcuOTk5NjcgMTAuNjY1NFY3Ljk5ODdNNy45OTk2NyA1LjMzMjAzSDguMDA2MzRNMTQuNjY2MyA3Ljk5ODdDMTQuNjY2MyAxMS42ODA2IDExLjY4MTYgMTQuNjY1NCA3Ljk5OTY3IDE0LjY2NTRDNC4zMTc3OCAxNC42NjU0IDEuMzMzMDEgMTEuNjgwNiAxLjMzMzAxIDcuOTk4N0MxLjMzMzAxIDQuMzE2OCA0LjMxNzc4IDEuMzMyMDMgNy45OTk2NyAxLjMzMjAzQzExLjY4MTYgMS4zMzIwMyAxNC42NjYzIDQuMzE2OCAxNC42NjYzIDcuOTk4N1pcIiBzdHJva2U9XCIjOThBMkIzXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiPjwvcGF0aD48L2c+PGRlZnM+PGNsaXBQYXRoIGlkPVwiY2xpcDBfMjMwMV8xMDAwMzhcIj48cmVjdCB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiBmaWxsPVwid2hpdGVcIj48L3JlY3Q+PC9jbGlwUGF0aD48L2RlZnM+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENoZWNrbGlzdCBmaWxsZXJzIG11c3QgY2FwdHVyZS91cGxvYWQge3sgZ2V0QW5zd2VyRm9ybUdyb3VwX0Zvcm1Db250cm9sKGksaiwnaW1hZ2VMaW1pdCcpPy52YWx1ZSA/IGdldEFuc3dlckZvcm1Hcm91cF9Gb3JtQ29udHJvbChpLGosJ2ltYWdlTGltaXQnKT8udmFsdWUgKyAnIGltYWdlJyArIChnZXRBbnN3ZXJGb3JtR3JvdXBfRm9ybUNvbnRyb2woaSxqLCdpbWFnZUxpbWl0Jyk/LnZhbHVlID4gMSA/ICdzJyA6ICcnKSA6ICcnIH19IHt7IGdldEFuc3dlckZvcm1Hcm91cF9Gb3JtQ29udHJvbChpLGosJ3ZpZGVvTGltaXQnKT8udmFsdWUgPyAnIGFuZCAnICsgZ2V0QW5zd2VyRm9ybUdyb3VwX0Zvcm1Db250cm9sKGksaiwndmlkZW9MaW1pdCcpPy52YWx1ZSArICcgdmlkZW8nICsgKGdldEFuc3dlckZvcm1Hcm91cF9Gb3JtQ29udHJvbChpLGosJ3ZpZGVvTGltaXQnKT8udmFsdWUgPiAxID8gJ3MnIDogJycpIDogJycgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1lbmQgcHktMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInB0LTFcIiA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyAoY2xpY2spPVwicXVlc3Rpb24uZ2V0KCdkaXNhYmxlUnVuQUknKT8udmFsdWUgPyAnJyA6IGNsb25lUXVlc3Rpb24oaSxqKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRUb29sdGlwPVwiRHVwbGljYXRlXCIgbWF0VG9vbHRpcFBvc2l0aW9uPVwiYWJvdmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRUb29sdGlwQ2xhc3M9XCJjdXN0b20tdGVzdFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzMzODVfMTA1NzgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNNC4xNjY2MyAxMi40OTkzSDMuMzMzMjlDMi44OTEyNyAxMi40OTkzIDIuNDY3MzQgMTIuMzIzOCAyLjE1NDc4IDEyLjAxMTJDMS44NDIyMiAxMS42OTg2IDEuNjY2NjMgMTEuMjc0NyAxLjY2NjYzIDEwLjgzMjdWMy4zMzI2OEMxLjY2NjYzIDIuODkwNjUgMS44NDIyMiAyLjQ2NjczIDIuMTU0NzggMi4xNTQxN0MyLjQ2NzM0IDEuODQxNjEgMi44OTEyNyAxLjY2NjAyIDMuMzMzMjkgMS42NjYwMkgxMC44MzMzQzExLjI3NTMgMS42NjYwMiAxMS42OTkyIDEuODQxNjEgMTIuMDExOCAyLjE1NDE3QzEyLjMyNDQgMi40NjY3MyAxMi41IDIuODkwNjUgMTIuNSAzLjMzMjY4VjQuMTY2MDJNOS4xNjY2MyA3LjQ5OTM1SDE2LjY2NjZDMTcuNTg3MSA3LjQ5OTM1IDE4LjMzMzMgOC4yNDU1NCAxOC4zMzMzIDkuMTY2MDJWMTYuNjY2QzE4LjMzMzMgMTcuNTg2NSAxNy41ODcxIDE4LjMzMjcgMTYuNjY2NiAxOC4zMzI3SDkuMTY2NjNDOC4yNDYxNSAxOC4zMzI3IDcuNDk5OTYgMTcuNTg2NSA3LjQ5OTk2IDE2LjY2NlY5LjE2NjAyQzcuNDk5OTYgOC4yNDU1NCA4LjI0NjE1IDcuNDk5MzUgOS4xNjY2MyA3LjQ5OTM1WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuc3Ryb2tlXT1cInF1ZXN0aW9uLmdldCgnZGlzYWJsZVJ1bkFJJyk/LnZhbHVlID8gJyNEMEQ1REQnIDogJyM2NjcwODUnXCIgc3Ryb2tlLXdpZHRoPVwiMS42NjY2N1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cImNsaXAwXzMzODVfMTA1NzhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiBmaWxsPVwid2hpdGVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgKGNsaWNrKT1cInF1ZXN0aW9uLmdldCgnZGlzYWJsZVJ1bkFJJyk/LnZhbHVlID8gJycgOiBkZWxldGVRdWVzdGlvbihpLGopXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJtYXJnaW4tbGVmdDogMjRweCAhaW1wb3J0YW50O1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRUb29sdGlwPVwiRGVsZXRlIHF1ZXN0aW9uXCIgbWF0VG9vbHRpcFBvc2l0aW9uPVwiYWJvdmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRUb29sdGlwQ2xhc3M9XCJjdXN0b20tdGVzdFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiIFtuZ2JUb29sdGlwXT1cInF1ZXN0aW9uLmdldCgnZGlzYWJsZVJ1bkFJJyk/LnZhbHVlID8gJ1RoZSBkZWxldGUgb3B0aW9uIGlzIGRpc2FibGVkIGFzIHRoZSBydW5BSSBpcyBlbmFibGVkJyA6ICcnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTIuNSA0Ljk5OTM1SDQuMTY2NjdNNC4xNjY2NyA0Ljk5OTM1SDE3LjVNNC4xNjY2NyA0Ljk5OTM1VjE2LjY2NkM0LjE2NjY3IDE3LjEwOCA0LjM0MjI2IDE3LjUzMiA0LjY1NDgyIDE3Ljg0NDVDNC45NjczOCAxOC4xNTcxIDUuMzkxMzEgMTguMzMyNyA1LjgzMzMzIDE4LjMzMjdIMTQuMTY2N0MxNC42MDg3IDE4LjMzMjcgMTUuMDMyNiAxOC4xNTcxIDE1LjM0NTIgMTcuODQ0NUMxNS42NTc3IDE3LjUzMiAxNS44MzMzIDE3LjEwOCAxNS44MzMzIDE2LjY2NlY0Ljk5OTM1SDQuMTY2NjdaTTYuNjY2NjcgNC45OTkzNVYzLjMzMjY4QzYuNjY2NjcgMi44OTA2NSA2Ljg0MjI2IDIuNDY2NzMgNy4xNTQ4MiAyLjE1NDE3QzcuNDY3MzggMS44NDE2MSA3Ljg5MTMxIDEuNjY2MDIgOC4zMzMzMyAxLjY2NjAySDExLjY2NjdDMTIuMTA4NyAxLjY2NjAyIDEyLjUzMjYgMS44NDE2MSAxMi44NDUyIDIuMTU0MTdDMTMuMTU3NyAyLjQ2NjczIDEzLjMzMzMgMi44OTA2NSAxMy4zMzMzIDMuMzMyNjhWNC45OTkzNU04LjMzMzMzIDkuMTY2MDJWMTQuMTY2TTExLjY2NjcgOS4xNjYwMlYxNC4xNjZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuc3Ryb2tlXT1cInF1ZXN0aW9uLmdldCgnZGlzYWJsZVJ1bkFJJyk/LnZhbHVlID8gJyNEMEQ1REQnIDogJyM2NjcwODUnXCIgc3Ryb2tlLXdpZHRoPVwiMS42NjY2N1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbXgtMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy00IHB4LTBcIiAqbmdJZj1cIkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrbGlzdC1jYXJkIHB5LTcgdGV4dC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAoY2xpY2spPVwiYnVsa1VwbG9hZFF1ZXN0aW9uKClcIiBjbGFzcz1cIm10LTIgYnRuLXNlYyBwb2ludGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNOS45OTk5OSA0LjE2NjAyVjE1LjgzMjdNNC4xNjY2NiA5Ljk5OTM1SDE1LjgzMzNcIiBzdHJva2U9XCIjMzQ0MDU0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5CdWxrIFVwbG9hZCBRdWVzdGlvbnM8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy00IHBsLTVcIiAqbmdJZj1cIkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrbGlzdC1jYXJkIHB5LTcgdGV4dC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAoY2xpY2spPVwiYWRkTmV3UXVlc3Rpb24oc2VjdGlvbkluZGV4KVwiIGNsYXNzPVwibXQtMiBidG4tc2VjIHBvaW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk05Ljk5OTk5IDQuMTY2MDJWMTUuODMyN000LjE2NjY2IDkuOTk5MzVIMTUuODMzM1wiIHN0cm9rZT1cIiMzNDQwNTRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPiBBZGQgTmV3IFF1ZXN0aW9uPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctNCBwbC01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrbGlzdC1jYXJkIHB5LTcgdGV4dC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAoY2xpY2spPVwiYWRkTmV3U2VjdGlvbigpXCIgY2xhc3M9XCJtdC0yIHB4LTAgYnRuLXNlYyBwb2ludGVyXCI+IDxzdmdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTkuOTk5OTkgNC4xNjYwMlYxNS44MzI3TTQuMTY2NjYgOS45OTkzNUgxNS44MzMzXCIgc3Ryb2tlPVwiIzM0NDA1NFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+IEFkZCBOZXcgU2VjdGlvbjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZm9ybT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj4iXX0=
2262
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLWNoZWNrbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hbmFseXNlLXRyYXgvc3JjL2xpYi9jb21wb25lbnRzL2FkZC1jaGVja2xpc3QvYWRkLWNoZWNrbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hbmFseXNlLXRyYXgvc3JjL2xpYi9jb21wb25lbnRzL2FkZC1jaGVja2xpc3QvYWRkLWNoZWNrbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLFNBQVMsRUFBaUMsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZHLE9BQU8sRUFBRSxTQUFTLEVBQWUsVUFBVSxFQUFFLFNBQVMsRUFBc0MsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuSCxPQUFPLEVBQWUsZUFBZSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekYsT0FBTyxFQUFFLEtBQUssRUFBQyxTQUFTLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRWhELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBSXRFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQzFGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUMvRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUMzRixPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDdEYsT0FBTyxpQkFBaUIsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMvRCxPQUFPLEdBQUcs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QkFDeFAsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUMsYUFBYSxFQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsaUJBQWlCLEVBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQzt3QkFDM0gsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxZQUFZLEVBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxFQUFDLFVBQVUsRUFBQyxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUMsVUFBVSxFQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBQyxVQUFVLEVBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFDLFlBQVksRUFBQyxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO3dCQUNsUSxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLGNBQWMsRUFBQyxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLEVBQUMsV0FBVyxFQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsRUFBQyxTQUFTLEVBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FB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QUMsQ0FBQyxFQUFDLFlBQVksRUFBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxVQUFVLEVBQUMsVUFBVSxFQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBQyxZQUFZLEVBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsVUFBVSxFQUFDLFVBQVUsRUFBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLEVBQUMsVUFBVSxFQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsRUFBQyxDQUFBLENBQUMsQ0FBQSxFQUFFLENBQUM7d0JBQ3pXLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUMsY0FBYyxFQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLFlBQVksRUFBQyxXQUFXLEVBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsU0FBUyxFQUFDLFNBQVMsRUFBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUMsQ0FBQSxDQUFDLENBQUEsRUFBRSxDQUFDO3dCQUNuTyxLQUFLLEVBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFB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QUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLGVBQWUsRUFBQyxDQUFBLENBQUMsQ0FBQSxFQUFFLENBQUM7d0JBQ2hKLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsSUFBSSxhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQUMsWUFBWSxFQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLFVBQVUsRUFBQyxVQUFVLEVBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsUUFBUSxFQUFDLFlBQVksRUFBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxVQUFVLEVBQUMsVUFBVSxFQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsRUFBQyxVQUFVLEVBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxFQUFDLENBQUEsQ0FBQyxDQUFBLEVBQUUsQ0FBQzt3QkFDeFksR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBQyxjQUFjLEVBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsWUFBWSxFQUFDLFdBQVcsRUFBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9B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Q29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBPbkRlc3Ryb3ksIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCwgRm9ybUNvbnRyb2wsIFZhbGlkYXRvcnMsIEZvcm1BcnJheSwgRm9ybUJ1aWxkZXIsIEZvcm0sIEFic3RyYWN0Q29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgR2xvYmFsU3RhdGVTZXJ2aWNlLCBQYWdlSW5mb1NlcnZpY2UgfSBmcm9tICd0YW5nby1hcHAtdWktZ2xvYmFsJztcclxuaW1wb3J0IHsgQ2RrRHJhZ0Ryb3AsIG1vdmVJdGVtSW5BcnJheSwgdHJhbnNmZXJBcnJheUl0ZW0gfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcclxuaW1wb3J0IHsgdGltZXIsdGFrZVVudGlsLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IE5nYk1vZGFsIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xyXG5pbXBvcnQgeyBUcmF4cG9wdXBDb21wb25lbnQgfSBmcm9tICcuLi90cmF4cG9wdXAvdHJheHBvcHVwLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IFRvYXN0U2VydmljZSB9IGZyb20gJ3RhbmdvLWFwcC11aS1zaGFyZWQnO1xyXG5pbXBvcnQgeyBUcmF4U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RyYXguc2VydmljZSc7XHJcbmltcG9ydCB7IG5vV2hpdGVzcGFjZVZhbGlkYXRvciB9IGZyb20gJy4uL2NyZWF0ZS10YXNrL3ZhbGlkYXRvcnMvd2hpdGVzcGFjZS12YWxpZGF0b3InO1xyXG5pbXBvcnQgeyB1bmlxdWVTdHJpbmdWYWxpZGF0b3IgfSBmcm9tICcuLi9jcmVhdGUtdGFzay92YWxpZGF0b3JzL3VuaXF1ZS1zdHJpbmctdmFsaWRhdG9yJztcclxuaW1wb3J0IHsgcmFuZ2VWYWxpZGF0b3IgfSBmcm9tICcuLi9jcmVhdGUtdGFzay92YWxpZGF0b3JzL2FzY2VuZGluZy12YWxpZGF0b3InO1xyXG5pbXBvcnQgeyBUcmF4UnVuQUlQb3B1cENvbXBvbmVudCB9IGZyb20gJy4uL3RyYXgtcnVuLWFpLXBvcHVwL3RyYXgtcnVuLWFpLXBvcHVwLmNvbXBvbmVudCc7XHJcbmltcG9ydCBkYXlqcyBmcm9tICdkYXlqcyc7XHJcbmltcG9ydCB7IENoZWNrbGlzdFBvcHVwQ29tcG9uZW50IH0gZnJvbSAnLi9jaGVja2xpc3QtcG9wdXAvY2hlY2tsaXN0LXBvcHVwLmNvbXBvbmVudCc7XHJcbmltcG9ydCBjdXN0b21QYXJzZUZvcm1hdCBmcm9tICdkYXlqcy9wbHVnaW4vY3VzdG9tUGFyc2VGb3JtYXQnO1xyXG5pbXBvcnQgdXRjIGZyb20gJ2RheWpzL3BsdWdpbi91dGMuanMnO1xyXG5pbXBvcnQgdGltZVpvbmUgZnJvbSAnZGF5anMvcGx1Z2luL3RpbWV6b25lLmpzJztcclxuZGF5anMuZXh0ZW5kKHRpbWVab25lKTtcclxuZGF5anMuZXh0ZW5kKHV0Yyk7XHJcbmRheWpzLmV4dGVuZChjdXN0b21QYXJzZUZvcm1hdCk7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItYWRkLWNoZWNrbGlzdCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2FkZC1jaGVja2xpc3QuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9hZGQtY2hlY2tsaXN0LmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQWRkQ2hlY2tsaXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LE9uRGVzdHJveSB7XHJcbiAgQFZpZXdDaGlsZCgnZm9ybVJlZicpIGZvcm1SZWY6IEVsZW1lbnRSZWY7XHJcblxyXG4gIENoZWNrbGlzdEZvcm0hOiBGb3JtR3JvdXA7XHJcbiAgc2hvdzogbnVtYmVyID0gMDtcclxuICBzZWN0aW9uSW5kZXg6IG51bWJlciA9IDA7XHJcbiAgZ2V0b2JqZWN0OiBhbnk7XHJcbiAgZWRpdHZhbHVlOiBhbnk7XHJcbiAgbm9zZWN0aW9uOmJvb2xlYW4gPSBmYWxzZTtcclxuICBzaG93dmFsdWU6IHN0cmluZztcclxuICByZWZJbWdRSWR4OiBudW1iZXIgPSAwO1xyXG4gIGNoZWNrbGlzdExvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwb3B1cENvdW50Om51bWJlciA9IDA7XHJcbiAgY2xpZW50SWQ6YW55O1xyXG4gIGRlbGV0ZWRMaXN0OmFueSA9IFtdO1xyXG4gIGVudmlyb25tZW50OmFueTtcclxuICB1c2VyVHlwZTogYW55O1xyXG4gIG1heFNlY3Rpb25OdW1iZXI6IGFueTtcclxuICBkcm9wZG93blZhbHVlOmFueSA9WzAsMSwyLDMsNCw1LDYsNyw4LDksMTBdO1xyXG4gIGRheWpzID0gZGF5anM7XHJcbiAgcHJpdmF0ZSBkZXRhY2ggPSBuZXcgU3ViamVjdCgpO1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcGFnZUluZm86UGFnZUluZm9TZXJ2aWNlLHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLHByaXZhdGUgY2hhbmdlZGV0ZWN0b3I6Q2hhbmdlRGV0ZWN0b3JSZWYscHJpdmF0ZSBkaWFsb2c6TmdiTW9kYWwscHJpdmF0ZSByb3V0ZTpBY3RpdmF0ZWRSb3V0ZSxwcml2YXRlIHRvYXN0OlRvYXN0U2VydmljZSxwcml2YXRlIHJvdXRlcjpSb3V0ZXIscHJpdmF0ZSBzb3BTZXJ2aWNlOlRyYXhTZXJ2aWNlLHByaXZhdGUgZ3M6R2xvYmFsU3RhdGVTZXJ2aWNlKSB7XHJcbiAgfVxyXG4gIFxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5pbml0Q2hlY2tsaXN0KCk7XHJcbiAgICB0aGlzLnNldFBhZ2VEYXRhKCk7XHJcbiAgICBsZXQgc3RvcmFnZURldGFpbHMgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdoZWFkZXItZmlsdGVycycpIHx8ICd7fScpO1xyXG5cclxuICAgIGxldCB1c2VySW5mbyA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3VzZXItaW5mbycpIHx8ICd7fScpXHJcbiAgICBpZih1c2VySW5mby51c2VyVHlwZSl7XHJcbiAgICAgIHRoaXMudXNlclR5cGUgPSB1c2VySW5mby51c2VyVHlwZTsgXHJcbiAgICB9IFxyXG5cclxuICAgIGlmKCFzdG9yYWdlRGV0YWlscz8uY2xpZW50KSB7XHJcbiAgICAgIHN0b3JhZ2VEZXRhaWxzID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnY2xpZW50LWRldGFpbHMnKSB8fCAne30nKTtcclxuICAgICAgc3RvcmFnZURldGFpbHMuY2xpZW50ID0gc3RvcmFnZURldGFpbHMuY2xpZW50SWQ7XHJcbiAgICB9XHJcbiAgICBpZihzdG9yYWdlRGV0YWlscz8uY2xpZW50KSB7XHJcbiAgICAgIHRoaXMuY2xpZW50SWQgPSBzdG9yYWdlRGV0YWlscy5jbGllbnQ7XHJcbiAgICAgIHRoaXMucm91dGUucXVlcnlQYXJhbXMuc3Vic2NyaWJlKChwYXJhbXM6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMuZWRpdHZhbHVlID0gcGFyYW1zLmNoZWNrbGlzdElkO1xyXG4gICAgICAgIGlmIChwYXJhbXMuY2hlY2tsaXN0SWQpIHtcclxuICAgICAgICAgIHRoaXMuc2hvd3ZhbHVlID0gJ2VkaXQnO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAvLyBPcGVuIFBvcHVwIGZvciBHZXQgQ2hlY2tsaXN0IE5hbWUgLy9cclxuICAgICAgICAgIFxyXG4gICAgICAgICAgdGhpcy5zaG93dmFsdWUgPSAnYWRkJ1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy5zaG93dmFsdWUgPT0gJ2VkaXQnIHx8IHBhcmFtcy50eXBlKSB7XHJcbiAgICAgICAgICBsZXQgb2JqOiBhbnkgPSB7fTtcclxuICAgICAgICAgIGlmIChwYXJhbXMuY2hlY2tsaXN0SWQpIHtcclxuICAgICAgICAgICAgb2JqLmNoZWNrTGlzdElkID0gcGFyYW1zLmNoZWNrbGlzdElkXHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBvYmoudHlwZSA9IHBhcmFtcy50eXBlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgb2JqLmNsaWVudElkID0gdGhpcy5jbGllbnRJZDtcclxuICAgICAgICAgIHRoaXMuY2hlY2tsaXN0TG9hZGluZyA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLnNvcFNlcnZpY2UuZ2V0Y29uZmlnKG9iaikucGlwZSh0YWtlVW50aWwodGhpcy5kZXRhY2gpKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgIGlmKHJlcykge1xyXG4gICAgICAgICAgICAgICAgaWYocmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0b2JqZWN0ID0gcmVzLmRhdGEuY2hlY2tMaXN0RGV0YWlscztcclxuICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtQ2hlY2tsaXN0UXVlc3Rpb25zKCk7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmNoZWNrbGlzdExvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmNoZWNrbGlzdExvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0sKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuY2hlY2tsaXN0TG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5pbml0Q2hlY2tsaXN0KCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIHRoaXMuZ3MuZW52aXJvbm1lbnQucGlwZSh0YWtlVW50aWwodGhpcy5kZXRhY2gpKS5zdWJzY3JpYmUoKGVudikgPT4ge1xyXG4gICAgICBpZiAoZW52KSB7XHJcbiAgICAgICAgdGhpcy5lbnZpcm9ubWVudCA9IGVudjtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGV0YWNoLm5leHQodHJ1ZSk7XHJcbiAgICB0aGlzLmRldGFjaC5jb21wbGV0ZSgpO1xyXG4gIH1cclxuXHJcbiAgc2V0UGFnZURhdGEoKSB7XHJcbiAgICB0aGlzLnBhZ2VJbmZvLnNldFRpdGxlKFwiTWFuYWdlIENoZWNrbGlzdFwiKTtcclxuICAgIHRoaXMucGFnZUluZm8uc2V0RGVzY3JpcHRpb24oXCJBdXRvbWF0ZSBvciBjcmVhdGUgY2hlY2tsaXN0cyB0byBpbXByb3ZlIG9wZXJhdGlvbmFsIGVmZmljaWVuY3lcIik7XHJcbiAgICB0aGlzLnBhZ2VJbmZvLnNldEJyZWFkY3J1bWJzKFtcclxuICAgICAgeyB0aXRsZTogXCJUYW5nbyBUcmF4XCIsIHBhdGg6IFwiL21hbmFnZS90cmF4L2Rhc2hib2FyZFwiLCBpc0FjdGl2ZTogZmFsc2UsIGlzU2VwYXJhdG9yOiBmYWxzZSB9LFxyXG4gICAgICB7IHRpdGxlOiBcIlRhbmdvIFRyYXhcIiwgcGF0aDogXCIvbWFuYWdlL3RyYXgvZGFzaGJvYXJkXCIsIGlzQWN0aXZlOiBmYWxzZSwgaXNTZXBhcmF0b3I6IHRydWUgfVxyXG4gICAgXSk7XHJcbiAgfVxyXG4gIFxyXG4gIHVwZGF0ZUlucHV0VmFsdWUoc2VjdGlvbkluZGV4OiBudW1iZXIsc2VjdGlvbk5hbWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgaWYgKHNlY3Rpb25OYW1lLnRyaW0oKSA9PT0gJycpIHtcclxuICAgICAgdGhpcy5nZXRTZWN0aW9uRm9ybUNvbnRyb2woc2VjdGlvbkluZGV4LCduYW1lJyk/LnNldFZhbHVlKGBTZWN0aW9uICR7c2VjdGlvbkluZGV4KzF9YCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHNjcm9sbFRvUXVlc3Rpb24oc2VjdGlvbkluZGV4OiBudW1iZXIsIHF1ZXN0aW9uSW5kZXg6IG51bWJlcik6IHZvaWQge1xyXG4gICAgY29uc3QgcXVlc3Rpb25JZCA9IGBxLSR7c2VjdGlvbkluZGV4fS0ke3F1ZXN0aW9uSW5kZXh9YDtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICBjb25zdCBxdWVzdGlvbkVsZW1lbnQgPSB0aGlzLmZvcm1SZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKGAjJHtxdWVzdGlvbklkfWApO1xyXG4gIFxyXG4gICAgICBpZiAocXVlc3Rpb25FbGVtZW50KSB7XHJcbiAgICAgICAgcXVlc3Rpb25FbGVtZW50LnNjcm9sbEludG9WaWV3KHsgYmxvY2s6ICdjZW50ZXInLCBiZWhhdmlvcjogJ3Ntb290aCcgfSk7XHJcbiAgICAgIH1cclxuICAgIH0sIDEwMCk7XHJcbiAgfVxyXG5cclxuICBmb3JtQ2hlY2tsaXN0UXVlc3Rpb25zKCkgeyBcclxuICAgIGxldCBzZWN0aW9uc2FycmF5OiBhbnkgPSBbXTtcclxuICAgIGxldCBzZWN0aW9uczogYW55W10gPSBbXTtcclxuICAgIHNlY3Rpb25zYXJyYXkgPSB0aGlzLmdldG9iamVjdC5zZWN0aW9uc1xyXG5cclxuICAgIHRoaXMubWF4U2VjdGlvbk51bWJlciA9IE1hdGgubWF4KC4uLnNlY3Rpb25zYXJyYXkubWFwKChlbGU6YW55KSA9PiBlbGUuc2VjdGlvbk51bWJlciApKTtcclxuICAgIC8vIGNvbnNvbGUubG9nKFwidGhpcy5tYXhTZWN0aW9uTnVtYmVyIDE9PlwiLCB0aGlzLm1heFNlY3Rpb25OdW1iZXIpXHJcbiAgICBzZWN0aW9uc2FycmF5LmZvckVhY2goKGk6IGFueSxzZWN0aW9uSW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgICBsZXQgcXVlc3Rpb25zOiBhbnlbXSA9IFtdO1xyXG4gICAgICBsZXQgc2VjdGlvbk51bWJlciA9IGk/LnNlY3Rpb25OdW1iZXIgfHwgKHNlY3Rpb25JbmRleCArIDEpXHJcbiAgICAgIGkucXVlc3Rpb25zLmZvckVhY2goKGo6IGFueSxxdWVzdGlvbkluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgICBsZXQgYW5zd2VyOiBhbnlbXSA9IFtdO1xyXG4gICAgICAgIGxldCBydW5BSTphbnlbXSA9IGouYW5zd2Vycy5maWx0ZXIoKGVsZTphbnkpID0+IGVsZS5ydW5BSSk7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCJydW5BSSA9PlwiLCBydW5BSSlcclxuICAgICAgICBqLmFuc3dlcnM/LmZvckVhY2goKGs6IGFueSxhbnN3ZXJJbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgICAvLyBpZih0eXBlb2Ygaz8ucmVmZXJlbmNlSW1hZ2UgPT0nc3RyaW5nJyAmJiBrPy5yZWZlcmVuY2VJbWFnZSAhPSAnJyAmJiBrLm11bHRpUmVmZXJlbmNlSW1hZ2UubGVuZ3RoKSB7XHJcbiAgICAgICAgICAvLyAgIGsubXVsdGlSZWZlcmVuY2VJbWFnZSA9IFt7aW1hZ2VVUkw6az8ucmVmZXJlbmNlSW1hZ2UscnVuQUk6ZmFsc2V9XVxyXG4gICAgICAgICAgLy8gfVxyXG4gICAgICAgICAgYW5zd2VyLnB1c2goXHJcbiAgICAgICAgICAgIHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICAgICAgICAgIC4uLighWydpbWFnZScsJ2Rlc2NyaXB0aXZlSW1hZ2UnLCdtdWx0aXBsZUltYWdlJywnbGluZWFyc2NhbGUnLCd0aW1lJywnZGF0ZScsJ2ltYWdlL3ZpZGVvJ10uaW5jbHVkZXMoaj8uYW5zd2VyVHlwZSkgJiYgaj8uYW5zd2VyVHlwZSAhPSAndmlkZW8nPyB7ICdhbnN3ZXInOiB0aGlzLmZiLmNvbnRyb2woe3ZhbHVlOms/LmFuc3dlcixkaXNhYmxlZDogKHRoaXMudXNlclR5cGUgPT09ICdjbGllbnQnID8gcnVuQUkubGVuZ3RoIDogZmFsc2UpIH0sIFtWYWxpZGF0b3JzLnJlcXVpcmVkLG5vV2hpdGVzcGFjZVZhbGlkYXRvcigpXSkgfSA6IHt9KSxcclxuICAgICAgICAgICAgICAnYW5zd2Vyb3B0aW9uTnVtYmVyJzogdGhpcy5mYi5jb250cm9sKGFuc3dlckluZGV4KSxcclxuICAgICAgICAgICAgICAuLi4oIVsnaW1hZ2UnLCdkZXNjcmlwdGl2ZUltYWdlJywnbXVsdGlwbGVJbWFnZScsJ2xpbmVhcnNjYWxlJ10uaW5jbHVkZXMoaj8uYW5zd2VyVHlwZSkgJiYgaj8uYW5zd2VyVHlwZSAhPSAndmlkZW8nPyB7ICdzb3BGbGFnJzogdGhpcy5mYi5jb250cm9sKGs/LnNvcEZsYWcgPyBrPy5zb3BGbGFnIDogZmFsc2UsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSkgfSA6IHt9KSxcclxuICAgICAgICAgICAgICAuLi4oIVsnaW1hZ2UnLCdkZXNjcmlwdGl2ZUltYWdlJywnbXVsdGlwbGVJbWFnZScsJ2xpbmVhcnNjYWxlJ10uaW5jbHVkZXMoaj8uYW5zd2VyVHlwZSkgJiYgaj8uYW5zd2VyVHlwZSAhPSAndmlkZW8nPyB7ICd2YWxpZGF0aW9uJzogdGhpcy5mYi5jb250cm9sKHt2YWx1ZTprPy52YWxpZGF0aW9uLGRpc2FibGVkOiAodGhpcy51c2VyVHlwZSA9PT0gJ2NsaWVudCcgPyBydW5BSS5sZW5ndGggOiBmYWxzZSkgfSwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSB9IDoge30pLFxyXG4gICAgICAgICAgICAgIC4uLighWydpbWFnZScsJ2Rlc2NyaXB0aXZlSW1hZ2UnLCdtdWx0aXBsZUltYWdlJywnbGluZWFyc2NhbGUnXS5pbmNsdWRlcyhqPy5hbnN3ZXJUeXBlKSAmJiBqPy5hbnN3ZXJUeXBlICE9ICd2aWRlbyc/IHsgJ3ZhbGlkYXRpb25UeXBlJzogdGhpcy5mYi5jb250cm9sKHt2YWx1ZTprPy52YWxpZGF0aW9uVHlwZSxkaXNhYmxlZDogKHRoaXMudXNlclR5cGUgPT09ICdjbGllbnQnID8gcnVuQUkubGVuZ3RoIDogZmFsc2UpIH0sIHRoaXMuYWxsb3dlZFZhbHVlc1ZhbGlkYXRvcihbXCJDYXB0dXJlIEltYWdlXCIsIFwiRGVzY3JpcHRpdmUgQW5zd2VyXCIsIFwiQ2FwdHVyZSBWaWRlb1wiXSkpIH0gOiB7fSksXHJcbiAgICAgICAgICAgICAgLi4uKFsnaW1hZ2UnLCdkZXNjcmlwdGl2ZUltYWdlJywnbXVsdGlwbGVJbWFnZSddLmluY2x1ZGVzKGo/LmFuc3dlclR5cGUpID8geyBcIm11bHRpUmVmZXJlbmNlSW1hZ2VcIjogdGhpcy5mYi5hcnJheShrPy5tdWx0aVJlZmVyZW5jZUltYWdlIHx8IFtdICkgfSA6IHt9KSxcclxuICAgICAgICAgICAgICAuLi4oKFsnaW1hZ2UnLCdkZXNjcmlwdGl2ZUltYWdlJywnbXVsdGlwbGVJbWFnZScsJ2ltYWdlL3ZpZGVvJ10uaW5jbHVkZXMoaj8uYW5zd2VyVHlwZSkgfHwgaj8uYW5zd2VyVHlwZSA9PSAndmlkZW8nKSA/IHsgJ2FsbG93VXBsb2FkZnJvbUdhbGxlcnknOiB0aGlzLmZiLmNvbnRyb2woe3ZhbHVlOmo/LmFsbG93VXBsb2FkZnJvbUdhbGxlcnkgPyB0cnVlIDogZmFsc2UsZGlzYWJsZWQ6ISFydW5BSS5sZW5ndGh9KSB9IDoge30pLFxyXG4gICAgICAgICAgICAgIC4uLihbJ2ltYWdlJywnZGVzY3JpcHRpdmVJbWFnZScsJ211bHRpcGxlSW1hZ2UnXS5pbmNsdWRlcyhqPy5hbnN3ZXJUeXBlKSA/IHsgJ3J1bkFJJzogdGhpcy5mYi5jb250cm9sKHt2YWx1ZTooaz8ucnVuQUkpID8gaz8ucnVuQUkgOiBmYWxzZSxkaXNhYmxlZDogKHRoaXMudXNlclR5cGUgPT09ICdjbGllbnQnID8gcnVuQUkubGVuZ3RoIDogZmFsc2UpIH0pIH0gOiB7fSksXHJcbiAgICAgICAgICAgICAgLi4uKFsnbXVsdGlwbGVjaG9pY2VzaW5nbGUnLCd5ZXMvbm8nXS5pbmNsdWRlcyhqPy5hbnN3ZXJUeXBlKSA/IHsgJ3Nob3dMaW5rZWQnOiB0aGlzLmZiLmNvbnRyb2woKGs/LnNob3dMaW5rZWQpID8gaz8uc2hvd0xpbmtlZCA6IGZhbHNlKSB9IDoge30pLFxyXG4gICAgICAgICAgICAgIC4uLihbJ211bHRpcGxlY2hvaWNlc2luZ2xlJywneWVzL25vJ10uaW5jbHVkZXMoaj8uYW5zd2VyVHlwZSkgPyB7ICdsaW5rZWRRdWVzdGlvbic6IHRoaXMuZmIuY29udHJvbCgoaz8ubGlua2VkUXVlc3Rpb24pID8gaz8ubGlua2VkUXVlc3Rpb24gOiAwKSB9IDoge30pLFxyXG4gICAgICAgICAgICAgICAuLi4oIVsnZGVzY3JpcHRpdmUnLCdpbWFnZScsICdkZXNjcmlwdGl2ZUltYWdlJywnbXVsdGlwbGVJbWFnZScsJ2RhdGUnXS5pbmNsdWRlcyhqPy5hbnN3ZXJUeXBlKSA/IHsgXCJtdWx0aVJlZmVyZW5jZUltYWdlXCI6IHRoaXMuZmIuYXJyYXkoaz8ubXVsdGlSZWZlcmVuY2VJbWFnZSB8fCBbXSApIH0gOiB7fSksXHJcbiAgICAgICAgICAgICAgLi4uKCghWydkZXNjcmlwdGl2ZScsJ2ltYWdlJywgJ2Rlc2NyaXB0aXZlSW1hZ2UnLCd2aWRlbycsJ211bHRpcGxlSW1hZ2UnLCdkYXRlJywnaW1hZ2UvdmlkZW8nXS5pbmNsdWRlcyhqPy5hbnN3ZXJUeXBlKSkgPyB7ICdhbGxvd1VwbG9hZGZyb21HYWxsZXJ5JzogdGhpcy5mYi5jb250cm9sKHt2YWx1ZTprPy5hbGxvd1VwbG9hZGZyb21HYWxsZXJ5ID8gdHJ1ZSA6IGZhbHNlLGRpc2FibGVkOiEhcnVuQUkubGVuZ3RofSkgfSA6IHt9KSxcclxuICAgICAgICAgICAgICAuLi4oIVsnZGVzY3JpcHRpdmUnLCdpbWFnZScsICdkZXNjcmlwdGl2ZUltYWdlJywnbXVsdGlwbGVJbWFnZScsJ2RhdGUnLCdpbWFnZS92aWRlbyddLmluY2x1ZGVzKGo/LmFuc3dlclR5cGUpID8geyAncnVuQUknOiB0aGlzLmZiLmNvbnRyb2woe3ZhbHVlOihrPy5ydW5BSSkgPyBrPy5ydW5BSSA6IGZhbHNlLGRpc2FibGVkOiAodGhpcy51c2VyVHlwZSA9PT0gJ2NsaWVudCcgPyBydW5BSS5sZW5ndGggOiBmYWxzZSkgfSkgfSA6IHt9KSxcclxuICAgICAgICAgICAgICAuLi4oIVsnZGF0ZScsJ2xpbmVhcnNjYWxlJywndGltZSddLmluY2x1ZGVzKGo/LmFuc3dlclR5cGUpID8geyAnZGVzY3JpcHRpdmV0eXBlJzp0aGlzLmZiLmNvbnRyb2woay5kZXNjcmlwdGl2ZXR5cGUpIH0gOiB7fSksXHJcbiAgICAgICAgICAgICAgLi4uKFsnbGluZWFyc2NhbGUnXS5pbmNsdWRlcyhqPy5hbnN3ZXJUeXBlKSA/IHsgJ3JhbmdlU3RhcnQnOnRoaXMuZmIuY29udHJvbChrLnJhbmdlU3RhcnQpLCdyYW5nZUVuZCc6dGhpcy5mYi5jb250cm9sKGsucmFuZ2VFbmQpLCdtaW5WYWx1ZSc6dGhpcy5mYi5jb250cm9sKGsubWluVmFsdWUpLCdtYXhWYWx1ZSc6dGhpcy5mYi5jb250cm9sKGsubWF4VmFsdWUpLCdsaW5lYXJUeXBlJzp0aGlzLmZiLmNvbnRyb2woay5saW5lYXJUeXBlKSB9IDoge30pLFxyXG4gICAgICAgICAgICAgIC4uLihbJ2RhdGUnXS5pbmNsdWRlcyhqPy5hbnN3ZXJUeXBlKSA/IHsgJ2hpc3RvcmljRGF0ZSc6dGhpcy5mYi5jb250cm9sKGsuaGlzdG9yaWNEYXRlKSwnc3RhcnREYXRlJzp0aGlzLmZiLmNvbnRyb2woay5zdGFydERhdGUpLCdlbmREYXRlJzp0aGlzLmZiLmNvbnRyb2woay5lbmREYXRlKX0gOiB7fSksXHJcbiAgICAgICAgICAgICAgcmVmZXJlbmNlSW1hZ2U6az8ucmVmZXJlbmNlSW1hZ2UgPz8gJycsXHJcbiAgICAgICAgICAgICAgLi4uKFsnaW1hZ2UvdmlkZW8nXS5pbmNsdWRlcyhqPy5hbnN3ZXJUeXBlKSAmJiB7ICdsaW1pdCc6dGhpcy5mYi5jb250cm9sKGsubGltaXQpLCdpbWFnZUxpbWl0Jzp0aGlzLmZiLmNvbnRyb2woay5pbWFnZUxpbWl0KSwndmlkZW9MaW1pdCc6dGhpcy5mYi5jb250cm9sKGsudmlkZW9MaW1pdCl9KSxcclxuICAgICAgICAgICAgICAuLi4oWydpbWFnZScsJ2xpbmVhcnNjYWxlJywnZGF0ZSddLmluY2x1ZGVzKGo/LmFuc3dlclR5cGUpICYmIHsgJ21hdGNoZWRDb3VudCc6dGhpcy5mYi5jb250cm9sKHBhcnNlSW50KGsubWF0Y2hlZENvdW50KSksJ25vdE1hdGNoZWRDb3VudCc6dGhpcy5mYi5jb250cm9sKHBhcnNlSW50KGsubm90TWF0Y2hlZENvdW50KSl9KSxcclxuICAgICAgICAgICAgICAuLi4oWydtdWx0aXBsZWNob2ljZXNpbmdsZScsJ3llcy9ubycsJ211bHRpcGxlY2hvaWNlbXVsdGlwbGUnXS5pbmNsdWRlcyhqPy5hbnN3ZXJUeXBlKSA/IHsgJ2NvbXBsaWFuY2VTY29yZSc6IHRoaXMuZmIuY29udHJvbChwYXJzZUludChrPy5jb21wbGlhbmNlU2NvcmUpKSB9IDoge30pLFxyXG4gICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICBcInJ1bkFJRmVhdHVyZXNcIjp0aGlzLmZiLmFycmF5KGs/LnJ1bkFJRmVhdHVyZXMgfHwgW10pLFxyXG4gICAgICAgICAgICAncnVuQUlEZXNjcmlwdGlvbic6IHRoaXMuZmIuY29udHJvbChrPy5ydW5BSURlc2NyaXB0aW9uIHx8ICcnKSxcclxuICAgICAgICAgICAgLi4uKFsnZGF0ZSddLmluY2x1ZGVzKGo/LmFuc3dlclR5cGUpICYmIHtcclxuICAgICAgICAgICAgXCJxblN0YXJ0RGF0ZVwiOiBbe1xyXG4gICAgICAgICAgICAgIFwic3RhcnREYXRlXCI6IHRoaXMuZGF5anMoay5zdGFydERhdGUsJ0RELU1NLVlZWVknKSxcclxuICAgICAgICAgICAgICBcImVuZERhdGVcIjogdGhpcy5kYXlqcyhrLnN0YXJ0RGF0ZSwnREQtTU0tWVlZWScpXHJcbiAgICAgICAgICAgIH1dLFxyXG4gICAgICAgICAgICBcInFuRW5kRGF0ZVwiOiBbe1xyXG4gICAgICAgICAgICAgIFwic3RhcnREYXRlXCI6IHRoaXMuZGF5anMoay5lbmREYXRlLCdERC1NTS1ZWVlZJyksXHJcbiAgICAgICAgICAgICAgXCJlbmREYXRlXCI6IHRoaXMuZGF5anMoay5lbmREYXRlLCdERC1NTS1ZWVlZJylcclxuICAgICAgICAgICAgfV1cclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgfSwgKFsnbGluZWFyc2NhbGUnXS5pbmNsdWRlcyhqPy5hbnN3ZXJUeXBlKSA/IHsgdmFsaWRhdG9yczogW3JhbmdlVmFsaWRhdG9yKCldIH0gOiB7fSkpKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICAvLyBpZih0eXBlb2Ygai5xdWVzdGlvblJlZmVyZW5jZUltYWdlID09ICdzdHJpbmcnICYmIGoucXVlc3Rpb25SZWZlcmVuY2VJbWFnZSAhPSAnJykge1xyXG4gICAgICAgIC8vICAgai5tdWx0aVF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UgPSBbe2ltYWdlVVJMOmoucXVlc3Rpb25SZWZlcmVuY2VJbWFnZSxydW5BSTpmYWxzZX1dO1xyXG4gICAgICAgIC8vIH1cclxuICAgICAgICBxdWVzdGlvbnMucHVzaChcclxuICAgICAgICAgIHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICAgICAgICBcInFub1wiOiB0aGlzLmZiLmNvbnRyb2wocXVlc3Rpb25JbmRleCsxKSxcclxuICAgICAgICAgICAgJ3FuYW1lJzogdGhpcy5mYi5jb250cm9sKHt2YWx1ZTpqPy5xbmFtZSxkaXNhYmxlZDpydW5BSS5sZW5ndGh9LCBbVmFsaWRhdG9ycy5yZXF1aXJlZCxub1doaXRlc3BhY2VWYWxpZGF0b3IoKV0pLFxyXG4gICAgICAgICAgICBcIm9sZFFuYW1lXCI6dGhpcy5mYi5jb250cm9sKGo/LnFuYW1lLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCxub1doaXRlc3BhY2VWYWxpZGF0b3IoKV0pLFxyXG4gICAgICAgICAgICAnYW5zd2VyVHlwZSc6IHRoaXMuZmIuY29udHJvbCh7dmFsdWU6aj8uYW5zd2VyVHlwZSxkaXNhYmxlZDpydW5BSS5sZW5ndGh9LCB0aGlzLmFsbG93ZWRWYWx1ZXNWYWxpZGF0b3IoW1wiZGVzY3JpcHRpdmVcIiwgXCJ5ZXMvbm9cIiwgXCJtdWx0aXBsZWNob2ljZXNpbmdsZVwiLCBcIm11bHRpcGxlY2hvaWNlbXVsdGlwbGVcIiwgXCJpbWFnZVwiLCBcInZpZGVvXCIsXCJkZXNjcmlwdGl2ZUltYWdlXCIsXCJtdWx0aXBsZUltYWdlXCIsJ2RhdGUnLCdsaW5lYXJzY2FsZScsJ3RpbWUnLCdpbWFnZS92aWRlbycsJ2Ryb3Bkb3duJ10pKSxcclxuICAgICAgICAgICAgLi4uKCFbJ2Rlc2NyaXB0aXZlJ10uaW5jbHVkZXMoaj8uYW5zd2VyVHlwZSkpID8geyAnYW5zd2Vycyc6IChbJ2ltYWdlJywnZGVzY3JpcHRpdmVJbWFnZScsICd2aWRlbycsJ211bHRpcGxlSW1hZ2UnLCd0aW1lJywnbGluZWFyc2NhbGUnLCdkYXRlJywnaW1hZ2UvdmlkZW8nXS5pbmNsdWRlcyhqPy5hbnN3ZXJUeXBlKSkgPyBhbnN3ZXJbMF0gOiB0aGlzLmZiLmFycmF5KGFuc3dlcixbdW5pcXVlU3RyaW5nVmFsaWRhdG9yKCldKSB9IDoge30sXHJcbiAgICAgICAgICAgICdydW5BSSc6IHRoaXMuZmIuY29udHJvbCh7dmFsdWU6KFsnaW1hZ2UnLCdkZXNjcmlwdGl2ZUltYWdlJyxcIm11bHRpcGxlSW1hZ2VcIl0uaW5jbHVkZXMoaj8uYW5zd2VyVHlwZSkpID8gKGo/LnJ1bkFJKSA/IHRydWUgOiBmYWxzZSA6IGZhbHNlLGRpc2FibGVkOiAhIXJ1bkFJLmxlbmd0aH0sIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXHJcbiAgICAgICAgICAgICdydW5BSURlZmF1bHQnOnRoaXMuZmIuY29udHJvbChqPy5ydW5BSSB8fCBmYWxzZSksXHJcbiAgICAgICAgICAgICdhbGxvd1VwbG9hZGZyb21HYWxsZXJ5JzogdGhpcy5mYi5jb250cm9sKHt2YWx1ZTooWydpbWFnZScsJ2Rlc2NyaXB0aXZlSW1hZ2UnLCd2aWRlbycsJ211bHRpcGxlSW1hZ2UnLCdpbWFnZS92aWRlbyddLmluY2x1ZGVzKGo/LmFuc3dlclR5cGUpKSA/IChqPy5hbGxvd1VwbG9hZGZyb21HYWxsZXJ5KSA/IHRydWUgOiBmYWxzZSA6IGZhbHNlLGRpc2FibGVkOiEhcnVuQUkubGVuZ3RofSwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcclxuICAgICAgICAgICAgLy8gJ3J1bkFJRGVzY3JpcHRpb24nOiB0aGlzLmZiLmNvbnRyb2woKFsnaW1hZ2UnLCdkZXNjcmlwdGl2ZUltYWdlJywnbXVsdGlwbGVJbWFnZSddLmluY2x1ZGVzKGo/LmFuc3dlclR5cGUpKSA/IChqPy5ydW5BSURlc2NyaXB0aW9uKSA6ICcnKSxcclxuICAgICAgICAgICAgJ2xpbmtUeXBlJzogdGhpcy5mYi5jb250cm9sKGo/LmxpbmtUeXBlKSxcclxuICAgICAgICAgICAgXCJtdWx0aVF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2VcIjp0aGlzLmZiLmFycmF5KGo/Lm11bHRpUXVlc3Rpb25SZWZlcmVuY2VJbWFnZSB8fCBbXSksXHJcbiAgICAgICAgICAgIC8vIFwibXVsdGlRdWVzdGlvblJlZmVyZW5jZUltYWdlXCI6IFtbaj8ucXVlc3Rpb25SZWZlcmVuY2VJbWFnZSA/PyAnJ11dLFxyXG4gICAgICAgICAgICAnZGVzY3JpcHRpdmV0eXBlJzogdGhpcy5mYi5jb250cm9sKHsgdmFsdWU6IGo/LmRlc2NyaXB0aXZldHlwZSxkaXNhYmxlZDohIXJ1bkFJLmxlbmd0aH0pLFxyXG4gICAgICAgICAgICBxdWVzdGlvblJlZmVyZW5jZUltYWdlOmo/LnF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UgPz8gJycsXHJcbiAgICAgICAgICAgIFwicnVuQUlGZWF0dXJlc1wiOnRoaXMuZmIuYXJyYXkoaj8ucnVuQUlGZWF0dXJlcyB8fCBbXSksXHJcbiAgICAgICAgICAgIGRpc2FibGVSdW5BSTpydW5BSS5sZW5ndGggPyB0cnVlIDogZmFsc2UsXHJcbiAgICAgICAgICAgICdydW5BSURlc2NyaXB0aW9uJzogdGhpcy5mYi5jb250cm9sKGo/LnJ1bkFJRGVzY3JpcHRpb24gfHwgJycpLFxyXG4gICAgICAgICAgICBcInVuaXF1ZXFub1wiOiB0aGlzLmZiLmNvbnRyb2woaj8udW5pcXVlcW5vIHx8IDApLFxyXG4gICAgICAgICAgICBcInVuaXF1ZXFpZFwiOiB0aGlzLmZiLmNvbnRyb2woaj8udW5pcXVlcWlkIHx8ICcnKSxcclxuICAgICAgICAgICAgJ2FsbG93TXVsdGlwbGUnOnRoaXMuZmIuY29udHJvbChqPy5hbGxvd011bHRpcGxlID8/IGZhbHNlKSxcclxuICAgICAgICAgICAgJ2NvbXBsaWFuY2UnOnRoaXMuZmIuY29udHJvbChqPy5jb21wbGlhbmNlID8/IGZhbHNlKSxcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICk7XHJcbiAgICAgIH0pO1xyXG4gICAgICBzZWN0aW9ucy5wdXNoKFxyXG4gICAgICAgIHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICAgICAgXCJuYW1lXCI6IHRoaXMuZmIuY29udHJvbChpPy5uYW1lLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5taW5MZW5ndGgoMSksbm9XaGl0ZXNwYWNlVmFsaWRhdG9yKCldKSxcclxuICAgICAgICAgIFwib2xkTmFtZVwiOnRoaXMuZmIuY29udHJvbChpPy5uYW1lLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5taW5MZW5ndGgoMSksbm9XaGl0ZXNwYWNlVmFsaWRhdG9yKCldKSxcclxuICAgICAgICAgIFwic2VjdGlvbk51bWJlclwiOiB0aGlzLmZiLmNvbnRyb2woc2VjdGlvbk51bWJlciksXHJcbiAgICAgICAgICBcInF1ZXN0aW9uc1wiOiB0aGlzLmZiLmFycmF5KHF1ZXN0aW9ucyksXHJcbiAgICAgICAgICBcIm1heFF1ZXN0aW9uTnVtYmVyXCI6IHRoaXMuZmIuY29udHJvbChpPy5tYXhRdWVzdGlvbk51bWJlciB8fCAwKSxcclxuICAgICAgfSkpO1xyXG4gICAgICBxdWVzdGlvbnMgPSBbXTtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuQ2hlY2tsaXN0Rm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICAnY2hlY2tsaXN0TmFtZSc6IHRoaXMuZmIuY29udHJvbCh0aGlzLmdldG9iamVjdC5jaGVja0xpc3ROYW1lLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCxub1doaXRlc3BhY2VWYWxpZGF0b3IoKV0pLFxyXG4gICAgICAnY2hlY2tsaXN0RGVzY3JpcHRpb24nOiB0aGlzLmZiLmNvbnRyb2wodGhpcy5nZXRvYmplY3QuY2hlY2tMaXN0RGVzY3JpcHRpb24pLFxyXG4gICAgICAnc2VjdGlvbnMnOiB0aGlzLmZiLmFycmF5KHNlY3Rpb25zKVxyXG4gICAgfSk7XHJcbiAgICBzZWN0aW9uc2FycmF5LmZvckVhY2goKF86IGFueSwgc2VjdGlvbkluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgdGhpcy5nZXRvYmplY3Quc2VjdGlvbnNbc2VjdGlvbkluZGV4XT8ucXVlc3Rpb25zPy5mb3JFYWNoKChfOiBhbnksIHF1ZXN0aW9uSW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgICAgIGlmICh0aGlzLmhhc1ZhbGlkYXRpb25FbmFibGVkKHNlY3Rpb25JbmRleCwgcXVlc3Rpb25JbmRleCkpIHtcclxuICAgICAgICAgICgoKCh0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheSkuYXQoc2VjdGlvbkluZGV4KSBhcyBGb3JtR3JvdXApLmdldCgncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChxdWVzdGlvbkluZGV4KSBhcyBGb3JtR3JvdXApPy5nZXQoJ2NvbXBsaWFuY2UnKT8ucGF0Y2hWYWx1ZShmYWxzZSk7XHJcbiAgICAgICAgICAoKCgodGhpcy5DaGVja2xpc3RGb3JtLmdldCgnc2VjdGlvbnMnKSBhcyBGb3JtQXJyYXkpLmF0KHNlY3Rpb25JbmRleCkgYXMgRm9ybUdyb3VwKS5nZXQoJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheSkuYXQocXVlc3Rpb25JbmRleCkgYXMgRm9ybUdyb3VwKT8uZ2V0KCdjb21wbGlhbmNlJyk/LmRpc2FibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuQ2hlY2tsaXN0Rm9ybS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICB0aGlzLmNoZWNrbGlzdExvYWRpbmcgPSBmYWxzZTtcclxuXHJcbiAgICBjb25zb2xlLmxvZyh0aGlzLkNoZWNrbGlzdEZvcm0udmFsdWUpXHJcblxyXG4gICAgLy8gY29uc29sZS5sb2codGhpcy5DaGVja2xpc3RGb3JtLCdmb3JtJyk7XHJcbiAgfVxyXG5cclxuICBpbml0Q2hlY2tsaXN0KCkge1xyXG4gICAgdGhpcy5DaGVja2xpc3RGb3JtID0gdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgICdjaGVja2xpc3ROYW1lJzogdGhpcy5mYi5jb250cm9sKCcnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCxub1doaXRlc3BhY2VWYWxpZGF0b3IoKV0pLFxyXG4gICAgICAnY2hlY2tsaXN0RGVzY3JpcHRpb24nOiB0aGlzLmZiLmNvbnRyb2woJycpLFxyXG4gICAgICAnc2VjdGlvbnMnOiB0aGlzLmZiLmFycmF5KFtcclxuICAgICAgICB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgICAgIFwibmFtZVwiOiB0aGlzLmZiLmNvbnRyb2woJ1NlY3Rpb24gMScsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLFZhbGlkYXRvcnMubWluTGVuZ3RoKDEpLG5vV2hpdGVzcGFjZVZhbGlkYXRvcigpXSksXHJcbiAgICAgICAgICBcInNlY3Rpb25OdW1iZXJcIjogdGhpcy5mYi5jb250cm9sKDEsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXHJcbiAgICAgICAgICBcInF1ZXN0aW9uc1wiOiB0aGlzLmZiLmFycmF5KFtcclxuICAgICAgICAgICAgdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgICAgICAgICAgXCJxbm9cIjogdGhpcy5mYi5jb250cm9sKDEsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXHJcbiAgICAgICAgICAgICAgJ3FuYW1lJzogdGhpcy5mYi5jb250cm9sKCcnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCxub1doaXRlc3BhY2VWYWxpZGF0b3IoKV0pLFxyXG4gICAgICAgICAgICAgICdhbnN3ZXJUeXBlJzogdGhpcy5mYi5jb250cm9sKCdkZXNjcmlwdGl2ZScsXHJcbiAgICAgICAgICAgICAgICB0aGlzLmFsbG93ZWRWYWx1ZXNWYWxpZGF0b3IoW1wiZGVzY3JpcHRpdmVcIiwgXCJ5ZXMvbm9cIiwgXCJtdWx0aXBsZWNob2ljZXNpbmdsZVwiLCBcIm11bHRpcGxlY2hvaWNlbXVsdGlwbGVcIixcImRlc2NyaXB0aXZlSW1hZ2VcIiwgXCJpbWFnZVwiLCBcInZpZGVvXCIsJ211bHRpcGxlSW1hZ2UnLCdkYXRlJywnbGluZWFyc2NhbGUnLCd0aW1lJywnaW1hZ2UvdmlkZW8nLCdkcm9wZG93biddKSksXHJcbiAgICAgICAgICAgICAgJ3J1bkFJJzogdGhpcy5mYi5jb250cm9sKGZhbHNlLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxyXG4gICAgICAgICAgICAgICdydW5BSURlc2NyaXB0aW9uJzogdGhpcy5mYi5jb250cm9sKCcnKSxcclxuICAgICAgICAgICAgICAnYWxsb3dVcGxvYWRmcm9tR2FsbGVyeSc6IHRoaXMuZmIuY29udHJvbChmYWxzZSwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcclxuICAgICAgICAgICAgICAnbGlua1R5cGUnOiB0aGlzLmZiLmNvbnRyb2woZmFsc2UsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXHJcbiAgICAgICAgICAgICAgXCJtdWx0aVF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2VcIjp0aGlzLmZiLmFycmF5KFtdKSxcclxuICAgICAgICAgICAgICAnZGVzY3JpcHRpdmV0eXBlJzp0aGlzLmZiLmNvbnRyb2woJ3RleHQnKSxcclxuICAgICAgICAgICAgICAncXVlc3Rpb25SZWZlcmVuY2VJbWFnZSc6dGhpcy5mYi5jb250cm9sKCcnKSwgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgIFwicnVuQUlGZWF0dXJlc1wiOnRoaXMuZmIuYXJyYXkoW10pLFxyXG4gICAgICAgICAgICAgIFwidW5pcXVlcW5vXCI6IHRoaXMuZmIuY29udHJvbCgwKSxcclxuICAgICAgICAgICAgICBcInVuaXF1ZXFpZFwiOiB0aGlzLmZiLmNvbnRyb2woJycpLFxyXG4gICAgICAgICAgICAgICdhbGxvd011bHRpcGxlJzp0aGlzLmZiLmNvbnRyb2woZmFsc2UpLFxyXG4gICAgICAgICAgICAgICdjb21wbGlhbmNlJzp0aGlzLmZiLmNvbnRyb2woZmFsc2UpLFxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgXSksXHJcbiAgICAgICAgICBcIm1heFF1ZXN0aW9uTnVtYmVyXCI6IHRoaXMuZmIuY29udHJvbCgwKSxcclxuICAgICAgICB9KVxyXG4gICAgICBdKVxyXG4gICAgfSk7XHJcbiAgICB0aGlzLmNoZWNrbGlzdExvYWRpbmcgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIGFsbG93ZWRWYWx1ZXNWYWxpZGF0b3IoYWxsb3dlZFZhbHVlczogc3RyaW5nW10pIHtcclxuICAgIHJldHVybiAoY29udHJvbDogYW55KSA9PiB7XHJcbiAgICAgIGNvbnN0IHZhbHVlID0gY29udHJvbC52YWx1ZTtcclxuICAgICAgaWYgKHZhbHVlICYmIGFsbG93ZWRWYWx1ZXMuaW5kZXhPZih2YWx1ZSkgPT09IC0xKSB7XHJcbiAgICAgICAgcmV0dXJuIHsgaW52YWxpZFZhbHVlOiB0cnVlIH07XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgYWRkTmV3U2VjdGlvbigpIHtcclxuICAgIGxldCBzZWN0aW9ucyA9IHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5O1xyXG4gICAgbGV0IHNlY3Rpb25MZW5ndGggPSBzZWN0aW9ucy5sZW5ndGg7XHJcbiAgICBpZih0aGlzLm1heFNlY3Rpb25OdW1iZXIpe1xyXG4gICAgICB0aGlzLm1heFNlY3Rpb25OdW1iZXIrKztcclxuICAgIH1lbHNle1xyXG4gICAgICB0aGlzLm1heFNlY3Rpb25OdW1iZXIgPSBNYXRoLm1heCguLi5zZWN0aW9ucy52YWx1ZS5tYXAoKGVsZTphbnkpID0+IGVsZS5zZWN0aW9uTnVtYmVyICkpKzE7XHJcbiAgICB9XHJcbiAgICAvLyBjb25zb2xlLmxvZyhcInRoaXMubWF4U2VjdGlvbk51bWJlciA9PlwiLCB0aGlzLm1heFNlY3Rpb25OdW1iZXIpO1xyXG5cclxuICAgICh0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheSkucHVzaChcclxuICAgICAgdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgICAgXCJuYW1lXCI6IHRoaXMuZmIuY29udHJvbChgU2VjdGlvbiAke3NlY3Rpb25MZW5ndGggKyAxfWAsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLFZhbGlkYXRvcnMubWluTGVuZ3RoKDEpLG5vV2hpdGVzcGFjZVZhbGlkYXRvcigpXSksXHJcbiAgICAgICAgXCJzZWN0aW9uTnVtYmVyXCI6IHRoaXMuZmIuY29udHJvbCh0aGlzLm1heFNlY3Rpb25OdW1iZXIsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXHJcbiAgICAgICAgLy8gXCJzZWN0aW9uTnVtYmVyXCI6IHRoaXMuZmIuY29udHJvbChmaW5kU2VjTnVtICsgMSwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcclxuICAgICAgICBcInF1ZXN0aW9uc1wiOiB0aGlzLmZiLmFycmF5KFtcclxuICAgICAgICAgIHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICAgICAgICBcInFub1wiOiB0aGlzLmZiLmNvbnRyb2woMSwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcclxuICAgICAgICAgICAgJ3FuYW1lJzogdGhpcy5mYi5jb250cm9sKCcnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCxub1doaXRlc3BhY2VWYWxpZGF0b3IoKV0pLFxyXG4gICAgICAgICAgICAnYW5zd2VyVHlwZSc6IHRoaXMuZmIuY29udHJvbCgnZGVzY3JpcHRpdmUnLFxyXG4gICAgICAgICAgICAgIHRoaXMuYWxsb3dlZFZhbHVlc1ZhbGlkYXRvcihbXCJkZXNjcmlwdGl2ZVwiLCBcInllcy9ub1wiLCBcIm11bHRpcGxlY2hvaWNlc2luZ2xlXCIsIFwibXVsdGlwbGVjaG9pY2VtdWx0aXBsZVwiLFwiZGVzY3JpcHRpdmVJbWFnZVwiLCBcImltYWdlXCIsIFwidmlkZW9cIiwnbXVsdGlwbGVJbWFnZScsJ2RhdGUnLCdsaW5lYXJzY2FsZScsJ3RpbWUnLCdpbWFnZS92aWRlbycsJ2Ryb3Bkb3duJ10pKSxcclxuICAgICAgICAgICAgJ3J1bkFJJzogdGhpcy5mYi5jb250cm9sKGZhbHNlLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxyXG4gICAgICAgICAgICAncnVuQUlEZXNjcmlwdGlvbic6IHRoaXMuZmIuY29udHJvbCgnJyksXHJcbiAgICAgICAgICAgICdhbGxvd1VwbG9hZGZyb21HYWxsZXJ5JzogdGhpcy5mYi5jb250cm9sKGZhbHNlLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxyXG4gICAgICAgICAgICAnbGlua1R5cGUnOiB0aGlzLmZiLmNvbnRyb2woZmFsc2UsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXHJcbiAgICAgICAgICAgIFwibXVsdGlRdWVzdGlvblJlZmVyZW5jZUltYWdlXCI6dGhpcy5mYi5hcnJheShbXSksXHJcbiAgICAgICAgICAgICdkZXNjcmlwdGl2ZXR5cGUnOnRoaXMuZmIuY29udHJvbCgndGV4dCcpLFxyXG4gICAgICAgICAgICAncXVlc3Rpb25SZWZlcmVuY2VJbWFnZSc6dGhpcy5mYi5jb250cm9sKCcnKSxcclxuICAgICAgICAgICAgJ3J1bkFJRmVhdHVyZXMnOnRoaXMuZmIuYXJyYXkoW10pLCAgICAgICAgICAgIFxyXG4gICAgICAgICAgICBcInVuaXF1ZXFub1wiOiB0aGlzLmZiLmNvbnRyb2woMCksXHJcbiAgICAgICAgICAgIFwidW5pcXVlcWlkXCI6IHRoaXMuZmIuY29udHJvbCgnJyksXHJcbiAgICAgICAgICAgICdhbGxvd011bHRpcGxlJzp0aGlzLmZiLmNvbnRyb2woZmFsc2UpLFxyXG4gICAgICAgICAgICAnY29tcGxpYW5jZSc6dGhpcy5mYi5jb250cm9sKGZhbHNlKVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICBdKSxcclxuICAgICAgICBcIm1heFF1ZXN0aW9uTnVtYmVyXCI6IHRoaXMuZmIuY29udHJvbCgwKSxcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgICBpZihzZWN0aW9uTGVuZ3RoID09IDApIHtcclxuICAgICAgdGhpcy5zaG93ID0gLTE7XHJcbiAgICB9XHJcbiAgICB0aGlzLmFjY29yZGlhbihzZWN0aW9uTGVuZ3RoKTtcclxuICAgIHRoaXMuc3dhbFRvYXN0KCdOZXcgc2VjdGlvbiBhZGRlZCEnKTtcclxuICB9XHJcblxyXG4gIHJlbW92ZVNlY3Rpb24oc2VjdGlvbkluZGV4OiBudW1iZXIpIHtcclxuICAgICh0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheSkucmVtb3ZlQXQoc2VjdGlvbkluZGV4KTtcclxuICB9XHJcblxyXG4gIGRyYWdEcm9wKHNlY3Rpb25JbmRleDogYW55LCBldmVudDogQ2RrRHJhZ0Ryb3A8YW55W10+KSB7XHJcbiAgICBpZiAoZXZlbnQucHJldmlvdXNDb250YWluZXIgPT09IGV2ZW50LmNvbnRhaW5lcikge1xyXG4gICAgICBtb3ZlSXRlbUluQXJyYXkoZXZlbnQuY29udGFpbmVyLmRhdGEsIGV2ZW50LnByZXZpb3VzSW5kZXgsIGV2ZW50LmN1cnJlbnRJbmRleCk7XHJcbiAgICAgIC8vIHRoaXMudXBkYXRlbGlua2VkUXVlc3Rpb25ObyhzZWN0aW9uSW5kZXgsZXZlbnQucHJldmlvdXNJbmRleCxldmVudC5jdXJyZW50SW5kZXgpXHJcbiAgICAgIHRoaXMudXBkYXRlUXVlc3Rpb25Rbm9zKHNlY3Rpb25JbmRleCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0cmFuc2ZlckFycmF5SXRlbShcclxuICAgICAgICBldmVudC5wcmV2aW91c0NvbnRhaW5lci5kYXRhLFxyXG4gICAgICAgIGV2ZW50LmNvbnRhaW5lci5kYXRhLFxyXG4gICAgICAgIGV2ZW50LnByZXZpb3VzSW5kZXgsXHJcbiAgICAgICAgZXZlbnQuY3VycmVudEluZGV4XHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB1cGRhdGVsaW5rZWRRdWVzdGlvbk5vKHNlY0lkeDpudW1iZXIscHJldklkeDpudW1iZXIscW5JZHg6bnVtYmVyKSB7XHJcbiAgICBsZXQgcXVlc3Rpb25zID0gKHRoaXMuZ2V0U2VjdGlvbkZvcm1BcnJheSgpLmF0KHNlY0lkeCkuZ2V0KCdxdWVzdGlvbnMnKSBhcyBGb3JtQXJyYXkpO1xyXG4gICAgZm9yKGxldCBpPTA7aTxxdWVzdGlvbnMubGVuZ3RoLTE7aSsrKSB7XHJcbiAgICAgIGxldCBhbnN3ZXJzID0gKChxdWVzdGlvbnMuYXQoaSkgYXMgRm9ybUdyb3VwKS5nZXQoJ2Fuc3dlcnMnKSBhcyBGb3JtQXJyYXkpO1xyXG4gICAgICBmb3IobGV0IGo9MDtqPGFuc3dlcnM/Lmxlbmd0aCAtMTtqKyspIHtcclxuICAgICAgICBsZXQgbGlua2VkID0gKGFuc3dlcnMuYXQoaikgYXMgRm9ybUdyb3VwKS5nZXQoJ3Nob3dMaW5rZWQnKT8udmFsdWU7XHJcbiAgICAgICAgaWYobGlua2VkKSB7XHJcbiAgICAgICAgICBsZXQgbGlua2VkTm8gPSAoYW5zd2Vycy5hdChqKSBhcyBGb3JtR3JvdXApLmdldCgnbGlua2VkUXVlc3Rpb24nKT8udmFsdWU7XHJcbiAgICAgICAgICBpZihsaW5rZWRObyA9PSBwcmV2SWR4ICsgMSkge1xyXG4gICAgICAgICAgICAoYW5zd2Vycy5hdChqKSBhcyBGb3JtR3JvdXApLmdldCgnbGlua2VkUXVlc3Rpb24nKT8uc2V0VmFsdWUocW5JZHggKyAxKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGVsc2UgaWYobGlua2VkTm8gPD0gcW5JZHggKyAxKSB7XHJcbiAgICAgICAgICAgIChhbnN3ZXJzLmF0KGopIGFzIEZvcm1Hcm91cCkuZ2V0KCdsaW5rZWRRdWVzdGlvbicpPy5zZXRWYWx1ZShsaW5rZWRObyAtIDEpO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICB9XHJcblxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgYW5zd2VyVHlwZVNlbGVjdGlvbihzZWN0aW9uSW5kZXg6IGFueSwgcXVlc3Rpb25JbmRleDogYW55LCBldmVudDogYW55KSB7XHJcbiAgICBsZXQgc2VsZWN0dmFsdWU6IHN0cmluZyA9IGV2ZW50LnRhcmdldC52YWx1ZTtcclxuICAgIFxyXG4gICAgKCgoKCh0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheSlcclxuICAgICAgLmF0KHNlY3Rpb25JbmRleCkgYXMgRm9ybUdyb3VwKVxyXG4gICAgICAuZ2V0KCdxdWVzdGlvbnMnKSBhcyBGb3JtQXJyYXkpXHJcbiAgICAgIC5hdChxdWVzdGlvbkluZGV4KSBhcyBGb3JtR3JvdXApLmdldChcIm11bHRpUXVlc3Rpb25SZWZlcmVuY2VJbWFnZVwiKSBhcyBGb3JtQXJyYXkpPy5jbGVhcigpO1xyXG4gICAgaWYoIVsnZGVzY3JpcHRpdmUnLCdtdWx0aXBsZUltYWdlJ10uaW5jbHVkZXMoc2VsZWN0dmFsdWUpKSB7XHJcbiAgICAgICAoKCgodGhpcy5DaGVja2xpc3RGb3JtLmdldCgnc2VjdGlvbnMnKSBhcyBGb3JtQXJyYXkpXHJcbiAgICAgIC5hdChzZWN0aW9uSW5kZXgpIGFzIEZvcm1Hcm91cClcclxuICAgICAgLmdldCgncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5KVxyXG4gICAgICAuYXQocXVlc3Rpb25JbmRleCkgYXMgRm9ybUdyb3VwKS5nZXQoJ2Rlc2NyaXB0aXZldHlwZScpPy5zZXRWYWx1ZSgnJyk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgKCgoKHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5KVxyXG4gICAgICAuYXQoc2VjdGlvbkluZGV4KSBhcyBGb3JtR3JvdXApXHJcbiAgICAgIC5nZXQoJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheSlcclxuICAgICAgLmF0KHF1ZXN0aW9uSW5kZXgpIGFzIEZvcm1Hcm91cCkuZ2V0KCdkZXNjcmlwdGl2ZXR5cGUnKT8uc2V0VmFsdWUoJ3RleHQnKTtcclxuICAgIH1cclxuICAgICgoKCh0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheSlcclxuICAgICAgLmF0KHNlY3Rpb25JbmRleCkgYXMgRm9ybUdyb3VwKVxyXG4gICAgICAuZ2V0KCdxdWVzdGlvbnMnKSBhcyBGb3JtQXJyYXkpXHJcbiAgICAgIC5hdChxdWVzdGlvbkluZGV4KSBhcyBGb3JtR3JvdXApLmdldCgnY29tcGxpYW5jZScpPy5zZXRWYWx1ZShmYWxzZSk7XHJcbiAgICB0aGlzLnJlbW92ZVF1ZXN0aW9uTGlua2VkKHNlY3Rpb25JbmRleCxxdWVzdGlvbkluZGV4KTtcclxuICAgIGlmIChbJ3llcy9ubycsJ211bHRpcGxlY2hvaWNlc2luZ2xlJywnbXVsdGlwbGVjaG9pY2VtdWx0aXBsZScsJ2Ryb3Bkb3duJ10uaW5jbHVkZXMoc2VsZWN0dmFsdWUpKSB7XHJcbiAgICAgIHRoaXMuc2V0QW5zd2VyQXNGb3JtQXJyYXkoc2VjdGlvbkluZGV4LCBxdWVzdGlvbkluZGV4LHNlbGVjdHZhbHVlKTtcclxuICAgIH0gZWxzZSBpZiAoc2VsZWN0dmFsdWUgPT0gJ2Rlc2NyaXB0aXZlJykge1xyXG4gICAgfSBlbHNlIGlmIChbJ2Rlc2NyaXB0aXZlSW1hZ2UnLCdpbWFnZScsJ3ZpZGVvJywnbXVsdGlwbGVJbWFnZScsLCdpbWFnZS92aWRlbyddLmluY2x1ZGVzKHNlbGVjdHZhbHVlKSkge1xyXG4gICAgICB0aGlzLnNldEFuc3dlckFzRm9ybUdyb3VwKHNlY3Rpb25JbmRleCwgcXVlc3Rpb25JbmRleCwgc2VsZWN0dmFsdWUpO1xyXG4gICAgfSBlbHNlIGlmIChbJ2RhdGUnLCd0aW1lJywnbGluZWFyc2NhbGUnXS5pbmNsdWRlcyhzZWxlY3R2YWx1ZSkpIHsgXHJcbiAgICAgIHRoaXMuc2V0QW5zd2VyQXNUaW1lKHNlY3Rpb25JbmRleCwgcXVlc3Rpb25JbmRleCwgc2VsZWN0dmFsdWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0QW5zd2VyQXNUaW1lKHNlY0lkeDpudW1iZXIscW5JZHg6bnVtYmVyLHR5cGU6c3RyaW5nKSB7XHJcbiAgICBsZXQgcXVlc3Rpb24gPSAoKCgodGhpcy5DaGVja2xpc3RGb3JtLmdldCgnc2VjdGlvbnMnKSBhcyBGb3JtQXJyYXkpXHJcbiAgICAgIC5hdChzZWNJZHgpIGFzIEZvcm1Hcm91cClcclxuICAgICAgLmdldCgncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5KVxyXG4gICAgICAuYXQocW5JZHgpIGFzIEZvcm1Hcm91cCk7XHJcbiAgICAgIGlmKHR5cGUgPT0gJ3RpbWUnKSB7XHJcbiAgICAgICAgcXVlc3Rpb24uc2V0Q29udHJvbCgnYW5zd2VycycsXHJcbiAgICAgICAgICAgdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgICAgICAgICAnYW5zd2VyJzogdGhpcy5mYi5jb250cm9sKCcnKSxcclxuICAgICAgICAgICAgICdhbnN3ZXJvcHRpb25OdW1iZXInOiB0aGlzLmZiLmNvbnRyb2woMSksXHJcbiAgICAgICAgICAgICAnc29wRmxhZyc6IHRoaXMuZmIuY29udHJvbChmYWxzZSksXHJcbiAgICAgICAgICAgICAndmFsaWRhdGlvbic6IHRoaXMuZmIuY29udHJvbChmYWxzZSksXHJcbiAgICAgICAgICAgICAndmFsaWRhdGlvblR5cGUnOiB0aGlzLmZiLmNvbnRyb2woJycpLFxyXG4gICAgICAgICAgICAgJ2xpbmtlZFF1ZXN0aW9uJzp0aGlzLmZiLmNvbnRyb2woMCksXHJcbiAgICAgICAgICAgICAnc2hvd0xpbmtlZCc6dGhpcy5mYi5jb250cm9sKGZhbHNlKSxcclxuICAgICAgICAgICAgIFwibXVsdGlSZWZlcmVuY2VJbWFnZVwiOiB0aGlzLmZiLmFycmF5KFtdKSxcclxuICAgICAgICAgICAgICdydW5BSSc6IHRoaXMuZmIuY29udHJvbChmYWxzZSksXHJcbiAgICAgICAgICAgICAnYWxsb3dVcGxvYWRmcm9tR2FsbGVyeSc6IHRoaXMuZmIuY29udHJvbChmYWxzZSksXHJcbiAgICAgICAgICAgICAnZGVzY3JpcHRpdmV0eXBlJzp0aGlzLmZiLmNvbnRyb2woJycpLFxyXG4gICAgICAgICAgICAgJ3J1bkFJRmVhdHVyZXMnOnRoaXMuZmIuYXJyYXkoW10pLFxyXG4gICAgICAgICAgICAgJ3J1bkFJRGVzY3JpcHRpb24nOiB0aGlzLmZiLmNvbnRyb2woJycpLFxyXG4gICAgICAgICAgIH0pLFxyXG4gICAgICAgICApO1xyXG4gICAgICB9IGVsc2UgaWYodHlwZSA9PSAnbGluZWFyc2NhbGUnKSB7XHJcbiAgICAgICAgY29uc3QgYW5zd2Vyc0dyb3VwID0gdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgICAgICAgICAnYW5zd2VyJzogdGhpcy5mYi5jb250cm9sKCcnKSxcclxuICAgICAgICAgICAgICdhbnN3ZXJvcHRpb25OdW1iZXInOiB0aGlzLmZiLmNvbnRyb2woMSksXHJcbiAgICAgICAgICAgICAnc29wRmxhZyc6IHRoaXMuZmIuY29udHJvbChmYWxzZSksXHJcbiAgICAgICAgICAgICAndmFsaWRhdGlvbic6IHRoaXMuZmIuY29udHJvbChmYWxzZSksXHJcbiAgICAgICAgICAgICAndmFsaWRhdGlvblR5cGUnOiB0aGlzLmZiLmNvbnRyb2woJycpLFxyXG4gICAgICAgICAgICAgJ2xpbmtlZFF1ZXN0aW9uJzp0aGlzLmZiLmNvbnRyb2woMCksXHJcbiAgICAgICAgICAgICAnc2hvd0xpbmtlZCc6dGhpcy5mYi5jb250cm9sKGZhbHNlKSxcclxuICAgICAgICAgICAgIFwibXVsdGlSZWZlcmVuY2VJbWFnZVwiOiB0aGlzLmZiLmFycmF5KFtdKSxcclxuICAgICAgICAgICAgICdydW5BSSc6IHRoaXMuZmIuY29udHJvbChmYWxzZSksXHJcbiAgICAgICAgICAgICAnYWxsb3dVcGxvYWRmcm9tR2FsbGVyeSc6IHRoaXMuZmIuY29udHJvbChmYWxzZSksXHJcbiAgICAgICAgICAgICAnZGVzY3JpcHRpdmV0eXBlJzp0aGlzLmZiLmNvbnRyb2woJ251bWJlcicpLFxyXG4gICAgICAgICAgICAgJ3JhbmdlU3RhcnQnOnRoaXMuZmIuY29udHJvbCgwKSxcclxuICAgICAgICAgICAgICdyYW5nZUVuZCc6dGhpcy5mYi5jb250cm9sKDEwMCksXHJcbiAgICAgICAgICAgICAncnVuQUlGZWF0dXJlcyc6dGhpcy5mYi5hcnJheShbXSksXHJcbiAgICAgICAgICAgICAncnVuQUlEZXNjcmlwdGlvbic6IHRoaXMuZmIuY29udHJvbCgnJyksXHJcbiAgICAgICAgICAgICAnbGluZWFyVHlwZSc6dGhpcy5mYi5jb250cm9sKCdudW1iZXInKSxcclxuICAgICAgICAgICAgICdtaW5WYWx1ZSc6dGhpcy5mYi5jb250cm9sKDApLFxyXG4gICAgICAgICAgICAgJ21heFZhbHVlJzp0aGlzLmZiLmNvbnRyb2woMTAwKSxcclxuICAgICAgICAgICAgICdtYXRjaGVkQ291bnQnOnRoaXMuZmIuY29udHJvbCgwKSxcclxuICAgICAgICAgICAgICdub3RNYXRjaGVkQ291bnQnOnRoaXMuZmIuY29udHJvbCgwKSxcclxuICAgICAgICAgICB9LCB7IHZhbGlkYXRvcnM6IHJhbmdlVmFsaWRhdG9yKCkgfSk7XHJcbiAgICAgICAgcXVlc3Rpb24uc2V0Q29udHJvbCgnYW5zd2VycycsIGFuc3dlcnNHcm91cCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcXVlc3Rpb24uc2V0Q29udHJvbCgnYW5zd2VycycsXHJcbiAgICAgICAgICAgdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgICAgICAgICAnYW5zd2VyJzogdGhpcy5mYi5jb250cm9sKCcnKSxcclxuICAgICAgICAgICAgICdhbnN3ZXJvcHRpb25OdW1iZXInOiB0aGlzLmZiLmNvbnRyb2woMSksXHJcbiAgICAgICAgICAgICAnc29wRmxhZyc6IHRoaXMuZmIuY29udHJvbChmYWxzZSksXHJcbiAgICAgICAgICAgICAndmFsaWRhdGlvbic6IHRoaXMuZmIuY29udHJvbChmYWxzZSksXHJcbiAgICAgICAgICAgICAndmFsaWRhdGlvblR5cGUnOiB0aGlzLmZiLmNvbnRyb2woJycpLFxyXG4gICAgICAgICAgICAgJ2xpbmtlZFF1ZXN0aW9uJzp0aGlzLmZiLmNvbnRyb2woMCksXHJcbiAgICAgICAgICAgICAnc2hvd0xpbmtlZCc6dGhpcy5mYi5jb250cm9sKGZhbHNlKSxcclxuICAgICAgICAgICAgIFwibXVsdGlSZWZlcmVuY2VJbWFnZVwiOiB0aGlzLmZiLmFycmF5KFtdKSxcclxuICAgICAgICAgICAgICdydW5BSSc6IHRoaXMuZmIuY29udHJvbChmYWxzZSksXHJcbiAgICAgICAgICAgICAnYWxsb3dVcGxvYWRmcm9tR2FsbGVyeSc6IHRoaXMuZmIuY29udHJvbChmYWxzZSksXHJcbiAgICAgICAgICAgICAnaGlzdG9yaWNEYXRlJzogdGhpcy5mYi5jb250cm9sKGZhbHNlKSxcclxuICAgICAgICAgICAgICdkZXNjcmlwdGl2ZXR5cGUnOnRoaXMuZmIuY29udHJvbCgnbnVtYmVyJyksXHJcbiAgICAgICAgICAgICAncnVuQUlGZWF0dXJlcyc6dGhpcy5mYi5hcnJheShbXSksXHJcbiAgICAgICAgICAgICAncnVuQUlEZXNjcmlwdGlvbic6IHRoaXMuZmIuY29udHJvbCgnJyksXHJcbiAgICAgICAgICAgICAnc3RhcnREYXRlJzogdGhpcy5mYi5jb250cm9sKHRoaXMuZGF5anMoKS5mb3JtYXQoJ0RELU1NLVlZWVknKSksXHJcbiAgICAgICAgICAgICAnZW5kRGF0ZSc6IHRoaXMuZmIuY29udHJvbCh0aGlzLmRheWpzKCkuZm9ybWF0KCdERC1NTS1ZWVlZJykpLFxyXG4gICAgICAgICAgICAgJ21hdGNoZWRDb3VudCc6dGhpcy5mYi5jb250cm9sKDApLFxyXG4gICAgICAgICAgICAgJ25vdE1hdGNoZWRDb3VudCc6dGhpcy5mYi5jb250cm9sKDApLFxyXG4gICAgICAgICAgICAgJ3FuU3RhcnREYXRlJzogdGhpcy5mYi5jb250cm9sKHt9KSxcclxuICAgICAgICAgICAgICdxbkVuZERhdGUnOiB0aGlzLmZiLmNvbnRyb2woe30pLFxyXG4gICAgICAgICAgIH0pLFxyXG4gICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICAgIFxyXG4gICAgXHJcblxyXG4gICAgLy8gY29uc29sZS5sb2cocXVlc3Rpb24pO1xyXG4gICAgXHJcbiAgfVxyXG5cclxuICByZW1vdmVRdWVzdGlvbkxpbmtlZChzZWNJZHg6YW55LHFuSWR4OmFueSkge1xyXG4gICAgbGV0IGFuc3dlcnMgPSAoKCh0aGlzLmdldFNlY3Rpb25Gb3JtQXJyYXkoKS5hdChzZWNJZHgpLmdldCgncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChxbklkeCkgYXMgRm9ybUdyb3VwKS5nZXQoJ2Fuc3dlcnMnKSBhcyBGb3JtQXJyYXkpO1xyXG4gICAgaWYoYW5zd2Vycykge1xyXG4gICAgICBmb3IobGV0IGk9MDtpPGFuc3dlcnMubGVuZ3RoO2krKyl7XHJcbiAgICAgICAgbGV0IHFuID0gKGFuc3dlcnMuYXQoaSkgYXMgRm9ybUdyb3VwKS5nZXQoJ2xpbmtlZFF1ZXN0aW9uJyk/LnZhbHVlO1xyXG4gICAgICAgIGlmKHFuKSB7XHJcbiAgICAgICAgICAoKHRoaXMuZ2V0U2VjdGlvbkZvcm1BcnJheSgpLmF0KHNlY0lkeCkuZ2V0KCdxdWVzdGlvbnMnKSBhcyBGb3JtQXJyYXkpLmF0KHFuIC0gMSkgYXMgRm9ybUdyb3VwKS5nZXQoJ2xpbmtUeXBlJyk/LnNldFZhbHVlKGZhbHNlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgXHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHVwZGF0ZVZhbGlkYXRpb25UeXBlKGV2ZW50OmFueSxzZWN0aW9uOm51bWJlcixxdWVzdGlvbjpudW1iZXIsYW5zd2VyOm51bWJlcikge1xyXG4gICAgbGV0IHF1ZXN0aW9uSW5mbyA9ICgoKCh0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheSlcclxuICAgICAgLmF0KHNlY3Rpb24pIGFzIEZvcm1Hcm91cClcclxuICAgICAgLmdldCgncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5KVxyXG4gICAgICAuYXQocXVlc3Rpb24pIGFzIEZvcm1Hcm91cCkuZ2V0KCdjb21wbGlhbmNlJyk/LnZhbHVlO1xyXG4gICAgbGV0IGFuc3dlcnMgPSAoKCgoKHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5KVxyXG4gICAgICAuYXQoc2VjdGlvbikgYXMgRm9ybUdyb3VwKVxyXG4gICAgICAuZ2V0KCdxdWVzdGlvbnMnKSBhcyBGb3JtQXJyYXkpXHJcbiAgICAgIC5hdChxdWVzdGlvbikgYXMgRm9ybUdyb3VwKS5nZXQoJ2Fuc3dlcnMnKSBhcyBGb3JtQXJyYXkpPy52YWx1ZTtcclxuICAgIGlmKCFhbnN3ZXJzLmV2ZXJ5KChlbGU6YW55KSA9PiBlbGUucnVuQUkpICYmIHF1ZXN0aW9uSW5mbykge1xyXG4gICAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKFRyYXhwb3B1cENvbXBvbmVudCx7Y2VudGVyZWQ6IHRydWUsIHNpemU6ICdtZCd9KTtcclxuICAgICAgZGlhbG9nUmVmLmNvbXBvbmVudEluc3RhbmNlLmRhdGEgPSB7XHJcbiAgICAgICAgaW1hZ2VzcmM6IGA8c3Bhbj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjU2XCIgaGVpZ2h0PVwiNTZcIiB2aWV3Qm94PVwiMCAwIDU2IDU2XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgIDxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgZmlsbD1cIiNGRUYwQzdcIi8+XHJcbiAgICAgICAgICAgICAgICA8cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIHN0cm9rZT1cIiNGRkZBRUJcIiBzdHJva2Utd2lkdGg9XCI4XCIvPlxyXG4gICAgICAgICAgICAgICAgPHBhdGggZD1cIk0yNy45OTg4IDI0LjAwMTJWMjguMDAxMk0yNy45OTg4IDMyLjAwMTJIMjguMDA4OE0yNi4yODg4IDE4Ljg2MTJMMTcuODE4OCAzMy4wMDEyQzE3LjY0NDIgMzMuMzAzNiAxNy41NTE4IDMzLjY0NjUgMTcuNTUwOCAzMy45OTU3QzE3LjU0OTggMzQuMzQ0OSAxNy42NDAzIDM0LjY4ODMgMTcuODEzMiAzNC45OTE3QzE3Ljk4NjIgMzUuMjk1MSAxOC4yMzU1IDM1LjU0NzkgMTguNTM2NSAzNS43MjVDMTguODM3NSAzNS45MDIxIDE5LjE3OTYgMzUuOTk3MyAxOS41Mjg4IDM2LjAwMTJIMzYuNDY4OEMzNi44MTggMzUuOTk3MyAzNy4xNjAxIDM1LjkwMjEgMzcuNDYxMSAzNS43MjVDMzcuNzYyMSAzNS41NDc5IDM4LjAxMTQgMzUuMjk1MSAzOC4xODQ0IDM0Ljk5MTdDMzguMzU3MyAzNC42ODgzIDM4LjQ0NzggMzQuMzQ0OSAzOC40NDY4IDMzLjk5NTdDMzguNDQ1OCAzMy42NDY1IDM4LjM1MzQgMzMuMzAzNiAzOC4xNzg4IDMzLjAwMTJMMjkuNzA4OCAxOC44NjEyQzI5LjUzMDUgMTguNTY3MyAyOS4yNzk1IDE4LjMyNDMgMjguOTggMTguMTU1N0MyOC42ODA1IDE3Ljk4NyAyOC4zNDI1IDE3Ljg5ODQgMjcuOTk4OCAxNy44OTg0QzI3LjY1NTEgMTcuODk4NCAyNy4zMTcxIDE3Ljk4NyAyNy4wMTc2IDE4LjE1NTdDMjYuNzE4MSAxOC4zMjQzIDI2LjQ2NzEgMTguNTY3MyAyNi4yODg4IDE4Ljg2MTJaXCIgc3Ryb2tlPVwiI0RDNjgwM1wiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+YCxcclxuICAgICAgICB0aXRsZTogYERpc2FibGluZyBDb21wbGlhbmNlIFNjb3JlYCxcclxuICAgICAgICBjb250ZW50OiBgQnkgY2xpY2tpbmcgYW5kIGVuYWJsZSB0aGUgdmFsaWRhdGUgcmVzcG9uc2UsIHRoZSBjb21wbGlhbmNlIHNjb3JlIGNvbmZpZ3VyZWQgd2lsbCBiZSBkaXNhYmxlZCBzaW5jZSBpdCB3b3JrcyBvbmx5IGZvciBDYXB0dXJlIEltYWdlIHdpdGggUnVuIEFJIGVuYWJsZWQuIEFyZSB5b3Ugc3VyZSB0byBwcm9jZWVkP2AsXHJcbiAgICAgICAgYnV0dG9udHlwZTogXCJjb21wbGlhbmNlXCIsXHJcbiAgICAgIH07XHJcbiAgICAgIGRpYWxvZ1JlZi5yZXN1bHQudGhlbigocmVzKSA9PiB7XHJcbiAgICAgICAgaWYocmVzID09ICdjb25maXJtJykge1xyXG4gICAgICAgICAgKCgoKHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChzZWN0aW9uKSBhcyBGb3JtR3JvdXApLmdldCgncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChxdWVzdGlvbikgYXMgRm9ybUdyb3VwKT8uZ2V0KCdjb21wbGlhbmNlJyk/LnBhdGNoVmFsdWUoZmFsc2UpO1xyXG4gICAgICAgICAgKCgoKHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChzZWN0aW9uKSBhcyBGb3JtR3JvdXApLmdldCgncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChxdWVzdGlvbikgYXMgRm9ybUdyb3VwKT8uZ2V0KCdjb21wbGlhbmNlJyk/LmRpc2FibGUoe2VtaXRFdmVudDpmYWxzZX0pO1xyXG4gICAgICAgICAgKCgoKHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChzZWN0aW9uKSBhcyBGb3JtR3JvdXApLmdldCgncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChxdWVzdGlvbikgYXMgRm9ybUdyb3VwKT8uZ2V0KCdjb21wbGlhbmNlU2NvcmUnKT8ucGF0Y2hWYWx1ZSgwKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgaWYoYW5zd2Vycy5ldmVyeSgoZWxlOmFueSkgPT4gZWxlLnJ1bkFJKSAmJiAhdGhpcy5oYXNWYWxpZGF0aW9uRW5hYmxlZChzZWN0aW9uLCBxdWVzdGlvbikpIHtcclxuICAgICAgKCgoKHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChzZWN0aW9uKSBhcyBGb3JtR3JvdXApLmdldCgncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChxdWVzdGlvbikgYXMgRm9ybUdyb3VwKT8uZ2V0KCdjb21wbGlhbmNlJyk/LmVuYWJsZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKGV2ZW50LnRhcmdldC52YWx1ZSA9PSAnRGVzY3JpcHRpdmUgQW5zd2VyJykge1xyXG4gICAgICAoKCgoKCh0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheSlcclxuICAgICAgLmF0KHNlY3Rpb24pIGFzIEZvcm1Hcm91cClcclxuICAgICAgLmdldCgncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5KVxyXG4gICAgICAuYXQocXVlc3Rpb24pIGFzIEZvcm1Hcm91cCkuZ2V0KCdhbnN3ZXJzJykgYXMgRm9ybUFycmF5KS5hdChhbnN3ZXIpIGFzIEZvcm1Hcm91cCkuZ2V0KCdkZXNjcmlwdGl2ZXR5cGUnKT8uc2V0VmFsdWUoJ3RleHQnKTtcclxuICAgIH1cclxuICAgICgoKCgoKHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5KVxyXG4gICAgICAuYXQoc2VjdGlvbikgYXMgRm9ybUdyb3VwKVxyXG4gICAgICAuZ2V0KCdxdWVzdGlvbnMnKSBhcyBGb3JtQXJyYXkpXHJcbiAgICAgIC5hdChxdWVzdGlvbikgYXMgRm9ybUdyb3VwKS5nZXQoJ2Fuc3dlcnMnKSBhcyBGb3JtQXJyYXkpLmF0KGFuc3dlcikgYXMgRm9ybUdyb3VwKS5nZXQoJ2FsbG93VXBsb2FkZnJvbUdhbGxlcnknKT8uc2V0VmFsdWUoZmFsc2UpO1xyXG4gICAgKCgoKCgodGhpcy5DaGVja2xpc3RGb3JtLmdldCgnc2VjdGlvbnMnKSBhcyBGb3JtQXJyYXkpXHJcbiAgICAgIC5hdChzZWN0aW9uKSBhcyBGb3JtR3JvdXApXHJcbiAgICAgIC5nZXQoJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheSlcclxuICAgICAgLmF0KHF1ZXN0aW9uKSBhcyBGb3JtR3JvdXApLmdldCgnYW5zd2VycycpIGFzIEZvcm1BcnJheSkuYXQoYW5zd2VyKSBhcyBGb3JtR3JvdXApLmdldCgncnVuQUknKT8uc2V0VmFsdWUoZmFsc2UpO1xyXG4gICAgKCgoKCgodGhpcy5DaGVja2xpc3RGb3JtLmdldCgnc2VjdGlvbnMnKSBhcyBGb3JtQXJyYXkpXHJcbiAgICAgIC5hdChzZWN0aW9uKSBhcyBGb3JtR3JvdXApXHJcbiAgICAgIC5nZXQoJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheSlcclxuICAgICAgLmF0KHF1ZXN0aW9uKSBhcyBGb3JtR3JvdXApLmdldCgnYW5zd2VycycpIGFzIEZvcm1BcnJheSkuYXQoYW5zd2VyKSBhcyBGb3JtR3JvdXApLmdldCgncnVuQUlEZXNjcmlwdGlvbicpPy5zZXRWYWx1ZSgnJyk7XHJcbiAgICAoKCgoKCgodGhpcy5DaGVja2xpc3RGb3JtLmdldCgnc2VjdGlvbnMnKSBhcyBGb3JtQXJyYXkpXHJcbiAgICAgIC5hdChzZWN0aW9uKSBhcyBGb3JtR3JvdXApXHJcbiAgICAgIC5nZXQoJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheSlcclxuICAgICAgLmF0KHF1ZXN0aW9uKSBhcyBGb3JtR3JvdXApLmdldCgnYW5zd2VycycpIGFzIEZvcm1BcnJheSkuYXQoYW5zd2VyKSBhcyBGb3JtR3JvdXApLmdldCgncnVuQUlGZWF0dXJlcycpIGFzIEZvcm1BcnJheSk/LmNsZWFyKCk7XHJcbiAgICAoKCgoKCgodGhpcy5DaGVja2xpc3RGb3JtLmdldCgnc2VjdGlvbnMnKSBhcyBGb3JtQXJyYXkpXHJcbiAgICAgIC5hdChzZWN0aW9uKSBhcyBGb3JtR3JvdXApXHJcbiAgICAgIC5nZXQoJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheSlcclxuICAgICAgLmF0KHF1ZXN0aW9uKSBhcyBGb3JtR3JvdXApLmdldCgnYW5zd2VycycpIGFzIEZvcm1BcnJheSkuYXQoYW5zd2VyKSBhcyBGb3JtR3JvdXApLmdldCgnbXVsdGlSZWZlcmVuY2VJbWFnZScpIGFzIEZvcm1BcnJheSk/LmNsZWFyKCk7XHJcbiAgfVxyXG5cclxuICBzZXRBbnN3ZXJBc0Zvcm1BcnJheShzZWN0aW9uSW5kZXg6IG51bWJlciwgcXVlc3Rpb25JbmRleDogbnVtYmVyLHNlbGVjdHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIGxldCBxdWVzdGlvbiA9ICgoKCh0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheSlcclxuICAgICAgLmF0KHNlY3Rpb25JbmRleCkgYXMgRm9ybUdyb3VwKVxyXG4gICAgICAuZ2V0KCdxdWVzdGlvbnMnKSBhcyBGb3JtQXJyYXkpXHJcbiAgICAgIC5hdChxdWVzdGlvbkluZGV4KSBhcyBGb3JtR3JvdXApO1xyXG4gICAgXHJcbiAgICBpZiAoc2VsZWN0dmFsdWUgPT0gJ3llcy9ubycpIHtcclxuICAgICAgcXVlc3Rpb24uc2V0Q29udHJvbCgnYW5zd2VycycsXHJcbiAgICAgICAgdGhpcy5mYi5hcnJheShbXHJcbiAgICAgICAgICB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgICAgICAgJ2Fuc3dlcic6IHRoaXMuZmIuY29udHJvbCgnWWVzJywgW1ZhbGlkYXRvcnMucmVxdWlyZWQsbm9XaGl0ZXNwYWNlVmFsaWRhdG9yKCldKSxcclxuICAgICAgICAgICAgJ2Fuc3dlcm9wdGlvbk51bWJlcic6IHRoaXMuZmIuY29udHJvbCgxKSxcclxuICAgICAgICAgICAgJ3NvcEZsYWcnOiB0aGlzLmZiLmNvbnRyb2woZmFsc2UsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXHJcbiAgICAgICAgICAgIC8vICdsaW5rUXVlc3Rpb24nOnRoaXMuZmIuY29udHJvbChmYWxzZSxbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxyXG4gICAgICAgICAgICAvLyAnYW5zd2VySW5wdXRTdHlsZSc6IHRoaXMuZmIuY29udHJvbCgncmFkaW8nLFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXHJcbiAgICAgICAgICAgICd2YWxpZGF0aW9uJzogdGhpcy5mYi5jb250cm9sKGZhbHNlLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxyXG4gICAgICAgICAgICAndmFsaWRhdGlvblR5cGUnOiB0aGlzLmZiLmNvbnRyb2woJ0NhcHR1cmUgSW1hZ2UnLCB0aGlzLmFsbG93ZWRWYWx1ZXNWYWxpZGF0b3IoW1wiQ2FwdHVyZSBJbWFnZVwiLCBcIkRlc2NyaXB0aXZlIEFuc3dlclwiLFwiQ2FwdHVyZSBWaWRlb1wiXSkpLFxyXG4gICAgICAgICAgICAnbGlua2VkUXVlc3Rpb24nOnRoaXMuZmIuY29udHJvbCgwLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxyXG4gICAgICAgICAgICAnc2hvd0xpbmtlZCc6dGhpcy5mYi5jb250cm9sKGZhbHNlLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxyXG4gICAgICAgICAgICBcIm11bHRpUmVmZXJlbmNlSW1hZ2VcIjogdGhpcy5mYi5hcnJheShbXSksXHJcbiAgICAgICAgICAgICdydW5BSSc6IHRoaXMuZmIuY29udHJvbChmYWxzZSksXHJcbiAgICAgICAgICAgICdhbGxvd1VwbG9hZGZyb21HYWxsZXJ5JzogdGhpcy5mYi5jb250cm9sKGZhbHNlKSxcclxuICAgICAgICAgICAgJ2Rlc2NyaXB0aXZldHlwZSc6dGhpcy5mYi5jb250cm9sKCcnKSxcclxuICAgICAgICAgICAgXCJyZWZlcmVuY2VJbWFnZVwiOnRoaXMuZmIuY29udHJvbCgnJyksICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIFwicnVuQUlGZWF0dXJlc1wiOnRoaXMuZmIuYXJyYXkoW10pLFxyXG4gICAgICAgICAgICAncnVuQUlEZXNjcmlwdGlvbic6IHRoaXMuZmIuY29udHJvbCgnJyksXHJcbiAgICAgICAgICAgICdjb21wbGlhbmNlU2NvcmUnOnRoaXMuZmIuY29udHJvbCgwKVxyXG4gICAgICAgICAgfSksXHJcbiAgICAgICAgICB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgICAgICAgJ2Fuc3dlcic6IHRoaXMuZmIuY29udHJvbCgnTm8nLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCxub1doaXRlc3BhY2VWYWxpZGF0b3IoKV0pLFxyXG4gICAgICAgICAgICAnYW5zd2Vyb3B0aW9uTnVtYmVyJzogdGhpcy5mYi5jb250cm9sKDIpLFxyXG4gICAgICAgICAgICAnc29wRmxhZyc6IHRoaXMuZmIuY29udHJvbChmYWxzZSwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcclxuICAgICAgICAgICAgJ3ZhbGlkYXRpb24nOiB0aGlzLmZiLmNvbnRyb2woZmFsc2UsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXHJcbiAgICAgICAgICAgICd2YWxpZGF0aW9uVHlwZSc6IHRoaXMuZmIuY29udHJvbCgnQ2FwdHVyZSBJbWFnZScsIHRoaXMuYWxsb3dlZFZhbHVlc1ZhbGlkYXRvcihbXCJDYXB0dXJlIEltYWdlXCIsIFwiRGVzY3JpcHRpdmUgQW5zd2VyXCIsXCJDYXB0dXJlIFZpZGVvXCJdKSksXHJcbiAgICAgICAgICAgICdsaW5rZWRRdWVzdGlvbic6dGhpcy5mYi5jb250cm9sKDAsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXHJcbiAgICAgICAgICAgICdzaG93TGlua2VkJzp0aGlzLmZiLmNvbnRyb2woZmFsc2UsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXHJcbiAgICAgICAgICAgIFwibXVsdGlSZWZlcmVuY2VJbWFnZVwiOiB0aGlzLmZiLmFycmF5KFtdKSxcclxuICAgICAgICAgICAgJ3J1bkFJJzogdGhpcy5mYi5jb250cm9sKGZhbHNlKSxcclxuICAgICAgICAgICAgJ2FsbG93VXBsb2FkZnJvbUdhbGxlcnknOiB0aGlzLmZiLmNvbnRyb2woZmFsc2UpLFxyXG4gICAgICAgICAgICAnZGVzY3JpcHRpdmV0eXBlJzp0aGlzLmZiLmNvbnRyb2woJycpLFxyXG4gICAgICAgICAgICBcInJlZmVyZW5jZUltYWdlXCI6dGhpcy5mYi5jb250cm9sKCcnKSwgICAgICAgICAgICBcclxuICAgICAgICAgICAgXCJydW5BSUZlYXR1cmVzXCI6dGhpcy5mYi5hcnJheShbXSksXHJcbiAgICAgICAgICAgICdydW5BSURlc2NyaXB0aW9uJzogdGhpcy5mYi5jb250cm9sKCcnKSxcclxuICAgICAgICAgICAgJ2NvbXBsaWFuY2VTY29yZSc6dGhpcy5mYi5jb250cm9sKDApXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgIF0sdW5pcXVlU3RyaW5nVmFsaWRhdG9yKCkpXHJcbiAgICAgICk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBxdWVzdGlvbi5zZXRDb250cm9sKCdhbnN3ZXJzJyxcclxuICAgICAgICB0aGlzLmZiLmFycmF5KFtcclxuICAgICAgICAgIHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICAgICAgICAnYW5zd2VyJzogdGhpcy5mYi5jb250cm9sKCcnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCxub1doaXRlc3BhY2VWYWxpZGF0b3IoKV0pLFxyXG4gICAgICAgICAgICAnYW5zd2Vyb3B0aW9uTnVtYmVyJzogdGhpcy5mYi5jb250cm9sKDEpLFxyXG4gICAgICAgICAgICAnc29wRmxhZyc6IHRoaXMuZmIuY29udHJvbChmYWxzZSwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcclxuICAgICAgICAgICAgJ3ZhbGlkYXRpb24nOiB0aGlzLmZiLmNvbnRyb2woZmFsc2UsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXHJcbiAgICAgICAgICAgICd2YWxpZGF0aW9uVHlwZSc6IHRoaXMuZmIuY29udHJvbCgnQ2FwdHVyZSBJbWFnZScsIHRoaXMuYWxsb3dlZFZhbHVlc1ZhbGlkYXRvcihbXCJDYXB0dXJlIEltYWdlXCIsIFwiRGVzY3JpcHRpdmUgQW5zd2VyXCIsXCJDYXB0dXJlIFZpZGVvXCJdKSksXHJcbiAgICAgICAgICAgIC4uLihzZWxlY3R2YWx1ZSA9PSAnbXVsdGlwbGVjaG9pY2VzaW5nbGUnID8ge1wibGlua2VkUXVlc3Rpb25cIjp0aGlzLmZiLmNvbnRyb2woMCwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSwnc2hvd0xpbmtlZCc6dGhpcy5mYi5jb250cm9sKGZhbHNlLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pfSA6IHt9KSxcclxuICAgICAgICAgICAgXCJtdWx0aVJlZmVyZW5jZUltYWdlXCI6IHRoaXMuZmIuYXJyYXkoW10pLFxyXG4gICAgICAgICAgICAncnVuQUknOiB0aGlzLmZiLmNvbnRyb2woZmFsc2UpLFxyXG4gICAgICAgICAgICAnYWxsb3dVcGxvYWRmcm9tR2FsbGVyeSc6IHRoaXMuZmIuY29udHJvbChmYWxzZSksXHJcbiAgICAgICAgICAgICdkZXNjcmlwdGl2ZXR5cGUnOnRoaXMuZmIuY29udHJvbCgnJyksXHJcbiAgICAgICAgICAgIFwicmVmZXJlbmNlSW1hZ2VcIjp0aGlzLmZiLmNvbnRyb2woJycpLFxyXG4gICAgICAgICAgICBcInJ1bkFJRmVhdHVyZXNcIjp0aGlzLmZiLmFycmF5KFtdKSxcclxuICAgICAgICAgICAgJ3J1bkFJRGVzY3JpcHRpb24nOiB0aGlzLmZiLmNvbnRyb2woJycpLFxyXG4gICAgICAgICAgICAnY29tcGxpYW5jZVNjb3JlJzp0aGlzLmZiLmNvbnRyb2woMClcclxuICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgICAgICAgICdhbnN3ZXInOiB0aGlzLmZiLmNvbnRyb2woJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLG5vV2hpdGVzcGFjZVZhbGlkYXRvcigpXSksXHJcbiAgICAgICAgICAgICdhbnN3ZXJvcHRpb25OdW1iZXInOiB0aGlzLmZiLmNvbnRyb2woMSksXHJcbiAgICAgICAgICAgICdzb3BGbGFnJzogdGhpcy5mYi5jb250cm9sKGZhbHNlLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxyXG4gICAgICAgICAgICAndmFsaWRhdGlvbic6IHRoaXMuZmIuY29udHJvbChmYWxzZSwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcclxuICAgICAgICAgICAgJ3ZhbGlkYXRpb25UeXBlJzogdGhpcy5mYi5jb250cm9sKCdDYXB0dXJlIEltYWdlJywgdGhpcy5hbGxvd2VkVmFsdWVzVmFsaWRhdG9yKFtcIkNhcHR1cmUgSW1hZ2VcIiwgXCJEZXNjcmlwdGl2ZSBBbnN3ZXJcIixcIkNhcHR1cmUgVmlkZW9cIl0pKSxcclxuICAgICAgICAgICAgLi4uKHNlbGVjdHZhbHVlID09ICdtdWx0aXBsZWNob2ljZXNpbmdsZScgPyB7XCJsaW5rZWRRdWVzdGlvblwiOnRoaXMuZmIuY29udHJvbCgwLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLCdzaG93TGlua2VkJzp0aGlzLmZiLmNvbnRyb2woZmFsc2UsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSl9IDoge30pLFxyXG4gICAgICAgICAgICBcIm11bHRpUmVmZXJlbmNlSW1hZ2VcIjogdGhpcy5mYi5hcnJheShbXSksXHJcbiAgICAgICAgICAgICdydW5BSSc6IHRoaXMuZmIuY29udHJvbChmYWxzZSksXHJcbiAgICAgICAgICAgICdhbGxvd1VwbG9hZGZyb21HYWxsZXJ5JzogdGhpcy5mYi5jb250cm9sKGZhbHNlKSxcclxuICAgICAgICAgICAgJ2Rlc2NyaXB0aXZldHlwZSc6dGhpcy5mYi5jb250cm9sKCcnKSxcclxuICAgICAgICAgICAgXCJyZWZlcmVuY2VJbWFnZVwiOnRoaXMuZmIuY29udHJvbCgnJyksXHJcbiAgICAgICAgICAgIFwicnVuQUlGZWF0dXJlc1wiOnRoaXMuZmIuYXJyYXkoW10pLFxyXG4gICAgICAgICAgICAncnVuQUlEZXNjcmlwdGlvbic6IHRoaXMuZmIuY29udHJvbCgnJyksXHJcbiAgICAgICAgICAgICdjb21wbGlhbmNlU2NvcmUnOnRoaXMuZmIuY29udHJvbCgwKVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICBdLHVuaXF1ZVN0cmluZ1ZhbGlkYXRvcigpKSxcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIHRoaXMuQ2hlY2tsaXN0Rm9ybS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgfVxyXG5cclxuICBzZXRBbnN3ZXJBc0Zvcm1Hcm91cChzZWN0aW9uSW5kZXg6IG51bWJlciwgcXVlc3Rpb25JbmRleDogbnVtYmVyLCBhbnN3ZXJUeXBlOiBzdHJpbmcpIHtcclxuICAgIGxldCBxdWVzdGlvbiA9ICgoKCh0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheSlcclxuICAgICAgLmF0KHNlY3Rpb25JbmRleCkgYXMgRm9ybUdyb3VwKVxyXG4gICAgICAuZ2V0KCdxdWVzdGlvbnMnKSBhcyBGb3JtQXJyYXkpXHJcbiAgICAgIC5hdChxdWVzdGlvbkluZGV4KSBhcyBGb3JtR3JvdXApXHJcbiAgICBpZiAoWydpbWFnZScsICdkZXNjcmlwdGl2ZUltYWdlJywnbXVsdGlwbGVJbWFnZScsJ2ltYWdlL3ZpZGVvJ10uaW5jbHVkZXMoYW5zd2VyVHlwZSkpIHtcclxuICAgICAgaWYoYW5zd2VyVHlwZSA9PSAnaW1hZ2UnKSB7XHJcbiAgICAgICAgcXVlc3Rpb24uZ2V0KCdjb21wbGlhbmNlJyk/LmRpc2FibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gICAgICB9XHJcbiAgICAgICgoKCh0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheSkuYXQoc2VjdGlvbkluZGV4KSBhcyBGb3JtR3JvdXApXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZ2V0KCdxdWVzdGlvbnMnKSBhcyBGb3JtQXJyYXkpLmF0KHF1ZXN0aW9uSW5kZXgpIGFzIEZvcm1Hcm91cClcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5zZXRDb250cm9sKCdhbnN3ZXJzJywgXHJcbiAgICAgICAgdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgICAgICBcIm11bHRpUmVmZXJlbmNlSW1hZ2VcIjogdGhpcy5mYi5hcnJheShbXSksXHJcbiAgICAgICAgICBcInJlZmVyZW5jZUltYWdlXCI6dGhpcy5mYi5jb250cm9sKCcnKSxcclxuICAgICAgICAgICdydW5BSSc6IHRoaXMuZmIuY29udHJvbChmYWxzZSksXHJcbiAgICAgICAgICAnYWxsb3dVcGxvYWRmcm9tR2FsbGVyeSc6IHRoaXMuZmIuY29udHJvbChmYWxzZSksXHJcbiAgICAgICAgICAuLi4oYW5zd2VyVHlwZSA9PSAnbXVsdGlwbGVJbWFnZScgPyB7J2Rlc2NyaXB0aXZldHlwZSc6dGhpcy5mYi5jb250cm9sKCd0ZXh0Jyl9Ont9KSxcclxuICAgICAgICAgIFwicnVuQUlGZWF0dXJlc1wiOnRoaXMuZmIuYXJyYXkoW10pLFxyXG4gICAgICAgICAgJ3J1bkFJRGVzY3JpcHRpb24nOiB0aGlzLmZiLmNvbnRyb2woJycpLFxyXG4gICAgICAgICAgLi4uKGFuc3dlclR5cGUgPT0gJ2ltYWdlL3ZpZGVvJyAmJiB7bGltaXQ6dGhpcy5mYi5jb250cm9sKGZhbHNlKSx2aWRlb0xpbWl0OnRoaXMuZmIuY29udHJvbCgxKSxpbWFnZUxpbWl0OnRoaXMuZmIuY29udHJvbCgxKX0pLFxyXG4gICAgICAgICAgLi4uKGFuc3dlclR5cGUgPT0gJ2ltYWdlJyAmJiB7bWF0Y2hlZENvdW50OnRoaXMuZmIuY29udHJvbCgwKSxub3RNYXRjaGVkQ291bnQ6dGhpcy5mYi5jb250cm9sKDApfSlcclxuICAgICAgICB9KSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBxdWVzdGlvbi5zZXRDb250cm9sKCdhbnN3ZXJzJywgdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgICAgJ2FsbG93VXBsb2FkZnJvbUdhbGxlcnknOiB0aGlzLmZiLmNvbnRyb2woZmFsc2UpLFxyXG4gICAgICB9KVxyXG4gICAgICApXHJcbiAgICB9XHJcbiAgICB0aGlzLkNoZWNrbGlzdEZvcm0udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gIH1cclxuXHJcbiAgbG9hZEltYWdlRnJvbURldmljZShzZWNJZHg6IG51bWJlcixxSWR4OiBudW1iZXIsZXZlbnQ6IGFueSxhbnNJZHg6bnVtYmVyPS0xLGN0cmxOYW1lOnN0cmluZyA9ICcnLGltZ0lkeDpudW1iZXI9LTEpIHtcclxuICAgIGlmIChldmVudC50YXJnZXQuZmlsZXMgIT0gdW5kZWZpbmVkICYmIGV2ZW50LnRhcmdldC5maWxlcy5sZW5ndGgpIHtcclxuICAgIH1cclxuICAgIGNvbnN0IGlucHV0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XHJcbiAgICBsZXQgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcclxuICAgIGxldCBmaWxlOiBGaWxlID0gZXZlbnQudGFyZ2V0LmZpbGVzWzBdO1xyXG4gICAgZm9ybURhdGEuYXBwZW5kKCdmaWxlJywgZmlsZSwgZmlsZS5uYW1lKTtcclxuICAgIGZvcm1EYXRhLmFwcGVuZCgnY2xpZW50SWQnLHRoaXMuY2xpZW50SWQpXHJcbiAgICB0aGlzLnNvcFNlcnZpY2UuaW1hZ2V1cGxvYWQoZm9ybURhdGEpLnBpcGUodGFrZVVudGlsKHRoaXMuZGV0YWNoKSkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICBpbnB1dC52YWx1ZSA9ICcnO1xyXG4gICAgICBjb25zdCBzZWN0aW9ucyA9IHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5IHwgbnVsbDtcclxuICAgICAgaWYgKCFzZWN0aW9ucykgcmV0dXJuIG51bGw7XHJcbiAgICBcclxuICAgICAgY29uc3Qgc2VjdGlvbiA9IHNlY3Rpb25zLmF0KHNlY0lkeCkgYXMgRm9ybUdyb3VwIHwgbnVsbDtcclxuICAgICAgaWYgKCFzZWN0aW9uKSByZXR1cm4gbnVsbDtcclxuICAgIFxyXG4gICAgICBjb25zdCBxdWVzdGlvbnMgPSBzZWN0aW9uLmdldCgncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5IHwgbnVsbDtcclxuICAgICAgaWYgKCFxdWVzdGlvbnMpIHJldHVybiBudWxsO1xyXG4gICAgXHJcbiAgICAgIGNvbnN0IHF1ZXN0aW9uID0gcXVlc3Rpb25zLmF0KHFJZHgpIGFzIEZvcm1Hcm91cCB8IG51bGw7XHJcblxyXG4gICAgICBpZiAoIXF1ZXN0aW9uKSByZXR1cm4gbnVsbDtcclxuICAgICAgaWYoY3RybE5hbWUpIHtcclxuICAgICAgICBsZXQgcmVmSW1hZ2VzO1xyXG4gICAgICAgIGlmKGN0cmxOYW1lID09IFwibXVsdGlRdWVzdGlvblJlZmVyZW5jZUltYWdlXCIpIHtcclxuICAgICAgICAgIHJlZkltYWdlcyA9IHF1ZXN0aW9uLmdldChjdHJsTmFtZSkgYXMgRm9ybUFycmF5O1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIGxldCBhbnN3ZXJzXHJcbiAgICAgICAgICBpZihhbnNJZHggIT0gLTEpIHtcclxuICAgICAgICAgICAgYW5zd2VycyA9ICgocXVlc3Rpb24uZ2V0KCdhbnN3ZXJzJykgYXMgRm9ybUFycmF5KS5hdChhbnNJZHgpIGFzIEZvcm1Hcm91cCk7IFxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIGFuc3dlcnMgPSBxdWVzdGlvbi5nZXQoJ2Fuc3dlcnMnKSBhcyBGb3JtR3JvdXA7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICByZWZJbWFnZXMgPSBhbnN3ZXJzPy5nZXQoXCJtdWx0aVJlZmVyZW5jZUltYWdlXCIpIGFzIEZvcm1BcnJheTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYocmVmSW1hZ2VzKSB7XHJcbiAgICAgICAgICBpZihpbWdJZHggIT0gLTEpIHtcclxuICAgICAgICAgICAgKHJlZkltYWdlcz8uYXQoaW1nSWR4KSBhcyBGb3JtR3JvdXApPy5zZXRWYWx1ZSh7aW1hZ2VVUkw6cmVzLmRhdGEuaW1nVXJsLHJ1bkFJOmZhbHNlfSlcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICByZWZJbWFnZXM/LnB1c2godGhpcy5mYi5ncm91cCh7aW1hZ2VVUkw6cmVzLmRhdGEuaW1nVXJsLHJ1bkFJOmZhbHNlfSkpXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGVsc2V7XHJcbiAgICAgICAgdGhpcy5nZXRBbnN3ZXJGb3JtR3JvdXBfRm9ybUNvbnRyb2woc2VjSWR4LHFJZHgsXCJtdWx0aVJlZmVyZW5jZUltYWdlXCIsYW5zSWR4KT8uc2V0VmFsdWUocmVzLmRhdGEuaW1nVXJsKTtcclxuICAgICAgfVxyXG4gICAgICBcclxuICAgICAgdGhpcy5DaGVja2xpc3RGb3JtLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgICAgdGhpcy5jaGFuZ2VkZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7ICAgICAgXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgY2xlYXJSZWZlcmVuY2VJbWFnZShzZWNJZHg6IG51bWJlcixxSWR4OiBudW1iZXIsYW5zSWR4Om51bWJlcj0tMSxpbWFnZUluZGV4Om51bWJlcj0tMSxjdHJsTmFtZTpzdHJpbmc9XCJcIikge1xyXG4gICAgLy8gdGhpcy5nZXRBbnN3ZXJGb3JtR3JvdXBfRm9ybUNvbnRyb2woc2VjSWR4LHFJZHgsXCJyZWZlcmVuY2VJbWFnZVwiLGFuc0lkeCk/LnNldFZhbHVlKCcnKTtcclxuICAgIC8vIHRoaXMuZ2V0QW5zd2VyRm9ybUdyb3VwX0Zvcm1Db250cm9sKHNlY0lkeCxxSWR4LCdydW5BSScsYW5zSWR4KT8uc2V0VmFsdWUoZmFsc2UpO1xyXG4gICAgY29uc3Qgc2VjdGlvbnMgPSB0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheSB8IG51bGw7XHJcbiAgICAgIGlmICghc2VjdGlvbnMpIHJldHVybiBudWxsO1xyXG4gICAgXHJcbiAgICAgIGNvbnN0IHNlY3Rpb24gPSBzZWN0aW9ucy5hdChzZWNJZHgpIGFzIEZvcm1Hcm91cCB8IG51bGw7XHJcbiAgICAgIGlmICghc2VjdGlvbikgcmV0dXJuIG51bGw7XHJcbiAgICBcclxuICAgICAgY29uc3QgcXVlc3Rpb25zID0gc2VjdGlvbi5nZXQoJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheSB8IG51bGw7XHJcbiAgICAgIGlmICghcXVlc3Rpb25zKSByZXR1cm4gbnVsbDtcclxuICAgIFxyXG4gICAgICBjb25zdCBxdWVzdGlvbiA9IHF1ZXN0aW9ucy5hdChxSWR4KSBhcyBGb3JtR3JvdXAgfCBudWxsO1xyXG4gICAgICBpZiAoIXF1ZXN0aW9uKSByZXR1cm4gbnVsbDtcclxuICAgIGlmKGltYWdlSW5kZXggIT0gLTEgJiYgY3RybE5hbWUpIHtcclxuICAgICAgbGV0IHJlZkltYWdlcztcclxuICAgICAgaWYoY3RybE5hbWUgPT0gXCJtdWx0aVF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2VcIikge1xyXG4gICAgICAgIHJlZkltYWdlcyA9IHF1ZXN0aW9uLmdldChjdHJsTmFtZSkgYXMgRm9ybUFycmF5O1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIGxldCBhbnN3ZXJzO1xyXG4gICAgICAgIGlmKGFuc0lkeCAhPSAtMSkge1xyXG4gICAgICAgICAgYW5zd2VycyA9ICgocXVlc3Rpb24uZ2V0KCdhbnN3ZXJzJykgYXMgRm9ybUFycmF5KS5hdChhbnNJZHgpIGFzIEZvcm1Hcm91cClcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICBhbnN3ZXJzID0gcXVlc3Rpb24uZ2V0KCdhbnN3ZXJzJykgYXMgRm9ybUdyb3VwO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZWZJbWFnZXMgPSBhbnN3ZXJzLmdldChjdHJsTmFtZSkgYXMgRm9ybUFycmF5O1xyXG4gICAgICB9XHJcbiAgICAgICAgcmVmSW1hZ2VzLnJlbW92ZUF0KGltYWdlSW5kZXgpO1xyXG5cclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAocXVlc3Rpb24uZ2V0KFwibXVsdGlSZWZlcmVuY2VJbWFnZVwiKSBhcyBGb3JtQXJyYXkpPy5jbGVhcigpO1xyXG4gICAgICAocXVlc3Rpb24uZ2V0KFwibXVsdGlRdWVzdGlvblJlZmVyZW5jZUltYWdlXCIpIGFzIEZvcm1BcnJheSk/LmNsZWFyKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXR2YWxpZGF0aW9uKHNlY3Rpb25JbmRleDogYW55LCBxdWVzdGlvbkluZGV4OiBhbnksIGFkZG1vcmVxbkluZGV4OiBhbnksIGV2ZW50OiBhbnkpIHtcclxuICAgICgoKCgoKHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChzZWN0aW9uSW5kZXgpIGFzIEZvcm1Hcm91cCkuZ2V0KCdxdWVzdGlvbnMnKSBhcyBGb3JtQXJyYXkpLmF0KHF1ZXN0aW9uSW5kZXgpIGFzIEZvcm1Hcm91cCkuZ2V0KCdhbnN3ZXJzJykgYXMgRm9ybUFycmF5KS5hdChhZGRtb3JlcW5JbmRleCkgYXMgRm9ybUdyb3VwKS5nZXQoJ3ZhbGlkYXRpb24nKT8uc2V0VmFsdWUoZXZlbnQudGFyZ2V0LmNoZWNrZWQpO1xyXG4gICAgbGV0IGFuc3dlcnMgPSAoKCgoKHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChzZWN0aW9uSW5kZXgpIGFzIEZvcm1Hcm91cCkuZ2V0KCdxdWVzdGlvbnMnKSBhcyBGb3JtQXJyYXkpLmF0KHF1ZXN0aW9uSW5kZXgpIGFzIEZvcm1Hcm91cCkuZ2V0KCdhbnN3ZXJzJykgYXMgRm9ybUFycmF5KS52YWx1ZTtcclxuICAgIGxldCBjb21wbGlhbmNlID0gKCgoKHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChzZWN0aW9uSW5kZXgpIGFzIEZvcm1Hcm91cCkuZ2V0KCdxdWVzdGlvbnMnKSBhcyBGb3JtQXJyYXkpLmF0KHF1ZXN0aW9uSW5kZXgpIGFzIEZvcm1Hcm91cCk/LmdldCgnY29tcGxpYW5jZScpPy52YWx1ZTtcclxuICAgIGlmKCFhbnN3ZXJzLnNvbWUoKGVsZTphbnkpID0+IGVsZS5ydW5BSSkgJiYgY29tcGxpYW5jZSkge1xyXG4gICAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKFRyYXhwb3B1cENvbXBvbmVudCx7Y2VudGVyZWQ6IHRydWUsIHNpemU6ICdtZCd9KTtcclxuICAgICAgZGlhbG9nUmVmLmNvbXBvbmVudEluc3RhbmNlLmRhdGEgPSB7XHJcbiAgICAgICAgaW1hZ2VzcmM6IGA8c3Bhbj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjU2XCIgaGVpZ2h0PVwiNTZcIiB2aWV3Qm94PVwiMCAwIDU2IDU2XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgIDxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgZmlsbD1cIiNGRUYwQzdcIi8+XHJcbiAgICAgICAgICAgICAgICA8cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIHN0cm9rZT1cIiNGRkZBRUJcIiBzdHJva2Utd2lkdGg9XCI4XCIvPlxyXG4gICAgICAgICAgICAgICAgPHBhdGggZD1cIk0yNy45OTg4IDI0LjAwMTJWMjguMDAxMk0yNy45OTg4IDMyLjAwMTJIMjguMDA4OE0yNi4yODg4IDE4Ljg2MTJMMTcuODE4OCAzMy4wMDEyQzE3LjY0NDIgMzMuMzAzNiAxNy41NTE4IDMzLjY0NjUgMTcuNTUwOCAzMy45OTU3QzE3LjU0OTggMzQuMzQ0OSAxNy42NDAzIDM0LjY4ODMgMTcuODEzMiAzNC45OTE3QzE3Ljk4NjIgMzUuMjk1MSAxOC4yMzU1IDM1LjU0NzkgMTguNTM2NSAzNS43MjVDMTguODM3NSAzNS45MDIxIDE5LjE3OTYgMzUuOTk3MyAxOS41Mjg4IDM2LjAwMTJIMzYuNDY4OEMzNi44MTggMzUuOTk3MyAzNy4xNjAxIDM1LjkwMjEgMzcuNDYxMSAzNS43MjVDMzcuNzYyMSAzNS41NDc5IDM4LjAxMTQgMzUuMjk1MSAzOC4xODQ0IDM0Ljk5MTdDMzguMzU3MyAzNC42ODgzIDM4LjQ0NzggMzQuMzQ0OSAzOC40NDY4IDMzLjk5NTdDMzguNDQ1OCAzMy42NDY1IDM4LjM1MzQgMzMuMzAzNiAzOC4xNzg4IDMzLjAwMTJMMjkuNzA4OCAxOC44NjEyQzI5LjUzMDUgMTguNTY3MyAyOS4yNzk1IDE4LjMyNDMgMjguOTggMTguMTU1N0MyOC42ODA1IDE3Ljk4NyAyOC4zNDI1IDE3Ljg5ODQgMjcuOTk4OCAxNy44OTg0QzI3LjY1NTEgMTcuODk4NCAyNy4zMTcxIDE3Ljk4NyAyNy4wMTc2IDE4LjE1NTdDMjYuNzE4MSAxOC4zMjQzIDI2LjQ2NzEgMTguNTY3MyAyNi4yODg4IDE4Ljg2MTJaXCIgc3Ryb2tlPVwiI0RDNjgwM1wiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+YCxcclxuICAgICAgICB0aXRsZTogYERpc2FibGluZyBDb21wbGlhbmNlIFNjb3JlYCxcclxuICAgICAgICBjb250ZW50OiBgQnkgY2xpY2tpbmcgYW5kIGVuYWJsZSB0aGUgdmFsaWRhdGUgcmVzcG9uc2UsIHRoZSBjb21wbGlhbmNlIHNjb3JlIGNvbmZpZ3VyZWQgd2lsbCBiZSBkaXNhYmxlZCBzaW5jZSBpdCB3b3JrcyBvbmx5IGZvciBDYXB0dXJlIEltYWdlIHdpdGggUnVuIEFJIGVuYWJsZWQuIEFyZSB5b3Ugc3VyZSB0byBwcm9jZWVkP2AsXHJcbiAgICAgICAgYnV0dG9udHlwZTogXCJjb21wbGlhbmNlXCIsXHJcbiAgICAgIH07XHJcbiAgICAgIGRpYWxvZ1JlZi5yZXN1bHQudGhlbigocmVzKSA9PiB7XHJcbiAgICAgICAgaWYocmVzID09ICdjb25maXJtJykge1xyXG4gICAgICAgICAgKCgoKHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChzZWN0aW9uSW5kZXgpIGFzIEZvcm1Hcm91cCkuZ2V0KCdxdWVzdGlvbnMnKSBhcyBGb3JtQXJyYXkpLmF0KHF1ZXN0aW9uSW5kZXgpIGFzIEZvcm1Hcm91cCk/LmdldCgnY29tcGxpYW5jZScpPy5wYXRjaFZhbHVlKGZhbHNlKTtcclxuICAgICAgICAgICgoKCh0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheSkuYXQoc2VjdGlvbkluZGV4KSBhcyBGb3JtR3JvdXApLmdldCgncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChxdWVzdGlvbkluZGV4KSBhcyBGb3JtR3JvdXApPy5nZXQoJ2NvbXBsaWFuY2UnKT8uZGlzYWJsZSh7ZW1pdEV2ZW50OmZhbHNlfSk7XHJcbiAgICAgICAgICAoKCgodGhpcy5DaGVja2xpc3RGb3JtLmdldCgnc2VjdGlvbnMnKSBhcyBGb3JtQXJyYXkpLmF0KHNlY3Rpb25JbmRleCkgYXMgRm9ybUdyb3VwKS5nZXQoJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheSkuYXQocXVlc3Rpb25JbmRleCkgYXMgRm9ybUdyb3VwKT8uZ2V0KCdjb21wbGlhbmNlU2NvcmUnKT8ucGF0Y2hWYWx1ZSgwKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAoKCgoKCh0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheSkuYXQoc2VjdGlvbkluZGV4KSBhcyBGb3JtR3JvdXApLmdldCgncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChxdWVzdGlvbkluZGV4KSBhcyBGb3JtR3JvdXApLmdldCgnYW5zd2VycycpIGFzIEZvcm1BcnJheSkuYXQoYWRkbW9yZXFuSW5kZXgpIGFzIEZvcm1Hcm91cCkuZ2V0KCd2YWxpZGF0aW9uJyk/LnNldFZhbHVlKGZhbHNlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG5cclxuICAgIH1cclxuICAgIGlmKCFhbnN3ZXJzLnNvbWUoKGVsZTphbnkpID0+IGVsZS5ydW5BSSkgJiYgIWNvbXBsaWFuY2UpIHtcclxuICAgICAgaWYoZXZlbnQudGFyZ2V0LmNoZWNrZWQpIHtcclxuICAgICAgICAoKCgodGhpcy5DaGVja2xpc3RGb3JtLmdldCgnc2VjdGlvbnMnKSBhcyBGb3JtQXJyYXkpLmF0KHNlY3Rpb25JbmRleCkgYXMgRm9ybUdyb3VwKS5nZXQoJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheSkuYXQocXVlc3Rpb25JbmRleCkgYXMgRm9ybUdyb3VwKT8uZ2V0KCdjb21wbGlhbmNlJyk/LmRpc2FibGUoe2VtaXRFdmVudDpmYWxzZX0pXHJcbiAgICAgIH1cclxuICAgICAgZWxzZSBpZighYW5zd2Vycy5zb21lKChlbGU6YW55KSA9PiBlbGUudmFsaWRhdGlvbikpIHtcclxuICAgICAgICAoKCgodGhpcy5DaGVja2xpc3RGb3JtLmdldCgnc2VjdGlvbnMnKSBhcyBGb3JtQXJyYXkpLmF0KHNlY3Rpb25JbmRleCkgYXMgRm9ybUdyb3VwKS5nZXQoJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheSkuYXQocXVlc3Rpb25JbmRleCkgYXMgRm9ybUdyb3VwKT8uZ2V0KCdjb21wbGlhbmNlJyk/LmVuYWJsZSh7ZW1pdEV2ZW50OmZhbHNlfSlcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYWRkTmV3UXVlc3Rpb24oc2VjdGlvbkluZGV4OiBudW1iZXIpIHtcclxuXHJcbiAgICBpZiAodGhpcy5zZWN0aW9uSW5kZXggPiAtMSkge1xyXG4gICAgICBpZiAoISgoKHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChzZWN0aW9uSW5kZXgpIGFzIEZvcm1Hcm91cCkuZ2V0KCdxdWVzdGlvbnMnKSkpIHtcclxuICAgICAgICAoKHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChzZWN0aW9uSW5kZXgpIGFzIEZvcm1Hcm91cCkuc2V0Q29udHJvbCgncXVlc3Rpb25zJywgdGhpcy5mYi5hcnJheShbXSkpO1xyXG4gICAgICB9XHJcbiAgICAgIGxldCBxdWVzdGlvbnMgPSAoKCh0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheSkuYXQoc2VjdGlvbkluZGV4KSBhcyBGb3JtR3JvdXApLmdldCgncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5KTtcclxuXHJcbiAgICAgIGxldCBxdWVzdGlvbnNMZW5ndGggPSBxdWVzdGlvbnMubGVuZ3RoO1xyXG4gICAgICBxdWVzdGlvbnMucHVzaCh0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgICBcInFub1wiOiB0aGlzLmZiLmNvbnRyb2wocXVlc3Rpb25zTGVuZ3RoICsgMSwpLFxyXG4gICAgICAgICdxbmFtZSc6IHRoaXMuZmIuY29udHJvbCgnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWQsbm9XaGl0ZXNwYWNlVmFsaWRhdG9yKCldKSxcclxuICAgICAgICAnYW5zd2VyVHlwZSc6IHRoaXMuZmIuY29udHJvbCgnZGVzY3JpcHRpdmUnLFxyXG4gICAgICAgICAgdGhpcy5hbGxvd2VkVmFsdWVzVmFsaWRhdG9yKFtcImRlc2NyaXB0aXZlXCIsIFwieWVzL25vXCIsIFwibXVsdGlwbGVjaG9pY2VzaW5nbGVcIiwgXCJtdWx0aXBsZWNob2ljZW11bHRpcGxlXCIsXCJkZXNjcmlwdGl2ZUltYWdlXCIsIFwiaW1hZ2VcIiwgXCJ2aWRlb1wiLCdtdWx0aXBsZUltYWdlJywnZGF0ZScsJ2xpbmVhcnNjYWxlJywndGltZScsJ2ltYWdlL3ZpZGVvJywnZHJvcGRvd24nXSkpLFxyXG4gICAgICAgICdydW5BSSc6IHRoaXMuZmIuY29udHJvbChmYWxzZSwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcclxuICAgICAgICAncnVuQUlEZXNjcmlwdGlvbic6IHRoaXMuZmIuY29udHJvbCgnJyksXHJcbiAgICAgICAgJ2FsbG93VXBsb2FkZnJvbUdhbGxlcnknOiB0aGlzLmZiLmNvbnRyb2woZmFsc2UsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXHJcbiAgICAgICAgJ2xpbmtUeXBlJzogdGhpcy5mYi5jb250cm9sKGZhbHNlLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxyXG4gICAgICAgIFwibXVsdGlRdWVzdGlvblJlZmVyZW5jZUltYWdlXCI6dGhpcy5mYi5hcnJheShbXSksXHJcbiAgICAgICAgJ2Rlc2NyaXB0aXZldHlwZSc6dGhpcy5mYi5jb250cm9sKCd0ZXh0JyksXHJcbiAgICAgICAgJ3F1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UnOnRoaXMuZmIuY29udHJvbCgnJyksXHJcbiAgICAgICAgXCJydW5BSUZlYXR1cmVzXCI6dGhpcy5mYi5hcnJheShbXSksICAgICAgICBcclxuICAgICAgICBcInVuaXF1ZXFub1wiOiB0aGlzLmZiLmNvbnRyb2woMCksXHJcbiAgICAgICAgXCJ1bmlxdWVxaWRcIjogdGhpcy5mYi5jb250cm9sKCcnKSxcclxuICAgICAgICBcImFsbG93TXVsdGlwbGVcIjp0aGlzLmZiLmNvbnRyb2woZmFsc2UpLFxyXG4gICAgICAgICdjb21wbGlhbmNlJzp0aGlzLmZiLmNvbnRyb2woZmFsc2UpXHJcbiAgICAgIH0pKTsgICAgICBcclxuICAgICAgdGhpcy5jaGFuZ2VkZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgIHRoaXMuc3dhbFRvYXN0KCdOZXcgcXVlc3Rpb24gYWRkZWQhJyk7XHJcbiAgICAgIHNldFRpbWVvdXQoKCk9PiB7XHJcbiAgICAgICAgdGhpcy5zY3JvbGxUb1F1ZXN0aW9uKHNlY3Rpb25JbmRleCxxdWVzdGlvbnNMZW5ndGgpO1xyXG4gICAgICB9LDEwMCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBkZWxldGVRdWVzdGlvbihzZWN0aW9uSW5kZXg6IGFueSwgcXVlc3Rpb25JbmRleDogYW55KSB7XHJcbiAgICB0aGlzLmRlbGV0ZWRMaXN0ID0gW107XHJcbiAgICBsZXQgcXVlc3Rpb24gPSB0aGlzLmdldFF1ZXN0aW9uRm9ybUNvbnRyb2woc2VjdGlvbkluZGV4LCBxdWVzdGlvbkluZGV4LCAncW5hbWUnKT8udmFsdWUgfHwgJyc7XHJcbiAgICBsZXQgcW5vID0gdGhpcy5nZXRRdWVzdGlvbkZvcm1Db250cm9sKHNlY3Rpb25JbmRleCwgcXVlc3Rpb25JbmRleCwgJ3FubycpPy52YWx1ZTtcclxuICAgIHF1ZXN0aW9uID0gcXVlc3Rpb24gPyBxdWVzdGlvbiA6IGBRdWVzdGlvbiAke3RoaXMuZ2V0UXVlc3Rpb25Gb3JtQ29udHJvbChzZWN0aW9uSW5kZXgsIHF1ZXN0aW9uSW5kZXgsICdxbm8nKT8udmFsdWUgfHwgJyd9YDtcclxuICAgIHF1ZXN0aW9uID0gcXVlc3Rpb24ubGVuZ3RoID4gMjAgPyBxdWVzdGlvbi5zbGljZSgwLDIwKSArICcuLi4nIDogcXVlc3Rpb247XHJcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKFRyYXhwb3B1cENvbXBvbmVudCx7Y2VudGVyZWQ6IHRydWUsIHNpemU6ICdtZCd9KTtcclxuICAgIGRpYWxvZ1JlZi5jb21wb25lbnRJbnN0YW5jZS5kYXRhID0ge1xyXG4gICAgICBpbWFnZXNyYzogYDxzcGFuPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiNTZcIiBoZWlnaHQ9XCI1NlwiIHZpZXdCb3g9XCIwIDAgNTYgNTZcIiBmaWxsPVwibm9uZVwiPjxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgZmlsbD1cIiNGRUU0RTJcIi8+PHBhdGggZD1cIk0yOCAyNFYyOE0yOCAzMkgyOC4wMU0zOCAyOEMzOCAzMy41MjI4IDMzLjUyMjggMzggMjggMzhDMjIuNDc3MiAzOCAxOCAzMy41MjI4IDE4IDI4QzE4IDIyLjQ3NzIgMjIuNDc3MiAxOCAyOCAxOEMzMy41MjI4IDE4IDM4IDIyLjQ3NzIgMzggMjhaXCIgc3Ryb2tlPVwiI0Q5MkQyMFwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PHJlY3QgeD1cIjRcIiB5PVwiNFwiIHdpZHRoPVwiNDhcIiBoZWlnaHQ9XCI0OFwiIHJ4PVwiMjRcIiBzdHJva2U9XCIjRkVGM0YyXCIgc3Ryb2tlLXdpZHRoPVwiOFwiLz48L3N2Zz48L3NwYW4+YCxcclxuICAgICAgdGl0bGU6IGBEZWxldGUgJyR7cXVlc3Rpb259Jz9gLFxyXG4gICAgICBjb250ZW50OiBgQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSA8Yj4nJHtxdWVzdGlvbn0nPC9iPj8gVGhpcyBhY3Rpb24gY2Fubm90IGJlIHVuZG9uZS5gLFxyXG4gICAgICBidXR0b250eXBlOiAnZGVsZXRlJ1xyXG4gICAgfVxyXG4gICAgZGlhbG9nUmVmLnJlc3VsdC50aGVuKChyZXMpID0+IHtcclxuICAgICAgaWYgKHJlcyA9PSAnZGVsZXRlJykge1xyXG4gICAgICAgIGxldCBsaW5rZWRRdWVzdGlvbjphbnkgPSAoKCh0aGlzLmdldFNlY3Rpb25Gb3JtQXJyYXkoKS5hdChzZWN0aW9uSW5kZXgpLmdldCgncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChxdWVzdGlvbkluZGV4KSBhcyBGb3JtR3JvdXApLmdldCgnYW5zd2VycycpIGFzIEZvcm1BcnJheSk7XHJcbiAgICAgICAgbGV0IHR5cGU6YW55ID0gKCh0aGlzLmdldFNlY3Rpb25Gb3JtQXJyYXkoKS5hdChzZWN0aW9uSW5kZXgpLmdldCgncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChxdWVzdGlvbkluZGV4KSBhcyBGb3JtR3JvdXApLmdldCgnYW5zd2VyVHlwZScpPy52YWx1ZTtcclxuICAgICAgICBpZighWydkZXNjcmlwdGl2ZScsJ2ltYWdlJywgJ2Rlc2NyaXB0aXZlSW1hZ2UnLCdtdWx0aXBsZUltYWdlJywndmlkZW8nLCdsaW5lYXJzY2FsZScsJ3RpbWUnLCdkYXRlJ10uaW5jbHVkZXModHlwZSkpIHtcclxuICAgICAgICAgIGZvcihsZXQgaT0wO2k8bGlua2VkUXVlc3Rpb24/Lmxlbmd0aDtpKyspIHtcclxuICAgICAgICAgICAgbGV0IGxpbmtlZFFuID0gKChsaW5rZWRRdWVzdGlvbi5hdChpKSBhcyBGb3JtR3JvdXApLmdldCgnbGlua2VkUXVlc3Rpb24nKT8udmFsdWUpO1xyXG4gICAgICAgICAgICBpZihsaW5rZWRRbikge1xyXG4gICAgICAgICAgICAgIGxldCBubyA9IGxpbmtlZFFuIC0xO1xyXG4gICAgICAgICAgICAgICgodGhpcy5nZXRTZWN0aW9uRm9ybUFycmF5KCkuYXQoc2VjdGlvbkluZGV4KS5nZXQoJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheSkuYXQobm8pIGFzIEZvcm1Hcm91cCkuZ2V0KCdsaW5rVHlwZScpPy5zZXRWYWx1ZShmYWxzZSk7XHJcbiAgICAgICAgICAgICAgaWYobGlua2VkUW4gJiYgcGFyc2VJbnQobGlua2VkUW4pID4gcXVlc3Rpb25JbmRleCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zdWJ0cmFjdFF1ZXN0aW9ubm8oc2VjdGlvbkluZGV4LGxpbmtlZFFuLTEpXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgICh0aGlzLmdldFNlY3Rpb25Gb3JtQ29udHJvbChzZWN0aW9uSW5kZXgsICdxdWVzdGlvbnMnKSBhcyBGb3JtQXJyYXkpLnJlbW92ZUF0KHF1ZXN0aW9uSW5kZXgpO1xyXG4gICAgICAgIHRoaXMucmVtb3ZlZE5lc3RlZFF1ZXN0aW9uKHNlY3Rpb25JbmRleCxxbm8pO1xyXG4gICAgICAgIHRoaXMudXBkYXRlUXVlc3Rpb25Rbm9zKHNlY3Rpb25JbmRleCk7XHJcbiAgICAgICAgdGhpcy5zd2FsVG9hc3QoYCR7cXVlc3Rpb259IGhhcyBiZWVuIGRlbGV0ZWQhYCk7XHJcbiAgICAgICAgdGhpcy5jaGFuZ2VkZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICB9XHJcblxyXG4gIHN1YnRyYWN0UXVlc3Rpb25ubyhzZWN0aW9uSW5kZXg6bnVtYmVyLHF1ZXN0aW9uSW5kZXg6YW55KSB7XHJcbiAgICBsZXQgbGlua2VkUXVlc3Rpb25BbnN3ZXJzID0gKCgodGhpcy5nZXRTZWN0aW9uRm9ybUFycmF5KCkuYXQoc2VjdGlvbkluZGV4KS5nZXQoJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheSkuYXQocXVlc3Rpb25JbmRleCkgYXMgRm9ybUdyb3VwKS5nZXQoJ2Fuc3dlcnMnKSBhcyBGb3JtQXJyYXkpO1xyXG4gICAgbGV0IG5vID0gKCh0aGlzLmdldFNlY3Rpb25Gb3JtQXJyYXkoKS5hdChzZWN0aW9uSW5kZXgpLmdldCgncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChxdWVzdGlvbkluZGV4KSBhcyBGb3JtR3JvdXApLmdldCgncW5vJyk/LnZhbHVlO1xyXG4gICAgdGhpcy5kZWxldGVkTGlzdC5wdXNoKG5vKTtcclxuICAgIGZvcihsZXQgaj0wO2o8bGlua2VkUXVlc3Rpb25BbnN3ZXJzPy5sZW5ndGg7aisrKSB7XHJcbiAgICAgIGxldCBsaW5rZWRRbiA9ICgobGlua2VkUXVlc3Rpb25BbnN3ZXJzLmF0KGopIGFzIEZvcm1Hcm91cCkuZ2V0KCdsaW5rZWRRdWVzdGlvbicpPy52YWx1ZSk7XHJcbiAgICAgIGlmKGxpbmtlZFFuICYmIHBhcnNlSW50KGxpbmtlZFFuKSA+IHF1ZXN0aW9uSW5kZXgpIHtcclxuICAgICAgICAoKGxpbmtlZFF1ZXN0aW9uQW5zd2Vycy5hdChqKSBhcyBGb3JtR3JvdXApLmdldCgnbGlua2VkUXVlc3Rpb24nKSk/LnNldFZhbHVlKGxpbmtlZFFuIC0gMSk7XHJcbiAgICAgICAgdGhpcy5zdWJ0cmFjdFF1ZXN0aW9ubm8oc2VjdGlvbkluZGV4LGxpbmtlZFFuLTEpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByYWlzZWZsYWcoc2VjdGlvbkluZGV4OiBudW1iZXIsIHF1ZXN0aW9uSW5kZXg6IG51bWJlciwgYW5zSWR4OiBudW1iZXIsdmFsdWU6IGJvb2xlYW4sbGlua0luZGV4Om51bWJlciA9IC0xLGxpbmtBbnNJbmRleDpudW1iZXIgPSAtMSkge1xyXG4gICAgbGV0IHF1ZXN0aW9uID0gKCgoKHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5KT8uYXQoc2VjdGlvbkluZGV4KSBhcyBGb3JtR3JvdXApLmdldCgncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChxdWVzdGlvbkluZGV4KSBhcyBGb3JtR3JvdXApO1xyXG4gICAgaWYodmFsdWUgPT0gdHJ1ZSkge1xyXG4gICAgICBsZXQgYW5zd2VycyA9IChxdWVzdGlvbi5nZXQoJ2Fuc3dlcnMnKSBhcyBGb3JtQXJyYXkpLnZhbHVlO1xyXG4gICAgICBpZihsaW5rSW5kZXggPT0gLTEpIHtcclxuICAgICAgICBpZihhbnN3ZXJzLmZpbHRlcigoeDphbnkpPT4geC5zb3BGbGFnID09IHRydWUpLmxlbmd0aCA9PSAoYW5zd2Vycy5sZW5ndGggLTEpKSB7XHJcbiAgICAgICAgICAoKHF1ZXN0aW9uLmdldCgnYW5zd2VycycpIGFzIEZvcm1BcnJheSkuYXQoYW5zSWR4KSBhcyBGb3JtR3JvdXApLmFkZENvbnRyb2woJ3Nob3dTT1BGbGFnRXJyb3InLHRoaXMuZmIuY29udHJvbCh0cnVlKSk7XHJcbiAgICAgICAgICB0aW1lcig1MDAwKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICAoKHF1ZXN0aW9uLmdldCgnYW5zd2VycycpIGFzIEZvcm1BcnJheSkuYXQoYW5zSWR4KSBhcyBGb3JtR3JvdXApLnJlbW92ZUNvbnRyb2woJ3Nob3dTT1BGbGFnRXJyb3InKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICBsZXQgYW5zd2VycyA9ICgocXVlc3Rpb24uZ2V0KCdhbnN3ZXJzJykgYXMgRm9ybUFycmF5KS5hdChhbnNJZHgpIGFzIEZvcm1Hcm91cCk7XHJcbiAgICAgICAgbGV0IGxpbmtRdWVzdGlvbiA9ICgoYW5zd2Vycy5nZXQoJ2xpbmtRdWVzdGlvbkFuc3dlcnMnKSBhcyBGb3JtQXJyYXkpLmF0KGxpbmtJbmRleCkgYXMgRm9ybUdyb3VwKTtcclxuICAgICAgICBsZXQgbGlua0Fuc3dlcnMgPSAobGlua1F1ZXN0aW9uLmdldCgnYW5zd2VycycpIGFzIEZvcm1BcnJheSkudmFsdWVcclxuICAgICAgICBpZihsaW5rQW5zd2Vycy5maWx0ZXIoKHg6YW55KT0+IHguc29wRmxhZyA9PSB0cnVlKS5sZW5ndGggPT0gKGxpbmtBbnN3ZXJzLmxlbmd0aCAtMSkpIHtcclxuICAgICAgICAgICgobGlua1F1ZXN0aW9uLmdldCgnYW5zd2VycycpIGFzIEZvcm1BcnJheSkuYXQobGlua0Fuc0luZGV4KSBhcyBGb3JtR3JvdXApLmFkZENvbnRyb2woJ3Nob3dTT1BGbGFnRXJyb3InLHRoaXMuZmIuY29udHJvbCh0cnVlKSk7XHJcbiAgICAgICAgICB0aW1lcig1MDAwKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICgobGlua1F1ZXN0aW9uLmdldCgnYW5zd2VycycpIGFzIEZvcm1BcnJheSkuYXQobGlua0Fuc0luZGV4KSBhcyBGb3JtR3JvdXApLnJlbW92ZUNvbnRyb2woJ3Nob3dTT1BGbGFnRXJyb3InKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgICBpZihsaW5rSW5kZXggPT0gLTEpXHJcbiAgICAgICAgKCgoKHF1ZXN0aW9uLmdldCgnYW5zd2VycycpIGFzIEZvcm1BcnJheSk/LmF0KGFuc0lkeCkgYXMgRm9ybUdyb3VwKT8uZ2V0KCdzb3BGbGFnJykgYXMgRm9ybUNvbnRyb2wpKT8uc2V0VmFsdWUodmFsdWUpOyBcclxuICAgIGVsc2UgICB7XHJcbiAgICAgICBsZXQgYW5zd2VycyA9ICgocXVlc3Rpb24uZ2V0KCdhbnN3ZXJzJykgYXMgRm9ybUFycmF5KS5hdChhbnNJZHgpIGFzIEZvcm1Hcm91cCk7XHJcbiAgICAgICAgbGV0IGxpbmtRdWVzdGlvbiA9ICgoYW5zd2Vycy5nZXQoJ2xpbmtRdWVzdGlvbkFuc3dlcnMnKSBhcyBGb3JtQXJyYXkpLmF0KGxpbmtJbmRleCkgYXMgRm9ybUdyb3VwKTtcclxuICAgICAgKCgoKGxpbmtRdWVzdGlvbi5nZXQoJ2Fuc3dlcnMnKSBhcyBGb3JtQXJyYXkpPy5hdChsaW5rQW5zSW5kZXgpIGFzIEZvcm1Hcm91cCk/LmdldCgnc29wRmxhZycpIGFzIEZvcm1Db250cm9sKSk/LnNldFZhbHVlKHZhbHVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGFkZE5lc3RlZFF1ZXN0aW9uKHNlY3Rpb25JbmRleDogbnVtYmVyLCBxdWVzdGlvbkluZGV4OiBudW1iZXIsIGFuc0lkeDogbnVtYmVyLHZhbHVlOiBib29sZWFuLGxpbmtlZFF1ZXN0aW9uSW5kZXg6bnVtYmVyPS0xLGxpbmtlZEFuc3dlcjpudW1iZXIgPSAtMSkge1xyXG4gICAgIGxldCBhbnN3ZXIgPSAoKCgoKHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5KVxyXG4gICAgICAuYXQoc2VjdGlvbkluZGV4KSBhcyBGb3JtR3JvdXApXHJcbiAgICAgIC5nZXQoJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheSlcclxuICAgICAgLmF0KHF1ZXN0aW9uSW5kZXgpIGFzIEZvcm1Hcm91cClcclxuICAgICAgLmdldCgnYW5zd2VycycpIGFzIEZvcm1BcnJheSlcclxuICAgICAgLmF0KGFuc0lkeCkgYXMgRm9ybUdyb3VwXHJcblxyXG4gICAgICBcclxuICAgICAgXHJcbiAgICBpZighYW5zd2VyPy5nZXQoJ2xpbmtRdWVzdGlvbkFuc3dlcnMnKT8udmFsdWUubGVuZ3RoKSB7XHJcbiAgICAgIGFuc3dlci5zZXRDb250cm9sKCdsaW5rUXVlc3Rpb25BbnN3ZXJzJyxcclxuICAgICAgICB0aGlzLmZiLmFycmF5KFtcclxuICAgICAgICAgIHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICAgICAgICBcInFub1wiOiB0aGlzLmZiLmNvbnRyb2woMSksXHJcbiAgICAgICAgICAgICdxbmFtZSc6IHRoaXMuZmIuY29udHJvbCgnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWQsbm9XaGl0ZXNwYWNlVmFsaWRhdG9yKCldKSxcclxuICAgICAgICAgICAgJ2Fuc3dlclR5cGUnOiB0aGlzLmZiLmNvbnRyb2woJ2Rlc2NyaXB0aXZlJyxcclxuICAgICAgICAgICAgICB0aGlzLmFsbG93ZWRWYWx1ZXNWYWxpZGF0b3IoW1wiZGVzY3JpcHRpdmVcIiwgXCJ5ZXMvbm9cIiwgXCJtdWx0aXBsZWNob2ljZXNpbmdsZVwiLCBcIm11bHRpcGxlY2hvaWNlbXVsdGlwbGVcIixcImRlc2NyaXB0aXZlSW1hZ2VcIiwgXCJpbWFnZVwiLCBcInZpZGVvXCIsJ211bHRpcGxlSW1hZ2UnLCdkYXRlJywnbGluZWFyc2NhbGUnLCd0aW1lJywnaW1hZ2UvdmlkZW8nLCdkcm9wZG93biddKSksXHJcbiAgICAgICAgICAgICdydW5BSSc6IHRoaXMuZmIuY29udHJvbChmYWxzZSwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcclxuICAgICAgICAgICAgJ3J1bkFJRGVzY3JpcHRpb24nOiB0aGlzLmZiLmNvbnRyb2woJycpLFxyXG4gICAgICAgICAgICAnYWxsb3dVcGxvYWRmcm9tR2FsbGVyeSc6IHRoaXMuZmIuY29udHJvbChmYWxzZSwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcclxuICAgICAgICAgICAgXCJtdWx0aVF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2VcIjp0aGlzLmZiLmFycmF5KFtdKSxcclxuICAgICAgICAgICAgJ2Rlc2NyaXB0aXZldHlwZSc6dGhpcy5mYi5jb250cm9sKCd0ZXh0JyksXHJcbiAgICAgICAgICAgICdxdWVzdGlvblJlZmVyZW5jZUltYWdlJzp0aGlzLmZiLmNvbnRyb2woJycpLFxyXG4gICAgICAgICAgICAncnVuQUlGZWF0dXJlcyc6dGhpcy5mYi5hcnJheShbXSksICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIFwidW5pcXVlcW5vXCI6IHRoaXMuZmIuY29udHJvbCgwKSxcclxuICAgICAgICAgICAgXCJ1bmlxdWVxaWRcIjogdGhpcy5mYi5jb250cm9sKCcnKSxcclxuICAgICAgICAgICAgXCJhbGxvd011bHRpcGxlXCI6dGhpcy5mYi5jb250cm9sKGZhbHNlKSxcclxuICAgICAgICAgICAgXCJjb21wbGlhbmNlXCI6dGhpcy5mYi5jb250cm9sKGZhbHNlKSxcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgXSlcclxuICAgICAgKVxyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIGxldCBuZXN0ZWRRdWVzdGlvbiA9IGFuc3dlci5nZXQoJ2xpbmtRdWVzdGlvbkFuc3dlcnMnKSBhcyBGb3JtQXJyYXlcclxuICAgICAgbmVzdGVkUXVlc3Rpb24ucHVzaCh0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgICBcInFub1wiOiB0aGlzLmZiLmNvbnRyb2woMSksXHJcbiAgICAgICAgJ3FuYW1lJzogdGhpcy5mYi5jb250cm9sKCcnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCxub1doaXRlc3BhY2VWYWxpZGF0b3IoKV0pLFxyXG4gICAgICAgICdhbnN3ZXJUeXBlJzogdGhpcy5mYi5jb250cm9sKCdkZXNjcmlwdGl2ZScsXHJcbiAgICAgICAgICB0aGlzLmFsbG93ZWRWYWx1ZXNWYWxpZGF0b3IoW1wiZGVzY3JpcHRpdmVcIiwgXCJ5ZXMvbm9cIiwgXCJtdWx0aXBsZWNob2ljZXNpbmdsZVwiLCBcIm11bHRpcGxlY2hvaWNlbXVsdGlwbGVcIixcImRlc2NyaXB0aXZlSW1hZ2VcIiwgXCJpbWFnZVwiLCBcInZpZGVvXCIsJ211bHRpcGxlSW1hZ2UnLCdkYXRlJywnbGluZWFyc2NhbGUnLCd0aW1lJywnaW1hZ2UvdmlkZW8nLCdkcm9wZG93biddKSksXHJcbiAgICAgICAgJ3J1bkFJJzogdGhpcy5mYi5jb250cm9sKGZhbHNlLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxyXG4gICAgICAgICdydW5BSURlc2NyaXB0aW9uJzogdGhpcy5mYi5jb250cm9sKCcnKSxcclxuICAgICAgICAnYWxsb3dVcGxvYWRmcm9tR2FsbGVyeSc6IHRoaXMuZmIuY29udHJvbChmYWxzZSwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcclxuICAgICAgICBcIm11bHRpUXVlc3Rpb25SZWZlcmVuY2VJbWFnZVwiOnRoaXMuZmIuYXJyYXkoW10pLFxyXG4gICAgICAgICdkZXNjcmlwdGl2ZXR5cGUnOnRoaXMuZmIuY29udHJvbCgndGV4dCcpLFxyXG4gICAgICAgICdxdWVzdGlvblJlZmVyZW5jZUltYWdlJzp0aGlzLmZiLmNvbnRyb2woJycpLFxyXG4gICAgICAgICdydW5BSUZlYXR1cmVzJzp0aGlzLmZiLmFycmF5KFtdKSwgICAgICAgIFxyXG4gICAgICAgIFwidW5pcXVlcW5vXCI6IHRoaXMuZmIuY29udHJvbCgwKSxcclxuICAgICAgICBcInVuaXF1ZXFpZFwiOiB0aGlzLmZiLmNvbnRyb2woJycpLFxyXG4gICAgICAgIFwiYWxsb3dNdWx0aXBsZVwiOnRoaXMuZmIuY29udHJvbChmYWxzZSksXHJcbiAgICAgICAgXCJjb21wbGlhbmNlXCI6dGhpcy5mYi5jb250cm9sKGZhbHNlKSxcclxuICAgICAgfSkpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5DaGVja2xpc3RGb3JtLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICB9XHJcbiBcclxuICBhY2NvcmRpYW4oaW5kZXg6IGFueSkge1xyXG4gICAgaWYgKHRoaXMuc2hvdyA9PSBpbmRleCkge1xyXG4gICAgICB0aGlzLnNob3cgPSAtMTtcclxuICAgICAgdGhpcy5zZWN0aW9uSW5kZXggPSAtMTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2hvdyA9IGluZGV4O1xyXG4gICAgICB0aGlzLnNlY3Rpb25JbmRleCA9IGluZGV4O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZGVsZXRlU2VjdGlvbihzZWN0aW9uSW5kZXg6IGFueSkge1xyXG4gICAgbGV0IHNlY3Rpb24gPSAoKHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChzZWN0aW9uSW5kZXgpIGFzIEZvcm1Hcm91cCk7XHJcbiAgICBsZXQgc2VjdGlvbkxlbmd0aDphbnkgPSBcIiBcIiArIChzZWN0aW9uLmdldCgncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5KS5sZW5ndGg7XHJcbiAgICBsZXQgc2VjdGlvbk5hbWU6c3RyaW5nID0gc2VjdGlvbi5nZXQoJ25hbWUnKT8udmFsdWU7XHJcbiAgICBzZWN0aW9uTmFtZSA9IHNlY3Rpb25OYW1lLmxlbmd0aCA+IDIwID8gKHNlY3Rpb25OYW1lLnNsaWNlKDAsIDIwKSArIFwiLi4uXCIpIDogc2VjdGlvbk5hbWU7XHJcbiAgICBsZXQgcXVlc3Rpb25fdGV4dCA9ICcnXHJcbiAgICBpZiAoc2VjdGlvbkxlbmd0aCA9PSAxKVxyXG4gICAgICBxdWVzdGlvbl90ZXh0ID0gJ1F1ZXN0aW9uJ1xyXG4gICAgZWxzZVxyXG4gICAgIHF1ZXN0aW9uX3RleHQgPSAnUXVlc3Rpb25zJ1xyXG4gICAgY29uc3QgcG9wdXBjb250ZW50ID0ge1xyXG4gICAgICBkaXNwbGF5cHJvcDogZmFsc2UsXHJcbiAgICAgIGltYWdlc3JjOiBgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCI1NlwiIGhlaWdodD1cIjU2XCIgdmlld0JveD1cIjAgMCA1NiA1NlwiIGZpbGw9XCJub25lXCI+PHJlY3QgeD1cIjRcIiB5PVwiNFwiIHdpZHRoPVwiNDhcIiBoZWlnaHQ9XCI0OFwiIHJ4PVwiMjRcIiBmaWxsPVwiI0ZFRTRFMlwiLz48cGF0aCBkPVwiTTI4IDI0VjI4TTI4IDMySDI4LjAxTTM4IDI4QzM4IDMzLjUyMjggMzMuNTIyOCAzOCAyOCAzOEMyMi40NzcyIDM4IDE4IDMzLjUyMjggMTggMjhDMTggMjIuNDc3MiAyMi40NzcyIDE4IDI4IDE4QzMzLjUyMjggMTggMzggMjIuNDc3MiAzOCAyOFpcIiBzdHJva2U9XCIjRDkyRDIwXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIHN0cm9rZT1cIiNGRUYzRjJcIiBzdHJva2Utd2lkdGg9XCI4XCIvPjwvc3ZnPmAsXHJcbiAgICAgIHRpdGxlOiBgRGVsZXRlICcke3NlY3Rpb25OYW1lfSBTZWN0aW9uJz9gLFxyXG4gICAgICBjb250ZW50OiBgQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZScgPGI+JyR7c2VjdGlvbk5hbWV9JzwvYj4/IHdpdGggPGI+JHtzZWN0aW9uTGVuZ3RofSAke3F1ZXN0aW9uX3RleHR9PC9iPiBUaGlzIGFjdGlvbiBjYW5ub3QgYmUgdW5kb25lLmAsXHJcbiAgICAgIGJ1dHRvbnR5cGU6ICdkZWxldGUnXHJcbiAgICB9XHJcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKFRyYXhwb3B1cENvbXBvbmVudCx7Y2VudGVyZWQ6IHRydWUsIHNpemU6ICdtZCd9KTtcclxuICAgIGRpYWxvZ1JlZi5jb21wb25lbnRJbnN0YW5jZS5kYXRhID0gcG9wdXBjb250ZW50XHJcbiAgICBkaWFsb2dSZWYucmVzdWx0LnRoZW4oKHJlcykgPT4ge1xyXG4gICAgICBpZiAocmVzID09ICdkZWxldGUnKSB7XHJcbiAgICAgICAgKHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5KS5yZW1vdmVBdChzZWN0aW9uSW5kZXgpXHJcbiAgICAgICAgdGhpcy5jaGFuZ2VkZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgQWRkTW9yZUFucyhzZWN0aW9uaW5kZXg6IGFueSwgcXVlc3Rpb25JbmRleDogYW55LHR5cGU6c3RyaW5nKSB7XHJcbiAgICBsZXQgYW5zb3B0aW9uID1cclxuICAgICAgKCgoKHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5KVxyXG4gICAgICAgIC5hdChzZWN0aW9uaW5kZXgpIGFzIEZvcm1Hcm91cClcclxuICAgICAgICAuZ2V0KCdxdWVzdGlvbnMnKSBhcyBGb3JtQXJyYXkpXHJcbiAgICAgICAgLmF0KHF1ZXN0aW9uSW5kZXgpXHJcbiAgICAgICAgLmdldCgnYW5zd2VycycpIGFzIEZvcm1BcnJheSk7XHJcbiAgICBsZXQgYW5zb3B0aW9uTGVuZ3RoID0gYW5zb3B0aW9uLmxlbmd0aDtcclxuICAgIGlmIChhbnNvcHRpb25MZW5ndGggPD0gMjkpIHtcclxuICAgICAgYW5zb3B0aW9uLnB1c2goXHJcbiAgICAgICAgdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgICAgICAnYW5zd2VyJzogdGhpcy5mYi5jb250cm9sKGBgLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCxub1doaXRlc3BhY2VWYWxpZGF0b3IoKV0pLFxyXG4gICAgICAgICAgJ2Fuc3dlcm9wdGlvbk51bWJlcic6IHRoaXMuZmIuY29udHJvbChhbnNvcHRpb25MZW5ndGggKyAxKSxcclxuICAgICAgICAgICdzb3BGbGFnJzogdGhpcy5mYi5jb250cm9sKGZhbHNlLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxyXG4gICAgICAgICAgJ3ZhbGlkYXRpb24nOiB0aGlzLmZiLmNvbnRyb2woZmFsc2UsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXHJcbiAgICAgICAgICAndmFsaWRhdGlvblR5cGUnOiB0aGlzLmZiLmNvbnRyb2woJ0NhcHR1cmUgSW1hZ2UnLCB0aGlzLmFsbG93ZWRWYWx1ZXNWYWxpZGF0b3IoW1wiQ2FwdHVyZSBJbWFnZVwiLCBcIkRlc2NyaXB0aXZlIEFuc3dlclwiLFwiQ2FwdHVyZSBWaWRlb1wiXSkpLFxyXG4gICAgICAgICAgXCJtdWx0aVJlZmVyZW5jZUltYWdlXCI6IHRoaXMuZmIuYXJyYXkoW10pLFxyXG4gICAgICAgICAgJ2FsbG93VXBsb2FkZnJvbUdhbGxlcnknOiB0aGlzLmZiLmNvbnRyb2woZmFsc2UpLFxyXG4gICAgICAgICAgLi4uKHR5cGUgPT0gJ211bHRpcGxlY2hvaWNlc2luZ2xlJyA/IHtcImxpbmtlZFF1ZXN0aW9uXCI6dGhpcy5mYi5jb250cm9sKDAsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksJ3Nob3dMaW5rZWQnOnRoaXMuZmIuY29udHJvbChmYWxzZSwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKX0gOiB7fSksXHJcbiAgICAgICAgICAncnVuQUknOiB0aGlzLmZiLmNvbnRyb2woZmFsc2UpLFxyXG4gICAgICAgICAgJ2Rlc2NyaXB0aXZldHlwZSc6dGhpcy5mYi5jb250cm9sKCcnKSxcclxuICAgICAgICAgIC4uLih0eXBlID09ICdtdWx0aXBsZUltYWdlJyA/IHsnZGVzY3JpcHRpdmV0eXBlJzp0aGlzLmZiLmNvbnRyb2woJ3RleHQnKX06e30pLFxyXG4gICAgICAgICAgJ3JlZmVyZW5jZUltYWdlJzp0aGlzLmZiLmNvbnRyb2woJycpLFxyXG4gICAgICAgICAgJ3J1bkFJRmVhdHVyZXMnOnRoaXMuZmIuYXJyYXkoW10pLFxyXG4gICAgICAgICAgJ3J1bkFJRGVzY3JpcHRpb24nOiB0aGlzLmZiLmNvbnRyb2woJycpLFxyXG4gICAgICAgICAgJ2NvbXBsaWFuY2VTY29yZSc6dGhpcy5mYi5jb250cm9sKDApXHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGRlbGV0ZUFuc3dlcihzZWN0aW9uSW5kZXg6IG51bWJlciwgcXVlc3Rpb25JbmRleDogbnVtYmVyLCBhZGRtb3JlcW5JbmRleDogbnVtYmVyLGFuc0luZGV4Om51bWJlciA9IC0xKSB7XHJcbiAgICBpZihhbnNJbmRleCAhPSAtMSkge1xyXG4gICAgICB0aGlzLmdldEZvcm1BcnJheVF1ZXN0aW9uc0Fuc3dlcihzZWN0aW9uSW5kZXgsIHF1ZXN0aW9uSW5kZXgsICdhbnN3ZXJzJyxhbnNJbmRleCkucmVtb3ZlQXQoYWRkbW9yZXFuSW5kZXgpOyAgICBcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLmdldEZvcm1BcnJheVF1ZXN0aW9uc0Fuc3dlcihzZWN0aW9uSW5kZXgsIHF1ZXN0aW9uSW5kZXgsICdhbnN3ZXJzJyxhbnNJbmRleCkucmVtb3ZlQXQoYWRkbW9yZXFuSW5kZXgpOyAgICBcclxuICAgIH1cclxuICAgIHRoaXMuQ2hlY2tsaXN0Rm9ybS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgfVxyXG5cclxuICBjbG9uZVF1ZXN0aW9uKHNlY3Rpb25pbmRleDogYW55LCBxdWVzdGlvbmluZGV4OiBhbnkpIHtcclxuICAgIGxldCBjbG9uZVF1ZXN0aW9uID0gKCh0aGlzLmdldFNlY3Rpb25Gb3JtQ29udHJvbChzZWN0aW9uaW5kZXgsICdxdWVzdGlvbnMnKSBhcyBGb3JtQXJyYXkpLmF0KHF1ZXN0aW9uaW5kZXgpIGFzIEZvcm1Hcm91cCkudmFsdWU7XHJcbiAgICBsZXQgcXVlc3Rpb25MZW5ndGggPSAgKHRoaXMuZ2V0U2VjdGlvbkZvcm1Db250cm9sKHNlY3Rpb25pbmRleCwgJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheSkudmFsdWU7XHJcbiAgICBsZXQgcXVlc3Rpb246IGFueTtcclxuICAgIGxldCBhbnN3ZXI6IGFueTtcclxuICAgIGlmIChjbG9uZVF1ZXN0aW9uLmFuc3dlcnMpIHtcclxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkoY2xvbmVRdWVzdGlvbi5hbnN3ZXJzKSAmJiBjbG9uZVF1ZXN0aW9uLmFuc3dlcnMubGVuZ3RoKSB7XHJcbiAgICAgICAgYW5zd2VyID0gW107XHJcbiAgICAgICAgY2xvbmVRdWVzdGlvbi5hbnN3ZXJzLmZvckVhY2goKGs6IGFueSkgPT4ge1xyXG4gICAgICAgICAgYW5zd2VyLnB1c2goXHJcbiAgICAgICAgICAgIHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICAgICAgICAgIC4uLighWydpbWFnZScsICdkZXNjcmlwdGl2ZUltYWdlJywnbXVsdGlwbGVJbWFnZSddLmluY2x1ZGVzKGNsb25lUXVlc3Rpb24/LmFuc3dlclR5cGUpICYmIGNsb25lUXVlc3Rpb24/LmFuc3dlclR5cGUgIT0gJ3ZpZGVvJyA/IHsgJ2Fuc3dlcic6IHRoaXMuZmIuY29udHJvbChrPy5hbnN3ZXIsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSkgfSA6IHt9KSxcclxuICAgICAgICAgICAgICAuLi4oIVsnaW1hZ2UnLCAnZGVzY3JpcHRpdmVJbWFnZScsJ211bHRpcGxlSW1hZ2UnXS5pbmNsdWRlcyhjbG9uZVF1ZXN0aW9uPy5hbnN3ZXJUeXBlKSAmJiBjbG9uZVF1ZXN0aW9uPy5hbnN3ZXJUeXBlICE9ICd2aWRlbycgPyB7ICdhbnN3ZXJvcHRpb25OdW1iZXInOiB0aGlzLmZiLmNvbnRyb2woaz8uYW5zd2Vyb3B0aW9uTnVtYmVyICsgMSkgfSA6IHt9KSxcclxuICAgICAgICAgICAgICAuLi4oIVsnaW1hZ2UnLCAnZGVzY3JpcHRpdmVJbWFnZScsJ211bHRpcGxlSW1hZ2UnXS5pbmNsdWRlcyhjbG9uZVF1ZXN0aW9uPy5hbnN3ZXJUeXBlKSAmJiBjbG9uZVF1ZXN0aW9uPy5hbnN3ZXJUeXBlICE9ICd2aWRlbycgPyB7ICdzb3BGbGFnJzogdGhpcy5mYi5jb250cm9sKGs/LnNvcEZsYWcgPyBrPy5zb3BGbGFnIDogZmFsc2UsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSkgfSA6IHt9KSxcclxuICAgICAgICAgICAgICAuLi4oIVsnaW1hZ2UnLCAnZGVzY3JpcHRpdmVJbWFnZScsJ211bHRpcGxlSW1hZ2UnXS5pbmNsdWRlcyhjbG9uZVF1ZXN0aW9uPy5hbnN3ZXJUeXBlKSAmJiBjbG9uZVF1ZXN0aW9uPy5hbnN3ZXJUeXBlICE9ICd2aWRlbycgPyB7ICd2YWxpZGF0aW9uJzogdGhpcy5mYi5jb250cm9sKGs/LnZhbGlkYXRpb24sIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSkgfSA6IHt9KSxcclxuICAgICAgICAgICAgICAuLi4oIVsnaW1hZ2UnLCAnZGVzY3JpcHRpdmVJbWFnZScsJ211bHRpcGxlSW1hZ2UnXS5pbmNsdWRlcyhjbG9uZVF1ZXN0aW9uPy5hbnN3ZXJUeXBlKSAmJiBjbG9uZVF1ZXN0aW9uPy5hbnN3ZXJUeXBlICE9ICd2aWRlbycgPyB7ICd2YWxpZGF0aW9uVHlwZSc6IHRoaXMuZmIuY29udHJvbChrPy52YWxpZGF0aW9uVHlwZSwgdGhpcy5hbGxvd2VkVmFsdWVzVmFsaWRhdG9yKFtcIkNhcHR1cmUgSW1hZ2VcIiwgXCJEZXNjcmlwdGl2ZSBBbnN3ZXJcIiwgXCJDYXB0dXJlIFZpZGVvXCJdKSkgfSA6IHt9KSxcclxuICAgICAgICAgICAgICAuLi4oIVsnZGVzY3JpcHRpdmUnLCdpbWFnZScsICdkZXNjcmlwdGl2ZUltYWdlJywnbXVsdGlwbGVJbWFnZScsJ2RhdGUnLCdpbWFnZS92aWRlbyddLmluY2x1ZGVzKGNsb25lUXVlc3Rpb24/LmFuc3dlclR5cGUpID8geyBcIm11bHRpUmVmZXJlbmNlSW1hZ2VcIjogdGhpcy5mYi5hcnJheShrPy5tdWx0aVJlZmVyZW5jZUltYWdlKSB9IDoge30pLFxyXG4gICAgICAgICAgICAgIC4uLigoIVsnZGVzY3JpcHRpdmUnLCdpbWFnZScsICdkZXNjcmlwdGl2ZUltYWdlJywnbXVsdGlwbGVJbWFnZScsJ2RhdGUnLCdpbWFnZS92aWRlbyddLmluY2x1ZGVzKGNsb25lUXVlc3Rpb24/LmFuc3dlclR5cGUpKSA/IHsgJ2FsbG93VXBsb2FkZnJvbUdhbGxlcnknOiB0aGlzLmZiLmNvbnRyb2woaz8uYWxsb3dVcGxvYWRmcm9tR2FsbGVyeSA9PSB0cnVlID8gdHJ1ZSA6IGZhbHNlKSB9IDoge30pLFxyXG4gICAgICAgICAgICAgIC4uLighWydkZXNjcmlwdGl2ZScsJ2ltYWdlJywgJ2Rlc2NyaXB0aXZlSW1hZ2UnLCdtdWx0aXBsZUltYWdlJywnZGF0ZScsJ2ltYWdlL3ZpZGVvJ10uaW5jbHVkZXMoY2xvbmVRdWVzdGlvbj8uYW5zd2VyVHlwZSkgPyB7ICdydW5BSSc6IHRoaXMuZmIuY29udHJvbChrPy5ydW5BSSA/IGs/LnJ1bkFJIDogZmFsc2UpIH0gOiB7fSksXHJcbiAgICAgICAgICAgICAgLi4uKFsnbXVsdGlwbGVjaG9pY2VzaW5nbGUnLCd5ZXMvbm8nXS5pbmNsdWRlcyhjbG9uZVF1ZXN0aW9uPy5hbnN3ZXJUeXBlKSA/IHsgJ3Nob3dMaW5rZWQnOiBmYWxzZSB9IDoge30pLFxyXG4gICAgICAgICAgICAgIC4uLihbJ211bHRpcGxlY2hvaWNlc2luZ2xlJywneWVzL25vJ10uaW5jbHVkZXMoY2xvbmVRdWVzdGlvbj8uYW5zd2VyVHlwZSkgPyB7ICdsaW5rZWRRdWVzdGlvbic6IDAgfSA6IHt9KSxcclxuICAgICAgICAgICAgICAuLi4oWydtdWx0aXBsZWNob2ljZXNpbmdsZScsJ3llcy9ubyddLmluY2x1ZGVzKGNsb25lUXVlc3Rpb24/LmFuc3dlclR5cGUpID8geyAnbGlua2VkUXVlc3Rpb24nOiAwIH0gOiB7fSksXHJcbiAgICAgICAgICAgICAgZGVzY3JpcHRpdmV0eXBlOnRoaXMuZmIuY29udHJvbChrPy5kZXNjcmlwdGl2ZXR5cGUpLFxyXG4gICAgICAgICAgICAgICdyZWZlcmVuY2VJbWFnZSc6dGhpcy5mYi5jb250cm9sKCcnKSxcclxuICAgICAgICAgICAgICAncnVuQUlGZWF0dXJlcyc6dGhpcy5mYi5hcnJheShrPy5ydW5BSUZlYXR1cmVzIHx8IFtdKSxcclxuICAgICAgICAgICAgICAncnVuQUlEZXNjcmlwdGlvbic6IHRoaXMuZmIuY29udHJvbCgnJyksXHJcbiAgICAgICAgICAgICAgJ2NvbXBsaWFuY2VTY29yZSc6dGhpcy5mYi5jb250cm9sKDApXHJcbiAgICAgICAgICAgIH0pKTtcclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIGlmKHR5cGVvZiBjbG9uZVF1ZXN0aW9uLmFuc3dlcnMgPT09ICdvYmplY3QnICYmIGNsb25lUXVlc3Rpb24uYW5zd2VycyAhPT0gbnVsbCkge1xyXG4gICAgICAgIGFuc3dlciA9IHRoaXMuZmIuZ3JvdXAoeyAgICAgICAgICBcclxuICAgICAgICAgIC4uLihbJ2ltYWdlJywgJ2Rlc2NyaXB0aXZlSW1hZ2UnLCdtdWx0aXBsZUltYWdlJ10uaW5jbHVkZXMoY2xvbmVRdWVzdGlvbj8uYW5zd2VyVHlwZSkgPyB7IFwibXVsdGlSZWZlcmVuY2VJbWFnZVwiOiB0aGlzLmZiLmFycmF5KGNsb25lUXVlc3Rpb24/LmFuc3dlcnM/Lm11bHRpUmVmZXJlbmNlSW1hZ2UpIH0gOiB7fSksXHJcbiAgICAgICAgICAuLi4oKFsnaW1hZ2UnLCAnZGVzY3JpcHRpdmVJbWFnZScsJ211bHRpcGxlSW1hZ2UnLCdpbWFnZS92aWRlbyddLmluY2x1ZGVzKGNsb25lUXVlc3Rpb24/LmFuc3dlclR5cGUpIHx8IGNsb25lUXVlc3Rpb24/LmFuc3dlclR5cGUgPT0gJ3ZpZGVvJykgPyB7ICdhbGxvd1VwbG9hZGZyb21HYWxsZXJ5JzogdGhpcy5mYi5jb250cm9sKGNsb25lUXVlc3Rpb24/LmFuc3dlcnM/LmFsbG93VXBsb2FkZnJvbUdhbGxlcnkgPT0gdHJ1ZSA/IHRydWUgOiBmYWxzZSkgfSA6IHt9KSxcclxuICAgICAgICAgIC4uLihbJ2ltYWdlJywgJ2Rlc2NyaXB0aXZlSW1hZ2UnLCdtdWx0aXBsZUltYWdlJ10uaW5jbHVkZXMoY2xvbmVRdWVzdGlvbj8uYW5zd2VyVHlwZSkgPyB7ICdydW5BSSc6IHRoaXMuZmIuY29udHJvbChjbG9uZVF1ZXN0aW9uPy5hbnN3ZXJzPy5ydW5BSSA/IGNsb25lUXVlc3Rpb24/LmFuc3dlcnM/LnJ1bkFJIDogZmFsc2UpIH0gOiB7fSksXHJcbiAgICAgICAgICAuLi4oWydtdWx0aXBsZUltYWdlJ10uaW5jbHVkZXMoY2xvbmVRdWVzdGlvbj8uYW5zd2VyVHlwZSkgPyB7IGRlc2NyaXB0aXZldHlwZTp0aGlzLmZiLmNvbnRyb2woY2xvbmVRdWVzdGlvbj8uYW5zd2Vycz8uZGVzY3JpcHRpdmV0eXBlKSB9IDoge30pLFxyXG4gICAgICAgICAgLi4uKFsnbGluZWFyc2NhbGUnXS5pbmNsdWRlcyhjbG9uZVF1ZXN0aW9uPy5hbnN3ZXJUeXBlKSA/IHsgJ3JhbmdlU3RhcnQnOnRoaXMuZmIuY29udHJvbChjbG9uZVF1ZXN0aW9uPy5hbnN3ZXJzLnJhbmdlU3RhcnQpLCdyYW5nZUVuZCc6dGhpcy5mYi5jb250cm9sKGNsb25lUXVlc3Rpb24/LmFuc3dlcnMucmFuZ2VFbmQpIH0gOiB7fSksXHJcbiAgICAgICAgICAuLi4oWydkYXRlJ10uaW5jbHVkZXMoY2xvbmVRdWVzdGlvbj8uYW5zd2VyVHlwZSkgPyB7ICdoaXN0b3JpY0RhdGUnOnRoaXMuZmIuY29udHJvbChjbG9uZVF1ZXN0aW9uPy5hbnN3ZXJzLmhpc3RvcmljRGF0ZSksc3RhcnREYXRlOnRoaXMuZmIuY29udHJvbCh0aGlzLmRheWpzKCkuZm9ybWF0KCdERC1NTS1ZWVlZJykpLGVuZERhdGU6dGhpcy5mYi5jb250cm9sKHRoaXMuZGF5anMoKS5mb3JtYXQoJ0RELU1NLVlZWVknKSl9IDoge30pLFxyXG4gICAgICAgICAgJ3JlZmVyZW5jZUltYWdlJzp0aGlzLmZiLmNvbnRyb2woJycpLFxyXG4gICAgICAgICAgJ3J1bkFJRmVhdHVyZXMnOnRoaXMuZmIuYXJyYXkoY2xvbmVRdWVzdGlvbj8ucnVuQUlGZWF0dXJlcyB8fCBbXSksXHJcbiAgICAgICAgICAncnVuQUlEZXNjcmlwdGlvbic6IHRoaXMuZmIuY29udHJvbChjbG9uZVF1ZXN0aW9uPy5ydW5BSURlc2NyaXB0aW9uIHx8ICcnKSxcclxuICAgICAgICAgICAuLi4oWydpbWFnZS92aWRlbyddLmluY2x1ZGVzKGNsb25lUXVlc3Rpb24/LmFuc3dlclR5cGUpICYmIHsgJ2xpbWl0Jzp0aGlzLmZiLmNvbnRyb2woY2xvbmVRdWVzdGlvbj8uYW5zd2Vycy5saW1pdCksJ2ltYWdlTGltaXQnOnRoaXMuZmIuY29udHJvbChjbG9uZVF1ZXN0aW9uPy5hbnN3ZXJzLmltYWdlTGltaXQpLCd2aWRlb0xpbWl0Jzp0aGlzLmZiLmNvbnRyb2woY2xvbmVRdWVzdGlvbj8uYW5zd2Vycy52aWRlb0xpbWl0KX0pLFxyXG4gICAgICAgICAgLi4uKFsnZGF0ZScsJ2xpbmVhcnNjYWxlJywnaW1hZ2UnXS5pbmNsdWRlcyhjbG9uZVF1ZXN0aW9uPy5hbnN3ZXJUeXBlKSAmJiB7bWF0Y2hlZENvdW50OnRoaXMuZmIuY29udHJvbCgwKSxub3RNYXRjaGVkQ291bnQ6dGhpcy5mYi5jb250cm9sKDApfSksXHJcbiAgICAgICAgICAuLi4oY2xvbmVRdWVzdGlvbj8uYW5zd2VyVHlwZSA9PSAnZGF0ZScgJiYge3FuU3RhcnREYXRlOnRoaXMuZmIuZ3JvdXAoe30pLHFuRW5kRGF0ZTp0aGlzLmZiLmdyb3VwKHt9KX0pXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIC8vIGlmKHR5cGVvZiBjbG9uZVF1ZXN0aW9uPy5xdWVzdGlvblJlZmVyZW5jZUltYWdlID09ICdzdHJpbmcnICYmIGNsb25lUXVlc3Rpb24/LnF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UgIT0gJycpIHtcclxuICAgIC8vICAgY2xvbmVRdWVzdGlvbi5tdWx0aVF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UgPSBbe2ltYWdlVVJMOmNsb25lUXVlc3Rpb24/LnF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UscnVuQUk6ZmFsc2V9XTtcclxuICAgIC8vIH1cclxuICAgIHF1ZXN0aW9uID0gdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgIFwicW5vXCI6IHRoaXMuZmIuY29udHJvbChxdWVzdGlvbkxlbmd0aC5sZW5ndGggKyAxKSxcclxuICAgICAgJ3FuYW1lJzogdGhpcy5mYi5jb250cm9sKGNsb25lUXVlc3Rpb24/LnFuYW1lLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCxub1doaXRlc3BhY2VWYWxpZGF0b3IoKV0pLFxyXG4gICAgICAnYW5zd2VyVHlwZSc6IHRoaXMuZmIuY29udHJvbChjbG9uZVF1ZXN0aW9uPy5hbnN3ZXJUeXBlLCB0aGlzLmFsbG93ZWRWYWx1ZXNWYWxpZGF0b3IoW1wiZGVzY3JpcHRpdmVcIiwgXCJ5ZXMvbm9cIiwgXCJtdWx0aXBsZWNob2ljZXNpbmdsZVwiLCBcIm11bHRpcGxlY2hvaWNlbXVsdGlwbGVcIixcImRlc2NyaXB0aXZlSW1hZ2VcIiwgXCJpbWFnZVwiLCBcInZpZGVvXCIsJ211bHRpcGxlSW1hZ2UnLCdkYXRlJywnbGluZWFyc2NhbGUnLCd0aW1lJywnaW1hZ2UvdmlkZW8nLCdkcm9wZG93biddKSksXHJcbiAgICAgIC4uLighWydkZXNjcmlwdGl2ZSddLmluY2x1ZGVzKGNsb25lUXVlc3Rpb24/LmFuc3dlclR5cGUpID8geyAnYW5zd2Vycyc6IChbJ2ltYWdlJywnZGVzY3JpcHRpdmVJbWFnZScsICd2aWRlbycsJ211bHRpcGxlSW1hZ2UnLCdsaW5lYXJzY2FsZScsJ3RpbWUnLCdpbWFnZS92aWRlbycsJ2RhdGUnXS5pbmNsdWRlcyhjbG9uZVF1ZXN0aW9uPy5hbnN3ZXJUeXBlKSkgPyBhbnN3ZXIgOiB0aGlzLmZiLmFycmF5KGFuc3dlcixbdW5pcXVlU3RyaW5nVmFsaWRhdG9yKCldKSB9IDoge30pLFxyXG4gICAgICAncnVuQUknOiB0aGlzLmZiLmNvbnRyb2woY2xvbmVRdWVzdGlvbj8ucnVuQUksIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXHJcbiAgICAgICdydW5BSURlc2NyaXB0aW9uJzogdGhpcy5mYi5jb250cm9sKGNsb25lUXVlc3Rpb24/LnJ1bkFJRGVzY3JpcHRpb24gfHwgJycpLFxyXG4gICAgICAnYWxsb3dVcGxvYWRmcm9tR2FsbGVyeSc6IHRoaXMuZmIuY29udHJvbChjbG9uZVF1ZXN0aW9uPy5hbGxvd1VwbG9hZGZyb21HYWxsZXJ5KSxcclxuICAgICAgJ2xpbmtUeXBlJzogdGhpcy5mYi5jb250cm9sKGZhbHNlKSxcclxuICAgICAgJ2Rlc2NyaXB0aXZldHlwZSc6dGhpcy5mYi5jb250cm9sKGNsb25lUXVlc3Rpb24/LmRlc2NyaXB0aXZldHlwZSksXHJcbiAgICAgIFwibXVsdGlRdWVzdGlvblJlZmVyZW5jZUltYWdlXCI6dGhpcy5mYi5hcnJheShjbG9uZVF1ZXN0aW9uPy5tdWx0aVF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UpLFxyXG4gICAgICAncXVlc3Rpb25SZWZlcmVuY2VJbWFnZSc6dGhpcy5mYi5jb250cm9sKCcnKSxcclxuICAgICAgJ3J1bkFJRmVhdHVyZXMnOnRoaXMuZmIuYXJyYXkoY2xvbmVRdWVzdGlvbj8ucnVuQUlGZWF0dXJlcyB8fCBbXSksICAgICAgXHJcbiAgICAgIFwidW5pcXVlcW5vXCI6IHRoaXMuZmIuY29udHJvbCgwKSxcclxuICAgICAgXCJ1bmlxdWVxaWRcIjogdGhpcy5mYi5jb250cm9sKCcnKSxcclxuICAgICAgXCJhbGxvd011bHRpcGxlXCI6dGhpcy5mYi5jb250cm9sKGZhbHNlKSxcclxuICAgICAgJ2NvbXBsaWFuY2UnOnRoaXMuZmIuY29udHJvbChmYWxzZSlcclxuICAgIH0pO1xyXG4gICAgLy8gdGhpcy51cGRhdGVDbG9uZWRsaW5rZWRRdWVzdGlvbk5vKHNlY3Rpb25pbmRleCwgY2xvbmVRdWVzdGlvbj8ucW5vKTtcclxuICAgICh0aGlzLmdldFNlY3Rpb25Gb3JtQ29udHJvbChzZWN0aW9uaW5kZXgsICdxdWVzdGlvbnMnKSBhcyBGb3JtQXJyYXkpLmluc2VydChjbG9uZVF1ZXN0aW9uPy5xbm8scXVlc3Rpb24pO1xyXG4gICAgdGhpcy5DaGVja2xpc3RGb3JtLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgIHRoaXMudXBkYXRlUXVlc3Rpb25Rbm9zKHNlY3Rpb25pbmRleCk7XHJcbiAgICB0aGlzLnN3YWxUb2FzdChgUXVlc3Rpb24gJHtjbG9uZVF1ZXN0aW9uPy5xbm99IGhhcyBiZWVuIGR1cGxpY2F0ZWQhYCk7XHJcbiAgICB0aGlzLmNoYW5nZWRldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZUNsb25lZGxpbmtlZFF1ZXN0aW9uTm8oc2VjSWR4Om51bWJlcixxaWR4Om51bWJlcikge1xyXG4gICAgbGV0IHF1ZXN0aW9ucyA9ICh0aGlzLmdldFNlY3Rpb25Gb3JtQXJyYXkoKS5hdChzZWNJZHgpLmdldCgncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5KTtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcXVlc3Rpb25zLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGxldCBhbnN3ZXJzID0gKHF1ZXN0aW9ucy5hdChpKSBhcyBGb3JtR3JvdXApPy5nZXQoJ2Fuc3dlcnMnKSBhcyBGb3JtQXJyYXk7XHJcbiAgICAgIGlmKGFuc3dlcnMpIHtcclxuICAgICAgICBmb3IobGV0IGo9MDtqPGFuc3dlcnMubGVuZ3RoO2orKykge1xyXG4gICAgICAgICAgbGV0IGxpbmtlZCA9IChhbnN3ZXJzLmF0KGopIGFzIEZvcm1Hcm91cCk/LmdldCgnc2hvd0xpbmtlZCcpPy52YWx1ZTtcclxuICAgICAgICAgIGlmKGxpbmtlZCkge1xyXG4gICAgICAgICAgICBsZXQgcXVlc3Rpb25ObyA9IChhbnN3ZXJzLmF0KGopIGFzIEZvcm1Hcm91cCk/LmdldCgnbGlua2VkUXVlc3Rpb24nKT8udmFsdWU7XHJcbiAgICAgICAgICAgIGlmKHF1ZXN0aW9uTm8gPiBxaWR4KSB7XHJcbiAgICAgICAgICAgICAgKGFuc3dlcnMuYXQoaikgYXMgRm9ybUdyb3VwKT8uZ2V0KCdsaW5rZWRRdWVzdGlvbicpPy5zZXRWYWx1ZShxdWVzdGlvbk5vICsgMSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNhdmVDaGVja2xpc3RRdWVzdGlvbnModHlwZTogc3RyaW5nKSB7XHJcbiAgICAgIGxldCBjaGVja2xpc3QgPSB0aGlzLkNoZWNrbGlzdEZvcm0udmFsdWU7XHJcbiAgICAgIC8vIGNvbnNvbGUubG9nKGNoZWNrbGlzdCwnY2hlY2tsaXN0JylcclxuICAgICAgaWYoIXRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ2NoZWNrbGlzdE5hbWUnKT8udmFsaWQpIHtcclxuICAgICAgICBsZXQgZXJyOiBzdHJpbmcgPSAnUGxlYXNlIGVudGVyIGNoZWNrbGlzdCBuYW1lISc7XHJcbiAgICAgICAgdGhpcy5zd2FsVG9hc3QoZXJyLCdlcnJvcicpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfSAgICAgIFxyXG4gICAgICBcclxuICAgICAgaWYgKCF0aGlzLkNoZWNrbGlzdEZvcm0udmFsaWQpIHtcclxuICAgICAgICB0aGlzLm1hcmtGb3JtQ29udHJvbHNBc1RvdWNoZWQodGhpcy5DaGVja2xpc3RGb3JtLDApO1xyXG4gICAgICAgIHRoaXMuc2Nyb2xsVG9FcnJvcnModGhpcy5DaGVja2xpc3RGb3JtLmdldCgnc2VjdGlvbnMnKSBhcyBGb3JtQXJyYXkpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBsZXQgc2VjdGlvbnMgPSBjaGVja2xpc3Quc2VjdGlvbnM7XHJcbiAgICAgIGlmKHR5cGUgPT0gJ3NhdmVBc0RyYWZ0Jykge1xyXG4gICAgICAgIGNoZWNrbGlzdC5zdWJtaXRUeXBlID0gJ3NhdmUnO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNoZWNrbGlzdC5zdWJtaXRUeXBlID0gJ2NvbmZpZ3VyZSc7XHJcbiAgICAgIH1cclxuICAgICAgaWYoIXNlY3Rpb25zLmxlbmd0aCkge1xyXG4gICAgICAgIGxldCBlcnI6IHN0cmluZyA9ICdQbGVhc2UgYWRkIGF0bGVhc3Qgb25lIHNlY3Rpb24hJztcclxuICAgICAgICB0aGlzLnN3YWxUb2FzdChlcnIsJ2Vycm9yJyk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2VjdGlvbnMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBpZih0eXBlID09ICdjb25maWd1cmUnICYmICFzZWN0aW9uc1tpXS5xdWVzdGlvbnMubGVuZ3RoKSB7XHJcbiAgICAgICAgICBsZXQgZXJyOiBzdHJpbmcgPSAnUGxlYXNlIGFkZCBhdGxlYXN0IG9uZSBxdWVzdGlvbiBpbiBzZWN0aW9uISc7XHJcbiAgICAgICAgICB0aGlzLnN3YWxUb2FzdChlcnIsJ2Vycm9yJyk7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCBmaW5kRXhpc3RzID0gc2VjdGlvbnMuZmlsdGVyKChlbGU6YW55LGluZGV4OmFueSkgPT4ge1xyXG4gICAgICAgICAgaWYoaW5kZXggIT0gaSAmJiBzZWN0aW9uc1tpXS5uYW1lLnRyaW0oKSA9PSBlbGUubmFtZS50cmltKCkpXHJcbiAgICAgICAgICAgIHJldHVybiBlbGU7XHJcbiAgICAgICAgfSlcclxuICAgICAgICBpZihmaW5kRXhpc3RzLmxlbmd0aCkge1xyXG4gICAgICAgICAgdGhpcy5zd2FsVG9hc3QoYCR7c2VjdGlvbnNbaV0ubmFtZX0gc2VjdGlvbiBuYW1lIGlzIER1cGxpY2F0ZWRgICwnZXJyb3InKTtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBzZWN0aW9uc1tpXS5xdWVzdGlvbnMubGVuZ3RoOyBqKyspIHtcclxuICAgICAgICAgIGxldCBhbnNUeXBlID0gc2VjdGlvbnNbaV0ucXVlc3Rpb25zW2pdLmFuc3dlclR5cGU7XHJcbiAgICAgICAgICBzZWN0aW9uc1tpXS5xdWVzdGlvbnNbal0ucW5hbWUgPSBzZWN0aW9uc1tpXS5xdWVzdGlvbnNbal0ucW5hbWUudHJpbSgpLnJlcGxhY2VBbGwoL1xcbi9nLCAnJylcclxuICAgICAgICAgIGxldCBmaW5kRXhpc3RzID0gc2VjdGlvbnNbaV0ucXVlc3Rpb25zLmZpbHRlcigoZWxlOmFueSxpbmRleDphbnkpID0+IHtcclxuICAgICAgICAgICAgaWYoaW5kZXggIT0gaiAmJiBzZWN0aW9uc1tpXS5xdWVzdGlvbnNbal0ucW5hbWUudHJpbSgpID09IGVsZS5xbmFtZS50cmltKCkpXHJcbiAgICAgICAgICAgICAgcmV0dXJuIGVsZTtcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgICBpZihmaW5kRXhpc3RzLmxlbmd0aCkge1xyXG4gICAgICAgICAgICB0aGlzLnN3YWxUb2FzdChgJHtzZWN0aW9uc1tpXS5xdWVzdGlvbnNbal0ucW5hbWV9IHF1ZXN0aW9uIG5hbWUgaXMgRHVwbGljYXRlZGAgLCdlcnJvcicpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZihhbnNUeXBlID09ICdsaW5lYXJzY2FsZScpIHtcclxuICAgICAgICAgICAgaWYoc2VjdGlvbnNbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnMucmFuZ2VTdGFydCA+PSBzZWN0aW9uc1tpXS5xdWVzdGlvbnNbal0uYW5zd2Vycy5yYW5nZUVuZCl7XHJcbiAgICAgICAgICAgICAgbGV0IGVycjogc3RyaW5nID0gJ01pbiB2YWx1ZSBtdXN0IGJlIGxlc3MgdGhhbiBtYXggdmFsdWUuJztcclxuICAgICAgICAgICAgICB0aGlzLnN3YWxUb2FzdChlcnIsJ2Vycm9yJyk7XHJcbiAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8vIGlmKHNlY3Rpb25zW2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzLmxpbmVhclR5cGUgIT0gJycgKXtcclxuICAgICAgICAgICAgLy8gICBpZihzZWN0aW9uc1tpXS5xdWVzdGlvbnNbal0uYW5zd2Vycy5taW5WYWx1ZSA+IHNlY3Rpb25zW2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzLm1heFZhbHVlKSB7XHJcbiAgICAgICAgICAgIC8vICAgICBsZXQgZXJyOiBzdHJpbmcgPSAnTWluIHZhbHVlIGlzIGdyZWF0ZXIgdGhhbiBNYXggVmFsdWUuJztcclxuICAgICAgICAgICAgLy8gICAgIHRoaXMuc3dhbFRvYXN0KGVyciwnZXJyb3InKTtcclxuICAgICAgICAgICAgLy8gICAgIHJldHVybjtcclxuICAgICAgICAgICAgLy8gICB9XHJcbiAgICAgICAgICAgIC8vIH1cclxuICAgICAgICAgICAgLy8gaWYoc2VjdGlvbnNbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnMubGluZWFyVHlwZSA9PSAnZGVncmVlJyAmJiAoc2VjdGlvbnNbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnMucmFuZ2VTdGFydCA8IC0yNzMuMTUgfHwgc2VjdGlvbnNbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnMucmFuZ2VFbmQgPCAtMjczLjE1KSkge1xyXG4gICAgICAgICAgICAvLyAgIGxldCBlcnI6IHN0cmluZyA9IFwiTWluIHZhbHVlIHNob3VsZG4ndCBncmVhdGVyIHRoYW4gLTI3My4xNVwiO1xyXG4gICAgICAgICAgICAvLyAgIHRoaXMuc3dhbFRvYXN0KGVyciwnZXJyb3InKTtcclxuICAgICAgICAgICAgLy8gICByZXR1cm47XHJcbiAgICAgICAgICAgIC8vIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmKGFuc1R5cGUgPT0gJ2ltYWdlL3ZpZGVvJykge1xyXG4gICAgICAgICAgICBpZihzZWN0aW9uc1tpXS5xdWVzdGlvbnNbal0uYW5zd2Vycy5saW1pdCAmJiAoIXNlY3Rpb25zW2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzLmltYWdlTGltaXQgfHwgIXNlY3Rpb25zW2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzLnZpZGVvTGltaXQpKXtcclxuICAgICAgICAgICAgICBsZXQgZXJyOiBzdHJpbmcgPSAnaW1hZ2UgJiB2aWRlbyBsaW1pdCBpcyByZXF1aXJlZCc7XHJcbiAgICAgICAgICAgICAgdGhpcy5zd2FsVG9hc3QoZXJyLCdlcnJvcicpO1xyXG4gICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYoYW5zVHlwZSAhPSAnZGVzY3JpcHRpdmUnKSB7XHJcbiAgICAgICAgICAgIGRlbGV0ZSBzZWN0aW9uc1tpXS5xdWVzdGlvbnNbal0uZGVzY3JpcHRpdmV0eXBlO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIGlmKGFuc1R5cGUgPT0gJ2RhdGUnKSB7XHJcbiAgICAgICAgICAgIGlmKHNlY3Rpb25zW2ldLnF1ZXN0aW9uc1tqXS5jb21wbGlhbmNlICYmIHRoaXMuZGF5anMoc2VjdGlvbnNbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnMuc3RhcnREYXRlLCdERC1NTS1ZWVlZJykgPiB0aGlzLmRheWpzKHNlY3Rpb25zW2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzLmVuZERhdGUsJ0RELU1NLVlZWVknKSl7XHJcbiAgICAgICAgICAgICAgbGV0IGVycjogc3RyaW5nID0gJ1N0YXJ0IGRhdGUgaXMgZ3JlYXRlciB0aGFuIGVuZCBkYXRlJztcclxuICAgICAgICAgICAgICB0aGlzLnN3YWxUb2FzdChlcnIsJ2Vycm9yJyk7XHJcbiAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoW1wibXVsdGlwbGVjaG9pY2VtdWx0aXBsZVwiXS5pbmNsdWRlcyhhbnNUeXBlKSkge1xyXG4gICAgICAgICAgICBmb3IgKGxldCBrID0gMDsgayA8IHNlY3Rpb25zW2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzLmxlbmd0aDsgaysrKSB7XHJcbiAgICAgICAgICAgICAgc2VjdGlvbnNbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnNba11bJ3Nob3dMaW5rZWQnXSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgIHNlY3Rpb25zW2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzW2tdWydhbnN3ZXInXSA9IHNlY3Rpb25zW2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzW2tdWydhbnN3ZXInXS50cmltKCk7XHJcbiAgICAgICAgICAgICAgc2VjdGlvbnNbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnNba11bJ2xpbmtlZFF1ZXN0aW9uJ10gPSAwO1xyXG4gICAgICAgICAgICAgIHNlY3Rpb25zW2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzW2tdWydjb21wbGlhbmNlU2NvcmUnXSA9IHBhcnNlSW50KHNlY3Rpb25zW2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzW2tdWydjb21wbGlhbmNlU2NvcmUnXSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgc2VjdGlvbnNbaV0ucXVlc3Rpb25zW2pdLmFsbG93VXBsb2FkZnJvbUdhbGxlcnkgPSBmYWxzZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChbXCJtdWx0aXBsZWNob2ljZXNpbmdsZVwiLFwieWVzL25vXCJdLmluY2x1ZGVzKGFuc1R5cGUpKSB7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGsgPSAwOyBrIDwgc2VjdGlvbnNbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnMubGVuZ3RoOyBrKyspIHtcclxuICAgICAgICAgICAgICBzZWN0aW9uc1tpXS5xdWVzdGlvbnNbal0uYW5zd2Vyc1trXVsnYW5zd2VyJ10gPSBzZWN0aW9uc1tpXS5xdWVzdGlvbnNbal0uYW5zd2Vyc1trXVsnYW5zd2VyJ10udHJpbSgpO1xyXG4gICAgICAgICAgICAgIHNlY3Rpb25zW2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzW2tdWydjb21wbGlhbmNlU2NvcmUnXSA9IHBhcnNlSW50KHNlY3Rpb25zW2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzW2tdWydjb21wbGlhbmNlU2NvcmUnXSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmICh0eXBlb2Ygc2VjdGlvbnNbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnMgPT09ICdvYmplY3QnICYmXHJcbiAgICAgICAgICAgIHNlY3Rpb25zW2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzICE9PSBudWxsICYmXHJcbiAgICAgICAgICAgICFBcnJheS5pc0FycmF5KHNlY3Rpb25zW2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzKSB8fCBbJ2Rlc2NyaXB0aXZlJywnZGF0ZSddLmluY2x1ZGVzKGFuc1R5cGUpKSB7XHJcbiAgICAgICAgICAgIGxldCBpdGVtID0ge1xyXG4gICAgICAgICAgICAgIFwiYW5zd2VyXCI6ICcnLFxyXG4gICAgICAgICAgICAgIFwiYW5zd2Vyb3B0aW9uTnVtYmVyXCI6IDEsXHJcbiAgICAgICAgICAgICAgXCJzb3BGbGFnXCI6IGZhbHNlLFxyXG4gICAgICAgICAgICAgIFwidmFsaWRhdGlvblwiOiBmYWxzZSxcclxuICAgICAgICAgICAgICBcInZhbGlkYXRpb25UeXBlXCI6IFwiXCIsXHJcbiAgICAgICAgICAgICAgXCJ2YWxpZGF0aW9uQW5zd2VyXCI6IFwiXCIsXHJcbiAgICAgICAgICAgICAgXCJtdWx0aVJlZmVyZW5jZUltYWdlXCI6IHNlY3Rpb25zW2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzPy5tdWx0aVJlZmVyZW5jZUltYWdlID8gc2VjdGlvbnNbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnM/Lm11bHRpUmVmZXJlbmNlSW1hZ2UgOiBbXSxcclxuICAgICAgICAgICAgICBcInNob3dMaW5rZWRcIjpmYWxzZSxcclxuICAgICAgICAgICAgICBcImxpbmtlZFF1ZXN0aW9uXCI6MCxcclxuICAgICAgICAgICAgICAuLi4oYW5zVHlwZSA9PSAnbXVsdGlwbGVJbWFnZScgPyB7J2Rlc2NyaXB0aXZldHlwZSc6c2VjdGlvbnNbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnM/LmRlc2NyaXB0aXZldHlwZX06e30pLFxyXG4gICAgICAgICAgICAgLi4uKHNlY3Rpb25zW2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJUeXBlID09ICdsaW5lYXJzY2FsZScgPyB7J3JhbmdlU3RhcnQnOnNlY3Rpb25zW2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzPy5yYW5nZVN0YXJ0LCdyYW5nZUVuZCc6c2VjdGlvbnNbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnM/LnJhbmdlRW5kLCdsaW5lYXJUeXBlJzpzZWN0aW9uc1tpXS5xdWVzdGlvbnNbal0uYW5zd2Vycz8ubGluZWFyVHlwZSwnbWluVmFsdWUnOnBhcnNlSW50KHNlY3Rpb25zW2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzPy5taW5WYWx1ZSksJ21heFZhbHVlJzpwYXJzZUludChzZWN0aW9uc1tpXS5xdWVzdGlvbnNbal0uYW5zd2Vycz8ubWF4VmFsdWUpfTp7fSksXHJcbiAgICAgICAgICAgICAgLi4uKHNlY3Rpb25zW2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJUeXBlID09ICdkYXRlJyA/IHsnaGlzdG9yaWNEYXRlJzpzZWN0aW9uc1tpXS5xdWVzdGlvbnNbal0uYW5zd2Vycz8uaGlzdG9yaWNEYXRlLCdzdGFydERhdGUnOnNlY3Rpb25zW2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzPy5zdGFydERhdGUsJ2VuZERhdGUnOnNlY3Rpb25zW2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzPy5lbmREYXRlfTp7fSksXHJcbiAgICAgICAgICAgICAgcnVuQUk6c2VjdGlvbnNbaV0/LnF1ZXN0aW9uc1tqXT8uYW5zd2Vycz8ucnVuQUkgPz8gZmFsc2UsXHJcbiAgICAgICAgICAgICAgcnVuQUlGZWF0dXJlczpzZWN0aW9uc1tpXS5xdWVzdGlvbnNbal0/LmFuc3dlcnM/LnJ1bkFJRmVhdHVyZXMgPz8gW10sXHJcbiAgICAgICAgICAgICAgcnVuQUlEZXNjcmlwdGlvbjogc2VjdGlvbnNbaV0ucXVlc3Rpb25zW2pdPy5hbnN3ZXJzPy5ydW5BSURlc2NyaXB0aW9uID8gc2VjdGlvbnNbaV0ucXVlc3Rpb25zW2pdPy5hbnN3ZXJzPy5ydW5BSURlc2NyaXB0aW9uIDogXCJcIixcclxuICAgICAgICAgICAgICAuLi4oYW5zVHlwZSA9PSAnaW1hZ2UvdmlkZW8nID8geydsaW1pdCc6c2VjdGlvbnNbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnM/LmxpbWl0LCd2aWRlb0xpbWl0JzpzZWN0aW9uc1tpXS5xdWVzdGlvbnNbal0uYW5zd2Vycz8udmlkZW9MaW1pdCwnaW1hZ2VMaW1pdCc6c2VjdGlvbnNbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnM/LmltYWdlTGltaXR9Ont9KSxcclxuICAgICAgICAgICAgICAuLi4oWydkYXRlJywnbGluZWFyc2NhbGUnLCdpbWFnZSddLmluY2x1ZGVzKHNlY3Rpb25zW2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJUeXBlKSAmJiB7J21hdGNoZWRDb3VudCc6cGFyc2VJbnQoc2VjdGlvbnNbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnM/Lm1hdGNoZWRDb3VudCksJ25vdE1hdGNoZWRDb3VudCc6cGFyc2VJbnQoc2VjdGlvbnNbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnM/Lm5vdE1hdGNoZWRDb3VudCl9KVxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICBzZWN0aW9uc1tpXS5xdWVzdGlvbnNbal0uYWxsb3dVcGxvYWRmcm9tR2FsbGVyeSA9IHNlY3Rpb25zW2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzPy5hbGxvd1VwbG9hZGZyb21HYWxsZXJ5ID8gc2VjdGlvbnNbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnM/LmFsbG93VXBsb2FkZnJvbUdhbGxlcnkgOiBmYWxzZTtcclxuICAgICAgICAgICAgaWYoYW5zVHlwZSA9PSAnbXVsdGlwbGVJbWFnZScpIHtcclxuICAgICAgICAgICAgICBzZWN0aW9uc1tpXS5xdWVzdGlvbnNbal0uZGVzY3JpcHRpdmV0eXBlID0gc2VjdGlvbnNbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnM/LmRlc2NyaXB0aXZldHlwZSA/IHNlY3Rpb25zW2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzPy5kZXNjcmlwdGl2ZXR5cGUgOiAndGV4dCc7XHJcbiAgICAgICAgICAgICAgLy8gc2VjdGlvbnNbaV0ucXVlc3Rpb25zW2pdLm11bHRpUXVlc3Rpb25SZWZlcmVuY2VJbWFnZSA9IHNlY3Rpb25zW2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzPy5tdWx0aVJlZmVyZW5jZUltYWdlID8gc2VjdGlvbnNbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnM/Lm11bHRpUmVmZXJlbmNlSW1hZ2UgOiBbXTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBzZWN0aW9uc1tpXS5xdWVzdGlvbnNbal0uYW5zd2VycyA9IFtpdGVtXTtcclxuICAgICAgICAgICAgLy8gc2VjdGlvbnNbaV0ucXVlc3Rpb25zW2pdLnJ1bkFJID0gc2VjdGlvbnNbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnMucnVuQUk7XHJcbiAgICAgICAgICAgIC8vIHNlY3Rpb25zW2ldLnF1ZXN0aW9uc1tqXS5ydW5BSUZlYXR1cmVzID0gc2VjdGlvbnNbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnMucnVuQUlGZWF0dXJlcztcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgY2hlY2tsaXN0LnNlY3Rpb25zID0gc2VjdGlvbnM7XHJcbiAgICAgIGNoZWNrbGlzdC5jaGVja2xpc3ROYW1lID0gY2hlY2tsaXN0LmNoZWNrbGlzdE5hbWUudHJpbSgpLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgY2hlY2tsaXN0LmNoZWNrbGlzdE5hbWUudHJpbSgpLnNsaWNlKDEpO1xyXG4gICAgICBjaGVja2xpc3QuY2xpZW50SWQgPSB0aGlzLmNsaWVudElkO1xyXG4gICAgICBjaGVja2xpc3QuY2hlY2tsaXN0TmFtZSA9IGNoZWNrbGlzdC5jaGVja2xpc3ROYW1lLnRyaW0oKTtcclxuICAgICAgY2hlY2tsaXN0LmNoZWNrbGlzdERlc2NyaXB0aW9uID0gY2hlY2tsaXN0Py5jaGVja2xpc3REZXNjcmlwdGlvbiA/IGNoZWNrbGlzdD8uY2hlY2tsaXN0RGVzY3JpcHRpb24/LnRyaW0oKSA6ICcnO1xyXG4gICAgICB0aGlzLnNvcFNlcnZpY2UuY3JlYXRlQ2hlY2tsaXN0KGNoZWNrbGlzdCkucGlwZSh0YWtlVW50aWwodGhpcy5kZXRhY2gpKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgaWYocmVzKSB7XHJcbiAgICAgICAgICBpZiAocmVzPy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgICBpZih0eXBlPT0nY29uZmlndXJlJykge1xyXG4gICAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoYC9tYW5hZ2UvdHJheC9jb25maWd1cmU/Y2hlY2tMaXN0SWQ9JHtyZXMuZGF0YS5jaGVja2xpc3RJZH1gKTsgICAgIFxyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoJy9tYW5hZ2UvdHJheC9jaGVja2xpc3QnKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5zd2FsVG9hc3QoJ1VuYWJsZSB0byBjcmVhdGUgY2hlY2tsaXN0IScsJ2Vycm9yJyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuc3dhbFRvYXN0KCdVbmFibGUgdG8gY3JlYXRlIGNoZWNrbGlzdCEnLCdlcnJvcicpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSwoZXJyb3I6IGFueSkgPT4ge1xyXG4gICAgICAgIGxldCBlcnIgPSBlcnJvcj8uZXJyb3I/LmVycm9yPy5tZXNzYWdlIHx8ICdVbmFibGUgdG8gY3JlYXRlIGNoZWNrbGlzdCFTZXJ2ZXIgRXJyb3IhJztcclxuICAgICAgICB0aGlzLnN3YWxUb2FzdChlcnIsJ2Vycm9yJyk7XHJcbiAgICAgIH1cclxuICAgIClcclxuICB9XHJcblxyXG4gIHNhdmVBc0RyYWZ0UG9wKHR5cGU6IHN0cmluZykge1xyXG4gICAgICB0aGlzLnBvcHVwQ291bnQgPSB0aGlzLnBvcHVwQ291bnQgKyAxO1xyXG4gICAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKFRyYXhwb3B1cENvbXBvbmVudCx7Y2VudGVyZWQ6IHRydWUsIHNpemU6ICdtZCd9KTtcclxuICAgICAgZGlhbG9nUmVmLmNvbXBvbmVudEluc3RhbmNlLmRhdGEgPSB7XHJcbiAgICAgICAgaW1hZ2VzcmM6ICBgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCI1NlwiIGhlaWdodD1cIjU2XCIgdmlld0JveD1cIjAgMCA1NiA1NlwiIGZpbGw9XCJub25lXCI+PHJlY3QgeD1cIjRcIiB5PVwiNFwiIHdpZHRoPVwiNDhcIiBoZWlnaHQ9XCI0OFwiIHJ4PVwiMjRcIiBmaWxsPVwiI0ZFRjBDN1wiLz48cGF0aCBkPVwiTTI3Ljk5OTggMjQuMDAxMlYyOC4wMDEyTTI3Ljk5OTggMzIuMDAxMkgyOC4wMDk4TTI2LjI4OTggMTguODYxMkwxNy44MTk4IDMzLjAwMTJDMTcuNjQ1MSAzMy4zMDM2IDE3LjU1MjcgMzMuNjQ2NSAxNy41NTE4IDMzLjk5NTdDMTcuNTUwOCAzNC4zNDQ5IDE3LjY0MTMgMzQuNjg4MyAxNy44MTQyIDM0Ljk5MTdDMTcuOTg3MSAzNS4yOTUxIDE4LjIzNjUgMzUuNTQ3OSAxOC41Mzc1IDM1LjcyNUMxOC44Mzg1IDM1LjkwMjEgMTkuMTgwNiAzNS45OTczIDE5LjUyOTggMzYuMDAxMkgzNi40Njk4QzM2LjgxOSAzNS45OTczIDM3LjE2MTEgMzUuOTAyMSAzNy40NjIxIDM1LjcyNUMzNy43NjMxIDM1LjU0NzkgMzguMDEyNCAzNS4yOTUxIDM4LjE4NTQgMzQuOTkxN0MzOC4zNTgzIDM0LjY4ODMgMzguNDQ4OCAzNC4zNDQ5IDM4LjQ0NzggMzMuOTk1N0MzOC40NDY4IDMzLjY0NjUgMzguMzU0NCAzMy4zMDM2IDM4LjE3OTggMzMuMDAxMkwyOS43MDk4IDE4Ljg2MTJDMjkuNTMxNSAxOC41NjczIDI5LjI4MDUgMTguMzI0MyAyOC45ODEgMTguMTU1N0MyOC42ODE0IDE3Ljk4NyAyOC4zNDM1IDE3Ljg5ODQgMjcuOTk5OCAxNy44OTg0QzI3LjY1NiAxNy44OTg0IDI3LjMxODEgMTcuOTg3IDI3LjAxODYgMTguMTU1N0MyNi43MTkxIDE4LjMyNDMgMjYuNDY4IDE4LjU2NzMgMjYuMjg5OCAxOC44NjEyWlwiIHN0cm9rZT1cIiNEQzY4MDNcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgc3Ryb2tlPVwiI0ZGRkFFQlwiIHN0cm9rZS13aWR0aD1cIjhcIi8+PC9zdmc+YCxcclxuICAgICAgICB0aXRsZTpgVW5zYXZlZCBjaGFuZ2VzYCxcclxuICAgICAgICBjb250ZW50OmBEbyB5b3Ugd2FudCB0byBzYXZlIGFzIGRyYWZ0P2AsXHJcbiAgICAgICAgYnV0dG9udHlwZTonZHJhZnQnXHJcbiAgICAgIH1cclxuICAgICAgZGlhbG9nUmVmLnJlc3VsdC50aGVuKChyZXMpPT57XHJcbiAgICAgICAgaWYoIXJlcykge1xyXG4gICAgICAgICAgdGhpcy5wb3B1cENvdW50ID0gMDtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYocmVzKSB7XHJcbiAgICAgICAgICBpZih0eXBlID09ICdjcmVhdGUnKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2F2ZUNoZWNrbGlzdFF1ZXN0aW9ucygnc2F2ZUFzRHJhZnQnKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMudXBkYXRlQ2hlY2tsaXN0UXVlc3Rpb25zKCdzYXZlQXNEcmFmdCcpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVDaGVja2xpc3RRdWVzdGlvbnModHlwZTogc3RyaW5nKSB7XHJcbiAgICBsZXQgc2VjdGlvbnNhcnJheTogYW55ID0gW107XHJcbiAgICBsZXQgY2hlY2tsaXN0OiBhbnk7XHJcbiAgICBcclxuICAgIGlmKCF0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdjaGVja2xpc3ROYW1lJyk/LnZhbGlkKSB7XHJcbiAgICAgIGxldCBlcnI6IHN0cmluZyA9ICdQbGVhc2UgZW50ZXIgY2hlY2tsaXN0IG5hbWUhJztcclxuICAgICAgdGhpcy5zd2FsVG9hc3QoZXJyLCdlcnJvcicpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9ICAgICAgXHJcbiAgICBcclxuICAgIC8vIGNvbnNvbGUubG9nKHRoaXMuQ2hlY2tsaXN0Rm9ybSk7XHJcbiAgICAvLyByZXR1cm47XHJcbiAgICBjaGVja2xpc3QgPSB0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0UmF3VmFsdWUoKTtcclxuICAgIC8vIGNvbnNvbGUubG9nKHRoaXMuQ2hlY2tsaXN0Rm9ybSwnZm9ybScpXHJcbiAgICBpZiAoIXRoaXMuQ2hlY2tsaXN0Rm9ybS52YWxpZCkge1xyXG4gICAgICB0aGlzLm1hcmtGb3JtQ29udHJvbHNBc1RvdWNoZWQodGhpcy5DaGVja2xpc3RGb3JtLDApO1xyXG4gICAgICB0aGlzLnNjcm9sbFRvRXJyb3JzKHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5KTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgc2VjdGlvbnNhcnJheSA9IGNoZWNrbGlzdC5zZWN0aW9ucztcclxuICAgIGlmKCF0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdjaGVja2xpc3ROYW1lJyk/LnZhbGlkKSB7XHJcbiAgICAgIGxldCBlcnI6IHN0cmluZyA9ICdQbGVhc2UgZW50ZXIgY2hlY2tsaXN0IG5hbWUhJztcclxuICAgICAgdGhpcy5zd2FsVG9hc3QoZXJyLCdlcnJvcicpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZih0eXBlID09ICdzYXZlQXNEcmFmdCcpIHtcclxuICAgICAgY2hlY2tsaXN0LnN1Ym1pdFR5cGUgPSAnc2F2ZSc7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjaGVja2xpc3Quc3VibWl0VHlwZSA9ICdjb25maWd1cmUnO1xyXG4gICAgfVxyXG4gICAgaWYoIXNlY3Rpb25zYXJyYXkubGVuZ3RoKSB7XHJcbiAgICAgIGxldCBlcnI6IHN0cmluZyA9ICdQbGVhc2UgYWRkIGF0bGVhc3Qgb25lIHNlY3Rpb24hJztcclxuICAgICAgdGhpcy5zd2FsVG9hc3QoZXJyLCdlcnJvcicpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNlY3Rpb25zYXJyYXkubGVuZ3RoOyBpKyspIHtcclxuICAgICAgbGV0IHNlY3Rpb25OYW1lID0gc2VjdGlvbnNhcnJheVtpXS5uYW1lO1xyXG4gICAgICBsZXQgZmluZEV4aXN0cyA9IHNlY3Rpb25zYXJyYXkuZmlsdGVyKChlbGU6YW55LGluZGV4OmFueSkgPT4ge1xyXG4gICAgICAgICAgaWYoaW5kZXggIT0gaSAmJiBzZWN0aW9uTmFtZS50cmltKCkgPT0gZWxlLm5hbWUudHJpbSgpKVxyXG4gICAgICAgICAgICByZXR1cm4gZWxlO1xyXG4gICAgICB9KVxyXG4gICAgICBpZihmaW5kRXhpc3RzLmxlbmd0aCkge1xyXG4gICAgICAgIHRoaXMuc3dhbFRvYXN0KGAke3NlY3Rpb25OYW1lfSBzZWN0aW9uIG5hbWUgaXMgRHVwbGljYXRlZGAgLCdlcnJvcicpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBpZih0eXBlID09ICdjb25maWd1cmUnICYmICFzZWN0aW9uc2FycmF5W2ldLnF1ZXN0aW9ucy5sZW5ndGgpIHtcclxuICAgICAgICBsZXQgZXJyOiBzdHJpbmcgPSAnUGxlYXNlIGFkZCBhdGxlYXN0IG9uZSBxdWVzdGlvbiBpbiBzZWN0aW9uISc7XHJcbiAgICAgICAgdGhpcy5zd2FsVG9hc3QoZXJyLCdlcnJvcicpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHNlY3Rpb25zYXJyYXlbaV0ucXVlc3Rpb25zLmxlbmd0aDsgaisrKSB7XHJcbiAgICAgICAgc2VjdGlvbnNhcnJheVtpXS5xdWVzdGlvbnNbal0ucW5hbWUgPSBzZWN0aW9uc2FycmF5W2ldLnF1ZXN0aW9uc1tqXS5xbmFtZS50cmltKCkucmVwbGFjZUFsbCgvXFxuL2csICcnKVxyXG4gICAgICAgIGxldCBmaW5kRXhpc3RzID0gc2VjdGlvbnNhcnJheVtpXS5xdWVzdGlvbnMuZmlsdGVyKChlbGU6YW55LGluZGV4OmFueSkgPT4ge1xyXG4gICAgICAgICAgaWYoaW5kZXggIT0gaiAmJiBzZWN0aW9uc2FycmF5W2ldLnF1ZXN0aW9uc1tqXS5xbmFtZS50cmltKCkgPT0gZWxlLnFuYW1lLnRyaW0oKSlcclxuICAgICAgICAgICAgcmV0dXJuIGVsZTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIGlmKGZpbmRFeGlzdHMubGVuZ3RoKSB7XHJcbiAgICAgICAgICB0aGlzLnN3YWxUb2FzdChgJHtzZWN0aW9uc2FycmF5W2ldLnF1ZXN0aW9uc1tqXS5xbmFtZX0gcXVlc3Rpb24gbmFtZSBpcyBEdXBsaWNhdGVkYCAsJ2Vycm9yJyk7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmKHNlY3Rpb25zYXJyYXlbaV0ucXVlc3Rpb25zW2pdLmFuc3dlclR5cGUgPT0gJ2xpbmVhcnNjYWxlJykge1xyXG4gICAgICAgICAgaWYoc2VjdGlvbnNhcnJheVtpXS5xdWVzdGlvbnNbal0uYW5zd2Vycy5yYW5nZVN0YXJ0ID49IHNlY3Rpb25zYXJyYXlbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnMucmFuZ2VFbmQpe1xyXG4gICAgICAgICAgICAgIGxldCBlcnI6IHN0cmluZyA9ICdNaW4gdmFsdWUgbXVzdCBiZSBsZXNzIHRoYW4gbWF4IHZhbHVlLic7XHJcbiAgICAgICAgICAgICAgdGhpcy5zd2FsVG9hc3QoZXJyLCdlcnJvcicpO1xyXG4gICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvLyBpZihzZWN0aW9uc2FycmF5W2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzLmxpbmVhclR5cGUgIT0gJycgKXtcclxuICAgICAgICAgICAgLy8gICBpZihzZWN0aW9uc2FycmF5W2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzLm1pblZhbHVlID4gc2VjdGlvbnNhcnJheVtpXS5xdWVzdGlvbnNbal0uYW5zd2Vycy5tYXh2YWx1ZSkge1xyXG4gICAgICAgICAgICAvLyAgICAgbGV0IGVycjogc3RyaW5nID0gJ01pbiB2YWx1ZSBpcyBncmVhdGVyIHRoYW4gTWF4IFZhbHVlLic7XHJcbiAgICAgICAgICAgIC8vICAgICB0aGlzLnN3YWxUb2FzdChlcnIsJ2Vycm9yJyk7XHJcbiAgICAgICAgICAgIC8vICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIC8vICAgfVxyXG4gICAgICAgICAgICAvLyB9XHJcbiAgICAgICAgICAgIC8vIGlmKHNlY3Rpb25zYXJyYXlbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnMubGluZWFyVHlwZSA9PSAnZGVncmVlJyAmJiAoc2VjdGlvbnNhcnJheVtpXS5xdWVzdGlvbnNbal0uYW5zd2Vycy5yYW5nZVN0YXJ0IDwgLTI3My4xNSB8fCBzZWN0aW9uc2FycmF5W2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzLnJhbmdlRW5kIDwgLTI3My4xNSkpIHtcclxuICAgICAgICAgICAgLy8gICBsZXQgZXJyOiBzdHJpbmcgPSBcIk1pbiB2YWx1ZSBzaG91bGRuJ3QgZ3JlYXRlciB0aGFuIC0yNzMuMTVcIjtcclxuICAgICAgICAgICAgLy8gICB0aGlzLnN3YWxUb2FzdChlcnIsJ2Vycm9yJyk7XHJcbiAgICAgICAgICAgIC8vICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAvLyB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmKHNlY3Rpb25zYXJyYXlbaV0ucXVlc3Rpb25zW2pdLmFuc3dlclR5cGUgPT0gJ2RhdGUnKSB7XHJcbiAgICAgICAgICAgIGlmKHNlY3Rpb25zYXJyYXlbaV0ucXVlc3Rpb25zW2pdLmNvbXBsaWFuY2UgJiYgdGhpcy5kYXlqcyhzZWN0aW9uc2FycmF5W2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzLnN0YXJ0RGF0ZSwnREQtTU0tWVlZWScpID4gdGhpcy5kYXlqcyhzZWN0aW9uc2FycmF5W2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzLmVuZERhdGUsJ0RELU1NLVlZWVknKSl7XHJcbiAgICAgICAgICAgICAgbGV0IGVycjogc3RyaW5nID0gJ1N0YXJ0IGRhdGUgaXMgZ3JlYXRlciB0aGFuIGVuZCBkYXRlJztcclxuICAgICAgICAgICAgICB0aGlzLnN3YWxUb2FzdChlcnIsJ2Vycm9yJyk7XHJcbiAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgaWYoc2VjdGlvbnNhcnJheVtpXS5xdWVzdGlvbnNbal0uYW5zd2VyVHlwZSA9PSAnaW1hZ2UvdmlkZW8nKSB7XHJcbiAgICAgICAgICBpZihzZWN0aW9uc2FycmF5W2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzLmxpbWl0ICYmICghc2VjdGlvbnNhcnJheVtpXS5xdWVzdGlvbnNbal0uYW5zd2Vycy5pbWFnZUxpbWl0IHx8ICFzZWN0aW9uc2FycmF5W2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzLnZpZGVvTGltaXQpKXtcclxuICAgICAgICAgICAgbGV0IGVycjogc3RyaW5nID0gJ2ltYWdlICYgdmlkZW8gbGltaXQgaXMgcmVxdWlyZWQnO1xyXG4gICAgICAgICAgICB0aGlzLnN3YWxUb2FzdChlcnIsJ2Vycm9yJyk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYoc2VjdGlvbnNhcnJheVtpXS5xdWVzdGlvbnNbal0uYW5zd2VyVHlwZSAhPSAnZGVzY3JpcHRpdmUnKSB7XHJcbiAgICAgICAgICBkZWxldGUgc2VjdGlvbnNhcnJheVtpXS5xdWVzdGlvbnNbal0uZGVzY3JpcHRpdmV0eXBlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoW1wibXVsdGlwbGVjaG9pY2VtdWx0aXBsZVwiXS5pbmNsdWRlcyhzZWN0aW9uc2FycmF5W2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJUeXBlKSkge1xyXG4gICAgICAgICAgZm9yIChsZXQgayA9IDA7IGsgPCBzZWN0aW9uc2FycmF5W2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzLmxlbmd0aDsgaysrKSB7XHJcbiAgICAgICAgICAgIC8vIHNlY3Rpb25zYXJyYXlbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnNba11bJ2Fuc3dlcklucHV0U3R5bGUnXSA9IHNlY3Rpb25zYXJyYXlbaV0ucXVlc3Rpb25zW2pdLmFuc3dlclR5cGU7XHJcbiAgICAgICAgICAgIC8vIHNlY3Rpb25zYXJyYXlbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnNba11bXCJtdWx0aVJlZmVyZW5jZUltYWdlXCJdID0gXCJcIjtcclxuICAgICAgICAgICAgLy8gc2VjdGlvbnNhcnJheVtpXS5xdWVzdGlvbnNbal0uYW5zd2Vyc1trXVsnYWxsb3dVcGxvYWRmcm9tR2FsbGVyeSddID0gZmFsc2U7XHJcbiAgICAgICAgICAgIC8vIHNlY3Rpb25zYXJyYXlbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnNba11bJ3ZhbGlkYXRpb25BbnN3ZXInXSA9IFwiXCI7ICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIC8vIHNlY3Rpb25zYXJyYXlbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnNba11bJ3J1bkFJJ10gPSBmYWxzZTtcclxuICAgICAgICAgICAgc2VjdGlvbnNhcnJheVtpXS5xdWVzdGlvbnNbal0uYW5zd2Vyc1trXVsnYW5zd2VyJ10gPSBzZWN0aW9uc2FycmF5W2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzW2tdWydhbnN3ZXInXS50cmltKCk7XHJcbiAgICAgICAgICAgIHNlY3Rpb25zYXJyYXlbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnNba11bJ3Nob3dMaW5rZWQnXSA9IGZhbHNlO1xyXG4gICAgICAgICAgICBzZWN0aW9uc2FycmF5W2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzW2tdWydsaW5rZWRRdWVzdGlvbiddID0gMDtcclxuICAgICAgICAgICAgc2VjdGlvbnNhcnJheVtpXS5xdWVzdGlvbnNbal0uYW5zd2Vyc1trXVsnY29tcGxpYW5jZVNjb3JlJ10gPSBwYXJzZUludChzZWN0aW9uc2FycmF5W2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzW2tdWydjb21wbGlhbmNlU2NvcmUnXSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBzZWN0aW9uc2FycmF5W2ldLnF1ZXN0aW9uc1tqXS5hbGxvd1VwbG9hZGZyb21HYWxsZXJ5ID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChbXCJtdWx0aXBsZWNob2ljZXNpbmdsZVwiLFwieWVzL25vXCJdLmluY2x1ZGVzKHNlY3Rpb25zYXJyYXlbaV0ucXVlc3Rpb25zW2pdLmFuc3dlclR5cGUpKSB7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGsgPSAwOyBrIDwgc2VjdGlvbnNhcnJheVtpXS5xdWVzdGlvbnNbal0uYW5zd2Vycy5sZW5ndGg7IGsrKykge1xyXG4gICAgICAgICAgICAgIHNlY3Rpb25zYXJyYXlbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnNba11bJ2Fuc3dlciddID0gc2VjdGlvbnNhcnJheVtpXS5xdWVzdGlvbnNbal0uYW5zd2Vyc1trXVsnYW5zd2VyJ10udHJpbSgpO1xyXG4gICAgICAgICAgICAgIHNlY3Rpb25zYXJyYXlbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnNba11bJ2NvbXBsaWFuY2VTY29yZSddID0gcGFyc2VJbnQoc2VjdGlvbnNhcnJheVtpXS5xdWVzdGlvbnNbal0uYW5zd2Vyc1trXVsnY29tcGxpYW5jZVNjb3JlJ10pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgaWYgKHR5cGVvZiBzZWN0aW9uc2FycmF5W2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzID09PSAnb2JqZWN0JyAmJlxyXG4gICAgICAgICAgc2VjdGlvbnNhcnJheVtpXS5xdWVzdGlvbnNbal0uYW5zd2VycyAhPT0gbnVsbCAmJlxyXG4gICAgICAgICAgIUFycmF5LmlzQXJyYXkoc2VjdGlvbnNhcnJheVtpXS5xdWVzdGlvbnNbal0uYW5zd2VycykgfHwgWydkZXNjcmlwdGl2ZScsJ2RhdGUnXS5pbmNsdWRlcyhzZWN0aW9uc2FycmF5W2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJUeXBlKSkge1xyXG4gICAgICAgICAgICBsZXQgaXRlbSA9IHtcclxuICAgICAgICAgICAgICBcImFuc3dlclwiOiAnJyxcclxuICAgICAgICAgICAgICBcImFuc3dlcm9wdGlvbk51bWJlclwiOiAxLFxyXG4gICAgICAgICAgICAgIFwic29wRmxhZ1wiOiBmYWxzZSxcclxuICAgICAgICAgICAgICBcInZhbGlkYXRpb25cIjogZmFsc2UsXHJcbiAgICAgICAgICAgICAgXCJ2YWxpZGF0aW9uQW5zd2VyXCI6IFwiXCIsXHJcbiAgICAgICAgICAgICAgXCJ2YWxpZGF0aW9uVHlwZVwiOiBcIlwiLFxyXG4gICAgICAgICAgICAgIFwibXVsdGlSZWZlcmVuY2VJbWFnZVwiOiBzZWN0aW9uc2FycmF5W2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzPy5tdWx0aVJlZmVyZW5jZUltYWdlID8gc2VjdGlvbnNhcnJheVtpXS5xdWVzdGlvbnNbal0uYW5zd2Vycz8ubXVsdGlSZWZlcmVuY2VJbWFnZSA6IFtdLFxyXG4gICAgICAgICAgICAgIFwic2hvd0xpbmtlZFwiOmZhbHNlLFxyXG4gICAgICAgICAgICAgIFwibGlua2VkUXVlc3Rpb25cIjowLFxyXG4gICAgICAgICAgICAgIHJlZmVyZW5jZUltYWdlOicnLFxyXG4gICAgICAgICAgICAgIC4uLihzZWN0aW9uc2FycmF5W2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJUeXBlID09ICdtdWx0aXBsZUltYWdlJyA/IHsnZGVzY3JpcHRpdmV0eXBlJzpzZWN0aW9uc2FycmF5W2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzPy5kZXNjcmlwdGl2ZXR5cGV9Ont9KSxcclxuICAgICAgICAgICAgICAuLi4oc2VjdGlvbnNhcnJheVtpXS5xdWVzdGlvbnNbal0uYW5zd2VyVHlwZSA9PSAnbGluZWFyc2NhbGUnID8geydyYW5nZVN0YXJ0JzpzZWN0aW9uc2FycmF5W2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzPy5yYW5nZVN0YXJ0LCdyYW5nZUVuZCc6c2VjdGlvbnNhcnJheVtpXS5xdWVzdGlvbnNbal0uYW5zd2Vycz8ucmFuZ2VFbmQsJ2xpbmVhclR5cGUnOnNlY3Rpb25zYXJyYXlbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnM/LmxpbmVhclR5cGUsJ21pblZhbHVlJzpwYXJzZUludChzZWN0aW9uc2FycmF5W2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzPy5taW5WYWx1ZSksJ21heFZhbHVlJzpwYXJzZUludChzZWN0aW9uc2FycmF5W2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzPy5tYXhWYWx1ZSl9Ont9KSxcclxuICAgICAgICAgICAgICAuLi4oc2VjdGlvbnNhcnJheVtpXS5xdWVzdGlvbnNbal0uYW5zd2VyVHlwZSA9PSAnZGF0ZScgPyB7J2hpc3RvcmljRGF0ZSc6c2VjdGlvbnNhcnJheVtpXS5xdWVzdGlvbnNbal0uYW5zd2Vycz8uaGlzdG9yaWNEYXRlLCdzdGFydERhdGUnOnNlY3Rpb25zYXJyYXlbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnM/LnN0YXJ0RGF0ZSwnZW5kRGF0ZSc6c2VjdGlvbnNhcnJheVtpXS5xdWVzdGlvbnNbal0uYW5zd2Vycz8uZW5kRGF0ZX06e30pLFxyXG4gICAgICAgICAgICAgIHJ1bkFJOnNlY3Rpb25zYXJyYXlbaV0ucXVlc3Rpb25zW2pdPy5hbnN3ZXJzPy5ydW5BSSA/PyBmYWxzZSxcclxuICAgICAgICAgICAgICBydW5BSUZlYXR1cmVzOnNlY3Rpb25zYXJyYXlbaV0ucXVlc3Rpb25zW2pdPy5hbnN3ZXJzPy5ydW5BSUZlYXR1cmVzID8/IFtdLFxyXG4gICAgICAgICAgICAgIHJ1bkFJRGVzY3JpcHRpb246IHNlY3Rpb25zYXJyYXlbaV0ucXVlc3Rpb25zW2pdPy5hbnN3ZXJzPy5ydW5BSURlc2NyaXB0aW9uID8gc2VjdGlvbnNhcnJheVtpXS5xdWVzdGlvbnNbal0/LmFuc3dlcnM/LnJ1bkFJRGVzY3JpcHRpb24gOiBcIlwiLFxyXG4gICAgICAgICAgICAgIC4uLihzZWN0aW9uc2FycmF5W2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJUeXBlID09ICdpbWFnZS92aWRlbycgPyB7J2xpbWl0JzpzZWN0aW9uc2FycmF5W2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzPy5saW1pdCwndmlkZW9MaW1pdCc6c2VjdGlvbnNhcnJheVtpXS5xdWVzdGlvbnNbal0uYW5zd2Vycz8udmlkZW9MaW1pdCwnaW1hZ2VMaW1pdCc6c2VjdGlvbnNhcnJheVtpXS5xdWVzdGlvbnNbal0uYW5zd2Vycz8uaW1hZ2VMaW1pdH06e30pLFxyXG4gICAgICAgICAgICAgIC4uLihbJ2RhdGUnLCdsaW5lYXJzY2FsZScsJ2ltYWdlJ10uaW5jbHVkZXMoc2VjdGlvbnNhcnJheVtpXS5xdWVzdGlvbnNbal0uYW5zd2VyVHlwZSkgJiYgeydtYXRjaGVkQ291bnQnOnBhcnNlSW50KHNlY3Rpb25zYXJyYXlbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnM/Lm1hdGNoZWRDb3VudCksJ25vdE1hdGNoZWRDb3VudCc6cGFyc2VJbnQoc2VjdGlvbnNhcnJheVtpXS5xdWVzdGlvbnNbal0uYW5zd2Vycz8ubm90TWF0Y2hlZENvdW50KX0pXHJcblxyXG4gICAgICAgICAgICAgIC8vIFwiYWxsb3dVcGxvYWRmcm9tR2FsbGVyeVwiOiBzZWN0aW9uc2FycmF5W2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzPy5hbGxvd1VwbG9hZGZyb21HYWxsZXJ5ID8gc2VjdGlvbnNhcnJheVtpXS5xdWVzdGlvbnNbal0uYW5zd2Vycz8uYWxsb3dVcGxvYWRmcm9tR2FsbGVyeSA6IGZhbHNlLFxyXG4gICAgICAgICAgICAgIC8vIFwiYW5zd2VySW5wdXRTdHlsZVwiOiBzZWN0aW9uc2FycmF5W2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzPy5hbnN3ZXJJbnB1dFN0eWxlID8gc2VjdGlvbnNhcnJheVtpXS5xdWVzdGlvbnNbal0uYW5zd2Vycz8uYW5zd2VySW5wdXRTdHlsZSA6IFwiXCIsXHJcbiAgICAgICAgICAgICAgLy8gXCJydW5BSVwiOiBzZWN0aW9uc2FycmF5W2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzLnJ1bkFJID8gc2VjdGlvbnNhcnJheVtpXS5xdWVzdGlvbnNbal0uYW5zd2Vycy5ydW5BSSA6IGZhbHNlLFxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICBzZWN0aW9uc2FycmF5W2ldLnF1ZXN0aW9uc1tqXS5hbGxvd1VwbG9hZGZyb21HYWxsZXJ5ID0gc2VjdGlvbnNhcnJheVtpXS5xdWVzdGlvbnNbal0uYW5zd2Vycz8uYWxsb3dVcGxvYWRmcm9tR2FsbGVyeSA/IHNlY3Rpb25zYXJyYXlbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnM/LmFsbG93VXBsb2FkZnJvbUdhbGxlcnkgOiBmYWxzZTtcclxuICAgICAgICAgICAgLy8gc2VjdGlvbnNhcnJheVtpXS5xdWVzdGlvbnNbal0ucnVuQUkgPSBzZWN0aW9uc2FycmF5W2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzLnJ1bkFJO1xyXG4gICAgICAgICAgICAvLyBzZWN0aW9uc2FycmF5W2ldLnF1ZXN0aW9uc1tqXS5ydW5BSUZlYXR1cmVzID0gc2VjdGlvbnNhcnJheVtpXS5xdWVzdGlvbnNbal0uYW5zd2Vycy5ydW5BSUZlYXR1cmVzO1xyXG4gICAgICAgICAgICBpZihzZWN0aW9uc2FycmF5W2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJUeXBlID09ICdtdWx0aXBsZUltYWdlJykge1xyXG4gICAgICAgICAgICAgIHNlY3Rpb25zYXJyYXlbaV0ucXVlc3Rpb25zW2pdLmRlc2NyaXB0aXZldHlwZSA9IHNlY3Rpb25zYXJyYXlbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnM/LmRlc2NyaXB0aXZldHlwZSA/IHNlY3Rpb25zYXJyYXlbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnM/LmRlc2NyaXB0aXZldHlwZSA6ICd0ZXh0JztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBzZWN0aW9uc2FycmF5W2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzID0gW2l0ZW1dO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgY2hlY2tsaXN0LnNlY3Rpb25zID0gc2VjdGlvbnNhcnJheTtcclxuICAgIGNoZWNrbGlzdC5jaGVja2xpc3ROYW1lID0gY2hlY2tsaXN0LmNoZWNrbGlzdE5hbWUudHJpbSgpLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgY2hlY2tsaXN0LmNoZWNrbGlzdE5hbWUudHJpbSgpLnNsaWNlKDEpO1xyXG4gICAgY2hlY2tsaXN0LmNoZWNrbGlzdE5hbWUgPSBjaGVja2xpc3QuY2hlY2tsaXN0TmFtZS50cmltKCk7XHJcbiAgICBjaGVja2xpc3QuY2hlY2tsaXN0RGVzY3JpcHRpb24gPSBjaGVja2xpc3Q/LmNoZWNrbGlzdERlc2NyaXB0aW9uID8gY2hlY2tsaXN0Py5jaGVja2xpc3REZXNjcmlwdGlvbj8udHJpbSgpIDogJyc7XHJcbiAgICBjaGVja2xpc3QuY2xpZW50SWQgPSB0aGlzLmNsaWVudElkO1xyXG4gICAgdGhpcy5zb3BTZXJ2aWNlLmdldFVwZGF0ZUNoZWNrbGlzdCh0aGlzLmVkaXR2YWx1ZSwgY2hlY2tsaXN0KS5waXBlKHRha2VVbnRpbCh0aGlzLmRldGFjaCkpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcclxuICAgICAgaWYocmVzKSB7XHJcbiAgICAgICAgaWYgKHJlcz8uY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgIGlmKHR5cGU9PSdjb25maWd1cmUnKSB7XHJcbiAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoYC9tYW5hZ2UvdHJheC9jb25maWd1cmU/Y2hlY2tMaXN0SWQ9JHtyZXMuZGF0YS5jaGVja2xpc3RJZH0mc2hvd0VkaXQ9dHJ1ZWApO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCgnL21hbmFnZS90cmF4L2NoZWNrbGlzdCcpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnN3YWxUb2FzdCgnVW5hYmxlIHRvIHVwZGF0ZSBjaGVja2xpc3QhJywnZXJyb3InKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5zd2FsVG9hc3QoJ1VuYWJsZSB0byB1cGRhdGUgY2hlY2tsaXN0IScsJ2Vycm9yJyk7XHJcbiAgICAgIH1cclxuICAgIH0sIChlcnJvcikgPT4ge1xyXG4gICAgICBsZXQgZXJyID0gZXJyb3I/LmVycm9yPy5lcnJvcj8ubWVzc2FnZSB8fCAnVW5hYmxlIHRvIGNyZWF0ZSBjaGVja2xpc3QhU2VydmVyIEVycm9yISc7XHJcbiAgICAgIHRoaXMuc3dhbFRvYXN0KGVyciwnZXJyb3InKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbWFya0Zvcm1Db250cm9sc0FzVG91Y2hlZChjb250cm9sOiBGb3JtR3JvdXAgfCBGb3JtQXJyYXksc2VjdGlvbkluZGV4PzogbnVtYmVyKSB7XHJcbiAgICBjb250cm9sLm1hcmtBc1RvdWNoZWQoKTtcclxuXHJcbiAgICBpZiAoY29udHJvbCBpbnN0YW5jZW9mIEZvcm1Hcm91cCkge1xyXG4gICAgICBmb3IgKGNvbnN0IGNvbnRyb2xOYW1lIGluIGNvbnRyb2wuY29udHJvbHMpIHtcclxuICAgICAgICB0aGlzLm1hcmtGb3JtQ29udHJvbHNBc1RvdWNoZWQoY29udHJvbC5nZXQoY29udHJvbE5hbWUpIGFzIEZvcm1Hcm91cCk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSBpZiAoY29udHJvbCBpbnN0YW5jZW9mIEZvcm1BcnJheSkge1xyXG4gICAgICBjb250cm9sLmNvbnRyb2xzLmZvckVhY2goZm9ybUNvbnRyb2wgPT4ge1xyXG4gICAgICAgIHRoaXMubWFya0Zvcm1Db250cm9sc0FzVG91Y2hlZChmb3JtQ29udHJvbCBhcyBGb3JtR3JvdXApO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNjcm9sbFRvRXJyb3JzKHNlY3Rpb25zOiBGb3JtQXJyYXkpIHtcclxuICAgIGZvcihsZXQgaT0wO2k8c2VjdGlvbnMubGVuZ3RoO2krKykge1xyXG4gICAgICBsZXQgc2VjdGlvbiA9IHNlY3Rpb25zLmF0KGkpIGFzIEZvcm1Hcm91cDtcclxuICAgICAgaWYgKHNlY3Rpb24uaW52YWxpZCkge1xyXG4gICAgICAgIGxldCBxdWVzdGlvbnMgPSBzZWN0aW9uLmdldCgncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5O1xyXG4gICAgICAgIGZvcihsZXQgaj0wO2o8cXVlc3Rpb25zLmxlbmd0aDtqKyspIHtcclxuICAgICAgICAgIGxldCBxdWVzdGlvbiA9IHF1ZXN0aW9ucy5hdChqKSBhcyBGb3JtR3JvdXA7XHJcbiAgICAgICAgICAvLyBjb25zb2xlLmxvZyhxdWVzdGlvbiwncXVlc3Rpb24nKTtcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIGlmIChxdWVzdGlvbi5pbnZhbGlkKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5zaG93ID0gaTtcclxuICAgICAgICAgICAgICB0aGlzLnNjcm9sbFRvUXVlc3Rpb24oaSwgaik7XHJcbiAgICAgICAgICAgICAgdGhpcy5zd2FsVG9hc3QoJ1BsZWFzZSBmaWxsIG91dCBhbGwgdGhlIGZpZWxkcyEnLCdlcnJvcicpO1xyXG4gICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHN3YWxUb2FzdChlcnI6IHN0cmluZyx0eXBlPzpzdHJpbmcsaWNvbj86IHN0cmluZykge1xyXG4gICAgaWYodHlwZSA9PSAnZXJyb3InKSB7XHJcbiAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdChlcnIpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMudG9hc3QuZ2V0U3VjY2Vzc1RvYXN0KGVycik7XHJcbiAgICB9XHJcbiAgICAvLyBTd2FsLmZpcmUoe1xyXG4gICAgLy8gICB0b2FzdDogdHJ1ZSxcclxuICAgIC8vICAgLi4uKCBpY29uID8geyBpY29uSHRtbDogaWNvbiB9IDoge30pLFxyXG4gICAgLy8gICAvLyB0aXRsZVRleHQ6IGBDaGVja2xpc3QgRm9ybSBFcnJvcmAsXHJcbiAgICAvLyAgIGh0bWw6IGA8ZGl2IGNsYXNzPVwicm93IFwiPlxyXG4gICAgLy8gICA8ZGl2IGNsYXNzPVwiY29sLTEyIG10LTJcIj5cclxuICAgIC8vICAgPGRpdiBjbGFzcz1cInRvYXN0dGl0aWxlXCI+JHtlcnJ9PC9kaXY+XHJcbiAgICAvLyAgIDwvZGl2PlxyXG4gICAgIFxyXG4gICAgLy8gICA8L2Rpdj5gLFxyXG4gICAgLy8gICBwb3NpdGlvbjogJ2JvdHRvbScsXHJcbiAgICAvLyAgIHNob3dDb25maXJtQnV0dG9uOiBmYWxzZSxcclxuICAgIC8vICAgc2hvd0Nsb3NlQnV0dG9uOiB0cnVlLFxyXG4gICAgLy8gICB0aW1lcjogNjAwMCxcclxuICAgIC8vICAgdGltZXJQcm9ncmVzc0JhcjogdHJ1ZSxcclxuICAgIC8vICAgZGlkT3BlbjogKHRvYXN0KSA9PiB7XHJcbiAgICAvLyAgICAgdG9hc3QuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VlbnRlcicsIFN3YWwuc3RvcFRpbWVyKVxyXG4gICAgLy8gICAgIHRvYXN0LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbGVhdmUnLCBTd2FsLnJlc3VtZVRpbWVyKVxyXG4gICAgLy8gICAgICQoXCIja3RfY3JlYXRlX2FjY291bnRfZm9ybV9hY2NvdW50X3R5cGVfcGVyc29uYWxcIik/LnZhbCgnJyk7XHJcbiAgICAvLyAgICAgdGhpcy5jaGFuZ2VkZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAvLyAgIH1cclxuICAgIC8vIH0pO1xyXG4gIH1cclxuXHJcbiAgUnVuQUkoc0lkeDpudW1iZXIscUlkeDogbnVtYmVyLGFuc0lkeDpudW1iZXI9LTEpIHtcclxuICAgIGxldCBkaWFsb2dSZWY6IGFueTtcclxuICAgIGxldCBxdWVzdGlvbjogYW55ID0gdGhpcy5nZXRRdWVzdGlvbkZvcm1Db250cm9sKHNJZHgscUlkeCwncW5hbWUnKT8udmFsdWU7XHJcbiAgICBpZih0aGlzLmdldEFuc3dlckZvcm1Hcm91cF9Gb3JtQ29udHJvbChzSWR4LHFJZHgsJ3J1bkFJJyxhbnNJZHgpPy52YWx1ZSA9PSBmYWxzZSkge1xyXG4gICAgICBpZighcXVlc3Rpb24gfHwgIXRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ2NoZWNrbGlzdE5hbWUnKT8udmFsdWUpIHtcclxuICAgICAgICBsZXQgZXJyOiBzdHJpbmcgPSAhcXVlc3Rpb24gPyAnUGxlYXNlIGVudGVyIHF1ZXN0aW9uIHRvIGNvbnRpbnVlIScgOiAnUGxlYXNlIGVudGVyIENoZWNrbGlzdCBOYW1lIHRvIGNvbnRpbnVlISc7XHJcbiAgICAgICAgdGhpcy5zd2FsVG9hc3QoZXJyLCdlcnJvcicpOyAgICAgICAgXHJcbiAgICAgICAgdGhpcy5ydW5BSU9mZihzSWR4LCBxSWR4LGZhbHNlLGFuc0lkeCk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oVHJheHBvcHVwQ29tcG9uZW50LHtjZW50ZXJlZDogdHJ1ZSwgc2l6ZTogJ21kJ30pO1xyXG4gICAgICAgIGRpYWxvZ1JlZi5jb21wb25lbnRJbnN0YW5jZS5kYXRhID0ge1xyXG4gICAgICAgICAgaW1hZ2VzcmM6IGA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjU2XCIgaGVpZ2h0PVwiNTZcIiB2aWV3Qm94PVwiMCAwIDU2IDU2XCIgZmlsbD1cIm5vbmVcIj48cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIGZpbGw9XCIjRDFGQURGXCIvPjxwYXRoIGQ9XCJNMjMuMzU2NCAxOS4zNTI1QzI0LjE3NDggMTguNzMyNyAyNS4xNzM4IDE4LjM5ODUgMjYuMjAwNCAxOC40MDA5QzI2LjU1NDkgMTguMzkzIDI2LjkwNTcgMTguNDc0NiAyNy4yMjA0IDE4LjYzODJDMjcuNTM1IDE4LjgwMTggMjcuODAzMyAxOS4wNDIxIDI4LjAwMDQgMTkuMzM2OUMyOC4xOTc1IDE5LjA0MjEgMjguNDY1OCAxOC44MDE4IDI4Ljc4MDQgMTguNjM4MkMyOS4wOTUgMTguNDc0NiAyOS40NDU5IDE4LjM5MyAyOS44MDA0IDE4LjQwMDlDMzAuODI3IDE4LjM5ODUgMzEuODI2IDE4LjczMjcgMzIuNjQ0NCAxOS4zNTI1QzMzLjI3NDQgMTkuODQyMSAzMy43NjA0IDIwLjUyMDEgMzMuOTMyIDIxLjMzOTdDMzQuMzI1NiAyMS4zNjk3IDM0LjY4NTYgMjEuNTMyOSAzNC45ODggMjEuNzc4OUMzNS40NDY0IDIyLjE1MDkgMzUuNzggMjIuNzA4OSAzNS45OSAyMy4yOTkzQzM2LjMxODggMjQuMjE3MyAzNi40MDc2IDI1LjM4NzMgMzYuMDY2OCAyNi4zODMzQzM2LjE1MzIgMjYuNDI0MSAzNi4yMzg0IDI2LjQ3MjEgMzYuMzIxMiAyNi41MjczQzM2LjY1MTIgMjYuNzQ2OSAzNi45MDIgMjcuMDYxMyAzNy4wODY4IDI3LjQzMjFDMzcuNDUwNCAyOC4xNTgxIDM3LjYwMDQgMjkuMTcwOSAzNy42MDA0IDMwLjQwMDlDMzcuNjAwNCAzMS43NzAxIDM3LjA3ODQgMzIuNjg5MyAzNi40MTYgMzMuMjU2OUMzNi4wNDk3IDMzLjU3MSAzNS42MTc0IDMzLjc5ODYgMzUuMTUxMiAzMy45MjI5QzM1LjAzMTIgMzQuNTkyNSAzNC42OTUyIDM1LjM2NzcgMzQuMTY4NCAzNi4wMjUzQzMzLjQ4NDQgMzYuODgzMyAzMi40MjM2IDM3LjYwMDkgMzEuMDAwNCAzNy42MDA5QzI5Ljg3MjQgMzcuNjAwOSAyOC45NzQ4IDM2Ljk3NjkgMjguMzkxNiAzNi4zNjQ5QzI4LjI1MjIgMzYuMjE4OCAyOC4xMjE1IDM2LjA2NDUgMjguMDAwNCAzNS45MDI5QzI3Ljg3OTMgMzYuMDY0NSAyNy43NDg2IDM2LjIxODggMjcuNjA5MiAzNi4zNjQ5QzI3LjAyNiAzNi45NzY5IDI2LjEyOTYgMzcuNjAwOSAyNS4wMDA0IDM3LjYwMDlDMjMuNTc3MiAzNy42MDA5IDIyLjUxNzYgMzYuODgzMyAyMS44MzI0IDM2LjAyNTNDMjEuMzQwMSAzNS40MTQgMjEuMDAyOSAzNC42OTI3IDIwLjg0OTYgMzMuOTIyOUMyMC4zODM0IDMzLjc5ODYgMTkuOTUxMSAzMy41NzEgMTkuNTg0OCAzMy4yNTY5QzE4LjkyMjQgMzIuNjg5MyAxOC40MDA0IDMxLjc2ODkgMTguNDAwNCAzMC40MDA5QzE4LjQwMDQgMjkuMTcwOSAxOC41NTE2IDI4LjE1NjkgMTguOTE0IDI3LjQzMjFDMTkuMDg1NyAyNy4wNjg1IDE5LjM0OTcgMjYuNzU2MSAxOS42Nzk2IDI2LjUyNjFDMTkuNzYwNiAyNi40NzI1IDE5Ljg0NTcgMjYuNDI1MSAxOS45MzQgMjYuMzg0NUMxOS41OTMyIDI1LjM4NjEgMTkuNjgyIDI0LjIxNzMgMjAuMDEwOCAyMy4yOTkzQzIwLjIyMDggMjIuNzA4OSAyMC41NTQ0IDIyLjE1MDkgMjEuMDEyOCAyMS43Nzg5QzIxLjMxNTIgMjEuNTMyOSAyMS42NzUyIDIxLjM3MDkgMjIuMDY4OCAyMS4zMzk3QzIyLjI0MTYgMjAuNTIwMSAyMi43MjY0IDE5Ljg0MjEgMjMuMzU2NCAxOS4zNTI1Wk0yNy40MDA0IDIxLjQwMDlWMjEuMzg4OUwyNy4zOTggMjEuMzI4OUMyNy4zODAzIDIxLjAxNjEgMjcuMzE4MSAyMC43MDc0IDI3LjIxMzIgMjAuNDEyMUMyNy4xMzg1IDIwLjE4OTIgMjcuMDExMyAxOS45ODc2IDI2Ljg0MjQgMTkuODI0MUMyNi42NjUxIDE5LjY2OTggMjYuNDM1MiAxOS41ODk4IDI2LjIwMDQgMTkuNjAwOUMyNS40NDA3IDE5LjU5ODMgMjQuNzAwOSAxOS44NDM1IDI0LjA5MzIgMjAuMjk5M0MyMy41MzY0IDIwLjczMjUgMjMuMjAwNCAyMS4zMTkzIDIzLjIwMDQgMjIuMDAwOUMyMy4yMDAzIDIyLjA5NTkgMjMuMTc3NyAyMi4xODk2IDIzLjEzNDMgMjIuMjc0MUMyMy4wOTEgMjIuMzU4NyAyMy4wMjgyIDIyLjQzMTggMjIuOTUxMSAyMi40ODczQzIyLjg3NCAyMi41NDI4IDIyLjc4NDggMjIuNTc5MyAyMi42OTA5IDIyLjU5MzZDMjIuNTk2OSAyMi42MDc5IDIyLjUwMDkgMjIuNTk5NyAyMi40MTA4IDIyLjU2OTdDMjIuMTg1MiAyMi40OTUzIDIxLjk4MzYgMjIuNTM3MyAyMS43Njg4IDIyLjcxMDFDMjEuNTMzNiAyMi45MDIxIDIxLjMwNDQgMjMuMjQyOSAyMS4xNCAyMy43MDI1QzIwLjgwNTIgMjQuNjQwOSAyMC44NCAyNS43NzczIDIxLjI5OTYgMjYuNDY4NUMyMS4zNjUyIDI2LjU2NyAyMS40MDAzIDI2LjY4MjYgMjEuNDAwNCAyNi44MDA5SDIyLjMwMDRDMjMuMDE2NSAyNi44MDA5IDIzLjcwMzIgMjcuMDg1NCAyNC4yMDk2IDI3LjU5MTdDMjQuNzE1OSAyOC4wOTgxIDI1LjAwMDQgMjguNzg0OCAyNS4wMDA0IDI5LjUwMDlWMjkuOTAyOUMyNS40MDA3IDMwLjA0NDUgMjUuNzM4MSAzMC4zMjMgMjUuOTUzIDMwLjY4OTJDMjYuMTY3OCAzMS4wNTU1IDI2LjI0NjMgMzEuNDg1OSAyNi4xNzQ1IDMxLjkwNDRDMjYuMTAyNyAzMi4zMjI5IDI1Ljg4NTIgMzIuNzAyNSAyNS41NjA2IDMyLjk3NjJDMjUuMjM1OSAzMy4yNDk5IDI0LjgyNSAzMy40IDI0LjQwMDQgMzMuNEMyMy45NzU4IDMzLjQgMjMuNTY0OCAzMy4yNDk5IDIzLjI0MDIgMzIuOTc2MkMyMi45MTU2IDMyLjcwMjUgMjIuNjk4MSAzMi4zMjI5IDIyLjYyNjMgMzEuOTA0NEMyMi41NTQ1IDMxLjQ4NTkgMjIuNjMzIDMxLjA1NTUgMjIuODQ3OCAzMC42ODkyQzIzLjA2MjcgMzAuMzIzIDIzLjQwMDEgMzAuMDQ0NSAyMy44MDA0IDI5LjkwMjlWMjkuNTAwOUMyMy44MDA0IDI4LjY3MjkgMjMuMTI4NCAyOC4wMDA5IDIyLjMwMDQgMjguMDAwOUgyMC4yMDA0QzIwLjEyODcgMjguMDAwOCAyMC4wNTc1IDI3Ljk4NzggMTkuOTkwNCAyNy45NjI1TDE5Ljk4NjggMjcuOTY5N0MxOS43NDkyIDI4LjQ0MzcgMTkuNjAwNCAyOS4yMzA5IDE5LjYwMDQgMzAuNDAwOUMxOS42MDA0IDMxLjQzMTcgMTkuOTc4NCAzMi4wMTI1IDIwLjM2NiAzMi4zNDQ5QzIwLjc4MjQgMzIuNzAyNSAyMS4yNDQ0IDMyLjgwMDkgMjEuNDAwNCAzMi44MDA5QzIxLjU1OTUgMzIuODAwOSAyMS43MTIxIDMyLjg2NDEgMjEuODI0NyAzMi45NzY3QzIxLjkzNzIgMzMuMDg5MiAyMi4wMDA0IDMzLjI0MTggMjIuMDAwNCAzMy40MDA5QzIyLjAwMDQgMzMuODQyNSAyMi4yNDA0IDM0LjYxNDEgMjIuNzY4NCAzNS4yNzY1QzIzLjI4MzIgMzUuOTE4NSAyNC4wMjM2IDM2LjQwMDkgMjUuMDAwNCAzNi40MDA5QzI1LjY3MjQgMzYuNDAwOSAyNi4yNzQ4IDM2LjAyNTMgMjYuNzQwNCAzNS41MzY5QzI2Ljk2OTYgMzUuMjk2OSAyNy4xNDg0IDM1LjA0ODUgMjcuMjY0OCAzNC44NDQ1QzI3LjMxNzggMzQuNzU0MSAyNy4zNjMxIDM0LjY1OTMgMjcuNDAwNCAzNC41NjEzVjI1LjAwMDlIMjYuMDk4NEMyNS45NTY5IDI1LjQwMTIgMjUuNjc4MyAyNS43Mzg3IDI1LjMxMjEgMjUuOTUzNUMyNC45NDU5IDI2LjE2ODMgMjQuNTE1NCAyNi4yNDY4IDI0LjA5NyAyNi4xNzVDMjMuNjc4NSAyNi4xMDMyIDIzLjI5ODggMjUuODg1OCAyMy4wMjUxIDI1LjU2MTFDMjIuNzUxNCAyNS4yMzY1IDIyLjYwMTMgMjQuODI1NSAyMi42MDEzIDI0LjQwMDlDMjIuNjAxMyAyMy45NzYzIDIyLjc1MTQgMjMuNTY1NCAyMy4wMjUxIDIzLjI0MDdDMjMuMjk4OCAyMi45MTYxIDIzLjY3ODUgMjIuNjk4NiAyNC4wOTcgMjIuNjI2OEMyNC41MTU0IDIyLjU1NSAyNC45NDU5IDIyLjYzMzUgMjUuMzEyMSAyMi44NDgzQzI1LjY3ODMgMjMuMDYzMiAyNS45NTY5IDIzLjQwMDYgMjYuMDk4NCAyMy44MDA5SDI3LjQwMDRWMjEuNDAwOVpNMjguNjAwNCAzMy4zOTk3VjM0LjU2MDFDMjguNjM3NyAzNC42NTgxIDI4LjY4MyAzNC43NTI4IDI4LjczNiAzNC44NDMzQzI4Ljg1MzYgMzUuMDQ3MyAyOS4wMzEyIDM1LjI5NTcgMjkuMjU5MiAzNS41MzU3QzI5LjcyNiAzNi4wMjQxIDMwLjMyOTYgMzYuMzk5NyAzMS4wMDA0IDM2LjM5OTdDMzEuOTc3MiAzNi4zOTk3IDMyLjcxNzYgMzUuOTE3MyAzMy4yMzI0IDM1LjI3NTNDMzMuNzYwNCAzNC42MTI5IDM0LjAwMDQgMzMuODQxMyAzNC4wMDA0IDMzLjM5OTdDMzQuMDAwNCAzMy4yNDA2IDM0LjA2MzYgMzMuMDg4IDM0LjE3NjEgMzIuOTc1NUMzNC4yODg2IDMyLjg2MjkgMzQuNDQxMyAzMi43OTk3IDM0LjYwMDQgMzIuNzk5N0MzNC43NTY0IDMyLjc5OTcgMzUuMjE4NCAzMi43MDEzIDM1LjYzNDggMzIuMzQzN0MzNi4wMjI0IDMyLjAxMTMgMzYuNDAwNCAzMS40MzA1IDM2LjQwMDQgMzAuMzk5N0MzNi40MDA0IDI5LjIyOTcgMzYuMjUwNCAyOC40NDM3IDM2LjAxNCAyNy45Njg1QzM1LjkzNDkgMjcuNzkxNiAzNS44MTA4IDI3LjYzODUgMzUuNjU0IDI3LjUyNDVDMzUuNTE4OSAyNy40MzgxIDM1LjM2MDYgMjcuMzk1IDM1LjIwMDQgMjcuNDAwOUMzNS4wOTE5IDI3LjQwMDkgMzQuOTg1NCAyNy4zNzE0IDM0Ljg5MjMgMjcuMzE1NkMzNC43OTkyIDI3LjI1OTggMzQuNzIzIDI3LjE3OTggMzQuNjcxNyAyNy4wODQxQzM0LjYyMDUgMjYuOTg4NCAzNC41OTYyIDI2Ljg4MDcgMzQuNjAxNCAyNi43NzIzQzM0LjYwNjYgMjYuNjYzOCAzNC42NDExIDI2LjU1ODkgMzQuNzAxMiAyNi40Njg1QzM1LjE2MiAyNS43NzczIDM1LjE5NTYgMjQuNjQwOSAzNC44NjA4IDIzLjcwMjVDMzQuNjk2NCAyMy4yNDI5IDM0LjQ2NzIgMjIuOTAwOSAzNC4yMzIgMjIuNzEwMUMzNC4wMTcyIDIyLjUzNzMgMzMuODE1NiAyMi40OTQxIDMzLjU5IDIyLjU2OTdDMzMuNDk5OCAyMi41OTk3IDMzLjQwMzggMjIuNjA3OSAzMy4zMDk5IDIyLjU5MzZDMzMuMjE2IDIyLjU3OTMgMzMuMTI2OCAyMi41NDI4IDMzLjA0OTcgMjIuNDg3M0MzMi45NzI2IDIyLjQzMTggMzIuOTA5OCAyMi4zNTg3IDMyLjg2NjQgMjIuMjc0MUMzMi44MjMxIDIyLjE4OTYgMzIuODAwNSAyMi4wOTU5IDMyLjgwMDQgMjIuMDAwOUMzMi44MDA0IDIxLjMxOTMgMzIuNDY0NCAyMC43MzI1IDMxLjkwNjQgMjAuMjk5M0MzMS4yOTkgMTkuODQzOCAzMC41NTk2IDE5LjU5ODYgMjkuODAwNCAxOS42MDA5QzI5LjU2NTYgMTkuNTg5OCAyOS4zMzU2IDE5LjY2OTggMjkuMTU4NCAxOS44MjQxQzI4Ljk4ODkgMTkuOTg3NCAyOC44NjEzIDIwLjE4OTEgMjguNzg2NCAyMC40MTIxQzI4LjY3MjEgMjAuNzI1NiAyOC42MDkzIDIxLjA1NTQgMjguNjAwNCAyMS4zODg5VjMyLjIwMDlIMjkuNTAwNEMzMC4zMjg0IDMyLjIwMDkgMzEuMDAwNCAzMS41Mjg5IDMxLjAwMDQgMzAuNzAwOVYyOC40OTg5QzMwLjYwMDEgMjguMzU3NCAzMC4yNjI3IDI4LjA3ODkgMzAuMDQ3OCAyNy43MTI2QzI5LjgzMyAyNy4zNDY0IDI5Ljc1NDUgMjYuOTE2IDI5LjgyNjMgMjYuNDk3NUMyOS44OTgxIDI2LjA3OSAzMC4xMTU2IDI1LjY5OTMgMzAuNDQwMiAyNS40MjU3QzMwLjc2NDggMjUuMTUyIDMxLjE3NTggMjUuMDAxOSAzMS42MDA0IDI1LjAwMTlDMzIuMDI1IDI1LjAwMTkgMzIuNDM1OSAyNS4xNTIgMzIuNzYwNiAyNS40MjU3QzMzLjA4NTIgMjUuNjk5MyAzMy4zMDI3IDI2LjA3OSAzMy4zNzQ1IDI2LjQ5NzVDMzMuNDQ2MyAyNi45MTYgMzMuMzY3OCAyNy4zNDY0IDMzLjE1MyAyNy43MTI2QzMyLjkzODEgMjguMDc4OSAzMi42MDA3IDI4LjM1NzQgMzIuMjAwNCAyOC40OTg5VjMwLjcwMDlDMzIuMjAwNCAzMS40MTcgMzEuOTE1OSAzMi4xMDM4IDMxLjQwOTYgMzIuNjEwMUMzMC45MDMyIDMzLjExNjUgMzAuMjE2NSAzMy40MDA5IDI5LjUwMDQgMzMuNDAwOUgyOC42MDA0VjMzLjM5OTdaTTIzLjgwMDQgMjQuNDAwOUMyMy44MDA0IDI0LjU2MDEgMjMuODYzNiAyNC43MTI3IDIzLjk3NjEgMjQuODI1MkMyNC4wODg2IDI0LjkzNzcgMjQuMjQxMyAyNS4wMDA5IDI0LjQwMDQgMjUuMDAwOUMyNC41NTk1IDI1LjAwMDkgMjQuNzEyMSAyNC45Mzc3IDI0LjgyNDcgMjQuODI1MkMyNC45MzcyIDI0LjcxMjcgMjUuMDAwNCAyNC41NjAxIDI1LjAwMDQgMjQuNDAwOUMyNS4wMDA0IDI0LjI0MTggMjQuOTM3MiAyNC4wODkyIDI0LjgyNDcgMjMuOTc2N0MyNC43MTIxIDIzLjg2NDEgMjQuNTU5NSAyMy44MDA5IDI0LjQwMDQgMjMuODAwOUMyNC4yNDEzIDIzLjgwMDkgMjQuMDg4NiAyMy44NjQxIDIzLjk3NjEgMjMuOTc2N0MyMy44NjM2IDI0LjA4OTIgMjMuODAwNCAyNC4yNDE4IDIzLjgwMDQgMjQuNDAwOVpNMzEuNjAwNCAyNy40MDA5QzMxLjc1OTUgMjcuNDAwOSAzMS45MTIxIDI3LjMzNzcgMzIuMDI0NyAyNy4yMjUyQzMyLjEzNzIgMjcuMTEyNyAzMi4yMDA0IDI2Ljk2MDEgMzIuMjAwNCAyNi44MDA5QzMyLjIwMDQgMjYuNjQxOCAzMi4xMzcyIDI2LjQ4OTIgMzIuMDI0NyAyNi4zNzY3QzMxLjkxMjEgMjYuMjY0MSAzMS43NTk1IDI2LjIwMDkgMzEuNjAwNCAyNi4yMDA5QzMxLjQ0MTMgMjYuMjAwOSAzMS4yODg2IDI2LjI2NDEgMzEuMTc2MSAyNi4zNzY3QzMxLjA2MzYgMjYuNDg5MiAzMS4wMDA0IDI2LjY0MTggMzEuMDAwNCAyNi44MDA5QzMxLjAwMDQgMjYuOTYwMSAzMS4wNjM2IDI3LjExMjcgMzEuMTc2MSAyNy4yMjUyQzMxLjI4ODYgMjcuMzM3NyAzMS40NDEzIDI3LjQwMDkgMzEuNjAwNCAyNy40MDA5Wk0yNC40MDA0IDMxLjAwMDlDMjQuMjQxMyAzMS4wMDA5IDI0LjA4ODYgMzEuMDY0MSAyMy45NzYxIDMxLjE3NjdDMjMuODYzNiAzMS4yODkyIDIzLjgwMDQgMzEuNDQxOCAyMy44MDA0IDMxLjYwMDlDMjMuODAwNCAzMS43NjAxIDIzLjg2MzYgMzEuOTEyNyAyMy45NzYxIDMyLjAyNTJDMjQuMDg4NiAzMi4xMzc3IDI0LjI0MTMgMzIuMjAwOSAyNC40MDA0IDMyLjIwMDlDMjQuNTU5NSAzMi4yMDA5IDI0LjcxMjEgMzIuMTM3NyAyNC44MjQ3IDMyLjAyNTJDMjQuOTM3MiAzMS45MTI3IDI1LjAwMDQgMzEuNzYwMSAyNS4wMDA0IDMxLjYwMDlDMjUuMDAwNCAzMS40NDE4IDI0LjkzNzIgMzEuMjg5MiAyNC44MjQ3IDMxLjE3NjdDMjQuNzEyMSAzMS4wNjQxIDI0LjU1OTUgMzEuMDAwOSAyNC40MDA0IDMxLjAwMDlaXCIgZmlsbD1cIiMwMzk4NTVcIi8+PHJlY3QgeD1cIjRcIiB5PVwiNFwiIHdpZHRoPVwiNDhcIiBoZWlnaHQ9XCI0OFwiIHJ4PVwiMjRcIiBzdHJva2U9XCIjRUNGREYzXCIgc3Ryb2tlLXdpZHRoPVwiOFwiLz48L3N2Zz5gLFxyXG4gICAgICAgICAgdGl0bGU6IGBSdW4gQUkgb24gaW1hZ2UgdXBsb2FkZWRgLFxyXG4gICAgICAgICAgY29udGVudDogYFVzZSB0aGUgcG93ZXIgb2YgQUkgdG8gY29tcGFyZSBhbmQgZGV0ZWN0IGFub21hbGllcyBiZXR3ZWVuIHVwbG9hZGVkIGFuZCByZWZlcmVuY2UgaW1hZ2UuYCxcclxuICAgICAgICAgIGlucHV0bGFiZWwxOiAnUXVlc3Rpb24nLFxyXG4gICAgICAgICAgaW5wdXR0eXBlMTogJ3RleHQnLFxyXG4gICAgICAgICAgaW5wdXQxOiAndHJ1ZScsXHJcbiAgICAgICAgICBpbnB1dGxhYmVsMjogJ1NwZWNpZnkgeW91ciByZXF1ZXN0JyxcclxuICAgICAgICAgIGlucHV0dHlwZTI6ICd0ZXh0JyxcclxuICAgICAgICAgIHJlc1R5cGU6ICdjdXN0b20nLFxyXG4gICAgICAgICAgaW5wdXQyOiAndHJ1ZScsXHJcbiAgICAgICAgICBwbGFjZWhvbGRlcjE6IHF1ZXN0aW9uLFxyXG4gICAgICAgICAgcGxhY2Vob2xkZXIyOiAnUGxlYXNlIGNvbXBhcmUgdGhlIHVwbG9hZGVkIGltYWdlcyBhLi4nLFxyXG4gICAgICAgICAgYnV0dG9udHlwZTogJ1JlcXVlc3QnXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGRpYWxvZ1JlZi5yZXN1bHQudGhlbigocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChyZXMgJiYgcmVzLnN0YXR1cyA9PSAnY29uZmlybScpIHtcclxuICAgICAgICAgICAgbGV0IHJlcTogYW55ID0ge1xyXG4gICAgICAgICAgICAgIGNoZWNrbGlzdE5hbWU6IHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ2NoZWNrbGlzdE5hbWUnKT8udmFsdWUsXHJcbiAgICAgICAgICAgICAgcXVlc3Rpb25OYW1lOiBxdWVzdGlvbixcclxuICAgICAgICAgICAgICBydW5BSURlc2NyaXB0aW9uOiByZXMuZGF0YS5yZXF1ZXN0VGV4dCxcclxuICAgICAgICAgICAgICBhbnN3ZXJUeXBlOiBcImltYWdlXCIsXHJcbiAgICAgICAgICAgICAgcmVmZXJlbmNlSW1hZ2U6IHRoaXMuZ2V0QW5zd2VyRm9ybUdyb3VwX0Zvcm1Db250cm9sKHNJZHgsIHFJZHgsIFwibXVsdGlSZWZlcmVuY2VJbWFnZVwiLGFuc0lkeCk/LnZhbHVlIHx8ICcnLFxyXG4gICAgICAgICAgICAgIGNsaWVudElkOnRoaXMuY2xpZW50SWRcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLnNvcFNlcnZpY2UucnVuQUlJbnNlcnQocmVxKS5waXBlKHRha2VVbnRpbCh0aGlzLmRldGFjaCkpLnN1YnNjcmliZSgoYXBpcmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICBpZiAoYXBpcmVzKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoYXBpcmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5oYXNWYWxpZGF0aW9uRW5hYmxlZChzSWR4LCBxSWR4KSkge1xyXG4gICAgICAgICAgICAgICAgICAgICgoKCh0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheSlcclxuICAgICAgICAgICAgICAgICAgICAuYXQoc0lkeCkgYXMgRm9ybUdyb3VwKVxyXG4gICAgICAgICAgICAgICAgICAgIC5nZXQoJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheSlcclxuICAgICAgICAgICAgICAgICAgICAuYXQocUlkeCkgYXMgRm9ybUdyb3VwKS5nZXQoJ2NvbXBsaWFuY2UnKT8uZW5hYmxlKHsgb25seVNlbGY6IHRydWUgfSlcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygoKCgodGhpcy5DaGVja2xpc3RGb3JtLmdldCgnc2VjdGlvbnMnKSBhcyBGb3JtQXJyYXkpXHJcbiAgICAgICAgICAgICAgICAgIC5hdChzSWR4KSBhcyBGb3JtR3JvdXApXHJcbiAgICAgICAgICAgICAgICAgIC5nZXQoJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheSlcclxuICAgICAgICAgICAgICAgICAgLmF0KHFJZHgpIGFzIEZvcm1Hcm91cCkuZ2V0KCdjb21wbGlhbmNlJykpXHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0QW5zd2VyRm9ybUdyb3VwX0Zvcm1Db250cm9sKHNJZHgsIHFJZHgsICdydW5BSScsYW5zSWR4KT8ucGF0Y2hWYWx1ZSh0cnVlKTtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5nZXRRdWVzdGlvbkZvcm1Db250cm9sKHNJZHgsIHFJZHgsICdydW5BSScsYW5zSWR4KT8ucGF0Y2hWYWx1ZSh0cnVlKTtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5nZXRRdWVzdGlvbkZvcm1Db250cm9sKHNJZHgsIHFJZHgsICdydW5BSURlc2NyaXB0aW9uJyxhbnNJZHgpPy5wYXRjaFZhbHVlKHJlcy5kYXRhLnJlcXVlc3RUZXh0KTtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5zd2FsVG9hc3QoXHJcbiAgICAgICAgICAgICAgICAgICAgYDxzcGFuIHN0eWxlPVwicGFkZGluZy1yaWdodDogMzZweDtcIj4ke2FwaXJlcy5kYXRhLm1lc3NhZ2V9PC9zcGFuPmAsXHJcbiAgICAgICAgICAgICAgICAgICAgYDxpbWcgc3JjPVwiLi4vLi4vLi4vLi4vYXNzZXRzL0ljb25zL3NvcC1ydW5haS10b3N0aWNvbi5zdmdcIiAvPmBcclxuICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgICAgLy8gPGEgXHJcbiAgICAgICAgICAgICAgICAgIC8vICAgICAgIGhyZWY9XCIvc3VwcG9ydC92aWV3LXRpY2tldHNcIiBcclxuICAgICAgICAgICAgICAgICAgLy8gICAgICAgdGFyZ2V0PVwiX2JsYW5rXCIgXHJcbiAgICAgICAgICAgICAgICAgIC8vICAgICAgIHN0eWxlPVwiY29sb3I6IHZhcigtLXByaW1hcnktNzAwLCAjMDA5QkYzKTtmb250LWZhbWlseTogUm9ib3RvO2ZvbnQtc2l6ZTogMTVweDtmb250LXdlaWdodDogNzAwO3RleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO2N1cnNvcjogcG9pbnRlcjtcIj5cclxuICAgICAgICAgICAgICAgICAgLy8gICAgICAgICBWaWV3IFRpY2tldFxyXG4gICAgICAgICAgICAgICAgICAvLyAgIDwvYT5cclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMucnVuQUlPZmYoc0lkeCwgcUlkeCx0cnVlLGFuc0lkeCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMucnVuQUlPZmYoc0lkeCwgcUlkeCx0cnVlLGFuc0lkeCk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9LCAoZXJyb3IpID0+IHtcclxuICAgICAgICAgICAgICB0aGlzLnJ1bkFJT2ZmKHNJZHgsIHFJZHgsdHJ1ZSxhbnNJZHgpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMucnVuQUlPZmYoc0lkeCwgcUlkeCxmYWxzZSxhbnNJZHgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKFRyYXhwb3B1cENvbXBvbmVudCx7Y2VudGVyZWQ6IHRydWUsIHNpemU6ICdtZCd9KTtcclxuICAgICAgZGlhbG9nUmVmLmNvbXBvbmVudEluc3RhbmNlLmRhdGEgPSB7XHJcbiAgICAgICAgaW1hZ2VzcmM6IGA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjU2XCIgaGVpZ2h0PVwiNTZcIiB2aWV3Qm94PVwiMCAwIDU2IDU2XCIgZmlsbD1cIm5vbmVcIj48cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIGZpbGw9XCIjRDFGQURGXCIvPjxwYXRoIGQ9XCJNMjMuMzU2NCAxOS4zNTI1QzI0LjE3NDggMTguNzMyNyAyNS4xNzM4IDE4LjM5ODUgMjYuMjAwNCAxOC40MDA5QzI2LjU1NDkgMTguMzkzIDI2LjkwNTcgMTguNDc0NiAyNy4yMjA0IDE4LjYzODJDMjcuNTM1IDE4LjgwMTggMjcuODAzMyAxOS4wNDIxIDI4LjAwMDQgMTkuMzM2OUMyOC4xOTc1IDE5LjA0MjEgMjguNDY1OCAxOC44MDE4IDI4Ljc4MDQgMTguNjM4MkMyOS4wOTUgMTguNDc0NiAyOS40NDU5IDE4LjM5MyAyOS44MDA0IDE4LjQwMDlDMzAuODI3IDE4LjM5ODUgMzEuODI2IDE4LjczMjcgMzIuNjQ0NCAxOS4zNTI1QzMzLjI3NDQgMTkuODQyMSAzMy43NjA0IDIwLjUyMDEgMzMuOTMyIDIxLjMzOTdDMzQuMzI1NiAyMS4zNjk3IDM0LjY4NTYgMjEuNTMyOSAzNC45ODggMjEuNzc4OUMzNS40NDY0IDIyLjE1MDkgMzUuNzggMjIuNzA4OSAzNS45OSAyMy4yOTkzQzM2LjMxODggMjQuMjE3MyAzNi40MDc2IDI1LjM4NzMgMzYuMDY2OCAyNi4zODMzQzM2LjE1MzIgMjYuNDI0MSAzNi4yMzg0IDI2LjQ3MjEgMzYuMzIxMiAyNi41MjczQzM2LjY1MTIgMjYuNzQ2OSAzNi45MDIgMjcuMDYxMyAzNy4wODY4IDI3LjQzMjFDMzcuNDUwNCAyOC4xNTgxIDM3LjYwMDQgMjkuMTcwOSAzNy42MDA0IDMwLjQwMDlDMzcuNjAwNCAzMS43NzAxIDM3LjA3ODQgMzIuNjg5MyAzNi40MTYgMzMuMjU2OUMzNi4wNDk3IDMzLjU3MSAzNS42MTc0IDMzLjc5ODYgMzUuMTUxMiAzMy45MjI5QzM1LjAzMTIgMzQuNTkyNSAzNC42OTUyIDM1LjM2NzcgMzQuMTY4NCAzNi4wMjUzQzMzLjQ4NDQgMzYuODgzMyAzMi40MjM2IDM3LjYwMDkgMzEuMDAwNCAzNy42MDA5QzI5Ljg3MjQgMzcuNjAwOSAyOC45NzQ4IDM2Ljk3NjkgMjguMzkxNiAzNi4zNjQ5QzI4LjI1MjIgMzYuMjE4OCAyOC4xMjE1IDM2LjA2NDUgMjguMDAwNCAzNS45MDI5QzI3Ljg3OTMgMzYuMDY0NSAyNy43NDg2IDM2LjIxODggMjcuNjA5MiAzNi4zNjQ5QzI3LjAyNiAzNi45NzY5IDI2LjEyOTYgMzcuNjAwOSAyNS4wMDA0IDM3LjYwMDlDMjMuNTc3MiAzNy42MDA5IDIyLjUxNzYgMzYuODgzMyAyMS44MzI0IDM2LjAyNTNDMjEuMzQwMSAzNS40MTQgMjEuMDAyOSAzNC42OTI3IDIwLjg0OTYgMzMuOTIyOUMyMC4zODM0IDMzLjc5ODYgMTkuOTUxMSAzMy41NzEgMTkuNTg0OCAzMy4yNTY5QzE4LjkyMjQgMzIuNjg5MyAxOC40MDA0IDMxLjc2ODkgMTguNDAwNCAzMC40MDA5QzE4LjQwMDQgMjkuMTcwOSAxOC41NTE2IDI4LjE1NjkgMTguOTE0IDI3LjQzMjFDMTkuMDg1NyAyNy4wNjg1IDE5LjM0OTcgMjYuNzU2MSAxOS42Nzk2IDI2LjUyNjFDMTkuNzYwNiAyNi40NzI1IDE5Ljg0NTcgMjYuNDI1MSAxOS45MzQgMjYuMzg0NUMxOS41OTMyIDI1LjM4NjEgMTkuNjgyIDI0LjIxNzMgMjAuMDEwOCAyMy4yOTkzQzIwLjIyMDggMjIuNzA4OSAyMC41NTQ0IDIyLjE1MDkgMjEuMDEyOCAyMS43Nzg5QzIxLjMxNTIgMjEuNTMyOSAyMS42NzUyIDIxLjM3MDkgMjIuMDY4OCAyMS4zMzk3QzIyLjI0MTYgMjAuNTIwMSAyMi43MjY0IDE5Ljg0MjEgMjMuMzU2NCAxOS4zNTI1Wk0yNy40MDA0IDIxLjQwMDlWMjEuMzg4OUwyNy4zOTggMjEuMzI4OUMyNy4zODAzIDIxLjAxNjEgMjcuMzE4MSAyMC43MDc0IDI3LjIxMzIgMjAuNDEyMUMyNy4xMzg1IDIwLjE4OTIgMjcuMDExMyAxOS45ODc2IDI2Ljg0MjQgMTkuODI0MUMyNi42NjUxIDE5LjY2OTggMjYuNDM1MiAxOS41ODk4IDI2LjIwMDQgMTkuNjAwOUMyNS40NDA3IDE5LjU5ODMgMjQuNzAwOSAxOS44NDM1IDI0LjA5MzIgMjAuMjk5M0MyMy41MzY0IDIwLjczMjUgMjMuMjAwNCAyMS4zMTkzIDIzLjIwMDQgMjIuMDAwOUMyMy4yMDAzIDIyLjA5NTkgMjMuMTc3NyAyMi4xODk2IDIzLjEzNDMgMjIuMjc0MUMyMy4wOTEgMjIuMzU4NyAyMy4wMjgyIDIyLjQzMTggMjIuOTUxMSAyMi40ODczQzIyLjg3NCAyMi41NDI4IDIyLjc4NDggMjIuNTc5MyAyMi42OTA5IDIyLjU5MzZDMjIuNTk2OSAyMi42MDc5IDIyLjUwMDkgMjIuNTk5NyAyMi40MTA4IDIyLjU2OTdDMjIuMTg1MiAyMi40OTUzIDIxLjk4MzYgMjIuNTM3MyAyMS43Njg4IDIyLjcxMDFDMjEuNTMzNiAyMi45MDIxIDIxLjMwNDQgMjMuMjQyOSAyMS4xNCAyMy43MDI1QzIwLjgwNTIgMjQuNjQwOSAyMC44NCAyNS43NzczIDIxLjI5OTYgMjYuNDY4NUMyMS4zNjUyIDI2LjU2NyAyMS40MDAzIDI2LjY4MjYgMjEuNDAwNCAyNi44MDA5SDIyLjMwMDRDMjMuMDE2NSAyNi44MDA5IDIzLjcwMzIgMjcuMDg1NCAyNC4yMDk2IDI3LjU5MTdDMjQuNzE1OSAyOC4wOTgxIDI1LjAwMDQgMjguNzg0OCAyNS4wMDA0IDI5LjUwMDlWMjkuOTAyOUMyNS40MDA3IDMwLjA0NDUgMjUuNzM4MSAzMC4zMjMgMjUuOTUzIDMwLjY4OTJDMjYuMTY3OCAzMS4wNTU1IDI2LjI0NjMgMzEuNDg1OSAyNi4xNzQ1IDMxLjkwNDRDMjYuMTAyNyAzMi4zMjI5IDI1Ljg4NTIgMzIuNzAyNSAyNS41NjA2IDMyLjk3NjJDMjUuMjM1OSAzMy4yNDk5IDI0LjgyNSAzMy40IDI0LjQwMDQgMzMuNEMyMy45NzU4IDMzLjQgMjMuNTY0OCAzMy4yNDk5IDIzLjI0MDIgMzIuOTc2MkMyMi45MTU2IDMyLjcwMjUgMjIuNjk4MSAzMi4zMjI5IDIyLjYyNjMgMzEuOTA0NEMyMi41NTQ1IDMxLjQ4NTkgMjIuNjMzIDMxLjA1NTUgMjIuODQ3OCAzMC42ODkyQzIzLjA2MjcgMzAuMzIzIDIzLjQwMDEgMzAuMDQ0NSAyMy44MDA0IDI5LjkwMjlWMjkuNTAwOUMyMy44MDA0IDI4LjY3MjkgMjMuMTI4NCAyOC4wMDA5IDIyLjMwMDQgMjguMDAwOUgyMC4yMDA0QzIwLjEyODcgMjguMDAwOCAyMC4wNTc1IDI3Ljk4NzggMTkuOTkwNCAyNy45NjI1TDE5Ljk4NjggMjcuOTY5N0MxOS43NDkyIDI4LjQ0MzcgMTkuNjAwNCAyOS4yMzA5IDE5LjYwMDQgMzAuNDAwOUMxOS42MDA0IDMxLjQzMTcgMTkuOTc4NCAzMi4wMTI1IDIwLjM2NiAzMi4zNDQ5QzIwLjc4MjQgMzIuNzAyNSAyMS4yNDQ0IDMyLjgwMDkgMjEuNDAwNCAzMi44MDA5QzIxLjU1OTUgMzIuODAwOSAyMS43MTIxIDMyLjg2NDEgMjEuODI0NyAzMi45NzY3QzIxLjkzNzIgMzMuMDg5MiAyMi4wMDA0IDMzLjI0MTggMjIuMDAwNCAzMy40MDA5QzIyLjAwMDQgMzMuODQyNSAyMi4yNDA0IDM0LjYxNDEgMjIuNzY4NCAzNS4yNzY1QzIzLjI4MzIgMzUuOTE4NSAyNC4wMjM2IDM2LjQwMDkgMjUuMDAwNCAzNi40MDA5QzI1LjY3MjQgMzYuNDAwOSAyNi4yNzQ4IDM2LjAyNTMgMjYuNzQwNCAzNS41MzY5QzI2Ljk2OTYgMzUuMjk2OSAyNy4xNDg0IDM1LjA0ODUgMjcuMjY0OCAzNC44NDQ1QzI3LjMxNzggMzQuNzU0MSAyNy4zNjMxIDM0LjY1OTMgMjcuNDAwNCAzNC41NjEzVjI1LjAwMDlIMjYuMDk4NEMyNS45NTY5IDI1LjQwMTIgMjUuNjc4MyAyNS43Mzg3IDI1LjMxMjEgMjUuOTUzNUMyNC45NDU5IDI2LjE2ODMgMjQuNTE1NCAyNi4yNDY4IDI0LjA5NyAyNi4xNzVDMjMuNjc4NSAyNi4xMDMyIDIzLjI5ODggMjUuODg1OCAyMy4wMjUxIDI1LjU2MTFDMjIuNzUxNCAyNS4yMzY1IDIyLjYwMTMgMjQuODI1NSAyMi42MDEzIDI0LjQwMDlDMjIuNjAxMyAyMy45NzYzIDIyLjc1MTQgMjMuNTY1NCAyMy4wMjUxIDIzLjI0MDdDMjMuMjk4OCAyMi45MTYxIDIzLjY3ODUgMjIuNjk4NiAyNC4wOTcgMjIuNjI2OEMyNC41MTU0IDIyLjU1NSAyNC45NDU5IDIyLjYzMzUgMjUuMzEyMSAyMi44NDgzQzI1LjY3ODMgMjMuMDYzMiAyNS45NTY5IDIzLjQwMDYgMjYuMDk4NCAyMy44MDA5SDI3LjQwMDRWMjEuNDAwOVpNMjguNjAwNCAzMy4zOTk3VjM0LjU2MDFDMjguNjM3NyAzNC42NTgxIDI4LjY4MyAzNC43NTI4IDI4LjczNiAzNC44NDMzQzI4Ljg1MzYgMzUuMDQ3MyAyOS4wMzEyIDM1LjI5NTcgMjkuMjU5MiAzNS41MzU3QzI5LjcyNiAzNi4wMjQxIDMwLjMyOTYgMzYuMzk5NyAzMS4wMDA0IDM2LjM5OTdDMzEuOTc3MiAzNi4zOTk3IDMyLjcxNzYgMzUuOTE3MyAzMy4yMzI0IDM1LjI3NTNDMzMuNzYwNCAzNC42MTI5IDM0LjAwMDQgMzMuODQxMyAzNC4wMDA0IDMzLjM5OTdDMzQuMDAwNCAzMy4yNDA2IDM0LjA2MzYgMzMuMDg4IDM0LjE3NjEgMzIuOTc1NUMzNC4yODg2IDMyLjg2MjkgMzQuNDQxMyAzMi43OTk3IDM0LjYwMDQgMzIuNzk5N0MzNC43NTY0IDMyLjc5OTcgMzUuMjE4NCAzMi43MDEzIDM1LjYzNDggMzIuMzQzN0MzNi4wMjI0IDMyLjAxMTMgMzYuNDAwNCAzMS40MzA1IDM2LjQwMDQgMzAuMzk5N0MzNi40MDA0IDI5LjIyOTcgMzYuMjUwNCAyOC40NDM3IDM2LjAxNCAyNy45Njg1QzM1LjkzNDkgMjcuNzkxNiAzNS44MTA4IDI3LjYzODUgMzUuNjU0IDI3LjUyNDVDMzUuNTE4OSAyNy40MzgxIDM1LjM2MDYgMjcuMzk1IDM1LjIwMDQgMjcuNDAwOUMzNS4wOTE5IDI3LjQwMDkgMzQuOTg1NCAyNy4zNzE0IDM0Ljg5MjMgMjcuMzE1NkMzNC43OTkyIDI3LjI1OTggMzQuNzIzIDI3LjE3OTggMzQuNjcxNyAyNy4wODQxQzM0LjYyMDUgMjYuOTg4NCAzNC41OTYyIDI2Ljg4MDcgMzQuNjAxNCAyNi43NzIzQzM0LjYwNjYgMjYuNjYzOCAzNC42NDExIDI2LjU1ODkgMzQuNzAxMiAyNi40Njg1QzM1LjE2MiAyNS43NzczIDM1LjE5NTYgMjQuNjQwOSAzNC44NjA4IDIzLjcwMjVDMzQuNjk2NCAyMy4yNDI5IDM0LjQ2NzIgMjIuOTAwOSAzNC4yMzIgMjIuNzEwMUMzNC4wMTcyIDIyLjUzNzMgMzMuODE1NiAyMi40OTQxIDMzLjU5IDIyLjU2OTdDMzMuNDk5OCAyMi41OTk3IDMzLjQwMzggMjIuNjA3OSAzMy4zMDk5IDIyLjU5MzZDMzMuMjE2IDIyLjU3OTMgMzMuMTI2OCAyMi41NDI4IDMzLjA0OTcgMjIuNDg3M0MzMi45NzI2IDIyLjQzMTggMzIuOTA5OCAyMi4zNTg3IDMyLjg2NjQgMjIuMjc0MUMzMi44MjMxIDIyLjE4OTYgMzIuODAwNSAyMi4wOTU5IDMyLjgwMDQgMjIuMDAwOUMzMi44MDA0IDIxLjMxOTMgMzIuNDY0NCAyMC43MzI1IDMxLjkwNjQgMjAuMjk5M0MzMS4yOTkgMTkuODQzOCAzMC41NTk2IDE5LjU5ODYgMjkuODAwNCAxOS42MDA5QzI5LjU2NTYgMTkuNTg5OCAyOS4zMzU2IDE5LjY2OTggMjkuMTU4NCAxOS44MjQxQzI4Ljk4ODkgMTkuOTg3NCAyOC44NjEzIDIwLjE4OTEgMjguNzg2NCAyMC40MTIxQzI4LjY3MjEgMjAuNzI1NiAyOC42MDkzIDIxLjA1NTQgMjguNjAwNCAyMS4zODg5VjMyLjIwMDlIMjkuNTAwNEMzMC4zMjg0IDMyLjIwMDkgMzEuMDAwNCAzMS41Mjg5IDMxLjAwMDQgMzAuNzAwOVYyOC40OTg5QzMwLjYwMDEgMjguMzU3NCAzMC4yNjI3IDI4LjA3ODkgMzAuMDQ3OCAyNy43MTI2QzI5LjgzMyAyNy4zNDY0IDI5Ljc1NDUgMjYuOTE2IDI5LjgyNjMgMjYuNDk3NUMyOS44OTgxIDI2LjA3OSAzMC4xMTU2IDI1LjY5OTMgMzAuNDQwMiAyNS40MjU3QzMwLjc2NDggMjUuMTUyIDMxLjE3NTggMjUuMDAxOSAzMS42MDA0IDI1LjAwMTlDMzIuMDI1IDI1LjAwMTkgMzIuNDM1OSAyNS4xNTIgMzIuNzYwNiAyNS40MjU3QzMzLjA4NTIgMjUuNjk5MyAzMy4zMDI3IDI2LjA3OSAzMy4zNzQ1IDI2LjQ5NzVDMzMuNDQ2MyAyNi45MTYgMzMuMzY3OCAyNy4zNDY0IDMzLjE1MyAyNy43MTI2QzMyLjkzODEgMjguMDc4OSAzMi42MDA3IDI4LjM1NzQgMzIuMjAwNCAyOC40OTg5VjMwLjcwMDlDMzIuMjAwNCAzMS40MTcgMzEuOTE1OSAzMi4xMDM4IDMxLjQwOTYgMzIuNjEwMUMzMC45MDMyIDMzLjExNjUgMzAuMjE2NSAzMy40MDA5IDI5LjUwMDQgMzMuNDAwOUgyOC42MDA0VjMzLjM5OTdaTTIzLjgwMDQgMjQuNDAwOUMyMy44MDA0IDI0LjU2MDEgMjMuODYzNiAyNC43MTI3IDIzLjk3NjEgMjQuODI1MkMyNC4wODg2IDI0LjkzNzcgMjQuMjQxMyAyNS4wMDA5IDI0LjQwMDQgMjUuMDAwOUMyNC41NTk1IDI1LjAwMDkgMjQuNzEyMSAyNC45Mzc3IDI0LjgyNDcgMjQuODI1MkMyNC45MzcyIDI0LjcxMjcgMjUuMDAwNCAyNC41NjAxIDI1LjAwMDQgMjQuNDAwOUMyNS4wMDA0IDI0LjI0MTggMjQuOTM3MiAyNC4wODkyIDI0LjgyNDcgMjMuOTc2N0MyNC43MTIxIDIzLjg2NDEgMjQuNTU5NSAyMy44MDA5IDI0LjQwMDQgMjMuODAwOUMyNC4yNDEzIDIzLjgwMDkgMjQuMDg4NiAyMy44NjQxIDIzLjk3NjEgMjMuOTc2N0MyMy44NjM2IDI0LjA4OTIgMjMuODAwNCAyNC4yNDE4IDIzLjgwMDQgMjQuNDAwOVpNMzEuNjAwNCAyNy40MDA5QzMxLjc1OTUgMjcuNDAwOSAzMS45MTIxIDI3LjMzNzcgMzIuMDI0NyAyNy4yMjUyQzMyLjEzNzIgMjcuMTEyNyAzMi4yMDA0IDI2Ljk2MDEgMzIuMjAwNCAyNi44MDA5QzMyLjIwMDQgMjYuNjQxOCAzMi4xMzcyIDI2LjQ4OTIgMzIuMDI0NyAyNi4zNzY3QzMxLjkxMjEgMjYuMjY0MSAzMS43NTk1IDI2LjIwMDkgMzEuNjAwNCAyNi4yMDA5QzMxLjQ0MTMgMjYuMjAwOSAzMS4yODg2IDI2LjI2NDEgMzEuMTc2MSAyNi4zNzY3QzMxLjA2MzYgMjYuNDg5MiAzMS4wMDA0IDI2LjY0MTggMzEuMDAwNCAyNi44MDA5QzMxLjAwMDQgMjYuOTYwMSAzMS4wNjM2IDI3LjExMjcgMzEuMTc2MSAyNy4yMjUyQzMxLjI4ODYgMjcuMzM3NyAzMS40NDEzIDI3LjQwMDkgMzEuNjAwNCAyNy40MDA5Wk0yNC40MDA0IDMxLjAwMDlDMjQuMjQxMyAzMS4wMDA5IDI0LjA4ODYgMzEuMDY0MSAyMy45NzYxIDMxLjE3NjdDMjMuODYzNiAzMS4yODkyIDIzLjgwMDQgMzEuNDQxOCAyMy44MDA0IDMxLjYwMDlDMjMuODAwNCAzMS43NjAxIDIzLjg2MzYgMzEuOTEyNyAyMy45NzYxIDMyLjAyNTJDMjQuMDg4NiAzMi4xMzc3IDI0LjI0MTMgMzIuMjAwOSAyNC40MDA0IDMyLjIwMDlDMjQuNTU5NSAzMi4yMDA5IDI0LjcxMjEgMzIuMTM3NyAyNC44MjQ3IDMyLjAyNTJDMjQuOTM3MiAzMS45MTI3IDI1LjAwMDQgMzEuNzYwMSAyNS4wMDA0IDMxLjYwMDlDMjUuMDAwNCAzMS40NDE4IDI0LjkzNzIgMzEuMjg5MiAyNC44MjQ3IDMxLjE3NjdDMjQuNzEyMSAzMS4wNjQxIDI0LjU1OTUgMzEuMDAwOSAyNC40MDA0IDMxLjAwMDlaXCIgZmlsbD1cIiMwMzk4NTVcIi8+PHJlY3QgeD1cIjRcIiB5PVwiNFwiIHdpZHRoPVwiNDhcIiBoZWlnaHQ9XCI0OFwiIHJ4PVwiMjRcIiBzdHJva2U9XCIjRUNGREYzXCIgc3Ryb2tlLXdpZHRoPVwiOFwiLz48L3N2Zz5gLFxyXG4gICAgICAgIHRpdGxlOiBgRG9uJ3QgcnVuIEFJIG9uIGltYWdlIHVwbG9hZGVkYCxcclxuICAgICAgICBjb250ZW50OiBgRG8geW91IHdpc2ggdG8gbm90IHJ1biBBSSBpbiB0aGUgaW1hZ2U/YCxcclxuICAgICAgICBidXR0b250eXBlOiAnY29uZmlybSdcclxuICAgICAgfVxyXG4gICAgICBkaWFsb2dSZWYucmVzdWx0LnRoZW4oKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlcykge1xyXG4gICAgICAgICAgdGhpcy5ydW5BSU9mZihzSWR4LHFJZHgsZmFsc2UsYW5zSWR4KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5nZXRBbnN3ZXJGb3JtR3JvdXBfRm9ybUNvbnRyb2woc0lkeCwgcUlkeCwgJ3J1bkFJJyk/LnBhdGNoVmFsdWUodHJ1ZSk7XHJcbiAgICAgICAgICB0aGlzLmdldFF1ZXN0aW9uRm9ybUNvbnRyb2woc0lkeCwgcUlkeCwgJ3J1bkFJJyk/LnBhdGNoVmFsdWUodHJ1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJ1bkFJT2ZmKHNJZHg6IG51bWJlciwgcUlkeDogbnVtYmVyLCBzaG93RXJyb3I/OiBib29sZWFuLGFuc0lkeDpudW1iZXI9LTEpIHtcclxuICAgIGNvbnN0IGFuc3dlckZvcm1Hcm91cCA9IHRoaXMuZ2V0QW5zd2VyRm9ybUdyb3VwX0Zvcm1Db250cm9sKHNJZHgsIHFJZHgsICdydW5BSScsYW5zSWR4KTtcclxuICAgIGxldCBzZWN0aW9uUXVlc3Rpb24gPSAoKCgodGhpcy5DaGVja2xpc3RGb3JtLmdldCgnc2VjdGlvbnMnKSBhcyBGb3JtQXJyYXkpLmF0KHNJZHgpIGFzIEZvcm1Hcm91cCkuZ2V0KCdxdWVzdGlvbnMnKSBhcyBGb3JtQXJyYXkpLmF0KHFJZHgpIGFzIEZvcm1Hcm91cCk7XHJcbiAgICBpZiAoYW5zd2VyRm9ybUdyb3VwKSB7XHJcbiAgICAgIGFuc3dlckZvcm1Hcm91cC5wYXRjaFZhbHVlKGZhbHNlKTtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgYW5zd2VycyA9ICgoc2VjdGlvblF1ZXN0aW9uLmdldCgnYW5zd2VycycpIGFzIEZvcm1BcnJheSkuYXQoYW5zSWR4KSBhcyBGb3JtR3JvdXApOyAgICAgICAgICAgICAgICBcclxuICAgICAgKGFuc3dlcnMuZ2V0KCdydW5BSUZlYXR1cmVzJykgYXMgRm9ybUFycmF5KT8uY2xlYXIoKTtcclxuICBcclxuICAgIGNvbnN0IHF1ZXN0aW9uQ29udHJvbCA9IHRoaXMuZ2V0UXVlc3Rpb25Gb3JtQ29udHJvbChzSWR4LCBxSWR4LCAncnVuQUknLGFuc0lkeCk7XHJcbiAgICBpZiAocXVlc3Rpb25Db250cm9sKSB7XHJcbiAgICAgIHF1ZXN0aW9uQ29udHJvbC5wYXRjaFZhbHVlKGZhbHNlKTtcclxuICAgIH1cclxuICBcclxuICAgIC8vIGNvbnNvbGUubG9nKHF1ZXN0aW9uQ29udHJvbCk7XHJcbiAgICBcclxuICAgIC8vIGNvbnN0IGRlc2NyaXB0aW9uQ29udHJvbCA9IHRoaXMuZ2V0UXVlc3Rpb25Gb3JtQ29udHJvbChzSWR4LCBxSWR4LCAncnVuQUlEZXNjcmlwdGlvbicsYW5zSWR4KTtcclxuICAgIC8vIGlmIChkZXNjcmlwdGlvbkNvbnRyb2wpIHtcclxuICAgIC8vICAgZGVzY3JpcHRpb25Db250cm9sLnBhdGNoVmFsdWUoJycpO1xyXG4gICAgLy8gfVxyXG4gICAgLy8gbGV0IGFuc3dlcnM7XHJcbiAgICAvLyBpZihhbnNJZHggIT0gLTEpIHtcclxuICAgIC8vICAgYW5zd2VycyA9ICgoc2VjdGlvblF1ZXN0aW9uLmdldCgnYW5zd2VycycpIGFzIEZvcm1BcnJheSkuYXQoYW5zSWR4KSBhcyBGb3JtR3JvdXApOyAgICAgICAgICAgICAgICBcclxuICAgIC8vICAgKGFuc3dlcnMuZ2V0KCdydW5BSUZlYXR1cmVzJykgYXMgRm9ybUFycmF5KT8uY2xlYXIoKTtcclxuICAgIC8vIH1cclxuICAgIC8vIGVsc2Uge1xyXG4gICAgLy8gICAoKHNlY3Rpb25RdWVzdGlvbi5nZXQoJ2Fuc3dlcnMnKSBhcyBGb3JtR3JvdXApLmdldCgncnVuQUlGZWF0dXJlcycpIGFzIEZvcm1BcnJheSk/LmNsZWFyKCk7XHJcbiAgICAvLyAgIChzZWN0aW9uUXVlc3Rpb24uZ2V0KCdydW5BSUZlYXR1cmVzJykgYXMgRm9ybUFycmF5KT8uY2xlYXIoKTtcclxuICAgIC8vICAgaWYoc2VjdGlvblF1ZXN0aW9uLmdldCgnYW5zd2VyVHlwZScpPy52YWx1ZSA9PSAnaW1hZ2UnKSB7XHJcbiAgICAvLyAgICAgYW5zd2VycyA9IHNlY3Rpb25RdWVzdGlvbi5nZXQoJ2Fuc3dlcnMnKSBhcyBGb3JtR3JvdXA7XHJcbiAgICAvLyAgIH1cclxuICAgIC8vIH1cclxuICAgIC8vIGNvbnN0IGltYWdlc0ZBID0gYW5zd2Vycz8uZ2V0KCdtdWx0aVJlZmVyZW5jZUltYWdlJykgYXMgRm9ybUFycmF5O1xyXG4gICAgLy8gaW1hZ2VzRkE/LmNvbnRyb2xzPy5mb3JFYWNoKChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpID0+IHtcclxuICAgIC8vICAgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBGb3JtR3JvdXApIHtcclxuICAgIC8vICAgICBjb250cm9sLnBhdGNoVmFsdWUoeyBydW5BSTogZmFsc2UgfSk7XHJcbiAgICAvLyAgIH1cclxuICAgIC8vIH0pOyAgICBcclxuICBcclxuICAgIGlmIChzaG93RXJyb3IpIHtcclxuICAgICAgdGhpcy5zd2FsVG9hc3QoJ1VuYWJsZSB0byBwcm9jZXNzIHJ1bkFJIHJlcXVlc3QhIFRyeSBhZ2FpbiBhZnRlciBzb21lIHRpbWUhJywnZXJyb3InKTtcclxuICAgIH1cclxuICB9XHJcbiAgXHJcblxyXG4gIGdldFNlY3Rpb25Gb3JtQXJyYXkoKSB7XHJcbiAgICByZXR1cm4gKHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5KTtcclxuICB9XHJcblxyXG4gIGdldEZvcm1Db250cm9sKGZvcm1Db250cm9sOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiAodGhpcy5DaGVja2xpc3RGb3JtLmdldChmb3JtQ29udHJvbCkgYXMgRm9ybUNvbnRyb2wpO1xyXG4gIH1cclxuXHJcbiAgZ2V0U2VjdGlvbkZvcm1Db250cm9sKHNlY3Rpb25JbmRleDogbnVtYmVyLCBmb3JtQ29udHJvbE5hbWU6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgKHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5KVxyXG4gICAgICAgIC5hdChzZWN0aW9uSW5kZXgpIGFzIEZvcm1Hcm91cClcclxuICAgICAgLmdldChmb3JtQ29udHJvbE5hbWUpO1xyXG4gIH1cclxuXHJcbiAgZ2V0UXVlc3Rpb25Gb3JtQ29udHJvbChzZWN0aW9uSW5kZXg6IG51bWJlciwgcXVlc3Rpb25JbmRleDogbnVtYmVyLCBmb3JtQ29udHJvbE5hbWU6IHN0cmluZyxhbnNJZHg6bnVtYmVyID0gLTEpIHtcclxuICAgIGNvbnN0IHNlY3Rpb25zID0gdGhpcy5DaGVja2xpc3RGb3JtLmdldCgnc2VjdGlvbnMnKSBhcyBGb3JtQXJyYXkgfCBudWxsO1xyXG4gICAgaWYgKCFzZWN0aW9ucykgcmV0dXJuIG51bGw7XHJcbiAgXHJcbiAgICBjb25zdCBzZWN0aW9uID0gc2VjdGlvbnMuYXQoc2VjdGlvbkluZGV4KSBhcyBGb3JtR3JvdXAgfCBudWxsO1xyXG4gICAgaWYgKCFzZWN0aW9uKSByZXR1cm4gbnVsbDtcclxuICBcclxuICAgIGNvbnN0IHF1ZXN0aW9ucyA9IHNlY3Rpb24uZ2V0KCdxdWVzdGlvbnMnKSBhcyBGb3JtQXJyYXkgfCBudWxsO1xyXG4gICAgaWYgKCFxdWVzdGlvbnMpIHJldHVybiBudWxsO1xyXG4gIFxyXG4gICAgbGV0IHF1ZXN0aW9uID0gcXVlc3Rpb25zLmF0KHF1ZXN0aW9uSW5kZXgpIGFzIEZvcm1Hcm91cCB8IG51bGw7XHJcbiAgICBpZiAoIXF1ZXN0aW9uKSByZXR1cm4gbnVsbDtcclxuXHJcbiAgICBpZihhbnNJZHggIT0gLTEpIHtcclxuICAgICAgbGV0IGFuc3dlckxpc3QgPSBxdWVzdGlvbi5nZXQoJ2Fuc3dlcnMnKSBhcyBGb3JtQXJyYXkgfCBudWxsO1xyXG4gICAgICBpZighYW5zd2VyTGlzdCkgcmV0dXJuIG51bGw7XHJcbiAgICAgIHF1ZXN0aW9uID0gYW5zd2VyTGlzdC5hdChhbnNJZHgpIGFzIEZvcm1Hcm91cCB8IG51bGw7XHJcbiAgICAgIGlmKCFxdWVzdGlvbikgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgXHJcbiAgICBjb25zdCBjb250cm9sID0gcXVlc3Rpb24uZ2V0KGZvcm1Db250cm9sTmFtZSkgYXMgRm9ybUNvbnRyb2wgfCBudWxsO1xyXG4gICAgcmV0dXJuIGNvbnRyb2w7XHJcbiAgfVxyXG4gIFxyXG5cclxuICBnZXRGb3JtQXJyYXlRdWVzdGlvbnMoc2VjdGlvbkluZGV4OiBudW1iZXIpIHtcclxuICAgIHJldHVybiAoKHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChzZWN0aW9uSW5kZXgpLmdldCgncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5KTtcclxuICB9XHJcblxyXG4gIC8vIGluZGl2aWR1YWwgcXVlc3Rpb25cclxuICBnZXRRdWVzdGlvbnNGb3JtR3JvdXAoc2VjdGlvbkluZGV4OiBudW1iZXIsIHF1ZXN0aW9uSW5kZXg6IG51bWJlcikge1xyXG4gICAgcmV0dXJuICgoKHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChzZWN0aW9uSW5kZXgpLmdldCgncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChxdWVzdGlvbkluZGV4KSBhcyBGb3JtR3JvdXApO1xyXG4gIH1cclxuXHJcbiAgZ2V0Rm9ybUFycmF5UXVlc3Rpb25zQW5zd2VyKHNlY3Rpb25JbmRleDogbnVtYmVyLCBxdWVzdGlvbkluZGV4OiBudW1iZXIsIGZvcm1BcnJheU5hbWU6IHN0cmluZyxhbnNJbmRleDpudW1iZXIgPSAtMSxsaW5rcXVlc3Rpb25JbmRleDpudW1iZXIgPSAtMSkge1xyXG4gICAgbGV0IHNlY3Rpb24gPSAoKHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5KT8uYXQoc2VjdGlvbkluZGV4KSBhcyBGb3JtR3JvdXApO1xyXG4gICAgbGV0IHF1ZXN0aW9ucyA9ICgoc2VjdGlvbi5nZXQoJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheSk/LmF0KHF1ZXN0aW9uSW5kZXgpIGFzIEZvcm1Hcm91cCk7XHJcbiAgICBpZihhbnNJbmRleCA9PSAtMSkge1xyXG4gICAgICByZXR1cm4gKHF1ZXN0aW9ucy5nZXQoZm9ybUFycmF5TmFtZSkgYXMgRm9ybUFycmF5KTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICBsZXQgYW5zd2VycyA9ICgocXVlc3Rpb25zLmdldCgnYW5zd2VycycpIGFzIEZvcm1BcnJheSk/LmF0KGFuc0luZGV4KSBhcyBGb3JtR3JvdXApO1xyXG4gICAgICBsZXQgbGlua2VkSW5kZXggPSAoKGFuc3dlcnMuZ2V0KCdsaW5rUXVlc3Rpb25BbnN3ZXJzJykgYXMgRm9ybUFycmF5KS5hdChsaW5rcXVlc3Rpb25JbmRleCkgYXMgRm9ybUdyb3VwKTtcclxuICAgICAgcmV0dXJuIChsaW5rZWRJbmRleC5nZXQoJ2Fuc3dlcnMnKSBhcyBGb3JtQXJyYXkpXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRGb3JtQXJyYXlMaW5rZWRRdWVzdGlvbnMoc2VjdGlvbkluZGV4OiBudW1iZXIsIHF1ZXN0aW9uSW5kZXg6IG51bWJlcixhbnN3ZXJJbmRleDpudW1iZXIpIHtcclxuICAgIGxldCBzZWN0aW9uID0gKCh0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheSk/LmF0KHNlY3Rpb25JbmRleCkgYXMgRm9ybUdyb3VwKTtcclxuICAgIGxldCBxdWVzdGlvbnMgPSAoKHNlY3Rpb24uZ2V0KCdxdWVzdGlvbnMnKSBhcyBGb3JtQXJyYXkpPy5hdChxdWVzdGlvbkluZGV4KSBhcyBGb3JtR3JvdXApO1xyXG4gICAgbGV0IGFuc3dlciA9IChxdWVzdGlvbnMuZ2V0KCdhbnN3ZXJzJykgYXMgRm9ybUFycmF5KT8uYXQoYW5zd2VySW5kZXgpIGFzIEZvcm1Hcm91cDtcclxuICAgIHJldHVybiAoYW5zd2VyLmdldCgnbGlua1F1ZXN0aW9uQW5zd2VycycpIGFzIEZvcm1BcnJheSlcclxuICB9XHJcblxyXG4gIGdldFF1ZXN0aW9uc0Zvcm1BcnJheVZhbHVlcyhzZWN0aW9uSW5kZXg6IG51bWJlcik6IGFueVtdIHtcclxuICAgIHJldHVybiAoKHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChzZWN0aW9uSW5kZXgpLmdldCgncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5KS5nZXRSYXdWYWx1ZSgpIHx8IFtdO1xyXG4gIH1cclxuXHJcbiAgZ2V0QW5zd2VyRm9ybUdyb3VwX0Zvcm1Db250cm9sKHNlY3Rpb25JbmRleDogbnVtYmVyLCBxdWVzdGlvbkluZGV4OiBudW1iZXIsIGZvcm1Db250cm9sTmFtZTogc3RyaW5nLGFuc0lkeDpudW1iZXI9IC0xKSB7XHJcbiAgICBjb25zdCBzZWN0aW9ucyA9IHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5IHwgbnVsbDtcclxuICAgIGlmICghc2VjdGlvbnMpIHJldHVybiBudWxsO1xyXG4gIFxyXG4gICAgY29uc3Qgc2VjdGlvbiA9IHNlY3Rpb25zLmF0KHNlY3Rpb25JbmRleCkgYXMgRm9ybUdyb3VwIHwgbnVsbDtcclxuICAgIGlmICghc2VjdGlvbikgcmV0dXJuIG51bGw7XHJcbiAgXHJcbiAgICBjb25zdCBxdWVzdGlvbnMgPSBzZWN0aW9uLmdldCgncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5IHwgbnVsbDtcclxuICAgIGlmICghcXVlc3Rpb25zKSByZXR1cm4gbnVsbDtcclxuICBcclxuICAgIGNvbnN0IHF1ZXN0aW9uID0gcXVlc3Rpb25zLmF0KHF1ZXN0aW9uSW5kZXgpIGFzIEZvcm1Hcm91cCB8IG51bGw7XHJcbiAgICBpZiAoIXF1ZXN0aW9uKSByZXR1cm4gbnVsbDtcclxuXHJcbiAgICBpZihmb3JtQ29udHJvbE5hbWUgPT0gXCJtdWx0aVF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2VcIikge1xyXG4gICAgICBjb25zdCBjb250cm9sID0gcXVlc3Rpb24uZ2V0KGZvcm1Db250cm9sTmFtZSkgYXMgRm9ybUFycmF5IHwgbnVsbDtcclxuICAgICAgcmV0dXJuIGNvbnRyb2w7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgbGV0IGFuc3dlcnMgPSBxdWVzdGlvbi5nZXQoJ2Fuc3dlcnMnKSBhcyBGb3JtR3JvdXAgfCBudWxsO1xyXG4gICAgICBpZiAoIWFuc3dlcnMpIHJldHVybiBudWxsO1xyXG4gIFxyXG4gICAgICBpZihhbnNJZHggIT0gLTEpIHtcclxuICBcclxuICAgICAgICBsZXQgYW5zd2VyTGlzdCA9IHF1ZXN0aW9uLmdldCgnYW5zd2VycycpIGFzIEZvcm1BcnJheSB8IG51bGw7XHJcbiAgICAgICAgaWYoIWFuc3dlckxpc3QpIHJldHVybiBudWxsO1xyXG4gICAgICAgIGFuc3dlcnMgPSBhbnN3ZXJMaXN0LmF0KGFuc0lkeCkgYXMgRm9ybUdyb3VwIHwgbnVsbDtcclxuICAgICAgICBpZiAoIWFuc3dlcnMpIHJldHVybiBudWxsO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IGNvbnRyb2wgPSBhbnN3ZXJzLmdldChmb3JtQ29udHJvbE5hbWUpIGFzIEZvcm1Db250cm9sIHwgbnVsbDtcclxuICAgICAgcmV0dXJuIGNvbnRyb2w7XHJcbiAgICB9XHJcbiAgXHJcbiAgfVxyXG5cclxuICByZW1vdmVkTmVzdGVkUXVlc3Rpb24oc2VjdGlvbmluZGV4OiBudW1iZXIscW5vOmFueSkge1xyXG4gICAgbGV0IHF1ZXN0aW9ucyA9ICh0aGlzLmdldFNlY3Rpb25Gb3JtQXJyYXkoKS5hdChzZWN0aW9uaW5kZXgpLmdldCgncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5KTtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcXVlc3Rpb25zLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGxldCBhbnN3ZXJzID0gKHF1ZXN0aW9ucy5hdChpKSBhcyBGb3JtR3JvdXApPy5nZXQoJ2Fuc3dlcnMnKSBhcyBGb3JtQXJyYXk7XHJcbiAgICAgIGlmKGFuc3dlcnMpIHtcclxuICAgICAgICBmb3IobGV0IGo9MDtqPGFuc3dlcnMubGVuZ3RoO2orKykge1xyXG4gICAgICAgICAgbGV0IGxpbmtlZCA9IChhbnN3ZXJzLmF0KGopIGFzIEZvcm1Hcm91cCk/LmdldCgnc2hvd0xpbmtlZCcpPy52YWx1ZTtcclxuICAgICAgICAgIGlmKGxpbmtlZCkge1xyXG4gICAgICAgICAgICBsZXQgcXVlc3Rpb25ObyA9IChhbnN3ZXJzLmF0KGopIGFzIEZvcm1Hcm91cCk/LmdldCgnbGlua2VkUXVlc3Rpb24nKT8udmFsdWU7XHJcbiAgICAgICAgICAgIGlmKHF1ZXN0aW9uTm8gPT0gcW5vKSB7XHJcbiAgICAgICAgICAgICAgKGFuc3dlcnMuYXQoaikgYXMgRm9ybUdyb3VwKT8uZ2V0KCdsaW5rZWRRdWVzdGlvbicpPy5zZXRWYWx1ZSgwKTtcclxuICAgICAgICAgICAgICAoYW5zd2Vycy5hdChqKSBhcyBGb3JtR3JvdXApPy5nZXQoJ3Nob3dMaW5rZWQnKT8uc2V0VmFsdWUoZmFsc2UpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB1cGRhdGVRdWVzdGlvblFub3Moc2VjdGlvbmluZGV4OiBudW1iZXIpIHtcclxuICAgIGxldCBxdWVzdGlvbnMgPSAodGhpcy5nZXRTZWN0aW9uRm9ybUFycmF5KCkuYXQoc2VjdGlvbmluZGV4KS5nZXQoJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheSk7XHJcbiAgICBsZXQgdXBkYXRlZExpc3Q6YW55ID0gW107XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHF1ZXN0aW9ucy5sZW5ndGg7IGkrKykge1xyXG4gICAgICBsZXQgcW5vID0gKHF1ZXN0aW9ucy5hdChpKSBhcyBGb3JtR3JvdXApPy5nZXQoJ3FubycpPy52YWx1ZTtcclxuICAgICAgaWYoIXRoaXMuZGVsZXRlZExpc3QuaW5jbHVkZXMocW5vKSkge1xyXG4gICAgICAgIGxldCBxdWVzdGlvbkFycmF5ID0gcXVlc3Rpb25zPy52YWx1ZTtcclxuICAgICAgICBmb3IobGV0IHFuID0gMDsgcW4gPCBxdWVzdGlvbkFycmF5Lmxlbmd0aCA7cW4rKykge1xyXG4gICAgICAgICAgaWYoIXVwZGF0ZWRMaXN0LmluY2x1ZGVzKHFuKSkge1xyXG4gICAgICAgICAgICBsZXQgaXRlbSA9IHF1ZXN0aW9uQXJyYXlbcW5dO1xyXG4gICAgICAgICAgICBpZiAoIVsnZGVzY3JpcHRpdmUnLCAnaW1hZ2UnLCAnZGVzY3JpcHRpdmVJbWFnZScsICdtdWx0aXBsZUltYWdlJywgJ3ZpZGVvJywnbGluZWFyc2NhbGUnLCd0aW1lJywnZGF0ZSddLmluY2x1ZGVzKGl0ZW0uYW5zd2VyVHlwZSkpIHtcclxuICAgICAgICAgICAgICBmb3IobGV0IGFucyA9IDA7IGFucyA8IGl0ZW0uYW5zd2Vycy5sZW5ndGggOyBhbnMrKykge1xyXG4gICAgICAgICAgICAgICAgaWYgKGl0ZW0uYW5zd2Vyc1thbnNdLmxpbmtlZFF1ZXN0aW9uID09IHFubykge1xyXG4gICAgICAgICAgICAgICAgICB1cGRhdGVkTGlzdC5wdXNoKHFuKTtcclxuICAgICAgICAgICAgICAgICAgKCgocXVlc3Rpb25zLmF0KHFuKSBhcyBGb3JtR3JvdXApPy5nZXQoJ2Fuc3dlcnMnKSBhcyBGb3JtQXJyYXkpLmF0KGFucykgYXMgRm9ybUdyb3VwKS5nZXQoJ2xpbmtlZFF1ZXN0aW9uJyk/LnNldFZhbHVlKGkrMSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIChxdWVzdGlvbnMuYXQoaSkgYXMgRm9ybUdyb3VwKT8uZ2V0KCdxbm8nKT8uc2V0VmFsdWUoaSsxKTtcclxuICAgIH1cclxuICAgIHRoaXMuQ2hlY2tsaXN0Rm9ybS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgfVxyXG5cclxuICAvLyB1cGRhdGVRdWVzdGlvblFub3Moc2VjdGlvbmluZGV4OiBudW1iZXIpIHtcclxuICAvLyAgIGxldCBxdWVzdGlvbnMgPSAodGhpcy5nZXRTZWN0aW9uRm9ybUFycmF5KCkuYXQoc2VjdGlvbmluZGV4KS5nZXQoJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheSk7XHJcbiAgLy8gICBsZXQgcXVlc3Rpb25BcnJheSA9IHF1ZXN0aW9ucz8udmFsdWU7XHJcbiAgLy8gICBmb3IgKGxldCBpID0gMDsgaSA8IHF1ZXN0aW9ucy5sZW5ndGg7IGkrKykge1xyXG4gIC8vICAgICBsZXQgcW5vID0gKHF1ZXN0aW9ucy5hdChpKSBhcyBGb3JtR3JvdXApPy5nZXQoJ3FubycpPy52YWx1ZTtcclxuICAvLyAgICAgaWYoIXRoaXMuZGVsZXRlZExpc3QuaW5jbHVkZXMocW5vKSkge1xyXG4gIC8vICAgICAgIGZvcihsZXQgcW4gPSAwOyBxbiA8IHF1ZXN0aW9uQXJyYXkubGVuZ3RoIDtxbisrKSB7XHJcbiAgLy8gICAgICAgICBsZXQgaXRlbSA9IHF1ZXN0aW9uQXJyYXlbcW5dO1xyXG4gIC8vICAgICAgICAgaWYgKCFbJ2Rlc2NyaXB0aXZlJywgJ2ltYWdlJywgJ2Rlc2NyaXB0aXZlSW1hZ2UnLCAnbXVsdGlwbGVJbWFnZScsICd2aWRlbycsJ2xpbmVhcnNjYWxlJywndGltZScsJ2RhdGUnXS5pbmNsdWRlcyhpdGVtLmFuc3dlclR5cGUpKSB7XHJcbiAgLy8gICAgICAgICAgIGxldCBmaW5kSW5kZXggPSBpdGVtLmFuc3dlcnMubWFwKChpdGVtOmFueSwgaW5kZXg6YW55KSA9PiAoaXRlbS5saW5rZWRRdWVzdGlvbiA9PSBxbm8gPyBpbmRleCA6IC0xKSkuZmlsdGVyKChpbmRleDphbnkpID0+IGluZGV4ICE9PSAtMSk7XHJcbiAgLy8gICAgICAgICAgIGlmKGZpbmRJbmRleC5sZW5ndGgpIHtcclxuICAvLyAgICAgICAgICAgICBmaW5kSW5kZXguZm9yRWFjaCgoaWR4Om51bWJlcikgPT4ge1xyXG4gIC8vICAgICAgICAgICAgICAgaXRlbS5hbnN3ZXJzW2lkeF0uY2hlY2tlZCA9IHRydWU7XHJcbiAgLy8gICAgICAgICAgICAgICAoKChxdWVzdGlvbnMuYXQocW4pIGFzIEZvcm1Hcm91cCk/LmdldCgnYW5zd2VycycpIGFzIEZvcm1BcnJheSkuYXQoaWR4KSBhcyBGb3JtR3JvdXApLmdldCgnbGlua2VkUXVlc3Rpb24nKT8uc2V0VmFsdWUoaSsxKTtcclxuICAvLyAgICAgICAgICAgICB9KVxyXG4gIC8vICAgICAgICAgICB9XHJcbiAgLy8gICAgICAgICAgIC8vIGxldCBmaW5kQW5zSWR4ID0gaXRlbS5hbnN3ZXJzLmZpbmRJbmRleCgoZWxlOmFueSkgPT4gZWxlLmxpbmtlZFF1ZXN0aW9uID09IHFubyAmJiAhaXRlbS5jaGVja2VkKTtcclxuICAvLyAgICAgICAgICAgLy8gaWYoZmluZEFuc0lkeCAhPSAtMSkge1xyXG4gIC8vICAgICAgICAgICAvLyB9XHJcbiAgLy8gICAgICAgICB9XHJcbiAgLy8gICAgICAgfVxyXG4gIC8vICAgICB9XHJcbiAgLy8gICAgIChxdWVzdGlvbnMuYXQoaSkgYXMgRm9ybUdyb3VwKT8uZ2V0KCdxbm8nKT8uc2V0VmFsdWUoaSsxKTtcclxuICAvLyAgIH1cclxuICAvLyAgIHRoaXMuQ2hlY2tsaXN0Rm9ybS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgLy8gfVxyXG5cclxuICBnZXRRdWVzdGlvbnNBbnN3ZXJGb3JtR3JvdXAoc2VjdGlvbkluZGV4OiBudW1iZXIsIHF1ZXN0aW9uSW5kZXg6IG51bWJlcixhbnNJbmRleDpudW1iZXIpIHtcclxuICAgIHJldHVybiAoKCgoKHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChzZWN0aW9uSW5kZXgpLmdldCgncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChxdWVzdGlvbkluZGV4KSBhcyBGb3JtR3JvdXApLmdldCgnYW5zd2VycycpIGFzIEZvcm1BcnJheSkuYXQoYW5zSW5kZXgpIGFzIEZvcm1Hcm91cCk7XHJcbiAgfVxyXG5cclxuICBzZXRBY3RpdmVRdWVzdGlvbihzZWNJZHg6IG51bWJlciwgcXVlc3Rpb25JbmRleDogbnVtYmVyLCBhY3RpdmVzdGF0dXM6IG51bWJlcixhbnN3ZXJJbmRleDpudW1iZXIgPSAtMSkge1xyXG4gICAgaWYoYWN0aXZlc3RhdHVzID09IDEpIHtcclxuICAgICAgaWYoYW5zd2VySW5kZXggIT0gLTEpIHtcclxuICAgICAgICB0aGlzLmdldFF1ZXN0aW9uc0Fuc3dlckZvcm1Hcm91cChzZWNJZHgscXVlc3Rpb25JbmRleCxhbnN3ZXJJbmRleCkuYWRkQ29udHJvbCgnYWN0aXZlJyx0aGlzLmZiLmNvbnRyb2wodHJ1ZSkpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuZ2V0UXVlc3Rpb25zRm9ybUdyb3VwKHNlY0lkeCxxdWVzdGlvbkluZGV4KS5hZGRDb250cm9sKCdhY3RpdmUnLHRoaXMuZmIuY29udHJvbCh0cnVlKSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZihhbnN3ZXJJbmRleCAhPSAtMSkge1xyXG4gICAgICAgIHRoaXMuZ2V0UXVlc3Rpb25zQW5zd2VyRm9ybUdyb3VwKHNlY0lkeCxxdWVzdGlvbkluZGV4LGFuc3dlckluZGV4KS5yZW1vdmVDb250cm9sKCdhY3RpdmUnKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmdldFF1ZXN0aW9uc0Zvcm1Hcm91cChzZWNJZHgscXVlc3Rpb25JbmRleCkucmVtb3ZlQ29udHJvbCgnYWN0aXZlJyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBhbGxvd0FkZEFuc3dlcihhbnN3ZXJzOiBhbnlbXSkge1xyXG4gICAgcmV0dXJuIGFuc3dlcnMubGVuZ3RoIDwgMzA7XHJcbiAgfVxyXG5cclxuICBnZXRRdWVzdGlvbkxpc3Qoc2VjSWR4Om51bWJlcixxbnRJZHg6bnVtYmVyLGFuc0lkeDpudW1iZXIpIHtcclxuICAgIC8vIGZvcihsZXQgYW5zd2VyIG9mIHF1ZXN0aW9uPy5hbnN3ZXJzKSB7XHJcbiAgICAvLyAgICAgICAgIGlmKChhbnN3ZXIubGlua2VkUXVlc3Rpb24gJiYgYW5zd2VyLmxpbmtlZFF1ZXN0aW9uID09IGAke3F1ZXN0aW9uLnFub31gICYmIHF1ZXN0aW9uLnFubyA9PSAocW50SWR4KzEpKSB8fCAoIWFuc3dlci5saW5rZWRRdWVzdGlvbi5sZW5ndGggJiYgcXVlc3Rpb24ucW5vICE9IChxbnRJZHgrMSkpKSB7XHJcbiAgICAvLyAgICAgICAgICAgICBxdWVzdGlvbkxpc3QucHVzaChxdWVzdGlvbi5xbm8pXHJcbiAgICAvLyAgICAgICAgIH1cclxuICAgIC8vICAgICAgIH1cclxuICAgIGxldCBxdWVzdGlvbkRldGFpbHMgPSAoKHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChzZWNJZHgpLmdldCgncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5KS5nZXRSYXdWYWx1ZSgpIHx8IFtdO1xyXG4gICAgXHJcbiAgICBsZXQgcXVlc3Rpb25MaXN0OmFueSA9IFtdO1xyXG4gICAgbGV0IGxpbmtlZFF1ZXN0aW9uczphbnkgPSBbXTtcclxuICAgIGlmKHF1ZXN0aW9uRGV0YWlscy5sZW5ndGgpIHtcclxuICAgICAgZm9yKGxldCBxdWVzdGlvbiBvZiBxdWVzdGlvbkRldGFpbHMpIHtcclxuICAgICAgICBpZihxdWVzdGlvbi5hbnN3ZXJzKSB7XHJcbiAgICAgICAgICBpZihbJ3ZpZGVvJywnaW1hZ2UnLCdkZXNjcmlwdGl2ZUltYWdlJywnbXVsdGlwbGVJbWFnZScsJ2xpbmVhcnNjYWxlJywndGltZScsJ2RhdGUnLCdpbWFnZS92aWRlbyddLmluY2x1ZGVzKHF1ZXN0aW9uLmFuc3dlclR5cGUpKSB7XHJcbiAgICAgICAgICAgIHF1ZXN0aW9uLmFuc3dlcnMgPSBbcXVlc3Rpb24uYW5zd2Vyc107XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICAgZm9yKGxldCBbaW5kZXgsYW5zd2VyXSBvZiBxdWVzdGlvbi5hbnN3ZXJzLmVudHJpZXMoKSkge1xyXG4gICAgICAgICAgICBpZihhbnN3ZXI/LmxpbmtlZFF1ZXN0aW9uKSB7XHJcbiAgICAgICAgICAgICAgbGlua2VkUXVlc3Rpb25zLnB1c2goe1xyXG4gICAgICAgICAgICAgICAgcW5vOnF1ZXN0aW9uLnFubyxcclxuICAgICAgICAgICAgICAgIGFuc0lkeDppbmRleCxcclxuICAgICAgICAgICAgICAgIGxpbmtlZFF1ZXN0aW9uOnBhcnNlSW50KGFuc3dlci5saW5rZWRRdWVzdGlvbilcclxuICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIC8vIHF1ZXN0aW9uRGV0YWlscyA9IHF1ZXN0aW9uRGV0YWlscy5maWx0ZXIoKGl0ZW06YW55KSA9PiBpdGVtLnFubyAhPSAocW50SWR4KzEpKTtcclxuICAgICAgZm9yKGxldCBxdWVzdGlvbiBvZiBxdWVzdGlvbkRldGFpbHMpIHtcclxuICAgICAgICBpZihxdWVzdGlvbj8uYW5zd2Vycykge1xyXG4gICAgICAgICAgbGV0IGZpbmRFeGlzdHMgPSBsaW5rZWRRdWVzdGlvbnMuZmluZCgoaXRlbTphbnkpID0+ICBpdGVtLnFubyA9PSBxdWVzdGlvbi5xbm8gJiYgaXRlbS5hbnNJZHggPT0gYW5zSWR4ICYmIGl0ZW0ucW5vID09IChxbnRJZHgrMSkpO1xyXG4gICAgICAgICAgbGV0IGNoZWNrTGlua2VkID0gbGlua2VkUXVlc3Rpb25zLmZpbmQoKGl0ZW06YW55KSA9PiBpdGVtLmxpbmtlZFF1ZXN0aW9uID09IHF1ZXN0aW9uLnFubyB8fCBpdGVtLmxpbmtlZFF1ZXN0aW9uID09IChxbnRJZHgrMSkpO1xyXG4gICAgICAgICAgaWYoIWNoZWNrTGlua2VkICYmICFmaW5kRXhpc3RzICYmIHF1ZXN0aW9uLnFubyAhPSAocW50SWR4KzEpICYmICFxdWVzdGlvbkxpc3QuaW5jbHVkZXMocXVlc3Rpb24ucW5vKSkge1xyXG4gICAgICAgICAgICBxdWVzdGlvbkxpc3QucHVzaChxdWVzdGlvbi5xbm8pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYoZmluZEV4aXN0cyAmJiAhcXVlc3Rpb25MaXN0LmluY2x1ZGVzKGZpbmRFeGlzdHMubGlua2VkUXVlc3Rpb24pICkge1xyXG4gICAgICAgICAgICBxdWVzdGlvbkxpc3QucHVzaChmaW5kRXhpc3RzLmxpbmtlZFF1ZXN0aW9uKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICBsZXQgZmluZEV4aXN0cyA9IGxpbmtlZFF1ZXN0aW9ucy5maW5kKChpdGVtOmFueSkgPT4gIGl0ZW0ubGlua2VkUXVlc3Rpb24gPT0gcXVlc3Rpb24ucW5vKTtcclxuICAgICAgICAgIGlmKCFmaW5kRXhpc3RzICYmIHF1ZXN0aW9uLnFubyAhPSAocW50SWR4KzEpICYmICFxdWVzdGlvbkxpc3QuaW5jbHVkZXMocXVlc3Rpb24ucW5vKSkge1xyXG4gICAgICAgICAgICBxdWVzdGlvbkxpc3QucHVzaChxdWVzdGlvbi5xbm8pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBcclxuICAgICAgcmV0dXJuIHF1ZXN0aW9uTGlzdDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHVwZGF0ZUxpbmtlZChzZWNJZHg6bnVtYmVyLHFuSWR4Om51bWJlcixhbnNJZHg6bnVtYmVyKSB7XHJcbiAgICBsZXQgbGlua1ZhbHVlID0gKCgoKCgodGhpcy5DaGVja2xpc3RGb3JtLmdldCgnc2VjdGlvbnMnKSBhcyBGb3JtQXJyYXkpLmF0KHNlY0lkeCkgYXMgRm9ybUdyb3VwKS5nZXQoJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheSkuYXQocW5JZHgpIGFzIEZvcm1Hcm91cCkuZ2V0KCdhbnN3ZXJzJykgYXMgRm9ybUFycmF5KS5hdChhbnNJZHgpIGFzIEZvcm1Hcm91cCkuZ2V0KCdzaG93TGlua2VkJyk/LnZhbHVlO1xyXG4gICAgaWYobGlua1ZhbHVlKSB7XHJcbiAgICAgIGxldCBsaW5rZWRRdWVzdGlvbiA9ICgoKCgodGhpcy5DaGVja2xpc3RGb3JtLmdldCgnc2VjdGlvbnMnKSBhcyBGb3JtQXJyYXkpLmF0KHNlY0lkeCkuZ2V0KCdxdWVzdGlvbnMnKSBhcyBGb3JtQXJyYXkpLmF0KHFuSWR4KSBhcyBGb3JtR3JvdXApLmdldCgnYW5zd2VycycpIGFzIEZvcm1BcnJheSkuYXQoYW5zSWR4KSBhcyBGb3JtR3JvdXApLmdldCgnbGlua2VkUXVlc3Rpb24nKT8udmFsdWU7XHJcbiAgICAgIGlmKGxpbmtlZFF1ZXN0aW9uKSB7XHJcbiAgICAgICAgKCgodGhpcy5DaGVja2xpc3RGb3JtLmdldCgnc2VjdGlvbnMnKSBhcyBGb3JtQXJyYXkpLmF0KHNlY0lkeCkuZ2V0KCdxdWVzdGlvbnMnKSBhcyBGb3JtQXJyYXkpLmF0KGxpbmtlZFF1ZXN0aW9uIC0gMSkgYXMgRm9ybUdyb3VwKS5nZXQoJ2xpbmtUeXBlJyk/LnNldFZhbHVlKGZhbHNlKTtcclxuICAgICAgfVxyXG4gICAgICAoKCgoKCh0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheSkuYXQoc2VjSWR4KSBhcyBGb3JtR3JvdXApLmdldCgncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChxbklkeCkgYXMgRm9ybUdyb3VwKS5nZXQoJ2Fuc3dlcnMnKSBhcyBGb3JtQXJyYXkpLmF0KGFuc0lkeCkgYXMgRm9ybUdyb3VwKS5nZXQoJ2xpbmtlZFF1ZXN0aW9uJyk/LnNldFZhbHVlKDApO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCFsaW5rVmFsdWUpIHtcclxuICAgICAgKCgoKCgodGhpcy5DaGVja2xpc3RGb3JtLmdldCgnc2VjdGlvbnMnKSBhcyBGb3JtQXJyYXkpLmF0KHNlY0lkeCkgYXMgRm9ybUdyb3VwKS5nZXQoJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheSkuYXQocW5JZHgpIGFzIEZvcm1Hcm91cCkuZ2V0KCdhbnN3ZXJzJykgYXMgRm9ybUFycmF5KS5hdChhbnNJZHgpIGFzIEZvcm1Hcm91cCkuZ2V0KCd2YWxpZGF0aW9uJyk/LnNldFZhbHVlKGZhbHNlKTtcclxuICAgICAgdGhpcy5jbGVhclJlZmVyZW5jZUltYWdlKHNlY0lkeCxxbklkeCxhbnNJZHgpO1xyXG4gICAgfVxyXG5cclxuICAgICgoKCgoKHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChzZWNJZHgpIGFzIEZvcm1Hcm91cCkuZ2V0KCdxdWVzdGlvbnMnKSBhcyBGb3JtQXJyYXkpLmF0KHFuSWR4KSBhcyBGb3JtR3JvdXApLmdldCgnYW5zd2VycycpIGFzIEZvcm1BcnJheSkuYXQoYW5zSWR4KSBhcyBGb3JtR3JvdXApLmdldCgnc2hvd0xpbmtlZCcpPy5zZXRWYWx1ZSghbGlua1ZhbHVlKVxyXG4gIH1cclxuXHJcbiAgdXBkYXRlUXVlc3Rpb25UeXBlKHNlY0lkeDpudW1iZXIscW5JZHg6bnVtYmVyLGFuc0lkeDpudW1iZXIsZXZlbnQ6YW55KSB7XHJcbiAgICBsZXQgbGlua2VkUXVlc3Rpb24gPSAoKCgoKHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChzZWNJZHgpLmdldCgncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChxbklkeCkgYXMgRm9ybUdyb3VwKS5nZXQoJ2Fuc3dlcnMnKSBhcyBGb3JtQXJyYXkpLmF0KGFuc0lkeCkgYXMgRm9ybUdyb3VwKS5nZXQoJ2xpbmtlZFF1ZXN0aW9uJyk/LnZhbHVlO1xyXG4gICAgaWYobGlua2VkUXVlc3Rpb24pIHtcclxuICAgICAgKCgodGhpcy5DaGVja2xpc3RGb3JtLmdldCgnc2VjdGlvbnMnKSBhcyBGb3JtQXJyYXkpLmF0KHNlY0lkeCkuZ2V0KCdxdWVzdGlvbnMnKSBhcyBGb3JtQXJyYXkpLmF0KGxpbmtlZFF1ZXN0aW9uIC0gMSkgYXMgRm9ybUdyb3VwKS5nZXQoJ2xpbmtUeXBlJyk/LnNldFZhbHVlKGZhbHNlKTtcclxuICAgIH1cclxuICAgIGlmKGV2ZW50LnRhcmdldC52YWx1ZSkge1xyXG4gICAgICBsZXQgaW5kZXggPSBwYXJzZUludChldmVudC50YXJnZXQudmFsdWUpIC0gMTtcclxuICAgICAgKCgodGhpcy5DaGVja2xpc3RGb3JtLmdldCgnc2VjdGlvbnMnKSBhcyBGb3JtQXJyYXkpLmF0KHNlY0lkeCkuZ2V0KCdxdWVzdGlvbnMnKSBhcyBGb3JtQXJyYXkpLmF0KGluZGV4KSBhcyBGb3JtR3JvdXApLmdldCgnbGlua1R5cGUnKT8uc2V0VmFsdWUodHJ1ZSk7XHJcbiAgICAgICgoKCgodGhpcy5DaGVja2xpc3RGb3JtLmdldCgnc2VjdGlvbnMnKSBhcyBGb3JtQXJyYXkpLmF0KHNlY0lkeCkuZ2V0KCdxdWVzdGlvbnMnKSBhcyBGb3JtQXJyYXkpLmF0KHFuSWR4KSBhcyBGb3JtR3JvdXApLmdldCgnYW5zd2VycycpIGFzIEZvcm1BcnJheSkuYXQoYW5zSWR4KSBhcyBGb3JtR3JvdXApLmdldCgnbGlua2VkUXVlc3Rpb24nKT8uc2V0VmFsdWUoZXZlbnQudGFyZ2V0LnZhbHVlKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAoKCgoKHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChzZWNJZHgpLmdldCgncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChxbklkeCkgYXMgRm9ybUdyb3VwKS5nZXQoJ2Fuc3dlcnMnKSBhcyBGb3JtQXJyYXkpLmF0KGFuc0lkeCkgYXMgRm9ybUdyb3VwKS5nZXQoJ2xpbmtlZFF1ZXN0aW9uJyk/LnNldFZhbHVlKDApO1xyXG4gICAgICAoKCgoKHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChzZWNJZHgpLmdldCgncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChxbklkeCkgYXMgRm9ybUdyb3VwKS5nZXQoJ2Fuc3dlcnMnKSBhcyBGb3JtQXJyYXkpLmF0KGFuc0lkeCkgYXMgRm9ybUdyb3VwKS5nZXQoJ3Nob3dMaW5rZWQnKT8uc2V0VmFsdWUoZmFsc2UpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2VsZWN0T3B0aW9uKHFubzphbnksYW5zTGlua2VkOmFueSkge1xyXG4gICAgcmV0dXJuIHFubyA9PSBhbnNMaW5rZWQgPyB0cnVlIDogZmFsc2U7XHJcbiAgfVxyXG5cclxuICBnZXRRdWVzdGlvbk5hbWUoc2VjSWR4Om51bWJlcixxSWR4Om51bWJlcikge1xyXG4gICAgcmV0dXJuICgodGhpcy5nZXRTZWN0aW9uRm9ybUFycmF5KCkuYXQoc2VjSWR4KS5nZXQoJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheSkuYXQocUlkeC0xKSBhcyBGb3JtR3JvdXApLmdldCgncW5hbWUnKT8udmFsdWU7XHJcbiAgfVxyXG5cclxuUnVuQUlOZXcoc0lkeDpudW1iZXIscUlkeDogbnVtYmVyLGFuc0lkeDpudW1iZXI9LTEsZXZlbnQ6IGFueSkge1xyXG4gIGNvbnNvbGUubG9nKFwiZXZlbnQgPT5cIiwgZXZlbnQudGFyZ2V0LmNoZWNrZWQpXHJcbiAgLy8gaWYoZXZlbnQudGFyZ2V0LmNoZWNrZWQpe1xyXG4gICAgbGV0IHFOYW1lOiBhbnkgPSB0aGlzLmdldFF1ZXN0aW9uRm9ybUNvbnRyb2woc0lkeCxxSWR4LCdxbmFtZScpPy52YWx1ZTsgXHJcbiAgICBsZXQgcnVuQUlGZWF0dXJlczogYW55ID0gW107XHJcbiAgICBsZXQgcnVuQUlEZXNjcmlwdGlvbjogYW55ID0gJyc7XHJcbiAgICBsZXQgc2VjdGlvblF1ZXN0aW9uID0gKCgoKHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChzSWR4KSBhcyBGb3JtR3JvdXApLmdldCgncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChxSWR4KSBhcyBGb3JtR3JvdXApO1xyXG4gICAgaWYoYW5zSWR4ICE9IC0xKSB7XHJcbiAgICAgIHJ1bkFJRmVhdHVyZXM9IHRoaXMuZ2V0QW5zd2VyRm9ybUdyb3VwX0Zvcm1Db250cm9sKHNJZHgscUlkeCwncnVuQUlGZWF0dXJlcycsYW5zSWR4KT8udmFsdWU7IFxyXG4gICAgICBydW5BSURlc2NyaXB0aW9uPSB0aGlzLmdldEFuc3dlckZvcm1Hcm91cF9Gb3JtQ29udHJvbChzSWR4LHFJZHgsJ3J1bkFJRGVzY3JpcHRpb24nLGFuc0lkeCk/LnZhbHVlO1xyXG4gICAgfSBcclxuICAgIGVsc2Uge1xyXG4gICAgICBydW5BSUZlYXR1cmVzPSAoKHNlY3Rpb25RdWVzdGlvbi5nZXQoXCJhbnN3ZXJzXCIpIGFzIEZvcm1Hcm91cCkuZ2V0KFwicnVuQUlGZWF0dXJlc1wiKSBhcyBGb3JtQXJyYXkpPy52YWx1ZTsgXHJcbiAgICAgIHJ1bkFJRGVzY3JpcHRpb249ICgoc2VjdGlvblF1ZXN0aW9uLmdldChcImFuc3dlcnNcIikgYXMgRm9ybUdyb3VwKS5nZXQoXCJydW5BSURlc2NyaXB0aW9uXCIpIGFzIEZvcm1BcnJheSk/LnZhbHVlO1xyXG4gICAgfVxyXG4gICAgbGV0IHF1ZXN0aW9uSW1hZ2VzO1xyXG4gICAgaWYoYW5zSWR4ICE9IC0xKSB7XHJcbiAgICAgIGxldCBhbnN3ZXJzID0gKChzZWN0aW9uUXVlc3Rpb24uZ2V0KCdhbnN3ZXJzJykgYXMgRm9ybUFycmF5KS5hdChhbnNJZHgpIGFzIEZvcm1Hcm91cCk7XHJcbiAgICAgIHF1ZXN0aW9uSW1hZ2VzID0gKGFuc3dlcnMuZ2V0KCdtdWx0aVJlZmVyZW5jZUltYWdlJykgYXMgRm9ybUFycmF5KT8udmFsdWU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZihbJ2ltYWdlJywnbXVsdGlwbGVJbWFnZScsJ2Rlc2NyaXB0aXZlSW1hZ2UnXS5pbmNsdWRlcyh0aGlzLmdldFF1ZXN0aW9uRm9ybUNvbnRyb2woc0lkeCxxSWR4LCdhbnN3ZXJUeXBlJyk/LnZhbHVlKSkge1xyXG4gICAgICAgIHF1ZXN0aW9uSW1hZ2VzID0gKHNlY3Rpb25RdWVzdGlvbi5nZXQoJ2Fuc3dlcnMnKSBhcyBGb3JtR3JvdXApLmdldCgnbXVsdGlSZWZlcmVuY2VJbWFnZScpPy52YWx1ZTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICBxdWVzdGlvbkltYWdlcyA9IChzZWN0aW9uUXVlc3Rpb24uZ2V0KCdhbnN3ZXJzJykgYXMgRm9ybUdyb3VwKS5nZXQoJ211bHRpUXVlc3Rpb25SZWZlcmVuY2VJbWFnZScpPy52YWx1ZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIFxyXG4gIGlmKGV2ZW50LnRhcmdldC5jaGVja2VkKXsgIFxyXG4gICAgaWYgKHRoaXMuZ2V0QW5zd2VyRm9ybUdyb3VwX0Zvcm1Db250cm9sKHNJZHgsIHFJZHgsIFwicnVuQUlcIiwgYW5zSWR4KT8udmFsdWUgPT0gZmFsc2UpIHtcclxuICAgICAgaWYgKCFxTmFtZSB8fCAhdGhpcy5DaGVja2xpc3RGb3JtLmdldChcImNoZWNrbGlzdE5hbWVcIik/LnZhbHVlKSB7XHJcbiAgICAgICAgbGV0IGVycjogc3RyaW5nID0gIXFOYW1lXHJcbiAgICAgICAgICA/IFwiUGxlYXNlIGVudGVyIHF1ZXN0aW9uIHRvIGNvbnRpbnVlIVwiXHJcbiAgICAgICAgICA6IFwiUGxlYXNlIGVudGVyIENoZWNrbGlzdCBOYW1lIHRvIGNvbnRpbnVlIVwiO1xyXG4gICAgICAgIHRoaXMuc3dhbFRvYXN0KGVyciwgXCJlcnJvclwiKTtcclxuICAgICAgICB0aGlzLnJ1bkFJT2ZmKHNJZHgsIHFJZHgsIGZhbHNlLCBhbnNJZHgpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKFRyYXhSdW5BSVBvcHVwQ29tcG9uZW50LCB7XHJcbiAgICAgICAgY2VudGVyZWQ6IHRydWUsXHJcbiAgICAgICAgc2l6ZTogXCJtZFwiLFxyXG4gICAgICAgIGJhY2tkcm9wOiBcInN0YXRpY1wiXHJcbiAgICAgIH0pO1xyXG4gICAgICBkaWFsb2dSZWYuY29tcG9uZW50SW5zdGFuY2UuZGF0YSA9IHtcclxuICAgICAgICBpbWFnZXNyYzogYDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiNTZcIiBoZWlnaHQ9XCI1NlwiIHZpZXdCb3g9XCIwIDAgNTYgNTZcIiBmaWxsPVwibm9uZVwiPjxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgZmlsbD1cIiNEMUZBREZcIi8+PHBhdGggZD1cIk0yMy4zNTY0IDE5LjM1MjVDMjQuMTc0OCAxOC43MzI3IDI1LjE3MzggMTguMzk4NSAyNi4yMDA0IDE4LjQwMDlDMjYuNTU0OSAxOC4zOTMgMjYuOTA1NyAxOC40NzQ2IDI3LjIyMDQgMTguNjM4MkMyNy41MzUgMTguODAxOCAyNy44MDMzIDE5LjA0MjEgMjguMDAwNCAxOS4zMzY5QzI4LjE5NzUgMTkuMDQyMSAyOC40NjU4IDE4LjgwMTggMjguNzgwNCAxOC42MzgyQzI5LjA5NSAxOC40NzQ2IDI5LjQ0NTkgMTguMzkzIDI5LjgwMDQgMTguNDAwOUMzMC44MjcgMTguMzk4NSAzMS44MjYgMTguNzMyNyAzMi42NDQ0IDE5LjM1MjVDMzMuMjc0NCAxOS44NDIxIDMzLjc2MDQgMjAuNTIwMSAzMy45MzIgMjEuMzM5N0MzNC4zMjU2IDIxLjM2OTcgMzQuNjg1NiAyMS41MzI5IDM0Ljk4OCAyMS43Nzg5QzM1LjQ0NjQgMjIuMTUwOSAzNS43OCAyMi43MDg5IDM1Ljk5IDIzLjI5OTNDMzYuMzE4OCAyNC4yMTczIDM2LjQwNzYgMjUuMzg3MyAzNi4wNjY4IDI2LjM4MzNDMzYuMTUzMiAyNi40MjQxIDM2LjIzODQgMjYuNDcyMSAzNi4zMjEyIDI2LjUyNzNDMzYuNjUxMiAyNi43NDY5IDM2LjkwMiAyNy4wNjEzIDM3LjA4NjggMjcuNDMyMUMzNy40NTA0IDI4LjE1ODEgMzcuNjAwNCAyOS4xNzA5IDM3LjYwMDQgMzAuNDAwOUMzNy42MDA0IDMxLjc3MDEgMzcuMDc4NCAzMi42ODkzIDM2LjQxNiAzMy4yNTY5QzM2LjA0OTcgMzMuNTcxIDM1LjYxNzQgMzMuNzk4NiAzNS4xNTEyIDMzLjkyMjlDMzUuMDMxMiAzNC41OTI1IDM0LjY5NTIgMzUuMzY3NyAzNC4xNjg0IDM2LjAyNTNDMzMuNDg0NCAzNi44ODMzIDMyLjQyMzYgMzcuNjAwOSAzMS4wMDA0IDM3LjYwMDlDMjkuODcyNCAzNy42MDA5IDI4Ljk3NDggMzYuOTc2OSAyOC4zOTE2IDM2LjM2NDlDMjguMjUyMiAzNi4yMTg4IDI4LjEyMTUgMzYuMDY0NSAyOC4wMDA0IDM1LjkwMjlDMjcuODc5MyAzNi4wNjQ1IDI3Ljc0ODYgMzYuMjE4OCAyNy42MDkyIDM2LjM2NDlDMjcuMDI2IDM2Ljk3NjkgMjYuMTI5NiAzNy42MDA5IDI1LjAwMDQgMzcuNjAwOUMyMy41NzcyIDM3LjYwMDkgMjIuNTE3NiAzNi44ODMzIDIxLjgzMjQgMzYuMDI1M0MyMS4zNDAxIDM1LjQxNCAyMS4wMDI5IDM0LjY5MjcgMjAuODQ5NiAzMy45MjI5QzIwLjM4MzQgMzMuNzk4NiAxOS45NTExIDMzLjU3MSAxOS41ODQ4IDMzLjI1NjlDMTguOTIyNCAzMi42ODkzIDE4LjQwMDQgMzEuNzY4OSAxOC40MDA0IDMwLjQwMDlDMTguNDAwNCAyOS4xNzA5IDE4LjU1MTYgMjguMTU2OSAxOC45MTQgMjcuNDMyMUMxOS4wODU3IDI3LjA2ODUgMTkuMzQ5NyAyNi43NTYxIDE5LjY3OTYgMjYuNTI2MUMxOS43NjA2IDI2LjQ3MjUgMTkuODQ1NyAyNi40MjUxIDE5LjkzNCAyNi4zODQ1QzE5LjU5MzIgMjUuMzg2MSAxOS42ODIgMjQuMjE3MyAyMC4wMTA4IDIzLjI5OTNDMjAuMjIwOCAyMi43MDg5IDIwLjU1NDQgMjIuMTUwOSAyMS4wMTI4IDIxLjc3ODlDMjEuMzE1MiAyMS41MzI5IDIxLjY3NTIgMjEuMzcwOSAyMi4wNjg4IDIxLjMzOTdDMjIuMjQxNiAyMC41MjAxIDIyLjcyNjQgMTkuODQyMSAyMy4zNTY0IDE5LjM1MjVaTTI3LjQwMDQgMjEuNDAwOVYyMS4zODg5TDI3LjM5OCAyMS4zMjg5QzI3LjM4MDMgMjEuMDE2MSAyNy4zMTgxIDIwLjcwNzQgMjcuMjEzMiAyMC40MTIxQzI3LjEzODUgMjAuMTg5MiAyNy4wMTEzIDE5Ljk4NzYgMjYuODQyNCAxOS44MjQxQzI2LjY2NTEgMTkuNjY5OCAyNi40MzUyIDE5LjU4OTggMjYuMjAwNCAxOS42MDA5QzI1LjQ0MDcgMTkuNTk4MyAyNC43MDA5IDE5Ljg0MzUgMjQuMDkzMiAyMC4yOTkzQzIzLjUzNjQgMjAuNzMyNSAyMy4yMDA0IDIxLjMxOTMgMjMuMjAwNCAyMi4wMDA5QzIzLjIwMDMgMjIuMDk1OSAyMy4xNzc3IDIyLjE4OTYgMjMuMTM0MyAyMi4yNzQxQzIzLjA5MSAyMi4zNTg3IDIzLjAyODIgMjIuNDMxOCAyMi45NTExIDIyLjQ4NzNDMjIuODc0IDIyLjU0MjggMjIuNzg0OCAyMi41NzkzIDIyLjY5MDkgMjIuNTkzNkMyMi41OTY5IDIyLjYwNzkgMjIuNTAwOSAyMi41OTk3IDIyLjQxMDggMjIuNTY5N0MyMi4xODUyIDIyLjQ5NTMgMjEuOTgzNiAyMi41MzczIDIxLjc2ODggMjIuNzEwMUMyMS41MzM2IDIyLjkwMjEgMjEuMzA0NCAyMy4yNDI5IDIxLjE0IDIzLjcwMjVDMjAuODA1MiAyNC42NDA5IDIwLjg0IDI1Ljc3NzMgMjEuMjk5NiAyNi40Njg1QzIxLjM2NTIgMjYuNTY3IDIxLjQwMDMgMjYuNjgyNiAyMS40MDA0IDI2LjgwMDlIMjIuMzAwNEMyMy4wMTY1IDI2LjgwMDkgMjMuNzAzMiAyNy4wODU0IDI0LjIwOTYgMjcuNTkxN0MyNC43MTU5IDI4LjA5ODEgMjUuMDAwNCAyOC43ODQ4IDI1LjAwMDQgMjkuNTAwOVYyOS45MDI5QzI1LjQwMDcgMzAuMDQ0NSAyNS43MzgxIDMwLjMyMyAyNS45NTMgMzAuNjg5MkMyNi4xNjc4IDMxLjA1NTUgMjYuMjQ2MyAzMS40ODU5IDI2LjE3NDUgMzEuOTA0NEMyNi4xMDI3IDMyLjMyMjkgMjUuODg1MiAzMi43MDI1IDI1LjU2MDYgMzIuOTc2MkMyNS4yMzU5IDMzLjI0OTkgMjQuODI1IDMzLjQgMjQuNDAwNCAzMy40QzIzLjk3NTggMzMuNCAyMy41NjQ4IDMzLjI0OTkgMjMuMjQwMiAzMi45NzYyQzIyLjkxNTYgMzIuNzAyNSAyMi42OTgxIDMyLjMyMjkgMjIuNjI2MyAzMS45MDQ0QzIyLjU1NDUgMzEuNDg1OSAyMi42MzMgMzEuMDU1NSAyMi44NDc4IDMwLjY4OTJDMjMuMDYyNyAzMC4zMjMgMjMuNDAwMSAzMC4wNDQ1IDIzLjgwMDQgMjkuOTAyOVYyOS41MDA5QzIzLjgwMDQgMjguNjcyOSAyMy4xMjg0IDI4LjAwMDkgMjIuMzAwNCAyOC4wMDA5SDIwLjIwMDRDMjAuMTI4NyAyOC4wMDA4IDIwLjA1NzUgMjcuOTg3OCAxOS45OTA0IDI3Ljk2MjVMMTkuOTg2OCAyNy45Njk3QzE5Ljc0OTIgMjguNDQzNyAxOS42MDA0IDI5LjIzMDkgMTkuNjAwNCAzMC40MDA5QzE5LjYwMDQgMzEuNDMxNyAxOS45Nzg0IDMyLjAxMjUgMjAuMzY2IDMyLjM0NDlDMjAuNzgyNCAzMi43MDI1IDIxLjI0NDQgMzIuODAwOSAyMS40MDA0IDMyLjgwMDlDMjEuNTU5NSAzMi44MDA5IDIxLjcxMjEgMzIuODY0MSAyMS44MjQ3IDMyLjk3NjdDMjEuOTM3MiAzMy4wODkyIDIyLjAwMDQgMzMuMjQxOCAyMi4wMDA0IDMzLjQwMDlDMjIuMDAwNCAzMy44NDI1IDIyLjI0MDQgMzQuNjE0MSAyMi43Njg0IDM1LjI3NjVDMjMuMjgzMiAzNS45MTg1IDI0LjAyMzYgMzYuNDAwOSAyNS4wMDA0IDM2LjQwMDlDMjUuNjcyNCAzNi40MDA5IDI2LjI3NDggMzYuMDI1MyAyNi43NDA0IDM1LjUzNjlDMjYuOTY5NiAzNS4yOTY5IDI3LjE0ODQgMzUuMDQ4NSAyNy4yNjQ4IDM0Ljg0NDVDMjcuMzE3OCAzNC43NTQxIDI3LjM2MzEgMzQuNjU5MyAyNy40MDA0IDM0LjU2MTNWMjUuMDAwOUgyNi4wOTg0QzI1Ljk1NjkgMjUuNDAxMiAyNS42NzgzIDI1LjczODcgMjUuMzEyMSAyNS45NTM1QzI0Ljk0NTkgMjYuMTY4MyAyNC41MTU0IDI2LjI0NjggMjQuMDk3IDI2LjE3NUMyMy42Nzg1IDI2LjEwMzIgMjMuMjk4OCAyNS44ODU4IDIzLjAyNTEgMjUuNTYxMUMyMi43NTE0IDI1LjIzNjUgMjIuNjAxMyAyNC44MjU1IDIyLjYwMTMgMjQuNDAwOUMyMi42MDEzIDIzLjk3NjMgMjIuNzUxNCAyMy41NjU0IDIzLjAyNTEgMjMuMjQwN0MyMy4yOTg4IDIyLjkxNjEgMjMuNjc4NSAyMi42OTg2IDI0LjA5NyAyMi42MjY4QzI0LjUxNTQgMjIuNTU1IDI0Ljk0NTkgMjIuNjMzNSAyNS4zMTIxIDIyLjg0ODNDMjUuNjc4MyAyMy4wNjMyIDI1Ljk1NjkgMjMuNDAwNiAyNi4wOTg0IDIzLjgwMDlIMjcuNDAwNFYyMS40MDA5Wk0yOC42MDA0IDMzLjM5OTdWMzQuNTYwMUMyOC42Mzc3IDM0LjY1ODEgMjguNjgzIDM0Ljc1MjggMjguNzM2IDM0Ljg0MzNDMjguODUzNiAzNS4wNDczIDI5LjAzMTIgMzUuMjk1NyAyOS4yNTkyIDM1LjUzNTdDMjkuNzI2IDM2LjAyNDEgMzAuMzI5NiAzNi4zOTk3IDMxLjAwMDQgMzYuMzk5N0MzMS45NzcyIDM2LjM5OTcgMzIuNzE3NiAzNS45MTczIDMzLjIzMjQgMzUuMjc1M0MzMy43NjA0IDM0LjYxMjkgMzQuMDAwNCAzMy44NDEzIDM0LjAwMDQgMzMuMzk5N0MzNC4wMDA0IDMzLjI0MDYgMzQuMDYzNiAzMy4wODggMzQuMTc2MSAzMi45NzU1QzM0LjI4ODYgMzIuODYyOSAzNC40NDEzIDMyLjc5OTcgMzQuNjAwNCAzMi43OTk3QzM0Ljc1NjQgMzIuNzk5NyAzNS4yMTg0IDMyLjcwMTMgMzUuNjM0OCAzMi4zNDM3QzM2LjAyMjQgMzIuMDExMyAzNi40MDA0IDMxLjQzMDUgMzYuNDAwNCAzMC4zOTk3QzM2LjQwMDQgMjkuMjI5NyAzNi4yNTA0IDI4LjQ0MzcgMzYuMDE0IDI3Ljk2ODVDMzUuOTM0OSAyNy43OTE2IDM1LjgxMDggMjcuNjM4NSAzNS42NTQgMjcuNTI0NUMzNS41MTg5IDI3LjQzODEgMzUuMzYwNiAyNy4zOTUgMzUuMjAwNCAyNy40MDA5QzM1LjA5MTkgMjcuNDAwOSAzNC45ODU0IDI3LjM3MTQgMzQuODkyMyAyNy4zMTU2QzM0Ljc5OTIgMjcuMjU5OCAzNC43MjMgMjcuMTc5OCAzNC42NzE3IDI3LjA4NDFDMzQuNjIwNSAyNi45ODg0IDM0LjU5NjIgMjYuODgwNyAzNC42MDE0IDI2Ljc3MjNDMzQuNjA2NiAyNi42NjM4IDM0LjY0MTEgMjYuNTU4OSAzNC43MDEyIDI2LjQ2ODVDMzUuMTYyIDI1Ljc3NzMgMzUuMTk1NiAyNC42NDA5IDM0Ljg2MDggMjMuNzAyNUMzNC42OTY0IDIzLjI0MjkgMzQuNDY3MiAyMi45MDA5IDM0LjIzMiAyMi43MTAxQzM0LjAxNzIgMjIuNTM3MyAzMy44MTU2IDIyLjQ5NDEgMzMuNTkgMjIuNTY5N0MzMy40OTk4IDIyLjU5OTcgMzMuNDAzOCAyMi42MDc5IDMzLjMwOTkgMjIuNTkzNkMzMy4yMTYgMjIuNTc5MyAzMy4xMjY4IDIyLjU0MjggMzMuMDQ5NyAyMi40ODczQzMyLjk3MjYgMjIuNDMxOCAzMi45MDk4IDIyLjM1ODcgMzIuODY2NCAyMi4yNzQxQzMyLjgyMzEgMjIuMTg5NiAzMi44MDA1IDIyLjA5NTkgMzIuODAwNCAyMi4wMDA5QzMyLjgwMDQgMjEuMzE5MyAzMi40NjQ0IDIwLjczMjUgMzEuOTA2NCAyMC4yOTkzQzMxLjI5OSAxOS44NDM4IDMwLjU1OTYgMTkuNTk4NiAyOS44MDA0IDE5LjYwMDlDMjkuNTY1NiAxOS41ODk4IDI5LjMzNTYgMTkuNjY5OCAyOS4xNTg0IDE5LjgyNDFDMjguOTg4OSAxOS45ODc0IDI4Ljg2MTMgMjAuMTg5MSAyOC43ODY0IDIwLjQxMjFDMjguNjcyMSAyMC43MjU2IDI4LjYwOTMgMjEuMDU1NCAyOC42MDA0IDIxLjM4ODlWMzIuMjAwOUgyOS41MDA0QzMwLjMyODQgMzIuMjAwOSAzMS4wMDA0IDMxLjUyODkgMzEuMDAwNCAzMC43MDA5VjI4LjQ5ODlDMzAuNjAwMSAyOC4zNTc0IDMwLjI2MjcgMjguMDc4OSAzMC4wNDc4IDI3LjcxMjZDMjkuODMzIDI3LjM0NjQgMjkuNzU0NSAyNi45MTYgMjkuODI2MyAyNi40OTc1QzI5Ljg5ODEgMjYuMDc5IDMwLjExNTYgMjUuNjk5MyAzMC40NDAyIDI1LjQyNTdDMzAuNzY0OCAyNS4xNTIgMzEuMTc1OCAyNS4wMDE5IDMxLjYwMDQgMjUuMDAxOUMzMi4wMjUgMjUuMDAxOSAzMi40MzU5IDI1LjE1MiAzMi43NjA2IDI1LjQyNTdDMzMuMDg1MiAyNS42OTkzIDMzLjMwMjcgMjYuMDc5IDMzLjM3NDUgMjYuNDk3NUMzMy40NDYzIDI2LjkxNiAzMy4zNjc4IDI3LjM0NjQgMzMuMTUzIDI3LjcxMjZDMzIuOTM4MSAyOC4wNzg5IDMyLjYwMDcgMjguMzU3NCAzMi4yMDA0IDI4LjQ5ODlWMzAuNzAwOUMzMi4yMDA0IDMxLjQxNyAzMS45MTU5IDMyLjEwMzggMzEuNDA5NiAzMi42MTAxQzMwLjkwMzIgMzMuMTE2NSAzMC4yMTY1IDMzLjQwMDkgMjkuNTAwNCAzMy40MDA5SDI4LjYwMDRWMzMuMzk5N1pNMjMuODAwNCAyNC40MDA5QzIzLjgwMDQgMjQuNTYwMSAyMy44NjM2IDI0LjcxMjcgMjMuOTc2MSAyNC44MjUyQzI0LjA4ODYgMjQuOTM3NyAyNC4yNDEzIDI1LjAwMDkgMjQuNDAwNCAyNS4wMDA5QzI0LjU1OTUgMjUuMDAwOSAyNC43MTIxIDI0LjkzNzcgMjQuODI0NyAyNC44MjUyQzI0LjkzNzIgMjQuNzEyNyAyNS4wMDA0IDI0LjU2MDEgMjUuMDAwNCAyNC40MDA5QzI1LjAwMDQgMjQuMjQxOCAyNC45MzcyIDI0LjA4OTIgMjQuODI0NyAyMy45NzY3QzI0LjcxMjEgMjMuODY0MSAyNC41NTk1IDIzLjgwMDkgMjQuNDAwNCAyMy44MDA5QzI0LjI0MTMgMjMuODAwOSAyNC4wODg2IDIzLjg2NDEgMjMuOTc2MSAyMy45NzY3QzIzLjg2MzYgMjQuMDg5MiAyMy44MDA0IDI0LjI0MTggMjMuODAwNCAyNC40MDA5Wk0zMS42MDA0IDI3LjQwMDlDMzEuNzU5NSAyNy40MDA5IDMxLjkxMjEgMjcuMzM3NyAzMi4wMjQ3IDI3LjIyNTJDMzIuMTM3MiAyNy4xMTI3IDMyLjIwMDQgMjYuOTYwMSAzMi4yMDA0IDI2LjgwMDlDMzIuMjAwNCAyNi42NDE4IDMyLjEzNzIgMjYuNDg5MiAzMi4wMjQ3IDI2LjM3NjdDMzEuOTEyMSAyNi4yNjQxIDMxLjc1OTUgMjYuMjAwOSAzMS42MDA0IDI2LjIwMDlDMzEuNDQxMyAyNi4yMDA5IDMxLjI4ODYgMjYuMjY0MSAzMS4xNzYxIDI2LjM3NjdDMzEuMDYzNiAyNi40ODkyIDMxLjAwMDQgMjYuNjQxOCAzMS4wMDA0IDI2LjgwMDlDMzEuMDAwNCAyNi45NjAxIDMxLjA2MzYgMjcuMTEyNyAzMS4xNzYxIDI3LjIyNTJDMzEuMjg4NiAyNy4zMzc3IDMxLjQ0MTMgMjcuNDAwOSAzMS42MDA0IDI3LjQwMDlaTTI0LjQwMDQgMzEuMDAwOUMyNC4yNDEzIDMxLjAwMDkgMjQuMDg4NiAzMS4wNjQxIDIzLjk3NjEgMzEuMTc2N0MyMy44NjM2IDMxLjI4OTIgMjMuODAwNCAzMS40NDE4IDIzLjgwMDQgMzEuNjAwOUMyMy44MDA0IDMxLjc2MDEgMjMuODYzNiAzMS45MTI3IDIzLjk3NjEgMzIuMDI1MkMyNC4wODg2IDMyLjEzNzcgMjQuMjQxMyAzMi4yMDA5IDI0LjQwMDQgMzIuMjAwOUMyNC41NTk1IDMyLjIwMDkgMjQuNzEyMSAzMi4xMzc3IDI0LjgyNDcgMzIuMDI1MkMyNC45MzcyIDMxLjkxMjcgMjUuMDAwNCAzMS43NjAxIDI1LjAwMDQgMzEuNjAwOUMyNS4wMDA0IDMxLjQ0MTggMjQuOTM3MiAzMS4yODkyIDI0LjgyNDcgMzEuMTc2N0MyNC43MTIxIDMxLjA2NDEgMjQuNTU5NSAzMS4wMDA5IDI0LjQwMDQgMzEuMDAwOVpcIiBmaWxsPVwiIzAzOTg1NVwiLz48cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIHN0cm9rZT1cIiNFQ0ZERjNcIiBzdHJva2Utd2lkdGg9XCI4XCIvPjwvc3ZnPmAsXHJcbiAgICAgICAgdGl0bGU6IGBSdW4gQUkgb24gaW1hZ2UgdXBsb2FkZWRgLFxyXG4gICAgICAgIGNvbnRlbnQ6IGBVc2UgdGhlIHBvd2VyIG9mIEFJIHRvIGNvbXBhcmUgYW5kIGRldGVjdCBhbm9tYWxpZXMgYmV0d2VlbiB1cGxvYWRlZCBhbmQgcmVmZXJlbmNlIGltYWdlLmAsXHJcbiAgICAgICAgcXVlc3Rpb25OYW1lOiBxTmFtZSxcclxuICAgICAgICBpbWFnZXM6IHF1ZXN0aW9uSW1hZ2VzLFxyXG4gICAgICAgIGVudmlyb25tZW50OiB0aGlzLmVudmlyb25tZW50LlRyYXhBbnN3ZXJDRE4sXHJcbiAgICAgICAgcnVuQUlGZWF0dXJlczogcnVuQUlGZWF0dXJlcyxcclxuICAgICAgICBydW5BSURlc2NyaXB0aW9uOiBydW5BSURlc2NyaXB0aW9uLFxyXG4gICAgICAgIGNsaWVudElkOnRoaXMuY2xpZW50SWRcclxuICAgICAgfTtcclxuICAgICAgZGlhbG9nUmVmLnJlc3VsdC50aGVuKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXMgIT0gXCJjYW5jZWxcIikge1xyXG4gICAgICAgICAgbGV0IGltYWdlczogYW55O1xyXG4gICAgICAgICAgbGV0IGZlYXR1cmVzOiBhbnk7XHJcbiAgICAgICAgICBpZiAoYW5zSWR4ICE9IC0xKSB7XHJcbiAgICAgICAgICAgIGltYWdlcyA9IChcclxuICAgICAgICAgICAgICAoc2VjdGlvblF1ZXN0aW9uLmdldChcImFuc3dlcnNcIikgYXMgRm9ybUFycmF5KS5hdChcclxuICAgICAgICAgICAgICAgIGFuc0lkeFxyXG4gICAgICAgICAgICAgICkgYXMgRm9ybUdyb3VwXHJcbiAgICAgICAgICAgICk/LmdldChcIm11bHRpUmVmZXJlbmNlSW1hZ2VcIikgYXMgRm9ybUFycmF5O1xyXG4gICAgICAgICAgICBmZWF0dXJlcyA9IChcclxuICAgICAgICAgICAgICAoc2VjdGlvblF1ZXN0aW9uLmdldChcImFuc3dlcnNcIikgYXMgRm9ybUFycmF5KS5hdChcclxuICAgICAgICAgICAgICAgIGFuc0lkeFxyXG4gICAgICAgICAgICAgICkgYXMgRm9ybUdyb3VwXHJcbiAgICAgICAgICAgICk/LmdldChcInJ1bkFJRmVhdHVyZXNcIikgYXMgRm9ybUFycmF5O1xyXG4gICAgICAgICAgICAgKChzZWN0aW9uUXVlc3Rpb24uZ2V0KFwiYW5zd2Vyc1wiKSBhcyBGb3JtQXJyYXkpLmF0KGFuc0lkeCkgYXMgRm9ybUdyb3VwKS5nZXQoXCJydW5BSURlc2NyaXB0aW9uXCIpPy5zZXRWYWx1ZShyZXMucnVuQUlEZXNjcmlwdGlvbik7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBpbWFnZXMgPSAoc2VjdGlvblF1ZXN0aW9uLmdldChcImFuc3dlcnNcIikgYXMgRm9ybUdyb3VwKS5nZXQoXHJcbiAgICAgICAgICAgICAgXCJtdWx0aVJlZmVyZW5jZUltYWdlXCJcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgZmVhdHVyZXMgPSAoc2VjdGlvblF1ZXN0aW9uLmdldChcImFuc3dlcnNcIikgYXMgRm9ybUdyb3VwKS5nZXQoXCJydW5BSUZlYXR1cmVzXCIpIGFzIEZvcm1BcnJheTtcclxuICAgICAgICAgICAgKHNlY3Rpb25RdWVzdGlvbi5nZXQoXCJhbnN3ZXJzXCIpIGFzIEZvcm1Hcm91cCkuZ2V0KFwicnVuQUlEZXNjcmlwdGlvblwiKT8uc2V0VmFsdWUocmVzLnJ1bkFJRGVzY3JpcHRpb24pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaW1hZ2VzLmNsZWFyKCk7XHJcbiAgICAgICAgICByZXMuaW1hZ2VzLmZvckVhY2goKGltZzogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIGltYWdlcy5wdXNoKFxyXG4gICAgICAgICAgICAgIHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICAgICAgICAgICAgaW1hZ2VVUkw6IGltZy5pbWFnZVVSTCxcclxuICAgICAgICAgICAgICAgIHJ1bkFJOiBpbWcucnVuQUksXHJcbiAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgZmVhdHVyZXMuY2xlYXIoKTtcclxuICAgICAgICAgIHJlcy5ydW5BSUZlYXR1cmVzLmZvckVhY2goKGVsZTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIGZlYXR1cmVzLnB1c2goXHJcbiAgICAgICAgICAgICAgdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgICAgICAgICAgICBmZWF0dXJlTmFtZTogdGhpcy5mYi5jb250cm9sKGVsZS5mZWF0dXJlTmFtZSksXHJcbiAgICAgICAgICAgICAgICBsYWJsZU5hbWU6IHRoaXMuZmIuY29udHJvbChlbGUubGFibGVOYW1lKSxcclxuICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICB0aGlzLmluc2VydEZlYXR1cmVzKHJlcy5ydW5BSUZlYXR1cmVzKTtcclxuICAgICAgICAgIGlmICghdGhpcy5oYXNWYWxpZGF0aW9uRW5hYmxlZChzSWR4LCBxSWR4KSkge1xyXG4gICAgICAgICAgICAoKCgodGhpcy5DaGVja2xpc3RGb3JtLmdldCgnc2VjdGlvbnMnKSBhcyBGb3JtQXJyYXkpXHJcbiAgICAgICAgICAuYXQoc0lkeCkgYXMgRm9ybUdyb3VwKVxyXG4gICAgICAgICAgLmdldCgncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5KVxyXG4gICAgICAgICAgLmF0KHFJZHgpIGFzIEZvcm1Hcm91cCkuZ2V0KCdjb21wbGlhbmNlJyk/LmVuYWJsZSgpXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLnRvYXN0LmdldFN1Y2Nlc3NUb2FzdCgnUnVuQUkgZW5hYmxlZCBzdWNjZXNzZnVsbHknKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnJ1bkFJT2ZmKHNJZHgsIHFJZHgsIGZhbHNlLCBhbnNJZHgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5ydW5BSU9mZihzSWR4LCBxSWR4LCBmYWxzZSwgYW5zSWR4KTtcclxuICAgICAgdGhpcy50b2FzdC5nZXRTdWNjZXNzVG9hc3QoJ1J1bkFJIGRpc2FibGVkIHN1Y2Nlc3NmdWxseScpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgfWVsc2V7XHJcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKFRyYXhwb3B1cENvbXBvbmVudCx7Y2VudGVyZWQ6IHRydWUsIHNpemU6ICdtZCcsIGJhY2tkcm9wOiBcInN0YXRpY1wifSk7XHJcbiAgICBkaWFsb2dSZWYuY29tcG9uZW50SW5zdGFuY2UuZGF0YSA9IHtcclxuICAgICAgaW1hZ2VzcmM6IGA8c3Bhbj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjU2XCIgaGVpZ2h0PVwiNTZcIiB2aWV3Qm94PVwiMCAwIDU2IDU2XCIgZmlsbD1cIm5vbmVcIj48cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIGZpbGw9XCIjRkVFNEUyXCIvPjxwYXRoIGQ9XCJNMjggMjRWMjhNMjggMzJIMjguMDFNMzggMjhDMzggMzMuNTIyOCAzMy41MjI4IDM4IDI4IDM4QzIyLjQ3NzIgMzggMTggMzMuNTIyOCAxOCAyOEMxOCAyMi40NzcyIDIyLjQ3NzIgMTggMjggMThDMzMuNTIyOCAxOCAzOCAyMi40NzcyIDM4IDI4WlwiIHN0cm9rZT1cIiNEOTJEMjBcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgc3Ryb2tlPVwiI0ZFRjNGMlwiIHN0cm9rZS13aWR0aD1cIjhcIi8+PC9zdmc+PC9zcGFuPmAsXHJcbiAgICAgIHRpdGxlOiBgUnVuIEFJIFJlbW92ZWAsXHJcbiAgICAgIGNvbnRlbnQ6IGBBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gUmVtb3ZlIFJ1biBBST9gLFxyXG4gICAgICBidXR0b250eXBlOiAncmVtb3ZlJ1xyXG4gICAgfVxyXG4gICAgZGlhbG9nUmVmLnJlc3VsdC50aGVuKChyZXMpID0+IHtcclxuICAgICAgLy8gY29uc29sZS5sb2coXCJyZXMgPT5cIiwgcmVzKVxyXG4gICAgICBpZiAocmVzID09ICdkZWxldGUnKSB7XHJcbiAgICAgICAgIGxldCBxdWVzdGlvbiA9ICgoKCh0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheSlcclxuICAgICAgLmF0KHNJZHgpIGFzIEZvcm1Hcm91cClcclxuICAgICAgLmdldCgncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5KVxyXG4gICAgICAuYXQocUlkeCkgYXMgRm9ybUdyb3VwKVxyXG4gICAgICAgIHF1ZXN0aW9uLmdldCgnY29tcGxpYW5jZScpPy5kaXNhYmxlKHtlbWl0RXZlbnQ6ZmFsc2V9KVxyXG4gICAgICAgIHF1ZXN0aW9uLmdldCgnY29tcGxpYW5jZScpPy5wYXRjaFZhbHVlKGZhbHNlKTtcclxuICAgICAgICB0aGlzLnRvYXN0LmdldFN1Y2Nlc3NUb2FzdCgnUnVuQUkgZGlzYWJsZWQgc3VjY2Vzc2Z1bGx5Jyk7XHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmdldEFuc3dlckZvcm1Hcm91cF9Gb3JtQ29udHJvbChzSWR4LCBxSWR4LCBcInJ1bkFJXCIsIGFuc0lkeCk7XHJcbiAgICAgICAgaWYgKGNvbnRyb2wpIHtcclxuICAgICAgICAgIGNvbnRyb2wuc2V0VmFsdWUodHJ1ZSwgeyBlbWl0RXZlbnQ6IHRydWUgfSk7IC8vIHJlc2V0IHRvIE9OXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHJldHVybjtcclxuICAgIH0gICAgXHJcbiAgfVxyXG5cclxuICBpbnNlcnRGZWF0dXJlcyhkYXRhOmFueSkge1xyXG4gICAgbGV0IHBhcmFtcyA9IHtcclxuICAgICAgY2xpZW50SWQ6IHRoaXMuY2xpZW50SWQsXHJcbiAgICAgIHJ1bkFJRmVhdHVyZXM6IGRhdGEsXHJcbiAgICB9O1xyXG5cclxuICAgIHRoaXMuc29wU2VydmljZS51cGRhdGVSdW5BSUZlYXR1cmVzKHBhcmFtcykucGlwZSh0YWtlVW50aWwodGhpcy5kZXRhY2gpKS5zdWJzY3JpYmUoKHJlczphbnkpID0+IHtcclxuICAgICAgaWYocmVzICYmIHJlcy5jb2RlID09IDIwMCl7fVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gICBcclxuICBvblBvcHVwKGltYWdlOnN0cmluZyl7XHJcbiAgICBsZXQgaW1hZ2VSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKFRyYXhwb3B1cENvbXBvbmVudCwgeyBjZW50ZXJlZDogdHJ1ZSwgc2l6ZTogXCJtZFwiIH0pO1xyXG4gICAgaW1hZ2VSZWYuY29tcG9uZW50SW5zdGFuY2UuZGF0YSA9IHt0eXBlOidpbWFnZScsaW1hZ2U6dGhpcy5lbnZpcm9ubWVudC5UcmF4QW5zd2VyQ0ROK2ltYWdlfTtcclxuICAgIGltYWdlUmVmLnJlc3VsdC50aGVuKCgpID0+IHt9KTtcclxuICB9XHJcbiAgXHJcbiAgZGF0ZVJhbmdlKGV2ZW50OmFueSx0eXBlOnN0cmluZyxzZWNJZHg6bnVtYmVyLHFuSWR4Om51bWJlcikge1xyXG4gICAgaWYoZXZlbnQuc3RhcnREYXRlICkge1xyXG4gICAgICBpZih0eXBlID09ICdzdGFydCcpIHtcclxuICAgICAgICAoKCgoKHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5KVxyXG4gICAgICAgICAgLmF0KHNlY0lkeCkgYXMgRm9ybUdyb3VwKVxyXG4gICAgICAgICAgLmdldCgncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5KVxyXG4gICAgICAgICAgLmF0KHFuSWR4KSBhcyBGb3JtR3JvdXApLmdldCgnYW5zd2VycycpIGFzIEZvcm1Hcm91cCkuZ2V0KCdzdGFydERhdGUnKT8uc2V0VmFsdWUoZXZlbnQuc3RhcnREYXRlLmZvcm1hdCgnREQtTU0tWVlZWScpKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICAoKCgoKHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5KVxyXG4gICAgICAgICAgLmF0KHNlY0lkeCkgYXMgRm9ybUdyb3VwKVxyXG4gICAgICAgICAgLmdldCgncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5KVxyXG4gICAgICAgICAgLmF0KHFuSWR4KSBhcyBGb3JtR3JvdXApLmdldCgnYW5zd2VycycpIGFzIEZvcm1Hcm91cCkuZ2V0KCdlbmREYXRlJyk/LnNldFZhbHVlKGV2ZW50LnN0YXJ0RGF0ZS5mb3JtYXQoJ0RELU1NLVlZWVknKSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKiBSZXR1cm5zIHRydWUgd2hlbiBDb25maWd1cmUgQ29tcGxpYW5jZSBTY29yZSBzaG91bGQgYmUgZGlzYWJsZWQuXHJcbiAgICogRGlzYWJsZWQgd2hlbiB2YWxpZGF0ZSByZXNwb25zZSBpcyBlbmFibGVkLCBFWENFUFQgd2hlbiB2YWxpZGF0aW9uVHlwZSBpcyBcIkNhcHR1cmUgSW1hZ2VcIiBhbmQgUnVuIEFJIGlzIGVuYWJsZWQuICovXHJcbiAgaGFzVmFsaWRhdGlvbkVuYWJsZWQoc2VjdGlvbkluZGV4OiBudW1iZXIsIHF1ZXN0aW9uSW5kZXg6IG51bWJlcik6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgYW5zd2VycyA9IHRoaXMuZ2V0Rm9ybUFycmF5UXVlc3Rpb25zQW5zd2VyKHNlY3Rpb25JbmRleCwgcXVlc3Rpb25JbmRleCwgJ2Fuc3dlcnMnKT8udmFsdWU7XHJcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoYW5zd2VycykpIHJldHVybiBmYWxzZTtcclxuICAgIC8vIERpc2FibGUgY29tcGxpYW5jZSB3aGVuIGFueSBhbnN3ZXIgaGFzIHZhbGlkYXRpb24gdGhhdCBpcyBOT1QgKENhcHR1cmUgSW1hZ2UgKyBSdW4gQUkpXHJcbiAgICByZXR1cm4gYW5zd2Vycy5zb21lKChhOiBhbnkpID0+IGEudmFsaWRhdGlvbiAmJiAoYS52YWxpZGF0aW9uVHlwZSAhPT0gJ0NhcHR1cmUgSW1hZ2UnIHx8ICFhLnJ1bkFJKSk7XHJcbiAgfVxyXG5cclxuICBnZXRDb21wbGlhbmNlVG9hc3Qoc2VjSWR4Om51bWJlcixxbklkeDpudW1iZXIsZXZlbnQ6YW55KSB7XHJcbiAgICBpZihldmVudC50YXJnZXQuY2hlY2tlZCkge1xyXG4gICAgICBsZXQgcXVlc3Rpb24gPSAoKCgodGhpcy5DaGVja2xpc3RGb3JtLmdldCgnc2VjdGlvbnMnKSBhcyBGb3JtQXJyYXkpXHJcbiAgICAgICAgICAgLmF0KHNlY0lkeCkgYXMgRm9ybUdyb3VwKVxyXG4gICAgICAgICAgIC5nZXQoJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheSlcclxuICAgICAgICAgICAuYXQocW5JZHgpIGFzIEZvcm1Hcm91cCkuZ2V0KCdhbnN3ZXJUeXBlJyk/LnZhbHVlO1xyXG5cclxuICAgICAgbGV0IGFuc3dlcnMgPSAoKCgodGhpcy5DaGVja2xpc3RGb3JtLmdldCgnc2VjdGlvbnMnKSBhcyBGb3JtQXJyYXkpXHJcbiAgICAgICAgICAgLmF0KHNlY0lkeCkgYXMgRm9ybUdyb3VwKVxyXG4gICAgICAgICAgIC5nZXQoJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheSlcclxuICAgICAgICAgICAuYXQocW5JZHgpIGFzIEZvcm1Hcm91cCkuZ2V0KCdhbnN3ZXJzJyk/LnZhbHVlO1xyXG5cclxuICAgICAgaWYoWydtdWx0aXBsZWNob2ljZW11bHRpcGxlJywnbXVsdGlwbGVjaG9pY2VzaW5nbGUnLCd5ZXMvbm8nXS5pbmNsdWRlcyhxdWVzdGlvbikgJiYgYW5zd2Vycy5zb21lKChlbGU6YW55KSA9PiBlbGUucnVuQUkpKSB7XHJcbiAgICAgICAgdGhpcy50b2FzdC5nZXRXYXJuaW5nVG9hc3QoJ0NvbXBsaWFuY2Ugc2NvcmUgaGFzIGJlZW4gZW5hYmxlZCBmb3IgUnVuIEFJJyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGJ1bGtVcGxvYWRRdWVzdGlvbigpIHtcclxuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oQ2hlY2tsaXN0UG9wdXBDb21wb25lbnQsIHtcclxuICAgICAgY2VudGVyZWQ6IHRydWUsXHJcbiAgICAgIHNpemU6IFwibGdcIixcclxuICAgIH0pO1xyXG4gICAgZGlhbG9nUmVmLmNvbXBvbmVudEluc3RhbmNlLmNoZWNrbGlzdERhdGEgPSB7XHJcbiAgICAgIGNoZWNrTGlzdE5hbWU6IHRoaXMuQ2hlY2tsaXN0Rm9ybS52YWx1ZS5jaGVja2xpc3ROYW1lLFxyXG4gICAgICBjaGVja0xpc3REZXNjcmlwdGlvbjogdGhpcy5DaGVja2xpc3RGb3JtLnZhbHVlLmNoZWNrbGlzdERlc2NyaXB0aW9uLFxyXG4gICAgICBjbGllbnRJZDogdGhpcy5jbGllbnRJZCxcclxuICAgICAgY2hlY2tsaXN0SWQ6IHRoaXMuZWRpdHZhbHVlLFxyXG4gICAgfTtcclxuICAgIGRpYWxvZ1JlZi5yZXN1bHQudGhlbigocmVzKSA9PiB7XHJcbiAgICAgIGlmIChyZXMgPT0gXCJyZWxvYWRcIikge1xyXG4gICAgICAgIHRoaXMuY2hlY2tsaXN0TG9hZGluZyA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5zb3BTZXJ2aWNlXHJcbiAgICAgICAgICAuZ2V0Y29uZmlnKHsgY2hlY2tMaXN0SWQ6IHRoaXMuZWRpdHZhbHVlLCBjbGllbnRJZDogdGhpcy5jbGllbnRJZCB9KVxyXG4gICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGV0YWNoKSlcclxuICAgICAgICAgIC5zdWJzY3JpYmUoXHJcbiAgICAgICAgICAgIChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgIGlmIChyZXMpIHtcclxuICAgICAgICAgICAgICAgIGlmIChyZXMuY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5nZXRvYmplY3QgPSByZXMuZGF0YS5jaGVja0xpc3REZXRhaWxzO1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmZvcm1DaGVja2xpc3RRdWVzdGlvbnMoKTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuY2hlY2tsaXN0TG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNoZWNrbGlzdExvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMuY2hlY2tsaXN0TG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVOdW1iZXIoZXZlbnQ6IGFueSwgc2VjSWR4OiBudW1iZXIsIHFuSWR4OiBudW1iZXIpIHtcclxuICAgIGNvbnN0IGxpbmVhclR5cGUgPSBldmVudD8udGFyZ2V0Py52YWx1ZSBhcyAncGVyY2VudGFnZScgfCAnbnVtYmVyJyB8ICdkZWdyZWUnO1xyXG4gICAgY29uc3QgYW5zd2VycyA9ICgoKCh0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheSlcclxuICAgICAgLmF0KHNlY0lkeCkgYXMgRm9ybUdyb3VwKVxyXG4gICAgICAuZ2V0KCdxdWVzdGlvbnMnKSBhcyBGb3JtQXJyYXkpXHJcbiAgICAgIC5hdChxbklkeCkgYXMgRm9ybUdyb3VwKS5nZXQoJ2Fuc3dlcnMnKSBhcyBGb3JtR3JvdXA7XHJcblxyXG4gICAgY29uc3QgZGVmYXVsdHM6IFJlY29yZDxzdHJpbmcsIHsgcmFuZ2VTdGFydDogbnVtYmVyOyByYW5nZUVuZDogbnVtYmVyIH0+ID0ge1xyXG4gICAgICBwZXJjZW50YWdlOiB7IHJhbmdlU3RhcnQ6IDAsIHJhbmdlRW5kOiAxMDAgfSxcclxuICAgICAgbnVtYmVyOiB7IHJhbmdlU3RhcnQ6IDAsIHJhbmdlRW5kOiAxMDAgfSxcclxuICAgICAgZGVncmVlOiB7IHJhbmdlU3RhcnQ6IDAsIHJhbmdlRW5kOiAxMDAgfSwgLy8gZGVmYXVsdCAwOyB1c2VyIGNhbiBlbnRlciBkb3duIHRvIC0yNzMuMTVcclxuICAgIH07XHJcbiAgICBjb25zdCB7IHJhbmdlU3RhcnQsIHJhbmdlRW5kIH0gPSBkZWZhdWx0c1tsaW5lYXJUeXBlXSA/PyBkZWZhdWx0cy5udW1iZXI7XHJcblxyXG4gICAgYW5zd2Vycy5nZXQoJ3JhbmdlU3RhcnQnKT8uc2V0VmFsdWUocmFuZ2VTdGFydCk7XHJcbiAgICBhbnN3ZXJzLmdldCgncmFuZ2VFbmQnKT8uc2V0VmFsdWUocmFuZ2VFbmQpO1xyXG5cclxuICAgIGNvbnN0IG1pblZhbHVlID0gYW5zd2Vycy5nZXQoJ21pblZhbHVlJyk/LnZhbHVlO1xyXG4gICAgY29uc3QgbWF4VmFsdWUgPSBhbnN3ZXJzLmdldCgnbWF4VmFsdWUnKT8udmFsdWU7XHJcbiAgICBpZiAobWluVmFsdWUgIT0gbnVsbCAmJiBtaW5WYWx1ZSAhPT0gJycgJiYgTnVtYmVyKG1pblZhbHVlKSA8IHJhbmdlU3RhcnQpIHtcclxuICAgICAgYW5zd2Vycy5nZXQoJ21pblZhbHVlJyk/LnNldFZhbHVlKHJhbmdlU3RhcnQpO1xyXG4gICAgfSBlbHNlIGlmIChtaW5WYWx1ZSAhPSBudWxsICYmIG1pblZhbHVlICE9PSAnJyAmJiBOdW1iZXIobWluVmFsdWUpID4gcmFuZ2VFbmQpIHtcclxuICAgICAgYW5zd2Vycy5nZXQoJ21pblZhbHVlJyk/LnNldFZhbHVlKHJhbmdlRW5kKTtcclxuICAgIH1cclxuICAgIGlmIChtYXhWYWx1ZSAhPSBudWxsICYmIG1heFZhbHVlICE9PSAnJyAmJiBOdW1iZXIobWF4VmFsdWUpIDwgcmFuZ2VTdGFydCkge1xyXG4gICAgICBhbnN3ZXJzLmdldCgnbWF4VmFsdWUnKT8uc2V0VmFsdWUocmFuZ2VTdGFydCk7XHJcbiAgICB9IGVsc2UgaWYgKG1heFZhbHVlICE9IG51bGwgJiYgbWF4VmFsdWUgIT09ICcnICYmIE51bWJlcihtYXhWYWx1ZSkgPiByYW5nZUVuZCkge1xyXG4gICAgICBhbnN3ZXJzLmdldCgnbWF4VmFsdWUnKT8uc2V0VmFsdWUocmFuZ2VFbmQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25SYW5nZVZhbHVlSW5wdXQoZXZlbnQ6IEV2ZW50LCBzZWNJZHg6IG51bWJlciwgcW5JZHg6IG51bWJlciwgY29udHJvbE5hbWU6ICdtaW5WYWx1ZScgfCAnbWF4VmFsdWUnKSB7XHJcbiAgICBjb25zdCBsaW5lYXJUeXBlID0gdGhpcy5nZXRBbnN3ZXJGb3JtR3JvdXBfRm9ybUNvbnRyb2woc2VjSWR4LCBxbklkeCwgJ2xpbmVhclR5cGUnKT8udmFsdWU7XHJcbiAgICBpZiAobGluZWFyVHlwZSAhPT0gJ2RlZ3JlZScpIHJldHVybjtcclxuXHJcbiAgICBjb25zdCBpbnB1dCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50O1xyXG4gICAgY29uc3QgZmlsdGVyZWQgPSBpbnB1dC52YWx1ZS5yZXBsYWNlKC9bXlxcZC4tXS9nLCAnJykucmVwbGFjZSgvKD8hXiktL2csICcnKS5yZXBsYWNlKC8oXFwuLiopXFwuL2csICckMScpO1xyXG4gICAgaWYgKGZpbHRlcmVkICE9PSBpbnB1dC52YWx1ZSkge1xyXG4gICAgICBpbnB1dC52YWx1ZSA9IGZpbHRlcmVkO1xyXG4gICAgICBjb25zdCBhbnN3ZXJzID0gKCgoKHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5KVxyXG4gICAgICAgIC5hdChzZWNJZHgpIGFzIEZvcm1Hcm91cClcclxuICAgICAgICAuZ2V0KCdxdWVzdGlvbnMnKSBhcyBGb3JtQXJyYXkpXHJcbiAgICAgICAgLmF0KHFuSWR4KSBhcyBGb3JtR3JvdXApLmdldCgnYW5zd2VycycpIGFzIEZvcm1Hcm91cDtcclxuICAgICAgY29uc3QgdmFsID0gZmlsdGVyZWQgPT09ICcnIHx8IGZpbHRlcmVkID09PSAnLScgPyBmaWx0ZXJlZCA6IE51bWJlcihmaWx0ZXJlZCk7XHJcbiAgICAgIGFuc3dlcnMuZ2V0KGNvbnRyb2xOYW1lKT8uc2V0VmFsdWUodmFsLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjbGFtcFJhbmdlSW5wdXQoc2VjSWR4OiBudW1iZXIsIHFuSWR4OiBudW1iZXIsIGNvbnRyb2xOYW1lOiAnbWluVmFsdWUnIHwgJ21heFZhbHVlJykge1xyXG4gICAgY29uc3QgYW5zd2VycyA9ICgoKCh0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheSlcclxuICAgICAgLmF0KHNlY0lkeCkgYXMgRm9ybUdyb3VwKVxyXG4gICAgICAuZ2V0KCdxdWVzdGlvbnMnKSBhcyBGb3JtQXJyYXkpXHJcbiAgICAgIC5hdChxbklkeCkgYXMgRm9ybUdyb3VwKS5nZXQoJ2Fuc3dlcnMnKSBhcyBGb3JtR3JvdXA7XHJcblxyXG4gICAgY29uc3QgcmFuZ2VTdGFydCA9IGFuc3dlcnMuZ2V0KCdyYW5nZVN0YXJ0Jyk/LnZhbHVlO1xyXG4gICAgY29uc3QgcmFuZ2VFbmQgPSBhbnN3ZXJzLmdldCgncmFuZ2VFbmQnKT8udmFsdWU7XHJcblxyXG4gICAgaWYgKHJhbmdlU3RhcnQgPT0gbnVsbCB8fCByYW5nZUVuZCA9PSBudWxsKSByZXR1cm47XHJcblxyXG4gICAgY29uc3QgY29udHJvbCA9IGFuc3dlcnMuZ2V0KGNvbnRyb2xOYW1lKTtcclxuICAgIGNvbnN0IHZhbHVlID0gY29udHJvbD8udmFsdWU7XHJcblxyXG4gICAgaWYgKHZhbHVlID09PSAnJyB8fCB2YWx1ZSA9PT0gJy0nIHx8ICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInICYmIE51bWJlci5pc05hTih2YWx1ZSkpKSB7XHJcbiAgICAgIGNvbnRyb2w/LnNldFZhbHVlKHJhbmdlU3RhcnQpO1xyXG4gICAgfSBlbHNlIGlmICh2YWx1ZSAhPSBudWxsKSB7XHJcbiAgICAgIGNvbnN0IG51bVZhbHVlID0gTnVtYmVyKHZhbHVlKTtcclxuICAgICAgaWYgKCFOdW1iZXIuaXNOYU4obnVtVmFsdWUpKSB7XHJcbiAgICAgICAgaWYgKG51bVZhbHVlIDwgcmFuZ2VTdGFydCkge1xyXG4gICAgICAgICAgY29udHJvbD8uc2V0VmFsdWUocmFuZ2VTdGFydCk7XHJcbiAgICAgICAgfSBlbHNlIGlmIChudW1WYWx1ZSA+IHJhbmdlRW5kKSB7XHJcbiAgICAgICAgICBjb250cm9sPy5zZXRWYWx1ZShyYW5nZUVuZCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbnRyb2w/LnNldFZhbHVlKHJhbmdlU3RhcnQpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB1cGRhdGVMaW1pdChldmVudDphbnksc2VjSWR4Om51bWJlcixxbklkeDpudW1iZXIpIHtcclxuICAgICgoKCgodGhpcy5DaGVja2xpc3RGb3JtLmdldCgnc2VjdGlvbnMnKSBhcyBGb3JtQXJyYXkpXHJcbiAgICAgICAgICAuYXQoc2VjSWR4KSBhcyBGb3JtR3JvdXApXHJcbiAgICAgICAgICAuZ2V0KCdxdWVzdGlvbnMnKSBhcyBGb3JtQXJyYXkpXHJcbiAgICAgICAgICAuYXQocW5JZHgpIGFzIEZvcm1Hcm91cCkuZ2V0KCdhbnN3ZXJzJykgYXMgRm9ybUdyb3VwKS5nZXQoJ2ltYWdlTGltaXQnKT8uc2V0VmFsdWUoMCk7XHJcbiAgICAoKCgoKHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5KVxyXG4gICAgICAgICAgLmF0KHNlY0lkeCkgYXMgRm9ybUdyb3VwKVxyXG4gICAgICAgICAgLmdldCgncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5KVxyXG4gICAgICAgICAgLmF0KHFuSWR4KSBhcyBGb3JtR3JvdXApLmdldCgnYW5zd2VycycpIGFzIEZvcm1Hcm91cCkuZ2V0KCd2aWRlb0xpbWl0Jyk/LnNldFZhbHVlKDApO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiY2FyZFwiICpuZ0lmPVwiY2hlY2tsaXN0TG9hZGluZ1wiPlxyXG4gICAgPGRpdiBjbGFzcz1cInJvdyBsb2FkZXIgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInNoaW1tZXJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSB0aXRsZVwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGxpbmtcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBkZXNjcmlwdGlvblwiPjwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic2hpbW1lclwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwid3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIHRpdGxlXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgbGlua1wiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGRlc2NyaXB0aW9uXCI+PC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG48ZGl2ICpuZ0lmPVwiIWNoZWNrbGlzdExvYWRpbmdcIiBpZD1cImNoZWNrbGlzdENyZWF0ZVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmRcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyIFtmb3JtR3JvdXBdPVwiQ2hlY2tsaXN0Rm9ybVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXIgYm9yZGVyLTAgcHQtMyBwYi0zXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IHctMTAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC05XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cImNhcmQtdGl0bGUgYWxpZ24taXRlbXMtY2VudGVyIG10LTMgbWItMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiByb3V0ZXJMaW5rPVwiL21hbmFnZS90cmF4L2NoZWNrbGlzdFwiIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4tb3V0bGluZSBtZS01IHBzLTIgcHgtM1wiPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTUuODMzMiAxMC4wMDAzSDQuMTY2NU00LjE2NjUgMTAuMDAwM0w5Ljk5OTg0IDE1LjgzMzdNNC4xNjY1IDEwLjAwMDNMOS45OTk4NCA0LjE2Njk5XCIgc3Ryb2tlPVwiIzM0NDA1NFwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC1jb2x1bW4gdy04MDBweFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJlZGl0YWJsZWNvbnRlbnQgbWItNCB3LTEwMFwiPjxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiY2hlY2tsaXN0IHBsYWluLWlucHV0XCIgI2NoZWNrbGlzdE5hbWUgcGxhY2Vob2xkZXI9XCJFbnRlciBDaGVja2xpc3QgTmFtZVwiIGZvcm1Db250cm9sTmFtZT1cImNoZWNrbGlzdE5hbWVcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZWRpdGFibGVjb250ZW50IHctMTAwXCI+PGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJjaGVja2xpc3REZXNjcmlwdGlvbiBwbGFpbi1pbnB1dFwiICNjaGVja2xpc3REZXNjcmlwdGlvbiBwbGFjZWhvbGRlcj1cIkVudGVyIENoZWNrbGlzdCBEZXNjcmlwdGlvblwiIGZvcm1Db250cm9sTmFtZT1cImNoZWNrbGlzdERlc2NyaXB0aW9uXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9oMz5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBteS02IGp1c3RpZnktY29udGVudC1lbmRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIHBvc2l0aW9uLXJlbGF0aXZlIG15LTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBteC0yIGJ0bi1vdXRsaW5lIGJ0bi1vdXRsaW5lLWRlZmF1bHQgcm91bmRlZC0zIHRleHQtbm93cmFwIGJvcmRlci12YWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInNob3d2YWx1ZSA9PT0gJ2FkZCdcIiAoY2xpY2spPVwic2F2ZUNoZWNrbGlzdFF1ZXN0aW9ucygnY29uZmlndXJlJylcIj48c3BhbiBjbGFzcz1cIm1zLTJcIj5Db25maWd1cmU8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tZGVmYXVsdCBteC0yIGJ0bi1vdXRsaW5lIGJ0bi1vdXRsaW5lLWRlZmF1bHQgcm91bmRlZC0zIHRleHQtbm93cmFwIGJvcmRlci12YWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInNob3d2YWx1ZSA9PT0gJ2FkZCdcIiAoY2xpY2spPVwic2F2ZUFzRHJhZnRQb3AoJ2NyZWF0ZScpXCI+PHNwYW4gY2xhc3M9XCJtcy0yXCI+U2F2ZSBhcyBEcmFmdDwvc3Bhbj4gPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBteC0yIGJ0bi1vdXRsaW5lIGJ0bi1vdXRsaW5lLWRlZmF1bHQgcm91bmRlZC0zIHRleHQtbm93cmFwIGJvcmRlci12YWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInNob3d2YWx1ZSA9PT0gJ2VkaXQnXCIgKGNsaWNrKT1cInVwZGF0ZUNoZWNrbGlzdFF1ZXN0aW9ucygnY29uZmlndXJlJylcIj48c3BhbiBjbGFzcz1cIm1zLTJcIj5Db25maWd1cmU8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLWRlZmF1bHQgbXgtMiBidG4tb3V0bGluZSBidG4tb3V0bGluZS1kZWZhdWx0IHJvdW5kZWQtMyB0ZXh0LW5vd3JhcCBib3JkZXItdmFsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJzaG93dmFsdWUgPT09ICdlZGl0J1wiIChjbGljayk9XCJzYXZlQXNEcmFmdFBvcCgndXBkYXRlJylcIj48c3BhbiBjbGFzcz1cIm1zLTJcIj5TYXZlIGFzIERyYWZ0PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgICBcclxuICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTMgbXQtMlwiPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyIFtmb3JtR3JvdXBdPVwiQ2hlY2tsaXN0Rm9ybVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24tbGVmdCBjYXJkIHB4LTcgcHktN1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmcy0xOHB4IGZ3LTYwMCB0ZXh0LWxlZnQgbWItMyBjb25jaXNlLWNoZWNrbGlzdG5hbWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3tnZXRGb3JtQ29udHJvbCgnY2hlY2tsaXN0TmFtZScpLnZhbHVlID8gZ2V0Rm9ybUNvbnRyb2woJ2NoZWNrbGlzdE5hbWUnKS52YWx1ZSA6ICdDaGVja2xpc3ROYW1lJ319XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxlZnQtcGFuZWwtY29udGFpbmVyXCIgZm9ybUFycmF5TmFtZT1cInNlY3Rpb25zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IHNlY3Rpb24gb2YgZ2V0U2VjdGlvbkZvcm1BcnJheSgpLmNvbnRyb2xzO2xldCBpPWluZGV4O1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbZm9ybUdyb3VwTmFtZV09XCJpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBzZWN0aW9uIGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZnMtMThweCBmdy1ib2xkIGVkaXRhYmxlY29udGVudC1sZWZ0XCI+e3tcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldFNlY3Rpb25Gb3JtQ29udHJvbChpLCduYW1lJyk/LnZhbHVlID09PSAnJyA/IFwiU2VjdGlvbiBcIiA6ICcnfX17e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0U2VjdGlvbkZvcm1Db250cm9sKGksJ25hbWUnKT8udmFsdWUgPyBnZXRTZWN0aW9uRm9ybUNvbnRyb2woaSwnbmFtZScpPy52YWx1ZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBnZXRTZWN0aW9uRm9ybUNvbnRyb2woaSwnc2VjdGlvbk51bWJlcicpPy52YWx1ZX19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxociBjbGFzcz1cIm14LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyAoY2xpY2spPVwiZGVsZXRlU2VjdGlvbihpKVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjM1XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjM1XCIgdmlld0JveD1cIjAgMCAxOCAxOFwiIG1hdFRvb2x0aXA9XCJEZWxldGUgc2VjdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRUb29sdGlwUG9zaXRpb249XCJhYm92ZVwiIG1hdFRvb2x0aXBDbGFzcz1cImN1c3RvbS10ZXN0XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0yLjI1IDQuNUgzLjc1TTMuNzUgNC41SDE1Ljc1TTMuNzUgNC41VjE1QzMuNzUgMTUuMzk3OCAzLjkwODA0IDE1Ljc3OTQgNC4xODkzNCAxNi4wNjA3QzQuNDcwNjQgMTYuMzQyIDQuODUyMTggMTYuNSA1LjI1IDE2LjVIMTIuNzVDMTMuMTQ3OCAxNi41IDEzLjUyOTQgMTYuMzQyIDEzLjgxMDcgMTYuMDYwN0MxNC4wOTIgMTUuNzc5NCAxNC4yNSAxNS4zOTc4IDE0LjI1IDE1VjQuNUgzLjc1Wk02IDQuNVYzQzYgMi42MDIxOCA2LjE1ODA0IDIuMjIwNjQgNi40MzkzNCAxLjkzOTM0QzYuNzIwNjQgMS42NTgwNCA3LjEwMjE4IDEuNSA3LjUgMS41SDEwLjVDMTAuODk3OCAxLjUgMTEuMjc5NCAxLjY1ODA0IDExLjU2MDcgMS45MzkzNEMxMS44NDIgMi4yMjA2NCAxMiAyLjYwMjE4IDEyIDNWNC41TTcuNSA4LjI1VjEyLjc1TTEwLjUgOC4yNVYxMi43NVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuNFwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgKGNsaWNrKT1cImFjY29yZGlhbihpKVwiIFtuZ0NsYXNzXT1cInsncm90YXRlJyA6IHNob3cgIT09IGl9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjM1XCIgaGVpZ2h0PVwiMzVcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTUgNy41TDEwIDEyLjVMMTUgNy41XCIgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzaG93PT09aVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNka0Ryb3BMaXN0IChjZGtEcm9wTGlzdERyb3BwZWQpPVwiZHJhZ0Ryb3AoaSwkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjZGtEcm9wTGlzdERhdGFdPVwiZ2V0Rm9ybUFycmF5UXVlc3Rpb25zKGkpLmNvbnRyb2xzXCIgY2xhc3M9XCJxdWVzdGlvbi1sZWZ0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIGZvcm1BcnJheU5hbWU9XCJxdWVzdGlvbnNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBxdWVzdGlvbiBvZiBnZXRGb3JtQXJyYXlRdWVzdGlvbnMoaSkuY29udHJvbHM7bGV0IGo9aW5kZXg7XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJteS0yIGN1cnNvci1wb2ludGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwicXVlc3Rpb24uZ2V0KCdhY3RpdmUnKT8udmFsdWUgPT09IHRydWUgPyAnYWN0aXZlLXF1ZXN0aW9uJyA6ICdxLWJ0bidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZGtEcmFnIChtb3VzZWVudGVyKT1cInNldEFjdGl2ZVF1ZXN0aW9uKGksaiwxKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzY3JvbGxUb1F1ZXN0aW9uKGksaik7XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vdXNlbGVhdmUpPVwic2V0QWN0aXZlUXVlc3Rpb24oaSxqLC0xKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIFtmb3JtR3JvdXBOYW1lXT1cImpcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb25jaXNlLXF1ZXN0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tnZXRRdWVzdGlvbkZvcm1Db250cm9sKGksaiwncW5hbWUnKT8udmFsdWUgPyAnJyA6IFwiUXVlc3Rpb25cIn19e3sgZ2V0UXVlc3Rpb25Gb3JtQ29udHJvbChpLGosJ3FuYW1lJyk/LnZhbHVlID9cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRRdWVzdGlvbkZvcm1Db250cm9sKGksaiwncW5hbWUnKT8udmFsdWUgOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldFF1ZXN0aW9uRm9ybUNvbnRyb2woaSxqLCdxbm8nKT8udmFsdWUgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIFxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctOSBtdC0yXCI+XHJcbiAgICAgICAgICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwiQ2hlY2tsaXN0Rm9ybVwiICNmb3JtUmVmPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQgcHgtN1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImNoZWNrbGlzdC1jYXJkIHB5LTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJtdC0yXCIgc3R5bGU9XCJ0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJFbnRlciBjaGVja2xpc3QgbmFtZSBoZXJlXCIgZm9ybUNvbnRyb2xOYW1lPVwiY2hlY2tsaXN0TmFtZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cIm10LTRcIiBwbGFjZWhvbGRlcj1cIkVudGVyIGNoZWNrbGlzdCBkZXNjcmlwdGlvbiBoZXJlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImNoZWNrbGlzdERlc2NyaXB0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgZm9ybUFycmF5TmFtZT1cInNlY3Rpb25zXCIgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbkFyZWEgbXQtNVwiICpuZ0Zvcj1cImxldCBzZWN0aW9uIG9mIGdldFNlY3Rpb25Gb3JtQXJyYXkoKS5jb250cm9scztsZXQgaT1pbmRleDtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW2Zvcm1Hcm91cE5hbWVdPVwiaVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWJldHdlZW5cIj5cclxuICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZnMtMThweCBmdy1ib2xkIGVkaXRhYmxlY29udGVudFwiPjxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwicGxhaW4taW5wdXRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNzZWN0aW9uTmFtZSAoY2hhbmdlKT1cInVwZGF0ZUlucHV0VmFsdWUoaSxzZWN0aW9uTmFtZS52YWx1ZSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cIm5hbWVcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGhyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPVwibWwtNVwiIChjbGljayk9XCJkZWxldGVTZWN0aW9uKGkpXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiBtYXRUb29sdGlwPVwiRGVsZXRlIHNlY3Rpb25cIiBtYXRUb29sdGlwUG9zaXRpb249XCJhYm92ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRUb29sdGlwQ2xhc3M9XCJjdXN0b20tdGVzdFwiIHZpZXdCb3g9XCIwIDAgMTggMThcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTIuMjUgNC41SDMuNzVNMy43NSA0LjVIMTUuNzVNMy43NSA0LjVWMTVDMy43NSAxNS4zOTc4IDMuOTA4MDQgMTUuNzc5NCA0LjE4OTM0IDE2LjA2MDdDNC40NzA2NCAxNi4zNDIgNC44NTIxOCAxNi41IDUuMjUgMTYuNUgxMi43NUMxMy4xNDc4IDE2LjUgMTMuNTI5NCAxNi4zNDIgMTMuODEwNyAxNi4wNjA3QzE0LjA5MiAxNS43Nzk0IDE0LjI1IDE1LjM5NzggMTQuMjUgMTVWNC41SDMuNzVaTTYgNC41VjNDNiAyLjYwMjE4IDYuMTU4MDQgMi4yMjA2NCA2LjQzOTM0IDEuOTM5MzRDNi43MjA2NCAxLjY1ODA0IDcuMTAyMTggMS41IDcuNSAxLjVIMTAuNUMxMC44OTc4IDEuNSAxMS4yNzk0IDEuNjU4MDQgMTEuNTYwNyAxLjkzOTM0QzExLjg0MiAyLjIyMDY0IDEyIDIuNjAyMTggMTIgM1Y0LjVNNy41IDguMjVWMTIuNzVNMTAuNSA4LjI1VjEyLjc1XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS40XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyAoY2xpY2spPVwiYWNjb3JkaWFuKGkpXCIgW25nQ2xhc3NdPVwieydyb3RhdGUnIDogc2hvdyAhPT0gaX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNNSA3LjVMMTAgMTIuNUwxNSA3LjVcIiBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInF1ZXN0aW9uc0FyZWFcIiAqbmdJZj1cInNob3cgPT09IGlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBmb3JtQXJyYXlOYW1lPVwicXVlc3Rpb25zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiUXVlc3Rpb24tc2VjIG10LTEwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgcXVlc3Rpb24gb2YgZ2V0Rm9ybUFycmF5UXVlc3Rpb25zKGkpLmNvbnRyb2xzO2xldCBqID0gaW5kZXg7XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW91c2VlbnRlcik9XCJzZXRBY3RpdmVRdWVzdGlvbihpLGosMSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb3VzZWxlYXZlKT1cInNldEFjdGl2ZVF1ZXN0aW9uKGksaiwtMSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIFtmb3JtR3JvdXBOYW1lXT1cImpcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmcy0xOHB4IHB4LTMgZWRpdGFibGVjb250ZW50IHF1ZXN0aW9udGl0bGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJjdXJzb3I6IGRlZmF1bHQ7XCI+IFF1ZXN0aW9uIHt7aisxfX08L3NwYW4+XHJcbiAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrbGlzdC1jYXJkIHBiLTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0YXJlYSBjbGFzcz1cImZvcm0tY29udHJvbCBmb3JtLWNvbnRyb2wtc29saWRcIiByb3dzPVwiMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIiBjbGFzcz1cIm10LTBcIiBbaWRdPVwiJ3EtJyArIGkgKyAnLScgKyBqXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIkVudGVyIHF1ZXN0aW9uIGhlcmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInFuYW1lXCI+PC90ZXh0YXJlYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInF1ZXN0aW9uLmdldCgncW5hbWUnKT8uaW52YWxpZCAmJiBxdWVzdGlvbi5nZXQoJ3FuYW1lJyk/LnRvdWNoZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBzdHlsZT1cImNvbG9yOiByZWQ7XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJxdWVzdGlvbi5nZXQoJ3FuYW1lJyk/Lmhhc0Vycm9yKCdyZXF1aXJlZCcpXCI+KlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRdWVzdGlvbiBpcyByZXF1aXJlZC48L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIiFbJ2Rlc2NyaXB0aXZlSW1hZ2UnLCdpbWFnZScsJ211bHRpcGxlSW1hZ2UnXS5pbmNsdWRlcyhxdWVzdGlvbi5nZXQoJ2Fuc3dlclR5cGUnKT8udmFsdWUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTQgdy05MCB0ZXh0LWNlbnRlclwiICpuZ0Zvcj1cImxldCBpbWFnZSBvZiBxdWVzdGlvbi5nZXQoJ211bHRpUXVlc3Rpb25SZWZlcmVuY2VJbWFnZScpPy52YWx1ZTsgbGV0IG0gPSBpbmRleFwiIHN0eWxlPVwicG9zaXRpb246IHJlbGF0aXZlO1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpbWFnZT8uaW1hZ2VVUkxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImltYWdlLWNvbnRhaW5lciByZWZfaW1nX2NvbnQgbWItNCBtdC01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwie3tlbnZpcm9ubWVudC5UcmF4QW5zd2VyQ0ROfX17e2ltYWdlLmltYWdlVVJMfX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCI5MCVcIiBoZWlnaHQ9XCIzMDBweFwiIGNsYXNzPVwiYXV0by1hZGp1c3RcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0PVwiVGFuZ28gRXllXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvdmVybGF5LWljb25zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJxdWVzdGlvbi5nZXQoJ2Rpc2FibGVSdW5BSScpPy52YWx1ZSA/ICcnIDogb25Qb3B1cChpbWFnZS5pbWFnZVVSTClcIiBuZ2JUb29sdGlwPVwiRXhwYW5kXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiNDBcIiBoZWlnaHQ9XCI0MFwiIHZpZXdCb3g9XCIwIDAgNDAgNDBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgZmlsdGVyPVwidXJsKCNmaWx0ZXIwX2RfMTQ1NTdfNjI1MTMpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiMlwiIHk9XCIxXCIgd2lkdGg9XCIzNlwiIGhlaWdodD1cIjM2XCIgcng9XCI4XCIgZmlsbD1cIndoaXRlXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjIuNVwiIHk9XCIxLjVcIiB3aWR0aD1cIjM1XCIgaGVpZ2h0PVwiMzVcIiByeD1cIjcuNVwiIHN0cm9rZT1cIiNEMEQ1RERcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTIyLjUgMTEuNUgyNy41TTI3LjUgMTEuNVYxNi41TTI3LjUgMTEuNUwyMS42NjY3IDE3LjMzMzNNMTcuNSAyNi41SDEyLjVNMTIuNSAyNi41VjIxLjVNMTIuNSAyNi41TDE4LjMzMzMgMjAuNjY2N1wiIHN0cm9rZT1cIiMzNDQwNTRcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsdGVyIGlkPVwiZmlsdGVyMF9kXzE0NTU3XzYyNTEzXCIgeD1cIjBcIiB5PVwiMFwiIHdpZHRoPVwiNDBcIiBoZWlnaHQ9XCI0MFwiIGZpbHRlclVuaXRzPVwidXNlclNwYWNlT25Vc2VcIiBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM9XCJzUkdCXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVGbG9vZCBmbG9vZC1vcGFjaXR5PVwiMFwiIHJlc3VsdD1cIkJhY2tncm91bmRJbWFnZUZpeFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUNvbG9yTWF0cml4IGluPVwiU291cmNlQWxwaGFcIiB0eXBlPVwibWF0cml4XCIgdmFsdWVzPVwiMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMTI3IDBcIiByZXN1bHQ9XCJoYXJkQWxwaGFcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVPZmZzZXQgZHk9XCIxXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlR2F1c3NpYW5CbHVyIHN0ZERldmlhdGlvbj1cIjFcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVDb2xvck1hdHJpeCB0eXBlPVwibWF0cml4XCIgdmFsdWVzPVwiMCAwIDAgMCAwLjA2Mjc0NTEgMCAwIDAgMCAwLjA5NDExNzYgMCAwIDAgMCAwLjE1Njg2MyAwIDAgMCAwLjA1IDBcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVCbGVuZCBtb2RlPVwibm9ybWFsXCIgaW4yPVwiQmFja2dyb3VuZEltYWdlRml4XCIgcmVzdWx0PVwiZWZmZWN0MV9kcm9wU2hhZG93XzE0NTU3XzYyNTEzXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQmxlbmQgbW9kZT1cIm5vcm1hbFwiIGluPVwiU291cmNlR3JhcGhpY1wiIGluMj1cImVmZmVjdDFfZHJvcFNoYWRvd18xNDU1N182MjUxM1wiIHJlc3VsdD1cInNoYXBlXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9maWx0ZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJkLW5vbmVcIiBbaWRdPVwiJ2ZpbGV1cGxvYWRyZWZfMScraStqK21cIiB0eXBlPVwiZmlsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImFuc3dlckZpbGVcIiBhY2NlcHQ9XCJpbWFnZS9wbmcsIGltYWdlL2pwZWdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJxdWVzdGlvbi5nZXQoJ2Rpc2FibGVSdW5BSScpPy52YWx1ZSA/ICRldmVudC5wcmV2ZW50RGVmYXVsdCgpIDogbnVsbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJxdWVzdGlvbi5nZXQoJ2Rpc2FibGVSdW5BSScpPy52YWx1ZSA/ICcnIDogbG9hZEltYWdlRnJvbURldmljZShpLHJlZkltZ1FJZHgsJGV2ZW50LC0xLCdtdWx0aVF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UnLG0pXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwicmVmSW1nUUlkeD1qO1wiIFtmb3JdPVwiJ2ZpbGV1cGxvYWRyZWZfMScraStqK21cIiBuZ2JUb29sdGlwPVwiUmV1cGxvYWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCI0MFwiIGhlaWdodD1cIjQwXCIgdmlld0JveD1cIjAgMCA0MCA0MFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBmaWx0ZXI9XCJ1cmwoI2ZpbHRlcjBfZF8xNDU1N182MjUyMilcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCIyXCIgeT1cIjFcIiB3aWR0aD1cIjM2XCIgaGVpZ2h0PVwiMzZcIiByeD1cIjhcIiBmaWxsPVwid2hpdGVcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiMi41XCIgeT1cIjEuNVwiIHdpZHRoPVwiMzVcIiBoZWlnaHQ9XCIzNVwiIHJ4PVwiNy41XCIgc3Ryb2tlPVwiI0QwRDVERFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMjcuNSAyMS41VjI0LjgzMzNDMjcuNSAyNS4yNzU0IDI3LjMyNDQgMjUuNjk5MyAyNy4wMTE4IDI2LjAxMThDMjYuNjk5MyAyNi4zMjQ0IDI2LjI3NTQgMjYuNSAyNS44MzMzIDI2LjVIMTQuMTY2N0MxMy43MjQ2IDI2LjUgMTMuMzAwNyAyNi4zMjQ0IDEyLjk4ODIgMjYuMDExOEMxMi42NzU2IDI1LjY5OTMgMTIuNSAyNS4yNzU0IDEyLjUgMjQuODMzM1YyMS41TTI0LjE2NjcgMTUuNjY2N0wyMCAxMS41TTIwIDExLjVMMTUuODMzMyAxNS42NjY3TTIwIDExLjVWMjEuNVwiIHN0cm9rZT1cIiMzNDQwNTRcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsdGVyIGlkPVwiZmlsdGVyMF9kXzE0NTU3XzYyNTIyXCIgeD1cIjBcIiB5PVwiMFwiIHdpZHRoPVwiNDBcIiBoZWlnaHQ9XCI0MFwiIGZpbHRlclVuaXRzPVwidXNlclNwYWNlT25Vc2VcIiBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM9XCJzUkdCXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVGbG9vZCBmbG9vZC1vcGFjaXR5PVwiMFwiIHJlc3VsdD1cIkJhY2tncm91bmRJbWFnZUZpeFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUNvbG9yTWF0cml4IGluPVwiU291cmNlQWxwaGFcIiB0eXBlPVwibWF0cml4XCIgdmFsdWVzPVwiMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMTI3IDBcIiByZXN1bHQ9XCJoYXJkQWxwaGFcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVPZmZzZXQgZHk9XCIxXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlR2F1c3NpYW5CbHVyIHN0ZERldmlhdGlvbj1cIjFcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVDb2xvck1hdHJpeCB0eXBlPVwibWF0cml4XCIgdmFsdWVzPVwiMCAwIDAgMCAwLjA2Mjc0NTEgMCAwIDAgMCAwLjA5NDExNzYgMCAwIDAgMCAwLjE1Njg2MyAwIDAgMCAwLjA1IDBcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVCbGVuZCBtb2RlPVwibm9ybWFsXCIgaW4yPVwiQmFja2dyb3VuZEltYWdlRml4XCIgcmVzdWx0PVwiZWZmZWN0MV9kcm9wU2hhZG93XzE0NTU3XzYyNTIyXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQmxlbmQgbW9kZT1cIm5vcm1hbFwiIGluPVwiU291cmNlR3JhcGhpY1wiIGluMj1cImVmZmVjdDFfZHJvcFNoYWRvd18xNDU1N182MjUyMlwiIHJlc3VsdD1cInNoYXBlXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9maWx0ZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJxdWVzdGlvbi5nZXQoJ2Rpc2FibGVSdW5BSScpPy52YWx1ZSA/ICcnIDogY2xlYXJSZWZlcmVuY2VJbWFnZShpLGosLTEsbSwnbXVsdGlRdWVzdGlvblJlZmVyZW5jZUltYWdlJyk7XCIgbmdiVG9vbHRpcD1cIkRlbGV0ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjQwXCIgaGVpZ2h0PVwiNDBcIiB2aWV3Qm94PVwiMCAwIDQwIDQwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGZpbHRlcj1cInVybCgjZmlsdGVyMF9kXzE0NTU3XzYyNTE0KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjJcIiB5PVwiMVwiIHdpZHRoPVwiMzZcIiBoZWlnaHQ9XCIzNlwiIHJ4PVwiOFwiIGZpbGw9XCJ3aGl0ZVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCIyLjVcIiB5PVwiMS41XCIgd2lkdGg9XCIzNVwiIGhlaWdodD1cIjM1XCIgcng9XCI3LjVcIiBzdHJva2U9XCIjRDBENUREXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xMi41IDEzLjk5NzRIMTQuMTY2N00xNC4xNjY3IDEzLjk5NzRIMjcuNU0xNC4xNjY3IDEzLjk5NzRWMjUuNjY0MUMxNC4xNjY3IDI2LjEwNjEgMTQuMzQyMyAyNi41MyAxNC42NTQ4IDI2Ljg0MjZDMTQuOTY3NCAyNy4xNTUxIDE1LjM5MTMgMjcuMzMwNyAxNS44MzMzIDI3LjMzMDdIMjQuMTY2N0MyNC42MDg3IDI3LjMzMDcgMjUuMDMyNiAyNy4xNTUxIDI1LjM0NTIgMjYuODQyNkMyNS42NTc3IDI2LjUzIDI1LjgzMzMgMjYuMTA2MSAyNS44MzMzIDI1LjY2NDFWMTMuOTk3NEgxNC4xNjY3Wk0xNi42NjY3IDEzLjk5NzRWMTIuMzMwN0MxNi42NjY3IDExLjg4ODcgMTYuODQyMyAxMS40NjQ4IDE3LjE1NDggMTEuMTUyMkMxNy40Njc0IDEwLjgzOTcgMTcuODkxMyAxMC42NjQxIDE4LjMzMzMgMTAuNjY0MUgyMS42NjY3QzIyLjEwODcgMTAuNjY0MSAyMi41MzI2IDEwLjgzOTcgMjIuODQ1MiAxMS4xNTIyQzIzLjE1NzcgMTEuNDY0OCAyMy4zMzMzIDExLjg4ODcgMjMuMzMzMyAxMi4zMzA3VjEzLjk5NzRNMTguMzMzMyAxOC4xNjQxVjIzLjE2NDFNMjEuNjY2NyAxOC4xNjQxVjIzLjE2NDFcIiBzdHJva2U9XCIjMzQ0MDU0XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbHRlciBpZD1cImZpbHRlcjBfZF8xNDU1N182MjUxNFwiIHg9XCIwXCIgeT1cIjBcIiB3aWR0aD1cIjQwXCIgaGVpZ2h0PVwiNDBcIiBmaWx0ZXJVbml0cz1cInVzZXJTcGFjZU9uVXNlXCIgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPVwic1JHQlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT1cIjBcIiByZXN1bHQ9XCJCYWNrZ3JvdW5kSW1hZ2VGaXhcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVDb2xvck1hdHJpeCBpbj1cIlNvdXJjZUFscGhhXCIgdHlwZT1cIm1hdHJpeFwiIHZhbHVlcz1cIjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDEyNyAwXCIgcmVzdWx0PVwiaGFyZEFscGhhXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlT2Zmc2V0IGR5PVwiMVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249XCIxXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQ29sb3JNYXRyaXggdHlwZT1cIm1hdHJpeFwiIHZhbHVlcz1cIjAgMCAwIDAgMC4wNjI3NDUxIDAgMCAwIDAgMC4wOTQxMTc2IDAgMCAwIDAgMC4xNTY4NjMgMCAwIDAgMC4wNSAwXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQmxlbmQgbW9kZT1cIm5vcm1hbFwiIGluMj1cIkJhY2tncm91bmRJbWFnZUZpeFwiIHJlc3VsdD1cImVmZmVjdDFfZHJvcFNoYWRvd18xNDU1N182MjUxNFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUJsZW5kIG1vZGU9XCJub3JtYWxcIiBpbj1cIlNvdXJjZUdyYXBoaWNcIiBpbjI9XCJlZmZlY3QxX2Ryb3BTaGFkb3dfMTQ1NTdfNjI1MTRcIiByZXN1bHQ9XCJzaGFwZVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZmlsdGVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cInJlZl9kZWxfaWNvblwiIChjbGljayk9XCJjbGVhclJlZmVyZW5jZUltYWdlKGksaik7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTIuNSA1LjAwMTNINC4xNjY2N000LjE2NjY3IDUuMDAxM0gxNy41TTQuMTY2NjcgNS4wMDEzVjE2LjY2OEM0LjE2NjY3IDE3LjExIDQuMzQyMjYgMTcuNTMzOSA0LjY1NDgyIDE3Ljg0NjVDNC45NjczOCAxOC4xNTkgNS4zOTEzMSAxOC4zMzQ2IDUuODMzMzMgMTguMzM0NkgxNC4xNjY3QzE0LjYwODcgMTguMzM0NiAxNS4wMzI2IDE4LjE1OSAxNS4zNDUyIDE3Ljg0NjVDMTUuNjU3NyAxNy41MzM5IDE1LjgzMzMgMTcuMTEgMTUuODMzMyAxNi42NjhWNS4wMDEzSDQuMTY2NjdaTTYuNjY2NjcgNS4wMDEzVjMuMzM0NjRDNi42NjY2NyAyLjg5MjYxIDYuODQyMjYgMi40Njg2OCA3LjE1NDgyIDIuMTU2MTJDNy40NjczOCAxLjg0MzU2IDcuODkxMzEgMS42Njc5NyA4LjMzMzMzIDEuNjY3OTdIMTEuNjY2N0MxMi4xMDg3IDEuNjY3OTcgMTIuNTMyNiAxLjg0MzU2IDEyLjg0NTIgMi4xNTYxMkMxMy4xNTc3IDIuNDY4NjggMTMuMzMzMyAyLjg5MjYxIDEzLjMzMzMgMy4zMzQ2NFY1LjAwMTNNOC4zMzMzMyA5LjE2Nzk3VjE0LjE2OE0xMS42NjY3IDkuMTY3OTdWMTQuMTY4XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiNCNDIzMThcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggbWItM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPGRpdiAqbmdJZj1cImdldEFuc3dlckZvcm1Hcm91cF9Gb3JtQ29udHJvbChpLGosJ211bHRpUXVlc3Rpb25SZWZlcmVuY2VJbWFnZScpPy52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY29sLWxnLTMgYnRuIGJ0bi1saWdodC1wcmltYXJ5IG10LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZC1ub25lXCIgW2lkXT1cIidmaWxldXBsb2FkXycraStqXCIgdHlwZT1cImZpbGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImFuc3dlckZpbGVcIiBhY2NlcHQ9XCJpbWFnZS9wbmcsIGltYWdlL2pwZWdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJsb2FkSW1hZ2VGcm9tRGV2aWNlKGkscmVmSW1nUUlkeCwkZXZlbnQsLTEsJ211bHRpUXVlc3Rpb25SZWZlcmVuY2VJbWFnZScpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBbZm9yXT1cIidmaWxldXBsb2FkXycraStqXCIgKGNsaWNrKT1cInJlZkltZ1FJZHg9ajtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIGNsYXNzPVwibXgtMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIyMVwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMSAyMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzQwODJfMzEyMilcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTkuNjY2NyAzLjMzNTI3VjguMzM1MjdNMTkuNjY2NyA4LjMzNTI3SDE0LjY2NjdNMTkuNjY2NyA4LjMzNTI3TDE1LjggNC43MDE5M0MxNC45MDQ0IDMuODA1ODYgMTMuNzk2NCAzLjE1MTI3IDEyLjU3OTMgMi43OTkyNUMxMS4zNjIzIDIuNDQ3MjIgMTAuMDc1OSAyLjQwOTIzIDguODQwMjUgMi42ODg4MkM3LjYwNDU2IDIuOTY4NDEgNi40NTk4NCAzLjU1NjQ2IDUuNTEyOSA0LjM5ODEyQzQuNTY1OTUgNS4yMzk3NyAzLjg0NzY1IDYuMzA3NTkgMy40MjUwMSA3LjUwMTkzTTEuMzMzMzQgMTYuNjY4NlYxMS42Njg2TTEuMzMzMzQgMTEuNjY4Nkg2LjMzMzM0TTEuMzMzMzQgMTEuNjY4Nkw1LjIwMDAxIDE1LjMwMTlDNi4wOTU2MyAxNi4xOTggNy4yMDM2NSAxNi44NTI2IDguNDIwNjggMTcuMjA0NkM5LjYzNzcxIDE3LjU1NjcgMTAuOTI0MSAxNy41OTQ2IDEyLjE1OTggMTcuMzE1MUMxMy4zOTU1IDE3LjAzNTUgMTQuNTQwMiAxNi40NDc0IDE1LjQ4NzEgMTUuNjA1OEMxNi40MzQxIDE0Ljc2NDEgMTcuMTUyNCAxMy42OTYzIDE3LjU3NSAxMi41MDE5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMwMDlCRjNcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNsaXBQYXRoIGlkPVwiY2xpcDBfNDA4Ml8zMTIyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiBmaWxsPVwid2hpdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybT1cInRyYW5zbGF0ZSgwLjUpXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5SZXVwbG9hZCBJbWFnZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwicXVlc3Rpb24uZ2V0KCdtdWx0aVF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UnKT8udmFsdWUubGVuZ3RoIDw1ICYmICFxdWVzdGlvbi5nZXQoJ2Rpc2FibGVSdW5BSScpPy52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY29sLWxnLTMgYnRuIGFkZC1yZWYtYnRuIGJ0bi1saWdodC1wcmltYXJ5IG15LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZC1ub25lXCIgW2lkXT1cIidmaWxldXBsb2FkUW5SZWYxXzInK2kralwiIHR5cGU9XCJmaWxlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJmaWxlXCIgYWNjZXB0PVwiaW1hZ2UvcG5nLCBpbWFnZS9qcGVnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwibG9hZEltYWdlRnJvbURldmljZShpLHJlZkltZ1FJZHgsJGV2ZW50LC0xLCdtdWx0aVF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UnKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJwb2ludGVyXCIgW2Zvcl09XCInZmlsZXVwbG9hZFFuUmVmMV8yJytpK2pcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInJlZkltZ1FJZHg9ajtcIj4gXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMCA0LjE2Nzk3VjE1LjgzNDZNNC4xNjY2OSAxMC4wMDEzSDE1LjgzMzRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMDA5QkYzXCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5BZGQgUmVmZXJlbmNlIEltYWdlIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJxdWVzdGlvbi5nZXQoJ211bHRpUXVlc3Rpb25SZWZlcmVuY2VJbWFnZScpPy52YWx1ZS5sZW5ndGggPj0gNSB8fCBxdWVzdGlvbi5nZXQoJ2Rpc2FibGVSdW5BSScpPy52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY29sLWxnLTMgYnRuLWxpZ2h0LWRpc2JhbGVkIGJ0biBhZGQtcmVmLWJ0biBteS0yIGJvcmRlckNhcmRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwicG9pbnRlclwiPiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTAuMDAxMyA0LjE2NDA2VjE1LjgzMDdNNC4xNjc5NyA5Ljk5NzRIMTUuODM0NlwiIHN0cm9rZT1cIiM2QkNBRkZcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+IDxzcGFuPkFkZCBSZWZlcmVuY2UgSW1hZ2U8L3NwYW4+IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2tsaXN0LWNhcmQgcGItNVwiIFtuZ0NsYXNzXT1cIlsnaW1hZ2UnLCdtdWx0aXBsZWNob2ljZXNpbmdsZScsJ3llcy9ubycsJ2RhdGUnLCdsaW5lYXJzY2FsZSddLmluY2x1ZGVzKHF1ZXN0aW9uLmdldCgnYW5zd2VyVHlwZScpPy52YWx1ZSkgPyAnY29sLW1kLTgnIDonY29sLW1kLTEyJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzZWxlY3QgY2xhc3M9XCJtdC01XCIgbmFtZT1cInNlbGVjdG9wdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwiYW5zd2VyVHlwZVNlbGVjdGlvbihpLGosJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImFuc3dlclR5cGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiBuYW1lPVwiZGVzY3JpcHRpdmVcIiB2YWx1ZT1cImRlc2NyaXB0aXZlXCI+RGVzY3JpcHRpdmVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFuc3dlcjwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIG5hbWU9XCJ5ZXMvbm9cIiB2YWx1ZT1cInllcy9ub1wiPkEvQiBRdWVzdGlvbjwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIG5hbWU9XCJtdWx0aXBsZWNob2ljZXNpbmdsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cIm11bHRpcGxlY2hvaWNlc2luZ2xlXCI+TXVsdGlwbGUgQ2hvaWNlIFF1ZXN0aW9uIC1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNpbmdsZSBBbnN3ZXI8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiBuYW1lPVwibXVsdGlwbGVjaG9pY2VtdWx0aXBsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cIm11bHRpcGxlY2hvaWNlbXVsdGlwbGVcIj5NdWx0aXBsZSBDaG9pY2UgUXVlc3Rpb24gLVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTXVsdGlwbGUgQW5zd2VyPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gbmFtZT1cImRlc2NyaXB0aXZlSW1hZ2VcIiB2YWx1ZT1cImRlc2NyaXB0aXZlSW1hZ2VcIj5DYXB0dXJlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbWFnZSB3aXRoIERlc2NyaXB0aW9uPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gbmFtZT1cImltYWdlXCIgdmFsdWU9XCJpbWFnZVwiPkNhcHR1cmUgSW1hZ2UgYXMgYW5zd2VyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIG5hbWU9XCJ2aWRlb1wiIHZhbHVlPVwidmlkZW9cIj5DYXB0dXJlIHZpZGVvIGFzIGFuc3dlclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiBuYW1lPVwibXVsdGlwbGVJbWFnZVwiIHZhbHVlPVwibXVsdGlwbGVJbWFnZVwiPkNhcHR1cmVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE11bHRpcGxlIEltYWdlPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gbmFtZT1cImRhdGVcIiB2YWx1ZT1cImRhdGVcIj5EYXRlIC0gREQvTU0vWVlZWTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIG5hbWU9XCJsaW5lYXJzY2FsZVwiIHZhbHVlPVwibGluZWFyc2NhbGVcIj5MaW5lYXIgU2NhbGU8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiBuYW1lPVwidGltZVwiIHZhbHVlPVwidGltZVwiPlRpbWU8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiBuYW1lPVwiaW1hZ2VWaWRlb1wiIHZhbHVlPVwiaW1hZ2UvdmlkZW9cIj5DYXB0dXJlIEltYWdlL1ZpZGVvIGFzIEFuc3dlcjwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIG5hbWU9XCJkcm9wZG93blwiIHZhbHVlPVwiZHJvcGRvd25cIj5Ecm9wZG93biBhcyBhbiBhbnN3ZXI8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC00XCIgKm5nSWY9XCJbJ2ltYWdlJywnbXVsdGlwbGVjaG9pY2VzaW5nbGUnLCd5ZXMvbm8nLCdkYXRlJywnbGluZWFyc2NhbGUnXS5pbmNsdWRlcyhxdWVzdGlvbi5nZXQoJ2Fuc3dlclR5cGUnKT8udmFsdWUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1zd2l0Y2ggdGV4dC1sZWZ0IGFsaWduLWl0ZW1zLWNlbnRlciBidG4tc2VjIG10LTEwXCIgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IG14LTAgcG9pbnRlclwiIHR5cGU9XCJjaGVja2JveFwiIG5hbWU9XCJ0b2NcIiB2YWx1ZT1cIjFcIiBuZ0RlZmF1bHRDb250cm9sIGZvcm1Db250cm9sTmFtZT1cImNvbXBsaWFuY2VcIiAoY2hhbmdlKT1cImdldENvbXBsaWFuY2VUb2FzdChpLGosJGV2ZW50KVwiIFthdHRyLmRpc2FibGVkXT1cImhhc1ZhbGlkYXRpb25FbmFibGVkKGksaikgPyB0cnVlIDogbnVsbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIHBvaW50ZXIgZnMtMTZweFwiIGZvcj1cImZsZXhTd2l0Y2hDaGVja0RlZmF1bHRcIj5Db25maWd1cmUgQ29tcGxpYW5jZSBTY29yZTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTMgbXgtNCBkLWZsZXggbXQtM1wiICpuZ0lmPVwiWydkZXNjcmlwdGl2ZSddLmluY2x1ZGVzKHF1ZXN0aW9uLmdldCgnYW5zd2VyVHlwZScpPy52YWx1ZSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrXCIgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJkZXNjcmlwdGl2ZXR5cGVcIiBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgY3Vyc29yLXBvaW50ZXJcIiB0eXBlPVwicmFkaW9cIiB2YWx1ZT1cInRleHRcIiBbbmFtZV09XCInZGVzY3JpcHRpdmV0eXBlJ1wiIFtpZF09XCInaW5saW5lUmFkaW8wJysgaSArIGpcIiAgW2F0dHIuZGlzYWJsZWRdPVwicXVlc3Rpb24uZ2V0KCdkaXNhYmxlUnVuQUknKT8udmFsdWUgPyB0cnVlIDogbnVsbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImN1cnNvci1wb2ludGVyIGRzY3JpcHRpdmVUeXBlXCIgW2Zvcl09XCInaW5saW5lUmFkaW8wJysgaSArIGpcIj5UZXh0PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgbXMtNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJkZXNjcmlwdGl2ZXR5cGVcIiBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgY3Vyc29yLXBvaW50ZXJcIiB0eXBlPVwicmFkaW9cIiB2YWx1ZT1cIm51bWJlclwiIFtuYW1lXT1cIidkZXNjcmlwdGl2ZXR5cGUnXCIgW2lkXT1cIidpbmxpbmVSYWRpbzEnKyBpICsgalwiIFthdHRyLmRpc2FibGVkXT1cInF1ZXN0aW9uLmdldCgnZGlzYWJsZVJ1bkFJJyk/LnZhbHVlID8gdHJ1ZSA6IG51bGxcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJjdXJzb3ItcG9pbnRlciBkc2NyaXB0aXZlVHlwZVwiICBbZm9yXT1cIidpbmxpbmVSYWRpbzEnK2kgKyBqXCI+TnVtYmVyPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJbJ3llcy9ubycsJ211bHRpcGxlY2hvaWNlc2luZ2xlJywnbXVsdGlwbGVjaG9pY2VtdWx0aXBsZScsJ2Ryb3Bkb3duJ10uaW5jbHVkZXMocXVlc3Rpb24uZ2V0KCdhbnN3ZXJUeXBlJyk/LnZhbHVlKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmcy0xOHB4IGZ3LWJvbGRlclwiIHN0eWxlPVwiY3Vyc29yOiBkZWZhdWx0O1wiPkFuc3dlciBPcHRpb25zPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1zd2l0Y2ggdGV4dC1sZWZ0IGFsaWduLWl0ZW1zLWNlbnRlciBidG4tc2VjIG10LTJcIiAqbmdJZj1cInF1ZXN0aW9uLmdldCgnYW5zd2VyVHlwZScpPy52YWx1ZSA9PSAnZHJvcGRvd24nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgbXgtMCBwb2ludGVyXCIgdHlwZT1cImNoZWNrYm94XCIgbmFtZT1cInRvY1wiIHZhbHVlPVwiMVwiIG5nRGVmYXVsdENvbnRyb2wgZm9ybUNvbnRyb2xOYW1lPVwiYWxsb3dNdWx0aXBsZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIHBvaW50ZXIgZnMtMTZweFwiIGZvcj1cImZsZXhTd2l0Y2hDaGVja0RlZmF1bHRcIj5BbGxvdyBNdWx0aXBsZSBSZXNwb25zZTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIGZvcm1BcnJheU5hbWU9XCJhbnN3ZXJzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgYW5zd2VyIG9mIGdldEZvcm1BcnJheVF1ZXN0aW9uc0Fuc3dlcihpLGosJ2Fuc3dlcnMnKT8uY29udHJvbHM7bGV0IGsgPSBpbmRleDtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiIFtmb3JtR3JvdXBOYW1lXT1cImtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhYW5zd2VyLmdldCgnaXNkZWxldGVkJyk/LnZhbHVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIkFuc3dlcjFcIiBbbmdDbGFzc109XCJxdWVzdGlvbi5nZXQoJ2NvbXBsaWFuY2UnKT8udmFsdWUgPyAnY29sLWxnLTQnIDogJ2NvbC1sZy02J1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2tsaXN0LWNhcmQgcGItMCBtdC01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cIm10LTBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiRW50ZXIgYW5zd2VyIGhlcmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImFuc3dlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2bFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInF1ZXN0aW9uLmdldCgnYW5zd2VyVHlwZScpPy52YWx1ZSA9PT0gJ3llcy9ubycgfHwgcXVlc3Rpb24uZ2V0KCdhbnN3ZXJUeXBlJyk/LnZhbHVlID09PSAnbXVsdGlwbGVjaG9pY2VzaW5nbGUnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZ0RlZmF1bHRDb250cm9sPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmwyXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJpbWdBZGRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInF1ZXN0aW9uLmdldCgnZGlzYWJsZVJ1bkFJJyk/LnZhbHVlID8nJyA6dXBkYXRlTGlua2VkKGksaixrKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk05Ljk5OTk5IDQuMTY2MDJWMTUuODMyN000LjE2NjY2IDkuOTk5MzVIMTUuODMzM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMzQ0MDU0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjEuNjdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImFuc3dlci5nZXQoJ2Fuc3dlcicpPy5pbnZhbGlkICYmIGFuc3dlci5nZXQoJ2Fuc3dlcicpPy50b3VjaGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgc3R5bGU9XCJjb2xvcjogcmVkO1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiYW5zd2VyLmdldCgnYW5zd2VyJyk/Lmhhc0Vycm9yKCdyZXF1aXJlZCcpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogQW5zd2VyIGlzIHJlcXVpcmVkLjwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgc3R5bGU9XCJjb2xvcjogcmVkO1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJhbnN3ZXIuZ2V0KCdzaG93U09QRmxhZ0Vycm9yJyk/LnZhbHVlID09PSB0cnVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXZlcnkgYW5zd2VyIGNhbuKAmXQgYmUgYSBmbGFnLjwvcD5cclxuICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBmb3JtQ29udHJvbE5hbWU9XCJzb3BGbGFnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZ0RlZmF1bHRDb250cm9sPlxyXG4gICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyAoY2xpY2spPVwicXVlc3Rpb24uZ2V0KCdkaXNhYmxlUnVuQUknKT8udmFsdWUgPycnIDogcmFpc2VmbGFnKGksaixrLHRydWUpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0VG9vbHRpcD1cIlJhaXNlIGEgZmxhZyBpZiB0aGlzIGFuc3dlciBpcyBzZWxlY3RlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdFRvb2x0aXBQb3NpdGlvbj1cImFib3ZlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0VG9vbHRpcENsYXNzPVwiY3VzdG9tLXRlc3RcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImFuc3dlci5nZXQoJ3NvcEZsYWcnKT8udmFsdWUgPT09IGZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJraXdpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMTYgMTZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMi42NjY2OSAxMC4wMDA3QzIuNjY2NjkgMTAuMDAwNyAzLjMzMzM1IDkuMzMzOTggNS4zMzMzNSA5LjMzMzk4QzcuMzMzMzUgOS4zMzM5OCA4LjY2NjY5IDEwLjY2NzMgMTAuNjY2NyAxMC42NjczQzEyLjY2NjcgMTAuNjY3MyAxMy4zMzM0IDEwLjAwMDcgMTMuMzMzNCAxMC4wMDA3VjIuMDAwNjVDMTMuMzMzNCAyLjAwMDY1IDEyLjY2NjcgMi42NjczMiAxMC42NjY3IDIuNjY3MzJDOC42NjY2OSAyLjY2NzMyIDcuMzMzMzUgMS4zMzM5OCA1LjMzMzM1IDEuMzMzOThDMy4zMzMzNSAxLjMzMzk4IDIuNjY2NjkgMi4wMDA2NSAyLjY2NjY5IDIuMDAwNjVWMTAuMDAwN1pNMi42NjY2OSAxMC4wMDA3VjE0LjY2NzNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiI0QwRDVERFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyAoY2xpY2spPVwicXVlc3Rpb24uZ2V0KCdkaXNhYmxlUnVuQUknKT8udmFsdWUgPycnIDogcmFpc2VmbGFnKGksaixrLGZhbHNlKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdFRvb2x0aXA9XCJSYWlzZSBhIGZsYWcgaWYgdGhpcyBhbnN3ZXIgaXMgc2VsZWN0ZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRUb29sdGlwUG9zaXRpb249XCJhYm92ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdFRvb2x0aXBDbGFzcz1cImN1c3RvbS10ZXN0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJhbnN3ZXIuZ2V0KCdzb3BGbGFnJyk/LnZhbHVlID09PSB0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhY3RpdmUtZmxhZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDE2IDE2XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTIuNjY2NjkgMTAuMDAwN0MyLjY2NjY5IDEwLjAwMDcgMy4zMzMzNSA5LjMzMzk4IDUuMzMzMzUgOS4zMzM5OEM3LjMzMzM1IDkuMzMzOTggOC42NjY2OSAxMC42NjczIDEwLjY2NjcgMTAuNjY3M0MxMi42NjY3IDEwLjY2NzMgMTMuMzMzNCAxMC4wMDA3IDEzLjMzMzQgMTAuMDAwN1YyLjAwMDY1QzEzLjMzMzQgMi4wMDA2NSAxMi42NjY3IDIuNjY3MzIgMTAuNjY2NyAyLjY2NzMyQzguNjY2NjkgMi42NjczMiA3LjMzMzM1IDEuMzMzOTggNS4zMzMzNSAxLjMzMzk4QzMuMzMzMzUgMS4zMzM5OCAyLjY2NjY5IDIuMDAwNjUgMi42NjY2OSAyLjAwMDY1VjEwLjAwMDdaTTIuNjY2NjkgMTAuMDAwN1YxNC42NjczXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiNEMEQ1RERcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IFtuZ0NsYXNzXT1cInF1ZXN0aW9uLmdldCgnY29tcGxpYW5jZScpPy52YWx1ZSA/ICdjb2wtbGctNScgOiAnY29sLWxnLTYnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhYW5zd2VyLmdldCgnc2hvd0xpbmtlZCcpPy52YWx1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFuc3dlcnZhbGlkYXRpb25cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJtdC03XCIgdHlwZT1cImNoZWNrYm94XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJ3aWR0aDoxNnB4O2hlaWdodDoxNnB4O2N1cnNvcjogcG9pbnRlcjtcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cIjFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cImdldHZhbGlkYXRpb24oaSxqLGssJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInZhbGlkYXRpb25cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hhY2tib3ggcHQtNCBtdC0yIG14LTJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1cImN1cnNvcjogZGVmYXVsdDtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzPlZhbGlkYXRlIHJlc3BvbnNlPC9oMz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJtYi0wXCI+VHJpZ2dlciBhbiBhY3Rpb25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBlYWNoIHJlc3BvbnNlIHRvIHZhbGlkYXRlIGl0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyAqbmdJZj1cInF1ZXN0aW9uLmdldCgnYW5zd2VyVHlwZScpPy52YWx1ZSAhPT0gJ3llcy9ubycgJiYgZ2V0Rm9ybUFycmF5UXVlc3Rpb25zQW5zd2VyKGksaiwnYW5zd2VycycpLnZhbHVlLmxlbmd0aCA+IDIgJiYgIXF1ZXN0aW9uLmdldCgnY29tcGxpYW5jZScpPy52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInF1ZXN0aW9uLmdldCgnZGlzYWJsZVJ1bkFJJyk/LnZhbHVlID8nJyA6ZGVsZXRlQW5zd2VyKGksaixrKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtdC04XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRUb29sdGlwPVwiRGVsZXRlIGFuc3dlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0VG9vbHRpcFBvc2l0aW9uPVwiYWJvdmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdFRvb2x0aXBDbGFzcz1cImN1c3RvbS10ZXN0XCIgd2lkdGg9XCIyMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTUgNUw1IDE1TTUgNUwxNSAxNVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIxLjY2NjY3XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtM1wiICpuZ0lmPVwicXVlc3Rpb24uZ2V0KCdjb21wbGlhbmNlJyk/LnZhbHVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzZWxlY3QgY2xhc3M9XCJ3LTE1MHB4IG10LTdcIiBmb3JtQ29udHJvbE5hbWU9XCJjb21wbGlhbmNlU2NvcmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IHZhbHVlIG9mIGRyb3Bkb3duVmFsdWVcIiBbdmFsdWVdPVwidmFsdWVcIj57e3ZhbHVlfX08L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJtcy0zXCIgKm5nSWY9XCJxdWVzdGlvbi5nZXQoJ2Fuc3dlclR5cGUnKT8udmFsdWUgIT09ICd5ZXMvbm8nICYmIGdldEZvcm1BcnJheVF1ZXN0aW9uc0Fuc3dlcihpLGosJ2Fuc3dlcnMnKS52YWx1ZS5sZW5ndGggPiAyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJxdWVzdGlvbi5nZXQoJ2Rpc2FibGVSdW5BSScpPy52YWx1ZSA/JycgOmRlbGV0ZUFuc3dlcihpLGosaylcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRUb29sdGlwPVwiRGVsZXRlIGFuc3dlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRUb29sdGlwUG9zaXRpb249XCJhYm92ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRUb29sdGlwQ2xhc3M9XCJjdXN0b20tdGVzdFwiIHdpZHRoPVwiMjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTE1IDVMNSAxNU01IDVMMTUgMTVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjEuNjY2NjdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSAqbmdJZj1cIm1vcmVxbi52YWxpZGF0aW9uXCIgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImFuc3dlci5nZXQoJ3ZhbGlkYXRpb24nKT8udmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTMgcHQtNyBmcy00IGZ3LTQwMCBtdC0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiB0aGUgcmVzcG9uc2UgaXMgdGhpcywgdGhlblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VsZWN0IGNsYXNzPVwibXQtNSBteC0xXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJ2YWxpZGF0aW9uVHlwZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJ1cGRhdGVWYWxpZGF0aW9uVHlwZSgkZXZlbnQsaSxqLGspXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbj5EZXNjcmlwdGl2ZSBBbnN3ZXI8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uPkNhcHR1cmUgSW1hZ2U8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uPkNhcHR1cmUgVmlkZW88L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0zIG14LTQgZC1mbGV4IHB0LThcIiAqbmdJZj1cImFuc3dlci5nZXQoJ3ZhbGlkYXRpb25UeXBlJyk/LnZhbHVlID09PSAnRGVzY3JpcHRpdmUgQW5zd2VyJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2tcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwiZGVzY3JpcHRpdmV0eXBlXCIgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IGN1cnNvci1wb2ludGVyXCIgdHlwZT1cInJhZGlvXCIgW2lkXT1cIidpbmxpbmVSYWRpbzInICsgaSArIGogKyBrXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9XCJ0ZXh0XCIgW25hbWVdPVwiJ2Rlc2NyaXB0aXZldHlwZSdcIiBbYXR0ci5kaXNhYmxlZF09XCJxdWVzdGlvbi5nZXQoJ2Rpc2FibGVSdW5BSScpPy52YWx1ZSA/IHRydWUgOiBudWxsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXIgZHNjcmlwdGl2ZVR5cGVcIiBbZm9yXT1cIidpbmxpbmVSYWRpbzInICsgaSArIGogKyBrXCI+VGV4dDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIG1zLTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwiZGVzY3JpcHRpdmV0eXBlXCIgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IGN1cnNvci1wb2ludGVyXCIgdHlwZT1cInJhZGlvXCIgW2lkXT1cIidpbmxpbmVSYWRpbzMnKyBpICsgaiArIGtcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cIm51bWJlclwiIFtuYW1lXT1cIidkZXNjcmlwdGl2ZXR5cGUnXCIgW2F0dHIuZGlzYWJsZWRdPVwicXVlc3Rpb24uZ2V0KCdkaXNhYmxlUnVuQUknKT8udmFsdWUgPyB0cnVlIDogbnVsbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImN1cnNvci1wb2ludGVyIGRzY3JpcHRpdmVUeXBlXCIgW2Zvcl09XCInaW5saW5lUmFkaW8zJyArIGkgKyBqICsga1wiPk51bWJlcjwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiYW5zd2VyLmdldCgnc2hvd0xpbmtlZCcpPy52YWx1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTMgcHQtNyBmcy00IGZ3LTQwMCBtdC0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaW5rZWQgUXVlc3Rpb25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctOVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBbaWRdPVwiaSsnLScra1wiIFtuYW1lXT1cImkrJy0nK2tcIiBjbGFzcz1cIm10LTVcIiAoY2hhbmdlKT1cInVwZGF0ZVF1ZXN0aW9uVHlwZShpLGosaywkZXZlbnQpXCIgW2Rpc2FibGVkXT1cInF1ZXN0aW9uLmdldCgnZGlzYWJsZVJ1bkFJJyk/LnZhbHVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIlwiPlNlbGVjdCBRdWVzdGlvbjwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBnZXRRdWVzdGlvbkxpc3QoaSxqLGspXCIgW3ZhbHVlXT1cIm9wdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzZWxlY3RlZF09XCJzZWxlY3RPcHRpb24ob3B0aW9uLGFuc3dlci5nZXQoJ2xpbmtlZFF1ZXN0aW9uJyk/LnZhbHVlKVwiPlF1ZXN0aW9uIHt7b3B0aW9ufX08L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJhbnN3ZXIuZ2V0KCd2YWxpZGF0aW9uJyk/LnZhbHVlICYmIGFuc3dlci5nZXQoJ3ZhbGlkYXRpb25UeXBlJyk/LnZhbHVlID09PSAnQ2FwdHVyZSBJbWFnZSdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgaW1hZ2Ugb2YgZ2V0QW5zd2VyRm9ybUdyb3VwX0Zvcm1Db250cm9sKGksaiwnbXVsdGlSZWZlcmVuY2VJbWFnZScsayk/LnZhbHVlO2xldCBuPWluZGV4XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY29sLW1kLTQgaW1hZ2UtY29udGFpbmVyIHJlZl9pbWdfY29udCBtYi00IG10LTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwie3tlbnZpcm9ubWVudC5UcmF4QW5zd2VyQ0ROfX17e2ltYWdlLmltYWdlVVJMfX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiOTAlXCIgaGVpZ2h0PVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYXV0by1hZGp1ICAgIHN0XCIgYWx0PVwiVGFuZ28gRXllXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3ZlcmxheS1pY29uc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cInF1ZXN0aW9uLmdldCgnZGlzYWJsZVJ1bkFJJyk/LnZhbHVlID8nJyA6b25Qb3B1cChpbWFnZS5pbWFnZVVSTClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiNDBcIiBoZWlnaHQ9XCI0MFwiIHZpZXdCb3g9XCIwIDAgNDAgNDBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGZpbHRlcj1cInVybCgjZmlsdGVyMF9kXzE0NTU3XzYyNTEzKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCIyXCIgeT1cIjFcIiB3aWR0aD1cIjM2XCIgaGVpZ2h0PVwiMzZcIiByeD1cIjhcIiBmaWxsPVwid2hpdGVcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjIuNVwiIHk9XCIxLjVcIiB3aWR0aD1cIjM1XCIgaGVpZ2h0PVwiMzVcIiByeD1cIjcuNVwiIHN0cm9rZT1cIiNEMEQ1RERcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0yMi41IDExLjVIMjcuNU0yNy41IDExLjVWMTYuNU0yNy41IDExLjVMMjEuNjY2NyAxNy4zMzMzTTE3LjUgMjYuNUgxMi41TTEyLjUgMjYuNVYyMS41TTEyLjUgMjYuNUwxOC4zMzMzIDIwLjY2NjdcIiBzdHJva2U9XCIjMzQ0MDU0XCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbHRlciBpZD1cImZpbHRlcjBfZF8xNDU1N182MjUxM1wiIHg9XCIwXCIgeT1cIjBcIiB3aWR0aD1cIjQwXCIgaGVpZ2h0PVwiNDBcIiBmaWx0ZXJVbml0cz1cInVzZXJTcGFjZU9uVXNlXCIgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPVwic1JHQlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUZsb29kIGZsb29kLW9wYWNpdHk9XCIwXCIgcmVzdWx0PVwiQmFja2dyb3VuZEltYWdlRml4XCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUNvbG9yTWF0cml4IGluPVwiU291cmNlQWxwaGFcIiB0eXBlPVwibWF0cml4XCIgdmFsdWVzPVwiMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMTI3IDBcIiByZXN1bHQ9XCJoYXJkQWxwaGFcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlT2Zmc2V0IGR5PVwiMVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVHYXVzc2lhbkJsdXIgc3RkRGV2aWF0aW9uPVwiMVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVDb2xvck1hdHJpeCB0eXBlPVwibWF0cml4XCIgdmFsdWVzPVwiMCAwIDAgMCAwLjA2Mjc0NTEgMCAwIDAgMCAwLjA5NDExNzYgMCAwIDAgMCAwLjE1Njg2MyAwIDAgMCAwLjA1IDBcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQmxlbmQgbW9kZT1cIm5vcm1hbFwiIGluMj1cIkJhY2tncm91bmRJbWFnZUZpeFwiIHJlc3VsdD1cImVmZmVjdDFfZHJvcFNoYWRvd18xNDU1N182MjUxM1wiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVCbGVuZCBtb2RlPVwibm9ybWFsXCIgaW49XCJTb3VyY2VHcmFwaGljXCIgaW4yPVwiZWZmZWN0MV9kcm9wU2hhZG93XzE0NTU3XzYyNTEzXCIgcmVzdWx0PVwic2hhcGVcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9maWx0ZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZC1ub25lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lkXT1cIidmaWxldXBsb2FkX3ZhbGlkcmVmJytpK2oraytuXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImZpbGVcIiBuYW1lPVwiYW5zd2VyRmlsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjY2VwdD1cImltYWdlL3BuZywgaW1hZ2UvanBlZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJxdWVzdGlvbi5nZXQoJ2Rpc2FibGVSdW5BSScpPy52YWx1ZSA/ICRldmVudC5wcmV2ZW50RGVmYXVsdCgpIDogbnVsbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwicXVlc3Rpb24uZ2V0KCdkaXNhYmxlUnVuQUknKT8udmFsdWUgPyAnJyA6IGxvYWRJbWFnZUZyb21EZXZpY2UoaSxyZWZJbWdRSWR4LCRldmVudCxrLCdtdWx0aVJlZmVyZW5jZUltYWdlJyxuKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIFtmb3JdPVwiJ2ZpbGV1cGxvYWRfdmFsaWRyZWYnK2kraitrK25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwicmVmSW1nUUlkeD1qO1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiNDBcIiBoZWlnaHQ9XCI0MFwiIHZpZXdCb3g9XCIwIDAgNDAgNDBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBmaWx0ZXI9XCJ1cmwoI2ZpbHRlcjBfZF8xNDU1N182MjUyMilcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjJcIiB5PVwiMVwiIHdpZHRoPVwiMzZcIiBoZWlnaHQ9XCIzNlwiIHJ4PVwiOFwiIGZpbGw9XCJ3aGl0ZVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjIuNVwiIHk9XCIxLjVcIiB3aWR0aD1cIjM1XCIgaGVpZ2h0PVwiMzVcIiByeD1cIjcuNVwiIHN0cm9rZT1cIiNEMEQ1RERcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMjcuNSAyMS41VjI0LjgzMzNDMjcuNSAyNS4yNzU0IDI3LjMyNDQgMjUuNjk5MyAyNy4wMTE4IDI2LjAxMThDMjYuNjk5MyAyNi4zMjQ0IDI2LjI3NTQgMjYuNSAyNS44MzMzIDI2LjVIMTQuMTY2N0MxMy43MjQ2IDI2LjUgMTMuMzAwNyAyNi4zMjQ0IDEyLjk4ODIgMjYuMDExOEMxMi42NzU2IDI1LjY5OTMgMTIuNSAyNS4yNzU0IDEyLjUgMjQuODMzM1YyMS41TTI0LjE2NjcgMTUuNjY2N0wyMCAxMS41TTIwIDExLjVMMTUuODMzMyAxNS42NjY3TTIwIDExLjVWMjEuNVwiIHN0cm9rZT1cIiMzNDQwNTRcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsdGVyIGlkPVwiZmlsdGVyMF9kXzE0NTU3XzYyNTIyXCIgeD1cIjBcIiB5PVwiMFwiIHdpZHRoPVwiNDBcIiBoZWlnaHQ9XCI0MFwiIGZpbHRlclVuaXRzPVwidXNlclNwYWNlT25Vc2VcIiBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM9XCJzUkdCXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUZsb29kIGZsb29kLW9wYWNpdHk9XCIwXCIgcmVzdWx0PVwiQmFja2dyb3VuZEltYWdlRml4XCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVDb2xvck1hdHJpeCBpbj1cIlNvdXJjZUFscGhhXCIgdHlwZT1cIm1hdHJpeFwiIHZhbHVlcz1cIjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDEyNyAwXCIgcmVzdWx0PVwiaGFyZEFscGhhXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVPZmZzZXQgZHk9XCIxXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVHYXVzc2lhbkJsdXIgc3RkRGV2aWF0aW9uPVwiMVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQ29sb3JNYXRyaXggdHlwZT1cIm1hdHJpeFwiIHZhbHVlcz1cIjAgMCAwIDAgMC4wNjI3NDUxIDAgMCAwIDAgMC4wOTQxMTc2IDAgMCAwIDAgMC4xNTY4NjMgMCAwIDAgMC4wNSAwXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVCbGVuZCBtb2RlPVwibm9ybWFsXCIgaW4yPVwiQmFja2dyb3VuZEltYWdlRml4XCIgcmVzdWx0PVwiZWZmZWN0MV9kcm9wU2hhZG93XzE0NTU3XzYyNTIyXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVCbGVuZCBtb2RlPVwibm9ybWFsXCIgaW49XCJTb3VyY2VHcmFwaGljXCIgaW4yPVwiZWZmZWN0MV9kcm9wU2hhZG93XzE0NTU3XzYyNTIyXCIgcmVzdWx0PVwic2hhcGVcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZmlsdGVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJxdWVzdGlvbi5nZXQoJ2Rpc2FibGVSdW5BSScpPy52YWx1ZSA/JycgOmNsZWFyUmVmZXJlbmNlSW1hZ2UoaSxqLGssbiwnbXVsdGlSZWZlcmVuY2VJbWFnZScpO1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCI0MFwiIGhlaWdodD1cIjQwXCIgdmlld0JveD1cIjAgMCA0MCA0MFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgZmlsdGVyPVwidXJsKCNmaWx0ZXIwX2RfMTQ1NTdfNjI1MTQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjJcIiB5PVwiMVwiIHdpZHRoPVwiMzZcIiBoZWlnaHQ9XCIzNlwiIHJ4PVwiOFwiIGZpbGw9XCJ3aGl0ZVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiMi41XCIgeT1cIjEuNVwiIHdpZHRoPVwiMzVcIiBoZWlnaHQ9XCIzNVwiIHJ4PVwiNy41XCIgc3Ryb2tlPVwiI0QwRDVERFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTEyLjUgMTMuOTk3NEgxNC4xNjY3TTE0LjE2NjcgMTMuOTk3NEgyNy41TTE0LjE2NjcgMTMuOTk3NFYyNS42NjQxQzE0LjE2NjcgMjYuMTA2MSAxNC4zNDIzIDI2LjUzIDE0LjY1NDggMjYuODQyNkMxNC45Njc0IDI3LjE1NTEgMTUuMzkxMyAyNy4zMzA3IDE1LjgzMzMgMjcuMzMwN0gyNC4xNjY3QzI0LjYwODcgMjcuMzMwNyAyNS4wMzI2IDI3LjE1NTEgMjUuMzQ1MiAyNi44NDI2QzI1LjY1NzcgMjYuNTMgMjUuODMzMyAyNi4xMDYxIDI1LjgzMzMgMjUuNjY0MVYxMy45OTc0SDE0LjE2NjdaTTE2LjY2NjcgMTMuOTk3NFYxMi4zMzA3QzE2LjY2NjcgMTEuODg4NyAxNi44NDIzIDExLjQ2NDggMTcuMTU0OCAxMS4xNTIyQzE3LjQ2NzQgMTAuODM5NyAxNy44OTEzIDEwLjY2NDEgMTguMzMzMyAxMC42NjQxSDIxLjY2NjdDMjIuMTA4NyAxMC42NjQxIDIyLjUzMjYgMTAuODM5NyAyMi44NDUyIDExLjE1MjJDMjMuMTU3NyAxMS40NjQ4IDIzLjMzMzMgMTEuODg4NyAyMy4zMzMzIDEyLjMzMDdWMTMuOTk3NE0xOC4zMzMzIDE4LjE2NDFWMjMuMTY0MU0yMS42NjY3IDE4LjE2NDFWMjMuMTY0MVwiIHN0cm9rZT1cIiMzNDQwNTRcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsdGVyIGlkPVwiZmlsdGVyMF9kXzE0NTU3XzYyNTE0XCIgeD1cIjBcIiB5PVwiMFwiIHdpZHRoPVwiNDBcIiBoZWlnaHQ9XCI0MFwiIGZpbHRlclVuaXRzPVwidXNlclNwYWNlT25Vc2VcIiBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM9XCJzUkdCXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT1cIjBcIiByZXN1bHQ9XCJCYWNrZ3JvdW5kSW1hZ2VGaXhcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQ29sb3JNYXRyaXggaW49XCJTb3VyY2VBbHBoYVwiIHR5cGU9XCJtYXRyaXhcIiB2YWx1ZXM9XCIwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAxMjcgMFwiIHJlc3VsdD1cImhhcmRBbHBoYVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVPZmZzZXQgZHk9XCIxXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249XCIxXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUNvbG9yTWF0cml4IHR5cGU9XCJtYXRyaXhcIiB2YWx1ZXM9XCIwIDAgMCAwIDAuMDYyNzQ1MSAwIDAgMCAwIDAuMDk0MTE3NiAwIDAgMCAwIDAuMTU2ODYzIDAgMCAwIDAuMDUgMFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVCbGVuZCBtb2RlPVwibm9ybWFsXCIgaW4yPVwiQmFja2dyb3VuZEltYWdlRml4XCIgcmVzdWx0PVwiZWZmZWN0MV9kcm9wU2hhZG93XzE0NTU3XzYyNTE0XCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUJsZW5kIG1vZGU9XCJub3JtYWxcIiBpbj1cIlNvdXJjZUdyYXBoaWNcIiBpbjI9XCJlZmZlY3QxX2Ryb3BTaGFkb3dfMTQ1NTdfNjI1MTRcIiByZXN1bHQ9XCJzaGFwZVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2ZpbHRlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwicmVmX2RlbF9pY29uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiY2xlYXJSZWZlcmVuY2VJbWFnZShpLGosayk7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTIuNSA1LjAwMTNINC4xNjY2N000LjE2NjY3IDUuMDAxM0gxNy41TTQuMTY2NjcgNS4wMDEzVjE2LjY2OEM0LjE2NjY3IDE3LjExIDQuMzQyMjYgMTcuNTMzOSA0LjY1NDgyIDE3Ljg0NjVDNC45NjczOCAxOC4xNTkgNS4zOTEzMSAxOC4zMzQ2IDUuODMzMzMgMTguMzM0NkgxNC4xNjY3QzE0LjYwODcgMTguMzM0NiAxNS4wMzI2IDE4LjE1OSAxNS4zNDUyIDE3Ljg0NjVDMTUuNjU3NyAxNy41MzM5IDE1LjgzMzMgMTcuMTEgMTUuODMzMyAxNi42NjhWNS4wMDEzSDQuMTY2NjdaTTYuNjY2NjcgNS4wMDEzVjMuMzM0NjRDNi42NjY2NyAyLjg5MjYxIDYuODQyMjYgMi40Njg2OCA3LjE1NDgyIDIuMTU2MTJDNy40NjczOCAxLjg0MzU2IDcuODkxMzEgMS42Njc5NyA4LjMzMzMzIDEuNjY3OTdIMTEuNjY2N0MxMi4xMDg3IDEuNjY3OTcgMTIuNTMyNiAxLjg0MzU2IDEyLjg0NTIgMi4xNTYxMkMxMy4xNTc3IDIuNDY4NjggMTMuMzMzMyAyLjg5MjYxIDEzLjMzMzMgMy4zMzQ2NFY1LjAwMTNNOC4zMzMzMyA5LjE2Nzk3VjE0LjE2OE0xMS42NjY3IDkuMTY3OTdWMTQuMTY4XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiNCNDIzMThcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS42N1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggbWItM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8ZGl2ICpuZ0lmPVwiZ2V0QW5zd2VyRm9ybUdyb3VwX0Zvcm1Db250cm9sKGksaiwnbXVsdGlSZWZlcmVuY2VJbWFnZScsayk/LnZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNvbC1sZy0zIGJ0biBidG4tbGlnaHQtcHJpbWFyeSBtdC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZC1ub25lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lkXT1cIidmaWxldXBsb2FkXycraStqK2tcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiZmlsZVwiIG5hbWU9XCJhbnN3ZXJGaWxlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWNjZXB0PVwiaW1hZ2UvcG5nLCBpbWFnZS9qcGVnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJsb2FkSW1hZ2VGcm9tRGV2aWNlKGkscmVmSW1nUUlkeCwkZXZlbnQsaylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgW2Zvcl09XCInZmlsZXVwbG9hZF8nK2kraitrXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInJlZkltZ1FJZHg9ajtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibXgtMlwiIHdpZHRoPVwiMjFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIxIDIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Z1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsaXAtcGF0aD1cInVybCgjY2xpcDBfNDA4Ml8zMTIyKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTkuNjY2NyAzLjMzNTI3VjguMzM1MjdNMTkuNjY2NyA4LjMzNTI3SDE0LjY2NjdNMTkuNjY2NyA4LjMzNTI3TDE1LjggNC43MDE5M0MxNC45MDQ0IDMuODA1ODYgMTMuNzk2NCAzLjE1MTI3IDEyLjU3OTMgMi43OTkyNUMxMS4zNjIzIDIuNDQ3MjIgMTAuMDc1OSAyLjQwOTIzIDguODQwMjUgMi42ODg4MkM3LjYwNDU2IDIuOTY4NDEgNi40NTk4NCAzLjU1NjQ2IDUuNTEyOSA0LjM5ODEyQzQuNTY1OTUgNS4yMzk3NyAzLjg0NzY1IDYuMzA3NTkgMy40MjUwMSA3LjUwMTkzTTEuMzMzMzQgMTYuNjY4NlYxMS42Njg2TTEuMzMzMzQgMTEuNjY4Nkg2LjMzMzM0TTEuMzMzMzQgMTEuNjY4Nkw1LjIwMDAxIDE1LjMwMTlDNi4wOTU2MyAxNi4xOTggNy4yMDM2NSAxNi44NTI2IDguNDIwNjggMTcuMjA0NkM5LjYzNzcxIDE3LjU1NjcgMTAuOTI0MSAxNy41OTQ2IDEyLjE1OTggMTcuMzE1MUMxMy4zOTU1IDE3LjAzNTUgMTQuNTQwMiAxNi40NDc0IDE1LjQ4NzEgMTUuNjA1OEMxNi40MzQxIDE0Ljc2NDEgMTcuMTUyNCAxMy42OTYzIDE3LjU3NSAxMi41MDE5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzAwOUJGM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjEuNjdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNsaXBQYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY2xpcDBfNDA4Ml8zMTIyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIndoaXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybT1cInRyYW5zbGF0ZSgwLjUpXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2NsaXBQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5SZXVwbG9hZCBJbWFnZTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZ2V0QW5zd2VyRm9ybUdyb3VwX0Zvcm1Db250cm9sKGksaiwnbXVsdGlSZWZlcmVuY2VJbWFnZScsayk/LnZhbHVlLmxlbmd0aCA+PSA1IHx8IHF1ZXN0aW9uLmdldCgnZGlzYWJsZVJ1bkFJJyk/LnZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNvbC1sZy0zIGJ0bi1saWdodC1kaXNiYWxlZCBidG4gYWRkLXJlZi1idG4gbXktMiBib3JkZXJDYXJkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwicG9pbnRlclwiPiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTEwLjAwMTMgNC4xNjQwNlYxNS44MzA3TTQuMTY3OTcgOS45OTc0SDE1LjgzNDZcIiBzdHJva2U9XCIjNkJDQUZGXCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+IDxzcGFuPkFkZCBSZWZlcmVuY2UgSW1hZ2U8L3NwYW4+IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIhcXVlc3Rpb24uZ2V0KCdkaXNhYmxlUnVuQUknKT8udmFsdWUgJiYgZ2V0QW5zd2VyRm9ybUdyb3VwX0Zvcm1Db250cm9sKGksaiwnbXVsdGlSZWZlcmVuY2VJbWFnZScsayk/LnZhbHVlLmxlbmd0aCA8IDVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY29sLWxnLTMgYnRuIGFkZC1yZWYtYnRuIGJ0bi1saWdodC1wcmltYXJ5IG15LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJkLW5vbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaWRdPVwiJ2ZpbGV1cGxvYWRfdmFsaWRJbWFnZTEnK2kraitrXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImZpbGVcIiBuYW1lPVwiZmlsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjY2VwdD1cImltYWdlL3BuZywgaW1hZ2UvanBlZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwibG9hZEltYWdlRnJvbURldmljZShpLHJlZkltZ1FJZHgsJGV2ZW50LGssJ211bHRpUmVmZXJlbmNlSW1hZ2UnKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInBvaW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZm9yXT1cIidmaWxldXBsb2FkX3ZhbGlkSW1hZ2UxJytpK2ora1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJyZWZJbWdRSWR4PWo7XCI+IDxzdmdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTEwIDQuMTY3OTdWMTUuODM0Nk00LjE2NjY5IDEwLjAwMTNIMTUuODMzNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzAwOUJGM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS42N1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5BZGQgUmVmZXJlbmNlIEltYWdlIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNvbC1sZy00IGZvcm0tY2hlY2sgZm9ybS1zd2l0Y2ggbXgtMiBidG4tc2VjIG10LTYgdGV4dC1sZWZ0IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgbXgtMCBwb2ludGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCIgbmFtZT1cInRvY1wiIHZhbHVlPVwiMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5nRGVmYXVsdENvbnRyb2xcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiYWxsb3dVcGxvYWRmcm9tR2FsbGVyeVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgcG9pbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcj1cImZsZXhTd2l0Y2hDaGVja0RlZmF1bHRcIj48L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFsbG93IHVwbG9hZCBmcm9tIGdhbGxlcnlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0yXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTMgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyIG10LTJcIiAqbmdJZj1cInVzZXJUeXBlICYmIHVzZXJUeXBlID09PSAndGFuZ28nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwiZnMxNi02MDAgcHgtMTJcIj4gUnVuIEFJIOKcqDwvaDM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1zd2l0Y2ggYWxpZ24taXRlbXMtY2VudGVyIGJ0bi1zZWMgbWwtNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIChjbGljayk9XCJSdW5BSU5ldyhpLGosaylcIiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBwb2ludGVyXCIgdHlwZT1cImNoZWNrYm94XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInJ1bkFJXCIgbmFtZT1cInRvY1wiIHZhbHVlPVwiMVwiIChjbGljayk9XCJSdW5BSU5ldyhpLGosaywkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yPVwiZmxleFN3aXRjaENoZWNrRGVmYXVsdFwiPjwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyBbbmdDbGFzc109XCJxdWVzdGlvbi5nZXQoJ2Fuc3dlclR5cGUnKT8udmFsdWUgPT09ICdtdWx0aXBsZUltYWdlJyA/ICdtdC0xJyA6ICcnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdFRvb2x0aXA9XCJFbmFibGUgQUkgd2hlcmUgeW91IHdhbnQgdGFuZ28gdG8gaWRlbnRpZnksIHRyYWNrIGFuZCBhbGVydCBpbnN0YW5jZXMuXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0VG9vbHRpcFBvc2l0aW9uPVwiYWJvdmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRUb29sdGlwQ2xhc3M9XCJjdXN0b20tdGVzdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzIzMDFfMTAwMDM4KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTcuOTk5NjcgMTAuNjY1NFY3Ljk5ODdNNy45OTk2NyA1LjMzMjAzSDguMDA2MzRNMTQuNjY2MyA3Ljk5ODdDMTQuNjY2MyAxMS42ODA2IDExLjY4MTYgMTQuNjY1NCA3Ljk5OTY3IDE0LjY2NTRDNC4zMTc3OCAxNC42NjU0IDEuMzMzMDEgMTEuNjgwNiAxLjMzMzAxIDcuOTk4N0MxLjMzMzAxIDQuMzE2OCA0LjMxNzc4IDEuMzMyMDMgNy45OTk2NyAxLjMzMjAzQzExLjY4MTYgMS4zMzIwMyAxNC42NjYzIDQuMzE2OCAxNC42NjYzIDcuOTk4N1pcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM5OEEyQjNcIiBzdHJva2Utd2lkdGg9XCIyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2xpcFBhdGggaWQ9XCJjbGlwMF8yMzAxXzEwMDAzOFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIGZpbGw9XCJ3aGl0ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2NsaXBQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInF1ZXN0aW9uLmdldCgnYW5zd2VycycpPy5oYXNFcnJvcignZHVwbGljYXRlU3RyaW5nJylcIiBjbGFzcz1cInRleHQtZGFuZ2VyIG10LTJcIj4qIFNhbWUgYW5zd2VyIGNhbm5vdCBiZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBlYXRlZDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgY2xhc3M9XCJyb3dcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIlsnbXVsdGlwbGVjaG9pY2VtdWx0aXBsZScsJ211bHRpcGxlY2hvaWNlc2luZ2xlJywnZHJvcGRvd24nXS5pbmNsdWRlcyhxdWVzdGlvbi5nZXQoJ2Fuc3dlclR5cGUnKT8udmFsdWUpICYmIGFsbG93QWRkQW5zd2VyKHF1ZXN0aW9uLmdldCgnYW5zd2VycycpPy52YWx1ZSkgJiYgIXF1ZXN0aW9uLmdldCgnZGlzYWJsZVJ1bkFJJyk/LnZhbHVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKGNsaWNrKT1cIkFkZE1vcmVBbnMoaSxqLHF1ZXN0aW9uLmdldCgnYW5zd2VyVHlwZScpPy52YWx1ZSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gY29sLWxnLTEyIGJ0bi1saWdodC1wcmltYXJ5IG15LTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFkZCBNb3JlIEFuc3dlcjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBJbWFnZSAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJbJ2ltYWdlJywnZGVzY3JpcHRpdmVJbWFnZScsJ211bHRpcGxlSW1hZ2UnXS5pbmNsdWRlcyhxdWVzdGlvbi5nZXQoJ2Fuc3dlclR5cGUnKT8udmFsdWUpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIGZvcm1Hcm91cE5hbWU9XCJhbnN3ZXJzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgaW1hZ2Ugb2YgZ2V0QW5zd2VyRm9ybUdyb3VwX0Zvcm1Db250cm9sKGksaiwnbXVsdGlSZWZlcmVuY2VJbWFnZScpPy52YWx1ZTtsZXQgbj1pbmRleFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY29sLW1kLTQgaW1hZ2UtY29udGFpbmVyIHJlZl9pbWdfY29udCByZWZfaW1nX2NvbnQgbWItNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cInt7ZW52aXJvbm1lbnQuVHJheEFuc3dlckNETn19e3tpbWFnZS5pbWFnZVVSTH19XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiOTAlXCIgaGVpZ2h0PVwiMzAwcHhcIiBjbGFzcz1cImF1dG8tYWRqdXN0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdD1cIlRhbmdvIEV5ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3ZlcmxheS1pY29uc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJvblBvcHVwKGltYWdlLmltYWdlVVJMKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiNDBcIiBoZWlnaHQ9XCI0MFwiIHZpZXdCb3g9XCIwIDAgNDAgNDBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBmaWx0ZXI9XCJ1cmwoI2ZpbHRlcjBfZF8xNDU1N182MjUxMylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjJcIiB5PVwiMVwiIHdpZHRoPVwiMzZcIiBoZWlnaHQ9XCIzNlwiIHJ4PVwiOFwiIGZpbGw9XCJ3aGl0ZVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjIuNVwiIHk9XCIxLjVcIiB3aWR0aD1cIjM1XCIgaGVpZ2h0PVwiMzVcIiByeD1cIjcuNVwiIHN0cm9rZT1cIiNEMEQ1RERcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMjIuNSAxMS41SDI3LjVNMjcuNSAxMS41VjE2LjVNMjcuNSAxMS41TDIxLjY2NjcgMTcuMzMzM00xNy41IDI2LjVIMTIuNU0xMi41IDI2LjVWMjEuNU0xMi41IDI2LjVMMTguMzMzMyAyMC42NjY3XCIgc3Ryb2tlPVwiIzM0NDA1NFwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWx0ZXIgaWQ9XCJmaWx0ZXIwX2RfMTQ1NTdfNjI1MTNcIiB4PVwiMFwiIHk9XCIwXCIgd2lkdGg9XCI0MFwiIGhlaWdodD1cIjQwXCIgZmlsdGVyVW5pdHM9XCJ1c2VyU3BhY2VPblVzZVwiIGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycz1cInNSR0JcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT1cIjBcIiByZXN1bHQ9XCJCYWNrZ3JvdW5kSW1hZ2VGaXhcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUNvbG9yTWF0cml4IGluPVwiU291cmNlQWxwaGFcIiB0eXBlPVwibWF0cml4XCIgdmFsdWVzPVwiMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMTI3IDBcIiByZXN1bHQ9XCJoYXJkQWxwaGFcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZU9mZnNldCBkeT1cIjFcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249XCIxXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVDb2xvck1hdHJpeCB0eXBlPVwibWF0cml4XCIgdmFsdWVzPVwiMCAwIDAgMCAwLjA2Mjc0NTEgMCAwIDAgMCAwLjA5NDExNzYgMCAwIDAgMCAwLjE1Njg2MyAwIDAgMCAwLjA1IDBcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUJsZW5kIG1vZGU9XCJub3JtYWxcIiBpbjI9XCJCYWNrZ3JvdW5kSW1hZ2VGaXhcIiByZXN1bHQ9XCJlZmZlY3QxX2Ryb3BTaGFkb3dfMTQ1NTdfNjI1MTNcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUJsZW5kIG1vZGU9XCJub3JtYWxcIiBpbj1cIlNvdXJjZUdyYXBoaWNcIiBpbjI9XCJlZmZlY3QxX2Ryb3BTaGFkb3dfMTQ1NTdfNjI1MTNcIiByZXN1bHQ9XCJzaGFwZVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9maWx0ZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJkLW5vbmVcIiBbaWRdPVwiJ2ZpbGV1cGxvYWRJbWFnZV80NScrblwiIHR5cGU9XCJmaWxlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiZmlsZVwiIGFjY2VwdD1cImltYWdlL3BuZywgaW1hZ2UvanBlZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInF1ZXN0aW9uLmdldCgnZGlzYWJsZVJ1bkFJJyk/LnZhbHVlID8gJGV2ZW50LnByZXZlbnREZWZhdWx0KCkgOiBudWxsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cInF1ZXN0aW9uLmdldCgnZGlzYWJsZVJ1bkFJJyk/LnZhbHVlID8gJycgOiBsb2FkSW1hZ2VGcm9tRGV2aWNlKGkscmVmSW1nUUlkeCwkZXZlbnQsLTEsJ211bHRpUmVmZXJlbmNlSW1hZ2UnLG4pXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIFtmb3JdPVwiJ2ZpbGV1cGxvYWRJbWFnZV80NScrblwiIChjbGljayk9XCJyZWZJbWdRSWR4PWo7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiNDBcIiBoZWlnaHQ9XCI0MFwiIHZpZXdCb3g9XCIwIDAgNDAgNDBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgZmlsdGVyPVwidXJsKCNmaWx0ZXIwX2RfMTQ1NTdfNjI1MjIpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiMlwiIHk9XCIxXCIgd2lkdGg9XCIzNlwiIGhlaWdodD1cIjM2XCIgcng9XCI4XCIgZmlsbD1cIndoaXRlXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjIuNVwiIHk9XCIxLjVcIiB3aWR0aD1cIjM1XCIgaGVpZ2h0PVwiMzVcIiByeD1cIjcuNVwiIHN0cm9rZT1cIiNEMEQ1RERcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTI3LjUgMjEuNVYyNC44MzMzQzI3LjUgMjUuMjc1NCAyNy4zMjQ0IDI1LjY5OTMgMjcuMDExOCAyNi4wMTE4QzI2LjY5OTMgMjYuMzI0NCAyNi4yNzU0IDI2LjUgMjUuODMzMyAyNi41SDE0LjE2NjdDMTMuNzI0NiAyNi41IDEzLjMwMDcgMjYuMzI0NCAxMi45ODgyIDI2LjAxMThDMTIuNjc1NiAyNS42OTkzIDEyLjUgMjUuMjc1NCAxMi41IDI0LjgzMzNWMjEuNU0yNC4xNjY3IDE1LjY2NjdMMjAgMTEuNU0yMCAxMS41TDE1LjgzMzMgMTUuNjY2N00yMCAxMS41VjIxLjVcIiBzdHJva2U9XCIjMzQ0MDU0XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbHRlciBpZD1cImZpbHRlcjBfZF8xNDU1N182MjUyMlwiIHg9XCIwXCIgeT1cIjBcIiB3aWR0aD1cIjQwXCIgaGVpZ2h0PVwiNDBcIiBmaWx0ZXJVbml0cz1cInVzZXJTcGFjZU9uVXNlXCIgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPVwic1JHQlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT1cIjBcIiByZXN1bHQ9XCJCYWNrZ3JvdW5kSW1hZ2VGaXhcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVDb2xvck1hdHJpeCBpbj1cIlNvdXJjZUFscGhhXCIgdHlwZT1cIm1hdHJpeFwiIHZhbHVlcz1cIjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDEyNyAwXCIgcmVzdWx0PVwiaGFyZEFscGhhXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlT2Zmc2V0IGR5PVwiMVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249XCIxXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQ29sb3JNYXRyaXggdHlwZT1cIm1hdHJpeFwiIHZhbHVlcz1cIjAgMCAwIDAgMC4wNjI3NDUxIDAgMCAwIDAgMC4wOTQxMTc2IDAgMCAwIDAgMC4xNTY4NjMgMCAwIDAgMC4wNSAwXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQmxlbmQgbW9kZT1cIm5vcm1hbFwiIGluMj1cIkJhY2tncm91bmRJbWFnZUZpeFwiIHJlc3VsdD1cImVmZmVjdDFfZHJvcFNoYWRvd18xNDU1N182MjUyMlwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUJsZW5kIG1vZGU9XCJub3JtYWxcIiBpbj1cIlNvdXJjZUdyYXBoaWNcIiBpbjI9XCJlZmZlY3QxX2Ryb3BTaGFkb3dfMTQ1NTdfNjI1MjJcIiByZXN1bHQ9XCJzaGFwZVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZmlsdGVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJxdWVzdGlvbi5nZXQoJ2Rpc2FibGVSdW5BSScpPy52YWx1ZSA/ICcnOiBjbGVhclJlZmVyZW5jZUltYWdlKGksaiwtMSxuLCdtdWx0aVJlZmVyZW5jZUltYWdlJyk7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCI0MFwiIGhlaWdodD1cIjQwXCIgdmlld0JveD1cIjAgMCA0MCA0MFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGZpbHRlcj1cInVybCgjZmlsdGVyMF9kXzE0NTU3XzYyNTE0KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiMlwiIHk9XCIxXCIgd2lkdGg9XCIzNlwiIGhlaWdodD1cIjM2XCIgcng9XCI4XCIgZmlsbD1cIndoaXRlXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiMi41XCIgeT1cIjEuNVwiIHdpZHRoPVwiMzVcIiBoZWlnaHQ9XCIzNVwiIHJ4PVwiNy41XCIgc3Ryb2tlPVwiI0QwRDVERFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xMi41IDEzLjk5NzRIMTQuMTY2N00xNC4xNjY3IDEzLjk5NzRIMjcuNU0xNC4xNjY3IDEzLjk5NzRWMjUuNjY0MUMxNC4xNjY3IDI2LjEwNjEgMTQuMzQyMyAyNi41MyAxNC42NTQ4IDI2Ljg0MjZDMTQuOTY3NCAyNy4xNTUxIDE1LjM5MTMgMjcuMzMwNyAxNS44MzMzIDI3LjMzMDdIMjQuMTY2N0MyNC42MDg3IDI3LjMzMDcgMjUuMDMyNiAyNy4xNTUxIDI1LjM0NTIgMjYuODQyNkMyNS42NTc3IDI2LjUzIDI1LjgzMzMgMjYuMTA2MSAyNS44MzMzIDI1LjY2NDFWMTMuOTk3NEgxNC4xNjY3Wk0xNi42NjY3IDEzLjk5NzRWMTIuMzMwN0MxNi42NjY3IDExLjg4ODcgMTYuODQyMyAxMS40NjQ4IDE3LjE1NDggMTEuMTUyMkMxNy40Njc0IDEwLjgzOTcgMTcuODkxMyAxMC42NjQxIDE4LjMzMzMgMTAuNjY0MUgyMS42NjY3QzIyLjEwODcgMTAuNjY0MSAyMi41MzI2IDEwLjgzOTcgMjIuODQ1MiAxMS4xNTIyQzIzLjE1NzcgMTEuNDY0OCAyMy4zMzMzIDExLjg4ODcgMjMuMzMzMyAxMi4zMzA3VjEzLjk5NzRNMTguMzMzMyAxOC4xNjQxVjIzLjE2NDFNMjEuNjY2NyAxOC4xNjQxVjIzLjE2NDFcIiBzdHJva2U9XCIjMzQ0MDU0XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbHRlciBpZD1cImZpbHRlcjBfZF8xNDU1N182MjUxNFwiIHg9XCIwXCIgeT1cIjBcIiB3aWR0aD1cIjQwXCIgaGVpZ2h0PVwiNDBcIiBmaWx0ZXJVbml0cz1cInVzZXJTcGFjZU9uVXNlXCIgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPVwic1JHQlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVGbG9vZCBmbG9vZC1vcGFjaXR5PVwiMFwiIHJlc3VsdD1cIkJhY2tncm91bmRJbWFnZUZpeFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQ29sb3JNYXRyaXggaW49XCJTb3VyY2VBbHBoYVwiIHR5cGU9XCJtYXRyaXhcIiB2YWx1ZXM9XCIwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAxMjcgMFwiIHJlc3VsdD1cImhhcmRBbHBoYVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlT2Zmc2V0IGR5PVwiMVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlR2F1c3NpYW5CbHVyIHN0ZERldmlhdGlvbj1cIjFcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUNvbG9yTWF0cml4IHR5cGU9XCJtYXRyaXhcIiB2YWx1ZXM9XCIwIDAgMCAwIDAuMDYyNzQ1MSAwIDAgMCAwIDAuMDk0MTE3NiAwIDAgMCAwIDAuMTU2ODYzIDAgMCAwIDAuMDUgMFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQmxlbmQgbW9kZT1cIm5vcm1hbFwiIGluMj1cIkJhY2tncm91bmRJbWFnZUZpeFwiIHJlc3VsdD1cImVmZmVjdDFfZHJvcFNoYWRvd18xNDU1N182MjUxNFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQmxlbmQgbW9kZT1cIm5vcm1hbFwiIGluPVwiU291cmNlR3JhcGhpY1wiIGluMj1cImVmZmVjdDFfZHJvcFNoYWRvd18xNDU1N182MjUxNFwiIHJlc3VsdD1cInNoYXBlXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2ZpbHRlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwicmVmX2RlbF9pY29uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCIocXVlc3Rpb24uZ2V0KCdhbnN3ZXJUeXBlJyk/LnZhbHVlID09PSAnaW1hZ2UnICYmIHF1ZXN0aW9uLmdldCgncnVuQUlEZWZhdWx0Jyk/LnZhbHVlKSA/ICcnOiBjbGVhclJlZmVyZW5jZUltYWdlKGksaik7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIFtzdHlsZV09XCIocXVlc3Rpb24uZ2V0KCdhbnN3ZXJUeXBlJyk/LnZhbHVlID09PSAnaW1hZ2UnICYmIHF1ZXN0aW9uLmdldCgncnVuQUlEZWZhdWx0Jyk/LnZhbHVlKSA/ICdjdXJzb3I6ZGVmYXVsdCc6JydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTIuNSA1LjAwMTNINC4xNjY2N000LjE2NjY3IDUuMDAxM0gxNy41TTQuMTY2NjcgNS4wMDEzVjE2LjY2OEM0LjE2NjY3IDE3LjExIDQuMzQyMjYgMTcuNTMzOSA0LjY1NDgyIDE3Ljg0NjVDNC45NjczOCAxOC4xNTkgNS4zOTEzMSAxOC4zMzQ2IDUuODMzMzMgMTguMzM0NkgxNC4xNjY3QzE0LjYwODcgMTguMzM0NiAxNS4wMzI2IDE4LjE1OSAxNS4zNDUyIDE3Ljg0NjVDMTUuNjU3NyAxNy41MzM5IDE1LjgzMzMgMTcuMTEgMTUuODMzMyAxNi42NjhWNS4wMDEzSDQuMTY2NjdaTTYuNjY2NjcgNS4wMDEzVjMuMzM0NjRDNi42NjY2NyAyLjg5MjYxIDYuODQyMjYgMi40Njg2OCA3LjE1NDgyIDIuMTU2MTJDNy40NjczOCAxLjg0MzU2IDcuODkxMzEgMS42Njc5NyA4LjMzMzMzIDEuNjY3OTdIMTEuNjY2N0MxMi4xMDg3IDEuNjY3OTcgMTIuNTMyNiAxLjg0MzU2IDEyLjg0NTIgMi4xNTYxMkMxMy4xNTc3IDIuNDY4NjggMTMuMzMzMyAyLjg5MjYxIDEzLjMzMzMgMy4zMzQ2NFY1LjAwMTNNOC4zMzMzMyA5LjE2Nzk3VjE0LjE2OE0xMS42NjY3IDkuMTY3OTdWMTQuMTY4XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiI0I0MjMxOFwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IG1iLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8ZGl2ICpuZ0lmPVwiZ2V0QW5zd2VyRm9ybUdyb3VwX0Zvcm1Db250cm9sKGksaiwnbXVsdGlSZWZlcmVuY2VJbWFnZScpPy52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNvbC1sZy0zIGJ0biBidG4tbGlnaHQtcHJpbWFyeSBtdC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJkLW5vbmVcIiBpZD1cImZpbGV1cGxvYWRcIiB0eXBlPVwiZmlsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImZpbGVcIiBhY2NlcHQ9XCJpbWFnZS9wbmcsIGltYWdlL2pwZWdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwibG9hZEltYWdlRnJvbURldmljZShpLHJlZkltZ1FJZHgsJGV2ZW50KVwiICpuZ0lmPVwiKHF1ZXN0aW9uLmdldCgnYW5zd2VyVHlwZScpPy52YWx1ZSAhPT0gJ2ltYWdlJyB8fCAocXVlc3Rpb24uZ2V0KCdhbnN3ZXJUeXBlJyk/LnZhbHVlID09PSAnaW1hZ2UnICYmICFxdWVzdGlvbi5nZXQoJ3J1bkFJRGVmYXVsdCcpPy52YWx1ZSkpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiZmlsZXVwbG9hZFwiIChjbGljayk9XCJyZWZJbWdRSWR4PWo7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgY2xhc3M9XCJteC0yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIyMVwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMSAyMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGNsaXAtcGF0aD1cInVybCgjY2xpcDBfNDA4Ml8zMTIyKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTE5LjY2NjcgMy4zMzUyN1Y4LjMzNTI3TTE5LjY2NjcgOC4zMzUyN0gxNC42NjY3TTE5LjY2NjcgOC4zMzUyN0wxNS44IDQuNzAxOTNDMTQuOTA0NCAzLjgwNTg2IDEzLjc5NjQgMy4xNTEyNyAxMi41NzkzIDIuNzk5MjVDMTEuMzYyMyAyLjQ0NzIyIDEwLjA3NTkgMi40MDkyMyA4Ljg0MDI1IDIuNjg4ODJDNy42MDQ1NiAyLjk2ODQxIDYuNDU5ODQgMy41NTY0NiA1LjUxMjkgNC4zOTgxMkM0LjU2NTk1IDUuMjM5NzcgMy44NDc2NSA2LjMwNzU5IDMuNDI1MDEgNy41MDE5M00xLjMzMzM0IDE2LjY2ODZWMTEuNjY4Nk0xLjMzMzM0IDExLjY2ODZINi4zMzMzNE0xLjMzMzM0IDExLjY2ODZMNS4yMDAwMSAxNS4zMDE5QzYuMDk1NjMgMTYuMTk4IDcuMjAzNjUgMTYuODUyNiA4LjQyMDY4IDE3LjIwNDZDOS42Mzc3MSAxNy41NTY3IDEwLjkyNDEgMTcuNTk0NiAxMi4xNTk4IDE3LjMxNTFDMTMuMzk1NSAxNy4wMzU1IDE0LjU0MDIgMTYuNDQ3NCAxNS40ODcxIDE1LjYwNThDMTYuNDM0MSAxNC43NjQxIDE3LjE1MjQgMTMuNjk2MyAxNy41NzUgMTIuNTAxOVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzAwOUJGM1wiIHN0cm9rZS13aWR0aD1cIjEuNjdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cImNsaXAwXzQwODJfMzEyMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJ3aGl0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybT1cInRyYW5zbGF0ZSgwLjUpXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY2xpcFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5SZXVwbG9hZCBJbWFnZTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiFxdWVzdGlvbi5nZXQoJ2Rpc2FibGVSdW5BSScpPy52YWx1ZSAmJiBnZXRBbnN3ZXJGb3JtR3JvdXBfRm9ybUNvbnRyb2woaSxqLCdtdWx0aVJlZmVyZW5jZUltYWdlJyk/LnZhbHVlLmxlbmd0aCA8IDUgJiYgIXF1ZXN0aW9uLmdldCgnZGlzYWJsZVJ1bkFJJyk/LnZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY29sLWxnLTMgYnRuIGFkZC1yZWYtYnRuIGJ0bi1saWdodC1wcmltYXJ5IG15LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImQtbm9uZVwiIGlkPVwiZmlsZXVwbG9hZHJlZkltYWdlMVwiIHR5cGU9XCJmaWxlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiZmlsZVwiIGFjY2VwdD1cImltYWdlL3BuZywgaW1hZ2UvanBlZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJsb2FkSW1hZ2VGcm9tRGV2aWNlKGkscmVmSW1nUUlkeCwkZXZlbnQsLTEsJ211bHRpUmVmZXJlbmNlSW1hZ2UnKVwiICpuZ0lmPVwiKHF1ZXN0aW9uLmdldCgnYW5zd2VyVHlwZScpPy52YWx1ZSAhPT0gJ2ltYWdlJyB8fCAocXVlc3Rpb24uZ2V0KCdhbnN3ZXJUeXBlJyk/LnZhbHVlID09PSAnaW1hZ2UnICYmICFxdWVzdGlvbi5nZXQoJ3J1bkFJRGVmYXVsdCcpPy52YWx1ZSkpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJwb2ludGVyXCIgZm9yPVwiZmlsZXVwbG9hZHJlZkltYWdlMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInJlZkltZ1FJZHg9ajtcIj4gPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTEwIDQuMTY3OTdWMTUuODM0Nk00LjE2NjY5IDEwLjAwMTNIMTUuODMzNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMDA5QkYzXCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5BZGQgUmVmZXJlbmNlIEltYWdlIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZ2V0QW5zd2VyRm9ybUdyb3VwX0Zvcm1Db250cm9sKGksaiwnbXVsdGlSZWZlcmVuY2VJbWFnZScpPy52YWx1ZS5sZW5ndGggPj0gNSB8fCBxdWVzdGlvbi5nZXQoJ2Rpc2FibGVSdW5BSScpPy52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY29sLWxnLTMgYnRuLWxpZ2h0LWRpc2JhbGVkIGJ0biBhZGQtcmVmLWJ0biBteS0yIGJvcmRlckNhcmRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwicG9pbnRlclwiPiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTAuMDAxMyA0LjE2NDA2VjE1LjgzMDdNNC4xNjc5NyA5Ljk5NzRIMTUuODM0NlwiIHN0cm9rZT1cIiM2QkNBRkZcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+IDxzcGFuPkFkZCBSZWZlcmVuY2UgSW1hZ2U8L3NwYW4+IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNvbC1sZy00IGZvcm0tY2hlY2sgZm9ybS1zd2l0Y2ggbXgtMiBidG4tc2VjIG10LTYgdGV4dC1sZWZ0IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBteC0wIHBvaW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiIG5hbWU9XCJ0b2NcIiB2YWx1ZT1cIjFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5nRGVmYXVsdENvbnRyb2xcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJhbGxvd1VwbG9hZGZyb21HYWxsZXJ5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIHBvaW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcj1cImZsZXhTd2l0Y2hDaGVja0RlZmF1bHRcIj48L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWxsb3cgdXBsb2FkIGZyb20gZ2FsbGVyeVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiKFsnbXVsdGlwbGVJbWFnZSddLmluY2x1ZGVzKHF1ZXN0aW9uLmdldCgnYW5zd2VyVHlwZScpPy52YWx1ZSkgJiYgZ2V0QW5zd2VyRm9ybUdyb3VwX0Zvcm1Db250cm9sKGksaiwnbXVsdGlSZWZlcmVuY2VJbWFnZScpPy52YWx1ZSA9PT0gJycpID8gJ2NvbC1sZy00IG10LTYnIDogWydpbWFnZScsJ2Rlc2NyaXB0aXZlSW1hZ2UnXS5pbmNsdWRlcyhxdWVzdGlvbi5nZXQoJ2Fuc3dlclR5cGUnKT8udmFsdWUpID8gJ2NvbC1sZy0yJyA6ICcnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4XCIgKm5nSWY9XCIoWydtdWx0aXBsZUltYWdlJ10uaW5jbHVkZXMocXVlc3Rpb24uZ2V0KCdhbnN3ZXJUeXBlJyk/LnZhbHVlKSAmJiBnZXRBbnN3ZXJGb3JtR3JvdXBfRm9ybUNvbnRyb2woaSxqLCdtdWx0aVJlZmVyZW5jZUltYWdlJyk/LnZhbHVlID09PSAnJylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVja1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwiZGVzY3JpcHRpdmV0eXBlXCIgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IGN1cnNvci1wb2ludGVyXCIgdHlwZT1cInJhZGlvXCIgW2lkXT1cIidpbmxpbmVSYWRpbzQnICsgaSArIGpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9XCJ0ZXh0XCIgW25hbWVdPVwiJ2Rlc2NyaXB0aXZldHlwZSdcIiBbYXR0ci5kaXNhYmxlZF09XCJxdWVzdGlvbi5nZXQoJ2Rpc2FibGVSdW5BSScpPy52YWx1ZSA/IHRydWUgOiBudWxsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImN1cnNvci1wb2ludGVyIGRzY3JpcHRpdmVUeXBlXCIgW2Zvcl09XCInaW5saW5lUmFkaW80JyArIGkgKyBqXCI+VGV4dDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgbXMtNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwiZGVzY3JpcHRpdmV0eXBlXCIgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IGN1cnNvci1wb2ludGVyXCIgdHlwZT1cInJhZGlvXCIgW2lkXT1cIidpbmxpbmVSYWRpbzUnICsgaSArIGpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9XCJudW1iZXJcIiBbbmFtZV09XCInZGVzY3JpcHRpdmV0eXBlJ1wiIFthdHRyLmRpc2FibGVkXT1cInF1ZXN0aW9uLmdldCgnZGlzYWJsZVJ1bkFJJyk/LnZhbHVlID8gdHJ1ZSA6IG51bGxcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXIgZHNjcmlwdGl2ZVR5cGVcIiBbZm9yXT1cIidpbmxpbmVSYWRpbzUnICsgaSArIGpcIj5OdW1iZXI8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZ2V0QW5zd2VyRm9ybUdyb3VwX0Zvcm1Db250cm9sKGksaiwnbXVsdGlSZWZlcmVuY2VJbWFnZScpPy52YWx1ZSAmJiBbJ2ltYWdlJywnbXVsdGlwbGVJbWFnZScsJ2Rlc2NyaXB0aXZlSW1hZ2UnXS5pbmNsdWRlcyhxdWVzdGlvbi5nZXQoJ2Fuc3dlclR5cGUnKT8udmFsdWUpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInF1ZXN0aW9uLmdldCgnYW5zd2VyVHlwZScpPy52YWx1ZSA9PT0gJ211bHRpcGxlSW1hZ2UnID8gJ2NvbC1sZy01IGQtZmxleCBtdC02JyA6ICdjb2wtbGctMyBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXIgbXQtMidcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXhcIiAqbmdJZj1cInF1ZXN0aW9uLmdldCgnYW5zd2VyVHlwZScpPy52YWx1ZSA9PT0gJ211bHRpcGxlSW1hZ2UnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2tcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGZvcm1Db250cm9sTmFtZT1cImRlc2NyaXB0aXZldHlwZVwiIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBjdXJzb3ItcG9pbnRlclwiIHR5cGU9XCJyYWRpb1wiIFtpZF09XCInaW5saW5lUmFkaW82JyArIGkgKyBqXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPVwidGV4dFwiIFtuYW1lXT1cIidkZXNjcmlwdGl2ZXR5cGUnXCIgW2F0dHIuZGlzYWJsZWRdPVwicXVlc3Rpb24uZ2V0KCdkaXNhYmxlUnVuQUknKT8udmFsdWUgPyB0cnVlIDogbnVsbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJjdXJzb3ItcG9pbnRlciBkc2NyaXB0aXZlVHlwZVwiIFtmb3JdPVwiJ2lubGluZVJhZGlvNicgKyBpICsgalwiPlRleHQ8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIG1zLTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGZvcm1Db250cm9sTmFtZT1cImRlc2NyaXB0aXZldHlwZVwiIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBjdXJzb3ItcG9pbnRlclwiIHR5cGU9XCJyYWRpb1wiIFtpZF09XCInaW5saW5lUmFkaW82JyArIGkgKyBqXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPVwibnVtYmVyXCIgW25hbWVdPVwiJ2Rlc2NyaXB0aXZldHlwZSdcIiBbYXR0ci5kaXNhYmxlZF09XCJxdWVzdGlvbi5nZXQoJ2Rpc2FibGVSdW5BSScpPy52YWx1ZSA/IHRydWUgOiBudWxsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImN1cnNvci1wb2ludGVyIGRzY3JpcHRpdmVUeXBlXCIgW2Zvcl09XCInaW5saW5lUmFkaW82JyArIGkgKyBqXCI+TnVtYmVyPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleFwiICpuZ0lmPVwidXNlclR5cGUgJiYgdXNlclR5cGUgPT09ICd0YW5nbydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJmczE2LTYwMCBweC0xMlwiPiBSdW4gQUkg4pyoPC9oMz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLXN3aXRjaCBhbGlnbi1pdGVtcy1jZW50ZXIgYnRuLXNlYyBtbC01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gKGNsaWNrKT1cIlJ1bkFJTmV3KGksailcIiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBwb2ludGVyXCIgdHlwZT1cImNoZWNrYm94XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInJ1bkFJXCIgbmFtZT1cInRvY1wiIHZhbHVlPVwiMVwiIChjbGljayk9XCJSdW5BSU5ldyhpLGosLTEsJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcj1cImZsZXhTd2l0Y2hDaGVja0RlZmF1bHRcIj48L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgW25nQ2xhc3NdPVwicXVlc3Rpb24uZ2V0KCdhbnN3ZXJUeXBlJyk/LnZhbHVlID09PSAnbXVsdGlwbGVJbWFnZScgPyAnbXQtMScgOiAnJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjE2XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRUb29sdGlwPVwiRW5hYmxlIEFJIHdoZXJlIHlvdSB3YW50IHRhbmdvIHRvIGlkZW50aWZ5LCB0cmFjayBhbmQgYWxlcnQgaW5zdGFuY2VzLlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdFRvb2x0aXBQb3NpdGlvbj1cImFib3ZlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0VG9vbHRpcENsYXNzPVwiY3VzdG9tLXRlc3RcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgY2xpcC1wYXRoPVwidXJsKCNjbGlwMF8yMzAxXzEwMDAzOClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk03Ljk5OTY3IDEwLjY2NTRWNy45OTg3TTcuOTk5NjcgNS4zMzIwM0g4LjAwNjM0TTE0LjY2NjMgNy45OTg3QzE0LjY2NjMgMTEuNjgwNiAxMS42ODE2IDE0LjY2NTQgNy45OTk2NyAxNC42NjU0QzQuMzE3NzggMTQuNjY1NCAxLjMzMzAxIDExLjY4MDYgMS4zMzMwMSA3Ljk5ODdDMS4zMzMwMSA0LjMxNjggNC4zMTc3OCAxLjMzMjAzIDcuOTk5NjcgMS4zMzIwM0MxMS42ODE2IDEuMzMyMDMgMTQuNjY2MyA0LjMxNjggMTQuNjY2MyA3Ljk5ODdaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjOThBMkIzXCIgc3Ryb2tlLXdpZHRoPVwiMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNsaXBQYXRoIGlkPVwiY2xpcDBfMjMwMV8xMDAwMzhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiBmaWxsPVwid2hpdGVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICAqbmdJZj1cIlsnaW1hZ2UnXS5pbmNsdWRlcyhxdWVzdGlvbi5nZXQoJ2Fuc3dlclR5cGUnKT8udmFsdWUpICYmIHF1ZXN0aW9uLmdldCgnY29tcGxpYW5jZScpPy52YWx1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBmb3JtR3JvdXBOYW1lPVwiYW5zd2Vyc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbXQtMyBkcm9wVGV4dFwiID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTMgY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIHRoZSByZXNwb25zZSBpbWFnZSBpcyBtYXRjaGVkLCB0aGVuIHRoZSBzY29yZSB3aWxsIGJlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzZWxlY3QgY2xhc3M9XCJ3LTE1MHB4IG1zLTEwXCIgZm9ybUNvbnRyb2xOYW1lPVwibWF0Y2hlZENvdW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgdmFsdWUgb2YgZHJvcGRvd25WYWx1ZVwiIFt2YWx1ZV09XCJ2YWx1ZVwiPnt7dmFsdWV9fTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbXQtMyBkcm9wVGV4dFwiID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTMgY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIHRoZSByZXNwb25zZSBpbWFnZSBpcyBub3QgbWF0Y2hlZCwgdGhlbiB0aGUgc2NvcmUgd2lsbCBiZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VsZWN0IGNsYXNzPVwidy0xNTBweCBtcy0xMFwiIGZvcm1Db250cm9sTmFtZT1cIm5vdE1hdGNoZWRDb3VudFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IHZhbHVlIG9mIGRyb3Bkb3duVmFsdWVcIiBbdmFsdWVdPVwidmFsdWVcIj57e3ZhbHVlfX08L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIFZpZGVvIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicXVlc3Rpb24uZ2V0KCdhbnN3ZXJUeXBlJyk/LnZhbHVlID09PSAndmlkZW8nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIGZvcm1Hcm91cE5hbWU9XCJhbnN3ZXJzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIiBjb2wtbGctNCBmb3JtLWNoZWNrIGZvcm0tc3dpdGNoIHRleHQtbGVmdCBhbGlnbi1pdGVtcy1jZW50ZXIgYnRuLXNlYyBtdC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgbXgtMCBwb2ludGVyXCIgdHlwZT1cImNoZWNrYm94XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJ0b2NcIiB2YWx1ZT1cIjFcIiBuZ0RlZmF1bHRDb250cm9sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJhbGxvd1VwbG9hZGZyb21HYWxsZXJ5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgcG9pbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3I9XCJmbGV4U3dpdGNoQ2hlY2tEZWZhdWx0XCI+QWxsb3cgdXBsb2FkIGZyb20gZ2FsbGVyeTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8bmctY29udGFpbmVyICpuZ0lmPVwicXVlc3Rpb24uZ2V0KCdhbnN3ZXJUeXBlJyk/LnZhbHVlID09PSAndGltZSdcIiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBmb3JtR3JvdXBOYW1lPVwiYW5zd2Vyc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCIgY29sLWxnLTQgYnRuLXNlYyBtdC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY29udHJvbCBmb3JtLWNvbnRyb2wtc29saWQgZmxhdHBpY2tyLWlucHV0IHctMjAwcHhcIiB0eXBlPVwidGltZVwiIG5hbWU9XCJ0aW1lXCIgbmdEZWZhdWx0Q29udHJvbCBmb3JtQ29udHJvbE5hbWU9XCJhbnN3ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj4gLS0+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicXVlc3Rpb24uZ2V0KCdhbnN3ZXJUeXBlJyk/LnZhbHVlID09PSAnbGluZWFyc2NhbGUnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIGZvcm1Hcm91cE5hbWU9XCJhbnN3ZXJzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wVGV4dFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNlbGVjdCBUeXBlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBjbGFzcz1cIlwiIGZvcm1Db250cm9sTmFtZT1cImxpbmVhclR5cGVcIiAoY2hhbmdlKT1cInVwZGF0ZU51bWJlcigkZXZlbnQsaSxqKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJkZWdyZWVcIj5EZWdyZWUgwrBDPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIm51bWJlclwiPldob2xlIE51bWJlcjwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJwZXJjZW50YWdlXCI+UGVyY2VudGFnZTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wVGV4dFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1pbiBWYWx1ZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaWItY291bnRlciBzdHlsZT1cIndpZHRoOiA0MCVcIiBmb3JtQ29udHJvbE5hbWU9XCJyYW5nZVN0YXJ0XCIgW3N0ZXBdPVwiMVwiIHBsYWNlaG9sZGVyPVwiMFwiIFt0eXBlXT1cImdldEFuc3dlckZvcm1Hcm91cF9Gb3JtQ29udHJvbChpLGosJ2xpbmVhclR5cGUnKT8udmFsdWVcIj48L2xpYi1jb3VudGVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wVGV4dFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1heCBWYWx1ZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaWItY291bnRlciBzdHlsZT1cIndpZHRoOiA0MCVcIiBmb3JtQ29udHJvbE5hbWU9XCJyYW5nZUVuZFwiIFtzdGVwXT1cIjFcIiBwbGFjZWhvbGRlcj1cIjBcIiBbdHlwZV09XCJnZXRBbnN3ZXJGb3JtR3JvdXBfRm9ybUNvbnRyb2woaSxqLCdsaW5lYXJUeXBlJyk/LnZhbHVlXCI+PC9saWItY291bnRlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicXVlc3Rpb24uZ2V0KCdhbnN3ZXJzJyk/LmludmFsaWQgJiYgcXVlc3Rpb24uZ2V0KCdhbnN3ZXJzJyk/LnRvdWNoZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInF1ZXN0aW9uLmdldCgnYW5zd2VycycpPy5oYXNFcnJvcignaW52YWxpZFJhbmdlJylcIiBjbGFzcz1cInRleHQtZGFuZ2VyIG10LTJcIj4qIE1pbiB2YWx1ZSBtdXN0IGJlIGxlc3MgdGhhbiBtYXggdmFsdWUuPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInF1ZXN0aW9uLmdldCgnY29tcGxpYW5jZScpPy52YWx1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IG10LTVcIiA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLThcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBmbGV4LW5vd3JhcFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRyb3BUZXh0IG1lLTJcIj5JZiB0aGUgcmVzcG9uc2UgaXMgYmV0d2Vlbjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJ0bi1zZWMgbWUtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jb250cm9sIGZvcm0tY29udHJvbC1zb2xpZCBmbGF0cGlja3ItaW5wdXQgdy0xMDBweFwiIFthdHRyLnR5cGVdPVwiZ2V0QW5zd2VyRm9ybUdyb3VwX0Zvcm1Db250cm9sKGksaiwnbGluZWFyVHlwZScpPy52YWx1ZSA9PT0gJ2RlZ3JlZScgPyAndGV4dCcgOiAnbnVtYmVyJ1wiIFthdHRyLmlucHV0bW9kZV09XCJnZXRBbnN3ZXJGb3JtR3JvdXBfRm9ybUNvbnRyb2woaSxqLCdsaW5lYXJUeXBlJyk/LnZhbHVlID09PSAnZGVncmVlJyA/ICd0ZXh0JyA6ICdudW1lcmljJ1wiIG5hbWU9XCJzdGFydFwiIG5nRGVmYXVsdENvbnRyb2wgZm9ybUNvbnRyb2xOYW1lPVwibWluVmFsdWVcIiBbbWluXT1cInF1ZXN0aW9uLmdldCgnYW5zd2VycycpPy5nZXQoJ3JhbmdlU3RhcnQnKT8udmFsdWVcIiBbbWF4XT1cInF1ZXN0aW9uLmdldCgnYW5zd2VycycpPy5nZXQoJ3JhbmdlRW5kJyk/LnZhbHVlXCIgKGlucHV0KT1cIm9uUmFuZ2VWYWx1ZUlucHV0KCRldmVudCwgaSwgaiwgJ21pblZhbHVlJylcIiAoYmx1cik9XCJjbGFtcFJhbmdlSW5wdXQoaSwgaiwgJ21pblZhbHVlJylcIiAvPiAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJ0bi1zZWMgbWUtMiBhbGlnbi1zZWxmLWNlbnRlclwiPnRvPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYnRuLXNlYyBtZS0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZm9ybS1jb250cm9sLXNvbGlkIGZsYXRwaWNrci1pbnB1dCB3LTEwMHB4XCIgW2F0dHIudHlwZV09XCJnZXRBbnN3ZXJGb3JtR3JvdXBfRm9ybUNvbnRyb2woaSxqLCdsaW5lYXJUeXBlJyk/LnZhbHVlID09PSAnZGVncmVlJyA/ICd0ZXh0JyA6ICdudW1iZXInXCIgW2F0dHIuaW5wdXRtb2RlXT1cImdldEFuc3dlckZvcm1Hcm91cF9Gb3JtQ29udHJvbChpLGosJ2xpbmVhclR5cGUnKT8udmFsdWUgPT09ICdkZWdyZWUnID8gJ3RleHQnIDogJ251bWVyaWMnXCIgbmFtZT1cInN0YXJ0XCIgbmdEZWZhdWx0Q29udHJvbCBmb3JtQ29udHJvbE5hbWU9XCJtYXhWYWx1ZVwiIFttaW5dPVwicXVlc3Rpb24uZ2V0KCdhbnN3ZXJzJyk/LmdldCgncmFuZ2VTdGFydCcpPy52YWx1ZVwiIFttYXhdPVwicXVlc3Rpb24uZ2V0KCdhbnN3ZXJzJyk/LmdldCgncmFuZ2VFbmQnKT8udmFsdWVcIiAoaW5wdXQpPVwib25SYW5nZVZhbHVlSW5wdXQoJGV2ZW50LCBpLCBqLCAnbWF4VmFsdWUnKVwiIChibHVyKT1cImNsYW1wUmFuZ2VJbnB1dChpLCBqLCAnbWF4VmFsdWUnKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkcm9wVGV4dCBtcy0xXCI+LCB0aGVuIHRoZSBzY29yZSB3aWxsIGJlPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTQgdGV4dC1lbmRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VsZWN0IGNsYXNzPVwidy0xNTBweCBtcy0xNFwiIGZvcm1Db250cm9sTmFtZT1cIm1hdGNoZWRDb3VudFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCB2YWx1ZSBvZiBkcm9wZG93blZhbHVlXCIgW3ZhbHVlXT1cInZhbHVlXCI+e3t2YWx1ZX19PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbXQtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRyb3BUZXh0IG10LTUgY29sLW1kLThcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiB0aGUgcmVzcG9uc2UgZGF0ZSBpcyBvdGhlciB0aGFuIHRoZSBzZWxlY3RlZCByYW5nZSwgdGhlbiB0aGUgc2NvcmUgd2lsbCBiZSBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC00IHRleHQtZW5kXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBjbGFzcz1cInctMTUwcHggbXMtMTRcIiBmb3JtQ29udHJvbE5hbWU9XCJub3RNYXRjaGVkQ291bnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgdmFsdWUgb2YgZHJvcGRvd25WYWx1ZVwiIFt2YWx1ZV09XCJ2YWx1ZVwiPnt7dmFsdWV9fTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInF1ZXN0aW9uLmdldCgnYW5zd2VyVHlwZScpPy52YWx1ZSA9PT0gJ2RhdGUnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIGZvcm1Hcm91cE5hbWU9XCJhbnN3ZXJzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbnN3ZXJ2YWxpZGF0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cIlwiIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1cIndpZHRoOjE2cHg7aGVpZ2h0OjE2cHg7Y3Vyc29yOiBwb2ludGVyO1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cIjFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiaGlzdG9yaWNEYXRlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGVja2JveCBtdC0xIG14LTJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJjdXJzb3I6IGRlZmF1bHQ7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDM+QWxsb3cgSGlzdG9yaWMgRGF0ZXMgb24gRGF0ZSBQaWNrZXI8L2gzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwicXVlc3Rpb24uZ2V0KCdjb21wbGlhbmNlJyk/LnZhbHVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggbXQtNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJhbmdlVGV4dFwiPlNlbGVjdCBSYW5nZSBmcm9tPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTMgcHgtNCBwZS0zXCIgaWQ9XCJkYXRlY2xhc3NcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEta3QtZGF0ZXJhbmdlcGlja2VyPVwidHJ1ZVwiIGRhdGEta3QtZGF0ZXJhbmdlcGlja2VyLW9wZW5zPVwibGVmdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIHBvc2l0aW9uLXJlbGF0aXZlIG15LTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi0xIHBvc2l0aW9uLWFic29sdXRlIG1zLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMy4zMzMzIDEuNjY2NjNWNC45OTk5Nk02LjY2NjY3IDEuNjY2NjNWNC45OTk5Nk0yLjUgOC4zMzMyOUgxNy41TTQuMTY2NjcgMy4zMzMyOUgxNS44MzMzQzE2Ljc1MzggMy4zMzMyOSAxNy41IDQuMDc5NDggMTcuNSA0Ljk5OTk2VjE2LjY2NjZDMTcuNSAxNy41ODcxIDE2Ljc1MzggMTguMzMzMyAxNS44MzMzIDE4LjMzMzNINC4xNjY2N0MzLjI0NjE5IDE4LjMzMzMgMi41IDE3LjU4NzEgMi41IDE2LjY2NjZWNC45OTk5NkMyLjUgNC4wNzk0OCAzLjI0NjE5IDMuMzMzMjkgNC4xNjY2NyAzLjMzMzI5WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMzNDQwNTRcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZ4LWRhdGUtcmFuZ2UgZm9ybS1jb250cm9sIHBzLTE0XCIgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0SW5wdXQgbmd4RGF0ZXJhbmdlcGlja2VyTWQgW3NpbmdsZURhdGVQaWNrZXJdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZHJvcHNdPVwiJ2Rvd24nXCIgW29wZW5zXT1cIidyaWdodCdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Fsd2F5c1Nob3dDYWxlbmRhcnNdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2tlZXBDYWxlbmRhck9wZW5pbmdXaXRoUmFuZ2VdPVwidHJ1ZVwiIFtzaG93Q2FuY2VsXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0b2NvbXBsZXRlPVwib2ZmXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdXRvQXBwbHldPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbG9jYWxlXT1cInsgZm9ybWF0OiAnREQtTU0tWVlZWScsIGZpcnN0RGF5OiAxLCBtb250aE5hbWVzOiBbJ0phbnVhcnknLCAnRmVicnVhcnknLCAnTWFyY2gnLCAnQXByaWwnLCAnTWF5JywgJ0p1bmUnLCAnSnVseScsICdBdWd1c3QnLCAnU2VwdGVtYmVyJywgJ09jdG9iZXInLCAnTm92ZW1iZXInLCAnRGVjZW1iZXInXSB9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlc1VwZGF0ZWQpPVwiZGF0ZVJhbmdlKCRldmVudCwnc3RhcnQnLGksailcIiBuYW1lPVwiZGF0ZXJhbmdlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCJ0cnVlXCIgZm9ybUNvbnRyb2xOYW1lPVwicW5TdGFydERhdGVcIiBbc2hvd0Ryb3Bkb3duc109XCJ0cnVlXCIvPiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJhbmdlVGV4dFwiPlRvPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTMgcHgtNCBwZS0zXCIgaWQ9XCJkYXRlY2xhc3NcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEta3QtZGF0ZXJhbmdlcGlja2VyPVwidHJ1ZVwiIGRhdGEta3QtZGF0ZXJhbmdlcGlja2VyLW9wZW5zPVwibGVmdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIHBvc2l0aW9uLXJlbGF0aXZlIG15LTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi0xIHBvc2l0aW9uLWFic29sdXRlIG1zLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMy4zMzMzIDEuNjY2NjNWNC45OTk5Nk02LjY2NjY3IDEuNjY2NjNWNC45OTk5Nk0yLjUgOC4zMzMyOUgxNy41TTQuMTY2NjcgMy4zMzMyOUgxNS44MzMzQzE2Ljc1MzggMy4zMzMyOSAxNy41IDQuMDc5NDggMTcuNSA0Ljk5OTk2VjE2LjY2NjZDMTcuNSAxNy41ODcxIDE2Ljc1MzggMTguMzMzMyAxNS44MzMzIDE4LjMzMzNINC4xNjY2N0MzLjI0NjE5IDE4LjMzMzMgMi41IDE3LjU4NzEgMi41IDE2LjY2NjZWNC45OTk5NkMyLjUgNC4wNzk0OCAzLjI0NjE5IDMuMzMzMjkgNC4xNjY2NyAzLjMzMzI5WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMzNDQwNTRcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZ4LWRhdGUtcmFuZ2UgZm9ybS1jb250cm9sIHBzLTE0XCIgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0SW5wdXQgbmd4RGF0ZXJhbmdlcGlja2VyTWQgW3NpbmdsZURhdGVQaWNrZXJdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Ryb3BzXT1cIidkb3duJ1wiIFtvcGVuc109XCIncmlnaHQnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthbHdheXNTaG93Q2FsZW5kYXJzXT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtrZWVwQ2FsZW5kYXJPcGVuaW5nV2l0aFJhbmdlXT1cInRydWVcIiBbc2hvd0NhbmNlbF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F1dG9BcHBseV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsb2NhbGVdPVwieyBmb3JtYXQ6ICdERC1NTS1ZWVlZJywgZmlyc3REYXk6IDEsIG1vbnRoTmFtZXM6IFsnSmFudWFyeScsICdGZWJydWFyeScsICdNYXJjaCcsICdBcHJpbCcsICdNYXknLCAnSnVuZScsICdKdWx5JywgJ0F1Z3VzdCcsICdTZXB0ZW1iZXInLCAnT2N0b2JlcicsICdOb3ZlbWJlcicsICdEZWNlbWJlciddIH1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVzVXBkYXRlZCk9XCJkYXRlUmFuZ2UoJGV2ZW50LCdlbmQnLGksailcIiBuYW1lPVwiZGF0ZXJhbmdlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCJ0cnVlXCIgZm9ybUNvbnRyb2xOYW1lPVwicW5FbmREYXRlXCIgW3Nob3dEcm9wZG93bnNdPVwidHJ1ZVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBtdC01IGRyb3BUZXh0XCIgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiB0aGUgcmVzcG9uc2UgZGF0ZSBpcyBiZXR3ZWVuIHRoZSBzZWxlY3RlZCByYW5nZSwgdGhlbiB0aGUgc2NvcmUgd2lsbCBiZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzZWxlY3QgY2xhc3M9XCJ3LTE1MHB4IG1zLTE0XCIgZm9ybUNvbnRyb2xOYW1lPVwibWF0Y2hlZENvdW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IHZhbHVlIG9mIGRyb3Bkb3duVmFsdWVcIiBbdmFsdWVdPVwidmFsdWVcIj57e3ZhbHVlfX08L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBtdC0zIGRyb3BUZXh0XCIgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiB0aGUgcmVzcG9uc2UgZGF0ZSBpcyBvdGhlciB0aGFuIHRoZSBzZWxlY3RlZCByYW5nZSwgdGhlbiB0aGUgc2NvcmUgd2lsbCBiZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzZWxlY3QgY2xhc3M9XCJ3LTE1MHB4IG1zLTEwXCIgZm9ybUNvbnRyb2xOYW1lPVwibm90TWF0Y2hlZENvdW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IHZhbHVlIG9mIGRyb3Bkb3duVmFsdWVcIiBbdmFsdWVdPVwidmFsdWVcIj57e3ZhbHVlfX08L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJxdWVzdGlvbi5nZXQoJ2Fuc3dlclR5cGUnKT8udmFsdWUgPT09ICdpbWFnZS92aWRlbydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgZm9ybUdyb3VwTmFtZT1cImFuc3dlcnNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiIGNvbC1sZy00IGZvcm0tY2hlY2sgZm9ybS1zd2l0Y2ggdGV4dC1sZWZ0IGFsaWduLWl0ZW1zLWNlbnRlciBidG4tc2VjIG10LTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBteC0wIHBvaW50ZXJcIiB0eXBlPVwiY2hlY2tib3hcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cInRvY1wiIHZhbHVlPVwiMVwiIG5nRGVmYXVsdENvbnRyb2xcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImFsbG93VXBsb2FkZnJvbUdhbGxlcnlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCBwb2ludGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcj1cImZsZXhTd2l0Y2hDaGVja0RlZmF1bHRcIj5BbGxvdyB1cGxvYWQgZnJvbSBnYWxsZXJ5PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIiBjb2wtbGctNCBmb3JtLWNoZWNrIGZvcm0tc3dpdGNoIHRleHQtbGVmdCBhbGlnbi1pdGVtcy1jZW50ZXIgYnRuLXNlYyBtdC01XCIgKm5nSWY9XCJ1c2VyVHlwZSAmJiB1c2VyVHlwZSA9PT0gJ3RhbmdvJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IG14LTAgcG9pbnRlclwiIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwidG9jXCIgdmFsdWU9XCIxXCIgbmdEZWZhdWx0Q29udHJvbFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwibGltaXRcIiAoY2hhbmdlKT1cInVwZGF0ZUxpbWl0KCRldmVudCxpLGopXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgcG9pbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3I9XCJmbGV4U3dpdGNoQ2hlY2tEZWZhdWx0XCI+U2V0IExpbWl0cyA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIG5nYlRvb2x0aXA9XCJVcGxvYWRzIGFyZSBhbGxvd2VkIGFzIHBlciB0aGUgY29uZmlndXJlZCBpbWFnZS92aWRlbyBsaW1pdHNcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIiBtYXRUb29sdGlwPVwiRW5hYmxlIEFJIHdoZXJlIHlvdSB3YW50IHRhbmdvIHRvIGlkZW50aWZ5LCB0cmFjayBhbmQgYWxlcnQgaW5zdGFuY2VzLlwiIG1hdFRvb2x0aXBQb3NpdGlvbj1cImFib3ZlXCIgbWF0VG9vbHRpcENsYXNzPVwiY3VzdG9tLXRlc3RcIiBuZy1yZWZsZWN0LW5nLWNsYXNzPVwiXCI+PGcgY2xpcC1wYXRoPVwidXJsKCNjbGlwMF8yMzAxXzEwMDAzOClcIj48cGF0aCBkPVwiTTcuOTk5NjcgMTAuNjY1NFY3Ljk5ODdNNy45OTk2NyA1LjMzMjAzSDguMDA2MzRNMTQuNjY2MyA3Ljk5ODdDMTQuNjY2MyAxMS42ODA2IDExLjY4MTYgMTQuNjY1NCA3Ljk5OTY3IDE0LjY2NTRDNC4zMTc3OCAxNC42NjU0IDEuMzMzMDEgMTEuNjgwNiAxLjMzMzAxIDcuOTk4N0MxLjMzMzAxIDQuMzE2OCA0LjMxNzc4IDEuMzMyMDMgNy45OTk2NyAxLjMzMjAzQzExLjY4MTYgMS4zMzIwMyAxNC42NjYzIDQuMzE2OCAxNC42NjYzIDcuOTk4N1pcIiBzdHJva2U9XCIjOThBMkIzXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiPjwvcGF0aD48L2c+PGRlZnM+PGNsaXBQYXRoIGlkPVwiY2xpcDBfMjMwMV8xMDAwMzhcIj48cmVjdCB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiBmaWxsPVwid2hpdGVcIj48L3JlY3Q+PC9jbGlwUGF0aD48L2RlZnM+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCIgY29sLWxnLTEyIGZvcm0tY2hlY2sgZm9ybS1zd2l0Y2ggdGV4dC1sZWZ0IGFsaWduLWl0ZW1zLWNlbnRlciBidG4tc2VjIG10LTVcIiAqbmdJZj1cImdldEFuc3dlckZvcm1Hcm91cF9Gb3JtQ29udHJvbChpLGosJ2xpbWl0Jyk/LnZhbHVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZS0zIG10LTNcIj5BdHRhY2g8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3LTcwcHggbWUtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzZWxlY3QgZm9ybUNvbnRyb2xOYW1lPVwiaW1hZ2VMaW1pdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiMVwiPjE8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjJcIj4yPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCIzXCI+Mzwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiNFwiPjQ8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjVcIj41PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZS0zIG10LTNcIj5pbWFnZXMgYW5kPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy03MHB4IG1lLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VsZWN0IGZvcm1Db250cm9sTmFtZT1cInZpZGVvTGltaXRcIiBwbGFjZWhvbGRlcj1cIi1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjFcIj4xPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCIyXCI+Mjwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiM1wiPjM8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjRcIj40PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCI1XCI+NTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWUtMyBtdC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmlkZW9zLlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsaW1pdFRvb2x0aXBUZXh0IG10LTNcIiAqbmdJZj1cImdldEFuc3dlckZvcm1Hcm91cF9Gb3JtQ29udHJvbChpLGosJ2xpbWl0Jyk/LnZhbHVlICYmIChnZXRBbnN3ZXJGb3JtR3JvdXBfRm9ybUNvbnRyb2woaSxqLCdpbWFnZUxpbWl0Jyk/LnZhbHVlIHx8IGdldEFuc3dlckZvcm1Hcm91cF9Gb3JtQ29udHJvbChpLGosJ3ZpZGVvTGltaXQnKT8udmFsdWUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiBmaWxsPVwibm9uZVwiIG1hdFRvb2x0aXA9XCJFbmFibGUgQUkgd2hlcmUgeW91IHdhbnQgdGFuZ28gdG8gaWRlbnRpZnksIHRyYWNrIGFuZCBhbGVydCBpbnN0YW5jZXMuXCIgbWF0VG9vbHRpcFBvc2l0aW9uPVwiYWJvdmVcIiBtYXRUb29sdGlwQ2xhc3M9XCJjdXN0b20tdGVzdFwiIG5nLXJlZmxlY3QtbmctY2xhc3M9XCJcIj48ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzIzMDFfMTAwMDM4KVwiPjxwYXRoIGQ9XCJNNy45OTk2NyAxMC42NjU0VjcuOTk4N003Ljk5OTY3IDUuMzMyMDNIOC4wMDYzNE0xNC42NjYzIDcuOTk4N0MxNC42NjYzIDExLjY4MDYgMTEuNjgxNiAxNC42NjU0IDcuOTk5NjcgMTQuNjY1NEM0LjMxNzc4IDE0LjY2NTQgMS4zMzMwMSAxMS42ODA2IDEuMzMzMDEgNy45OTg3QzEuMzMzMDEgNC4zMTY4IDQuMzE3NzggMS4zMzIwMyA3Ljk5OTY3IDEuMzMyMDNDMTEuNjgxNiAxLjMzMjAzIDE0LjY2NjMgNC4zMTY4IDE0LjY2NjMgNy45OTg3WlwiIHN0cm9rZT1cIiM5OEEyQjNcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCI+PC9wYXRoPjwvZz48ZGVmcz48Y2xpcFBhdGggaWQ9XCJjbGlwMF8yMzAxXzEwMDAzOFwiPjxyZWN0IHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIGZpbGw9XCJ3aGl0ZVwiPjwvcmVjdD48L2NsaXBQYXRoPjwvZGVmcz48L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2hlY2tsaXN0IGZpbGxlcnMgbXVzdCBjYXB0dXJlL3VwbG9hZCB7eyBnZXRBbnN3ZXJGb3JtR3JvdXBfRm9ybUNvbnRyb2woaSxqLCdpbWFnZUxpbWl0Jyk/LnZhbHVlID8gZ2V0QW5zd2VyRm9ybUdyb3VwX0Zvcm1Db250cm9sKGksaiwnaW1hZ2VMaW1pdCcpPy52YWx1ZSArICcgaW1hZ2UnICsgKGdldEFuc3dlckZvcm1Hcm91cF9Gb3JtQ29udHJvbChpLGosJ2ltYWdlTGltaXQnKT8udmFsdWUgPiAxID8gJ3MnIDogJycpIDogJycgfX0ge3sgZ2V0QW5zd2VyRm9ybUdyb3VwX0Zvcm1Db250cm9sKGksaiwndmlkZW9MaW1pdCcpPy52YWx1ZSA/ICcgYW5kICcgKyBnZXRBbnN3ZXJGb3JtR3JvdXBfRm9ybUNvbnRyb2woaSxqLCd2aWRlb0xpbWl0Jyk/LnZhbHVlICsgJyB2aWRlbycgKyAoZ2V0QW5zd2VyRm9ybUdyb3VwX0Zvcm1Db250cm9sKGksaiwndmlkZW9MaW1pdCcpPy52YWx1ZSA+IDEgPyAncycgOiAnJykgOiAnJyB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWVuZCBweS0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHQtMVwiID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIChjbGljayk9XCJxdWVzdGlvbi5nZXQoJ2Rpc2FibGVSdW5BSScpPy52YWx1ZSA/ICcnIDogY2xvbmVRdWVzdGlvbihpLGopXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdFRvb2x0aXA9XCJEdXBsaWNhdGVcIiBtYXRUb29sdGlwUG9zaXRpb249XCJhYm92ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdFRvb2x0aXBDbGFzcz1cImN1c3RvbS10ZXN0XCIgdmlld0JveD1cIjAgMCAyMCAyMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGNsaXAtcGF0aD1cInVybCgjY2xpcDBfMzM4NV8xMDU3OClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk00LjE2NjYzIDEyLjQ5OTNIMy4zMzMyOUMyLjg5MTI3IDEyLjQ5OTMgMi40NjczNCAxMi4zMjM4IDIuMTU0NzggMTIuMDExMkMxLjg0MjIyIDExLjY5ODYgMS42NjY2MyAxMS4yNzQ3IDEuNjY2NjMgMTAuODMyN1YzLjMzMjY4QzEuNjY2NjMgMi44OTA2NSAxLjg0MjIyIDIuNDY2NzMgMi4xNTQ3OCAyLjE1NDE3QzIuNDY3MzQgMS44NDE2MSAyLjg5MTI3IDEuNjY2MDIgMy4zMzMyOSAxLjY2NjAySDEwLjgzMzNDMTEuMjc1MyAxLjY2NjAyIDExLjY5OTIgMS44NDE2MSAxMi4wMTE4IDIuMTU0MTdDMTIuMzI0NCAyLjQ2NjczIDEyLjUgMi44OTA2NSAxMi41IDMuMzMyNjhWNC4xNjYwMk05LjE2NjYzIDcuNDk5MzVIMTYuNjY2NkMxNy41ODcxIDcuNDk5MzUgMTguMzMzMyA4LjI0NTU0IDE4LjMzMzMgOS4xNjYwMlYxNi42NjZDMTguMzMzMyAxNy41ODY1IDE3LjU4NzEgMTguMzMyNyAxNi42NjY2IDE4LjMzMjdIOS4xNjY2M0M4LjI0NjE1IDE4LjMzMjcgNy40OTk5NiAxNy41ODY1IDcuNDk5OTYgMTYuNjY2VjkuMTY2MDJDNy40OTk5NiA4LjI0NTU0IDguMjQ2MTUgNy40OTkzNSA5LjE2NjYzIDcuNDk5MzVaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5zdHJva2VdPVwicXVlc3Rpb24uZ2V0KCdkaXNhYmxlUnVuQUknKT8udmFsdWUgPyAnI0QwRDVERCcgOiAnIzY2NzA4NSdcIiBzdHJva2Utd2lkdGg9XCIxLjY2NjY3XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNsaXBQYXRoIGlkPVwiY2xpcDBfMzM4NV8xMDU3OFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIGZpbGw9XCJ3aGl0ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2NsaXBQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyAoY2xpY2spPVwicXVlc3Rpb24uZ2V0KCdkaXNhYmxlUnVuQUknKT8udmFsdWUgPyAnJyA6IGRlbGV0ZVF1ZXN0aW9uKGksailcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1cIm1hcmdpbi1sZWZ0OiAyNHB4ICFpbXBvcnRhbnQ7XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdFRvb2x0aXA9XCJEZWxldGUgcXVlc3Rpb25cIiBtYXRUb29sdGlwUG9zaXRpb249XCJhYm92ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdFRvb2x0aXBDbGFzcz1cImN1c3RvbS10ZXN0XCIgdmlld0JveD1cIjAgMCAyMCAyMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCIgW25nYlRvb2x0aXBdPVwicXVlc3Rpb24uZ2V0KCdkaXNhYmxlUnVuQUknKT8udmFsdWUgPyAnVGhlIGRlbGV0ZSBvcHRpb24gaXMgZGlzYWJsZWQgYXMgdGhlIHJ1bkFJIGlzIGVuYWJsZWQnIDogJydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMi41IDQuOTk5MzVINC4xNjY2N000LjE2NjY3IDQuOTk5MzVIMTcuNU00LjE2NjY3IDQuOTk5MzVWMTYuNjY2QzQuMTY2NjcgMTcuMTA4IDQuMzQyMjYgMTcuNTMyIDQuNjU0ODIgMTcuODQ0NUM0Ljk2NzM4IDE4LjE1NzEgNS4zOTEzMSAxOC4zMzI3IDUuODMzMzMgMTguMzMyN0gxNC4xNjY3QzE0LjYwODcgMTguMzMyNyAxNS4wMzI2IDE4LjE1NzEgMTUuMzQ1MiAxNy44NDQ1QzE1LjY1NzcgMTcuNTMyIDE1LjgzMzMgMTcuMTA4IDE1LjgzMzMgMTYuNjY2VjQuOTk5MzVINC4xNjY2N1pNNi42NjY2NyA0Ljk5OTM1VjMuMzMyNjhDNi42NjY2NyAyLjg5MDY1IDYuODQyMjYgMi40NjY3MyA3LjE1NDgyIDIuMTU0MTdDNy40NjczOCAxLjg0MTYxIDcuODkxMzEgMS42NjYwMiA4LjMzMzMzIDEuNjY2MDJIMTEuNjY2N0MxMi4xMDg3IDEuNjY2MDIgMTIuNTMyNiAxLjg0MTYxIDEyLjg0NTIgMi4xNTQxN0MxMy4xNTc3IDIuNDY2NzMgMTMuMzMzMyAyLjg5MDY1IDEzLjMzMzMgMy4zMzI2OFY0Ljk5OTM1TTguMzMzMzMgOS4xNjYwMlYxNC4xNjZNMTEuNjY2NyA5LjE2NjAyVjE0LjE2NlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5zdHJva2VdPVwicXVlc3Rpb24uZ2V0KCdkaXNhYmxlUnVuQUknKT8udmFsdWUgPyAnI0QwRDVERCcgOiAnIzY2NzA4NSdcIiBzdHJva2Utd2lkdGg9XCIxLjY2NjY3XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBteC0wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTQgcHgtMFwiICpuZ0lmPVwiQ2hlY2tsaXN0Rm9ybS5nZXQoJ3NlY3Rpb25zJylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2tsaXN0LWNhcmQgcHktNyB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IChjbGljayk9XCJidWxrVXBsb2FkUXVlc3Rpb24oKVwiIGNsYXNzPVwibXQtMiBidG4tc2VjIHBvaW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk05Ljk5OTk5IDQuMTY2MDJWMTUuODMyN000LjE2NjY2IDkuOTk5MzVIMTUuODMzM1wiIHN0cm9rZT1cIiMzNDQwNTRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPkJ1bGsgVXBsb2FkIFF1ZXN0aW9uczwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTQgcGwtNVwiICpuZ0lmPVwiQ2hlY2tsaXN0Rm9ybS5nZXQoJ3NlY3Rpb25zJylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2tsaXN0LWNhcmQgcHktNyB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IChjbGljayk9XCJhZGROZXdRdWVzdGlvbihzZWN0aW9uSW5kZXgpXCIgY2xhc3M9XCJtdC0yIGJ0bi1zZWMgcG9pbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTkuOTk5OTkgNC4xNjYwMlYxNS44MzI3TTQuMTY2NjYgOS45OTkzNUgxNS44MzMzXCIgc3Ryb2tlPVwiIzM0NDA1NFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+IEFkZCBOZXcgUXVlc3Rpb248L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy00IHBsLTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2tsaXN0LWNhcmQgcHktNyB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IChjbGljayk9XCJhZGROZXdTZWN0aW9uKClcIiBjbGFzcz1cIm10LTIgcHgtMCBidG4tc2VjIHBvaW50ZXJcIj4gPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNOS45OTk5OSA0LjE2NjAyVjE1LjgzMjdNNC4xNjY2NiA5Ljk5OTM1SDE1LjgzMzNcIiBzdHJva2U9XCIjMzQ0MDU0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz4gQWRkIE5ldyBTZWN0aW9uPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9mb3JtPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==