@carefirst/library 4.5.2 → 4.6.0

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.
Files changed (31) hide show
  1. package/esm2022/lib/components/alert/alert.component.mjs +4 -4
  2. package/esm2022/lib/components/badge/badge.component.mjs +4 -4
  3. package/esm2022/lib/components/button/button.component.mjs +5 -5
  4. package/esm2022/lib/components/calendar/calendar.component.mjs +4 -4
  5. package/esm2022/lib/components/chat-bubble/chat-bubble.component.mjs +4 -4
  6. package/esm2022/lib/components/form-input/form-input.component.mjs +4 -4
  7. package/esm2022/lib/components/form-input-currency/form-input-currency.component.mjs +82 -0
  8. package/esm2022/lib/components/form-input-search/form-input-search.component.mjs +4 -4
  9. package/esm2022/lib/components/form-input-select/form-input-select.component.mjs +4 -4
  10. package/esm2022/lib/components/form-input-string-date/form-input-string-date.component.mjs +4 -4
  11. package/esm2022/lib/components/form-input-text-area/form-input-text-area.component.mjs +4 -4
  12. package/esm2022/lib/components/form-validation/form-validation.component.mjs +4 -4
  13. package/esm2022/lib/components/icon/icon.component.mjs +4 -4
  14. package/esm2022/lib/components/logo/logo.component.mjs +4 -4
  15. package/esm2022/lib/components/mix-p/mix-p.component.mjs +4 -4
  16. package/esm2022/lib/components/notification/notification.component.mjs +4 -4
  17. package/esm2022/lib/components/page/page.component.mjs +4 -4
  18. package/esm2022/lib/components/spacer/spacer.component.mjs +4 -4
  19. package/esm2022/lib/components/spinner/spinner.component.mjs +4 -4
  20. package/esm2022/lib/components/verification-code/verification-code.component.mjs +4 -4
  21. package/esm2022/lib/directives/button-loader.directive.mjs +7 -7
  22. package/esm2022/lib/library.module.mjs +10 -5
  23. package/esm2022/lib/utils/form-validators-utility.mjs +39 -15
  24. package/esm2022/public-api.mjs +2 -1
  25. package/fesm2022/carefirst-library.mjs +184 -83
  26. package/fesm2022/carefirst-library.mjs.map +1 -1
  27. package/lib/components/form-input-currency/form-input-currency.component.d.ts +25 -0
  28. package/lib/library.module.d.ts +14 -13
  29. package/package.json +1 -1
  30. package/public/styles/app.scss +17 -0
  31. package/public-api.d.ts +1 -0
@@ -22,10 +22,11 @@ import { SpinnerComponent } from './components/spinner/spinner.component';
22
22
  import { VerificationCodeComponent } from './components/verification-code/verification-code.component';
23
23
  import { MixPComponent } from './components/mix-p/mix-p.component';
24
24
  import { FormInputStringDateComponent } from './components/form-input-string-date/form-input-string-date.component';
25
+ import { FormInputCurrencyComponent } from './components/form-input-currency/form-input-currency.component';
25
26
  import * as i0 from "@angular/core";
26
27
  export class CareFirstLibraryModule {
27
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: CareFirstLibraryModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
28
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.8", ngImport: i0, type: CareFirstLibraryModule, declarations: [PageComponent,
28
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CareFirstLibraryModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
29
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: CareFirstLibraryModule, declarations: [PageComponent,
29
30
  ButtonComponent,
30
31
  SpacerComponent,
31
32
  IconComponent,
@@ -36,6 +37,7 @@ export class CareFirstLibraryModule {
36
37
  CalendarComponent,
37
38
  FormValidationComponent,
38
39
  FormInputComponent,
40
+ FormInputCurrencyComponent,
39
41
  FormInputSelectComponent,
40
42
  FormInputStringDateComponent,
41
43
  FormInputTextAreaComponent,
@@ -55,6 +57,7 @@ export class CareFirstLibraryModule {
55
57
  CalendarComponent,
56
58
  FormValidationComponent,
57
59
  FormInputComponent,
60
+ FormInputCurrencyComponent,
58
61
  FormInputSelectComponent,
59
62
  FormInputStringDateComponent,
60
63
  FormInputTextAreaComponent,
@@ -64,9 +67,9 @@ export class CareFirstLibraryModule {
64
67
  SpinnerComponent,
65
68
  VerificationCodeComponent,
66
69
  MixPComponent] });
67
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: CareFirstLibraryModule, imports: [IonicModule, CommonModule, ReactiveFormsModule] });
70
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CareFirstLibraryModule, imports: [IonicModule, CommonModule, ReactiveFormsModule] });
68
71
  }
