vc-error-handlers 0.5.1 → 0.5.3

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 (25) hide show
  1. package/esm2022/lib/configuration.mjs +2 -1
  2. package/esm2022/lib/shared/components/page-not-found/page-not-found.component.mjs +52 -42
  3. package/esm2022/lib/shared/components/server-error/server-error.component.mjs +2 -2
  4. package/esm2022/lib/shared/components/unauthorized/unauthorized.component.mjs +55 -26
  5. package/esm2022/lib/shared/constants/api-config.constants.mjs +8 -1
  6. package/esm2022/lib/shared/constants/error-handling.constants.mjs +5 -2
  7. package/esm2022/lib/shared/interceptors/http.interceptor.mjs +14 -21
  8. package/esm2022/lib/shared/services/global-error.service.mjs +9 -10
  9. package/esm2022/lib/shared/services/router.service.mjs +31 -2
  10. package/esm2022/lib/ui-kit/snack-bar/snack-bar/snack-bar.component.mjs +2 -2
  11. package/esm2022/lib/ui-kit/tooltip/tooltip.directive.mjs +156 -0
  12. package/esm2022/lib/ui-kit/tooltip/tooltip.module.mjs +18 -0
  13. package/esm2022/lib/vc-error-handlers.module.mjs +34 -13
  14. package/fesm2022/vc-error-handlers.mjs +396 -143
  15. package/fesm2022/vc-error-handlers.mjs.map +1 -1
  16. package/lib/configuration.d.ts +1 -0
  17. package/lib/shared/components/page-not-found/page-not-found.component.d.ts +5 -8
  18. package/lib/shared/components/unauthorized/unauthorized.component.d.ts +7 -1
  19. package/lib/shared/constants/error-handling.constants.d.ts +3 -0
  20. package/lib/shared/interceptors/http.interceptor.d.ts +1 -3
  21. package/lib/shared/services/router.service.d.ts +4 -0
  22. package/lib/ui-kit/tooltip/tooltip.directive.d.ts +27 -0
  23. package/lib/ui-kit/tooltip/tooltip.module.d.ts +8 -0
  24. package/lib/vc-error-handlers.module.d.ts +4 -3
  25. package/package.json +1 -1
@@ -4,8 +4,9 @@ import { CommonModule, NgOptimizedImage } from '@angular/common';
4
4
  import { PageNotFoundComponent } from './shared/components/page-not-found/page-not-found.component';
5
5
  import { VcErrorHandlersComponent } from './vc-error-handlers.component';
6
6
  import { DialogModule } from './ui-kit/dialog/dialog.module';
7
- import { SnackBarModule } from './ui-kit/snack-bar/snack-bar.module';
8
7
  import { FeatureFlagModule } from './featureFlag/feature-flag.module';
8
+ import { SnackBarModule } from './ui-kit/snack-bar/snack-bar.module';
9
+ import { TooltipModule } from './ui-kit/tooltip/tooltip.module';
9
10
  import { SentryErrorHandler } from './shared/errorhandler/sentry-error.handler';
10
11
  import { Configurations } from './configuration';
11
12
  import { UnauthorizedComponent } from './shared/components/unauthorized/unauthorized.component';
@@ -24,9 +25,20 @@ export class VcErrorHandlersModule {
24
25
  // this.loadConfig.loadConfig();
25
26
  }
26
27
  static forRoot(environmentConfig) {
28
+ const providers = [
29
+ { provide: Configurations, useValue: environmentConfig },
30
+ { provide: ErrorHandler, useClass: SentryErrorHandler },
31
+ ];
32
+ if (environmentConfig.isErrorInterceptorEnabled) {
33
+ providers.push({
34
+ provide: HTTP_INTERCEPTORS,
35
+ useClass: HttpReqInterceptor,
36
+ multi: true,
37
+ });
38
+ }
27
39
  return {
28
40
  ngModule: VcErrorHandlersModule,
29
- providers: [{ provide: Configurations, useValue: environmentConfig }],
41
+ providers: providers,
30
42
  };
31
43
  }
