tnx-shared 5.1.684 → 5.1.686
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/tnx-shared.umd.js +5 -2
- package/bundles/tnx-shared.umd.js.map +1 -1
- package/bundles/tnx-shared.umd.min.js +1 -1
- package/bundles/tnx-shared.umd.min.js.map +1 -1
- package/classes/form-schema.d.ts.map +1 -1
- package/components/query-builders/query-builder-group/query-builder-group.component.d.ts.map +1 -1
- package/esm2015/classes/form-schema.js +2 -2
- package/esm2015/components/query-builders/query-builder-group/query-builder-group.component.js +5 -2
- package/fesm2015/tnx-shared.js +5 -2
- package/fesm2015/tnx-shared.js.map +1 -1
- package/package.json +2 -2
|
@@ -691,7 +691,7 @@ export class FileUploadControlSchema extends FileManagerControlSchema {
|
|
|
691
691
|
this.showDownloadFile = true;
|
|
692
692
|
this.showDeleteFile = true;
|
|
693
693
|
this.showPrintFile = true;
|
|
694
|
-
this.maxFileSize =
|
|
694
|
+
this.maxFileSize = 1000000000; // 1000 MB
|
|
695
695
|
this.invalidFileSizeMessageSummary = '{0}: Quá dung lượng file cho phép, ';
|
|
696
696
|
this.invalidFileSizeMessageDetail = 'dung lượng tối đa là {0}.';
|
|
697
697
|
this.invalidFileTypeMessageSummary = '{0}: Không đúng định dạng file, ';
|
|
@@ -1486,4 +1486,4 @@ export class ButtonAction {
|
|
|
1486
1486
|
}
|
|
1487
1487
|
}
|
|
1488
1488
|
}
|
|
1489
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1zY2hlbWEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy90bngtc2hhcmVkL3NyYy9saWIvY2xhc3Nlcy9mb3JtLXNjaGVtYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBS0EsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFrQmhGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQVNuRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsOEJBQThCLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBR2pILE1BQU0sVUFBVSxXQUFXLENBQUMsSUFBWSxFQUFFLEtBQWE7SUFDbkQsS0FBSyxNQUFNLEdBQUcsSUFBSSxJQUFJLEVBQUU7UUFDcEIsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztLQUMxQjtBQUNMLENBQUM7QUFFRCxNQUFNLE9BQU8sV0FBVztJQU9wQixZQUFZLElBQWtCO1FBRjlCLGFBQVEsR0FBNkcsUUFBUSxDQUFDO1FBRzFILElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQUU7WUFDM0MsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDekQ7UUFDRCxLQUFLLE1BQU0sR0FBRyxJQUFJLElBQUksRUFBRTtZQUNwQixJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ3pCO0lBQ0wsQ0FBQztDQUNKO0FBRUQsTUFBTSxPQUFPLFFBQVE7SUFJakIsWUFBWSxJQUFlO1FBSDNCLG9HQUFvRztRQUNwRyxrQkFBYSxHQUFtQixFQUFFLENBQUM7UUFHL0IsS0FBSyxNQUFNLEdBQUcs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LENBQUMsRUFIVyxRQUFRLEtBQVIsUUFBUSxRQUduQjtBQUVELE1BQU0sQ0FBTixJQUFZLFNBMEJYO0FBMUJELFdBQVksU0FBUztJQUNqQiw4QkFBaUIsQ0FBQTtJQUNqQix5Q0FBNEIsQ0FBQTtJQUM1QiwyQ0FBOEIsQ0FBQTtJQUM5QixxQ0FBd0IsQ0FBQTtJQUN4Qiw0QkFBZSxDQUFBO0lBQ2YsMEJBQWEsQ0FBQTtJQUNiLHVDQUEwQixDQUFBO0lBQzFCLDBCQUFhLENBQUE7SUFDYiw0QkFBZSxDQUFBO0lBQ2YsbURBQXNDLENBQUE7SUFDdEMsNEJBQWUsQ0FBQTtJQUNmLHlDQUE0QixDQUFBO0lBQzVCLGtDQUFxQixDQUFBO0lBQ3JCLDBCQUFhLENBQUE7SUFDYiw4QkFBaUIsQ0FBQTtJQUNqQiw0QkFBZSxDQUFBO0lBQ2Ysa0NBQXFCLENBQUE7SUFDckIsZ0NBQW1CLENBQUE7SUFDbkIsOEJBQWlCLENBQUE7SUFDakIsMkNBQThCLENBQUE7SUFDOUIsMEJBQWEsQ0FBQTtJQUNiLGdDQUFtQixDQUFBO0lBQ25CLDhDQUFpQyxDQUFBO0lBQ2pDLGtEQUFxQyxDQUFBO0lBQ3JDLGtDQUFxQixDQUFBO0FBQ3pCLENBQUMsRUExQlcsU0FBUyxLQUFULFNBQVMsUUEwQnBCO0FBRUQsTUFBTSxPQUFPLFlBQVk7SUFPckIsWUFBWSxJQUFtQjtRQUovQixlQUFVLEdBQXlCLEVBQUUsQ0FBQztRQUN0QyxnQkFBVyxHQUFJLEtBQUssQ0FBQztRQUlqQixLQUFLLE1BQU0sR0FBRyxJQUFJLElBQUksRUFBRTtZQUNwQixJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ3pCO0lBQ0wsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZVRyYW5zZm9ybSwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTWVudUl0ZW0gfSBmcm9tICd0bi1jdXN0b20tcHJpbWVuZy9hcGknO1xuXG5pbXBvcnQgeyBBdXRvQ29tcGxldGVQaWNrZXJDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL2F1dG9jb21wbGV0ZS1waWNrZXIvYXV0b2NvbXBsZXRlLXBpY2tlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRW51bUxvYWlWYW5CYW5CYXNlIH0gZnJvbSAnLi4vY29tcG9uZW50cy9jb25ndmllYy1waWNrZXIvbW9kZWxzL2VudW1zJztcbmltcG9ydCB7IENydWRMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9jcnVkL2NydWQtbGlzdC9jcnVkLWxpc3QuY29tcG9uZW50JztcbmltcG9ydCB7XG4gICAgRW50aXR5UGlja2VyRGF0YUNvbXBvbmVudFxufSBmcm9tICcuLi9jb21wb25lbnRzL2VudGl0eS1waWNrZXIvZW50aXR5LXBpY2tlci1kaWFsb2cvY29tcG9uZW50cy9lbnRpdHktcGlja2VyLWRhdGEvZW50aXR5LXBpY2tlci1kYXRhLmNvbXBvbmVudCc7XG5pbXBvcnQge1xuICAgIEVudGl0eVBpY2tlclNlbGVjdGVkQ29tcG9uZW50XG59IGZyb20gJy4uL2NvbXBvbmVudHMvZW50aXR5LXBpY2tlci9lbnRpdHktcGlja2VyLWRpYWxvZy9jb21wb25lbnRzL2VudGl0eS1waWNrZXItc2VsZWN0ZWQvZW50aXR5LXBpY2tlci1zZWxlY3RlZC5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgICBFbnRpdHlQaWNrZXJUcmVlRGF0YUNvbXBvbmVudFxufSBmcm9tICcuLi9jb21wb25lbnRzL2VudGl0eS1waWNrZXIvZW50aXR5LXBpY2tlci1kaWFsb2cvY29tcG9uZW50cy9lbnRpdHktcGlja2VyLXRyZWUtZGF0YS9lbnRpdHktcGlja2VyLXRyZWUtZGF0YS5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgICBFbnRpdHlQaWNrZXJUcmVlU2VsZWN0ZWRDb21wb25lbnRcbn0gZnJvbSAnLi4vY29tcG9uZW50cy9lbnRpdHktcGlja2VyL2VudGl0eS1waWNrZXItZGlhbG9nL2NvbXBvbmVudHMvZW50aXR5LXBpY2tlci10cmVlLXNlbGVjdGVkL2VudGl0eS1waWNrZXItdHJlZS1zZWxlY3RlZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRW50aXR5UGlja2VyQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9lbnRpdHktcGlja2VyL2VudGl0eS1waWNrZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEZpbGVQaWNrZXJTZXR0aW5nIH0gZnJvbSAnLi4vY29tcG9uZW50cy9maWxlLWV4cGxvcmVyL21vZGVscy9maWxlLXBpY2tlci1zZXR0aW5nJztcbmltcG9ydCB7IEZpbGVNYW5hZ2VyU2V0dGluZywgRmlsZVVwbG9hZFNldHRpbmcgfSBmcm9tICcuLi9jb21wb25lbnRzL2ZpbGUtZXhwbG9yZXIvbW9kZWxzL2ZpbGUtc2V0dGluZ3MnO1xuaW1wb3J0IHsgRmlsZURhdGFTZXJ2aWNlIH0gZnJvbSAnLi4vY29tcG9uZW50cy9maWxlLWV4cGxvcmVyL3NlcnZpY2VzL2ZpbGUtZGF0YS5zZXJ2aWNlJztcbmltcG9ydCB7IEZpbGVUeXBlRmxhZyB9IGZyb20gJy4uL21vZGVscy9maWxlLXR5cGUnO1xuaW1wb3J0IHsgRmlsdGVyLCBTb3J0IH0gZnJvbSAnLi4vbW9kZWxzL2dyaWQtaW5mbyc7XG5pbXBvcnQgeyBLZXlWYWx1ZVR5cGUgfSBmcm9tICcuLi9tb2RlbHMvdHlwZXMnO1xuaW1wb3J0IHsgQmFzZVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9iYXNlLnNlcnZpY2UnO1xuaW1wb3J0IHsgRW50aXR5TWV0YWRhdGFTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvZW50aXR5LW1ldGFkYXRhLnNlcnZpY2UnO1xuaW1wb3J0IHsgTWFzdGVyRGF0YVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9tYXN0ZXItZGF0YS5zZXJ2aWNlJztcbmltcG9ydCB7IENvbnRyb2xUcmVlTm9kZSwgQ3J1ZEZvcm1Db21wb25lbnQgfSBmcm9tICcuLy4uL2NvbXBvbmVudHMvY3J1ZC9jcnVkLWZvcm0vY3J1ZC1mb3JtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJQ29ycmVjdG9yIH0gZnJvbSAnLi9iYXNlL2NvcnJlY3RvcnMnO1xuaW1wb3J0IHsgSVZhbGlkYXRvciB9IGZyb20gJy4vYmFzZS92YWxpZGF0b3JzJztcbmltcG9ydCB7IEVudW1Db250cm9sUGlja2VyVHlwZSwgRW51bVdvcmtmbG93Q29yZUNvZGVTZXR0aW5nS2V5LCBGb3JtU3RhdGUsIFNoYXJlZEZvbGRlclR5cGUgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBXb3JrZmxvd1NldHRpbmcsIFdvcmtmbG93U2V0dGluZ05ldyB9IGZyb20gJy4vd29ya2Zsb3ctc2NoZW1hJztcblxuZXhwb3J0IGZ1bmN0aW9uIG1hcFByb3BlcnR5KGluaXQ6IG9iamVjdCwgdG9NYXA6IG9iamVjdCkge1xuICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgdG9NYXBba2V5XSA9IGluaXRba2V5XTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBNb2RlbFNjaGVtYSB7XG4gICAgZmllbGQ6IHN0cmluZztcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgZnVsbE5hbWU/OiBzdHJpbmc7XG4gICAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gICAgZGF0YVR5cGU/OiAnaW50JyB8ICdkZWNpbWFsJyB8ICdkYXRlJyB8ICdkYXRldGltZScgfCAnc3RyaW5nJyB8ICdib29sZWFuJyB8ICd0aW1lc3BhbicgfCAnaHRtbCcgfCAnaW50V2l0aG91dE1hc2snID0gJ3N0cmluZyc7XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogTW9kZWxTY2hlbWEpIHtcbiAgICAgICAgaWYgKCFpbml0WydmdWxsTmFtZSddICYmICFpbml0WydkZXNjcmlwdGlvbiddKSB7XG4gICAgICAgICAgICBpbml0WydmdWxsTmFtZSddID0gaW5pdFsnZGVzY3JpcHRpb24nXSA9IGluaXRbJ25hbWUnXTtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBDcnVkQmFzZSB7XG4gICAgLy8gQ29tcG9uZW50IHN1YnNjcmliZSAtIEtoaSBzdWJjcmliZSBt4buZdCBjb21wb25lbnQgdGjDrCBhZGQgdsOgbyBhcnJheSDEkeG7gyBraGkgZGVzdHJveSB0aMOsIHVuc3Vic2NyaWJlXG4gICAgY29tcG9uZW50U3ViczogU3Vic2NyaXB0aW9uW10gPSBbXTtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBDcnVkQmFzZSkge1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBDcnVkTGlzdFNldHRpbmcge1xuICAgIGtleTogc3RyaW5nO1xuICAgIHRpdGxlOiBzdHJpbmc7XG4gICAgdGFyZ2V0UGF0aD86IHN0cmluZztcbiAgICBvYmplY3ROYW1lID0gJyc7XG4gICAgZW50aXR5S2V5ID0gJ2lkJztcbiAgICBzZXR0aW5nS2V5Pzogc3RyaW5nO1xuICAgIGVudGl0eU1ldGFkYXRhU2VydmljZT86IEVudGl0eU1ldGFkYXRhU2VydmljZTtcbiAgICBtb2RlbFNjaGVtYXM/OiBNb2RlbFNjaGVtYVtdID0gW107XG4gICAgY29scz86IENvbHVtblNjaGVtYUJhc2VbXSA9IFtdO1xuICAgIGNvbW1vblNjaGVtYXM/OiBGb3JtQ29udHJvbEJhc2VbXSA9IFtdO1xuICAgIGNvbHVtblNldHRpbmc/OiBDb2x1bW5TZXR0aW5nID0gbmV3IENvbHVtblNldHRpbmcoKTtcbiAgICBwYWdlU2V0dGluZz86IFBhZ2VTZXR0aW5nID0gbmV3IFBhZ2VTZXR0aW5nKCk7XG4gICAgaGVpZ2h0VHlwZT86IEhlaWdodFR5cGUgPSBIZWlnaHRUeXBlLmRlZmF1bHQ7IC8vIEPDsyBjdXN0b20gY2hp4buBdSBjYW8ga2jDtG5nOiBUaMaw4budbmcgc+G7rSBk4bulbmcgdHJvbmcgZGlhbG9nXG4gICAgZml4SGVpZ2h0VHlwZUluRGlhbG9nPyA9IHRydWU7XG4gICAgbXVsdGlwbGVDaGVja1doZW5DbGlja1JvdyA9IHRydWU7XG4gICAgY3VzdG9tV29ya2Zsb3dDb2RlVHJpbmhLeTogRW51bVdvcmtmbG93Q29yZUNvZGVTZXR0aW5nS2V5ID0gRW51bVdvcmtmbG93Q29yZUNvZGVTZXR0aW5nS2V5Lk1BQ19ESU5IO1xuICAgIHN0aWNreUNvbHVtbiA9IGZhbHNlO1xuICAgIHRhYmxlTmFtZT86IHN0cmluZztcbiAgICBiYXNlU2VydmljZT86IEJhc2VTZXJ2aWNlO1xuICAgIHJlU2VsZWN0TGFzdEl0ZW0/ID0gdHJ1ZTsgLy8gU2VsZWN0IGzhuqFpIGl0ZW0gY3Xhu5FpIGPDuW5nIMSRw6MgY2jhu41uIGPhu6dhIGdyaWRcbiAgICBmaXJlRXZlbnRXaGVuUmVTZWxlY3Q/ID0gZmFsc2U7XG4gICAgYWR2YW5jZURhdGE/OiBhbnkgPSB7fTtcbiAgICBmaWVsZE5lZWRHZXRSZWY/OiBSZWZGaWVsZFtdID0gW107XG4gICAgd29ya2Zsb3dTZXR0aW5nPzogV29ya2Zsb3dTZXR0aW5nO1xuICAgIHdvcmtmbG93U2V0dGluZ05ldz86IFdvcmtmbG93U2V0dGluZ05ldztcbiAgICBpc1dvcmtmbG93VHJlZT86IGJvb2xlYW4gPSBmYWxzZTtcbiAgICB3b3JrZmxvd0NvbmZpZ0FkdmFuY2U/OiBXb3JrZmxvd0NvbmZpZ0FkdmFuY2U7XG4gICAgaWdub3JlV29ya2Zsb3c/OiBib29sZWFuID0gZmFsc2U7XG4gICAgZGlzcGxheUZpZWxkOiBzdHJpbmcgfCAoKGl0ZW0pID0+IHN0cmluZyk7IC8vIHRyxrDhu51uZyDEkeG6oWkgZGnhu4duIGNobyBi4bqjbiBnaGkgbMOgbSB0acOqdSDEkeG7gSBoaeG7g24gdGjhu4sgKHBo4bulYyB24bulIGNobyBjw6FjIGThu4tjaCB24bulIGtow6FjIGtoYWkgdGjDoWMpXG4gICAgZ2V0RGlzcGxheU5hbWVJblNlcnZlcjogYm9vbGVhbiA9IGZhbHNlO1xuICAgIGhhc0N1c3RvbUhhbmRsZUNsaWNrUm93ID0gZmFsc2U7XG4gICAgY2hlY2tBbGxvd1RyaW5oS3k6IChyb3dEYXRhKSA9PiBQcm9taXNlPGJvb2xlYW4+O1xuICAgIGNoZWNrQWxsb3dTZWxlY3RSb3c6IChyb3dEYXRhLCBldnQ/KSA9PiBib29sZWFuO1xuICAgIGdldEl0ZW1TdGF0ZTogKGxzdFJvd0RhdGE6IGFueVtdKSA9PiB7IFtrZXk6IHN0cmluZ106IGFueTsgfTtcbiAgICBnZXREYXRhRm9yTmV4dEZpcnN0U3RlcFRhc2s/OiAocm93RGF0YSkgPT4gKHt9KTtcbiAgICBjaGVja1Blcm1pc2lvblRyaW5oS3kgPSBmYWxzZTtcbiAgICB1c2VXb3JrZmxvd0J1dHRvbj86IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBzaG93RWRpdExpbmsgPSB0cnVlO1xuICAgIHNob3dCdXR0b25UaHVIb2kgPSB0cnVlO1xuICAgIHNob3dGaWxlTWFuYWdlckZyb21XZlByb2Nlc3MgPSB0cnVlO1xuICAgIHNob3dDb25maXJtRXhwb3J0ID0gZmFsc2U7XG4gICAgc2hvd0VkaXRMaW5rT25seVZpZXcgPSBmYWxzZTtcbiAgICBzaG93Q29tbW9uU2VhcmNoTGFiZWwgPSBmYWxzZTtcbiAgICBtZFdpZHRoQ29tbW9uU2VhcmNoID0gMztcbiAgICB1c2VDb21tb25TZWFyY2ggPSBmYWxzZTtcbiAgICB1c2VDb21tb25GdWxsVGV4dFNlYXJjaCA9IHRydWU7XG4gICAgaGlkZGVuU2VhcmNoID0gZmFsc2U7XG5cbiAgICBoaWRkZW5IZWFkZXIgPSBmYWxzZTtcbiAgICBoaWRkZW5QYWdlU2V0dGluZyA9IGZhbHNlO1xuICAgIGhpZGRlblRleHRQYWdlID0gZmFsc2U7XG4gICAgaGlkZGVuVG9vbGJhciA9IGZhbHNlO1xuICAgIGhpZGRlbkJ1dHRvbnMgPSBmYWxzZTtcbiAgICBoaWRkZW5BZHZhbmNlU2VhcmNoID0gZmFsc2U7XG4gICAgaGlkZGVuU2F2ZVNldHRpbmcgPSBmYWxzZTtcbiAgICBoaWRkZW5TZXR0aW5nID0gZmFsc2U7XG4gICAgaGlkZGVuU2V0dGluZ1Blcm1pc3Npb24gPSBmYWxzZTtcbiAgICBoaWRkZW5TZXR0aW5nV29ya2Zsb3cgPSBmYWxzZTtcbiAgICBoaWRkZW5QYWdlVGl0bGUgPSBmYWxzZTtcblxuICAgIGhpZGRlbkNoZWNrYm94ID0gZmFsc2U7XG4gICAgaGlkZGVuT3JkZXJDb2x1bW4gPSBmYWxzZTtcbiAgICBoaWRkZW5Xb3JrZmxvd0NvbHVtbiA9IGZhbHNlO1xuICAgIGhpZGRlbldvcmtmbG93SGlzdG9yeSA9IGZhbHNlO1xuICAgIGFsbG93RmlsdGVyV29ya2Zsb3dDb2x1bW4gPSBmYWxzZTtcbiAgICBoaWRkZW5GdW5jdGlvbkNvbHVtbiA9IGZhbHNlO1xuICAgIGhpZGRlblJlZnJlc2ggPSBmYWxzZTtcbiAgICBoaWRkZW5GaWx0ZXJSb3cgPSBmYWxzZTtcbiAgICBoaWRkZW5UcmluaEt5ID0gdHJ1ZTtcbiAgICBoaWRkZW5DaG9ZS2llbiA9IGZhbHNlO1xuICAgIHVzZUJhc2VUcmluaEt5ID0gdHJ1ZTtcbiAgICBkaXNhYmxlU2hhcmUgPSB0cnVlO1xuICAgIGRpc2FibGVWaWV3V29ya2Zsb3dBdHRhY2ggPSBmYWxzZTtcbiAgICBoaWRkZW5Xb3JrZmxvd0NvcmVTdGF0dXMgPSB0cnVlO1xuICAgIHJlcXVpcmVkVmFuQmFuRGlBZnRlclRyaW5oS3kgPSBmYWxzZTtcblxuICAgIGdyb3VwQ29sdW1uPzogQ29sdW1uU2NoZW1hQmFzZTtcblxuICAgIHNob3dFeHBvcnRBbGwgPSBmYWxzZTtcbiAgICBzaG93RXhwb3J0U2VsZWN0ZWRJdGVtcyA9IHRydWU7XG4gICAgc2hvd0V4cG9ydFdvcmRTZWxlY3RlZEl0ZW1zID0gZmFsc2U7XG4gICAgZXhwb3J0QWxsTW9kZWw6IEV4cG9ydEFsbE1vZGUgPSBFeHBvcnRBbGxNb2RlLkF1dG9HZXREYXRhO1xuICAgIGV4cG9ydEl0ZW1zTW9kZTogRXhwb3J0SXRlbXNNb2RlID0gRXhwb3J0SXRlbXNNb2RlLkZyb21IdG1sO1xuXG4gICAgZW5hYmxlVmVyc2lvbiA9IGZhbHNlO1xuICAgIHNob3dWZXJzaW9uQnV0dG9uID0gZmFsc2U7XG4gICAgdmVyc2lvbk1vZGVsPzogeyBba2V5OiBzdHJpbmddOiBhbnk7IH0gPSB7fTtcbiAgICBzaG93SGlzdG9yeSA9IGZhbHNlO1xuICAgIGhpc3Rvcnk/OiBhbnk7XG5cbiAgICBjb2xvckZpbHRlckZpZWxkID0gJyc7XG4gICAgY29sb3JGaWx0ZXJUYWJsZT86IFJvd0NvbG9yT3B0aW9uW10gPSBbXTtcblxuICAgIGVudGl0eU1ldGFkYXRhU2V0dGluZz86IENydWRGb3JtU2V0dGluZyA9IG5ldyBDcnVkRm9ybVNldHRpbmcoKTtcblxuICAgIGZpZWxkU2VhcmNoVGV4dD86IHN0cmluZ1tdID0gW107XG4gICAgZmlsdGVyVGVtcGxhdGVBZHZzPzogRmlsdGVyW107XG5cbiAgICBmdW5jdGlvbjogQ3J1ZExpc3RDdXN0b21GdW5jdGlvbiA9IG5ldyBDcnVkTGlzdEN1c3RvbUZ1bmN0aW9uKCk7XG5cbiAgICBwb3B1cEhlYWRlcj8gPSAnJztcbiAgICBwb3B1cFNpemU/OiBQb3B1cFNpemUgPSBuZXcgUG9wdXBTaXplKCk7XG4gICAgbWFza0NsYXNzPzogc3RyaW5nO1xuXG4gICAgYnV0dG9uc1Blcm1pc3Npb25DdXN0b20/OiBCdXR0b25BY3Rpb25bXSA9IFtdO1xuICAgIGhpZGRlbkF1dGhvcml6ZUJ1dHRvbiA9IGZhbHNlO1xuICAgIHN1ZmZpeEF1dGhvcml6ZUNvZGUgPSAnJzsgLy8gdGjDqm0gaOG6rXUgdOG7kSBtw6MgY29kZSB0cm9uZyBjaOG7qWMgbsSDbmcgUGjDom4gcXV54buBbiBuw7p0IChwaOG7pWMgduG7pSBjYXNlIGNydWRMaXN0IG7DoHkgbuG6sW0gdHJvbmcgbcOgbiBow6xuaCBwb3B1cClcblxuXG4gICAgLyoqXG4gICAgICogQXV0byBnZW5lcmF0ZSBncmlkSW5mby5maWVsZHMgdXNpbmcgc2V0dGluZy5jb2xzICsgZGF0YUxpc3QuYWRkdGlvbmFsRmllbGRzXG4gICAgICogQGRhdGUgMTEvNC8yMDIyIC0gMjowNDozMSBQTVxuICAgICAqXG4gICAgICogQHR5cGUgez9ib29sZWFufVxuICAgICAqL1xuICAgIGF1dG9HZW5lcmF0ZVNlbGVjdEZpZWxkcz8gPSBmYWxzZTtcblxuICAgIG1vZGlmeVJvd0RhdGFGb3JUYXNrOiAocm93RGF0YSkgPT4gdm9pZCA9IChyb3dEYXRhKSA9PiAoe30pO1xuICAgIG1vZGlmeUl0ZW1UYXNrOiAobW9kZWxUYXNrLCByb3dEYXRhKSA9PiB2b2lkID0gKG1vZGVsVGFzaywgcm93RGF0YSkgPT4gKHt9KTtcbiAgICBnZXRDdXN0b21EYXRhVHJpbmhLeTogKHJvd0RhdGEpID0+IGFueSA9IChyb3dEYXRhKSA9PiAoe30pO1xuICAgIGdldExhYmVsQnV0dG9uVHJpbmhLeTogKHJvd0RhdGEpID0+IHN0cmluZyA9IChyb3dEYXRhKSA9PiAnVHLDrG5oIGvDvSc7XG4gICAgY2hlY2tSZWFkeVRvVHJpbmhLeTogKCkgPT4gYm9vbGVhbiA9ICgpID0+IHRydWU7XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogQ3J1ZExpc3RTZXR0aW5nKSB7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFdvcmtmbG93Q29uZmlnQWR2YW5jZSB7XG4gICAgZ2V0V29ya2Zsb3dTZXR0aW5nOiAocm93RGF0YSkgPT4gV29ya2Zsb3dTZXR0aW5nTmV3O1xufVxuXG5leHBvcnQgY2xhc3MgQ3J1ZExpc3RDdXN0b21GdW5jdGlvbiB7XG4gICAgLy8gQ3VzdG9taXplXG4gICAgZ2V0U2VhcmNoQ29udHJvbD86IChmaWVsZDogc3RyaW5nKSA9PiBGb3JtU2NoZW1hQmFzZVtdID0gKGZpZWxkOiBzdHJpbmcpID0+IG51bGw7XG4gICAgLy8gQXN5bmMgZnVuY3Rpb25cbiAgICBtb2RpZnlBZHZhbmNlU2VhY2hNb2RlbD86IChkYXRhOiBBZHZhbmNlU2VhcmNoRGF0YSwgc2V0dGluZzogQWR2YW5jZVNlYXJjaFNldHRpbmcpID0+IFByb21pc2U8dm9pZD4gPSBhc3luYyAoZGF0YSkgPT4gbnVsbDtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBDcnVkTGlzdEN1c3RvbUZ1bmN0aW9uKSB7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFBlcnNvbmFsU2V0dGluZyB7XG4gICAgY29sdW1uU2V0dGluZz86IENvbHVtblNldHRpbmcgPSBuZXcgQ29sdW1uU2V0dGluZygpO1xuICAgIHBhZ2VTZXR0aW5nPzogUGFnZVNldHRpbmcgPSBuZXcgUGFnZVNldHRpbmcoKTtcbiAgICBjb2xvckZpbHRlckZpZWxkID0gJyc7XG4gICAgY29sb3JGaWx0ZXJUYWJsZT86IFJvd0NvbG9yT3B0aW9uW10gPSBbXTtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBQZXJzb25hbFNldHRpbmcpIHtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ3J1ZExpc3REYXRhIGV4dGVuZHMgQ3J1ZEJhc2Uge1xuICAgIGxvYWRpbmcgPSBmYWxzZTtcbiAgICBhZGp1c3RlZFBvc2l0aW9uTG9hZGluZyA9IGZhbHNlO1xuICAgIHJlYWR5ID0gdHJ1ZTtcbiAgICAvLyBiYXNlIHJlYWR5IGzDoCBjaOG7qWMgbsSDbmcga2nhu4NtIHRyYSByZWFkeSBj4bunYSByacOqbmcgdHJvbmcgYmFzZS4gayBnaeG7kW5nIHbhu5tpIHJlYWR5IOG7nyB0csOqblxuICAgIC8vIETDuW5nIMSR4buDIGtp4buDbSB0cmEgbuG6v3UgY8OzIHdvcmtmbG93IHRow6wgdOG6oW0gdGjhu51pIGNoxrBhIGNobyDhuqVuIHRow6ptIG3hu5tpIG7hur91IGNoxrBhIGxvYWQgeG9uZyBk4buvIGxp4buHdSBj4bqnbiB0aGnhur90XG4gICAgYmFzZVJlYWR5ID0gZmFsc2U7XG4gICAgZGF0YVNvdXJjZT86IGFueVtdID0gW107XG4gICAgLy8gxJDhu5FpIHbhu5tpIGxpc3QgZOG6oW5nIHRyZWUgdGjDrCByYXcgZGF0YXNvdXJjZSBsw6AgbGlzdCBkYXRhIGtoaSBjaMawYSB0w6FpIGPhuqV1IHRyw7pjIHRow6BuaCBk4buvIGxp4buHdSB0cmVlXG4gICAgYWxsRGF0YVNvdXJjZT86IHsgcmF3OiBhbnlbXSwgZGF0YTogYW55W107IH0gPSB7IHJhdzogW10sIGRhdGE6IFtdIH07XG4gICAgc2VsZWN0ZWRJdGVtcz86IGFueVtdID0gW107XG4gICAgc2VsZWN0ZWRJdGVtPzogYW55O1xuICAgIHNlbGVjdGVkSXRlbUxhc3Q/OiBhbnk7XG4gICAgc2VsZWN0ZWRJZD86IG51bWJlcjtcbiAgICB0b3RhbCA9IDA7XG4gICAgaXRlbURhdGE/OiBhbnk7XG4gICAgYWR2YW5jZURhdGE6IGFueSA9IHt9O1xuXG4gICAgLy8gQ8OhYyB0aHXhu5ljIHTDrW5oIGLhu5Ugc3VuZyBkbyBi4buLIGzhu5dpIGtoaSBwYWNrYWdlXG4gICAgc3VibWl0dGluZzogYm9vbGVhbiA9IGZhbHNlO1xuICAgIC8vIEVuZCBDw6FjIHRodeG7mWMgdMOtbmggYuG7lSBzdW5nIGRvIGLhu4sgbOG7l2kga2hpIHBhY2thZ2VcblxuICAgIGV4cGFuZGVkUm93S2V5cz86IHsgW2tleTogc3RyaW5nXTogYm9vbGVhbjsgfSA9IHt9O1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IENydWRMaXN0RGF0YSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBFbnRpdHlNZWRhdGFEYXRhU2V0dGluZyB7XG4gICAgZGF0YT86IGFueSA9IHt9O1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IEVudGl0eU1lZGF0YURhdGFTZXR0aW5nKSB7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFJvd0NvbG9yT3B0aW9uIHtcbiAgICBmaWx0ZXJWYWx1ZSA9ICcnO1xuICAgIGNvbXBhcmVUeXBlID0gJyc7XG4gICAgY29sb3IgPSAnJztcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBSb3dDb2xvck9wdGlvbikge1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBQYWdlU2V0dGluZyB7XG4gICAgcGFnZSA9IDE7XG4gICAgcGFnZVNpemUgPSAxNTtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBQYWdlU2V0dGluZykge1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBDb2x1bW5TZXR0aW5nIHtcbiAgICBzb3J0cz86IFNvcnRbXSA9IFtdO1xuICAgIHNvcnRGaWVsZD86IHN0cmluZztcbiAgICBzb3J0RGlyPzogLTEgfCAwIHwgMSB8IDIgPSAtMTtcbiAgICBncm91cEZpZWxkID0gJyc7XG4gICAgZ3JvdXBJbkNsaWVudD8gPSBmYWxzZTtcbiAgICBzaG93R3JvdXBTaXplOiBib29sZWFuID0gdHJ1ZTtcbiAgICBkZXRhaWxzPzogQ29sdW1uU2V0dGluZ0RldGFpbFtdID0gW107XG4gICAgY29sdW1uUmVvcmRlcj87XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogQ29sdW1uU2V0dGluZykge1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBDb2x1bW5TZXR0aW5nRGV0YWlsIHtcbiAgICBvcmRlcj86IG51bWJlciA9IDE7XG4gICAgY29sdW1uQ29kZT86IHN0cmluZztcbiAgICBjb2x1bW5OYW1lPzogc3RyaW5nO1xuICAgIHZpc2libGU/OiBib29sZWFuO1xuICAgIHRleHRBbGlnbj86IFRleHRBbGlnbjtcbiAgICB3aWR0aD86IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIENydWRGb3JtRGF0YSBleHRlbmRzIENydWRCYXNlIHtcbiAgICBkYXRhPzogYW55ID0ge307XG4gICAgc3VibWl0dGluZz8gPSBmYWxzZTtcbiAgICAvKipcbiAgICAgKiBUcuG6oW5nIHRow6FpIGPhu6dhIGZvcm0gxJFhbmcgxJHGsOG7o2MgbeG7nzogTMOgIGZvcm0gdGjDqm0gbeG7m2ksIGhheSBmb3JtIHPhu61hLCBoYXkgZm9ybSB4w7NhXG4gICAgICovXG4gICAgZm9ybVN0YXRlPzogRm9ybVN0YXRlID0gRm9ybVN0YXRlLkFERDtcbiAgICB3b3JrZmxvd0J1dHRvbnM/OiBhbnlbXTtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBDcnVkRm9ybURhdGEpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ3J1ZEZvcm1DdXN0b21GdW5jdGlvbiB7XG4gICAgLy8gQ3VzdG9taXplXG4gICAgbW9kaWZ5RGF0YUFmdGVyR2V0Q2FjaGU/OiAoZGF0YTogYW55KSA9PiB2b2lkID0gKGRhdGE6IGFueSkgPT4gbnVsbDtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBDcnVkTGlzdEN1c3RvbUZ1bmN0aW9uKSB7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIENydWRGb3JtU2V0dGluZyB7XG4gICAgZGlzYWJsZUNhY2hpbmcgPSBmYWxzZTtcbiAgICBoaWRkZW5UcmluaEt5ID0gdHJ1ZTtcbiAgICBzY2hlbWE/OiBGb3JtU2NoZW1hQmFzZVtdID0gW107XG4gICAgYmFzZVNlcnZpY2U/OiBCYXNlU2VydmljZTtcbiAgICBidWlsZEluU2NoZW1hPzogRm9ybUNvbnRyb2xCYXNlW10gPSBbXTtcbiAgICB1bmlxdWVGaWVsZD86IHN0cmluZ1tdIHwgc3RyaW5nW11bXSA9IFtdO1xuICAgIGZpZWxkRHJvcGRvd24/OiB7IFtrZXk6IHN0cmluZ106IERyb3Bkb3duQ29udHJvbFNjaGVtYTsgfSA9IHt9O1xuICAgIGZpZWxkTmVlZEdldFJlZj86IHsgW2tleTogc3RyaW5nXTogVGV4dENvbnRyb2xTY2hlbWE7IH0gPSB7fTtcbiAgICBkaXNwbGF5RmllbGQ/OiBzdHJpbmcgfCAoKGl0ZW0pID0+IHN0cmluZyk7XG4gICAgZmlyc3RGb2N1c0NvbnRyb2w/OiBzdHJpbmc7XG4gICAgZmlsdGVyQ2hlY2tFeGlzdEJ5VmVyc2lvbj86IEZpbHRlcltdO1xuICAgIGRlZmF1bHRGaWx0ZXJDaGVja0V4aXN0PzogRmlsdGVyW10gfCAoKCkgPT4gRmlsdGVyW10pO1xuICAgIGN1c3RvbVdvcmtmbG93Q29kZVRyaW5oS3k6IEVudW1Xb3JrZmxvd0NvcmVDb2RlU2V0dGluZ0tleSA9IEVudW1Xb3JrZmxvd0NvcmVDb2RlU2V0dGluZ0tleS5NQUNfRElOSDtcbiAgICBlbnRpdHlNZXRhZGF0YURhdGE/OiBDcnVkRm9ybURhdGE7XG4gICAgZW50aXR5TWV0YWRhdGFTZXR0aW5nPzogQ3J1ZEZvcm1TZXR0aW5nO1xuICAgIGZ1bmN0aW9uPzogQ3J1ZEZvcm1DdXN0b21GdW5jdGlvbiA9IG5ldyBDcnVkRm9ybUN1c3RvbUZ1bmN0aW9uKCk7XG4gICAgaGlkZGVuS3lTb1NpbUNhTmhhbj89IGZhbHNlO1xuICAgIGhpZGRlbkt5U29Vc2JDYU5oYW4/PSBmYWxzZTtcbiAgICBoaWRkZW5LeVNvRG9uVmk/PSBmYWxzZTtcbiAgICBoaWRkZW5CdXRQaGU/PSBmYWxzZTtcbiAgICBnZXRDdXN0b21EYXRhVHJpbmhLeTogKHJvd0RhdGEpID0+IGFueSA9IChyb3dEYXRhKSA9PiAoe30pO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IENydWRGb3JtU2V0dGluZykge1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBBZHZhbmNlU2VhcmNoRGF0YSBleHRlbmRzIENydWRGb3JtRGF0YSB7XG4gICAgaW5pdERhdGE/OiBhbnkgPSB7fTtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBBZHZhbmNlU2VhcmNoRGF0YSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBBZHZhbmNlU2VhcmNoU2V0dGluZyBleHRlbmRzIENydWRGb3JtU2V0dGluZyB7XG4gICAgZmllbGRLZXkgPSAnX2snO1xuICAgIGVudGl0eVBlcm1pc3Npb25TY2hlbWE/OiBGb3JtQ29udHJvbEJhc2VbXSA9IFtdO1xuICAgIGtlZXBJbml0U2VhcmNoRGF0YU5vdE51bGwgPSB0cnVlO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IEFkdmFuY2VTZWFyY2hTZXR0aW5nKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFNjaGVtYUJhc2Uge1xuICAgIGZpZWxkPzogc3RyaW5nO1xuICAgIGZpZWxkRmlsdGVyPzogc3RyaW5nO1xuICAgIHVuaXF1ZUZpZWxkPzogc3RyaW5nO1xuICAgIHR5cGU/OiAnYm9vbGVhbicgfCAnaW50JyB8ICdkZWNpbWFsJyB8ICdkYXRldGltZScgfCAnc3RyaW5nJyA9ICdzdHJpbmcnO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IFNjaGVtYUJhc2UpIHtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgRm9ybVNjaGVtYUJhc2UgZXh0ZW5kcyBTY2hlbWFCYXNlIHtcbiAgICBsYWJlbD86IHN0cmluZztcbiAgICBmdWxsTGFiZWw/OiBzdHJpbmc7XG4gICAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gICAgbWVzc2FnZT86IHN0cmluZztcbiAgICBtZXNzYWdlQ2xhc3M/OiBzdHJpbmc7XG4gICAgc2hvd0xhYmVsPyA9IHRydWU7XG4gICAgZ1dpZHRoPyA9IDEyO1xuICAgIG1kV2lkdGg/ID0gNjtcbiAgICByb3dTcGFuPyA9IDE7XG4gICAgd2lkdGg/OiBzdHJpbmc7XG4gICAgY2xhc3M/ID0gJyc7XG4gICAgc3R5bGU/OiBhbnkgPSB7fTtcbiAgICBkaXNhYmxlZD86IGJvb2xlYW47XG4gICAgaGlkZGVuPyA9IGZhbHNlO1xuICAgIGhpZGRlbkNoZWNrPzogKHJvb3RNb2RlbDogYW55LCBjdXJyZW50Tm9kZTogQ29udHJvbFRyZWVOb2RlKSA9PiBib29sZWFuO1xuICAgIGhpZGRlbk9uVmlldz8gPSBmYWxzZTtcbiAgICB2aXNpYmxlSW5MaXN0PyA9IHRydWU7XG4gICAgb3BlcmF0b3I/OiBPcGVyYXRvcjtcbiAgICBncm91cENvZGU/ID0gJyc7XG4gICAgZGVmYXVsdFZhbHVlPzogYW55O1xuICAgIGZpZWxkQWxpYXM/ID0gJyc7XG4gICAgZGF0YT86IGFueSA9IHt9O1xuICAgIGlzSHRtbExhYmVsPyA9IGZhbHNlO1xuICAgIG9yZGVyPyA9IDA7XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogRm9ybVNjaGVtYUJhc2UpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ29udGFpbmVyU2NoZW1hIGV4dGVuZHMgRm9ybVNjaGVtYUJhc2Uge1xuICAgIGNvbnRyb2xzOiBGb3JtU2NoZW1hQmFzZVtdO1xuICAgIHNob3dJbkJveD8gPSB0cnVlO1xuICAgIGJveFN0eWxlPzogYW55O1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IENvbnRhaW5lclNjaGVtYSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBUTkNvbnRhaW5lclNjaGVtYSBleHRlbmRzIEZvcm1TY2hlbWFCYXNlIHtcbiAgICBjb250cm9sczogRm9ybVNjaGVtYUJhc2VbXTtcbiAgICBmaWVsZE9mUGFyZW50cz86IHN0cmluZ1tdO1xuICAgIHNob3dJbkJveD8gPSB0cnVlO1xuICAgIGJveFN0eWxlPzogYW55O1xuICAgIGJhc2VTZXJ2aWNlPzogQmFzZVNlcnZpY2U7XG4gICAgaXNXcml0ZVRvUGFyZW50TW9kZWw/PSBmYWxzZTtcbiAgICBfY29tcG9uZW50PzogYW55O1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IFROQ29udGFpbmVyU2NoZW1hKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEZvcm1TY2hlbWFCYXNlV2l0aFNlcnZpY2UgZXh0ZW5kcyBGb3JtU2NoZW1hQmFzZSB7XG4gICAgLy8gVXJsIMSR4buDIGzhuqV5IGThu68gbGnhu4d1ICoqKiBLSMOUTkcgU+G7rCBE4bukTkcgVFJPTkcgQ8OBQyBDQVNFIFBI4buUIEJJ4bq+TiwgQ0jhu4ggU+G7rCBE4bukTkcgxJDhu5BJIFbhu5pJIEZPUk0gS0jhuqJPIFPDgVQgKioqXG4gICAgc2VydmljZVVyaT8gPSAnJztcbiAgICBiYXNlU2VydmljZT86IEJhc2VTZXJ2aWNlIHwgTWFzdGVyRGF0YVNlcnZpY2U7XG4gICAgcmVmRmllbGRzPzogUmVmRmllbGRbXSA9IFtdO1xuICAgIGdyb3VwQ29kZT86IHN0cmluZztcbiAgICB2YWx1ZUZpZWxkPyA9ICdpZCc7XG4gICAgZGlzcGxheUZpZWxkPyA9ICd0ZW4nO1xuICAgIGRhdGFTb3VyY2U/OiBhbnlbXSA9IFtdO1xuXG4gICAgaXNTZXJ2ZXJMb2FkPyA9IGZhbHNlO1xuICAgIHNlYXJjaEZpZWxkPzogc3RyaW5nW107XG5cbiAgICBpc1RyZWU/ID0gZmFsc2U7XG4gICAgaXNUcmVlQmFzZU1vZGVsPyA9IGZhbHNlO1xuICAgIGZpZWxkVHJlZT86IHN0cmluZztcbiAgICB2YWx1ZVBhcmVudFJvb3Q/OiBhbnkgPSBudWxsOyAvLyBHacOhIHRy4buLIHRyxrDhu51uZyBbZmllbGRUcmVlXSBj4bunYSBpdGVtIHRyZWUgcm9vdFxuICAgIGZpZWxkUGFyZW50VHJlZUl0ZW0/ID0gJ2lkJzsgLy8gVHLGsOG7nW5nIHjDoWMgxJHhu4tuaCBi4bqjbiBnaGkgbMOgIGLhuqNuIGdoaSBjaGEgY+G7p2EgYuG6o24gZ2hpIGNvblxuICAgIHNlbGVjdENoaWxkSXRlbT8gPSBmYWxzZTsgLy8gQ8OzIHNlbGVjdCBi4bqjbiBnaGkgY29uIG7hur91IGNo4buNbiBi4bqjbiBnaGkgY2hhXG4gICAgc2VsZWN0RGVzY2VuZGFudD8gPSBmYWxzZTsvLyBDw7Mgc2VsZWN0IGLhuqNuIGdoaSBjb24sIGNow6F1IG7hur91IGNo4buNbiBi4bqjbiBnaGkgY2hhXG5cbiAgICBwbHVzVXJsPzogc3RyaW5nO1xuICAgIHNvcnRzPzogU29ydFtdID0gW107XG4gICAgc29ydEZpZWxkPyA9ICcnO1xuICAgIHNvcnREaXI/OiAxIHwgLTEgPSAxO1xuICAgIGZpZWxkUGx1cz8gPSAnJzsgLy8gRGFuaCBzw6FjaCBuaOG7r25nIHRyxrDhu51uZyBi4buVIHN1bmcgY+G6p24gbOG6pXkgdGjDqm0gbmdvw6BpIGlkLCB0ZW47IFbDrSBk4bulICxtYVxuICAgIGRlZmF1bHRGaWx0ZXJzPzogRmlsdGVyW10gfCBGdW5jdGlvbiB8IFByb21pc2U8RmlsdGVyW10+OyAvLyB0dW5ndHMgdGjDqm0ga2nhu4N1IGThu68gbGnhu4d1IGRlZmF1bHRGaWx0ZXJzIGzDoCBwcm9taXNlXG4gICAgYWZ0ZXJHZXREYXRhPzogRnVuY3Rpb247XG5cbiAgICBmdW5jU2V0RGVmYXVsdFZhbHVlPzogRnVuY3Rpb247XG5cbiAgICBmaWVsZFZhbHVlUGFyZW50PyA9ICd2YWx1ZSc7IC8vIFRyxrDhu51uZyBz4butIGThu6VuZyDEkeG7gyBs4bqleSBk4buvIGxp4buHdSBsw6BtIGtow7NhIHThu6sgYuG6o25nIGNoYSBj4bunYSBpdGVtIGRyb3AgZG93biDEkcaw4bujYyBjaOG7jW5cblxuICAgIGNhbGxiYWNrRGF0YUZpbmlzaD86IChldnQ6IEV2ZW50RGF0YSkgPT4gdm9pZDtcbiAgICBtb2RpZnlGaWx0ZXI/OiBGdW5jdGlvbjtcbiAgICBmdW5jR2V0TGFiZWw/OiAoaXRlbSkgPT4gc3RyaW5nO1xuICAgIGZ1bmNDb21wYXJlPzogKGl0ZW06IGFueSwgdmFsdWUpID0+IGJvb2xlYW4gPSAoaXRlbSwgdmFsdWUpID0+IGl0ZW1bdGhpcy52YWx1ZUZpZWxkXSA9PSB2YWx1ZTtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBGb3JtU2NoZW1hQmFzZVdpdGhTZXJ2aWNlKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIExhYmVsU2NoZW1hIGV4dGVuZHMgRm9ybVNjaGVtYUJhc2Uge1xuICAgIGZvcj8gPSAnJztcbiAgICBpc0h0bWw/ID0gZmFsc2U7XG4gICAgbWRXaWR0aD8gPSAxMjtcbiAgICBpbmRleExhYmVsPzogbnVtYmVyO1xuICAgIHRleHQ/ID0gJyc7XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogTGFiZWxTY2hlbWEpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgVGl0bGVTY2hlbWEgZXh0ZW5kcyBMYWJlbFNjaGVtYSB7XG4gICAgY2xhc3M/ID0gJ3RpdGxlLWdyb3VwIHRleHQtYm9sZCc7XG4gICAgbWRXaWR0aD8gPSAxMjtcbiAgICBvbkNoYW5nZWQ/OiBGdW5jdGlvbjtcblxuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IFRpdGxlU2NoZW1hKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEZvcm1Db250cm9sQmFzZSBleHRlbmRzIEZvcm1TY2hlbWFCYXNlIHtcbiAgICBfY29tcG9uZW50PzogYW55OyAvLyBDb21wb25lbnQgY+G7p2Egc2NoZW1hIGtoaSBraOG7n2kgdOG6oW9cbiAgICB1bmlxdWVGaWVsZD86IHN0cmluZzsgLy8gU+G7rSBk4bulbmcgdHJvbmcgdGFibGUgc2NoZW1hXG4gICAgYXV0b2ZvY3VzPyA9IGZhbHNlO1xuICAgIHZhbGlkYXRvcnM/OiBJVmFsaWRhdG9yW10gPSBbXTtcbiAgICBjb3JyZWN0b3JzPzogSUNvcnJlY3RvcltdID0gW107XG4gICAgcmVxdWlyZWQ/ID0gZmFsc2U7XG4gICAgZW5hYmxlQ2FjaGluZz8gPSBmYWxzZTtcbiAgICBvbkNoYW5nZWQ/OiBGdW5jdGlvbjtcbiAgICBvbkFmdGVyQ2hhbmdlZD86IEZ1bmN0aW9uO1xuICAgIG9uSW5pdD86IEZ1bmN0aW9uO1xuICAgIG9uUm93Tm9kZUZpbmlzaEluaXQ/OiBGdW5jdGlvbjtcbiAgICB0cmlnZ2VyTG9hZENoaWxkPzogRnVuY3Rpb247XG4gICAgaGFzT3BlcmF0b3JDYW5Cbz8gPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBGb3JtQ29udHJvbEJhc2UpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgRm9ybUNvbnRyb2xCYXNlV2l0aFNlcnZpY2UgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2Uge1xuICAgIC8qKiBDb3B5IHThu6sgRm9ybVNjaGVtYUJhc2VXaXRoU2VydmljZSAqL1xuICAgIC8vIFVybCDEkeG7gyBs4bqleSBk4buvIGxp4buHdSAqKiogS0jDlE5HIFPhu6wgROG7pE5HIFRST05HIEPDgUMgQ0FTRSBQSOG7lCBCSeG6vk4sIENI4buIIFPhu6wgROG7pE5HIMSQ4buQSSBW4buaSSBGT1JNIEtI4bqiTyBTw4FUICoqKlxuICAgIHNlcnZpY2VVcmk/ID0gJyc7XG4gICAgYmFzZVNlcnZpY2U/OiBCYXNlU2VydmljZSB8IE1hc3RlckRhdGFTZXJ2aWNlO1xuICAgIHJlZkZpZWxkcz86IFJlZkZpZWxkW10gPSBbXTtcbiAgICBncm91cENvZGU/OiBzdHJpbmc7XG4gICAgdmFsdWVGaWVsZD8gPSAnaWQnO1xuICAgIGRpc3BsYXlGaWVsZD8gPSAndGVuJztcblxuICAgIGlzU2VydmVyTG9hZD8gPSBmYWxzZTtcbiAgICBwcmV2ZW50U2VydmVyTG9hZE9uSW5pdD8gPSBmYWxzZTtcbiAgICBzZWFyY2hGaWVsZD86IHN0cmluZ1tdO1xuXG4gICAgaXNUcmVlPyA9IGZhbHNlO1xuICAgIGlzVHJlZUJhc2VNb2RlbD8gPSBmYWxzZTtcbiAgICBmaWVsZFRyZWU/OiBzdHJpbmc7XG4gICAgdmFsdWVQYXJlbnRSb290PzogYW55ID0gbnVsbDsgLy8gR2nDoSB0cuG7iyB0csaw4budbmcgW2ZpZWxkVHJlZV0gY+G7p2EgaXRlbSB0cmVlIHJvb3RcbiAgICBmaWVsZFBhcmVudFRyZWVJdGVtPyA9ICdpZCc7IC8vIFRyxrDhu51uZyB4w6FjIMSR4buLbmggYuG6o24gZ2hpIGzDoCBi4bqjbiBnaGkgY2hhIGPhu6dhIGLhuqNuIGdoaSBjb25cbiAgICBmaWVsZE1hUGhhbkNhcD8gPSAnbWFQaGFuQ2FwJzsgLy8gRmllbGQgbcOjIHBow6JuIGPhuqVwXG4gICAgc2VsZWN0Q2hpbGRJdGVtPyA9IGZhbHNlOyAvLyBDw7Mgc2VsZWN0IGLhuqNuIGdoaSBjb24gbuG6v3UgY2jhu41uIGLhuqNuIGdoaSBjaGFcbiAgICBzZWxlY3REZXNjZW5kYW50PyA9IGZhbHNlOy8vIEPDsyBzZWxlY3QgYuG6o24gZ2hpIGNvbiwgY2jDoXUgbuG6v3UgY2jhu41uIGLhuqNuIGdoaSBjaGFcblxuICAgIHBhZ2VTaXplPzogbnVtYmVyID0gMTU7IC8vIETDuW5nIGNobyBkcm9wZG93biBzZXJ2ZXIgbG9hZFxuICAgIHBsdXNVcmw/OiBzdHJpbmc7XG4gICAgc29ydHM/OiBTb3J0W10gPSBbXTtcbiAgICBzb3J0RmllbGQ/ID0gJyc7XG4gICAgc29ydERpcj86IDEgfCAtMSA9IDE7XG4gICAgZmllbGRQbHVzPyA9ICcnOyAvLyBEYW5oIHPDoWNoIG5o4buvbmcgdHLGsOG7nW5nIGLhu5Ugc3VuZyBj4bqnbiBs4bqleSB0aMOqbSBuZ2/DoGkgaWQsIHRlbjsgVsOtIGThu6UgLG1hXG4gICAgZGVmYXVsdEZpbHRlcnM/OiBGaWx0ZXJbXSB8IEZ1bmN0aW9uIHwgUHJvbWlzZTxGaWx0ZXJbXT47IC8vIHR1bmd0cyB0aMOqbSBraeG7g3UgZOG7ryBsaeG7h3UgZGVmYXVsdEZpbHRlcnMgbMOgIHByb21pc2VcbiAgICBmaWx0ZXJXaGlsZVByb2Nlc3M/OiBGaWx0ZXJbXSB8IEZ1bmN0aW9uIHwgUHJvbWlzZTxGaWx0ZXJbXT47IC8vIHR1bmd0cyB0aMOqbSBraeG7g3UgZOG7ryBsaeG7h3UgZGVmYXVsdEZpbHRlcnMgbMOgIHByb21pc2VcbiAgICBiaW5kaW5nRmlsdGVycz86IEZpbHRlcltdO1xuICAgIGFmdGVyR2V0RGF0YT86IEZ1bmN0aW9uO1xuXG4gICAgZnVuY1NldERlZmF1bHRWYWx1ZT86IEZ1bmN0aW9uO1xuXG4gICAgcGFyZW50RmllbGQ/OiBzdHJpbmc7IC8vIENvbHVtbiB0xrDGoW5nIOG7qW5nIHRyb25nIHRhYmxlIHNxbCBzZXJ2ZXIuXG4gICAgZmllbGRWYWx1ZVBhcmVudD8gPSAndmFsdWUnOyAvLyBUcsaw4budbmcgc+G7rSBk4bulbmcgxJHhu4MgbOG6pXkgZOG7ryBsaeG7h3UgbMOgbSBraMOzYSB04burIGLhuqNuZyBjaGEgY+G7p2EgaXRlbSBkcm9wIGRvd24gxJHGsOG7o2MgY2jhu41uXG5cbiAgICBjYWxsYmFja0RhdGFGaW5pc2g/OiAoZXZ0OiBFdmVudERhdGEpID0+IHZvaWQ7XG4gICAgZmlyZUNhbGxCYWNrSW5zaWRlPyA9IHRydWU7XG4gICAgbW9kaWZ5RmlsdGVyPzogRnVuY3Rpb24gfCAoKGZpbHRlcnM6IEZpbHRlcltdLCBjb21wb25lbnQ/OiBhbnksIHRyZWVOb2RlPzogQ29udHJvbFRyZWVOb2RlKSA9PiB2b2lkKTtcblxuICAgIGZ1bmNHZXRMYWJlbD86IChpdGVtKSA9PiBzdHJpbmc7XG4gICAgZnVuY0dldFZhbHVlPzogKGl0ZW0pID0+IGFueTtcbiAgICBmdW5jQ29tcGFyZT86IChpdGVtOiBhbnksIHZhbHVlKSA9PiBib29sZWFuID0gKGl0ZW0sIHZhbHVlKSA9PiBpdGVtW3RoaXMudmFsdWVGaWVsZF0gPT0gdmFsdWU7XG5cbiAgICAvKiogRW5kIGNvcHkgdOG7qyBGb3JtU2NoZW1hQmFzZVdpdGhTZXJ2aWNlICovXG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogRm9ybUNvbnRyb2xCYXNlV2l0aFNlcnZpY2UpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgVGV4dENvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2Uge1xuICAgIHNlbGVjdEFsbFRleHQ/ID0gZmFsc2U7IC8vIENo4buNbiB04bqldCBj4bqjIHRleHQga2hpIGZvY3VzXG5cbiAgICBwbGFjZWhvbGRlcj8gPSAnJztcbiAgICBkYXRhRm9ybWF0PzogJ3RleHQnIHwgJ3Bhc3N3b3JkJyB8ICdudW1iZXInIHwgJ2VtYWlsJyB8ICdwaG9uZScgfCAnZmF4JyB8ICdtb25leScgfCAnbW9uZXlpbnQnIHwgJ2Ftb3VudCcgPSAndGV4dCc7XG4gICAgbWF4TGVuZ3RoPzogbnVtYmVyO1xuICAgIG1pbj8gPSAwO1xuICAgIG1heD8gPSBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUjtcblxuICAgIGJhc2VTZXJ2aWNlPzogQmFzZVNlcnZpY2UgfCBNYXN0ZXJEYXRhU2VydmljZTtcbiAgICBncm91cENvZGU/OiBzdHJpbmc7XG4gICAgdmFsdWVGaWVsZD8gPSAnaWQnO1xuICAgIGRpc3BsYXlGaWVsZD8gPSAndGVuJztcblxuICAgIHBsdXNVcmw/OiBzdHJpbmc7XG4gICAgc29ydHM/OiBTb3J0W10gPSBbXTtcbiAgICBzb3J0RmllbGQ/ID0gJyc7XG4gICAgc29ydERpcj86IDEgfCAtMSA9IDE7XG4gICAgZmllbGRQbHVzPyA9ICcnOyAvLyBEYW5oIHPDoWNoIG5o4buvbmcgdHLGsOG7nW5nIGLhu5Ugc3VuZyBj4bqnbiBs4bqleSB0aMOqbSBuZ2/DoGkgaWQsIHRlbjsgVsOtIGThu6UgLG1hXG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogVGV4dENvbnRyb2xTY2hlbWEpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgUmVmZXJlbmNlVGV4dENvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2Uge1xuICAgIHBsYWNlaG9sZGVyPyA9ICcnO1xuICAgIHN1ZmZpeD86IHN0cmluZztcbiAgICBwcmVmaXg/OiBzdHJpbmc7XG5cbiAgICBiYXNlU2VydmljZT86IEJhc2VTZXJ2aWNlIHwgTWFzdGVyRGF0YVNlcnZpY2U7XG4gICAgZ3JvdXBDb2RlPzogc3RyaW5nO1xuICAgIHZhbHVlRmllbGQ/ID0gJ2lkJztcbiAgICBkaXNwbGF5RmllbGQ/ID0gJ3Rlbic7XG4gICAgZGF0YVNvdXJjZT86IGFueVtdO1xuICAgIGZ1bmNHZXRMYWJlbD86IChpdGVtKSA9PiBzdHJpbmc7XG5cbiAgICBwbHVzVXJsPzogc3RyaW5nO1xuICAgIHNvcnRzPzogU29ydFtdID0gW107XG4gICAgc29ydEZpZWxkPyA9ICcnO1xuICAgIHNvcnREaXI/OiAxIHwgLTEgPSAxO1xuICAgIGZpZWxkUGx1cz8gPSAnJzsgLy8gRGFuaCBzw6FjaCBuaOG7r25nIHRyxrDhu51uZyBi4buVIHN1bmcgY+G6p24gbOG6pXkgdGjDqm0gbmdvw6BpIGlkLCB0ZW47IFbDrSBk4bulICxtYVxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBSZWZlcmVuY2VUZXh0Q29udHJvbFNjaGVtYSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBUZXh0Q29udHJvbFNjaGVtYVdpdGhTZXJ2aWNlIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlV2l0aFNlcnZpY2Uge1xuICAgIHBsYWNlaG9sZGVyPyA9ICcnO1xuICAgIGRhdGFGb3JtYXQ/OiAndGV4dCcgfCAnbnVtYmVyJyB8ICdlbWFpbCcgfCAncGhvbmUnIHwgJ2ZheCcgfCAnbW9uZXknIHwgJ21vbmV5aW50JyB8ICdhbW91bnQnID0gJ3RleHQnO1xuICAgIG1heExlbmd0aD86IG51bWJlcjtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBUZXh0Q29udHJvbFNjaGVtYVdpdGhTZXJ2aWNlKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIE1hc2tDb250cm9sU2NoZW1hIGV4dGVuZHMgVGV4dENvbnRyb2xTY2hlbWEge1xuICAgIG1hc2tUeXBlPzogJ2RlY2ltYWwnIHwgJ2ludCcgPSAnaW50JztcbiAgICBhdXRvRm9ybWF0PyA9IHRydWU7XG4gICAgbWluPyA9IDA7XG4gICAgbWF4PyA9IDk5OTk5OTk5OTk7XG4gICAgcHJlZml4PyA9ICcnO1xuICAgIHN1ZmZpeD8gPSAnJztcbiAgICBkZWNpbWFsUGxhY2VzPyA9IDI7XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogTWFza0NvbnRyb2xTY2hlbWEpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgTnVtYmVyUmFuZ2VDb250cm9sU2NoZW1hIGV4dGVuZHMgVGV4dENvbnRyb2xTY2hlbWEge1xuICAgIG1hc2tUeXBlPzogJ2RlY2ltYWwnIHwgJ2ludCc7XG4gICAgbWluPyA9IDA7XG4gICAgbWF4PyA9IDk5OTk5OTk5OTk7XG4gICAgcHJlZml4PyA9ICcnO1xuICAgIHN1ZmZpeD8gPSAnJztcbiAgICBkZWNpbWFsUGxhY2VzPyA9IDI7XG4gICAgLy8gU+G7rSBk4bulbmcgxJHhu4Mga2hhaSBiw6FvIG9wZXJhdG9yIGNobyBjb250cm9sIHRyb25nIHF1ZXJ5LWJ1aWxkZXIgdGhheSBjaG8gY8OhYyBvcGVyYXRvciBt4bq3YyDEkeG7i25oIMSRxrDhu6NjIHThuqFvIHThu6sgcXVlcnktYnVpbGRlclxuICAgIG9wZXJhdG9ycz86IGFueVtdO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IE51bWJlclJhbmdlQ29udHJvbFNjaGVtYSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBEYXRlVGltZUNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2Uge1xuICAgIGFwcGVuZFRvPyA9ICdib2R5JztcbiAgICBwYW5lbENsYXNzPyA9ICcnO1xuICAgIHBsYWNlaG9sZGVyPzogc3RyaW5nO1xuICAgIHNob3dCdXR0b25CYXI/ID0gZmFsc2U7XG4gICAgc2hvd1RpbWU/ID0gZmFsc2U7XG4gICAgc2hvd0ljb24/ID0gdHJ1ZTtcbiAgICBmb3JtYXQ/OiAnbm9ybWFsJyB8ICdmcm9tTm93JyA9ICdub3JtYWwnO1xuICAgIHNob3dPbkZvY3VzPyA9IHRydWU7XG4gICAgbWluRGF0ZT86IERhdGUgPSBudWxsO1xuICAgIG1heERhdGU/OiBEYXRlID0gbnVsbDtcbiAgICB0aW1lT25seT8gPSBmYWxzZTtcbiAgICBkYXRlRm9ybWF0PyA9ICdkZC9tbS95eSc7XG4gICAgdmlldz86ICdkYXRlJyB8ICdtb250aCcgPSAnZGF0ZSc7XG4gICAgeWVhclJhbmdlPzogc3RyaW5nID0gJzE5NTA6MjA1MCc7XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogRGF0ZVRpbWVDb250cm9sU2NoZW1hKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdGhpcy5wbGFjZWhvbGRlcikge1xuICAgICAgICAgICAgdGhpcy5wbGFjZWhvbGRlciA9IHRoaXMuc2hvd1RpbWUgPyAnZGQvTU0veXl5eSBoaDptbScgOiAnZGQvTU0veXl5eSc7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBEYXRlVGltZVJhbmdlQ29udHJvbFNjaGVtYSBleHRlbmRzIERhdGVUaW1lQ29udHJvbFNjaGVtYSB7XG4gICAgc2hvd0ljb24/ID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogRGF0ZVRpbWVDb250cm9sU2NoZW1hKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEVudGl0eVBpY2tlckNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2VXaXRoU2VydmljZSB7XG5cbiAgICAvLyAjUHJvcGVydHkgb3ZlcnJpZGVcbiAgICBiYXNlU2VydmljZT86IEJhc2VTZXJ2aWNlO1xuICAgIC8vICNFbmQgcHJvcGVydHkgb3ZlcnJpZGVcblxuICAgIHJldHVyblR5cGU/OiAndmFsdWUnIHwgJ29iamVjdCcgPSAndmFsdWUnO1xuXG4gICAgbXVsdGlwbGU/ID0gdHJ1ZTtcbiAgICBsaW1pdD8gPSAxMDAwO1xuICAgIHRpdGxlPyA9ICcgJztcbiAgICBjb2x1bW5zPzogRW50aXR5UGlja2VyQ29sdW1uW107XG4gICAgZmllbGRTZWFyY2hUZXh0Pzogc3RyaW5nW10gPSBbXTtcbiAgICBvcGVyYXRvckZpZWxkU2VhcmNoVGV4dD86IE9wZXJhdG9yLmNvbnRhaW4gfCBPcGVyYXRvci5lcXVhbCA9IE9wZXJhdG9yLmNvbnRhaW47XG4gICAgZGF0YUluaXQ/OiBhbnkgPSB7fTtcbiAgICBhZHZhbmNlU2VhcmNoTW9kZWw/OiBhbnkgPSB7fTtcbiAgICBvblNlYXJjaEZvcm1Jbml0aWFsaXplZD86IEZ1bmN0aW9uO1xuICAgIG9uRm9ybUV2ZW50PzogRnVuY3Rpb247XG4gICAgb25TZWxlY3RFbnRpdHk/OiBGdW5jdGlvbjsgLy8gbuG6v3UgZnVuY3Rpb24ga2jDoWMgbnVsbCB2w6AgcmV0dXJuIHRydWUgc+G6vSBjaG8gcGjDqXAgbeG7nyBkaWFsb2dcbiAgICBhZnRlckNvbnRlbnRMZWZ0SW5pdD86IChjcnVkTGlzdDogQ3J1ZExpc3RDb21wb25lbnQpID0+IHZvaWQ7IC8vIFNhdSBraGkgY8OhYyB0ZW1wbGF0ZSBjb250ZW50IGluaXRcbiAgICBhZnRlckNvbnRlbnRSaWdodEluaXQ/OiAoY3J1ZExpc3Q6IENydWRMaXN0Q29tcG9uZW50KSA9PiB2b2lkOyAvLyBTYXUga2hpIGPDoWMgdGVtcGxhdGUgY29udGVudCBpbml0XG4gICAgYWZ0ZXJHZXREYXRhPzogKHNvdXJjZXM6IGFueVtdLCBlbGVtZW50OiBFbnRpdHlQaWNrZXJDb21wb25lbnQpID0+IHZvaWQ7XG4gICAgYWZ0ZXJHZXREYXRhVW5QaWNrZWQ/OiAoc291cmNlczogYW55W10sIGVsZW1lbnQ6IEVudGl0eVBpY2tlckRhdGFDb21wb25lbnQgfCBFbnRpdHlQaWNrZXJUcmVlRGF0YUNvbXBvbmVudCkgPT4gdm9pZDtcbiAgICBhZnRlckdldERhdGFQaWNrZWQ/OiAoc291cmNlczogYW55W10sIGVsZW1lbnQ6IEVudGl0eVBpY2tlclNlbGVjdGVkQ29tcG9uZW50IHwgRW50aXR5UGlja2VyVHJlZVNlbGVjdGVkQ29tcG9uZW50KSA9PiB2b2lkO1xuICAgIG9uVmlld0NsaWNrPzogKHJvd0RhdGE6IGFueSwgZWxlbWVudDogRW50aXR5UGlja2VyQ29tcG9uZW50KSA9PiB2b2lkO1xuXG4gICAgLy8gQ8OzIHPhu60gZOG7pW5nIHBsdXNVcmwg4bufIG3DoG4gaMOsbmggY2jDrW5oIEVudGl0eVBpY2tlciBoYXkga2jDtG5nLlxuICAgIHVzZURlZmF1bHRQbHVzbFVybEluTGlzdD8gPSBmYWxzZTtcblxuICAgIC8vIEPDsyBz4butIGThu6VuZyBkZWZhdWx0RmlsdGVyIGtoaSB0w6xtIGtp4bq/bSBkYW5oIHPDoWNoIOG7nyBtw6BuIGjDrG5oIGNow61uaCBFbnRpdHlQaWNrZXIuXG4gICAgdXNlRGVmYXVsdEZpbHRlckluTGlzdD8gPSBmYWxzZTtcblxuICAgIGhpZGRlbkFkdmFuY2VTZWFyY2g/ID0gZmFsc2U7XG4gICAgcmVhZE9ubHk/ID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogRW50aXR5UGlja2VyQ29udHJvbFNjaGVtYSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBBdXRvQ29tcGxldGVQaWNrZXJDb250cm9sU2NoZW1hIGV4dGVuZHMgRW50aXR5UGlja2VyQ29udHJvbFNjaGVtYSB7XG4gICAgc3BsaXRjaGFyPzogc3RyaW5nO1xuICAgIHBsYWNlaG9sZGVyPzogc3RyaW5nO1xuICAgIGRhdGFUeXBlPzogRW51bUNvbnRyb2xQaWNrZXJUeXBlID0gRW51bUNvbnRyb2xQaWNrZXJUeXBlLlVTRVI7XG4gICAgYXBwZW5kVG8/ID0gJ2JvZHknO1xuICAgIG1vZGlmeUluaXRTZWFyY2hEYXRhPzogRnVuY3Rpb247IC8vIFPhu60gZOG7pW5nIMSR4buDIG1vZGlmeSBkYXRhIGPhu6dhIHBo4bqnbiBzZWFyY2gsIHRoxrDhu51uZyDEkeG7gyBzZXQgaW5pdCBkYXRhIGR5bmFtaWMgdGhlbyBuaHUgY+G6p3VcbiAgICBjYWxsQmFjaz86IHsgW2tleTogc3RyaW5nXTogRnVuY3Rpb247IH07XG4gICAgb25SZWFkeT86IChldnQ6IEV2ZW50RGF0YSkgPT4gdm9pZDtcbiAgICBvbkFkanVzdGVkVmFsdWU/OiBGdW5jdGlvbjtcbiAgICBtb2RpZnlDb250cm9sPzogRnVuY3Rpb247IC8vIFPhu60gZOG7pW5nIMSR4buDIG1vZGlmeSBzY2hlbWEgYmFzZVxuICAgIG5lZWRDbG9uZT8gPSBmYWxzZTsgLy8gU+G7rSBk4bulbmcgdHJvbmcgdGFibGUgc2NoZW1hLCBraGkgZGF0YXNvdXJjZSBj4bunYSBt4buZdCBj4buZdCB0csOqbiBt4buXaSBkw7JuZyBsw6Aga2jDoWMgbmhhdSBj4bqnbiBzZXQgbmVlZENsb25lID0gdHJ1ZVxcXG4gICAgaXNDaGVja1dyaXRlVmFsdWU/ID0gZmFsc2U7XG4gICAgYWZ0ZXJHZXREYXRhRHJvcGRvd24/OiAoc291cmNlczogYW55W10sIGVsZW1lbnQ6IEF1dG9Db21wbGV0ZVBpY2tlckNvbXBvbmVudCkgPT4gdm9pZDtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBBdXRvQ29tcGxldGVQaWNrZXJDb250cm9sU2NoZW1hKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFdyYXBQaWNrZXJDb250cm9sU2NoZW1hIGV4dGVuZHMgQXV0b0NvbXBsZXRlUGlja2VyQ29udHJvbFNjaGVtYSB7XG4gICAgZGF0YVR5cGU/OiBFbnVtQ29udHJvbFBpY2tlclR5cGUgPSBFbnVtQ29udHJvbFBpY2tlclR5cGUuVVNFUjtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBXcmFwUGlja2VyQ29udHJvbFNjaGVtYSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBDdXN0b21Db250cm9sU2NoZW1hIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlIHtcbiAgICB0ZW1wbGF0ZT86IFRlbXBsYXRlUmVmPGFueT47XG4gICAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gICAgLy8gU+G7rSBk4bulbmcgxJHhu4Mga2hhaSBiw6FvIG9wZXJhdG9yIGNobyBjb250cm9sIHRyb25nIHF1ZXJ5LWJ1aWxkZXIgdGhheSBjaG8gY8OhYyBvcGVyYXRvciBt4bq3YyDEkeG7i25oIMSRxrDhu6NjIHThuqFvIHThu6sgcXVlcnktYnVpbGRlclxuICAgIG9wZXJhdG9ycz86IGFueVtdO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IEN1c3RvbUNvbnRyb2xTY2hlbWEpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ29sb3JQaWNrZXJDb250cm9sU2NoZW1hIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlIHtcbiAgICBlbmFibGVDYWNoaW5nPyA9IHRydWU7XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogQ29sb3JQaWNrZXJDb250cm9sU2NoZW1hKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuXG5leHBvcnQgY2xhc3MgU3BhbkNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2Uge1xuICAgIHNvdXJjZUZpZWxkPzogc3RyaW5nO1xuICAgIGlzaHRtbD8gPSBmYWxzZTtcbiAgICBlZGl0YWJsZT8gPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBTcGFuQ29udHJvbFNjaGVtYSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBDb2xvckNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2Uge1xuICAgIHNvdXJjZUZpZWxkPzogc3RyaW5nO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IENvbG9yQ29udHJvbFNjaGVtYSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBLZXlWYWx1ZUNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2Uge1xuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBLZXlWYWx1ZUNvbnRyb2xTY2hlbWEpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgSW1hZ2VVcGxvYWRlckNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2Uge1xuICAgIGlzQXZhdGFyPzogYm9vbGVhbiA9IGZhbHNlO1xuICAgIGlzVmlkZW8/OiBib29sZWFuID0gZmFsc2U7XG4gICAgbXVsdGlwbGU/OiBib29sZWFuID0gdHJ1ZTtcbiAgICBjaG9vc2VMYWJlbD86IHN0cmluZyA9ICdDaOG7jW4g4bqjbmgnO1xuICAgIGxvYWRCeUVudGl0eUtleT86IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBlbnRpdHlLZXk/OiBzdHJpbmc7XG4gICAgdGVtcGxhdGVJdGVtPzogVGVtcGxhdGVSZWY8YW55PjtcbiAgICB0ZW1wbGF0ZUl0ZW1zPzogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBJbWFnZVVwbG9hZGVyQ29udHJvbFNjaGVtYSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBGaWxlTWFuYWdlckNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2Uge1xuICAgIC8vIGVtaXQgZXZlbnQga2hpIGNo4buNbiBt4buZdCByb3cgdHJvbmcgZmlsZSBtYW5hZ2VyXG4gICAgb25TZWxlY3RlZD86IEZ1bmN0aW9uID0gKCkgPT4ge1xuICAgIH07XG4gICAgbWRXaWR0aD8gPSAxMjtcbiAgICAvKipcbiAgICAgKiDEkOG7i25oIGThuqFuZyBmaWxlIGNvbnRyb2wgc+G6vSBuaOG6rW4sIGThuqFuZyBjaHXhu5dpIGPDoWNoIG5oYXUgYuG7n2kgZOG6pXUgJywnXG4gICAgICogc+G6vSBvdmVycmlkZSBhY2NlcHRGaWxlVHlwZXMuXG4gICAgICogVkQ6ICcuZG9jLC5kb2N4LC5wZGYnXG4gICAgICovXG4gICAgYWNjZXB0Pzogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqIEZsYWcgZGUgYmlldCBmaWxlIHVwbG9hZCBuaGFuIG5odW5nIGxvYWkgZmlsZSBuYW8uXG4gICAgICogVkQ6IEZpbGVUeXBlRmxhZy5BVURJTyB8IEZpbGVUeXBlRmxhZy5WSURFT1xuICAgICAqL1xuICAgIGFjY2VwdEZpbGVUeXBlcz86IEZpbGVUeXBlRmxhZyA9IEZpbGVUeXBlRmxhZy5WSURFTyB8IEZpbGVUeXBlRmxhZy5JTUFHRSB8IEZpbGVUeXBlRmxhZy5ET0MgfCBGaWxlVHlwZUZsYWcuQVVESU8gfCBGaWxlVHlwZUZsYWcuQ09NUFJFU1NFRDtcbiAgICBtYXhGaWxlU2l6ZT8gPSAxMDAwMDAwMDA7XG4gICAgaW52YWxpZEZpbGVTaXplTWVzc2FnZVN1bW1hcnk/ID0gJ3swfTogUXXDoSBkdW5nIGzGsOG7o25nIGZpbGUgY2hvIHBow6lwLCAnO1xuICAgIGludmFsaWRGaWxlU2l6ZU1lc3NhZ2VEZXRhaWw/ID0gJ2R1bmcgbMaw4bujbmcgdOG7kWkgxJFhIGzDoCB7MH0uJztcbiAgICBpbnZhbGlkRmlsZVR5cGVNZXNzYWdlU3VtbWFyeT8gPSAnezB9OiBLaMO0bmcgxJHDum5nIMSR4buLbmggZOG6oW5nIGZpbGUsICc7XG4gICAgaW52YWxpZEZpbGVUeXBlTWVzc2FnZURldGFpbD8gPSAnxJHhu4tuaCBk4bqhbmcgZmlsZSBjaG8gcGjDqXA6IHswfS4nO1xuICAgIGludmFsaWRGaWxlTGltaXRNZXNzYWdlU3VtbWFyeT8gPSAnUXXDoSBz4buRIGzGsOG7o25nIGZpbGUgY2hvIHBow6lwLCAnO1xuICAgIGludmFsaWRGaWxlTGltaXRNZXNzYWdlRGV0YWlsPyA9ICd04buRaSDEkWEgezB9IGZpbGUuJztcbiAgICBtb2RlPzogRmlsZU1hbmFnZXJNb2RlIHwgRmlsZVVwbG9hZE1vZGUgPSBGaWxlTWFuYWdlck1vZGUubXVsdGlwbGU7XG4gICAgbGF5b3V0PzogRW51bUZpbGVMYXlvdXQgPSBFbnVtRmlsZUxheW91dC5MSVNUO1xuICAgIHJlYWRvbmx5PyA9IGZhbHNlO1xuICAgIGhpZGRlblBhZ2VTZXR0aW5nPyA9IGZhbHNlO1xuXG4gICAgLy8gU2VydmljZSBkw7luZyDEkeG7gyBs4bqleSBkYXRhc291cmNlIGPhu6dhIG5oaeG7gXUgY29udHJvbCBt4buZdCBs4bqnbi5cbiAgICBmaWxlRGF0YVNlcnZpY2U/OiBGaWxlRGF0YVNlcnZpY2U7XG5cbiAgICAvLyBC4buZIDMga2V5IMSR4buDIGzhuqV5IHRoxrAgbeG7pWMgZ+G7kWMuXG4gICAgc2VydmljZUNvZGU/OiBzdHJpbmc7XG4gICAgZW50aXR5Pzogc3RyaW5nO1xuICAgIGVudGl0eUtleT86IHN0cmluZztcbiAgICAvLyBUcsaw4budbmcgaOG7o3Ag4bufIHRyb25nIGZvcm0sIGTDuW5nIHRyxrDhu51uZyBuw6B5IMSR4buDIGzhuqV5XG4gICAgLy8gZW50aXR5S2V5IHThu6sgbW9kZWwuZGF0YSB0aGF5IHbDrCB0cnV54buBbiB2w6BvIGVudGl0eUtleVxuICAgIGVudGl0eUtleXM/OiBzdHJpbmdbXTtcbiAgICBlbnRpdHlLZXlGaWVsZD8gPSAnaWQnO1xuICAgIHJvb3RGb2xkZXJJZD86IHN0cmluZzsgLy8gY2hvIHRyxrDhu51uZyBo4bujcCB04bqhbyBmb2xkZXIgYsOqbiBuZ2/DoGkgY29tcG9uZW50XG5cbiAgICAvLyBUw6puIHRoxrAgbeG7pWMgZ+G7kWMga2hpIGhp4buDbiB0aOG7iyB0csOqbiBicmVhZGNydW1icy5cbiAgICByb290Rm9sZGVyTmFtZT86IHN0cmluZztcblxuICAgIGRhdGFLeVNvRG9uVmk/OiBGdW5jdGlvbjtcblxuICAgIGluVGFpTGlldT8gPSBmYWxzZTtcbiAgICBpblRhaUxpZXVDaHVuZz8gPSBmYWxzZTtcbiAgICBjb3B5VG9Gb2xkZXJJZD8gPSAnJztcbiAgICBtdWx0aXBsZT8gPSB0cnVlO1xuICAgIHVwbG9hZE9ubHk/ID0gZmFsc2U7XG4gICAgdXNlQnJlYWRjcnVtYnM/ID0gdHJ1ZTtcbiAgICB1c2VTaWduYXR1cmU/ID0gdHJ1ZTtcbiAgICBmaWxlUGlja2VyU2V0dGluZz86IEZpbGVQaWNrZXJTZXR0aW5nO1xuICAgIGlzU2hvd0ltYWdlUHJldmlldz86IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIGZ1blNldEJlZm9yZUNvbnRleHRNZW51PzogKHJvd0RhdGEpID0+IFByb21pc2U8YW55W10+O1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IEZpbGVNYW5hZ2VyQ29udHJvbFNjaGVtYSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBGaWxlTWFuYWdlck5ld0NvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGaWxlTWFuYWdlckNvbnRyb2xTY2hlbWEge1xuICAgIGZpbGVFbmRwb2ludEtleT86IHN0cmluZztcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBGaWxlTWFuYWdlck5ld0NvbnRyb2xTY2hlbWEpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgRmlsZVVwbG9hZENvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGaWxlTWFuYWdlckNvbnRyb2xTY2hlbWEge1xuICAgIG1vZGU/ID0gRmlsZVVwbG9hZE1vZGUudXNpbmdTZXJ2aWNlRmlsZTtcbiAgICBtZFdpZHRoPyA9IDY7XG4gICAgc2hhcmVkRm9sZGVyVHlwZT86IFNoYXJlZEZvbGRlclR5cGUgPSBTaGFyZWRGb2xkZXJUeXBlLlRlbXB0O1xuXG4gICAgaGlkZGVuQnV0dG9ucz8gPSBmYWxzZTtcbiAgICBkaXNhYmxlZD8gPSBmYWxzZTtcbiAgICByZWFkb25seT8gPSBmYWxzZTtcbiAgICBhdXRvU2F2ZWQ/ID0gdHJ1ZTtcblxuICAgIGVuYWJsZVNjYW4/ID0gZmFsc2U7XG4gICAgZXh0cmFjdFppcEZpbGU/ID0gZmFsc2U7XG4gICAgZW5hYmxlRHJpdmVGaWxlPyA9IGZhbHNlO1xuICAgIHVzZVNpZ25hdHVyZT8gPSBmYWxzZTtcblxuICAgIHNob3dEb3dubG9hZEZpbGU/ID0gdHJ1ZTtcbiAgICBzaG93RGVsZXRlRmlsZT8gPSB0cnVlO1xuICAgIHNob3dQcmludEZpbGU/ID0gdHJ1ZTtcbiAgICBtYXhGaWxlU2l6ZT8gPSAxMDAwMDAwMDA7IC8vIDEwMCBNQlxuICAgIGludmFsaWRGaWxlU2l6ZU1lc3NhZ2VTdW1tYXJ5PyA9ICd7MH06IFF1w6EgZHVuZyBsxrDhu6NuZyBmaWxlIGNobyBwaMOpcCwgJztcbiAgICBpbnZhbGlkRmlsZVNpemVNZXNzYWdlRGV0YWlsPyA9ICdkdW5nIGzGsOG7o25nIHThu5FpIMSRYSBsw6AgezB9Lic7XG4gICAgaW52YWxpZEZpbGVUeXBlTWVzc2FnZVN1bW1hcnk/ID0gJ3swfTogS2jDtG5nIMSRw7puZyDEkeG7i25oIGThuqFuZyBmaWxlLCAnO1xuICAgIGludmFsaWRGaWxlVHlwZU1lc3NhZ2VEZXRhaWw/ID0gJ8SR4buLbmggZOG6oW5nIGZpbGUgY2hvIHBow6lwOiB7MH0uJztcbiAgICBpbnZhbGlkRmlsZUxpbWl0TWVzc2FnZVN1bW1hcnk/ID0gJ1F1w6Egc+G7kSBsxrDhu6NuZyBmaWxlIGNobyBwaMOpcCwgJztcbiAgICBpbnZhbGlkRmlsZUxpbWl0TWVzc2FnZURldGFpbD8gPSAndOG7kWkgxJFhIHswfSBmaWxlLic7XG5cbiAgICBvblJlbW92ZT86IEZ1bmN0aW9uO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IEZpbGVVcGxvYWRDb250cm9sU2NoZW1hKSB7XG4gICAgICAgIHN1cGVyKCk7XG5cbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgU3dpdGNoQ29udHJvbFNjaGVtYSBleHRlbmRzIEZvcm1Db250cm9sQmFzZSB7XG4gICAgY29uc3RydWN0b3IoaW5pdD86IFN3aXRjaENvbnRyb2xTY2hlbWEpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ2hlY2tib3hDb250cm9sU2NoZW1hIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlIHtcbiAgICBlbmFibGVDYWNoaW5nPyA9IHRydWU7XG4gICAgaGlkZGVuTGFiZWw/ID0gZmFsc2U7IC8vIFNldCA9IHRydWUgY2jhu6cgeeG6v3Uga2hpIGTDuW5nIHRyb25nIHRhYmxlIHNjaGVtYSDEkeG7gyDhuqluIGxhYmVsIMSRaSwgdsOsIGxhYmVsIMSRw6MgY8OzIHRyw6puIHRpw6p1IMSR4buBIGPhu5l0XG4gICAgZGVmYXVsdFZhbHVlPyA9IGZhbHNlO1xuICAgIGRpc3BsYXlMYWJlbD8gPSAnJztcbiAgICBpc0N1c3RvbUxhYmVsPyA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IENoZWNrYm94Q29udHJvbFNjaGVtYSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBCdXR0b25Db250cm9sU2NoZW1hIGV4dGVuZHMgRm9ybVNjaGVtYUJhc2Uge1xuICAgIHNob3dMYWJlbD8gPSBmYWxzZTtcbiAgICBidENsYXNzPyA9ICdwLWJ1dHRvbi10ZXh0JztcbiAgICBpY29uPztcbiAgICBidFN0eWxlPzogYW55ID0geyB3aWR0aDogJ2F1dG8nIH07XG4gICAgb25DbGljaz86IEZ1bmN0aW9uO1xuICAgIGJ1dHRvblRleHQ/OiBzdHJpbmc7XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogQnV0dG9uQ29udHJvbFNjaGVtYSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5idXR0b25UZXh0ID0gdGhpcy5sYWJlbDtcbiAgICAgICAgdGhpcy5sYWJlbCA9ICcnO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFRlbXBsYXRlQ29udHJvbFNjaGVtYSBleHRlbmRzIEZvcm1TY2hlbWFCYXNlIHtcbiAgICB0ZW1wbGF0ZTogYW55O1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IFRlbXBsYXRlQ29udHJvbFNjaGVtYSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBUZXh0QXJlYUNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2Uge1xuICAgIHJvd3M/ID0gNTtcbiAgICBwbGFjZWhvbGRlcj8gPSAnJztcbiAgICBtYXhMZW5ndGg/OiBudW1iZXI7XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogVGV4dEFyZWFDb250cm9sU2NoZW1hKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFVzZXJQaWNrZXJDb250cm9sU2NoZW1hIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlIHtcbiAgICBhcHBlbmRUbz8gPSAnYm9keSc7XG4gICAgbXVsdGlwbGU/ID0gdHJ1ZTtcbiAgICBpc0R5bmFtaWNGb3JtPzogYm9vbGVhbiA9IGZhbHNlO1xuICAgIHVzZXJUeXBlPyA9IFVzZXJUeXBlLkNhbkJvO1xuICAgIGxpbWl0PyA9IDIwOyAvLyBHaeG7m2kgaOG6oW4gc+G7kSBuZ8aw4budaSBkw7luZyB04buRaSDEkWEgxJHGsOG7o2MgcGlja1xuICAgIHRpdGxlPyA9ICdDaOG7jW4gbmfGsOG7nWkgZMO5bmcnO1xuICAgIGRlZmF1bHRGaWx0ZXJzPzogRmlsdGVyW10gfCBGdW5jdGlvbiB8IFByb21pc2U8RmlsdGVyW10+O1xuICAgIGZpbHRlcldoaWxlUHJvY2Vzcz86IEZpbHRlcltdIHwgRnVuY3Rpb24gfCBQcm9taXNlPEZpbHRlcltdPjtcbiAgICBlbmFibGVDYWNoaW5nPyA9IHRydWU7XG4gICAgcGFyZW50T3JnQ29kZT86IHN0cmluZztcbiAgICBwbGFjZWhvbGRlcj8gPSAnJztcbiAgICBsYXp5TG9hZE9yZ2FuaXphdGlvbj8gPSBmYWxzZTtcbiAgICB2YWx1ZUZpZWxkPyA9ICdpZCc7XG4gICAgZGlzcGxheUZpZWxkPyA9ICdmdWxsTmFtZU5ldyc7XG4gICAgZmllbGRQbHVzPyA9ICcnO1xuICAgIHBsdXNVcmw/OiBzdHJpbmc7XG4gICAgcmV0dXJuVHlwZT86ICd2YWx1ZScgfCAnb2JqZWN0JyA9ICd2YWx1ZSc7XG4gICAgcGFnZVNpemU/OiBudW1iZXI7XG4gICAgZ2V0RGlzcGxheU5hbWU/OiBmYWxzZTtcbiAgICBmaWVsZFNlYXJjaFRleHQ/OiBzdHJpbmdbXSA9IFtdO1xuICAgIG9wZXJhdG9yRmllbGRTZWFyY2hUZXh0PzogT3BlcmF0b3IuY29udGFpbiB8IE9wZXJhdG9yLmVxdWFsID0gT3BlcmF0b3IuY29udGFpbjtcbiAgICBjb2x1bW5zPzogRW50aXR5UGlja2VyQ29sdW1uW107XG4gICAgdXNlUGlja2VyPyA9IHRydWU7XG4gICAgaGlkZGVuQ29scz86IHN0cmluZ1tdID0gW107XG5cbiAgICBvblJlYWR5PzogKGV2dDogRXZlbnREYXRhKSA9PiB2b2lkO1xuICAgIGZ1bmNHZXRMYWJlbD86IChpdGVtKSA9PiBzdHJpbmc7XG4gICAgZnVuY0NvbXBhcmU/OiAoaXRlbTogYW55LCB2YWx1ZSkgPT4gYm9vbGVhbiA9IChpdGVtLCB2YWx1ZSkgPT4gaXRlbVt0aGlzLnZhbHVlRmllbGRdID09IHZhbHVlO1xuICAgIGFmdGVyQ29udGVudExlZnRJbml0PzogKGNydWRMaXN0OiBDcnVkTGlzdENvbXBvbmVudCkgPT4gdm9pZDsgLy8gU2F1IGtoaSBjw6FjIHRlbXBsYXRlIGNvbnRlbnQgaW5pdFxuICAgIGFmdGVyQ29udGVudFJpZ2h0SW5pdD86IChjcnVkTGlzdDogQ3J1ZExpc3RDb21wb25lbnQpID0+IHZvaWQ7IC8vIFNhdSBraGkgY8OhYyB0ZW1wbGF0ZSBjb250ZW50IGluaXRcbiAgICBhZnRlckdldERhdGE/OiAoc291cmNlczogYW55W10sIGVsZW1lbnQ6IEVudGl0eVBpY2tlckNvbXBvbmVudCkgPT4gdm9pZDtcbiAgICBhZnRlckdldERhdGFVblBpY2tlZD86IChzb3VyY2VzOiBhbnlbXSwgZWxlbWVudDogRW50aXR5UGlja2VyRGF0YUNvbXBvbmVudCB8IEVudGl0eVBpY2tlclRyZWVEYXRhQ29tcG9uZW50KSA9PiB2b2lkO1xuICAgIGFmdGVyR2V0RGF0YVBpY2tlZD86IChzb3VyY2VzOiBhbnlbXSwgZWxlbWVudDogRW50aXR5UGlja2VyU2VsZWN0ZWRDb21wb25lbnQgfCBFbnRpdHlQaWNrZXJUcmVlU2VsZWN0ZWRDb21wb25lbnQpID0+IHZvaWQ7XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogVXNlclBpY2tlckNvbnRyb2xTY2hlbWEpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ29DYXVUb0NodWNQaWNrZXJDb250cm9sU2NoZW1hIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlIHtcbiAgICBhcHBlbmRUbz8gPSAnYm9keSc7XG4gICAgbXVsdGlwbGU/ID0gdHJ1ZTtcbiAgICBsaW1pdD8gPSAyMDsgLy8gR2nhu5tpIGjhuqFuIHPhu5EgYuG6o24gZ2hpIHThu5FpIMSRYSDEkcaw4bujYyBwaWNrXG4gICAgdGl0bGU/ID0gJ0No4buNbiDEkcahbiB24buLJztcbiAgICBwbGFjZWhvbGRlcj86IHN0cmluZyA9ICcnO1xuICAgIGRlZmF1bHRGaWx0ZXJzPzogRmlsdGVyW10gfCBGdW5jdGlvbiB8IFByb21pc2U8RmlsdGVyW10+O1xuICAgIGVuYWJsZUNhY2hpbmc/ID0gdHJ1ZTtcbiAgICB2YWx1ZUZpZWxkPyA9ICdpZCc7XG4gICAgZGlzcGxheUZpZWxkPyA9ICd0ZW4nO1xuICAgIGZpZWxkUGx1cz8gPSAnJztcbiAgICBwbHVzVXJsPzogc3RyaW5nO1xuICAgIGlzVHJlZT86IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBvblJlYWR5PzogKGV2dDogRXZlbnREYXRhKSA9PiB2b2lkO1xuICAgIGZ1bmNHZXRMYWJlbD86IChpdGVtKSA9PiBzdHJpbmc7XG4gICAgZnVuY0NvbXBhcmU/OiAoaXRlbTogYW55LCB2YWx1ZSkgPT4gYm9vbGVhbiA9IChpdGVtLCB2YWx1ZSkgPT4gaXRlbVt0aGlzLnZhbHVlRmllbGRdID09IHZhbHVlO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IENvQ2F1VG9DaHVjUGlja2VyQ29udHJvbFNjaGVtYSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBDb0NhdVRvQ2h1Y1BpY2tlckNvbnRyb2xTY2hlbWFOZXcgZXh0ZW5kcyBDb0NhdVRvQ2h1Y1BpY2tlckNvbnRyb2xTY2hlbWEge1xuICAgIGlzVHJlZT86IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBDb0NhdVRvQ2h1Y1BpY2tlckNvbnRyb2xTY2hlbWFOZXcpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgT3JnYW5pemF0aW9uUGlja2VyQ29udHJvbFNjaGVtYSBleHRlbmRzIEZvcm1Db250cm9sQmFzZSB7XG4gICAgZmlsdGVyPyA9IHRydWU7XG4gICAgbXVsdGlwbGU/ID0gdHJ1ZTtcbiAgICBwYXJlbnRPcmdJZD86IG51bWJlcjtcbiAgICBwYXJlbnRPcmdDb2RlPzogc3RyaW5nO1xuICAgIGVuYWJsZUNhY2hpbmc/ID0gdHJ1ZTtcbiAgICBpc1VzaW5nSWQ/ID0gdHJ1ZTtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBPcmdhbml6YXRpb25QaWNrZXJDb250cm9sU2NoZW1hKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIENvQ2F1VG9DaHVjQ29udHJvbFNjaGVtYSBleHRlbmRzIEZvcm1Db250cm9sQmFzZSB7XG4gICAgZmlsdGVyPyA9IHRydWU7XG4gICAgbXVsdGlwbGU/ID0gdHJ1ZTtcbiAgICBwYXJlbnRPcmdJZD86IG51bWJlcjtcbiAgICBwYXJlbnRPcmdDb2RlPzogc3RyaW5nO1xuICAgIGVuYWJsZUNhY2hpbmc/ID0gdHJ1ZTtcbiAgICBpc1VzaW5nSWQ/ID0gdHJ1ZTtcbiAgICBkaXNhYmxlZFBhcmVudEl0ZW0/ID0gdHJ1ZTtcbiAgICByb290UGFyZW50SWQ/OiBzdHJpbmcgPSBudWxsO1xuICAgIGRpc2FibGVkPyA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IENvQ2F1VG9DaHVjQ29udHJvbFNjaGVtYSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBFZGl0b3JDb250cm9sU2NoZW1hIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlIHtcbiAgICBtb2RlPzogJ2Jhc2ljJyB8ICdtZWRpdW0nIHwgJ2Z1bGwnIHwgJ3NpbXBsZScgPSAnYmFzaWMnO1xuICAgIGhlaWdodD8gPSAyNTA7XG4gICAgaW5pdD86IGFueTtcbiAgICBsYW5ndWFnZUNvZGU/OiAndmknIHwgJ2VuJztcbiAgICBwbGFjZWhvbGRlcj86IHN0cmluZyA9ICcnO1xuICAgIGlzQ2xlYW5IdG1sPz0gZmFsc2U7XG4gICAga2VlcFN0eWxlcz89IHRydWU7XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogRWRpdG9yQ29udHJvbFNjaGVtYSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBEYXRhU291cmNlQ29udHJvbFNjaGVtYSBleHRlbmRzIEZvcm1Db250cm9sQmFzZVdpdGhTZXJ2aWNlIHtcbiAgICB2YWx1ZUZpZWxkPyA9ICdpZCc7XG4gICAgZGlzcGxheUZpZWxkPyA9ICd0ZW4nO1xuICAgIHJldHVyblR5cGU/OiAndmFsdWUnIHwgJ29iamVjdCcgPSAndmFsdWUnO1xuICAgIGRhdGFTb3VyY2U/OiBhbnkgfCBGdW5jdGlvbjtcbiAgICAvLyBT4butIGThu6VuZyDEkeG7gyBraGFpIGLDoW8gb3BlcmF0b3IgY2hvIGNvbnRyb2wgdHJvbmcgcXVlcnktYnVpbGRlciB0aGF5IGNobyBjw6FjIG9wZXJhdG9yIG3hurdjIMSR4buLbmggxJHGsOG7o2MgdOG6oW8gdOG7qyBxdWVyeS1idWlsZGVyXG4gICAgb3BlcmF0b3JzPzogYW55W107XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogRGF0YVNvdXJjZUNvbnRyb2xTY2hlbWEpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgRHJvcGRvd25Db250cm9sU2NoZW1hIGV4dGVuZHMgRGF0YVNvdXJjZUNvbnRyb2xTY2hlbWEge1xuICAgIGFwcGVuZFRvPyA9ICdib2R5JztcbiAgICBwYW5lbENsYXNzPyA9ICcnO1xuICAgIHBsYWNlaG9sZGVyPyA9ICdDaOG7jW4nO1xuICAgIHNlbGVjdGVkSXRlbXNMYWJlbD8gPSAnxJDDoyBjaOG7jW4gezB9IG3hu6VjJztcbiAgICBzZWxlY3RlZEFsbEl0ZW1MYWJlbD8gPSAnxJDDoyBjaOG7jW4gdOG6pXQgY+G6oyc7XG4gICAgc2hvd0NsZWFyPyA9IHRydWU7XG4gICAgZmlsdGVyPyA9IHRydWU7XG4gICAgbXVsdGlwbGU/ID0gZmFsc2U7XG4gICAgZ2VuZXJhdGVUb29sdGlwPzogKGl0ZW0pID0+IHN0cmluZztcbiAgICBtYXhTZWxlY3RlZExhYmVscz8gPSA1O1xuICAgIG1heEl0ZW1EaXNwbGF5PyA9IDUwO1xuICAgIHZpcnR1YWxTY3JvbGw/OiBib29sZWFuID0gZmFsc2U7XG4gICAgZml0UGFuZWw/OiBib29sZWFuID0gdHJ1ZTtcbiAgICBlbmFibGVDYWNoaW5nPyA9IHRydWU7XG4gICAgbmVlZENsb25lPyA9IGZhbHNlOyAvLyBT4butIGThu6VuZyB0cm9uZyB0YWJsZSBzY2hlbWEsIGtoaSBkYXRhc291cmNlIGPhu6dhIG3hu5l0IGPhu5l0IHRyw6puIG3hu5dpIGTDsm5nIGzDoCBraMOhYyBuaGF1IGPhuqduIHNldCBuZWVkQ2xvbmUgPSB0cnVlXG4gICAgdGVtcGxhdGVJdGVtPzogVGVtcGxhdGVSZWY8YW55PjtcbiAgICB0ZW1wbGF0ZVNlbGVjdGVkSXRlbT86IFRlbXBsYXRlUmVmPGFueT47XG4gICAgcXVpY2tBZGQ/ID0gZmFsc2U7XG4gICAgY29scz86IEZvcm1TY2hlbWFCYXNlW107XG4gICAgcXVpY2tBZGRUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPGFueT47XG4gICAgaW5pdERhdGE/OiBLZXlWYWx1ZVR5cGUgfCBGdW5jdGlvbiA9IHt9O1xuICAgIGRlZmF1bHRJbmRleD8gPSAtMTtcbiAgICBwb3B1cFNpemU/OiBQb3B1cFNpemUgPSBuZXcgUG9wdXBTaXplKHsgd2lkdGg6IDc1MCwgaGVpZ2h0OiA0MDAgfSk7XG5cbiAgICBsb2FkSW5GaXJzdERpc3BsYXk/ID0gdHJ1ZTtcblxuICAgIGF1dG9HZXREYXRhPyA9IHRydWU7XG5cbiAgICB2YWx1ZUZpZWxkPyA9ICdpZCc7XG4gICAgZGlzcGxheUZpZWxkPyA9ICd0ZW4nO1xuXG4gICAgYXV0b0Rpc3BsYXlGaXJzdD8gPSBmYWxzZTtcbiAgICBub3RJbkNydWRGb3JtPyA9IGZhbHNlO1xuICAgIHNlYXJjaE11bHRpcGxlPyA9IHRydWU7XG4gICAgZGlzYWJsZURpc3BsYXlGaWVsZFNlcnZlclNlYXJjaD8gPSBmYWxzZTtcblxuICAgIGxvYWRPbkluaXQ/ID0gZmFsc2U7XG4gICAgYWxsb3dMb2FkRGF0YVdoZW5QYXJlbnROdWxsPyA9IGZhbHNlO1xuXG4gICAgZGlzYWJsZWRQYXJlbnRJdGVtPyA9IHRydWU7XG4gICAgb25BZGp1c3RlZFZhbHVlPzogRnVuY3Rpb247XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogRHJvcGRvd25Db250cm9sU2NoZW1hKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEFkZHJlc3NDb250cm9sU2NoZW1hIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlIHtcbiAgICBoaWRlRGV0YWlsPyA9IHRydWU7XG4gICAgaGlkZU5vPyA9IGZhbHNlO1xuICAgIGhpZGVTdHJlZXQ/ID0gZmFsc2U7XG4gICAgaGlkZVdhcmQ/ID0gZmFsc2U7XG4gICAgaGlkZURpc3RyaWN0PyA9IGZhbHNlO1xuICAgIHJlcXVpcmVkTm8/ID0gdHJ1ZTtcbiAgICByZXF1aXJlZERldGFpbD8gPSB0cnVlO1xuICAgIHJlcXVpcmVkU3RyZWV0PyA9IHRydWU7XG4gICAgcmVxdWlyZWRXYXJkPyA9IHRydWU7XG4gICAgcmVxdWlyZWREaXN0cmljdD8gPSB0cnVlO1xuICAgIHJlcXVpcmVkUHJvdmluY2U/ID0gdHJ1ZTtcbiAgICBsYWJlbE5vPyA9ICdT4buRIG5ow6AnO1xuICAgIGxhYmVsU3RyZWV0PyA9ICfEkMaw4budbmcnO1xuICAgIGxhYmVsRGV0YWlsPyA9ICdDaGkgdGnhur90JztcbiAgICBsYWJlbFdhcmQ/ID0gJ1BoxrDhu51uZy9Yw6MnO1xuICAgIGxhYmVsRGlzdHJpY3Q/ID0gJ1F14bqtbi9IdXnhu4duJztcbiAgICBsYWJlbFByb3ZpbmNlPyA9ICdU4buJbmgvVGjDoG5oIHBo4buRJztcbiAgICB3YXJkVG9Qcm92aW5jZT8gPSB0cnVlO1xuICAgIG5vV2lkdGg/ID0gMTtcbiAgICBkZXRhaWxXaWR0aD8gPSA0O1xuICAgIHN0cmVldFdpZHRoPyA9IDM7XG4gICAgd2FyZFdpZHRoPyA9IDM7XG4gICAgZGlzdHJpY3RXaWR0aD8gPSAyO1xuICAgIHByb3ZpbmNlV2lkdGg/ID0gMztcbiAgICBzaG93SW5Cb3g/ID0gZmFsc2U7XG5cbiAgICBoaWRlSG9sZGVyPyA9IHRydWU7XG4gICAgYmFzZVNlcnZpY2U/OiBCYXNlU2VydmljZTtcbiAgICBjYWxsYmFja0RhdGFQcm92aW5jZUZpbmlzaD86IChldnQ6IEV2ZW50RGF0YSkgPT4gdm9pZDtcbiAgICBjYWxsYmFja0RhdGFEaXN0cmljdEZpbmlzaD86IChldnQ6IEV2ZW50RGF0YSkgPT4gdm9pZDtcbiAgICBjYWxsYmFja0RhdGFXYXJkRmluaXNoPzogKGV2dDogRXZlbnREYXRhKSA9PiB2b2lkO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IEFkZHJlc3NDb250cm9sU2NoZW1hKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydCBjbGFzcyBBZGRyZXNzTmV3Q29udHJvbFNjaGVtYSBleHRlbmRzIEFkZHJlc3NDb250cm9sU2NoZW1hIHtcbiAgICAvLyBT4butIGThu6VuZyBjaG8gYWRkcmVzcyBt4bubaVxuICAgIHZlcnNpb24/ID0gLTE7XG4gICAgY29uc3RydWN0b3IoaW5pdD86IEFkZHJlc3NOZXdDb250cm9sU2NoZW1hKSB7XG4gICAgICAgIHN1cGVyKGluaXQpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5leHBvcnQgY2xhc3MgVmFuQmFuUGlja2VyQ29udHJvbFNjaGVtYSBleHRlbmRzIEZvcm1Db250cm9sQmFzZSB7XG4gICAgbWRXaWR0aD8gPSAxMjtcbiAgICB1c2VWYkRlbj8gPSB0cnVlO1xuICAgIHVzZVZiRGk/ID0gdHJ1ZTtcbiAgICByZWFkT25seT86IGJvb2xlYW4gPSBmYWxzZTtcbiAgICByZWFkb25seT86IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBsb2FpVmFuQmFuPzogRW51bUxvYWlWYW5CYW5CYXNlID0gRW51bUxvYWlWYW5CYW5CYXNlLlZCX0RJO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IFZhbkJhblBpY2tlckNvbnRyb2xTY2hlbWEpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ29uZ1ZpZWNQaWNrZXJDb250cm9sU2NoZW1hIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlIHtcbiAgICBtZFdpZHRoPyA9IDEyO1xuICAgIHNlcnZpY2VDb2RlPzogc3RyaW5nO1xuICAgIGVudGl0eT86IHN0cmluZztcbiAgICBlbnRpdHlLZXk/OiBzdHJpbmc7XG4gICAgc3RhdGU/OiBhbnkgPSB7fTtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBDb25nVmllY1BpY2tlckNvbnRyb2xTY2hlbWEpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgUGVyY2VudENvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2Uge1xuICAgIG1kV2lkdGg/ID0gMTI7XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogUGVyY2VudENvbnRyb2xTY2hlbWEpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ2hpcHNDb250cm9sU2NoZW1hIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlIHtcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogQ2hpcHNDb250cm9sU2NoZW1hKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEF1dG9Db21wbGV0ZUNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBEYXRhU291cmNlQ29udHJvbFNjaGVtYSB7XG4gICAgcGxhY2Vob2xkZXI/ID0gJyc7XG4gICAgbXVsdGlwbGU/ID0gZmFsc2U7XG4gICAgbWluTGVuZ3RoRmlsdGVyPyA9IDE7XG4gICAgYXBwZW5kVG8/OiBzdHJpbmcgPSAnYm9keSc7XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogQXV0b0NvbXBsZXRlQ29udHJvbFNjaGVtYSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBSYWRpb0J1dHRvbkxpc3RDb250cm9sU2NoZW1hIGV4dGVuZHMgRGF0YVNvdXJjZUNvbnRyb2xTY2hlbWEge1xuICAgIHZhbHVlRmllbGQ/ID0gJ2lkJztcbiAgICBkaXNwbGF5RmllbGQ/ID0gJ3Rlbic7XG4gICAgZW5hYmxlQ2FjaGluZz8gPSB0cnVlO1xuICAgIGxheW91dD86ICd2ZXJ0aWNhbCcgfCAnaG9yaXpvbnRhbCcgPSAnaG9yaXpvbnRhbCc7XG4gICAgYWxpZ24/OiAnbGVmdCcgfCAnY2VudGVyJyB8ICdyaWdodCcgPSAnbGVmdCc7XG4gICAgb25BZGp1c3RlZFZhbHVlPzogRnVuY3Rpb247XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogUmFkaW9CdXR0b25MaXN0Q29udHJvbFNjaGVtYSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBDaGVja0JveExpc3RDb250cm9sU2NoZW1hIGV4dGVuZHMgRGF0YVNvdXJjZUNvbnRyb2xTY2hlbWEge1xuICAgIGVuYWJsZUNhY2hpbmc/ID0gdHJ1ZTtcbiAgICBsYXlvdXQ/OiAndmVydGljYWwnIHwgJ2hvcml6b250YWwnID0gJ2hvcml6b250YWwnO1xuICAgIGFsaWduPzogJ2xlZnQnIHwgJ2NlbnRlcicgfCAncmlnaHQnID0gJ2xlZnQnO1xuICAgIGNsYXNzUGx1cz8gPSAnJztcbiAgICBmcmVlVGV4dD8gPSAnJztcbiAgICBwQ29sQ2xhc3M/OiBudW1iZXI7XG4gICAgbXVsdGlwbGU/ID0gdHJ1ZTtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBDaGVja0JveExpc3RDb250cm9sU2NoZW1hKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFRhYmxlU2NoZW1hIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlIHtcbiAgICByb3dUZW1wbGF0ZTogRm9ybVNjaGVtYUJhc2VbXTtcbiAgICBhdXRvR2VuZXJhdGVJZD8gPSBmYWxzZTtcbiAgICByb3dCdXR0b25zPzogKHJvd0RhdGEpID0+IE1lbnVJdGVtW107XG4gICAgZm9vdGVyQnV0dG9ucz86IHtcbiAgICAgICAgaWNvbj86IHN0cmluZztcbiAgICAgICAgbGFiZWw/OiBzdHJpbmc7XG4gICAgICAgIGNsYXNzPzogc3RyaW5nO1xuICAgICAgICBtZXNzYWdlOiBzdHJpbmc7XG4gICAgfVtdO1xuICAgIHNob3dOdW1iZXI/ID0gdHJ1ZTtcbiAgICBzaG93RnVuY3Rpb24/ID0gdHJ1ZTtcbiAgICBzaG93Rm9vdGVyPyA9IHRydWU7XG4gICAgc2hvd1NhdmU/ID0gZmFsc2U7XG4gICAgc2hvd0VkaXQ/ID0gZmFsc2U7XG4gICAgc2hvd0RlbGV0ZT8gPSB0cnVlO1xuICAgIHNob3dBZGQ/ID0gdHJ1ZTtcbiAgICBzaG93RGlhbG9nPyA9IHRydWU7XG4gICAgcG9wdXBTaXplPzogUG9wdXBTaXplID0gbmV3IFBvcHVwU2l6ZSh7IHdpZHRoOiAxMTAwLCBoZWlnaHQ6IDY1MCB9KTtcbiAgICBlbmFibGVSZW9yZGVyUm93PyA9IGZhbHNlO1xuICAgIGVuYWJsZUFkZE11bHRpPyA9IGZhbHNlO1xuICAgIHBpY2tlckNvbnRyb2xGaWVsZD86IHN0cmluZztcbiAgICBpc1VuaXF1ZT8gPSB0cnVlO1xuICAgIGVuYWJsZVBhZ2luZz8gPSBmYWxzZTtcbiAgICBsaW1pdD8gPSA1MDtcbiAgICBpbml0Um93Q291bnQ/ID0gMTtcbiAgICBtZFdpZHRoPyA9IDEyO1xuICAgIHdpZHRoRnVuY3Rpb25Db2x1bW4/OiBzdHJpbmc7XG4gICAgcm93QnV0dG9uVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxhbnk+ID0gbnVsbDtcbiAgICBzdW1tYXJ5VGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxhbnk+ID0gbnVsbDtcbiAgICBoZWFkZXJUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPGFueT4gPSBudWxsO1xuXG4gICAgb25SZW9yZGVyZWQ/OiBGdW5jdGlvbjtcbiAgICBvblRhYmxlRmluaXNoSW5pdD86IEZ1bmN0aW9uO1xuICAgIG9uQWRkaW5nPzogRnVuY3Rpb247XG4gICAgb25BZGRlZD86IEZ1bmN0aW9uO1xuICAgIG9uU2F2ZT86IEZ1bmN0aW9uO1xuICAgIG9uTWVzc2FnZT86IEZ1bmN0aW9uO1xuICAgIG9uRGVsZXRpbmc/OiBGdW5jdGlvbjtcbiAgICBvbkRlbGV0ZWQ/OiBGdW5jdGlvbjtcbiAgICBvblJvd0NsaWNrPzogRnVuY3Rpb247XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogVGFibGVTY2hlbWEpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZGlzYWJsZUNvbnRyb2w/KCkge1xuICAgICAgICB0aGlzLmRpc2FibGVDaGlsZHJlbkNvbnRyb2wodGhpcy5yb3dUZW1wbGF0ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBkaXNhYmxlQ2hpbGRyZW5Db250cm9sPyA9IChzY2hlbWFzOiBGb3JtQ29udHJvbEJhc2VbXSkgPT4ge1xuICAgICAgICBzY2hlbWFzLmZvckVhY2goc2NoZW1hID0+IHtcbiAgICAgICAgICAgIHNjaGVtYS5kaXNhYmxlZCA9IHRydWU7XG4gICAgICAgICAgICBpZiAoc2NoZW1hIGluc3RhbmNlb2YgVGFibGVTY2hlbWEpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmRpc2FibGVDaGlsZHJlbkNvbnRyb2woc2NoZW1hLnJvd1RlbXBsYXRlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKHNjaGVtYSBpbnN0YW5jZW9mIENvbnRhaW5lclNjaGVtYSkge1xuICAgICAgICAgICAgICAgIHRoaXMuZGlzYWJsZUNoaWxkcmVuQ29udHJvbChzY2hlbWEuY29udHJvbHMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9O1xufVxuXG4vLyBleHBvcnQgY2xhc3MgTWFwNGRTY2hlbWEgZXh0ZW5kcyBGb3JtU2NoZW1hQmFzZSB7XG4vLyAgICAgaGVpZ2h0PyA9IDMwMDtcbi8vICAgICBpZD86IHN0cmluZztcbi8vICAgICB2ZXJzaW9uPzogc3RyaW5nO1xuLy8gICAgIGFjY2Vzc0tleT86IHN0cmluZztcbi8vICAgICBtYXBJZD86IHN0cmluZzsgLy8gSWQgY+G7p2EgY8OhYyBtYXAgcGjhuqNpIGtow6FjIG5oYXVcbi8vICAgICBvcHRpb25zPzogYW55ID0ge307XG4vLyAgICAgY2xpY2tNYXJrZXI/ID0gZmFsc2U7XG4vLyAgICAgb25NYXBSZWFkeT86IEZ1bmN0aW9uO1xuXG4vLyAgICAgLy8gQ8OhYyBz4buxIGtp4buHbiB0csOqbiBtYXJrZXJcbi8vICAgICBvbkNsaWNrPzogRnVuY3Rpb247XG4vLyAgICAgb25EQkNsaWNrPzogRnVuY3Rpb247XG4vLyAgICAgb25Mb25nQ2xpY2s/OiBGdW5jdGlvbjtcbi8vICAgICBvblJpZ2h0Q2xpY2s/OiBGdW5jdGlvbjtcbi8vICAgICBvbkhvdmVyPzogRnVuY3Rpb247XG4vLyAgICAgb25Nb3VzZU91dD86IEZ1bmN0aW9uO1xuLy8gICAgIG9uRHJhZz86IEZ1bmN0aW9uO1xuLy8gICAgIG9uRHJhZ1N0YXJ0PzogRnVuY3Rpb247XG4vLyAgICAgb25EcmFnRW5kPzogRnVuY3Rpb247XG5cbi8vICAgICBvbkNsaWNrT3B0aW9ucz86IGFueSA9IHt9O1xuLy8gICAgIG9uREJDbGlja09wdGlvbnM/OiBhbnkgPSB7fTtcbi8vICAgICBvbkxvbmdDbGlja09wdGlvbnM/OiBhbnkgPSB7fTtcbi8vICAgICBvblJpZ2h0Q2xpY2tPcHRpb25zPzogYW55ID0ge307XG4vLyAgICAgb25Ib3Zlck9wdGlvbnM/OiBhbnkgPSB7fTtcbi8vICAgICBvbk1vdXNlT3V0T3B0aW9ucz86IGFueSA9IHt9O1xuLy8gICAgIG9uRHJhZ09wdGlvbnM/OiBhbnkgPSB7fTtcbi8vICAgICBvbkRyYWdTdGFydE9wdGlvbnM/OiBhbnkgPSB7fTtcbi8vICAgICBvbkRyYWdFbmRPcHRpb25zPzogYW55ID0ge307XG5cbi8vICAgICBjb25zdHJ1Y3Rvcihpbml0PzogTWFwNGRTY2hlbWEpIHtcbi8vICAgICAgICAgc3VwZXIoKTtcbi8vICAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuLy8gICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuLy8gICAgICAgICB9XG4vLyAgICAgfVxuLy8gfVxuXG5leHBvcnQgY2xhc3MgUXJDb2RlU2NoZW1hIGV4dGVuZHMgRm9ybVNjaGVtYUJhc2Uge1xuICAgIGhlaWdodD8gPSAxNDA7XG4gICAgdGl0bGU/OiBzdHJpbmc7XG4gICAgaGlkZGVuUHJldmlldz8gPSBmYWxzZTtcbiAgICBzY2FsZT8gPSA0O1xuICAgIGNvbG9yRGFyaz8gPSAnIzAwMDAwMGZmJztcbiAgICBjb2xvckxpZ2h0PyA9ICcjZmZmZmZmZmYnO1xuICAgIGVycm9yQ29ycmVjdGlvbkxldmVsPzogJ0wnIHwgJ00nIHwgJ1EnIHwgJ0gnID0gJ00nO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IFFyQ29kZVNjaGVtYSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBDb2x1bW5TY2hlbWFCYXNlIGV4dGVuZHMgRm9ybVNjaGVtYUJhc2VXaXRoU2VydmljZSB7XG4gICAgaXNBcnJheUZpZWxkPzogYm9vbGVhbjsgLy8gTMOgIGZpZWxkIGNo4bupYSBjw6FjIHZhbHVlIGPDoWNoIG5oYXUgYuG6sW5nIGThuqV1ICxcbiAgICB3aWR0aD86IHN0cmluZztcbiAgICBzaG93RWRpdExpbms/ID0gZmFsc2U7XG4gICAgc2hvd1RvZ2dsZUljb24/ID0gZmFsc2U7XG4gICAgY29sU3Bhbj86IG51bWJlcjtcbiAgICBncm91cD8gPSBmYWxzZTtcbiAgICB2aXNpYmxlPyA9IHRydWU7XG4gICAgcmVtb3ZlT25Jbml0PyA9IGZhbHNlO1xuICAgIGFsbG93RmlsdGVyPyA9IHRydWU7XG4gICAgdGV4dEFsaWduPzogVGV4dEFsaWduO1xuICAgIGNlbGxDbGFzcz86IHN0cmluZztcbiAgICBmdWxsVGV4dFNlYXJjaD8gPSBmYWxzZTtcbiAgICBpc0luVGFibGU/ID0gdHJ1ZTtcbiAgICByYXdDb2x1bW4/OiBDb2x1bW5TY2hlbWFCYXNlO1xuICAgIHNlcGFyYXRvcj8gPSAnLCAnO1xuICAgIG1heEl0ZW1EaXNwbGF5PyA9IDUwO1xuICAgIHBhZ2VTaXplPzogbnVtYmVyID0gMTU7IC8vIFByb3AgcGjhuqNpIGdp4buRbmcgduG7m2kgZHJvcGRvd25cblxuICAgIGZpbGVTZXR0aW5nPzogRmlsZVVwbG9hZFNldHRpbmcgfCBGaWxlTWFuYWdlclNldHRpbmc7XG4gICAgcXJDb2RlU2V0dGluZz86IFFyQ29kZVNjaGVtYTtcbiAgICBkYXRhVHlwZVJlZkZpZWxkPzogRGF0YVR5cGUgfCBzdHJpbmc7XG4gICAgZm9yY2VHZXREYXRhPyA9IGZhbHNlO1xuICAgIGRpc3BsYXlGaWVsZEluR3JpZD86IHN0cmluZztcbiAgICBmdW5jR2V0UmVmRGF0YVJvdz86IChyZWZJdGVtcykgPT4ge307XG4gICAgZnVuY1NldFZhbHVlUm93PzogKHJvd0l0ZW0sIGRhdGEpID0+IHZvaWQ7XG4gICAgZnVuY1NldFZhbHVlUm93V2hlbk51bGxPckVtcHR5PzogKHJvd0l0ZW0pID0+IHZvaWQ7XG4gICAgZnVuY0dldFZhbHVlT2ZGaWVsZD86IEZ1bmN0aW9uID0gKHJvd0l0ZW0pID0+IHJvd0l0ZW1bdGhpcy5maWVsZF07XG4gICAgcm93U3Bhbj8gPSAxO1xuICAgIGZvcm1hdD86IHN0cmluZztcbiAgICBkYXRhVHlwZT86IERhdGFUeXBlIHwgc3RyaW5nO1xuICAgIGNvbnRyb2xUeXBlPzogQ29udHJvbFR5cGUgPSBDb250cm9sVHlwZS50ZXh0Ym94O1xuICAgIHRlbXBsYXRlRmlsdGVyPzogVGVtcGxhdGVSZWY8YW55PjtcbiAgICBkaXNhYmxlQ2hlY2tCb3g/ID0gdHJ1ZTtcbiAgICAvLyBUaOG7qSB04buxIMawdSB0acOqbiBnZXQgcmVmIGRhdGEgY+G7p2EgY3J1ZC1saXN0XG4gICAgLy8gTuG6v3UgY8OzIHZhbHVlIG5naMSpYSBsw6Agbmjhu69uZyBj4buZdCBuw6B5IGPhuqduIHBo4bqjaSBs4bqleSBk4buvIGxp4buHdSB4b25nIHLhu5NpIG3hu5tpIMSR4bq/biBj4buZdCBraMOhY1xuICAgIG9yZGVyPzogbnVtYmVyID0gMTtcbiAgICBtYXhXb3JkRGlzcGxheT86IG51bWJlcjtcbiAgICBtYXhMZW5ndGhEaXNwbGF5PzogbnVtYmVyO1xuICAgIG1kV2lkdGhJblNlYXJjaD8gPSAxMjtcblxuICAgIG1pbj8gPSAwO1xuICAgIG1heD8gPSA5OTk5OTk5OTk5OTtcblxuICAgIHNob3dDbGVhcj8gPSB0cnVlO1xuICAgIG11bHRpcGxlPyA9IGZhbHNlO1xuICAgIHNpbmdsZT8gPSBmYWxzZTtcblxuICAgIHBpcGU/OiBQaXBlVHJhbnNmb3JtO1xuICAgIGFzeW5jUGlwZT8gPSB0cnVlO1xuICAgIHNvcnQ/ID0gdHJ1ZTtcbiAgICBleHRlbmREYXRhPzogYW55ID0ge307XG4gICAgbGVmdD86IE51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIElzIHRoaXMgY29sdW1uIHJlZiBhIHJlZiBjb2x1bW4gZ2VuZXJhdGVkIGJ5IGJhc2VcbiAgICAgKiBAZGF0ZSAxMS80LzIwMjIgLSAyOjA1OjU1IFBNXG4gICAgICpcbiAgICAgKiBAdHlwZSB7P2Jvb2xlYW59XG4gICAgICovXG4gICAgaXNSZWZGaWVsZD8gPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIHNob3VsZCBpbmNsdWRlIHRoaXMgY29sIGluIHRoZSBncmlkSW5mby5maWVsZHNcbiAgICAgKiBAZGF0ZSAxMS80LzIwMjIgLSAyOjA2OjE2IFBNXG4gICAgICpcbiAgICAgKiBAdHlwZSB7P2Jvb2xlYW59XG4gICAgICovXG4gICAgaW5jbHVkZVNlbGVjdD8gPSB0cnVlO1xuICAgIGlzUGlubmVkPyA9IGZhbHNlO1xuXG4gICAgaGFzT3BlcmF0b3JDYW5Cbz8gPSBmYWxzZTtcbiAgICBtaW5pbWl6ZUZpbHRlcj86IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBiaW5kaW5nRmlsdGVycz86IEZpbHRlcltdO1xuICAgIGZvcmNlTG9hZGluZz8gPSBmYWxzZTsgLy8gY2hvIHBow6lwIGxvYWQgbOG6oWkgY3J1ZC1saXN0IGtoaSBjb2x1bW4gbsOgeSBraMO0bmcgcGjhuqNpIGzDoCBwcm9wZXJ0eSBj4bunYSBiYXNlcnZpY2UgKGTDuW5nIHRyb25nIGNvbW1vbi1zZWFyY2gpXG4gICAgYXV0b0Rpc3BsYXlGaXJzdD8gPSBmYWxzZTtcbiAgICBub3RJbkNydWRGb3JtPyA9IGZhbHNlO1xuXG4gICAgY2xpY2s/OiBGdW5jdGlvbjtcbiAgICBwbGFjZWhvbGRlcj86IHN0cmluZztcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBDb2x1bW5TY2hlbWFCYXNlKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIERyb3Bkb3duT3B0aW9ucyB7XG4gICAgZGlzcGxheUZpZWxkPyA9ICd0ZW4nO1xuICAgIHZhbHVlRmllbGQ/ID0gJ2lkJztcbiAgICBmaWVsZFRyZWU/ID0gJyc7XG4gICAgc2VsZWN0Q2hpbGRJdGVtPyA9IGZhbHNlOyAvLyBDw7Mgc2VsZWN0IGLhuqNuIGdoaSBjb24gbuG6v3UgY2jhu41uIGLhuqNuIGdoaSBjaGFcbiAgICBzZWxlY3REZXNjZW5kYW50PyA9IGZhbHNlOyAvLyBDw7Mgc2VsZWN0IGLhuqNuIGdoaSBjb24sIGNow6F1IG7hur91IGNo4buNbiBi4bqjbiBnaGkgY2hhXG4gICAgZmllbGRQYXJlbnRUcmVlSXRlbT8gPSAnaWQnOyAvLyBUcsaw4budbmcgeMOhYyDEkeG7i25oIGLhuqNuIGdoaSBsw6AgYuG6o24gZ2hpIGNoYSBj4bunYSBi4bqjbiBnaGkgY29uXG4gICAgc29ydHM/OiBTb3J0W10gPSBbXTtcbiAgICBzb3J0RmllbGQ/ID0gJyc7XG4gICAgc29ydERpcj86IDEgfCAtMSA9IDE7XG4gICAgZmllbGRQbHVzPyA9ICcnO1xuICAgIHBsdXNVcmw/OiBzdHJpbmc7XG4gICAgY2FsbGJhY2tEYXRhRmluaXNoPzogKGV2dDogRXZlbnREYXRhKSA9PiB2b2lkO1xuICAgIHBhZ2U/OiBudW1iZXIgPSAxO1xuICAgIHBhZ2VTaXplPyA9IDY2NjtcbiAgICBpc1NlcnZlckxvYWQ/ID0gZmFsc2U7XG4gICAgcmVmRmllbGRzPzogUmVmRmllbGRbXSA9IFtdO1xuICAgIGlzVHJlZUJhc2VNb2RlbD8gPSBmYWxzZTtcbiAgICBmdW5jR2V0TGFiZWw/OiAoaXRlbSkgPT4gc3RyaW5nO1xuICAgIGZ1bmNDb21wYXJlPzogKGl0ZW06IGFueSwgdmFsdWUpID0+IGJvb2xlYW4gPSAoaXRlbSwgdmFsdWUpID0+IGl0ZW1bdGhpcy52YWx1ZUZpZWxkXSA9PSB2YWx1ZTtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBEcm9wZG93bk9wdGlvbnMpIHtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgUmVmRmllbGQge1xuICAgIGZpZWxkPzogc3RyaW5nO1xuICAgIG11bHRpcGxlPyA9IGZhbHNlO1xuICAgIHNlcGFyYXRvcj8gPSAnLCAnO1xuICAgIGJhc2VTZXJ2aWNlPzogQmFzZVNlcnZpY2UgfCBNYXN0ZXJEYXRhU2VydmljZTtcbiAgICBpc0NoaWxkT2JqZWN0PyA9IGZhbHNlO1xuICAgIGRpc3BsYXlGaWVsZD8gPSAndGVuJztcbiAgICBkaXNwbGF5RmllbGRJbkdyaWQ/OiBzdHJpbmc7XG4gICAgdmFsdWVGaWVsZD8gPSAnaWQnO1xuICAgIGZpZWxkUGx1cz8gPSAnJztcbiAgICBncm91cENvZGU/OiBzdHJpbmc7XG4gICAgZGF0YVNvdXJjZT86IGFueVtdO1xuICAgIG9yZGVyPzogbnVtYmVyID0gMTtcblxuICAgIGlzVHJlZT8gPSBmYWxzZTtcbiAgICBmaWVsZFRyZWU/OiBzdHJpbmc7XG4gICAgdmFsdWVQYXJlbnRSb290PzogYW55ID0gbnVsbDsgLy8gR2nDoSB0cuG7iyB0csaw4budbmcgW2ZpZWxkVHJlZV0gY+G7p2EgaXRlbSB0cmVlIHJvb3RcbiAgICBmaWVsZFBhcmVudFRyZWVJdGVtPyA9ICdpZCc7IC8vIFRyxrDhu51uZyB4w6FjIMSR4buLbmggYuG6o24gZ2hpIGzDoCBi4bqjbiBnaGkgY2hhIGPhu6dhIGLhuqNuIGdoaSBjb25cbiAgICBzb3J0cz86IFNvcnRbXSA9IFtdO1xuICAgIHNvcnRGaWVsZD8gPSAnJztcbiAgICBzb3J0RGlyPzogMSB8IC0xID0gMTtcbiAgICBwbHVzVXJsPzogc3RyaW5nO1xuXG4gICAgZnVuY0dldFZhbHVlT2ZGaWVsZD86IEZ1bmN0aW9uID0gKGl0ZW0pID0+IGl0ZW1bdGhpcy5maWVsZF07XG4gICAgZnVuY1NldFZhbHVlUm93PzogKHJvd0l0ZW0sIGRhdGEpID0+IHZvaWQ7XG4gICAgZnVuY1NldFZhbHVlUm93V2hlbk51bGxPckVtcHR5PzogKHJvd0l0ZW0pID0+IHZvaWQ7XG4gICAgZnVuY0dldFJlZkRhdGFSb3c/OiAocmVmSXRlbXMpID0+IHt9O1xuICAgIGNhbGxiYWNrRGF0YUZpbmlzaD86IChldnQ6IEV2ZW50RGF0YSkgPT4gdm9pZDtcbiAgICBmdW5jR2V0TGFiZWw/OiAoaXRlbSkgPT4gc3RyaW5nO1xuICAgIGZ1bmNDb21wYXJlPzogKGl0ZW06IGFueSwgdmFsdWUpID0+IGJvb2xlYW4gPSAoaXRlbSwgdmFsdWUpID0+IGl0ZW1bdGhpcy52YWx1ZUZpZWxkXSA9PSB2YWx1ZTtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBSZWZGaWVsZCkge1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBFbnRpdHlQaWNrZXJDb2x1bW4gZXh0ZW5kcyBDb2x1bW5TY2hlbWFCYXNlIHtcbiAgICBsYWJlbD86IHN0cmluZztcbiAgICBjb2RlPzogc3RyaW5nO1xuICAgIGRpc2FibGVkPyA9IGZhbHNlO1xuICAgIGlzU2VhcmNoYWJsZT8gPSB0cnVlO1xuICAgIGlzRGlzcGxheT8gPSB0cnVlO1xuICAgIGRhdGFUeXBlPzogRGF0YVR5cGUgfCBzdHJpbmc7XG4gICAgb3BlcmF0b3I/OiBPcGVyYXRvcjtcbiAgICB3aWR0aD8gPSAnJztcbiAgICBub3RJbkZpZWxkcz8gPSBmYWxzZTsgLy8gQ8OhYyB0csaw4budbmcgZOG7ryBsaeG7h3UgxJHGsOG7o2MgdOG7lW5nIGjhu6NwIGzhuqFpIGhp4buDbiB0aOG7iyBsw6puIGdyaWQgbcOgIGtow7RuZyBwaOG6o2kgbOG6pXkgdOG7qyB0cm9uZyB0YWJsZSByYS5cblxuICAgIHRlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBFbnRpdHlQaWNrZXJDb2x1bW4pIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQWNjb3JkaW9uQ29udHJvbFNjaGVtYSBleHRlbmRzIEZvcm1Db250cm9sQmFzZSB7XG4gICAgY29udHJvbHM6IEZvcm1Db250cm9sQmFzZVtdID0gW107XG4gICAgYWN0aXZlSW5kZXg/OiBudW1iZXJbXSA9IFtdO1xuICAgIG9uT3BlbmVkVGFiPzogRnVuY3Rpb247XG4gICAgb25DbG9zZWRUYWI/OiBGdW5jdGlvbjtcbiAgICBjb250ZW50QmVmb3JlTGluaz86IFRlbXBsYXRlUmVmPGFueT47XG4gICAgY29udGVudEJlZm9yZVRhYkxpc3Q/OiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIG1kV2lkdGg/OiBudW1iZXIgPSAxMjtcblxuICAgIC8vIHRhYlxuICAgIGhlYWRlcjogc3RyaW5nO1xuICAgIGluZGV4OiBudW1iZXI7XG4gICAgZXhwYW5kZWQ/OiBib29sZWFuID0gZmFsc2U7XG4gICAgbG9hZGVkPzogYm9vbGVhbiA9IGZhbHNlO1xuICAgIGFjdGl2ZT86IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBjb2RlOiBzdHJpbmc7XG4gICAgY29uc3RydWN0b3IoaW5pdD86IEFjY29yZGlvbkNvbnRyb2xTY2hlbWEpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuYWN0aXZlKSB7XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZUluZGV4ID0gWzBdO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyBleHBvcnQgY2xhc3MgQWNjb3JkaW9uSXRlbUNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2Uge1xuLy8gICAgIGNvbnRyb2xzOiBGb3JtQ29udHJvbEJhc2VbXTtcbi8vICAgICBoZWFkZXI6IHN0cmluZztcbi8vICAgICBpbmRleDogbnVtYmVyO1xuLy8gICAgIGN1c3RvbUluZGV4Pzogc3RyaW5nO1xuLy8gICAgIGV4cGFuZGVkPzogYm9vbGVhbiA9IGZhbHNlO1xuLy8gICAgIGxvYWRlZD86IGJvb2xlYW4gPSBmYWxzZTtcbi8vICAgICBhY3RpdmU/OiBib29sZWFuID0gZmFsc2U7XG4vLyAgICAgY29kZTogc3RyaW5nO1xuLy8gICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBBY2NvcmRpb25JdGVtQ29udHJvbFNjaGVtYSkge1xuLy8gICAgICAgICBzdXBlcigpO1xuLy8gICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4vLyAgICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4vLyAgICAgICAgIH1cbi8vICAgICB9XG4vLyB9XG5cbmV4cG9ydCBjbGFzcyBDcnVkTGlzdENvbmZpZyB7XG4gICAgdG9vbHRpcFZpZXc/OiBzdHJpbmc7XG4gICAgb25WaWV3PzogRnVuY3Rpb247XG4gICAgZGlzYWJsZVJvd1NlbGVjdFdoZW5DbGlja0FjdGlvbj8gPSB0cnVlO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IENydWRMaXN0Q29uZmlnKSB7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFRyZWVEYXRhT3B0aW9uIHtcbiAgICBkaXNwbGF5RmllbGQgPSAndGVuJztcbiAgICBzaG9ydERpc3BsYXlGaWVsZCA9ICd0ZW4nO1xuICAgIGV4cGFuZGVkSWNvbiA9ICdwaSBwaS1mb2xkZXItb3Blbic7XG4gICAgY29sbGFwc2VkSWNvbiA9ICdwaSBwaS1mb2xkZXInO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IFRyZWVEYXRhT3B0aW9uKSB7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIERpYWxvZ01vZGVsIHtcbiAgICBzaG93RWRpdEZvcm0/OiBib29sZWFuID0gZmFsc2U7XG4gICAgaGVhZGVyPzogc3RyaW5nID0gJyc7XG4gICAgcG9wdXBTaXplPzogUG9wdXBTaXplID0gbmV3IFBvcHVwU2l6ZSh7IG1heGltaXplOiB0cnVlIH0pO1xuICAgIGRhdGE/OiBhbnkgPSB7fTtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBEaWFsb2dNb2RlbCkge1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBQb3B1cFNpemUge1xuICAgIHdpZHRoPzogbnVtYmVyO1xuICAgIGhlaWdodD86IG51bWJlcjtcbiAgICBtYXhpbWl6ZT8gPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBQb3B1cFNpemUpIHtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgRXZlbnREYXRhIHtcbiAgICBjdXJyZW50Tm9kZTogQ29udHJvbFRyZWVOb2RlO1xuICAgIHNvdXJjZU5vZGU/OiBDb250cm9sVHJlZU5vZGU7XG4gICAgc291cmNlRXZlbnQ/OiBhbnk7XG4gICAgZXZlbnRUeXBlPzogYW55O1xuICAgIGRhdGE/OiBhbnk7XG4gICAgcHJpdmF0ZSBfY3J1ZEZvcm06IENydWRGb3JtQ29tcG9uZW50O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIGluaXQ/OiB7XG4gICAgICAgICAgICBjdXJyZW50Tm9kZTogQ29udHJvbFRyZWVOb2RlLFxuICAgICAgICAgICAgc291cmNlTm9kZT86IENvbnRyb2xUcmVlTm9kZSxcbiAgICAgICAgICAgIHNvdXJjZUV2ZW50PzogYW55LFxuICAgICAgICAgICAgZXZlbnRUeXBlPzogYW55LFxuICAgICAgICAgICAgZGF0YT86IGFueSxcbiAgICAgICAgICAgIGNydWRGb3JtPzogQ3J1ZEZvcm1Db21wb25lbnQ7XG4gICAgICAgIH1cbiAgICApIHtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0IHZhbHVlKCk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnROb2RlLm1vZGVsO1xuICAgIH1cblxuICAgIGdldCBtb2RlbCgpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5jdXJyZW50Tm9kZS5tb2RlbDtcbiAgICB9XG5cbiAgICBnZXQgcGFyZW50TW9kZWwoKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVudE5vZGUucGFyZW50TW9kZWw7XG4gICAgfVxuXG4gICAgZ2V0IHBhcmVudFBhdGgoKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVudE5vZGUucGFyZW50TW9kZWxQYXRoO1xuXG4gICAgfVxuXG4gICAgZ2V0IHJvb3RNb2RlbCgpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5jdXJyZW50Tm9kZS5yb290Tm9kZS5tb2RlbDtcbiAgICB9XG5cbiAgICBnZXQgY29udHJvbCgpOiBGb3JtU2NoZW1hQmFzZSB7XG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnROb2RlLmNvbnRyb2w7XG4gICAgfVxuXG4gICAgZ2V0IHBhcmVudENvbnRyb2woKTogRm9ybVNjaGVtYUJhc2Uge1xuICAgICAgICByZXR1cm4gdGhpcy5jdXJyZW50Tm9kZS5wYXJlbnRDb250cm9sO1xuICAgIH1cblxuICAgIGdldCBmb3JtQ29udHJvbHMoKTogRm9ybVNjaGVtYUJhc2VbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnROb2RlLmZvcm1Db250cm9scztcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBUYWJWaWV3RGF0YSB7XG4gICAgY29kZT86IHN0cmluZztcbiAgICBoaWRkZW4/OiBib29sZWFuID0gZmFsc2U7XG4gICAgYWx3YXlSZW5kZXI/OiBib29sZWFuID0gZmFsc2U7XG4gICAgaWNvbj86IHN0cmluZztcbiAgICBsYWJlbD86IHN0cmluZztcbiAgICBoZWFkZXJTdHlsZUNsYXNzPzogc3RyaW5nO1xuICAgIGFjdGl2ZT86IGJvb2xlYW47XG4gICAgZG9Ob3RSZWxvYWQ/ID0gdHJ1ZTtcbiAgICB1c2VTY3JvbGxiYXI/ID0gdHJ1ZTsgLy8gQ29uZmlnIMSR4buDIHjDoWMgxJHhu4tuaCBjw7Mgc+G7rSBk4bulbmcgY3VzdG9tLXNjcm9sbGJhciBraMO0bmcsIG7hur91IGtow7RuZyB0aMOsIGTDuW5nIHNjcm9sbGJhciBt4bq3YyDEkeG7i25oIGPhu6dhIHRyw6xuaCBkdXnhu4d0XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogVGFiVmlld0RhdGEpIHtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgRmllbGRSb3dTcGFuIHtcbiAgICBmaWVsZDogc3RyaW5nO1xuICAgIGZ1bmNHZXRWYWx1ZT86IChpdGVtKSA9PiBhbnk7XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogRmllbGRSb3dTcGFuKSB7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGVudW0gRGF0YVR5cGUge1xuICAgIGRhdGUgPSAnZGF0ZScsXG4gICAgZGF0ZXRpbWUgPSAnZGF0ZXRpbWUnLFxuICAgIGh0bWwgPSAnaHRtbCcsXG4gICAgc3RyaW5nID0gJ3N0cmluZycsXG4gICAgaW50ID0gJ2ludCcsXG4gICAgaW50V2l0aG91dE1hc2sgPSAnaW50V2l0aG91dE1hc2snLFxuICAgIGN1cnJlbmN5ID0gJ2N1cnJlbmN5JyxcbiAgICBkZWNpbWFsID0gJ2RlY2ltYWwnLFxuICAgIGJvb2xlYW4gPSAnYm9vbGVhbicsXG4gICAgZW51bSA9ICdlbnVtJyxcbiAgICBmaWxlVXBsb2FkID0gJ2ZpbGVVcGxvYWQnLFxuICAgIGZpbGVNYW5hZ2VyID0gJ2ZpbGVNYW5hZ2VyJyxcbn1cblxuZXhwb3J0IGVudW0gQ29udHJvbFR5cGUge1xuICAgIGRyb3Bkb3duID0gJ2Ryb3Bkb3duJyxcbiAgICBkYXRldGltZSA9ICdkYXRldGltZScsXG4gICAgZGF0ZSA9ICdkYXRlJyxcbiAgICB0aW1lID0gJ3RpbWUnLFxuICAgIG51bWJlciA9ICdudW1iZXInLFxuICAgIHRleHRib3ggPSAndGV4dGJveCcsXG4gICAgY2hlY2tib3ggPSAnY2hlY2tib3gnLFxuICAgIHN3aXRjaCA9ICdzd2l0Y2gnXG59XG5cbmV4cG9ydCBlbnVtIE9wZXJhdG9yIHtcbiAgICBlcXVhbCA9ICdlcScsXG4gICAgbm90RXF1YWwgPSAnbmVxJyxcbiAgICBncmVhdGVyID0gJ2d0JyxcbiAgICBncmVhdGVyVGhhbkVxdWFsID0gJ2d0ZScsXG4gICAgbG93ZXIgPSAnbHQnLFxuICAgIGxvd2VyVGhhbkVxdWFsID0gJ2x0ZScsXG5cbiAgICByZWxhdGlvbmFsRGF0YSA9ICdyZWxhdGlvbmFsZGF0YScsXG4gICAgY29udGFpbiA9ICdjb250YWlucycsXG4gICAgbm90Q29udGFpbiA9ICduY29udGFpbnMnLFxuICAgIHN0YXJ0V2l0aCA9ICdzdGFydHN3aXRoJyxcbiAgICBub3RTdGFydFdpdGggPSAnbnN0YXJ0c3dpdGgnLFxuICAgIGVuZFdpdGggPSAnZW5kc3dpdGgnLFxuICAgIG5vdEVuZFdpdGggPSAnbmVuZHN3aXRoJyxcblxuICAgIGluID0gJ2luJyxcbiAgICBub3RJbiA9ICduaW4nLFxuXG4gICAgaXNOdWxsID0gJ2lzbnVsbCcsXG4gICAgaXNOb3ROdWxsID0gJ2lzbm90bnVsbCcsXG5cbiAgICBpblJvbGUgPSAnaGFzUm9sZScsXG4gICAgbm90SW5Sb2xlID0gJ25vdEhhc1JvbGUnLFxuICAgIGluQ2F0ZWdvcnkgPSAnaW5DYXRlZ29yeScsXG4gICAgbm90SW5DYXRlZ29yeSA9ICdub3RJbkNhdGVnb3J5JyxcbiAgICBpblBvc2l0aW9uID0gJ2luUG9zaXRpb24nLFxuICAgIG5vdEluUG9zaXRpb24gPSAnbm90SW5Qb3NpdGlvbicsXG4gICAgaW5MaXN0VXNlciA9ICdpbkxpc3RVc2VyJyxcbiAgICBub3RJbkxpc3RVc2VyID0gJ25vdEluTGlzdFVzZXInLFxuICAgIGluTGlzdEdyb3VwID0gJ2luTGlzdEdyb3VwJyxcbiAgICBub3RJbkxpc3RHcm91cCA9ICdub3RJbkxpc3RHcm91cCcsXG4gICAgaXNDdXJyZW50VXNlciA9ICdpc0N1cnJlbnRVc2VyJyxcbiAgICBpc0N1cnJlbnRDYW5CbyA9ICdpc0N1cnJlbnRDYW5Cbydcbn1cblxuZXhwb3J0IGVudW0gSGVpZ2h0VHlwZSB7XG4gICAgZGVmYXVsdCA9IDAsXG4gICAgZHluYW1pYyA9IC0xLFxuICAgIGN1c3RvbSA9IDFcbn1cblxuZXhwb3J0IGVudW0gRmlsZU1hbmFnZXJNb2RlIHtcbiAgICBzaW5nbGUgPSAnc2luZ2xlJyxcbiAgICBtdWx0aXBsZSA9ICdtdWx0aXBsZSdcbn1cblxuZXhwb3J0IGVudW0gRmlsZVVwbG9hZE1vZGUge1xuICAgIHVzaW5nRmlsZUluc3RhbmNlSWQgPSAndXNpbmdGaWxlSW5zdGFuY2VJZCcsXG4gICAgdXNpbmdTZXJ2aWNlRmlsZSA9ICd1c2luZ1NlcnZpY2VGaWxlJ1xufVxuXG5leHBvcnQgZW51bSBFbnVtRmlsZUxheW91dCB7XG4gICAgU0lNUExFID0gJ1NJTVBMRScsXG4gICAgU0lNUExFX0ZPUl9MSVNUID0gJ1NJTVBMRV9GT1JfTElTVCcsXG4gICAgTElTVCA9ICdMSVNUJyxcbiAgICBJTkxJTkUgPSAnSU5MSU5FJ1xufVxuXG5leHBvcnQgZW51bSBUZXh0QWxpZ24ge1xuICAgIExlZnQgPSAwLFxuICAgIENlbnRlciA9IDEsXG4gICAgUmlnaHQgPSAtMVxufVxuXG5leHBvcnQgZW51bSBFeHBvcnRJdGVtc01vZGUge1xuICAgIEZyb21IdG1sID0gMCxcbiAgICBNYW51YWxHZXREYXRhID0gMSxcbiAgICBBdXRvR2V0RGF0YSA9IDJcbn1cblxuZXhwb3J0IGVudW0gRXhwb3J0QWxsTW9kZSB7XG4gICAgTWFudWFsR2V0RGF0YSA9IDAsXG4gICAgQXV0b0dldERhdGEgPSAxXG59XG5cbmV4cG9ydCBlbnVtIFVzZXJUeXBlIHtcbiAgICBDYW5CbyxcbiAgICBOb3JtYWxcbn1cblxuZXhwb3J0IGVudW0gRXZlbnRUeXBlIHtcbiAgICBDSEFOR0UgPSAnY2hhbmdlJyxcbiAgICBBREpVU1RfVkFMVUUgPSAnYWRqdXN0VmFsdWUnLFxuICAgIE1PREVMX0NIQU5HRUQgPSAnbW9kZWxDaGFuZ2VkJyxcbiAgICBGT1JNX1JFQURZID0gJ2Zvcm1SZWFkeScsXG4gICAgRU5URVIgPSAnZW50ZXInLFxuICAgIEhJREUgPSAnaGlkZScsXG4gICAgUk9XX1JFT1JERVIgPSAncm93UmVvcmRlcicsXG4gICAgQkxVUiA9ICdibHVyJyxcbiAgICBSRUFEWSA9ICdSRUFEWScsXG4gICAgREFUQVNPVVJDRV9MT0FERUQgPSAnZGF0YVNvdXJjZUxvYWRlZCcsXG4gICAgQ0xJQ0sgPSAnY2xpY2snLFxuICAgIEFVVE9fQ09SUkVDVCA9ICdhdXRvQ29ycmVjdCcsXG4gICAgVkFMSURBVEUgPSAndmFsaWRhdGUnLFxuICAgIElOSVQgPSAnaW5pdCcsXG4gICAgQURESU5HID0gJ2FkZGluZycsXG4gICAgQURERUQgPSAnYWRkZWQnLFxuICAgIERFTEVUSU5HID0gJ2RlbGV0aW5nJyxcbiAgICBERUxFVEVEID0gJ2RlbGV0ZWQnLFxuICAgIFNFTEVDVCA9ICdzZWxlY3QnLFxuICAgIFRBQkxFX0NIQU5HRUQgPSAndGFibGVDaGFuZ2VkJyxcbiAgICBTQVZFID0gJ3NhdmUnLFxuICAgIE1FU1NBR0UgPSAnbWVzc2FnZScsXG4gICAgUk9XX0ZJTklTSF9JTklUID0gJ3Jvd0ZpbmlzaEluaXQnLFxuICAgIFRBQkxFX0ZJTklTSF9JTklUID0gJ3RhYmxlRmluaXNoSW5pdCcsXG4gICAgVVBMT0FERUQgPSAndXBsb2FkZWQnLFxufVxuXG5leHBvcnQgY2xhc3MgQnV0dG9uQWN0aW9uIHtcbiAgICByYXdUZXh0Pzogc3RyaW5nO1xuICAgIHBlcm1pc3Npb25Db2RlPzogc3RyaW5nO1xuICAgIGxzdEVsZW1lbnQ/OiBIVE1MQnV0dG9uRWxlbWVudFtdID0gW107XG4gICAgaXNBdXRob3JpemU/ID0gZmFsc2U7XG4gICAgaWQ6IHN0cmluZztcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBCdXR0b25BY3Rpb24pIHtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufSJdfQ==
|
|
1489
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1zY2hlbWEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy90bngtc2hhcmVkL3NyYy9saWIvY2xhc3Nlcy9mb3JtLXNjaGVtYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBS0EsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFrQmhGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQVNuRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsOEJBQThCLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBR2pILE1BQU0sVUFBVSxXQUFXLENBQUMsSUFBWSxFQUFFLEtBQWE7SUFDbkQsS0FBSyxNQUFNLEdBQUcsSUFBSSxJQUFJLEVBQUU7UUFDcEIsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztLQUMxQjtBQUNMLENBQUM7QUFFRCxNQUFNLE9BQU8sV0FBVztJQU9wQixZQUFZLElBQWtCO1FBRjlCLGFBQVEsR0FBNkcsUUFBUSxDQUFDO1FBRzFILElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQUU7WUFDM0MsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDekQ7UUFDRCxLQUFLLE1BQU0sR0FBRyxJQUFJLElBQUksRUFBRTtZQUNwQixJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ3pCO0lBQ0wsQ0FBQztDQUNKO0FBRUQsTUFBTSxPQUFPLFFBQVE7SUFJakIsWUFBWSxJQUFlO1FBSDNCLG9HQUFvRztRQUNwRyxrQkFBYSxHQUFtQixFQUFFLENBQUM7UUFHL0IsS0FBSyxNQUFNLEdBQUcs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LENBQUMsRUFIVyxRQUFRLEtBQVIsUUFBUSxRQUduQjtBQUVELE1BQU0sQ0FBTixJQUFZLFNBMEJYO0FBMUJELFdBQVksU0FBUztJQUNqQiw4QkFBaUIsQ0FBQTtJQUNqQix5Q0FBNEIsQ0FBQTtJQUM1QiwyQ0FBOEIsQ0FBQTtJQUM5QixxQ0FBd0IsQ0FBQTtJQUN4Qiw0QkFBZSxDQUFBO0lBQ2YsMEJBQWEsQ0FBQTtJQUNiLHVDQUEwQixDQUFBO0lBQzFCLDBCQUFhLENBQUE7SUFDYiw0QkFBZSxDQUFBO0lBQ2YsbURBQXNDLENBQUE7SUFDdEMsNEJBQWUsQ0FBQTtJQUNmLHlDQUE0QixDQUFBO0lBQzVCLGtDQUFxQixDQUFBO0lBQ3JCLDBCQUFhLENBQUE7SUFDYiw4QkFBaUIsQ0FBQTtJQUNqQiw0QkFBZSxDQUFBO0lBQ2Ysa0NBQXFCLENBQUE7SUFDckIsZ0NBQW1CLENBQUE7SUFDbkIsOEJBQWlCLENBQUE7SUFDakIsMkNBQThCLENBQUE7SUFDOUIsMEJBQWEsQ0FBQTtJQUNiLGdDQUFtQixDQUFBO0lBQ25CLDhDQUFpQyxDQUFBO0lBQ2pDLGtEQUFxQyxDQUFBO0lBQ3JDLGtDQUFxQixDQUFBO0FBQ3pCLENBQUMsRUExQlcsU0FBUyxLQUFULFNBQVMsUUEwQnBCO0FBRUQsTUFBTSxPQUFPLFlBQVk7SUFPckIsWUFBWSxJQUFtQjtRQUovQixlQUFVLEdBQXlCLEVBQUUsQ0FBQztRQUN0QyxnQkFBVyxHQUFJLEtBQUssQ0FBQztRQUlqQixLQUFLLE1BQU0sR0FBRyxJQUFJLElBQUksRUFBRTtZQUNwQixJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ3pCO0lBQ0wsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZVRyYW5zZm9ybSwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTWVudUl0ZW0gfSBmcm9tICd0bi1jdXN0b20tcHJpbWVuZy9hcGknO1xuXG5pbXBvcnQgeyBBdXRvQ29tcGxldGVQaWNrZXJDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL2F1dG9jb21wbGV0ZS1waWNrZXIvYXV0b2NvbXBsZXRlLXBpY2tlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRW51bUxvYWlWYW5CYW5CYXNlIH0gZnJvbSAnLi4vY29tcG9uZW50cy9jb25ndmllYy1waWNrZXIvbW9kZWxzL2VudW1zJztcbmltcG9ydCB7IENydWRMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9jcnVkL2NydWQtbGlzdC9jcnVkLWxpc3QuY29tcG9uZW50JztcbmltcG9ydCB7XG4gICAgRW50aXR5UGlja2VyRGF0YUNvbXBvbmVudFxufSBmcm9tICcuLi9jb21wb25lbnRzL2VudGl0eS1waWNrZXIvZW50aXR5LXBpY2tlci1kaWFsb2cvY29tcG9uZW50cy9lbnRpdHktcGlja2VyLWRhdGEvZW50aXR5LXBpY2tlci1kYXRhLmNvbXBvbmVudCc7XG5pbXBvcnQge1xuICAgIEVudGl0eVBpY2tlclNlbGVjdGVkQ29tcG9uZW50XG59IGZyb20gJy4uL2NvbXBvbmVudHMvZW50aXR5LXBpY2tlci9lbnRpdHktcGlja2VyLWRpYWxvZy9jb21wb25lbnRzL2VudGl0eS1waWNrZXItc2VsZWN0ZWQvZW50aXR5LXBpY2tlci1zZWxlY3RlZC5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgICBFbnRpdHlQaWNrZXJUcmVlRGF0YUNvbXBvbmVudFxufSBmcm9tICcuLi9jb21wb25lbnRzL2VudGl0eS1waWNrZXIvZW50aXR5LXBpY2tlci1kaWFsb2cvY29tcG9uZW50cy9lbnRpdHktcGlja2VyLXRyZWUtZGF0YS9lbnRpdHktcGlja2VyLXRyZWUtZGF0YS5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgICBFbnRpdHlQaWNrZXJUcmVlU2VsZWN0ZWRDb21wb25lbnRcbn0gZnJvbSAnLi4vY29tcG9uZW50cy9lbnRpdHktcGlja2VyL2VudGl0eS1waWNrZXItZGlhbG9nL2NvbXBvbmVudHMvZW50aXR5LXBpY2tlci10cmVlLXNlbGVjdGVkL2VudGl0eS1waWNrZXItdHJlZS1zZWxlY3RlZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRW50aXR5UGlja2VyQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9lbnRpdHktcGlja2VyL2VudGl0eS1waWNrZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEZpbGVQaWNrZXJTZXR0aW5nIH0gZnJvbSAnLi4vY29tcG9uZW50cy9maWxlLWV4cGxvcmVyL21vZGVscy9maWxlLXBpY2tlci1zZXR0aW5nJztcbmltcG9ydCB7IEZpbGVNYW5hZ2VyU2V0dGluZywgRmlsZVVwbG9hZFNldHRpbmcgfSBmcm9tICcuLi9jb21wb25lbnRzL2ZpbGUtZXhwbG9yZXIvbW9kZWxzL2ZpbGUtc2V0dGluZ3MnO1xuaW1wb3J0IHsgRmlsZURhdGFTZXJ2aWNlIH0gZnJvbSAnLi4vY29tcG9uZW50cy9maWxlLWV4cGxvcmVyL3NlcnZpY2VzL2ZpbGUtZGF0YS5zZXJ2aWNlJztcbmltcG9ydCB7IEZpbGVUeXBlRmxhZyB9IGZyb20gJy4uL21vZGVscy9maWxlLXR5cGUnO1xuaW1wb3J0IHsgRmlsdGVyLCBTb3J0IH0gZnJvbSAnLi4vbW9kZWxzL2dyaWQtaW5mbyc7XG5pbXBvcnQgeyBLZXlWYWx1ZVR5cGUgfSBmcm9tICcuLi9tb2RlbHMvdHlwZXMnO1xuaW1wb3J0IHsgQmFzZVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9iYXNlLnNlcnZpY2UnO1xuaW1wb3J0IHsgRW50aXR5TWV0YWRhdGFTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvZW50aXR5LW1ldGFkYXRhLnNlcnZpY2UnO1xuaW1wb3J0IHsgTWFzdGVyRGF0YVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9tYXN0ZXItZGF0YS5zZXJ2aWNlJztcbmltcG9ydCB7IENvbnRyb2xUcmVlTm9kZSwgQ3J1ZEZvcm1Db21wb25lbnQgfSBmcm9tICcuLy4uL2NvbXBvbmVudHMvY3J1ZC9jcnVkLWZvcm0vY3J1ZC1mb3JtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJQ29ycmVjdG9yIH0gZnJvbSAnLi9iYXNlL2NvcnJlY3RvcnMnO1xuaW1wb3J0IHsgSVZhbGlkYXRvciB9IGZyb20gJy4vYmFzZS92YWxpZGF0b3JzJztcbmltcG9ydCB7IEVudW1Db250cm9sUGlja2VyVHlwZSwgRW51bVdvcmtmbG93Q29yZUNvZGVTZXR0aW5nS2V5LCBGb3JtU3RhdGUsIFNoYXJlZEZvbGRlclR5cGUgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBXb3JrZmxvd1NldHRpbmcsIFdvcmtmbG93U2V0dGluZ05ldyB9IGZyb20gJy4vd29ya2Zsb3ctc2NoZW1hJztcblxuZXhwb3J0IGZ1bmN0aW9uIG1hcFByb3BlcnR5KGluaXQ6IG9iamVjdCwgdG9NYXA6IG9iamVjdCkge1xuICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgdG9NYXBba2V5XSA9IGluaXRba2V5XTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBNb2RlbFNjaGVtYSB7XG4gICAgZmllbGQ6IHN0cmluZztcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgZnVsbE5hbWU/OiBzdHJpbmc7XG4gICAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gICAgZGF0YVR5cGU/OiAnaW50JyB8ICdkZWNpbWFsJyB8ICdkYXRlJyB8ICdkYXRldGltZScgfCAnc3RyaW5nJyB8ICdib29sZWFuJyB8ICd0aW1lc3BhbicgfCAnaHRtbCcgfCAnaW50V2l0aG91dE1hc2snID0gJ3N0cmluZyc7XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogTW9kZWxTY2hlbWEpIHtcbiAgICAgICAgaWYgKCFpbml0WydmdWxsTmFtZSddICYmICFpbml0WydkZXNjcmlwdGlvbiddKSB7XG4gICAgICAgICAgICBpbml0WydmdWxsTmFtZSddID0gaW5pdFsnZGVzY3JpcHRpb24nXSA9IGluaXRbJ25hbWUnXTtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBDcnVkQmFzZSB7XG4gICAgLy8gQ29tcG9uZW50IHN1YnNjcmliZSAtIEtoaSBzdWJjcmliZSBt4buZdCBjb21wb25lbnQgdGjDrCBhZGQgdsOgbyBhcnJheSDEkeG7gyBraGkgZGVzdHJveSB0aMOsIHVuc3Vic2NyaWJlXG4gICAgY29tcG9uZW50U3ViczogU3Vic2NyaXB0aW9uW10gPSBbXTtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBDcnVkQmFzZSkge1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBDcnVkTGlzdFNldHRpbmcge1xuICAgIGtleTogc3RyaW5nO1xuICAgIHRpdGxlOiBzdHJpbmc7XG4gICAgdGFyZ2V0UGF0aD86IHN0cmluZztcbiAgICBvYmplY3ROYW1lID0gJyc7XG4gICAgZW50aXR5S2V5ID0gJ2lkJztcbiAgICBzZXR0aW5nS2V5Pzogc3RyaW5nO1xuICAgIGVudGl0eU1ldGFkYXRhU2VydmljZT86IEVudGl0eU1ldGFkYXRhU2VydmljZTtcbiAgICBtb2RlbFNjaGVtYXM/OiBNb2RlbFNjaGVtYVtdID0gW107XG4gICAgY29scz86IENvbHVtblNjaGVtYUJhc2VbXSA9IFtdO1xuICAgIGNvbW1vblNjaGVtYXM/OiBGb3JtQ29udHJvbEJhc2VbXSA9IFtdO1xuICAgIGNvbHVtblNldHRpbmc/OiBDb2x1bW5TZXR0aW5nID0gbmV3IENvbHVtblNldHRpbmcoKTtcbiAgICBwYWdlU2V0dGluZz86IFBhZ2VTZXR0aW5nID0gbmV3IFBhZ2VTZXR0aW5nKCk7XG4gICAgaGVpZ2h0VHlwZT86IEhlaWdodFR5cGUgPSBIZWlnaHRUeXBlLmRlZmF1bHQ7IC8vIEPDsyBjdXN0b20gY2hp4buBdSBjYW8ga2jDtG5nOiBUaMaw4budbmcgc+G7rSBk4bulbmcgdHJvbmcgZGlhbG9nXG4gICAgZml4SGVpZ2h0VHlwZUluRGlhbG9nPyA9IHRydWU7XG4gICAgbXVsdGlwbGVDaGVja1doZW5DbGlja1JvdyA9IHRydWU7XG4gICAgY3VzdG9tV29ya2Zsb3dDb2RlVHJpbmhLeTogRW51bVdvcmtmbG93Q29yZUNvZGVTZXR0aW5nS2V5ID0gRW51bVdvcmtmbG93Q29yZUNvZGVTZXR0aW5nS2V5Lk1BQ19ESU5IO1xuICAgIHN0aWNreUNvbHVtbiA9IGZhbHNlO1xuICAgIHRhYmxlTmFtZT86IHN0cmluZztcbiAgICBiYXNlU2VydmljZT86IEJhc2VTZXJ2aWNlO1xuICAgIHJlU2VsZWN0TGFzdEl0ZW0/ID0gdHJ1ZTsgLy8gU2VsZWN0IGzhuqFpIGl0ZW0gY3Xhu5FpIGPDuW5nIMSRw6MgY2jhu41uIGPhu6dhIGdyaWRcbiAgICBmaXJlRXZlbnRXaGVuUmVTZWxlY3Q/ID0gZmFsc2U7XG4gICAgYWR2YW5jZURhdGE/OiBhbnkgPSB7fTtcbiAgICBmaWVsZE5lZWRHZXRSZWY/OiBSZWZGaWVsZFtdID0gW107XG4gICAgd29ya2Zsb3dTZXR0aW5nPzogV29ya2Zsb3dTZXR0aW5nO1xuICAgIHdvcmtmbG93U2V0dGluZ05ldz86IFdvcmtmbG93U2V0dGluZ05ldztcbiAgICBpc1dvcmtmbG93VHJlZT86IGJvb2xlYW4gPSBmYWxzZTtcbiAgICB3b3JrZmxvd0NvbmZpZ0FkdmFuY2U/OiBXb3JrZmxvd0NvbmZpZ0FkdmFuY2U7XG4gICAgaWdub3JlV29ya2Zsb3c/OiBib29sZWFuID0gZmFsc2U7XG4gICAgZGlzcGxheUZpZWxkOiBzdHJpbmcgfCAoKGl0ZW0pID0+IHN0cmluZyk7IC8vIHRyxrDhu51uZyDEkeG6oWkgZGnhu4duIGNobyBi4bqjbiBnaGkgbMOgbSB0acOqdSDEkeG7gSBoaeG7g24gdGjhu4sgKHBo4bulYyB24bulIGNobyBjw6FjIGThu4tjaCB24bulIGtow6FjIGtoYWkgdGjDoWMpXG4gICAgZ2V0RGlzcGxheU5hbWVJblNlcnZlcjogYm9vbGVhbiA9IGZhbHNlO1xuICAgIGhhc0N1c3RvbUhhbmRsZUNsaWNrUm93ID0gZmFsc2U7XG4gICAgY2hlY2tBbGxvd1RyaW5oS3k6IChyb3dEYXRhKSA9PiBQcm9taXNlPGJvb2xlYW4+O1xuICAgIGNoZWNrQWxsb3dTZWxlY3RSb3c6IChyb3dEYXRhLCBldnQ/KSA9PiBib29sZWFuO1xuICAgIGdldEl0ZW1TdGF0ZTogKGxzdFJvd0RhdGE6IGFueVtdKSA9PiB7IFtrZXk6IHN0cmluZ106IGFueTsgfTtcbiAgICBnZXREYXRhRm9yTmV4dEZpcnN0U3RlcFRhc2s/OiAocm93RGF0YSkgPT4gKHt9KTtcbiAgICBjaGVja1Blcm1pc2lvblRyaW5oS3kgPSBmYWxzZTtcbiAgICB1c2VXb3JrZmxvd0J1dHRvbj86IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBzaG93RWRpdExpbmsgPSB0cnVlO1xuICAgIHNob3dCdXR0b25UaHVIb2kgPSB0cnVlO1xuICAgIHNob3dGaWxlTWFuYWdlckZyb21XZlByb2Nlc3MgPSB0cnVlO1xuICAgIHNob3dDb25maXJtRXhwb3J0ID0gZmFsc2U7XG4gICAgc2hvd0VkaXRMaW5rT25seVZpZXcgPSBmYWxzZTtcbiAgICBzaG93Q29tbW9uU2VhcmNoTGFiZWwgPSBmYWxzZTtcbiAgICBtZFdpZHRoQ29tbW9uU2VhcmNoID0gMztcbiAgICB1c2VDb21tb25TZWFyY2ggPSBmYWxzZTtcbiAgICB1c2VDb21tb25GdWxsVGV4dFNlYXJjaCA9IHRydWU7XG4gICAgaGlkZGVuU2VhcmNoID0gZmFsc2U7XG5cbiAgICBoaWRkZW5IZWFkZXIgPSBmYWxzZTtcbiAgICBoaWRkZW5QYWdlU2V0dGluZyA9IGZhbHNlO1xuICAgIGhpZGRlblRleHRQYWdlID0gZmFsc2U7XG4gICAgaGlkZGVuVG9vbGJhciA9IGZhbHNlO1xuICAgIGhpZGRlbkJ1dHRvbnMgPSBmYWxzZTtcbiAgICBoaWRkZW5BZHZhbmNlU2VhcmNoID0gZmFsc2U7XG4gICAgaGlkZGVuU2F2ZVNldHRpbmcgPSBmYWxzZTtcbiAgICBoaWRkZW5TZXR0aW5nID0gZmFsc2U7XG4gICAgaGlkZGVuU2V0dGluZ1Blcm1pc3Npb24gPSBmYWxzZTtcbiAgICBoaWRkZW5TZXR0aW5nV29ya2Zsb3cgPSBmYWxzZTtcbiAgICBoaWRkZW5QYWdlVGl0bGUgPSBmYWxzZTtcblxuICAgIGhpZGRlbkNoZWNrYm94ID0gZmFsc2U7XG4gICAgaGlkZGVuT3JkZXJDb2x1bW4gPSBmYWxzZTtcbiAgICBoaWRkZW5Xb3JrZmxvd0NvbHVtbiA9IGZhbHNlO1xuICAgIGhpZGRlbldvcmtmbG93SGlzdG9yeSA9IGZhbHNlO1xuICAgIGFsbG93RmlsdGVyV29ya2Zsb3dDb2x1bW4gPSBmYWxzZTtcbiAgICBoaWRkZW5GdW5jdGlvbkNvbHVtbiA9IGZhbHNlO1xuICAgIGhpZGRlblJlZnJlc2ggPSBmYWxzZTtcbiAgICBoaWRkZW5GaWx0ZXJSb3cgPSBmYWxzZTtcbiAgICBoaWRkZW5UcmluaEt5ID0gdHJ1ZTtcbiAgICBoaWRkZW5DaG9ZS2llbiA9IGZhbHNlO1xuICAgIHVzZUJhc2VUcmluaEt5ID0gdHJ1ZTtcbiAgICBkaXNhYmxlU2hhcmUgPSB0cnVlO1xuICAgIGRpc2FibGVWaWV3V29ya2Zsb3dBdHRhY2ggPSBmYWxzZTtcbiAgICBoaWRkZW5Xb3JrZmxvd0NvcmVTdGF0dXMgPSB0cnVlO1xuICAgIHJlcXVpcmVkVmFuQmFuRGlBZnRlclRyaW5oS3kgPSBmYWxzZTtcblxuICAgIGdyb3VwQ29sdW1uPzogQ29sdW1uU2NoZW1hQmFzZTtcblxuICAgIHNob3dFeHBvcnRBbGwgPSBmYWxzZTtcbiAgICBzaG93RXhwb3J0U2VsZWN0ZWRJdGVtcyA9IHRydWU7XG4gICAgc2hvd0V4cG9ydFdvcmRTZWxlY3RlZEl0ZW1zID0gZmFsc2U7XG4gICAgZXhwb3J0QWxsTW9kZWw6IEV4cG9ydEFsbE1vZGUgPSBFeHBvcnRBbGxNb2RlLkF1dG9HZXREYXRhO1xuICAgIGV4cG9ydEl0ZW1zTW9kZTogRXhwb3J0SXRlbXNNb2RlID0gRXhwb3J0SXRlbXNNb2RlLkZyb21IdG1sO1xuXG4gICAgZW5hYmxlVmVyc2lvbiA9IGZhbHNlO1xuICAgIHNob3dWZXJzaW9uQnV0dG9uID0gZmFsc2U7XG4gICAgdmVyc2lvbk1vZGVsPzogeyBba2V5OiBzdHJpbmddOiBhbnk7IH0gPSB7fTtcbiAgICBzaG93SGlzdG9yeSA9IGZhbHNlO1xuICAgIGhpc3Rvcnk/OiBhbnk7XG5cbiAgICBjb2xvckZpbHRlckZpZWxkID0gJyc7XG4gICAgY29sb3JGaWx0ZXJUYWJsZT86IFJvd0NvbG9yT3B0aW9uW10gPSBbXTtcblxuICAgIGVudGl0eU1ldGFkYXRhU2V0dGluZz86IENydWRGb3JtU2V0dGluZyA9IG5ldyBDcnVkRm9ybVNldHRpbmcoKTtcblxuICAgIGZpZWxkU2VhcmNoVGV4dD86IHN0cmluZ1tdID0gW107XG4gICAgZmlsdGVyVGVtcGxhdGVBZHZzPzogRmlsdGVyW107XG5cbiAgICBmdW5jdGlvbjogQ3J1ZExpc3RDdXN0b21GdW5jdGlvbiA9IG5ldyBDcnVkTGlzdEN1c3RvbUZ1bmN0aW9uKCk7XG5cbiAgICBwb3B1cEhlYWRlcj8gPSAnJztcbiAgICBwb3B1cFNpemU/OiBQb3B1cFNpemUgPSBuZXcgUG9wdXBTaXplKCk7XG4gICAgbWFza0NsYXNzPzogc3RyaW5nO1xuXG4gICAgYnV0dG9uc1Blcm1pc3Npb25DdXN0b20/OiBCdXR0b25BY3Rpb25bXSA9IFtdO1xuICAgIGhpZGRlbkF1dGhvcml6ZUJ1dHRvbiA9IGZhbHNlO1xuICAgIHN1ZmZpeEF1dGhvcml6ZUNvZGUgPSAnJzsgLy8gdGjDqm0gaOG6rXUgdOG7kSBtw6MgY29kZSB0cm9uZyBjaOG7qWMgbsSDbmcgUGjDom4gcXV54buBbiBuw7p0IChwaOG7pWMgduG7pSBjYXNlIGNydWRMaXN0IG7DoHkgbuG6sW0gdHJvbmcgbcOgbiBow6xuaCBwb3B1cClcblxuXG4gICAgLyoqXG4gICAgICogQXV0byBnZW5lcmF0ZSBncmlkSW5mby5maWVsZHMgdXNpbmcgc2V0dGluZy5jb2xzICsgZGF0YUxpc3QuYWRkdGlvbmFsRmllbGRzXG4gICAgICogQGRhdGUgMTEvNC8yMDIyIC0gMjowNDozMSBQTVxuICAgICAqXG4gICAgICogQHR5cGUgez9ib29sZWFufVxuICAgICAqL1xuICAgIGF1dG9HZW5lcmF0ZVNlbGVjdEZpZWxkcz8gPSBmYWxzZTtcblxuICAgIG1vZGlmeVJvd0RhdGFGb3JUYXNrOiAocm93RGF0YSkgPT4gdm9pZCA9IChyb3dEYXRhKSA9PiAoe30pO1xuICAgIG1vZGlmeUl0ZW1UYXNrOiAobW9kZWxUYXNrLCByb3dEYXRhKSA9PiB2b2lkID0gKG1vZGVsVGFzaywgcm93RGF0YSkgPT4gKHt9KTtcbiAgICBnZXRDdXN0b21EYXRhVHJpbmhLeTogKHJvd0RhdGEpID0+IGFueSA9IChyb3dEYXRhKSA9PiAoe30pO1xuICAgIGdldExhYmVsQnV0dG9uVHJpbmhLeTogKHJvd0RhdGEpID0+IHN0cmluZyA9IChyb3dEYXRhKSA9PiAnVHLDrG5oIGvDvSc7XG4gICAgY2hlY2tSZWFkeVRvVHJpbmhLeTogKCkgPT4gYm9vbGVhbiA9ICgpID0+IHRydWU7XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogQ3J1ZExpc3RTZXR0aW5nKSB7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFdvcmtmbG93Q29uZmlnQWR2YW5jZSB7XG4gICAgZ2V0V29ya2Zsb3dTZXR0aW5nOiAocm93RGF0YSkgPT4gV29ya2Zsb3dTZXR0aW5nTmV3O1xufVxuXG5leHBvcnQgY2xhc3MgQ3J1ZExpc3RDdXN0b21GdW5jdGlvbiB7XG4gICAgLy8gQ3VzdG9taXplXG4gICAgZ2V0U2VhcmNoQ29udHJvbD86IChmaWVsZDogc3RyaW5nKSA9PiBGb3JtU2NoZW1hQmFzZVtdID0gKGZpZWxkOiBzdHJpbmcpID0+IG51bGw7XG4gICAgLy8gQXN5bmMgZnVuY3Rpb25cbiAgICBtb2RpZnlBZHZhbmNlU2VhY2hNb2RlbD86IChkYXRhOiBBZHZhbmNlU2VhcmNoRGF0YSwgc2V0dGluZzogQWR2YW5jZVNlYXJjaFNldHRpbmcpID0+IFByb21pc2U8dm9pZD4gPSBhc3luYyAoZGF0YSkgPT4gbnVsbDtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBDcnVkTGlzdEN1c3RvbUZ1bmN0aW9uKSB7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFBlcnNvbmFsU2V0dGluZyB7XG4gICAgY29sdW1uU2V0dGluZz86IENvbHVtblNldHRpbmcgPSBuZXcgQ29sdW1uU2V0dGluZygpO1xuICAgIHBhZ2VTZXR0aW5nPzogUGFnZVNldHRpbmcgPSBuZXcgUGFnZVNldHRpbmcoKTtcbiAgICBjb2xvckZpbHRlckZpZWxkID0gJyc7XG4gICAgY29sb3JGaWx0ZXJUYWJsZT86IFJvd0NvbG9yT3B0aW9uW10gPSBbXTtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBQZXJzb25hbFNldHRpbmcpIHtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ3J1ZExpc3REYXRhIGV4dGVuZHMgQ3J1ZEJhc2Uge1xuICAgIGxvYWRpbmcgPSBmYWxzZTtcbiAgICBhZGp1c3RlZFBvc2l0aW9uTG9hZGluZyA9IGZhbHNlO1xuICAgIHJlYWR5ID0gdHJ1ZTtcbiAgICAvLyBiYXNlIHJlYWR5IGzDoCBjaOG7qWMgbsSDbmcga2nhu4NtIHRyYSByZWFkeSBj4bunYSByacOqbmcgdHJvbmcgYmFzZS4gayBnaeG7kW5nIHbhu5tpIHJlYWR5IOG7nyB0csOqblxuICAgIC8vIETDuW5nIMSR4buDIGtp4buDbSB0cmEgbuG6v3UgY8OzIHdvcmtmbG93IHRow6wgdOG6oW0gdGjhu51pIGNoxrBhIGNobyDhuqVuIHRow6ptIG3hu5tpIG7hur91IGNoxrBhIGxvYWQgeG9uZyBk4buvIGxp4buHdSBj4bqnbiB0aGnhur90XG4gICAgYmFzZVJlYWR5ID0gZmFsc2U7XG4gICAgZGF0YVNvdXJjZT86IGFueVtdID0gW107XG4gICAgLy8gxJDhu5FpIHbhu5tpIGxpc3QgZOG6oW5nIHRyZWUgdGjDrCByYXcgZGF0YXNvdXJjZSBsw6AgbGlzdCBkYXRhIGtoaSBjaMawYSB0w6FpIGPhuqV1IHRyw7pjIHRow6BuaCBk4buvIGxp4buHdSB0cmVlXG4gICAgYWxsRGF0YVNvdXJjZT86IHsgcmF3OiBhbnlbXSwgZGF0YTogYW55W107IH0gPSB7IHJhdzogW10sIGRhdGE6IFtdIH07XG4gICAgc2VsZWN0ZWRJdGVtcz86IGFueVtdID0gW107XG4gICAgc2VsZWN0ZWRJdGVtPzogYW55O1xuICAgIHNlbGVjdGVkSXRlbUxhc3Q/OiBhbnk7XG4gICAgc2VsZWN0ZWRJZD86IG51bWJlcjtcbiAgICB0b3RhbCA9IDA7XG4gICAgaXRlbURhdGE/OiBhbnk7XG4gICAgYWR2YW5jZURhdGE6IGFueSA9IHt9O1xuXG4gICAgLy8gQ8OhYyB0aHXhu5ljIHTDrW5oIGLhu5Ugc3VuZyBkbyBi4buLIGzhu5dpIGtoaSBwYWNrYWdlXG4gICAgc3VibWl0dGluZzogYm9vbGVhbiA9IGZhbHNlO1xuICAgIC8vIEVuZCBDw6FjIHRodeG7mWMgdMOtbmggYuG7lSBzdW5nIGRvIGLhu4sgbOG7l2kga2hpIHBhY2thZ2VcblxuICAgIGV4cGFuZGVkUm93S2V5cz86IHsgW2tleTogc3RyaW5nXTogYm9vbGVhbjsgfSA9IHt9O1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IENydWRMaXN0RGF0YSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBFbnRpdHlNZWRhdGFEYXRhU2V0dGluZyB7XG4gICAgZGF0YT86IGFueSA9IHt9O1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IEVudGl0eU1lZGF0YURhdGFTZXR0aW5nKSB7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFJvd0NvbG9yT3B0aW9uIHtcbiAgICBmaWx0ZXJWYWx1ZSA9ICcnO1xuICAgIGNvbXBhcmVUeXBlID0gJyc7XG4gICAgY29sb3IgPSAnJztcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBSb3dDb2xvck9wdGlvbikge1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBQYWdlU2V0dGluZyB7XG4gICAgcGFnZSA9IDE7XG4gICAgcGFnZVNpemUgPSAxNTtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBQYWdlU2V0dGluZykge1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBDb2x1bW5TZXR0aW5nIHtcbiAgICBzb3J0cz86IFNvcnRbXSA9IFtdO1xuICAgIHNvcnRGaWVsZD86IHN0cmluZztcbiAgICBzb3J0RGlyPzogLTEgfCAwIHwgMSB8IDIgPSAtMTtcbiAgICBncm91cEZpZWxkID0gJyc7XG4gICAgZ3JvdXBJbkNsaWVudD8gPSBmYWxzZTtcbiAgICBzaG93R3JvdXBTaXplOiBib29sZWFuID0gdHJ1ZTtcbiAgICBkZXRhaWxzPzogQ29sdW1uU2V0dGluZ0RldGFpbFtdID0gW107XG4gICAgY29sdW1uUmVvcmRlcj87XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogQ29sdW1uU2V0dGluZykge1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBDb2x1bW5TZXR0aW5nRGV0YWlsIHtcbiAgICBvcmRlcj86IG51bWJlciA9IDE7XG4gICAgY29sdW1uQ29kZT86IHN0cmluZztcbiAgICBjb2x1bW5OYW1lPzogc3RyaW5nO1xuICAgIHZpc2libGU/OiBib29sZWFuO1xuICAgIHRleHRBbGlnbj86IFRleHRBbGlnbjtcbiAgICB3aWR0aD86IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIENydWRGb3JtRGF0YSBleHRlbmRzIENydWRCYXNlIHtcbiAgICBkYXRhPzogYW55ID0ge307XG4gICAgc3VibWl0dGluZz8gPSBmYWxzZTtcbiAgICAvKipcbiAgICAgKiBUcuG6oW5nIHRow6FpIGPhu6dhIGZvcm0gxJFhbmcgxJHGsOG7o2MgbeG7nzogTMOgIGZvcm0gdGjDqm0gbeG7m2ksIGhheSBmb3JtIHPhu61hLCBoYXkgZm9ybSB4w7NhXG4gICAgICovXG4gICAgZm9ybVN0YXRlPzogRm9ybVN0YXRlID0gRm9ybVN0YXRlLkFERDtcbiAgICB3b3JrZmxvd0J1dHRvbnM/OiBhbnlbXTtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBDcnVkRm9ybURhdGEpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ3J1ZEZvcm1DdXN0b21GdW5jdGlvbiB7XG4gICAgLy8gQ3VzdG9taXplXG4gICAgbW9kaWZ5RGF0YUFmdGVyR2V0Q2FjaGU/OiAoZGF0YTogYW55KSA9PiB2b2lkID0gKGRhdGE6IGFueSkgPT4gbnVsbDtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBDcnVkTGlzdEN1c3RvbUZ1bmN0aW9uKSB7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIENydWRGb3JtU2V0dGluZyB7XG4gICAgZGlzYWJsZUNhY2hpbmcgPSBmYWxzZTtcbiAgICBoaWRkZW5UcmluaEt5ID0gdHJ1ZTtcbiAgICBzY2hlbWE/OiBGb3JtU2NoZW1hQmFzZVtdID0gW107XG4gICAgYmFzZVNlcnZpY2U/OiBCYXNlU2VydmljZTtcbiAgICBidWlsZEluU2NoZW1hPzogRm9ybUNvbnRyb2xCYXNlW10gPSBbXTtcbiAgICB1bmlxdWVGaWVsZD86IHN0cmluZ1tdIHwgc3RyaW5nW11bXSA9IFtdO1xuICAgIGZpZWxkRHJvcGRvd24/OiB7IFtrZXk6IHN0cmluZ106IERyb3Bkb3duQ29udHJvbFNjaGVtYTsgfSA9IHt9O1xuICAgIGZpZWxkTmVlZEdldFJlZj86IHsgW2tleTogc3RyaW5nXTogVGV4dENvbnRyb2xTY2hlbWE7IH0gPSB7fTtcbiAgICBkaXNwbGF5RmllbGQ/OiBzdHJpbmcgfCAoKGl0ZW0pID0+IHN0cmluZyk7XG4gICAgZmlyc3RGb2N1c0NvbnRyb2w/OiBzdHJpbmc7XG4gICAgZmlsdGVyQ2hlY2tFeGlzdEJ5VmVyc2lvbj86IEZpbHRlcltdO1xuICAgIGRlZmF1bHRGaWx0ZXJDaGVja0V4aXN0PzogRmlsdGVyW10gfCAoKCkgPT4gRmlsdGVyW10pO1xuICAgIGN1c3RvbVdvcmtmbG93Q29kZVRyaW5oS3k6IEVudW1Xb3JrZmxvd0NvcmVDb2RlU2V0dGluZ0tleSA9IEVudW1Xb3JrZmxvd0NvcmVDb2RlU2V0dGluZ0tleS5NQUNfRElOSDtcbiAgICBlbnRpdHlNZXRhZGF0YURhdGE/OiBDcnVkRm9ybURhdGE7XG4gICAgZW50aXR5TWV0YWRhdGFTZXR0aW5nPzogQ3J1ZEZvcm1TZXR0aW5nO1xuICAgIGZ1bmN0aW9uPzogQ3J1ZEZvcm1DdXN0b21GdW5jdGlvbiA9IG5ldyBDcnVkRm9ybUN1c3RvbUZ1bmN0aW9uKCk7XG4gICAgaGlkZGVuS3lTb1NpbUNhTmhhbj8gPSBmYWxzZTtcbiAgICBoaWRkZW5LeVNvVXNiQ2FOaGFuPyA9IGZhbHNlO1xuICAgIGhpZGRlbkt5U29Eb25WaT8gPSBmYWxzZTtcbiAgICBoaWRkZW5CdXRQaGU/ID0gZmFsc2U7XG4gICAgZ2V0Q3VzdG9tRGF0YVRyaW5oS3k6IChyb3dEYXRhKSA9PiBhbnkgPSAocm93RGF0YSkgPT4gKHt9KTtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBDcnVkRm9ybVNldHRpbmcpIHtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQWR2YW5jZVNlYXJjaERhdGEgZXh0ZW5kcyBDcnVkRm9ybURhdGEge1xuICAgIGluaXREYXRhPzogYW55ID0ge307XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogQWR2YW5jZVNlYXJjaERhdGEpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQWR2YW5jZVNlYXJjaFNldHRpbmcgZXh0ZW5kcyBDcnVkRm9ybVNldHRpbmcge1xuICAgIGZpZWxkS2V5ID0gJ19rJztcbiAgICBlbnRpdHlQZXJtaXNzaW9uU2NoZW1hPzogRm9ybUNvbnRyb2xCYXNlW10gPSBbXTtcbiAgICBrZWVwSW5pdFNlYXJjaERhdGFOb3ROdWxsID0gdHJ1ZTtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBBZHZhbmNlU2VhcmNoU2V0dGluZykge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTY2hlbWFCYXNlIHtcbiAgICBmaWVsZD86IHN0cmluZztcbiAgICBmaWVsZEZpbHRlcj86IHN0cmluZztcbiAgICB1bmlxdWVGaWVsZD86IHN0cmluZztcbiAgICB0eXBlPzogJ2Jvb2xlYW4nIHwgJ2ludCcgfCAnZGVjaW1hbCcgfCAnZGF0ZXRpbWUnIHwgJ3N0cmluZycgPSAnc3RyaW5nJztcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBTY2hlbWFCYXNlKSB7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEZvcm1TY2hlbWFCYXNlIGV4dGVuZHMgU2NoZW1hQmFzZSB7XG4gICAgbGFiZWw/OiBzdHJpbmc7XG4gICAgZnVsbExhYmVsPzogc3RyaW5nO1xuICAgIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICAgIG1lc3NhZ2U/OiBzdHJpbmc7XG4gICAgbWVzc2FnZUNsYXNzPzogc3RyaW5nO1xuICAgIHNob3dMYWJlbD8gPSB0cnVlO1xuICAgIGdXaWR0aD8gPSAxMjtcbiAgICBtZFdpZHRoPyA9IDY7XG4gICAgcm93U3Bhbj8gPSAxO1xuICAgIHdpZHRoPzogc3RyaW5nO1xuICAgIGNsYXNzPyA9ICcnO1xuICAgIHN0eWxlPzogYW55ID0ge307XG4gICAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICAgIGhpZGRlbj8gPSBmYWxzZTtcbiAgICBoaWRkZW5DaGVjaz86IChyb290TW9kZWw6IGFueSwgY3VycmVudE5vZGU6IENvbnRyb2xUcmVlTm9kZSkgPT4gYm9vbGVhbjtcbiAgICBoaWRkZW5PblZpZXc/ID0gZmFsc2U7XG4gICAgdmlzaWJsZUluTGlzdD8gPSB0cnVlO1xuICAgIG9wZXJhdG9yPzogT3BlcmF0b3I7XG4gICAgZ3JvdXBDb2RlPyA9ICcnO1xuICAgIGRlZmF1bHRWYWx1ZT86IGFueTtcbiAgICBmaWVsZEFsaWFzPyA9ICcnO1xuICAgIGRhdGE/OiBhbnkgPSB7fTtcbiAgICBpc0h0bWxMYWJlbD8gPSBmYWxzZTtcbiAgICBvcmRlcj8gPSAwO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IEZvcm1TY2hlbWFCYXNlKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIENvbnRhaW5lclNjaGVtYSBleHRlbmRzIEZvcm1TY2hlbWFCYXNlIHtcbiAgICBjb250cm9sczogRm9ybVNjaGVtYUJhc2VbXTtcbiAgICBzaG93SW5Cb3g/ID0gdHJ1ZTtcbiAgICBib3hTdHlsZT86IGFueTtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBDb250YWluZXJTY2hlbWEpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgVE5Db250YWluZXJTY2hlbWEgZXh0ZW5kcyBGb3JtU2NoZW1hQmFzZSB7XG4gICAgY29udHJvbHM6IEZvcm1TY2hlbWFCYXNlW107XG4gICAgZmllbGRPZlBhcmVudHM/OiBzdHJpbmdbXTtcbiAgICBzaG93SW5Cb3g/ID0gdHJ1ZTtcbiAgICBib3hTdHlsZT86IGFueTtcbiAgICBiYXNlU2VydmljZT86IEJhc2VTZXJ2aWNlO1xuICAgIGlzV3JpdGVUb1BhcmVudE1vZGVsPyA9IGZhbHNlO1xuICAgIF9jb21wb25lbnQ/OiBhbnk7XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogVE5Db250YWluZXJTY2hlbWEpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgRm9ybVNjaGVtYUJhc2VXaXRoU2VydmljZSBleHRlbmRzIEZvcm1TY2hlbWFCYXNlIHtcbiAgICAvLyBVcmwgxJHhu4MgbOG6pXkgZOG7ryBsaeG7h3UgKioqIEtIw5RORyBT4busIEThu6RORyBUUk9ORyBDw4FDIENBU0UgUEjhu5QgQknhur5OLCBDSOG7iCBT4busIEThu6RORyDEkOG7kEkgVuG7mkkgRk9STSBLSOG6ok8gU8OBVCAqKipcbiAgICBzZXJ2aWNlVXJpPyA9ICcnO1xuICAgIGJhc2VTZXJ2aWNlPzogQmFzZVNlcnZpY2UgfCBNYXN0ZXJEYXRhU2VydmljZTtcbiAgICByZWZGaWVsZHM/OiBSZWZGaWVsZFtdID0gW107XG4gICAgZ3JvdXBDb2RlPzogc3RyaW5nO1xuICAgIHZhbHVlRmllbGQ/ID0gJ2lkJztcbiAgICBkaXNwbGF5RmllbGQ/ID0gJ3Rlbic7XG4gICAgZGF0YVNvdXJjZT86IGFueVtdID0gW107XG5cbiAgICBpc1NlcnZlckxvYWQ/ID0gZmFsc2U7XG4gICAgc2VhcmNoRmllbGQ/OiBzdHJpbmdbXTtcblxuICAgIGlzVHJlZT8gPSBmYWxzZTtcbiAgICBpc1RyZWVCYXNlTW9kZWw/ID0gZmFsc2U7XG4gICAgZmllbGRUcmVlPzogc3RyaW5nO1xuICAgIHZhbHVlUGFyZW50Um9vdD86IGFueSA9IG51bGw7IC8vIEdpw6EgdHLhu4sgdHLGsOG7nW5nIFtmaWVsZFRyZWVdIGPhu6dhIGl0ZW0gdHJlZSByb290XG4gICAgZmllbGRQYXJlbnRUcmVlSXRlbT8gPSAnaWQnOyAvLyBUcsaw4budbmcgeMOhYyDEkeG7i25oIGLhuqNuIGdoaSBsw6AgYuG6o24gZ2hpIGNoYSBj4bunYSBi4bqjbiBnaGkgY29uXG4gICAgc2VsZWN0Q2hpbGRJdGVtPyA9IGZhbHNlOyAvLyBDw7Mgc2VsZWN0IGLhuqNuIGdoaSBjb24gbuG6v3UgY2jhu41uIGLhuqNuIGdoaSBjaGFcbiAgICBzZWxlY3REZXNjZW5kYW50PyA9IGZhbHNlOy8vIEPDsyBzZWxlY3QgYuG6o24gZ2hpIGNvbiwgY2jDoXUgbuG6v3UgY2jhu41uIGLhuqNuIGdoaSBjaGFcblxuICAgIHBsdXNVcmw/OiBzdHJpbmc7XG4gICAgc29ydHM/OiBTb3J0W10gPSBbXTtcbiAgICBzb3J0RmllbGQ/ID0gJyc7XG4gICAgc29ydERpcj86IDEgfCAtMSA9IDE7XG4gICAgZmllbGRQbHVzPyA9ICcnOyAvLyBEYW5oIHPDoWNoIG5o4buvbmcgdHLGsOG7nW5nIGLhu5Ugc3VuZyBj4bqnbiBs4bqleSB0aMOqbSBuZ2/DoGkgaWQsIHRlbjsgVsOtIGThu6UgLG1hXG4gICAgZGVmYXVsdEZpbHRlcnM/OiBGaWx0ZXJbXSB8IEZ1bmN0aW9uIHwgUHJvbWlzZTxGaWx0ZXJbXT47IC8vIHR1bmd0cyB0aMOqbSBraeG7g3UgZOG7ryBsaeG7h3UgZGVmYXVsdEZpbHRlcnMgbMOgIHByb21pc2VcbiAgICBhZnRlckdldERhdGE/OiBGdW5jdGlvbjtcblxuICAgIGZ1bmNTZXREZWZhdWx0VmFsdWU/OiBGdW5jdGlvbjtcblxuICAgIGZpZWxkVmFsdWVQYXJlbnQ/ID0gJ3ZhbHVlJzsgLy8gVHLGsOG7nW5nIHPhu60gZOG7pW5nIMSR4buDIGzhuqV5IGThu68gbGnhu4d1IGzDoG0ga2jDs2EgdOG7qyBi4bqjbmcgY2hhIGPhu6dhIGl0ZW0gZHJvcCBkb3duIMSRxrDhu6NjIGNo4buNblxuXG4gICAgY2FsbGJhY2tEYXRhRmluaXNoPzogKGV2dDogRXZlbnREYXRhKSA9PiB2b2lkO1xuICAgIG1vZGlmeUZpbHRlcj86IEZ1bmN0aW9uO1xuICAgIGZ1bmNHZXRMYWJlbD86IChpdGVtKSA9PiBzdHJpbmc7XG4gICAgZnVuY0NvbXBhcmU/OiAoaXRlbTogYW55LCB2YWx1ZSkgPT4gYm9vbGVhbiA9IChpdGVtLCB2YWx1ZSkgPT4gaXRlbVt0aGlzLnZhbHVlRmllbGRdID09IHZhbHVlO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IEZvcm1TY2hlbWFCYXNlV2l0aFNlcnZpY2UpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgTGFiZWxTY2hlbWEgZXh0ZW5kcyBGb3JtU2NoZW1hQmFzZSB7XG4gICAgZm9yPyA9ICcnO1xuICAgIGlzSHRtbD8gPSBmYWxzZTtcbiAgICBtZFdpZHRoPyA9IDEyO1xuICAgIGluZGV4TGFiZWw/OiBudW1iZXI7XG4gICAgdGV4dD8gPSAnJztcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBMYWJlbFNjaGVtYSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBUaXRsZVNjaGVtYSBleHRlbmRzIExhYmVsU2NoZW1hIHtcbiAgICBjbGFzcz8gPSAndGl0bGUtZ3JvdXAgdGV4dC1ib2xkJztcbiAgICBtZFdpZHRoPyA9IDEyO1xuICAgIG9uQ2hhbmdlZD86IEZ1bmN0aW9uO1xuXG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogVGl0bGVTY2hlbWEpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgRm9ybUNvbnRyb2xCYXNlIGV4dGVuZHMgRm9ybVNjaGVtYUJhc2Uge1xuICAgIF9jb21wb25lbnQ/OiBhbnk7IC8vIENvbXBvbmVudCBj4bunYSBzY2hlbWEga2hpIGto4bufaSB04bqhb1xuICAgIHVuaXF1ZUZpZWxkPzogc3RyaW5nOyAvLyBT4butIGThu6VuZyB0cm9uZyB0YWJsZSBzY2hlbWFcbiAgICBhdXRvZm9jdXM/ID0gZmFsc2U7XG4gICAgdmFsaWRhdG9ycz86IElWYWxpZGF0b3JbXSA9IFtdO1xuICAgIGNvcnJlY3RvcnM/OiBJQ29ycmVjdG9yW10gPSBbXTtcbiAgICByZXF1aXJlZD8gPSBmYWxzZTtcbiAgICBlbmFibGVDYWNoaW5nPyA9IGZhbHNlO1xuICAgIG9uQ2hhbmdlZD86IEZ1bmN0aW9uO1xuICAgIG9uQWZ0ZXJDaGFuZ2VkPzogRnVuY3Rpb247XG4gICAgb25Jbml0PzogRnVuY3Rpb247XG4gICAgb25Sb3dOb2RlRmluaXNoSW5pdD86IEZ1bmN0aW9uO1xuICAgIHRyaWdnZXJMb2FkQ2hpbGQ/OiBGdW5jdGlvbjtcbiAgICBoYXNPcGVyYXRvckNhbkJvPyA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IEZvcm1Db250cm9sQmFzZSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBGb3JtQ29udHJvbEJhc2VXaXRoU2VydmljZSBleHRlbmRzIEZvcm1Db250cm9sQmFzZSB7XG4gICAgLyoqIENvcHkgdOG7qyBGb3JtU2NoZW1hQmFzZVdpdGhTZXJ2aWNlICovXG4gICAgLy8gVXJsIMSR4buDIGzhuqV5IGThu68gbGnhu4d1ICoqKiBLSMOUTkcgU+G7rCBE4bukTkcgVFJPTkcgQ8OBQyBDQVNFIFBI4buUIEJJ4bq+TiwgQ0jhu4ggU+G7rCBE4bukTkcgxJDhu5BJIFbhu5pJIEZPUk0gS0jhuqJPIFPDgVQgKioqXG4gICAgc2VydmljZVVyaT8gPSAnJztcbiAgICBiYXNlU2VydmljZT86IEJhc2VTZXJ2aWNlIHwgTWFzdGVyRGF0YVNlcnZpY2U7XG4gICAgcmVmRmllbGRzPzogUmVmRmllbGRbXSA9IFtdO1xuICAgIGdyb3VwQ29kZT86IHN0cmluZztcbiAgICB2YWx1ZUZpZWxkPyA9ICdpZCc7XG4gICAgZGlzcGxheUZpZWxkPyA9ICd0ZW4nO1xuXG4gICAgaXNTZXJ2ZXJMb2FkPyA9IGZhbHNlO1xuICAgIHByZXZlbnRTZXJ2ZXJMb2FkT25Jbml0PyA9IGZhbHNlO1xuICAgIHNlYXJjaEZpZWxkPzogc3RyaW5nW107XG5cbiAgICBpc1RyZWU/ID0gZmFsc2U7XG4gICAgaXNUcmVlQmFzZU1vZGVsPyA9IGZhbHNlO1xuICAgIGZpZWxkVHJlZT86IHN0cmluZztcbiAgICB2YWx1ZVBhcmVudFJvb3Q/OiBhbnkgPSBudWxsOyAvLyBHacOhIHRy4buLIHRyxrDhu51uZyBbZmllbGRUcmVlXSBj4bunYSBpdGVtIHRyZWUgcm9vdFxuICAgIGZpZWxkUGFyZW50VHJlZUl0ZW0/ID0gJ2lkJzsgLy8gVHLGsOG7nW5nIHjDoWMgxJHhu4tuaCBi4bqjbiBnaGkgbMOgIGLhuqNuIGdoaSBjaGEgY+G7p2EgYuG6o24gZ2hpIGNvblxuICAgIGZpZWxkTWFQaGFuQ2FwPyA9ICdtYVBoYW5DYXAnOyAvLyBGaWVsZCBtw6MgcGjDom4gY+G6pXBcbiAgICBzZWxlY3RDaGlsZEl0ZW0/ID0gZmFsc2U7IC8vIEPDsyBzZWxlY3QgYuG6o24gZ2hpIGNvbiBu4bq/dSBjaOG7jW4gYuG6o24gZ2hpIGNoYVxuICAgIHNlbGVjdERlc2NlbmRhbnQ/ID0gZmFsc2U7Ly8gQ8OzIHNlbGVjdCBi4bqjbiBnaGkgY29uLCBjaMOhdSBu4bq/dSBjaOG7jW4gYuG6o24gZ2hpIGNoYVxuXG4gICAgcGFnZVNpemU/OiBudW1iZXIgPSAxNTsgLy8gRMO5bmcgY2hvIGRyb3Bkb3duIHNlcnZlciBsb2FkXG4gICAgcGx1c1VybD86IHN0cmluZztcbiAgICBzb3J0cz86IFNvcnRbXSA9IFtdO1xuICAgIHNvcnRGaWVsZD8gPSAnJztcbiAgICBzb3J0RGlyPzogMSB8IC0xID0gMTtcbiAgICBmaWVsZFBsdXM/ID0gJyc7IC8vIERhbmggc8OhY2ggbmjhu69uZyB0csaw4budbmcgYuG7lSBzdW5nIGPhuqduIGzhuqV5IHRow6ptIG5nb8OgaSBpZCwgdGVuOyBWw60gZOG7pSAsbWFcbiAgICBkZWZhdWx0RmlsdGVycz86IEZpbHRlcltdIHwgRnVuY3Rpb24gfCBQcm9taXNlPEZpbHRlcltdPjsgLy8gdHVuZ3RzIHRow6ptIGtp4buDdSBk4buvIGxp4buHdSBkZWZhdWx0RmlsdGVycyBsw6AgcHJvbWlzZVxuICAgIGZpbHRlcldoaWxlUHJvY2Vzcz86IEZpbHRlcltdIHwgRnVuY3Rpb24gfCBQcm9taXNlPEZpbHRlcltdPjsgLy8gdHVuZ3RzIHRow6ptIGtp4buDdSBk4buvIGxp4buHdSBkZWZhdWx0RmlsdGVycyBsw6AgcHJvbWlzZVxuICAgIGJpbmRpbmdGaWx0ZXJzPzogRmlsdGVyW107XG4gICAgYWZ0ZXJHZXREYXRhPzogRnVuY3Rpb247XG5cbiAgICBmdW5jU2V0RGVmYXVsdFZhbHVlPzogRnVuY3Rpb247XG5cbiAgICBwYXJlbnRGaWVsZD86IHN0cmluZzsgLy8gQ29sdW1uIHTGsMahbmcg4bupbmcgdHJvbmcgdGFibGUgc3FsIHNlcnZlci5cbiAgICBmaWVsZFZhbHVlUGFyZW50PyA9ICd2YWx1ZSc7IC8vIFRyxrDhu51uZyBz4butIGThu6VuZyDEkeG7gyBs4bqleSBk4buvIGxp4buHdSBsw6BtIGtow7NhIHThu6sgYuG6o25nIGNoYSBj4bunYSBpdGVtIGRyb3AgZG93biDEkcaw4bujYyBjaOG7jW5cblxuICAgIGNhbGxiYWNrRGF0YUZpbmlzaD86IChldnQ6IEV2ZW50RGF0YSkgPT4gdm9pZDtcbiAgICBmaXJlQ2FsbEJhY2tJbnNpZGU/ID0gdHJ1ZTtcbiAgICBtb2RpZnlGaWx0ZXI/OiBGdW5jdGlvbiB8ICgoZmlsdGVyczogRmlsdGVyW10sIGNvbXBvbmVudD86IGFueSwgdHJlZU5vZGU/OiBDb250cm9sVHJlZU5vZGUpID0+IHZvaWQpO1xuXG4gICAgZnVuY0dldExhYmVsPzogKGl0ZW0pID0+IHN0cmluZztcbiAgICBmdW5jR2V0VmFsdWU/OiAoaXRlbSkgPT4gYW55O1xuICAgIGZ1bmNDb21wYXJlPzogKGl0ZW06IGFueSwgdmFsdWUpID0+IGJvb2xlYW4gPSAoaXRlbSwgdmFsdWUpID0+IGl0ZW1bdGhpcy52YWx1ZUZpZWxkXSA9PSB2YWx1ZTtcblxuICAgIC8qKiBFbmQgY29weSB04burIEZvcm1TY2hlbWFCYXNlV2l0aFNlcnZpY2UgKi9cblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBGb3JtQ29udHJvbEJhc2VXaXRoU2VydmljZSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBUZXh0Q29udHJvbFNjaGVtYSBleHRlbmRzIEZvcm1Db250cm9sQmFzZSB7XG4gICAgc2VsZWN0QWxsVGV4dD8gPSBmYWxzZTsgLy8gQ2jhu41uIHThuqV0IGPhuqMgdGV4dCBraGkgZm9jdXNcblxuICAgIHBsYWNlaG9sZGVyPyA9ICcnO1xuICAgIGRhdGFGb3JtYXQ/OiAndGV4dCcgfCAncGFzc3dvcmQnIHwgJ251bWJlcicgfCAnZW1haWwnIHwgJ3Bob25lJyB8ICdmYXgnIHwgJ21vbmV5JyB8ICdtb25leWludCcgfCAnYW1vdW50JyA9ICd0ZXh0JztcbiAgICBtYXhMZW5ndGg/OiBudW1iZXI7XG4gICAgbWluPyA9IDA7XG4gICAgbWF4PyA9IE51bWJlci5NQVhfU0FGRV9JTlRFR0VSO1xuXG4gICAgYmFzZVNlcnZpY2U/OiBCYXNlU2VydmljZSB8IE1hc3RlckRhdGFTZXJ2aWNlO1xuICAgIGdyb3VwQ29kZT86IHN0cmluZztcbiAgICB2YWx1ZUZpZWxkPyA9ICdpZCc7XG4gICAgZGlzcGxheUZpZWxkPyA9ICd0ZW4nO1xuXG4gICAgcGx1c1VybD86IHN0cmluZztcbiAgICBzb3J0cz86IFNvcnRbXSA9IFtdO1xuICAgIHNvcnRGaWVsZD8gPSAnJztcbiAgICBzb3J0RGlyPzogMSB8IC0xID0gMTtcbiAgICBmaWVsZFBsdXM/ID0gJyc7IC8vIERhbmggc8OhY2ggbmjhu69uZyB0csaw4budbmcgYuG7lSBzdW5nIGPhuqduIGzhuqV5IHRow6ptIG5nb8OgaSBpZCwgdGVuOyBWw60gZOG7pSAsbWFcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBUZXh0Q29udHJvbFNjaGVtYSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBSZWZlcmVuY2VUZXh0Q29udHJvbFNjaGVtYSBleHRlbmRzIEZvcm1Db250cm9sQmFzZSB7XG4gICAgcGxhY2Vob2xkZXI/ID0gJyc7XG4gICAgc3VmZml4Pzogc3RyaW5nO1xuICAgIHByZWZpeD86IHN0cmluZztcblxuICAgIGJhc2VTZXJ2aWNlPzogQmFzZVNlcnZpY2UgfCBNYXN0ZXJEYXRhU2VydmljZTtcbiAgICBncm91cENvZGU/OiBzdHJpbmc7XG4gICAgdmFsdWVGaWVsZD8gPSAnaWQnO1xuICAgIGRpc3BsYXlGaWVsZD8gPSAndGVuJztcbiAgICBkYXRhU291cmNlPzogYW55W107XG4gICAgZnVuY0dldExhYmVsPzogKGl0ZW0pID0+IHN0cmluZztcblxuICAgIHBsdXNVcmw/OiBzdHJpbmc7XG4gICAgc29ydHM/OiBTb3J0W10gPSBbXTtcbiAgICBzb3J0RmllbGQ/ID0gJyc7XG4gICAgc29ydERpcj86IDEgfCAtMSA9IDE7XG4gICAgZmllbGRQbHVzPyA9ICcnOyAvLyBEYW5oIHPDoWNoIG5o4buvbmcgdHLGsOG7nW5nIGLhu5Ugc3VuZyBj4bqnbiBs4bqleSB0aMOqbSBuZ2/DoGkgaWQsIHRlbjsgVsOtIGThu6UgLG1hXG4gICAgY29uc3RydWN0b3IoaW5pdD86IFJlZmVyZW5jZVRleHRDb250cm9sU2NoZW1hKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFRleHRDb250cm9sU2NoZW1hV2l0aFNlcnZpY2UgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2VXaXRoU2VydmljZSB7XG4gICAgcGxhY2Vob2xkZXI/ID0gJyc7XG4gICAgZGF0YUZvcm1hdD86ICd0ZXh0JyB8ICdudW1iZXInIHwgJ2VtYWlsJyB8ICdwaG9uZScgfCAnZmF4JyB8ICdtb25leScgfCAnbW9uZXlpbnQnIHwgJ2Ftb3VudCcgPSAndGV4dCc7XG4gICAgbWF4TGVuZ3RoPzogbnVtYmVyO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IFRleHRDb250cm9sU2NoZW1hV2l0aFNlcnZpY2UpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgTWFza0NvbnRyb2xTY2hlbWEgZXh0ZW5kcyBUZXh0Q29udHJvbFNjaGVtYSB7XG4gICAgbWFza1R5cGU/OiAnZGVjaW1hbCcgfCAnaW50JyA9ICdpbnQnO1xuICAgIGF1dG9Gb3JtYXQ/ID0gdHJ1ZTtcbiAgICBtaW4/ID0gMDtcbiAgICBtYXg/ID0gOTk5OTk5OTk5OTtcbiAgICBwcmVmaXg/ID0gJyc7XG4gICAgc3VmZml4PyA9ICcnO1xuICAgIGRlY2ltYWxQbGFjZXM/ID0gMjtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBNYXNrQ29udHJvbFNjaGVtYSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBOdW1iZXJSYW5nZUNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBUZXh0Q29udHJvbFNjaGVtYSB7XG4gICAgbWFza1R5cGU/OiAnZGVjaW1hbCcgfCAnaW50JztcbiAgICBtaW4/ID0gMDtcbiAgICBtYXg/ID0gOTk5OTk5OTk5OTtcbiAgICBwcmVmaXg/ID0gJyc7XG4gICAgc3VmZml4PyA9ICcnO1xuICAgIGRlY2ltYWxQbGFjZXM/ID0gMjtcbiAgICAvLyBT4butIGThu6VuZyDEkeG7gyBraGFpIGLDoW8gb3BlcmF0b3IgY2hvIGNvbnRyb2wgdHJvbmcgcXVlcnktYnVpbGRlciB0aGF5IGNobyBjw6FjIG9wZXJhdG9yIG3hurdjIMSR4buLbmggxJHGsOG7o2MgdOG6oW8gdOG7qyBxdWVyeS1idWlsZGVyXG4gICAgb3BlcmF0b3JzPzogYW55W107XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogTnVtYmVyUmFuZ2VDb250cm9sU2NoZW1hKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIERhdGVUaW1lQ29udHJvbFNjaGVtYSBleHRlbmRzIEZvcm1Db250cm9sQmFzZSB7XG4gICAgYXBwZW5kVG8/ID0gJ2JvZHknO1xuICAgIHBhbmVsQ2xhc3M/ID0gJyc7XG4gICAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gICAgc2hvd0J1dHRvbkJhcj8gPSBmYWxzZTtcbiAgICBzaG93VGltZT8gPSBmYWxzZTtcbiAgICBzaG93SWNvbj8gPSB0cnVlO1xuICAgIGZvcm1hdD86ICdub3JtYWwnIHwgJ2Zyb21Ob3cnID0gJ25vcm1hbCc7XG4gICAgc2hvd09uRm9jdXM/ID0gdHJ1ZTtcbiAgICBtaW5EYXRlPzogRGF0ZSA9IG51bGw7XG4gICAgbWF4RGF0ZT86IERhdGUgPSBudWxsO1xuICAgIHRpbWVPbmx5PyA9IGZhbHNlO1xuICAgIGRhdGVGb3JtYXQ/ID0gJ2RkL21tL3l5JztcbiAgICB2aWV3PzogJ2RhdGUnIHwgJ21vbnRoJyA9ICdkYXRlJztcbiAgICB5ZWFyUmFuZ2U/OiBzdHJpbmcgPSAnMTk1MDoyMDUwJztcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBEYXRlVGltZUNvbnRyb2xTY2hlbWEpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF0aGlzLnBsYWNlaG9sZGVyKSB7XG4gICAgICAgICAgICB0aGlzLnBsYWNlaG9sZGVyID0gdGhpcy5zaG93VGltZSA/ICdkZC9NTS95eXl5IGhoOm1tJyA6ICdkZC9NTS95eXl5JztcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIERhdGVUaW1lUmFuZ2VDb250cm9sU2NoZW1hIGV4dGVuZHMgRGF0ZVRpbWVDb250cm9sU2NoZW1hIHtcbiAgICBzaG93SWNvbj8gPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBEYXRlVGltZUNvbnRyb2xTY2hlbWEpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgRW50aXR5UGlja2VyQ29udHJvbFNjaGVtYSBleHRlbmRzIEZvcm1Db250cm9sQmFzZVdpdGhTZXJ2aWNlIHtcblxuICAgIC8vICNQcm9wZXJ0eSBvdmVycmlkZVxuICAgIGJhc2VTZXJ2aWNlPzogQmFzZVNlcnZpY2U7XG4gICAgLy8gI0VuZCBwcm9wZXJ0eSBvdmVycmlkZVxuXG4gICAgcmV0dXJuVHlwZT86ICd2YWx1ZScgfCAnb2JqZWN0JyA9ICd2YWx1ZSc7XG5cbiAgICBtdWx0aXBsZT8gPSB0cnVlO1xuICAgIGxpbWl0PyA9IDEwMDA7XG4gICAgdGl0bGU/ID0gJyAnO1xuICAgIGNvbHVtbnM/OiBFbnRpdHlQaWNrZXJDb2x1bW5bXTtcbiAgICBmaWVsZFNlYXJjaFRleHQ/OiBzdHJpbmdbXSA9IFtdO1xuICAgIG9wZXJhdG9yRmllbGRTZWFyY2hUZXh0PzogT3BlcmF0b3IuY29udGFpbiB8IE9wZXJhdG9yLmVxdWFsID0gT3BlcmF0b3IuY29udGFpbjtcbiAgICBkYXRhSW5pdD86IGFueSA9IHt9O1xuICAgIGFkdmFuY2VTZWFyY2hNb2RlbD86IGFueSA9IHt9O1xuICAgIG9uU2VhcmNoRm9ybUluaXRpYWxpemVkPzogRnVuY3Rpb247XG4gICAgb25Gb3JtRXZlbnQ/OiBGdW5jdGlvbjtcbiAgICBvblNlbGVjdEVudGl0eT86IEZ1bmN0aW9uOyAvLyBu4bq/dSBmdW5jdGlvbiBraMOhYyBudWxsIHbDoCByZXR1cm4gdHJ1ZSBz4bq9IGNobyBwaMOpcCBt4bufIGRpYWxvZ1xuICAgIGFmdGVyQ29udGVudExlZnRJbml0PzogKGNydWRMaXN0OiBDcnVkTGlzdENvbXBvbmVudCkgPT4gdm9pZDsgLy8gU2F1IGtoaSBjw6FjIHRlbXBsYXRlIGNvbnRlbnQgaW5pdFxuICAgIGFmdGVyQ29udGVudFJpZ2h0SW5pdD86IChjcnVkTGlzdDogQ3J1ZExpc3RDb21wb25lbnQpID0+IHZvaWQ7IC8vIFNhdSBraGkgY8OhYyB0ZW1wbGF0ZSBjb250ZW50IGluaXRcbiAgICBhZnRlckdldERhdGE/OiAoc291cmNlczogYW55W10sIGVsZW1lbnQ6IEVudGl0eVBpY2tlckNvbXBvbmVudCkgPT4gdm9pZDtcbiAgICBhZnRlckdldERhdGFVblBpY2tlZD86IChzb3VyY2VzOiBhbnlbXSwgZWxlbWVudDogRW50aXR5UGlja2VyRGF0YUNvbXBvbmVudCB8IEVudGl0eVBpY2tlclRyZWVEYXRhQ29tcG9uZW50KSA9PiB2b2lkO1xuICAgIGFmdGVyR2V0RGF0YVBpY2tlZD86IChzb3VyY2VzOiBhbnlbXSwgZWxlbWVudDogRW50aXR5UGlja2VyU2VsZWN0ZWRDb21wb25lbnQgfCBFbnRpdHlQaWNrZXJUcmVlU2VsZWN0ZWRDb21wb25lbnQpID0+IHZvaWQ7XG4gICAgb25WaWV3Q2xpY2s/OiAocm93RGF0YTogYW55LCBlbGVtZW50OiBFbnRpdHlQaWNrZXJDb21wb25lbnQpID0+IHZvaWQ7XG5cbiAgICAvLyBDw7Mgc+G7rSBk4bulbmcgcGx1c1VybCDhu58gbcOgbiBow6xuaCBjaMOtbmggRW50aXR5UGlja2VyIGhheSBraMO0bmcuXG4gICAgdXNlRGVmYXVsdFBsdXNsVXJsSW5MaXN0PyA9IGZhbHNlO1xuXG4gICAgLy8gQ8OzIHPhu60gZOG7pW5nIGRlZmF1bHRGaWx0ZXIga2hpIHTDrG0ga2nhur9tIGRhbmggc8OhY2gg4bufIG3DoG4gaMOsbmggY2jDrW5oIEVudGl0eVBpY2tlci5cbiAgICB1c2VEZWZhdWx0RmlsdGVySW5MaXN0PyA9IGZhbHNlO1xuXG4gICAgaGlkZGVuQWR2YW5jZVNlYXJjaD8gPSBmYWxzZTtcbiAgICByZWFkT25seT8gPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBFbnRpdHlQaWNrZXJDb250cm9sU2NoZW1hKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEF1dG9Db21wbGV0ZVBpY2tlckNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBFbnRpdHlQaWNrZXJDb250cm9sU2NoZW1hIHtcbiAgICBzcGxpdGNoYXI/OiBzdHJpbmc7XG4gICAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gICAgZGF0YVR5cGU/OiBFbnVtQ29udHJvbFBpY2tlclR5cGUgPSBFbnVtQ29udHJvbFBpY2tlclR5cGUuVVNFUjtcbiAgICBhcHBlbmRUbz8gPSAnYm9keSc7XG4gICAgbW9kaWZ5SW5pdFNlYXJjaERhdGE/OiBGdW5jdGlvbjsgLy8gU+G7rSBk4bulbmcgxJHhu4MgbW9kaWZ5IGRhdGEgY+G7p2EgcGjhuqduIHNlYXJjaCwgdGjGsOG7nW5nIMSR4buDIHNldCBpbml0IGRhdGEgZHluYW1pYyB0aGVvIG5odSBj4bqndVxuICAgIGNhbGxCYWNrPzogeyBba2V5OiBzdHJpbmddOiBGdW5jdGlvbjsgfTtcbiAgICBvblJlYWR5PzogKGV2dDogRXZlbnREYXRhKSA9PiB2b2lkO1xuICAgIG9uQWRqdXN0ZWRWYWx1ZT86IEZ1bmN0aW9uO1xuICAgIG1vZGlmeUNvbnRyb2w/OiBGdW5jdGlvbjsgLy8gU+G7rSBk4bulbmcgxJHhu4MgbW9kaWZ5IHNjaGVtYSBiYXNlXG4gICAgbmVlZENsb25lPyA9IGZhbHNlOyAvLyBT4butIGThu6VuZyB0cm9uZyB0YWJsZSBzY2hlbWEsIGtoaSBkYXRhc291cmNlIGPhu6dhIG3hu5l0IGPhu5l0IHRyw6puIG3hu5dpIGTDsm5nIGzDoCBraMOhYyBuaGF1IGPhuqduIHNldCBuZWVkQ2xvbmUgPSB0cnVlXFxcbiAgICBpc0NoZWNrV3JpdGVWYWx1ZT8gPSBmYWxzZTtcbiAgICBhZnRlckdldERhdGFEcm9wZG93bj86IChzb3VyY2VzOiBhbnlbXSwgZWxlbWVudDogQXV0b0NvbXBsZXRlUGlja2VyQ29tcG9uZW50KSA9PiB2b2lkO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IEF1dG9Db21wbGV0ZVBpY2tlckNvbnRyb2xTY2hlbWEpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgV3JhcFBpY2tlckNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBBdXRvQ29tcGxldGVQaWNrZXJDb250cm9sU2NoZW1hIHtcbiAgICBkYXRhVHlwZT86IEVudW1Db250cm9sUGlja2VyVHlwZSA9IEVudW1Db250cm9sUGlja2VyVHlwZS5VU0VSO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IFdyYXBQaWNrZXJDb250cm9sU2NoZW1hKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEN1c3RvbUNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2Uge1xuICAgIHRlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PjtcbiAgICBwbGFjZWhvbGRlcj86IHN0cmluZztcbiAgICAvLyBT4butIGThu6VuZyDEkeG7gyBraGFpIGLDoW8gb3BlcmF0b3IgY2hvIGNvbnRyb2wgdHJvbmcgcXVlcnktYnVpbGRlciB0aGF5IGNobyBjw6FjIG9wZXJhdG9yIG3hurdjIMSR4buLbmggxJHGsOG7o2MgdOG6oW8gdOG7qyBxdWVyeS1idWlsZGVyXG4gICAgb3BlcmF0b3JzPzogYW55W107XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogQ3VzdG9tQ29udHJvbFNjaGVtYSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBDb2xvclBpY2tlckNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2Uge1xuICAgIGVuYWJsZUNhY2hpbmc/ID0gdHJ1ZTtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBDb2xvclBpY2tlckNvbnRyb2xTY2hlbWEpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5cbmV4cG9ydCBjbGFzcyBTcGFuQ29udHJvbFNjaGVtYSBleHRlbmRzIEZvcm1Db250cm9sQmFzZSB7XG4gICAgc291cmNlRmllbGQ/OiBzdHJpbmc7XG4gICAgaXNodG1sPyA9IGZhbHNlO1xuICAgIGVkaXRhYmxlPyA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IFNwYW5Db250cm9sU2NoZW1hKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIENvbG9yQ29udHJvbFNjaGVtYSBleHRlbmRzIEZvcm1Db250cm9sQmFzZSB7XG4gICAgc291cmNlRmllbGQ/OiBzdHJpbmc7XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogQ29sb3JDb250cm9sU2NoZW1hKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEtleVZhbHVlQ29udHJvbFNjaGVtYSBleHRlbmRzIEZvcm1Db250cm9sQmFzZSB7XG4gICAgY29uc3RydWN0b3IoaW5pdD86IEtleVZhbHVlQ29udHJvbFNjaGVtYSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBJbWFnZVVwbG9hZGVyQ29udHJvbFNjaGVtYSBleHRlbmRzIEZvcm1Db250cm9sQmFzZSB7XG4gICAgaXNBdmF0YXI/OiBib29sZWFuID0gZmFsc2U7XG4gICAgaXNWaWRlbz86IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBtdWx0aXBsZT86IGJvb2xlYW4gPSB0cnVlO1xuICAgIGNob29zZUxhYmVsPzogc3RyaW5nID0gJ0No4buNbiDhuqNuaCc7XG4gICAgbG9hZEJ5RW50aXR5S2V5PzogYm9vbGVhbiA9IGZhbHNlO1xuICAgIGVudGl0eUtleT86IHN0cmluZztcbiAgICB0ZW1wbGF0ZUl0ZW0/OiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIHRlbXBsYXRlSXRlbXM/OiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IEltYWdlVXBsb2FkZXJDb250cm9sU2NoZW1hKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEZpbGVNYW5hZ2VyQ29udHJvbFNjaGVtYSBleHRlbmRzIEZvcm1Db250cm9sQmFzZSB7XG4gICAgLy8gZW1pdCBldmVudCBraGkgY2jhu41uIG3hu5l0IHJvdyB0cm9uZyBmaWxlIG1hbmFnZXJcbiAgICBvblNlbGVjdGVkPzogRnVuY3Rpb24gPSAoKSA9PiB7XG4gICAgfTtcbiAgICBtZFdpZHRoPyA9IDEyO1xuICAgIC8qKlxuICAgICAqIMSQ4buLbmggZOG6oW5nIGZpbGUgY29udHJvbCBz4bq9IG5o4bqtbiwgZOG6oW5nIGNodeG7l2kgY8OhY2ggbmhhdSBi4bufaSBk4bqldSAnLCdcbiAgICAgKiBz4bq9IG92ZXJyaWRlIGFjY2VwdEZpbGVUeXBlcy5cbiAgICAgKiBWRDogJy5kb2MsLmRvY3gsLnBkZidcbiAgICAgKi9cbiAgICBhY2NlcHQ/OiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogRmxhZyBkZSBiaWV0IGZpbGUgdXBsb2FkIG5oYW4gbmh1bmcgbG9haSBmaWxlIG5hby5cbiAgICAgKiBWRDogRmlsZVR5cGVGbGFnLkFVRElPIHwgRmlsZVR5cGVGbGFnLlZJREVPXG4gICAgICovXG4gICAgYWNjZXB0RmlsZVR5cGVzPzogRmlsZVR5cGVGbGFnID0gRmlsZVR5cGVGbGFnLlZJREVPIHwgRmlsZVR5cGVGbGFnLklNQUdFIHwgRmlsZVR5cGVGbGFnLkRPQyB8IEZpbGVUeXBlRmxhZy5BVURJTyB8IEZpbGVUeXBlRmxhZy5DT01QUkVTU0VEO1xuICAgIG1heEZpbGVTaXplPyA9IDEwMDAwMDAwMDtcbiAgICBpbnZhbGlkRmlsZVNpemVNZXNzYWdlU3VtbWFyeT8gPSAnezB9OiBRdcOhIGR1bmcgbMaw4bujbmcgZmlsZSBjaG8gcGjDqXAsICc7XG4gICAgaW52YWxpZEZpbGVTaXplTWVzc2FnZURldGFpbD8gPSAnZHVuZyBsxrDhu6NuZyB04buRaSDEkWEgbMOgIHswfS4nO1xuICAgIGludmFsaWRGaWxlVHlwZU1lc3NhZ2VTdW1tYXJ5PyA9ICd7MH06IEtow7RuZyDEkcO6bmcgxJHhu4tuaCBk4bqhbmcgZmlsZSwgJztcbiAgICBpbnZhbGlkRmlsZVR5cGVNZXNzYWdlRGV0YWlsPyA9ICfEkeG7i25oIGThuqFuZyBmaWxlIGNobyBwaMOpcDogezB9Lic7XG4gICAgaW52YWxpZEZpbGVMaW1pdE1lc3NhZ2VTdW1tYXJ5PyA9ICdRdcOhIHPhu5EgbMaw4bujbmcgZmlsZSBjaG8gcGjDqXAsICc7XG4gICAgaW52YWxpZEZpbGVMaW1pdE1lc3NhZ2VEZXRhaWw/ID0gJ3Thu5FpIMSRYSB7MH0gZmlsZS4nO1xuICAgIG1vZGU/OiBGaWxlTWFuYWdlck1vZGUgfCBGaWxlVXBsb2FkTW9kZSA9IEZpbGVNYW5hZ2VyTW9kZS5tdWx0aXBsZTtcbiAgICBsYXlvdXQ/OiBFbnVtRmlsZUxheW91dCA9IEVudW1GaWxlTGF5b3V0LkxJU1Q7XG4gICAgcmVhZG9ubHk/ID0gZmFsc2U7XG4gICAgaGlkZGVuUGFnZVNldHRpbmc/ID0gZmFsc2U7XG5cbiAgICAvLyBTZXJ2aWNlIGTDuW5nIMSR4buDIGzhuqV5IGRhdGFzb3VyY2UgY+G7p2Egbmhp4buBdSBjb250cm9sIG3hu5l0IGzhuqduLlxuICAgIGZpbGVEYXRhU2VydmljZT86IEZpbGVEYXRhU2VydmljZTtcblxuICAgIC8vIELhu5kgMyBrZXkgxJHhu4MgbOG6pXkgdGjGsCBt4bulYyBn4buRYy5cbiAgICBzZXJ2aWNlQ29kZT86IHN0cmluZztcbiAgICBlbnRpdHk/OiBzdHJpbmc7XG4gICAgZW50aXR5S2V5Pzogc3RyaW5nO1xuICAgIC8vIFRyxrDhu51uZyBo4bujcCDhu58gdHJvbmcgZm9ybSwgZMO5bmcgdHLGsOG7nW5nIG7DoHkgxJHhu4MgbOG6pXlcbiAgICAvLyBlbnRpdHlLZXkgdOG7qyBtb2RlbC5kYXRhIHRoYXkgdsOsIHRydXnhu4FuIHbDoG8gZW50aXR5S2V5XG4gICAgZW50aXR5S2V5cz86IHN0cmluZ1tdO1xuICAgIGVudGl0eUtleUZpZWxkPyA9ICdpZCc7XG4gICAgcm9vdEZvbGRlcklkPzogc3RyaW5nOyAvLyBjaG8gdHLGsOG7nW5nIGjhu6NwIHThuqFvIGZvbGRlciBiw6puIG5nb8OgaSBjb21wb25lbnRcblxuICAgIC8vIFTDqm4gdGjGsCBt4bulYyBn4buRYyBraGkgaGnhu4NuIHRo4buLIHRyw6puIGJyZWFkY3J1bWJzLlxuICAgIHJvb3RGb2xkZXJOYW1lPzogc3RyaW5nO1xuXG4gICAgZGF0YUt5U29Eb25WaT86IEZ1bmN0aW9uO1xuXG4gICAgaW5UYWlMaWV1PyA9IGZhbHNlO1xuICAgIGluVGFpTGlldUNodW5nPyA9IGZhbHNlO1xuICAgIGNvcHlUb0ZvbGRlcklkPyA9ICcnO1xuICAgIG11bHRpcGxlPyA9IHRydWU7XG4gICAgdXBsb2FkT25seT8gPSBmYWxzZTtcbiAgICB1c2VCcmVhZGNydW1icz8gPSB0cnVlO1xuICAgIHVzZVNpZ25hdHVyZT8gPSB0cnVlO1xuICAgIGZpbGVQaWNrZXJTZXR0aW5nPzogRmlsZVBpY2tlclNldHRpbmc7XG4gICAgaXNTaG93SW1hZ2VQcmV2aWV3PzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgZnVuU2V0QmVmb3JlQ29udGV4dE1lbnU/OiAocm93RGF0YSkgPT4gUHJvbWlzZTxhbnlbXT47XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogRmlsZU1hbmFnZXJDb250cm9sU2NoZW1hKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEZpbGVNYW5hZ2VyTmV3Q29udHJvbFNjaGVtYSBleHRlbmRzIEZpbGVNYW5hZ2VyQ29udHJvbFNjaGVtYSB7XG4gICAgZmlsZUVuZHBvaW50S2V5Pzogc3RyaW5nO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IEZpbGVNYW5hZ2VyTmV3Q29udHJvbFNjaGVtYSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBGaWxlVXBsb2FkQ29udHJvbFNjaGVtYSBleHRlbmRzIEZpbGVNYW5hZ2VyQ29udHJvbFNjaGVtYSB7XG4gICAgbW9kZT8gPSBGaWxlVXBsb2FkTW9kZS51c2luZ1NlcnZpY2VGaWxlO1xuICAgIG1kV2lkdGg/ID0gNjtcbiAgICBzaGFyZWRGb2xkZXJUeXBlPzogU2hhcmVkRm9sZGVyVHlwZSA9IFNoYXJlZEZvbGRlclR5cGUuVGVtcHQ7XG5cbiAgICBoaWRkZW5CdXR0b25zPyA9IGZhbHNlO1xuICAgIGRpc2FibGVkPyA9IGZhbHNlO1xuICAgIHJlYWRvbmx5PyA9IGZhbHNlO1xuICAgIGF1dG9TYXZlZD8gPSB0cnVlO1xuXG4gICAgZW5hYmxlU2Nhbj8gPSBmYWxzZTtcbiAgICBleHRyYWN0WmlwRmlsZT8gPSBmYWxzZTtcbiAgICBlbmFibGVEcml2ZUZpbGU/ID0gZmFsc2U7XG4gICAgdXNlU2lnbmF0dXJlPyA9IGZhbHNlO1xuXG4gICAgc2hvd0Rvd25sb2FkRmlsZT8gPSB0cnVlO1xuICAgIHNob3dEZWxldGVGaWxlPyA9IHRydWU7XG4gICAgc2hvd1ByaW50RmlsZT8gPSB0cnVlO1xuICAgIG1heEZpbGVTaXplPyA9IDEwMDAwMDAwMDA7IC8vIDEwMDAgTUJcbiAgICBpbnZhbGlkRmlsZVNpemVNZXNzYWdlU3VtbWFyeT8gPSAnezB9OiBRdcOhIGR1bmcgbMaw4bujbmcgZmlsZSBjaG8gcGjDqXAsICc7XG4gICAgaW52YWxpZEZpbGVTaXplTWVzc2FnZURldGFpbD8gPSAnZHVuZyBsxrDhu6NuZyB04buRaSDEkWEgbMOgIHswfS4nO1xuICAgIGludmFsaWRGaWxlVHlwZU1lc3NhZ2VTdW1tYXJ5PyA9ICd7MH06IEtow7RuZyDEkcO6bmcgxJHhu4tuaCBk4bqhbmcgZmlsZSwgJztcbiAgICBpbnZhbGlkRmlsZVR5cGVNZXNzYWdlRGV0YWlsPyA9ICfEkeG7i25oIGThuqFuZyBmaWxlIGNobyBwaMOpcDogezB9Lic7XG4gICAgaW52YWxpZEZpbGVMaW1pdE1lc3NhZ2VTdW1tYXJ5PyA9ICdRdcOhIHPhu5EgbMaw4bujbmcgZmlsZSBjaG8gcGjDqXAsICc7XG4gICAgaW52YWxpZEZpbGVMaW1pdE1lc3NhZ2VEZXRhaWw/ID0gJ3Thu5FpIMSRYSB7MH0gZmlsZS4nO1xuXG4gICAgb25SZW1vdmU/OiBGdW5jdGlvbjtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBGaWxlVXBsb2FkQ29udHJvbFNjaGVtYSkge1xuICAgICAgICBzdXBlcigpO1xuXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFN3aXRjaENvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2Uge1xuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBTd2l0Y2hDb250cm9sU2NoZW1hKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIENoZWNrYm94Q29udHJvbFNjaGVtYSBleHRlbmRzIEZvcm1Db250cm9sQmFzZSB7XG4gICAgZW5hYmxlQ2FjaGluZz8gPSB0cnVlO1xuICAgIGhpZGRlbkxhYmVsPyA9IGZhbHNlOyAvLyBTZXQgPSB0cnVlIGNo4bunIHnhur91IGtoaSBkw7luZyB0cm9uZyB0YWJsZSBzY2hlbWEgxJHhu4Mg4bqpbiBsYWJlbCDEkWksIHbDrCBsYWJlbCDEkcOjIGPDsyB0csOqbiB0acOqdSDEkeG7gSBj4buZdFxuICAgIGRlZmF1bHRWYWx1ZT8gPSBmYWxzZTtcbiAgICBkaXNwbGF5TGFiZWw/ID0gJyc7XG4gICAgaXNDdXN0b21MYWJlbD8gPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBDaGVja2JveENvbnRyb2xTY2hlbWEpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQnV0dG9uQ29udHJvbFNjaGVtYSBleHRlbmRzIEZvcm1TY2hlbWFCYXNlIHtcbiAgICBzaG93TGFiZWw/ID0gZmFsc2U7XG4gICAgYnRDbGFzcz8gPSAncC1idXR0b24tdGV4dCc7XG4gICAgaWNvbj87XG4gICAgYnRTdHlsZT86IGFueSA9IHsgd2lkdGg6ICdhdXRvJyB9O1xuICAgIG9uQ2xpY2s/OiBGdW5jdGlvbjtcbiAgICBidXR0b25UZXh0Pzogc3RyaW5nO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IEJ1dHRvbkNvbnRyb2xTY2hlbWEpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuYnV0dG9uVGV4dCA9IHRoaXMubGFiZWw7XG4gICAgICAgIHRoaXMubGFiZWwgPSAnJztcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBUZW1wbGF0ZUNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtU2NoZW1hQmFzZSB7XG4gICAgdGVtcGxhdGU6IGFueTtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBUZW1wbGF0ZUNvbnRyb2xTY2hlbWEpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgVGV4dEFyZWFDb250cm9sU2NoZW1hIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlIHtcbiAgICByb3dzPyA9IDU7XG4gICAgcGxhY2Vob2xkZXI/ID0gJyc7XG4gICAgbWF4TGVuZ3RoPzogbnVtYmVyO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IFRleHRBcmVhQ29udHJvbFNjaGVtYSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBVc2VyUGlja2VyQ29udHJvbFNjaGVtYSBleHRlbmRzIEZvcm1Db250cm9sQmFzZSB7XG4gICAgYXBwZW5kVG8/ID0gJ2JvZHknO1xuICAgIG11bHRpcGxlPyA9IHRydWU7XG4gICAgaXNEeW5hbWljRm9ybT86IGJvb2xlYW4gPSBmYWxzZTtcbiAgICB1c2VyVHlwZT8gPSBVc2VyVHlwZS5DYW5CbztcbiAgICBsaW1pdD8gPSAyMDsgLy8gR2nhu5tpIGjhuqFuIHPhu5EgbmfGsOG7nWkgZMO5bmcgdOG7kWkgxJFhIMSRxrDhu6NjIHBpY2tcbiAgICB0aXRsZT8gPSAnQ2jhu41uIG5nxrDhu51pIGTDuW5nJztcbiAgICBkZWZhdWx0RmlsdGVycz86IEZpbHRlcltdIHwgRnVuY3Rpb24gfCBQcm9taXNlPEZpbHRlcltdPjtcbiAgICBmaWx0ZXJXaGlsZVByb2Nlc3M/OiBGaWx0ZXJbXSB8IEZ1bmN0aW9uIHwgUHJvbWlzZTxGaWx0ZXJbXT47XG4gICAgZW5hYmxlQ2FjaGluZz8gPSB0cnVlO1xuICAgIHBhcmVudE9yZ0NvZGU/OiBzdHJpbmc7XG4gICAgcGxhY2Vob2xkZXI/ID0gJyc7XG4gICAgbGF6eUxvYWRPcmdhbml6YXRpb24/ID0gZmFsc2U7XG4gICAgdmFsdWVGaWVsZD8gPSAnaWQnO1xuICAgIGRpc3BsYXlGaWVsZD8gPSAnZnVsbE5hbWVOZXcnO1xuICAgIGZpZWxkUGx1cz8gPSAnJztcbiAgICBwbHVzVXJsPzogc3RyaW5nO1xuICAgIHJldHVyblR5cGU/OiAndmFsdWUnIHwgJ29iamVjdCcgPSAndmFsdWUnO1xuICAgIHBhZ2VTaXplPzogbnVtYmVyO1xuICAgIGdldERpc3BsYXlOYW1lPzogZmFsc2U7XG4gICAgZmllbGRTZWFyY2hUZXh0Pzogc3RyaW5nW10gPSBbXTtcbiAgICBvcGVyYXRvckZpZWxkU2VhcmNoVGV4dD86IE9wZXJhdG9yLmNvbnRhaW4gfCBPcGVyYXRvci5lcXVhbCA9IE9wZXJhdG9yLmNvbnRhaW47XG4gICAgY29sdW1ucz86IEVudGl0eVBpY2tlckNvbHVtbltdO1xuICAgIHVzZVBpY2tlcj8gPSB0cnVlO1xuICAgIGhpZGRlbkNvbHM/OiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgb25SZWFkeT86IChldnQ6IEV2ZW50RGF0YSkgPT4gdm9pZDtcbiAgICBmdW5jR2V0TGFiZWw/OiAoaXRlbSkgPT4gc3RyaW5nO1xuICAgIGZ1bmNDb21wYXJlPzogKGl0ZW06IGFueSwgdmFsdWUpID0+IGJvb2xlYW4gPSAoaXRlbSwgdmFsdWUpID0+IGl0ZW1bdGhpcy52YWx1ZUZpZWxkXSA9PSB2YWx1ZTtcbiAgICBhZnRlckNvbnRlbnRMZWZ0SW5pdD86IChjcnVkTGlzdDogQ3J1ZExpc3RDb21wb25lbnQpID0+IHZvaWQ7IC8vIFNhdSBraGkgY8OhYyB0ZW1wbGF0ZSBjb250ZW50IGluaXRcbiAgICBhZnRlckNvbnRlbnRSaWdodEluaXQ/OiAoY3J1ZExpc3Q6IENydWRMaXN0Q29tcG9uZW50KSA9PiB2b2lkOyAvLyBTYXUga2hpIGPDoWMgdGVtcGxhdGUgY29udGVudCBpbml0XG4gICAgYWZ0ZXJHZXREYXRhPzogKHNvdXJjZXM6IGFueVtdLCBlbGVtZW50OiBFbnRpdHlQaWNrZXJDb21wb25lbnQpID0+IHZvaWQ7XG4gICAgYWZ0ZXJHZXREYXRhVW5QaWNrZWQ/OiAoc291cmNlczogYW55W10sIGVsZW1lbnQ6IEVudGl0eVBpY2tlckRhdGFDb21wb25lbnQgfCBFbnRpdHlQaWNrZXJUcmVlRGF0YUNvbXBvbmVudCkgPT4gdm9pZDtcbiAgICBhZnRlckdldERhdGFQaWNrZWQ/OiAoc291cmNlczogYW55W10sIGVsZW1lbnQ6IEVudGl0eVBpY2tlclNlbGVjdGVkQ29tcG9uZW50IHwgRW50aXR5UGlja2VyVHJlZVNlbGVjdGVkQ29tcG9uZW50KSA9PiB2b2lkO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IFVzZXJQaWNrZXJDb250cm9sU2NoZW1hKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIENvQ2F1VG9DaHVjUGlja2VyQ29udHJvbFNjaGVtYSBleHRlbmRzIEZvcm1Db250cm9sQmFzZSB7XG4gICAgYXBwZW5kVG8/ID0gJ2JvZHknO1xuICAgIG11bHRpcGxlPyA9IHRydWU7XG4gICAgbGltaXQ/ID0gMjA7IC8vIEdp4bubaSBo4bqhbiBz4buRIGLhuqNuIGdoaSB04buRaSDEkWEgxJHGsOG7o2MgcGlja1xuICAgIHRpdGxlPyA9ICdDaOG7jW4gxJHGoW4gduG7iyc7XG4gICAgcGxhY2Vob2xkZXI/OiBzdHJpbmcgPSAnJztcbiAgICBkZWZhdWx0RmlsdGVycz86IEZpbHRlcltdIHwgRnVuY3Rpb24gfCBQcm9taXNlPEZpbHRlcltdPjtcbiAgICBlbmFibGVDYWNoaW5nPyA9IHRydWU7XG4gICAgdmFsdWVGaWVsZD8gPSAnaWQnO1xuICAgIGRpc3BsYXlGaWVsZD8gPSAndGVuJztcbiAgICBmaWVsZFBsdXM/ID0gJyc7XG4gICAgcGx1c1VybD86IHN0cmluZztcbiAgICBpc1RyZWU/OiBib29sZWFuID0gZmFsc2U7XG4gICAgb25SZWFkeT86IChldnQ6IEV2ZW50RGF0YSkgPT4gdm9pZDtcbiAgICBmdW5jR2V0TGFiZWw/OiAoaXRlbSkgPT4gc3RyaW5nO1xuICAgIGZ1bmNDb21wYXJlPzogKGl0ZW06IGFueSwgdmFsdWUpID0+IGJvb2xlYW4gPSAoaXRlbSwgdmFsdWUpID0+IGl0ZW1bdGhpcy52YWx1ZUZpZWxkXSA9PSB2YWx1ZTtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBDb0NhdVRvQ2h1Y1BpY2tlckNvbnRyb2xTY2hlbWEpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ29DYXVUb0NodWNQaWNrZXJDb250cm9sU2NoZW1hTmV3IGV4dGVuZHMgQ29DYXVUb0NodWNQaWNrZXJDb250cm9sU2NoZW1hIHtcbiAgICBpc1RyZWU/OiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogQ29DYXVUb0NodWNQaWNrZXJDb250cm9sU2NoZW1hTmV3KSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIE9yZ2FuaXphdGlvblBpY2tlckNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2Uge1xuICAgIGZpbHRlcj8gPSB0cnVlO1xuICAgIG11bHRpcGxlPyA9IHRydWU7XG4gICAgcGFyZW50T3JnSWQ/OiBudW1iZXI7XG4gICAgcGFyZW50T3JnQ29kZT86IHN0cmluZztcbiAgICBlbmFibGVDYWNoaW5nPyA9IHRydWU7XG4gICAgaXNVc2luZ0lkPyA9IHRydWU7XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogT3JnYW5pemF0aW9uUGlja2VyQ29udHJvbFNjaGVtYSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBDb0NhdVRvQ2h1Y0NvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2Uge1xuICAgIGZpbHRlcj8gPSB0cnVlO1xuICAgIG11bHRpcGxlPyA9IHRydWU7XG4gICAgcGFyZW50T3JnSWQ/OiBudW1iZXI7XG4gICAgcGFyZW50T3JnQ29kZT86IHN0cmluZztcbiAgICBlbmFibGVDYWNoaW5nPyA9IHRydWU7XG4gICAgaXNVc2luZ0lkPyA9IHRydWU7XG4gICAgZGlzYWJsZWRQYXJlbnRJdGVtPyA9IHRydWU7XG4gICAgcm9vdFBhcmVudElkPzogc3RyaW5nID0gbnVsbDtcbiAgICBkaXNhYmxlZD8gPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBDb0NhdVRvQ2h1Y0NvbnRyb2xTY2hlbWEpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgRWRpdG9yQ29udHJvbFNjaGVtYSBleHRlbmRzIEZvcm1Db250cm9sQmFzZSB7XG4gICAgbW9kZT86ICdiYXNpYycgfCAnbWVkaXVtJyB8ICdmdWxsJyB8ICdzaW1wbGUnID0gJ2Jhc2ljJztcbiAgICBoZWlnaHQ/ID0gMjUwO1xuICAgIGluaXQ/OiBhbnk7XG4gICAgbGFuZ3VhZ2VDb2RlPzogJ3ZpJyB8ICdlbic7XG4gICAgcGxhY2Vob2xkZXI/OiBzdHJpbmcgPSAnJztcbiAgICBpc0NsZWFuSHRtbD8gPSBmYWxzZTtcbiAgICBrZWVwU3R5bGVzPyA9IHRydWU7XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogRWRpdG9yQ29udHJvbFNjaGVtYSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBEYXRhU291cmNlQ29udHJvbFNjaGVtYSBleHRlbmRzIEZvcm1Db250cm9sQmFzZVdpdGhTZXJ2aWNlIHtcbiAgICB2YWx1ZUZpZWxkPyA9ICdpZCc7XG4gICAgZGlzcGxheUZpZWxkPyA9ICd0ZW4nO1xuICAgIHJldHVyblR5cGU/OiAndmFsdWUnIHwgJ29iamVjdCcgPSAndmFsdWUnO1xuICAgIGRhdGFTb3VyY2U/OiBhbnkgfCBGdW5jdGlvbjtcbiAgICAvLyBT4butIGThu6VuZyDEkeG7gyBraGFpIGLDoW8gb3BlcmF0b3IgY2hvIGNvbnRyb2wgdHJvbmcgcXVlcnktYnVpbGRlciB0aGF5IGNobyBjw6FjIG9wZXJhdG9yIG3hurdjIMSR4buLbmggxJHGsOG7o2MgdOG6oW8gdOG7qyBxdWVyeS1idWlsZGVyXG4gICAgb3BlcmF0b3JzPzogYW55W107XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogRGF0YVNvdXJjZUNvbnRyb2xTY2hlbWEpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgRHJvcGRvd25Db250cm9sU2NoZW1hIGV4dGVuZHMgRGF0YVNvdXJjZUNvbnRyb2xTY2hlbWEge1xuICAgIGFwcGVuZFRvPyA9ICdib2R5JztcbiAgICBwYW5lbENsYXNzPyA9ICcnO1xuICAgIHBsYWNlaG9sZGVyPyA9ICdDaOG7jW4nO1xuICAgIHNlbGVjdGVkSXRlbXNMYWJlbD8gPSAnxJDDoyBjaOG7jW4gezB9IG3hu6VjJztcbiAgICBzZWxlY3RlZEFsbEl0ZW1MYWJlbD8gPSAnxJDDoyBjaOG7jW4gdOG6pXQgY+G6oyc7XG4gICAgc2hvd0NsZWFyPyA9IHRydWU7XG4gICAgZmlsdGVyPyA9IHRydWU7XG4gICAgbXVsdGlwbGU/ID0gZmFsc2U7XG4gICAgZ2VuZXJhdGVUb29sdGlwPzogKGl0ZW0pID0+IHN0cmluZztcbiAgICBtYXhTZWxlY3RlZExhYmVscz8gPSA1O1xuICAgIG1heEl0ZW1EaXNwbGF5PyA9IDUwO1xuICAgIHZpcnR1YWxTY3JvbGw/OiBib29sZWFuID0gZmFsc2U7XG4gICAgZml0UGFuZWw/OiBib29sZWFuID0gdHJ1ZTtcbiAgICBlbmFibGVDYWNoaW5nPyA9IHRydWU7XG4gICAgbmVlZENsb25lPyA9IGZhbHNlOyAvLyBT4butIGThu6VuZyB0cm9uZyB0YWJsZSBzY2hlbWEsIGtoaSBkYXRhc291cmNlIGPhu6dhIG3hu5l0IGPhu5l0IHRyw6puIG3hu5dpIGTDsm5nIGzDoCBraMOhYyBuaGF1IGPhuqduIHNldCBuZWVkQ2xvbmUgPSB0cnVlXG4gICAgdGVtcGxhdGVJdGVtPzogVGVtcGxhdGVSZWY8YW55PjtcbiAgICB0ZW1wbGF0ZVNlbGVjdGVkSXRlbT86IFRlbXBsYXRlUmVmPGFueT47XG4gICAgcXVpY2tBZGQ/ID0gZmFsc2U7XG4gICAgY29scz86IEZvcm1TY2hlbWFCYXNlW107XG4gICAgcXVpY2tBZGRUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPGFueT47XG4gICAgaW5pdERhdGE/OiBLZXlWYWx1ZVR5cGUgfCBGdW5jdGlvbiA9IHt9O1xuICAgIGRlZmF1bHRJbmRleD8gPSAtMTtcbiAgICBwb3B1cFNpemU/OiBQb3B1cFNpemUgPSBuZXcgUG9wdXBTaXplKHsgd2lkdGg6IDc1MCwgaGVpZ2h0OiA0MDAgfSk7XG5cbiAgICBsb2FkSW5GaXJzdERpc3BsYXk/ID0gdHJ1ZTtcblxuICAgIGF1dG9HZXREYXRhPyA9IHRydWU7XG5cbiAgICB2YWx1ZUZpZWxkPyA9ICdpZCc7XG4gICAgZGlzcGxheUZpZWxkPyA9ICd0ZW4nO1xuXG4gICAgYXV0b0Rpc3BsYXlGaXJzdD8gPSBmYWxzZTtcbiAgICBub3RJbkNydWRGb3JtPyA9IGZhbHNlO1xuICAgIHNlYXJjaE11bHRpcGxlPyA9IHRydWU7XG4gICAgZGlzYWJsZURpc3BsYXlGaWVsZFNlcnZlclNlYXJjaD8gPSBmYWxzZTtcblxuICAgIGxvYWRPbkluaXQ/ID0gZmFsc2U7XG4gICAgYWxsb3dMb2FkRGF0YVdoZW5QYXJlbnROdWxsPyA9IGZhbHNlO1xuXG4gICAgZGlzYWJsZWRQYXJlbnRJdGVtPyA9IHRydWU7XG4gICAgb25BZGp1c3RlZFZhbHVlPzogRnVuY3Rpb247XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogRHJvcGRvd25Db250cm9sU2NoZW1hKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEFkZHJlc3NDb250cm9sU2NoZW1hIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlIHtcbiAgICBoaWRlRGV0YWlsPyA9IHRydWU7XG4gICAgaGlkZU5vPyA9IGZhbHNlO1xuICAgIGhpZGVTdHJlZXQ/ID0gZmFsc2U7XG4gICAgaGlkZVdhcmQ/ID0gZmFsc2U7XG4gICAgaGlkZURpc3RyaWN0PyA9IGZhbHNlO1xuICAgIHJlcXVpcmVkTm8/ID0gdHJ1ZTtcbiAgICByZXF1aXJlZERldGFpbD8gPSB0cnVlO1xuICAgIHJlcXVpcmVkU3RyZWV0PyA9IHRydWU7XG4gICAgcmVxdWlyZWRXYXJkPyA9IHRydWU7XG4gICAgcmVxdWlyZWREaXN0cmljdD8gPSB0cnVlO1xuICAgIHJlcXVpcmVkUHJvdmluY2U/ID0gdHJ1ZTtcbiAgICBsYWJlbE5vPyA9ICdT4buRIG5ow6AnO1xuICAgIGxhYmVsU3RyZWV0PyA9ICfEkMaw4budbmcnO1xuICAgIGxhYmVsRGV0YWlsPyA9ICdDaGkgdGnhur90JztcbiAgICBsYWJlbFdhcmQ/ID0gJ1BoxrDhu51uZy9Yw6MnO1xuICAgIGxhYmVsRGlzdHJpY3Q/ID0gJ1F14bqtbi9IdXnhu4duJztcbiAgICBsYWJlbFByb3ZpbmNlPyA9ICdU4buJbmgvVGjDoG5oIHBo4buRJztcbiAgICB3YXJkVG9Qcm92aW5jZT8gPSB0cnVlO1xuICAgIG5vV2lkdGg/ID0gMTtcbiAgICBkZXRhaWxXaWR0aD8gPSA0O1xuICAgIHN0cmVldFdpZHRoPyA9IDM7XG4gICAgd2FyZFdpZHRoPyA9IDM7XG4gICAgZGlzdHJpY3RXaWR0aD8gPSAyO1xuICAgIHByb3ZpbmNlV2lkdGg/ID0gMztcbiAgICBzaG93SW5Cb3g/ID0gZmFsc2U7XG5cbiAgICBoaWRlSG9sZGVyPyA9IHRydWU7XG4gICAgYmFzZVNlcnZpY2U/OiBCYXNlU2VydmljZTtcbiAgICBjYWxsYmFja0RhdGFQcm92aW5jZUZpbmlzaD86IChldnQ6IEV2ZW50RGF0YSkgPT4gdm9pZDtcbiAgICBjYWxsYmFja0RhdGFEaXN0cmljdEZpbmlzaD86IChldnQ6IEV2ZW50RGF0YSkgPT4gdm9pZDtcbiAgICBjYWxsYmFja0RhdGFXYXJkRmluaXNoPzogKGV2dDogRXZlbnREYXRhKSA9PiB2b2lkO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IEFkZHJlc3NDb250cm9sU2NoZW1hKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydCBjbGFzcyBBZGRyZXNzTmV3Q29udHJvbFNjaGVtYSBleHRlbmRzIEFkZHJlc3NDb250cm9sU2NoZW1hIHtcbiAgICAvLyBT4butIGThu6VuZyBjaG8gYWRkcmVzcyBt4bubaVxuICAgIHZlcnNpb24/ID0gLTE7XG4gICAgY29uc3RydWN0b3IoaW5pdD86IEFkZHJlc3NOZXdDb250cm9sU2NoZW1hKSB7XG4gICAgICAgIHN1cGVyKGluaXQpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5leHBvcnQgY2xhc3MgVmFuQmFuUGlja2VyQ29udHJvbFNjaGVtYSBleHRlbmRzIEZvcm1Db250cm9sQmFzZSB7XG4gICAgbWRXaWR0aD8gPSAxMjtcbiAgICB1c2VWYkRlbj8gPSB0cnVlO1xuICAgIHVzZVZiRGk/ID0gdHJ1ZTtcbiAgICByZWFkT25seT86IGJvb2xlYW4gPSBmYWxzZTtcbiAgICByZWFkb25seT86IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBsb2FpVmFuQmFuPzogRW51bUxvYWlWYW5CYW5CYXNlID0gRW51bUxvYWlWYW5CYW5CYXNlLlZCX0RJO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IFZhbkJhblBpY2tlckNvbnRyb2xTY2hlbWEpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ29uZ1ZpZWNQaWNrZXJDb250cm9sU2NoZW1hIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlIHtcbiAgICBtZFdpZHRoPyA9IDEyO1xuICAgIHNlcnZpY2VDb2RlPzogc3RyaW5nO1xuICAgIGVudGl0eT86IHN0cmluZztcbiAgICBlbnRpdHlLZXk/OiBzdHJpbmc7XG4gICAgc3RhdGU/OiBhbnkgPSB7fTtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBDb25nVmllY1BpY2tlckNvbnRyb2xTY2hlbWEpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgUGVyY2VudENvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2Uge1xuICAgIG1kV2lkdGg/ID0gMTI7XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogUGVyY2VudENvbnRyb2xTY2hlbWEpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ2hpcHNDb250cm9sU2NoZW1hIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlIHtcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogQ2hpcHNDb250cm9sU2NoZW1hKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEF1dG9Db21wbGV0ZUNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBEYXRhU291cmNlQ29udHJvbFNjaGVtYSB7XG4gICAgcGxhY2Vob2xkZXI/ID0gJyc7XG4gICAgbXVsdGlwbGU/ID0gZmFsc2U7XG4gICAgbWluTGVuZ3RoRmlsdGVyPyA9IDE7XG4gICAgYXBwZW5kVG8/OiBzdHJpbmcgPSAnYm9keSc7XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogQXV0b0NvbXBsZXRlQ29udHJvbFNjaGVtYSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBSYWRpb0J1dHRvbkxpc3RDb250cm9sU2NoZW1hIGV4dGVuZHMgRGF0YVNvdXJjZUNvbnRyb2xTY2hlbWEge1xuICAgIHZhbHVlRmllbGQ/ID0gJ2lkJztcbiAgICBkaXNwbGF5RmllbGQ/ID0gJ3Rlbic7XG4gICAgZW5hYmxlQ2FjaGluZz8gPSB0cnVlO1xuICAgIGxheW91dD86ICd2ZXJ0aWNhbCcgfCAnaG9yaXpvbnRhbCcgPSAnaG9yaXpvbnRhbCc7XG4gICAgYWxpZ24/OiAnbGVmdCcgfCAnY2VudGVyJyB8ICdyaWdodCcgPSAnbGVmdCc7XG4gICAgb25BZGp1c3RlZFZhbHVlPzogRnVuY3Rpb247XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogUmFkaW9CdXR0b25MaXN0Q29udHJvbFNjaGVtYSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBDaGVja0JveExpc3RDb250cm9sU2NoZW1hIGV4dGVuZHMgRGF0YVNvdXJjZUNvbnRyb2xTY2hlbWEge1xuICAgIGVuYWJsZUNhY2hpbmc/ID0gdHJ1ZTtcbiAgICBsYXlvdXQ/OiAndmVydGljYWwnIHwgJ2hvcml6b250YWwnID0gJ2hvcml6b250YWwnO1xuICAgIGFsaWduPzogJ2xlZnQnIHwgJ2NlbnRlcicgfCAncmlnaHQnID0gJ2xlZnQnO1xuICAgIGNsYXNzUGx1cz8gPSAnJztcbiAgICBmcmVlVGV4dD8gPSAnJztcbiAgICBwQ29sQ2xhc3M/OiBudW1iZXI7XG4gICAgbXVsdGlwbGU/ID0gdHJ1ZTtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBDaGVja0JveExpc3RDb250cm9sU2NoZW1hKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFRhYmxlU2NoZW1hIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlIHtcbiAgICByb3dUZW1wbGF0ZTogRm9ybVNjaGVtYUJhc2VbXTtcbiAgICBhdXRvR2VuZXJhdGVJZD8gPSBmYWxzZTtcbiAgICByb3dCdXR0b25zPzogKHJvd0RhdGEpID0+IE1lbnVJdGVtW107XG4gICAgZm9vdGVyQnV0dG9ucz86IHtcbiAgICAgICAgaWNvbj86IHN0cmluZztcbiAgICAgICAgbGFiZWw/OiBzdHJpbmc7XG4gICAgICAgIGNsYXNzPzogc3RyaW5nO1xuICAgICAgICBtZXNzYWdlOiBzdHJpbmc7XG4gICAgfVtdO1xuICAgIHNob3dOdW1iZXI/ID0gdHJ1ZTtcbiAgICBzaG93RnVuY3Rpb24/ID0gdHJ1ZTtcbiAgICBzaG93Rm9vdGVyPyA9IHRydWU7XG4gICAgc2hvd1NhdmU/ID0gZmFsc2U7XG4gICAgc2hvd0VkaXQ/ID0gZmFsc2U7XG4gICAgc2hvd0RlbGV0ZT8gPSB0cnVlO1xuICAgIHNob3dBZGQ/ID0gdHJ1ZTtcbiAgICBzaG93RGlhbG9nPyA9IHRydWU7XG4gICAgcG9wdXBTaXplPzogUG9wdXBTaXplID0gbmV3IFBvcHVwU2l6ZSh7IHdpZHRoOiAxMTAwLCBoZWlnaHQ6IDY1MCB9KTtcbiAgICBlbmFibGVSZW9yZGVyUm93PyA9IGZhbHNlO1xuICAgIGVuYWJsZUFkZE11bHRpPyA9IGZhbHNlO1xuICAgIHBpY2tlckNvbnRyb2xGaWVsZD86IHN0cmluZztcbiAgICBpc1VuaXF1ZT8gPSB0cnVlO1xuICAgIGVuYWJsZVBhZ2luZz8gPSBmYWxzZTtcbiAgICBsaW1pdD8gPSA1MDtcbiAgICBpbml0Um93Q291bnQ/ID0gMTtcbiAgICBtZFdpZHRoPyA9IDEyO1xuICAgIHdpZHRoRnVuY3Rpb25Db2x1bW4/OiBzdHJpbmc7XG4gICAgcm93QnV0dG9uVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxhbnk+ID0gbnVsbDtcbiAgICBzdW1tYXJ5VGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxhbnk+ID0gbnVsbDtcbiAgICBoZWFkZXJUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPGFueT4gPSBudWxsO1xuXG4gICAgb25SZW9yZGVyZWQ/OiBGdW5jdGlvbjtcbiAgICBvblRhYmxlRmluaXNoSW5pdD86IEZ1bmN0aW9uO1xuICAgIG9uQWRkaW5nPzogRnVuY3Rpb247XG4gICAgb25BZGRlZD86IEZ1bmN0aW9uO1xuICAgIG9uU2F2ZT86IEZ1bmN0aW9uO1xuICAgIG9uTWVzc2FnZT86IEZ1bmN0aW9uO1xuICAgIG9uRGVsZXRpbmc/OiBGdW5jdGlvbjtcbiAgICBvbkRlbGV0ZWQ/OiBGdW5jdGlvbjtcbiAgICBvblJvd0NsaWNrPzogRnVuY3Rpb247XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogVGFibGVTY2hlbWEpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZGlzYWJsZUNvbnRyb2w/KCkge1xuICAgICAgICB0aGlzLmRpc2FibGVDaGlsZHJlbkNvbnRyb2wodGhpcy5yb3dUZW1wbGF0ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBkaXNhYmxlQ2hpbGRyZW5Db250cm9sPyA9IChzY2hlbWFzOiBGb3JtQ29udHJvbEJhc2VbXSkgPT4ge1xuICAgICAgICBzY2hlbWFzLmZvckVhY2goc2NoZW1hID0+IHtcbiAgICAgICAgICAgIHNjaGVtYS5kaXNhYmxlZCA9IHRydWU7XG4gICAgICAgICAgICBpZiAoc2NoZW1hIGluc3RhbmNlb2YgVGFibGVTY2hlbWEpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmRpc2FibGVDaGlsZHJlbkNvbnRyb2woc2NoZW1hLnJvd1RlbXBsYXRlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKHNjaGVtYSBpbnN0YW5jZW9mIENvbnRhaW5lclNjaGVtYSkge1xuICAgICAgICAgICAgICAgIHRoaXMuZGlzYWJsZUNoaWxkcmVuQ29udHJvbChzY2hlbWEuY29udHJvbHMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9O1xufVxuXG4vLyBleHBvcnQgY2xhc3MgTWFwNGRTY2hlbWEgZXh0ZW5kcyBGb3JtU2NoZW1hQmFzZSB7XG4vLyAgICAgaGVpZ2h0PyA9IDMwMDtcbi8vICAgICBpZD86IHN0cmluZztcbi8vICAgICB2ZXJzaW9uPzogc3RyaW5nO1xuLy8gICAgIGFjY2Vzc0tleT86IHN0cmluZztcbi8vICAgICBtYXBJZD86IHN0cmluZzsgLy8gSWQgY+G7p2EgY8OhYyBtYXAgcGjhuqNpIGtow6FjIG5oYXVcbi8vICAgICBvcHRpb25zPzogYW55ID0ge307XG4vLyAgICAgY2xpY2tNYXJrZXI/ID0gZmFsc2U7XG4vLyAgICAgb25NYXBSZWFkeT86IEZ1bmN0aW9uO1xuXG4vLyAgICAgLy8gQ8OhYyBz4buxIGtp4buHbiB0csOqbiBtYXJrZXJcbi8vICAgICBvbkNsaWNrPzogRnVuY3Rpb247XG4vLyAgICAgb25EQkNsaWNrPzogRnVuY3Rpb247XG4vLyAgICAgb25Mb25nQ2xpY2s/OiBGdW5jdGlvbjtcbi8vICAgICBvblJpZ2h0Q2xpY2s/OiBGdW5jdGlvbjtcbi8vICAgICBvbkhvdmVyPzogRnVuY3Rpb247XG4vLyAgICAgb25Nb3VzZU91dD86IEZ1bmN0aW9uO1xuLy8gICAgIG9uRHJhZz86IEZ1bmN0aW9uO1xuLy8gICAgIG9uRHJhZ1N0YXJ0PzogRnVuY3Rpb247XG4vLyAgICAgb25EcmFnRW5kPzogRnVuY3Rpb247XG5cbi8vICAgICBvbkNsaWNrT3B0aW9ucz86IGFueSA9IHt9O1xuLy8gICAgIG9uREJDbGlja09wdGlvbnM/OiBhbnkgPSB7fTtcbi8vICAgICBvbkxvbmdDbGlja09wdGlvbnM/OiBhbnkgPSB7fTtcbi8vICAgICBvblJpZ2h0Q2xpY2tPcHRpb25zPzogYW55ID0ge307XG4vLyAgICAgb25Ib3Zlck9wdGlvbnM/OiBhbnkgPSB7fTtcbi8vICAgICBvbk1vdXNlT3V0T3B0aW9ucz86IGFueSA9IHt9O1xuLy8gICAgIG9uRHJhZ09wdGlvbnM/OiBhbnkgPSB7fTtcbi8vICAgICBvbkRyYWdTdGFydE9wdGlvbnM/OiBhbnkgPSB7fTtcbi8vICAgICBvbkRyYWdFbmRPcHRpb25zPzogYW55ID0ge307XG5cbi8vICAgICBjb25zdHJ1Y3Rvcihpbml0PzogTWFwNGRTY2hlbWEpIHtcbi8vICAgICAgICAgc3VwZXIoKTtcbi8vICAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuLy8gICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuLy8gICAgICAgICB9XG4vLyAgICAgfVxuLy8gfVxuXG5leHBvcnQgY2xhc3MgUXJDb2RlU2NoZW1hIGV4dGVuZHMgRm9ybVNjaGVtYUJhc2Uge1xuICAgIGhlaWdodD8gPSAxNDA7XG4gICAgdGl0bGU/OiBzdHJpbmc7XG4gICAgaGlkZGVuUHJldmlldz8gPSBmYWxzZTtcbiAgICBzY2FsZT8gPSA0O1xuICAgIGNvbG9yRGFyaz8gPSAnIzAwMDAwMGZmJztcbiAgICBjb2xvckxpZ2h0PyA9ICcjZmZmZmZmZmYnO1xuICAgIGVycm9yQ29ycmVjdGlvbkxldmVsPzogJ0wnIHwgJ00nIHwgJ1EnIHwgJ0gnID0gJ00nO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IFFyQ29kZVNjaGVtYSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBDb2x1bW5TY2hlbWFCYXNlIGV4dGVuZHMgRm9ybVNjaGVtYUJhc2VXaXRoU2VydmljZSB7XG4gICAgaXNBcnJheUZpZWxkPzogYm9vbGVhbjsgLy8gTMOgIGZpZWxkIGNo4bupYSBjw6FjIHZhbHVlIGPDoWNoIG5oYXUgYuG6sW5nIGThuqV1ICxcbiAgICB3aWR0aD86IHN0cmluZztcbiAgICBzaG93RWRpdExpbms/ID0gZmFsc2U7XG4gICAgc2hvd1RvZ2dsZUljb24/ID0gZmFsc2U7XG4gICAgY29sU3Bhbj86IG51bWJlcjtcbiAgICBncm91cD8gPSBmYWxzZTtcbiAgICB2aXNpYmxlPyA9IHRydWU7XG4gICAgcmVtb3ZlT25Jbml0PyA9IGZhbHNlO1xuICAgIGFsbG93RmlsdGVyPyA9IHRydWU7XG4gICAgdGV4dEFsaWduPzogVGV4dEFsaWduO1xuICAgIGNlbGxDbGFzcz86IHN0cmluZztcbiAgICBmdWxsVGV4dFNlYXJjaD8gPSBmYWxzZTtcbiAgICBpc0luVGFibGU/ID0gdHJ1ZTtcbiAgICByYXdDb2x1bW4/OiBDb2x1bW5TY2hlbWFCYXNlO1xuICAgIHNlcGFyYXRvcj8gPSAnLCAnO1xuICAgIG1heEl0ZW1EaXNwbGF5PyA9IDUwO1xuICAgIHBhZ2VTaXplPzogbnVtYmVyID0gMTU7IC8vIFByb3AgcGjhuqNpIGdp4buRbmcgduG7m2kgZHJvcGRvd25cblxuICAgIGZpbGVTZXR0aW5nPzogRmlsZVVwbG9hZFNldHRpbmcgfCBGaWxlTWFuYWdlclNldHRpbmc7XG4gICAgcXJDb2RlU2V0dGluZz86IFFyQ29kZVNjaGVtYTtcbiAgICBkYXRhVHlwZVJlZkZpZWxkPzogRGF0YVR5cGUgfCBzdHJpbmc7XG4gICAgZm9yY2VHZXREYXRhPyA9IGZhbHNlO1xuICAgIGRpc3BsYXlGaWVsZEluR3JpZD86IHN0cmluZztcbiAgICBmdW5jR2V0UmVmRGF0YVJvdz86IChyZWZJdGVtcykgPT4ge307XG4gICAgZnVuY1NldFZhbHVlUm93PzogKHJvd0l0ZW0sIGRhdGEpID0+IHZvaWQ7XG4gICAgZnVuY1NldFZhbHVlUm93V2hlbk51bGxPckVtcHR5PzogKHJvd0l0ZW0pID0+IHZvaWQ7XG4gICAgZnVuY0dldFZhbHVlT2ZGaWVsZD86IEZ1bmN0aW9uID0gKHJvd0l0ZW0pID0+IHJvd0l0ZW1bdGhpcy5maWVsZF07XG4gICAgcm93U3Bhbj8gPSAxO1xuICAgIGZvcm1hdD86IHN0cmluZztcbiAgICBkYXRhVHlwZT86IERhdGFUeXBlIHwgc3RyaW5nO1xuICAgIGNvbnRyb2xUeXBlPzogQ29udHJvbFR5cGUgPSBDb250cm9sVHlwZS50ZXh0Ym94O1xuICAgIHRlbXBsYXRlRmlsdGVyPzogVGVtcGxhdGVSZWY8YW55PjtcbiAgICBkaXNhYmxlQ2hlY2tCb3g/ID0gdHJ1ZTtcbiAgICAvLyBUaOG7qSB04buxIMawdSB0acOqbiBnZXQgcmVmIGRhdGEgY+G7p2EgY3J1ZC1saXN0XG4gICAgLy8gTuG6v3UgY8OzIHZhbHVlIG5naMSpYSBsw6Agbmjhu69uZyBj4buZdCBuw6B5IGPhuqduIHBo4bqjaSBs4bqleSBk4buvIGxp4buHdSB4b25nIHLhu5NpIG3hu5tpIMSR4bq/biBj4buZdCBraMOhY1xuICAgIG9yZGVyPzogbnVtYmVyID0gMTtcbiAgICBtYXhXb3JkRGlzcGxheT86IG51bWJlcjtcbiAgICBtYXhMZW5ndGhEaXNwbGF5PzogbnVtYmVyO1xuICAgIG1kV2lkdGhJblNlYXJjaD8gPSAxMjtcblxuICAgIG1pbj8gPSAwO1xuICAgIG1heD8gPSA5OTk5OTk5OTk5OTtcblxuICAgIHNob3dDbGVhcj8gPSB0cnVlO1xuICAgIG11bHRpcGxlPyA9IGZhbHNlO1xuICAgIHNpbmdsZT8gPSBmYWxzZTtcblxuICAgIHBpcGU/OiBQaXBlVHJhbnNmb3JtO1xuICAgIGFzeW5jUGlwZT8gPSB0cnVlO1xuICAgIHNvcnQ/ID0gdHJ1ZTtcbiAgICBleHRlbmREYXRhPzogYW55ID0ge307XG4gICAgbGVmdD86IE51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIElzIHRoaXMgY29sdW1uIHJlZiBhIHJlZiBjb2x1bW4gZ2VuZXJhdGVkIGJ5IGJhc2VcbiAgICAgKiBAZGF0ZSAxMS80LzIwMjIgLSAyOjA1OjU1IFBNXG4gICAgICpcbiAgICAgKiBAdHlwZSB7P2Jvb2xlYW59XG4gICAgICovXG4gICAgaXNSZWZGaWVsZD8gPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIHNob3VsZCBpbmNsdWRlIHRoaXMgY29sIGluIHRoZSBncmlkSW5mby5maWVsZHNcbiAgICAgKiBAZGF0ZSAxMS80LzIwMjIgLSAyOjA2OjE2IFBNXG4gICAgICpcbiAgICAgKiBAdHlwZSB7P2Jvb2xlYW59XG4gICAgICovXG4gICAgaW5jbHVkZVNlbGVjdD8gPSB0cnVlO1xuICAgIGlzUGlubmVkPyA9IGZhbHNlO1xuXG4gICAgaGFzT3BlcmF0b3JDYW5Cbz8gPSBmYWxzZTtcbiAgICBtaW5pbWl6ZUZpbHRlcj86IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBiaW5kaW5nRmlsdGVycz86IEZpbHRlcltdO1xuICAgIGZvcmNlTG9hZGluZz8gPSBmYWxzZTsgLy8gY2hvIHBow6lwIGxvYWQgbOG6oWkgY3J1ZC1saXN0IGtoaSBjb2x1bW4gbsOgeSBraMO0bmcgcGjhuqNpIGzDoCBwcm9wZXJ0eSBj4bunYSBiYXNlcnZpY2UgKGTDuW5nIHRyb25nIGNvbW1vbi1zZWFyY2gpXG4gICAgYXV0b0Rpc3BsYXlGaXJzdD8gPSBmYWxzZTtcbiAgICBub3RJbkNydWRGb3JtPyA9IGZhbHNlO1xuXG4gICAgY2xpY2s/OiBGdW5jdGlvbjtcbiAgICBwbGFjZWhvbGRlcj86IHN0cmluZztcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBDb2x1bW5TY2hlbWFCYXNlKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIERyb3Bkb3duT3B0aW9ucyB7XG4gICAgZGlzcGxheUZpZWxkPyA9ICd0ZW4nO1xuICAgIHZhbHVlRmllbGQ/ID0gJ2lkJztcbiAgICBmaWVsZFRyZWU/ID0gJyc7XG4gICAgc2VsZWN0Q2hpbGRJdGVtPyA9IGZhbHNlOyAvLyBDw7Mgc2VsZWN0IGLhuqNuIGdoaSBjb24gbuG6v3UgY2jhu41uIGLhuqNuIGdoaSBjaGFcbiAgICBzZWxlY3REZXNjZW5kYW50PyA9IGZhbHNlOyAvLyBDw7Mgc2VsZWN0IGLhuqNuIGdoaSBjb24sIGNow6F1IG7hur91IGNo4buNbiBi4bqjbiBnaGkgY2hhXG4gICAgZmllbGRQYXJlbnRUcmVlSXRlbT8gPSAnaWQnOyAvLyBUcsaw4budbmcgeMOhYyDEkeG7i25oIGLhuqNuIGdoaSBsw6AgYuG6o24gZ2hpIGNoYSBj4bunYSBi4bqjbiBnaGkgY29uXG4gICAgc29ydHM/OiBTb3J0W10gPSBbXTtcbiAgICBzb3J0RmllbGQ/ID0gJyc7XG4gICAgc29ydERpcj86IDEgfCAtMSA9IDE7XG4gICAgZmllbGRQbHVzPyA9ICcnO1xuICAgIHBsdXNVcmw/OiBzdHJpbmc7XG4gICAgY2FsbGJhY2tEYXRhRmluaXNoPzogKGV2dDogRXZlbnREYXRhKSA9PiB2b2lkO1xuICAgIHBhZ2U/OiBudW1iZXIgPSAxO1xuICAgIHBhZ2VTaXplPyA9IDY2NjtcbiAgICBpc1NlcnZlckxvYWQ/ID0gZmFsc2U7XG4gICAgcmVmRmllbGRzPzogUmVmRmllbGRbXSA9IFtdO1xuICAgIGlzVHJlZUJhc2VNb2RlbD8gPSBmYWxzZTtcbiAgICBmdW5jR2V0TGFiZWw/OiAoaXRlbSkgPT4gc3RyaW5nO1xuICAgIGZ1bmNDb21wYXJlPzogKGl0ZW06IGFueSwgdmFsdWUpID0+IGJvb2xlYW4gPSAoaXRlbSwgdmFsdWUpID0+IGl0ZW1bdGhpcy52YWx1ZUZpZWxkXSA9PSB2YWx1ZTtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBEcm9wZG93bk9wdGlvbnMpIHtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgUmVmRmllbGQge1xuICAgIGZpZWxkPzogc3RyaW5nO1xuICAgIG11bHRpcGxlPyA9IGZhbHNlO1xuICAgIHNlcGFyYXRvcj8gPSAnLCAnO1xuICAgIGJhc2VTZXJ2aWNlPzogQmFzZVNlcnZpY2UgfCBNYXN0ZXJEYXRhU2VydmljZTtcbiAgICBpc0NoaWxkT2JqZWN0PyA9IGZhbHNlO1xuICAgIGRpc3BsYXlGaWVsZD8gPSAndGVuJztcbiAgICBkaXNwbGF5RmllbGRJbkdyaWQ/OiBzdHJpbmc7XG4gICAgdmFsdWVGaWVsZD8gPSAnaWQnO1xuICAgIGZpZWxkUGx1cz8gPSAnJztcbiAgICBncm91cENvZGU/OiBzdHJpbmc7XG4gICAgZGF0YVNvdXJjZT86IGFueVtdO1xuICAgIG9yZGVyPzogbnVtYmVyID0gMTtcblxuICAgIGlzVHJlZT8gPSBmYWxzZTtcbiAgICBmaWVsZFRyZWU/OiBzdHJpbmc7XG4gICAgdmFsdWVQYXJlbnRSb290PzogYW55ID0gbnVsbDsgLy8gR2nDoSB0cuG7iyB0csaw4budbmcgW2ZpZWxkVHJlZV0gY+G7p2EgaXRlbSB0cmVlIHJvb3RcbiAgICBmaWVsZFBhcmVudFRyZWVJdGVtPyA9ICdpZCc7IC8vIFRyxrDhu51uZyB4w6FjIMSR4buLbmggYuG6o24gZ2hpIGzDoCBi4bqjbiBnaGkgY2hhIGPhu6dhIGLhuqNuIGdoaSBjb25cbiAgICBzb3J0cz86IFNvcnRbXSA9IFtdO1xuICAgIHNvcnRGaWVsZD8gPSAnJztcbiAgICBzb3J0RGlyPzogMSB8IC0xID0gMTtcbiAgICBwbHVzVXJsPzogc3RyaW5nO1xuXG4gICAgZnVuY0dldFZhbHVlT2ZGaWVsZD86IEZ1bmN0aW9uID0gKGl0ZW0pID0+IGl0ZW1bdGhpcy5maWVsZF07XG4gICAgZnVuY1NldFZhbHVlUm93PzogKHJvd0l0ZW0sIGRhdGEpID0+IHZvaWQ7XG4gICAgZnVuY1NldFZhbHVlUm93V2hlbk51bGxPckVtcHR5PzogKHJvd0l0ZW0pID0+IHZvaWQ7XG4gICAgZnVuY0dldFJlZkRhdGFSb3c/OiAocmVmSXRlbXMpID0+IHt9O1xuICAgIGNhbGxiYWNrRGF0YUZpbmlzaD86IChldnQ6IEV2ZW50RGF0YSkgPT4gdm9pZDtcbiAgICBmdW5jR2V0TGFiZWw/OiAoaXRlbSkgPT4gc3RyaW5nO1xuICAgIGZ1bmNDb21wYXJlPzogKGl0ZW06IGFueSwgdmFsdWUpID0+IGJvb2xlYW4gPSAoaXRlbSwgdmFsdWUpID0+IGl0ZW1bdGhpcy52YWx1ZUZpZWxkXSA9PSB2YWx1ZTtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBSZWZGaWVsZCkge1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBFbnRpdHlQaWNrZXJDb2x1bW4gZXh0ZW5kcyBDb2x1bW5TY2hlbWFCYXNlIHtcbiAgICBsYWJlbD86IHN0cmluZztcbiAgICBjb2RlPzogc3RyaW5nO1xuICAgIGRpc2FibGVkPyA9IGZhbHNlO1xuICAgIGlzU2VhcmNoYWJsZT8gPSB0cnVlO1xuICAgIGlzRGlzcGxheT8gPSB0cnVlO1xuICAgIGRhdGFUeXBlPzogRGF0YVR5cGUgfCBzdHJpbmc7XG4gICAgb3BlcmF0b3I/OiBPcGVyYXRvcjtcbiAgICB3aWR0aD8gPSAnJztcbiAgICBub3RJbkZpZWxkcz8gPSBmYWxzZTsgLy8gQ8OhYyB0csaw4budbmcgZOG7ryBsaeG7h3UgxJHGsOG7o2MgdOG7lW5nIGjhu6NwIGzhuqFpIGhp4buDbiB0aOG7iyBsw6puIGdyaWQgbcOgIGtow7RuZyBwaOG6o2kgbOG6pXkgdOG7qyB0cm9uZyB0YWJsZSByYS5cblxuICAgIHRlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBFbnRpdHlQaWNrZXJDb2x1bW4pIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQWNjb3JkaW9uQ29udHJvbFNjaGVtYSBleHRlbmRzIEZvcm1Db250cm9sQmFzZSB7XG4gICAgY29udHJvbHM6IEZvcm1Db250cm9sQmFzZVtdID0gW107XG4gICAgYWN0aXZlSW5kZXg/OiBudW1iZXJbXSA9IFtdO1xuICAgIG9uT3BlbmVkVGFiPzogRnVuY3Rpb247XG4gICAgb25DbG9zZWRUYWI/OiBGdW5jdGlvbjtcbiAgICBjb250ZW50QmVmb3JlTGluaz86IFRlbXBsYXRlUmVmPGFueT47XG4gICAgY29udGVudEJlZm9yZVRhYkxpc3Q/OiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIG1kV2lkdGg/OiBudW1iZXIgPSAxMjtcblxuICAgIC8vIHRhYlxuICAgIGhlYWRlcjogc3RyaW5nO1xuICAgIGluZGV4OiBudW1iZXI7XG4gICAgZXhwYW5kZWQ/OiBib29sZWFuID0gZmFsc2U7XG4gICAgbG9hZGVkPzogYm9vbGVhbiA9IGZhbHNlO1xuICAgIGFjdGl2ZT86IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBjb2RlOiBzdHJpbmc7XG4gICAgY29uc3RydWN0b3IoaW5pdD86IEFjY29yZGlvbkNvbnRyb2xTY2hlbWEpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuYWN0aXZlKSB7XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZUluZGV4ID0gWzBdO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyBleHBvcnQgY2xhc3MgQWNjb3JkaW9uSXRlbUNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2Uge1xuLy8gICAgIGNvbnRyb2xzOiBGb3JtQ29udHJvbEJhc2VbXTtcbi8vICAgICBoZWFkZXI6IHN0cmluZztcbi8vICAgICBpbmRleDogbnVtYmVyO1xuLy8gICAgIGN1c3RvbUluZGV4Pzogc3RyaW5nO1xuLy8gICAgIGV4cGFuZGVkPzogYm9vbGVhbiA9IGZhbHNlO1xuLy8gICAgIGxvYWRlZD86IGJvb2xlYW4gPSBmYWxzZTtcbi8vICAgICBhY3RpdmU/OiBib29sZWFuID0gZmFsc2U7XG4vLyAgICAgY29kZTogc3RyaW5nO1xuLy8gICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBBY2NvcmRpb25JdGVtQ29udHJvbFNjaGVtYSkge1xuLy8gICAgICAgICBzdXBlcigpO1xuLy8gICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4vLyAgICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4vLyAgICAgICAgIH1cbi8vICAgICB9XG4vLyB9XG5cbmV4cG9ydCBjbGFzcyBDcnVkTGlzdENvbmZpZyB7XG4gICAgdG9vbHRpcFZpZXc/OiBzdHJpbmc7XG4gICAgb25WaWV3PzogRnVuY3Rpb247XG4gICAgZGlzYWJsZVJvd1NlbGVjdFdoZW5DbGlja0FjdGlvbj8gPSB0cnVlO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IENydWRMaXN0Q29uZmlnKSB7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFRyZWVEYXRhT3B0aW9uIHtcbiAgICBkaXNwbGF5RmllbGQgPSAndGVuJztcbiAgICBzaG9ydERpc3BsYXlGaWVsZCA9ICd0ZW4nO1xuICAgIGV4cGFuZGVkSWNvbiA9ICdwaSBwaS1mb2xkZXItb3Blbic7XG4gICAgY29sbGFwc2VkSWNvbiA9ICdwaSBwaS1mb2xkZXInO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IFRyZWVEYXRhT3B0aW9uKSB7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIERpYWxvZ01vZGVsIHtcbiAgICBzaG93RWRpdEZvcm0/OiBib29sZWFuID0gZmFsc2U7XG4gICAgaGVhZGVyPzogc3RyaW5nID0gJyc7XG4gICAgcG9wdXBTaXplPzogUG9wdXBTaXplID0gbmV3IFBvcHVwU2l6ZSh7IG1heGltaXplOiB0cnVlIH0pO1xuICAgIGRhdGE/OiBhbnkgPSB7fTtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBEaWFsb2dNb2RlbCkge1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBQb3B1cFNpemUge1xuICAgIHdpZHRoPzogbnVtYmVyO1xuICAgIGhlaWdodD86IG51bWJlcjtcbiAgICBtYXhpbWl6ZT8gPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBQb3B1cFNpemUpIHtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgRXZlbnREYXRhIHtcbiAgICBjdXJyZW50Tm9kZTogQ29udHJvbFRyZWVOb2RlO1xuICAgIHNvdXJjZU5vZGU/OiBDb250cm9sVHJlZU5vZGU7XG4gICAgc291cmNlRXZlbnQ/OiBhbnk7XG4gICAgZXZlbnRUeXBlPzogYW55O1xuICAgIGRhdGE/OiBhbnk7XG4gICAgcHJpdmF0ZSBfY3J1ZEZvcm06IENydWRGb3JtQ29tcG9uZW50O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIGluaXQ/OiB7XG4gICAgICAgICAgICBjdXJyZW50Tm9kZTogQ29udHJvbFRyZWVOb2RlLFxuICAgICAgICAgICAgc291cmNlTm9kZT86IENvbnRyb2xUcmVlTm9kZSxcbiAgICAgICAgICAgIHNvdXJjZUV2ZW50PzogYW55LFxuICAgICAgICAgICAgZXZlbnRUeXBlPzogYW55LFxuICAgICAgICAgICAgZGF0YT86IGFueSxcbiAgICAgICAgICAgIGNydWRGb3JtPzogQ3J1ZEZvcm1Db21wb25lbnQ7XG4gICAgICAgIH1cbiAgICApIHtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0IHZhbHVlKCk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnROb2RlLm1vZGVsO1xuICAgIH1cblxuICAgIGdldCBtb2RlbCgpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5jdXJyZW50Tm9kZS5tb2RlbDtcbiAgICB9XG5cbiAgICBnZXQgcGFyZW50TW9kZWwoKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVudE5vZGUucGFyZW50TW9kZWw7XG4gICAgfVxuXG4gICAgZ2V0IHBhcmVudFBhdGgoKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVudE5vZGUucGFyZW50TW9kZWxQYXRoO1xuXG4gICAgfVxuXG4gICAgZ2V0IHJvb3RNb2RlbCgpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5jdXJyZW50Tm9kZS5yb290Tm9kZS5tb2RlbDtcbiAgICB9XG5cbiAgICBnZXQgY29udHJvbCgpOiBGb3JtU2NoZW1hQmFzZSB7XG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnROb2RlLmNvbnRyb2w7XG4gICAgfVxuXG4gICAgZ2V0IHBhcmVudENvbnRyb2woKTogRm9ybVNjaGVtYUJhc2Uge1xuICAgICAgICByZXR1cm4gdGhpcy5jdXJyZW50Tm9kZS5wYXJlbnRDb250cm9sO1xuICAgIH1cblxuICAgIGdldCBmb3JtQ29udHJvbHMoKTogRm9ybVNjaGVtYUJhc2VbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnROb2RlLmZvcm1Db250cm9scztcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBUYWJWaWV3RGF0YSB7XG4gICAgY29kZT86IHN0cmluZztcbiAgICBoaWRkZW4/OiBib29sZWFuID0gZmFsc2U7XG4gICAgYWx3YXlSZW5kZXI/OiBib29sZWFuID0gZmFsc2U7XG4gICAgaWNvbj86IHN0cmluZztcbiAgICBsYWJlbD86IHN0cmluZztcbiAgICBoZWFkZXJTdHlsZUNsYXNzPzogc3RyaW5nO1xuICAgIGFjdGl2ZT86IGJvb2xlYW47XG4gICAgZG9Ob3RSZWxvYWQ/ID0gdHJ1ZTtcbiAgICB1c2VTY3JvbGxiYXI/ID0gdHJ1ZTsgLy8gQ29uZmlnIMSR4buDIHjDoWMgxJHhu4tuaCBjw7Mgc+G7rSBk4bulbmcgY3VzdG9tLXNjcm9sbGJhciBraMO0bmcsIG7hur91IGtow7RuZyB0aMOsIGTDuW5nIHNjcm9sbGJhciBt4bq3YyDEkeG7i25oIGPhu6dhIHRyw6xuaCBkdXnhu4d0XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogVGFiVmlld0RhdGEpIHtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgRmllbGRSb3dTcGFuIHtcbiAgICBmaWVsZDogc3RyaW5nO1xuICAgIGZ1bmNHZXRWYWx1ZT86IChpdGVtKSA9PiBhbnk7XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogRmllbGRSb3dTcGFuKSB7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGVudW0gRGF0YVR5cGUge1xuICAgIGRhdGUgPSAnZGF0ZScsXG4gICAgZGF0ZXRpbWUgPSAnZGF0ZXRpbWUnLFxuICAgIGh0bWwgPSAnaHRtbCcsXG4gICAgc3RyaW5nID0gJ3N0cmluZycsXG4gICAgaW50ID0gJ2ludCcsXG4gICAgaW50V2l0aG91dE1hc2sgPSAnaW50V2l0aG91dE1hc2snLFxuICAgIGN1cnJlbmN5ID0gJ2N1cnJlbmN5JyxcbiAgICBkZWNpbWFsID0gJ2RlY2ltYWwnLFxuICAgIGJvb2xlYW4gPSAnYm9vbGVhbicsXG4gICAgZW51bSA9ICdlbnVtJyxcbiAgICBmaWxlVXBsb2FkID0gJ2ZpbGVVcGxvYWQnLFxuICAgIGZpbGVNYW5hZ2VyID0gJ2ZpbGVNYW5hZ2VyJyxcbn1cblxuZXhwb3J0IGVudW0gQ29udHJvbFR5cGUge1xuICAgIGRyb3Bkb3duID0gJ2Ryb3Bkb3duJyxcbiAgICBkYXRldGltZSA9ICdkYXRldGltZScsXG4gICAgZGF0ZSA9ICdkYXRlJyxcbiAgICB0aW1lID0gJ3RpbWUnLFxuICAgIG51bWJlciA9ICdudW1iZXInLFxuICAgIHRleHRib3ggPSAndGV4dGJveCcsXG4gICAgY2hlY2tib3ggPSAnY2hlY2tib3gnLFxuICAgIHN3aXRjaCA9ICdzd2l0Y2gnXG59XG5cbmV4cG9ydCBlbnVtIE9wZXJhdG9yIHtcbiAgICBlcXVhbCA9ICdlcScsXG4gICAgbm90RXF1YWwgPSAnbmVxJyxcbiAgICBncmVhdGVyID0gJ2d0JyxcbiAgICBncmVhdGVyVGhhbkVxdWFsID0gJ2d0ZScsXG4gICAgbG93ZXIgPSAnbHQnLFxuICAgIGxvd2VyVGhhbkVxdWFsID0gJ2x0ZScsXG5cbiAgICByZWxhdGlvbmFsRGF0YSA9ICdyZWxhdGlvbmFsZGF0YScsXG4gICAgY29udGFpbiA9ICdjb250YWlucycsXG4gICAgbm90Q29udGFpbiA9ICduY29udGFpbnMnLFxuICAgIHN0YXJ0V2l0aCA9ICdzdGFydHN3aXRoJyxcbiAgICBub3RTdGFydFdpdGggPSAnbnN0YXJ0c3dpdGgnLFxuICAgIGVuZFdpdGggPSAnZW5kc3dpdGgnLFxuICAgIG5vdEVuZFdpdGggPSAnbmVuZHN3aXRoJyxcblxuICAgIGluID0gJ2luJyxcbiAgICBub3RJbiA9ICduaW4nLFxuXG4gICAgaXNOdWxsID0gJ2lzbnVsbCcsXG4gICAgaXNOb3ROdWxsID0gJ2lzbm90bnVsbCcsXG5cbiAgICBpblJvbGUgPSAnaGFzUm9sZScsXG4gICAgbm90SW5Sb2xlID0gJ25vdEhhc1JvbGUnLFxuICAgIGluQ2F0ZWdvcnkgPSAnaW5DYXRlZ29yeScsXG4gICAgbm90SW5DYXRlZ29yeSA9ICdub3RJbkNhdGVnb3J5JyxcbiAgICBpblBvc2l0aW9uID0gJ2luUG9zaXRpb24nLFxuICAgIG5vdEluUG9zaXRpb24gPSAnbm90SW5Qb3NpdGlvbicsXG4gICAgaW5MaXN0VXNlciA9ICdpbkxpc3RVc2VyJyxcbiAgICBub3RJbkxpc3RVc2VyID0gJ25vdEluTGlzdFVzZXInLFxuICAgIGluTGlzdEdyb3VwID0gJ2luTGlzdEdyb3VwJyxcbiAgICBub3RJbkxpc3RHcm91cCA9ICdub3RJbkxpc3RHcm91cCcsXG4gICAgaXNDdXJyZW50VXNlciA9ICdpc0N1cnJlbnRVc2VyJyxcbiAgICBpc0N1cnJlbnRDYW5CbyA9ICdpc0N1cnJlbnRDYW5Cbydcbn1cblxuZXhwb3J0IGVudW0gSGVpZ2h0VHlwZSB7XG4gICAgZGVmYXVsdCA9IDAsXG4gICAgZHluYW1pYyA9IC0xLFxuICAgIGN1c3RvbSA9IDFcbn1cblxuZXhwb3J0IGVudW0gRmlsZU1hbmFnZXJNb2RlIHtcbiAgICBzaW5nbGUgPSAnc2luZ2xlJyxcbiAgICBtdWx0aXBsZSA9ICdtdWx0aXBsZSdcbn1cblxuZXhwb3J0IGVudW0gRmlsZVVwbG9hZE1vZGUge1xuICAgIHVzaW5nRmlsZUluc3RhbmNlSWQgPSAndXNpbmdGaWxlSW5zdGFuY2VJZCcsXG4gICAgdXNpbmdTZXJ2aWNlRmlsZSA9ICd1c2luZ1NlcnZpY2VGaWxlJ1xufVxuXG5leHBvcnQgZW51bSBFbnVtRmlsZUxheW91dCB7XG4gICAgU0lNUExFID0gJ1NJTVBMRScsXG4gICAgU0lNUExFX0ZPUl9MSVNUID0gJ1NJTVBMRV9GT1JfTElTVCcsXG4gICAgTElTVCA9ICdMSVNUJyxcbiAgICBJTkxJTkUgPSAnSU5MSU5FJ1xufVxuXG5leHBvcnQgZW51bSBUZXh0QWxpZ24ge1xuICAgIExlZnQgPSAwLFxuICAgIENlbnRlciA9IDEsXG4gICAgUmlnaHQgPSAtMVxufVxuXG5leHBvcnQgZW51bSBFeHBvcnRJdGVtc01vZGUge1xuICAgIEZyb21IdG1sID0gMCxcbiAgICBNYW51YWxHZXREYXRhID0gMSxcbiAgICBBdXRvR2V0RGF0YSA9IDJcbn1cblxuZXhwb3J0IGVudW0gRXhwb3J0QWxsTW9kZSB7XG4gICAgTWFudWFsR2V0RGF0YSA9IDAsXG4gICAgQXV0b0dldERhdGEgPSAxXG59XG5cbmV4cG9ydCBlbnVtIFVzZXJUeXBlIHtcbiAgICBDYW5CbyxcbiAgICBOb3JtYWxcbn1cblxuZXhwb3J0IGVudW0gRXZlbnRUeXBlIHtcbiAgICBDSEFOR0UgPSAnY2hhbmdlJyxcbiAgICBBREpVU1RfVkFMVUUgPSAnYWRqdXN0VmFsdWUnLFxuICAgIE1PREVMX0NIQU5HRUQgPSAnbW9kZWxDaGFuZ2VkJyxcbiAgICBGT1JNX1JFQURZID0gJ2Zvcm1SZWFkeScsXG4gICAgRU5URVIgPSAnZW50ZXInLFxuICAgIEhJREUgPSAnaGlkZScsXG4gICAgUk9XX1JFT1JERVIgPSAncm93UmVvcmRlcicsXG4gICAgQkxVUiA9ICdibHVyJyxcbiAgICBSRUFEWSA9ICdSRUFEWScsXG4gICAgREFUQVNPVVJDRV9MT0FERUQgPSAnZGF0YVNvdXJjZUxvYWRlZCcsXG4gICAgQ0xJQ0sgPSAnY2xpY2snLFxuICAgIEFVVE9fQ09SUkVDVCA9ICdhdXRvQ29ycmVjdCcsXG4gICAgVkFMSURBVEUgPSAndmFsaWRhdGUnLFxuICAgIElOSVQgPSAnaW5pdCcsXG4gICAgQURESU5HID0gJ2FkZGluZycsXG4gICAgQURERUQgPSAnYWRkZWQnLFxuICAgIERFTEVUSU5HID0gJ2RlbGV0aW5nJyxcbiAgICBERUxFVEVEID0gJ2RlbGV0ZWQnLFxuICAgIFNFTEVDVCA9ICdzZWxlY3QnLFxuICAgIFRBQkxFX0NIQU5HRUQgPSAndGFibGVDaGFuZ2VkJyxcbiAgICBTQVZFID0gJ3NhdmUnLFxuICAgIE1FU1NBR0UgPSAnbWVzc2FnZScsXG4gICAgUk9XX0ZJTklTSF9JTklUID0gJ3Jvd0ZpbmlzaEluaXQnLFxuICAgIFRBQkxFX0ZJTklTSF9JTklUID0gJ3RhYmxlRmluaXNoSW5pdCcsXG4gICAgVVBMT0FERUQgPSAndXBsb2FkZWQnLFxufVxuXG5leHBvcnQgY2xhc3MgQnV0dG9uQWN0aW9uIHtcbiAgICByYXdUZXh0Pzogc3RyaW5nO1xuICAgIHBlcm1pc3Npb25Db2RlPzogc3RyaW5nO1xuICAgIGxzdEVsZW1lbnQ/OiBIVE1MQnV0dG9uRWxlbWVudFtdID0gW107XG4gICAgaXNBdXRob3JpemU/ID0gZmFsc2U7XG4gICAgaWQ6IHN0cmluZztcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBCdXR0b25BY3Rpb24pIHtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufSJdfQ==
|