69
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: CareFirstLibraryModule, decorators: [{
72
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CareFirstLibraryModule, decorators: [{
70
73
  type: NgModule,
71
74
  args: [{
72
75
  declarations: [
@@ -81,6 +84,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
81
84
  CalendarComponent,
82
85
  FormValidationComponent,
83
86
  FormInputComponent,
87
+ FormInputCurrencyComponent,
84
88
  FormInputSelectComponent,
85
89
  FormInputStringDateComponent,
86
90
  FormInputTextAreaComponent,
@@ -104,6 +108,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
104
108
  CalendarComponent,
105
109
  FormValidationComponent,
106
110
  FormInputComponent,
111
+ FormInputCurrencyComponent,
107
112
  FormInputSelectComponent,
108
113
  FormInputStringDateComponent,
109
114
  FormInputTextAreaComponent,
@@ -117,4 +122,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
117
122
  schemas: [CUSTOM_ELEMENTS_SCHEMA],
118
123
  }]
119
124
  }] });
120
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlicmFyeS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jYXJlZmlyc3QvbGlicmFyeS9zcmMvbGliL2xpYnJhcnkubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUU3RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDakUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDakUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDekYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNqRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUNqRyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUNsRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw0REFBNEQsQ0FBQztBQUN0RyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxrRUFBa0UsQ0FBQztBQUM5RyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw0REFBNEQsQ0FBQztBQUN0RyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUNyRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDcEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDMUUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sNERBQTRELENBQUM7QUFDdkcsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHNFQUFzRSxDQUFDOztBQW1EcEgsTUFBTSxPQUFPLHNCQUFzQjt1R0FBdEIsc0JBQXNCO3dHQUF0QixzQkFBc0IsaUJBL0MvQixhQUFhO1lBQ2IsZUFBZTtZQUNmLGVBQWU7WUFDZixhQUFhO1lBQ2IscUJBQXFCO1lBQ3JCLHFCQUFxQjtZQUNyQixjQUFjO1lBQ2QsYUFBYTtZQUNiLGlCQUFpQjtZQUNqQix1QkFBdUI7WUFDdkIsa0JBQWtCO1lBQ2xCLHdCQUF3QjtZQUN4Qiw0QkFBNEI7WUFDNUIsMEJBQTBCO1lBQzFCLHdCQUF3QjtZQUN4QixtQkFBbUI7WUFDbkIsY0FBYztZQUNkLGdCQUFnQjtZQUNoQix5QkFBeUI7WUFDekIsYUFBYSxhQUdMLFdBQVcsRUFBRSxZQUFZLEVBQUUsbUJBQW1CLGFBRXRELGFBQWE7WUFDYixlQUFlO1lBQ2YsZUFBZTtZQUNmLGFBQWE7WUFDYixxQkFBcUI7WUFDckIscUJBQXFCO1lBQ3JCLGNBQWM7WUFDZCxhQUFhO1lBQ2IsaUJBQWlCO1lBQ2pCLHVCQUF1QjtZQUN2QixrQkFBa0I7WUFDbEIsd0JBQXdCO1lBQ3hCLDRCQUE0QjtZQUM1QiwwQkFBMEI7WUFDMUIsd0JBQXdCO1lBQ3hCLG1CQUFtQjtZQUNuQixjQUFjO1lBQ2QsZ0JBQWdCO1lBQ2hCLHlCQUF5QjtZQUN6QixhQUFhO3dHQUlKLHNCQUFzQixZQXpCdkIsV0FBVyxFQUFFLFlBQVksRUFBRSxtQkFBbUI7OzJGQXlCN0Msc0JBQXNCO2tCQWpEbEMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1osYUFBYTt3QkFDYixlQUFlO3dCQUNmLGVBQWU7d0JBQ2YsYUFBYTt3QkFDYixxQkFBcUI7d0JBQ3JCLHFCQUFxQjt3QkFDckIsY0FBYzt3QkFDZCxhQUFhO3dCQUNiLGlCQUFpQjt3QkFDakIsdUJBQXVCO3dCQUN2QixrQkFBa0I7d0JBQ2xCLHdCQUF3Qjt3QkFDeEIsNEJBQTRCO3dCQUM1QiwwQkFBMEI7d0JBQzFCLHdCQUF3Qjt3QkFDeEIsbUJBQW1CO3dCQUNuQixjQUFjO3dCQUNkLGdCQUFnQjt3QkFDaEIseUJBQXlCO3dCQUN6QixhQUFhO3FCQUNkO29CQUVELE9BQU8sRUFBRSxDQUFDLFdBQVcsRUFBRSxZQUFZLEVBQUUsbUJBQW1CLENBQUM7b0JBQ3pELE9BQU8sRUFBRTt3QkFDUCxhQUFhO3dCQUNiLGVBQWU7d0JBQ2YsZUFBZTt3QkFDZixhQUFhO3dCQUNiLHFCQUFxQjt3QkFDckIscUJBQXFCO3dCQUNyQixjQUFjO3dCQUNkLGFBQWE7d0JBQ2IsaUJBQWlCO3dCQUNqQix1QkFBdUI7d0JBQ3ZCLGtCQUFrQjt3QkFDbEIsd0JBQXdCO3dCQUN4Qiw0QkFBNEI7d0JBQzVCLDBCQUEwQjt3QkFDMUIsd0JBQXdCO3dCQUN4QixtQkFBbUI7d0JBQ25CLGNBQWM7d0JBQ2QsZ0JBQWdCO3dCQUNoQix5QkFBeUI7d0JBQ3pCLGFBQWE7cUJBQ2Q7b0JBQ0QsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7aUJBQ2xDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG4vLy0tLSBNb2R1bGVzXG5pbXBvcnQgeyBJb25pY01vZHVsZSB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG4vLy0tLSBEaXJlY3RpdmVzXG5pbXBvcnQgeyBCdXR0b25Mb2FkZXJEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvYnV0dG9uLWxvYWRlci5kaXJlY3RpdmUnO1xuLy8tLS0gQ29tcG9uZW50c1xuaW1wb3J0IHsgUGFnZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wYWdlL3BhZ2UuY29tcG9uZW50JztcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9idXR0b24vYnV0dG9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTcGFjZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvc3BhY2VyL3NwYWNlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgSWNvbkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9pY29uL2ljb24uY29tcG9uZW50JztcbmltcG9ydCB7IE5vdGlmaWNhdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9ub3RpZmljYXRpb24vbm90aWZpY2F0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBbGVydENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hbGVydC9hbGVydC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTG9nb0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9sb2dvL2xvZ28uY29tcG9uZW50JztcbmltcG9ydCB7IENhbGVuZGFyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NhbGVuZGFyL2NhbGVuZGFyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb3JtVmFsaWRhdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9mb3JtLXZhbGlkYXRpb24vZm9ybS12YWxpZGF0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb3JtSW5wdXRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZm9ybS1pbnB1dC9mb3JtLWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb3JtSW5wdXRTZWxlY3RDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZm9ybS1pbnB1dC1zZWxlY3QvZm9ybS1pbnB1dC1zZWxlY3QuY29tcG9uZW50JztcbmltcG9ydCB7IEZvcm1JbnB1dFRleHRBcmVhQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2Zvcm0taW5wdXQtdGV4dC1hcmVhL2Zvcm0taW5wdXQtdGV4dC1hcmVhLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb3JtSW5wdXRTZWFyY2hDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZm9ybS1pbnB1dC1zZWFyY2gvZm9ybS1pbnB1dC1zZWFyY2guY29tcG9uZW50JztcbmltcG9ydCB7IENoYXRCdWJibGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY2hhdC1idWJibGUvY2hhdC1idWJibGUuY29tcG9uZW50JztcbmltcG9ydCB7IEJhZGdlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2JhZGdlL2JhZGdlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTcGlubmVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3NwaW5uZXIvc3Bpbm5lci5jb21wb25lbnQnO1xuaW1wb3J0IHsgVmVyaWZpY2F0aW9uQ29kZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy92ZXJpZmljYXRpb24tY29kZS92ZXJpZmljYXRpb24tY29kZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWl4UENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9taXgtcC9taXgtcC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRm9ybUlucHV0U3RyaW5nRGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9mb3JtLWlucHV0LXN0cmluZy1kYXRlL2Zvcm0taW5wdXQtc3RyaW5nLWRhdGUuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgUGFnZUNvbXBvbmVudCxcbiAgICBCdXR0b25Db21wb25lbnQsXG4gICAgU3BhY2VyQ29tcG9uZW50LFxuICAgIEljb25Db21wb25lbnQsXG4gICAgQnV0dG9uTG9hZGVyRGlyZWN0aXZlLFxuICAgIE5vdGlmaWNhdGlvbkNvbXBvbmVudCxcbiAgICBBbGVydENvbXBvbmVudCxcbiAgICBMb2dvQ29tcG9uZW50LFxuICAgIENhbGVuZGFyQ29tcG9uZW50LFxuICAgIEZvcm1WYWxpZGF0aW9uQ29tcG9uZW50LFxuICAgIEZvcm1JbnB1dENvbXBvbmVudCxcbiAgICBGb3JtSW5wdXRTZWxlY3RDb21wb25lbnQsXG4gICAgRm9ybUlucHV0U3RyaW5nRGF0ZUNvbXBvbmVudCxcbiAgICBGb3JtSW5wdXRUZXh0QXJlYUNvbXBvbmVudCxcbiAgICBGb3JtSW5wdXRTZWFyY2hDb21wb25lbnQsXG4gICAgQ2hhdEJ1YmJsZUNvbXBvbmVudCxcbiAgICBCYWRnZUNvbXBvbmVudCxcbiAgICBTcGlubmVyQ29tcG9uZW50LFxuICAgIFZlcmlmaWNhdGlvbkNvZGVDb21wb25lbnQsXG4gICAgTWl4UENvbXBvbmVudCxcbiAgXSxcblxuICBpbXBvcnRzOiBbSW9uaWNNb2R1bGUsIENvbW1vbk1vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZV0sXG4gIGV4cG9ydHM6IFtcbiAgICBQYWdlQ29tcG9uZW50LFxuICAgIEJ1dHRvbkNvbXBvbmVudCxcbiAgICBTcGFjZXJDb21wb25lbnQsXG4gICAgSWNvbkNvbXBvbmVudCxcbiAgICBCdXR0b25Mb2FkZXJEaXJlY3RpdmUsXG4gICAgTm90aWZpY2F0aW9uQ29tcG9uZW50LFxuICAgIEFsZXJ0Q29tcG9uZW50LFxuICAgIExvZ29Db21wb25lbnQsXG4gICAgQ2FsZW5kYXJDb21wb25lbnQsXG4gICAgRm9ybVZhbGlkYXRpb25Db21wb25lbnQsXG4gICAgRm9ybUlucHV0Q29tcG9uZW50LFxuICAgIEZvcm1JbnB1dFNlbGVjdENvbXBvbmVudCxcbiAgICBGb3JtSW5wdXRTdHJpbmdEYXRlQ29tcG9uZW50LFxuICAgIEZvcm1JbnB1dFRleHRBcmVhQ29tcG9uZW50LFxuICAgIEZvcm1JbnB1dFNlYXJjaENvbXBvbmVudCxcbiAgICBDaGF0QnViYmxlQ29tcG9uZW50LFxuICAgIEJhZGdlQ29tcG9uZW50LFxuICAgIFNwaW5uZXJDb21wb25lbnQsXG4gICAgVmVyaWZpY2F0aW9uQ29kZUNvbXBvbmVudCxcbiAgICBNaXhQQ29tcG9uZW50LFxuICBdLFxuICBzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG59KVxuZXhwb3J0IGNsYXNzIENhcmVGaXJzdExpYnJhcnlNb2R1bGUge31cbiJdfQ==
125
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlicmFyeS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jYXJlZmlyc3QvbGlicmFyeS9zcmMvbGliL2xpYnJhcnkubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUU3RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDakUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDakUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDekYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNqRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUNqRyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUNsRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw0REFBNEQsQ0FBQztBQUN0RyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxrRUFBa0UsQ0FBQztBQUM5RyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw0REFBNEQsQ0FBQztBQUN0RyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUNyRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDcEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDMUUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sNERBQTRELENBQUM7QUFDdkcsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHNFQUFzRSxDQUFDO0FBQ3BILE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGdFQUFnRSxDQUFDOztBQXFENUcsTUFBTSxPQUFPLHNCQUFzQjt3R0FBdEIsc0JBQXNCO3lHQUF0QixzQkFBc0IsaUJBakQvQixhQUFhO1lBQ2IsZUFBZTtZQUNmLGVBQWU7WUFDZixhQUFhO1lBQ2IscUJBQXFCO1lBQ3JCLHFCQUFxQjtZQUNyQixjQUFjO1lBQ2QsYUFBYTtZQUNiLGlCQUFpQjtZQUNqQix1QkFBdUI7WUFDdkIsa0JBQWtCO1lBQ2xCLDBCQUEwQjtZQUMxQix3QkFBd0I7WUFDeEIsNEJBQTRCO1lBQzVCLDBCQUEwQjtZQUMxQix3QkFBd0I7WUFDeEIsbUJBQW1CO1lBQ25CLGNBQWM7WUFDZCxnQkFBZ0I7WUFDaEIseUJBQXlCO1lBQ3pCLGFBQWEsYUFHTCxXQUFXLEVBQUUsWUFBWSxFQUFFLG1CQUFtQixhQUV0RCxhQUFhO1lBQ2IsZUFBZTtZQUNmLGVBQWU7WUFDZixhQUFhO1lBQ2IscUJBQXFCO1lBQ3JCLHFCQUFxQjtZQUNyQixjQUFjO1lBQ2QsYUFBYTtZQUNiLGlCQUFpQjtZQUNqQix1QkFBdUI7WUFDdkIsa0JBQWtCO1lBQ2xCLDBCQUEwQjtZQUMxQix3QkFBd0I7WUFDeEIsNEJBQTRCO1lBQzVCLDBCQUEwQjtZQUMxQix3QkFBd0I7WUFDeEIsbUJBQW1CO1lBQ25CLGNBQWM7WUFDZCxnQkFBZ0I7WUFDaEIseUJBQXlCO1lBQ3pCLGFBQWE7eUdBSUosc0JBQXNCLFlBMUJ2QixXQUFXLEVBQUUsWUFBWSxFQUFFLG1CQUFtQjs7NEZBMEI3QyxzQkFBc0I7a0JBbkRsQyxRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRTt3QkFDWixhQUFhO3dCQUNiLGVBQWU7d0JBQ2YsZUFBZTt3QkFDZixhQUFhO3dCQUNiLHFCQUFxQjt3QkFDckIscUJBQXFCO3dCQUNyQixjQUFjO3dCQUNkLGFBQWE7d0JBQ2IsaUJBQWlCO3dCQUNqQix1QkFBdUI7d0JBQ3ZCLGtCQUFrQjt3QkFDbEIsMEJBQTBCO3dCQUMxQix3QkFBd0I7d0JBQ3hCLDRCQUE0Qjt3QkFDNUIsMEJBQTBCO3dCQUMxQix3QkFBd0I7d0JBQ3hCLG1CQUFtQjt3QkFDbkIsY0FBYzt3QkFDZCxnQkFBZ0I7d0JBQ2hCLHlCQUF5Qjt3QkFDekIsYUFBYTtxQkFDZDtvQkFFRCxPQUFPLEVBQUUsQ0FBQyxXQUFXLEVBQUUsWUFBWSxFQUFFLG1CQUFtQixDQUFDO29CQUN6RCxPQUFPLEVBQUU7d0JBQ1AsYUFBYTt3QkFDYixlQUFlO3dCQUNmLGVBQWU7d0JBQ2YsYUFBYTt3QkFDYixxQkFBcUI7d0JBQ3JCLHFCQUFxQjt3QkFDckIsY0FBYzt3QkFDZCxhQUFhO3dCQUNiLGlCQUFpQjt3QkFDakIsdUJBQXVCO3dCQUN2QixrQkFBa0I7d0JBQ2xCLDBCQUEwQjt3QkFDMUIsd0JBQXdCO3dCQUN4Qiw0QkFBNEI7d0JBQzVCLDBCQUEwQjt3QkFDMUIsd0JBQXdCO3dCQUN4QixtQkFBbUI7d0JBQ25CLGNBQWM7d0JBQ2QsZ0JBQWdCO3dCQUNoQix5QkFBeUI7d0JBQ3pCLGFBQWE7cUJBQ2Q7b0JBQ0QsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7aUJBQ2xDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG4vLy0tLSBNb2R1bGVzXG5pbXBvcnQgeyBJb25pY01vZHVsZSB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG4vLy0tLSBEaXJlY3RpdmVzXG5pbXBvcnQgeyBCdXR0b25Mb2FkZXJEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvYnV0dG9uLWxvYWRlci5kaXJlY3RpdmUnO1xuLy8tLS0gQ29tcG9uZW50c1xuaW1wb3J0IHsgUGFnZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wYWdlL3BhZ2UuY29tcG9uZW50JztcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9idXR0b24vYnV0dG9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTcGFjZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvc3BhY2VyL3NwYWNlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgSWNvbkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9pY29uL2ljb24uY29tcG9uZW50JztcbmltcG9ydCB7IE5vdGlmaWNhdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9ub3RpZmljYXRpb24vbm90aWZpY2F0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBbGVydENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hbGVydC9hbGVydC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTG9nb0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9sb2dvL2xvZ28uY29tcG9uZW50JztcbmltcG9ydCB7IENhbGVuZGFyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NhbGVuZGFyL2NhbGVuZGFyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb3JtVmFsaWRhdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9mb3JtLXZhbGlkYXRpb24vZm9ybS12YWxpZGF0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb3JtSW5wdXRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZm9ybS1pbnB1dC9mb3JtLWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb3JtSW5wdXRTZWxlY3RDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZm9ybS1pbnB1dC1zZWxlY3QvZm9ybS1pbnB1dC1zZWxlY3QuY29tcG9uZW50JztcbmltcG9ydCB7IEZvcm1JbnB1dFRleHRBcmVhQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2Zvcm0taW5wdXQtdGV4dC1hcmVhL2Zvcm0taW5wdXQtdGV4dC1hcmVhLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb3JtSW5wdXRTZWFyY2hDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZm9ybS1pbnB1dC1zZWFyY2gvZm9ybS1pbnB1dC1zZWFyY2guY29tcG9uZW50JztcbmltcG9ydCB7IENoYXRCdWJibGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY2hhdC1idWJibGUvY2hhdC1idWJibGUuY29tcG9uZW50JztcbmltcG9ydCB7IEJhZGdlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2JhZGdlL2JhZGdlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTcGlubmVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3NwaW5uZXIvc3Bpbm5lci5jb21wb25lbnQnO1xuaW1wb3J0IHsgVmVyaWZpY2F0aW9uQ29kZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy92ZXJpZmljYXRpb24tY29kZS92ZXJpZmljYXRpb24tY29kZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWl4UENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9taXgtcC9taXgtcC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRm9ybUlucHV0U3RyaW5nRGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9mb3JtLWlucHV0LXN0cmluZy1kYXRlL2Zvcm0taW5wdXQtc3RyaW5nLWRhdGUuY29tcG9uZW50JztcbmltcG9ydCB7IEZvcm1JbnB1dEN1cnJlbmN5Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2Zvcm0taW5wdXQtY3VycmVuY3kvZm9ybS1pbnB1dC1jdXJyZW5jeS5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBQYWdlQ29tcG9uZW50LFxuICAgIEJ1dHRvbkNvbXBvbmVudCxcbiAgICBTcGFjZXJDb21wb25lbnQsXG4gICAgSWNvbkNvbXBvbmVudCxcbiAgICBCdXR0b25Mb2FkZXJEaXJlY3RpdmUsXG4gICAgTm90aWZpY2F0aW9uQ29tcG9uZW50LFxuICAgIEFsZXJ0Q29tcG9uZW50LFxuICAgIExvZ29Db21wb25lbnQsXG4gICAgQ2FsZW5kYXJDb21wb25lbnQsXG4gICAgRm9ybVZhbGlkYXRpb25Db21wb25lbnQsXG4gICAgRm9ybUlucHV0Q29tcG9uZW50LFxuICAgIEZvcm1JbnB1dEN1cnJlbmN5Q29tcG9uZW50LFxuICAgIEZvcm1JbnB1dFNlbGVjdENvbXBvbmVudCxcbiAgICBGb3JtSW5wdXRTdHJpbmdEYXRlQ29tcG9uZW50LFxuICAgIEZvcm1JbnB1dFRleHRBcmVhQ29tcG9uZW50LFxuICAgIEZvcm1JbnB1dFNlYXJjaENvbXBvbmVudCxcbiAgICBDaGF0QnViYmxlQ29tcG9uZW50LFxuICAgIEJhZGdlQ29tcG9uZW50LFxuICAgIFNwaW5uZXJDb21wb25lbnQsXG4gICAgVmVyaWZpY2F0aW9uQ29kZUNvbXBvbmVudCxcbiAgICBNaXhQQ29tcG9uZW50LFxuICBdLFxuXG4gIGltcG9ydHM6IFtJb25pY01vZHVsZSwgQ29tbW9uTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlXSxcbiAgZXhwb3J0czogW1xuICAgIFBhZ2VDb21wb25lbnQsXG4gICAgQnV0dG9uQ29tcG9uZW50LFxuICAgIFNwYWNlckNvbXBvbmVudCxcbiAgICBJY29uQ29tcG9uZW50LFxuICAgIEJ1dHRvbkxvYWRlckRpcmVjdGl2ZSxcbiAgICBOb3RpZmljYXRpb25Db21wb25lbnQsXG4gICAgQWxlcnRDb21wb25lbnQsXG4gICAgTG9nb0NvbXBvbmVudCxcbiAgICBDYWxlbmRhckNvbXBvbmVudCxcbiAgICBGb3JtVmFsaWRhdGlvbkNvbXBvbmVudCxcbiAgICBGb3JtSW5wdXRDb21wb25lbnQsXG4gICAgRm9ybUlucHV0Q3VycmVuY3lDb21wb25lbnQsXG4gICAgRm9ybUlucHV0U2VsZWN0Q29tcG9uZW50LFxuICAgIEZvcm1JbnB1dFN0cmluZ0RhdGVDb21wb25lbnQsXG4gICAgRm9ybUlucHV0VGV4dEFyZWFDb21wb25lbnQsXG4gICAgRm9ybUlucHV0U2VhcmNoQ29tcG9uZW50LFxuICAgIENoYXRCdWJibGVDb21wb25lbnQsXG4gICAgQmFkZ2VDb21wb25lbnQsXG4gICAgU3Bpbm5lckNvbXBvbmVudCxcbiAgICBWZXJpZmljYXRpb25Db2RlQ29tcG9uZW50LFxuICAgIE1peFBDb21wb25lbnQsXG4gIF0sXG4gIHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcbn0pXG5leHBvcnQgY2xhc3MgQ2FyZUZpcnN0TGlicmFyeU1vZHVsZSB7fVxuIl19
@@ -123,23 +123,47 @@ export class CFPFormValidators {
123
123
  const value = control.value;
124
124
  if (!value)
125
125
  return null;
126
- if (!dialCodes || !dialCodes.length)
127
- dialCodes = ['27'];
128
- if (!value.startsWith('+'))
129
- return { errorMessage: `Please start your number with a '+' followed by a valid dial code for eg. +${dialCodes[0]}` };
130
- if (!dialCodes.map((code) => value.slice(1).startsWith(code)).some((code) => code)) {
131
- return { errorMessage: 'No valid dial code received' };
126
+ if (dialCodes) {
127
+ if (!value.startsWith('+'))
128
+ return { errorMessage: `Please start your number with a '+' followed by a valid dial code for eg. +${dialCodes[0]}` };
129
+ if (!dialCodes.some((code) => value.slice(1).startsWith(code))) {
130
+ return { errorMessage: 'No valid dial code received' };
131
+ }
132
+ if (dialCodes.some((code) => value.slice(1).startsWith(code + '0')))
133
+ return { errorMessage: `Please make sure that there are no 0's behind your dial code for eg. +${dialCodes[0]}0` };
134
+ if (value.slice(dialCodes.length ? 1 : 0).match(/[^0-9]/g))
135
+ return { errorMessage: 'No special characters or letters permitted in number' };
136
+ if (value.length < 12)
137
+ return { errorMessage: `Length required ${12 - value.length}` };
138
+ if (value.slice(1).startsWith('27') && value.length > 12)
139
+ return { errorMessage: `Length exceeded by ${value.length - 12}` };
140
+ }
141
+ else {
142
+ if (value.startsWith('00'))
143
+ return { errorMessage: 'Number may not start with "00"' };
144
+ if (value.startsWith('+0'))
145
+ return { errorMessage: 'Number may not start with "+0"' };
146
+ if (value.startsWith('+270'))
147
+ return { errorMessage: 'Number may not start with "+270"' };
148
+ if (!value.startsWith('0') && !value.startsWith('+'))
149
+ return { errorMessage: 'Either start with "0" or "+"' };
150
+ if (value.startsWith('0')) {
151
+ if (value.match(/[^0-9]/g))
152
+ return { errorMessage: 'No special characters or letters permitted in number' };
153
+ if (value.length < 10)
154
+ return { errorMessage: `Length required: ${10 - value.length}` };
155
+ if (value.length > 10)
156
+ return { errorMessage: `Length exceeded by ${value.length - 10}` };
157
+ }
158
+ if (value.startsWith('+')) {
159
+ if (value.slice(1).match(/[^0-9]/g))
160
+ return { errorMessage: 'No special characters or letters permitted in number' };
161
+ if (value.length < 11)
162
+ return { errorMessage: `Length required ${11 - value.length}` };
163
+ }
132
164
  }
133
- if (dialCodes.map((code) => value.slice(1).startsWith(code + '0')).some((code) => code))
134
- return { errorMessage: `Please make sure that there are no 0's behind your dial code for eg. +${dialCodes[0]}0` };
135
- if (value.slice(dialCodes && dialCodes.length ? 1 : 0).match(/[^0-9]/g))
136
- return { errorMessage: 'No special characters or letters permitted in number' };
137
- if (value.length < 12)
138
- return { errorMessage: `Length required ${12 - value.length}` };
139
- if (value.slice(1).startsWith('27') && value.length > 12)
140
- return { errorMessage: `Length exceeded by ${value.length - 12}` };
141
165
  return null;
142
166
  };
143
167
  }
144
168
  }
