iptdevs-design-system 3.1.577 → 3.1.579

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.
@@ -34,22 +34,11 @@ export class CodSelfManagedControls {
34
34
  // { name: 'modality', required: true, description: 'Modalidad del curso' },
35
35
  { name: 'academic_plan', required: true, description: 'Plan académico' },
36
36
  { name: 'course_type', required: true, description: 'Tipo de curso' },
37
- { name: 'agreement_by_category', required: true, description: 'Convenio' },
37
+ // { name: 'agreement_by_category', required: true, description: 'Convenio' },
38
38
  { name: 'english_level', required: true, description: 'Nivel de inglés' },
39
39
  { name: 'availible_courses', required: false, description: 'Cursos disponibles' },
40
40
  { name: 'course_modality', required: false, description: 'Modalidad del curso' },
41
41
  ],
42
- // [
43
- // { name: 'parent_id_card_type', required: true, description: 'Tipo de documento del acudiente' },
44
- // { name: 'parent_id_card', required: true, description: 'Documento del acudiente' },
45
- // { name: 'parent_last_name', required: true, description: 'Apellidos del acudiente' },
46
- // { name: 'parent_name', required: true, description: 'Nombres del acudiente' },
47
- // { name: 'needAtendant', required: true, description: '¿Requiere acudiente?' },
48
- // { name: 'parent_phone_indicative', required: true, description: 'Indicativo del acudiente' },
49
- // { name: 'parent_occupation', required: true, description: 'Ocupación del acudiente' },
50
- // { name: 'parent_address', required: true, description: 'Dirección del acudiente' },
51
- // { name: 'parent_phone_number', required: true, description: 'Teléfono del acudiente' }
52
- // ],
53
42
  [
54
43
  { name: 'payment_date', required: true, description: 'Fecha de pago' },
55
44
  { name: 'program_price', required: true, description: 'Valor total del programa' },
@@ -97,4 +86,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.7", ngImpor
97
86
  providedIn: 'root'
98
87
  }]
99
88
  }], ctorParameters: function () { return []; } });
100
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kLXNlbGYtbWFuYWdlZC1jb250cm9scy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2Rlc2lnbi1zeXN0ZW0vc3JjL2xpYi9jb2Qtc2VsZi1tYW5hZ2VkL2xvZ2ljL2NvZC1zZWxmLW1hbmFnZWQtY29udHJvbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0sTUFBTSxDQUFDOztBQVVuRCxNQUFNLE9BQU8sc0JBQXNCO0lBNkVqQztRQTNFTyxhQUFRLEdBQTBCO1lBQ3ZDO2dCQUNFLEVBQUUsSUFBSSxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSx3QkFBd0IsRUFBRTtnQkFDL0UsRUFBRSxJQUFJLEVBQUUsbUJBQW1CLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsMEJBQTBCLEVBQUU7Z0JBQ3RGLEVBQUUsSUFBSSxFQUFFLHNCQUFzQixFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLGtDQUFrQyxFQUFFO2dCQUNqRyxFQUFFLElBQUksRUFBRSxpQkFBaUIsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSwwQkFBMEIsRUFBRTtnQkFDcEYsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRTtnQkFDekQsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLG9DQUFvQyxFQUFFO2dCQUN4RixFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFO2dCQUNwRCxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLElBQUksRUFB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RSwwRUFBMEU7WUFDMUUsdUZBQXVGO1lBQ3ZGLHVGQUF1RjtZQUN2Rix1RkFBdUY7WUFDdkYsdUZBQXVGO1lBQ3ZGLHVGQUF1RjtZQUN2Rix1RkFBdUY7WUFDdkYsaUZBQWlGO1lBQ2pGLHFFQUFxRTtZQUNyRSxxRUFBcUU7WUFDckUsS0FBSztTQUNOLENBQUM7UUFFTSxjQUFTLEdBQUcsSUFBSSxlQUFlLENBQXdCLEVBQUUsQ0FBQyxDQUFDO1FBR2pFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsZ0JBQWdCO1FBQ2QsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3ZDLENBQUM7SUFFRCwwRUFBMEU7SUFDMUUsV0FBVyxDQUFDLElBQVksRUFBRSxXQUFtQixFQUFFLFFBQWE7UUFDMUQsTUFBTSxRQUFRLEdBQTBCLEVBQUUsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDN0QsSUFBSSxPQUFPLEdBQUcsUUFBUSxDQUFDLElBQUksR0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxLQUFLLFdBQVcsQ0FBQyxDQUFDO1FBQy9FLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBRS9CLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBQy9CLENBQUM7O21IQTVGVSxzQkFBc0I7dUhBQXRCLHNCQUFzQixjQUZyQixNQUFNOzJGQUVQLHNCQUFzQjtrQkFIbEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gXCJyeGpzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29udHJvbFN0ZXBzIHtcbiAgbmFtZTogc3RyaW5nO1xuICByZXF1aXJlZDogYm9vbGVhbjtcbiAgZGVzY3JpcHRpb246IHN0cmluZztcbn1cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIENvZFNlbGZNYW5hZ2VkQ29udHJvbHMge1xuXG4gIHB1YmxpYyBjb250cm9sczogQXJyYXk8Q29udHJvbFN0ZXBzW10+ID0gW1xuICAgIFtcbiAgICAgIHsgbmFtZTogJ3N0dWRlbnRfbmFtZScsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogJ05vbWJyZXMgZGVsIGVzdHVkaWFudGUnIH0sXG4gICAgICB7IG5hbWU6ICdzdHVkZW50X2xhc3RfbmFtZScsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogJ0FwZWxsaWRvcyBkZWwgZXN0dWRpYW50ZScgfSxcbiAgICAgIHsgbmFtZTogJ3N0dWRlbnRfaWRfY2FyZF90eXBlJywgcmVxdWlyZWQ6IHRydWUsIGRlc2NyaXB0aW9uOiAnVGlwbyBkZSBkb2N1bWVudG8gZGVsIGVzdHVkaWFudGUnIH0sXG4gICAgICB7IG5hbWU6ICdzdHVkZW50X2lkX2NhcmQnLCByZXF1aXJlZDogdHJ1ZSwgZGVzY3JpcHRpb246ICdEb2N1bWVudG8gZGVsIGVzdHVkaWFudGUnIH0sXG4gICAgICB7IG5hbWU6ICdnZW5kZXInLCByZXF1aXJlZDogdHJ1ZSwgZGVzY3JpcHRpb246ICdHw6luZXJvJyB9LFxuICAgICAgeyBuYW1lOiAnYmlydGhkYXRlJywgcmVxdWlyZWQ6IHRydWUsIGRlc2NyaXB0aW9uOiAnRmVjaGEgZGUgbmFjaW1pZW50byBkZWwgZXN0dWRpYW50ZScgfSxcbiAgICAgIHsgbmFtZTogJ2FnZScsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogJ0VkYWQnIH0sXG4gICAgICB7IG5hbWU6ICdjb3VudHJ5JywgcmVxdWlyZWQ6IHRydWUsIGRlc2NyaXB0aW9uOiAnUGHDrXMnIH0sXG4gICAgICB7IG5hbWU6ICdzdGF0ZScsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogJ0RlcGFydGFtZW50byBvIGVzdGFkbycgfSxcbiAgICAgIHsgbmFtZTogJ2NpdHknLCByZXF1aXJlZDogdHJ1ZSwgZGVzY3JpcHRpb246ICdDaXVkYWQgZGUgcmVzaWRlbmNpYScgfSxcbiAgICAgIHsgbmFtZTogJ3N0dWRlbnRfZW1haWwnLCByZXF1aXJlZDogdHJ1ZSwgZGVzY3JpcHRpb246ICdDb3JyZW8gZGVsIGVzdHVkaWFudGUnIH0sXG4gICAgICB7IG5hbWU6ICdzdHVkZW50X3Bob25lX2luZGljYXRpdmUnLCByZXF1aXJlZDogdHJ1ZSwgZGVzY3JpcHRpb246ICdJbmRpY2F0aXZvIGRlbCBlc3R1ZGlhbnRlJyB9LFxuICAgICAgeyBuYW1lOiAnc3R1ZGVudF9waG9uZV9udW1iZXInLCByZXF1aXJlZDogdHJ1ZSwgZGVzY3JpcHRpb246ICdUZWzDqWZvbm8gZGVsIGVzdHVkaWFudGUnIH0sXG4gICAgICB7IG5hbWU6ICdncmFkZScsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogJ0dyYWRvIGRlbCBlc3R1ZGlhbnRlJyB9LFxuICAgICAgeyBuYW1lOiAnYWdyZWVtZW50X2J5X2NhdGVnb3J5JywgcmVxdWlyZWQ6IHRydWUsIGRlc2NyaXB0aW9uOiAnQ29udmVuaW8nIH0sXG4gICAgICAvLyB7IG5hbWU6ICdzdHVkZW50X2FkZHJlc3MnLCByZXF1aXJlZDogdHJ1ZSwgZGVzY3JpcHRpb246ICdEaXJlY2Npw7NuIGRlbCBlc3R1ZGlhbnRlJyB9LFxuICAgICAgLy8geyBuYW1lOiAnbmlja25hbWUnLCByZXF1aXJlZDogdHJ1ZSwgZGVzY3JpcHRpb246ICdBbGlhcyBvIG5pY2tuYW1lJyB9LFxuICAgICAgLy8geyBuYW1lOiAnc3R1ZGVudF9vY2N1cGF0aW9uJywgcmVxdWlyZWQ6IHRydWUsIGRlc2NyaXB0aW9uOiAnT2N1cGFjacOzbiBkZWwgZXN0dWRpYW50ZScgfSxcbiAgICAgIC8vIHsgbmFtZTogJ3N0cmF0dW0nLCByZXF1aXJlZDogdHJ1ZSwgZGVzY3JpcHRpb246ICdFc3RyYXRvIGRlbCBlc3R1ZGlhbnRlJyB9LFxuICAgICAgLy8geyBuYW1lOiAnY2l2aWxfc3RhdHVzJywgcmVxdWlyZWQ6IHRydWUsIGRlc2NyaXB0aW9uOiAnRXN0YWRvIGNpdmlsIGRlbCBlc3R1ZGlhbnRlJyB9LFxuICAgICAgLy8geyBuYW1lOiAncGFzc3dvcmQnLCByZXF1aXJlZDogdHJ1ZSwgZGVzY3JpcHRpb246ICdDb250cmFzZcOxYSBkZWwgZXN0dWRpYW50ZScgfSxcbiAgICAgIC8vIHsgbmFtZTogJ3JlX3Bhc3N3b3JkJywgcmVxdWlyZWQ6IHRydWUsIGRlc2NyaXB0aW9uOiAnQ29uZmlybWFjacOzbiBkZSBjb250cmFzZcOxYScgfSxcbiAgICBdLFxuICAgIFtcbiAgICAgIC8vIHsgbmFtZTogJ3NjaGVkdWxlJywgcmVxdWlyZWQ6IHRydWUsIGRlc2NyaXB0aW9uOiAnaG9yYXJpbyByZXF1ZXJpZG8nIH0sXG4gICAgICAvLyB7IG5hbWU6ICd0b19zdGFydCcsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogJ3Bvc2libGUgaW5pY2lvJyB9LFxuICAgICAgLy8geyBuYW1lOiAnbW9kYWxpdHknLCByZXF1aXJlZDogdHJ1ZSwgZGVzY3JpcHRpb246ICdNb2RhbGlkYWQgZGVsIGN1cnNvJyB9LFxuICAgICAgeyBuYW1lOiAnYWNhZGVtaWNfcGxhbicsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogJ1BsYW4gYWNhZMOpbWljbycgfSxcbiAgICAgIHsgbmFtZTogJ2NvdXJzZV90eXBlJywgcmVxdWlyZWQ6IHRydWUsIGRlc2NyaXB0aW9uOiAnVGlwbyBkZSBjdXJzbycgfSxcbiAgICAgIHsgbmFtZTogJ2FncmVlbWVudF9ieV9jYXRlZ29yeScsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogJ0NvbnZlbmlvJyB9LFxuICAgICAgeyBuYW1lOiAnZW5nbGlzaF9sZXZlbCcsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogJ05pdmVsIGRlIGluZ2zDqXMnIH0sXG4gICAgICB7IG5hbWU6ICdhdmFpbGlibGVfY291cnNlcycsIHJlcXVpcmVkOiBmYWxzZSwgZGVzY3JpcHRpb246ICdDdXJzb3MgZGlzcG9uaWJsZXMnIH0sXG4gICAgICB7IG5hbWU6ICdjb3Vyc2VfbW9kYWxpdHknLCByZXF1aXJlZDogZmFsc2UsIGRlc2NyaXB0aW9uOiAnTW9kYWxpZGFkIGRlbCBjdXJzbycgfSxcbiAgICBdLFxuICAgIC8vIFtcbiAgICAvLyAgIHsgbmFtZTogJ3BhcmVudF9pZF9jYXJkX3R5cGUnLCByZXF1aXJlZDogdHJ1ZSwgZGVzY3JpcHRpb246ICdUaXBvIGRlIGRvY3VtZW50byBkZWwgYWN1ZGllbnRlJyB9LFxuICAgIC8vICAgeyBuYW1lOiAncGFyZW50X2lkX2NhcmQnLCByZXF1aXJlZDogdHJ1ZSwgZGVzY3JpcHRpb246ICdEb2N1bWVudG8gZGVsIGFjdWRpZW50ZScgfSxcbiAgICAvLyAgIHsgbmFtZTogJ3BhcmVudF9sYXN0X25hbWUnLCByZXF1aXJlZDogdHJ1ZSwgZGVzY3JpcHRpb246ICdBcGVsbGlkb3MgZGVsIGFjdWRpZW50ZScgfSxcbiAgICAvLyAgIHsgbmFtZTogJ3BhcmVudF9uYW1lJywgcmVxdWlyZWQ6IHRydWUsIGRlc2NyaXB0aW9uOiAnTm9tYnJlcyBkZWwgYWN1ZGllbnRlJyB9LFxuICAgIC8vICAgeyBuYW1lOiAnbmVlZEF0ZW5kYW50JywgcmVxdWlyZWQ6IHRydWUsIGRlc2NyaXB0aW9uOiAnwr9SZXF1aWVyZSBhY3VkaWVudGU/JyB9LFxuICAgIC8vICAgeyBuYW1lOiAncGFyZW50X3Bob25lX2luZGljYXRpdmUnLCByZXF1aXJlZDogdHJ1ZSwgZGVzY3JpcHRpb246ICdJbmRpY2F0aXZvIGRlbCBhY3VkaWVudGUnIH0sXG4gICAgLy8gICB7IG5hbWU6ICdwYXJlbnRfb2NjdXBhdGlvbicsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogJ09jdXBhY2nDs24gZGVsIGFjdWRpZW50ZScgfSxcbiAgICAvLyAgIHsgbmFtZTogJ3BhcmVudF9hZGRyZXNzJywgcmVxdWlyZWQ6IHRydWUsIGRlc2NyaXB0aW9uOiAnRGlyZWNjacOzbiBkZWwgYWN1ZGllbnRlJyB9LFxuICAgIC8vICAgeyBuYW1lOiAncGFyZW50X3Bob25lX251bWJlcicsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogJ1RlbMOpZm9ubyBkZWwgYWN1ZGllbnRlJyB9XG4gICAgLy8gXSxcbiAgICBbXG4gICAgICB7IG5hbWU6ICdwYXltZW50X2RhdGUnLCByZXF1aXJlZDogdHJ1ZSwgZGVzY3JpcHRpb246ICdGZWNoYSBkZSBwYWdvJyB9LFxuICAgICAgeyBuYW1lOiAncHJvZ3JhbV9wcmljZScsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogJ1ZhbG9yIHRvdGFsIGRlbCBwcm9ncmFtYScgfSxcbiAgICAgIHsgbmFtZTogJ3BheW1lbnRfbWV0aG9kJywgcmVxdWlyZWQ6IHRydWUsIGRlc2NyaXB0aW9uOiAnTcOpdG9kbyBkZSBwYWdvJyB9LFxuICAgICAgeyBuYW1lOiAncXVvdGFfdGltZXMnLCByZXF1aXJlZDogdHJ1ZSwgZGVzY3JpcHRpb246ICdDYW50aWRhZCBkZSBjdW90YXMnIH0sXG4gICAgICB7IG5hbWU6ICd0b3RhbF9wcmljZScsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogJ1ByZWNpbyB0b3RhbCBkZSBsYSBtYXRyaWN1bGEnIH0sXG4gICAgICB7IG5hbWU6ICdwYWlkX2xldmVsJywgcmVxdWlyZWQ6IHRydWUsIGRlc2NyaXB0aW9uOiAnTml2ZWxlcyBwYWdvcycgfSxcbiAgICBdLFxuICAgIC8vIFtcbiAgICAvLyAgIHsgbmFtZTogJ21hcmtldGluZ19yZWFzb25zJywgcmVxdWlyZWQ6IHRydWUsIGRlc2NyaXB0aW9uOiAnwr9Dw7NtbyBzZSBlbnRlcsOzIGRlbCBwcm9ncmFtYT8nIH0sXG4gICAgLy8gICB7IG5hbWU6ICdvYnNlcnZhdGlvbicsIHJlcXVpcmVkOiBmYWxzZSwgZGVzY3JpcHRpb246ICdPYnNlcnZhY2nDs24nIH0sXG4gICAgLy8gICB7IG5hbWU6ICdzdHVkeV9yZWFzb25zJywgcmVxdWlyZWQ6IHRydWUsIGRlc2NyaXB0aW9uOiAnTW90aXZvJyB9LFxuICAgIC8vICAgeyBuYW1lOiAndGVybXMnLCByZXF1aXJlZDogdHJ1ZSwgZGVzY3JpcHRpb246ICdUw6lybWlub3MgeSBjb25kaWNpb25lcycgfSxcbiAgICAvLyAgIHsgbmFtZTogJ2Rpc2FiaWxpdHknLCByZXF1aXJlZDogZmFsc2UsIGRlc2NyaXB0aW9uOiAnRGlzY2FwYWNpZGFkJyB9LFxuICAgIC8vICAgeyBuYW1lOiAnbXVsdGljdWx0dXJhbGlzbV8xJywgcmVxdWlyZWQ6IGZhbHNlLCBkZXNjcmlwdGlvbjogJ011bHRpY3VsdHVyYWxpc21vJyB9LFxuICAgIC8vICAgeyBuYW1lOiAnbXVsdGljdWx0dXJhbGlzbV8yJywgcmVxdWlyZWQ6IGZhbHNlLCBkZXNjcmlwdGlvbjogJ011bHRpY3VsdHVyYWxpc21vJyB9LFxuICAgIC8vICAgeyBuYW1lOiAnbXVsdGljdWx0dXJhbGlzbV8zJywgcmVxdWlyZWQ6IGZhbHNlLCBkZXNjcmlwdGlvbjogJ011bHRpY3VsdHVyYWxpc21vJyB9LFxuICAgIC8vICAgeyBuYW1lOiAnbXVsdGljdWx0dXJhbGlzbV80JywgcmVxdWlyZWQ6IGZhbHNlLCBkZXNjcmlwdGlvbjogJ011bHRpY3VsdHVyYWxpc21vJyB9LFxuICAgIC8vICAgeyBuYW1lOiAnbXVsdGljdWx0dXJhbGlzbV81JywgcmVxdWlyZWQ6IGZhbHNlLCBkZXNjcmlwdGlvbjogJ011bHRpY3VsdHVyYWxpc21vJyB9LFxuICAgIC8vICAgeyBuYW1lOiAnbXVsdGljdWx0dXJhbGlzbV82JywgcmVxdWlyZWQ6IGZhbHNlLCBkZXNjcmlwdGlvbjogJ011bHRpY3VsdHVyYWxpc21vJyB9LFxuICAgIC8vICAgeyBuYW1lOiAnaGVhbHRoX3JlZ2ltZW4nLCByZXF1aXJlZDogdHJ1ZSwgZGVzY3JpcHRpb246ICdSw6lnaW1lbiBkZSBzYWx1ZCcgfSxcbiAgICAvLyAgIHsgbmFtZTogJ2NvZGVfcmVmZXJzJywgcmVxdWlyZWQ6IHRydWUsIGRlc2NyaXB0aW9uOiAnUmVmaWVyZScgfSxcbiAgICAvLyAgIHsgbmFtZTogJ2NvZGVfY29kJywgcmVxdWlyZWQ6IGZhbHNlLCBkZXNjcmlwdGlvbjogJ0NvZGlnbyBDb2QnIH1cbiAgICAvLyBdLFxuICBdO1xuXG4gIHByaXZhdGUgJGNvbnRyb2xzID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBcnJheTxDb250cm9sU3RlcHNbXT4+KFtdKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLiRjb250cm9scy5uZXh0KHRoaXMuY29udHJvbHMpO1xuICB9XG5cbiAgZ2V0Q29udHJvbFZhbHVlcygpOiBPYnNlcnZhYmxlPEFycmF5PENvbnRyb2xTdGVwc1tdPj4ge1xuICAgIHJldHVybiB0aGlzLiRjb250cm9scy5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIC8vIENhbWJpYXIgbG9zIHZhbG9yZXMgZGUgbG9zIGNvbnRyb2xzLCBlamVtcGxvOiB0cnVlIHkgZmFsc2UgZGVsIGNoZWNrYm94XG4gIGNoYW5nZVZhbHVlKHN0ZXA6IG51bWJlciwgY29udHJvbE5hbWU6IHN0cmluZywgbmV3VmFsdWU6IGFueSkge1xuICAgIGNvbnN0IGNvbnRyb2xzOiBBcnJheTxDb250cm9sU3RlcHNbXT4gPSB7IC4uLnRoaXMuY29udHJvbHMgfTtcbiAgICBsZXQgY29udHJvbCA9IGNvbnRyb2xzW3N0ZXAtMV0uZmlsdGVyKGVsZW1lbnQgPT4gZWxlbWVudC5uYW1lID09PSBjb250cm9sTmFtZSk7XG4gICAgY29udHJvbFswXS5yZXF1aXJlZCA9IG5ld1ZhbHVlO1xuXG4gICAgdGhpcy4kY29udHJvbHMubmV4dChjb250cm9scylcbiAgfVxufVxuIl19
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kLXNlbGYtbWFuYWdlZC1jb250cm9scy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2Rlc2lnbi1zeXN0ZW0vc3JjL2xpYi9jb2Qtc2VsZi1tYW5hZ2VkL2xvZ2ljL2NvZC1zZWxmLW1hbmFnZWQtY29udHJvbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0sTUFBTSxDQUFDOztBQVVuRCxNQUFNLE9BQU8sc0JBQXNCO0lBa0VqQztRQWhFTyxhQUFRLEdBQTBCO1lBQ3ZDO2dCQUNFLEVBQUUsSUFBSSxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSx3QkFBd0IsRUFBRTtnQkFDL0UsRUFBRSxJQUFJLEVBQUUsbUJBQW1CLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsMEJBQTBCLEVBQUU7Z0JBQ3RGLEVBQUUsSUFBSSxFQUFFLHNCQUFzQixFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLGtDQUFrQyxFQUFFO2dCQUNqRyxFQUFFLElBQUksRUFBRSxpQkFBaUIsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSwwQkFBMEIsRUFBRTtnQkFDcEYsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRTtnQkFDekQsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLG9DQUFvQyxFQUFFO2dCQUN4RixFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFO2dCQUNwRCxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLElBQUksRUFB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RSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVELGdCQUFnQjtRQUNkLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN2QyxDQUFDO0lBRUQsMEVBQTBFO0lBQzFFLFdBQVcsQ0FBQyxJQUFZLEVBQUUsV0FBbUIsRUFBRSxRQUFhO1FBQzFELE1BQU0sUUFBUSxHQUEwQixFQUFFLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzdELElBQUksT0FBTyxHQUFHLFFBQVEsQ0FBQyxJQUFJLEdBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksS0FBSyxXQUFXLENBQUMsQ0FBQztRQUMvRSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUUvQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQTtJQUMvQixDQUFDOzttSEFqRlUsc0JBQXNCO3VIQUF0QixzQkFBc0IsY0FGckIsTUFBTTsyRkFFUCxzQkFBc0I7a0JBSGxDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tIFwicnhqc1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIENvbnRyb2xTdGVwcyB7XG4gIG5hbWU6IHN0cmluZztcbiAgcmVxdWlyZWQ6IGJvb2xlYW47XG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG59XG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBDb2RTZWxmTWFuYWdlZENvbnRyb2xzIHtcblxuICBwdWJsaWMgY29udHJvbHM6IEFycmF5PENvbnRyb2xTdGVwc1tdPiA9IFtcbiAgICBbXG4gICAgICB7IG5hbWU6ICdzdHVkZW50X25hbWUnLCByZXF1aXJlZDogdHJ1ZSwgZGVzY3JpcHRpb246ICdOb21icmVzIGRlbCBlc3R1ZGlhbnRlJyB9LFxuICAgICAgeyBuYW1lOiAnc3R1ZGVudF9sYXN0X25hbWUnLCByZXF1aXJlZDogdHJ1ZSwgZGVzY3JpcHRpb246ICdBcGVsbGlkb3MgZGVsIGVzdHVkaWFudGUnIH0sXG4gICAgICB7IG5hbWU6ICdzdHVkZW50X2lkX2NhcmRfdHlwZScsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogJ1RpcG8gZGUgZG9jdW1lbnRvIGRlbCBlc3R1ZGlhbnRlJyB9LFxuICAgICAgeyBuYW1lOiAnc3R1ZGVudF9pZF9jYXJkJywgcmVxdWlyZWQ6IHRydWUsIGRlc2NyaXB0aW9uOiAnRG9jdW1lbnRvIGRlbCBlc3R1ZGlhbnRlJyB9LFxuICAgICAgeyBuYW1lOiAnZ2VuZGVyJywgcmVxdWlyZWQ6IHRydWUsIGRlc2NyaXB0aW9uOiAnR8OpbmVybycgfSxcbiAgICAgIHsgbmFtZTogJ2JpcnRoZGF0ZScsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogJ0ZlY2hhIGRlIG5hY2ltaWVudG8gZGVsIGVzdHVkaWFudGUnIH0sXG4gICAgICB7IG5hbWU6ICdhZ2UnLCByZXF1aXJlZDogdHJ1ZSwgZGVzY3JpcHRpb246ICdFZGFkJyB9LFxuICAgICAgeyBuYW1lOiAnY291bnRyeScsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogJ1Bhw61zJyB9LFxuICAgICAgeyBuYW1lOiAnc3RhdGUnLCByZXF1aXJlZDogdHJ1ZSwgZGVzY3JpcHRpb246ICdEZXBhcnRhbWVudG8gbyBlc3RhZG8nIH0sXG4gICAgICB7IG5hbWU6ICdjaXR5JywgcmVxdWlyZWQ6IHRydWUsIGRlc2NyaXB0aW9uOiAnQ2l1ZGFkIGRlIHJlc2lkZW5jaWEnIH0sXG4gICAgICB7IG5hbWU6ICdzdHVkZW50X2VtYWlsJywgcmVxdWlyZWQ6IHRydWUsIGRlc2NyaXB0aW9uOiAnQ29ycmVvIGRlbCBlc3R1ZGlhbnRlJyB9LFxuICAgICAgeyBuYW1lOiAnc3R1ZGVudF9waG9uZV9pbmRpY2F0aXZlJywgcmVxdWlyZWQ6IHRydWUsIGRlc2NyaXB0aW9uOiAnSW5kaWNhdGl2byBkZWwgZXN0dWRpYW50ZScgfSxcbiAgICAgIHsgbmFtZTogJ3N0dWRlbnRfcGhvbmVfbnVtYmVyJywgcmVxdWlyZWQ6IHRydWUsIGRlc2NyaXB0aW9uOiAnVGVsw6lmb25vIGRlbCBlc3R1ZGlhbnRlJyB9LFxuICAgICAgeyBuYW1lOiAnZ3JhZGUnLCByZXF1aXJlZDogdHJ1ZSwgZGVzY3JpcHRpb246ICdHcmFkbyBkZWwgZXN0dWRpYW50ZScgfSxcbiAgICAgIHsgbmFtZTogJ2FncmVlbWVudF9ieV9jYXRlZ29yeScsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogJ0NvbnZlbmlvJyB9LFxuICAgICAgLy8geyBuYW1lOiAnc3R1ZGVudF9hZGRyZXNzJywgcmVxdWlyZWQ6IHRydWUsIGRlc2NyaXB0aW9uOiAnRGlyZWNjacOzbiBkZWwgZXN0dWRpYW50ZScgfSxcbiAgICAgIC8vIHsgbmFtZTogJ25pY2tuYW1lJywgcmVxdWlyZWQ6IHRydWUsIGRlc2NyaXB0aW9uOiAnQWxpYXMgbyBuaWNrbmFtZScgfSxcbiAgICAgIC8vIHsgbmFtZTogJ3N0dWRlbnRfb2NjdXBhdGlvbicsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogJ09jdXBhY2nDs24gZGVsIGVzdHVkaWFudGUnIH0sXG4gICAgICAvLyB7IG5hbWU6ICdzdHJhdHVtJywgcmVxdWlyZWQ6IHRydWUsIGRlc2NyaXB0aW9uOiAnRXN0cmF0byBkZWwgZXN0dWRpYW50ZScgfSxcbiAgICAgIC8vIHsgbmFtZTogJ2NpdmlsX3N0YXR1cycsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogJ0VzdGFkbyBjaXZpbCBkZWwgZXN0dWRpYW50ZScgfSxcbiAgICAgIC8vIHsgbmFtZTogJ3Bhc3N3b3JkJywgcmVxdWlyZWQ6IHRydWUsIGRlc2NyaXB0aW9uOiAnQ29udHJhc2XDsWEgZGVsIGVzdHVkaWFudGUnIH0sXG4gICAgICAvLyB7IG5hbWU6ICdyZV9wYXNzd29yZCcsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogJ0NvbmZpcm1hY2nDs24gZGUgY29udHJhc2XDsWEnIH0sXG4gICAgXSxcbiAgICBbXG4gICAgICAvLyB7IG5hbWU6ICdzY2hlZHVsZScsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogJ2hvcmFyaW8gcmVxdWVyaWRvJyB9LFxuICAgICAgLy8geyBuYW1lOiAndG9fc3RhcnQnLCByZXF1aXJlZDogdHJ1ZSwgZGVzY3JpcHRpb246ICdwb3NpYmxlIGluaWNpbycgfSxcbiAgICAgIC8vIHsgbmFtZTogJ21vZGFsaXR5JywgcmVxdWlyZWQ6IHRydWUsIGRlc2NyaXB0aW9uOiAnTW9kYWxpZGFkIGRlbCBjdXJzbycgfSxcbiAgICAgIHsgbmFtZTogJ2FjYWRlbWljX3BsYW4nLCByZXF1aXJlZDogdHJ1ZSwgZGVzY3JpcHRpb246ICdQbGFuIGFjYWTDqW1pY28nIH0sXG4gICAgICB7IG5hbWU6ICdjb3Vyc2VfdHlwZScsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogJ1RpcG8gZGUgY3Vyc28nIH0sXG4gICAgICAvLyB7IG5hbWU6ICdhZ3JlZW1lbnRfYnlfY2F0ZWdvcnknLCByZXF1aXJlZDogdHJ1ZSwgZGVzY3JpcHRpb246ICdDb252ZW5pbycgfSxcbiAgICAgIHsgbmFtZTogJ2VuZ2xpc2hfbGV2ZWwnLCByZXF1aXJlZDogdHJ1ZSwgZGVzY3JpcHRpb246ICdOaXZlbCBkZSBpbmdsw6lzJyB9LFxuICAgICAgeyBuYW1lOiAnYXZhaWxpYmxlX2NvdXJzZXMnLCByZXF1aXJlZDogZmFsc2UsIGRlc2NyaXB0aW9uOiAnQ3Vyc29zIGRpc3BvbmlibGVzJyB9LFxuICAgICAgeyBuYW1lOiAnY291cnNlX21vZGFsaXR5JywgcmVxdWlyZWQ6IGZhbHNlLCBkZXNjcmlwdGlvbjogJ01vZGFsaWRhZCBkZWwgY3Vyc28nIH0sXG4gICAgXSxcbiAgICBbXG4gICAgICB7IG5hbWU6ICdwYXltZW50X2RhdGUnLCByZXF1aXJlZDogdHJ1ZSwgZGVzY3JpcHRpb246ICdGZWNoYSBkZSBwYWdvJyB9LFxuICAgICAgeyBuYW1lOiAncHJvZ3JhbV9wcmljZScsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogJ1ZhbG9yIHRvdGFsIGRlbCBwcm9ncmFtYScgfSxcbiAgICAgIHsgbmFtZTogJ3BheW1lbnRfbWV0aG9kJywgcmVxdWlyZWQ6IHRydWUsIGRlc2NyaXB0aW9uOiAnTcOpdG9kbyBkZSBwYWdvJyB9LFxuICAgICAgeyBuYW1lOiAncXVvdGFfdGltZXMnLCByZXF1aXJlZDogdHJ1ZSwgZGVzY3JpcHRpb246ICdDYW50aWRhZCBkZSBjdW90YXMnIH0sXG4gICAgICB7IG5hbWU6ICd0b3RhbF9wcmljZScsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogJ1ByZWNpbyB0b3RhbCBkZSBsYSBtYXRyaWN1bGEnIH0sXG4gICAgICB7IG5hbWU6ICdwYWlkX2xldmVsJywgcmVxdWlyZWQ6IHRydWUsIGRlc2NyaXB0aW9uOiAnTml2ZWxlcyBwYWdvcycgfSxcbiAgICBdLFxuICAgIC8vIFtcbiAgICAvLyAgIHsgbmFtZTogJ21hcmtldGluZ19yZWFzb25zJywgcmVxdWlyZWQ6IHRydWUsIGRlc2NyaXB0aW9uOiAnwr9Dw7NtbyBzZSBlbnRlcsOzIGRlbCBwcm9ncmFtYT8nIH0sXG4gICAgLy8gICB7IG5hbWU6ICdvYnNlcnZhdGlvbicsIHJlcXVpcmVkOiBmYWxzZSwgZGVzY3JpcHRpb246ICdPYnNlcnZhY2nDs24nIH0sXG4gICAgLy8gICB7IG5hbWU6ICdzdHVkeV9yZWFzb25zJywgcmVxdWlyZWQ6IHRydWUsIGRlc2NyaXB0aW9uOiAnTW90aXZvJyB9LFxuICAgIC8vICAgeyBuYW1lOiAndGVybXMnLCByZXF1aXJlZDogdHJ1ZSwgZGVzY3JpcHRpb246ICdUw6lybWlub3MgeSBjb25kaWNpb25lcycgfSxcbiAgICAvLyAgIHsgbmFtZTogJ2Rpc2FiaWxpdHknLCByZXF1aXJlZDogZmFsc2UsIGRlc2NyaXB0aW9uOiAnRGlzY2FwYWNpZGFkJyB9LFxuICAgIC8vICAgeyBuYW1lOiAnbXVsdGljdWx0dXJhbGlzbV8xJywgcmVxdWlyZWQ6IGZhbHNlLCBkZXNjcmlwdGlvbjogJ011bHRpY3VsdHVyYWxpc21vJyB9LFxuICAgIC8vICAgeyBuYW1lOiAnbXVsdGljdWx0dXJhbGlzbV8yJywgcmVxdWlyZWQ6IGZhbHNlLCBkZXNjcmlwdGlvbjogJ011bHRpY3VsdHVyYWxpc21vJyB9LFxuICAgIC8vICAgeyBuYW1lOiAnbXVsdGljdWx0dXJhbGlzbV8zJywgcmVxdWlyZWQ6IGZhbHNlLCBkZXNjcmlwdGlvbjogJ011bHRpY3VsdHVyYWxpc21vJyB9LFxuICAgIC8vICAgeyBuYW1lOiAnbXVsdGljdWx0dXJhbGlzbV80JywgcmVxdWlyZWQ6IGZhbHNlLCBkZXNjcmlwdGlvbjogJ011bHRpY3VsdHVyYWxpc21vJyB9LFxuICAgIC8vICAgeyBuYW1lOiAnbXVsdGljdWx0dXJhbGlzbV81JywgcmVxdWlyZWQ6IGZhbHNlLCBkZXNjcmlwdGlvbjogJ011bHRpY3VsdHVyYWxpc21vJyB9LFxuICAgIC8vICAgeyBuYW1lOiAnbXVsdGljdWx0dXJhbGlzbV82JywgcmVxdWlyZWQ6IGZhbHNlLCBkZXNjcmlwdGlvbjogJ011bHRpY3VsdHVyYWxpc21vJyB9LFxuICAgIC8vICAgeyBuYW1lOiAnaGVhbHRoX3JlZ2ltZW4nLCByZXF1aXJlZDogdHJ1ZSwgZGVzY3JpcHRpb246ICdSw6lnaW1lbiBkZSBzYWx1ZCcgfSxcbiAgICAvLyAgIHsgbmFtZTogJ2NvZGVfcmVmZXJzJywgcmVxdWlyZWQ6IHRydWUsIGRlc2NyaXB0aW9uOiAnUmVmaWVyZScgfSxcbiAgICAvLyAgIHsgbmFtZTogJ2NvZGVfY29kJywgcmVxdWlyZWQ6IGZhbHNlLCBkZXNjcmlwdGlvbjogJ0NvZGlnbyBDb2QnIH1cbiAgICAvLyBdLFxuICBdO1xuXG4gIHByaXZhdGUgJGNvbnRyb2xzID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBcnJheTxDb250cm9sU3RlcHNbXT4+KFtdKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLiRjb250cm9scy5uZXh0KHRoaXMuY29udHJvbHMpO1xuICB9XG5cbiAgZ2V0Q29udHJvbFZhbHVlcygpOiBPYnNlcnZhYmxlPEFycmF5PENvbnRyb2xTdGVwc1tdPj4ge1xuICAgIHJldHVybiB0aGlzLiRjb250cm9scy5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIC8vIENhbWJpYXIgbG9zIHZhbG9yZXMgZGUgbG9zIGNvbnRyb2xzLCBlamVtcGxvOiB0cnVlIHkgZmFsc2UgZGVsIGNoZWNrYm94XG4gIGNoYW5nZVZhbHVlKHN0ZXA6IG51bWJlciwgY29udHJvbE5hbWU6IHN0cmluZywgbmV3VmFsdWU6IGFueSkge1xuICAgIGNvbnN0IGNvbnRyb2xzOiBBcnJheTxDb250cm9sU3RlcHNbXT4gPSB7IC4uLnRoaXMuY29udHJvbHMgfTtcbiAgICBsZXQgY29udHJvbCA9IGNvbnRyb2xzW3N0ZXAtMV0uZmlsdGVyKGVsZW1lbnQgPT4gZWxlbWVudC5uYW1lID09PSBjb250cm9sTmFtZSk7XG4gICAgY29udHJvbFswXS5yZXF1aXJlZCA9IG5ld1ZhbHVlO1xuXG4gICAgdGhpcy4kY29udHJvbHMubmV4dChjb250cm9scylcbiAgfVxufVxuIl19
@@ -1,3 +1,4 @@
1
+ import { CodSelfManagedControls } from './../../logic/cod-self-managed-controls';
1
2
  import { Component, EventEmitter, Output } from '@angular/core';
