@resolveio/client-lib-core 2.0.12 → 15.0.1

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 (108) hide show
  1. package/esm2020/lib/account-manager.service.mjs +4 -4
  2. package/esm2020/lib/auth/auth-guard.service.mjs +138 -92
  3. package/esm2020/lib/auth/auth-permissions.service.mjs +4 -4
  4. package/esm2020/lib/auth/auth.service.mjs +7 -7
  5. package/esm2020/lib/auth/auth365.component.mjs +4 -4
  6. package/esm2020/lib/auth/can-deactivate-guard.service.mjs +13 -4
  7. package/esm2020/lib/auth/enroll.component.mjs +5 -5
  8. package/esm2020/lib/auth/forgot-password.component.mjs +5 -5
  9. package/esm2020/lib/core.component.mjs +8 -8
  10. package/esm2020/lib/core.module.mjs +11 -5
  11. package/esm2020/lib/core.service.mjs +4 -4
  12. package/esm2020/lib/directive/focus.mjs +4 -4
  13. package/esm2020/lib/directive/scroll.mjs +4 -4
  14. package/esm2020/lib/home/home.component.mjs +5 -5
  15. package/esm2020/lib/logger/logger.component.mjs +5 -5
  16. package/esm2020/lib/models/permission.model.mjs +1 -1
  17. package/esm2020/lib/models/user-group.model.mjs +1 -1
  18. package/esm2020/lib/models/user.model.mjs +1 -1
  19. package/esm2020/lib/offline-manager.service.mjs +4 -4
  20. package/esm2020/lib/pipes/domsanitizor.pipe.mjs +4 -4
  21. package/esm2020/lib/pipes/filter.pipe.mjs +7 -7
  22. package/esm2020/lib/pipes/json-parse.pipe.mjs +4 -4
  23. package/esm2020/lib/pipes/minus-currency.pipe.mjs +4 -4
  24. package/esm2020/lib/pipes/phone.pipe.mjs +4 -4
  25. package/esm2020/lib/pipes/pipe.module.mjs +5 -5
  26. package/esm2020/lib/pipes/reverse-list.pipe.mjs +4 -4
  27. package/esm2020/lib/pipes/titlecase.pipe.mjs +4 -4
  28. package/esm2020/lib/report-builder.permission.mjs +5 -5
  29. package/esm2020/lib/resolveio-class.mjs +4 -4
  30. package/esm2020/lib/shared/shared.module.mjs +5 -5
  31. package/esm2020/lib/socket-manager.service.mjs +59 -75
  32. package/esm2020/lib/socket.service.mjs +74 -9
  33. package/esm2020/lib/super-admin.permission.mjs +4 -4
  34. package/esm2020/lib/support-ticket/detail/support-ticket-detail.component.mjs +5 -5
  35. package/esm2020/lib/support-ticket/edit/support-ticket-edit.component.mjs +5 -5
  36. package/esm2020/lib/support-ticket/list/support-ticket-list.component.mjs +4 -4
  37. package/esm2020/lib/support-ticket/new/support-ticket-new.component.mjs +5 -5
  38. package/esm2020/lib/support-ticket/support-ticket.component.mjs +4 -4
  39. package/esm2020/lib/support-ticket/support-ticket.module.mjs +5 -5
  40. package/esm2020/lib/support-ticket/support-ticket.service.mjs +4 -4
  41. package/esm2020/lib/token-manager.service.mjs +4 -4
  42. package/esm2020/lib/user-settings/settings/users-settings.component.mjs +5 -5
  43. package/esm2020/lib/user-settings/user-settings.component.mjs +4 -4
  44. package/esm2020/lib/user-settings/user-settings.module.mjs +5 -5
  45. package/esm2020/lib/user-settings/user-settings.permission.mjs +2 -2
  46. package/esm2020/lib/user-settings/user-settings.service.mjs +4 -4
  47. package/esm2020/lib/util/aws.service.mjs +4 -4
  48. package/esm2020/lib/util/common.helper.mjs +28 -35
  49. package/esm2020/lib/util/validation.service.mjs +12 -4
  50. package/esm2020/lib/util/window-resize.service.mjs +7 -7
  51. package/esm2020/lib/util/window.service.mjs +4 -4
  52. package/esm2020/lib/widgets/alert/alert.service.mjs +7 -5
  53. package/esm2020/lib/widgets/collapse-table/collapse-table.component.mjs +5 -5
  54. package/esm2020/lib/widgets/collapse-table/collapse-table.module.mjs +5 -5
  55. package/esm2020/lib/widgets/data-table/data-table.component.mjs +5 -5
  56. package/esm2020/lib/widgets/data-table/data-table.module.mjs +5 -5
  57. package/esm2020/lib/widgets/date-shortcut/date-shortcut.component.mjs +4 -4
  58. package/esm2020/lib/widgets/date-shortcut/date-shortcut.module.mjs +5 -5
  59. package/esm2020/lib/widgets/dialog/dialog.confirm.content.mjs +7 -7
  60. package/esm2020/lib/widgets/dialog/dialog.error.content.mjs +7 -7
  61. package/esm2020/lib/widgets/dialog/dialog.input.content.mjs +4 -4
  62. package/esm2020/lib/widgets/dialog/dialog.login.content.mjs +4 -4
  63. package/esm2020/lib/widgets/dialog/dialog.notify.content.mjs +7 -7
  64. package/esm2020/lib/widgets/dialog/dialog.register.content.mjs +4 -4
  65. package/esm2020/lib/widgets/dialog/dialog.select-array-objs.content.mjs +4 -4
  66. package/esm2020/lib/widgets/dialog/dialog.select-array.content.mjs +4 -4
  67. package/esm2020/lib/widgets/dialog/dialog.select-data-labels.content.mjs +4 -4
  68. package/esm2020/lib/widgets/dialog/dialog.select-datetime.content.mjs +13 -9
  69. package/esm2020/lib/widgets/dialog/dialog.select-with-buttons-url.content.mjs +4 -4
  70. package/esm2020/lib/widgets/dialog/dialog.service.mjs +4 -4
  71. package/esm2020/lib/widgets/file/file-upload.component.mjs +5 -5
  72. package/esm2020/lib/widgets/file/file-upload.module.mjs +5 -5
  73. package/esm2020/lib/widgets/form-button/form-button.component.mjs +5 -5
  74. package/esm2020/lib/widgets/form-button/form-button.module.mjs +5 -5
  75. package/esm2020/lib/widgets/navbar-main/navbar-main.component.mjs +5 -5
  76. package/esm2020/lib/widgets/navbar-module/navbar-module.component.mjs +27 -61
  77. package/esm2020/lib/widgets/responsive-button-group/responsive-button-group.component.mjs +4 -4
  78. package/esm2020/lib/widgets/responsive-button-group/responsive-button-group.module.mjs +5 -5
  79. package/esm2020/lib/widgets/scheduler/scheduler.component.mjs +4 -4
  80. package/esm2020/lib/widgets/scheduler/scheduler.module.mjs +5 -5
  81. package/esm2020/lib/widgets/sort-table/sort-table-header.component.mjs +4 -4
  82. package/esm2020/lib/widgets/sort-table/sort-table-ngfor.component.mjs +4 -4
  83. package/esm2020/lib/widgets/sort-table/sort-table.directive.mjs +11 -11
  84. package/esm2020/lib/widgets/sort-table/sort-table.module.mjs +5 -5
  85. package/esm2020/lib/widgets/user-role/user-role.component.mjs +4 -4
  86. package/esm2020/lib/widgets/user-role/user-role.module.mjs +5 -5
  87. package/fesm2015/resolveio-client-lib-core.mjs +653 -583
  88. package/fesm2015/resolveio-client-lib-core.mjs.map +1 -1
  89. package/fesm2020/resolveio-client-lib-core.mjs +653 -583
  90. package/fesm2020/resolveio-client-lib-core.mjs.map +1 -1
  91. package/lib/auth/auth-guard.service.d.ts +26 -2
  92. package/lib/auth/can-deactivate-guard.service.d.ts +11 -1
  93. package/lib/directive/scroll.d.ts +1 -1
  94. package/lib/models/dialog.model.d.ts +1 -1
  95. package/lib/models/navbar-main-tab.model.d.ts +1 -1
  96. package/lib/models/permission.model.d.ts +2 -1
  97. package/lib/models/support-ticket.model.d.ts +5 -5
  98. package/lib/models/user-group.model.d.ts +1 -0
  99. package/lib/models/user.model.d.ts +1 -1
  100. package/lib/offline-manager.service.d.ts +1 -1
  101. package/lib/socket-manager.service.d.ts +1 -0
  102. package/lib/socket.service.d.ts +8 -3
  103. package/lib/token-manager.service.d.ts +1 -1
  104. package/lib/util/common.helper.d.ts +1 -1
  105. package/lib/util/validation.service.d.ts +3 -0
  106. package/lib/widgets/alert/alert.model.d.ts +1 -1
  107. package/lib/widgets/sort-table/sort-table.directive.d.ts +1 -1
  108. package/package.json +5 -36
@@ -214,9 +214,9 @@ export class AccountManagerService {
214
214
  });
215
215
  }
216
216
  }
217
- AccountManagerService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AccountManagerService, deps: [{ token: i1.Router }, { token: i2.SocketManagerService }, { token: i3.TokenManagerService }, { token: i4.HttpClient }, { token: i5.AlertService }, { token: i6.OfflineManagerService }], target: i0.ɵɵFactoryTarget.Injectable });
218
- AccountManagerService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AccountManagerService });
219
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AccountManagerService, decorators: [{
217
+ AccountManagerService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AccountManagerService, deps: [{ token: i1.Router }, { token: i2.SocketManagerService }, { token: i3.TokenManagerService }, { token: i4.HttpClient }, { token: i5.AlertService }, { token: i6.OfflineManagerService }], target: i0.ɵɵFactoryTarget.Injectable });
218
+ AccountManagerService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AccountManagerService });
219
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AccountManagerService, decorators: [{
220
220
  type: Injectable
221
221
  }], ctorParameters: function () { return [{ type: i1.Router }, { type: i2.SocketManagerService }, { type: i3.TokenManagerService }, { type: i4.HttpClient }, { type: i5.AlertService }, { type: i6.OfflineManagerService }]; } });