145
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS12YWxpZGF0b3JzLXV0aWxpdHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jYXJlZmlyc3QvbGlicmFyeS9zcmMvbGliL3V0aWxzL2Zvcm0tdmFsaWRhdG9ycy11dGlsaXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVVBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRCxPQUFPLGlCQUFpQixNQUFNLG9CQUFvQixDQUFDO0FBQ25ELE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMxQixPQUFPLGlCQUFpQixNQUFNLGdDQUFnQyxDQUFDO0FBQy9ELEtBQUssQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztBQUloQyxNQUFNLE9BQU8saUJBQWlCO0lBUTVCLE1BQU0sQ0FBQyxTQUFTLENBQUMseUJBQWlDO1FBQ2hELE9BQU8sQ0FBQyxPQUF3QixFQUEyQixFQUFFO1lBRTNELE1BQU0sZ0JBQWdCLEdBQTJCLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDLHlCQUF5QixDQUFDLElBQUksSUFBSSxDQUFDO1lBR3pHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxLQUFLO2dCQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsbUJBQW1CLEVBQUUsQ0FBQztpQkFFdEUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLO2dCQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsZ0NBQWdDLEVBQUUsQ0FBQztpQkFFOUUsSUFBSSxPQUFPLENBQUMsS0FBSyxJQUFJLE9BQU8sRUFBRSxLQUFLLEtBQUssZ0JBQWdCLEVBQUUsS0FBSztnQkFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLHdCQUF3QixFQUFFLENBQUM7WUFFeEgsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDLENBQUM7SUFDSixDQUFDO0lBUUQsTUFBTSxDQUFDLFVBQVU7UUFDZixPQUFPLENBQUMsT0FBd0IsRUFBMkIs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RyxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBRTdILE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQyxDQUFDO0lBQ0osQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBGb3JtIHZhbGlkYXRvcnNcbiAqXG4gKiBAZmlsZSAgICAgICAgICBmb3JtLXZhbGlkYXRvcnNcbiAqIEBkZXNjcmlwdGlvbiAgIFZhcmlvdXMgZm9ybSB2YWxpZGF0b3JzXG4gKiBAYXV0aG9yICAgICAgICBKYWNxdWVzIENvZXR6ZWVcbiAqIEBzaW5jZSAgICAgICAgIDIwMjIgLSAwMSAtIDIwXG4gKiBAdXNhZ2UgICAgICAgICBEaXNwbGF5IFwiZXJyb3JNZXNzYWdlXCIga2V5IHZhbHVlIGFzIHZhbGlkYXRvciByZXNwb25zZSBtZXNzYWdlXG4gKi9cblxuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHBhc3N3b3JkVmFsaWRhdG9yIGZyb20gJ3Bhc3N3b3JkLXZhbGlkYXRvcic7XG5pbXBvcnQgZGF5anMgZnJvbSAnZGF5anMnO1xuaW1wb3J0IGN1c3RvbVBhcnNlRm9ybWF0IGZyb20gJ2RheWpzL3BsdWdpbi9jdXN0b21QYXJzZUZvcm1hdCc7XG5kYXlqcy5leHRlbmQoY3VzdG9tUGFyc2VGb3JtYXQpO1xuLy8tLS0gSW50ZXJmYWNlc1xuaW1wb3J0IHR5cGUgeyBWYWxpZGF0aW9uRXJyb3JzLCBWYWxpZGF0b3JGbiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuZXhwb3J0IGNsYXNzIENGUEZvcm1WYWxpZGF0b3JzIHtcbiAgLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgKiBAbmFtZSAgICAgICAgICBjaGVja1BTV1JldHlwZVxuICAgKiBAZGVzY3JpcHRpb24gICBDaGVjayBpZiBwYXNzd29yZHMgbWF0Y2hcbiAgICogQHBhcmFtICAgICAgICAge3N0cmluZ30gY29udHJvbE5hbWVUb0NoZWNrQWdhaW5zdFxuICAgKiBAcmV0dXJucyAgICAgICB7VmFsaWRhdG9yRm59XG4gICAqIEB1c2FnZSAgICAgICAgIEZvcm1WYWxpZGF0b3JzLmNvbXBhcmVUbygncGFzc3dvcmQnKVxuICAgKi9cbiAgc3RhdGljIGNvbXBhcmVUbyhjb250cm9sTmFtZVRvQ2hlY2tBZ2FpbnN0OiBzdHJpbmcpOiBWYWxpZGF0b3JGbiB7XG4gICAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PiB7XG4gICAgICAvLy0tLSBDb21wYXJlIGNvbnRyb2xzXG4gICAgICBjb25zdCBjb250cm9sVG9DaGVja1RvOiBBYnN0cmFjdENvbnRyb2wgfCBudWxsID0gY29udHJvbD8ucGFyZW50Py5nZXQoY29udHJvbE5hbWVUb0NoZWNrQWdhaW5zdCkgfHwgbnVsbDtcblxuICAgICAgLy8tLS0gQ2hlY2sgcHJpbWFyeSBjb250cm9sIHZhbHVlXG4gICAgICBpZiAoIWNvbnRyb2xUb0NoZWNrVG8/LnZhbHVlKSByZXR1cm4geyBlcnJvck1lc3NhZ2U6IGBQYXNzd29yZCBSZXF1aXJlZGAgfTtcbiAgICAgIC8vLS0tIENoZWNrIHNlY29uZGFyeSBjb250cm9sIHZhbHVlXG4gICAgICBlbHNlIGlmICghY29udHJvbC52YWx1ZSkgcmV0dXJuIHsgZXJyb3JNZXNzYWdlOiBgUGFzc3dvcmQgY29uZmlybWF0aW9uIHJlcXVpcmVkYCB9O1xuICAgICAgLy8tLS0gQ29tcGFyZSBjb250cm9sc1xuICAgICAgZWxzZSBpZiAoY29udHJvbC52YWx1ZSAmJiBjb250cm9sPy52YWx1ZSAhPT0gY29udHJvbFRvQ2hlY2tUbz8udmFsdWUpIHJldHVybiB7IGVycm9yTWVzc2FnZTogYFBhc3N3b3JkcyBkbyBub3QgbWF0Y2hgIH07XG5cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH07XG4gIH1cblxuICAvKiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAqIEBuYW1lICAgICAgICAgIGFzUGFzc3dvcmRcbiAgICogQGRlc2NyaXB0aW9uICAgVmFsaWRhdGUgY29udHJvbCBhcyBwYXNzd29yZFxuICAgKiBAcmV0dXJucyAgICAgICB7VmFsaWRhdG9yRm59XG4gICAqIEB1c2FnZSAgICAgICAgIEZvcm1WYWxpZGF0b3JzLmFzUGFzc3dvcmQoKVxuICAgKi9cbiAgc3RhdGljIGFzUGFzc3dvcmQoKTogVmFsaWRhdG9yRm4ge1xuICAgIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPT4ge1xuICAgICAgY29uc3Qgc2NoZW1hID0gbmV3IHBhc3N3b3JkVmFsaWRhdG9yKCk7XG5cbiAgICAgIC8vLS0tIFNldHVwIHBhc3N3b3JkIHJlcXVpcmVtZW50c1xuICAgICAgc2NoZW1hXG4gICAgICAgIC8vLS0tIE1pbmltdW0gbGVuZ3RoIDhcbiAgICAgICAgLmlzKClcbiAgICAgICAgLm1pbig4LCAnTWluaW11bSBvZiA4IGNoYXJhY3RlcnMnKVxuICAgICAgICAvLy0tLSBNYXhpbXVtIGxlbmd0aCA1MFxuICAgICAgICAuaXMoKVxuICAgICAgICAubWF4KDMwLCAnTWF4aW11bSBvZiAzMCBjaGFyYWN0ZXJzJylcbiAgICAgICAgLy8tLS0gTXVzdCBoYXZlIHVwcGVyY2FzZSBsZXR0ZXJzXG4gICAgICAgIC5oYXMoKVxuICAgICAgICAudXBwZXJjYXNlKHVuZGVmaW5lZCwgJ0F0IGxlYXN0IG9uZSBVUFBFUkNBU0UgY2hhcmFjdGVyJylcbiAgICAgICAgLy8tLS0gTXVzdCBoYXZlIGxvd2VyY2FzZSBsZXR0ZXJzXG4gICAgICAgIC5oYXMoKVxuICAgICAgICAubG93ZXJjYXNlKHVuZGVmaW5lZCwgJ0F0IGxlYXN0IG9uZSBsb3dlcmNhc2UgY2hhcmFjdGVyJylcbiAgICAgICAgLy8tLS0gTXVzdCBoYXZlIGF0IGxlYXN0IDEgZGlnaXRzXG4gICAgICAgIC5oYXMoKVxuICAgICAgICAuZGlnaXRzKHVuZGVmaW5lZCwgJ0F0IGxlYXN0IG9uZSBkaWdpdCcpXG4gICAgICAgIC8vLS0tIFNwZWNpYWwgY2hhcmFjdGVyc1xuICAgICAgICAuaGFzKClcbiAgICAgICAgLnN5bWJvbHModW5kZWZpbmVkLCAnQXQgbGVhc3Qgb25lIHNwZWNpYWwgY2hhcmFjdGVyJyk7XG5cbiAgICAgIC8vLS0tIFZhbGlkYXRlIHN0cmluZ1xuICAgICAgY29uc3QgaW5WYWxpZCA9IHNjaGVtYS52YWxpZGF0ZShjb250cm9sLnZhbHVlLCB7IGRldGFpbHM6IHRydWUgfSkgYXMge1xuICAgICAgICB2YWxpZGF0aW9uOiBzdHJpbmc7XG4gICAgICAgIG1lc3NhZ2U6IHN0cmluZztcbiAgICAgICAgYXJndW1lbnRzPzogbnVtYmVyO1xuICAgICAgfVtdO1xuXG4gICAgICBjb25zdCByZXR1cm5SZXNwb25zZTogeyBba2V5OiBzdHJpbmddOiB1bmtub3duIH0gPSB7fTtcbiAgICAgIGluVmFsaWQuZm9yRWFjaCgoZXJyb3IpID0+IHtcbiAgICAgICAgcmV0dXJuUmVzcG9uc2VbJ3Bhc3N3b3JkLScgKyBlcnJvci52YWxpZGF0aW9uXSA9IGVycm9yLm1lc3NhZ2U7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBpblZhbGlkLmxlbmd0aCA/IHJldHVyblJlc3BvbnNlIDogbnVsbDtcbiAgICB9O1xuICB9XG5cbiAgLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgKiBAbmFtZSAgICAgICAgICBhc0VtYWlsXG4gICAqIEBkZXNjcmlwdGlvbiAgIFZhbGlkYXRlIGNvbnRyb2wgYXMgZW1haWxcbiAgICogQHBhcmFtICAgICAgICAge3RydWV9IGNhbkJlRW1wdHlcbiAgICogQHJldHVybnMgICAgICAge1ZhbGlkYXRvckZufVxuICAgKiBAdXNhZ2UgICAgICAgICBGb3JtVmFsaWRhdG9ycy5hc0VtYWlsKHRydWU/KVxuICAgKi9cbiAgc3RhdGljIGFzRW1haWwoY2FuQmVFbXB0eT86IHRydWUpOiBWYWxpZGF0b3JGbiB7XG4gICAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PiB7XG4gICAgICBsZXQgc2V0RXJyb3JzID0gbnVsbDtcbiAgICAgIGNvbnN0IGVtYWlsUmVnRXggPSBuZXcgUmVnRXhwKCdeW1xcXFx3LS5dK0BbXFxcXHctXStcXFxcLltcXFxcd10rJyk7XG5cbiAgICAgIC8vLS0tIENoZWNrIGlmIGVtYWlsIGNhbiBiZSBlbXB0eVxuICAgICAgaWYgKGNhbkJlRW1wdHkgJiYgKGNvbnRyb2wudmFsdWUgPT09IG51bGwgfHwgY29udHJvbC52YWx1ZSA9PT0gJycpKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuXG4gICAgICAvLy0tLSBUZXN0IFJlZ0V4cFxuICAgICAgaWYgKCEoY29udHJvbC52YWx1ZSAmJiBlbWFpbFJlZ0V4LnRlc3QoY29udHJvbC52YWx1ZSkgJiYgdHlwZW9mIGNvbnRyb2wudmFsdWUgPT09ICdzdHJpbmcnICYmICFjb250cm9sLnZhbHVlLmluY2x1ZGVzKCcgJykpKSB7XG4gICAgICAgIHNldEVycm9ycyA9IHsgZXJyb3JNZXNzYWdlOiBgTm90IGEgdmFsaWQgZW1haWwgYWRkcmVzc2AgfTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHNldEVycm9ycztcbiAgICB9O1xuICB9XG5cbiAgLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgKiBAbmFtZSAgICAgICAgICBpc0luXG4gICAqIEBkZXNjcmlwdGlvbiAgIFZhbGlkYXRlIGNvbnRyb2wgdmFsdWUgaXMgcGFydCBvZiBhIGdpdmVuIGxpc3RcbiAgICogQHBhcmFtICAgICAgICAgeyhzdHJpbmcgfCBudW1iZXIpW119IGxpc3RcbiAgICogQHJldHVybnMgICAgICAge1ZhbGlkYXRvckZufVxuICAgKiBAdXNhZ2UgICAgICAgICBGb3JtVmFsaWRhdG9ycy5pc0luKClcbiAgICovXG4gIHN0YXRpYyBpc0luKGxpc3Q6IChzdHJpbmcgfCBudW1iZXIpW10pOiBWYWxpZGF0b3JGbiB7XG4gICAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PiB7XG4gICAgICBpZiAoIWxpc3QuaW5jbHVkZXMoY29udHJvbC52YWx1ZSkpIHJldHVybiB7IGVycm9yTWVzc2FnZTogJ0NvbnRyb2wgdmFsdWUgbm90IHBhcnQgb2YgZWxpZ2libGUgdmFsdWVzJyB9O1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfTtcbiAgfVxuXG4gIC8qKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICogQG5hbWUgICAgICAgICAgaXNTQUlETnVtYmVyXG4gICAqIEBkZXNjcmlwdGlvbiAgIFZhbGlkYXRlIGNvbnRyb2wgdmFsdWUgaXMgYSB2YWxpZCBSU0EgSUQgTnVtYmVyXG4gICAqIEBwYXJhbSAgICAgICAgIHt0cnVlfSBjYW5CZUVtcHR5XG4gICAqIEByZXR1cm5zICAgICAgIHtWYWxpZGF0b3JGbn1cbiAgICogQHVzYWdlICAgICAgICAgRm9ybVZhbGlkYXRvcnMuaXNTQUlETnVtYmVyKHRydWU/KVxuICAgKi9cbiAgc3RhdGljIGlzU0FJRE51bWJlcihjYW5CZUVtcHR5PzogdHJ1ZSk6IFZhbGlkYXRvckZuIHtcbiAgICByZXR1cm4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0+IHtcbiAgICAgIGNvbnN0IHZhbGlkYXRlRGF0ZSA9ICgpOiBib29sZWFuID0+IHtcbiAgICAgICAgaWYgKHR5cGVvZiBjb250cm9sLnZhbHVlICE9PSAnc3RyaW5nJyB8fCBjb250cm9sLnZhbHVlLmxlbmd0aCA8IDYpIHJldHVybiBmYWxzZTtcbiAgICAgICAgY29uc3QgbW9udGggPSBjb250cm9sLnZhbHVlLnNsaWNlKDIsIDQpO1xuICAgICAgICBjb25zdCBkYXkgPSBjb250cm9sLnZhbHVlLnNsaWNlKDQsIDYpO1xuICAgICAgICBpZiAoK21vbnRoIDwgMCAmJiArbW9udGggPiAxMykgcmV0dXJuIGZhbHNlO1xuICAgICAgICBpZiAoK2RheSA8IDAgJiYgK2RheSA+IDMxKSByZXR1cm4gZmFsc2U7XG4gICAgICAgIGlmICghZGF5anMoY29udHJvbC52YWx1ZS5zbGljZSgwLCA2KSwgJ1lZTU1ERCcsIHRydWUpLmlzVmFsaWQoKSkgcmV0dXJuIGZhbHNlO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IGNoZWNrc3VtID0gKCk6IGJvb2xlYW4gPT4ge1xuICAgICAgICBpZiAodHlwZW9mIGNvbnRyb2wudmFsdWUgIT09ICdzdHJpbmcnIHx8IGNvbnRyb2wudmFsdWUubGVuZ3RoICE9PSAxMykgcmV0dXJuIGZhbHNlO1xuICAgICAgICBsZXQgblN1bSA9IDA7IC8vLS0tIFRvdGFsIHN1bSBvZiBhbGwgdGhlIHZhbHVlc1xuICAgICAgICBsZXQgaXNTZWNvbmQgPSBmYWxzZTsgLy8tLS0gVG8gZG91YmxlIGV2ZXJ5IG90aGVyIHZhbHVlXG4gICAgICAgIC8vLS0tIFN0YXJ0IGZyb20gdGhlIGVuZFxuICAgICAgICBmb3IgKGxldCBpID0gY29udHJvbC52YWx1ZS5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgICAgIGNvbnN0IHZhbDogc3RyaW5nIHwgdW5kZWZpbmVkID0gY29udHJvbC52YWx1ZVtpXTtcbiAgICAgICAgICBpZiAoIXZhbCkgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgIC8vLS0tIEdldCBudW1lcmljYWwgdmFsdWUgZnJvbSBhc2NpaSBzdHJpbmdcbiAgICAgICAgICBsZXQgZDogbnVtYmVyID0gdmFsLmNoYXJDb2RlQXQoMCkgLSAnMCcuY2hhckNvZGVBdCgwKTtcbiAgICAgICAgICAvLy0tLSBEb3VibGUgZXZlcnkgb3RoZXIgdmFsdWVcbiAgICAgICAgICBpZiAoaXNTZWNvbmQgPT0gdHJ1ZSkgZCA9IGQgKiAyO1xuICAgICAgICAgIC8vLS0tIFN1bSB0aGUgdG90YWwgb2YgdGhlIGRvdWJsZWQgdmFsdWVzIGlmIGF2YWlsYWJsZVxuICAgICAgICAgIG5TdW0gKz0gTWF0aC5mbG9vcihkIC8gMTApO1xuICAgICAgICAgIG5TdW0gKz0gZCAlIDEwO1xuICAgICAgICAgIC8vLS0tIEludmVyc2Ugc2Vjb25kIHRvIGRldGVybWluZSBldmVyeSBvdGhlciBpbmRleCB2YWx1ZVxuICAgICAgICAgIGlzU2Vjb25kID0gIWlzU2Vjb25kO1xuICAgICAgICB9XG4gICAgICAgIC8vLS0tIFJldHVybiB0aGUgbW9kdWx1cyAxMCBvZiB0aGUgc3VtbWF0aW9uXG4gICAgICAgIHJldHVybiBuU3VtICUgMTAgPT0gMDtcbiAgICAgIH07XG5cbiAgICAgIGxldCBlcnJvcjogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gICAgICBpZiAoY2FuQmVFbXB0eSAmJiAoIWNvbnRyb2wudmFsdWUgfHwgY29udHJvbC52YWx1ZT8ubGVuZ3RoID09PSAwKSkgcmV0dXJuIG51bGw7XG4gICAgICAvLy0tLSBzdHJpbmdcbiAgICAgIGVsc2UgaWYgKHR5cGVvZiBjb250cm9sLnZhbHVlICE9PSAnc3RyaW5nJykgZXJyb3IgPSAnSW52YWxpZCBSU0EgSUQgTnVtYmVyJztcbiAgICAgIC8vLS0tIExlbmd0aCA9IDEzXG4gICAgICBlbHNlIGlmIChjb250cm9sLnZhbHVlLmxlbmd0aCAhPT0gMTMpIGVycm9yID0gYExlbmd0aCByZXF1aXJlZDogJHsxMyAtIGNvbnRyb2wudmFsdWUubGVuZ3RofWA7XG4gICAgICAvLy0tLSBWYWxpZGF0ZSBkYXRlXG4gICAgICBlbHNlIGlmICghdmFsaWRhdGVEYXRlKCkpIGVycm9yID0gYEludmFsaWQgZGF0ZSBvZiBiaXJ0aGA7XG4gICAgICAvLy0tLSBDaXRpemVuc2hpcFxuICAgICAgZWxzZSBpZiAoIVsnMCcsICcxJ10uaW5jbHVkZXMoY29udHJvbC52YWx1ZS5zbGljZSgxMCwgMTEpKSkgZXJyb3IgPSBgSW52YWxpZCBjaXRpemVuc2hpcCB2YWx1ZWA7XG4gICAgICAvLy0tLSBDaGVja3N1bVxuICAgICAgZWxzZSBpZiAoIWNoZWNrc3VtKCkpIGVycm9yID0gYEludmFsaWQgUlNBIElEIG51bWJlciBjaGVja3N1bWA7XG5cbiAgICAgIHJldHVybiBlcnJvciA/IHsgZXJyb3JNZXNzYWdlOiBlcnJvciB9IDogbnVsbDtcbiAgICB9O1xuICB9XG5cbiAgLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgKiBAbmFtZSAgICAgICAgICBpc1ZhbGlkRGF0ZVxuICAgKiBAZGVzY3JpcHRpb24gICBWYWxpZGF0ZSBjb250cm9sIHZhbHVlIGlzIHBhcnQgb2YgYSBnaXZlbiBsaXN0XG4gICAqIEBwYXJhbSAgICAgICAgIHtzdHJpbmcgfCBudWxsfSBtaW5EYXRlXG4gICAqIEBwYXJhbSAgICAgICAgIHtzdHJpbmcgfCBudWxsfSBtYXhEYXRlXG4gICAqIEByZXR1cm5zICAgICAgIHtWYWxpZGF0b3JGbn1cbiAgICogQHVzYWdlICAgICAgICAgRm9ybVZhbGlkYXRvcnMuaXNWYWxpZERhdGUoJzE5OTktMDEtMDEnLCAnMjAyMC0wMS0wMScpXG4gICAqL1xuICBzdGF0aWMgaXNWYWxpZERhdGUobWluRGF0ZTogc3RyaW5nIHwgbnVsbCwgbWF4RGF0ZT86IHN0cmluZyB8IG51bGwpOiBWYWxpZGF0b3JGbiB7XG4gICAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PiB7XG4gICAgICAvLy0tLSBDaGVjayB0byBzZWUgaWYgYSBpbnZhbGlkIGRhdGUgaXMgcmVjZWl2ZWQgbGlrZSAoMzEgRmViKVxuICAgICAgaWYgKCFkYXlqcyhuZXcgRGF0ZShjb250cm9sLnZhbHVlKSkuaXNWYWxpZCgpKSByZXR1cm4geyBlcnJvck1lc3NhZ2U6ICdUaGUgZ2l2ZW4gZGF0ZSBpcyBub3QgdmFsaWQnIH07XG4gICAgICAvLy0tLSBDaGVjayBkYXRlIGlzIG5vdCBsZXNzIHRoYW4gbWluRGF0ZSBhbmQgZGF0ZSBkb2Vzbid0IGV4Y2VlZCBtYXhEYXRlXG4gICAgICBpZiAoKG1pbkRhdGUgJiYgZGF5anMobmV3IERhdGUoY29udHJvbC52YWx1ZSkpLmlzQmVmb3JlKG1pbkRhdGUpKSB8fCAobWF4RGF0ZSAmJiBkYXlqcyhuZXcgRGF0ZShjb250cm9sLnZhbHVlKSkuaXNBZnRlcihtYXhEYXRlKSkpXG4gICAgICAgIHJldHVybiB7IGVycm9yTWVzc2FnZTogJ1RoZSBnaXZlbiBkYXRlIGlzIG5vdCB3aXRoaW4gdGhlIHZhbGlkIHBhcmFtZXRlcnMnIH07XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9O1xuICB9XG5cbiAgLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgKiBAbmFtZSAgICAgICAgICBpc1ZhbGlkQ2VsbE51bWJlclxuICAgKiBAZGVzY3JpcHRpb24gICBWYWxpZGF0ZSBjb250cm9sIHZhbHVlIGlzIGEgdmFsaWQgY2VsbHBob25lIG51bWJlciBhbmQgY29udGFpbmluZyBhIHZhbGlkIGRpYWwgY29kZVxuICAgKiBAcGFyYW0gICAgICAgICB7c3RyaW5nW119IGRpYWxDb2Rlc1xuICAgKiBAcmV0dXJucyAgICAgICB7VmFsaWRhdG9yRm59XG4gICAqIEB1c2FnZSAgICAgICAgIEZvcm1WYWxpZGF0b3JzLmlzVmFsaWRDZWxsTnVtYmVyKFsnMjcnXSlcbiAgICovXG4gIHN0YXRpYyBpc1ZhbGlkQ2VsbE51bWJlcihkaWFsQ29kZXM/OiBzdHJpbmdbXSk6IFZhbGlkYXRvckZuIHtcbiAgICByZXR1cm4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0+IHtcbiAgICAgIGNvbnN0IHZhbHVlOiBzdHJpbmcgPSBjb250cm9sLnZhbHVlO1xuICAgICAgaWYgKCF2YWx1ZSkgcmV0dXJuIG51bGw7XG5cbiAgICAgIC8vLS0tIERlZmF1bHQgdG8gU291dGggQWZyaWNhbiBkaWFsIGNvZGUgaWYgbm9uZSBnaXZlblxuICAgICAgaWYgKCFkaWFsQ29kZXMgfHwgIWRpYWxDb2Rlcy5sZW5ndGgpIGRpYWxDb2RlcyA9IFsnMjcnXTtcblxuICAgICAgLy8tLS0gVmFsdWUgbXVzdCBzdGFydCB3aXRoIGEgK1xuICAgICAgaWYgKCF2YWx1ZS5zdGFydHNXaXRoKCcrJykpXG4gICAgICAgIHJldHVybiB7IGVycm9yTWVzc2FnZTogYFBsZWFzZSBzdGFydCB5b3VyIG51bWJlciB3aXRoIGEgJysnIGZvbGxvd2VkIGJ5IGEgdmFsaWQgZGlhbCBjb2RlIGZvciBlZy4gKyR7ZGlhbENvZGVzWzBdfWAgfTtcblxuICAgICAgLy8tLS0gQ2hlY2sgdmFsaWQgZGlhbCBjb2RlXG4gICAgICBpZiAoIWRpYWxDb2Rlcy5tYXAoKGNvZGUpID0+IHZhbHVlLnNsaWNlKDEpLnN0YXJ0c1dpdGgoY29kZSkpLnNvbWUoKGNvZGUpID0+IGNvZGUpKSB7XG4gICAgICAgIHJldHVybiB7IGVycm9yTWVzc2FnZTogJ05vIHZhbGlkIGRpYWwgY29kZSByZWNlaXZlZCcgfTtcbiAgICAgIH1cblxuICAgICAgLy8tLS0gQ2hlY2sgbm8gemVybyBhZnRlciBkaWFsIGNvZGVcbiAgICAgIGlmIChkaWFsQ29kZXMubWFwKChjb2RlKSA9PiB2YWx1ZS5zbGljZSgxKS5zdGFydHNXaXRoKGNvZGUgKyAnMCcpKS5zb21lKChjb2RlKSA9PiBjb2RlKSlcbiAgICAgICAgcmV0dXJuIHsgZXJyb3JNZXNzYWdlOiBgUGxlYXNlIG1ha2Ugc3VyZSB0aGF0IHRoZXJlIGFyZSBubyAwJ3MgYmVoaW5kIHlvdXIgZGlhbCBjb2RlIGZvciBlZy4gKyR7ZGlhbENvZGVzWzBdfTBgIH07XG5cbiAgICAgIC8vLS0tIENoZWNrIHZhbHVlIGRvZXNuJ3QgY29udGFpbiBzcGVjaWFsIGNoYXJhY3RlcnMgb3IgbGV0dGVyc1xuICAgICAgaWYgKHZhbHVlLnNsaWNlKGRpYWxDb2RlcyAmJiBkaWFsQ29kZXMubGVuZ3RoID8gMSA6IDApLm1hdGNoKC9bXjAtOV0vZykpXG4gICAgICAgIHJldHVybiB7IGVycm9yTWVzc2FnZTogJ05vIHNwZWNpYWwgY2hhcmFjdGVycyBvciBsZXR0ZXJzIHBlcm1pdHRlZCBpbiBudW1iZXInIH07XG5cbiAgICAgIC8vLS0tIE1pbmltdW0gbGVuZ3RoIG9mIDEyXG4gICAgICBpZiAodmFsdWUubGVuZ3RoIDwgMTIpIHJldHVybiB7IGVycm9yTWVzc2FnZTogYExlbmd0aCByZXF1aXJlZCAkezEyIC0gdmFsdWUubGVuZ3RofWAgfTtcblxuICAgICAgLy8tLS0gTWF4IGxlbmd0aCBiYXNlZCBvbiBkaWFsIGNvZGVcbiAgICAgIGlmICh2YWx1ZS5zbGljZSgxKS5zdGFydHNXaXRoKCcyNycpICYmIHZhbHVlLmxlbmd0aCA+IDEyKSByZXR1cm4geyBlcnJvck1lc3NhZ2U6IGBMZW5ndGggZXhjZWVkZWQgYnkgJHt2YWx1ZS5sZW5ndGggLSAxMn1gIH07XG5cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH07XG4gIH1cbn1cbiJdfQ==
169
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS12YWxpZGF0b3JzLXV0aWxpdHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jYXJlZmlyc3QvbGlicmFyeS9zcmMvbGliL3V0aWxzL2Zvcm0tdmFsaWRhdG9ycy11dGlsaXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVVBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRCxPQUFPLGlCQUFpQixNQUFNLG9CQUFvQixDQUFDO0FBQ25ELE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMxQixPQUFPLGlCQUFpQixNQUFNLGdDQUFnQyxDQUFDO0FBQy9ELEtBQUssQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztBQUloQyxNQUFNLE9BQU8saUJBQWlCO0lBUTVCLE1BQU0sQ0FBQyxTQUFTLENBQUMseUJBQWlDO1FBQ2hELE9BQU8sQ0FBQyxPQUF3QixFQUEyQixFQUFFO1lBRTNELE1BQU0sZ0JBQWdCLEdBQTJCLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDLHlCQUF5QixDQUFDLElBQUksSUFBSSxDQUFDO1lBR3pHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxLQUFLO2dCQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsbUJBQW1CLEVBQUUsQ0FBQztpQkFFdEUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLO2dCQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsZ0NBQWdDLEVBQUUsQ0FBQztpQkFFOUUsSUFBSSxPQUFPLENBQUMsS0FBSyxJQUFJLE9BQU8sRUFBRSxLQUFLLEtBQUssZ0JBQWdCLEVBQUUsS0FBSztnQkFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLHdCQUF3QixFQUFFLENBQUM7WUFFeEgsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDLENBQUM7SUFDSixDQUFDO0lBUUQsTUFBTSxDQUFDLFVBQVU7UUFDZixPQUFPLENBQUMsT0FBd0IsRUFBMkIs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RSxDQUFDO2dCQUN6RixDQUFDO1lBQ0gsQ0FBQztZQUVELE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQyxDQUFDO0lBQ0osQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBGb3JtIHZhbGlkYXRvcnNcbiAqXG4gKiBAZmlsZSAgICAgICAgICBmb3JtLXZhbGlkYXRvcnNcbiAqIEBkZXNjcmlwdGlvbiAgIFZhcmlvdXMgZm9ybSB2YWxpZGF0b3JzXG4gKiBAYXV0aG9yICAgICAgICBKYWNxdWVzIENvZXR6ZWVcbiAqIEBzaW5jZSAgICAgICAgIDIwMjIgLSAwMSAtIDIwXG4gKiBAdXNhZ2UgICAgICAgICBEaXNwbGF5IFwiZXJyb3JNZXNzYWdlXCIga2V5IHZhbHVlIGFzIHZhbGlkYXRvciByZXNwb25zZSBtZXNzYWdlXG4gKi9cblxuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHBhc3N3b3JkVmFsaWRhdG9yIGZyb20gJ3Bhc3N3b3JkLXZhbGlkYXRvcic7XG5pbXBvcnQgZGF5anMgZnJvbSAnZGF5anMnO1xuaW1wb3J0IGN1c3RvbVBhcnNlRm9ybWF0IGZyb20gJ2RheWpzL3BsdWdpbi9jdXN0b21QYXJzZUZvcm1hdCc7XG5kYXlqcy5leHRlbmQoY3VzdG9tUGFyc2VGb3JtYXQpO1xuLy8tLS0gSW50ZXJmYWNlc1xuaW1wb3J0IHR5cGUgeyBWYWxpZGF0aW9uRXJyb3JzLCBWYWxpZGF0b3JGbiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuZXhwb3J0IGNsYXNzIENGUEZvcm1WYWxpZGF0b3JzIHtcbiAgLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgKiBAbmFtZSAgICAgICAgICBjaGVja1BTV1JldHlwZVxuICAgKiBAZGVzY3JpcHRpb24gICBDaGVjayBpZiBwYXNzd29yZHMgbWF0Y2hcbiAgICogQHBhcmFtICAgICAgICAge3N0cmluZ30gY29udHJvbE5hbWVUb0NoZWNrQWdhaW5zdFxuICAgKiBAcmV0dXJucyAgICAgICB7VmFsaWRhdG9yRm59XG4gICAqIEB1c2FnZSAgICAgICAgIEZvcm1WYWxpZGF0b3JzLmNvbXBhcmVUbygncGFzc3dvcmQnKVxuICAgKi9cbiAgc3RhdGljIGNvbXBhcmVUbyhjb250cm9sTmFtZVRvQ2hlY2tBZ2FpbnN0OiBzdHJpbmcpOiBWYWxpZGF0b3JGbiB7XG4gICAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PiB7XG4gICAgICAvLy0tLSBDb21wYXJlIGNvbnRyb2xzXG4gICAgICBjb25zdCBjb250cm9sVG9DaGVja1RvOiBBYnN0cmFjdENvbnRyb2wgfCBudWxsID0gY29udHJvbD8ucGFyZW50Py5nZXQoY29udHJvbE5hbWVUb0NoZWNrQWdhaW5zdCkgfHwgbnVsbDtcblxuICAgICAgLy8tLS0gQ2hlY2sgcHJpbWFyeSBjb250cm9sIHZhbHVlXG4gICAgICBpZiAoIWNvbnRyb2xUb0NoZWNrVG8/LnZhbHVlKSByZXR1cm4geyBlcnJvck1lc3NhZ2U6IGBQYXNzd29yZCBSZXF1aXJlZGAgfTtcbiAgICAgIC8vLS0tIENoZWNrIHNlY29uZGFyeSBjb250cm9sIHZhbHVlXG4gICAgICBlbHNlIGlmICghY29udHJvbC52YWx1ZSkgcmV0dXJuIHsgZXJyb3JNZXNzYWdlOiBgUGFzc3dvcmQgY29uZmlybWF0aW9uIHJlcXVpcmVkYCB9O1xuICAgICAgLy8tLS0gQ29tcGFyZSBjb250cm9sc1xuICAgICAgZWxzZSBpZiAoY29udHJvbC52YWx1ZSAmJiBjb250cm9sPy52YWx1ZSAhPT0gY29udHJvbFRvQ2hlY2tUbz8udmFsdWUpIHJldHVybiB7IGVycm9yTWVzc2FnZTogYFBhc3N3b3JkcyBkbyBub3QgbWF0Y2hgIH07XG5cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH07XG4gIH1cblxuICAvKiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAqIEBuYW1lICAgICAgICAgIGFzUGFzc3dvcmRcbiAgICogQGRlc2NyaXB0aW9uICAgVmFsaWRhdGUgY29udHJvbCBhcyBwYXNzd29yZFxuICAgKiBAcmV0dXJucyAgICAgICB7VmFsaWRhdG9yRm59XG4gICAqIEB1c2FnZSAgICAgICAgIEZvcm1WYWxpZGF0b3JzLmFzUGFzc3dvcmQoKVxuICAgKi9cbiAgc3RhdGljIGFzUGFzc3dvcmQoKTogVmFsaWRhdG9yRm4ge1xuICAgIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPT4ge1xuICAgICAgY29uc3Qgc2NoZW1hID0gbmV3IHBhc3N3b3JkVmFsaWRhdG9yKCk7XG5cbiAgICAgIC8vLS0tIFNldHVwIHBhc3N3b3JkIHJlcXVpcmVtZW50c1xuICAgICAgc2NoZW1hXG4gICAgICAgIC8vLS0tIE1pbmltdW0gbGVuZ3RoIDhcbiAgICAgICAgLmlzKClcbiAgICAgICAgLm1pbig4LCAnTWluaW11bSBvZiA4IGNoYXJhY3RlcnMnKVxuICAgICAgICAvLy0tLSBNYXhpbXVtIGxlbmd0aCA1MFxuICAgICAgICAuaXMoKVxuICAgICAgICAubWF4KDMwLCAnTWF4aW11bSBvZiAzMCBjaGFyYWN0ZXJzJylcbiAgICAgICAgLy8tLS0gTXVzdCBoYXZlIHVwcGVyY2FzZSBsZXR0ZXJzXG4gICAgICAgIC5oYXMoKVxuICAgICAgICAudXBwZXJjYXNlKHVuZGVmaW5lZCwgJ0F0IGxlYXN0IG9uZSBVUFBFUkNBU0UgY2hhcmFjdGVyJylcbiAgICAgICAgLy8tLS0gTXVzdCBoYXZlIGxvd2VyY2FzZSBsZXR0ZXJzXG4gICAgICAgIC5oYXMoKVxuICAgICAgICAubG93ZXJjYXNlKHVuZGVmaW5lZCwgJ0F0IGxlYXN0IG9uZSBsb3dlcmNhc2UgY2hhcmFjdGVyJylcbiAgICAgICAgLy8tLS0gTXVzdCBoYXZlIGF0IGxlYXN0IDEgZGlnaXRzXG4gICAgICAgIC5oYXMoKVxuICAgICAgICAuZGlnaXRzKHVuZGVmaW5lZCwgJ0F0IGxlYXN0IG9uZSBkaWdpdCcpXG4gICAgICAgIC8vLS0tIFNwZWNpYWwgY2hhcmFjdGVyc1xuICAgICAgICAuaGFzKClcbiAgICAgICAgLnN5bWJvbHModW5kZWZpbmVkLCAnQXQgbGVhc3Qgb25lIHNwZWNpYWwgY2hhcmFjdGVyJyk7XG5cbiAgICAgIC8vLS0tIFZhbGlkYXRlIHN0cmluZ1xuICAgICAgY29uc3QgaW5WYWxpZCA9IHNjaGVtYS52YWxpZGF0ZShjb250cm9sLnZhbHVlLCB7IGRldGFpbHM6IHRydWUgfSkgYXMge1xuICAgICAgICB2YWxpZGF0aW9uOiBzdHJpbmc7XG4gICAgICAgIG1lc3NhZ2U6IHN0cmluZztcbiAgICAgICAgYXJndW1lbnRzPzogbnVtYmVyO1xuICAgICAgfVtdO1xuXG4gICAgICBjb25zdCByZXR1cm5SZXNwb25zZTogeyBba2V5OiBzdHJpbmddOiB1bmtub3duIH0gPSB7fTtcbiAgICAgIGluVmFsaWQuZm9yRWFjaCgoZXJyb3IpID0+IHtcbiAgICAgICAgcmV0dXJuUmVzcG9uc2VbJ3Bhc3N3b3JkLScgKyBlcnJvci52YWxpZGF0aW9uXSA9IGVycm9yLm1lc3NhZ2U7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBpblZhbGlkLmxlbmd0aCA/IHJldHVyblJlc3BvbnNlIDogbnVsbDtcbiAgICB9O1xuICB9XG5cbiAgLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgKiBAbmFtZSAgICAgICAgICBhc0VtYWlsXG4gICAqIEBkZXNjcmlwdGlvbiAgIFZhbGlkYXRlIGNvbnRyb2wgYXMgZW1haWxcbiAgICogQHBhcmFtICAgICAgICAge3RydWV9IGNhbkJlRW1wdHlcbiAgICogQHJldHVybnMgICAgICAge1ZhbGlkYXRvckZufVxuICAgKiBAdXNhZ2UgICAgICAgICBGb3JtVmFsaWRhdG9ycy5hc0VtYWlsKHRydWU/KVxuICAgKi9cbiAgc3RhdGljIGFzRW1haWwoY2FuQmVFbXB0eT86IHRydWUpOiBWYWxpZGF0b3JGbiB7XG4gICAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PiB7XG4gICAgICBsZXQgc2V0RXJyb3JzID0gbnVsbDtcbiAgICAgIGNvbnN0IGVtYWlsUmVnRXggPSBuZXcgUmVnRXhwKCdeW1xcXFx3LS5dK0BbXFxcXHctXStcXFxcLltcXFxcd10rJyk7XG5cbiAgICAgIC8vLS0tIENoZWNrIGlmIGVtYWlsIGNhbiBiZSBlbXB0eVxuICAgICAgaWYgKGNhbkJlRW1wdHkgJiYgKGNvbnRyb2wudmFsdWUgPT09IG51bGwgfHwgY29udHJvbC52YWx1ZSA9PT0gJycpKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuXG4gICAgICAvLy0tLSBUZXN0IFJlZ0V4cFxuICAgICAgaWYgKCEoY29udHJvbC52YWx1ZSAmJiBlbWFpbFJlZ0V4LnRlc3QoY29udHJvbC52YWx1ZSkgJiYgdHlwZW9mIGNvbnRyb2wudmFsdWUgPT09ICdzdHJpbmcnICYmICFjb250cm9sLnZhbHVlLmluY2x1ZGVzKCcgJykpKSB7XG4gICAgICAgIHNldEVycm9ycyA9IHsgZXJyb3JNZXNzYWdlOiBgTm90IGEgdmFsaWQgZW1haWwgYWRkcmVzc2AgfTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHNldEVycm9ycztcbiAgICB9O1xuICB9XG5cbiAgLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgKiBAbmFtZSAgICAgICAgICBpc0luXG4gICAqIEBkZXNjcmlwdGlvbiAgIFZhbGlkYXRlIGNvbnRyb2wgdmFsdWUgaXMgcGFydCBvZiBhIGdpdmVuIGxpc3RcbiAgICogQHBhcmFtICAgICAgICAgeyhzdHJpbmcgfCBudW1iZXIpW119IGxpc3RcbiAgICogQHJldHVybnMgICAgICAge1ZhbGlkYXRvckZufVxuICAgKiBAdXNhZ2UgICAgICAgICBGb3JtVmFsaWRhdG9ycy5pc0luKClcbiAgICovXG4gIHN0YXRpYyBpc0luKGxpc3Q6IChzdHJpbmcgfCBudW1iZXIpW10pOiBWYWxpZGF0b3JGbiB7XG4gICAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PiB7XG4gICAgICBpZiAoIWxpc3QuaW5jbHVkZXMoY29udHJvbC52YWx1ZSkpIHJldHVybiB7IGVycm9yTWVzc2FnZTogJ0NvbnRyb2wgdmFsdWUgbm90IHBhcnQgb2YgZWxpZ2libGUgdmFsdWVzJyB9O1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfTtcbiAgfVxuXG4gIC8qKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICogQG5hbWUgICAgICAgICAgaXNTQUlETnVtYmVyXG4gICAqIEBkZXNjcmlwdGlvbiAgIFZhbGlkYXRlIGNvbnRyb2wgdmFsdWUgaXMgYSB2YWxpZCBSU0EgSUQgTnVtYmVyXG4gICAqIEBwYXJhbSAgICAgICAgIHt0cnVlfSBjYW5CZUVtcHR5XG4gICAqIEByZXR1cm5zICAgICAgIHtWYWxpZGF0b3JGbn1cbiAgICogQHVzYWdlICAgICAgICAgRm9ybVZhbGlkYXRvcnMuaXNTQUlETnVtYmVyKHRydWU/KVxuICAgKi9cbiAgc3RhdGljIGlzU0FJRE51bWJlcihjYW5CZUVtcHR5PzogdHJ1ZSk6IFZhbGlkYXRvckZuIHtcbiAgICByZXR1cm4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0+IHtcbiAgICAgIGNvbnN0IHZhbGlkYXRlRGF0ZSA9ICgpOiBib29sZWFuID0+IHtcbiAgICAgICAgaWYgKHR5cGVvZiBjb250cm9sLnZhbHVlICE9PSAnc3RyaW5nJyB8fCBjb250cm9sLnZhbHVlLmxlbmd0aCA8IDYpIHJldHVybiBmYWxzZTtcbiAgICAgICAgY29uc3QgbW9udGggPSBjb250cm9sLnZhbHVlLnNsaWNlKDIsIDQpO1xuICAgICAgICBjb25zdCBkYXkgPSBjb250cm9sLnZhbHVlLnNsaWNlKDQsIDYpO1xuICAgICAgICBpZiAoK21vbnRoIDwgMCAmJiArbW9udGggPiAxMykgcmV0dXJuIGZhbHNlO1xuICAgICAgICBpZiAoK2RheSA8IDAgJiYgK2RheSA+IDMxKSByZXR1cm4gZmFsc2U7XG4gICAgICAgIGlmICghZGF5anMoY29udHJvbC52YWx1ZS5zbGljZSgwLCA2KSwgJ1lZTU1ERCcsIHRydWUpLmlzVmFsaWQoKSkgcmV0dXJuIGZhbHNlO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IGNoZWNrc3VtID0gKCk6IGJvb2xlYW4gPT4ge1xuICAgICAgICBpZiAodHlwZW9mIGNvbnRyb2wudmFsdWUgIT09ICdzdHJpbmcnIHx8IGNvbnRyb2wudmFsdWUubGVuZ3RoICE9PSAxMykgcmV0dXJuIGZhbHNlO1xuICAgICAgICBsZXQgblN1bSA9IDA7IC8vLS0tIFRvdGFsIHN1bSBvZiBhbGwgdGhlIHZhbHVlc1xuICAgICAgICBsZXQgaXNTZWNvbmQgPSBmYWxzZTsgLy8tLS0gVG8gZG91YmxlIGV2ZXJ5IG90aGVyIHZhbHVlXG4gICAgICAgIC8vLS0tIFN0YXJ0IGZyb20gdGhlIGVuZFxuICAgICAgICBmb3IgKGxldCBpID0gY29udHJvbC52YWx1ZS5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgICAgIGNvbnN0IHZhbDogc3RyaW5nIHwgdW5kZWZpbmVkID0gY29udHJvbC52YWx1ZVtpXTtcbiAgICAgICAgICBpZiAoIXZhbCkgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgIC8vLS0tIEdldCBudW1lcmljYWwgdmFsdWUgZnJvbSBhc2NpaSBzdHJpbmdcbiAgICAgICAgICBsZXQgZDogbnVtYmVyID0gdmFsLmNoYXJDb2RlQXQoMCkgLSAnMCcuY2hhckNvZGVBdCgwKTtcbiAgICAgICAgICAvLy0tLSBEb3VibGUgZXZlcnkgb3RoZXIgdmFsdWVcbiAgICAgICAgICBpZiAoaXNTZWNvbmQgPT0gdHJ1ZSkgZCA9IGQgKiAyO1xuICAgICAgICAgIC8vLS0tIFN1bSB0aGUgdG90YWwgb2YgdGhlIGRvdWJsZWQgdmFsdWVzIGlmIGF2YWlsYWJsZVxuICAgICAgICAgIG5TdW0gKz0gTWF0aC5mbG9vcihkIC8gMTApO1xuICAgICAgICAgIG5TdW0gKz0gZCAlIDEwO1xuICAgICAgICAgIC8vLS0tIEludmVyc2Ugc2Vjb25kIHRvIGRldGVybWluZSBldmVyeSBvdGhlciBpbmRleCB2YWx1ZVxuICAgICAgICAgIGlzU2Vjb25kID0gIWlzU2Vjb25kO1xuICAgICAgICB9XG4gICAgICAgIC8vLS0tIFJldHVybiB0aGUgbW9kdWx1cyAxMCBvZiB0aGUgc3VtbWF0aW9uXG4gICAgICAgIHJldHVybiBuU3VtICUgMTAgPT0gMDtcbiAgICAgIH07XG5cbiAgICAgIGxldCBlcnJvcjogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gICAgICBpZiAoY2FuQmVFbXB0eSAmJiAoIWNvbnRyb2wudmFsdWUgfHwgY29udHJvbC52YWx1ZT8ubGVuZ3RoID09PSAwKSkgcmV0dXJuIG51bGw7XG4gICAgICAvLy0tLSBzdHJpbmdcbiAgICAgIGVsc2UgaWYgKHR5cGVvZiBjb250cm9sLnZhbHVlICE9PSAnc3RyaW5nJykgZXJyb3IgPSAnSW52YWxpZCBSU0EgSUQgTnVtYmVyJztcbiAgICAgIC8vLS0tIExlbmd0aCA9IDEzXG4gICAgICBlbHNlIGlmIChjb250cm9sLnZhbHVlLmxlbmd0aCAhPT0gMTMpIGVycm9yID0gYExlbmd0aCByZXF1aXJlZDogJHsxMyAtIGNvbnRyb2wudmFsdWUubGVuZ3RofWA7XG4gICAgICAvLy0tLSBWYWxpZGF0ZSBkYXRlXG4gICAgICBlbHNlIGlmICghdmFsaWRhdGVEYXRlKCkpIGVycm9yID0gYEludmFsaWQgZGF0ZSBvZiBiaXJ0aGA7XG4gICAgICAvLy0tLSBDaXRpemVuc2hpcFxuICAgICAgZWxzZSBpZiAoIVsnMCcsICcxJ10uaW5jbHVkZXMoY29udHJvbC52YWx1ZS5zbGljZSgxMCwgMTEpKSkgZXJyb3IgPSBgSW52YWxpZCBjaXRpemVuc2hpcCB2YWx1ZWA7XG4gICAgICAvLy0tLSBDaGVja3N1bVxuICAgICAgZWxzZSBpZiAoIWNoZWNrc3VtKCkpIGVycm9yID0gYEludmFsaWQgUlNBIElEIG51bWJlciBjaGVja3N1bWA7XG5cbiAgICAgIHJldHVybiBlcnJvciA/IHsgZXJyb3JNZXNzYWdlOiBlcnJvciB9IDogbnVsbDtcbiAgICB9O1xuICB9XG5cbiAgLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgKiBAbmFtZSAgICAgICAgICBpc1ZhbGlkRGF0ZVxuICAgKiBAZGVzY3JpcHRpb24gICBWYWxpZGF0ZSBjb250cm9sIHZhbHVlIGlzIHBhcnQgb2YgYSBnaXZlbiBsaXN0XG4gICAqIEBwYXJhbSAgICAgICAgIHtzdHJpbmcgfCBudWxsfSBtaW5EYXRlXG4gICAqIEBwYXJhbSAgICAgICAgIHtzdHJpbmcgfCBudWxsfSBtYXhEYXRlXG4gICAqIEByZXR1cm5zICAgICAgIHtWYWxpZGF0b3JGbn1cbiAgICogQHVzYWdlICAgICAgICAgRm9ybVZhbGlkYXRvcnMuaXNWYWxpZERhdGUoJzE5OTktMDEtMDEnLCAnMjAyMC0wMS0wMScpXG4gICAqL1xuICBzdGF0aWMgaXNWYWxpZERhdGUobWluRGF0ZTogc3RyaW5nIHwgbnVsbCwgbWF4RGF0ZT86IHN0cmluZyB8IG51bGwpOiBWYWxpZGF0b3JGbiB7XG4gICAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PiB7XG4gICAgICAvLy0tLSBDaGVjayB0byBzZWUgaWYgYSBpbnZhbGlkIGRhdGUgaXMgcmVjZWl2ZWQgbGlrZSAoMzEgRmViKVxuICAgICAgaWYgKCFkYXlqcyhuZXcgRGF0ZShjb250cm9sLnZhbHVlKSkuaXNWYWxpZCgpKSByZXR1cm4geyBlcnJvck1lc3NhZ2U6ICdUaGUgZ2l2ZW4gZGF0ZSBpcyBub3QgdmFsaWQnIH07XG4gICAgICAvLy0tLSBDaGVjayBkYXRlIGlzIG5vdCBsZXNzIHRoYW4gbWluRGF0ZSBhbmQgZGF0ZSBkb2Vzbid0IGV4Y2VlZCBtYXhEYXRlXG4gICAgICBpZiAoKG1pbkRhdGUgJiYgZGF5anMobmV3IERhdGUoY29udHJvbC52YWx1ZSkpLmlzQmVmb3JlKG1pbkRhdGUpKSB8fCAobWF4RGF0ZSAmJiBkYXlqcyhuZXcgRGF0ZShjb250cm9sLnZhbHVlKSkuaXNBZnRlcihtYXhEYXRlKSkpXG4gICAgICAgIHJldHVybiB7IGVycm9yTWVzc2FnZTogJ1RoZSBnaXZlbiBkYXRlIGlzIG5vdCB3aXRoaW4gdGhlIHZhbGlkIHBhcmFtZXRlcnMnIH07XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9O1xuICB9XG5cbiAgLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgKiBAbmFtZSAgICAgICAgICBpc1ZhbGlkQ2VsbE51bWJlclxuICAgKiBAZGVzY3JpcHRpb24gICBWYWxpZGF0ZSBjb250cm9sIHZhbHVlIGlzIGEgdmFsaWQgY2VsbHBob25lIG51bWJlciBhbmQgY29udGFpbmluZyBhIHZhbGlkIGRpYWwgY29kZVxuICAgKiBAcGFyYW0gICAgICAgICB7c3RyaW5nW119IGRpYWxDb2Rlc1xuICAgKiBAcmV0dXJucyAgICAgICB7VmFsaWRhdG9yRm59XG4gICAqIEB1c2FnZSAgICAgICAgIEZvcm1WYWxpZGF0b3JzLmlzVmFsaWRDZWxsTnVtYmVyKFsnMjcnXSlcbiAgICovXG4gIHN0YXRpYyBpc1ZhbGlkQ2VsbE51bWJlcihkaWFsQ29kZXM/OiBzdHJpbmdbXSk6IFZhbGlkYXRvckZuIHtcbiAgICByZXR1cm4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0+IHtcbiAgICAgIGNvbnN0IHZhbHVlOiBzdHJpbmcgPSBjb250cm9sLnZhbHVlO1xuICAgICAgaWYgKCF2YWx1ZSkgcmV0dXJuIG51bGw7XG5cbiAgICAgIGlmIChkaWFsQ29kZXMpIHtcbiAgICAgICAgLy8tLS0gVmFsdWUgbXVzdCBzdGFydCB3aXRoIGEgK1xuICAgICAgICBpZiAoIXZhbHVlLnN0YXJ0c1dpdGgoJysnKSlcbiAgICAgICAgICByZXR1cm4geyBlcnJvck1lc3NhZ2U6IGBQbGVhc2Ugc3RhcnQgeW91ciBudW1iZXIgd2l0aCBhICcrJyBmb2xsb3dlZCBieSBhIHZhbGlkIGRpYWwgY29kZSBmb3IgZWcuICske2RpYWxDb2Rlc1swXX1gIH07XG5cbiAgICAgICAgLy8tLS0gQ2hlY2sgdmFsaWQgZGlhbCBjb2RlXG4gICAgICAgIGlmICghZGlhbENvZGVzLnNvbWUoKGNvZGUpID0+IHZhbHVlLnNsaWNlKDEpLnN0YXJ0c1dpdGgoY29kZSkpKSB7XG4gICAgICAgICAgcmV0dXJuIHsgZXJyb3JNZXNzYWdlOiAnTm8gdmFsaWQgZGlhbCBjb2RlIHJlY2VpdmVkJyB9O1xuICAgICAgICB9XG5cbiAgICAgICAgLy8tLS0gQ2hlY2sgbm8gemVybyBhZnRlciBkaWFsIGNvZGVcbiAgICAgICAgaWYgKGRpYWxDb2Rlcy5zb21lKChjb2RlKSA9PiB2YWx1ZS5zbGljZSgxKS5zdGFydHNXaXRoKGNvZGUgKyAnMCcpKSlcbiAgICAgICAgICByZXR1cm4geyBlcnJvck1lc3NhZ2U6IGBQbGVhc2UgbWFrZSBzdXJlIHRoYXQgdGhlcmUgYXJlIG5vIDAncyBiZWhpbmQgeW91ciBkaWFsIGNvZGUgZm9yIGVnLiArJHtkaWFsQ29kZXNbMF19MGAgfTtcblxuICAgICAgICAvLy0tLSBDaGVjayB2YWx1ZSBkb2Vzbid0IGNvbnRhaW4gc3BlY2lhbCBjaGFyYWN0ZXJzIG9yIGxldHRlcnNcbiAgICAgICAgaWYgKHZhbHVlLnNsaWNlKGRpYWxDb2Rlcy5sZW5ndGggPyAxIDogMCkubWF0Y2goL1teMC05XS9nKSkgcmV0dXJuIHsgZXJyb3JNZXNzYWdlOiAnTm8gc3BlY2lhbCBjaGFyYWN0ZXJzIG9yIGxldHRlcnMgcGVybWl0dGVkIGluIG51bWJlcicgfTtcblxuICAgICAgICAvLy0tLSBNaW5pbXVtIGxlbmd0aCBvZiAxMlxuICAgICAgICBpZiAodmFsdWUubGVuZ3RoIDwgMTIpIHJldHVybiB7IGVycm9yTWVzc2FnZTogYExlbmd0aCByZXF1aXJlZCAkezEyIC0gdmFsdWUubGVuZ3RofWAgfTtcblxuICAgICAgICAvLy0tLSBNYXggbGVuZ3RoIGJhc2VkIG9uIGRpYWwgY29kZVxuICAgICAgICBpZiAodmFsdWUuc2xpY2UoMSkuc3RhcnRzV2l0aCgnMjcnKSAmJiB2YWx1ZS5sZW5ndGggPiAxMikgcmV0dXJuIHsgZXJyb3JNZXNzYWdlOiBgTGVuZ3RoIGV4Y2VlZGVkIGJ5ICR7dmFsdWUubGVuZ3RoIC0gMTJ9YCB9O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8tLS0gQmVnaW5zIHdpdGggaW52YWxpZCBjaGFyYWN0ZXJzXG4gICAgICAgIGlmICh2YWx1ZS5zdGFydHNXaXRoKCcwMCcpKSByZXR1cm4geyBlcnJvck1lc3NhZ2U6ICdOdW1iZXIgbWF5IG5vdCBzdGFydCB3aXRoIFwiMDBcIicgfTtcbiAgICAgICAgaWYgKHZhbHVlLnN0YXJ0c1dpdGgoJyswJykpIHJldHVybiB7IGVycm9yTWVzc2FnZTogJ051bWJlciBtYXkgbm90IHN0YXJ0IHdpdGggXCIrMFwiJyB9O1xuICAgICAgICBpZiAodmFsdWUuc3RhcnRzV2l0aCgnKzI3MCcpKSByZXR1cm4geyBlcnJvck1lc3NhZ2U6ICdOdW1iZXIgbWF5IG5vdCBzdGFydCB3aXRoIFwiKzI3MFwiJyB9O1xuICAgICAgICBpZiAoIXZhbHVlLnN0YXJ0c1dpdGgoJzAnKSAmJiAhdmFsdWUuc3RhcnRzV2l0aCgnKycpKSByZXR1cm4geyBlcnJvck1lc3NhZ2U6ICdFaXRoZXIgc3RhcnQgd2l0aCBcIjBcIiBvciBcIitcIicgfTtcblxuICAgICAgICAvLy0tLSBCZWdpbnMgd2l0aCBcIjBcIlxuICAgICAgICBpZiAodmFsdWUuc3RhcnRzV2l0aCgnMCcpKSB7XG4gICAgICAgICAgaWYgKHZhbHVlLm1hdGNoKC9bXjAtOV0vZykpIHJldHVybiB7IGVycm9yTWVzc2FnZTogJ05vIHNwZWNpYWwgY2hhcmFjdGVycyBvciBsZXR0ZXJzIHBlcm1pdHRlZCBpbiBudW1iZXInIH07XG4gICAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCA8IDEwKSByZXR1cm4geyBlcnJvck1lc3NhZ2U6IGBMZW5ndGggcmVxdWlyZWQ6ICR7MTAgLSB2YWx1ZS5sZW5ndGh9YCB9O1xuICAgICAgICAgIGlmICh2YWx1ZS5sZW5ndGggPiAxMCkgcmV0dXJuIHsgZXJyb3JNZXNzYWdlOiBgTGVuZ3RoIGV4Y2VlZGVkIGJ5ICR7dmFsdWUubGVuZ3RoIC0gMTB9YCB9O1xuICAgICAgICB9XG5cbiAgICAgICAgLy8tLS0gQmVnaW5zIHdpdGggXCIrXCJcbiAgICAgICAgaWYgKHZhbHVlLnN0YXJ0c1dpdGgoJysnKSkge1xuICAgICAgICAgIGlmICh2YWx1ZS5zbGljZSgxKS5tYXRjaCgvW14wLTldL2cpKSByZXR1cm4geyBlcnJvck1lc3NhZ2U6ICdObyBzcGVjaWFsIGNoYXJhY3RlcnMgb3IgbGV0dGVycyBwZXJtaXR0ZWQgaW4gbnVtYmVyJyB9O1xuICAgICAgICAgIGlmICh2YWx1ZS5sZW5ndGggPCAxMSkgcmV0dXJuIHsgZXJyb3JNZXNzYWdlOiBgTGVuZ3RoIHJlcXVpcmVkICR7MTEgLSB2YWx1ZS5sZW5ndGh9YCB9O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH07XG4gIH1cbn1cbiJdfQ==
@@ -11,6 +11,7 @@ export * from './lib/components/logo/logo.component';
11
11
  export * from './lib/components/calendar/calendar.component';
