@cleavelandprice/ngx-lib 3.5.0 → 3.5.2

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 (99) hide show
  1. package/esm2020/active-directory/active-directory.module.mjs +5 -5
  2. package/esm2020/active-directory/gui/components/user-chooser/user-chooser.component.mjs +4 -4
  3. package/esm2020/active-directory/gui/components/user-form-field/user-form-field.component.mjs +4 -4
  4. package/esm2020/active-directory/gui/gui.module.mjs +5 -5
  5. package/esm2020/active-directory/services/active-directory.service.mjs +4 -4
  6. package/esm2020/authentication/authentication.base.module.mjs +5 -5
  7. package/esm2020/authentication/object/object.module.mjs +5 -5
  8. package/esm2020/authentication/object/services/authentication.service.mjs +4 -4
  9. package/esm2020/authentication/token/gui/components/login/login.component.mjs +4 -4
  10. package/esm2020/authentication/token/gui/components/login-form/login-form.component.mjs +4 -4
  11. package/esm2020/authentication/token/gui/services/authentication.service.mjs +4 -4
  12. package/esm2020/authentication/token/gui/token-gui.module.mjs +5 -5
  13. package/esm2020/authentication/token/services/authentication.service.mjs +4 -4
  14. package/esm2020/authentication/token/token.module.mjs +5 -5
  15. package/esm2020/dialog/components/base/base.component.mjs +4 -4
  16. package/esm2020/dialog/components/choice/choice.component.mjs +4 -4
  17. package/esm2020/dialog/components/confirmation/confirmation.component.mjs +4 -4
  18. package/esm2020/dialog/components/input/input.component.mjs +4 -4
  19. package/esm2020/dialog/components/message/message.component.mjs +4 -4
  20. package/esm2020/dialog/dialog.module.mjs +5 -5
  21. package/esm2020/lib/ngx-lib.module.mjs +5 -5
  22. package/esm2020/lib/services/app-path-config.service.mjs +4 -4
  23. package/esm2020/msgraph/model/calendar-event.mjs +1 -1
  24. package/esm2020/msgraph/msgraph.module.mjs +5 -5
  25. package/esm2020/quill/components/editor/editor.component.mjs +4 -4
  26. package/esm2020/quill/components/raw/raw.component.mjs +4 -4
  27. package/esm2020/quill/mention/components/editor/editor.component.mjs +4 -4
  28. package/esm2020/quill/mention/quill-mention.module.mjs +5 -5
  29. package/esm2020/quill/quill.module.mjs +5 -5
  30. package/esm2020/sharepoint/components/employee-photo/employee-photo.component.mjs +4 -4
  31. package/esm2020/sharepoint/pipes/employee-photo-url.pipe.mjs +4 -4
  32. package/esm2020/sharepoint/services/sharepoint.service.mjs +4 -4
  33. package/esm2020/sharepoint/sharepoint.module.mjs +5 -5
  34. package/esm2020/upload/components/upload/upload.component.mjs +4 -4
  35. package/esm2020/upload/components/upload-dialog/upload-dialog.component.mjs +4 -4
  36. package/esm2020/upload/services/upload.service.mjs +4 -4
  37. package/esm2020/upload/upload.module.mjs +5 -5
  38. package/esm2020/url-utilities/pipes/safe-resource-url.pipe.mjs +4 -4
  39. package/esm2020/url-utilities/pipes/safe-url.pipe.mjs +4 -4
  40. package/esm2020/url-utilities/pipes/uri-scheme.pipe.mjs +4 -4
  41. package/esm2020/url-utilities/url-utilities.module.mjs +5 -5
  42. package/fesm2015/cleavelandprice-ngx-lib-active-directory-gui.mjs +10 -10
  43. package/fesm2015/cleavelandprice-ngx-lib-active-directory-gui.mjs.map +1 -1
  44. package/fesm2015/cleavelandprice-ngx-lib-active-directory.mjs +7 -7
  45. package/fesm2015/cleavelandprice-ngx-lib-active-directory.mjs.map +1 -1
  46. package/fesm2015/cleavelandprice-ngx-lib-authentication-object.mjs +7 -7
  47. package/fesm2015/cleavelandprice-ngx-lib-authentication-object.mjs.map +1 -1
  48. package/fesm2015/cleavelandprice-ngx-lib-authentication-token-gui.mjs +13 -13
  49. package/fesm2015/cleavelandprice-ngx-lib-authentication-token-gui.mjs.map +1 -1
  50. package/fesm2015/cleavelandprice-ngx-lib-authentication-token.mjs +7 -7
  51. package/fesm2015/cleavelandprice-ngx-lib-authentication-token.mjs.map +1 -1
  52. package/fesm2015/cleavelandprice-ngx-lib-authentication.mjs +4 -4
  53. package/fesm2015/cleavelandprice-ngx-lib-authentication.mjs.map +1 -1
  54. package/fesm2015/cleavelandprice-ngx-lib-dialog.mjs +19 -19
  55. package/fesm2015/cleavelandprice-ngx-lib-dialog.mjs.map +1 -1
  56. package/fesm2015/cleavelandprice-ngx-lib-msgraph.mjs +4 -4
  57. package/fesm2015/cleavelandprice-ngx-lib-msgraph.mjs.map +1 -1
  58. package/fesm2015/cleavelandprice-ngx-lib-quill-mention.mjs +7 -7
  59. package/fesm2015/cleavelandprice-ngx-lib-quill-mention.mjs.map +1 -1
  60. package/fesm2015/cleavelandprice-ngx-lib-quill.mjs +10 -10
  61. package/fesm2015/cleavelandprice-ngx-lib-quill.mjs.map +1 -1
  62. package/fesm2015/cleavelandprice-ngx-lib-sharepoint.mjs +13 -13
  63. package/fesm2015/cleavelandprice-ngx-lib-sharepoint.mjs.map +1 -1
  64. package/fesm2015/cleavelandprice-ngx-lib-upload.mjs +13 -13
  65. package/fesm2015/cleavelandprice-ngx-lib-upload.mjs.map +1 -1
  66. package/fesm2015/cleavelandprice-ngx-lib-url-utilities.mjs +13 -13
  67. package/fesm2015/cleavelandprice-ngx-lib-url-utilities.mjs.map +1 -1
  68. package/fesm2015/cleavelandprice-ngx-lib.mjs +7 -7
  69. package/fesm2015/cleavelandprice-ngx-lib.mjs.map +1 -1
  70. package/fesm2020/cleavelandprice-ngx-lib-active-directory-gui.mjs +10 -10
  71. package/fesm2020/cleavelandprice-ngx-lib-active-directory-gui.mjs.map +1 -1
  72. package/fesm2020/cleavelandprice-ngx-lib-active-directory.mjs +7 -7
  73. package/fesm2020/cleavelandprice-ngx-lib-active-directory.mjs.map +1 -1
  74. package/fesm2020/cleavelandprice-ngx-lib-authentication-object.mjs +7 -7
  75. package/fesm2020/cleavelandprice-ngx-lib-authentication-object.mjs.map +1 -1
  76. package/fesm2020/cleavelandprice-ngx-lib-authentication-token-gui.mjs +13 -13
  77. package/fesm2020/cleavelandprice-ngx-lib-authentication-token-gui.mjs.map +1 -1
  78. package/fesm2020/cleavelandprice-ngx-lib-authentication-token.mjs +7 -7
  79. package/fesm2020/cleavelandprice-ngx-lib-authentication-token.mjs.map +1 -1
  80. package/fesm2020/cleavelandprice-ngx-lib-authentication.mjs +4 -4
  81. package/fesm2020/cleavelandprice-ngx-lib-authentication.mjs.map +1 -1
  82. package/fesm2020/cleavelandprice-ngx-lib-dialog.mjs +19 -19
  83. package/fesm2020/cleavelandprice-ngx-lib-dialog.mjs.map +1 -1
  84. package/fesm2020/cleavelandprice-ngx-lib-msgraph.mjs +4 -4
  85. package/fesm2020/cleavelandprice-ngx-lib-msgraph.mjs.map +1 -1
  86. package/fesm2020/cleavelandprice-ngx-lib-quill-mention.mjs +7 -7
  87. package/fesm2020/cleavelandprice-ngx-lib-quill-mention.mjs.map +1 -1
  88. package/fesm2020/cleavelandprice-ngx-lib-quill.mjs +10 -10
  89. package/fesm2020/cleavelandprice-ngx-lib-quill.mjs.map +1 -1
  90. package/fesm2020/cleavelandprice-ngx-lib-sharepoint.mjs +13 -13
  91. package/fesm2020/cleavelandprice-ngx-lib-sharepoint.mjs.map +1 -1
  92. package/fesm2020/cleavelandprice-ngx-lib-upload.mjs +13 -13
  93. package/fesm2020/cleavelandprice-ngx-lib-upload.mjs.map +1 -1
  94. package/fesm2020/cleavelandprice-ngx-lib-url-utilities.mjs +13 -13
  95. package/fesm2020/cleavelandprice-ngx-lib-url-utilities.mjs.map +1 -1
  96. package/fesm2020/cleavelandprice-ngx-lib.mjs +7 -7
  97. package/fesm2020/cleavelandprice-ngx-lib.mjs.map +1 -1
  98. package/msgraph/model/calendar-event.d.ts +1 -0
  99. package/package.json +3 -3
@@ -19,10 +19,10 @@ export class ActiveDirectoryModule {
19
19
  };
20
20
  }
21
21
  }
22
- ActiveDirectoryModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: ActiveDirectoryModule, deps: [{ token: ActiveDirectoryModule, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.NgModule });
23
- ActiveDirectoryModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.1", ngImport: i0, type: ActiveDirectoryModule, imports: [CommonModule] });
24
- ActiveDirectoryModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: ActiveDirectoryModule, imports: [CommonModule] });
25
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: ActiveDirectoryModule, decorators: [{
22
+ ActiveDirectoryModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: ActiveDirectoryModule, deps: [{ token: ActiveDirectoryModule, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.NgModule });
23
+ ActiveDirectoryModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.10", ngImport: i0, type: ActiveDirectoryModule, imports: [CommonModule] });
24
+ ActiveDirectoryModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: ActiveDirectoryModule, imports: [CommonModule] });
25
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: ActiveDirectoryModule, decorators: [{
26
26
  type: NgModule,
27
27
  args: [{
28
28
  declarations: [],
@@ -36,4 +36,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
36
36
  }, {
37
37
  type: SkipSelf
38
38
  }] }]; } });
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZlLWRpcmVjdG9yeS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGVhdmVsYW5kcHJpY2Uvbmd4LWxpYi9hY3RpdmUtZGlyZWN0b3J5L3NyYy9hY3RpdmUtZGlyZWN0b3J5Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXVCLFFBQVEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFdkQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0scUNBQXFDLENBQUM7O0FBUzdFLE1BQU0sT0FBTyxxQkFBcUI7SUFXaEMsWUFBb0MsWUFBbUM7UUFDckUsSUFBSSxZQUFZLEVBQUU7WUFDaEIsTUFBTSxJQUFJLEtBQUssQ0FDYiwwRUFBMEUsQ0FBQyxDQUFDO1NBQy9FO0lBQ0gsQ0FBQztJQWZELE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBcUI7UUFDbEMsT0FBTztZQUNMLFFBQVEsRUFBRSxxQkFBcUI7WUFDL0IsU0FBUyxFQUFFO2dCQUNULHNCQUFzQjtnQkFDdEIsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUU7YUFDN0M7U0FDRixDQUFDO0lBQ0osQ0FBQzs7a0hBVFUscUJBQXFCO21IQUFyQixxQkFBcUIsWUFKOUIsWUFBWTttSEFJSCxxQkFBcUIsWUFKOUIsWUFBWTsyRkFJSCxxQkFBcUI7a0JBUGpDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLEVBQUU7b0JBQ2hCLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3FCQUNiO29CQUNELE9BQU8sRUFBRSxFQUFFO2lCQUNaOzswQkFZYyxRQUFROzswQkFBSSxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUsIE9wdGlvbmFsLCBTa2lwU2VsZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5cclxuaW1wb3J0IHsgU2VydmljZUNvbmZpZyB9IGZyb20gJy4vbW9kZWwvc2VydmljZS1jb25maWcnO1xyXG5cclxuaW1wb3J0IHsgQWN0aXZlRGlyZWN0b3J5U2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvYWN0aXZlLWRpcmVjdG9yeS5zZXJ2aWNlJztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbXSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGVcclxuICBdLFxyXG4gIGV4cG9ydHM6IFtdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBY3RpdmVEaXJlY3RvcnlNb2R1bGUge1xyXG4gIHN0YXRpYyBmb3JSb290KGNvbmZpZzogU2VydmljZUNvbmZpZyk6IE1vZHVsZVdpdGhQcm92aWRlcnM8QWN0aXZlRGlyZWN0b3J5TW9kdWxlPiB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBuZ01vZHVsZTogQWN0aXZlRGlyZWN0b3J5TW9kdWxlLFxyXG4gICAgICBwcm92aWRlcnM6IFtcclxuICAgICAgICBBY3RpdmVEaXJlY3RvcnlTZXJ2aWNlLFxyXG4gICAgICAgIHsgcHJvdmlkZTogU2VydmljZUNvbmZpZywgdXNlVmFsdWU6IGNvbmZpZyB9XHJcbiAgICAgIF1cclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBAU2tpcFNlbGYoKSBwYXJlbnRNb2R1bGU6IEFjdGl2ZURpcmVjdG9yeU1vZHVsZSkge1xyXG4gICAgaWYgKHBhcmVudE1vZHVsZSkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXHJcbiAgICAgICAgJ0FjdGl2ZURpcmVjdG9yeU1vZHVsZSBpcyBhbHJlYWR5IGxvYWRlZC4gSW1wb3J0IGl0IGluIHRoZSBBcHBNb2R1bGUgb25seScpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZlLWRpcmVjdG9yeS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGVhdmVsYW5kcHJpY2Uvbmd4LWxpYi9hY3RpdmUtZGlyZWN0b3J5L3NyYy9hY3RpdmUtZGlyZWN0b3J5Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXVCLFFBQVEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFdkQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0scUNBQXFDLENBQUM7O0FBUzdFLE1BQU0sT0FBTyxxQkFBcUI7SUFXaEMsWUFBb0MsWUFBbUM7UUFDckUsSUFBSSxZQUFZLEVBQUU7WUFDaEIsTUFBTSxJQUFJLEtBQUssQ0FDYiwwRUFBMEUsQ0FBQyxDQUFDO1NBQy9FO0lBQ0gsQ0FBQztJQWZELE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBcUI7UUFDbEMsT0FBTztZQUNMLFFBQVEsRUFBRSxxQkFBcUI7WUFDL0IsU0FBUyxFQUFFO2dCQUNULHNCQUFzQjtnQkFDdEIsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUU7YUFDN0M7U0FDRixDQUFDO0lBQ0osQ0FBQzs7bUhBVFUscUJBQXFCO29IQUFyQixxQkFBcUIsWUFKOUIsWUFBWTtvSEFJSCxxQkFBcUIsWUFKOUIsWUFBWTs0RkFJSCxxQkFBcUI7a0JBUGpDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLEVBQUU7b0JBQ2hCLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3FCQUNiO29CQUNELE9BQU8sRUFBRSxFQUFFO2lCQUNaOzswQkFZYyxRQUFROzswQkFBSSxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUsIE9wdGlvbmFsLCBTa2lwU2VsZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5cclxuaW1wb3J0IHsgU2VydmljZUNvbmZpZyB9IGZyb20gJy4vbW9kZWwvc2VydmljZS1jb25maWcnO1xyXG5cclxuaW1wb3J0IHsgQWN0aXZlRGlyZWN0b3J5U2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvYWN0aXZlLWRpcmVjdG9yeS5zZXJ2aWNlJztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbXSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGVcclxuICBdLFxyXG4gIGV4cG9ydHM6IFtdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBY3RpdmVEaXJlY3RvcnlNb2R1bGUge1xyXG4gIHN0YXRpYyBmb3JSb290KGNvbmZpZzogU2VydmljZUNvbmZpZyk6IE1vZHVsZVdpdGhQcm92aWRlcnM8QWN0aXZlRGlyZWN0b3J5TW9kdWxlPiB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBuZ01vZHVsZTogQWN0aXZlRGlyZWN0b3J5TW9kdWxlLFxyXG4gICAgICBwcm92aWRlcnM6IFtcclxuICAgICAgICBBY3RpdmVEaXJlY3RvcnlTZXJ2aWNlLFxyXG4gICAgICAgIHsgcHJvdmlkZTogU2VydmljZUNvbmZpZywgdXNlVmFsdWU6IGNvbmZpZyB9XHJcbiAgICAgIF1cclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBAU2tpcFNlbGYoKSBwYXJlbnRNb2R1bGU6IEFjdGl2ZURpcmVjdG9yeU1vZHVsZSkge1xyXG4gICAgaWYgKHBhcmVudE1vZHVsZSkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXHJcbiAgICAgICAgJ0FjdGl2ZURpcmVjdG9yeU1vZHVsZSBpcyBhbHJlYWR5IGxvYWRlZC4gSW1wb3J0IGl0IGluIHRoZSBBcHBNb2R1bGUgb25seScpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
@@ -356,9 +356,9 @@ export class UserChooserComponent {
356
356
  '';
357
357
  }
358
358
  }