2
3
  import { CodSelfManagedSteps } from '../../logic/cod-self-managed-steps';
3
4
  import { Validators } from '@angular/forms';
@@ -26,6 +27,7 @@ export class CodSelfFormStepThreeComponent extends CodSelfManagedSteps {
26
27
  this.calculateQuotesService = calculateQuotesService;
27
28
  this.completed = new EventEmitter();
28
29
  this.financingData = new EventEmitter();
30
+ this.controls = new CodSelfManagedControls().controls[2];
29
31
  this.messageInfo = "";
30
32
  this.visible = false;
31
33
  this.paymentMethods = [
@@ -40,9 +42,10 @@ export class CodSelfFormStepThreeComponent extends CodSelfManagedSteps {
40
42
  this.initForm();
41
43
  }
42
44
  initForm() {
45
+ const currentDate = new Date().toISOString().split('T')[0];
43
46
  this.codSelfFormStepThree = this.fb.group({
44
47
  program_price: [{ value: '', disabled: true }, [Validators.required]],
45
- payment_date: ['', [Validators.required]],
48
+ payment_date: [currentDate, [Validators.required]],
46
49
  payment_method: ['', [Validators.required]],
47
50
  quota_times: [{ value: '', disabled: true }, [Validators.required]],
48
51
  total_price: [{ value: '', disabled: true }, [Validators.required]],
@@ -51,6 +54,17 @@ export class CodSelfFormStepThreeComponent extends CodSelfManagedSteps {
51
54
  fee_number: ['', [Validators.required]],
52
55
  });
53
56
  }
57
+ ngOnInit() {
58
+ this.startLocalStorageWork();
59
+ // this.valuesInitialSchedule();
60
+ }
61
+ startLocalStorageWork() {
62
+ this.controls.forEach(control => {
63
+ let localStorageValue = this.readAndWriteLS(2, control.name);
64
+ this.codSelfFormStepThree.controls[control.name].setValue(localStorageValue.value);
65
+ this.listenFormChanges(2, control.name, this.codSelfFormStepThree.controls[control.name].valueChanges);
66
+ });
67
+ }
54
68
  onReject() {
55
69
  this.messageService.clear('confirm');
56
70
  this.visible = false;
@@ -68,7 +82,7 @@ export class CodSelfFormStepThreeComponent extends CodSelfManagedSteps {
68
82
  const request = {
69
83
  token: this.baseService.getUserToken(),
70
84
  course_type: Number(this.localStorageCOD.getCodFormData(2, 'course_type')),
71
- agreement: Number(this.localStorageCOD.getCodFormData(2, 'agreement_by_category')),
85
+ agreement: Number(this.localStorageCOD.getCodFormData(1, 'agreement_by_category')),
72
86
  course_modality: Number(this.localStorageCOD.getCodFormData(2, 'course_modality')),
73
87
  payment_method: parseInt(paymentMethod)
74
88
  };
@@ -178,13 +192,13 @@ export class CodSelfFormStepThreeComponent extends CodSelfManagedSteps {
178
192
  }
179
193
  }
180
194
  CodSelfFormStepThreeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.7", ngImport: i0, type: CodSelfFormStepThreeComponent, deps: [{ token: i1.FormBuilder }, { token: i2.MessageService }, { token: i3.CommercialService }, { token: i4.BaseService }, { token: i5.CalculateQuotesService }], target: i0.ɵɵFactoryTarget.Component });
181
- CodSelfFormStepThreeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.7", type: CodSelfFormStepThreeComponent, selector: "app-cod-self-form-step-three", outputs: { completed: "completed", financingData: "financingData" }, usesInheritance: true, ngImport: i0, template: "<div class=\"container-main\">\n <div class=\"container-form\">\n <h2>Pagos</h2>\n <p-toast position=\"top-center\" key=\"confirm\" (onClose)=\"onReject()\" [baseZIndex]=\"10\">\n <ng-template let-message pTemplate=\"message\">\n <div class=\"flex flex-column align-items-start\" style=\"flex: 1\">\n <div class=\"flex align-items-center gap-2\">\n <img src=\"https://qa.iptdev.com.co/assets/logos/reading.png\" style=\"width: 65px;\" shape=\"circle\" />\n <span class=\"font-bold text-900\">Jacob</span>\n </div>\n <div class=\"font-medium text-lg my-3 text-900\">{{ messageInfo }}</div>\n </div>\n </ng-template>\n </p-toast>\n <i class=\"pi pi-exclamation-circle cursor-pointer w-auto mb-4\" (click)=\"showConfirm()\" pTooltip=\"Mas info.\" tooltipPosition=\"bottom\"></i>\n\n <form autocomplete=\"off\" [formGroup]=\"codSelfFormStepThree\" class=\"grid mt-2\">\n\n <div class=\"col-12\">\n <ipt-select\n [initialValue]=\"codSelfFormStepThree.controls['payment_method'].value\"\n [control]=\"codSelfFormStepThree.controls['payment_method']\"\n (eventSelect)=\"selectPaymentMethod($event)\"\n [data]=\"paymentMethods\"\n [defaultText]=\"'M\u00E9todo de pago'\"\n ></ipt-select>\n <ipt-loader *ngIf=\"feeResponse\"></ipt-loader>\n\n <div class=\"col-12\" *ngIf=\"thereArePlans\">\n <p-table\n [value]=\"dataPrices\"\n [tableStyle]=\"{'min-width': '100%'}\"\n [rowHover]=\"true\"\n >\n <ng-template pTemplate=\"caption\">\n <div class=\"flex align-items-center\">\n Seleccion de niveles a cancelar.\n </div>\n </ng-template>\n <ng-template pTemplate=\"header\">\n <tr>\n <th class=\"bg-blue-200 text-center font-medium pt-2 pb-2\">Cancelar</th>\n <th class=\"bg-blue-200 text-center font-medium pt-2 pb-2\">Cuotas</th>\n <th class=\"bg-blue-200 text-center font-medium pt-2 pb-2\">Admin</th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\" let-data>\n <tr>\n <td>{{ data.paid_level }} Nivel(es)</td>\n <td>{{ data.fee_number }}</td>\n <td class=\"pt-2 pb-2\">\n <button\n pButton\n pRipple\n icon=\"pi pi-money-bill\"\n class=\"p-button-sm p-button-rounded\"\n (click)=\"selectLevels(data)\"\n\n ></button>\n </td>\n </tr>\n </ng-template>\n </p-table>\n </div>\n\n\n </div>\n\n <div class=\"col-12\">\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Monto total de la matr\u00EDcula'\"\n [control]=\"codSelfFormStepThree.controls['total_price']\"\n [withPipe]=\"true\"\n ></ipt-input>\n </div>\n\n <div class=\"col-12\">\n <ipt-input\n [withPipe]=\"true\"\n [inputType]=\"'text'\"\n [control]=\"codSelfFormStepThree.controls['program_price']\"\n [placeHolder]=\"'Valor total del programa'\"\n ></ipt-input>\n </div>\n\n <div class=\"col-12\">\n <ipt-input\n onfocus=\"(this.type='date')\"\n [inputType]=\"'date'\"\n [control]=\"codSelfFormStepThree.controls['payment_date']\"\n [placeHolder]=\"'Fecha de pago'\"\n ></ipt-input>\n </div>\n\n <!-- Tabla de financiaci\u00F3n -->\n <div class=\"col-12\" *ngIf=\"isFinancing\">\n <p-table\n [value]=\"dataFinancing\"\n [tableStyle]=\"{'min-width': '100%'}\"\n [rowHover]=\"true\"\n >\n <ng-template pTemplate=\"caption\">\n <div class=\"flex align-items-center\">\n C\u00E1lculo de cuotas\n <button pButton class=\"p-button-sm ml-auto\" label=\"Nuevo c\u00E1lculo\" (click)=\"calculateNewQuotes()\" lab icon=\"pi pi-replay\"></button>\n </div>\n </ng-template>\n <ng-template pTemplate=\"header\">\n <tr>\n <th>#</th>\n <th>Valor</th>\n <th>Fecha</th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\" let-data>\n <tr>\n <td>{{ data[0] }}</td>\n <td>{{ data[1] }}</td>\n <td>{{ data[2] }}</td>\n </tr>\n </ng-template>\n </p-table>\n </div>\n <!-- ---------------------- -->\n\n </form>\n </div>\n\n\n<div class=\"flex justify-content-between mt-3 align-items-center gap-3\">\n <!-- <span *ngIf=\"codSelfFormStepOne.invalid && codSelfFormStepOne.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\n pButton\n icon=\"pi pi-arrow-left\"\n type=\"submit\"\n (click)=\"back()\"\n ></button>\n\n <button\n pButton\n icon=\"pi pi-arrow-right\"\n (click)=\"sendForm()\"\n ></button>\n</div>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i7.InputComponent, selector: "ipt-input", inputs: ["inputType", "placeHolder", "validateText", "withPipe", "list", "iconUrl", "control", "prefix", "thousands", "decimal", "disabledSel"], outputs: ["dateSelected"] }, { kind: "component", type: i8.LoaderComponent, selector: "ipt-loader", inputs: ["message", "isDialog"] }, { kind: "component", type: i9.SelectComponent, selector: "ipt-select", inputs: ["isRequired", "data", "defaultText", "selectCode", "disabledSel", "initialValue", "control"], outputs: ["eventSelect"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i10.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "fitContent", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "directive", type: i11.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }, { kind: "component", type: i12.Toast, selector: "p-toast", inputs: ["key", "autoZIndex", "baseZIndex", "style", "styleClass", "position", "preventOpenDuplicates", "preventDuplicates", "showTransformOptions", "hideTransformOptions", "showTransitionOptions", "hideTransitionOptions", "breakpoints"], outputs: ["onClose"] }, { kind: "directive", type: i2.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: i13.Table, selector: "p-table", inputs: ["frozenColumns", "frozenValue", "style", "styleClass", "tableStyle", "tableStyleClass", "paginator", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorDropdownAppendTo", "paginatorDropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showJumpToPageDropdown", "showJumpToPageInput", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "selectionMode", "selectionPageOnly", "contextMenuSelection", "contextMenuSelectionMode", "dataKey", "metaKeySelection", "rowSelectable", "rowTrackBy", "lazy", "lazyLoadOnInit", "compareSelectionBy", "csvSeparator", "exportFilename", "filters", "globalFilterFields", "filterDelay", "filterLocale", "expandedRowKeys", "editingRowKeys", "rowExpandMode", "scrollable", "scrollDirection", "rowGroupMode", "scrollHeight", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "virtualScrollDelay", "frozenWidth", "responsive", "contextMenu", "resizableColumns", "columnResizeMode", "reorderableColumns", "loading", "loadingIcon", "showLoader", "rowHover", "customSort", "showInitialSortBadge", "autoLayout", "exportFunction", "exportHeader", "stateKey", "stateStorage", "editMode", "groupRowsBy", "groupRowsByOrder", "responsiveLayout", "breakpoint", "virtualRowHeight", "value", "columns", "first", "rows", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection", "selectAll"], outputs: ["selectAllChange", "selectionChange", "contextMenuSelectionChange", "onRowSelect", "onRowUnselect", "onPage", "onSort", "onFilter", "onLazyLoad", "onRowExpand", "onRowCollapse", "onContextMenuSelect", "onColResize", "onColReorder", "onRowReorder", "onEditInit", "onEditComplete", "onEditCancel", "onHeaderCheckboxToggle", "sortFunction", "firstChange", "rowsChange", "onStateSave", "onStateRestore"] }] });
195
+ CodSelfFormStepThreeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.7", type: CodSelfFormStepThreeComponent, selector: "app-cod-self-form-step-three", outputs: { completed: "completed", financingData: "financingData" }, usesInheritance: true, ngImport: i0, template: "<div class=\"container-main\">\n <div class=\"container-form\">\n <h2>Pagos</h2>\n <p-toast position=\"top-center\" key=\"confirm\" (onClose)=\"onReject()\" [baseZIndex]=\"10\">\n <ng-template let-message pTemplate=\"message\">\n <div class=\"flex flex-column align-items-start\" style=\"flex: 1\">\n <div class=\"flex align-items-center gap-2\">\n <img src=\"https://qa.iptdev.com.co/assets/logos/reading.png\" style=\"width: 65px;\" shape=\"circle\" />\n <span class=\"font-bold text-900\">Jacob</span>\n </div>\n <div class=\"font-medium text-lg my-3 text-900\">{{ messageInfo }}</div>\n </div>\n </ng-template>\n </p-toast>\n <i class=\"pi pi-exclamation-circle cursor-pointer w-auto mb-4\" (click)=\"showConfirm()\" pTooltip=\"Mas info.\" tooltipPosition=\"bottom\"></i>\n\n <form autocomplete=\"off\" [formGroup]=\"codSelfFormStepThree\" class=\"grid mt-2\">\n\n <div class=\"col-12\">\n <ipt-select\n [initialValue]=\"codSelfFormStepThree.controls['payment_method'].value\"\n [control]=\"codSelfFormStepThree.controls['payment_method']\"\n (eventSelect)=\"selectPaymentMethod($event)\"\n [data]=\"paymentMethods\"\n [defaultText]=\"'M\u00E9todo de pago'\"\n ></ipt-select>\n <ipt-loader *ngIf=\"feeResponse\"></ipt-loader>\n\n <div class=\"col-12\" *ngIf=\"thereArePlans\">\n <p-table\n [value]=\"dataPrices\"\n [tableStyle]=\"{'min-width': '100%'}\"\n [rowHover]=\"true\"\n >\n <ng-template pTemplate=\"caption\">\n <div class=\"flex align-items-center\">\n Seleccion de niveles a cancelar.\n </div>\n </ng-template>\n <ng-template pTemplate=\"header\">\n <tr>\n <th class=\"bg-blue-200 text-center font-medium pt-2 pb-2\">Cancelar</th>\n <th class=\"bg-blue-200 text-center font-medium pt-2 pb-2\">Cuotas</th>\n <th class=\"bg-blue-200 text-center font-medium pt-2 pb-2\">Admin</th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\" let-data>\n <tr>\n <td>{{ data.paid_level }} Nivel(es)</td>\n <td>{{ data.fee_number }}</td>\n <td class=\"pt-2 pb-2\">\n <button\n pButton\n pRipple\n icon=\"pi pi-money-bill\"\n class=\"p-button-sm p-button-rounded\"\n (click)=\"selectLevels(data)\"\n\n ></button>\n </td>\n </tr>\n </ng-template>\n </p-table>\n </div>\n\n\n </div>\n\n <div class=\"col-12\">\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Monto total de la matr\u00EDcula'\"\n [control]=\"codSelfFormStepThree.controls['total_price']\"\n [withPipe]=\"true\"\n ></ipt-input>\n </div>\n\n <div class=\"col-12\">\n <ipt-input\n [withPipe]=\"true\"\n [inputType]=\"'text'\"\n [control]=\"codSelfFormStepThree.controls['program_price']\"\n [placeHolder]=\"'Valor total del programa'\"\n ></ipt-input>\n </div>\n\n <!-- <div class=\"col-12\">\n <ipt-input\n onfocus=\"(this.type='date')\"\n [inputType]=\"'date'\"\n [control]=\"codSelfFormStepThree.controls['payment_date']\"\n [placeHolder]=\"'Fecha de pago'\"\n ></ipt-input>\n </div> -->\n\n <!-- Tabla de financiaci\u00F3n -->\n <div class=\"col-12\" *ngIf=\"isFinancing\">\n <p-table\n [value]=\"dataFinancing\"\n [tableStyle]=\"{'min-width': '100%'}\"\n [rowHover]=\"true\"\n >\n <ng-template pTemplate=\"caption\">\n <div class=\"flex align-items-center\">\n C\u00E1lculo de cuotas\n <button pButton class=\"p-button-sm ml-auto\" label=\"Nuevo c\u00E1lculo\" (click)=\"calculateNewQuotes()\" lab icon=\"pi pi-replay\"></button>\n </div>\n </ng-template>\n <ng-template pTemplate=\"header\">\n <tr>\n <th>#</th>\n <th>Valor</th>\n <th>Fecha</th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\" let-data>\n <tr>\n <td>{{ data[0] }}</td>\n <td>{{ data[1] }}</td>\n <td>{{ data[2] }}</td>\n </tr>\n </ng-template>\n </p-table>\n </div>\n <!-- ---------------------- -->\n\n </form>\n </div>\n\n\n<div class=\"flex justify-content-between mt-3 align-items-center gap-3\">\n <!-- <span *ngIf=\"codSelfFormStepOne.invalid && codSelfFormStepOne.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\n pButton\n icon=\"pi pi-arrow-left\"\n type=\"submit\"\n (click)=\"back()\"\n ></button>\n\n <button\n pButton\n icon=\"pi pi-arrow-right\"\n (click)=\"sendForm()\"\n ></button>\n</div>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i7.InputComponent, selector: "ipt-input", inputs: ["inputType", "placeHolder", "validateText", "withPipe", "list", "iconUrl", "control", "prefix", "thousands", "decimal", "disabledSel"], outputs: ["dateSelected"] }, { kind: "component", type: i8.LoaderComponent, selector: "ipt-loader", inputs: ["message", "isDialog"] }, { kind: "component", type: i9.SelectComponent, selector: "ipt-select", inputs: ["isRequired", "data", "defaultText", "selectCode", "disabledSel", "initialValue", "control"], outputs: ["eventSelect"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i10.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "fitContent", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "directive", type: i11.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }, { kind: "component", type: i12.Toast, selector: "p-toast", inputs: ["key", "autoZIndex", "baseZIndex", "style", "styleClass", "position", "preventOpenDuplicates", "preventDuplicates", "showTransformOptions", "hideTransformOptions", "showTransitionOptions", "hideTransitionOptions", "breakpoints"], outputs: ["onClose"] }, { kind: "directive", type: i2.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: i13.Table, selector: "p-table", inputs: ["frozenColumns", "frozenValue", "style", "styleClass", "tableStyle", "tableStyleClass", "paginator", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorDropdownAppendTo", "paginatorDropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showJumpToPageDropdown", "showJumpToPageInput", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "selectionMode", "selectionPageOnly", "contextMenuSelection", "contextMenuSelectionMode", "dataKey", "metaKeySelection", "rowSelectable", "rowTrackBy", "lazy", "lazyLoadOnInit", "compareSelectionBy", "csvSeparator", "exportFilename", "filters", "globalFilterFields", "filterDelay", "filterLocale", "expandedRowKeys", "editingRowKeys", "rowExpandMode", "scrollable", "scrollDirection", "rowGroupMode", "scrollHeight", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "virtualScrollDelay", "frozenWidth", "responsive", "contextMenu", "resizableColumns", "columnResizeMode", "reorderableColumns", "loading", "loadingIcon", "showLoader", "rowHover", "customSort", "showInitialSortBadge", "autoLayout", "exportFunction", "exportHeader", "stateKey", "stateStorage", "editMode", "groupRowsBy", "groupRowsByOrder", "responsiveLayout", "breakpoint", "virtualRowHeight", "value", "columns", "first", "rows", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection", "selectAll"], outputs: ["selectAllChange", "selectionChange", "contextMenuSelectionChange", "onRowSelect", "onRowUnselect", "onPage", "onSort", "onFilter", "onLazyLoad", "onRowExpand", "onRowCollapse", "onContextMenuSelect", "onColResize", "onColReorder", "onRowReorder", "onEditInit", "onEditComplete", "onEditCancel", "onHeaderCheckboxToggle", "sortFunction", "firstChange", "rowsChange", "onStateSave", "onStateRestore"] }] });
182
196
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.7", ngImport: i0, type: CodSelfFormStepThreeComponent, decorators: [{
183
197
  type: Component,
184
- args: [{ selector: 'app-cod-self-form-step-three', template: "<div class=\"container-main\">\n <div class=\"container-form\">\n <h2>Pagos</h2>\n <p-toast position=\"top-center\" key=\"confirm\" (onClose)=\"onReject()\" [baseZIndex]=\"10\">\n <ng-template let-message pTemplate=\"message\">\n <div class=\"flex flex-column align-items-start\" style=\"flex: 1\">\n <div class=\"flex align-items-center gap-2\">\n <img src=\"https://qa.iptdev.com.co/assets/logos/reading.png\" style=\"width: 65px;\" shape=\"circle\" />\n <span class=\"font-bold text-900\">Jacob</span>\n </div>\n <div class=\"font-medium text-lg my-3 text-900\">{{ messageInfo }}</div>\n </div>\n </ng-template>\n </p-toast>\n <i class=\"pi pi-exclamation-circle cursor-pointer w-auto mb-4\" (click)=\"showConfirm()\" pTooltip=\"Mas info.\" tooltipPosition=\"bottom\"></i>\n\n <form autocomplete=\"off\" [formGroup]=\"codSelfFormStepThree\" class=\"grid mt-2\">\n\n <div class=\"col-12\">\n <ipt-select\n [initialValue]=\"codSelfFormStepThree.controls['payment_method'].value\"\n [control]=\"codSelfFormStepThree.controls['payment_method']\"\n (eventSelect)=\"selectPaymentMethod($event)\"\n [data]=\"paymentMethods\"\n [defaultText]=\"'M\u00E9todo de pago'\"\n ></ipt-select>\n <ipt-loader *ngIf=\"feeResponse\"></ipt-loader>\n\n <div class=\"col-12\" *ngIf=\"thereArePlans\">\n <p-table\n [value]=\"dataPrices\"\n [tableStyle]=\"{'min-width': '100%'}\"\n [rowHover]=\"true\"\n >\n <ng-template pTemplate=\"caption\">\n <div class=\"flex align-items-center\">\n Seleccion de niveles a cancelar.\n </div>\n </ng-template>\n <ng-template pTemplate=\"header\">\n <tr>\n <th class=\"bg-blue-200 text-center font-medium pt-2 pb-2\">Cancelar</th>\n <th class=\"bg-blue-200 text-center font-medium pt-2 pb-2\">Cuotas</th>\n <th class=\"bg-blue-200 text-center font-medium pt-2 pb-2\">Admin</th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\" let-data>\n <tr>\n <td>{{ data.paid_level }} Nivel(es)</td>\n <td>{{ data.fee_number }}</td>\n <td class=\"pt-2 pb-2\">\n <button\n pButton\n pRipple\n icon=\"pi pi-money-bill\"\n class=\"p-button-sm p-button-rounded\"\n (click)=\"selectLevels(data)\"\n\n ></button>\n </td>\n </tr>\n </ng-template>\n </p-table>\n </div>\n\n\n </div>\n\n <div class=\"col-12\">\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Monto total de la matr\u00EDcula'\"\n [control]=\"codSelfFormStepThree.controls['total_price']\"\n [withPipe]=\"true\"\n ></ipt-input>\n </div>\n\n <div class=\"col-12\">\n <ipt-input\n [withPipe]=\"true\"\n [inputType]=\"'text'\"\n [control]=\"codSelfFormStepThree.controls['program_price']\"\n [placeHolder]=\"'Valor total del programa'\"\n ></ipt-input>\n </div>\n\n <div class=\"col-12\">\n <ipt-input\n onfocus=\"(this.type='date')\"\n [inputType]=\"'date'\"\n [control]=\"codSelfFormStepThree.controls['payment_date']\"\n [placeHolder]=\"'Fecha de pago'\"\n ></ipt-input>\n </div>\n\n <!-- Tabla de financiaci\u00F3n -->\n <div class=\"col-12\" *ngIf=\"isFinancing\">\n <p-table\n [value]=\"dataFinancing\"\n [tableStyle]=\"{'min-width': '100%'}\"\n [rowHover]=\"true\"\n >\n <ng-template pTemplate=\"caption\">\n <div class=\"flex align-items-center\">\n C\u00E1lculo de cuotas\n <button pButton class=\"p-button-sm ml-auto\" label=\"Nuevo c\u00E1lculo\" (click)=\"calculateNewQuotes()\" lab icon=\"pi pi-replay\"></button>\n </div>\n </ng-template>\n <ng-template pTemplate=\"header\">\n <tr>\n <th>#</th>\n <th>Valor</th>\n <th>Fecha</th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\" let-data>\n <tr>\n <td>{{ data[0] }}</td>\n <td>{{ data[1] }}</td>\n <td>{{ data[2] }}</td>\n </tr>\n </ng-template>\n </p-table>\n </div>\n <!-- ---------------------- -->\n\n </form>\n </div>\n\n\n<div class=\"flex justify-content-between mt-3 align-items-center gap-3\">\n <!-- <span *ngIf=\"codSelfFormStepOne.invalid && codSelfFormStepOne.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\n pButton\n icon=\"pi pi-arrow-left\"\n type=\"submit\"\n (click)=\"back()\"\n ></button>\n\n <button\n pButton\n icon=\"pi pi-arrow-right\"\n (click)=\"sendForm()\"\n ></button>\n</div>\n</div>\n" }]
198
+ args: [{ selector: 'app-cod-self-form-step-three', template: "<div class=\"container-main\">\n <div class=\"container-form\">\n <h2>Pagos</h2>\n <p-toast position=\"top-center\" key=\"confirm\" (onClose)=\"onReject()\" [baseZIndex]=\"10\">\n <ng-template let-message pTemplate=\"message\">\n <div class=\"flex flex-column align-items-start\" style=\"flex: 1\">\n <div class=\"flex align-items-center gap-2\">\n <img src=\"https://qa.iptdev.com.co/assets/logos/reading.png\" style=\"width: 65px;\" shape=\"circle\" />\n <span class=\"font-bold text-900\">Jacob</span>\n </div>\n <div class=\"font-medium text-lg my-3 text-900\">{{ messageInfo }}</div>\n </div>\n </ng-template>\n </p-toast>\n <i class=\"pi pi-exclamation-circle cursor-pointer w-auto mb-4\" (click)=\"showConfirm()\" pTooltip=\"Mas info.\" tooltipPosition=\"bottom\"></i>\n\n <form autocomplete=\"off\" [formGroup]=\"codSelfFormStepThree\" class=\"grid mt-2\">\n\n <div class=\"col-12\">\n <ipt-select\n [initialValue]=\"codSelfFormStepThree.controls['payment_method'].value\"\n [control]=\"codSelfFormStepThree.controls['payment_method']\"\n (eventSelect)=\"selectPaymentMethod($event)\"\n [data]=\"paymentMethods\"\n [defaultText]=\"'M\u00E9todo de pago'\"\n ></ipt-select>\n <ipt-loader *ngIf=\"feeResponse\"></ipt-loader>\n\n <div class=\"col-12\" *ngIf=\"thereArePlans\">\n <p-table\n [value]=\"dataPrices\"\n [tableStyle]=\"{'min-width': '100%'}\"\n [rowHover]=\"true\"\n >\n <ng-template pTemplate=\"caption\">\n <div class=\"flex align-items-center\">\n Seleccion de niveles a cancelar.\n </div>\n </ng-template>\n <ng-template pTemplate=\"header\">\n <tr>\n <th class=\"bg-blue-200 text-center font-medium pt-2 pb-2\">Cancelar</th>\n <th class=\"bg-blue-200 text-center font-medium pt-2 pb-2\">Cuotas</th>\n <th class=\"bg-blue-200 text-center font-medium pt-2 pb-2\">Admin</th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\" let-data>\n <tr>\n <td>{{ data.paid_level }} Nivel(es)</td>\n <td>{{ data.fee_number }}</td>\n <td class=\"pt-2 pb-2\">\n <button\n pButton\n pRipple\n icon=\"pi pi-money-bill\"\n class=\"p-button-sm p-button-rounded\"\n (click)=\"selectLevels(data)\"\n\n ></button>\n </td>\n </tr>\n </ng-template>\n </p-table>\n </div>\n\n\n </div>\n\n <div class=\"col-12\">\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Monto total de la matr\u00EDcula'\"\n [control]=\"codSelfFormStepThree.controls['total_price']\"\n [withPipe]=\"true\"\n ></ipt-input>\n </div>\n\n <div class=\"col-12\">\n <ipt-input\n [withPipe]=\"true\"\n [inputType]=\"'text'\"\n [control]=\"codSelfFormStepThree.controls['program_price']\"\n [placeHolder]=\"'Valor total del programa'\"\n ></ipt-input>\n </div>\n\n <!-- <div class=\"col-12\">\n <ipt-input\n onfocus=\"(this.type='date')\"\n [inputType]=\"'date'\"\n [control]=\"codSelfFormStepThree.controls['payment_date']\"\n [placeHolder]=\"'Fecha de pago'\"\n ></ipt-input>\n </div> -->\n\n <!-- Tabla de financiaci\u00F3n -->\n <div class=\"col-12\" *ngIf=\"isFinancing\">\n <p-table\n [value]=\"dataFinancing\"\n [tableStyle]=\"{'min-width': '100%'}\"\n [rowHover]=\"true\"\n >\n <ng-template pTemplate=\"caption\">\n <div class=\"flex align-items-center\">\n C\u00E1lculo de cuotas\n <button pButton class=\"p-button-sm ml-auto\" label=\"Nuevo c\u00E1lculo\" (click)=\"calculateNewQuotes()\" lab icon=\"pi pi-replay\"></button>\n </div>\n </ng-template>\n <ng-template pTemplate=\"header\">\n <tr>\n <th>#</th>\n <th>Valor</th>\n <th>Fecha</th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\" let-data>\n <tr>\n <td>{{ data[0] }}</td>\n <td>{{ data[1] }}</td>\n <td>{{ data[2] }}</td>\n </tr>\n </ng-template>\n </p-table>\n </div>\n <!-- ---------------------- -->\n\n </form>\n </div>\n\n\n<div class=\"flex justify-content-between mt-3 align-items-center gap-3\">\n <!-- <span *ngIf=\"codSelfFormStepOne.invalid && codSelfFormStepOne.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\n pButton\n icon=\"pi pi-arrow-left\"\n type=\"submit\"\n (click)=\"back()\"\n ></button>\n\n <button\n pButton\n icon=\"pi pi-arrow-right\"\n (click)=\"sendForm()\"\n ></button>\n</div>\n</div>\n" }]
185
199
  }], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i2.MessageService }, { type: i3.CommercialService }, { type: i4.BaseService }, { type: i5.CalculateQuotesService }]; }, propDecorators: { completed: [{
186
200
  type: Output
187
201
  }], financingData: [{
188
202
  type: Output
189
203
  }] } });
