iptdevs-design-system 2.7.75 → 2.7.76

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.
@@ -31,12 +31,14 @@ export class CodFormComponent {
31
31
  }
32
32
  ngOnChanges(changes) {
33
33
  if (changes['dataFromPreviusCodData']) {
34
- this.formTitle = 'Formulario para verificar información del COD';
35
- console.log(this.dataFromPreviusCodData);
36
- this.getCodbyCode();
37
- }
38
- else {
39
- this.formTitle = 'Formulario para creación del COD';
34
+ if (this.dataFromPreviusCodData != null) {
35
+ this.formTitle = 'Formulario para verificar información del COD';
36
+ console.log(this.dataFromPreviusCodData);
37
+ this.getCodbyCode();
38
+ }
39
+ else {
40
+ this.formTitle = 'Formulario para creación del COD';
41
+ }
40
42
  }
41
43
  }
42
44
  allowedRole() {
@@ -220,4 +222,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImpor
220
222
  }], ctorParameters: function () { return [{ type: i1.BaseService }, { type: i2.LocalStorageCODService }, { type: i3.CodFormControls }, { type: i4.CommercialService }]; }, propDecorators: { dataFromPreviusCodData: [{
221
223
  type: Input
222
224
  }] } });
223
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kLWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vZGVzaWduLXN5c3RlbS9zcmMvbGliL2NvZC9jb2QtZm9ybS9jb2QtZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9kZXNpZ24tc3lzdGVtL3NyYy9saWIvY29kL2NvZC1mb3JtL2NvZC1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUE0QixNQUFNLGVBQWUsQ0FBQztBQUczRSxPQUFPLElBQUksTUFBTSxhQUFhLENBQUM7Ozs7Ozs7Ozs7Ozs7O0FBWS9CLE1BQU0sT0FBTyxnQkFBZ0I7SUFpQjNCLFlBQ1UsV0FBd0IsRUFDeEIsZUFBdUMsRUFDdkMsZUFBZ0MsRUFDaEMsaUJBQW9DO1FBSHBDLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLG9CQUFlLEdBQWYsZUFBZSxDQUF3QjtRQUN2QyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDaEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQWhCdEMsaUJBQVksR0FBYTtZQUMvQixFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUU7U0FDdkIsQ0FBQztRQUVLLGdCQUFXLEdBQVcsQ0FBQyxDQUFDO1FBQ3hCLGNBQVMsR0FBVyxrQ0FBa0MsQ0FBQztRQUV2RCxjQUFTLEdBQVcsQ0FBQyxDQUFDO1FBRXRCLGNBQVMsR0FBWSxLQUFLLENBQUM7UUFDM0Isa0JBQWEsR0FBVyxFQUFFLENBQUM7UUFRaEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ2pELENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFFaEMsSUFBSSxPQUFPLENBQUMsd0JBQXdCLENBQUMsRUFBRTtZQUNyQyxJ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Q0FBQyxDQUFDLEtBQUs7WUFDdkYsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEtBQUssb0JBQW9CLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLO1lBQ3ZGLGtCQUFrQixFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxLQUFLLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSztZQUN2RixjQUFjLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEtBQUssZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLO1lBQy9FLGFBQWEsRUFBRSxJQUFJLENBQUMsYUFBYztTQUNuQyxDQUFBO1FBRUQsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVELFVBQVUsQ0FBQyxJQUFZO1FBQ3JCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO0lBQzFCLENBQUM7OzZHQTFOVSxnQkFBZ0I7aUdBQWhCLGdCQUFnQix1SUNmN0IsazhEQWdDdUY7MkZEakIxRSxnQkFBZ0I7a0JBTDVCLFNBQVM7K0JBQ0UsY0FBYztxTUFNZixzQkFBc0I7c0JBQTlCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCAqIGFzIG1vbWVudCBmcm9tICdtb21lbnQnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgU3dhbCBmcm9tICdzd2VldGFsZXJ0Mic7XG5pbXBvcnQgeyBDcmVhdGVDT0RScSB9IGZyb20gJy4uLy4uL2NvcmUvbW9kZWxzL2NvZC9jb2QtcnEubW9kZWwnO1xuaW1wb3J0IHsgQ29tbWVyY2lhbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL3NlcnZpY2VzL2NvbW1lcmNpYWwtc2VydmljZS9jb21lcmNpYWwuc2VydmljZSc7XG5pbXBvcnQgeyBBZGljSW5mb0J5Q29kZVJxLCBDb2RBZGl0aW9uYWxJbmZvcm1hdGlvblJxLCBDb2RQYXJlbnRScSwgUGFyZW50QnlDb2RlUnEgfSBmcm9tICcuLi8uLi9jb3JlL21vZGVscy9jb21tZXJjaWFsL2NvbW1lcmNpYWwubW9kZWwnXG5pbXBvcnQgeyBCYXNlU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvdXRpbHMvYmFzZS1zZXJ2aWNlL2Jhc2Uuc2VydmljZSc7XG5pbXBvcnQgeyBDb2RGb3JtQ29udHJvbHMsIENvbnRyb2wgfSBmcm9tICcuLi9sb2dpYy9jb2QtZm9ybS1jb250cm9scyc7XG5pbXBvcnQgeyBMb2NhbFN0b3JhZ2VDT0RTZXJ2aWNlIH0gZnJvbSAnLi4vbG9naWMvbG9jYWwtc3RvcmFnZS1jb2Quc2VydmljZSc7XG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpcHQtY29kLWZvcm0nLFxuICB0ZW1wbGF0ZVVybDogJy4vY29kLWZvcm0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFtdXG59KVxuZXhwb3J0IGNsYXNzIENvZEZvcm1Db21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuXG4gIEBJbnB1dCgpIGRhdGFGcm9tUHJldml1c0NvZERhdGE/OiBhbnk7XG4gIHN1YnNjcmlwdGlvbj86IFN1YnNjcmlwdGlvbjtcblxuICBwcml2YXRlIGFsbG93ZWRSb2xlczogbnVtYmVyW10gPSBbXG4gICAgMzAsIDMxLCAzMiwgNDAsIDQxLCA0MixcbiAgXTtcblxuICBwdWJsaWMgY3VycmVudFN0ZXA6IG51bWJlciA9IDA7XG4gIHB1YmxpYyBmb3JtVGl0bGU6IHN0cmluZyA9ICdGb3JtdWxhcmlvIHBhcmEgY3JlYWNpw7NuIGRlbCBDT0QnO1xuICBwdWJsaWMgdXNlclJvbGU6IG51bWJlcjtcbiAgcHVibGljIGZvcm1TdGVwczogbnVtYmVyID0gNTtcbiAgcHVibGljIGZpbmFuY2luZ0RhdGE/OiBhbnlbXTtcbiAgcHVibGljIGlzTG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xuICBwdWJsaWMgbG9hZGVyTWVzc2FnZTogc3RyaW5nID0gJyc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBiYXNlU2VydmljZTogQmFzZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBsb2NhbFN0b3JhZ2VDT0Q6IExvY2FsU3RvcmFnZUNPRFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb2RGb3JtQ29udHJvbHM6IENvZEZvcm1Db250cm9scyxcbiAgICBwcml2YXRlIGNvbW1lcmNpYWxTZXJ2aWNlOiBDb21tZXJjaWFsU2VydmljZVxuICApIHtcbiAgICB0aGlzLnVzZXJSb2xlID0gdGhpcy5iYXNlU2VydmljZS5nZXRVc2VyUm9sZSgpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIFxuICAgIGlmIChjaGFuZ2VzWydkYXRhRnJvbVByZXZpdXNDb2REYXRhJ10pIHtcbiAgICAgIHRoaXMuZm9ybVRpdGxlID0gJ0Zvcm11bGFyaW8gcGFyYSB2ZXJpZmljYXIgaW5mb3JtYWNpw7NuIGRlbCBDT0QnO1xuICAgICAgY29uc29sZS5sb2codGhpcy5kYXRhRnJvbVByZXZpdXNDb2REYXRhKTtcbiAgICAgIHRoaXMuZ2V0Q29kYnlDb2RlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZm9ybVRpdGxlID0gJ0Zvcm11bGFyaW8gcGFyYSBjcmVhY2nDs24gZGVsIENPRCc7XG4gICAgfVxuICB9XG5cbiAgYWxsb3dlZFJvbGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuYWxsb3dlZFJvbGVzLmluY2x1ZGVzKHRoaXMudXNlclJvbGUpO1xuICB9XG5cbiAgZ2V0Q29kYnlDb2RlKCkge1xuICAgIC8vIFRPRE86IFRyYWVyIENPRCBwb3IgY8OzZGlnbyB5IHBpbnRhcmxvXG4gICAgY29uc29sZS5sb2codGhpcy5kYXRhRnJvbVByZXZpdXNDb2REYXRhKTtcbiAgfVxuXG4gIHNhdmVGaW5hbmNpbmdEYXRhKGRhdGE6IGFueVtdKSB7XG4gICAgaWYgKGRhdGEpIHtcbiAgICAgIGNvbnN0IGRhdGVzOiBzdHJpbmdbXSA9IFtdO1xuICAgICAgZGF0YS5mb3JFYWNoKHAgPT4ge1xuICAgICAgICBjb25zdCBkYXRlID0gcFsyXTtcbiAgICAgICAgZGF0ZXMucHVzaChkYXRlKTtcbiAgICAgIH0pXG4gICAgICB0aGlzLmZpbmFuY2luZ0RhdGEgPSBkYXRlcztcbiAgICB9XG4gIH1cblxuICBnZXRGb3JtQWN0aW9uKGFjdGlvbjogc3RyaW5nKSB7XG4gICAgaWYgKCF0aGlzLmZpbmFuY2luZ0RhdGEgJiYgdGhpcy5sb2NhbFN0b3JhZ2VDT0QuZ2V0Q29kRm9ybURhdGEoNCwgJ3BheW1lbnRfbWV0aG9kJykgPT09ICcxJykge1xuICAgICAgU3dhbC5maXJlKHtcbiAgICAgICAgdGl0bGU6ICdRdWVyaWRvIGFzZXNvcicsXG4gICAgICAgIHRleHQ6ICdEZWJlIGhhY2VyIGVsIGPDoWxjdWxvIGRlIGxhcyBjdW90YXMgZW4gZWwgcGFzbyA0JyxcbiAgICAgICAgaWNvbjogJ2Vycm9yJ1xuICAgICAgfSlcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgdG90YWxEYXRhOiBhbnlbXSA9IFtdO1xuXG4gICAgdGhpcy5zdWJzY3JpcHRpb24gPSB0aGlzLmNvZEZvcm1Db250cm9scy5nZXRDb250cm9sVmFsdWVzKCkuc3Vic2NyaWJlKChjb250cm9scykgPT4ge1xuICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPD0gdGhpcy5mb3JtU3RlcHM7IGkrKykge1xuICAgICAgICBsZXQgY29udHJvbHNCeVN0ZXA6IENvbnRyb2xbXSA9IGNvbnRyb2xzW2ktMV07XG4gICAgICAgIGNvbnRyb2xzQnlTdGVwLmZvckVhY2goY29udHJvbCA9PiB7XG4gICAgICAgICAgbGV0IHZhbHVlID0gdGhpcy5sb2NhbFN0b3JhZ2VDT0QuZ2V0Q29kRm9ybURhdGEoaSwgY29udHJvbC5uYW1lKTtcbiAgICAgICAgICAvLyBDYW1iaWFyIFRydWUvRmFsc2UgZGVsIG11bHRpY3VsdHVyYWxpc21vIDEvMFxuICAgICAgICAgIGlmICh2YWx1ZSA9PT0gJ2ZhbHNlJyAmJiBjb250cm9sLmRlc2NyaXB0aW9uID09PSAnTXVsdGljdWx0dXJhbGlzbW8nKSB7XG4gICAgICAgICAgICB0b3RhbERhdGEucHVzaCh7XG4gICAgICAgICAgICAgIGNvbnRyb2w6IGNvbnRyb2wubmFtZSxcbiAgICAgICAgICAgICAgaXNSZXF1aXJlZDogY29udHJvbC5yZXF1aXJlZCxcbiAgICAgICAgICAgICAgdmFsdWU6ICcwJyxcbiAgICAgICAgICAgICAgZGVzY3JpcHRpb246IGNvbnRyb2wuZGVzY3JpcHRpb25cbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfSBlbHNlIGlmICh2YWx1ZSA9PT0gJ2ZhbHNlJyAmJiBjb250cm9sLmRlc2NyaXB0aW9uID09PSAnTXVsdGljdWx0dXJhbGlzbW8nKSB7XG4gICAgICAgICAgICB0b3RhbERhdGEucHVzaCh7XG4gICAgICAgICAgICAgIGNvbnRyb2w6IGNvbnRyb2wubmFtZSxcbiAgICAgICAgICAgICAgaXNSZXF1aXJlZDogY29udHJvbC5yZXF1aXJlZCxcbiAgICAgICAgICAgICAgdmFsdWU6ICcxJyxcbiAgICAgICAgICAgICAgZGVzY3JpcHRpb246IGNvbnRyb2wuZGVzY3JpcHRpb25cbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRvdGFsRGF0YS5wdXNoKHtcbiAgICAgICAgICAgICAgY29udHJvbDogY29udHJvbC5uYW1lLFxuICAgICAgICAgICAgICBpc1JlcXVpcmVkOiBjb250cm9sLnJlcXVpcmVkLFxuICAgICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgICAgZGVzY3JpcHRpb246IGNvbnRyb2wuZGVzY3JpcHRpb25cbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgLy8gVmFsaWRhciBlcnJvcmVzXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRvdGFsRGF0YS5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb25zdCBlbGVtZW50ID0gdG90YWxEYXRhW2ldO1xuICAgICAgICBpZiAoIWVsZW1lbnQudmFsdWUgJiYgZWxlbWVudC5pc1JlcXVpcmVkKSB7XG4gICAgICAgICAgU3dhbC5maXJlKHtcbiAgICAgICAgICAgIHRpdGxlOiAnRXJyb3InLFxuICAgICAgICAgICAgdGV4dDogYFJldmlzYXIgZWwgY2FtcG86IFwiJHtlbGVtZW50LmRlc2NyaXB0aW9ufVwiYCxcbiAgICAgICAgICAgIGljb246ICdlcnJvcidcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoYWN0aW9uID09PSAnY3JlYXRlJykgdGhpcy5jcmVhdGVDT0QodG90YWxEYXRhKTtcbiAgICAgIGlmIChhY3Rpb24gPT09ICd1cGRhdGUnKSB0aGlzLnVwZGF0ZUNPRCh0b3RhbERhdGEpO1xuICAgIH0pXG5cbiAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuXG4gIH1cblxuICB1cGRhdGVDT0QodG90YWxEYXRhOiBhbnlbXSkge1xuICAgIGNvbnNvbGUubG9nKCdhY3R1YWxpemFuZG8gQ09ELi4uJyk7XG4gIH1cblxuICBjcmVhdGVDT0QodG90YWxEYXRhOiBhbnlbXSkge1xuICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcbiAgICB0aGlzLmxvYWRlck1lc3NhZ2UgPSAnQ3JlYW5kbyBDT0QsIGVzcGVyZSB1biBtb21lbnRvJ1xuXG4gICAgbGV0IHJlcXVlc3Q6IENyZWF0ZUNPRFJxID0gdGhpcy5nZXRDcmVhdGVDT0RScSh0b3RhbERhdGEpO1xuICAgIHRoaXMuY29tbWVyY2lhbFNlcnZpY2UuY3JlYXRlQ09EKHJlcXVlc3QpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzcG9uc2U6IGFueSkgPT4ge1xuICAgICAgICBjb25zb2xlLmxvZyhyZXNwb25zZSk7XG4gICAgICAgIGlmIChyZXNwb25zZS5tZXNzYWdlLmNvZGUgPT09IDEpIHtcbiAgICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMubG9hZGVyTWVzc2FnZSA9ICcnO1xuICAgICAgICAgIFN3YWwuZmlyZSh7XG4gICAgICAgICAgICB0aXRsZTogJ1BlcmZlY3RvIScsXG4gICAgICAgICAgICB0ZXh0OiAnRWwgQ09EIGhhIHNpZG8gY3JlYWRvIGV4aXRvc2FtZW50ZS4nLFxuICAgICAgICAgICAgaWNvbjogJ3N1Y2Nlc3MnXG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIGVycm9yOiAoZXJyOiBhbnkpID0+IHtcbiAgICAgICAgY29uc29sZS5sb2coZXJyKTtcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5sb2FkZXJNZXNzYWdlID0gJyc7XG4gICAgICAgIFN3YWwuZmlyZSh7XG4gICAgICAgICAgdGl0bGU6ICdFcnJvcicsXG4gICAgICAgICAgdGV4dDogZXJyLmVycm9yLnRleHQsXG4gICAgICAgICAgaWNvbjogJ2Vycm9yJ1xuICAgICAgICB9KVxuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICBnZXRDcmVhdGVDT0RScShkYXRhOiBhbnlbXSk6IENyZWF0ZUNPRFJxIHtcbiAgICBsZXQgcmVxdWVzdDogQ3JlYXRlQ09EUnEgPSB7XG4gICAgICB0b2tlbjogdGhpcy5iYXNlU2VydmljZS5nZXRVc2VyVG9rZW4oKSxcbiAgICAgIGFjYWRlbWljX3BsYW46IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnYWNhZGVtaWNfcGxhbicpWzBdLnZhbHVlLFxuICAgICAgY291cnNlX3R5cGU6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnY291cnNlX3R5cGUnKVswXS52YWx1ZSxcbiAgICAgIGFncmVlbWVudF9ieV9jYXRlZ29yeTogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdhZ3JlZW1lbnRfYnlfY2F0ZWdvcnknKVswXS52YWx1ZSxcbiAgICAgIGVuZ2xpc2hfbGV2ZWw6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnZW5nbGlzaF9sZXZlbCcpWzBdLnZhbHVlLFxuICAgICAgYXZhaWxpYmxlX2NvdXJzZXM6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnYXZhaWxpYmxlX2NvdXJzZXMnKVswXS52YWx1ZSxcbiAgICAgIHN0dWRlbnRfYWRkcmVzczogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdzdHVkZW50X2FkZHJlc3MnKVswXS52YWx1ZSxcbiAgICAgIGJpcnRoZGF0ZTogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdiaXJ0aGRhdGUnKVswXS52YWx1ZSxcbiAgICAgIGNvdW50cnk6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnY291bnRyeScpWzBdLnZhbHVlLFxuICAgICAgc3RhdGU6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnc3RhdGUnKVswXS52YWx1ZSxcbiAgICAgIGNpdHk6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnY2l0eScpWzBdLnZhbHVlLFxuICAgICAgc3R1ZGVudF9pZF9jYXJkX3R5cGU6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnc3R1ZGVudF9pZF9jYXJkX3R5cGUnKVswXS52YWx1ZSxcbiAgICAgIHN0dWRlbnRfaWRfY2FyZDogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdzdHVkZW50X2lkX2NhcmQnKVswXS52YWx1ZSxcbiAgICAgIHN0dWRlbnRfbGFzdF9uYW1lOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3N0dWRlbnRfbGFzdF9uYW1lJylbMF0udmFsdWUsXG4gICAgICBzdHVkZW50X25hbWU6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnc3R1ZGVudF9uYW1lJylbMF0udmFsdWUsXG4gICAgICBzdHVkZW50X2VtYWlsOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3N0dWRlbnRfZW1haWwnKVswXS52YWx1ZSxcbiAgICAgIG5pY2tuYW1lOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ25pY2tuYW1lJylbMF0udmFsdWUsXG4gICAgICBnZW5kZXI6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnZ2VuZGVyJylbMF0udmFsdWUsXG4gICAgICBhZ2U6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnYWdlJylbMF0udmFsdWUsXG4gICAgICBzdHVkZW50X29jY3VwYXRpb246IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnc3R1ZGVudF9vY2N1cGF0aW9uJylbMF0udmFsdWUsXG4gICAgICBzdHJhdHVtOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3N0cmF0dW0nKVswXS52YWx1ZSxcbiAgICAgIGdyYWRlOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ2dyYWRlJylbMF0udmFsdWUsXG4gICAgICBjaXZpbF9zdGF0dXM6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnY2l2aWxfc3RhdHVzJylbMF0udmFsdWUsXG4gICAgICBzdHVkZW50X3Bob25lX2luZGljYXRpdmU6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnc3R1ZGVudF9waG9uZV9pbmRpY2F0aXZlJylbMF0udmFsdWUsXG4gICAgICBzdHVkZW50X3Bob25lX251bWJlcjogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdzdHVkZW50X3Bob25lX251bWJlcicpWzBdLnZhbHVlLFxuICAgICAgcGFzc3dvcmQ6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAncGFzc3dvcmQnKVswXS52YWx1ZSxcbiAgICAgIHJlX3Bhc3N3b3JkOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3JlX3Bhc3N3b3JkJylbMF0udmFsdWUsXG4gICAgICBwYXJlbnRfaWRfY2FyZF90eXBlOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3BhcmVudF9pZF9jYXJkX3R5cGUnKVswXS52YWx1ZSxcbiAgICAgIHBhcmVudF9pZF9jYXJkOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3BhcmVudF9pZF9jYXJkJylbMF0udmFsdWUsXG4gICAgICBwYXJlbnRfbGFzdF9uYW1lOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3BhcmVudF9sYXN0X25hbWUnKVswXS52YWx1ZSxcbiAgICAgIHBhcmVudF9uYW1lOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3BhcmVudF9uYW1lJylbMF0udmFsdWUsXG4gICAgICBuZWVkQXRlbmRhbnQ6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnbmVlZEF0ZW5kYW50JylbMF0udmFsdWUsXG4gICAgICBwYXJlbnRfcGhvbmVfaW5kaWNhdGl2ZTogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdwYXJlbnRfcGhvbmVfaW5kaWNhdGl2ZScpWzBdLnZhbHVlLFxuICAgICAgcGFyZW50X29jY3VwYXRpb246IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAncGFyZW50X29jY3VwYXRpb24nKVswXS52YWx1ZSxcbiAgICAgIHBhcmVudF9hZGRyZXNzOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3BhcmVudF9hZGRyZXNzJylbMF0udmFsdWUsXG4gICAgICBwYXJlbnRfcGhvbmVfbnVtYmVyOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3BhcmVudF9waG9uZV9udW1iZXInKVswXS52YWx1ZSxcbiAgICAgIHBheW1lbnRfZGF0ZTogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdwYXltZW50X2RhdGUnKVswXS52YWx1ZSxcbiAgICAgIHByb2dyYW1fcHJpY2U6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAncHJvZ3JhbV9wcmljZScpWzBdLnZhbHVlLFxuICAgICAgcGF5bWVudF9tZXRob2Q6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAncGF5bWVudF9tZXRob2QnKVswXS52YWx1ZSxcbiAgICAgIHF1b3RhX3RpbWVzOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3F1b3RhX3RpbWVzJylbMF0udmFsdWUsXG4gICAgICB0b3RhbF9wcmljZTogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICd0b3RhbF9wcmljZScpWzBdLnZhbHVlLFxuICAgICAgbWFya2V0aW5nX3JlYXNvbnM6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnbWFya2V0aW5nX3JlYXNvbnMnKVswXS52YWx1ZSxcbiAgICAgIG9ic2VydmF0aW9uOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ29ic2VydmF0aW9uJylbMF0udmFsdWUsXG4gICAgICBzdHVkeV9yZWFzb25zOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3N0dWR5X3JlYXNvbnMnKVswXS52YWx1ZSxcbiAgICAgIHRlcm1zOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3Rlcm1zJylbMF0udmFsdWUsXG4gICAgICBkaXNhYmlsaXR5OiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ2Rpc2FiaWxpdHknKVswXS52YWx1ZSxcbiAgICAgIG11bHRpY3VsdHVyYWxpc21fMTogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdtdWx0aWN1bHR1cmFsaXNtXzEnKVswXS52YWx1ZSxcbiAgICAgIG11bHRpY3VsdHVyYWxpc21fMjogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdtdWx0aWN1bHR1cmFsaXNtXzInKVswXS52YWx1ZSxcbiAgICAgIG11bHRpY3VsdHVyYWxpc21fMzogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdtdWx0aWN1bHR1cmFsaXNtXzMnKVswXS52YWx1ZSxcbiAgICAgIG11bHRpY3VsdHVyYWxpc21fNDogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdtdWx0aWN1bHR1cmFsaXNtXzQnKVswXS52YWx1ZSxcbiAgICAgIG11bHRpY3VsdHVyYWxpc21fNTogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdtdWx0aWN1bHR1cmFsaXNtXzUnKVswXS52YWx1ZSxcbiAgICAgIG11bHRpY3VsdHVyYWxpc21fNjogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdtdWx0aWN1bHR1cmFsaXNtXzYnKVswXS52YWx1ZSxcbiAgICAgIGhlYWx0aF9yZWdpbWVuOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ2hlYWx0aF9yZWdpbWVuJylbMF0udmFsdWUsXG4gICAgICBwYXltZW50X2RhdGVzOiB0aGlzLmZpbmFuY2luZ0RhdGEhXG4gICAgfVxuXG4gICAgcmV0dXJuIHJlcXVlc3Q7XG4gIH1cblxuICBjaGFuZ2VTdGVwKHN0ZXA6IG51bWJlcikge1xuICAgIHRoaXMuY3VycmVudFN0ZXAgPSBzdGVwO1xuICB9XG5cbn1cbiIsIjxkaXYgKm5nSWY9XCJhbGxvd2VkUm9sZSgpIDsgZWxzZSBVbmF1dGhvcml6ZWRcIiBjbGFzcz1cImNvbnRhaW5lciBmbGV4IGZsZXgtY29sdW1uIGJnLXdoaXRlIGJvcmRlci1yb3VuZC0yeGwgcC0zIGNvbnRhaW5lciBhbmltYXRlX19hbmltYXRlZCBhbmltYXRlX19mYWRlSW5VcFwiPlxuXG4gIDxzcGFuIGNsYXNzPVwiYmctcHJpbWFyeSBwLTIgYm9yZGVyLXJvdW5kIG1iLTIgdy1hdXRvIHRleHQtbGcgZm9udC1zZW1pYm9sZFwiPnt7IGZvcm1UaXRsZSB9fTwvc3Bhbj5cblxuICA8cC10YWJWaWV3IFthY3RpdmVJbmRleF09XCJjdXJyZW50U3RlcFwiIChhY3RpdmVJbmRleENoYW5nZSk9XCJjdXJyZW50U3RlcCA9ICRldmVudFwiIFtzY3JvbGxhYmxlXT1cInRydWVcIj5cbiAgICA8cC10YWJQYW5lbCBsZWZ0SWNvbj1cInBpIHBpLXN0YXJcIiBoZWFkZXI9XCIxLiBQbGFuZXMgeSBjb252ZW5pb3NcIj5cbiAgICAgIDxhcHAtY29kLWZvcm0tc3RlcC1vbmUgKGNoYW5nZVN0ZXBFdmVudCk9XCJjaGFuZ2VTdGVwKCRldmVudClcIiBjbGFzcz1cInAtMVwiPjwvYXBwLWNvZC1mb3JtLXN0ZXAtb25lPlxuICAgIDwvcC10YWJQYW5lbD5cbiAgICA8cC10YWJQYW5lbCBsZWZ0SWNvbj1cInBpIHBpLWlkLWNhcmRcIiBoZWFkZXI9XCIyLiBEYXRvcyBkZWwgZXN0dWRpYW50ZVwiPlxuICAgICAgPGFwcC1jb2QtZm9ybS1zdGVwLXR3byBbaW5pdGlhbERhdGFdPVwiZGF0YUZyb21QcmV2aXVzQ29kRGF0YVwiIChjaGFuZ2VTdGVwRXZlbnQpPVwiY2hhbmdlU3RlcCgkZXZlbnQpXCIgY2xhc3M9XCJwLTFcIj48L2FwcC1jb2QtZm9ybS1zdGVwLXR3bz5cbiAgICA8L3AtdGFiUGFuZWw+XG4gICAgPHAtdGFiUGFuZWwgbGVmdEljb249XCJwaSBwaS11c2VyLWVkaXRcIiBoZWFkZXI9XCIzLiBEYXRvcyBkZWwgYWN1ZGllbnRlXCI+XG4gICAgICA8YXBwLWNvZC1mb3JtLXN0ZXAtdGhyZWUgW2luaXRpYWxEYXRhXT1cImRhdGFGcm9tUHJldml1c0NvZERhdGFcIiAoY2hhbmdlU3RlcEV2ZW50KT1cImNoYW5nZVN0ZXAoJGV2ZW50KVwiIGNsYXNzPVwicC0xXCI+PC9hcHAtY29kLWZvcm0tc3RlcC10aHJlZT5cbiAgICA8L3AtdGFiUGFuZWw+XG4gICAgPHAtdGFiUGFuZWwgbGVmdEljb249XCJwaSBwaS1tb25leS1iaWxsXCIgaGVhZGVyPVwiNC4gVmFsb3Jlc1wiPlxuICAgICAgPGFwcC1jb2QtZm9ybS1zdGVwLWZvdXIgKGNoYW5nZVN0ZXBFdmVudCk9XCJjaGFuZ2VTdGVwKCRldmVudClcIiAoZmluYW5jaW5nRGF0YSk9XCJzYXZlRmluYW5jaW5nRGF0YSgkZXZlbnQpXCIgY2xhc3M9XCJwLTFcIj48L2FwcC1jb2QtZm9ybS1zdGVwLWZvdXI+XG4gICAgPC9wLXRhYlBhbmVsPlxuICAgIDxwLXRhYlBhbmVsIGxlZnRJY29uPVwicGkgcGktZXllXCIgaGVhZGVyPVwiNS4gT2JzZXJ2YWNpb25lc1wiPlxuICAgICAgPGFwcC1jb2QtZm9ybS1zdGVwLWZpdmUgW3VzZXJSb2xlXT1cInVzZXJSb2xlXCIgKGNoYW5nZVN0ZXBFdmVudCk9XCJjaGFuZ2VTdGVwKCRldmVudClcIiAoYWN0aW9uKT1cImdldEZvcm1BY3Rpb24oJGV2ZW50KVwiIGNsYXNzPVwicC0xXCI+PC9hcHAtY29kLWZvcm0tc3RlcC1maXZlPlxuICAgIDwvcC10YWJQYW5lbD5cbiAgPC9wLXRhYlZpZXc+XG5cbiAgXG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNVbmF1dGhvcml6ZWQ+XG4gIDxzcGFuIGNsYXNzPVwiZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGZvbnQtYm9sZCBwLTIgYmcteWVsbG93LTIwMCBib3JkZXItcm91bmQtbGcgdy1mdWxsXCI+XG4gICAgTm8gdGllbmVzIGxvcyBwZXJtaXNvcyBwYXJhIGFjY2VkZXIgYSBlc3RhIGZ1bmNpb25hbGlkYWQsIGNvbXVuw61jYXRlIGNvbiBlbCBkZXNhcnJvbGxhZG9yLlxuICA8L3NwYW4+XG48L25nLXRlbXBsYXRlPlxuXG5cbjxpcHQtbG9hZGVyICpuZ0lmPVwiaXNMb2FkaW5nXCIgW2lzRGlhbG9nXT1cInRydWVcIiBbbWVzc2FnZV09XCJsb2FkZXJNZXNzYWdlXCI+PC9pcHQtbG9hZGVyPiJdfQ==
225
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kLWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vZGVzaWduLXN5c3RlbS9zcmMvbGliL2NvZC9jb2QtZm9ybS9jb2QtZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9kZXNpZ24tc3lzdGVtL3NyYy9saWIvY29kL2NvZC1mb3JtL2NvZC1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUE0QixNQUFNLGVBQWUsQ0FBQztBQUczRSxPQUFPLElBQUksTUFBTSxhQUFhLENBQUM7Ozs7Ozs7Ozs7Ozs7O0FBWS9CLE1BQU0sT0FBTyxnQkFBZ0I7SUFpQjNCLFlBQ1UsV0FBd0IsRUFDeEIsZUFBdUMsRUFDdkMsZUFBZ0MsRUFDaEMsaUJBQW9DO1FBSHBDLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLG9CQUFlLEdBQWYsZUFBZSxDQUF3QjtRQUN2QyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDaEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQWhCdEMsaUJBQVksR0FBYTtZQUMvQixFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUU7U0FDdkIsQ0FBQztRQUVLLGdCQUFXLEdBQVcsQ0FBQyxDQUFDO1FBQ3hCLGNBQVMsR0FBVyxrQ0FBa0MsQ0FBQztRQUV2RCxjQUFTLEdBQVcsQ0FBQyxDQUFDO1FBRXRCLGNBQVMsR0FBWSxLQUFLLENBQUM7UUFDM0Isa0JBQWEsR0FBVyxFQUFFLENBQUM7UUFRaEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ2pELENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxPQUFPLENBQUMsd0JBQXdCLENBQUMsRUFBRTtZQUNyQyxJ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LEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxLQUFLLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSztZQUN2RixrQkFBa0IsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sS0FBSyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUs7WUFDdkYsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEtBQUssb0JBQW9CLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLO1lBQ3ZGLGNBQWMsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sS0FBSyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUs7WUFDL0UsYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFjO1NBQ25DLENBQUE7UUFFRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQsVUFBVSxDQUFDLElBQVk7UUFDckIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7SUFDMUIsQ0FBQzs7NkdBNU5VLGdCQUFnQjtpR0FBaEIsZ0JBQWdCLHVJQ2Y3QixrOERBZ0N1RjsyRkRqQjFFLGdCQUFnQjtrQkFMNUIsU0FBUzsrQkFDRSxjQUFjO3FNQU1mLHNCQUFzQjtzQkFBOUIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0ICogYXMgbW9tZW50IGZyb20gJ21vbWVudCc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCBTd2FsIGZyb20gJ3N3ZWV0YWxlcnQyJztcbmltcG9ydCB7IENyZWF0ZUNPRFJxIH0gZnJvbSAnLi4vLi4vY29yZS9tb2RlbHMvY29kL2NvZC1ycS5tb2RlbCc7XG5pbXBvcnQgeyBDb21tZXJjaWFsU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvc2VydmljZXMvY29tbWVyY2lhbC1zZXJ2aWNlL2NvbWVyY2lhbC5zZXJ2aWNlJztcbmltcG9ydCB7IEFkaWNJbmZvQnlDb2RlUnEsIENvZEFkaXRpb25hbEluZm9ybWF0aW9uUnEsIENvZFBhcmVudFJxLCBQYXJlbnRCeUNvZGVScSB9IGZyb20gJy4uLy4uL2NvcmUvbW9kZWxzL2NvbW1lcmNpYWwvY29tbWVyY2lhbC5tb2RlbCdcbmltcG9ydCB7IEJhc2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS91dGlscy9iYXNlLXNlcnZpY2UvYmFzZS5zZXJ2aWNlJztcbmltcG9ydCB7IENvZEZvcm1Db250cm9scywgQ29udHJvbCB9IGZyb20gJy4uL2xvZ2ljL2NvZC1mb3JtLWNvbnRyb2xzJztcbmltcG9ydCB7IExvY2FsU3RvcmFnZUNPRFNlcnZpY2UgfSBmcm9tICcuLi9sb2dpYy9sb2NhbC1zdG9yYWdlLWNvZC5zZXJ2aWNlJztcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2lwdC1jb2QtZm9ybScsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb2QtZm9ybS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogW11cbn0pXG5leHBvcnQgY2xhc3MgQ29kRm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG5cbiAgQElucHV0KCkgZGF0YUZyb21QcmV2aXVzQ29kRGF0YT86IGFueTtcbiAgc3Vic2NyaXB0aW9uPzogU3Vic2NyaXB0aW9uO1xuXG4gIHByaXZhdGUgYWxsb3dlZFJvbGVzOiBudW1iZXJbXSA9IFtcbiAgICAzMCwgMzEsIDMyLCA0MCwgNDEsIDQyLFxuICBdO1xuXG4gIHB1YmxpYyBjdXJyZW50U3RlcDogbnVtYmVyID0gMDtcbiAgcHVibGljIGZvcm1UaXRsZTogc3RyaW5nID0gJ0Zvcm11bGFyaW8gcGFyYSBjcmVhY2nDs24gZGVsIENPRCc7XG4gIHB1YmxpYyB1c2VyUm9sZTogbnVtYmVyO1xuICBwdWJsaWMgZm9ybVN0ZXBzOiBudW1iZXIgPSA1O1xuICBwdWJsaWMgZmluYW5jaW5nRGF0YT86IGFueVtdO1xuICBwdWJsaWMgaXNMb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XG4gIHB1YmxpYyBsb2FkZXJNZXNzYWdlOiBzdHJpbmcgPSAnJztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGJhc2VTZXJ2aWNlOiBCYXNlU2VydmljZSxcbiAgICBwcml2YXRlIGxvY2FsU3RvcmFnZUNPRDogTG9jYWxTdG9yYWdlQ09EU2VydmljZSxcbiAgICBwcml2YXRlIGNvZEZvcm1Db250cm9sczogQ29kRm9ybUNvbnRyb2xzLFxuICAgIHByaXZhdGUgY29tbWVyY2lhbFNlcnZpY2U6IENvbW1lcmNpYWxTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMudXNlclJvbGUgPSB0aGlzLmJhc2VTZXJ2aWNlLmdldFVzZXJSb2xlKCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbJ2RhdGFGcm9tUHJldml1c0NvZERhdGEnXSkge1xuICAgICAgaWYgKHRoaXMuZGF0YUZyb21QcmV2aXVzQ29kRGF0YSAhPSBudWxsKSB7XG4gICAgICAgIHRoaXMuZm9ybVRpdGxlID0gJ0Zvcm11bGFyaW8gcGFyYSB2ZXJpZmljYXIgaW5mb3JtYWNpw7NuIGRlbCBDT0QnO1xuICAgICAgICBjb25zb2xlLmxvZyh0aGlzLmRhdGFGcm9tUHJldml1c0NvZERhdGEpO1xuICAgICAgICB0aGlzLmdldENvZGJ5Q29kZSgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5mb3JtVGl0bGUgPSAnRm9ybXVsYXJpbyBwYXJhIGNyZWFjacOzbiBkZWwgQ09EJztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBhbGxvd2VkUm9sZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5hbGxvd2VkUm9sZXMuaW5jbHVkZXModGhpcy51c2VyUm9sZSk7XG4gIH1cblxuICBnZXRDb2RieUNvZGUoKSB7XG4gICAgLy8gVE9ETzogVHJhZXIgQ09EIHBvciBjw7NkaWdvIHkgcGludGFybG9cbiAgICBjb25zb2xlLmxvZyh0aGlzLmRhdGFGcm9tUHJldml1c0NvZERhdGEpO1xuICB9XG4gIFxuXG4gIHNhdmVGaW5hbmNpbmdEYXRhKGRhdGE6IGFueVtdKSB7XG4gICAgaWYgKGRhdGEpIHtcbiAgICAgIGNvbnN0IGRhdGVzOiBzdHJpbmdbXSA9IFtdO1xuICAgICAgZGF0YS5mb3JFYWNoKHAgPT4ge1xuICAgICAgICBjb25zdCBkYXRlID0gcFsyXTtcbiAgICAgICAgZGF0ZXMucHVzaChkYXRlKTtcbiAgICAgIH0pXG4gICAgICB0aGlzLmZpbmFuY2luZ0RhdGEgPSBkYXRlcztcbiAgICB9XG4gIH1cblxuICBnZXRGb3JtQWN0aW9uKGFjdGlvbjogc3RyaW5nKSB7XG4gICAgaWYgKCF0aGlzLmZpbmFuY2luZ0RhdGEgJiYgdGhpcy5sb2NhbFN0b3JhZ2VDT0QuZ2V0Q29kRm9ybURhdGEoNCwgJ3BheW1lbnRfbWV0aG9kJykgPT09ICcxJykge1xuICAgICAgU3dhbC5maXJlKHtcbiAgICAgICAgdGl0bGU6ICdRdWVyaWRvIGFzZXNvcicsXG4gICAgICAgIHRleHQ6ICdEZWJlIGhhY2VyIGVsIGPDoWxjdWxvIGRlIGxhcyBjdW90YXMgZW4gZWwgcGFzbyA0JyxcbiAgICAgICAgaWNvbjogJ2Vycm9yJ1xuICAgICAgfSlcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgdG90YWxEYXRhOiBhbnlbXSA9IFtdO1xuXG4gICAgdGhpcy5zdWJzY3JpcHRpb24gPSB0aGlzLmNvZEZvcm1Db250cm9scy5nZXRDb250cm9sVmFsdWVzKCkuc3Vic2NyaWJlKChjb250cm9scykgPT4ge1xuICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPD0gdGhpcy5mb3JtU3RlcHM7IGkrKykge1xuICAgICAgICBsZXQgY29udHJvbHNCeVN0ZXA6IENvbnRyb2xbXSA9IGNvbnRyb2xzW2ktMV07XG4gICAgICAgIGNvbnRyb2xzQnlTdGVwLmZvckVhY2goY29udHJvbCA9PiB7XG4gICAgICAgICAgbGV0IHZhbHVlID0gdGhpcy5sb2NhbFN0b3JhZ2VDT0QuZ2V0Q29kRm9ybURhdGEoaSwgY29udHJvbC5uYW1lKTtcbiAgICAgICAgICAvLyBDYW1iaWFyIFRydWUvRmFsc2UgZGVsIG11bHRpY3VsdHVyYWxpc21vIDEvMFxuICAgICAgICAgIGlmICh2YWx1ZSA9PT0gJ2ZhbHNlJyAmJiBjb250cm9sLmRlc2NyaXB0aW9uID09PSAnTXVsdGljdWx0dXJhbGlzbW8nKSB7XG4gICAgICAgICAgICB0b3RhbERhdGEucHVzaCh7XG4gICAgICAgICAgICAgIGNvbnRyb2w6IGNvbnRyb2wubmFtZSxcbiAgICAgICAgICAgICAgaXNSZXF1aXJlZDogY29udHJvbC5yZXF1aXJlZCxcbiAgICAgICAgICAgICAgdmFsdWU6ICcwJyxcbiAgICAgICAgICAgICAgZGVzY3JpcHRpb246IGNvbnRyb2wuZGVzY3JpcHRpb25cbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfSBlbHNlIGlmICh2YWx1ZSA9PT0gJ2ZhbHNlJyAmJiBjb250cm9sLmRlc2NyaXB0aW9uID09PSAnTXVsdGljdWx0dXJhbGlzbW8nKSB7XG4gICAgICAgICAgICB0b3RhbERhdGEucHVzaCh7XG4gICAgICAgICAgICAgIGNvbnRyb2w6IGNvbnRyb2wubmFtZSxcbiAgICAgICAgICAgICAgaXNSZXF1aXJlZDogY29udHJvbC5yZXF1aXJlZCxcbiAgICAgICAgICAgICAgdmFsdWU6ICcxJyxcbiAgICAgICAgICAgICAgZGVzY3JpcHRpb246IGNvbnRyb2wuZGVzY3JpcHRpb25cbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRvdGFsRGF0YS5wdXNoKHtcbiAgICAgICAgICAgICAgY29udHJvbDogY29udHJvbC5uYW1lLFxuICAgICAgICAgICAgICBpc1JlcXVpcmVkOiBjb250cm9sLnJlcXVpcmVkLFxuICAgICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgICAgZGVzY3JpcHRpb246IGNvbnRyb2wuZGVzY3JpcHRpb25cbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgLy8gVmFsaWRhciBlcnJvcmVzXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRvdGFsRGF0YS5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb25zdCBlbGVtZW50ID0gdG90YWxEYXRhW2ldO1xuICAgICAgICBpZiAoIWVsZW1lbnQudmFsdWUgJiYgZWxlbWVudC5pc1JlcXVpcmVkKSB7XG4gICAgICAgICAgU3dhbC5maXJlKHtcbiAgICAgICAgICAgIHRpdGxlOiAnRXJyb3InLFxuICAgICAgICAgICAgdGV4dDogYFJldmlzYXIgZWwgY2FtcG86IFwiJHtlbGVtZW50LmRlc2NyaXB0aW9ufVwiYCxcbiAgICAgICAgICAgIGljb246ICdlcnJvcidcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoYWN0aW9uID09PSAnY3JlYXRlJykgdGhpcy5jcmVhdGVDT0QodG90YWxEYXRhKTtcbiAgICAgIGlmIChhY3Rpb24gPT09ICd1cGRhdGUnKSB0aGlzLnVwZGF0ZUNPRCh0b3RhbERhdGEpO1xuICAgIH0pXG5cbiAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuXG4gIH1cblxuICB1cGRhdGVDT0QodG90YWxEYXRhOiBhbnlbXSkge1xuICAgIGNvbnNvbGUubG9nKCdhY3R1YWxpemFuZG8gQ09ELi4uJyk7XG4gIH1cblxuICBjcmVhdGVDT0QodG90YWxEYXRhOiBhbnlbXSkge1xuICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcbiAgICB0aGlzLmxvYWRlck1lc3NhZ2UgPSAnQ3JlYW5kbyBDT0QsIGVzcGVyZSB1biBtb21lbnRvJ1xuXG4gICAgbGV0IHJlcXVlc3Q6IENyZWF0ZUNPRFJxID0gdGhpcy5nZXRDcmVhdGVDT0RScSh0b3RhbERhdGEpO1xuICAgIHRoaXMuY29tbWVyY2lhbFNlcnZpY2UuY3JlYXRlQ09EKHJlcXVlc3QpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzcG9uc2U6IGFueSkgPT4ge1xuICAgICAgICBjb25zb2xlLmxvZyhyZXNwb25zZSk7XG4gICAgICAgIGlmIChyZXNwb25zZS5tZXNzYWdlLmNvZGUgPT09IDEpIHtcbiAgICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMubG9hZGVyTWVzc2FnZSA9ICcnO1xuICAgICAgICAgIFN3YWwuZmlyZSh7XG4gICAgICAgICAgICB0aXRsZTogJ1BlcmZlY3RvIScsXG4gICAgICAgICAgICB0ZXh0OiAnRWwgQ09EIGhhIHNpZG8gY3JlYWRvIGV4aXRvc2FtZW50ZS4nLFxuICAgICAgICAgICAgaWNvbjogJ3N1Y2Nlc3MnXG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIGVycm9yOiAoZXJyOiBhbnkpID0+IHtcbiAgICAgICAgY29uc29sZS5sb2coZXJyKTtcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5sb2FkZXJNZXNzYWdlID0gJyc7XG4gICAgICAgIFN3YWwuZmlyZSh7XG4gICAgICAgICAgdGl0bGU6ICdFcnJvcicsXG4gICAgICAgICAgdGV4dDogZXJyLmVycm9yLnRleHQsXG4gICAgICAgICAgaWNvbjogJ2Vycm9yJ1xuICAgICAgICB9KVxuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICBnZXRDcmVhdGVDT0RScShkYXRhOiBhbnlbXSk6IENyZWF0ZUNPRFJxIHtcbiAgICBsZXQgcmVxdWVzdDogQ3JlYXRlQ09EUnEgPSB7XG4gICAgICB0b2tlbjogdGhpcy5iYXNlU2VydmljZS5nZXRVc2VyVG9rZW4oKSxcbiAgICAgIGFjYWRlbWljX3BsYW46IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnYWNhZGVtaWNfcGxhbicpWzBdLnZhbHVlLFxuICAgICAgY291cnNlX3R5cGU6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnY291cnNlX3R5cGUnKVswXS52YWx1ZSxcbiAgICAgIGFncmVlbWVudF9ieV9jYXRlZ29yeTogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdhZ3JlZW1lbnRfYnlfY2F0ZWdvcnknKVswXS52YWx1ZSxcbiAgICAgIGVuZ2xpc2hfbGV2ZWw6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnZW5nbGlzaF9sZXZlbCcpWzBdLnZhbHVlLFxuICAgICAgYXZhaWxpYmxlX2NvdXJzZXM6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnYXZhaWxpYmxlX2NvdXJzZXMnKVswXS52YWx1ZSxcbiAgICAgIHN0dWRlbnRfYWRkcmVzczogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdzdHVkZW50X2FkZHJlc3MnKVswXS52YWx1ZSxcbiAgICAgIGJpcnRoZGF0ZTogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdiaXJ0aGRhdGUnKVswXS52YWx1ZSxcbiAgICAgIGNvdW50cnk6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnY291bnRyeScpWzBdLnZhbHVlLFxuICAgICAgc3RhdGU6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnc3RhdGUnKVswXS52YWx1ZSxcbiAgICAgIGNpdHk6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnY2l0eScpWzBdLnZhbHVlLFxuICAgICAgc3R1ZGVudF9pZF9jYXJkX3R5cGU6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnc3R1ZGVudF9pZF9jYXJkX3R5cGUnKVswXS52YWx1ZSxcbiAgICAgIHN0dWRlbnRfaWRfY2FyZDogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdzdHVkZW50X2lkX2NhcmQnKVswXS52YWx1ZSxcbiAgICAgIHN0dWRlbnRfbGFzdF9uYW1lOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3N0dWRlbnRfbGFzdF9uYW1lJylbMF0udmFsdWUsXG4gICAgICBzdHVkZW50X25hbWU6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnc3R1ZGVudF9uYW1lJylbMF0udmFsdWUsXG4gICAgICBzdHVkZW50X2VtYWlsOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3N0dWRlbnRfZW1haWwnKVswXS52YWx1ZSxcbiAgICAgIG5pY2tuYW1lOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ25pY2tuYW1lJylbMF0udmFsdWUsXG4gICAgICBnZW5kZXI6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnZ2VuZGVyJylbMF0udmFsdWUsXG4gICAgICBhZ2U6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnYWdlJylbMF0udmFsdWUsXG4gICAgICBzdHVkZW50X29jY3VwYXRpb246IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnc3R1ZGVudF9vY2N1cGF0aW9uJylbMF0udmFsdWUsXG4gICAgICBzdHJhdHVtOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3N0cmF0dW0nKVswXS52YWx1ZSxcbiAgICAgIGdyYWRlOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ2dyYWRlJylbMF0udmFsdWUsXG4gICAgICBjaXZpbF9zdGF0dXM6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnY2l2aWxfc3RhdHVzJylbMF0udmFsdWUsXG4gICAgICBzdHVkZW50X3Bob25lX2luZGljYXRpdmU6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnc3R1ZGVudF9waG9uZV9pbmRpY2F0aXZlJylbMF0udmFsdWUsXG4gICAgICBzdHVkZW50X3Bob25lX251bWJlcjogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdzdHVkZW50X3Bob25lX251bWJlcicpWzBdLnZhbHVlLFxuICAgICAgcGFzc3dvcmQ6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAncGFzc3dvcmQnKVswXS52YWx1ZSxcbiAgICAgIHJlX3Bhc3N3b3JkOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3JlX3Bhc3N3b3JkJylbMF0udmFsdWUsXG4gICAgICBwYXJlbnRfaWRfY2FyZF90eXBlOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3BhcmVudF9pZF9jYXJkX3R5cGUnKVswXS52YWx1ZSxcbiAgICAgIHBhcmVudF9pZF9jYXJkOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3BhcmVudF9pZF9jYXJkJylbMF0udmFsdWUsXG4gICAgICBwYXJlbnRfbGFzdF9uYW1lOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3BhcmVudF9sYXN0X25hbWUnKVswXS52YWx1ZSxcbiAgICAgIHBhcmVudF9uYW1lOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3BhcmVudF9uYW1lJylbMF0udmFsdWUsXG4gICAgICBuZWVkQXRlbmRhbnQ6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnbmVlZEF0ZW5kYW50JylbMF0udmFsdWUsXG4gICAgICBwYXJlbnRfcGhvbmVfaW5kaWNhdGl2ZTogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdwYXJlbnRfcGhvbmVfaW5kaWNhdGl2ZScpWzBdLnZhbHVlLFxuICAgICAgcGFyZW50X29jY3VwYXRpb246IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAncGFyZW50X29jY3VwYXRpb24nKVswXS52YWx1ZSxcbiAgICAgIHBhcmVudF9hZGRyZXNzOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3BhcmVudF9hZGRyZXNzJylbMF0udmFsdWUsXG4gICAgICBwYXJlbnRfcGhvbmVfbnVtYmVyOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3BhcmVudF9waG9uZV9udW1iZXInKVswXS52YWx1ZSxcbiAgICAgIHBheW1lbnRfZGF0ZTogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdwYXltZW50X2RhdGUnKVswXS52YWx1ZSxcbiAgICAgIHByb2dyYW1fcHJpY2U6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAncHJvZ3JhbV9wcmljZScpWzBdLnZhbHVlLFxuICAgICAgcGF5bWVudF9tZXRob2Q6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAncGF5bWVudF9tZXRob2QnKVswXS52YWx1ZSxcbiAgICAgIHF1b3RhX3RpbWVzOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3F1b3RhX3RpbWVzJylbMF0udmFsdWUsXG4gICAgICB0b3RhbF9wcmljZTogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICd0b3RhbF9wcmljZScpWzBdLnZhbHVlLFxuICAgICAgbWFya2V0aW5nX3JlYXNvbnM6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnbWFya2V0aW5nX3JlYXNvbnMnKVswXS52YWx1ZSxcbiAgICAgIG9ic2VydmF0aW9uOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ29ic2VydmF0aW9uJylbMF0udmFsdWUsXG4gICAgICBzdHVkeV9yZWFzb25zOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3N0dWR5X3JlYXNvbnMnKVswXS52YWx1ZSxcbiAgICAgIHRlcm1zOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3Rlcm1zJylbMF0udmFsdWUsXG4gICAgICBkaXNhYmlsaXR5OiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ2Rpc2FiaWxpdHknKVswXS52YWx1ZSxcbiAgICAgIG11bHRpY3VsdHVyYWxpc21fMTogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdtdWx0aWN1bHR1cmFsaXNtXzEnKVswXS52YWx1ZSxcbiAgICAgIG11bHRpY3VsdHVyYWxpc21fMjogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdtdWx0aWN1bHR1cmFsaXNtXzInKVswXS52YWx1ZSxcbiAgICAgIG11bHRpY3VsdHVyYWxpc21fMzogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdtdWx0aWN1bHR1cmFsaXNtXzMnKVswXS52YWx1ZSxcbiAgICAgIG11bHRpY3VsdHVyYWxpc21fNDogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdtdWx0aWN1bHR1cmFsaXNtXzQnKVswXS52YWx1ZSxcbiAgICAgIG11bHRpY3VsdHVyYWxpc21fNTogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdtdWx0aWN1bHR1cmFsaXNtXzUnKVswXS52YWx1ZSxcbiAgICAgIG11bHRpY3VsdHVyYWxpc21fNjogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdtdWx0aWN1bHR1cmFsaXNtXzYnKVswXS52YWx1ZSxcbiAgICAgIGhlYWx0aF9yZWdpbWVuOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ2hlYWx0aF9yZWdpbWVuJylbMF0udmFsdWUsXG4gICAgICBwYXltZW50X2RhdGVzOiB0aGlzLmZpbmFuY2luZ0RhdGEhXG4gICAgfVxuXG4gICAgcmV0dXJuIHJlcXVlc3Q7XG4gIH1cblxuICBjaGFuZ2VTdGVwKHN0ZXA6IG51bWJlcikge1xuICAgIHRoaXMuY3VycmVudFN0ZXAgPSBzdGVwO1xuICB9XG5cbn1cbiIsIjxkaXYgKm5nSWY9XCJhbGxvd2VkUm9sZSgpIDsgZWxzZSBVbmF1dGhvcml6ZWRcIiBjbGFzcz1cImNvbnRhaW5lciBmbGV4IGZsZXgtY29sdW1uIGJnLXdoaXRlIGJvcmRlci1yb3VuZC0yeGwgcC0zIGNvbnRhaW5lciBhbmltYXRlX19hbmltYXRlZCBhbmltYXRlX19mYWRlSW5VcFwiPlxuXG4gIDxzcGFuIGNsYXNzPVwiYmctcHJpbWFyeSBwLTIgYm9yZGVyLXJvdW5kIG1iLTIgdy1hdXRvIHRleHQtbGcgZm9udC1zZW1pYm9sZFwiPnt7IGZvcm1UaXRsZSB9fTwvc3Bhbj5cblxuICA8cC10YWJWaWV3IFthY3RpdmVJbmRleF09XCJjdXJyZW50U3RlcFwiIChhY3RpdmVJbmRleENoYW5nZSk9XCJjdXJyZW50U3RlcCA9ICRldmVudFwiIFtzY3JvbGxhYmxlXT1cInRydWVcIj5cbiAgICA8cC10YWJQYW5lbCBsZWZ0SWNvbj1cInBpIHBpLXN0YXJcIiBoZWFkZXI9XCIxLiBQbGFuZXMgeSBjb252ZW5pb3NcIj5cbiAgICAgIDxhcHAtY29kLWZvcm0tc3RlcC1vbmUgKGNoYW5nZVN0ZXBFdmVudCk9XCJjaGFuZ2VTdGVwKCRldmVudClcIiBjbGFzcz1cInAtMVwiPjwvYXBwLWNvZC1mb3JtLXN0ZXAtb25lPlxuICAgIDwvcC10YWJQYW5lbD5cbiAgICA8cC10YWJQYW5lbCBsZWZ0SWNvbj1cInBpIHBpLWlkLWNhcmRcIiBoZWFkZXI9XCIyLiBEYXRvcyBkZWwgZXN0dWRpYW50ZVwiPlxuICAgICAgPGFwcC1jb2QtZm9ybS1zdGVwLXR3byBbaW5pdGlhbERhdGFdPVwiZGF0YUZyb21QcmV2aXVzQ29kRGF0YVwiIChjaGFuZ2VTdGVwRXZlbnQpPVwiY2hhbmdlU3RlcCgkZXZlbnQpXCIgY2xhc3M9XCJwLTFcIj48L2FwcC1jb2QtZm9ybS1zdGVwLXR3bz5cbiAgICA8L3AtdGFiUGFuZWw+XG4gICAgPHAtdGFiUGFuZWwgbGVmdEljb249XCJwaSBwaS11c2VyLWVkaXRcIiBoZWFkZXI9XCIzLiBEYXRvcyBkZWwgYWN1ZGllbnRlXCI+XG4gICAgICA8YXBwLWNvZC1mb3JtLXN0ZXAtdGhyZWUgW2luaXRpYWxEYXRhXT1cImRhdGFGcm9tUHJldml1c0NvZERhdGFcIiAoY2hhbmdlU3RlcEV2ZW50KT1cImNoYW5nZVN0ZXAoJGV2ZW50KVwiIGNsYXNzPVwicC0xXCI+PC9hcHAtY29kLWZvcm0tc3RlcC10aHJlZT5cbiAgICA8L3AtdGFiUGFuZWw+XG4gICAgPHAtdGFiUGFuZWwgbGVmdEljb249XCJwaSBwaS1tb25leS1iaWxsXCIgaGVhZGVyPVwiNC4gVmFsb3Jlc1wiPlxuICAgICAgPGFwcC1jb2QtZm9ybS1zdGVwLWZvdXIgKGNoYW5nZVN0ZXBFdmVudCk9XCJjaGFuZ2VTdGVwKCRldmVudClcIiAoZmluYW5jaW5nRGF0YSk9XCJzYXZlRmluYW5jaW5nRGF0YSgkZXZlbnQpXCIgY2xhc3M9XCJwLTFcIj48L2FwcC1jb2QtZm9ybS1zdGVwLWZvdXI+XG4gICAgPC9wLXRhYlBhbmVsPlxuICAgIDxwLXRhYlBhbmVsIGxlZnRJY29uPVwicGkgcGktZXllXCIgaGVhZGVyPVwiNS4gT2JzZXJ2YWNpb25lc1wiPlxuICAgICAgPGFwcC1jb2QtZm9ybS1zdGVwLWZpdmUgW3VzZXJSb2xlXT1cInVzZXJSb2xlXCIgKGNoYW5nZVN0ZXBFdmVudCk9XCJjaGFuZ2VTdGVwKCRldmVudClcIiAoYWN0aW9uKT1cImdldEZvcm1BY3Rpb24oJGV2ZW50KVwiIGNsYXNzPVwicC0xXCI+PC9hcHAtY29kLWZvcm0tc3RlcC1maXZlPlxuICAgIDwvcC10YWJQYW5lbD5cbiAgPC9wLXRhYlZpZXc+XG5cbiAgXG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNVbmF1dGhvcml6ZWQ+XG4gIDxzcGFuIGNsYXNzPVwiZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGZvbnQtYm9sZCBwLTIgYmcteWVsbG93LTIwMCBib3JkZXItcm91bmQtbGcgdy1mdWxsXCI+XG4gICAgTm8gdGllbmVzIGxvcyBwZXJtaXNvcyBwYXJhIGFjY2VkZXIgYSBlc3RhIGZ1bmNpb25hbGlkYWQsIGNvbXVuw61jYXRlIGNvbiBlbCBkZXNhcnJvbGxhZG9yLlxuICA8L3NwYW4+XG48L25nLXRlbXBsYXRlPlxuXG5cbjxpcHQtbG9hZGVyICpuZ0lmPVwiaXNMb2FkaW5nXCIgW2lzRGlhbG9nXT1cInRydWVcIiBbbWVzc2FnZV09XCJsb2FkZXJNZXNzYWdlXCI+PC9pcHQtbG9hZGVyPiJdfQ==
@@ -21,23 +21,37 @@ export class CodFormStepTwoComponent extends CodFormSteps {
21
21
  // Controls del formulario
22
22
  this.controls = new CodFormControls().controls[1];
23
23
  }