359
- UserChooserComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: UserChooserComponent, deps: [{ token: MAT_DIALOG_DATA }, { token: i1.MatDialogRef }, { token: i2.ActiveDirectoryService }, { token: i3.SharePointService }], target: i0.ɵɵFactoryTarget.Component });
360
- UserChooserComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.1", type: UserChooserComponent, selector: "ng-component", viewQueries: [{ propertyName: "selectionList", first: true, predicate: MatSelectionList, descendants: true }, { propertyName: "filterInput", first: true, predicate: ["filterInput"], descendants: true }], ngImport: i0, template: "<div id=\"dialog-title\">\n <h2 mat-dialog-title>{{ data.title }}</h2>\n\n <div>\n {{ selectedOptions.length }} selected\n </div>\n</div>\n\n<mat-dialog-content>\n <div *ngIf=\"!(dataSource && photos)\">\n <mat-spinner [diameter]=\"50\"></mat-spinner>\n <h2 id=\"spinner-message\">Getting users and photos...</h2>\n </div>\n\n <ng-container *ngIf=\"dataSource && photos\">\n <form [formGroup]=\"filterForm\">\n <mat-form-field *ngIf=\"dataSource\">\n <input matInput placeholder=\"Search\" formControlName=\"filter\" #filterInput>\n\n <button *ngIf=\"filterForm.value.filter\" matSuffix mat-icon-button aria-label=\"Clear\" (click)=\"filterForm.get('filter')?.setValue('')\">\n <mat-icon fontIcon=\"close\"></mat-icon>\n </button>\n </mat-form-field>\n </form>\n\n <mat-selection-list [multiple]=\"isMultiMode\"\n (selectionChange)=\"listSelectionChanged($event.options)\">\n\n <mat-list-option *ngFor=\"let user of dataSource?.filteredData\" [value]=\"user\" [selected]=\"user.selected\"\n (selectedChange)=\"optionSelectionChanged(option)\" #option>\n\n <img *ngIf=\"getPhoto(user)\" matListAvatar alt=\"\" [src]=\"getPhoto(user)\">\n\n <mat-icon *ngIf=\"!getPhoto(user)\" matListAvatar class=\"no-photo\"\n fontIcon=\"account_circle\">\n </mat-icon>\n \n <div class=\"user\">\n <div [matTooltip]=\"tooltip(user)\" class=\"user-name\">\n {{ user.displayName }}\n <div *ngIf=\"data.showPhone && user.telephoneNumber\">{{ user.telephoneNumber }}</div>\n </div>\n \n <div>{{ user.department }}</div>\n \n <div class=\"title\">{{ user.title }}</div>\n </div>\n </mat-list-option>\n </mat-selection-list>\n </ng-container>\n</mat-dialog-content>\n\n<mat-dialog-actions>\n <ng-container *ngIf=\"dataSource && photos\">\n <mat-slide-toggle *ngIf=\"selectedOptions.length\" (change)=\"hideUnselectedChanged($event.checked)\">\n Hide Unselected\n </mat-slide-toggle>\n\n <button mat-raised-button color=\"primary\" (click)=\"selectAll()\"\n *ngIf=\"isMultiMode\">\n <mat-icon fontIcon=\"select_all\"></mat-icon>\n <span class=\"hide-mobile\">Select All</span>\n </button>\n \n <button mat-raised-button color=\"primary\" (click)=\"deselectAll()\"\n *ngIf=\"isMultiMode && selectedOptions.length\">\n <mat-icon fontIcon=\"clear_all\"></mat-icon>\n <span class=\"hide-mobile\">Clear All</span>\n </button>\n\n <button *ngIf=\"isMultiMode || !data.closeWhenSelectionMade\" mat-raised-button color=\"primary\" (click)=\"close()\" matTooltip=\"Accept your selection\"\n [disabled]=\"!selectedOptions.length\">\n <mat-icon fontIcon=\"check\"></mat-icon>\n <span class=\"hide-mobile\">Ok</span>\n </button>\n </ng-container>\n\n <button mat-raised-button color=\"warn\" mat-dialog-close matTooltip=\"Close this window\">\n <mat-icon fontIcon=\"close\"></mat-icon>\n <span class=\"hide-mobile\">Cancel</span>\n </button>\n</mat-dialog-actions>", styles: ["::ng-deep .mat-tooltip{font-size:1em!important;white-space:pre-line}mat-dialog-content{min-width:50vw}#dialog-title{display:flex;justify-content:space-between}.mat-spinner{margin:0 auto}#spinner-message{text-align:center;padding:.5em}mat-form-field{width:100%}.title{font-style:italic;color:#757575}img,.no-photo{width:2rem;height:2rem;font-size:2.3rem!important;border-radius:100%}.hide-mobile{display:none}mat-dialog-actions{display:grid;grid-auto-flow:column;grid-gap:1em;justify-content:center}.user-name{display:flex;justify-content:space-between}.user-name>div:last-child{margin-right:10rem;font-weight:400;font-style:italic;color:#757575}@media (min-width:801px){.user{display:grid;grid-template-columns:1fr 1fr 1fr}.user>div:first-child{font-weight:700}.hide-mobile{display:initial}}\n", ".material-icons{font-family:Material Icons;font-weight:400;font-style:normal;font-size:24px;display:inline-block;line-height:1;text-transform:none;letter-spacing:normal;word-wrap:normal;white-space:nowrap;direction:ltr;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale;font-feature-settings:\"liga\"}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i6.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "component", type: i7.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7.MatSuffix, selector: "[matSuffix]" }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i9.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: i10.MatListAvatarCssMatStyler, selector: "[mat-list-avatar], [matListAvatar]" }, { kind: "component", type: i10.MatSelectionList, selector: "mat-selection-list", inputs: ["disableRipple", "color", "compareWith", "disabled", "multiple"], outputs: ["selectionChange"], exportAs: ["matSelectionList"] }, { kind: "component", type: i10.MatListOption, selector: "mat-list-option", inputs: ["disableRipple", "checkboxPosition", "color", "value", "disabled", "selected"], outputs: ["selectedChange"], exportAs: ["matListOption"] }, { kind: "component", type: i11.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i12.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["disabled", "disableRipple", "color", "tabIndex"], exportAs: ["matSlideToggle"] }, { kind: "directive", type: i13.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }] });
361
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: UserChooserComponent, decorators: [{
359
+ UserChooserComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: UserChooserComponent, deps: [{ token: MAT_DIALOG_DATA }, { token: i1.MatDialogRef }, { token: i2.ActiveDirectoryService }, { token: i3.SharePointService }], target: i0.ɵɵFactoryTarget.Component });
360
+ UserChooserComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.10", type: UserChooserComponent, selector: "ng-component", viewQueries: [{ propertyName: "selectionList", first: true, predicate: MatSelectionList, descendants: true }, { propertyName: "filterInput", first: true, predicate: ["filterInput"], descendants: true }], ngImport: i0, template: "<div id=\"dialog-title\">\n <h2 mat-dialog-title>{{ data.title }}</h2>\n\n <div>\n {{ selectedOptions.length }} selected\n </div>\n</div>\n\n<mat-dialog-content>\n <div *ngIf=\"!(dataSource && photos)\">\n <mat-spinner [diameter]=\"50\"></mat-spinner>\n <h2 id=\"spinner-message\">Getting users and photos...</h2>\n </div>\n\n <ng-container *ngIf=\"dataSource && photos\">\n <form [formGroup]=\"filterForm\">\n <mat-form-field *ngIf=\"dataSource\">\n <input matInput placeholder=\"Search\" formControlName=\"filter\" #filterInput>\n\n <button *ngIf=\"filterForm.value.filter\" matSuffix mat-icon-button aria-label=\"Clear\" (click)=\"filterForm.get('filter')?.setValue('')\">\n <mat-icon fontIcon=\"close\"></mat-icon>\n </button>\n </mat-form-field>\n </form>\n\n <mat-selection-list [multiple]=\"isMultiMode\"\n (selectionChange)=\"listSelectionChanged($event.options)\">\n\n <mat-list-option *ngFor=\"let user of dataSource?.filteredData\" [value]=\"user\" [selected]=\"user.selected\"\n (selectedChange)=\"optionSelectionChanged(option)\" #option>\n\n <img *ngIf=\"getPhoto(user)\" matListAvatar alt=\"\" [src]=\"getPhoto(user)\">\n\n <mat-icon *ngIf=\"!getPhoto(user)\" matListAvatar class=\"no-photo\"\n fontIcon=\"account_circle\">\n </mat-icon>\n \n <div class=\"user\">\n <div [matTooltip]=\"tooltip(user)\" class=\"user-name\">\n {{ user.displayName }}\n <div *ngIf=\"data.showPhone && user.telephoneNumber\">{{ user.telephoneNumber }}</div>\n </div>\n \n <div>{{ user.department }}</div>\n \n <div class=\"title\">{{ user.title }}</div>\n </div>\n </mat-list-option>\n </mat-selection-list>\n </ng-container>\n</mat-dialog-content>\n\n<mat-dialog-actions>\n <ng-container *ngIf=\"dataSource && photos\">\n <mat-slide-toggle *ngIf=\"selectedOptions.length\" (change)=\"hideUnselectedChanged($event.checked)\">\n Hide Unselected\n </mat-slide-toggle>\n\n <button mat-raised-button color=\"primary\" (click)=\"selectAll()\"\n *ngIf=\"isMultiMode\">\n <mat-icon fontIcon=\"select_all\"></mat-icon>\n <span class=\"hide-mobile\">Select All</span>\n </button>\n \n <button mat-raised-button color=\"primary\" (click)=\"deselectAll()\"\n *ngIf=\"isMultiMode && selectedOptions.length\">\n <mat-icon fontIcon=\"clear_all\"></mat-icon>\n <span class=\"hide-mobile\">Clear All</span>\n </button>\n\n <button *ngIf=\"isMultiMode || !data.closeWhenSelectionMade\" mat-raised-button color=\"primary\" (click)=\"close()\" matTooltip=\"Accept your selection\"\n [disabled]=\"!selectedOptions.length\">\n <mat-icon fontIcon=\"check\"></mat-icon>\n <span class=\"hide-mobile\">Ok</span>\n </button>\n </ng-container>\n\n <button mat-raised-button color=\"warn\" mat-dialog-close matTooltip=\"Close this window\">\n <mat-icon fontIcon=\"close\"></mat-icon>\n <span class=\"hide-mobile\">Cancel</span>\n </button>\n</mat-dialog-actions>", styles: ["::ng-deep .mat-tooltip{font-size:1em!important;white-space:pre-line}mat-dialog-content{min-width:50vw}#dialog-title{display:flex;justify-content:space-between}.mat-spinner{margin:0 auto}#spinner-message{text-align:center;padding:.5em}mat-form-field{width:100%}.title{font-style:italic;color:#757575}img,.no-photo{width:2rem;height:2rem;font-size:2.3rem!important;border-radius:100%}.hide-mobile{display:none}mat-dialog-actions{display:grid;grid-auto-flow:column;grid-gap:1em;justify-content:center}.user-name{display:flex;justify-content:space-between}.user-name>div:last-child{margin-right:10rem;font-weight:400;font-style:italic;color:#757575}@media (min-width:801px){.user{display:grid;grid-template-columns:1fr 1fr 1fr}.user>div:first-child{font-weight:700}.hide-mobile{display:initial}}\n", ".material-icons{font-family:Material Icons;font-weight:400;font-style:normal;font-size:24px;display:inline-block;line-height:1;text-transform:none;letter-spacing:normal;word-wrap:normal;white-space:nowrap;direction:ltr;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale;font-feature-settings:\"liga\"}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i6.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "component", type: i7.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7.MatSuffix, selector: "[matSuffix]" }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i9.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: i10.MatListAvatarCssMatStyler, selector: "[mat-list-avatar], [matListAvatar]" }, { kind: "component", type: i10.MatSelectionList, selector: "mat-selection-list", inputs: ["disableRipple", "color", "compareWith", "disabled", "multiple"], outputs: ["selectionChange"], exportAs: ["matSelectionList"] }, { kind: "component", type: i10.MatListOption, selector: "mat-list-option", inputs: ["disableRipple", "checkboxPosition", "color", "value", "disabled", "selected"], outputs: ["selectedChange"], exportAs: ["matListOption"] }, { kind: "component", type: i11.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i12.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["disabled", "disableRipple", "color", "tabIndex"], exportAs: ["matSlideToggle"] }, { kind: "directive", type: i13.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }] });
361
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: UserChooserComponent, decorators: [{
362
362
  type: Component,
363
363
  args: [{ template: "<div id=\"dialog-title\">\n <h2 mat-dialog-title>{{ data.title }}</h2>\n\n <div>\n {{ selectedOptions.length }} selected\n </div>\n</div>\n\n<mat-dialog-content>\n <div *ngIf=\"!(dataSource && photos)\">\n <mat-spinner [diameter]=\"50\"></mat-spinner>\n <h2 id=\"spinner-message\">Getting users and photos...</h2>\n </div>\n\n <ng-container *ngIf=\"dataSource && photos\">\n <form [formGroup]=\"filterForm\">\n <mat-form-field *ngIf=\"dataSource\">\n <input matInput placeholder=\"Search\" formControlName=\"filter\" #filterInput>\n\n <button *ngIf=\"filterForm.value.filter\" matSuffix mat-icon-button aria-label=\"Clear\" (click)=\"filterForm.get('filter')?.setValue('')\">\n <mat-icon fontIcon=\"close\"></mat-icon>\n </button>\n </mat-form-field>\n </form>\n\n <mat-selection-list [multiple]=\"isMultiMode\"\n (selectionChange)=\"listSelectionChanged($event.options)\">\n\n <mat-list-option *ngFor=\"let user of dataSource?.filteredData\" [value]=\"user\" [selected]=\"user.selected\"\n (selectedChange)=\"optionSelectionChanged(option)\" #option>\n\n <img *ngIf=\"getPhoto(user)\" matListAvatar alt=\"\" [src]=\"getPhoto(user)\">\n\n <mat-icon *ngIf=\"!getPhoto(user)\" matListAvatar class=\"no-photo\"\n fontIcon=\"account_circle\">\n </mat-icon>\n \n <div class=\"user\">\n <div [matTooltip]=\"tooltip(user)\" class=\"user-name\">\n {{ user.displayName }}\n <div *ngIf=\"data.showPhone && user.telephoneNumber\">{{ user.telephoneNumber }}</div>\n </div>\n \n <div>{{ user.department }}</div>\n \n <div class=\"title\">{{ user.title }}</div>\n </div>\n </mat-list-option>\n </mat-selection-list>\n </ng-container>\n</mat-dialog-content>\n\n<mat-dialog-actions>\n <ng-container *ngIf=\"dataSource && photos\">\n <mat-slide-toggle *ngIf=\"selectedOptions.length\" (change)=\"hideUnselectedChanged($event.checked)\">\n Hide Unselected\n </mat-slide-toggle>\n\n <button mat-raised-button color=\"primary\" (click)=\"selectAll()\"\n *ngIf=\"isMultiMode\">\n <mat-icon fontIcon=\"select_all\"></mat-icon>\n <span class=\"hide-mobile\">Select All</span>\n </button>\n \n <button mat-raised-button color=\"primary\" (click)=\"deselectAll()\"\n *ngIf=\"isMultiMode && selectedOptions.length\">\n <mat-icon fontIcon=\"clear_all\"></mat-icon>\n <span class=\"hide-mobile\">Clear All</span>\n </button>\n\n <button *ngIf=\"isMultiMode || !data.closeWhenSelectionMade\" mat-raised-button color=\"primary\" (click)=\"close()\" matTooltip=\"Accept your selection\"\n [disabled]=\"!selectedOptions.length\">\n <mat-icon fontIcon=\"check\"></mat-icon>\n <span class=\"hide-mobile\">Ok</span>\n </button>\n </ng-container>\n\n <button mat-raised-button color=\"warn\" mat-dialog-close matTooltip=\"Close this window\">\n <mat-icon fontIcon=\"close\"></mat-icon>\n <span class=\"hide-mobile\">Cancel</span>\n </button>\n</mat-dialog-actions>", styles: ["::ng-deep .mat-tooltip{font-size:1em!important;white-space:pre-line}mat-dialog-content{min-width:50vw}#dialog-title{display:flex;justify-content:space-between}.mat-spinner{margin:0 auto}#spinner-message{text-align:center;padding:.5em}mat-form-field{width:100%}.title{font-style:italic;color:#757575}img,.no-photo{width:2rem;height:2rem;font-size:2.3rem!important;border-radius:100%}.hide-mobile{display:none}mat-dialog-actions{display:grid;grid-auto-flow:column;grid-gap:1em;justify-content:center}.user-name{display:flex;justify-content:space-between}.user-name>div:last-child{margin-right:10rem;font-weight:400;font-style:italic;color:#757575}@media (min-width:801px){.user{display:grid;grid-template-columns:1fr 1fr 1fr}.user>div:first-child{font-weight:700}.hide-mobile{display:initial}}\n", ".material-icons{font-family:Material Icons;font-weight:400;font-style:normal;font-size:24px;display:inline-block;line-height:1;text-transform:none;letter-spacing:normal;word-wrap:normal;white-space:nowrap;direction:ltr;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale;font-feature-settings:\"liga\"}\n"] }]
364
364
  }], ctorParameters: function () { return [{ type: i14.UserChooserData, decorators: [{
@@ -371,4 +371,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
371
371
  type: ViewChild,
372
372
  args: ['filterInput']
373
373
  }] } });
374
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1jaG9vc2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsZWF2ZWxhbmRwcmljZS9uZ3gtbGliL2FjdGl2ZS1kaXJlY3RvcnkvZ3VpL3NyYy9jb21wb25lbnRzL3VzZXItY2hvb3Nlci91c2VyLWNob29zZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xlYXZlbGFuZHByaWNlL25neC1saWIvYWN0aXZlLWRpcmVjdG9yeS9ndWkvc3JjL2NvbXBvbmVudHMvdXNlci1jaG9vc2VyL3VzZXItY2hvb3Nlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBVSxTQUFTLEVBQWdDLE1BQU0sZUFBZSxDQUFDO0FBQ25HLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEQsT0FBTyxFQUFnQixlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RSxPQUFPLEVBQWlCLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBTTlELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7QUFTbkQsTUFBTSxPQUFPLG9CQUFvQjtJQXdDL0IsWUFBWTtJQUVaLG1CQUFtQjtJQUNuQixZQUE0QyxJQUFxQixFQUM3QyxTQUE2QyxFQUM3QyxzQkFBOEMsRUFDOUMsaUJBQW9DO1FBSFosU0FBSSxHQUFKLElB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LEtBQUssQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUNuRyxDQUFDO0lBRUQsT0FBTyxDQUFDLElBQW9CO1FBQzFCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO1lBQzVDLElBQUksQ0FBQyxRQUFRO2lCQUNWLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUNiLElBQUksQ0FBQyxNQUFNO2dCQUNULEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQ2IsS0FBSyxDQUFDLGlCQUFpQixLQUFLLE9BQU8sQ0FDcEMsRUFBRSxJQUFJLENBQ1I7aUJBQ0EsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBRSxHQUFHLENBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztpQkFDaEMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDakIsRUFBRSxDQUFDO0lBQ1AsQ0FBQzs7aUhBeGFVLG9CQUFvQixrQkEyQ1gsZUFBZTtxR0EzQ3hCLG9CQUFvQixtR0FFcEIsZ0JBQWdCLDZJQ3ZCN0IsODRHQWlGcUI7MkZENURSLG9CQUFvQjtrQkFQaEMsU0FBUzs7OzBCQWtESyxNQUFNOzJCQUFDLGVBQWU7NElBekNOLGFBQWE7c0JBQXpDLFNBQVM7dUJBQUMsZ0JBQWdCO2dCQUNELFdBQVc7c0JBQXBDLFNBQVM7dUJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBPbkluaXQsIFZpZXdDaGlsZCwgQWZ0ZXJWaWV3Q2hlY2tlZCwgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdERpYWxvZ1JlZiwgTUFUX0RJQUxPR19EQVRBIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IE1hdExpc3RPcHRpb24sIE1hdFNlbGVjdGlvbkxpc3QgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9saXN0JztcbmltcG9ydCB7IE1hdFRhYmxlRGF0YVNvdXJjZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYmxlJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZm9ya0pvaW4sIE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEFjdGl2ZURpcmVjdG9yeVNlcnZpY2UsIEdyb3VwIH0gZnJvbSAnQGNsZWF2ZWxhbmRwcmljZS9uZ3gtbGliL2FjdGl2ZS1kaXJlY3RvcnknO1xuaW1wb3J0IHsgU2hhcmVQb2ludFNlcnZpY2UsIFBob3RvSXRlbSB9IGZyb20gJ0BjbGVhdmVsYW5kcHJpY2Uvbmd4LWxpYi9zaGFyZXBvaW50JztcblxuaW1wb3J0IHsgU2VsZWN0YWJsZVVzZXIgfSBmcm9tICcuLi8uLi9tb2RlbC9zZWxlY3RhYmxlLXVzZXInO1xuaW1wb3J0IHsgVXNlckNob29zZXJEYXRhIH0gZnJvbSAnLi4vLi4vbW9kZWwvdXNlci1jaG9vc2VyLWRhdGEnO1xuaW1wb3J0IHsgVXNlckNob29zZXJNb2RlIH0gZnJvbSAnLi4vLi4vcHVibGljX2FwaSc7XG5cbkBDb21wb25lbnQoe1xuICB0ZW1wbGF0ZVVybDogJy4vdXNlci1jaG9vc2VyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbXG4gICAgJy4vdXNlci1jaG9vc2VyLmNvbXBvbmVudC5jc3MnLFxuICAgICcuLi8uLi8uLi8uLi8uLi9zdHlsZXMvbWF0LWljb24uY3NzJ1xuICBdXG59KVxuZXhwb3J0IGNsYXNzIFVzZXJDaG9vc2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdDaGVja2VkIHtcbiAgLy8jcmVnaW9uIEZpZWxkc1xuICBAVmlld0NoaWxkKE1hdFNlbGVjdGlvbkxpc3QpIHNlbGVjdGlvbkxpc3Q6IE1hdFNlbGVjdGlvbkxpc3QgfCB1bmRlZmluZWQ7XG4gIEBWaWV3Q2hpbGQoJ2ZpbHRlcklucHV0JykgZmlsdGVySW5wdXQ6IEVsZW1lbnRSZWYgfCB1bmRlZmluZWQ7XG4gIGZpbHRlcklucHV0Rm9jdXNlZCA9IGZhbHNlO1xuXG4gIGZpbHRlckZvcm0gPSBuZXcgRm9ybUdyb3VwKHtcbiAgICBmaWx0ZXI6IG5ldyBGb3JtQ29udHJvbCgpXG4gIH0pO1xuXG4gIGRhdGFTb3VyY2U6IE1hdFRhYmxlRGF0YVNvdXJjZTxTZWxlY3RhYmxlVXNlcj4gfCB1bmRlZmluZWQ7XG4gIHBob3RvczogUGhvdG9JdGVtW10gfCB1bmRlZmluZWQ7XG4gIGdyb3VwczogR3JvdXBbXSB8IHVuZGVmaW5lZDsgLy8gTWF5IG9yIG1heSBub3QgZ2V0IHBvcHVsYXRlZCwgZGVwZW5kaW5nIG9uIGNvbmZpZyBkYXRhIHNlbnQgaW5cbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8jcmVnaW9uIFByb3BlcnRpZXNcbiAgZ2V0IGlzTXVsdGlNb2RlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmRhdGEubW9kZSA9PT0gVXNlckNob29zZXJNb2RlLk11bHRpcGxlO1xuICB9XG5cbiAgZ2V0IHNlbGVjdGVkT3B0aW9ucygpOiBNYXRMaXN0T3B0aW9uW10ge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdGlvbkxpc3Q/Lm9wdGlvbnMuZmlsdGVyKG8gPT4gby5zZWxlY3RlZCkgPz8gW107XG4gIH1cblxuICBnZXQgc2VsZWN0ZWRVc2VycygpOiBTZWxlY3RhYmxlVXNlcltdIHtcbiAgICByZXR1cm4gdGhpcy5kYXRhU291cmNlPy5kYXRhPy5maWx0ZXIoZCA9PiBkLnNlbGVjdGVkKSA/PyBbXTtcbiAgfVxuXG4gIGdldCBmaWx0ZXJWYWx1ZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmZpbHRlckZvcm0udmFsdWUuZmlsdGVyO1xuICB9XG5cbiAgZ2V0IGFkR3JvdXBzTmVlZGVkKCk6IGJvb2xlYW4ge1xuICAgIC8vIElmIGFueSBhcmUgdGhlc2UgYXJlIHRydWUsIHRoZW4gd2UgbmVlZCB0byBwdWxsIEFEIGdyb3VwcyBmb3IgdXNlIGxhdGVyXG4gICAgcmV0dXJuIHRoaXMuZGF0YS5zaG93R3JvdXBNZW1iZXJzaGlwVG9vbHRpcHMgfHxcbiAgICAgIHRoaXMuZGF0YS5leGNsdXNpb25zLmdyb3Vwcy5sZW5ndGggPiAwIHx8XG4gICAgICB0aGlzLmRhdGEuaW5jbHVzaW9ucy5ncm91cHMubGVuZ3RoID4gMCB8fFxuICAgICAgdGhpcy5kYXRhLnByZVNlbGVjdGlvbnMuZ3JvdXBzLmxlbmd0aCA+IDAgfHxcbiAgICAgIHRoaXMuZGF0YS5maWx0ZXJPcHRpb25zLmdyb3VwTWVtYmVyc2hpcDtcbiAgfVxuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gTGlmZWN5Y2xlXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgZGF0YTogVXNlckNob29zZXJEYXRhLFxuICAgICAgICAgICAgICBwcml2YXRlIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPFVzZXJDaG9vc2VyQ29tcG9uZW50PixcbiAgICAgICAgICAgICAgcHJpdmF0ZSBhY3RpdmVEaXJlY3RvcnlTZXJ2aWNlOiBBY3RpdmVEaXJlY3RvcnlTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIHNoYXJlUG9pbnRTZXJ2aWNlOiBTaGFyZVBvaW50U2VydmljZSkge1xuXG4gICAgICAgICAgICAgICAgdGhpcy5kYXRhID0ge1xuICAgICAgICAgICAgICAgICAgLi4ubmV3IFVzZXJDaG9vc2VyRGF0YSgpLFxuICAgICAgICAgICAgICAgICAgLi4uZGF0YVxuICAgICAgICAgICAgICAgIH1cbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZ2V0RGF0YSgpO1xuICAgIHRoaXMubGlzdGVuRm9yRmlsdGVyQ2hhbmdlcygpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdDaGVja2VkKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmZpbHRlcklucHV0Rm9jdXNlZCB8fCAhdGhpcy5maWx0ZXJJbnB1dCkge1xuICAgICAgLy8gQ29udHJvbCBub3QgcmVhZHkgeWV0LCBvciBpdCBoYXMgYWxyZWFkeSBiZWVuIGdpdmVuIGZvY3VzXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5maWx0ZXJJbnB1dEZvY3VzZWQgPSB0cnVlO1xuICAgIHRoaXMuZmlsdGVySW5wdXQ/Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgfVxuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gRXZlbnRzXG4gICBsaXN0U2VsZWN0aW9uQ2hhbmdlZChvcHRpb25zOiBNYXRMaXN0T3B0aW9uW10pOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kYXRhLm1vZGUgPT09IFVzZXJDaG9vc2VyTW9kZS5TaW5nbGUgJiZcbiAgICAgIHRoaXMuc2VsZWN0ZWRPcHRpb25zLmxlbmd0aCAmJlxuICAgICAgdGhpcy5kYXRhLmNsb3NlV2hlblNlbGVjdGlvbk1hZGVcbiAgICAgICkge1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgIH1cbiAgfVxuXG4gIG9wdGlvblNlbGVjdGlvbkNoYW5nZWQob3B0aW9uOiBNYXRMaXN0T3B0aW9uKTogdm9pZCB7XG4gICAgY29uc3QgdXNlciA9IHRoaXMuZGF0YVNvdXJjZT8uZGF0YVxuICAgICAgLmZpbmQodSA9PiB1LnNBTUFjY291bnROYW1lLnRvTG9jYWxlTG93ZXJDYXNlKCkgPT09IChvcHRpb24udmFsdWUgYXMgU2VsZWN0YWJsZVVzZXIpLnNBTUFjY291bnROYW1lLnRvTG93ZXJDYXNlKCkpO1xuXG4gICAgaWYgKHVzZXIpIHtcbiAgICAgIHVzZXIuc2VsZWN0ZWQgPSBvcHRpb24uc2VsZWN0ZWQ7XG4gICAgfVxuICB9XG5cbiAgaGlkZVVuc2VsZWN0ZWRDaGFuZ2VkKHNlbGVjdGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5maWx0ZXJGb3JtLmdldCgnZmlsdGVyJyk/LnNldFZhbHVlKHNlbGVjdGVkID8gJ3tzZWxlY3RlZDp0cnVlfScgOiBudWxsKTtcbiAgfVxuXG4gIHNlbGVjdEFsbCgpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGlvbkxpc3Q/LnNlbGVjdEFsbCgpO1xuXG4gICAgaWYgKHRoaXMuc2VsZWN0aW9uTGlzdD8ub3B0aW9ucykge1xuICAgICAgdGhpcy5saXN0U2VsZWN0aW9uQ2hhbmdlZCh0aGlzLnNlbGVjdGlvbkxpc3Q/Lm9wdGlvbnMudG9BcnJheSgpKTtcbiAgICB9XG4gIH1cblxuICBkZXNlbGVjdEFsbCgpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGlvbkxpc3Q/LmRlc2VsZWN0QWxsKCk7XG4gIH1cbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8jcmVnaW9uIFV0aWxpdGllc1xuICBwcml2YXRlIGdldERhdGEoKTogdm9pZCB7XG4gICAgY29uc3QgZGF0YU9ic2VydmFibGVzOiBPYnNlcnZhYmxlPGFueT5bXSA9IFtcbiAgICAgIHRoaXMuZGF0YS51c2VycyA/XG4gICAgICAgIC8vIFVzZXJzIHdlcmUgcGFzc2VkIGluXG4gICAgICAgIG9mKHRoaXMuZGF0YS51c2VycykgOlxuICAgICAgICAvLyBVc2VycyBuZWVkIHRvIGJlIHJldHJpZXZlZFxuICAgICAgICB0aGlzLmFjdGl2ZURpcmVjdG9yeVNlcnZpY2UuZ2V0VXNlcnMoZmFsc2UsIHRoaXMuZGF0YS5pbmNsdWRlRGlzYWJsZWRVc2VycywgdGhpcy5kYXRhLnBhcmVudE91KSxcblxuICAgICAgdGhpcy5kYXRhLnBob3RvcyA/XG4gICAgICAgIC8vIFBob3RvcyB3ZXJlIHBhc3NlZCBpblxuICAgICAgICBvZih0aGlzLmRhdGEucGhvdG9zKSA6XG4gICAgICAgIC8vIFBob3RvcyBuZWVkIHRvIGJlIHJldHJpZXZlZFxuICAgICAgICB0aGlzLnNoYXJlUG9pbnRTZXJ2aWNlLmdldFBob3RvcygpXG4gICAgXTtcblxuICAgIC8vIERvIHdlIG5lZWQgQUQgZ3JvdXBzP1xuICAgIGlmICh0aGlzLmFkR3JvdXBzTmVlZGVkKSB7XG4gICAgICB0aGlzLmRhdGEuZ3JvdXBzID9cbiAgICAgICAgLy8gR3JvdXBzIHdlcmUgcGFzc2VkIGluXG4gICAgICAgIG9mKHRoaXMuZGF0YS5ncm91cHMpIDpcbiAgICAgICAgLy8gR3JvdXBzIG5lZWQgdG8gYmUgcmV0cmlldmVkXG4gICAgICAgIGRhdGFPYnNlcnZhYmxlcy5wdXNoKHRoaXMuYWN0aXZlRGlyZWN0b3J5U2VydmljZS5nZXRHcm91cHMoKSk7XG4gICAgfVxuXG5cbiAgICBmb3JrSm9pbihkYXRhT2JzZXJ2YWJsZXMpXG4gICAgICAvLy5zdWJzY3JpYmUoKFt1c2VycywgcGhvdG9zXSkgPT4ge1xuICAgICAgLnN1YnNjcmliZShkYXRhID0+IHtcbiAgICAgICAgLy8gTmVlZCBncm91cHMgaW4gcGxhY2UgYmVmb3JlIHdlIGhhbmRsZSBleGNsdXNpb25zL2luY2x1c2lvbnMvcHJlLXNlbGVjdGlvbnNcbiAgICAgICAgdGhpcy5ncm91cHMgPSB0aGlzLmFkR3JvdXBzTmVlZGVkID8gZGF0YVsyXSA6IG51bGw7XG5cbiAgICAgICAgbGV0IHVzZXJzID0gZGF0YVswXSBhcyBTZWxlY3RhYmxlVXNlcltdO1xuICAgICAgICB1c2Vycy5mb3JFYWNoKHUgPT4gdS5zZWxlY3RlZCA9IGZhbHNlKTsgLy8gSW4gY2FzZSBleGlzdGluZyBkYXRhIHdhcyByZS11c2VkXG4gICAgICAgIHVzZXJzID0gdGhpcy5pbmNsdWRlVXNlcnNCeUFjY291bnROYW1lKHVzZXJzKTtcbiAgICAgICAgdXNlcnMgPSB0aGlzLmluY2x1ZGVVc2Vyc0J5R3JvdXBOYW1lKHVzZXJzKTtcbiAgICAgICAgdXNlcnMgPSB0aGlzLmluY2x1ZGVVc2Vyc0J5RGVwYXJ0bWVudCh1c2Vycyk7XG4gICAgICAgIHVzZXJzID0gdGhpcy5pbmNsdWRlVXNlcnNCeVRpdGxlKHVzZXJzKTtcblxuICAgICAgICB1c2VycyA9IHRoaXMuZXhjbHVkZVVzZXJzQnlBY2NvdW50TmFtZSh1c2Vycyk7XG4gICAgICAgIHVzZXJzID0gdGhpcy5leGNsdWRlVXNlcnNCeUdyb3VwTmFtZSh1c2Vycyk7XG4gICAgICAgIHVzZXJzID0gdGhpcy5leGNsdWRlVXNlcnNCeURlcGFydG1lbnQodXNlcnMpO1xuICAgICAgICB1c2VycyA9IHRoaXMuZXhjbHVkZVVzZXJzQnlUaXRsZSh1c2Vycyk7XG5cbiAgICAgICAgdXNlcnMgPSB0aGlzLnByZVNlbGVjdFVzZXJzQnlBY2NvdW50TmFtZSh1c2Vycyk7XG4gICAgICAgIHVzZXJzID0gdGhpcy5wcmVTZWxlY3RVc2Vyc0J5R3JvdXBOYW1lKHVzZXJzKTtcbiAgICAgICAgdXNlcnMgPSB0aGlzLnByZVNlbGVjdFVzZXJzQnlEZXBhcnRtZW50KHVzZXJzKTtcbiAgICAgICAgdXNlcnMgPSB0aGlzLnByZVNlbGVjdFVzZXJzQnlUaXRsZSh1c2Vycyk7XG5cbiAgICAgICAgdGhpcy5kYXRhU291cmNlID0gbmV3IE1hdFRhYmxlRGF0YVNvdXJjZSh1c2Vycyk7XG4gICAgICBcbiAgICAgICAgdGhpcy5waG90b3MgPSBkYXRhWzFdO1xuXG4gICAgICAgIHRoaXMuc2V0RmlsdGVyUHJlZGljYXRlKCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIGNsb3NlKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5zZWxlY3RlZFVzZXJzKSB7XG4gICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMuc2VsZWN0ZWRVc2Vyc1xuICAgICAgLm1hcCh1ID0+IHRoaXMuZGF0YS5yZXR1cm5Vc2VyT2JqZWN0cyA/IHUgOiB1LnNBTUFjY291bnROYW1lKTtcblxuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHRoaXMuZGF0YS5tb2RlID09PSBVc2VyQ2hvb3Nlck1vZGUuTXVsdGlwbGUgP1xuICAgICAgdmFsdWUgOlxuICAgICAgdmFsdWVbMF1cbiAgICApO1xuICB9XG5cbiAgZ2V0UGhvdG8odXNlcjogU2VsZWN0YWJsZVVzZXIpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLnBob3Rvcz8uZmluZChwID0+XG4gICAgICAocC5lbXBsb3llZU51bWJlciAmJiBwLmVtcGxveWVlTnVtYmVyLnRvU3RyaW5nKCkgPT09IHVzZXIuZW1wbG95ZWVOdW1iZXIpIHx8XG4gICAgICBwLmFjY291bnROYW1lPy50b0xvd2VyQ2FzZSgpID09PSB1c2VyLnNBTUFjY291bnROYW1lLnRvTG93ZXJDYXNlKCkgfHxcbiAgICAgIHAuZGlzcGxheU5hbWU/LnRvTG93ZXJDYXNlKCkgPT09IHVzZXIuZGlzcGxheU5hbWUudG9Mb3dlckNhc2UoKSB8fFxuICAgICAgcC50aXRsZT8udG9Mb3dlckNhc2UoKSA9PT0gdXNlci5kaXNwbGF5TmFtZS50b0xvd2VyQ2FzZSgpXG4gICAgKT8uZW5jb2RlZEFic1VybDtcbiAgfVxuXG4gIC8vI3JlZ2lvbiBFeGNsdXNpb25zIC0gd29uJ3QgYmUgaW5jbHVkZWQgaW4gdGhlIGRhdGFTb3VyY2UgYXQgYWxsXG4gIHByaXZhdGUgZXhjbHVkZVVzZXJzQnlBY2NvdW50TmFtZSh1c2VyczogU2VsZWN0YWJsZVVzZXJbXSk6IFNlbGVjdGFibGVVc2VyW10ge1xuICAgIHRoaXMuZGF0YS5leGNsdXNpb25zLmFjY291bnROYW1lc1xuICAgICAgLmZvckVhY2goYWNjb3VudE5hbWUgPT4ge1xuICAgICAgICBjb25zdCBpbmRleCA9IHVzZXJzLmZpbmRJbmRleCh1ID0+IHUuc0FNQWNjb3VudE5hbWUudG9Mb3dlckNhc2UoKSA9PT0gYWNjb3VudE5hbWUudG9Mb3dlckNhc2UoKSk7XG4gICAgICAgIGlmIChpbmRleCA9PT0gLTEpIHsgcmV0dXJuOyB9XG5cbiAgICAgICAgdXNlcnMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgIH0pO1xuXG4gICAgcmV0dXJuIHVzZXJzO1xuICB9XG5cbiAgcHJpdmF0ZSBleGNsdWRlVXNlcnNCeUdyb3VwTmFtZSh1c2VyczogU2VsZWN0YWJsZVVzZXJbXSk6IFNlbGVjdGFibGVVc2VyW10ge1xuICAgIHRoaXMuZGF0YS5leGNsdXNpb25zLmdyb3Vwc1xuICAgICAgLmZvckVhY2goZ3JvdXBOYW1lID0+IHtcbiAgICAgICAgY29uc3QgZ3JvdXAgPSB0aGlzLmdyb3Vwcz8uZmluZChnID0+IGcubmFtZS50b0xvd2VyQ2FzZSgpID09PSBncm91cE5hbWUudG9Mb3dlckNhc2UoKSk7XG4gICAgICAgIGlmICghZ3JvdXApIHsgcmV0dXJuOyB9XG4gICAgICAgIFxuICAgICAgICBncm91cC5tZW1iZXIuZm9yRWFjaChncm91cE1lbWJlckRuID0+IHtcbiAgICAgICAgICBjb25zdCBpbmRleCA9IHVzZXJzLmZpbmRJbmRleCh1ID0+IHUuZGlzdGluZ3Vpc2hlZE5hbWUgPT09IGdyb3VwTWVtYmVyRG4pO1xuICAgICAgICAgIGlmIChpbmRleCA9PT0gLTEpIHsgcmV0dXJuOyB9XG5cbiAgICAgICAgICB1c2Vycy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuXG4gICAgcmV0dXJuIHVzZXJzO1xuICB9XG5cbiAgcHJpdmF0ZSBleGNsdWRlVXNlcnNCeURlcGFydG1lbnQodXNlcnM6IFNlbGVjdGFibGVVc2VyW10pOiBTZWxlY3RhYmxlVXNlcltdIHtcbiAgICB0aGlzLmRhdGEuZXhjbHVzaW9ucy5kZXBhcnRtZW50c1xuICAgICAgLmZvckVhY2goZGVwYXJ0bWVudCA9PiB7XG4gICAgICAgIGNvbnN0IGV4Y2x1ZGVkVXNlcnMgPSB1c2Vycy5maWx0ZXIodSA9PiB1LmRlcGFydG1lbnQ/LnRvTG93ZXJDYXNlKCkgPT09IGRlcGFydG1lbnQudG9Mb3dlckNhc2UoKSk7XG5cbiAgICAgICAgZXhjbHVkZWRVc2Vycy5mb3JFYWNoKHVzZXIgPT4ge1xuICAgICAgICAgIGNvbnN0IGluZGV4ID0gdXNlcnMuaW5kZXhPZih1c2VyKTtcbiAgICAgICAgICB1c2Vycy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuXG4gICAgcmV0dXJuIHVzZXJzO1xuICB9XG5cbiAgcHJpdmF0ZSBleGNsdWRlVXNlcnNCeVRpdGxlKHVzZXJzOiBTZWxlY3RhYmxlVXNlcltdKTogU2VsZWN0YWJsZVVzZXJbXSB7XG4gICAgdGhpcy5kYXRhLmV4Y2x1c2lvbnMudGl0bGVzXG4gICAgICAuZm9yRWFjaCh0aXRsZSA9PiB7XG4gICAgICAgIGNvbnN0IGV4Y2x1ZGVkVXNlcnMgPSB1c2Vycy5maWx0ZXIodSA9PiB1LnRpdGxlPy50b0xvd2VyQ2FzZSgpID09PSB0aXRsZS50b0xvd2VyQ2FzZSgpKTtcbiAgICAgICAgXG4gICAgICAgIGV4Y2x1ZGVkVXNlcnMuZm9yRWFjaCh1c2VyID0+IHtcbiAgICAgICAgICBjb25zdCBpbmRleCA9IHVzZXJzLmluZGV4T2YodXNlcik7XG4gICAgICAgICAgdXNlcnMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcblxuICAgIHJldHVybiB1c2VycztcbiAgfVxuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gSW5jbHVzaW9ucyAtIG9ubHkgdGhlc2Ugd2lsbCBiZSBpbmNsdWRlZCBpbiB0aGUgZGF0YVNvdXJjZVxuICBwcml2YXRlIGluY2x1ZGVVc2Vyc0J5QWNjb3VudE5hbWUodXNlcnM6IFNlbGVjdGFibGVVc2VyW10pOiBTZWxlY3RhYmxlVXNlcltdIHtcbiAgICByZXR1cm4gdXNlcnMuZmlsdGVyKHVzZXIgPT5cbiAgICAgIHRoaXMuZGF0YS5pbmNsdXNpb25zLmFjY291bnROYW1lcy5sZW5ndGggPT09IDAgfHwgLy8gTm8gYWNjb3VudCBpbmNsdXNpb25zIHNwZWNpZmllZFxuXG4gICAgICB0aGlzLmRhdGEuaW5jbHVzaW9ucy5hY2NvdW50TmFtZXMuZmluZChhY2NvdW50TmFtZSA9PlxuICAgICAgICBhY2NvdW50TmFtZS50b0xvd2VyQ2FzZSgpID09PSB1c2VyLnNBTUFjY291bnROYW1lLnRvTG93ZXJDYXNlKClcbiAgICAgICkpO1xuICB9XG5cbiAgcHJpdmF0ZSBpbmNsdWRlVXNlcnNCeURlcGFydG1lbnQodXNlcnM6IFNlbGVjdGFibGVVc2VyW10pOiBTZWxlY3RhYmxlVXNlcltdIHtcbiAgICByZXR1cm4gdXNlcnMuZmlsdGVyKHVzZXIgPT5cbiAgICAgIHRoaXMuZGF0YS5pbmNsdXNpb25zLmRlcGFydG1lbnRzLmxlbmd0aCA9PT0gMCB8fCAvLyBObyBkZXBhcnRtZW50IGluY2x1c2lvbnMgc3BlY2lmaWVkXG5cbiAgICAgIHRoaXMuZGF0YS5pbmNsdXNpb25zLmRlcGFydG1lbnRzLmZpbmQoZGVwYXJ0bWVudCA9PlxuICAgICAgICBkZXBhcnRtZW50LnRvTG93ZXJDYXNlKCkgPT09IHVzZXIuZGVwYXJ0bWVudD8udG9Mb3dlckNhc2UoKVxuICAgICAgKSk7XG4gIH1cblxuICBwcml2YXRlIGluY2x1ZGVVc2Vyc0J5VGl0bGUodXNlcnM6IFNlbGVjdGFibGVVc2VyW10pOiBTZWxlY3RhYmxlVXNlcltdIHtcbiAgICByZXR1cm4gdXNlcnMuZmlsdGVyKHVzZXIgPT5cbiAgICAgIHRoaXMuZGF0YS5pbmNsdXNpb25zLnRpdGxlcy5sZW5ndGggPT09IDAgfHwgLy8gTm8gdGl0bGUgaW5jbHVzaW9ucyBzcGVjaWZpZWRcblxuICAgICAgdGhpcy5kYXRhLmluY2x1c2lvbnMudGl0bGVzLmZpbmQodGl0bGUgPT5cbiAgICAgICAgdGl0bGUudG9Mb3dlckNhc2UoKSA9PT0gdXNlci50aXRsZT8udG9Mb3dlckNhc2UoKVxuICAgICAgKSk7XG4gIH1cblxuICBwcml2YXRlIGluY2x1ZGVVc2Vyc0J5R3JvdXBOYW1lKHVzZXJzOiBTZWxlY3RhYmxlVXNlcltdKTogU2VsZWN0YWJsZVVzZXJbXSB7XG4gICAgaWYgKCF0aGlzLmRhdGEuaW5jbHVzaW9ucy5ncm91cHMubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gdXNlcnM7IC8vIE5vIGdyb3VwIGluY2x1c2lvbnMgc3BlY2lmaWVkXG4gICAgfVxuXG4gICAgLy8gQ2hlYXRpbmcgYSBiaXQgYW5kIGxldmVyYWdpbmcgdGhlICdzZWxlY3RlZCcgcHJvcGVydHkgdG8ga2VlcCB0cmFjayBvZiB3aG8gc2hvdWxkIGJlIGluY2x1ZGVkXG4gICAgLy8gU2luY2UgaW5jbHVzaW9ucyBoYXBwZW4gYmVmb3IgcHJlLXNlbGVjdGlvbnMsIHdlIGNhbiBkbyB0aGF0LCBhcyBsb25nIGFzIHdlIHNldCAnc2VsZWN0ZWQnIGJhY2sgdG8gZmFsc2Ugd2hlbiB3ZSdyZSBkb25lXG4gICAgdGhpcy5kYXRhLmluY2x1c2lvbnMuZ3JvdXBzXG4gICAgICAuZm9yRWFjaChncm91cE5hbWUgPT4ge1xuICAgICAgICBjb25zdCBncm91cCA9IHRoaXMuZ3JvdXBzPy5maW5kKGcgPT4gZy5uYW1lLnRvTG93ZXJDYXNlKCkgPT09IGdyb3VwTmFtZS50b0xvd2VyQ2FzZSgpKTtcbiAgICAgICAgaWYgKCFncm91cCkgeyByZXR1cm47IH1cblxuICAgICAgICB1c2Vyc1xuICAgICAgICAgIC5maWx0ZXIodXNlciA9PlxuICAgICAgICAgICAgICBncm91cC5tZW1iZXIuZmluZChncm91cE1lbWJlckRuID0+IGdyb3VwTWVtYmVyRG4gPT09IHVzZXIuZGlzdGluZ3Vpc2hlZE5hbWUpXG4gICAgICAgICAgKVxuICAgICAgICAgIC5mb3JFYWNoKHVzZXIgPT4gdXNlci5zZWxlY3RlZCA9IHRydWUpO1xuICAgICAgfSk7XG4gICAgICBcbiAgICAvLyBBdCB0aGlzIHBvaW50LCBhbGwgb2YgdGhlIGFwcHJvcHJpYXRlIHVzZXJzIHNob3VsZCBoYXZlICdzZWxlY3RlZCcgc2V0IHRvIHRydWVcbiAgICBjb25zdCBzZWxlY3RlZFVzZXJzID0gdXNlcnMuZmlsdGVyKHVzZXIgPT4gdXNlci5zZWxlY3RlZCk7IC8vIFN1YnNldCBvZiB0aGUgb3JpZ2luYWwgbGlzdFxuICAgIC8vIFJlc2V0ICdzZWxlY3RlZCcgdG8gZmFsc2UsIGFuZCByZXR1cm5cbiAgICBzZWxlY3RlZFVzZXJzLmZvckVhY2godXNlciA9PiB1c2VyLnNlbGVjdGVkID0gZmFsc2UpO1xuICAgIHJldHVybiBzZWxlY3RlZFVzZXJzO1xuICB9XG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiAgUHJlLVNlbGVjdGlvbnNcbiAgcHJpdmF0ZSBwcmVTZWxlY3RVc2Vyc0J5QWNjb3VudE5hbWUodXNlcnM6IFNlbGVjdGFibGVVc2VyW10pOiBTZWxlY3RhYmxlVXNlcltdIHtcbiAgICB0aGlzLmRhdGEucHJlU2VsZWN0aW9ucy5hY2NvdW50TmFtZXNcbiAgICAgIC5mb3JFYWNoKGFjY291bnROYW1lID0+IHtcbiAgICAgICAgY29uc3QgdXNlciA9IHVzZXJzLmZpbmQodSA9PiB1LnNBTUFjY291bnROYW1lLnRvTG93ZXJDYXNlKCkgPT09IGFjY291bnROYW1lLnRvTG93ZXJDYXNlKCkpO1xuICAgICAgICBpZiAoIXVzZXIpIHsgcmV0dXJuOyB9XG5cbiAgICAgICAgdXNlci5zZWxlY3RlZCA9IHRydWU7XG4gICAgICB9KTtcblxuICAgIHJldHVybiB1c2VycztcbiAgfVxuXG4gIHByaXZhdGUgcHJlU2VsZWN0VXNlcnNCeURlcGFydG1lbnQodXNlcnM6IFNlbGVjdGFibGVVc2VyW10pOiBTZWxlY3RhYmxlVXNlcltdIHtcbiAgICB0aGlzLmRhdGEucHJlU2VsZWN0aW9ucy5kZXBhcnRtZW50c1xuICAgICAgLmZvckVhY2goZGVwYXJ0bWVudCA9PlxuICAgICAgICB1c2Vyc1xuICAgICAgICAgIC5maWx0ZXIodSA9PiB1LmRlcGFydG1lbnQ/LnRvTG93ZXJDYXNlKCkgPT09IGRlcGFydG1lbnQudG9Mb3dlckNhc2UoKSlcbiAgICAgICAgICAuZm9yRWFjaCh1c2VyID0+IHVzZXIuc2VsZWN0ZWQgPSB0cnVlKVxuICAgICAgKTtcblxuICAgIHJldHVybiB1c2VycztcbiAgfVxuXG4gIHByaXZhdGUgcHJlU2VsZWN0VXNlcnNCeVRpdGxlKHVzZXJzOiBTZWxlY3RhYmxlVXNlcltdKTogU2VsZWN0YWJsZVVzZXJbXSB7XG4gICAgdGhpcy5kYXRhLnByZVNlbGVjdGlvbnMudGl0bGVzXG4gICAgICAuZm9yRWFjaCh0aXRsZSA9PlxuICAgICAgICB1c2Vyc1xuICAgICAgICAgIC5maWx0ZXIodSA9PiB1LnRpdGxlPy50b0xvd2VyQ2FzZSgpID09PSB0aXRsZS50b0xvd2VyQ2FzZSgpKVxuICAgICAgICAgIC5mb3JFYWNoKHVzZXIgPT4gdXNlci5zZWxlY3RlZCA9IHRydWUpXG4gICAgICApO1xuXG4gICAgcmV0dXJuIHVzZXJzO1xuICB9XG5cbiAgcHJpdmF0ZSBwcmVTZWxlY3RVc2Vyc0J5R3JvdXBOYW1lKHVzZXJzOiBTZWxlY3RhYmxlVXNlcltdKTogU2VsZWN0YWJsZVVzZXJbXSB7XG4gICAgdGhpcy5kYXRhLnByZVNlbGVjdGlvbnMuZ3JvdXBzXG4gICAgICAuZm9yRWFjaChncm91cE5hbWUgPT4ge1xuICAgICAgICBjb25zdCBncm91cCA9IHRoaXMuZ3JvdXBzPy5maW5kKGcgPT4gZy5uYW1lLnRvTG93ZXJDYXNlKCkgPT09IGdyb3VwTmFtZS50b0xvd2VyQ2FzZSgpKTtcbiAgICAgICAgaWYgKCFncm91cCkgeyByZXR1cm47IH1cblxuICAgICAgICBncm91cC5tZW1iZXIuZm9yRWFjaChncm91cE1lbWJlckRuID0+IHtcbiAgICAgICAgICBjb25zdCB1c2VyID0gdXNlcnMuZmluZCh1ID0+IHUuZGlzdGluZ3Vpc2hlZE5hbWUgPT09IGdyb3VwTWVtYmVyRG4pO1xuICAgICAgICAgIGlmICghdXNlcikgeyByZXR1cm47IH1cblxuICAgICAgICAgIHVzZXIuc2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuXG4gICAgcmV0dXJuIHVzZXJzO1xuICB9XG4gIC8vI2VuZHJlZ2lvblxuICBcbiAgcHJpdmF0ZSBzZXRGaWx0ZXJQcmVkaWNhdGUoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmRhdGFTb3VyY2UpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmRhdGFTb3VyY2UuZmlsdGVyUHJlZGljYXRlID0gKHVzZXI6IFNlbGVjdGFibGVVc2VyLCBmaWx0ZXI6IHN0cmluZykgPT4ge1xuICAgICAgaWYgKGZpbHRlciA9PT0gJ3tzZWxlY3RlZDp0cnVlfScpIHtcbiAgICAgICAgcmV0dXJuIHVzZXIuc2VsZWN0ZWQ7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCByZWdleCA9IG5ldyBSZWdFeHAoZmlsdGVyLCAnaScpOyAvLyBDYXNlLWluc2Vuc2l0aXZlXG4gICAgICAgIGxldCBtYXRjaCA9IGZhbHNlOyAvLyBUaGUgZW5kIHJlc3VsdCAtIHdoZXRoZXIgb3Igbm90IGEgZW1wbG95ZWUgbWF0Y2hlcyB0aGUgZmlsdGVyXG5cbiAgICAgICAgY29uc3QgZmlsdGVyUHJvcGVydGllcyA9IFsgJ2Rpc3BsYXlOYW1lJyBdO1xuICAgICAgICBpZiAodGhpcy5kYXRhLmZpbHRlck9wdGlvbnMuYWNjb3VudE5hbWUpIHtcbiAgICAgICAgICBmaWx0ZXJQcm9wZXJ0aWVzLnB1c2goJ3NBTUFjY291bnROYW1lJylcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5kYXRhLmZpbHRlck9wdGlvbnMudGl0bGUpIHtcbiAgICAgICAgICBmaWx0ZXJQcm9wZXJ0aWVzLnB1c2goJ3RpdGxlJyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuZGF0YS5maWx0ZXJPcHRpb25zLmRlcGFydG1lbnQpIHtcbiAgICAgICAgICBmaWx0ZXJQcm9wZXJ0aWVzLnB1c2goJ2RlcGFydG1lbnQnKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5kYXRhLmZpbHRlck9wdGlvbnMucGhvbmVOdW1iZXIpIHtcbiAgICAgICAgICBmaWx0ZXJQcm9wZXJ0aWVzLnB1c2goJ3RlbGVwaG9uZU51bWJlcicpO1xuICAgICAgICB9XG4gIFxuICAgICAgICAvLyBNYXRjaCBvbiB0aGUgcHJvcGVydGllcyBjb25maWd1cmVkIGFib3ZlXG4gICAgICAgIGZpbHRlclByb3BlcnRpZXNcbiAgICAgICAgICAuZm9yRWFjaChmaWVsZCA9PiB7XG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICBpZiAodXNlcltmaWVsZF0gJiYgdXNlcltmaWVsZF0ubWF0Y2gocmVnZXgpKSB7XG4gICAgICAgICAgICAgIG1hdGNoID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgXG4gICAgICAgIC8vIE1hdGNoIG9uIGdyb3VwIG1lbWJlcnNoaXAgKGdyb3VwIG5hbWUpXG4gICAgICAgIGlmICh0aGlzLmRhdGEuZmlsdGVyT3B0aW9ucy5ncm91cE1lbWJlcnNoaXApIHtcbiAgICAgICAgICB1c2VyLm1lbWJlck9mLmZvckVhY2goZ3JvdXBEbiA9PiB7XG4gICAgICAgICAgICBjb25zdCBncm91cCA9IHRoaXMuZ3JvdXBzPy5maW5kKGdyb3VwID0+IGdyb3VwLmRpc3Rpbmd1aXNoZWROYW1lID09PSBncm91cERuICYmIGdyb3VwLm5hbWUubWF0Y2gocmVnZXgpKTtcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgaWYgKGdyb3VwKSB7XG4gICAgICAgICAgICAgIG1hdGNoID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBtYXRjaDtcbiAgICAgIH1cbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBsaXN0ZW5Gb3JGaWx0ZXJDaGFuZ2VzKCk6IHZvaWQge1xuICAgIHRoaXMuZmlsdGVyRm9ybS5nZXQoJ2ZpbHRlcicpPy52YWx1ZUNoYW5nZXNcbiAgICAgIC5waXBlKFxuICAgICAgICBkZWJvdW5jZVRpbWUoMjUwKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLmRhdGFTb3VyY2UhLmZpbHRlciA9IHRoaXMuZmlsdGVyRm9ybS52YWx1ZS5maWx0ZXI/LnRyaW0oKS50b0xvd2VyQ2FzZSgpKTtcbiAgfVxuXG4gIHRvb2x0aXAodXNlcjogU2VsZWN0YWJsZVVzZXIpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmRhdGEuc2hvd0dyb3VwTWVtYmVyc2hpcFRvb2x0aXBzID9cbiAgICAgIHVzZXIubWVtYmVyT2ZcbiAgICAgICAgLm1hcChncm91cERuID0+XG4gICAgICAgICAgdGhpcy5ncm91cHNcbiAgICAgICAgICAgID8uZmluZChncm91cCA9PlxuICAgICAgICAgICAgICBncm91cC5kaXN0aW5ndWlzaGVkTmFtZSA9PT0gZ3JvdXBEblxuICAgICAgICAgICAgKT8ubmFtZVxuICAgICAgICAgIClcbiAgICAgICAgICAuc29ydCgoYSwgYikgPT4gYSEgPiBiISA/IDEgOiAtMSlcbiAgICAgICAgICAuam9pbignXFxuJykgOlxuICAgICAgJyc7XG4gIH1cbiAgLy8jZW5kcmVnaW9uXG59XG4iLCI8ZGl2IGlkPVwiZGlhbG9nLXRpdGxlXCI+XG4gICAgPGgyIG1hdC1kaWFsb2ctdGl0bGU+e3sgZGF0YS50aXRsZSB9fTwvaDI+XG5cbiAgICA8ZGl2PlxuICAgICAgICB7eyBzZWxlY3RlZE9wdGlvbnMubGVuZ3RoIH19IHNlbGVjdGVkXG4gICAgPC9kaXY+XG48L2Rpdj5cblxuPG1hdC1kaWFsb2ctY29udGVudD5cbiAgICA8ZGl2ICpuZ0lmPVwiIShkYXRhU291cmNlICYmIHBob3RvcylcIj5cbiAgICAgICAgPG1hdC1zcGlubmVyIFtkaWFtZXRlcl09XCI1MFwiPjwvbWF0LXNwaW5uZXI+XG4gICAgICAgIDxoMiBpZD1cInNwaW5uZXItbWVzc2FnZVwiPkdldHRpbmcgdXNlcnMgYW5kIHBob3Rvcy4uLjwvaDI+XG4gICAgPC9kaXY+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZGF0YVNvdXJjZSAmJiBwaG90b3NcIj5cbiAgICAgICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJmaWx0ZXJGb3JtXCI+XG4gICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgKm5nSWY9XCJkYXRhU291cmNlXCI+XG4gICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IHBsYWNlaG9sZGVyPVwiU2VhcmNoXCIgZm9ybUNvbnRyb2xOYW1lPVwiZmlsdGVyXCIgI2ZpbHRlcklucHV0PlxuXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cImZpbHRlckZvcm0udmFsdWUuZmlsdGVyXCIgbWF0U3VmZml4IG1hdC1pY29uLWJ1dHRvbiBhcmlhLWxhYmVsPVwiQ2xlYXJcIiAoY2xpY2spPVwiZmlsdGVyRm9ybS5nZXQoJ2ZpbHRlcicpPy5zZXRWYWx1ZSgnJylcIj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIGZvbnRJY29uPVwiY2xvc2VcIj48L21hdC1pY29uPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgPC9mb3JtPlxuXG4gICAgICAgIDxtYXQtc2VsZWN0aW9uLWxpc3QgW211bHRpcGxlXT1cImlzTXVsdGlNb2RlXCJcbiAgICAgICAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwibGlzdFNlbGVjdGlvbkNoYW5nZWQoJGV2ZW50Lm9wdGlvbnMpXCI+XG5cbiAgICAgICAgICAgIDxtYXQtbGlzdC1vcHRpb24gKm5nRm9yPVwibGV0IHVzZXIgb2YgZGF0YVNvdXJjZT8uZmlsdGVyZWREYXRhXCIgW3ZhbHVlXT1cInVzZXJcIiBbc2VsZWN0ZWRdPVwidXNlci5zZWxlY3RlZFwiXG4gICAgICAgICAgICAgICAgKHNlbGVjdGVkQ2hhbmdlKT1cIm9wdGlvblNlbGVjdGlvbkNoYW5nZWQob3B0aW9uKVwiICNvcHRpb24+XG5cbiAgICAgICAgICAgICAgICA8aW1nICpuZ0lmPVwiZ2V0UGhvdG8odXNlcilcIiBtYXRMaXN0QXZhdGFyIGFsdD1cIlwiIFtzcmNdPVwiZ2V0UGhvdG8odXNlcilcIj5cblxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbiAqbmdJZj1cIiFnZXRQaG90byh1c2VyKVwiIG1hdExpc3RBdmF0YXIgY2xhc3M9XCJuby1waG90b1wiXG4gICAgICAgICAgICAgICAgICAgIGZvbnRJY29uPVwiYWNjb3VudF9jaXJjbGVcIj5cbiAgICAgICAgICAgICAgICA8L21hdC1pY29uPlxuICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInVzZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKHVzZXIpXCIgY2xhc3M9XCJ1c2VyLW5hbWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IHVzZXIuZGlzcGxheU5hbWUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJkYXRhLnNob3dQaG9uZSAmJiB1c2VyLnRlbGVwaG9uZU51bWJlclwiPnt7IHVzZXIudGVsZXBob25lTnVtYmVyIH19PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgPGRpdj57eyB1c2VyLmRlcGFydG1lbnQgfX08L2Rpdj5cbiAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZVwiPnt7IHVzZXIudGl0bGUgfX08L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbWF0LWxpc3Qtb3B0aW9uPlxuICAgICAgICA8L21hdC1zZWxlY3Rpb24tbGlzdD5cbiAgICA8L25nLWNvbnRhaW5lcj5cbjwvbWF0LWRpYWxvZy1jb250ZW50PlxuXG48bWF0LWRpYWxvZy1hY3Rpb25zPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkYXRhU291cmNlICYmIHBob3Rvc1wiPlxuICAgICAgICA8bWF0LXNsaWRlLXRvZ2dsZSAqbmdJZj1cInNlbGVjdGVkT3B0aW9ucy5sZW5ndGhcIiAoY2hhbmdlKT1cImhpZGVVbnNlbGVjdGVkQ2hhbmdlZCgkZXZlbnQuY2hlY2tlZClcIj5cbiAgICAgICAgICAgIEhpZGUgVW5zZWxlY3RlZFxuICAgICAgICA8L21hdC1zbGlkZS10b2dnbGU+XG5cbiAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwic2VsZWN0QWxsKClcIlxuICAgICAgICAgICAgKm5nSWY9XCJpc011bHRpTW9kZVwiPlxuICAgICAgICAgICAgPG1hdC1pY29uIGZvbnRJY29uPVwic2VsZWN0X2FsbFwiPjwvbWF0LWljb24+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImhpZGUtbW9iaWxlXCI+U2VsZWN0IEFsbDwvc3Bhbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgXG4gICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgKGNsaWNrKT1cImRlc2VsZWN0QWxsKClcIlxuICAgICAgICAgICAgKm5nSWY9XCJpc011bHRpTW9kZSAmJiBzZWxlY3RlZE9wdGlvbnMubGVuZ3RoXCI+XG4gICAgICAgICAgICA8bWF0LWljb24gZm9udEljb249XCJjbGVhcl9hbGxcIj48L21hdC1pY29uPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJoaWRlLW1vYmlsZVwiPkNsZWFyIEFsbDwvc3Bhbj5cbiAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgPGJ1dHRvbiAqbmdJZj1cImlzTXVsdGlNb2RlIHx8ICFkYXRhLmNsb3NlV2hlblNlbGVjdGlvbk1hZGVcIiBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwiY2xvc2UoKVwiIG1hdFRvb2x0aXA9XCJBY2NlcHQgeW91ciBzZWxlY3Rpb25cIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFzZWxlY3RlZE9wdGlvbnMubGVuZ3RoXCI+XG4gICAgICAgICAgICA8bWF0LWljb24gZm9udEljb249XCJjaGVja1wiPjwvbWF0LWljb24+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImhpZGUtbW9iaWxlXCI+T2s8L3NwYW4+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cIndhcm5cIiBtYXQtZGlhbG9nLWNsb3NlIG1hdFRvb2x0aXA9XCJDbG9zZSB0aGlzIHdpbmRvd1wiPlxuICAgICAgICA8bWF0LWljb24gZm9udEljb249XCJjbG9zZVwiPjwvbWF0LWljb24+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiaGlkZS1tb2JpbGVcIj5DYW5jZWw8L3NwYW4+XG4gICAgPC9idXR0b24+XG48L21hdC1kaWFsb2ctYWN0aW9ucz4iXX0=
374
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1jaG9vc2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsZWF2ZWxhbmRwcmljZS9uZ3gtbGliL2FjdGl2ZS1kaXJlY3RvcnkvZ3VpL3NyYy9jb21wb25lbnRzL3VzZXItY2hvb3Nlci91c2VyLWNob29zZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xlYXZlbGFuZHByaWNlL25neC1saWIvYWN0aXZlLWRpcmVjdG9yeS9ndWkvc3JjL2NvbXBvbmVudHMvdXNlci1jaG9vc2VyL3VzZXItY2hvb3Nlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBVSxTQUFTLEVBQWdDLE1BQU0sZUFBZSxDQUFDO0FBQ25HLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEQsT0FBTyxFQUFnQixlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RSxPQUFPLEVBQWlCLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBTTlELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7QUFTbkQsTUFBTSxPQUFPLG9CQUFvQjtJQXdDL0IsWUFBWTtJQUVaLG1CQUFtQjtJQUNuQixZQUE0QyxJQUFxQixFQUM3QyxTQUE2QyxFQUM3QyxzQkFBOEMsRUFDOUMsaUJBQW9DO1FBSFosU0FBSSxHQUFKLElB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LEtBQUssQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUNuRyxDQUFDO0lBRUQsT0FBTyxDQUFDLElBQW9CO1FBQzFCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO1lBQzVDLElBQUksQ0FBQyxRQUFRO2lCQUNWLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUNiLElBQUksQ0FBQyxNQUFNO2dCQUNULEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQ2IsS0FBSyxDQUFDLGlCQUFpQixLQUFLLE9BQU8sQ0FDcEMsRUFBRSxJQUFJLENBQ1I7aUJBQ0EsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBRSxHQUFHLENBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztpQkFDaEMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDakIsRUFBRSxDQUFDO0lBQ1AsQ0FBQzs7a0hBeGFVLG9CQUFvQixrQkEyQ1gsZUFBZTtzR0EzQ3hCLG9CQUFvQixtR0FFcEIsZ0JBQWdCLDZJQ3ZCN0IsODRHQWlGcUI7NEZENURSLG9CQUFvQjtrQkFQaEMsU0FBUzs7OzBCQWtESyxNQUFNOzJCQUFDLGVBQWU7NElBekNOLGFBQWE7c0JBQXpDLFNBQVM7dUJBQUMsZ0JBQWdCO2dCQUNELFdBQVc7c0JBQXBDLFNBQVM7dUJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBPbkluaXQsIFZpZXdDaGlsZCwgQWZ0ZXJWaWV3Q2hlY2tlZCwgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdERpYWxvZ1JlZiwgTUFUX0RJQUxPR19EQVRBIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IE1hdExpc3RPcHRpb24sIE1hdFNlbGVjdGlvbkxpc3QgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9saXN0JztcbmltcG9ydCB7IE1hdFRhYmxlRGF0YVNvdXJjZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYmxlJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZm9ya0pvaW4sIE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEFjdGl2ZURpcmVjdG9yeVNlcnZpY2UsIEdyb3VwIH0gZnJvbSAnQGNsZWF2ZWxhbmRwcmljZS9uZ3gtbGliL2FjdGl2ZS1kaXJlY3RvcnknO1xuaW1wb3J0IHsgU2hhcmVQb2ludFNlcnZpY2UsIFBob3RvSXRlbSB9IGZyb20gJ0BjbGVhdmVsYW5kcHJpY2Uvbmd4LWxpYi9zaGFyZXBvaW50JztcblxuaW1wb3J0IHsgU2VsZWN0YWJsZVVzZXIgfSBmcm9tICcuLi8uLi9tb2RlbC9zZWxlY3RhYmxlLXVzZXInO1xuaW1wb3J0IHsgVXNlckNob29zZXJEYXRhIH0gZnJvbSAnLi4vLi4vbW9kZWwvdXNlci1jaG9vc2VyLWRhdGEnO1xuaW1wb3J0IHsgVXNlckNob29zZXJNb2RlIH0gZnJvbSAnLi4vLi4vcHVibGljX2FwaSc7XG5cbkBDb21wb25lbnQoe1xuICB0ZW1wbGF0ZVVybDogJy4vdXNlci1jaG9vc2VyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbXG4gICAgJy4vdXNlci1jaG9vc2VyLmNvbXBvbmVudC5jc3MnLFxuICAgICcuLi8uLi8uLi8uLi8uLi9zdHlsZXMvbWF0LWljb24uY3NzJ1xuICBdXG59KVxuZXhwb3J0IGNsYXNzIFVzZXJDaG9vc2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdDaGVja2VkIHtcbiAgLy8jcmVnaW9uIEZpZWxkc1xuICBAVmlld0NoaWxkKE1hdFNlbGVjdGlvbkxpc3QpIHNlbGVjdGlvbkxpc3Q6IE1hdFNlbGVjdGlvbkxpc3QgfCB1bmRlZmluZWQ7XG4gIEBWaWV3Q2hpbGQoJ2ZpbHRlcklucHV0JykgZmlsdGVySW5wdXQ6IEVsZW1lbnRSZWYgfCB1bmRlZmluZWQ7XG4gIGZpbHRlcklucHV0Rm9jdXNlZCA9IGZhbHNlO1xuXG4gIGZpbHRlckZvcm0gPSBuZXcgRm9ybUdyb3VwKHtcbiAgICBmaWx0ZXI6IG5ldyBGb3JtQ29udHJvbCgpXG4gIH0pO1xuXG4gIGRhdGFTb3VyY2U6IE1hdFRhYmxlRGF0YVNvdXJjZTxTZWxlY3RhYmxlVXNlcj4gfCB1bmRlZmluZWQ7XG4gIHBob3RvczogUGhvdG9JdGVtW10gfCB1bmRlZmluZWQ7XG4gIGdyb3VwczogR3JvdXBbXSB8IHVuZGVmaW5lZDsgLy8gTWF5IG9yIG1heSBub3QgZ2V0IHBvcHVsYXRlZCwgZGVwZW5kaW5nIG9uIGNvbmZpZyBkYXRhIHNlbnQgaW5cbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8jcmVnaW9uIFByb3BlcnRpZXNcbiAgZ2V0IGlzTXVsdGlNb2RlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmRhdGEubW9kZSA9PT0gVXNlckNob29zZXJNb2RlLk11bHRpcGxlO1xuICB9XG5cbiAgZ2V0IHNlbGVjdGVkT3B0aW9ucygpOiBNYXRMaXN0T3B0aW9uW10ge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdGlvbkxpc3Q/Lm9wdGlvbnMuZmlsdGVyKG8gPT4gby5zZWxlY3RlZCkgPz8gW107XG4gIH1cblxuICBnZXQgc2VsZWN0ZWRVc2VycygpOiBTZWxlY3RhYmxlVXNlcltdIHtcbiAgICByZXR1cm4gdGhpcy5kYXRhU291cmNlPy5kYXRhPy5maWx0ZXIoZCA9PiBkLnNlbGVjdGVkKSA/PyBbXTtcbiAgfVxuXG4gIGdldCBmaWx0ZXJWYWx1ZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmZpbHRlckZvcm0udmFsdWUuZmlsdGVyO1xuICB9XG5cbiAgZ2V0IGFkR3JvdXBzTmVlZGVkKCk6IGJvb2xlYW4ge1xuICAgIC8vIElmIGFueSBhcmUgdGhlc2UgYXJlIHRydWUsIHRoZW4gd2UgbmVlZCB0byBwdWxsIEFEIGdyb3VwcyBmb3IgdXNlIGxhdGVyXG4gICAgcmV0dXJuIHRoaXMuZGF0YS5zaG93R3JvdXBNZW1iZXJzaGlwVG9vbHRpcHMgfHxcbiAgICAgIHRoaXMuZGF0YS5leGNsdXNpb25zLmdyb3Vwcy5sZW5ndGggPiAwIHx8XG4gICAgICB0aGlzLmRhdGEuaW5jbHVzaW9ucy5ncm91cHMubGVuZ3RoID4gMCB8fFxuICAgICAgdGhpcy5kYXRhLnByZVNlbGVjdGlvbnMuZ3JvdXBzLmxlbmd0aCA+IDAgfHxcbiAgICAgIHRoaXMuZGF0YS5maWx0ZXJPcHRpb25zLmdyb3VwTWVtYmVyc2hpcDtcbiAgfVxuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gTGlmZWN5Y2xlXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgZGF0YTogVXNlckNob29zZXJEYXRhLFxuICAgICAgICAgICAgICBwcml2YXRlIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPFVzZXJDaG9vc2VyQ29tcG9uZW50PixcbiAgICAgICAgICAgICAgcHJpdmF0ZSBhY3RpdmVEaXJlY3RvcnlTZXJ2aWNlOiBBY3RpdmVEaXJlY3RvcnlTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIHNoYXJlUG9pbnRTZXJ2aWNlOiBTaGFyZVBvaW50U2VydmljZSkge1xuXG4gICAgICAgICAgICAgICAgdGhpcy5kYXRhID0ge1xuICAgICAgICAgICAgICAgICAgLi4ubmV3IFVzZXJDaG9vc2VyRGF0YSgpLFxuICAgICAgICAgICAgICAgICAgLi4uZGF0YVxuICAgICAgICAgICAgICAgIH1cbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZ2V0RGF0YSgpO1xuICAgIHRoaXMubGlzdGVuRm9yRmlsdGVyQ2hhbmdlcygpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdDaGVja2VkKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmZpbHRlcklucHV0Rm9jdXNlZCB8fCAhdGhpcy5maWx0ZXJJbnB1dCkge1xuICAgICAgLy8gQ29udHJvbCBub3QgcmVhZHkgeWV0LCBvciBpdCBoYXMgYWxyZWFkeSBiZWVuIGdpdmVuIGZvY3VzXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5maWx0ZXJJbnB1dEZvY3VzZWQgPSB0cnVlO1xuICAgIHRoaXMuZmlsdGVySW5wdXQ/Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgfVxuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gRXZlbnRzXG4gICBsaXN0U2VsZWN0aW9uQ2hhbmdlZChvcHRpb25zOiBNYXRMaXN0T3B0aW9uW10pOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kYXRhLm1vZGUgPT09IFVzZXJDaG9vc2VyTW9kZS5TaW5nbGUgJiZcbiAgICAgIHRoaXMuc2VsZWN0ZWRPcHRpb25zLmxlbmd0aCAmJlxuICAgICAgdGhpcy5kYXRhLmNsb3NlV2hlblNlbGVjdGlvbk1hZGVcbiAgICAgICkge1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgIH1cbiAgfVxuXG4gIG9wdGlvblNlbGVjdGlvbkNoYW5nZWQob3B0aW9uOiBNYXRMaXN0T3B0aW9uKTogdm9pZCB7XG4gICAgY29uc3QgdXNlciA9IHRoaXMuZGF0YVNvdXJjZT8uZGF0YVxuICAgICAgLmZpbmQodSA9PiB1LnNBTUFjY291bnROYW1lLnRvTG9jYWxlTG93ZXJDYXNlKCkgPT09IChvcHRpb24udmFsdWUgYXMgU2VsZWN0YWJsZVVzZXIpLnNBTUFjY291bnROYW1lLnRvTG93ZXJDYXNlKCkpO1xuXG4gICAgaWYgKHVzZXIpIHtcbiAgICAgIHVzZXIuc2VsZWN0ZWQgPSBvcHRpb24uc2VsZWN0ZWQ7XG4gICAgfVxuICB9XG5cbiAgaGlkZVVuc2VsZWN0ZWRDaGFuZ2VkKHNlbGVjdGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5maWx0ZXJGb3JtLmdldCgnZmlsdGVyJyk/LnNldFZhbHVlKHNlbGVjdGVkID8gJ3tzZWxlY3RlZDp0cnVlfScgOiBudWxsKTtcbiAgfVxuXG4gIHNlbGVjdEFsbCgpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGlvbkxpc3Q/LnNlbGVjdEFsbCgpO1xuXG4gICAgaWYgKHRoaXMuc2VsZWN0aW9uTGlzdD8ub3B0aW9ucykge1xuICAgICAgdGhpcy5saXN0U2VsZWN0aW9uQ2hhbmdlZCh0aGlzLnNlbGVjdGlvbkxpc3Q/Lm9wdGlvbnMudG9BcnJheSgpKTtcbiAgICB9XG4gIH1cblxuICBkZXNlbGVjdEFsbCgpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGlvbkxpc3Q/LmRlc2VsZWN0QWxsKCk7XG4gIH1cbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8jcmVnaW9uIFV0aWxpdGllc1xuICBwcml2YXRlIGdldERhdGEoKTogdm9pZCB7XG4gICAgY29uc3QgZGF0YU9ic2VydmFibGVzOiBPYnNlcnZhYmxlPGFueT5bXSA9IFtcbiAgICAgIHRoaXMuZGF0YS51c2VycyA/XG4gICAgICAgIC8vIFVzZXJzIHdlcmUgcGFzc2VkIGluXG4gICAgICAgIG9mKHRoaXMuZGF0YS51c2VycykgOlxuICAgICAgICAvLyBVc2VycyBuZWVkIHRvIGJlIHJldHJpZXZlZFxuICAgICAgICB0aGlzLmFjdGl2ZURpcmVjdG9yeVNlcnZpY2UuZ2V0VXNlcnMoZmFsc2UsIHRoaXMuZGF0YS5pbmNsdWRlRGlzYWJsZWRVc2VycywgdGhpcy5kYXRhLnBhcmVudE91KSxcblxuICAgICAgdGhpcy5kYXRhLnBob3RvcyA/XG4gICAgICAgIC8vIFBob3RvcyB3ZXJlIHBhc3NlZCBpblxuICAgICAgICBvZih0aGlzLmRhdGEucGhvdG9zKSA6XG4gICAgICAgIC8vIFBob3RvcyBuZWVkIHRvIGJlIHJldHJpZXZlZFxuICAgICAgICB0aGlzLnNoYXJlUG9pbnRTZXJ2aWNlLmdldFBob3RvcygpXG4gICAgXTtcblxuICAgIC8vIERvIHdlIG5lZWQgQUQgZ3JvdXBzP1xuICAgIGlmICh0aGlzLmFkR3JvdXBzTmVlZGVkKSB7XG4gICAgICB0aGlzLmRhdGEuZ3JvdXBzID9cbiAgICAgICAgLy8gR3JvdXBzIHdlcmUgcGFzc2VkIGluXG4gICAgICAgIG9mKHRoaXMuZGF0YS5ncm91cHMpIDpcbiAgICAgICAgLy8gR3JvdXBzIG5lZWQgdG8gYmUgcmV0cmlldmVkXG4gICAgICAgIGRhdGFPYnNlcnZhYmxlcy5wdXNoKHRoaXMuYWN0aXZlRGlyZWN0b3J5U2VydmljZS5nZXRHcm91cHMoKSk7XG4gICAgfVxuXG5cbiAgICBmb3JrSm9pbihkYXRhT2JzZXJ2YWJsZXMpXG4gICAgICAvLy5zdWJzY3JpYmUoKFt1c2VycywgcGhvdG9zXSkgPT4ge1xuICAgICAgLnN1YnNjcmliZShkYXRhID0+IHtcbiAgICAgICAgLy8gTmVlZCBncm91cHMgaW4gcGxhY2UgYmVmb3JlIHdlIGhhbmRsZSBleGNsdXNpb25zL2luY2x1c2lvbnMvcHJlLXNlbGVjdGlvbnNcbiAgICAgICAgdGhpcy5ncm91cHMgPSB0aGlzLmFkR3JvdXBzTmVlZGVkID8gZGF0YVsyXSA6IG51bGw7XG5cbiAgICAgICAgbGV0IHVzZXJzID0gZGF0YVswXSBhcyBTZWxlY3RhYmxlVXNlcltdO1xuICAgICAgICB1c2Vycy5mb3JFYWNoKHUgPT4gdS5zZWxlY3RlZCA9IGZhbHNlKTsgLy8gSW4gY2FzZSBleGlzdGluZyBkYXRhIHdhcyByZS11c2VkXG4gICAgICAgIHVzZXJzID0gdGhpcy5pbmNsdWRlVXNlcnNCeUFjY291bnROYW1lKHVzZXJzKTtcbiAgICAgICAgdXNlcnMgPSB0aGlzLmluY2x1ZGVVc2Vyc0J5R3JvdXBOYW1lKHVzZXJzKTtcbiAgICAgICAgdXNlcnMgPSB0aGlzLmluY2x1ZGVVc2Vyc0J5RGVwYXJ0bWVudCh1c2Vycyk7XG4gICAgICAgIHVzZXJzID0gdGhpcy5pbmNsdWRlVXNlcnNCeVRpdGxlKHVzZXJzKTtcblxuICAgICAgICB1c2VycyA9IHRoaXMuZXhjbHVkZVVzZXJzQnlBY2NvdW50TmFtZSh1c2Vycyk7XG4gICAgICAgIHVzZXJzID0gdGhpcy5leGNsdWRlVXNlcnNCeUdyb3VwTmFtZSh1c2Vycyk7XG4gICAgICAgIHVzZXJzID0gdGhpcy5leGNsdWRlVXNlcnNCeURlcGFydG1lbnQodXNlcnMpO1xuICAgICAgICB1c2VycyA9IHRoaXMuZXhjbHVkZVVzZXJzQnlUaXRsZSh1c2Vycyk7XG5cbiAgICAgICAgdXNlcnMgPSB0aGlzLnByZVNlbGVjdFVzZXJzQnlBY2NvdW50TmFtZSh1c2Vycyk7XG4gICAgICAgIHVzZXJzID0gdGhpcy5wcmVTZWxlY3RVc2Vyc0J5R3JvdXBOYW1lKHVzZXJzKTtcbiAgICAgICAgdXNlcnMgPSB0aGlzLnByZVNlbGVjdFVzZXJzQnlEZXBhcnRtZW50KHVzZXJzKTtcbiAgICAgICAgdXNlcnMgPSB0aGlzLnByZVNlbGVjdFVzZXJzQnlUaXRsZSh1c2Vycyk7XG5cbiAgICAgICAgdGhpcy5kYXRhU291cmNlID0gbmV3IE1hdFRhYmxlRGF0YVNvdXJjZSh1c2Vycyk7XG4gICAgICBcbiAgICAgICAgdGhpcy5waG90b3MgPSBkYXRhWzFdO1xuXG4gICAgICAgIHRoaXMuc2V0RmlsdGVyUHJlZGljYXRlKCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIGNsb3NlKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5zZWxlY3RlZFVzZXJzKSB7XG4gICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMuc2VsZWN0ZWRVc2Vyc1xuICAgICAgLm1hcCh1ID0+IHRoaXMuZGF0YS5yZXR1cm5Vc2VyT2JqZWN0cyA/IHUgOiB1LnNBTUFjY291bnROYW1lKTtcblxuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHRoaXMuZGF0YS5tb2RlID09PSBVc2VyQ2hvb3Nlck1vZGUuTXVsdGlwbGUgP1xuICAgICAgdmFsdWUgOlxuICAgICAgdmFsdWVbMF1cbiAgICApO1xuICB9XG5cbiAgZ2V0UGhvdG8odXNlcjogU2VsZWN0YWJsZVVzZXIpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLnBob3Rvcz8uZmluZChwID0+XG4gICAgICAocC5lbXBsb3llZU51bWJlciAmJiBwLmVtcGxveWVlTnVtYmVyLnRvU3RyaW5nKCkgPT09IHVzZXIuZW1wbG95ZWVOdW1iZXIpIHx8XG4gICAgICBwLmFjY291bnROYW1lPy50b0xvd2VyQ2FzZSgpID09PSB1c2VyLnNBTUFjY291bnROYW1lLnRvTG93ZXJDYXNlKCkgfHxcbiAgICAgIHAuZGlzcGxheU5hbWU/LnRvTG93ZXJDYXNlKCkgPT09IHVzZXIuZGlzcGxheU5hbWUudG9Mb3dlckNhc2UoKSB8fFxuICAgICAgcC50aXRsZT8udG9Mb3dlckNhc2UoKSA9PT0gdXNlci5kaXNwbGF5TmFtZS50b0xvd2VyQ2FzZSgpXG4gICAgKT8uZW5jb2RlZEFic1VybDtcbiAgfVxuXG4gIC8vI3JlZ2lvbiBFeGNsdXNpb25zIC0gd29uJ3QgYmUgaW5jbHVkZWQgaW4gdGhlIGRhdGFTb3VyY2UgYXQgYWxsXG4gIHByaXZhdGUgZXhjbHVkZVVzZXJzQnlBY2NvdW50TmFtZSh1c2VyczogU2VsZWN0YWJsZVVzZXJbXSk6IFNlbGVjdGFibGVVc2VyW10ge1xuICAgIHRoaXMuZGF0YS5leGNsdXNpb25zLmFjY291bnROYW1lc1xuICAgICAgLmZvckVhY2goYWNjb3VudE5hbWUgPT4ge1xuICAgICAgICBjb25zdCBpbmRleCA9IHVzZXJzLmZpbmRJbmRleCh1ID0+IHUuc0FNQWNjb3VudE5hbWUudG9Mb3dlckNhc2UoKSA9PT0gYWNjb3VudE5hbWUudG9Mb3dlckNhc2UoKSk7XG4gICAgICAgIGlmIChpbmRleCA9PT0gLTEpIHsgcmV0dXJuOyB9XG5cbiAgICAgICAgdXNlcnMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgIH0pO1xuXG4gICAgcmV0dXJuIHVzZXJzO1xuICB9XG5cbiAgcHJpdmF0ZSBleGNsdWRlVXNlcnNCeUdyb3VwTmFtZSh1c2VyczogU2VsZWN0YWJsZVVzZXJbXSk6IFNlbGVjdGFibGVVc2VyW10ge1xuICAgIHRoaXMuZGF0YS5leGNsdXNpb25zLmdyb3Vwc1xuICAgICAgLmZvckVhY2goZ3JvdXBOYW1lID0+IHtcbiAgICAgICAgY29uc3QgZ3JvdXAgPSB0aGlzLmdyb3Vwcz8uZmluZChnID0+IGcubmFtZS50b0xvd2VyQ2FzZSgpID09PSBncm91cE5hbWUudG9Mb3dlckNhc2UoKSk7XG4gICAgICAgIGlmICghZ3JvdXApIHsgcmV0dXJuOyB9XG4gICAgICAgIFxuICAgICAgICBncm91cC5tZW1iZXIuZm9yRWFjaChncm91cE1lbWJlckRuID0+IHtcbiAgICAgICAgICBjb25zdCBpbmRleCA9IHVzZXJzLmZpbmRJbmRleCh1ID0+IHUuZGlzdGluZ3Vpc2hlZE5hbWUgPT09IGdyb3VwTWVtYmVyRG4pO1xuICAgICAgICAgIGlmIChpbmRleCA9PT0gLTEpIHsgcmV0dXJuOyB9XG5cbiAgICAgICAgICB1c2Vycy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuXG4gICAgcmV0dXJuIHVzZXJzO1xuICB9XG5cbiAgcHJpdmF0ZSBleGNsdWRlVXNlcnNCeURlcGFydG1lbnQodXNlcnM6IFNlbGVjdGFibGVVc2VyW10pOiBTZWxlY3RhYmxlVXNlcltdIHtcbiAgICB0aGlzLmRhdGEuZXhjbHVzaW9ucy5kZXBhcnRtZW50c1xuICAgICAgLmZvckVhY2goZGVwYXJ0bWVudCA9PiB7XG4gICAgICAgIGNvbnN0IGV4Y2x1ZGVkVXNlcnMgPSB1c2Vycy5maWx0ZXIodSA9PiB1LmRlcGFydG1lbnQ/LnRvTG93ZXJDYXNlKCkgPT09IGRlcGFydG1lbnQudG9Mb3dlckNhc2UoKSk7XG5cbiAgICAgICAgZXhjbHVkZWRVc2Vycy5mb3JFYWNoKHVzZXIgPT4ge1xuICAgICAgICAgIGNvbnN0IGluZGV4ID0gdXNlcnMuaW5kZXhPZih1c2VyKTtcbiAgICAgICAgICB1c2Vycy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuXG4gICAgcmV0dXJuIHVzZXJzO1xuICB9XG5cbiAgcHJpdmF0ZSBleGNsdWRlVXNlcnNCeVRpdGxlKHVzZXJzOiBTZWxlY3RhYmxlVXNlcltdKTogU2VsZWN0YWJsZVVzZXJbXSB7XG4gICAgdGhpcy5kYXRhLmV4Y2x1c2lvbnMudGl0bGVzXG4gICAgICAuZm9yRWFjaCh0aXRsZSA9PiB7XG4gICAgICAgIGNvbnN0IGV4Y2x1ZGVkVXNlcnMgPSB1c2Vycy5maWx0ZXIodSA9PiB1LnRpdGxlPy50b0xvd2VyQ2FzZSgpID09PSB0aXRsZS50b0xvd2VyQ2FzZSgpKTtcbiAgICAgICAgXG4gICAgICAgIGV4Y2x1ZGVkVXNlcnMuZm9yRWFjaCh1c2VyID0+IHtcbiAgICAgICAgICBjb25zdCBpbmRleCA9IHVzZXJzLmluZGV4T2YodXNlcik7XG4gICAgICAgICAgdXNlcnMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcblxuICAgIHJldHVybiB1c2VycztcbiAgfVxuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gSW5jbHVzaW9ucyAtIG9ubHkgdGhlc2Ugd2lsbCBiZSBpbmNsdWRlZCBpbiB0aGUgZGF0YVNvdXJjZVxuICBwcml2YXRlIGluY2x1ZGVVc2Vyc0J5QWNjb3VudE5hbWUodXNlcnM6IFNlbGVjdGFibGVVc2VyW10pOiBTZWxlY3RhYmxlVXNlcltdIHtcbiAgICByZXR1cm4gdXNlcnMuZmlsdGVyKHVzZXIgPT5cbiAgICAgIHRoaXMuZGF0YS5pbmNsdXNpb25zLmFjY291bnROYW1lcy5sZW5ndGggPT09IDAgfHwgLy8gTm8gYWNjb3VudCBpbmNsdXNpb25zIHNwZWNpZmllZFxuXG4gICAgICB0aGlzLmRhdGEuaW5jbHVzaW9ucy5hY2NvdW50TmFtZXMuZmluZChhY2NvdW50TmFtZSA9PlxuICAgICAgICBhY2NvdW50TmFtZS50b0xvd2VyQ2FzZSgpID09PSB1c2VyLnNBTUFjY291bnROYW1lLnRvTG93ZXJDYXNlKClcbiAgICAgICkpO1xuICB9XG5cbiAgcHJpdmF0ZSBpbmNsdWRlVXNlcnNCeURlcGFydG1lbnQodXNlcnM6IFNlbGVjdGFibGVVc2VyW10pOiBTZWxlY3RhYmxlVXNlcltdIHtcbiAgICByZXR1cm4gdXNlcnMuZmlsdGVyKHVzZXIgPT5cbiAgICAgIHRoaXMuZGF0YS5pbmNsdXNpb25zLmRlcGFydG1lbnRzLmxlbmd0aCA9PT0gMCB8fCAvLyBObyBkZXBhcnRtZW50IGluY2x1c2lvbnMgc3BlY2lmaWVkXG5cbiAgICAgIHRoaXMuZGF0YS5pbmNsdXNpb25zLmRlcGFydG1lbnRzLmZpbmQoZGVwYXJ0bWVudCA9PlxuICAgICAgICBkZXBhcnRtZW50LnRvTG93ZXJDYXNlKCkgPT09IHVzZXIuZGVwYXJ0bWVudD8udG9Mb3dlckNhc2UoKVxuICAgICAgKSk7XG4gIH1cblxuICBwcml2YXRlIGluY2x1ZGVVc2Vyc0J5VGl0bGUodXNlcnM6IFNlbGVjdGFibGVVc2VyW10pOiBTZWxlY3RhYmxlVXNlcltdIHtcbiAgICByZXR1cm4gdXNlcnMuZmlsdGVyKHVzZXIgPT5cbiAgICAgIHRoaXMuZGF0YS5pbmNsdXNpb25zLnRpdGxlcy5sZW5ndGggPT09IDAgfHwgLy8gTm8gdGl0bGUgaW5jbHVzaW9ucyBzcGVjaWZpZWRcblxuICAgICAgdGhpcy5kYXRhLmluY2x1c2lvbnMudGl0bGVzLmZpbmQodGl0bGUgPT5cbiAgICAgICAgdGl0bGUudG9Mb3dlckNhc2UoKSA9PT0gdXNlci50aXRsZT8udG9Mb3dlckNhc2UoKVxuICAgICAgKSk7XG4gIH1cblxuICBwcml2YXRlIGluY2x1ZGVVc2Vyc0J5R3JvdXBOYW1lKHVzZXJzOiBTZWxlY3RhYmxlVXNlcltdKTogU2VsZWN0YWJsZVVzZXJbXSB7XG4gICAgaWYgKCF0aGlzLmRhdGEuaW5jbHVzaW9ucy5ncm91cHMubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gdXNlcnM7IC8vIE5vIGdyb3VwIGluY2x1c2lvbnMgc3BlY2lmaWVkXG4gICAgfVxuXG4gICAgLy8gQ2hlYXRpbmcgYSBiaXQgYW5kIGxldmVyYWdpbmcgdGhlICdzZWxlY3RlZCcgcHJvcGVydHkgdG8ga2VlcCB0cmFjayBvZiB3aG8gc2hvdWxkIGJlIGluY2x1ZGVkXG4gICAgLy8gU2luY2UgaW5jbHVzaW9ucyBoYXBwZW4gYmVmb3IgcHJlLXNlbGVjdGlvbnMsIHdlIGNhbiBkbyB0aGF0LCBhcyBsb25nIGFzIHdlIHNldCAnc2VsZWN0ZWQnIGJhY2sgdG8gZmFsc2Ugd2hlbiB3ZSdyZSBkb25lXG4gICAgdGhpcy5kYXRhLmluY2x1c2lvbnMuZ3JvdXBzXG4gICAgICAuZm9yRWFjaChncm91cE5hbWUgPT4ge1xuICAgICAgICBjb25zdCBncm91cCA9IHRoaXMuZ3JvdXBzPy5maW5kKGcgPT4gZy5uYW1lLnRvTG93ZXJDYXNlKCkgPT09IGdyb3VwTmFtZS50b0xvd2VyQ2FzZSgpKTtcbiAgICAgICAgaWYgKCFncm91cCkgeyByZXR1cm47IH1cblxuICAgICAgICB1c2Vyc1xuICAgICAgICAgIC5maWx0ZXIodXNlciA9PlxuICAgICAgICAgICAgICBncm91cC5tZW1iZXIuZmluZChncm91cE1lbWJlckRuID0+IGdyb3VwTWVtYmVyRG4gPT09IHVzZXIuZGlzdGluZ3Vpc2hlZE5hbWUpXG4gICAgICAgICAgKVxuICAgICAgICAgIC5mb3JFYWNoKHVzZXIgPT4gdXNlci5zZWxlY3RlZCA9IHRydWUpO1xuICAgICAgfSk7XG4gICAgICBcbiAgICAvLyBBdCB0aGlzIHBvaW50LCBhbGwgb2YgdGhlIGFwcHJvcHJpYXRlIHVzZXJzIHNob3VsZCBoYXZlICdzZWxlY3RlZCcgc2V0IHRvIHRydWVcbiAgICBjb25zdCBzZWxlY3RlZFVzZXJzID0gdXNlcnMuZmlsdGVyKHVzZXIgPT4gdXNlci5zZWxlY3RlZCk7IC8vIFN1YnNldCBvZiB0aGUgb3JpZ2luYWwgbGlzdFxuICAgIC8vIFJlc2V0ICdzZWxlY3RlZCcgdG8gZmFsc2UsIGFuZCByZXR1cm5cbiAgICBzZWxlY3RlZFVzZXJzLmZvckVhY2godXNlciA9PiB1c2VyLnNlbGVjdGVkID0gZmFsc2UpO1xuICAgIHJldHVybiBzZWxlY3RlZFVzZXJzO1xuICB9XG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiAgUHJlLVNlbGVjdGlvbnNcbiAgcHJpdmF0ZSBwcmVTZWxlY3RVc2Vyc0J5QWNjb3VudE5hbWUodXNlcnM6IFNlbGVjdGFibGVVc2VyW10pOiBTZWxlY3RhYmxlVXNlcltdIHtcbiAgICB0aGlzLmRhdGEucHJlU2VsZWN0aW9ucy5hY2NvdW50TmFtZXNcbiAgICAgIC5mb3JFYWNoKGFjY291bnROYW1lID0+IHtcbiAgICAgICAgY29uc3QgdXNlciA9IHVzZXJzLmZpbmQodSA9PiB1LnNBTUFjY291bnROYW1lLnRvTG93ZXJDYXNlKCkgPT09IGFjY291bnROYW1lLnRvTG93ZXJDYXNlKCkpO1xuICAgICAgICBpZiAoIXVzZXIpIHsgcmV0dXJuOyB9XG5cbiAgICAgICAgdXNlci5zZWxlY3RlZCA9IHRydWU7XG4gICAgICB9KTtcblxuICAgIHJldHVybiB1c2VycztcbiAgfVxuXG4gIHByaXZhdGUgcHJlU2VsZWN0VXNlcnNCeURlcGFydG1lbnQodXNlcnM6IFNlbGVjdGFibGVVc2VyW10pOiBTZWxlY3RhYmxlVXNlcltdIHtcbiAgICB0aGlzLmRhdGEucHJlU2VsZWN0aW9ucy5kZXBhcnRtZW50c1xuICAgICAgLmZvckVhY2goZGVwYXJ0bWVudCA9PlxuICAgICAgICB1c2Vyc1xuICAgICAgICAgIC5maWx0ZXIodSA9PiB1LmRlcGFydG1lbnQ/LnRvTG93ZXJDYXNlKCkgPT09IGRlcGFydG1lbnQudG9Mb3dlckNhc2UoKSlcbiAgICAgICAgICAuZm9yRWFjaCh1c2VyID0+IHVzZXIuc2VsZWN0ZWQgPSB0cnVlKVxuICAgICAgKTtcblxuICAgIHJldHVybiB1c2VycztcbiAgfVxuXG4gIHByaXZhdGUgcHJlU2VsZWN0VXNlcnNCeVRpdGxlKHVzZXJzOiBTZWxlY3RhYmxlVXNlcltdKTogU2VsZWN0YWJsZVVzZXJbXSB7XG4gICAgdGhpcy5kYXRhLnByZVNlbGVjdGlvbnMudGl0bGVzXG4gICAgICAuZm9yRWFjaCh0aXRsZSA9PlxuICAgICAgICB1c2Vyc1xuICAgICAgICAgIC5maWx0ZXIodSA9PiB1LnRpdGxlPy50b0xvd2VyQ2FzZSgpID09PSB0aXRsZS50b0xvd2VyQ2FzZSgpKVxuICAgICAgICAgIC5mb3JFYWNoKHVzZXIgPT4gdXNlci5zZWxlY3RlZCA9IHRydWUpXG4gICAgICApO1xuXG4gICAgcmV0dXJuIHVzZXJzO1xuICB9XG5cbiAgcHJpdmF0ZSBwcmVTZWxlY3RVc2Vyc0J5R3JvdXBOYW1lKHVzZXJzOiBTZWxlY3RhYmxlVXNlcltdKTogU2VsZWN0YWJsZVVzZXJbXSB7XG4gICAgdGhpcy5kYXRhLnByZVNlbGVjdGlvbnMuZ3JvdXBzXG4gICAgICAuZm9yRWFjaChncm91cE5hbWUgPT4ge1xuICAgICAgICBjb25zdCBncm91cCA9IHRoaXMuZ3JvdXBzPy5maW5kKGcgPT4gZy5uYW1lLnRvTG93ZXJDYXNlKCkgPT09IGdyb3VwTmFtZS50b0xvd2VyQ2FzZSgpKTtcbiAgICAgICAgaWYgKCFncm91cCkgeyByZXR1cm47IH1cblxuICAgICAgICBncm91cC5tZW1iZXIuZm9yRWFjaChncm91cE1lbWJlckRuID0+IHtcbiAgICAgICAgICBjb25zdCB1c2VyID0gdXNlcnMuZmluZCh1ID0+IHUuZGlzdGluZ3Vpc2hlZE5hbWUgPT09IGdyb3VwTWVtYmVyRG4pO1xuICAgICAgICAgIGlmICghdXNlcikgeyByZXR1cm47IH1cblxuICAgICAgICAgIHVzZXIuc2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuXG4gICAgcmV0dXJuIHVzZXJzO1xuICB9XG4gIC8vI2VuZHJlZ2lvblxuICBcbiAgcHJpdmF0ZSBzZXRGaWx0ZXJQcmVkaWNhdGUoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmRhdGFTb3VyY2UpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmRhdGFTb3VyY2UuZmlsdGVyUHJlZGljYXRlID0gKHVzZXI6IFNlbGVjdGFibGVVc2VyLCBmaWx0ZXI6IHN0cmluZykgPT4ge1xuICAgICAgaWYgKGZpbHRlciA9PT0gJ3tzZWxlY3RlZDp0cnVlfScpIHtcbiAgICAgICAgcmV0dXJuIHVzZXIuc2VsZWN0ZWQ7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCByZWdleCA9IG5ldyBSZWdFeHAoZmlsdGVyLCAnaScpOyAvLyBDYXNlLWluc2Vuc2l0aXZlXG4gICAgICAgIGxldCBtYXRjaCA9IGZhbHNlOyAvLyBUaGUgZW5kIHJlc3VsdCAtIHdoZXRoZXIgb3Igbm90IGEgZW1wbG95ZWUgbWF0Y2hlcyB0aGUgZmlsdGVyXG5cbiAgICAgICAgY29uc3QgZmlsdGVyUHJvcGVydGllcyA9IFsgJ2Rpc3BsYXlOYW1lJyBdO1xuICAgICAgICBpZiAodGhpcy5kYXRhLmZpbHRlck9wdGlvbnMuYWNjb3VudE5hbWUpIHtcbiAgICAgICAgICBmaWx0ZXJQcm9wZXJ0aWVzLnB1c2goJ3NBTUFjY291bnROYW1lJylcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5kYXRhLmZpbHRlck9wdGlvbnMudGl0bGUpIHtcbiAgICAgICAgICBmaWx0ZXJQcm9wZXJ0aWVzLnB1c2goJ3RpdGxlJyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuZGF0YS5maWx0ZXJPcHRpb25zLmRlcGFydG1lbnQpIHtcbiAgICAgICAgICBmaWx0ZXJQcm9wZXJ0aWVzLnB1c2goJ2RlcGFydG1lbnQnKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5kYXRhLmZpbHRlck9wdGlvbnMucGhvbmVOdW1iZXIpIHtcbiAgICAgICAgICBmaWx0ZXJQcm9wZXJ0aWVzLnB1c2goJ3RlbGVwaG9uZU51bWJlcicpO1xuICAgICAgICB9XG4gIFxuICAgICAgICAvLyBNYXRjaCBvbiB0aGUgcHJvcGVydGllcyBjb25maWd1cmVkIGFib3ZlXG4gICAgICAgIGZpbHRlclByb3BlcnRpZXNcbiAgICAgICAgICAuZm9yRWFjaChmaWVsZCA9PiB7XG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICBpZiAodXNlcltmaWVsZF0gJiYgdXNlcltmaWVsZF0ubWF0Y2gocmVnZXgpKSB7XG4gICAgICAgICAgICAgIG1hdGNoID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgXG4gICAgICAgIC8vIE1hdGNoIG9uIGdyb3VwIG1lbWJlcnNoaXAgKGdyb3VwIG5hbWUpXG4gICAgICAgIGlmICh0aGlzLmRhdGEuZmlsdGVyT3B0aW9ucy5ncm91cE1lbWJlcnNoaXApIHtcbiAgICAgICAgICB1c2VyLm1lbWJlck9mLmZvckVhY2goZ3JvdXBEbiA9PiB7XG4gICAgICAgICAgICBjb25zdCBncm91cCA9IHRoaXMuZ3JvdXBzPy5maW5kKGdyb3VwID0+IGdyb3VwLmRpc3Rpbmd1aXNoZWROYW1lID09PSBncm91cERuICYmIGdyb3VwLm5hbWUubWF0Y2gocmVnZXgpKTtcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgaWYgKGdyb3VwKSB7XG4gICAgICAgICAgICAgIG1hdGNoID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBtYXRjaDtcbiAgICAgIH1cbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBsaXN0ZW5Gb3JGaWx0ZXJDaGFuZ2VzKCk6IHZvaWQge1xuICAgIHRoaXMuZmlsdGVyRm9ybS5nZXQoJ2ZpbHRlcicpPy52YWx1ZUNoYW5nZXNcbiAgICAgIC5waXBlKFxuICAgICAgICBkZWJvdW5jZVRpbWUoMjUwKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLmRhdGFTb3VyY2UhLmZpbHRlciA9IHRoaXMuZmlsdGVyRm9ybS52YWx1ZS5maWx0ZXI/LnRyaW0oKS50b0xvd2VyQ2FzZSgpKTtcbiAgfVxuXG4gIHRvb2x0aXAodXNlcjogU2VsZWN0YWJsZVVzZXIpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmRhdGEuc2hvd0dyb3VwTWVtYmVyc2hpcFRvb2x0aXBzID9cbiAgICAgIHVzZXIubWVtYmVyT2ZcbiAgICAgICAgLm1hcChncm91cERuID0+XG4gICAgICAgICAgdGhpcy5ncm91cHNcbiAgICAgICAgICAgID8uZmluZChncm91cCA9PlxuICAgICAgICAgICAgICBncm91cC5kaXN0aW5ndWlzaGVkTmFtZSA9PT0gZ3JvdXBEblxuICAgICAgICAgICAgKT8ubmFtZVxuICAgICAgICAgIClcbiAgICAgICAgICAuc29ydCgoYSwgYikgPT4gYSEgPiBiISA/IDEgOiAtMSlcbiAgICAgICAgICAuam9pbignXFxuJykgOlxuICAgICAgJyc7XG4gIH1cbiAgLy8jZW5kcmVnaW9uXG59XG4iLCI8ZGl2IGlkPVwiZGlhbG9nLXRpdGxlXCI+XG4gICAgPGgyIG1hdC1kaWFsb2ctdGl0bGU+e3sgZGF0YS50aXRsZSB9fTwvaDI+XG5cbiAgICA8ZGl2PlxuICAgICAgICB7eyBzZWxlY3RlZE9wdGlvbnMubGVuZ3RoIH19IHNlbGVjdGVkXG4gICAgPC9kaXY+XG48L2Rpdj5cblxuPG1hdC1kaWFsb2ctY29udGVudD5cbiAgICA8ZGl2ICpuZ0lmPVwiIShkYXRhU291cmNlICYmIHBob3RvcylcIj5cbiAgICAgICAgPG1hdC1zcGlubmVyIFtkaWFtZXRlcl09XCI1MFwiPjwvbWF0LXNwaW5uZXI+XG4gICAgICAgIDxoMiBpZD1cInNwaW5uZXItbWVzc2FnZVwiPkdldHRpbmcgdXNlcnMgYW5kIHBob3Rvcy4uLjwvaDI+XG4gICAgPC9kaXY+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZGF0YVNvdXJjZSAmJiBwaG90b3NcIj5cbiAgICAgICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJmaWx0ZXJGb3JtXCI+XG4gICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgKm5nSWY9XCJkYXRhU291cmNlXCI+XG4gICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IHBsYWNlaG9sZGVyPVwiU2VhcmNoXCIgZm9ybUNvbnRyb2xOYW1lPVwiZmlsdGVyXCIgI2ZpbHRlcklucHV0PlxuXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cImZpbHRlckZvcm0udmFsdWUuZmlsdGVyXCIgbWF0U3VmZml4IG1hdC1pY29uLWJ1dHRvbiBhcmlhLWxhYmVsPVwiQ2xlYXJcIiAoY2xpY2spPVwiZmlsdGVyRm9ybS5nZXQoJ2ZpbHRlcicpPy5zZXRWYWx1ZSgnJylcIj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIGZvbnRJY29uPVwiY2xvc2VcIj48L21hdC1pY29uPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgPC9mb3JtPlxuXG4gICAgICAgIDxtYXQtc2VsZWN0aW9uLWxpc3QgW211bHRpcGxlXT1cImlzTXVsdGlNb2RlXCJcbiAgICAgICAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwibGlzdFNlbGVjdGlvbkNoYW5nZWQoJGV2ZW50Lm9wdGlvbnMpXCI+XG5cbiAgICAgICAgICAgIDxtYXQtbGlzdC1vcHRpb24gKm5nRm9yPVwibGV0IHVzZXIgb2YgZGF0YVNvdXJjZT8uZmlsdGVyZWREYXRhXCIgW3ZhbHVlXT1cInVzZXJcIiBbc2VsZWN0ZWRdPVwidXNlci5zZWxlY3RlZFwiXG4gICAgICAgICAgICAgICAgKHNlbGVjdGVkQ2hhbmdlKT1cIm9wdGlvblNlbGVjdGlvbkNoYW5nZWQob3B0aW9uKVwiICNvcHRpb24+XG5cbiAgICAgICAgICAgICAgICA8aW1nICpuZ0lmPVwiZ2V0UGhvdG8odXNlcilcIiBtYXRMaXN0QXZhdGFyIGFsdD1cIlwiIFtzcmNdPVwiZ2V0UGhvdG8odXNlcilcIj5cblxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbiAqbmdJZj1cIiFnZXRQaG90byh1c2VyKVwiIG1hdExpc3RBdmF0YXIgY2xhc3M9XCJuby1waG90b1wiXG4gICAgICAgICAgICAgICAgICAgIGZvbnRJY29uPVwiYWNjb3VudF9jaXJjbGVcIj5cbiAgICAgICAgICAgICAgICA8L21hdC1pY29uPlxuICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInVzZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKHVzZXIpXCIgY2xhc3M9XCJ1c2VyLW5hbWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IHVzZXIuZGlzcGxheU5hbWUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJkYXRhLnNob3dQaG9uZSAmJiB1c2VyLnRlbGVwaG9uZU51bWJlclwiPnt7IHVzZXIudGVsZXBob25lTnVtYmVyIH19PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgPGRpdj57eyB1c2VyLmRlcGFydG1lbnQgfX08L2Rpdj5cbiAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZVwiPnt7IHVzZXIudGl0bGUgfX08L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbWF0LWxpc3Qtb3B0aW9uPlxuICAgICAgICA8L21hdC1zZWxlY3Rpb24tbGlzdD5cbiAgICA8L25nLWNvbnRhaW5lcj5cbjwvbWF0LWRpYWxvZy1jb250ZW50PlxuXG48bWF0LWRpYWxvZy1hY3Rpb25zPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkYXRhU291cmNlICYmIHBob3Rvc1wiPlxuICAgICAgICA8bWF0LXNsaWRlLXRvZ2dsZSAqbmdJZj1cInNlbGVjdGVkT3B0aW9ucy5sZW5ndGhcIiAoY2hhbmdlKT1cImhpZGVVbnNlbGVjdGVkQ2hhbmdlZCgkZXZlbnQuY2hlY2tlZClcIj5cbiAgICAgICAgICAgIEhpZGUgVW5zZWxlY3RlZFxuICAgICAgICA8L21hdC1zbGlkZS10b2dnbGU+XG5cbiAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwic2VsZWN0QWxsKClcIlxuICAgICAgICAgICAgKm5nSWY9XCJpc011bHRpTW9kZVwiPlxuICAgICAgICAgICAgPG1hdC1pY29uIGZvbnRJY29uPVwic2VsZWN0X2FsbFwiPjwvbWF0LWljb24+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImhpZGUtbW9iaWxlXCI+U2VsZWN0IEFsbDwvc3Bhbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgXG4gICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgKGNsaWNrKT1cImRlc2VsZWN0QWxsKClcIlxuICAgICAgICAgICAgKm5nSWY9XCJpc011bHRpTW9kZSAmJiBzZWxlY3RlZE9wdGlvbnMubGVuZ3RoXCI+XG4gICAgICAgICAgICA8bWF0LWljb24gZm9udEljb249XCJjbGVhcl9hbGxcIj48L21hdC1pY29uPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJoaWRlLW1vYmlsZVwiPkNsZWFyIEFsbDwvc3Bhbj5cbiAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgPGJ1dHRvbiAqbmdJZj1cImlzTXVsdGlNb2RlIHx8ICFkYXRhLmNsb3NlV2hlblNlbGVjdGlvbk1hZGVcIiBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwiY2xvc2UoKVwiIG1hdFRvb2x0aXA9XCJBY2NlcHQgeW91ciBzZWxlY3Rpb25cIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFzZWxlY3RlZE9wdGlvbnMubGVuZ3RoXCI+XG4gICAgICAgICAgICA8bWF0LWljb24gZm9udEljb249XCJjaGVja1wiPjwvbWF0LWljb24+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImhpZGUtbW9iaWxlXCI+T2s8L3NwYW4+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cIndhcm5cIiBtYXQtZGlhbG9nLWNsb3NlIG1hdFRvb2x0aXA9XCJDbG9zZSB0aGlzIHdpbmRvd1wiPlxuICAgICAgICA8bWF0LWljb24gZm9udEljb249XCJjbG9zZVwiPjwvbWF0LWljb24+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiaGlkZS1tb2JpbGVcIj5DYW5jZWw8L3NwYW4+XG4gICAgPC9idXR0b24+XG48L21hdC1kaWFsb2ctYWN0aW9ucz4iXX0=
@@ -110,9 +110,9 @@ export class UserFormFieldComponent {
110
110
  p.title?.toLowerCase() === user.displayName.toLowerCase())?.encodedAbsUrl;
111
111
  }
112
112
  }