190
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kLXNlbGYtZm9ybS1zdGVwLXRocmVlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2Rlc2lnbi1zeXN0ZW0vc3JjL2xpYi9jb2Qtc2VsZi1tYW5hZ2VkL3N0ZXBzL2NvZC1mb3JtLXN0ZXAtdGhyZWUvY29kLXNlbGYtZm9ybS1zdGVwLXRocmVlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2Rlc2lnbi1zeXN0ZW0vc3JjL2xpYi9jb2Qtc2VsZi1tYW5hZ2VkL3N0ZXBzL2NvZC1mb3JtLXN0ZXAtdGhyZWUvY29kLXNlbGYtZm9ybS1zdGVwLXRocmVlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVoRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN6RSxPQUFPLEVBQWEsVUFBVSxFQUFlLE1BQU0sZ0JBQWdCLENBQUM7QUFFcEUsT0FBTyxJQUFJLE1BQU0sYUFBYSxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7QUFPL0IsTUFBTSxPQUFPLDZCQUE4QixTQUFRLG1CQUFtQjtJQW1CcEUsWUFDVSxFQUFlLEVBQ2YsY0FBOEIsRUFDOUIsaUJBQW9DLEVBQ3BDLFdBQXdCLEVBQ3hCLHNCQUE4QztRQUN0RCxLQUFLLEVBQUUsQ0FBQztRQUxBLE9BQUUsR0FBRixFQUFFLENBQWE7UUFDZixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QiwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO1FBdEI5QyxjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUN2QyxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFF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Q0FBQyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ3RGLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUNsRixJQUFJLENBQUMsb0JBQW9CLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDcEYsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7U0FDL0I7SUFDSCxDQUFDO0lBRUQsc0JBQXNCO1FBQ3BCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUM3RSxJQUFJLENBQUMsb0JBQW9CLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDLHNCQUFzQixFQUFFLENBQUM7UUFDNUUsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1FBQzNFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztJQUM3RSxDQUFDOzswSEFoTFUsNkJBQTZCOzhHQUE3Qiw2QkFBNkIsZ0tDZjFDLCsrSkFrSkE7MkZEbklhLDZCQUE2QjtrQkFMekMsU0FBUzsrQkFDRSw4QkFBOEI7OE5BTTlCLFNBQVM7c0JBQWxCLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENhbGN1bGF0ZVF1b3Rlc1BhcmFtcywgQ2FsY3VsYXRlUXVvdGVzU2VydmljZSB9IGZyb20gJy4vLi4vLi4vLi4vY29kL2xvZ2ljL2NhbGN1bGF0ZS1xdW90ZXMuc2VydmljZSc7XG5pbXBvcnQgeyBCYXNlU2VydmljZSB9IGZyb20gJy4vLi4vLi4vLi4vY29yZS91dGlscy9iYXNlLXNlcnZpY2UvYmFzZS5zZXJ2aWNlJztcbmltcG9ydCB7IElPYnRhaW5Db2RQcmljZXNScSB9IGZyb20gJy4vLi4vLi4vLi4vY29yZS9tb2RlbHMvY29tbWVyY2lhbC9jb21tZXJjaWFsLm1vZGVsJztcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAncHJpbWVuZy9hcGknO1xuaW1wb3J0IHsgQ29kU2VsZk1hbmFnZWRTdGVwcyB9IGZyb20gJy4uLy4uL2xvZ2ljL2NvZC1zZWxmLW1hbmFnZWQtc3RlcHMnO1xuaW1wb3J0IHsgRm9ybUdyb3VwLCBWYWxpZGF0b3JzLCBGb3JtQnVpbGRlciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IENvbW1lcmNpYWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9zZXJ2aWNlcy9jb21tZXJjaWFsLXNlcnZpY2UvY29tZXJjaWFsLnNlcnZpY2UnO1xuaW1wb3J0IFN3YWwgZnJvbSAnc3dlZXRhbGVydDInO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtY29kLXNlbGYtZm9ybS1zdGVwLXRocmVlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvZC1zZWxmLWZvcm0tc3RlcC10aHJlZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NvZC1zZWxmLWZvcm0tc3RlcC10aHJlZS5jb21wb25lbnQuY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIENvZFNlbGZGb3JtU3RlcFRocmVlQ29tcG9uZW50IGV4dGVuZHMgQ29kU2VsZk1hbmFnZWRTdGVwcyB7XG5cbiAgQE91dHB1dCgpIGNvbXBsZXRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuICBAT3V0cHV0KCkgZmluYW5jaW5nRGF0YSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIG1lc3NhZ2VJbmZvOnN0cmluZyA9IFwiXCJcbiAgdmlzaWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuICBjb2RTZWxmRm9ybVN0ZXBUaHJlZSE6IEZvcm1Hcm91cDtcbiAgcGF5bWVudE1ldGhvZHM6IGFueVtdID0gW1xuICAgIHsgY29kZTogJzEnLCBuYW1lOiAnRmluYW5jaWFkbycgfSxcbiAgICB7IGNvZGU6ICcyJywgbmFtZTogJ0NvbnRhZG8nIH0sXG4gIF07XG4gIGZlZVJlc3BvbnNlOiBib29sZWFuID0gZmFsc2U7XG4gIHRoZXJlQXJlUGxhbnM6IGJvb2xlYW4gPSBmYWxzZTtcbiAgZGF0YVByaWNlczphbnk7XG4gIGlzRmluYW5jaW5nOiBib29sZWFuID0gZmFsc2U7XG4gIGlzQ2FsY3VsYXRlUXVvdGVzQnV0dG9uQ2xpY2tlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBkYXRhRmluYW5jaW5nOiBhbnlbXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLFxuICAgIHByaXZhdGUgbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgY29tbWVyY2lhbFNlcnZpY2U6IENvbW1lcmNpYWxTZXJ2aWNlLFxuICAgIHByaXZhdGUgYmFzZVNlcnZpY2U6IEJhc2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgY2FsY3VsYXRlUXVvdGVzU2VydmljZTogQ2FsY3VsYXRlUXVvdGVzU2VydmljZSkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5pbml0Rm9ybSgpO1xuICB9XG5cbiAgaW5pdEZvcm0oKSB7XG4gICAgdGhpcy5jb2RTZWxmRm9ybVN0ZXBUaHJlZSA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgcHJvZ3JhbV9wcmljZTogW3sgdmFsdWU6ICcnLCBkaXNhYmxlZDogdHJ1ZSB9LCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuICAgICAgcGF5bWVudF9kYXRlOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgICBwYXltZW50X21ldGhvZDogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuICAgICAgcXVvdGFfdGltZXM6IFt7IHZhbHVlOiAnJywgZGlzYWJsZWQ6IHRydWUgfSwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcbiAgICAgIHRvdGFsX3ByaWNlOiBbeyB2YWx1ZTogJycsIGRpc2FibGVkOiB0cnVlIH0sIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgICBwYWlkX2xldmVsOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgICBxdW90YV9wcmljZTogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuICAgICAgZmVlX251bWJlcjogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuICAgIH0pO1xuICB9XG4gIG9uUmVqZWN0KCkge1xuICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuY2xlYXIoJ2NvbmZpcm0nKTtcbiAgICB0aGlzLnZpc2libGUgPSBmYWxzZTtcbiAgfVxuXG4gIHNob3dDb25maXJtKCkge1xuICAgIGlmICghdGhpcy52aXNpYmxlKSB7XG4gICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHsga2V5OiAnY29uZmlybScsIHN0aWNreTogdHJ1ZSwgc2V2ZXJpdHk6ICdzdWNjZXNzJywgc3VtbWFyeTogJ0NhbiB5b3Ugc2VuZCBtZSB0aGUgcmVwb3J0PycsIGxpZmU6IDEwMDAwIH0pO1xuICAgICAgICB0aGlzLnZpc2libGUgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHNlbGVjdFBheW1lbnRNZXRob2QocGF5bWVudE1ldGhvZDogYW55KSB7XG4gICAgdGhpcy5mZWVSZXNwb25zZSA9IHRydWU7XG4gICAgdGhpcy50aGVyZUFyZVBsYW5zID0gZmFsc2U7XG5cbiAgICBpZiAocGF5bWVudE1ldGhvZCAhPT0gJycpIHtcbiAgICAgIGNvbnN0IHJlcXVlc3Q6IElPYnRhaW5Db2RQcmljZXNScSA9IHtcbiAgICAgICAgdG9rZW46ICAgICAgICAgICAgdGhpcy5iYXNlU2VydmljZS5nZXRVc2VyVG9rZW4oKSxcbiAgICAgICAgY291cnNlX3R5cGU6ICAgICAgTnVtYmVyKHRoaXMubG9jYWxTdG9yYWdlQ09ELmdldENvZEZvcm1EYXRhKDIsICdjb3Vyc2VfdHlwZScpKSxcbiAgICAgICAgYWdyZWVtZW50OiAgICAgICAgTnVtYmVyKHRoaXMubG9jYWxTdG9yYWdlQ09ELmdldENvZEZvcm1EYXRhKDIsICdhZ3JlZW1lbnRfYnlfY2F0ZWdvcnknKSksXG4gICAgICAgIGNvdXJzZV9tb2RhbGl0eTogIE51bWJlcih0aGlzLmxvY2FsU3RvcmFnZUNPRC5nZXRDb2RGb3JtRGF0YSgyLCAnY291cnNlX21vZGFsaXR5JykpLFxuICAgICAgICBwYXltZW50X21ldGhvZDogICBwYXJzZUludChwYXltZW50TWV0aG9kKVxuICAgICAgfVxuICAgICAgY29uc29sZS5sb2coXCJsaW5lYWxfODFcIixyZXF1ZXN0KTtcbiAgICAgIHRoaXMuY29tbWVyY2lhbFNlcnZpY2UuT2J0YWluQ29kUHJpY2VzQ29kU2VsZk1hbmFnZWQocmVxdWVzdCkuc3Vic2NyaWJlKChyZXNwb25zZSk9PiB7XG4gICAgICAgIGNvbnNvbGUubG9nKHJlc3BvbnNlKTtcbiAgICAgICAgaWYgKHJlc3BvbnNlLmRhdGEgIT0gbnVsbCkge1xuICAgICAgICAgIHRoaXMuZGF0YVByaWNlcyA9IHJlc3BvbnNlLmRhdGE7XG4gICAgICAgICAgdGhpcy5mZWVSZXNwb25zZSA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMudGhlcmVBcmVQbGFucyA9IHRydWU7XG4gICAgICAgIH1lbHNlIHtcbiAgICAgICAgICB0aGlzLnRoZXJlQXJlUGxhbnMgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLmZlZVJlc3BvbnNlID0gZmFsc2U7XG4gICAgICAgICAgU3dhbC5maXJlKHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiAnY2VudGVyJyxcbiAgICAgICAgICAgIGljb246ICd3YXJuaW5nJyxcbiAgICAgICAgICAgIHRpdGxlOlxuICAgICAgICAgICAgICAnPHAgc3R5bGU9XCJmb250LWZhbWlseTogUG9wcGluc1wiXCI+T29wcy4uIG5vIGhheSBwbGFuZXMgZGUgcGFnb3MsIFxcbiBlbiBlbCBjdXJzbyBlbGVnaWRvLjwvcD4nLFxuICAgICAgICAgICAgc2hvd0NvbmZpcm1CdXR0b246IGZhbHNlLFxuICAgICAgICAgICAgdGltZXI6IDMwMDAsXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgdGhpcy5jbGVhcklucHV0UGF5bWVudCgpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHRoaXMuY29kU2VsZkZvcm1TdGVwVGhyZWUuY29udHJvbHNbJ3BheW1lbnRfbWV0aG9kJ10uc2V0VmFsdWUocGF5bWVudE1ldGhvZCk7XG4gICAgICAvLyB0aGlzLmdldENvZFByaWNlc0J5QWdyZWVtZW50KCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY29kU2VsZkZvcm1TdGVwVGhyZWUuY29udHJvbHNbJ3BheW1lbnRfbWV0aG9kJ10uc2V0VmFsdWUobnVsbCk7XG4gICAgfVxuICB9XG5cbiAgY2xlYXJJbnB1dFBheW1lbnQoKXtcbiAgICB0aGlzLmNvZFNlbGZGb3JtU3RlcFRocmVlLmNvbnRyb2xzWydwcm9ncmFtX3ByaWNlJ10uc2V0VmFsdWUobnVsbCk7XG4gICAgdGhpcy5jb2RTZWxmRm9ybVN0ZXBUaHJlZS5jb250cm9sc1sncXVvdGFfdGltZXMnXS5zZXRWYWx1ZShudWxsKTtcbiAgICB0aGlzLmNvZFNlbGZGb3JtU3RlcFRocmVlLmNvbnRyb2xzWyd0b3RhbF9wcmljZSddLnNldFZhbHVlKG51bGwpO1xuICB9XG4gIGJhY2soKSB7XG4gICAgLy8gTW92ZXJub3MgYWwgcGFzbyBhbnRlcmlvclxuICAgIHRoaXMuY29tcGxldGVkLmVtaXQoMSk7XG4gIH1cblxuICBzZW5kRm9ybSgpIHtcbiAgICAvLyB0aGlzLmNvZFNlbGZGb3JtU3RlcFR3by5tYXJrQWxsQXNUb3VjaGVkKCk7XG4gICAgLy8gaWYgKHRoaXMuY29kU2VsZkZvcm1TdGVwVHdvLmludmFsaWQpIHJldHVybjtcblxuICAgIC8vIE1vdmVybm9zIGFsIHBhc28gM1xuICAgIHRoaXMuY29tcGxldGVkLmVtaXQoMyk7XG4gIH1cblxuICBzaG93VGFibGUoKSB7XG4gICAgdGhpcy5pc0NhbGN1bGF0ZVF1b3Rlc0J1dHRvbkNsaWNrZWQgPSB0cnVlO1xuICAgIGNvbnN0IHRvdGFsX3ByaWNlID0gdGhpcy5jb2RTZWxmRm9ybVN0ZXBUaHJlZS5jb250cm9sc1sndG90YWxfcHJpY2UnXS52YWx1ZTtcbiAgICBpZiAoKHRvdGFsX3ByaWNlID09PSAnbnVsbCcpIHx8IHRoaXMuY29kU2VsZkZvcm1TdGVwVGhyZWUuaW52YWxpZCkge1xuICAgICAgU3dhbC5maXJlKHtcbiAgICAgICAgdGl0bGU6ICdFcnJvciB0YWJsZScsXG4gICAgICAgIHRleHQ6ICdEZWJlcyBpbmdyZXNhciBlbCBtb250byB0b3RhbCBkZSBsYSBtYXRyw61jdWxhIHkgbGEgY3VvdGEgaW5pY2lhbCcsXG4gICAgICAgIGljb246ICdlcnJvcidcbiAgICAgIH0pXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gQ2FsY3VsYXIgY3VvdGFzXG4gICAgdGhpcy5kYXRhRmluYW5jaW5nID0gW107XG4gICAgLy8gY29uc3QgcXVvdGFWYWx1ZXMgPSB0aGlzLmNvZFByaWNlcy5maWx0ZXIoY29kUHJpY2UgPT4gY29kUHJpY2UuY29kZSA9PT0gTnVtYmVyKHRoaXMuY29kU2VsZkZvcm1TdGVwVGhyZWUuY29udHJvbHNbJ3F1b3RhX3RpbWVzJ10udmFsdWUpKVswXS5xdW90YV9wcmljZTtcbiAgICAvLyBsZXQgcGFyYW1zOiBDYWxjdWxhdGVRdW90ZXNQYXJhbXMgPSB7XG4gICAgLy8gICBkYXRlOiBuZXcgRGF0ZSh0aGlzLmNvZFNlbGZGb3JtU3RlcFRocmVlLmNvbnRyb2xzWydwYXltZW50X2RhdGUnXS52YWx1ZSksXG4gICAgLy8gICBxdW90YVZhbHVlcyxcbiAgICAvLyAgIHF1b3RhVGltZXM6IHRoaXMuY29kUHJpY2VzLmZpbHRlcihjb2RQcmljZSA9PiBjb2RQcmljZS5jb2RlID09PSBOdW1iZXIodGhpcy5jb2RTZWxmRm9ybVN0ZXBUaHJlZS5jb250cm9sc1sncXVvdGFfdGltZXMnXS52YWx1ZSkpWzBdLmZlZV9udW1iZXIsXG4gICAgLy8gICB0b3RhbFByaWNlOiB0aGlzLmNvZFNlbGZGb3JtU3RlcFRocmVlLmNvbnRyb2xzWyd0b3RhbF9wcmljZSddLnZhbHVlLFxuICAgIC8vIH1cblxuICAgIGxldCBwYXJhbXM6IENhbGN1bGF0ZVF1b3Rlc1BhcmFtcyA9IHtcbiAgICAgIGRhdGU6IG5ldyBEYXRlKHRoaXMuY29kU2VsZkZvcm1TdGVwVGhyZWUuY29udHJvbHNbJ3BheW1lbnRfZGF0ZSddLnZhbHVlKSxcbiAgICAgIHF1b3RhVmFsdWVzOiBOdW1iZXIodGhpcy5jb2RTZWxmRm9ybVN0ZXBUaHJlZS5jb250cm9sc1sncXVvdGFfcHJpY2UnXS52YWx1ZSksXG4gICAgICBxdW90YVRpbWVzOiBOdW1iZXIodGhpcy5jb2RTZWxmRm9ybVN0ZXBUaHJlZS5jb250cm9sc1snZmVlX251bWJlciddLnZhbHVlKSxcbiAgICAgIHRvdGFsUHJpY2U6IHRoaXMuY29kU2VsZkZvcm1TdGVwVGhyZWUuY29udHJvbHNbJ3RvdGFsX3ByaWNlJ10udmFsdWUsXG4gICAgfVxuXG4gICAgdGhpcy5kYXRhRmluYW5jaW5nID0gdGhpcy5jYWxjdWxhdGVRdW90ZXNTZXJ2aWNlLmNhbGN1bGF0ZVF1b3RlcyhwYXJhbXMpO1xuICAgIHRoaXMuaXNGaW5hbmNpbmcgPSB0cnVlO1xuICAgIHRoaXMuZmluYW5jaW5nRGF0YS5lbWl0KHRoaXMuZGF0YUZpbmFuY2luZyk7XG4gIH1cblxuICBjYWxjdWxhdGVOZXdRdW90ZXMoKSB7XG4gICAgdGhpcy5pc0NhbGN1bGF0ZVF1b3Rlc0J1dHRvbkNsaWNrZWQgPSBmYWxzZTtcbiAgICB0aGlzLmlzRmluYW5jaW5nID0gZmFsc2U7XG4gICAgdGhpcy5maW5hbmNpbmdEYXRhLmVtaXQobnVsbCk7XG4gIH1cblxuICBzZWxlY3RMZXZlbHMoZGF0YVBheW1lbnQ6IGFueSl7XG4gICAgaWYgKHRoaXMuY29kU2VsZkZvcm1TdGVwVGhyZWUuZ2V0KCdwYXltZW50X21ldGhvZCcpPy52YWx1ZSA9PSAxKSB7XG4gICAgICB0aGlzLmNvZFNlbGZGb3JtU3RlcFRocmVlLmNvbnRyb2xzWydxdW90YV90aW1lcyddLnNldFZhbHVlKGRhdGFQYXltZW50LmNvZGUpO1xuICAgICAgdGhpcy5jb2RTZWxmRm9ybVN0ZXBUaHJlZS5jb250cm9sc1sndG90YWxfcHJpY2UnXS5zZXRWYWx1ZShkYXRhUGF5bWVudC5lbnJvbGxtZW50KTtcbiAgICAgIHRoaXMuY29kU2VsZkZvcm1TdGVwVGhyZWUuY29udHJvbHNbJ3Byb2dyYW1fcHJpY2UnXS5zZXRWYWx1ZShkYXRhUGF5bWVudC5maW5hbmNlZF9wcmljZSk7XG4gICAgICB0aGlzLmNvZFNlbGZGb3JtU3RlcFRocmVlLmNvbnRyb2xzWydwYWlkX2xldmVsJ10uc2V0VmFsdWUoZGF0YVBheW1lbnQucGFpZF9sZXZlbCAtIDEpO1xuICAgICAgdGhpcy5jb2RTZWxmRm9ybVN0ZXBUaHJlZS5jb250cm9sc1snZmVlX251bWJlciddLnNldFZhbHVlKGRhdGFQYXltZW50LmZlZV9udW1iZXIpO1xuICAgICAgdGhpcy5jb2RTZWxmRm9ybVN0ZXBUaHJlZS5jb250cm9sc1sncXVvdGFfcHJpY2UnXS5zZXRWYWx1ZShkYXRhUGF5bWVudC5xdW90YV9wcmljZSk7XG4gICAgICB0aGlzLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICB9IGVsc2UgaWYodGhpcy5jb2RTZWxmRm9ybVN0ZXBUaHJlZS5nZXQoJ3BheW1lbnRfbWV0aG9kJyk/LnZhbHVlID09IDIpe1xuICAgICAgdGhpcy5jb2RTZWxmRm9ybVN0ZXBUaHJlZS5jb250cm9sc1sncXVvdGFfdGltZXMnXS5zZXRWYWx1ZShkYXRhUGF5bWVudC5jb2RlKTtcbiAgICAgIHRoaXMuY29kU2VsZkZvcm1TdGVwVGhyZWUuY29udHJvbHNbJ3RvdGFsX3ByaWNlJ10uc2V0VmFsdWUoZGF0YVBheW1lbnQuZW5yb2xsbWVudCk7XG4gICAgICB0aGlzLmNvZFNlbGZGb3JtU3RlcFRocmVlLmNvbnRyb2xzWydwcm9ncmFtX3ByaWNlJ10uc2V0VmFsdWUoZGF0YVBheW1lbnQubm9ybWFsX3ByaWNlKTtcbiAgICAgIHRoaXMuY29kU2VsZkZvcm1TdGVwVGhyZWUuY29udHJvbHNbJ3BhaWRfbGV2ZWwnXS5zZXRWYWx1ZShkYXRhUGF5bWVudC5wYWlkX2xldmVsIC0gMSk7XG4gICAgICB0aGlzLmNvZFNlbGZGb3JtU3RlcFRocmVlLmNvbnRyb2xzWydmZWVfbnVtYmVyJ10uc2V0VmFsdWUoZGF0YVBheW1lbnQuZmVlX251bWJlcik7XG4gICAgICB0aGlzLmNvZFNlbGZGb3JtU3RlcFRocmVlLmNvbnRyb2xzWydxdW90YV9wcmljZSddLnNldFZhbHVlKGRhdGFQYXltZW50LnF1b3RhX3ByaWNlKTtcbiAgICAgIHRoaXMudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgIH1cbiAgfVxuXG4gIHVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKSB7XG4gICAgdGhpcy5jb2RTZWxmRm9ybVN0ZXBUaHJlZS5jb250cm9sc1sncHJvZ3JhbV9wcmljZSddLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICB0aGlzLmNvZFNlbGZGb3JtU3RlcFRocmVlLmNvbnRyb2xzWydwYXltZW50X2RhdGUnXS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgdGhpcy5jb2RTZWxmRm9ybVN0ZXBUaHJlZS5jb250cm9sc1sncXVvdGFfdGltZXMnXS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgdGhpcy5jb2RTZWxmRm9ybVN0ZXBUaHJlZS5jb250cm9sc1sndG90YWxfcHJpY2UnXS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gIH1cblxufVxuIiwiPGRpdiBjbGFzcz1cImNvbnRhaW5lci1tYWluXCI+XG4gIDxkaXYgY2xhc3M9XCJjb250YWluZXItZm9ybVwiPlxuICAgIDxoMj5QYWdvczwvaDI+XG4gICAgPHAtdG9hc3QgcG9zaXRpb249XCJ0b3AtY2VudGVyXCIga2V5PVwiY29uZmlybVwiIChvbkNsb3NlKT1cIm9uUmVqZWN0KClcIiBbYmFzZVpJbmRleF09XCIxMFwiPlxuICAgICAgPG5nLXRlbXBsYXRlIGxldC1tZXNzYWdlIHBUZW1wbGF0ZT1cIm1lc3NhZ2VcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbHVtbiBhbGlnbi1pdGVtcy1zdGFydFwiIHN0eWxlPVwiZmxleDogMVwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTJcIj5cbiAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiaHR0cHM6Ly9xYS5pcHRkZXYuY29tLmNvL2Fzc2V0cy9sb2dvcy9yZWFkaW5nLnBuZ1wiIHN0eWxlPVwid2lkdGg6IDY1cHg7XCIgc2hhcGU9XCJjaXJjbGVcIiAvPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmb250LWJvbGQgdGV4dC05MDBcIj5KYWNvYjwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb250LW1lZGl1bSB0ZXh0LWxnIG15LTMgdGV4dC05MDBcIj57eyBtZXNzYWdlSW5mbyB9fTwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9wLXRvYXN0PlxuICA8aSBjbGFzcz1cInBpIHBpLWV4Y2xhbWF0aW9uLWNpcmNsZSBjdXJzb3ItcG9pbnRlciB3LWF1dG8gbWItNFwiIChjbGljayk9XCJzaG93Q29uZmlybSgpXCIgcFRvb2x0aXA9XCJNYXMgaW5mby5cIiB0b29sdGlwUG9zaXRpb249XCJib3R0b21cIj48L2k+XG5cbiAgPGZvcm0gYXV0b2NvbXBsZXRlPVwib2ZmXCIgW2Zvcm1Hcm91cF09XCJjb2RTZWxmRm9ybVN0ZXBUaHJlZVwiIGNsYXNzPVwiZ3JpZCBtdC0yXCI+XG5cbiAgICA8ZGl2IGNsYXNzPVwiY29sLTEyXCI+XG4gICAgICA8aXB0LXNlbGVjdFxuICAgICAgICBbaW5pdGlhbFZhbHVlXT1cImNvZFNlbGZGb3JtU3RlcFRocmVlLmNvbnRyb2xzWydwYXltZW50X21ldGhvZCddLnZhbHVlXCJcbiAgICAgICAgW2NvbnRyb2xdPVwiY29kU2VsZkZvcm1TdGVwVGhyZWUuY29udHJvbHNbJ3BheW1lbnRfbWV0aG9kJ11cIlxuICAgICAgICAoZXZlbnRTZWxlY3QpPVwic2VsZWN0UGF5bWVudE1ldGhvZCgkZXZlbnQpXCJcbiAgICAgICAgW2RhdGFdPVwicGF5bWVudE1ldGhvZHNcIlxuICAgICAgICBbZGVmYXVsdFRleHRdPVwiJ03DqXRvZG8gZGUgcGFnbydcIlxuICAgICAgPjwvaXB0LXNlbGVjdD5cbiAgICAgIDxpcHQtbG9hZGVyICpuZ0lmPVwiZmVlUmVzcG9uc2VcIj48L2lwdC1sb2FkZXI+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTJcIiAqbmdJZj1cInRoZXJlQXJlUGxhbnNcIj5cbiAgICAgICAgPHAtdGFibGVcbiAgICAgICAgICBbdmFsdWVdPVwiZGF0YVByaWNlc1wiXG4gICAgICAgICAgW3RhYmxlU3R5bGVdPVwieydtaW4td2lkdGgnOiAnMTAwJSd9XCJcbiAgICAgICAgICBbcm93SG92ZXJdPVwidHJ1ZVwiXG4gICAgICAgID5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiY2FwdGlvblwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICAgICBTZWxlY2Npb24gZGUgbml2ZWxlcyBhIGNhbmNlbGFyLlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiaGVhZGVyXCI+XG4gICAgICAgICAgICA8dHI+XG4gICAgICAgICAgICAgIDx0aCBjbGFzcz1cImJnLWJsdWUtMjAwIHRleHQtY2VudGVyIGZvbnQtbWVkaXVtIHB0LTIgcGItMlwiPkNhbmNlbGFyPC90aD5cbiAgICAgICAgICAgICAgPHRoIGNsYXNzPVwiYmctYmx1ZS0yMDAgdGV4dC1jZW50ZXIgZm9udC1tZWRpdW0gcHQtMiBwYi0yXCI+Q3VvdGFzPC90aD5cbiAgICAgICAgICAgICAgPHRoIGNsYXNzPVwiYmctYmx1ZS0yMDAgdGV4dC1jZW50ZXIgZm9udC1tZWRpdW0gcHQtMiBwYi0yXCI+QWRtaW48L3RoPlxuICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJib2R5XCIgbGV0LWRhdGE+XG4gICAgICAgICAgICA8dHI+XG4gICAgICAgICAgICAgIDx0ZD57eyBkYXRhLnBhaWRfbGV2ZWwgfX0gTml2ZWwoZXMpPC90ZD5cbiAgICAgICAgICAgICAgPHRkPnt7IGRhdGEuZmVlX251bWJlciB9fTwvdGQ+XG4gICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInB0LTIgcGItMlwiPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgIHBCdXR0b25cbiAgICAgICAgICAgICAgICAgIHBSaXBwbGVcbiAgICAgICAgICAgICAgICAgIGljb249XCJwaSBwaS1tb25leS1iaWxsXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwicC1idXR0b24tc20gcC1idXR0b24tcm91bmRlZFwiXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0TGV2ZWxzKGRhdGEpXCJcblxuICAgICAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9wLXRhYmxlPlxuICAgICAgPC9kaXY+XG5cblxuICAgICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiY29sLTEyXCI+XG4gICAgICA8aXB0LWlucHV0XG4gICAgICAgIFtpbnB1dFR5cGVdPVwiJ3RleHQnXCJcbiAgICAgICAgW3BsYWNlSG9sZGVyXT1cIidNb250byB0b3RhbCBkZSBsYSBtYXRyw61jdWxhJ1wiXG4gICAgICAgIFtjb250cm9sXT1cImNvZFNlbGZGb3JtU3RlcFRocmVlLmNvbnRyb2xzWyd0b3RhbF9wcmljZSddXCJcbiAgICAgICAgW3dpdGhQaXBlXT1cInRydWVcIlxuICAgICAgPjwvaXB0LWlucHV0PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImNvbC0xMlwiPlxuICAgICAgPGlwdC1pbnB1dFxuICAgICAgICBbd2l0aFBpcGVdPVwidHJ1ZVwiXG4gICAgICAgIFtpbnB1dFR5cGVdPVwiJ3RleHQnXCJcbiAgICAgICAgW2NvbnRyb2xdPVwiY29kU2VsZkZvcm1TdGVwVGhyZWUuY29udHJvbHNbJ3Byb2dyYW1fcHJpY2UnXVwiXG4gICAgICAgIFtwbGFjZUhvbGRlcl09XCInVmFsb3IgdG90YWwgZGVsIHByb2dyYW1hJ1wiXG4gICAgICA+PC9pcHQtaW5wdXQ+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiY29sLTEyXCI+XG4gICAgICA8aXB0LWlucHV0XG4gICAgICAgIG9uZm9jdXM9XCIodGhpcy50eXBlPSdkYXRlJylcIlxuICAgICAgICBbaW5wdXRUeXBlXT1cIidkYXRlJ1wiXG4gICAgICAgIFtjb250cm9sXT1cImNvZFNlbGZGb3JtU3RlcFRocmVlLmNvbnRyb2xzWydwYXltZW50X2RhdGUnXVwiXG4gICAgICAgIFtwbGFjZUhvbGRlcl09XCInRmVjaGEgZGUgcGFnbydcIlxuICAgICAgPjwvaXB0LWlucHV0PlxuICAgIDwvZGl2PlxuXG4gICAgPCEtLSBUYWJsYSBkZSBmaW5hbmNpYWNpw7NuIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJjb2wtMTJcIiAqbmdJZj1cImlzRmluYW5jaW5nXCI+XG4gICAgICA8cC10YWJsZVxuICAgICAgICBbdmFsdWVdPVwiZGF0YUZpbmFuY2luZ1wiXG4gICAgICAgIFt0YWJsZVN0eWxlXT1cInsnbWluLXdpZHRoJzogJzEwMCUnfVwiXG4gICAgICAgIFtyb3dIb3Zlcl09XCJ0cnVlXCJcbiAgICAgID5cbiAgICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImNhcHRpb25cIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgIEPDoWxjdWxvIGRlIGN1b3Rhc1xuICAgICAgICAgICAgPGJ1dHRvbiBwQnV0dG9uIGNsYXNzPVwicC1idXR0b24tc20gbWwtYXV0b1wiIGxhYmVsPVwiTnVldm8gY8OhbGN1bG9cIiAoY2xpY2spPVwiY2FsY3VsYXRlTmV3UXVvdGVzKClcIiBsYWIgaWNvbj1cInBpIHBpLXJlcGxheVwiPjwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiaGVhZGVyXCI+XG4gICAgICAgICAgPHRyPlxuICAgICAgICAgICAgPHRoPiM8L3RoPlxuICAgICAgICAgICAgPHRoPlZhbG9yPC90aD5cbiAgICAgICAgICAgIDx0aD5GZWNoYTwvdGg+XG4gICAgICAgICAgPC90cj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImJvZHlcIiBsZXQtZGF0YT5cbiAgICAgICAgICA8dHI+XG4gICAgICAgICAgICA8dGQ+e3sgZGF0YVswXSB9fTwvdGQ+XG4gICAgICAgICAgICA8dGQ+e3sgZGF0YVsxXSB9fTwvdGQ+XG4gICAgICAgICAgICA8dGQ+e3sgZGF0YVsyXSB9fTwvdGQ+XG4gICAgICAgICAgPC90cj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvcC10YWJsZT5cbiAgICA8L2Rpdj5cbiAgICA8IS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gLS0+XG5cbiAgPC9mb3JtPlxuICA8L2Rpdj5cblxuXG48ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBtdC0zIGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtM1wiPlxuICA8IS0tIDxzcGFuICpuZ0lmPVwiY29kU2VsZkZvcm1TdGVwT25lLmludmFsaWQgJiYgY29kU2VsZkZvcm1TdGVwT25lLnRvdWNoZWRcIiBjbGFzcz1cInRleHQtcmVkLTUwMCBmb250LWJvbGQgdGV4dC1jZW50ZXIgbXQtMSBweS0yIGJnLXJlZC0xMDAgdy1mdWxsIGJvcmRlci1yb3VuZC14bFwiPnt7IGVycm9yTWVzc2FnZSB9fTwvc3Bhbj4gLS0+XG4gIDxidXR0b25cbiAgcEJ1dHRvblxuICBpY29uPVwicGkgcGktYXJyb3ctbGVmdFwiXG4gIHR5cGU9XCJzdWJtaXRcIlxuICAoY2xpY2spPVwiYmFjaygpXCJcbiAgPjwvYnV0dG9uPlxuXG4gIDxidXR0b25cbiAgcEJ1dHRvblxuICBpY29uPVwicGkgcGktYXJyb3ctcmlnaHRcIlxuICAoY2xpY2spPVwic2VuZEZvcm0oKVwiXG4gID48L2J1dHRvbj5cbjwvZGl2PlxuPC9kaXY+XG4iXX0=
204
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kLXNlbGYtZm9ybS1zdGVwLXRocmVlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2Rlc2lnbi1zeXN0ZW0vc3JjL2xpYi9jb2Qtc2VsZi1tYW5hZ2VkL3N0ZXBzL2NvZC1mb3JtLXN0ZXAtdGhyZWUvY29kLXNlbGYtZm9ybS1zdGVwLXRocmVlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2Rlc2lnbi1zeXN0ZW0vc3JjL2xpYi9jb2Qtc2VsZi1tYW5hZ2VkL3N0ZXBzL2NvZC1mb3JtLXN0ZXAtdGhyZWUvY29kLXNlbGYtZm9ybS1zdGVwLXRocmVlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBS2pGLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUV4RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN6RSxPQUFPLEVBQWEsVUFBVSxFQUFlLE1BQU0sZ0JBQWdCLENBQUM7QUFFcEUsT0FBTyxJQUFJLE1BQU0sYUFBYSxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7QUFPL0IsTUFBTSxPQUFPLDZCQUE4QixTQUFRLG1CQUFtQjtJQW9CcEUsWUFDVSxFQUFlLEVBQ2YsY0FBOEIsRUFDOUIsaUJBQW9DLEVBQ3BDLFdBQXdCLEVBQ3hCLHNCQUE4QztRQUN0RCxLQUFLLEVBQUUsQ0FBQztRQUxBLE9BQUUsR0FBRixFQUFFLENBQWE7UUFDZixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QiwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO1FBdkI5QyxjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQVUs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QUFDO1lBQ3BGLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1NBQy9CO0lBQ0gsQ0FBQztJQUVELHNCQUFzQjtRQUNwQixJQUFJLENBQUMsb0JBQW9CLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxDQUFDLHNCQUFzQixFQUFFLENBQUM7UUFDN0UsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1FBQzVFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUMzRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDLHNCQUFzQixFQUFFLENBQUM7SUFDN0UsQ0FBQzs7MEhBN0xVLDZCQUE2Qjs4R0FBN0IsNkJBQTZCLGdLQ2pCMUMsdy9KQWtKQTsyRkRqSWEsNkJBQTZCO2tCQUx6QyxTQUFTOytCQUNFLDhCQUE4Qjs4TkFNOUIsU0FBUztzQkFBbEIsTUFBTTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29kU2VsZk1hbmFnZWRDb250cm9scyB9IGZyb20gJy4vLi4vLi4vbG9naWMvY29kLXNlbGYtbWFuYWdlZC1jb250cm9scyc7XG5pbXBvcnQgeyBsb2NhbFN0b3JhZ2VWYWx1ZXNUd28gfSBmcm9tICcuLy4uLy4uL2xvZ2ljL2NvZC1zZWxmLW1hbmFnZWQtc3RlcHMnO1xuaW1wb3J0IHsgQ2FsY3VsYXRlUXVvdGVzUGFyYW1zLCBDYWxjdWxhdGVRdW90ZXNTZXJ2aWNlIH0gZnJvbSAnLi8uLi8uLi8uLi9jb2QvbG9naWMvY2FsY3VsYXRlLXF1b3Rlcy5zZXJ2aWNlJztcbmltcG9ydCB7IEJhc2VTZXJ2aWNlIH0gZnJvbSAnLi8uLi8uLi8uLi9jb3JlL3V0aWxzL2Jhc2Utc2VydmljZS9iYXNlLnNlcnZpY2UnO1xuaW1wb3J0IHsgSU9idGFpbkNvZFByaWNlc1JxIH0gZnJvbSAnLi8uLi8uLi8uLi9jb3JlL21vZGVscy9jb21tZXJjaWFsL2NvbW1lcmNpYWwubW9kZWwnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIE91dHB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNZXNzYWdlU2VydmljZSB9IGZyb20gJ3ByaW1lbmcvYXBpJztcbmltcG9ydCB7IENvZFNlbGZNYW5hZ2VkU3RlcHMgfSBmcm9tICcuLi8uLi9sb2dpYy9jb2Qtc2VsZi1tYW5hZ2VkLXN0ZXBzJztcbmltcG9ydCB7IEZvcm1Hcm91cCwgVmFsaWRhdG9ycywgRm9ybUJ1aWxkZXIgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDb21tZXJjaWFsU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2NvcmUvc2VydmljZXMvY29tbWVyY2lhbC1zZXJ2aWNlL2NvbWVyY2lhbC5zZXJ2aWNlJztcbmltcG9ydCBTd2FsIGZyb20gJ3N3ZWV0YWxlcnQyJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWNvZC1zZWxmLWZvcm0tc3RlcC10aHJlZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb2Qtc2VsZi1mb3JtLXN0ZXAtdGhyZWUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jb2Qtc2VsZi1mb3JtLXN0ZXAtdGhyZWUuY29tcG9uZW50LmNzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBDb2RTZWxmRm9ybVN0ZXBUaHJlZUNvbXBvbmVudCBleHRlbmRzIENvZFNlbGZNYW5hZ2VkU3RlcHMgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIEBPdXRwdXQoKSBjb21wbGV0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcbiAgQE91dHB1dCgpIGZpbmFuY2luZ0RhdGEgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBjb250cm9scyA9IG5ldyBDb2RTZWxmTWFuYWdlZENvbnRyb2xzKCkuY29udHJvbHNbMl07XG4gIG1lc3NhZ2VJbmZvOnN0cmluZyA9IFwiXCJcbiAgdmlzaWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuICBjb2RTZWxmRm9ybVN0ZXBUaHJlZSE6IEZvcm1Hcm91cDtcbiAgcGF5bWVudE1ldGhvZHM6IGFueVtdID0gW1xuICAgIHsgY29kZTogJzEnLCBuYW1lOiAnRmluYW5jaWFkbycgfSxcbiAgICB7IGNvZGU6ICcyJywgbmFtZTogJ0NvbnRhZG8nIH0sXG4gIF07XG4gIGZlZVJlc3BvbnNlOiBib29sZWFuID0gZmFsc2U7XG4gIHRoZXJlQXJlUGxhbnM6IGJvb2xlYW4gPSBmYWxzZTtcbiAgZGF0YVByaWNlczphbnk7XG4gIGlzRmluYW5jaW5nOiBib29sZWFuID0gZmFsc2U7XG4gIGlzQ2FsY3VsYXRlUXVvdGVzQnV0dG9uQ2xpY2tlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBkYXRhRmluYW5jaW5nOiBhbnlbXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLFxuICAgIHByaXZhdGUgbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgY29tbWVyY2lhbFNlcnZpY2U6IENvbW1lcmNpYWxTZXJ2aWNlLFxuICAgIHByaXZhdGUgYmFzZVNlcnZpY2U6IEJhc2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgY2FsY3VsYXRlUXVvdGVzU2VydmljZTogQ2FsY3VsYXRlUXVvdGVzU2VydmljZSkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5pbml0Rm9ybSgpO1xuICB9XG5cbiAgaW5pdEZvcm0oKSB7XG4gICAgY29uc3QgY3VycmVudERhdGUgPSBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCkuc3BsaXQoJ1QnKVswXTtcbiAgICB0aGlzLmNvZFNlbGZGb3JtU3RlcFRocmVlID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICBwcm9ncmFtX3ByaWNlOiBbeyB2YWx1ZTogJycsIGRpc2FibGVkOiB0cnVlIH0sIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgICBwYXltZW50X2RhdGU6IFtjdXJyZW50RGF0ZSwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcbiAgICAgIHBheW1lbnRfbWV0aG9kOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgICBxdW90YV90aW1lczogW3sgdmFsdWU6ICcnLCBkaXNhYmxlZDogdHJ1ZSB9LCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuICAgICAgdG90YWxfcHJpY2U6IFt7IHZhbHVlOiAnJywgZGlzYWJsZWQ6IHRydWUgfSwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcbiAgICAgIHBhaWRfbGV2ZWw6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcbiAgICAgIHF1b3RhX3ByaWNlOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgICBmZWVfbnVtYmVyOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgfSk7XG4gIH1cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zdGFydExvY2FsU3RvcmFnZVdvcmsoKTtcbiAgICAvLyB0aGlzLnZhbHVlc0luaXRpYWxTY2hlZHVsZSgpO1xuICB9XG4gIHN0YXJ0TG9jYWxTdG9yYWdlV29yaygpIHtcbiAgICB0aGlzLmNvbnRyb2xzLmZvckVhY2goY29udHJvbCA9PiB7XG4gICAgICBsZXQgbG9jYWxTdG9yYWdlVmFsdWU6IGxvY2FsU3RvcmFnZVZhbHVlc1R3byA9IHRoaXMucmVhZEFuZFdyaXRlTFMoMiwgY29udHJvbC5uYW1lKTtcbiAgICAgIHRoaXMuY29kU2VsZkZvcm1TdGVwVGhyZWUuY29udHJvbHNbY29udHJvbC5uYW1lXS5zZXRWYWx1ZShsb2NhbFN0b3JhZ2VWYWx1ZS52YWx1ZSk7XG4gICAgICB0aGlzLmxpc3RlbkZvcm1DaGFuZ2VzKDIsIGNvbnRyb2wubmFtZSwgdGhpcy5jb2RTZWxmRm9ybVN0ZXBUaHJlZS5jb250cm9sc1tjb250cm9sLm5hbWVdLnZhbHVlQ2hhbmdlcyk7XG4gICAgfSk7XG4gIH1cbiAgb25SZWplY3QoKSB7XG4gICAgdGhpcy5tZXNzYWdlU2VydmljZS5jbGVhcignY29uZmlybScpO1xuICAgIHRoaXMudmlzaWJsZSA9IGZhbHNlO1xuICB9XG5cbiAgc2hvd0NvbmZpcm0oKSB7XG4gICAgaWYgKCF0aGlzLnZpc2libGUpIHtcbiAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoeyBrZXk6ICdjb25maXJtJywgc3RpY2t5OiB0cnVlLCBzZXZlcml0eTogJ3N1Y2Nlc3MnLCBzdW1tYXJ5OiAnQ2FuIHlvdSBzZW5kIG1lIHRoZSByZXBvcnQ/JywgbGlmZTogMTAwMDAgfSk7XG4gICAgICAgIHRoaXMudmlzaWJsZSA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgc2VsZWN0UGF5bWVudE1ldGhvZChwYXltZW50TWV0aG9kOiBhbnkpIHtcbiAgICB0aGlzLmZlZVJlc3BvbnNlID0gdHJ1ZTtcbiAgICB0aGlzLnRoZXJlQXJlUGxhbnMgPSBmYWxzZTtcblxuICAgIGlmIChwYXltZW50TWV0aG9kICE9PSAnJykge1xuICAgICAgY29uc3QgcmVxdWVzdDogSU9idGFpbkNvZFByaWNlc1JxID0ge1xuICAgICAgICB0b2tlbjogICAgICAgICAgICB0aGlzLmJhc2VTZXJ2aWNlLmdldFVzZXJUb2tlbigpLFxuICAgICAgICBjb3Vyc2VfdHlwZTogICAgICBOdW1iZXIodGhpcy5sb2NhbFN0b3JhZ2VDT0QuZ2V0Q29kRm9ybURhdGEoMiwgJ2NvdXJzZV90eXBlJykpLFxuICAgICAgICBhZ3JlZW1lbnQ6ICAgICAgICBOdW1iZXIodGhpcy5sb2NhbFN0b3JhZ2VDT0QuZ2V0Q29kRm9ybURhdGEoMSwgJ2FncmVlbWVudF9ieV9jYXRlZ29yeScpKSxcbiAgICAgICAgY291cnNlX21vZGFsaXR5OiAgTnVtYmVyKHRoaXMubG9jYWxTdG9yYWdlQ09ELmdldENvZEZvcm1EYXRhKDIsICdjb3Vyc2VfbW9kYWxpdHknKSksXG4gICAgICAgIHBheW1lbnRfbWV0aG9kOiAgIHBhcnNlSW50KHBheW1lbnRNZXRob2QpXG4gICAgICB9XG4gICAgICBjb25zb2xlLmxvZyhcImxpbmVhbF84MVwiLHJlcXVlc3QpO1xuICAgICAgdGhpcy5jb21tZXJjaWFsU2VydmljZS5PYnRhaW5Db2RQcmljZXNDb2RTZWxmTWFuYWdlZChyZXF1ZXN0KS5zdWJzY3JpYmUoKHJlc3BvbnNlKT0+IHtcbiAgICAgICAgY29uc29sZS5sb2cocmVzcG9uc2UpO1xuICAgICAgICBpZiAocmVzcG9uc2UuZGF0YSAhPSBudWxsKSB7XG4gICAgICAgICAgdGhpcy5kYXRhUHJpY2VzID0gcmVzcG9uc2UuZGF0YTtcbiAgICAgICAgICB0aGlzLmZlZVJlc3BvbnNlID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy50aGVyZUFyZVBsYW5zID0gdHJ1ZTtcbiAgICAgICAgfWVsc2Uge1xuICAgICAgICAgIHRoaXMudGhlcmVBcmVQbGFucyA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMuZmVlUmVzcG9uc2UgPSBmYWxzZTtcbiAgICAgICAgICBTd2FsLmZpcmUoe1xuICAgICAgICAgICAgcG9zaXRpb246ICdjZW50ZXInLFxuICAgICAgICAgICAgaWNvbjogJ3dhcm5pbmcnLFxuICAgICAgICAgICAgdGl0bGU6XG4gICAgICAgICAgICAgICc8cCBzdHlsZT1cImZvbnQtZmFtaWx5OiBQb3BwaW5zXCJcIj5Pb3BzLi4gbm8gaGF5IHBsYW5lcyBkZSBwYWdvcywgXFxuIGVuIGVsIGN1cnNvIGVsZWdpZG8uPC9wPicsXG4gICAgICAgICAgICBzaG93Q29uZmlybUJ1dHRvbjogZmFsc2UsXG4gICAgICAgICAgICB0aW1lcjogMzAwMCxcbiAgICAgICAgICB9KTtcbiAgICAgICAgICB0aGlzLmNsZWFySW5wdXRQYXltZW50KCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgdGhpcy5jb2RTZWxmRm9ybVN0ZXBUaHJlZS5jb250cm9sc1sncGF5bWVudF9tZXRob2QnXS5zZXRWYWx1ZShwYXltZW50TWV0aG9kKTtcbiAgICAgIC8vIHRoaXMuZ2V0Q29kUHJpY2VzQnlBZ3JlZW1lbnQoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jb2RTZWxmRm9ybVN0ZXBUaHJlZS5jb250cm9sc1sncGF5bWVudF9tZXRob2QnXS5zZXRWYWx1ZShudWxsKTtcbiAgICB9XG4gIH1cblxuICBjbGVhcklucHV0UGF5bWVudCgpe1xuICAgIHRoaXMuY29kU2VsZkZvcm1TdGVwVGhyZWUuY29udHJvbHNbJ3Byb2dyYW1fcHJpY2UnXS5zZXRWYWx1ZShudWxsKTtcbiAgICB0aGlzLmNvZFNlbGZGb3JtU3RlcFRocmVlLmNvbnRyb2xzWydxdW90YV90aW1lcyddLnNldFZhbHVlKG51bGwpO1xuICAgIHRoaXMuY29kU2VsZkZvcm1TdGVwVGhyZWUuY29udHJvbHNbJ3RvdGFsX3ByaWNlJ10uc2V0VmFsdWUobnVsbCk7XG4gIH1cbiAgYmFjaygpIHtcbiAgICAvLyBNb3Zlcm5vcyBhbCBwYXNvIGFudGVyaW9yXG4gICAgdGhpcy5jb21wbGV0ZWQuZW1pdCgxKTtcbiAgfVxuXG4gIHNlbmRGb3JtKCkge1xuICAgIC8vIHRoaXMuY29kU2VsZkZvcm1TdGVwVHdvLm1hcmtBbGxBc1RvdWNoZWQoKTtcbiAgICAvLyBpZiAodGhpcy5jb2RTZWxmRm9ybVN0ZXBUd28uaW52YWxpZCkgcmV0dXJuO1xuXG4gICAgLy8gTW92ZXJub3MgYWwgcGFzbyAzXG4gICAgdGhpcy5jb21wbGV0ZWQuZW1pdCgzKTtcbiAgfVxuXG4gIHNob3dUYWJsZSgpIHtcbiAgICB0aGlzLmlzQ2FsY3VsYXRlUXVvdGVzQnV0dG9uQ2xpY2tlZCA9IHRydWU7XG4gICAgY29uc3QgdG90YWxfcHJpY2UgPSB0aGlzLmNvZFNlbGZGb3JtU3RlcFRocmVlLmNvbnRyb2xzWyd0b3RhbF9wcmljZSddLnZhbHVlO1xuICAgIGlmICgodG90YWxfcHJpY2UgPT09ICdudWxsJykgfHwgdGhpcy5jb2RTZWxmRm9ybVN0ZXBUaHJlZS5pbnZhbGlkKSB7XG4gICAgICBTd2FsLmZpcmUoe1xuICAgICAgICB0aXRsZTogJ0Vycm9yIHRhYmxlJyxcbiAgICAgICAgdGV4dDogJ0RlYmVzIGluZ3Jlc2FyIGVsIG1vbnRvIHRvdGFsIGRlIGxhIG1hdHLDrWN1bGEgeSBsYSBjdW90YSBpbmljaWFsJyxcbiAgICAgICAgaWNvbjogJ2Vycm9yJ1xuICAgICAgfSlcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBDYWxjdWxhciBjdW90YXNcbiAgICB0aGlzLmRhdGFGaW5hbmNpbmcgPSBbXTtcbiAgICAvLyBjb25zdCBxdW90YVZhbHVlcyA9IHRoaXMuY29kUHJpY2VzLmZpbHRlcihjb2RQcmljZSA9PiBjb2RQcmljZS5jb2RlID09PSBOdW1iZXIodGhpcy5jb2RTZWxmRm9ybVN0ZXBUaHJlZS5jb250cm9sc1sncXVvdGFfdGltZXMnXS52YWx1ZSkpWzBdLnF1b3RhX3ByaWNlO1xuICAgIC8vIGxldCBwYXJhbXM6IENhbGN1bGF0ZVF1b3Rlc1BhcmFtcyA9IHtcbiAgICAvLyAgIGRhdGU6IG5ldyBEYXRlKHRoaXMuY29kU2VsZkZvcm1TdGVwVGhyZWUuY29udHJvbHNbJ3BheW1lbnRfZGF0ZSddLnZhbHVlKSxcbiAgICAvLyAgIHF1b3RhVmFsdWVzLFxuICAgIC8vICAgcXVvdGFUaW1lczogdGhpcy5jb2RQcmljZXMuZmlsdGVyKGNvZFByaWNlID0+IGNvZFByaWNlLmNvZGUgPT09IE51bWJlcih0aGlzLmNvZFNlbGZGb3JtU3RlcFRocmVlLmNvbnRyb2xzWydxdW90YV90aW1lcyddLnZhbHVlKSlbMF0uZmVlX251bWJlcixcbiAgICAvLyAgIHRvdGFsUHJpY2U6IHRoaXMuY29kU2VsZkZvcm1TdGVwVGhyZWUuY29udHJvbHNbJ3RvdGFsX3ByaWNlJ10udmFsdWUsXG4gICAgLy8gfVxuXG4gICAgbGV0IHBhcmFtczogQ2FsY3VsYXRlUXVvdGVzUGFyYW1zID0ge1xuICAgICAgZGF0ZTogbmV3IERhdGUodGhpcy5jb2RTZWxmRm9ybVN0ZXBUaHJlZS5jb250cm9sc1sncGF5bWVudF9kYXRlJ10udmFsdWUpLFxuICAgICAgcXVvdGFWYWx1ZXM6IE51bWJlcih0aGlzLmNvZFNlbGZGb3JtU3RlcFRocmVlLmNvbnRyb2xzWydxdW90YV9wcmljZSddLnZhbHVlKSxcbiAgICAgIHF1b3RhVGltZXM6IE51bWJlcih0aGlzLmNvZFNlbGZGb3JtU3RlcFRocmVlLmNvbnRyb2xzWydmZWVfbnVtYmVyJ10udmFsdWUpLFxuICAgICAgdG90YWxQcmljZTogdGhpcy5jb2RTZWxmRm9ybVN0ZXBUaHJlZS5jb250cm9sc1sndG90YWxfcHJpY2UnXS52YWx1ZSxcbiAgICB9XG5cbiAgICB0aGlzLmRhdGFGaW5hbmNpbmcgPSB0aGlzLmNhbGN1bGF0ZVF1b3Rlc1NlcnZpY2UuY2FsY3VsYXRlUXVvdGVzKHBhcmFtcyk7XG4gICAgdGhpcy5pc0ZpbmFuY2luZyA9IHRydWU7XG4gICAgdGhpcy5maW5hbmNpbmdEYXRhLmVtaXQodGhpcy5kYXRhRmluYW5jaW5nKTtcbiAgfVxuXG4gIGNhbGN1bGF0ZU5ld1F1b3RlcygpIHtcbiAgICB0aGlzLmlzQ2FsY3VsYXRlUXVvdGVzQnV0dG9uQ2xpY2tlZCA9IGZhbHNlO1xuICAgIHRoaXMuaXNGaW5hbmNpbmcgPSBmYWxzZTtcbiAgICB0aGlzLmZpbmFuY2luZ0RhdGEuZW1pdChudWxsKTtcbiAgfVxuXG4gIHNlbGVjdExldmVscyhkYXRhUGF5bWVudDogYW55KXtcbiAgICBpZiAodGhpcy5jb2RTZWxmRm9ybVN0ZXBUaHJlZS5nZXQoJ3BheW1lbnRfbWV0aG9kJyk/LnZhbHVlID09IDEpIHtcbiAgICAgIHRoaXMuY29kU2VsZkZvcm1TdGVwVGhyZWUuY29udHJvbHNbJ3F1b3RhX3RpbWVzJ10uc2V0VmFsdWUoZGF0YVBheW1lbnQuY29kZSk7XG4gICAgICB0aGlzLmNvZFNlbGZGb3JtU3RlcFRocmVlLmNvbnRyb2xzWyd0b3RhbF9wcmljZSddLnNldFZhbHVlKGRhdGFQYXltZW50LmVucm9sbG1lbnQpO1xuICAgICAgdGhpcy5jb2RTZWxmRm9ybVN0ZXBUaHJlZS5jb250cm9sc1sncHJvZ3JhbV9wcmljZSddLnNldFZhbHVlKGRhdGFQYXltZW50LmZpbmFuY2VkX3ByaWNlKTtcbiAgICAgIHRoaXMuY29kU2VsZkZvcm1TdGVwVGhyZWUuY29udHJvbHNbJ3BhaWRfbGV2ZWwnXS5zZXRWYWx1ZShkYXRhUGF5bWVudC5wYWlkX2xldmVsIC0gMSk7XG4gICAgICB0aGlzLmNvZFNlbGZGb3JtU3RlcFRocmVlLmNvbnRyb2xzWydmZWVfbnVtYmVyJ10uc2V0VmFsdWUoZGF0YVBheW1lbnQuZmVlX251bWJlcik7XG4gICAgICB0aGlzLmNvZFNlbGZGb3JtU3RlcFRocmVlLmNvbnRyb2xzWydxdW90YV9wcmljZSddLnNldFZhbHVlKGRhdGFQYXltZW50LnF1b3RhX3ByaWNlKTtcbiAgICAgIHRoaXMudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgIH0gZWxzZSBpZih0aGlzLmNvZFNlbGZGb3JtU3RlcFRocmVlLmdldCgncGF5bWVudF9tZXRob2QnKT8udmFsdWUgPT0gMil7XG4gICAgICB0aGlzLmNvZFNlbGZGb3JtU3RlcFRocmVlLmNvbnRyb2xzWydxdW90YV90aW1lcyddLnNldFZhbHVlKGRhdGFQYXltZW50LmNvZGUpO1xuICAgICAgdGhpcy5jb2RTZWxmRm9ybVN0ZXBUaHJlZS5jb250cm9sc1sndG90YWxfcHJpY2UnXS5zZXRWYWx1ZShkYXRhUGF5bWVudC5lbnJvbGxtZW50KTtcbiAgICAgIHRoaXMuY29kU2VsZkZvcm1TdGVwVGhyZWUuY29udHJvbHNbJ3Byb2dyYW1fcHJpY2UnXS5zZXRWYWx1ZShkYXRhUGF5bWVudC5ub3JtYWxfcHJpY2UpO1xuICAgICAgdGhpcy5jb2RTZWxmRm9ybVN0ZXBUaHJlZS5jb250cm9sc1sncGFpZF9sZXZlbCddLnNldFZhbHVlKGRhdGFQYXltZW50LnBhaWRfbGV2ZWwgLSAxKTtcbiAgICAgIHRoaXMuY29kU2VsZkZvcm1TdGVwVGhyZWUuY29udHJvbHNbJ2ZlZV9udW1iZXInXS5zZXRWYWx1ZShkYXRhUGF5bWVudC5mZWVfbnVtYmVyKTtcbiAgICAgIHRoaXMuY29kU2VsZkZvcm1TdGVwVGhyZWUuY29udHJvbHNbJ3F1b3RhX3ByaWNlJ10uc2V0VmFsdWUoZGF0YVBheW1lbnQucXVvdGFfcHJpY2UpO1xuICAgICAgdGhpcy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgfVxuICB9XG5cbiAgdXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpIHtcbiAgICB0aGlzLmNvZFNlbGZGb3JtU3RlcFRocmVlLmNvbnRyb2xzWydwcm9ncmFtX3ByaWNlJ10udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgIHRoaXMuY29kU2VsZkZvcm1TdGVwVGhyZWUuY29udHJvbHNbJ3BheW1lbnRfZGF0ZSddLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICB0aGlzLmNvZFNlbGZGb3JtU3RlcFRocmVlLmNvbnRyb2xzWydxdW90YV90aW1lcyddLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICB0aGlzLmNvZFNlbGZGb3JtU3RlcFRocmVlLmNvbnRyb2xzWyd0b3RhbF9wcmljZSddLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgfVxuXG59XG4iLCI8ZGl2IGNsYXNzPVwiY29udGFpbmVyLW1haW5cIj5cbiAgPGRpdiBjbGFzcz1cImNvbnRhaW5lci1mb3JtXCI+XG4gICAgPGgyPlBhZ29zPC9oMj5cbiAgICA8cC10b2FzdCBwb3NpdGlvbj1cInRvcC1jZW50ZXJcIiBrZXk9XCJjb25maXJtXCIgKG9uQ2xvc2UpPVwib25SZWplY3QoKVwiIFtiYXNlWkluZGV4XT1cIjEwXCI+XG4gICAgICA8bmctdGVtcGxhdGUgbGV0LW1lc3NhZ2UgcFRlbXBsYXRlPVwibWVzc2FnZVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sdW1uIGFsaWduLWl0ZW1zLXN0YXJ0XCIgc3R5bGU9XCJmbGV4OiAxXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMlwiPlxuICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCJodHRwczovL3FhLmlwdGRldi5jb20uY28vYXNzZXRzL2xvZ29zL3JlYWRpbmcucG5nXCIgc3R5bGU9XCJ3aWR0aDogNjVweDtcIiBzaGFwZT1cImNpcmNsZVwiIC8+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZvbnQtYm9sZCB0ZXh0LTkwMFwiPkphY29iPC9zcGFuPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvbnQtbWVkaXVtIHRleHQtbGcgbXktMyB0ZXh0LTkwMFwiPnt7IG1lc3NhZ2VJbmZvIH19PC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICA8L3AtdG9hc3Q+XG4gIDxpIGNsYXNzPVwicGkgcGktZXhjbGFtYXRpb24tY2lyY2xlIGN1cnNvci1wb2ludGVyIHctYXV0byBtYi00XCIgKGNsaWNrKT1cInNob3dDb25maXJtKClcIiBwVG9vbHRpcD1cIk1hcyBpbmZvLlwiIHRvb2x0aXBQb3NpdGlvbj1cImJvdHRvbVwiPjwvaT5cblxuICA8Zm9ybSBhdXRvY29tcGxldGU9XCJvZmZcIiBbZm9ybUdyb3VwXT1cImNvZFNlbGZGb3JtU3RlcFRocmVlXCIgY2xhc3M9XCJncmlkIG10LTJcIj5cblxuICAgIDxkaXYgY2xhc3M9XCJjb2wtMTJcIj5cbiAgICAgIDxpcHQtc2VsZWN0XG4gICAgICAgIFtpbml0aWFsVmFsdWVdPVwiY29kU2VsZkZvcm1TdGVwVGhyZWUuY29udHJvbHNbJ3BheW1lbnRfbWV0aG9kJ10udmFsdWVcIlxuICAgICAgICBbY29udHJvbF09XCJjb2RTZWxmRm9ybVN0ZXBUaHJlZS5jb250cm9sc1sncGF5bWVudF9tZXRob2QnXVwiXG4gICAgICAgIChldmVudFNlbGVjdCk9XCJzZWxlY3RQYXltZW50TWV0aG9kKCRldmVudClcIlxuICAgICAgICBbZGF0YV09XCJwYXltZW50TWV0aG9kc1wiXG4gICAgICAgIFtkZWZhdWx0VGV4dF09XCInTcOpdG9kbyBkZSBwYWdvJ1wiXG4gICAgICA+PC9pcHQtc2VsZWN0PlxuICAgICAgPGlwdC1sb2FkZXIgKm5nSWY9XCJmZWVSZXNwb25zZVwiPjwvaXB0LWxvYWRlcj5cblxuICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMlwiICpuZ0lmPVwidGhlcmVBcmVQbGFuc1wiPlxuICAgICAgICA8cC10YWJsZVxuICAgICAgICAgIFt2YWx1ZV09XCJkYXRhUHJpY2VzXCJcbiAgICAgICAgICBbdGFibGVTdHlsZV09XCJ7J21pbi13aWR0aCc6ICcxMDAlJ31cIlxuICAgICAgICAgIFtyb3dIb3Zlcl09XCJ0cnVlXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJjYXB0aW9uXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgIFNlbGVjY2lvbiBkZSBuaXZlbGVzIGEgY2FuY2VsYXIuXG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJoZWFkZXJcIj5cbiAgICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICAgPHRoIGNsYXNzPVwiYmctYmx1ZS0yMDAgdGV4dC1jZW50ZXIgZm9udC1tZWRpdW0gcHQtMiBwYi0yXCI+Q2FuY2VsYXI8L3RoPlxuICAgICAgICAgICAgICA8dGggY2xhc3M9XCJiZy1ibHVlLTIwMCB0ZXh0LWNlbnRlciBmb250LW1lZGl1bSBwdC0yIHBiLTJcIj5DdW90YXM8L3RoPlxuICAgICAgICAgICAgICA8dGggY2xhc3M9XCJiZy1ibHVlLTIwMCB0ZXh0LWNlbnRlciBmb250LW1lZGl1bSBwdC0yIHBiLTJcIj5BZG1pbjwvdGg+XG4gICAgICAgICAgICA8L3RyPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImJvZHlcIiBsZXQtZGF0YT5cbiAgICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICAgPHRkPnt7IGRhdGEucGFpZF9sZXZlbCB9fSBOaXZlbChlcyk8L3RkPlxuICAgICAgICAgICAgICA8dGQ+e3sgZGF0YS5mZWVfbnVtYmVyIH19PC90ZD5cbiAgICAgICAgICAgICAgPHRkIGNsYXNzPVwicHQtMiBwYi0yXCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgcEJ1dHRvblxuICAgICAgICAgICAgICAgICAgcFJpcHBsZVxuICAgICAgICAgICAgICAgICAgaWNvbj1cInBpIHBpLW1vbmV5LWJpbGxcIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwLWJ1dHRvbi1zbSBwLWJ1dHRvbi1yb3VuZGVkXCJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RMZXZlbHMoZGF0YSlcIlxuXG4gICAgICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L3AtdGFibGU+XG4gICAgICA8L2Rpdj5cblxuXG4gICAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJjb2wtMTJcIj5cbiAgICAgIDxpcHQtaW5wdXRcbiAgICAgICAgW2lucHV0VHlwZV09XCIndGV4dCdcIlxuICAgICAgICBbcGxhY2VIb2xkZXJdPVwiJ01vbnRvIHRvdGFsIGRlIGxhIG1hdHLDrWN1bGEnXCJcbiAgICAgICAgW2NvbnRyb2xdPVwiY29kU2VsZkZvcm1TdGVwVGhyZWUuY29udHJvbHNbJ3RvdGFsX3ByaWNlJ11cIlxuICAgICAgICBbd2l0aFBpcGVdPVwidHJ1ZVwiXG4gICAgICA+PC9pcHQtaW5wdXQ+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiY29sLTEyXCI+XG4gICAgICA8aXB0LWlucHV0XG4gICAgICAgIFt3aXRoUGlwZV09XCJ0cnVlXCJcbiAgICAgICAgW2lucHV0VHlwZV09XCIndGV4dCdcIlxuICAgICAgICBbY29udHJvbF09XCJjb2RTZWxmRm9ybVN0ZXBUaHJlZS5jb250cm9sc1sncHJvZ3JhbV9wcmljZSddXCJcbiAgICAgICAgW3BsYWNlSG9sZGVyXT1cIidWYWxvciB0b3RhbCBkZWwgcHJvZ3JhbWEnXCJcbiAgICAgID48L2lwdC1pbnB1dD5cbiAgICA8L2Rpdj5cblxuICAgIDwhLS0gPGRpdiBjbGFzcz1cImNvbC0xMlwiPlxuICAgICAgPGlwdC1pbnB1dFxuICAgICAgICBvbmZvY3VzPVwiKHRoaXMudHlwZT0nZGF0ZScpXCJcbiAgICAgICAgW2lucHV0VHlwZV09XCInZGF0ZSdcIlxuICAgICAgICBbY29udHJvbF09XCJjb2RTZWxmRm9ybVN0ZXBUaHJlZS5jb250cm9sc1sncGF5bWVudF9kYXRlJ11cIlxuICAgICAgICBbcGxhY2VIb2xkZXJdPVwiJ0ZlY2hhIGRlIHBhZ28nXCJcbiAgICAgID48L2lwdC1pbnB1dD5cbiAgICA8L2Rpdj4gLS0+XG5cbiAgICA8IS0tIFRhYmxhIGRlIGZpbmFuY2lhY2nDs24gLS0+XG4gICAgPGRpdiBjbGFzcz1cImNvbC0xMlwiICpuZ0lmPVwiaXNGaW5hbmNpbmdcIj5cbiAgICAgIDxwLXRhYmxlXG4gICAgICAgIFt2YWx1ZV09XCJkYXRhRmluYW5jaW5nXCJcbiAgICAgICAgW3RhYmxlU3R5bGVdPVwieydtaW4td2lkdGgnOiAnMTAwJSd9XCJcbiAgICAgICAgW3Jvd0hvdmVyXT1cInRydWVcIlxuICAgICAgPlxuICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiY2FwdGlvblwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgQ8OhbGN1bG8gZGUgY3VvdGFzXG4gICAgICAgICAgICA8YnV0dG9uIHBCdXR0b24gY2xhc3M9XCJwLWJ1dHRvbi1zbSBtbC1hdXRvXCIgbGFiZWw9XCJOdWV2byBjw6FsY3Vsb1wiIChjbGljayk9XCJjYWxjdWxhdGVOZXdRdW90ZXMoKVwiIGxhYiBpY29uPVwicGkgcGktcmVwbGF5XCI+PC9idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJoZWFkZXJcIj5cbiAgICAgICAgICA8dHI+XG4gICAgICAgICAgICA8dGg+IzwvdGg+XG4gICAgICAgICAgICA8dGg+VmFsb3I8L3RoPlxuICAgICAgICAgICAgPHRoPkZlY2hhPC90aD5cbiAgICAgICAgICA8L3RyPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiYm9keVwiIGxldC1kYXRhPlxuICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgIDx0ZD57eyBkYXRhWzBdIH19PC90ZD5cbiAgICAgICAgICAgIDx0ZD57eyBkYXRhWzFdIH19PC90ZD5cbiAgICAgICAgICAgIDx0ZD57eyBkYXRhWzJdIH19PC90ZD5cbiAgICAgICAgICA8L3RyPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9wLXRhYmxlPlxuICAgIDwvZGl2PlxuICAgIDwhLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAtLT5cblxuICA8L2Zvcm0+XG4gIDwvZGl2PlxuXG5cbjxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIG10LTMgYWxpZ24taXRlbXMtY2VudGVyIGdhcC0zXCI+XG4gIDwhLS0gPHNwYW4gKm5nSWY9XCJjb2RTZWxmRm9ybVN0ZXBPbmUuaW52YWxpZCAmJiBjb2RTZWxmRm9ybVN0ZXBPbmUudG91Y2hlZFwiIGNsYXNzPVwidGV4dC1yZWQtNTAwIGZvbnQtYm9sZCB0ZXh0LWNlbnRlciBtdC0xIHB5LTIgYmctcmVkLTEwMCB3LWZ1bGwgYm9yZGVyLXJvdW5kLXhsXCI+e3sgZXJyb3JNZXNzYWdlIH19PC9zcGFuPiAtLT5cbiAgPGJ1dHRvblxuICBwQnV0dG9uXG4gIGljb249XCJwaSBwaS1hcnJvdy1sZWZ0XCJcbiAgdHlwZT1cInN1Ym1pdFwiXG4gIChjbGljayk9XCJiYWNrKClcIlxuICA+PC9idXR0b24+XG5cbiAgPGJ1dHRvblxuICBwQnV0dG9uXG4gIGljb249XCJwaSBwaS1hcnJvdy1yaWdodFwiXG4gIChjbGljayk9XCJzZW5kRm9ybSgpXCJcbiAgPjwvYnV0dG9uPlxuPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -71,7 +71,7 @@ export class CodSelfFormStepTwoComponent extends CodSelfManagedSteps {
71
71
  // modality: ['', Validators.required],
72
72
  academic_plan: ['', [Validators.required]],
73
73
  course_type: ['', [Validators.required]],
74
- agreement_by_category: ['', [Validators.required],],
74
+ // agreement_by_category: ['', [Validators.required],],
75
75
  english_level: [{ value: '', disabled: true }, [Validators.required, Validators.minLength(5), Validators.maxLength(20)]],
76
76
  availible_courses: ['', [Validators.required]],
77
77
  course_modality: ['', [Validators.required],],
@@ -193,7 +193,7 @@ export class CodSelfFormStepTwoComponent extends CodSelfManagedSteps {
193
193
  setValuesForm() {
194
194
  this.codSelfFormStepTwo.controls['academic_plan'].setValue(this.courseSelect.course_type.academic_plan.code);
195
195
  this.codSelfFormStepTwo.controls['course_type'].setValue(this.courseSelect.course_type?.code);
196
- this.codSelfFormStepTwo.controls['agreement_by_category'].setValue(this.courseSelect.agreement?.code);
196
+ // this.codSelfFormStepTwo.controls['agreement_by_category'].setValue(this.courseSelect.agreement?.code);
197
197
  this.codSelfFormStepTwo.controls['english_level'].setValue(this.courseSelect.english_level?.code);
198
198
  this.codSelfFormStepTwo.controls['availible_courses'].setValue(this.courseSelect.code);
199
199
  this.codSelfFormStepTwo.controls['course_modality'].setValue(this.courseSelect.course_modality.code);
@@ -214,4 +214,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.7", ngImpor
214
214
  }], codPrevious: [{
215
215
  type: Input
216
216
  }] } });
