asp-lib 1.1.1 → 1.1.3

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.
@@ -194,6 +194,17 @@ export class EntityAdminComponent {
194
194
  this.reloadSubject?.next(true);
195
195
  }
196
196
  }
197
+ else {
198
+ if (response.responseCode === 208) {
199
+ this.snackbar.warning('Este correo ya se encuentra registrado');
200
+ }
201
+ else if (response.responseCode === 209) {
202
+ this.snackbar.warning('Este nombre de usuario ya se encuentra registrado');
203
+ }
204
+ else {
205
+ this.snackbar.warning('Ha ocurrido un error al guardar');
206
+ }
207
+ }
197
208
  },
198
209
  error: (error) => {
199
210
  console.log(error);
@@ -390,4 +401,4 @@ function parseType(value, type) {
390
401
  return value;
391
402
  }
392
403
  }
393
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LWFkbWluLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FzcC1saWIvc3JjL2xpYi9lbnRpdHktYWRtaW4vZW50aXR5LWFkbWluLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FzcC1saWIvc3JjL2xpYi9lbnRpdHktYWRtaW4vZW50aXR5LWFkbWluLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQTRCLEtBQUssRUFBbUMsTUFBTSxlQUFlLENBQUM7QUFDNUcsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBR3JFLE9BQU8sRUFBYyxFQUFFLEVBQVcsTUFBTSxNQUFNLENBQUM7QUFHL0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7OztBQUV2RCxNQUFNLFNBQVMsR0FBRyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFFBQVEsRUFBRSxvQkFBb0IsRUFBRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsQ0FBQztBQUNwSSxNQUFNLGFBQWEsR0FBRyxFQUFFLFFBQVEsRUFBRSxlQUFlLEVBQUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFFBQVEsRUFBRSxvQkFBb0IsRUFBRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsQ0FBQztBQUNsSixNQUFNLFFBQVEsR0FBRyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsQ0FBQTtBQVNsSSxN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O2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csb0JBQW9CO3NCQUE1QixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyx3QkFBd0I7c0JBQWhDLEtBQUs7Z0JBQ0csdUJBQXVCO3NCQUEvQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7O0FBZ1RQLFNBQVMsU0FBUyxDQUFDLEtBQVUsRUFBRSxJQUFhO0lBQzNDLFFBQVEsSUFBSSxFQUFFO1FBQ2IsS0FBSyxVQUFVO1lBQ2QsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsV0FBVyxFQUFFLEtBQUssTUFBTSxDQUFDO1lBQzlDLE1BQU07UUFDUDtZQUNDLE9BQU8sS0FBSyxDQUFBO0tBQ2I7QUFDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVHlwZSwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBSb2xlQ2FyZENvbXBvbmVudCB9IGZyb20gJy4uL3JvbGUtY2FyZC9yb2xlLWNhcmQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ2RrRHJhZ0Ryb3AsIENka0Ryb3BMaXN0IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XHJcbmltcG9ydCB7IFNlY3VyaXR5QWRtaW5TZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvc2VjdXJpdHktYWRtaW4uc2VydmljZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFNuYWNrYmFyU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3NuYWNrYmFyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBGb3JtRmllbGQsIFNlY3VyaXR5RW5kcG9pbnQgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2ludGVyZmFjZXMnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVQaXBlIH0gZnJvbSAnLi4vcGlwZXMvdHJhbnNsYXRlLnBpcGUnO1xyXG5pbXBvcnQgeyByZW1vdmVBcnJheUR1cGxpY2F0ZXMgfSBmcm9tICcuLi91dGlscy91dGlscyc7XHJcblxyXG5jb25zdCBuYW1lT3JkZXIgPSB7IHByb3BlcnR5OiAnbmFtZScsIGFzY0ljb246ICdtZW51LWFscGhhYmV0LWFzYycsIGRlc2NJY29uOiAnbWVudS1hbHBoYWJldC1kZXNjJywgdG9vbHRpcDogJ09yZGVuYXIgcG9yIG5vbWJyZScgfTtcclxuY29uc3QgY3VzdG9tZXJPcmRlciA9IHsgcHJvcGVydHk6ICdjdXN0b21lci5uYW1lJywgYXNjSWNvbjogJ21lbnUtY3VzdG9tZXItYXNjJywgZGVzY0ljb246ICdtZW51LWN1c3RvbWVyLWRlc2MnLCB0b29sdGlwOiAnT3JkZW5hciBwb3IgZW1wcmVzYScgfTtcclxuY29uc3QgbGFzdG5hbWUgPSB7IHByb3BlcnR5OiAnbGFzdG5hbWUnLCBhc2NJY29uOiAnbWVudS11c2VyLXJpZ2h0JywgZGVzY0ljb246ICdtZW51LXVzZXItbGVmdCcsIHRvb2x0aXA6ICdPcmRlbmFyIHBvciBhcGVsbGlkbycgfVxyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG5cdHNlbGVjdG9yOiAnbGliLXVzZXJzLWFkbWluJyxcclxuXHR0ZW1wbGF0ZVVybDogJy4vZW50aXR5LWFkbWluLmNvbXBvbmVudC5odG1sJyxcclxuXHRzdHlsZVVybHM6IFsnLi4vYXNzZXRzL2ZvbnRzL3N0eWxlLmNzcycsICcuLi9hc3NldHMvdGhlbWUuc2NzcycsICcuL2VudGl0eS1hZG1pbi5jb21wb25lbnQuc2NzcyddLFxyXG5cdHByb3ZpZGVyczogW1RyYW5zbGF0ZVBpcGVdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFbnRpdHlBZG1pbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblx0QElucHV0KCkgdGhlbWU6IHN0cmluZyA9ICdkZWZhdWx0JztcclxuXHRASW5wdXQoKSBsaXN0VGl0bGU6IHN0cmluZyA9ICcnO1xyXG5cdEBJbnB1dCgpIGxpc3RJY29uOiBzdHJpbmcgPSAnJztcclxuXHRASW5wdXQoKSBsaXN0SXRlbUljb246IHN0cmluZyA9ICcnO1xyXG5cdEBJbnB1dCgpIGVudGl0eTogXCJVc2VyXCIgfCBcIkN1c3RvbWVyXCIgfCBcIlJvbGVcIiA9IFwiVXNlclwiO1xyXG5cdEBJbnB1dCgpIGVudGl0eU5hbWU6IHN0cmluZyA9ICcnO1xyXG5cdEBJbnB1dCgpIGVudGl0eUFjdGlvbnM6IGFueVtdID0gW107XHJcblx0QElucHV0KCkgZW50aXR5Rm9ybTogRm9ybUZpZWxkW10gPSBbXTtcclxuXHRASW5wdXQoKSBlbnRpdHlMaXN0RW5kcG9pbnQ6IHN0cmluZyA9ICcnO1xyXG5cdEBJbnB1dCgpIGVudGl0eUl0ZW1zRW5kcG9pbnQ6IFNlY3VyaXR5RW5kcG9pbnQgPSB7IHVybDogJyd9O1xyXG5cdEBJbnB1dCgpIGVudGl0eUxpc3Q6IGFueVtdID0gW107XHJcblx0QElucHV0KCkgZW50aXR5VWlDb21wb25lbnQ6IFR5cGU8YW55PiB8IG51bGwgPSBudWxsO1xyXG5cdEBJbnB1dCgpIHVpQ29tcG9uZW50SW5wdXRzOiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0ge307XHJcblx0QElucHV0KCkgc2VhcmNoRmlsdGVyPzogRnVuY3Rpb247XHJcblx0QElucHV0KCkgY3VzdG9tZXJMaXN0OiBhbnlbXSA9IFtdO1xyXG5cdEBJbnB1dCgpIHJvbGVMaXN0OiBhbnlbXSA9IFtdO1xyXG5cdEBJbnB1dCgpIHVzZXJMaXN0OiBhbnlbXSA9IFtdO1xyXG5cdEBJbnB1dCgpIGN1c3RvbWVyTGlzdEVuZHBvaW50OiBTZWN1cml0eUVuZHBvaW50ID0geyB1cmw6ICcnIH07XHJcblx0QElucHV0KCkgYWdlbmN5TGlzdEVuZHBvaW50OiBTZWN1cml0eUVuZHBvaW50ID0geyB1cmw6ICcnIH07XHJcblx0QElucHV0KCkgcm9sZUxpc3RFbmRwb2ludDogU2VjdXJpdHlFbmRwb2ludCA9IHsgdXJsOiAnJyB9O1xyXG5cdEBJbnB1dCgpIHVzZXJMaXN0RW5kcG9pbnQ6IFNlY3VyaXR5RW5kcG9pbnQgPSB7IHVybDogJycgfTtcclxuXHRASW5wdXQoKSBzYXZlRW50aXR5RW5kcG9pbnQ6IHN0cmluZyA9ICcnO1xyXG5cdEBJbnB1dCgpIGVudGl0eUxpc3RSZXF1ZXN0TWFwcGluZzogRnVuY3Rpb24gPSAocmVzcG9uc2U6IGFueSkgPT4gb2YocmVzcG9uc2UpO1xyXG5cdEBJbnB1dCgpIHVzZXJzQnlDdXN0b21lckVuZHBvaW50OiBzdHJpbmcgPSAnJztcclxuXHRASW5wdXQoKSByZWxvYWRTdWJqZWN0PzogU3ViamVjdDxib29sZWFuPjtcclxuXHRASW5wdXQoKSBpdGVtU2VsZWN0ZWQ6IEZ1bmN0aW9uID0gKCkgPT4geyB9O1xyXG5cdEBJbnB1dCgpIHJlc2V0SXRlbVNlbGVjdGVkPzogU3ViamVjdDxib29sZWFuPjtcclxuXHRyb2xlQ2FyZCA9IFJvbGVDYXJkQ29tcG9uZW50O1xyXG5cdGZvcm1Db250cm9sczogeyBba2V5OiBzdHJpbmddOiBGb3JtQ29udHJvbCB9ID0ge307XHJcblx0c2VsZWN0ZWRJdGVtOiBhbnkgPSB7IGlkOiBudWxsIH07XHJcblx0c2VsZWN0ZWRVc2VyOiBhbnk7XHJcblx0bG9hZGluZ1VzZXJSb2xlczogYm9vbGVhbiA9IGZhbHNlO1xyXG5cdGxvYWRpbmdVc2VyQ3VzdG9tZXJSb2xlczogYm9vbGVhbiA9IGZhbHNlO1xyXG5cdGdldCB1c2VyU3ViamVjdCgpIHsgcmV0dXJuIHRoaXMuc2VjdXJpdHlBZG1pblNlcnZpY2Uuc2VsZWN0ZWRVc2VyU3ViamVjdCB9XHJcblx0Z2V0IGN1c3RvbWVyU3ViamVjdCgpIHsgcmV0dXJuIHRoaXMuc2VjdXJpdHlBZG1pblNlcnZpY2Uuc2VsZWN0ZWRDdXN0b21lclN1YmplY3QgfVxyXG5cdGdldCByb2xlU3ViamVjdCgpIHsgcmV0dXJuIHRoaXMuc2VjdXJpdHlBZG1pblNlcnZpY2Uuc2VsZWN0ZWRSb2xlU3ViamVjdCB9XHJcblx0Z2V0IGRpc2FibGVDcmVhdGlvbigpIHsgcmV0dXJuIHRoaXMuc2VjdXJpdHlBZG1pblNlcnZpY2UuYmxvY2tDcmVhdGlvbkZvci5oYXModGhpcy5lbnRpdHkpIH1cclxuXHRnZXQgZGlzYWJsZUZvcm0oKSB7IHJldHVybiAhdGhpcy5pc0l0ZW1TZWxlY3RlZCAmJiB0aGlzLmRpc2FibGVDcmVhdGlvbiB9XHJcblxyXG5cdGdldCB1c2VyQXNzaWduZWRSb2xlcygpIHsgcmV0dXJuIHRoaXMuc2VsZWN0ZWRVc2VyPy5yb2xlcyA/PyBbXSB9XHJcblx0Z2V0IHVzZXJDdXN0b21lckFzc2lnbmVkUm9sZXMoKSB7IHJldHVybiB0aGlzLnNlbGVjdGVkVXNlcj8uY3VzdG9tZXJSb2xlcyA/PyBbXSB9XHJcblx0Z2V0IG1haW5MaXN0T3JkZXJQcm9wZXJ0aWVzKCkge1xyXG5cdFx0c3dpdGNoICh0aGlzLmVudGl0eSkge1xyXG5cdFx0XHRjYXNlICdVc2VyJzpcclxuXHRcdFx0XHRyZXR1cm4gW25hbWVPcmRlciwgbGFzdG5hbWVdO1xyXG5cdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRkZWZhdWx0OlxyXG5cdFx0XHRcdHJldHVybiBbbmFtZU9yZGVyXTtcclxuXHRcdFx0XHRicmVhaztcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdGNvbnN0cnVjdG9yKHByaXZhdGUgc2VjdXJpdHlBZG1pblNlcnZpY2U6IFNlY3VyaXR5QWRtaW5TZXJ2aWNlLCBwcml2YXRlIHNuYWNrYmFyOiBTbmFja2JhclNlcnZpY2UsIHByaXZhdGUgdHJhbnNsYXRlUGlwZTogVHJhbnNsYXRlUGlwZSkge1xyXG5cclxuXHR9XHJcblxyXG5cdGdldCBmb3JtVGl0bGUoKSB7IHJldHVybiBgJHt0aGlzLnRyYW5zbGF0ZVBpcGUudHJhbnNmb3JtKHRoaXMuc2VsZWN0ZWRJdGVtLmlkID8gXCJFZGl0XCIgOiBcIkNyZWF0ZVwiKX0gJHt0aGlzLnRyYW5zbGF0ZVBpcGUudHJhbnNmb3JtKHRoaXMuZW50aXR5TmFtZSl9YCB9XHJcblxyXG5cclxuXHRhZ2VuY3lFbmRwb2ludFBhcmFtczogRnVuY3Rpb24gPSAoY3VzdG9tZXI6IGFueSkgPT4gYGN1c3RvbWVySWQ9JHtjdXN0b21lci5pZH1gXHJcblxyXG5cdGdldCBpc0l0ZW1TZWxlY3RlZCgpIHtcclxuXHRcdHJldHVybiB0eXBlb2YgKHRoaXMuc2VsZWN0ZWRJdGVtPy5pZCkgPT09ICdudW1iZXInO1xyXG5cdH1cclxuXHJcblx0bmdPbkluaXQoKSB7XHJcblx0XHR0aGlzLmZvcm1Db250cm9scyA9IHRoaXMuZW50aXR5Rm9ybS5yZWR1Y2UoKG9iamVjdCwgZmllbGQpID0+ICh7IC4uLm9iamVjdCwgW2ZpZWxkLm5hbWVdOiBuZXcgRm9ybUNvbnRyb2w8YW55PihmaWVsZC5kZWZhdWx0VmFsdWUgPz8gbnVsbCkgfSksIHt9KVxyXG5cdFx0dGhpcy5zZWN1cml0eUFkbWluU2VydmljZS5zdWJqZWN0c1t0aGlzLmVudGl0eV0uc3Vic2NyaWJlKHtcclxuXHRcdFx0bmV4dDogKGl0ZW0pID0+IHtcclxuXHRcdFx0XHR0aGlzLnNlbGVjdGVkSXRlbSA9IGl0ZW07XHJcblx0XHRcdFx0T2JqZWN0LmVudHJpZXModGhpcy5mb3JtQ29udHJvbHMpLmZvckVhY2goKFtuYW1lLCBjb250cm9sXSkgPT4ge1xyXG5cdFx0XHRcdFx0bGV0IGZpZWxkID0gdGhpcy5lbnRpdHlGb3JtLmZpbmQoeCA9PiB4Lm5hbWUgPT09IG5hbWUpO1xyXG5cdFx0XHRcdFx0Y29udHJvbC5wYXRjaFZhbHVlKHBhcnNlVHlwZShpdGVtW25hbWVdLCBmaWVsZD8udHlwZSkpO1xyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHRcdHRoaXMuc2VjdXJpdHlBZG1pblNlcnZpY2Uuc2VsZWN0ZWRVc2VyU3ViamVjdC5zdWJzY3JpYmUoe1xyXG5cdFx0XHRuZXh0OiAodXNlcikgPT4ge1xyXG5cdFx0XHRcdHRoaXMuc2VsZWN0ZWRVc2VyID0gdXNlcjtcclxuXHRcdFx0XHRpZiAodXNlci5pZCAhPT0gbnVsbCkge1xyXG5cdFx0XHRcdFx0dGhpcy5sb2FkaW5nVXNlclJvbGVzID0gdHJ1ZTtcclxuXHRcdFx0XHRcdHRoaXMuc2VjdXJpdHlBZG1pblNlcnZpY2UuZ2V0QXNzaWduZWRSb2xlcyh1c2VyLmlkLCBcIlVzZXJcIikuc3Vic2NyaWJlKHtcclxuXHRcdFx0XHRcdFx0bmV4dDogKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuXHRcdFx0XHRcdFx0XHRpZiAocmVzcG9uc2UucmVzcG9uc2VDb2RlID09PSAyMDApIHtcclxuXHRcdFx0XHRcdFx0XHRcdHRoaXMubG9hZGluZ1VzZXJDdXN0b21lclJvbGVzID0gdHJ1ZTtcclxuXHRcdFx0XHRcdFx0XHRcdHRoaXMuc2VjdXJpdHlBZG1pblNlcnZpY2UuZ2V0VXNlclJvbGVzQnlDdXN0b21lcnModXNlcikuc3Vic2NyaWJlKHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0bmV4dDogKGN1c3RvbWVyUmVzcG9uc2U6IGFueSkgPT4ge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdGlmIChjdXN0b21lclJlc3BvbnNlLnJlc3BvbnNlQ29kZSA9PT0gMjAwKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR0aGlzLnNlbGVjdGVkVXNlciA9IHsgLi4udXNlciwgcm9sZXM6IHJlc3BvbnNlLmxvYWQsIGN1c3RvbWVyUm9sZXM6IHJlbW92ZUFycmF5RHVwbGljYXRlcyhjdXN0b21lclJlc3BvbnNlLmxvYWQpIH1cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0dGhpcy5zZWxlY3RlZFVzZXIgPSB7IC4uLnVzZXIsIHJvbGVzOiByZXNwb25zZS5sb2FkIH1cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHRoaXMubG9hZGluZ1VzZXJSb2xlcyA9IGZhbHNlO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHR0aGlzLmxvYWRpbmdVc2VyQ3VzdG9tZXJSb2xlcyA9IGZhbHNlO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRlcnJvcjogKCkgPT4gdGhpcy5sb2FkaW5nVXNlckN1c3RvbWVyUm9sZXMgPSBmYWxzZVxyXG5cdFx0XHRcdFx0XHRcdFx0fSlcclxuXHRcdFx0XHRcdFx0XHRcdC8vIGlmICh1c2VyLmN1c3RvbWVyPy5pZCkge1xyXG5cdFx0XHRcdFx0XHRcdFx0Ly8gXHR0aGlzLmxvYWRpbmdVc2VyQ3VzdG9tZXJSb2xlcyA9IHRydWU7XHJcblx0XHRcdFx0XHRcdFx0XHQvLyBcdHRoaXMuc2VjdXJpdHlBZG1pblNlcnZpY2UuZ2V0QXNzaWduZWRSb2xlcyh1c2VyLmN1c3RvbWVyLmlkLCBcIkN1c3RvbWVyXCIpLnN1YnNjcmliZSh7XHJcblx0XHRcdFx0XHRcdFx0XHQvLyBcdFx0bmV4dDogKGN1c3RvbWVyUmVzcG9uc2U6IGFueSkgPT4ge1xyXG5cdFx0XHRcdFx0XHRcdFx0Ly8gXHRcdFx0aWYgKGN1c3RvbWVyUmVzcG9uc2UucmVzcG9uc2VDb2RlID09PSAyMDApIHtcclxuXHRcdFx0XHRcdFx0XHRcdC8vIFx0XHRcdFx0dGhpcy5zZWxlY3RlZFVzZXIgPSB7IC4uLnVzZXIsIHJvbGVzOiByZXNwb25zZS5sb2FkLCBjdXN0b21lclJvbGVzOiBjdXN0b21lclJlc3BvbnNlLmxvYWQgfVxyXG5cdFx0XHRcdFx0XHRcdFx0Ly8gXHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdFx0Ly8gXHRcdFx0dGhpcy5sb2FkaW5nVXNlckN1c3RvbWVyUm9sZXMgPSBmYWxzZTtcclxuXHRcdFx0XHRcdFx0XHRcdC8vIFx0XHR9LFxyXG5cdFx0XHRcdFx0XHRcdFx0Ly8gXHRcdGVycm9yOiBfID0+IHRoaXMubG9hZGluZ1VzZXJDdXN0b21lclJvbGVzID0gZmFsc2VcclxuXHRcdFx0XHRcdFx0XHRcdC8vIFx0fSlcclxuXHRcdFx0XHRcdFx0XHRcdC8vIH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0XHQvLyBcdHRoaXMuc2VsZWN0ZWRVc2VyID0geyAuLi51c2VyLCByb2xlczogcmVzcG9uc2UubG9hZCB9XHJcblx0XHRcdFx0XHRcdFx0XHQvLyBcdHRoaXMubG9hZGluZ1VzZXJSb2xlcyA9IGZhbHNlO1xyXG5cdFx0XHRcdFx0XHRcdFx0Ly8gfVxyXG5cdFx0XHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0XHR0aGlzLnNlbGVjdGVkVXNlciA9IHsgLi4udXNlciwgcm9sZXM6IHJlc3BvbnNlLmxvYWQgfVxyXG5cdFx0XHRcdFx0XHRcdFx0dGhpcy5sb2FkaW5nVXNlclJvbGVzID0gZmFsc2U7XHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdHRoaXMubG9hZGluZ1VzZXJSb2xlcyA9IGZhbHNlO1xyXG5cdFx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0XHRlcnJvcjogKCkgPT4gdGhpcy5sb2FkaW5nVXNlclJvbGVzID0gZmFsc2VcclxuXHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHRcdHRoaXMucmVzZXRJdGVtU2VsZWN0ZWQ/LnN1YnNjcmliZSh7XHJcblx0XHRcdG5leHQ6ICgpID0+IHtcclxuXHRcdFx0XHR0aGlzLnJlc2V0Rm9ybSgpO1xyXG5cdFx0XHR9XHJcblx0XHR9KVxyXG5cdH1cclxuXHJcblx0c2VsZWN0SXRlbShuZXdJdGVtOiBhbnkpIHtcclxuXHRcdHN3aXRjaCAodGhpcy5lbnRpdHkpIHtcclxuXHRcdFx0Y2FzZSBcIlVzZXJcIjpcclxuXHRcdFx0XHR0aGlzLnNlY3VyaXR5QWRtaW5TZXJ2aWNlLnNlbGVjdFVzZXIobmV3SXRlbSk7XHJcblx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdGNhc2UgXCJDdXN0b21lclwiOlxyXG5cdFx0XHRcdHRoaXMuc2VjdXJpdHlBZG1pblNlcnZpY2Uuc2VsZWN0Q3VzdG9tZXIobmV3SXRlbSk7XHJcblx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdGNhc2UgXCJSb2xlXCI6XHJcblx0XHRcdFx0dGhpcy5zZWN1cml0eUFkbWluU2VydmljZS5zZWxlY3RSb2xlKG5ld0l0ZW0pO1xyXG5cdFx0XHRcdGJyZWFrO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0c2F2ZUl0ZW0oKSB7XHJcblx0XHR0aGlzLnNuYWNrYmFyLmluZm8oXCJHdWFyZGFuZG8uLi5cIiwgMzAwMCk7XHJcblx0XHRsZXQgbmV3SW5mbyA9IHRoaXMuZW50aXR5Rm9ybS5yZWR1Y2UoKGFjYywgZmllbGQpID0+IGZpZWxkLnJlcXVpcmVzTmV3VmFsdWUgP1xyXG5cdFx0XHQoQm9vbGVhbih0aGlzLmZvcm1Db250cm9sc1tmaWVsZC5uYW1lXS52YWx1ZSkgPyB7IC4uLmFjYywgW2ZpZWxkLm5hbWVdOiB0aGlzLmZvcm1Db250cm9sc1tmaWVsZC5uYW1lXS52YWx1ZSB9IDogeyAuLi5hY2MgfSkgOlxyXG5cdFx0XHQoeyAuLi5hY2MsIFtmaWVsZC5uYW1lXTogdGhpcy5mb3JtQ29udHJvbHNbZmllbGQubmFtZV0udmFsdWUgfSksXHJcblx0XHRcdHt9XHJcblx0XHQpO1xyXG5cdFx0Y29uc29sZS53YXJuKCdlbnRpdHlGb3JtJywgdGhpcy5lbnRpdHlGb3JtLCB0aGlzLmZvcm1Db250cm9scywgbmV3SW5mbyk7XHJcblx0XHR0aGlzLnNlbGVjdGVkSXRlbSA9ICAgeyBpZDogdGhpcy5zZWxlY3RlZEl0ZW0uaWQsIC4uLm5ld0luZm8gfTtcclxuXHRcdHRoaXMuc2VjdXJpdHlBZG1pblNlcnZpY2Uuc2F2ZUl0ZW0odGhpcy5zYXZlRW50aXR5RW5kcG9pbnQsIHsgaWQ6IHRoaXMuc2VsZWN0ZWRJdGVtLmlkLCAuLi5uZXdJbmZvIH0pLnN1YnNjcmliZSh7XHJcblx0XHRcdG5leHQ6IChyZXNwb25zZTogYW55KSA9PiB7XHJcblx0XHRcdFx0aWYgKHJlc3BvbnNlLnJlc3BvbnNlQ29kZSA9PT0gMjAwKSB7XHJcblx0XHRcdFx0XHRpZiAodGhpcy5lbnRpdHkgPT09ICdSb2xlJykge1xyXG5cdFx0XHRcdFx0XHR0aGlzLnNlbGVjdGVkSXRlbS5pZCA9IHJlc3BvbnNlLmxvYWQuaWQ7XHJcblx0XHRcdFx0XHRcdGlmICh0aGlzLnNlbGVjdGVkSXRlbS5yZXNvdXJjZXMgIT0gbnVsbCkge1xyXG5cdFx0XHRcdFx0XHRcdHRoaXMuc2VjdXJpdHlBZG1pblNlcnZpY2UuYXNzaWduUmVzb3VyY2UodGhpcy5zZWxlY3RlZEl0ZW0uaWQsIHRoaXMuc2VsZWN0ZWRJdGVtLnJlc291cmNlcykuc3Vic2NyaWJlKHtcclxuXHRcdFx0XHRcdFx0XHRcdG5leHQ6IChhc3NpZ25SZXNwb25zZTogYW55KSA9PiB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdGlmIChhc3NpZ25SZXNwb25zZS5yZXBvbnNlQ29kZSA9PT0gMjAwKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHRcdFx0dGhpcy5zZWxlY3RJdGVtKHJlc3BvbnNlLmxvYWQpO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHR0aGlzLnNuYWNrYmFyLnN1Y2Nlc3MoYCR7dGhpcy50cmFuc2xhdGVQaXBlLnRyYW5zZm9ybSh0aGlzLmVudGl0eU5hbWUpfSAke3RoaXMuc2VsZWN0ZWRJdGVtLmlkID09PSBudWxsID8gJ0NyZWFkbycgOiAnR3VhcmRhZG8nfWApO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHR0aGlzLnJlbG9hZFN1YmplY3Q/Lm5leHQodHJ1ZSk7XHJcblx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0fSlcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRpZiAodGhpcy5zZWxlY3RlZEl0ZW0ubWVudU9wdGlvbnMgIT0gbnVsbCkge1xyXG5cdFx0XHRcdFx0XHRcdHRoaXMuc2VjdXJpdHlBZG1pblNlcnZpY2UuYXNzaWduT3B0aW9ucyh0aGlzLnNlbGVjdGVkSXRlbS5pZCwgdGhpcy5zZWxlY3RlZEl0ZW0ubWVudU9wdGlvbnMpLnN1YnNjcmliZSh7XHJcblx0XHRcdFx0XHRcdFx0XHRuZXh0OiAoYXNzaWduUmVzcG9uc2U6IGFueSkgPT4ge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRpZiAoYXNzaWduUmVzcG9uc2UucmVwb25zZUNvZGUgPT09IDIwMCkge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0XHRcdHRoaXMuc2VsZWN0SXRlbShyZXNwb25zZS5sb2FkKTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0dGhpcy5zbmFja2Jhci5zdWNjZXNzKGAke3RoaXMudHJhbnNsYXRlUGlwZS50cmFuc2Zvcm0odGhpcy5lbnRpdHlOYW1lKX0gJHt0aGlzLnNlbGVjdGVkSXRlbS5pZCA9PT0gbnVsbCA/ICdDcmVhZG8nIDogJ0d1YXJkYWRvJ31gKTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0dGhpcy5yZWxvYWRTdWJqZWN0Py5uZXh0KHRydWUpO1xyXG5cdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0XHRcdH1cdFx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdHRoaXMuc2VsZWN0SXRlbShyZXNwb25zZS5sb2FkKTtcclxuXHRcdFx0XHRcdFx0dGhpcy5zbmFja2Jhci5zdWNjZXNzKGAke3RoaXMudHJhbnNsYXRlUGlwZS50cmFuc2Zvcm0odGhpcy5lbnRpdHlOYW1lKX0gJHt0aGlzLnNlbGVjdGVkSXRlbS5pZCA9PT0gbnVsbCA/ICdDcmVhZG8nIDogJ0d1YXJkYWRvJ31gKTtcclxuXHRcdFx0XHRcdFx0dGhpcy5yZWxvYWRTdWJqZWN0Py5uZXh0KHRydWUpO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0ZXJyb3I6IChlcnJvcikgPT4ge1xyXG5cdFx0XHRcdGNvbnNvbGUubG9nKGVycm9yKTtcclxuXHRcdFx0XHR0aGlzLnNuYWNrYmFyLndhcm5pbmcoJ0hhIG9jdXJyaWRvIHVuIGVycm9yIGFsIGd1YXJkYXInKTtcclxuXHRcdFx0XHR0aGlzLnJlbG9hZFN1YmplY3Q/Lm5leHQodHJ1ZSk7XHJcblx0XHRcdH1cclxuXHRcdH0pOztcclxuXHR9XHJcblxyXG5cdGdldCB1c2VyTGFiZWwoKSB7XHJcblx0XHRyZXR1cm4gKGl0ZW06IGFueSkgPT4gYCR7aXRlbS5uYW1lfSAke2l0ZW0ubGFzdG5hbWUgPz8gJyd9YFxyXG5cdH1cclxuXHJcblx0cmVzZXRGb3JtKGV2ZW50PzogYW55KSB7XHJcblx0XHR0aGlzLnNlbGVjdEl0ZW0oeyBpZDogbnVsbCwgLi4udGhpcy5lbnRpdHlGb3JtLnJlZHVjZSgoYWNjOiBhbnksIGN1cnI6IGFueSkgPT4gY3Vyci5kZWZhdWx0VmFsdWUgIT09IHVuZGVmaW5lZCA/ICh7IC4uLmFjYywgW2N1cnIubmFtZV06IGN1cnIuZGVmYXVsdFZhbHVlIH0pIDogKHsgLi4uYWNjIH0pLCB7fSkgfSk7XHJcblx0fVxyXG5cclxuXHRnZXQgY3VycmVudEN1c3RvbWVyVXNlcnMoKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5zZWxlY3RlZEl0ZW0udXNlcnMgPz8gW107XHJcblx0fVxyXG5cclxuXHRnZXQgdXNlckN1c3RvbWVyc0VuZHBvaW50KCkge1xyXG5cdFx0cmV0dXJuIHRoaXMuc2VjdXJpdHlBZG1pblNlcnZpY2UuZW5kcG9pbnRzLmN1c3RvbWVyc0J5VXNlciA/PyB7IHVybDogJycgfTtcclxuXHR9XHJcblxyXG5cdGdldCB1c2VyQWdlbmNpZXNFbmRwb2ludCgpIHtcclxuXHRcdHJldHVybiB0aGlzLnNlY3VyaXR5QWRtaW5TZXJ2aWNlLmVuZHBvaW50cy5hZ2VuY2llc0J5VXNlciA/PyB7IHVybDogJycgfTtcclxuXHR9XHJcblxyXG5cdGdldCBjdXN0b21lclVzZXJzRW5kcG9pbnQoKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5zZWN1cml0eUFkbWluU2VydmljZS5lbmRwb2ludHMudXNlcnNCeUN1c3RvbWVyO1xyXG5cdH1cclxuXHJcblx0Z2V0IGN1c3RvbWVyUm9sZXNFbmRwb2ludCgpIHtcclxuXHRcdHJldHVybiAodHlwZW9mKHRoaXMuc2VsZWN0ZWRJdGVtLmlkKSA9PT0gJ251bWJlcicpID8gdGhpcy5zZWN1cml0eUFkbWluU2VydmljZS5lbmRwb2ludHMucm9sZXNCeUN1c3RvbWVyPy51cmwgKyAnP2N1c3RvbWVySWQ9JyArIHRoaXMuc2VsZWN0ZWRJdGVtLmlkIDogJyc7XHJcblx0fVxyXG5cclxuXHRnZXQgYWdlbmN5TGlzdEVuZHBvaW50MigpIHtcclxuXHRcdHJldHVybiB0aGlzLnNlY3VyaXR5QWRtaW5TZXJ2aWNlLmVuZHBvaW50cy5saXN0QWxsQWdlbmNpZXMgPz8geyB1cmw6ICcnIH07XHJcblx0fVxyXG5cclxuXHJcblx0Z2V0IHJvbGVVc2Vyc0VuZHBvaW50KCkge1xyXG5cdFx0cmV0dXJuIHRoaXMuc2VjdXJpdHlBZG1pblNlcnZpY2UuZW5kcG9pbnRzLnVzZXJzQnlSb2xlO1xyXG5cdH1cclxuXHJcblx0Z2V0IHJvbGVDdXN0b21lcnNFbmRwb2ludCgpIHtcclxuXHRcdHJldHVybiB0aGlzLnNlY3VyaXR5QWRtaW5TZXJ2aWNlLmVuZHBvaW50cy5jdXN0b21lcnNCeVJvbGU7XHJcblx0fVxyXG5cclxuXHRhc3NpZ25DdXN0b21lclRvVXNlcihjdXN0b21lcjogYW55KSB7XHJcblx0XHR0aGlzLnNlbGVjdEl0ZW0oeyAuLi50aGlzLnNlbGVjdGVkSXRlbSwgY3VzdG9tZXIgfSk7XHJcblx0fVxyXG5cclxuXHRhc3NpZ25DdXN0b21lcnNBbmRBZ2VuY2llcyhpdGVtczogeyBwcmltYXJ5SXRlbXM6IGFueVtdLCBzZWNvbmRhcnlJdGVtczogYW55W10gfSkge1xyXG5cdFx0dGhpcy5zbmFja2Jhci5pbmZvKCdHdWFyZGFuZG8uLi4nKTtcclxuXHRcdHRoaXMuc2VjdXJpdHlBZG1pblNlcnZpY2UuYXNzaWduVXNlckN1c3RvbWVyQW5kQWdlbmNpZXModGhpcy5zZWxlY3RlZEl0ZW0uaWQsIGl0ZW1zLnByaW1hcnlJdGVtcywgaXRlbXMuc2Vjb25kYXJ5SXRlbXMpLnN1YnNjcmliZSh7XHJcblx0XHRcdG5leHQ6IChyZXNwb25zZTogYW55KSA9PiB7XHJcblx0XHRcdFx0aWYgKHJlc3BvbnNlLnJlc3BvbnNlQ29kZSA9PT0gMjAwKSB7XHJcblx0XHRcdFx0XHR0aGlzLnNuYWNrYmFyLnN1Y2Nlc3MoJ0VtcHJlc2FzL2FnZW5jaWFzIGFjdHVhbGl6YWRhcycpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRlbHNlIHtcclxuXHRcdFx0XHRcdHRoaXMuc25hY2tiYXIud2FybmluZygnT2N1cnJpw7MgdW4gZXJyb3IgYWwgYXNpZ25hciBFbXByZXNhcycpXHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LCBlcnJvcjogKCkgPT4gdGhpcy5zbmFja2Jhci53YXJuaW5nKCdPY3VycmnDsyB1biBlcnJvciBhbCBhc2lnbmFyIEVtcHJlc2FzJylcclxuXHJcblx0XHR9KVxyXG5cdFx0Ly8gbGV0IGN1c3RvbWVycyA9IGl0ZW1zLnByaW1hcnlJdGVtcztcclxuXHRcdC8vIGxldCBhZ2VuY2llcyA9IGl0ZW1zLnNlY29uZGFyeUl0ZW1zO1xyXG5cdFx0Ly8gY29uc29sZS5sb2coJ3RyeSB0byBzYXZlJywgY3VzdG9tZXJzLCBhZ2VuY2llcywgdGhpcy5zZWxlY3RlZEl0ZW0pO1xyXG5cdFx0Ly8gbGV0IHN1Y2Nlc3NDdXN0b21lcnMgPSBmYWxzZTtcclxuXHRcdC8vIHRoaXMuc25hY2tiYXIuaW5mbygnR3VhcmRhbmRvLi4uJyk7XHJcblx0XHQvLyB0aGlzLnNlY3VyaXR5QWRtaW5TZXJ2aWNlLmFzc2lnblVzZXJDdXN0b21lcnModGhpcy5zZWxlY3RlZEl0ZW0uaWQsIGN1c3RvbWVycykuc3Vic2NyaWJlKHtcclxuXHRcdC8vIFx0bmV4dDogKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuXHRcdC8vIFx0XHRpZiAocmVzcG9uc2UucmVzcG9uc2VDb2RlID09PSAyMDApIHtcclxuXHRcdC8vIFx0XHRcdGlmIChhZ2VuY2llcz8ubGVuZ3RoID4gMCkge1xyXG5cdFx0Ly8gXHRcdFx0XHR0aGlzLnNlY3VyaXR5QWRtaW5TZXJ2aWNlLmFzc2lnblVzZXJBZ2VuY2llcyh0aGlzLnNlbGVjdGVkSXRlbS5pZCwgYWdlbmNpZXMpLnN1YnNjcmliZSh7XHJcblx0XHQvLyBcdFx0XHRcdFx0bmV4dDogKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuXHRcdC8vIFx0XHRcdFx0XHRcdGlmIChyZXNwb25zZS5yZXNwb25zZUNvZGUgPT09IDIwMCkge1xyXG5cdFx0Ly8gXHRcdFx0XHRcdFx0XHR0aGlzLnNuYWNrYmFyLnN1Y2Nlc3MoJ0VtcHJlc2FzIHkgYWdlbmNpYXMgYXNpZ25hZGFzJyk7XHJcblx0XHQvLyBcdFx0XHRcdFx0XHR9XHJcblx0XHQvLyBcdFx0XHRcdFx0fSxcclxuXHRcdC8vIFx0XHRcdFx0XHRlcnJvcjogXz0+IHRoaXMuc25hY2tiYXIud2FybmluZygnSGEgb2N1cnJpZG8gdW4gZXJyb3IgYWwgYXNpZ25hciBBZ2VuY2lhcycpXHJcblx0XHQvLyBcdFx0XHRcdH0pO1xyXG5cdFx0Ly8gXHRcdFx0fSBlbHNlIHtcclxuXHJcblx0XHQvLyBcdFx0XHR9XHJcblx0XHQvLyBcdFx0fSBlbHNlIHtcclxuXHRcdC8vIFx0XHRcdHRoaXMuc25hY2tiYXIud2FybmluZygnSGEgb2N1cnJpZG8gdW4gZXJyb3IgYWwgYXNpZ25hciBFbXByZXNhcycpXHJcblx0XHQvLyBcdFx0fVxyXG5cdFx0Ly8gXHR9LCBlcnJvcjogXz0+IHRoaXMuc25hY2tiYXIud2FybmluZygnSGEgb2N1cnJpZG8gdW4gZXJyb3IgYWwgYXNpZ25hciBFbXByZXNhcycpXHJcblx0XHQvLyB9KTtcclxuXHR9XHJcblxyXG5cdGFzc2lnblVzZXJzVG9DdXN0b21lcih1c2VyczogYW55W10pIHtcclxuXHRcdC8vIHRoaXMuc2VsZWN0ZWRJdGVtID0geyAuLi50aGlzLnNlbGVjdGVkSXRlbSwgdXNlcnM6IHVzZXJzIH07XHJcblx0XHQvLyB0aGlzLnNhdmVJdGVtKCk7XHJcblx0XHR0aGlzLnNuYWNrYmFyLmluZm8oJ0d1YXJkYW5kby4uLicpO1xyXG5cdFx0dGhpcy5zZWN1cml0eUFkbWluU2VydmljZS5hc3NpZ25DdXN0b21lclVzZXJzKHRoaXMuc2VsZWN0ZWRJdGVtLCB1c2Vycykuc3Vic2NyaWJlKHtcclxuXHRcdFx0bmV4dDogKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuXHRcdFx0XHRpZiAocmVzcG9uc2UucmVzcG9uc2VDb2RlID09PSAyMDApIHtcclxuXHRcdFx0XHRcdHRoaXMuc25hY2tiYXIuc3VjY2VzcygnVXN1YXJpb3MgYXNpZ25hZG9zJyk7XHJcblx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdHRoaXMuc25hY2tiYXIud2FybmluZygnSGEgb2N1cnJpZG8gdW4gZXJyb3IgYWwgYXNpZ25hciB1c3VhcmlvcycpXHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRlcnJvcjogKCkgPT4gdGhpcy5zbmFja2Jhci53YXJuaW5nKCdIYSBvY3VycmlkbyB1biBlcnJvciBhbCBhc2lnbmFyIHVzdWFyaW9zJylcclxuXHRcdH0pXHJcblx0fVxyXG5cclxuXHRhc3NpZ25Vc2Vyc1RvUm9sZSh1c2VyczogYW55W10pIHtcclxuXHRcdHRoaXMuc25hY2tiYXIuaW5mbygnR3VhcmRhbmRvLi4uJylcclxuXHRcdHRoaXMuc2VjdXJpdHlBZG1pblNlcnZpY2UuYXNzaWduUm9sZVVzZXJzKHRoaXMuc2VsZWN0ZWRJdGVtLmlkLCB1c2Vycykuc3Vic2NyaWJlKHtcclxuXHRcdFx0bmV4dDogKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuXHRcdFx0XHRpZiAocmVzcG9uc2UucmVzcG9uc2VDb2RlID09PSAyMDApIHtcclxuXHRcdFx0XHRcdHRoaXMuc25hY2tiYXIuc3VjY2VzcygnVXN1YXJpb3MgYXNpZ25hZG9zJyk7XHJcblx0XHRcdFx0XHR0aGlzLnJlbG9hZFN1YmplY3Q/Lm5leHQodHJ1ZSk7XHJcblx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdHRoaXMuc25hY2tiYXIud2FybmluZygnT2N1cnJpw7MgdW4gZXJyb3IgYWwgYXNpZ25hciB1c3Vhcmlvcy4nKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sXHJcblx0XHRcdGVycm9yOiAoKSA9PiB0aGlzLnNuYWNrYmFyLndhcm5pbmcoJ09jdXJyacOzIHVuIGVycm9yIGFsIGFzaWduYXIgdXN1YXJpb3MuJylcclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0YXNzaWduQ3VzdG9tZXJzVG9Sb2xlKGN1c3RvbWVyczogYW55W10pIHtcclxuXHRcdHRoaXMuc25hY2tiYXIuaW5mbygnR3VhcmRhbmRvLi4uJylcclxuXHRcdHRoaXMuc2VjdXJpdHlBZG1pblNlcnZpY2UuYXNzaWduUm9sZUN1c3RvbWVycyh0aGlzLnNlbGVjdGVkSXRlbS5pZCwgY3VzdG9tZXJzKS5zdWJzY3JpYmUoe1xyXG5cdFx0XHRuZXh0OiAocmVzcG9uc2U6IGFueSkgPT4ge1xyXG5cdFx0XHRcdGlmIChyZXNwb25zZS5yZXNwb25zZUNvZGUgPT09IDIwMCkge1xyXG5cdFx0XHRcdFx0dGhpcy5zbmFja2Jhci5zdWNjZXNzKCdFbXByZXNhcyBhc2lnbmFkYXMnKTtcclxuXHRcdFx0XHRcdHRoaXMucmVsb2FkU3ViamVjdD8ubmV4dCh0cnVlKTtcclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0dGhpcy5zbmFja2Jhci53YXJuaW5nKCdPY3VycmnDsyB1biBlcnJvciBhbCBhc2lnbmFyIGVtcHJlc2FzLicpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0ZXJyb3I6ICgpID0+IHRoaXMuc25hY2tiYXIud2FybmluZygnT2N1cnJpw7MgdW4gZXJyb3IgYWwgYXNpZ25hciBlbXByZXNhcy4nKVxyXG5cdFx0fSk7XHJcblx0fVxyXG5cdGdldCBtYWluVGFiVGl0bGUoKSB7IHJldHVybiBgRWRpdCAke3RoaXMubGlzdFRpdGxlfWAgfVxyXG5cclxuXHJcbn1cclxuXHJcbmZ1bmN0aW9uIHBhcnNlVHlwZSh2YWx1ZTogYW55LCB0eXBlPzogc3RyaW5nKSB7XHJcblx0c3dpdGNoICh0eXBlKSB7XHJcblx0XHRjYXNlICdjaGVja2JveCc6XHJcblx0XHRcdHJldHVybiBTdHJpbmcodmFsdWUpLnRvTG93ZXJDYXNlKCkgPT09IFwidHJ1ZVwiO1xyXG5cdFx0XHRicmVhaztcclxuXHRcdGRlZmF1bHQ6XHJcblx0XHRcdHJldHVybiB2YWx1ZVxyXG5cdH1cclxufVxyXG4iLCI8bGliLWl0ZW1zLXZpZXdlciBbbGlzdEVuZHBvaW50XT1cImVudGl0eUxpc3RFbmRwb2ludFwiIFtpdGVtc0VuZHBvaW50XT1cImVudGl0eUl0ZW1zRW5kcG9pbnRcIiBbbGlzdFJlcXVlc3RNYXBwaW5nXT1cImVudGl0eUxpc3RSZXF1ZXN0TWFwcGluZ1wiXHJcblx0KHNlbGVjdEl0ZW0pPVwic2VsZWN0SXRlbSgkZXZlbnQpXCIgW3Nob3dPcmRlckJ1dHRvbnNdPVwidHJ1ZVwiIFtzaG93Q3JlYXRlQnV0dG9uXT1cIiFkaXNhYmxlQ3JlYXRpb25cIlxyXG5cdFt1aUNvbXBvbmVudElucHV0c109XCJ1aUNvbXBvbmVudElucHV0c1wiIFtlbnRpdHlVaUNvbXBvbmVudF09XCJlbnRpdHlVaUNvbXBvbmVudFwiIFtpdGVtc109XCJlbnRpdHlMaXN0XCJcclxuXHRbdGl0bGVdPVwibGlzdFRpdGxlXCIgW2ljb25dPVwibGlzdEljb25cIiBbdGhlbWVdPVwidGhlbWVcIiBbaXRlbUljb25dPVwibGlzdEl0ZW1JY29uXCIgW3JlbG9hZFN1YmplY3RdPVwicmVsb2FkU3ViamVjdFwiXHJcblx0KGFkZENsaWNrKT1cInJlc2V0Rm9ybSgkZXZlbnQpXCIgW3NlbGVjdGVkSXRlbV09XCJzZWxlY3RlZEl0ZW1cIiBbc2VhcmNoRmlsdGVyXT1cInNlYXJjaEZpbHRlclwiXHJcblx0W29yZGVyUHJvcGVydGllc109XCJtYWluTGlzdE9yZGVyUHJvcGVydGllc1wiIFtwYWdlU2l6ZV09XCI1MFwiPlxyXG48L2xpYi1pdGVtcy12aWV3ZXI+XHJcbjxkaXYgW2F0dHIuZGF0YS10aGVtZV09XCJ0aGVtZVwiIGNsYXNzPVwidGFicy1jb250YWluZXJcIj5cclxuXHQ8bWF0LXRhYi1ncm91cD5cclxuXHRcdDxtYXQtdGFiIFtsYWJlbF09XCJtYWluVGFiVGl0bGUgfCB0cmFuc2xhdGVcIj5cclxuXHRcdFx0PGRpdiBjbGFzcz1cInRhYi1jb250ZW50XCI+XHJcblx0XHRcdFx0PG5nLWNvbnRhaW5lciAqbmdJZj1cImRpc2FibGVGb3JtXCI+XHJcblx0XHRcdFx0XHQ8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicGxhY2Vob2xkZXI7IGNvbnRleHQ6eyRpbXBsaWNpdDogJ1NlbGVjdCBhIGN1c3RvbWVyIHRvIGVkaXQnfVwiPlxyXG5cclxuXHRcdFx0XHRcdDwvbmctY29udGFpbmVyPlxyXG5cdFx0XHRcdDwvbmctY29udGFpbmVyPlxyXG5cdFx0XHRcdDxsaWItZm9ybSAqbmdJZj1cIiFkaXNhYmxlRm9ybVwiIFtmb3JtXT1cImVudGl0eUZvcm1cIiBbZm9ybUNvbnRyb2xzXT1cImZvcm1Db250cm9sc1wiXHJcblx0XHRcdFx0XHRbZm9ybUFjdGlvbnNdPVwiZW50aXR5QWN0aW9uc1wiIFt0aGVtZV09XCJ0aGVtZVwiIFt0aXRsZV09XCJmb3JtVGl0bGVcIiAoc2F2ZUNsaWNrKT1cInNhdmVJdGVtKClcIiBpY29uPVwibWVudS1lZGl0XCJcclxuXHRcdFx0XHRcdFtlbnRpdHlPYmplY3RdPVwic2VsZWN0ZWRJdGVtXCI+PC9saWItZm9ybT5cclxuXHRcdFx0PC9kaXY+XHJcblx0XHQ8L21hdC10YWI+XHJcblx0XHQ8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJlbnRpdHlcIj5cclxuXHRcdFx0PG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ1VzZXInXCI+XHJcblx0XHRcdFx0PG1hdC10YWIgW2xhYmVsXT1cIidDdXN0b21lcnMnIHwgdHJhbnNsYXRlXCI+XHJcblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwidGFiLWNvbnRlbnRcIj5cclxuXHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImNvbnRlbnQgcGFkZGluZy1jb250YWluZXJcIj5cclxuXHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzSXRlbVNlbGVjdGVkXCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDxuZy1jb250YWluZXJcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQqbmdUZW1wbGF0ZU91dGxldD1cInBsYWNlaG9sZGVyOyBjb250ZXh0OnskaW1wbGljaXQ6ICdTZWxlY3QgYSB1c2VyIHRvIGFzc2lnbiBjdXN0b21lcnMnfVwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8L25nLWNvbnRhaW5lcj5cclxuXHRcdFx0XHRcdFx0XHRcdDwvbmctY29udGFpbmVyPlxyXG5cdFx0XHRcdFx0XHRcdFx0PGxpYi1uZXN0ZWQtaXRlbXMtc2VsZWN0b3IgW2hpZGRlbl09XCIhaXNJdGVtU2VsZWN0ZWRcIiBbc2VsZWN0aW9uRW5kcG9pbnRdPVwidXNlckN1c3RvbWVyc0VuZHBvaW50XCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0W3NlY29uZFNlbGVjdGlvbkVuZHBvaW50XT1cInVzZXJBZ2VuY2llc0VuZHBvaW50XCIgW3JlbG9hZFNlbGVjdGlvblN1YmplY3RdPVwidXNlclN1YmplY3RcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRbbGlzdEVuZHBvaW50XT1cImN1c3RvbWVyTGlzdEVuZHBvaW50XCIgW2xpc3RUaXRsZV09XCInQXZhaWxhYmxlIEN1c3RvbWVycycgfCB0cmFuc2xhdGVcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRbc2Vjb25kTGlzdEVuZHBvaW50XT1cImFnZW5jeUxpc3RFbmRwb2ludFwiIFtzZWNvbmRMaXN0VGl0bGVdPVwiJ0F2YWlsYWJsZSBBZ2VuY2llcycgfCB0cmFuc2xhdGVcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRbdGhlbWVdPVwidGhlbWVcIiBbc2VsZWN0aW9uVGl0bGVdPVwiJ0VtcHJlc2FzIHkgYWdlbmNpYXMnXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0KHNhdmVDbGljayk9XCJhc3NpZ25DdXN0b21lcnNBbmRBZ2VuY2llcygkZXZlbnQpXCI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8L2xpYi1uZXN0ZWQtaXRlbXMtc2VsZWN0b3I+XHJcblx0XHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0PC9kaXY+XHJcblxyXG5cdFx0XHRcdDwvbWF0LXRhYj5cclxuXHRcdFx0XHQ8bWF0LXRhYiBbbGFiZWxdPVwiJ1JvbGVzJyB8IHRyYW5zbGF0ZVwiPlxyXG5cdFx0XHRcdFx0PGRpdiBjbGFzcz1cInRhYi1jb250ZW50XCI+XHJcblx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJjb250ZW50IHBhZGRpbmctY29udGFpbmVyXCI+XHJcblx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0PGxpYi1pdGVtcy12aWV3ZXIgW3Nob3dQYWdpbmF0b3JdPVwiZmFsc2VcIiBbZXh0ZXJuYWxMb2FkaW5nXT1cImxvYWRpbmdVc2VyUm9sZXNcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRbZW50aXR5VWlDb21wb25lbnRdPVwicm9sZUNhcmRcIiBbaXRlbXNdPVwidXNlckFzc2lnbmVkUm9sZXNcIiBbdGhlbWVdPVwidGhlbWVcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRbdGl0bGVdPVwiJ0Fzc2lnbmVkIFJvbGVzIChVc2VyKScgfCB0cmFuc2xhdGVcIiBbc2hvd1BhZ2luYXRvcl09XCJmYWxzZVwiPjwvbGliLWl0ZW1zLXZpZXdlcj5cclxuXHRcdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8bGliLWl0ZW1zLXZpZXdlciBbc2hvd1BhZ2luYXRvcl09XCJmYWxzZVwiIFtleHRlcm5hbExvYWRpbmddPVwibG9hZGluZ1VzZXJDdXN0b21lclJvbGVzXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0W2VudGl0eVVpQ29tcG9uZW50XT1cInJvbGVDYXJkXCIgW2l0ZW1zXT1cInVzZXJDdXN0b21lckFzc2lnbmVkUm9sZXNcIiBbdGhlbWVdPVwidGhlbWVcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRbdGl0bGVdPVwiJ0Fzc2lnbmVkIFJvbGVzIChDdXN0b21lciknIHwgdHJhbnNsYXRlXCIgW3Nob3dQYWdpbmF0b3JdPVwiZmFsc2VcIj48L2xpYi1pdGVtcy12aWV3ZXI+XHJcblx0XHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0PC9tYXQtdGFiPlxyXG5cdFx0XHQ8L25nLWNvbnRhaW5lcj5cclxuXHRcdFx0PG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ0N1c3RvbWVyJ1wiPlxyXG5cdFx0XHRcdDxtYXQtdGFiIFtsYWJlbF09XCInVXNlcnMnIHwgdHJhbnNsYXRlXCI+XHJcblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwidGFiLWNvbnRlbnRcIj5cclxuXHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImNvbnRlbnQgcGFkZGluZy1jb250YWluZXJcIj5cclxuXHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzSXRlbVNlbGVjdGVkXCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDxuZy1jb250YWluZXJcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQqbmdUZW1wbGF0ZU91dGxldD1cInBsYWNlaG9sZGVyOyBjb250ZXh0OnskaW1wbGljaXQ6ICdTZWxlY3QgYSBjdXN0b21lciB0byBhc3NpZ24gdXNlcnMnfVwiPlxyXG5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PC9uZy1jb250YWluZXI+XHJcblxyXG5cdFx0XHRcdFx0XHRcdFx0PC9uZy1jb250YWluZXI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8bGliLWl0ZW1zLXNlbGVjdG9yICpuZ0lmPVwiIWlzSXRlbVNlbGVjdGVkXCIgW2hpZGRlbl09XCIhaXNJdGVtU2VsZWN0ZWRcIiBbc2VsZWN0aW9uRW5kcG9pbnRdPVwiY3VzdG9tZXJVc2Vyc0VuZHBvaW50XCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0W2xpc3RFbmRwb2ludF09XCJ1c2VyTGlzdEVuZHBvaW50XCIgW2l0ZW1zXT1cInVzZXJMaXN0XCIgW3JlbG9hZFNlbGVjdGlvblN1YmplY3RdPVwiY3VzdG9tZXJTdWJqZWN0XCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0W2xpc3RUaXRsZV09XCInQXZhaWxhYmxlIFVzZXJzJyB8IHRyYW5zbGF0ZVwiIFt0aGVtZV09XCJ0aGVtZVwiIFtpdGVtTGFiZWxNYXBdPVwidXNlckxhYmVsXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0W3NlbGVjdGlvblRpdGxlXT1cIidTZWxlY3RlZCBVc2VycycgfCB0cmFuc2xhdGVcIiAoc2F2ZUNsaWNrKT1cImFzc2lnblVzZXJzVG9DdXN0b21lcigkZXZlbnQpXCI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8L2xpYi1pdGVtcy1zZWxlY3Rvcj5cclxuXHRcdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHQ8L21hdC10YWI+XHJcblx0XHRcdFx0PG1hdC10YWIgW2xhYmVsXT1cIidSb2xlcycgfCB0cmFuc2xhdGVcIj5cclxuXHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJ0YWItY29udGVudFwiPlxyXG5cdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiY29udGVudCBwYWRkaW5nLWNvbnRhaW5lclwiPlxyXG5cdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJjb250YWluZXJcIj5cclxuXHRcdFx0XHRcdFx0XHRcdDxsaWItaXRlbXMtdmlld2VyIFtsaXN0RW5kcG9pbnRdPVwiY3VzdG9tZXJSb2xlc0VuZHBvaW50XCIgW2VudGl0eVVpQ29tcG9uZW50XT1cInJvbGVDYXJkXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0W2l0ZW1zXT1cInJvbGVMaXN0XCIgW3RoZW1lXT1cInRoZW1lXCIgW3RpdGxlXT1cIidBc3NpZ25lZCBSb2xlcycgfCB0cmFuc2xhdGVcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRbc2hvd1BhZ2luYXRvcl09XCJmYWxzZVwiPjwvbGliLWl0ZW1zLXZpZXdlcj5cclxuXHRcdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHQ8L21hdC10YWI+XHJcblx0XHRcdDwvbmctY29udGFpbmVyPlxyXG5cdFx0XHQ8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInUm9sZSdcIj5cclxuXHRcdFx0XHQ8bWF0LXRhYiBbbGFiZWxdPVwiJ1VzZXJzJyB8IHRyYW5zbGF0ZVwiPlxyXG5cdFx0XHRcdFx0PGRpdiBjbGFzcz1cInRhYi1jb250ZW50XCI+XHJcblx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJjb250ZW50IHBhZGRpbmctY29udGFpbmVyXCI+XHJcblx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0PG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc0l0ZW1TZWxlY3RlZFwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicGxhY2Vob2xkZXI7IGNvbnRleHQ6eyRpbXBsaWNpdDogJ1NlbGVjdCBhIHJvbGUgdG8gYXNzaWduIHVzZXJzJ31cIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PC9uZy1jb250YWluZXI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8L25nLWNvbnRhaW5lcj5cclxuXHRcdFx0XHRcdFx0XHRcdDxsaWItaXRlbXMtc2VsZWN0b3IgKm5nSWY9XCIhaXNJdGVtU2VsZWN0ZWRcIiBbaGlkZGVuXT1cIiFpc0l0ZW1TZWxlY3RlZFwiIFtyZWxvYWRTZWxlY3Rpb25TdWJqZWN0XT1cInJvbGVTdWJqZWN0XCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0W2xpc3RFbmRwb2ludF09XCJ1c2VyTGlzdEVuZHBvaW50XCIgW3NlbGVjdGlvbkVuZHBvaW50XT1cInJvbGVVc2Vyc0VuZHBvaW50XCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0W2xpc3RUaXRsZV09XCInQXZhaWxhYmxlIFVzZXJzJyB8IHRyYW5zbGF0ZVwiIFt0aGVtZV09XCJ0aGVtZVwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdFtpdGVtTGFiZWxNYXBdPVwidXNlckxhYmVsXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0W3NlbGVjdGlvblRpdGxlXT1cIidTZWxlY3RlZCBVc2VycycgfCB0cmFuc2xhdGVcIiAoc2F2ZUNsaWNrKT1cImFzc2lnblVzZXJzVG9Sb2xlKCRldmVudClcIj5cclxuXHJcblx0XHRcdFx0XHRcdFx0XHQ8L2xpYi1pdGVtcy1zZWxlY3Rvcj5cclxuXHRcdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHQ8L21hdC10YWI+XHJcblx0XHRcdFx0PG1hdC10YWIgW2xhYmVsXT1cIidDdXN0b21lcnMnIHwgdHJhbnNsYXRlXCI+XHJcblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwidGFiLWNvbnRlbnRcIj5cclxuXHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImNvbnRlbnQgcGFkZGluZy1jb250YWluZXJcIj5cclxuXHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzSXRlbVNlbGVjdGVkXCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDxuZy1jb250YWluZXJcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQqbmdUZW1wbGF0ZU91dGxldD1cInBsYWNlaG9sZGVyOyBjb250ZXh0OnskaW1wbGljaXQ6ICdTZWxlY3QgYSByb2xlIHRvIGFzc2lnbiBjdXN0b21lcnMnfVwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8L25nLWNvbnRhaW5lcj5cclxuXHRcdFx0XHRcdFx0XHRcdDwvbmctY29udGFpbmVyPlxyXG5cdFx0XHRcdFx0XHRcdFx0PGxpYi1pdGVtcy1zZWxlY3RvciAqbmdJZj1cIiFpc0l0ZW1TZWxlY3RlZFwiIFtoaWRkZW5dPVwiIWlzSXRlbVNlbGVjdGVkXCIgW3JlbG9hZFNlbGVjdGlvblN1YmplY3RdPVwicm9sZVN1YmplY3RcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRbbGlzdEVuZHBvaW50XT1cImN1c3RvbWVyTGlzdEVuZHBvaW50XCIgW3NlbGVjdGlvbkVuZHBvaW50XT1cInJvbGVDdXN0b21lcnNFbmRwb2ludFwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdFtsaXN0VGl0bGVdPVwiJ0F2YWlsYWJsZSBDdXN0b21lcnMnIHwgdHJhbnNsYXRlXCIgW3RoZW1lXT1cInRoZW1lXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0W3NlbGVjdGlvblRpdGxlXT1cIidTZWxlY3RlZCBDdXN0b21lcnMnIHwgdHJhbnNsYXRlXCIgKHNhdmVDbGljayk9XCJhc3NpZ25DdXN0b21lcnNUb1JvbGUoJGV2ZW50KVwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0PC9saWItaXRlbXMtc2VsZWN0b3I+XHJcblx0XHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0PC9tYXQtdGFiPlxyXG5cdFx0XHQ8L25nLWNvbnRhaW5lcj5cclxuXHJcblx0XHQ8L25nLWNvbnRhaW5lcj5cclxuXHQ8L21hdC10YWItZ3JvdXA+XHJcblxyXG48L2Rpdj5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjcGxhY2Vob2xkZXIgbGV0LW1zZz5cclxuXHQ8ZGl2IGNsYXNzPVwicGxhY2Vob2xkZXJcIj5cclxuXHRcdDxpIGNsYXNzPVwibWVudS1pbmZvXCI+PC9pPlxyXG5cdFx0PHNwYW4+e3ttc2cgfCB0cmFuc2xhdGV9fTwvc3Bhbj5cclxuXHQ8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT4iXX0=
404
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LWFkbWluLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FzcC1saWIvc3JjL2xpYi9lbnRpdHktYWRtaW4vZW50aXR5LWFkbWluLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FzcC1saWIvc3JjL2xpYi9lbnRpdHktYWRtaW4vZW50aXR5LWFkbWluLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQTRCLEtBQUssRUFBbUMsTUFBTSxlQUFlLENBQUM7QUFDNUcsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBR3JFLE9BQU8sRUFBYyxFQUFFLEVBQVcsTUFBTSxNQUFNLENBQUM7QUFHL0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7OztBQUV2RCxNQUFNLFNBQVMsR0FBRyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFFBQVEsRUFBRSxvQkFBb0IsRUFBRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsQ0FBQztBQUNwSSxNQUFNLGFBQWEsR0FBRyxFQUFFLFFBQVEsRUFBRSxlQUFlLEVBQUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFFBQVEsRUFBRSxvQkFBb0IsRUFBRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsQ0FBQztBQUNsSixNQUFNLFFBQVEsR0FBRyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsQ0FBQTtBQVNsSSxN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LFFBQVEsSUFBSSxFQUFFO1FBQ2IsS0FBSyxVQUFVO1lBQ2QsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsV0FBVyxFQUFFLEtBQUssTUFBTSxDQUFDO1lBQzlDLE1BQU07UUFDUDtZQUNDLE9BQU8sS0FBSyxDQUFBO0tBQ2I7QUFDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVHlwZSwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBSb2xlQ2FyZENvbXBvbmVudCB9IGZyb20gJy4uL3JvbGUtY2FyZC9yb2xlLWNhcmQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ2RrRHJhZ0Ryb3AsIENka0Ryb3BMaXN0IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XHJcbmltcG9ydCB7IFNlY3VyaXR5QWRtaW5TZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvc2VjdXJpdHktYWRtaW4uc2VydmljZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFNuYWNrYmFyU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3NuYWNrYmFyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBGb3JtRmllbGQsIFNlY3VyaXR5RW5kcG9pbnQgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2ludGVyZmFjZXMnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVQaXBlIH0gZnJvbSAnLi4vcGlwZXMvdHJhbnNsYXRlLnBpcGUnO1xyXG5pbXBvcnQgeyByZW1vdmVBcnJheUR1cGxpY2F0ZXMgfSBmcm9tICcuLi91dGlscy91dGlscyc7XHJcblxyXG5jb25zdCBuYW1lT3JkZXIgPSB7IHByb3BlcnR5OiAnbmFtZScsIGFzY0ljb246ICdtZW51LWFscGhhYmV0LWFzYycsIGRlc2NJY29uOiAnbWVudS1hbHBoYWJldC1kZXNjJywgdG9vbHRpcDogJ09yZGVuYXIgcG9yIG5vbWJyZScgfTtcclxuY29uc3QgY3VzdG9tZXJPcmRlciA9IHsgcHJvcGVydHk6ICdjdXN0b21lci5uYW1lJywgYXNjSWNvbjogJ21lbnUtY3VzdG9tZXItYXNjJywgZGVzY0ljb246ICdtZW51LWN1c3RvbWVyLWRlc2MnLCB0b29sdGlwOiAnT3JkZW5hciBwb3IgZW1wcmVzYScgfTtcclxuY29uc3QgbGFzdG5hbWUgPSB7IHByb3BlcnR5OiAnbGFzdG5hbWUnLCBhc2NJY29uOiAnbWVudS11c2VyLXJpZ2h0JywgZGVzY0ljb246ICdtZW51LXVzZXItbGVmdCcsIHRvb2x0aXA6ICdPcmRlbmFyIHBvciBhcGVsbGlkbycgfVxyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG5cdHNlbGVjdG9yOiAnbGliLXVzZXJzLWFkbWluJyxcclxuXHR0ZW1wbGF0ZVVybDogJy4vZW50aXR5LWFkbWluLmNvbXBvbmVudC5odG1sJyxcclxuXHRzdHlsZVVybHM6IFsnLi4vYXNzZXRzL2ZvbnRzL3N0eWxlLmNzcycsICcuLi9hc3NldHMvdGhlbWUuc2NzcycsICcuL2VudGl0eS1hZG1pbi5jb21wb25lbnQuc2NzcyddLFxyXG5cdHByb3ZpZGVyczogW1RyYW5zbGF0ZVBpcGVdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFbnRpdHlBZG1pbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblx0QElucHV0KCkgdGhlbWU6IHN0cmluZyA9ICdkZWZhdWx0JztcclxuXHRASW5wdXQoKSBsaXN0VGl0bGU6IHN0cmluZyA9ICcnO1xyXG5cdEBJbnB1dCgpIGxpc3RJY29uOiBzdHJpbmcgPSAnJztcclxuXHRASW5wdXQoKSBsaXN0SXRlbUljb246IHN0cmluZyA9ICcnO1xyXG5cdEBJbnB1dCgpIGVudGl0eTogXCJVc2VyXCIgfCBcIkN1c3RvbWVyXCIgfCBcIlJvbGVcIiA9IFwiVXNlclwiO1xyXG5cdEBJbnB1dCgpIGVudGl0eU5hbWU6IHN0cmluZyA9ICcnO1xyXG5cdEBJbnB1dCgpIGVudGl0eUFjdGlvbnM6IGFueVtdID0gW107XHJcblx0QElucHV0KCkgZW50aXR5Rm9ybTogRm9ybUZpZWxkW10gPSBbXTtcclxuXHRASW5wdXQoKSBlbnRpdHlMaXN0RW5kcG9pbnQ6IHN0cmluZyA9ICcnO1xyXG5cdEBJbnB1dCgpIGVudGl0eUl0ZW1zRW5kcG9pbnQ6IFNlY3VyaXR5RW5kcG9pbnQgPSB7IHVybDogJyd9O1xyXG5cdEBJbnB1dCgpIGVudGl0eUxpc3Q6IGFueVtdID0gW107XHJcblx0QElucHV0KCkgZW50aXR5VWlDb21wb25lbnQ6IFR5cGU8YW55PiB8IG51bGwgPSBudWxsO1xyXG5cdEBJbnB1dCgpIHVpQ29tcG9uZW50SW5wdXRzOiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0ge307XHJcblx0QElucHV0KCkgc2VhcmNoRmlsdGVyPzogRnVuY3Rpb247XHJcblx0QElucHV0KCkgY3VzdG9tZXJMaXN0OiBhbnlbXSA9IFtdO1xyXG5cdEBJbnB1dCgpIHJvbGVMaXN0OiBhbnlbXSA9IFtdO1xyXG5cdEBJbnB1dCgpIHVzZXJMaXN0OiBhbnlbXSA9IFtdO1xyXG5cdEBJbnB1dCgpIGN1c3RvbWVyTGlzdEVuZHBvaW50OiBTZWN1cml0eUVuZHBvaW50ID0geyB1cmw6ICcnIH07XHJcblx0QElucHV0KCkgYWdlbmN5TGlzdEVuZHBvaW50OiBTZWN1cml0eUVuZHBvaW50ID0geyB1cmw6ICcnIH07XHJcblx0QElucHV0KCkgcm9sZUxpc3RFbmRwb2ludDogU2VjdXJpdHlFbmRwb2ludCA9IHsgdXJsOiAnJyB9O1xyXG5cdEBJbnB1dCgpIHVzZXJMaXN0RW5kcG9pbnQ6IFNlY3VyaXR5RW5kcG9pbnQgPSB7IHVybDogJycgfTtcclxuXHRASW5wdXQoKSBzYXZlRW50aXR5RW5kcG9pbnQ6IHN0cmluZyA9ICcnO1xyXG5cdEBJbnB1dCgpIGVudGl0eUxpc3RSZXF1ZXN0TWFwcGluZzogRnVuY3Rpb24gPSAocmVzcG9uc2U6IGFueSkgPT4gb2YocmVzcG9uc2UpO1xyXG5cdEBJbnB1dCgpIHVzZXJzQnlDdXN0b21lckVuZHBvaW50OiBzdHJpbmcgPSAnJztcclxuXHRASW5wdXQoKSByZWxvYWRTdWJqZWN0PzogU3ViamVjdDxib29sZWFuPjtcclxuXHRASW5wdXQoKSBpdGVtU2VsZWN0ZWQ6IEZ1bmN0aW9uID0gKCkgPT4geyB9O1xyXG5cdEBJbnB1dCgpIHJlc2V0SXRlbVNlbGVjdGVkPzogU3ViamVjdDxib29sZWFuPjtcclxuXHRyb2xlQ2FyZCA9IFJvbGVDYXJkQ29tcG9uZW50O1xyXG5cdGZvcm1Db250cm9sczogeyBba2V5OiBzdHJpbmddOiBGb3JtQ29udHJvbCB9ID0ge307XHJcblx0c2VsZWN0ZWRJdGVtOiBhbnkgPSB7IGlkOiBudWxsIH07XHJcblx0c2VsZWN0ZWRVc2VyOiBhbnk7XHJcblx0bG9hZGluZ1VzZXJSb2xlczogYm9vbGVhbiA9IGZhbHNlO1xyXG5cdGxvYWRpbmdVc2VyQ3VzdG9tZXJSb2xlczogYm9vbGVhbiA9IGZhbHNlO1xyXG5cdGdldCB1c2VyU3ViamVjdCgpIHsgcmV0dXJuIHRoaXMuc2VjdXJpdHlBZG1pblNlcnZpY2Uuc2VsZWN0ZWRVc2VyU3ViamVjdCB9XHJcblx0Z2V0IGN1c3RvbWVyU3ViamVjdCgpIHsgcmV0dXJuIHRoaXMuc2VjdXJpdHlBZG1pblNlcnZpY2Uuc2VsZWN0ZWRDdXN0b21lclN1YmplY3QgfVxyXG5cdGdldCByb2xlU3ViamVjdCgpIHsgcmV0dXJuIHRoaXMuc2VjdXJpdHlBZG1pblNlcnZpY2Uuc2VsZWN0ZWRSb2xlU3ViamVjdCB9XHJcblx0Z2V0IGRpc2FibGVDcmVhdGlvbigpIHsgcmV0dXJuIHRoaXMuc2VjdXJpdHlBZG1pblNlcnZpY2UuYmxvY2tDcmVhdGlvbkZvci5oYXModGhpcy5lbnRpdHkpIH1cclxuXHRnZXQgZGlzYWJsZUZvcm0oKSB7IHJldHVybiAhdGhpcy5pc0l0ZW1TZWxlY3RlZCAmJiB0aGlzLmRpc2FibGVDcmVhdGlvbiB9XHJcblxyXG5cdGdldCB1c2VyQXNzaWduZWRSb2xlcygpIHsgcmV0dXJuIHRoaXMuc2VsZWN0ZWRVc2VyPy5yb2xlcyA/PyBbXSB9XHJcblx0Z2V0IHVzZXJDdXN0b21lckFzc2lnbmVkUm9sZXMoKSB7IHJldHVybiB0aGlzLnNlbGVjdGVkVXNlcj8uY3VzdG9tZXJSb2xlcyA/PyBbXSB9XHJcblx0Z2V0IG1haW5MaXN0T3JkZXJQcm9wZXJ0aWVzKCkge1xyXG5cdFx0c3dpdGNoICh0aGlzLmVudGl0eSkge1xyXG5cdFx0XHRjYXNlICdVc2VyJzpcclxuXHRcdFx0XHRyZXR1cm4gW25hbWVPcmRlciwgbGFzdG5hbWVdO1xyXG5cdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRkZWZhdWx0OlxyXG5cdFx0XHRcdHJldHVybiBbbmFtZU9yZGVyXTtcclxuXHRcdFx0XHRicmVhaztcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdGNvbnN0cnVjdG9yKHByaXZhdGUgc2VjdXJpdHlBZG1pblNlcnZpY2U6IFNlY3VyaXR5QWRtaW5TZXJ2aWNlLCBwcml2YXRlIHNuYWNrYmFyOiBTbmFja2JhclNlcnZpY2UsIHByaXZhdGUgdHJhbnNsYXRlUGlwZTogVHJhbnNsYXRlUGlwZSkge1xyXG5cclxuXHR9XHJcblxyXG5cdGdldCBmb3JtVGl0bGUoKSB7IHJldHVybiBgJHt0aGlzLnRyYW5zbGF0ZVBpcGUudHJhbnNmb3JtKHRoaXMuc2VsZWN0ZWRJdGVtLmlkID8gXCJFZGl0XCIgOiBcIkNyZWF0ZVwiKX0gJHt0aGlzLnRyYW5zbGF0ZVBpcGUudHJhbnNmb3JtKHRoaXMuZW50aXR5TmFtZSl9YCB9XHJcblxyXG5cclxuXHRhZ2VuY3lFbmRwb2ludFBhcmFtczogRnVuY3Rpb24gPSAoY3VzdG9tZXI6IGFueSkgPT4gYGN1c3RvbWVySWQ9JHtjdXN0b21lci5pZH1gXHJcblxyXG5cdGdldCBpc0l0ZW1TZWxlY3RlZCgpIHtcclxuXHRcdHJldHVybiB0eXBlb2YgKHRoaXMuc2VsZWN0ZWRJdGVtPy5pZCkgPT09ICdudW1iZXInO1xyXG5cdH1cclxuXHJcblx0bmdPbkluaXQoKSB7XHJcblx0XHR0aGlzLmZvcm1Db250cm9scyA9IHRoaXMuZW50aXR5Rm9ybS5yZWR1Y2UoKG9iamVjdCwgZmllbGQpID0+ICh7IC4uLm9iamVjdCwgW2ZpZWxkLm5hbWVdOiBuZXcgRm9ybUNvbnRyb2w8YW55PihmaWVsZC5kZWZhdWx0VmFsdWUgPz8gbnVsbCkgfSksIHt9KVxyXG5cdFx0dGhpcy5zZWN1cml0eUFkbWluU2VydmljZS5zdWJqZWN0c1t0aGlzLmVudGl0eV0uc3Vic2NyaWJlKHtcclxuXHRcdFx0bmV4dDogKGl0ZW0pID0+IHtcclxuXHRcdFx0XHR0aGlzLnNlbGVjdGVkSXRlbSA9IGl0ZW07XHJcblx0XHRcdFx0T2JqZWN0LmVudHJpZXModGhpcy5mb3JtQ29udHJvbHMpLmZvckVhY2goKFtuYW1lLCBjb250cm9sXSkgPT4ge1xyXG5cdFx0XHRcdFx0bGV0IGZpZWxkID0gdGhpcy5lbnRpdHlGb3JtLmZpbmQoeCA9PiB4Lm5hbWUgPT09IG5hbWUpO1xyXG5cdFx0XHRcdFx0Y29udHJvbC5wYXRjaFZhbHVlKHBhcnNlVHlwZShpdGVtW25hbWVdLCBmaWVsZD8udHlwZSkpO1xyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHRcdHRoaXMuc2VjdXJpdHlBZG1pblNlcnZpY2Uuc2VsZWN0ZWRVc2VyU3ViamVjdC5zdWJzY3JpYmUoe1xyXG5cdFx0XHRuZXh0OiAodXNlcikgPT4ge1xyXG5cdFx0XHRcdHRoaXMuc2VsZWN0ZWRVc2VyID0gdXNlcjtcclxuXHRcdFx0XHRpZiAodXNlci5pZCAhPT0gbnVsbCkge1xyXG5cdFx0XHRcdFx0dGhpcy5sb2FkaW5nVXNlclJvbGVzID0gdHJ1ZTtcclxuXHRcdFx0XHRcdHRoaXMuc2VjdXJpdHlBZG1pblNlcnZpY2UuZ2V0QXNzaWduZWRSb2xlcyh1c2VyLmlkLCBcIlVzZXJcIikuc3Vic2NyaWJlKHtcclxuXHRcdFx0XHRcdFx0bmV4dDogKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuXHRcdFx0XHRcdFx0XHRpZiAocmVzcG9uc2UucmVzcG9uc2VDb2RlID09PSAyMDApIHtcclxuXHRcdFx0XHRcdFx0XHRcdHRoaXMubG9hZGluZ1VzZXJDdXN0b21lclJvbGVzID0gdHJ1ZTtcclxuXHRcdFx0XHRcdFx0XHRcdHRoaXMuc2VjdXJpdHlBZG1pblNlcnZpY2UuZ2V0VXNlclJvbGVzQnlDdXN0b21lcnModXNlcikuc3Vic2NyaWJlKHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0bmV4dDogKGN1c3RvbWVyUmVzcG9uc2U6IGFueSkgPT4ge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdGlmIChjdXN0b21lclJlc3BvbnNlLnJlc3BvbnNlQ29kZSA9PT0gMjAwKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR0aGlzLnNlbGVjdGVkVXNlciA9IHsgLi4udXNlciwgcm9sZXM6IHJlc3BvbnNlLmxvYWQsIGN1c3RvbWVyUm9sZXM6IHJlbW92ZUFycmF5RHVwbGljYXRlcyhjdXN0b21lclJlc3BvbnNlLmxvYWQpIH1cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0dGhpcy5zZWxlY3RlZFVzZXIgPSB7IC4uLnVzZXIsIHJvbGVzOiByZXNwb25zZS5sb2FkIH1cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHRoaXMubG9hZGluZ1VzZXJSb2xlcyA9IGZhbHNlO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHR0aGlzLmxvYWRpbmdVc2VyQ3VzdG9tZXJSb2xlcyA9IGZhbHNlO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRlcnJvcjogKCkgPT4gdGhpcy5sb2FkaW5nVXNlckN1c3RvbWVyUm9sZXMgPSBmYWxzZVxyXG5cdFx0XHRcdFx0XHRcdFx0fSlcclxuXHRcdFx0XHRcdFx0XHRcdC8vIGlmICh1c2VyLmN1c3RvbWVyPy5pZCkge1xyXG5cdFx0XHRcdFx0XHRcdFx0Ly8gXHR0aGlzLmxvYWRpbmdVc2VyQ3VzdG9tZXJSb2xlcyA9IHRydWU7XHJcblx0XHRcdFx0XHRcdFx0XHQvLyBcdHRoaXMuc2VjdXJpdHlBZG1pblNlcnZpY2UuZ2V0QXNzaWduZWRSb2xlcyh1c2VyLmN1c3RvbWVyLmlkLCBcIkN1c3RvbWVyXCIpLnN1YnNjcmliZSh7XHJcblx0XHRcdFx0XHRcdFx0XHQvLyBcdFx0bmV4dDogKGN1c3RvbWVyUmVzcG9uc2U6IGFueSkgPT4ge1xyXG5cdFx0XHRcdFx0XHRcdFx0Ly8gXHRcdFx0aWYgKGN1c3RvbWVyUmVzcG9uc2UucmVzcG9uc2VDb2RlID09PSAyMDApIHtcclxuXHRcdFx0XHRcdFx0XHRcdC8vIFx0XHRcdFx0dGhpcy5zZWxlY3RlZFVzZXIgPSB7IC4uLnVzZXIsIHJvbGVzOiByZXNwb25zZS5sb2FkLCBjdXN0b21lclJvbGVzOiBjdXN0b21lclJlc3BvbnNlLmxvYWQgfVxyXG5cdFx0XHRcdFx0XHRcdFx0Ly8gXHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdFx0Ly8gXHRcdFx0dGhpcy5sb2FkaW5nVXNlckN1c3RvbWVyUm9sZXMgPSBmYWxzZTtcclxuXHRcdFx0XHRcdFx0XHRcdC8vIFx0XHR9LFxyXG5cdFx0XHRcdFx0XHRcdFx0Ly8gXHRcdGVycm9yOiBfID0+IHRoaXMubG9hZGluZ1VzZXJDdXN0b21lclJvbGVzID0gZmFsc2VcclxuXHRcdFx0XHRcdFx0XHRcdC8vIFx0fSlcclxuXHRcdFx0XHRcdFx0XHRcdC8vIH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0XHQvLyBcdHRoaXMuc2VsZWN0ZWRVc2VyID0geyAuLi51c2VyLCByb2xlczogcmVzcG9uc2UubG9hZCB9XHJcblx0XHRcdFx0XHRcdFx0XHQvLyBcdHRoaXMubG9hZGluZ1VzZXJSb2xlcyA9IGZhbHNlO1xyXG5cdFx0XHRcdFx0XHRcdFx0Ly8gfVxyXG5cdFx0XHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0XHR0aGlzLnNlbGVjdGVkVXNlciA9IHsgLi4udXNlciwgcm9sZXM6IHJlc3BvbnNlLmxvYWQgfVxyXG5cdFx0XHRcdFx0XHRcdFx0dGhpcy5sb2FkaW5nVXNlclJvbGVzID0gZmFsc2U7XHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdHRoaXMubG9hZGluZ1VzZXJSb2xlcyA9IGZhbHNlO1xyXG5cdFx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0XHRlcnJvcjogKCkgPT4gdGhpcy5sb2FkaW5nVXNlclJvbGVzID0gZmFsc2VcclxuXHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHRcdHRoaXMucmVzZXRJdGVtU2VsZWN0ZWQ/LnN1YnNjcmliZSh7XHJcblx0XHRcdG5leHQ6ICgpID0+IHtcclxuXHRcdFx0XHR0aGlzLnJlc2V0Rm9ybSgpO1xyXG5cdFx0XHR9XHJcblx0XHR9KVxyXG5cdH1cclxuXHJcblx0c2VsZWN0SXRlbShuZXdJdGVtOiBhbnkpIHtcclxuXHRcdHN3aXRjaCAodGhpcy5lbnRpdHkpIHtcclxuXHRcdFx0Y2FzZSBcIlVzZXJcIjpcclxuXHRcdFx0XHR0aGlzLnNlY3VyaXR5QWRtaW5TZXJ2aWNlLnNlbGVjdFVzZXIobmV3SXRlbSk7XHJcblx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdGNhc2UgXCJDdXN0b21lclwiOlxyXG5cdFx0XHRcdHRoaXMuc2VjdXJpdHlBZG1pblNlcnZpY2Uuc2VsZWN0Q3VzdG9tZXIobmV3SXRlbSk7XHJcblx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdGNhc2UgXCJSb2xlXCI6XHJcblx0XHRcdFx0dGhpcy5zZWN1cml0eUFkbWluU2VydmljZS5zZWxlY3RSb2xlKG5ld0l0ZW0pO1xyXG5cdFx0XHRcdGJyZWFrO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0c2F2ZUl0ZW0oKSB7XHJcblx0XHR0aGlzLnNuYWNrYmFyLmluZm8oXCJHdWFyZGFuZG8uLi5cIiwgMzAwMCk7XHJcblx0XHRsZXQgbmV3SW5mbyA9IHRoaXMuZW50aXR5Rm9ybS5yZWR1Y2UoKGFjYywgZmllbGQpID0+IGZpZWxkLnJlcXVpcmVzTmV3VmFsdWUgP1xyXG5cdFx0XHQoQm9vbGVhbih0aGlzLmZvcm1Db250cm9sc1tmaWVsZC5uYW1lXS52YWx1ZSkgPyB7IC4uLmFjYywgW2ZpZWxkLm5hbWVdOiB0aGlzLmZvcm1Db250cm9sc1tmaWVsZC5uYW1lXS52YWx1ZSB9IDogeyAuLi5hY2MgfSkgOlxyXG5cdFx0XHQoeyAuLi5hY2MsIFtmaWVsZC5uYW1lXTogdGhpcy5mb3JtQ29udHJvbHNbZmllbGQubmFtZV0udmFsdWUgfSksXHJcblx0XHRcdHt9XHJcblx0XHQpO1xyXG5cdFx0Y29uc29sZS53YXJuKCdlbnRpdHlGb3JtJywgdGhpcy5lbnRpdHlGb3JtLCB0aGlzLmZvcm1Db250cm9scywgbmV3SW5mbyk7XHJcblx0XHR0aGlzLnNlbGVjdGVkSXRlbSA9ICAgeyBpZDogdGhpcy5zZWxlY3RlZEl0ZW0uaWQsIC4uLm5ld0luZm8gfTtcclxuXHRcdHRoaXMuc2VjdXJpdHlBZG1pblNlcnZpY2Uuc2F2ZUl0ZW0odGhpcy5zYXZlRW50aXR5RW5kcG9pbnQsIHsgaWQ6IHRoaXMuc2VsZWN0ZWRJdGVtLmlkLCAuLi5uZXdJbmZvIH0pLnN1YnNjcmliZSh7XHJcblx0XHRcdG5leHQ6IChyZXNwb25zZTogYW55KSA9PiB7XHJcblx0XHRcdFx0aWYgKHJlc3BvbnNlLnJlc3BvbnNlQ29kZSA9PT0gMjAwKSB7XHJcblx0XHRcdFx0XHRpZiAodGhpcy5lbnRpdHkgPT09ICdSb2xlJykge1xyXG5cdFx0XHRcdFx0XHR0aGlzLnNlbGVjdGVkSXRlbS5pZCA9IHJlc3BvbnNlLmxvYWQuaWQ7XHJcblx0XHRcdFx0XHRcdGlmICh0aGlzLnNlbGVjdGVkSXRlbS5yZXNvdXJjZXMgIT0gbnVsbCkge1xyXG5cdFx0XHRcdFx0XHRcdHRoaXMuc2VjdXJpdHlBZG1pblNlcnZpY2UuYXNzaWduUmVzb3VyY2UodGhpcy5zZWxlY3RlZEl0ZW0uaWQsIHRoaXMuc2VsZWN0ZWRJdGVtLnJlc291cmNlcykuc3Vic2NyaWJlKHtcclxuXHRcdFx0XHRcdFx0XHRcdG5leHQ6IChhc3NpZ25SZXNwb25zZTogYW55KSA9PiB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdGlmIChhc3NpZ25SZXNwb25zZS5yZXBvbnNlQ29kZSA9PT0gMjAwKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHRcdFx0dGhpcy5zZWxlY3RJdGVtKHJlc3BvbnNlLmxvYWQpO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHR0aGlzLnNuYWNrYmFyLnN1Y2Nlc3MoYCR7dGhpcy50cmFuc2xhdGVQaXBlLnRyYW5zZm9ybSh0aGlzLmVudGl0eU5hbWUpfSAke3RoaXMuc2VsZWN0ZWRJdGVtLmlkID09PSBudWxsID8gJ0NyZWFkbycgOiAnR3VhcmRhZG8nfWApO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHR0aGlzLnJlbG9hZFN1YmplY3Q/Lm5leHQodHJ1ZSk7XHJcblx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0fSlcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRpZiAodGhpcy5zZWxlY3RlZEl0ZW0ubWVudU9wdGlvbnMgIT0gbnVsbCkge1xyXG5cdFx0XHRcdFx0XHRcdHRoaXMuc2VjdXJpdHlBZG1pblNlcnZpY2UuYXNzaWduT3B0aW9ucyh0aGlzLnNlbGVjdGVkSXRlbS5pZCwgdGhpcy5zZWxlY3RlZEl0ZW0ubWVudU9wdGlvbnMpLnN1YnNjcmliZSh7XHJcblx0XHRcdFx0XHRcdFx0XHRuZXh0OiAoYXNzaWduUmVzcG9uc2U6IGFueSkgPT4ge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRpZiAoYXNzaWduUmVzcG9uc2UucmVwb25zZUNvZGUgPT09IDIwMCkge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0XHRcdHRoaXMuc2VsZWN0SXRlbShyZXNwb25zZS5sb2FkKTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0dGhpcy5zbmFja2Jhci5zdWNjZXNzKGAke3RoaXMudHJhbnNsYXRlUGlwZS50cmFuc2Zvcm0odGhpcy5lbnRpdHlOYW1lKX0gJHt0aGlzLnNlbGVjdGVkSXRlbS5pZCA9PT0gbnVsbCA/ICdDcmVhZG8nIDogJ0d1YXJkYWRvJ31gKTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0dGhpcy5yZWxvYWRTdWJqZWN0Py5uZXh0KHRydWUpO1xyXG5cdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0XHRcdH1cdFx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdHRoaXMuc2VsZWN0SXRlbShyZXNwb25zZS5sb2FkKTtcclxuXHRcdFx0XHRcdFx0dGhpcy5zbmFja2Jhci5zdWNjZXNzKGAke3RoaXMudHJhbnNsYXRlUGlwZS50cmFuc2Zvcm0odGhpcy5lbnRpdHlOYW1lKX0gJHt0aGlzLnNlbGVjdGVkSXRlbS5pZCA9PT0gbnVsbCA/ICdDcmVhZG8nIDogJ0d1YXJkYWRvJ31gKTtcclxuXHRcdFx0XHRcdFx0dGhpcy5yZWxvYWRTdWJqZWN0Py5uZXh0KHRydWUpO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1lbHNle1xyXG5cdFx0XHRcdFx0aWYocmVzcG9uc2UucmVzcG9uc2VDb2RlID09PSAyMDgpe1xyXG5cdFx0XHRcdFx0XHR0aGlzLnNuYWNrYmFyLndhcm5pbmcoJ0VzdGUgY29ycmVvIHlhIHNlIGVuY3VlbnRyYSByZWdpc3RyYWRvJyk7XHJcblx0XHRcdFx0XHR9ZWxzZSBpZihyZXNwb25zZS5yZXNwb25zZUNvZGUgPT09IDIwOSl7XHJcblx0XHRcdFx0XHRcdHRoaXMuc25hY2tiYXIud2FybmluZygnRXN0ZSBub21icmUgZGUgdXN1YXJpbyB5YSBzZSBlbmN1ZW50cmEgcmVnaXN0cmFkbycpO1xyXG5cdFx0XHRcdFx0fWVsc2V7XHJcblx0XHRcdFx0XHRcdHRoaXMuc25hY2tiYXIud2FybmluZygnSGEgb2N1cnJpZG8gdW4gZXJyb3IgYWwgZ3VhcmRhcicpO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0ZXJyb3I6IChlcnJvcikgPT4ge1xyXG5cdFx0XHRcdGNvbnNvbGUubG9nKGVycm9yKTtcclxuXHRcdFx0XHR0aGlzLnNuYWNrYmFyLndhcm5pbmcoJ0hhIG9jdXJyaWRvIHVuIGVycm9yIGFsIGd1YXJkYXInKTtcclxuXHRcdFx0XHR0aGlzLnJlbG9hZFN1YmplY3Q/Lm5leHQodHJ1ZSk7XHJcblx0XHRcdH1cclxuXHRcdH0pOztcclxuXHR9XHJcblxyXG5cdGdldCB1c2VyTGFiZWwoKSB7XHJcblx0XHRyZXR1cm4gKGl0ZW06IGFueSkgPT4gYCR7aXRlbS5uYW1lfSAke2l0ZW0ubGFzdG5hbWUgPz8gJyd9YFxyXG5cdH1cclxuXHJcblx0cmVzZXRGb3JtKGV2ZW50PzogYW55KSB7XHJcblx0XHR0aGlzLnNlbGVjdEl0ZW0oeyBpZDogbnVsbCwgLi4udGhpcy5lbnRpdHlGb3JtLnJlZHVjZSgoYWNjOiBhbnksIGN1cnI6IGFueSkgPT4gY3Vyci5kZWZhdWx0VmFsdWUgIT09IHVuZGVmaW5lZCA/ICh7IC4uLmFjYywgW2N1cnIubmFtZV06IGN1cnIuZGVmYXVsdFZhbHVlIH0pIDogKHsgLi4uYWNjIH0pLCB7fSkgfSk7XHJcblx0fVxyXG5cclxuXHRnZXQgY3VycmVudEN1c3RvbWVyVXNlcnMoKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5zZWxlY3RlZEl0ZW0udXNlcnMgPz8gW107XHJcblx0fVxyXG5cclxuXHRnZXQgdXNlckN1c3RvbWVyc0VuZHBvaW50KCkge1xyXG5cdFx0cmV0dXJuIHRoaXMuc2VjdXJpdHlBZG1pblNlcnZpY2UuZW5kcG9pbnRzLmN1c3RvbWVyc0J5VXNlciA/PyB7IHVybDogJycgfTtcclxuXHR9XHJcblxyXG5cdGdldCB1c2VyQWdlbmNpZXNFbmRwb2ludCgpIHtcclxuXHRcdHJldHVybiB0aGlzLnNlY3VyaXR5QWRtaW5TZXJ2aWNlLmVuZHBvaW50cy5hZ2VuY2llc0J5VXNlciA/PyB7IHVybDogJycgfTtcclxuXHR9XHJcblxyXG5cdGdldCBjdXN0b21lclVzZXJzRW5kcG9pbnQoKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5zZWN1cml0eUFkbWluU2VydmljZS5lbmRwb2ludHMudXNlcnNCeUN1c3RvbWVyO1xyXG5cdH1cclxuXHJcblx0Z2V0IGN1c3RvbWVyUm9sZXNFbmRwb2ludCgpIHtcclxuXHRcdHJldHVybiAodHlwZW9mKHRoaXMuc2VsZWN0ZWRJdGVtLmlkKSA9PT0gJ251bWJlcicpID8gdGhpcy5zZWN1cml0eUFkbWluU2VydmljZS5lbmRwb2ludHMucm9sZXNCeUN1c3RvbWVyPy51cmwgKyAnP2N1c3RvbWVySWQ9JyArIHRoaXMuc2VsZWN0ZWRJdGVtLmlkIDogJyc7XHJcblx0fVxyXG5cclxuXHRnZXQgYWdlbmN5TGlzdEVuZHBvaW50MigpIHtcclxuXHRcdHJldHVybiB0aGlzLnNlY3VyaXR5QWRtaW5TZXJ2aWNlLmVuZHBvaW50cy5saXN0QWxsQWdlbmNpZXMgPz8geyB1cmw6ICcnIH07XHJcblx0fVxyXG5cclxuXHJcblx0Z2V0IHJvbGVVc2Vyc0VuZHBvaW50KCkge1xyXG5cdFx0cmV0dXJuIHRoaXMuc2VjdXJpdHlBZG1pblNlcnZpY2UuZW5kcG9pbnRzLnVzZXJzQnlSb2xlO1xyXG5cdH1cclxuXHJcblx0Z2V0IHJvbGVDdXN0b21lcnNFbmRwb2ludCgpIHtcclxuXHRcdHJldHVybiB0aGlzLnNlY3VyaXR5QWRtaW5TZXJ2aWNlLmVuZHBvaW50cy5jdXN0b21lcnNCeVJvbGU7XHJcblx0fVxyXG5cclxuXHRhc3NpZ25DdXN0b21lclRvVXNlcihjdXN0b21lcjogYW55KSB7XHJcblx0XHR0aGlzLnNlbGVjdEl0ZW0oeyAuLi50aGlzLnNlbGVjdGVkSXRlbSwgY3VzdG9tZXIgfSk7XHJcblx0fVxyXG5cclxuXHRhc3NpZ25DdXN0b21lcnNBbmRBZ2VuY2llcyhpdGVtczogeyBwcmltYXJ5SXRlbXM6IGFueVtdLCBzZWNvbmRhcnlJdGVtczogYW55W10gfSkge1xyXG5cdFx0dGhpcy5zbmFja2Jhci5pbmZvKCdHdWFyZGFuZG8uLi4nKTtcclxuXHRcdHRoaXMuc2VjdXJpdHlBZG1pblNlcnZpY2UuYXNzaWduVXNlckN1c3RvbWVyQW5kQWdlbmNpZXModGhpcy5zZWxlY3RlZEl0ZW0uaWQsIGl0ZW1zLnByaW1hcnlJdGVtcywgaXRlbXMuc2Vjb25kYXJ5SXRlbXMpLnN1YnNjcmliZSh7XHJcblx0XHRcdG5leHQ6IChyZXNwb25zZTogYW55KSA9PiB7XHJcblx0XHRcdFx0aWYgKHJlc3BvbnNlLnJlc3BvbnNlQ29kZSA9PT0gMjAwKSB7XHJcblx0XHRcdFx0XHR0aGlzLnNuYWNrYmFyLnN1Y2Nlc3MoJ0VtcHJlc2FzL2FnZW5jaWFzIGFjdHVhbGl6YWRhcycpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRlbHNlIHtcclxuXHRcdFx0XHRcdHRoaXMuc25hY2tiYXIud2FybmluZygnT2N1cnJpw7MgdW4gZXJyb3IgYWwgYXNpZ25hciBFbXByZXNhcycpXHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LCBlcnJvcjogKCkgPT4gdGhpcy5zbmFja2Jhci53YXJuaW5nKCdPY3VycmnDsyB1biBlcnJvciBhbCBhc2lnbmFyIEVtcHJlc2FzJylcclxuXHJcblx0XHR9KVxyXG5cdFx0Ly8gbGV0IGN1c3RvbWVycyA9IGl0ZW1zLnByaW1hcnlJdGVtcztcclxuXHRcdC8vIGxldCBhZ2VuY2llcyA9IGl0ZW1zLnNlY29uZGFyeUl0ZW1zO1xyXG5cdFx0Ly8gY29uc29sZS5sb2coJ3RyeSB0byBzYXZlJywgY3VzdG9tZXJzLCBhZ2VuY2llcywgdGhpcy5zZWxlY3RlZEl0ZW0pO1xyXG5cdFx0Ly8gbGV0IHN1Y2Nlc3NDdXN0b21lcnMgPSBmYWxzZTtcclxuXHRcdC8vIHRoaXMuc25hY2tiYXIuaW5mbygnR3VhcmRhbmRvLi4uJyk7XHJcblx0XHQvLyB0aGlzLnNlY3VyaXR5QWRtaW5TZXJ2aWNlLmFzc2lnblVzZXJDdXN0b21lcnModGhpcy5zZWxlY3RlZEl0ZW0uaWQsIGN1c3RvbWVycykuc3Vic2NyaWJlKHtcclxuXHRcdC8vIFx0bmV4dDogKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuXHRcdC8vIFx0XHRpZiAocmVzcG9uc2UucmVzcG9uc2VDb2RlID09PSAyMDApIHtcclxuXHRcdC8vIFx0XHRcdGlmIChhZ2VuY2llcz8ubGVuZ3RoID4gMCkge1xyXG5cdFx0Ly8gXHRcdFx0XHR0aGlzLnNlY3VyaXR5QWRtaW5TZXJ2aWNlLmFzc2lnblVzZXJBZ2VuY2llcyh0aGlzLnNlbGVjdGVkSXRlbS5pZCwgYWdlbmNpZXMpLnN1YnNjcmliZSh7XHJcblx0XHQvLyBcdFx0XHRcdFx0bmV4dDogKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuXHRcdC8vIFx0XHRcdFx0XHRcdGlmIChyZXNwb25zZS5yZXNwb25zZUNvZGUgPT09IDIwMCkge1xyXG5cdFx0Ly8gXHRcdFx0XHRcdFx0XHR0aGlzLnNuYWNrYmFyLnN1Y2Nlc3MoJ0VtcHJlc2FzIHkgYWdlbmNpYXMgYXNpZ25hZGFzJyk7XHJcblx0XHQvLyBcdFx0XHRcdFx0XHR9XHJcblx0XHQvLyBcdFx0XHRcdFx0fSxcclxuXHRcdC8vIFx0XHRcdFx0XHRlcnJvcjogXz0+IHRoaXMuc25hY2tiYXIud2FybmluZygnSGEgb2N1cnJpZG8gdW4gZXJyb3IgYWwgYXNpZ25hciBBZ2VuY2lhcycpXHJcblx0XHQvLyBcdFx0XHRcdH0pO1xyXG5cdFx0Ly8gXHRcdFx0fSBlbHNlIHtcclxuXHJcblx0XHQvLyBcdFx0XHR9XHJcblx0XHQvLyBcdFx0fSBlbHNlIHtcclxuXHRcdC8vIFx0XHRcdHRoaXMuc25hY2tiYXIud2FybmluZygnSGEgb2N1cnJpZG8gdW4gZXJyb3IgYWwgYXNpZ25hciBFbXByZXNhcycpXHJcblx0XHQvLyBcdFx0fVxyXG5cdFx0Ly8gXHR9LCBlcnJvcjogXz0+IHRoaXMuc25hY2tiYXIud2FybmluZygnSGEgb2N1cnJpZG8gdW4gZXJyb3IgYWwgYXNpZ25hciBFbXByZXNhcycpXHJcblx0XHQvLyB9KTtcclxuXHR9XHJcblxyXG5cdGFzc2lnblVzZXJzVG9DdXN0b21lcih1c2VyczogYW55W10pIHtcclxuXHRcdC8vIHRoaXMuc2VsZWN0ZWRJdGVtID0geyAuLi50aGlzLnNlbGVjdGVkSXRlbSwgdXNlcnM6IHVzZXJzIH07XHJcblx0XHQvLyB0aGlzLnNhdmVJdGVtKCk7XHJcblx0XHR0aGlzLnNuYWNrYmFyLmluZm8oJ0d1YXJkYW5kby4uLicpO1xyXG5cdFx0dGhpcy5zZWN1cml0eUFkbWluU2VydmljZS5hc3NpZ25DdXN0b21lclVzZXJzKHRoaXMuc2VsZWN0ZWRJdGVtLCB1c2Vycykuc3Vic2NyaWJlKHtcclxuXHRcdFx0bmV4dDogKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuXHRcdFx0XHRpZiAocmVzcG9uc2UucmVzcG9uc2VDb2RlID09PSAyMDApIHtcclxuXHRcdFx0XHRcdHRoaXMuc25hY2tiYXIuc3VjY2VzcygnVXN1YXJpb3MgYXNpZ25hZG9zJyk7XHJcblx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdHRoaXMuc25hY2tiYXIud2FybmluZygnSGEgb2N1cnJpZG8gdW4gZXJyb3IgYWwgYXNpZ25hciB1c3VhcmlvcycpXHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRlcnJvcjogKCkgPT4gdGhpcy5zbmFja2Jhci53YXJuaW5nKCdIYSBvY3VycmlkbyB1biBlcnJvciBhbCBhc2lnbmFyIHVzdWFyaW9zJylcclxuXHRcdH0pXHJcblx0fVxyXG5cclxuXHRhc3NpZ25Vc2Vyc1RvUm9sZSh1c2VyczogYW55W10pIHtcclxuXHRcdHRoaXMuc25hY2tiYXIuaW5mbygnR3VhcmRhbmRvLi4uJylcclxuXHRcdHRoaXMuc2VjdXJpdHlBZG1pblNlcnZpY2UuYXNzaWduUm9sZVVzZXJzKHRoaXMuc2VsZWN0ZWRJdGVtLmlkLCB1c2Vycykuc3Vic2NyaWJlKHtcclxuXHRcdFx0bmV4dDogKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuXHRcdFx0XHRpZiAocmVzcG9uc2UucmVzcG9uc2VDb2RlID09PSAyMDApIHtcclxuXHRcdFx0XHRcdHRoaXMuc25hY2tiYXIuc3VjY2VzcygnVXN1YXJpb3MgYXNpZ25hZG9zJyk7XHJcblx0XHRcdFx0XHR0aGlzLnJlbG9hZFN1YmplY3Q/Lm5leHQodHJ1ZSk7XHJcblx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdHRoaXMuc25hY2tiYXIud2FybmluZygnT2N1cnJpw7MgdW4gZXJyb3IgYWwgYXNpZ25hciB1c3Vhcmlvcy4nKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sXHJcblx0XHRcdGVycm9yOiAoKSA9PiB0aGlzLnNuYWNrYmFyLndhcm5pbmcoJ09jdXJyacOzIHVuIGVycm9yIGFsIGFzaWduYXIgdXN1YXJpb3MuJylcclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0YXNzaWduQ3VzdG9tZXJzVG9Sb2xlKGN1c3RvbWVyczogYW55W10pIHtcclxuXHRcdHRoaXMuc25hY2tiYXIuaW5mbygnR3VhcmRhbmRvLi4uJylcclxuXHRcdHRoaXMuc2VjdXJpdHlBZG1pblNlcnZpY2UuYXNzaWduUm9sZUN1c3RvbWVycyh0aGlzLnNlbGVjdGVkSXRlbS5pZCwgY3VzdG9tZXJzKS5zdWJzY3JpYmUoe1xyXG5cdFx0XHRuZXh0OiAocmVzcG9uc2U6IGFueSkgPT4ge1xyXG5cdFx0XHRcdGlmIChyZXNwb25zZS5yZXNwb25zZUNvZGUgPT09IDIwMCkge1xyXG5cdFx0XHRcdFx0dGhpcy5zbmFja2Jhci5zdWNjZXNzKCdFbXByZXNhcyBhc2lnbmFkYXMnKTtcclxuXHRcdFx0XHRcdHRoaXMucmVsb2FkU3ViamVjdD8ubmV4dCh0cnVlKTtcclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0dGhpcy5zbmFja2Jhci53YXJuaW5nKCdPY3VycmnDsyB1biBlcnJvciBhbCBhc2lnbmFyIGVtcHJlc2FzLicpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0ZXJyb3I6ICgpID0+IHRoaXMuc25hY2tiYXIud2FybmluZygnT2N1cnJpw7MgdW4gZXJyb3IgYWwgYXNpZ25hciBlbXByZXNhcy4nKVxyXG5cdFx0fSk7XHJcblx0fVxyXG5cdGdldCBtYWluVGFiVGl0bGUoKSB7IHJldHVybiBgRWRpdCAke3RoaXMubGlzdFRpdGxlfWAgfVxyXG5cclxuXHJcbn1cclxuXHJcbmZ1bmN0aW9uIHBhcnNlVHlwZSh2YWx1ZTogYW55LCB0eXBlPzogc3RyaW5nKSB7XHJcblx0c3dpdGNoICh0eXBlKSB7XHJcblx0XHRjYXNlICdjaGVja2JveCc6XHJcblx0XHRcdHJldHVybiBTdHJpbmcodmFsdWUpLnRvTG93ZXJDYXNlKCkgPT09IFwidHJ1ZVwiO1xyXG5cdFx0XHRicmVhaztcclxuXHRcdGRlZmF1bHQ6XHJcblx0XHRcdHJldHVybiB2YWx1ZVxyXG5cdH1cclxufVxyXG4iLCI8bGliLWl0ZW1zLXZpZXdlciBbbGlzdEVuZHBvaW50XT1cImVudGl0eUxpc3RFbmRwb2ludFwiIFtpdGVtc0VuZHBvaW50XT1cImVudGl0eUl0ZW1zRW5kcG9pbnRcIiBbbGlzdFJlcXVlc3RNYXBwaW5nXT1cImVudGl0eUxpc3RSZXF1ZXN0TWFwcGluZ1wiXHJcblx0KHNlbGVjdEl0ZW0pPVwic2VsZWN0SXRlbSgkZXZlbnQpXCIgW3Nob3dPcmRlckJ1dHRvbnNdPVwidHJ1ZVwiIFtzaG93Q3JlYXRlQnV0dG9uXT1cIiFkaXNhYmxlQ3JlYXRpb25cIlxyXG5cdFt1aUNvbXBvbmVudElucHV0c109XCJ1aUNvbXBvbmVudElucHV0c1wiIFtlbnRpdHlVaUNvbXBvbmVudF09XCJlbnRpdHlVaUNvbXBvbmVudFwiIFtpdGVtc109XCJlbnRpdHlMaXN0XCJcclxuXHRbdGl0bGVdPVwibGlzdFRpdGxlXCIgW2ljb25dPVwibGlzdEljb25cIiBbdGhlbWVdPVwidGhlbWVcIiBbaXRlbUljb25dPVwibGlzdEl0ZW1JY29uXCIgW3JlbG9hZFN1YmplY3RdPVwicmVsb2FkU3ViamVjdFwiXHJcblx0KGFkZENsaWNrKT1cInJlc2V0Rm9ybSgkZXZlbnQpXCIgW3NlbGVjdGVkSXRlbV09XCJzZWxlY3RlZEl0ZW1cIiBbc2VhcmNoRmlsdGVyXT1cInNlYXJjaEZpbHRlclwiXHJcblx0W29yZGVyUHJvcGVydGllc109XCJtYWluTGlzdE9yZGVyUHJvcGVydGllc1wiIFtwYWdlU2l6ZV09XCI1MFwiPlxyXG48L2xpYi1pdGVtcy12aWV3ZXI+XHJcbjxkaXYgW2F0dHIuZGF0YS10aGVtZV09XCJ0aGVtZVwiIGNsYXNzPVwidGFicy1jb250YWluZXJcIj5cclxuXHQ8bWF0LXRhYi1ncm91cD5cclxuXHRcdDxtYXQtdGFiIFtsYWJlbF09XCJtYWluVGFiVGl0bGUgfCB0cmFuc2xhdGVcIj5cclxuXHRcdFx0PGRpdiBjbGFzcz1cInRhYi1jb250ZW50XCI+XHJcblx0XHRcdFx0PG5nLWNvbnRhaW5lciAqbmdJZj1cImRpc2FibGVGb3JtXCI+XHJcblx0XHRcdFx0XHQ8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicGxhY2Vob2xkZXI7IGNvbnRleHQ6eyRpbXBsaWNpdDogJ1NlbGVjdCBhIGN1c3RvbWVyIHRvIGVkaXQnfVwiPlxyXG5cclxuXHRcdFx0XHRcdDwvbmctY29udGFpbmVyPlxyXG5cdFx0XHRcdDwvbmctY29udGFpbmVyPlxyXG5cdFx0XHRcdDxsaWItZm9ybSAqbmdJZj1cIiFkaXNhYmxlRm9ybVwiIFtmb3JtXT1cImVudGl0eUZvcm1cIiBbZm9ybUNvbnRyb2xzXT1cImZvcm1Db250cm9sc1wiXHJcblx0XHRcdFx0XHRbZm9ybUFjdGlvbnNdPVwiZW50aXR5QWN0aW9uc1wiIFt0aGVtZV09XCJ0aGVtZVwiIFt0aXRsZV09XCJmb3JtVGl0bGVcIiAoc2F2ZUNsaWNrKT1cInNhdmVJdGVtKClcIiBpY29uPVwibWVudS1lZGl0XCJcclxuXHRcdFx0XHRcdFtlbnRpdHlPYmplY3RdPVwic2VsZWN0ZWRJdGVtXCI+PC9saWItZm9ybT5cclxuXHRcdFx0PC9kaXY+XHJcblx0XHQ8L21hdC10YWI+XHJcblx0XHQ8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJlbnRpdHlcIj5cclxuXHRcdFx0PG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ1VzZXInXCI+XHJcblx0XHRcdFx0PG1hdC10YWIgW2xhYmVsXT1cIidDdXN0b21lcnMnIHwgdHJhbnNsYXRlXCI+XHJcblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwidGFiLWNvbnRlbnRcIj5cclxuXHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImNvbnRlbnQgcGFkZGluZy1jb250YWluZXJcIj5cclxuXHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzSXRlbVNlbGVjdGVkXCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDxuZy1jb250YWluZXJcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQqbmdUZW1wbGF0ZU91dGxldD1cInBsYWNlaG9sZGVyOyBjb250ZXh0OnskaW1wbGljaXQ6ICdTZWxlY3QgYSB1c2VyIHRvIGFzc2lnbiBjdXN0b21lcnMnfVwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8L25nLWNvbnRhaW5lcj5cclxuXHRcdFx0XHRcdFx0XHRcdDwvbmctY29udGFpbmVyPlxyXG5cdFx0XHRcdFx0XHRcdFx0PGxpYi1uZXN0ZWQtaXRlbXMtc2VsZWN0b3IgW2hpZGRlbl09XCIhaXNJdGVtU2VsZWN0ZWRcIiBbc2VsZWN0aW9uRW5kcG9pbnRdPVwidXNlckN1c3RvbWVyc0VuZHBvaW50XCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0W3NlY29uZFNlbGVjdGlvbkVuZHBvaW50XT1cInVzZXJBZ2VuY2llc0VuZHBvaW50XCIgW3JlbG9hZFNlbGVjdGlvblN1YmplY3RdPVwidXNlclN1YmplY3RcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRbbGlzdEVuZHBvaW50XT1cImN1c3RvbWVyTGlzdEVuZHBvaW50XCIgW2xpc3RUaXRsZV09XCInQXZhaWxhYmxlIEN1c3RvbWVycycgfCB0cmFuc2xhdGVcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRbc2Vjb25kTGlzdEVuZHBvaW50XT1cImFnZW5jeUxpc3RFbmRwb2ludFwiIFtzZWNvbmRMaXN0VGl0bGVdPVwiJ0F2YWlsYWJsZSBBZ2VuY2llcycgfCB0cmFuc2xhdGVcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRbdGhlbWVdPVwidGhlbWVcIiBbc2VsZWN0aW9uVGl0bGVdPVwiJ0VtcHJlc2FzIHkgYWdlbmNpYXMnXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0KHNhdmVDbGljayk9XCJhc3NpZ25DdXN0b21lcnNBbmRBZ2VuY2llcygkZXZlbnQpXCI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8L2xpYi1uZXN0ZWQtaXRlbXMtc2VsZWN0b3I+XHJcblx0XHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0PC9kaXY+XHJcblxyXG5cdFx0XHRcdDwvbWF0LXRhYj5cclxuXHRcdFx0XHQ8bWF0LXRhYiBbbGFiZWxdPVwiJ1JvbGVzJyB8IHRyYW5zbGF0ZVwiPlxyXG5cdFx0XHRcdFx0PGRpdiBjbGFzcz1cInRhYi1jb250ZW50XCI+XHJcblx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJjb250ZW50IHBhZGRpbmctY29udGFpbmVyXCI+XHJcblx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0PGxpYi1pdGVtcy12aWV3ZXIgW3Nob3dQYWdpbmF0b3JdPVwiZmFsc2VcIiBbZXh0ZXJuYWxMb2FkaW5nXT1cImxvYWRpbmdVc2VyUm9sZXNcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRbZW50aXR5VWlDb21wb25lbnRdPVwicm9sZUNhcmRcIiBbaXRlbXNdPVwidXNlckFzc2lnbmVkUm9sZXNcIiBbdGhlbWVdPVwidGhlbWVcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRbdGl0bGVdPVwiJ0Fzc2lnbmVkIFJvbGVzIChVc2VyKScgfCB0cmFuc2xhdGVcIiBbc2hvd1BhZ2luYXRvcl09XCJmYWxzZVwiPjwvbGliLWl0ZW1zLXZpZXdlcj5cclxuXHRcdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8bGliLWl0ZW1zLXZpZXdlciBbc2hvd1BhZ2luYXRvcl09XCJmYWxzZVwiIFtleHRlcm5hbExvYWRpbmddPVwibG9hZGluZ1VzZXJDdXN0b21lclJvbGVzXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0W2VudGl0eVVpQ29tcG9uZW50XT1cInJvbGVDYXJkXCIgW2l0ZW1zXT1cInVzZXJDdXN0b21lckFzc2lnbmVkUm9sZXNcIiBbdGhlbWVdPVwidGhlbWVcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRbdGl0bGVdPVwiJ0Fzc2lnbmVkIFJvbGVzIChDdXN0b21lciknIHwgdHJhbnNsYXRlXCIgW3Nob3dQYWdpbmF0b3JdPVwiZmFsc2VcIj48L2xpYi1pdGVtcy12aWV3ZXI+XHJcblx0XHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0PC9tYXQtdGFiPlxyXG5cdFx0XHQ8L25nLWNvbnRhaW5lcj5cclxuXHRcdFx0PG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ0N1c3RvbWVyJ1wiPlxyXG5cdFx0XHRcdDxtYXQtdGFiIFtsYWJlbF09XCInVXNlcnMnIHwgdHJhbnNsYXRlXCI+XHJcblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwidGFiLWNvbnRlbnRcIj5cclxuXHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImNvbnRlbnQgcGFkZGluZy1jb250YWluZXJcIj5cclxuXHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzSXRlbVNlbGVjdGVkXCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDxuZy1jb250YWluZXJcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQqbmdUZW1wbGF0ZU91dGxldD1cInBsYWNlaG9sZGVyOyBjb250ZXh0OnskaW1wbGljaXQ6ICdTZWxlY3QgYSBjdXN0b21lciB0byBhc3NpZ24gdXNlcnMnfVwiPlxyXG5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PC9uZy1jb250YWluZXI+XHJcblxyXG5cdFx0XHRcdFx0XHRcdFx0PC9uZy1jb250YWluZXI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8bGliLWl0ZW1zLXNlbGVjdG9yICpuZ0lmPVwiIWlzSXRlbVNlbGVjdGVkXCIgW2hpZGRlbl09XCIhaXNJdGVtU2VsZWN0ZWRcIiBbc2VsZWN0aW9uRW5kcG9pbnRdPVwiY3VzdG9tZXJVc2Vyc0VuZHBvaW50XCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0W2xpc3RFbmRwb2ludF09XCJ1c2VyTGlzdEVuZHBvaW50XCIgW2l0ZW1zXT1cInVzZXJMaXN0XCIgW3JlbG9hZFNlbGVjdGlvblN1YmplY3RdPVwiY3VzdG9tZXJTdWJqZWN0XCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0W2xpc3RUaXRsZV09XCInQXZhaWxhYmxlIFVzZXJzJyB8IHRyYW5zbGF0ZVwiIFt0aGVtZV09XCJ0aGVtZVwiIFtpdGVtTGFiZWxNYXBdPVwidXNlckxhYmVsXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0W3NlbGVjdGlvblRpdGxlXT1cIidTZWxlY3RlZCBVc2VycycgfCB0cmFuc2xhdGVcIiAoc2F2ZUNsaWNrKT1cImFzc2lnblVzZXJzVG9DdXN0b21lcigkZXZlbnQpXCI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8L2xpYi1pdGVtcy1zZWxlY3Rvcj5cclxuXHRcdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHQ8L21hdC10YWI+XHJcblx0XHRcdFx0PG1hdC10YWIgW2xhYmVsXT1cIidSb2xlcycgfCB0cmFuc2xhdGVcIj5cclxuXHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJ0YWItY29udGVudFwiPlxyXG5cdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiY29udGVudCBwYWRkaW5nLWNvbnRhaW5lclwiPlxyXG5cdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJjb250YWluZXJcIj5cclxuXHRcdFx0XHRcdFx0XHRcdDxsaWItaXRlbXMtdmlld2VyIFtsaXN0RW5kcG9pbnRdPVwiY3VzdG9tZXJSb2xlc0VuZHBvaW50XCIgW2VudGl0eVVpQ29tcG9uZW50XT1cInJvbGVDYXJkXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0W2l0ZW1zXT1cInJvbGVMaXN0XCIgW3RoZW1lXT1cInRoZW1lXCIgW3RpdGxlXT1cIidBc3NpZ25lZCBSb2xlcycgfCB0cmFuc2xhdGVcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRbc2hvd1BhZ2luYXRvcl09XCJmYWxzZVwiPjwvbGliLWl0ZW1zLXZpZXdlcj5cclxuXHRcdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHQ8L21hdC10YWI+XHJcblx0XHRcdDwvbmctY29udGFpbmVyPlxyXG5cdFx0XHQ8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInUm9sZSdcIj5cclxuXHRcdFx0XHQ8bWF0LXRhYiBbbGFiZWxdPVwiJ1VzZXJzJyB8IHRyYW5zbGF0ZVwiPlxyXG5cdFx0XHRcdFx0PGRpdiBjbGFzcz1cInRhYi1jb250ZW50XCI+XHJcblx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJjb250ZW50IHBhZGRpbmctY29udGFpbmVyXCI+XHJcblx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0PG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc0l0ZW1TZWxlY3RlZFwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicGxhY2Vob2xkZXI7IGNvbnRleHQ6eyRpbXBsaWNpdDogJ1NlbGVjdCBhIHJvbGUgdG8gYXNzaWduIHVzZXJzJ31cIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PC9uZy1jb250YWluZXI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8L25nLWNvbnRhaW5lcj5cclxuXHRcdFx0XHRcdFx0XHRcdDxsaWItaXRlbXMtc2VsZWN0b3IgKm5nSWY9XCIhaXNJdGVtU2VsZWN0ZWRcIiBbaGlkZGVuXT1cIiFpc0l0ZW1TZWxlY3RlZFwiIFtyZWxvYWRTZWxlY3Rpb25TdWJqZWN0XT1cInJvbGVTdWJqZWN0XCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0W2xpc3RFbmRwb2ludF09XCJ1c2VyTGlzdEVuZHBvaW50XCIgW3NlbGVjdGlvbkVuZHBvaW50XT1cInJvbGVVc2Vyc0VuZHBvaW50XCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0W2xpc3RUaXRsZV09XCInQXZhaWxhYmxlIFVzZXJzJyB8IHRyYW5zbGF0ZVwiIFt0aGVtZV09XCJ0aGVtZVwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdFtpdGVtTGFiZWxNYXBdPVwidXNlckxhYmVsXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0W3NlbGVjdGlvblRpdGxlXT1cIidTZWxlY3RlZCBVc2VycycgfCB0cmFuc2xhdGVcIiAoc2F2ZUNsaWNrKT1cImFzc2lnblVzZXJzVG9Sb2xlKCRldmVudClcIj5cclxuXHJcblx0XHRcdFx0XHRcdFx0XHQ8L2xpYi1pdGVtcy1zZWxlY3Rvcj5cclxuXHRcdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHQ8L21hdC10YWI+XHJcblx0XHRcdFx0PG1hdC10YWIgW2xhYmVsXT1cIidDdXN0b21lcnMnIHwgdHJhbnNsYXRlXCI+XHJcblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwidGFiLWNvbnRlbnRcIj5cclxuXHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImNvbnRlbnQgcGFkZGluZy1jb250YWluZXJcIj5cclxuXHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzSXRlbVNlbGVjdGVkXCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDxuZy1jb250YWluZXJcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQqbmdUZW1wbGF0ZU91dGxldD1cInBsYWNlaG9sZGVyOyBjb250ZXh0OnskaW1wbGljaXQ6ICdTZWxlY3QgYSByb2xlIHRvIGFzc2lnbiBjdXN0b21lcnMnfVwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8L25nLWNvbnRhaW5lcj5cclxuXHRcdFx0XHRcdFx0XHRcdDwvbmctY29udGFpbmVyPlxyXG5cdFx0XHRcdFx0XHRcdFx0PGxpYi1pdGVtcy1zZWxlY3RvciAqbmdJZj1cIiFpc0l0ZW1TZWxlY3RlZFwiIFtoaWRkZW5dPVwiIWlzSXRlbVNlbGVjdGVkXCIgW3JlbG9hZFNlbGVjdGlvblN1YmplY3RdPVwicm9sZVN1YmplY3RcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRbbGlzdEVuZHBvaW50XT1cImN1c3RvbWVyTGlzdEVuZHBvaW50XCIgW3NlbGVjdGlvbkVuZHBvaW50XT1cInJvbGVDdXN0b21lcnNFbmRwb2ludFwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdFtsaXN0VGl0bGVdPVwiJ0F2YWlsYWJsZSBDdXN0b21lcnMnIHwgdHJhbnNsYXRlXCIgW3RoZW1lXT1cInRoZW1lXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0W3NlbGVjdGlvblRpdGxlXT1cIidTZWxlY3RlZCBDdXN0b21lcnMnIHwgdHJhbnNsYXRlXCIgKHNhdmVDbGljayk9XCJhc3NpZ25DdXN0b21lcnNUb1JvbGUoJGV2ZW50KVwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0PC9saWItaXRlbXMtc2VsZWN0b3I+XHJcblx0XHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0PC9tYXQtdGFiPlxyXG5cdFx0XHQ8L25nLWNvbnRhaW5lcj5cclxuXHJcblx0XHQ8L25nLWNvbnRhaW5lcj5cclxuXHQ8L21hdC10YWItZ3JvdXA+XHJcblxyXG48L2Rpdj5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjcGxhY2Vob2xkZXIgbGV0LW1zZz5cclxuXHQ8ZGl2IGNsYXNzPVwicGxhY2Vob2xkZXJcIj5cclxuXHRcdDxpIGNsYXNzPVwibWVudS1pbmZvXCI+PC9pPlxyXG5cdFx0PHNwYW4+e3ttc2cgfCB0cmFuc2xhdGV9fTwvc3Bhbj5cclxuXHQ8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT4iXX0=