113
- UserFormFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: UserFormFieldComponent, deps: [{ token: i1.MatDialog }, { token: i2.ActiveDirectoryService }, { token: i3.SharePointService }], target: i0.ɵɵFactoryTarget.Component });
114
- UserFormFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.1", type: UserFormFieldComponent, selector: "cp-user-field", inputs: { placeholder: "placeholder", clickable: "clickable", userChooserData: "userChooserData" }, outputs: { usersSelected: "usersSelected", userUnSelected: "userUnSelected" }, ngImport: i0, template: "<!-- In Microsoft Edge, selectEmployee() never gets called if the input fields are disabled\n So... I'm dynamically setting the disabled property based on whether or not the browser is Edge.\n It's definitely a better experience if the field IS disabled.\n Otherwise, it's confusing - especially because Edge is SO SLOW to display the resulting dialog window.\n-->\n\n<mat-progress-bar *ngIf=\"!(users && photos)\" mode=\"indeterminate\"></mat-progress-bar>\n\n<div *ngIf=\"users && photos\" (click)=\"selectUser()\" [class.clickable]=\"clickable\">\n <mat-form-field *ngIf=\"!accountNames?.length\">\n <input matInput [disabled]=\"!isEdge\" [placeholder]=\"placeholder\">\n </mat-form-field>\n \n <div *ngIf=\"accountNames?.length\"\n [class.grid]=\"accountNames.length > 1\"\n [class.three]=\"accountNames.length > 2\"\n [class.four]=\"accountNames.length > 3\"\n [class.five]=\"accountNames.length > 4\">\n\n <div *ngFor=\"let accountName of accountNames; let i=index\" class=\"user\">\n <!--<img *ngIf=\"accountName && empUtils.getEmployee(accountName)\" alt=\"\" [src]=\"empUtils.getEmployee(accountName) | employeePhotoUrl:cacheService.photos\">-->\n <img *ngIf=\"getPhoto(accountName)\" matListAvatar alt=\"\" [src]=\"getPhoto(accountName)\">\n \n <mat-form-field>\n <input matInput [disabled]=\"!isEdge\" [placeholder]=\"i === 0 ? placeholder : ''\"\n [value]=\"accountName ? getUser(accountName)?.displayName : accountName\">\n\n <button matSuffix mat-icon-button aria-label=\"Clear\" (click)=\"$event.stopPropagation(); unSelectUser(accountName)\">\n <mat-icon fontIcon=\"close\"></mat-icon>\n </button>\n </mat-form-field>\n </div>\n </div>\n </div>", styles: [".user{display:grid;grid-template-columns:auto 1fr;grid-gap:.5em;align-items:center}.clickable,.clickable input{cursor:pointer!important}img{width:2em;height:2em;border-radius:100%}@media (min-width:801px){.grid{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:1em}.three{grid-template-columns:repeat(3,1fr)}.four{grid-template-columns:repeat(4,1fr)}.five{grid-template-columns:repeat(5,1fr)}::ng-deep .grid mat-form-field{width:15vw}}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i6.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i6.MatSuffix, selector: "[matSuffix]" }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i8.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: i9.MatListAvatarCssMatStyler, selector: "[mat-list-avatar], [matListAvatar]" }, { kind: "component", type: i10.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }] });
115
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: UserFormFieldComponent, decorators: [{
113
+ UserFormFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: UserFormFieldComponent, deps: [{ token: i1.MatDialog }, { token: i2.ActiveDirectoryService }, { token: i3.SharePointService }], target: i0.ɵɵFactoryTarget.Component });
114
+ UserFormFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.10", type: UserFormFieldComponent, selector: "cp-user-field", inputs: { placeholder: "placeholder", clickable: "clickable", userChooserData: "userChooserData" }, outputs: { usersSelected: "usersSelected", userUnSelected: "userUnSelected" }, ngImport: i0, template: "<!-- In Microsoft Edge, selectEmployee() never gets called if the input fields are disabled\n So... I'm dynamically setting the disabled property based on whether or not the browser is Edge.\n It's definitely a better experience if the field IS disabled.\n Otherwise, it's confusing - especially because Edge is SO SLOW to display the resulting dialog window.\n-->\n\n<mat-progress-bar *ngIf=\"!(users && photos)\" mode=\"indeterminate\"></mat-progress-bar>\n\n<div *ngIf=\"users && photos\" (click)=\"selectUser()\" [class.clickable]=\"clickable\">\n <mat-form-field *ngIf=\"!accountNames?.length\">\n <input matInput [disabled]=\"!isEdge\" [placeholder]=\"placeholder\">\n </mat-form-field>\n \n <div *ngIf=\"accountNames?.length\"\n [class.grid]=\"accountNames.length > 1\"\n [class.three]=\"accountNames.length > 2\"\n [class.four]=\"accountNames.length > 3\"\n [class.five]=\"accountNames.length > 4\">\n\n <div *ngFor=\"let accountName of accountNames; let i=index\" class=\"user\">\n <!--<img *ngIf=\"accountName && empUtils.getEmployee(accountName)\" alt=\"\" [src]=\"empUtils.getEmployee(accountName) | employeePhotoUrl:cacheService.photos\">-->\n <img *ngIf=\"getPhoto(accountName)\" matListAvatar alt=\"\" [src]=\"getPhoto(accountName)\">\n \n <mat-form-field>\n <input matInput [disabled]=\"!isEdge\" [placeholder]=\"i === 0 ? placeholder : ''\"\n [value]=\"accountName ? getUser(accountName)?.displayName : accountName\">\n\n <button matSuffix mat-icon-button aria-label=\"Clear\" (click)=\"$event.stopPropagation(); unSelectUser(accountName)\">\n <mat-icon fontIcon=\"close\"></mat-icon>\n </button>\n </mat-form-field>\n </div>\n </div>\n </div>", styles: [".user{display:grid;grid-template-columns:auto 1fr;grid-gap:.5em;align-items:center}.clickable,.clickable input{cursor:pointer!important}img{width:2em;height:2em;border-radius:100%}@media (min-width:801px){.grid{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:1em}.three{grid-template-columns:repeat(3,1fr)}.four{grid-template-columns:repeat(4,1fr)}.five{grid-template-columns:repeat(5,1fr)}::ng-deep .grid mat-form-field{width:15vw}}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i6.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i6.MatSuffix, selector: "[matSuffix]" }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i8.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: i9.MatListAvatarCssMatStyler, selector: "[mat-list-avatar], [matListAvatar]" }, { kind: "component", type: i10.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }] });
115
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: UserFormFieldComponent, decorators: [{
116
116
  type: Component,
117
117
  args: [{ selector: 'cp-user-field', template: "<!-- In Microsoft Edge, selectEmployee() never gets called if the input fields are disabled\n So... I'm dynamically setting the disabled property based on whether or not the browser is Edge.\n It's definitely a better experience if the field IS disabled.\n Otherwise, it's confusing - especially because Edge is SO SLOW to display the resulting dialog window.\n-->\n\n<mat-progress-bar *ngIf=\"!(users && photos)\" mode=\"indeterminate\"></mat-progress-bar>\n\n<div *ngIf=\"users && photos\" (click)=\"selectUser()\" [class.clickable]=\"clickable\">\n <mat-form-field *ngIf=\"!accountNames?.length\">\n <input matInput [disabled]=\"!isEdge\" [placeholder]=\"placeholder\">\n </mat-form-field>\n \n <div *ngIf=\"accountNames?.length\"\n [class.grid]=\"accountNames.length > 1\"\n [class.three]=\"accountNames.length > 2\"\n [class.four]=\"accountNames.length > 3\"\n [class.five]=\"accountNames.length > 4\">\n\n <div *ngFor=\"let accountName of accountNames; let i=index\" class=\"user\">\n <!--<img *ngIf=\"accountName && empUtils.getEmployee(accountName)\" alt=\"\" [src]=\"empUtils.getEmployee(accountName) | employeePhotoUrl:cacheService.photos\">-->\n <img *ngIf=\"getPhoto(accountName)\" matListAvatar alt=\"\" [src]=\"getPhoto(accountName)\">\n \n <mat-form-field>\n <input matInput [disabled]=\"!isEdge\" [placeholder]=\"i === 0 ? placeholder : ''\"\n [value]=\"accountName ? getUser(accountName)?.displayName : accountName\">\n\n <button matSuffix mat-icon-button aria-label=\"Clear\" (click)=\"$event.stopPropagation(); unSelectUser(accountName)\">\n <mat-icon fontIcon=\"close\"></mat-icon>\n </button>\n </mat-form-field>\n </div>\n </div>\n </div>", styles: [".user{display:grid;grid-template-columns:auto 1fr;grid-gap:.5em;align-items:center}.clickable,.clickable input{cursor:pointer!important}img{width:2em;height:2em;border-radius:100%}@media (min-width:801px){.grid{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:1em}.three{grid-template-columns:repeat(3,1fr)}.four{grid-template-columns:repeat(4,1fr)}.five{grid-template-columns:repeat(5,1fr)}::ng-deep .grid mat-form-field{width:15vw}}\n"] }]
118
118
  }], ctorParameters: function () { return [{ type: i1.MatDialog }, { type: i2.ActiveDirectoryService }, { type: i3.SharePointService }]; }, propDecorators: { usersSelected: [{
@@ -126,4 +126,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
126
126
  }], userChooserData: [{
127
127
  type: Input
128
128
  }] } });