32
44
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: VcErrorHandlersModule, deps: [{ token: i1.FeatureFlagService }], target: i0.ɵɵFactoryTarget.NgModule }); }
@@ -37,7 +49,12 @@ export class VcErrorHandlersModule {
37
49
  ChunkUnavailableComponent,
38
50
  ServerErrorComponent,
39
51
  ErrorModalComponent,
40
- ComponentLevelServerErrorComponent], imports: [CommonModule, DialogModule, SnackBarModule, FeatureFlagModule, NgOptimizedImage], exports: [VcErrorHandlersComponent,
52
+ ComponentLevelServerErrorComponent], imports: [CommonModule,
53
+ DialogModule,
54
+ FeatureFlagModule,
55
+ NgOptimizedImage,
56
+ SnackBarModule,
57
+ TooltipModule], exports: [VcErrorHandlersComponent,
41
58
  PageNotFoundComponent,
42
59
  UnauthorizedComponent,
43
60
  SessionExpiredComponent,
@@ -45,10 +62,11 @@ export class VcErrorHandlersModule {
45
62
  ServerErrorComponent,
46
63
  ErrorModalComponent,
47
64
  ComponentLevelServerErrorComponent] }); }
48
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: VcErrorHandlersModule, providers: [
49
- { provide: ErrorHandler, useClass: SentryErrorHandler },
50
- { provide: HTTP_INTERCEPTORS, useClass: HttpReqInterceptor, multi: true },
51
- ], imports: [CommonModule, DialogModule, SnackBarModule, FeatureFlagModule] }); }
65
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: VcErrorHandlersModule, imports: [CommonModule,
66
+ DialogModule,
67
+ FeatureFlagModule,
68
+ SnackBarModule,
69
+ TooltipModule] }); }
52
70
  }
53
71
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: VcErrorHandlersModule, decorators: [{
54
72
  type: NgModule,
@@ -63,7 +81,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
63
81
  ErrorModalComponent,
64
82
  ComponentLevelServerErrorComponent,
65
83
  ],
66
- imports: [CommonModule, DialogModule, SnackBarModule, FeatureFlagModule, NgOptimizedImage],
84
+ imports: [
85
+ CommonModule,
86
+ DialogModule,
87
+ FeatureFlagModule,
88
+ NgOptimizedImage,
89
+ SnackBarModule,
90
+ TooltipModule,
91
+ ],
67
92
  exports: [
68
93
  VcErrorHandlersComponent,
69
94
  PageNotFoundComponent,
@@ -74,11 +99,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
74
99
  ErrorModalComponent,
75
100
  ComponentLevelServerErrorComponent,
76
101
  ],
77
- providers: [
78
- { provide: ErrorHandler, useClass: SentryErrorHandler },
79
- { provide: HTTP_INTERCEPTORS, useClass: HttpReqInterceptor, multi: true },
80
- ],
81
102
  bootstrap: [VcErrorHandlersComponent],
82
103
  }]
83
104
  }], ctorParameters: function () { return [{ type: i1.FeatureFlagService }]; } });