24
- ngOnInit() {
24
+ // ngOnInit(): void {
25
+ // this.initForm();
26
+ // this.startLocalStorageWork();
27
+ // this.validateErrors()
28
+ // if (this.initialData) this.setDataFromPreviusCod();
29
+ // this.getParameters();
30
+ // this.selectCountry(this.localStorageCOD.getCodFormData(2, 'country'));
31
+ // }
32
+ ngOnChanges(changes) {
25
33
  this.initForm();
26
34
  this.startLocalStorageWork();
27
35
  this.validateErrors();
28
- if (this.initialData)
29
- this.setDataFromPreviusCod();
30
- this.getParameters(this.initialData.student.city);
31
- this.selectCountry(this.localStorageCOD.getCodFormData(2, 'country'));
36
+ this.getParameters();
37
+ if (changes['initialData']) {
38
+ if (this.initialData != null) {
39
+ console.log(this.initialData);
40
+ this.setDataFromPreviusCod();
41
+ }
42
+ else {
43
+ console.log('No hay data cargada para el Paso 2');
44
+ }
45
+ }
32
46
  }
33
47
  setDataFromPreviusCod() {
34
48
  this.codFormStepTwo.controls['student_name'].setValue(this.initialData.student.name);
35
49
  this.codFormStepTwo.controls['student_last_name'].setValue(this.initialData.student.last_name);
36
50
  this.codFormStepTwo.controls['student_id_card_type'].setValue(this.initialData.student.id_card_type);
37
51
  this.codFormStepTwo.controls['student_id_card'].setValue(this.initialData.student.id_card);
38
- this.codFormStepTwo.controls['country'].setValue(this.dataCountry.country);
39
- this.codFormStepTwo.controls['state'].setValue(this.dataCountry.country);
40
- this.codFormStepTwo.controls['city'].setValue(this.initialData.student.city);
52
+ this.codFormStepTwo.controls['country'].setValue(this.initialData.student.city.country);
53
+ this.codFormStepTwo.controls['state'].setValue(this.initialData.student.city.state);
54
+ this.codFormStepTwo.controls['city'].setValue(this.initialData.student.city.code);
41
55
  this.codFormStepTwo.controls['gender'].setValue(this.initialData.student.gender);
42
56
  this.codFormStepTwo.controls['grade'].setValue(this.initialData.aditional_information.grade);
43
57
  this.codFormStepTwo.controls['student_occupation'].setValue(this.initialData.aditional_information.occupation);
@@ -123,7 +137,7 @@ export class CodFormStepTwoComponent extends CodFormSteps {
123
137
  }
124
138
  });
