iptdevs-design-system 3.1.219 → 3.1.221

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.
@@ -363,12 +363,13 @@ export class CodFormStepFourComponent extends CodFormSteps {
363
363
  this.codFormStepFour.controls['total_price'].setValue(null);
364
364
  }
365
365
  setDataFromPreviusCodPrices() {
366
- this.codFormStepFour.controls['payment_method'].setValue(this.initialData.cod_price.fee_number == 1 ? 2 : 1);
366
+ this.codFormStepFour.controls['payment_method'].setValue(this.initialData.cod_payment.lenght == 1 ? 2 : 1);
367
367
  this.codFormStepFour.controls['total_price'].setValue(this.initialData.cod_price.enrollment);
368
- this.codFormStepFour.controls['program_price'].setValue(this.initialData.cod_price.fee_number == 1 ? this.initialData.cod_price.normal_price : this.initialData.cod_price.financed_price);
368
+ this.codFormStepFour.controls['program_price'].setValue(this.initialData.cod_payment.lenght == 1 ? this.initialData.cod_price.normal_price : this.initialData.cod_price.financed_price);
369
369
  this.codFormStepFour.controls['paid_level'].setValue(this.initialData.cod_price.paid_level);
370
- this.codFormStepFour.controls['fee_number'].setValue(this.initialData.cod_price.fee_number);
370
+ this.codFormStepFour.controls['fee_number'].setValue(this.initialData.cod_payment.lenght == 1 ? 1 : this.initialData.cod_price.fee_number);
371
371
  this.codFormStepFour.controls['quota_price'].setValue(this.initialData.cod_price.quota_price);
372
+ this.codFormStepFour.controls['payment_date'].setValue(this.initialData.cod_payment[0].timely_date);
372
373
  }
373
374
  }
374
375
  CodFormStepFourComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.7", ngImport: i0, type: CodFormStepFourComponent, deps: [{ token: i1.FormBuilder }, { token: i2.CalculateQuotesService }, { token: i3.CommunicatorService }, { token: i4.ParameterService }, { token: i5.CodFormControls }, { token: i6.CommercialService }, { token: i7.BaseService }], target: i0.ɵɵFactoryTarget.Component });
@@ -385,4 +386,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.7", ngImpor
385
386
  }], financingData: [{
386
387
  type: Output
387
388
  }] } });
