@posiwise/admin-module 0.0.164 → 0.0.165
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.
|
@@ -525,34 +525,7 @@ export class DomainConfigBuildComponent extends AppBaseComponent {
|
|
|
525
525
|
}));
|
|
526
526
|
});
|
|
527
527
|
this.shardUrl = res?.config?.shard_url;
|
|
528
|
-
|
|
529
|
-
const ensureArrayField = (obj, key) => {
|
|
530
|
-
if (!obj || typeof obj !== 'object' || !Array.isArray(obj[key])) {
|
|
531
|
-
obj = { ...obj, [key]: [] };
|
|
532
|
-
}
|
|
533
|
-
return obj;
|
|
534
|
-
};
|
|
535
|
-
const keysWithItems = [
|
|
536
|
-
'testimonials',
|
|
537
|
-
'book_demo',
|
|
538
|
-
'partners',
|
|
539
|
-
'videos',
|
|
540
|
-
'integrations',
|
|
541
|
-
'usps',
|
|
542
|
-
'ctas',
|
|
543
|
-
'guides',
|
|
544
|
-
'navbar',
|
|
545
|
-
'footer_links'
|
|
546
|
-
];
|
|
547
|
-
keysWithItems.forEach((key) => {
|
|
548
|
-
fixedData[key] = ensureArrayField(fixedData[key], 'items');
|
|
549
|
-
});
|
|
550
|
-
fixedData.ab_tests = Array.isArray(fixedData.ab_tests) ? fixedData.ab_tests : [];
|
|
551
|
-
fixedData.header = ensureArrayField(fixedData.header, 'sub_headings');
|
|
552
|
-
fixedData.contact_us = typeof fixedData.contact_us === 'object' && fixedData.contact_us !== null ? { ...fixedData.contact_us } : {};
|
|
553
|
-
fixedData.contact_us.questions = Array.isArray(fixedData.contact_us.questions) ? fixedData.contact_us.questions : [];
|
|
554
|
-
fixedData.contact_us.hubspot = Array.isArray(fixedData.contact_us.hubspot) ? fixedData.contact_us.hubspot : [];
|
|
555
|
-
this.form.patchValue(fixedData);
|
|
528
|
+
this.form.patchValue(this.data);
|
|
556
529
|
this.form.patchValue({
|
|
557
530
|
cs_product_id: this.productsList.find(x => x.id === this.data?.cs_product_id),
|
|
558
531
|
trial_product_id: this.productsList.find(x => x.id === this.data?.trial_product_id)
|
|
@@ -754,4 +727,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
|
|
|
754
727
|
type: ViewChild,
|
|
755
728
|
args: ['partnerCropper']
|
|
756
729
|
}], onSave: [] } });
|
|
757
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tYWluLWNvbmZpZy1idWlsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FkbWluLW1vZHVsZS9zcmMvbGliL2NvbXBvbmVudHMvZG9tYWluLWNvbmZpZy9kb21haW4tY29uZmlnLWRldGFpbHMvZG9tYWluLWNvbmZpZy1idWlsZC9kb21haW4tY29uZmlnLWJ1aWxkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYWRtaW4tbW9kdWxlL3NyYy9saWIvY29tcG9uZW50cy9kb21haW4tY29uZmlnL2RvbWFpbi1jb25maWctZGV0YWlscy9kb21haW4tY29uZmlnLWJ1aWxkL2RvbWFpbi1jb25maWctYnVpbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBZSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RSxPQUFPLEVBRUgsU0FBUyxFQUNULFFBQVEsRUFFUixTQUFTLEVBQ1QsU0FBUyxFQUNULFlBQVksRUFDZixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQWEsV0FBVyxFQUErQixNQUFNLGdCQUFnQixDQUFDO0FBRXJGLE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDdEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzlFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxPQUFPLE1BQU0sZ0JBQWdCLENB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SnRDLFNBQVM7K0JBQ0ksd0JBQXdCO3NMQUlLLFFBQVE7c0JBQTlDLFlBQVk7dUJBQUMsdUJBQXVCO2dCQUNSLGNBQWM7c0JBQTFDLFNBQVM7dUJBQUMsZ0JBQWdCO2dCQXE0QjNCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDZGtEcmFnRHJvcCwgbW92ZUl0ZW1JbkFycmF5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XG5pbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ29tcG9uZW50LFxuICAgIEluamVjdG9yLFxuICAgIE9uSW5pdCxcbiAgICBRdWVyeUxpc3QsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdDaGlsZHJlblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1BcnJheSwgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgVW50eXBlZEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgQWRtaW5TZXJ2aWNlLCBBcHBBZG1pbiB9IGZyb20gJ0Bwb3Npd2lzZS9hZG1pbi1tb2R1bGUtdXRpbHMnO1xuaW1wb3J0IHsgQXBwQmFzZUNvbXBvbmVudCB9IGZyb20gJ0Bwb3Npd2lzZS9hcHAtYmFzZS1jb21wb25lbnQnO1xuaW1wb3J0IHsgUGVybWlzc2lvblNlcnZpY2UsIFByb2R1Y3RTZXJ2aWNlIH0gZnJvbSAnQHBvc2l3aXNlL2NvbW1vbi1zZXJ2aWNlcyc7XG5pbXBvcnQgeyBIZWxwZXJTZXJ2aWNlIH0gZnJvbSAnQHBvc2l3aXNlL2hlbHBlci1zZXJ2aWNlJztcbmltcG9ydCB7IEN1c3RvbVVwbG9hZGVyQ29tcG9uZW50IH0gZnJvbSAnQHBvc2l3aXNlL3NoYXJlZC1jb21wb25lbnRzJztcbmltcG9ydCB7IFZhbGlkYXRlRm9ybSB9IGZyb20gJ0Bwb3Npd2lzZS91dGlscyc7XG5cbmltcG9ydCBncm91cEJ5IGZyb20gJ2xvZGFzaC9ncm91cEJ5JztcbmltcG9ydCB7IGZvcmtKb2luIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IE5nYk1vZGFsIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xuXG5pbXBvcnQgeyBEb21haW5Db25maWcgfSBmcm9tICcuLi8uLi8uLi8uLi9zaGFyZWQvaW50ZXJmYWNlL2RvbWFpbi1jb25maWcuaW50ZXJmYWNlJztcbmltcG9ydCB7IFJPVVRFUlMgfSBmcm9tICcuLi8uLi8uLi8uLi9zaGFyZWQvcm91dGVycy9yb3V0ZXJzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdwdy1kb21haW4tY29uZmlnLWJ1aWxkJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZG9tYWluLWNvbmZpZy1idWlsZC5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgRG9tYWluQ29uZmlnQnVpbGRDb21wb25lbnQgZXh0ZW5kcyBBcHBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcbiAgICBAVmlld0NoaWxkcmVuKEN1c3RvbVVwbG9hZGVyQ29tcG9uZW50KSB1cGxvYWRlcjogUXVlcnlMaXN0PEN1c3RvbVVwbG9hZGVyQ29tcG9uZW50PjtcbiAgICBAVmlld0NoaWxkKCdwYXJ0bmVyQ3JvcHBlcicpIHBhcnRuZXJDcm9wcGVyO1xuXG4gICAgZm9ybTogVW50eXBlZEZvcm1Hcm91cDtcblxuICAgIHN1Ym1pdHRlZCA9IGZhbHNlO1xuICAgIGJ1dHRvbkJ1c3kgPSBmYWxzZTtcblxuICAgIHNlbGVjdGVkUGFydG5lckluZGV4OiBudW1iZXIgPSBudWxsO1xuXG4gICAgaWQ6IG51bWJlcjtcbiAgICBkdXBsaWNhdGVDb25maWdJZDtcbiAgICBzdWJzY3JpcHRpb25JZDogbnVtYmVyO1xuXG4gICAgZGF0YTogRG9tYWluQ29uZmlnO1xuXG4gICAgcm91dGVycyA9IFJPVVRFUlM7XG5cbiAgICBtYXN0ZXJTdWJzY3JpcHRpb25Qcm9kdWN0TGlzdCA9IFtdO1xuICAgIG1hc3RlclN1YnNjcmlwdGlvbnNMaXN0ID0gW107XG4gICAgc3Vic2NyaXB0aW9uVG9zTGlzdCA9IFtdO1xuICAgIGNybVByb2R1Y3RMaXN0ID0gW107XG4gICAgY3JtU3Vic2NyaXB0aW9uc0xpc3QgPSBbXTtcbiAgICBjcm1Tb3VyY2VzTGlzdCA9IFtdO1xuICAgIHByb2R1Y3RzTGlzdCA9IFtdO1xuICAgIGNoaWxkTGlzdCA9IFtdO1xuXG4gICAgaXNMb2FkaW5nOiBib29sZWFuO1xuXG4gICAgc2hhcmRVcmw6IHN0cmluZztcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgYWRtaW5TZXJ2aWNlOiBBZG1pblNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgcHJvZHVjdFNlcnZpY2U6IFByb2R1Y3RTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IG1vZGFsU2VydmljZTogTmdiTW9kYWwsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZmI6IEZvcm1CdWlsZGVyXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGluamVjdG9yKTtcbiAgICAgICAgdGhpcy5mb3JtID0gQXBwQWRtaW4uZG9tYWluQ29uZmlnQnVpbGRGb3JtKHRoaXMuZmIpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLmlkID0gTnVtYmVyKHRoaXMucm91dGUuc25hcHNob3QucGFyYW1zWydpZCddKTtcbiAgICAgICAgdGhpcy5kdXBsaWNhdGVDb25maWdJZCA9IE51bWJlcihcbiAgICAgICAgICAgIHRoaXMucm91dGUuc25hcHNob3QucXVlcnlQYXJhbXNbJ2R1cGxpY2F0ZV9kb21haW5fY29uZmlnX2lkJ11cbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25JZCA9IFBlcm1pc3Npb25TZXJ2aWNlLnNlbGVjdGVkU3Vic2NyaXB0aW9uPy5pZDtcbiAgICAgICAgaWYgKHRoaXMuaWQpIHtcbiAgICAgICAgICAgIHRoaXMuZ2V0QWxsT3B0aW9ucygpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnBlcm1pc3Npb25TZXJ2aWNlLmlzU3VwZXJBZG1pbigpKSB7XG4gICAgICAgICAgICB0aGlzLmZvcm0uZ2V0KCdtYXN0ZXJfc3Vic2NyaXB0aW9uX2lkJykuZW5hYmxlKCk7XG4gICAgICAgICAgICB0aGlzLmZvcm0uZ2V0KCdtYXN0ZXJfc3Vic2NyaXB0aW9uX3Byb2R1Y3RfaWQnKS5lbmFibGUoKTtcbiAgICAgICAgICAgIHRoaXMuZm9ybS5nZXQoJ2lzX3Byb2R1Y3RfZG9tYWluJykuZW5hYmxlKCk7XG4gICAgICAgICAgICB0aGlzLmZvcm0uZ2V0KCdjcm1fc3Vic2NyaXB0aW9uX2lkJykuZW5hYmxlKCk7XG4gICAgICAgICAgICB0aGlzLmZvcm0uZ2V0KCdjcm1fcHJvZHVjdF9pZCcpLmVuYWJsZSgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5mb3JtLmdldCgnbWFzdGVyX3N1YnNjcmlwdGlvbl9pZCcpLmRpc2FibGUoKTtcbiAgICAgICAgICAgIHRoaXMuZm9ybS5nZXQoJ21hc3Rlcl9zdWJzY3JpcHRpb25fcHJvZHVjdF9pZCcpLmRpc2FibGUoKTtcbiAgICAgICAgICAgIHRoaXMuZm9ybS5nZXQoJ2lzX3Byb2R1Y3RfZG9tYWluJykuZGlzYWJsZSgpO1xuICAgICAgICAgICAgdGhpcy5mb3JtLmdldCgnY3JtX3N1YnNjcmlwdGlvbl9pZCcpLmRpc2FibGUoKTtcbiAgICAgICAgICAgIHRoaXMuZm9ybS5nZXQoJ2NybV9wcm9kdWN0X2lkJykuZGlzYWJsZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYWRkQm9va0RlbW9MaW5rKCkge1xuICAgICAgICBjb25zdCBpdGVtcyA9IHRoaXMuZm9ybS5nZXQoJ2Jvb2tfZGVtbycpPy5nZXQoJ2l0ZW1zJykgYXMgRm9ybUFycmF5O1xuICAgICAgICBpdGVtcy5wdXNoKHRoaXMuZmIuZ3JvdXAoeyB0aXRsZTogWycnXSwgdXJsOiBbJyddIH0pKTtcbiAgICB9XG5cbiAgICBnZXQgaW50ZWdyYXRpb25zKCk6IEZvcm1Hcm91cCB7XG4gICAgICAgIHJldHVybiB0aGlzLmZvcm0uZ2V0KCdpbnRlZ3JhdGlvbnMnKSBhcyBGb3JtR3JvdXA7XG4gICAgfVxuXG4gICAgZ2V0IGludGVncmF0aW9uc0l0ZW1zKCk6IEZvcm1BcnJheSB7XG4gICAgICAgIHJldHVybiB0aGlzLmludGVncmF0aW9ucy5nZXQoJ2l0ZW1zJykgYXMgRm9ybUFycmF5O1xuICAgIH1cblxuICAgIGdldCBhYlRlc3RzKCk6IEZvcm1BcnJheSB7XG4gICAgICAgIHJldHVybiB0aGlzLmZvcm0uZ2V0KCdhYl90ZXN0cycpIGFzIEZvcm1BcnJheTtcbiAgICB9XG5cbiAgICBhZGRBYlRlc3QoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYWJUZXN0cy5wdXNoKFxuICAgICAgICAgICAgdGhpcy5mYi5ncm91cCh7XG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IFsnJ10sXG4gICAgICAgICAgICAgICAgZXhwZXJpbWVudF9uYW1lOiBbJyddLFxuICAgICAgICAgICAgICAgIGRiX3NoYXJkOiBbJyddLFxuICAgICAgICAgICAgICAgIG1pY3Jvc2VydmljZV9uYW1lOiBbJyddXG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHJlbW92ZUFiVGVzdChpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYWJUZXN0cy5yZW1vdmVBdChpbmRleCk7XG4gICAgfVxuXG4gICAgYWRkSW50ZWdyYXRpb25JdGVtKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmludGVncmF0aW9uc0l0ZW1zLnB1c2goXG4gICAgICAgICAgICB0aGlzLmZiLmdyb3VwKHtcbiAgICAgICAgICAgICAgICB0aXRsZTogWycnXSxcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogWycnXSxcbiAgICAgICAgICAgICAgICBibG9nX3VybDogWycnXSxcbiAgICAgICAgICAgICAgICBpbWFnZV91cmw6IFsnJ10sXG4gICAgICAgICAgICAgICAgdmlkZW9fdXJsOiBbJyddXG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGdldCBndWlkZXNJdGVtcygpOiBGb3JtQXJyYXkge1xuICAgICAgICByZXR1cm4gdGhpcy5mb3JtLmdldCgnZ3VpZGVzJyk/LmdldCgnaXRlbXMnKSBhcyBGb3JtQXJyYXk7XG4gICAgfVxuXG4gICAgYWRkR3VpZGVJdGVtKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmd1aWRlc0l0ZW1zLnB1c2goXG4gICAgICAgICAgICB0aGlzLmZiLmdyb3VwKHtcbiAgICAgICAgICAgICAgICB0aXRsZTogWycnXSxcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogWycnXSxcbiAgICAgICAgICAgICAgICBidXR0b25fdGV4dDogWycnXSxcbiAgICAgICAgICAgICAgICBpbWFnZV91cmw6IFsnJ10sXG4gICAgICAgICAgICAgICAgZ3VpZGVfdXJsOiBbJyddXG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHJlbW92ZUd1aWRlSXRlbShpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZ3VpZGVzSXRlbXMucmVtb3ZlQXQoaW5kZXgpO1xuICAgIH1cblxuICAgIHJlbW92ZUludGVncmF0aW9uSXRlbShpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaW50ZWdyYXRpb25zSXRlbXMucmVtb3ZlQXQoaW5kZXgpO1xuICAgIH1cblxuICAgIGdldFF1ZXN0aW9uT3B0aW9ucyhxdWVzdGlvbkluZGV4OiBudW1iZXIpOiBGb3JtQXJyYXkge1xuICAgICAgICByZXR1cm4gdGhpcy5jb250YWN0VXNRdWVzdGlvbnMuYXQocXVlc3Rpb25JbmRleCkuZ2V0KCdvcHRpb25zJykgYXMgRm9ybUFycmF5O1xuICAgIH1cblxuICAgIGdldCBmb290ZXJMaW5rc0l0ZW1zKCk6IEZvcm1BcnJheSB7XG4gICAgICAgIHJldHVybiB0aGlzLmZvcm0uZ2V0KCdmb290ZXJfbGlua3MnKT8uZ2V0KCdpdGVtcycpIGFzIEZvcm1BcnJheTtcbiAgICB9XG5cbiAgICBnZXRGb290ZXJTdWJ0aXRsZXMoaW5kZXg6IG51bWJlcik6IEZvcm1BcnJheSB7XG4gICAgICAgIHJldHVybiB0aGlzLmZvb3RlckxpbmtzSXRlbXMuYXQoaW5kZXgpLmdldCgnc3VidGl0bGVzJykgYXMgRm9ybUFycmF5O1xuICAgIH1cblxuICAgIGFkZEZvb3RlckxpbmtJdGVtKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmZvb3RlckxpbmtzSXRlbXMucHVzaChcbiAgICAgICAgICAgIHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgICAgICAgICAgIHRpdGxlOiBbJyddLFxuICAgICAgICAgICAgICAgIHBhdGg6IFsnJ10sXG4gICAgICAgICAgICAgICAgc3VidGl0bGVzOiB0aGlzLmZiLmFycmF5KFtdKVxuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICByZW1vdmVGb290ZXJMaW5rSXRlbShpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZm9vdGVyTGlua3NJdGVtcy5yZW1vdmVBdChpbmRleCk7XG4gICAgfVxuXG4gICAgYWRkRm9vdGVyU3VidGl0bGUobGlua0luZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgc3VidGl0bGVzID0gdGhpcy5mb290ZXJMaW5rc0l0ZW1zLmF0KGxpbmtJbmRleCkuZ2V0KCdzdWJ0aXRsZXMnKSBhcyBGb3JtQXJyYXk7XG4gICAgICAgIHN1YnRpdGxlcy5wdXNoKHRoaXMuZmIuZ3JvdXAoeyB0aXRsZTogWycnXSwgcGF0aDogWycnXSB9KSk7XG4gICAgfVxuXG4gICAgcmVtb3ZlRm9vdGVyU3VidGl0bGUobGlua0luZGV4OiBudW1iZXIsIHN1YkluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgc3VidGl0bGVzID0gdGhpcy5mb290ZXJMaW5rc0l0ZW1zLmF0KGxpbmtJbmRleCkuZ2V0KCdzdWJ0aXRsZXMnKSBhcyBGb3JtQXJyYXk7XG4gICAgICAgIHN1YnRpdGxlcy5yZW1vdmVBdChzdWJJbmRleCk7XG4gICAgfVxuXG4gICAgZ2V0IG5hdmJhcigpOiBGb3JtR3JvdXAge1xuICAgICAgICByZXR1cm4gdGhpcy5mb3JtLmdldCgnbmF2YmFyJykgYXMgRm9ybUdyb3VwO1xuICAgIH1cblxuICAgIGdldCBuYXZiYXJJdGVtcygpOiBGb3JtQXJyYXkge1xuICAgICAgICByZXR1cm4gdGhpcy5uYXZiYXIuZ2V0KCdpdGVtcycpIGFzIEZvcm1BcnJheTtcbiAgICB9XG5cbiAgICBnZXRTdWJ0aXRsZXMoaW5kZXg6IG51bWJlcik6IEZvcm1BcnJheSB7XG4gICAgICAgIHJldHVybiB0aGlzLm5hdmJhckl0ZW1zLmF0KGluZGV4KS5nZXQoJ3N1YnRpdGxlcycpIGFzIEZvcm1BcnJheTtcbiAgICB9XG5cbiAgICBnZXROYXZiYXJTdWJ0aXRsZXMoaW5kZXg6IG51bWJlcik6IEZvcm1BcnJheSB7XG4gICAgICAgIHJldHVybiB0aGlzLm5hdmJhckl0ZW1zLmF0KGluZGV4KS5nZXQoJ3N1YnRpdGxlcycpIGFzIEZvcm1BcnJheTtcbiAgICB9XG5cbiAgICBhZGROYXZiYXJJdGVtKCk6IHZvaWQge1xuICAgICAgICB0aGlzLm5hdmJhckl0ZW1zLnB1c2goXG4gICAgICAgICAgICB0aGlzLmZiLmdyb3VwKHtcbiAgICAgICAgICAgICAgICB0aXRsZTogWycnXSxcbiAgICAgICAgICAgICAgICBwYXRoOiBbJyddLFxuICAgICAgICAgICAgICAgIHN1YnRpdGxlczogdGhpcy5mYi5hcnJheShbXSlcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcmVtb3ZlTmF2YmFySXRlbShpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMubmF2YmFySXRlbXMucmVtb3ZlQXQoaW5kZXgpO1xuICAgIH1cblxuICAgIGFkZFN1YnRpdGxlKG5hdkluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5nZXRTdWJ0aXRsZXMobmF2SW5kZXgpLnB1c2godGhpcy5mYi5ncm91cCh7IHRpdGxlOiBbJyddLCBwYXRoOiBbJyddIH0pKTtcbiAgICB9XG5cbiAgICByZW1vdmVTdWJ0aXRsZShuYXZJbmRleDogbnVtYmVyLCBzdWJJbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZ2V0U3VidGl0bGVzKG5hdkluZGV4KS5yZW1vdmVBdChzdWJJbmRleCk7XG4gICAgfVxuXG4gICAgYWRkQ29udGFjdFVzT3B0aW9uKHF1ZXN0aW9uSW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLmdldFF1ZXN0aW9uT3B0aW9ucyhxdWVzdGlvbkluZGV4KS5wdXNoKFxuICAgICAgICAgICAgdGhpcy5mYi5ncm91cCh7XG4gICAgICAgICAgICAgICAgb3B0aW9uOiBbJyddXG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHJlbW92ZUNvbnRhY3RVc09wdGlvbihxdWVzdGlvbkluZGV4OiBudW1iZXIsIG9wdGlvbkluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5nZXRRdWVzdGlvbk9wdGlvbnMocXVlc3Rpb25JbmRleCkucmVtb3ZlQXQob3B0aW9uSW5kZXgpO1xuICAgIH1cblxuICAgIHJlbW92ZUJvb2tEZW1vTGluayhpbmRleDogbnVtYmVyKSB7XG4gICAgICAgIGNvbnN0IGl0ZW1zID0gdGhpcy5mb3JtLmdldCgnYm9va19kZW1vJyk/LmdldCgnaXRlbXMnKSBhcyBGb3JtQXJyYXk7XG4gICAgICAgIGl0ZW1zLnJlbW92ZUF0KGluZGV4KTtcbiAgICB9XG5cbiAgICBnZXQgY3RhcygpOiBGb3JtR3JvdXAge1xuICAgICAgICByZXR1cm4gdGhpcy5mb3JtLmdldCgnY3RhcycpIGFzIEZvcm1Hcm91cDtcbiAgICB9XG5cbiAgICBnZXQgY3Rhc0l0ZW1zKCk6IEZvcm1BcnJheSB7XG4gICAgICAgIHJldHVybiB0aGlzLmN0YXMuZ2V0KCdpdGVtcycpIGFzIEZvcm1BcnJheTtcbiAgICB9XG5cbiAgICBnZXQgY29udGFjdFVzKCk6IEZvcm1Hcm91cCB7XG4gICAgICAgIHJldHVybiB0aGlzLmZvcm0uZ2V0KCdjb250YWN0X3VzJykgYXMgRm9ybUdyb3VwO1xuICAgIH1cblxuICAgIGdldCBjb250YWN0VXNRdWVzdGlvbnMoKTogRm9ybUFycmF5IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udGFjdFVzLmdldCgncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5O1xuICAgIH1cblxuICAgIGFkZENvbnRhY3RVc1F1ZXN0aW9uKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNvbnRhY3RVc1F1ZXN0aW9ucy5wdXNoKFxuICAgICAgICAgICAgdGhpcy5mYi5ncm91cCh7XG4gICAgICAgICAgICAgICAgcXVlc3Rpb246IFsnJ10sXG4gICAgICAgICAgICAgICAgb3B0aW9uczogdGhpcy5mYi5hcnJheShbXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uOiBbJyddXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgXSlcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcmVtb3ZlQ29udGFjdFVzUXVlc3Rpb24oaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLmNvbnRhY3RVc1F1ZXN0aW9ucy5yZW1vdmVBdChpbmRleCk7XG4gICAgfVxuXG4gICAgYWRkQ3Rhc0l0ZW0oKSB7XG4gICAgICAgIHRoaXMuY3Rhc0l0ZW1zLnB1c2goXG4gICAgICAgICAgICB0aGlzLmZiLmdyb3VwKHtcbiAgICAgICAgICAgICAgICB0aXRsZTogWycnXSxcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogWycnXSxcbiAgICAgICAgICAgICAgICBidXR0b25fdGV4dDogWycnXSxcbiAgICAgICAgICAgICAgICBpbWFnZV91cmw6IFsnJ10sXG4gICAgICAgICAgICAgICAgY3RhX3VybDogWycnXVxuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICByZW1vdmVDdGFzSXRlbShpbmRleDogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuY3Rhc0l0ZW1zLnJlbW92ZUF0KGluZGV4KTtcbiAgICB9XG4gICAgZ2V0IHRlc3RpbW9uaWFscygpOiBGb3JtR3JvdXAge1xuICAgICAgICByZXR1cm4gdGhpcy5mb3JtLmdldCgndGVzdGltb25pYWxzJykgYXMgRm9ybUdyb3VwO1xuICAgIH1cblxuICAgIGdldCB0ZXN0aW1vbmlhbHNJdGVtcygpOiBGb3JtQXJyYXkge1xuICAgICAgICByZXR1cm4gdGhpcy5mb3JtLmdldCgndGVzdGltb25pYWxzLml0ZW1zJykgYXMgRm9ybUFycmF5O1xuICAgIH1cblxuICAgIGdldCBjb250YWN0VXNIdWJzcG90SXRlbXMoKTogRm9ybUFycmF5IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybS5nZXQoJ2NvbnRhY3RfdXMnKT8uZ2V0KCdodWJzcG90JykgYXMgRm9ybUFycmF5O1xuICAgIH1cblxuICAgIGFkZEh1YnNwb3RJdGVtKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNvbnRhY3RVc0h1YnNwb3RJdGVtcy5wdXNoKFxuICAgICAgICAgICAgdGhpcy5mYi5ncm91cCh7XG4gICAgICAgICAgICAgICAgaWQ6IFsnJ10sXG4gICAgICAgICAgICAgICAgcG9zaXRpb246IFsnJ10sXG4gICAgICAgICAgICAgICAgZGl2OiBbJyddXG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHJlbW92ZUh1YnNwb3RJdGVtKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jb250YWN0VXNIdWJzcG90SXRlbXMucmVtb3ZlQXQoaW5kZXgpO1xuICAgIH1cblxuICAgIG9wZW5QYXJ0bmVySW1hZ2VDcm9wcGVyKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFBhcnRuZXJJbmRleCA9IGluZGV4O1xuICAgICAgICB0aGlzLm1vZGFsU2VydmljZS5vcGVuKHRoaXMucGFydG5lckNyb3BwZXIsIHtcbiAgICAgICAgICAgIGNlbnRlcmVkOiB0cnVlLFxuICAgICAgICAgICAgd2luZG93Q2xhc3M6ICdtb2RhbC1ob2xkZXInXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGFkZFBhcnRuZXJJdGVtKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBpdGVtcyA9IHRoaXMuZm9ybS5nZXQoJ3BhcnRuZXJzJyk/LmdldCgnaXRlbXMnKSBhcyBGb3JtQXJyYXk7XG4gICAgICAgIGl0ZW1zLnB1c2goXG4gICAgICAgICAgICB0aGlzLmZiLmdyb3VwKHtcbiAgICAgICAgICAgICAgICBuYW1lOiBbJyddLFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBbJyddLFxuICAgICAgICAgICAgICAgIGJsb2dfdXJsOiBbJyddLFxuICAgICAgICAgICAgICAgIGltYWdlX3VybDogWycnXSxcbiAgICAgICAgICAgICAgICB2aWRlb191cmw6IFsnJ11cbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcmVtb3ZlUGFydG5lckl0ZW0oaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBjb25zdCBpdGVtcyA9IHRoaXMuZm9ybS5nZXQoJ3BhcnRuZXJzJyk/LmdldCgnaXRlbXMnKSBhcyBGb3JtQXJyYXk7XG4gICAgICAgIGl0ZW1zLnJlbW92ZUF0KGluZGV4KTtcbiAgICB9XG5cbiAgICBnZXQgdXNwc0l0ZW1zKCk6IEZvcm1BcnJheSB7XG4gICAgICAgIHJldHVybiB0aGlzLmZvcm0uZ2V0KCd1c3BzJykuZ2V0KCdpdGVtcycpIGFzIEZvcm1BcnJheTtcbiAgICB9XG5cbiAgICBhZGRVc3BJdGVtKCkge1xuICAgICAgICB0aGlzLnVzcHNJdGVtcy5wdXNoKHRoaXMuZmIuZ3JvdXAoeyBkZXNjcmlwdGlvbjogWycnXSB9KSk7XG4gICAgfVxuXG4gICAgcmVtb3ZlVXNwSXRlbShpbmRleDogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMudXNwc0l0ZW1zLnJlbW92ZUF0KGluZGV4KTtcbiAgICB9XG5cbiAgICBnZXQgdmlkZW9zKCk6IEZvcm1Hcm91cCB7XG4gICAgICAgIHJldHVybiB0aGlzLmZvcm0uZ2V0KCd2aWRlb3MnKSBhcyBGb3JtR3JvdXA7XG4gICAgfVxuXG4gICAgZ2V0IHZpZGVvc0l0ZW1zKCk6IEZvcm1BcnJheSB7XG4gICAgICAgIHJldHVybiB0aGlzLnZpZGVvcy5nZXQoJ2l0ZW1zJykgYXMgRm9ybUFycmF5O1xuICAgIH1cblxuICAgIGFkZFZpZGVvSXRlbSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy52aWRlb3NJdGVtcy5wdXNoKFxuICAgICAgICAgICAgdGhpcy5mYi5ncm91cCh7XG4gICAgICAgICAgICAgICAgdGl0bGU6IFsnJ10sXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IFsnJ10sXG4gICAgICAgICAgICAgICAgYmxvZ191cmw6IFsnJ10sXG4gICAgICAgICAgICAgICAgaW1hZ2VfdXJsOiBbJyddLFxuICAgICAgICAgICAgICAgIHZpZGVvX3VybDogWycnXVxuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICByZW1vdmVWaWRlb0l0ZW0oaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLnZpZGVvc0l0ZW1zLnJlbW92ZUF0KGluZGV4KTtcbiAgICB9XG5cbiAgICBhZGRUZXN0aW1vbmlhbEl0ZW0oKTogdm9pZCB7XG4gICAgICAgIHRoaXMudGVzdGltb25pYWxzSXRlbXMucHVzaChcbiAgICAgICAgICAgIHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgICAgICAgICAgIHRlc3RpbW9uaWFsOiBbJyddLFxuICAgICAgICAgICAgICAgIG5hbWU6IFsnJ10sXG4gICAgICAgICAgICAgICAgYmxvZ191cmw6IFsnJ10sXG4gICAgICAgICAgICAgICAgaW1hZ2VfdXJsOiBbJyddLFxuICAgICAgICAgICAgICAgIHZpZGVvX3VybDogWycnXVxuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICByZW1vdmVUZXN0aW1vbmlhbEl0ZW0oaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLnRlc3RpbW9uaWFsc0l0ZW1zLnJlbW92ZUF0KGluZGV4KTtcbiAgICB9XG5cbiAgICBnZXQgaGVhZGVyU3ViSGVhZGluZ3MoKTogRm9ybUFycmF5IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybS5nZXQoJ2hlYWRlcicpLmdldCgnc3ViX2hlYWRpbmdzJykgYXMgRm9ybUFycmF5O1xuICAgIH1cblxuICAgIGFkZEhlYWRlclN1YkhlYWRpbmcoKSB7XG4gICAgICAgIHRoaXMuaGVhZGVyU3ViSGVhZGluZ3MucHVzaCh0aGlzLmZiLmdyb3VwKHsgZGVzY3JpcHRpb246IFsnJ10gfSkpO1xuICAgIH1cblxuICAgIHJlbW92ZUhlYWRlclN1YkhlYWRpbmcoaW5kZXg6IG51bWJlcikge1xuICAgICAgICB0aGlzLmhlYWRlclN1YkhlYWRpbmdzLnJlbW92ZUF0KGluZGV4KTtcbiAgICB9XG5cbiAgICBnZXQgcGFydG5lcnNJdGVtcygpOiBGb3JtQXJyYXkge1xuICAgICAgICByZXR1cm4gdGhpcy5mb3JtLmdldCgncGFydG5lcnMnKT8uZ2V0KCdpdGVtcycpIGFzIEZvcm1BcnJheTtcbiAgICB9XG5cbiAgICBhZGRQYXJ0bmVySW1hZ2UoKSB7XG4gICAgICAgIHRoaXMucGFydG5lcnNJdGVtcy5wdXNoKFxuICAgICAgICAgICAgdGhpcy5mYi5ncm91cCh7XG4gICAgICAgICAgICAgICAgaW1hZ2VfdXJsOiBbJyddXG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHJlbW92ZVBhcnRuZXJJbWFnZShpbmRleDogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMucGFydG5lcnNJdGVtcy5yZW1vdmVBdChpbmRleCk7XG4gICAgfVxuXG4gICAgZ2V0QWxsT3B0aW9ucygpIHtcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xuICAgICAgICBmb3JrSm9pbih7XG4gICAgICAgICAgICBvcHRpb25zOiB0aGlzLmFkbWluU2VydmljZS5nZXRBdmFpbGFibGVEb21haW5PcHRpb25zKHRoaXMuc3Vic2NyaXB0aW9uSWQpLFxuICAgICAgICAgICAgZ2V0UHJvZHVjdDogdGhpcy5wcm9kdWN0U2VydmljZS5nZXRQcm9kdWN0TGlzdCh7fSwgdGhpcy5zdWJzY3JpcHRpb25JZCksXG4gICAgICAgICAgICBjb25maWc6IHRoaXMuYWRtaW5TZXJ2aWNlLmdldERvbWFpbkNvbmZpZ0J5SWQoXG4gICAgICAgICAgICAgICAgSGVscGVyU2VydmljZS5lZmZlY3RpdmVDb25maWdJZCh0aGlzLmR1cGxpY2F0ZUNvbmZpZ0lkLCB0aGlzLmlkKSxcbiAgICAgICAgICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbklkXG4gICAgICAgICAgICApXG4gICAgICAgIH0pXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgICAgICAgICAgLy8gb3B0aW9uc1xuICAgICAgICAgICAgICAgIHRoaXMubWFzdGVyU3Vic2NyaXB0aW9uUHJvZHVjdExpc3QgPSBbXG4gICAgICAgICAgICAgICAgICAgIHsgaWQ6IG51bGwsIG5hbWU6ICdTZWxlY3QgTWFzdGVyIFByb2R1Y3QnIH0sXG4gICAgICAgICAgICAgICAgICAgIC4uLihyZXM/Lm9wdGlvbnM/Lm1hc3Rlcl9zdWJzY3JpcHRpb24/LnByb2R1Y3RzID8/IFtdKVxuICAgICAgICAgICAgICAgIF07XG5cbiAgICAgICAgICAgICAgICB0aGlzLm1hc3RlclN1YnNjcmlwdGlvbnNMaXN0ID0gW1xuICAgICAgICAgICAgICAgICAgICB7IGxhYmVsOiAnU2VsZWN0IE1hc3RlciBTdWJzY3JpcHRpb24nLCB2YWx1ZTogbnVsbCB9LFxuICAgICAgICAgICAgICAgICAgICAuLi4ocmVzPy5vcHRpb25zPy5tYXN0ZXJfc3Vic2NyaXB0aW9uPy5zdWJzY3JpcHRpb25zID8/IFtdKS5tYXAoc3ViID0+ICh7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogc3ViLm9yZ2FuaXNhdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gYCR7c3ViLm9yZ2FuaXNhdGlvbn0gLSAke3N1Yi5jb250YWN0X25hbWV9YFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogc3ViLmNvbnRhY3RfbmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBzdWIuaWRcbiAgICAgICAgICAgICAgICAgICAgfSkpXG4gICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgICAgICB0aGlzLnN1YnNjcmlwdGlvblRvc0xpc3QgPSBbXG4gICAgICAgICAgICAgICAgICAgIHsgaWQ6IG51bGwsIHRpdGxlOiAnU2VsZWN0IE1haW4gVE9TJyB9LFxuICAgICAgICAgICAgICAgICAgICAuLi4ocmVzPy5vcHRpb25zPy5tYXN0ZXJfc3Vic2NyaXB0aW9uPy5zdWJzY3JpcHRpb25fdG9zID8/IFtdKVxuICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICAgICAgdGhpcy5jcm1TdWJzY3JpcHRpb25zTGlzdCA9IFtcbiAgICAgICAgICAgICAgICAgICAgeyBpZDogbnVsbCwgb3JnYW5pc2F0aW9uOiBudWxsLCBjb250YWN0X25hbWU6ICdTZWxlY3QgQ1JNIFN1YnNjcmlwdGlvbicgfSxcbiAgICAgICAgICAgICAgICAgICAgLi4uKHJlcz8ub3B0aW9ucz8ubWFzdGVyX2NybT8uc3Vic2NyaXB0aW9ucyA/PyBbXSlcbiAgICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgICAgIHRoaXMuY3JtU291cmNlc0xpc3QgPSBbXG4gICAgICAgICAgICAgICAgICAgIHsgaWQ6IG51bGwsIG5hbWU6ICdTZWxlY3QgQ1JNIFNvdXJjZScgfSxcbiAgICAgICAgICAgICAgICAgICAgLi4uKHJlcz8ub3B0aW9ucz8ubWFzdGVyX2NybT8uc291cmNlcyA/PyBbXSlcbiAgICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgICAgIHRoaXMuY3JtUHJvZHVjdExpc3QgPSBbXG4gICAgICAgICAgICAgICAgICAgIHsgaWQ6IG51bGwsIG5hbWU6ICdTZWxlY3QgQ1JNIFByb2R1Y3QnLCBzdWJzY3JpcHRpb25faWQ6IG51bGwgfSxcbiAgICAgICAgICAgICAgICAgICAgLi4uKHJlcz8ub3B0aW9ucz8ubWFzdGVyX2NybT8ucHJvZHVjdHMgPz8gW10pXG4gICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgICAgICAvLyBlbmQgb3B0aW9uc1xuICAgICAgICAgICAgICAgIHRoaXMucHJvZHVjdHNMaXN0ID0gdGhpcy5ncm91cFByb2R1Y3RzKHJlcz8uZ2V0UHJvZHVjdD8ucHJvZHVjdHMpO1xuICAgICAgICAgICAgICAgIC8vIGNvbmZpZyB0byBwYXRjaCB2YWx1ZXNcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGEgPSByZXMuY29uZmlnO1xuICAgICAgICAgICAgICAgIGNvbnN0IGRlbW8gPSB0aGlzLmRhdGEuYm9va19kZW1vO1xuICAgICAgICAgICAgICAgIGNvbnN0IGRlbW9Hcm91cCA9IHRoaXMuZm9ybS5nZXQoJ2Jvb2tfZGVtbycpIGFzIEZvcm1Hcm91cDtcbiAgICAgICAgICAgICAgICBjb25zdCBpdGVtc0FycmF5ID0gZGVtb0dyb3VwLmdldCgnaXRlbXMnKSBhcyBGb3JtQXJyYXk7XG5cbiAgICAgICAgICAgICAgICBkZW1vR3JvdXAucGF0Y2hWYWx1ZSh7XG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiBkZW1vPy50aXRsZSA/PyAnJyxcbiAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IGRlbW8/LmRlc2NyaXB0aW9uID8/ICcnXG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICBjb25zdCB1c3BzR3JvdXAgPSB0aGlzLmZvcm0uZ2V0KCd1c3BzJykgYXMgRm9ybUdyb3VwO1xuICAgICAgICAgICAgICAgIGNvbnN0IHVzcEl0ZW1zQXJyYXkgPSB1c3BzR3JvdXAuZ2V0KCdpdGVtcycpIGFzIEZvcm1BcnJheTtcblxuICAgICAgICAgICAgICAgIHVzcHNHcm91cC5wYXRjaFZhbHVlKHtcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6IHJlcy5jb25maWc/LnVzcHM/LnRpdGxlID8/ICcnLFxuICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogcmVzLmNvbmZpZz8udXNwcz8uZGVzY3JpcHRpb24gPz8gJydcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIHVzcEl0ZW1zQXJyYXkuY2xlYXIoKTtcbiAgICAgICAgICAgICAgICAocmVzLmNvbmZpZz8udXNwcz8uaXRlbXMgPz8gW10pLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHVzcEl0ZW1zQXJyYXkucHVzaChcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBbaXRlbS5kZXNjcmlwdGlvbiA/PyAnJ11cbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICBjb25zdCBoZWFkZXJHcm91cCA9IHRoaXMuZm9ybS5nZXQoJ2hlYWRlcicpIGFzIEZvcm1Hcm91cDtcbiAgICAgICAgICAgICAgICBjb25zdCBzdWJIZWFkaW5nc0FycmF5ID0gaGVhZGVyR3JvdXAuZ2V0KCdzdWJfaGVhZGluZ3MnKSBhcyBGb3JtQXJyYXk7XG5cbiAgICAgICAgICAgICAgICBoZWFkZXJHcm91cC5wYXRjaFZhbHVlKHtcbiAgICAgICAgICAgICAgICAgICAgaGVhZGxpbmU6IHJlcy5jb25maWc/LmhlYWRlcj8uaGVhZGxpbmUgPz8gJycsXG4gICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiByZXMuY29uZmlnPy5oZWFkZXI/LmRlc2NyaXB0aW9uID8/ICcnLFxuICAgICAgICAgICAgICAgICAgICB2aWRlb191cmw6IHJlcy5jb25maWc/LmhlYWRlcj8udmlkZW9fdXJsID8/ICcnLFxuICAgICAgICAgICAgICAgICAgICBiZ19pbWFnZV91cmw6IHJlcy5jb25maWc/LmhlYWRlcj8uYmdfaW1hZ2VfdXJsID8/ICcnXG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICBzdWJIZWFkaW5nc0FycmF5LmNsZWFyKCk7XG4gICAgICAgICAgICAgICAgKHJlcy5jb25maWc/LmhlYWRlcj8uc3ViX2hlYWRpbmdzID8/IFtdKS5mb3JFYWNoKHNoID0+IHtcbiAgICAgICAgICAgICAgICAgICAgc3ViSGVhZGluZ3NBcnJheS5wdXNoKFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5mYi5ncm91cCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IFtzaC5kZXNjcmlwdGlvbiA/PyAnJ11cbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICBjb25zdCB0ZXN0aW1vbmlhbHNHcm91cCA9IHRoaXMuZm9ybS5nZXQoJ3Rlc3RpbW9uaWFscycpIGFzIEZvcm1Hcm91cDtcbiAgICAgICAgICAgICAgICBjb25zdCB0ZXN0aW1vbmlhbEl0ZW1zID0gdGVzdGltb25pYWxzR3JvdXAuZ2V0KCdpdGVtcycpIGFzIEZvcm1BcnJheTtcblxuICAgICAgICAgICAgICAgIHRlc3RpbW9uaWFsc0dyb3VwLnBhdGNoVmFsdWUoe1xuICAgICAgICAgICAgICAgICAgICB0aXRsZTogcmVzLmNvbmZpZz8udGVzdGltb25pYWxzPy50aXRsZSA/PyAnJyxcbiAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IHJlcy5jb25maWc/LnRlc3RpbW9uaWFscz8uZGVzY3JpcHRpb24gPz8gJydcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIHRlc3RpbW9uaWFsSXRlbXMuY2xlYXIoKTtcbiAgICAgICAgICAgICAgICAocmVzLmNvbmZpZz8udGVzdGltb25pYWxzPy5pdGVtcyA/PyBbXSkuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGVzdGltb25pYWxJdGVtcy5wdXNoKFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5mYi5ncm91cCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdGltb25pYWw6IFtpdGVtPy50ZXN0aW1vbmlhbCA/PyAnJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogW2l0ZW0/Lm5hbWUgPz8gJyddLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJsb2dfdXJsOiBbaXRlbT8uYmxvZ191cmwgPz8gJyddLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGltYWdlX3VybDogW2l0ZW0/LmltYWdlX3VybCA/PyAnJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlkZW9fdXJsOiBbaXRlbT8udmlkZW9fdXJsID8/ICcnXVxuICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IGN0YXNHcm91cCA9IHRoaXMuZm9ybS5nZXQoJ2N0YXMnKSBhcyBGb3JtR3JvdXA7XG4gICAgICAgICAgICAgICAgY29uc3QgY3Rhc0l0ZW1zID0gY3Rhc0dyb3VwLmdldCgnaXRlbXMnKSBhcyBGb3JtQXJyYXk7XG5cbiAgICAgICAgICAgICAgICBjdGFzR3JvdXAucGF0Y2hWYWx1ZSh7XG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiByZXMuY29uZmlnPy5jdGFzPy50aXRsZSA/PyAnJyxcbiAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IHJlcy5jb25maWc/LmN0YXM/LmRlc2NyaXB0aW9uID8/ICcnLFxuICAgICAgICAgICAgICAgICAgICBpbWFnZV91cmw6IHJlcy5jb25maWc/LmN0YXM/LmltYWdlX3VybCA/PyAnJ1xuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgY3Rhc0l0ZW1zLmNsZWFyKCk7XG4gICAgICAgICAgICAgICAgKHJlcy5jb25maWc/LmN0YXM/Lml0ZW1zID8/IFtdKS5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICAgICAgICAgICAgICBjdGFzSXRlbXMucHVzaChcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiBbaXRlbT8udGl0bGUgPz8gJyddLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBbaXRlbT8uZGVzY3JpcHRpb24gPz8gJyddLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1dHRvbl90ZXh0OiBbaXRlbT8uYnV0dG9uX3RleHQgPz8gJyddLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGltYWdlX3VybDogW2l0ZW0/LmltYWdlX3VybCA/PyAnJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY3RhX3VybDogW2l0ZW0/LmN0YV91cmwgPz8gJyddLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZGVvX3VybDogW2l0ZW0/LnZpZGVvX3VybCA/PyAnJ11cbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICBjb25zdCBndWlkZXNHcm91cCA9IHRoaXMuZm9ybS5nZXQoJ2d1aWRlcycpIGFzIEZvcm1Hcm91cDtcbiAgICAgICAgICAgICAgICBjb25zdCBndWlkZXNJdGVtcyA9IGd1aWRlc0dyb3VwLmdldCgnaXRlbXMnKSBhcyBGb3JtQXJyYXk7XG5cbiAgICAgICAgICAgICAgICBndWlkZXNJdGVtcy5jbGVhcigpO1xuXG4gICAgICAgICAgICAgICAgKHJlcy5jb25maWc/Lmd1aWRlcz8uaXRlbXMgPz8gW10pLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGd1aWRlc0l0ZW1zLnB1c2goXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZiLmdyb3VwKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogW2l0ZW0/LnRpdGxlID8/ICcnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogW2l0ZW0/LmRlc2NyaXB0aW9uID8/ICcnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBidXR0b25fdGV4dDogW2l0ZW0/LmJ1dHRvbl90ZXh0ID8/ICcnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbWFnZV91cmw6IFtpdGVtPy5pbWFnZV91cmwgPz8gJyddLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGd1aWRlX3VybDogW2l0ZW0/Lmd1aWRlX3VybCA/PyAnJ11cbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICBjb25zdCBwYXJ0bmVyc0dyb3VwID0gdGhpcy5mb3JtLmdldCgncGFydG5lcnMnKSBhcyBGb3JtR3JvdXA7XG4gICAgICAgICAgICAgICAgY29uc3QgcGFydG5lcnNJdGVtcyA9IHBhcnRuZXJzR3JvdXAuZ2V0KCdpdGVtcycpIGFzIEZvcm1BcnJheTtcblxuICAgICAgICAgICAgICAgIHBhcnRuZXJzR3JvdXAucGF0Y2hWYWx1ZSh7XG4gICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiB0aGlzLmRhdGE/LnBhcnRuZXJzPy5kZXNjcmlwdGlvbiA/PyAnJ1xuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgcGFydG5lcnNJdGVtcy5jbGVhcigpO1xuICAgICAgICAgICAgICAgICh0aGlzLmRhdGE/LnBhcnRuZXJzPy5pdGVtcyA/PyBbXSkuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcGFydG5lcnNJdGVtcy5wdXNoKFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5mYi5ncm91cCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW1hZ2VfdXJsOiBbaXRlbT8uaW1hZ2VfdXJsID8/ICcnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBbaXRlbT8ubmFtZSA/PyAnJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IFtpdGVtPy5kZXNjcmlwdGlvbiA/PyAnJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmxvZ191cmw6IFtpdGVtPy5ibG9nX3VybCA/PyAnJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlkZW9fdXJsOiBbaXRlbT8udmlkZW9fdXJsID8/ICcnXVxuICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIGl0ZW1zQXJyYXkuY2xlYXIoKTtcbiAgICAgICAgICAgICAgICAoZGVtbz8uaXRlbXMgPz8gW10pLmZvckVhY2gobGluayA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGl0ZW1zQXJyYXkucHVzaChcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiBbbGluay50aXRsZSA/PyAnJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBbbGluay51cmwgPz8gJyddXG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgY29uc3QgY29udGFjdFVzR3JvdXAgPSB0aGlzLmZvcm0uZ2V0KCdjb250YWN0X3VzJykgYXMgRm9ybUdyb3VwO1xuICAgICAgICAgICAgICAgIGNvbnN0IHF1ZXN0aW9uc0FycmF5ID0gY29udGFjdFVzR3JvdXAuZ2V0KCdxdWVzdGlvbnMnKSBhcyBGb3JtQXJyYXk7XG4gICAgICAgICAgICAgICAgY29uc3QgaHVic3BvdEFycmF5ID0gY29udGFjdFVzR3JvdXAuZ2V0KCdodWJzcG90JykgYXMgRm9ybUFycmF5O1xuICAgICAgICAgICAgICAgIGNvbnRhY3RVc0dyb3VwLnBhdGNoVmFsdWUoe1xuICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogcmVzLmNvbmZpZz8uY29udGFjdF91cz8uZGVzY3JpcHRpb24gPz8gJydcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIHF1ZXN0aW9uc0FycmF5LmNsZWFyKCk7XG4gICAgICAgICAgICAgICAgaHVic3BvdEFycmF5LmNsZWFyKCk7XG4gICAgICAgICAgICAgICAgKHJlcy5jb25maWc/LmNvbnRhY3RfdXM/LnF1ZXN0aW9ucyA/PyBbXSkuZm9yRWFjaChxID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcXVlc3Rpb25zQXJyYXkucHVzaChcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXN0aW9uOiBbcT8ucXVlc3Rpb24gPz8gJyddLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnM6IHRoaXMuZmIuYXJyYXkoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChxPy5vcHRpb25zID8/IFtdKS5tYXAobyA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5mYi5ncm91cCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uOiBbbz8ub3B0aW9uID8/ICcnXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICAocmVzLmNvbmZpZz8uY29udGFjdF91cz8uaHVic3BvdCA/PyBbXSkuZm9yRWFjaChoID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaHVic3BvdEFycmF5LnB1c2goXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZiLmdyb3VwKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZDogW2g/LmlkID8/ICcnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogW2g/LnBvc2l0aW9uID8/ICcnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXY6IFtoPy5kaXYgPz8gJyddXG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgY29uc3QgdmlkZW9zR3JvdXAgPSB0aGlzLmZvcm0uZ2V0KCd2aWRlb3MnKSBhcyBGb3JtR3JvdXA7XG4gICAgICAgICAgICAgICAgY29uc3QgdmlkZW9zSXRlbXMgPSB2aWRlb3NHcm91cC5nZXQoJ2l0ZW1zJykgYXMgRm9ybUFycmF5O1xuXG4gICAgICAgICAgICAgICAgdmlkZW9zR3JvdXAucGF0Y2hWYWx1ZSh7XG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiByZXMuY29uZmlnPy52aWRlb3M/LnRpdGxlID8/ICcnLFxuICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogcmVzLmNvbmZpZz8udmlkZW9zPy5kZXNjcmlwdGlvbiA/PyAnJ1xuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgdmlkZW9zSXRlbXMuY2xlYXIoKTtcbiAgICAgICAgICAgICAgICAocmVzLmNvbmZpZz8udmlkZW9zPy5pdGVtcyA/PyBbXSkuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdmlkZW9zSXRlbXMucHVzaChcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiBbaXRlbT8udGl0bGUgPz8gJyddLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBbaXRlbT8uZGVzY3JpcHRpb24gPz8gJyddLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJsb2dfdXJsOiBbaXRlbT8uYmxvZ191cmwgPz8gJyddLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGltYWdlX3VybDogW2l0ZW0/LmltYWdlX3VybCA/PyAnJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlkZW9fdXJsOiBbaXRlbT8udmlkZW9fdXJsID8/ICcnXVxuICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IGludGVncmF0aW9uc0dyb3VwID0gdGhpcy5mb3JtLmdldCgnaW50ZWdyYXRpb25zJykgYXMgRm9ybUdyb3VwO1xuICAgICAgICAgICAgICAgIGNvbnN0IGludGVncmF0aW9uc0l0ZW1zID0gaW50ZWdyYXRpb25zR3JvdXAuZ2V0KCdpdGVtcycpIGFzIEZvcm1BcnJheTtcblxuICAgICAgICAgICAgICAgIGludGVncmF0aW9uc0dyb3VwLnBhdGNoVmFsdWUoe1xuICAgICAgICAgICAgICAgICAgICB0aXRsZTogcmVzLmNvbmZpZz8uaW50ZWdyYXRpb25zPy50aXRsZSA/PyAnJyxcbiAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IHJlcy5jb25maWc/LmludGVncmF0aW9ucz8uZGVzY3JpcHRpb24gPz8gJydcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIGludGVncmF0aW9uc0l0ZW1zLmNsZWFyKCk7XG4gICAgICAgICAgICAgICAgKHJlcy5jb25maWc/LmludGVncmF0aW9ucz8uaXRlbXMgPz8gW10pLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGludGVncmF0aW9uc0l0ZW1zLnB1c2goXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZiLmdyb3VwKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogW2l0ZW0/LnRpdGxlID8/ICcnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogW2l0ZW0/LmRlc2NyaXB0aW9uID8/ICcnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBibG9nX3VybDogW2l0ZW0/LmJsb2dfdXJsID8/ICcnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbWFnZV91cmw6IFtpdGVtPy5pbWFnZV91cmwgPz8gJyddLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZGVvX3VybDogW2l0ZW0/LnZpZGVvX3VybCA/PyAnJ11cbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICB0aGlzLnNoYXJkVXJsID0gcmVzPy5jb25maWc/LnNoYXJkX3VybDtcblxuICAgICAgICAgICAgICAgIGNvbnN0IGZpeGVkRGF0YSA9IHsgLi4udGhpcy5kYXRhIH0gYXMgYW55O1xuXG4gICAgICAgICAgICAgICAgY29uc3QgZW5zdXJlQXJyYXlGaWVsZCA9IChvYmo6IGFueSwga2V5OiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgICAgICAgIGlmICghb2JqIHx8IHR5cGVvZiBvYmogIT09ICdvYmplY3QnIHx8ICFBcnJheS5pc0FycmF5KG9ialtrZXldKSkge1xuICAgICAgICAgICAgICAgICAgICBvYmogPSB7IC4uLm9iaiwgW2tleV06IFtdIH07XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICByZXR1cm4gb2JqO1xuICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICBjb25zdCBrZXlzV2l0aEl0ZW1zID0gW1xuICAgICAgICAgICAgICAgICAgJ3Rlc3RpbW9uaWFscycsXG4gICAgICAgICAgICAgICAgICAnYm9va19kZW1vJyxcbiAgICAgICAgICAgICAgICAgICdwYXJ0bmVycycsXG4gICAgICAgICAgICAgICAgICAndmlkZW9zJyxcbiAgICAgICAgICAgICAgICAgICdpbnRlZ3JhdGlvbnMnLFxuICAgICAgICAgICAgICAgICAgJ3VzcHMnLFxuICAgICAgICAgICAgICAgICAgJ2N0YXMnLFxuICAgICAgICAgICAgICAgICAgJ2d1aWRlcycsXG4gICAgICAgICAgICAgICAgICAnbmF2YmFyJyxcbiAgICAgICAgICAgICAgICAgICdmb290ZXJfbGlua3MnXG4gICAgICAgICAgICAgICAgXTtcblxuICAgICAgICAgICAgICAgIGtleXNXaXRoSXRlbXMuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgICAgICAgICAgICBmaXhlZERhdGFba2V5XSA9IGVuc3VyZUFycmF5RmllbGQoZml4ZWREYXRhW2tleV0sICdpdGVtcycpO1xuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgZml4ZWREYXRhLmFiX3Rlc3RzID0gQXJyYXkuaXNBcnJheShmaXhlZERhdGEuYWJfdGVzdHMpID8gZml4ZWREYXRhLmFiX3Rlc3RzIDogW107XG5cbiAgICAgICAgICAgICAgICBmaXhlZERhdGEuaGVhZGVyID0gZW5zdXJlQXJyYXlGaWVsZChmaXhlZERhdGEuaGVhZGVyLCAnc3ViX2hlYWRpbmdzJyk7XG4gICAgICAgICAgICAgICAgZml4ZWREYXRhLmNvbnRhY3RfdXMgPSB0eXBlb2YgZml4ZWREYXRhLmNvbnRhY3RfdXMgPT09ICdvYmplY3QnICYmIGZpeGVkRGF0YS5jb250YWN0X3VzICE9PSBudWxsID8geyAuLi5maXhlZERhdGEuY29udGFjdF91cyB9IDoge307XG4gICAgICAgICAgICAgICAgZml4ZWREYXRhLmNvbnRhY3RfdXMucXVlc3Rpb25zID0gQXJyYXkuaXNBcnJheShmaXhlZERhdGEuY29udGFjdF91cy5xdWVzdGlvbnMpID8gZml4ZWREYXRhLmNvbnRhY3RfdXMucXVlc3Rpb25zIDogW107XG4gICAgICAgICAgICAgICAgZml4ZWREYXRhLmNvbnRhY3RfdXMuaHVic3BvdCA9IEFycmF5LmlzQXJyYXkoZml4ZWREYXRhLmNvbnRhY3RfdXMuaHVic3BvdCkgPyBmaXhlZERhdGEuY29udGFjdF91cy5odWJzcG90IDogW107XG5cbiAgICAgICAgICAgICAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZShmaXhlZERhdGEpO1xuICAgICAgICAgICAgICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKHtcbiAgICAgICAgICAgICAgICAgICAgY3NfcHJvZHVjdF9pZDogdGhpcy5wcm9kdWN0c0xpc3QuZmluZCh4ID0+IHguaWQgPT09IHRoaXMuZGF0YT8uY3NfcHJvZHVjdF9pZCksXG4gICAgICAgICAgICAgICAgICAgIHRyaWFsX3Byb2R1Y3RfaWQ6IHRoaXMucHJvZHVjdHNMaXN0LmZpbmQoXG4gICAgICAgICAgICAgICAgICAgICAgICB4ID0+IHguaWQgPT09IHRoaXMuZGF0YT8udHJpYWxfcHJvZHVjdF9pZFxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICBjb25zdCBuYXZiYXJHcm91cCA9IHRoaXMuZm9ybS5nZXQoJ25hdmJhcicpIGFzIEZvcm1Hcm91cDtcbiAgICAgICAgICAgICAgICBjb25zdCBuYXZiYXJJdGVtcyA9IG5hdmJhckdyb3VwLmdldCgnaXRlbXMnKSBhcyBGb3JtQXJyYXk7XG4gICAgICAgICAgICAgICAgbmF2YmFySXRlbXMuY2xlYXIoKTtcblxuICAgICAgICAgICAgICAgIChyZXMuY29uZmlnPy5uYXZiYXI/Lml0ZW1zID8/IFtdKS5mb3JFYWNoKG5hdiA9PiB7XG4gICAgICAgICAgICAgICAgICAgIG5hdmJhckl0ZW1zLnB1c2goXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZiLmdyb3VwKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogW25hdi50aXRsZSA/PyAnJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aDogW25hdi5wYXRoID8/ICcnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJ0aXRsZXM6IHRoaXMuZmIuYXJyYXkoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChuYXYuc3VidGl0bGVzID8/IFtdKS5tYXAoc3ViID0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZiLmdyb3VwKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogW3N1Yi50aXRsZSA/PyAnJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aDogW3N1Yi5wYXRoID8/ICcnXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICBjb25zdCBmb290ZXJMaW5rc0dyb3VwID0gdGhpcy5mb3JtLmdldCgnZm9vdGVyX2xpbmtzJykgYXMgRm9ybUdyb3VwO1xuICAgICAgICAgICAgICAgIGNvbnN0IGZvb3RlckxpbmtzSXRlbXMgPSBmb290ZXJMaW5rc0dyb3VwLmdldCgnaXRlbXMnKSBhcyBGb3JtQXJyYXk7XG5cbiAgICAgICAgICAgICAgICBmb290ZXJMaW5rc0l0ZW1zLmNsZWFyKCk7XG5cbiAgICAgICAgICAgICAgICAocmVzLmNvbmZpZz8uZm9vdGVyX2xpbmtzPy5pdGVtcyA/PyBbXSkuZm9yRWFjaChsaW5rID0+IHtcbiAgICAgICAgICAgICAgICAgICAgZm9vdGVyTGlua3NJdGVtcy5wdXNoKFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5mYi5ncm91cCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IFtsaW5rPy50aXRsZSA/PyAnJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aDogW2xpbms/LnBhdGggPz8gJyddLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1YnRpdGxlczogdGhpcy5mYi5hcnJheShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbms/LnN1YnRpdGxlcyA/PyBbXSkubWFwKHN1YiA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5mYi5ncm91cCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IFtzdWI/LnRpdGxlID8/ICcnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoOiBbc3ViPy5wYXRoID8/ICcnXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICBpZiAocmVzPy5jb25maWc/LmNzX2N0YV9pZnJhbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUoe1xuICAgICAgICAgICAgICAgICAgICAgICAgY3NfY3RhX2lmcmFtZTogSlNPTi5wYXJzZShyZXM/LmNvbmZpZz8uY3NfY3RhX2lmcmFtZSlcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChyZXM/LmNvbmZpZz8udHJpYWxfY3RhX2lmcmFtZSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZSh7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmlhbF9jdGFfaWZyYW1lOiBKU09OLnBhcnNlKHJlcz8uY29uZmlnPy50cmlhbF9jdGFfaWZyYW1lKVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBjb25zdCBhYlRlc3RzQXJyYXkgPSB0aGlzLmFiVGVzdHM7XG4gICAgICAgICAgICAgICAgYWJUZXN0c0FycmF5LmNsZWFyKCk7XG4gICAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkocmVzLmNvbmZpZz8uYWJfdGVzdHMpKSB7XG4gICAgICAgICAgICAgICAgICAgIChyZXMuY29uZmlnPy5hYl90ZXN0cyA/PyBbXSkuZm9yRWFjaCh0ZXN0ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFiVGVzdHNBcnJheS5wdXNoKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogW3Rlc3Q/LmRlc2NyaXB0aW9uID8/ICcnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwZXJpbWVudF9uYW1lOiBbdGVzdD8uZXhwZXJpbWVudF9uYW1lID8/ICcnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGJfc2hhcmQ6IFt0ZXN0Py5kYl9zaGFyZCA/PyAnJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pY3Jvc2VydmljZV9uYW1lOiBbdGVzdD8ubWljcm9zZXJ2aWNlX25hbWUgPz8gJyddXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuYWRkKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICB0aGlzLnVwbG9hZGVyLmNoYW5nZXMuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuY2hpbGRMaXN0ID0gdGhpcy51cGxvYWRlci50b0FycmF5KCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGdldCBmKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5mb3JtLmNvbnRyb2xzO1xuICAgIH1cblxuICAgIHB1YmxpYyBzb3J0T2JqKG9iaikge1xuICAgICAgICByZXR1cm4gT2JqZWN0LmtleXMob2JqKVxuICAgICAgICAgICAgLnNvcnQoKGEsIGIpID0+IGEubG9jYWxlQ29tcGFyZShiKSlcbiAgICAgICAgICAgIC5yZWR1Y2UoKHJlc3VsdCwga2V5KSA9PiB7XG4gICAgICAgICAgICAgICAgcmVzdWx0W2tleV0gPSBvYmpba2V5XTtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgICAgfSwge30pO1xuICAgIH1cblxuICAgIHNlYXJjaFByb2R1Y3QoZXZlbnQpIHtcbiAgICAgICAgdGhpcy5wcm9kdWN0U2VydmljZVxuICAgICAgICAgICAgLmdldFByb2R1Y3RMaXN0KHsgc2VhcmNoOiBldmVudD8ucXVlcnkgPz8gJycgfSwgdGhpcy5zdWJzY3JpcHRpb25JZClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUocmVzcG9uc2UgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMucHJvZHVjdHNMaXN0ID0gdGhpcy5ncm91cFByb2R1Y3RzKHJlc3BvbnNlLnByb2R1Y3RzKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ3JvdXBQcm9kdWN0cyhwcm9kdWN0cykge1xuICAgICAgICBpZiAocHJvZHVjdHM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgcHJvZHVjdHMgPSBwcm9kdWN0cy5maWx0ZXIoeCA9PiB4LmRlcGVuZGVuY3lfcHJvZHVjdHM/Lmxlbmd0aCA8IDEgJiYgeC5hY3RpdmUpO1xuICAgICAgICAgICAgcHJvZHVjdHMgPSBncm91cEJ5KHByb2R1Y3RzLCAnY3VycmVuY3knKTtcbiAgICAgICAgICAgIHByb2R1Y3RzID0gdGhpcy5zb3J0T2JqKHByb2R1Y3RzKTtcbiAgICAgICAgICAgIGxldCBncm91cGVkQXJyYXkgPSBbXTtcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1yZXN0cmljdGVkLXN5bnRheFxuICAgICAgICAgICAgZm9yIChjb25zdCBwIGluIHByb2R1Y3RzKSB7XG4gICAgICAgICAgICAgICAgaWYgKHAgaW4gcHJvZHVjdHMpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBwcm9kdWN0c1twXS5zb3J0KFxuICAgICAgICAgICAgICAgICAgICAgICAgKGEsIGIpID0+IE51bWJlcihiLnByaWNlX3Blcl91bml0KSAtIE51bWJlcihhLnByaWNlX3Blcl91bml0KVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICBncm91cGVkQXJyYXkucHVzaCguLi52YWx1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBncm91cGVkQXJyYXkgPSBncm91cGVkQXJyYXkubWFwKHggPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIGlkOiB4LmlkLFxuICAgICAgICAgICAgICAgICAgICBuYW1lOiBgJHt4Lm5hbWV9IHwgJHt4LnJlZ2lvbn0gfCAke3guYmlsbGluZ19mcmVxdWVuY3l9IHwgJHt4Lm1pbl91bml0c30geCAkeyhcbiAgICAgICAgICAgICAgICAgICAgICAgIHgucHJpY2VfcGVyX3VuaXQgLyAxMDBcbiAgICAgICAgICAgICAgICAgICAgKS50b0ZpeGVkKDIpfSB8ICR7eC5jdXJyZW5jeX1gXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICByZXR1cm4gZ3JvdXBlZEFycmF5O1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIG9uU2F2ZUZpbGUoZXZlbnQpIHtcbiAgICAgICAgY29uc3QgaXRlbTogQ3VzdG9tVXBsb2FkZXJDb21wb25lbnQgPSB0aGlzLmNoaWxkTGlzdC5maW5kKFxuICAgICAgICAgICAgeCA9PiB4LmNvbnRyb2xOYW1lID09PSBldmVudC5uYW1lXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB7IHN1YnNjcmlwdGlvbl9pZDogdGhpcy5zdWJzY3JpcHRpb25JZCB9O1xuICAgICAgICBpZiAoZXZlbnQuZmlsZSkge1xuICAgICAgICAgICAgZGF0YVtldmVudC5uYW1lXSA9IGV2ZW50LmZpbGU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBkYXRhW2ByZW1vdmVfJHtldmVudC5uYW1lfWBdID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcmVzdHJpY3RlZC1zeW50YXhcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gZGF0YSkge1xuICAgICAgICAgICAgaWYgKGtleSBpbiBkYXRhKSB7XG4gICAgICAgICAgICAgICAgZm9ybURhdGEuYXBwZW5kKGtleSwgZGF0YVtrZXldKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzdWIkID0gdGhpcy5pZFxuICAgICAgICAgICAgPyB0aGlzLmFkbWluU2VydmljZS51cGRhdGVEb21haW5Db25maWcodGhpcy5pZCwgZm9ybURhdGEpXG4gICAgICAgICAgICA6IHRoaXMuYWRtaW5TZXJ2aWNlLmNyZWF0ZURvbWFpbkNvbmZpZyhmb3JtRGF0YSk7XG5cbiAgICAgICAgc3ViJC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5hZG1pblNlcnZpY2VcbiAgICAgICAgICAgICAgICAuZ2V0RG9tYWluQ29uZmlnQnlJZCh0aGlzLmlkLCB0aGlzLnN1YnNjcmlwdGlvbklkKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUocmVzcG9uc2UgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpdGVtLmNsZWFyVmFsdWVzKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGF0YVtldmVudC5uYW1lXSA9IHJlc3BvbnNlW2V2ZW50Lm5hbWVdO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICB9KS5hZGQoKCkgPT4ge1xuICAgICAgICAgICAgaXRlbS5idXR0b25CdXN5ID0gZmFsc2U7XG4gICAgICAgICAgICBpdGVtLm9uQ2xvc2UoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZHJvcEZvb3RlclN1YnRpdGxlcyhpOiBudW1iZXIsIGV2ZW50OiBDZGtEcmFnRHJvcDxGb3JtR3JvdXBbXT4pIHtcbiAgICAgICAgY29uc3QgY29udHJvbCA9IHRoaXMuZ2V0Rm9vdGVyU3VidGl0bGVzKGkpO1xuICAgICAgICBtb3ZlSXRlbUluQXJyYXkoY29udHJvbC5jb250cm9scywgZXZlbnQucHJldmlvdXNJbmRleCwgZXZlbnQuY3VycmVudEluZGV4KTtcbiAgICAgICAgY29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgfVxuXG4gICAgZHJvcE5hdmJhclN1YnRpdGxlcyhpOiBudW1iZXIsIGV2ZW50OiBDZGtEcmFnRHJvcDxGb3JtR3JvdXBbXT4pIHtcbiAgICAgICAgY29uc3Qgc3VidGl0bGVzID0gdGhpcy5nZXROYXZiYXJTdWJ0aXRsZXMoaSk7XG4gICAgICAgIG1vdmVJdGVtSW5BcnJheShzdWJ0aXRsZXMuY29udHJvbHMsIGV2ZW50LnByZXZpb3VzSW5kZXgsIGV2ZW50LmN1cnJlbnRJbmRleCk7XG4gICAgICAgIHN1YnRpdGxlcy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgfVxuXG4gICAgZHJvcEJvb2tEZW1vTGlua3MoZXZlbnQ6IENka0RyYWdEcm9wPEZvcm1Hcm91cFtdPikge1xuICAgICAgICBjb25zdCBpdGVtcyA9IHRoaXMuZm9ybS5nZXQoJ2Jvb2tfZGVtbycpPy5nZXQoJ2l0ZW1zJykgYXMgRm9ybUFycmF5O1xuICAgICAgICBtb3ZlSXRlbUluQXJyYXkoaXRlbXMuY29udHJvbHMsIGV2ZW50LnByZXZpb3VzSW5kZXgsIGV2ZW50LmN1cnJlbnRJbmRleCk7XG4gICAgICAgIGl0ZW1zLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICB9XG5cbiAgICBkcm9wQ29udGFjdFVzT3B0aW9ucyhxdWVzdGlvbkluZGV4OiBudW1iZXIsIGV2ZW50OiBDZGtEcmFnRHJvcDxGb3JtR3JvdXBbXT4pIHtcbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMuZ2V0UXVlc3Rpb25PcHRpb25zKHF1ZXN0aW9uSW5kZXgpO1xuICAgICAgICBtb3ZlSXRlbUluQXJyYXkob3B0aW9ucy5jb250cm9scywgZXZlbnQucHJldmlvdXNJbmRleCwgZXZlbnQuY3VycmVudEluZGV4KTtcbiAgICAgICAgb3B0aW9ucy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgfVxuXG4gICAgZHJvcEl0ZW1zKGNvbnRyb2w6IEZvcm1BcnJheSwgZXZlbnQ6IENka0RyYWdEcm9wPEZvcm1Hcm91cFtdPikge1xuICAgICAgICBtb3ZlSXRlbUluQXJyYXkoY29udHJvbC5jb250cm9scywgZXZlbnQucHJldmlvdXNJbmRleCwgZXZlbnQuY3VycmVudEluZGV4KTtcbiAgICAgICAgY29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgfVxuXG4gICAgQFZhbGlkYXRlRm9ybSgnZm9ybScpXG4gICAgb25TYXZlKCkge1xuICAgICAgICB0aGlzLnN1Ym1pdHRlZCA9IHRydWU7XG4gICAgICAgIHRoaXMuYnV0dG9uQnVzeSA9IHRydWU7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB7XG4gICAgICAgICAgICBtYXN0ZXJfc3Vic2NyaXB0aW9uX2lkOiB0aGlzLmFwcENvbmZpZz8ubWFzdGVyX3N1YnNjcmlwdGlvbj8uc3Vic2NyaXB0aW9uX2lkLFxuICAgICAgICAgICAgc3Vic2NyaXB0aW9uX2lkOiB0aGlzLnN1YnNjcmlwdGlvbklkLFxuICAgICAgICAgICAgLi4udGhpcy5mb3JtLnZhbHVlXG4gICAgICAgIH07XG4gICAgICAgIGRhdGEuY3NfcHJvZHVjdF9pZCA9IHRoaXMuZm9ybS5nZXQoJ2NzX3Byb2R1Y3RfaWQnKS52YWx1ZT8uaWQgPz8gbnVsbDtcbiAgICAgICAgZGF0YS50cmlhbF9wcm9kdWN0X2lkID0gdGhpcy5mb3JtLmdldCgndHJpYWxfcHJvZHVjdF9pZCcpLnZhbHVlPy5pZCA/PyBudWxsO1xuICAgICAgICBkYXRhWydjc19jdGFfaWZyYW1lJ10gPSB0aGlzLmZvcm0udmFsdWU/LmNzX2N0YV9pZnJhbWUgPz8gJyc7XG4gICAgICAgIGRhdGFbJ3RyaWFsX2N0YV9pZnJhbWUnXSA9IHRoaXMuZm9ybS52YWx1ZT8udHJpYWxfY3RhX2lmcmFtZSA/PyAnJztcbiAgICAgICAgY29uc3Qgc3ViJCA9IHRoaXMuaWRcbiAgICAgICAgICAgID8gdGhpcy5hZG1pblNlcnZpY2UudXBkYXRlRG9tYWluQ29uZmlnKHRoaXMuaWQsIGRhdGEpXG4gICAgICAgICAgICA6IHRoaXMuYWRtaW5TZXJ2aWNlLmNyZWF0ZURvbWFpbkNvbmZpZyhkYXRhKTtcbiAgICAgICAgc3ViJC5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgbmV4dDogKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMudG9hc3Quc3VjY2Vzcyh0aGlzLnRyYW5zbGF0aW9uLnRyYW5zbGF0ZSgnQWRtaW4uRG9tYWluQ29uZmlnLlVwZGF0ZWRNZXNzYWdlJykpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KS5hZGQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zdWJtaXR0ZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuYnV0dG9uQnVzeSA9IGZhbHNlO1xuICAgICAgICB9KTtcbiAgICB9XG59XG4iLCI8aDM+UHVibGljIFBhZ2VzIENvbmZpZ3VyYXRpb248L2gzPlxuPGRpdiBjbGFzcz1cIm1iLTRcIj5cbiAgPHA+IFRoZSBmb2xsb3dpbmcgcGFyYW1ldGVycyBhbmQgc2V0dGluZ3Mgd2lsbCBiZSBhcHBsaWVkIHRvIGFsbCBwdWJsaWMgcGFnZXMgb2YgdGhpcyBkb21haW4uIDwvcD5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cInctMTAwIHRleHQtY2VudGVyIG10LTNcIlxuICAqbmdJZj1cImlzTG9hZGluZ1wiPlxuICA8cC1wcm9ncmVzc1NwaW5uZXIgc3Ryb2tlV2lkdGg9XCIyXCI+IDwvcC1wcm9ncmVzc1NwaW5uZXI+XG48L2Rpdj5cbjxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNMb2FkaW5nICYmIGRhdGE/Lmhvc3RfbmFtZVwiPlxuICA8Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm1cIlxuICAgIChuZ1N1Ym1pdCk9XCJvblNhdmUoKVwiPlxuICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLTNcIj5cbiAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBbbGFiZWxdPVwiJ0FkbWluLkRvbWFpbkNvbmZpZy5NYXN0ZXJTdWJzY3JpcHRpb24nIHwgdHJhbnNsb2NvXCJcbiAgICAgICAgICBuYW1lPVwibWFzdGVyX3N1YnNjcmlwdGlvbl9pZFwiXG4gICAgICAgICAgW3Nob3dUb29sdGlwXT1cInRydWVcIlxuICAgICAgICAgIFt0b29sdGlwVGV4dF09XCInQWRtaW4uRG9tYWluQ29uZmlnLlRvb2x0aXAuTWFzdGVyU3Vic2NyaXB0aW9uJyB8IHRyYW5zbG9jb1wiPlxuICAgICAgICAgIDxwLWRyb3Bkb3duXG4gICAgICAgICAgW29wdGlvbnNdPVwibWFzdGVyU3Vic2NyaXB0aW9uc0xpc3RcIlxuICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cIm1hc3Rlcl9zdWJzY3JpcHRpb25faWRcIlxuICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2lzLWludmFsaWQnOiBzdWJtaXR0ZWQgJiYgZlsnbWFzdGVyX3N1YnNjcmlwdGlvbl9pZCddPy5lcnJvcnMgfVwiXG4gICAgICAgICAgcGxhY2Vob2xkZXI9XCJTZWxlY3QgTWFzdGVyIFN1YnNjcmlwdGlvblwiPlxuICAgICAgICA8L3AtZHJvcGRvd24+XG4gICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS0zXCI+XG4gICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgW2xhYmVsXT1cIidBZG1pbi5Eb21haW5Db25maWcuTWFzdGVyU3Vic2NyaXB0aW9uUHJvZHVjdCcgfCB0cmFuc2xvY29cIlxuICAgICAgICAgIFtzaG93VG9vbHRpcF09XCJ0cnVlXCJcbiAgICAgICAgICBbdG9vbHRpcFRleHRdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAnQWRtaW4uRG9tYWluQ29uZmlnLlRvb2x0aXAuTWFzdGVyU3Vic2NyaXB0aW9uUHJvZHVjdCcgfCB0cmFuc2xvY29cbiAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICBuYW1lPVwibWFzdGVyX3N1YnNjcmlwdGlvbl9wcm9kdWN0X2lkXCI+XG4gICAgICAgICAgPHAtZHJvcGRvd25cbiAgICAgICAgICAgIFtvcHRpb25zXT1cIm1hc3RlclN1YnNjcmlwdGlvblByb2R1Y3RMaXN0XCJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cIm1hc3Rlcl9zdWJzY3JpcHRpb25fcHJvZHVjdF9pZFwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7J2lzLWludmFsaWQnOiBzdWJtaXR0ZWQgJiYgZlsnbWFzdGVyX3N1YnNjcmlwdGlvbl9wcm9kdWN0X2lkJ10/LmVycm9yc31cIlxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidTZWxlY3QgTWFzdGVyIFByb2R1Y3QnXCJcbiAgICAgICAgICAgIG9wdGlvblZhbHVlPVwiaWRcIlxuICAgICAgICAgICAgb3B0aW9uTGFiZWw9XCJuYW1lXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICA8L3AtZHJvcGRvd24+XG4gICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS0zXCI+XG4gICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgW2xhYmVsXT1cIidBZG1pbi5Eb21haW5Db25maWcuQmxvZ0ZlYXR1cmVLZXknIHwgdHJhbnNsb2NvXCJcbiAgICAgICAgICBuYW1lPVwiYmxvZ19mZWF0dXJlX2tleVwiXG4gICAgICAgICAgW3Nob3dUb29sdGlwXT1cInRydWVcIlxuICAgICAgICAgIFt0b29sdGlwVGV4dF09XCInQWRtaW4uRG9tYWluQ29uZmlnLlRvb2x0aXAuQmxvZ0ZlYXR1cmVLZXknIHwgdHJhbnNsb2NvXCI+XG4gICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImJsb2dfZmVhdHVyZV9rZXlcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnaXMtaW52YWxpZCc6IHN1Ym1pdHRlZCAmJiBmWydibG9nX2ZlYXR1cmVfa2V5J10uZXJyb3JzIH1cIiAvPlxuICAgICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tM1wiPlxuICAgICAgICA8cHctaW5wdXQtY29udGFpbmVyIFtsYWJlbF09XCInQWRtaW4uRG9tYWluQ29uZmlnLk1haW5Ub3MnIHwgdHJhbnNsb2NvXCJcbiAgICAgICAgICBuYW1lPVwibWFpbl90b3NfaWRcIlxuICAgICAgICAgIFtzaG93VG9vbHRpcF09XCJ0cnVlXCJcbiAgICAgICAgICBbdG9vbHRpcFRleHRdPVwiJ0FkbWluLkRvbWFpbkNvbmZpZy5Ub29sdGlwLk1haW5Ub3MnIHwgdHJhbnNsb2NvXCI+XG4gICAgICAgICAgPHAtZHJvcGRvd25cbiAgICAgICAgICBbb3B0aW9uc109XCJzdWJzY3JpcHRpb25Ub3NMaXN0XCJcbiAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJtYWluX3Rvc19pZFwiXG4gICAgICAgICAgW25nQ2xhc3NdPVwieyAnaXMtaW52YWxpZCc6IHN1Ym1pdHRlZCAmJiBmWydtYWluX3Rvc19pZCddPy5lcnJvcnMgfVwiXG4gICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidTZWxlY3QgTWFpbiBUT1MnXCJcbiAgICAgICAgICBvcHRpb25WYWx1ZT1cImlkXCI+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cInNlbGVjdGVkSXRlbVwiIGxldC1pdGVtPlxuICAgICAgICAgICAgPHNwYW4gW2lubmVySFRNTF09XCJpdGVtLnRpdGxlXCI+PC9zcGFuPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cIml0ZW1cIiBsZXQtaXRlbT5cbiAgICAgICAgICAgIDxzcGFuIFtpbm5lckhUTUxdPVwiaXRlbS50aXRsZVwiPjwvc3Bhbj5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L3AtZHJvcGRvd24+XG5cbiAgICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLTNcIj5cbiAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBbbGFiZWxdPVwiJ0FkbWluLkRvbWFpbkNvbmZpZy5Dcm1TdWJzY3JpcHRpb24nIHwgdHJhbnNsb2NvXCJcbiAgICAgICAgICBuYW1lPVwiY3JtX3N1YnNjcmlwdGlvbl9pZFwiXG4gICAgICAgICAgW3Nob3dUb29sdGlwXT1cInRydWVcIlxuICAgICAgICAgIFt0b29sdGlwVGV4dF09XCInQWRtaW4uRG9tYWluQ29uZmlnLlRvb2x0aXAuQ3JtU3Vic2NyaXB0aW9uJyB8IHRyYW5zbG9jb1wiPlxuICAgICAgICAgIDxwLWRyb3Bkb3duXG4gICAgICAgICAgICBbb3B0aW9uc109XCJjcm1TdWJzY3JpcHRpb25zTGlzdFwiXG4gICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJjcm1fc3Vic2NyaXB0aW9uX2lkXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2lzLWludmFsaWQnOiBzdWJtaXR0ZWQgJiYgZlsnY3JtX3N1YnNjcmlwdGlvbl9pZCddPy5lcnJvcnMgfVwiXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ1NlbGVjdCBDUk0gU3Vic2NyaXB0aW9uJ1wiXG4gICAgICAgICAgICBvcHRpb25WYWx1ZT1cImlkXCI+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwic2VsZWN0ZWRJdGVtXCIgbGV0LWl0ZW0+XG4gICAgICAgICAgICAgIHt7aXRlbT8ub3JnYW5pc2F0aW9uID8gaXRlbT8ub3JnYW5pc2F0aW9uICsgJyAtICcgKyBpdGVtLmNvbnRhY3RfbmFtZSA6IGl0ZW0/LmNvbnRhY3RfbmFtZX19XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cIml0ZW1cIiBsZXQtaXRlbT5cbiAgICAgICAgICAgICAge3tpdGVtPy5vcmdhbmlzYXRpb24gPyBpdGVtPy5vcmdhbmlzYXRpb24gKyAnIC0gJyArIGl0ZW0uY29udGFjdF9uYW1lIDogaXRlbT8uY29udGFjdF9uYW1lfX1cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgPC9wLWRyb3Bkb3duPlxuXG4gICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS0zXCI+XG4gICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgW2xhYmVsXT1cIidBZG1pbi5Eb21haW5Db25maWcuQ3JtUHJvZHVjdCcgfCB0cmFuc2xvY29cIlxuICAgICAgICAgIG5hbWU9XCJjcm1fcHJvZHVjdF9pZFwiXG4gICAgICAgICAgW3Nob3dUb29sdGlwXT1cInRydWVcIlxuICAgICAgICAgIFt0b29sdGlwVGV4dF09XCInQWRtaW4uRG9tYWluQ29uZmlnLlRvb2x0aXAuQ3JtUHJvZHVjdCcgfCB0cmFuc2xvY29cIj5cbiAgICAgICAgICA8cC1kcm9wZG93blxuICAgICAgICAgICAgW29wdGlvbnNdPVwiY3JtUHJvZHVjdExpc3RcIlxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiY3JtX3Byb2R1Y3RfaWRcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnaXMtaW52YWxpZCc6IHN1Ym1pdHRlZCAmJiBmWydjcm1fcHJvZHVjdF9pZCddPy5lcnJvcnMgfVwiXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ1NlbGVjdCBDUk0gUHJvZHVjdCdcIlxuICAgICAgICAgICAgb3B0aW9uVmFsdWU9XCJpZFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwic2VsZWN0ZWRJdGVtXCIgbGV0LWl0ZW0+XG4gICAgICAgICAgICAgIHt7aXRlbT8uc3Vic2NyaXB0aW9uX2lkID8gaXRlbT8ubmFtZSAgKycgLSBTdWJzY3JpcHRpb25JRCA9ICcrIGl0ZW0uc3Vic2NyaXB0aW9uX2lkIDogaXRlbT8ubmFtZX19XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cIml0ZW1cIiBsZXQtaXRlbT5cbiAgICAgICAgICAgICAge3tpdGVtPy5zdWJzY3JpcHRpb25faWQgPyBpdGVtPy5uYW1lICArJyAtIFN1YnNjcmlwdGlvbklEID0gJysgaXRlbS5zdWJzY3JpcHRpb25faWQgOiBpdGVtPy5uYW1lfX1cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgPC9wLWRyb3Bkb3duPlxuICAgICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tM1wiPlxuICAgICAgICA8cHctaW5wdXQtY29udGFpbmVyIFtsYWJlbF09XCInQWRtaW4uRG9tYWluQ29uZmlnLkNybVNvdXJjZScgfCB0cmFuc2xvY29cIlxuICAgICAgICAgIG5hbWU9XCJjcm1fc291cmNlX2lkXCJcbiAgICAgICAgICBbc2hvd1Rvb2x0aXBdPVwidHJ1ZVwiXG4gICAgICAgICAgW3Rvb2x0aXBUZXh0XT1cIidBZG1pbi5Eb21haW5Db25maWcuVG9vbHRpcC5Dcm1Tb3VyY2UnIHwgdHJhbnNsb2NvXCI+XG4gICAgICAgICAgPHAtZHJvcGRvd25cbiAgICAgICAgICAgIFtvcHRpb25zXT1cImNybVNvdXJjZXNMaXN0XCJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImNybV9zb3VyY2VfaWRcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnaXMtaW52YWxpZCc6IHN1Ym1pdHRlZCAmJiBmWydjcm1fc291cmNlX2lkJ10/LmVycm9ycyB9XCJcbiAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInU2VsZWN0IENSTSBTb3VyY2UnXCJcbiAgICAgICAgICAgIG9wdGlvblZhbHVlPVwiaWRcIlxuICAgICAgICAgICAgb3B0aW9uTGFiZWw9XCJuYW1lXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICA8L3AtZHJvcGRvd24+XG4gICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgICA8IS0tIGNybSBzdWJzY3JpcHRpb24gZmllbGRzIGVuZC0tPlxuICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tM1wiPlxuICAgICAgICA8cHctaW5wdXQtY29udGFpbmVyIFtsYWJlbF09XCInQWRtaW4uRG9tYWluQ29uZmlnLkFjdGl2ZScgfCB0cmFuc2xvY29cIiBbc2hvd1Rvb2x0aXBdPVwidHJ1ZVwiXG4gICAgICAgICAgW3Rvb2x0aXBUZXh0XT1cIidBZG1pbi5Eb21haW5Db25maWcuVG9vbHRpcC5BY3RpdmUnIHwgdHJhbnNsb2NvXCIgbmFtZT1cImFjdGl2ZVwiPlxuICAgICAgICAgIDx1aS1zd2l0Y2ggc2l6ZT1cInNtYWxsXCIgdW5jaGVja2VkTGFiZWw9XCJmYWxzZVwiIGNoZWNrZWRMYWJlbD1cInRydWVcIiBmb3JtQ29udHJvbE5hbWU9XCJhY3RpdmVcIiBuYW1lPVwiYWN0aXZlXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2lzLWludmFsaWQnOiBzdWJtaXR0ZWQgJiYgZlsnYWN0aXZlJ10uZXJyb3JzIH1cIj5cbiAgICAgICAgICA8L3VpLXN3aXRjaD5cbiAgICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLTNcIj5cbiAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBbbGFiZWxdPVwiJ0FkbWluLkRvbWFpbkNvbmZpZy5Jc1Byb2R1Y3REb21haW4nIHwgdHJhbnNsb2NvXCJcbiAgICAgICAgICBbc2hvd1Rvb2x0aXBdPVwidHJ1ZVwiXG4gICAgICAgICAgW3Rvb2x0aXBUZXh0XT1cIidBZG1pbi5Eb21haW5Db25maWcuVG9vbHRpcC5Jc1Byb2R1Y3REb21haW4nIHwgdHJhbnNsb2NvXCJcbiAgICAgICAgICBuYW1lPVwiaXNfcHJvZHVjdF9kb21haW5cIj5cbiAgICAgICAgICA8dWktc3dpdGNoIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICB1bmNoZWNrZWRMYWJlbD1cImZhbHNlXCJcbiAgICAgICAgICAgIGNoZWNrZWRMYWJlbD1cInRydWVcIlxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiaXNfcHJvZHVjdF9kb21haW5cIlxuICAgICAgICAgICAgbmFtZT1cImlzX3Byb2R1Y3RfZG9tYWluXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2lzLWludmFsaWQnOiBzdWJtaXR0ZWQgJiYgZlsnaXNfcHJvZHVjdF9kb21haW4nXS5lcnJvcnMgfVwiPlxuICAgICAgICAgIDwvdWktc3dpdGNoPlxuICAgICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tM1wiPlxuICAgICAgICA8cHctaW5wdXQtY29udGFpbmVyIFtsYWJlbF09XCInQWRtaW4uRG9tYWluQ29uZmlnLkNhblJlZ2lzdGVyT25NYWluUGFnZScgfCB0cmFuc2xvY29cIiBbc2hvd1Rvb2x0aXBdPVwidHJ1ZVwiXG4gICAgICAgICAgW3Rvb2x0aXBUZXh0XT1cIidBZG1pbi5Eb21haW5Db25maWcuVG9vbHRpcC5DYW5SZWdpc3Rlck9uTWFpblBhZ2UnIHwgdHJhbnNsb2NvXCJcbiAgICAgICAgICBuYW1lPVwiY2FuX3JlZ2lzdGVyX3Rocm91Z2hfbWFpbl9wYWdlXCI+XG4gICAgICAgICAgPHVpLXN3aXRjaCBzaXplPVwic21hbGxcIiB1bmNoZWNrZWRMYWJlbD1cImZhbHNlXCIgY2hlY2tlZExhYmVsPVwidHJ1ZVwiIGZvcm1Db250cm9sTmFtZT1cImNhbl9yZWdpc3Rlcl90aHJvdWdoX21haW5fcGFnZVwiXG4gICAgICAgICAgICBuYW1lPVwiY2FuX3JlZ2lzdGVyX3Rocm91Z2hfbWFpbl9wYWdlXCIgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdpcy1pbnZhbGlkJzogc3VibWl0dGVkICYmIGZbJ2Nhbl9yZWdpc3Rlcl90aHJvdWdoX21haW5fcGFnZSddLmVycm9yc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVwiPlxuICAgICAgICAgIDwvdWktc3dpdGNoPlxuICAgICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tM1wiPlxuICAgICAgICA8cHctaW5wdXQtY29udGFpbmVyIFtsYWJlbF09XCInQWRtaW4uRG9tYWluQ29uZmlnLlNvY2lhbExvZ2luRW5hYmxlZCcgfCB0cmFuc2xvY29cIiBbc2hvd1Rvb2x0aXBdPVwidHJ1ZVwiXG4gICAgICAgICAgW3Rvb2x0aXBUZXh0XT1cIidBZG1pbi5Eb21haW5Db25maWcuVG9vbHRpcC5Tb2NpYWxMb2dpbkVuYWJsZScgfCB0cmFuc2xvY29cIiBuYW1lPVwic29jaWFsX2xvZ2luX2VuYWJsZWRcIj5cbiAgICAgICAgICA8dWktc3dpdGNoIHNpemU9XCJzbWFsbFwiIHVuY2hlY2tlZExhYmVsPVwiZmFsc2VcIiBjaGVja2VkTGFiZWw9XCJ0cnVlXCIgZm9ybUNvbnRyb2xOYW1lPVwic29jaWFsX2xvZ2luX2VuYWJsZWRcIlxuICAgICAgICAgICAgbmFtZT1cInNvY2lhbF9sb2dpbl9lbmFibGVkXCIgW25nQ2xhc3NdPVwieyAnaXMtaW52YWxpZCc6IHN1Ym1pdHRlZCAmJiBmWydzb2NpYWxfbG9naW5fZW5hYmxlZCddLmVycm9ycyB9XCI+XG4gICAgICAgICAgPC91aS1zd2l0Y2g+XG4gICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS0zXCI+XG4gICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgW2xhYmVsXT1cIidBZG1pbi5Eb21haW5Db25maWcuTm90aWZ5TG9naW5zJyB8IHRyYW5zbG9jb1wiIFtzaG93VG9vbHRpcF09XCJ0cnVlXCJcbiAgICAgICAgICBbdG9vbHRpcFRleHRdPVwiJ0FkbWluLkRvbWFpbkNvbmZpZy5Ub29sdGlwLk5vdGlmeUxvZ2lucycgfCB0cmFuc2xvY29cIiBuYW1lPVwibm90aWZ5X2xvZ2luc1wiPlxuICAgICAgICAgIDx1aS1zd2l0Y2ggc2l6ZT1cInNtYWxsXCIgdW5jaGVja2VkTGFiZWw9XCJmYWxzZVwiIGNoZWNrZWRMYWJlbD1cInRydWVcIiBmb3JtQ29udHJvbE5hbWU9XCJub3RpZnlfbG9naW5zXCJcbiAgICAgICAgICAgIG5hbWU9XCJub3RpZnlfbG9naW5zXCIgW25nQ2xhc3NdPVwieyAnaXMtaW52YWxpZCc6IHN1Ym1pdHRlZCAmJiBmWydub3RpZnlfbG9naW5zJ10uZXJyb3JzIH1cIj5cbiAgICAgICAgICA8L3VpLXN3aXRjaD5cbiAgICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJteS01XCI+XG4gICAgICA8aDM+UHJlLUJ1aWx0IFBhZ2VzIENvbmZpZyAoUmVzb3VyY2VzLCBMYW5kaW5nIFBhZ2VzLCBldGMpPC9oMz5cblxuICAgICAgPHAtYWNjb3JkaW9uIGNsYXNzPVwibXQtNVwiPlxuICAgICAgICA8cC1hY2NvcmRpb25UYWIgW2hlYWRlcl09XCInSW5zdHJ1Y3Rpb25zIC0gUkVBRE1FIEZJUlNUJ1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XG4gICAgICAgICAgICA8cD5XZeKAmXZlIGJ1aWx0IGFuZCBtYWludGFpbiBhIGNvbGxlY3Rpb24gb2YgaGlnaC1jb252ZXJ0aW5nIGxhbmRpbmcgcGFnZXMgZGVzaWduZWQgdG8gaGVscCB5b3UgcXVpY2tseSBsYXVuY2ggcG9saXNoZWRcbiAgICAgICAgICAgICAgVUlzIGZvciBvbmJvYXJkaW5nIHVzZXJzLjwvcD5cbiAgICAgICAgICAgIDxwPjxzdHJvbmc+TmV3c2xldHRlciBTdWJzY3JpcHRpb24gUGFnZXM6PC9zdHJvbmc+PGJyPiBBZnRlciBjb25maWd1cmluZyB5b3VyIGRvbWFpbiwgeW91IGNhbiBhY2Nlc3MgcGFnZXMgbGlrZVxuICAgICAgICAgICAgICA8c3Ryb25nPi9qb2luL2NzMSwgL2pvaW4vY3MyLCAvam9pbi9jczMsIGV0Yy48L3N0cm9uZz4sIHNwZWNpZmljYWxseSBkZXNpZ25lZCBmb3IgbmV3c2xldHRlciBzaWduLXVwcy4gPGJyPlxuICAgICAgICAgICAgICBTdWJzY3JpYmVycyBmcm9tIHRoZXNlIHBhZ2VzIHdpbGwgYmUgbGlzdGVkIGluIHRoZSA8c3Ryb25nPlNtYXJ0Q1JNIG1vZHVsZTwvc3Ryb25nPi48L3A+XG4gICAgICAgICAgICA8cD48c3Ryb25nPlRyaWFsIFByb2R1Y3QgU2lnbi1VcCBQYWdlczo8L3N0cm9uZz48YnI+IEZvciB1c2VycyBpbnRlcmVzdGVkIGluIHRyaWFsIHByb2R1Y3RzLCB1dGlsaXplIHBhZ2VzIHN1Y2ggYXNcbiAgICAgICAgICAgICAgPHN0cm9uZz4vam9pbi90cmlhbDEsIC9qb2luL3RyaWFsMiwgL2pvaW4vdHJpYWwzLCBldGMuPC9zdHJvbmc+Ljxicj4gVXNlcnMgcmVnaXN0ZXJpbmcgdGhyb3VnaCB0aGVzZSBwYWdlcyB3aWxsXG4gICAgICAgICAgICAgIGFwcGVhciBpbiB0aGUgPHN0cm9uZz5BZG1pbiA+IFVzZXJzIHNlY3Rpb248L3N0cm9uZz4uPC9wPlxuICAgICAgICAgICAgPHA+T25jZSB5b3XigJl2ZSBzZWxlY3RlZCB0aGUgbGFuZGluZyBwYWdlIHlvdSB3YW50IHRvIHVzZSA8c3Ryb25nPihlLmcuLCAvam9pbi90cmlhbDMpPC9zdHJvbmc+LCBtYWtlIHN1cmUgdG8gdXBkYXRlXG4gICAgICAgICAgICAgIHRoZSA8c3Ryb25nPkludGVybmFsIFBhdGg8L3N0cm9uZz4gaW4gdGhlIDxzdHJvbmc+Q29yZSB0YWI8L3N0cm9uZz4gYWNjb3JkaW5nbHnigJRpLmUuLCBzZXQgaXQgdG9cbiAgICAgICAgICAgICAgPHN0cm9uZz4vam9pbi90cmlhbDM8L3N0cm9uZz4uPC9wPlxuICAgICAgICAgICAgPHA+SWYgeW91IG5lZWQgYXNzaXN0YW5jZSBpbnRlZ3JhdGluZyB0aGVzZSBwYWdlcyBpbnRvIHlvdXIgd29ya2Zsb3cgb3IgaGF2ZSBmdXJ0aGVyIHF1ZXN0aW9ucywgZmVlbCBmcmVlIHRvIHJlYWNoXG4gICAgICAgICAgICAgIG91dC48L3A+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvcC1hY2NvcmRpb25UYWI+XG5cbiAgICAgICAgPHAtYWNjb3JkaW9uVGFiIFtoZWFkZXJdPVwiJ1N1YnNjcmliZSB0byBQcm9kdWN0L05ld3NsZXR0ZXIgQ29uZmlnJ1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XG4gICAgICAgICAgICA8cD5UcmlhbCBQYWdlcyB3aWxsIGVuYWJsZSB1c2VycyB0byBzaWduIHVwIHRvIHJlYWwgcHJvZHVjdHMgYW5kIGFyZSBhY2Nlc3NpYmxlIGF0IHRoZSBwYXRoIC9qb2luL3RyaWFsMSxcbiAgICAgICAgICAgICAgL2pvaW4vdHJpYWwyLCBldGMuPC9wPlxuICAgICAgICAgICAgPHA+Q29taW5nU29vbiBQYWdlcyB3aWxsIGVuYWJsZSB1c2VycyB0byBzdWJzY3JpYmUgdG8gTmV3c2xldHRlcnMgYW5kIGFyZSBhY2Nlc3NpYmxlIGF0IHRoZSBpbnRlcm5hbCBwYXRoc1xuICAgICAgICAgICAgICAvam9pbi9jczEsIC9qb2luL2NzMiwgZXRjLjwvcD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8IS0tIGxpdmUgcGFnZSBsaW5rIC0tPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWVuZFwiICpuZ0lmPVwic2hhcmRVcmxcIj5cbiAgICAgICAgICAgIDxzcGFuPlNlZSB0aGUgbGl2ZSBwYWdlIDxzcGFuIGNsYXNzPVwidG9vbHRpcC13cmFwIG1zLTFcIiBbYXBwZW5kVG9dPVwiJ2JvZHknXCJcbiAgICAgICAgICAgICAgICBbcFRvb2x0aXBdPVwiJ0FkbWluLkRvbWFpbkNvbmZpZy5Ub29sdGlwLlNlZUxpdmVUcmlhbCcgfCB0cmFuc2xvY29cIiB0b29sdGlwUG9zaXRpb249XCJ0b3BcIj5cbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1pbmZvLWNpcmNsZVwiPjwvaT5cbiAgICAgICAgICAgICAgPC9zcGFuPiA6IDxhIFtocmVmXT1cInNoYXJkVXJsICsgJy9qb2luL3RyaWFsMSdcIiB0YXJnZXQ9XCJfYmxhbmtcIj57eyBzaGFyZFVybCB9fS9qb2luL3RyaWFsMTwvYT48L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS0zXCI+XG4gICAgICAgICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgW2xhYmVsXT1cIidBZG1pbi5Eb21haW5Db25maWcuVHJpYWxQcm9kdWN0JyB8IHRyYW5zbG9jb1wiIFtzaG93VG9vbHRpcF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICBbdG9vbHRpcFRleHRdPVwiJ0FkbWluLkRvbWFpbkNvbmZpZy5Ub29sdGlwLlRyaWFsUHJvZHVjdCcgfCB0cmFuc2xvY29cIiBuYW1lPVwidHJpYWxfcHJvZHVjdF9pZFwiPlxuICAgICAgICAgICAgICAgIDxwLWF1dG9Db21wbGV0ZSBbc3VnZ2VzdGlvbnNdPVwicHJvZHVjdHNMaXN0XCIgZm9ybUNvbnRyb2xOYW1lPVwidHJpYWxfcHJvZHVjdF9pZFwiIGRhdGFLZXk9XCJpZFwiIGZpZWxkPVwibmFtZVwiXG4gICAgICAgICAgICAgICAgICBbZHJvcGRvd25dPVwidHJ1ZVwiIFtkZWxheV09XCIxMDAwXCIgKGNvbXBsZXRlTWV0aG9kKT1cInNlYXJjaFByb2R1Y3QoJGV2ZW50KVwiIHN0eWxlQ2xhc3M9XCJ3LTEwMFwiXG4gICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlNlYXJjaCBQcm9kdWN0XCIgW2lucHV0U3R5bGVdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm0uZ2V0KCd0cmlhbF9wcm9kdWN0X2lkJykudG91Y2hlZCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtLmdldCgndHJpYWxfcHJvZHVjdF9pZCcpLmludmFsaWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8geyBib3JkZXI6ICcxcHggc29saWQgI2ZmNTg2YicgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB7IGJvcmRlcjogJzFweCBzb2xpZCBncmF5JyB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIgW211bHRpcGxlXT1cImZhbHNlXCI+XG4gICAgICAgICAgICAgICAgPC9wLWF1dG9Db21wbGV0ZT5cbiAgICAgICAgICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLTNcIj5cbiAgICAgICAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBbbGFiZWxdPVwiJ0FkbWluLkRvbWFpbkNvbmZpZy5UcmlhbENybVNvdXJjZUlkJyB8IHRyYW5zbG9jb1wiIG5hbWU9XCJ0cmlhbF9jcm1fc291cmNlX2lkXCJcbiAgICAgICAgICAgICAgICBbc2hvd1Rvb2x0aXBdPVwidHJ1ZVwiIFt0b29sdGlwVGV4dF09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnQWRtaW4uRG9tYWluQ29uZmlnLlRvb2x0aXAuVHJpYWxDcm1Tb3VyY2VJZCcgfCB0cmFuc2xvY29cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiPlxuICAgICAgICAgICAgICAgIDxwLWRyb3Bkb3duIFtvcHRpb25zXT1cImNybVNvdXJjZXNMaXN0XCIgZm9ybUNvbnRyb2xOYW1lPVwidHJpYWxfY3JtX3NvdXJjZV9pZFwiXG4gICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdpcy1pbnZhbGlkJzogc3VibWl0dGVkICYmIGZbJ3RyaWFsX2NybV9zb3VyY2VfaWQnXT8uZXJyb3JzIH1cIlxuICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidTZWxlY3QgQ1JNIFNvdXJjZSdcIiBvcHRpb25WYWx1ZT1cImlkXCIgb3B0aW9uTGFiZWw9XCJuYW1lXCI+XG4gICAgICAgICAgICAgICAgPC9wLWRyb3Bkb3duPlxuICAgICAgICAgICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tM1wiPlxuICAgICAgICAgICAgICA8cHctaW5wdXQtY29udGFpbmVyIFtsYWJlbF09XCInQWRtaW4uRG9tYWluQ29uZmlnLlRyaWFsUGRmU291cmNlSWQnIHwgdHJhbnNsb2NvXCIgbmFtZT1cInRyaWFsX3BkZl9zb3VyY2VfaWRcIlxuICAgICAgICAgICAgICAgIFtzaG93VG9vbHRpcF09XCJ0cnVlXCIgW3Rvb2x0aXBUZXh0XT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdBZG1pbi5Eb21haW5Db25maWcuVG9vbHRpcC5UcmlhbFBkZlNvdXJjZUlkJyB8IHRyYW5zbG9jb1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI+XG4gICAgICAgICAgICAgICAgPHAtZHJvcGRvd24gW29wdGlvbnNdPVwiY3JtU291cmNlc0xpc3RcIiBmb3JtQ29udHJvbE5hbWU9XCJ0cmlhbF9wZGZfc291cmNlX2lkXCJcbiAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2lzLWludmFsaWQnOiBzdWJtaXR0ZWQgJiYgZlsndHJpYWxfcGRmX3NvdXJjZV9pZCddPy5lcnJvcnMgfVwiXG4gICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ1NlbGVjdCBDUk0gU291cmNlJ1wiIG9wdGlvblZhbHVlPVwiaWRcIiBvcHRpb25MYWJlbD1cIm5hbWVcIj5cbiAgICAgICAgICAgICAgICA8L3AtZHJvcGRvd24+XG4gICAgICAgICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS0zXCI+PC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS0zXCI+XG4gICAgICAgICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgW2xhYmVsXT1cIidBZG1pbi5Eb21haW5Db25maWcuVHJpYWxWaWRlb1VybCcgfCB0cmFuc2xvY29cIiBuYW1lPVwidHJpYWxfdmlkZW9fdXJsXCJcbiAgICAgICAgICAgICAgICBbc2hvd1Rvb2x0aXBdPVwidHJ1ZVwiIFt0b29sdGlwVGV4dF09XCInQWRtaW4uRG9tYWluQ29uZmlnLlRvb2x0aXAuVHJpYWxWaWRlb1VybCcgfCB0cmFuc2xvY29cIj5cbiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cInRyaWFsX3ZpZGVvX3VybFwiXG4gICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdpcy1pbnZhbGlkJzogc3VibWl0dGVkICYmIGZbJ3RyaWFsX3ZpZGVvX3VybCddLmVycm9ycyB9XCIgLz5cbiAgICAgICAgICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLTNcIj5cbiAgICAgICAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBbbGFiZWxdPVwiJ0FkbWluLkRvbWFpbkNvbmZpZy5UcmlhbEJvb2tEZW1vVXJsJyB8IHRyYW5zbG9jb1wiIG5hbWU9XCJ0cmlhbF9ib29rX2RlbW9fdXJsXCJcbiAgICAgICAgICAgICAgICBbc2hvd1Rvb2x0aXBdPVwidHJ1ZVwiIFt0b29sdGlwVGV4dF09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnQWRtaW4uRG9tYWluQ29uZmlnLlRvb2x0aXAuVHJpYWxCb29rRGVtb1VybCcgfCB0cmFuc2xvY29cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiPlxuICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgZm9ybUNvbnRyb2xOYW1lPVwidHJpYWxfYm9va19kZW1vX3VybFwiIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2lzLWludmFsaWQnOiBzdWJtaXR0ZWQgJiYgZlsndHJpYWxfYm9va19kZW1vX3VybCddLmVycm9yc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cIiAvPlxuICAgICAgICAgICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMlwiPlxuICAgICAgICAgICAgICA8cHctaW5wdXQtY29udGFpbmVyIFtsYWJlbF09XCInQWRtaW4uRG9tYWluQ29uZmlnLlRyaWFsQ3RhSWZyYW1lJyB8IHRyYW5zbG9jb1wiIG5hbWU9XCJ0cmlhbF9jdGFfaWZyYW1lXCJcbiAgICAgICAgICAgICAgICBbc2hvd1Rvb2x0aXBdPVwidHJ1ZVwiIFt0b29sdGlwVGV4dF09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnQWRtaW4uRG9tYWluQ29uZmlnLlRvb2x0aXAuVHJpYWxDdGFJZnJhbWUnIHwgdHJhbnNsb2NvXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIj5cbiAgICAgICAgICAgICAgICA8dGV4dGFyZWEgcm93cz1cIjNcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cInRyaWFsX2N0YV9pZnJhbWVcIiBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdpcy1pbnZhbGlkJzogc3VibWl0dGVkICYmIGZbJ3RyaWFsX2N0YV9pZnJhbWUnXS5lcnJvcnNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RleHRhcmVhPlxuICAgICAgICAgICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMlwiPlxuICAgICAgICAgICAgICA8cHctaW5wdXQtY29udGFpbmVyIFtsYWJlbF09XCInQWRtaW4uRG9tYWluQ29uZmlnLlRyaWFsSm9pbk1lc3NhZ2UnIHwgdHJhbnNsb2NvXCIgbmFtZT1cInRyaWFsX2pvaW5fbWVzc2FnZVwiXG4gICAgICAgICAgICAgICAgW3Nob3dUb29sdGlwXT1cInRydWVcIiBbdG9vbHRpcFRleHRdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0FkbWluLkRvbWFpbkNvbmZpZy5Ub29sdGlwLlRyaWFsSm9pbk1lc3NhZ2UnIHwgdHJhbnNsb2NvXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIj5cbiAgICAgICAgICAgICAgICA8dGV4dGFyZWEgcm93cz1cIjNcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cInRyaWFsX2pvaW5fbWVzc2FnZVwiIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2lzLWludmFsaWQnOiBzdWJtaXR0ZWQgJiYgZlsndHJpYWxfam9pbl9tZXNzYWdlJ10uZXJyb3JzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZXh0YXJlYT5cbiAgICAgICAgICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTJcIj5cbiAgICAgICAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBbbGFiZWxdPVwiJ0FkbWluLkRvbWFpbkNvbmZpZy5UcmlhbFBkZkRvd25sb2FkVGV4dCcgfCB0cmFuc2xvY29cIiBuYW1lPVwidHJpYWxfcGRmX2Rvd25sb2FkX3RleHRcIlxuICAgICAgICAgICAgICAgIFtzaG93VG9vbHRpcF09XCJ0cnVlXCIgW3Rvb2x0aXBUZXh0XT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdBZG1pbi5Eb21haW5Db25maWcuVG9vbHRpcC5UcmlhbFBkZkRvd25sb2FkVGV4dCcgfCB0cmFuc2xvY29cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiPlxuICAgICAgICAgICAgICAgIDx0ZXh0YXJlYSByb3dzPVwiM1wiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgZm9ybUNvbnRyb2xOYW1lPVwidHJpYWxfcGRmX2Rvd25sb2FkX3RleHRcIiBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdpcy1pbnZhbGlkJzogc3VibWl0dGVkICYmIGZbJ3RyaWFsX3BkZl9kb3dubG9hZF90ZXh0J10uZXJyb3JzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZXh0YXJlYT5cbiAgICAgICAgICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCIgbWF0Y2hIZWlnaHQ9XCJjYXJkXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTRcIj5cbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInRyaWFsX2ltYWdlXCI+e3sgJ0FkbWluLkRvbWFpbkNvbmZpZy5UcmlhbEltYWdlJyB8IHRyYW5zbG9jbyB9fSA8c3BhbiBjbGFzcz1cImluZm8tY2lyY2xlXCI+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRvb2x0aXB0ZXh0IGdyYWRpZW50LWN1c3RvbS1icmFuZGluZ1wiPnt7ICdBZG1pbi5Eb21haW5Db25maWcuVG9vbHRpcC5UcmlhbEltYWdlJyB8IHRyYW5zbG9jb1xuICAgICAgICAgICAgICAgICAgICB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgIDxwdy1jdXN0b20tdXBsb2FkZXIgKHNhdmVFdmVudCk9XCJvblNhdmVGaWxlKCRldmVudClcIiBbYXNwZWN0UmF0aW9dPVwiJ2N1c3RvbSdcIiBbdGl0bGVdPVwiJ1RyaWFsIEltYWdlJ1wiXG4gICAgICAgICAgICAgICAgW2NvbnRyb2xOYW1lXT1cIid0cmlhbF9pbWFnZSdcIiBbcHJldmlld0RhdGFdPVwiZGF0YVsndHJpYWxfaW1hZ2UnXVwiPlxuICAgICAgICAgICAgICA8L3B3LWN1c3RvbS11cGxvYWRlcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC00XCI+XG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJ0cmlhbF9pbWFnZTJcIj57eyAnQWRtaW4uRG9tYWluQ29uZmlnLlRyaWFsSW1hZ2UyJyB8IHRyYW5zbG9jbyB9fSA8c3BhbiBjbGFzcz1cImluZm8tY2lyY2xlXCI+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRvb2x0aXB0ZXh0IGdyYWRpZW50LWN1c3RvbS1icmFuZGluZ1wiPnt7ICdBZG1pbi5Eb21haW5Db25maWcuVG9vbHRpcC5UcmlhbEltYWdlMicgfCB0cmFuc2xvY29cbiAgICAgICAgICAgICAgICAgICAgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICA8cHctY3VzdG9tLXVwbG9hZGVyIChzYXZlRXZlbnQpPVwib25TYXZlRmlsZSgkZXZlbnQpXCIgW3RpdGxlXT1cIidUcmlhbCBJbWFnZTInXCIgW2FzcGVjdFJhdGlvXT1cIidjdXN0b20nXCJcbiAgICAgICAgICAgICAgICBbY29udHJvbE5hbWVdPVwiJ3RyaWFsX2ltYWdlMidcIiBbcHJldmlld0RhdGFdPVwiZGF0YVsndHJpYWxfaW1hZ2UyJ11cIj5cbiAgICAgICAgICAgICAgPC9wdy1jdXN0b20tdXBsb2FkZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNFwiPlxuICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwidHJpYWxfcGRmX2ltYWdlXCI+e3sgJ0FkbWluLkRvbWFpbkNvbmZpZy5UcmlhbFBkZkltYWdlJyB8IHRyYW5zbG9jbyB9fSA8c3BhbiBjbGFzcz1cImluZm8tY2lyY2xlXCI+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRvb2x0aXB0ZXh0IGdyYWRpZW50LWN1c3RvbS1icmFuZGluZ1wiPnt7ICdBZG1pbi5Eb21haW5Db25maWcuVG9vbHRpcC5UcmlhbFBkZkltYWdlJyB8IHRyYW5zbG9jb1xuICAgICAgICAgICAgICAgICAgICB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgIDxwdy1jdXN0b20tdXBsb2FkZXIgKHNhdmVFdmVudCk9XCJvblNhdmVGaWxlKCRldmVudClcIiBbdGl0bGVdPVwiJ1RyaWFsIFBkZiBJbWFnZSdcIiBbYXNwZWN0UmF0aW9dPVwiJ2N1c3RvbSdcIlxuICAgICAgICAgICAgICAgIFtjb250cm9sTmFtZV09XCIndHJpYWxfcGRmX2ltYWdlJ1wiIFtwcmV2aWV3RGF0YV09XCJkYXRhWyd0cmlhbF9wZGZfaW1hZ2UnXVwiPlxuICAgICAgICAgICAgICA8L3B3LWN1c3RvbS11cGxvYWRlcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC00XCI+XG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJ0cmlhbF9pbWFnZV9iZ1wiPnt7ICdBZG1pbi5Eb21haW5Db25maWcuVHJpYWxJbWFnZUJnJyB8IHRyYW5zbG9jbyB9fSA8c3BhbiBjbGFzcz1cImluZm8tY2lyY2xlXCI+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRvb2x0aXB0ZXh0IGdyYWRpZW50LWN1c3RvbS1icmFuZGluZ1wiPnt7ICdBZG1pbi5Eb21haW5Db25maWcuVG9vbHRpcC5UcmlhbEltYWdlQmcnIHwgdHJhbnNsb2NvXG4gICAgICAgICAgICAgICAgICAgIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgPHB3LWN1c3RvbS11cGxvYWRlciAoc2F2ZUV2ZW50KT1cIm9uU2F2ZUZpbGUoJGV2ZW50KVwiIFt0aXRsZV09XCInVHJpYWwgSW1hZ2UgQmcnXCIgW2FzcGVjdFJhdGlvXT1cIidjdXN0b20nXCJcbiAgICAgICAgICAgICAgICBbY29udHJvbE5hbWVdPVwiJ3RyaWFsX2ltYWdlX2JnJ1wiIFtwcmV2aWV3RGF0YV09XCJkYXRhWyd0cmlhbF9pbWFnZV9iZyddXCI+XG4gICAgICAgICAgICAgIDwvcHctY3VzdG9tLXVwbG9hZGVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTRcIj5cbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInRyaWFsX2ltYWdlX2JnMlwiPnt7ICdBZG1pbi5Eb21haW5Db25maWcuVHJpYWxJbWFnZUJnMicgfCB0cmFuc2xvY28gfX0gPHNwYW4gY2xhc3M9XCJpbmZvLWNpcmNsZVwiPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0b29sdGlwdGV4dCBncmFkaWVudC1jdXN0b20tYnJhbmRpbmdcIj57eyAnQWRtaW4uRG9tYWluQ29uZmlnLlRvb2x0aXAuVHJpYWxJbWFnZUJnMicgfCB0cmFuc2xvY29cbiAgICAgICAgICAgICAgICAgICAgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICA8cHctY3VzdG9tLXVwbG9hZGVyIChzYXZlRXZlbnQpPVwib25TYXZlRmlsZSgkZXZlbnQpXCIgW3RpdGxlXT1cIidUcmlhbCBJbWFnZSBCZzInXCIgW2FzcGVjdFJhdGlvXT1cIidjdXN0b20nXCJcbiAgICAgICAgICAgICAgICBbY29udHJvbE5hbWVdPVwiJ3RyaWFsX2ltYWdlX2JnMidcIiBbcHJldmlld0RhdGFdPVwiZGF0YVsndHJpYWxfaW1hZ2VfYmcyJ11cIj5cbiAgICAgICAgICAgICAgPC9wdy1jdXN0b20tdXBsb2FkZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9wLWFjY29yZGlvblRhYj5cblxuICAgICAgICA8cC1hY2NvcmRpb25UYWIgW2hlYWRlcl09XCInSGVhZGVyIFNlY3Rpb24nXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBtdC00XCIgZm9ybUdyb3VwTmFtZT1cImhlYWRlclwiPlxuICAgICAgICAgICAgPGg0IGNsYXNzPVwibWItNFwiPkhlYWRlciBTZWN0aW9uPC9oND5cblxuICAgICAgICAgICAgPCEtLSBIZWFkbGluZSAtLT5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLW1kLTEyXCI+XG4gICAgICAgICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgbGFiZWw9XCJIZWFkZXIgSGVhZGxpbmVcIiBuYW1lPVwiaGVhZGxpbmVcIj5cbiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cImhlYWRsaW5lXCIgLz5cbiAgICAgICAgICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPCEtLSBWaWRlbyBVUkwgLS0+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1tZC02XCI+XG4gICAgICAgICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgbGFiZWw9XCJIZWFkZXIgVmlkZW8gVVJMXCIgbmFtZT1cInZpZGVvX3VybFwiPlxuICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgZm9ybUNvbnRyb2xOYW1lPVwidmlkZW9fdXJsXCIgLz5cbiAgICAgICAgICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPCEtLSBCYWNrZ3JvdW5kIEltYWdlIFVSTCAtLT5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLW1kLTZcIj5cbiAgICAgICAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBsYWJlbD1cIkhlYWRlciBCYWNrZ3JvdW5kIEltYWdlIFVSTFwiIG5hbWU9XCJiZ19pbWFnZV91cmxcIj5cbiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cImJnX2ltYWdlX3VybFwiIC8+XG4gICAgICAgICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDwhLS0gRGVzY3JpcHRpb24gLS0+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyXCI+XG4gICAgICAgICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgbGFiZWw9XCJIZWFkZXIgRGVzY3JpcHRpb25cIj5cbiAgICAgICAgICAgICAgICA8dGV4dGFyZWFcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgICAgICAgIHJvd3M9XCI1XCJcbiAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImRlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2lzLWludmFsaWQnOiBzdWJtaXR0ZWQgJiYgZlsnZGVzY3JpcHRpb24nXT8uZXJyb3JzIH1cIlxuICAgICAgICAgICAgICAgID48L3RleHRhcmVhPlxuICAgICAgICAgICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8IS0tIFN1YiBIZWFkaW5ncyAtLT5cbiAgICAgICAgICAgIDxkaXYgZm9ybUFycmF5TmFtZT1cInN1Yl9oZWFkaW5nc1wiIGNsYXNzPVwiY29sLTEyXCIgY2RrRHJvcExpc3QgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJkcm9wSXRlbXMoaGVhZGVyU3ViSGVhZGluZ3MsICRldmVudClcIj5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBzdWIgb2YgZlsnaGVhZGVyJ10uZ2V0KCdzdWJfaGVhZGluZ3MnKVsnY29udHJvbHMnXTsgbGV0IGkgPSBpbmRleFwiXG4gICAgICAgICAgICAgICAgW2Zvcm1Hcm91cE5hbWVdPVwiaVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJyb3cgbWItMyBhbGlnbi1pdGVtcy1jZW50ZXJcIlxuICAgICAgICAgICAgICAgIGNka0RyYWdcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTBcIj5cbiAgICAgICAgICAgICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgbGFiZWw9XCJTdWIgSGVhZGVyIERlc2NyaXB0aW9uXCI+XG4gICAgICAgICAgICAgICAgICAgIDx0ZXh0YXJlYVxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgICAgICAgICAgICByb3dzPVwiM1wiXG4gICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2lzLWludmFsaWQnOiBzdWJtaXR0ZWQgJiYgZlsnZGVzY3JpcHRpb24nXT8uZXJyb3JzIH1cIlxuICAgICAgICAgICAgICAgICAgICA+PC90ZXh0YXJlYT5cbiAgICAgICAgICAgICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kIG10LTNcIj5cbiAgICAgICAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmEgZmEtdHJhc2ggZGVsZXRlLWljb24gdGV4dC1kYW5nZXJcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwicmVtb3ZlSGVhZGVyU3ViSGVhZGluZyhpKVwiXG4gICAgICAgICAgICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cInJlbW92ZUhlYWRlclN1YkhlYWRpbmcoaSlcIlxuICAgICAgICAgICAgICAgICAgICAoa2V5ZG93bi5zcGFjZSk9XCJyZW1vdmVIZWFkZXJTdWJIZWFkaW5nKGkpXCJcbiAgICAgICAgICAgICAgICAgICAgbmdiVG9vbHRpcD1cIlJlbW92ZVwiXG4gICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICA+PC9pPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kIG10LTNcIj5cbiAgICAgICAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmEgZmEtYmFycyBjdXJzb3ItbW92ZVwiXG4gICAgICAgICAgICAgICAgICAgIGNka0RyYWdIYW5kbGVcbiAgICAgICAgICAgICAgICAgICAgbmdiVG9vbHRpcD1cIkRyYWcgdG8gcmVvcmRlclwiXG4gICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICA+PC9pPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBtdC0yIG1iLTJcIiAoY2xpY2spPVwiYWRkSGVhZGVyU3ViSGVhZGluZygpXCI+XG4gICAgICAgICAgICAgICAgKyBBZGQgU3ViIEhlYWRpbmdcbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9wLWFjY29yZGlvblRhYj5cblxuXG4gICAgICAgIDxwLWFjY29yZGlvblRhYiBbaGVhZGVyXT1cIidSZXNvdXJjZXMgU2VjdGlvbidcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IHJvdyBtdC00IG1iLTRcIj5cbiAgICAgICAgICAgIDxoNCBjbGFzcz1cIm1iLTNcIj5SZXNvdXJjZXMgU2VjdGlvbjwvaDQ+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS02XCI+XG4gICAgICAgICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgW2xhYmVsXT1cIidBZG1pbi5Eb21haW5Db25maWcuUmVzb3VyY2VUYWdsaW5lJyB8IHRyYW5zbG9jb1wiIG5hbWU9XCJyZXNvdXJjZXNfdGFnbGluZVwiXG4gICAgICAgICAgICAgICAgW3Nob3dUb29sdGlwXT1cInRydWVcIiBbdG9vbHRpcFRleHRdPVwiJ0FkbWluLkRvbWFpbkNvbmZpZy5Ub29sdGlwLlJlc291cmNlVGFnbGluZScgfCB0cmFuc2xvY29cIj5cbiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cInJlc291cmNlc190YWdsaW5lXCJcbiAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2lzLWludmFsaWQnOiBzdWJtaXR0ZWQgJiYgZlsncmVzb3VyY2VzX3RhZ2xpbmUnXS5lcnJvcnMgfVwiIC8+XG4gICAgICAgICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyXCI+XG4gICAgICAgICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgW2xhYmVsXT1cIidBZG1pbi5Eb21haW5Db25maWcuUmVzb3VyY2VEZXNjcmlwdGlvbicgfCB0cmFuc2xvY29cIiBuYW1lPVwicmVzb3VyY2VzX2Rlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgICAgICBbc2hvd1Rvb2x0aXBdPVwidHJ1ZVwiIFt0b29sdGlwVGV4dF09XCInQWRtaW4uRG9tYWluQ29uZmlnLlRvb2x0aXAuUmVzb3VyY2VEZXNjcmlwdGlvbicgfCB0cmFuc2xvY29cIj5cbiAgICAgICAgICAgICAgICA8dGV4dGFyZWEgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiByb3dzPVwiM1wiIGZvcm1Db250cm9sTmFtZT1cInJlc291cmNlc19kZXNjcmlwdGlvblwiXG4gICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdpcy1pbnZhbGlkJzogc3VibWl0dGVkICYmIGZbJ3Jlc291cmNlc19kZXNjcmlwdGlvbiddLmVycm9ycyB9XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RleHRhcmVhPlxuICAgICAgICAgICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIiBtYXRjaEhlaWdodD1cImNhcmRcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNFwiPlxuICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwicmVzb3VyY2VfaW1hZ2VcIj57eyAnQWRtaW4uRG9tYWluQ29uZmlnLlJlc291cmNlSW1hZ2UnIHwgdHJhbnNsb2NvIH19IDxzcGFuIGNsYXNzPVwiaW5mby1jaXJjbGVcIj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidG9vbHRpcHRleHQgZ3JhZGllbnQtY3VzdG9tLWJyYW5kaW5nXCI+e3sgJ0FkbWluLkRvbWFpbkNvbmZpZy5Ub29sdGlwLlJlc291cmNlSW1hZ2UnIHwgdHJhbnNsb2NvXG4gICAgICAgICAgICAgICAgICAgIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgPHB3LWN1c3RvbS11cGxvYWRlciAoc2F2ZUV2ZW50KT1cIm9uU2F2ZUZpbGUoJGV2ZW50KVwiIFthc3BlY3RSYXRpb109XCInY3VzdG9tJ1wiIFt0aXRsZV09XCInQ3MgSW1hZ2UnXCJcbiAgICAgICAgICAgICAgICBbY29udHJvbE5hbWVdPVwiJ3Jlc291cmNlc19pbWFnZSdcIiBbcHJldmlld0RhdGFdPVwiZGF0YVsncmVzb3VyY2VzX2ltYWdlJ11cIj5cbiAgICAgICAgICAgICAgPC9wdy1jdXN0b20tdXBsb2FkZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9wLWFjY29yZGlvblRhYj5cblxuICAgICAgICA8cC1hY2NvcmRpb25UYWIgW2hlYWRlcl09XCInVW5pcXVlIFNlbGxpbmcgUHJvcG9zaXRpb24gU2VjdGlvbiAoVVNQKSAnXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBtdC00IG1iLTRcIiBmb3JtR3JvdXBOYW1lPVwidXNwc1wiPlxuICAgICAgICAgICAgPGg0IGNsYXNzPVwibWItNFwiPlVuaXF1ZSBTZWxsaW5nIFByb3Bvc2l0aW9uIFNlY3Rpb24gKFVTUCk8L2g0PlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1tZC02XCI+XG4gICAgICAgICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgbGFiZWw9XCJVU1BzIFRpdGxlXCIgbmFtZT1cInRpdGxlXCI+XG4gICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJ0aXRsZVwiIC8+XG4gICAgICAgICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLW1kLTZcIj5cbiAgICAgICAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBsYWJlbD1cIlVTUHMgVmlkZW8gVXJsXCIgbmFtZT1cInZpZGVvX3VybFwiPlxuICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgZm9ybUNvbnRyb2xOYW1lPVwidmlkZW9fdXJsXCIgLz5cbiAgICAgICAgICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMlwiPlxuICAgICAgICAgICAgICA8cHctaW5wdXQtY29udGFpbmVyIGxhYmVsPVwiVVNQcyBEZXNjcmlwdGlvblwiIG5hbWU9XCJkZXNjcmlwdGlvblwiPlxuICAgICAgICAgICAgICAgIDx0ZXh0YXJlYSBjbGFzcz1cImZvcm0tY29udHJvbFwiIHJvd3M9XCIzXCIgZm9ybUNvbnRyb2xOYW1lPVwiZGVzY3JpcHRpb25cIj48L3RleHRhcmVhPlxuICAgICAgICAgICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8IS0tIFVTUCBJdGVtcyAtLT5cbiAgICAgICAgICAgIDxkaXYgZm9ybUFycmF5TmFtZT1cIml0ZW1zXCIgY2xhc3M9XCJjb2wtMTJcIiBjZGtEcm9wTGlzdCAoY2RrRHJvcExpc3REcm9wcGVkKT1cImRyb3BJdGVtcyh1c3BzSXRlbXMsICRldmVudClcIj5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIGZbJ3VzcHMnXS5nZXQoJ2l0ZW1zJylbJ2NvbnRyb2xzJ107IGxldCBpID0gaW5kZXhcIlxuICAgICAgICAgICAgICAgIFtmb3JtR3JvdXBOYW1lXT1cImlcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwicm93IG1iLTMgYWxpZ24taXRlbXMtY2VudGVyXCJcbiAgICAgICAgICAgICAgICBjZGtEcmFnXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLTEwXCI+XG4gICAgICAgICAgICAgICAgICA8cHctaW5wdXQtY29udGFpbmVyIGxhYmVsPVwiSXRlbSBEZXNjcmlwdGlvblwiPlxuICAgICAgICAgICAgICAgICAgICA8dGV4dGFyZWEgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiByb3dzPVwiM1wiIGZvcm1Db250cm9sTmFtZT1cImRlc2NyaXB0aW9uXCI+PC90ZXh0YXJlYT5cbiAgICAgICAgICAgICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS0xIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kIG10LTNcIj5cbiAgICAgICAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmEgZmEtdHJhc2ggZGVsZXRlLWljb24gdGV4dC1kYW5nZXJcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwicmVtb3ZlVXNwSXRlbShpKVwiXG4gICAgICAgICAgICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cInJlbW92ZVVzcEl0ZW0oaSlcIlxuICAgICAgICAgICAgICAgICAgICAoa2V5ZG93bi5zcGFjZSk9XCJyZW1vdmVVc3BJdGVtKGkpXCJcbiAgICAgICAgICAgICAgICAgICAgbmdiVG9vbHRpcD1cIlJlbW92ZVwiXG4gICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICA+PC9pPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS0xIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kIG10LTNcIj5cbiAgICAgICAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmEgZmEtYmFycyBjdXJzb3ItbW92ZVwiXG4gICAgICAgICAgICAgICAgICAgIGNka0RyYWdIYW5kbGVcbiAgICAgICAgICAgICAgICAgICAgbmdiVG9vbHRpcD1cIkRyYWcgdG8gcmVvcmRlclwiXG4gICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICA+PC9pPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBtdC0yIG1iLTJcIiAoY2xpY2spPVwiYWRkVXNwSXRlbSgpXCI+XG4gICAgICAgICAgICAgICAgKyBBZGQgVVNQIEl0ZW1cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9wLWFjY29yZGlvblRhYj5cblxuXG4gICAgICAgIDxwLWFjY29yZGlvblRhYiBbaGVhZGVyXT1cIidQYXJ0bmVycyAoQ2xpZW50cykgU2VjdGlvbidcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IG10LTQgbWItNFwiIGZvcm1Hcm91cE5hbWU9XCJwYXJ0bmVyc1wiPlxuICAgICAgICAgICAgPGg0IGNsYXNzPVwibWItNFwiPlBhcnRuZXJzIChDbGllbnRzKSBTZWN0aW9uPC9oND5cblxuICAgICAgICAgICAgPCEtLSBUaXRsZSAtLT5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLW1kLTZcIj5cbiAgICAgICAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBsYWJlbD1cIlBhcnRuZXIgVGl0bGVcIiBuYW1lPVwidGl0bGVcIj5cbiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cInRpdGxlXCIgLz5cbiAgICAgICAgICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPCEtLSBEZXNjcmlwdGlvbiAtLT5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTJcIj5cbiAgICAgICAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBsYWJlbD1cIlBhcnRuZXJzIERlc2NyaXB0aW9uXCIgbmFtZT1cImRlc2NyaXB0aW9uXCI+XG4gICAgICAgICAgICAgICAgPHRleHRhcmVhIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgcm93cz1cIjNcIiBmb3JtQ29udHJvbE5hbWU9XCJkZXNjcmlwdGlvblwiPjwvdGV4dGFyZWE+XG4gICAgICAgICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDwhLS0gUGFydG5lciBJdGVtcyB3aXRoIERyYWcgU3VwcG9ydCAtLT5cbiAgICAgICAgICAgIDxkaXYgZm9ybUFycmF5TmFtZT1cIml0ZW1zXCIgY2xhc3M9XCJjb2wtMTJcIiBjZGtEcm9wTGlzdCAoY2RrRHJvcExpc3REcm9wcGVkKT1cImRyb3BJdGVtcyhwYXJ0bmVyc0l0ZW1zLCAkZXZlbnQpXCI+XG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBwYXJ0bmVyc0l0ZW1zLmNvbnRyb2xzOyBsZXQgaSA9IGluZGV4XCJcbiAgICAgICAgICAgICAgICBbZm9ybUdyb3VwTmFtZV09XCJpXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInJvdyBib3JkZXIgcC0zIG1iLTMgYWxpZ24taXRlbXMtc3RhcnRcIlxuICAgICAgICAgICAgICAgIGNka0RyYWdcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDwhLS0gTmFtZSAtLT5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIj5cbiAgICAgICAgICAgICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgbGFiZWw9XCJOYW1lXCIgY2xhc3M9XCJjb2wtMTJcIiBuYW1lPVwibmFtZVwiPlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJuYW1lXCIgLz5cbiAgICAgICAgICAgICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgPCEtLSBCbG9nIFVSTCArIERyYWcgSGFuZGxlIC0tPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNVwiPlxuICAgICAgICAgICAgICAgICAgICA8cHctaW5wdXQtY29udGFpbmVyIGxhYmVsPVwiQmxvZyBVcmxcIiBuYW1lPVwiYmxvZ191cmxcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJibG9nX3VybFwiIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEgZC1mbGV4IGp1c3RpZnktY29udGVudC1lbmQgYWxpZ24taXRlbXMtc3RhcnQgbXQtM1wiPlxuICAgICAgICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmYSBmYS1iYXJzIGN1cnNvci1tb3ZlXCJcbiAgICAgICAgICAgICAgICAgICAgY2RrRHJhZ0hhbmRsZVxuICAgICAgICAgICAgICAgICAgICBuZ2JUb29sdGlwPVwiRHJhZyB0byByZW9yZGVyIHF1ZXN0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgID48L2k+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cblxuICAgICAgICAgICAgICAgIDwhLS0gVmlkZW8gVVJMIC0tPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiPlxuICAgICAgICAgICAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBsYWJlbD1cIlZpZGVvIFVybFwiIG5hbWU9XCJ2aWRlb191cmxcIj5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jb250cm9sXCIgZm9ybUNvbnRyb2xOYW1lPVwidmlkZW9fdXJsXCIgLz5cbiAgICAgICAgICAgICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgPCEtLSBJbWFnZSBVUkwgLS0+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCI+XG4gICAgICAgICAgICAgICAgICA8cHctaW5wdXQtY29udGFpbmVyIGxhYmVsPVwiSW1hZ2UgVXJsXCIgbmFtZT1cImltYWdlX3VybFwiPlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJpbWFnZV91cmxcIiAvPlxuICAgICAgICAgICAgICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICA8IS0tIERlbGV0ZSBJY29uIC0tPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgdGV4dC1lbmQgbXQtMlwiPlxuICAgICAgICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgICAgICAgbmdiVG9vbHRpcD1cIlJlbW92ZVwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJyZW1vdmVQYXJ0bmVySXRlbShpKVwiXG4gICAgICAgICAgICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cInJlbW92ZVBhcnRuZXJJdGVtKGkpXCJcbiAgICAgICAgICAgICAgICAgICAgKGtleWRvd24uc3BhY2UpPVwicmVtb3ZlUGFydG5lckl0ZW0oaSlcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZhIGZhLXRyYXNoIGRlbGV0ZS1pY29uIHRleHQtZGFuZ2VyXCJcbiAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgID48L2k+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgIDwhLS0gQWRkIE5ldyBQYXJ0bmVyIC0tPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1zdGFydCBtdC0yXCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgbXQtMiBtYi0yXCIgKGNsaWNrKT1cImFkZFBhcnRuZXJJdGVtKClcIj4rIEFkZCBQYXJ0bmVyPC9idXR0b24+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvcC1hY2NvcmRpb25UYWI+XG5cblxuICAgICAgICA8cC1hY2NvcmRpb25UYWIgW2hlYWRlcl09XCInVGVzdGltb25pYWxzIFNlY3Rpb24nXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBtdC0zIG1iLTRcIiBmb3JtR3JvdXBOYW1lPVwidGVzdGltb25pYWxzXCI+XG4gICAgICAgICAgICA8aDQgY2xhc3M9XCJtYi00XCI+VGVzdGltb25pYWxzIFNlY3Rpb248L2g0PlxuXG4gICAgICAgICAgICA8cHctaW5wdXQtY29udGFpbmVyIGxhYmVsPVwiVGl0bGVcIiBjbGFzcz1cImNvbC0xMiBjb2wtbWQtNlwiIG5hbWU9XCJ0ZXN0aW1vbmlhbHNfdGl0bGVcIj5cbiAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJ0aXRsZVwiIC8+XG4gICAgICAgICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBsYWJlbD1cIkRlc2NyaXB0aW9uXCIgY2xhc3M9XCJjb2wtMTJcIiBuYW1lPVwidGVzdGltb25pYWxzX2Rlc2NyaXB0aW9uXCI+XG4gICAgICAgICAgICAgIDx0ZXh0YXJlYSByb3dzPVwiM1wiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgZm9ybUNvbnRyb2xOYW1lPVwiZGVzY3JpcHRpb25cIj48L3RleHRhcmVhPlxuICAgICAgICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG5cbiAgICAgICAgICAgIDwhLS0gSXRlbXMgTGlzdCAtLT5cbiAgICAgICAgICAgIDxkaXYgZm9ybUFycmF5TmFtZT1cIml0ZW1zXCIgY2xhc3M9XCJjb2wtMTIgbXQtM1wiIGNka0Ryb3BMaXN0IChjZGtEcm9wTGlzdERyb3BwZWQpPVwiZHJvcEl0ZW1zKHRlc3RpbW9uaWFsc0l0ZW1zLCAkZXZlbnQpXCI+XG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiB0ZXN0aW1vbmlhbHNJdGVtcy5jb250cm9sczsgbGV0IGkgPSBpbmRleFwiXG4gICAgICAgICAgICAgICAgW2Zvcm1Hcm91cE5hbWVdPVwiaVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJyb3cgYm9yZGVyIHAtMyBtYi0zIGFsaWduLWl0ZW1zLXN0YXJ0XCJcbiAgICAgICAgICAgICAgICBjZGtEcmFnXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIj5cbiAgICAgICAgICAgICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgbGFiZWw9XCJOYW1lXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgZm9ybUNvbnRyb2xOYW1lPVwibmFtZVwiIC8+XG4gICAgICAgICAgICAgICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNVwiPlxuICAgICAgICAgICAgICAgICAgICA8cHctaW5wdXQtY29udGFpbmVyIGxhYmVsPVwiQmxvZyBVUkxcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cImJsb2dfdXJsXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cblxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMSBkLWZsZXgganVzdGlmeS1jb250ZW50LWVuZCBhbGlnbi1pdGVtcy1zdGFydCBtdC0zXCI+XG4gICAgICAgICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZhIGZhLWJhcnMgY3Vyc29yLW1vdmVcIlxuICAgICAgICAgICAgICAgICAgICBjZGtEcmFnSGFuZGxlXG4gICAgICAgICAgICAgICAgICAgIG5nYlRvb2x0aXA9XCJEcmFnIHRvIHJlb3JkZXIgcXVlc3Rpb25cIlxuICAgICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgPjwvaT5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8cHctaW5wdXQtY29udGFpbmVyIGxhYmVsPVwiSW1hZ2UgVVJMXCIgY2xhc3M9XCJjb2wtbWQtNlwiPlxuICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJpbWFnZV91cmxcIiAvPlxuICAgICAgICAgICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuXG4gICAgICAgICAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBsYWJlbD1cIlZpZGVvIFVSTFwiIGNsYXNzPVwiY29sLW1kLTZcIj5cbiAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgZm9ybUNvbnRyb2xOYW1lPVwidmlkZW9fdXJsXCIgLz5cbiAgICAgICAgICAgICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgbGFiZWw9XCJUZXN0aW1vbmlhbFwiIGNsYXNzPVwiY29sLW1kLTEwXCI+XG4gICAgICAgICAgICAgICAgICA8dGV4dGFyZWEgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiByb3dzPVwiM1wiIGZvcm1Db250cm9sTmFtZT1cInRlc3RpbW9uaWFsXCI+PC90ZXh0YXJlYT5cbiAgICAgICAgICAgICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMiBkLWZsZXggYWxpZ24taXRlbXMtc3RhcnQgbXQtM1wiPlxuICAgICAgICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmYSBmYS10cmFzaCBkZWxldGUtaWNvbiB0ZXh0LWRhbmdlclwiXG4gICAgICAgICAgICAgICAgICAgIG5nYlRvb2x0aXA9XCJSZW1vdmVcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwicmVtb3ZlVGVzdGltb25pYWxJdGVtKGkpXCJcbiAgICAgICAgICAgICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwicmVtb3ZlVGVzdGltb25pYWxJdGVtKGkpXCJcbiAgICAgICAgICAgICAgICAgICAgKGtleWRvd24uc3BhY2UpPVwicmVtb3ZlVGVzdGltb25pYWxJdGVtKGkpXCJcbiAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgID48L2k+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXN0YXJ0IG10LTJcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBtdC0yIG1iLTJcIiAoY2xpY2spPVwiYWRkVGVzdGltb25pYWxJdGVtKClcIj5cbiAgICAgICAgICAgICAgICAgICsgQWRkIFRlc3RpbW9uaWFsXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvcC1hY2NvcmRpb25UYWI+XG5cbiAgICAgICAgPHAtYWNjb3JkaW9uVGFiIFtoZWFkZXJdPVwiJ1ZpZGVvIFNlY3Rpb24nXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBtdC0zIG1iLTRcIiBmb3JtR3JvdXBOYW1lPVwidmlkZW9zXCI+XG4gICAgICAgICAgICA8aDQgY2xhc3M9XCJtYi0zXCI+VmlkZW8gU2VjdGlvbjwvaDQ+XG5cbiAgICAgICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgbGFiZWw9XCJUaXRsZVwiIGNsYXNzPVwiY29sLTEyIGNvbC1tZC02XCIgbmFtZT1cInZpZGVvc190aXRsZVwiPlxuICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cInRpdGxlXCIgLz5cbiAgICAgICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuXG4gICAgICAgICAgICA8cHctaW5wdXQtY29udGFpbmVyIGxhYmVsPVwiRGVzY3JpcHRpb25cIiBjbGFzcz1cImNvbC0xMlwiIG5hbWU9XCJ2aWRlb3NfZGVzY3JpcHRpb25cIj5cbiAgICAgICAgICAgICAgPHRleHRhcmVhIHJvd3M9XCIzXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJkZXNjcmlwdGlvblwiPjwvdGV4dGFyZWE+XG4gICAgICAgICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgPCEtLSBWaWRlbyBJdGVtcyAtLT5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgZm9ybUFycmF5TmFtZT1cIml0ZW1zXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJjb2wtMTIgbXQtM1wiXG4gICAgICAgICAgICAgIGNka0Ryb3BMaXN0XG4gICAgICAgICAgICAgIChjZGtEcm9wTGlzdERyb3BwZWQpPVwiZHJvcEl0ZW1zKHZpZGVvc0l0ZW1zLCAkZXZlbnQpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIHZpZGVvc0l0ZW1zLmNvbnRyb2xzOyBsZXQgaSA9IGluZGV4XCJcbiAgICAgICAgICAgICAgICBbZm9ybUdyb3VwTmFtZV09XCJpXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInJvdyBib3JkZXIgcC0zIG1iLTMgYWxpZ24taXRlbXMtc3RhcnRcIlxuICAgICAgICAgICAgICAgIGNka0RyYWdcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiPlxuICAgICAgICAgICAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBsYWJlbD1cIlRpdGxlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgZm9ybUNvbnRyb2xOYW1lPVwidGl0bGVcIiAvPlxuICAgICAgICAgICAgICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTVcIj5cbiAgICAgICAgICAgICAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBsYWJlbD1cIkJsb2cgVVJMXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJibG9nX3VybFwiIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEgZC1mbGV4IGp1c3RpZnktY29udGVudC1lbmQgYWxpZ24taXRlbXMtc3RhcnQgbXQtM1wiPlxuICAgICAgICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmYSBmYS1iYXJzIGN1cnNvci1tb3ZlXCJcbiAgICAgICAgICAgICAgICAgICAgY2RrRHJhZ0hhbmRsZVxuICAgICAgICAgICAgICAgICAgICBuZ2JUb29sdGlwPVwiRHJhZyB0byByZW9yZGVyIHF1ZXN0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgID48L2k+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICA8cHctaW5wdXQtY29udGFpbmVyIGxhYmVsPVwiSW1hZ2UgVVJMXCIgY2xhc3M9XCJjb2wtbWQtNlwiPlxuICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJpbWFnZV91cmxcIiAvPlxuICAgICAgICAgICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuXG4gICAgICAgICAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBsYWJlbD1cIlZpZGVvIFVSTFwiIGNsYXNzPVwiY29sLW1kLTZcIj5cbiAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgZm9ybUNvbnRyb2xOYW1lPVwidmlkZW9fdXJsXCIgLz5cbiAgICAgICAgICAgICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgbGFiZWw9XCJEZXNjcmlwdGlvblwiIGNsYXNzPVwiY29sLW1kLTEwXCI+XG4gICAgICAgICAgICAgICAgICA8dGV4dGFyZWEgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiByb3dzPVwiM1wiIGZvcm1Db250cm9sTmFtZT1cImRlc2NyaXB0aW9uXCI+PC90ZXh0YXJlYT5cbiAgICAgICAgICAgICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMiBkLWZsZXggYWxpZ24taXRlbXMtc3RhcnQgbXQtM1wiPlxuICAgICAgICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmYSBmYS10cmFzaCBkZWxldGUtaWNvbiB0ZXh0LWRhbmdlclwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJyZW1vdmVWaWRlb0l0ZW0oaSlcIlxuICAgICAgICAgICAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJyZW1vdmVWaWRlb0l0ZW0oaSlcIlxuICAgICAgICAgICAgICAgICAgICAoa2V5ZG93bi5zcGFjZSk9XCJyZW1vdmVWaWRlb0l0ZW0oaSlcIlxuICAgICAgICAgICAgICAgICAgICBuZ2JUb29sdGlwPVwiUmVtb3ZlXCJcbiAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgID48L2k+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXN0YXJ0IG10LTJcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBtdC0yIG1iLTJcIiAoY2xpY2spPVwiYWRkVmlkZW9JdGVtKClcIj5cbiAgICAgICAgICAgICAgICAgICsgQWRkIFZpZGVvXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvcC1hY2NvcmRpb25UYWI+XG5cblxuICAgICAgICA8cC1hY2NvcmRpb25UYWIgW2hlYWRlcl09XCInQ2FsbCB0byBBY3Rpb25zIFNlY3Rpb24gKENUQXMpJ1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbXQtNCBtYi00XCIgZm9ybUdyb3VwTmFtZT1cImN0YXNcIj5cbiAgICAgICAgICAgIDxoNCBjbGFzcz1cIm1iLTRcIj5DVEFzIFNlY3Rpb248L2g0PlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1tZC02XCI+XG4gICAgICAgICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgbGFiZWw9XCJUaXRsZVwiIG5hbWU9XCJ0aXRsZVwiPlxuICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgZm9ybUNvbnRyb2xOYW1lPVwidGl0bGVcIiAvPlxuICAgICAgICAgICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1tZC02XCI+XG4gICAgICAgICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgbGFiZWw9XCJEZXNjcmlwdGlvblwiIG5hbWU9XCJkZXNjcmlwdGlvblwiPlxuICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgZm9ybUNvbnRyb2xOYW1lPVwiZGVzY3JpcHRpb25cIiAvPlxuICAgICAgICAgICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyXCI+XG4gICAgICAgICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgbGFiZWw9XCJJbWFnZSBVUkxcIiBuYW1lPVwiaW1hZ2VfdXJsXCI+XG4gICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJpbWFnZV91cmxcIiAvPlxuICAgICAgICAgICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8IS0tIENUQSBJdGVtcyAtLT5cbiAgICAgICAgICAgIDxkaXYgZm9ybUFycmF5TmFtZT1cIml0ZW1zXCIgY2xhc3M9XCJjb2wtMTIgbXQtM1wiIGNka0Ryb3BMaXN0IChjZGtEcm9wTGlzdERyb3BwZWQpPVwiZHJvcEl0ZW1zKGN0YXNJdGVtcywgJGV2ZW50KVwiPlxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgY3Rhc0l0ZW1zLmNvbnRyb2xzOyBsZXQgaSA9IGluZGV4XCJcbiAgICAgICAgICAgICAgICBbZm9ybUdyb3VwTmFtZV09XCJpXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInJvdyBib3JkZXIgcC0zIG1iLTMgYWxpZ24taXRlbXMtc3RhcnRcIlxuICAgICAgICAgICAgICAgIGNka0RyYWdcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLW1kLTZcIj5cbiAgICAgICAgICAgICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgbGFiZWw9XCJJbWFnZSBVUkxcIiBuYW1lPVwiaW1hZ2VfdXJsXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgZm9ybUNvbnRyb2xOYW1lPVwiaW1hZ2VfdXJsXCIgLz5cbiAgICAgICAgICAgICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC01XCI+XG4gICAgICAgICAgICAgICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgbGFiZWw9XCJDdGEgVVJMXCIgbmFtZT1cImN0YV91cmxcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cImN0YV91cmxcIiAvPlxuICAgICAgICAgICAgICAgICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cblxuXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kIGFsaWduLWl0ZW1zLXN0YXJ0IG10LTNcIj5cbiAgICAgICAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmEgZmEtYmFycyBjdXJzb3ItbW92ZVwiXG4gICAgICAgICAgICAgICAgICAgIGNka0RyYWdIYW5kbGVcbiAgICAgICAgICAgICAgICAgICAgbmdiVG9vbHRpcD1cIkRyYWcgdG8gcmVvcmRlciBxdWVzdGlvblwiXG4gICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICA+PC9pPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtbWQtNlwiPlxuICAgICAgICAgICAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBsYWJlbD1cIlZpZGVvIFVSTFwiIG5hbWU9XCJ2aWRlb191cmxcIj5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJ2aWRlb191cmxcIiAvPlxuICAgICAgICAgICAgICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1tZC02XCI+XG4gICAgICAgICAgICAgICAgICA8cHctaW5wdXQtY29udGFpbmVyIGxhYmVsPVwiQ1RBIFRpdGxlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cInRpdGxlXCIgLz5cbiAgICAgICAgICAgICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtbWQtNlwiPlxuICAgICAgICAgICAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBsYWJlbD1cIkNUQSBEZXNjcmlwdGlvblwiPlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJkZXNjcmlwdGlvblwiIC8+XG4gICAgICAgICAgICAgICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLW1kLTVcIj5cbiAgICAgICAgICAgICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgbGFiZWw9XCJCdXR0b24gVGV4dFwiPlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJidXR0b25fdGV4dFwiIC8+XG4gICAgICAgICAgICAgICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMSBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIG10LTNcIj5cbiAgICAgICAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmEgZmEtdHJhc2ggZGVsZXRlLWljb25cIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwicmVtb3ZlQ3Rhc0l0ZW0oaSlcIlxuICAgICAgICAgICAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJyZW1vdmVDdGFzSXRlbShpKVwiXG4gICAgICAgICAgICAgICAgICAgIChrZXlkb3duLnNwYWNlKT1cInJlbW92ZUN0YXNJdGVtKGkpXCJcbiAgICAgICAgICAgICAgICAgICAgbmdiVG9vbHRpcD1cIlJlbW92ZVwiXG4gICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICA+PC9pPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1zdGFydCBtdC0yXCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgbXQtMiBtYi0yXCIgKGNsaWNrKT1cImFkZEN0YXNJdGVtKClcIj4rIEFkZCBDVEEgSXRlbTwvYnV0dG9uPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3AtYWNjb3JkaW9uVGFiPlxuXG4gICAgICAgIDxwLWFjY29yZGlvblRhYiBbaGVhZGVyXT1cIidJbnRlZ3JhdGlvbnMgU2VjdGlvbidcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IG10LTMgbWItNFwiIGZvcm1Hcm91cE5hbWU9XCJpbnRlZ3JhdGlvbnNcIj5cbiAgICAgICAgICAgIDxoNCBjbGFzcz1cIm1iLTNcIj5JbnRlZ3JhdGlvbnMgU2VjdGlvbjwvaDQ+XG5cbiAgICAgICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgbGFiZWw9XCJUaXRsZVwiIGNsYXNzPVwiY29sLTEyXCI+XG4gICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgZm9ybUNvbnRyb2xOYW1lPVwidGl0bGVcIiAvPlxuICAgICAgICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG5cbiAgICAgICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgbGFiZWw9XCJEZXNjcmlwdGlvblwiIGNsYXNzPVwiY29sLTEyXCI+XG4gICAgICAgICAgICAgIDx0ZXh0YXJlYSBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cImRlc2NyaXB0aW9uXCIgcm93cz1cIjNcIj48L3RleHRhcmVhPlxuICAgICAgICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG5cbiAgICAgICAgICAgIDxkaXYgZm9ybUFycmF5TmFtZT1cIml0ZW1zXCIgY2xhc3M9XCJjb2wtMTJcIiBjZGtEcm9wTGlzdCAoY2RrRHJvcExpc3REcm9wcGVkKT1cImRyb3BJdGVtcyhpbnRlZ3JhdGlvbnNJdGVtcywgJGV2ZW50KVwiPlxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgaW50ZWdyYXRpb25zSXRlbXMuY29udHJvbHM7IGxldCBpID0gaW5kZXhcIlxuICAgICAgICAgICAgICAgIFtmb3JtR3JvdXBOYW1lXT1cImlcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwicm93IGJvcmRlciBwLTMgbWItMyByb3VuZGVkIGJnLWxpZ2h0XCJcbiAgICAgICAgICAgICAgICBjZGtEcmFnXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8cHctaW5wdXQtY29udGFpbmVyIGxhYmVsPVwiVGl0bGVcIiBjbGFzcz1cImNvbC1tZC02XCI+XG4gICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cInRpdGxlXCIgLz5cbiAgICAgICAgICAgICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNVwiPlxuICAgICAgICAgICAgICAgICAgICA8cHctaW5wdXQtY29udGFpbmVyIGxhYmVsPVwiRGVzY3JpcHRpb25cIj5cbiAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cImRlc2NyaXB0aW9uXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cblxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMSBkLWZsZXgganVzdGlmeS1jb250ZW50LWVuZCBhbGlnbi1pdGVtcy1zdGFydCBtdC0zXCI+XG4gICAgICAgICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZhIGZhLWJhcnMgY3Vyc29yLW1vdmVcIlxuICAgICAgICAgICAgICAgICAgICBjZGtEcmFnSGFuZGxlXG4gICAgICAgICAgICAgICAgICAgIG5nYlRvb2x0aXA9XCJEcmFnIHRvIHJlb3JkZXIgcXVlc3Rpb25cIlxuICAgICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgPjwvaT5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgbGFiZWw9XCJCbG9nIFVSTFwiIGNsYXNzPVwiY29sLW1kLTZcIj5cbiAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgZm9ybUNvbnRyb2xOYW1lPVwiYmxvZ191cmxcIiAvPlxuICAgICAgICAgICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuXG4gICAgICAgICAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBsYWJlbD1cIkltYWdlIFVSTFwiIGNsYXNzPVwiY29sLW1kLTZcIj5cbiAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgZm9ybUNvbnRyb2xOYW1lPVwiaW1hZ2VfdXJsXCIgLz5cbiAgICAgICAgICAgICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgbGFiZWw9XCJWaWRlbyBVUkxcIiBjbGFzcz1cImNvbC1tZC02XCI+XG4gICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cInZpZGVvX3VybFwiIC8+XG4gICAgICAgICAgICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTYgZC1mbGV4IGFsaWduLWl0ZW1zLWVuZCBqdXN0aWZ5LWNvbnRlbnQtZW5kXCI+XG4gICAgICAgICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZhIGZhLXRyYXNoIGRlbGV0ZS1pY29uIGFsaWduLXNlbGYtY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInJlbW92ZUludGVncmF0aW9uSXRlbShpKVwiXG4gICAgICAgICAgICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cInJlbW92ZUludGVncmF0aW9uSXRlbShpKVwiXG4gICAgICAgICAgICAgICAgICAgIChrZXlkb3duLnNwYWNlKT1cInJlbW92ZUludGVncmF0aW9uSXRlbShpKVwiXG4gICAgICAgICAgICAgICAgICAgIG5nYlRvb2x0aXA9XCJSZW1vdmVcIlxuICAgICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgPjwvaT5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtc3RhcnQgbXQtMlwiPlxuICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCIgKGNsaWNrKT1cImFkZEludGVncmF0aW9uSXRlbSgpXCI+KyBBZGQgSW50ZWdyYXRpb248L2J1dHRvbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9wLWFjY29yZGlvblRhYj5cblxuXG4gICAgICAgIDxwLWFjY29yZGlvblRhYiBbaGVhZGVyXT1cIidDb250YWN0IFVzIFNlY3Rpb24nXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBtdC0zIG1iLTRcIiBmb3JtR3JvdXBOYW1lPVwiY29udGFjdF91c1wiPlxuICAgICAgICAgICAgPGg0IGNsYXNzPVwibWItM1wiPkNvbnRhY3QgVXMgU2VjdGlvbjwvaDQ+XG5cbiAgICAgICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgbGFiZWw9XCJVcmxcIiBjbGFzcz1cImNvbC1tZC02XCI+XG4gICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgZm9ybUNvbnRyb2xOYW1lPVwidXJsXCIgLz5cbiAgICAgICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgICAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBsYWJlbD1cIkRlc2NyaXB0aW9uXCIgY2xhc3M9XCJjb2wtMTJcIiBuYW1lPVwiY29udGFjdF91c19kZXNjcmlwdGlvblwiPlxuICAgICAgICAgICAgICA8dGV4dGFyZWEgcm93cz1cIjNcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cImRlc2NyaXB0aW9uXCI+PC90ZXh0YXJlYT5cbiAgICAgICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuXG4gICAgICAgICAgICA8ZGl2IGZvcm1BcnJheU5hbWU9XCJxdWVzdGlvbnNcIiBjbGFzcz1cImNvbC0xMiBtdC0zXCIgY2RrRHJvcExpc3QgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJkcm9wSXRlbXMoY29udGFjdFVzUXVlc3Rpb25zLCAkZXZlbnQpXCI+XG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgcXVlc3Rpb25Hcm91cCBvZiBjb250YWN0VXNRdWVzdGlvbnMuY29udHJvbHM7IGxldCBpID0gaW5kZXhcIlxuICAgICAgICAgICAgICAgIFtmb3JtR3JvdXBOYW1lXT1cImlcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwicm93IGJvcmRlciBwLTMgbWItM1wiXG4gICAgICAgICAgICAgICAgY2RrRHJhZ1xuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBsYWJlbD1cIlF1ZXN0aW9uXCIgY2xhc3M9XCJjb2wtbWQtMTBcIj5cbiAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgZm9ybUNvbnRyb2xOYW1lPVwicXVlc3Rpb25cIiAvPlxuICAgICAgICAgICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMSBkLWZsZXgganVzdGlmeS1jb250ZW50LWVuZCBhbGlnbi1pdGVtcy1zdGFydCBtdC0zXCI+XG4gICAgICAgICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZhIGZhLXRyYXNoIGRlbGV0ZS1pY29uIHRleHQtZGFuZ2VyXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInJlbW92ZUNvbnRhY3RVc1F1ZXN0aW9uKGkpXCJcbiAgICAgICAgICAgICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwicmVtb3ZlQ29udGFjdFVzUXVlc3Rpb24oaSlcIlxuICAgICAgICAgICAgICAgICAgICAoa2V5ZG93bi5zcGFjZSk9XCJyZW1vdmVDb250YWN0VXNRdWVzdGlvbihpKVwiXG4gICAgICAgICAgICAgICAgICAgIG5nYlRvb2x0aXA9XCJSZW1vdmVcIlxuICAgICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgPjwvaT5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMSBkLWZsZXgganVzdGlmeS1jb250ZW50LWVuZCBhbGlnbi1pdGVtcy1zdGFydCBtdC0zXCI+XG4gICAgICAgICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZhIGZhLWJhcnMgY3Vyc29yLW1vdmVcIlxuICAgICAgICAgICAgICAgICAgICBjZGtEcmFnSGFuZGxlXG4gICAgICAgICAgICAgICAgICAgIG5nYlRvb2x0aXA9XCJEcmFnIHRvIHJlb3JkZXIgcXVlc3Rpb25cIlxuICAgICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgPjwvaT5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgbXQtM1wiIGZvcm1BcnJheU5hbWU9XCJvcHRpb25zXCIgY2RrRHJvcExpc3QgW2Nka0Ryb3BMaXN0RGF0YV09XCJnZXRRdWVzdGlvbk9wdGlvbnMoaSkuY29udHJvbHNcIiAoY2RrRHJvcExpc3REcm9wcGVkKT1cImRyb3BDb250YWN0VXNPcHRpb25zKGksICRldmVudClcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJyb3cgYWxpZ24taXRlbXMtY2VudGVyIG1iLTIgYm9yZGVyIHAtM1wiXG4gICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgZ2V0UXVlc3Rpb25PcHRpb25zKGkpLmNvbnRyb2xzOyBsZXQgaiA9IGluZGV4XCJcbiAgICAgICAgICAgICAgICAgICAgW2Zvcm1Hcm91cE5hbWVdPVwialwiXG4gICAgICAgICAgICAgICAgICAgIGNka0RyYWdcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBsYWJlbD1cIk9wdGlvblwiIGNsYXNzPVwiY29sLW1kLTEwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJvcHRpb25cIiAvPlxuICAgICAgICAgICAgICAgICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEgZC1mbGV4IGp1c3RpZnktY29udGVudC1lbmQgbXQtM1wiPlxuICAgICAgICAgICAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZhIGZhLXRyYXNoIGRlbGV0ZS1pY29uIHRleHQtZGFuZ2VyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJyZW1vdmVDb250YWN0VXNPcHRpb24oaSwgailcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwicmVtb3ZlQ29udGFjdFVzT3B0aW9uKGksIGopXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChrZXlkb3duLnNwYWNlKT1cInJlbW92ZUNvbnRhY3RVc09wdGlvbihpLCBqKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBuZ2JUb29sdGlwPVwiUmVtb3ZlIE9wdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgID48L2k+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMSBkLWZsZXgganVzdGlmeS1jb250ZW50LWVuZCBtdC0zXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmEgZmEtYmFycyBjdXJzb3ItbW92ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjZGtEcmFnSGFuZGxlXG4gICAgICAgICAgICAgICAgICAgICAgICBuZ2JUb29sdGlwPVwiRHJhZyB0byByZW9yZGVyIG9wdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgID48L2k+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXN0YXJ0XCI+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IGJ0bi1zbVwiIChjbGljayk9XCJhZGRDb250YWN0VXNPcHRpb24oaSlcIj5cbiAgICAgICAgICAgICAgICAgICAgICArIEFkZCBPcHRpb25cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtc3RhcnQgbXQtM1wiPlxuICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCIgKGNsaWNrKT1cImFkZENvbnRhY3RVc1F1ZXN0aW9uKClcIj5cbiAgICAgICAgICAgICAgICAgICsgQWRkIFF1ZXN0aW9uXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxkaXYgZm9ybUFycmF5TmFtZT1cImh1YnNwb3RcIiBjbGFzcz1cImNvbC0xMiBtdC00XCIgY2RrRHJvcExpc3QgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJkcm9wSXRlbXMoY29udGFjdFVzSHVic3BvdEl0ZW1zLCAkZXZlbnQpXCI+XG4gICAgICAgICAgICAgIDxoNSBjbGFzcz1cIm1iLTRcIj5IdWJzcG90IEVtYmVkczwvaDU+XG5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBodWIgb2YgY29udGFjdFVzSHVic3BvdEl0ZW1zLmNvbnRyb2xzOyBsZXQgaSA9IGluZGV4XCJcbiAgICAgICAgICAgICAgICBbZm9ybUdyb3VwTmFtZV09XCJpXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInJvdyBib3JkZXIgcC0zIG1iLTJcIlxuICAgICAgICAgICAgICAgIGNka0RyYWdcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8cHctaW5wdXQtY29udGFpbmVyIGxhYmVsPVwiSURcIiBjbGFzcz1cImNvbC1tZC01XCI+XG4gICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJpZFwiIC8+XG4gICAgICAgICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuXG4gICAgICAgICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgbGFiZWw9XCJQb3NpdGlvblwiIGNsYXNzPVwiY29sLW1kLTZcIj5cbiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cInBvc2l0aW9uXCIgLz5cbiAgICAgICAgICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMSBkLWZsZXggYWxpZ24taXRlbXMtc3RhcnQganVzdGlmeS1jb250ZW50LWVuZCBtdC0zXCI+XG4gICAgICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmEgZmEtYmFycyBjdXJzb3ItbW92ZVwiXG4gICAgICAgICAgICAgICAgICBjZGtEcmFnSGFuZGxlXG4gICAgICAgICAgICAgICAgICBuZ2JUb29sdGlwPVwiRHJhZyB0byByZW9yZGVyXCJcbiAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgPjwvaT5cbiAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICA8cHctaW5wdXQtY29udGFpbmVyIGxhYmVsPVwiRGl2XCIgY2xhc3M9XCJjb2wtMTBcIj5cbiAgICAgICAgICAgICAgICAgIDx0ZXh0YXJlYVxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICAgICAgICAgIHJvd3M9XCI1XCJcbiAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZGl2XCJcbiAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnaXMtaW52YWxpZCc6IHN1Ym1pdHRlZCAmJiBmWydkaXYnXT8uZXJyb3JzIH1cIlxuICAgICAgICAgICAgICAgICAgPjwvdGV4dGFyZWE+XG4gICAgICAgICAgICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTIgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBtdC0zXCI+XG4gICAgICAgICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZhIGZhLXRyYXNoIGRlbGV0ZS1pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInJlbW92ZUh1YnNwb3RJdGVtKGkpXCJcbiAgICAgICAgICAgICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwicmVtb3ZlSHVic3BvdEl0ZW0oaSlcIlxuICAgICAgICAgICAgICAgICAgICAoa2V5ZG93bi5zcGFjZSk9XCJyZW1vdmVIdWJzcG90SXRlbShpKVwiXG4gICAgICAgICAgICAgICAgICAgIG5nYlRvb2x0aXA9XCJSZW1vdmUgSHVic3BvdCBFbWJlZFwiXG4gICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuPC9pPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1zdGFydCBtdC0yXCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgYnRuLXNtXCIgKGNsaWNrKT1cImFkZEh1YnNwb3RJdGVtKClcIj5cbiAgICAgICAgICAgICAgICAgICsgQWRkIEh1YnNwb3QgRW1iZWRcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3AtYWNjb3JkaW9uVGFiPlxuXG5cbiAgICAgICAgPHAtYWNjb3JkaW9uVGFiIFtoZWFkZXJdPVwiJ0Jvb2sgYSBEZW1vIFNlY3Rpb24nXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBtdC00XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyXCI+XG4gICAgICAgICAgICAgIDxoNCBjbGFzcz1cIm1iLTNcIj57eyAnQWRtaW4uRG9tYWluQ29uZmlnLkJvb2tEZW1vTGlua3MnIHwgdHJhbnNsb2NvIH19PC9oND5cbiAgICAgICAgICAgICAgPGRpdiBmb3JtR3JvdXBOYW1lPVwiYm9va19kZW1vXCI+XG4gICAgICAgICAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBsYWJlbD1cIlRpdGxlXCI+XG4gICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBmb3JtQ29udHJvbE5hbWU9XCJ0aXRsZVwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgLz5cbiAgICAgICAgICAgICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgbGFiZWw9XCJEZXNjcmlwdGlvblwiPlxuICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgZm9ybUNvbnRyb2xOYW1lPVwiZGVzY3JpcHRpb25cIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIC8+XG4gICAgICAgICAgICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgICA8ZGl2IGZvcm1BcnJheU5hbWU9XCJpdGVtc1wiIGNka0Ryb3BMaXN0IChjZGtEcm9wTGlzdERyb3BwZWQpPVwiZHJvcEJvb2tEZW1vTGlua3MoJGV2ZW50KVwiPlxuICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgbGluayBvZiBmWydib29rX2RlbW8nXS5nZXQoJ2l0ZW1zJylbJ2NvbnRyb2xzJ107IGxldCBpID0gaW5kZXhcIlxuICAgICAgICAgICAgICAgICAgICBbZm9ybUdyb3VwTmFtZV09XCJpXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJyb3cgbWItMyBib3JkZXIgcC0zIGFsaWduLWl0ZW1zLWNlbnRlclwiXG4gICAgICAgICAgICAgICAgICAgIGNka0RyYWdcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS01XCI+XG4gICAgICAgICAgICAgICAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBsYWJlbD1cIkxpbmsgVGl0bGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgZm9ybUNvbnRyb2xOYW1lPVwidGl0bGVcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLTVcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8cHctaW5wdXQtY29udGFpbmVyIGxhYmVsPVwiTGluayBVUkxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgZm9ybUNvbnRyb2xOYW1lPVwidXJsXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS0xIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kIG10LTNcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgICAgICAgICAgbmdiVG9vbHRpcD1cIlJlbW92ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwicmVtb3ZlQm9va0RlbW9MaW5rKGkpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cInJlbW92ZUJvb2tEZW1vTGluayhpKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoa2V5ZG93bi5zcGFjZSk9XCJyZW1vdmVCb29rRGVtb0xpbmsoaSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmYSBmYS10cmFzaCBkZWxldGUtaWNvbiB0ZXh0LWRhbmdlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgID48L2k+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tMSBkLWZsZXgganVzdGlmeS1jb250ZW50LWVuZCBtdC0zXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmEgZmEtYmFycyBjdXJzb3ItbW92ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjZGtEcmFnSGFuZGxlXG4gICAgICAgICAgICAgICAgICAgICAgICBuZ2JUb29sdGlwPVwiRHJhZyB0byByZW9yZGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgbXQtMiBtYi0yXCIgKGNsaWNrKT1cImFkZEJvb2tEZW1vTGluaygpXCI+XG4gICAgICAgICAgICAgICAgICAgICsgQWRkIEJvb2sgRGVtbyBMaW5rXG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9wLWFjY29yZGlvblRhYj5cblxuXG4gICAgICAgIDxwLWFjY29yZGlvblRhYiBbaGVhZGVyXT1cIidOYXZiYXIgU2VjdGlvbidcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IG10LTMgbWItNFwiIGZvcm1Hcm91cE5hbWU9XCJuYXZiYXJcIj5cbiAgICAgICAgICAgIDxoNCBjbGFzcz1cIm1iLTNcIj5OYXZiYXIgU2VjdGlvbjwvaDQ+XG5cbiAgICAgICAgICAgIDxkaXYgZm9ybUFycmF5TmFtZT1cIml0ZW1zXCIgY2xhc3M9XCJjb2wtMTJcIiBjZGtEcm9wTGlzdCAoY2RrRHJvcExpc3REcm9wcGVkKT1cImRyb3BJdGVtcyhuYXZiYXJJdGVtcywgJGV2ZW50KVwiPlxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgbmF2YmFySXRlbXMuY29udHJvbHM7IGxldCBpID0gaW5kZXhcIlxuICAgICAgICAgICAgICAgIFtmb3JtR3JvdXBOYW1lXT1cImlcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwicm93IG1iLTNcIlxuICAgICAgICAgICAgICAgIGNka0RyYWdcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICA8cHctaW5wdXQtY29udGFpbmVyIGxhYmVsPVwiVGl0bGVcIiBjbGFzcz1cImNvbC1tZC01XCI+XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgZm9ybUNvbnRyb2xOYW1lPVwidGl0bGVcIiAvPlxuICAgICAgICAgICAgICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgbGFiZWw9XCJQYXRoXCIgY2xhc3M9XCJjb2wtbWQtNVwiPlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cInBhdGhcIiAvPlxuICAgICAgICAgICAgICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMSBkLWZsZXgganVzdGlmeS1jb250ZW50LWVuZCBhbGlnbi1pdGVtcy1zdGFydCBtdC0xXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmYSBmYS10cmFzaCBkZWxldGUtaWNvbiB0ZXh0LWRhbmdlclwiXG4gICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInJlbW92ZU5hdmJhckl0ZW0oaSlcIlxuICAgICAgICAgICAgICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cInJlbW92ZU5hdmJhckl0ZW0oaSlcIlxuICAgICAgICAgICAgICAgICAgICAgIChrZXlkb3duLnNwYWNlKT1cInJlbW92ZU5hdmJhckl0ZW0oaSlcIlxuICAgICAgICAgICAgICAgICAgICAgIG5nYlRvb2x0aXA9XCJSZW1vdmUgTmF2YmFyIEl0ZW1cIlxuICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgID48L2k+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kIGFsaWduLWl0ZW1zLXN0YXJ0IG10LTFcIj5cbiAgICAgICAgICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZhIGZhLWJhcnMgY3Vyc29yLW1vdmVcIlxuICAgICAgICAgICAgICAgICAgICAgIGNka0RyYWdIYW5kbGVcbiAgICAgICAgICAgICAgICAgICAgICBuZ2JUb29sdGlwPVwiRHJhZyB0byByZW9yZGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICA+PC9pPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImNvbC0xMiBtdC0zXCJcbiAgICAgICAgICAgICAgICAgIGZvcm1BcnJheU5hbWU9XCJzdWJ0aXRsZXNcIlxuICAgICAgICAgICAgICAgICAgY2RrRHJvcExpc3RcbiAgICAgICAgICAgICAgICAgIFtjZGtEcm9wTGlzdERhdGFdPVwiZ2V0TmF2YmFyU3VidGl0bGVzKGkpLmNvbnRyb2xzXCJcbiAgICAgICAgICAgICAgICAgIChjZGtEcm9wTGlzdERyb3BwZWQpPVwiZHJvcE5hdmJhclN1YnRpdGxlcyhpLCAkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBzdWIgb2YgZ2V0TmF2YmFyU3VidGl0bGVzKGkpLmNvbnRyb2xzOyBsZXQgaiA9IGluZGV4XCJcbiAgICAgICAgICAgICAgICAgICAgW2Zvcm1Hcm91cE5hbWVdPVwialwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicm93IGJvcmRlciBwLTMgbWItMiBhbGlnbi1pdGVtcy1jZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICBjZGtEcmFnXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNVwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgbGFiZWw9XCJTdWJ0aXRsZSBUaXRsZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJ0aXRsZVwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNVwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgbGFiZWw9XCJTdWJ0aXRsZSBQYXRoXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cInBhdGhcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEgZC1mbGV4IGp1c3RpZnktY29udGVudC1lbmQgYWxpZ24taXRlbXMtc3RhcnQgbXQtMlwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZhIGZhLXRyYXNoIGRlbGV0ZS1pY29uIHRleHQtZGFuZ2VyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJyZW1vdmVTdWJ0aXRsZShpLCBqKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJyZW1vdmVTdWJ0aXRsZShpLCBqKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoa2V5ZG93bi5zcGFjZSk9XCJyZW1vdmVTdWJ0aXRsZShpLCBqKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBuZ2JUb29sdGlwPVwiUmVtb3ZlIFN1YnRpdGxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmEgZmEtYmFycyBjdXJzb3ItbW92ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjZGtEcmFnSGFuZGxlXG4gICAgICAgICAgICAgICAgICAgICAgICBuZ2JUb29sdGlwPVwiRHJhZyB0byByZW9yZGVyIHN1YnRpdGxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXNtIGJ0bi1wcmltYXJ5IG10LTJcIiAoY2xpY2spPVwiYWRkU3VidGl0bGUoaSlcIj5cbiAgICAgICAgICAgICAgICAgICAgKyBBZGQgU3VidGl0bGVcbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBtdC0yIG1iLTJcIiAoY2xpY2spPVwiYWRkTmF2YmFySXRlbSgpXCI+XG4gICAgICAgICAgICAgICAgKyBBZGQgTmF2YmFyIEl0ZW1cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9wLWFjY29yZGlvblRhYj5cblxuXG4gICAgICAgIDxwLWFjY29yZGlvblRhYiBbaGVhZGVyXT1cIidGb290ZXIgTGlua3MgU2VjdGlvbidcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IG10LTMgbWItNFwiIGZvcm1Hcm91cE5hbWU9XCJmb290ZXJfbGlua3NcIj5cbiAgICAgICAgICAgIDxoNCBjbGFzcz1cIm1iLTNcIj5Gb290ZXIgTGlua3MgU2VjdGlvbjwvaDQ+XG5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgZm9ybUFycmF5TmFtZT1cIml0ZW1zXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJjb2wtMTJcIlxuICAgICAgICAgICAgICBjZGtEcm9wTGlzdFxuICAgICAgICAgICAgICAoY2RrRHJvcExpc3REcm9wcGVkKT1cImRyb3BJdGVtcyhmb290ZXJMaW5rc0l0ZW1zLCAkZXZlbnQpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIGZvb3RlckxpbmtzSXRlbXMuY29udHJvbHM7IGxldCBpID0gaW5kZXhcIlxuICAgICAgICAgICAgICAgIFtmb3JtR3JvdXBOYW1lXT1cImlcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwicm93IG1iLTNcIlxuICAgICAgICAgICAgICAgIGNka0RyYWdcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgYWxpZ24taXRlbXMtY2VudGVyXCI+XG5cbiAgICAgICAgICAgICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgbGFiZWw9XCJUaXRsZVwiIGNsYXNzPVwiY29sLW1kLTVcIj5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJ0aXRsZVwiIC8+XG4gICAgICAgICAgICAgICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBsYWJlbD1cIlBhdGhcIiBjbGFzcz1cImNvbC1tZC01XCI+XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgZm9ybUNvbnRyb2xOYW1lPVwicGF0aFwiIC8+XG4gICAgICAgICAgICAgICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMSBkLWZsZXgganVzdGlmeS1jb250ZW50LWVuZCBhbGlnbi1pdGVtcy1zdGFydCBtdC0xXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmYSBmYS10cmFzaCBkZWxldGUtaWNvbiB0ZXh0LWRhbmdlclwiXG4gICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInJlbW92ZUZvb3RlckxpbmtJdGVtKGkpXCJcbiAgICAgICAgICAgICAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJyZW1vdmVGb290ZXJMaW5rSXRlbShpKVwiXG4gICAgICAgICAgICAgICAgICAgICAgKGtleWRvd24uc3BhY2UpPVwicmVtb3ZlRm9vdGVyTGlua0l0ZW0oaSlcIlxuICAgICAgICAgICAgICAgICAgICAgIG5nYlRvb2x0aXA9XCJSZW1vdmUgRm9vdGVyIEl0ZW1cIlxuICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgID48L2k+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMSBkLWZsZXggYWxpZ24taXRlbXMtc3RhcnQganVzdGlmeS1jb250ZW50LWVuZCBtdC0xXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmYSBmYS1iYXJzIGN1cnNvci1tb3ZlXCJcbiAgICAgICAgICAgICAgICAgICAgICBjZGtEcmFnSGFuZGxlXG4gICAgICAgICAgICAgICAgICAgICAgbmdiVG9vbHRpcD1cIkRyYWcgdG8gcmVvcmRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvaT5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImNvbC0xMiBtdC0zXCJcbiAgICAgICAgICAgICAgICAgIGZvcm1BcnJheU5hbWU9XCJzdWJ0aXRsZXNcIlxuICAgICAgICAgICAgICAgICAgY2RrRHJvcExpc3RcbiAgICAgICAgICAgICAgICAgIFtjZGtEcm9wTGlzdERhdGFdPVwiZ2V0Rm9vdGVyU3VidGl0bGVzKGkpLmNvbnRyb2xzXCJcbiAgICAgICAgICAgICAgICAgIChjZGtEcm9wTGlzdERyb3BwZWQpPVwiZHJvcEZvb3RlclN1YnRpdGxlcyhpLCAkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBzdWIgb2YgZ2V0Rm9vdGVyU3VidGl0bGVzKGkpLmNvbnRyb2xzOyBsZXQgaiA9IGluZGV4XCJcbiAgICAgICAgICAgICAgICAgICAgW2Zvcm1Hcm91cE5hbWVdPVwialwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicm93IGJvcmRlciBwLTMgbWItMiBhbGlnbi1pdGVtcy1jZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICBjZGtEcmFnXG4gICAgICAgICAgICAgICAgICA+XG5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC01XCI+XG4gICAgICAgICAgICAgICAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBsYWJlbD1cIlN1YnRpdGxlIFRpdGxlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cInRpdGxlXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC01XCI+XG4gICAgICAgICAgICAgICAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBsYWJlbD1cIlN1YnRpdGxlIFBhdGhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgZm9ybUNvbnRyb2xOYW1lPVwicGF0aFwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG5cblxuXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMSBkLWZsZXgganVzdGlmeS1jb250ZW50LWVuZCBhbGlnbi1pdGVtcy1zdGFydCBtdC0yXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmEgZmEtdHJhc2ggZGVsZXRlLWljb24gdGV4dC1kYW5nZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInJlbW92ZUZvb3RlclN1YnRpdGxlKGksIGopXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cInJlbW92ZUZvb3RlclN1YnRpdGxlKGksIGopXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChrZXlkb3duLnNwYWNlKT1cInJlbW92ZUZvb3RlclN1YnRpdGxlKGksIGopXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5nYlRvb2x0aXA9XCJSZW1vdmUgU3VidGl0bGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICA+PC9pPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmEgZmEtYmFycyBjdXJzb3ItbW92ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjZGtEcmFnSGFuZGxlXG4gICAgICAgICAgICAgICAgICAgICAgICBuZ2JUb29sdGlwPVwiRHJhZyB0byByZW9yZGVyIHN1YnRpdGxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXNtIGJ0bi1wcmltYXJ5IG10LTJcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiYWRkRm9vdGVyU3VidGl0bGUoaSlcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICArIEFkZCBTdWJ0aXRsZVxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBtdC0yIG1iLTJcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJhZGRGb290ZXJMaW5rSXRlbSgpXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICsgQWRkIEZvb3RlciBMaW5rXG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvcC1hY2NvcmRpb25UYWI+XG5cblxuXG5cblxuICAgICAgICA8cC1hY2NvcmRpb25UYWIgW2hlYWRlcl09XCInR3VpZGVzIFNlY3Rpb24nXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBtdC0zIG1iLTRcIiBmb3JtR3JvdXBOYW1lPVwiZ3VpZGVzXCI+XG4gICAgICAgICAgICA8aDQgY2xhc3M9XCJtYi0zXCI+R3VpZGVzIFNlY3Rpb248L2g0PlxuXG4gICAgICAgICAgICA8ZGl2IGZvcm1BcnJheU5hbWU9XCJpdGVtc1wiIGNsYXNzPVwiY29sLTEyXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2RrRHJvcExpc3QgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJkcm9wSXRlbXMoZ3VpZGVzSXRlbXMsICRldmVudClcIj5cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBndWlkZXNJdGVtcy5jb250cm9sczsgbGV0IGkgPSBpbmRleFwiXG4gICAgICAgICAgICAgICAgICBbZm9ybUdyb3VwTmFtZV09XCJpXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYm9yZGVyIHAtMyBtYi0zXCJcbiAgICAgICAgICAgICAgICAgIGNka0RyYWdcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IGFsaWduLWl0ZW1zLXN0YXJ0XCI+XG5cbiAgICAgICAgICAgICAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBsYWJlbD1cIlRpdGxlXCIgY2xhc3M9XCJjb2wtbWQtNVwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgZm9ybUNvbnRyb2xOYW1lPVwidGl0bGVcIiAvPlxuICAgICAgICAgICAgICAgICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgICAgICAgICA8cHctaW5wdXQtY29udGFpbmVyIGxhYmVsPVwiQnV0dG9uIFRleHRcIiBjbGFzcz1cImNvbC1tZC02XCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJidXR0b25fdGV4dFwiIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEgZC1mbGV4IGFsaWduLWl0ZW1zLXN0YXJ0IGp1c3RpZnktY29udGVudC1lbmQgbXQtMVwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZhIGZhLWJhcnMgY3Vyc29yLW1vdmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2RrRHJhZ0hhbmRsZVxuICAgICAgICAgICAgICAgICAgICAgICAgbmdiVG9vbHRpcD1cIkRyYWcgdG8gcmVvcmRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgID48L2k+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbXQtMlwiPlxuICAgICAgICAgICAgICAgICAgICA8cHctaW5wdXQtY29udGFpbmVyIGxhYmVsPVwiSW1hZ2UgVVJMXCIgY2xhc3M9XCJjb2wtbWQtNlwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgZm9ybUNvbnRyb2xOYW1lPVwiaW1hZ2VfdXJsXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBsYWJlbD1cIkd1aWRlIFVSTFwiIGNsYXNzPVwiY29sLW1kLTZcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cImd1aWRlX3VybFwiIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbXQtMlwiPlxuICAgICAgICAgICAgICAgICAgICA8cHctaW5wdXQtY29udGFpbmVyIGxhYmVsPVwiRGVzY3JpcHRpb25cIiBjbGFzcz1cImNvbC1tZC0xMVwiPlxuICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0YXJlYVxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICAgICAgICAgICAgICAgcm93cz1cIjVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnaXMtaW52YWxpZCc6IHN1Ym1pdHRlZCAmJiBmWydkZXNjcmlwdGlvbiddPy5lcnJvcnMgfVwiXG4gICAgICAgICAgICAgICAgICAgICAgPjwvdGV4dGFyZWE+XG4gICAgICAgICAgICAgICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMSBkLWZsZXggYWxpZ24taXRlbXMtc3RhcnQganVzdGlmeS1jb250ZW50LWNlbnRlciBtdC0zXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmEgZmEtdHJhc2ggZGVsZXRlLWljb24gdGV4dC1kYW5nZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInJlbW92ZUd1aWRlSXRlbShpKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJyZW1vdmVHdWlkZUl0ZW0oaSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGtleWRvd24uc3BhY2UpPVwicmVtb3ZlR3VpZGVJdGVtKGkpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5nYlRvb2x0aXA9XCJSZW1vdmUgR3VpZGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICA+PC9pPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1zdGFydCBtdC0yXCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIiAoY2xpY2spPVwiYWRkR3VpZGVJdGVtKClcIj5cbiAgICAgICAgICAgICAgICAgICsgQWRkIEd1aWRlXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvcC1hY2NvcmRpb25UYWI+XG5cblxuXG4gICAgICAgIDxwLWFjY29yZGlvblRhYiBbaGVhZGVyXT1cIidBQiBUZXN0cyBTZWN0aW9uJ1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbXQtMyBtYi00XCI+XG4gICAgICAgICAgICA8aDQgY2xhc3M9XCJtYi0zXCI+QUIgVGVzdHM8L2g0PlxuICAgICAgICAgICAgPGRpdiBmb3JtQXJyYXlOYW1lPVwiYWJfdGVzdHNcIiBjbGFzcz1cImNvbC0xMlwiIGNka0Ryb3BMaXN0IChjZGtEcm9wTGlzdERyb3BwZWQpPVwiZHJvcEl0ZW1zKGFiVGVzdHMsICRldmVudClcIj5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBhYlRlc3Qgb2YgYWJUZXN0cy5jb250cm9sczsgbGV0IGkgPSBpbmRleFwiXG4gICAgICAgICAgICAgICAgW2Zvcm1Hcm91cE5hbWVdPVwiaVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJyb3cgbWItMyBib3JkZXIgcC0zXCJcbiAgICAgICAgICAgICAgICBjZGtEcmFnXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8cHctaW5wdXQtY29udGFpbmVyIGxhYmVsPVwiRGVzY3JpcHRpb25cIiBjbGFzcz1cImNvbC1tZC01XCI+XG4gICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cImRlc2NyaXB0aW9uXCIgLz5cbiAgICAgICAgICAgICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgbGFiZWw9XCJFeHBlcmltZW50IE5hbWVcIiBjbGFzcz1cImNvbC1tZC02XCI+XG4gICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cImV4cGVyaW1lbnRfbmFtZVwiIC8+XG4gICAgICAgICAgICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG5cblxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMSBkLWZsZXggYWxpZ24taXRlbXMtc3RhcnQganVzdGlmeS1jb250ZW50LWVuZCBtdC0xXCI+XG4gICAgICAgICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZhIGZhLWJhcnMgY3Vyc29yLW1vdmVcIlxuICAgICAgICAgICAgICAgICAgICBjZGtEcmFnSGFuZGxlXG4gICAgICAgICAgICAgICAgICAgIG5nYlRvb2x0aXA9XCJEcmFnIHRvIHJlb3JkZXJcIlxuICAgICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgPjwvaT5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgbGFiZWw9XCJEQiBTaGFyZFwiIGNsYXNzPVwiY29sLW1kLTZcIj5cbiAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgZm9ybUNvbnRyb2xOYW1lPVwiZGJfc2hhcmRcIiAvPlxuICAgICAgICAgICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuXG4gICAgICAgICAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBsYWJlbD1cIk1pY3Jvc2VydmljZSBOYW1lXCIgY2xhc3M9XCJjb2wtbWQtNlwiPlxuICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJtaWNyb3NlcnZpY2VfbmFtZVwiIC8+XG4gICAgICAgICAgICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIHRleHQtZW5kIG10LTJcIj5cbiAgICAgICAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmEgZmEtdHJhc2ggZGVsZXRlLWljb24gdGV4dC1kYW5nZXJcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwicmVtb3ZlQWJUZXN0KGkpXCJcbiAgICAgICAgICAgICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwicmVtb3ZlQWJUZXN0KGkpXCJcbiAgICAgICAgICAgICAgICAgICAgKGtleWRvd24uc3BhY2UpPVwicmVtb3ZlQWJUZXN0KGkpXCJcbiAgICAgICAgICAgICAgICAgICAgbmdiVG9vbHRpcD1cIlJlbW92ZSBBQiBUZXN0XCJcbiAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgID48L2k+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXN0YXJ0IG10LTJcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiIChjbGljayk9XCJhZGRBYlRlc3QoKVwiPisgQWRkIEFCIFRlc3Q8L2J1dHRvbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9wLWFjY29yZGlvblRhYj5cblxuXG5cblxuXG4gICAgICAgIDxwLWFjY29yZGlvblRhYiBbaGVhZGVyXT1cIidDb21pbmcgc29vbiBwYWdlcyAtIFN1YnNjcmliZSB0byBuZXdzbGV0dGVyIChUTyBESVNDT05USU5VRSknXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cbiAgICAgICAgICAgIDxwPkNvbWluZ1Nvb24gUGFnZXMgd2lsbCBlbmFibGUgdXNlcnMgdG8gc3Vic2NyaWJlIHRvIE5ld3NsZXR0ZXJzIGFuZCBhcmUgYWNjZXNzaWJsZSBhdCB0aGUgaW50ZXJuYWwgcGF0aHNcbiAgICAgICAgICAgICAgL2pvaW4vY3MxLCAvam9pbi9jczIsIGV0Yy48L3A+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtZW5kXCIgKm5nSWY9XCJzaGFyZFVybFwiPlxuICAgICAgICAgICAgPHNwYW4+U2VlIHRoZSBsaXZlIHBhZ2UgPHNwYW4gY2xhc3M9XCJ0b29sdGlwLXdyYXAgbXMtMVwiIFthcHBlbmRUb109XCInYm9keSdcIlxuICAgICAgICAgICAgICAgIFtwVG9vbHRpcF09XCInQWRtaW4uRG9tYWluQ29uZmlnLlRvb2x0aXAuU2VlTGl2ZUNzJyB8IHRyYW5zbG9jb1wiIHRvb2x0aXBQb3NpdGlvbj1cInRvcFwiPlxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLWluZm8tY2lyY2xlXCI+PC9pPlxuICAgICAgICAgICAgICA8L3NwYW4+IDogPGEgW2hyZWZdPVwic2hhcmRVcmwgKyAnL2pvaW4vY3MxJ1wiIHRhcmdldD1cIl9ibGFua1wiPnt7IHNoYXJkVXJsIH19L2pvaW4vY3MxPC9hPjwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS0zXCI+XG4gICAgICAgICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgW2xhYmVsXT1cIidBZG1pbi5Eb21haW5Db25maWcuQ3NQcm9kdWN0JyB8IHRyYW5zbG9jb1wiIFtzaG93VG9vbHRpcF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICBbdG9vbHRpcFRleHRdPVwiJ0FkbWluLkRvbWFpbkNvbmZpZy5Ub29sdGlwLkNzUHJvZHVjdCcgfCB0cmFuc2xvY29cIiBuYW1lPVwiY3NfcHJvZHVjdF9pZFwiPlxuICAgICAgICAgICAgICAgIDxwLWF1dG9Db21wbGV0ZSBbc3VnZ2VzdGlvbnNdPVwicHJvZHVjdHNMaXN0XCIgZm9ybUNvbnRyb2xOYW1lPVwiY3NfcHJvZHVjdF9pZFwiIGRhdGFLZXk9XCJpZFwiIGZpZWxkPVwibmFtZVwiXG4gICAgICAgICAgICAgICAgICBbZHJvcGRvd25dPVwidHJ1ZVwiIFtkZWxheV09XCIxMDAwXCIgKGNvbXBsZXRlTWV0aG9kKT1cInNlYXJjaFByb2R1Y3QoJGV2ZW50KVwiIHN0eWxlQ2xhc3M9XCJ3LTEwMFwiXG4gICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlNlYXJjaCBQcm9kdWN0XCIgW2lucHV0U3R5bGVdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtLmdldCgnY3NfcHJvZHVjdF9pZCcpLnRvdWNoZWQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm0uZ2V0KCdjc19wcm9kdWN0X2lkJykuaW52YWxpZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8geyBib3JkZXI6ICcxcHggc29saWQgI2ZmNTg2YicgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogeyBib3JkZXI6ICcxcHggc29saWQgZ3JheScgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIiBbbXVsdGlwbGVdPVwiZmFsc2VcIj5cbiAgICAgICAgICAgICAgICA8L3AtYXV0b0NvbXBsZXRlPlxuICAgICAgICAgICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tM1wiPlxuICAgICAgICAgICAgICA8cHctaW5wdXQtY29udGFpbmVyIFtsYWJlbF09XCInQWRtaW4uRG9tYWluQ29uZmlnLkNzQ3JtU291cmNlSWQnIHwgdHJhbnNsb2NvXCIgbmFtZT1cImNzX2NybV9zb3VyY2VfaWRcIlxuICAgICAgICAgICAgICAgIFtzaG93VG9vbHRpcF09XCJ0cnVlXCIgW3Rvb2x0aXBUZXh0XT1cIidBZG1pbi5Eb21haW5Db25maWcuVG9vbHRpcC5Dc0NybVNvdXJjZUlkJyB8IHRyYW5zbG9jb1wiPlxuICAgICAgICAgICAgICAgIDxwLWRyb3Bkb3duIFtvcHRpb25zXT1cImNybVNvdXJjZXNMaXN0XCIgZm9ybUNvbnRyb2xOYW1lPVwiY3NfY3JtX3NvdXJjZV9pZFwiXG4gICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdpcy1pbnZhbGlkJzogc3VibWl0dGVkICYmIGZbJ2NzX2NybV9zb3VyY2VfaWQnXT8uZXJyb3JzIH1cIiBbcGxhY2Vob2xkZXJdPVwiJ1NlbGVjdCBDUk0gU291cmNlJ1wiXG4gICAgICAgICAgICAgICAgICBvcHRpb25WYWx1ZT1cImlkXCIgb3B0aW9uTGFiZWw9XCJuYW1lXCI+XG4gICAgICAgICAgICAgICAgPC9wLWRyb3Bkb3duPlxuICAgICAgICAgICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tM1wiPlxuICAgICAgICAgICAgICA8cHctaW5wdXQtY29udGFpbmVyIFtsYWJlbF09XCInQWRtaW4uRG9tYWluQ29uZmlnLkNzUGRmU291cmNlSWQnIHwgdHJhbnNsb2NvXCIgbmFtZT1cImNzX3BkZl9zb3VyY2VfaWRcIlxuICAgICAgICAgICAgICAgIFtzaG93VG9vbHRpcF09XCJ0cnVlXCIgW3Rvb2x0aXBUZXh0XT1cIidBZG1pbi5Eb21haW5Db25maWcuVG9vbHRpcC5Dc1BkZlNvdXJjZUlkJyB8IHRyYW5zbG9jb1wiPlxuICAgICAgICAgICAgICAgIDxwLWRyb3Bkb3duIFtvcHRpb25zXT1cImNybVNvdXJjZXNMaXN0XCIgZm9ybUNvbnRyb2xOYW1lPVwiY3NfcGRmX3NvdXJjZV9pZFwiXG4gICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdpcy1pbnZhbGlkJzogc3VibWl0dGVkICYmIGZbJ2NzX3BkZl9zb3VyY2VfaWQnXT8uZXJyb3JzIH1cIiBbcGxhY2Vob2xkZXJdPVwiJ1NlbGVjdCBDUk0gU291cmNlJ1wiXG4gICAgICAgICAgICAgICAgICBvcHRpb25WYWx1ZT1cImlkXCIgb3B0aW9uTGFiZWw9XCJuYW1lXCI+XG4gICAgICAgICAgICAgICAgPC9wLWRyb3Bkb3duPlxuICAgICAgICAgICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tM1wiPjwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tM1wiPlxuICAgICAgICAgICAgICA8cHctaW5wdXQtY29udGFpbmVyIFtsYWJlbF09XCInQWRtaW4uRG9tYWluQ29uZmlnLkNzVmlkZW9VcmwnIHwgdHJhbnNsb2NvXCIgbmFtZT1cImNzX3ZpZGVvX3VybFwiIFtzaG93VG9vbHRpcF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICBbdG9vbHRpcFRleHRdPVwiJ0FkbWluLkRvbWFpbkNvbmZpZy5Ub29sdGlwLkNzVmlkZW9VcmwnIHwgdHJhbnNsb2NvXCI+XG4gICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJjc192aWRlb191cmxcIlxuICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnaXMtaW52YWxpZCc6IHN1Ym1pdHRlZCAmJiBmWydjc192aWRlb191cmwnXS5lcnJvcnMgfVwiIC8+XG4gICAgICAgICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS0zXCI+XG4gICAgICAgICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgW2xhYmVsXT1cIidBZG1pbi5Eb21haW5Db25maWcuQ3NCb29rRGVtb1VybCcgfCB0cmFuc2xvY29cIiBuYW1lPVwiY3NfYm9va19kZW1vX3VybFwiXG4gICAgICAgICAgICAgICAgW3Nob3dUb29sdGlwXT1cInRydWVcIiBbdG9vbHRpcFRleHRdPVwiJ0FkbWluLkRvbWFpbkNvbmZpZy5Ub29sdGlwLkNzQm9va0RlbW9VcmwnIHwgdHJhbnNsb2NvXCI+XG4gICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJjc19ib29rX2RlbW9fdXJsXCJcbiAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2lzLWludmFsaWQnOiBzdWJtaXR0ZWQgJiYgZlsnY3NfYm9va19kZW1vX3VybCddLmVycm9ycyB9XCIgLz5cbiAgICAgICAgICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTJcIj5cbiAgICAgICAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBbbGFiZWxdPVwiJ0FkbWluLkRvbWFpbkNvbmZpZy5Dc0N0YUlmcmFtZScgfCB0cmFuc2xvY29cIiBuYW1lPVwiY3NfY3RhX2lmcmFtZVwiXG4gICAgICAgICAgICAgICAgW3Nob3dUb29sdGlwXT1cInRydWVcIiBbdG9vbHRpcFRleHRdPVwiJ0FkbWluLkRvbWFpbkNvbmZpZy5Ub29sdGlwLkNzQ3RhSWZyYW1lJyB8IHRyYW5zbG9jb1wiPlxuICAgICAgICAgICAgICAgIDx0ZXh0YXJlYSBjbGFzcz1cImZvcm0tY29udHJvbFwiIHJvd3M9XCIzXCIgZm9ybUNvbnRyb2xOYW1lPVwiY3NfY3RhX2lmcmFtZVwiXG4gICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdpcy1pbnZhbGlkJzogc3VibWl0dGVkICYmIGZbJ2NzX2N0YV9pZnJhbWUnXS5lcnJvcnMgfVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dGFyZWE+XG4gICAgICAgICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyXCI+XG4gICAgICAgICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgW2xhYmVsXT1cIidBZG1pbi5Eb21haW5Db25maWcuQ3NKb2luTWVzc2FnZScgfCB0cmFuc2xvY29cIiBuYW1lPVwiY3Nfam9pbl9tZXNzYWdlXCJcbiAgICAgICAgICAgICAgICBbc2hvd1Rvb2x0aXBdPVwidHJ1ZVwiIFt0b29sdGlwVGV4dF09XCInQWRtaW4uRG9tYWluQ29uZmlnLlRvb2x0aXAuQ3NKb2luTWVzc2FnZScgfCB0cmFuc2xvY29cIj5cbiAgICAgICAgICAgICAgICA8dGV4dGFyZWEgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiByb3dzPVwiM1wiIGZvcm1Db250cm9sTmFtZT1cImNzX2pvaW5fbWVzc2FnZVwiXG4gICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdpcy1pbnZhbGlkJzogc3VibWl0dGVkICYmIGZbJ2NzX2pvaW5fbWVzc2FnZSddLmVycm9ycyB9XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZXh0YXJlYT5cbiAgICAgICAgICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTJcIj5cbiAgICAgICAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBbbGFiZWxdPVwiJ0FkbWluLkRvbWFpbkNvbmZpZy5Dc1BkZkRvd25sb2FkVGV4dCcgfCB0cmFuc2xvY29cIiBuYW1lPVwiY3NfcGRmX2Rvd25sb2FkX3RleHRcIlxuICAgICAgICAgICAgICAgIFtzaG93VG9vbHRpcF09XCJ0cnVlXCIgW3Rvb2x0aXBUZXh0XT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnQWRtaW4uRG9tYWluQ29uZmlnLlRvb2x0aXAuQ3NQZGZEb3dubG9hZFRleHQnIHwgdHJhbnNsb2NvXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI+XG4gICAgICAgICAgICAgICAgPHRleHRhcmVhIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgcm93cz1cIjNcIiBmb3JtQ29udHJvbE5hbWU9XCJjc19wZGZfZG93bmxvYWRfdGV4dFwiIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdpcy1pbnZhbGlkJzogc3VibWl0dGVkICYmIGZbJ2NzX3BkZl9kb3dubG9hZF90ZXh0J10uZXJyb3JzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RleHRhcmVhPlxuICAgICAgICAgICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIiBtYXRjaEhlaWdodD1cImNhcmRcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNFwiPlxuICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiY3NfaW1hZ2VcIj57eyAnQWRtaW4uRG9tYWluQ29uZmlnLkNzSW1hZ2UnIHwgdHJhbnNsb2NvIH19IDxzcGFuIGNsYXNzPVwiaW5mby1jaXJjbGVcIj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidG9vbHRpcHRleHQgZ3JhZGllbnQtY3VzdG9tLWJyYW5kaW5nXCI+e3sgJ0FkbWluLkRvbWFpbkNvbmZpZy5Ub29sdGlwLkNzSW1hZ2UnIHwgdHJhbnNsb2NvXG4gICAgICAgICAgICAgICAgICAgIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgPHB3LWN1c3RvbS11cGxvYWRlciAoc2F2ZUV2ZW50KT1cIm9uU2F2ZUZpbGUoJGV2ZW50KVwiIFthc3BlY3RSYXRpb109XCInY3VzdG9tJ1wiIFt0aXRsZV09XCInQ3MgSW1hZ2UnXCJcbiAgICAgICAgICAgICAgICBbY29udHJvbE5hbWVdPVwiJ2NzX2ltYWdlJ1wiIFtwcmV2aWV3RGF0YV09XCJkYXRhWydjc19pbWFnZSddXCI+XG4gICAgICAgICAgICAgIDwvcHctY3VzdG9tLXVwbG9hZGVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTRcIj5cbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImNzX2ltYWdlMlwiPnt7ICdBZG1pbi5Eb21haW5Db25maWcuQ3NJbWFnZTInIHwgdHJhbnNsb2NvIH19IDxzcGFuIGNsYXNzPVwiaW5mby1jaXJjbGVcIj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidG9vbHRpcHRleHQgZ3JhZGllbnQtY3VzdG9tLWJyYW5kaW5nXCI+e3sgJ0FkbWluLkRvbWFpbkNvbmZpZy5Ub29sdGlwLkNzSW1hZ2UyJyB8IHRyYW5zbG9jb1xuICAgICAgICAgICAgICAgICAgICB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgIDxwdy1jdXN0b20tdXBsb2FkZXIgKHNhdmVFdmVudCk9XCJvblNhdmVGaWxlKCRldmVudClcIiBbYXNwZWN0UmF0aW9dPVwiJ2N1c3RvbSdcIiBbdGl0bGVdPVwiJ0NzIEltYWdlMidcIlxuICAgICAgICAgICAgICAgIFtjb250cm9sTmFtZV09XCInY3NfaW1hZ2UyJ1wiIFtwcmV2aWV3RGF0YV09XCJkYXRhWydjc19pbWFnZTInXVwiPlxuICAgICAgICAgICAgICA8L3B3LWN1c3RvbS11cGxvYWRlcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC00XCI+XG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJjc19wZGZfaW1hZ2VcIj57eyAnQWRtaW4uRG9tYWluQ29uZmlnLkNzUGRmSW1hZ2UnIHwgdHJhbnNsb2NvIH19IDxzcGFuIGNsYXNzPVwiaW5mby1jaXJjbGVcIj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidG9vbHRpcHRleHQgZ3JhZGllbnQtY3VzdG9tLWJyYW5kaW5nXCI+e3sgJ0FkbWluLkRvbWFpbkNvbmZpZy5Ub29sdGlwLkNzUGRmSW1hZ2UnIHwgdHJhbnNsb2NvXG4gICAgICAgICAgICAgICAgICAgIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgPHB3LWN1c3RvbS11cGxvYWRlciAoc2F2ZUV2ZW50KT1cIm9uU2F2ZUZpbGUoJGV2ZW50KVwiIFthc3BlY3RSYXRpb109XCInY3VzdG9tJ1wiIFt0aXRsZV09XCInQ3MgUGRmIEltYWdlJ1wiXG4gICAgICAgICAgICAgICAgW2NvbnRyb2xOYW1lXT1cIidjc19wZGZfaW1hZ2UnXCIgW3ByZXZpZXdEYXRhXT1cImRhdGFbJ2NzX3BkZl9pbWFnZSddXCI+XG4gICAgICAgICAgICAgIDwvcHctY3VzdG9tLXVwbG9hZGVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTRcIj5cbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImNzX2ltYWdlX2JnXCI+e3sgJ0FkbWluLkRvbWFpbkNvbmZpZy5Dc0ltYWdlQmcnIHwgdHJhbnNsb2NvIH19IDxzcGFuIGNsYXNzPVwiaW5mby1jaXJjbGVcIj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidG9vbHRpcHRleHQgZ3JhZGllbnQtY3VzdG9tLWJyYW5kaW5nXCI+e3sgJ0FkbWluLkRvbWFpbkNvbmZpZy5Ub29sdGlwLkNzSW1hZ2VCZycgfCB0cmFuc2xvY29cbiAgICAgICAgICAgICAgICAgICAgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICA8cHctY3VzdG9tLXVwbG9hZGVyIChzYXZlRXZlbnQpPVwib25TYXZlRmlsZSgkZXZlbnQpXCIgW2FzcGVjdFJhdGlvXT1cIidjdXN0b20nXCIgW3RpdGxlXT1cIidDcyBQZGYgSW1hZ2UgQmcnXCJcbiAgICAgICAgICAgICAgICBbY29udHJvbE5hbWVdPVwiJ2NzX2ltYWdlX2JnJ1wiIFtwcmV2aWV3RGF0YV09XCJkYXRhWydjc19pbWFnZV9iZyddXCI+XG4gICAgICAgICAgICAgIDwvcHctY3VzdG9tLXVwbG9hZGVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTRcIj5cbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImNzX2ltYWdlX2JnMlwiPnt7ICdBZG1pbi5Eb21haW5Db25maWcuQ3NJbWFnZUJnMicgfCB0cmFuc2xvY28gfX0gPHNwYW4gY2xhc3M9XCJpbmZvLWNpcmNsZVwiPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0b29sdGlwdGV4dCBncmFkaWVudC1jdXN0b20tYnJhbmRpbmdcIj57eyAnQWRtaW4uRG9tYWluQ29uZmlnLlRvb2x0aXAuQ3NJbWFnZUJnMicgfCB0cmFuc2xvY29cbiAgICAgICAgICAgICAgICAgICAgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICA8cHctY3VzdG9tLXVwbG9hZGVyIChzYXZlRXZlbnQpPVwib25TYXZlRmlsZSgkZXZlbnQpXCIgW2FzcGVjdFJhdGlvXT1cIidjdXN0b20nXCIgW3RpdGxlXT1cIidDcyBQZGYgSW1hZ2UgQmcyJ1wiXG4gICAgICAgICAgICAgICAgW2NvbnRyb2xOYW1lXT1cIidjc19pbWFnZV9iZzInXCIgW3ByZXZpZXdEYXRhXT1cImRhdGFbJ2NzX2ltYWdlX2JnMiddXCI+XG4gICAgICAgICAgICAgIDwvcHctY3VzdG9tLXVwbG9hZGVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvcC1hY2NvcmRpb25UYWI+XG4gICAgICA8L3AtYWNjb3JkaW9uPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImNvbC0xMiB0ZXh0LWVuZCBtdC0zXCI+XG4gICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBjbGFzcz1cImJ0biBidG4tb3V0bGluZS1kZWZhdWx0IG1lLTJcIlxuICAgICAgICAoY2xpY2spPVwiYmFjaygpXCI+XG4gICAgICAgIHt7ICdCdXR0b24uQ2FuY2VsJyB8IHRyYW5zbG9jbyB9fVxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBbYnV0dG9uQnVzeV09XCJidXR0b25CdXN5XCJcbiAgICAgICAgY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIj57eyAnQnV0dG9uLlN1Ym1pdCcgfCB0cmFuc2xvY28gfX08L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9mb3JtPlxuPC9uZy1jb250YWluZXI+XG48ZGl2ICpuZ0lmPVwiIWRhdGE/Lmhvc3RfbmFtZSAmJiAhaXNMb2FkaW5nXCI+XG4gIDxwdy1uby1kYXRhIFt3aXRoSW1hZ2VdPVwidHJ1ZVwiIFttZXNzYWdlXT1cIidBZG1pbi5Eb21haW5Db25maWcuRW5hYmxlQ29uZmlnVGFiJyB8IHRyYW5zbG9jb1wiPiA8L3B3LW5vLWRhdGE+XG48L2Rpdj5cblxuXG48bmctdGVtcGxhdGUgI3BhcnRuZXJDcm9wcGVyIGxldC1tb2RhbD5cbiAgPGRpdiBjbGFzcz1cIm1vZGFsLWhlYWRlclwiPlxuICAgIDxoNSBjbGFzcz1cIm1vZGFsLXRpdGxlXCI+VXBsb2FkIFBhcnRuZXIgSW1hZ2U8L2g1PlxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuLWNsb3NlXCIgYXJpYS1sYWJlbD1cIkNsb3NlXCIgKGNsaWNrKT1cIm1vZGFsLmRpc21pc3MoKVwiPjwvYnV0dG9uPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cIm1vZGFsLWJvZHlcIj5cbiAgICA8c21hbGw+WW91IGNhbiB1cGxvYWQgSlBHLCBQTkcsIG9yIEdJRiBmaWxlcy4gQXZvaWQgaW1hZ2VzIHdpdGggY2VsZWJyaXRpZXMsIG51ZGl0eSwgb3IgYXJ0d29yay48L3NtYWxsPlxuICAgIDxwdy1pbWFnZS1jcm9wcGVyXG4gICAgICBhc3BlY3RSYXRpbz1cImF1dG9cIlxuICAgICAgKGltYWdlU2VsZWN0aW9uRXZlbnQpPVwib25QYXJ0bmVySW1hZ2VTZWxlY3RlZCgkZXZlbnQpXCJcbiAgICAgIChjbG9zZUV2ZW50KT1cIm9uQ2xvc2VQYXJ0bmVyTW9kYWwoKVwiXG4gICAgPjwvcHctaW1hZ2UtY3JvcHBlcj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
730
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tYWluLWNvbmZpZy1idWlsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FkbWluLW1vZHVsZS9zcmMvbGliL2NvbXBvbmVudHMvZG9tYWluLWNvbmZpZy9kb21haW4tY29uZmlnLWRldGFpbHMvZG9tYWluLWNvbmZpZy1idWlsZC9kb21haW4tY29uZmlnLWJ1aWxkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYWRtaW4tbW9kdWxlL3NyYy9saWIvY29tcG9uZW50cy9kb21haW4tY29uZmlnL2RvbWFpbi1jb25maWctZGV0YWlscy9kb21haW4tY29uZmlnLWJ1aWxkL2RvbWFpbi1jb25maWctYnVpbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBZSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RSxPQUFPLEVBRUgsU0FBUyxFQUNULFFBQVEsRUFFUixTQUFTLEVBQ1QsU0FBUyxFQUNULFlBQVksRUFDZixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQWEsV0FBVyxFQUErQixNQUFNLGdCQUFnQixDQUFDO0FBRXJGLE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDdEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzlFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxPQUFPLE1BQU0sZ0JBQWdCLENB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QyxZQUFZLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUM7WUFDckQsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLFNBQVMsQ0FBQztZQUNYLElBQUksRUFBRSxHQUFHLEVBQUU7Z0JBQ1AsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsbUNBQW1DLENBQUMsQ0FBQyxDQUFDO1lBQ3hGLENBQUM7U0FDSixDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRTtZQUNSLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1FBQzVCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzsrR0E1M0JRLDBCQUEwQjttR0FBMUIsMEJBQTBCLDhMQUNyQix1QkFBdUIsdUVDaEN6Qyw4NGhGQTRwREE7O0FEeHhCSTtJQURDLFlBQVksQ0FBQyxNQUFNLENBQUM7Ozs7d0RBd0JwQjs0RkE1M0JRLDBCQUEwQjtrQkFKdEMsU0FBUzsrQkFDSSx3QkFBd0I7c0xBSUssUUFBUTtzQkFBOUMsWUFBWTt1QkFBQyx1QkFBdUI7Z0JBQ1IsY0FBYztzQkFBMUMsU0FBUzt1QkFBQyxnQkFBZ0I7Z0JBbTJCM0IsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENka0RyYWdEcm9wLCBtb3ZlSXRlbUluQXJyYXkgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcbmltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDb21wb25lbnQsXG4gICAgSW5qZWN0b3IsXG4gICAgT25Jbml0LFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0NoaWxkcmVuXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUFycmF5LCBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBVbnR5cGVkRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBBZG1pblNlcnZpY2UsIEFwcEFkbWluIH0gZnJvbSAnQHBvc2l3aXNlL2FkbWluLW1vZHVsZS11dGlscyc7XG5pbXBvcnQgeyBBcHBCYXNlQ29tcG9uZW50IH0gZnJvbSAnQHBvc2l3aXNlL2FwcC1iYXNlLWNvbXBvbmVudCc7XG5pbXBvcnQgeyBQZXJtaXNzaW9uU2VydmljZSwgUHJvZHVjdFNlcnZpY2UgfSBmcm9tICdAcG9zaXdpc2UvY29tbW9uLXNlcnZpY2VzJztcbmltcG9ydCB7IEhlbHBlclNlcnZpY2UgfSBmcm9tICdAcG9zaXdpc2UvaGVscGVyLXNlcnZpY2UnO1xuaW1wb3J0IHsgQ3VzdG9tVXBsb2FkZXJDb21wb25lbnQgfSBmcm9tICdAcG9zaXdpc2Uvc2hhcmVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgVmFsaWRhdGVGb3JtIH0gZnJvbSAnQHBvc2l3aXNlL3V0aWxzJztcblxuaW1wb3J0IGdyb3VwQnkgZnJvbSAnbG9kYXNoL2dyb3VwQnknO1xuaW1wb3J0IHsgZm9ya0pvaW4gfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgTmdiTW9kYWwgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XG5cbmltcG9ydCB7IERvbWFpbkNvbmZpZyB9IGZyb20gJy4uLy4uLy4uLy4uL3NoYXJlZC9pbnRlcmZhY2UvZG9tYWluLWNvbmZpZy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUk9VVEVSUyB9IGZyb20gJy4uLy4uLy4uLy4uL3NoYXJlZC9yb3V0ZXJzL3JvdXRlcnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3B3LWRvbWFpbi1jb25maWctYnVpbGQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kb21haW4tY29uZmlnLWJ1aWxkLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBEb21haW5Db25maWdCdWlsZENvbXBvbmVudCBleHRlbmRzIEFwcEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xuICAgIEBWaWV3Q2hpbGRyZW4oQ3VzdG9tVXBsb2FkZXJDb21wb25lbnQpIHVwbG9hZGVyOiBRdWVyeUxpc3Q8Q3VzdG9tVXBsb2FkZXJDb21wb25lbnQ+O1xuICAgIEBWaWV3Q2hpbGQoJ3BhcnRuZXJDcm9wcGVyJykgcGFydG5lckNyb3BwZXI7XG5cbiAgICBmb3JtOiBVbnR5cGVkRm9ybUdyb3VwO1xuXG4gICAgc3VibWl0dGVkID0gZmFsc2U7XG4gICAgYnV0dG9uQnVzeSA9IGZhbHNlO1xuXG4gICAgc2VsZWN0ZWRQYXJ0bmVySW5kZXg6IG51bWJlciA9IG51bGw7XG5cbiAgICBpZDogbnVtYmVyO1xuICAgIGR1cGxpY2F0ZUNvbmZpZ0lkO1xuICAgIHN1YnNjcmlwdGlvbklkOiBudW1iZXI7XG5cbiAgICBkYXRhOiBEb21haW5Db25maWc7XG5cbiAgICByb3V0ZXJzID0gUk9VVEVSUztcblxuICAgIG1hc3RlclN1YnNjcmlwdGlvblByb2R1Y3RMaXN0ID0gW107XG4gICAgbWFzdGVyU3Vic2NyaXB0aW9uc0xpc3QgPSBbXTtcbiAgICBzdWJzY3JpcHRpb25Ub3NMaXN0ID0gW107XG4gICAgY3JtUHJvZHVjdExpc3QgPSBbXTtcbiAgICBjcm1TdWJzY3JpcHRpb25zTGlzdCA9IFtdO1xuICAgIGNybVNvdXJjZXNMaXN0ID0gW107XG4gICAgcHJvZHVjdHNMaXN0ID0gW107XG4gICAgY2hpbGRMaXN0ID0gW107XG5cbiAgICBpc0xvYWRpbmc6IGJvb2xlYW47XG5cbiAgICBzaGFyZFVybDogc3RyaW5nO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIGluamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBhZG1pblNlcnZpY2U6IEFkbWluU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBwcm9kdWN0U2VydmljZTogUHJvZHVjdFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgbW9kYWxTZXJ2aWNlOiBOZ2JNb2RhbCxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBmYjogRm9ybUJ1aWxkZXJcbiAgICApIHtcbiAgICAgICAgc3VwZXIoaW5qZWN0b3IpO1xuICAgICAgICB0aGlzLmZvcm0gPSBBcHBBZG1pbi5kb21haW5Db25maWdCdWlsZEZvcm0odGhpcy5mYik7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuaWQgPSBOdW1iZXIodGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbXNbJ2lkJ10pO1xuICAgICAgICB0aGlzLmR1cGxpY2F0ZUNvbmZpZ0lkID0gTnVtYmVyKFxuICAgICAgICAgICAgdGhpcy5yb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtc1snZHVwbGljYXRlX2RvbWFpbl9jb25maWdfaWQnXVxuICAgICAgICApO1xuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbklkID0gUGVybWlzc2lvblNlcnZpY2Uuc2VsZWN0ZWRTdWJzY3JpcHRpb24/LmlkO1xuICAgICAgICBpZiAodGhpcy5pZCkge1xuICAgICAgICAgICAgdGhpcy5nZXRBbGxPcHRpb25zKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMucGVybWlzc2lvblNlcnZpY2UuaXNTdXBlckFkbWluKCkpIHtcbiAgICAgICAgICAgIHRoaXMuZm9ybS5nZXQoJ21hc3Rlcl9zdWJzY3JpcHRpb25faWQnKS5lbmFibGUoKTtcbiAgICAgICAgICAgIHRoaXMuZm9ybS5nZXQoJ21hc3Rlcl9zdWJzY3JpcHRpb25fcHJvZHVjdF9pZCcpLmVuYWJsZSgpO1xuICAgICAgICAgICAgdGhpcy5mb3JtLmdldCgnaXNfcHJvZHVjdF9kb21haW4nKS5lbmFibGUoKTtcbiAgICAgICAgICAgIHRoaXMuZm9ybS5nZXQoJ2NybV9zdWJzY3JpcHRpb25faWQnKS5lbmFibGUoKTtcbiAgICAgICAgICAgIHRoaXMuZm9ybS5nZXQoJ2NybV9wcm9kdWN0X2lkJykuZW5hYmxlKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmZvcm0uZ2V0KCdtYXN0ZXJfc3Vic2NyaXB0aW9uX2lkJykuZGlzYWJsZSgpO1xuICAgICAgICAgICAgdGhpcy5mb3JtLmdldCgnbWFzdGVyX3N1YnNjcmlwdGlvbl9wcm9kdWN0X2lkJykuZGlzYWJsZSgpO1xuICAgICAgICAgICAgdGhpcy5mb3JtLmdldCgnaXNfcHJvZHVjdF9kb21haW4nKS5kaXNhYmxlKCk7XG4gICAgICAgICAgICB0aGlzLmZvcm0uZ2V0KCdjcm1fc3Vic2NyaXB0aW9uX2lkJykuZGlzYWJsZSgpO1xuICAgICAgICAgICAgdGhpcy5mb3JtLmdldCgnY3JtX3Byb2R1Y3RfaWQnKS5kaXNhYmxlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBhZGRCb29rRGVtb0xpbmsoKSB7XG4gICAgICAgIGNvbnN0IGl0ZW1zID0gdGhpcy5mb3JtLmdldCgnYm9va19kZW1vJyk/LmdldCgnaXRlbXMnKSBhcyBGb3JtQXJyYXk7XG4gICAgICAgIGl0ZW1zLnB1c2godGhpcy5mYi5ncm91cCh7IHRpdGxlOiBbJyddLCB1cmw6IFsnJ10gfSkpO1xuICAgIH1cblxuICAgIGdldCBpbnRlZ3JhdGlvbnMoKTogRm9ybUdyb3VwIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybS5nZXQoJ2ludGVncmF0aW9ucycpIGFzIEZvcm1Hcm91cDtcbiAgICB9XG5cbiAgICBnZXQgaW50ZWdyYXRpb25zSXRlbXMoKTogRm9ybUFycmF5IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaW50ZWdyYXRpb25zLmdldCgnaXRlbXMnKSBhcyBGb3JtQXJyYXk7XG4gICAgfVxuXG4gICAgZ2V0IGFiVGVzdHMoKTogRm9ybUFycmF5IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybS5nZXQoJ2FiX3Rlc3RzJykgYXMgRm9ybUFycmF5O1xuICAgIH1cblxuICAgIGFkZEFiVGVzdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5hYlRlc3RzLnB1c2goXG4gICAgICAgICAgICB0aGlzLmZiLmdyb3VwKHtcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogWycnXSxcbiAgICAgICAgICAgICAgICBleHBlcmltZW50X25hbWU6IFsnJ10sXG4gICAgICAgICAgICAgICAgZGJfc2hhcmQ6IFsnJ10sXG4gICAgICAgICAgICAgICAgbWljcm9zZXJ2aWNlX25hbWU6IFsnJ11cbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcmVtb3ZlQWJUZXN0KGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5hYlRlc3RzLnJlbW92ZUF0KGluZGV4KTtcbiAgICB9XG5cbiAgICBhZGRJbnRlZ3JhdGlvbkl0ZW0oKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaW50ZWdyYXRpb25zSXRlbXMucHVzaChcbiAgICAgICAgICAgIHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgICAgICAgICAgIHRpdGxlOiBbJyddLFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBbJyddLFxuICAgICAgICAgICAgICAgIGJsb2dfdXJsOiBbJyddLFxuICAgICAgICAgICAgICAgIGltYWdlX3VybDogWycnXSxcbiAgICAgICAgICAgICAgICB2aWRlb191cmw6IFsnJ11cbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2V0IGd1aWRlc0l0ZW1zKCk6IEZvcm1BcnJheSB7XG4gICAgICAgIHJldHVybiB0aGlzLmZvcm0uZ2V0KCdndWlkZXMnKT8uZ2V0KCdpdGVtcycpIGFzIEZvcm1BcnJheTtcbiAgICB9XG5cbiAgICBhZGRHdWlkZUl0ZW0oKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZ3VpZGVzSXRlbXMucHVzaChcbiAgICAgICAgICAgIHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgICAgICAgICAgIHRpdGxlOiBbJyddLFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBbJyddLFxuICAgICAgICAgICAgICAgIGJ1dHRvbl90ZXh0OiBbJyddLFxuICAgICAgICAgICAgICAgIGltYWdlX3VybDogWycnXSxcbiAgICAgICAgICAgICAgICBndWlkZV91cmw6IFsnJ11cbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcmVtb3ZlR3VpZGVJdGVtKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5ndWlkZXNJdGVtcy5yZW1vdmVBdChpbmRleCk7XG4gICAgfVxuXG4gICAgcmVtb3ZlSW50ZWdyYXRpb25JdGVtKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbnRlZ3JhdGlvbnNJdGVtcy5yZW1vdmVBdChpbmRleCk7XG4gICAgfVxuXG4gICAgZ2V0UXVlc3Rpb25PcHRpb25zKHF1ZXN0aW9uSW5kZXg6IG51bWJlcik6IEZvcm1BcnJheSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnRhY3RVc1F1ZXN0aW9ucy5hdChxdWVzdGlvbkluZGV4KS5nZXQoJ29wdGlvbnMnKSBhcyBGb3JtQXJyYXk7XG4gICAgfVxuXG4gICAgZ2V0IGZvb3RlckxpbmtzSXRlbXMoKTogRm9ybUFycmF5IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybS5nZXQoJ2Zvb3Rlcl9saW5rcycpPy5nZXQoJ2l0ZW1zJykgYXMgRm9ybUFycmF5O1xuICAgIH1cblxuICAgIGdldEZvb3RlclN1YnRpdGxlcyhpbmRleDogbnVtYmVyKTogRm9ybUFycmF5IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9vdGVyTGlua3NJdGVtcy5hdChpbmRleCkuZ2V0KCdzdWJ0aXRsZXMnKSBhcyBGb3JtQXJyYXk7XG4gICAgfVxuXG4gICAgYWRkRm9vdGVyTGlua0l0ZW0oKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZm9vdGVyTGlua3NJdGVtcy5wdXNoKFxuICAgICAgICAgICAgdGhpcy5mYi5ncm91cCh7XG4gICAgICAgICAgICAgICAgdGl0bGU6IFsnJ10sXG4gICAgICAgICAgICAgICAgcGF0aDogWycnXSxcbiAgICAgICAgICAgICAgICBzdWJ0aXRsZXM6IHRoaXMuZmIuYXJyYXkoW10pXG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHJlbW92ZUZvb3RlckxpbmtJdGVtKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5mb290ZXJMaW5rc0l0ZW1zLnJlbW92ZUF0KGluZGV4KTtcbiAgICB9XG5cbiAgICBhZGRGb290ZXJTdWJ0aXRsZShsaW5rSW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBjb25zdCBzdWJ0aXRsZXMgPSB0aGlzLmZvb3RlckxpbmtzSXRlbXMuYXQobGlua0luZGV4KS5nZXQoJ3N1YnRpdGxlcycpIGFzIEZvcm1BcnJheTtcbiAgICAgICAgc3VidGl0bGVzLnB1c2godGhpcy5mYi5ncm91cCh7IHRpdGxlOiBbJyddLCBwYXRoOiBbJyddIH0pKTtcbiAgICB9XG5cbiAgICByZW1vdmVGb290ZXJTdWJ0aXRsZShsaW5rSW5kZXg6IG51bWJlciwgc3ViSW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBjb25zdCBzdWJ0aXRsZXMgPSB0aGlzLmZvb3RlckxpbmtzSXRlbXMuYXQobGlua0luZGV4KS5nZXQoJ3N1YnRpdGxlcycpIGFzIEZvcm1BcnJheTtcbiAgICAgICAgc3VidGl0bGVzLnJlbW92ZUF0KHN1YkluZGV4KTtcbiAgICB9XG5cbiAgICBnZXQgbmF2YmFyKCk6IEZvcm1Hcm91cCB7XG4gICAgICAgIHJldHVybiB0aGlzLmZvcm0uZ2V0KCduYXZiYXInKSBhcyBGb3JtR3JvdXA7XG4gICAgfVxuXG4gICAgZ2V0IG5hdmJhckl0ZW1zKCk6IEZvcm1BcnJheSB7XG4gICAgICAgIHJldHVybiB0aGlzLm5hdmJhci5nZXQoJ2l0ZW1zJykgYXMgRm9ybUFycmF5O1xuICAgIH1cblxuICAgIGdldFN1YnRpdGxlcyhpbmRleDogbnVtYmVyKTogRm9ybUFycmF5IHtcbiAgICAgICAgcmV0dXJuIHRoaXMubmF2YmFySXRlbXMuYXQoaW5kZXgpLmdldCgnc3VidGl0bGVzJykgYXMgRm9ybUFycmF5O1xuICAgIH1cblxuICAgIGdldE5hdmJhclN1YnRpdGxlcyhpbmRleDogbnVtYmVyKTogRm9ybUFycmF5IHtcbiAgICAgICAgcmV0dXJuIHRoaXMubmF2YmFySXRlbXMuYXQoaW5kZXgpLmdldCgnc3VidGl0bGVzJykgYXMgRm9ybUFycmF5O1xuICAgIH1cblxuICAgIGFkZE5hdmJhckl0ZW0oKTogdm9pZCB7XG4gICAgICAgIHRoaXMubmF2YmFySXRlbXMucHVzaChcbiAgICAgICAgICAgIHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgICAgICAgICAgIHRpdGxlOiBbJyddLFxuICAgICAgICAgICAgICAgIHBhdGg6IFsnJ10sXG4gICAgICAgICAgICAgICAgc3VidGl0bGVzOiB0aGlzLmZiLmFycmF5KFtdKVxuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICByZW1vdmVOYXZiYXJJdGVtKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5uYXZiYXJJdGVtcy5yZW1vdmVBdChpbmRleCk7XG4gICAgfVxuXG4gICAgYWRkU3VidGl0bGUobmF2SW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLmdldFN1YnRpdGxlcyhuYXZJbmRleCkucHVzaCh0aGlzLmZiLmdyb3VwKHsgdGl0bGU6IFsnJ10sIHBhdGg6IFsnJ10gfSkpO1xuICAgIH1cblxuICAgIHJlbW92ZVN1YnRpdGxlKG5hdkluZGV4OiBudW1iZXIsIHN1YkluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5nZXRTdWJ0aXRsZXMobmF2SW5kZXgpLnJlbW92ZUF0KHN1YkluZGV4KTtcbiAgICB9XG5cbiAgICBhZGRDb250YWN0VXNPcHRpb24ocXVlc3Rpb25JbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZ2V0UXVlc3Rpb25PcHRpb25zKHF1ZXN0aW9uSW5kZXgpLnB1c2goXG4gICAgICAgICAgICB0aGlzLmZiLmdyb3VwKHtcbiAgICAgICAgICAgICAgICBvcHRpb246IFsnJ11cbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcmVtb3ZlQ29udGFjdFVzT3B0aW9uKHF1ZXN0aW9uSW5kZXg6IG51bWJlciwgb3B0aW9uSW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLmdldFF1ZXN0aW9uT3B0aW9ucyhxdWVzdGlvbkluZGV4KS5yZW1vdmVBdChvcHRpb25JbmRleCk7XG4gICAgfVxuXG4gICAgcmVtb3ZlQm9va0RlbW9MaW5rKGluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgY29uc3QgaXRlbXMgPSB0aGlzLmZvcm0uZ2V0KCdib29rX2RlbW8nKT8uZ2V0KCdpdGVtcycpIGFzIEZvcm1BcnJheTtcbiAgICAgICAgaXRlbXMucmVtb3ZlQXQoaW5kZXgpO1xuICAgIH1cblxuICAgIGdldCBjdGFzKCk6IEZvcm1Hcm91cCB7XG4gICAgICAgIHJldHVybiB0aGlzLmZvcm0uZ2V0KCdjdGFzJykgYXMgRm9ybUdyb3VwO1xuICAgIH1cblxuICAgIGdldCBjdGFzSXRlbXMoKTogRm9ybUFycmF5IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY3Rhcy5nZXQoJ2l0ZW1zJykgYXMgRm9ybUFycmF5O1xuICAgIH1cblxuICAgIGdldCBjb250YWN0VXMoKTogRm9ybUdyb3VwIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybS5nZXQoJ2NvbnRhY3RfdXMnKSBhcyBGb3JtR3JvdXA7XG4gICAgfVxuXG4gICAgZ2V0IGNvbnRhY3RVc1F1ZXN0aW9ucygpOiBGb3JtQXJyYXkge1xuICAgICAgICByZXR1cm4gdGhpcy5jb250YWN0VXMuZ2V0KCdxdWVzdGlvbnMnKSBhcyBGb3JtQXJyYXk7XG4gICAgfVxuXG4gICAgYWRkQ29udGFjdFVzUXVlc3Rpb24oKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY29udGFjdFVzUXVlc3Rpb25zLnB1c2goXG4gICAgICAgICAgICB0aGlzLmZiLmdyb3VwKHtcbiAgICAgICAgICAgICAgICBxdWVzdGlvbjogWycnXSxcbiAgICAgICAgICAgICAgICBvcHRpb25zOiB0aGlzLmZiLmFycmF5KFtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mYi5ncm91cCh7XG4gICAgICAgICAgICAgICAgICAgICAgICBvcHRpb246IFsnJ11cbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICBdKVxuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICByZW1vdmVDb250YWN0VXNRdWVzdGlvbihpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY29udGFjdFVzUXVlc3Rpb25zLnJlbW92ZUF0KGluZGV4KTtcbiAgICB9XG5cbiAgICBhZGRDdGFzSXRlbSgpIHtcbiAgICAgICAgdGhpcy5jdGFzSXRlbXMucHVzaChcbiAgICAgICAgICAgIHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgICAgICAgICAgIHRpdGxlOiBbJyddLFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBbJyddLFxuICAgICAgICAgICAgICAgIGJ1dHRvbl90ZXh0OiBbJyddLFxuICAgICAgICAgICAgICAgIGltYWdlX3VybDogWycnXSxcbiAgICAgICAgICAgICAgICBjdGFfdXJsOiBbJyddXG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHJlbW92ZUN0YXNJdGVtKGluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5jdGFzSXRlbXMucmVtb3ZlQXQoaW5kZXgpO1xuICAgIH1cbiAgICBnZXQgdGVzdGltb25pYWxzKCk6IEZvcm1Hcm91cCB7XG4gICAgICAgIHJldHVybiB0aGlzLmZvcm0uZ2V0KCd0ZXN0aW1vbmlhbHMnKSBhcyBGb3JtR3JvdXA7XG4gICAgfVxuXG4gICAgZ2V0IHRlc3RpbW9uaWFsc0l0ZW1zKCk6IEZvcm1BcnJheSB7XG4gICAgICAgIHJldHVybiB0aGlzLmZvcm0uZ2V0KCd0ZXN0aW1vbmlhbHMuaXRlbXMnKSBhcyBGb3JtQXJyYXk7XG4gICAgfVxuXG4gICAgZ2V0IGNvbnRhY3RVc0h1YnNwb3RJdGVtcygpOiBGb3JtQXJyYXkge1xuICAgICAgICByZXR1cm4gdGhpcy5mb3JtLmdldCgnY29udGFjdF91cycpPy5nZXQoJ2h1YnNwb3QnKSBhcyBGb3JtQXJyYXk7XG4gICAgfVxuXG4gICAgYWRkSHVic3BvdEl0ZW0oKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY29udGFjdFVzSHVic3BvdEl0ZW1zLnB1c2goXG4gICAgICAgICAgICB0aGlzLmZiLmdyb3VwKHtcbiAgICAgICAgICAgICAgICBpZDogWycnXSxcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogWycnXSxcbiAgICAgICAgICAgICAgICBkaXY6IFsnJ11cbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcmVtb3ZlSHVic3BvdEl0ZW0oaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLmNvbnRhY3RVc0h1YnNwb3RJdGVtcy5yZW1vdmVBdChpbmRleCk7XG4gICAgfVxuXG4gICAgb3BlblBhcnRuZXJJbWFnZUNyb3BwZXIoaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLnNlbGVjdGVkUGFydG5lckluZGV4ID0gaW5kZXg7XG4gICAgICAgIHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4odGhpcy5wYXJ0bmVyQ3JvcHBlciwge1xuICAgICAgICAgICAgY2VudGVyZWQ6IHRydWUsXG4gICAgICAgICAgICB3aW5kb3dDbGFzczogJ21vZGFsLWhvbGRlcidcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgYWRkUGFydG5lckl0ZW0oKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGl0ZW1zID0gdGhpcy5mb3JtLmdldCgncGFydG5lcnMnKT8uZ2V0KCdpdGVtcycpIGFzIEZvcm1BcnJheTtcbiAgICAgICAgaXRlbXMucHVzaChcbiAgICAgICAgICAgIHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgICAgICAgICAgIG5hbWU6IFsnJ10sXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IFsnJ10sXG4gICAgICAgICAgICAgICAgYmxvZ191cmw6IFsnJ10sXG4gICAgICAgICAgICAgICAgaW1hZ2VfdXJsOiBbJyddLFxuICAgICAgICAgICAgICAgIHZpZGVvX3VybDogWycnXVxuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICByZW1vdmVQYXJ0bmVySXRlbShpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGl0ZW1zID0gdGhpcy5mb3JtLmdldCgncGFydG5lcnMnKT8uZ2V0KCdpdGVtcycpIGFzIEZvcm1BcnJheTtcbiAgICAgICAgaXRlbXMucmVtb3ZlQXQoaW5kZXgpO1xuICAgIH1cblxuICAgIGdldCB1c3BzSXRlbXMoKTogRm9ybUFycmF5IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybS5nZXQoJ3VzcHMnKS5nZXQoJ2l0ZW1zJykgYXMgRm9ybUFycmF5O1xuICAgIH1cblxuICAgIGFkZFVzcEl0ZW0oKSB7XG4gICAgICAgIHRoaXMudXNwc0l0ZW1zLnB1c2godGhpcy5mYi5ncm91cCh7IGRlc2NyaXB0aW9uOiBbJyddIH0pKTtcbiAgICB9XG5cbiAgICByZW1vdmVVc3BJdGVtKGluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy51c3BzSXRlbXMucmVtb3ZlQXQoaW5kZXgpO1xuICAgIH1cblxuICAgIGdldCB2aWRlb3MoKTogRm9ybUdyb3VwIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybS5nZXQoJ3ZpZGVvcycpIGFzIEZvcm1Hcm91cDtcbiAgICB9XG5cbiAgICBnZXQgdmlkZW9zSXRlbXMoKTogRm9ybUFycmF5IHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmlkZW9zLmdldCgnaXRlbXMnKSBhcyBGb3JtQXJyYXk7XG4gICAgfVxuXG4gICAgYWRkVmlkZW9JdGVtKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnZpZGVvc0l0ZW1zLnB1c2goXG4gICAgICAgICAgICB0aGlzLmZiLmdyb3VwKHtcbiAgICAgICAgICAgICAgICB0aXRsZTogWycnXSxcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogWycnXSxcbiAgICAgICAgICAgICAgICBibG9nX3VybDogWycnXSxcbiAgICAgICAgICAgICAgICBpbWFnZV91cmw6IFsnJ10sXG4gICAgICAgICAgICAgICAgdmlkZW9fdXJsOiBbJyddXG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHJlbW92ZVZpZGVvSXRlbShpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMudmlkZW9zSXRlbXMucmVtb3ZlQXQoaW5kZXgpO1xuICAgIH1cblxuICAgIGFkZFRlc3RpbW9uaWFsSXRlbSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy50ZXN0aW1vbmlhbHNJdGVtcy5wdXNoKFxuICAgICAgICAgICAgdGhpcy5mYi5ncm91cCh7XG4gICAgICAgICAgICAgICAgdGVzdGltb25pYWw6IFsnJ10sXG4gICAgICAgICAgICAgICAgbmFtZTogWycnXSxcbiAgICAgICAgICAgICAgICBibG9nX3VybDogWycnXSxcbiAgICAgICAgICAgICAgICBpbWFnZV91cmw6IFsnJ10sXG4gICAgICAgICAgICAgICAgdmlkZW9fdXJsOiBbJyddXG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHJlbW92ZVRlc3RpbW9uaWFsSXRlbShpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMudGVzdGltb25pYWxzSXRlbXMucmVtb3ZlQXQoaW5kZXgpO1xuICAgIH1cblxuICAgIGdldCBoZWFkZXJTdWJIZWFkaW5ncygpOiBGb3JtQXJyYXkge1xuICAgICAgICByZXR1cm4gdGhpcy5mb3JtLmdldCgnaGVhZGVyJykuZ2V0KCdzdWJfaGVhZGluZ3MnKSBhcyBGb3JtQXJyYXk7XG4gICAgfVxuXG4gICAgYWRkSGVhZGVyU3ViSGVhZGluZygpIHtcbiAgICAgICAgdGhpcy5oZWFkZXJTdWJIZWFkaW5ncy5wdXNoKHRoaXMuZmIuZ3JvdXAoeyBkZXNjcmlwdGlvbjogWycnXSB9KSk7XG4gICAgfVxuXG4gICAgcmVtb3ZlSGVhZGVyU3ViSGVhZGluZyhpbmRleDogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuaGVhZGVyU3ViSGVhZGluZ3MucmVtb3ZlQXQoaW5kZXgpO1xuICAgIH1cblxuICAgIGdldCBwYXJ0bmVyc0l0ZW1zKCk6IEZvcm1BcnJheSB7XG4gICAgICAgIHJldHVybiB0aGlzLmZvcm0uZ2V0KCdwYXJ0bmVycycpPy5nZXQoJ2l0ZW1zJykgYXMgRm9ybUFycmF5O1xuICAgIH1cblxuICAgIGFkZFBhcnRuZXJJbWFnZSgpIHtcbiAgICAgICAgdGhpcy5wYXJ0bmVyc0l0ZW1zLnB1c2goXG4gICAgICAgICAgICB0aGlzLmZiLmdyb3VwKHtcbiAgICAgICAgICAgICAgICBpbWFnZV91cmw6IFsnJ11cbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcmVtb3ZlUGFydG5lckltYWdlKGluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5wYXJ0bmVyc0l0ZW1zLnJlbW92ZUF0KGluZGV4KTtcbiAgICB9XG5cbiAgICBnZXRBbGxPcHRpb25zKCkge1xuICAgICAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XG4gICAgICAgIGZvcmtKb2luKHtcbiAgICAgICAgICAgIG9wdGlvbnM6IHRoaXMuYWRtaW5TZXJ2aWNlLmdldEF2YWlsYWJsZURvbWFpbk9wdGlvbnModGhpcy5zdWJzY3JpcHRpb25JZCksXG4gICAgICAgICAgICBnZXRQcm9kdWN0OiB0aGlzLnByb2R1Y3RTZXJ2aWNlLmdldFByb2R1Y3RMaXN0KHt9LCB0aGlzLnN1YnNjcmlwdGlvbklkKSxcbiAgICAgICAgICAgIGNvbmZpZzogdGhpcy5hZG1pblNlcnZpY2UuZ2V0RG9tYWluQ29uZmlnQnlJZChcbiAgICAgICAgICAgICAgICBIZWxwZXJTZXJ2aWNlLmVmZmVjdGl2ZUNvbmZpZ0lkKHRoaXMuZHVwbGljYXRlQ29uZmlnSWQsIHRoaXMuaWQpLFxuICAgICAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uSWRcbiAgICAgICAgICAgIClcbiAgICAgICAgfSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgICAgICAgICAvLyBvcHRpb25zXG4gICAgICAgICAgICAgICAgdGhpcy5tYXN0ZXJTdWJzY3JpcHRpb25Qcm9kdWN0TGlzdCA9IFtcbiAgICAgICAgICAgICAgICAgICAgeyBpZDogbnVsbCwgbmFtZTogJ1NlbGVjdCBNYXN0ZXIgUHJvZHVjdCcgfSxcbiAgICAgICAgICAgICAgICAgICAgLi4uKHJlcz8ub3B0aW9ucz8ubWFzdGVyX3N1YnNjcmlwdGlvbj8ucHJvZHVjdHMgPz8gW10pXG4gICAgICAgICAgICAgICAgXTtcblxuICAgICAgICAgICAgICAgIHRoaXMubWFzdGVyU3Vic2NyaXB0aW9uc0xpc3QgPSBbXG4gICAgICAgICAgICAgICAgICAgIHsgbGFiZWw6ICdTZWxlY3QgTWFzdGVyIFN1YnNjcmlwdGlvbicsIHZhbHVlOiBudWxsIH0sXG4gICAgICAgICAgICAgICAgICAgIC4uLihyZXM/Lm9wdGlvbnM/Lm1hc3Rlcl9zdWJzY3JpcHRpb24/LnN1YnNjcmlwdGlvbnMgPz8gW10pLm1hcChzdWIgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBzdWIub3JnYW5pc2F0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBgJHtzdWIub3JnYW5pc2F0aW9ufSAtICR7c3ViLmNvbnRhY3RfbmFtZX1gXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBzdWIuY29udGFjdF9uYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHN1Yi5pZFxuICAgICAgICAgICAgICAgICAgICB9KSlcbiAgICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uVG9zTGlzdCA9IFtcbiAgICAgICAgICAgICAgICAgICAgeyBpZDogbnVsbCwgdGl0bGU6ICdTZWxlY3QgTWFpbiBUT1MnIH0sXG4gICAgICAgICAgICAgICAgICAgIC4uLihyZXM/Lm9wdGlvbnM/Lm1hc3Rlcl9zdWJzY3JpcHRpb24/LnN1YnNjcmlwdGlvbl90b3MgPz8gW10pXG4gICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgICAgICB0aGlzLmNybVN1YnNjcmlwdGlvbnNMaXN0ID0gW1xuICAgICAgICAgICAgICAgICAgICB7IGlkOiBudWxsLCBvcmdhbmlzYXRpb246IG51bGwsIGNvbnRhY3RfbmFtZTogJ1NlbGVjdCBDUk0gU3Vic2NyaXB0aW9uJyB9LFxuICAgICAgICAgICAgICAgICAgICAuLi4ocmVzPy5vcHRpb25zPy5tYXN0ZXJfY3JtPy5zdWJzY3JpcHRpb25zID8/IFtdKVxuICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICAgICAgdGhpcy5jcm1Tb3VyY2VzTGlzdCA9IFtcbiAgICAgICAgICAgICAgICAgICAgeyBpZDogbnVsbCwgbmFtZTogJ1NlbGVjdCBDUk0gU291cmNlJyB9LFxuICAgICAgICAgICAgICAgICAgICAuLi4ocmVzPy5vcHRpb25zPy5tYXN0ZXJfY3JtPy5zb3VyY2VzID8/IFtdKVxuICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICAgICAgdGhpcy5jcm1Qcm9kdWN0TGlzdCA9IFtcbiAgICAgICAgICAgICAgICAgICAgeyBpZDogbnVsbCwgbmFtZTogJ1NlbGVjdCBDUk0gUHJvZHVjdCcsIHN1YnNjcmlwdGlvbl9pZDogbnVsbCB9LFxuICAgICAgICAgICAgICAgICAgICAuLi4ocmVzPy5vcHRpb25zPy5tYXN0ZXJfY3JtPy5wcm9kdWN0cyA/PyBbXSlcbiAgICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgICAgIC8vIGVuZCBvcHRpb25zXG4gICAgICAgICAgICAgICAgdGhpcy5wcm9kdWN0c0xpc3QgPSB0aGlzLmdyb3VwUHJvZHVjdHMocmVzPy5nZXRQcm9kdWN0Py5wcm9kdWN0cyk7XG4gICAgICAgICAgICAgICAgLy8gY29uZmlnIHRvIHBhdGNoIHZhbHVlc1xuICAgICAgICAgICAgICAgIHRoaXMuZGF0YSA9IHJlcy5jb25maWc7XG4gICAgICAgICAgICAgICAgY29uc3QgZGVtbyA9IHRoaXMuZGF0YS5ib29rX2RlbW87XG4gICAgICAgICAgICAgICAgY29uc3QgZGVtb0dyb3VwID0gdGhpcy5mb3JtLmdldCgnYm9va19kZW1vJykgYXMgRm9ybUdyb3VwO1xuICAgICAgICAgICAgICAgIGNvbnN0IGl0ZW1zQXJyYXkgPSBkZW1vR3JvdXAuZ2V0KCdpdGVtcycpIGFzIEZvcm1BcnJheTtcblxuICAgICAgICAgICAgICAgIGRlbW9Hcm91cC5wYXRjaFZhbHVlKHtcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6IGRlbW8/LnRpdGxlID8/ICcnLFxuICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogZGVtbz8uZGVzY3JpcHRpb24gPz8gJydcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IHVzcHNHcm91cCA9IHRoaXMuZm9ybS5nZXQoJ3VzcHMnKSBhcyBGb3JtR3JvdXA7XG4gICAgICAgICAgICAgICAgY29uc3QgdXNwSXRlbXNBcnJheSA9IHVzcHNHcm91cC5nZXQoJ2l0ZW1zJykgYXMgRm9ybUFycmF5O1xuXG4gICAgICAgICAgICAgICAgdXNwc0dyb3VwLnBhdGNoVmFsdWUoe1xuICAgICAgICAgICAgICAgICAgICB0aXRsZTogcmVzLmNvbmZpZz8udXNwcz8udGl0bGUgPz8gJycsXG4gICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiByZXMuY29uZmlnPy51c3BzPy5kZXNjcmlwdGlvbiA/PyAnJ1xuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgdXNwSXRlbXNBcnJheS5jbGVhcigpO1xuICAgICAgICAgICAgICAgIChyZXMuY29uZmlnPy51c3BzPy5pdGVtcyA/PyBbXSkuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdXNwSXRlbXNBcnJheS5wdXNoKFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5mYi5ncm91cCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IFtpdGVtLmRlc2NyaXB0aW9uID8/ICcnXVxuICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IGhlYWRlckdyb3VwID0gdGhpcy5mb3JtLmdldCgnaGVhZGVyJykgYXMgRm9ybUdyb3VwO1xuICAgICAgICAgICAgICAgIGNvbnN0IHN1YkhlYWRpbmdzQXJyYXkgPSBoZWFkZXJHcm91cC5nZXQoJ3N1Yl9oZWFkaW5ncycpIGFzIEZvcm1BcnJheTtcblxuICAgICAgICAgICAgICAgIGhlYWRlckdyb3VwLnBhdGNoVmFsdWUoe1xuICAgICAgICAgICAgICAgICAgICBoZWFkbGluZTogcmVzLmNvbmZpZz8uaGVhZGVyPy5oZWFkbGluZSA/PyAnJyxcbiAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IHJlcy5jb25maWc/LmhlYWRlcj8uZGVzY3JpcHRpb24gPz8gJycsXG4gICAgICAgICAgICAgICAgICAgIHZpZGVvX3VybDogcmVzLmNvbmZpZz8uaGVhZGVyPy52aWRlb191cmwgPz8gJycsXG4gICAgICAgICAgICAgICAgICAgIGJnX2ltYWdlX3VybDogcmVzLmNvbmZpZz8uaGVhZGVyPy5iZ19pbWFnZV91cmwgPz8gJydcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIHN1YkhlYWRpbmdzQXJyYXkuY2xlYXIoKTtcbiAgICAgICAgICAgICAgICAocmVzLmNvbmZpZz8uaGVhZGVyPy5zdWJfaGVhZGluZ3MgPz8gW10pLmZvckVhY2goc2ggPT4ge1xuICAgICAgICAgICAgICAgICAgICBzdWJIZWFkaW5nc0FycmF5LnB1c2goXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZiLmdyb3VwKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogW3NoLmRlc2NyaXB0aW9uID8/ICcnXVxuICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IHRlc3RpbW9uaWFsc0dyb3VwID0gdGhpcy5mb3JtLmdldCgndGVzdGltb25pYWxzJykgYXMgRm9ybUdyb3VwO1xuICAgICAgICAgICAgICAgIGNvbnN0IHRlc3RpbW9uaWFsSXRlbXMgPSB0ZXN0aW1vbmlhbHNHcm91cC5nZXQoJ2l0ZW1zJykgYXMgRm9ybUFycmF5O1xuXG4gICAgICAgICAgICAgICAgdGVzdGltb25pYWxzR3JvdXAucGF0Y2hWYWx1ZSh7XG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiByZXMuY29uZmlnPy50ZXN0aW1vbmlhbHM/LnRpdGxlID8/ICcnLFxuICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogcmVzLmNvbmZpZz8udGVzdGltb25pYWxzPy5kZXNjcmlwdGlvbiA/PyAnJ1xuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgdGVzdGltb25pYWxJdGVtcy5jbGVhcigpO1xuICAgICAgICAgICAgICAgIChyZXMuY29uZmlnPy50ZXN0aW1vbmlhbHM/Lml0ZW1zID8/IFtdKS5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICAgICAgICAgICAgICB0ZXN0aW1vbmlhbEl0ZW1zLnB1c2goXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZiLmdyb3VwKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0aW1vbmlhbDogW2l0ZW0/LnRlc3RpbW9uaWFsID8/ICcnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBbaXRlbT8ubmFtZSA/PyAnJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmxvZ191cmw6IFtpdGVtPy5ibG9nX3VybCA/PyAnJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW1hZ2VfdXJsOiBbaXRlbT8uaW1hZ2VfdXJsID8/ICcnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWRlb191cmw6IFtpdGVtPy52aWRlb191cmwgPz8gJyddXG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgY29uc3QgY3Rhc0dyb3VwID0gdGhpcy5mb3JtLmdldCgnY3RhcycpIGFzIEZvcm1Hcm91cDtcbiAgICAgICAgICAgICAgICBjb25zdCBjdGFzSXRlbXMgPSBjdGFzR3JvdXAuZ2V0KCdpdGVtcycpIGFzIEZvcm1BcnJheTtcblxuICAgICAgICAgICAgICAgIGN0YXNHcm91cC5wYXRjaFZhbHVlKHtcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6IHJlcy5jb25maWc/LmN0YXM/LnRpdGxlID8/ICcnLFxuICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogcmVzLmNvbmZpZz8uY3Rhcz8uZGVzY3JpcHRpb24gPz8gJycsXG4gICAgICAgICAgICAgICAgICAgIGltYWdlX3VybDogcmVzLmNvbmZpZz8uY3Rhcz8uaW1hZ2VfdXJsID8/ICcnXG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICBjdGFzSXRlbXMuY2xlYXIoKTtcbiAgICAgICAgICAgICAgICAocmVzLmNvbmZpZz8uY3Rhcz8uaXRlbXMgPz8gW10pLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGN0YXNJdGVtcy5wdXNoKFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5mYi5ncm91cCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IFtpdGVtPy50aXRsZSA/PyAnJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IFtpdGVtPy5kZXNjcmlwdGlvbiA/PyAnJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnV0dG9uX3RleHQ6IFtpdGVtPy5idXR0b25fdGV4dCA/PyAnJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW1hZ2VfdXJsOiBbaXRlbT8uaW1hZ2VfdXJsID8/ICcnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdGFfdXJsOiBbaXRlbT8uY3RhX3VybCA/PyAnJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlkZW9fdXJsOiBbaXRlbT8udmlkZW9fdXJsID8/ICcnXVxuICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IGd1aWRlc0dyb3VwID0gdGhpcy5mb3JtLmdldCgnZ3VpZGVzJykgYXMgRm9ybUdyb3VwO1xuICAgICAgICAgICAgICAgIGNvbnN0IGd1aWRlc0l0ZW1zID0gZ3VpZGVzR3JvdXAuZ2V0KCdpdGVtcycpIGFzIEZvcm1BcnJheTtcblxuICAgICAgICAgICAgICAgIGd1aWRlc0l0ZW1zLmNsZWFyKCk7XG5cbiAgICAgICAgICAgICAgICAocmVzLmNvbmZpZz8uZ3VpZGVzPy5pdGVtcyA/PyBbXSkuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgICAgICAgICAgICAgICAgZ3VpZGVzSXRlbXMucHVzaChcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiBbaXRlbT8udGl0bGUgPz8gJyddLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBbaXRlbT8uZGVzY3JpcHRpb24gPz8gJyddLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1dHRvbl90ZXh0OiBbaXRlbT8uYnV0dG9uX3RleHQgPz8gJyddLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGltYWdlX3VybDogW2l0ZW0/LmltYWdlX3VybCA/PyAnJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3VpZGVfdXJsOiBbaXRlbT8uZ3VpZGVfdXJsID8/ICcnXVxuICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IHBhcnRuZXJzR3JvdXAgPSB0aGlzLmZvcm0uZ2V0KCdwYXJ0bmVycycpIGFzIEZvcm1Hcm91cDtcbiAgICAgICAgICAgICAgICBjb25zdCBwYXJ0bmVyc0l0ZW1zID0gcGFydG5lcnNHcm91cC5nZXQoJ2l0ZW1zJykgYXMgRm9ybUFycmF5O1xuXG4gICAgICAgICAgICAgICAgcGFydG5lcnNHcm91cC5wYXRjaFZhbHVlKHtcbiAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IHRoaXMuZGF0YT8ucGFydG5lcnM/LmRlc2NyaXB0aW9uID8/ICcnXG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICBwYXJ0bmVyc0l0ZW1zLmNsZWFyKCk7XG4gICAgICAgICAgICAgICAgKHRoaXMuZGF0YT8ucGFydG5lcnM/Lml0ZW1zID8/IFtdKS5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICAgICAgICAgICAgICBwYXJ0bmVyc0l0ZW1zLnB1c2goXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZiLmdyb3VwKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbWFnZV91cmw6IFtpdGVtPy5pbWFnZV91cmwgPz8gJyddLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFtpdGVtPy5uYW1lID8/ICcnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogW2l0ZW0/LmRlc2NyaXB0aW9uID8/ICcnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBibG9nX3VybDogW2l0ZW0/LmJsb2dfdXJsID8/ICcnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWRlb191cmw6IFtpdGVtPy52aWRlb191cmwgPz8gJyddXG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgaXRlbXNBcnJheS5jbGVhcigpO1xuICAgICAgICAgICAgICAgIChkZW1vPy5pdGVtcyA/PyBbXSkuZm9yRWFjaChsaW5rID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaXRlbXNBcnJheS5wdXNoKFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5mYi5ncm91cCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IFtsaW5rLnRpdGxlID8/ICcnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6IFtsaW5rLnVybCA/PyAnJ11cbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICBjb25zdCBjb250YWN0VXNHcm91cCA9IHRoaXMuZm9ybS5nZXQoJ2NvbnRhY3RfdXMnKSBhcyBGb3JtR3JvdXA7XG4gICAgICAgICAgICAgICAgY29uc3QgcXVlc3Rpb25zQXJyYXkgPSBjb250YWN0VXNHcm91cC5nZXQoJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheTtcbiAgICAgICAgICAgICAgICBjb25zdCBodWJzcG90QXJyYXkgPSBjb250YWN0VXNHcm91cC5nZXQoJ2h1YnNwb3QnKSBhcyBGb3JtQXJyYXk7XG4gICAgICAgICAgICAgICAgY29udGFjdFVzR3JvdXAucGF0Y2hWYWx1ZSh7XG4gICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiByZXMuY29uZmlnPy5jb250YWN0X3VzPy5kZXNjcmlwdGlvbiA/PyAnJ1xuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgcXVlc3Rpb25zQXJyYXkuY2xlYXIoKTtcbiAgICAgICAgICAgICAgICBodWJzcG90QXJyYXkuY2xlYXIoKTtcbiAgICAgICAgICAgICAgICAocmVzLmNvbmZpZz8uY29udGFjdF91cz8ucXVlc3Rpb25zID8/IFtdKS5mb3JFYWNoKHEgPT4ge1xuICAgICAgICAgICAgICAgICAgICBxdWVzdGlvbnNBcnJheS5wdXNoKFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5mYi5ncm91cCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcXVlc3Rpb246IFtxPy5xdWVzdGlvbiA/PyAnJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uczogdGhpcy5mYi5hcnJheShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHE/Lm9wdGlvbnMgPz8gW10pLm1hcChvID0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZiLmdyb3VwKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb246IFtvPy5vcHRpb24gPz8gJyddXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIChyZXMuY29uZmlnPy5jb250YWN0X3VzPy5odWJzcG90ID8/IFtdKS5mb3JFYWNoKGggPT4ge1xuICAgICAgICAgICAgICAgICAgICBodWJzcG90QXJyYXkucHVzaChcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBbaD8uaWQgPz8gJyddLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBbaD8ucG9zaXRpb24gPz8gJyddLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpdjogW2g/LmRpdiA/PyAnJ11cbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICBjb25zdCB2aWRlb3NHcm91cCA9IHRoaXMuZm9ybS5nZXQoJ3ZpZGVvcycpIGFzIEZvcm1Hcm91cDtcbiAgICAgICAgICAgICAgICBjb25zdCB2aWRlb3NJdGVtcyA9IHZpZGVvc0dyb3VwLmdldCgnaXRlbXMnKSBhcyBGb3JtQXJyYXk7XG5cbiAgICAgICAgICAgICAgICB2aWRlb3NHcm91cC5wYXRjaFZhbHVlKHtcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6IHJlcy5jb25maWc/LnZpZGVvcz8udGl0bGUgPz8gJycsXG4gICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiByZXMuY29uZmlnPy52aWRlb3M/LmRlc2NyaXB0aW9uID8/ICcnXG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICB2aWRlb3NJdGVtcy5jbGVhcigpO1xuICAgICAgICAgICAgICAgIChyZXMuY29uZmlnPy52aWRlb3M/Lml0ZW1zID8/IFtdKS5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICAgICAgICAgICAgICB2aWRlb3NJdGVtcy5wdXNoKFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5mYi5ncm91cCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IFtpdGVtPy50aXRsZSA/PyAnJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IFtpdGVtPy5kZXNjcmlwdGlvbiA/PyAnJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmxvZ191cmw6IFtpdGVtPy5ibG9nX3VybCA/PyAnJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW1hZ2VfdXJsOiBbaXRlbT8uaW1hZ2VfdXJsID8/ICcnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWRlb191cmw6IFtpdGVtPy52aWRlb191cmwgPz8gJyddXG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgY29uc3QgaW50ZWdyYXRpb25zR3JvdXAgPSB0aGlzLmZvcm0uZ2V0KCdpbnRlZ3JhdGlvbnMnKSBhcyBGb3JtR3JvdXA7XG4gICAgICAgICAgICAgICAgY29uc3QgaW50ZWdyYXRpb25zSXRlbXMgPSBpbnRlZ3JhdGlvbnNHcm91cC5nZXQoJ2l0ZW1zJykgYXMgRm9ybUFycmF5O1xuXG4gICAgICAgICAgICAgICAgaW50ZWdyYXRpb25zR3JvdXAucGF0Y2hWYWx1ZSh7XG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiByZXMuY29uZmlnPy5pbnRlZ3JhdGlvbnM/LnRpdGxlID8/ICcnLFxuICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogcmVzLmNvbmZpZz8uaW50ZWdyYXRpb25zPy5kZXNjcmlwdGlvbiA/PyAnJ1xuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgaW50ZWdyYXRpb25zSXRlbXMuY2xlYXIoKTtcbiAgICAgICAgICAgICAgICAocmVzLmNvbmZpZz8uaW50ZWdyYXRpb25zPy5pdGVtcyA/PyBbXSkuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaW50ZWdyYXRpb25zSXRlbXMucHVzaChcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiBbaXRlbT8udGl0bGUgPz8gJyddLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBbaXRlbT8uZGVzY3JpcHRpb24gPz8gJyddLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJsb2dfdXJsOiBbaXRlbT8uYmxvZ191cmwgPz8gJyddLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGltYWdlX3VybDogW2l0ZW0/LmltYWdlX3VybCA/PyAnJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlkZW9fdXJsOiBbaXRlbT8udmlkZW9fdXJsID8/ICcnXVxuICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIHRoaXMuc2hhcmRVcmwgPSByZXM/LmNvbmZpZz8uc2hhcmRfdXJsO1xuICAgICAgICAgICAgICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKHRoaXMuZGF0YSk7XG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUoe1xuICAgICAgICAgICAgICAgICAgICBjc19wcm9kdWN0X2lkOiB0aGlzLnByb2R1Y3RzTGlzdC5maW5kKHggPT4geC5pZCA9PT0gdGhpcy5kYXRhPy5jc19wcm9kdWN0X2lkKSxcbiAgICAgICAgICAgICAgICAgICAgdHJpYWxfcHJvZHVjdF9pZDogdGhpcy5wcm9kdWN0c0xpc3QuZmluZChcbiAgICAgICAgICAgICAgICAgICAgICAgIHggPT4geC5pZCA9PT0gdGhpcy5kYXRhPy50cmlhbF9wcm9kdWN0X2lkXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IG5hdmJhckdyb3VwID0gdGhpcy5mb3JtLmdldCgnbmF2YmFyJykgYXMgRm9ybUdyb3VwO1xuICAgICAgICAgICAgICAgIGNvbnN0IG5hdmJhckl0ZW1zID0gbmF2YmFyR3JvdXAuZ2V0KCdpdGVtcycpIGFzIEZvcm1BcnJheTtcbiAgICAgICAgICAgICAgICBuYXZiYXJJdGVtcy5jbGVhcigpO1xuXG4gICAgICAgICAgICAgICAgKHJlcy5jb25maWc/Lm5hdmJhcj8uaXRlbXMgPz8gW10pLmZvckVhY2gobmF2ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgbmF2YmFySXRlbXMucHVzaChcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiBbbmF2LnRpdGxlID8/ICcnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoOiBbbmF2LnBhdGggPz8gJyddLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1YnRpdGxlczogdGhpcy5mYi5hcnJheShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG5hdi5zdWJ0aXRsZXMgPz8gW10pLm1hcChzdWIgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiBbc3ViLnRpdGxlID8/ICcnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoOiBbc3ViLnBhdGggPz8gJyddXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IGZvb3RlckxpbmtzR3JvdXAgPSB0aGlzLmZvcm0uZ2V0KCdmb290ZXJfbGlua3MnKSBhcyBGb3JtR3JvdXA7XG4gICAgICAgICAgICAgICAgY29uc3QgZm9vdGVyTGlua3NJdGVtcyA9IGZvb3RlckxpbmtzR3JvdXAuZ2V0KCdpdGVtcycpIGFzIEZvcm1BcnJheTtcblxuICAgICAgICAgICAgICAgIGZvb3RlckxpbmtzSXRlbXMuY2xlYXIoKTtcblxuICAgICAgICAgICAgICAgIChyZXMuY29uZmlnPy5mb290ZXJfbGlua3M/Lml0ZW1zID8/IFtdKS5mb3JFYWNoKGxpbmsgPT4ge1xuICAgICAgICAgICAgICAgICAgICBmb290ZXJMaW5rc0l0ZW1zLnB1c2goXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZiLmdyb3VwKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogW2xpbms/LnRpdGxlID8/ICcnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoOiBbbGluaz8ucGF0aCA/PyAnJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VidGl0bGVzOiB0aGlzLmZiLmFycmF5KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluaz8uc3VidGl0bGVzID8/IFtdKS5tYXAoc3ViID0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZiLmdyb3VwKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogW3N1Yj8udGl0bGUgPz8gJyddLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGg6IFtzdWI/LnBhdGggPz8gJyddXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIGlmIChyZXM/LmNvbmZpZz8uY3NfY3RhX2lmcmFtZSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBjc19jdGFfaWZyYW1lOiBKU09OLnBhcnNlKHJlcz8uY29uZmlnPy5jc19jdGFfaWZyYW1lKVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHJlcz8uY29uZmlnPy50cmlhbF9jdGFfaWZyYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyaWFsX2N0YV9pZnJhbWU6IEpTT04ucGFyc2UocmVzPy5jb25maWc/LnRyaWFsX2N0YV9pZnJhbWUpXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGNvbnN0IGFiVGVzdHNBcnJheSA9IHRoaXMuYWJUZXN0cztcbiAgICAgICAgICAgICAgICBhYlRlc3RzQXJyYXkuY2xlYXIoKTtcbiAgICAgICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShyZXMuY29uZmlnPy5hYl90ZXN0cykpIHtcbiAgICAgICAgICAgICAgICAgICAgKHJlcy5jb25maWc/LmFiX3Rlc3RzID8/IFtdKS5mb3JFYWNoKHRlc3QgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgYWJUZXN0c0FycmF5LnB1c2goXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5mYi5ncm91cCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBbdGVzdD8uZGVzY3JpcHRpb24gPz8gJyddLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBlcmltZW50X25hbWU6IFt0ZXN0Py5leHBlcmltZW50X25hbWUgPz8gJyddLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYl9zaGFyZDogW3Rlc3Q/LmRiX3NoYXJkID8/ICcnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWljcm9zZXJ2aWNlX25hbWU6IFt0ZXN0Py5taWNyb3NlcnZpY2VfbmFtZSA/PyAnJ11cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5hZGQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIHRoaXMudXBsb2FkZXIuY2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5jaGlsZExpc3QgPSB0aGlzLnVwbG9hZGVyLnRvQXJyYXkoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZ2V0IGYoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmZvcm0uY29udHJvbHM7XG4gICAgfVxuXG4gICAgcHVibGljIHNvcnRPYmoob2JqKSB7XG4gICAgICAgIHJldHVybiBPYmplY3Qua2V5cyhvYmopXG4gICAgICAgICAgICAuc29ydCgoYSwgYikgPT4gYS5sb2NhbGVDb21wYXJlKGIpKVxuICAgICAgICAgICAgLnJlZHVjZSgocmVzdWx0LCBrZXkpID0+IHtcbiAgICAgICAgICAgICAgICByZXN1bHRba2V5XSA9IG9ialtrZXldO1xuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICB9LCB7fSk7XG4gICAgfVxuXG4gICAgc2VhcmNoUHJvZHVjdChldmVudCkge1xuICAgICAgICB0aGlzLnByb2R1Y3RTZXJ2aWNlXG4gICAgICAgICAgICAuZ2V0UHJvZHVjdExpc3QoeyBzZWFyY2g6IGV2ZW50Py5xdWVyeSA/PyAnJyB9LCB0aGlzLnN1YnNjcmlwdGlvbklkKVxuICAgICAgICAgICAgLnN1YnNjcmliZShyZXNwb25zZSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5wcm9kdWN0c0xpc3QgPSB0aGlzLmdyb3VwUHJvZHVjdHMocmVzcG9uc2UucHJvZHVjdHMpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBncm91cFByb2R1Y3RzKHByb2R1Y3RzKSB7XG4gICAgICAgIGlmIChwcm9kdWN0cz8ubGVuZ3RoKSB7XG4gICAgICAgICAgICBwcm9kdWN0cyA9IHByb2R1Y3RzLmZpbHRlcih4ID0+IHguZGVwZW5kZW5jeV9wcm9kdWN0cz8ubGVuZ3RoIDwgMSAmJiB4LmFjdGl2ZSk7XG4gICAgICAgICAgICBwcm9kdWN0cyA9IGdyb3VwQnkocHJvZHVjdHMsICdjdXJyZW5jeScpO1xuICAgICAgICAgICAgcHJvZHVjdHMgPSB0aGlzLnNvcnRPYmoocHJvZHVjdHMpO1xuICAgICAgICAgICAgbGV0IGdyb3VwZWRBcnJheSA9IFtdO1xuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXJlc3RyaWN0ZWQtc3ludGF4XG4gICAgICAgICAgICBmb3IgKGNvbnN0IHAgaW4gcHJvZHVjdHMpIHtcbiAgICAgICAgICAgICAgICBpZiAocCBpbiBwcm9kdWN0cykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IHByb2R1Y3RzW3BdLnNvcnQoXG4gICAgICAgICAgICAgICAgICAgICAgICAoYSwgYikgPT4gTnVtYmVyKGIucHJpY2VfcGVyX3VuaXQpIC0gTnVtYmVyKGEucHJpY2VfcGVyX3VuaXQpXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIGdyb3VwZWRBcnJheS5wdXNoKC4uLnZhbHVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGdyb3VwZWRBcnJheSA9IGdyb3VwZWRBcnJheS5tYXAoeCA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgaWQ6IHguaWQsXG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IGAke3gubmFtZX0gfCAke3gucmVnaW9ufSB8ICR7eC5iaWxsaW5nX2ZyZXF1ZW5jeX0gfCAke3gubWluX3VuaXRzfSB4ICR7KFxuICAgICAgICAgICAgICAgICAgICAgICAgeC5wcmljZV9wZXJfdW5pdCAvIDEwMFxuICAgICAgICAgICAgICAgICAgICApLnRvRml4ZWQoMil9IHwgJHt4LmN1cnJlbmN5fWBcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHJldHVybiBncm91cGVkQXJyYXk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgb25TYXZlRmlsZShldmVudCkge1xuICAgICAgICBjb25zdCBpdGVtOiBDdXN0b21VcGxvYWRlckNvbXBvbmVudCA9IHRoaXMuY2hpbGRMaXN0LmZpbmQoXG4gICAgICAgICAgICB4ID0+IHguY29udHJvbE5hbWUgPT09IGV2ZW50Lm5hbWVcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcbiAgICAgICAgY29uc3QgZGF0YSA9IHsgc3Vic2NyaXB0aW9uX2lkOiB0aGlzLnN1YnNjcmlwdGlvbklkIH07XG4gICAgICAgIGlmIChldmVudC5maWxlKSB7XG4gICAgICAgICAgICBkYXRhW2V2ZW50Lm5hbWVdID0gZXZlbnQuZmlsZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGRhdGFbYHJlbW92ZV8ke2V2ZW50Lm5hbWV9YF0gPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1yZXN0cmljdGVkLXN5bnRheFxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBkYXRhKSB7XG4gICAgICAgICAgICBpZiAoa2V5IGluIGRhdGEpIHtcbiAgICAgICAgICAgICAgICBmb3JtRGF0YS5hcHBlbmQoa2V5LCBkYXRhW2tleV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHN1YiQgPSB0aGlzLmlkXG4gICAgICAgICAgICA/IHRoaXMuYWRtaW5TZXJ2aWNlLnVwZGF0ZURvbWFpbkNvbmZpZyh0aGlzLmlkLCBmb3JtRGF0YSlcbiAgICAgICAgICAgIDogdGhpcy5hZG1pblNlcnZpY2UuY3JlYXRlRG9tYWluQ29uZmlnKGZvcm1EYXRhKTtcblxuICAgICAgICBzdWIkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmFkbWluU2VydmljZVxuICAgICAgICAgICAgICAgIC5nZXREb21haW5Db25maWdCeUlkKHRoaXMuaWQsIHRoaXMuc3Vic2NyaXB0aW9uSWQpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZShyZXNwb25zZSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGl0ZW0uY2xlYXJWYWx1ZXMoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kYXRhW2V2ZW50Lm5hbWVdID0gcmVzcG9uc2VbZXZlbnQubmFtZV07XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pLmFkZCgoKSA9PiB7XG4gICAgICAgICAgICBpdGVtLmJ1dHRvbkJ1c3kgPSBmYWxzZTtcbiAgICAgICAgICAgIGl0ZW0ub25DbG9zZSgpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBkcm9wRm9vdGVyU3VidGl0bGVzKGk6IG51bWJlciwgZXZlbnQ6IENka0RyYWdEcm9wPEZvcm1Hcm91cFtdPikge1xuICAgICAgICBjb25zdCBjb250cm9sID0gdGhpcy5nZXRGb290ZXJTdWJ0aXRsZXMoaSk7XG4gICAgICAgIG1vdmVJdGVtSW5BcnJheShjb250cm9sLmNvbnRyb2xzLCBldmVudC5wcmV2aW91c0luZGV4LCBldmVudC5jdXJyZW50SW5kZXgpO1xuICAgICAgICBjb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICB9XG5cbiAgICBkcm9wTmF2YmFyU3VidGl0bGVzKGk6IG51bWJlciwgZXZlbnQ6IENka0RyYWdEcm9wPEZvcm1Hcm91cFtdPikge1xuICAgICAgICBjb25zdCBzdWJ0aXRsZXMgPSB0aGlzLmdldE5hdmJhclN1YnRpdGxlcyhpKTtcbiAgICAgICAgbW92ZUl0ZW1JbkFycmF5KHN1YnRpdGxlcy5jb250cm9scywgZXZlbnQucHJldmlvdXNJbmRleCwgZXZlbnQuY3VycmVudEluZGV4KTtcbiAgICAgICAgc3VidGl0bGVzLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICB9XG5cbiAgICBkcm9wQm9va0RlbW9MaW5rcyhldmVudDogQ2RrRHJhZ0Ryb3A8Rm9ybUdyb3VwW10+KSB7XG4gICAgICAgIGNvbnN0IGl0ZW1zID0gdGhpcy5mb3JtLmdldCgnYm9va19kZW1vJyk/LmdldCgnaXRlbXMnKSBhcyBGb3JtQXJyYXk7XG4gICAgICAgIG1vdmVJdGVtSW5BcnJheShpdGVtcy5jb250cm9scywgZXZlbnQucHJldmlvdXNJbmRleCwgZXZlbnQuY3VycmVudEluZGV4KTtcbiAgICAgICAgaXRlbXMudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgIH1cblxuICAgIGRyb3BDb250YWN0VXNPcHRpb25zKHF1ZXN0aW9uSW5kZXg6IG51bWJlciwgZXZlbnQ6IENka0RyYWdEcm9wPEZvcm1Hcm91cFtdPikge1xuICAgICAgICBjb25zdCBvcHRpb25zID0gdGhpcy5nZXRRdWVzdGlvbk9wdGlvbnMocXVlc3Rpb25JbmRleCk7XG4gICAgICAgIG1vdmVJdGVtSW5BcnJheShvcHRpb25zLmNvbnRyb2xzLCBldmVudC5wcmV2aW91c0luZGV4LCBldmVudC5jdXJyZW50SW5kZXgpO1xuICAgICAgICBvcHRpb25zLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICB9XG5cbiAgICBkcm9wSXRlbXMoY29udHJvbDogRm9ybUFycmF5LCBldmVudDogQ2RrRHJhZ0Ryb3A8Rm9ybUdyb3VwW10+KSB7XG4gICAgICAgIG1vdmVJdGVtSW5BcnJheShjb250cm9sLmNvbnRyb2xzLCBldmVudC5wcmV2aW91c0luZGV4LCBldmVudC5jdXJyZW50SW5kZXgpO1xuICAgICAgICBjb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICB9XG5cbiAgICBAVmFsaWRhdGVGb3JtKCdmb3JtJylcbiAgICBvblNhdmUoKSB7XG4gICAgICAgIHRoaXMuc3VibWl0dGVkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5idXR0b25CdXN5ID0gdHJ1ZTtcbiAgICAgICAgY29uc3QgZGF0YSA9IHtcbiAgICAgICAgICAgIG1hc3Rlcl9zdWJzY3JpcHRpb25faWQ6IHRoaXMuYXBwQ29uZmlnPy5tYXN0ZXJfc3Vic2NyaXB0aW9uPy5zdWJzY3JpcHRpb25faWQsXG4gICAgICAgICAgICBzdWJzY3JpcHRpb25faWQ6IHRoaXMuc3Vic2NyaXB0aW9uSWQsXG4gICAgICAgICAgICAuLi50aGlzLmZvcm0udmFsdWVcbiAgICAgICAgfTtcbiAgICAgICAgZGF0YS5jc19wcm9kdWN0X2lkID0gdGhpcy5mb3JtLmdldCgnY3NfcHJvZHVjdF9pZCcpLnZhbHVlPy5pZCA/PyBudWxsO1xuICAgICAgICBkYXRhLnRyaWFsX3Byb2R1Y3RfaWQgPSB0aGlzLmZvcm0uZ2V0KCd0cmlhbF9wcm9kdWN0X2lkJykudmFsdWU/LmlkID8/IG51bGw7XG4gICAgICAgIGRhdGFbJ2NzX2N0YV9pZnJhbWUnXSA9IHRoaXMuZm9ybS52YWx1ZT8uY3NfY3RhX2lmcmFtZSA/PyAnJztcbiAgICAgICAgZGF0YVsndHJpYWxfY3RhX2lmcmFtZSddID0gdGhpcy5mb3JtLnZhbHVlPy50cmlhbF9jdGFfaWZyYW1lID8/ICcnO1xuICAgICAgICBjb25zdCBzdWIkID0gdGhpcy5pZFxuICAgICAgICAgICAgPyB0aGlzLmFkbWluU2VydmljZS51cGRhdGVEb21haW5Db25maWcodGhpcy5pZCwgZGF0YSlcbiAgICAgICAgICAgIDogdGhpcy5hZG1pblNlcnZpY2UuY3JlYXRlRG9tYWluQ29uZmlnKGRhdGEpO1xuICAgICAgICBzdWIkLnN1YnNjcmliZSh7XG4gICAgICAgICAgICBuZXh0OiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy50b2FzdC5zdWNjZXNzKHRoaXMudHJhbnNsYXRpb24udHJhbnNsYXRlKCdBZG1pbi5Eb21haW5Db25maWcuVXBkYXRlZE1lc3NhZ2UnKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pLmFkZCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnN1Ym1pdHRlZCA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5idXR0b25CdXN5ID0gZmFsc2U7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiIsIjxoMz5QdWJsaWMgUGFnZXMgQ29uZmlndXJhdGlvbjwvaDM+XG48ZGl2IGNsYXNzPVwibWItNFwiPlxuICA8cD4gVGhlIGZvbGxvd2luZyBwYXJhbWV0ZXJzIGFuZCBzZXR0aW5ncyB3aWxsIGJlIGFwcGxpZWQgdG8gYWxsIHB1YmxpYyBwYWdlcyBvZiB0aGlzIGRvbWFpbi4gPC9wPlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwidy0xMDAgdGV4dC1jZW50ZXIgbXQtM1wiXG4gICpuZ0lmPVwiaXNMb2FkaW5nXCI+XG4gIDxwLXByb2dyZXNzU3Bpbm5lciBzdHJva2VXaWR0aD1cIjJcIj4gPC9wLXByb2dyZXNzU3Bpbm5lcj5cbjwvZGl2PlxuPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc0xvYWRpbmcgJiYgZGF0YT8uaG9zdF9uYW1lXCI+XG4gIDxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybVwiXG4gICAgKG5nU3VibWl0KT1cIm9uU2F2ZSgpXCI+XG4gICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tM1wiPlxuICAgICAgICA8cHctaW5wdXQtY29udGFpbmVyIFtsYWJlbF09XCInQWRtaW4uRG9tYWluQ29uZmlnLk1hc3RlclN1YnNjcmlwdGlvbicgfCB0cmFuc2xvY29cIlxuICAgICAgICAgIG5hbWU9XCJtYXN0ZXJfc3Vic2NyaXB0aW9uX2lkXCJcbiAgICAgICAgICBbc2hvd1Rvb2x0aXBdPVwidHJ1ZVwiXG4gICAgICAgICAgW3Rvb2x0aXBUZXh0XT1cIidBZG1pbi5Eb21haW5Db25maWcuVG9vbHRpcC5NYXN0ZXJTdWJzY3JpcHRpb24nIHwgdHJhbnNsb2NvXCI+XG4gICAgICAgICAgPHAtZHJvcGRvd25cbiAgICAgICAgICBbb3B0aW9uc109XCJtYXN0ZXJTdWJzY3JpcHRpb25zTGlzdFwiXG4gICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwibWFzdGVyX3N1YnNjcmlwdGlvbl9pZFwiXG4gICAgICAgICAgW25nQ2xhc3NdPVwieyAnaXMtaW52YWxpZCc6IHN1Ym1pdHRlZCAmJiBmWydtYXN0ZXJfc3Vic2NyaXB0aW9uX2lkJ10/LmVycm9ycyB9XCJcbiAgICAgICAgICBwbGFjZWhvbGRlcj1cIlNlbGVjdCBNYXN0ZXIgU3Vic2NyaXB0aW9uXCI+XG4gICAgICAgIDwvcC1kcm9wZG93bj5cbiAgICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLTNcIj5cbiAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBbbGFiZWxdPVwiJ0FkbWluLkRvbWFpbkNvbmZpZy5NYXN0ZXJTdWJzY3JpcHRpb25Qcm9kdWN0JyB8IHRyYW5zbG9jb1wiXG4gICAgICAgICAgW3Nob3dUb29sdGlwXT1cInRydWVcIlxuICAgICAgICAgIFt0b29sdGlwVGV4dF09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICdBZG1pbi5Eb21haW5Db25maWcuVG9vbHRpcC5NYXN0ZXJTdWJzY3JpcHRpb25Qcm9kdWN0JyB8IHRyYW5zbG9jb1xuICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgIG5hbWU9XCJtYXN0ZXJfc3Vic2NyaXB0aW9uX3Byb2R1Y3RfaWRcIj5cbiAgICAgICAgICA8cC1kcm9wZG93blxuICAgICAgICAgICAgW29wdGlvbnNdPVwibWFzdGVyU3Vic2NyaXB0aW9uUHJvZHVjdExpc3RcIlxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwibWFzdGVyX3N1YnNjcmlwdGlvbl9wcm9kdWN0X2lkXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsnaXMtaW52YWxpZCc6IHN1Ym1pdHRlZCAmJiBmWydtYXN0ZXJfc3Vic2NyaXB0aW9uX3Byb2R1Y3RfaWQnXT8uZXJyb3JzfVwiXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ1NlbGVjdCBNYXN0ZXIgUHJvZHVjdCdcIlxuICAgICAgICAgICAgb3B0aW9uVmFsdWU9XCJpZFwiXG4gICAgICAgICAgICBvcHRpb25MYWJlbD1cIm5hbWVcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgIDwvcC1kcm9wZG93bj5cbiAgICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLTNcIj5cbiAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBbbGFiZWxdPVwiJ0FkbWluLkRvbWFpbkNvbmZpZy5CbG9nRmVhdHVyZUtleScgfCB0cmFuc2xvY29cIlxuICAgICAgICAgIG5hbWU9XCJibG9nX2ZlYXR1cmVfa2V5XCJcbiAgICAgICAgICBbc2hvd1Rvb2x0aXBdPVwidHJ1ZVwiXG4gICAgICAgICAgW3Rvb2x0aXBUZXh0XT1cIidBZG1pbi5Eb21haW5Db25maWcuVG9vbHRpcC5CbG9nRmVhdHVyZUtleScgfCB0cmFuc2xvY29cIj5cbiAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiYmxvZ19mZWF0dXJlX2tleVwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdpcy1pbnZhbGlkJzogc3VibWl0dGVkICYmIGZbJ2Jsb2dfZmVhdHVyZV9rZXknXS5lcnJvcnMgfVwiIC8+XG4gICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS0zXCI+XG4gICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgW2xhYmVsXT1cIidBZG1pbi5Eb21haW5Db25maWcuTWFpblRvcycgfCB0cmFuc2xvY29cIlxuICAgICAgICAgIG5hbWU9XCJtYWluX3Rvc19pZFwiXG4gICAgICAgICAgW3Nob3dUb29sdGlwXT1cInRydWVcIlxuICAgICAgICAgIFt0b29sdGlwVGV4dF09XCInQWRtaW4uRG9tYWluQ29uZmlnLlRvb2x0aXAuTWFpblRvcycgfCB0cmFuc2xvY29cIj5cbiAgICAgICAgICA8cC1kcm9wZG93blxuICAgICAgICAgIFtvcHRpb25zXT1cInN1YnNjcmlwdGlvblRvc0xpc3RcIlxuICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cIm1haW5fdG9zX2lkXCJcbiAgICAgICAgICBbbmdDbGFzc109XCJ7ICdpcy1pbnZhbGlkJzogc3VibWl0dGVkICYmIGZbJ21haW5fdG9zX2lkJ10/LmVycm9ycyB9XCJcbiAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ1NlbGVjdCBNYWluIFRPUydcIlxuICAgICAgICAgIG9wdGlvblZhbHVlPVwiaWRcIj5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwic2VsZWN0ZWRJdGVtXCIgbGV0LWl0ZW0+XG4gICAgICAgICAgICA8c3BhbiBbaW5uZXJIVE1MXT1cIml0ZW0udGl0bGVcIj48L3NwYW4+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiaXRlbVwiIGxldC1pdGVtPlxuICAgICAgICAgICAgPHNwYW4gW2lubmVySFRNTF09XCJpdGVtLnRpdGxlXCI+PC9zcGFuPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvcC1kcm9wZG93bj5cblxuICAgICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tM1wiPlxuICAgICAgICA8cHctaW5wdXQtY29udGFpbmVyIFtsYWJlbF09XCInQWRtaW4uRG9tYWluQ29uZmlnLkNybVN1YnNjcmlwdGlvbicgfCB0cmFuc2xvY29cIlxuICAgICAgICAgIG5hbWU9XCJjcm1fc3Vic2NyaXB0aW9uX2lkXCJcbiAgICAgICAgICBbc2hvd1Rvb2x0aXBdPVwidHJ1ZVwiXG4gICAgICAgICAgW3Rvb2x0aXBUZXh0XT1cIidBZG1pbi5Eb21haW5Db25maWcuVG9vbHRpcC5Dcm1TdWJzY3JpcHRpb24nIHwgdHJhbnNsb2NvXCI+XG4gICAgICAgICAgPHAtZHJvcGRvd25cbiAgICAgICAgICAgIFtvcHRpb25zXT1cImNybVN1YnNjcmlwdGlvbnNMaXN0XCJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImNybV9zdWJzY3JpcHRpb25faWRcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnaXMtaW52YWxpZCc6IHN1Ym1pdHRlZCAmJiBmWydjcm1fc3Vic2NyaXB0aW9uX2lkJ10/LmVycm9ycyB9XCJcbiAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInU2VsZWN0IENSTSBTdWJzY3JpcHRpb24nXCJcbiAgICAgICAgICAgIG9wdGlvblZhbHVlPVwiaWRcIj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJzZWxlY3RlZEl0ZW1cIiBsZXQtaXRlbT5cbiAgICAgICAgICAgICAge3tpdGVtPy5vcmdhbmlzYXRpb24gPyBpdGVtPy5vcmdhbmlzYXRpb24gKyAnIC0gJyArIGl0ZW0uY29udGFjdF9uYW1lIDogaXRlbT8uY29udGFjdF9uYW1lfX1cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiaXRlbVwiIGxldC1pdGVtPlxuICAgICAgICAgICAgICB7e2l0ZW0/Lm9yZ2FuaXNhdGlvbiA/IGl0ZW0/Lm9yZ2FuaXNhdGlvbiArICcgLSAnICsgaXRlbS5jb250YWN0X25hbWUgOiBpdGVtPy5jb250YWN0X25hbWV9fVxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICA8L3AtZHJvcGRvd24+XG5cbiAgICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLTNcIj5cbiAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBbbGFiZWxdPVwiJ0FkbWluLkRvbWFpbkNvbmZpZy5Dcm1Qcm9kdWN0JyB8IHRyYW5zbG9jb1wiXG4gICAgICAgICAgbmFtZT1cImNybV9wcm9kdWN0X2lkXCJcbiAgICAgICAgICBbc2hvd1Rvb2x0aXBdPVwidHJ1ZVwiXG4gICAgICAgICAgW3Rvb2x0aXBUZXh0XT1cIidBZG1pbi5Eb21haW5Db25maWcuVG9vbHRpcC5Dcm1Qcm9kdWN0JyB8IHRyYW5zbG9jb1wiPlxuICAgICAgICAgIDxwLWRyb3Bkb3duXG4gICAgICAgICAgICBbb3B0aW9uc109XCJjcm1Qcm9kdWN0TGlzdFwiXG4gICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJjcm1fcHJvZHVjdF9pZFwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdpcy1pbnZhbGlkJzogc3VibWl0dGVkICYmIGZbJ2NybV9wcm9kdWN0X2lkJ10/LmVycm9ycyB9XCJcbiAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInU2VsZWN0IENSTSBQcm9kdWN0J1wiXG4gICAgICAgICAgICBvcHRpb25WYWx1ZT1cImlkXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJzZWxlY3RlZEl0ZW1cIiBsZXQtaXRlbT5cbiAgICAgICAgICAgICAge3tpdGVtPy5zdWJzY3JpcHRpb25faWQgPyBpdGVtPy5uYW1lICArJyAtIFN1YnNjcmlwdGlvbklEID0gJysgaXRlbS5zdWJzY3JpcHRpb25faWQgOiBpdGVtPy5uYW1lfX1cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiaXRlbVwiIGxldC1pdGVtPlxuICAgICAgICAgICAgICB7e2l0ZW0/LnN1YnNjcmlwdGlvbl9pZCA/IGl0ZW0/Lm5hbWUgICsnIC0gU3Vic2NyaXB0aW9uSUQgPSAnKyBpdGVtLnN1YnNjcmlwdGlvbl9pZCA6IGl0ZW0/Lm5hbWV9fVxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICA8L3AtZHJvcGRvd24+XG4gICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS0zXCI+XG4gICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgW2xhYmVsXT1cIidBZG1pbi5Eb21haW5Db25maWcuQ3JtU291cmNlJyB8IHRyYW5zbG9jb1wiXG4gICAgICAgICAgbmFtZT1cImNybV9zb3VyY2VfaWRcIlxuICAgICAgICAgIFtzaG93VG9vbHRpcF09XCJ0cnVlXCJcbiAgICAgICAgICBbdG9vbHRpcFRleHRdPVwiJ0FkbWluLkRvbWFpbkNvbmZpZy5Ub29sdGlwLkNybVNvdXJjZScgfCB0cmFuc2xvY29cIj5cbiAgICAgICAgICA8cC1kcm9wZG93blxuICAgICAgICAgICAgW29wdGlvbnNdPVwiY3JtU291cmNlc0xpc3RcIlxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiY3JtX3NvdXJjZV9pZFwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdpcy1pbnZhbGlkJzogc3VibWl0dGVkICYmIGZbJ2NybV9zb3VyY2VfaWQnXT8uZXJyb3JzIH1cIlxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidTZWxlY3QgQ1JNIFNvdXJjZSdcIlxuICAgICAgICAgICAgb3B0aW9uVmFsdWU9XCJpZFwiXG4gICAgICAgICAgICBvcHRpb25MYWJlbD1cIm5hbWVcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgIDwvcC1kcm9wZG93bj5cbiAgICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICAgIDwhLS0gY3JtIHN1YnNjcmlwdGlvbiBmaWVsZHMgZW5kLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS0zXCI+XG4gICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgW2xhYmVsXT1cIidBZG1pbi5Eb21haW5Db25maWcuQWN0aXZlJyB8IHRyYW5zbG9jb1wiIFtzaG93VG9vbHRpcF09XCJ0cnVlXCJcbiAgICAgICAgICBbdG9vbHRpcFRleHRdPVwiJ0FkbWluLkRvbWFpbkNvbmZpZy5Ub29sdGlwLkFjdGl2ZScgfCB0cmFuc2xvY29cIiBuYW1lPVwiYWN0aXZlXCI+XG4gICAgICAgICAgPHVpLXN3aXRjaCBzaXplPVwic21hbGxcIiB1bmNoZWNrZWRMYWJlbD1cImZhbHNlXCIgY2hlY2tlZExhYmVsPVwidHJ1ZVwiIGZvcm1Db250cm9sTmFtZT1cImFjdGl2ZVwiIG5hbWU9XCJhY3RpdmVcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnaXMtaW52YWxpZCc6IHN1Ym1pdHRlZCAmJiBmWydhY3RpdmUnXS5lcnJvcnMgfVwiPlxuICAgICAgICAgIDwvdWktc3dpdGNoPlxuICAgICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tM1wiPlxuICAgICAgICA8cHctaW5wdXQtY29udGFpbmVyIFtsYWJlbF09XCInQWRtaW4uRG9tYWluQ29uZmlnLklzUHJvZHVjdERvbWFpbicgfCB0cmFuc2xvY29cIlxuICAgICAgICAgIFtzaG93VG9vbHRpcF09XCJ0cnVlXCJcbiAgICAgICAgICBbdG9vbHRpcFRleHRdPVwiJ0FkbWluLkRvbWFpbkNvbmZpZy5Ub29sdGlwLklzUHJvZHVjdERvbWFpbicgfCB0cmFuc2xvY29cIlxuICAgICAgICAgIG5hbWU9XCJpc19wcm9kdWN0X2RvbWFpblwiPlxuICAgICAgICAgIDx1aS1zd2l0Y2ggc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgIHVuY2hlY2tlZExhYmVsPVwiZmFsc2VcIlxuICAgICAgICAgICAgY2hlY2tlZExhYmVsPVwidHJ1ZVwiXG4gICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJpc19wcm9kdWN0X2RvbWFpblwiXG4gICAgICAgICAgICBuYW1lPVwiaXNfcHJvZHVjdF9kb21haW5cIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnaXMtaW52YWxpZCc6IHN1Ym1pdHRlZCAmJiBmWydpc19wcm9kdWN0X2RvbWFpbiddLmVycm9ycyB9XCI+XG4gICAgICAgICAgPC91aS1zd2l0Y2g+XG4gICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS0zXCI+XG4gICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgW2xhYmVsXT1cIidBZG1pbi5Eb21haW5Db25maWcuQ2FuUmVnaXN0ZXJPbk1haW5QYWdlJyB8IHRyYW5zbG9jb1wiIFtzaG93VG9vbHRpcF09XCJ0cnVlXCJcbiAgICAgICAgICBbdG9vbHRpcFRleHRdPVwiJ0FkbWluLkRvbWFpbkNvbmZpZy5Ub29sdGlwLkNhblJlZ2lzdGVyT25NYWluUGFnZScgfCB0cmFuc2xvY29cIlxuICAgICAgICAgIG5hbWU9XCJjYW5fcmVnaXN0ZXJfdGhyb3VnaF9tYWluX3BhZ2VcIj5cbiAgICAgICAgICA8dWktc3dpdGNoIHNpemU9XCJzbWFsbFwiIHVuY2hlY2tlZExhYmVsPVwiZmFsc2VcIiBjaGVja2VkTGFiZWw9XCJ0cnVlXCIgZm9ybUNvbnRyb2xOYW1lPVwiY2FuX3JlZ2lzdGVyX3Rocm91Z2hfbWFpbl9wYWdlXCJcbiAgICAgICAgICAgIG5hbWU9XCJjYW5fcmVnaXN0ZXJfdGhyb3VnaF9tYWluX3BhZ2VcIiBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2lzLWludmFsaWQnOiBzdWJtaXR0ZWQgJiYgZlsnY2FuX3JlZ2lzdGVyX3Rocm91Z2hfbWFpbl9wYWdlJ10uZXJyb3JzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XCI+XG4gICAgICAgICAgPC91aS1zd2l0Y2g+XG4gICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS0zXCI+XG4gICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgW2xhYmVsXT1cIidBZG1pbi5Eb21haW5Db25maWcuU29jaWFsTG9naW5FbmFibGVkJyB8IHRyYW5zbG9jb1wiIFtzaG93VG9vbHRpcF09XCJ0cnVlXCJcbiAgICAgICAgICBbdG9vbHRpcFRleHRdPVwiJ0FkbWluLkRvbWFpbkNvbmZpZy5Ub29sdGlwLlNvY2lhbExvZ2luRW5hYmxlJyB8IHRyYW5zbG9jb1wiIG5hbWU9XCJzb2NpYWxfbG9naW5fZW5hYmxlZFwiPlxuICAgICAgICAgIDx1aS1zd2l0Y2ggc2l6ZT1cInNtYWxsXCIgdW5jaGVja2VkTGFiZWw9XCJmYWxzZVwiIGNoZWNrZWRMYWJlbD1cInRydWVcIiBmb3JtQ29udHJvbE5hbWU9XCJzb2NpYWxfbG9naW5fZW5hYmxlZFwiXG4gICAgICAgICAgICBuYW1lPVwic29jaWFsX2xvZ2luX2VuYWJsZWRcIiBbbmdDbGFzc109XCJ7ICdpcy1pbnZhbGlkJzogc3VibWl0dGVkICYmIGZbJ3NvY2lhbF9sb2dpbl9lbmFibGVkJ10uZXJyb3JzIH1cIj5cbiAgICAgICAgICA8L3VpLXN3aXRjaD5cbiAgICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLTNcIj5cbiAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBbbGFiZWxdPVwiJ0FkbWluLkRvbWFpbkNvbmZpZy5Ob3RpZnlMb2dpbnMnIHwgdHJhbnNsb2NvXCIgW3Nob3dUb29sdGlwXT1cInRydWVcIlxuICAgICAgICAgIFt0b29sdGlwVGV4dF09XCInQWRtaW4uRG9tYWluQ29uZmlnLlRvb2x0aXAuTm90aWZ5TG9naW5zJyB8IHRyYW5zbG9jb1wiIG5hbWU9XCJub3RpZnlfbG9naW5zXCI+XG4gICAgICAgICAgPHVpLXN3aXRjaCBzaXplPVwic21hbGxcIiB1bmNoZWNrZWRMYWJlbD1cImZhbHNlXCIgY2hlY2tlZExhYmVsPVwidHJ1ZVwiIGZvcm1Db250cm9sTmFtZT1cIm5vdGlmeV9sb2dpbnNcIlxuICAgICAgICAgICAgbmFtZT1cIm5vdGlmeV9sb2dpbnNcIiBbbmdDbGFzc109XCJ7ICdpcy1pbnZhbGlkJzogc3VibWl0dGVkICYmIGZbJ25vdGlmeV9sb2dpbnMnXS5lcnJvcnMgfVwiPlxuICAgICAgICAgIDwvdWktc3dpdGNoPlxuICAgICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cIm15LTVcIj5cbiAgICAgIDxoMz5QcmUtQnVpbHQgUGFnZXMgQ29uZmlnIChSZXNvdXJjZXMsIExhbmRpbmcgUGFnZXMsIGV0Yyk8L2gzPlxuXG4gICAgICA8cC1hY2NvcmRpb24gY2xhc3M9XCJtdC01XCI+XG4gICAgICAgIDxwLWFjY29yZGlvblRhYiBbaGVhZGVyXT1cIidJbnN0cnVjdGlvbnMgLSBSRUFETUUgRklSU1QnXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cbiAgICAgICAgICAgIDxwPldl4oCZdmUgYnVpbHQgYW5kIG1haW50YWluIGEgY29sbGVjdGlvbiBvZiBoaWdoLWNvbnZlcnRpbmcgbGFuZGluZyBwYWdlcyBkZXNpZ25lZCB0byBoZWxwIHlvdSBxdWlja2x5IGxhdW5jaCBwb2xpc2hlZFxuICAgICAgICAgICAgICBVSXMgZm9yIG9uYm9hcmRpbmcgdXNlcnMuPC9wPlxuICAgICAgICAgICAgPHA+PHN0cm9uZz5OZXdzbGV0dGVyIFN1YnNjcmlwdGlvbiBQYWdlczo8L3N0cm9uZz48YnI+IEFmdGVyIGNvbmZpZ3VyaW5nIHlvdXIgZG9tYWluLCB5b3UgY2FuIGFjY2VzcyBwYWdlcyBsaWtlXG4gICAgICAgICAgICAgIDxzdHJvbmc+L2pvaW4vY3MxLCAvam9pbi9jczIsIC9qb2luL2NzMywgZXRjLjwvc3Ryb25nPiwgc3BlY2lmaWNhbGx5IGRlc2lnbmVkIGZvciBuZXdzbGV0dGVyIHNpZ24tdXBzLiA8YnI+XG4gICAgICAgICAgICAgIFN1YnNjcmliZXJzIGZyb20gdGhlc2UgcGFnZXMgd2lsbCBiZSBsaXN0ZWQgaW4gdGhlIDxzdHJvbmc+U21hcnRDUk0gbW9kdWxlPC9zdHJvbmc+LjwvcD5cbiAgICAgICAgICAgIDxwPjxzdHJvbmc+VHJpYWwgUHJvZHVjdCBTaWduLVVwIFBhZ2VzOjwvc3Ryb25nPjxicj4gRm9yIHVzZXJzIGludGVyZXN0ZWQgaW4gdHJpYWwgcHJvZHVjdHMsIHV0aWxpemUgcGFnZXMgc3VjaCBhc1xuICAgICAgICAgICAgICA8c3Ryb25nPi9qb2luL3RyaWFsMSwgL2pvaW4vdHJpYWwyLCAvam9pbi90cmlhbDMsIGV0Yy48L3N0cm9uZz4uPGJyPiBVc2VycyByZWdpc3RlcmluZyB0aHJvdWdoIHRoZXNlIHBhZ2VzIHdpbGxcbiAgICAgICAgICAgICAgYXBwZWFyIGluIHRoZSA8c3Ryb25nPkFkbWluID4gVXNlcnMgc2VjdGlvbjwvc3Ryb25nPi48L3A+XG4gICAgICAgICAgICA8cD5PbmNlIHlvdeKAmXZlIHNlbGVjdGVkIHRoZSBsYW5kaW5nIHBhZ2UgeW91IHdhbnQgdG8gdXNlIDxzdHJvbmc+KGUuZy4sIC9qb2luL3RyaWFsMyk8L3N0cm9uZz4sIG1ha2Ugc3VyZSB0byB1cGRhdGVcbiAgICAgICAgICAgICAgdGhlIDxzdHJvbmc+SW50ZXJuYWwgUGF0aDwvc3Ryb25nPiBpbiB0aGUgPHN0cm9uZz5Db3JlIHRhYjwvc3Ryb25nPiBhY2NvcmRpbmdseeKAlGkuZS4sIHNldCBpdCB0b1xuICAgICAgICAgICAgICA8c3Ryb25nPi9qb2luL3RyaWFsMzwvc3Ryb25nPi48L3A+XG4gICAgICAgICAgICA8cD5JZiB5b3UgbmVlZCBhc3Npc3RhbmNlIGludGVncmF0aW5nIHRoZXNlIHBhZ2VzIGludG8geW91ciB3b3JrZmxvdyBvciBoYXZlIGZ1cnRoZXIgcXVlc3Rpb25zLCBmZWVsIGZyZWUgdG8gcmVhY2hcbiAgICAgICAgICAgICAgb3V0LjwvcD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9wLWFjY29yZGlvblRhYj5cblxuICAgICAgICA8cC1hY2NvcmRpb25UYWIgW2hlYWRlcl09XCInU3Vic2NyaWJlIHRvIFByb2R1Y3QvTmV3c2xldHRlciBDb25maWcnXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cbiAgICAgICAgICAgIDxwPlRyaWFsIFBhZ2VzIHdpbGwgZW5hYmxlIHVzZXJzIHRvIHNpZ24gdXAgdG8gcmVhbCBwcm9kdWN0cyBhbmQgYXJlIGFjY2Vzc2libGUgYXQgdGhlIHBhdGggL2pvaW4vdHJpYWwxLFxuICAgICAgICAgICAgICAvam9pbi90cmlhbDIsIGV0Yy48L3A+XG4gICAgICAgICAgICA8cD5Db21pbmdTb29uIFBhZ2VzIHdpbGwgZW5hYmxlIHVzZXJzIHRvIHN1YnNjcmliZSB0byBOZXdzbGV0dGVycyBhbmQgYXJlIGFjY2Vzc2libGUgYXQgdGhlIGludGVybmFsIHBhdGhzXG4gICAgICAgICAgICAgIC9qb2luL2NzMSwgL2pvaW4vY3MyLCBldGMuPC9wPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwhLS0gbGl2ZSBwYWdlIGxpbmsgLS0+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtZW5kXCIgKm5nSWY9XCJzaGFyZFVybFwiPlxuICAgICAgICAgICAgPHNwYW4+U2VlIHRoZSBsaXZlIHBhZ2UgPHNwYW4gY2xhc3M9XCJ0b29sdGlwLXdyYXAgbXMtMVwiIFthcHBlbmRUb109XCInYm9keSdcIlxuICAgICAgICAgICAgICAgIFtwVG9vbHRpcF09XCInQWRtaW4uRG9tYWluQ29uZmlnLlRvb2x0aXAuU2VlTGl2ZVRyaWFsJyB8IHRyYW5zbG9jb1wiIHRvb2x0aXBQb3NpdGlvbj1cInRvcFwiPlxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLWluZm8tY2lyY2xlXCI+PC9pPlxuICAgICAgICAgICAgICA8L3NwYW4+IDogPGEgW2hyZWZdPVwic2hhcmRVcmwgKyAnL2pvaW4vdHJpYWwxJ1wiIHRhcmdldD1cIl9ibGFua1wiPnt7IHNoYXJkVXJsIH19L2pvaW4vdHJpYWwxPC9hPjwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLTNcIj5cbiAgICAgICAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBbbGFiZWxdPVwiJ0FkbWluLkRvbWFpbkNvbmZpZy5UcmlhbFByb2R1Y3QnIHwgdHJhbnNsb2NvXCIgW3Nob3dUb29sdGlwXT1cInRydWVcIlxuICAgICAgICAgICAgICAgIFt0b29sdGlwVGV4dF09XCInQWRtaW4uRG9tYWluQ29uZmlnLlRvb2x0aXAuVHJpYWxQcm9kdWN0JyB8IHRyYW5zbG9jb1wiIG5hbWU9XCJ0cmlhbF9wcm9kdWN0X2lkXCI+XG4gICAgICAgICAgICAgICAgPHAtYXV0b0NvbXBsZXRlIFtzdWdnZXN0aW9uc109XCJwcm9kdWN0c0xpc3RcIiBmb3JtQ29udHJvbE5hbWU9XCJ0cmlhbF9wcm9kdWN0X2lkXCIgZGF0YUtleT1cImlkXCIgZmllbGQ9XCJuYW1lXCJcbiAgICAgICAgICAgICAgICAgIFtkcm9wZG93bl09XCJ0cnVlXCIgW2RlbGF5XT1cIjEwMDBcIiAoY29tcGxldGVNZXRob2QpPVwic2VhcmNoUHJvZHVjdCgkZXZlbnQpXCIgc3R5bGVDbGFzcz1cInctMTAwXCJcbiAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiU2VhcmNoIFByb2R1Y3RcIiBbaW5wdXRTdHlsZV09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybS5nZXQoJ3RyaWFsX3Byb2R1Y3RfaWQnKS50b3VjaGVkICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm0uZ2V0KCd0cmlhbF9wcm9kdWN0X2lkJykuaW52YWxpZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB7IGJvcmRlcjogJzFweCBzb2xpZCAjZmY1ODZiJyB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHsgYm9yZGVyOiAnMXB4IHNvbGlkIGdyYXknIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIiBbbXVsdGlwbGVdPVwiZmFsc2VcIj5cbiAgICAgICAgICAgICAgICA8L3AtYXV0b0NvbXBsZXRlPlxuICAgICAgICAgICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tM1wiPlxuICAgICAgICAgICAgICA8cHctaW5wdXQtY29udGFpbmVyIFtsYWJlbF09XCInQWRtaW4uRG9tYWluQ29uZmlnLlRyaWFsQ3JtU291cmNlSWQnIHwgdHJhbnNsb2NvXCIgbmFtZT1cInRyaWFsX2NybV9zb3VyY2VfaWRcIlxuICAgICAgICAgICAgICAgIFtzaG93VG9vbHRpcF09XCJ0cnVlXCIgW3Rvb2x0aXBUZXh0XT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdBZG1pbi5Eb21haW5Db25maWcuVG9vbHRpcC5UcmlhbENybVNvdXJjZUlkJyB8IHRyYW5zbG9jb1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI+XG4gICAgICAgICAgICAgICAgPHAtZHJvcGRvd24gW29wdGlvbnNdPVwiY3JtU291cmNlc0xpc3RcIiBmb3JtQ29udHJvbE5hbWU9XCJ0cmlhbF9jcm1fc291cmNlX2lkXCJcbiAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2lzLWludmFsaWQnOiBzdWJtaXR0ZWQgJiYgZlsndHJpYWxfY3JtX3NvdXJjZV9pZCddPy5lcnJvcnMgfVwiXG4gICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ1NlbGVjdCBDUk0gU291cmNlJ1wiIG9wdGlvblZhbHVlPVwiaWRcIiBvcHRpb25MYWJlbD1cIm5hbWVcIj5cbiAgICAgICAgICAgICAgICA8L3AtZHJvcGRvd24+XG4gICAgICAgICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS0zXCI+XG4gICAgICAgICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgW2xhYmVsXT1cIidBZG1pbi5Eb21haW5Db25maWcuVHJpYWxQZGZTb3VyY2VJZCcgfCB0cmFuc2xvY29cIiBuYW1lPVwidHJpYWxfcGRmX3NvdXJjZV9pZFwiXG4gICAgICAgICAgICAgICAgW3Nob3dUb29sdGlwXT1cInRydWVcIiBbdG9vbHRpcFRleHRdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0FkbWluLkRvbWFpbkNvbmZpZy5Ub29sdGlwLlRyaWFsUGRmU291cmNlSWQnIHwgdHJhbnNsb2NvXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIj5cbiAgICAgICAgICAgICAgICA8cC1kcm9wZG93biBbb3B0aW9uc109XCJjcm1Tb3VyY2VzTGlzdFwiIGZvcm1Db250cm9sTmFtZT1cInRyaWFsX3BkZl9zb3VyY2VfaWRcIlxuICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnaXMtaW52YWxpZCc6IHN1Ym1pdHRlZCAmJiBmWyd0cmlhbF9wZGZfc291cmNlX2lkJ10/LmVycm9ycyB9XCJcbiAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInU2VsZWN0IENSTSBTb3VyY2UnXCIgb3B0aW9uVmFsdWU9XCJpZFwiIG9wdGlvbkxhYmVsPVwibmFtZVwiPlxuICAgICAgICAgICAgICAgIDwvcC1kcm9wZG93bj5cbiAgICAgICAgICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLTNcIj48L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLTNcIj5cbiAgICAgICAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBbbGFiZWxdPVwiJ0FkbWluLkRvbWFpbkNvbmZpZy5UcmlhbFZpZGVvVXJsJyB8IHRyYW5zbG9jb1wiIG5hbWU9XCJ0cmlhbF92aWRlb191cmxcIlxuICAgICAgICAgICAgICAgIFtzaG93VG9vbHRpcF09XCJ0cnVlXCIgW3Rvb2x0aXBUZXh0XT1cIidBZG1pbi5Eb21haW5Db25maWcuVG9vbHRpcC5UcmlhbFZpZGVvVXJsJyB8IHRyYW5zbG9jb1wiPlxuICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgZm9ybUNvbnRyb2xOYW1lPVwidHJpYWxfdmlkZW9fdXJsXCJcbiAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2lzLWludmFsaWQnOiBzdWJtaXR0ZWQgJiYgZlsndHJpYWxfdmlkZW9fdXJsJ10uZXJyb3JzIH1cIiAvPlxuICAgICAgICAgICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tM1wiPlxuICAgICAgICAgICAgICA8cHctaW5wdXQtY29udGFpbmVyIFtsYWJlbF09XCInQWRtaW4uRG9tYWluQ29uZmlnLlRyaWFsQm9va0RlbW9VcmwnIHwgdHJhbnNsb2NvXCIgbmFtZT1cInRyaWFsX2Jvb2tfZGVtb191cmxcIlxuICAgICAgICAgICAgICAgIFtzaG93VG9vbHRpcF09XCJ0cnVlXCIgW3Rvb2x0aXBUZXh0XT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdBZG1pbi5Eb21haW5Db25maWcuVG9vbHRpcC5UcmlhbEJvb2tEZW1vVXJsJyB8IHRyYW5zbG9jb1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI+XG4gICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJ0cmlhbF9ib29rX2RlbW9fdXJsXCIgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaXMtaW52YWxpZCc6IHN1Ym1pdHRlZCAmJiBmWyd0cmlhbF9ib29rX2RlbW9fdXJsJ10uZXJyb3JzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVwiIC8+XG4gICAgICAgICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyXCI+XG4gICAgICAgICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgW2xhYmVsXT1cIidBZG1pbi5Eb21haW5Db25maWcuVHJpYWxDdGFJZnJhbWUnIHwgdHJhbnNsb2NvXCIgbmFtZT1cInRyaWFsX2N0YV9pZnJhbWVcIlxuICAgICAgICAgICAgICAgIFtzaG93VG9vbHRpcF09XCJ0cnVlXCIgW3Rvb2x0aXBUZXh0XT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdBZG1pbi5Eb21haW5Db25maWcuVG9vbHRpcC5UcmlhbEN0YUlmcmFtZScgfCB0cmFuc2xvY29cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiPlxuICAgICAgICAgICAgICAgIDx0ZXh0YXJlYSByb3dzPVwiM1wiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgZm9ybUNvbnRyb2xOYW1lPVwidHJpYWxfY3RhX2lmcmFtZVwiIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2lzLWludmFsaWQnOiBzdWJtaXR0ZWQgJiYgZlsndHJpYWxfY3RhX2lmcmFtZSddLmVycm9yc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dGFyZWE+XG4gICAgICAgICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyXCI+XG4gICAgICAgICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgW2xhYmVsXT1cIidBZG1pbi5Eb21haW5Db25maWcuVHJpYWxKb2luTWVzc2FnZScgfCB0cmFuc2xvY29cIiBuYW1lPVwidHJpYWxfam9pbl9tZXNzYWdlXCJcbiAgICAgICAgICAgICAgICBbc2hvd1Rvb2x0aXBdPVwidHJ1ZVwiIFt0b29sdGlwVGV4dF09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnQWRtaW4uRG9tYWluQ29uZmlnLlRvb2x0aXAuVHJpYWxKb2luTWVzc2FnZScgfCB0cmFuc2xvY29cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiPlxuICAgICAgICAgICAgICAgIDx0ZXh0YXJlYSByb3dzPVwiM1wiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgZm9ybUNvbnRyb2xOYW1lPVwidHJpYWxfam9pbl9tZXNzYWdlXCIgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaXMtaW52YWxpZCc6IHN1Ym1pdHRlZCAmJiBmWyd0cmlhbF9qb2luX21lc3NhZ2UnXS5lcnJvcnNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RleHRhcmVhPlxuICAgICAgICAgICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMlwiPlxuICAgICAgICAgICAgICA8cHctaW5wdXQtY29udGFpbmVyIFtsYWJlbF09XCInQWRtaW4uRG9tYWluQ29uZmlnLlRyaWFsUGRmRG93bmxvYWRUZXh0JyB8IHRyYW5zbG9jb1wiIG5hbWU9XCJ0cmlhbF9wZGZfZG93bmxvYWRfdGV4dFwiXG4gICAgICAgICAgICAgICAgW3Nob3dUb29sdGlwXT1cInRydWVcIiBbdG9vbHRpcFRleHRdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0FkbWluLkRvbWFpbkNvbmZpZy5Ub29sdGlwLlRyaWFsUGRmRG93bmxvYWRUZXh0JyB8IHRyYW5zbG9jb1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI+XG4gICAgICAgICAgICAgICAgPHRleHRhcmVhIHJvd3M9XCIzXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJ0cmlhbF9wZGZfZG93bmxvYWRfdGV4dFwiIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2lzLWludmFsaWQnOiBzdWJtaXR0ZWQgJiYgZlsndHJpYWxfcGRmX2Rvd25sb2FkX3RleHQnXS5lcnJvcnNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RleHRhcmVhPlxuICAgICAgICAgICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIiBtYXRjaEhlaWdodD1cImNhcmRcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNFwiPlxuICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwidHJpYWxfaW1hZ2VcIj57eyAnQWRtaW4uRG9tYWluQ29uZmlnLlRyaWFsSW1hZ2UnIHwgdHJhbnNsb2NvIH19IDxzcGFuIGNsYXNzPVwiaW5mby1jaXJjbGVcIj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidG9vbHRpcHRleHQgZ3JhZGllbnQtY3VzdG9tLWJyYW5kaW5nXCI+e3sgJ0FkbWluLkRvbWFpbkNvbmZpZy5Ub29sdGlwLlRyaWFsSW1hZ2UnIHwgdHJhbnNsb2NvXG4gICAgICAgICAgICAgICAgICAgIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgPHB3LWN1c3RvbS11cGxvYWRlciAoc2F2ZUV2ZW50KT1cIm9uU2F2ZUZpbGUoJGV2ZW50KVwiIFthc3BlY3RSYXRpb109XCInY3VzdG9tJ1wiIFt0aXRsZV09XCInVHJpYWwgSW1hZ2UnXCJcbiAgICAgICAgICAgICAgICBbY29udHJvbE5hbWVdPVwiJ3RyaWFsX2ltYWdlJ1wiIFtwcmV2aWV3RGF0YV09XCJkYXRhWyd0cmlhbF9pbWFnZSddXCI+XG4gICAgICAgICAgICAgIDwvcHctY3VzdG9tLXVwbG9hZGVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTRcIj5cbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInRyaWFsX2ltYWdlMlwiPnt7ICdBZG1pbi5Eb21haW5Db25maWcuVHJpYWxJbWFnZTInIHwgdHJhbnNsb2NvIH19IDxzcGFuIGNsYXNzPVwiaW5mby1jaXJjbGVcIj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidG9vbHRpcHRleHQgZ3JhZGllbnQtY3VzdG9tLWJyYW5kaW5nXCI+e3sgJ0FkbWluLkRvbWFpbkNvbmZpZy5Ub29sdGlwLlRyaWFsSW1hZ2UyJyB8IHRyYW5zbG9jb1xuICAgICAgICAgICAgICAgICAgICB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgIDxwdy1jdXN0b20tdXBsb2FkZXIgKHNhdmVFdmVudCk9XCJvblNhdmVGaWxlKCRldmVudClcIiBbdGl0bGVdPVwiJ1RyaWFsIEltYWdlMidcIiBbYXNwZWN0UmF0aW9dPVwiJ2N1c3RvbSdcIlxuICAgICAgICAgICAgICAgIFtjb250cm9sTmFtZV09XCIndHJpYWxfaW1hZ2UyJ1wiIFtwcmV2aWV3RGF0YV09XCJkYXRhWyd0cmlhbF9pbWFnZTInXVwiPlxuICAgICAgICAgICAgICA8L3B3LWN1c3RvbS11cGxvYWRlcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC00XCI+XG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJ0cmlhbF9wZGZfaW1hZ2VcIj57eyAnQWRtaW4uRG9tYWluQ29uZmlnLlRyaWFsUGRmSW1hZ2UnIHwgdHJhbnNsb2NvIH19IDxzcGFuIGNsYXNzPVwiaW5mby1jaXJjbGVcIj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidG9vbHRpcHRleHQgZ3JhZGllbnQtY3VzdG9tLWJyYW5kaW5nXCI+e3sgJ0FkbWluLkRvbWFpbkNvbmZpZy5Ub29sdGlwLlRyaWFsUGRmSW1hZ2UnIHwgdHJhbnNsb2NvXG4gICAgICAgICAgICAgICAgICAgIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgPHB3LWN1c3RvbS11cGxvYWRlciAoc2F2ZUV2ZW50KT1cIm9uU2F2ZUZpbGUoJGV2ZW50KVwiIFt0aXRsZV09XCInVHJpYWwgUGRmIEltYWdlJ1wiIFthc3BlY3RSYXRpb109XCInY3VzdG9tJ1wiXG4gICAgICAgICAgICAgICAgW2NvbnRyb2xOYW1lXT1cIid0cmlhbF9wZGZfaW1hZ2UnXCIgW3ByZXZpZXdEYXRhXT1cImRhdGFbJ3RyaWFsX3BkZl9pbWFnZSddXCI+XG4gICAgICAgICAgICAgIDwvcHctY3VzdG9tLXVwbG9hZGVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTRcIj5cbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInRyaWFsX2ltYWdlX2JnXCI+e3sgJ0FkbWluLkRvbWFpbkNvbmZpZy5UcmlhbEltYWdlQmcnIHwgdHJhbnNsb2NvIH19IDxzcGFuIGNsYXNzPVwiaW5mby1jaXJjbGVcIj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidG9vbHRpcHRleHQgZ3JhZGllbnQtY3VzdG9tLWJyYW5kaW5nXCI+e3sgJ0FkbWluLkRvbWFpbkNvbmZpZy5Ub29sdGlwLlRyaWFsSW1hZ2VCZycgfCB0cmFuc2xvY29cbiAgICAgICAgICAgICAgICAgICAgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICA8cHctY3VzdG9tLXVwbG9hZGVyIChzYXZlRXZlbnQpPVwib25TYXZlRmlsZSgkZXZlbnQpXCIgW3RpdGxlXT1cIidUcmlhbCBJbWFnZSBCZydcIiBbYXNwZWN0UmF0aW9dPVwiJ2N1c3RvbSdcIlxuICAgICAgICAgICAgICAgIFtjb250cm9sTmFtZV09XCIndHJpYWxfaW1hZ2VfYmcnXCIgW3ByZXZpZXdEYXRhXT1cImRhdGFbJ3RyaWFsX2ltYWdlX2JnJ11cIj5cbiAgICAgICAgICAgICAgPC9wdy1jdXN0b20tdXBsb2FkZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNFwiPlxuICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwidHJpYWxfaW1hZ2VfYmcyXCI+e3sgJ0FkbWluLkRvbWFpbkNvbmZpZy5UcmlhbEltYWdlQmcyJyB8IHRyYW5zbG9jbyB9fSA8c3BhbiBjbGFzcz1cImluZm8tY2lyY2xlXCI+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRvb2x0aXB0ZXh0IGdyYWRpZW50LWN1c3RvbS1icmFuZGluZ1wiPnt7ICdBZG1pbi5Eb21haW5Db25maWcuVG9vbHRpcC5UcmlhbEltYWdlQmcyJyB8IHRyYW5zbG9jb1xuICAgICAgICAgICAgICAgICAgICB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgIDxwdy1jdXN0b20tdXBsb2FkZXIgKHNhdmVFdmVudCk9XCJvblNhdmVGaWxlKCRldmVudClcIiBbdGl0bGVdPVwiJ1RyaWFsIEltYWdlIEJnMidcIiBbYXNwZWN0UmF0aW9dPVwiJ2N1c3RvbSdcIlxuICAgICAgICAgICAgICAgIFtjb250cm9sTmFtZV09XCIndHJpYWxfaW1hZ2VfYmcyJ1wiIFtwcmV2aWV3RGF0YV09XCJkYXRhWyd0cmlhbF9pbWFnZV9iZzInXVwiPlxuICAgICAgICAgICAgICA8L3B3LWN1c3RvbS11cGxvYWRlcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3AtYWNjb3JkaW9uVGFiPlxuXG4gICAgICAgIDxwLWFjY29yZGlvblRhYiBbaGVhZGVyXT1cIidIZWFkZXIgU2VjdGlvbidcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IG10LTRcIiBmb3JtR3JvdXBOYW1lPVwiaGVhZGVyXCI+XG4gICAgICAgICAgICA8aDQgY2xhc3M9XCJtYi00XCI+SGVhZGVyIFNlY3Rpb248L2g0PlxuXG4gICAgICAgICAgICA8IS0tIEhlYWRsaW5lIC0tPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtbWQtMTJcIj5cbiAgICAgICAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBsYWJlbD1cIkhlYWRlciBIZWFkbGluZVwiIG5hbWU9XCJoZWFkbGluZVwiPlxuICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgZm9ybUNvbnRyb2xOYW1lPVwiaGVhZGxpbmVcIiAvPlxuICAgICAgICAgICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8IS0tIFZpZGVvIFVSTCAtLT5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLW1kLTZcIj5cbiAgICAgICAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBsYWJlbD1cIkhlYWRlciBWaWRlbyBVUkxcIiBuYW1lPVwidmlkZW9fdXJsXCI+XG4gICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJ2aWRlb191cmxcIiAvPlxuICAgICAgICAgICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8IS0tIEJhY2tncm91bmQgSW1hZ2UgVVJMIC0tPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtbWQtNlwiPlxuICAgICAgICAgICAgICA8cHctaW5wdXQtY29udGFpbmVyIGxhYmVsPVwiSGVhZGVyIEJhY2tncm91bmQgSW1hZ2UgVVJMXCIgbmFtZT1cImJnX2ltYWdlX3VybFwiPlxuICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgZm9ybUNvbnRyb2xOYW1lPVwiYmdfaW1hZ2VfdXJsXCIgLz5cbiAgICAgICAgICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPCEtLSBEZXNjcmlwdGlvbiAtLT5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTJcIj5cbiAgICAgICAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBsYWJlbD1cIkhlYWRlciBEZXNjcmlwdGlvblwiPlxuICAgICAgICAgICAgICAgIDx0ZXh0YXJlYVxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICAgICAgICAgcm93cz1cIjVcIlxuICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnaXMtaW52YWxpZCc6IHN1Ym1pdHRlZCAmJiBmWydkZXNjcmlwdGlvbiddPy5lcnJvcnMgfVwiXG4gICAgICAgICAgICAgICAgPjwvdGV4dGFyZWE+XG4gICAgICAgICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDwhLS0gU3ViIEhlYWRpbmdzIC0tPlxuICAgICAgICAgICAgPGRpdiBmb3JtQXJyYXlOYW1lPVwic3ViX2hlYWRpbmdzXCIgY2xhc3M9XCJjb2wtMTJcIiBjZGtEcm9wTGlzdCAoY2RrRHJvcExpc3REcm9wcGVkKT1cImRyb3BJdGVtcyhoZWFkZXJTdWJIZWFkaW5ncywgJGV2ZW50KVwiPlxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IHN1YiBvZiBmWydoZWFkZXInXS5nZXQoJ3N1Yl9oZWFkaW5ncycpWydjb250cm9scyddOyBsZXQgaSA9IGluZGV4XCJcbiAgICAgICAgICAgICAgICBbZm9ybUdyb3VwTmFtZV09XCJpXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInJvdyBtYi0zIGFsaWduLWl0ZW1zLWNlbnRlclwiXG4gICAgICAgICAgICAgICAgY2RrRHJhZ1xuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMFwiPlxuICAgICAgICAgICAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBsYWJlbD1cIlN1YiBIZWFkZXIgRGVzY3JpcHRpb25cIj5cbiAgICAgICAgICAgICAgICAgICAgPHRleHRhcmVhXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICAgICAgICAgICAgIHJvd3M9XCIzXCJcbiAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJkZXNjcmlwdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnaXMtaW52YWxpZCc6IHN1Ym1pdHRlZCAmJiBmWydkZXNjcmlwdGlvbiddPy5lcnJvcnMgfVwiXG4gICAgICAgICAgICAgICAgICAgID48L3RleHRhcmVhPlxuICAgICAgICAgICAgICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEgZC1mbGV4IGp1c3RpZnktY29udGVudC1lbmQgbXQtM1wiPlxuICAgICAgICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmYSBmYS10cmFzaCBkZWxldGUtaWNvbiB0ZXh0LWRhbmdlclwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJyZW1vdmVIZWFkZXJTdWJIZWFkaW5nKGkpXCJcbiAgICAgICAgICAgICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwicmVtb3ZlSGVhZGVyU3ViSGVhZGluZyhpKVwiXG4gICAgICAgICAgICAgICAgICAgIChrZXlkb3duLnNwYWNlKT1cInJlbW92ZUhlYWRlclN1YkhlYWRpbmcoaSlcIlxuICAgICAgICAgICAgICAgICAgICBuZ2JUb29sdGlwPVwiUmVtb3ZlXCJcbiAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgID48L2k+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEgZC1mbGV4IGp1c3RpZnktY29udGVudC1lbmQgbXQtM1wiPlxuICAgICAgICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmYSBmYS1iYXJzIGN1cnNvci1tb3ZlXCJcbiAgICAgICAgICAgICAgICAgICAgY2RrRHJhZ0hhbmRsZVxuICAgICAgICAgICAgICAgICAgICBuZ2JUb29sdGlwPVwiRHJhZyB0byByZW9yZGVyXCJcbiAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgID48L2k+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IG10LTIgbWItMlwiIChjbGljayk9XCJhZGRIZWFkZXJTdWJIZWFkaW5nKClcIj5cbiAgICAgICAgICAgICAgICArIEFkZCBTdWIgSGVhZGluZ1xuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3AtYWNjb3JkaW9uVGFiPlxuXG5cbiAgICAgICAgPHAtYWNjb3JkaW9uVGFiIFtoZWFkZXJdPVwiJ1Jlc291cmNlcyBTZWN0aW9uJ1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgcm93IG10LTQgbWItNFwiPlxuICAgICAgICAgICAgPGg0IGNsYXNzPVwibWItM1wiPlJlc291cmNlcyBTZWN0aW9uPC9oND5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLTZcIj5cbiAgICAgICAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBbbGFiZWxdPVwiJ0FkbWluLkRvbWFpbkNvbmZpZy5SZXNvdXJjZVRhZ2xpbmUnIHwgdHJhbnNsb2NvXCIgbmFtZT1cInJlc291cmNlc190YWdsaW5lXCJcbiAgICAgICAgICAgICAgICBbc2hvd1Rvb2x0aXBdPVwidHJ1ZVwiIFt0b29sdGlwVGV4dF09XCInQWRtaW4uRG9tYWluQ29uZmlnLlRvb2x0aXAuUmVzb3VyY2VUYWdsaW5lJyB8IHRyYW5zbG9jb1wiPlxuICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgZm9ybUNvbnRyb2xOYW1lPVwicmVzb3VyY2VzX3RhZ2xpbmVcIlxuICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnaXMtaW52YWxpZCc6IHN1Ym1pdHRlZCAmJiBmWydyZXNvdXJjZXNfdGFnbGluZSddLmVycm9ycyB9XCIgLz5cbiAgICAgICAgICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTJcIj5cbiAgICAgICAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBbbGFiZWxdPVwiJ0FkbWluLkRvbWFpbkNvbmZpZy5SZXNvdXJjZURlc2NyaXB0aW9uJyB8IHRyYW5zbG9jb1wiIG5hbWU9XCJyZXNvdXJjZXNfZGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgICAgIFtzaG93VG9vbHRpcF09XCJ0cnVlXCIgW3Rvb2x0aXBUZXh0XT1cIidBZG1pbi5Eb21haW5Db25maWcuVG9vbHRpcC5SZXNvdXJjZURlc2NyaXB0aW9uJyB8IHRyYW5zbG9jb1wiPlxuICAgICAgICAgICAgICAgIDx0ZXh0YXJlYSBjbGFzcz1cImZvcm0tY29udHJvbFwiIHJvd3M9XCIzXCIgZm9ybUNvbnRyb2xOYW1lPVwicmVzb3VyY2VzX2Rlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2lzLWludmFsaWQnOiBzdWJtaXR0ZWQgJiYgZlsncmVzb3VyY2VzX2Rlc2NyaXB0aW9uJ10uZXJyb3JzIH1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dGFyZWE+XG4gICAgICAgICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiIG1hdGNoSGVpZ2h0PVwiY2FyZFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC00XCI+XG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJyZXNvdXJjZV9pbWFnZVwiPnt7ICdBZG1pbi5Eb21haW5Db25maWcuUmVzb3VyY2VJbWFnZScgfCB0cmFuc2xvY28gfX0gPHNwYW4gY2xhc3M9XCJpbmZvLWNpcmNsZVwiPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0b29sdGlwdGV4dCBncmFkaWVudC1jdXN0b20tYnJhbmRpbmdcIj57eyAnQWRtaW4uRG9tYWluQ29uZmlnLlRvb2x0aXAuUmVzb3VyY2VJbWFnZScgfCB0cmFuc2xvY29cbiAgICAgICAgICAgICAgICAgICAgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICA8cHctY3VzdG9tLXVwbG9hZGVyIChzYXZlRXZlbnQpPVwib25TYXZlRmlsZSgkZXZlbnQpXCIgW2FzcGVjdFJhdGlvXT1cIidjdXN0b20nXCIgW3RpdGxlXT1cIidDcyBJbWFnZSdcIlxuICAgICAgICAgICAgICAgIFtjb250cm9sTmFtZV09XCIncmVzb3VyY2VzX2ltYWdlJ1wiIFtwcmV2aWV3RGF0YV09XCJkYXRhWydyZXNvdXJjZXNfaW1hZ2UnXVwiPlxuICAgICAgICAgICAgICA8L3B3LWN1c3RvbS11cGxvYWRlcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3AtYWNjb3JkaW9uVGFiPlxuXG4gICAgICAgIDxwLWFjY29yZGlvblRhYiBbaGVhZGVyXT1cIidVbmlxdWUgU2VsbGluZyBQcm9wb3NpdGlvbiBTZWN0aW9uIChVU1ApICdcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IG10LTQgbWItNFwiIGZvcm1Hcm91cE5hbWU9XCJ1c3BzXCI+XG4gICAgICAgICAgICA8aDQgY2xhc3M9XCJtYi00XCI+VW5pcXVlIFNlbGxpbmcgUHJvcG9zaXRpb24gU2VjdGlvbiAoVVNQKTwvaDQ+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLW1kLTZcIj5cbiAgICAgICAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBsYWJlbD1cIlVTUHMgVGl0bGVcIiBuYW1lPVwidGl0bGVcIj5cbiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cInRpdGxlXCIgLz5cbiAgICAgICAgICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtbWQtNlwiPlxuICAgICAgICAgICAgICA8cHctaW5wdXQtY29udGFpbmVyIGxhYmVsPVwiVVNQcyBWaWRlbyBVcmxcIiBuYW1lPVwidmlkZW9fdXJsXCI+XG4gICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJ2aWRlb191cmxcIiAvPlxuICAgICAgICAgICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyXCI+XG4gICAgICAgICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgbGFiZWw9XCJVU1BzIERlc2NyaXB0aW9uXCIgbmFtZT1cImRlc2NyaXB0aW9uXCI+XG4gICAgICAgICAgICAgICAgPHRleHRhcmVhIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgcm93cz1cIjNcIiBmb3JtQ29udHJvbE5hbWU9XCJkZXNjcmlwdGlvblwiPjwvdGV4dGFyZWE+XG4gICAgICAgICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDwhLS0gVVNQIEl0ZW1zIC0tPlxuICAgICAgICAgICAgPGRpdiBmb3JtQXJyYXlOYW1lPVwiaXRlbXNcIiBjbGFzcz1cImNvbC0xMlwiIGNka0Ryb3BMaXN0IChjZGtEcm9wTGlzdERyb3BwZWQpPVwiZHJvcEl0ZW1zKHVzcHNJdGVtcywgJGV2ZW50KVwiPlxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZlsndXNwcyddLmdldCgnaXRlbXMnKVsnY29udHJvbHMnXTsgbGV0IGkgPSBpbmRleFwiXG4gICAgICAgICAgICAgICAgW2Zvcm1Hcm91cE5hbWVdPVwiaVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJyb3cgbWItMyBhbGlnbi1pdGVtcy1jZW50ZXJcIlxuICAgICAgICAgICAgICAgIGNka0RyYWdcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tMTBcIj5cbiAgICAgICAgICAgICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgbGFiZWw9XCJJdGVtIERlc2NyaXB0aW9uXCI+XG4gICAgICAgICAgICAgICAgICAgIDx0ZXh0YXJlYSBjbGFzcz1cImZvcm0tY29udHJvbFwiIHJvd3M9XCIzXCIgZm9ybUNvbnRyb2xOYW1lPVwiZGVzY3JpcHRpb25cIj48L3RleHRhcmVhPlxuICAgICAgICAgICAgICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLTEgZC1mbGV4IGp1c3RpZnktY29udGVudC1lbmQgbXQtM1wiPlxuICAgICAgICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmYSBmYS10cmFzaCBkZWxldGUtaWNvbiB0ZXh0LWRhbmdlclwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJyZW1vdmVVc3BJdGVtKGkpXCJcbiAgICAgICAgICAgICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwicmVtb3ZlVXNwSXRlbShpKVwiXG4gICAgICAgICAgICAgICAgICAgIChrZXlkb3duLnNwYWNlKT1cInJlbW92ZVVzcEl0ZW0oaSlcIlxuICAgICAgICAgICAgICAgICAgICBuZ2JUb29sdGlwPVwiUmVtb3ZlXCJcbiAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgID48L2k+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLTEgZC1mbGV4IGp1c3RpZnktY29udGVudC1lbmQgbXQtM1wiPlxuICAgICAgICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmYSBmYS1iYXJzIGN1cnNvci1tb3ZlXCJcbiAgICAgICAgICAgICAgICAgICAgY2RrRHJhZ0hhbmRsZVxuICAgICAgICAgICAgICAgICAgICBuZ2JUb29sdGlwPVwiRHJhZyB0byByZW9yZGVyXCJcbiAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgID48L2k+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IG10LTIgbWItMlwiIChjbGljayk9XCJhZGRVc3BJdGVtKClcIj5cbiAgICAgICAgICAgICAgICArIEFkZCBVU1AgSXRlbVxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3AtYWNjb3JkaW9uVGFiPlxuXG5cbiAgICAgICAgPHAtYWNjb3JkaW9uVGFiIFtoZWFkZXJdPVwiJ1BhcnRuZXJzIChDbGllbnRzKSBTZWN0aW9uJ1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbXQtNCBtYi00XCIgZm9ybUdyb3VwTmFtZT1cInBhcnRuZXJzXCI+XG4gICAgICAgICAgICA8aDQgY2xhc3M9XCJtYi00XCI+UGFydG5lcnMgKENsaWVudHMpIFNlY3Rpb248L2g0PlxuXG4gICAgICAgICAgICA8IS0tIFRpdGxlIC0tPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtbWQtNlwiPlxuICAgICAgICAgICAgICA8cHctaW5wdXQtY29udGFpbmVyIGxhYmVsPVwiUGFydG5lciBUaXRsZVwiIG5hbWU9XCJ0aXRsZVwiPlxuICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgZm9ybUNvbnRyb2xOYW1lPVwidGl0bGVcIiAvPlxuICAgICAgICAgICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8IS0tIERlc2NyaXB0aW9uIC0tPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMlwiPlxuICAgICAgICAgICAgICA8cHctaW5wdXQtY29udGFpbmVyIGxhYmVsPVwiUGFydG5lcnMgRGVzY3JpcHRpb25cIiBuYW1lPVwiZGVzY3JpcHRpb25cIj5cbiAgICAgICAgICAgICAgICA8dGV4dGFyZWEgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiByb3dzPVwiM1wiIGZvcm1Db250cm9sTmFtZT1cImRlc2NyaXB0aW9uXCI+PC90ZXh0YXJlYT5cbiAgICAgICAgICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPCEtLSBQYXJ0bmVyIEl0ZW1zIHdpdGggRHJhZyBTdXBwb3J0IC0tPlxuICAgICAgICAgICAgPGRpdiBmb3JtQXJyYXlOYW1lPVwiaXRlbXNcIiBjbGFzcz1cImNvbC0xMlwiIGNka0Ryb3BMaXN0IChjZGtEcm9wTGlzdERyb3BwZWQpPVwiZHJvcEl0ZW1zKHBhcnRuZXJzSXRlbXMsICRldmVudClcIj5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIHBhcnRuZXJzSXRlbXMuY29udHJvbHM7IGxldCBpID0gaW5kZXhcIlxuICAgICAgICAgICAgICAgIFtmb3JtR3JvdXBOYW1lXT1cImlcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwicm93IGJvcmRlciBwLTMgbWItMyBhbGlnbi1pdGVtcy1zdGFydFwiXG4gICAgICAgICAgICAgICAgY2RrRHJhZ1xuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPCEtLSBOYW1lIC0tPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiPlxuICAgICAgICAgICAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBsYWJlbD1cIk5hbWVcIiBjbGFzcz1cImNvbC0xMlwiIG5hbWU9XCJuYW1lXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cIm5hbWVcIiAvPlxuICAgICAgICAgICAgICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICA8IS0tIEJsb2cgVVJMICsgRHJhZyBIYW5kbGUgLS0+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC01XCI+XG4gICAgICAgICAgICAgICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgbGFiZWw9XCJCbG9nIFVybFwiIG5hbWU9XCJibG9nX3VybFwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cImJsb2dfdXJsXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cblxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMSBkLWZsZXgganVzdGlmeS1jb250ZW50LWVuZCBhbGlnbi1pdGVtcy1zdGFydCBtdC0zXCI+XG4gICAgICAgICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZhIGZhLWJhcnMgY3Vyc29yLW1vdmVcIlxuICAgICAgICAgICAgICAgICAgICBjZGtEcmFnSGFuZGxlXG4gICAgICAgICAgICAgICAgICAgIG5nYlRvb2x0aXA9XCJEcmFnIHRvIHJlb3JkZXIgcXVlc3Rpb25cIlxuICAgICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgPjwvaT5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cblxuXG4gICAgICAgICAgICAgICAgPCEtLSBWaWRlbyBVUkwgLS0+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCI+XG4gICAgICAgICAgICAgICAgICA8cHctaW5wdXQtY29udGFpbmVyIGxhYmVsPVwiVmlkZW8gVXJsXCIgbmFtZT1cInZpZGVvX3VybFwiPlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJ2aWRlb191cmxcIiAvPlxuICAgICAgICAgICAgICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICA8IS0tIEltYWdlIFVSTCAtLT5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIj5cbiAgICAgICAgICAgICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgbGFiZWw9XCJJbWFnZSBVcmxcIiBuYW1lPVwiaW1hZ2VfdXJsXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cImltYWdlX3VybFwiIC8+XG4gICAgICAgICAgICAgICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgIDwhLS0gRGVsZXRlIEljb24gLS0+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMiB0ZXh0LWVuZCBtdC0yXCI+XG4gICAgICAgICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgICAgICBuZ2JUb29sdGlwPVwiUmVtb3ZlXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInJlbW92ZVBhcnRuZXJJdGVtKGkpXCJcbiAgICAgICAgICAgICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwicmVtb3ZlUGFydG5lckl0ZW0oaSlcIlxuICAgICAgICAgICAgICAgICAgICAoa2V5ZG93bi5zcGFjZSk9XCJyZW1vdmVQYXJ0bmVySXRlbShpKVwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmEgZmEtdHJhc2ggZGVsZXRlLWljb24gdGV4dC1kYW5nZXJcIlxuICAgICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgPjwvaT5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgPCEtLSBBZGQgTmV3IFBhcnRuZXIgLS0+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXN0YXJ0IG10LTJcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBtdC0yIG1iLTJcIiAoY2xpY2spPVwiYWRkUGFydG5lckl0ZW0oKVwiPisgQWRkIFBhcnRuZXI8L2J1dHRvbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9wLWFjY29yZGlvblRhYj5cblxuXG4gICAgICAgIDxwLWFjY29yZGlvblRhYiBbaGVhZGVyXT1cIidUZXN0aW1vbmlhbHMgU2VjdGlvbidcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IG10LTMgbWItNFwiIGZvcm1Hcm91cE5hbWU9XCJ0ZXN0aW1vbmlhbHNcIj5cbiAgICAgICAgICAgIDxoNCBjbGFzcz1cIm1iLTRcIj5UZXN0aW1vbmlhbHMgU2VjdGlvbjwvaDQ+XG5cbiAgICAgICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgbGFiZWw9XCJUaXRsZVwiIGNsYXNzPVwiY29sLTEyIGNvbC1tZC02XCIgbmFtZT1cInRlc3RpbW9uaWFsc190aXRsZVwiPlxuICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cInRpdGxlXCIgLz5cbiAgICAgICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuXG4gICAgICAgICAgICA8cHctaW5wdXQtY29udGFpbmVyIGxhYmVsPVwiRGVzY3JpcHRpb25cIiBjbGFzcz1cImNvbC0xMlwiIG5hbWU9XCJ0ZXN0aW1vbmlhbHNfZGVzY3JpcHRpb25cIj5cbiAgICAgICAgICAgICAgPHRleHRhcmVhIHJvd3M9XCIzXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJkZXNjcmlwdGlvblwiPjwvdGV4dGFyZWE+XG4gICAgICAgICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgPCEtLSBJdGVtcyBMaXN0IC0tPlxuICAgICAgICAgICAgPGRpdiBmb3JtQXJyYXlOYW1lPVwiaXRlbXNcIiBjbGFzcz1cImNvbC0xMiBtdC0zXCIgY2RrRHJvcExpc3QgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJkcm9wSXRlbXModGVzdGltb25pYWxzSXRlbXMsICRldmVudClcIj5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIHRlc3RpbW9uaWFsc0l0ZW1zLmNvbnRyb2xzOyBsZXQgaSA9IGluZGV4XCJcbiAgICAgICAgICAgICAgICBbZm9ybUdyb3VwTmFtZV09XCJpXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInJvdyBib3JkZXIgcC0zIG1iLTMgYWxpZ24taXRlbXMtc3RhcnRcIlxuICAgICAgICAgICAgICAgIGNka0RyYWdcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiPlxuICAgICAgICAgICAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBsYWJlbD1cIk5hbWVcIj5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJuYW1lXCIgLz5cbiAgICAgICAgICAgICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC01XCI+XG4gICAgICAgICAgICAgICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgbGFiZWw9XCJCbG9nIFVSTFwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgZm9ybUNvbnRyb2xOYW1lPVwiYmxvZ191cmxcIiAvPlxuICAgICAgICAgICAgICAgICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cblxuXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kIGFsaWduLWl0ZW1zLXN0YXJ0IG10LTNcIj5cbiAgICAgICAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmEgZmEtYmFycyBjdXJzb3ItbW92ZVwiXG4gICAgICAgICAgICAgICAgICAgIGNka0RyYWdIYW5kbGVcbiAgICAgICAgICAgICAgICAgICAgbmdiVG9vbHRpcD1cIkRyYWcgdG8gcmVvcmRlciBxdWVzdGlvblwiXG4gICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICA+PC9pPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgbGFiZWw9XCJJbWFnZSBVUkxcIiBjbGFzcz1cImNvbC1tZC02XCI+XG4gICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cImltYWdlX3VybFwiIC8+XG4gICAgICAgICAgICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgICA8cHctaW5wdXQtY29udGFpbmVyIGxhYmVsPVwiVmlkZW8gVVJMXCIgY2xhc3M9XCJjb2wtbWQtNlwiPlxuICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJ2aWRlb191cmxcIiAvPlxuICAgICAgICAgICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuXG4gICAgICAgICAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBsYWJlbD1cIlRlc3RpbW9uaWFsXCIgY2xhc3M9XCJjb2wtbWQtMTBcIj5cbiAgICAgICAgICAgICAgICAgIDx0ZXh0YXJlYSBjbGFzcz1cImZvcm0tY29udHJvbFwiIHJvd3M9XCIzXCIgZm9ybUNvbnRyb2xOYW1lPVwidGVzdGltb25pYWxcIj48L3RleHRhcmVhPlxuICAgICAgICAgICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0yIGQtZmxleCBhbGlnbi1pdGVtcy1zdGFydCBtdC0zXCI+XG4gICAgICAgICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZhIGZhLXRyYXNoIGRlbGV0ZS1pY29uIHRleHQtZGFuZ2VyXCJcbiAgICAgICAgICAgICAgICAgICAgbmdiVG9vbHRpcD1cIlJlbW92ZVwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJyZW1vdmVUZXN0aW1vbmlhbEl0ZW0oaSlcIlxuICAgICAgICAgICAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJyZW1vdmVUZXN0aW1vbmlhbEl0ZW0oaSlcIlxuICAgICAgICAgICAgICAgICAgICAoa2V5ZG93bi5zcGFjZSk9XCJyZW1vdmVUZXN0aW1vbmlhbEl0ZW0oaSlcIlxuICAgICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgPjwvaT5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtc3RhcnQgbXQtMlwiPlxuICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IG10LTIgbWItMlwiIChjbGljayk9XCJhZGRUZXN0aW1vbmlhbEl0ZW0oKVwiPlxuICAgICAgICAgICAgICAgICAgKyBBZGQgVGVzdGltb25pYWxcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9wLWFjY29yZGlvblRhYj5cblxuICAgICAgICA8cC1hY2NvcmRpb25UYWIgW2hlYWRlcl09XCInVmlkZW8gU2VjdGlvbidcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IG10LTMgbWItNFwiIGZvcm1Hcm91cE5hbWU9XCJ2aWRlb3NcIj5cbiAgICAgICAgICAgIDxoNCBjbGFzcz1cIm1iLTNcIj5WaWRlbyBTZWN0aW9uPC9oND5cblxuICAgICAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBsYWJlbD1cIlRpdGxlXCIgY2xhc3M9XCJjb2wtMTIgY29sLW1kLTZcIiBuYW1lPVwidmlkZW9zX3RpdGxlXCI+XG4gICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgZm9ybUNvbnRyb2xOYW1lPVwidGl0bGVcIiAvPlxuICAgICAgICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG5cbiAgICAgICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgbGFiZWw9XCJEZXNjcmlwdGlvblwiIGNsYXNzPVwiY29sLTEyXCIgbmFtZT1cInZpZGVvc19kZXNjcmlwdGlvblwiPlxuICAgICAgICAgICAgICA8dGV4dGFyZWEgcm93cz1cIjNcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cImRlc2NyaXB0aW9uXCI+PC90ZXh0YXJlYT5cbiAgICAgICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuXG4gICAgICAgICAgICA8IS0tIFZpZGVvIEl0ZW1zIC0tPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBmb3JtQXJyYXlOYW1lPVwiaXRlbXNcIlxuICAgICAgICAgICAgICBjbGFzcz1cImNvbC0xMiBtdC0zXCJcbiAgICAgICAgICAgICAgY2RrRHJvcExpc3RcbiAgICAgICAgICAgICAgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJkcm9wSXRlbXModmlkZW9zSXRlbXMsICRldmVudClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgdmlkZW9zSXRlbXMuY29udHJvbHM7IGxldCBpID0gaW5kZXhcIlxuICAgICAgICAgICAgICAgIFtmb3JtR3JvdXBOYW1lXT1cImlcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwicm93IGJvcmRlciBwLTMgbWItMyBhbGlnbi1pdGVtcy1zdGFydFwiXG4gICAgICAgICAgICAgICAgY2RrRHJhZ1xuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCI+XG4gICAgICAgICAgICAgICAgICA8cHctaW5wdXQtY29udGFpbmVyIGxhYmVsPVwiVGl0bGVcIj5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJ0aXRsZVwiIC8+XG4gICAgICAgICAgICAgICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNVwiPlxuICAgICAgICAgICAgICAgICAgICA8cHctaW5wdXQtY29udGFpbmVyIGxhYmVsPVwiQmxvZyBVUkxcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cImJsb2dfdXJsXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cblxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMSBkLWZsZXgganVzdGlmeS1jb250ZW50LWVuZCBhbGlnbi1pdGVtcy1zdGFydCBtdC0zXCI+XG4gICAgICAgICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZhIGZhLWJhcnMgY3Vyc29yLW1vdmVcIlxuICAgICAgICAgICAgICAgICAgICBjZGtEcmFnSGFuZGxlXG4gICAgICAgICAgICAgICAgICAgIG5nYlRvb2x0aXA9XCJEcmFnIHRvIHJlb3JkZXIgcXVlc3Rpb25cIlxuICAgICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgPjwvaT5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgbGFiZWw9XCJJbWFnZSBVUkxcIiBjbGFzcz1cImNvbC1tZC02XCI+XG4gICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cImltYWdlX3VybFwiIC8+XG4gICAgICAgICAgICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgICA8cHctaW5wdXQtY29udGFpbmVyIGxhYmVsPVwiVmlkZW8gVVJMXCIgY2xhc3M9XCJjb2wtbWQtNlwiPlxuICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJ2aWRlb191cmxcIiAvPlxuICAgICAgICAgICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuXG4gICAgICAgICAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBsYWJlbD1cIkRlc2NyaXB0aW9uXCIgY2xhc3M9XCJjb2wtbWQtMTBcIj5cbiAgICAgICAgICAgICAgICAgIDx0ZXh0YXJlYSBjbGFzcz1cImZvcm0tY29udHJvbFwiIHJvd3M9XCIzXCIgZm9ybUNvbnRyb2xOYW1lPVwiZGVzY3JpcHRpb25cIj48L3RleHRhcmVhPlxuICAgICAgICAgICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0yIGQtZmxleCBhbGlnbi1pdGVtcy1zdGFydCBtdC0zXCI+XG4gICAgICAgICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZhIGZhLXRyYXNoIGRlbGV0ZS1pY29uIHRleHQtZGFuZ2VyXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInJlbW92ZVZpZGVvSXRlbShpKVwiXG4gICAgICAgICAgICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cInJlbW92ZVZpZGVvSXRlbShpKVwiXG4gICAgICAgICAgICAgICAgICAgIChrZXlkb3duLnNwYWNlKT1cInJlbW92ZVZpZGVvSXRlbShpKVwiXG4gICAgICAgICAgICAgICAgICAgIG5nYlRvb2x0aXA9XCJSZW1vdmVcIlxuICAgICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgPjwvaT5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtc3RhcnQgbXQtMlwiPlxuICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IG10LTIgbWItMlwiIChjbGljayk9XCJhZGRWaWRlb0l0ZW0oKVwiPlxuICAgICAgICAgICAgICAgICAgKyBBZGQgVmlkZW9cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9wLWFjY29yZGlvblRhYj5cblxuXG4gICAgICAgIDxwLWFjY29yZGlvblRhYiBbaGVhZGVyXT1cIidDYWxsIHRvIEFjdGlvbnMgU2VjdGlvbiAoQ1RBcyknXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBtdC00IG1iLTRcIiBmb3JtR3JvdXBOYW1lPVwiY3Rhc1wiPlxuICAgICAgICAgICAgPGg0IGNsYXNzPVwibWItNFwiPkNUQXMgU2VjdGlvbjwvaDQ+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLW1kLTZcIj5cbiAgICAgICAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBsYWJlbD1cIlRpdGxlXCIgbmFtZT1cInRpdGxlXCI+XG4gICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJ0aXRsZVwiIC8+XG4gICAgICAgICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLW1kLTZcIj5cbiAgICAgICAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBsYWJlbD1cIkRlc2NyaXB0aW9uXCIgbmFtZT1cImRlc2NyaXB0aW9uXCI+XG4gICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJkZXNjcmlwdGlvblwiIC8+XG4gICAgICAgICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTJcIj5cbiAgICAgICAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBsYWJlbD1cIkltYWdlIFVSTFwiIG5hbWU9XCJpbWFnZV91cmxcIj5cbiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cImltYWdlX3VybFwiIC8+XG4gICAgICAgICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDwhLS0gQ1RBIEl0ZW1zIC0tPlxuICAgICAgICAgICAgPGRpdiBmb3JtQXJyYXlOYW1lPVwiaXRlbXNcIiBjbGFzcz1cImNvbC0xMiBtdC0zXCIgY2RrRHJvcExpc3QgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJkcm9wSXRlbXMoY3Rhc0l0ZW1zLCAkZXZlbnQpXCI+XG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBjdGFzSXRlbXMuY29udHJvbHM7IGxldCBpID0gaW5kZXhcIlxuICAgICAgICAgICAgICAgIFtmb3JtR3JvdXBOYW1lXT1cImlcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwicm93IGJvcmRlciBwLTMgbWItMyBhbGlnbi1pdGVtcy1zdGFydFwiXG4gICAgICAgICAgICAgICAgY2RrRHJhZ1xuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtbWQtNlwiPlxuICAgICAgICAgICAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBsYWJlbD1cIkltYWdlIFVSTFwiIG5hbWU9XCJpbWFnZV91cmxcIj5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJpbWFnZV91cmxcIiAvPlxuICAgICAgICAgICAgICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTVcIj5cbiAgICAgICAgICAgICAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBsYWJlbD1cIkN0YSBVUkxcIiBuYW1lPVwiY3RhX3VybFwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgZm9ybUNvbnRyb2xOYW1lPVwiY3RhX3VybFwiIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEgZC1mbGV4IGp1c3RpZnktY29udGVudC1lbmQgYWxpZ24taXRlbXMtc3RhcnQgbXQtM1wiPlxuICAgICAgICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmYSBmYS1iYXJzIGN1cnNvci1tb3ZlXCJcbiAgICAgICAgICAgICAgICAgICAgY2RrRHJhZ0hhbmRsZVxuICAgICAgICAgICAgICAgICAgICBuZ2JUb29sdGlwPVwiRHJhZyB0byByZW9yZGVyIHF1ZXN0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgID48L2k+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1tZC02XCI+XG4gICAgICAgICAgICAgICAgICA8cHctaW5wdXQtY29udGFpbmVyIGxhYmVsPVwiVmlkZW8gVVJMXCIgbmFtZT1cInZpZGVvX3VybFwiPlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cInZpZGVvX3VybFwiIC8+XG4gICAgICAgICAgICAgICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLW1kLTZcIj5cbiAgICAgICAgICAgICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgbGFiZWw9XCJDVEEgVGl0bGVcIj5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jb250cm9sXCIgZm9ybUNvbnRyb2xOYW1lPVwidGl0bGVcIiAvPlxuICAgICAgICAgICAgICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1tZC02XCI+XG4gICAgICAgICAgICAgICAgICA8cHctaW5wdXQtY29udGFpbmVyIGxhYmVsPVwiQ1RBIERlc2NyaXB0aW9uXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cImRlc2NyaXB0aW9uXCIgLz5cbiAgICAgICAgICAgICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtbWQtNVwiPlxuICAgICAgICAgICAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBsYWJlbD1cIkJ1dHRvbiBUZXh0XCI+XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cImJ1dHRvbl90ZXh0XCIgLz5cbiAgICAgICAgICAgICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgbXQtM1wiPlxuICAgICAgICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmYSBmYS10cmFzaCBkZWxldGUtaWNvblwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJyZW1vdmVDdGFzSXRlbShpKVwiXG4gICAgICAgICAgICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cInJlbW92ZUN0YXNJdGVtKGkpXCJcbiAgICAgICAgICAgICAgICAgICAgKGtleWRvd24uc3BhY2UpPVwicmVtb3ZlQ3Rhc0l0ZW0oaSlcIlxuICAgICAgICAgICAgICAgICAgICBuZ2JUb29sdGlwPVwiUmVtb3ZlXCJcbiAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgID48L2k+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXN0YXJ0IG10LTJcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBtdC0yIG1iLTJcIiAoY2xpY2spPVwiYWRkQ3Rhc0l0ZW0oKVwiPisgQWRkIENUQSBJdGVtPC9idXR0b24+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvcC1hY2NvcmRpb25UYWI+XG5cbiAgICAgICAgPHAtYWNjb3JkaW9uVGFiIFtoZWFkZXJdPVwiJ0ludGVncmF0aW9ucyBTZWN0aW9uJ1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbXQtMyBtYi00XCIgZm9ybUdyb3VwTmFtZT1cImludGVncmF0aW9uc1wiPlxuICAgICAgICAgICAgPGg0IGNsYXNzPVwibWItM1wiPkludGVncmF0aW9ucyBTZWN0aW9uPC9oND5cblxuICAgICAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBsYWJlbD1cIlRpdGxlXCIgY2xhc3M9XCJjb2wtMTJcIj5cbiAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJ0aXRsZVwiIC8+XG4gICAgICAgICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBsYWJlbD1cIkRlc2NyaXB0aW9uXCIgY2xhc3M9XCJjb2wtMTJcIj5cbiAgICAgICAgICAgICAgPHRleHRhcmVhIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgZm9ybUNvbnRyb2xOYW1lPVwiZGVzY3JpcHRpb25cIiByb3dzPVwiM1wiPjwvdGV4dGFyZWE+XG4gICAgICAgICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgPGRpdiBmb3JtQXJyYXlOYW1lPVwiaXRlbXNcIiBjbGFzcz1cImNvbC0xMlwiIGNka0Ryb3BMaXN0IChjZGtEcm9wTGlzdERyb3BwZWQpPVwiZHJvcEl0ZW1zKGludGVncmF0aW9uc0l0ZW1zLCAkZXZlbnQpXCI+XG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpbnRlZ3JhdGlvbnNJdGVtcy5jb250cm9sczsgbGV0IGkgPSBpbmRleFwiXG4gICAgICAgICAgICAgICAgW2Zvcm1Hcm91cE5hbWVdPVwiaVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJyb3cgYm9yZGVyIHAtMyBtYi0zIHJvdW5kZWQgYmctbGlnaHRcIlxuICAgICAgICAgICAgICAgIGNka0RyYWdcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgbGFiZWw9XCJUaXRsZVwiIGNsYXNzPVwiY29sLW1kLTZcIj5cbiAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgZm9ybUNvbnRyb2xOYW1lPVwidGl0bGVcIiAvPlxuICAgICAgICAgICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC01XCI+XG4gICAgICAgICAgICAgICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgbGFiZWw9XCJEZXNjcmlwdGlvblwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgZm9ybUNvbnRyb2xOYW1lPVwiZGVzY3JpcHRpb25cIiAvPlxuICAgICAgICAgICAgICAgICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cblxuXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kIGFsaWduLWl0ZW1zLXN0YXJ0IG10LTNcIj5cbiAgICAgICAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmEgZmEtYmFycyBjdXJzb3ItbW92ZVwiXG4gICAgICAgICAgICAgICAgICAgIGNka0RyYWdIYW5kbGVcbiAgICAgICAgICAgICAgICAgICAgbmdiVG9vbHRpcD1cIkRyYWcgdG8gcmVvcmRlciBxdWVzdGlvblwiXG4gICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICA+PC9pPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBsYWJlbD1cIkJsb2cgVVJMXCIgY2xhc3M9XCJjb2wtbWQtNlwiPlxuICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJibG9nX3VybFwiIC8+XG4gICAgICAgICAgICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgICA8cHctaW5wdXQtY29udGFpbmVyIGxhYmVsPVwiSW1hZ2UgVVJMXCIgY2xhc3M9XCJjb2wtbWQtNlwiPlxuICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJpbWFnZV91cmxcIiAvPlxuICAgICAgICAgICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuXG4gICAgICAgICAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBsYWJlbD1cIlZpZGVvIFVSTFwiIGNsYXNzPVwiY29sLW1kLTZcIj5cbiAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgZm9ybUNvbnRyb2xOYW1lPVwidmlkZW9fdXJsXCIgLz5cbiAgICAgICAgICAgICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNiBkLWZsZXggYWxpZ24taXRlbXMtZW5kIGp1c3RpZnktY29udGVudC1lbmRcIj5cbiAgICAgICAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmEgZmEtdHJhc2ggZGVsZXRlLWljb24gYWxpZ24tc2VsZi1jZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwicmVtb3ZlSW50ZWdyYXRpb25JdGVtKGkpXCJcbiAgICAgICAgICAgICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwicmVtb3ZlSW50ZWdyYXRpb25JdGVtKGkpXCJcbiAgICAgICAgICAgICAgICAgICAgKGtleWRvd24uc3BhY2UpPVwicmVtb3ZlSW50ZWdyYXRpb25JdGVtKGkpXCJcbiAgICAgICAgICAgICAgICAgICAgbmdiVG9vbHRpcD1cIlJlbW92ZVwiXG4gICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICA+PC9pPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1zdGFydCBtdC0yXCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIiAoY2xpY2spPVwiYWRkSW50ZWdyYXRpb25JdGVtKClcIj4rIEFkZCBJbnRlZ3JhdGlvbjwvYnV0dG9uPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3AtYWNjb3JkaW9uVGFiPlxuXG5cbiAgICAgICAgPHAtYWNjb3JkaW9uVGFiIFtoZWFkZXJdPVwiJ0NvbnRhY3QgVXMgU2VjdGlvbidcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IG10LTMgbWItNFwiIGZvcm1Hcm91cE5hbWU9XCJjb250YWN0X3VzXCI+XG4gICAgICAgICAgICA8aDQgY2xhc3M9XCJtYi0zXCI+Q29udGFjdCBVcyBTZWN0aW9uPC9oND5cblxuICAgICAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBsYWJlbD1cIlVybFwiIGNsYXNzPVwiY29sLW1kLTZcIj5cbiAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJ1cmxcIiAvPlxuICAgICAgICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG4gICAgICAgICAgICA8cHctaW5wdXQtY29udGFpbmVyIGxhYmVsPVwiRGVzY3JpcHRpb25cIiBjbGFzcz1cImNvbC0xMlwiIG5hbWU9XCJjb250YWN0X3VzX2Rlc2NyaXB0aW9uXCI+XG4gICAgICAgICAgICAgIDx0ZXh0YXJlYSByb3dzPVwiM1wiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgZm9ybUNvbnRyb2xOYW1lPVwiZGVzY3JpcHRpb25cIj48L3RleHRhcmVhPlxuICAgICAgICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG5cbiAgICAgICAgICAgIDxkaXYgZm9ybUFycmF5TmFtZT1cInF1ZXN0aW9uc1wiIGNsYXNzPVwiY29sLTEyIG10LTNcIiBjZGtEcm9wTGlzdCAoY2RrRHJvcExpc3REcm9wcGVkKT1cImRyb3BJdGVtcyhjb250YWN0VXNRdWVzdGlvbnMsICRldmVudClcIj5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBxdWVzdGlvbkdyb3VwIG9mIGNvbnRhY3RVc1F1ZXN0aW9ucy5jb250cm9sczsgbGV0IGkgPSBpbmRleFwiXG4gICAgICAgICAgICAgICAgW2Zvcm1Hcm91cE5hbWVdPVwiaVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJyb3cgYm9yZGVyIHAtMyBtYi0zXCJcbiAgICAgICAgICAgICAgICBjZGtEcmFnXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8cHctaW5wdXQtY29udGFpbmVyIGxhYmVsPVwiUXVlc3Rpb25cIiBjbGFzcz1cImNvbC1tZC0xMFwiPlxuICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJxdWVzdGlvblwiIC8+XG4gICAgICAgICAgICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kIGFsaWduLWl0ZW1zLXN0YXJ0IG10LTNcIj5cbiAgICAgICAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmEgZmEtdHJhc2ggZGVsZXRlLWljb24gdGV4dC1kYW5nZXJcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwicmVtb3ZlQ29udGFjdFVzUXVlc3Rpb24oaSlcIlxuICAgICAgICAgICAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJyZW1vdmVDb250YWN0VXNRdWVzdGlvbihpKVwiXG4gICAgICAgICAgICAgICAgICAgIChrZXlkb3duLnNwYWNlKT1cInJlbW92ZUNvbnRhY3RVc1F1ZXN0aW9uKGkpXCJcbiAgICAgICAgICAgICAgICAgICAgbmdiVG9vbHRpcD1cIlJlbW92ZVwiXG4gICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICA+PC9pPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kIGFsaWduLWl0ZW1zLXN0YXJ0IG10LTNcIj5cbiAgICAgICAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmEgZmEtYmFycyBjdXJzb3ItbW92ZVwiXG4gICAgICAgICAgICAgICAgICAgIGNka0RyYWdIYW5kbGVcbiAgICAgICAgICAgICAgICAgICAgbmdiVG9vbHRpcD1cIkRyYWcgdG8gcmVvcmRlciBxdWVzdGlvblwiXG4gICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICA+PC9pPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBtdC0zXCIgZm9ybUFycmF5TmFtZT1cIm9wdGlvbnNcIiBjZGtEcm9wTGlzdCBbY2RrRHJvcExpc3REYXRhXT1cImdldFF1ZXN0aW9uT3B0aW9ucyhpKS5jb250cm9sc1wiIChjZGtEcm9wTGlzdERyb3BwZWQpPVwiZHJvcENvbnRhY3RVc09wdGlvbnMoaSwgJGV2ZW50KVwiPlxuICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInJvdyBhbGlnbi1pdGVtcy1jZW50ZXIgbWItMiBib3JkZXIgcC0zXCJcbiAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBnZXRRdWVzdGlvbk9wdGlvbnMoaSkuY29udHJvbHM7IGxldCBqID0gaW5kZXhcIlxuICAgICAgICAgICAgICAgICAgICBbZm9ybUdyb3VwTmFtZV09XCJqXCJcbiAgICAgICAgICAgICAgICAgICAgY2RrRHJhZ1xuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8cHctaW5wdXQtY29udGFpbmVyIGxhYmVsPVwiT3B0aW9uXCIgY2xhc3M9XCJjb2wtbWQtMTBcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cIm9wdGlvblwiIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMSBkLWZsZXgganVzdGlmeS1jb250ZW50LWVuZCBtdC0zXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmEgZmEtdHJhc2ggZGVsZXRlLWljb24gdGV4dC1kYW5nZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInJlbW92ZUNvbnRhY3RVc09wdGlvbihpLCBqKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJyZW1vdmVDb250YWN0VXNPcHRpb24oaSwgailcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGtleWRvd24uc3BhY2UpPVwicmVtb3ZlQ29udGFjdFVzT3B0aW9uKGksIGopXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5nYlRvb2x0aXA9XCJSZW1vdmUgT3B0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kIG10LTNcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmYSBmYS1iYXJzIGN1cnNvci1tb3ZlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNka0RyYWdIYW5kbGVcbiAgICAgICAgICAgICAgICAgICAgICAgIG5nYlRvb2x0aXA9XCJEcmFnIHRvIHJlb3JkZXIgb3B0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtc3RhcnRcIj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgYnRuLXNtXCIgKGNsaWNrKT1cImFkZENvbnRhY3RVc09wdGlvbihpKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICsgQWRkIE9wdGlvblxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1zdGFydCBtdC0zXCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIiAoY2xpY2spPVwiYWRkQ29udGFjdFVzUXVlc3Rpb24oKVwiPlxuICAgICAgICAgICAgICAgICAgKyBBZGQgUXVlc3Rpb25cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiBmb3JtQXJyYXlOYW1lPVwiaHVic3BvdFwiIGNsYXNzPVwiY29sLTEyIG10LTRcIiBjZGtEcm9wTGlzdCAoY2RrRHJvcExpc3REcm9wcGVkKT1cImRyb3BJdGVtcyhjb250YWN0VXNIdWJzcG90SXRlbXMsICRldmVudClcIj5cbiAgICAgICAgICAgICAgPGg1IGNsYXNzPVwibWItNFwiPkh1YnNwb3QgRW1iZWRzPC9oNT5cblxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGh1YiBvZiBjb250YWN0VXNIdWJzcG90SXRlbXMuY29udHJvbHM7IGxldCBpID0gaW5kZXhcIlxuICAgICAgICAgICAgICAgIFtmb3JtR3JvdXBOYW1lXT1cImlcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwicm93IGJvcmRlciBwLTMgbWItMlwiXG4gICAgICAgICAgICAgICAgY2RrRHJhZ1xuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgbGFiZWw9XCJJRFwiIGNsYXNzPVwiY29sLW1kLTVcIj5cbiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cImlkXCIgLz5cbiAgICAgICAgICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBsYWJlbD1cIlBvc2l0aW9uXCIgY2xhc3M9XCJjb2wtbWQtNlwiPlxuICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgZm9ybUNvbnRyb2xOYW1lPVwicG9zaXRpb25cIiAvPlxuICAgICAgICAgICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xIGQtZmxleCBhbGlnbi1pdGVtcy1zdGFydCBqdXN0aWZ5LWNvbnRlbnQtZW5kIG10LTNcIj5cbiAgICAgICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmYSBmYS1iYXJzIGN1cnNvci1tb3ZlXCJcbiAgICAgICAgICAgICAgICAgIGNka0RyYWdIYW5kbGVcbiAgICAgICAgICAgICAgICAgIG5nYlRvb2x0aXA9XCJEcmFnIHRvIHJlb3JkZXJcIlxuICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICA+PC9pPlxuICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgbGFiZWw9XCJEaXZcIiBjbGFzcz1cImNvbC0xMFwiPlxuICAgICAgICAgICAgICAgICAgPHRleHRhcmVhXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgICAgICAgICAgcm93cz1cIjVcIlxuICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJkaXZcIlxuICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdpcy1pbnZhbGlkJzogc3VibWl0dGVkICYmIGZbJ2RpdiddPy5lcnJvcnMgfVwiXG4gICAgICAgICAgICAgICAgICA+PC90ZXh0YXJlYT5cbiAgICAgICAgICAgICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMiBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIG10LTNcIj5cbiAgICAgICAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmEgZmEtdHJhc2ggZGVsZXRlLWljb25cIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwicmVtb3ZlSHVic3BvdEl0ZW0oaSlcIlxuICAgICAgICAgICAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJyZW1vdmVIdWJzcG90SXRlbShpKVwiXG4gICAgICAgICAgICAgICAgICAgIChrZXlkb3duLnNwYWNlKT1cInJlbW92ZUh1YnNwb3RJdGVtKGkpXCJcbiAgICAgICAgICAgICAgICAgICAgbmdiVG9vbHRpcD1cIlJlbW92ZSBIdWJzcG90IEVtYmVkXCJcbiAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG48L2k+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXN0YXJ0IG10LTJcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBidG4tc21cIiAoY2xpY2spPVwiYWRkSHVic3BvdEl0ZW0oKVwiPlxuICAgICAgICAgICAgICAgICAgKyBBZGQgSHVic3BvdCBFbWJlZFxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvcC1hY2NvcmRpb25UYWI+XG5cblxuICAgICAgICA8cC1hY2NvcmRpb25UYWIgW2hlYWRlcl09XCInQm9vayBhIERlbW8gU2VjdGlvbidcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IG10LTRcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTJcIj5cbiAgICAgICAgICAgICAgPGg0IGNsYXNzPVwibWItM1wiPnt7ICdBZG1pbi5Eb21haW5Db25maWcuQm9va0RlbW9MaW5rcycgfCB0cmFuc2xvY28gfX08L2g0PlxuICAgICAgICAgICAgICA8ZGl2IGZvcm1Hcm91cE5hbWU9XCJib29rX2RlbW9cIj5cbiAgICAgICAgICAgICAgICA8cHctaW5wdXQtY29udGFpbmVyIGxhYmVsPVwiVGl0bGVcIj5cbiAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGZvcm1Db250cm9sTmFtZT1cInRpdGxlXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiAvPlxuICAgICAgICAgICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuXG4gICAgICAgICAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBsYWJlbD1cIkRlc2NyaXB0aW9uXCI+XG4gICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBmb3JtQ29udHJvbE5hbWU9XCJkZXNjcmlwdGlvblwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgLz5cbiAgICAgICAgICAgICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgICAgIDxkaXYgZm9ybUFycmF5TmFtZT1cIml0ZW1zXCIgY2RrRHJvcExpc3QgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJkcm9wQm9va0RlbW9MaW5rcygkZXZlbnQpXCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBsaW5rIG9mIGZbJ2Jvb2tfZGVtbyddLmdldCgnaXRlbXMnKVsnY29udHJvbHMnXTsgbGV0IGkgPSBpbmRleFwiXG4gICAgICAgICAgICAgICAgICAgIFtmb3JtR3JvdXBOYW1lXT1cImlcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInJvdyBtYi0zIGJvcmRlciBwLTMgYWxpZ24taXRlbXMtY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgY2RrRHJhZ1xuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLTVcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8cHctaW5wdXQtY29udGFpbmVyIGxhYmVsPVwiTGluayBUaXRsZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJ0aXRsZVwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tNVwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgbGFiZWw9XCJMaW5rIFVSTFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJ1cmxcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLTEgZC1mbGV4IGp1c3RpZnktY29udGVudC1lbmQgbXQtM1wiPlxuICAgICAgICAgICAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgICAgICAgICAgICBuZ2JUb29sdGlwPVwiUmVtb3ZlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJyZW1vdmVCb29rRGVtb0xpbmsoaSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwicmVtb3ZlQm9va0RlbW9MaW5rKGkpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChrZXlkb3duLnNwYWNlKT1cInJlbW92ZUJvb2tEZW1vTGluayhpKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZhIGZhLXRyYXNoIGRlbGV0ZS1pY29uIHRleHQtZGFuZ2VyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS0xIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kIG10LTNcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmYSBmYS1iYXJzIGN1cnNvci1tb3ZlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNka0RyYWdIYW5kbGVcbiAgICAgICAgICAgICAgICAgICAgICAgIG5nYlRvb2x0aXA9XCJEcmFnIHRvIHJlb3JkZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICA+PC9pPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBtdC0yIG1iLTJcIiAoY2xpY2spPVwiYWRkQm9va0RlbW9MaW5rKClcIj5cbiAgICAgICAgICAgICAgICAgICAgKyBBZGQgQm9vayBEZW1vIExpbmtcbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3AtYWNjb3JkaW9uVGFiPlxuXG5cbiAgICAgICAgPHAtYWNjb3JkaW9uVGFiIFtoZWFkZXJdPVwiJ05hdmJhciBTZWN0aW9uJ1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbXQtMyBtYi00XCIgZm9ybUdyb3VwTmFtZT1cIm5hdmJhclwiPlxuICAgICAgICAgICAgPGg0IGNsYXNzPVwibWItM1wiPk5hdmJhciBTZWN0aW9uPC9oND5cblxuICAgICAgICAgICAgPGRpdiBmb3JtQXJyYXlOYW1lPVwiaXRlbXNcIiBjbGFzcz1cImNvbC0xMlwiIGNka0Ryb3BMaXN0IChjZGtEcm9wTGlzdERyb3BwZWQpPVwiZHJvcEl0ZW1zKG5hdmJhckl0ZW1zLCAkZXZlbnQpXCI+XG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBuYXZiYXJJdGVtcy5jb250cm9sczsgbGV0IGkgPSBpbmRleFwiXG4gICAgICAgICAgICAgICAgW2Zvcm1Hcm91cE5hbWVdPVwiaVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJyb3cgbWItM1wiXG4gICAgICAgICAgICAgICAgY2RrRHJhZ1xuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgbGFiZWw9XCJUaXRsZVwiIGNsYXNzPVwiY29sLW1kLTVcIj5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJ0aXRsZVwiIC8+XG4gICAgICAgICAgICAgICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBsYWJlbD1cIlBhdGhcIiBjbGFzcz1cImNvbC1tZC01XCI+XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgZm9ybUNvbnRyb2xOYW1lPVwicGF0aFwiIC8+XG4gICAgICAgICAgICAgICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kIGFsaWduLWl0ZW1zLXN0YXJ0IG10LTFcIj5cbiAgICAgICAgICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZhIGZhLXRyYXNoIGRlbGV0ZS1pY29uIHRleHQtZGFuZ2VyXCJcbiAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwicmVtb3ZlTmF2YmFySXRlbShpKVwiXG4gICAgICAgICAgICAgICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwicmVtb3ZlTmF2YmFySXRlbShpKVwiXG4gICAgICAgICAgICAgICAgICAgICAgKGtleWRvd24uc3BhY2UpPVwicmVtb3ZlTmF2YmFySXRlbShpKVwiXG4gICAgICAgICAgICAgICAgICAgICAgbmdiVG9vbHRpcD1cIlJlbW92ZSBOYXZiYXIgSXRlbVwiXG4gICAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvaT5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEgZC1mbGV4IGp1c3RpZnktY29udGVudC1lbmQgYWxpZ24taXRlbXMtc3RhcnQgbXQtMVwiPlxuICAgICAgICAgICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmEgZmEtYmFycyBjdXJzb3ItbW92ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgY2RrRHJhZ0hhbmRsZVxuICAgICAgICAgICAgICAgICAgICAgIG5nYlRvb2x0aXA9XCJEcmFnIHRvIHJlb3JkZXJcIlxuICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgID48L2k+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY29sLTEyIG10LTNcIlxuICAgICAgICAgICAgICAgICAgZm9ybUFycmF5TmFtZT1cInN1YnRpdGxlc1wiXG4gICAgICAgICAgICAgICAgICBjZGtEcm9wTGlzdFxuICAgICAgICAgICAgICAgICAgW2Nka0Ryb3BMaXN0RGF0YV09XCJnZXROYXZiYXJTdWJ0aXRsZXMoaSkuY29udHJvbHNcIlxuICAgICAgICAgICAgICAgICAgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJkcm9wTmF2YmFyU3VidGl0bGVzKGksICRldmVudClcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IHN1YiBvZiBnZXROYXZiYXJTdWJ0aXRsZXMoaSkuY29udHJvbHM7IGxldCBqID0gaW5kZXhcIlxuICAgICAgICAgICAgICAgICAgICBbZm9ybUdyb3VwTmFtZV09XCJqXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJyb3cgYm9yZGVyIHAtMyBtYi0yIGFsaWduLWl0ZW1zLWNlbnRlclwiXG4gICAgICAgICAgICAgICAgICAgIGNka0RyYWdcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC01XCI+XG4gICAgICAgICAgICAgICAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBsYWJlbD1cIlN1YnRpdGxlIFRpdGxlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cInRpdGxlXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC01XCI+XG4gICAgICAgICAgICAgICAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBsYWJlbD1cIlN1YnRpdGxlIFBhdGhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgZm9ybUNvbnRyb2xOYW1lPVwicGF0aFwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMSBkLWZsZXgganVzdGlmeS1jb250ZW50LWVuZCBhbGlnbi1pdGVtcy1zdGFydCBtdC0yXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmEgZmEtdHJhc2ggZGVsZXRlLWljb24gdGV4dC1kYW5nZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInJlbW92ZVN1YnRpdGxlKGksIGopXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cInJlbW92ZVN1YnRpdGxlKGksIGopXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChrZXlkb3duLnNwYWNlKT1cInJlbW92ZVN1YnRpdGxlKGksIGopXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5nYlRvb2x0aXA9XCJSZW1vdmUgU3VidGl0bGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICA+PC9pPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEgZC1mbGV4IGp1c3RpZnktY29udGVudC1lbmRcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmYSBmYS1iYXJzIGN1cnNvci1tb3ZlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNka0RyYWdIYW5kbGVcbiAgICAgICAgICAgICAgICAgICAgICAgIG5nYlRvb2x0aXA9XCJEcmFnIHRvIHJlb3JkZXIgc3VidGl0bGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICA+PC9pPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tc20gYnRuLXByaW1hcnkgbXQtMlwiIChjbGljayk9XCJhZGRTdWJ0aXRsZShpKVwiPlxuICAgICAgICAgICAgICAgICAgICArIEFkZCBTdWJ0aXRsZVxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IG10LTIgbWItMlwiIChjbGljayk9XCJhZGROYXZiYXJJdGVtKClcIj5cbiAgICAgICAgICAgICAgICArIEFkZCBOYXZiYXIgSXRlbVxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3AtYWNjb3JkaW9uVGFiPlxuXG5cbiAgICAgICAgPHAtYWNjb3JkaW9uVGFiIFtoZWFkZXJdPVwiJ0Zvb3RlciBMaW5rcyBTZWN0aW9uJ1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbXQtMyBtYi00XCIgZm9ybUdyb3VwTmFtZT1cImZvb3Rlcl9saW5rc1wiPlxuICAgICAgICAgICAgPGg0IGNsYXNzPVwibWItM1wiPkZvb3RlciBMaW5rcyBTZWN0aW9uPC9oND5cblxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBmb3JtQXJyYXlOYW1lPVwiaXRlbXNcIlxuICAgICAgICAgICAgICBjbGFzcz1cImNvbC0xMlwiXG4gICAgICAgICAgICAgIGNka0Ryb3BMaXN0XG4gICAgICAgICAgICAgIChjZGtEcm9wTGlzdERyb3BwZWQpPVwiZHJvcEl0ZW1zKGZvb3RlckxpbmtzSXRlbXMsICRldmVudClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZm9vdGVyTGlua3NJdGVtcy5jb250cm9sczsgbGV0IGkgPSBpbmRleFwiXG4gICAgICAgICAgICAgICAgW2Zvcm1Hcm91cE5hbWVdPVwiaVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJyb3cgbWItM1wiXG4gICAgICAgICAgICAgICAgY2RrRHJhZ1xuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cblxuICAgICAgICAgICAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBsYWJlbD1cIlRpdGxlXCIgY2xhc3M9XCJjb2wtbWQtNVwiPlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cInRpdGxlXCIgLz5cbiAgICAgICAgICAgICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuXG4gICAgICAgICAgICAgICAgICA8cHctaW5wdXQtY29udGFpbmVyIGxhYmVsPVwiUGF0aFwiIGNsYXNzPVwiY29sLW1kLTVcIj5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJwYXRoXCIgLz5cbiAgICAgICAgICAgICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kIGFsaWduLWl0ZW1zLXN0YXJ0IG10LTFcIj5cbiAgICAgICAgICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZhIGZhLXRyYXNoIGRlbGV0ZS1pY29uIHRleHQtZGFuZ2VyXCJcbiAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwicmVtb3ZlRm9vdGVyTGlua0l0ZW0oaSlcIlxuICAgICAgICAgICAgICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cInJlbW92ZUZvb3RlckxpbmtJdGVtKGkpXCJcbiAgICAgICAgICAgICAgICAgICAgICAoa2V5ZG93bi5zcGFjZSk9XCJyZW1vdmVGb290ZXJMaW5rSXRlbShpKVwiXG4gICAgICAgICAgICAgICAgICAgICAgbmdiVG9vbHRpcD1cIlJlbW92ZSBGb290ZXIgSXRlbVwiXG4gICAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvaT5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xIGQtZmxleCBhbGlnbi1pdGVtcy1zdGFydCBqdXN0aWZ5LWNvbnRlbnQtZW5kIG10LTFcIj5cbiAgICAgICAgICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZhIGZhLWJhcnMgY3Vyc29yLW1vdmVcIlxuICAgICAgICAgICAgICAgICAgICAgIGNka0RyYWdIYW5kbGVcbiAgICAgICAgICAgICAgICAgICAgICBuZ2JUb29sdGlwPVwiRHJhZyB0byByZW9yZGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICA+PC9pPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY29sLTEyIG10LTNcIlxuICAgICAgICAgICAgICAgICAgZm9ybUFycmF5TmFtZT1cInN1YnRpdGxlc1wiXG4gICAgICAgICAgICAgICAgICBjZGtEcm9wTGlzdFxuICAgICAgICAgICAgICAgICAgW2Nka0Ryb3BMaXN0RGF0YV09XCJnZXRGb290ZXJTdWJ0aXRsZXMoaSkuY29udHJvbHNcIlxuICAgICAgICAgICAgICAgICAgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJkcm9wRm9vdGVyU3VidGl0bGVzKGksICRldmVudClcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IHN1YiBvZiBnZXRGb290ZXJTdWJ0aXRsZXMoaSkuY29udHJvbHM7IGxldCBqID0gaW5kZXhcIlxuICAgICAgICAgICAgICAgICAgICBbZm9ybUdyb3VwTmFtZV09XCJqXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJyb3cgYm9yZGVyIHAtMyBtYi0yIGFsaWduLWl0ZW1zLWNlbnRlclwiXG4gICAgICAgICAgICAgICAgICAgIGNka0RyYWdcbiAgICAgICAgICAgICAgICAgID5cblxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTVcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8cHctaW5wdXQtY29udGFpbmVyIGxhYmVsPVwiU3VidGl0bGUgVGl0bGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgZm9ybUNvbnRyb2xOYW1lPVwidGl0bGVcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTVcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8cHctaW5wdXQtY29udGFpbmVyIGxhYmVsPVwiU3VidGl0bGUgUGF0aFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJwYXRoXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cblxuXG5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kIGFsaWduLWl0ZW1zLXN0YXJ0IG10LTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmYSBmYS10cmFzaCBkZWxldGUtaWNvbiB0ZXh0LWRhbmdlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwicmVtb3ZlRm9vdGVyU3VidGl0bGUoaSwgailcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwicmVtb3ZlRm9vdGVyU3VidGl0bGUoaSwgailcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGtleWRvd24uc3BhY2UpPVwicmVtb3ZlRm9vdGVyU3VidGl0bGUoaSwgailcIlxuICAgICAgICAgICAgICAgICAgICAgICAgbmdiVG9vbHRpcD1cIlJlbW92ZSBTdWJ0aXRsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgID48L2k+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEgZC1mbGV4IGp1c3RpZnktY29udGVudC1lbmRcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmYSBmYS1iYXJzIGN1cnNvci1tb3ZlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNka0RyYWdIYW5kbGVcbiAgICAgICAgICAgICAgICAgICAgICAgIG5nYlRvb2x0aXA9XCJEcmFnIHRvIHJlb3JkZXIgc3VidGl0bGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICA+PC9pPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tc20gYnRuLXByaW1hcnkgbXQtMlwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJhZGRGb290ZXJTdWJ0aXRsZShpKVwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICsgQWRkIFN1YnRpdGxlXG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IG10LTIgbWItMlwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImFkZEZvb3RlckxpbmtJdGVtKClcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgKyBBZGQgRm9vdGVyIExpbmtcbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9wLWFjY29yZGlvblRhYj5cblxuXG5cblxuXG4gICAgICAgIDxwLWFjY29yZGlvblRhYiBbaGVhZGVyXT1cIidHdWlkZXMgU2VjdGlvbidcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IG10LTMgbWItNFwiIGZvcm1Hcm91cE5hbWU9XCJndWlkZXNcIj5cbiAgICAgICAgICAgIDxoNCBjbGFzcz1cIm1iLTNcIj5HdWlkZXMgU2VjdGlvbjwvaDQ+XG5cbiAgICAgICAgICAgIDxkaXYgZm9ybUFycmF5TmFtZT1cIml0ZW1zXCIgY2xhc3M9XCJjb2wtMTJcIj5cbiAgICAgICAgICAgICAgPGRpdiBjZGtEcm9wTGlzdCAoY2RrRHJvcExpc3REcm9wcGVkKT1cImRyb3BJdGVtcyhndWlkZXNJdGVtcywgJGV2ZW50KVwiPlxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIGd1aWRlc0l0ZW1zLmNvbnRyb2xzOyBsZXQgaSA9IGluZGV4XCJcbiAgICAgICAgICAgICAgICAgIFtmb3JtR3JvdXBOYW1lXT1cImlcIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJib3JkZXIgcC0zIG1iLTNcIlxuICAgICAgICAgICAgICAgICAgY2RrRHJhZ1xuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgYWxpZ24taXRlbXMtc3RhcnRcIj5cblxuICAgICAgICAgICAgICAgICAgICA8cHctaW5wdXQtY29udGFpbmVyIGxhYmVsPVwiVGl0bGVcIiBjbGFzcz1cImNvbC1tZC01XCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJ0aXRsZVwiIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuXG4gICAgICAgICAgICAgICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgbGFiZWw9XCJCdXR0b24gVGV4dFwiIGNsYXNzPVwiY29sLW1kLTZcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cImJ1dHRvbl90ZXh0XCIgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMSBkLWZsZXggYWxpZ24taXRlbXMtc3RhcnQganVzdGlmeS1jb250ZW50LWVuZCBtdC0xXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmEgZmEtYmFycyBjdXJzb3ItbW92ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjZGtEcmFnSGFuZGxlXG4gICAgICAgICAgICAgICAgICAgICAgICBuZ2JUb29sdGlwPVwiRHJhZyB0byByZW9yZGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBtdC0yXCI+XG4gICAgICAgICAgICAgICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgbGFiZWw9XCJJbWFnZSBVUkxcIiBjbGFzcz1cImNvbC1tZC02XCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJpbWFnZV91cmxcIiAvPlxuICAgICAgICAgICAgICAgICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgICAgICAgICA8cHctaW5wdXQtY29udGFpbmVyIGxhYmVsPVwiR3VpZGUgVVJMXCIgY2xhc3M9XCJjb2wtbWQtNlwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgZm9ybUNvbnRyb2xOYW1lPVwiZ3VpZGVfdXJsXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBtdC0yXCI+XG4gICAgICAgICAgICAgICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgbGFiZWw9XCJEZXNjcmlwdGlvblwiIGNsYXNzPVwiY29sLW1kLTExXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPHRleHRhcmVhXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICByb3dzPVwiNVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJkZXNjcmlwdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdpcy1pbnZhbGlkJzogc3VibWl0dGVkICYmIGZbJ2Rlc2NyaXB0aW9uJ10/LmVycm9ycyB9XCJcbiAgICAgICAgICAgICAgICAgICAgICA+PC90ZXh0YXJlYT5cbiAgICAgICAgICAgICAgICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xIGQtZmxleCBhbGlnbi1pdGVtcy1zdGFydCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIG10LTNcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmYSBmYS10cmFzaCBkZWxldGUtaWNvbiB0ZXh0LWRhbmdlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwicmVtb3ZlR3VpZGVJdGVtKGkpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cInJlbW92ZUd1aWRlSXRlbShpKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoa2V5ZG93bi5zcGFjZSk9XCJyZW1vdmVHdWlkZUl0ZW0oaSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgbmdiVG9vbHRpcD1cIlJlbW92ZSBHdWlkZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgID48L2k+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXN0YXJ0IG10LTJcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiIChjbGljayk9XCJhZGRHdWlkZUl0ZW0oKVwiPlxuICAgICAgICAgICAgICAgICAgKyBBZGQgR3VpZGVcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9wLWFjY29yZGlvblRhYj5cblxuXG5cbiAgICAgICAgPHAtYWNjb3JkaW9uVGFiIFtoZWFkZXJdPVwiJ0FCIFRlc3RzIFNlY3Rpb24nXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBtdC0zIG1iLTRcIj5cbiAgICAgICAgICAgIDxoNCBjbGFzcz1cIm1iLTNcIj5BQiBUZXN0czwvaDQ+XG4gICAgICAgICAgICA8ZGl2IGZvcm1BcnJheU5hbWU9XCJhYl90ZXN0c1wiIGNsYXNzPVwiY29sLTEyXCIgY2RrRHJvcExpc3QgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJkcm9wSXRlbXMoYWJUZXN0cywgJGV2ZW50KVwiPlxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGFiVGVzdCBvZiBhYlRlc3RzLmNvbnRyb2xzOyBsZXQgaSA9IGluZGV4XCJcbiAgICAgICAgICAgICAgICBbZm9ybUdyb3VwTmFtZV09XCJpXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInJvdyBtYi0zIGJvcmRlciBwLTNcIlxuICAgICAgICAgICAgICAgIGNka0RyYWdcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgbGFiZWw9XCJEZXNjcmlwdGlvblwiIGNsYXNzPVwiY29sLW1kLTVcIj5cbiAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgZm9ybUNvbnRyb2xOYW1lPVwiZGVzY3JpcHRpb25cIiAvPlxuICAgICAgICAgICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuXG4gICAgICAgICAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBsYWJlbD1cIkV4cGVyaW1lbnQgTmFtZVwiIGNsYXNzPVwiY29sLW1kLTZcIj5cbiAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgZm9ybUNvbnRyb2xOYW1lPVwiZXhwZXJpbWVudF9uYW1lXCIgLz5cbiAgICAgICAgICAgICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cblxuXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xIGQtZmxleCBhbGlnbi1pdGVtcy1zdGFydCBqdXN0aWZ5LWNvbnRlbnQtZW5kIG10LTFcIj5cbiAgICAgICAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmEgZmEtYmFycyBjdXJzb3ItbW92ZVwiXG4gICAgICAgICAgICAgICAgICAgIGNka0RyYWdIYW5kbGVcbiAgICAgICAgICAgICAgICAgICAgbmdiVG9vbHRpcD1cIkRyYWcgdG8gcmVvcmRlclwiXG4gICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICA+PC9pPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBsYWJlbD1cIkRCIFNoYXJkXCIgY2xhc3M9XCJjb2wtbWQtNlwiPlxuICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJkYl9zaGFyZFwiIC8+XG4gICAgICAgICAgICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgICA8cHctaW5wdXQtY29udGFpbmVyIGxhYmVsPVwiTWljcm9zZXJ2aWNlIE5hbWVcIiBjbGFzcz1cImNvbC1tZC02XCI+XG4gICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cIm1pY3Jvc2VydmljZV9uYW1lXCIgLz5cbiAgICAgICAgICAgICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgdGV4dC1lbmQgbXQtMlwiPlxuICAgICAgICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmYSBmYS10cmFzaCBkZWxldGUtaWNvbiB0ZXh0LWRhbmdlclwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJyZW1vdmVBYlRlc3QoaSlcIlxuICAgICAgICAgICAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJyZW1vdmVBYlRlc3QoaSlcIlxuICAgICAgICAgICAgICAgICAgICAoa2V5ZG93bi5zcGFjZSk9XCJyZW1vdmVBYlRlc3QoaSlcIlxuICAgICAgICAgICAgICAgICAgICBuZ2JUb29sdGlwPVwiUmVtb3ZlIEFCIFRlc3RcIlxuICAgICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgPjwvaT5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtc3RhcnQgbXQtMlwiPlxuICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCIgKGNsaWNrKT1cImFkZEFiVGVzdCgpXCI+KyBBZGQgQUIgVGVzdDwvYnV0dG9uPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3AtYWNjb3JkaW9uVGFiPlxuXG5cblxuXG5cbiAgICAgICAgPHAtYWNjb3JkaW9uVGFiIFtoZWFkZXJdPVwiJ0NvbWluZyBzb29uIHBhZ2VzIC0gU3Vic2NyaWJlIHRvIG5ld3NsZXR0ZXIgKFRPIERJU0NPTlRJTlVFKSdcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxuICAgICAgICAgICAgPHA+Q29taW5nU29vbiBQYWdlcyB3aWxsIGVuYWJsZSB1c2VycyB0byBzdWJzY3JpYmUgdG8gTmV3c2xldHRlcnMgYW5kIGFyZSBhY2Nlc3NpYmxlIGF0IHRoZSBpbnRlcm5hbCBwYXRoc1xuICAgICAgICAgICAgICAvam9pbi9jczEsIC9qb2luL2NzMiwgZXRjLjwvcD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1lbmRcIiAqbmdJZj1cInNoYXJkVXJsXCI+XG4gICAgICAgICAgICA8c3Bhbj5TZWUgdGhlIGxpdmUgcGFnZSA8c3BhbiBjbGFzcz1cInRvb2x0aXAtd3JhcCBtcy0xXCIgW2FwcGVuZFRvXT1cIidib2R5J1wiXG4gICAgICAgICAgICAgICAgW3BUb29sdGlwXT1cIidBZG1pbi5Eb21haW5Db25maWcuVG9vbHRpcC5TZWVMaXZlQ3MnIHwgdHJhbnNsb2NvXCIgdG9vbHRpcFBvc2l0aW9uPVwidG9wXCI+XG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtaW5mby1jaXJjbGVcIj48L2k+XG4gICAgICAgICAgICAgIDwvc3Bhbj4gOiA8YSBbaHJlZl09XCJzaGFyZFVybCArICcvam9pbi9jczEnXCIgdGFyZ2V0PVwiX2JsYW5rXCI+e3sgc2hhcmRVcmwgfX0vam9pbi9jczE8L2E+PC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLTNcIj5cbiAgICAgICAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBbbGFiZWxdPVwiJ0FkbWluLkRvbWFpbkNvbmZpZy5Dc1Byb2R1Y3QnIHwgdHJhbnNsb2NvXCIgW3Nob3dUb29sdGlwXT1cInRydWVcIlxuICAgICAgICAgICAgICAgIFt0b29sdGlwVGV4dF09XCInQWRtaW4uRG9tYWluQ29uZmlnLlRvb2x0aXAuQ3NQcm9kdWN0JyB8IHRyYW5zbG9jb1wiIG5hbWU9XCJjc19wcm9kdWN0X2lkXCI+XG4gICAgICAgICAgICAgICAgPHAtYXV0b0NvbXBsZXRlIFtzdWdnZXN0aW9uc109XCJwcm9kdWN0c0xpc3RcIiBmb3JtQ29udHJvbE5hbWU9XCJjc19wcm9kdWN0X2lkXCIgZGF0YUtleT1cImlkXCIgZmllbGQ9XCJuYW1lXCJcbiAgICAgICAgICAgICAgICAgIFtkcm9wZG93bl09XCJ0cnVlXCIgW2RlbGF5XT1cIjEwMDBcIiAoY29tcGxldGVNZXRob2QpPVwic2VhcmNoUHJvZHVjdCgkZXZlbnQpXCIgc3R5bGVDbGFzcz1cInctMTAwXCJcbiAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiU2VhcmNoIFByb2R1Y3RcIiBbaW5wdXRTdHlsZV09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm0uZ2V0KCdjc19wcm9kdWN0X2lkJykudG91Y2hlZCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybS5nZXQoJ2NzX3Byb2R1Y3RfaWQnKS5pbnZhbGlkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB7IGJvcmRlcjogJzFweCBzb2xpZCAjZmY1ODZiJyB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB7IGJvcmRlcjogJzFweCBzb2xpZCBncmF5JyB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiIFttdWx0aXBsZV09XCJmYWxzZVwiPlxuICAgICAgICAgICAgICAgIDwvcC1hdXRvQ29tcGxldGU+XG4gICAgICAgICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS0zXCI+XG4gICAgICAgICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgW2xhYmVsXT1cIidBZG1pbi5Eb21haW5Db25maWcuQ3NDcm1Tb3VyY2VJZCcgfCB0cmFuc2xvY29cIiBuYW1lPVwiY3NfY3JtX3NvdXJjZV9pZFwiXG4gICAgICAgICAgICAgICAgW3Nob3dUb29sdGlwXT1cInRydWVcIiBbdG9vbHRpcFRleHRdPVwiJ0FkbWluLkRvbWFpbkNvbmZpZy5Ub29sdGlwLkNzQ3JtU291cmNlSWQnIHwgdHJhbnNsb2NvXCI+XG4gICAgICAgICAgICAgICAgPHAtZHJvcGRvd24gW29wdGlvbnNdPVwiY3JtU291cmNlc0xpc3RcIiBmb3JtQ29udHJvbE5hbWU9XCJjc19jcm1fc291cmNlX2lkXCJcbiAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2lzLWludmFsaWQnOiBzdWJtaXR0ZWQgJiYgZlsnY3NfY3JtX3NvdXJjZV9pZCddPy5lcnJvcnMgfVwiIFtwbGFjZWhvbGRlcl09XCInU2VsZWN0IENSTSBTb3VyY2UnXCJcbiAgICAgICAgICAgICAgICAgIG9wdGlvblZhbHVlPVwiaWRcIiBvcHRpb25MYWJlbD1cIm5hbWVcIj5cbiAgICAgICAgICAgICAgICA8L3AtZHJvcGRvd24+XG4gICAgICAgICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS0zXCI+XG4gICAgICAgICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgW2xhYmVsXT1cIidBZG1pbi5Eb21haW5Db25maWcuQ3NQZGZTb3VyY2VJZCcgfCB0cmFuc2xvY29cIiBuYW1lPVwiY3NfcGRmX3NvdXJjZV9pZFwiXG4gICAgICAgICAgICAgICAgW3Nob3dUb29sdGlwXT1cInRydWVcIiBbdG9vbHRpcFRleHRdPVwiJ0FkbWluLkRvbWFpbkNvbmZpZy5Ub29sdGlwLkNzUGRmU291cmNlSWQnIHwgdHJhbnNsb2NvXCI+XG4gICAgICAgICAgICAgICAgPHAtZHJvcGRvd24gW29wdGlvbnNdPVwiY3JtU291cmNlc0xpc3RcIiBmb3JtQ29udHJvbE5hbWU9XCJjc19wZGZfc291cmNlX2lkXCJcbiAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2lzLWludmFsaWQnOiBzdWJtaXR0ZWQgJiYgZlsnY3NfcGRmX3NvdXJjZV9pZCddPy5lcnJvcnMgfVwiIFtwbGFjZWhvbGRlcl09XCInU2VsZWN0IENSTSBTb3VyY2UnXCJcbiAgICAgICAgICAgICAgICAgIG9wdGlvblZhbHVlPVwiaWRcIiBvcHRpb25MYWJlbD1cIm5hbWVcIj5cbiAgICAgICAgICAgICAgICA8L3AtZHJvcGRvd24+XG4gICAgICAgICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS0zXCI+PC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS0zXCI+XG4gICAgICAgICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgW2xhYmVsXT1cIidBZG1pbi5Eb21haW5Db25maWcuQ3NWaWRlb1VybCcgfCB0cmFuc2xvY29cIiBuYW1lPVwiY3NfdmlkZW9fdXJsXCIgW3Nob3dUb29sdGlwXT1cInRydWVcIlxuICAgICAgICAgICAgICAgIFt0b29sdGlwVGV4dF09XCInQWRtaW4uRG9tYWluQ29uZmlnLlRvb2x0aXAuQ3NWaWRlb1VybCcgfCB0cmFuc2xvY29cIj5cbiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cImNzX3ZpZGVvX3VybFwiXG4gICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdpcy1pbnZhbGlkJzogc3VibWl0dGVkICYmIGZbJ2NzX3ZpZGVvX3VybCddLmVycm9ycyB9XCIgLz5cbiAgICAgICAgICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLTNcIj5cbiAgICAgICAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBbbGFiZWxdPVwiJ0FkbWluLkRvbWFpbkNvbmZpZy5Dc0Jvb2tEZW1vVXJsJyB8IHRyYW5zbG9jb1wiIG5hbWU9XCJjc19ib29rX2RlbW9fdXJsXCJcbiAgICAgICAgICAgICAgICBbc2hvd1Rvb2x0aXBdPVwidHJ1ZVwiIFt0b29sdGlwVGV4dF09XCInQWRtaW4uRG9tYWluQ29uZmlnLlRvb2x0aXAuQ3NCb29rRGVtb1VybCcgfCB0cmFuc2xvY29cIj5cbiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cImNzX2Jvb2tfZGVtb191cmxcIlxuICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnaXMtaW52YWxpZCc6IHN1Ym1pdHRlZCAmJiBmWydjc19ib29rX2RlbW9fdXJsJ10uZXJyb3JzIH1cIiAvPlxuICAgICAgICAgICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMlwiPlxuICAgICAgICAgICAgICA8cHctaW5wdXQtY29udGFpbmVyIFtsYWJlbF09XCInQWRtaW4uRG9tYWluQ29uZmlnLkNzQ3RhSWZyYW1lJyB8IHRyYW5zbG9jb1wiIG5hbWU9XCJjc19jdGFfaWZyYW1lXCJcbiAgICAgICAgICAgICAgICBbc2hvd1Rvb2x0aXBdPVwidHJ1ZVwiIFt0b29sdGlwVGV4dF09XCInQWRtaW4uRG9tYWluQ29uZmlnLlRvb2x0aXAuQ3NDdGFJZnJhbWUnIHwgdHJhbnNsb2NvXCI+XG4gICAgICAgICAgICAgICAgPHRleHRhcmVhIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgcm93cz1cIjNcIiBmb3JtQ29udHJvbE5hbWU9XCJjc19jdGFfaWZyYW1lXCJcbiAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2lzLWludmFsaWQnOiBzdWJtaXR0ZWQgJiYgZlsnY3NfY3RhX2lmcmFtZSddLmVycm9ycyB9XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZXh0YXJlYT5cbiAgICAgICAgICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTJcIj5cbiAgICAgICAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBbbGFiZWxdPVwiJ0FkbWluLkRvbWFpbkNvbmZpZy5Dc0pvaW5NZXNzYWdlJyB8IHRyYW5zbG9jb1wiIG5hbWU9XCJjc19qb2luX21lc3NhZ2VcIlxuICAgICAgICAgICAgICAgIFtzaG93VG9vbHRpcF09XCJ0cnVlXCIgW3Rvb2x0aXBUZXh0XT1cIidBZG1pbi5Eb21haW5Db25maWcuVG9vbHRpcC5Dc0pvaW5NZXNzYWdlJyB8IHRyYW5zbG9jb1wiPlxuICAgICAgICAgICAgICAgIDx0ZXh0YXJlYSBjbGFzcz1cImZvcm0tY29udHJvbFwiIHJvd3M9XCIzXCIgZm9ybUNvbnRyb2xOYW1lPVwiY3Nfam9pbl9tZXNzYWdlXCJcbiAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2lzLWludmFsaWQnOiBzdWJtaXR0ZWQgJiYgZlsnY3Nfam9pbl9tZXNzYWdlJ10uZXJyb3JzIH1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RleHRhcmVhPlxuICAgICAgICAgICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMlwiPlxuICAgICAgICAgICAgICA8cHctaW5wdXQtY29udGFpbmVyIFtsYWJlbF09XCInQWRtaW4uRG9tYWluQ29uZmlnLkNzUGRmRG93bmxvYWRUZXh0JyB8IHRyYW5zbG9jb1wiIG5hbWU9XCJjc19wZGZfZG93bmxvYWRfdGV4dFwiXG4gICAgICAgICAgICAgICAgW3Nob3dUb29sdGlwXT1cInRydWVcIiBbdG9vbHRpcFRleHRdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdBZG1pbi5Eb21haW5Db25maWcuVG9vbHRpcC5Dc1BkZkRvd25sb2FkVGV4dCcgfCB0cmFuc2xvY29cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIj5cbiAgICAgICAgICAgICAgICA8dGV4dGFyZWEgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiByb3dzPVwiM1wiIGZvcm1Db250cm9sTmFtZT1cImNzX3BkZl9kb3dubG9hZF90ZXh0XCIgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2lzLWludmFsaWQnOiBzdWJtaXR0ZWQgJiYgZlsnY3NfcGRmX2Rvd25sb2FkX3RleHQnXS5lcnJvcnNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dGFyZWE+XG4gICAgICAgICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiIG1hdGNoSGVpZ2h0PVwiY2FyZFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC00XCI+XG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJjc19pbWFnZVwiPnt7ICdBZG1pbi5Eb21haW5Db25maWcuQ3NJbWFnZScgfCB0cmFuc2xvY28gfX0gPHNwYW4gY2xhc3M9XCJpbmZvLWNpcmNsZVwiPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0b29sdGlwdGV4dCBncmFkaWVudC1jdXN0b20tYnJhbmRpbmdcIj57eyAnQWRtaW4uRG9tYWluQ29uZmlnLlRvb2x0aXAuQ3NJbWFnZScgfCB0cmFuc2xvY29cbiAgICAgICAgICAgICAgICAgICAgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICA8cHctY3VzdG9tLXVwbG9hZGVyIChzYXZlRXZlbnQpPVwib25TYXZlRmlsZSgkZXZlbnQpXCIgW2FzcGVjdFJhdGlvXT1cIidjdXN0b20nXCIgW3RpdGxlXT1cIidDcyBJbWFnZSdcIlxuICAgICAgICAgICAgICAgIFtjb250cm9sTmFtZV09XCInY3NfaW1hZ2UnXCIgW3ByZXZpZXdEYXRhXT1cImRhdGFbJ2NzX2ltYWdlJ11cIj5cbiAgICAgICAgICAgICAgPC9wdy1jdXN0b20tdXBsb2FkZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNFwiPlxuICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiY3NfaW1hZ2UyXCI+e3sgJ0FkbWluLkRvbWFpbkNvbmZpZy5Dc0ltYWdlMicgfCB0cmFuc2xvY28gfX0gPHNwYW4gY2xhc3M9XCJpbmZvLWNpcmNsZVwiPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0b29sdGlwdGV4dCBncmFkaWVudC1jdXN0b20tYnJhbmRpbmdcIj57eyAnQWRtaW4uRG9tYWluQ29uZmlnLlRvb2x0aXAuQ3NJbWFnZTInIHwgdHJhbnNsb2NvXG4gICAgICAgICAgICAgICAgICAgIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgPHB3LWN1c3RvbS11cGxvYWRlciAoc2F2ZUV2ZW50KT1cIm9uU2F2ZUZpbGUoJGV2ZW50KVwiIFthc3BlY3RSYXRpb109XCInY3VzdG9tJ1wiIFt0aXRsZV09XCInQ3MgSW1hZ2UyJ1wiXG4gICAgICAgICAgICAgICAgW2NvbnRyb2xOYW1lXT1cIidjc19pbWFnZTInXCIgW3ByZXZpZXdEYXRhXT1cImRhdGFbJ2NzX2ltYWdlMiddXCI+XG4gICAgICAgICAgICAgIDwvcHctY3VzdG9tLXVwbG9hZGVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTRcIj5cbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImNzX3BkZl9pbWFnZVwiPnt7ICdBZG1pbi5Eb21haW5Db25maWcuQ3NQZGZJbWFnZScgfCB0cmFuc2xvY28gfX0gPHNwYW4gY2xhc3M9XCJpbmZvLWNpcmNsZVwiPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0b29sdGlwdGV4dCBncmFkaWVudC1jdXN0b20tYnJhbmRpbmdcIj57eyAnQWRtaW4uRG9tYWluQ29uZmlnLlRvb2x0aXAuQ3NQZGZJbWFnZScgfCB0cmFuc2xvY29cbiAgICAgICAgICAgICAgICAgICAgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICA8cHctY3VzdG9tLXVwbG9hZGVyIChzYXZlRXZlbnQpPVwib25TYXZlRmlsZSgkZXZlbnQpXCIgW2FzcGVjdFJhdGlvXT1cIidjdXN0b20nXCIgW3RpdGxlXT1cIidDcyBQZGYgSW1hZ2UnXCJcbiAgICAgICAgICAgICAgICBbY29udHJvbE5hbWVdPVwiJ2NzX3BkZl9pbWFnZSdcIiBbcHJldmlld0RhdGFdPVwiZGF0YVsnY3NfcGRmX2ltYWdlJ11cIj5cbiAgICAgICAgICAgICAgPC9wdy1jdXN0b20tdXBsb2FkZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNFwiPlxuICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiY3NfaW1hZ2VfYmdcIj57eyAnQWRtaW4uRG9tYWluQ29uZmlnLkNzSW1hZ2VCZycgfCB0cmFuc2xvY28gfX0gPHNwYW4gY2xhc3M9XCJpbmZvLWNpcmNsZVwiPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0b29sdGlwdGV4dCBncmFkaWVudC1jdXN0b20tYnJhbmRpbmdcIj57eyAnQWRtaW4uRG9tYWluQ29uZmlnLlRvb2x0aXAuQ3NJbWFnZUJnJyB8IHRyYW5zbG9jb1xuICAgICAgICAgICAgICAgICAgICB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgIDxwdy1jdXN0b20tdXBsb2FkZXIgKHNhdmVFdmVudCk9XCJvblNhdmVGaWxlKCRldmVudClcIiBbYXNwZWN0UmF0aW9dPVwiJ2N1c3RvbSdcIiBbdGl0bGVdPVwiJ0NzIFBkZiBJbWFnZSBCZydcIlxuICAgICAgICAgICAgICAgIFtjb250cm9sTmFtZV09XCInY3NfaW1hZ2VfYmcnXCIgW3ByZXZpZXdEYXRhXT1cImRhdGFbJ2NzX2ltYWdlX2JnJ11cIj5cbiAgICAgICAgICAgICAgPC9wdy1jdXN0b20tdXBsb2FkZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNFwiPlxuICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiY3NfaW1hZ2VfYmcyXCI+e3sgJ0FkbWluLkRvbWFpbkNvbmZpZy5Dc0ltYWdlQmcyJyB8IHRyYW5zbG9jbyB9fSA8c3BhbiBjbGFzcz1cImluZm8tY2lyY2xlXCI+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRvb2x0aXB0ZXh0IGdyYWRpZW50LWN1c3RvbS1icmFuZGluZ1wiPnt7ICdBZG1pbi5Eb21haW5Db25maWcuVG9vbHRpcC5Dc0ltYWdlQmcyJyB8IHRyYW5zbG9jb1xuICAgICAgICAgICAgICAgICAgICB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgIDxwdy1jdXN0b20tdXBsb2FkZXIgKHNhdmVFdmVudCk9XCJvblNhdmVGaWxlKCRldmVudClcIiBbYXNwZWN0UmF0aW9dPVwiJ2N1c3RvbSdcIiBbdGl0bGVdPVwiJ0NzIFBkZiBJbWFnZSBCZzInXCJcbiAgICAgICAgICAgICAgICBbY29udHJvbE5hbWVdPVwiJ2NzX2ltYWdlX2JnMidcIiBbcHJldmlld0RhdGFdPVwiZGF0YVsnY3NfaW1hZ2VfYmcyJ11cIj5cbiAgICAgICAgICAgICAgPC9wdy1jdXN0b20tdXBsb2FkZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9wLWFjY29yZGlvblRhYj5cbiAgICAgIDwvcC1hY2NvcmRpb24+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIHRleHQtZW5kIG10LTNcIj5cbiAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lLWRlZmF1bHQgbWUtMlwiXG4gICAgICAgIChjbGljayk9XCJiYWNrKClcIj5cbiAgICAgICAge3sgJ0J1dHRvbi5DYW5jZWwnIHwgdHJhbnNsb2NvIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiIFtidXR0b25CdXN5XT1cImJ1dHRvbkJ1c3lcIlxuICAgICAgICBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiPnt7ICdCdXR0b24uU3VibWl0JyB8IHRyYW5zbG9jbyB9fTwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Zvcm0+XG48L25nLWNvbnRhaW5lcj5cbjxkaXYgKm5nSWY9XCIhZGF0YT8uaG9zdF9uYW1lICYmICFpc0xvYWRpbmdcIj5cbiAgPHB3LW5vLWRhdGEgW3dpdGhJbWFnZV09XCJ0cnVlXCIgW21lc3NhZ2VdPVwiJ0FkbWluLkRvbWFpbkNvbmZpZy5FbmFibGVDb25maWdUYWInIHwgdHJhbnNsb2NvXCI+IDwvcHctbm8tZGF0YT5cbjwvZGl2PlxuXG5cbjxuZy10ZW1wbGF0ZSAjcGFydG5lckNyb3BwZXIgbGV0LW1vZGFsPlxuICA8ZGl2IGNsYXNzPVwibW9kYWwtaGVhZGVyXCI+XG4gICAgPGg1IGNsYXNzPVwibW9kYWwtdGl0bGVcIj5VcGxvYWQgUGFydG5lciBJbWFnZTwvaDU+XG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4tY2xvc2VcIiBhcmlhLWxhYmVsPVwiQ2xvc2VcIiAoY2xpY2spPVwibW9kYWwuZGlzbWlzcygpXCI+PC9idXR0b24+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwibW9kYWwtYm9keVwiPlxuICAgIDxzbWFsbD5Zb3UgY2FuIHVwbG9hZCBKUEcsIFBORywgb3IgR0lGIGZpbGVzLiBBdm9pZCBpbWFnZXMgd2l0aCBjZWxlYnJpdGllcywgbnVkaXR5LCBvciBhcnR3b3JrLjwvc21hbGw+XG4gICAgPHB3LWltYWdlLWNyb3BwZXJcbiAgICAgIGFzcGVjdFJhdGlvPVwiYXV0b1wiXG4gICAgICAoaW1hZ2VTZWxlY3Rpb25FdmVudCk9XCJvblBhcnRuZXJJbWFnZVNlbGVjdGVkKCRldmVudClcIlxuICAgICAgKGNsb3NlRXZlbnQpPVwib25DbG9zZVBhcnRuZXJNb2RhbCgpXCJcbiAgICA+PC9wdy1pbWFnZS1jcm9wcGVyPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|