125
139
  }
126
- getParameters(codeCity) {
140
+ getParameters() {
127
141
  this.parameterService.getCardTypes('col').subscribe((response) => {
128
142
  this.idTypes = response.data;
129
143
  });
@@ -142,8 +156,11 @@ export class CodFormStepTwoComponent extends CodFormSteps {
142
156
  this.parameterService.getGenders().subscribe((response) => {
143
157
  this.genders = response.data;
144
158
  });
145
- this.parameterService.getConuntryStateByCity(codeCity).subscribe((response) => {
146
- this.dataCountry = response.data[0];
159
+ this.parameterService.getAllCities().subscribe((response) => {
160
+ this.cities = response.data;
161
+ });
162
+ this.parameterService.getAllStates().subscribe((response) => {
163
+ this.states = response.data;
147
164
  });
148
165
  // this.parameterService.getGenders().pipe(
149
166
  // map((response: any) => response.data)
@@ -258,7 +275,7 @@ export class CodFormStepTwoComponent extends CodFormSteps {
258
275
  }
259
276
  }
260
277
  CodFormStepTwoComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: CodFormStepTwoComponent, deps: [{ token: i1.FormBuilder }, { token: i2.ParameterService }], target: i0.ɵɵFactoryTarget.Component });
261
- CodFormStepTwoComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: CodFormStepTwoComponent, selector: "app-cod-form-step-two", inputs: { initialData: "initialData" }, outputs: { changeStepEvent: "changeStepEvent" }, usesInheritance: true, ngImport: i0, template: "<form autocomplete=\"off\" [formGroup]=\"codFormStepTwo\" class=\"grid\">\n\n <div class=\"col\">\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Nombres'\"\n [control]=\"codFormStepTwo.controls['student_name']\"\n ></ipt-input>\n <ipt-select\n [initialValue]=\"codFormStepTwo.controls['student_id_card_type'].value\"\n [control]=\"codFormStepTwo.controls['student_id_card_type']\"\n [selectCode]=\"codFormStepTwo.controls['student_id_card_type'].value === null ? 'Tipo de documento' : codFormStepTwo.controls['student_id_card_type'].value\"\n [isRequired]=\"true\"\n [data]=\"idTypes\"\n (eventSelect)=\"selectIdType($event)\"\n [defaultText]=\"'Tipo de documento'\"\n ></ipt-select>\n <ipt-select\n [initialValue]=\"codFormStepTwo.controls['country'].value\"\n [control]=\"codFormStepTwo.controls['country']\"\n [selectCode]=\"codFormStepTwo.controls['country'].value === null ? 'Pa\u00EDs de residencia' : codFormStepTwo.controls['country'].value\"\n (eventSelect)=\"selectCountry($event)\"\n [data]=\"countries\"\n [defaultText]=\"'Pa\u00EDs de residencia'\"\n ></ipt-select>\n <ipt-select\n [initialValue]=\"codFormStepTwo.controls['city'].value\"\n [control]=\"codFormStepTwo.controls['city']\"\n [selectCode]=\"codFormStepTwo.controls['city'].value === null ? 'Ciudad de residencia' : codFormStepTwo.controls['city'].value\"\n (eventSelect)=\"selectCity($event)\"\n [data]=\"cities\"\n [defaultText]=\"'Ciudad de residencia'\"\n ></ipt-select>\n <ipt-input\n onfocus=\"(this.type='date')\"\n [inputType]=\"'date'\"\n [control]=\"codFormStepTwo.controls['birthdate']\"\n [placeHolder]=\"'Fecha de nacimiento'\"\n ></ipt-input>\n <ipt-select\n [initialValue]=\"codFormStepTwo.controls['gender'].value\"\n [control]=\"codFormStepTwo.controls['gender']\"\n [data]=\"genders\"\n (eventSelect)=\"selectGender($event)\"\n [defaultText]=\"'G\u00E9nero'\"\n ></ipt-select>\n <ipt-select\n [initialValue]=\"codFormStepTwo.controls['stratum'].value\"\n [control]=\"codFormStepTwo.controls['stratum']\"\n [data]=\"stratums\"\n (eventSelect)=\"selectStratum($event)\"\n [defaultText]=\"'Estrato'\"\n ></ipt-select>\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Grado'\"\n [control]=\"codFormStepTwo.controls['grade']\"\n ></ipt-input>\n <ipt-select\n [initialValue]=\"codFormStepTwo.controls['student_phone_indicative'].value\"\n [control]=\"codFormStepTwo.controls['student_phone_indicative']\"\n [data]=\"indicatives\"\n (eventSelect)=\"selectIndicatives($event)\"\n [defaultText]=\"'Indicativo'\"\n ></ipt-select>\n <ipt-input\n [inputType]=\"'email'\"\n [placeHolder]=\"'Correo electr\u00F3nico'\"\n [control]=\"codFormStepTwo.controls['student_email']\"\n ></ipt-input>\n <ipt-input\n [inputType]=\"'password'\"\n [placeHolder]=\"'Repetir contrase\u00F1a'\"\n [control]=\"codFormStepTwo.controls['re_password']\"\n ></ipt-input>\n </div>\n\n <div class=\"col\">\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Apellidos'\"\n [control]=\"codFormStepTwo.controls['student_last_name']\"\n ></ipt-input>\n <ipt-input\n [inputType]=\"'number'\"\n [placeHolder]=\"'N\u00FAmero de documento'\"\n [control]=\"codFormStepTwo.controls['student_id_card']\"\n ></ipt-input>\n <ipt-select\n [initialValue]=\"codFormStepTwo.controls['state'].value\"\n [control]=\"codFormStepTwo.controls['state']\"\n [selectCode]=\"codFormStepTwo.controls['state'].value === null ? 'Departamento o estado' : codFormStepTwo.controls['state'].value\"\n [isRequired]=\"true\"\n (eventSelect)=\"selectState($event)\"\n [data]=\"states\"\n [defaultText]=\"'Departamento o estado'\"\n ></ipt-select>\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Direcci\u00F3n'\"\n [control]=\"codFormStepTwo.controls['student_address']\"\n ></ipt-input>\n <ipt-input\n [inputType]=\"'number'\"\n [placeHolder]=\"'Edad'\"\n [control]=\"codFormStepTwo.controls['age']\"\n ></ipt-input>\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Nickname'\"\n [control]=\"codFormStepTwo.controls['nickname']\"\n ></ipt-input>\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Ocupaci\u00F3n'\"\n [control]=\"codFormStepTwo.controls['student_occupation']\"\n ></ipt-input>\n <ipt-select\n [initialValue]=\"codFormStepTwo.controls['civil_status'].value\"\n [control]=\"codFormStepTwo.controls['civil_status']\"\n [data]=\"civilStatus\"\n (eventSelect)=\"selectCivilStatus($event)\"\n [defaultText]=\"'Estado civil'\"\n ></ipt-select>\n <ipt-input\n [inputType]=\"'number'\"\n [placeHolder]=\"'N\u00FAmero de tel\u00E9fono'\"\n [control]=\"codFormStepTwo.controls['student_phone_number']\"\n ></ipt-input>\n <ipt-input\n [inputType]=\"'password'\"\n [placeHolder]=\"'Contrase\u00F1a'\"\n [control]=\"codFormStepTwo.controls['password']\"\n ></ipt-input>\n </div>\n\n <div class=\"col-12\"></div>\n\n</form>\n\n<div class=\"flex mt-3 align-items-center gap-3\">\n <span *ngIf=\"codFormStepTwo.invalid && codFormStepTwo.touched\" class=\"text-red-500 font-bold text-center mt-1 py-2 bg-red-100 w-full border-round-xl\">{{ errorMessage }}</span>\n <button type=\"submit\" class=\"ml-auto p-button-sm\" (click)=\"sendForm()\" pButton label=\"Siguiente\" icon=\"pi pi-arrow-right\"></button>\n</div>\n", styles: [""], components: [{ type: i3.InputComponent, selector: "ipt-input", inputs: ["inputType", "placeHolder", "validateText", "withPipe", "list", "iconUrl", "control", "prefix", "thousands", "decimal"], outputs: ["dateSelected"] }, { type: i4.SelectComponent, selector: "ipt-select", inputs: ["isRequired", "data", "defaultText", "selectCode", "disabledSel", "initialValue", "control"], outputs: ["eventSelect"] }], directives: [{ type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }] });
278
+ CodFormStepTwoComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: CodFormStepTwoComponent, selector: "app-cod-form-step-two", inputs: { initialData: "initialData" }, outputs: { changeStepEvent: "changeStepEvent" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<form autocomplete=\"off\" [formGroup]=\"codFormStepTwo\" class=\"grid\">\n\n <div class=\"col\">\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Nombres'\"\n [control]=\"codFormStepTwo.controls['student_name']\"\n ></ipt-input>\n <ipt-select\n [initialValue]=\"codFormStepTwo.controls['student_id_card_type'].value\"\n [control]=\"codFormStepTwo.controls['student_id_card_type']\"\n [selectCode]=\"codFormStepTwo.controls['student_id_card_type'].value === null ? 'Tipo de documento' : codFormStepTwo.controls['student_id_card_type'].value\"\n [isRequired]=\"true\"\n [data]=\"idTypes\"\n (eventSelect)=\"selectIdType($event)\"\n [defaultText]=\"'Tipo de documento'\"\n ></ipt-select>\n <ipt-select\n [initialValue]=\"codFormStepTwo.controls['country'].value\"\n [control]=\"codFormStepTwo.controls['country']\"\n [selectCode]=\"codFormStepTwo.controls['country'].value === null ? 'Pa\u00EDs de residencia' : codFormStepTwo.controls['country'].value\"\n (eventSelect)=\"selectCountry($event)\"\n [data]=\"countries\"\n [defaultText]=\"'Pa\u00EDs de residencia'\"\n ></ipt-select>\n <ipt-select\n [initialValue]=\"codFormStepTwo.controls['city'].value\"\n [control]=\"codFormStepTwo.controls['city']\"\n [selectCode]=\"codFormStepTwo.controls['city'].value === null ? 'Ciudad de residencia' : codFormStepTwo.controls['city'].value\"\n (eventSelect)=\"selectCity($event)\"\n [data]=\"cities\"\n [defaultText]=\"'Ciudad de residencia'\"\n ></ipt-select>\n <ipt-input\n onfocus=\"(this.type='date')\"\n [inputType]=\"'date'\"\n [control]=\"codFormStepTwo.controls['birthdate']\"\n [placeHolder]=\"'Fecha de nacimiento'\"\n ></ipt-input>\n <ipt-select\n [initialValue]=\"codFormStepTwo.controls['gender'].value\"\n [control]=\"codFormStepTwo.controls['gender']\"\n [data]=\"genders\"\n (eventSelect)=\"selectGender($event)\"\n [defaultText]=\"'G\u00E9nero'\"\n ></ipt-select>\n <ipt-select\n [initialValue]=\"codFormStepTwo.controls['stratum'].value\"\n [control]=\"codFormStepTwo.controls['stratum']\"\n [data]=\"stratums\"\n (eventSelect)=\"selectStratum($event)\"\n [defaultText]=\"'Estrato'\"\n ></ipt-select>\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Grado'\"\n [control]=\"codFormStepTwo.controls['grade']\"\n ></ipt-input>\n <ipt-select\n [initialValue]=\"codFormStepTwo.controls['student_phone_indicative'].value\"\n [control]=\"codFormStepTwo.controls['student_phone_indicative']\"\n [data]=\"indicatives\"\n (eventSelect)=\"selectIndicatives($event)\"\n [defaultText]=\"'Indicativo'\"\n ></ipt-select>\n <ipt-input\n [inputType]=\"'email'\"\n [placeHolder]=\"'Correo electr\u00F3nico'\"\n [control]=\"codFormStepTwo.controls['student_email']\"\n ></ipt-input>\n <ipt-input\n [inputType]=\"'password'\"\n [placeHolder]=\"'Repetir contrase\u00F1a'\"\n [control]=\"codFormStepTwo.controls['re_password']\"\n ></ipt-input>\n </div>\n\n <div class=\"col\">\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Apellidos'\"\n [control]=\"codFormStepTwo.controls['student_last_name']\"\n ></ipt-input>\n <ipt-input\n [inputType]=\"'number'\"\n [placeHolder]=\"'N\u00FAmero de documento'\"\n [control]=\"codFormStepTwo.controls['student_id_card']\"\n ></ipt-input>\n <ipt-select\n [initialValue]=\"codFormStepTwo.controls['state'].value\"\n [control]=\"codFormStepTwo.controls['state']\"\n [selectCode]=\"codFormStepTwo.controls['state'].value === null ? 'Departamento o estado' : codFormStepTwo.controls['state'].value\"\n [isRequired]=\"true\"\n (eventSelect)=\"selectState($event)\"\n [data]=\"states\"\n [defaultText]=\"'Departamento o estado'\"\n ></ipt-select>\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Direcci\u00F3n'\"\n [control]=\"codFormStepTwo.controls['student_address']\"\n ></ipt-input>\n <ipt-input\n [inputType]=\"'number'\"\n [placeHolder]=\"'Edad'\"\n [control]=\"codFormStepTwo.controls['age']\"\n ></ipt-input>\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Nickname'\"\n [control]=\"codFormStepTwo.controls['nickname']\"\n ></ipt-input>\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Ocupaci\u00F3n'\"\n [control]=\"codFormStepTwo.controls['student_occupation']\"\n ></ipt-input>\n <ipt-select\n [initialValue]=\"codFormStepTwo.controls['civil_status'].value\"\n [control]=\"codFormStepTwo.controls['civil_status']\"\n [data]=\"civilStatus\"\n (eventSelect)=\"selectCivilStatus($event)\"\n [defaultText]=\"'Estado civil'\"\n ></ipt-select>\n <ipt-input\n [inputType]=\"'number'\"\n [placeHolder]=\"'N\u00FAmero de tel\u00E9fono'\"\n [control]=\"codFormStepTwo.controls['student_phone_number']\"\n ></ipt-input>\n <ipt-input\n [inputType]=\"'password'\"\n [placeHolder]=\"'Contrase\u00F1a'\"\n [control]=\"codFormStepTwo.controls['password']\"\n ></ipt-input>\n </div>\n\n <div class=\"col-12\"></div>\n\n</form>\n\n<div class=\"flex mt-3 align-items-center gap-3\">\n <span *ngIf=\"codFormStepTwo.invalid && codFormStepTwo.touched\" class=\"text-red-500 font-bold text-center mt-1 py-2 bg-red-100 w-full border-round-xl\">{{ errorMessage }}</span>\n <button type=\"submit\" class=\"ml-auto p-button-sm\" (click)=\"sendForm()\" pButton label=\"Siguiente\" icon=\"pi pi-arrow-right\"></button>\n</div>\n", styles: [""], components: [{ type: i3.InputComponent, selector: "ipt-input", inputs: ["inputType", "placeHolder", "validateText", "withPipe", "list", "iconUrl", "control", "prefix", "thousands", "decimal"], outputs: ["dateSelected"] }, { type: i4.SelectComponent, selector: "ipt-select", inputs: ["isRequired", "data", "defaultText", "selectCode", "disabledSel", "initialValue", "control"], outputs: ["eventSelect"] }], directives: [{ type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }] });
262
279
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: CodFormStepTwoComponent, decorators: [{
263
280
  type: Component,
264
281
  args: [{ selector: 'app-cod-form-step-two', template: "<form autocomplete=\"off\" [formGroup]=\"codFormStepTwo\" class=\"grid\">\n\n <div class=\"col\">\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Nombres'\"\n [control]=\"codFormStepTwo.controls['student_name']\"\n ></ipt-input>\n <ipt-select\n [initialValue]=\"codFormStepTwo.controls['student_id_card_type'].value\"\n [control]=\"codFormStepTwo.controls['student_id_card_type']\"\n [selectCode]=\"codFormStepTwo.controls['student_id_card_type'].value === null ? 'Tipo de documento' : codFormStepTwo.controls['student_id_card_type'].value\"\n [isRequired]=\"true\"\n [data]=\"idTypes\"\n (eventSelect)=\"selectIdType($event)\"\n [defaultText]=\"'Tipo de documento'\"\n ></ipt-select>\n <ipt-select\n [initialValue]=\"codFormStepTwo.controls['country'].value\"\n [control]=\"codFormStepTwo.controls['country']\"\n [selectCode]=\"codFormStepTwo.controls['country'].value === null ? 'Pa\u00EDs de residencia' : codFormStepTwo.controls['country'].value\"\n (eventSelect)=\"selectCountry($event)\"\n [data]=\"countries\"\n [defaultText]=\"'Pa\u00EDs de residencia'\"\n ></ipt-select>\n <ipt-select\n [initialValue]=\"codFormStepTwo.controls['city'].value\"\n [control]=\"codFormStepTwo.controls['city']\"\n [selectCode]=\"codFormStepTwo.controls['city'].value === null ? 'Ciudad de residencia' : codFormStepTwo.controls['city'].value\"\n (eventSelect)=\"selectCity($event)\"\n [data]=\"cities\"\n [defaultText]=\"'Ciudad de residencia'\"\n ></ipt-select>\n <ipt-input\n onfocus=\"(this.type='date')\"\n [inputType]=\"'date'\"\n [control]=\"codFormStepTwo.controls['birthdate']\"\n [placeHolder]=\"'Fecha de nacimiento'\"\n ></ipt-input>\n <ipt-select\n [initialValue]=\"codFormStepTwo.controls['gender'].value\"\n [control]=\"codFormStepTwo.controls['gender']\"\n [data]=\"genders\"\n (eventSelect)=\"selectGender($event)\"\n [defaultText]=\"'G\u00E9nero'\"\n ></ipt-select>\n <ipt-select\n [initialValue]=\"codFormStepTwo.controls['stratum'].value\"\n [control]=\"codFormStepTwo.controls['stratum']\"\n [data]=\"stratums\"\n (eventSelect)=\"selectStratum($event)\"\n [defaultText]=\"'Estrato'\"\n ></ipt-select>\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Grado'\"\n [control]=\"codFormStepTwo.controls['grade']\"\n ></ipt-input>\n <ipt-select\n [initialValue]=\"codFormStepTwo.controls['student_phone_indicative'].value\"\n [control]=\"codFormStepTwo.controls['student_phone_indicative']\"\n [data]=\"indicatives\"\n (eventSelect)=\"selectIndicatives($event)\"\n [defaultText]=\"'Indicativo'\"\n ></ipt-select>\n <ipt-input\n [inputType]=\"'email'\"\n [placeHolder]=\"'Correo electr\u00F3nico'\"\n [control]=\"codFormStepTwo.controls['student_email']\"\n ></ipt-input>\n <ipt-input\n [inputType]=\"'password'\"\n [placeHolder]=\"'Repetir contrase\u00F1a'\"\n [control]=\"codFormStepTwo.controls['re_password']\"\n ></ipt-input>\n </div>\n\n <div class=\"col\">\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Apellidos'\"\n [control]=\"codFormStepTwo.controls['student_last_name']\"\n ></ipt-input>\n <ipt-input\n [inputType]=\"'number'\"\n [placeHolder]=\"'N\u00FAmero de documento'\"\n [control]=\"codFormStepTwo.controls['student_id_card']\"\n ></ipt-input>\n <ipt-select\n [initialValue]=\"codFormStepTwo.controls['state'].value\"\n [control]=\"codFormStepTwo.controls['state']\"\n [selectCode]=\"codFormStepTwo.controls['state'].value === null ? 'Departamento o estado' : codFormStepTwo.controls['state'].value\"\n [isRequired]=\"true\"\n (eventSelect)=\"selectState($event)\"\n [data]=\"states\"\n [defaultText]=\"'Departamento o estado'\"\n ></ipt-select>\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Direcci\u00F3n'\"\n [control]=\"codFormStepTwo.controls['student_address']\"\n ></ipt-input>\n <ipt-input\n [inputType]=\"'number'\"\n [placeHolder]=\"'Edad'\"\n [control]=\"codFormStepTwo.controls['age']\"\n ></ipt-input>\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Nickname'\"\n [control]=\"codFormStepTwo.controls['nickname']\"\n ></ipt-input>\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Ocupaci\u00F3n'\"\n [control]=\"codFormStepTwo.controls['student_occupation']\"\n ></ipt-input>\n <ipt-select\n [initialValue]=\"codFormStepTwo.controls['civil_status'].value\"\n [control]=\"codFormStepTwo.controls['civil_status']\"\n [data]=\"civilStatus\"\n (eventSelect)=\"selectCivilStatus($event)\"\n [defaultText]=\"'Estado civil'\"\n ></ipt-select>\n <ipt-input\n [inputType]=\"'number'\"\n [placeHolder]=\"'N\u00FAmero de tel\u00E9fono'\"\n [control]=\"codFormStepTwo.controls['student_phone_number']\"\n ></ipt-input>\n <ipt-input\n [inputType]=\"'password'\"\n [placeHolder]=\"'Contrase\u00F1a'\"\n [control]=\"codFormStepTwo.controls['password']\"\n ></ipt-input>\n </div>\n\n <div class=\"col-12\"></div>\n\n</form>\n\n<div class=\"flex mt-3 align-items-center gap-3\">\n <span *ngIf=\"codFormStepTwo.invalid && codFormStepTwo.touched\" class=\"text-red-500 font-bold text-center mt-1 py-2 bg-red-100 w-full border-round-xl\">{{ errorMessage }}</span>\n <button type=\"submit\" class=\"ml-auto p-button-sm\" (click)=\"sendForm()\" pButton label=\"Siguiente\" icon=\"pi pi-arrow-right\"></button>\n</div>\n", styles: [""] }]
@@ -267,4 +284,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImpor
267
284
  }], changeStepEvent: [{
268
285
  type: Output
269
286
  }] } });