129
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1mb3JtLWZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsZWF2ZWxhbmRwcmljZS9uZ3gtbGliL2FjdGl2ZS1kaXJlY3RvcnkvZ3VpL3NyYy9jb21wb25lbnRzL3VzZXItZm9ybS1maWVsZC91c2VyLWZvcm0tZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xlYXZlbGFuZHByaWNlL25neC1saWIvYWN0aXZlLWRpcmVjdG9yeS9ndWkvc3JjL2NvbXBvbmVudHMvdXNlci1mb3JtLWZpZWxkL3VzZXItZm9ybS1maWVsZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9FLE9BQU8sRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBS3BDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUVoRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQzs7Ozs7Ozs7Ozs7O0FBTzlFLE1BQU0sT0FBTyxzQkFBc0I7SUFtQmpDLFlBQVk7SUFFWixtQkFBbUI7SUFDbkIsWUFBb0IsTUFBaUIsRUFDakIsc0JBQThDLEVBQzlDLGlCQUFvQztRQUZwQyxXQUFNLEdBQU4sTUFBTSxDQUFXO1FBQ2pCLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBd0I7UUFDOUMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQXZCeEQsZ0JBQWdCO1FBQ04sa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBcUIsQ0FBQyxDQUFDLDZDQUE2QztRQUNwRyxtQkFBYyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDN0MsZ0JBQVcsR0FB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QUMxRCxFQUFFLGFBQWEsQ0FBQztJQUNuQixDQUFDOzttSEFqSFUsc0JBQXNCO3VHQUF0QixzQkFBc0Isd09DaEJuQyxveERBaUNROzJGRGpCSyxzQkFBc0I7a0JBTGxDLFNBQVM7K0JBQ0UsZUFBZTtxS0FNZixhQUFhO3NCQUF0QixNQUFNO2dCQUNHLGNBQWM7c0JBQXZCLE1BQU07Z0JBQ0UsV0FBVztzQkFBbkIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVHLGVBQWU7c0JBQXZCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgZm9ya0pvaW4sIG9mIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEFjdGl2ZURpcmVjdG9yeVNlcnZpY2UsIFVzZXIgfSBmcm9tICdAY2xlYXZlbGFuZHByaWNlL25neC1saWIvYWN0aXZlLWRpcmVjdG9yeSc7XG5pbXBvcnQgeyBQaG90b0l0ZW0sIFNoYXJlUG9pbnRTZXJ2aWNlIH0gZnJvbSAnQGNsZWF2ZWxhbmRwcmljZS9uZ3gtbGliL3NoYXJlcG9pbnQnO1xuXG5pbXBvcnQgeyBVc2VyQ2hvb3NlckRhdGEgfSBmcm9tICcuLi8uLi9tb2RlbC91c2VyLWNob29zZXItZGF0YSc7XG5cbmltcG9ydCB7IFVzZXJDaG9vc2VyQ29tcG9uZW50IH0gZnJvbSAnLi4vdXNlci1jaG9vc2VyL3VzZXItY2hvb3Nlci5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjcC11c2VyLWZpZWxkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3VzZXItZm9ybS1maWVsZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3VzZXItZm9ybS1maWVsZC5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgVXNlckZvcm1GaWVsZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIC8vI3JlZ2lvbiBGaWVsZHNcbiAgQE91dHB1dCgpIHVzZXJzU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZyB8IHN0cmluZ1tdPigpOyAvLyBzdHJpbmcgZm9yIFNpbmdsZSBtb2RlLCBzdHJpbmdbXSBmb3IgbXVsdGlcbiAgQE91dHB1dCgpIHVzZXJVblNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyID0gJ1NlbGVjdCBVc2VyKHMpJztcbiAgQElucHV0KCkgY2xpY2thYmxlID0gdHJ1ZTtcblxuICBASW5wdXQoKSB1c2VyQ2hvb3NlckRhdGEhOiBVc2VyQ2hvb3NlckRhdGE7XG5cbiAgYWNjb3VudE5hbWVzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIHVzZXJzOiBVc2VyW10gfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gIHBob3RvczogUGhvdG9JdGVtW10gfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiBQcm9wZXJ0aWVzXG4gIGdldCBpc0VkZ2UoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoJ0VkZ2UnKSA+IC0xO1xuICB9XG4gIC8vI2VuZHJlZ2lvblxuICBcbiAgLy8jcmVnaW9uIExpZmVjeWNsZVxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGRpYWxvZzogTWF0RGlhbG9nLFxuICAgICAgICAgICAgICBwcml2YXRlIGFjdGl2ZURpcmVjdG9yeVNlcnZpY2U6IEFjdGl2ZURpcmVjdG9yeVNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgc2hhcmVQb2ludFNlcnZpY2U6IFNoYXJlUG9pbnRTZXJ2aWNlKSB7IH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnVzZXJDaG9vc2VyRGF0YSA9IHtcbiAgICAgIC4uLm5ldyBVc2VyQ2hvb3NlckRhdGEoKSxcbiAgICAgIC4uLnRoaXMudXNlckNob29zZXJEYXRhXG4gICAgfVxuXG4gICAgLy8gSWYgdXNlcnMgaGF2ZSBiZWVuIHByZS1zZWxlY3RlZCBpbiB0aGUgY29uZmlnLCBzdG9yZSB0aG9zZSBpbiBhY2NvdW50TmFtZXMsIHdoaWNoIGRyaXZlcyB0aGUgVUkgb2YgdGhpcyBjb21wb25lbnRcbiAgICB0aGlzLmFjY291bnROYW1lcyA9IHRoaXMudXNlckNob29zZXJEYXRhLnByZVNlbGVjdGlvbnMuYWNjb3VudE5hbWVzO1xuXG4gICAgdGhpcy5nZXREYXRhKCk7XG4gIH1cbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8jcmVnaW9uIEV2ZW50c1xuICBzZWxlY3RVc2VyKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5jbGlja2FibGUpIHsgcmV0dXJuOyB9XG5cbiAgICBjb25zdCBkYXRhOiBVc2VyQ2hvb3NlckRhdGEgPSB7XG4gICAgICAuLi50aGlzLnVzZXJDaG9vc2VyRGF0YSxcblxuICAgICAgdXNlcnM6IHRoaXMudXNlcnMsXG4gICAgICBwaG90b3M6IHRoaXMucGhvdG9zLFxuICAgIH07XG5cbiAgICB0aGlzLmRpYWxvZy5vcGVuKFVzZXJDaG9vc2VyQ29tcG9uZW50LCB7XG4gICAgICBkYXRhOiBkYXRhXG4gICAgfSlcbiAgICAuYWZ0ZXJDbG9zZWQoKVxuICAgIC5zdWJzY3JpYmUoKHNlbGVjdGVkOiBzdHJpbmcgfCBzdHJpbmdbXSkgPT4ge1xuICAgICAgaWYgKCFzZWxlY3RlZCkgeyByZXR1cm47IH1cbiAgICAgIFxuICAgICAgdGhpcy5hY2NvdW50TmFtZXMgPSBBcnJheS5pc0FycmF5KHNlbGVjdGVkKSA/XG4gICAgICAgIHNlbGVjdGVkIDpcbiAgICAgICAgWyBzZWxlY3RlZCBdO1xuXG4gICAgICAvLyBPdmVyd3JpdGUgd2hhdCBtYXkgaGF2ZSBiZWVuIHBhc3NlZCBpbiwgZm9yIHN1YnNlcXVlbnQgbGF1bmNoZXMgb2YgVXNlckNob29zZXJDb21wb25lbnQgLSBvdGhlcndpc2UgaXQganVzdCBrZWVwcyBnZXR0aW5nIGZlZCBzdGFsZSBkYXRhXG4gICAgICB0aGlzLnVzZXJDaG9vc2VyRGF0YS5wcmVTZWxlY3Rpb25zLmFjY291bnROYW1lcyA9IHRoaXMuYWNjb3VudE5hbWVzO1xuXG4gICAgICB0aGlzLnVzZXJzU2VsZWN0ZWQuZW1pdChzZWxlY3RlZCk7XG4gICAgfSk7XG4gIH1cblxuICB1blNlbGVjdFVzZXIoYWNjb3VudE5hbWU6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5hY2NvdW50TmFtZXMuZmluZEluZGV4KGEgPT4gYSA9PT0gYWNjb3VudE5hbWUpO1xuICAgIHRoaXMuYWNjb3VudE5hbWVzLnNwbGljZShpbmRleCwgMSk7XG5cbiAgICB0aGlzLnVzZXJDaG9vc2VyRGF0YS5wcmVTZWxlY3Rpb25zLmFjY291bnROYW1lcyA9IHRoaXMuYWNjb3VudE5hbWVzO1xuXG4gICAgdGhpcy51c2VyVW5TZWxlY3RlZC5lbWl0KGFjY291bnROYW1lKTtcbiAgfVxuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gVXRpbGl0aWVzXG4gIHByaXZhdGUgZ2V0RGF0YSgpOiB2b2lkIHtcbiAgICBmb3JrSm9pbihbXG4gICAgICB0aGlzLnVzZXJDaG9vc2VyRGF0YSEudXNlcnMgP1xuICAgICAgICAvLyBVc2VycyB3ZXJlIHBhc3NlZCBpblxuICAgICAgICBvZih0aGlzLnVzZXJDaG9vc2VyRGF0YSEudXNlcnMpIDpcbiAgICAgICAgLy8gVXNlcnMgbmVlZCB0byBiZSByZXRyaWV2ZWRcbiAgICAgICAgdGhpcy5hY3RpdmVEaXJlY3RvcnlTZXJ2aWNlLmdldFVzZXJzKGZhbHNlLCB0aGlzLnVzZXJDaG9vc2VyRGF0YSEuaW5jbHVkZURpc2FibGVkVXNlcnMsIHRoaXMudXNlckNob29zZXJEYXRhIS5wYXJlbnRPdSksXG5cbiAgICAgIHRoaXMudXNlckNob29zZXJEYXRhIS5waG90b3MgP1xuICAgICAgICAvLyBQaG90b3Mgd2VyZSBwYXNzZWQgaW5cbiAgICAgICAgb2YodGhpcy51c2VyQ2hvb3NlckRhdGEhLnBob3RvcykgOlxuICAgICAgICAvLyBQaG90b3MgbmVlZCB0byBiZSByZXRyaWV2ZWRcbiAgICAgICAgdGhpcy5zaGFyZVBvaW50U2VydmljZS5nZXRQaG90b3MoKVxuICAgIF0pXG4gICAgICAuc3Vic2NyaWJlKChbdXNlcnMsIHBob3Rvc10pID0+IHtcbiAgICAgICAgdGhpcy51c2VycyA9IHVzZXJzO1xuICAgICAgICB0aGlzLnBob3RvcyA9IHBob3RvcztcbiAgICAgIH0pO1xuICB9XG5cbiAgZ2V0VXNlcihhY2NvdW50TmFtZTogc3RyaW5nKTogVXNlciB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMudXNlcnM/LmZpbmQodSA9PiB1LnNBTUFjY291bnROYW1lLnRvTG93ZXJDYXNlKCkgPT09IGFjY291bnROYW1lLnRvTG93ZXJDYXNlKCkpO1xuICB9XG5cbiAgZ2V0UGhvdG8oYWNjb3VudE5hbWU6IHN0cmluZyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgdXNlciA9IHRoaXMuZ2V0VXNlcihhY2NvdW50TmFtZSk7XG4gICAgaWYgKCF1c2VyKSB7IHJldHVybiB1bmRlZmluZWQ7IH1cblxuICAgIHJldHVybiB0aGlzLnBob3Rvcz8uZmluZChwID0+XG4gICAgICAocC5lbXBsb3llZU51bWJlciAmJiBwLmVtcGxveWVlTnVtYmVyLnRvU3RyaW5nKCkgPT09IHVzZXIuZW1wbG95ZWVOdW1iZXIpIHx8XG4gICAgICBwLmFjY291bnROYW1lPy50b0xvd2VyQ2FzZSgpID09PSB1c2VyLnNBTUFjY291bnROYW1lLnRvTG93ZXJDYXNlKCkgfHxcbiAgICAgIHAuZGlzcGxheU5hbWU/LnRvTG93ZXJDYXNlKCkgPT09IHVzZXIuZGlzcGxheU5hbWUudG9Mb3dlckNhc2UoKSB8fFxuICAgICAgcC50aXRsZT8udG9Mb3dlckNhc2UoKSA9PT0gdXNlci5kaXNwbGF5TmFtZS50b0xvd2VyQ2FzZSgpXG4gICAgKT8uZW5jb2RlZEFic1VybDtcbiAgfVxuICAvLyNlbmRyZWdpb25cbn1cbiIsIjwhLS0gSW4gTWljcm9zb2Z0IEVkZ2UsIHNlbGVjdEVtcGxveWVlKCkgbmV2ZXIgZ2V0cyBjYWxsZWQgaWYgdGhlIGlucHV0IGZpZWxkcyBhcmUgZGlzYWJsZWRcbiAgU28uLi4gSSdtIGR5bmFtaWNhbGx5IHNldHRpbmcgdGhlIGRpc2FibGVkIHByb3BlcnR5IGJhc2VkIG9uIHdoZXRoZXIgb3Igbm90IHRoZSBicm93c2VyIGlzIEVkZ2UuXG4gIEl0J3MgZGVmaW5pdGVseSBhIGJldHRlciBleHBlcmllbmNlIGlmIHRoZSBmaWVsZCBJUyBkaXNhYmxlZC5cbiAgT3RoZXJ3aXNlLCBpdCdzIGNvbmZ1c2luZyAtIGVzcGVjaWFsbHkgYmVjYXVzZSBFZGdlIGlzIFNPIFNMT1cgdG8gZGlzcGxheSB0aGUgcmVzdWx0aW5nIGRpYWxvZyB3aW5kb3cuXG4tLT5cblxuPG1hdC1wcm9ncmVzcy1iYXIgKm5nSWY9XCIhKHVzZXJzICYmIHBob3RvcylcIiBtb2RlPVwiaW5kZXRlcm1pbmF0ZVwiPjwvbWF0LXByb2dyZXNzLWJhcj5cblxuPGRpdiAqbmdJZj1cInVzZXJzICYmIHBob3Rvc1wiIChjbGljayk9XCJzZWxlY3RVc2VyKClcIiBbY2xhc3MuY2xpY2thYmxlXT1cImNsaWNrYWJsZVwiPlxuICAgIDxtYXQtZm9ybS1maWVsZCAqbmdJZj1cIiFhY2NvdW50TmFtZXM/Lmxlbmd0aFwiPlxuICAgICAgPGlucHV0IG1hdElucHV0IFtkaXNhYmxlZF09XCIhaXNFZGdlXCIgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCI+XG4gICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgXG4gICAgPGRpdiAqbmdJZj1cImFjY291bnROYW1lcz8ubGVuZ3RoXCJcbiAgICAgIFtjbGFzcy5ncmlkXT1cImFjY291bnROYW1lcy5sZW5ndGggPiAxXCJcbiAgICAgIFtjbGFzcy50aHJlZV09XCJhY2NvdW50TmFtZXMubGVuZ3RoID4gMlwiXG4gICAgICBbY2xhc3MuZm91cl09XCJhY2NvdW50TmFtZXMubGVuZ3RoID4gM1wiXG4gICAgICBbY2xhc3MuZml2ZV09XCJhY2NvdW50TmFtZXMubGVuZ3RoID4gNFwiPlxuXG4gICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBhY2NvdW50TmFtZSBvZiBhY2NvdW50TmFtZXM7IGxldCBpPWluZGV4XCIgY2xhc3M9XCJ1c2VyXCI+XG4gICAgICAgIDwhLS08aW1nICpuZ0lmPVwiYWNjb3VudE5hbWUgJiYgZW1wVXRpbHMuZ2V0RW1wbG95ZWUoYWNjb3VudE5hbWUpXCIgYWx0PVwiXCIgW3NyY109XCJlbXBVdGlscy5nZXRFbXBsb3llZShhY2NvdW50TmFtZSkgfCBlbXBsb3llZVBob3RvVXJsOmNhY2hlU2VydmljZS5waG90b3NcIj4tLT5cbiAgICAgICAgPGltZyAqbmdJZj1cImdldFBob3RvKGFjY291bnROYW1lKVwiIG1hdExpc3RBdmF0YXIgYWx0PVwiXCIgW3NyY109XCJnZXRQaG90byhhY2NvdW50TmFtZSlcIj5cbiAgXG4gICAgICAgIDxtYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBbZGlzYWJsZWRdPVwiIWlzRWRnZVwiIFtwbGFjZWhvbGRlcl09XCJpID09PSAwID8gcGxhY2Vob2xkZXIgOiAnJ1wiXG4gICAgICAgICAgICAgICAgW3ZhbHVlXT1cImFjY291bnROYW1lID8gZ2V0VXNlcihhY2NvdW50TmFtZSk/LmRpc3BsYXlOYW1lIDogYWNjb3VudE5hbWVcIj5cblxuICAgICAgICAgICAgICA8YnV0dG9uIG1hdFN1ZmZpeCBtYXQtaWNvbi1idXR0b24gYXJpYS1sYWJlbD1cIkNsZWFyXCIgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKTsgdW5TZWxlY3RVc2VyKGFjY291bnROYW1lKVwiPlxuICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIGZvbnRJY29uPVwiY2xvc2VcIj48L21hdC1pY29uPlxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj4iXX0=
129
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1mb3JtLWZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsZWF2ZWxhbmRwcmljZS9uZ3gtbGliL2FjdGl2ZS1kaXJlY3RvcnkvZ3VpL3NyYy9jb21wb25lbnRzL3VzZXItZm9ybS1maWVsZC91c2VyLWZvcm0tZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xlYXZlbGFuZHByaWNlL25neC1saWIvYWN0aXZlLWRpcmVjdG9yeS9ndWkvc3JjL2NvbXBvbmVudHMvdXNlci1mb3JtLWZpZWxkL3VzZXItZm9ybS1maWVsZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9FLE9BQU8sRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBS3BDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUVoRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQzs7Ozs7Ozs7Ozs7O0FBTzlFLE1BQU0sT0FBTyxzQkFBc0I7SUFtQmpDLFlBQVk7SUFFWixtQkFBbUI7SUFDbkIsWUFBb0IsTUFBaUIsRUFDakIsc0JBQThDLEVBQzlDLGlCQUFvQztRQUZwQyxXQUFNLEdBQU4sTUFBTSxDQUFXO1FBQ2pCLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBd0I7UUFDOUMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQXZCeEQsZ0JBQWdCO1FBQ04sa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBcUIsQ0FBQyxDQUFDLDZDQUE2QztRQUNwRyxtQkFBYyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDN0MsZ0JBQVcsR0FB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QUMxRCxFQUFFLGFBQWEsQ0FBQztJQUNuQixDQUFDOztvSEFqSFUsc0JBQXNCO3dHQUF0QixzQkFBc0Isd09DaEJuQyxveERBaUNROzRGRGpCSyxzQkFBc0I7a0JBTGxDLFNBQVM7K0JBQ0UsZUFBZTtxS0FNZixhQUFhO3NCQUF0QixNQUFNO2dCQUNHLGNBQWM7c0JBQXZCLE1BQU07Z0JBQ0UsV0FBVztzQkFBbkIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVHLGVBQWU7c0JBQXZCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgZm9ya0pvaW4sIG9mIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEFjdGl2ZURpcmVjdG9yeVNlcnZpY2UsIFVzZXIgfSBmcm9tICdAY2xlYXZlbGFuZHByaWNlL25neC1saWIvYWN0aXZlLWRpcmVjdG9yeSc7XG5pbXBvcnQgeyBQaG90b0l0ZW0sIFNoYXJlUG9pbnRTZXJ2aWNlIH0gZnJvbSAnQGNsZWF2ZWxhbmRwcmljZS9uZ3gtbGliL3NoYXJlcG9pbnQnO1xuXG5pbXBvcnQgeyBVc2VyQ2hvb3NlckRhdGEgfSBmcm9tICcuLi8uLi9tb2RlbC91c2VyLWNob29zZXItZGF0YSc7XG5cbmltcG9ydCB7IFVzZXJDaG9vc2VyQ29tcG9uZW50IH0gZnJvbSAnLi4vdXNlci1jaG9vc2VyL3VzZXItY2hvb3Nlci5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjcC11c2VyLWZpZWxkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3VzZXItZm9ybS1maWVsZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3VzZXItZm9ybS1maWVsZC5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgVXNlckZvcm1GaWVsZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIC8vI3JlZ2lvbiBGaWVsZHNcbiAgQE91dHB1dCgpIHVzZXJzU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZyB8IHN0cmluZ1tdPigpOyAvLyBzdHJpbmcgZm9yIFNpbmdsZSBtb2RlLCBzdHJpbmdbXSBmb3IgbXVsdGlcbiAgQE91dHB1dCgpIHVzZXJVblNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyID0gJ1NlbGVjdCBVc2VyKHMpJztcbiAgQElucHV0KCkgY2xpY2thYmxlID0gdHJ1ZTtcblxuICBASW5wdXQoKSB1c2VyQ2hvb3NlckRhdGEhOiBVc2VyQ2hvb3NlckRhdGE7XG5cbiAgYWNjb3VudE5hbWVzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIHVzZXJzOiBVc2VyW10gfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gIHBob3RvczogUGhvdG9JdGVtW10gfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiBQcm9wZXJ0aWVzXG4gIGdldCBpc0VkZ2UoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoJ0VkZ2UnKSA+IC0xO1xuICB9XG4gIC8vI2VuZHJlZ2lvblxuICBcbiAgLy8jcmVnaW9uIExpZmVjeWNsZVxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGRpYWxvZzogTWF0RGlhbG9nLFxuICAgICAgICAgICAgICBwcml2YXRlIGFjdGl2ZURpcmVjdG9yeVNlcnZpY2U6IEFjdGl2ZURpcmVjdG9yeVNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgc2hhcmVQb2ludFNlcnZpY2U6IFNoYXJlUG9pbnRTZXJ2aWNlKSB7IH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnVzZXJDaG9vc2VyRGF0YSA9IHtcbiAgICAgIC4uLm5ldyBVc2VyQ2hvb3NlckRhdGEoKSxcbiAgICAgIC4uLnRoaXMudXNlckNob29zZXJEYXRhXG4gICAgfVxuXG4gICAgLy8gSWYgdXNlcnMgaGF2ZSBiZWVuIHByZS1zZWxlY3RlZCBpbiB0aGUgY29uZmlnLCBzdG9yZSB0aG9zZSBpbiBhY2NvdW50TmFtZXMsIHdoaWNoIGRyaXZlcyB0aGUgVUkgb2YgdGhpcyBjb21wb25lbnRcbiAgICB0aGlzLmFjY291bnROYW1lcyA9IHRoaXMudXNlckNob29zZXJEYXRhLnByZVNlbGVjdGlvbnMuYWNjb3VudE5hbWVzO1xuXG4gICAgdGhpcy5nZXREYXRhKCk7XG4gIH1cbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8jcmVnaW9uIEV2ZW50c1xuICBzZWxlY3RVc2VyKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5jbGlja2FibGUpIHsgcmV0dXJuOyB9XG5cbiAgICBjb25zdCBkYXRhOiBVc2VyQ2hvb3NlckRhdGEgPSB7XG4gICAgICAuLi50aGlzLnVzZXJDaG9vc2VyRGF0YSxcblxuICAgICAgdXNlcnM6IHRoaXMudXNlcnMsXG4gICAgICBwaG90b3M6IHRoaXMucGhvdG9zLFxuICAgIH07XG5cbiAgICB0aGlzLmRpYWxvZy5vcGVuKFVzZXJDaG9vc2VyQ29tcG9uZW50LCB7XG4gICAgICBkYXRhOiBkYXRhXG4gICAgfSlcbiAgICAuYWZ0ZXJDbG9zZWQoKVxuICAgIC5zdWJzY3JpYmUoKHNlbGVjdGVkOiBzdHJpbmcgfCBzdHJpbmdbXSkgPT4ge1xuICAgICAgaWYgKCFzZWxlY3RlZCkgeyByZXR1cm47IH1cbiAgICAgIFxuICAgICAgdGhpcy5hY2NvdW50TmFtZXMgPSBBcnJheS5pc0FycmF5KHNlbGVjdGVkKSA/XG4gICAgICAgIHNlbGVjdGVkIDpcbiAgICAgICAgWyBzZWxlY3RlZCBdO1xuXG4gICAgICAvLyBPdmVyd3JpdGUgd2hhdCBtYXkgaGF2ZSBiZWVuIHBhc3NlZCBpbiwgZm9yIHN1YnNlcXVlbnQgbGF1bmNoZXMgb2YgVXNlckNob29zZXJDb21wb25lbnQgLSBvdGhlcndpc2UgaXQganVzdCBrZWVwcyBnZXR0aW5nIGZlZCBzdGFsZSBkYXRhXG4gICAgICB0aGlzLnVzZXJDaG9vc2VyRGF0YS5wcmVTZWxlY3Rpb25zLmFjY291bnROYW1lcyA9IHRoaXMuYWNjb3VudE5hbWVzO1xuXG4gICAgICB0aGlzLnVzZXJzU2VsZWN0ZWQuZW1pdChzZWxlY3RlZCk7XG4gICAgfSk7XG4gIH1cblxuICB1blNlbGVjdFVzZXIoYWNjb3VudE5hbWU6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5hY2NvdW50TmFtZXMuZmluZEluZGV4KGEgPT4gYSA9PT0gYWNjb3VudE5hbWUpO1xuICAgIHRoaXMuYWNjb3VudE5hbWVzLnNwbGljZShpbmRleCwgMSk7XG5cbiAgICB0aGlzLnVzZXJDaG9vc2VyRGF0YS5wcmVTZWxlY3Rpb25zLmFjY291bnROYW1lcyA9IHRoaXMuYWNjb3VudE5hbWVzO1xuXG4gICAgdGhpcy51c2VyVW5TZWxlY3RlZC5lbWl0KGFjY291bnROYW1lKTtcbiAgfVxuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gVXRpbGl0aWVzXG4gIHByaXZhdGUgZ2V0RGF0YSgpOiB2b2lkIHtcbiAgICBmb3JrSm9pbihbXG4gICAgICB0aGlzLnVzZXJDaG9vc2VyRGF0YSEudXNlcnMgP1xuICAgICAgICAvLyBVc2VycyB3ZXJlIHBhc3NlZCBpblxuICAgICAgICBvZih0aGlzLnVzZXJDaG9vc2VyRGF0YSEudXNlcnMpIDpcbiAgICAgICAgLy8gVXNlcnMgbmVlZCB0byBiZSByZXRyaWV2ZWRcbiAgICAgICAgdGhpcy5hY3RpdmVEaXJlY3RvcnlTZXJ2aWNlLmdldFVzZXJzKGZhbHNlLCB0aGlzLnVzZXJDaG9vc2VyRGF0YSEuaW5jbHVkZURpc2FibGVkVXNlcnMsIHRoaXMudXNlckNob29zZXJEYXRhIS5wYXJlbnRPdSksXG5cbiAgICAgIHRoaXMudXNlckNob29zZXJEYXRhIS5waG90b3MgP1xuICAgICAgICAvLyBQaG90b3Mgd2VyZSBwYXNzZWQgaW5cbiAgICAgICAgb2YodGhpcy51c2VyQ2hvb3NlckRhdGEhLnBob3RvcykgOlxuICAgICAgICAvLyBQaG90b3MgbmVlZCB0byBiZSByZXRyaWV2ZWRcbiAgICAgICAgdGhpcy5zaGFyZVBvaW50U2VydmljZS5nZXRQaG90b3MoKVxuICAgIF0pXG4gICAgICAuc3Vic2NyaWJlKChbdXNlcnMsIHBob3Rvc10pID0+IHtcbiAgICAgICAgdGhpcy51c2VycyA9IHVzZXJzO1xuICAgICAgICB0aGlzLnBob3RvcyA9IHBob3RvcztcbiAgICAgIH0pO1xuICB9XG5cbiAgZ2V0VXNlcihhY2NvdW50TmFtZTogc3RyaW5nKTogVXNlciB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMudXNlcnM/LmZpbmQodSA9PiB1LnNBTUFjY291bnROYW1lLnRvTG93ZXJDYXNlKCkgPT09IGFjY291bnROYW1lLnRvTG93ZXJDYXNlKCkpO1xuICB9XG5cbiAgZ2V0UGhvdG8oYWNjb3VudE5hbWU6IHN0cmluZyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgdXNlciA9IHRoaXMuZ2V0VXNlcihhY2NvdW50TmFtZSk7XG4gICAgaWYgKCF1c2VyKSB7IHJldHVybiB1bmRlZmluZWQ7IH1cblxuICAgIHJldHVybiB0aGlzLnBob3Rvcz8uZmluZChwID0+XG4gICAgICAocC5lbXBsb3llZU51bWJlciAmJiBwLmVtcGxveWVlTnVtYmVyLnRvU3RyaW5nKCkgPT09IHVzZXIuZW1wbG95ZWVOdW1iZXIpIHx8XG4gICAgICBwLmFjY291bnROYW1lPy50b0xvd2VyQ2FzZSgpID09PSB1c2VyLnNBTUFjY291bnROYW1lLnRvTG93ZXJDYXNlKCkgfHxcbiAgICAgIHAuZGlzcGxheU5hbWU/LnRvTG93ZXJDYXNlKCkgPT09IHVzZXIuZGlzcGxheU5hbWUudG9Mb3dlckNhc2UoKSB8fFxuICAgICAgcC50aXRsZT8udG9Mb3dlckNhc2UoKSA9PT0gdXNlci5kaXNwbGF5TmFtZS50b0xvd2VyQ2FzZSgpXG4gICAgKT8uZW5jb2RlZEFic1VybDtcbiAgfVxuICAvLyNlbmRyZWdpb25cbn1cbiIsIjwhLS0gSW4gTWljcm9zb2Z0IEVkZ2UsIHNlbGVjdEVtcGxveWVlKCkgbmV2ZXIgZ2V0cyBjYWxsZWQgaWYgdGhlIGlucHV0IGZpZWxkcyBhcmUgZGlzYWJsZWRcbiAgU28uLi4gSSdtIGR5bmFtaWNhbGx5IHNldHRpbmcgdGhlIGRpc2FibGVkIHByb3BlcnR5IGJhc2VkIG9uIHdoZXRoZXIgb3Igbm90IHRoZSBicm93c2VyIGlzIEVkZ2UuXG4gIEl0J3MgZGVmaW5pdGVseSBhIGJldHRlciBleHBlcmllbmNlIGlmIHRoZSBmaWVsZCBJUyBkaXNhYmxlZC5cbiAgT3RoZXJ3aXNlLCBpdCdzIGNvbmZ1c2luZyAtIGVzcGVjaWFsbHkgYmVjYXVzZSBFZGdlIGlzIFNPIFNMT1cgdG8gZGlzcGxheSB0aGUgcmVzdWx0aW5nIGRpYWxvZyB3aW5kb3cuXG4tLT5cblxuPG1hdC1wcm9ncmVzcy1iYXIgKm5nSWY9XCIhKHVzZXJzICYmIHBob3RvcylcIiBtb2RlPVwiaW5kZXRlcm1pbmF0ZVwiPjwvbWF0LXByb2dyZXNzLWJhcj5cblxuPGRpdiAqbmdJZj1cInVzZXJzICYmIHBob3Rvc1wiIChjbGljayk9XCJzZWxlY3RVc2VyKClcIiBbY2xhc3MuY2xpY2thYmxlXT1cImNsaWNrYWJsZVwiPlxuICAgIDxtYXQtZm9ybS1maWVsZCAqbmdJZj1cIiFhY2NvdW50TmFtZXM/Lmxlbmd0aFwiPlxuICAgICAgPGlucHV0IG1hdElucHV0IFtkaXNhYmxlZF09XCIhaXNFZGdlXCIgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCI+XG4gICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgXG4gICAgPGRpdiAqbmdJZj1cImFjY291bnROYW1lcz8ubGVuZ3RoXCJcbiAgICAgIFtjbGFzcy5ncmlkXT1cImFjY291bnROYW1lcy5sZW5ndGggPiAxXCJcbiAgICAgIFtjbGFzcy50aHJlZV09XCJhY2NvdW50TmFtZXMubGVuZ3RoID4gMlwiXG4gICAgICBbY2xhc3MuZm91cl09XCJhY2NvdW50TmFtZXMubGVuZ3RoID4gM1wiXG4gICAgICBbY2xhc3MuZml2ZV09XCJhY2NvdW50TmFtZXMubGVuZ3RoID4gNFwiPlxuXG4gICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBhY2NvdW50TmFtZSBvZiBhY2NvdW50TmFtZXM7IGxldCBpPWluZGV4XCIgY2xhc3M9XCJ1c2VyXCI+XG4gICAgICAgIDwhLS08aW1nICpuZ0lmPVwiYWNjb3VudE5hbWUgJiYgZW1wVXRpbHMuZ2V0RW1wbG95ZWUoYWNjb3VudE5hbWUpXCIgYWx0PVwiXCIgW3NyY109XCJlbXBVdGlscy5nZXRFbXBsb3llZShhY2NvdW50TmFtZSkgfCBlbXBsb3llZVBob3RvVXJsOmNhY2hlU2VydmljZS5waG90b3NcIj4tLT5cbiAgICAgICAgPGltZyAqbmdJZj1cImdldFBob3RvKGFjY291bnROYW1lKVwiIG1hdExpc3RBdmF0YXIgYWx0PVwiXCIgW3NyY109XCJnZXRQaG90byhhY2NvdW50TmFtZSlcIj5cbiAgXG4gICAgICAgIDxtYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBbZGlzYWJsZWRdPVwiIWlzRWRnZVwiIFtwbGFjZWhvbGRlcl09XCJpID09PSAwID8gcGxhY2Vob2xkZXIgOiAnJ1wiXG4gICAgICAgICAgICAgICAgW3ZhbHVlXT1cImFjY291bnROYW1lID8gZ2V0VXNlcihhY2NvdW50TmFtZSk/LmRpc3BsYXlOYW1lIDogYWNjb3VudE5hbWVcIj5cblxuICAgICAgICAgICAgICA8YnV0dG9uIG1hdFN1ZmZpeCBtYXQtaWNvbi1idXR0b24gYXJpYS1sYWJlbD1cIkNsZWFyXCIgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKTsgdW5TZWxlY3RVc2VyKGFjY291bnROYW1lKVwiPlxuICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIGZvbnRJY29uPVwiY2xvc2VcIj48L21hdC1pY29uPlxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj4iXX0=
@@ -17,8 +17,8 @@ import { UserFormFieldComponent } from './components/user-form-field/user-form-f
17
17
  import * as i0 from "@angular/core";