388
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kLWZvcm0tc3RlcC1mb3VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2Rlc2lnbi1zeXN0ZW0vc3JjL2xpYi9jb2Qvc3RlcHMvY29kLWZvcm0tc3RlcC1mb3VyL2NvZC1mb3JtLXN0ZXAtZm91ci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9kZXNpZ24tc3lzdGVtL3NyYy9saWIvY29kL3N0ZXBzL2NvZC1mb3JtLXN0ZXAtZm91ci9jb2QtZm9ybS1zdGVwLWZvdXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBNEIsTUFBTSxlQUFlLENBQUM7QUFDekcsT0FBTyxFQUEwQixVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRSxPQUFPLElBQUksTUFBTSxhQUFhLENBQUM7QUFDL0IsT0FBTyxFQUFVLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNuQyxPQUFPLEVBQUUsWUFBWSxFQUFzQixNQUFNLDRCQUE0QixDQUFDO0FBQzlFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7OztBQXFCaEUsTUFBTSxPQUFPLHdCQUF5QixTQUFRLFlBQVk7SUEwQnhELFlBQ1UsRUFBZSxFQUNmLHNCQUE4QyxFQUM5QyxtQkFBd0MsRUFDeEMsZ0JBQWtDLEVBQ2xDLGVBQWdDLEVBQ2hDLGlCQUFvQyxFQUNwQyxXQUF3QjtRQUVoQyxLQUFLLEVBQUUsQ0FBQztRQVJBLE9BQUUsR0FBRixFQUFFLENBQWE7UUFDZiwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO1FBQzlDLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFDeEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDaEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQTlCeEIsb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQzdDLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUdsRCxtQ0FBOEIsR0FBWSxLQUFLLENBQUM7UUFDaEQsaUJBQVksR0FBVywyQkFBMkIsQ0FBQztRQUNuRCxtQkFBYyxHQUFVO1lBQ3RCLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFO1lBQ2pDLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFO1NBQy9CLENBQUM7UUFDRixrQkFBYSxHQUFVLEVBQUUsQ0FBQztRQUMxQixnQkFBVyxHQUFZLEtBQUssQ0FBQztRQUM3QixnQkFBVyxHQUFZLEtBQUssQ0FBQztRQUM3QixjQUFTLEdBQWdCLEVBQUUsQ0FBQztRQUM1QixvQkFBZSxHQUFnQixFQUFFLENBQUM7UUFHbEMsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFDN0Isa0JBQWEsR0FBWSxLQUFLLENBQUM7UUFFL0IsMEJBQTBCO1FBQzFCLGFBQVEsR0FBRyxJQUFJLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQVk3QyxDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNoQixJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUM3QixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdEIsa0NBQWtDO1FBQ2xDLElBQUksQ0FBQywyQkFBMkIsRUFBRSxDQUFDO1FBQ25DLElBQUksT0FBTyxDQUFDLGFBQWEsQ0FBQyxFQUFFO1lBQzFCLElBQUksSUFBSSxDQUFDLFdBQVcsSUFBSSxJQUFJLEVBQUU7Z0JBQzVCLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLElBQUksSUFBSSxFQUFFO29CQUN0QyxJQUFJLENBQUMsMkJBQTJCLEVBQUUsQ0FBQztvQkFDbkMsSUFBSSxDQUFDLDJCQUEyQixFQUFFLENBQUM7aUJBQ3BDO2FBQ0Y7U0FDRjtJQUNILENBQUM7SUFDRCxxQkFBcUI7SUFDckIsOEJBQThCO0lBQzlCLHFCQUFxQjtJQUNyQixrQ0FBa0M7SUFDbEMsMkJBQTJCO0lBQzNCLHVDQUF1QztJQUN2Qyx3Q0FBd0M7SUFDeEMsSUFBSTtJQUdKLDJCQUEyQjtRQUN6Qiw2QkFBNkI7UUFDN0IsSUFBSSxDQUFDLG1CQUFtQixDQUFDLHFCQUFxQixFQUFFLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ2pFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxJQUFJLENBQzFDLEdBQUcsQ0FBRSxDQUFDLFFBQWEsRUFBRSxFQUFFO2dCQUNyQixNQUFNLFdBQVcsR0FBa0IsUUFBUSxDQUFDLElBQUksQ0FBQztnQkFDakQsT0FBTyxXQUFXLENBQUMsTUFBTSxDQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBRSxDQUFBO1lBQ3ZFLENBQUMsQ0FBQyxDQUNIO2lCQUNBLFNBQVMsQ0FBRSxDQUFDLFdBQTBCLEVBQUUsRUFBRTtnQkFDekMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7b0JBQzNDLElBQUksV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsS0FBSyxLQUFLLEVBQUU7d0JBQzVDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO3dCQUN4QixNQUFNO3FCQUNQO3lCQUFNO3dCQUNMLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO3FCQUMxQjtpQkFDRjtZQUNILENBQUMsQ0FBQyxDQUFBO1FBQ0osQ0FBQyxDQUFDLENBQUM7UUFFSCx3QkFBd0I7UUFDeEIsdUVBQXVFO1FBQ3ZFLHlDQUF5QztRQUN6QyxNQUFNO0lBQ1IsQ0FBQztJQUVELHVCQUF1QixDQUFDLFNBQWtCO1FBQ3hDLElBQUksaUJBQWdDLENBQUM7UUFDckMsSUFBSSxTQUFTLEVBQUU7WUFDYixpQkFBaUIsR0FBRyxTQUFTLENBQUM7U0FDL0I7YUFBTTtZQUNMLGlCQUFpQixHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsY0FBYyxDQUFDLENBQUMsRUFBRSx1QkFBdUIsQ0FBQyxDQUFBO1NBQ3BGO1FBRUQsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLEtBQUssS0FBSyxHQUFHLEVBQUU7WUFDakUsSUFBSSxPQUFPLEdBQWdCO2dCQUN6QixTQUFTLEVBQU0sTUFBTSxDQUFDLGlCQUFpQixDQUFDO2dCQUN4QyxjQUFjLEVBQUUsT0FBTzthQUN4QixDQUFBO1lBQ0QsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGtDQUFrQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQWEsRUFBRSxFQUFFO2dCQUM3RixJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUM7Z0JBQy9CLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFBO2dCQUM3RSxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQTtZQUN6RixDQUFDLENBQUMsQ0FBQTtTQUNEO2FBQUs7WUFDSixJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLENBQUMsS0FBSyxLQUFLLEdBQUcsRUFBRTtnQkFDakUsSUFBSSxPQUFPLEdBQWdCO29CQUN6QixTQUFTLEVBQU0sTUFBTSxDQUFDLGlCQUFpQixDQUFDO29CQUN4QyxjQUFjLEVBQUUsT0FBTztpQkFDeEIsQ0FBQTtnQkFDRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsa0NBQWtDLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsUUFBYSxFQUFFLEVBQUU7b0JBQzdGLElBQUksQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQztvQkFDL0IsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQzlFLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFBO29CQUN2RixJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFDdEYsQ0FBQyxDQUFDLENBQUE7YUFDSDtTQUNKO1FBR0Qsd0ZBQXdGO1FBQ3hGLCtCQUErQjtRQUMvQiwyQkFBMkI7UUFDM0Isc0RBQXNEO1FBQ3RELG9DQUFvQztRQUNwQyw2RUFBNkU7UUFDN0UsZ0hBQWdIO1FBQ2hILDRFQUE0RTtRQUM1RSxzRkFBc0Y7UUFDdEYsa0JBQWtCO1FBQ2xCLGlGQUFpRjtRQUNqRixxSEFBcUg7UUFDckgsMkZBQTJGO1FBQzNGLCtFQUErRTtRQUMvRSx3RkFBd0Y7UUFDeEYscUZBQXFGO1FBQ3JGLGNBQWM7UUFDZCxZQUFZO1FBQ1osVUFBVTtRQUNWLFNBQVM7UUFDVCxxQ0FBcUM7UUFDckMsS0FBSztJQUNQLENBQUM7SUFFRCxjQUFjO1FBQ1osSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ3BELElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUNoRSxJQUFJLENBQUMsWUFBWSxHQUFHLDBDQUEwQyxDQUFDO2FBQ2hFO2lCQUFNLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUN2RSxJQUFJLENBQUMsWUFBWSxHQUFHLGlEQUFpRCxDQUFDO2FBQ3ZFO2lCQUNLO2dCQUNKLElBQUksQ0FBQyxZQUFZLEdBQUcsMEJBQTBCLENBQUM7YUFDaEQ7UUFDSCxDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRCx3QkFBd0IsQ0FBQyxpQkFBc0IsRUFBRSxJQUFZLEVBQUUsTUFBYztRQUMzRSxJQUFJLE9BQU8sR0FBZ0I7WUFDekIsU0FBUyxFQUFNLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQztZQUN4QyxjQUFjLEVBQUUsSUFBSTtTQUNyQixDQUFBO1FBQ0QsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGtDQUFrQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQWEsRUFBRSxFQUFFO1lBQzdGLElBQUksQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQztRQUNqQyxDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQztZQUNuQyxhQUFhLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3JFLFlBQVksRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN6QyxjQUFjLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDM0MsV0FBVyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3hDLFdBQVcsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDbkUsVUFBVSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3ZDLFdBQVcsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN4QyxVQUFVLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDeEMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVELHdCQUF3QjtRQUN0QixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzNELE9BQU8sRUFBRSxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDekMsYUFBYTtZQUNiLElBQUksTUFBTSxLQUFLLEdBQUcsRUFBRTtnQkFDbEIscUJBQXFCO2dCQUNyQixJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztnQkFDcEYsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7Z0JBQ25GLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO2dCQUNsRixJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztnQkFFbEYsMkNBQTJDO2dCQUMzQyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztnQkFFOUIsbUNBQW1DO2dCQUNuQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDLENBQUE7YUFDbEM7WUFFRCxhQUFhO1lBQ2IsSUFBSSxNQUFNLEtBQUssR0FBRyxFQUFFO2dCQUNsQiwwQkFBMEI7Z0JBQzFCLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO2dCQUNwRixJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztnQkFDbkYsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUMsZUFBZSxFQUFFLENBQUM7Z0JBQy9ELElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO2dCQUVsRiwyQ0FBMkM7Z0JBQzNDLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO2dCQUU5QixtQ0FBbUM7Z0JBQ25DLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsQ0FBQTthQUNsQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELG9CQUFvQixDQUFDLE1BQWM7UUFDakMsSUFBSSxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxLQUFLLGdCQUFnQixDQUFDLENBQUM7UUFDbEYsUUFBUSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUN6QixJQUFJLE1BQU0sS0FBSyxHQUFHO2dCQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFBO1lBQzNFLElBQUksTUFBTSxLQUFLLEdBQUcsRUFBRTtnQkFDbEIsSUFBSSxPQUFPLENBQUMsSUFBSSxLQUFLLGFBQWE7b0JBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7YUFDOUY7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxzQkFBc0I7UUFDcEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUN4RSxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1FBQ3ZFLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDLHNCQUFzQixFQUFFLENBQUM7UUFDdEUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztJQUN4RSxDQUFDO0lBRUQscUJBQXFCO1FBQ25CLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQzlCLElBQUksaUJBQWlCLEdBQXVCLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNqRixJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzlFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDcEcsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsU0FBUztRQUNQLElBQUksQ0FBQyw4QkFBOEIsR0FBRyxJQUFJLENBQUM7UUFDM0MsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ3ZFLElBQUksQ0FBQyxXQUFXLEtBQUssTUFBTSxDQUFDLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLEVBQUU7WUFDNUQsSUFBSSxDQUFDLElBQUksQ0FBQztnQkFDUixLQUFLLEVBQUUsYUFBYTtnQkFDcEIsSUFBSSxFQUFFLGtFQUFrRTtnQkFDeEUsSUFBSSxFQUFFLE9BQU87YUFDZCxDQUFDLENBQUE7WUFDRixPQUFPO1NBQ1I7UUFFRCxrQkFBa0I7UUFDbEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7UUFDeEIsc0pBQXNKO1FBQ3RKLHdDQUF3QztRQUN4Qyx5RUFBeUU7UUFDekUsaUJBQWlCO1FBQ2pCLCtJQUErSTtRQUMvSSxvRUFBb0U7UUFDcEUsSUFBSTtRQUVKLElBQUksTUFBTSxHQUEwQjtZQUNsQyxJQUFJLEVBQUUsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUMsS0FBSyxDQUFDO1lBQ25FLFdBQVcsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUMsS0FBSyxDQUFDO1lBQ3ZFLFVBQVUsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUMsS0FBSyxDQUFDO1lBQ3JFLFVBQVUsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQyxLQUFLO1NBQy9ELENBQUE7UUFFRCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDekUsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7UUFDeEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsSUFBSSxDQUFDLDhCQUE4QixHQUFHLEtBQUssQ0FBQztRQUM1QyxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztRQUN6QixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxlQUFlLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUN4QyxJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTztZQUFFLE9BQU87UUFDekMscUJBQXFCO1FBQ3JCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRCxVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUVELHFCQUFxQjtJQUNyQixtQkFBbUIsQ0FBQyxhQUFrQjtRQUNwQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztRQUN4QixJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztRQUUzQixJQUFJLGFBQWEsS0FBSyxFQUFFLEVBQUU7WUFDeEIsTUFBTSxPQUFPLEdBQXVCO2dCQUNsQyxLQUFLLEVBQWEsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUU7Z0JBQ2pELFdBQVcsRUFBTyxNQUFNLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxjQUFjLENBQUMsQ0FBQyxFQUFFLGFBQWEsQ0FBQyxDQUFDO2dCQUMvRSxTQUFTLEVBQVMsTUFBTSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsY0FBYyxDQUFDLENBQUMsRUFBRSx1QkFBdUIsQ0FBQyxDQUFDO2dCQUN6RixlQUFlLEVBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsY0FBYyxDQUFDLENBQUMsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO2dCQUNuRixjQUFjLEVBQUksUUFBUSxDQUFDLGFBQWEsQ0FBQzthQUMxQyxDQUFBO1lBQ0QsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxRQUFRLEVBQUMsRUFBRTtnQkFDcEUsSUFBSSxRQUFRLENBQUMsSUFBSSxJQUFJLElBQUksRUFBRTtvQkFDekIsSUFBSSxDQUFDLFVBQVUsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDO29CQUNoQyxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztvQkFDekIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7aUJBQzNCO3FCQUFLO29CQUNKLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO29CQUMzQixJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztvQkFDekIsSUFBSSxDQUFDLElBQUksQ0FBQzt3QkFDUixRQUFRLEVBQUUsUUFBUTt3QkFDbEIsSUFBSSxFQUFFLFNBQVM7d0JBQ2YsS0FBSyxFQUNILDZGQUE2Rjt3QkFDL0YsaUJBQWlCLEVBQUUsS0FBSzt3QkFDeEIsS0FBSyxFQUFFLElBQUk7cUJBQ1osQ0FBQyxDQUFDO29CQUNILElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO2lCQUMxQjtZQUNILENBQUMsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDeEUsa0NBQWtDO1NBQ25DO2FBQU07WUFDTCxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNoRTtJQUNILENBQUM7SUFFRCxZQUFZLENBQUMsTUFBYztRQUN6QixJQUFJLE1BQU0sS0FBSyxrQkFBa0IsRUFBRTtZQUNqQyxNQUFNLFFBQVEsR0FBZ0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxLQUFLLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1lBQ2xHLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDeEUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUM5RSxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1NBQ3JGO2FBQU07WUFDTCxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDNUQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzVELElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUMvRDtJQUNILENBQUM7SUFFRCxjQUFjO1FBQ1osSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsWUFBWSxDQUFDLFdBQWdCO1FBQzNCLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxFQUFFO1lBQzFELElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDeEUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUM5RSxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQ3BGLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ2pGLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDN0UsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUMvRSxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztTQUMvQjthQUFNLElBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxFQUFDO1lBQy9ELElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDeEUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUM5RSxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ2xGLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ2pGLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDN0UsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUMvRSxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztTQUMvQjtJQUNILENBQUM7SUFFRCxpQkFBaUI7UUFDZixJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDOUQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVELElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRUQsMkJBQTJCO1FBQ3pCLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLFVBQVUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDNUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzdGLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxVQUFVLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzNMLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM1RixJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDNUYsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBRWhHLENBQUM7O3FIQW5ZVSx3QkFBd0I7eUdBQXhCLHdCQUF3QiwyUEMxQnJDLDQzSkFrSUE7MkZEeEdhLHdCQUF3QjtrQkFMcEMsU0FBUzsrQkFDRSx3QkFBd0I7Z1NBS3pCLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDSSxlQUFlO3NCQUF4QixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzLCBPbkNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Hcm91cCwgRm9ybUJ1aWxkZXIsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgU3dhbCBmcm9tICdzd2VldGFsZXJ0Mic7XG5pbXBvcnQgeyBmaWx0ZXIsIG1hcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ29kRm9ybVN0ZXBzLCBsb2NhbFN0b3JhZ2VWYWx1ZXMgfSBmcm9tICcuLi8uLi9sb2dpYy9jb2QtZm9ybS1zdGVwcyc7XG5pbXBvcnQgeyBDb2RGb3JtQ29udHJvbHMgfSBmcm9tICcuLi8uLi9sb2dpYy9jb2QtZm9ybS1jb250cm9scyc7XG5pbXBvcnQgeyBDYWxjdWxhdGVRdW90ZXNQYXJhbXMsIENhbGN1bGF0ZVF1b3Rlc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9sb2dpYy9jYWxjdWxhdGUtcXVvdGVzLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29tbXVuaWNhdG9yU2VydmljZSB9IGZyb20gJy4uLy4uL2xvZ2ljL2NvbW11bmljYXRvci5zZXJ2aWNlJztcbmltcG9ydCB7IENvZFByaWNlcywgQ29kUHJpY2VzUnEsIElPYnRhaW5Db2RQcmljZXNScSB9IGZyb20gJy4uLy4uLy4uL2NvcmUvbW9kZWxzL2NvbW1lcmNpYWwvY29tbWVyY2lhbC5tb2RlbCc7XG5pbXBvcnQgeyBQYXJhbWV0ZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9zZXJ2aWNlcy9wYXJhbWV0ZXJzLXNlcnZpY2UvcGFyYW1ldGVycy5zZXJ2aWNlJztcbmltcG9ydCB7IENvbW1lcmNpYWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9zZXJ2aWNlcy9jb21tZXJjaWFsLXNlcnZpY2UvY29tZXJjaWFsLnNlcnZpY2UnO1xuaW1wb3J0IHsgQmFzZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9jb3JlL3V0aWxzL2Jhc2Utc2VydmljZS9iYXNlLnNlcnZpY2UnO1xuXG5pbnRlcmZhY2UgQ291cnNlVHlwZXMge1xuICBjb2RlOiBudW1iZXI7XG4gIG5hbWU6IHN0cmluZztcbiAgbnVtYmVyX2NsYXNzOiBudW1iZXI7XG4gIGFjYWRlbWljX3BsYW46IG51bWJlcjtcbiAgdXBkYXRlZF9hdDogc3RyaW5nO1xuICBjcmVhdGVkX2F0OiBzdHJpbmc7XG59XG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtY29kLWZvcm0tc3RlcC1mb3VyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvZC1mb3JtLXN0ZXAtZm91ci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NvZC1mb3JtLXN0ZXAtZm91ci5jb21wb25lbnQuY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIENvZEZvcm1TdGVwRm91ckNvbXBvbmVudCBleHRlbmRzIENvZEZvcm1TdGVwcyBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIGlzRWRpdENvZD86IGJvb2xlYW47XG4gIEBJbnB1dCgpIGluaXRpYWxEYXRhPzogYW55O1xuICBAT3V0cHV0KCkgY2hhbmdlU3RlcEV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG4gIEBPdXRwdXQoKSBmaW5hbmNpbmdEYXRhID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgY29kRm9ybVN0ZXBGb3VyITogRm9ybUdyb3VwO1xuICBpc0NhbGN1bGF0ZVF1b3Rlc0J1dHRvbkNsaWNrZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgZXJyb3JNZXNzYWdlOiBzdHJpbmcgPSAnRmFsdGFuIGNhbXBvcyBwb3IgbGxlbmFyLic7XG4gIHBheW1lbnRNZXRob2RzOiBhbnlbXSA9IFtcbiAgICB7IGNvZGU6ICcxJywgbmFtZTogJ0ZpbmFuY2lhZG8nIH0sXG4gICAgeyBjb2RlOiAnMicsIG5hbWU6ICdDb250YWRvJyB9LFxuICBdO1xuICBkYXRhRmluYW5jaW5nOiBhbnlbXSA9IFtdO1xuICBpc0ZpbmFuY2luZzogYm9vbGVhbiA9IGZhbHNlO1xuICBpc1NlbWVzdHJhbDogYm9vbGVhbiA9IGZhbHNlO1xuICBjb2RQcmljZXM6IENvZFByaWNlc1tdID0gW107XG4gIGNvZFByaWNlc0ZpbHRlcjogQ29kUHJpY2VzW10gPSBbXTtcblxuICBkYXRhUHJpY2VzOmFueTtcbiAgZmVlUmVzcG9uc2U6IGJvb2xlYW4gPSBmYWxzZTtcbiAgdGhlcmVBcmVQbGFuczogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8vIENvbnRyb2xzIGRlbCBmb3JtdWxhcmlvXG4gIGNvbnRyb2xzID0gbmV3IENvZEZvcm1Db250cm9scygpLmNvbnRyb2xzWzNdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLFxuICAgIHByaXZhdGUgY2FsY3VsYXRlUXVvdGVzU2VydmljZTogQ2FsY3VsYXRlUXVvdGVzU2VydmljZSxcbiAgICBwcml2YXRlIGNvbW11bmljYXRvclNlcnZpY2U6IENvbW11bmljYXRvclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwYXJhbWV0ZXJTZXJ2aWNlOiBQYXJhbWV0ZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgY29kRm9ybUNvbnRyb2xzOiBDb2RGb3JtQ29udHJvbHMsXG4gICAgcHJpdmF0ZSBjb21tZXJjaWFsU2VydmljZTogQ29tbWVyY2lhbFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBiYXNlU2VydmljZTogQmFzZVNlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICB0aGlzLmluaXRGb3JtKCk7XG4gICAgdGhpcy5zdGFydExvY2FsU3RvcmFnZVdvcmsoKTtcbiAgICB0aGlzLnZhbGlkYXRlRXJyb3JzKCk7XG4gICAgLy8gdGhpcy5nZXRDb2RQcmljZXNCeUFncmVlbWVudCgpO1xuICAgIHRoaXMuZ2V0VmFsdWVzT2ZTdGVwT25lQ29tcG9uZW50KCk7XG4gICAgaWYgKGNoYW5nZXNbJ2luaXRpYWxEYXRhJ10pIHtcbiAgICAgIGlmICh0aGlzLmluaXRpYWxEYXRhICE9IG51bGwpIHtcbiAgICAgICAgaWYgKHRoaXMuaW5pdGlhbERhdGEuY29kX3ByaWNlICE9IG51bGwpIHtcbiAgICAgICAgICB0aGlzLnNldERhdGFGcm9tUHJldml1c0NvZFByaWNlcygpO1xuICAgICAgICAgIHRoaXMuZ2V0VmFsdWVzT2ZTdGVwT25lQ29tcG9uZW50KCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLy8gbmdPbkluaXQoKTogdm9pZCB7XG4gIC8vICAgLy8gdGhpcy5jbGVhbkNvbXBvbmVudCgpO1xuICAvLyAgIHRoaXMuaW5pdEZvcm0oKTtcbiAgLy8gICB0aGlzLnN0YXJ0TG9jYWxTdG9yYWdlV29yaygpO1xuICAvLyAgIHRoaXMudmFsaWRhdGVFcnJvcnMoKTtcbiAgLy8gICAvLyB0aGlzLmdldENvZFByaWNlc0J5QWdyZWVtZW50KCk7XG4gIC8vICAgdGhpcy5nZXRWYWx1ZXNPZlN0ZXBPbmVDb21wb25lbnQoKTtcbiAgLy8gfVxuXG5cbiAgZ2V0VmFsdWVzT2ZTdGVwT25lQ29tcG9uZW50KCkge1xuICAgIC8vIFRpcG8gZGUgY3Vyc28gc2VsZWNjaW9uYWRvXG4gICAgdGhpcy5jb21tdW5pY2F0b3JTZXJ2aWNlLmdldFNlbGVjdGVkQ291cnNlVHlwZSgpLnN1YnNjcmliZSh2YWx1ZSA9PiB7XG4gICAgICB0aGlzLnBhcmFtZXRlclNlcnZpY2UuZ2V0Q291cnNlc1R5cGVzKCkucGlwZShcbiAgICAgICAgbWFwKCAocmVzcG9uc2U6IGFueSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGNvdXJzZVR5cGVzOiBDb3Vyc2VUeXBlc1tdID0gcmVzcG9uc2UuZGF0YTtcbiAgICAgICAgICByZXR1cm4gY291cnNlVHlwZXMuZmlsdGVyKCAoeyBuYW1lIH0pID0+IG5hbWUuaW5jbHVkZXMoJ1NlbWVzdHJhbCcpIClcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoIChjb3Vyc2VUeXBlczogQ291cnNlVHlwZXNbXSkgPT4ge1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNvdXJzZVR5cGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgaWYgKGNvdXJzZVR5cGVzW2ldLmNvZGUudG9TdHJpbmcoKSA9PT0gdmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuaXNTZW1lc3RyYWwgPSB0cnVlO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaXNTZW1lc3RyYWwgPSBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgfSk7XG5cbiAgICAvLyBDb252ZW5pbyBzZWxlY2Npb25hZG9cbiAgICAvLyB0aGlzLmNvbW11bmljYXRvclNlcnZpY2UuZ2V0U2VsZWN0ZWRBZ3JlZW1lbnQoKS5zdWJzY3JpYmUodmFsdWUgPT4ge1xuICAgIC8vICAgdGhpcy5nZXRDb2RQcmljZXNCeUFncmVlbWVudCh2YWx1ZSk7XG4gICAgLy8gfSk7XG4gIH1cblxuICBnZXRDb2RQcmljZXNCeUFncmVlbWVudChhZ3JlZW1lbnQ/OiBzdHJpbmcpIHtcbiAgICBsZXQgYWdyZWVtZW50U2VsZWN0ZWQ6IHN0cmluZyB8IG51bGw7XG4gICAgaWYgKGFncmVlbWVudCkge1xuICAgICAgYWdyZWVtZW50U2VsZWN0ZWQgPSBhZ3JlZW1lbnQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIGFncmVlbWVudFNlbGVjdGVkID0gdGhpcy5sb2NhbFN0b3JhZ2VDT0QuZ2V0Q29kRm9ybURhdGEoMSwgJ2FncmVlbWVudF9ieV9jYXRlZ29yeScpXG4gICAgfVxuXG4gICAgaWYgKHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydwYXltZW50X21ldGhvZCddLnZhbHVlID09PSAnMScpIHtcbiAgICAgIGxldCByZXF1ZXN0OiBDb2RQcmljZXNScSA9IHtcbiAgICAgICAgYWdyZWVtZW50OiAgICAgTnVtYmVyKGFncmVlbWVudFNlbGVjdGVkKSxcbiAgICAgICAgcGF5bWVudF9tZXRob2Q6ICdjdW90YSdcbiAgICAgIH1cbiAgICAgIHRoaXMuY29tbWVyY2lhbFNlcnZpY2UuZ2V0Q29kUHJpY2VzQnlBZ3JlZW1lbnRUeXBlUGF5bWVudChyZXF1ZXN0KS5zdWJzY3JpYmUoKHJlc3BvbnNlOiBhbnkpID0+e1xuICAgICAgICB0aGlzLmNvZFByaWNlcyA9IHJlc3BvbnNlLmRhdGE7XG4gICAgICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydxdW90YV90aW1lcyddLnNldFZhbHVlKHRoaXMuY29kUHJpY2VzWzBdLmNvZGUpXG4gICAgICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydwcm9ncmFtX3ByaWNlJ10uc2V0VmFsdWUodGhpcy5jb2RQcmljZXNbMF0ubm9ybWFsX3ByaWNlKVxuICAgICAgfSlcbiAgICAgIH1lbHNlIHtcbiAgICAgICAgaWYgKHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydwYXltZW50X21ldGhvZCddLnZhbHVlID09PSAnMicpIHtcbiAgICAgICAgICBsZXQgcmVxdWVzdDogQ29kUHJpY2VzUnEgPSB7XG4gICAgICAgICAgICBhZ3JlZW1lbnQ6ICAgICBOdW1iZXIoYWdyZWVtZW50U2VsZWN0ZWQpLFxuICAgICAgICAgICAgcGF5bWVudF9tZXRob2Q6ICdjb250YSdcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5jb21tZXJjaWFsU2VydmljZS5nZXRDb2RQcmljZXNCeUFncmVlbWVudFR5cGVQYXltZW50KHJlcXVlc3QpLnN1YnNjcmliZSgocmVzcG9uc2U6IGFueSkgPT57XG4gICAgICAgICAgICB0aGlzLmNvZFByaWNlcyA9IHJlc3BvbnNlLmRhdGE7XG4gICAgICAgICAgICB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncXVvdGFfdGltZXMnXS5zZXRWYWx1ZSh0aGlzLmNvZFByaWNlc1swXS5jb2RlKTtcbiAgICAgICAgICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydwcm9ncmFtX3ByaWNlJ10uc2V0VmFsdWUodGhpcy5jb2RQcmljZXNbMF0ubm9ybWFsX3ByaWNlKVxuICAgICAgICAgICAgdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3RvdGFsX3ByaWNlJ10uc2V0VmFsdWUodGhpcy5jb2RQcmljZXNbMF0uZW5yb2xsbWVudCk7XG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgIH1cblxuXG4gICAgLy8gdGhpcy5jb21tZXJjaWFsU2VydmljZS5nZXRDb2RQcmljZXNCeUFncmVlbWVudChOdW1iZXIoYWdyZWVtZW50U2VsZWN0ZWQpKS5zdWJzY3JpYmUoe1xuICAgIC8vICAgbmV4dDogKHJlc3BvbnNlOiBhbnkpID0+IHtcbiAgICAvLyAgICAgaWYgKHJlc3BvbnNlLmRhdGEpIHtcbiAgICAvLyAgICAgICBjb25zdCBjb2RQcmljZXM6IENvZFByaWNlc1tdID0gcmVzcG9uc2UuZGF0YTtcbiAgICAvLyAgICAgICB0aGlzLmNvZFByaWNlcyA9IGNvZFByaWNlcztcbiAgICAvLyAgICAgICBpZiAodGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3BheW1lbnRfbWV0aG9kJ10udmFsdWUgPT09ICcxJykge1xuICAgIC8vICAgICAgICAgICBjb25zdCBhdXggPSB0aGlzLmNvZFByaWNlcy5maWx0ZXIoY29kUHJpY2UgPT4gY29kUHJpY2UuYWdyZWVtZW50ID09PSBOdW1iZXIoYWdyZWVtZW50U2VsZWN0ZWQpKVswXTtcbiAgICAvLyAgICAgICAgICAgdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3F1b3RhX3RpbWVzJ10uc2V0VmFsdWUoYXV4LmNvZGUpXG4gICAgLy8gICAgICAgICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydwcm9ncmFtX3ByaWNlJ10uc2V0VmFsdWUoYXV4Lm5vcm1hbF9wcmljZSlcbiAgICAvLyAgICAgICAgIH1lbHNlIHtcbiAgICAvLyAgICAgICAgICAgaWYgKHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydwYXltZW50X21ldGhvZCddLnZhbHVlID09PSAnMicpIHtcbiAgICAvLyAgICAgICAgICAgICAvLyBjb25zdCBhdXggPSB0aGlzLmNvZFByaWNlcy5maWx0ZXIoY29kUHJpY2UgPT4gY29kUHJpY2UuYWdyZWVtZW50ID09PSBOdW1iZXIoYWdyZWVtZW50U2VsZWN0ZWQpKVswXTtcbiAgICAvLyAgICAgICAgICAgICBjb25zdCBhdXggPSB0aGlzLmNvZFByaWNlcy5maWx0ZXIoY29kUHJpY2UgPT4gY29kUHJpY2UuZmVlX251bWJlciA9PT0gMSlbMF07XG4gICAgLy8gICAgICAgICAgICAgdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3F1b3RhX3RpbWVzJ10uc2V0VmFsdWUoYXV4LmNvZGUpO1xuICAgIC8vICAgICAgICAgICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydwcm9ncmFtX3ByaWNlJ10uc2V0VmFsdWUoYXV4Lm5vcm1hbF9wcmljZSlcbiAgICAvLyAgICAgICAgICAgICB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sndG90YWxfcHJpY2UnXS5zZXRWYWx1ZShhdXguZW5yb2xsbWVudCk7XG4gICAgLy8gICAgICAgICAgIH1cbiAgICAvLyAgICAgICAgIH1cbiAgICAvLyAgICAgICB9XG4gICAgLy8gICAgIH0sXG4gICAgLy8gICBlcnJvcjogKGVycikgPT4gY29uc29sZS5sb2coZXJyKVxuICAgIC8vIH0pXG4gIH1cblxuICB2YWxpZGF0ZUVycm9ycygpIHtcbiAgICB0aGlzLmNvZEZvcm1TdGVwRm91ci52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKGNoYW5nZXMgPT4ge1xuICAgICAgaWYgKHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydxdW90YV90aW1lcyddLmhhc0Vycm9yKCdtaW4nKSkge1xuICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICdMYSBjYW50aWRhZCBkZSBjdW90YXMgbcOtbmltYXMgZGViZSBzZXIgMSc7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydxdW90YV90aW1lcyddLmhhc0Vycm9yKCdtYXgnKSkge1xuICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICdMYSBjYW50aWRhZCBkZSBjdW90YXMgbm8gZGViZSBzZXIgc3VwZXJpb3IgYSAxMic7XG4gICAgICB9XG4gICAgICAgZWxzZSB7XG4gICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJ0ZhbHRhbiBjYW1wb3MgcG9yIGxsZW5hcic7XG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIHNlYXJjaFByaWNlQnlUeXBlUGF5bWVudChhZ3JlZW1lbnRTZWxlY3RlZDogYW55LCB0eXBlOiBzdHJpbmcsIGNoYW5nZTogc3RyaW5nKXtcbiAgICBsZXQgcmVxdWVzdDogQ29kUHJpY2VzUnEgPSB7XG4gICAgICBhZ3JlZW1lbnQ6ICAgICBOdW1iZXIoYWdyZWVtZW50U2VsZWN0ZWQpLFxuICAgICAgcGF5bWVudF9tZXRob2Q6IHR5cGVcbiAgICB9XG4gICAgdGhpcy5jb21tZXJjaWFsU2VydmljZS5nZXRDb2RQcmljZXNCeUFncmVlbWVudFR5cGVQYXltZW50KHJlcXVlc3QpLnN1YnNjcmliZSgocmVzcG9uc2U6IGFueSkgPT57XG4gICAgICB0aGlzLmNvZFByaWNlcyA9IHJlc3BvbnNlLmRhdGE7XG4gICAgfSlcbiAgfVxuXG4gIGluaXRGb3JtKCkge1xuICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICBwcm9ncmFtX3ByaWNlOiBbeyB2YWx1ZTogJycsIGRpc2FibGVkOiB0cnVlIH0sIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgICBwYXltZW50X2RhdGU6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcbiAgICAgIHBheW1lbnRfbWV0aG9kOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgICBxdW90YV90aW1lczogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuICAgICAgdG90YWxfcHJpY2U6IFt7IHZhbHVlOiAnJywgZGlzYWJsZWQ6IHRydWUgfSwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcbiAgICAgIHBhaWRfbGV2ZWw6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcbiAgICAgIHF1b3RhX3ByaWNlOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgICBmZWVfbnVtYmVyOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgfSk7XG5cbiAgICB0aGlzLmxpc3RlblBheW1lbnRNZXRob2RGaWVsZCgpO1xuICB9XG5cbiAgbGlzdGVuUGF5bWVudE1ldGhvZEZpZWxkKCkge1xuICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmNvZEZvcm1TdGVwRm91ci5nZXQoJ3BheW1lbnRfbWV0aG9kJyk7XG4gICAgY29udHJvbD8udmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgoY2hhbmdlKSA9PiB7XG4gICAgICAvLyBGaW5hbmNpYWRvXG4gICAgICBpZiAoY2hhbmdlID09PSAnMScpIHtcbiAgICAgICAgLy8gUG9uZXIgdmFsaWRhY2lvbmVzXG4gICAgICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydwcm9ncmFtX3ByaWNlJ10uc2V0VmFsaWRhdG9ycyhbVmFsaWRhdG9ycy5yZXF1aXJlZF0pO1xuICAgICAgICB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncGF5bWVudF9kYXRlJ10uc2V0VmFsaWRhdG9ycyhbVmFsaWRhdG9ycy5yZXF1aXJlZF0pO1xuICAgICAgICB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncXVvdGFfdGltZXMnXS5zZXRWYWxpZGF0b3JzKFtWYWxpZGF0b3JzLnJlcXVpcmVkXSk7XG4gICAgICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWyd0b3RhbF9wcmljZSddLnNldFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMucmVxdWlyZWRdKTtcblxuICAgICAgICAvLyBBY3R1YWxpemFyIHBhcmEgcXVlIHNlIHRvbWVuIGxvcyBjYW1iaW9zXG4gICAgICAgIHRoaXMudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuXG4gICAgICAgIC8vIEFjdHVhbGl6YXIgbG9zIGNvbnRyb2xzIGdsb2JhbGVzXG4gICAgICAgIHRoaXMudXBkYXRlR2xvYmFsQ29udHJvbHMoY2hhbmdlKVxuICAgICAgfVxuXG4gICAgICAvLyBkZSBjb250YWRvXG4gICAgICBpZiAoY2hhbmdlID09PSAnMicpIHtcbiAgICAgICAgLy8gUXVpdGFyIGxhcyB2YWxpZGFjaW9uZXNcbiAgICAgICAgdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3Byb2dyYW1fcHJpY2UnXS5zZXRWYWxpZGF0b3JzKFtWYWxpZGF0b3JzLnJlcXVpcmVkXSk7XG4gICAgICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydwYXltZW50X2RhdGUnXS5zZXRWYWxpZGF0b3JzKFtWYWxpZGF0b3JzLnJlcXVpcmVkXSk7XG4gICAgICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydxdW90YV90aW1lcyddLmNsZWFyVmFsaWRhdG9ycygpO1xuICAgICAgICB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sndG90YWxfcHJpY2UnXS5zZXRWYWxpZGF0b3JzKFtWYWxpZGF0b3JzLnJlcXVpcmVkXSk7XG5cbiAgICAgICAgLy8gQWN0dWFsaXphciBwYXJhIHF1ZSBzZSB0b21lbiBsb3MgY2FtYmlvc1xuICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcblxuICAgICAgICAvLyBBY3R1YWxpemFyIGxvcyBjb250cm9scyBnbG9iYWxlc1xuICAgICAgICB0aGlzLnVwZGF0ZUdsb2JhbENvbnRyb2xzKGNoYW5nZSlcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHVwZGF0ZUdsb2JhbENvbnRyb2xzKGNoYW5nZTogc3RyaW5nKSB7XG4gICAgbGV0IGNvbnRyb2xzID0gdGhpcy5jb250cm9scy5maWx0ZXIoY29udHJvbCA9PiBjb250cm9sLm5hbWUgIT09ICdwYXltZW50X21ldGhvZCcpO1xuICAgIGNvbnRyb2xzLmZvckVhY2goY29udHJvbCA9PiB7XG4gICAgICBpZiAoY2hhbmdlID09PSAnMScpIHRoaXMuY29kRm9ybUNvbnRyb2xzLmNoYW5nZVZhbHVlKDQsIGNvbnRyb2wubmFtZSwgdHJ1ZSlcbiAgICAgIGlmIChjaGFuZ2UgPT09ICcyJykge1xuICAgICAgICBpZiAoY29udHJvbC5uYW1lID09PSAncXVvdGFfdGltZXMnKSB0aGlzLmNvZEZvcm1Db250cm9scy5jaGFuZ2VWYWx1ZSg0LCBjb250cm9sLm5hbWUsIGZhbHNlKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKSB7XG4gICAgdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3Byb2dyYW1fcHJpY2UnXS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3BheW1lbnRfZGF0ZSddLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncXVvdGFfdGltZXMnXS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3RvdGFsX3ByaWNlJ10udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICB9XG5cbiAgc3RhcnRMb2NhbFN0b3JhZ2VXb3JrKCkge1xuICAgIHRoaXMuY29udHJvbHMuZm9yRWFjaChjb250cm9sID0+IHtcbiAgICAgIGxldCBsb2NhbFN0b3JhZ2VWYWx1ZTogbG9jYWxTdG9yYWdlVmFsdWVzID0gdGhpcy5yZWFkQW5kV3JpdGVMUyg0LCBjb250cm9sLm5hbWUpO1xuICAgICAgdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbY29udHJvbC5uYW1lXS5zZXRWYWx1ZShsb2NhbFN0b3JhZ2VWYWx1ZS52YWx1ZSk7XG4gICAgICB0aGlzLmxpc3RlbkZvcm1DaGFuZ2VzKDQsIGNvbnRyb2wubmFtZSwgdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbY29udHJvbC5uYW1lXS52YWx1ZUNoYW5nZXMpO1xuICAgIH0pO1xuICB9XG5cbiAgc2hvd1RhYmxlKCkge1xuICAgIHRoaXMuaXNDYWxjdWxhdGVRdW90ZXNCdXR0b25DbGlja2VkID0gdHJ1ZTtcbiAgICBjb25zdCB0b3RhbF9wcmljZSA9IHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWyd0b3RhbF9wcmljZSddLnZhbHVlO1xuICAgIGlmICgodG90YWxfcHJpY2UgPT09ICdudWxsJykgfHwgdGhpcy5jb2RGb3JtU3RlcEZvdXIuaW52YWxpZCkge1xuICAgICAgU3dhbC5maXJlKHtcbiAgICAgICAgdGl0bGU6ICdFcnJvciB0YWJsZScsXG4gICAgICAgIHRleHQ6ICdEZWJlcyBpbmdyZXNhciBlbCBtb250byB0b3RhbCBkZSBsYSBtYXRyw61jdWxhIHkgbGEgY3VvdGEgaW5pY2lhbCcsXG4gICAgICAgIGljb246ICdlcnJvcidcbiAgICAgIH0pXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gQ2FsY3VsYXIgY3VvdGFzXG4gICAgdGhpcy5kYXRhRmluYW5jaW5nID0gW107XG4gICAgLy8gY29uc3QgcXVvdGFWYWx1ZXMgPSB0aGlzLmNvZFByaWNlcy5maWx0ZXIoY29kUHJpY2UgPT4gY29kUHJpY2UuY29kZSA9PT0gTnVtYmVyKHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydxdW90YV90aW1lcyddLnZhbHVlKSlbMF0ucXVvdGFfcHJpY2U7XG4gICAgLy8gbGV0IHBhcmFtczogQ2FsY3VsYXRlUXVvdGVzUGFyYW1zID0ge1xuICAgIC8vICAgZGF0ZTogbmV3IERhdGUodGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3BheW1lbnRfZGF0ZSddLnZhbHVlKSxcbiAgICAvLyAgIHF1b3RhVmFsdWVzLFxuICAgIC8vICAgcXVvdGFUaW1lczogdGhpcy5jb2RQcmljZXMuZmlsdGVyKGNvZFByaWNlID0+IGNvZFByaWNlLmNvZGUgPT09IE51bWJlcih0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncXVvdGFfdGltZXMnXS52YWx1ZSkpWzBdLmZlZV9udW1iZXIsXG4gICAgLy8gICB0b3RhbFByaWNlOiB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sndG90YWxfcHJpY2UnXS52YWx1ZSxcbiAgICAvLyB9XG5cbiAgICBsZXQgcGFyYW1zOiBDYWxjdWxhdGVRdW90ZXNQYXJhbXMgPSB7XG4gICAgICBkYXRlOiBuZXcgRGF0ZSh0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncGF5bWVudF9kYXRlJ10udmFsdWUpLFxuICAgICAgcXVvdGFWYWx1ZXM6IE51bWJlcih0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncXVvdGFfcHJpY2UnXS52YWx1ZSksXG4gICAgICBxdW90YVRpbWVzOiBOdW1iZXIodGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ2ZlZV9udW1iZXInXS52YWx1ZSksXG4gICAgICB0b3RhbFByaWNlOiB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sndG90YWxfcHJpY2UnXS52YWx1ZSxcbiAgICB9XG5cbiAgICB0aGlzLmRhdGFGaW5hbmNpbmcgPSB0aGlzLmNhbGN1bGF0ZVF1b3Rlc1NlcnZpY2UuY2FsY3VsYXRlUXVvdGVzKHBhcmFtcyk7XG4gICAgdGhpcy5pc0ZpbmFuY2luZyA9IHRydWU7XG4gICAgdGhpcy5maW5hbmNpbmdEYXRhLmVtaXQodGhpcy5kYXRhRmluYW5jaW5nKTtcbiAgfVxuXG4gIGNhbGN1bGF0ZU5ld1F1b3RlcygpIHtcbiAgICB0aGlzLmlzQ2FsY3VsYXRlUXVvdGVzQnV0dG9uQ2xpY2tlZCA9IGZhbHNlO1xuICAgIHRoaXMuaXNGaW5hbmNpbmcgPSBmYWxzZTtcbiAgICB0aGlzLmZpbmFuY2luZ0RhdGEuZW1pdChudWxsKTtcbiAgfVxuXG4gIHNlbmRGb3JtKCkge1xuICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLm1hcmtBbGxBc1RvdWNoZWQoKTtcbiAgICBpZiAodGhpcy5jb2RGb3JtU3RlcEZvdXIuaW52YWxpZCkgcmV0dXJuO1xuICAgIC8vIE1vdmVybm9zIGFsIHBhc28gNVxuICAgIHRoaXMuY2hhbmdlU3RlcEV2ZW50LmVtaXQoNCk7XG4gIH1cblxuICBpc0ZpbmFuY2VkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncGF5bWVudF9tZXRob2QnXS52YWx1ZSA9PSAxO1xuICB9XG5cbiAgLy8gRXZlbnRvcyBkZWwgc2VsZWN0XG4gIHNlbGVjdFBheW1lbnRNZXRob2QocGF5bWVudE1ldGhvZDogYW55KSB7XG4gICAgdGhpcy5mZWVSZXNwb25zZSA9IHRydWU7XG4gICAgdGhpcy50aGVyZUFyZVBsYW5zID0gZmFsc2U7XG5cbiAgICBpZiAocGF5bWVudE1ldGhvZCAhPT0gJycpIHtcbiAgICAgIGNvbnN0IHJlcXVlc3Q6IElPYnRhaW5Db2RQcmljZXNScSA9IHtcbiAgICAgICAgdG9rZW46ICAgICAgICAgICAgdGhpcy5iYXNlU2VydmljZS5nZXRVc2VyVG9rZW4oKSxcbiAgICAgICAgY291cnNlX3R5cGU6ICAgICAgTnVtYmVyKHRoaXMubG9jYWxTdG9yYWdlQ09ELmdldENvZEZvcm1EYXRhKDEsICdjb3Vyc2VfdHlwZScpKSxcbiAgICAgICAgYWdyZWVtZW50OiAgICAgICAgTnVtYmVyKHRoaXMubG9jYWxTdG9yYWdlQ09ELmdldENvZEZvcm1EYXRhKDEsICdhZ3JlZW1lbnRfYnlfY2F0ZWdvcnknKSksXG4gICAgICAgIGNvdXJzZV9tb2RhbGl0eTogIE51bWJlcih0aGlzLmxvY2FsU3RvcmFnZUNPRC5nZXRDb2RGb3JtRGF0YSgxLCAnY291cnNlX21vZGFsaXR5JykpLFxuICAgICAgICBwYXltZW50X21ldGhvZDogICBwYXJzZUludChwYXltZW50TWV0aG9kKVxuICAgICAgfVxuICAgICAgdGhpcy5jb21tZXJjaWFsU2VydmljZS5PYnRhaW5Db2RQcmljZXMocmVxdWVzdCkuc3Vic2NyaWJlKChyZXNwb25zZSk9PiB7XG4gICAgICAgIGlmIChyZXNwb25zZS5kYXRhICE9IG51bGwpIHtcbiAgICAgICAgICB0aGlzLmRhdGFQcmljZXMgPSByZXNwb25zZS5kYXRhO1xuICAgICAgICAgIHRoaXMuZmVlUmVzcG9uc2UgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLnRoZXJlQXJlUGxhbnMgPSB0cnVlO1xuICAgICAgICB9ZWxzZSB7XG4gICAgICAgICAgdGhpcy50aGVyZUFyZVBsYW5zID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5mZWVSZXNwb25zZSA9IGZhbHNlO1xuICAgICAgICAgIFN3YWwuZmlyZSh7XG4gICAgICAgICAgICBwb3NpdGlvbjogJ2NlbnRlcicsXG4gICAgICAgICAgICBpY29uOiAnd2FybmluZycsXG4gICAgICAgICAgICB0aXRsZTpcbiAgICAgICAgICAgICAgJzxwIHN0eWxlPVwiZm9udC1mYW1pbHk6IFBvcHBpbnNcIlwiPk9vcHMuLiBubyBoYXkgcGxhbmVzIGRlIHBhZ29zLCBcXG4gZW4gZWwgY3Vyc28gZWxlZ2lkby48L3A+JyxcbiAgICAgICAgICAgIHNob3dDb25maXJtQnV0dG9uOiBmYWxzZSxcbiAgICAgICAgICAgIHRpbWVyOiAzMDAwLFxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHRoaXMuY2xlYXJJbnB1dFBheW1lbnQoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncGF5bWVudF9tZXRob2QnXS5zZXRWYWx1ZShwYXltZW50TWV0aG9kKTtcbiAgICAgIC8vIHRoaXMuZ2V0Q29kUHJpY2VzQnlBZ3JlZW1lbnQoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3BheW1lbnRfbWV0aG9kJ10uc2V0VmFsdWUobnVsbCk7XG4gICAgfVxuICB9XG5cbiAgc2VsZWN0UXVvdGFzKHF1b3Rhczogc3RyaW5nKSB7XG4gICAgaWYgKHF1b3RhcyAhPT0gJ07Dum1lcm8gZGUgY3VvdGFzJykge1xuICAgICAgY29uc3QgY29kUHJpY2U6IENvZFByaWNlc1tdID0gdGhpcy5jb2RQcmljZXMuZmlsdGVyKGNvZFByaWNlID0+IGNvZFByaWNlLmNvZGUgPT09IE51bWJlcihxdW90YXMpKTtcbiAgICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydxdW90YV90aW1lcyddLnNldFZhbHVlKGNvZFByaWNlWzBdLmNvZGUpO1xuICAgICAgdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3RvdGFsX3ByaWNlJ10uc2V0VmFsdWUoY29kUHJpY2VbMF0uZW5yb2xsbWVudCk7XG4gICAgICB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncHJvZ3JhbV9wcmljZSddLnNldFZhbHVlKGNvZFByaWNlWzBdLmZpbmFuY2VkX3ByaWNlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3F1b3RhX3RpbWVzJ10uc2V0VmFsdWUobnVsbCk7XG4gICAgICB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sndG90YWxfcHJpY2UnXS5zZXRWYWx1ZShudWxsKTtcbiAgICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydwcm9ncmFtX3ByaWNlJ10uc2V0VmFsdWUobnVsbCk7XG4gICAgfVxuICB9XG5cbiAgY2xlYW5Db21wb25lbnQoKXtcbiAgICB0aGlzLnJlc2V0TG9jYWxTdG9yYWdlKHRoaXMuY29udHJvbHMpO1xuICB9XG5cbiAgc2VsZWN0TGV2ZWxzKGRhdGFQYXltZW50OiBhbnkpe1xuICAgIGlmICh0aGlzLmNvZEZvcm1TdGVwRm91ci5nZXQoJ3BheW1lbnRfbWV0aG9kJyk/LnZhbHVlID09IDEpIHtcbiAgICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydxdW90YV90aW1lcyddLnNldFZhbHVlKGRhdGFQYXltZW50LmNvZGUpO1xuICAgICAgdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3RvdGFsX3ByaWNlJ10uc2V0VmFsdWUoZGF0YVBheW1lbnQuZW5yb2xsbWVudCk7XG4gICAgICB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncHJvZ3JhbV9wcmljZSddLnNldFZhbHVlKGRhdGFQYXltZW50LmZpbmFuY2VkX3ByaWNlKTtcbiAgICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydwYWlkX2xldmVsJ10uc2V0VmFsdWUoZGF0YVBheW1lbnQucGFpZF9sZXZlbCAtIDEpO1xuICAgICAgdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ2ZlZV9udW1iZXInXS5zZXRWYWx1ZShkYXRhUGF5bWVudC5mZWVfbnVtYmVyKTtcbiAgICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydxdW90YV9wcmljZSddLnNldFZhbHVlKGRhdGFQYXltZW50LnF1b3RhX3ByaWNlKTtcbiAgICAgIHRoaXMudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgIH0gZWxzZSBpZih0aGlzLmNvZEZvcm1TdGVwRm91ci5nZXQoJ3BheW1lbnRfbWV0aG9kJyk/LnZhbHVlID09IDIpe1xuICAgICAgdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3F1b3RhX3RpbWVzJ10uc2V0VmFsdWUoZGF0YVBheW1lbnQuY29kZSk7XG4gICAgICB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sndG90YWxfcHJpY2UnXS5zZXRWYWx1ZShkYXRhUGF5bWVudC5lbnJvbGxtZW50KTtcbiAgICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydwcm9ncmFtX3ByaWNlJ10uc2V0VmFsdWUoZGF0YVBheW1lbnQubm9ybWFsX3ByaWNlKTtcbiAgICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydwYWlkX2xldmVsJ10uc2V0VmFsdWUoZGF0YVBheW1lbnQucGFpZF9sZXZlbCAtIDEpO1xuICAgICAgdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ2ZlZV9udW1iZXInXS5zZXRWYWx1ZShkYXRhUGF5bWVudC5mZWVfbnVtYmVyKTtcbiAgICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydxdW90YV9wcmljZSddLnNldFZhbHVlKGRhdGFQYXltZW50LnF1b3RhX3ByaWNlKTtcbiAgICAgIHRoaXMudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgIH1cbiAgfVxuXG4gIGNsZWFySW5wdXRQYXltZW50KCl7XG4gICAgdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3Byb2dyYW1fcHJpY2UnXS5zZXRWYWx1ZShudWxsKTtcbiAgICB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncXVvdGFfdGltZXMnXS5zZXRWYWx1ZShudWxsKTtcbiAgICB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sndG90YWxfcHJpY2UnXS5zZXRWYWx1ZShudWxsKTtcbiAgfVxuXG4gIHNldERhdGFGcm9tUHJldml1c0NvZFByaWNlcygpe1xuICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydwYXltZW50X21ldGhvZCddLnNldFZhbHVlKHRoaXMuaW5pdGlhbERhdGEuY29kX3ByaWNlLmZlZV9udW1iZXIgPT0gMSA/IDIgOiAxKVxuICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWyd0b3RhbF9wcmljZSddLnNldFZhbHVlKHRoaXMuaW5pdGlhbERhdGEuY29kX3ByaWNlLmVucm9sbG1lbnQpO1xuICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydwcm9ncmFtX3ByaWNlJ10uc2V0VmFsdWUodGhpcy5pbml0aWFsRGF0YS5jb2RfcHJpY2UuZmVlX251bWJlciA9PSAxID8gdGhpcy5pbml0aWFsRGF0YS5jb2RfcHJpY2Uubm9ybWFsX3ByaWNlICA6IHRoaXMuaW5pdGlhbERhdGEuY29kX3ByaWNlLmZpbmFuY2VkX3ByaWNlKTtcbiAgICB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncGFpZF9sZXZlbCddLnNldFZhbHVlKHRoaXMuaW5pdGlhbERhdGEuY29kX3ByaWNlLnBhaWRfbGV2ZWwpO1xuICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydmZWVfbnVtYmVyJ10uc2V0VmFsdWUodGhpcy5pbml0aWFsRGF0YS5jb2RfcHJpY2UuZmVlX251bWJlcik7XG4gICAgdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3F1b3RhX3ByaWNlJ10uc2V0VmFsdWUodGhpcy5pbml0aWFsRGF0YS5jb2RfcHJpY2UucXVvdGFfcHJpY2UpO1xuXG4gIH1cblxufVxuXG4iLCI8ZGl2ICpuZ0lmPVwiaXNTZW1lc3RyYWxcIiBjbGFzcz1cIm0tMSBwLTIgYm9yZGVyLXJvdW5kLWxnIGJnLWJsdWUtNTAwIHRleHQtd2hpdGVcIj5cbiAgPHN0cm9uZz5Ob3RhOiA8L3N0cm9uZz5cbiAgRWwgdGlwbyBkZSBjdXJzbyBzZWxlY2Npb25hZG8gZnVlIHNlbWVzdHJhbCwgcG9yIGxvIHRhbnRvIGVsIGVzdHVkaWFudGUgZGViZSBwYWdhciBtYXRyw61jdWxhIHkgcHJpbWVyYSBjdW90YSAoTSZNKVxuPC9kaXY+XG5cbjxmb3JtIGF1dG9jb21wbGV0ZT1cIm9mZlwiIFtmb3JtR3JvdXBdPVwiY29kRm9ybVN0ZXBGb3VyXCIgY2xhc3M9XCJncmlkIG10LTJcIj5cblxuICA8ZGl2IGNsYXNzPVwiY29sLTEyXCI+XG4gICAgPGlwdC1zZWxlY3RcbiAgICAgIFtpbml0aWFsVmFsdWVdPVwiY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydwYXltZW50X21ldGhvZCddLnZhbHVlXCJcbiAgICAgIFtjb250cm9sXT1cImNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncGF5bWVudF9tZXRob2QnXVwiXG4gICAgICAoZXZlbnRTZWxlY3QpPVwic2VsZWN0UGF5bWVudE1ldGhvZCgkZXZlbnQpXCJcbiAgICAgIFtkYXRhXT1cInBheW1lbnRNZXRob2RzXCJcbiAgICAgIFtkZWZhdWx0VGV4dF09XCInTcOpdG9kbyBkZSBwYWdvJ1wiXG4gICAgPjwvaXB0LXNlbGVjdD5cbiAgICA8aXB0LWxvYWRlciAqbmdJZj1cImZlZVJlc3BvbnNlXCI+PC9pcHQtbG9hZGVyPlxuXG4gICAgPGRpdiBjbGFzcz1cImNvbC0xMlwiICpuZ0lmPVwidGhlcmVBcmVQbGFuc1wiPlxuICAgICAgPHAtdGFibGVcbiAgICAgICAgW3ZhbHVlXT1cImRhdGFQcmljZXNcIlxuICAgICAgICBbdGFibGVTdHlsZV09XCJ7J21pbi13aWR0aCc6ICcxMDAlJ31cIlxuICAgICAgICBbcm93SG92ZXJdPVwidHJ1ZVwiXG4gICAgICA+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJjYXB0aW9uXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICAgU2VsZWNjaW9uIGRlIG5pdmVsZXMgYSBjYW5jZWxhci5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImhlYWRlclwiPlxuICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgIDx0aCBjbGFzcz1cImJnLWJsdWUtMjAwIHRleHQtY2VudGVyIGZvbnQtbWVkaXVtIHB0LTIgcGItMlwiPkNhbmNlbGFyPC90aD5cbiAgICAgICAgICAgIDx0aCBjbGFzcz1cImJnLWJsdWUtMjAwIHRleHQtY2VudGVyIGZvbnQtbWVkaXVtIHB0LTIgcGItMlwiPkN1b3RhczwvdGg+XG4gICAgICAgICAgICA8dGggY2xhc3M9XCJiZy1ibHVlLTIwMCB0ZXh0LWNlbnRlciBmb250LW1lZGl1bSBwdC0yIHBiLTJcIj5BZG1pbjwvdGg+XG4gICAgICAgICAgPC90cj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImJvZHlcIiBsZXQtZGF0YT5cbiAgICAgICAgICA8dHI+XG4gICAgICAgICAgICA8dGQ+e3sgZGF0YS5wYWlkX2xldmVsIH19IE5pdmVsKGVzKTwvdGQ+XG4gICAgICAgICAgICA8dGQ+e3sgZGF0YS5mZWVfbnVtYmVyIH19PC90ZD5cbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cInB0LTIgcGItMlwiPlxuICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgcEJ1dHRvblxuICAgICAgICAgICAgICAgIHBSaXBwbGVcbiAgICAgICAgICAgICAgICBpY29uPVwicGkgcGktbW9uZXktYmlsbFwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJwLWJ1dHRvbi1zbSBwLWJ1dHRvbi1yb3VuZGVkXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0TGV2ZWxzKGRhdGEpXCJcbiAgICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICA8L3RyPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9wLXRhYmxlPlxuICAgIDwvZGl2PlxuXG4gICAgPCEtLSBbaW5pdGlhbFZhbHVlXT1cImNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncXVvdGFfdGltZXMnXS52YWx1ZVwiIC0tPlxuICAgIDwhLS0gPGlwdC1zZWxlY3QgKm5nSWY9XCJpc0ZpbmFuY2VkKCk7XCJcbiAgICAgIFtpbml0aWFsVmFsdWVdPVwiJzEnXCJcbiAgICAgIFtjb250cm9sXT1cImNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncXVvdGFfdGltZXMnXVwiXG4gICAgICAoZXZlbnRTZWxlY3QpPVwic2VsZWN0UXVvdGFzKCRldmVudClcIlxuICAgICAgW2RlZmF1bHRUZXh0XT1cIidOw7ptZXJvIGRlIGN1b3RhcydcIlxuICAgICAgW2RhdGFdPVwiY29kUHJpY2VzXCJcbiAgICAgID48L2lwdC1zZWxlY3Q+IC0tPlxuICAgIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJjb2wtMTJcIj5cbiAgICA8aXB0LWlucHV0XG4gICAgICBbaW5wdXRUeXBlXT1cIid0ZXh0J1wiXG4gICAgICBbcGxhY2VIb2xkZXJdPVwiJ01vbnRvIHRvdGFsIGRlIGxhIG1hdHLDrWN1bGEnXCJcbiAgICAgIFtjb250cm9sXT1cImNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sndG90YWxfcHJpY2UnXVwiXG4gICAgICBbd2l0aFBpcGVdPVwidHJ1ZVwiXG4gICAgPjwvaXB0LWlucHV0PlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwiY29sLTEyXCI+XG4gICAgPGlwdC1pbnB1dFxuICAgICAgW3dpdGhQaXBlXT1cInRydWVcIlxuICAgICAgW2lucHV0VHlwZV09XCIndGV4dCdcIlxuICAgICAgW2NvbnRyb2xdPVwiY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydwcm9ncmFtX3ByaWNlJ11cIlxuICAgICAgW3BsYWNlSG9sZGVyXT1cIidWYWxvciB0b3RhbCBkZWwgcHJvZ3JhbWEnXCJcbiAgICA+PC9pcHQtaW5wdXQ+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJjb2wtMTJcIj5cbiAgICA8aXB0LWlucHV0XG4gICAgICBvbmZvY3VzPVwiKHRoaXMudHlwZT0nZGF0ZScpXCJcbiAgICAgIFtpbnB1dFR5cGVdPVwiJ2RhdGUnXCJcbiAgICAgIFtjb250cm9sXT1cImNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncGF5bWVudF9kYXRlJ11cIlxuICAgICAgW3BsYWNlSG9sZGVyXT1cIidGZWNoYSBkZSBwYWdvJ1wiXG4gICAgPjwvaXB0LWlucHV0PlxuICA8L2Rpdj5cblxuICA8IS0tIFRhYmxhIGRlIGZpbmFuY2lhY2nDs24gLS0+XG4gIDxkaXYgY2xhc3M9XCJjb2wtMTJcIiAqbmdJZj1cImlzRmluYW5jaW5nXCI+XG4gICAgPHAtdGFibGVcbiAgICAgIFt2YWx1ZV09XCJkYXRhRmluYW5jaW5nXCJcbiAgICAgIFt0YWJsZVN0eWxlXT1cInsnbWluLXdpZHRoJzogJzEwMCUnfVwiXG4gICAgICBbcm93SG92ZXJdPVwidHJ1ZVwiXG4gICAgPlxuICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImNhcHRpb25cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgQ8OhbGN1bG8gZGUgY3VvdGFzXG4gICAgICAgICAgPGJ1dHRvbiBwQnV0dG9uIGNsYXNzPVwicC1idXR0b24tc20gbWwtYXV0b1wiIGxhYmVsPVwiTnVldm8gY8OhbGN1bG9cIiAoY2xpY2spPVwiY2FsY3VsYXRlTmV3UXVvdGVzKClcIiBsYWIgaWNvbj1cInBpIHBpLXJlcGxheVwiPjwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiaGVhZGVyXCI+XG4gICAgICAgIDx0cj5cbiAgICAgICAgICA8dGg+IzwvdGg+XG4gICAgICAgICAgPHRoPlZhbG9yPC90aD5cbiAgICAgICAgICA8dGg+RmVjaGE8L3RoPlxuICAgICAgICA8L3RyPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJib2R5XCIgbGV0LWRhdGE+XG4gICAgICAgIDx0cj5cbiAgICAgICAgICA8dGQ+e3sgZGF0YVswXSB9fTwvdGQ+XG4gICAgICAgICAgPHRkPnt7IGRhdGFbMV0gfX08L3RkPlxuICAgICAgICAgIDx0ZD57eyBkYXRhWzJdIH19PC90ZD5cbiAgICAgICAgPC90cj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9wLXRhYmxlPlxuICA8L2Rpdj5cbiAgPCEtLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tIC0tPlxuXG48L2Zvcm0+XG5cbjxkaXYgY2xhc3M9XCJmbGV4IG10LTMgYWxpZ24taXRlbXMtY2VudGVyIGdhcC0zXCI+XG4gIDxzcGFuICpuZ0lmPVwiY29kRm9ybVN0ZXBGb3VyLmludmFsaWQgJiYgY29kRm9ybVN0ZXBGb3VyLnRvdWNoZWRcIiBjbGFzcz1cInRleHQtcmVkLTUwMCBmb250LWJvbGQgdGV4dC1jZW50ZXIgbXQtMSBweS0yIGJnLXJlZC0xMDAgdy1mdWxsIGJvcmRlci1yb3VuZC14bFwiPnt7IGVycm9yTWVzc2FnZSB9fTwvc3Bhbj5cbiAgPGRpdiBjbGFzcz1cImZsZXggbWwtYXV0byBnYXAtMlwiPlxuICAgIDxidXR0b24gKm5nSWY9XCJjb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3BheW1lbnRfbWV0aG9kJ10udmFsdWUgPT09ICcxJ1wiIFtkaXNhYmxlZF09XCJpc0ZpbmFuY2luZyB8fCBjb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3BheW1lbnRfbWV0aG9kJ10udmFsdWUgIT09ICcxJ1widHlwZT1cInN1Ym1pdFwiIGNsYXNzPVwibWwtYXV0byBwLWJ1dHRvbi1zbSBwLWJ1dHRvbi1zZWNvbmRhcnlcIiAoY2xpY2spPVwic2hvd1RhYmxlKClcIiBwQnV0dG9uIGxhYmVsPVwiQ2FsY3VsYXIgY3VvdGFzXCIgaWNvbj1cInBpIHBpLXNsaWRlcnMtaFwiPjwvYnV0dG9uPlxuICAgIDxidXR0b24gW2Rpc2FibGVkXT1cIiFpc0ZpbmFuY2luZyAmJiBjb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3BheW1lbnRfbWV0aG9kJ10udmFsdWUgPT09ICcxJ1wiIHR5cGU9XCJzdWJtaXRcIiBbY2xhc3NdPVwiaXNFZGl0Q29kID8gJ21sLWF1dG8geWVsbG93LTMwMCBwLWJ1dHRvbi1zbScgOiAnbWwtYXV0byBwLWJ1dHRvbi1zbSdcIiAoY2xpY2spPVwic2VuZEZvcm0oKVwiIHBCdXR0b24gbGFiZWw9XCJTaWd1aWVudGVcIiBpY29uPVwicGkgcGktYXJyb3ctcmlnaHRcIj48L2J1dHRvbj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
389
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kLWZvcm0tc3RlcC1mb3VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2Rlc2lnbi1zeXN0ZW0vc3JjL2xpYi9jb2Qvc3RlcHMvY29kLWZvcm0tc3RlcC1mb3VyL2NvZC1mb3JtLXN0ZXAtZm91ci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9kZXNpZ24tc3lzdGVtL3NyYy9saWIvY29kL3N0ZXBzL2NvZC1mb3JtLXN0ZXAtZm91ci9jb2QtZm9ybS1zdGVwLWZvdXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBNEIsTUFBTSxlQUFlLENBQUM7QUFDekcsT0FBTyxFQUEwQixVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRSxPQUFPLElBQUksTUFBTSxhQUFhLENBQUM7QUFDL0IsT0FBTyxFQUFVLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNuQyxPQUFPLEVBQUUsWUFBWSxFQUFzQixNQUFNLDRCQUE0QixDQUFDO0FBQzlFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7OztBQXFCaEUsTUFBTSxPQUFPLHdCQUF5QixTQUFRLFlBQVk7SUEwQnhELFlBQ1UsRUFBZSxFQUNmLHNCQUE4QyxFQUM5QyxtQkFBd0MsRUFDeEMsZ0JBQWtDLEVBQ2xDLGVBQWdDLEVBQ2hDLGlCQUFvQyxFQUNwQyxXQUF3QjtRQUVoQyxLQUFLLEVBQUUsQ0FBQztRQVJBLE9BQUUsR0FBRixFQUFFLENBQWE7UUFDZiwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO1FBQzlDLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFDeEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxvQkFBZSxHQUFmLGVBQWUsQ0FB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QUFlO3NCQUF4QixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzLCBPbkNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Hcm91cCwgRm9ybUJ1aWxkZXIsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgU3dhbCBmcm9tICdzd2VldGFsZXJ0Mic7XG5pbXBvcnQgeyBmaWx0ZXIsIG1hcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ29kRm9ybVN0ZXBzLCBsb2NhbFN0b3JhZ2VWYWx1ZXMgfSBmcm9tICcuLi8uLi9sb2dpYy9jb2QtZm9ybS1zdGVwcyc7XG5pbXBvcnQgeyBDb2RGb3JtQ29udHJvbHMgfSBmcm9tICcuLi8uLi9sb2dpYy9jb2QtZm9ybS1jb250cm9scyc7XG5pbXBvcnQgeyBDYWxjdWxhdGVRdW90ZXNQYXJhbXMsIENhbGN1bGF0ZVF1b3Rlc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9sb2dpYy9jYWxjdWxhdGUtcXVvdGVzLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29tbXVuaWNhdG9yU2VydmljZSB9IGZyb20gJy4uLy4uL2xvZ2ljL2NvbW11bmljYXRvci5zZXJ2aWNlJztcbmltcG9ydCB7IENvZFByaWNlcywgQ29kUHJpY2VzUnEsIElPYnRhaW5Db2RQcmljZXNScSB9IGZyb20gJy4uLy4uLy4uL2NvcmUvbW9kZWxzL2NvbW1lcmNpYWwvY29tbWVyY2lhbC5tb2RlbCc7XG5pbXBvcnQgeyBQYXJhbWV0ZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9zZXJ2aWNlcy9wYXJhbWV0ZXJzLXNlcnZpY2UvcGFyYW1ldGVycy5zZXJ2aWNlJztcbmltcG9ydCB7IENvbW1lcmNpYWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9zZXJ2aWNlcy9jb21tZXJjaWFsLXNlcnZpY2UvY29tZXJjaWFsLnNlcnZpY2UnO1xuaW1wb3J0IHsgQmFzZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9jb3JlL3V0aWxzL2Jhc2Utc2VydmljZS9iYXNlLnNlcnZpY2UnO1xuXG5pbnRlcmZhY2UgQ291cnNlVHlwZXMge1xuICBjb2RlOiBudW1iZXI7XG4gIG5hbWU6IHN0cmluZztcbiAgbnVtYmVyX2NsYXNzOiBudW1iZXI7XG4gIGFjYWRlbWljX3BsYW46IG51bWJlcjtcbiAgdXBkYXRlZF9hdDogc3RyaW5nO1xuICBjcmVhdGVkX2F0OiBzdHJpbmc7XG59XG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtY29kLWZvcm0tc3RlcC1mb3VyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvZC1mb3JtLXN0ZXAtZm91ci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NvZC1mb3JtLXN0ZXAtZm91ci5jb21wb25lbnQuY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIENvZEZvcm1TdGVwRm91ckNvbXBvbmVudCBleHRlbmRzIENvZEZvcm1TdGVwcyBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIGlzRWRpdENvZD86IGJvb2xlYW47XG4gIEBJbnB1dCgpIGluaXRpYWxEYXRhPzogYW55O1xuICBAT3V0cHV0KCkgY2hhbmdlU3RlcEV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG4gIEBPdXRwdXQoKSBmaW5hbmNpbmdEYXRhID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgY29kRm9ybVN0ZXBGb3VyITogRm9ybUdyb3VwO1xuICBpc0NhbGN1bGF0ZVF1b3Rlc0J1dHRvbkNsaWNrZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgZXJyb3JNZXNzYWdlOiBzdHJpbmcgPSAnRmFsdGFuIGNhbXBvcyBwb3IgbGxlbmFyLic7XG4gIHBheW1lbnRNZXRob2RzOiBhbnlbXSA9IFtcbiAgICB7IGNvZGU6ICcxJywgbmFtZTogJ0ZpbmFuY2lhZG8nIH0sXG4gICAgeyBjb2RlOiAnMicsIG5hbWU6ICdDb250YWRvJyB9LFxuICBdO1xuICBkYXRhRmluYW5jaW5nOiBhbnlbXSA9IFtdO1xuICBpc0ZpbmFuY2luZzogYm9vbGVhbiA9IGZhbHNlO1xuICBpc1NlbWVzdHJhbDogYm9vbGVhbiA9IGZhbHNlO1xuICBjb2RQcmljZXM6IENvZFByaWNlc1tdID0gW107XG4gIGNvZFByaWNlc0ZpbHRlcjogQ29kUHJpY2VzW10gPSBbXTtcblxuICBkYXRhUHJpY2VzOmFueTtcbiAgZmVlUmVzcG9uc2U6IGJvb2xlYW4gPSBmYWxzZTtcbiAgdGhlcmVBcmVQbGFuczogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8vIENvbnRyb2xzIGRlbCBmb3JtdWxhcmlvXG4gIGNvbnRyb2xzID0gbmV3IENvZEZvcm1Db250cm9scygpLmNvbnRyb2xzWzNdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLFxuICAgIHByaXZhdGUgY2FsY3VsYXRlUXVvdGVzU2VydmljZTogQ2FsY3VsYXRlUXVvdGVzU2VydmljZSxcbiAgICBwcml2YXRlIGNvbW11bmljYXRvclNlcnZpY2U6IENvbW11bmljYXRvclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwYXJhbWV0ZXJTZXJ2aWNlOiBQYXJhbWV0ZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgY29kRm9ybUNvbnRyb2xzOiBDb2RGb3JtQ29udHJvbHMsXG4gICAgcHJpdmF0ZSBjb21tZXJjaWFsU2VydmljZTogQ29tbWVyY2lhbFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBiYXNlU2VydmljZTogQmFzZVNlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICB0aGlzLmluaXRGb3JtKCk7XG4gICAgdGhpcy5zdGFydExvY2FsU3RvcmFnZVdvcmsoKTtcbiAgICB0aGlzLnZhbGlkYXRlRXJyb3JzKCk7XG4gICAgLy8gdGhpcy5nZXRDb2RQcmljZXNCeUFncmVlbWVudCgpO1xuICAgIHRoaXMuZ2V0VmFsdWVzT2ZTdGVwT25lQ29tcG9uZW50KCk7XG4gICAgaWYgKGNoYW5nZXNbJ2luaXRpYWxEYXRhJ10pIHtcbiAgICAgIGlmICh0aGlzLmluaXRpYWxEYXRhICE9IG51bGwpIHtcbiAgICAgICAgaWYgKHRoaXMuaW5pdGlhbERhdGEuY29kX3ByaWNlICE9IG51bGwpIHtcbiAgICAgICAgICB0aGlzLnNldERhdGFGcm9tUHJldml1c0NvZFByaWNlcygpO1xuICAgICAgICAgIHRoaXMuZ2V0VmFsdWVzT2ZTdGVwT25lQ29tcG9uZW50KCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLy8gbmdPbkluaXQoKTogdm9pZCB7XG4gIC8vICAgLy8gdGhpcy5jbGVhbkNvbXBvbmVudCgpO1xuICAvLyAgIHRoaXMuaW5pdEZvcm0oKTtcbiAgLy8gICB0aGlzLnN0YXJ0TG9jYWxTdG9yYWdlV29yaygpO1xuICAvLyAgIHRoaXMudmFsaWRhdGVFcnJvcnMoKTtcbiAgLy8gICAvLyB0aGlzLmdldENvZFByaWNlc0J5QWdyZWVtZW50KCk7XG4gIC8vICAgdGhpcy5nZXRWYWx1ZXNPZlN0ZXBPbmVDb21wb25lbnQoKTtcbiAgLy8gfVxuXG5cbiAgZ2V0VmFsdWVzT2ZTdGVwT25lQ29tcG9uZW50KCkge1xuICAgIC8vIFRpcG8gZGUgY3Vyc28gc2VsZWNjaW9uYWRvXG4gICAgdGhpcy5jb21tdW5pY2F0b3JTZXJ2aWNlLmdldFNlbGVjdGVkQ291cnNlVHlwZSgpLnN1YnNjcmliZSh2YWx1ZSA9PiB7XG4gICAgICB0aGlzLnBhcmFtZXRlclNlcnZpY2UuZ2V0Q291cnNlc1R5cGVzKCkucGlwZShcbiAgICAgICAgbWFwKCAocmVzcG9uc2U6IGFueSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGNvdXJzZVR5cGVzOiBDb3Vyc2VUeXBlc1tdID0gcmVzcG9uc2UuZGF0YTtcbiAgICAgICAgICByZXR1cm4gY291cnNlVHlwZXMuZmlsdGVyKCAoeyBuYW1lIH0pID0+IG5hbWUuaW5jbHVkZXMoJ1NlbWVzdHJhbCcpIClcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoIChjb3Vyc2VUeXBlczogQ291cnNlVHlwZXNbXSkgPT4ge1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNvdXJzZVR5cGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgaWYgKGNvdXJzZVR5cGVzW2ldLmNvZGUudG9TdHJpbmcoKSA9PT0gdmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuaXNTZW1lc3RyYWwgPSB0cnVlO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaXNTZW1lc3RyYWwgPSBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgfSk7XG5cbiAgICAvLyBDb252ZW5pbyBzZWxlY2Npb25hZG9cbiAgICAvLyB0aGlzLmNvbW11bmljYXRvclNlcnZpY2UuZ2V0U2VsZWN0ZWRBZ3JlZW1lbnQoKS5zdWJzY3JpYmUodmFsdWUgPT4ge1xuICAgIC8vICAgdGhpcy5nZXRDb2RQcmljZXNCeUFncmVlbWVudCh2YWx1ZSk7XG4gICAgLy8gfSk7XG4gIH1cblxuICBnZXRDb2RQcmljZXNCeUFncmVlbWVudChhZ3JlZW1lbnQ/OiBzdHJpbmcpIHtcbiAgICBsZXQgYWdyZWVtZW50U2VsZWN0ZWQ6IHN0cmluZyB8IG51bGw7XG4gICAgaWYgKGFncmVlbWVudCkge1xuICAgICAgYWdyZWVtZW50U2VsZWN0ZWQgPSBhZ3JlZW1lbnQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIGFncmVlbWVudFNlbGVjdGVkID0gdGhpcy5sb2NhbFN0b3JhZ2VDT0QuZ2V0Q29kRm9ybURhdGEoMSwgJ2FncmVlbWVudF9ieV9jYXRlZ29yeScpXG4gICAgfVxuXG4gICAgaWYgKHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydwYXltZW50X21ldGhvZCddLnZhbHVlID09PSAnMScpIHtcbiAgICAgIGxldCByZXF1ZXN0OiBDb2RQcmljZXNScSA9IHtcbiAgICAgICAgYWdyZWVtZW50OiAgICAgTnVtYmVyKGFncmVlbWVudFNlbGVjdGVkKSxcbiAgICAgICAgcGF5bWVudF9tZXRob2Q6ICdjdW90YSdcbiAgICAgIH1cbiAgICAgIHRoaXMuY29tbWVyY2lhbFNlcnZpY2UuZ2V0Q29kUHJpY2VzQnlBZ3JlZW1lbnRUeXBlUGF5bWVudChyZXF1ZXN0KS5zdWJzY3JpYmUoKHJlc3BvbnNlOiBhbnkpID0+e1xuICAgICAgICB0aGlzLmNvZFByaWNlcyA9IHJlc3BvbnNlLmRhdGE7XG4gICAgICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydxdW90YV90aW1lcyddLnNldFZhbHVlKHRoaXMuY29kUHJpY2VzWzBdLmNvZGUpXG4gICAgICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydwcm9ncmFtX3ByaWNlJ10uc2V0VmFsdWUodGhpcy5jb2RQcmljZXNbMF0ubm9ybWFsX3ByaWNlKVxuICAgICAgfSlcbiAgICAgIH1lbHNlIHtcbiAgICAgICAgaWYgKHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydwYXltZW50X21ldGhvZCddLnZhbHVlID09PSAnMicpIHtcbiAgICAgICAgICBsZXQgcmVxdWVzdDogQ29kUHJpY2VzUnEgPSB7XG4gICAgICAgICAgICBhZ3JlZW1lbnQ6ICAgICBOdW1iZXIoYWdyZWVtZW50U2VsZWN0ZWQpLFxuICAgICAgICAgICAgcGF5bWVudF9tZXRob2Q6ICdjb250YSdcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5jb21tZXJjaWFsU2VydmljZS5nZXRDb2RQcmljZXNCeUFncmVlbWVudFR5cGVQYXltZW50KHJlcXVlc3QpLnN1YnNjcmliZSgocmVzcG9uc2U6IGFueSkgPT57XG4gICAgICAgICAgICB0aGlzLmNvZFByaWNlcyA9IHJlc3BvbnNlLmRhdGE7XG4gICAgICAgICAgICB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncXVvdGFfdGltZXMnXS5zZXRWYWx1ZSh0aGlzLmNvZFByaWNlc1swXS5jb2RlKTtcbiAgICAgICAgICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydwcm9ncmFtX3ByaWNlJ10uc2V0VmFsdWUodGhpcy5jb2RQcmljZXNbMF0ubm9ybWFsX3ByaWNlKVxuICAgICAgICAgICAgdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3RvdGFsX3ByaWNlJ10uc2V0VmFsdWUodGhpcy5jb2RQcmljZXNbMF0uZW5yb2xsbWVudCk7XG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgIH1cblxuXG4gICAgLy8gdGhpcy5jb21tZXJjaWFsU2VydmljZS5nZXRDb2RQcmljZXNCeUFncmVlbWVudChOdW1iZXIoYWdyZWVtZW50U2VsZWN0ZWQpKS5zdWJzY3JpYmUoe1xuICAgIC8vICAgbmV4dDogKHJlc3BvbnNlOiBhbnkpID0+IHtcbiAgICAvLyAgICAgaWYgKHJlc3BvbnNlLmRhdGEpIHtcbiAgICAvLyAgICAgICBjb25zdCBjb2RQcmljZXM6IENvZFByaWNlc1tdID0gcmVzcG9uc2UuZGF0YTtcbiAgICAvLyAgICAgICB0aGlzLmNvZFByaWNlcyA9IGNvZFByaWNlcztcbiAgICAvLyAgICAgICBpZiAodGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3BheW1lbnRfbWV0aG9kJ10udmFsdWUgPT09ICcxJykge1xuICAgIC8vICAgICAgICAgICBjb25zdCBhdXggPSB0aGlzLmNvZFByaWNlcy5maWx0ZXIoY29kUHJpY2UgPT4gY29kUHJpY2UuYWdyZWVtZW50ID09PSBOdW1iZXIoYWdyZWVtZW50U2VsZWN0ZWQpKVswXTtcbiAgICAvLyAgICAgICAgICAgdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3F1b3RhX3RpbWVzJ10uc2V0VmFsdWUoYXV4LmNvZGUpXG4gICAgLy8gICAgICAgICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydwcm9ncmFtX3ByaWNlJ10uc2V0VmFsdWUoYXV4Lm5vcm1hbF9wcmljZSlcbiAgICAvLyAgICAgICAgIH1lbHNlIHtcbiAgICAvLyAgICAgICAgICAgaWYgKHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydwYXltZW50X21ldGhvZCddLnZhbHVlID09PSAnMicpIHtcbiAgICAvLyAgICAgICAgICAgICAvLyBjb25zdCBhdXggPSB0aGlzLmNvZFByaWNlcy5maWx0ZXIoY29kUHJpY2UgPT4gY29kUHJpY2UuYWdyZWVtZW50ID09PSBOdW1iZXIoYWdyZWVtZW50U2VsZWN0ZWQpKVswXTtcbiAgICAvLyAgICAgICAgICAgICBjb25zdCBhdXggPSB0aGlzLmNvZFByaWNlcy5maWx0ZXIoY29kUHJpY2UgPT4gY29kUHJpY2UuZmVlX251bWJlciA9PT0gMSlbMF07XG4gICAgLy8gICAgICAgICAgICAgdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3F1b3RhX3RpbWVzJ10uc2V0VmFsdWUoYXV4LmNvZGUpO1xuICAgIC8vICAgICAgICAgICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydwcm9ncmFtX3ByaWNlJ10uc2V0VmFsdWUoYXV4Lm5vcm1hbF9wcmljZSlcbiAgICAvLyAgICAgICAgICAgICB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sndG90YWxfcHJpY2UnXS5zZXRWYWx1ZShhdXguZW5yb2xsbWVudCk7XG4gICAgLy8gICAgICAgICAgIH1cbiAgICAvLyAgICAgICAgIH1cbiAgICAvLyAgICAgICB9XG4gICAgLy8gICAgIH0sXG4gICAgLy8gICBlcnJvcjogKGVycikgPT4gY29uc29sZS5sb2coZXJyKVxuICAgIC8vIH0pXG4gIH1cblxuICB2YWxpZGF0ZUVycm9ycygpIHtcbiAgICB0aGlzLmNvZEZvcm1TdGVwRm91ci52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKGNoYW5nZXMgPT4ge1xuICAgICAgaWYgKHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydxdW90YV90aW1lcyddLmhhc0Vycm9yKCdtaW4nKSkge1xuICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICdMYSBjYW50aWRhZCBkZSBjdW90YXMgbcOtbmltYXMgZGViZSBzZXIgMSc7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydxdW90YV90aW1lcyddLmhhc0Vycm9yKCdtYXgnKSkge1xuICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICdMYSBjYW50aWRhZCBkZSBjdW90YXMgbm8gZGViZSBzZXIgc3VwZXJpb3IgYSAxMic7XG4gICAgICB9XG4gICAgICAgZWxzZSB7XG4gICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJ0ZhbHRhbiBjYW1wb3MgcG9yIGxsZW5hcic7XG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIHNlYXJjaFByaWNlQnlUeXBlUGF5bWVudChhZ3JlZW1lbnRTZWxlY3RlZDogYW55LCB0eXBlOiBzdHJpbmcsIGNoYW5nZTogc3RyaW5nKXtcbiAgICBsZXQgcmVxdWVzdDogQ29kUHJpY2VzUnEgPSB7XG4gICAgICBhZ3JlZW1lbnQ6ICAgICBOdW1iZXIoYWdyZWVtZW50U2VsZWN0ZWQpLFxuICAgICAgcGF5bWVudF9tZXRob2Q6IHR5cGVcbiAgICB9XG4gICAgdGhpcy5jb21tZXJjaWFsU2VydmljZS5nZXRDb2RQcmljZXNCeUFncmVlbWVudFR5cGVQYXltZW50KHJlcXVlc3QpLnN1YnNjcmliZSgocmVzcG9uc2U6IGFueSkgPT57XG4gICAgICB0aGlzLmNvZFByaWNlcyA9IHJlc3BvbnNlLmRhdGE7XG4gICAgfSlcbiAgfVxuXG4gIGluaXRGb3JtKCkge1xuICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICBwcm9ncmFtX3ByaWNlOiBbeyB2YWx1ZTogJycsIGRpc2FibGVkOiB0cnVlIH0sIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgICBwYXltZW50X2RhdGU6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcbiAgICAgIHBheW1lbnRfbWV0aG9kOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgICBxdW90YV90aW1lczogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuICAgICAgdG90YWxfcHJpY2U6IFt7IHZhbHVlOiAnJywgZGlzYWJsZWQ6IHRydWUgfSwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcbiAgICAgIHBhaWRfbGV2ZWw6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcbiAgICAgIHF1b3RhX3ByaWNlOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgICBmZWVfbnVtYmVyOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgfSk7XG5cbiAgICB0aGlzLmxpc3RlblBheW1lbnRNZXRob2RGaWVsZCgpO1xuICB9XG5cbiAgbGlzdGVuUGF5bWVudE1ldGhvZEZpZWxkKCkge1xuICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmNvZEZvcm1TdGVwRm91ci5nZXQoJ3BheW1lbnRfbWV0aG9kJyk7XG4gICAgY29udHJvbD8udmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgoY2hhbmdlKSA9PiB7XG4gICAgICAvLyBGaW5hbmNpYWRvXG4gICAgICBpZiAoY2hhbmdlID09PSAnMScpIHtcbiAgICAgICAgLy8gUG9uZXIgdmFsaWRhY2lvbmVzXG4gICAgICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydwcm9ncmFtX3ByaWNlJ10uc2V0VmFsaWRhdG9ycyhbVmFsaWRhdG9ycy5yZXF1aXJlZF0pO1xuICAgICAgICB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncGF5bWVudF9kYXRlJ10uc2V0VmFsaWRhdG9ycyhbVmFsaWRhdG9ycy5yZXF1aXJlZF0pO1xuICAgICAgICB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncXVvdGFfdGltZXMnXS5zZXRWYWxpZGF0b3JzKFtWYWxpZGF0b3JzLnJlcXVpcmVkXSk7XG4gICAgICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWyd0b3RhbF9wcmljZSddLnNldFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMucmVxdWlyZWRdKTtcblxuICAgICAgICAvLyBBY3R1YWxpemFyIHBhcmEgcXVlIHNlIHRvbWVuIGxvcyBjYW1iaW9zXG4gICAgICAgIHRoaXMudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuXG4gICAgICAgIC8vIEFjdHVhbGl6YXIgbG9zIGNvbnRyb2xzIGdsb2JhbGVzXG4gICAgICAgIHRoaXMudXBkYXRlR2xvYmFsQ29udHJvbHMoY2hhbmdlKVxuICAgICAgfVxuXG4gICAgICAvLyBkZSBjb250YWRvXG4gICAgICBpZiAoY2hhbmdlID09PSAnMicpIHtcbiAgICAgICAgLy8gUXVpdGFyIGxhcyB2YWxpZGFjaW9uZXNcbiAgICAgICAgdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3Byb2dyYW1fcHJpY2UnXS5zZXRWYWxpZGF0b3JzKFtWYWxpZGF0b3JzLnJlcXVpcmVkXSk7XG4gICAgICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydwYXltZW50X2RhdGUnXS5zZXRWYWxpZGF0b3JzKFtWYWxpZGF0b3JzLnJlcXVpcmVkXSk7XG4gICAgICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydxdW90YV90aW1lcyddLmNsZWFyVmFsaWRhdG9ycygpO1xuICAgICAgICB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sndG90YWxfcHJpY2UnXS5zZXRWYWxpZGF0b3JzKFtWYWxpZGF0b3JzLnJlcXVpcmVkXSk7XG5cbiAgICAgICAgLy8gQWN0dWFsaXphciBwYXJhIHF1ZSBzZSB0b21lbiBsb3MgY2FtYmlvc1xuICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcblxuICAgICAgICAvLyBBY3R1YWxpemFyIGxvcyBjb250cm9scyBnbG9iYWxlc1xuICAgICAgICB0aGlzLnVwZGF0ZUdsb2JhbENvbnRyb2xzKGNoYW5nZSlcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHVwZGF0ZUdsb2JhbENvbnRyb2xzKGNoYW5nZTogc3RyaW5nKSB7XG4gICAgbGV0IGNvbnRyb2xzID0gdGhpcy5jb250cm9scy5maWx0ZXIoY29udHJvbCA9PiBjb250cm9sLm5hbWUgIT09ICdwYXltZW50X21ldGhvZCcpO1xuICAgIGNvbnRyb2xzLmZvckVhY2goY29udHJvbCA9PiB7XG4gICAgICBpZiAoY2hhbmdlID09PSAnMScpIHRoaXMuY29kRm9ybUNvbnRyb2xzLmNoYW5nZVZhbHVlKDQsIGNvbnRyb2wubmFtZSwgdHJ1ZSlcbiAgICAgIGlmIChjaGFuZ2UgPT09ICcyJykge1xuICAgICAgICBpZiAoY29udHJvbC5uYW1lID09PSAncXVvdGFfdGltZXMnKSB0aGlzLmNvZEZvcm1Db250cm9scy5jaGFuZ2VWYWx1ZSg0LCBjb250cm9sLm5hbWUsIGZhbHNlKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKSB7XG4gICAgdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3Byb2dyYW1fcHJpY2UnXS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3BheW1lbnRfZGF0ZSddLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncXVvdGFfdGltZXMnXS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3RvdGFsX3ByaWNlJ10udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICB9XG5cbiAgc3RhcnRMb2NhbFN0b3JhZ2VXb3JrKCkge1xuICAgIHRoaXMuY29udHJvbHMuZm9yRWFjaChjb250cm9sID0+IHtcbiAgICAgIGxldCBsb2NhbFN0b3JhZ2VWYWx1ZTogbG9jYWxTdG9yYWdlVmFsdWVzID0gdGhpcy5yZWFkQW5kV3JpdGVMUyg0LCBjb250cm9sLm5hbWUpO1xuICAgICAgdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbY29udHJvbC5uYW1lXS5zZXRWYWx1ZShsb2NhbFN0b3JhZ2VWYWx1ZS52YWx1ZSk7XG4gICAgICB0aGlzLmxpc3RlbkZvcm1DaGFuZ2VzKDQsIGNvbnRyb2wubmFtZSwgdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbY29udHJvbC5uYW1lXS52YWx1ZUNoYW5nZXMpO1xuICAgIH0pO1xuICB9XG5cbiAgc2hvd1RhYmxlKCkge1xuICAgIHRoaXMuaXNDYWxjdWxhdGVRdW90ZXNCdXR0b25DbGlja2VkID0gdHJ1ZTtcbiAgICBjb25zdCB0b3RhbF9wcmljZSA9IHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWyd0b3RhbF9wcmljZSddLnZhbHVlO1xuICAgIGlmICgodG90YWxfcHJpY2UgPT09ICdudWxsJykgfHwgdGhpcy5jb2RGb3JtU3RlcEZvdXIuaW52YWxpZCkge1xuICAgICAgU3dhbC5maXJlKHtcbiAgICAgICAgdGl0bGU6ICdFcnJvciB0YWJsZScsXG4gICAgICAgIHRleHQ6ICdEZWJlcyBpbmdyZXNhciBlbCBtb250byB0b3RhbCBkZSBsYSBtYXRyw61jdWxhIHkgbGEgY3VvdGEgaW5pY2lhbCcsXG4gICAgICAgIGljb246ICdlcnJvcidcbiAgICAgIH0pXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gQ2FsY3VsYXIgY3VvdGFzXG4gICAgdGhpcy5kYXRhRmluYW5jaW5nID0gW107XG4gICAgLy8gY29uc3QgcXVvdGFWYWx1ZXMgPSB0aGlzLmNvZFByaWNlcy5maWx0ZXIoY29kUHJpY2UgPT4gY29kUHJpY2UuY29kZSA9PT0gTnVtYmVyKHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydxdW90YV90aW1lcyddLnZhbHVlKSlbMF0ucXVvdGFfcHJpY2U7XG4gICAgLy8gbGV0IHBhcmFtczogQ2FsY3VsYXRlUXVvdGVzUGFyYW1zID0ge1xuICAgIC8vICAgZGF0ZTogbmV3IERhdGUodGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3BheW1lbnRfZGF0ZSddLnZhbHVlKSxcbiAgICAvLyAgIHF1b3RhVmFsdWVzLFxuICAgIC8vICAgcXVvdGFUaW1lczogdGhpcy5jb2RQcmljZXMuZmlsdGVyKGNvZFByaWNlID0+IGNvZFByaWNlLmNvZGUgPT09IE51bWJlcih0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncXVvdGFfdGltZXMnXS52YWx1ZSkpWzBdLmZlZV9udW1iZXIsXG4gICAgLy8gICB0b3RhbFByaWNlOiB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sndG90YWxfcHJpY2UnXS52YWx1ZSxcbiAgICAvLyB9XG5cbiAgICBsZXQgcGFyYW1zOiBDYWxjdWxhdGVRdW90ZXNQYXJhbXMgPSB7XG4gICAgICBkYXRlOiBuZXcgRGF0ZSh0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncGF5bWVudF9kYXRlJ10udmFsdWUpLFxuICAgICAgcXVvdGFWYWx1ZXM6IE51bWJlcih0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncXVvdGFfcHJpY2UnXS52YWx1ZSksXG4gICAgICBxdW90YVRpbWVzOiBOdW1iZXIodGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ2ZlZV9udW1iZXInXS52YWx1ZSksXG4gICAgICB0b3RhbFByaWNlOiB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sndG90YWxfcHJpY2UnXS52YWx1ZSxcbiAgICB9XG5cbiAgICB0aGlzLmRhdGFGaW5hbmNpbmcgPSB0aGlzLmNhbGN1bGF0ZVF1b3Rlc1NlcnZpY2UuY2FsY3VsYXRlUXVvdGVzKHBhcmFtcyk7XG4gICAgdGhpcy5pc0ZpbmFuY2luZyA9IHRydWU7XG4gICAgdGhpcy5maW5hbmNpbmdEYXRhLmVtaXQodGhpcy5kYXRhRmluYW5jaW5nKTtcbiAgfVxuXG4gIGNhbGN1bGF0ZU5ld1F1b3RlcygpIHtcbiAgICB0aGlzLmlzQ2FsY3VsYXRlUXVvdGVzQnV0dG9uQ2xpY2tlZCA9IGZhbHNlO1xuICAgIHRoaXMuaXNGaW5hbmNpbmcgPSBmYWxzZTtcbiAgICB0aGlzLmZpbmFuY2luZ0RhdGEuZW1pdChudWxsKTtcbiAgfVxuXG4gIHNlbmRGb3JtKCkge1xuICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLm1hcmtBbGxBc1RvdWNoZWQoKTtcbiAgICBpZiAodGhpcy5jb2RGb3JtU3RlcEZvdXIuaW52YWxpZCkgcmV0dXJuO1xuICAgIC8vIE1vdmVybm9zIGFsIHBhc28gNVxuICAgIHRoaXMuY2hhbmdlU3RlcEV2ZW50LmVtaXQoNCk7XG4gIH1cblxuICBpc0ZpbmFuY2VkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncGF5bWVudF9tZXRob2QnXS52YWx1ZSA9PSAxO1xuICB9XG5cbiAgLy8gRXZlbnRvcyBkZWwgc2VsZWN0XG4gIHNlbGVjdFBheW1lbnRNZXRob2QocGF5bWVudE1ldGhvZDogYW55KSB7XG4gICAgdGhpcy5mZWVSZXNwb25zZSA9IHRydWU7XG4gICAgdGhpcy50aGVyZUFyZVBsYW5zID0gZmFsc2U7XG5cbiAgICBpZiAocGF5bWVudE1ldGhvZCAhPT0gJycpIHtcbiAgICAgIGNvbnN0IHJlcXVlc3Q6IElPYnRhaW5Db2RQcmljZXNScSA9IHtcbiAgICAgICAgdG9rZW46ICAgICAgICAgICAgdGhpcy5iYXNlU2VydmljZS5nZXRVc2VyVG9rZW4oKSxcbiAgICAgICAgY291cnNlX3R5cGU6ICAgICAgTnVtYmVyKHRoaXMubG9jYWxTdG9yYWdlQ09ELmdldENvZEZvcm1EYXRhKDEsICdjb3Vyc2VfdHlwZScpKSxcbiAgICAgICAgYWdyZWVtZW50OiAgICAgICAgTnVtYmVyKHRoaXMubG9jYWxTdG9yYWdlQ09ELmdldENvZEZvcm1EYXRhKDEsICdhZ3JlZW1lbnRfYnlfY2F0ZWdvcnknKSksXG4gICAgICAgIGNvdXJzZV9tb2RhbGl0eTogIE51bWJlcih0aGlzLmxvY2FsU3RvcmFnZUNPRC5nZXRDb2RGb3JtRGF0YSgxLCAnY291cnNlX21vZGFsaXR5JykpLFxuICAgICAgICBwYXltZW50X21ldGhvZDogICBwYXJzZUludChwYXltZW50TWV0aG9kKVxuICAgICAgfVxuICAgICAgdGhpcy5jb21tZXJjaWFsU2VydmljZS5PYnRhaW5Db2RQcmljZXMocmVxdWVzdCkuc3Vic2NyaWJlKChyZXNwb25zZSk9PiB7XG4gICAgICAgIGlmIChyZXNwb25zZS5kYXRhICE9IG51bGwpIHtcbiAgICAgICAgICB0aGlzLmRhdGFQcmljZXMgPSByZXNwb25zZS5kYXRhO1xuICAgICAgICAgIHRoaXMuZmVlUmVzcG9uc2UgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLnRoZXJlQXJlUGxhbnMgPSB0cnVlO1xuICAgICAgICB9ZWxzZSB7XG4gICAgICAgICAgdGhpcy50aGVyZUFyZVBsYW5zID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5mZWVSZXNwb25zZSA9IGZhbHNlO1xuICAgICAgICAgIFN3YWwuZmlyZSh7XG4gICAgICAgICAgICBwb3NpdGlvbjogJ2NlbnRlcicsXG4gICAgICAgICAgICBpY29uOiAnd2FybmluZycsXG4gICAgICAgICAgICB0aXRsZTpcbiAgICAgICAgICAgICAgJzxwIHN0eWxlPVwiZm9udC1mYW1pbHk6IFBvcHBpbnNcIlwiPk9vcHMuLiBubyBoYXkgcGxhbmVzIGRlIHBhZ29zLCBcXG4gZW4gZWwgY3Vyc28gZWxlZ2lkby48L3A+JyxcbiAgICAgICAgICAgIHNob3dDb25maXJtQnV0dG9uOiBmYWxzZSxcbiAgICAgICAgICAgIHRpbWVyOiAzMDAwLFxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHRoaXMuY2xlYXJJbnB1dFBheW1lbnQoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncGF5bWVudF9tZXRob2QnXS5zZXRWYWx1ZShwYXltZW50TWV0aG9kKTtcbiAgICAgIC8vIHRoaXMuZ2V0Q29kUHJpY2VzQnlBZ3JlZW1lbnQoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3BheW1lbnRfbWV0aG9kJ10uc2V0VmFsdWUobnVsbCk7XG4gICAgfVxuICB9XG5cbiAgc2VsZWN0UXVvdGFzKHF1b3Rhczogc3RyaW5nKSB7XG4gICAgaWYgKHF1b3RhcyAhPT0gJ07Dum1lcm8gZGUgY3VvdGFzJykge1xuICAgICAgY29uc3QgY29kUHJpY2U6IENvZFByaWNlc1tdID0gdGhpcy5jb2RQcmljZXMuZmlsdGVyKGNvZFByaWNlID0+IGNvZFByaWNlLmNvZGUgPT09IE51bWJlcihxdW90YXMpKTtcbiAgICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydxdW90YV90aW1lcyddLnNldFZhbHVlKGNvZFByaWNlWzBdLmNvZGUpO1xuICAgICAgdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3RvdGFsX3ByaWNlJ10uc2V0VmFsdWUoY29kUHJpY2VbMF0uZW5yb2xsbWVudCk7XG4gICAgICB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncHJvZ3JhbV9wcmljZSddLnNldFZhbHVlKGNvZFByaWNlWzBdLmZpbmFuY2VkX3ByaWNlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3F1b3RhX3RpbWVzJ10uc2V0VmFsdWUobnVsbCk7XG4gICAgICB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sndG90YWxfcHJpY2UnXS5zZXRWYWx1ZShudWxsKTtcbiAgICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydwcm9ncmFtX3ByaWNlJ10uc2V0VmFsdWUobnVsbCk7XG4gICAgfVxuICB9XG5cbiAgY2xlYW5Db21wb25lbnQoKXtcbiAgICB0aGlzLnJlc2V0TG9jYWxTdG9yYWdlKHRoaXMuY29udHJvbHMpO1xuICB9XG5cbiAgc2VsZWN0TGV2ZWxzKGRhdGFQYXltZW50OiBhbnkpe1xuICAgIGlmICh0aGlzLmNvZEZvcm1TdGVwRm91ci5nZXQoJ3BheW1lbnRfbWV0aG9kJyk/LnZhbHVlID09IDEpIHtcbiAgICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydxdW90YV90aW1lcyddLnNldFZhbHVlKGRhdGFQYXltZW50LmNvZGUpO1xuICAgICAgdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3RvdGFsX3ByaWNlJ10uc2V0VmFsdWUoZGF0YVBheW1lbnQuZW5yb2xsbWVudCk7XG4gICAgICB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncHJvZ3JhbV9wcmljZSddLnNldFZhbHVlKGRhdGFQYXltZW50LmZpbmFuY2VkX3ByaWNlKTtcbiAgICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydwYWlkX2xldmVsJ10uc2V0VmFsdWUoZGF0YVBheW1lbnQucGFpZF9sZXZlbCAtIDEpO1xuICAgICAgdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ2ZlZV9udW1iZXInXS5zZXRWYWx1ZShkYXRhUGF5bWVudC5mZWVfbnVtYmVyKTtcbiAgICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydxdW90YV9wcmljZSddLnNldFZhbHVlKGRhdGFQYXltZW50LnF1b3RhX3ByaWNlKTtcbiAgICAgIHRoaXMudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgIH0gZWxzZSBpZih0aGlzLmNvZEZvcm1TdGVwRm91ci5nZXQoJ3BheW1lbnRfbWV0aG9kJyk/LnZhbHVlID09IDIpe1xuICAgICAgdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3F1b3RhX3RpbWVzJ10uc2V0VmFsdWUoZGF0YVBheW1lbnQuY29kZSk7XG4gICAgICB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sndG90YWxfcHJpY2UnXS5zZXRWYWx1ZShkYXRhUGF5bWVudC5lbnJvbGxtZW50KTtcbiAgICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydwcm9ncmFtX3ByaWNlJ10uc2V0VmFsdWUoZGF0YVBheW1lbnQubm9ybWFsX3ByaWNlKTtcbiAgICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydwYWlkX2xldmVsJ10uc2V0VmFsdWUoZGF0YVBheW1lbnQucGFpZF9sZXZlbCAtIDEpO1xuICAgICAgdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ2ZlZV9udW1iZXInXS5zZXRWYWx1ZShkYXRhUGF5bWVudC5mZWVfbnVtYmVyKTtcbiAgICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydxdW90YV9wcmljZSddLnNldFZhbHVlKGRhdGFQYXltZW50LnF1b3RhX3ByaWNlKTtcbiAgICAgIHRoaXMudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgIH1cbiAgfVxuXG4gIGNsZWFySW5wdXRQYXltZW50KCl7XG4gICAgdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3Byb2dyYW1fcHJpY2UnXS5zZXRWYWx1ZShudWxsKTtcbiAgICB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncXVvdGFfdGltZXMnXS5zZXRWYWx1ZShudWxsKTtcbiAgICB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sndG90YWxfcHJpY2UnXS5zZXRWYWx1ZShudWxsKTtcbiAgfVxuXG4gIHNldERhdGFGcm9tUHJldml1c0NvZFByaWNlcygpe1xuICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydwYXltZW50X21ldGhvZCddLnNldFZhbHVlKHRoaXMuaW5pdGlhbERhdGEuY29kX3BheW1lbnQubGVuZ2h0ID09IDEgPyAyIDogMSlcbiAgICB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sndG90YWxfcHJpY2UnXS5zZXRWYWx1ZSh0aGlzLmluaXRpYWxEYXRhLmNvZF9wcmljZS5lbnJvbGxtZW50KTtcbiAgICB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncHJvZ3JhbV9wcmljZSddLnNldFZhbHVlKHRoaXMuaW5pdGlhbERhdGEuY29kX3BheW1lbnQubGVuZ2h0ID09IDEgPyB0aGlzLmluaXRpYWxEYXRhLmNvZF9wcmljZS5ub3JtYWxfcHJpY2UgIDogdGhpcy5pbml0aWFsRGF0YS5jb2RfcHJpY2UuZmluYW5jZWRfcHJpY2UpO1xuICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydwYWlkX2xldmVsJ10uc2V0VmFsdWUodGhpcy5pbml0aWFsRGF0YS5jb2RfcHJpY2UucGFpZF9sZXZlbCk7XG4gICAgdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ2ZlZV9udW1iZXInXS5zZXRWYWx1ZSh0aGlzLmluaXRpYWxEYXRhLmNvZF9wYXltZW50LmxlbmdodCA9PSAxID8gMSA6IHRoaXMuaW5pdGlhbERhdGEuY29kX3ByaWNlLmZlZV9udW1iZXIpO1xuICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydxdW90YV9wcmljZSddLnNldFZhbHVlKHRoaXMuaW5pdGlhbERhdGEuY29kX3ByaWNlLnF1b3RhX3ByaWNlKTtcbiAgICB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncGF5bWVudF9kYXRlJ10uc2V0VmFsdWUodGhpcy5pbml0aWFsRGF0YS5jb2RfcGF5bWVudFswXS50aW1lbHlfZGF0ZSk7XG4gIH1cblxufVxuXG4iLCI8ZGl2ICpuZ0lmPVwiaXNTZW1lc3RyYWxcIiBjbGFzcz1cIm0tMSBwLTIgYm9yZGVyLXJvdW5kLWxnIGJnLWJsdWUtNTAwIHRleHQtd2hpdGVcIj5cbiAgPHN0cm9uZz5Ob3RhOiA8L3N0cm9uZz5cbiAgRWwgdGlwbyBkZSBjdXJzbyBzZWxlY2Npb25hZG8gZnVlIHNlbWVzdHJhbCwgcG9yIGxvIHRhbnRvIGVsIGVzdHVkaWFudGUgZGViZSBwYWdhciBtYXRyw61jdWxhIHkgcHJpbWVyYSBjdW90YSAoTSZNKVxuPC9kaXY+XG5cbjxmb3JtIGF1dG9jb21wbGV0ZT1cIm9mZlwiIFtmb3JtR3JvdXBdPVwiY29kRm9ybVN0ZXBGb3VyXCIgY2xhc3M9XCJncmlkIG10LTJcIj5cblxuICA8ZGl2IGNsYXNzPVwiY29sLTEyXCI+XG4gICAgPGlwdC1zZWxlY3RcbiAgICAgIFtpbml0aWFsVmFsdWVdPVwiY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydwYXltZW50X21ldGhvZCddLnZhbHVlXCJcbiAgICAgIFtjb250cm9sXT1cImNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncGF5bWVudF9tZXRob2QnXVwiXG4gICAgICAoZXZlbnRTZWxlY3QpPVwic2VsZWN0UGF5bWVudE1ldGhvZCgkZXZlbnQpXCJcbiAgICAgIFtkYXRhXT1cInBheW1lbnRNZXRob2RzXCJcbiAgICAgIFtkZWZhdWx0VGV4dF09XCInTcOpdG9kbyBkZSBwYWdvJ1wiXG4gICAgPjwvaXB0LXNlbGVjdD5cbiAgICA8aXB0LWxvYWRlciAqbmdJZj1cImZlZVJlc3BvbnNlXCI+PC9pcHQtbG9hZGVyPlxuXG4gICAgPGRpdiBjbGFzcz1cImNvbC0xMlwiICpuZ0lmPVwidGhlcmVBcmVQbGFuc1wiPlxuICAgICAgPHAtdGFibGVcbiAgICAgICAgW3ZhbHVlXT1cImRhdGFQcmljZXNcIlxuICAgICAgICBbdGFibGVTdHlsZV09XCJ7J21pbi13aWR0aCc6ICcxMDAlJ31cIlxuICAgICAgICBbcm93SG92ZXJdPVwidHJ1ZVwiXG4gICAgICA+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJjYXB0aW9uXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICAgU2VsZWNjaW9uIGRlIG5pdmVsZXMgYSBjYW5jZWxhci5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImhlYWRlclwiPlxuICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgIDx0aCBjbGFzcz1cImJnLWJsdWUtMjAwIHRleHQtY2VudGVyIGZvbnQtbWVkaXVtIHB0LTIgcGItMlwiPkNhbmNlbGFyPC90aD5cbiAgICAgICAgICAgIDx0aCBjbGFzcz1cImJnLWJsdWUtMjAwIHRleHQtY2VudGVyIGZvbnQtbWVkaXVtIHB0LTIgcGItMlwiPkN1b3RhczwvdGg+XG4gICAgICAgICAgICA8dGggY2xhc3M9XCJiZy1ibHVlLTIwMCB0ZXh0LWNlbnRlciBmb250LW1lZGl1bSBwdC0yIHBiLTJcIj5BZG1pbjwvdGg+XG4gICAgICAgICAgPC90cj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImJvZHlcIiBsZXQtZGF0YT5cbiAgICAgICAgICA8dHI+XG4gICAgICAgICAgICA8dGQ+e3sgZGF0YS5wYWlkX2xldmVsIH19IE5pdmVsKGVzKTwvdGQ+XG4gICAgICAgICAgICA8dGQ+e3sgZGF0YS5mZWVfbnVtYmVyIH19PC90ZD5cbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cInB0LTIgcGItMlwiPlxuICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgcEJ1dHRvblxuICAgICAgICAgICAgICAgIHBSaXBwbGVcbiAgICAgICAgICAgICAgICBpY29uPVwicGkgcGktbW9uZXktYmlsbFwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJwLWJ1dHRvbi1zbSBwLWJ1dHRvbi1yb3VuZGVkXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0TGV2ZWxzKGRhdGEpXCJcbiAgICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICA8L3RyPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9wLXRhYmxlPlxuICAgIDwvZGl2PlxuXG4gICAgPCEtLSBbaW5pdGlhbFZhbHVlXT1cImNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncXVvdGFfdGltZXMnXS52YWx1ZVwiIC0tPlxuICAgIDwhLS0gPGlwdC1zZWxlY3QgKm5nSWY9XCJpc0ZpbmFuY2VkKCk7XCJcbiAgICAgIFtpbml0aWFsVmFsdWVdPVwiJzEnXCJcbiAgICAgIFtjb250cm9sXT1cImNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncXVvdGFfdGltZXMnXVwiXG4gICAgICAoZXZlbnRTZWxlY3QpPVwic2VsZWN0UXVvdGFzKCRldmVudClcIlxuICAgICAgW2RlZmF1bHRUZXh0XT1cIidOw7ptZXJvIGRlIGN1b3RhcydcIlxuICAgICAgW2RhdGFdPVwiY29kUHJpY2VzXCJcbiAgICAgID48L2lwdC1zZWxlY3Q+IC0tPlxuICAgIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJjb2wtMTJcIj5cbiAgICA8aXB0LWlucHV0XG4gICAgICBbaW5wdXRUeXBlXT1cIid0ZXh0J1wiXG4gICAgICBbcGxhY2VIb2xkZXJdPVwiJ01vbnRvIHRvdGFsIGRlIGxhIG1hdHLDrWN1bGEnXCJcbiAgICAgIFtjb250cm9sXT1cImNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sndG90YWxfcHJpY2UnXVwiXG4gICAgICBbd2l0aFBpcGVdPVwidHJ1ZVwiXG4gICAgPjwvaXB0LWlucHV0PlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwiY29sLTEyXCI+XG4gICAgPGlwdC1pbnB1dFxuICAgICAgW3dpdGhQaXBlXT1cInRydWVcIlxuICAgICAgW2lucHV0VHlwZV09XCIndGV4dCdcIlxuICAgICAgW2NvbnRyb2xdPVwiY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydwcm9ncmFtX3ByaWNlJ11cIlxuICAgICAgW3BsYWNlSG9sZGVyXT1cIidWYWxvciB0b3RhbCBkZWwgcHJvZ3JhbWEnXCJcbiAgICA+PC9pcHQtaW5wdXQ+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJjb2wtMTJcIj5cbiAgICA8aXB0LWlucHV0XG4gICAgICBvbmZvY3VzPVwiKHRoaXMudHlwZT0nZGF0ZScpXCJcbiAgICAgIFtpbnB1dFR5cGVdPVwiJ2RhdGUnXCJcbiAgICAgIFtjb250cm9sXT1cImNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncGF5bWVudF9kYXRlJ11cIlxuICAgICAgW3BsYWNlSG9sZGVyXT1cIidGZWNoYSBkZSBwYWdvJ1wiXG4gICAgPjwvaXB0LWlucHV0PlxuICA8L2Rpdj5cblxuICA8IS0tIFRhYmxhIGRlIGZpbmFuY2lhY2nDs24gLS0+XG4gIDxkaXYgY2xhc3M9XCJjb2wtMTJcIiAqbmdJZj1cImlzRmluYW5jaW5nXCI+XG4gICAgPHAtdGFibGVcbiAgICAgIFt2YWx1ZV09XCJkYXRhRmluYW5jaW5nXCJcbiAgICAgIFt0YWJsZVN0eWxlXT1cInsnbWluLXdpZHRoJzogJzEwMCUnfVwiXG4gICAgICBbcm93SG92ZXJdPVwidHJ1ZVwiXG4gICAgPlxuICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImNhcHRpb25cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgQ8OhbGN1bG8gZGUgY3VvdGFzXG4gICAgICAgICAgPGJ1dHRvbiBwQnV0dG9uIGNsYXNzPVwicC1idXR0b24tc20gbWwtYXV0b1wiIGxhYmVsPVwiTnVldm8gY8OhbGN1bG9cIiAoY2xpY2spPVwiY2FsY3VsYXRlTmV3UXVvdGVzKClcIiBsYWIgaWNvbj1cInBpIHBpLXJlcGxheVwiPjwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiaGVhZGVyXCI+XG4gICAgICAgIDx0cj5cbiAgICAgICAgICA8dGg+IzwvdGg+XG4gICAgICAgICAgPHRoPlZhbG9yPC90aD5cbiAgICAgICAgICA8dGg+RmVjaGE8L3RoPlxuICAgICAgICA8L3RyPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJib2R5XCIgbGV0LWRhdGE+XG4gICAgICAgIDx0cj5cbiAgICAgICAgICA8dGQ+e3sgZGF0YVswXSB9fTwvdGQ+XG4gICAgICAgICAgPHRkPnt7IGRhdGFbMV0gfX08L3RkPlxuICAgICAgICAgIDx0ZD57eyBkYXRhWzJdIH19PC90ZD5cbiAgICAgICAgPC90cj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9wLXRhYmxlPlxuICA8L2Rpdj5cbiAgPCEtLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tIC0tPlxuXG48L2Zvcm0+XG5cbjxkaXYgY2xhc3M9XCJmbGV4IG10LTMgYWxpZ24taXRlbXMtY2VudGVyIGdhcC0zXCI+XG4gIDxzcGFuICpuZ0lmPVwiY29kRm9ybVN0ZXBGb3VyLmludmFsaWQgJiYgY29kRm9ybVN0ZXBGb3VyLnRvdWNoZWRcIiBjbGFzcz1cInRleHQtcmVkLTUwMCBmb250LWJvbGQgdGV4dC1jZW50ZXIgbXQtMSBweS0yIGJnLXJlZC0xMDAgdy1mdWxsIGJvcmRlci1yb3VuZC14bFwiPnt7IGVycm9yTWVzc2FnZSB9fTwvc3Bhbj5cbiAgPGRpdiBjbGFzcz1cImZsZXggbWwtYXV0byBnYXAtMlwiPlxuICAgIDxidXR0b24gKm5nSWY9XCJjb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3BheW1lbnRfbWV0aG9kJ10udmFsdWUgPT09ICcxJ1wiIFtkaXNhYmxlZF09XCJpc0ZpbmFuY2luZyB8fCBjb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3BheW1lbnRfbWV0aG9kJ10udmFsdWUgIT09ICcxJ1widHlwZT1cInN1Ym1pdFwiIGNsYXNzPVwibWwtYXV0byBwLWJ1dHRvbi1zbSBwLWJ1dHRvbi1zZWNvbmRhcnlcIiAoY2xpY2spPVwic2hvd1RhYmxlKClcIiBwQnV0dG9uIGxhYmVsPVwiQ2FsY3VsYXIgY3VvdGFzXCIgaWNvbj1cInBpIHBpLXNsaWRlcnMtaFwiPjwvYnV0dG9uPlxuICAgIDxidXR0b24gW2Rpc2FibGVkXT1cIiFpc0ZpbmFuY2luZyAmJiBjb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3BheW1lbnRfbWV0aG9kJ10udmFsdWUgPT09ICcxJ1wiIHR5cGU9XCJzdWJtaXRcIiBbY2xhc3NdPVwiaXNFZGl0Q29kID8gJ21sLWF1dG8geWVsbG93LTMwMCBwLWJ1dHRvbi1zbScgOiAnbWwtYXV0byBwLWJ1dHRvbi1zbSdcIiAoY2xpY2spPVwic2VuZEZvcm0oKVwiIHBCdXR0b24gbGFiZWw9XCJTaWd1aWVudGVcIiBpY29uPVwicGkgcGktYXJyb3ctcmlnaHRcIj48L2J1dHRvbj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -4295,12 +4295,13 @@ class CodFormStepFourComponent extends CodFormSteps {
4295
4295
  this.codFormStepFour.controls['total_price'].setValue(null);
4296
4296
  }