270
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kLWZvcm0tc3RlcC10d28uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vZGVzaWduLXN5c3RlbS9zcmMvbGliL2NvZC9zdGVwcy9jb2QtZm9ybS1zdGVwLXR3by9jb2QtZm9ybS1zdGVwLXR3by5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9kZXNpZ24tc3lzdGVtL3NyYy9saWIvY29kL3N0ZXBzL2NvZC1mb3JtLXN0ZXAtdHdvL2NvZC1mb3JtLXN0ZXAtdHdvLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFBMEIsVUFBVSxFQUFlLE1BQU0sZ0JBQWdCLENBQUM7QUFHakYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxZQUFZLEVBQXNCLE1BQU0sNEJBQTRCLENBQUM7Ozs7Ozs7O0FBTzlFLE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxZQUFZO0lBcUJ2RCxZQUNVLEVBQWUsRUFDZixnQkFBa0M7UUFFMUMsS0FBSyxFQUFFLENBQUM7UUFIQSxPQUFFLEdBQUYsRUFBRSxDQUFhO1FBQ2YscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQXJCbEMsb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBT3ZELGlCQUFZLEdBQVcsMkJBQTJCLENBQUM7UUFDbkQsY0FBUyxHQUFZLEtBQUssQ0FBQztRQUkzQixZQUFPLEdBQVUsRUFBRSxDQUFDO1FBR3BCLDBCQUEwQjtRQUMxQixhQUFRLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFRN0MsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsUUFBUSxFQUFF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LENBQUM7WUFDckQsZUFBZSxFQUFFLENBQUUsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNoRyxpQkFBaUIsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxVQUFVLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDakcsWUFBWSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUM1RixhQUFhLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM1RCxRQUFRLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDckMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ25DLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDcEMsa0JBQWtCLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDL0MsT0FBTyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3BDLEtBQUssRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNsQyxZQUFZLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxVQUFV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Q0FBQztTQUNyRTthQUFNO1lBQ0wsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzdEO0lBQ0gsQ0FBQzs7b0hBNVFVLHVCQUF1Qjt3R0FBdkIsdUJBQXVCLDZLQ1pwQyxxbkxBZ0pBOzJGRHBJYSx1QkFBdUI7a0JBTG5DLFNBQVM7K0JBQ0UsdUJBQXVCO2lJQUt4QixXQUFXO3NCQUFuQixLQUFLO2dCQUNJLGVBQWU7c0JBQXhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Hcm91cCwgRm9ybUJ1aWxkZXIsIFZhbGlkYXRvcnMsIEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgUGFyYW1ldGVyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2NvcmUvc2VydmljZXMvcGFyYW1ldGVycy1zZXJ2aWNlL3BhcmFtZXRlcnMuc2VydmljZSc7XG5pbXBvcnQgeyBtYXAsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ29kRm9ybUNvbnRyb2xzIH0gZnJvbSAnLi4vLi4vbG9naWMvY29kLWZvcm0tY29udHJvbHMnO1xuaW1wb3J0IHsgQ29kRm9ybVN0ZXBzLCBsb2NhbFN0b3JhZ2VWYWx1ZXMgfSBmcm9tICcuLi8uLi9sb2dpYy9jb2QtZm9ybS1zdGVwcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1jb2QtZm9ybS1zdGVwLXR3bycsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb2QtZm9ybS1zdGVwLXR3by5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NvZC1mb3JtLXN0ZXAtdHdvLmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBDb2RGb3JtU3RlcFR3b0NvbXBvbmVudCBleHRlbmRzIENvZEZvcm1TdGVwcyBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIGluaXRpYWxEYXRhPzogYW55O1xuICBAT3V0cHV0KCkgY2hhbmdlU3RlcEV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgY29kRm9ybVN0ZXBUd28hOiBGb3JtR3JvdXA7XG4gIGNvdW50cnlTZWxlY3RlZDogYW55O1xuICBjb3VudHJpZXM6IGFueTtcbiAgc3RhdGVzOiBhbnk7XG4gIGNpdGllczogYW55O1xuICBlcnJvck1lc3NhZ2U6IHN0cmluZyA9ICdGYWx0YW4gY2FtcG9zIHBvciBsbGVuYXIuJztcbiAgaGFzRXJyb3JzOiBib29sZWFuID0gZmFsc2U7XG4gIGlkVHlwZXM6IGFueTtcbiAgaW5kaWNhdGl2ZXM6IGFueTtcbiAgY2l2aWxTdGF0dXM6IGFueTtcbiAgZ2VuZGVyczogYW55W10gPSBbXTtcbiAgc3RyYXR1bXM6IGFueTtcblxuICAvLyBDb250cm9scyBkZWwgZm9ybXVsYXJpb1xuICBjb250cm9scyA9IG5ldyBDb2RGb3JtQ29udHJvbHMoKS5jb250cm9sc1sxXTtcbiAgZGF0YUNvdW50cnk6IGFueTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGZiOiBGb3JtQnVpbGRlcixcbiAgICBwcml2YXRlIHBhcmFtZXRlclNlcnZpY2U6IFBhcmFtZXRlclNlcnZpY2UsXG4gICkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmluaXRGb3JtKCk7XG4gICAgdGhpcy5zdGFydExvY2FsU3RvcmFnZVdvcmsoKTtcbiAgICB0aGlzLnZhbGlkYXRlRXJyb3JzKClcbiAgICBpZiAodGhpcy5pbml0aWFsRGF0YSkgdGhpcy5zZXREYXRhRnJvbVByZXZpdXNDb2QoKTtcbiAgICB0aGlzLmdldFBhcmFtZXRlcnModGhpcy5pbml0aWFsRGF0YS5zdHVkZW50LmNpdHkpO1xuICAgIHRoaXMuc2VsZWN0Q291bnRyeSh0aGlzLmxvY2FsU3RvcmFnZUNPRC5nZXRDb2RGb3JtRGF0YSgyLCAnY291bnRyeScpKTtcbiAgfVxuXG4gIHNldERhdGFGcm9tUHJldml1c0NvZCgpIHtcblxuICAgIHRoaXMuY29kRm9ybVN0ZXBUd28uY29udHJvbHNbJ3N0dWRlbnRfbmFtZSddLnNldFZhbHVlKHRoaXMuaW5pdGlhbERhdGEuc3R1ZGVudC5uYW1lKTtcbiAgICB0aGlzLmNvZEZvcm1TdGVwVHdvLmNvbnRyb2xzWydzdHVkZW50X2xhc3RfbmFtZSddLnNldFZhbHVlKHRoaXMuaW5pdGlhbERhdGEuc3R1ZGVudC5sYXN0X25hbWUpO1xuICAgIHRoaXMuY29kRm9ybVN0ZXBUd28uY29udHJvbHNbJ3N0dWRlbnRfaWRfY2FyZF90eXBlJ10uc2V0VmFsdWUodGhpcy5pbml0aWFsRGF0YS5zdHVkZW50LmlkX2NhcmRfdHlwZSk7XG4gICAgdGhpcy5jb2RGb3JtU3RlcFR3by5jb250cm9sc1snc3R1ZGVudF9pZF9jYXJkJ10uc2V0VmFsdWUodGhpcy5pbml0aWFsRGF0YS5zdHVkZW50LmlkX2NhcmQpO1xuICAgIHRoaXMuY29kRm9ybVN0ZXBUd28uY29udHJvbHNbJ2NvdW50cnknXS5zZXRWYWx1ZSh0aGlzLmRhdGFDb3VudHJ5LmNvdW50cnkpO1xuICAgIHRoaXMuY29kRm9ybVN0ZXBUd28uY29udHJvbHNbJ3N0YXRlJ10uc2V0VmFsdWUodGhpcy5kYXRhQ291bnRyeS5jb3VudHJ5KTtcbiAgICB0aGlzLmNvZEZvcm1TdGVwVHdvLmNvbnRyb2xzWydjaXR5J10uc2V0VmFsdWUodGhpcy5pbml0aWFsRGF0YS5zdHVkZW50LmNpdHkpO1xuICAgIHRoaXMuY29kRm9ybVN0ZXBUd28uY29udHJvbHNbJ2dlbmRlciddLnNldFZhbHVlKHRoaXMuaW5pdGlhbERhdGEuc3R1ZGVudC5nZW5kZXIpO1xuICAgIHRoaXMuY29kRm9ybVN0ZXBUd28uY29udHJvbHNbJ2dyYWRlJ10uc2V0VmFsdWUodGhpcy5pbml0aWFsRGF0YS5hZGl0aW9uYWxfaW5mb3JtYXRpb24uZ3JhZGUpO1xuICAgIHRoaXMuY29kRm9ybVN0ZXBUd28uY29udHJvbHNbJ3N0dWRlbnRfb2NjdXBhdGlvbiddLnNldFZhbHVlKHRoaXMuaW5pdGlhbERhdGEuYWRpdGlvbmFsX2luZm9ybWF0aW9uLm9jY3VwYXRpb24pO1xuICAgIHRoaXMuY29kRm9ybVN0ZXBUd28uY29udHJvbHNbJ25pY2tuYW1lJ10uc2V0VmFsdWUodGhpcy5pbml0aWFsRGF0YS5zdHVkZW50Lm5pY2tfbmFtZSk7XG4gICAgdGhpcy5jb2RGb3JtU3RlcFR3by5jb250cm9sc1snc3R1ZGVudF9waG9uZV9pbmRpY2F0aXZlJ10uc2V0VmFsdWUodGhpcy5pbml0aWFsRGF0YS5zdHVkZW50LnBob25lX2luZGljYXRpdmUpO1xuICAgIHRoaXMuY29kRm9ybVN0ZXBUd28uY29udHJvbHNbJ3N0dWRlbnRfcGhvbmVfbnVtYmVyJ10uc2V0VmFsdWUodGhpcy5pbml0aWFsRGF0YS5zdHVkZW50LnBob25lX251bWJlcik7XG4gICAgdGhpcy5jb2RGb3JtU3RlcFR3by5jb250cm9sc1snYmlydGhkYXRlJ10uc2V0VmFsdWUodGhpcy5pbml0aWFsRGF0YS5zdHVkZW50LmJpcnRoZGF0ZSk7XG4gICAgdGhpcy5jb2RGb3JtU3RlcFR3by5jb250cm9sc1snc3R1ZGVudF9lbWFpbCddLnNldFZhbHVlKHRoaXMuaW5pdGlhbERhdGEuc3R1ZGVudC5lbWFpbCk7XG4gIH1cblxuICB2YWxpZGF0ZUVycm9ycygpIHtcbiAgICB0aGlzLmNvZEZvcm1TdGVwVHdvLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoY2hhbmdlcyA9PiB7XG4gICAgICBpZiAodGhpcy5jb2RGb3JtU3RlcFR3by5jb250cm9sc1snc3R1ZGVudF9uYW1lJ10uaGFzRXJyb3IoJ21pbmxlbmd0aCcpKSB7XG4gICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJ0xvcyBub21icmVzIGRlYmVuIHRlbmVyIG3DrW5pbW8gMyBjYXJhY3RlcmVzJztcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5jb2RGb3JtU3RlcFR3by5jb250cm9sc1snc3R1ZGVudF9sYXN0X25hbWUnXS5oYXNFcnJvcignbWlubGVuZ3RoJykpIHtcbiAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSAnTG9zIGFwZWxsaWRvcyBkZWJlbiB0ZW5lciBtw61uaW1vIDUgY2FyYWN0ZXJlcyc7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMuY29kRm9ybVN0ZXBUd28uY29udHJvbHNbJ3Bhc3N3b3JkJ10uaGFzRXJyb3IoJ21pbmxlbmd0aCcpKSB7XG4gICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJ0xhIGNvbnRyYXNlw7FhIGRlYmUgdGVuZXIgbcOtbmltbyA2IGNhcmFjdGVyZXMnO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLmNvZEZvcm1TdGVwVHdvLmNvbnRyb2xzWydwYXNzd29yZCddLnZhbHVlICE9PSB0aGlzLmNvZEZvcm1TdGVwVHdvLmNvbnRyb2xzWydyZV9wYXNzd29yZCddLnZhbHVlKSB7XG4gICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJ0xhcyBjb250cmFzZcOxYXMgbm8gY29pbmNpZGVuJztcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5jb2RGb3JtU3RlcFR3by5jb250cm9sc1snYWdlJ10uZXJyb3JzKSB7XG4gICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJ0ZlY2hhIGRlIG5hY2ltaWVudG8gbm8gdsOhbGlkYSc7XG4gICAgICB9XG4gICAgICAgZWxzZSB7XG4gICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJ0ZhbHRhbiBjYW1wb3MgcG9yIGxsZW5hcic7XG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIHN0YXJ0TG9jYWxTdG9yYWdlV29yaygpIHtcbiAgICB0aGlzLmNvbnRyb2xzLmZvckVhY2goY29udHJvbCA9PiB7XG4gICAgICBsZXQgbG9jYWxTdG9yYWdlVmFsdWU6IGxvY2FsU3RvcmFnZVZhbHVlcyA9IHRoaXMucmVhZEFuZFdyaXRlTFMoMiwgY29udHJvbC5uYW1lKTtcbiAgICAgIHRoaXMuY29kRm9ybVN0ZXBUd28uY29udHJvbHNbY29udHJvbC5uYW1lXS5zZXRWYWx1ZShsb2NhbFN0b3JhZ2VWYWx1ZS52YWx1ZSk7XG4gICAgICB0aGlzLmxpc3RlbkZvcm1DaGFuZ2VzKDIsIGNvbnRyb2wubmFtZSwgdGhpcy5jb2RGb3JtU3RlcFR3by5jb250cm9sc1tjb250cm9sLm5hbWVdLnZhbHVlQ2hhbmdlcyk7XG4gICAgfSk7XG4gIH1cblxuICBpbml0Rm9ybSgpIHtcbiAgICB0aGlzLmNvZEZvcm1TdGVwVHdvID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICBzdHVkZW50X2FkZHJlc3M6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdLCBbXV0sXG4gICAgICBiaXJ0aGRhdGU6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdLCBbXV0sXG4gICAgICBjb3VudHJ5OiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSwgW11dLFxuICAgICAgc3RhdGU6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdLCBbXV0sXG4gICAgICBjaXR5OiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSwgW11dLFxuICAgICAgc3R1ZGVudF9pZF9jYXJkX3R5cGU6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdLCBbXV0sXG4gICAgICBzdHVkZW50X2lkX2NhcmQ6IFsgJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1pbkxlbmd0aCg1KSwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoMjApXV0sXG4gICAgICBzdHVkZW50X2xhc3RfbmFtZTogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5taW5MZW5ndGgoNSksIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDMyKV1dLFxuICAgICAgc3R1ZGVudF9uYW1lOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1pbkxlbmd0aCgzKSwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoMzIpXV0sXG4gICAgICBzdHVkZW50X2VtYWlsOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLmVtYWlsXV0sXG4gICAgICBuaWNrbmFtZTogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuICAgICAgZ2VuZGVyOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgICBhZ2U6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdLCBbXV0sXG4gICAgICBzdHVkZW50X29jY3VwYXRpb246IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcbiAgICAgIHN0cmF0dW06IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcbiAgICAgIGdyYWRlOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgICBjaXZpbF9zdGF0dXM6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcbiAgICAgIHN0dWRlbnRfcGhvbmVfaW5kaWNhdGl2ZTogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0sIFtdXSxcbiAgICAgIHN0dWRlbnRfcGhvbmVfbnVtYmVyOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1pbkxlbmd0aCgxMCksIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDE1KV1dLFxuICAgICAgcGFzc3dvcmQ6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWluTGVuZ3RoKDYpXV0sXG4gICAgICByZV9wYXNzd29yZDogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5taW5MZW5ndGgoNildXSxcbiAgICB9KTtcblxuICAgIC8vIENhbGN1bGFyIGVkYWQgeSBzZXRlYXIgdmFsb3JcbiAgICB0aGlzLmNvZEZvcm1TdGVwVHdvLmNvbnRyb2xzWydiaXJ0aGRhdGUnXS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChjaGFuZ2UpID0+IHtcbiAgICAgICAgbGV0IHRvZGF5ID0gbmV3IERhdGUoKTtcbiAgICAgICAgbGV0IGJpcnRoZGF5ID0gbmV3IERhdGUoY2hhbmdlKTtcbiAgICAgICAgbGV0IGFnZSA9IHRvZGF5LmdldEZ1bGxZZWFyKCkgLSBiaXJ0aGRheS5nZXRGdWxsWWVhcigpO1xuICAgICAgICBsZXQgbW9udGggPSB0b2RheS5nZXRNb250aCgpIC0gYmlydGhkYXkuZ2V0TW9udGgoKTtcblxuICAgICAgICBpZiAobW9udGggPCAwIHx8IChtb250aCA9PT0gMCAmJiB0b2RheS5nZXREYXRlKCkgPCBiaXJ0aGRheS5nZXREYXRlKCkpKSB7XG4gICAgICAgICAgYWdlLS07XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoYWdlIDwgMykge1xuICAgICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJ0ZlY2hhIGRlIG5hY2ltaWVudG8gbm8gdsOhbGlkYSdcbiAgICAgICAgICB0aGlzLmNvZEZvcm1TdGVwVHdvLmNvbnRyb2xzWydiaXJ0aGRhdGUnXS5zZXRFcnJvcnMoe1xuICAgICAgICAgICAgaW52YWxpZEFnZTogdHJ1ZVxuICAgICAgICAgIH0pXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5jb2RGb3JtU3RlcFR3by5jb250cm9sc1snYmlydGhkYXRlJ10uc2V0RXJyb3JzKG51bGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jb2RGb3JtU3RlcFR3by5jb250cm9sc1snYWdlJ10uc2V0VmFsdWUoYWdlKTtcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgZ2V0UGFyYW1ldGVycyhjb2RlQ2l0eTogbnVtYmVyKSB7XG4gICAgdGhpcy5wYXJhbWV0ZXJTZXJ2aWNlLmdldENhcmRUeXBlcygnY29sJykuc3Vic2NyaWJlKChyZXNwb25zZSkgPT4ge1xuICAgICAgdGhpcy5pZFR5cGVzID0gcmVzcG9uc2UuZGF0YTtcbiAgICB9KTtcbiAgICB0aGlzLnBhcmFtZXRlclNlcnZpY2UuZ2V0SW5kaWNhdGl2ZXMoKS5zdWJzY3JpYmUoKHJlc3BvbnNlKSA9PiB7XG4gICAgICB0aGlzLmluZGljYXRpdmVzID0gcmVzcG9uc2UuZGF0YTtcbiAgICB9KTtcbiAgICB0aGlzLnBhcmFtZXRlclNlcnZpY2UuZ2V0Q291bnRyaWVzKCkuc3Vic2NyaWJlKChyZXNwb25zZSkgPT4ge1xuICAgICAgdGhpcy5jb3VudHJpZXMgPSByZXNwb25zZS5kYXRhO1xuICAgIH0pO1xuICAgIHRoaXMucGFyYW1ldGVyU2VydmljZS5nZXRTdHJhdHVtcygpLnN1YnNjcmliZSgocmVzcG9uc2UpID0+IHtcbiAgICAgIHRoaXMuc3RyYXR1bXMgPSByZXNwb25zZS5kYXRhO1xuICAgIH0pO1xuICAgIHRoaXMucGFyYW1ldGVyU2VydmljZS5nZXRDaXZpbFN0YXR1cygpLnN1YnNjcmliZSgocmVzcG9uc2UpID0+IHtcbiAgICAgIHRoaXMuY2l2aWxTdGF0dXMgPSByZXNwb25zZS5kYXRhO1xuICAgIH0pO1xuICAgIHRoaXMucGFyYW1ldGVyU2VydmljZS5nZXRHZW5kZXJzKCkuc3Vic2NyaWJlKChyZXNwb25zZSkgPT4ge1xuICAgICAgdGhpcy5nZW5kZXJzID0gcmVzcG9uc2UuZGF0YTtcbiAgICB9KTtcbiAgICB0aGlzLnBhcmFtZXRlclNlcnZpY2UuZ2V0Q29udW50cnlTdGF0ZUJ5Q2l0eShjb2RlQ2l0eSkuc3Vic2NyaWJlKChyZXNwb25zZSkgPT4ge1xuICAgICAgdGhpcy5kYXRhQ291bnRyeSA9IHJlc3BvbnNlLmRhdGFbMF07XG4gICAgfSk7XG4gICAgLy8gdGhpcy5wYXJhbWV0ZXJTZXJ2aWNlLmdldEdlbmRlcnMoKS5waXBlKFxuICAgIC8vICAgbWFwKChyZXNwb25zZTogYW55KSA9PiByZXNwb25zZS5kYXRhKVxuICAgIC8vIClcbiAgICAvLyAuc3Vic2NyaWJlKChnZW5kZXJzOiBhbnlbXSkgPT4ge1xuICAgIC8vICAgZ2VuZGVycy5mb3JFYWNoKGdlbmRlciA9PiB7XG4gICAgLy8gICAgIGxldCBnZW5kZXJJdGVtID0ge1xuICAgIC8vICAgICAgIGNvZGU6IGdlbmRlci5jb2RlLFxuICAgIC8vICAgICAgIG5hbWU6IGdlbmRlci5uYW1lX3NwYW5pc2hcbiAgICAvLyAgICAgfVxuICAgIC8vICAgICB0aGlzLmdlbmRlcnMucHVzaChnZW5kZXJJdGVtKVxuICAgIC8vICAgfSlcbiAgICAvLyB9KVxuXG4gIH1cblxuICBzZW5kRm9ybSgpIHtcbiAgICB0aGlzLmNvZEZvcm1TdGVwVHdvLm1hcmtBbGxBc1RvdWNoZWQoKTtcbiAgICBpZiAodGhpcy5jb2RGb3JtU3RlcFR3by5pbnZhbGlkKSByZXR1cm47XG5cbiAgICAvLyBNb3Zlcm5vcyBhbCBwYXNvIDNcbiAgICB0aGlzLmNoYW5nZVN0ZXBFdmVudC5lbWl0KDIpO1xuICB9XG5cbiAgZ2V0U3RhdGUoc3RhdGU6IGFueSkge1xuICAgIHRoaXMuZ2V0Q2l0eShzdGF0ZSk7XG4gIH1cblxuICBnZXRDaXR5KHN0YXRlOiBhbnkpIHtcbiAgICB0aGlzLnBhcmFtZXRlclNlcnZpY2UuZ2V0Q2l0aWVzQnlTdGF0ZShzdGF0ZSkuc3Vic2NyaWJlKChyZXNwb25zZSkgPT4ge1xuICAgICAgdGhpcy5jaXRpZXMgPSByZXNwb25zZS5kYXRhO1xuICAgICAgdGhpcy5zZWxlY3RDaXR5KHRoaXMubG9jYWxTdG9yYWdlQ09ELmdldENvZEZvcm1EYXRhKDIsICdjaXR5JykpO1xuICAgIH0pO1xuICB9XG5cbiAgLy8gRXZlbnRvcyBkZSBsb3Mgc2VsZWN0XG4gIHNlbGVjdENvdW50cnkoY291bnRyeTogYW55KSB7XG4gICAgbGV0IGlzbyA9ICcnO1xuICAgIGlmIChjb3VudHJ5ID09PSAnMicpIGlzbyA9ICdjb2wnO1xuICAgIGVsc2UgaWYgKGNvdW50cnkgPT09ICczJykgaXNvID0gJ3Zlbic7XG4gICAgZWxzZSBpZiAoY291bnRyeSA9PT0gJzQnKSBpc28gPSAndXNhJztcbiAgICBlbHNlIGlzbyA9ICcnO1xuICAgIFxuICAgIGlmIChpc28gIT0gJycpIHtcbiAgICAgIHRoaXMuY29kRm9ybVN0ZXBUd28uY29udHJvbHNbJ2NvdW50cnknXS5zZXRWYWx1ZShjb3VudHJ5KTtcblxuICAgICAgdGhpcy5wYXJhbWV0ZXJTZXJ2aWNlLmdldFN0YXRlc0J5Q291bnRyeShpc28pLnN1YnNjcmliZSgocmVzcG9uc2UpID0+IHtcbiAgICAgICAgdGhpcy5zdGF0ZXMgPSByZXNwb25zZS5kYXRhO1xuICAgICAgICB0aGlzLnNlbGVjdFN0YXRlKHRoaXMubG9jYWxTdG9yYWdlQ09ELmdldENvZEZvcm1EYXRhKDIsICdzdGF0ZScpKTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNvZEZvcm1TdGVwVHdvLmNvbnRyb2xzWydjb3VudHJ5J10uc2V0VmFsdWUobnVsbCk7XG4gICAgfVxuICAgIHRoaXMuY291bnRyeVNlbGVjdGVkID0gY291bnRyeTtcbiAgfVxuXG4gIHNlbGVjdFN0YXRlKHN0YXRlOiBhbnkpIHtcbiAgICBpZiAoc3RhdGUgIT09ICdEZXBhcnRhbWVudG8gbyBlc3RhZG8nKSB7XG4gICAgICB0aGlzLmNvZEZvcm1TdGVwVHdvLmNvbnRyb2xzWydzdGF0ZSddLnNldFZhbHVlKHN0YXRlKTtcbiAgICAgIHRoaXMuZ2V0U3RhdGUoc3RhdGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNvZEZvcm1TdGVwVHdvLmNvbnRyb2xzWydzdGF0ZSddLnNldFZhbHVlKG51bGwpO1xuICAgICAgdGhpcy5jb2RGb3JtU3RlcFR3by5jb250cm9sc1snY2l0eSddLnNldFZhbHVlKG51bGwpO1xuICAgICAgdGhpcy5jaXRpZXMgPSBbXTtcbiAgICB9XG4gIH1cblxuICBzZWxlY3RDaXR5KGNpdHk6IGFueSkge1xuICAgIGlmIChjaXR5ICE9PSAnQ2l1ZGFkIGRlIHJlc2lkZW5jaWEnKSB7XG4gICAgICB0aGlzLmNvZEZvcm1TdGVwVHdvLmNvbnRyb2xzWydjaXR5J10uc2V0VmFsdWUoY2l0eSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY29kRm9ybVN0ZXBUd28uY29udHJvbHNbJ2NpdHknXS5zZXRWYWx1ZShudWxsKTtcbiAgICB9XG4gIH1cblxuICBzZWxlY3RJZFR5cGUoaWRUeXBlOiBhbnkpIHtcbiAgICBpZiAoaWRUeXBlICE9PSAnVGlwbyBkZSBkb2N1bWVudG8nKSB7XG4gICAgICB0aGlzLmNvZEZvcm1TdGVwVHdvLmNvbnRyb2xzWydzdHVkZW50X2lkX2NhcmRfdHlwZSddLnNldFZhbHVlKGlkVHlwZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY29kRm9ybVN0ZXBUd28uY29udHJvbHNbJ3N0dWRlbnRfaWRfY2FyZF90eXBlJ10uc2V0VmFsdWUobnVsbCk7XG4gICAgfVxuICB9XG5cbiAgc2VsZWN0SW5kaWNhdGl2ZXMoaW5kaWNhdGl2ZTogYW55KSB7XG4gICAgaWYgKGluZGljYXRpdmUgIT09ICdJbmRpY2F0aXZvJykge1xuICAgICAgdGhpcy5jb2RGb3JtU3RlcFR3by5jb250cm9sc1snc3R1ZGVudF9waG9uZV9pbmRpY2F0aXZlJ10uc2V0VmFsdWUoaW5kaWNhdGl2ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY29kRm9ybVN0ZXBUd28uY29udHJvbHNbJ3N0dWRlbnRfcGhvbmVfaW5kaWNhdGl2ZSddLnNldFZhbHVlKG51bGwpO1xuICAgIH1cbiAgfVxuXG4gIHNlbGVjdEdlbmRlcihnZW5kZXI6IGFueSkge1xuICAgIGlmIChnZW5kZXIgIT09ICdHw6luZXJvJykge1xuICAgICAgdGhpcy5jb2RGb3JtU3RlcFR3by5jb250cm9sc1snZ2VuZGVyJ10uc2V0VmFsdWUoZ2VuZGVyKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jb2RGb3JtU3RlcFR3by5jb250cm9sc1snZ2VuZGVyJ10uc2V0VmFsdWUobnVsbCk7XG4gICAgfVxuICB9XG5cbiAgc2VsZWN0U3RyYXR1bShzdHJhdHVtOiBhbnkpIHtcbiAgICBpZiAoc3RyYXR1bSAhPT0gJ0VzdHJhdG8nKSB7XG4gICAgICB0aGlzLmNvZEZvcm1TdGVwVHdvLmNvbnRyb2xzWydzdHJhdHVtJ10uc2V0VmFsdWUoc3RyYXR1bSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY29kRm9ybVN0ZXBUd28uY29udHJvbHNbJ3N0cmF0dW0nXS5zZXRWYWx1ZShudWxsKTtcbiAgICB9XG4gIH1cblxuICBzZWxlY3RDaXZpbFN0YXR1cyhjaXZpbF9zdGF0dXM6IGFueSkge1xuICAgIGlmIChjaXZpbF9zdGF0dXMgIT09ICdFc3RhZG8gY2l2aWwnKSB7XG4gICAgICB0aGlzLmNvZEZvcm1TdGVwVHdvLmNvbnRyb2xzWydjaXZpbF9zdGF0dXMnXS5zZXRWYWx1ZShjaXZpbF9zdGF0dXMpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNvZEZvcm1TdGVwVHdvLmNvbnRyb2xzWydjaXZpbF9zdGF0dXMnXS5zZXRWYWx1ZShudWxsKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxmb3JtIGF1dG9jb21wbGV0ZT1cIm9mZlwiIFtmb3JtR3JvdXBdPVwiY29kRm9ybVN0ZXBUd29cIiBjbGFzcz1cImdyaWRcIj5cblxuICA8ZGl2IGNsYXNzPVwiY29sXCI+XG4gICAgPGlwdC1pbnB1dFxuICAgICAgW2lucHV0VHlwZV09XCIndGV4dCdcIlxuICAgICAgW3BsYWNlSG9sZGVyXT1cIidOb21icmVzJ1wiXG4gICAgICBbY29udHJvbF09XCJjb2RGb3JtU3RlcFR3by5jb250cm9sc1snc3R1ZGVudF9uYW1lJ11cIlxuICAgID48L2lwdC1pbnB1dD5cbiAgICA8aXB0LXNlbGVjdFxuICAgICAgW2luaXRpYWxWYWx1ZV09XCJjb2RGb3JtU3RlcFR3by5jb250cm9sc1snc3R1ZGVudF9pZF9jYXJkX3R5cGUnXS52YWx1ZVwiXG4gICAgICBbY29udHJvbF09XCJjb2RGb3JtU3RlcFR3by5jb250cm9sc1snc3R1ZGVudF9pZF9jYXJkX3R5cGUnXVwiXG4gICAgICBbc2VsZWN0Q29kZV09XCJjb2RGb3JtU3RlcFR3by5jb250cm9sc1snc3R1ZGVudF9pZF9jYXJkX3R5cGUnXS52YWx1ZSA9PT0gbnVsbCA/ICdUaXBvIGRlIGRvY3VtZW50bycgOiBjb2RGb3JtU3RlcFR3by5jb250cm9sc1snc3R1ZGVudF9pZF9jYXJkX3R5cGUnXS52YWx1ZVwiXG4gICAgICBbaXNSZXF1aXJlZF09XCJ0cnVlXCJcbiAgICAgIFtkYXRhXT1cImlkVHlwZXNcIlxuICAgICAgKGV2ZW50U2VsZWN0KT1cInNlbGVjdElkVHlwZSgkZXZlbnQpXCJcbiAgICAgIFtkZWZhdWx0VGV4dF09XCInVGlwbyBkZSBkb2N1bWVudG8nXCJcbiAgICA+PC9pcHQtc2VsZWN0PlxuICAgIDxpcHQtc2VsZWN0XG4gICAgICBbaW5pdGlhbFZhbHVlXT1cImNvZEZvcm1TdGVwVHdvLmNvbnRyb2xzWydjb3VudHJ5J10udmFsdWVcIlxuICAgICAgW2NvbnRyb2xdPVwiY29kRm9ybVN0ZXBUd28uY29udHJvbHNbJ2NvdW50cnknXVwiXG4gICAgICBbc2VsZWN0Q29kZV09XCJjb2RGb3JtU3RlcFR3by5jb250cm9sc1snY291bnRyeSddLnZhbHVlID09PSBudWxsID8gJ1Bhw61zIGRlIHJlc2lkZW5jaWEnIDogY29kRm9ybVN0ZXBUd28uY29udHJvbHNbJ2NvdW50cnknXS52YWx1ZVwiXG4gICAgICAoZXZlbnRTZWxlY3QpPVwic2VsZWN0Q291bnRyeSgkZXZlbnQpXCJcbiAgICAgIFtkYXRhXT1cImNvdW50cmllc1wiXG4gICAgICBbZGVmYXVsdFRleHRdPVwiJ1Bhw61zIGRlIHJlc2lkZW5jaWEnXCJcbiAgICA+PC9pcHQtc2VsZWN0PlxuICAgIDxpcHQtc2VsZWN0XG4gICAgICBbaW5pdGlhbFZhbHVlXT1cImNvZEZvcm1TdGVwVHdvLmNvbnRyb2xzWydjaXR5J10udmFsdWVcIlxuICAgICAgW2NvbnRyb2xdPVwiY29kRm9ybVN0ZXBUd28uY29udHJvbHNbJ2NpdHknXVwiXG4gICAgICBbc2VsZWN0Q29kZV09XCJjb2RGb3JtU3RlcFR3by5jb250cm9sc1snY2l0eSddLnZhbHVlID09PSBudWxsID8gJ0NpdWRhZCBkZSByZXNpZGVuY2lhJyA6IGNvZEZvcm1TdGVwVHdvLmNvbnRyb2xzWydjaXR5J10udmFsdWVcIlxuICAgICAgKGV2ZW50U2VsZWN0KT1cInNlbGVjdENpdHkoJGV2ZW50KVwiXG4gICAgICBbZGF0YV09XCJjaXRpZXNcIlxuICAgICAgW2RlZmF1bHRUZXh0XT1cIidDaXVkYWQgZGUgcmVzaWRlbmNpYSdcIlxuICAgID48L2lwdC1zZWxlY3Q+XG4gICAgPGlwdC1pbnB1dFxuICAgICAgb25mb2N1cz1cIih0aGlzLnR5cGU9J2RhdGUnKVwiXG4gICAgICBbaW5wdXRUeXBlXT1cIidkYXRlJ1wiXG4gICAgICBbY29udHJvbF09XCJjb2RGb3JtU3RlcFR3by5jb250cm9sc1snYmlydGhkYXRlJ11cIlxuICAgICAgW3BsYWNlSG9sZGVyXT1cIidGZWNoYSBkZSBuYWNpbWllbnRvJ1wiXG4gICAgPjwvaXB0LWlucHV0PlxuICAgICA8aXB0LXNlbGVjdFxuICAgICAgW2luaXRpYWxWYWx1ZV09XCJjb2RGb3JtU3RlcFR3by5jb250cm9sc1snZ2VuZGVyJ10udmFsdWVcIlxuICAgICAgW2NvbnRyb2xdPVwiY29kRm9ybVN0ZXBUd28uY29udHJvbHNbJ2dlbmRlciddXCJcbiAgICAgIFtkYXRhXT1cImdlbmRlcnNcIlxuICAgICAgKGV2ZW50U2VsZWN0KT1cInNlbGVjdEdlbmRlcigkZXZlbnQpXCJcbiAgICAgIFtkZWZhdWx0VGV4dF09XCInR8OpbmVybydcIlxuICAgID48L2lwdC1zZWxlY3Q+XG4gICAgPGlwdC1zZWxlY3RcbiAgICAgIFtpbml0aWFsVmFsdWVdPVwiY29kRm9ybVN0ZXBUd28uY29udHJvbHNbJ3N0cmF0dW0nXS52YWx1ZVwiXG4gICAgICBbY29udHJvbF09XCJjb2RGb3JtU3RlcFR3by5jb250cm9sc1snc3RyYXR1bSddXCJcbiAgICAgIFtkYXRhXT1cInN0cmF0dW1zXCJcbiAgICAgIChldmVudFNlbGVjdCk9XCJzZWxlY3RTdHJhdHVtKCRldmVudClcIlxuICAgICAgW2RlZmF1bHRUZXh0XT1cIidFc3RyYXRvJ1wiXG4gICAgPjwvaXB0LXNlbGVjdD5cbiAgICA8aXB0LWlucHV0XG4gICAgICBbaW5wdXRUeXBlXT1cIid0ZXh0J1wiXG4gICAgICBbcGxhY2VIb2xkZXJdPVwiJ0dyYWRvJ1wiXG4gICAgICBbY29udHJvbF09XCJjb2RGb3JtU3RlcFR3by5jb250cm9sc1snZ3JhZGUnXVwiXG4gICAgPjwvaXB0LWlucHV0PlxuICAgIDxpcHQtc2VsZWN0XG4gICAgICBbaW5pdGlhbFZhbHVlXT1cImNvZEZvcm1TdGVwVHdvLmNvbnRyb2xzWydzdHVkZW50X3Bob25lX2luZGljYXRpdmUnXS52YWx1ZVwiXG4gICAgICBbY29udHJvbF09XCJjb2RGb3JtU3RlcFR3by5jb250cm9sc1snc3R1ZGVudF9waG9uZV9pbmRpY2F0aXZlJ11cIlxuICAgICAgW2RhdGFdPVwiaW5kaWNhdGl2ZXNcIlxuICAgICAgKGV2ZW50U2VsZWN0KT1cInNlbGVjdEluZGljYXRpdmVzKCRldmVudClcIlxuICAgICAgW2RlZmF1bHRUZXh0XT1cIidJbmRpY2F0aXZvJ1wiXG4gICAgPjwvaXB0LXNlbGVjdD5cbiAgICA8aXB0LWlucHV0XG4gICAgICBbaW5wdXRUeXBlXT1cIidlbWFpbCdcIlxuICAgICAgW3BsYWNlSG9sZGVyXT1cIidDb3JyZW8gZWxlY3Ryw7NuaWNvJ1wiXG4gICAgICBbY29udHJvbF09XCJjb2RGb3JtU3RlcFR3by5jb250cm9sc1snc3R1ZGVudF9lbWFpbCddXCJcbiAgICA+PC9pcHQtaW5wdXQ+XG4gICAgPGlwdC1pbnB1dFxuICAgICAgW2lucHV0VHlwZV09XCIncGFzc3dvcmQnXCJcbiAgICAgIFtwbGFjZUhvbGRlcl09XCInUmVwZXRpciBjb250cmFzZcOxYSdcIlxuICAgICAgW2NvbnRyb2xdPVwiY29kRm9ybVN0ZXBUd28uY29udHJvbHNbJ3JlX3Bhc3N3b3JkJ11cIlxuICAgID48L2lwdC1pbnB1dD5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cImNvbFwiPlxuICAgIDxpcHQtaW5wdXRcbiAgICAgIFtpbnB1dFR5cGVdPVwiJ3RleHQnXCJcbiAgICAgIFtwbGFjZUhvbGRlcl09XCInQXBlbGxpZG9zJ1wiXG4gICAgICBbY29udHJvbF09XCJjb2RGb3JtU3RlcFR3by5jb250cm9sc1snc3R1ZGVudF9sYXN0X25hbWUnXVwiXG4gICAgPjwvaXB0LWlucHV0PlxuICAgIDxpcHQtaW5wdXRcbiAgICAgIFtpbnB1dFR5cGVdPVwiJ251bWJlcidcIlxuICAgICAgW3BsYWNlSG9sZGVyXT1cIidOw7ptZXJvIGRlIGRvY3VtZW50bydcIlxuICAgICAgW2NvbnRyb2xdPVwiY29kRm9ybVN0ZXBUd28uY29udHJvbHNbJ3N0dWRlbnRfaWRfY2FyZCddXCJcbiAgICA+PC9pcHQtaW5wdXQ+XG4gICAgPGlwdC1zZWxlY3RcbiAgICAgIFtpbml0aWFsVmFsdWVdPVwiY29kRm9ybVN0ZXBUd28uY29udHJvbHNbJ3N0YXRlJ10udmFsdWVcIlxuICAgICAgW2NvbnRyb2xdPVwiY29kRm9ybVN0ZXBUd28uY29udHJvbHNbJ3N0YXRlJ11cIlxuICAgICAgW3NlbGVjdENvZGVdPVwiY29kRm9ybVN0ZXBUd28uY29udHJvbHNbJ3N0YXRlJ10udmFsdWUgPT09IG51bGwgPyAnRGVwYXJ0YW1lbnRvIG8gZXN0YWRvJyA6IGNvZEZvcm1TdGVwVHdvLmNvbnRyb2xzWydzdGF0ZSddLnZhbHVlXCJcbiAgICAgIFtpc1JlcXVpcmVkXT1cInRydWVcIlxuICAgICAgKGV2ZW50U2VsZWN0KT1cInNlbGVjdFN0YXRlKCRldmVudClcIlxuICAgICAgW2RhdGFdPVwic3RhdGVzXCJcbiAgICAgIFtkZWZhdWx0VGV4dF09XCInRGVwYXJ0YW1lbnRvIG8gZXN0YWRvJ1wiXG4gICAgPjwvaXB0LXNlbGVjdD5cbiAgICA8aXB0LWlucHV0XG4gICAgICBbaW5wdXRUeXBlXT1cIid0ZXh0J1wiXG4gICAgICBbcGxhY2VIb2xkZXJdPVwiJ0RpcmVjY2nDs24nXCJcbiAgICAgIFtjb250cm9sXT1cImNvZEZvcm1TdGVwVHdvLmNvbnRyb2xzWydzdHVkZW50X2FkZHJlc3MnXVwiXG4gICAgPjwvaXB0LWlucHV0PlxuICAgIDxpcHQtaW5wdXRcbiAgICAgIFtpbnB1dFR5cGVdPVwiJ251bWJlcidcIlxuICAgICAgW3BsYWNlSG9sZGVyXT1cIidFZGFkJ1wiXG4gICAgICBbY29udHJvbF09XCJjb2RGb3JtU3RlcFR3by5jb250cm9sc1snYWdlJ11cIlxuICAgID48L2lwdC1pbnB1dD5cbiAgICA8aXB0LWlucHV0XG4gICAgICBbaW5wdXRUeXBlXT1cIid0ZXh0J1wiXG4gICAgICBbcGxhY2VIb2xkZXJdPVwiJ05pY2tuYW1lJ1wiXG4gICAgICBbY29udHJvbF09XCJjb2RGb3JtU3RlcFR3by5jb250cm9sc1snbmlja25hbWUnXVwiXG4gICAgPjwvaXB0LWlucHV0PlxuICAgIDxpcHQtaW5wdXRcbiAgICAgIFtpbnB1dFR5cGVdPVwiJ3RleHQnXCJcbiAgICAgIFtwbGFjZUhvbGRlcl09XCInT2N1cGFjacOzbidcIlxuICAgICAgW2NvbnRyb2xdPVwiY29kRm9ybVN0ZXBUd28uY29udHJvbHNbJ3N0dWRlbnRfb2NjdXBhdGlvbiddXCJcbiAgICA+PC9pcHQtaW5wdXQ+XG4gICAgPGlwdC1zZWxlY3RcbiAgICAgIFtpbml0aWFsVmFsdWVdPVwiY29kRm9ybVN0ZXBUd28uY29udHJvbHNbJ2NpdmlsX3N0YXR1cyddLnZhbHVlXCJcbiAgICAgIFtjb250cm9sXT1cImNvZEZvcm1TdGVwVHdvLmNvbnRyb2xzWydjaXZpbF9zdGF0dXMnXVwiXG4gICAgICBbZGF0YV09XCJjaXZpbFN0YXR1c1wiXG4gICAgICAoZXZlbnRTZWxlY3QpPVwic2VsZWN0Q2l2aWxTdGF0dXMoJGV2ZW50KVwiXG4gICAgICBbZGVmYXVsdFRleHRdPVwiJ0VzdGFkbyBjaXZpbCdcIlxuICAgID48L2lwdC1zZWxlY3Q+XG4gICAgPGlwdC1pbnB1dFxuICAgICAgW2lucHV0VHlwZV09XCInbnVtYmVyJ1wiXG4gICAgICBbcGxhY2VIb2xkZXJdPVwiJ07Dum1lcm8gZGUgdGVsw6lmb25vJ1wiXG4gICAgICBbY29udHJvbF09XCJjb2RGb3JtU3RlcFR3by5jb250cm9sc1snc3R1ZGVudF9waG9uZV9udW1iZXInXVwiXG4gICAgPjwvaXB0LWlucHV0PlxuICAgIDxpcHQtaW5wdXRcbiAgICAgIFtpbnB1dFR5cGVdPVwiJ3Bhc3N3b3JkJ1wiXG4gICAgICBbcGxhY2VIb2xkZXJdPVwiJ0NvbnRyYXNlw7FhJ1wiXG4gICAgICBbY29udHJvbF09XCJjb2RGb3JtU3RlcFR3by5jb250cm9sc1sncGFzc3dvcmQnXVwiXG4gICAgPjwvaXB0LWlucHV0PlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwiY29sLTEyXCI+PC9kaXY+XG5cbjwvZm9ybT5cblxuPGRpdiBjbGFzcz1cImZsZXggbXQtMyBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTNcIj5cbiAgPHNwYW4gKm5nSWY9XCJjb2RGb3JtU3RlcFR3by5pbnZhbGlkICYmIGNvZEZvcm1TdGVwVHdvLnRvdWNoZWRcIiBjbGFzcz1cInRleHQtcmVkLTUwMCBmb250LWJvbGQgdGV4dC1jZW50ZXIgbXQtMSBweS0yIGJnLXJlZC0xMDAgdy1mdWxsIGJvcmRlci1yb3VuZC14bFwiPnt7IGVycm9yTWVzc2FnZSB9fTwvc3Bhbj5cbiAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgY2xhc3M9XCJtbC1hdXRvIHAtYnV0dG9uLXNtXCIgKGNsaWNrKT1cInNlbmRGb3JtKClcIiBwQnV0dG9uIGxhYmVsPVwiU2lndWllbnRlXCIgaWNvbj1cInBpIHBpLWFycm93LXJpZ2h0XCI+PC9idXR0b24+XG48L2Rpdj5cbiJdfQ==
287
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kLWZvcm0tc3RlcC10d28uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vZGVzaWduLXN5c3RlbS9zcmMvbGliL2NvZC9zdGVwcy9jb2QtZm9ybS1zdGVwLXR3by9jb2QtZm9ybS1zdGVwLXR3by5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9kZXNpZ24tc3lzdGVtL3NyYy9saWIvY29kL3N0ZXBzL2NvZC1mb3JtLXN0ZXAtdHdvL2NvZC1mb3JtLXN0ZXAtdHdvLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBZ0MsTUFBTSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUNwSCxPQUFPLEVBQTBCLFVBQVUsRUFBZSxNQUFNLGdCQUFnQixDQUFDO0FBR2pGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsWUFBWSxFQUFzQixNQUFNLDRCQUE0QixDQUFDOzs7Ozs7OztBQU85RSxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsWUFBWTtJQXFCdkQsWUFDVSxFQUFlLEVBQ2YsZ0JBQWtDO1FBRTFDLEtBQUssRUFBRSxDQUFDO1FBSEEsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQUNmLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFyQmxDLG9CQUFlLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQU92RCxpQkFBWSxHQUFXLDJCQUEyQixDQUFDO1FBQ25ELGNBQVMsR0FBWSxLQUFLLENBQUM7UUFJM0IsWUFBTyxHQUFVLEVBQUUsQ0FBQztRQUdwQiwwQkFBMEI7UUFDMUIsYUFBUSxHQUFHLElBQUksZUFBZSxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBUTdDLENBQUM7SUFFRCxxQkFBcUI7SUFDckIscUJBQXFCO0lBQ3JCLGtD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RUFBRTtZQUN6QixJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDM0Q7YUFBTTtZQUNMLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUN4RDtJQUNILENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxZQUFpQjtRQUNqQyxJQUFJLFlBQVksS0FBSyxjQUFjLEVBQUU7WUFDbkMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDO1NBQ3JFO2FBQU07WUFDTCxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDN0Q7SUFDSCxDQUFDOztvSEFuU1UsdUJBQXVCO3dHQUF2Qix1QkFBdUIsa01DWnBDLHFuTEFnSkE7MkZEcElhLHVCQUF1QjtrQkFMbkMsU0FBUzsrQkFDRSx1QkFBdUI7aUlBS3hCLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0ksZUFBZTtzQkFBeEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtR3JvdXAsIEZvcm1CdWlsZGVyLCBWYWxpZGF0b3JzLCBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFBhcmFtZXRlclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9jb3JlL3NlcnZpY2VzL3BhcmFtZXRlcnMtc2VydmljZS9wYXJhbWV0ZXJzLnNlcnZpY2UnO1xuaW1wb3J0IHsgbWFwLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IENvZEZvcm1Db250cm9scyB9IGZyb20gJy4uLy4uL2xvZ2ljL2NvZC1mb3JtLWNvbnRyb2xzJztcbmltcG9ydCB7IENvZEZvcm1TdGVwcywgbG9jYWxTdG9yYWdlVmFsdWVzIH0gZnJvbSAnLi4vLi4vbG9naWMvY29kLWZvcm0tc3RlcHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtY29kLWZvcm0tc3RlcC10d28nLFxuICB0ZW1wbGF0ZVVybDogJy4vY29kLWZvcm0tc3RlcC10d28uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jb2QtZm9ybS1zdGVwLXR3by5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQ29kRm9ybVN0ZXBUd29Db21wb25lbnQgZXh0ZW5kcyBDb2RGb3JtU3RlcHMgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBpbml0aWFsRGF0YT86IGFueTtcbiAgQE91dHB1dCgpIGNoYW5nZVN0ZXBFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gIGNvZEZvcm1TdGVwVHdvITogRm9ybUdyb3VwO1xuICBjb3VudHJ5U2VsZWN0ZWQ6IGFueTtcbiAgY291bnRyaWVzOiBhbnk7XG4gIHN0YXRlczogYW55O1xuICBjaXRpZXM6IGFueTtcbiAgZXJyb3JNZXNzYWdlOiBzdHJpbmcgPSAnRmFsdGFuIGNhbXBvcyBwb3IgbGxlbmFyLic7XG4gIGhhc0Vycm9yczogYm9vbGVhbiA9IGZhbHNlO1xuICBpZFR5cGVzOiBhbnk7XG4gIGluZGljYXRpdmVzOiBhbnk7XG4gIGNpdmlsU3RhdHVzOiBhbnk7XG4gIGdlbmRlcnM6IGFueVtdID0gW107XG4gIHN0cmF0dW1zOiBhbnk7XG5cbiAgLy8gQ29udHJvbHMgZGVsIGZvcm11bGFyaW9cbiAgY29udHJvbHMgPSBuZXcgQ29kRm9ybUNvbnRyb2xzKCkuY29udHJvbHNbMV07XG4gIGRhdGFDb3VudHJ5OiBhbnk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSBwYXJhbWV0ZXJTZXJ2aWNlOiBQYXJhbWV0ZXJTZXJ2aWNlLFxuICApIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgLy8gbmdPbkluaXQoKTogdm9pZCB7XG4gIC8vICAgdGhpcy5pbml0Rm9ybSgpO1xuICAvLyAgIHRoaXMuc3RhcnRMb2NhbFN0b3JhZ2VXb3JrKCk7XG4gIC8vICAgdGhpcy52YWxpZGF0ZUVycm9ycygpXG4gIC8vICAgaWYgKHRoaXMuaW5pdGlhbERhdGEpIHRoaXMuc2V0RGF0YUZyb21QcmV2aXVzQ29kKCk7XG4gIC8vICAgdGhpcy5nZXRQYXJhbWV0ZXJzKCk7XG4gIC8vICAgdGhpcy5zZWxlY3RDb3VudHJ5KHRoaXMubG9jYWxTdG9yYWdlQ09ELmdldENvZEZvcm1EYXRhKDIsICdjb3VudHJ5JykpO1xuICAvLyB9XG5cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgdGhpcy5pbml0Rm9ybSgpO1xuICAgIHRoaXMuc3RhcnRMb2NhbFN0b3JhZ2VXb3JrKCk7XG4gICAgdGhpcy52YWxpZGF0ZUVycm9ycygpO1xuICAgIHRoaXMuZ2V0UGFyYW1ldGVycygpO1xuXG5cbiAgICBpZiAoY2hhbmdlc1snaW5pdGlhbERhdGEnXSkge1xuICAgICAgaWYgKHRoaXMuaW5pdGlhbERhdGEgIT0gbnVsbCkge1xuICAgICAgICBjb25zb2xlLmxvZyh0aGlzLmluaXRpYWxEYXRhKTtcbiAgICAgICAgdGhpcy5zZXREYXRhRnJvbVByZXZpdXNDb2QoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgY29uc29sZS5sb2coJ05vIGhheSBkYXRhIGNhcmdhZGEgcGFyYSBlbCBQYXNvIDInKTtcbiAgICAgICBcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBzZXREYXRhRnJvbVByZXZpdXNDb2QoKSB7XG4gICAgdGhpcy5jb2RGb3JtU3RlcFR3by5jb250cm9sc1snc3R1ZGVudF9uYW1lJ10uc2V0VmFsdWUodGhpcy5pbml0aWFsRGF0YS5zdHVkZW50Lm5hbWUpO1xuICAgIHRoaXMuY29kRm9ybVN0ZXBUd28uY29udHJvbHNbJ3N0dWRlbnRfbGFzdF9uYW1lJ10uc2V0VmFsdWUodGhpcy5pbml0aWFsRGF0YS5zdHVkZW50Lmxhc3RfbmFtZSk7XG4gICAgdGhpcy5jb2RGb3JtU3RlcFR3by5jb250cm9sc1snc3R1ZGVudF9pZF9jYXJkX3R5cGUnXS5zZXRWYWx1ZSh0aGlzLmluaXRpYWxEYXRhLnN0dWRlbnQuaWRfY2FyZF90eXBlKTtcbiAgICB0aGlzLmNvZEZvcm1TdGVwVHdvLmNvbnRyb2xzWydzdHVkZW50X2lkX2NhcmQnXS5zZXRWYWx1ZSh0aGlzLmluaXRpYWxEYXRhLnN0dWRlbnQuaWRfY2FyZCk7XG4gICAgdGhpcy5jb2RGb3JtU3RlcFR3by5jb250cm9sc1snY291bnRyeSddLnNldFZhbHVlKHRoaXMuaW5pdGlhbERhdGEuc3R1ZGVudC5jaXR5LmNvdW50cnkpO1xuICAgIHRoaXMuY29kRm9ybVN0ZXBUd28uY29udHJvbHNbJ3N0YXRlJ10uc2V0VmFsdWUodGhpcy5pbml0aWFsRGF0YS5zdHVkZW50LmNpdHkuc3RhdGUpO1xuICAgIHRoaXMuY29kRm9ybVN0ZXBUd28uY29udHJvbHNbJ2NpdHknXS5zZXRWYWx1ZSh0aGlzLmluaXRpYWxEYXRhLnN0dWRlbnQuY2l0eS5jb2RlKTtcbiAgICB0aGlzLmNvZEZvcm1TdGVwVHdvLmNvbnRyb2xzWydnZW5kZXInXS5zZXRWYWx1ZSh0aGlzLmluaXRpYWxEYXRhLnN0dWRlbnQuZ2VuZGVyKTtcbiAgICB0aGlzLmNvZEZvcm1TdGVwVHdvLmNvbnRyb2xzWydncmFkZSddLnNldFZhbHVlKHRoaXMuaW5pdGlhbERhdGEuYWRpdGlvbmFsX2luZm9ybWF0aW9uLmdyYWRlKTtcbiAgICB0aGlzLmNvZEZvcm1TdGVwVHdvLmNvbnRyb2xzWydzdHVkZW50X29jY3VwYXRpb24nXS5zZXRWYWx1ZSh0aGlzLmluaXRpYWxEYXRhLmFkaXRpb25hbF9pbmZvcm1hdGlvbi5vY2N1cGF0aW9uKTtcbiAgICB0aGlzLmNvZEZvcm1TdGVwVHdvLmNvbnRyb2xzWyduaWNrbmFtZSddLnNldFZhbHVlKHRoaXMuaW5pdGlhbERhdGEuc3R1ZGVudC5uaWNrX25hbWUpO1xuICAgIHRoaXMuY29kRm9ybVN0ZXBUd28uY29udHJvbHNbJ3N0dWRlbnRfcGhvbmVfaW5kaWNhdGl2ZSddLnNldFZhbHVlKHRoaXMuaW5pdGlhbERhdGEuc3R1ZGVudC5waG9uZV9pbmRpY2F0aXZlKTtcbiAgICB0aGlzLmNvZEZvcm1TdGVwVHdvLmNvbnRyb2xzWydzdHVkZW50X3Bob25lX251bWJlciddLnNldFZhbHVlKHRoaXMuaW5pdGlhbERhdGEuc3R1ZGVudC5waG9uZV9udW1iZXIpO1xuICAgIHRoaXMuY29kRm9ybVN0ZXBUd28uY29udHJvbHNbJ2JpcnRoZGF0ZSddLnNldFZhbHVlKHRoaXMuaW5pdGlhbERhdGEuc3R1ZGVudC5iaXJ0aGRhdGUpO1xuICAgIHRoaXMuY29kRm9ybVN0ZXBUd28uY29udHJvbHNbJ3N0dWRlbnRfZW1haWwnXS5zZXRWYWx1ZSh0aGlzLmluaXRpYWxEYXRhLnN0dWRlbnQuZW1haWwpO1xuICB9XG5cbiAgdmFsaWRhdGVFcnJvcnMoKSB7XG4gICAgdGhpcy5jb2RGb3JtU3RlcFR3by52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKGNoYW5nZXMgPT4ge1xuICAgICAgaWYgKHRoaXMuY29kRm9ybVN0ZXBUd28uY29udHJvbHNbJ3N0dWRlbnRfbmFtZSddLmhhc0Vycm9yKCdtaW5sZW5ndGgnKSkge1xuICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICdMb3Mgbm9tYnJlcyBkZWJlbiB0ZW5lciBtw61uaW1vIDMgY2FyYWN0ZXJlcyc7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMuY29kRm9ybVN0ZXBUd28uY29udHJvbHNbJ3N0dWRlbnRfbGFzdF9uYW1lJ10uaGFzRXJyb3IoJ21pbmxlbmd0aCcpKSB7XG4gICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJ0xvcyBhcGVsbGlkb3MgZGViZW4gdGVuZXIgbcOtbmltbyA1IGNhcmFjdGVyZXMnO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLmNvZEZvcm1TdGVwVHdvLmNvbnRyb2xzWydwYXNzd29yZCddLmhhc0Vycm9yKCdtaW5sZW5ndGgnKSkge1xuICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICdMYSBjb250cmFzZcOxYSBkZWJlIHRlbmVyIG3DrW5pbW8gNiBjYXJhY3RlcmVzJztcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5jb2RGb3JtU3RlcFR3by5jb250cm9sc1sncGFzc3dvcmQnXS52YWx1ZSAhPT0gdGhpcy5jb2RGb3JtU3RlcFR3by5jb250cm9sc1sncmVfcGFzc3dvcmQnXS52YWx1ZSkge1xuICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICdMYXMgY29udHJhc2XDsWFzIG5vIGNvaW5jaWRlbic7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMuY29kRm9ybVN0ZXBUd28uY29udHJvbHNbJ2FnZSddLmVycm9ycykge1xuICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICdGZWNoYSBkZSBuYWNpbWllbnRvIG5vIHbDoWxpZGEnO1xuICAgICAgfVxuICAgICAgIGVsc2Uge1xuICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICdGYWx0YW4gY2FtcG9zIHBvciBsbGVuYXInO1xuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICBzdGFydExvY2FsU3RvcmFnZVdvcmsoKSB7XG4gICAgdGhpcy5jb250cm9scy5mb3JFYWNoKGNvbnRyb2wgPT4ge1xuICAgICAgbGV0IGxvY2FsU3RvcmFnZVZhbHVlOiBsb2NhbFN0b3JhZ2VWYWx1ZXMgPSB0aGlzLnJlYWRBbmRXcml0ZUxTKDIsIGNvbnRyb2wubmFtZSk7XG4gICAgICB0aGlzLmNvZEZvcm1TdGVwVHdvLmNvbnRyb2xzW2NvbnRyb2wubmFtZV0uc2V0VmFsdWUobG9jYWxTdG9yYWdlVmFsdWUudmFsdWUpO1xuICAgICAgdGhpcy5saXN0ZW5Gb3JtQ2hhbmdlcygyLCBjb250cm9sLm5hbWUsIHRoaXMuY29kRm9ybVN0ZXBUd28uY29udHJvbHNbY29udHJvbC5uYW1lXS52YWx1ZUNoYW5nZXMpO1xuICAgIH0pO1xuICB9XG5cbiAgaW5pdEZvcm0oKSB7XG4gICAgdGhpcy5jb2RGb3JtU3RlcFR3byA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgc3R1ZGVudF9hZGRyZXNzOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSwgW11dLFxuICAgICAgYmlydGhkYXRlOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSwgW11dLFxuICAgICAgY291bnRyeTogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0sIFtdXSxcbiAgICAgIHN0YXRlOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSwgW11dLFxuICAgICAgY2l0eTogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0sIFtdXSxcbiAgICAgIHN0dWRlbnRfaWRfY2FyZF90eXBlOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSwgW11dLFxuICAgICAgc3R1ZGVudF9pZF9jYXJkOiBbICcnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5taW5MZW5ndGgoNSksIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDIwKV1dLFxuICAgICAgc3R1ZGVudF9sYXN0X25hbWU6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWluTGVuZ3RoKDUpLCBWYWxpZGF0b3JzLm1heExlbmd0aCgzMildXSxcbiAgICAgIHN0dWRlbnRfbmFtZTogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5taW5MZW5ndGgoMyksIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDMyKV1dLFxuICAgICAgc3R1ZGVudF9lbWFpbDogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5lbWFpbF1dLFxuICAgICAgbmlja25hbWU6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcbiAgICAgIGdlbmRlcjogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuICAgICAgYWdlOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSwgW11dLFxuICAgICAgc3R1ZGVudF9vY2N1cGF0aW9uOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgICBzdHJhdHVtOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgICBncmFkZTogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuICAgICAgY2l2aWxfc3RhdHVzOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgICBzdHVkZW50X3Bob25lX2luZGljYXRpdmU6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdLCBbXV0sXG4gICAgICBzdHVkZW50X3Bob25lX251bWJlcjogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5taW5MZW5ndGgoMTApLCBWYWxpZGF0b3JzLm1heExlbmd0aCgxNSldXSxcbiAgICAgIHBhc3N3b3JkOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1pbkxlbmd0aCg2KV1dLFxuICAgICAgcmVfcGFzc3dvcmQ6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWluTGVuZ3RoKDYpXV0sXG4gICAgfSk7XG5cbiAgICAvLyBDYWxjdWxhciBlZGFkIHkgc2V0ZWFyIHZhbG9yXG4gICAgdGhpcy5jb2RGb3JtU3RlcFR3by5jb250cm9sc1snYmlydGhkYXRlJ10udmFsdWVDaGFuZ2VzLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAoY2hhbmdlKSA9PiB7XG4gICAgICAgIGxldCB0b2RheSA9IG5ldyBEYXRlKCk7XG4gICAgICAgIGxldCBiaXJ0aGRheSA9IG5ldyBEYXRlKGNoYW5nZSk7XG4gICAgICAgIGxldCBhZ2UgPSB0b2RheS5nZXRGdWxsWWVhcigpIC0gYmlydGhkYXkuZ2V0RnVsbFllYXIoKTtcbiAgICAgICAgbGV0IG1vbnRoID0gdG9kYXkuZ2V0TW9udGgoKSAtIGJpcnRoZGF5LmdldE1vbnRoKCk7XG5cbiAgICAgICAgaWYgKG1vbnRoIDwgMCB8fCAobW9udGggPT09IDAgJiYgdG9kYXkuZ2V0RGF0ZSgpIDwgYmlydGhkYXkuZ2V0RGF0ZSgpKSkge1xuICAgICAgICAgIGFnZS0tO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGFnZSA8IDMpIHtcbiAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICdGZWNoYSBkZSBuYWNpbWllbnRvIG5vIHbDoWxpZGEnXG4gICAgICAgICAgdGhpcy5jb2RGb3JtU3RlcFR3by5jb250cm9sc1snYmlydGhkYXRlJ10uc2V0RXJyb3JzKHtcbiAgICAgICAgICAgIGludmFsaWRBZ2U6IHRydWVcbiAgICAgICAgICB9KVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuY29kRm9ybVN0ZXBUd28uY29udHJvbHNbJ2JpcnRoZGF0ZSddLnNldEVycm9ycyhudWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY29kRm9ybVN0ZXBUd28uY29udHJvbHNbJ2FnZSddLnNldFZhbHVlKGFnZSk7XG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIGdldFBhcmFtZXRlcnMoKSB7XG4gICAgdGhpcy5wYXJhbWV0ZXJTZXJ2aWNlLmdldENhcmRUeXBlcygnY29sJykuc3Vic2NyaWJlKChyZXNwb25zZSkgPT4ge1xuICAgICAgdGhpcy5pZFR5cGVzID0gcmVzcG9uc2UuZGF0YTtcbiAgICB9KTtcbiAgICB0aGlzLnBhcmFtZXRlclNlcnZpY2UuZ2V0SW5kaWNhdGl2ZXMoKS5zdWJzY3JpYmUoKHJlc3BvbnNlKSA9PiB7XG4gICAgICB0aGlzLmluZGljYXRpdmVzID0gcmVzcG9uc2UuZGF0YTtcbiAgICB9KTtcbiAgICB0aGlzLnBhcmFtZXRlclNlcnZpY2UuZ2V0Q291bnRyaWVzKCkuc3Vic2NyaWJlKChyZXNwb25zZSkgPT4ge1xuICAgICAgdGhpcy5jb3VudHJpZXMgPSByZXNwb25zZS5kYXRhO1xuICAgIH0pO1xuICAgIHRoaXMucGFyYW1ldGVyU2VydmljZS5nZXRTdHJhdHVtcygpLnN1YnNjcmliZSgocmVzcG9uc2UpID0+IHtcbiAgICAgIHRoaXMuc3RyYXR1bXMgPSByZXNwb25zZS5kYXRhO1xuICAgIH0pO1xuICAgIHRoaXMucGFyYW1ldGVyU2VydmljZS5nZXRDaXZpbFN0YXR1cygpLnN1YnNjcmliZSgocmVzcG9uc2UpID0+IHtcbiAgICAgIHRoaXMuY2l2aWxTdGF0dXMgPSByZXNwb25zZS5kYXRhO1xuICAgIH0pO1xuICAgIHRoaXMucGFyYW1ldGVyU2VydmljZS5nZXRHZW5kZXJzKCkuc3Vic2NyaWJlKChyZXNwb25zZSkgPT4ge1xuICAgICAgdGhpcy5nZW5kZXJzID0gcmVzcG9uc2UuZGF0YTtcbiAgICB9KTtcblxuICAgIHRoaXMucGFyYW1ldGVyU2VydmljZS5nZXRBbGxDaXRpZXMoKS5zdWJzY3JpYmUoKHJlc3BvbnNlKSA9PiB7XG4gICAgICB0aGlzLmNpdGllcyA9IHJlc3BvbnNlLmRhdGE7XG4gICAgfSk7XG5cbiAgICB0aGlzLnBhcmFtZXRlclNlcnZpY2UuZ2V0QWxsU3RhdGVzKCkuc3Vic2NyaWJlKChyZXNwb25zZSkgPT4ge1xuICAgICAgdGhpcy5zdGF0ZXMgPSByZXNwb25zZS5kYXRhO1xuICAgIH0pO1xuICAgIC8vIHRoaXMucGFyYW1ldGVyU2VydmljZS5nZXRHZW5kZXJzKCkucGlwZShcbiAgICAvLyAgIG1hcCgocmVzcG9uc2U6IGFueSkgPT4gcmVzcG9uc2UuZGF0YSlcbiAgICAvLyApXG4gICAgLy8gLnN1YnNjcmliZSgoZ2VuZGVyczogYW55W10pID0+IHtcbiAgICAvLyAgIGdlbmRlcnMuZm9yRWFjaChnZW5kZXIgPT4ge1xuICAgIC8vICAgICBsZXQgZ2VuZGVySXRlbSA9IHtcbiAgICAvLyAgICAgICBjb2RlOiBnZW5kZXIuY29kZSxcbiAgICAvLyAgICAgICBuYW1lOiBnZW5kZXIubmFtZV9zcGFuaXNoXG4gICAgLy8gICAgIH1cbiAgICAvLyAgICAgdGhpcy5nZW5kZXJzLnB1c2goZ2VuZGVySXRlbSlcbiAgICAvLyAgIH0pXG4gICAgLy8gfSlcblxuICB9XG5cbiAgc2VuZEZvcm0oKSB7XG4gICAgdGhpcy5jb2RGb3JtU3RlcFR3by5tYXJrQWxsQXNUb3VjaGVkKCk7XG4gICAgaWYgKHRoaXMuY29kRm9ybVN0ZXBUd28uaW52YWxpZCkgcmV0dXJuO1xuXG4gICAgLy8gTW92ZXJub3MgYWwgcGFzbyAzXG4gICAgdGhpcy5jaGFuZ2VTdGVwRXZlbnQuZW1pdCgyKTtcbiAgfVxuXG4gIGdldFN0YXRlKHN0YXRlOiBhbnkpIHtcbiAgICB0aGlzLmdldENpdHkoc3RhdGUpO1xuICB9XG5cbiAgZ2V0Q2l0eShzdGF0ZTogYW55KSB7XG4gICAgdGhpcy5wYXJhbWV0ZXJTZXJ2aWNlLmdldENpdGllc0J5U3RhdGUoc3RhdGUpLnN1YnNjcmliZSgocmVzcG9uc2UpID0+IHtcbiAgICAgIHRoaXMuY2l0aWVzID0gcmVzcG9uc2UuZGF0YTtcbiAgICAgIHRoaXMuc2VsZWN0Q2l0eSh0aGlzLmxvY2FsU3RvcmFnZUNPRC5nZXRDb2RGb3JtRGF0YSgyLCAnY2l0eScpKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8vIEV2ZW50b3MgZGUgbG9zIHNlbGVjdFxuICBzZWxlY3RDb3VudHJ5KGNvdW50cnk6IGFueSkge1xuICAgIGxldCBpc28gPSAnJztcbiAgICBpZiAoY291bnRyeSA9PT0gJzInKSBpc28gPSAnY29sJztcbiAgICBlbHNlIGlmIChjb3VudHJ5ID09PSAnMycpIGlzbyA9ICd2ZW4nO1xuICAgIGVsc2UgaWYgKGNvdW50cnkgPT09ICc0JykgaXNvID0gJ3VzYSc7XG4gICAgZWxzZSBpc28gPSAnJztcbiAgICBcbiAgICBpZiAoaXNvICE9ICcnKSB7XG4gICAgICB0aGlzLmNvZEZvcm1TdGVwVHdvLmNvbnRyb2xzWydjb3VudHJ5J10uc2V0VmFsdWUoY291bnRyeSk7XG5cbiAgICAgIHRoaXMucGFyYW1ldGVyU2VydmljZS5nZXRTdGF0ZXNCeUNvdW50cnkoaXNvKS5zdWJzY3JpYmUoKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgIHRoaXMuc3RhdGVzID0gcmVzcG9uc2UuZGF0YTtcbiAgICAgICAgdGhpcy5zZWxlY3RTdGF0ZSh0aGlzLmxvY2FsU3RvcmFnZUNPRC5nZXRDb2RGb3JtRGF0YSgyLCAnc3RhdGUnKSk7XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jb2RGb3JtU3RlcFR3by5jb250cm9sc1snY291bnRyeSddLnNldFZhbHVlKG51bGwpO1xuICAgIH1cbiAgICB0aGlzLmNvdW50cnlTZWxlY3RlZCA9IGNvdW50cnk7XG4gIH1cblxuICBzZWxlY3RTdGF0ZShzdGF0ZTogYW55KSB7XG4gICAgaWYgKHN0YXRlICE9PSAnRGVwYXJ0YW1lbnRvIG8gZXN0YWRvJykge1xuICAgICAgdGhpcy5jb2RGb3JtU3RlcFR3by5jb250cm9sc1snc3RhdGUnXS5zZXRWYWx1ZShzdGF0ZSk7XG4gICAgICB0aGlzLmdldFN0YXRlKHN0YXRlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jb2RGb3JtU3RlcFR3by5jb250cm9sc1snc3RhdGUnXS5zZXRWYWx1ZShudWxsKTtcbiAgICAgIHRoaXMuY29kRm9ybVN0ZXBUd28uY29udHJvbHNbJ2NpdHknXS5zZXRWYWx1ZShudWxsKTtcbiAgICAgIHRoaXMuY2l0aWVzID0gW107XG4gICAgfVxuICB9XG5cbiAgc2VsZWN0Q2l0eShjaXR5OiBhbnkpIHtcbiAgICBpZiAoY2l0eSAhPT0gJ0NpdWRhZCBkZSByZXNpZGVuY2lhJykge1xuICAgICAgdGhpcy5jb2RGb3JtU3RlcFR3by5jb250cm9sc1snY2l0eSddLnNldFZhbHVlKGNpdHkpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNvZEZvcm1TdGVwVHdvLmNvbnRyb2xzWydjaXR5J10uc2V0VmFsdWUobnVsbCk7XG4gICAgfVxuICB9XG5cbiAgc2VsZWN0SWRUeXBlKGlkVHlwZTogYW55KSB7XG4gICAgaWYgKGlkVHlwZSAhPT0gJ1RpcG8gZGUgZG9jdW1lbnRvJykge1xuICAgICAgdGhpcy5jb2RGb3JtU3RlcFR3by5jb250cm9sc1snc3R1ZGVudF9pZF9jYXJkX3R5cGUnXS5zZXRWYWx1ZShpZFR5cGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNvZEZvcm1TdGVwVHdvLmNvbnRyb2xzWydzdHVkZW50X2lkX2NhcmRfdHlwZSddLnNldFZhbHVlKG51bGwpO1xuICAgIH1cbiAgfVxuXG4gIHNlbGVjdEluZGljYXRpdmVzKGluZGljYXRpdmU6IGFueSkge1xuICAgIGlmIChpbmRpY2F0aXZlICE9PSAnSW5kaWNhdGl2bycpIHtcbiAgICAgIHRoaXMuY29kRm9ybVN0ZXBUd28uY29udHJvbHNbJ3N0dWRlbnRfcGhvbmVfaW5kaWNhdGl2ZSddLnNldFZhbHVlKGluZGljYXRpdmUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNvZEZvcm1TdGVwVHdvLmNvbnRyb2xzWydzdHVkZW50X3Bob25lX2luZGljYXRpdmUnXS5zZXRWYWx1ZShudWxsKTtcbiAgICB9XG4gIH1cblxuICBzZWxlY3RHZW5kZXIoZ2VuZGVyOiBhbnkpIHtcbiAgICBpZiAoZ2VuZGVyICE9PSAnR8OpbmVybycpIHtcbiAgICAgIHRoaXMuY29kRm9ybVN0ZXBUd28uY29udHJvbHNbJ2dlbmRlciddLnNldFZhbHVlKGdlbmRlcik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY29kRm9ybVN0ZXBUd28uY29udHJvbHNbJ2dlbmRlciddLnNldFZhbHVlKG51bGwpO1xuICAgIH1cbiAgfVxuXG4gIHNlbGVjdFN0cmF0dW0oc3RyYXR1bTogYW55KSB7XG4gICAgaWYgKHN0cmF0dW0gIT09ICdFc3RyYXRvJykge1xuICAgICAgdGhpcy5jb2RGb3JtU3RlcFR3by5jb250cm9sc1snc3RyYXR1bSddLnNldFZhbHVlKHN0cmF0dW0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNvZEZvcm1TdGVwVHdvLmNvbnRyb2xzWydzdHJhdHVtJ10uc2V0VmFsdWUobnVsbCk7XG4gICAgfVxuICB9XG5cbiAgc2VsZWN0Q2l2aWxTdGF0dXMoY2l2aWxfc3RhdHVzOiBhbnkpIHtcbiAgICBpZiAoY2l2aWxfc3RhdHVzICE9PSAnRXN0YWRvIGNpdmlsJykge1xuICAgICAgdGhpcy5jb2RGb3JtU3RlcFR3by5jb250cm9sc1snY2l2aWxfc3RhdHVzJ10uc2V0VmFsdWUoY2l2aWxfc3RhdHVzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jb2RGb3JtU3RlcFR3by5jb250cm9sc1snY2l2aWxfc3RhdHVzJ10uc2V0VmFsdWUobnVsbCk7XG4gICAgfVxuICB9XG59XG4iLCI8Zm9ybSBhdXRvY29tcGxldGU9XCJvZmZcIiBbZm9ybUdyb3VwXT1cImNvZEZvcm1TdGVwVHdvXCIgY2xhc3M9XCJncmlkXCI+XG5cbiAgPGRpdiBjbGFzcz1cImNvbFwiPlxuICAgIDxpcHQtaW5wdXRcbiAgICAgIFtpbnB1dFR5cGVdPVwiJ3RleHQnXCJcbiAgICAgIFtwbGFjZUhvbGRlcl09XCInTm9tYnJlcydcIlxuICAgICAgW2NvbnRyb2xdPVwiY29kRm9ybVN0ZXBUd28uY29udHJvbHNbJ3N0dWRlbnRfbmFtZSddXCJcbiAgICA+PC9pcHQtaW5wdXQ+XG4gICAgPGlwdC1zZWxlY3RcbiAgICAgIFtpbml0aWFsVmFsdWVdPVwiY29kRm9ybVN0ZXBUd28uY29udHJvbHNbJ3N0dWRlbnRfaWRfY2FyZF90eXBlJ10udmFsdWVcIlxuICAgICAgW2NvbnRyb2xdPVwiY29kRm9ybVN0ZXBUd28uY29udHJvbHNbJ3N0dWRlbnRfaWRfY2FyZF90eXBlJ11cIlxuICAgICAgW3NlbGVjdENvZGVdPVwiY29kRm9ybVN0ZXBUd28uY29udHJvbHNbJ3N0dWRlbnRfaWRfY2FyZF90eXBlJ10udmFsdWUgPT09IG51bGwgPyAnVGlwbyBkZSBkb2N1bWVudG8nIDogY29kRm9ybVN0ZXBUd28uY29udHJvbHNbJ3N0dWRlbnRfaWRfY2FyZF90eXBlJ10udmFsdWVcIlxuICAgICAgW2lzUmVxdWlyZWRdPVwidHJ1ZVwiXG4gICAgICBbZGF0YV09XCJpZFR5cGVzXCJcbiAgICAgIChldmVudFNlbGVjdCk9XCJzZWxlY3RJZFR5cGUoJGV2ZW50KVwiXG4gICAgICBbZGVmYXVsdFRleHRdPVwiJ1RpcG8gZGUgZG9jdW1lbnRvJ1wiXG4gICAgPjwvaXB0LXNlbGVjdD5cbiAgICA8aXB0LXNlbGVjdFxuICAgICAgW2luaXRpYWxWYWx1ZV09XCJjb2RGb3JtU3RlcFR3by5jb250cm9sc1snY291bnRyeSddLnZhbHVlXCJcbiAgICAgIFtjb250cm9sXT1cImNvZEZvcm1TdGVwVHdvLmNvbnRyb2xzWydjb3VudHJ5J11cIlxuICAgICAgW3NlbGVjdENvZGVdPVwiY29kRm9ybVN0ZXBUd28uY29udHJvbHNbJ2NvdW50cnknXS52YWx1ZSA9PT0gbnVsbCA/ICdQYcOtcyBkZSByZXNpZGVuY2lhJyA6IGNvZEZvcm1TdGVwVHdvLmNvbnRyb2xzWydjb3VudHJ5J10udmFsdWVcIlxuICAgICAgKGV2ZW50U2VsZWN0KT1cInNlbGVjdENvdW50cnkoJGV2ZW50KVwiXG4gICAgICBbZGF0YV09XCJjb3VudHJpZXNcIlxuICAgICAgW2RlZmF1bHRUZXh0XT1cIidQYcOtcyBkZSByZXNpZGVuY2lhJ1wiXG4gICAgPjwvaXB0LXNlbGVjdD5cbiAgICA8aXB0LXNlbGVjdFxuICAgICAgW2luaXRpYWxWYWx1ZV09XCJjb2RGb3JtU3RlcFR3by5jb250cm9sc1snY2l0eSddLnZhbHVlXCJcbiAgICAgIFtjb250cm9sXT1cImNvZEZvcm1TdGVwVHdvLmNvbnRyb2xzWydjaXR5J11cIlxuICAgICAgW3NlbGVjdENvZGVdPVwiY29kRm9ybVN0ZXBUd28uY29udHJvbHNbJ2NpdHknXS52YWx1ZSA9PT0gbnVsbCA/ICdDaXVkYWQgZGUgcmVzaWRlbmNpYScgOiBjb2RGb3JtU3RlcFR3by5jb250cm9sc1snY2l0eSddLnZhbHVlXCJcbiAgICAgIChldmVudFNlbGVjdCk9XCJzZWxlY3RDaXR5KCRldmVudClcIlxuICAgICAgW2RhdGFdPVwiY2l0aWVzXCJcbiAgICAgIFtkZWZhdWx0VGV4dF09XCInQ2l1ZGFkIGRlIHJlc2lkZW5jaWEnXCJcbiAgICA+PC9pcHQtc2VsZWN0PlxuICAgIDxpcHQtaW5wdXRcbiAgICAgIG9uZm9jdXM9XCIodGhpcy50eXBlPSdkYXRlJylcIlxuICAgICAgW2lucHV0VHlwZV09XCInZGF0ZSdcIlxuICAgICAgW2NvbnRyb2xdPVwiY29kRm9ybVN0ZXBUd28uY29udHJvbHNbJ2JpcnRoZGF0ZSddXCJcbiAgICAgIFtwbGFjZUhvbGRlcl09XCInRmVjaGEgZGUgbmFjaW1pZW50bydcIlxuICAgID48L2lwdC1pbnB1dD5cbiAgICAgPGlwdC1zZWxlY3RcbiAgICAgIFtpbml0aWFsVmFsdWVdPVwiY29kRm9ybVN0ZXBUd28uY29udHJvbHNbJ2dlbmRlciddLnZhbHVlXCJcbiAgICAgIFtjb250cm9sXT1cImNvZEZvcm1TdGVwVHdvLmNvbnRyb2xzWydnZW5kZXInXVwiXG4gICAgICBbZGF0YV09XCJnZW5kZXJzXCJcbiAgICAgIChldmVudFNlbGVjdCk9XCJzZWxlY3RHZW5kZXIoJGV2ZW50KVwiXG4gICAgICBbZGVmYXVsdFRleHRdPVwiJ0fDqW5lcm8nXCJcbiAgICA+PC9pcHQtc2VsZWN0PlxuICAgIDxpcHQtc2VsZWN0XG4gICAgICBbaW5pdGlhbFZhbHVlXT1cImNvZEZvcm1TdGVwVHdvLmNvbnRyb2xzWydzdHJhdHVtJ10udmFsdWVcIlxuICAgICAgW2NvbnRyb2xdPVwiY29kRm9ybVN0ZXBUd28uY29udHJvbHNbJ3N0cmF0dW0nXVwiXG4gICAgICBbZGF0YV09XCJzdHJhdHVtc1wiXG4gICAgICAoZXZlbnRTZWxlY3QpPVwic2VsZWN0U3RyYXR1bSgkZXZlbnQpXCJcbiAgICAgIFtkZWZhdWx0VGV4dF09XCInRXN0cmF0bydcIlxuICAgID48L2lwdC1zZWxlY3Q+XG4gICAgPGlwdC1pbnB1dFxuICAgICAgW2lucHV0VHlwZV09XCIndGV4dCdcIlxuICAgICAgW3BsYWNlSG9sZGVyXT1cIidHcmFkbydcIlxuICAgICAgW2NvbnRyb2xdPVwiY29kRm9ybVN0ZXBUd28uY29udHJvbHNbJ2dyYWRlJ11cIlxuICAgID48L2lwdC1pbnB1dD5cbiAgICA8aXB0LXNlbGVjdFxuICAgICAgW2luaXRpYWxWYWx1ZV09XCJjb2RGb3JtU3RlcFR3by5jb250cm9sc1snc3R1ZGVudF9waG9uZV9pbmRpY2F0aXZlJ10udmFsdWVcIlxuICAgICAgW2NvbnRyb2xdPVwiY29kRm9ybVN0ZXBUd28uY29udHJvbHNbJ3N0dWRlbnRfcGhvbmVfaW5kaWNhdGl2ZSddXCJcbiAgICAgIFtkYXRhXT1cImluZGljYXRpdmVzXCJcbiAgICAgIChldmVudFNlbGVjdCk9XCJzZWxlY3RJbmRpY2F0aXZlcygkZXZlbnQpXCJcbiAgICAgIFtkZWZhdWx0VGV4dF09XCInSW5kaWNhdGl2bydcIlxuICAgID48L2lwdC1zZWxlY3Q+XG4gICAgPGlwdC1pbnB1dFxuICAgICAgW2lucHV0VHlwZV09XCInZW1haWwnXCJcbiAgICAgIFtwbGFjZUhvbGRlcl09XCInQ29ycmVvIGVsZWN0csOzbmljbydcIlxuICAgICAgW2NvbnRyb2xdPVwiY29kRm9ybVN0ZXBUd28uY29udHJvbHNbJ3N0dWRlbnRfZW1haWwnXVwiXG4gICAgPjwvaXB0LWlucHV0PlxuICAgIDxpcHQtaW5wdXRcbiAgICAgIFtpbnB1dFR5cGVdPVwiJ3Bhc3N3b3JkJ1wiXG4gICAgICBbcGxhY2VIb2xkZXJdPVwiJ1JlcGV0aXIgY29udHJhc2XDsWEnXCJcbiAgICAgIFtjb250cm9sXT1cImNvZEZvcm1TdGVwVHdvLmNvbnRyb2xzWydyZV9wYXNzd29yZCddXCJcbiAgICA+PC9pcHQtaW5wdXQ+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJjb2xcIj5cbiAgICA8aXB0LWlucHV0XG4gICAgICBbaW5wdXRUeXBlXT1cIid0ZXh0J1wiXG4gICAgICBbcGxhY2VIb2xkZXJdPVwiJ0FwZWxsaWRvcydcIlxuICAgICAgW2NvbnRyb2xdPVwiY29kRm9ybVN0ZXBUd28uY29udHJvbHNbJ3N0dWRlbnRfbGFzdF9uYW1lJ11cIlxuICAgID48L2lwdC1pbnB1dD5cbiAgICA8aXB0LWlucHV0XG4gICAgICBbaW5wdXRUeXBlXT1cIidudW1iZXInXCJcbiAgICAgIFtwbGFjZUhvbGRlcl09XCInTsO6bWVybyBkZSBkb2N1bWVudG8nXCJcbiAgICAgIFtjb250cm9sXT1cImNvZEZvcm1TdGVwVHdvLmNvbnRyb2xzWydzdHVkZW50X2lkX2NhcmQnXVwiXG4gICAgPjwvaXB0LWlucHV0PlxuICAgIDxpcHQtc2VsZWN0XG4gICAgICBbaW5pdGlhbFZhbHVlXT1cImNvZEZvcm1TdGVwVHdvLmNvbnRyb2xzWydzdGF0ZSddLnZhbHVlXCJcbiAgICAgIFtjb250cm9sXT1cImNvZEZvcm1TdGVwVHdvLmNvbnRyb2xzWydzdGF0ZSddXCJcbiAgICAgIFtzZWxlY3RDb2RlXT1cImNvZEZvcm1TdGVwVHdvLmNvbnRyb2xzWydzdGF0ZSddLnZhbHVlID09PSBudWxsID8gJ0RlcGFydGFtZW50byBvIGVzdGFkbycgOiBjb2RGb3JtU3RlcFR3by5jb250cm9sc1snc3RhdGUnXS52YWx1ZVwiXG4gICAgICBbaXNSZXF1aXJlZF09XCJ0cnVlXCJcbiAgICAgIChldmVudFNlbGVjdCk9XCJzZWxlY3RTdGF0ZSgkZXZlbnQpXCJcbiAgICAgIFtkYXRhXT1cInN0YXRlc1wiXG4gICAgICBbZGVmYXVsdFRleHRdPVwiJ0RlcGFydGFtZW50byBvIGVzdGFkbydcIlxuICAgID48L2lwdC1zZWxlY3Q+XG4gICAgPGlwdC1pbnB1dFxuICAgICAgW2lucHV0VHlwZV09XCIndGV4dCdcIlxuICAgICAgW3BsYWNlSG9sZGVyXT1cIidEaXJlY2Npw7NuJ1wiXG4gICAgICBbY29udHJvbF09XCJjb2RGb3JtU3RlcFR3by5jb250cm9sc1snc3R1ZGVudF9hZGRyZXNzJ11cIlxuICAgID48L2lwdC1pbnB1dD5cbiAgICA8aXB0LWlucHV0XG4gICAgICBbaW5wdXRUeXBlXT1cIidudW1iZXInXCJcbiAgICAgIFtwbGFjZUhvbGRlcl09XCInRWRhZCdcIlxuICAgICAgW2NvbnRyb2xdPVwiY29kRm9ybVN0ZXBUd28uY29udHJvbHNbJ2FnZSddXCJcbiAgICA+PC9pcHQtaW5wdXQ+XG4gICAgPGlwdC1pbnB1dFxuICAgICAgW2lucHV0VHlwZV09XCIndGV4dCdcIlxuICAgICAgW3BsYWNlSG9sZGVyXT1cIidOaWNrbmFtZSdcIlxuICAgICAgW2NvbnRyb2xdPVwiY29kRm9ybVN0ZXBUd28uY29udHJvbHNbJ25pY2tuYW1lJ11cIlxuICAgID48L2lwdC1pbnB1dD5cbiAgICA8aXB0LWlucHV0XG4gICAgICBbaW5wdXRUeXBlXT1cIid0ZXh0J1wiXG4gICAgICBbcGxhY2VIb2xkZXJdPVwiJ09jdXBhY2nDs24nXCJcbiAgICAgIFtjb250cm9sXT1cImNvZEZvcm1TdGVwVHdvLmNvbnRyb2xzWydzdHVkZW50X29jY3VwYXRpb24nXVwiXG4gICAgPjwvaXB0LWlucHV0PlxuICAgIDxpcHQtc2VsZWN0XG4gICAgICBbaW5pdGlhbFZhbHVlXT1cImNvZEZvcm1TdGVwVHdvLmNvbnRyb2xzWydjaXZpbF9zdGF0dXMnXS52YWx1ZVwiXG4gICAgICBbY29udHJvbF09XCJjb2RGb3JtU3RlcFR3by5jb250cm9sc1snY2l2aWxfc3RhdHVzJ11cIlxuICAgICAgW2RhdGFdPVwiY2l2aWxTdGF0dXNcIlxuICAgICAgKGV2ZW50U2VsZWN0KT1cInNlbGVjdENpdmlsU3RhdHVzKCRldmVudClcIlxuICAgICAgW2RlZmF1bHRUZXh0XT1cIidFc3RhZG8gY2l2aWwnXCJcbiAgICA+PC9pcHQtc2VsZWN0PlxuICAgIDxpcHQtaW5wdXRcbiAgICAgIFtpbnB1dFR5cGVdPVwiJ251bWJlcidcIlxuICAgICAgW3BsYWNlSG9sZGVyXT1cIidOw7ptZXJvIGRlIHRlbMOpZm9ubydcIlxuICAgICAgW2NvbnRyb2xdPVwiY29kRm9ybVN0ZXBUd28uY29udHJvbHNbJ3N0dWRlbnRfcGhvbmVfbnVtYmVyJ11cIlxuICAgID48L2lwdC1pbnB1dD5cbiAgICA8aXB0LWlucHV0XG4gICAgICBbaW5wdXRUeXBlXT1cIidwYXNzd29yZCdcIlxuICAgICAgW3BsYWNlSG9sZGVyXT1cIidDb250cmFzZcOxYSdcIlxuICAgICAgW2NvbnRyb2xdPVwiY29kRm9ybVN0ZXBUd28uY29udHJvbHNbJ3Bhc3N3b3JkJ11cIlxuICAgID48L2lwdC1pbnB1dD5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cImNvbC0xMlwiPjwvZGl2PlxuXG48L2Zvcm0+XG5cbjxkaXYgY2xhc3M9XCJmbGV4IG10LTMgYWxpZ24taXRlbXMtY2VudGVyIGdhcC0zXCI+XG4gIDxzcGFuICpuZ0lmPVwiY29kRm9ybVN0ZXBUd28uaW52YWxpZCAmJiBjb2RGb3JtU3RlcFR3by50b3VjaGVkXCIgY2xhc3M9XCJ0ZXh0LXJlZC01MDAgZm9udC1ib2xkIHRleHQtY2VudGVyIG10LTEgcHktMiBiZy1yZWQtMTAwIHctZnVsbCBib3JkZXItcm91bmQteGxcIj57eyBlcnJvck1lc3NhZ2UgfX08L3NwYW4+XG4gIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiIGNsYXNzPVwibWwtYXV0byBwLWJ1dHRvbi1zbVwiIChjbGljayk9XCJzZW5kRm9ybSgpXCIgcEJ1dHRvbiBsYWJlbD1cIlNpZ3VpZW50ZVwiIGljb249XCJwaSBwaS1hcnJvdy1yaWdodFwiPjwvYnV0dG9uPlxuPC9kaXY+XG4iXX0=
@@ -165,6 +165,14 @@ export class ParameterService extends IPTGeneralService {
165
165
  let serviceUrl = this.SERVICE_URL + 'get/country/state/by/city/' + code;
166
166
  return this.http.get(serviceUrl);
167
167
  }
168
+ getAllStates() {
169
+ let serviceUrl = this.SERVICE_URL + 'get/all/states';
170
+ return this.http.get(serviceUrl);
171
+ }
172
+ getAllCities() {
173
+ let serviceUrl = this.SERVICE_URL + 'get/all/cities';
174
+ return this.http.get(serviceUrl);
175
+ }
168
176
  }
169
177
  ParameterService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: ParameterService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
170
178
  ParameterService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: ParameterService, providedIn: 'root' });
@@ -174,4 +182,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImpor
174
182
  providedIn: 'root',
175
183
  }]
176
184
  }], ctorParameters: function () { return [{ type: i1.HttpClient }]; } });
177
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYW1ldGVycy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vZGVzaWduLXN5c3RlbS9zcmMvbGliL2NvcmUvc2VydmljZXMvcGFyYW1ldGVycy1zZXJ2aWNlL3BhcmFtZXRlcnMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzNDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7QUFLM0QsTUFBTSxPQUFPLGdCQUFpQixTQUFRLGlCQUFpQjtJQUdyRCxZQUFvQixJQUFnQjtRQUNsQyxLQUFLLEVBQUUsQ0FBQztRQURVLFNBQUksR0FBSixJQUFJLENBQVk7UUFGNUIsZ0JBQVcsR0FBRyxpQkFBaUIsQ0FBQztRQUl0QyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQ3ZELENBQUM7SUFFRCxjQUFjO1FBQ1osSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDLFdBQVcsR0FBRyxpQkFBaUIsQ0FBQztRQUN0RCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCxZQUFZLENBQUMsT0FBZTtRQUMxQixJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUMsV0FBVyxHQUFHLDJCQUEyQixHQUFHLE9BQU8sQ0FBQztRQUMxRSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCxZQUFZO1FBQ1YsSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDLFdBQVcsR0FBRyxlQUFlLENBQUM7UUFDcEQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lB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QUVELHlCQUF5QixDQUFDLElBQVk7UUFDcEMsSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDLFdBQVcsR0FBRywrQkFBK0IsR0FBRyxJQUFJLENBQUM7UUFDM0UsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsaUJBQWlCLENBQUMsWUFBb0I7UUFDcEMsSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDLFdBQVcsR0FBRyxnQ0FBZ0MsR0FBRyxZQUFZLENBQUM7UUFDcEYsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsc0JBQXNCLENBQUMsSUFBWTtRQUNqQyxJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUMsV0FBVyxHQUFHLDRCQUE0QixHQUFHLElBQUksQ0FBQztRQUN4RSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ25DLENBQUM7OzZHQXZNVSxnQkFBZ0I7aUhBQWhCLGdCQUFnQixjQUZmLE1BQU07MkZBRVAsZ0JBQWdCO2tCQUg1QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBJUFRHZW5lcmFsU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2UtZW52aXJvbWVudHMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgUGFyYW1ldGVyU2VydmljZSBleHRlbmRzIElQVEdlbmVyYWxTZXJ2aWNle1xuICBwcml2YXRlIFNFUlZJQ0VfVVJMID0gJ3BhcmFtZXRlcnMvYXBpLyc7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50KSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLlNFUlZJQ0VfVVJMID0gdGhpcy5iYXNlVXJsKCkgKyB0aGlzLlNFUlZJQ0VfVVJMO1xuICB9XG5cbiAgZ2V0SW5kaWNhdGl2ZXMoKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAnZ2V0L2luZGljYXRpdmVzJztcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChzZXJ2aWNlVXJsKTtcbiAgfVxuXG4gIGdldENhcmRUeXBlcyhjb3VudHJ5OiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdnZXQvaWQvY2FyZC90eXBlL2NvdW50cnkvJyArIGNvdW50cnk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoc2VydmljZVVybCk7XG4gIH1cblxuICBnZXRDb3VudHJpZXMoKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAnZ2V0L2NvdW50cmllcyc7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoc2VydmljZVVybCk7XG4gIH1cblxuICBnZXRTdGF0ZXNCeUNvdW50cnkoY291bnRyeTogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAnZ2V0L3N0YXRlL2NvdW50cnkvaXNvLycgKyBjb3VudHJ5O1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHNlcnZpY2VVcmwpO1xuICB9XG5cbiAgZ2V0Q2l0aWVzQnlTdGF0ZShzdGF0ZTogbnVtYmVyKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAnZ2V0L2NpdGllcy9zdGF0ZS8nICsgc3RhdGU7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoc2VydmljZVVybCk7XG4gIH1cblxuICBnZXRBbGxQbGFucygpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdnZXQvYWxsL3BsYW5zJztcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChzZXJ2aWNlVXJsKTtcbiAgfVxuXG4gIGdldExldmVscygpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdnZXQvZW5nbGlzaC9sZXZlbHMnO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHNlcnZpY2VVcmwpO1xuICB9XG5cbiAgZ2V0QWdyZWVtZW50cygpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdnZXQvYWxsL2FncmVlbWVudCc7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoc2VydmljZVVybCk7XG4gIH1cblxuICBnZXRBZ3JlZW1lbnRCeUNhdGVnb3J5KHR5cGVDYXRlZ29yeTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9XG4gICAgICB0aGlzLlNFUlZJQ0VfVVJMICsgJ2dldC9hZ3JlZW1lbnQvYnkvY2F0ZWdvcnkvJyArIHR5cGVDYXRlZ29yeTtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChzZXJ2aWNlVXJsKTtcbiAgfVxuXG4gIGdldEFsbENsYXNzcm9vbXMoKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAnZ2V0L2FsbC9jbGFzc3Jvb20nO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHNlcnZpY2VVcmwpO1xuICB9XG5cbiAgZ2V0Q291cnNlc1R5cGVzKCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ2dldC9hbGwvY291cnNlL3R5cGUnO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHNlcnZpY2VVcmwpO1xuICB9XG5cbiAgZ2V0Q291cnNlc1R5cGVzQnlQbGFuKHR5cGVQbGFuOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdnZXQvY291cnNlL2J5L3BsYW4vJyArIHR5cGVQbGFuO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHNlcnZpY2VVcmwpO1xuICB9XG5cbiAgZ2V0RGVncmVlcygpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdnZXQvYWxsL2RlZ3JlZXMnO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHNlcnZpY2VVcmwpO1xuICB9XG5cbiAgZ2V0UHJvZ3JhbXNCeURlZ3JlZSh0eXBlRGVncmVlOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdnZXQvcHJvZ3JhbXMvYnkvZGVncmVlLycgKyB0eXBlRGVncmVlO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHNlcnZpY2VVcmwpO1xuICB9XG5cbiAgZ2V0TWFya2V0aW5nUmVhc29ucygpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdnZXQvYWxsL21rdC9yZWFzb25zJztcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChzZXJ2aWNlVXJsKTtcbiAgfVxuXG4gIGdldFN0dWR5UmVhc29ucygpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdnZXQvYWxsL3N0dWR5L3JlYXNvbnMnO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHNlcnZpY2VVcmwpO1xuICB9XG5cbiAgZ2V0QWNhZGVtaWNVbml0cygpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdnZXQvYWNhZGVtaWMvdW5pdHMnO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHNlcnZpY2VVcmwpO1xuICB9XG4gIGdldFN0YXR1c0NvbnRhY3QoKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAnZ2V0L2NvbnRhY3Qvc3RhdHVzL2FsbCc7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoc2VydmljZVVybCk7XG4gIH1cblxuICBnZXRUeXBlUGxhbigpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdnZXQvYWxsL3BsYW5zJztcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChzZXJ2aWNlVXJsKTtcbiAgfVxuICBnZXRUeXBlUGxhbkRpc2NvdW50KCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ2dldC9kaXNjb3VudC9hbGwvcGxhbnMnO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHNlcnZpY2VVcmwpO1xuICB9XG5cbiAgZ2V0Q29udGFjdGVkVHlwZSgpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdnZXQvY29udGFjdC9jb250YWN0ZWQvYWxsJztcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChzZXJ2aWNlVXJsKTtcbiAgfVxuXG4gIGdldFN0YXR1c0J5Q29kZShjb2RlU3RhdHVzOiBudW1iZXIpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdnZXQvY29udGFjdC9zdGF0dXMvYnljb2RlLycgKyBjb2RlU3RhdHVzO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHNlcnZpY2VVcmwpO1xuICB9XG4gIGdldEFsbFR5cGVEaXNjb3VudCgpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdnZXQvY29tbWVyY2lhbC90eXBlZGlzY291bnRzL2FsbCc7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoc2VydmljZVVybCk7XG4gIH1cblxuICBnZXRBbGxDb3Vyc2VNb2RhbGl0eSgpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdnZXQvYWxsL2NvdXJzZS9tb2RhbGl0eSc7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoc2VydmljZVVybCk7XG4gIH1cblxuICBnZXRBbGxQYXltZW50TWV0aG9kKCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ2dldC9wYXltZW50L21ldGhvZC9hbGwnO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHNlcnZpY2VVcmwpO1xuICB9XG5cbiAgZ2V0QWxsUGF5bWVudFNlcnZpY2UoKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAnZ2V0L3BheW1lbnQvc2VydmljZXMvYWxsJztcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChzZXJ2aWNlVXJsKTtcbiAgfVxuXG4gIGdldEFsbEJhbmtzKCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ2dldC9iYW5rcy9hbGwnO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHNlcnZpY2VVcmwpO1xuICB9XG5cbiAgZ2V0QWxsQ2FtcHVzKCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ2dldC9iYW5rcy9hbGwnO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHNlcnZpY2VVcmwpO1xuICB9XG5cbiAgZ2V0Q2FtcHVzQnlDb2RlKGNvZGVDYW1wdTogbnVtYmVyKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAnZ2V0L2NhbXB1cy9ieS9jb2RlLycgKyBjb2RlQ2FtcHU7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoc2VydmljZVVybCk7XG4gIH1cblxuICBnZXRHZW5kZXJzKCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ2dldC9nZW5kZXJzJztcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChzZXJ2aWNlVXJsKTtcbiAgfVxuXG4gIGdldEdlbmRlckJ5Q29kZShjb2RlOiBudW1iZXIpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdnZXQvZ2VuZGVyL2NvZGUvJyArIGNvZGU7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoc2VydmljZVVybCk7XG4gIH1cblxuICBnZXRTdHJhdHVtcygpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdnZXQvc3RyYXR1bXMnO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHNlcnZpY2VVcmwpO1xuICB9XG5cbiAgZ2V0U3RyYXR1bUJ5Q29kZShjb2RlOiBudW1iZXIpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdnZXQvc3RyYXR1bS9ieS9jb2RlLycgKyBjb2RlO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHNlcnZpY2VVcmwpO1xuICB9XG5cbiAgZ2V0Q2l2aWxTdGF0dXMoKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAnZ2V0L2NpdmlsL3N0YXR1cyc7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoc2VydmljZVVybCk7XG4gIH1cblxuICBnZXRDaXZpbFN0YXR1c0J5Q29kZShjb2RlOiBudW1iZXIpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdnZXQvY2l2aWwvc3RhdHVzL2J5L2NvZGUvJyArIGNvZGU7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoc2VydmljZVVybCk7XG4gIH1cblxuICBnZXRNdWx0aWN1bHR1cmFsaXNtcygpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdnZXQvbXVsdGljdWx0dXJhbGlzbXMnO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHNlcnZpY2VVcmwpO1xuICB9XG5cbiAgZ2V0TXVsdGljdWx0dXJhbGlzbUJ5Q29kZShjb2RlOiBudW1iZXIpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdnZXQvbXVsdGljdWx0dXJhbGlzbS9ieS9jb2RlLycgKyBjb2RlO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHNlcnZpY2VVcmwpO1xuICB9XG5cbiAgZ2V0Q2xhc3NSb29tQnlNb2QoY29kZU1vZGFsaXR5OiBudW1iZXIpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdnZXQvYWxsL2NsYXNzcm9vbS9ieS9tb2RhbGl0eS8nICsgY29kZU1vZGFsaXR5O1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHNlcnZpY2VVcmwpO1xuICB9XG5cbiAgZ2V0Q29udW50cnlTdGF0ZUJ5Q2l0eShjb2RlOiBudW1iZXIpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdnZXQvY291bnRyeS9zdGF0ZS9ieS9jaXR5LycgKyBjb2RlO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHNlcnZpY2VVcmwpO1xuICB9XG5cbn1cbiJdfQ==
185
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYW1ldGVycy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vZGVzaWduLXN5c3RlbS9zcmMvbGliL2NvcmUvc2VydmljZXMvcGFyYW1ldGVycy1zZXJ2aWNlL3BhcmFtZXRlcnMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzNDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7QUFLM0QsTUFBTSxPQUFPLGdCQUFpQixTQUFRLGlCQUFpQjtJQUdyRCxZQUFvQixJQUFnQjtRQUNsQyxLQUFLLEVBQUUsQ0FBQztRQURVLFNBQUksR0FBSixJQUFJLENBQVk7UUFGNUIsZ0JBQVcsR0FBRyxpQkFBaUIsQ0FBQztRQUl0QyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQ3ZELENBQUM7SUFFRCxjQUFjO1FBQ1osSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDLFdBQVcsR0FBRyxpQkFBaUIsQ0FBQztRQUN0RCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCxZQUFZLENBQUMsT0FBZTtRQUMxQixJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUMsV0FBVyxHQUFHLDJCQUEyQixHQUFHLE9BQU8sQ0FBQztRQUMxRSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCxZQUFZO1FBQ1YsSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDLFdBQVcsR0FBRyxlQUFlLENBQUM7UUFDcEQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lB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QUVELHlCQUF5QixDQUFDLElBQVk7UUFDcEMsSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDLFdBQVcsR0FBRywrQkFBK0IsR0FBRyxJQUFJLENBQUM7UUFDM0UsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsaUJBQWlCLENBQUMsWUFBb0I7UUFDcEMsSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDLFdBQVcsR0FBRyxnQ0FBZ0MsR0FBRyxZQUFZLENBQUM7UUFDcEYsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsc0JBQXNCLENBQUMsSUFBWTtRQUNqQyxJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUMsV0FBVyxHQUFHLDRCQUE0QixHQUFHLElBQUksQ0FBQztRQUN4RSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCxZQUFZO1FBQ1YsSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDLFdBQVcsR0FBRyxnQkFBZ0IsQ0FBQztRQUNyRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCxZQUFZO1FBQ1YsSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDLFdBQVcsR0FBRyxnQkFBZ0IsQ0FBQztRQUNyRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ25DLENBQUM7OzZHQWpOVSxnQkFBZ0I7aUhBQWhCLGdCQUFnQixjQUZmLE1BQU07MkZBRVAsZ0JBQWdCO2tCQUg1QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBJUFRHZW5lcmFsU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2UtZW52aXJvbWVudHMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgUGFyYW1ldGVyU2VydmljZSBleHRlbmRzIElQVEdlbmVyYWxTZXJ2aWNle1xuICBwcml2YXRlIFNFUlZJQ0VfVVJMID0gJ3BhcmFtZXRlcnMvYXBpLyc7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50KSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLlNFUlZJQ0VfVVJMID0gdGhpcy5iYXNlVXJsKCkgKyB0aGlzLlNFUlZJQ0VfVVJMO1xuICB9XG5cbiAgZ2V0SW5kaWNhdGl2ZXMoKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAnZ2V0L2luZGljYXRpdmVzJztcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChzZXJ2aWNlVXJsKTtcbiAgfVxuXG4gIGdldENhcmRUeXBlcyhjb3VudHJ5OiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdnZXQvaWQvY2FyZC90eXBlL2NvdW50cnkvJyArIGNvdW50cnk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoc2VydmljZVVybCk7XG4gIH1cblxuICBnZXRDb3VudHJpZXMoKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAnZ2V0L2NvdW50cmllcyc7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoc2VydmljZVVybCk7XG4gIH1cblxuICBnZXRTdGF0ZXNCeUNvdW50cnkoY291bnRyeTogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAnZ2V0L3N0YXRlL2NvdW50cnkvaXNvLycgKyBjb3VudHJ5O1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHNlcnZpY2VVcmwpO1xuICB9XG5cbiAgZ2V0Q2l0aWVzQnlTdGF0ZShzdGF0ZTogbnVtYmVyKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAnZ2V0L2NpdGllcy9zdGF0ZS8nICsgc3RhdGU7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoc2VydmljZVVybCk7XG4gIH1cblxuICBnZXRBbGxQbGFucygpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdnZXQvYWxsL3BsYW5zJztcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChzZXJ2aWNlVXJsKTtcbiAgfVxuXG4gIGdldExldmVscygpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdnZXQvZW5nbGlzaC9sZXZlbHMnO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHNlcnZpY2VVcmwpO1xuICB9XG5cbiAgZ2V0QWdyZWVtZW50cygpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdnZXQvYWxsL2FncmVlbWVudCc7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoc2VydmljZVVybCk7XG4gIH1cblxuICBnZXRBZ3JlZW1lbnRCeUNhdGVnb3J5KHR5cGVDYXRlZ29yeTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9XG4gICAgICB0aGlzLlNFUlZJQ0VfVVJMICsgJ2dldC9hZ3JlZW1lbnQvYnkvY2F0ZWdvcnkvJyArIHR5cGVDYXRlZ29yeTtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChzZXJ2aWNlVXJsKTtcbiAgfVxuXG4gIGdldEFsbENsYXNzcm9vbXMoKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAnZ2V0L2FsbC9jbGFzc3Jvb20nO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHNlcnZpY2VVcmwpO1xuICB9XG5cbiAgZ2V0Q291cnNlc1R5cGVzKCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ2dldC9hbGwvY291cnNlL3R5cGUnO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHNlcnZpY2VVcmwpO1xuICB9XG5cbiAgZ2V0Q291cnNlc1R5cGVzQnlQbGFuKHR5cGVQbGFuOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdnZXQvY291cnNlL2J5L3BsYW4vJyArIHR5cGVQbGFuO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHNlcnZpY2VVcmwpO1xuICB9XG5cbiAgZ2V0RGVncmVlcygpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdnZXQvYWxsL2RlZ3JlZXMnO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHNlcnZpY2VVcmwpO1xuICB9XG5cbiAgZ2V0UHJvZ3JhbXNCeURlZ3JlZSh0eXBlRGVncmVlOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdnZXQvcHJvZ3JhbXMvYnkvZGVncmVlLycgKyB0eXBlRGVncmVlO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHNlcnZpY2VVcmwpO1xuICB9XG5cbiAgZ2V0TWFya2V0aW5nUmVhc29ucygpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdnZXQvYWxsL21rdC9yZWFzb25zJztcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChzZXJ2aWNlVXJsKTtcbiAgfVxuXG4gIGdldFN0dWR5UmVhc29ucygpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdnZXQvYWxsL3N0dWR5L3JlYXNvbnMnO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHNlcnZpY2VVcmwpO1xuICB9XG5cbiAgZ2V0QWNhZGVtaWNVbml0cygpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdnZXQvYWNhZGVtaWMvdW5pdHMnO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHNlcnZpY2VVcmwpO1xuICB9XG4gIGdldFN0YXR1c0NvbnRhY3QoKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAnZ2V0L2NvbnRhY3Qvc3RhdHVzL2FsbCc7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoc2VydmljZVVybCk7XG4gIH1cblxuICBnZXRUeXBlUGxhbigpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdnZXQvYWxsL3BsYW5zJztcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChzZXJ2aWNlVXJsKTtcbiAgfVxuICBnZXRUeXBlUGxhbkRpc2NvdW50KCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ2dldC9kaXNjb3VudC9hbGwvcGxhbnMnO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHNlcnZpY2VVcmwpO1xuICB9XG5cbiAgZ2V0Q29udGFjdGVkVHlwZSgpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdnZXQvY29udGFjdC9jb250YWN0ZWQvYWxsJztcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChzZXJ2aWNlVXJsKTtcbiAgfVxuXG4gIGdldFN0YXR1c0J5Q29kZShjb2RlU3RhdHVzOiBudW1iZXIpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdnZXQvY29udGFjdC9zdGF0dXMvYnljb2RlLycgKyBjb2RlU3RhdHVzO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHNlcnZpY2VVcmwpO1xuICB9XG4gIGdldEFsbFR5cGVEaXNjb3VudCgpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdnZXQvY29tbWVyY2lhbC90eXBlZGlzY291bnRzL2FsbCc7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoc2VydmljZVVybCk7XG4gIH1cblxuICBnZXRBbGxDb3Vyc2VNb2RhbGl0eSgpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdnZXQvYWxsL2NvdXJzZS9tb2RhbGl0eSc7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoc2VydmljZVVybCk7XG4gIH1cblxuICBnZXRBbGxQYXltZW50TWV0aG9kKCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ2dldC9wYXltZW50L21ldGhvZC9hbGwnO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHNlcnZpY2VVcmwpO1xuICB9XG5cbiAgZ2V0QWxsUGF5bWVudFNlcnZpY2UoKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAnZ2V0L3BheW1lbnQvc2VydmljZXMvYWxsJztcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChzZXJ2aWNlVXJsKTtcbiAgfVxuXG4gIGdldEFsbEJhbmtzKCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ2dldC9iYW5rcy9hbGwnO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHNlcnZpY2VVcmwpO1xuICB9XG5cbiAgZ2V0QWxsQ2FtcHVzKCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ2dldC9iYW5rcy9hbGwnO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHNlcnZpY2VVcmwpO1xuICB9XG5cbiAgZ2V0Q2FtcHVzQnlDb2RlKGNvZGVDYW1wdTogbnVtYmVyKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAnZ2V0L2NhbXB1cy9ieS9jb2RlLycgKyBjb2RlQ2FtcHU7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoc2VydmljZVVybCk7XG4gIH1cblxuICBnZXRHZW5kZXJzKCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ2dldC9nZW5kZXJzJztcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChzZXJ2aWNlVXJsKTtcbiAgfVxuXG4gIGdldEdlbmRlckJ5Q29kZShjb2RlOiBudW1iZXIpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdnZXQvZ2VuZGVyL2NvZGUvJyArIGNvZGU7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoc2VydmljZVVybCk7XG4gIH1cblxuICBnZXRTdHJhdHVtcygpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdnZXQvc3RyYXR1bXMnO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHNlcnZpY2VVcmwpO1xuICB9XG5cbiAgZ2V0U3RyYXR1bUJ5Q29kZShjb2RlOiBudW1iZXIpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdnZXQvc3RyYXR1bS9ieS9jb2RlLycgKyBjb2RlO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHNlcnZpY2VVcmwpO1xuICB9XG5cbiAgZ2V0Q2l2aWxTdGF0dXMoKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAnZ2V0L2NpdmlsL3N0YXR1cyc7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoc2VydmljZVVybCk7XG4gIH1cblxuICBnZXRDaXZpbFN0YXR1c0J5Q29kZShjb2RlOiBudW1iZXIpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdnZXQvY2l2aWwvc3RhdHVzL2J5L2NvZGUvJyArIGNvZGU7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoc2VydmljZVVybCk7XG4gIH1cblxuICBnZXRNdWx0aWN1bHR1cmFsaXNtcygpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdnZXQvbXVsdGljdWx0dXJhbGlzbXMnO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHNlcnZpY2VVcmwpO1xuICB9XG5cbiAgZ2V0TXVsdGljdWx0dXJhbGlzbUJ5Q29kZShjb2RlOiBudW1iZXIpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdnZXQvbXVsdGljdWx0dXJhbGlzbS9ieS9jb2RlLycgKyBjb2RlO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHNlcnZpY2VVcmwpO1xuICB9XG5cbiAgZ2V0Q2xhc3NSb29tQnlNb2QoY29kZU1vZGFsaXR5OiBudW1iZXIpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdnZXQvYWxsL2NsYXNzcm9vbS9ieS9tb2RhbGl0eS8nICsgY29kZU1vZGFsaXR5O1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHNlcnZpY2VVcmwpO1xuICB9XG5cbiAgZ2V0Q29udW50cnlTdGF0ZUJ5Q2l0eShjb2RlOiBudW1iZXIpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdnZXQvY291bnRyeS9zdGF0ZS9ieS9jaXR5LycgKyBjb2RlO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHNlcnZpY2VVcmwpO1xuICB9XG5cbiAgZ2V0QWxsU3RhdGVzKCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ2dldC9hbGwvc3RhdGVzJztcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChzZXJ2aWNlVXJsKTtcbiAgfVxuXG4gIGdldEFsbENpdGllcygpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdnZXQvYWxsL2NpdGllcyc7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoc2VydmljZVVybCk7XG4gIH1cblxufVxuIl19