18
18
  export class GuiModule {
19
19
  }
20
- GuiModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: GuiModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
21
- GuiModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.1", ngImport: i0, type: GuiModule, declarations: [UserChooserComponent,
20
+ GuiModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: GuiModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
21
+ GuiModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.10", ngImport: i0, type: GuiModule, declarations: [UserChooserComponent,
22
22
  UserFormFieldComponent], imports: [CommonModule,
23
23
  ReactiveFormsModule,
24
24
  MatButtonModule,
@@ -33,7 +33,7 @@ GuiModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.
33
33
  MatTableModule,
34
34
  MatTooltipModule], exports: [UserChooserComponent,
35
35
  UserFormFieldComponent] });
36
- GuiModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: GuiModule, imports: [CommonModule,
36
+ GuiModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: GuiModule, imports: [CommonModule,
37
37
  ReactiveFormsModule,
38
38
  MatButtonModule,
39
39
  MatDialogModule,
@@ -46,7 +46,7 @@ GuiModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.
46
46
  MatSlideToggleModule,
47
47
  MatTableModule,
48
48
  MatTooltipModule] });
49
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: GuiModule, decorators: [{
49
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: GuiModule, decorators: [{
50
50
  type: NgModule,
51
51
  args: [{
52
52
  declarations: [
@@ -74,4 +74,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
74
74
  ]
75
75
  }]
76
76
  }] });