84
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmMtZXJyb3ItaGFuZGxlcnMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdmMtZXJyb3ItaGFuZGxlcnMvc3JjL2xpYi92Yy1lcnJvci1oYW5kbGVycy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFlBQVksRUFDWixjQUFjLEVBRWQsUUFBUSxHQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVqRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw2REFBNkQsQ0FBQztBQUNwRyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUV6RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBTXRFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUNoRyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwrREFBK0QsQ0FBQztBQUN4RyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxtRUFBbUUsQ0FBQztBQUM5RyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUUvRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUM1RixPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSx5RkFBeUYsQ0FBQzs7O0FBRTdJLE1BQU0sQ0FBQyxNQUFNLDZCQUE2QixHQUFHLElBQUksY0FBYyxDQUM3RCxzQ0FBc0MsQ0FDdkMsQ0FBQztBQThCRixNQUFNLE9BQU8scUJBQXFCO0lBQ2hDLFlBQW9CLFVBQThCO1FBQTlCLGVBQVUsR0FBVixVQUFVLENBQW9CO1FBQ2hELGdDQUFnQztJQUNsQyxDQUFDO0lBRU0sTUFBTSxDQUFDLE9BQU8sQ0FDbkIsaUJBQWlDO1FBRWpDLE9BQU87WUFDTCxRQUFRLEVBQUUscUJBQXFCO1lBQy9CLFNBQVMsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQztTQUN0RSxDQUFDO0lBQ0osQ0FBQzsrR0FaVSxxQkFBcUI7Z0hBQXJCLHFCQUFxQixjQUZwQix3QkFBd0Isa0JBeEJsQyx3QkFBd0I7WUFDeEIscUJBQXFCO1lBQ3JCLHFCQUFxQjtZQUNyQix1QkFBdUI7WUFDdkIseUJBQXlCO1lBQ3pCLG9CQUFvQjtZQUNwQixtQkFBbUI7WUFDbkIsa0NBQWtDLGFBRTFCLFlBQVksRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixhQUV2Rix3QkFBd0I7WUFDeEIscUJBQXFCO1lBQ3JCLHFCQUFxQjtZQUNyQix1QkFBdUI7WUFDdkIseUJBQXlCO1lBQ3pCLG9CQUFvQjtZQUNwQixtQkFBbUI7WUFDbkIsa0NBQWtDO2dIQVF6QixxQkFBcUIsYUFOckI7WUFDVCxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLGtCQUFrQixFQUFFO1lBQ3ZELEVBQUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFFBQVEsRUFBRSxrQkFBa0IsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO1NBQzFFLFlBZFMsWUFBWSxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsaUJBQWlCOzs0RkFpQjVELHFCQUFxQjtrQkE1QmpDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLHdCQUF3Qjt3QkFDeEIscUJBQXFCO3dCQUNyQixxQkFBcUI7d0JBQ3JCLHVCQUF1Qjt3QkFDdkIseUJBQXlCO3dCQUN6QixvQkFBb0I7d0JBQ3BCLG1CQUFtQjt3QkFDbkIsa0NBQWtDO3FCQUNuQztvQkFDRCxPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxpQkFBaUIsRUFBRSxnQkFBZ0IsQ0FBQztvQkFDMUYsT0FBTyxFQUFFO3dCQUNQLHdCQUF3Qjt3QkFDeEIscUJBQXFCO3dCQUNyQixxQkFBcUI7d0JBQ3JCLHVCQUF1Qjt3QkFDdkIseUJBQXlCO3dCQUN6QixvQkFBb0I7d0JBQ3BCLG1CQUFtQjt3QkFDbkIsa0NBQWtDO3FCQUNuQztvQkFDRCxTQUFTLEVBQUU7d0JBQ1QsRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxrQkFBa0IsRUFBRTt3QkFDdkQsRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLGtCQUFrQixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7cUJBQzFFO29CQUNELFNBQVMsRUFBRSxDQUFDLHdCQUF3QixDQUFDO2lCQUN0QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEVycm9ySGFuZGxlcixcbiAgSW5qZWN0aW9uVG9rZW4sXG4gIE1vZHVsZVdpdGhQcm92aWRlcnMsXG4gIE5nTW9kdWxlLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEhUVFBfSU5URVJDRVBUT1JTIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBOZ09wdGltaXplZEltYWdlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuaW1wb3J0IHsgUGFnZU5vdEZvdW5kQ29tcG9uZW50IH0gZnJvbSAnLi9zaGFyZWQvY29tcG9uZW50cy9wYWdlLW5vdC1mb3VuZC9wYWdlLW5vdC1mb3VuZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVmNFcnJvckhhbmRsZXJzQ29tcG9uZW50IH0gZnJvbSAnLi92Yy1lcnJvci1oYW5kbGVycy5jb21wb25lbnQnO1xuXG5pbXBvcnQgeyBEaWFsb2dNb2R1bGUgfSBmcm9tICcuL3VpLWtpdC9kaWFsb2cvZGlhbG9nLm1vZHVsZSc7XG5pbXBvcnQgeyBTbmFja0Jhck1vZHVsZSB9IGZyb20gJy4vdWkta2l0L3NuYWNrLWJhci9zbmFjay1iYXIubW9kdWxlJztcbmltcG9ydCB7IEZlYXR1cmVGbGFnTW9kdWxlIH0gZnJvbSAnLi9mZWF0dXJlRmxhZy9mZWF0dXJlLWZsYWcubW9kdWxlJztcblxuaW1wb3J0IHsgRmVhdHVyZUZsYWdTZXJ2aWNlIH0gZnJvbSAnLi9mZWF0dXJlRmxhZy9mZWF0dXJlLWZsYWcuc2VydmljZSc7XG5cbmltcG9ydCB7IEJyb3dzZXJPcHRpb25zIH0gZnJvbSAnQHNlbnRyeS9icm93c2VyJztcbmltcG9ydCB7IEdsb2JhbEVycm9ySGFuZGxlciB9IGZyb20gJy4vc2hhcmVkL2Vycm9yaGFuZGxlci9jaHVuay1lcnJvci5oYW5kbGVyJztcbmltcG9ydCB7IFNlbnRyeUVycm9ySGFuZGxlciB9IGZyb20gJy4vc2hhcmVkL2Vycm9yaGFuZGxlci9zZW50cnktZXJyb3IuaGFuZGxlcic7XG5pbXBvcnQgeyBDb25maWd1cmF0aW9ucyB9IGZyb20gJy4vY29uZmlndXJhdGlvbic7XG5pbXBvcnQgeyBVbmF1dGhvcml6ZWRDb21wb25lbnQgfSBmcm9tICcuL3NoYXJlZC9jb21wb25lbnRzL3VuYXV0aG9yaXplZC91bmF1dGhvcml6ZWQuY29tcG9uZW50JztcbmltcG9ydCB7IFNlc3Npb25FeHBpcmVkQ29tcG9uZW50IH0gZnJvbSAnLi9zaGFyZWQvY29tcG9uZW50cy9zZXNzaW9uLWV4cGlyZWQvc2Vzc2lvbi1leHBpcmVkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDaHVua1VuYXZhaWxhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi9zaGFyZWQvY29tcG9uZW50cy9jaHVuay11bmF2YWlsYWJsZS9jaHVuay11bmF2YWlsYWJsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2VydmVyRXJyb3JDb21wb25lbnQgfSBmcm9tICcuL3NoYXJlZC9jb21wb25lbnRzL3NlcnZlci1lcnJvci9zZXJ2ZXItZXJyb3IuY29tcG9uZW50JztcblxuaW1wb3J0IHsgSHR0cFJlcUludGVyY2VwdG9yIH0gZnJvbSAnLi9zaGFyZWQvaW50ZXJjZXB0b3JzL2h0dHAuaW50ZXJjZXB0b3InO1xuaW1wb3J0IHsgRXJyb3JNb2RhbENvbXBvbmVudCB9IGZyb20gJy4vc2hhcmVkL2NvbXBvbmVudHMvZXJyb3ItbW9kYWwvZXJyb3ItbW9kYWwuY29tcG9uZW50JztcbmltcG9ydCB7IENvbXBvbmVudExldmVsU2VydmVyRXJyb3JDb21wb25lbnQgfSBmcm9tICcuL3NoYXJlZC9jb21wb25lbnRzL2NvbXBvbmVudC1sZXZlbC1zZXJ2ZXItZXJyb3IvY29tcG9uZW50LWxldmVsLXNlcnZlci1lcnJvci5jb21wb25lbnQnO1xuXG5leHBvcnQgY29uc3QgRk9SX1JPT1RfU0VOVFJZX09QVElPTlNfVE9LRU4gPSBuZXcgSW5qZWN0aW9uVG9rZW48QnJvd3Nlck9wdGlvbnM+KFxuICAnZm9yUm9vdCgpIFNlbnRyeUVycm9ySGFuZGxlciBvcHRpb25zJ1xuKTtcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgVmNFcnJvckhhbmRsZXJzQ29tcG9uZW50LFxuICAgIFBhZ2VOb3RGb3VuZENvbXBvbmVudCxcbiAgICBVbmF1dGhvcml6ZWRDb21wb25lbnQsXG4gICAgU2Vzc2lvbkV4cGlyZWRDb21wb25lbnQsXG4gICAgQ2h1bmtVbmF2YWlsYWJsZUNvbXBvbmVudCxcbiAgICBTZXJ2ZXJFcnJvckNvbXBvbmVudCxcbiAgICBFcnJvck1vZGFsQ29tcG9uZW50LFxuICAgIENvbXBvbmVudExldmVsU2VydmVyRXJyb3JDb21wb25lbnQsXG4gIF0sXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIERpYWxvZ01vZHVsZSwgU25hY2tCYXJNb2R1bGUsIEZlYXR1cmVGbGFnTW9kdWxlLCBOZ09wdGltaXplZEltYWdlXSxcbiAgZXhwb3J0czogW1xuICAgIFZjRXJyb3JIYW5kbGVyc0NvbXBvbmVudCxcbiAgICBQYWdlTm90Rm91bmRDb21wb25lbnQsXG4gICAgVW5hdXRob3JpemVkQ29tcG9uZW50LFxuICAgIFNlc3Npb25FeHBpcmVkQ29tcG9uZW50LFxuICAgIENodW5rVW5hdmFpbGFibGVDb21wb25lbnQsXG4gICAgU2VydmVyRXJyb3JDb21wb25lbnQsXG4gICAgRXJyb3JNb2RhbENvbXBvbmVudCxcbiAgICBDb21wb25lbnRMZXZlbFNlcnZlckVycm9yQ29tcG9uZW50LFxuICBdLFxuICBwcm92aWRlcnM6IFtcbiAgICB7IHByb3ZpZGU6IEVycm9ySGFuZGxlciwgdXNlQ2xhc3M6IFNlbnRyeUVycm9ySGFuZGxlciB9LFxuICAgIHsgcHJvdmlkZTogSFRUUF9JTlRFUkNFUFRPUlMsIHVzZUNsYXNzOiBIdHRwUmVxSW50ZXJjZXB0b3IsIG11bHRpOiB0cnVlIH0sXG4gIF0sXG4gIGJvb3RzdHJhcDogW1ZjRXJyb3JIYW5kbGVyc0NvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIFZjRXJyb3JIYW5kbGVyc01vZHVsZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbG9hZENvbmZpZzogRmVhdHVyZUZsYWdTZXJ2aWNlKSB7XG4gICAgLy8gdGhpcy5sb2FkQ29uZmlnLmxvYWRDb25maWcoKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgZm9yUm9vdChcbiAgICBlbnZpcm9ubWVudENvbmZpZzogQ29uZmlndXJhdGlvbnNcbiAgKTogTW9kdWxlV2l0aFByb3ZpZGVyczxWY0Vycm9ySGFuZGxlcnNNb2R1bGU+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IFZjRXJyb3JIYW5kbGVyc01vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW3sgcHJvdmlkZTogQ29uZmlndXJhdGlvbnMsIHVzZVZhbHVlOiBlbnZpcm9ubWVudENvbmZpZyB9XSxcbiAgICB9O1xuICB9XG59XG4iXX0=
105
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmMtZXJyb3ItaGFuZGxlcnMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdmMtZXJyb3ItaGFuZGxlcnMvc3JjL2xpYi92Yy1lcnJvci1oYW5kbGVycy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFlBQVksRUFDWixjQUFjLEVBRWQsUUFBUSxHQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVqRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw2REFBNkQsQ0FBQztBQUNwRyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUV6RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDdEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQU1oRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUNoRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seURBQXlELENBQUM7QUFDaEcsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sK0RBQStELENBQUM7QUFDeEcsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sbUVBQW1FLENBQUM7QUFDOUcsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seURBQXlELENBQUM7QUFFL0YsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDNUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDNUYsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0seUZBQXlGLENBQUM7OztBQUU3SSxNQUFNLENBQUMsTUFBTSw2QkFBNkIsR0FBRyxJQUFJLGNBQWMsQ0FDN0Qsc0NBQXNDLENBQ3ZDLENBQUM7QUFpQ0YsTUFBTSxPQUFPLHFCQUFxQjtJQUNoQyxZQUFvQixVQUE4QjtRQUE5QixlQUFVLEdBQVYsVUFBVSxDQUFvQjtRQUNoRCxnQ0FBZ0M7SUFDbEMsQ0FBQztJQUVNLE1BQU0sQ0FBQyxPQUFPLENBQ25CLGlCQUFpQztRQUVqQyxNQUFNLFNBQVMsR0FBVTtZQUN2QixFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLGlCQUFpQixFQUFFO1lBQ3hELEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsa0JBQWtCLEVBQUU7U0FDeEQsQ0FBQztRQUVGLElBQUksaUJBQWlCLENBQUMseUJBQXlCLEVBQUU7WUFDL0MsU0FBUyxDQUFDLElBQUksQ0FBQztnQkFDYixPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixRQUFRLEVBQUUsa0JBQWtCO2dCQUM1QixLQUFLLEVBQUUsSUFBSTthQUNaLENBQUMsQ0FBQztTQUNKO1FBRUQsT0FBTztZQUNMLFFBQVEsRUFBRSxxQkFBcUI7WUFDL0IsU0FBUyxFQUFFLFNBQVM7U0FDckIsQ0FBQztJQUNKLENBQUM7K0dBekJVLHFCQUFxQjtnSEFBckIscUJBQXFCLGNBRnBCLHdCQUF3QixrQkEzQmxDLHdCQUF3QjtZQUN4QixxQkFBcUI7WUFDckIscUJBQXFCO1lBQ3JCLHVCQUF1QjtZQUN2Qix5QkFBeUI7WUFDekIsb0JBQW9CO1lBQ3BCLG1CQUFtQjtZQUNuQixrQ0FBa0MsYUFHbEMsWUFBWTtZQUNaLFlBQVk7WUFDWixpQkFBaUI7WUFDakIsZ0JBQWdCO1lBQ2hCLGNBQWM7WUFDZCxhQUFhLGFBR2Isd0JBQXdCO1lBQ3hCLHFCQUFxQjtZQUNyQixxQkFBcUI7WUFDckIsdUJBQXVCO1lBQ3ZCLHlCQUF5QjtZQUN6QixvQkFBb0I7WUFDcEIsbUJBQW1CO1lBQ25CLGtDQUFrQztnSEFJekIscUJBQXFCLFlBbkI5QixZQUFZO1lBQ1osWUFBWTtZQUNaLGlCQUFpQjtZQUVqQixjQUFjO1lBQ2QsYUFBYTs7NEZBY0oscUJBQXFCO2tCQS9CakMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1osd0JBQXdCO3dCQUN4QixxQkFBcUI7d0JBQ3JCLHFCQUFxQjt3QkFDckIsdUJBQXVCO3dCQUN2Qix5QkFBeUI7d0JBQ3pCLG9CQUFvQjt3QkFDcEIsbUJBQW1CO3dCQUNuQixrQ0FBa0M7cUJBQ25DO29CQUNELE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLFlBQVk7d0JBQ1osaUJBQWlCO3dCQUNqQixnQkFBZ0I7d0JBQ2hCLGNBQWM7d0JBQ2QsYUFBYTtxQkFDZDtvQkFDRCxPQUFPLEVBQUU7d0JBQ1Asd0JBQXdCO3dCQUN4QixxQkFBcUI7d0JBQ3JCLHFCQUFxQjt3QkFDckIsdUJBQXVCO3dCQUN2Qix5QkFBeUI7d0JBQ3pCLG9CQUFvQjt3QkFDcEIsbUJBQW1CO3dCQUNuQixrQ0FBa0M7cUJBQ25DO29CQUNELFNBQVMsRUFBRSxDQUFDLHdCQUF3QixDQUFDO2lCQUN0QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEVycm9ySGFuZGxlcixcbiAgSW5qZWN0aW9uVG9rZW4sXG4gIE1vZHVsZVdpdGhQcm92aWRlcnMsXG4gIE5nTW9kdWxlLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEhUVFBfSU5URVJDRVBUT1JTIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBOZ09wdGltaXplZEltYWdlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuaW1wb3J0IHsgUGFnZU5vdEZvdW5kQ29tcG9uZW50IH0gZnJvbSAnLi9zaGFyZWQvY29tcG9uZW50cy9wYWdlLW5vdC1mb3VuZC9wYWdlLW5vdC1mb3VuZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVmNFcnJvckhhbmRsZXJzQ29tcG9uZW50IH0gZnJvbSAnLi92Yy1lcnJvci1oYW5kbGVycy5jb21wb25lbnQnO1xuXG5pbXBvcnQgeyBEaWFsb2dNb2R1bGUgfSBmcm9tICcuL3VpLWtpdC9kaWFsb2cvZGlhbG9nLm1vZHVsZSc7XG5pbXBvcnQgeyBGZWF0dXJlRmxhZ01vZHVsZSB9IGZyb20gJy4vZmVhdHVyZUZsYWcvZmVhdHVyZS1mbGFnLm1vZHVsZSc7XG5pbXBvcnQgeyBTbmFja0Jhck1vZHVsZSB9IGZyb20gJy4vdWkta2l0L3NuYWNrLWJhci9zbmFjay1iYXIubW9kdWxlJztcbmltcG9ydCB7IFRvb2x0aXBNb2R1bGUgfSBmcm9tICcuL3VpLWtpdC90b29sdGlwL3Rvb2x0aXAubW9kdWxlJztcblxuaW1wb3J0IHsgRmVhdHVyZUZsYWdTZXJ2aWNlIH0gZnJvbSAnLi9mZWF0dXJlRmxhZy9mZWF0dXJlLWZsYWcuc2VydmljZSc7XG5cbmltcG9ydCB7IEJyb3dzZXJPcHRpb25zIH0gZnJvbSAnQHNlbnRyeS9icm93c2VyJztcbmltcG9ydCB7IEdsb2JhbEVycm9ySGFuZGxlciB9IGZyb20gJy4vc2hhcmVkL2Vycm9yaGFuZGxlci9jaHVuay1lcnJvci5oYW5kbGVyJztcbmltcG9ydCB7IFNlbnRyeUVycm9ySGFuZGxlciB9IGZyb20gJy4vc2hhcmVkL2Vycm9yaGFuZGxlci9zZW50cnktZXJyb3IuaGFuZGxlcic7XG5pbXBvcnQgeyBDb25maWd1cmF0aW9ucyB9IGZyb20gJy4vY29uZmlndXJhdGlvbic7XG5pbXBvcnQgeyBVbmF1dGhvcml6ZWRDb21wb25lbnQgfSBmcm9tICcuL3NoYXJlZC9jb21wb25lbnRzL3VuYXV0aG9yaXplZC91bmF1dGhvcml6ZWQuY29tcG9uZW50JztcbmltcG9ydCB7IFNlc3Npb25FeHBpcmVkQ29tcG9uZW50IH0gZnJvbSAnLi9zaGFyZWQvY29tcG9uZW50cy9zZXNzaW9uLWV4cGlyZWQvc2Vzc2lvbi1leHBpcmVkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDaHVua1VuYXZhaWxhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi9zaGFyZWQvY29tcG9uZW50cy9jaHVuay11bmF2YWlsYWJsZS9jaHVuay11bmF2YWlsYWJsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2VydmVyRXJyb3JDb21wb25lbnQgfSBmcm9tICcuL3NoYXJlZC9jb21wb25lbnRzL3NlcnZlci1lcnJvci9zZXJ2ZXItZXJyb3IuY29tcG9uZW50JztcblxuaW1wb3J0IHsgSHR0cFJlcUludGVyY2VwdG9yIH0gZnJvbSAnLi9zaGFyZWQvaW50ZXJjZXB0b3JzL2h0dHAuaW50ZXJjZXB0b3InO1xuaW1wb3J0IHsgRXJyb3JNb2RhbENvbXBvbmVudCB9IGZyb20gJy4vc2hhcmVkL2NvbXBvbmVudHMvZXJyb3ItbW9kYWwvZXJyb3ItbW9kYWwuY29tcG9uZW50JztcbmltcG9ydCB7IENvbXBvbmVudExldmVsU2VydmVyRXJyb3JDb21wb25lbnQgfSBmcm9tICcuL3NoYXJlZC9jb21wb25lbnRzL2NvbXBvbmVudC1sZXZlbC1zZXJ2ZXItZXJyb3IvY29tcG9uZW50LWxldmVsLXNlcnZlci1lcnJvci5jb21wb25lbnQnO1xuXG5leHBvcnQgY29uc3QgRk9SX1JPT1RfU0VOVFJZX09QVElPTlNfVE9LRU4gPSBuZXcgSW5qZWN0aW9uVG9rZW48QnJvd3Nlck9wdGlvbnM+KFxuICAnZm9yUm9vdCgpIFNlbnRyeUVycm9ySGFuZGxlciBvcHRpb25zJ1xuKTtcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgVmNFcnJvckhhbmRsZXJzQ29tcG9uZW50LFxuICAgIFBhZ2VOb3RGb3VuZENvbXBvbmVudCxcbiAgICBVbmF1dGhvcml6ZWRDb21wb25lbnQsXG4gICAgU2Vzc2lvbkV4cGlyZWRDb21wb25lbnQsXG4gICAgQ2h1bmtVbmF2YWlsYWJsZUNvbXBvbmVudCxcbiAgICBTZXJ2ZXJFcnJvckNvbXBvbmVudCxcbiAgICBFcnJvck1vZGFsQ29tcG9uZW50LFxuICAgIENvbXBvbmVudExldmVsU2VydmVyRXJyb3JDb21wb25lbnQsXG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRGlhbG9nTW9kdWxlLFxuICAgIEZlYXR1cmVGbGFnTW9kdWxlLFxuICAgIE5nT3B0aW1pemVkSW1hZ2UsXG4gICAgU25hY2tCYXJNb2R1bGUsXG4gICAgVG9vbHRpcE1vZHVsZSxcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIFZjRXJyb3JIYW5kbGVyc0NvbXBvbmVudCxcbiAgICBQYWdlTm90Rm91bmRDb21wb25lbnQsXG4gICAgVW5hdXRob3JpemVkQ29tcG9uZW50LFxuICAgIFNlc3Npb25FeHBpcmVkQ29tcG9uZW50LFxuICAgIENodW5rVW5hdmFpbGFibGVDb21wb25lbnQsXG4gICAgU2VydmVyRXJyb3JDb21wb25lbnQsXG4gICAgRXJyb3JNb2RhbENvbXBvbmVudCxcbiAgICBDb21wb25lbnRMZXZlbFNlcnZlckVycm9yQ29tcG9uZW50LFxuICBdLFxuICBib290c3RyYXA6IFtWY0Vycm9ySGFuZGxlcnNDb21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBWY0Vycm9ySGFuZGxlcnNNb2R1bGUge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGxvYWRDb25maWc6IEZlYXR1cmVGbGFnU2VydmljZSkge1xuICAgIC8vIHRoaXMubG9hZENvbmZpZy5sb2FkQ29uZmlnKCk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGZvclJvb3QoXG4gICAgZW52aXJvbm1lbnRDb25maWc6IENvbmZpZ3VyYXRpb25zXG4gICk6IE1vZHVsZVdpdGhQcm92aWRlcnM8VmNFcnJvckhhbmRsZXJzTW9kdWxlPiB7XG4gICAgY29uc3QgcHJvdmlkZXJzOiBhbnlbXSA9IFtcbiAgICAgIHsgcHJvdmlkZTogQ29uZmlndXJhdGlvbnMsIHVzZVZhbHVlOiBlbnZpcm9ubWVudENvbmZpZyB9LFxuICAgICAgeyBwcm92aWRlOiBFcnJvckhhbmRsZXIsIHVzZUNsYXNzOiBTZW50cnlFcnJvckhhbmRsZXIgfSxcbiAgICBdO1xuXG4gICAgaWYgKGVudmlyb25tZW50Q29uZmlnLmlzRXJyb3JJbnRlcmNlcHRvckVuYWJsZWQpIHtcbiAgICAgIHByb3ZpZGVycy5wdXNoKHtcbiAgICAgICAgcHJvdmlkZTogSFRUUF9JTlRFUkNFUFRPUlMsXG4gICAgICAgIHVzZUNsYXNzOiBIdHRwUmVxSW50ZXJjZXB0b3IsXG4gICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBWY0Vycm9ySGFuZGxlcnNNb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IHByb3ZpZGVycyxcbiAgICB9O1xuICB9XG59XG4iXX0=