222
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudC1tYW5hZ2VyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvYWNjb3VudC1tYW5hZ2VyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFFckQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDN0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7O0FBR2xELE1BQU0sT0FBTyxxQkFBcUI7SUFTakMsWUFBb0IsT0FBZSxFQUFVLE9BQTZCLEVBQVUsTUFBMkIsRUFBVSxLQUFpQixFQUFVLE1BQW9CLEVBQVUsUUFBK0I7UUFBN0wsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQUFVLFlBQU8sR0FBUCxPQUFPLENBQXNCO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBcUI7UUFBVSxVQUFLLEdBQUwsS0FBSyxDQUFZO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBYztRQUFVLGFBQVEsR0FBUixRQUFRLENBQXVCO1FBUGpOLFNBQUksR0FBRyxJQUFJLGVBQWUsQ0FBWSxJQUFJLENBQUMsQ0FBQztRQUM1QyxrQkFBYSxHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQ3BELG1CQUFjLEdBQUcsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7UUFHckQsZ0JBQVcsR0FBRyxJQUFJLENBQUM7SUFJbkIsQ0FBQztJQUVNLGdCQUFnQixDQUFDLFdBQVc7UUFDbEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7UUFFL0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBRWpDLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBRWpELElBQUksS0FBSyxFQUFFO1lBQ1YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUV0QixXQUFXLENBQUMsR0FBRyxFQUFFO2dCQUNoQixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3ZCLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztTQUNUO2FBQ0k7WUFDSixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUM5QjtJQUNGLENBQUM7SUFFTyxTQUFTLENBQUMsS0FBYTtRQUM5QixJQUFJLFNBQVMsQ0FBQyxNQUFNLEVBQUU7WUFDckIsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsRUFBRTtnQkFDekMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ2hDLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDM0I7U0FDRDthQUNJO1lBQ0osSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsRUFBRTtnQkFFNUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUNuQixJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFFL0IsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxFQUFFLFdBQVcsQ0FBQyxDQUFDO2dCQUU1RCxJQUFJLElBQUksRUFBRTtvQkFDVCxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztpQkFDckI7Z0JBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLEVBQUU7b0JBQ25DLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2lCQUM5QjthQUNEO1NBQ0Q7SUFDRixDQUFDO0lBRU0sY0FBYyxDQUFDLFlBQVk7UUFDakMsSUFBSSxZQUFZLEVBQUU7WUFDakIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLEdBQUcsY0FBYyxFQUFFLEVBQUMsWUFBWSxFQUFFLFlBQVksRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBUSxFQUFFLEVBQUU7Z0JBQ3pILElBQUksR0FBRyxDQUFDLEtBQUssRUFBRTtvQkFDZCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztpQkFDOUI7cUJBQ0k7b0JBQ0osSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQ3RELElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBRWhDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFFbEMsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO3dCQUNmLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7cUJBQ3pCO29CQUVELElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxZQUFZLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUFFO3dCQUNyRyxJQUFJLE9BQU8sRUFBRTs0QkFDWixJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxHQUFHLEtBQUssT0FBTyxDQUFDLEdBQUcsRUFBRTtnQ0FDckUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQzs2QkFDOUY7aUNBQ0k7Z0NBQ0osSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7Z0NBQ3hCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2dDQUMvQixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQ0FDOUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7NkJBQ2hDO3lCQUNEO29CQUNGLENBQUMsQ0FBQyxDQUFDO2lCQUNIO1lBQ0YsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFO2dCQUNSLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQy9CLENBQUMsQ0FBQyxDQUFDO1NBQ0g7SUFDRixDQUFDO0lBRU0sS0FBSyxDQUFDLFFBQWdCLEVBQUUsUUFBZ0I7UUFDOUMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUN0QyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsR0FBRyxRQUFRLEVBQUUsRUFBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQVEsRUFBRSxFQUFFO2dCQUMvSCxJQUFJLEdBQUcsQ0FBQyxLQUFLLEVBQUU7b0JBQ2QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztvQkFDMUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztpQkFDbkI7cUJBQ0k7b0JBQ0osSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsY0FBYyxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQ3ZELElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDdEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQywwQkFBMEI7aUJBQ3JEO1lBQ0YsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUUsQ0FBQyxDQUFDLENBQUM7UUFDZixDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7SUFFTSxRQUFRLENBQUMsV0FBbUI7UUFDbEMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUN0QyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsR0FBRyxXQUFXLEVBQUUsRUFBQyxRQUFRLEVBQUUsV0FBVyxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFRLEVBQUUsRUFBRTtnQkFDakgsSUFBSSxHQUFHLENBQUMsS0FBSyxFQUFFO29CQUNkLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQzFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7aUJBQ25CO3FCQUNJO29CQUNKLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLGNBQWMsRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUN2RCxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQ3RDLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsMEJBQTBCO2lCQUNyRDtZQUNGLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2YsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDO0lBRU0saUJBQWlCLENBQUMsUUFBZ0I7UUFDeEMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUN0QyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsR0FBRyxnQkFBZ0IsRUFBRSxFQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQVEsRUFBRSxFQUFFO2dCQUNuSCxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDZixDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBRSxDQUFDLENBQUMsQ0FBQztRQUNmLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVNLE1BQU07UUFDWixPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQ3RDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBRXBDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2YsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3JCLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxDQUFDO2dCQUN4QyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQztnQkFDdkMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsQ0FBQztnQkFDM0IsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUNuQixPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDZixDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDVCxDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7SUFFTSxVQUFVLENBQUMsS0FBSztRQUN0QixJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRU0sV0FBVztRQUNqQixJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFTSxPQUFPLENBQUMsSUFBZTtRQUM3QixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN0QixDQUFDO0lBRU0sT0FBTztRQUNiLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRU0sZUFBZTtRQUNyQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDakMsQ0FBQztJQUVNLFlBQVksQ0FBQyxJQUFZO1FBQy9CLElBQUksR0FBRyxHQUFHLEtBQUssQ0FBQztRQUVoQixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFO1lBQzVCLE9BQU8sSUFBSSxDQUFDO1NBQ1o7UUFFRCxJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRWhDLElBQUksSUFBSSxFQUFFO1lBQ1QsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUNqQyxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRTtvQkFDdkQsR0FBRyxHQUFHLElBQUksQ0FBQztpQkFDWDtZQUNGLENBQUMsQ0FBQyxDQUFDO1lBRUgsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFO2dCQUM1RCxHQUFHLEdBQUcsSUFBSSxDQUFDO2FBQ1g7WUFFRCxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFO2dCQUMxRCxHQUFHLEdBQUcsSUFBSSxDQUFDO2FBQ1g7U0FDRDtRQUVELE9BQU8sR0FBRyxDQUFDO0lBQ1osQ0FBQztJQUVNLGdCQUFnQjtRQUN0QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUMsa0JBQWtCO0lBQzFGLENBQUM7SUFFTSxlQUFlO1FBQ3JCLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDdEMsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRTtnQkFDN0IsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ2Q7aUJBQ0k7Z0JBQ0osSUFBSSxRQUFRLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtvQkFDcEQsSUFBSSxJQUFJLEVBQUU7d0JBQ1QsUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDO3dCQUN2QixPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7cUJBQ2Q7Z0JBQ0YsQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQyxDQUFDO2FBQ2I7UUFDRixDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7SUFFTSxnQkFBZ0I7UUFDdEIsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUN0QyxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFO2dCQUM5QixPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDZDtpQkFDSTtnQkFDSixJQUFJLFFBQVEsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO29CQUNyRCxJQUFJLElBQUksRUFBRTt3QkFDVCxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUM7d0JBQ3ZCLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztxQkFDZDtnQkFDRixDQUFDLENBQUMsQ0FBQzthQUNIO1FBQ0YsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDOztrSEF2T1cscUJBQXFCO3NIQUFyQixxQkFBcUI7MkZBQXJCLHFCQUFxQjtrQkFEakMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBVc2VyTW9kZWwgfSBmcm9tICcuL21vZGVscy91c2VyLm1vZGVsJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNvY2tldE1hbmFnZXJTZXJ2aWNlIH0gZnJvbSAnLi9zb2NrZXQtbWFuYWdlci5zZXJ2aWNlJztcbmltcG9ydCB7IFRva2VuTWFuYWdlclNlcnZpY2UgfSBmcm9tICcuL3Rva2VuLW1hbmFnZXIuc2VydmljZSc7XG5pbXBvcnQgeyBBbGVydFNlcnZpY2UgfSBmcm9tICcuL3dpZGdldHMvYWxlcnQvYWxlcnQuc2VydmljZSc7XG5pbXBvcnQgeyBPZmZsaW5lTWFuYWdlclNlcnZpY2UgfSBmcm9tICcuL29mZmxpbmUtbWFuYWdlci5zZXJ2aWNlJztcbmltcG9ydCB7IGRhdGVSZXZpdmVyIH0gZnJvbSAnLi91dGlsL2NvbW1vbi5oZWxwZXInO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBY2NvdW50TWFuYWdlclNlcnZpY2Uge1xuXG5cdHVzZXIgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFVzZXJNb2RlbD4obnVsbCk7XG5cdGluaXRDb21wbGV0ZWQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcblx0bG9naW5Db21wbGV0ZWQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcblx0dXNlciQ6IFN1YnNjcmlwdGlvbjtcblxuXHRlbnZpcm9ubWVudCA9IG51bGw7XG5cblx0Y29uc3RydWN0b3IocHJpdmF0ZSBfcm91dGVyOiBSb3V0ZXIsIHByaXZhdGUgX3NvY2tldDogU29ja2V0TWFuYWdlclNlcnZpY2UsIHByaXZhdGUgX3Rva2VuOiBUb2tlbk1hbmFnZXJTZXJ2aWNlLCBwcml2YXRlIF9odHRwOiBIdHRwQ2xpZW50LCBwcml2YXRlIF9hbGVydDogQWxlcnRTZXJ2aWNlLCBwcml2YXRlIF9vZmZsaW5lOiBPZmZsaW5lTWFuYWdlclNlcnZpY2UpIHtcblx0XHRcblx0fVxuXG5cdHB1YmxpYyBpbml0TG9naW5NYW5hZ2VyKGVudmlyb25tZW50KTogdm9pZCB7XG5cdFx0dGhpcy5lbnZpcm9ubWVudCA9IGVudmlyb25tZW50O1xuXHRcdFxuXHRcdHRoaXMuX3NvY2tldC5pbml0U29ja2V0TWFuYWdlcigpO1xuXG5cdFx0bGV0IHRva2VuID0gdGhpcy5fdG9rZW4uZ2V0VG9rZW4oJ3JlZnJlc2hUb2tlbicpO1xuXG5cdFx0aWYgKHRva2VuKSB7XG5cdFx0XHR0aGlzLmluaXRMb2dpbih0b2tlbik7XG5cblx0XHRcdHNldEludGVydmFsKCgpID0+IHtcblx0XHRcdFx0dGhpcy5pbml0TG9naW4odG9rZW4pO1xuXHRcdFx0fSwgMzAwMCk7XG5cdFx0fVxuXHRcdGVsc2Uge1xuXHRcdFx0dGhpcy5pbml0Q29tcGxldGVkLm5leHQodHJ1ZSk7XG5cdFx0fVxuXHR9XG5cblx0cHJpdmF0ZSBpbml0TG9naW4odG9rZW46IHN0cmluZykge1xuXHRcdGlmIChuYXZpZ2F0b3Iub25MaW5lKSB7XG5cdFx0XHRpZiAodGhpcy5fb2ZmbGluZS5vZmZsaW5lTW9kZS5nZXRWYWx1ZSgpKSB7XG5cdFx0XHRcdHRoaXMuX29mZmxpbmUuc2V0T2ZmbGluZShmYWxzZSk7XG5cdFx0XHRcdHRoaXMuZ2V0QWNjZXNzVG9rZW4odG9rZW4pO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRlbHNlIHtcblx0XHRcdGlmICghdGhpcy5fb2ZmbGluZS5vZmZsaW5lTW9kZS5nZXRWYWx1ZSgpIHx8ICF0aGlzLmluaXRDb21wbGV0ZWQuZ2V0VmFsdWUoKSkge1xuXG5cdFx0XHRcdHRoaXMuY2xvc2VTb2NrZXQoKTtcblx0XHRcdFx0dGhpcy5fb2ZmbGluZS5zZXRPZmZsaW5lKHRydWUpO1xuXG5cdFx0XHRcdGxldCB1c2VyID0gSlNPTi5wYXJzZSh0aGlzLl9vZmZsaW5lLmdldFVzZXIoKSwgZGF0ZVJldml2ZXIpO1xuXG5cdFx0XHRcdGlmICh1c2VyKSB7XG5cdFx0XHRcdFx0dGhpcy51c2VyLm5leHQodXNlcik7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRpZiAoIXRoaXMuaW5pdENvbXBsZXRlZC5nZXRWYWx1ZSgpKSB7XG5cdFx0XHRcdFx0dGhpcy5pbml0Q29tcGxldGVkLm5leHQodHJ1ZSk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRwdWJsaWMgZ2V0QWNjZXNzVG9rZW4ocmVmcmVzaFRva2VuKSB7XG5cdFx0aWYgKHJlZnJlc2hUb2tlbikge1xuXHRcdFx0dGhpcy5faHR0cC5wb3N0KHRoaXMuZW52aXJvbm1lbnQuU0VSVkVSX1VSTCArICcvYWNjZXNzVG9rZW4nLCB7cmVmcmVzaFRva2VuOiByZWZyZXNoVG9rZW59KS50b1Byb21pc2UoKS50aGVuKChyZXM6IGFueSkgPT4ge1xuXHRcdFx0XHRpZiAocmVzLmVycm9yKSB7XG5cdFx0XHRcdFx0dGhpcy5pbml0Q29tcGxldGVkLm5leHQodHJ1ZSk7XG5cdFx0XHRcdH1cblx0XHRcdFx0ZWxzZSB7XG5cdFx0XHRcdFx0dGhpcy5fdG9rZW4uc2V0VG9rZW4oJ2FjY2Vzc1Rva2VuJywgcmVzLnJlc3VsdC50b2tlbik7XG5cdFx0XHRcdFx0dGhpcy51c2VyLm5leHQocmVzLnJlc3VsdC51c2VyKTtcblxuXHRcdFx0XHRcdHRoaXMub3BlblNvY2tldChyZXMucmVzdWx0LnRva2VuKTtcblxuXHRcdFx0XHRcdGlmICh0aGlzLnVzZXIkKSB7XG5cdFx0XHRcdFx0XHR0aGlzLnVzZXIkLnVuc3Vic2NyaWJlKCk7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0dGhpcy51c2VyJCA9IHRoaXMuX3NvY2tldC5zdWJzY3JpYmVCeXBhc3NSb3V0ZSgndXNlcldpdGhJZCcsIHJlcy5yZXN1bHQudXNlci5faWQpLnN1YnNjcmliZShyZXNVc2VyID0+IHtcblx0XHRcdFx0XHRcdGlmIChyZXNVc2VyKSB7XG5cdFx0XHRcdFx0XHRcdGlmICh0aGlzLnVzZXIuZ2V0VmFsdWUoKSAmJiB0aGlzLnVzZXIuZ2V0VmFsdWUoKS5faWQgIT09IHJlc1VzZXIuX2lkKSB7XG5cdFx0XHRcdFx0XHRcdFx0dGhpcy5fc29ja2V0LmNhbGwoJ2luY29ycmVjdFVzZXInLCB0aGlzLnVzZXIuZ2V0VmFsdWUoKSwgcmVzVXNlciwgdGhpcy5fc29ja2V0LmdldFN1YkFycmF5KCkpO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRcdHRoaXMudXNlci5uZXh0KHJlc1VzZXIpO1xuXHRcdFx0XHRcdFx0XHRcdHRoaXMubG9naW5Db21wbGV0ZWQubmV4dCh0cnVlKTtcblx0XHRcdFx0XHRcdFx0XHR0aGlzLmluaXRDb21wbGV0ZWQubmV4dCh0cnVlKTtcblx0XHRcdFx0XHRcdFx0XHR0aGlzLl9vZmZsaW5lLnNhdmVVc2VyKHJlc1VzZXIpO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH1cblx0XHRcdH0sIGVyciA9PiB7XG5cdFx0XHRcdHRoaXMuaW5pdENvbXBsZXRlZC5uZXh0KHRydWUpO1xuXHRcdFx0fSk7XG5cdFx0fVxuXHR9XG5cblx0cHVibGljIGxvZ0luKHVzZXJuYW1lOiBzdHJpbmcsIHBhc3N3b3JkOiBzdHJpbmcpIHtcblx0XHRyZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuXHRcdFx0dGhpcy5faHR0cC5wb3N0KHRoaXMuZW52aXJvbm1lbnQuU0VSVkVSX1VSTCArICcvbG9naW4nLCB7dXNlcm5hbWU6IHVzZXJuYW1lLCBwYXNzd29yZDogcGFzc3dvcmR9KS50b1Byb21pc2UoKS50aGVuKChyZXM6IGFueSkgPT4ge1x0XG5cdFx0XHRcdGlmIChyZXMuZXJyb3IpIHtcblx0XHRcdFx0XHR0aGlzLl9hbGVydC5zZXRBbGVydCgnZXJyb3InLCByZXMucmVzdWx0KTtcblx0XHRcdFx0XHRyZWplY3QocmVzLnJlc3VsdCk7XG5cdFx0XHRcdH1cblx0XHRcdFx0ZWxzZSB7XG5cdFx0XHRcdFx0dGhpcy5fdG9rZW4uc2V0VG9rZW4oJ3JlZnJlc2hUb2tlbicsIHJlcy5yZXN1bHQudG9rZW4pO1xuXHRcdFx0XHRcdHRoaXMuZ2V0QWNjZXNzVG9rZW4ocmVzLnJlc3VsdC50b2tlbik7XG5cdFx0XHRcdFx0cmVzb2x2ZShyZXMucmVzdWx0LnRva2VuKTsgLy9zaG91bGQgYmUgcmVzb2x2aW5nIHVzZXJcblx0XHRcdFx0fVxuXHRcdFx0fSwgZXJyID0+IHt9KTtcblx0XHR9KTtcblx0fVxuXG5cdHB1YmxpYyBsb2dJbjM2NShhenVyZV90b2tlbjogc3RyaW5nKSB7XG5cdFx0cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcblx0XHRcdHRoaXMuX2h0dHAucG9zdCh0aGlzLmVudmlyb25tZW50LlNFUlZFUl9VUkwgKyAnL2xvZ2luMzY1Jywge2lkX3Rva2VuOiBhenVyZV90b2tlbn0pLnRvUHJvbWlzZSgpLnRoZW4oKHJlczogYW55KSA9PiB7XHRcblx0XHRcdFx0aWYgKHJlcy5lcnJvcikge1xuXHRcdFx0XHRcdHRoaXMuX2FsZXJ0LnNldEFsZXJ0KCdlcnJvcicsIHJlcy5yZXN1bHQpO1xuXHRcdFx0XHRcdHJlamVjdChyZXMucmVzdWx0KTtcblx0XHRcdFx0fVxuXHRcdFx0XHRlbHNlIHtcblx0XHRcdFx0XHR0aGlzLl90b2tlbi5zZXRUb2tlbigncmVmcmVzaFRva2VuJywgcmVzLnJlc3VsdC50b2tlbik7XG5cdFx0XHRcdFx0dGhpcy5nZXRBY2Nlc3NUb2tlbihyZXMucmVzdWx0LnRva2VuKTtcblx0XHRcdFx0XHRyZXNvbHZlKHJlcy5yZXN1bHQudG9rZW4pOyAvL3Nob3VsZCBiZSByZXNvbHZpbmcgdXNlclxuXHRcdFx0XHR9XG5cdFx0XHR9LCBlcnIgPT4ge30pO1xuXHRcdH0pO1xuXHR9XG5cblx0cHVibGljIHJlc2V0VXNlclBhc3N3b3JkKHVzZXJuYW1lOiBzdHJpbmcpIHtcblx0XHRyZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuXHRcdFx0dGhpcy5faHR0cC5wb3N0KHRoaXMuZW52aXJvbm1lbnQuU0VSVkVSX1VSTCArICcvcmVzZXRQYXNzd29yZCcsIHt1c2VybmFtZTogdXNlcm5hbWV9KS50b1Byb21pc2UoKS50aGVuKChyZXM6IGFueSkgPT4ge1x0XG5cdFx0XHRcdHJlc29sdmUodHJ1ZSk7XG5cdFx0XHR9LCBlcnIgPT4ge30pO1xuXHRcdH0pO1xuXHR9XG5cblx0cHVibGljIGxvZ091dCgpIHtcblx0XHRyZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuXHRcdFx0dGhpcy5fcm91dGVyLm5hdmlnYXRlQnlVcmwoJy9ob21lJyk7XG5cdFx0XHRcblx0XHRcdHNldFRpbWVvdXQoKCkgPT4ge1xuXHRcdFx0XHR0aGlzLnVzZXIubmV4dChudWxsKTtcblx0XHRcdFx0dGhpcy5fdG9rZW4ucmVtb3ZlVG9rZW4oJ3JlZnJlc2hUb2tlbicpO1xuXHRcdFx0XHR0aGlzLl90b2tlbi5yZW1vdmVUb2tlbignYWNjZXNzVG9rZW4nKTtcblx0XHRcdFx0dGhpcy5fb2ZmbGluZS5yZW1vdmVVc2VyKCk7XG5cdFx0XHRcdHRoaXMuY2xvc2VTb2NrZXQoKTtcblx0XHRcdFx0cmVzb2x2ZSh0cnVlKTtcblx0XHRcdH0sIDUwMCk7XG5cdFx0fSk7XG5cdH1cblxuXHRwdWJsaWMgb3BlblNvY2tldCh0b2tlbikge1xuXHRcdHRoaXMuX3NvY2tldC5vcGVuU29ja2V0KHRoaXMuZW52aXJvbm1lbnQsIFt0b2tlbl0pO1xuXHR9XG5cblx0cHVibGljIGNsb3NlU29ja2V0KCkge1xuXHRcdHRoaXMuX3NvY2tldC5jbG9zZVNvY2tldCgpO1xuXHR9XG5cblx0cHVibGljIHNldFVzZXIodXNlcjogVXNlck1vZGVsKSB7XG5cdFx0dGhpcy51c2VyLm5leHQodXNlcik7XG5cdH1cblxuXHRwdWJsaWMgZ2V0VXNlcigpOiBVc2VyTW9kZWwge1xuXHRcdHJldHVybiB0aGlzLnVzZXIuZ2V0VmFsdWUoKTtcblx0fVxuXG5cdHB1YmxpYyBnZXRTb2NrZXRTdGF0dXMoKSB7XG5cdFx0cmV0dXJuIHRoaXMuX3NvY2tldC5nZXRTdGF0dXMoKTtcblx0fVxuXG5cdHB1YmxpYyBpc1VzZXJJblZpZXcodmlldzogc3RyaW5nKSB7XG5cdFx0bGV0IHJlcyA9IGZhbHNlO1xuXG5cdFx0aWYgKHRoaXMuaXNVc2VyU3VwZXJBZG1pbigpKSB7XG5cdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHR9XG5cblx0XHRsZXQgdXNlciA9IHRoaXMudXNlci5nZXRWYWx1ZSgpO1xuXG5cdFx0aWYgKHVzZXIpIHtcblx0XHRcdHVzZXIucm9sZXMuZ3JvdXBzLmZvckVhY2goZ3JvdXAgPT4ge1xuXHRcdFx0XHRpZiAoZ3JvdXAudmlld3MuZmlsdGVyKGEgPT4gYS5zdGFydHNXaXRoKHZpZXcpKS5sZW5ndGgpIHtcblx0XHRcdFx0XHRyZXMgPSB0cnVlO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XG5cdFx0XHRpZiAodXNlci5yb2xlcy5taXNjcy5maWx0ZXIoYSA9PiBhLnN0YXJ0c1dpdGgodmlldykpLmxlbmd0aCkge1xuXHRcdFx0XHRyZXMgPSB0cnVlO1xuXHRcdFx0fVxuXHRcblx0XHRcdGlmICh1c2VyLnJvbGVzLmdyb3Vwcy5maWx0ZXIoYSA9PiBhLm5hbWUgPT09IHZpZXcpLmxlbmd0aCkge1xuXHRcdFx0XHRyZXMgPSB0cnVlO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHJldHVybiByZXM7XG5cdH1cblxuXHRwdWJsaWMgaXNVc2VyU3VwZXJBZG1pbigpIHtcblx0XHRyZXR1cm4gdGhpcy51c2VyLmdldFZhbHVlKCkgJiYgdGhpcy51c2VyLmdldFZhbHVlKCkucm9sZXMuc3VwZXJfYWRtaW47IC8vUmVtb3ZlIGFueSBsYXRlclxuXHR9XG5cblx0cHVibGljIGlzSW5pdENvbXBsZXRlZCgpIHtcblx0XHRyZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuXHRcdFx0aWYgKHRoaXMuaW5pdENvbXBsZXRlZC52YWx1ZSkge1xuXHRcdFx0XHRyZXNvbHZlKHRydWUpO1xuXHRcdFx0fVxuXHRcdFx0ZWxzZSB7XG5cdFx0XHRcdGxldCBpbml0U3ViJCA9IHRoaXMuaW5pdENvbXBsZXRlZC5zdWJzY3JpYmUoKGRhdGEpID0+IHtcblx0XHRcdFx0XHRpZiAoZGF0YSkge1xuXHRcdFx0XHRcdFx0aW5pdFN1YiQudW5zdWJzY3JpYmUoKTtcblx0XHRcdFx0XHRcdHJlc29sdmUodHJ1ZSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9LCAoKSA9PiB7fSk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cblxuXHRwdWJsaWMgaXNMb2dpbkNvbXBsZXRlZCgpIHtcblx0XHRyZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuXHRcdFx0aWYgKHRoaXMubG9naW5Db21wbGV0ZWQudmFsdWUpIHtcblx0XHRcdFx0cmVzb2x2ZSh0cnVlKTtcblx0XHRcdH1cblx0XHRcdGVsc2Uge1xuXHRcdFx0XHRsZXQgaW5pdFN1YiQgPSB0aGlzLmxvZ2luQ29tcGxldGVkLnN1YnNjcmliZSgoZGF0YSkgPT4ge1xuXHRcdFx0XHRcdGlmIChkYXRhKSB7XG5cdFx0XHRcdFx0XHRpbml0U3ViJC51bnN1YnNjcmliZSgpO1xuXHRcdFx0XHRcdFx0cmVzb2x2ZSh0cnVlKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG59XG4iXX0=
222
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudC1tYW5hZ2VyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvYWNjb3VudC1tYW5hZ2VyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFFckQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDN0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7O0FBR2xELE1BQU0sT0FBTyxxQkFBcUI7SUFTakMsWUFBb0IsT0FBZSxFQUFVLE9BQTZCLEVBQVUsTUFBMkIsRUFBVSxLQUFpQixFQUFVLE1BQW9CLEVBQVUsUUFBK0I7UUFBN0wsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQUFVLFlBQU8sR0FBUCxPQUFPLENBQXNCO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBcUI7UUFBVSxVQUFLLEdBQUwsS0FBSyxDQUFZO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBYztRQUFVLGFBQVEsR0FBUixRQUFRLENBQXVCO1FBUGpOLFNBQUksR0FBRyxJQUFJLGVBQWUsQ0FBWSxJQUFJLENBQUMsQ0FBQztRQUM1QyxrQkFBYSxHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFD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USxDQUFDLFdBQVcsRUFBRSxDQUFDO3dCQUN2QixPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7cUJBQ2Q7Z0JBQ0YsQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQyxDQUFDO2FBQ2I7UUFDRixDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7SUFFTSxnQkFBZ0I7UUFDdEIsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUN0QyxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFO2dCQUM5QixPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDZDtpQkFDSTtnQkFDSixJQUFJLFFBQVEsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO29CQUNyRCxJQUFJLElBQUksRUFBRTt3QkFDVCxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUM7d0JBQ3ZCLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztxQkFDZDtnQkFDRixDQUFDLENBQUMsQ0FBQzthQUNIO1FBQ0YsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDOzttSEF2T1cscUJBQXFCO3VIQUFyQixxQkFBcUI7NEZBQXJCLHFCQUFxQjtrQkFEakMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBVc2VyTW9kZWwgfSBmcm9tICcuL21vZGVscy91c2VyLm1vZGVsJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNvY2tldE1hbmFnZXJTZXJ2aWNlIH0gZnJvbSAnLi9zb2NrZXQtbWFuYWdlci5zZXJ2aWNlJztcbmltcG9ydCB7IFRva2VuTWFuYWdlclNlcnZpY2UgfSBmcm9tICcuL3Rva2VuLW1hbmFnZXIuc2VydmljZSc7XG5pbXBvcnQgeyBBbGVydFNlcnZpY2UgfSBmcm9tICcuL3dpZGdldHMvYWxlcnQvYWxlcnQuc2VydmljZSc7XG5pbXBvcnQgeyBPZmZsaW5lTWFuYWdlclNlcnZpY2UgfSBmcm9tICcuL29mZmxpbmUtbWFuYWdlci5zZXJ2aWNlJztcbmltcG9ydCB7IGRhdGVSZXZpdmVyIH0gZnJvbSAnLi91dGlsL2NvbW1vbi5oZWxwZXInO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBY2NvdW50TWFuYWdlclNlcnZpY2Uge1xuXG5cdHVzZXIgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFVzZXJNb2RlbD4obnVsbCk7XG5cdGluaXRDb21wbGV0ZWQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcblx0bG9naW5Db21wbGV0ZWQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcblx0dXNlciQ6IFN1YnNjcmlwdGlvbjtcblxuXHRlbnZpcm9ubWVudCA9IG51bGw7XG5cblx0Y29uc3RydWN0b3IocHJpdmF0ZSBfcm91dGVyOiBSb3V0ZXIsIHByaXZhdGUgX3NvY2tldDogU29ja2V0TWFuYWdlclNlcnZpY2UsIHByaXZhdGUgX3Rva2VuOiBUb2tlbk1hbmFnZXJTZXJ2aWNlLCBwcml2YXRlIF9odHRwOiBIdHRwQ2xpZW50LCBwcml2YXRlIF9hbGVydDogQWxlcnRTZXJ2aWNlLCBwcml2YXRlIF9vZmZsaW5lOiBPZmZsaW5lTWFuYWdlclNlcnZpY2UpIHtcblx0XHRcblx0fVxuXG5cdHB1YmxpYyBpbml0TG9naW5NYW5hZ2VyKGVudmlyb25tZW50KTogdm9pZCB7XG5cdFx0dGhpcy5lbnZpcm9ubWVudCA9IGVudmlyb25tZW50O1xuXHRcdFxuXHRcdHRoaXMuX3NvY2tldC5pbml0U29ja2V0TWFuYWdlcigpO1xuXG5cdFx0bGV0IHRva2VuID0gdGhpcy5fdG9rZW4uZ2V0VG9rZW4oJ3JlZnJlc2hUb2tlbicpO1xuXG5cdFx0aWYgKHRva2VuKSB7XG5cdFx0XHR0aGlzLmluaXRMb2dpbih0b2tlbik7XG5cblx0XHRcdHNldEludGVydmFsKCgpID0+IHtcblx0XHRcdFx0dGhpcy5pbml0TG9naW4odG9rZW4pO1xuXHRcdFx0fSwgMzAwMCk7XG5cdFx0fVxuXHRcdGVsc2Uge1xuXHRcdFx0dGhpcy5pbml0Q29tcGxldGVkLm5leHQodHJ1ZSk7XG5cdFx0fVxuXHR9XG5cblx0cHJpdmF0ZSBpbml0TG9naW4odG9rZW46IHN0cmluZykge1xuXHRcdGlmIChuYXZpZ2F0b3Iub25MaW5lKSB7XG5cdFx0XHRpZiAodGhpcy5fb2ZmbGluZS5vZmZsaW5lTW9kZS5nZXRWYWx1ZSgpKSB7XG5cdFx0XHRcdHRoaXMuX29mZmxpbmUuc2V0T2ZmbGluZShmYWxzZSk7XG5cdFx0XHRcdHRoaXMuZ2V0QWNjZXNzVG9rZW4odG9rZW4pO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRlbHNlIHtcblx0XHRcdGlmICghdGhpcy5fb2ZmbGluZS5vZmZsaW5lTW9kZS5nZXRWYWx1ZSgpIHx8ICF0aGlzLmluaXRDb21wbGV0ZWQuZ2V0VmFsdWUoKSkge1xuXG5cdFx0XHRcdHRoaXMuY2xvc2VTb2NrZXQoKTtcblx0XHRcdFx0dGhpcy5fb2ZmbGluZS5zZXRPZmZsaW5lKHRydWUpO1xuXG5cdFx0XHRcdGxldCB1c2VyID0gSlNPTi5wYXJzZSh0aGlzLl9vZmZsaW5lLmdldFVzZXIoKSwgZGF0ZVJldml2ZXIpO1xuXG5cdFx0XHRcdGlmICh1c2VyKSB7XG5cdFx0XHRcdFx0dGhpcy51c2VyLm5leHQodXNlcik7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRpZiAoIXRoaXMuaW5pdENvbXBsZXRlZC5nZXRWYWx1ZSgpKSB7XG5cdFx0XHRcdFx0dGhpcy5pbml0Q29tcGxldGVkLm5leHQodHJ1ZSk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRwdWJsaWMgZ2V0QWNjZXNzVG9rZW4ocmVmcmVzaFRva2VuKSB7XG5cdFx0aWYgKHJlZnJlc2hUb2tlbikge1xuXHRcdFx0dGhpcy5faHR0cC5wb3N0KHRoaXMuZW52aXJvbm1lbnQuU0VSVkVSX1VSTCArICcvYWNjZXNzVG9rZW4nLCB7cmVmcmVzaFRva2VuOiByZWZyZXNoVG9rZW59KS50b1Byb21pc2UoKS50aGVuKChyZXM6IGFueSkgPT4ge1xuXHRcdFx0XHRpZiAocmVzLmVycm9yKSB7XG5cdFx0XHRcdFx0dGhpcy5pbml0Q29tcGxldGVkLm5leHQodHJ1ZSk7XG5cdFx0XHRcdH1cblx0XHRcdFx0ZWxzZSB7XG5cdFx0XHRcdFx0dGhpcy5fdG9rZW4uc2V0VG9rZW4oJ2FjY2Vzc1Rva2VuJywgcmVzLnJlc3VsdC50b2tlbik7XG5cdFx0XHRcdFx0dGhpcy51c2VyLm5leHQocmVzLnJlc3VsdC51c2VyKTtcblxuXHRcdFx0XHRcdHRoaXMub3BlblNvY2tldChyZXMucmVzdWx0LnRva2VuKTtcblxuXHRcdFx0XHRcdGlmICh0aGlzLnVzZXIkKSB7XG5cdFx0XHRcdFx0XHR0aGlzLnVzZXIkLnVuc3Vic2NyaWJlKCk7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0dGhpcy51c2VyJCA9IHRoaXMuX3NvY2tldC5zdWJzY3JpYmVCeXBhc3NSb3V0ZSgndXNlcldpdGhJZCcsIHJlcy5yZXN1bHQudXNlci5faWQpLnN1YnNjcmliZShyZXNVc2VyID0+IHtcblx0XHRcdFx0XHRcdGlmIChyZXNVc2VyKSB7XG5cdFx0XHRcdFx0XHRcdGlmICh0aGlzLnVzZXIuZ2V0VmFsdWUoKSAmJiB0aGlzLnVzZXIuZ2V0VmFsdWUoKS5faWQgIT09IHJlc1VzZXIuX2lkKSB7XG5cdFx0XHRcdFx0XHRcdFx0dGhpcy5fc29ja2V0LmNhbGwoJ2luY29ycmVjdFVzZXInLCB0aGlzLnVzZXIuZ2V0VmFsdWUoKSwgcmVzVXNlciwgdGhpcy5fc29ja2V0LmdldFN1YkFycmF5KCkpO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRcdHRoaXMudXNlci5uZXh0KHJlc1VzZXIpO1xuXHRcdFx0XHRcdFx0XHRcdHRoaXMubG9naW5Db21wbGV0ZWQubmV4dCh0cnVlKTtcblx0XHRcdFx0XHRcdFx0XHR0aGlzLmluaXRDb21wbGV0ZWQubmV4dCh0cnVlKTtcblx0XHRcdFx0XHRcdFx0XHR0aGlzLl9vZmZsaW5lLnNhdmVVc2VyKHJlc1VzZXIpO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH1cblx0XHRcdH0sIGVyciA9PiB7XG5cdFx0XHRcdHRoaXMuaW5pdENvbXBsZXRlZC5uZXh0KHRydWUpO1xuXHRcdFx0fSk7XG5cdFx0fVxuXHR9XG5cblx0cHVibGljIGxvZ0luKHVzZXJuYW1lOiBzdHJpbmcsIHBhc3N3b3JkOiBzdHJpbmcpIHtcblx0XHRyZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuXHRcdFx0dGhpcy5faHR0cC5wb3N0KHRoaXMuZW52aXJvbm1lbnQuU0VSVkVSX1VSTCArICcvbG9naW4nLCB7dXNlcm5hbWU6IHVzZXJuYW1lLCBwYXNzd29yZDogcGFzc3dvcmR9KS50b1Byb21pc2UoKS50aGVuKChyZXM6IGFueSkgPT4ge1x0XG5cdFx0XHRcdGlmIChyZXMuZXJyb3IpIHtcblx0XHRcdFx0XHR0aGlzLl9hbGVydC5zZXRBbGVydCgnZXJyb3InLCByZXMucmVzdWx0KTtcblx0XHRcdFx0XHRyZWplY3QocmVzLnJlc3VsdCk7XG5cdFx0XHRcdH1cblx0XHRcdFx0ZWxzZSB7XG5cdFx0XHRcdFx0dGhpcy5fdG9rZW4uc2V0VG9rZW4oJ3JlZnJlc2hUb2tlbicsIHJlcy5yZXN1bHQudG9rZW4pO1xuXHRcdFx0XHRcdHRoaXMuZ2V0QWNjZXNzVG9rZW4ocmVzLnJlc3VsdC50b2tlbik7XG5cdFx0XHRcdFx0cmVzb2x2ZShyZXMucmVzdWx0LnRva2VuKTsgLy9zaG91bGQgYmUgcmVzb2x2aW5nIHVzZXJcblx0XHRcdFx0fVxuXHRcdFx0fSwgZXJyID0+IHt9KTtcblx0XHR9KTtcblx0fVxuXG5cdHB1YmxpYyBsb2dJbjM2NShhenVyZV90b2tlbjogc3RyaW5nKSB7XG5cdFx0cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcblx0XHRcdHRoaXMuX2h0dHAucG9zdCh0aGlzLmVudmlyb25tZW50LlNFUlZFUl9VUkwgKyAnL2xvZ2luMzY1Jywge2lkX3Rva2VuOiBhenVyZV90b2tlbn0pLnRvUHJvbWlzZSgpLnRoZW4oKHJlczogYW55KSA9PiB7XHRcblx0XHRcdFx0aWYgKHJlcy5lcnJvcikge1xuXHRcdFx0XHRcdHRoaXMuX2FsZXJ0LnNldEFsZXJ0KCdlcnJvcicsIHJlcy5yZXN1bHQpO1xuXHRcdFx0XHRcdHJlamVjdChyZXMucmVzdWx0KTtcblx0XHRcdFx0fVxuXHRcdFx0XHRlbHNlIHtcblx0XHRcdFx0XHR0aGlzLl90b2tlbi5zZXRUb2tlbigncmVmcmVzaFRva2VuJywgcmVzLnJlc3VsdC50b2tlbik7XG5cdFx0XHRcdFx0dGhpcy5nZXRBY2Nlc3NUb2tlbihyZXMucmVzdWx0LnRva2VuKTtcblx0XHRcdFx0XHRyZXNvbHZlKHJlcy5yZXN1bHQudG9rZW4pOyAvL3Nob3VsZCBiZSByZXNvbHZpbmcgdXNlclxuXHRcdFx0XHR9XG5cdFx0XHR9LCBlcnIgPT4ge30pO1xuXHRcdH0pO1xuXHR9XG5cblx0cHVibGljIHJlc2V0VXNlclBhc3N3b3JkKHVzZXJuYW1lOiBzdHJpbmcpIHtcblx0XHRyZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuXHRcdFx0dGhpcy5faHR0cC5wb3N0KHRoaXMuZW52aXJvbm1lbnQuU0VSVkVSX1VSTCArICcvcmVzZXRQYXNzd29yZCcsIHt1c2VybmFtZTogdXNlcm5hbWV9KS50b1Byb21pc2UoKS50aGVuKChyZXM6IGFueSkgPT4ge1x0XG5cdFx0XHRcdHJlc29sdmUodHJ1ZSk7XG5cdFx0XHR9LCBlcnIgPT4ge30pO1xuXHRcdH0pO1xuXHR9XG5cblx0cHVibGljIGxvZ091dCgpIHtcblx0XHRyZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuXHRcdFx0dGhpcy5fcm91dGVyLm5hdmlnYXRlQnlVcmwoJy9ob21lJyk7XG5cdFx0XHRcblx0XHRcdHNldFRpbWVvdXQoKCkgPT4ge1xuXHRcdFx0XHR0aGlzLnVzZXIubmV4dChudWxsKTtcblx0XHRcdFx0dGhpcy5fdG9rZW4ucmVtb3ZlVG9rZW4oJ3JlZnJlc2hUb2tlbicpO1xuXHRcdFx0XHR0aGlzLl90b2tlbi5yZW1vdmVUb2tlbignYWNjZXNzVG9rZW4nKTtcblx0XHRcdFx0dGhpcy5fb2ZmbGluZS5yZW1vdmVVc2VyKCk7XG5cdFx0XHRcdHRoaXMuY2xvc2VTb2NrZXQoKTtcblx0XHRcdFx0cmVzb2x2ZSh0cnVlKTtcblx0XHRcdH0sIDUwMCk7XG5cdFx0fSk7XG5cdH1cblxuXHRwdWJsaWMgb3BlblNvY2tldCh0b2tlbikge1xuXHRcdHRoaXMuX3NvY2tldC5vcGVuU29ja2V0KHRoaXMuZW52aXJvbm1lbnQsIFt0b2tlbl0pO1xuXHR9XG5cblx0cHVibGljIGNsb3NlU29ja2V0KCkge1xuXHRcdHRoaXMuX3NvY2tldC5jbG9zZVNvY2tldCgpO1xuXHR9XG5cblx0cHVibGljIHNldFVzZXIodXNlcjogVXNlck1vZGVsKSB7XG5cdFx0dGhpcy51c2VyLm5leHQodXNlcik7XG5cdH1cblxuXHRwdWJsaWMgZ2V0VXNlcigpOiBVc2VyTW9kZWwge1xuXHRcdHJldHVybiB0aGlzLnVzZXIuZ2V0VmFsdWUoKTtcblx0fVxuXG5cdHB1YmxpYyBnZXRTb2NrZXRTdGF0dXMoKSB7XG5cdFx0cmV0dXJuIHRoaXMuX3NvY2tldC5nZXRTdGF0dXMoKTtcblx0fVxuXG5cdHB1YmxpYyBpc1VzZXJJblZpZXcodmlldzogc3RyaW5nKSB7XG5cdFx0bGV0IHJlcyA9IGZhbHNlO1xuXG5cdFx0aWYgKHRoaXMuaXNVc2VyU3VwZXJBZG1pbigpKSB7XG5cdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHR9XG5cblx0XHRsZXQgdXNlciA9IHRoaXMudXNlci5nZXRWYWx1ZSgpO1xuXG5cdFx0aWYgKHVzZXIpIHtcblx0XHRcdHVzZXIucm9sZXMuZ3JvdXBzLmZvckVhY2goZ3JvdXAgPT4ge1xuXHRcdFx0XHRpZiAoZ3JvdXAudmlld3MuZmlsdGVyKGEgPT4gYS5zdGFydHNXaXRoKHZpZXcpKS5sZW5ndGgpIHtcblx0XHRcdFx0XHRyZXMgPSB0cnVlO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XG5cdFx0XHRpZiAodXNlci5yb2xlcy5taXNjcy5maWx0ZXIoYSA9PiBhLnN0YXJ0c1dpdGgodmlldykpLmxlbmd0aCkge1xuXHRcdFx0XHRyZXMgPSB0cnVlO1xuXHRcdFx0fVxuXHRcblx0XHRcdGlmICh1c2VyLnJvbGVzLmdyb3Vwcy5maWx0ZXIoYSA9PiBhLm5hbWUgPT09IHZpZXcpLmxlbmd0aCkge1xuXHRcdFx0XHRyZXMgPSB0cnVlO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHJldHVybiByZXM7XG5cdH1cblxuXHRwdWJsaWMgaXNVc2VyU3VwZXJBZG1pbigpIHtcblx0XHRyZXR1cm4gdGhpcy51c2VyLmdldFZhbHVlKCkgJiYgdGhpcy51c2VyLmdldFZhbHVlKCkucm9sZXMuc3VwZXJfYWRtaW47IC8vUmVtb3ZlIGFueSBsYXRlclxuXHR9XG5cblx0cHVibGljIGlzSW5pdENvbXBsZXRlZCgpIHtcblx0XHRyZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuXHRcdFx0aWYgKHRoaXMuaW5pdENvbXBsZXRlZC52YWx1ZSkge1xuXHRcdFx0XHRyZXNvbHZlKHRydWUpO1xuXHRcdFx0fVxuXHRcdFx0ZWxzZSB7XG5cdFx0XHRcdGxldCBpbml0U3ViJCA9IHRoaXMuaW5pdENvbXBsZXRlZC5zdWJzY3JpYmUoKGRhdGEpID0+IHtcblx0XHRcdFx0XHRpZiAoZGF0YSkge1xuXHRcdFx0XHRcdFx0aW5pdFN1YiQudW5zdWJzY3JpYmUoKTtcblx0XHRcdFx0XHRcdHJlc29sdmUodHJ1ZSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9LCAoKSA9PiB7fSk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cblxuXHRwdWJsaWMgaXNMb2dpbkNvbXBsZXRlZCgpIHtcblx0XHRyZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuXHRcdFx0aWYgKHRoaXMubG9naW5Db21wbGV0ZWQudmFsdWUpIHtcblx0XHRcdFx0cmVzb2x2ZSh0cnVlKTtcblx0XHRcdH1cblx0XHRcdGVsc2Uge1xuXHRcdFx0XHRsZXQgaW5pdFN1YiQgPSB0aGlzLmxvZ2luQ29tcGxldGVkLnN1YnNjcmliZSgoZGF0YSkgPT4ge1xuXHRcdFx0XHRcdGlmIChkYXRhKSB7XG5cdFx0XHRcdFx0XHRpbml0U3ViJC51bnN1YnNjcmliZSgpO1xuXHRcdFx0XHRcdFx0cmVzb2x2ZSh0cnVlKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG59XG4iXX0=
@@ -1,119 +1,165 @@
1
1
  import { AccountManagerService } from '../account-manager.service';