77
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3VpLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsZWF2ZWxhbmRwcmljZS9uZ3gtbGliL2FjdGl2ZS1kaXJlY3RvcnkvZ3VpL3NyYy9ndWkubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdEUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDOUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRTdELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHdEQUF3RCxDQUFDOztBQTRCaEcsTUFBTSxPQUFPLFNBQVM7O3NHQUFULFNBQVM7dUdBQVQsU0FBUyxpQkF4QmxCLG9CQUFvQjtRQUNwQixzQkFBc0IsYUFHdEIsWUFBWTtRQUNaLG1CQUFtQjtRQUVuQixlQUFlO1FBQ2YsZUFBZTtRQUNmLGtCQUFrQjtRQUNsQixhQUFhO1FBQ2IsY0FBYztRQUNkLGFBQWE7UUFDYixvQkFBb0I7UUFDcEIsd0JBQXdCO1FBQ3hCLG9CQUFvQjtRQUNwQixjQUFjO1FBQ2QsZ0JBQWdCLGFBR2hCLG9CQUFvQjtRQUNwQixzQkFBc0I7dUdBR2IsU0FBUyxZQXBCbEIsWUFBWTtRQUNaLG1CQUFtQjtRQUVuQixlQUFlO1FBQ2YsZUFBZTtRQUNmLGtCQUFrQjtRQUNsQixhQUFhO1FBQ2IsY0FBYztRQUNkLGFBQWE7UUFDYixvQkFBb0I7UUFDcEIsd0JBQXdCO1FBQ3hCLG9CQUFvQjtRQUNwQixjQUFjO1FBQ2QsZ0JBQWdCOzJGQU9QLFNBQVM7a0JBMUJyQixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRTt3QkFDWixvQkFBb0I7d0JBQ3BCLHNCQUFzQjtxQkFDdkI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osbUJBQW1CO3dCQUVuQixlQUFlO3dCQUNmLGVBQWU7d0JBQ2Ysa0JBQWtCO3dCQUNsQixhQUFhO3dCQUNiLGNBQWM7d0JBQ2QsYUFBYTt3QkFDYixvQkFBb0I7d0JBQ3BCLHdCQUF3Qjt3QkFDeEIsb0JBQW9CO3dCQUNwQixjQUFjO3dCQUNkLGdCQUFnQjtxQkFDakI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLG9CQUFvQjt3QkFDcEIsc0JBQXNCO3FCQUN2QjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdERpYWxvZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuaW1wb3J0IHsgTWF0TGlzdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xpc3QnO1xuaW1wb3J0IHsgTWF0UHJvZ3Jlc3NCYXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1iYXInO1xuaW1wb3J0IHsgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3Mtc3Bpbm5lcic7XG5pbXBvcnQgeyBNYXRTbGlkZVRvZ2dsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NsaWRlLXRvZ2dsZSc7XG5pbXBvcnQgeyBNYXRUYWJsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYmxlJztcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcblxuaW1wb3J0IHsgVXNlckNob29zZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdXNlci1jaG9vc2VyL3VzZXItY2hvb3Nlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgVXNlckZvcm1GaWVsZENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy91c2VyLWZvcm0tZmllbGQvdXNlci1mb3JtLWZpZWxkLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1xuICAgIFVzZXJDaG9vc2VyQ29tcG9uZW50LFxuICAgIFVzZXJGb3JtRmllbGRDb21wb25lbnRcbiAgXSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgIE1hdERpYWxvZ01vZHVsZSxcbiAgICBNYXRGb3JtRmllbGRNb2R1bGUsXG4gICAgTWF0SWNvbk1vZHVsZSxcbiAgICBNYXRJbnB1dE1vZHVsZSxcbiAgICBNYXRMaXN0TW9kdWxlLFxuICAgIE1hdFByb2dyZXNzQmFyTW9kdWxlLFxuICAgIE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSxcbiAgICBNYXRTbGlkZVRvZ2dsZU1vZHVsZSxcbiAgICBNYXRUYWJsZU1vZHVsZSxcbiAgICBNYXRUb29sdGlwTW9kdWxlXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBVc2VyQ2hvb3NlckNvbXBvbmVudCxcbiAgICBVc2VyRm9ybUZpZWxkQ29tcG9uZW50XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgR3VpTW9kdWxlIHsgfVxuIl19
77
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3VpLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsZWF2ZWxhbmRwcmljZS9uZ3gtbGliL2FjdGl2ZS1kaXJlY3RvcnkvZ3VpL3NyYy9ndWkubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdEUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDOUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRTdELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHdEQUF3RCxDQUFDOztBQTRCaEcsTUFBTSxPQUFPLFNBQVM7O3VHQUFULFNBQVM7d0dBQVQsU0FBUyxpQkF4QmxCLG9CQUFvQjtRQUNwQixzQkFBc0IsYUFHdEIsWUFBWTtRQUNaLG1CQUFtQjtRQUVuQixlQUFlO1FBQ2YsZUFBZTtRQUNmLGtCQUFrQjtRQUNsQixhQUFhO1FBQ2IsY0FBYztRQUNkLGFBQWE7UUFDYixvQkFBb0I7UUFDcEIsd0JBQXdCO1FBQ3hCLG9CQUFvQjtRQUNwQixjQUFjO1FBQ2QsZ0JBQWdCLGFBR2hCLG9CQUFvQjtRQUNwQixzQkFBc0I7d0dBR2IsU0FBUyxZQXBCbEIsWUFBWTtRQUNaLG1CQUFtQjtRQUVuQixlQUFlO1FBQ2YsZUFBZTtRQUNmLGtCQUFrQjtRQUNsQixhQUFhO1FBQ2IsY0FBYztRQUNkLGFBQWE7UUFDYixvQkFBb0I7UUFDcEIsd0JBQXdCO1FBQ3hCLG9CQUFvQjtRQUNwQixjQUFjO1FBQ2QsZ0JBQWdCOzRGQU9QLFNBQVM7a0JBMUJyQixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRTt3QkFDWixvQkFBb0I7d0JBQ3BCLHNCQUFzQjtxQkFDdkI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osbUJBQW1CO3dCQUVuQixlQUFlO3dCQUNmLGVBQWU7d0JBQ2Ysa0JBQWtCO3dCQUNsQixhQUFhO3dCQUNiLGNBQWM7d0JBQ2QsYUFBYTt3QkFDYixvQkFBb0I7d0JBQ3BCLHdCQUF3Qjt3QkFDeEIsb0JBQW9CO3dCQUNwQixjQUFjO3dCQUNkLGdCQUFnQjtxQkFDakI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLG9CQUFvQjt3QkFDcEIsc0JBQXNCO3FCQUN2QjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdERpYWxvZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuaW1wb3J0IHsgTWF0TGlzdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xpc3QnO1xuaW1wb3J0IHsgTWF0UHJvZ3Jlc3NCYXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1iYXInO1xuaW1wb3J0IHsgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3Mtc3Bpbm5lcic7XG5pbXBvcnQgeyBNYXRTbGlkZVRvZ2dsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NsaWRlLXRvZ2dsZSc7XG5pbXBvcnQgeyBNYXRUYWJsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYmxlJztcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcblxuaW1wb3J0IHsgVXNlckNob29zZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdXNlci1jaG9vc2VyL3VzZXItY2hvb3Nlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgVXNlckZvcm1GaWVsZENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy91c2VyLWZvcm0tZmllbGQvdXNlci1mb3JtLWZpZWxkLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1xuICAgIFVzZXJDaG9vc2VyQ29tcG9uZW50LFxuICAgIFVzZXJGb3JtRmllbGRDb21wb25lbnRcbiAgXSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgIE1hdERpYWxvZ01vZHVsZSxcbiAgICBNYXRGb3JtRmllbGRNb2R1bGUsXG4gICAgTWF0SWNvbk1vZHVsZSxcbiAgICBNYXRJbnB1dE1vZHVsZSxcbiAgICBNYXRMaXN0TW9kdWxlLFxuICAgIE1hdFByb2dyZXNzQmFyTW9kdWxlLFxuICAgIE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSxcbiAgICBNYXRTbGlkZVRvZ2dsZU1vZHVsZSxcbiAgICBNYXRUYWJsZU1vZHVsZSxcbiAgICBNYXRUb29sdGlwTW9kdWxlXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBVc2VyQ2hvb3NlckNvbXBvbmVudCxcbiAgICBVc2VyRm9ybUZpZWxkQ29tcG9uZW50XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgR3VpTW9kdWxlIHsgfVxuIl19
@@ -101,9 +101,9 @@ export class ActiveDirectoryService {
101
101
  return this.http.get(`${this.config.apiUrl}/activedirectory/workstations/${includeDisabled}/${parentOU}`);
102
102
  }