4297
4297
  setDataFromPreviusCodPrices() {
4298
- this.codFormStepFour.controls['payment_method'].setValue(this.initialData.cod_price.fee_number == 1 ? 2 : 1);
4298
+ this.codFormStepFour.controls['payment_method'].setValue(this.initialData.cod_payment.lenght == 1 ? 2 : 1);
4299
4299
  this.codFormStepFour.controls['total_price'].setValue(this.initialData.cod_price.enrollment);
4300
- this.codFormStepFour.controls['program_price'].setValue(this.initialData.cod_price.fee_number == 1 ? this.initialData.cod_price.normal_price : this.initialData.cod_price.financed_price);
4300
+ this.codFormStepFour.controls['program_price'].setValue(this.initialData.cod_payment.lenght == 1 ? this.initialData.cod_price.normal_price : this.initialData.cod_price.financed_price);
4301
4301
  this.codFormStepFour.controls['paid_level'].setValue(this.initialData.cod_price.paid_level);
4302
- this.codFormStepFour.controls['fee_number'].setValue(this.initialData.cod_price.fee_number);
4302
+ this.codFormStepFour.controls['fee_number'].setValue(this.initialData.cod_payment.lenght == 1 ? 1 : this.initialData.cod_price.fee_number);
4303
4303
  this.codFormStepFour.controls['quota_price'].setValue(this.initialData.cod_price.quota_price);
4304
+ this.codFormStepFour.controls['payment_date'].setValue(this.initialData.cod_payment[0].timely_date);
4304
4305
  }
4305
4306
  }
4306
4307
  CodFormStepFourComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.7", ngImport: i0, type: CodFormStepFourComponent, deps: [{ token: i1$1.FormBuilder }, { token: CalculateQuotesService }, { token: CommunicatorService }, { token: ParameterService }, { token: CodFormControls }, { token: CommercialService }, { token: BaseService }], target: i0.ɵɵFactoryTarget.Component });