12
12
  export * from './lib/components/form-validation/form-validation.component';
13
13
  export * from './lib/components/form-input/form-input.component';
14
+ export * from './lib/components/form-input-currency/form-input-currency.component';
14
15
  export * from './lib/components/form-input-string-date/form-input-string-date.component';
15
16
  export * from './lib/components/form-input-select/form-input-select.component';
16
17
  export * from './lib/components/form-input-text-area/form-input-text-area.component';
@@ -27,4 +28,4 @@ export * as CFNotificationI from './lib/interfaces/notification.interface';
27
28
  export * as CFInputI from './lib/interfaces/input.interface';
28
29
  export * as CFCodeInputI from './lib/interfaces/verification-code.interface';
29
30
  export * as CFBadgeI from './lib/interfaces/badge.interface';
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NhcmVmaXJzdC9saWJyYXJ5L3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWNBLGNBQWMsc0JBQXNCLENBQUM7QUFFckMsY0FBYywwQ0FBMEMsQ0FBQztBQUV6RCxjQUFjLHFDQUFxQyxDQUFDO0FBRXBELGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMsMENBQTBDLENBQUM7QUFDekQsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLHNEQUFzRCxDQUFDO0FBQ3JFLGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyw4Q0FBOEMsQ0FBQztBQUM3RCxjQUFjLDREQUE0RCxDQUFDO0FBQzNFLGNBQWMsa0RBQWtELENBQUM7QUFDakUsY0FBYywwRUFBMEUsQ0FBQztBQUN6RixjQUFjLGdFQUFnRSxDQUFDO0FBQy9FLGNBQWMsc0VBQXNFLENBQUM7QUFDckYsY0FBYyxnRUFBZ0UsQ0FBQztBQUMvRSxjQUFjLG9EQUFvRCxDQUFDO0FBQ25FLGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLGdFQUFnRSxDQUFDO0FBQy9FLGNBQWMsd0NBQXdDLENBQUM7QUFFdkQsT0FBTyxLQUFLLFFBQVEsTUFBTSxrQ0FBa0MsQ0FBQztBQUM3RCxPQUFPLEtBQUssT0FBTyxNQUFNLGlDQUFpQyxDQUFDO0FBQzNELE9BQU8sS0FBSyxTQUFTLE1BQU0sbUNBQW1DLENBQUM7QUFDL0QsT0FBTyxLQUFLLGVBQWUsTUFBTSx5Q0FBeUMsQ0FBQztBQUMzRSxPQUFPLEtBQUssUUFBUSxNQUFNLGtDQUFrQyxDQUFDO0FBQzdELE9BQU8sS0FBSyxZQUFZLE1BQU0sOENBQThDLENBQUM7QUFDN0UsT0FBTyxLQUFLLFFBQVEsTUFBTSxrQ0FBa0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgbGlicmFyeVxuICovXG5cbi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbj09PT09PT09PT09PT09PT09PT09PSBVU0FHRSA9PT09PT09PT09PT09PT09PT09PT1cbkluY2x1ZGUgaW4gZ2xvYmFsLnNjc3M6XG4gIC0gQGltcG9ydCAnLi4vbm9kZV9tb2R1bGVzL0BjYXJlZmlyc3QvbGlicmFyeS9wdWJsaWMvc3R5bGVzL2luZGV4LnNjc3MnO1xuQWRkIHRvIGFwcCBtb2R1bGU6XG4gIC0gaW1wb3J0IHsgQ2FyZUZpcnN0TGlicmFyeU1vZHVsZSB9IGZyb20gJ0BjYXJlZmlyc3QvbGlicmFyeSc7XG4gIC0gQWRkIFwiQ2FyZUZpcnN0TGlicmFyeU1vZHVsZVwiIHRvIGltcG9ydHNcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cblxuLy8tLS0gTW9kdWxlc1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbGlicmFyeS5tb2R1bGUnO1xuLy8tLS0gRGlyZWN0aXZlc1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGlyZWN0aXZlcy9idXR0b24tbG9hZGVyLmRpcmVjdGl2ZSc7XG4vLyAtLS0gVXRpbGl0aWVzXG5leHBvcnQgKiBmcm9tICcuL2xpYi91dGlscy9mb3JtLXZhbGlkYXRvcnMtdXRpbGl0eSc7XG4vLy0tLSBDb21wb25lbnRzXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2FsZXJ0L2FsZXJ0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3BhZ2UvcGFnZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9idXR0b24vYnV0dG9uLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3NwYWNlci9zcGFjZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvaWNvbi9pY29uLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL25vdGlmaWNhdGlvbi9ub3RpZmljYXRpb24uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbG9nby9sb2dvLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2NhbGVuZGFyL2NhbGVuZGFyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2Zvcm0tdmFsaWRhdGlvbi9mb3JtLXZhbGlkYXRpb24uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZm9ybS1pbnB1dC9mb3JtLWlucHV0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2Zvcm0taW5wdXQtc3RyaW5nLWRhdGUvZm9ybS1pbnB1dC1zdHJpbmctZGF0ZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9mb3JtLWlucHV0LXNlbGVjdC9mb3JtLWlucHV0LXNlbGVjdC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9mb3JtLWlucHV0LXRleHQtYXJlYS9mb3JtLWlucHV0LXRleHQtYXJlYS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9mb3JtLWlucHV0LXNlYXJjaC9mb3JtLWlucHV0LXNlYXJjaC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9jaGF0LWJ1YmJsZS9jaGF0LWJ1YmJsZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9iYWRnZS9iYWRnZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9zcGlubmVyL3NwaW5uZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvdmVyaWZpY2F0aW9uLWNvZGUvdmVyaWZpY2F0aW9uLWNvZGUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbWl4LXAvbWl4LXAuY29tcG9uZW50Jztcbi8vLS0tIEludGVyZmFjZXNcbmV4cG9ydCAqIGFzIENGQWxlcnRJIGZyb20gJy4vbGliL2ludGVyZmFjZXMvYWxlcnQuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGFzIENGSWNvbkkgZnJvbSAnLi9saWIvaW50ZXJmYWNlcy9pY29uLmludGVyZmFjZSc7XG5leHBvcnQgKiBhcyBDRlNwYWNlckkgZnJvbSAnLi9saWIvaW50ZXJmYWNlcy9zcGFjZXIuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGFzIENGTm90aWZpY2F0aW9uSSBmcm9tICcuL2xpYi9pbnRlcmZhY2VzL25vdGlmaWNhdGlvbi5pbnRlcmZhY2UnO1xuZXhwb3J0ICogYXMgQ0ZJbnB1dEkgZnJvbSAnLi9saWIvaW50ZXJmYWNlcy9pbnB1dC5pbnRlcmZhY2UnO1xuZXhwb3J0ICogYXMgQ0ZDb2RlSW5wdXRJIGZyb20gJy4vbGliL2ludGVyZmFjZXMvdmVyaWZpY2F0aW9uLWNvZGUuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGFzIENGQmFkZ2VJIGZyb20gJy4vbGliL2ludGVyZmFjZXMvYmFkZ2UuaW50ZXJmYWNlJztcbiJdfQ==
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NhcmVmaXJzdC9saWJyYXJ5L3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWNBLGNBQWMsc0JBQXNCLENBQUM7QUFFckMsY0FBYywwQ0FBMEMsQ0FBQztBQUV6RCxjQUFjLHFDQUFxQyxDQUFDO0FBRXBELGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMsMENBQTBDLENBQUM7QUFDekQsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLHNEQUFzRCxDQUFDO0FBQ3JFLGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyw4Q0FBOEMsQ0FBQztBQUM3RCxjQUFjLDREQUE0RCxDQUFDO0FBQzNFLGNBQWMsa0RBQWtELENBQUM7QUFDakUsY0FBYyxvRUFBb0UsQ0FBQztBQUNuRixjQUFjLDBFQUEwRSxDQUFDO0FBQ3pGLGNBQWMsZ0VBQWdFLENBQUM7QUFDL0UsY0FBYyxzRUFBc0UsQ0FBQztBQUNyRixjQUFjLGdFQUFnRSxDQUFDO0FBQy9FLGNBQWMsb0RBQW9ELENBQUM7QUFDbkUsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLDRDQUE0QyxDQUFDO0FBQzNELGNBQWMsZ0VBQWdFLENBQUM7QUFDL0UsY0FBYyx3Q0FBd0MsQ0FBQztBQUV2RCxPQUFPLEtBQUssUUFBUSxNQUFNLGtDQUFrQyxDQUFDO0FBQzdELE9BQU8sS0FBSyxPQUFPLE1BQU0saUNBQWlDLENBQUM7QUFDM0QsT0FBTyxLQUFLLFNBQVMsTUFBTSxtQ0FBbUMsQ0FBQztBQUMvRCxPQUFPLEtBQUssZUFBZSxNQUFNLHlDQUF5QyxDQUFDO0FBQzNFLE9BQU8sS0FBSyxRQUFRLE1BQU0sa0NBQWtDLENBQUM7QUFDN0QsT0FBTyxLQUFLLFlBQVksTUFBTSw4Q0FBOEMsQ0FBQztBQUM3RSxPQUFPLEtBQUssUUFBUSxNQUFNLGtDQUFrQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBsaWJyYXJ5XG4gKi9cblxuLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuPT09PT09PT09PT09PT09PT09PT09IFVTQUdFID09PT09PT09PT09PT09PT09PT09PVxuSW5jbHVkZSBpbiBnbG9iYWwuc2NzczpcbiAgLSBAaW1wb3J0ICcuLi9ub2RlX21vZHVsZXMvQGNhcmVmaXJzdC9saWJyYXJ5L3B1YmxpYy9zdHlsZXMvaW5kZXguc2Nzcyc7XG5BZGQgdG8gYXBwIG1vZHVsZTpcbiAgLSBpbXBvcnQgeyBDYXJlRmlyc3RMaWJyYXJ5TW9kdWxlIH0gZnJvbSAnQGNhcmVmaXJzdC9saWJyYXJ5JztcbiAgLSBBZGQgXCJDYXJlRmlyc3RMaWJyYXJ5TW9kdWxlXCIgdG8gaW1wb3J0c1xuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xuXG4vLy0tLSBNb2R1bGVzXG5leHBvcnQgKiBmcm9tICcuL2xpYi9saWJyYXJ5Lm1vZHVsZSc7XG4vLy0tLSBEaXJlY3RpdmVzXG5leHBvcnQgKiBmcm9tICcuL2xpYi9kaXJlY3RpdmVzL2J1dHRvbi1sb2FkZXIuZGlyZWN0aXZlJztcbi8vIC0tLSBVdGlsaXRpZXNcbmV4cG9ydCAqIGZyb20gJy4vbGliL3V0aWxzL2Zvcm0tdmFsaWRhdG9ycy11dGlsaXR5Jztcbi8vLS0tIENvbXBvbmVudHNcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYWxlcnQvYWxlcnQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvcGFnZS9wYWdlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvc3BhY2VyL3NwYWNlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9pY29uL2ljb24uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbm90aWZpY2F0aW9uL25vdGlmaWNhdGlvbi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9sb2dvL2xvZ28uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvY2FsZW5kYXIvY2FsZW5kYXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZm9ybS12YWxpZGF0aW9uL2Zvcm0tdmFsaWRhdGlvbi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9mb3JtLWlucHV0L2Zvcm0taW5wdXQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZm9ybS1pbnB1dC1jdXJyZW5jeS9mb3JtLWlucHV0LWN1cnJlbmN5LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2Zvcm0taW5wdXQtc3RyaW5nLWRhdGUvZm9ybS1pbnB1dC1zdHJpbmctZGF0ZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9mb3JtLWlucHV0LXNlbGVjdC9mb3JtLWlucHV0LXNlbGVjdC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9mb3JtLWlucHV0LXRleHQtYXJlYS9mb3JtLWlucHV0LXRleHQtYXJlYS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9mb3JtLWlucHV0LXNlYXJjaC9mb3JtLWlucHV0LXNlYXJjaC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9jaGF0LWJ1YmJsZS9jaGF0LWJ1YmJsZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9iYWRnZS9iYWRnZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9zcGlubmVyL3NwaW5uZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvdmVyaWZpY2F0aW9uLWNvZGUvdmVyaWZpY2F0aW9uLWNvZGUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbWl4LXAvbWl4LXAuY29tcG9uZW50Jztcbi8vLS0tIEludGVyZmFjZXNcbmV4cG9ydCAqIGFzIENGQWxlcnRJIGZyb20gJy4vbGliL2ludGVyZmFjZXMvYWxlcnQuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGFzIENGSWNvbkkgZnJvbSAnLi9saWIvaW50ZXJmYWNlcy9pY29uLmludGVyZmFjZSc7XG5leHBvcnQgKiBhcyBDRlNwYWNlckkgZnJvbSAnLi9saWIvaW50ZXJmYWNlcy9zcGFjZXIuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGFzIENGTm90aWZpY2F0aW9uSSBmcm9tICcuL2xpYi9pbnRlcmZhY2VzL25vdGlmaWNhdGlvbi5pbnRlcmZhY2UnO1xuZXhwb3J0ICogYXMgQ0ZJbnB1dEkgZnJvbSAnLi9saWIvaW50ZXJmYWNlcy9pbnB1dC5pbnRlcmZhY2UnO1xuZXhwb3J0ICogYXMgQ0ZDb2RlSW5wdXRJIGZyb20gJy4vbGliL2ludGVyZmFjZXMvdmVyaWZpY2F0aW9uLWNvZGUuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGFzIENGQmFkZ2VJIGZyb20gJy4vbGliL2ludGVyZmFjZXMvYmFkZ2UuaW50ZXJmYWNlJztcbiJdfQ==