103
103
  }
104
- ActiveDirectoryService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: ActiveDirectoryService, deps: [{ token: i1.ServiceConfig, optional: true }, { token: i2.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
105
- ActiveDirectoryService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: ActiveDirectoryService, providedIn: 'root' });
106
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: ActiveDirectoryService, decorators: [{
104
+ ActiveDirectoryService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: ActiveDirectoryService, deps: [{ token: i1.ServiceConfig, optional: true }, { token: i2.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
105
+ ActiveDirectoryService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: ActiveDirectoryService, providedIn: 'root' });
106
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: ActiveDirectoryService, decorators: [{
107
107
  type: Injectable,
108
108
  args: [{
109
109
  providedIn: 'root'
@@ -111,4 +111,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
111
111
  }], ctorParameters: function () { return [{ type: i1.ServiceConfig, decorators: [{
112
112
  type: Optional
113
113
  }] }, { type: i2.HttpClient }]; } });
114
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZlLWRpcmVjdG9yeS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xlYXZlbGFuZHByaWNlL25neC1saWIvYWN0aXZlLWRpcmVjdG9yeS9zcmMvc2VydmljZXMvYWN0aXZlLWRpcmVjdG9yeS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXJELE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBTzVCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7OztBQU14RCxNQUFNLE9BQU8sc0JBQXNCO0lBZ0JqQyxZQUFZO0lBRVosd0JBQXdCO0lBQ3RCLFlBQWdDLE1BQXFCLEVBQ25DLElBQWdCO1FBREYsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUNuQyxTQUFJLEdBQUosSUFBSSxDQUFZO1FBbEI1Qiw0QkFBdUIsR0FBRyxHQUFHLENBQUM7UUFvQnhCLElBQUksQ0FBQyxNQUFNLEdBQUc7WUFDWixHQUFHLElBQUksYUFBYSxFQUFFO1lBQ3RCLEdBQUcsSUFBSSxDQUFDLE1BQU07U0FDZixDQUFDO0lBQ2hCLENBQUM7SUF0QkQsb0JBQW9CO0lBQ3BCLElBQVksWUFBWTtRQUN0QixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNmLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFFRCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxXQUFXLElBQUksSUFBSSxDQUFDLHVCQUF1QixDQUFDO1FBQ3JGLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQzthQUM3QyxHQUFHLENBQUMsV0FBVyxFQUFFLFNBQVMs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LENBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0saUNBQWlDLGVBQWUsSUFBSSxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQ3BILENBQUM7O21IQXRIVSxzQkFBc0I7dUhBQXRCLHNCQUFzQixjQUZyQixNQUFNOzJGQUVQLHNCQUFzQjtrQkFIbEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQW9CZ0IsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JztcclxuXHJcbmltcG9ydCB7IEFET2JqZWN0IH0gZnJvbSAnLi4vbW9kZWwvYWQtb2JqZWN0JztcclxuaW1wb3J0IHsgQURPYmplY3RXaXRoQ2hpbGRyZW4gfSBmcm9tICcuLi9tb2RlbC9hZC1vYmplY3Qtd2l0aC1jaGlsZHJlbic7XHJcbmltcG9ydCB7IENhY2hlT2JqZWN0IH0gZnJvbSAnLi4vbW9kZWwvY2FjaGUtb2JqZWN0JztcclxuaW1wb3J0IHsgQ2xlYXZlbGFuZFByaWNlVXNlciB9IGZyb20gJy4uL21vZGVsL2NsZWF2ZWxhbmQtcHJpY2UtdXNlcic7XHJcbmltcG9ydCB7IEdyb3VwIH0gZnJvbSAnLi4vbW9kZWwvZ3JvdXAnO1xyXG5pbXBvcnQgeyBTZXJ2aWNlQ29uZmlnIH0gZnJvbSAnLi4vbW9kZWwvc2VydmljZS1jb25maWcnO1xyXG5pbXBvcnQgeyBVc2VyIH0gZnJvbSAnLi4vbW9kZWwvdXNlcic7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBY3RpdmVEaXJlY3RvcnlTZXJ2aWNlIHtcclxuICBwcml2YXRlIGNhY2hlOiBDYWNoZU9iamVjdDxDbGVhdmVsYW5kUHJpY2VVc2VyPiB8IHVuZGVmaW5lZDtcclxuICBwcml2YXRlIGRlZmF1bHRDYWNoZUxpZmVNaW51dGVzID0gNzIwO1xyXG5cclxuICAvLyNyZWdpb24gUHJvcGVydGllc1xyXG4gIHByaXZhdGUgZ2V0IGNhY2hlRXhwaXJlZCgpOiBib29sZWFuIHtcclxuICAgIGlmICghdGhpcy5jYWNoZSkge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBsaWZlTWludXRlcyA9IHRoaXMuY29uZmlnLmNhY2hpbmc/LmxpZmVNaW51dGVzID8/IHRoaXMuZGVmYXVsdENhY2hlTGlmZU1pbnV0ZXM7XHJcbiAgICBjb25zdCBleHBpcmF0aW9uID0gbW9tZW50KHRoaXMuY2FjaGUubGFzdFVwZGF0ZSlcclxuICAgICAgLmFkZChsaWZlTWludXRlcywgJ21pbnV0ZXMnKTtcclxuXHJcbiAgICByZXR1cm4gbW9tZW50KCkuaXNBZnRlcihleHBpcmF0aW9uKTtcclxuICB9XHJcbiAgLy8jZW5kcmVnaW9uXHJcblxyXG4gIC8vI3JlZ2lvbiBJbml0aWFsaXphdGlvblxyXG4gICAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgcHJpdmF0ZSBjb25maWc6IFNlcnZpY2VDb25maWcsXHJcbiAgICAgICAgICAgICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50KSB7XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5jb25maWcgPSB7XHJcbiAgICAgICAgICAgICAgICAgIC4uLm5ldyBTZXJ2aWNlQ29uZmlnKCksXHJcbiAgICAgICAgICAgICAgICAgIC4uLnRoaXMuY29uZmlnXHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gIH1cclxuICAvLyNlbmRyZWdpb25cclxuXHJcbiAgZ2V0VXNlcnMoaW5jbHVkZVBob3RvID0gZmFsc2UsIGluY2x1ZGVEaXNhYmxlZCA9IGZhbHNlLCBwYXJlbnRPVSA9ICcnKTogT2JzZXJ2YWJsZTxDbGVhdmVsYW5kUHJpY2VVc2VyW10+IHtcclxuICAgIC8vIElmIGNhY2hpbmcgaXMgZW5hYmxlZCwgdGhlcmUgd2lsbCBiZSB0d28gY2FsbHMgdG8gdGhlIEFQSSBpZiB0aGUgY2FjaGUgaXMgbnVsbC9leHBpcmVkXHJcbiAgICAvLyBPbmUgY2FsbCBpcyB0byB1cGRhdGUgdGhlIGNhY2hlIGFuZCB0aGUgb3RoZXIgaXMgdG8gcmV0dXJuIHRoZSBkYXRhIHRoYXQgdGhlIHVzZXIgcmVxdWVzdGVkXHJcbiAgICAvLyBTdWJzZXF1ZW50IGNhbGxzIHdpbGwgYnlwYXNzIHRoZSBBUEkgYW5kIHJldHVybmVkIGNhY2hlZCBkYXRhIHVudGlsIGl0IGV4cGlyZXNcclxuXHJcbiAgICBjb25zdCBvYnNlcnZhYmxlJCA9IHRoaXMuaHR0cC5nZXQ8Q2xlYXZlbGFuZFByaWNlVXNlcltdPihgJHt0aGlzLmNvbmZpZy5hcGlVcmx9L3VzZXJzLyR7aW5jbHVkZVBob3RvfS8ke2luY2x1ZGVEaXNhYmxlZH0vJHtwYXJlbnRPVX1gKTtcclxuXHJcbiAgICBpZiAodGhpcy5jb25maWcuY2FjaGluZz8uZW5hYmxlZCkge1xyXG4gICAgICBpZiAodGhpcy5jYWNoZUV4cGlyZWQpIHtcclxuICAgICAgICAvLyBHZXQgdGhlIGRhdGEgYW5kIGNhY2hlIGl0XHJcbiAgICAgICAgb2JzZXJ2YWJsZSQuc3Vic2NyaWJlKGRhdGEgPT4ge1xyXG4gICAgICAgICAgdGhpcy5jYWNoZSA9IHtcclxuICAgICAgICAgICAgZGF0YSxcclxuICAgICAgICAgICAgbGFzdFVwZGF0ZTogbW9tZW50KClcclxuICAgICAgICAgIH07XHJcblxyXG4gICAgICAgICAgaWYgKHRoaXMuY29uZmlnLmxvZ2dpbmc/LmRhdGFDYWNoZWQpIHtcclxuICAgICAgICAgICAgY29uc3QgbGlmZU1pbnV0ZXMgPSB0aGlzLmNvbmZpZy5jYWNoaW5nPy5saWZlTWludXRlcyA/PyB0aGlzLmRlZmF1bHRDYWNoZUxpZmVNaW51dGVzO1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhgRGF0YSBjYWNoZWQgZm9yICR7bGlmZU1pbnV0ZXN9IG1pbnV0ZXNgKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICAvLyBDYWNoZSBleGlzdHMgYW5kIGhhc24ndCBleHBpcmVkIHlldFxyXG4gICAgICAgIGlmICh0aGlzLmNvbmZpZy5sb2dnaW5nPy5jYWNoZWREYXRhUmV0dXJuZWQpIHtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKCdSZXR1cm5pbmcgY2FjaGVkIHVzZXJzJyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gb2YodGhpcy5jYWNoZSEuZGF0YSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyBDYWNoZSBpcyBlaXRoZXIgZGlzYWJsZWQgb3IgZXhwaXJlZCwgcmV0dXJuIGRhdGEgZnJvbSBBUElcclxuICAgIGlmICh0aGlzLmNvbmZpZy5sb2dnaW5nPy5mcmVzaERhdGFSZXR1cm5lZCkge1xyXG4gICAgICBjb25zb2xlLmxvZygnUmV0dXJuaW5nIGZyZXNoIHVzZXJzJyk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG9ic2VydmFibGUkO1xyXG4gIH1cclxuXHJcbiAgZ2V0VXNlcihhY2NvdW50TmFtZTogc3RyaW5nLCBpbmNsdWRlUGhvdG8gPSBmYWxzZSk6IE9ic2VydmFibGU8Q2xlYXZlbGFuZFByaWNlVXNlcj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8Q2xlYXZlbGFuZFByaWNlVXNlcj4oYCR7dGhpcy5jb25maWcuYXBpVXJsfS91c2Vycy9uYW1lLyR7YWNjb3VudE5hbWV9LyR7aW5jbHVkZVBob3RvfWApO1xyXG4gIH1cclxuXHJcbiAgY2xlYXJDYWNoZSgpOiB2b2lkIHtcclxuICAgIHRoaXMuY2FjaGUgPSB1bmRlZmluZWQ7XHJcblxyXG4gICAgaWYgKHRoaXMuY29uZmlnLmxvZ2dpbmc/LmNhY2hlQ2xlYXJlZCkge1xyXG4gICAgICBjb25zb2xlLmxvZygnQ2FjaGUgY2xlYXJlZCcpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0RG9tYWlucygpOiBPYnNlcnZhYmxlPEFET2JqZWN0W10+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFET2JqZWN0W10+KGAke3RoaXMuY29uZmlnLmFwaVVybH0vYWN0aXZlZGlyZWN0b3J5L2RvbWFpbnNgKTtcclxuICB9XHJcblxyXG4gIGdldE9VcyhwYXJlbnRPVSA9ICcnKTogT2JzZXJ2YWJsZTxBRE9iamVjdFdpdGhDaGlsZHJlbltdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBRE9iamVjdFdpdGhDaGlsZHJlbltdPihgJHt0aGlzLmNvbmZpZy5hcGlVcmx9L2FjdGl2ZWRpcmVjdG9yeS9vdXMvJHtwYXJlbnRPVX1gKTtcclxuICB9XHJcblxyXG4gIGdldENvbnRhaW5lcnMocGFyZW50T1UgPSAnJyk6IE9ic2VydmFibGU8QURPYmplY3RXaXRoQ2hpbGRyZW5bXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QURPYmplY3RXaXRoQ2hpbGRyZW5bXT4oYCR7dGhpcy5jb25maWcuYXBpVXJsfS9hY3RpdmVkaXJlY3RvcnkvY29udGFpbmVycy8ke3BhcmVudE9VfWApO1xyXG4gIH1cclxuXHJcbiAgZ2V0R3JvdXBzKHBhcmVudE9VID0gJycpOiBPYnNlcnZhYmxlPEdyb3VwW10+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEdyb3VwW10+KGAke3RoaXMuY29uZmlnLmFwaVVybH0vYWN0aXZlZGlyZWN0b3J5L2dyb3Vwcy8ke3BhcmVudE9VfWApO1xyXG4gIH1cclxuXHJcbiAgZ2V0RGlzdGluY3RVc2VyQXR0cmlidXRlVmFsdWVzKGF0dHJpYnV0ZU5hbWU6IHN0cmluZykgOiBPYnNlcnZhYmxlPGFueVtdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnlbXT4oYCR7dGhpcy5jb25maWcuYXBpVXJsfS9hY3RpdmVkaXJlY3RvcnkvZGlzdGluY3QvJHthdHRyaWJ1dGVOYW1lfWApO1xyXG4gIH1cclxuXHJcbiAgZ2V0RGVwYXJ0bWVudHMoKSA6IE9ic2VydmFibGU8c3RyaW5nW10+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PHN0cmluZ1tdPihgJHt0aGlzLmNvbmZpZy5hcGlVcmx9L2FjdGl2ZWRpcmVjdG9yeS9kZXBhcnRtZW50c2ApO1xyXG4gIH1cclxuXHJcbiAgZ2V0VGl0bGVzKCkgOiBPYnNlcnZhYmxlPHN0cmluZ1tdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxzdHJpbmdbXT4oYCR7dGhpcy5jb25maWcuYXBpVXJsfS9hY3RpdmVkaXJlY3RvcnkvdGl0bGVzYCk7XHJcbiAgfVxyXG5cclxuICBnZXRDb21wdXRlcnMoaW5jbHVkZURpc2FibGVkID0gZmFsc2UsIHBhcmVudE9VID0gJycpOiBPYnNlcnZhYmxlPFVzZXJbXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8VXNlcltdPihgJHt0aGlzLmNvbmZpZy5hcGlVcmx9L2FjdGl2ZWRpcmVjdG9yeS9jb21wdXRlcnMvJHtpbmNsdWRlRGlzYWJsZWR9LyR7cGFyZW50T1V9YCk7XHJcbiAgfVxyXG5cclxuICBnZXRTZXJ2ZXJzKGluY2x1ZGVEaXNhYmxlZCA9IGZhbHNlLCBwYXJlbnRPVSA9ICcnKTogT2JzZXJ2YWJsZTxVc2VyW10+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFVzZXJbXT4oYCR7dGhpcy5jb25maWcuYXBpVXJsfS9hY3RpdmVkaXJlY3Rvcnkvc2VydmVycy8ke2luY2x1ZGVEaXNhYmxlZH0vJHtwYXJlbnRPVX1gKTtcclxuICB9XHJcblxyXG4gIGdldFdvcmtzdGF0aW9ucyhpbmNsdWRlRGlzYWJsZWQgPSBmYWxzZSwgcGFyZW50T1UgPSAnJyk6IE9ic2VydmFibGU8VXNlcltdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxVc2VyW10+KGAke3RoaXMuY29uZmlnLmFwaVVybH0vYWN0aXZlZGlyZWN0b3J5L3dvcmtzdGF0aW9ucy8ke2luY2x1ZGVEaXNhYmxlZH0vJHtwYXJlbnRPVX1gKTtcclxuICB9XHJcbn1cclxuIl19
114
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZlLWRpcmVjdG9yeS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xlYXZlbGFuZHByaWNlL25neC1saWIvYWN0aXZlLWRpcmVjdG9yeS9zcmMvc2VydmljZXMvYWN0aXZlLWRpcmVjdG9yeS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXJELE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBTzVCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7OztBQU14RCxNQUFNLE9BQU8sc0JBQXNCO0lBZ0JqQyxZQUFZO0lBRVosd0JBQXdCO0lBQ3RCLFlBQWdDLE1BQXFCLEVBQ25DLElBQWdCO1FBREYsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUNuQyxTQUFJLEdBQUosSUFBSSxDQUFZO1FBbEI1Qiw0QkFBdUIsR0FBRyxHQUFHLENBQUM7UUFvQnhCLElBQUksQ0FBQyxNQUFNLEdBQUc7WUFDWixHQUFHLElBQUksYUFBYSxFQUFFO1lBQ3RCLEdBQUcsSUFBSSxDQUFDLE1BQU07U0FDZixDQUFDO0lBQ2hCLENBQUM7SUF0QkQsb0JBQW9CO0lBQ3BCLElBQVksWUFBWTtRQUN0QixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNmLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFFRCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxXQUFXLElBQUksSUFBSSxDQUFDLHVCQUF1QixDQUFDO1FBQ3JGLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQzthQUM3QyxHQUFHLENBQUMsV0FBVyxFQUFFLFNBQVMs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LENBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0saUNBQWlDLGVBQWUsSUFBSSxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQ3BILENBQUM7O29IQXRIVSxzQkFBc0I7d0hBQXRCLHNCQUFzQixjQUZyQixNQUFNOzRGQUVQLHNCQUFzQjtrQkFIbEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQW9CZ0IsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JztcclxuXHJcbmltcG9ydCB7IEFET2JqZWN0IH0gZnJvbSAnLi4vbW9kZWwvYWQtb2JqZWN0JztcclxuaW1wb3J0IHsgQURPYmplY3RXaXRoQ2hpbGRyZW4gfSBmcm9tICcuLi9tb2RlbC9hZC1vYmplY3Qtd2l0aC1jaGlsZHJlbic7XHJcbmltcG9ydCB7IENhY2hlT2JqZWN0IH0gZnJvbSAnLi4vbW9kZWwvY2FjaGUtb2JqZWN0JztcclxuaW1wb3J0IHsgQ2xlYXZlbGFuZFByaWNlVXNlciB9IGZyb20gJy4uL21vZGVsL2NsZWF2ZWxhbmQtcHJpY2UtdXNlcic7XHJcbmltcG9ydCB7IEdyb3VwIH0gZnJvbSAnLi4vbW9kZWwvZ3JvdXAnO1xyXG5pbXBvcnQgeyBTZXJ2aWNlQ29uZmlnIH0gZnJvbSAnLi4vbW9kZWwvc2VydmljZS1jb25maWcnO1xyXG5pbXBvcnQgeyBVc2VyIH0gZnJvbSAnLi4vbW9kZWwvdXNlcic7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBY3RpdmVEaXJlY3RvcnlTZXJ2aWNlIHtcclxuICBwcml2YXRlIGNhY2hlOiBDYWNoZU9iamVjdDxDbGVhdmVsYW5kUHJpY2VVc2VyPiB8IHVuZGVmaW5lZDtcclxuICBwcml2YXRlIGRlZmF1bHRDYWNoZUxpZmVNaW51dGVzID0gNzIwO1xyXG5cclxuICAvLyNyZWdpb24gUHJvcGVydGllc1xyXG4gIHByaXZhdGUgZ2V0IGNhY2hlRXhwaXJlZCgpOiBib29sZWFuIHtcclxuICAgIGlmICghdGhpcy5jYWNoZSkge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBsaWZlTWludXRlcyA9IHRoaXMuY29uZmlnLmNhY2hpbmc/LmxpZmVNaW51dGVzID8/IHRoaXMuZGVmYXVsdENhY2hlTGlmZU1pbnV0ZXM7XHJcbiAgICBjb25zdCBleHBpcmF0aW9uID0gbW9tZW50KHRoaXMuY2FjaGUubGFzdFVwZGF0ZSlcclxuICAgICAgLmFkZChsaWZlTWludXRlcywgJ21pbnV0ZXMnKTtcclxuXHJcbiAgICByZXR1cm4gbW9tZW50KCkuaXNBZnRlcihleHBpcmF0aW9uKTtcclxuICB9XHJcbiAgLy8jZW5kcmVnaW9uXHJcblxyXG4gIC8vI3JlZ2lvbiBJbml0aWFsaXphdGlvblxyXG4gICAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgcHJpdmF0ZSBjb25maWc6IFNlcnZpY2VDb25maWcsXHJcbiAgICAgICAgICAgICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50KSB7XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5jb25maWcgPSB7XHJcbiAgICAgICAgICAgICAgICAgIC4uLm5ldyBTZXJ2aWNlQ29uZmlnKCksXHJcbiAgICAgICAgICAgICAgICAgIC4uLnRoaXMuY29uZmlnXHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gIH1cclxuICAvLyNlbmRyZWdpb25cclxuXHJcbiAgZ2V0VXNlcnMoaW5jbHVkZVBob3RvID0gZmFsc2UsIGluY2x1ZGVEaXNhYmxlZCA9IGZhbHNlLCBwYXJlbnRPVSA9ICcnKTogT2JzZXJ2YWJsZTxDbGVhdmVsYW5kUHJpY2VVc2VyW10+IHtcclxuICAgIC8vIElmIGNhY2hpbmcgaXMgZW5hYmxlZCwgdGhlcmUgd2lsbCBiZSB0d28gY2FsbHMgdG8gdGhlIEFQSSBpZiB0aGUgY2FjaGUgaXMgbnVsbC9leHBpcmVkXHJcbiAgICAvLyBPbmUgY2FsbCBpcyB0byB1cGRhdGUgdGhlIGNhY2hlIGFuZCB0aGUgb3RoZXIgaXMgdG8gcmV0dXJuIHRoZSBkYXRhIHRoYXQgdGhlIHVzZXIgcmVxdWVzdGVkXHJcbiAgICAvLyBTdWJzZXF1ZW50IGNhbGxzIHdpbGwgYnlwYXNzIHRoZSBBUEkgYW5kIHJldHVybmVkIGNhY2hlZCBkYXRhIHVudGlsIGl0IGV4cGlyZXNcclxuXHJcbiAgICBjb25zdCBvYnNlcnZhYmxlJCA9IHRoaXMuaHR0cC5nZXQ8Q2xlYXZlbGFuZFByaWNlVXNlcltdPihgJHt0aGlzLmNvbmZpZy5hcGlVcmx9L3VzZXJzLyR7aW5jbHVkZVBob3RvfS8ke2luY2x1ZGVEaXNhYmxlZH0vJHtwYXJlbnRPVX1gKTtcclxuXHJcbiAgICBpZiAodGhpcy5jb25maWcuY2FjaGluZz8uZW5hYmxlZCkge1xyXG4gICAgICBpZiAodGhpcy5jYWNoZUV4cGlyZWQpIHtcclxuICAgICAgICAvLyBHZXQgdGhlIGRhdGEgYW5kIGNhY2hlIGl0XHJcbiAgICAgICAgb2JzZXJ2YWJsZSQuc3Vic2NyaWJlKGRhdGEgPT4ge1xyXG4gICAgICAgICAgdGhpcy5jYWNoZSA9IHtcclxuICAgICAgICAgICAgZGF0YSxcclxuICAgICAgICAgICAgbGFzdFVwZGF0ZTogbW9tZW50KClcclxuICAgICAgICAgIH07XHJcblxyXG4gICAgICAgICAgaWYgKHRoaXMuY29uZmlnLmxvZ2dpbmc/LmRhdGFDYWNoZWQpIHtcclxuICAgICAgICAgICAgY29uc3QgbGlmZU1pbnV0ZXMgPSB0aGlzLmNvbmZpZy5jYWNoaW5nPy5saWZlTWludXRlcyA/PyB0aGlzLmRlZmF1bHRDYWNoZUxpZmVNaW51dGVzO1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhgRGF0YSBjYWNoZWQgZm9yICR7bGlmZU1pbnV0ZXN9IG1pbnV0ZXNgKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICAvLyBDYWNoZSBleGlzdHMgYW5kIGhhc24ndCBleHBpcmVkIHlldFxyXG4gICAgICAgIGlmICh0aGlzLmNvbmZpZy5sb2dnaW5nPy5jYWNoZWREYXRhUmV0dXJuZWQpIHtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKCdSZXR1cm5pbmcgY2FjaGVkIHVzZXJzJyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gb2YodGhpcy5jYWNoZSEuZGF0YSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyBDYWNoZSBpcyBlaXRoZXIgZGlzYWJsZWQgb3IgZXhwaXJlZCwgcmV0dXJuIGRhdGEgZnJvbSBBUElcclxuICAgIGlmICh0aGlzLmNvbmZpZy5sb2dnaW5nPy5mcmVzaERhdGFSZXR1cm5lZCkge1xyXG4gICAgICBjb25zb2xlLmxvZygnUmV0dXJuaW5nIGZyZXNoIHVzZXJzJyk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG9ic2VydmFibGUkO1xyXG4gIH1cclxuXHJcbiAgZ2V0VXNlcihhY2NvdW50TmFtZTogc3RyaW5nLCBpbmNsdWRlUGhvdG8gPSBmYWxzZSk6IE9ic2VydmFibGU8Q2xlYXZlbGFuZFByaWNlVXNlcj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8Q2xlYXZlbGFuZFByaWNlVXNlcj4oYCR7dGhpcy5jb25maWcuYXBpVXJsfS91c2Vycy9uYW1lLyR7YWNjb3VudE5hbWV9LyR7aW5jbHVkZVBob3RvfWApO1xyXG4gIH1cclxuXHJcbiAgY2xlYXJDYWNoZSgpOiB2b2lkIHtcclxuICAgIHRoaXMuY2FjaGUgPSB1bmRlZmluZWQ7XHJcblxyXG4gICAgaWYgKHRoaXMuY29uZmlnLmxvZ2dpbmc/LmNhY2hlQ2xlYXJlZCkge1xyXG4gICAgICBjb25zb2xlLmxvZygnQ2FjaGUgY2xlYXJlZCcpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0RG9tYWlucygpOiBPYnNlcnZhYmxlPEFET2JqZWN0W10+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFET2JqZWN0W10+KGAke3RoaXMuY29uZmlnLmFwaVVybH0vYWN0aXZlZGlyZWN0b3J5L2RvbWFpbnNgKTtcclxuICB9XHJcblxyXG4gIGdldE9VcyhwYXJlbnRPVSA9ICcnKTogT2JzZXJ2YWJsZTxBRE9iamVjdFdpdGhDaGlsZHJlbltdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBRE9iamVjdFdpdGhDaGlsZHJlbltdPihgJHt0aGlzLmNvbmZpZy5hcGlVcmx9L2FjdGl2ZWRpcmVjdG9yeS9vdXMvJHtwYXJlbnRPVX1gKTtcclxuICB9XHJcblxyXG4gIGdldENvbnRhaW5lcnMocGFyZW50T1UgPSAnJyk6IE9ic2VydmFibGU8QURPYmplY3RXaXRoQ2hpbGRyZW5bXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QURPYmplY3RXaXRoQ2hpbGRyZW5bXT4oYCR7dGhpcy5jb25maWcuYXBpVXJsfS9hY3RpdmVkaXJlY3RvcnkvY29udGFpbmVycy8ke3BhcmVudE9VfWApO1xyXG4gIH1cclxuXHJcbiAgZ2V0R3JvdXBzKHBhcmVudE9VID0gJycpOiBPYnNlcnZhYmxlPEdyb3VwW10+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEdyb3VwW10+KGAke3RoaXMuY29uZmlnLmFwaVVybH0vYWN0aXZlZGlyZWN0b3J5L2dyb3Vwcy8ke3BhcmVudE9VfWApO1xyXG4gIH1cclxuXHJcbiAgZ2V0RGlzdGluY3RVc2VyQXR0cmlidXRlVmFsdWVzKGF0dHJpYnV0ZU5hbWU6IHN0cmluZykgOiBPYnNlcnZhYmxlPGFueVtdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnlbXT4oYCR7dGhpcy5jb25maWcuYXBpVXJsfS9hY3RpdmVkaXJlY3RvcnkvZGlzdGluY3QvJHthdHRyaWJ1dGVOYW1lfWApO1xyXG4gIH1cclxuXHJcbiAgZ2V0RGVwYXJ0bWVudHMoKSA6IE9ic2VydmFibGU8c3RyaW5nW10+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PHN0cmluZ1tdPihgJHt0aGlzLmNvbmZpZy5hcGlVcmx9L2FjdGl2ZWRpcmVjdG9yeS9kZXBhcnRtZW50c2ApO1xyXG4gIH1cclxuXHJcbiAgZ2V0VGl0bGVzKCkgOiBPYnNlcnZhYmxlPHN0cmluZ1tdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxzdHJpbmdbXT4oYCR7dGhpcy5jb25maWcuYXBpVXJsfS9hY3RpdmVkaXJlY3RvcnkvdGl0bGVzYCk7XHJcbiAgfVxyXG5cclxuICBnZXRDb21wdXRlcnMoaW5jbHVkZURpc2FibGVkID0gZmFsc2UsIHBhcmVudE9VID0gJycpOiBPYnNlcnZhYmxlPFVzZXJbXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8VXNlcltdPihgJHt0aGlzLmNvbmZpZy5hcGlVcmx9L2FjdGl2ZWRpcmVjdG9yeS9jb21wdXRlcnMvJHtpbmNsdWRlRGlzYWJsZWR9LyR7cGFyZW50T1V9YCk7XHJcbiAgfVxyXG5cclxuICBnZXRTZXJ2ZXJzKGluY2x1ZGVEaXNhYmxlZCA9IGZhbHNlLCBwYXJlbnRPVSA9ICcnKTogT2JzZXJ2YWJsZTxVc2VyW10+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFVzZXJbXT4oYCR7dGhpcy5jb25maWcuYXBpVXJsfS9hY3RpdmVkaXJlY3Rvcnkvc2VydmVycy8ke2luY2x1ZGVEaXNhYmxlZH0vJHtwYXJlbnRPVX1gKTtcclxuICB9XHJcblxyXG4gIGdldFdvcmtzdGF0aW9ucyhpbmNsdWRlRGlzYWJsZWQgPSBmYWxzZSwgcGFyZW50T1UgPSAnJyk6IE9ic2VydmFibGU8VXNlcltdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxVc2VyW10+KGAke3RoaXMuY29uZmlnLmFwaVVybH0vYWN0aXZlZGlyZWN0b3J5L3dvcmtzdGF0aW9ucy8ke2luY2x1ZGVEaXNhYmxlZH0vJHtwYXJlbnRPVX1gKTtcclxuICB9XHJcbn1cclxuIl19
@@ -3,10 +3,10 @@ import { CommonModule } from '@angular/common';
3
3
  import * as i0 from "@angular/core";
4
4
  export class AuthenticationBaseModule {
5
5
  }
6
- AuthenticationBaseModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: AuthenticationBaseModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
7
- AuthenticationBaseModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.1", ngImport: i0, type: AuthenticationBaseModule, imports: [CommonModule] });
8
- AuthenticationBaseModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: AuthenticationBaseModule, imports: [CommonModule] });
9
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: AuthenticationBaseModule, decorators: [{
6
+ AuthenticationBaseModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: AuthenticationBaseModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
7
+ AuthenticationBaseModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.10", ngImport: i0, type: AuthenticationBaseModule, imports: [CommonModule] });
8
+ AuthenticationBaseModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: AuthenticationBaseModule, imports: [CommonModule] });
9
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: AuthenticationBaseModule, decorators: [{
10
10
  type: NgModule,
11
11
  args: [{
12
12
  declarations: [],
@@ -16,4 +16,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
16
16
  exports: []
17
17
  }]
18
18
  }] });
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aGVudGljYXRpb24uYmFzZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGVhdmVsYW5kcHJpY2Uvbmd4LWxpYi9hdXRoZW50aWNhdGlvbi9zcmMvYXV0aGVudGljYXRpb24uYmFzZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBUy9DLE1BQU0sT0FBTyx3QkFBd0I7O3FIQUF4Qix3QkFBd0I7c0hBQXhCLHdCQUF3QixZQUpqQyxZQUFZO3NIQUlILHdCQUF3QixZQUpqQyxZQUFZOzJGQUlILHdCQUF3QjtrQkFQcEMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsRUFBRTtvQkFDaEIsT0FBTyxFQUFFO3dCQUNQLFlBQVk7cUJBQ2I7b0JBQ0QsT0FBTyxFQUFFLEVBQUU7aUJBQ1oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtdLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZVxyXG4gIF0sXHJcbiAgZXhwb3J0czogW11cclxufSlcclxuZXhwb3J0IGNsYXNzIEF1dGhlbnRpY2F0aW9uQmFzZU1vZHVsZSB7fSJdfQ==
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aGVudGljYXRpb24uYmFzZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGVhdmVsYW5kcHJpY2Uvbmd4LWxpYi9hdXRoZW50aWNhdGlvbi9zcmMvYXV0aGVudGljYXRpb24uYmFzZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBUy9DLE1BQU0sT0FBTyx3QkFBd0I7O3NIQUF4Qix3QkFBd0I7dUhBQXhCLHdCQUF3QixZQUpqQyxZQUFZO3VIQUlILHdCQUF3QixZQUpqQyxZQUFZOzRGQUlILHdCQUF3QjtrQkFQcEMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsRUFBRTtvQkFDaEIsT0FBTyxFQUFFO3dCQUNQLFlBQVk7cUJBQ2I7b0JBQ0QsT0FBTyxFQUFFLEVBQUU7aUJBQ1oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtdLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZVxyXG4gIF0sXHJcbiAgZXhwb3J0czogW11cclxufSlcclxuZXhwb3J0IGNsYXNzIEF1dGhlbnRpY2F0aW9uQmFzZU1vZHVsZSB7fSJdfQ==