217
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kLXNlbGYtZm9ybS1zdGVwLXR3by5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9kZXNpZ24tc3lzdGVtL3NyYy9saWIvY29kLXNlbGYtbWFuYWdlZC9zdGVwcy9jb2QtZm9ybS1zdGVwLXR3by9jb2Qtc2VsZi1mb3JtLXN0ZXAtdHdvLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2Rlc2lnbi1zeXN0ZW0vc3JjL2xpYi9jb2Qtc2VsZi1tYW5hZ2VkL3N0ZXBzL2NvZC1mb3JtLXN0ZXAtdHdvL2NvZC1zZWxmLWZvcm0tc3RlcC10d28uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFtRCxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEgsT0FBTyxFQUFFLG1CQUFtQixFQUF5QixNQUFNLG9DQUFvQyxDQUFDO0FBQ2hHLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQy9FLE9BQU8sRUFBYSxVQUFVLEVBQWUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7OztBQVNwRSxNQUFNLE9BQU8sMkJBQTRCLFNBQVEsbUJBQW1CO0lBc0NsRSxZQUNVLEVBQWUsRUFDZixLQUF3QixFQUN4QixjQUE4QixFQUM5QixXQUF3QixFQUN4QixlQUFnQztRQUV4QyxLQUFLLEVBQUUsQ0FBQztRQU5BLE9BQUUsR0FBRixFQUFFLENBQWE7UUFDZixVQUFLLEdBQUwsS0FBSyxDQUFtQjtRQUN4QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBekNoQyxjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQU1qRCxhQUFRLEdBQUcsSUFBSSxzQkFBc0IsRUFBRSxD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QUFDO1FBQzlGLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDdEcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDbEcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3ZGLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdkcsQ0FBQztJQUdELGdCQUFnQjtRQUNkLE1BQU0sQ0FBQyxJQUFJLENBQUMsc0NBQXNDLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDaEUsQ0FBQzs7d0hBbk5VLDJCQUEyQjs0R0FBM0IsMkJBQTJCLHFPQ2R4QywwNU9BMktBOzJGRDdKYSwyQkFBMkI7a0JBTHZDLFNBQVM7K0JBQ0UsNEJBQTRCO3VOQU01QixTQUFTO3NCQUFsQixNQUFNO2dCQUVFLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWNhZGVtaWNTZXJ2aWNlIH0gZnJvbSAnLi8uLi8uLi8uLi9jb3JlL3NlcnZpY2VzL2FjYWRlbWljLXNlcnZpY2UvYWNhZGVtaWMuc2VydmljZSc7XG5pbXBvcnQgeyBCYXNlU2VydmljZSB9IGZyb20gJy4vLi4vLi4vLi4vY29yZS91dGlscy9iYXNlLXNlcnZpY2UvYmFzZS5zZXJ2aWNlJztcbmltcG9ydCB7IENvbXBvbmVudCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIE9uQ2hhbmdlcywgQ2hhbmdlRGV0ZWN0b3JSZWYsIE9uSW5pdCwgT25EZXN0cm95LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29kU2VsZk1hbmFnZWRTdGVwcywgbG9jYWxTdG9yYWdlVmFsdWVzVHdvIH0gZnJvbSAnLi4vLi4vbG9naWMvY29kLXNlbGYtbWFuYWdlZC1zdGVwcyc7XG5pbXBvcnQgeyBDb2RTZWxmTWFuYWdlZENvbnRyb2xzIH0gZnJvbSAnLi4vLi4vbG9naWMvY29kLXNlbGYtbWFuYWdlZC1jb250cm9scyc7XG5pbXBvcnQgeyBGb3JtR3JvdXAsIFZhbGlkYXRvcnMsIEZvcm1CdWlsZGVyIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICdwcmltZW5nL2FwaSc7XG5pbXBvcnQgeyBJd2Vla0RheXNScSB9IGZyb20gJy4uLy4uLy4uL2NvcmUvbW9kZWxzL2FjYWRlbWljL2FjYWRlbWljLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1jb2Qtc2VsZi1mb3JtLXN0ZXAtdHdvJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvZC1zZWxmLWZvcm0tc3RlcC10d28uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jb2Qtc2VsZi1mb3JtLXN0ZXAtdHdvLmNvbXBvbmVudC5jc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgQ29kU2VsZkZvcm1TdGVwVHdvQ29tcG9uZW50IGV4dGVuZHMgQ29kU2VsZk1hbmFnZWRTdGVwcyBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25Jbml0IHtcblxuICBAT3V0cHV0KCkgY29tcGxldGVkID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgQElucHV0KCkgc2NvcmVQbGFjZW1lbnRUZXN0Pzphbnk7XG4gIEBJbnB1dCgpIGNvZFByZXZpb3VzPzphbnk7XG5cbiAgY29kU2VsZkZvcm1TdGVwVHdvITogRm9ybUdyb3VwO1xuICBjb250cm9scyA9IG5ldyBDb2RTZWxmTWFuYWdlZENvbnRyb2xzKCkuY29udHJvbHNbMV07XG4gIHN0YXJ0RGF0ZTEhOiBzdHJpbmc7XG4gIHZpc2libGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgbWVzc2FnZUluZm86c3RyaW5nID0gJ0J1c2NhIHVuIHBsYW4gZGUgYWN1ZXJkbyBhIHR1IGRpc3BvbmliaWxpZGFkLic7XG4gIHN0YXRlT3B0aW9uc01vZGFsaXR5OiBhbnlbXSA9IFtcbiAgICB7IGNvZGU6IDEsIGtleTogJ3ByJywgIG5hbWU6ICdQcmVzZW5jaWFsJ30sXG4gICAgeyBjb2RlOiAyLCBrZXk6ICd2aScsIG5hbWU6ICdWaXJ0dWFsJ30sXG4gIF07XG4gIHNjaGVkdWxlczogSXdlZWtEYXlzUnFbXSA9IFtcbiAgICB7Y29kZTogMSwgbmFtZTogJ01hw7FhbmEnLCBrZXk6ICdtYScgfSxcbiAgICB7Y29kZTogMiwgbmFtZTogJ1RhcmRlJywga2V5OiAndGEnIH0sXG4gICAge2NvZGU6IDMsIG5hbWU6ICdOb2NoZScsIGtleTogJ25vJyB9LFxuICBdO1xuICBPcHRpb25QbGFjZW1lbnRUZXN0OiBhbnlbXT1bXG4gICAge2NvZGU6IDEsIGtleTogJ3NpJywgIG5hbWU6ICdTaSd9LFxuICAgIHtjb2RlOiAyLCBrZXk6ICduaScsICBuYW1lOiAnTm8nfSxcbiAgXTtcbiAgc2VsZWN0ZWRTY2hlZHVsZXM6IEl3ZWVrRGF5c1JxW10gPSBbXTtcbiAgZGlzYWJsZXdlZWtkYXlzOiBib29sZWFuW10gPSBbXTtcbiAgc2VsZWN0ZWRNb2RhbGl0eTpJd2Vla0RheXNScVtdPVtdXG4gIHNlbGVjdGVkT3B0aW9uUGxhY2VtZW50VGVzdDpJd2Vla0RheXNScVtdPVtdXG4gIG1lc3NhZ2VBbGVydFNjaGVkdWxlcyA9IGZhbHNlO1xuICBtZXNzYWdlQWxlcnRNb2RhbGl0eT0gZmFsc2U7XG4gIG1lc3NhZ2VBbGVydFBsYWNlbWVudFRlc3Q9IGZhbHNlO1xuICBTZWFyY2hEYXRhID0gdHJ1ZTtcbiAgZGF0YUNvdXJzZTogYW55W10gPSBbXTtcbiAgaXNMb2FkaW5nPXRydWU7XG4gIGNvdXJzZVNlbGVjdD86YW55O1xuICB2aXNpYmxlR3JvdXBSZXZpZXcgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGZiOiBGb3JtQnVpbGRlcixcbiAgICBwcml2YXRlIGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSxcbiAgICBwcml2YXRlIGJhc2VTZXJ2aWNlOiBCYXNlU2VydmljZSxcbiAgICBwcml2YXRlIGFjYWRlbWljU2VydmljZTogQWNhZGVtaWNTZXJ2aWNlXG4gICkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5pbml0Rm9ybSgpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zdGFydExvY2FsU3RvcmFnZVdvcmsoKTtcbiAgICAvLyB0aGlzLnZhbHVlc0luaXRpYWxTY2hlZHVsZSgpO1xuICAgIHRoaXMuaXNMb2FkaW5nPXRydWU7XG4gIH1cbiAgbmdPbkNoYW5nZXMoKXtcbiAgICAvLyB0aGlzLmluaXRGb3JtKCk7XG4gICAgLy8gdGhpcy5zdGFydExvY2FsU3RvcmFnZVdvcmsoKTtcbiAgfVxuXG4gIGluaXRGb3JtKCkge1xuXG4gICAgdGhpcy5jb2RTZWxmRm9ybVN0ZXBUd28gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIC8vIHNjaGVkdWxlOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgICAvLyB0b19zdGFydDogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuICAgICAgLy8gbW9kYWxpdHk6IFsnJywgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXG4gICAgICBhY2FkZW1pY19wbGFuOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgICBjb3Vyc2VfdHlwZTpbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgICBhZ3JlZW1lbnRfYnlfY2F0ZWdvcnk6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdLF0sXG4gICAgICBlbmdsaXNoX2xldmVsOiBbe3ZhbHVlOiAnJywgZGlzYWJsZWQ6IHRydWV9LCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5taW5MZW5ndGgoNSksIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDIwKV1dLFxuICAgICAgYXZhaWxpYmxlX2NvdXJzZXM6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcbiAgICAgIGNvdXJzZV9tb2RhbGl0eTogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0sXSxcblxuICAgIH0pO1xuICB9XG4gIC8vIHZhbHVlc0luaXRpYWxTY2hlZHVsZSgpIHtcbiAgLy8gICBjb25zdCBzY2hlZHVsZVZhbHVlID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ0NPRCBTRUxGIC0gc3RlcDIoc2NoZWR1bGUpJyk7XG4gIC8vICAgY29uc3QgY291cnNlTW9kYWxpdHkgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnQ09EIFNFTEYgLSBzdGVwMihtb2RhbGl0eSknKTtcblxuICAvLyAgIGlmIChzY2hlZHVsZVZhbHVlICYmIHNjaGVkdWxlVmFsdWUudHJpbSgpICE9ICcnKSB7XG4gIC8vICAgICB0aGlzLmNvZFNlbGZGb3JtU3RlcFR3by5jb250cm9sc1snc2NoZWR1bGUnXS5zZXRWYWx1ZShuZXcgRGF0ZShzY2hlZHVsZVZhbHVlKSk7XG4gIC8vICAgfSBlbHNlIHtcbiAgLy8gICAgIHRoaXMuY29kU2VsZkZvcm1TdGVwVHdvLmNvbnRyb2xzWydzY2hlZHVsZSddLnNldFZhbHVlKG5ldyBEYXRlKCkpO1xuICAvLyAgIH1cblxuICAvLyAgIGlmIChjb3Vyc2VNb2RhbGl0eSAmJiBjb3Vyc2VNb2RhbGl0eS50cmltKCkgIT09ICcnKSB7XG4gIC8vICAgICB0aGlzLmNvZFNlbGZGb3JtU3RlcFR3by5jb250cm9sc1snbW9kYWxpdHknXS5zZXRWYWx1ZShwYXJzZUludChjb3Vyc2VNb2RhbGl0eSkpO1xuICAvLyAgIH0gZWxzZSB7XG4gIC8vICAgICB0aGlzLmNvZFNlbGZGb3JtU3RlcFR3by5jb250cm9sc1snbW9kYWxpdHknXS5zZXRWYWx1ZShudWxsKTtcbiAgLy8gICB9XG4gIC8vIH1cbiAgYmFjaygpIHtcbiAgICAvLyBNb3Zlcm5vcyBhbCBwYXNvIGFudGVyaW9yXG4gICAgdGhpcy5jb21wbGV0ZWQuZW1pdCgwKTtcbiAgfVxuICBzZW5kRm9ybSgpIHtcbiAgICAvLyB0aGlzLmNvZFNlbGZGb3JtU3RlcFR3by5tYXJrQWxsQXNUb3VjaGVkKCk7XG4gICAgLy8gaWYgKHRoaXMuY29kU2VsZkZvcm1TdGVwVHdvLmludmFsaWQpIHJldHVybjtcblxuICAgIC8vIE1vdmVybm9zIGFsIHBhc28gM1xuICAgIHRoaXMuY29tcGxldGVkLmVtaXQoMik7XG4gIH1cblxuICBzdGFydExvY2FsU3RvcmFnZVdvcmsoKSB7XG4gICAgdGhpcy5jb250cm9scy5mb3JFYWNoKGNvbnRyb2wgPT4ge1xuICAgICAgbGV0IGxvY2FsU3RvcmFnZVZhbHVlOiBsb2NhbFN0b3JhZ2VWYWx1ZXNUd28gPSB0aGlzLnJlYWRBbmRXcml0ZUxTKDIsIGNvbnRyb2wubmFtZSk7XG4gICAgICB0aGlzLmNvZFNlbGZGb3JtU3RlcFR3by5jb250cm9sc1tjb250cm9sLm5hbWVdLnNldFZhbHVlKGxvY2FsU3RvcmFnZVZhbHVlLnZhbHVlKTtcbiAgICAgIHRoaXMubGlzdGVuRm9ybUNoYW5nZXMoMiwgY29udHJvbC5uYW1lLCB0aGlzLmNvZFNlbGZGb3JtU3RlcFR3by5jb250cm9sc1tjb250cm9sLm5hbWVdLnZhbHVlQ2hhbmdlcyk7XG4gICAgfSk7XG4gIH1cblxuICBzZWFyY2hBdmFsYWlibGVDb3Vyc2UoKXtcbiAgICB0aGlzLmlzTG9hZGluZz10cnVlO1xuICAgIGNvbnN0IGFnZSA9IE51bWJlcih0aGlzLmxvY2FsU3RvcmFnZUNPRC5nZXRDb2RGb3JtRGF0YSgxLCAnYWdlJykpXG4gICAgY29uc3QgZ3JhZGUgPSBOdW1iZXIodGhpcy5sb2NhbFN0b3JhZ2VDT0QuZ2V0Q29kRm9ybURhdGEoMSwgJ2dyYWRlJykpXG4gICAgY29uc3QgYWdyZWVtZW50ID0gTnVtYmVyKHRoaXMubG9jYWxTdG9yYWdlQ09ELmdldENvZEZvcm1EYXRhKDEsICdhZ3JlZW1lbnRfYnlfY2F0ZWdvcnknKSlcbiAgICBjb25zdCB1c2VyQ29kZSA9IHRoaXMuYmFzZVNlcnZpY2UuZ2V0VXNlckNvZGUoKTtcblxuICAgIGNvbnNvbGUubG9nKHRoaXMuc2NvcmVQbGFjZW1lbnRUZXN0KTtcbiAgICBjb25zb2xlLmxvZyh0aGlzLmNvZFByZXZpb3VzKTtcblxuICAgIGNvbnN0IHJlcXVlc3Q6IGFueSA9IHtcbiAgICAgIGNvZGVfdXNlcjogdXNlckNvZGUsXG4gICAgICBjb2RQcmV2aW91czogdGhpcy5jb2RQcmV2aW91cyxcbiAgICAgIHNjb3JlUGxhY2VtZW50VGVzdDogdGhpcy5zY29yZVBsYWNlbWVudFRlc3QsXG4gICAgICBhZ2U6IGFnZSxcbiAgICAgIGdyYWRlOiBncmFkZSxcbiAgICAgIGFncmVlbWVudDogYWdyZWVtZW50LFxuICAgICAgbW9kYWxpdHk6IHRoaXMuc2VsZWN0ZWRNb2RhbGl0eSxcbiAgICAgIHNjaGVkdWxlczogdGhpcy5zZWxlY3RlZFNjaGVkdWxlcyxcbiAgICAgIGRlY2l0aW9uUGxhY2VtZW50VGVzdDogdGhpcy5zZWxlY3RlZE9wdGlvblBsYWNlbWVudFRlc3QsXG4gICAgICB0b2tlbjogdGhpcy5iYXNlU2VydmljZS5nZXRVc2VyVG9rZW4oKVxuICAgICAgLy8gc2NoZWR1bGU6IHRoaXMuY29kU2VsZkZvcm1TdGVwVHdvLmdldCgnc2NoZWR1bGUnKT8udmFsdWUsXG4gICAgICAvLyBwb3NzaWJsZV9zdGFydDogdGhpcy5jb2RTZWxmRm9ybVN0ZXBUd28uZ2V0KCd0b19zdGFydCcpPy52YWx1ZSxcbiAgICAgIC8vIG1vZGFsaXR5OiB0aGlzLmNvZFNlbGZGb3JtU3RlcFR3by5nZXQoJ21vZGFsaXR5Jyk/LnZhbHVlXG4gICAgfVxuICAgIGNvbnNvbGUubG9nKHJlcXVlc3QpO1xuICAgIHRoaXMuYWNhZGVtaWNTZXJ2aWNlLm9idGFpblBsYW5zQ291cnNlQXZhbGFpYmxlRm9yUG9zaWJsZVN0dWRlbnRCeUFnZUFuZEdyYWRlKHJlcXVlc3QpLnN1YnNjcmliZSgocmVzcG9uc2UpPT57XG4gICAgICB0aGlzLlNlYXJjaERhdGEgPSBmYWxzZTtcbiAgICAgIGNvbnNvbGUubG9nKHJlc3BvbnNlKTtcbiAgICAgIHRoaXMuZGF0YUNvdXJzZSA9IHJlc3BvbnNlLmRhdGE7XG4gICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgdGhpcy52aXNpYmxlR3JvdXBSZXZpZXcgPSB0cnVlXG4gICAgfSlcbiAgfVxuXG4gIG9uUmVqZWN0KCkge1xuICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuY2xlYXIoJ2NvbmZpcm0nKTtcbiAgICB0aGlzLnZpc2libGUgPSBmYWxzZTtcbiAgfVxuXG4gIHNob3dDb25maXJtKCkge1xuICAgIGlmICghdGhpcy52aXNpYmxlKSB7XG4gICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHsga2V5OiAnY29uZmlybScsIHN0aWNreTogdHJ1ZSwgc2V2ZXJpdHk6ICdzdWNjZXNzJywgc3VtbWFyeTogJ0NhbiB5b3Ugc2VuZCBtZSB0aGUgcmVwb3J0PycsIGxpZmU6IDEwMDAwIH0pO1xuICAgICAgICB0aGlzLnZpc2libGUgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHNlbGVjdFNjaGVkdWxlcyhldmU6IEl3ZWVrRGF5c1JxW10pIHtcbiAgICB0aGlzLnNlbGVjdGVkU2NoZWR1bGVzID0gZXZlXG4gICAgY29uc29sZS5sb2codGhpcy5zZWxlY3RlZFNjaGVkdWxlcyk7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRTY2hlZHVsZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLm1lc3NhZ2VBbGVydFNjaGVkdWxlcyA9IHRydWU7XG4gICAgfWVsc2V7XG4gICAgICB0aGlzLm1lc3NhZ2VBbGVydFNjaGVkdWxlcyA9IGZhbHNlXG4gICAgfVxuICB9XG5cbiAgc2VsZWN0TW9kYWxpdHkoZXZlOiBJd2Vla0RheXNScVtdKXtcbiAgICB0aGlzLnNlbGVjdGVkTW9kYWxpdHkgPSBldmVcbiAgICBjb25zb2xlLmxvZyh0aGlzLnNlbGVjdGVkTW9kYWxpdHkpO1xuICAgIGlmICh0aGlzLnNlbGVjdGVkTW9kYWxpdHkubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLm1lc3NhZ2VBbGVydE1vZGFsaXR5ID0gdHJ1ZTtcbiAgICB9ZWxzZXtcbiAgICAgIHRoaXMubWVzc2FnZUFsZXJ0TW9kYWxpdHkgPSBmYWxzZVxuICAgIH1cbiAgfVxuICBzZWxlY3RPcGNpb25zUGxhY2VtZW50VGVzdChldmU6IEl3ZWVrRGF5c1JxW10pe1xuICAgIHRoaXMuc2VsZWN0ZWRPcHRpb25QbGFjZW1lbnRUZXN0ID0gZXZlXG4gICAgY29uc29sZS5sb2codGhpcy5zZWxlY3RlZE9wdGlvblBsYWNlbWVudFRlc3QpO1xuICAgIGlmICh0aGlzLnNlbGVjdGVkT3B0aW9uUGxhY2VtZW50VGVzdC5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMubWVzc2FnZUFsZXJ0UGxhY2VtZW50VGVzdCA9IHRydWU7XG4gICAgfWVsc2V7XG4gICAgICB0aGlzLm1lc3NhZ2VBbGVydFBsYWNlbWVudFRlc3QgPSBmYWxzZVxuICAgIH1cbiAgfVxuXG4gIGZpbHRlckFnYWluKCl7XG4gICAgdGhpcy5TZWFyY2hEYXRhID0gdHJ1ZVxuXG4gIH1cblxuICBjb3Vyc2VDb2RlKGNvZGVDb3Vyc2U6IGFueSl7XG4gICAgdGhpcy5jb3Vyc2VTZWxlY3QgPSBjb2RlQ291cnNlO1xuICAgIGNvbnNvbGUubG9nKHRoaXMuY291cnNlU2VsZWN0KTtcbiAgICB0aGlzLnZpc2libGVHcm91cFJldmlldyA9IGZhbHNlO1xuICAgIHRoaXMuU2VhcmNoRGF0YSA9IGZhbHNlO1xuICAgIHRoaXMuc2V0VmFsdWVzRm9ybSgpO1xuICB9XG5cbiAgc2V0VmFsdWVzRm9ybSgpe1xuICAgIHRoaXMuY29kU2VsZkZvcm1TdGVwVHdvLmNvbnRyb2xzWydhY2FkZW1pY19wbGFuJ10uc2V0VmFsdWUodGhpcy5jb3Vyc2VTZWxlY3QuY291cnNlX3R5cGUuYWNhZGVtaWNfcGxhbi5jb2RlKTtcbiAgICB0aGlzLmNvZFNlbGZGb3JtU3RlcFR3by5jb250cm9sc1snY291cnNlX3R5cGUnXS5zZXRWYWx1ZSh0aGlzLmNvdXJzZVNlbGVjdC5jb3Vyc2VfdHlwZT8uY29kZSk7XG4gICAgdGhpcy5jb2RTZWxmRm9ybVN0ZXBUd28uY29udHJvbHNbJ2FncmVlbWVudF9ieV9jYXRlZ29yeSddLnNldFZhbHVlKHRoaXMuY291cnNlU2VsZWN0LmFncmVlbWVudD8uY29kZSk7XG4gICAgdGhpcy5jb2RTZWxmRm9ybVN0ZXBUd28uY29udHJvbHNbJ2VuZ2xpc2hfbGV2ZWwnXS5zZXRWYWx1ZSh0aGlzLmNvdXJzZVNlbGVjdC5lbmdsaXNoX2xldmVsPy5jb2RlKTtcbiAgICB0aGlzLmNvZFNlbGZGb3JtU3RlcFR3by5jb250cm9sc1snYXZhaWxpYmxlX2NvdXJzZXMnXS5zZXRWYWx1ZSh0aGlzLmNvdXJzZVNlbGVjdC5jb2RlKTtcbiAgICB0aGlzLmNvZFNlbGZGb3JtU3RlcFR3by5jb250cm9sc1snY291cnNlX21vZGFsaXR5J10uc2V0VmFsdWUodGhpcy5jb3Vyc2VTZWxlY3QuY291cnNlX21vZGFsaXR5LmNvZGUpO1xuICB9XG5cblxuICBvcGVuVGVzdEluTmV3VGFiKCk6IHZvaWQge1xuICAgIHdpbmRvdy5vcGVuKCdodHRwczovL3Rlc3QuaW5nbGVzcGFyYXRvZG9zLmVkdS5jby8nLCAnX2JsYW5rJyk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJjb250YWluZXItbWFpblwiPlxuICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyLWZvcm1cIj5cbiAgICA8aDI+UGxhbmVzPC9oMj5cbiAgICAgIDxwLXRvYXN0IHBvc2l0aW9uPVwidG9wLWNlbnRlclwiIGtleT1cImNvbmZpcm1cIiAob25DbG9zZSk9XCJvblJlamVjdCgpXCIgW2Jhc2VaSW5kZXhdPVwiMTBcIj5cbiAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1tZXNzYWdlIHBUZW1wbGF0ZT1cIm1lc3NhZ2VcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sdW1uIGFsaWduLWl0ZW1zLXN0YXJ0XCIgc3R5bGU9XCJmbGV4OiAxXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiaHR0cHM6Ly9xYS5pcHRkZXYuY29tLmNvL2Fzc2V0cy9sb2dvcy9yZWFkaW5nLnBuZ1wiIHN0eWxlPVwid2lkdGg6IDY1cHg7XCIgc2hhcGU9XCJjaXJjbGVcIiAvPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZvbnQtYm9sZCB0ZXh0LTkwMFwiPkphY29iPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb250LW1lZGl1bSB0ZXh0LWxnIG15LTMgdGV4dC05MDBcIj57eyBtZXNzYWdlSW5mbyB9fTwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9wLXRvYXN0PlxuXG4gICAgPGkgY2xhc3M9XCJwaSBwaS1leGNsYW1hdGlvbi1jaXJjbGUgY3Vyc29yLXBvaW50ZXIgdy1hdXRvIG1iLTRcIiAoY2xpY2spPVwic2hvd0NvbmZpcm0oKVwiIHBUb29sdGlwPVwiTWFzIGluZm8uXCIgdG9vbHRpcFBvc2l0aW9uPVwiYm90dG9tXCI+PC9pPlxuICAgIDwhLS0gPGZvcm0gW2Zvcm1Hcm91cF09XCJjb2RTZWxmRm9ybVN0ZXBUd29cIj4gLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyLWJ1dHRvblwiICpuZ0lmPVwiIVNlYXJjaERhdGFcIj5cbiAgICAgICAgPGlwdC1idXR0b25cbiAgICAgICAgICBbbGFiZWxdPVwiJ0ZpbHRyYXInXCJcbiAgICAgICAgICAob25DbGljayk9XCJmaWx0ZXJBZ2FpbigpXCJcbiAgICAgICAgICBbcHJpbWFyeV09XCJ0cnVlXCI+XG4gICAgICAgIDwvaXB0LWJ1dHRvbj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2ICpuZ0lmPVwiU2VhcmNoRGF0YVwiPlxuICAgICAgICA8cC1hY2NvcmRpb24gW211bHRpcGxlXT1cInRydWVcIiBbYWN0aXZlSW5kZXhdPVwiWzBdXCI+XG4gICAgICAgICAgPHAtYWNjb3JkaW9uVGFiIGhlYWRlcj1cIkpvcm5hZGFcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJEYXlcIj5cbiAgICAgICAgICAgICAgPCEtLSA8aDM+SG9yYXJpbzwvaDM+IC0tPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2tCb3ggZmxleCBmbGV4LXdyYXAganVzdGlmeS1jb250ZW50LWJldHdlZW4gbS0zIGdhcC0zXCI+XG4gICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgZGF5VyBvZiBzY2hlZHVsZXM7IGluZGV4IGFzIGluZFwiIGNsYXNzPVwiZmllbGQtY2hlY2tib3hcIj5cbiAgICAgICAgICAgICAgICAgIDxwLWNoZWNrYm94XG4gICAgICAgICAgICAgICAgICAgIG5hbWU9XCJncm91cDJcIlxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cImNhdGVnb3J5XCJcbiAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImRheVdcIlxuICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInNlbGVjdGVkU2NoZWR1bGVzXCJcbiAgICAgICAgICAgICAgICAgICAgW2lucHV0SWRdPVwiZGF5Vy5rZXlcIlxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZXdlZWtkYXlzW2luZF1cIlxuICAgICAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxuICAgICAgICAgICAgICAgICAgICBjaGVja2JveEljb249XCJwaSBwaS1jaGVjay1jaXJjbGVcIlxuICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJzZWxlY3RTY2hlZHVsZXMoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICA+PC9wLWNoZWNrYm94PlxuICAgICAgICAgICAgICAgICAgPGxhYmVsIFtmb3JdPVwiZGF5Vy5rZXlcIj57eyBkYXlXLm5hbWUgfX08L2xhYmVsPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJtZXNzYWdlQWxlcnRTY2hlZHVsZXNcIj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZXJyb3ItbWVzc2FnZVwiPlBvciBmYXZvciBzZWxlY2Npb25hIHVuYSBvcGNpb248L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L3AtYWNjb3JkaW9uVGFiPlxuICAgICAgICAgIDxwLWFjY29yZGlvblRhYiBoZWFkZXI9XCJNb2RhbGlkYWRcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJEYXlcIj5cbiAgICAgICAgICAgICAgPCEtLSA8aDM+SG9yYXJpbzwvaDM+IC0tPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2tCb3ggZmxleCBmbGV4LXdyYXAganVzdGlmeS1jb250ZW50LWJldHdlZW4gbS0zIGdhcC0zXCI+XG4gICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgZGF5VyBvZiBzdGF0ZU9wdGlvbnNNb2RhbGl0eTsgaW5kZXggYXMgaW5kXCIgY2xhc3M9XCJmaWVsZC1jaGVja2JveFwiPlxuICAgICAgICAgICAgICAgICAgPHAtY2hlY2tib3hcbiAgICAgICAgICAgICAgICAgICAgbmFtZT1cImdyb3VwMlwiXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPVwiY2F0ZWdvcnlcIlxuICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiZGF5V1wiXG4gICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwic2VsZWN0ZWRNb2RhbGl0eVwiXG4gICAgICAgICAgICAgICAgICAgIFtpbnB1dElkXT1cImRheVcua2V5XCJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGV3ZWVrZGF5c1tpbmRdXCJcbiAgICAgICAgICAgICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cInsgc3RhbmRhbG9uZTogdHJ1ZSB9XCJcbiAgICAgICAgICAgICAgICAgICAgY2hlY2tib3hJY29uPVwicGkgcGktY2hlY2stY2lyY2xlXCJcbiAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwic2VsZWN0TW9kYWxpdHkoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICA+PC9wLWNoZWNrYm94PlxuICAgICAgICAgICAgICAgICAgPGxhYmVsIFtmb3JdPVwiZGF5Vy5rZXlcIj57eyBkYXlXLm5hbWUgfX08L2xhYmVsPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJtZXNzYWdlQWxlcnRNb2RhbGl0eVwiPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJlcnJvci1tZXNzYWdlXCI+UG9yIGZhdm9yIHNlbGVjY2lvbmEgdW5hIG9wY2lvbjwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvcC1hY2NvcmRpb25UYWI+XG4gICAgICAgICAgPHAtYWNjb3JkaW9uVGFiICpuZ0lmPVwic2NvcmVQbGFjZW1lbnRUZXN0ICE9IG51bGxcIiBoZWFkZXI9XCJQbGFjZW1lbnQgdGVzdFwiPlxuICAgICAgICAgICAgPHNwYW4+VGllbmVzIHVuIFBsYWNlbWVudCBUZXN0IHJlYWxpemFkby4gUHVlZGVzIGNvbWVuemFyIGNvbiBlbCBuaXZlbDwvc3Bhbj48aDM+e3sgc2NvcmVQbGFjZW1lbnRUZXN0Py5sZXZlbF9pbmdsaXNoX25leHQubmFtZSB9fTwvaDM+XG4gICAgICAgICAgICA8c3Bhbj5cIk5PIEFQTElDQSBQTEFDRU1FTlQgVEVTVCBQQVJBIFBMQU5FUyBURUNOSUNPU1wiPC9zcGFuPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lckRheSBtdC0zXCI+XG4gICAgICAgICAgICAgIDxoMz7Cv0Rlc2VhcyBpbmljaWFyIGVuIGVzdGUgbml2ZWwge3sgc2NvcmVQbGFjZW1lbnRUZXN0Py5sZXZlbF9pbmdsaXNoX25leHQubmFtZSB9fT88L2gzPlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbHVtbiBnYXAtM1wiPlxuICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBjYXRlZ29yeSBvZiBPcHRpb25QbGFjZW1lbnRUZXN0OyBpbmRleCBhcyBpbmRcIiBjbGFzcz1cImZpZWxkLWNoZWNrYm94XCI+XG4gICAgICAgICAgICAgICAgICA8cC1yYWRpb0J1dHRvblxuICAgICAgICAgICAgICAgICAgICAgIFtpbnB1dElkXT1cImNhdGVnb3J5LmtleVwiXG4gICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImNhdGVnb3J5XCJcbiAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiY2F0ZWdvcnlcIlxuICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwic2VsZWN0ZWRPcHRpb25QbGFjZW1lbnRUZXN0XCJcbiAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZXdlZWtkYXlzW2luZF1cIlxuICAgICAgICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXG4gICAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwic2VsZWN0T3BjaW9uc1BsYWNlbWVudFRlc3QoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgPjwvcC1yYWRpb0J1dHRvbj5cbiAgICAgICAgICAgICAgICAgIDxsYWJlbCBbZm9yXT1cImNhdGVnb3J5LmtleVwiIGNsYXNzPVwibWwtMlwiPlxuICAgICAgICAgICAgICAgICAgICAgIHt7IGNhdGVnb3J5Lm5hbWUgfX1cbiAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvcC1hY2NvcmRpb25UYWI+XG4gICAgICAgICAgPHAtYWNjb3JkaW9uVGFiICpuZ0lmPVwic2NvcmVQbGFjZW1lbnRUZXN0ID09IG51bGxcIiBoZWFkZXI9XCJQcnVlYmEgZGlhZ27Ds3N0aWNvIFBsYWNlbWVudCBUZXN0XCI+XG4gICAgICAgICAgICA8c3Bhbj5QcmVzZW50YSB0b3RhbG1lbnRlIGdyYXRpcyBlc3RhIHBydWViYSBwYXJhIGNvbm9jZXIgdHUgbml2ZWwgZGUgaW5nbMOpcyB5IG51ZXN0cmFzIG9mZXJ0YXMgcGFyYSB0aS48L3NwYW4+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyRGF5IG10LTNcIj5cbiAgICAgICAgICAgICAgPCEtLSA8aDM+wr9EZXNlYXMgaW5pY2lhciBlbiBlc3RlIG5pdmVsIHt7IHNjb3JlUGxhY2VtZW50VGVzdD8ubGV2ZWxfaW5nbGlzaF9uZXh0Lm5hbWUgfX0/PC9oMz4gLS0+XG4gICAgICAgICAgICAgIDxpcHQtYnV0dG9uXG4gICAgICAgICAgICAgIFtsYWJlbF09XCInUHJlc2VudGFyIFRlc3QnXCJcbiAgICAgICAgICAgICAgKG9uQ2xpY2spPVwib3BlblRlc3RJbk5ld1RhYigpXCJcbiAgICAgICAgICAgICAgW3ByaW1hcnldPVwidHJ1ZVwiPlxuICAgICAgICAgICAgPC9pcHQtYnV0dG9uPlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbHVtbiBnYXAtM1wiPlxuXG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9wLWFjY29yZGlvblRhYj5cblxuICAgICAgICA8L3AtYWNjb3JkaW9uPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC1ub25lIGZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1lbmQgbS0yXCI+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgcFRvb2x0aXA9XCJCdXNjYXIgUGxhbmVzXCJcbiAgICAgICAgICAgIHRvb2x0aXBQb3NpdGlvbj1cImxlZnRcIlxuICAgICAgICAgICAgcEJ1dHRvblxuICAgICAgICAgICAgUmlwcGxlXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIGljb249XCJwaSBwaS1zZWFyY2hcIlxuICAgICAgICAgICAgY2xhc3M9XCJwLWJ1dHRvbi1yb3VuZGVkIHAtYnV0dG9uLW91dGxpbmVkXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJzZWxlY3RlZFNjaGVkdWxlcy5sZW5ndGggPT09IDAgfHwgc2VsZWN0ZWRNb2RhbGl0eS5sZW5ndGggPT09IDAgfHwgc2NvcmVQbGFjZW1lbnRUZXN0ICE9IG51bGwgJiYgc2VsZWN0ZWRPcHRpb25QbGFjZW1lbnRUZXN0Lmxlbmd0aCA9PT0gMCBcIlxuICAgICAgICAgICAgKGNsaWNrKT1cInNlYXJjaEF2YWxhaWJsZUNvdXJzZSgpXCJcbiAgICAgICAgICA+PC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICBcbiAgICAgIDxpcHQtY2FyZC1zZWxlY3QtY291cnNlLXNlbGYtY29kLW1hbmFnZWRcbiAgICAgICpuZ0lmPVwiY291cnNlU2VsZWN0ICE9IG51bGxcIlxuICAgICAgW2NvdXJzZVNlbGVjdF09XCJjb3Vyc2VTZWxlY3RcIj5cbiAgICAgIDwvaXB0LWNhcmQtc2VsZWN0LWNvdXJzZS1zZWxmLWNvZC1tYW5hZ2VkPlxuXG4gICAgICA8YXJ0aWNsZSAqbmdJZj1cInZpc2libGVHcm91cFJldmlld1wiIGNsYXNzPVwiY2FyZHMtY29udGFpbmVyXCI+XG5cbiAgICAgICAgPGlwdC1jYXJkLWNvdXJzZS1zZWxmLWNvZC1tYW5hZ2VkXG4gICAgICAgICAgW0NvdXJzZURhdGFdPVwiZGF0YUNvdXJzZVwiXG4gICAgICAgICAgKGNvZGVDb3Vyc2UpPVwiY291cnNlQ29kZSgkZXZlbnQpXCJcbiAgICAgICAgICBbaXNMb2FkaW5nXT1cImlzTG9hZGluZ1wiPlxuICAgICAgICA8L2lwdC1jYXJkLWNvdXJzZS1zZWxmLWNvZC1tYW5hZ2VkPlxuICAgICAgPC9hcnRpY2xlPlxuICAgIDwhLS0gPC9mb3JtPiAtLT5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBtdC0zIGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtM1wiPlxuICAgICAgPCEtLSA8c3BhbiAqbmdJZj1cImNvZFNlbGZGb3JtU3RlcE9uZS5pbnZhbGlkICYmIGNvZFNlbGZGb3JtU3RlcE9uZS50b3VjaGVkXCIgY2xhc3M9XCJ0ZXh0LXJlZC01MDAgZm9udC1ib2xkIHRleHQtY2VudGVyIG10LTEgcHktMiBiZy1yZWQtMTAwIHctZnVsbCBib3JkZXItcm91bmQteGxcIj57eyBlcnJvck1lc3NhZ2UgfX08L3NwYW4+IC0tPlxuICAgICAgPGJ1dHRvblxuICAgICAgcEJ1dHRvblxuICAgICAgaWNvbj1cInBpIHBpLWFycm93LWxlZnRcIlxuICAgICAgdHlwZT1cInN1Ym1pdFwiXG4gICAgICAoY2xpY2spPVwiYmFjaygpXCJcbiAgICAgID48L2J1dHRvbj5cblxuICAgICAgPGJ1dHRvblxuICAgICAgcEJ1dHRvblxuICAgICAgaWNvbj1cInBpIHBpLWFycm93LXJpZ2h0XCJcbiAgICAgIFtkaXNhYmxlZF09XCIhY29kU2VsZkZvcm1TdGVwVHdvLnZhbGlkXCJcbiAgICAgIChjbGljayk9XCJzZW5kRm9ybSgpXCJcbiAgICAgID48L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPGRpdj5cbiAgPHByZT57eyBjb2RTZWxmRm9ybVN0ZXBUd28udmFsdWUgfCBqc29uIH19PC9wcmU+XG4gIDxkaXY+XG4gICAgPHByZT57eyBjb2RTZWxmRm9ybVN0ZXBUd28udmFsaWQgfCBqc29uIH19PC9wcmU+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbiJdfQ==
217
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kLXNlbGYtZm9ybS1zdGVwLXR3by5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9kZXNpZ24tc3lzdGVtL3NyYy9saWIvY29kLXNlbGYtbWFuYWdlZC9zdGVwcy9jb2QtZm9ybS1zdGVwLXR3by9jb2Qtc2VsZi1mb3JtLXN0ZXAtdHdvLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2Rlc2lnbi1zeXN0ZW0vc3JjL2xpYi9jb2Qtc2VsZi1tYW5hZ2VkL3N0ZXBzL2NvZC1mb3JtLXN0ZXAtdHdvL2NvZC1zZWxmLWZvcm0tc3RlcC10d28uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFtRCxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEgsT0FBTyxFQUFFLG1CQUFtQixFQUF5QixNQUFNLG9DQUFvQyxDQUFDO0FBQ2hHLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQy9FLE9BQU8sRUFBYSxVQUFVLEVBQWUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7OztBQVNwRSxNQUFNLE9BQU8sMkJBQTRCLFNBQVEsbUJBQW1CO0lBc0NsRSxZQUNVLEVBQWUsRUFDZixLQUF3QixFQUN4QixjQUE4QixFQUM5QixXQUF3QixFQUN4QixlQUFnQztRQUV4QyxLQUFLLEVBQUUsQ0FBQztRQU5BLE9BQUUsR0FBRixFQUFFLENBQWE7UUFDZixVQUFLLEdBQUwsS0FBSyxDQUFtQjtRQUN4QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBekNoQyxjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQU1qRCxhQUFRLEdBQUcsSUFBSSxzQkFBc0IsRUFBRSxD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Q0FBQyxlQUFlLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDbEcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3ZGLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdkcsQ0FBQztJQUdELGdCQUFnQjtRQUNkLE1BQU0sQ0FBQyxJQUFJLENBQUMsc0NBQXNDLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDaEUsQ0FBQzs7d0hBbk5VLDJCQUEyQjs0R0FBM0IsMkJBQTJCLHFPQ2R4QywwNU9BMktBOzJGRDdKYSwyQkFBMkI7a0JBTHZDLFNBQVM7K0JBQ0UsNEJBQTRCO3VOQU01QixTQUFTO3NCQUFsQixNQUFNO2dCQUVFLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWNhZGVtaWNTZXJ2aWNlIH0gZnJvbSAnLi8uLi8uLi8uLi9jb3JlL3NlcnZpY2VzL2FjYWRlbWljLXNlcnZpY2UvYWNhZGVtaWMuc2VydmljZSc7XG5pbXBvcnQgeyBCYXNlU2VydmljZSB9IGZyb20gJy4vLi4vLi4vLi4vY29yZS91dGlscy9iYXNlLXNlcnZpY2UvYmFzZS5zZXJ2aWNlJztcbmltcG9ydCB7IENvbXBvbmVudCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIE9uQ2hhbmdlcywgQ2hhbmdlRGV0ZWN0b3JSZWYsIE9uSW5pdCwgT25EZXN0cm95LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29kU2VsZk1hbmFnZWRTdGVwcywgbG9jYWxTdG9yYWdlVmFsdWVzVHdvIH0gZnJvbSAnLi4vLi4vbG9naWMvY29kLXNlbGYtbWFuYWdlZC1zdGVwcyc7XG5pbXBvcnQgeyBDb2RTZWxmTWFuYWdlZENvbnRyb2xzIH0gZnJvbSAnLi4vLi4vbG9naWMvY29kLXNlbGYtbWFuYWdlZC1jb250cm9scyc7XG5pbXBvcnQgeyBGb3JtR3JvdXAsIFZhbGlkYXRvcnMsIEZvcm1CdWlsZGVyIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICdwcmltZW5nL2FwaSc7XG5pbXBvcnQgeyBJd2Vla0RheXNScSB9IGZyb20gJy4uLy4uLy4uL2NvcmUvbW9kZWxzL2FjYWRlbWljL2FjYWRlbWljLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1jb2Qtc2VsZi1mb3JtLXN0ZXAtdHdvJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvZC1zZWxmLWZvcm0tc3RlcC10d28uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jb2Qtc2VsZi1mb3JtLXN0ZXAtdHdvLmNvbXBvbmVudC5jc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgQ29kU2VsZkZvcm1TdGVwVHdvQ29tcG9uZW50IGV4dGVuZHMgQ29kU2VsZk1hbmFnZWRTdGVwcyBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25Jbml0IHtcblxuICBAT3V0cHV0KCkgY29tcGxldGVkID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgQElucHV0KCkgc2NvcmVQbGFjZW1lbnRUZXN0Pzphbnk7XG4gIEBJbnB1dCgpIGNvZFByZXZpb3VzPzphbnk7XG5cbiAgY29kU2VsZkZvcm1TdGVwVHdvITogRm9ybUdyb3VwO1xuICBjb250cm9scyA9IG5ldyBDb2RTZWxmTWFuYWdlZENvbnRyb2xzKCkuY29udHJvbHNbMV07XG4gIHN0YXJ0RGF0ZTEhOiBzdHJpbmc7XG4gIHZpc2libGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgbWVzc2FnZUluZm86c3RyaW5nID0gJ0J1c2NhIHVuIHBsYW4gZGUgYWN1ZXJkbyBhIHR1IGRpc3BvbmliaWxpZGFkLic7XG4gIHN0YXRlT3B0aW9uc01vZGFsaXR5OiBhbnlbXSA9IFtcbiAgICB7IGNvZGU6IDEsIGtleTogJ3ByJywgIG5hbWU6ICdQcmVzZW5jaWFsJ30sXG4gICAgeyBjb2RlOiAyLCBrZXk6ICd2aScsIG5hbWU6ICdWaXJ0dWFsJ30sXG4gIF07XG4gIHNjaGVkdWxlczogSXdlZWtEYXlzUnFbXSA9IFtcbiAgICB7Y29kZTogMSwgbmFtZTogJ01hw7FhbmEnLCBrZXk6ICdtYScgfSxcbiAgICB7Y29kZTogMiwgbmFtZTogJ1RhcmRlJywga2V5OiAndGEnIH0sXG4gICAge2NvZGU6IDMsIG5hbWU6ICdOb2NoZScsIGtleTogJ25vJyB9LFxuICBdO1xuICBPcHRpb25QbGFjZW1lbnRUZXN0OiBhbnlbXT1bXG4gICAge2NvZGU6IDEsIGtleTogJ3NpJywgIG5hbWU6ICdTaSd9LFxuICAgIHtjb2RlOiAyLCBrZXk6ICduaScsICBuYW1lOiAnTm8nfSxcbiAgXTtcbiAgc2VsZWN0ZWRTY2hlZHVsZXM6IEl3ZWVrRGF5c1JxW10gPSBbXTtcbiAgZGlzYWJsZXdlZWtkYXlzOiBib29sZWFuW10gPSBbXTtcbiAgc2VsZWN0ZWRNb2RhbGl0eTpJd2Vla0RheXNScVtdPVtdXG4gIHNlbGVjdGVkT3B0aW9uUGxhY2VtZW50VGVzdDpJd2Vla0RheXNScVtdPVtdXG4gIG1lc3NhZ2VBbGVydFNjaGVkdWxlcyA9IGZhbHNlO1xuICBtZXNzYWdlQWxlcnRNb2RhbGl0eT0gZmFsc2U7XG4gIG1lc3NhZ2VBbGVydFBsYWNlbWVudFRlc3Q9IGZhbHNlO1xuICBTZWFyY2hEYXRhID0gdHJ1ZTtcbiAgZGF0YUNvdXJzZTogYW55W10gPSBbXTtcbiAgaXNMb2FkaW5nPXRydWU7XG4gIGNvdXJzZVNlbGVjdD86YW55O1xuICB2aXNpYmxlR3JvdXBSZXZpZXcgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGZiOiBGb3JtQnVpbGRlcixcbiAgICBwcml2YXRlIGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSxcbiAgICBwcml2YXRlIGJhc2VTZXJ2aWNlOiBCYXNlU2VydmljZSxcbiAgICBwcml2YXRlIGFjYWRlbWljU2VydmljZTogQWNhZGVtaWNTZXJ2aWNlXG4gICkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5pbml0Rm9ybSgpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zdGFydExvY2FsU3RvcmFnZVdvcmsoKTtcbiAgICAvLyB0aGlzLnZhbHVlc0luaXRpYWxTY2hlZHVsZSgpO1xuICAgIHRoaXMuaXNMb2FkaW5nPXRydWU7XG4gIH1cbiAgbmdPbkNoYW5nZXMoKXtcbiAgICAvLyB0aGlzLmluaXRGb3JtKCk7XG4gICAgLy8gdGhpcy5zdGFydExvY2FsU3RvcmFnZVdvcmsoKTtcbiAgfVxuXG4gIGluaXRGb3JtKCkge1xuXG4gICAgdGhpcy5jb2RTZWxmRm9ybVN0ZXBUd28gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIC8vIHNjaGVkdWxlOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgICAvLyB0b19zdGFydDogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuICAgICAgLy8gbW9kYWxpdHk6IFsnJywgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXG4gICAgICBhY2FkZW1pY19wbGFuOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgICBjb3Vyc2VfdHlwZTpbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgICAvLyBhZ3JlZW1lbnRfYnlfY2F0ZWdvcnk6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdLF0sXG4gICAgICBlbmdsaXNoX2xldmVsOiBbe3ZhbHVlOiAnJywgZGlzYWJsZWQ6IHRydWV9LCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5taW5MZW5ndGgoNSksIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDIwKV1dLFxuICAgICAgYXZhaWxpYmxlX2NvdXJzZXM6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcbiAgICAgIGNvdXJzZV9tb2RhbGl0eTogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0sXSxcblxuICAgIH0pO1xuICB9XG4gIC8vIHZhbHVlc0luaXRpYWxTY2hlZHVsZSgpIHtcbiAgLy8gICBjb25zdCBzY2hlZHVsZVZhbHVlID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ0NPRCBTRUxGIC0gc3RlcDIoc2NoZWR1bGUpJyk7XG4gIC8vICAgY29uc3QgY291cnNlTW9kYWxpdHkgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnQ09EIFNFTEYgLSBzdGVwMihtb2RhbGl0eSknKTtcblxuICAvLyAgIGlmIChzY2hlZHVsZVZhbHVlICYmIHNjaGVkdWxlVmFsdWUudHJpbSgpICE9ICcnKSB7XG4gIC8vICAgICB0aGlzLmNvZFNlbGZGb3JtU3RlcFR3by5jb250cm9sc1snc2NoZWR1bGUnXS5zZXRWYWx1ZShuZXcgRGF0ZShzY2hlZHVsZVZhbHVlKSk7XG4gIC8vICAgfSBlbHNlIHtcbiAgLy8gICAgIHRoaXMuY29kU2VsZkZvcm1TdGVwVHdvLmNvbnRyb2xzWydzY2hlZHVsZSddLnNldFZhbHVlKG5ldyBEYXRlKCkpO1xuICAvLyAgIH1cblxuICAvLyAgIGlmIChjb3Vyc2VNb2RhbGl0eSAmJiBjb3Vyc2VNb2RhbGl0eS50cmltKCkgIT09ICcnKSB7XG4gIC8vICAgICB0aGlzLmNvZFNlbGZGb3JtU3RlcFR3by5jb250cm9sc1snbW9kYWxpdHknXS5zZXRWYWx1ZShwYXJzZUludChjb3Vyc2VNb2RhbGl0eSkpO1xuICAvLyAgIH0gZWxzZSB7XG4gIC8vICAgICB0aGlzLmNvZFNlbGZGb3JtU3RlcFR3by5jb250cm9sc1snbW9kYWxpdHknXS5zZXRWYWx1ZShudWxsKTtcbiAgLy8gICB9XG4gIC8vIH1cbiAgYmFjaygpIHtcbiAgICAvLyBNb3Zlcm5vcyBhbCBwYXNvIGFudGVyaW9yXG4gICAgdGhpcy5jb21wbGV0ZWQuZW1pdCgwKTtcbiAgfVxuICBzZW5kRm9ybSgpIHtcbiAgICAvLyB0aGlzLmNvZFNlbGZGb3JtU3RlcFR3by5tYXJrQWxsQXNUb3VjaGVkKCk7XG4gICAgLy8gaWYgKHRoaXMuY29kU2VsZkZvcm1TdGVwVHdvLmludmFsaWQpIHJldHVybjtcblxuICAgIC8vIE1vdmVybm9zIGFsIHBhc28gM1xuICAgIHRoaXMuY29tcGxldGVkLmVtaXQoMik7XG4gIH1cblxuICBzdGFydExvY2FsU3RvcmFnZVdvcmsoKSB7XG4gICAgdGhpcy5jb250cm9scy5mb3JFYWNoKGNvbnRyb2wgPT4ge1xuICAgICAgbGV0IGxvY2FsU3RvcmFnZVZhbHVlOiBsb2NhbFN0b3JhZ2VWYWx1ZXNUd28gPSB0aGlzLnJlYWRBbmRXcml0ZUxTKDIsIGNvbnRyb2wubmFtZSk7XG4gICAgICB0aGlzLmNvZFNlbGZGb3JtU3RlcFR3by5jb250cm9sc1tjb250cm9sLm5hbWVdLnNldFZhbHVlKGxvY2FsU3RvcmFnZVZhbHVlLnZhbHVlKTtcbiAgICAgIHRoaXMubGlzdGVuRm9ybUNoYW5nZXMoMiwgY29udHJvbC5uYW1lLCB0aGlzLmNvZFNlbGZGb3JtU3RlcFR3by5jb250cm9sc1tjb250cm9sLm5hbWVdLnZhbHVlQ2hhbmdlcyk7XG4gICAgfSk7XG4gIH1cblxuICBzZWFyY2hBdmFsYWlibGVDb3Vyc2UoKXtcbiAgICB0aGlzLmlzTG9hZGluZz10cnVlO1xuICAgIGNvbnN0IGFnZSA9IE51bWJlcih0aGlzLmxvY2FsU3RvcmFnZUNPRC5nZXRDb2RGb3JtRGF0YSgxLCAnYWdlJykpXG4gICAgY29uc3QgZ3JhZGUgPSBOdW1iZXIodGhpcy5sb2NhbFN0b3JhZ2VDT0QuZ2V0Q29kRm9ybURhdGEoMSwgJ2dyYWRlJykpXG4gICAgY29uc3QgYWdyZWVtZW50ID0gTnVtYmVyKHRoaXMubG9jYWxTdG9yYWdlQ09ELmdldENvZEZvcm1EYXRhKDEsICdhZ3JlZW1lbnRfYnlfY2F0ZWdvcnknKSlcbiAgICBjb25zdCB1c2VyQ29kZSA9IHRoaXMuYmFzZVNlcnZpY2UuZ2V0VXNlckNvZGUoKTtcblxuICAgIGNvbnNvbGUubG9nKHRoaXMuc2NvcmVQbGFjZW1lbnRUZXN0KTtcbiAgICBjb25zb2xlLmxvZyh0aGlzLmNvZFByZXZpb3VzKTtcblxuICAgIGNvbnN0IHJlcXVlc3Q6IGFueSA9IHtcbiAgICAgIGNvZGVfdXNlcjogdXNlckNvZGUsXG4gICAgICBjb2RQcmV2aW91czogdGhpcy5jb2RQcmV2aW91cyxcbiAgICAgIHNjb3JlUGxhY2VtZW50VGVzdDogdGhpcy5zY29yZVBsYWNlbWVudFRlc3QsXG4gICAgICBhZ2U6IGFnZSxcbiAgICAgIGdyYWRlOiBncmFkZSxcbiAgICAgIGFncmVlbWVudDogYWdyZWVtZW50LFxuICAgICAgbW9kYWxpdHk6IHRoaXMuc2VsZWN0ZWRNb2RhbGl0eSxcbiAgICAgIHNjaGVkdWxlczogdGhpcy5zZWxlY3RlZFNjaGVkdWxlcyxcbiAgICAgIGRlY2l0aW9uUGxhY2VtZW50VGVzdDogdGhpcy5zZWxlY3RlZE9wdGlvblBsYWNlbWVudFRlc3QsXG4gICAgICB0b2tlbjogdGhpcy5iYXNlU2VydmljZS5nZXRVc2VyVG9rZW4oKVxuICAgICAgLy8gc2NoZWR1bGU6IHRoaXMuY29kU2VsZkZvcm1TdGVwVHdvLmdldCgnc2NoZWR1bGUnKT8udmFsdWUsXG4gICAgICAvLyBwb3NzaWJsZV9zdGFydDogdGhpcy5jb2RTZWxmRm9ybVN0ZXBUd28uZ2V0KCd0b19zdGFydCcpPy52YWx1ZSxcbiAgICAgIC8vIG1vZGFsaXR5OiB0aGlzLmNvZFNlbGZGb3JtU3RlcFR3by5nZXQoJ21vZGFsaXR5Jyk/LnZhbHVlXG4gICAgfVxuICAgIGNvbnNvbGUubG9nKHJlcXVlc3QpO1xuICAgIHRoaXMuYWNhZGVtaWNTZXJ2aWNlLm9idGFpblBsYW5zQ291cnNlQXZhbGFpYmxlRm9yUG9zaWJsZVN0dWRlbnRCeUFnZUFuZEdyYWRlKHJlcXVlc3QpLnN1YnNjcmliZSgocmVzcG9uc2UpPT57XG4gICAgICB0aGlzLlNlYXJjaERhdGEgPSBmYWxzZTtcbiAgICAgIGNvbnNvbGUubG9nKHJlc3BvbnNlKTtcbiAgICAgIHRoaXMuZGF0YUNvdXJzZSA9IHJlc3BvbnNlLmRhdGE7XG4gICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgdGhpcy52aXNpYmxlR3JvdXBSZXZpZXcgPSB0cnVlXG4gICAgfSlcbiAgfVxuXG4gIG9uUmVqZWN0KCkge1xuICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuY2xlYXIoJ2NvbmZpcm0nKTtcbiAgICB0aGlzLnZpc2libGUgPSBmYWxzZTtcbiAgfVxuXG4gIHNob3dDb25maXJtKCkge1xuICAgIGlmICghdGhpcy52aXNpYmxlKSB7XG4gICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHsga2V5OiAnY29uZmlybScsIHN0aWNreTogdHJ1ZSwgc2V2ZXJpdHk6ICdzdWNjZXNzJywgc3VtbWFyeTogJ0NhbiB5b3Ugc2VuZCBtZSB0aGUgcmVwb3J0PycsIGxpZmU6IDEwMDAwIH0pO1xuICAgICAgICB0aGlzLnZpc2libGUgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHNlbGVjdFNjaGVkdWxlcyhldmU6IEl3ZWVrRGF5c1JxW10pIHtcbiAgICB0aGlzLnNlbGVjdGVkU2NoZWR1bGVzID0gZXZlXG4gICAgY29uc29sZS5sb2codGhpcy5zZWxlY3RlZFNjaGVkdWxlcyk7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRTY2hlZHVsZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLm1lc3NhZ2VBbGVydFNjaGVkdWxlcyA9IHRydWU7XG4gICAgfWVsc2V7XG4gICAgICB0aGlzLm1lc3NhZ2VBbGVydFNjaGVkdWxlcyA9IGZhbHNlXG4gICAgfVxuICB9XG5cbiAgc2VsZWN0TW9kYWxpdHkoZXZlOiBJd2Vla0RheXNScVtdKXtcbiAgICB0aGlzLnNlbGVjdGVkTW9kYWxpdHkgPSBldmVcbiAgICBjb25zb2xlLmxvZyh0aGlzLnNlbGVjdGVkTW9kYWxpdHkpO1xuICAgIGlmICh0aGlzLnNlbGVjdGVkTW9kYWxpdHkubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLm1lc3NhZ2VBbGVydE1vZGFsaXR5ID0gdHJ1ZTtcbiAgICB9ZWxzZXtcbiAgICAgIHRoaXMubWVzc2FnZUFsZXJ0TW9kYWxpdHkgPSBmYWxzZVxuICAgIH1cbiAgfVxuICBzZWxlY3RPcGNpb25zUGxhY2VtZW50VGVzdChldmU6IEl3ZWVrRGF5c1JxW10pe1xuICAgIHRoaXMuc2VsZWN0ZWRPcHRpb25QbGFjZW1lbnRUZXN0ID0gZXZlXG4gICAgY29uc29sZS5sb2codGhpcy5zZWxlY3RlZE9wdGlvblBsYWNlbWVudFRlc3QpO1xuICAgIGlmICh0aGlzLnNlbGVjdGVkT3B0aW9uUGxhY2VtZW50VGVzdC5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMubWVzc2FnZUFsZXJ0UGxhY2VtZW50VGVzdCA9IHRydWU7XG4gICAgfWVsc2V7XG4gICAgICB0aGlzLm1lc3NhZ2VBbGVydFBsYWNlbWVudFRlc3QgPSBmYWxzZVxuICAgIH1cbiAgfVxuXG4gIGZpbHRlckFnYWluKCl7XG4gICAgdGhpcy5TZWFyY2hEYXRhID0gdHJ1ZVxuXG4gIH1cblxuICBjb3Vyc2VDb2RlKGNvZGVDb3Vyc2U6IGFueSl7XG4gICAgdGhpcy5jb3Vyc2VTZWxlY3QgPSBjb2RlQ291cnNlO1xuICAgIGNvbnNvbGUubG9nKHRoaXMuY291cnNlU2VsZWN0KTtcbiAgICB0aGlzLnZpc2libGVHcm91cFJldmlldyA9IGZhbHNlO1xuICAgIHRoaXMuU2VhcmNoRGF0YSA9IGZhbHNlO1xuICAgIHRoaXMuc2V0VmFsdWVzRm9ybSgpO1xuICB9XG5cbiAgc2V0VmFsdWVzRm9ybSgpe1xuICAgIHRoaXMuY29kU2VsZkZvcm1TdGVwVHdvLmNvbnRyb2xzWydhY2FkZW1pY19wbGFuJ10uc2V0VmFsdWUodGhpcy5jb3Vyc2VTZWxlY3QuY291cnNlX3R5cGUuYWNhZGVtaWNfcGxhbi5jb2RlKTtcbiAgICB0aGlzLmNvZFNlbGZGb3JtU3RlcFR3by5jb250cm9sc1snY291cnNlX3R5cGUnXS5zZXRWYWx1ZSh0aGlzLmNvdXJzZVNlbGVjdC5jb3Vyc2VfdHlwZT8uY29kZSk7XG4gICAgLy8gdGhpcy5jb2RTZWxmRm9ybVN0ZXBUd28uY29udHJvbHNbJ2FncmVlbWVudF9ieV9jYXRlZ29yeSddLnNldFZhbHVlKHRoaXMuY291cnNlU2VsZWN0LmFncmVlbWVudD8uY29kZSk7XG4gICAgdGhpcy5jb2RTZWxmRm9ybVN0ZXBUd28uY29udHJvbHNbJ2VuZ2xpc2hfbGV2ZWwnXS5zZXRWYWx1ZSh0aGlzLmNvdXJzZVNlbGVjdC5lbmdsaXNoX2xldmVsPy5jb2RlKTtcbiAgICB0aGlzLmNvZFNlbGZGb3JtU3RlcFR3by5jb250cm9sc1snYXZhaWxpYmxlX2NvdXJzZXMnXS5zZXRWYWx1ZSh0aGlzLmNvdXJzZVNlbGVjdC5jb2RlKTtcbiAgICB0aGlzLmNvZFNlbGZGb3JtU3RlcFR3by5jb250cm9sc1snY291cnNlX21vZGFsaXR5J10uc2V0VmFsdWUodGhpcy5jb3Vyc2VTZWxlY3QuY291cnNlX21vZGFsaXR5LmNvZGUpO1xuICB9XG5cblxuICBvcGVuVGVzdEluTmV3VGFiKCk6IHZvaWQge1xuICAgIHdpbmRvdy5vcGVuKCdodHRwczovL3Rlc3QuaW5nbGVzcGFyYXRvZG9zLmVkdS5jby8nLCAnX2JsYW5rJyk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJjb250YWluZXItbWFpblwiPlxuICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyLWZvcm1cIj5cbiAgICA8aDI+UGxhbmVzPC9oMj5cbiAgICAgIDxwLXRvYXN0IHBvc2l0aW9uPVwidG9wLWNlbnRlclwiIGtleT1cImNvbmZpcm1cIiAob25DbG9zZSk9XCJvblJlamVjdCgpXCIgW2Jhc2VaSW5kZXhdPVwiMTBcIj5cbiAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1tZXNzYWdlIHBUZW1wbGF0ZT1cIm1lc3NhZ2VcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sdW1uIGFsaWduLWl0ZW1zLXN0YXJ0XCIgc3R5bGU9XCJmbGV4OiAxXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiaHR0cHM6Ly9xYS5pcHRkZXYuY29tLmNvL2Fzc2V0cy9sb2dvcy9yZWFkaW5nLnBuZ1wiIHN0eWxlPVwid2lkdGg6IDY1cHg7XCIgc2hhcGU9XCJjaXJjbGVcIiAvPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZvbnQtYm9sZCB0ZXh0LTkwMFwiPkphY29iPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb250LW1lZGl1bSB0ZXh0LWxnIG15LTMgdGV4dC05MDBcIj57eyBtZXNzYWdlSW5mbyB9fTwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9wLXRvYXN0PlxuXG4gICAgPGkgY2xhc3M9XCJwaSBwaS1leGNsYW1hdGlvbi1jaXJjbGUgY3Vyc29yLXBvaW50ZXIgdy1hdXRvIG1iLTRcIiAoY2xpY2spPVwic2hvd0NvbmZpcm0oKVwiIHBUb29sdGlwPVwiTWFzIGluZm8uXCIgdG9vbHRpcFBvc2l0aW9uPVwiYm90dG9tXCI+PC9pPlxuICAgIDwhLS0gPGZvcm0gW2Zvcm1Hcm91cF09XCJjb2RTZWxmRm9ybVN0ZXBUd29cIj4gLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyLWJ1dHRvblwiICpuZ0lmPVwiIVNlYXJjaERhdGFcIj5cbiAgICAgICAgPGlwdC1idXR0b25cbiAgICAgICAgICBbbGFiZWxdPVwiJ0ZpbHRyYXInXCJcbiAgICAgICAgICAob25DbGljayk9XCJmaWx0ZXJBZ2FpbigpXCJcbiAgICAgICAgICBbcHJpbWFyeV09XCJ0cnVlXCI+XG4gICAgICAgIDwvaXB0LWJ1dHRvbj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2ICpuZ0lmPVwiU2VhcmNoRGF0YVwiPlxuICAgICAgICA8cC1hY2NvcmRpb24gW211bHRpcGxlXT1cInRydWVcIiBbYWN0aXZlSW5kZXhdPVwiWzBdXCI+XG4gICAgICAgICAgPHAtYWNjb3JkaW9uVGFiIGhlYWRlcj1cIkpvcm5hZGFcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJEYXlcIj5cbiAgICAgICAgICAgICAgPCEtLSA8aDM+SG9yYXJpbzwvaDM+IC0tPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2tCb3ggZmxleCBmbGV4LXdyYXAganVzdGlmeS1jb250ZW50LWJldHdlZW4gbS0zIGdhcC0zXCI+XG4gICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgZGF5VyBvZiBzY2hlZHVsZXM7IGluZGV4IGFzIGluZFwiIGNsYXNzPVwiZmllbGQtY2hlY2tib3hcIj5cbiAgICAgICAgICAgICAgICAgIDxwLWNoZWNrYm94XG4gICAgICAgICAgICAgICAgICAgIG5hbWU9XCJncm91cDJcIlxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cImNhdGVnb3J5XCJcbiAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImRheVdcIlxuICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInNlbGVjdGVkU2NoZWR1bGVzXCJcbiAgICAgICAgICAgICAgICAgICAgW2lucHV0SWRdPVwiZGF5Vy5rZXlcIlxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZXdlZWtkYXlzW2luZF1cIlxuICAgICAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxuICAgICAgICAgICAgICAgICAgICBjaGVja2JveEljb249XCJwaSBwaS1jaGVjay1jaXJjbGVcIlxuICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJzZWxlY3RTY2hlZHVsZXMoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICA+PC9wLWNoZWNrYm94PlxuICAgICAgICAgICAgICAgICAgPGxhYmVsIFtmb3JdPVwiZGF5Vy5rZXlcIj57eyBkYXlXLm5hbWUgfX08L2xhYmVsPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJtZXNzYWdlQWxlcnRTY2hlZHVsZXNcIj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZXJyb3ItbWVzc2FnZVwiPlBvciBmYXZvciBzZWxlY2Npb25hIHVuYSBvcGNpb248L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L3AtYWNjb3JkaW9uVGFiPlxuICAgICAgICAgIDxwLWFjY29yZGlvblRhYiBoZWFkZXI9XCJNb2RhbGlkYWRcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJEYXlcIj5cbiAgICAgICAgICAgICAgPCEtLSA8aDM+SG9yYXJpbzwvaDM+IC0tPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2tCb3ggZmxleCBmbGV4LXdyYXAganVzdGlmeS1jb250ZW50LWJldHdlZW4gbS0zIGdhcC0zXCI+XG4gICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgZGF5VyBvZiBzdGF0ZU9wdGlvbnNNb2RhbGl0eTsgaW5kZXggYXMgaW5kXCIgY2xhc3M9XCJmaWVsZC1jaGVja2JveFwiPlxuICAgICAgICAgICAgICAgICAgPHAtY2hlY2tib3hcbiAgICAgICAgICAgICAgICAgICAgbmFtZT1cImdyb3VwMlwiXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPVwiY2F0ZWdvcnlcIlxuICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiZGF5V1wiXG4gICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwic2VsZWN0ZWRNb2RhbGl0eVwiXG4gICAgICAgICAgICAgICAgICAgIFtpbnB1dElkXT1cImRheVcua2V5XCJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGV3ZWVrZGF5c1tpbmRdXCJcbiAgICAgICAgICAgICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cInsgc3RhbmRhbG9uZTogdHJ1ZSB9XCJcbiAgICAgICAgICAgICAgICAgICAgY2hlY2tib3hJY29uPVwicGkgcGktY2hlY2stY2lyY2xlXCJcbiAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwic2VsZWN0TW9kYWxpdHkoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICA+PC9wLWNoZWNrYm94PlxuICAgICAgICAgICAgICAgICAgPGxhYmVsIFtmb3JdPVwiZGF5Vy5rZXlcIj57eyBkYXlXLm5hbWUgfX08L2xhYmVsPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJtZXNzYWdlQWxlcnRNb2RhbGl0eVwiPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJlcnJvci1tZXNzYWdlXCI+UG9yIGZhdm9yIHNlbGVjY2lvbmEgdW5hIG9wY2lvbjwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvcC1hY2NvcmRpb25UYWI+XG4gICAgICAgICAgPHAtYWNjb3JkaW9uVGFiICpuZ0lmPVwic2NvcmVQbGFjZW1lbnRUZXN0ICE9IG51bGxcIiBoZWFkZXI9XCJQbGFjZW1lbnQgdGVzdFwiPlxuICAgICAgICAgICAgPHNwYW4+VGllbmVzIHVuIFBsYWNlbWVudCBUZXN0IHJlYWxpemFkby4gUHVlZGVzIGNvbWVuemFyIGNvbiBlbCBuaXZlbDwvc3Bhbj48aDM+e3sgc2NvcmVQbGFjZW1lbnRUZXN0Py5sZXZlbF9pbmdsaXNoX25leHQubmFtZSB9fTwvaDM+XG4gICAgICAgICAgICA8c3Bhbj5cIk5PIEFQTElDQSBQTEFDRU1FTlQgVEVTVCBQQVJBIFBMQU5FUyBURUNOSUNPU1wiPC9zcGFuPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lckRheSBtdC0zXCI+XG4gICAgICAgICAgICAgIDxoMz7Cv0Rlc2VhcyBpbmljaWFyIGVuIGVzdGUgbml2ZWwge3sgc2NvcmVQbGFjZW1lbnRUZXN0Py5sZXZlbF9pbmdsaXNoX25leHQubmFtZSB9fT88L2gzPlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbHVtbiBnYXAtM1wiPlxuICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBjYXRlZ29yeSBvZiBPcHRpb25QbGFjZW1lbnRUZXN0OyBpbmRleCBhcyBpbmRcIiBjbGFzcz1cImZpZWxkLWNoZWNrYm94XCI+XG4gICAgICAgICAgICAgICAgICA8cC1yYWRpb0J1dHRvblxuICAgICAgICAgICAgICAgICAgICAgIFtpbnB1dElkXT1cImNhdGVnb3J5LmtleVwiXG4gICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImNhdGVnb3J5XCJcbiAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiY2F0ZWdvcnlcIlxuICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwic2VsZWN0ZWRPcHRpb25QbGFjZW1lbnRUZXN0XCJcbiAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZXdlZWtkYXlzW2luZF1cIlxuICAgICAgICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXG4gICAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwic2VsZWN0T3BjaW9uc1BsYWNlbWVudFRlc3QoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgPjwvcC1yYWRpb0J1dHRvbj5cbiAgICAgICAgICAgICAgICAgIDxsYWJlbCBbZm9yXT1cImNhdGVnb3J5LmtleVwiIGNsYXNzPVwibWwtMlwiPlxuICAgICAgICAgICAgICAgICAgICAgIHt7IGNhdGVnb3J5Lm5hbWUgfX1cbiAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvcC1hY2NvcmRpb25UYWI+XG4gICAgICAgICAgPHAtYWNjb3JkaW9uVGFiICpuZ0lmPVwic2NvcmVQbGFjZW1lbnRUZXN0ID09IG51bGxcIiBoZWFkZXI9XCJQcnVlYmEgZGlhZ27Ds3N0aWNvIFBsYWNlbWVudCBUZXN0XCI+XG4gICAgICAgICAgICA8c3Bhbj5QcmVzZW50YSB0b3RhbG1lbnRlIGdyYXRpcyBlc3RhIHBydWViYSBwYXJhIGNvbm9jZXIgdHUgbml2ZWwgZGUgaW5nbMOpcyB5IG51ZXN0cmFzIG9mZXJ0YXMgcGFyYSB0aS48L3NwYW4+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyRGF5IG10LTNcIj5cbiAgICAgICAgICAgICAgPCEtLSA8aDM+wr9EZXNlYXMgaW5pY2lhciBlbiBlc3RlIG5pdmVsIHt7IHNjb3JlUGxhY2VtZW50VGVzdD8ubGV2ZWxfaW5nbGlzaF9uZXh0Lm5hbWUgfX0/PC9oMz4gLS0+XG4gICAgICAgICAgICAgIDxpcHQtYnV0dG9uXG4gICAgICAgICAgICAgIFtsYWJlbF09XCInUHJlc2VudGFyIFRlc3QnXCJcbiAgICAgICAgICAgICAgKG9uQ2xpY2spPVwib3BlblRlc3RJbk5ld1RhYigpXCJcbiAgICAgICAgICAgICAgW3ByaW1hcnldPVwidHJ1ZVwiPlxuICAgICAgICAgICAgPC9pcHQtYnV0dG9uPlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbHVtbiBnYXAtM1wiPlxuXG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9wLWFjY29yZGlvblRhYj5cblxuICAgICAgICA8L3AtYWNjb3JkaW9uPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC1ub25lIGZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1lbmQgbS0yXCI+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgcFRvb2x0aXA9XCJCdXNjYXIgUGxhbmVzXCJcbiAgICAgICAgICAgIHRvb2x0aXBQb3NpdGlvbj1cImxlZnRcIlxuICAgICAgICAgICAgcEJ1dHRvblxuICAgICAgICAgICAgUmlwcGxlXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIGljb249XCJwaSBwaS1zZWFyY2hcIlxuICAgICAgICAgICAgY2xhc3M9XCJwLWJ1dHRvbi1yb3VuZGVkIHAtYnV0dG9uLW91dGxpbmVkXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJzZWxlY3RlZFNjaGVkdWxlcy5sZW5ndGggPT09IDAgfHwgc2VsZWN0ZWRNb2RhbGl0eS5sZW5ndGggPT09IDAgfHwgc2NvcmVQbGFjZW1lbnRUZXN0ICE9IG51bGwgJiYgc2VsZWN0ZWRPcHRpb25QbGFjZW1lbnRUZXN0Lmxlbmd0aCA9PT0gMCBcIlxuICAgICAgICAgICAgKGNsaWNrKT1cInNlYXJjaEF2YWxhaWJsZUNvdXJzZSgpXCJcbiAgICAgICAgICA+PC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICBcbiAgICAgIDxpcHQtY2FyZC1zZWxlY3QtY291cnNlLXNlbGYtY29kLW1hbmFnZWRcbiAgICAgICpuZ0lmPVwiY291cnNlU2VsZWN0ICE9IG51bGxcIlxuICAgICAgW2NvdXJzZVNlbGVjdF09XCJjb3Vyc2VTZWxlY3RcIj5cbiAgICAgIDwvaXB0LWNhcmQtc2VsZWN0LWNvdXJzZS1zZWxmLWNvZC1tYW5hZ2VkPlxuXG4gICAgICA8YXJ0aWNsZSAqbmdJZj1cInZpc2libGVHcm91cFJldmlld1wiIGNsYXNzPVwiY2FyZHMtY29udGFpbmVyXCI+XG5cbiAgICAgICAgPGlwdC1jYXJkLWNvdXJzZS1zZWxmLWNvZC1tYW5hZ2VkXG4gICAgICAgICAgW0NvdXJzZURhdGFdPVwiZGF0YUNvdXJzZVwiXG4gICAgICAgICAgKGNvZGVDb3Vyc2UpPVwiY291cnNlQ29kZSgkZXZlbnQpXCJcbiAgICAgICAgICBbaXNMb2FkaW5nXT1cImlzTG9hZGluZ1wiPlxuICAgICAgICA8L2lwdC1jYXJkLWNvdXJzZS1zZWxmLWNvZC1tYW5hZ2VkPlxuICAgICAgPC9hcnRpY2xlPlxuICAgIDwhLS0gPC9mb3JtPiAtLT5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBtdC0zIGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtM1wiPlxuICAgICAgPCEtLSA8c3BhbiAqbmdJZj1cImNvZFNlbGZGb3JtU3RlcE9uZS5pbnZhbGlkICYmIGNvZFNlbGZGb3JtU3RlcE9uZS50b3VjaGVkXCIgY2xhc3M9XCJ0ZXh0LXJlZC01MDAgZm9udC1ib2xkIHRleHQtY2VudGVyIG10LTEgcHktMiBiZy1yZWQtMTAwIHctZnVsbCBib3JkZXItcm91bmQteGxcIj57eyBlcnJvck1lc3NhZ2UgfX08L3NwYW4+IC0tPlxuICAgICAgPGJ1dHRvblxuICAgICAgcEJ1dHRvblxuICAgICAgaWNvbj1cInBpIHBpLWFycm93LWxlZnRcIlxuICAgICAgdHlwZT1cInN1Ym1pdFwiXG4gICAgICAoY2xpY2spPVwiYmFjaygpXCJcbiAgICAgID48L2J1dHRvbj5cblxuICAgICAgPGJ1dHRvblxuICAgICAgcEJ1dHRvblxuICAgICAgaWNvbj1cInBpIHBpLWFycm93LXJpZ2h0XCJcbiAgICAgIFtkaXNhYmxlZF09XCIhY29kU2VsZkZvcm1TdGVwVHdvLnZhbGlkXCJcbiAgICAgIChjbGljayk9XCJzZW5kRm9ybSgpXCJcbiAgICAgID48L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPGRpdj5cbiAgPHByZT57eyBjb2RTZWxmRm9ybVN0ZXBUd28udmFsdWUgfCBqc29uIH19PC9wcmU+XG4gIDxkaXY+XG4gICAgPHByZT57eyBjb2RTZWxmRm9ybVN0ZXBUd28udmFsaWQgfCBqc29uIH19PC9wcmU+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbiJdfQ==