asp-lib 1.0.29 → 1.0.31

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.
@@ -159,19 +159,33 @@ export class EntityAdminComponent {
159
159
  (Boolean(this.formControls[field.name].value) ? { ...acc, [field.name]: this.formControls[field.name].value } : { ...acc }) :
160
160
  ({ ...acc, [field.name]: this.formControls[field.name].value }), {});
161
161
  console.warn('entityForm', this.entityForm, this.formControls, newInfo);
162
+ this.selectedItem = { id: this.selectedItem.id, ...newInfo };
162
163
  this.securityAdminService.saveItem(this.saveEntityEndpoint, { id: this.selectedItem.id, ...newInfo }).subscribe({
163
164
  next: (response) => {
164
165
  if (response.responseCode === 200) {
165
166
  if (this.entity === 'Role') {
166
- this.securityAdminService.assignResource(this.selectedItem.id, this.selectedItem.resources).subscribe({
167
- next: (assignResponse) => {
168
- if (assignResponse.reponseCode === 200) {
167
+ if (this.selectedItem.resources != null) {
168
+ this.securityAdminService.assignResource(this.selectedItem.id, this.selectedItem.resources).subscribe({
169
+ next: (assignResponse) => {
170
+ if (assignResponse.reponseCode === 200) {
171
+ }
172
+ this.selectItem(response.load);
173
+ this.snackbar.success(`${this.translatePipe.transform(this.entityName)} ${this.selectedItem.id === null ? 'Creado' : 'Guardado'}`);
174
+ this.reloadSubject?.next(true);
169
175
  }
170
- this.selectItem(response.load);
171
- this.snackbar.success(`${this.translatePipe.transform(this.entityName)} ${this.selectedItem.id === null ? 'Creado' : 'Guardado'}`);
172
- this.reloadSubject?.next(true);
173
- }
174
- });
176
+ });
177
+ }
178
+ if (this.selectedItem.menuOptions != null) {
179
+ this.securityAdminService.assignOptions(this.selectedItem.id, this.selectedItem.menuOptions).subscribe({
180
+ next: (assignResponse) => {
181
+ if (assignResponse.reponseCode === 200) {
182
+ }
183
+ this.selectItem(response.load);
184
+ this.snackbar.success(`${this.translatePipe.transform(this.entityName)} ${this.selectedItem.id === null ? 'Creado' : 'Guardado'}`);
185
+ this.reloadSubject?.next(true);
186
+ }
187
+ });
188
+ }
175
189
  }
176
190
  else {
177
191
  this.selectItem(response.load);
@@ -375,4 +389,4 @@ function parseType(value, type) {
375
389
  return value;
376
390
  }
377
391
  }
378
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LWFkbWluLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FzcC1saWIvc3JjL2xpYi9lbnRpdHktYWRtaW4vZW50aXR5LWFkbWluLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FzcC1saWIvc3JjL2xpYi9lbnRpdHktYWRtaW4vZW50aXR5LWFkbWluLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQTRCLEtBQUssRUFBbUMsTUFBTSxlQUFlLENBQUM7QUFDNUcsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBR3JFLE9BQU8sRUFBYyxFQUFFLEVBQVcsTUFBTSxNQUFNLENBQUM7QUFHL0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7OztBQUV2RCxNQUFNLFNBQVMsR0FBRyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFFBQVEsRUFBRSxvQkFBb0IsRUFBRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsQ0FBQztBQUNwSSxNQUFNLGFBQWEsR0FBRyxFQUFFLFFBQVEsRUFBRSxlQUFlLEVBQUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFFBQVEsRUFBRSxvQkFBb0IsRUFBRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsQ0FBQztBQUNsSixNQUFNLFFBQVEsR0FBRyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsQ0FBQTtBQVNsSSxN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cG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVHlwZSwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBSb2xlQ2FyZENvbXBvbmVudCB9IGZyb20gJy4uL3JvbGUtY2FyZC9yb2xlLWNhcmQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ2RrRHJhZ0Ryb3AsIENka0Ryb3BMaXN0IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XHJcbmltcG9ydCB7IFNlY3VyaXR5QWRtaW5TZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvc2VjdXJpdHktYWRtaW4uc2VydmljZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFNuYWNrYmFyU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3NuYWNrYmFyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBGb3JtRmllbGQsIFNlY3VyaXR5RW5kcG9pbnQgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2ludGVyZmFjZXMnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVQaXBlIH0gZnJvbSAnLi4vcGlwZXMvdHJhbnNsYXRlLnBpcGUnO1xyXG5pbXBvcnQgeyByZW1vdmVBcnJheUR1cGxpY2F0ZXMgfSBmcm9tICcuLi91dGlscy91dGlscyc7XHJcblxyXG5jb25zdCBuYW1lT3JkZXIgPSB7IHByb3BlcnR5OiAnbmFtZScsIGFzY0ljb246ICdtZW51LWFscGhhYmV0LWFzYycsIGRlc2NJY29uOiAnbWVudS1hbHBoYWJldC1kZXNjJywgdG9vbHRpcDogJ09yZGVuYXIgcG9yIG5vbWJyZScgfTtcclxuY29uc3QgY3VzdG9tZXJPcmRlciA9IHsgcHJvcGVydHk6ICdjdXN0b21lci5uYW1lJywgYXNjSWNvbjogJ21lbnUtY3VzdG9tZXItYXNjJywgZGVzY0ljb246ICdtZW51LWN1c3RvbWVyLWRlc2MnLCB0b29sdGlwOiAnT3JkZW5hciBwb3IgZW1wcmVzYScgfTtcclxuY29uc3QgbGFzdG5hbWUgPSB7IHByb3BlcnR5OiAnbGFzdG5hbWUnLCBhc2NJY29uOiAnbWVudS11c2VyLXJpZ2h0JywgZGVzY0ljb246ICdtZW51LXVzZXItbGVmdCcsIHRvb2x0aXA6ICdPcmRlbmFyIHBvciBhcGVsbGlkbycgfVxyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG5cdHNlbGVjdG9yOiAnbGliLXVzZXJzLWFkbWluJyxcclxuXHR0ZW1wbGF0ZVVybDogJy4vZW50aXR5LWFkbWluLmNvbXBvbmVudC5odG1sJyxcclxuXHRzdHlsZVVybHM6IFsnLi4vYXNzZXRzL2ZvbnRzL3N0eWxlLmNzcycsICcuLi9hc3NldHMvdGhlbWUuc2NzcycsICcuL2VudGl0eS1hZG1pbi5jb21wb25lbnQuc2NzcyddLFxyXG5cdHByb3ZpZGVyczogW1RyYW5zbGF0ZVBpcGVdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFbnRpdHlBZG1pbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblx0QElucHV0KCkgdGhlbWU6IHN0cmluZyA9ICdkZWZhdWx0JztcclxuXHRASW5wdXQoKSBsaXN0VGl0bGU6IHN0cmluZyA9ICcnO1xyXG5cdEBJbnB1dCgpIGxpc3RJY29uOiBzdHJpbmcgPSAnJztcclxuXHRASW5wdXQoKSBsaXN0SXRlbUljb246IHN0cmluZyA9ICcnO1xyXG5cdEBJbnB1dCgpIGVudGl0eTogXCJVc2VyXCIgfCBcIkN1c3RvbWVyXCIgfCBcIlJvbGVcIiA9IFwiVXNlclwiO1xyXG5cdEBJbnB1dCgpIGVudGl0eU5hbWU6IHN0cmluZyA9ICcnO1xyXG5cdEBJbnB1dCgpIGVudGl0eUFjdGlvbnM6IGFueVtdID0gW107XHJcblx0QElucHV0KCkgZW50aXR5Rm9ybTogRm9ybUZpZWxkW10gPSBbXTtcclxuXHRASW5wdXQoKSBlbnRpdHlMaXN0RW5kcG9pbnQ6IHN0cmluZyA9ICcnO1xyXG5cdEBJbnB1dCgpIGVudGl0eUl0ZW1zRW5kcG9pbnQ6IFNlY3VyaXR5RW5kcG9pbnQgPSB7IHVybDogJyd9O1xyXG5cdEBJbnB1dCgpIGVudGl0eUxpc3Q6IGFueVtdID0gW107XHJcblx0QElucHV0KCkgZW50aXR5VWlDb21wb25lbnQ6IFR5cGU8YW55PiB8IG51bGwgPSBudWxsO1xyXG5cdEBJbnB1dCgpIHVpQ29tcG9uZW50SW5wdXRzOiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0ge307XHJcblx0QElucHV0KCkgc2VhcmNoRmlsdGVyPzogRnVuY3Rpb247XHJcblx0QElucHV0KCkgY3VzdG9tZXJMaXN0OiBhbnlbXSA9IFtdO1xyXG5cdEBJbnB1dCgpIHJvbGVMaXN0OiBhbnlbXSA9IFtdO1xyXG5cdEBJbnB1dCgpIHVzZXJMaXN0OiBhbnlbXSA9IFtdO1xyXG5cdEBJbnB1dCgpIGN1c3RvbWVyTGlzdEVuZHBvaW50OiBTZWN1cml0eUVuZHBvaW50ID0geyB1cmw6ICcnIH07XHJcblx0QElucHV0KCkgYWdlbmN5TGlzdEVuZHBvaW50OiBTZWN1cml0eUVuZHBvaW50ID0geyB1cmw6ICcnIH07XHJcblx0QElucHV0KCkgcm9sZUxpc3RFbmRwb2ludDogU2VjdXJpdHlFbmRwb2ludCA9IHsgdXJsOiAnJyB9O1xyXG5cdEBJbnB1dCgpIHVzZXJMaXN0RW5kcG9pbnQ6IFNlY3VyaXR5RW5kcG9pbnQgPSB7IHVybDogJycgfTtcclxuXHRASW5wdXQoKSBzYXZlRW50aXR5RW5kcG9pbnQ6IHN0cmluZyA9ICcnO1xyXG5cdEBJbnB1dCgpIGVudGl0eUxpc3RSZXF1ZXN0TWFwcGluZzogRnVuY3Rpb24gPSAocmVzcG9uc2U6IGFueSkgPT4gb2YocmVzcG9uc2UpO1xyXG5cdEBJbnB1dCgpIHVzZXJzQnlDdXN0b21lckVuZHBvaW50OiBzdHJpbmcgPSAnJztcclxuXHRASW5wdXQoKSByZWxvYWRTdWJqZWN0PzogU3ViamVjdDxib29sZWFuPjtcclxuXHRASW5wdXQoKSBpdGVtU2VsZWN0ZWQ6IEZ1bmN0aW9uID0gKCkgPT4geyB9O1xyXG5cdEBJbnB1dCgpIHJlc2V0SXRlbVNlbGVjdGVkPzogU3ViamVjdDxib29sZWFuPjtcclxuXHRyb2xlQ2FyZCA9IFJvbGVDYXJkQ29tcG9uZW50O1xyXG5cdGZvcm1Db250cm9sczogeyBba2V5OiBzdHJpbmddOiBGb3JtQ29udHJvbCB9ID0ge307XHJcblx0c2VsZWN0ZWRJdGVtOiBhbnkgPSB7IGlkOiBudWxsIH07XHJcblx0c2VsZWN0ZWRVc2VyOiBhbnk7XHJcblx0bG9hZGluZ1VzZXJSb2xlczogYm9vbGVhbiA9IGZhbHNlO1xyXG5cdGxvYWRpbmdVc2VyQ3VzdG9tZXJSb2xlczogYm9vbGVhbiA9IGZhbHNlO1xyXG5cdGdldCB1c2VyU3ViamVjdCgpIHsgcmV0dXJuIHRoaXMuc2VjdXJpdHlBZG1pblNlcnZpY2Uuc2VsZWN0ZWRVc2VyU3ViamVjdCB9XHJcblx0Z2V0IGN1c3RvbWVyU3ViamVjdCgpIHsgcmV0dXJuIHRoaXMuc2VjdXJpdHlBZG1pblNlcnZpY2Uuc2VsZWN0ZWRDdXN0b21lclN1YmplY3QgfVxyXG5cdGdldCByb2xlU3ViamVjdCgpIHsgcmV0dXJuIHRoaXMuc2VjdXJpdHlBZG1pblNlcnZpY2Uuc2VsZWN0ZWRSb2xlU3ViamVjdCB9XHJcblx0Z2V0IGRpc2FibGVDcmVhdGlvbigpIHsgcmV0dXJuIHRoaXMuc2VjdXJpdHlBZG1pblNlcnZpY2UuYmxvY2tDcmVhdGlvbkZvci5oYXModGhpcy5lbnRpdHkpIH1cclxuXHRnZXQgZGlzYWJsZUZvcm0oKSB7IHJldHVybiAhdGhpcy5pc0l0ZW1TZWxlY3RlZCAmJiB0aGlzLmRpc2FibGVDcmVhdGlvbiB9XHJcblxyXG5cdGdldCB1c2VyQXNzaWduZWRSb2xlcygpIHsgcmV0dXJuIHRoaXMuc2VsZWN0ZWRVc2VyPy5yb2xlcyA/PyBbXSB9XHJcblx0Z2V0IHVzZXJDdXN0b21lckFzc2lnbmVkUm9sZXMoKSB7IHJldHVybiB0aGlzLnNlbGVjdGVkVXNlcj8uY3VzdG9tZXJSb2xlcyA/PyBbXSB9XHJcblx0Z2V0IG1haW5MaXN0T3JkZXJQcm9wZXJ0aWVzKCkge1xyXG5cdFx0c3dpdGNoICh0aGlzLmVudGl0eSkge1xyXG5cdFx0XHRjYXNlICdVc2VyJzpcclxuXHRcdFx0XHRyZXR1cm4gW25hbWVPcmRlciwgbGFzdG5hbWVdO1xyXG5cdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRkZWZhdWx0OlxyXG5cdFx0XHRcdHJldHVybiBbbmFtZU9yZGVyXTtcclxuXHRcdFx0XHRicmVhaztcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdGNvbnN0cnVjdG9yKHByaXZhdGUgc2VjdXJpdHlBZG1pblNlcnZpY2U6IFNlY3VyaXR5QWRtaW5TZXJ2aWNlLCBwcml2YXRlIHNuYWNrYmFyOiBTbmFja2JhclNlcnZpY2UsIHByaXZhdGUgdHJhbnNsYXRlUGlwZTogVHJhbnNsYXRlUGlwZSkge1xyXG5cclxuXHR9XHJcblxyXG5cdGdldCBmb3JtVGl0bGUoKSB7IHJldHVybiBgJHt0aGlzLnRyYW5zbGF0ZVBpcGUudHJhbnNmb3JtKHRoaXMuc2VsZWN0ZWRJdGVtLmlkID8gXCJFZGl0XCIgOiBcIkNyZWF0ZVwiKX0gJHt0aGlzLnRyYW5zbGF0ZVBpcGUudHJhbnNmb3JtKHRoaXMuZW50aXR5TmFtZSl9YCB9XHJcblxyXG5cclxuXHRhZ2VuY3lFbmRwb2ludFBhcmFtczogRnVuY3Rpb24gPSAoY3VzdG9tZXI6IGFueSkgPT4gYGN1c3RvbWVySWQ9JHtjdXN0b21lci5pZH1gXHJcblxyXG5cdGdldCBpc0l0ZW1TZWxlY3RlZCgpIHtcclxuXHRcdHJldHVybiB0eXBlb2YgKHRoaXMuc2VsZWN0ZWRJdGVtPy5pZCkgPT09ICdudW1iZXInO1xyXG5cdH1cclxuXHJcblx0bmdPbkluaXQoKSB7XHJcblx0XHR0aGlzLmZvcm1Db250cm9scyA9IHRoaXMuZW50aXR5Rm9ybS5yZWR1Y2UoKG9iamVjdCwgZmllbGQpID0+ICh7IC4uLm9iamVjdCwgW2ZpZWxkLm5hbWVdOiBuZXcgRm9ybUNvbnRyb2w8YW55PihmaWVsZC5kZWZhdWx0VmFsdWUgPz8gbnVsbCkgfSksIHt9KVxyXG5cdFx0dGhpcy5zZWN1cml0eUFkbWluU2VydmljZS5zdWJqZWN0c1t0aGlzLmVudGl0eV0uc3Vic2NyaWJlKHtcclxuXHRcdFx0bmV4dDogKGl0ZW0pID0+IHtcclxuXHRcdFx0XHR0aGlzLnNlbGVjdGVkSXRlbSA9IGl0ZW07XHJcblx0XHRcdFx0T2JqZWN0LmVudHJpZXModGhpcy5mb3JtQ29udHJvbHMpLmZvckVhY2goKFtuYW1lLCBjb250cm9sXSkgPT4ge1xyXG5cdFx0XHRcdFx0bGV0IGZpZWxkID0gdGhpcy5lbnRpdHlGb3JtLmZpbmQoeCA9PiB4Lm5hbWUgPT09IG5hbWUpO1xyXG5cdFx0XHRcdFx0Y29udHJvbC5wYXRjaFZhbHVlKHBhcnNlVHlwZShpdGVtW25hbWVdLCBmaWVsZD8udHlwZSkpO1xyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHRcdHRoaXMuc2VjdXJpdHlBZG1pblNlcnZpY2Uuc2VsZWN0ZWRVc2VyU3ViamVjdC5zdWJzY3JpYmUoe1xyXG5cdFx0XHRuZXh0OiAodXNlcikgPT4ge1xyXG5cdFx0XHRcdHRoaXMuc2VsZWN0ZWRVc2VyID0gdXNlcjtcclxuXHRcdFx0XHRpZiAodXNlci5pZCAhPT0gbnVsbCkge1xyXG5cdFx0XHRcdFx0dGhpcy5sb2FkaW5nVXNlclJvbGVzID0gdHJ1ZTtcclxuXHRcdFx0XHRcdHRoaXMuc2VjdXJpdHlBZG1pblNlcnZpY2UuZ2V0QXNzaWduZWRSb2xlcyh1c2VyLmlkLCBcIlVzZXJcIikuc3Vic2NyaWJlKHtcclxuXHRcdFx0XHRcdFx0bmV4dDogKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuXHRcdFx0XHRcdFx0XHRpZiAocmVzcG9uc2UucmVzcG9uc2VDb2RlID09PSAyMDApIHtcclxuXHRcdFx0XHRcdFx0XHRcdHRoaXMubG9hZGluZ1VzZXJDdXN0b21lclJvbGVzID0gdHJ1ZTtcclxuXHRcdFx0XHRcdFx0XHRcdHRoaXMuc2VjdXJpdHlBZG1pblNlcnZpY2UuZ2V0VXNlclJvbGVzQnlDdXN0b21lcnModXNlcikuc3Vic2NyaWJlKHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0bmV4dDogKGN1c3RvbWVyUmVzcG9uc2U6IGFueSkgPT4ge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdGlmIChjdXN0b21lclJlc3BvbnNlLnJlc3BvbnNlQ29kZSA9PT0gMjAwKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR0aGlzLnNlbGVjdGVkVXNlciA9IHsgLi4udXNlciwgcm9sZXM6IHJlc3BvbnNlLmxvYWQsIGN1c3RvbWVyUm9sZXM6IHJlbW92ZUFycmF5RHVwbGljYXRlcyhjdXN0b21lclJlc3BvbnNlLmxvYWQpIH1cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0dGhpcy5zZWxlY3RlZFVzZXIgPSB7IC4uLnVzZXIsIHJvbGVzOiByZXNwb25zZS5sb2FkIH1cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHRoaXMubG9hZGluZ1VzZXJSb2xlcyA9IGZhbHNlO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHR0aGlzLmxvYWRpbmdVc2VyQ3VzdG9tZXJSb2xlcyA9IGZhbHNlO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRlcnJvcjogKCkgPT4gdGhpcy5sb2FkaW5nVXNlckN1c3RvbWVyUm9sZXMgPSBmYWxzZVxyXG5cdFx0XHRcdFx0XHRcdFx0fSlcclxuXHRcdFx0XHRcdFx0XHRcdC8vIGlmICh1c2VyLmN1c3RvbWVyPy5pZCkge1xyXG5cdFx0XHRcdFx0XHRcdFx0Ly8gXHR0aGlzLmxvYWRpbmdVc2VyQ3VzdG9tZXJSb2xlcyA9IHRydWU7XHJcblx0XHRcdFx0XHRcdFx0XHQvLyBcdHRoaXMuc2VjdXJpdHlBZG1pblNlcnZpY2UuZ2V0QXNzaWduZWRSb2xlcyh1c2VyLmN1c3RvbWVyLmlkLCBcIkN1c3RvbWVyXCIpLnN1YnNjcmliZSh7XHJcblx0XHRcdFx0XHRcdFx0XHQvLyBcdFx0bmV4dDogKGN1c3RvbWVyUmVzcG9uc2U6IGFueSkgPT4ge1xyXG5cdFx0XHRcdFx0XHRcdFx0Ly8gXHRcdFx0aWYgKGN1c3RvbWVyUmVzcG9uc2UucmVzcG9uc2VDb2RlID09PSAyMDApIHtcclxuXHRcdFx0XHRcdFx0XHRcdC8vIFx0XHRcdFx0dGhpcy5zZWxlY3RlZFVzZXIgPSB7IC4uLnVzZXIsIHJvbGVzOiByZXNwb25zZS5sb2FkLCBjdXN0b21lclJvbGVzOiBjdXN0b21lclJlc3BvbnNlLmxvYWQgfVxyXG5cdFx0XHRcdFx0XHRcdFx0Ly8gXHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdFx0Ly8gXHRcdFx0dGhpcy5sb2FkaW5nVXNlckN1c3RvbWVyUm9sZXMgPSBmYWxzZTtcclxuXHRcdFx0XHRcdFx0XHRcdC8vIFx0XHR9LFxyXG5cdFx0XHRcdFx0XHRcdFx0Ly8gXHRcdGVycm9yOiBfID0+IHRoaXMubG9hZGluZ1VzZXJDdXN0b21lclJvbGVzID0gZmFsc2VcclxuXHRcdFx0XHRcdFx0XHRcdC8vIFx0fSlcclxuXHRcdFx0XHRcdFx0XHRcdC8vIH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0XHQvLyBcdHRoaXMuc2VsZWN0ZWRVc2VyID0geyAuLi51c2VyLCByb2xlczogcmVzcG9uc2UubG9hZCB9XHJcblx0XHRcdFx0XHRcdFx0XHQvLyBcdHRoaXMubG9hZGluZ1VzZXJSb2xlcyA9IGZhbHNlO1xyXG5cdFx0XHRcdFx0XHRcdFx0Ly8gfVxyXG5cdFx0XHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0XHR0aGlzLnNlbGVjdGVkVXNlciA9IHsgLi4udXNlciwgcm9sZXM6IHJlc3BvbnNlLmxvYWQgfVxyXG5cdFx0XHRcdFx0XHRcdFx0dGhpcy5sb2FkaW5nVXNlclJvbGVzID0gZmFsc2U7XHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdHRoaXMubG9hZGluZ1VzZXJSb2xlcyA9IGZhbHNlO1xyXG5cdFx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0XHRlcnJvcjogKCkgPT4gdGhpcy5sb2FkaW5nVXNlclJvbGVzID0gZmFsc2VcclxuXHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHRcdHRoaXMucmVzZXRJdGVtU2VsZWN0ZWQ/LnN1YnNjcmliZSh7XHJcblx0XHRcdG5leHQ6ICgpID0+IHtcclxuXHRcdFx0XHR0aGlzLnJlc2V0Rm9ybSgpO1xyXG5cdFx0XHR9XHJcblx0XHR9KVxyXG5cdH1cclxuXHJcblx0c2VsZWN0SXRlbShuZXdJdGVtOiBhbnkpIHtcclxuXHRcdHN3aXRjaCAodGhpcy5lbnRpdHkpIHtcclxuXHRcdFx0Y2FzZSBcIlVzZXJcIjpcclxuXHRcdFx0XHR0aGlzLnNlY3VyaXR5QWRtaW5TZXJ2aWNlLnNlbGVjdFVzZXIobmV3SXRlbSk7XHJcblx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdGNhc2UgXCJDdXN0b21lclwiOlxyXG5cdFx0XHRcdHRoaXMuc2VjdXJpdHlBZG1pblNlcnZpY2Uuc2VsZWN0Q3VzdG9tZXIobmV3SXRlbSk7XHJcblx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdGNhc2UgXCJSb2xlXCI6XHJcblx0XHRcdFx0dGhpcy5zZWN1cml0eUFkbWluU2VydmljZS5zZWxlY3RSb2xlKG5ld0l0ZW0pO1xyXG5cdFx0XHRcdGJyZWFrO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0c2F2ZUl0ZW0oKSB7XHJcblx0XHR0aGlzLnNuYWNrYmFyLmluZm8oXCJHdWFyZGFuZG8uLi5cIiwgMzAwMCk7XHJcblx0XHRsZXQgbmV3SW5mbyA9IHRoaXMuZW50aXR5Rm9ybS5yZWR1Y2UoKGFjYywgZmllbGQpID0+IGZpZWxkLnJlcXVpcmVzTmV3VmFsdWUgP1xyXG5cdFx0XHQoQm9vbGVhbih0aGlzLmZvcm1Db250cm9sc1tmaWVsZC5uYW1lXS52YWx1ZSkgPyB7IC4uLmFjYywgW2ZpZWxkLm5hbWVdOiB0aGlzLmZvcm1Db250cm9sc1tmaWVsZC5uYW1lXS52YWx1ZSB9IDogeyAuLi5hY2MgfSkgOlxyXG5cdFx0XHQoeyAuLi5hY2MsIFtmaWVsZC5uYW1lXTogdGhpcy5mb3JtQ29udHJvbHNbZmllbGQubmFtZV0udmFsdWUgfSksXHJcblx0XHRcdHt9XHJcblx0XHQpO1xyXG5cdFx0Y29uc29sZS53YXJuKCdlbnRpdHlGb3JtJywgdGhpcy5lbnRpdHlGb3JtLCB0aGlzLmZvcm1Db250cm9scywgbmV3SW5mbyk7XHJcblxyXG5cdFx0dGhpcy5zZWN1cml0eUFkbWluU2VydmljZS5zYXZlSXRlbSh0aGlzLnNhdmVFbnRpdHlFbmRwb2ludCwgeyBpZDogdGhpcy5zZWxlY3RlZEl0ZW0uaWQsIC4uLm5ld0luZm8gfSkuc3Vic2NyaWJlKHtcclxuXHRcdFx0bmV4dDogKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuXHRcdFx0XHRpZiAocmVzcG9uc2UucmVzcG9uc2VDb2RlID09PSAyMDApIHtcclxuXHRcdFx0XHRcdGlmICh0aGlzLmVudGl0eSA9PT0gJ1JvbGUnKSB7XHJcblx0XHRcdFx0XHRcdHRoaXMuc2VjdXJpdHlBZG1pblNlcnZpY2UuYXNzaWduUmVzb3VyY2UodGhpcy5zZWxlY3RlZEl0ZW0uaWQsIHRoaXMuc2VsZWN0ZWRJdGVtLnJlc291cmNlcykuc3Vic2NyaWJlKHtcclxuXHRcdFx0XHRcdFx0XHRuZXh0OiAoYXNzaWduUmVzcG9uc2U6IGFueSkgPT4ge1xyXG5cdFx0XHRcdFx0XHRcdFx0aWYgKGFzc2lnblJlc3BvbnNlLnJlcG9uc2VDb2RlID09PSAyMDApIHtcclxuXHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHRcdHRoaXMuc2VsZWN0SXRlbShyZXNwb25zZS5sb2FkKTtcclxuXHRcdFx0XHRcdFx0XHRcdHRoaXMuc25hY2tiYXIuc3VjY2VzcyhgJHt0aGlzLnRyYW5zbGF0ZVBpcGUudHJhbnNmb3JtKHRoaXMuZW50aXR5TmFtZSl9ICR7dGhpcy5zZWxlY3RlZEl0ZW0uaWQgPT09IG51bGwgPyAnQ3JlYWRvJyA6ICdHdWFyZGFkbyd9YCk7XHJcblx0XHRcdFx0XHRcdFx0XHR0aGlzLnJlbG9hZFN1YmplY3Q/Lm5leHQodHJ1ZSk7XHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0dGhpcy5zZWxlY3RJdGVtKHJlc3BvbnNlLmxvYWQpO1xyXG5cdFx0XHRcdFx0XHR0aGlzLnNuYWNrYmFyLnN1Y2Nlc3MoYCR7dGhpcy50cmFuc2xhdGVQaXBlLnRyYW5zZm9ybSh0aGlzLmVudGl0eU5hbWUpfSAke3RoaXMuc2VsZWN0ZWRJdGVtLmlkID09PSBudWxsID8gJ0NyZWFkbycgOiAnR3VhcmRhZG8nfWApO1xyXG5cdFx0XHRcdFx0XHR0aGlzLnJlbG9hZFN1YmplY3Q/Lm5leHQodHJ1ZSk7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRlcnJvcjogKGVycm9yKSA9PiB7XHJcblx0XHRcdFx0Y29uc29sZS5sb2coZXJyb3IpO1xyXG5cdFx0XHRcdHRoaXMuc25hY2tiYXIud2FybmluZygnSGEgb2N1cnJpZG8gdW4gZXJyb3IgYWwgZ3VhcmRhcicpO1xyXG5cdFx0XHRcdHRoaXMucmVsb2FkU3ViamVjdD8ubmV4dCh0cnVlKTtcclxuXHRcdFx0fVxyXG5cdFx0fSk7O1xyXG5cdH1cclxuXHJcblx0Z2V0IHVzZXJMYWJlbCgpIHtcclxuXHRcdHJldHVybiAoaXRlbTogYW55KSA9PiBgJHtpdGVtLm5hbWV9ICR7aXRlbS5sYXN0bmFtZSA/PyAnJ31gXHJcblx0fVxyXG5cclxuXHRyZXNldEZvcm0oZXZlbnQ/OiBhbnkpIHtcclxuXHRcdHRoaXMuc2VsZWN0SXRlbSh7IGlkOiBudWxsLCAuLi50aGlzLmVudGl0eUZvcm0ucmVkdWNlKChhY2M6IGFueSwgY3VycjogYW55KSA9PiBjdXJyLmRlZmF1bHRWYWx1ZSAhPT0gdW5kZWZpbmVkID8gKHsgLi4uYWNjLCBbY3Vyci5uYW1lXTogY3Vyci5kZWZhdWx0VmFsdWUgfSkgOiAoeyAuLi5hY2MgfSksIHt9KSB9KTtcclxuXHR9XHJcblxyXG5cdGdldCBjdXJyZW50Q3VzdG9tZXJVc2VycygpIHtcclxuXHRcdHJldHVybiB0aGlzLnNlbGVjdGVkSXRlbS51c2VycyA/PyBbXTtcclxuXHR9XHJcblxyXG5cdGdldCB1c2VyQ3VzdG9tZXJzRW5kcG9pbnQoKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5zZWN1cml0eUFkbWluU2VydmljZS5lbmRwb2ludHMuY3VzdG9tZXJzQnlVc2VyID8/IHsgdXJsOiAnJyB9O1xyXG5cdH1cclxuXHJcblx0Z2V0IHVzZXJBZ2VuY2llc0VuZHBvaW50KCkge1xyXG5cdFx0cmV0dXJuIHRoaXMuc2VjdXJpdHlBZG1pblNlcnZpY2UuZW5kcG9pbnRzLmFnZW5jaWVzQnlVc2VyID8/IHsgdXJsOiAnJyB9O1xyXG5cdH1cclxuXHJcblx0Z2V0IGN1c3RvbWVyVXNlcnNFbmRwb2ludCgpIHtcclxuXHRcdHJldHVybiB0aGlzLnNlY3VyaXR5QWRtaW5TZXJ2aWNlLmVuZHBvaW50cy51c2Vyc0J5Q3VzdG9tZXI7XHJcblx0fVxyXG5cclxuXHRnZXQgY3VzdG9tZXJSb2xlc0VuZHBvaW50KCkge1xyXG5cdFx0cmV0dXJuICh0eXBlb2YodGhpcy5zZWxlY3RlZEl0ZW0uaWQpID09PSAnbnVtYmVyJykgPyB0aGlzLnNlY3VyaXR5QWRtaW5TZXJ2aWNlLmVuZHBvaW50cy5yb2xlc0J5Q3VzdG9tZXI/LnVybCArICc/Y3VzdG9tZXJJZD0nICsgdGhpcy5zZWxlY3RlZEl0ZW0uaWQgOiAnJztcclxuXHR9XHJcblxyXG5cdGdldCBhZ2VuY3lMaXN0RW5kcG9pbnQyKCkge1xyXG5cdFx0cmV0dXJuIHRoaXMuc2VjdXJpdHlBZG1pblNlcnZpY2UuZW5kcG9pbnRzLmxpc3RBbGxBZ2VuY2llcyA/PyB7IHVybDogJycgfTtcclxuXHR9XHJcblxyXG5cclxuXHRnZXQgcm9sZVVzZXJzRW5kcG9pbnQoKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5zZWN1cml0eUFkbWluU2VydmljZS5lbmRwb2ludHMudXNlcnNCeVJvbGU7XHJcblx0fVxyXG5cclxuXHRnZXQgcm9sZUN1c3RvbWVyc0VuZHBvaW50KCkge1xyXG5cdFx0cmV0dXJuIHRoaXMuc2VjdXJpdHlBZG1pblNlcnZpY2UuZW5kcG9pbnRzLmN1c3RvbWVyc0J5Um9sZTtcclxuXHR9XHJcblxyXG5cdGFzc2lnbkN1c3RvbWVyVG9Vc2VyKGN1c3RvbWVyOiBhbnkpIHtcclxuXHRcdHRoaXMuc2VsZWN0SXRlbSh7IC4uLnRoaXMuc2VsZWN0ZWRJdGVtLCBjdXN0b21lciB9KTtcclxuXHR9XHJcblxyXG5cdGFzc2lnbkN1c3RvbWVyc0FuZEFnZW5jaWVzKGl0ZW1zOiB7IHByaW1hcnlJdGVtczogYW55W10sIHNlY29uZGFyeUl0ZW1zOiBhbnlbXSB9KSB7XHJcblx0XHR0aGlzLnNuYWNrYmFyLmluZm8oJ0d1YXJkYW5kby4uLicpO1xyXG5cdFx0dGhpcy5zZWN1cml0eUFkbWluU2VydmljZS5hc3NpZ25Vc2VyQ3VzdG9tZXJBbmRBZ2VuY2llcyh0aGlzLnNlbGVjdGVkSXRlbS5pZCwgaXRlbXMucHJpbWFyeUl0ZW1zLCBpdGVtcy5zZWNvbmRhcnlJdGVtcykuc3Vic2NyaWJlKHtcclxuXHRcdFx0bmV4dDogKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuXHRcdFx0XHRpZiAocmVzcG9uc2UucmVzcG9uc2VDb2RlID09PSAyMDApIHtcclxuXHRcdFx0XHRcdHRoaXMuc25hY2tiYXIuc3VjY2VzcygnRW1wcmVzYXMvYWdlbmNpYXMgYWN0dWFsaXphZGFzJyk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdGVsc2Uge1xyXG5cdFx0XHRcdFx0dGhpcy5zbmFja2Jhci53YXJuaW5nKCdPY3VycmnDsyB1biBlcnJvciBhbCBhc2lnbmFyIEVtcHJlc2FzJylcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sIGVycm9yOiAoKSA9PiB0aGlzLnNuYWNrYmFyLndhcm5pbmcoJ09jdXJyacOzIHVuIGVycm9yIGFsIGFzaWduYXIgRW1wcmVzYXMnKVxyXG5cclxuXHRcdH0pXHJcblx0XHQvLyBsZXQgY3VzdG9tZXJzID0gaXRlbXMucHJpbWFyeUl0ZW1zO1xyXG5cdFx0Ly8gbGV0IGFnZW5jaWVzID0gaXRlbXMuc2Vjb25kYXJ5SXRlbXM7XHJcblx0XHQvLyBjb25zb2xlLmxvZygndHJ5IHRvIHNhdmUnLCBjdXN0b21lcnMsIGFnZW5jaWVzLCB0aGlzLnNlbGVjdGVkSXRlbSk7XHJcblx0XHQvLyBsZXQgc3VjY2Vzc0N1c3RvbWVycyA9IGZhbHNlO1xyXG5cdFx0Ly8gdGhpcy5zbmFja2Jhci5pbmZvKCdHdWFyZGFuZG8uLi4nKTtcclxuXHRcdC8vIHRoaXMuc2VjdXJpdHlBZG1pblNlcnZpY2UuYXNzaWduVXNlckN1c3RvbWVycyh0aGlzLnNlbGVjdGVkSXRlbS5pZCwgY3VzdG9tZXJzKS5zdWJzY3JpYmUoe1xyXG5cdFx0Ly8gXHRuZXh0OiAocmVzcG9uc2U6IGFueSkgPT4ge1xyXG5cdFx0Ly8gXHRcdGlmIChyZXNwb25zZS5yZXNwb25zZUNvZGUgPT09IDIwMCkge1xyXG5cdFx0Ly8gXHRcdFx0aWYgKGFnZW5jaWVzPy5sZW5ndGggPiAwKSB7XHJcblx0XHQvLyBcdFx0XHRcdHRoaXMuc2VjdXJpdHlBZG1pblNlcnZpY2UuYXNzaWduVXNlckFnZW5jaWVzKHRoaXMuc2VsZWN0ZWRJdGVtLmlkLCBhZ2VuY2llcykuc3Vic2NyaWJlKHtcclxuXHRcdC8vIFx0XHRcdFx0XHRuZXh0OiAocmVzcG9uc2U6IGFueSkgPT4ge1xyXG5cdFx0Ly8gXHRcdFx0XHRcdFx0aWYgKHJlc3BvbnNlLnJlc3BvbnNlQ29kZSA9PT0gMjAwKSB7XHJcblx0XHQvLyBcdFx0XHRcdFx0XHRcdHRoaXMuc25hY2tiYXIuc3VjY2VzcygnRW1wcmVzYXMgeSBhZ2VuY2lhcyBhc2lnbmFkYXMnKTtcclxuXHRcdC8vIFx0XHRcdFx0XHRcdH1cclxuXHRcdC8vIFx0XHRcdFx0XHR9LFxyXG5cdFx0Ly8gXHRcdFx0XHRcdGVycm9yOiBfPT4gdGhpcy5zbmFja2Jhci53YXJuaW5nKCdIYSBvY3VycmlkbyB1biBlcnJvciBhbCBhc2lnbmFyIEFnZW5jaWFzJylcclxuXHRcdC8vIFx0XHRcdFx0fSk7XHJcblx0XHQvLyBcdFx0XHR9IGVsc2Uge1xyXG5cclxuXHRcdC8vIFx0XHRcdH1cclxuXHRcdC8vIFx0XHR9IGVsc2Uge1xyXG5cdFx0Ly8gXHRcdFx0dGhpcy5zbmFja2Jhci53YXJuaW5nKCdIYSBvY3VycmlkbyB1biBlcnJvciBhbCBhc2lnbmFyIEVtcHJlc2FzJylcclxuXHRcdC8vIFx0XHR9XHJcblx0XHQvLyBcdH0sIGVycm9yOiBfPT4gdGhpcy5zbmFja2Jhci53YXJuaW5nKCdIYSBvY3VycmlkbyB1biBlcnJvciBhbCBhc2lnbmFyIEVtcHJlc2FzJylcclxuXHRcdC8vIH0pO1xyXG5cdH1cclxuXHJcblx0YXNzaWduVXNlcnNUb0N1c3RvbWVyKHVzZXJzOiBhbnlbXSkge1xyXG5cdFx0Ly8gdGhpcy5zZWxlY3RlZEl0ZW0gPSB7IC4uLnRoaXMuc2VsZWN0ZWRJdGVtLCB1c2VyczogdXNlcnMgfTtcclxuXHRcdC8vIHRoaXMuc2F2ZUl0ZW0oKTtcclxuXHRcdHRoaXMuc25hY2tiYXIuaW5mbygnR3VhcmRhbmRvLi4uJyk7XHJcblx0XHR0aGlzLnNlY3VyaXR5QWRtaW5TZXJ2aWNlLmFzc2lnbkN1c3RvbWVyVXNlcnModGhpcy5zZWxlY3RlZEl0ZW0sIHVzZXJzKS5zdWJzY3JpYmUoe1xyXG5cdFx0XHRuZXh0OiAocmVzcG9uc2U6IGFueSkgPT4ge1xyXG5cdFx0XHRcdGlmIChyZXNwb25zZS5yZXNwb25zZUNvZGUgPT09IDIwMCkge1xyXG5cdFx0XHRcdFx0dGhpcy5zbmFja2Jhci5zdWNjZXNzKCdVc3VhcmlvcyBhc2lnbmFkb3MnKTtcclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0dGhpcy5zbmFja2Jhci53YXJuaW5nKCdIYSBvY3VycmlkbyB1biBlcnJvciBhbCBhc2lnbmFyIHVzdWFyaW9zJylcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sXHJcblx0XHRcdGVycm9yOiAoKSA9PiB0aGlzLnNuYWNrYmFyLndhcm5pbmcoJ0hhIG9jdXJyaWRvIHVuIGVycm9yIGFsIGFzaWduYXIgdXN1YXJpb3MnKVxyXG5cdFx0fSlcclxuXHR9XHJcblxyXG5cdGFzc2lnblVzZXJzVG9Sb2xlKHVzZXJzOiBhbnlbXSkge1xyXG5cdFx0dGhpcy5zbmFja2Jhci5pbmZvKCdHdWFyZGFuZG8uLi4nKVxyXG5cdFx0dGhpcy5zZWN1cml0eUFkbWluU2VydmljZS5hc3NpZ25Sb2xlVXNlcnModGhpcy5zZWxlY3RlZEl0ZW0uaWQsIHVzZXJzKS5zdWJzY3JpYmUoe1xyXG5cdFx0XHRuZXh0OiAocmVzcG9uc2U6IGFueSkgPT4ge1xyXG5cdFx0XHRcdGlmIChyZXNwb25zZS5yZXNwb25zZUNvZGUgPT09IDIwMCkge1xyXG5cdFx0XHRcdFx0dGhpcy5zbmFja2Jhci5zdWNjZXNzKCdVc3VhcmlvcyBhc2lnbmFkb3MnKTtcclxuXHRcdFx0XHRcdHRoaXMucmVsb2FkU3ViamVjdD8ubmV4dCh0cnVlKTtcclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0dGhpcy5zbmFja2Jhci53YXJuaW5nKCdPY3VycmnDsyB1biBlcnJvciBhbCBhc2lnbmFyIHVzdWFyaW9zLicpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0ZXJyb3I6ICgpID0+IHRoaXMuc25hY2tiYXIud2FybmluZygnT2N1cnJpw7MgdW4gZXJyb3IgYWwgYXNpZ25hciB1c3Vhcmlvcy4nKVxyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHRhc3NpZ25DdXN0b21lcnNUb1JvbGUoY3VzdG9tZXJzOiBhbnlbXSkge1xyXG5cdFx0dGhpcy5zbmFja2Jhci5pbmZvKCdHdWFyZGFuZG8uLi4nKVxyXG5cdFx0dGhpcy5zZWN1cml0eUFkbWluU2VydmljZS5hc3NpZ25Sb2xlQ3VzdG9tZXJzKHRoaXMuc2VsZWN0ZWRJdGVtLmlkLCBjdXN0b21lcnMpLnN1YnNjcmliZSh7XHJcblx0XHRcdG5leHQ6IChyZXNwb25zZTogYW55KSA9PiB7XHJcblx0XHRcdFx0aWYgKHJlc3BvbnNlLnJlc3BvbnNlQ29kZSA9PT0gMjAwKSB7XHJcblx0XHRcdFx0XHR0aGlzLnNuYWNrYmFyLnN1Y2Nlc3MoJ0VtcHJlc2FzIGFzaWduYWRhcycpO1xyXG5cdFx0XHRcdFx0dGhpcy5yZWxvYWRTdWJqZWN0Py5uZXh0KHRydWUpO1xyXG5cdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHR0aGlzLnNuYWNrYmFyLndhcm5pbmcoJ09jdXJyacOzIHVuIGVycm9yIGFsIGFzaWduYXIgZW1wcmVzYXMuJyk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRlcnJvcjogKCkgPT4gdGhpcy5zbmFja2Jhci53YXJuaW5nKCdPY3VycmnDsyB1biBlcnJvciBhbCBhc2lnbmFyIGVtcHJlc2FzLicpXHJcblx0XHR9KTtcclxuXHR9XHJcblx0Z2V0IG1haW5UYWJUaXRsZSgpIHsgcmV0dXJuIGBFZGl0ICR7dGhpcy5saXN0VGl0bGV9YCB9XHJcblxyXG5cclxufVxyXG5cclxuZnVuY3Rpb24gcGFyc2VUeXBlKHZhbHVlOiBhbnksIHR5cGU/OiBzdHJpbmcpIHtcclxuXHRzd2l0Y2ggKHR5cGUpIHtcclxuXHRcdGNhc2UgJ2NoZWNrYm94JzpcclxuXHRcdFx0cmV0dXJuIFN0cmluZyh2YWx1ZSkudG9Mb3dlckNhc2UoKSA9PT0gXCJ0cnVlXCI7XHJcblx0XHRcdGJyZWFrO1xyXG5cdFx0ZGVmYXVsdDpcclxuXHRcdFx0cmV0dXJuIHZhbHVlXHJcblx0fVxyXG59XHJcbiIsIjxsaWItaXRlbXMtdmlld2VyIFtsaXN0RW5kcG9pbnRdPVwiZW50aXR5TGlzdEVuZHBvaW50XCIgW2l0ZW1zRW5kcG9pbnRdPVwiZW50aXR5SXRlbXNFbmRwb2ludFwiIFtsaXN0UmVxdWVzdE1hcHBpbmddPVwiZW50aXR5TGlzdFJlcXVlc3RNYXBwaW5nXCJcclxuXHQoc2VsZWN0SXRlbSk9XCJzZWxlY3RJdGVtKCRldmVudClcIiBbc2hvd09yZGVyQnV0dG9uc109XCJ0cnVlXCIgW3Nob3dDcmVhdGVCdXR0b25dPVwiIWRpc2FibGVDcmVhdGlvblwiXHJcblx0W3VpQ29tcG9uZW50SW5wdXRzXT1cInVpQ29tcG9uZW50SW5wdXRzXCIgW2VudGl0eVVpQ29tcG9uZW50XT1cImVudGl0eVVpQ29tcG9uZW50XCIgW2l0ZW1zXT1cImVudGl0eUxpc3RcIlxyXG5cdFt0aXRsZV09XCJsaXN0VGl0bGVcIiBbaWNvbl09XCJsaXN0SWNvblwiIFt0aGVtZV09XCJ0aGVtZVwiIFtpdGVtSWNvbl09XCJsaXN0SXRlbUljb25cIiBbcmVsb2FkU3ViamVjdF09XCJyZWxvYWRTdWJqZWN0XCJcclxuXHQoYWRkQ2xpY2spPVwicmVzZXRGb3JtKCRldmVudClcIiBbc2VsZWN0ZWRJdGVtXT1cInNlbGVjdGVkSXRlbVwiIFtzZWFyY2hGaWx0ZXJdPVwic2VhcmNoRmlsdGVyXCJcclxuXHRbb3JkZXJQcm9wZXJ0aWVzXT1cIm1haW5MaXN0T3JkZXJQcm9wZXJ0aWVzXCIgW3BhZ2VTaXplXT1cIjUwXCI+XHJcbjwvbGliLWl0ZW1zLXZpZXdlcj5cclxuPGRpdiBbYXR0ci5kYXRhLXRoZW1lXT1cInRoZW1lXCIgY2xhc3M9XCJ0YWJzLWNvbnRhaW5lclwiPlxyXG5cdDxtYXQtdGFiLWdyb3VwPlxyXG5cdFx0PG1hdC10YWIgW2xhYmVsXT1cIm1haW5UYWJUaXRsZSB8IHRyYW5zbGF0ZVwiPlxyXG5cdFx0XHQ8ZGl2IGNsYXNzPVwidGFiLWNvbnRlbnRcIj5cclxuXHRcdFx0XHQ8bmctY29udGFpbmVyICpuZ0lmPVwiZGlzYWJsZUZvcm1cIj5cclxuXHRcdFx0XHRcdDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJwbGFjZWhvbGRlcjsgY29udGV4dDp7JGltcGxpY2l0OiAnU2VsZWN0IGEgY3VzdG9tZXIgdG8gZWRpdCd9XCI+XHJcblxyXG5cdFx0XHRcdFx0PC9uZy1jb250YWluZXI+XHJcblx0XHRcdFx0PC9uZy1jb250YWluZXI+XHJcblx0XHRcdFx0PGxpYi1mb3JtICpuZ0lmPVwiIWRpc2FibGVGb3JtXCIgW2Zvcm1dPVwiZW50aXR5Rm9ybVwiIFtmb3JtQ29udHJvbHNdPVwiZm9ybUNvbnRyb2xzXCJcclxuXHRcdFx0XHRcdFtmb3JtQWN0aW9uc109XCJlbnRpdHlBY3Rpb25zXCIgW3RoZW1lXT1cInRoZW1lXCIgW3RpdGxlXT1cImZvcm1UaXRsZVwiIChzYXZlQ2xpY2spPVwic2F2ZUl0ZW0oKVwiIGljb249XCJtZW51LWVkaXRcIlxyXG5cdFx0XHRcdFx0W2VudGl0eU9iamVjdF09XCJzZWxlY3RlZEl0ZW1cIj48L2xpYi1mb3JtPlxyXG5cdFx0XHQ8L2Rpdj5cclxuXHRcdDwvbWF0LXRhYj5cclxuXHRcdDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImVudGl0eVwiPlxyXG5cdFx0XHQ8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInVXNlcidcIj5cclxuXHRcdFx0XHQ8bWF0LXRhYiBbbGFiZWxdPVwiJ0N1c3RvbWVycycgfCB0cmFuc2xhdGVcIj5cclxuXHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJ0YWItY29udGVudFwiPlxyXG5cdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiY29udGVudCBwYWRkaW5nLWNvbnRhaW5lclwiPlxyXG5cdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJjb250YWluZXJcIj5cclxuXHRcdFx0XHRcdFx0XHRcdDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNJdGVtU2VsZWN0ZWRcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PG5nLWNvbnRhaW5lclxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdCpuZ1RlbXBsYXRlT3V0bGV0PVwicGxhY2Vob2xkZXI7IGNvbnRleHQ6eyRpbXBsaWNpdDogJ1NlbGVjdCBhIHVzZXIgdG8gYXNzaWduIGN1c3RvbWVycyd9XCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDwvbmctY29udGFpbmVyPlxyXG5cdFx0XHRcdFx0XHRcdFx0PC9uZy1jb250YWluZXI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8bGliLW5lc3RlZC1pdGVtcy1zZWxlY3RvciBbaGlkZGVuXT1cIiFpc0l0ZW1TZWxlY3RlZFwiIFtzZWxlY3Rpb25FbmRwb2ludF09XCJ1c2VyQ3VzdG9tZXJzRW5kcG9pbnRcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRbc2Vjb25kU2VsZWN0aW9uRW5kcG9pbnRdPVwidXNlckFnZW5jaWVzRW5kcG9pbnRcIiBbcmVsb2FkU2VsZWN0aW9uU3ViamVjdF09XCJ1c2VyU3ViamVjdFwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdFtsaXN0RW5kcG9pbnRdPVwiY3VzdG9tZXJMaXN0RW5kcG9pbnRcIiBbbGlzdFRpdGxlXT1cIidBdmFpbGFibGUgQ3VzdG9tZXJzJyB8IHRyYW5zbGF0ZVwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdFtzZWNvbmRMaXN0RW5kcG9pbnRdPVwiYWdlbmN5TGlzdEVuZHBvaW50XCIgW3NlY29uZExpc3RUaXRsZV09XCInQXZhaWxhYmxlIEFnZW5jaWVzJyB8IHRyYW5zbGF0ZVwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdFt0aGVtZV09XCJ0aGVtZVwiIFtzZWxlY3Rpb25UaXRsZV09XCInRW1wcmVzYXMgeSBhZ2VuY2lhcydcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQoc2F2ZUNsaWNrKT1cImFzc2lnbkN1c3RvbWVyc0FuZEFnZW5jaWVzKCRldmVudClcIj5cclxuXHRcdFx0XHRcdFx0XHRcdDwvbGliLW5lc3RlZC1pdGVtcy1zZWxlY3Rvcj5cclxuXHRcdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHQ8L2Rpdj5cclxuXHJcblx0XHRcdFx0PC9tYXQtdGFiPlxyXG5cdFx0XHRcdDxtYXQtdGFiIFtsYWJlbF09XCInUm9sZXMnIHwgdHJhbnNsYXRlXCI+XHJcblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwidGFiLWNvbnRlbnRcIj5cclxuXHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImNvbnRlbnQgcGFkZGluZy1jb250YWluZXJcIj5cclxuXHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8bGliLWl0ZW1zLXZpZXdlciBbc2hvd1BhZ2luYXRvcl09XCJmYWxzZVwiIFtleHRlcm5hbExvYWRpbmddPVwibG9hZGluZ1VzZXJSb2xlc1wiXHJcblx0XHRcdFx0XHRcdFx0XHRcdFtlbnRpdHlVaUNvbXBvbmVudF09XCJyb2xlQ2FyZFwiIFtpdGVtc109XCJ1c2VyQXNzaWduZWRSb2xlc1wiIFt0aGVtZV09XCJ0aGVtZVwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdFt0aXRsZV09XCInQXNzaWduZWQgUm9sZXMgKFVzZXIpJyB8IHRyYW5zbGF0ZVwiIFtzaG93UGFnaW5hdG9yXT1cImZhbHNlXCI+PC9saWItaXRlbXMtdmlld2VyPlxyXG5cdFx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJjb250YWluZXJcIj5cclxuXHRcdFx0XHRcdFx0XHRcdDxsaWItaXRlbXMtdmlld2VyIFtzaG93UGFnaW5hdG9yXT1cImZhbHNlXCIgW2V4dGVybmFsTG9hZGluZ109XCJsb2FkaW5nVXNlckN1c3RvbWVyUm9sZXNcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRbZW50aXR5VWlDb21wb25lbnRdPVwicm9sZUNhcmRcIiBbaXRlbXNdPVwidXNlckN1c3RvbWVyQXNzaWduZWRSb2xlc1wiIFt0aGVtZV09XCJ0aGVtZVwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdFt0aXRsZV09XCInQXNzaWduZWQgUm9sZXMgKEN1c3RvbWVyKScgfCB0cmFuc2xhdGVcIiBbc2hvd1BhZ2luYXRvcl09XCJmYWxzZVwiPjwvbGliLWl0ZW1zLXZpZXdlcj5cclxuXHRcdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHQ8L21hdC10YWI+XHJcblx0XHRcdDwvbmctY29udGFpbmVyPlxyXG5cdFx0XHQ8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInQ3VzdG9tZXInXCI+XHJcblx0XHRcdFx0PG1hdC10YWIgW2xhYmVsXT1cIidVc2VycycgfCB0cmFuc2xhdGVcIj5cclxuXHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJ0YWItY29udGVudFwiPlxyXG5cdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiY29udGVudCBwYWRkaW5nLWNvbnRhaW5lclwiPlxyXG5cdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJjb250YWluZXJcIj5cclxuXHRcdFx0XHRcdFx0XHRcdDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNJdGVtU2VsZWN0ZWRcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PG5nLWNvbnRhaW5lclxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdCpuZ1RlbXBsYXRlT3V0bGV0PVwicGxhY2Vob2xkZXI7IGNvbnRleHQ6eyRpbXBsaWNpdDogJ1NlbGVjdCBhIGN1c3RvbWVyIHRvIGFzc2lnbiB1c2Vycyd9XCI+XHJcblxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8L25nLWNvbnRhaW5lcj5cclxuXHJcblx0XHRcdFx0XHRcdFx0XHQ8L25nLWNvbnRhaW5lcj5cclxuXHRcdFx0XHRcdFx0XHRcdDxsaWItaXRlbXMtc2VsZWN0b3IgW2hpZGRlbl09XCIhaXNJdGVtU2VsZWN0ZWRcIiBbc2VsZWN0aW9uRW5kcG9pbnRdPVwiY3VzdG9tZXJVc2Vyc0VuZHBvaW50XCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0W2xpc3RFbmRwb2ludF09XCJ1c2VyTGlzdEVuZHBvaW50XCIgW2l0ZW1zXT1cInVzZXJMaXN0XCIgW3JlbG9hZFNlbGVjdGlvblN1YmplY3RdPVwiY3VzdG9tZXJTdWJqZWN0XCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0W2xpc3RUaXRsZV09XCInQXZhaWxhYmxlIFVzZXJzJyB8IHRyYW5zbGF0ZVwiIFt0aGVtZV09XCJ0aGVtZVwiIFtpdGVtTGFiZWxNYXBdPVwidXNlckxhYmVsXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0W3NlbGVjdGlvblRpdGxlXT1cIidTZWxlY3RlZCBVc2VycycgfCB0cmFuc2xhdGVcIiAoc2F2ZUNsaWNrKT1cImFzc2lnblVzZXJzVG9DdXN0b21lcigkZXZlbnQpXCI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8L2xpYi1pdGVtcy1zZWxlY3Rvcj5cclxuXHRcdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHQ8L21hdC10YWI+XHJcblx0XHRcdFx0PG1hdC10YWIgW2xhYmVsXT1cIidSb2xlcycgfCB0cmFuc2xhdGVcIj5cclxuXHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJ0YWItY29udGVudFwiPlxyXG5cdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiY29udGVudCBwYWRkaW5nLWNvbnRhaW5lclwiPlxyXG5cdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJjb250YWluZXJcIj5cclxuXHRcdFx0XHRcdFx0XHRcdDxsaWItaXRlbXMtdmlld2VyIFtsaXN0RW5kcG9pbnRdPVwiY3VzdG9tZXJSb2xlc0VuZHBvaW50XCIgW2VudGl0eVVpQ29tcG9uZW50XT1cInJvbGVDYXJkXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0W2l0ZW1zXT1cInJvbGVMaXN0XCIgW3RoZW1lXT1cInRoZW1lXCIgW3RpdGxlXT1cIidBc3NpZ25lZCBSb2xlcycgfCB0cmFuc2xhdGVcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRbc2hvd1BhZ2luYXRvcl09XCJmYWxzZVwiPjwvbGliLWl0ZW1zLXZpZXdlcj5cclxuXHRcdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHQ8L21hdC10YWI+XHJcblx0XHRcdDwvbmctY29udGFpbmVyPlxyXG5cdFx0XHQ8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInUm9sZSdcIj5cclxuXHRcdFx0XHQ8bWF0LXRhYiBbbGFiZWxdPVwiJ1VzZXJzJyB8IHRyYW5zbGF0ZVwiPlxyXG5cdFx0XHRcdFx0PGRpdiBjbGFzcz1cInRhYi1jb250ZW50XCI+XHJcblx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJjb250ZW50IHBhZGRpbmctY29udGFpbmVyXCI+XHJcblx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0PG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc0l0ZW1TZWxlY3RlZFwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicGxhY2Vob2xkZXI7IGNvbnRleHQ6eyRpbXBsaWNpdDogJ1NlbGVjdCBhIHJvbGUgdG8gYXNzaWduIHVzZXJzJ31cIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PC9uZy1jb250YWluZXI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8L25nLWNvbnRhaW5lcj5cclxuXHRcdFx0XHRcdFx0XHRcdDxsaWItaXRlbXMtc2VsZWN0b3IgW2hpZGRlbl09XCIhaXNJdGVtU2VsZWN0ZWRcIiBbcmVsb2FkU2VsZWN0aW9uU3ViamVjdF09XCJyb2xlU3ViamVjdFwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdFtsaXN0RW5kcG9pbnRdPVwidXNlckxpc3RFbmRwb2ludFwiIFtzZWxlY3Rpb25FbmRwb2ludF09XCJyb2xlVXNlcnNFbmRwb2ludFwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdFtsaXN0VGl0bGVdPVwiJ0F2YWlsYWJsZSBVc2VycycgfCB0cmFuc2xhdGVcIiBbdGhlbWVdPVwidGhlbWVcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRbaXRlbUxhYmVsTWFwXT1cInVzZXJMYWJlbFwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdFtzZWxlY3Rpb25UaXRsZV09XCInU2VsZWN0ZWQgVXNlcnMnIHwgdHJhbnNsYXRlXCIgKHNhdmVDbGljayk9XCJhc3NpZ25Vc2Vyc1RvUm9sZSgkZXZlbnQpXCI+XHJcblxyXG5cdFx0XHRcdFx0XHRcdFx0PC9saWItaXRlbXMtc2VsZWN0b3I+XHJcblx0XHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0PC9tYXQtdGFiPlxyXG5cdFx0XHRcdDxtYXQtdGFiIFtsYWJlbF09XCInQ3VzdG9tZXJzJyB8IHRyYW5zbGF0ZVwiPlxyXG5cdFx0XHRcdFx0PGRpdiBjbGFzcz1cInRhYi1jb250ZW50XCI+XHJcblx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJjb250ZW50IHBhZGRpbmctY29udGFpbmVyXCI+XHJcblx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0PG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc0l0ZW1TZWxlY3RlZFwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8bmctY29udGFpbmVyXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0Km5nVGVtcGxhdGVPdXRsZXQ9XCJwbGFjZWhvbGRlcjsgY29udGV4dDp7JGltcGxpY2l0OiAnU2VsZWN0IGEgcm9sZSB0byBhc3NpZ24gY3VzdG9tZXJzJ31cIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PC9uZy1jb250YWluZXI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8L25nLWNvbnRhaW5lcj5cclxuXHRcdFx0XHRcdFx0XHRcdDxsaWItaXRlbXMtc2VsZWN0b3IgW2hpZGRlbl09XCIhaXNJdGVtU2VsZWN0ZWRcIiBbcmVsb2FkU2VsZWN0aW9uU3ViamVjdF09XCJyb2xlU3ViamVjdFwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdFtsaXN0RW5kcG9pbnRdPVwiY3VzdG9tZXJMaXN0RW5kcG9pbnRcIiBbc2VsZWN0aW9uRW5kcG9pbnRdPVwicm9sZUN1c3RvbWVyc0VuZHBvaW50XCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0W2xpc3RUaXRsZV09XCInQXZhaWxhYmxlIEN1c3RvbWVycycgfCB0cmFuc2xhdGVcIiBbdGhlbWVdPVwidGhlbWVcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRbc2VsZWN0aW9uVGl0bGVdPVwiJ1NlbGVjdGVkIEN1c3RvbWVycycgfCB0cmFuc2xhdGVcIiAoc2F2ZUNsaWNrKT1cImFzc2lnbkN1c3RvbWVyc1RvUm9sZSgkZXZlbnQpXCI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8L2xpYi1pdGVtcy1zZWxlY3Rvcj5cclxuXHRcdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHQ8L21hdC10YWI+XHJcblx0XHRcdDwvbmctY29udGFpbmVyPlxyXG5cclxuXHRcdDwvbmctY29udGFpbmVyPlxyXG5cdDwvbWF0LXRhYi1ncm91cD5cclxuXHJcbjwvZGl2PlxyXG5cclxuPG5nLXRlbXBsYXRlICNwbGFjZWhvbGRlciBsZXQtbXNnPlxyXG5cdDxkaXYgY2xhc3M9XCJwbGFjZWhvbGRlclwiPlxyXG5cdFx0PGkgY2xhc3M9XCJtZW51LWluZm9cIj48L2k+XHJcblx0XHQ8c3Bhbj57e21zZyB8IHRyYW5zbGF0ZX19PC9zcGFuPlxyXG5cdDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPiJdfQ==
392
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LWFkbWluLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FzcC1saWIvc3JjL2xpYi9lbnRpdHktYWRtaW4vZW50aXR5LWFkbWluLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FzcC1saWIvc3JjL2xpYi9lbnRpdHktYWRtaW4vZW50aXR5LWFkbWluLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQTRCLEtBQUssRUFBbUMsTUFBTSxlQUFlLENBQUM7QUFDNUcsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBR3JFLE9BQU8sRUFBYyxFQUFFLEVBQVcsTUFBTSxNQUFNLENBQUM7QUFHL0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7OztBQUV2RCxNQUFNLFNBQVMsR0FBRyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFFBQVEsRUFBRSxvQkFBb0IsRUFBRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsQ0FBQztBQUNwSSxNQUFNLGFBQWEsR0FBRyxFQUFFLFFBQVEsRUFBRSxlQUFlLEVBQUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFFBQVEsRUFBRSxvQkFBb0IsRUFBRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsQ0FBQztBQUNsSixNQUFNLFFBQVEsR0FBRyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsQ0FBQTtBQVNsSSxN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SztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLHdCQUF3QjtzQkFBaEMsS0FBSztnQkFDRyx1QkFBdUI7c0JBQS9CLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSzs7QUErU1AsU0FBUyxTQUFTLENBQUMsS0FBVSxFQUFFLElBQWE7SUFDM0MsUUFBUSxJQUFJLEVBQUU7UUFDYixLQUFLLFVBQVU7WUFDZCxPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxXQUFXLEVBQUUsS0FBSyxNQUFNLENBQUM7WUFDOUMsTUFBTTtRQUNQO1lBQ0MsT0FBTyxLQUFLLENBQUE7S0FDYjtBQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBUeXBlLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFJvbGVDYXJkQ29tcG9uZW50IH0gZnJvbSAnLi4vcm9sZS1jYXJkL3JvbGUtY2FyZC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDZGtEcmFnRHJvcCwgQ2RrRHJvcExpc3QgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcclxuaW1wb3J0IHsgU2VjdXJpdHlBZG1pblNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9zZWN1cml0eS1hZG1pbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgU25hY2tiYXJTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvc25hY2tiYXIuc2VydmljZSc7XHJcbmltcG9ydCB7IEZvcm1GaWVsZCwgU2VjdXJpdHlFbmRwb2ludCB9IGZyb20gJy4uL2ludGVyZmFjZXMvaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVBpcGUgfSBmcm9tICcuLi9waXBlcy90cmFuc2xhdGUucGlwZSc7XHJcbmltcG9ydCB7IHJlbW92ZUFycmF5RHVwbGljYXRlcyB9IGZyb20gJy4uL3V0aWxzL3V0aWxzJztcclxuXHJcbmNvbnN0IG5hbWVPcmRlciA9IHsgcHJvcGVydHk6ICduYW1lJywgYXNjSWNvbjogJ21lbnUtYWxwaGFiZXQtYXNjJywgZGVzY0ljb246ICdtZW51LWFscGhhYmV0LWRlc2MnLCB0b29sdGlwOiAnT3JkZW5hciBwb3Igbm9tYnJlJyB9O1xyXG5jb25zdCBjdXN0b21lck9yZGVyID0geyBwcm9wZXJ0eTogJ2N1c3RvbWVyLm5hbWUnLCBhc2NJY29uOiAnbWVudS1jdXN0b21lci1hc2MnLCBkZXNjSWNvbjogJ21lbnUtY3VzdG9tZXItZGVzYycsIHRvb2x0aXA6ICdPcmRlbmFyIHBvciBlbXByZXNhJyB9O1xyXG5jb25zdCBsYXN0bmFtZSA9IHsgcHJvcGVydHk6ICdsYXN0bmFtZScsIGFzY0ljb246ICdtZW51LXVzZXItcmlnaHQnLCBkZXNjSWNvbjogJ21lbnUtdXNlci1sZWZ0JywgdG9vbHRpcDogJ09yZGVuYXIgcG9yIGFwZWxsaWRvJyB9XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcblx0c2VsZWN0b3I6ICdsaWItdXNlcnMtYWRtaW4nLFxyXG5cdHRlbXBsYXRlVXJsOiAnLi9lbnRpdHktYWRtaW4uY29tcG9uZW50Lmh0bWwnLFxyXG5cdHN0eWxlVXJsczogWycuLi9hc3NldHMvZm9udHMvc3R5bGUuY3NzJywgJy4uL2Fzc2V0cy90aGVtZS5zY3NzJywgJy4vZW50aXR5LWFkbWluLmNvbXBvbmVudC5zY3NzJ10sXHJcblx0cHJvdmlkZXJzOiBbVHJhbnNsYXRlUGlwZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIEVudGl0eUFkbWluQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHRASW5wdXQoKSB0aGVtZTogc3RyaW5nID0gJ2RlZmF1bHQnO1xyXG5cdEBJbnB1dCgpIGxpc3RUaXRsZTogc3RyaW5nID0gJyc7XHJcblx0QElucHV0KCkgbGlzdEljb246IHN0cmluZyA9ICcnO1xyXG5cdEBJbnB1dCgpIGxpc3RJdGVtSWNvbjogc3RyaW5nID0gJyc7XHJcblx0QElucHV0KCkgZW50aXR5OiBcIlVzZXJcIiB8IFwiQ3VzdG9tZXJcIiB8IFwiUm9sZVwiID0gXCJVc2VyXCI7XHJcblx0QElucHV0KCkgZW50aXR5TmFtZTogc3RyaW5nID0gJyc7XHJcblx0QElucHV0KCkgZW50aXR5QWN0aW9uczogYW55W10gPSBbXTtcclxuXHRASW5wdXQoKSBlbnRpdHlGb3JtOiBGb3JtRmllbGRbXSA9IFtdO1xyXG5cdEBJbnB1dCgpIGVudGl0eUxpc3RFbmRwb2ludDogc3RyaW5nID0gJyc7XHJcblx0QElucHV0KCkgZW50aXR5SXRlbXNFbmRwb2ludDogU2VjdXJpdHlFbmRwb2ludCA9IHsgdXJsOiAnJ307XHJcblx0QElucHV0KCkgZW50aXR5TGlzdDogYW55W10gPSBbXTtcclxuXHRASW5wdXQoKSBlbnRpdHlVaUNvbXBvbmVudDogVHlwZTxhbnk+IHwgbnVsbCA9IG51bGw7XHJcblx0QElucHV0KCkgdWlDb21wb25lbnRJbnB1dHM6IHsgW2tleTogc3RyaW5nXTogYW55IH0gPSB7fTtcclxuXHRASW5wdXQoKSBzZWFyY2hGaWx0ZXI/OiBGdW5jdGlvbjtcclxuXHRASW5wdXQoKSBjdXN0b21lckxpc3Q6IGFueVtdID0gW107XHJcblx0QElucHV0KCkgcm9sZUxpc3Q6IGFueVtdID0gW107XHJcblx0QElucHV0KCkgdXNlckxpc3Q6IGFueVtdID0gW107XHJcblx0QElucHV0KCkgY3VzdG9tZXJMaXN0RW5kcG9pbnQ6IFNlY3VyaXR5RW5kcG9pbnQgPSB7IHVybDogJycgfTtcclxuXHRASW5wdXQoKSBhZ2VuY3lMaXN0RW5kcG9pbnQ6IFNlY3VyaXR5RW5kcG9pbnQgPSB7IHVybDogJycgfTtcclxuXHRASW5wdXQoKSByb2xlTGlzdEVuZHBvaW50OiBTZWN1cml0eUVuZHBvaW50ID0geyB1cmw6ICcnIH07XHJcblx0QElucHV0KCkgdXNlckxpc3RFbmRwb2ludDogU2VjdXJpdHlFbmRwb2ludCA9IHsgdXJsOiAnJyB9O1xyXG5cdEBJbnB1dCgpIHNhdmVFbnRpdHlFbmRwb2ludDogc3RyaW5nID0gJyc7XHJcblx0QElucHV0KCkgZW50aXR5TGlzdFJlcXVlc3RNYXBwaW5nOiBGdW5jdGlvbiA9IChyZXNwb25zZTogYW55KSA9PiBvZihyZXNwb25zZSk7XHJcblx0QElucHV0KCkgdXNlcnNCeUN1c3RvbWVyRW5kcG9pbnQ6IHN0cmluZyA9ICcnO1xyXG5cdEBJbnB1dCgpIHJlbG9hZFN1YmplY3Q/OiBTdWJqZWN0PGJvb2xlYW4+O1xyXG5cdEBJbnB1dCgpIGl0ZW1TZWxlY3RlZDogRnVuY3Rpb24gPSAoKSA9PiB7IH07XHJcblx0QElucHV0KCkgcmVzZXRJdGVtU2VsZWN0ZWQ/OiBTdWJqZWN0PGJvb2xlYW4+O1xyXG5cdHJvbGVDYXJkID0gUm9sZUNhcmRDb21wb25lbnQ7XHJcblx0Zm9ybUNvbnRyb2xzOiB7IFtrZXk6IHN0cmluZ106IEZvcm1Db250cm9sIH0gPSB7fTtcclxuXHRzZWxlY3RlZEl0ZW06IGFueSA9IHsgaWQ6IG51bGwgfTtcclxuXHRzZWxlY3RlZFVzZXI6IGFueTtcclxuXHRsb2FkaW5nVXNlclJvbGVzOiBib29sZWFuID0gZmFsc2U7XHJcblx0bG9hZGluZ1VzZXJDdXN0b21lclJvbGVzOiBib29sZWFuID0gZmFsc2U7XHJcblx0Z2V0IHVzZXJTdWJqZWN0KCkgeyByZXR1cm4gdGhpcy5zZWN1cml0eUFkbWluU2VydmljZS5zZWxlY3RlZFVzZXJTdWJqZWN0IH1cclxuXHRnZXQgY3VzdG9tZXJTdWJqZWN0KCkgeyByZXR1cm4gdGhpcy5zZWN1cml0eUFkbWluU2VydmljZS5zZWxlY3RlZEN1c3RvbWVyU3ViamVjdCB9XHJcblx0Z2V0IHJvbGVTdWJqZWN0KCkgeyByZXR1cm4gdGhpcy5zZWN1cml0eUFkbWluU2VydmljZS5zZWxlY3RlZFJvbGVTdWJqZWN0IH1cclxuXHRnZXQgZGlzYWJsZUNyZWF0aW9uKCkgeyByZXR1cm4gdGhpcy5zZWN1cml0eUFkbWluU2VydmljZS5ibG9ja0NyZWF0aW9uRm9yLmhhcyh0aGlzLmVudGl0eSkgfVxyXG5cdGdldCBkaXNhYmxlRm9ybSgpIHsgcmV0dXJuICF0aGlzLmlzSXRlbVNlbGVjdGVkICYmIHRoaXMuZGlzYWJsZUNyZWF0aW9uIH1cclxuXHJcblx0Z2V0IHVzZXJBc3NpZ25lZFJvbGVzKCkgeyByZXR1cm4gdGhpcy5zZWxlY3RlZFVzZXI/LnJvbGVzID8/IFtdIH1cclxuXHRnZXQgdXNlckN1c3RvbWVyQXNzaWduZWRSb2xlcygpIHsgcmV0dXJuIHRoaXMuc2VsZWN0ZWRVc2VyPy5jdXN0b21lclJvbGVzID8/IFtdIH1cclxuXHRnZXQgbWFpbkxpc3RPcmRlclByb3BlcnRpZXMoKSB7XHJcblx0XHRzd2l0Y2ggKHRoaXMuZW50aXR5KSB7XHJcblx0XHRcdGNhc2UgJ1VzZXInOlxyXG5cdFx0XHRcdHJldHVybiBbbmFtZU9yZGVyLCBsYXN0bmFtZV07XHJcblx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdGRlZmF1bHQ6XHJcblx0XHRcdFx0cmV0dXJuIFtuYW1lT3JkZXJdO1xyXG5cdFx0XHRcdGJyZWFrO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0Y29uc3RydWN0b3IocHJpdmF0ZSBzZWN1cml0eUFkbWluU2VydmljZTogU2VjdXJpdHlBZG1pblNlcnZpY2UsIHByaXZhdGUgc25hY2tiYXI6IFNuYWNrYmFyU2VydmljZSwgcHJpdmF0ZSB0cmFuc2xhdGVQaXBlOiBUcmFuc2xhdGVQaXBlKSB7XHJcblxyXG5cdH1cclxuXHJcblx0Z2V0IGZvcm1UaXRsZSgpIHsgcmV0dXJuIGAke3RoaXMudHJhbnNsYXRlUGlwZS50cmFuc2Zvcm0odGhpcy5zZWxlY3RlZEl0ZW0uaWQgPyBcIkVkaXRcIiA6IFwiQ3JlYXRlXCIpfSAke3RoaXMudHJhbnNsYXRlUGlwZS50cmFuc2Zvcm0odGhpcy5lbnRpdHlOYW1lKX1gIH1cclxuXHJcblxyXG5cdGFnZW5jeUVuZHBvaW50UGFyYW1zOiBGdW5jdGlvbiA9IChjdXN0b21lcjogYW55KSA9PiBgY3VzdG9tZXJJZD0ke2N1c3RvbWVyLmlkfWBcclxuXHJcblx0Z2V0IGlzSXRlbVNlbGVjdGVkKCkge1xyXG5cdFx0cmV0dXJuIHR5cGVvZiAodGhpcy5zZWxlY3RlZEl0ZW0/LmlkKSA9PT0gJ251bWJlcic7XHJcblx0fVxyXG5cclxuXHRuZ09uSW5pdCgpIHtcclxuXHRcdHRoaXMuZm9ybUNvbnRyb2xzID0gdGhpcy5lbnRpdHlGb3JtLnJlZHVjZSgob2JqZWN0LCBmaWVsZCkgPT4gKHsgLi4ub2JqZWN0LCBbZmllbGQubmFtZV06IG5ldyBGb3JtQ29udHJvbDxhbnk+KGZpZWxkLmRlZmF1bHRWYWx1ZSA/PyBudWxsKSB9KSwge30pXHJcblx0XHR0aGlzLnNlY3VyaXR5QWRtaW5TZXJ2aWNlLnN1YmplY3RzW3RoaXMuZW50aXR5XS5zdWJzY3JpYmUoe1xyXG5cdFx0XHRuZXh0OiAoaXRlbSkgPT4ge1xyXG5cdFx0XHRcdHRoaXMuc2VsZWN0ZWRJdGVtID0gaXRlbTtcclxuXHRcdFx0XHRPYmplY3QuZW50cmllcyh0aGlzLmZvcm1Db250cm9scykuZm9yRWFjaCgoW25hbWUsIGNvbnRyb2xdKSA9PiB7XHJcblx0XHRcdFx0XHRsZXQgZmllbGQgPSB0aGlzLmVudGl0eUZvcm0uZmluZCh4ID0+IHgubmFtZSA9PT0gbmFtZSk7XHJcblx0XHRcdFx0XHRjb250cm9sLnBhdGNoVmFsdWUocGFyc2VUeXBlKGl0ZW1bbmFtZV0sIGZpZWxkPy50eXBlKSk7XHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cdFx0dGhpcy5zZWN1cml0eUFkbWluU2VydmljZS5zZWxlY3RlZFVzZXJTdWJqZWN0LnN1YnNjcmliZSh7XHJcblx0XHRcdG5leHQ6ICh1c2VyKSA9PiB7XHJcblx0XHRcdFx0dGhpcy5zZWxlY3RlZFVzZXIgPSB1c2VyO1xyXG5cdFx0XHRcdGlmICh1c2VyLmlkICE9PSBudWxsKSB7XHJcblx0XHRcdFx0XHR0aGlzLmxvYWRpbmdVc2VyUm9sZXMgPSB0cnVlO1xyXG5cdFx0XHRcdFx0dGhpcy5zZWN1cml0eUFkbWluU2VydmljZS5nZXRBc3NpZ25lZFJvbGVzKHVzZXIuaWQsIFwiVXNlclwiKS5zdWJzY3JpYmUoe1xyXG5cdFx0XHRcdFx0XHRuZXh0OiAocmVzcG9uc2U6IGFueSkgPT4ge1xyXG5cdFx0XHRcdFx0XHRcdGlmIChyZXNwb25zZS5yZXNwb25zZUNvZGUgPT09IDIwMCkge1xyXG5cdFx0XHRcdFx0XHRcdFx0dGhpcy5sb2FkaW5nVXNlckN1c3RvbWVyUm9sZXMgPSB0cnVlO1xyXG5cdFx0XHRcdFx0XHRcdFx0dGhpcy5zZWN1cml0eUFkbWluU2VydmljZS5nZXRVc2VyUm9sZXNCeUN1c3RvbWVycyh1c2VyKS5zdWJzY3JpYmUoe1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRuZXh0OiAoY3VzdG9tZXJSZXNwb25zZTogYW55KSA9PiB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0aWYgKGN1c3RvbWVyUmVzcG9uc2UucmVzcG9uc2VDb2RlID09PSAyMDApIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHRoaXMuc2VsZWN0ZWRVc2VyID0geyAuLi51c2VyLCByb2xlczogcmVzcG9uc2UubG9hZCwgY3VzdG9tZXJSb2xlczogcmVtb3ZlQXJyYXlEdXBsaWNhdGVzKGN1c3RvbWVyUmVzcG9uc2UubG9hZCkgfVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR0aGlzLnNlbGVjdGVkVXNlciA9IHsgLi4udXNlciwgcm9sZXM6IHJlc3BvbnNlLmxvYWQgfVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0dGhpcy5sb2FkaW5nVXNlclJvbGVzID0gZmFsc2U7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHRoaXMubG9hZGluZ1VzZXJDdXN0b21lclJvbGVzID0gZmFsc2U7XHJcblx0XHRcdFx0XHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHRcdFx0XHRcdGVycm9yOiAoKSA9PiB0aGlzLmxvYWRpbmdVc2VyQ3VzdG9tZXJSb2xlcyA9IGZhbHNlXHJcblx0XHRcdFx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdFx0XHRcdFx0Ly8gaWYgKHVzZXIuY3VzdG9tZXI/LmlkKSB7XHJcblx0XHRcdFx0XHRcdFx0XHQvLyBcdHRoaXMubG9hZGluZ1VzZXJDdXN0b21lclJvbGVzID0gdHJ1ZTtcclxuXHRcdFx0XHRcdFx0XHRcdC8vIFx0dGhpcy5zZWN1cml0eUFkbWluU2VydmljZS5nZXRBc3NpZ25lZFJvbGVzKHVzZXIuY3VzdG9tZXIuaWQsIFwiQ3VzdG9tZXJcIikuc3Vic2NyaWJlKHtcclxuXHRcdFx0XHRcdFx0XHRcdC8vIFx0XHRuZXh0OiAoY3VzdG9tZXJSZXNwb25zZTogYW55KSA9PiB7XHJcblx0XHRcdFx0XHRcdFx0XHQvLyBcdFx0XHRpZiAoY3VzdG9tZXJSZXNwb25zZS5yZXNwb25zZUNvZGUgPT09IDIwMCkge1xyXG5cdFx0XHRcdFx0XHRcdFx0Ly8gXHRcdFx0XHR0aGlzLnNlbGVjdGVkVXNlciA9IHsgLi4udXNlciwgcm9sZXM6IHJlc3BvbnNlLmxvYWQsIGN1c3RvbWVyUm9sZXM6IGN1c3RvbWVyUmVzcG9uc2UubG9hZCB9XHJcblx0XHRcdFx0XHRcdFx0XHQvLyBcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0XHQvLyBcdFx0XHR0aGlzLmxvYWRpbmdVc2VyQ3VzdG9tZXJSb2xlcyA9IGZhbHNlO1xyXG5cdFx0XHRcdFx0XHRcdFx0Ly8gXHRcdH0sXHJcblx0XHRcdFx0XHRcdFx0XHQvLyBcdFx0ZXJyb3I6IF8gPT4gdGhpcy5sb2FkaW5nVXNlckN1c3RvbWVyUm9sZXMgPSBmYWxzZVxyXG5cdFx0XHRcdFx0XHRcdFx0Ly8gXHR9KVxyXG5cdFx0XHRcdFx0XHRcdFx0Ly8gfSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0XHRcdC8vIFx0dGhpcy5zZWxlY3RlZFVzZXIgPSB7IC4uLnVzZXIsIHJvbGVzOiByZXNwb25zZS5sb2FkIH1cclxuXHRcdFx0XHRcdFx0XHRcdC8vIFx0dGhpcy5sb2FkaW5nVXNlclJvbGVzID0gZmFsc2U7XHJcblx0XHRcdFx0XHRcdFx0XHQvLyB9XHJcblx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0XHRcdHRoaXMuc2VsZWN0ZWRVc2VyID0geyAuLi51c2VyLCByb2xlczogcmVzcG9uc2UubG9hZCB9XHJcblx0XHRcdFx0XHRcdFx0XHR0aGlzLmxvYWRpbmdVc2VyUm9sZXMgPSBmYWxzZTtcclxuXHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0dGhpcy5sb2FkaW5nVXNlclJvbGVzID0gZmFsc2U7XHJcblx0XHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHRcdGVycm9yOiAoKSA9PiB0aGlzLmxvYWRpbmdVc2VyUm9sZXMgPSBmYWxzZVxyXG5cdFx0XHRcdFx0fSlcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cdFx0dGhpcy5yZXNldEl0ZW1TZWxlY3RlZD8uc3Vic2NyaWJlKHtcclxuXHRcdFx0bmV4dDogKCkgPT4ge1xyXG5cdFx0XHRcdHRoaXMucmVzZXRGb3JtKCk7XHJcblx0XHRcdH1cclxuXHRcdH0pXHJcblx0fVxyXG5cclxuXHRzZWxlY3RJdGVtKG5ld0l0ZW06IGFueSkge1xyXG5cdFx0c3dpdGNoICh0aGlzLmVudGl0eSkge1xyXG5cdFx0XHRjYXNlIFwiVXNlclwiOlxyXG5cdFx0XHRcdHRoaXMuc2VjdXJpdHlBZG1pblNlcnZpY2Uuc2VsZWN0VXNlcihuZXdJdGVtKTtcclxuXHRcdFx0XHRicmVhaztcclxuXHRcdFx0Y2FzZSBcIkN1c3RvbWVyXCI6XHJcblx0XHRcdFx0dGhpcy5zZWN1cml0eUFkbWluU2VydmljZS5zZWxlY3RDdXN0b21lcihuZXdJdGVtKTtcclxuXHRcdFx0XHRicmVhaztcclxuXHRcdFx0Y2FzZSBcIlJvbGVcIjpcclxuXHRcdFx0XHR0aGlzLnNlY3VyaXR5QWRtaW5TZXJ2aWNlLnNlbGVjdFJvbGUobmV3SXRlbSk7XHJcblx0XHRcdFx0YnJlYWs7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRzYXZlSXRlbSgpIHtcclxuXHRcdHRoaXMuc25hY2tiYXIuaW5mbyhcIkd1YXJkYW5kby4uLlwiLCAzMDAwKTtcclxuXHRcdGxldCBuZXdJbmZvID0gdGhpcy5lbnRpdHlGb3JtLnJlZHVjZSgoYWNjLCBmaWVsZCkgPT4gZmllbGQucmVxdWlyZXNOZXdWYWx1ZSA/XHJcblx0XHRcdChCb29sZWFuKHRoaXMuZm9ybUNvbnRyb2xzW2ZpZWxkLm5hbWVdLnZhbHVlKSA/IHsgLi4uYWNjLCBbZmllbGQubmFtZV06IHRoaXMuZm9ybUNvbnRyb2xzW2ZpZWxkLm5hbWVdLnZhbHVlIH0gOiB7IC4uLmFjYyB9KSA6XHJcblx0XHRcdCh7IC4uLmFjYywgW2ZpZWxkLm5hbWVdOiB0aGlzLmZvcm1Db250cm9sc1tmaWVsZC5uYW1lXS52YWx1ZSB9KSxcclxuXHRcdFx0e31cclxuXHRcdCk7XHJcblx0XHRjb25zb2xlLndhcm4oJ2VudGl0eUZvcm0nLCB0aGlzLmVudGl0eUZvcm0sIHRoaXMuZm9ybUNvbnRyb2xzLCBuZXdJbmZvKTtcclxuXHRcdHRoaXMuc2VsZWN0ZWRJdGVtID0gICB7IGlkOiB0aGlzLnNlbGVjdGVkSXRlbS5pZCwgLi4ubmV3SW5mbyB9O1xyXG5cdFx0dGhpcy5zZWN1cml0eUFkbWluU2VydmljZS5zYXZlSXRlbSh0aGlzLnNhdmVFbnRpdHlFbmRwb2ludCwgeyBpZDogdGhpcy5zZWxlY3RlZEl0ZW0uaWQsIC4uLm5ld0luZm8gfSkuc3Vic2NyaWJlKHtcclxuXHRcdFx0bmV4dDogKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuXHRcdFx0XHRpZiAocmVzcG9uc2UucmVzcG9uc2VDb2RlID09PSAyMDApIHtcclxuXHRcdFx0XHRcdGlmICh0aGlzLmVudGl0eSA9PT0gJ1JvbGUnKSB7XHJcblx0XHRcdFx0XHRcdGlmICh0aGlzLnNlbGVjdGVkSXRlbS5yZXNvdXJjZXMgIT0gbnVsbCkge1xyXG5cdFx0XHRcdFx0XHRcdHRoaXMuc2VjdXJpdHlBZG1pblNlcnZpY2UuYXNzaWduUmVzb3VyY2UodGhpcy5zZWxlY3RlZEl0ZW0uaWQsIHRoaXMuc2VsZWN0ZWRJdGVtLnJlc291cmNlcykuc3Vic2NyaWJlKHtcclxuXHRcdFx0XHRcdFx0XHRcdG5leHQ6IChhc3NpZ25SZXNwb25zZTogYW55KSA9PiB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdGlmIChhc3NpZ25SZXNwb25zZS5yZXBvbnNlQ29kZSA9PT0gMjAwKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHRcdFx0dGhpcy5zZWxlY3RJdGVtKHJlc3BvbnNlLmxvYWQpO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHR0aGlzLnNuYWNrYmFyLnN1Y2Nlc3MoYCR7dGhpcy50cmFuc2xhdGVQaXBlLnRyYW5zZm9ybSh0aGlzLmVudGl0eU5hbWUpfSAke3RoaXMuc2VsZWN0ZWRJdGVtLmlkID09PSBudWxsID8gJ0NyZWFkbycgOiAnR3VhcmRhZG8nfWApO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHR0aGlzLnJlbG9hZFN1YmplY3Q/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+XHJcblx0XHRcdFx0XHRcdFx0XHQ8bGliLWl0ZW1zLXNlbGVjdG9yIFtoaWRkZW5dPVwiIWlzSXRlbVNlbGVjdGVkXCIgW3NlbGVjdGlvbkVuZHBvaW50XT1cImN1c3RvbWVyVXNlcnNFbmRwb2ludFwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdFtsaXN0RW5kcG9pbnRdPVwidXNlckxpc3RFbmRwb2ludFwiIFtpdGVtc109XCJ1c2VyTGlzdFwiIFtyZWxvYWRTZWxlY3Rpb25TdWJqZWN0XT1cImN1c3RvbWVyU3ViamVjdFwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdFtsaXN0VGl0bGVdPVwiJ0F2YWlsYWJsZSBVc2VycycgfCB0cmFuc2xhdGVcIiBbdGhlbWVdPVwidGhlbWVcIiBbaXRlbUxhYmVsTWFwXT1cInVzZXJMYWJlbFwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdFtzZWxlY3Rpb25UaXRsZV09XCInU2VsZWN0ZWQgVXNlcnMnIHwgdHJhbnNsYXRlXCIgKHNhdmVDbGljayk9XCJhc3NpZ25Vc2Vyc1RvQ3VzdG9tZXIoJGV2ZW50KVwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0PC9saWItaXRlbXMtc2VsZWN0b3I+XHJcblx0XHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0PC9tYXQtdGFiPlxyXG5cdFx0XHRcdDxtYXQtdGFiIFtsYWJlbF09XCInUm9sZXMnIHwgdHJhbnNsYXRlXCI+XHJcblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwidGFiLWNvbnRlbnRcIj5cclxuXHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImNvbnRlbnQgcGFkZGluZy1jb250YWluZXJcIj5cclxuXHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8bGliLWl0ZW1zLXZpZXdlciBbbGlzdEVuZHBvaW50XT1cImN1c3RvbWVyUm9sZXNFbmRwb2ludFwiIFtlbnRpdHlVaUNvbXBvbmVudF09XCJyb2xlQ2FyZFwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdFtpdGVtc109XCJyb2xlTGlzdFwiIFt0aGVtZV09XCJ0aGVtZVwiIFt0aXRsZV09XCInQXNzaWduZWQgUm9sZXMnIHwgdHJhbnNsYXRlXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0W3Nob3dQYWdpbmF0b3JdPVwiZmFsc2VcIj48L2xpYi1pdGVtcy12aWV3ZXI+XHJcblx0XHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0PC9tYXQtdGFiPlxyXG5cdFx0XHQ8L25nLWNvbnRhaW5lcj5cclxuXHRcdFx0PG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ1JvbGUnXCI+XHJcblx0XHRcdFx0PG1hdC10YWIgW2xhYmVsXT1cIidVc2VycycgfCB0cmFuc2xhdGVcIj5cclxuXHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJ0YWItY29udGVudFwiPlxyXG5cdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiY29udGVudCBwYWRkaW5nLWNvbnRhaW5lclwiPlxyXG5cdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJjb250YWluZXJcIj5cclxuXHRcdFx0XHRcdFx0XHRcdDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNJdGVtU2VsZWN0ZWRcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInBsYWNlaG9sZGVyOyBjb250ZXh0OnskaW1wbGljaXQ6ICdTZWxlY3QgYSByb2xlIHRvIGFzc2lnbiB1c2Vycyd9XCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDwvbmctY29udGFpbmVyPlxyXG5cdFx0XHRcdFx0XHRcdFx0PC9uZy1jb250YWluZXI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8bGliLWl0ZW1zLXNlbGVjdG9yIFtoaWRkZW5dPVwiIWlzSXRlbVNlbGVjdGVkXCIgW3JlbG9hZFNlbGVjdGlvblN1YmplY3RdPVwicm9sZVN1YmplY3RcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRbbGlzdEVuZHBvaW50XT1cInVzZXJMaXN0RW5kcG9pbnRcIiBbc2VsZWN0aW9uRW5kcG9pbnRdPVwicm9sZVVzZXJzRW5kcG9pbnRcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRbbGlzdFRpdGxlXT1cIidBdmFpbGFibGUgVXNlcnMnIHwgdHJhbnNsYXRlXCIgW3RoZW1lXT1cInRoZW1lXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0W2l0ZW1MYWJlbE1hcF09XCJ1c2VyTGFiZWxcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRbc2VsZWN0aW9uVGl0bGVdPVwiJ1NlbGVjdGVkIFVzZXJzJyB8IHRyYW5zbGF0ZVwiIChzYXZlQ2xpY2spPVwiYXNzaWduVXNlcnNUb1JvbGUoJGV2ZW50KVwiPlxyXG5cclxuXHRcdFx0XHRcdFx0XHRcdDwvbGliLWl0ZW1zLXNlbGVjdG9yPlxyXG5cdFx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdDwvbWF0LXRhYj5cclxuXHRcdFx0XHQ8bWF0LXRhYiBbbGFiZWxdPVwiJ0N1c3RvbWVycycgfCB0cmFuc2xhdGVcIj5cclxuXHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJ0YWItY29udGVudFwiPlxyXG5cdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiY29udGVudCBwYWRkaW5nLWNvbnRhaW5lclwiPlxyXG5cdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJjb250YWluZXJcIj5cclxuXHRcdFx0XHRcdFx0XHRcdDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNJdGVtU2VsZWN0ZWRcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PG5nLWNvbnRhaW5lclxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdCpuZ1RlbXBsYXRlT3V0bGV0PVwicGxhY2Vob2xkZXI7IGNvbnRleHQ6eyRpbXBsaWNpdDogJ1NlbGVjdCBhIHJvbGUgdG8gYXNzaWduIGN1c3RvbWVycyd9XCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDwvbmctY29udGFpbmVyPlxyXG5cdFx0XHRcdFx0XHRcdFx0PC9uZy1jb250YWluZXI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8bGliLWl0ZW1zLXNlbGVjdG9yIFtoaWRkZW5dPVwiIWlzSXRlbVNlbGVjdGVkXCIgW3JlbG9hZFNlbGVjdGlvblN1YmplY3RdPVwicm9sZVN1YmplY3RcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRbbGlzdEVuZHBvaW50XT1cImN1c3RvbWVyTGlzdEVuZHBvaW50XCIgW3NlbGVjdGlvbkVuZHBvaW50XT1cInJvbGVDdXN0b21lcnNFbmRwb2ludFwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdFtsaXN0VGl0bGVdPVwiJ0F2YWlsYWJsZSBDdXN0b21lcnMnIHwgdHJhbnNsYXRlXCIgW3RoZW1lXT1cInRoZW1lXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0W3NlbGVjdGlvblRpdGxlXT1cIidTZWxlY3RlZCBDdXN0b21lcnMnIHwgdHJhbnNsYXRlXCIgKHNhdmVDbGljayk9XCJhc3NpZ25DdXN0b21lcnNUb1JvbGUoJGV2ZW50KVwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0PC9saWItaXRlbXMtc2VsZWN0b3I+XHJcblx0XHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0PC9tYXQtdGFiPlxyXG5cdFx0XHQ8L25nLWNvbnRhaW5lcj5cclxuXHJcblx0XHQ8L25nLWNvbnRhaW5lcj5cclxuXHQ8L21hdC10YWItZ3JvdXA+XHJcblxyXG48L2Rpdj5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjcGxhY2Vob2xkZXIgbGV0LW1zZz5cclxuXHQ8ZGl2IGNsYXNzPVwicGxhY2Vob2xkZXJcIj5cclxuXHRcdDxpIGNsYXNzPVwibWVudS1pbmZvXCI+PC9pPlxyXG5cdFx0PHNwYW4+e3ttc2cgfCB0cmFuc2xhdGV9fTwvc3Bhbj5cclxuXHQ8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT4iXX0=