vcomply-workflow-engine 6.1.63 → 6.1.64

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.
@@ -98,16 +98,13 @@ export class AddMultipleResponsibilityContainerComponent {
98
98
  const wb = XLSX.read(bstr, { type: 'binary' });
99
99
  let sheetData = '';
100
100
  let memberArray = [];
101
- console.log(wb, 'wb', wb?.SheetNames?.length);
102
101
  if (wb?.SheetNames?.length > 2) {
103
- console.log(wb.SheetNames, 'wb.SheetNames under if');
104
102
  const sheetData = wb.SheetNames[RESPONSIBILITY.sheetIndex.data]; // get hidden Data sheet
105
103
  const tempData = wb.Sheets[sheetData];
106
104
  const tData = XLSX.utils.sheet_to_json(tempData, {
107
105
  header: 1,
108
106
  });
109
107
  const tempList = tData.filter((dataElement) => dataElement.length > 0);
110
- console.log(tempList, 'tempList');
111
108
  for (let i = 0; i < tempList.length; i++) {
112
109
  if (!tempList[i][3]) {
113
110
  break;
@@ -118,8 +115,6 @@ export class AddMultipleResponsibilityContainerComponent {
118
115
  const excelData1 = wb.Sheets[excelSheetName1];
119
116
  const excelSheetName2 = wb.SheetNames[RESPONSIBILITY.sheetIndex.onGoingResponsibility];
120
117
  const excelData2 = wb.Sheets[excelSheetName2];
121
- console.log(excelData1, excelSheetName1, 'excelData1');
122
- console.log(excelData2, excelSheetName2, 'excelData2');
123
118
  isEmpty =
124
119
  this.bulkUploadService.hasDataInList(excelData1, 7) &&
125
120
  this.bulkUploadService.hasDataInList(excelData2, 7);
@@ -137,7 +132,6 @@ export class AddMultipleResponsibilityContainerComponent {
137
132
  const tempList = tData.filter((dataElement) => dataElement.length > 0);
138
133
  const excelSheetName = wb.SheetNames[0];
139
134
  const excelData = wb.Sheets[excelSheetName];
140
- console.log(excelData, 'excelData');
141
135
  isEmpty = this.bulkUploadService.hasDataInList(excelData, 2);
142
136
  isCorrectFile = this.bulkUploadService.checkCorrectFile(excelData, 0);
143
137
  templateInfo.memberId = tempList[0][25];
@@ -157,7 +151,6 @@ export class AddMultipleResponsibilityContainerComponent {
157
151
  this.isWrongFile = true;
158
152
  return;
159
153
  }
160
- console.log(isEmpty, 'isEmpty container');
161
154
  if (isEmpty) {
162
155
  this.errorMessage =
163
156
  'You have uploaded a blank template. Please add details for all mandatory fields. RETRY';
@@ -216,4 +209,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
216
209
  }], orgDetails: [{
217
210
  type: Input
218
211
  }] } });
219
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLW11bHRpcGxlLXJlc3BvbnNpYmlsaXR5LWNvbnRhaW5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9hZGQtbXVsdGlwbGUtcmVzcG9uc2liaWxpdHktY29udGFpbmVyL2FkZC1tdWx0aXBsZS1yZXNwb25zaWJpbGl0eS1jb250YWluZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvYWRkLW11bHRpcGxlLXJlc3BvbnNpYmlsaXR5LWNvbnRhaW5lci9hZGQtbXVsdGlwbGUtcmVzcG9uc2liaWxpdHktY29udGFpbmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0UsT0FBTyxLQUFLLElBQUksTUFBTSxNQUFNLENBQUM7QUFJN0IsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7Ozs7Ozs7QUFXNUQsTUFBTSxPQUFPLDJDQUEyQztJQTBCdEQsWUFDVSxXQUEyQixFQUMzQixXQUF3QixFQUN4QixpQkFBb0M7UUFGcEMsZ0JBQVcsR0FBWCxXQUFXLENBQWdCO1FBQzNCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUE1QjlDLFdBQU0sR0FBRyxNQUFNLENBQUM7UUFDaEIsbUJBQWMsR0FBVyxpQkFBaUIsQ0FBQztRQUMzQyxxQkFBZ0IsR0FBVyxpQkFBaUIsQ0FBQztRQUM3QyxvQkFBZSxHQUFHLENBQUMsQ0FBQztRQUVwQixlQUFVLEdBQUcsS0FBSyxD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SUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBRUQsaUJBQWlCO1FBQ2YsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNyRCxJQUFJLE9BQU8sRUFBRTtZQUNYLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUNqQjtJQUNILENBQUM7SUFFRCw4QkFBOEIsQ0FBQyxLQUFVO1FBQ3ZDLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxLQUFLLENBQUM7UUFDckMsSUFBSSxDQUFDLHNCQUFzQixHQUFHLEtBQUssQ0FBQztRQUNwQyxJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUN0QixDQUFDOytHQWpPVSwyQ0FBMkM7bUdBQTNDLDJDQUEyQyx3TENsQnhELHdsTkFnSTRHOzs0RkQ5Ry9GLDJDQUEyQztrQkFSdkQsU0FBUzsrQkFDRSwyQ0FBMkM7K0pBNEIzQyxhQUFhO3NCQUF0QixNQUFNO2dCQUNFLE9BQU87c0JBQWYsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWRkUmlza1NlcnZpY2UgfSBmcm9tICcuLi93b3JrZmxvdy1zZXJ2aWNlcy9hZGQtcmlzay5zZXJ2aWNlJztcbmltcG9ydCAqIGFzIFhMU1ggZnJvbSAneGxzeCc7XG5pbXBvcnQgeyBjbG9uZURlZXAgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuLi93b3JrZmxvdy1zZXJ2aWNlcy9hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgQnVsa1VwbG9hZFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9idWxrLXVwbG9hZC5zZXJ2aWNlJztcbmltcG9ydCB7IEFTU0VUUyB9IGZyb20gJy4uL2NvbnN0YW50cy9hc3NldHMuY29uc3RhbnRzJztcbmltcG9ydCB7IFJFU1BPTlNJQklMSVRZIH0gZnJvbSAnLi4vY29uc3RhbnRzL3hsc3guY29uc3RhbnQnO1xudHlwZSBBT0EgPSBhbnlbXVtdO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItYWRkLW11bHRpcGxlLXJlc3BvbnNpYmlsaXR5LWNvbnRhaW5lcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9hZGQtbXVsdGlwbGUtcmVzcG9uc2liaWxpdHktY29udGFpbmVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbXG4gICAgJy4vYWRkLW11bHRpcGxlLXJlc3BvbnNpYmlsaXR5LWNvbnRhaW5lci5jb21wb25lbnQubGVzcycsXG4gICAgJy4uL2Zvcm1zLmxlc3MnLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBZGRNdWx0aXBsZVJlc3BvbnNpYmlsaXR5Q29udGFpbmVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQVNTRVRTID0gQVNTRVRTO1xuICBkb3dubG9hZFN0YXR1czogc3RyaW5nID0gJ05PVF9ET1dOTE9BRElORyc7XG4gIGRvd25sb2FkU3RhdHVzVjI6IHN0cmluZyA9ICdOT1RfRE9XTkxPQURJTkcnO1xuICBkb3dubG9hZFBlcmNlbnQgPSAwO1xuICBmaWxlVmFsdWU6IGFueTtcbiAgc2hvd1NtaWxleSA9IGZhbHNlO1xuICByZXNwb25zaWJpbGl0eURhdGEhOiBhbnk7XG4gIGZpbGVOYW1lID0gJyc7XG4gIHNpbmdsZVRhYlJlc3BvbnNpYmlsaXR5OiBib29sZWFuID0gZmFsc2U7XG4gIG11bHRpVGFiUmVzcG9uc2liaWxpdHk6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaXNGaWxlRW1wdHkgPSBmYWxzZTtcbiAgaXNXcm9uZ0ZpbGUgPSBmYWxzZTtcbiAgaXNXcm9uZ0Zvcm1hdCA9IGZhbHNlO1xuICBlcnJvck1lc3NhZ2UgPSAnIGludmFsaWQgZmlsZSBlcnJvcic7XG4gIG1lbWJlcl9vYmpfaWQgPSAnJztcbiAgYnVsa1VwbG9hZEZsYWchOiBib29sZWFuO1xuICBkZXBsb3llZERhdGU6IG51bWJlciA9IDE2NzcxNTA4NzU7XG4gIG1lbWJlcklkOiBhbnkgPSAnJztcbiAgUkVTUE9OU0lCSUxJVFkgPSBSRVNQT05TSUJJTElUWTtcblxuICBAT3V0cHV0KCkgY2xvc2VXb3JrZmxvdyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQElucHV0KCkgZmVhdHVyZSE6IGFueTtcbiAgQElucHV0KCkgb3JnRGV0YWlscyE6IGFueTtcbiAgaXNSZXNwb25zaWJpbGl0eVNpbXBsaWZpZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJpc2tTZXJ2aWNlOiBBZGRSaXNrU2VydmljZSxcbiAgICBwcml2YXRlIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSxcbiAgICBwcml2YXRlIGJ1bGtVcGxvYWRTZXJ2aWNlOiBCdWxrVXBsb2FkU2VydmljZVxuICApIHsgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMubWVtYmVyX29ial9pZCA9IHRoaXMuYXV0aFNlcnZpY2UuZ2V0VXNlckRldGFpbHMoKS51c2VyPy51aWQ7XG4gICAgdGhpcy5idWxrVXBsb2FkRmxhZyA9IHRoaXMuZmVhdHVyZS5pc0ZlYXR1cmVFbmFibGVkKFxuICAgICAgJ2ZmX2J1bGtfcmVzcG9uc2liaWxpdHknXG4gICAgKTtcbiAgICB0aGlzLmlzUmVzcG9uc2liaWxpdHlTaW1wbGlmaWVkID0gdGhpcy5mZWF0dXJlLmlzRmVhdHVyZUVuYWJsZWQoXG4gICAgICAnZmZfcmVzcG9uc2liaWxpdHlfc2ltcGxpZmljYXRpb24nXG4gICAgKTtcbiAgfVxuXG4gIGRvd25sb2FkVGVtcGxhdGUodmVyc2lvbj86IGFueSkge1xuICAgIHZlcnNpb24gIT09ICd2MidcbiAgICAgID8gKHRoaXMuZG93bmxvYWRTdGF0dXMgPSAnRE9XTkxPQURJTkcnKVxuICAgICAgOiAodGhpcy5kb3dubG9hZFN0YXR1c1YyID0gJ0RPV05MT0FESU5HJyk7XG4gICAgdGhpcy5kb3dubG9hZFBlcmNlbnQgPSAwO1xuICAgIGNvbnN0IGRvd25sb2FkRGF0ZSA9IG5ldyBEYXRlKCkudG9EYXRlU3RyaW5nKCkuc3BsaXQoJyAnKTtcbiAgICBjb25zdCBmaWxlTmFtZSA9IGBFbnRydXN0IFJlc3BvbnNpYmlsaXRpZXMtJHtkb3dubG9hZERhdGVbMl19LSR7ZG93bmxvYWREYXRlWzFdfS0ke2Rvd25sb2FkRGF0ZVszXX0ueGxzeGA7XG5cbiAgICB0aGlzLnJpc2tTZXJ2aWNlLmRvd25sb2FkUmVzcG9uc2liaWxpdHlUZW1wbGF0ZSh2ZXJzaW9uKS5zdWJzY3JpYmUoXG4gICAgICAoZGF0YTogYW55KSA9PiB7XG4gICAgICAgIGlmIChkYXRhLmxvYWRlZCkge1xuICAgICAgICAgIHRoaXMuZG93bmxvYWRQZXJjZW50ID0gMTAwICogKGRhdGEubG9hZGVkIC8gZGF0YS50b3RhbCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuYm9keSkge1xuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZG93bmxvYWRTdGF0dXMgPSB0aGlzLnJpc2tTZXJ2aWNlLmRvd25Mb2FkRmlsZShcbiAgICAgICAgICAgICAgZGF0YS5ib2R5LFxuICAgICAgICAgICAgICAnYXBwbGljYXRpb24veGxzeCcsXG4gICAgICAgICAgICAgIGZpbGVOYW1lXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgdmVyc2lvbiAhPT0gJ3YyJ1xuICAgICAgICAgICAgICA/ICh0aGlzLmRvd25sb2FkU3RhdHVzID0gZG93bmxvYWRTdGF0dXMpXG4gICAgICAgICAgICAgIDogKHRoaXMuZG93bmxvYWRTdGF0dXNWMiA9IGRvd25sb2FkU3RhdHVzKTtcbiAgICAgICAgICB9LCAxNTAwKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIChlcnJvcikgPT4ge1xuICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcbiAgICAgICAgdmVyc2lvbiAhPT0gJ3YyJ1xuICAgICAgICAgID8gKHRoaXMuZG93bmxvYWRTdGF0dXMgPSAnRE9XTkxPQURFRCcpXG4gICAgICAgICAgOiAodGhpcy5kb3dubG9hZFN0YXR1c1YyID0gJ0RPV05MT0FERUQnKTtcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgdXBsb2FkZWRGaWxlRGF0YSE6IGFueTtcblxuICB1cGxvYWRlZEZpbGUoZXZlbnQ6IGFueSkge1xuICAgIHRyeSB7XG4gICAgICB0aGlzLmlzRmlsZUVtcHR5ID0gZmFsc2U7XG4gICAgICB0aGlzLmlzV3JvbmdGaWxlID0gZmFsc2U7XG4gICAgICB0aGlzLmlzV3JvbmdGb3JtYXQgPSBmYWxzZTtcbiAgICAgIGxldCBpc0VtcHR5ID0gZmFsc2U7XG4gICAgICBsZXQgaXNDb3JyZWN0RmlsZSA9IHRydWU7XG4gICAgICBsZXQgcmVzcG9uc2liaWxpdHlCdWxrVXBsb2FkID0ge1xuICAgICAgICBoZWFkZXI6IFtdLFxuICAgICAgICByZXBvcnRzOiBbXSxcbiAgICAgIH07XG4gICAgICBsZXQgdGVtcGxhdGVJbmZvID0ge1xuICAgICAgICBjYXRlZ29yeUxpc3Q6IFtdLFxuICAgICAgICByY0xpc3Q6IFtdLFxuICAgICAgICBhc3NpZ25vcnNMaXN0OiBbXSxcbiAgICAgICAgYXNzaWduZWVzTGlzdDogW10sXG4gICAgICAgIG1lbWJlcklkOiAnJyxcbiAgICAgIH07XG4gICAgICB0aGlzLmZpbGVOYW1lID0gZXZlbnQudGFyZ2V0LmZpbGVzWzBdLm5hbWU7XG4gICAgICAvLyB0aGlzLnVwbG9hZGVkRmlsZXMucHVzaChldmVudC50YXJnZXQuZmlsZXMpO1xuICAgICAgdGhpcy51cGxvYWRlZEZpbGVEYXRhID0gZXZlbnQ7XG4gICAgICBjb25zdCB0YXJnZXQ6IERhdGFUcmFuc2ZlciA9IGV2ZW50LnRhcmdldCBhcyBEYXRhVHJhbnNmZXI7XG4gICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IGN1cmx5XG4gICAgICBpZiAodGFyZ2V0LmZpbGVzLmxlbmd0aCAhPT0gMSlcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgdXNlIG11bHRpcGxlIGZpbGVzJyk7XG4gICAgICBjb25zdCByZWFkZXI6IEZpbGVSZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuICAgICAgcmVhZGVyLm9ubG9hZCA9IChlOiBhbnkpID0+IHtcbiAgICAgICAgY29uc3QgYnN0cjogc3RyaW5nID0gZS50YXJnZXQucmVzdWx0O1xuICAgICAgICBjb25zdCB3YjogWExTWC5Xb3JrQm9vayA9IFhMU1gucmVhZChic3RyLCB7IHR5cGU6ICdiaW5hcnknIH0pO1xuICAgICAgICBsZXQgc2hlZXREYXRhID0gJyc7XG4gICAgICAgIGxldCBtZW1iZXJBcnJheTogYW55W10gPSBbXTtcbiAgICAgICAgY29uc29sZS5sb2cod2IsICd3YicsIHdiPy5TaGVldE5hbWVzPy5sZW5ndGgpO1xuICAgICAgICBpZiAod2I/LlNoZWV0TmFtZXM/Lmxlbmd0aCA+IDIpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyh3Yi5TaGVldE5hbWVzLCAnd2IuU2hlZXROYW1lcyB1bmRlciBpZicpO1xuICAgICAgICAgIGNvbnN0IHNoZWV0RGF0YSA9IHdiLlNoZWV0TmFtZXNbUkVTUE9OU0lCSUxJVFkuc2hlZXRJbmRleC5kYXRhXTsgLy8gZ2V0IGhpZGRlbiBEYXRhIHNoZWV0XG4gICAgICAgICAgY29uc3QgdGVtcERhdGE6IFhMU1guV29ya1NoZWV0ID0gd2IuU2hlZXRzW3NoZWV0RGF0YV07XG4gICAgICAgICAgY29uc3QgdERhdGEgPSBYTFNYLnV0aWxzLnNoZWV0X3RvX2pzb24odGVtcERhdGEsIHtcbiAgICAgICAgICAgIGhlYWRlcjogMSxcbiAgICAgICAgICB9KSBhcyBBT0E7XG4gICAgICAgICAgY29uc3QgdGVtcExpc3QgPSB0RGF0YS5maWx0ZXIoXG4gICAgICAgICAgICAoZGF0YUVsZW1lbnQ6IGFueSkgPT4gZGF0YUVsZW1lbnQubGVuZ3RoID4gMFxuICAgICAgICAgICk7XG4gICAgICAgICAgY29uc29sZS5sb2codGVtcExpc3QsICd0ZW1wTGlzdCcpO1xuICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGVtcExpc3QubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmICghdGVtcExpc3RbaV1bM10pIHtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBtZW1iZXJBcnJheS5wdXNoKHRlbXBMaXN0W2ldWzNdKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBleGNlbFNoZWV0TmFtZTEgPSB3Yi5TaGVldE5hbWVzW1JFU1BPTlNJQklMSVRZLnNoZWV0SW5kZXguZnJlcXVlbmN5UmVzcG9uc2liaWxpdHldO1xuICAgICAgICAgIGNvbnN0IGV4Y2VsRGF0YTE6IFhMU1guV29ya1NoZWV0ID0gd2IuU2hlZXRzW2V4Y2VsU2hlZXROYW1lMV07XG4gICAgICAgICAgY29uc3QgZXhjZWxTaGVldE5hbWUyID0gd2IuU2hlZXROYW1lc1tSRVNQT05TSUJJTElUWS5zaGVldEluZGV4Lm9uR29pbmdSZXNwb25zaWJpbGl0eV07XG4gICAgICAgICAgY29uc3QgZXhjZWxEYXRhMjogWExTWC5Xb3JrU2hlZXQgPSB3Yi5TaGVldHNbZXhjZWxTaGVldE5hbWUyXTtcbiAgICAgICAgICBjb25zb2xlLmxvZyhleGNlbERhdGExLCBleGNlbFNoZWV0TmFtZTEsICdleGNlbERhdGExJyk7XG4gICAgICAgICAgY29uc29sZS5sb2coZXhjZWxEYXRhMiwgZXhjZWxTaGVldE5hbWUyLCAnZXhjZWxEYXRhMicpO1xuICAgICAgICAgIGlzRW1wdHkgPVxuICAgICAgICAgICAgdGhpcy5idWxrVXBsb2FkU2VydmljZS5oYXNEYXRhSW5MaXN0KGV4Y2VsRGF0YTEsIDcpICYmXG4gICAgICAgICAgICB0aGlzLmJ1bGtVcGxvYWRTZXJ2aWNlLmhhc0RhdGFJbkxpc3QoZXhjZWxEYXRhMiwgNykgXG4gICAgICAgICAgaXNDb3JyZWN0RmlsZSA9XG4gICAgICAgICAgICB0aGlzLmJ1bGtVcGxvYWRTZXJ2aWNlLmNoZWNrQ29ycmVjdEZpbGUoZXhjZWxEYXRhMSwgMikgfHxcbiAgICAgICAgICAgIHRoaXMuYnVsa1VwbG9hZFNlcnZpY2UuY2hlY2tDb3JyZWN0RmlsZShleGNlbERhdGEyLCAyKSBcbiAgICAgICAgICB0ZW1wbGF0ZUluZm8ubWVtYmVySWQgPSB0ZW1wTGlzdFswXVtSRVNQT05TSUJJTElUWS51c2VySW5kZXguY3VycmVudFVzZXJdO1xuXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc3Qgc2hlZXREYXRhID0gd2IuU2hlZXROYW1lc1sxXTtcbiAgICAgICAgICBjb25zdCB0ZW1wRGF0YTogWExTWC5Xb3JrU2hlZXQgPSB3Yi5TaGVldHNbc2hlZXREYXRhXTtcbiAgICAgICAgICBjb25zdCB0RGF0YSA9IFhMU1gudXRpbHMuc2hlZXRfdG9fanNvbih0ZW1wRGF0YSwge1xuICAgICAgICAgICAgaGVhZGVyOiAxLFxuICAgICAgICAgIH0pIGFzIEFPQTtcbiAgICAgICAgICBjb25zdCB0ZW1wTGlzdCA9IHREYXRhLmZpbHRlcihcbiAgICAgICAgICAgIChkYXRhRWxlbWVudDogYW55KSA9PiBkYXRhRWxlbWVudC5sZW5ndGggPiAwXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIGNvbnN0IGV4Y2VsU2hlZXROYW1lID0gd2IuU2hlZXROYW1lc1swXTtcbiAgICAgICAgICBjb25zdCBleGNlbERhdGE6IFhMU1guV29ya1NoZWV0ID0gd2IuU2hlZXRzW2V4Y2VsU2hlZXROYW1lXTtcbiAgICAgICAgICBjb25zb2xlLmxvZyhleGNlbERhdGEsICdleGNlbERhdGEnKTtcbiAgICAgICAgICBpc0VtcHR5ID0gdGhpcy5idWxrVXBsb2FkU2VydmljZS5oYXNEYXRhSW5MaXN0KGV4Y2VsRGF0YSwgMik7XG4gICAgICAgICAgaXNDb3JyZWN0RmlsZSA9IHRoaXMuYnVsa1VwbG9hZFNlcnZpY2UuY2hlY2tDb3JyZWN0RmlsZShleGNlbERhdGEsIDApO1xuICAgICAgICAgIHRlbXBsYXRlSW5mby5tZW1iZXJJZCA9IHRlbXBMaXN0WzBdWzI1XTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmZpbGVOYW1lLnN1YnN0cigtNSkgIT09ICcueGxzeCcpIHtcbiAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9XG4gICAgICAgICAgICAnVGhlIGluY29ycmVjdCBmaWxlIGhhcyBiZWVuIHVwbG9hZGVkLiBQbGVhc2UgdXBsb2FkIHRoZSB0ZW1wbGF0ZSB3aGljaCB5b3UgZG93bmxvYWRlZCBmcm9tIGhlcmUuJyArXG4gICAgICAgICAgICAnIFJFVFJZJztcbiAgICAgICAgICB0aGlzLmlzV3JvbmdGaWxlID0gdHJ1ZTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKFxuICAgICAgICAgIHRoaXMubWVtYmVyX29ial9pZCAhPSB0ZW1wbGF0ZUluZm8ubWVtYmVySWQgfHxcbiAgICAgICAgICAhbWVtYmVyQXJyYXkuaW5jbHVkZXModGhpcy5tZW1iZXJfb2JqX2lkKVxuICAgICAgICApIHtcbiAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9XG4gICAgICAgICAgICAnVGhlIGluY29ycmVjdCBmaWxlIGhhcyBiZWVuIHVwbG9hZGVkLiBQbGVhc2UgdXBsb2FkIHRoZSB0ZW1wbGF0ZSB3aGljaCB5b3UgZG93bmxvYWRlZCBmcm9tIGhlcmUuJyArXG4gICAgICAgICAgICAnIFJFVFJZJztcbiAgICAgICAgICB0aGlzLmlzV3JvbmdGaWxlID0gdHJ1ZTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc29sZS5sb2coaXNFbXB0eSwgJ2lzRW1wdHkgY29udGFpbmVyJyk7XG5cbiAgICAgICAgaWYgKGlzRW1wdHkpIHtcbiAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9XG4gICAgICAgICAgICAnWW91IGhhdmUgdXBsb2FkZWQgYSBibGFuayB0ZW1wbGF0ZS4gUGxlYXNlIGFkZCBkZXRhaWxzIGZvciBhbGwgbWFuZGF0b3J5IGZpZWxkcy4gUkVUUlknO1xuICAgICAgICAgIHRoaXMuaXNGaWxlRW1wdHkgPSB0cnVlO1xuICAgICAgICAgIHRoaXMuaXNXcm9uZ0ZpbGUgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLmlzV3JvbmdGb3JtYXQgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLmZpbGVWYWx1ZSA9ICcnO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWlzQ29ycmVjdEZpbGUpIHtcbiAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9XG4gICAgICAgICAgICAnVGhlIGluY29ycmVjdCBmaWxlIGhhcyBiZWVuIHVwbG9hZGVkLiBQbGVhc2UgdXBsb2FkIHRoZSB0ZW1wbGF0ZSB3aGljaCB5b3UgZG93bmxvYWRlZCBmcm9tIGhlcmUuJyArXG4gICAgICAgICAgICAnIFJFVFJZJztcbiAgICAgICAgICB0aGlzLmlzV3JvbmdGaWxlID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5pc1dyb25nRm9ybWF0ID0gdHJ1ZTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHdiPy5TaGVldE5hbWVzPy5sZW5ndGggPiAyKSB7XG4gICAgICAgICAgdGhpcy5tdWx0aVRhYlJlc3BvbnNpYmlsaXR5ID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnNpbmdsZVRhYlJlc3BvbnNpYmlsaXR5ID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICAgIHJlYWRlci5yZWFkQXNCaW5hcnlTdHJpbmcodGFyZ2V0LmZpbGVzWzBdKTtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoZSk7XG4gICAgfVxuICB9XG5cbiAgY2xvc2VTbWlsZXkoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMuc2hvd1NtaWxleSA9IGZhbHNlO1xuICAgIHRoaXMuY2xvc2VXb3JrZmxvdy5lbWl0KHsgZXZ0OiB0aGlzLnJlc3BvbnNpYmlsaXR5RGF0YSwgY29uZmlybTogZmFsc2UgfSk7XG4gIH1cblxuICB0cmlnZ2VyQnJvd3NlRmlsZSgpIHtcbiAgICBjb25zdCBnZXRGaWxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZpbGVJbnB1dCcpO1xuICAgIGlmIChnZXRGaWxlKSB7XG4gICAgICBnZXRGaWxlLmNsaWNrKCk7XG4gICAgfVxuICB9XG5cbiAgY2xvc2VBZGRNdWx0aXBsZVJlc3BvbnNpYmlsaXR5KGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLnNpbmdsZVRhYlJlc3BvbnNpYmlsaXR5ID0gZmFsc2U7XG4gICAgdGhpcy5tdWx0aVRhYlJlc3BvbnNpYmlsaXR5ID0gZmFsc2U7XG4gICAgdGhpcy5maWxlVmFsdWUgPSAnJztcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImFkZC1tdWx0aXBsZS1yaXNrXCIgW2F0dHIuaWRdPVwiJ3Njcm9sbFJlZmVyZW5jZSdcIj5cbiAgPCEtLSBtYWluIGNvbnRhaW5lciBzdGFydHMgaGVyZSAtLT5cbiAgPGRpdiBjbGFzcz1cImFkZC1tdWx0aXBsZS1yaXNrLWJvZHlcIj5cbiAgICA8ZGl2IGNsYXNzPVwiYWRkLW11bHRpcGxlLXJpc2stY29udGFpbmVyXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiaW1hZ2VcIj5cbiAgICAgICAgPGltZyBbc3JjXT1cIkFTU0VUUy5zcHJlYWRzaGVldF9tdWx0aXBsZV9jYXRlZ29yeVwiIGFsdD1cIlwiIC8+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxoND5Zb3UgY2FuIGVudHJ1c3QgbXVsdGlwbGUgcmVzcG9uc2liaWxpdGllcyBpbiBqdXN0IHR3byBlYXN5IHN0ZXBzOjwvaDQ+XG4gICAgICA8dWwgY2xhc3M9XCJsaXN0XCI+XG4gICAgICAgIDxsaT5Eb3dubG9hZCB0aGUgdGVtcGxhdGUgYW5kIGZpbGwgaW4gdGhlIGRldGFpbHMuPC9saT5cbiAgICAgICAgPGxpPlVwbG9hZCB0aGUgLnhsc3ggZmlsZSBhbmQgeW914oCZcmUgZ29vZCB0byBnbyE8L2xpPlxuICAgICAgPC91bD5cblxuICAgICAgPCEtLSBib3RoIG9sZCBhbmQgbmV3IHRlbXBsYXRlIC0tPlxuICAgICAgPGRpdiBjbGFzcz1cImRvd25sb2FkLWJ0blwiICpuZ0lmPVwiXG4gICAgICAgICAgZmVhdHVyZS5pc0ZlYXR1cmVFbmFibGVkKCdmZl9ib3RoX2J1bGtfcmVzcG9uc2liaWxpdHknKSAmJlxuICAgICAgICAgICFmZWF0dXJlLmlzRmVhdHVyZUVuYWJsZWQoJ2ZmX2J1bGtfcmVzcG9uc2liaWxpdHknKSAmJlxuICAgICAgICAgIG9yZ0RldGFpbHM/LmRvY191dGMgPCBkZXBsb3llZERhdGVcbiAgICAgICAgXCI+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJkb3dubG9hZFwiICpuZ0lmPVwiZG93bmxvYWRTdGF0dXMgPT09ICdOT1RfRE9XTkxPQURJTkcnXCIgKGNsaWNrKT1cImRvd25sb2FkVGVtcGxhdGUoKVwiXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiPlxuICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTFiOzwvaT4gRG93bmxvYWQgRXhpc3RpbmcgVGVtcGxhdGVcbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJkb3dubG9hZFN0YXR1cyA9PT0gJ0RPV05MT0FESU5HJ1wiIGNsYXNzPVwiYnVsay1idG4tcHJvZ3Jlc3NcIj5cbiAgICAgICAgICBEb3dubG9hZCBpbiBQcm9ncmVzc1xuICAgICAgICAgIDxhcHAtbGluZS1sb2FkZXIgW2xvYWRlckhlaWdodF09XCInMidcIj48L2FwcC1saW5lLWxvYWRlcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDwhLS0gPGRpdiAqbmdJZj1cImRvd25sb2FkU3RhdHVzID09PSAnRE9XTkxPQURFRCdcIiBjbGFzcz1cImJ1bGstYnRuLXByb2dyZXNzIGNvbXBsZXRlXCI+PGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MWM7PC9pPkRvd25sb2FkIENvbXBsZXRlIC0mbmJzcDs8YnV0dG9uIChjbGljayk9XCJkb3dubG9hZFRlbXBsYXRlKClcIj5SZXRyeSBEb3dubG9hZDwvYnV0dG9uPjwvZGl2PiAtLT5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRvd25sb2FkU3RhdHVzID09PSAnRE9XTkxPQURFRCdcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYnVsay1idG4tcHJvZ3Jlc3NcIj5cbiAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTFjOzwvaT5Eb3dubG9hZCBDb21wbGV0ZVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJidWxrLWJ0bi1hZ2FpblwiPlxuICAgICAgICAgICAgSXMgdGhlIGZpbGUgbm90IGRvd25sb2FkZWQ/XG4gICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJkb3dubG9hZFRlbXBsYXRlKClcIj5SZXRyeSBEb3dubG9hZDwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwib3JEaXZcIj5PUjwvZGl2PlxuXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJkb3dubG9hZFwiICpuZ0lmPVwiZG93bmxvYWRTdGF0dXNWMiA9PT0gJ05PVF9ET1dOTE9BRElORydcIiAoY2xpY2spPVwiZG93bmxvYWRUZW1wbGF0ZSgndjInKVwiXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiPlxuICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTFiOzwvaT4gRG93bmxvYWQgTmV3IFRlbXBsYXRlXG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8ZGl2ICpuZ0lmPVwiZG93bmxvYWRTdGF0dXNWMiA9PT0gJ0RPV05MT0FESU5HJ1wiIGNsYXNzPVwiYnVsay1idG4tcHJvZ3Jlc3NcIj5cbiAgICAgICAgICBEb3dubG9hZCBpbiBQcm9ncmVzc1xuICAgICAgICAgIDxhcHAtbGluZS1sb2FkZXIgW2xvYWRlckhlaWdodF09XCInMidcIj48L2FwcC1saW5lLWxvYWRlcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDwhLS0gPGRpdiAqbmdJZj1cImRvd25sb2FkU3RhdHVzVjIgPT09ICdET1dOTE9BREVEJ1wiIGNsYXNzPVwiYnVsay1idG4tcHJvZ3Jlc3MgY29tcGxldGVcIj48aSBjbGFzcz1cImljb25zXCI+JiN4ZTkxYzs8L2k+RG93bmxvYWQgQ29tcGxldGUgLSZuYnNwOzxidXR0b24gKGNsaWNrKT1cImRvd25sb2FkVGVtcGxhdGUoJ3YyJylcIj5SZXRyeSBEb3dubG9hZDwvYnV0dG9uPjwvZGl2PiAtLT5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRvd25sb2FkU3RhdHVzVjIgPT09ICdET1dOTE9BREVEJ1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJidWxrLWJ0bi1wcm9ncmVzc1wiPlxuICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MWM7PC9pPkRvd25sb2FkIENvbXBsZXRlXG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImJ1bGstYnRuLWFnYWluXCI+XG4gICAgICAgICAgICBJcyB0aGUgZmlsZSBub3QgZG93bmxvYWRlZD9cbiAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cImRvd25sb2FkVGVtcGxhdGUoJ3YyJylcIj5SZXRyeSBEb3dubG9hZDwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8IS0tIG9ubHkgZm9yIG5ldyB0ZW1wbGF0ZSAtLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJkb3dubG9hZC1idG5cIiAqbmdJZj1cIlxuICAgICAgICAgIChmZWF0dXJlLmlzRmVhdHVyZUVuYWJsZWQoJ2ZmX2J1bGtfcmVzcG9uc2liaWxpdHknKSAmJlxuICAgICAgICAgICAgIWZlYXR1cmUuaXNGZWF0dXJlRW5hYmxlZCgnZmZfYm90aF9idWxrX3Jlc3BvbnNpYmlsaXR5JykpIHx8XG4gICAgICAgICAgKGZlYXR1cmUuaXNGZWF0dXJlRW5hYmxlZCgnZmZfYnVsa19yZXNwb25zaWJpbGl0eScpICYmXG4gICAgICAgICAgICBmZWF0dXJlLmlzRmVhdHVyZUVuYWJsZWQoJ2ZmX2JvdGhfYnVsa19yZXNwb25zaWJpbGl0eScpKSB8fFxuICAgICAgICAgIG9yZ0RldGFpbHM/LmRvY191dGMgPiBkZXBsb3llZERhdGVcbiAgICAgICAgXCI+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJkb3dubG9hZFwiICpuZ0lmPVwiZG93bmxvYWRTdGF0dXNWMiA9PT0gJ05PVF9ET1dOTE9BRElORydcIiAoY2xpY2spPVwiZG93bmxvYWRUZW1wbGF0ZSgndjInKVwiXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiPlxuICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTFiOzwvaT4gRG93bmxvYWQgVGVtcGxhdGVcbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJkb3dubG9hZFN0YXR1c1YyID09PSAnRE9XTkxPQURJTkcnXCIgY2xhc3M9XCJidWxrLWJ0bi1wcm9ncmVzc1wiPlxuICAgICAgICAgIERvd25sb2FkIGluIFByb2dyZXNzXG4gICAgICAgICAgPGFwcC1saW5lLWxvYWRlciBbbG9hZGVySGVpZ2h0XT1cIicyJ1wiPjwvYXBwLWxpbmUtbG9hZGVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPCEtLSA8ZGl2ICpuZ0lmPVwiZG93bmxvYWRTdGF0dXNWMiA9PT0gJ0RPV05MT0FERUQnXCIgY2xhc3M9XCJidWxrLWJ0bi1wcm9ncmVzcyBjb21wbGV0ZVwiPjxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTFjOzwvaT5Eb3dubG9hZCBDb21wbGV0ZSAtJm5ic3A7PGJ1dHRvbiAoY2xpY2spPVwiZG93bmxvYWRUZW1wbGF0ZSgndjInKVwiPlJldHJ5IERvd25sb2FkPC9idXR0b24+PC9kaXY+IC0tPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZG93bmxvYWRTdGF0dXNWMiA9PT0gJ0RPV05MT0FERUQnXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImJ1bGstYnRuLXByb2dyZXNzXCI+XG4gICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTkxYzs8L2k+RG93bmxvYWQgQ29tcGxldGVcbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYnVsay1idG4tYWdhaW5cIj5cbiAgICAgICAgICAgIElzIHRoZSBmaWxlIG5vdCBkb3dubG9hZGVkP1xuICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiZG93bmxvYWRUZW1wbGF0ZSgndjInKVwiPlJldHJ5IERvd25sb2FkPC9idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDwhLS0gb25seSBmb3Igb2xkIHRlbXBsYXRlIC0tPlxuICAgICAgPGRpdiBjbGFzcz1cImRvd25sb2FkLWJ0blwiICpuZ0lmPVwiXG4gICAgICAgICAgIWZlYXR1cmUuaXNGZWF0dXJlRW5hYmxlZCgnZmZfYnVsa19yZXNwb25zaWJpbGl0eScpICYmXG4gICAgICAgICAgIWZlYXR1cmUuaXNGZWF0dXJlRW5hYmxlZCgnZmZfYm90aF9idWxrX3Jlc3BvbnNpYmlsaXR5JylcbiAgICAgICAgXCI+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJkb3dubG9hZFwiICpuZ0lmPVwiZG93bmxvYWRTdGF0dXMgPT09ICdOT1RfRE9XTkxPQURJTkcnXCIgKGNsaWNrKT1cImRvd25sb2FkVGVtcGxhdGUoKVwiXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiPlxuICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTFiOzwvaT4gRG93bmxvYWQgVGVtcGxhdGVcbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJidWxrLWJ0bi1wcm9ncmVzc1wiICpuZ0lmPVwiZG93bmxvYWRTdGF0dXMgPT09ICdET1dOTE9BRElORydcIj5cbiAgICAgICAgICBEb3dubG9hZCBpbiBQcm9ncmVzc1xuICAgICAgICAgIDxhcHAtbGluZS1sb2FkZXIgW2xvYWRlckhlaWdodF09XCInMidcIj48L2FwcC1saW5lLWxvYWRlcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkb3dubG9hZFN0YXR1cyA9PT0gJ0RPV05MT0FERUQnXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImJ1bGstYnRuLXByb2dyZXNzXCI+XG4gICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTkxYzs8L2k+RG93bmxvYWQgQ29tcGxldGVcbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYnVsay1idG4tYWdhaW5cIj5cbiAgICAgICAgICAgIElzIHRoZSBmaWxlIG5vdCBkb3dubG9hZGVkP1xuICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiZG93bmxvYWRUZW1wbGF0ZSgpXCI+UmV0cnkgRG93bmxvYWQ8L2J1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxwIGNsYXNzPVwiZXJyb3ItbWVzc2FnZVwiICpuZ0lmPVwiaXNXcm9uZ0ZpbGUgfHwgaXNXcm9uZ0Zvcm1hdCB8fCBpc0ZpbGVFbXB0eVwiPlxuICAgICAgICB7eyBlcnJvck1lc3NhZ2UgfX1cbiAgICAgIDwvcD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbjxpbnB1dCB0eXBlPVwiZmlsZVwiIFsobmdNb2RlbCldPVwiZmlsZVZhbHVlXCIgaWQ9XCJmaWxlSW5wdXRcIiBjbGFzcz1cImhpZGRlbi1pbnB1dFwiIGFjY2VwdD1cIi54bHN4XCJcbiAgKGNoYW5nZSk9XCJ1cGxvYWRlZEZpbGUoJGV2ZW50KVwiIG11bHRpcGxlIC8+XG48YXBwLXNtaWxleS1kaWFsb2ctaW5saW5lICpuZ0lmPVwic2hvd1NtaWxleVwiIFttZXNzYWdlXT1cInNtaWxleU1lc3NhZ2VcIiBbYWN0aW9uQnV0dG9uc109XCJhY3Rpb25CdXR0b25zXCJcbiAgKGFjdGlvbik9XCJhY3Rpb24oJGV2ZW50KVwiIChjbG9zZVNtaWxleSk9XCJjbG9zZVNtaWxleSgkZXZlbnQpXCI+PC9hcHAtc21pbGV5LWRpYWxvZy1pbmxpbmU+XG5cbjxhcHAtYWRkLW11bHRpcGxlLXJlc3BvbnNpYmlsaXR5ICpuZ0lmPVwic2luZ2xlVGFiUmVzcG9uc2liaWxpdHlcIiBbdXBsb2FkZWRGaWxlXT1cInVwbG9hZGVkRmlsZURhdGFcIlxuICAoY2xvc2VBZGRNdWx0aXBsZVJlc3BvbnNpYmlsaXR5KT1cImNsb3NlQWRkTXVsdGlwbGVSZXNwb25zaWJpbGl0eSgkZXZlbnQpXCIgW2ZlYXR1cmVmbGFnXT1cImlzUmVzcG9uc2liaWxpdHlTaW1wbGlmaWVkXCJcbiAgW2ZlYXR1cmVdPVwiZmVhdHVyZVwiPjwvYXBwLWFkZC1tdWx0aXBsZS1yZXNwb25zaWJpbGl0eT5cblxuPGxpYi1hZGQtbXVsdGlwbGUtcmVzcG9uc2liaWxpdHktd2l0aC10YWIgKm5nSWY9XCJtdWx0aVRhYlJlc3BvbnNpYmlsaXR5XCIgW29yZ0RldGFpbHNdPVwib3JnRGV0YWlsc1wiXG4gIFt1cGxvYWRlZEZpbGVdPVwidXBsb2FkZWRGaWxlRGF0YVwiIChjbG9zZUFkZE11bHRpcGxlUmVzcG9uc2liaWxpdHkpPVwiY2xvc2VBZGRNdWx0aXBsZVJlc3BvbnNpYmlsaXR5KCRldmVudClcIlxuICBbZmVhdHVyZWZsYWddPVwiaXNSZXNwb25zaWJpbGl0eVNpbXBsaWZpZWRcIiBbZmVhdHVyZV09XCJmZWF0dXJlXCI+PC9saWItYWRkLW11bHRpcGxlLXJlc3BvbnNpYmlsaXR5LXdpdGgtdGFiPiJdfQ==
212
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLW11bHRpcGxlLXJlc3BvbnNpYmlsaXR5LWNvbnRhaW5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9hZGQtbXVsdGlwbGUtcmVzcG9uc2liaWxpdHktY29udGFpbmVyL2FkZC1tdWx0aXBsZS1yZXNwb25zaWJpbGl0eS1jb250YWluZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvYWRkLW11bHRpcGxlLXJlc3BvbnNpYmlsaXR5LWNvbnRhaW5lci9hZGQtbXVsdGlwbGUtcmVzcG9uc2liaWxpdHktY29udGFpbmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0UsT0FBTyxLQUFLLElBQUksTUFBTSxNQUFNLENBQUM7QUFJN0IsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7Ozs7Ozs7QUFXNUQsTUFBTSxPQUFPLDJDQUEyQztJQTBCdEQsWUFDVSxXQUEyQixFQUMzQixXQUF3QixFQUN4QixpQkFBb0M7UUFGcEMsZ0JBQVcsR0FBWCxXQUFXLENBQWdCO1FBQzNCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUE1QjlDLFdBQU0sR0FBRyxNQUFNLENBQUM7UUFDaEIsbUJBQWMsR0FBVyxpQkFBaUIsQ0FBQztRQUMzQyxxQkFBZ0IsR0FBVyxpQkFBaUIsQ0FBQztRQUM3QyxvQkFBZSxHQUFHLENBQUMsQ0FBQztRQUVwQixlQUFVLEdBQUcsS0FBSyxD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a0JBUnZELFNBQVM7K0JBQ0UsMkNBQTJDOytKQTRCM0MsYUFBYTtzQkFBdEIsTUFBTTtnQkFDRSxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFkZFJpc2tTZXJ2aWNlIH0gZnJvbSAnLi4vd29ya2Zsb3ctc2VydmljZXMvYWRkLXJpc2suc2VydmljZSc7XG5pbXBvcnQgKiBhcyBYTFNYIGZyb20gJ3hsc3gnO1xuaW1wb3J0IHsgY2xvbmVEZWVwIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vd29ya2Zsb3ctc2VydmljZXMvYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7IEJ1bGtVcGxvYWRTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvYnVsay11cGxvYWQuc2VydmljZSc7XG5pbXBvcnQgeyBBU1NFVFMgfSBmcm9tICcuLi9jb25zdGFudHMvYXNzZXRzLmNvbnN0YW50cyc7XG5pbXBvcnQgeyBSRVNQT05TSUJJTElUWSB9IGZyb20gJy4uL2NvbnN0YW50cy94bHN4LmNvbnN0YW50JztcbnR5cGUgQU9BID0gYW55W11bXTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLWFkZC1tdWx0aXBsZS1yZXNwb25zaWJpbGl0eS1jb250YWluZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vYWRkLW11bHRpcGxlLXJlc3BvbnNpYmlsaXR5LWNvbnRhaW5lci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogW1xuICAgICcuL2FkZC1tdWx0aXBsZS1yZXNwb25zaWJpbGl0eS1jb250YWluZXIuY29tcG9uZW50Lmxlc3MnLFxuICAgICcuLi9mb3Jtcy5sZXNzJyxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQWRkTXVsdGlwbGVSZXNwb25zaWJpbGl0eUNvbnRhaW5lckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEFTU0VUUyA9IEFTU0VUUztcbiAgZG93bmxvYWRTdGF0dXM6IHN0cmluZyA9ICdOT1RfRE9XTkxPQURJTkcnO1xuICBkb3dubG9hZFN0YXR1c1YyOiBzdHJpbmcgPSAnTk9UX0RPV05MT0FESU5HJztcbiAgZG93bmxvYWRQZXJjZW50ID0gMDtcbiAgZmlsZVZhbHVlOiBhbnk7XG4gIHNob3dTbWlsZXkgPSBmYWxzZTtcbiAgcmVzcG9uc2liaWxpdHlEYXRhITogYW55O1xuICBmaWxlTmFtZSA9ICcnO1xuICBzaW5nbGVUYWJSZXNwb25zaWJpbGl0eTogYm9vbGVhbiA9IGZhbHNlO1xuICBtdWx0aVRhYlJlc3BvbnNpYmlsaXR5OiBib29sZWFuID0gZmFsc2U7XG4gIGlzRmlsZUVtcHR5ID0gZmFsc2U7XG4gIGlzV3JvbmdGaWxlID0gZmFsc2U7XG4gIGlzV3JvbmdGb3JtYXQgPSBmYWxzZTtcbiAgZXJyb3JNZXNzYWdlID0gJyBpbnZhbGlkIGZpbGUgZXJyb3InO1xuICBtZW1iZXJfb2JqX2lkID0gJyc7XG4gIGJ1bGtVcGxvYWRGbGFnITogYm9vbGVhbjtcbiAgZGVwbG95ZWREYXRlOiBudW1iZXIgPSAxNjc3MTUwODc1O1xuICBtZW1iZXJJZDogYW55ID0gJyc7XG4gIFJFU1BPTlNJQklMSVRZID0gUkVTUE9OU0lCSUxJVFk7XG5cbiAgQE91dHB1dCgpIGNsb3NlV29ya2Zsb3cgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBJbnB1dCgpIGZlYXR1cmUhOiBhbnk7XG4gIEBJbnB1dCgpIG9yZ0RldGFpbHMhOiBhbnk7XG4gIGlzUmVzcG9uc2liaWxpdHlTaW1wbGlmaWVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByaXNrU2VydmljZTogQWRkUmlza1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBidWxrVXBsb2FkU2VydmljZTogQnVsa1VwbG9hZFNlcnZpY2VcbiAgKSB7IH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLm1lbWJlcl9vYmpfaWQgPSB0aGlzLmF1dGhTZXJ2aWNlLmdldFVzZXJEZXRhaWxzKCkudXNlcj8udWlkO1xuICAgIHRoaXMuYnVsa1VwbG9hZEZsYWcgPSB0aGlzLmZlYXR1cmUuaXNGZWF0dXJlRW5hYmxlZChcbiAgICAgICdmZl9idWxrX3Jlc3BvbnNpYmlsaXR5J1xuICAgICk7XG4gICAgdGhpcy5pc1Jlc3BvbnNpYmlsaXR5U2ltcGxpZmllZCA9IHRoaXMuZmVhdHVyZS5pc0ZlYXR1cmVFbmFibGVkKFxuICAgICAgJ2ZmX3Jlc3BvbnNpYmlsaXR5X3NpbXBsaWZpY2F0aW9uJ1xuICAgICk7XG4gIH1cblxuICBkb3dubG9hZFRlbXBsYXRlKHZlcnNpb24/OiBhbnkpIHtcbiAgICB2ZXJzaW9uICE9PSAndjInXG4gICAgICA/ICh0aGlzLmRvd25sb2FkU3RhdHVzID0gJ0RPV05MT0FESU5HJylcbiAgICAgIDogKHRoaXMuZG93bmxvYWRTdGF0dXNWMiA9ICdET1dOTE9BRElORycpO1xuICAgIHRoaXMuZG93bmxvYWRQZXJjZW50ID0gMDtcbiAgICBjb25zdCBkb3dubG9hZERhdGUgPSBuZXcgRGF0ZSgpLnRvRGF0ZVN0cmluZygpLnNwbGl0KCcgJyk7XG4gICAgY29uc3QgZmlsZU5hbWUgPSBgRW50cnVzdCBSZXNwb25zaWJpbGl0aWVzLSR7ZG93bmxvYWREYXRlWzJdfS0ke2Rvd25sb2FkRGF0ZVsxXX0tJHtkb3dubG9hZERhdGVbM119Lnhsc3hgO1xuXG4gICAgdGhpcy5yaXNrU2VydmljZS5kb3dubG9hZFJlc3BvbnNpYmlsaXR5VGVtcGxhdGUodmVyc2lvbikuc3Vic2NyaWJlKFxuICAgICAgKGRhdGE6IGFueSkgPT4ge1xuICAgICAgICBpZiAoZGF0YS5sb2FkZWQpIHtcbiAgICAgICAgICB0aGlzLmRvd25sb2FkUGVyY2VudCA9IDEwMCAqIChkYXRhLmxvYWRlZCAvIGRhdGEudG90YWwpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLmJvZHkpIHtcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGRvd25sb2FkU3RhdHVzID0gdGhpcy5yaXNrU2VydmljZS5kb3duTG9hZEZpbGUoXG4gICAgICAgICAgICAgIGRhdGEuYm9keSxcbiAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL3hsc3gnLFxuICAgICAgICAgICAgICBmaWxlTmFtZVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHZlcnNpb24gIT09ICd2MidcbiAgICAgICAgICAgICAgPyAodGhpcy5kb3dubG9hZFN0YXR1cyA9IGRvd25sb2FkU3RhdHVzKVxuICAgICAgICAgICAgICA6ICh0aGlzLmRvd25sb2FkU3RhdHVzVjIgPSBkb3dubG9hZFN0YXR1cyk7XG4gICAgICAgICAgfSwgMTUwMCk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAoZXJyb3IpID0+IHtcbiAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XG4gICAgICAgIHZlcnNpb24gIT09ICd2MidcbiAgICAgICAgICA/ICh0aGlzLmRvd25sb2FkU3RhdHVzID0gJ0RPV05MT0FERUQnKVxuICAgICAgICAgIDogKHRoaXMuZG93bmxvYWRTdGF0dXNWMiA9ICdET1dOTE9BREVEJyk7XG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIHVwbG9hZGVkRmlsZURhdGEhOiBhbnk7XG5cbiAgdXBsb2FkZWRGaWxlKGV2ZW50OiBhbnkpIHtcbiAgICB0cnkge1xuICAgICAgdGhpcy5pc0ZpbGVFbXB0eSA9IGZhbHNlO1xuICAgICAgdGhpcy5pc1dyb25nRmlsZSA9IGZhbHNlO1xuICAgICAgdGhpcy5pc1dyb25nRm9ybWF0ID0gZmFsc2U7XG4gICAgICBsZXQgaXNFbXB0eSA9IGZhbHNlO1xuICAgICAgbGV0IGlzQ29ycmVjdEZpbGUgPSB0cnVlO1xuICAgICAgbGV0IHJlc3BvbnNpYmlsaXR5QnVsa1VwbG9hZCA9IHtcbiAgICAgICAgaGVhZGVyOiBbXSxcbiAgICAgICAgcmVwb3J0czogW10sXG4gICAgICB9O1xuICAgICAgbGV0IHRlbXBsYXRlSW5mbyA9IHtcbiAgICAgICAgY2F0ZWdvcnlMaXN0OiBbXSxcbiAgICAgICAgcmNMaXN0OiBbXSxcbiAgICAgICAgYXNzaWdub3JzTGlzdDogW10sXG4gICAgICAgIGFzc2lnbmVlc0xpc3Q6IFtdLFxuICAgICAgICBtZW1iZXJJZDogJycsXG4gICAgICB9O1xuICAgICAgdGhpcy5maWxlTmFtZSA9IGV2ZW50LnRhcmdldC5maWxlc1swXS5uYW1lO1xuICAgICAgLy8gdGhpcy51cGxvYWRlZEZpbGVzLnB1c2goZXZlbnQudGFyZ2V0LmZpbGVzKTtcbiAgICAgIHRoaXMudXBsb2FkZWRGaWxlRGF0YSA9IGV2ZW50O1xuICAgICAgY29uc3QgdGFyZ2V0OiBEYXRhVHJhbnNmZXIgPSBldmVudC50YXJnZXQgYXMgRGF0YVRyYW5zZmVyO1xuICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBjdXJseVxuICAgICAgaWYgKHRhcmdldC5maWxlcy5sZW5ndGggIT09IDEpXG4gICAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IHVzZSBtdWx0aXBsZSBmaWxlcycpO1xuICAgICAgY29uc3QgcmVhZGVyOiBGaWxlUmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcbiAgICAgIHJlYWRlci5vbmxvYWQgPSAoZTogYW55KSA9PiB7XG4gICAgICAgIGNvbnN0IGJzdHI6IHN0cmluZyA9IGUudGFyZ2V0LnJlc3VsdDtcbiAgICAgICAgY29uc3Qgd2I6IFhMU1guV29ya0Jvb2sgPSBYTFNYLnJlYWQoYnN0ciwgeyB0eXBlOiAnYmluYXJ5JyB9KTtcbiAgICAgICAgbGV0IHNoZWV0RGF0YSA9ICcnO1xuICAgICAgICBsZXQgbWVtYmVyQXJyYXk6IGFueVtdID0gW107XG4gICAgICAgIGlmICh3Yj8uU2hlZXROYW1lcz8ubGVuZ3RoID4gMikge1xuICAgICAgICAgIGNvbnN0IHNoZWV0RGF0YSA9IHdiLlNoZWV0TmFtZXNbUkVTUE9OU0lCSUxJVFkuc2hlZXRJbmRleC5kYXRhXTsgLy8gZ2V0IGhpZGRlbiBEYXRhIHNoZWV0XG4gICAgICAgICAgY29uc3QgdGVtcERhdGE6IFhMU1guV29ya1NoZWV0ID0gd2IuU2hlZXRzW3NoZWV0RGF0YV07XG4gICAgICAgICAgY29uc3QgdERhdGEgPSBYTFNYLnV0aWxzLnNoZWV0X3RvX2pzb24odGVtcERhdGEsIHtcbiAgICAgICAgICAgIGhlYWRlcjogMSxcbiAgICAgICAgICB9KSBhcyBBT0E7XG4gICAgICAgICAgY29uc3QgdGVtcExpc3QgPSB0RGF0YS5maWx0ZXIoXG4gICAgICAgICAgICAoZGF0YUVsZW1lbnQ6IGFueSkgPT4gZGF0YUVsZW1lbnQubGVuZ3RoID4gMFxuICAgICAgICAgICk7XG4gICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0ZW1wTGlzdC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKCF0ZW1wTGlzdFtpXVszXSkge1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG1lbWJlckFycmF5LnB1c2godGVtcExpc3RbaV1bM10pO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IGV4Y2VsU2hlZXROYW1lMSA9IHdiLlNoZWV0TmFtZXNbUkVTUE9OU0lCSUxJVFkuc2hlZXRJbmRleC5mcmVxdWVuY3lSZXNwb25zaWJpbGl0eV07XG4gICAgICAgICAgY29uc3QgZXhjZWxEYXRhMTogWExTWC5Xb3JrU2hlZXQgPSB3Yi5TaGVldHNbZXhjZWxTaGVldE5hbWUxXTtcbiAgICAgICAgICBjb25zdCBleGNlbFNoZWV0TmFtZTIgPSB3Yi5TaGVldE5hbWVzW1JFU1BPTlNJQklMSVRZLnNoZWV0SW5kZXgub25Hb2luZ1Jlc3BvbnNpYmlsaXR5XTtcbiAgICAgICAgICBjb25zdCBleGNlbERhdGEyOiBYTFNYLldvcmtTaGVldCA9IHdiLlNoZWV0c1tleGNlbFNoZWV0TmFtZTJdO1xuICAgICAgICAgIGlzRW1wdHkgPVxuICAgICAgICAgICAgdGhpcy5idWxrVXBsb2FkU2VydmljZS5oYXNEYXRhSW5MaXN0KGV4Y2VsRGF0YTEsIDcpICYmXG4gICAgICAgICAgICB0aGlzLmJ1bGtVcGxvYWRTZXJ2aWNlLmhhc0RhdGFJbkxpc3QoZXhjZWxEYXRhMiwgNykgXG4gICAgICAgICAgaXNDb3JyZWN0RmlsZSA9XG4gICAgICAgICAgICB0aGlzLmJ1bGtVcGxvYWRTZXJ2aWNlLmNoZWNrQ29ycmVjdEZpbGUoZXhjZWxEYXRhMSwgMikgfHxcbiAgICAgICAgICAgIHRoaXMuYnVsa1VwbG9hZFNlcnZpY2UuY2hlY2tDb3JyZWN0RmlsZShleGNlbERhdGEyLCAyKSBcbiAgICAgICAgICB0ZW1wbGF0ZUluZm8ubWVtYmVySWQgPSB0ZW1wTGlzdFswXVtSRVNQT05TSUJJTElUWS51c2VySW5kZXguY3VycmVudFVzZXJdO1xuXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc3Qgc2hlZXREYXRhID0gd2IuU2hlZXROYW1lc1sxXTtcbiAgICAgICAgICBjb25zdCB0ZW1wRGF0YTogWExTWC5Xb3JrU2hlZXQgPSB3Yi5TaGVldHNbc2hlZXREYXRhXTtcbiAgICAgICAgICBjb25zdCB0RGF0YSA9IFhMU1gudXRpbHMuc2hlZXRfdG9fanNvbih0ZW1wRGF0YSwge1xuICAgICAgICAgICAgaGVhZGVyOiAxLFxuICAgICAgICAgIH0pIGFzIEFPQTtcbiAgICAgICAgICBjb25zdCB0ZW1wTGlzdCA9IHREYXRhLmZpbHRlcihcbiAgICAgICAgICAgIChkYXRhRWxlbWVudDogYW55KSA9PiBkYXRhRWxlbWVudC5sZW5ndGggPiAwXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIGNvbnN0IGV4Y2VsU2hlZXROYW1lID0gd2IuU2hlZXROYW1lc1swXTtcbiAgICAgICAgICBjb25zdCBleGNlbERhdGE6IFhMU1guV29ya1NoZWV0ID0gd2IuU2hlZXRzW2V4Y2VsU2hlZXROYW1lXTtcbiAgICAgICAgICBpc0VtcHR5ID0gdGhpcy5idWxrVXBsb2FkU2VydmljZS5oYXNEYXRhSW5MaXN0KGV4Y2VsRGF0YSwgMik7XG4gICAgICAgICAgaXNDb3JyZWN0RmlsZSA9IHRoaXMuYnVsa1VwbG9hZFNlcnZpY2UuY2hlY2tDb3JyZWN0RmlsZShleGNlbERhdGEsIDApO1xuICAgICAgICAgIHRlbXBsYXRlSW5mby5tZW1iZXJJZCA9IHRlbXBMaXN0WzBdWzI1XTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmZpbGVOYW1lLnN1YnN0cigtNSkgIT09ICcueGxzeCcpIHtcbiAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9XG4gICAgICAgICAgICAnVGhlIGluY29ycmVjdCBmaWxlIGhhcyBiZWVuIHVwbG9hZGVkLiBQbGVhc2UgdXBsb2FkIHRoZSB0ZW1wbGF0ZSB3aGljaCB5b3UgZG93bmxvYWRlZCBmcm9tIGhlcmUuJyArXG4gICAgICAgICAgICAnIFJFVFJZJztcbiAgICAgICAgICB0aGlzLmlzV3JvbmdGaWxlID0gdHJ1ZTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKFxuICAgICAgICAgIHRoaXMubWVtYmVyX29ial9pZCAhPSB0ZW1wbGF0ZUluZm8ubWVtYmVySWQgfHxcbiAgICAgICAgICAhbWVtYmVyQXJyYXkuaW5jbHVkZXModGhpcy5tZW1iZXJfb2JqX2lkKVxuICAgICAgICApIHtcbiAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9XG4gICAgICAgICAgICAnVGhlIGluY29ycmVjdCBmaWxlIGhhcyBiZWVuIHVwbG9hZGVkLiBQbGVhc2UgdXBsb2FkIHRoZSB0ZW1wbGF0ZSB3aGljaCB5b3UgZG93bmxvYWRlZCBmcm9tIGhlcmUuJyArXG4gICAgICAgICAgICAnIFJFVFJZJztcbiAgICAgICAgICB0aGlzLmlzV3JvbmdGaWxlID0gdHJ1ZTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaXNFbXB0eSkge1xuICAgICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID1cbiAgICAgICAgICAgICdZb3UgaGF2ZSB1cGxvYWRlZCBhIGJsYW5rIHRlbXBsYXRlLiBQbGVhc2UgYWRkIGRldGFpbHMgZm9yIGFsbCBtYW5kYXRvcnkgZmllbGRzLiBSRVRSWSc7XG4gICAgICAgICAgdGhpcy5pc0ZpbGVFbXB0eSA9IHRydWU7XG4gICAgICAgICAgdGhpcy5pc1dyb25nRmlsZSA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMuaXNXcm9uZ0Zvcm1hdCA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMuZmlsZVZhbHVlID0gJyc7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICghaXNDb3JyZWN0RmlsZSkge1xuICAgICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID1cbiAgICAgICAgICAgICdUaGUgaW5jb3JyZWN0IGZpbGUgaGFzIGJlZW4gdXBsb2FkZWQuIFBsZWFzZSB1cGxvYWQgdGhlIHRlbXBsYXRlIHdoaWNoIHlvdSBkb3dubG9hZGVkIGZyb20gaGVyZS4nICtcbiAgICAgICAgICAgICcgUkVUUlknO1xuICAgICAgICAgIHRoaXMuaXNXcm9uZ0ZpbGUgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLmlzV3JvbmdGb3JtYXQgPSB0cnVlO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAod2I/LlNoZWV0TmFtZXM/Lmxlbmd0aCA+IDIpIHtcbiAgICAgICAgICB0aGlzLm11bHRpVGFiUmVzcG9uc2liaWxpdHkgPSB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuc2luZ2xlVGFiUmVzcG9uc2liaWxpdHkgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgICAgcmVhZGVyLnJlYWRBc0JpbmFyeVN0cmluZyh0YXJnZXQuZmlsZXNbMF0pO1xuICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgY29uc29sZS5lcnJvcihlKTtcbiAgICB9XG4gIH1cblxuICBjbG9zZVNtaWxleShldmVudDogYW55KSB7XG4gICAgdGhpcy5zaG93U21pbGV5ID0gZmFsc2U7XG4gICAgdGhpcy5jbG9zZVdvcmtmbG93LmVtaXQoeyBldnQ6IHRoaXMucmVzcG9uc2liaWxpdHlEYXRhLCBjb25maXJtOiBmYWxzZSB9KTtcbiAgfVxuXG4gIHRyaWdnZXJCcm93c2VGaWxlKCkge1xuICAgIGNvbnN0IGdldEZpbGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZmlsZUlucHV0Jyk7XG4gICAgaWYgKGdldEZpbGUpIHtcbiAgICAgIGdldEZpbGUuY2xpY2soKTtcbiAgICB9XG4gIH1cblxuICBjbG9zZUFkZE11bHRpcGxlUmVzcG9uc2liaWxpdHkoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMuc2luZ2xlVGFiUmVzcG9uc2liaWxpdHkgPSBmYWxzZTtcbiAgICB0aGlzLm11bHRpVGFiUmVzcG9uc2liaWxpdHkgPSBmYWxzZTtcbiAgICB0aGlzLmZpbGVWYWx1ZSA9ICcnO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiYWRkLW11bHRpcGxlLXJpc2tcIiBbYXR0ci5pZF09XCInc2Nyb2xsUmVmZXJlbmNlJ1wiPlxuICA8IS0tIG1haW4gY29udGFpbmVyIHN0YXJ0cyBoZXJlIC0tPlxuICA8ZGl2IGNsYXNzPVwiYWRkLW11bHRpcGxlLXJpc2stYm9keVwiPlxuICAgIDxkaXYgY2xhc3M9XCJhZGQtbXVsdGlwbGUtcmlzay1jb250YWluZXJcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJpbWFnZVwiPlxuICAgICAgICA8aW1nIFtzcmNdPVwiQVNTRVRTLnNwcmVhZHNoZWV0X211bHRpcGxlX2NhdGVnb3J5XCIgYWx0PVwiXCIgLz5cbiAgICAgIDwvZGl2PlxuICAgICAgPGg0PllvdSBjYW4gZW50cnVzdCBtdWx0aXBsZSByZXNwb25zaWJpbGl0aWVzIGluIGp1c3QgdHdvIGVhc3kgc3RlcHM6PC9oND5cbiAgICAgIDx1bCBjbGFzcz1cImxpc3RcIj5cbiAgICAgICAgPGxpPkRvd25sb2FkIHRoZSB0ZW1wbGF0ZSBhbmQgZmlsbCBpbiB0aGUgZGV0YWlscy48L2xpPlxuICAgICAgICA8bGk+VXBsb2FkIHRoZSAueGxzeCBmaWxlIGFuZCB5b3XigJlyZSBnb29kIHRvIGdvITwvbGk+XG4gICAgICA8L3VsPlxuXG4gICAgICA8IS0tIGJvdGggb2xkIGFuZCBuZXcgdGVtcGxhdGUgLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwiZG93bmxvYWQtYnRuXCIgKm5nSWY9XCJcbiAgICAgICAgICBmZWF0dXJlLmlzRmVhdHVyZUVuYWJsZWQoJ2ZmX2JvdGhfYnVsa19yZXNwb25zaWJpbGl0eScpICYmXG4gICAgICAgICAgIWZlYXR1cmUuaXNGZWF0dXJlRW5hYmxlZCgnZmZfYnVsa19yZXNwb25zaWJpbGl0eScpICYmXG4gICAgICAgICAgb3JnRGV0YWlscz8uZG9jX3V0YyA8IGRlcGxveWVkRGF0ZVxuICAgICAgICBcIj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImRvd25sb2FkXCIgKm5nSWY9XCJkb3dubG9hZFN0YXR1cyA9PT0gJ05PVF9ET1dOTE9BRElORydcIiAoY2xpY2spPVwiZG93bmxvYWRUZW1wbGF0ZSgpXCJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCI+XG4gICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MWI7PC9pPiBEb3dubG9hZCBFeGlzdGluZyBUZW1wbGF0ZVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGRpdiAqbmdJZj1cImRvd25sb2FkU3RhdHVzID09PSAnRE9XTkxPQURJTkcnXCIgY2xhc3M9XCJidWxrLWJ0bi1wcm9ncmVzc1wiPlxuICAgICAgICAgIERvd25sb2FkIGluIFByb2dyZXNzXG4gICAgICAgICAgPGFwcC1saW5lLWxvYWRlciBbbG9hZGVySGVpZ2h0XT1cIicyJ1wiPjwvYXBwLWxpbmUtbG9hZGVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPCEtLSA8ZGl2ICpuZ0lmPVwiZG93bmxvYWRTdGF0dXMgPT09ICdET1dOTE9BREVEJ1wiIGNsYXNzPVwiYnVsay1idG4tcHJvZ3Jlc3MgY29tcGxldGVcIj48aSBjbGFzcz1cImljb25zXCI+JiN4ZTkxYzs8L2k+RG93bmxvYWQgQ29tcGxldGUgLSZuYnNwOzxidXR0b24gKGNsaWNrKT1cImRvd25sb2FkVGVtcGxhdGUoKVwiPlJldHJ5IERvd25sb2FkPC9idXR0b24+PC9kaXY+IC0tPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZG93bmxvYWRTdGF0dXMgPT09ICdET1dOTE9BREVEJ1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJidWxrLWJ0bi1wcm9ncmVzc1wiPlxuICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MWM7PC9pPkRvd25sb2FkIENvbXBsZXRlXG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImJ1bGstYnRuLWFnYWluXCI+XG4gICAgICAgICAgICBJcyB0aGUgZmlsZSBub3QgZG93bmxvYWRlZD9cbiAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cImRvd25sb2FkVGVtcGxhdGUoKVwiPlJldHJ5IERvd25sb2FkPC9idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJvckRpdlwiPk9SPC9kaXY+XG5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImRvd25sb2FkXCIgKm5nSWY9XCJkb3dubG9hZFN0YXR1c1YyID09PSAnTk9UX0RPV05MT0FESU5HJ1wiIChjbGljayk9XCJkb3dubG9hZFRlbXBsYXRlKCd2MicpXCJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCI+XG4gICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MWI7PC9pPiBEb3dubG9hZCBOZXcgVGVtcGxhdGVcbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJkb3dubG9hZFN0YXR1c1YyID09PSAnRE9XTkxPQURJTkcnXCIgY2xhc3M9XCJidWxrLWJ0bi1wcm9ncmVzc1wiPlxuICAgICAgICAgIERvd25sb2FkIGluIFByb2dyZXNzXG4gICAgICAgICAgPGFwcC1saW5lLWxvYWRlciBbbG9hZGVySGVpZ2h0XT1cIicyJ1wiPjwvYXBwLWxpbmUtbG9hZGVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPCEtLSA8ZGl2ICpuZ0lmPVwiZG93bmxvYWRTdGF0dXNWMiA9PT0gJ0RPV05MT0FERUQnXCIgY2xhc3M9XCJidWxrLWJ0bi1wcm9ncmVzcyBjb21wbGV0ZVwiPjxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTFjOzwvaT5Eb3dubG9hZCBDb21wbGV0ZSAtJm5ic3A7PGJ1dHRvbiAoY2xpY2spPVwiZG93bmxvYWRUZW1wbGF0ZSgndjInKVwiPlJldHJ5IERvd25sb2FkPC9idXR0b24+PC9kaXY+IC0tPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZG93bmxvYWRTdGF0dXNWMiA9PT0gJ0RPV05MT0FERUQnXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImJ1bGstYnRuLXByb2dyZXNzXCI+XG4gICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTkxYzs8L2k+RG93bmxvYWQgQ29tcGxldGVcbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYnVsay1idG4tYWdhaW5cIj5cbiAgICAgICAgICAgIElzIHRoZSBmaWxlIG5vdCBkb3dubG9hZGVkP1xuICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiZG93bmxvYWRUZW1wbGF0ZSgndjInKVwiPlJldHJ5IERvd25sb2FkPC9idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDwhLS0gb25seSBmb3IgbmV3IHRlbXBsYXRlIC0tPlxuICAgICAgPGRpdiBjbGFzcz1cImRvd25sb2FkLWJ0blwiICpuZ0lmPVwiXG4gICAgICAgICAgKGZlYXR1cmUuaXNGZWF0dXJlRW5hYmxlZCgnZmZfYnVsa19yZXNwb25zaWJpbGl0eScpICYmXG4gICAgICAgICAgICAhZmVhdHVyZS5pc0ZlYXR1cmVFbmFibGVkKCdmZl9ib3RoX2J1bGtfcmVzcG9uc2liaWxpdHknKSkgfHxcbiAgICAgICAgICAoZmVhdHVyZS5pc0ZlYXR1cmVFbmFibGVkKCdmZl9idWxrX3Jlc3BvbnNpYmlsaXR5JykgJiZcbiAgICAgICAgICAgIGZlYXR1cmUuaXNGZWF0dXJlRW5hYmxlZCgnZmZfYm90aF9idWxrX3Jlc3BvbnNpYmlsaXR5JykpIHx8XG4gICAgICAgICAgb3JnRGV0YWlscz8uZG9jX3V0YyA+IGRlcGxveWVkRGF0ZVxuICAgICAgICBcIj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImRvd25sb2FkXCIgKm5nSWY9XCJkb3dubG9hZFN0YXR1c1YyID09PSAnTk9UX0RPV05MT0FESU5HJ1wiIChjbGljayk9XCJkb3dubG9hZFRlbXBsYXRlKCd2MicpXCJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCI+XG4gICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MWI7PC9pPiBEb3dubG9hZCBUZW1wbGF0ZVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGRpdiAqbmdJZj1cImRvd25sb2FkU3RhdHVzVjIgPT09ICdET1dOTE9BRElORydcIiBjbGFzcz1cImJ1bGstYnRuLXByb2dyZXNzXCI+XG4gICAgICAgICAgRG93bmxvYWQgaW4gUHJvZ3Jlc3NcbiAgICAgICAgICA8YXBwLWxpbmUtbG9hZGVyIFtsb2FkZXJIZWlnaHRdPVwiJzInXCI+PC9hcHAtbGluZS1sb2FkZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8IS0tIDxkaXYgKm5nSWY9XCJkb3dubG9hZFN0YXR1c1YyID09PSAnRE9XTkxPQURFRCdcIiBjbGFzcz1cImJ1bGstYnRuLXByb2dyZXNzIGNvbXBsZXRlXCI+PGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MWM7PC9pPkRvd25sb2FkIENvbXBsZXRlIC0mbmJzcDs8YnV0dG9uIChjbGljayk9XCJkb3dubG9hZFRlbXBsYXRlKCd2MicpXCI+UmV0cnkgRG93bmxvYWQ8L2J1dHRvbj48L2Rpdj4gLS0+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkb3dubG9hZFN0YXR1c1YyID09PSAnRE9XTkxPQURFRCdcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYnVsay1idG4tcHJvZ3Jlc3NcIj5cbiAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTFjOzwvaT5Eb3dubG9hZCBDb21wbGV0ZVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJidWxrLWJ0bi1hZ2FpblwiPlxuICAgICAgICAgICAgSXMgdGhlIGZpbGUgbm90IGRvd25sb2FkZWQ/XG4gICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJkb3dubG9hZFRlbXBsYXRlKCd2MicpXCI+UmV0cnkgRG93bmxvYWQ8L2J1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPCEtLSBvbmx5IGZvciBvbGQgdGVtcGxhdGUgLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwiZG93bmxvYWQtYnRuXCIgKm5nSWY9XCJcbiAgICAgICAgICAhZmVhdHVyZS5pc0ZlYXR1cmVFbmFibGVkKCdmZl9idWxrX3Jlc3BvbnNpYmlsaXR5JykgJiZcbiAgICAgICAgICAhZmVhdHVyZS5pc0ZlYXR1cmVFbmFibGVkKCdmZl9ib3RoX2J1bGtfcmVzcG9uc2liaWxpdHknKVxuICAgICAgICBcIj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImRvd25sb2FkXCIgKm5nSWY9XCJkb3dubG9hZFN0YXR1cyA9PT0gJ05PVF9ET1dOTE9BRElORydcIiAoY2xpY2spPVwiZG93bmxvYWRUZW1wbGF0ZSgpXCJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCI+XG4gICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MWI7PC9pPiBEb3dubG9hZCBUZW1wbGF0ZVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImJ1bGstYnRuLXByb2dyZXNzXCIgKm5nSWY9XCJkb3dubG9hZFN0YXR1cyA9PT0gJ0RPV05MT0FESU5HJ1wiPlxuICAgICAgICAgIERvd25sb2FkIGluIFByb2dyZXNzXG4gICAgICAgICAgPGFwcC1saW5lLWxvYWRlciBbbG9hZGVySGVpZ2h0XT1cIicyJ1wiPjwvYXBwLWxpbmUtbG9hZGVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRvd25sb2FkU3RhdHVzID09PSAnRE9XTkxPQURFRCdcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYnVsay1idG4tcHJvZ3Jlc3NcIj5cbiAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTFjOzwvaT5Eb3dubG9hZCBDb21wbGV0ZVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJidWxrLWJ0bi1hZ2FpblwiPlxuICAgICAgICAgICAgSXMgdGhlIGZpbGUgbm90IGRvd25sb2FkZWQ/XG4gICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJkb3dubG9hZFRlbXBsYXRlKClcIj5SZXRyeSBEb3dubG9hZDwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgICAgPHAgY2xhc3M9XCJlcnJvci1tZXNzYWdlXCIgKm5nSWY9XCJpc1dyb25nRmlsZSB8fCBpc1dyb25nRm9ybWF0IHx8IGlzRmlsZUVtcHR5XCI+XG4gICAgICAgIHt7IGVycm9yTWVzc2FnZSB9fVxuICAgICAgPC9wPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuPGlucHV0IHR5cGU9XCJmaWxlXCIgWyhuZ01vZGVsKV09XCJmaWxlVmFsdWVcIiBpZD1cImZpbGVJbnB1dFwiIGNsYXNzPVwiaGlkZGVuLWlucHV0XCIgYWNjZXB0PVwiLnhsc3hcIlxuICAoY2hhbmdlKT1cInVwbG9hZGVkRmlsZSgkZXZlbnQpXCIgbXVsdGlwbGUgLz5cbjxhcHAtc21pbGV5LWRpYWxvZy1pbmxpbmUgKm5nSWY9XCJzaG93U21pbGV5XCIgW21lc3NhZ2VdPVwic21pbGV5TWVzc2FnZVwiIFthY3Rpb25CdXR0b25zXT1cImFjdGlvbkJ1dHRvbnNcIlxuICAoYWN0aW9uKT1cImFjdGlvbigkZXZlbnQpXCIgKGNsb3NlU21pbGV5KT1cImNsb3NlU21pbGV5KCRldmVudClcIj48L2FwcC1zbWlsZXktZGlhbG9nLWlubGluZT5cblxuPGFwcC1hZGQtbXVsdGlwbGUtcmVzcG9uc2liaWxpdHkgKm5nSWY9XCJzaW5nbGVUYWJSZXNwb25zaWJpbGl0eVwiIFt1cGxvYWRlZEZpbGVdPVwidXBsb2FkZWRGaWxlRGF0YVwiXG4gIChjbG9zZUFkZE11bHRpcGxlUmVzcG9uc2liaWxpdHkpPVwiY2xvc2VBZGRNdWx0aXBsZVJlc3BvbnNpYmlsaXR5KCRldmVudClcIiBbZmVhdHVyZWZsYWddPVwiaXNSZXNwb25zaWJpbGl0eVNpbXBsaWZpZWRcIlxuICBbZmVhdHVyZV09XCJmZWF0dXJlXCI+PC9hcHAtYWRkLW11bHRpcGxlLXJlc3BvbnNpYmlsaXR5PlxuXG48bGliLWFkZC1tdWx0aXBsZS1yZXNwb25zaWJpbGl0eS13aXRoLXRhYiAqbmdJZj1cIm11bHRpVGFiUmVzcG9uc2liaWxpdHlcIiBbb3JnRGV0YWlsc109XCJvcmdEZXRhaWxzXCJcbiAgW3VwbG9hZGVkRmlsZV09XCJ1cGxvYWRlZEZpbGVEYXRhXCIgKGNsb3NlQWRkTXVsdGlwbGVSZXNwb25zaWJpbGl0eSk9XCJjbG9zZUFkZE11bHRpcGxlUmVzcG9uc2liaWxpdHkoJGV2ZW50KVwiXG4gIFtmZWF0dXJlZmxhZ109XCJpc1Jlc3BvbnNpYmlsaXR5U2ltcGxpZmllZFwiIFtmZWF0dXJlXT1cImZlYXR1cmVcIj48L2xpYi1hZGQtbXVsdGlwbGUtcmVzcG9uc2liaWxpdHktd2l0aC10YWI+Il19