2
+ import { Injectable } from '@angular/core';
2
3
  import { Router } from '@angular/router';
3
4
  import { AuthService } from './auth.service';
4
- // import { DialogService } from '../widgets/dialog/dialog.service';
5
+ import { DialogService } from '../widgets/dialog/dialog.service';
5
6
  import { OfflineManagerService } from '../offline-manager.service';
6
7
  import { dateReviver } from '../util/common.helper';
7
- // import { CoreService } from '../core.service';
8
+ import { CoreService } from '../core.service';
8
9
  import { AuthPermissionService } from './auth-permissions.service';
9
- // import { AlertService } from '../widgets/alert/alert.service';
10
- import { inject } from '@angular/core';
11
- export const AuthGuard = (next) => {
12
- let _router = inject(Router);
13
- let _auth = inject(AuthService);
14
- let _account = inject(AccountManagerService);
15
- // let _ds = inject(DialogService);
16
- // let _app = inject(CoreService);
17
- let _offline = inject(OfflineManagerService);
18
- let _aps = inject(AuthPermissionService);
19
- // let _alert = inject(AlertService);
20
- return new Promise((resolve) => {
21
- _account.isInitCompleted().then(() => {
22
- let user = _account.getUser();
23
- if (!user) {
24
- user = JSON.parse(_offline.getUser(), dateReviver);
25
- if (user) {
26
- _account.setUser(user);
10
+ import { AlertService } from '../widgets/alert/alert.service';
11
+ import * as i0 from "@angular/core";
12
+ import * as i1 from "@angular/router";
13
+ import * as i2 from "./auth.service";
14
+ import * as i3 from "../widgets/dialog/dialog.service";
15
+ import * as i4 from "../account-manager.service";
16
+ import * as i5 from "../core.service";
17
+ import * as i6 from "../offline-manager.service";
18
+ import * as i7 from "./auth-permissions.service";
19
+ import * as i8 from "../widgets/alert/alert.service";
20
+ export class AuthGuard {
21
+ constructor(_router, _auth, _ds, _account, _app, _offline, _aps, _alert) {
22
+ this._router = _router;
23
+ this._auth = _auth;
24
+ this._ds = _ds;
25
+ this._account = _account;
26
+ this._app = _app;
27
+ this._offline = _offline;
28
+ this._aps = _aps;
29
+ this._alert = _alert;
30
+ }
31
+ canActivate(route, state) {
32
+ return new Promise((resolve) => {
33
+ this._account.isInitCompleted().then(() => {
34
+ let user = this._account.getUser();
35
+ if (!user) {
36
+ user = JSON.parse(this._offline.getUser(), dateReviver);
37
+ if (user) {
38
+ this._account.setUser(user);
39
+ }
27
40
  }
28
- }
29
- if (!user) {
30
- if (navigator.onLine) {
31
- _auth.loginUser().then(newUser => {
32
- _account.isLoginCompleted().then(() => {
33
- user = _account.getUser();
34
- if (!user.active) {
35
- _router.navigateByUrl('/home');
36
- resolve(false);
37
- }
38
- else {
39
- let view = next.pathFromRoot.map(v => v.url.map(segment => segment.toString()).join('/')).join('/');
40
- let moduleView = view.replace(/^(\/.*\/).*/, '$1');
41
- console.log(view);
42
- console.log(moduleView);
43
- if (user.roles.super_admin) {
44
- resolve(true);
41
+ if (!user) {
42
+ if (navigator.onLine) {
43
+ this._auth.loginUser().then(newUser => {
44
+ this._account.isLoginCompleted().then(() => {
45
+ user = this._account.getUser();
46
+ if (!user.active) {
47
+ this._router.navigateByUrl('/home');
48
+ resolve(false);
45
49
  }
46
- else if (!user.roles.groups.filter(a => a.views.filter(b => b.startsWith(view)).length).length) {
47
- if (user.roles.groups.filter(a => a.views.filter(b => b.startsWith(moduleView) && !doesLinkHaveParameter(_aps, b)).length).length) {
48
- let link = user.roles.groups.filter(a => a.views.filter(b => b.startsWith(moduleView) && !doesLinkHaveParameter(_aps, b)).length)[0].views.filter(a => a.startsWith(moduleView) && !doesLinkHaveParameter(_aps, a))[0];
49
- _router.navigateByUrl(link);
50
+ else {
51
+ let pageView = state.url.replace(/\/[a-f0-9]{24}$/, '').replace(/\?.+$/, ''); //All but ID and Query String
52
+ let moduleView = pageView.replace(/([^\/]+\/?$)/, '');
53
+ if (user.roles.super_admin) {
54
+ resolve(true);
50
55
  }
51
56
  else {
52
- _router.navigateByUrl('/home');
57
+ let done = false;
58
+ while (!done && pageView.split('/').length > 2) {
59
+ if (!this.isLinkFakeRoute(pageView)) {
60
+ if (!user.roles.groups.some(a => a.views.some(b => b === pageView))) {
61
+ if (user.roles.groups.some(a => a.views.some(b => b.startsWith(moduleView) && !this.doesLinkHaveParameter(b) && !this.isLinkFakeRoute(b)))) {
62
+ let link = user.roles.groups.filter(a => a.views.some(b => b.startsWith(moduleView) && !this.doesLinkHaveParameter(b) && !this.isLinkFakeRoute(b)))[0].views.filter(a => a.startsWith(moduleView) && !this.doesLinkHaveParameter(a) && !this.isLinkFakeRoute(a))[0];
63
+ done = true;
64
+ this._router.navigateByUrl(link);
65
+ resolve(false);
66
+ }
67
+ }
68
+ else {
69
+ done = true;
70
+ resolve(true);
71
+ }
72
+ }
73
+ moduleView = moduleView.replace(/([^\/]+\/?$)/, '');
74
+ pageView = pageView.replace(/(\/[^\/]+$)/, '');
75
+ }
76
+ if (!done) {
77
+ this._router.navigateByUrl('/home');
78
+ resolve(false);
79
+ }
53
80
  }
54
- resolve(false);
55
- }
56
- else {
57
- resolve(true);
58
81
  }
59
- }
82
+ });
83
+ }, () => {
84
+ this._router.navigateByUrl('/home');
85
+ resolve(false);
60
86
  });
61
- }, () => {
62
- _router.navigateByUrl('/home');
63
- resolve(false);
64
- });
65
- }
66
- else {
67
- resolve(true);
68
- }
69
- }
70
- else {
71
- if (!user.active) {
72
- _router.navigateByUrl('/home');
73
- resolve(false);
87
+ }
88
+ else {
89
+ resolve(true);
90
+ }
74
91
  }
75
92
  else {
76
- let view = next.pathFromRoot.map(v => v.url.map(segment => segment.toString()).join('/')).join('/');
77
- let moduleView = view.replace(/^(\/.*\/).*/, '$1');
78
- console.log(view);
79
- console.log(moduleView);
80
- if (user.roles.super_admin) {
81
- resolve(true);
93
+ if (!user.active) {
94
+ this._router.navigateByUrl('/home');
95
+ resolve(false);
82
96
  }
83
- else if (!user.roles.groups.filter(a => a.views.filter(b => b.startsWith(view)).length).length) {
84
- if (user.roles.groups.filter(a => a.views.filter(b => b.startsWith(moduleView) && !doesLinkHaveParameter(_aps, b)).length).length) {
85
- let link = user.roles.groups.filter(a => a.views.filter(b => b.startsWith(moduleView) && !doesLinkHaveParameter(_aps, b)).length)[0].views.filter(a => a.startsWith(moduleView) && !doesLinkHaveParameter(_aps, a))[0];
86
- _router.navigateByUrl(link);
97
+ else {
98
+ let pageView = state.url.replace(/\/[a-f0-9]{24}$/, '').replace(/\?.+$/, ''); //All but ID and Query String
99
+ let moduleView = pageView.replace(/([^\/]+\/?$)/, '');
100
+ if (user.roles.super_admin) {
101
+ resolve(true);
87
102
  }
88
103
  else {
89
- _router.navigateByUrl('/home');
104
+ let done = false;
105
+ while (!done && pageView.split('/').length > 2) {
106
+ if (!this.isLinkFakeRoute(pageView)) {
107
+ if (!user.roles.groups.some(a => a.views.some(b => b === pageView))) {
108
+ if (user.roles.groups.some(a => a.views.some(b => b.startsWith(moduleView) && !this.doesLinkHaveParameter(b) && !this.isLinkFakeRoute(b)))) {
109
+ let link = user.roles.groups.filter(a => a.views.some(b => b.startsWith(moduleView) && !this.doesLinkHaveParameter(b) && !this.isLinkFakeRoute(b)))[0].views.filter(a => a.startsWith(moduleView) && !this.doesLinkHaveParameter(a) && !this.isLinkFakeRoute(a))[0];
110
+ done = true;
111
+ this._router.navigateByUrl(link);
112
+ resolve(false);
113
+ }
114
+ }
115
+ else {
116
+ done = true;
117
+ resolve(true);
118
+ }
119
+ }
120
+ moduleView = moduleView.replace(/([^\/]+\/?$)/, '');
121
+ pageView = pageView.replace(/(\/[^\/]+$)/, '');
122
+ }
123
+ if (!done) {
124
+ this._router.navigateByUrl('/home');
125
+ resolve(false);
126
+ }
90
127
  }
91
- resolve(false);
92
- }
93
- else {
94
- resolve(true);
95
128
  }
96
129
  }
97
- }
98
- }, () => { });
99
- });
100
- };
101
- function doesLinkHaveParameter(_aps, link) {
102
- let permissions = _aps.getAllModulePermissions();
103
- for (let i = 0; i < permissions.length; i++) {
104
- let permission = permissions[i];
105
- for (let j = 0; j < permission.views.length; j++) {
106
- let view = permission.views[j];
107
- if (view.link === link) {
108
- if (view.has_parameter) {
109
- return true;
130
+ }, () => { });
131
+ });
132
+ }
133
+ doesLinkHaveParameter(link) {
134
+ let permissions = this._aps.getAllModulePermissions();
135
+ for (let i = 0; i < permissions.length; i++) {
136
+ let permission = permissions[i];
137
+ for (let j = 0; j < permission.views.length; j++) {
138
+ let view = permission.views[j];
139
+ if (view.link === link) {
140
+ return !!view.has_parameter;
110
141
  }
111
- else {
112
- return false;
142
+ }
143
+ }
144
+ return false;
145
+ }
146
+ isLinkFakeRoute(link) {
147
+ let permissions = this._aps.getAllModulePermissions();
148
+ for (let i = 0; i < permissions.length; i++) {
149
+ let permission = permissions[i];
150
+ for (let j = 0; j < permission.views.length; j++) {
151
+ let view = permission.views[j];
152
+ if (view.link === link) {
153
+ return !!view.fake_route;
113
154
  }
114
155
  }
115
156
  }
157
+ return true;
116
158
  }
117
- return false;
118
159
  }
119
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1ndWFyZC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL2F1dGgvYXV0aC1ndWFyZC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxNQUFNLEVBQStDLE1BQU0saUJBQWlCLENBQUM7QUFDdEYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLG9FQUFvRTtBQUNwRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDcEQsaURBQWlEO0FBQ2pELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ25FLGlFQUFpRTtBQUVqRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXZDLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxDQUFDLElBQTRCLEVBQTRCLEVBQUU7SUFDbkYsSUFBSSxPQUFPLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzdCLElBQUksS0FBSyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNoQyxJQUFJLFFBQVEsR0FBRyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQztJQUM3QyxtQ0FBbUM7SUFDbkMsa0NBQWtDO0lBQ2xDLElBQUksUUFBUSxHQUFHLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0lBQzdDLElBQUksSUFBSSxHQUFHLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0lBQ3pDLHFDQUFxQztJQUVyQyxPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7UUFDOUIsUUFBUSxDQUFDLGVBQWUs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SUFBVSxJQUFJLENBQUMsS0FBTSxDQUFDLFdBQVcsRUFBRTt3QkFDbEMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO3FCQUNkO3lCQUNJLElBQUksQ0FBTyxJQUFJLENBQUMsS0FBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUU7d0JBQ3RHLElBQVUsSUFBSSxDQUFDLEtBQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFOzRCQUN6SSxJQUFJLElBQUksR0FBUyxJQUFJLENBQUMsS0FBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDOzRCQUM5TixPQUFPLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO3lCQUM1Qjs2QkFDSTs0QkFDSixPQUFPLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO3lCQUMvQjt3QkFFRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7cUJBQ2Y7eUJBQ0k7d0JBQ0osT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO3FCQUNkO2lCQUNEO2FBQ0Q7UUFDRixDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDLENBQUM7SUFDZCxDQUFDLENBQUMsQ0FBQztBQUNKLENBQUMsQ0FBQztBQUVGLFNBQVMscUJBQXFCLENBQUMsSUFBSSxFQUFFLElBQVk7SUFDaEQsSUFBSSxXQUFXLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7SUFFakQsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7UUFDNUMsSUFBSSxVQUFVLEdBQUcsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2hDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUNqRCxJQUFJLElBQUksR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRS9CLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxJQUFJLEVBQUU7Z0JBQ3ZCLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRTtvQkFDdkIsT0FBTyxJQUFJLENBQUM7aUJBQ1o7cUJBQ0k7b0JBQ0osT0FBTyxLQUFLLENBQUM7aUJBQ2I7YUFDRDtTQUNEO0tBQ0Q7SUFFRCxPQUFPLEtBQUssQ0FBQztBQUNkLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY2NvdW50TWFuYWdlclNlcnZpY2UgfSBmcm9tICcuLi9hY2NvdW50LW1hbmFnZXIuc2VydmljZSc7XG5pbXBvcnQgeyBSb3V0ZXIsIEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIFJvdXRlclN0YXRlU25hcHNob3QgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuL2F1dGguc2VydmljZSc7XG4vLyBpbXBvcnQgeyBEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnLi4vd2lkZ2V0cy9kaWFsb2cvZGlhbG9nLnNlcnZpY2UnO1xuaW1wb3J0IHsgT2ZmbGluZU1hbmFnZXJTZXJ2aWNlIH0gZnJvbSAnLi4vb2ZmbGluZS1tYW5hZ2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgZGF0ZVJldml2ZXIgfSBmcm9tICcuLi91dGlsL2NvbW1vbi5oZWxwZXInO1xuLy8gaW1wb3J0IHsgQ29yZVNlcnZpY2UgfSBmcm9tICcuLi9jb3JlLnNlcnZpY2UnO1xuaW1wb3J0IHsgQXV0aFBlcm1pc3Npb25TZXJ2aWNlIH0gZnJvbSAnLi9hdXRoLXBlcm1pc3Npb25zLnNlcnZpY2UnO1xuLy8gaW1wb3J0IHsgQWxlcnRTZXJ2aWNlIH0gZnJvbSAnLi4vd2lkZ2V0cy9hbGVydC9hbGVydC5zZXJ2aWNlJztcblxuaW1wb3J0IHsgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBjb25zdCBBdXRoR3VhcmQgPSAobmV4dDogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCk6IFByb21pc2U8Ym9vbGVhbj58Ym9vbGVhbiA9PiB7XG5cdGxldCBfcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XG5cdGxldCBfYXV0aCA9IGluamVjdChBdXRoU2VydmljZSk7XG5cdGxldCBfYWNjb3VudCA9IGluamVjdChBY2NvdW50TWFuYWdlclNlcnZpY2UpO1xuXHQvLyBsZXQgX2RzID0gaW5qZWN0KERpYWxvZ1NlcnZpY2UpO1xuXHQvLyBsZXQgX2FwcCA9IGluamVjdChDb3JlU2VydmljZSk7XG5cdGxldCBfb2ZmbGluZSA9IGluamVjdChPZmZsaW5lTWFuYWdlclNlcnZpY2UpO1xuXHRsZXQgX2FwcyA9IGluamVjdChBdXRoUGVybWlzc2lvblNlcnZpY2UpO1xuXHQvLyBsZXQgX2FsZXJ0ID0gaW5qZWN0KEFsZXJ0U2VydmljZSk7XG5cblx0cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG5cdFx0X2FjY291bnQuaXNJbml0Q29tcGxldGVkKCkudGhlbigoKSA9PiB7XG5cdFx0XHRsZXQgdXNlciA9IF9hY2NvdW50LmdldFVzZXIoKTtcblxuXHRcdFx0aWYgKCF1c2VyKSB7XG5cdFx0XHRcdHVzZXIgPSBKU09OLnBhcnNlKF9vZmZsaW5lLmdldFVzZXIoKSwgZGF0ZVJldml2ZXIpO1xuXHRcdFx0XHRpZiAodXNlcikge1xuXHRcdFx0XHRcdF9hY2NvdW50LnNldFVzZXIodXNlcik7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0aWYgKCF1c2VyKSB7XG5cdFx0XHRcdGlmIChuYXZpZ2F0b3Iub25MaW5lKSB7XG5cdFx0XHRcdFx0X2F1dGgubG9naW5Vc2VyKCkudGhlbihuZXdVc2VyID0+IHtcblx0XHRcdFx0XHRcdF9hY2NvdW50LmlzTG9naW5Db21wbGV0ZWQoKS50aGVuKCgpID0+IHtcblx0XHRcdFx0XHRcdFx0dXNlciA9IF9hY2NvdW50LmdldFVzZXIoKTtcblxuXHRcdFx0XHRcdFx0XHRpZiAoIXVzZXIuYWN0aXZlKSB7XG5cdFx0XHRcdFx0XHRcdFx0X3JvdXRlci5uYXZpZ2F0ZUJ5VXJsKCcvaG9tZScpO1xuXHRcdFx0XHRcdFx0XHRcdHJlc29sdmUoZmFsc2UpO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRcdGxldCB2aWV3ID0gbmV4dC5wYXRoRnJvbVJvb3QubWFwKHYgPT4gdi51cmwubWFwKHNlZ21lbnQgPT4gc2VnbWVudC50b1N0cmluZygpKS5qb2luKCcvJykpLmpvaW4oJy8nKTtcblx0XHRcdFx0XHRcdFx0XHRsZXQgbW9kdWxlVmlldyA9IHZpZXcucmVwbGFjZSgvXihcXC8uKlxcLykuKi8sICckMScpO1xuXG5cdFx0XHRcdFx0XHRcdFx0Y29uc29sZS5sb2codmlldyk7XG5cdFx0XHRcdFx0XHRcdFx0Y29uc29sZS5sb2cobW9kdWxlVmlldyk7XG5cdFx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0XHRcdGlmICgoPGFueT51c2VyLnJvbGVzKS5zdXBlcl9hZG1pbikge1xuXHRcdFx0XHRcdFx0XHRcdFx0cmVzb2x2ZSh0cnVlKTtcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0ZWxzZSBpZiAoISg8YW55PnVzZXIucm9sZXMpLmdyb3Vwcy5maWx0ZXIoYSA9PiBhLnZpZXdzLmZpbHRlcihiID0+IGIuc3RhcnRzV2l0aCh2aWV3KSkubGVuZ3RoKS5sZW5ndGgpIHtcblx0XHRcdFx0XHRcdFx0XHRcdGlmICgoPGFueT51c2VyLnJvbGVzKS5ncm91cHMuZmlsdGVyKGEgPT4gYS52aWV3cy5maWx0ZXIoYiA9PiBiLnN0YXJ0c1dpdGgobW9kdWxlVmlldykgJiYgIWRvZXNMaW5rSGF2ZVBhcmFtZXRlcihfYXBzLCBiKSkubGVuZ3RoKS5sZW5ndGgpIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0bGV0IGxpbmsgPSAoPGFueT51c2VyLnJvbGVzKS5ncm91cHMuZmlsdGVyKGEgPT4gYS52aWV3cy5maWx0ZXIoYiA9PiBiLnN0YXJ0c1dpdGgobW9kdWxlVmlldykgJiYgIWRvZXNMaW5rSGF2ZVBhcmFtZXRlcihfYXBzLCBiKSkubGVuZ3RoKVswXS52aWV3cy5maWx0ZXIoYSA9PiBhLnN0YXJ0c1dpdGgobW9kdWxlVmlldykgJiYgIWRvZXNMaW5rSGF2ZVBhcmFtZXRlcihfYXBzLCBhKSlbMF07XG5cdFx0XHRcdFx0XHRcdFx0XHRcdF9yb3V0ZXIubmF2aWdhdGVCeVVybChsaW5rKTtcblx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRfcm91dGVyLm5hdmlnYXRlQnlVcmwoJy9ob21lJyk7XG5cdFx0XHRcdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRcdFx0XHRcdHJlc29sdmUoZmFsc2UpO1xuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRlbHNlIHtcblx0XHRcdFx0XHRcdFx0XHRcdHJlc29sdmUodHJ1ZSk7XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHR9LCAoKSA9PiB7XG5cdFx0XHRcdFx0XHRfcm91dGVyLm5hdmlnYXRlQnlVcmwoJy9ob21lJyk7XG5cdFx0XHRcdFx0XHRyZXNvbHZlKGZhbHNlKTtcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fVxuXHRcdFx0XHRlbHNlIHtcblx0XHRcdFx0XHRyZXNvbHZlKHRydWUpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRlbHNlIHtcblx0XHRcdFx0aWYgKCF1c2VyLmFjdGl2ZSkge1xuXHRcdFx0XHRcdF9yb3V0ZXIubmF2aWdhdGVCeVVybCgnL2hvbWUnKTtcblx0XHRcdFx0XHRyZXNvbHZlKGZhbHNlKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRlbHNlIHtcblx0XHRcdFx0XHRsZXQgdmlldyA9IG5leHQucGF0aEZyb21Sb290Lm1hcCh2ID0+IHYudXJsLm1hcChzZWdtZW50ID0+IHNlZ21lbnQudG9TdHJpbmcoKSkuam9pbignLycpKS5qb2luKCcvJyk7XG5cdFx0XHRcdFx0bGV0IG1vZHVsZVZpZXcgPSB2aWV3LnJlcGxhY2UoL14oXFwvLipcXC8pLiovLCAnJDEnKTtcblxuXHRcdFx0XHRcdGNvbnNvbGUubG9nKHZpZXcpO1xuXHRcdFx0XHRcdGNvbnNvbGUubG9nKG1vZHVsZVZpZXcpO1xuXHRcdFx0XHRcdFxuXHRcdFx0XHRcdGlmICgoPGFueT51c2VyLnJvbGVzKS5zdXBlcl9hZG1pbikge1xuXHRcdFx0XHRcdFx0cmVzb2x2ZSh0cnVlKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0ZWxzZSBpZiAoISg8YW55PnVzZXIucm9sZXMpLmdyb3Vwcy5maWx0ZXIoYSA9PiBhLnZpZXdzLmZpbHRlcihiID0+IGIuc3RhcnRzV2l0aCh2aWV3KSkubGVuZ3RoKS5sZW5ndGgpIHtcblx0XHRcdFx0XHRcdGlmICgoPGFueT51c2VyLnJvbGVzKS5ncm91cHMuZmlsdGVyKGEgPT4gYS52aWV3cy5maWx0ZXIoYiA9PiBiLnN0YXJ0c1dpdGgobW9kdWxlVmlldykgJiYgIWRvZXNMaW5rSGF2ZVBhcmFtZXRlcihfYXBzLCBiKSkubGVuZ3RoKS5sZW5ndGgpIHtcblx0XHRcdFx0XHRcdFx0bGV0IGxpbmsgPSAoPGFueT51c2VyLnJvbGVzKS5ncm91cHMuZmlsdGVyKGEgPT4gYS52aWV3cy5maWx0ZXIoYiA9PiBiLnN0YXJ0c1dpdGgobW9kdWxlVmlldykgJiYgIWRvZXNMaW5rSGF2ZVBhcmFtZXRlcihfYXBzLCBiKSkubGVuZ3RoKVswXS52aWV3cy5maWx0ZXIoYSA9PiBhLnN0YXJ0c1dpdGgobW9kdWxlVmlldykgJiYgIWRvZXNMaW5rSGF2ZVBhcmFtZXRlcihfYXBzLCBhKSlbMF07XG5cdFx0XHRcdFx0XHRcdF9yb3V0ZXIubmF2aWdhdGVCeVVybChsaW5rKTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRfcm91dGVyLm5hdmlnYXRlQnlVcmwoJy9ob21lJyk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdHJlc29sdmUoZmFsc2UpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRlbHNlIHtcblx0XHRcdFx0XHRcdHJlc29sdmUodHJ1ZSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fSwgKCkgPT4ge30pO1xuXHR9KTtcbn07XG5cbmZ1bmN0aW9uIGRvZXNMaW5rSGF2ZVBhcmFtZXRlcihfYXBzLCBsaW5rOiBzdHJpbmcpIHtcblx0bGV0IHBlcm1pc3Npb25zID0gX2Fwcy5nZXRBbGxNb2R1bGVQZXJtaXNzaW9ucygpO1xuXG5cdGZvciAobGV0IGkgPSAwOyBpIDwgcGVybWlzc2lvbnMubGVuZ3RoOyBpKyspIHtcblx0XHRsZXQgcGVybWlzc2lvbiA9IHBlcm1pc3Npb25zW2ldO1xuXHRcdGZvciAobGV0IGogPSAwOyBqIDwgcGVybWlzc2lvbi52aWV3cy5sZW5ndGg7IGorKykge1xuXHRcdFx0bGV0IHZpZXcgPSBwZXJtaXNzaW9uLnZpZXdzW2pdO1xuXG5cdFx0XHRpZiAodmlldy5saW5rID09PSBsaW5rKSB7XG5cdFx0XHRcdGlmICh2aWV3Lmhhc19wYXJhbWV0ZXIpIHtcblx0XHRcdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHRcdFx0fVxuXHRcdFx0XHRlbHNlIHtcblx0XHRcdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRyZXR1cm4gZmFsc2U7XG59Il19
160
+ AuthGuard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AuthGuard, deps: [{ token: i1.Router }, { token: i2.AuthService }, { token: i3.DialogService }, { token: i4.AccountManagerService }, { token: i5.CoreService }, { token: i6.OfflineManagerService }, { token: i7.AuthPermissionService }, { token: i8.AlertService }], target: i0.ɵɵFactoryTarget.Injectable });
161
+ AuthGuard.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AuthGuard });
162
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AuthGuard, decorators: [{
163
+ type: Injectable
164
+ }], ctorParameters: function () { return [{ type: i1.Router }, { type: i2.AuthService }, { type: i3.DialogService }, { type: i4.AccountManagerService }, { type: i5.CoreService }, { type: i6.OfflineManagerService }, { type: i7.AuthPermissionService }, { type: i8.AlertService }]; } });
165
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1ndWFyZC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL2F1dGgvYXV0aC1ndWFyZC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFlLE1BQU0sRUFBK0MsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDOUMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDbkUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdDQUFnQyxDQUFDOzs7Ozs7Ozs7O0FBRzlELE1BQU0sT0FBTyxTQUFTO0lBSXJCLFlBQW9CLE9BQWUsRUFDeEIsS0FBa0IsRUFDbEIsR0FBa0IsRUFDbEIsUUFBK0IsRUFDL0IsSUFBaUIsRUFDakIsUUFBK0IsRUFDL0IsSUFBMkIsRUFDM0IsTUFBb0I7UUFQWCxZQUFPLEdBQVAsT0FBTyxDQUFRO1FBQ3hCLFVBQUssR0FBTCxLQUFLLENBQWE7UUFDbEIsUUFBRyxHQUFILEdBQUcsQ0FBZTtRQUNsQixhQUFRLEdBQVIsUUFBUSxDQUF1QjtRQUMvQixTQUFJLEdBQUosSUFBSSxDQUFhO1FBQ2pCLGFBQVEsR0FBUixRQUFRLENBQXVCO1FBQy9CLFNBQUksR0FBSixJ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SUFBSSxVQUFVLEdBQUcsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2hDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFDakQsSUFBSSxJQUFJLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFFL0IsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLElBQUksRUFBRTtvQkFDdkIsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztpQkFDekI7YUFDRDtTQUNEO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDYixDQUFDOzt1R0FoS1csU0FBUzsyR0FBVCxTQUFTOzRGQUFULFNBQVM7a0JBRHJCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY2NvdW50TWFuYWdlclNlcnZpY2UgfSBmcm9tICcuLi9hY2NvdW50LW1hbmFnZXIuc2VydmljZSc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDYW5BY3RpdmF0ZSwgUm91dGVyLCBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBSb3V0ZXJTdGF0ZVNuYXBzaG90IH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi9hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgRGlhbG9nU2VydmljZSB9IGZyb20gJy4uL3dpZGdldHMvZGlhbG9nL2RpYWxvZy5zZXJ2aWNlJztcbmltcG9ydCB7IE9mZmxpbmVNYW5hZ2VyU2VydmljZSB9IGZyb20gJy4uL29mZmxpbmUtbWFuYWdlci5zZXJ2aWNlJztcbmltcG9ydCB7IGRhdGVSZXZpdmVyIH0gZnJvbSAnLi4vdXRpbC9jb21tb24uaGVscGVyJztcbmltcG9ydCB7IENvcmVTZXJ2aWNlIH0gZnJvbSAnLi4vY29yZS5zZXJ2aWNlJztcbmltcG9ydCB7IEF1dGhQZXJtaXNzaW9uU2VydmljZSB9IGZyb20gJy4vYXV0aC1wZXJtaXNzaW9ucy5zZXJ2aWNlJztcbmltcG9ydCB7IEFsZXJ0U2VydmljZSB9IGZyb20gJy4uL3dpZGdldHMvYWxlcnQvYWxlcnQuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBdXRoR3VhcmQgaW1wbGVtZW50cyBDYW5BY3RpdmF0ZSB7XG5cblx0cmVkaXJlY3RVcmw6IHN0cmluZztcblxuXHRjb25zdHJ1Y3Rvcihwcml2YXRlIF9yb3V0ZXI6IFJvdXRlciwgXG5cdFx0XHRcdHByaXZhdGUgX2F1dGg6IEF1dGhTZXJ2aWNlLCBcblx0XHRcdFx0cHJpdmF0ZSBfZHM6IERpYWxvZ1NlcnZpY2UsXG5cdFx0XHRcdHByaXZhdGUgX2FjY291bnQ6IEFjY291bnRNYW5hZ2VyU2VydmljZSxcblx0XHRcdFx0cHJpdmF0ZSBfYXBwOiBDb3JlU2VydmljZSxcblx0XHRcdFx0cHJpdmF0ZSBfb2ZmbGluZTogT2ZmbGluZU1hbmFnZXJTZXJ2aWNlLFxuXHRcdFx0XHRwcml2YXRlIF9hcHM6IEF1dGhQZXJtaXNzaW9uU2VydmljZSxcblx0XHRcdFx0cHJpdmF0ZSBfYWxlcnQ6IEFsZXJ0U2VydmljZSkgXG5cdHt9XG5cdFxuXHRjYW5BY3RpdmF0ZShyb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgc3RhdGU6IFJvdXRlclN0YXRlU25hcHNob3QpOiBQcm9taXNlPGJvb2xlYW4+fGJvb2xlYW4ge1xuXHRcdHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuXHRcdFx0dGhpcy5fYWNjb3VudC5pc0luaXRDb21wbGV0ZWQoKS50aGVuKCgpID0+IHtcblx0XHRcdFx0bGV0IHVzZXIgPSB0aGlzLl9hY2NvdW50LmdldFVzZXIoKTtcblxuXHRcdFx0XHRpZiAoIXVzZXIpIHtcblx0XHRcdFx0XHR1c2VyID0gSlNPTi5wYXJzZSh0aGlzLl9vZmZsaW5lLmdldFVzZXIoKSwgZGF0ZVJldml2ZXIpO1xuXHRcdFx0XHRcdGlmICh1c2VyKSB7XG5cdFx0XHRcdFx0XHR0aGlzLl9hY2NvdW50LnNldFVzZXIodXNlcik7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cblx0XHRcdFx0aWYgKCF1c2VyKSB7XG5cdFx0XHRcdFx0aWYgKG5hdmlnYXRvci5vbkxpbmUpIHtcblx0XHRcdFx0XHRcdHRoaXMuX2F1dGgubG9naW5Vc2VyKCkudGhlbihuZXdVc2VyID0+IHtcblx0XHRcdFx0XHRcdFx0dGhpcy5fYWNjb3VudC5pc0xvZ2luQ29tcGxldGVkKCkudGhlbigoKSA9PiB7XG5cdFx0XHRcdFx0XHRcdFx0dXNlciA9IHRoaXMuX2FjY291bnQuZ2V0VXNlcigpO1xuXG5cdFx0XHRcdFx0XHRcdFx0aWYgKCF1c2VyLmFjdGl2ZSkge1xuXHRcdFx0XHRcdFx0XHRcdFx0dGhpcy5fcm91dGVyLm5hdmlnYXRlQnlVcmwoJy9ob21lJyk7XG5cdFx0XHRcdFx0XHRcdFx0XHRyZXNvbHZlKGZhbHNlKTtcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0ZWxzZSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRsZXQgcGFnZVZpZXcgPSBzdGF0ZS51cmwucmVwbGFjZSgvXFwvW2EtZjAtOV17MjR9JC8sICcnKS5yZXBsYWNlKC9cXD8uKyQvLCAnJyk7IC8vQWxsIGJ1dCBJRCBhbmQgUXVlcnkgU3RyaW5nXG5cdFx0XHRcdFx0XHRcdFx0XHRsZXQgbW9kdWxlVmlldyA9IHBhZ2VWaWV3LnJlcGxhY2UoLyhbXlxcL10rXFwvPyQpLywgJycpO1xuXHRcdFx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdFx0XHRpZiAodXNlci5yb2xlcy5zdXBlcl9hZG1pbikge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRyZXNvbHZlKHRydWUpO1xuXHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0ZWxzZSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdGxldCBkb25lID0gZmFsc2U7XG5cblx0XHRcdFx0XHRcdFx0XHRcdFx0d2hpbGUgKCFkb25lICYmIHBhZ2VWaWV3LnNwbGl0KCcvJykubGVuZ3RoID4gMikge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGlmICghdGhpcy5pc0xpbmtGYWtlUm91dGUocGFnZVZpZXcpKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRpZiAoIXVzZXIucm9sZXMuZ3JvdXBzLnNvbWUoYSA9PiBhLnZpZXdzLnNvbWUoYiA9PiBiID09PSBwYWdlVmlldykpKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGlmICh1c2VyLnJvbGVzLmdyb3Vwcy5zb21lKGEgPT4gYS52aWV3cy5zb21lKGIgPT4gYi5zdGFydHNXaXRoKG1vZHVsZVZpZXcpICYmICF0aGlzLmRvZXNMaW5rSGF2ZVBhcmFtZXRlcihiKSAmJiAhdGhpcy5pc0xpbmtGYWtlUm91dGUoYikpKSkge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGxldCBsaW5rID0gdXNlci5yb2xlcy5ncm91cHMuZmlsdGVyKGEgPT4gYS52aWV3cy5zb21lKGIgPT4gYi5zdGFydHNXaXRoKG1vZHVsZVZpZXcpICYmICF0aGlzLmRvZXNMaW5rSGF2ZVBhcmFtZXRlcihiKSAmJiAhdGhpcy5pc0xpbmtGYWtlUm91dGUoYikpKVswXS52aWV3cy5maWx0ZXIoYSA9PiBhLnN0YXJ0c1dpdGgobW9kdWxlVmlldykgJiYgIXRoaXMuZG9lc0xpbmtIYXZlUGFyYW1ldGVyKGEpICYmICF0aGlzLmlzTGlua0Zha2VSb3V0ZShhKSlbMF07XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0ZG9uZSA9IHRydWU7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0dGhpcy5fcm91dGVyLm5hdmlnYXRlQnlVcmwobGluayk7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0cmVzb2x2ZShmYWxzZSk7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRkb25lID0gdHJ1ZTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0cmVzb2x2ZSh0cnVlKTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRtb2R1bGVWaWV3ID0gbW9kdWxlVmlldy5yZXBsYWNlKC8oW15cXC9dK1xcLz8kKS8sICcnKTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRwYWdlVmlldyA9IHBhZ2VWaWV3LnJlcGxhY2UoLyhcXC9bXlxcL10rJCkvLCAnJyk7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0XHRcdFx0XHRpZiAoIWRvbmUpIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR0aGlzLl9yb3V0ZXIubmF2aWdhdGVCeVVybCgnL2hvbWUnKTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRyZXNvbHZlKGZhbHNlKTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0XHR9LCAoKSA9PiB7XG5cdFx0XHRcdFx0XHRcdHRoaXMuX3JvdXRlci5uYXZpZ2F0ZUJ5VXJsKCcvaG9tZScpO1xuXHRcdFx0XHRcdFx0XHRyZXNvbHZlKGZhbHNlKTtcblx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRlbHNlIHtcblx0XHRcdFx0XHRcdHJlc29sdmUodHJ1ZSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHRcdGVsc2Uge1xuXHRcdFx0XHRcdGlmICghdXNlci5hY3RpdmUpIHtcblx0XHRcdFx0XHRcdHRoaXMuX3JvdXRlci5uYXZpZ2F0ZUJ5VXJsKCcvaG9tZScpO1xuXHRcdFx0XHRcdFx0cmVzb2x2ZShmYWxzZSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGVsc2Uge1xuXHRcdFx0XHRcdFx0bGV0IHBhZ2VWaWV3ID0gc3RhdGUudXJsLnJlcGxhY2UoL1xcL1thLWYwLTldezI0fSQvLCAnJykucmVwbGFjZSgvXFw/LiskLywgJycpOyAvL0FsbCBidXQgSUQgYW5kIFF1ZXJ5IFN0cmluZ1xuXHRcdFx0XHRcdFx0bGV0IG1vZHVsZVZpZXcgPSBwYWdlVmlldy5yZXBsYWNlKC8oW15cXC9dK1xcLz8kKS8sICcnKTtcblx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0aWYgKHVzZXIucm9sZXMuc3VwZXJfYWRtaW4pIHtcblx0XHRcdFx0XHRcdFx0cmVzb2x2ZSh0cnVlKTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRsZXQgZG9uZSA9IGZhbHNlO1xuXG5cdFx0XHRcdFx0XHRcdHdoaWxlICghZG9uZSAmJiBwYWdlVmlldy5zcGxpdCgnLycpLmxlbmd0aCA+IDIpIHtcblx0XHRcdFx0XHRcdFx0XHRpZiAoIXRoaXMuaXNMaW5rRmFrZVJvdXRlKHBhZ2VWaWV3KSkge1xuXHRcdFx0XHRcdFx0XHRcdFx0aWYgKCF1c2VyLnJvbGVzLmdyb3Vwcy5zb21lKGEgPT4gYS52aWV3cy5zb21lKGIgPT4gYiA9PT0gcGFnZVZpZXcpKSkge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRpZiAodXNlci5yb2xlcy5ncm91cHMuc29tZShhID0+IGEudmlld3Muc29tZShiID0+IGIuc3RhcnRzV2l0aChtb2R1bGVWaWV3KSAmJiAhdGhpcy5kb2VzTGlua0hhdmVQYXJhbWV0ZXIoYikgJiYgIXRoaXMuaXNMaW5rRmFrZVJvdXRlKGIpKSkpIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRsZXQgbGluayA9IHVzZXIucm9sZXMuZ3JvdXBzLmZpbHRlcihhID0+IGEudmlld3Muc29tZShiID0+IGIuc3RhcnRzV2l0aChtb2R1bGVWaWV3KSAmJiAhdGhpcy5kb2VzTGlua0hhdmVQYXJhbWV0ZXIoYikgJiYgIXRoaXMuaXNMaW5rRmFrZVJvdXRlKGIpKSlbMF0udmlld3MuZmlsdGVyKGEgPT4gYS5zdGFydHNXaXRoKG1vZHVsZVZpZXcpICYmICF0aGlzLmRvZXNMaW5rSGF2ZVBhcmFtZXRlcihhKSAmJiAhdGhpcy5pc0xpbmtGYWtlUm91dGUoYSkpWzBdO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGRvbmUgPSB0cnVlO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHRoaXMuX3JvdXRlci5uYXZpZ2F0ZUJ5VXJsKGxpbmspO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHJlc29sdmUoZmFsc2UpO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHRlbHNlIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0ZG9uZSA9IHRydWU7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHJlc29sdmUodHJ1ZSk7XG5cdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHRcdFx0bW9kdWxlVmlldyA9IG1vZHVsZVZpZXcucmVwbGFjZSgvKFteXFwvXStcXC8/JCkvLCAnJyk7XG5cdFx0XHRcdFx0XHRcdFx0cGFnZVZpZXcgPSBwYWdlVmlldy5yZXBsYWNlKC8oXFwvW15cXC9dKyQpLywgJycpO1xuXHRcdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRcdFx0aWYgKCFkb25lKSB7XG5cdFx0XHRcdFx0XHRcdFx0dGhpcy5fcm91dGVyLm5hdmlnYXRlQnlVcmwoJy9ob21lJyk7XG5cdFx0XHRcdFx0XHRcdFx0cmVzb2x2ZShmYWxzZSk7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH0sICgpID0+IHt9KTtcblx0XHR9KTtcblx0fVxuXG5cdGRvZXNMaW5rSGF2ZVBhcmFtZXRlcihsaW5rOiBzdHJpbmcpIHtcblx0XHRsZXQgcGVybWlzc2lvbnMgPSB0aGlzLl9hcHMuZ2V0QWxsTW9kdWxlUGVybWlzc2lvbnMoKTtcblxuXHRcdGZvciAobGV0IGkgPSAwOyBpIDwgcGVybWlzc2lvbnMubGVuZ3RoOyBpKyspIHtcblx0XHRcdGxldCBwZXJtaXNzaW9uID0gcGVybWlzc2lvbnNbaV07XG5cdFx0XHRmb3IgKGxldCBqID0gMDsgaiA8IHBlcm1pc3Npb24udmlld3MubGVuZ3RoOyBqKyspIHtcblx0XHRcdFx0bGV0IHZpZXcgPSBwZXJtaXNzaW9uLnZpZXdzW2pdO1xuXG5cdFx0XHRcdGlmICh2aWV3LmxpbmsgPT09IGxpbmspIHtcblx0XHRcdFx0XHRyZXR1cm4gISF2aWV3Lmhhc19wYXJhbWV0ZXI7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHRyZXR1cm4gZmFsc2U7XG5cdH1cblxuXHRpc0xpbmtGYWtlUm91dGUobGluazogc3RyaW5nKSB7XG5cdFx0bGV0IHBlcm1pc3Npb25zID0gdGhpcy5fYXBzLmdldEFsbE1vZHVsZVBlcm1pc3Npb25zKCk7XG5cblx0XHRmb3IgKGxldCBpID0gMDsgaSA8IHBlcm1pc3Npb25zLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRsZXQgcGVybWlzc2lvbiA9IHBlcm1pc3Npb25zW2ldO1xuXHRcdFx0Zm9yIChsZXQgaiA9IDA7IGogPCBwZXJtaXNzaW9uLnZpZXdzLmxlbmd0aDsgaisrKSB7XG5cdFx0XHRcdGxldCB2aWV3ID0gcGVybWlzc2lvbi52aWV3c1tqXTtcblxuXHRcdFx0XHRpZiAodmlldy5saW5rID09PSBsaW5rKSB7XG5cdFx0XHRcdFx0cmV0dXJuICEhdmlldy5mYWtlX3JvdXRlO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRydWU7XG5cdH1cbn0iXX0=
@@ -16,9 +16,9 @@ export class AuthPermissionService {
16
16
  return this.modules;
17
17
  }
18
18
  }
19
- AuthPermissionService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AuthPermissionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
20
- AuthPermissionService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AuthPermissionService });
21
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AuthPermissionService, decorators: [{
19
+ AuthPermissionService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AuthPermissionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
20
+ AuthPermissionService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AuthPermissionService });
21
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AuthPermissionService, decorators: [{
22
22
  type: Injectable
23
23
  }], ctorParameters: function () { return []; } });
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1wZXJtaXNzaW9ucy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL2F1dGgvYXV0aC1wZXJtaXNzaW9ucy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBSTNDLE1BQU0sT0FBTyxxQkFBcUI7SUFJakM7UUFGQSxZQUFPLEdBQTRCLEVBQUUsQ0FBQztJQUV2QixDQUFDO0lBRWhCLGNBQWMsQ0FBQyxnQkFBdUM7UUFDckQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUNwQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUMxQixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQ2YsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUNmLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM1QyxDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7SUFFRCx1QkFBdUI7UUFDdEIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3JCLENBQUM7O2tIQWpCVyxxQkFBcUI7c0hBQXJCLHFCQUFxQjsyRkFBckIscUJBQXFCO2tCQURqQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTW9kdWxlUGVybWlzc2lvbk1vZGVsIH0gZnJvbSAnLi4vbW9kZWxzL3Blcm1pc3Npb24ubW9kZWwnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQXV0aFBlcm1pc3Npb25TZXJ2aWNlIHtcblxuXHRtb2R1bGVzOiBNb2R1bGVQZXJtaXNzaW9uTW9kZWxbXSA9IFtdO1xuXG5cdGNvbnN0cnVjdG9yKCkge31cblx0XG5cdHJlZ2lzdGVyTW9kdWxlKG1vZHVsZVBlcm1pc3Npb246IE1vZHVsZVBlcm1pc3Npb25Nb2RlbCkge1xuXHRcdHRoaXMubW9kdWxlcy5wdXNoKG1vZHVsZVBlcm1pc3Npb24pO1xuXHRcdHRoaXMubW9kdWxlcy5zb3J0KChhLCBiKSA9PiB7XG5cdFx0XHRsZXQgeCA9IGEubmFtZTtcblx0XHRcdGxldCB5ID0gYi5uYW1lO1xuXHRcdFx0cmV0dXJuICgoeCA8IHkpID8gLTEgOiAoKHggPiB5ICkgPyAxIDogMCkpO1xuXHRcdH0pO1xuXHR9XG5cblx0Z2V0QWxsTW9kdWxlUGVybWlzc2lvbnMoKSB7XG5cdFx0cmV0dXJuIHRoaXMubW9kdWxlcztcblx0fVxufVxuIl19
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1wZXJtaXNzaW9ucy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL2F1dGgvYXV0aC1wZXJtaXNzaW9ucy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBSTNDLE1BQU0sT0FBTyxxQkFBcUI7SUFJakM7UUFGQSxZQUFPLEdBQTRCLEVBQUUsQ0FBQztJQUV2QixDQUFDO0lBRWhCLGNBQWMsQ0FBQyxnQkFBdUM7UUFDckQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUNwQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUMxQixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQ2YsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUNmLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM1QyxDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7SUFFRCx1QkFBdUI7UUFDdEIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3JCLENBQUM7O21IQWpCVyxxQkFBcUI7dUhBQXJCLHFCQUFxQjs0RkFBckIscUJBQXFCO2tCQURqQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTW9kdWxlUGVybWlzc2lvbk1vZGVsIH0gZnJvbSAnLi4vbW9kZWxzL3Blcm1pc3Npb24ubW9kZWwnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQXV0aFBlcm1pc3Npb25TZXJ2aWNlIHtcblxuXHRtb2R1bGVzOiBNb2R1bGVQZXJtaXNzaW9uTW9kZWxbXSA9IFtdO1xuXG5cdGNvbnN0cnVjdG9yKCkge31cblx0XG5cdHJlZ2lzdGVyTW9kdWxlKG1vZHVsZVBlcm1pc3Npb246IE1vZHVsZVBlcm1pc3Npb25Nb2RlbCkge1xuXHRcdHRoaXMubW9kdWxlcy5wdXNoKG1vZHVsZVBlcm1pc3Npb24pO1xuXHRcdHRoaXMubW9kdWxlcy5zb3J0KChhLCBiKSA9PiB7XG5cdFx0XHRsZXQgeCA9IGEubmFtZTtcblx0XHRcdGxldCB5ID0gYi5uYW1lO1xuXHRcdFx0cmV0dXJuICgoeCA8IHkpID8gLTEgOiAoKHggPiB5ICkgPyAxIDogMCkpO1xuXHRcdH0pO1xuXHR9XG5cblx0Z2V0QWxsTW9kdWxlUGVybWlzc2lvbnMoKSB7XG5cdFx0cmV0dXJuIHRoaXMubW9kdWxlcztcblx0fVxufVxuIl19
@@ -88,8 +88,8 @@ export class AuthService {
88
88
  }
89
89
  this._ds.input('Register New User', inputProps).then(close => {
90
90
  let user = {
91
- username: close.username.value.trim(),
92
- email: close.email.value.trim(),
91
+ username: close.username.value.trim().toLowerCase(),
92
+ email: close.email.value.trim().toLowerCase(),
93
93
  fullname: close.fullname.value.trim(),
94
94
  roles: {
95
95
  super_admin: false,
@@ -171,7 +171,7 @@ export class AuthService {
171
171
  user['phonenumber'] = '';
172
172
  }
173
173
  user.email = close.email.value.trim();
174
- this._socket.call('editUser', user._id, close.username.value.trim(), close.fullname.value.trim(), close.email.value.trim(), user['phonenumber'], (err, res) => {
174
+ this._socket.call('editUser', user._id, close.username.value.trim().toLowerCase(), close.fullname.value.trim(), close.email.value.trim().toLowerCase(), user['phonenumber'], (err, res) => {
175
175
  if (err) {
176
176
  this._socket.call('insertErrorLog', 'AuthService - edituser', [
177
177
  user,
@@ -236,9 +236,9 @@ export class AuthService {
236
236
  });
237
237
  }
238
238
  }
239
- AuthService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AuthService, deps: [{ token: i1.DialogService }, { token: i2.ValidationService }, { token: i3.AlertService }, { token: i4.AccountManagerService }, { token: i5.SocketManagerService }], target: i0.ɵɵFactoryTarget.Injectable });
240
- AuthService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AuthService });
241
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AuthService, decorators: [{
239
+ AuthService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AuthService, deps: [{ token: i1.DialogService }, { token: i2.ValidationService }, { token: i3.AlertService }, { token: i4.AccountManagerService }, { token: i5.SocketManagerService }], target: i0.ɵɵFactoryTarget.Injectable });
240
+ AuthService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AuthService });
241
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AuthService, decorators: [{
242
242
  type: Injectable
243
243
  }], ctorParameters: function () { return [{ type: i1.DialogService }, { type: i2.ValidationService }, { type: i3.AlertService }, { type: i4.AccountManagerService }, { type: i5.SocketManagerService }]; } });
244
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL2F1dGgvYXV0aC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNqRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDOUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFJNUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDL0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFakUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7O0FBSTVDLE1BQU0sT0FBTyxXQUFXO0lBT3ZCLFlBQW9CLEdBQWtCLEVBQVUsR0FBc0IsRUFBVSxNQUFvQixFQUFVLFFBQStCLEVBQVUsT0FBNkI7UUFBaEssUUFBRyxHQUFILEdBQUcsQ0FBZTtRQUFVLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBYztRQUFVLGFBQVEsR0FBUixRQUFRLENBQXVCO1FBQVUsWUFBTyxHQUFQLE9BQU8sQ0FBc0I7UUFOcEwsZ0JBQVcsR0FBRyxJQUFJLENBQUM7UUFDbkIsdUJBQWtCLEdBQUcsS0FBSyxDQUFDO0lBSzRKLENBQUM7SUFFeEwsbUJBQW1CLENBQUMsV0FBVztRQUM5QixJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztRQUUvQixJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBUSxLQUFLLFVBQVUsSUFBSSxNQUFNLENBQUMs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QUFDLENBQUM7SUFDaEssQ0FBQztJQUVELFVBQVUsQ0FBQyxFQUFVO1FBQ3BCLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDdEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRTtnQkFDN0QsSUFBSSxHQUFHLEVBQUU7b0JBQ1IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsdUJBQXVCLENBQUMsQ0FBQztvQkFDeEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsMEJBQTBCLEVBQUU7d0JBQy9ELEVBQUU7d0JBQ0YsR0FBRztxQkFDSCxDQUFDLENBQUM7b0JBQ0gsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2lCQUNaO3FCQUNJO29CQUNKLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztpQkFDZDtZQUNGLENBQUMsQ0FBQyxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDOzt3R0E5UFcsV0FBVzs0R0FBWCxXQUFXOzJGQUFYLFdBQVc7a0JBRHZCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnLi4vd2lkZ2V0cy9kaWFsb2cvZGlhbG9nLnNlcnZpY2UnO1xuaW1wb3J0IHsgQWNjb3VudE1hbmFnZXJTZXJ2aWNlIH0gZnJvbSAnLi4vYWNjb3VudC1tYW5hZ2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgQWxlcnRTZXJ2aWNlIH0gZnJvbSAnLi4vd2lkZ2V0cy9hbGVydC9hbGVydC5zZXJ2aWNlJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IFVzZXJNb2RlbCB9IGZyb20gJy4uL21vZGVscy91c2VyLm1vZGVsJztcblxuaW1wb3J0IHsgVmFsaWRhdGlvblNlcnZpY2UgfSBmcm9tICcuLi91dGlsL3ZhbGlkYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBTb2NrZXRNYW5hZ2VyU2VydmljZSB9IGZyb20gJy4uL3NvY2tldC1tYW5hZ2VyLnNlcnZpY2UnO1xuXG5pbXBvcnQgeyBVc2VyQWdlbnRBcHBsaWNhdGlvbiB9IGZyb20gJ21zYWwnO1xuXG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBdXRoU2VydmljZSB7XG5cdGVudmlyb25tZW50ID0gbnVsbDtcblx0dXNlckhhc1Bob25lTnVtYmVyID0gZmFsc2U7XG5cblx0dXNlckRhdGE7XG4gICAgdXNlckFnZW50QXBwbGljYXRpb247XG5cblx0Y29uc3RydWN0b3IocHJpdmF0ZSBfZHM6IERpYWxvZ1NlcnZpY2UsIHByaXZhdGUgX3ZzOiBWYWxpZGF0aW9uU2VydmljZSwgcHJpdmF0ZSBfYWxlcnQ6IEFsZXJ0U2VydmljZSwgcHJpdmF0ZSBfYWNjb3VudDogQWNjb3VudE1hbmFnZXJTZXJ2aWNlLCBwcml2YXRlIF9zb2NrZXQ6IFNvY2tldE1hbmFnZXJTZXJ2aWNlKSB7fVxuXG5cdHNldHVwTVNTaW5nbGVTaWduT24oZW52aXJvbm1lbnQpIHtcblx0XHR0aGlzLmVudmlyb25tZW50ID0gZW52aXJvbm1lbnQ7XG5cblx0XHRpZiAod2luZG93LmxvY2F0aW9uLnBhdGhuYW1lID09PSAnL2F1dGgzNjUnICYmIHdpbmRvdy5sb2NhdGlvbi5oYXNoICYmIHdpbmRvdy5sb2NhdGlvbi5oYXNoLnN0YXJ0c1dpdGgoJyNpZF90b2tlbj0nKSkge1xuXHRcdFx0dGhpcy5lbnZpcm9ubWVudC5NU19pZF90b2tlbiA9IHdpbmRvdy5sb2NhdGlvbi5oYXNoLnJlcGxhY2UoJyMnLCAnJyk7XG5cdFx0fSBcblxuXHRcdHRoaXMudXNlckFnZW50QXBwbGljYXRpb24gPSBuZXcgVXNlckFnZW50QXBwbGljYXRpb24oe1xuXHRcdFx0YXV0aDoge1xuXHRcdFx0XHRjbGllbnRJZDogdGhpcy5lbnZpcm9ubWVudC5NU19jbGllbnRJZCwgXG5cdFx0XHRcdGF1dGhvcml0eTogdGhpcy5lbnZpcm9ubWVudC5NU19hdXRob3JpdHksXG5cdFx0XHRcdHJlZGlyZWN0VXJpOiB0aGlzLmVudmlyb25tZW50Lk1TX3JlZGlyZWN0VXJpLFxuXHRcdFx0XHR2YWxpZGF0ZUF1dGhvcml0eTogZmFsc2UsXG5cdFx0XHRcdG5hdmlnYXRlVG9Mb2dpblJlcXVlc3RVcmw6IGZhbHNlXG5cdFx0XHR9LFxuXHRcdFx0ZnJhbWV3b3JrOiB7aXNBbmd1bGFyOiB0cnVlfVxuXHRcdH0pO1xuXHR9XG5cblx0c2V0RW52aXJvbm1lbnQoZW52aXJvbm1lbnQpIHtcblx0XHR0aGlzLmVudmlyb25tZW50ID0gZW52aXJvbm1lbnQ7XG5cdH1cblxuXHRzZXRVc2VySGFzUGhvbmVOdW1iZXIodmFsdWU6IGJvb2xlYW4pIHtcblx0XHR0aGlzLnVzZXJIYXNQaG9uZU51bWJlciA9IHZhbHVlO1xuXHR9XG5cblx0cmVnaXN0ZXJVc2VyKG90aGVyOiBPYmplY3QsIHNlbmRFbnJvbGxtZW50RW1haWwgPSB0cnVlKSB7XG5cdFx0cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcblxuXHRcdFx0bGV0IGlucHV0UHJvcHM6IGFueVtdID0gW1xuXHRcdFx0XHR7XG5cdFx0XHRcdFx0bGFiZWw6ICdVc2VyIE5hbWUnLFxuXHRcdFx0XHRcdGZvcm06ICd1c2VybmFtZScsXG5cdFx0XHRcdFx0ZGF0YTogJycsXG5cdFx0XHRcdFx0dmFsaWRhdG9yczogW1ZhbGlkYXRvcnMucmVxdWlyZWRdLFxuXHRcdFx0XHRcdHZhbGlkYXRvckVycm9yczogWydyZXF1aXJlZCddLFxuXHRcdFx0XHRcdHZhbGlkYXRvck1zZzogWydVc2VybmFtZSBpcyByZXF1aXJlZCddLFxuXHRcdFx0XHRcdHJlcXVpcmVkOiB0cnVlXG5cdFx0XHRcdH0sXG5cdFx0XHRcdHtcblx0XHRcdFx0XHRsYWJlbDogJ0Z1bGwgTmFtZScsXG5cdFx0XHRcdFx0Zm9ybTogJ2Z1bGxuYW1lJyxcblx0XHRcdFx0XHRkYXRhOiAnJyxcblx0XHRcdFx0XHR2YWxpZGF0b3JzOiBbVmFsaWRhdG9ycy5yZXF1aXJlZF0sXG5cdFx0XHRcdFx0dmFsaWRhdG9yRXJyb3JzOiBbJ3JlcXVpcmVkJ10sXG5cdFx0XHRcdFx0dmFsaWRhdG9yTXNnOiBbJ0Z1bGwgbmFtZSBpcyByZXF1aXJlZCddLFxuXHRcdFx0XHRcdHJlcXVpcmVkOiB0cnVlXG5cdFx0XHRcdH0sXG5cdFx0XHRcdHtcblx0XHRcdFx0XHRsYWJlbDogJ0VtYWlsJyxcblx0XHRcdFx0XHRmb3JtOiAnZW1haWwnLFxuXHRcdFx0XHRcdGRhdGE6ICcnLFxuXHRcdFx0XHRcdHZhbGlkYXRvcnM6IFtWYWxpZGF0b3JzLnJlcXVpcmVkLCB0aGlzLl92cy5lbWFpbF0sXG5cdFx0XHRcdFx0dmFsaWRhdG9yRXJyb3JzOiBbJ3JlcXVpcmVkJywgJ2VtYWlsJ10sXG5cdFx0XHRcdFx0dmFsaWRhdG9yTXNnOiBbJ0VtYWlsIGlzIHJlcXVpcmVkJywgJ0VtYWlsIGlzIGludmFsaWQnXSxcblx0XHRcdFx0XHRyZXF1aXJlZDogdHJ1ZVxuXHRcdFx0XHR9XG5cdFx0XHRdO1xuXG5cdFx0XHRpZiAodGhpcy51c2VySGFzUGhvbmVOdW1iZXIpIHtcblx0XHRcdFx0aW5wdXRQcm9wcy5wdXNoKHtcblx0XHRcdFx0XHRsYWJlbDogJ1Bob25lJyxcblx0XHRcdFx0XHRmb3JtOiAncGhvbmVudW1iZXInLFxuXHRcdFx0XHRcdGRhdGE6ICcnLFxuXHRcdFx0XHRcdHZhbGlkYXRvcnM6IFt0aGlzLl92cy5waG9uZU51bWJlcl0sXG5cdFx0XHRcdFx0dmFsaWRhdG9yRXJyb3JzOiBbJ3Bob25lTnVtYmVyJ10sXG5cdFx0XHRcdFx0dmFsaWRhdG9yTXNnOiBbJ1Bob25lIG51bWJlciBpcyBpbnZhbGlkJ10sXG5cdFx0XHRcdFx0dHlwZTogJ3RleHQnXG5cdFx0XHRcdH0pO1xuXHRcdFx0fVxuXG5cdFx0XHR0aGlzLl9kcy5pbnB1dCgnUmVnaXN0ZXIgTmV3IFVzZXInLCBpbnB1dFByb3BzKS50aGVuKGNsb3NlID0+IHtcblx0XHRcdFx0bGV0IHVzZXI6IFVzZXJNb2RlbCA9IHtcblx0XHRcdFx0XHR1c2VybmFtZTogY2xvc2UudXNlcm5hbWUudmFsdWUudHJpbSgpLFxuXHRcdFx0XHRcdGVtYWlsOiBjbG9zZS5lbWFpbC52YWx1ZS50cmltKCksXG5cdFx0XHRcdFx0ZnVsbG5hbWU6IGNsb3NlLmZ1bGxuYW1lLnZhbHVlLnRyaW0oKSxcblx0XHRcdFx0XHRyb2xlczoge1xuXHRcdFx0XHRcdFx0c3VwZXJfYWRtaW46IGZhbHNlLFxuXHRcdFx0XHRcdFx0YXBwcm92YWxzOiBbXSxcblx0XHRcdFx0XHRcdGdyb3VwczogW10sXG5cdFx0XHRcdFx0XHRub3RpZmljYXRpb25zOiBbXSxcblx0XHRcdFx0XHRcdG1pc2NzOiBbXVxuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0YWN0aXZlOiB0cnVlLFxuXHRcdFx0XHRcdHJlYWRvbmx5OiBmYWxzZSxcblx0XHRcdFx0XHRwaG9uZW51bWJlcjogY2xvc2UucGhvbmVudW1iZXIgPyBjbG9zZS5waG9uZW51bWJlci52YWx1ZSA6ICcnLFxuXHRcdFx0XHRcdG90aGVyOiBvdGhlcixcblx0XHRcdFx0XHRhdHRlbXB0czogMCxcblx0XHRcdFx0XHRzYWx0OiAnJyxcblx0XHRcdFx0XHRoYXNoOiAnJ1xuXHRcdFx0XHR9O1xuXG5cdFx0XHRcdHRoaXMuX3NvY2tldC5jYWxsKCdjcmVhdGVVc2VyQW5kRW1haWxFbnJvbGxtZW50JywgdXNlciwgc2VuZEVucm9sbG1lbnRFbWFpbCwgKGVyciwgcmVzKSA9PiB7XG5cdFx0XHRcdFx0aWYgKGVycikge1xuXHRcdFx0XHRcdFx0dGhpcy5fc29ja2V0LmNhbGwoJ2luc2VydEVycm9yTG9nJywgJ0F1dGhTZXJ2aWNlIC0gY3JlYXRlVXNlckFuZEVtYWlsRW5yb2xsbWVudCcsIFtcblx0XHRcdFx0XHRcdFx0e2VtYWlsOiBjbG9zZS5lbWFpbC52YWx1ZSwgdXNlcm5hbWU6IGNsb3NlLnVzZXJuYW1lLnZhbHVlLCBwcm9maWxlOiB7ZnVsbG5hbWU6IGNsb3NlLmZ1bGxuYW1lLnZhbHVlLCBzdGF0dXM6ICdhY3RpdmUnfX0sXG5cdFx0XHRcdFx0XHRcdGVyclxuXHRcdFx0XHRcdFx0XSk7XG5cblx0XHRcdFx0XHRcdHJlamVjdChlcnIpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRlbHNlIHtcblx0XHRcdFx0XHRcdHJlc29sdmUocmVzKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pO1xuXHRcdFx0fSxcblx0XHRcdFx0ZGlzbWlzcyA9PiByZWplY3QoKVxuXHRcdFx0KTtcblx0XHR9KTtcblx0fVxuXG5cdGVkaXRVc2VyKHVzZXI6IFVzZXJNb2RlbCkge1xuXG5cdFx0bGV0IGlucHV0UHJvcHM6IGFueVtdID0gW1xuXHRcdFx0e1xuXHRcdFx0XHRsYWJlbDogJ1VzZXIgTmFtZScsXG5cdFx0XHRcdGZvcm06ICd1c2VybmFtZScsXG5cdFx0XHRcdGRhdGE6IHVzZXIudXNlcm5hbWUsXG5cdFx0XHRcdHZhbGlkYXRvcnM6IFtWYWxpZGF0b3JzLnJlcXVpcmVkXSxcblx0XHRcdFx0dmFsaWRhdG9yRXJyb3JzOiBbJ3JlcXVpcmVkJ10sXG5cdFx0XHRcdHZhbGlkYXRvck1zZzogWydVc2VybmFtZSBpcyByZXF1aXJlZCddLFxuXHRcdFx0XHRyZXF1aXJlZDogdHJ1ZVxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0bGFiZWw6ICdGdWxsIE5hbWUnLFxuXHRcdFx0XHRmb3JtOiAnZnVsbG5hbWUnLFxuXHRcdFx0XHRkYXRhOiB1c2VyLmZ1bGxuYW1lLFxuXHRcdFx0XHR2YWxpZGF0b3JzOiBbVmFsaWRhdG9ycy5yZXF1aXJlZF0sXG5cdFx0XHRcdHZhbGlkYXRvckVycm9yczogWydyZXF1aXJlZCddLFxuXHRcdFx0XHR2YWxpZGF0b3JNc2c6IFsnRnVsbCBuYW1lIGlzIHJlcXVpcmVkJ10sXG5cdFx0XHRcdHJlcXVpcmVkOiB0cnVlXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRsYWJlbDogJ0VtYWlsJyxcblx0XHRcdFx0Zm9ybTogJ2VtYWlsJyxcblx0XHRcdFx0ZGF0YTogdXNlci5lbWFpbCxcblx0XHRcdFx0dmFsaWRhdG9yczogW1ZhbGlkYXRvcnMucmVxdWlyZWQsIHRoaXMuX3ZzLmVtYWlsXSxcblx0XHRcdFx0dmFsaWRhdG9yRXJyb3JzOiBbJ3JlcXVpcmVkJywgJ2VtYWlsJ10sXG5cdFx0XHRcdHZhbGlkYXRvck1zZzogWydFbWFpbCBpcyByZXF1aXJlZCcsICdFbWFpbCBpcyBpbnZhbGlkJ10sXG5cdFx0XHRcdHJlcXVpcmVkOiB0cnVlXG5cdFx0XHR9XG5cdFx0XTtcblxuXHRcdGlmICh0aGlzLnVzZXJIYXNQaG9uZU51bWJlcikge1xuXHRcdFx0aW5wdXRQcm9wcy5wdXNoKHtcblx0XHRcdFx0bGFiZWw6ICdQaG9uZScsXG5cdFx0XHRcdGZvcm06ICdwaG9uZW51bWJlcicsXG5cdFx0XHRcdGRhdGE6IHVzZXJbJ3Bob25lbnVtYmVyJ10gfHwgJycsXG5cdFx0XHRcdHZhbGlkYXRvcnM6IFt0aGlzLl92cy5waG9uZU51bWJlcl0sXG5cdFx0XHRcdHZhbGlkYXRvckVycm9yczogWydwaG9uZU51bWJlciddLFxuXHRcdFx0XHR2YWxpZGF0b3JNc2c6IFsnUGhvbmUgbnVtYmVyIGlzIGludmFsaWQnXSxcblx0XHRcdFx0dHlwZTogJ3RleHQnXG5cdFx0XHR9KTtcblx0XHR9XG5cblx0XHRyZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuXHRcdFx0dGhpcy5fZHMuaW5wdXQoXG5cdFx0XHRcdCdFZGl0IFVzZXInLCBpbnB1dFByb3BzXG5cdFx0XHQpLnRoZW4oY2xvc2UgPT4ge1xuXG5cdFx0XHRcdGlmIChjbG9zZS5waG9uZW51bWJlciAmJiBjbG9zZS5waG9uZW51bWJlci52YWx1ZSkge1xuXHRcdFx0XHRcdHVzZXJbJ3Bob25lbnVtYmVyJ10gPSBjbG9zZS5waG9uZW51bWJlci52YWx1ZTtcblx0XHRcdFx0fVxuXHRcdFx0XHRlbHNlIHtcblx0XHRcdFx0XHR1c2VyWydwaG9uZW51bWJlciddID0gJyc7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHR1c2VyLmVtYWlsID0gY2xvc2UuZW1haWwudmFsdWUudHJpbSgpO1xuXG5cdFx0XHRcdHRoaXMuX3NvY2tldC5jYWxsKCdlZGl0VXNlcicsIHVzZXIuX2lkLCBjbG9zZS51c2VybmFtZS52YWx1ZS50cmltKCksIGNsb3NlLmZ1bGxuYW1lLnZhbHVlLnRyaW0oKSwgY2xvc2UuZW1haWwudmFsdWUudHJpbSgpLCB1c2VyWydwaG9uZW51bWJlciddLCAoZXJyLCByZXMpID0+IHtcblx0XHRcdFx0XHRcblx0XHRcdFx0XHRpZiAoZXJyKSB7XG5cdFx0XHRcdFx0XHR0aGlzLl9zb2NrZXQuY2FsbCgnaW5zZXJ0RXJyb3JMb2cnLCAnQXV0aFNlcnZpY2UgLSBlZGl0dXNlcicsIFtcblx0XHRcdFx0XHRcdFx0dXNlcixcblx0XHRcdFx0XHRcdFx0ZXJyXG5cdFx0XHRcdFx0XHRdKTtcblxuXHRcdFx0XHRcdFx0cmVqZWN0KGVycik7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGVsc2Uge1xuXHRcdFx0XHRcdFx0bGV0IHVwZGF0ZWREYXRhID0ge1xuXHRcdFx0XHRcdFx0XHR1c2VybmFtZTogY2xvc2UudXNlcm5hbWUudmFsdWUudHJpbSgpLFxuXHRcdFx0XHRcdFx0XHRmdWxsbmFtZTogY2xvc2UuZnVsbG5hbWUudmFsdWUudHJpbSgpLFxuXHRcdFx0XHRcdFx0XHRlbWFpbDogY2xvc2UuZW1haWwudmFsdWUudHJpbSgpXG5cdFx0XHRcdFx0XHR9O1xuXHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHR0aGlzLl9hbGVydC5zZXRBbGVydCgnc3VjY2VzcycsICdVc2VyIGhhcyBiZWVuIGVkaXRlZCcpO1xuXHRcdFx0XHRcdFx0cmVzb2x2ZSh1cGRhdGVkRGF0YSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KTtcblx0XHRcdH0sXG5cdFx0XHRcdGRpc21pc3MgPT4geyByZXNvbHZlKHRydWUpOyB9XG5cdFx0XHQpO1xuXHRcdH0pO1xuXHR9XG5cblx0bG9naW5Vc2VyKCk6IFByb21pc2U8YW55PiB7XG5cdFx0cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcblx0XHRcdHRoaXMubG9naW5Nb2RhbCgpLnRoZW4oXG5cdFx0XHRcdGNsb3NlID0+IHtcblx0XHRcdFx0XHRpZiAoY2xvc2UudHlwZSA9PT0gJ01TJykge1xuXHRcdFx0XHRcdFx0dGhpcy5taWNyb3NvZnRTaWduT24oKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0ZWxzZSB7XG5cdFx0XHRcdFx0XHRpZiAoIWNsb3NlLmZvcm0udmFsdWUuZm9yZ290UGFzc3dvcmQpIHtcblx0XHRcdFx0XHRcdFx0dGhpcy5fYWNjb3VudC5sb2dJbihjbG9zZS5mb3JtLnZhbHVlLnVzZXJuYW1lLCBjbG9zZS5mb3JtLnZhbHVlLnBhc3N3b3JkKS50aGVuKHVzZXIgPT4ge1xuXHRcdFx0XHRcdFx0XHRcdHJlc29sdmUodXNlcik7XG5cdFx0XHRcdFx0XHRcdH0sIGVyclVzZXIgPT4gcmVqZWN0KCdJbnZhbGlkIGxvZ2luJykpO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0ZWxzZSB7XG5cdFx0XHRcdFx0XHRcdHRoaXMuX2FjY291bnQucmVzZXRVc2VyUGFzc3dvcmQoY2xvc2UuZm9ybS52YWx1ZS51c2VybmFtZSk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9LFxuXHRcdFx0XHRkaXNtaXNzID0+IHJlamVjdCgpXG5cdFx0XHQpO1xuXHRcdH0pO1xuXHR9XG5cblx0cHJpdmF0ZSBtaWNyb3NvZnRTaWduT24oKSB7XG4gICAgICAgIHZhciBncmFwaFNjb3BlcyA9IFtcInVzZXIucmVhZFwiLCBcIm1haWwuc2VuZFwiXTtcbiAgICAgICAgdGhpcy51c2VyQWdlbnRBcHBsaWNhdGlvbi5sb2dpblJlZGlyZWN0KGdyYXBoU2NvcGVzKTtcbiAgICB9XG5cblx0cHJpdmF0ZSBsb2dpbk1vZGFsKCkge1xuXHRcdHJldHVybiB0aGlzLl9kcy5sb2dpbighdGhpcy5lbnZpcm9ubWVudCB8fCAhdGhpcy5lbnZpcm9ubWVudC5NU19BTExPV0VEID8gZmFsc2UgOiB0cnVlLCAhdGhpcy5lbnZpcm9ubWVudCB8fCAhdGhpcy5lbnZpcm9ubWVudC5ISURFX0xPR0lOX1RFWFQgPyB0cnVlIDogZmFsc2UpO1xuXHR9XG5cblx0cmVtb3ZlVXNlcihpZDogc3RyaW5nKSB7XG5cdFx0cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcblx0XHRcdHRoaXMuX3NvY2tldC5jYWxsKCdyZW1vdmVEb2N1bWVudCcsICd1c2VycycsIGlkLCAoZXJyLCByZXMpID0+IHtcblx0XHRcdFx0aWYgKGVycikge1xuXHRcdFx0XHRcdHRoaXMuX2RzLmVycm9yKCdDb3VsZCBub3QgcmVtb3ZlIHVzZXInKTtcblx0XHRcdFx0XHR0aGlzLl9zb2NrZXQuY2FsbCgnaW5zZXJ0RXJyb3JMb2cnLCAnQXV0aFNlcnZpY2UgLSByZW1vdmVVc2VyJywgW1xuXHRcdFx0XHRcdFx0aWQsXG5cdFx0XHRcdFx0XHRlcnJcblx0XHRcdFx0XHRdKTtcblx0XHRcdFx0XHRyZWplY3QoZXJyKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRlbHNlIHtcblx0XHRcdFx0XHRyZXNvbHZlKHRydWUpO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHR9KTtcblx0fVxufVxuIl19
244
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL2F1dGgvYXV0aC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNqRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDOUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFJNUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDL0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFakUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7O0FBSTVDLE1BQU0sT0FBTyxXQUFXO0lBT3ZCLFlBQW9CLEdBQWtCLEVBQVUsR0FBc0IsRUFBVSxNQUFvQixFQUFVLFFBQStCLEVBQVUsT0FBNkI7UUFBaEssUUFBRyxHQUFILEdBQUcsQ0FBZTtRQUFVLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBYztRQUFVLGFBQVEsR0FBUixRQUFRLENBQXVCO1FBQVUsWUFBTyxHQUFQLE9BQU8sQ0FBc0I7UUFOcEwsZ0JBQVcsR0FBRyxJQUFJLENBQUM7UUFDbkIsdUJBQWtCLEdBQUcsS0FBSyxDQUFDO0lBSzRKLENBQUM7SUFFeEwsbUJBQW1CLENBQUMsV0FBVztRQUM5QixJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztRQUUvQixJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBUSxLQUFLLFVBQVUsSUFBSSxNQUFNLENBQUMs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QUFDLFdBQVcsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDaEssQ0FBQztJQUVELFVBQVUsQ0FBQyxFQUFVO1FBQ3BCLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDdEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRTtnQkFDN0QsSUFBSSxHQUFHLEVBQUU7b0JBQ1IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsdUJBQXVCLENBQUMsQ0FBQztvQkFDeEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsMEJBQTBCLEVBQUU7d0JBQy9ELEVBQUU7d0JBQ0YsR0FBRztxQkFDSCxDQUFDLENBQUM7b0JBQ0gsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2lCQUNaO3FCQUNJO29CQUNKLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztpQkFDZDtZQUNGLENBQUMsQ0FBQyxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDOzt5R0E5UFcsV0FBVzs2R0FBWCxXQUFXOzRGQUFYLFdBQVc7a0JBRHZCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnLi4vd2lkZ2V0cy9kaWFsb2cvZGlhbG9nLnNlcnZpY2UnO1xuaW1wb3J0IHsgQWNjb3VudE1hbmFnZXJTZXJ2aWNlIH0gZnJvbSAnLi4vYWNjb3VudC1tYW5hZ2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgQWxlcnRTZXJ2aWNlIH0gZnJvbSAnLi4vd2lkZ2V0cy9hbGVydC9hbGVydC5zZXJ2aWNlJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IFVzZXJNb2RlbCB9IGZyb20gJy4uL21vZGVscy91c2VyLm1vZGVsJztcblxuaW1wb3J0IHsgVmFsaWRhdGlvblNlcnZpY2UgfSBmcm9tICcuLi91dGlsL3ZhbGlkYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBTb2NrZXRNYW5hZ2VyU2VydmljZSB9IGZyb20gJy4uL3NvY2tldC1tYW5hZ2VyLnNlcnZpY2UnO1xuXG5pbXBvcnQgeyBVc2VyQWdlbnRBcHBsaWNhdGlvbiB9IGZyb20gJ21zYWwnO1xuXG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBdXRoU2VydmljZSB7XG5cdGVudmlyb25tZW50ID0gbnVsbDtcblx0dXNlckhhc1Bob25lTnVtYmVyID0gZmFsc2U7XG5cblx0dXNlckRhdGE7XG4gICAgdXNlckFnZW50QXBwbGljYXRpb247XG5cblx0Y29uc3RydWN0b3IocHJpdmF0ZSBfZHM6IERpYWxvZ1NlcnZpY2UsIHByaXZhdGUgX3ZzOiBWYWxpZGF0aW9uU2VydmljZSwgcHJpdmF0ZSBfYWxlcnQ6IEFsZXJ0U2VydmljZSwgcHJpdmF0ZSBfYWNjb3VudDogQWNjb3VudE1hbmFnZXJTZXJ2aWNlLCBwcml2YXRlIF9zb2NrZXQ6IFNvY2tldE1hbmFnZXJTZXJ2aWNlKSB7fVxuXG5cdHNldHVwTVNTaW5nbGVTaWduT24oZW52aXJvbm1lbnQpIHtcblx0XHR0aGlzLmVudmlyb25tZW50ID0gZW52aXJvbm1lbnQ7XG5cblx0XHRpZiAod2luZG93LmxvY2F0aW9uLnBhdGhuYW1lID09PSAnL2F1dGgzNjUnICYmIHdpbmRvdy5sb2NhdGlvbi5oYXNoICYmIHdpbmRvdy5sb2NhdGlvbi5oYXNoLnN0YXJ0c1dpdGgoJyNpZF90b2tlbj0nKSkge1xuXHRcdFx0dGhpcy5lbnZpcm9ubWVudC5NU19pZF90b2tlbiA9IHdpbmRvdy5sb2NhdGlvbi5oYXNoLnJlcGxhY2UoJyMnLCAnJyk7XG5cdFx0fSBcblxuXHRcdHRoaXMudXNlckFnZW50QXBwbGljYXRpb24gPSBuZXcgVXNlckFnZW50QXBwbGljYXRpb24oe1xuXHRcdFx0YXV0aDoge1xuXHRcdFx0XHRjbGllbnRJZDogdGhpcy5lbnZpcm9ubWVudC5NU19jbGllbnRJZCwgXG5cdFx0XHRcdGF1dGhvcml0eTogdGhpcy5lbnZpcm9ubWVudC5NU19hdXRob3JpdHksXG5cdFx0XHRcdHJlZGlyZWN0VXJpOiB0aGlzLmVudmlyb25tZW50Lk1TX3JlZGlyZWN0VXJpLFxuXHRcdFx0XHR2YWxpZGF0ZUF1dGhvcml0eTogZmFsc2UsXG5cdFx0XHRcdG5hdmlnYXRlVG9Mb2dpblJlcXVlc3RVcmw6IGZhbHNlXG5cdFx0XHR9LFxuXHRcdFx0ZnJhbWV3b3JrOiB7aXNBbmd1bGFyOiB0cnVlfVxuXHRcdH0pO1xuXHR9XG5cblx0c2V0RW52aXJvbm1lbnQoZW52aXJvbm1lbnQpIHtcblx0XHR0aGlzLmVudmlyb25tZW50ID0gZW52aXJvbm1lbnQ7XG5cdH1cblxuXHRzZXRVc2VySGFzUGhvbmVOdW1iZXIodmFsdWU6IGJvb2xlYW4pIHtcblx0XHR0aGlzLnVzZXJIYXNQaG9uZU51bWJlciA9IHZhbHVlO1xuXHR9XG5cblx0cmVnaXN0ZXJVc2VyKG90aGVyOiBPYmplY3QsIHNlbmRFbnJvbGxtZW50RW1haWwgPSB0cnVlKSB7XG5cdFx0cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcblxuXHRcdFx0bGV0IGlucHV0UHJvcHM6IGFueVtdID0gW1xuXHRcdFx0XHR7XG5cdFx0XHRcdFx0bGFiZWw6ICdVc2VyIE5hbWUnLFxuXHRcdFx0XHRcdGZvcm06ICd1c2VybmFtZScsXG5cdFx0XHRcdFx0ZGF0YTogJycsXG5cdFx0XHRcdFx0dmFsaWRhdG9yczogW1ZhbGlkYXRvcnMucmVxdWlyZWRdLFxuXHRcdFx0XHRcdHZhbGlkYXRvckVycm9yczogWydyZXF1aXJlZCddLFxuXHRcdFx0XHRcdHZhbGlkYXRvck1zZzogWydVc2VybmFtZSBpcyByZXF1aXJlZCddLFxuXHRcdFx0XHRcdHJlcXVpcmVkOiB0cnVlXG5cdFx0XHRcdH0sXG5cdFx0XHRcdHtcblx0XHRcdFx0XHRsYWJlbDogJ0Z1bGwgTmFtZScsXG5cdFx0XHRcdFx0Zm9ybTogJ2Z1bGxuYW1lJyxcblx0XHRcdFx0XHRkYXRhOiAnJyxcblx0XHRcdFx0XHR2YWxpZGF0b3JzOiBbVmFsaWRhdG9ycy5yZXF1aXJlZF0sXG5cdFx0XHRcdFx0dmFsaWRhdG9yRXJyb3JzOiBbJ3JlcXVpcmVkJ10sXG5cdFx0XHRcdFx0dmFsaWRhdG9yTXNnOiBbJ0Z1bGwgbmFtZSBpcyByZXF1aXJlZCddLFxuXHRcdFx0XHRcdHJlcXVpcmVkOiB0cnVlXG5cdFx0XHRcdH0sXG5cdFx0XHRcdHtcblx0XHRcdFx0XHRsYWJlbDogJ0VtYWlsJyxcblx0XHRcdFx0XHRmb3JtOiAnZW1haWwnLFxuXHRcdFx0XHRcdGRhdGE6ICcnLFxuXHRcdFx0XHRcdHZhbGlkYXRvcnM6IFtWYWxpZGF0b3JzLnJlcXVpcmVkLCB0aGlzLl92cy5lbWFpbF0sXG5cdFx0XHRcdFx0dmFsaWRhdG9yRXJyb3JzOiBbJ3JlcXVpcmVkJywgJ2VtYWlsJ10sXG5cdFx0XHRcdFx0dmFsaWRhdG9yTXNnOiBbJ0VtYWlsIGlzIHJlcXVpcmVkJywgJ0VtYWlsIGlzIGludmFsaWQnXSxcblx0XHRcdFx0XHRyZXF1aXJlZDogdHJ1ZVxuXHRcdFx0XHR9XG5cdFx0XHRdO1xuXG5cdFx0XHRpZiAodGhpcy51c2VySGFzUGhvbmVOdW1iZXIpIHtcblx0XHRcdFx0aW5wdXRQcm9wcy5wdXNoKHtcblx0XHRcdFx0XHRsYWJlbDogJ1Bob25lJyxcblx0XHRcdFx0XHRmb3JtOiAncGhvbmVudW1iZXInLFxuXHRcdFx0XHRcdGRhdGE6ICcnLFxuXHRcdFx0XHRcdHZhbGlkYXRvcnM6IFt0aGlzLl92cy5waG9uZU51bWJlcl0sXG5cdFx0XHRcdFx0dmFsaWRhdG9yRXJyb3JzOiBbJ3Bob25lTnVtYmVyJ10sXG5cdFx0XHRcdFx0dmFsaWRhdG9yTXNnOiBbJ1Bob25lIG51bWJlciBpcyBpbnZhbGlkJ10sXG5cdFx0XHRcdFx0dHlwZTogJ3RleHQnXG5cdFx0XHRcdH0pO1xuXHRcdFx0fVxuXG5cdFx0XHR0aGlzLl9kcy5pbnB1dCgnUmVnaXN0ZXIgTmV3IFVzZXInLCBpbnB1dFByb3BzKS50aGVuKGNsb3NlID0+IHtcblx0XHRcdFx0bGV0IHVzZXI6IFVzZXJNb2RlbCA9IHtcblx0XHRcdFx0XHR1c2VybmFtZTogY2xvc2UudXNlcm5hbWUudmFsdWUudHJpbSgpLnRvTG93ZXJDYXNlKCksXG5cdFx0XHRcdFx0ZW1haWw6IGNsb3NlLmVtYWlsLnZhbHVlLnRyaW0oKS50b0xvd2VyQ2FzZSgpLFxuXHRcdFx0XHRcdGZ1bGxuYW1lOiBjbG9zZS5mdWxsbmFtZS52YWx1ZS50cmltKCksXG5cdFx0XHRcdFx0cm9sZXM6IHtcblx0XHRcdFx0XHRcdHN1cGVyX2FkbWluOiBmYWxzZSxcblx0XHRcdFx0XHRcdGFwcHJvdmFsczogW10sXG5cdFx0XHRcdFx0XHRncm91cHM6IFtdLFxuXHRcdFx0XHRcdFx0bm90aWZpY2F0aW9uczogW10sXG5cdFx0XHRcdFx0XHRtaXNjczogW11cblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdGFjdGl2ZTogdHJ1ZSxcblx0XHRcdFx0XHRyZWFkb25seTogZmFsc2UsXG5cdFx0XHRcdFx0cGhvbmVudW1iZXI6IGNsb3NlLnBob25lbnVtYmVyID8gY2xvc2UucGhvbmVudW1iZXIudmFsdWUgOiAnJyxcblx0XHRcdFx0XHRvdGhlcjogb3RoZXIsXG5cdFx0XHRcdFx0YXR0ZW1wdHM6IDAsXG5cdFx0XHRcdFx0c2FsdDogJycsXG5cdFx0XHRcdFx0aGFzaDogJydcblx0XHRcdFx0fTtcblxuXHRcdFx0XHR0aGlzLl9zb2NrZXQuY2FsbCgnY3JlYXRlVXNlckFuZEVtYWlsRW5yb2xsbWVudCcsIHVzZXIsIHNlbmRFbnJvbGxtZW50RW1haWwsIChlcnIsIHJlcykgPT4ge1xuXHRcdFx0XHRcdGlmIChlcnIpIHtcblx0XHRcdFx0XHRcdHRoaXMuX3NvY2tldC5jYWxsKCdpbnNlcnRFcnJvckxvZycsICdBdXRoU2VydmljZSAtIGNyZWF0ZVVzZXJBbmRFbWFpbEVucm9sbG1lbnQnLCBbXG5cdFx0XHRcdFx0XHRcdHtlbWFpbDogY2xvc2UuZW1haWwudmFsdWUsIHVzZXJuYW1lOiBjbG9zZS51c2VybmFtZS52YWx1ZSwgcHJvZmlsZToge2Z1bGxuYW1lOiBjbG9zZS5mdWxsbmFtZS52YWx1ZSwgc3RhdHVzOiAnYWN0aXZlJ319LFxuXHRcdFx0XHRcdFx0XHRlcnJcblx0XHRcdFx0XHRcdF0pO1xuXG5cdFx0XHRcdFx0XHRyZWplY3QoZXJyKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0ZWxzZSB7XG5cdFx0XHRcdFx0XHRyZXNvbHZlKHJlcyk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KTtcblx0XHRcdH0sXG5cdFx0XHRcdGRpc21pc3MgPT4gcmVqZWN0KClcblx0XHRcdCk7XG5cdFx0fSk7XG5cdH1cblxuXHRlZGl0VXNlcih1c2VyOiBVc2VyTW9kZWwpIHtcblxuXHRcdGxldCBpbnB1dFByb3BzOiBhbnlbXSA9IFtcblx0XHRcdHtcblx0XHRcdFx0bGFiZWw6ICdVc2VyIE5hbWUnLFxuXHRcdFx0XHRmb3JtOiAndXNlcm5hbWUnLFxuXHRcdFx0XHRkYXRhOiB1c2VyLnVzZXJuYW1lLFxuXHRcdFx0XHR2YWxpZGF0b3JzOiBbVmFsaWRhdG9ycy5yZXF1aXJlZF0sXG5cdFx0XHRcdHZhbGlkYXRvckVycm9yczogWydyZXF1aXJlZCddLFxuXHRcdFx0XHR2YWxpZGF0b3JNc2c6IFsnVXNlcm5hbWUgaXMgcmVxdWlyZWQnXSxcblx0XHRcdFx0cmVxdWlyZWQ6IHRydWVcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdGxhYmVsOiAnRnVsbCBOYW1lJyxcblx0XHRcdFx0Zm9ybTogJ2Z1bGxuYW1lJyxcblx0XHRcdFx0ZGF0YTogdXNlci5mdWxsbmFtZSxcblx0XHRcdFx0dmFsaWRhdG9yczogW1ZhbGlkYXRvcnMucmVxdWlyZWRdLFxuXHRcdFx0XHR2YWxpZGF0b3JFcnJvcnM6IFsncmVxdWlyZWQnXSxcblx0XHRcdFx0dmFsaWRhdG9yTXNnOiBbJ0Z1bGwgbmFtZSBpcyByZXF1aXJlZCddLFxuXHRcdFx0XHRyZXF1aXJlZDogdHJ1ZVxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0bGFiZWw6ICdFbWFpbCcsXG5cdFx0XHRcdGZvcm06ICdlbWFpbCcsXG5cdFx0XHRcdGRhdGE6IHVzZXIuZW1haWwsXG5cdFx0XHRcdHZhbGlkYXRvcnM6IFtWYWxpZGF0b3JzLnJlcXVpcmVkLCB0aGlzLl92cy5lbWFpbF0sXG5cdFx0XHRcdHZhbGlkYXRvckVycm9yczogWydyZXF1aXJlZCcsICdlbWFpbCddLFxuXHRcdFx0XHR2YWxpZGF0b3JNc2c6IFsnRW1haWwgaXMgcmVxdWlyZWQnLCAnRW1haWwgaXMgaW52YWxpZCddLFxuXHRcdFx0XHRyZXF1aXJlZDogdHJ1ZVxuXHRcdFx0fVxuXHRcdF07XG5cblx0XHRpZiAodGhpcy51c2VySGFzUGhvbmVOdW1iZXIpIHtcblx0XHRcdGlucHV0UHJvcHMucHVzaCh7XG5cdFx0XHRcdGxhYmVsOiAnUGhvbmUnLFxuXHRcdFx0XHRmb3JtOiAncGhvbmVudW1iZXInLFxuXHRcdFx0XHRkYXRhOiB1c2VyWydwaG9uZW51bWJlciddIHx8ICcnLFxuXHRcdFx0XHR2YWxpZGF0b3JzOiBbdGhpcy5fdnMucGhvbmVOdW1iZXJdLFxuXHRcdFx0XHR2YWxpZGF0b3JFcnJvcnM6IFsncGhvbmVOdW1iZXInXSxcblx0XHRcdFx0dmFsaWRhdG9yTXNnOiBbJ1Bob25lIG51bWJlciBpcyBpbnZhbGlkJ10sXG5cdFx0XHRcdHR5cGU6ICd0ZXh0J1xuXHRcdFx0fSk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcblx0XHRcdHRoaXMuX2RzLmlucHV0KFxuXHRcdFx0XHQnRWRpdCBVc2VyJywgaW5wdXRQcm9wc1xuXHRcdFx0KS50aGVuKGNsb3NlID0+IHtcblxuXHRcdFx0XHRpZiAoY2xvc2UucGhvbmVudW1iZXIgJiYgY2xvc2UucGhvbmVudW1iZXIudmFsdWUpIHtcblx0XHRcdFx0XHR1c2VyWydwaG9uZW51bWJlciddID0gY2xvc2UucGhvbmVudW1iZXIudmFsdWU7XG5cdFx0XHRcdH1cblx0XHRcdFx0ZWxzZSB7XG5cdFx0XHRcdFx0dXNlclsncGhvbmVudW1iZXInXSA9ICcnO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0dXNlci5lbWFpbCA9IGNsb3NlLmVtYWlsLnZhbHVlLnRyaW0oKTtcblxuXHRcdFx0XHR0aGlzLl9zb2NrZXQuY2FsbCgnZWRpdFVzZXInLCB1c2VyLl9pZCwgY2xvc2UudXNlcm5hbWUudmFsdWUudHJpbSgpLnRvTG93ZXJDYXNlKCksIGNsb3NlLmZ1bGxuYW1lLnZhbHVlLnRyaW0oKSwgY2xvc2UuZW1haWwudmFsdWUudHJpbSgpLnRvTG93ZXJDYXNlKCksIHVzZXJbJ3Bob25lbnVtYmVyJ10sIChlcnIsIHJlcykgPT4ge1xuXHRcdFx0XHRcdFxuXHRcdFx0XHRcdGlmIChlcnIpIHtcblx0XHRcdFx0XHRcdHRoaXMuX3NvY2tldC5jYWxsKCdpbnNlcnRFcnJvckxvZycsICdBdXRoU2VydmljZSAtIGVkaXR1c2VyJywgW1xuXHRcdFx0XHRcdFx0XHR1c2VyLFxuXHRcdFx0XHRcdFx0XHRlcnJcblx0XHRcdFx0XHRcdF0pO1xuXG5cdFx0XHRcdFx0XHRyZWplY3QoZXJyKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0ZWxzZSB7XG5cdFx0XHRcdFx0XHRsZXQgdXBkYXRlZERhdGEgPSB7XG5cdFx0XHRcdFx0XHRcdHVzZXJuYW1lOiBjbG9zZS51c2VybmFtZS52YWx1ZS50cmltKCksXG5cdFx0XHRcdFx0XHRcdGZ1bGxuYW1lOiBjbG9zZS5mdWxsbmFtZS52YWx1ZS50cmltKCksXG5cdFx0XHRcdFx0XHRcdGVtYWlsOiBjbG9zZS5lbWFpbC52YWx1ZS50cmltKClcblx0XHRcdFx0XHRcdH07XG5cdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdHRoaXMuX2FsZXJ0LnNldEFsZXJ0KCdzdWNjZXNzJywgJ1VzZXIgaGFzIGJlZW4gZWRpdGVkJyk7XG5cdFx0XHRcdFx0XHRyZXNvbHZlKHVwZGF0ZWREYXRhKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pO1xuXHRcdFx0fSxcblx0XHRcdFx0ZGlzbWlzcyA9PiB7IHJlc29sdmUodHJ1ZSk7IH1cblx0XHRcdCk7XG5cdFx0fSk7XG5cdH1cblxuXHRsb2dpblVzZXIoKTogUHJvbWlzZTxhbnk+IHtcblx0XHRyZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuXHRcdFx0dGhpcy5sb2dpbk1vZGFsKCkudGhlbihcblx0XHRcdFx0Y2xvc2UgPT4ge1xuXHRcdFx0XHRcdGlmIChjbG9zZS50eXBlID09PSAnTVMnKSB7XG5cdFx0XHRcdFx0XHR0aGlzLm1pY3Jvc29mdFNpZ25PbigpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRlbHNlIHtcblx0XHRcdFx0XHRcdGlmICghY2xvc2UuZm9ybS52YWx1ZS5mb3Jnb3RQYXNzd29yZCkge1xuXHRcdFx0XHRcdFx0XHR0aGlzLl9hY2NvdW50LmxvZ0luKGNsb3NlLmZvcm0udmFsdWUudXNlcm5hbWUsIGNsb3NlLmZvcm0udmFsdWUucGFzc3dvcmQpLnRoZW4odXNlciA9PiB7XG5cdFx0XHRcdFx0XHRcdFx0cmVzb2x2ZSh1c2VyKTtcblx0XHRcdFx0XHRcdFx0fSwgZXJyVXNlciA9PiByZWplY3QoJ0ludmFsaWQgbG9naW4nKSk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRlbHNlIHtcblx0XHRcdFx0XHRcdFx0dGhpcy5fYWNjb3VudC5yZXNldFVzZXJQYXNzd29yZChjbG9zZS5mb3JtLnZhbHVlLnVzZXJuYW1lKTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0sXG5cdFx0XHRcdGRpc21pc3MgPT4gcmVqZWN0KClcblx0XHRcdCk7XG5cdFx0fSk7XG5cdH1cblxuXHRwcml2YXRlIG1pY3Jvc29mdFNpZ25PbigpIHtcbiAgICAgICAgdmFyIGdyYXBoU2NvcGVzID0gW1widXNlci5yZWFkXCIsIFwibWFpbC5zZW5kXCJdO1xuICAgICAgICB0aGlzLnVzZXJBZ2VudEFwcGxpY2F0aW9uLmxvZ2luUmVkaXJlY3QoZ3JhcGhTY29wZXMpO1xuICAgIH1cblxuXHRwcml2YXRlIGxvZ2luTW9kYWwoKSB7XG5cdFx0cmV0dXJuIHRoaXMuX2RzLmxvZ2luKCF0aGlzLmVudmlyb25tZW50IHx8ICF0aGlzLmVudmlyb25tZW50Lk1TX0FMTE9XRUQgPyBmYWxzZSA6IHRydWUsICF0aGlzLmVudmlyb25tZW50IHx8ICF0aGlzLmVudmlyb25tZW50LkhJREVfTE9HSU5fVEVYVCA/IHRydWUgOiBmYWxzZSk7XG5cdH1cblxuXHRyZW1vdmVVc2VyKGlkOiBzdHJpbmcpIHtcblx0XHRyZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuXHRcdFx0dGhpcy5fc29ja2V0LmNhbGwoJ3JlbW92ZURvY3VtZW50JywgJ3VzZXJzJywgaWQsIChlcnIsIHJlcykgPT4ge1xuXHRcdFx0XHRpZiAoZXJyKSB7XG5cdFx0XHRcdFx0dGhpcy5fZHMuZXJyb3IoJ0NvdWxkIG5vdCByZW1vdmUgdXNlcicpO1xuXHRcdFx0XHRcdHRoaXMuX3NvY2tldC5jYWxsKCdpbnNlcnRFcnJvckxvZycsICdBdXRoU2VydmljZSAtIHJlbW92ZVVzZXInLCBbXG5cdFx0XHRcdFx0XHRpZCxcblx0XHRcdFx0XHRcdGVyclxuXHRcdFx0XHRcdF0pO1xuXHRcdFx0XHRcdHJlamVjdChlcnIpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGVsc2Uge1xuXHRcdFx0XHRcdHJlc29sdmUodHJ1ZSk7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHRcdH0pO1xuXHR9XG59XG4iXX0=