@netgrif/components-core 6.0.4 → 6.1.0-rc.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 (64) hide show
  1. package/bundles/netgrif-components-core.umd.js +283 -86
  2. package/bundles/netgrif-components-core.umd.js.map +1 -1
  3. package/bundles/netgrif-components-core.umd.min.js +2 -2
  4. package/bundles/netgrif-components-core.umd.min.js.map +1 -1
  5. package/esm2015/lib/allowed-nets/services/base-allowed-nets.service.js +2 -1
  6. package/esm2015/lib/allowed-nets/services/factory/allowed-nets-service-factory.js +8 -6
  7. package/esm2015/lib/data-fields/models/abstract-data-field.js +2 -2
  8. package/esm2015/lib/data-fields/text-field/html-textarea-field/abstract-html-textarea-field.component.js +6 -3
  9. package/esm2015/lib/panel/abstract/panel-with-header-binding.js +2 -5
  10. package/esm2015/lib/panel/panel-item/abstract-panel-item.component.js +13 -0
  11. package/esm2015/lib/panel/public-api.js +3 -1
  12. package/esm2015/lib/panel/task-panel-list/abstract-task-list.component.js +9 -60
  13. package/esm2015/lib/panel/task-panel-list/default-task-panel-list/abstract-default-task-list.js +80 -0
  14. package/esm2015/lib/panel/task-panel-list/task-panel-list-pagination/abstract-task-list-pagination.component.js +42 -0
  15. package/esm2015/lib/utility/tests/utility/create-mock-net.js +3 -2
  16. package/esm2015/lib/view/case-view/abstract-case-view.js +11 -2
  17. package/esm2015/lib/view/case-view/components/case-list/abstract-case-list.component.js +5 -48
  18. package/esm2015/lib/view/case-view/components/case-list-paginator/abstract-case-list-paginator.component.js +38 -0
  19. package/esm2015/lib/view/case-view/components/default-case-list/abstract-default-case-list.js +66 -0
  20. package/esm2015/lib/view/case-view/service/case-view-service.js +15 -1
  21. package/esm2015/lib/view/public-api.js +2 -1
  22. package/esm2015/lib/view/task-view/service/task-view.service.js +15 -1
  23. package/esm2015/netgrif-components-core.js +9 -7
  24. package/esm5/lib/allowed-nets/services/base-allowed-nets.service.js +2 -1
  25. package/esm5/lib/allowed-nets/services/factory/allowed-nets-service-factory.js +8 -6
  26. package/esm5/lib/data-fields/models/abstract-data-field.js +2 -2
  27. package/esm5/lib/data-fields/text-field/html-textarea-field/abstract-html-textarea-field.component.js +6 -3
  28. package/esm5/lib/panel/abstract/panel-with-header-binding.js +5 -5
  29. package/esm5/lib/panel/panel-item/abstract-panel-item.component.js +15 -0
  30. package/esm5/lib/panel/public-api.js +3 -1
  31. package/esm5/lib/panel/task-panel-list/abstract-task-list.component.js +9 -61
  32. package/esm5/lib/panel/task-panel-list/default-task-panel-list/abstract-default-task-list.js +90 -0
  33. package/esm5/lib/panel/task-panel-list/task-panel-list-pagination/abstract-task-list-pagination.component.js +52 -0
  34. package/esm5/lib/utility/tests/utility/create-mock-net.js +4 -2
  35. package/esm5/lib/view/case-view/abstract-case-view.js +11 -2
  36. package/esm5/lib/view/case-view/components/case-list/abstract-case-list.component.js +5 -49
  37. package/esm5/lib/view/case-view/components/case-list-paginator/abstract-case-list-paginator.component.js +43 -0
  38. package/esm5/lib/view/case-view/components/default-case-list/abstract-default-case-list.js +72 -0
  39. package/esm5/lib/view/case-view/service/case-view-service.js +19 -1
  40. package/esm5/lib/view/public-api.js +2 -1
  41. package/esm5/lib/view/task-view/service/task-view.service.js +19 -1
  42. package/esm5/netgrif-components-core.js +9 -7
  43. package/fesm2015/netgrif-components-core.js +216 -57
  44. package/fesm2015/netgrif-components-core.js.map +1 -1
  45. package/fesm5/netgrif-components-core.js +267 -75
  46. package/fesm5/netgrif-components-core.js.map +1 -1
  47. package/lib/allowed-nets/services/base-allowed-nets.service.d.ts +1 -0
  48. package/lib/data-fields/text-field/html-textarea-field/abstract-html-textarea-field.component.d.ts +1 -0
  49. package/lib/panel/panel-item/abstract-panel-item.component.d.ts +8 -0
  50. package/lib/panel/public-api.d.ts +2 -0
  51. package/lib/panel/task-panel-list/abstract-task-list.component.d.ts +6 -34
  52. package/lib/panel/task-panel-list/default-task-panel-list/abstract-default-task-list.d.ts +43 -0
  53. package/lib/panel/task-panel-list/task-panel-list-pagination/abstract-task-list-pagination.component.d.ts +20 -0
  54. package/lib/utility/tests/utility/create-mock-net.d.ts +2 -1
  55. package/lib/view/case-view/abstract-case-view.d.ts +6 -2
  56. package/lib/view/case-view/components/case-list/abstract-case-list.component.d.ts +2 -21
  57. package/lib/view/case-view/components/case-list-paginator/abstract-case-list-paginator.component.d.ts +18 -0
  58. package/lib/view/case-view/components/default-case-list/abstract-default-case-list.d.ts +30 -0
  59. package/lib/view/case-view/service/case-view-service.d.ts +3 -1
  60. package/lib/view/public-api.d.ts +1 -0
  61. package/lib/view/task-view/service/task-view.service.d.ts +2 -0
  62. package/netgrif-components-core.d.ts +10 -8
  63. package/netgrif-components-core.metadata.json +1 -1
  64. package/package.json +1 -1
@@ -92,6 +92,9 @@ export class CaseViewService extends SortableView {
92
92
  get cases$() {
93
93
  return this._cases$;
94
94
  }
95
+ get pagination() {
96
+ return this._pagination;
97
+ }
95
98
  get activeFilter() {
96
99
  return this._searchService.activeFilter;
97
100
  }
@@ -139,6 +142,17 @@ export class CaseViewService extends SortableView {
139
142
  this._nextPage$.next(requestContext);
140
143
  }
141
144
  }
145
+ nextPagePagination(length, pageIndex, requestContext) {
146
+ if (requestContext === undefined) {
147
+ requestContext = new PageLoadRequestContext(this.activeFilter, this._pagination);
148
+ requestContext.pagination.size = length;
149
+ requestContext.pagination.number = pageIndex;
150
+ }
151
+ if (this.isLoadingRelevantFilter(requestContext) || this._endOfData) {
152
+ return;
153
+ }
154
+ this._nextPage$.next(requestContext);
155
+ }
142
156
  isLoadingRelevantFilter(requestContext) {
143
157
  return requestContext === undefined || this._loading$.isActiveWithFilter(requestContext.filter);
144
158
  }
@@ -272,4 +286,4 @@ CaseViewService.ctorParameters = () => [
272
286
  { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [NAE_NEW_CASE_CONFIGURATION,] }] },
273
287
  { type: PermissionService }
274
288
  ];
275
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS12aWV3LXNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AbmV0Z3JpZi9jb21wb25lbnRzLWNvcmUvIiwic291cmNlcyI6WyJsaWIvdmlldy9jYXNlLXZpZXcvc2VydmljZS9jYXNlLXZpZXctc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsTUFBTSxFQUFFLFVBQVUsRUFBYSxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdEUsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLCtDQUErQyxDQUFDO0FBQzlFLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLDBEQUEwRCxDQUFDO0FBQzdGLE9BQU8sRUFBQyxlQUFlLEVBQWMsRUFBRSxFQUFFLE9BQU8sRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUM5RCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFFaEQsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHlDQUF5QyxDQUFDO0FBQ3RFLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSwrQ0FBK0MsQ0FBQztBQUM5RSxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sK0NBQStDLENBQUM7QUFDNUUsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLDBDQUEwQyxDQUFDO0FBQ3RFLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFBQyxVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFbEcsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLDZDQUE2QyxDQUFDO0FBQzFFLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLHdEQUF3RCxDQUFDO0FBQzlGLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLDBDQUEwQyxDQUFDO0FBR2hGLE9BQU8s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UUFBUSxZQUFJLE1BQU0sU0FBQyxzQkFBc0I7NENBQ3pDLFFBQVEsWUFBSSxNQUFNLFNBQUMsMEJBQTBCO1lBQ2hCLGlCQUFpQjs7O1lBMUI5RCxVQUFVOzs7WUFUSCxrQkFBa0I7WUEzQmxCLGVBQWU7WUFDZixtQkFBbUI7WUFJbkIsYUFBYTtZQUNiLGVBQWU7WUFDZixhQUFhO1lBRWIsZ0JBQWdCO1lBVWhCLFdBQVc7WUFLWCxjQUFjO1lBRWQsMEJBQTBCOzRDQWtDakIsUUFBUSxZQUFJLE1BQU0sU0FBQyxzQkFBc0I7NENBQ3pDLFFBQVEsWUFBSSxNQUFNLFNBQUMsMEJBQTBCO1lBL0J0RCxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdCwgSW5qZWN0YWJsZSwgT25EZXN0cm95LCBPcHRpb25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1NpZGVNZW51U2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2lkZS1tZW51L3NlcnZpY2VzL3NpZGUtbWVudS5zZXJ2aWNlJztcbmltcG9ydCB7Q2FzZVJlc291cmNlU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vcmVzb3VyY2VzL2VuZ2luZS1lbmRwb2ludC9jYXNlLXJlc291cmNlLnNlcnZpY2UnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIG9mLCBTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7SHR0cFBhcmFtc30gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtDYXNlfSBmcm9tICcuLi8uLi8uLi9yZXNvdXJjZXMvaW50ZXJmYWNlL2Nhc2UnO1xuaW1wb3J0IHtMb2dnZXJTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9sb2dnZXIvc2VydmljZXMvbG9nZ2VyLnNlcnZpY2UnO1xuaW1wb3J0IHtTbmFja0JhclNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NuYWNrLWJhci9zZXJ2aWNlcy9zbmFjay1iYXIuc2VydmljZSc7XG5pbXBvcnQge1NlYXJjaFNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlYXJjaC9zZWFyY2gtc2VydmljZS9zZWFyY2guc2VydmljZSc7XG5pbXBvcnQge1NpZGVNZW51U2l6ZX0gZnJvbSAnLi4vLi4vLi4vc2lkZS1tZW51L21vZGVscy9zaWRlLW1lbnUtc2l6ZSc7XG5pbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtjYXRjaEVycm9yLCBjb25jYXRNYXAsIGZpbHRlciwgbWFwLCBtZXJnZU1hcCwgc2Nhbiwgc3dpdGNoTWFwLCB0YXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7UGFnaW5hdGlvbn0gZnJvbSAnLi4vLi4vLi4vcmVzb3VyY2VzL2ludGVyZmFjZS9wYWdpbmF0aW9uJztcbmltcG9ydCB7Q2FzZU1ldGFGaWVsZH0gZnJvbSAnLi4vLi4vLi4vaGVhZGVyL2Nhc2UtaGVhZGVyL2Nhc2UtbWVudGEtZW51bSc7XG5pbXBvcnQge05BRV9ORVdfQ0FTRV9DT01QT05FTlR9IGZyb20gJy4uLy4uLy4uL3NpZGUtbWVudS9jb250ZW50LWNvbXBvbmVudHMvaW5qZWN0aW9uLXRva2Vucyc7XG5pbXBvcnQge1BhZ2VMb2FkUmVxdWVzdENvbnRleHR9IGZyb20gJy4uLy4uL2Fic3RyYWN0L3BhZ2UtbG9hZC1yZXF1ZXN0LWNvbnRleHQnO1xuaW1wb3J0IHtGaWx0ZXJ9IGZyb20gJy4uLy4uLy4uL2ZpbHRlci9tb2RlbHMvZmlsdGVyJztcbmltcG9ydCB7TGlzdFJhbmdlfSBmcm9tICdAYW5ndWxhci9jZGsvY29sbGVjdGlvbnMnO1xuaW1wb3J0IHtMb2FkaW5nV2l0aEZpbHRlckVtaXR0ZXJ9IGZyb20gJy4uLy4uLy4uL3V0aWxpdHkvbG9hZGluZy13aXRoLWZpbHRlci1lbWl0dGVyJztcbmltcG9ydCB7Q2FzZVBhZ2VMb2FkUmVxdWVzdFJlc3VsdH0gZnJvbSAnLi4vbW9kZWxzL2Nhc2UtcGFnZS1sb2FkLXJlcXVlc3QtcmVzdWx0JztcbmltcG9ydCB7VXNlclNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3VzZXIvc2VydmljZXMvdXNlci5zZXJ2aWNlJztcbmltcG9ydCB7YXJyYXlUb09ic2VydmFibGV9IGZyb20gJy4uLy4uLy4uL3V0aWxpdHkvYXJyYXktdG8tb2JzZXJ2YWJsZSc7XG5pbXBvcnQge1Blcm1pc3Npb25UeXBlfSBmcm9tICcuLi8uLi8uLi9wcm9jZXNzL3Blcm1pc3Npb25zJztcbmltcG9ydCB7TkFFX05FV19DQVNFX0NPTkZJR1VSQVRJT059IGZyb20gJy4uL21vZGVscy9uZXctY2FzZS1jb25maWd1cmF0aW9uLWluamVjdGlvbi10b2tlbic7XG5pbXBvcnQge05ld0Nhc2VDb25maWd1cmF0aW9ufSBmcm9tICcuLi9tb2RlbHMvbmV3LWNhc2UtY29uZmlndXJhdGlvbic7XG5pbXBvcnQge1Byb2Nlc3NTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9wcm9jZXNzL3Byb2Nlc3Muc2VydmljZSc7XG5pbXBvcnQge1BldHJpTmV0UmVmZXJlbmNlV2l0aFBlcm1pc3Npb25zfSBmcm9tICcuLi8uLi8uLi9wcm9jZXNzL3BldHJpLW5ldC1yZWZlcmVuY2Utd2l0aC1wZXJtaXNzaW9ucyc7XG5pbXBvcnQge1NlYXJjaEluZGV4UmVzb2x2ZXJTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZWFyY2gvc2VhcmNoLWtleXdvcmQtcmVzb2x2ZXItc2VydmljZS9zZWFyY2gtaW5kZXgtcmVzb2x2ZXIuc2VydmljZSc7XG5pbXBvcnQge0FsbG93ZWROZXRzU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vYWxsb3dlZC1uZXRzL3NlcnZpY2VzL2FsbG93ZWQtbmV0cy5zZXJ2aWNlJztcbmltcG9ydCB7U29ydGFibGVWaWV3fSBmcm9tICcuLi8uLi9hYnN0cmFjdC9zb3J0YWJsZS12aWV3JztcbmltcG9ydCB7TmV3Q2FzZUNyZWF0aW9uQ29uZmlndXJhdGlvbkRhdGF9IGZyb20gJy4uLy4uLy4uL3NpZGUtbWVudS9jb250ZW50LWNvbXBvbmVudHMvbmV3LWNhc2UvbW9kZWwvbmV3LWNhc2UtaW5qZWN0aW9uLWRhdGEnO1xuaW1wb3J0IHtQZXJtaXNzaW9uU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vYXV0aG9yaXphdGlvbi9wZXJtaXNzaW9uL3Blcm1pc3Npb24uc2VydmljZSc7XG5pbXBvcnQge0V2ZW50T3V0Y29tZU1lc3NhZ2VSZXNvdXJjZX0gZnJvbSAnLi4vLi4vLi4vcmVzb3VyY2VzL2ludGVyZmFjZS9tZXNzYWdlLXJlc291cmNlJztcbmltcG9ydCB7Q3JlYXRlQ2FzZUV2ZW50T3V0Y29tZX0gZnJvbSAnLi4vLi4vLi4vZXZlbnQvbW9kZWwvZXZlbnQtb3V0Y29tZXMvY2FzZS1vdXRjb21lcy9jcmVhdGUtY2FzZS1ldmVudC1vdXRjb21lJztcbmltcG9ydCB7UGFnaW5hdGlvblBhcmFtc30gZnJvbSAnLi4vLi4vLi4vdXRpbGl0eS9wYWdpbmF0aW9uL3BhZ2luYXRpb24tcGFyYW1zJztcbmltcG9ydCB7Y3JlYXRlU29ydFBhcmFtLCBQYWdpbmF0aW9uU29ydH0gZnJvbSAnLi4vLi4vLi4vdXRpbGl0eS9wYWdpbmF0aW9uL3BhZ2luYXRpb24tc29ydCc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBDYXNlVmlld1NlcnZpY2UgZXh0ZW5kcyBTb3J0YWJsZVZpZXcgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuXG4gICAgcmVhZG9ubHkgREVGQVVMVF9ORVdfQ0FTRV9DT05GSUdVUkFUSU9OOiBOZXdDYXNlQ29uZmlndXJhdGlvbiA9IHtcbiAgICAgICAgdXNlQ2FjaGVkUHJvY2Vzc2VzOiB0cnVlXG4gICAgfTtcblxuICAgIHByb3RlY3RlZCBfbG9hZGluZyQ6IExvYWRpbmdXaXRoRmlsdGVyRW1pdHRlcjtcbiAgICBwcm90ZWN0ZWQgX2Nhc2VzJDogT2JzZXJ2YWJsZTxBcnJheTxDYXNlPj47XG4gICAgcHJvdGVjdGVkIF9uZXh0UGFnZSQ6IEJlaGF2aW9yU3ViamVjdDxQYWdlTG9hZFJlcXVlc3RDb250ZXh0PjtcbiAgICBwcm90ZWN0ZWQgX2VuZE9mRGF0YTogYm9vbGVhbjtcbiAgICBwcm90ZWN0ZWQgX3BhZ2luYXRpb246IFBhZ2luYXRpb247XG4gICAgcHJvdGVjdGVkIF9uZXdDYXNlQ29uZmlndXJhdGlvbjogTmV3Q2FzZUNvbmZpZ3VyYXRpb247XG5cbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgX2FsbG93ZWROZXRzU2VydmljZTogQWxsb3dlZE5ldHNTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfc2lkZU1lbnVTZXJ2aWNlOiBTaWRlTWVudVNlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF9jYXNlUmVzb3VyY2VTZXJ2aWNlOiBDYXNlUmVzb3VyY2VTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfbG9nOiBMb2dnZXJTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfc25hY2tCYXJTZXJ2aWNlOiBTbmFja0JhclNlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF9zZWFyY2hTZXJ2aWNlOiBTZWFyY2hTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfdXNlcjogVXNlclNlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF9wcm9jZXNzU2VydmljZTogUHJvY2Vzc1NlcnZpY2UsXG4gICAgICAgICAgICAgICAgcmVzb2x2ZXI6IFNlYXJjaEluZGV4UmVzb2x2ZXJTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoTkFFX05FV19DQVNFX0NPTVBPTkVOVCkgcHJvdGVjdGVkIF9uZXdDYXNlQ29tcG9uZW50OiBhbnksXG4gICAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChOQUVfTkVXX0NBU0VfQ09ORklHVVJBVElPTikgbmV3Q2FzZUNvbmZpZzogTmV3Q2FzZUNvbmZpZ3VyYXRpb24sXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF9wZXJtaXNzaW9uU2VydmljZTogUGVybWlzc2lvblNlcnZpY2UpIHtcbiAgICAgICAgc3VwZXIocmVzb2x2ZXIpO1xuICAgICAgICB0aGlzLl9uZXdDYXNlQ29uZmlndXJhdGlvbiA9IHsuLi50aGlzLkRFRkFVTFRfTkVXX0NBU0VfQ09ORklHVVJBVElPTn07XG4gICAgICAgIGlmIChuZXdDYXNlQ29uZmlnICE9PSBudWxsKSB7XG4gICAgICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMuX25ld0Nhc2VDb25maWd1cmF0aW9uLCBuZXdDYXNlQ29uZmlnKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9sb2FkaW5nJCA9IG5ldyBMb2FkaW5nV2l0aEZpbHRlckVtaXR0ZXIoKTtcbiAgICAgICAgdGhpcy5fc2VhcmNoU2VydmljZS5hY3RpdmVGaWx0ZXIkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnJlbG9hZCgpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5fZW5kT2ZEYXRhID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX3BhZ2luYXRpb24gPSB7XG4gICAgICAgICAgICBzaXplOiAyNSxcbiAgICAgICAgICAgIHRvdGFsRWxlbWVudHM6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIHRvdGFsUGFnZXM6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIG51bWJlcjogLTFcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5fbmV4dFBhZ2UkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxQYWdlTG9hZFJlcXVlc3RDb250ZXh0PihcbiAgICAgICAgICAgIG5ldyBQYWdlTG9hZFJlcXVlc3RDb250ZXh0KHRoaXMuYWN0aXZlRmlsdGVyLCBPYmplY3QuYXNzaWduKHt9LCB0aGlzLl9wYWdpbmF0aW9uLCB7bnVtYmVyOiAwfSkpXG4gICAgICAgICk7XG5cbiAgICAgICAgY29uc3QgY2FzZXNNYXAgPSB0aGlzLl9uZXh0UGFnZSQucGlwZShcbiAgICAgICAgICAgIG1lcmdlTWFwKHAgPT4gdGhpcy5sb2FkUGFnZShwKSksXG4gICAgICAgICAgICBtYXAocGFnZUxvYWRSZXN1bHQgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChwYWdlTG9hZFJlc3VsdC5yZXF1ZXN0Q29udGV4dCAmJiBwYWdlTG9hZFJlc3VsdC5yZXF1ZXN0Q29udGV4dC5jbGVhckxvYWRlZCkge1xuICAgICAgICAgICAgICAgICAgICAvLyB3ZSBzZXQgYW4gZW1wdHkgdmFsdWUgdG8gdGhlIHZpcnR1YWwgc2Nyb2xsIGFuZCB0aGVuIHJlcGxhY2UgaXQgYnkgdGhlIHJlYWwgdmFsdWUgZm9yY2luZyBpdCB0byByZWRyYXcgaXRzIGNvbnRlbnRcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0cyA9IFt7Y2FzZXM6IHt9LCByZXF1ZXN0Q29udGV4dDogbnVsbH0sIHBhZ2VMb2FkUmVzdWx0XTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGFycmF5VG9PYnNlcnZhYmxlKHJlc3VsdHMpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBvZihwYWdlTG9hZFJlc3VsdCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBjb25jYXRNYXAobyA9PiBvKSxcbiAgICAgICAgICAgIHNjYW4oKGFjYywgcGFnZUxvYWRSZXN1bHQpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAocGFnZUxvYWRSZXN1bHQucmVxdWVzdENvbnRleHQgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHBhZ2VMb2FkUmVzdWx0LmNhc2VzO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2xvYWRpbmckLm9mZihwYWdlTG9hZFJlc3VsdC5yZXF1ZXN0Q29udGV4dC5maWx0ZXIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMuX3BhZ2luYXRpb24sIHBhZ2VMb2FkUmVzdWx0LnJlcXVlc3RDb250ZXh0LnBhZ2luYXRpb24pO1xuICAgICAgICAgICAgICAgIHJldHVybiB7Li4uYWNjLCAuLi5wYWdlTG9hZFJlc3VsdC5jYXNlc307XG4gICAgICAgICAgICB9LCB7fSlcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5fY2FzZXMkID0gY2FzZXNNYXAucGlwZShcbiAgICAgICAgICAgIG1hcCh2ID0+IE9iamVjdC52YWx1ZXModikpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgICAgIHRoaXMuX2xvYWRpbmckLmNvbXBsZXRlKCk7XG4gICAgICAgIHRoaXMuX25leHRQYWdlJC5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgbG9hZGluZygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2xvYWRpbmckLmlzQWN0aXZlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgbG9hZGluZyQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9sb2FkaW5nJC5hc09ic2VydmFibGUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGNhc2VzJCgpOiBPYnNlcnZhYmxlPEFycmF5PENhc2U+PiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jYXNlcyQ7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBhY3RpdmVGaWx0ZXIoKTogRmlsdGVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NlYXJjaFNlcnZpY2UuYWN0aXZlRmlsdGVyO1xuICAgIH1cblxuICAgIHB1YmxpYyBsb2FkUGFnZShyZXF1ZXN0Q29udGV4dDogUGFnZUxvYWRSZXF1ZXN0Q29udGV4dCk6IE9ic2VydmFibGU8Q2FzZVBhZ2VMb2FkUmVxdWVzdFJlc3VsdD4ge1xuICAgICAgICBpZiAocmVxdWVzdENvbnRleHQgPT09IG51bGwgfHwgcmVxdWVzdENvbnRleHQucGFnZU51bWJlciA8IDApIHtcbiAgICAgICAgICAgIHJldHVybiBvZih7Y2FzZXM6IHt9LCByZXF1ZXN0Q29udGV4dH0pO1xuICAgICAgICB9XG4gICAgICAgIGxldCBwYXJhbXM6IEh0dHBQYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpO1xuICAgICAgICBwYXJhbXMgPSB0aGlzLmFkZFNvcnRQYXJhbXMocGFyYW1zKTtcbiAgICAgICAgcGFyYW1zID0gdGhpcy5hZGRQYWdlUGFyYW1zKHBhcmFtcywgcmVxdWVzdENvbnRleHQucGFnaW5hdGlvbik7XG4gICAgICAgIHRoaXMuX2xvYWRpbmckLm9uKHJlcXVlc3RDb250ZXh0LmZpbHRlcik7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuX2Nhc2VSZXNvdXJjZVNlcnZpY2Uuc2VhcmNoQ2FzZXMocmVxdWVzdENvbnRleHQuZmlsdGVyLCBwYXJhbXMpLnBpcGUoXG4gICAgICAgICAgICBjYXRjaEVycm9yKGVyciA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fbG9nLmVycm9yKCdMb2FkaW5nIGNhc2VzIGhhcyBmYWlsZWQhJywgZXJyKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9sb2FkaW5nJC5vZmYocmVxdWVzdENvbnRleHQuZmlsdGVyKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gb2Yoe2NvbnRlbnQ6IFtdLCBwYWdpbmF0aW9uOiB7Li4udGhpcy5fcGFnaW5hdGlvbn19KTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgZmlsdGVyKCgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCByID0gcmVxdWVzdENvbnRleHQuZmlsdGVyID09PSB0aGlzLl9zZWFyY2hTZXJ2aWNlLmFjdGl2ZUZpbHRlcjtcbiAgICAgICAgICAgICAgICBpZiAoIXIpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fbG9hZGluZyQub2ZmKHJlcXVlc3RDb250ZXh0LmZpbHRlcik7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2xvZy5kZWJ1ZygnUmVjZWl2ZWQgY2FzZXMgcGFnZSBpcyBubyBsb25nZXIgcmVsZXZhbnQgc2luY2UgdGhlIGFjdGl2ZSBmaWx0ZXIgaGFzIGNoYW5nZWQgYmVmb3JlIGl0IGNvdWxkIGFycml2ZS4nXG4gICAgICAgICAgICAgICAgICAgICAgICArICcgRGlzY2FyZGluZy4uLicpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gcjtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgdGFwKGMgPT4ge1xuICAgICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24ocmVxdWVzdENvbnRleHQucGFnaW5hdGlvbiwgYy5wYWdpbmF0aW9uKTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgdGFwKGMgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VuZE9mRGF0YSA9ICFBcnJheS5pc0FycmF5KGMuY29udGVudClcbiAgICAgICAgICAgICAgICAgICAgfHwgYy5jb250ZW50Lmxlbmd0aCA9PT0gMFxuICAgICAgICAgICAgICAgICAgICB8fCBjLnBhZ2luYXRpb24ubnVtYmVyID09PSBjLnBhZ2luYXRpb24udG90YWxQYWdlcztcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgbWFwKGNhc2VzID0+IEFycmF5LmlzQXJyYXkoY2FzZXMuY29udGVudCkgPyBjYXNlcyA6IHsuLi5jYXNlcywgY29udGVudDogW119KSxcbiAgICAgICAgICAgIG1hcChjYXNlcyA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNhc2VzLmNvbnRlbnQucmVkdWNlKChhY2MsIGN1cikgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gey4uLmFjYywgW2N1ci5zdHJpbmdJZF06IGN1cn07XG4gICAgICAgICAgICAgICAgfSwge30pO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBtYXAoY2FzZXMgPT4gKHtjYXNlcywgcmVxdWVzdENvbnRleHR9KSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmV4dFBhZ2UocmVuZGVyZWRSYW5nZTogTGlzdFJhbmdlLCB0b3RhbExvYWRlZDogbnVtYmVyLCByZXF1ZXN0Q29udGV4dD86IFBhZ2VMb2FkUmVxdWVzdENvbnRleHQpIHtcbiAgICAgICAgaWYgKHJlcXVlc3RDb250ZXh0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJlcXVlc3RDb250ZXh0ID0gbmV3IFBhZ2VMb2FkUmVxdWVzdENvbnRleHQodGhpcy5hY3RpdmVGaWx0ZXIsIHRoaXMuX3BhZ2luYXRpb24pO1xuICAgICAgICAgICAgcmVxdWVzdENvbnRleHQucGFnaW5hdGlvbi5udW1iZXIgKz0gMTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmlzTG9hZGluZ1JlbGV2YW50RmlsdGVyKHJlcXVlc3RDb250ZXh0KSB8fCB0aGlzLl9lbmRPZkRhdGEpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChyZW5kZXJlZFJhbmdlLmVuZCA9PT0gdG90YWxMb2FkZWQpIHtcbiAgICAgICAgICAgIHRoaXMuX25leHRQYWdlJC5uZXh0KHJlcXVlc3RDb250ZXh0KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgaXNMb2FkaW5nUmVsZXZhbnRGaWx0ZXIocmVxdWVzdENvbnRleHQ/OiBQYWdlTG9hZFJlcXVlc3RDb250ZXh0KTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiByZXF1ZXN0Q29udGV4dCA9PT0gdW5kZWZpbmVkIHx8IHRoaXMuX2xvYWRpbmckLmlzQWN0aXZlV2l0aEZpbHRlcihyZXF1ZXN0Q29udGV4dC5maWx0ZXIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjcmVhdGVOZXdDYXNlKG5ld0Nhc2VDcmVhdGlvbkNvbmZpZ3VyYXRpb246IE5ld0Nhc2VDcmVhdGlvbkNvbmZpZ3VyYXRpb25EYXRhID0ge1xuICAgICAgICBlbmFibGVDYXNlVGl0bGU6IHRydWUsXG4gICAgICAgIGlzQ2FzZVRpdGxlUmVxdWlyZWQ6IHRydWVcbiAgICB9KTogT2JzZXJ2YWJsZTxDYXNlPiB7XG4gICAgICAgIGNvbnN0IG15Q2FzZSA9IG5ldyBTdWJqZWN0PENhc2U+KCk7XG4gICAgICAgIHRoaXMuX3NpZGVNZW51U2VydmljZS5vcGVuKHRoaXMuX25ld0Nhc2VDb21wb25lbnQsIFNpZGVNZW51U2l6ZS5NRURJVU0sIHtcbiAgICAgICAgICAgIGFsbG93ZWROZXRzJDogdGhpcy5nZXROZXdDYXNlQWxsb3dlZE5ldHMoKSxcbiAgICAgICAgICAgIG5ld0Nhc2VDcmVhdGlvbkNvbmZpZ3VyYXRpb25cbiAgICAgICAgfSkub25DbG9zZS5zdWJzY3JpYmUoJGV2ZW50ID0+IHtcbiAgICAgICAgICAgIHRoaXMuX2xvZy5kZWJ1ZygkZXZlbnQubWVzc2FnZSwgJGV2ZW50LmRhdGEpO1xuICAgICAgICAgICAgaWYgKCRldmVudC5kYXRhKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZWxvYWQoKTtcbiAgICAgICAgICAgICAgICBteUNhc2UubmV4dCgkZXZlbnQuZGF0YSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBteUNhc2UuY29tcGxldGUoKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBteUNhc2UuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGNyZWF0ZURlZmF1bHROZXdDYXNlKCk6IE9ic2VydmFibGU8Q2FzZT4ge1xuICAgICAgICBjb25zdCBteUNhc2UgPSBuZXcgU3ViamVjdDxDYXNlPigpO1xuICAgICAgICB0aGlzLmdldE5ld0Nhc2VBbGxvd2VkTmV0cygpLnN1YnNjcmliZSgobmV0czogQXJyYXk8UGV0cmlOZXRSZWZlcmVuY2VXaXRoUGVybWlzc2lvbnM+KSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9jYXNlUmVzb3VyY2VTZXJ2aWNlLmNyZWF0ZUNhc2Uoe1xuICAgICAgICAgICAgICAgIHRpdGxlOiBudWxsLFxuICAgICAgICAgICAgICAgIGNvbG9yOiAncGFuZWwtcHJpbWFyeS1pY29uJyxcbiAgICAgICAgICAgICAgICBuZXRJZDogbmV0c1swXS5zdHJpbmdJZFxuICAgICAgICAgICAgfSkuc3Vic2NyaWJlKChyZXNwb25zZTogRXZlbnRPdXRjb21lTWVzc2FnZVJlc291cmNlKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc25hY2tCYXJTZXJ2aWNlLm9wZW5TdWNjZXNzU25hY2tCYXIodGhpcy5fdHJhbnNsYXRlLmluc3RhbnQoJ3NpZGUtbWVudS5uZXctY2FzZS5jcmVhdGVDYXNlJylcbiAgICAgICAgICAgICAgICAgICAgKyAnICcgKyB0aGlzLl90cmFuc2xhdGUuaW5zdGFudCgnc2lkZS1tZW51Lm5ldy1jYXNlLmRlZmF1bHRDYXNlTmFtZScpKTtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbG9hZCgpO1xuICAgICAgICAgICAgICAgIG15Q2FzZS5uZXh0KChyZXNwb25zZS5vdXRjb21lIGFzIENyZWF0ZUNhc2VFdmVudE91dGNvbWUpLmFDYXNlKTtcbiAgICAgICAgICAgICAgICBteUNhc2UuY29tcGxldGUoKTtcbiAgICAgICAgICAgIH0sIGVycm9yID0+IHRoaXMuX3NuYWNrQmFyU2VydmljZS5vcGVuRXJyb3JTbmFja0JhcihlcnJvci5tZXNzYWdlID8gZXJyb3IubWVzc2FnZSA6IGVycm9yKSk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gbXlDYXNlO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXROZXdDYXNlQWxsb3dlZE5ldHMoKTogT2JzZXJ2YWJsZTxBcnJheTxQZXRyaU5ldFJlZmVyZW5jZVdpdGhQZXJtaXNzaW9ucz4+IHtcbiAgICAgICAgaWYgKHRoaXMuX25ld0Nhc2VDb25maWd1cmF0aW9uLnVzZUNhY2hlZFByb2Nlc3Nlcykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2FsbG93ZWROZXRzU2VydmljZS5hbGxvd2VkTmV0cyQucGlwZShcbiAgICAgICAgICAgICAgICBtYXAobmV0ID0+IG5ldC5maWx0ZXIobiA9PiB0aGlzLl9wZXJtaXNzaW9uU2VydmljZS5oYXNOZXRQZXJtaXNzaW9uKFBlcm1pc3Npb25UeXBlLkNSRUFURSwgbikpKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9hbGxvd2VkTmV0c1NlcnZpY2UuYWxsb3dlZE5ldHMkLnBpcGUoXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKGFsbG93ZWROZXRzID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3Byb2Nlc3NTZXJ2aWNlLmdldE5ldFJlZmVyZW5jZXMoYWxsb3dlZE5ldHMubWFwKG5ldCA9PiBuZXQuaWRlbnRpZmllcikpLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXAobmV0ID0+IG5ldC5maWx0ZXIobiA9PiB0aGlzLl9wZXJtaXNzaW9uU2VydmljZS5oYXNOZXRQZXJtaXNzaW9uKFBlcm1pc3Npb25UeXBlLkNSRUFURSwgbikpKVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBudW1iZXIgb2YgYWxsb3dlZCBuZXRzIG9mIGNhc2Ugdmlld1xuICAgICAqIEByZXR1cm5zIGxlbmd0aCBvZiBhbGxvd2VkTmV0cyBhcnJheSBpZiBpdCBpcyBkZWZpbmVkLCAwIGlmIGl0IGlzIHVuZGVmaW5lZFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRBbGxvd2VkTmV0c0NvdW50KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hbGxvd2VkTmV0c1NlcnZpY2UuYWxsb3dlZE5ldHMgPT09IHVuZGVmaW5lZCA/IDAgOiB0aGlzLl9hbGxvd2VkTmV0c1NlcnZpY2UuYWxsb3dlZE5ldHMubGVuZ3RoO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBhZGRQYWdlUGFyYW1zKHBhcmFtczogSHR0cFBhcmFtcywgcGFnaW5hdGlvbjogUGFnaW5hdGlvbik6IEh0dHBQYXJhbXMge1xuICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KFBhZ2luYXRpb25QYXJhbXMuUEFHRV9TSVpFLCBgJHtwYWdpbmF0aW9uLnNpemV9YCk7XG4gICAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoUGFnaW5hdGlvblBhcmFtcy5QQUdFX05VTUJFUiwgYCR7cGFnaW5hdGlvbi5udW1iZXJ9YCk7XG4gICAgICAgIHJldHVybiBwYXJhbXM7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldERlZmF1bHRTb3J0UGFyYW0oKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZVNvcnRQYXJhbSgnc3RyaW5nSWQnLCBQYWdpbmF0aW9uU29ydC5ERVNDRU5ESU5HKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0TWV0YUZpZWxkU29ydElkKCk6IHN0cmluZyB7XG4gICAgICAgIHN3aXRjaCAodGhpcy5fbGFzdEhlYWRlclNlYXJjaFN0YXRlLmZpZWxkSWRlbnRpZmllcikge1xuICAgICAgICAgICAgY2FzZSBDYXNlTWV0YUZpZWxkLlRJVExFOlxuICAgICAgICAgICAgICAgIHJldHVybiAndGl0bGUua2V5d29yZCc7XG4gICAgICAgICAgICBjYXNlIENhc2VNZXRhRmllbGQuVklTVUFMX0lEOlxuICAgICAgICAgICAgICAgIHJldHVybiAndmlzdWFsSWQua2V5d29yZCc7XG4gICAgICAgICAgICBjYXNlIENhc2VNZXRhRmllbGQuQ1JFQVRJT05fREFURTpcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2NyZWF0aW9uRGF0ZVNvcnRhYmxlJztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2xhc3RIZWFkZXJTZWFyY2hTdGF0ZS5maWVsZElkZW50aWZpZXI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgcmVsb2FkKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX2Nhc2VzJCB8fCAhdGhpcy5fcGFnaW5hdGlvbikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fZW5kT2ZEYXRhID0gZmFsc2U7XG4gICAgICAgIGNvbnN0IHJlcXVlc3RDb250ZXh0ID0gbmV3IFBhZ2VMb2FkUmVxdWVzdENvbnRleHQodGhpcy5hY3RpdmVGaWx0ZXIsIHRoaXMuX3BhZ2luYXRpb24sIHRydWUpO1xuICAgICAgICByZXF1ZXN0Q29udGV4dC5wYWdpbmF0aW9uLm51bWJlciA9IDA7XG4gICAgICAgIGNvbnN0IHJhbmdlID0ge1xuICAgICAgICAgICAgc3RhcnQ6IC0xLFxuICAgICAgICAgICAgZW5kOiAwXG4gICAgICAgIH07XG5cbiAgICAgICAgdGhpcy5uZXh0UGFnZShyYW5nZSwgMCwgcmVxdWVzdENvbnRleHQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBoYXNBdXRob3JpdHkoYXV0aG9yaXR5OiBBcnJheTxzdHJpbmc+IHwgc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl91c2VyLmhhc0F1dGhvcml0eShhdXRob3JpdHkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERldGVybWluZXMgd2hldGhlciB0aGUgY3VycmVudCB1c2VyIGhhcyB0aGUgW1ZJRVdde0BsaW5rIFBlcm1pc3Npb25UeXBlI1ZJRVd9IHBlcm1pc3Npb24gb24gdGhlIGN1cnJlbnQgY2FzZVxuICAgICAqIEBwYXJhbSBhQ2FzZSB0aGUgdGVzdGVkIGNhc2VcbiAgICAgKiBAcmV0dXJucyBgdHJ1ZWAgaWYgdGhlIGN1cnJlbnQgdXNlciBoYXMgdGhlIGBWSUVXYCBwZXJtaXNzaW9uIG9uIHRoZSB0ZXN0ZWQgY2FzZSwgYGZhbHNlYCBvdGhlcndpc2UuXG4gICAgICovXG4gICAgcHVibGljIHZpZXdFbmFibGVkKGFDYXNlOiBDYXNlKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9wZXJtaXNzaW9uU2VydmljZS5oYXNDYXNlUGVybWlzc2lvbihhQ2FzZSwgUGVybWlzc2lvblR5cGUuVklFVyk7XG4gICAgfVxufVxuIl19
289
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS12aWV3LXNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AbmV0Z3JpZi9jb21wb25lbnRzLWNvcmUvIiwic291cmNlcyI6WyJsaWIvdmlldy9jYXNlLXZpZXcvc2VydmljZS9jYXNlLXZpZXctc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsTUFBTSxFQUFFLFVBQVUsRUFBYSxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdEUsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLCtDQUErQyxDQUFDO0FBQzlFLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLDBEQUEwRCxDQUFDO0FBQzdGLE9BQU8sRUFBQyxlQUFlLEVBQWMsRUFBRSxFQUFFLE9BQU8sRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUM5RCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFFaEQsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHlDQUF5QyxDQUFDO0FBQ3RFLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSwrQ0FBK0MsQ0FBQztBQUM5RSxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sK0NBQStDLENBQUM7QUFDNUUsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLDBDQUEwQyxDQUFDO0FBQ3RFLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFBQyxVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFbEcsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLDZDQUE2QyxDQUFDO0FBQzFFLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLHdEQUF3RCxDQUFDO0FBQzlGLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLDBDQUEwQyxDQUFDO0FBR2hGLE9BQU8s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QUFFLENBQUMsQ0FBQztZQUNULEdBQUcsRUFBRSxDQUFDO1NBQ1QsQ0FBQztRQUVGLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxjQUFjLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRU0sWUFBWSxDQUFDLFNBQWlDO1FBQ2pELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxXQUFXLENBQUMsS0FBVztRQUMxQixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2pGLENBQUM7OztZQS9RMEMsa0JBQWtCO1lBQ3JCLGVBQWU7WUFDWCxtQkFBbUI7WUFDbkMsYUFBYTtZQUNELGVBQWU7WUFDakIsYUFBYTtZQUNqQixnQkFBZ0I7WUFDckIsV0FBVztZQUNELGNBQWM7WUFDL0IsMEJBQTBCOzRDQUNuQyxRQUFRLFlBQUksTUFBTSxTQUFDLHNCQUFzQjs0Q0FDekMsUUFBUSxZQUFJLE1BQU0sU0FBQywwQkFBMEI7WUFDaEIsaUJBQWlCOzs7WUExQjlELFVBQVU7OztZQVRILGtCQUFrQjtZQTNCbEIsZUFBZTtZQUNmLG1CQUFtQjtZQUluQixhQUFhO1lBQ2IsZUFBZTtZQUNmLGFBQWE7WUFFYixnQkFBZ0I7WUFVaEIsV0FBVztZQUtYLGNBQWM7WUFFZCwwQkFBMEI7NENBa0NqQixRQUFRLFlBQUksTUFBTSxTQUFDLHNCQUFzQjs0Q0FDekMsUUFBUSxZQUFJLE1BQU0sU0FBQywwQkFBMEI7WUEvQnRELGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0LCBJbmplY3RhYmxlLCBPbkRlc3Ryb3ksIE9wdGlvbmFsfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7U2lkZU1lbnVTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zaWRlLW1lbnUvc2VydmljZXMvc2lkZS1tZW51LnNlcnZpY2UnO1xuaW1wb3J0IHtDYXNlUmVzb3VyY2VTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9yZXNvdXJjZXMvZW5naW5lLWVuZHBvaW50L2Nhc2UtcmVzb3VyY2Uuc2VydmljZSc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgb2YsIFN1YmplY3R9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtIdHRwUGFyYW1zfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQge0Nhc2V9IGZyb20gJy4uLy4uLy4uL3Jlc291cmNlcy9pbnRlcmZhY2UvY2FzZSc7XG5pbXBvcnQge0xvZ2dlclNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL2xvZ2dlci9zZXJ2aWNlcy9sb2dnZXIuc2VydmljZSc7XG5pbXBvcnQge1NuYWNrQmFyU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc25hY2stYmFyL3NlcnZpY2VzL3NuYWNrLWJhci5zZXJ2aWNlJztcbmltcG9ydCB7U2VhcmNoU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VhcmNoL3NlYXJjaC1zZXJ2aWNlL3NlYXJjaC5zZXJ2aWNlJztcbmltcG9ydCB7U2lkZU1lbnVTaXplfSBmcm9tICcuLi8uLi8uLi9zaWRlLW1lbnUvbW9kZWxzL3NpZGUtbWVudS1zaXplJztcbmltcG9ydCB7VHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge2NhdGNoRXJyb3IsIGNvbmNhdE1hcCwgZmlsdGVyLCBtYXAsIG1lcmdlTWFwLCBzY2FuLCBzd2l0Y2hNYXAsIHRhcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtQYWdpbmF0aW9ufSBmcm9tICcuLi8uLi8uLi9yZXNvdXJjZXMvaW50ZXJmYWNlL3BhZ2luYXRpb24nO1xuaW1wb3J0IHtDYXNlTWV0YUZpZWxkfSBmcm9tICcuLi8uLi8uLi9oZWFkZXIvY2FzZS1oZWFkZXIvY2FzZS1tZW50YS1lbnVtJztcbmltcG9ydCB7TkFFX05FV19DQVNFX0NPTVBPTkVOVH0gZnJvbSAnLi4vLi4vLi4vc2lkZS1tZW51L2NvbnRlbnQtY29tcG9uZW50cy9pbmplY3Rpb24tdG9rZW5zJztcbmltcG9ydCB7UGFnZUxvYWRSZXF1ZXN0Q29udGV4dH0gZnJvbSAnLi4vLi4vYWJzdHJhY3QvcGFnZS1sb2FkLXJlcXVlc3QtY29udGV4dCc7XG5pbXBvcnQge0ZpbHRlcn0gZnJvbSAnLi4vLi4vLi4vZmlsdGVyL21vZGVscy9maWx0ZXInO1xuaW1wb3J0IHtMaXN0UmFuZ2V9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2xsZWN0aW9ucyc7XG5pbXBvcnQge0xvYWRpbmdXaXRoRmlsdGVyRW1pdHRlcn0gZnJvbSAnLi4vLi4vLi4vdXRpbGl0eS9sb2FkaW5nLXdpdGgtZmlsdGVyLWVtaXR0ZXInO1xuaW1wb3J0IHtDYXNlUGFnZUxvYWRSZXF1ZXN0UmVzdWx0fSBmcm9tICcuLi9tb2RlbHMvY2FzZS1wYWdlLWxvYWQtcmVxdWVzdC1yZXN1bHQnO1xuaW1wb3J0IHtVc2VyU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vdXNlci9zZXJ2aWNlcy91c2VyLnNlcnZpY2UnO1xuaW1wb3J0IHthcnJheVRvT2JzZXJ2YWJsZX0gZnJvbSAnLi4vLi4vLi4vdXRpbGl0eS9hcnJheS10by1vYnNlcnZhYmxlJztcbmltcG9ydCB7UGVybWlzc2lvblR5cGV9IGZyb20gJy4uLy4uLy4uL3Byb2Nlc3MvcGVybWlzc2lvbnMnO1xuaW1wb3J0IHtOQUVfTkVXX0NBU0VfQ09ORklHVVJBVElPTn0gZnJvbSAnLi4vbW9kZWxzL25ldy1jYXNlLWNvbmZpZ3VyYXRpb24taW5qZWN0aW9uLXRva2VuJztcbmltcG9ydCB7TmV3Q2FzZUNvbmZpZ3VyYXRpb259IGZyb20gJy4uL21vZGVscy9uZXctY2FzZS1jb25maWd1cmF0aW9uJztcbmltcG9ydCB7UHJvY2Vzc1NlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3Byb2Nlc3MvcHJvY2Vzcy5zZXJ2aWNlJztcbmltcG9ydCB7UGV0cmlOZXRSZWZlcmVuY2VXaXRoUGVybWlzc2lvbnN9IGZyb20gJy4uLy4uLy4uL3Byb2Nlc3MvcGV0cmktbmV0LXJlZmVyZW5jZS13aXRoLXBlcm1pc3Npb25zJztcbmltcG9ydCB7U2VhcmNoSW5kZXhSZXNvbHZlclNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlYXJjaC9zZWFyY2gta2V5d29yZC1yZXNvbHZlci1zZXJ2aWNlL3NlYXJjaC1pbmRleC1yZXNvbHZlci5zZXJ2aWNlJztcbmltcG9ydCB7QWxsb3dlZE5ldHNTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9hbGxvd2VkLW5ldHMvc2VydmljZXMvYWxsb3dlZC1uZXRzLnNlcnZpY2UnO1xuaW1wb3J0IHtTb3J0YWJsZVZpZXd9IGZyb20gJy4uLy4uL2Fic3RyYWN0L3NvcnRhYmxlLXZpZXcnO1xuaW1wb3J0IHtOZXdDYXNlQ3JlYXRpb25Db25maWd1cmF0aW9uRGF0YX0gZnJvbSAnLi4vLi4vLi4vc2lkZS1tZW51L2NvbnRlbnQtY29tcG9uZW50cy9uZXctY2FzZS9tb2RlbC9uZXctY2FzZS1pbmplY3Rpb24tZGF0YSc7XG5pbXBvcnQge1Blcm1pc3Npb25TZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9hdXRob3JpemF0aW9uL3Blcm1pc3Npb24vcGVybWlzc2lvbi5zZXJ2aWNlJztcbmltcG9ydCB7RXZlbnRPdXRjb21lTWVzc2FnZVJlc291cmNlfSBmcm9tICcuLi8uLi8uLi9yZXNvdXJjZXMvaW50ZXJmYWNlL21lc3NhZ2UtcmVzb3VyY2UnO1xuaW1wb3J0IHtDcmVhdGVDYXNlRXZlbnRPdXRjb21lfSBmcm9tICcuLi8uLi8uLi9ldmVudC9tb2RlbC9ldmVudC1vdXRjb21lcy9jYXNlLW91dGNvbWVzL2NyZWF0ZS1jYXNlLWV2ZW50LW91dGNvbWUnO1xuaW1wb3J0IHtQYWdpbmF0aW9uUGFyYW1zfSBmcm9tICcuLi8uLi8uLi91dGlsaXR5L3BhZ2luYXRpb24vcGFnaW5hdGlvbi1wYXJhbXMnO1xuaW1wb3J0IHtjcmVhdGVTb3J0UGFyYW0sIFBhZ2luYXRpb25Tb3J0fSBmcm9tICcuLi8uLi8uLi91dGlsaXR5L3BhZ2luYXRpb24vcGFnaW5hdGlvbi1zb3J0JztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIENhc2VWaWV3U2VydmljZSBleHRlbmRzIFNvcnRhYmxlVmlldyBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG5cbiAgICByZWFkb25seSBERUZBVUxUX05FV19DQVNFX0NPTkZJR1VSQVRJT046IE5ld0Nhc2VDb25maWd1cmF0aW9uID0ge1xuICAgICAgICB1c2VDYWNoZWRQcm9jZXNzZXM6IHRydWVcbiAgICB9O1xuXG4gICAgcHJvdGVjdGVkIF9sb2FkaW5nJDogTG9hZGluZ1dpdGhGaWx0ZXJFbWl0dGVyO1xuICAgIHByb3RlY3RlZCBfY2FzZXMkOiBPYnNlcnZhYmxlPEFycmF5PENhc2U+PjtcbiAgICBwcm90ZWN0ZWQgX25leHRQYWdlJDogQmVoYXZpb3JTdWJqZWN0PFBhZ2VMb2FkUmVxdWVzdENvbnRleHQ+O1xuICAgIHByb3RlY3RlZCBfZW5kT2ZEYXRhOiBib29sZWFuO1xuICAgIHByb3RlY3RlZCBfcGFnaW5hdGlvbjogUGFnaW5hdGlvbjtcbiAgICBwcm90ZWN0ZWQgX25ld0Nhc2VDb25maWd1cmF0aW9uOiBOZXdDYXNlQ29uZmlndXJhdGlvbjtcblxuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBfYWxsb3dlZE5ldHNTZXJ2aWNlOiBBbGxvd2VkTmV0c1NlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF9zaWRlTWVudVNlcnZpY2U6IFNpZGVNZW51U2VydmljZSxcbiAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX2Nhc2VSZXNvdXJjZVNlcnZpY2U6IENhc2VSZXNvdXJjZVNlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF9sb2c6IExvZ2dlclNlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF9zbmFja0JhclNlcnZpY2U6IFNuYWNrQmFyU2VydmljZSxcbiAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX3NlYXJjaFNlcnZpY2U6IFNlYXJjaFNlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF90cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF91c2VyOiBVc2VyU2VydmljZSxcbiAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX3Byb2Nlc3NTZXJ2aWNlOiBQcm9jZXNzU2VydmljZSxcbiAgICAgICAgICAgICAgICByZXNvbHZlcjogU2VhcmNoSW5kZXhSZXNvbHZlclNlcnZpY2UsXG4gICAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChOQUVfTkVXX0NBU0VfQ09NUE9ORU5UKSBwcm90ZWN0ZWQgX25ld0Nhc2VDb21wb25lbnQ6IGFueSxcbiAgICAgICAgICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KE5BRV9ORVdfQ0FTRV9DT05GSUdVUkFUSU9OKSBuZXdDYXNlQ29uZmlnOiBOZXdDYXNlQ29uZmlndXJhdGlvbixcbiAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX3Blcm1pc3Npb25TZXJ2aWNlOiBQZXJtaXNzaW9uU2VydmljZSkge1xuICAgICAgICBzdXBlcihyZXNvbHZlcik7XG4gICAgICAgIHRoaXMuX25ld0Nhc2VDb25maWd1cmF0aW9uID0gey4uLnRoaXMuREVGQVVMVF9ORVdfQ0FTRV9DT05GSUdVUkFUSU9OfTtcbiAgICAgICAgaWYgKG5ld0Nhc2VDb25maWcgIT09IG51bGwpIHtcbiAgICAgICAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5fbmV3Q2FzZUNvbmZpZ3VyYXRpb24sIG5ld0Nhc2VDb25maWcpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2xvYWRpbmckID0gbmV3IExvYWRpbmdXaXRoRmlsdGVyRW1pdHRlcigpO1xuICAgICAgICB0aGlzLl9zZWFyY2hTZXJ2aWNlLmFjdGl2ZUZpbHRlciQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMucmVsb2FkKCk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLl9lbmRPZkRhdGEgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5fcGFnaW5hdGlvbiA9IHtcbiAgICAgICAgICAgIHNpemU6IDI1LFxuICAgICAgICAgICAgdG90YWxFbGVtZW50czogdW5kZWZpbmVkLFxuICAgICAgICAgICAgdG90YWxQYWdlczogdW5kZWZpbmVkLFxuICAgICAgICAgICAgbnVtYmVyOiAtMVxuICAgICAgICB9O1xuICAgICAgICB0aGlzLl9uZXh0UGFnZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFBhZ2VMb2FkUmVxdWVzdENvbnRleHQ+KFxuICAgICAgICAgICAgbmV3IFBhZ2VMb2FkUmVxdWVzdENvbnRleHQodGhpcy5hY3RpdmVGaWx0ZXIsIE9iamVjdC5hc3NpZ24oe30sIHRoaXMuX3BhZ2luYXRpb24sIHtudW1iZXI6IDB9KSlcbiAgICAgICAgKTtcblxuICAgICAgICBjb25zdCBjYXNlc01hcCA9IHRoaXMuX25leHRQYWdlJC5waXBlKFxuICAgICAgICAgICAgbWVyZ2VNYXAocCA9PiB0aGlzLmxvYWRQYWdlKHApKSxcbiAgICAgICAgICAgIG1hcChwYWdlTG9hZFJlc3VsdCA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHBhZ2VMb2FkUmVzdWx0LnJlcXVlc3RDb250ZXh0ICYmIHBhZ2VMb2FkUmVzdWx0LnJlcXVlc3RDb250ZXh0LmNsZWFyTG9hZGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIHdlIHNldCBhbiBlbXB0eSB2YWx1ZSB0byB0aGUgdmlydHVhbCBzY3JvbGwgYW5kIHRoZW4gcmVwbGFjZSBpdCBieSB0aGUgcmVhbCB2YWx1ZSBmb3JjaW5nIGl0IHRvIHJlZHJhdyBpdHMgY29udGVudFxuICAgICAgICAgICAgICAgICAgICBjb25zdCByZXN1bHRzID0gW3tjYXNlczoge30sIHJlcXVlc3RDb250ZXh0OiBudWxsfSwgcGFnZUxvYWRSZXN1bHRdO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYXJyYXlUb09ic2VydmFibGUocmVzdWx0cyk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9mKHBhZ2VMb2FkUmVzdWx0KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGNvbmNhdE1hcChvID0+IG8pLFxuICAgICAgICAgICAgc2NhbigoYWNjLCBwYWdlTG9hZFJlc3VsdCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChwYWdlTG9hZFJlc3VsdC5yZXF1ZXN0Q29udGV4dCA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcGFnZUxvYWRSZXN1bHQuY2FzZXM7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fbG9hZGluZyQub2ZmKHBhZ2VMb2FkUmVzdWx0LnJlcXVlc3RDb250ZXh0LmZpbHRlcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5fcGFnaW5hdGlvbiwgcGFnZUxvYWRSZXN1bHQucmVxdWVzdENvbnRleHQucGFnaW5hdGlvbik7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsuLi5hY2MsIC4uLnBhZ2VMb2FkUmVzdWx0LmNhc2VzfTtcbiAgICAgICAgICAgIH0sIHt9KVxuICAgICAgICApO1xuICAgICAgICB0aGlzLl9jYXNlcyQgPSBjYXNlc01hcC5waXBlKFxuICAgICAgICAgICAgbWFwKHYgPT4gT2JqZWN0LnZhbHVlcyh2KSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICAgICAgdGhpcy5fbG9hZGluZyQuY29tcGxldGUoKTtcbiAgICAgICAgdGhpcy5fbmV4dFBhZ2UkLmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBsb2FkaW5nKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fbG9hZGluZyQuaXNBY3RpdmU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBsb2FkaW5nJCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2xvYWRpbmckLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgY2FzZXMkKCk6IE9ic2VydmFibGU8QXJyYXk8Q2FzZT4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Nhc2VzJDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHBhZ2luYXRpb24oKTogUGFnaW5hdGlvbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9wYWdpbmF0aW9uO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgYWN0aXZlRmlsdGVyKCk6IEZpbHRlciB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zZWFyY2hTZXJ2aWNlLmFjdGl2ZUZpbHRlcjtcbiAgICB9XG5cbiAgICBwdWJsaWMgbG9hZFBhZ2UocmVxdWVzdENvbnRleHQ6IFBhZ2VMb2FkUmVxdWVzdENvbnRleHQpOiBPYnNlcnZhYmxlPENhc2VQYWdlTG9hZFJlcXVlc3RSZXN1bHQ+IHtcbiAgICAgICAgaWYgKHJlcXVlc3RDb250ZXh0ID09PSBudWxsIHx8IHJlcXVlc3RDb250ZXh0LnBhZ2VOdW1iZXIgPCAwKSB7XG4gICAgICAgICAgICByZXR1cm4gb2Yoe2Nhc2VzOiB7fSwgcmVxdWVzdENvbnRleHR9KTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgcGFyYW1zOiBIdHRwUGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKTtcbiAgICAgICAgcGFyYW1zID0gdGhpcy5hZGRTb3J0UGFyYW1zKHBhcmFtcyk7XG4gICAgICAgIHBhcmFtcyA9IHRoaXMuYWRkUGFnZVBhcmFtcyhwYXJhbXMsIHJlcXVlc3RDb250ZXh0LnBhZ2luYXRpb24pO1xuICAgICAgICB0aGlzLl9sb2FkaW5nJC5vbihyZXF1ZXN0Q29udGV4dC5maWx0ZXIpO1xuXG4gICAgICAgIHJldHVybiB0aGlzLl9jYXNlUmVzb3VyY2VTZXJ2aWNlLnNlYXJjaENhc2VzKHJlcXVlc3RDb250ZXh0LmZpbHRlciwgcGFyYW1zKS5waXBlKFxuICAgICAgICAgICAgY2F0Y2hFcnJvcihlcnIgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX2xvZy5lcnJvcignTG9hZGluZyBjYXNlcyBoYXMgZmFpbGVkIScsIGVycik7XG4gICAgICAgICAgICAgICAgdGhpcy5fbG9hZGluZyQub2ZmKHJlcXVlc3RDb250ZXh0LmZpbHRlcik7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9mKHtjb250ZW50OiBbXSwgcGFnaW5hdGlvbjogey4uLnRoaXMuX3BhZ2luYXRpb259fSk7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGZpbHRlcigoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgciA9IHJlcXVlc3RDb250ZXh0LmZpbHRlciA9PT0gdGhpcy5fc2VhcmNoU2VydmljZS5hY3RpdmVGaWx0ZXI7XG4gICAgICAgICAgICAgICAgaWYgKCFyKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2xvYWRpbmckLm9mZihyZXF1ZXN0Q29udGV4dC5maWx0ZXIpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9sb2cuZGVidWcoJ1JlY2VpdmVkIGNhc2VzIHBhZ2UgaXMgbm8gbG9uZ2VyIHJlbGV2YW50IHNpbmNlIHRoZSBhY3RpdmUgZmlsdGVyIGhhcyBjaGFuZ2VkIGJlZm9yZSBpdCBjb3VsZCBhcnJpdmUuJ1xuICAgICAgICAgICAgICAgICAgICAgICAgKyAnIERpc2NhcmRpbmcuLi4nKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHI7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIHRhcChjID0+IHtcbiAgICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKHJlcXVlc3RDb250ZXh0LnBhZ2luYXRpb24sIGMucGFnaW5hdGlvbik7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIHRhcChjID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbmRPZkRhdGEgPSAhQXJyYXkuaXNBcnJheShjLmNvbnRlbnQpXG4gICAgICAgICAgICAgICAgICAgIHx8IGMuY29udGVudC5sZW5ndGggPT09IDBcbiAgICAgICAgICAgICAgICAgICAgfHwgYy5wYWdpbmF0aW9uLm51bWJlciA9PT0gYy5wYWdpbmF0aW9uLnRvdGFsUGFnZXM7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIG1hcChjYXNlcyA9PiBBcnJheS5pc0FycmF5KGNhc2VzLmNvbnRlbnQpID8gY2FzZXMgOiB7Li4uY2FzZXMsIGNvbnRlbnQ6IFtdfSksXG4gICAgICAgICAgICBtYXAoY2FzZXMgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBjYXNlcy5jb250ZW50LnJlZHVjZSgoYWNjLCBjdXIpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsuLi5hY2MsIFtjdXIuc3RyaW5nSWRdOiBjdXJ9O1xuICAgICAgICAgICAgICAgIH0sIHt9KTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgbWFwKGNhc2VzID0+ICh7Y2FzZXMsIHJlcXVlc3RDb250ZXh0fSkpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIG5leHRQYWdlKHJlbmRlcmVkUmFuZ2U6IExpc3RSYW5nZSwgdG90YWxMb2FkZWQ6IG51bWJlciwgcmVxdWVzdENvbnRleHQ/OiBQYWdlTG9hZFJlcXVlc3RDb250ZXh0KSB7XG4gICAgICAgIGlmIChyZXF1ZXN0Q29udGV4dCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXF1ZXN0Q29udGV4dCA9IG5ldyBQYWdlTG9hZFJlcXVlc3RDb250ZXh0KHRoaXMuYWN0aXZlRmlsdGVyLCB0aGlzLl9wYWdpbmF0aW9uKTtcbiAgICAgICAgICAgIHJlcXVlc3RDb250ZXh0LnBhZ2luYXRpb24ubnVtYmVyICs9IDE7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5pc0xvYWRpbmdSZWxldmFudEZpbHRlcihyZXF1ZXN0Q29udGV4dCkgfHwgdGhpcy5fZW5kT2ZEYXRhKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocmVuZGVyZWRSYW5nZS5lbmQgPT09IHRvdGFsTG9hZGVkKSB7XG4gICAgICAgICAgICB0aGlzLl9uZXh0UGFnZSQubmV4dChyZXF1ZXN0Q29udGV4dCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgbmV4dFBhZ2VQYWdpbmF0aW9uKGxlbmd0aDogbnVtYmVyLCBwYWdlSW5kZXg6IG51bWJlciwgcmVxdWVzdENvbnRleHQ/OiBQYWdlTG9hZFJlcXVlc3RDb250ZXh0KSB7XG4gICAgICAgIGlmIChyZXF1ZXN0Q29udGV4dCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXF1ZXN0Q29udGV4dCA9IG5ldyBQYWdlTG9hZFJlcXVlc3RDb250ZXh0KHRoaXMuYWN0aXZlRmlsdGVyLCB0aGlzLl9wYWdpbmF0aW9uKTtcbiAgICAgICAgICAgIHJlcXVlc3RDb250ZXh0LnBhZ2luYXRpb24uc2l6ZSA9IGxlbmd0aDtcbiAgICAgICAgICAgIHJlcXVlc3RDb250ZXh0LnBhZ2luYXRpb24ubnVtYmVyID0gcGFnZUluZGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuaXNMb2FkaW5nUmVsZXZhbnRGaWx0ZXIocmVxdWVzdENvbnRleHQpIHx8IHRoaXMuX2VuZE9mRGF0YSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX25leHRQYWdlJC5uZXh0KHJlcXVlc3RDb250ZXh0KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzTG9hZGluZ1JlbGV2YW50RmlsdGVyKHJlcXVlc3RDb250ZXh0PzogUGFnZUxvYWRSZXF1ZXN0Q29udGV4dCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gcmVxdWVzdENvbnRleHQgPT09IHVuZGVmaW5lZCB8fCB0aGlzLl9sb2FkaW5nJC5pc0FjdGl2ZVdpdGhGaWx0ZXIocmVxdWVzdENvbnRleHQuZmlsdGVyKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY3JlYXRlTmV3Q2FzZShuZXdDYXNlQ3JlYXRpb25Db25maWd1cmF0aW9uOiBOZXdDYXNlQ3JlYXRpb25Db25maWd1cmF0aW9uRGF0YSA9IHtcbiAgICAgICAgZW5hYmxlQ2FzZVRpdGxlOiB0cnVlLFxuICAgICAgICBpc0Nhc2VUaXRsZVJlcXVpcmVkOiB0cnVlXG4gICAgfSk6IE9ic2VydmFibGU8Q2FzZT4ge1xuICAgICAgICBjb25zdCBteUNhc2UgPSBuZXcgU3ViamVjdDxDYXNlPigpO1xuICAgICAgICB0aGlzLl9zaWRlTWVudVNlcnZpY2Uub3Blbih0aGlzLl9uZXdDYXNlQ29tcG9uZW50LCBTaWRlTWVudVNpemUuTUVESVVNLCB7XG4gICAgICAgICAgICBhbGxvd2VkTmV0cyQ6IHRoaXMuZ2V0TmV3Q2FzZUFsbG93ZWROZXRzKCksXG4gICAgICAgICAgICBuZXdDYXNlQ3JlYXRpb25Db25maWd1cmF0aW9uXG4gICAgICAgIH0pLm9uQ2xvc2Uuc3Vic2NyaWJlKCRldmVudCA9PiB7XG4gICAgICAgICAgICB0aGlzLl9sb2cuZGVidWcoJGV2ZW50Lm1lc3NhZ2UsICRldmVudC5kYXRhKTtcbiAgICAgICAgICAgIGlmICgkZXZlbnQuZGF0YSkge1xuICAgICAgICAgICAgICAgIHRoaXMucmVsb2FkKCk7XG4gICAgICAgICAgICAgICAgbXlDYXNlLm5leHQoJGV2ZW50LmRhdGEpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbXlDYXNlLmNvbXBsZXRlKCk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gbXlDYXNlLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjcmVhdGVEZWZhdWx0TmV3Q2FzZSgpOiBPYnNlcnZhYmxlPENhc2U+IHtcbiAgICAgICAgY29uc3QgbXlDYXNlID0gbmV3IFN1YmplY3Q8Q2FzZT4oKTtcbiAgICAgICAgdGhpcy5nZXROZXdDYXNlQWxsb3dlZE5ldHMoKS5zdWJzY3JpYmUoKG5ldHM6IEFycmF5PFBldHJpTmV0UmVmZXJlbmNlV2l0aFBlcm1pc3Npb25zPikgPT4ge1xuICAgICAgICAgICAgdGhpcy5fY2FzZVJlc291cmNlU2VydmljZS5jcmVhdGVDYXNlKHtcbiAgICAgICAgICAgICAgICB0aXRsZTogbnVsbCxcbiAgICAgICAgICAgICAgICBjb2xvcjogJ3BhbmVsLXByaW1hcnktaWNvbicsXG4gICAgICAgICAgICAgICAgbmV0SWQ6IG5ldHNbMF0uc3RyaW5nSWRcbiAgICAgICAgICAgIH0pLnN1YnNjcmliZSgocmVzcG9uc2U6IEV2ZW50T3V0Y29tZU1lc3NhZ2VSZXNvdXJjZSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX3NuYWNrQmFyU2VydmljZS5vcGVuU3VjY2Vzc1NuYWNrQmFyKHRoaXMuX3RyYW5zbGF0ZS5pbnN0YW50KCdzaWRlLW1lbnUubmV3LWNhc2UuY3JlYXRlQ2FzZScpXG4gICAgICAgICAgICAgICAgICAgICsgJyAnICsgdGhpcy5fdHJhbnNsYXRlLmluc3RhbnQoJ3NpZGUtbWVudS5uZXctY2FzZS5kZWZhdWx0Q2FzZU5hbWUnKSk7XG4gICAgICAgICAgICAgICAgdGhpcy5yZWxvYWQoKTtcbiAgICAgICAgICAgICAgICBteUNhc2UubmV4dCgocmVzcG9uc2Uub3V0Y29tZSBhcyBDcmVhdGVDYXNlRXZlbnRPdXRjb21lKS5hQ2FzZSk7XG4gICAgICAgICAgICAgICAgbXlDYXNlLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICB9LCBlcnJvciA9PiB0aGlzLl9zbmFja0JhclNlcnZpY2Uub3BlbkVycm9yU25hY2tCYXIoZXJyb3IubWVzc2FnZSA/IGVycm9yLm1lc3NhZ2UgOiBlcnJvcikpO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIG15Q2FzZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0TmV3Q2FzZUFsbG93ZWROZXRzKCk6IE9ic2VydmFibGU8QXJyYXk8UGV0cmlOZXRSZWZlcmVuY2VXaXRoUGVybWlzc2lvbnM+PiB7XG4gICAgICAgIGlmICh0aGlzLl9uZXdDYXNlQ29uZmlndXJhdGlvbi51c2VDYWNoZWRQcm9jZXNzZXMpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9hbGxvd2VkTmV0c1NlcnZpY2UuYWxsb3dlZE5ldHMkLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKG5ldCA9PiBuZXQuZmlsdGVyKG4gPT4gdGhpcy5fcGVybWlzc2lvblNlcnZpY2UuaGFzTmV0UGVybWlzc2lvbihQZXJtaXNzaW9uVHlwZS5DUkVBVEUsIG4pKSlcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fYWxsb3dlZE5ldHNTZXJ2aWNlLmFsbG93ZWROZXRzJC5waXBlKFxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcChhbGxvd2VkTmV0cyA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9wcm9jZXNzU2VydmljZS5nZXROZXRSZWZlcmVuY2VzKGFsbG93ZWROZXRzLm1hcChuZXQgPT4gbmV0LmlkZW50aWZpZXIpKS5waXBlKFxuICAgICAgICAgICAgICAgICAgICAgICAgbWFwKG5ldCA9PiBuZXQuZmlsdGVyKG4gPT4gdGhpcy5fcGVybWlzc2lvblNlcnZpY2UuaGFzTmV0UGVybWlzc2lvbihQZXJtaXNzaW9uVHlwZS5DUkVBVEUsIG4pKSlcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgbnVtYmVyIG9mIGFsbG93ZWQgbmV0cyBvZiBjYXNlIHZpZXdcbiAgICAgKiBAcmV0dXJucyBsZW5ndGggb2YgYWxsb3dlZE5ldHMgYXJyYXkgaWYgaXQgaXMgZGVmaW5lZCwgMCBpZiBpdCBpcyB1bmRlZmluZWRcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0QWxsb3dlZE5ldHNDb3VudCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5fYWxsb3dlZE5ldHNTZXJ2aWNlLmFsbG93ZWROZXRzID09PSB1bmRlZmluZWQgPyAwIDogdGhpcy5fYWxsb3dlZE5ldHNTZXJ2aWNlLmFsbG93ZWROZXRzLmxlbmd0aDtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgYWRkUGFnZVBhcmFtcyhwYXJhbXM6IEh0dHBQYXJhbXMsIHBhZ2luYXRpb246IFBhZ2luYXRpb24pOiBIdHRwUGFyYW1zIHtcbiAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldChQYWdpbmF0aW9uUGFyYW1zLlBBR0VfU0laRSwgYCR7cGFnaW5hdGlvbi5zaXplfWApO1xuICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KFBhZ2luYXRpb25QYXJhbXMuUEFHRV9OVU1CRVIsIGAke3BhZ2luYXRpb24ubnVtYmVyfWApO1xuICAgICAgICByZXR1cm4gcGFyYW1zO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXREZWZhdWx0U29ydFBhcmFtKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBjcmVhdGVTb3J0UGFyYW0oJ3N0cmluZ0lkJywgUGFnaW5hdGlvblNvcnQuREVTQ0VORElORyk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldE1ldGFGaWVsZFNvcnRJZCgpOiBzdHJpbmcge1xuICAgICAgICBzd2l0Y2ggKHRoaXMuX2xhc3RIZWFkZXJTZWFyY2hTdGF0ZS5maWVsZElkZW50aWZpZXIpIHtcbiAgICAgICAgICAgIGNhc2UgQ2FzZU1ldGFGaWVsZC5USVRMRTpcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3RpdGxlLmtleXdvcmQnO1xuICAgICAgICAgICAgY2FzZSBDYXNlTWV0YUZpZWxkLlZJU1VBTF9JRDpcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3Zpc3VhbElkLmtleXdvcmQnO1xuICAgICAgICAgICAgY2FzZSBDYXNlTWV0YUZpZWxkLkNSRUFUSU9OX0RBVEU6XG4gICAgICAgICAgICAgICAgcmV0dXJuICdjcmVhdGlvbkRhdGVTb3J0YWJsZSc7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9sYXN0SGVhZGVyU2VhcmNoU3RhdGUuZmllbGRJZGVudGlmaWVyO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHJlbG9hZCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLl9jYXNlcyQgfHwgIXRoaXMuX3BhZ2luYXRpb24pIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2VuZE9mRGF0YSA9IGZhbHNlO1xuICAgICAgICBjb25zdCByZXF1ZXN0Q29udGV4dCA9IG5ldyBQYWdlTG9hZFJlcXVlc3RDb250ZXh0KHRoaXMuYWN0aXZlRmlsdGVyLCB0aGlzLl9wYWdpbmF0aW9uLCB0cnVlKTtcbiAgICAgICAgcmVxdWVzdENvbnRleHQucGFnaW5hdGlvbi5udW1iZXIgPSAwO1xuICAgICAgICBjb25zdCByYW5nZSA9IHtcbiAgICAgICAgICAgIHN0YXJ0OiAtMSxcbiAgICAgICAgICAgIGVuZDogMFxuICAgICAgICB9O1xuXG4gICAgICAgIHRoaXMubmV4dFBhZ2UocmFuZ2UsIDAsIHJlcXVlc3RDb250ZXh0KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaGFzQXV0aG9yaXR5KGF1dGhvcml0eTogQXJyYXk8c3RyaW5nPiB8IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fdXNlci5oYXNBdXRob3JpdHkoYXV0aG9yaXR5KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIGN1cnJlbnQgdXNlciBoYXMgdGhlIFtWSUVXXXtAbGluayBQZXJtaXNzaW9uVHlwZSNWSUVXfSBwZXJtaXNzaW9uIG9uIHRoZSBjdXJyZW50IGNhc2VcbiAgICAgKiBAcGFyYW0gYUNhc2UgdGhlIHRlc3RlZCBjYXNlXG4gICAgICogQHJldHVybnMgYHRydWVgIGlmIHRoZSBjdXJyZW50IHVzZXIgaGFzIHRoZSBgVklFV2AgcGVybWlzc2lvbiBvbiB0aGUgdGVzdGVkIGNhc2UsIGBmYWxzZWAgb3RoZXJ3aXNlLlxuICAgICAqL1xuICAgIHB1YmxpYyB2aWV3RW5hYmxlZChhQ2FzZTogQ2FzZSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fcGVybWlzc2lvblNlcnZpY2UuaGFzQ2FzZVBlcm1pc3Npb24oYUNhc2UsIFBlcm1pc3Npb25UeXBlLlZJRVcpO1xuICAgIH1cbn1cbiJdfQ==
@@ -37,8 +37,9 @@ export * from './tree-case-view/tree-task-content/tree-task-content.service';
37
37
  /* COMPONENTS */
38
38
  export * from './workflow-view/abstract-workflow-view.component';
39
39
  export * from './case-view/components/case-list/abstract-case-list.component';
40
+ export * from './case-view/components/case-list-paginator/abstract-case-list-paginator.component';
40
41
  export * from './tree-case-view/tree-component/abstract-tree.component';
41
42
  export * from './tree-case-view/tree-component/add-child-node/abstract-add-child-node.component';
42
43
  export * from './tree-case-view/tree-component/remove-node/abstract-remove-node.component';
43
44
  export * from './tree-case-view/tree-task-content/abstract-tree-task-content.component';
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZXRncmlmL2NvbXBvbmVudHMtY29yZS8iLCJzb3VyY2VzIjpbImxpYi92aWV3L3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsZ0JBQWdCO0FBQ2hCLGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyxrREFBa0QsQ0FBQztBQUNqRSxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyxtREFBbUQsQ0FBQztBQUNsRSxjQUFjLGtEQUFrRCxDQUFDO0FBQ2pFLGNBQWMsNENBQTRDLENBQUM7QUFDM0QsY0FBYyxzREFBc0QsQ0FBQztBQUNyRSxjQUFjLHNEQUFzRCxDQUFDO0FBQ3JFLGNBQWMsc0RBQXNELENBQUM7QUFDckUsY0FBYyxvRUFBb0UsQ0FBQztBQUVuRixXQUFXO0FBQ1gsY0FBYyxtREFBbUQsQ0FBQztBQUNsRSxjQUFjLGtDQUFrQyxDQUFDO0FBRWpELGFBQWE7QUFDYixjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsOEJBQThCLENBQUM7QUFFN0MsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLDhCQUE4QixDQUFDO0FBRTdDLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLHNDQUFzQyxDQUFDO0FBRXJELHNCQUFzQjtBQUN0QixjQUFjLDJEQUEyRCxDQUFDO0FBQzFFLGNBQWMsa0RBQWtELENBQUM7QUFDakUsY0FBYyw0REFBNEQsQ0FBQztBQUMzRSxjQUFjLHlEQUF5RCxDQUFDO0FBQ3hFLGNBQWMsMEVBQTBFLENBQUM7QUFFekYsY0FBYztBQUNkLGNBQWMsdUNBQXVDLENBQUM7QUFFdEQsY0FBYyx1Q0FBdUMsQ0FBQztBQUV0RCxjQUFjLHVDQUF1QyxDQUFDO0FBRXRELGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyxtREFBbUQsQ0FBQztBQUNsRSxjQUFjLDhEQUE4RCxDQUFDO0FBRTdFLGdCQUFnQjtBQUNoQixjQUFjLGtEQUFrRCxDQUFDO0FBQ2pFLGNBQWMsK0RBQStELENBQUM7QUFDOUUsY0FBYyx5REFBeUQsQ0FBQztBQUN4RSxjQUFjLGtGQUFrRixDQUFDO0FBQ2pHLGNBQWMsNEVBQTRFLENBQUM7QUFDM0YsY0FBYyx5RUFBeUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIElOVEVSRkFDRVMgKi9cbmV4cG9ydCAqIGZyb20gJy4vY2FzZS12aWV3L21vZGVscy9jYXNlLXZpZXctcGFyYW1zJztcbmV4cG9ydCAqIGZyb20gJy4vY2FzZS12aWV3L21vZGVscy9jYXNlLXBhZ2UtbG9hZC1yZXF1ZXN0LXJlc3VsdCc7XG5leHBvcnQgKiBmcm9tICcuL2Nhc2Utdmlldy9tb2RlbHMvbmV3LWNhc2UtY29uZmlndXJhdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL3Rhc2stdmlldy9tb2RlbHMvdGFzay12aWV3LXBhcmFtcyc7XG5leHBvcnQgKiBmcm9tICcuL3Rhc2stdmlldy9tb2RlbHMvaW5qZWN0ZWQtdGFiYmVkLXRhc2stdmlldy1kYXRhJztcbmV4cG9ydCAqIGZyb20gJy4vdGFzay12aWV3L21vZGVscy90YXNrLXBhZ2UtbG9hZC1yZXF1ZXN0LXJlc3VsdCc7XG5leHBvcnQgKiBmcm9tICcuL3Rhc2stdmlldy9tb2RlbHMvdGFzay12aWV3LWNvbmZpZ3VyYXRpb24nO1xuZXhwb3J0ICogZnJvbSAnLi90cmVlLWNhc2Utdmlldy90cmVlLWNvbXBvbmVudC9tb2RlbC9jYXNlLXRyZWUtbm9kZSc7XG5leHBvcnQgKiBmcm9tICcuL3RyZWUtY2FzZS12aWV3L3RyZWUtY29tcG9uZW50L21vZGVsL2Nhc2UtdHJlZS1wYXRoJztcbmV4cG9ydCAqIGZyb20gJy4vdHJlZS1jYXNlLXZpZXcvdHJlZS1jb21wb25lbnQvbW9kZWwvZXhwYW5zaW9uLXRyZWUnO1xuZXhwb3J0ICogZnJvbSAnLi90cmVlLWNhc2Utdmlldy90cmVlLWNvbXBvbmVudC9tb2RlbC90cmVlLWNhc2Utdmlldy1jb25maWd1cmF0aW9uJztcblxuLyogRU5VTVMgKi9cbmV4cG9ydCAqIGZyb20gJy4vdHJlZS1jYXNlLXZpZXcvbW9kZWwvdHJlZS1wZXRyaWZsb3ctaWRlbnRpZmllcnMnO1xuZXhwb3J0ICogZnJvbSAnLi90YXNrLXZpZXcvbW9kZWxzL3Rhc2stZW5kcG9pbnQnO1xuXG4vKiBDTEFTU0VTICovXG5leHBvcnQgKiBmcm9tICcuL2Nhc2Utdmlldy9hYnN0cmFjdC1jYXNlLXZpZXcnO1xuZXhwb3J0ICogZnJvbSAnLi9jYXNlLXZpZXcvdGFiYmVkLWNhc2Utdmlldyc7XG5cbmV4cG9ydCAqIGZyb20gJy4vdGFzay12aWV3L2Fic3RyYWN0LXRhc2stdmlldyc7XG5leHBvcnQgKiBmcm9tICcuL3Rhc2stdmlldy90YWJiZWQtdGFzay12aWV3JztcblxuZXhwb3J0ICogZnJvbSAnLi9hYnN0cmFjdC92aWV3LXdpdGgtaGVhZGVycyc7XG5leHBvcnQgKiBmcm9tICcuL2Fic3RyYWN0L3NvcnRhYmxlLXZpZXcnO1xuZXhwb3J0ICogZnJvbSAnLi9hYnN0cmFjdC9wYWdlLWxvYWQtcmVxdWVzdC1jb250ZXh0JztcblxuLyogSU5KRUNUSU9OIFRPS0VOUyAqL1xuZXhwb3J0ICogZnJvbSAnLi9jYXNlLXZpZXcvbW9kZWxzL25ldy1jYXNlLWNvbmZpZ3VyYXRpb24taW5qZWN0aW9uLXRva2VuJztcbmV4cG9ydCAqIGZyb20gJy4vdGFzay12aWV3L21vZGVscy9pbmplY3Rpb24tdG9rZW4tdGFzay1lbmRwb2ludCc7XG5leHBvcnQgKiBmcm9tICcuL3Rhc2stdmlldy9tb2RlbHMvdGFzay12aWV3LWNvbmZpZ3VyYXRpb24taW5qZWN0aW9uLXRva2VuJztcbmV4cG9ydCAqIGZyb20gJy4vd29ya2Zsb3ctdmlldy9tb2RlbHMvaW5qZWN0aW9uLXRva2VuLXdvcmtmbG93LXNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi90cmVlLWNhc2Utdmlldy90cmVlLWNvbXBvbmVudC9tb2RlbC90cmVlLWNvbmZpZ3VyYXRpb24taW5qZWN0aW9uLXRva2VuJztcblxuLyogU0VSVklDRVMgKi9cbmV4cG9ydCAqIGZyb20gJy4vY2FzZS12aWV3L3NlcnZpY2UvY2FzZS12aWV3LXNlcnZpY2UnO1xuXG5leHBvcnQgKiBmcm9tICcuL3Rhc2stdmlldy9zZXJ2aWNlL3Rhc2stdmlldy5zZXJ2aWNlJztcblxuZXhwb3J0ICogZnJvbSAnLi93b3JrZmxvdy12aWV3L3dvcmtmbG93LXZpZXcuc2VydmljZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vdHJlZS1jYXNlLXZpZXcvdHJlZS1jYXNlLXZpZXcuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3RyZWUtY2FzZS12aWV3L3RyZWUtY29tcG9uZW50L2Nhc2UtdHJlZS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vdHJlZS1jYXNlLXZpZXcvdHJlZS10YXNrLWNvbnRlbnQvdHJlZS10YXNrLWNvbnRlbnQuc2VydmljZSc7XG5cbi8qIENPTVBPTkVOVFMgKi9cbmV4cG9ydCAqIGZyb20gJy4vd29ya2Zsb3ctdmlldy9hYnN0cmFjdC13b3JrZmxvdy12aWV3LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2Nhc2Utdmlldy9jb21wb25lbnRzL2Nhc2UtbGlzdC9hYnN0cmFjdC1jYXNlLWxpc3QuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vdHJlZS1jYXNlLXZpZXcvdHJlZS1jb21wb25lbnQvYWJzdHJhY3QtdHJlZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi90cmVlLWNhc2Utdmlldy90cmVlLWNvbXBvbmVudC9hZGQtY2hpbGQtbm9kZS9hYnN0cmFjdC1hZGQtY2hpbGQtbm9kZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi90cmVlLWNhc2Utdmlldy90cmVlLWNvbXBvbmVudC9yZW1vdmUtbm9kZS9hYnN0cmFjdC1yZW1vdmUtbm9kZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi90cmVlLWNhc2Utdmlldy90cmVlLXRhc2stY29udGVudC9hYnN0cmFjdC10cmVlLXRhc2stY29udGVudC5jb21wb25lbnQnO1xuIl19
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZXRncmlmL2NvbXBvbmVudHMtY29yZS8iLCJzb3VyY2VzIjpbImxpYi92aWV3L3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsZ0JBQWdCO0FBQ2hCLGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyxrREFBa0QsQ0FBQztBQUNqRSxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyxtREFBbUQsQ0FBQztBQUNsRSxjQUFjLGtEQUFrRCxDQUFDO0FBQ2pFLGNBQWMsNENBQTRDLENBQUM7QUFDM0QsY0FBYyxzREFBc0QsQ0FBQztBQUNyRSxjQUFjLHNEQUFzRCxDQUFDO0FBQ3JFLGNBQWMsc0RBQXNELENBQUM7QUFDckUsY0FBYyxvRUFBb0UsQ0FBQztBQUVuRixXQUFXO0FBQ1gsY0FBYyxtREFBbUQsQ0FBQztBQUNsRSxjQUFjLGtDQUFrQyxDQUFDO0FBRWpELGFBQWE7QUFDYixjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsOEJBQThCLENBQUM7QUFFN0MsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLDhCQUE4QixDQUFDO0FBRTdDLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLHNDQUFzQyxDQUFDO0FBRXJELHNCQUFzQjtBQUN0QixjQUFjLDJEQUEyRCxDQUFDO0FBQzFFLGNBQWMsa0RBQWtELENBQUM7QUFDakUsY0FBYyw0REFBNEQsQ0FBQztBQUMzRSxjQUFjLHlEQUF5RCxDQUFDO0FBQ3hFLGNBQWMsMEVBQTBFLENBQUM7QUFFekYsY0FBYztBQUNkLGNBQWMsdUNBQXVDLENBQUM7QUFFdEQsY0FBYyx1Q0FBdUMsQ0FBQztBQUV0RCxjQUFjLHVDQUF1QyxDQUFDO0FBRXRELGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyxtREFBbUQsQ0FBQztBQUNsRSxjQUFjLDhEQUE4RCxDQUFDO0FBRTdFLGdCQUFnQjtBQUNoQixjQUFjLGtEQUFrRCxDQUFDO0FBQ2pFLGNBQWMsK0RBQStELENBQUM7QUFDOUUsY0FBYyxtRkFBbUYsQ0FBQztBQUNsRyxjQUFjLHlEQUF5RCxDQUFDO0FBQ3hFLGNBQWMsa0ZBQWtGLENBQUM7QUFDakcsY0FBYyw0RUFBNEUsQ0FBQztBQUMzRixjQUFjLHlFQUF5RSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyogSU5URVJGQUNFUyAqL1xuZXhwb3J0ICogZnJvbSAnLi9jYXNlLXZpZXcvbW9kZWxzL2Nhc2Utdmlldy1wYXJhbXMnO1xuZXhwb3J0ICogZnJvbSAnLi9jYXNlLXZpZXcvbW9kZWxzL2Nhc2UtcGFnZS1sb2FkLXJlcXVlc3QtcmVzdWx0JztcbmV4cG9ydCAqIGZyb20gJy4vY2FzZS12aWV3L21vZGVscy9uZXctY2FzZS1jb25maWd1cmF0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vdGFzay12aWV3L21vZGVscy90YXNrLXZpZXctcGFyYW1zJztcbmV4cG9ydCAqIGZyb20gJy4vdGFzay12aWV3L21vZGVscy9pbmplY3RlZC10YWJiZWQtdGFzay12aWV3LWRhdGEnO1xuZXhwb3J0ICogZnJvbSAnLi90YXNrLXZpZXcvbW9kZWxzL3Rhc2stcGFnZS1sb2FkLXJlcXVlc3QtcmVzdWx0JztcbmV4cG9ydCAqIGZyb20gJy4vdGFzay12aWV3L21vZGVscy90YXNrLXZpZXctY29uZmlndXJhdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL3RyZWUtY2FzZS12aWV3L3RyZWUtY29tcG9uZW50L21vZGVsL2Nhc2UtdHJlZS1ub2RlJztcbmV4cG9ydCAqIGZyb20gJy4vdHJlZS1jYXNlLXZpZXcvdHJlZS1jb21wb25lbnQvbW9kZWwvY2FzZS10cmVlLXBhdGgnO1xuZXhwb3J0ICogZnJvbSAnLi90cmVlLWNhc2Utdmlldy90cmVlLWNvbXBvbmVudC9tb2RlbC9leHBhbnNpb24tdHJlZSc7XG5leHBvcnQgKiBmcm9tICcuL3RyZWUtY2FzZS12aWV3L3RyZWUtY29tcG9uZW50L21vZGVsL3RyZWUtY2FzZS12aWV3LWNvbmZpZ3VyYXRpb24nO1xuXG4vKiBFTlVNUyAqL1xuZXhwb3J0ICogZnJvbSAnLi90cmVlLWNhc2Utdmlldy9tb2RlbC90cmVlLXBldHJpZmxvdy1pZGVudGlmaWVycyc7XG5leHBvcnQgKiBmcm9tICcuL3Rhc2stdmlldy9tb2RlbHMvdGFzay1lbmRwb2ludCc7XG5cbi8qIENMQVNTRVMgKi9cbmV4cG9ydCAqIGZyb20gJy4vY2FzZS12aWV3L2Fic3RyYWN0LWNhc2Utdmlldyc7XG5leHBvcnQgKiBmcm9tICcuL2Nhc2Utdmlldy90YWJiZWQtY2FzZS12aWV3JztcblxuZXhwb3J0ICogZnJvbSAnLi90YXNrLXZpZXcvYWJzdHJhY3QtdGFzay12aWV3JztcbmV4cG9ydCAqIGZyb20gJy4vdGFzay12aWV3L3RhYmJlZC10YXNrLXZpZXcnO1xuXG5leHBvcnQgKiBmcm9tICcuL2Fic3RyYWN0L3ZpZXctd2l0aC1oZWFkZXJzJztcbmV4cG9ydCAqIGZyb20gJy4vYWJzdHJhY3Qvc29ydGFibGUtdmlldyc7XG5leHBvcnQgKiBmcm9tICcuL2Fic3RyYWN0L3BhZ2UtbG9hZC1yZXF1ZXN0LWNvbnRleHQnO1xuXG4vKiBJTkpFQ1RJT04gVE9LRU5TICovXG5leHBvcnQgKiBmcm9tICcuL2Nhc2Utdmlldy9tb2RlbHMvbmV3LWNhc2UtY29uZmlndXJhdGlvbi1pbmplY3Rpb24tdG9rZW4nO1xuZXhwb3J0ICogZnJvbSAnLi90YXNrLXZpZXcvbW9kZWxzL2luamVjdGlvbi10b2tlbi10YXNrLWVuZHBvaW50JztcbmV4cG9ydCAqIGZyb20gJy4vdGFzay12aWV3L21vZGVscy90YXNrLXZpZXctY29uZmlndXJhdGlvbi1pbmplY3Rpb24tdG9rZW4nO1xuZXhwb3J0ICogZnJvbSAnLi93b3JrZmxvdy12aWV3L21vZGVscy9pbmplY3Rpb24tdG9rZW4td29ya2Zsb3ctc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3RyZWUtY2FzZS12aWV3L3RyZWUtY29tcG9uZW50L21vZGVsL3RyZWUtY29uZmlndXJhdGlvbi1pbmplY3Rpb24tdG9rZW4nO1xuXG4vKiBTRVJWSUNFUyAqL1xuZXhwb3J0ICogZnJvbSAnLi9jYXNlLXZpZXcvc2VydmljZS9jYXNlLXZpZXctc2VydmljZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vdGFzay12aWV3L3NlcnZpY2UvdGFzay12aWV3LnNlcnZpY2UnO1xuXG5leHBvcnQgKiBmcm9tICcuL3dvcmtmbG93LXZpZXcvd29ya2Zsb3ctdmlldy5zZXJ2aWNlJztcblxuZXhwb3J0ICogZnJvbSAnLi90cmVlLWNhc2Utdmlldy90cmVlLWNhc2Utdmlldy5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vdHJlZS1jYXNlLXZpZXcvdHJlZS1jb21wb25lbnQvY2FzZS10cmVlLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi90cmVlLWNhc2Utdmlldy90cmVlLXRhc2stY29udGVudC90cmVlLXRhc2stY29udGVudC5zZXJ2aWNlJztcblxuLyogQ09NUE9ORU5UUyAqL1xuZXhwb3J0ICogZnJvbSAnLi93b3JrZmxvdy12aWV3L2Fic3RyYWN0LXdvcmtmbG93LXZpZXcuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY2FzZS12aWV3L2NvbXBvbmVudHMvY2FzZS1saXN0L2Fic3RyYWN0LWNhc2UtbGlzdC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jYXNlLXZpZXcvY29tcG9uZW50cy9jYXNlLWxpc3QtcGFnaW5hdG9yL2Fic3RyYWN0LWNhc2UtbGlzdC1wYWdpbmF0b3IuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vdHJlZS1jYXNlLXZpZXcvdHJlZS1jb21wb25lbnQvYWJzdHJhY3QtdHJlZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi90cmVlLWNhc2Utdmlldy90cmVlLWNvbXBvbmVudC9hZGQtY2hpbGQtbm9kZS9hYnN0cmFjdC1hZGQtY2hpbGQtbm9kZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi90cmVlLWNhc2Utdmlldy90cmVlLWNvbXBvbmVudC9yZW1vdmUtbm9kZS9hYnN0cmFjdC1yZW1vdmUtbm9kZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi90cmVlLWNhc2Utdmlldy90cmVlLXRhc2stY29udGVudC9hYnN0cmFjdC10cmVlLXRhc2stY29udGVudC5jb21wb25lbnQnO1xuIl19
@@ -133,6 +133,9 @@ export class TaskViewService extends SortableView {
133
133
  get closeTab() {
134
134
  return this._closeTab$.asObservable();
135
135
  }
136
+ get pagination() {
137
+ return this._pagination;
138
+ }
136
139
  get activeFilter() {
137
140
  return this._searchService.activeFilter;
138
141
  }
@@ -222,6 +225,17 @@ export class TaskViewService extends SortableView {
222
225
  this._requestedPage$.next(requestContext);
223
226
  }
224
227
  }
228
+ nextPagePagination(length, pageIndex, requestContext) {
229
+ if (requestContext === undefined) {
230
+ requestContext = new PageLoadRequestContext(this.activeFilter, this._pagination);
231
+ requestContext.pagination.size = length;
232
+ requestContext.pagination.number = pageIndex;
233
+ }
234
+ if (this.isLoadingRelevantFilter(requestContext) || this._endOfData) {
235
+ return;
236
+ }
237
+ this._requestedPage$.next(requestContext);
238
+ }
225
239
  isLoadingRelevantFilter(requestContext) {
226
240
  return requestContext === undefined || (this._loading$.isActiveWithFilter(requestContext.filter) && !requestContext.force);
227
241
  }
@@ -291,4 +305,4 @@ TaskViewService.ctorParameters = () => [
291
305
  { type: TaskEndpoint, decorators: [{ type: Optional }, { type: Inject, args: [NAE_PREFERRED_TASK_ENDPOINT,] }] },
292
306
  { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [NAE_TASK_VIEW_CONFIGURATION,] }] }
293
307
  ];
294
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay12aWV3LnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AbmV0Z3JpZi9jb21wb25lbnRzLWNvcmUvIiwic291cmNlcyI6WyJsaWIvdmlldy90YXNrLXZpZXcvc2VydmljZS90YXNrLXZpZXcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsTUFBTSxFQUFFLFVBQVUsRUFBYSxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdEUsT0FBTyxFQUFDLGVBQWUsRUFBYyxFQUFFLEVBQUUsYUFBYSxFQUFFLE9BQU8sRUFBZ0IsS0FBSyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBRWxHLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLDBEQUEwRCxDQUFDO0FBQzdGLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUNoRSxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sK0NBQStDLENBQUM7QUFDOUUsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDckQsT0FBTyxFQUFDLFVBQVUsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEcsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBR2hELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSwrQ0FBK0MsQ0FBQztBQUM1RSxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFFdEUsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sZ0RBQWdELENBQUM7QUFDckYsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBRXJELE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLHlDQUF5QyxDQUFDO0FBQ3BGLE9BQU8sRUFBQyxzQkFBc0Is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U0FBQywyQkFBMkI7NENBQzlDLFFBQVEsWUFBSSxNQUFNLFNBQUMsMkJBQTJCOzs7WUEvQjlELFVBQVU7OztZQTdCSCxtQkFBbUI7WUFDbkIsV0FBVztZQUNYLGVBQWU7WUFDZixnQkFBZ0I7WUFLaEIsYUFBYTtZQUNiLGFBQWE7WUFFYixxQkFBcUI7WUFTckIsMEJBQTBCO1lBUjFCLFlBQVksdUJBK0NILFFBQVEsWUFBSSxNQUFNLFNBQUMsMkJBQTJCOzRDQUM5QyxRQUFRLFlBQUksTUFBTSxTQUFDLDJCQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0LCBJbmplY3RhYmxlLCBPbkRlc3Ryb3ksIE9wdGlvbmFsfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBvZiwgUmVwbGF5U3ViamVjdCwgU3ViamVjdCwgU3Vic2NyaXB0aW9uLCB0aW1lcn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1Rhc2tQYW5lbERhdGF9IGZyb20gJy4uLy4uLy4uL3BhbmVsL3Rhc2stcGFuZWwtbGlzdC90YXNrLXBhbmVsLWRhdGEvdGFzay1wYW5lbC1kYXRhJztcbmltcG9ydCB7VGFza1Jlc291cmNlU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vcmVzb3VyY2VzL2VuZ2luZS1lbmRwb2ludC90YXNrLXJlc291cmNlLnNlcnZpY2UnO1xuaW1wb3J0IHtVc2VyU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vdXNlci9zZXJ2aWNlcy91c2VyLnNlcnZpY2UnO1xuaW1wb3J0IHtTbmFja0JhclNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NuYWNrLWJhci9zZXJ2aWNlcy9zbmFjay1iYXIuc2VydmljZSc7XG5pbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtjYXRjaEVycm9yLCBjb25jYXRNYXAsIGZpbHRlciwgbWFwLCBtZXJnZU1hcCwgc2Nhbiwgc3dpdGNoTWFwLCB0YWtlLCB0YXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7SHR0cFBhcmFtc30gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtQYWdpbmF0aW9ufSBmcm9tICcuLi8uLi8uLi9yZXNvdXJjZXMvaW50ZXJmYWNlL3BhZ2luYXRpb24nO1xuaW1wb3J0IHtUYXNrfSBmcm9tICcuLi8uLi8uLi9yZXNvdXJjZXMvaW50ZXJmYWNlL3Rhc2snO1xuaW1wb3J0IHtTZWFyY2hTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZWFyY2gvc2VhcmNoLXNlcnZpY2Uvc2VhcmNoLnNlcnZpY2UnO1xuaW1wb3J0IHtMb2dnZXJTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9sb2dnZXIvc2VydmljZXMvbG9nZ2VyLnNlcnZpY2UnO1xuaW1wb3J0IHtMaXN0UmFuZ2V9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2xsZWN0aW9ucyc7XG5pbXBvcnQge1VzZXJDb21wYXJhdG9yU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vdXNlci9zZXJ2aWNlcy91c2VyLWNvbXBhcmF0b3Iuc2VydmljZSc7XG5pbXBvcnQge1Rhc2tFbmRwb2ludH0gZnJvbSAnLi4vbW9kZWxzL3Rhc2stZW5kcG9pbnQnO1xuaW1wb3J0IHtQYWdlfSBmcm9tICcuLi8uLi8uLi9yZXNvdXJjZXMvaW50ZXJmYWNlL3BhZ2UnO1xuaW1wb3J0IHtOQUVfUFJFRkVSUkVEX1RBU0tfRU5EUE9JTlR9IGZyb20gJy4uL21vZGVscy9pbmplY3Rpb24tdG9rZW4tdGFzay1lbmRwb2ludCc7XG5pbXBvcnQge1BhZ2VMb2FkUmVxdWVzdENvbnRleHR9IGZyb20gJy4uLy4uL2Fic3RyYWN0L3BhZ2UtbG9hZC1yZXF1ZXN0LWNvbnRleHQnO1xuaW1wb3J0IHtGaWx0ZXJ9IGZyb20gJy4uLy4uLy4uL2ZpbHRlci9tb2RlbHMvZmlsdGVyJztcbmltcG9ydCB7VGFza1BhZ2VMb2FkUmVxdWVzdFJlc3VsdH0gZnJvbSAnLi4vbW9kZWxzL3Rhc2stcGFnZS1sb2FkLXJlcXVlc3QtcmVzdWx0JztcbmltcG9ydCB7TG9hZGluZ1dpdGhGaWx0ZXJFbWl0dGVyfSBmcm9tICcuLi8uLi8uLi91dGlsaXR5L2xvYWRpbmctd2l0aC1maWx0ZXItZW1pdHRlcic7XG5pbXBvcnQge2FycmF5VG9PYnNlcnZhYmxlfSBmcm9tICcuLi8uLi8uLi91dGlsaXR5L2FycmF5LXRvLW9ic2VydmFibGUnO1xuaW1wb3J0IHtTZWFyY2hJbmRleFJlc29sdmVyU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VhcmNoL3NlYXJjaC1rZXl3b3JkLXJlc29sdmVyLXNlcnZpY2Uvc2VhcmNoLWluZGV4LXJlc29sdmVyLnNlcnZpY2UnO1xuaW1wb3J0IHtTb3J0YWJsZVZpZXd9IGZyb20gJy4uLy4uL2Fic3RyYWN0L3NvcnRhYmxlLXZpZXcnO1xuaW1wb3J0IHtOQUVfVEFTS19WSUVXX0NPTkZJR1VSQVRJT059IGZyb20gJy4uL21vZGVscy90YXNrLXZpZXctY29uZmlndXJhdGlvbi1pbmplY3Rpb24tdG9rZW4nO1xuaW1wb3J0IHtUYXNrVmlld0NvbmZpZ3VyYXRpb259IGZyb20gJy4uL21vZGVscy90YXNrLXZpZXctY29uZmlndXJhdGlvbic7XG5pbXBvcnQge0NoYW5nZWRGaWVsZHNNYXB9IGZyb20gJy4uLy4uLy4uL2V2ZW50L3NlcnZpY2VzL2ludGVyZmFjZXMvY2hhbmdlZC1maWVsZHMtbWFwJztcbmltcG9ydCB7UGFnaW5hdGlvblBhcmFtc30gZnJvbSAnLi4vLi4vLi4vdXRpbGl0eS9wYWdpbmF0aW9uL3BhZ2luYXRpb24tcGFyYW1zJztcbmltcG9ydCB7Y3JlYXRlU29ydFBhcmFtLCBQYWdpbmF0aW9uU29ydH0gZnJvbSAnLi4vLi4vLi4vdXRpbGl0eS9wYWdpbmF0aW9uL3BhZ2luYXRpb24tc29ydCc7XG5cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFRhc2tWaWV3U2VydmljZSBleHRlbmRzIFNvcnRhYmxlVmlldyBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG5cbiAgICBwcm90ZWN0ZWQgX3Rhc2tzJDogT2JzZXJ2YWJsZTxBcnJheTxUYXNrUGFuZWxEYXRhPj47XG4gICAgcHJvdGVjdGVkIF9jaGFuZ2VkRmllbGRzJDogU3ViamVjdDxDaGFuZ2VkRmllbGRzTWFwPjtcbiAgICBwcm90ZWN0ZWQgX3JlcXVlc3RlZFBhZ2UkOiBCZWhhdmlvclN1YmplY3Q8UGFnZUxvYWRSZXF1ZXN0Q29udGV4dD47XG4gICAgcHJvdGVjdGVkIF9sb2FkaW5nJDogTG9hZGluZ1dpdGhGaWx0ZXJFbWl0dGVyO1xuICAgIHByb3RlY3RlZCBfZW5kT2ZEYXRhOiBib29sZWFuO1xuICAgIHByb3RlY3RlZCBfcGFnaW5hdGlvbjogUGFnaW5hdGlvbjtcbiAgICBwcm90ZWN0ZWQgX2luaXRpYWxseU9wZW5PbmVUYXNrOiBib29sZWFuO1xuICAgIHByb3RlY3RlZCBfY2xvc2VUYXNrVGFiT25Ob1Rhc2tzOiBib29sZWFuO1xuICAgIHByb3RlY3RlZCBfcGFuZWxVcGRhdGUkOiBCZWhhdmlvclN1YmplY3Q8QXJyYXk8VGFza1BhbmVsRGF0YT4+O1xuICAgIHByb3RlY3RlZCBfY2xvc2VUYWIkOiBSZXBsYXlTdWJqZWN0PHZvaWQ+O1xuICAgIHByb3RlY3RlZCBfc3ViSW5pdGlhbGx5T3BlbjogU3Vic2NyaXB0aW9uO1xuICAgIHByb3RlY3RlZCBfc3ViQ2xvc2VUYXNrOiBTdWJzY3JpcHRpb247XG4gICAgcHJvdGVjdGVkIF9zdWJTZWFyY2g6IFN1YnNjcmlwdGlvbjtcblxuICAgIC8vIFNlcmlhbGl6aW5nIGFzc2lnbiBhZnRlciBjYW5jZWxcbiAgICBwcm90ZWN0ZWQgX2FsbG93TXVsdGlPcGVuOiBib29sZWFuO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBfaW5pdGlhbGl6aW5nOiBib29sZWFuID0gdHJ1ZTtcblxuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBfdGFza1NlcnZpY2U6IFRhc2tSZXNvdXJjZVNlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSBfdXNlclNlcnZpY2U6IFVzZXJTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHByaXZhdGUgX3NuYWNrQmFyU2VydmljZTogU25hY2tCYXJTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHByaXZhdGUgX3RyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX3NlYXJjaFNlcnZpY2U6IFNlYXJjaFNlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSBfbG9nOiBMb2dnZXJTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHByaXZhdGUgX3VzZXJDb21wYXJhdG9yOiBVc2VyQ29tcGFyYXRvclNlcnZpY2UsXG4gICAgICAgICAgICAgICAgcmVzb2x2ZXI6IFNlYXJjaEluZGV4UmVzb2x2ZXJTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoTkFFX1BSRUZFUlJFRF9UQVNLX0VORFBPSU5UKSBwcm90ZWN0ZWQgcmVhZG9ubHkgX3ByZWZlcnJlZEVuZHBvaW50OiBUYXNrRW5kcG9pbnQgPSBudWxsLFxuICAgICAgICAgICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoTkFFX1RBU0tfVklFV19DT05GSUdVUkFUSU9OKSB0YXNrVmlld0NvbmZpZzogVGFza1ZpZXdDb25maWd1cmF0aW9uID0gbnVsbCkge1xuICAgICAgICBzdXBlcihyZXNvbHZlcik7XG4gICAgICAgIHRoaXMuX3Rhc2tzJCA9IG5ldyBTdWJqZWN0PEFycmF5PFRhc2tQYW5lbERhdGE+PigpO1xuICAgICAgICB0aGlzLl9sb2FkaW5nJCA9IG5ldyBMb2FkaW5nV2l0aEZpbHRlckVtaXR0ZXIoKTtcbiAgICAgICAgdGhpcy5fY2hhbmdlZEZpZWxkcyQgPSBuZXcgU3ViamVjdDxDaGFuZ2VkRmllbGRzTWFwPigpO1xuICAgICAgICB0aGlzLl9hbGxvd011bHRpT3BlbiA9IHRydWU7XG4gICAgICAgIHRoaXMuX2VuZE9mRGF0YSA9IGZhbHNlO1xuICAgICAgICB0aGlzLl9wYWdpbmF0aW9uID0ge1xuICAgICAgICAgICAgc2l6ZTogNTAsXG4gICAgICAgICAgICB0b3RhbEVsZW1lbnRzOiB1bmRlZmluZWQsXG4gICAgICAgICAgICB0b3RhbFBhZ2VzOiB1bmRlZmluZWQsXG4gICAgICAgICAgICBudW1iZXI6IC0xXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuX3JlcXVlc3RlZFBhZ2UkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxQYWdlTG9hZFJlcXVlc3RDb250ZXh0PihcbiAgICAgICAgICAgIG5ldyBQYWdlTG9hZFJlcXVlc3RDb250ZXh0KHRoaXMuYWN0aXZlRmlsdGVyLCBPYmplY3QuYXNzaWduKHt9LCB0aGlzLl9wYWdpbmF0aW9uLCB7bnVtYmVyOiAwfSkpXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuX3BhbmVsVXBkYXRlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QXJyYXk8VGFza1BhbmVsRGF0YT4+KFtdKTtcbiAgICAgICAgdGhpcy5fY2xvc2VUYWIkID0gbmV3IFJlcGxheVN1YmplY3Q8dm9pZD4oMSk7XG4gICAgICAgIHRoaXMuX3ByZWZlcnJlZEVuZHBvaW50ID0gdGFza1ZpZXdDb25maWc/LnByZWZlcnJlZEVuZHBvaW50ID8/ICh0aGlzLl9wcmVmZXJyZWRFbmRwb2ludCA/PyBUYXNrRW5kcG9pbnQuTU9OR08pO1xuXG4gICAgICAgIHRoaXMuX2luaXRpYWxpemluZyA9IGZhbHNlO1xuXG4gICAgICAgIHRoaXMuX3N1YlNlYXJjaCA9IHRoaXMuX3NlYXJjaFNlcnZpY2UuYWN0aXZlRmlsdGVyJC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5yZWxvYWQoKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3QgdGFza3NNYXAkID0gdGhpcy5fcmVxdWVzdGVkUGFnZSQucGlwZShcbiAgICAgICAgICAgIG1lcmdlTWFwKHAgPT4gdGhpcy5sb2FkUGFnZShwKSksXG4gICAgICAgICAgICBtYXAocGFnZUxvYWRSZXN1bHQgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChwYWdlTG9hZFJlc3VsdC5yZXF1ZXN0Q29udGV4dCAmJiBwYWdlTG9hZFJlc3VsdC5yZXF1ZXN0Q29udGV4dC5jbGVhckxvYWRlZCkge1xuICAgICAgICAgICAgICAgICAgICAvLyB3ZSBzZXQgYW4gZW1wdHkgdmFsdWUgdG8gdGhlIHZpcnR1YWwgc2Nyb2xsIGFuZCB0aGVuIHJlcGxhY2UgaXQgYnkgdGhlIHJlYWwgdmFsdWUgZm9yY2luZyBpdCB0byByZWRyYXcgaXRzIGNvbnRlbnRcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0cyA9IFt7dGFza3M6IHt9LCByZXF1ZXN0Q29udGV4dDogbnVsbH0sIHBhZ2VMb2FkUmVzdWx0XTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGFycmF5VG9PYnNlcnZhYmxlKHJlc3VsdHMpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBvZihwYWdlTG9hZFJlc3VsdCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBjb25jYXRNYXAobyA9PiBvKSxcbiAgICAgICAgICAgIHNjYW4oKGFjYywgcGFnZUxvYWRSZXN1bHQpID0+IHtcbiAgICAgICAgICAgICAgICBsZXQgcmVzdWx0OiB7IFtrOiBzdHJpbmddOiBUYXNrUGFuZWxEYXRhIH07XG4gICAgICAgICAgICAgICAgaWYgKHBhZ2VMb2FkUmVzdWx0LnJlcXVlc3RDb250ZXh0ID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBwYWdlTG9hZFJlc3VsdC50YXNrcztcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAocGFnZUxvYWRSZXN1bHQucmVxdWVzdENvbnRleHQucmVsb2FkQ3VycmVudFRhc2tQYWdlKSB7XG4gICAgICAgICAgICAgICAgICAgIE9iamVjdC5rZXlzKGFjYykuZm9yRWFjaCh0YXNrSWQgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFwYWdlTG9hZFJlc3VsdC50YXNrc1t0YXNrSWRdKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVsZXRlIGFjY1t0YXNrSWRdO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWdlTG9hZFJlc3VsdC50YXNrc1t0YXNrSWRdLnRhc2suZGF0YUdyb3VwcyA9IGFjY1t0YXNrSWRdLnRhc2suZGF0YUdyb3VwcztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWdlTG9hZFJlc3VsdC50YXNrc1t0YXNrSWRdLmluaXRpYWxseUV4cGFuZGVkID0gYWNjW3Rhc2tJZF0uaW5pdGlhbGx5RXhwYW5kZWQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51cGRhdGVUYXNrKGFjY1t0YXNrSWRdLnRhc2ssIHBhZ2VMb2FkUmVzdWx0LnRhc2tzW3Rhc2tJZF0udGFzayk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ibG9ja1Rhc2tGaWVsZHMoYWNjW3Rhc2tJZF0udGFzaywgIShhY2NbdGFza0lkXS50YXNrLnVzZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgdGhpcy5fdXNlckNvbXBhcmF0b3IuY29tcGFyZVVzZXJzKGFjY1t0YXNrSWRdLnRhc2sudXNlcikpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWxldGUgcGFnZUxvYWRSZXN1bHQudGFza3NbdGFza0lkXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IE9iamVjdC5hc3NpZ24oYWNjLCBwYWdlTG9hZFJlc3VsdC50YXNrcyk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gey4uLmFjYywgLi4ucGFnZUxvYWRSZXN1bHQudGFza3N9O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5fcGFnaW5hdGlvbiwgcGFnZUxvYWRSZXN1bHQucmVxdWVzdENvbnRleHQucGFnaW5hdGlvbik7XG4gICAgICAgICAgICAgICAgaWYgKHBhZ2VMb2FkUmVzdWx0LnJlcXVlc3RDb250ZXh0ICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2xvYWRpbmckLm9mZihwYWdlTG9hZFJlc3VsdC5yZXF1ZXN0Q29udGV4dC5maWx0ZXIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgICAgfSwge30pXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuX3Rhc2tzJCA9IHRhc2tzTWFwJC5waXBlKFxuICAgICAgICAgICAgbWFwKHYgPT4gT2JqZWN0LnZhbHVlcyh2KSBhcyBBcnJheTxUYXNrUGFuZWxEYXRhPiksXG4gICAgICAgICAgICBtYXAodGFza0FycmF5ID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodGFza0FycmF5Lmxlbmd0aCA9PT0gMSAmJiB0aGlzLl9pbml0aWFsbHlPcGVuT25lVGFzaykge1xuICAgICAgICAgICAgICAgICAgICB0YXNrQXJyYXlbMF0udGFzay5maW5pc2hEYXRlID09PSB1bmRlZmluZWQgP1xuICAgICAgICAgICAgICAgICAgICAgICAgdGFza0FycmF5WzBdLmluaXRpYWxseUV4cGFuZGVkID0gdHJ1ZSA6XG4gICAgICAgICAgICAgICAgICAgICAgICB0YXNrQXJyYXlbMF0uaW5pdGlhbGx5RXhwYW5kZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRhc2tBcnJheTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgdGFwKHYgPT4gdGhpcy5fcGFuZWxVcGRhdGUkLm5leHQodikpKTtcblxuICAgICAgICB0aGlzLl9zdWJJbml0aWFsbHlPcGVuID0gKHRhc2tWaWV3Q29uZmlnPy5pbml0aWFsbHlPcGVuT25lVGFzayA/PyBvZih0cnVlKSkuc3Vic2NyaWJlKGJvb2wgPT4ge1xuICAgICAgICAgICAgdGhpcy5faW5pdGlhbGx5T3Blbk9uZVRhc2sgPSBib29sO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLl9zdWJDbG9zZVRhc2sgPSAodGFza1ZpZXdDb25maWc/LmNsb3NlVGFza1RhYk9uTm9UYXNrcyA/PyBvZih0cnVlKSkuc3Vic2NyaWJlKGJvb2wgPT4ge1xuICAgICAgICAgICAgdGhpcy5fY2xvc2VUYXNrVGFiT25Ob1Rhc2tzID0gYm9vbDtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgICAgIHRoaXMuX2NoYW5nZWRGaWVsZHMkLmNvbXBsZXRlKCk7XG4gICAgICAgIHRoaXMuX3JlcXVlc3RlZFBhZ2UkLmNvbXBsZXRlKCk7XG4gICAgICAgIHRoaXMuX3BhbmVsVXBkYXRlJC5jb21wbGV0ZSgpO1xuICAgICAgICB0aGlzLl9jbG9zZVRhYiQuY29tcGxldGUoKTtcbiAgICAgICAgdGhpcy5fc3ViSW5pdGlhbGx5T3Blbi51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLl9zdWJDbG9zZVRhc2sudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgdGhpcy5fc3ViU2VhcmNoLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCB0YXNrcyQoKTogT2JzZXJ2YWJsZTxBcnJheTxUYXNrUGFuZWxEYXRhPj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fdGFza3MkO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgY2hhbmdlZEZpZWxkcyQoKTogU3ViamVjdDxDaGFuZ2VkRmllbGRzTWFwPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jaGFuZ2VkRmllbGRzJDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGxvYWRpbmckKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fbG9hZGluZyQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBsb2FkaW5nKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fbG9hZGluZyQuaXNBY3RpdmU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBwYW5lbFVwZGF0ZSgpOiBPYnNlcnZhYmxlPEFycmF5PFRhc2tQYW5lbERhdGE+PiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9wYW5lbFVwZGF0ZSQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBjbG9zZVRhYigpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Nsb3NlVGFiJC5hc09ic2VydmFibGUoKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IGFjdGl2ZUZpbHRlcigpOiBGaWx0ZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5fc2VhcmNoU2VydmljZS5hY3RpdmVGaWx0ZXI7XG4gICAgfVxuXG4gICAgcHVibGljIHNldCBhbGxvd011bHRpT3Blbihib29sOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX2FsbG93TXVsdGlPcGVuID0gYm9vbDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGFsbG93TXVsdGlPcGVuKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fYWxsb3dNdWx0aU9wZW47XG4gICAgfVxuXG4gICAgcHVibGljIGxvYWRQYWdlKHJlcXVlc3RDb250ZXh0OiBQYWdlTG9hZFJlcXVlc3RDb250ZXh0KTogT2JzZXJ2YWJsZTxUYXNrUGFnZUxvYWRSZXF1ZXN0UmVzdWx0PiB7XG4gICAgICAgIGlmIChyZXF1ZXN0Q29udGV4dCA9PT0gbnVsbCB8fCByZXF1ZXN0Q29udGV4dC5wYWdlTnVtYmVyIDwgMCkge1xuICAgICAgICAgICAgcmV0dXJuIG9mKHt0YXNrczoge30sIHJlcXVlc3RDb250ZXh0fSk7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IHBhcmFtczogSHR0cFBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCk7XG4gICAgICAgIHBhcmFtcyA9IHRoaXMuYWRkU29ydFBhcmFtcyhwYXJhbXMpO1xuICAgICAgICBwYXJhbXMgPSB0aGlzLmFkZFBhZ2VQYXJhbXMocGFyYW1zLCByZXF1ZXN0Q29udGV4dC5wYWdpbmF0aW9uKTtcbiAgICAgICAgdGhpcy5fbG9hZGluZyQub24ocmVxdWVzdENvbnRleHQuZmlsdGVyKTtcblxuICAgICAgICBsZXQgcmVxdWVzdDogT2JzZXJ2YWJsZTxQYWdlPFRhc2s+PjtcbiAgICAgICAgaWYgKHJlcXVlc3RDb250ZXh0LmZpbHRlci5ib2R5Q29udGFpbnNRdWVyeSgpIHx8IHRoaXMuX3ByZWZlcnJlZEVuZHBvaW50ID09PSBUYXNrRW5kcG9pbnQuRUxBU1RJQykge1xuICAgICAgICAgICAgcmVxdWVzdCA9IHRpbWVyKDIwMCkucGlwZShcbiAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5fdGFza1NlcnZpY2Uuc2VhcmNoVGFzayhyZXF1ZXN0Q29udGV4dC5maWx0ZXIsIHBhcmFtcykucGlwZSh0YWtlKDEpKSlcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXF1ZXN0ID0gdGhpcy5fdGFza1NlcnZpY2UuZ2V0VGFza3MocmVxdWVzdENvbnRleHQuZmlsdGVyLCBwYXJhbXMpLnBpcGUodGFrZSgxKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlcXVlc3QucGlwZShcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoZXJyID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9sb2cuZXJyb3IoJ0xvYWRpbmcgdGFza3MgaGFzIGZhaWxlZCEnLCBlcnIpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2xvYWRpbmckLm9mZihyZXF1ZXN0Q29udGV4dC5maWx0ZXIpO1xuICAgICAgICAgICAgICAgIHJldHVybiBvZih7Y29udGVudDogW10sIHBhZ2luYXRpb246IHsuLi50aGlzLl9wYWdpbmF0aW9ufX0pO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBmaWx0ZXIoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHIgPSByZXF1ZXN0Q29udGV4dC5maWx0ZXIgPT09IHRoaXMuX3NlYXJjaFNlcnZpY2UuYWN0aXZlRmlsdGVyO1xuICAgICAgICAgICAgICAgIGlmICghcikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9sb2FkaW5nJC5vZmYocmVxdWVzdENvbnRleHQuZmlsdGVyKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fbG9nLmRlYnVnKCdSZWNlaXZlZCB0YXNrcyBwYWdlIGlzIG5vIGxvbmdlciByZWxldmFudCBzaW5jZSB0aGUgYWN0aXZlIGZpbHRlciBoYXMgY2hhbmdlZCBiZWZvcmUgaXQgY291bGQgYXJyaXZlLidcbiAgICAgICAgICAgICAgICAgICAgICAgICsgJyBEaXNjYXJkaW5nLi4uJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiByO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICB0YXAodCA9PiB7XG4gICAgICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihyZXF1ZXN0Q29udGV4dC5wYWdpbmF0aW9uLCB0LnBhZ2luYXRpb24pO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICB0YXAodCA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX3BhZ2luYXRpb24udG90YWxFbGVtZW50cyAmJiB0aGlzLl9wYWdpbmF0aW9uLnRvdGFsRWxlbWVudHMgPiAwXG4gICAgICAgICAgICAgICAgICAgICYmIHQucGFnaW5hdGlvbi50b3RhbEVsZW1lbnRzID09PSAwICYmICFBcnJheS5pc0FycmF5KHQuY29udGVudCkgJiYgdGhpcy5fY2xvc2VUYXNrVGFiT25Ob1Rhc2tzKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2Nsb3NlVGFiJC5uZXh0KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICB0YXAodCA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW5kT2ZEYXRhID0gIUFycmF5LmlzQXJyYXkodC5jb250ZW50KVxuICAgICAgICAgICAgICAgICAgICB8fCB0LmNvbnRlbnQubGVuZ3RoID09PSAwXG4gICAgICAgICAgICAgICAgICAgIHx8IHQucGFnaW5hdGlvbi5udW1iZXIgPT09IHQucGFnaW5hdGlvbi50b3RhbFBhZ2VzO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBtYXAodGFza3MgPT4gQXJyYXkuaXNBcnJheSh0YXNrcy5jb250ZW50KSA/IHRhc2tzIDogey4uLnRhc2tzLCBjb250ZW50OiBbXX0pLFxuICAgICAgICAgICAgbWFwKHRhc2tzID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGFza3MuY29udGVudC5yZWR1Y2UoKGFjYywgY3VycikgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmJsb2NrVGFza0ZpZWxkcyhjdXJyLCAhKGN1cnIudXNlciAmJiB0aGlzLl91c2VyQ29tcGFyYXRvci5jb21wYXJlVXNlcnMoY3Vyci51c2VyKSkpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgLi4uYWNjLCBbY3Vyci5zdHJpbmdJZF06IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXNrOiBjdXJyLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYW5nZWRGaWVsZHM6IHRoaXMuX2NoYW5nZWRGaWVsZHMkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluaXRpYWxseUV4cGFuZGVkOiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH0sIHt9KTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgbWFwKHRhc2tzID0+ICh7dGFza3MsIHJlcXVlc3RDb250ZXh0fSkpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVUYXNrKG9sZDogVGFzaywgbmV3dzogVGFzaykge1xuICAgICAgICBPYmplY3Qua2V5cyhvbGQpLmZvckVhY2goa2V5ID0+IHtcbiAgICAgICAgICAgIGlmICghbmV3dy5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgICAgICAgICAgZGVsZXRlIG9sZFtrZXldO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LmtleXMobmV3dykuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgICAgICAgaWYgKG5ld3dba2V5XSAhPT0gdW5kZWZpbmVkICYmIG5ld3dba2V5XSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIG9sZFtrZXldID0gbmV3d1trZXldO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5ibG9ja1Rhc2tGaWVsZHMob2xkLCAhKG9sZC51c2VyICYmIHRoaXMuX3VzZXJDb21wYXJhdG9yLmNvbXBhcmVVc2VycyhvbGQudXNlcikpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGJsb2NrVGFza0ZpZWxkcyh0YXNrOiBUYXNrLCBibG9jazogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICBpZiAoIXRhc2suZGF0YUdyb3Vwcykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRhc2suZGF0YUdyb3Vwcy5mb3JFYWNoKGcgPT4gZy5maWVsZHMuZm9yRWFjaChmID0+IGYuYmxvY2sgPSBibG9jaykpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZXh0UGFnZShyZW5kZXJlZFJhbmdlOiBMaXN0UmFuZ2UsIHRvdGFsTG9hZGVkOiBudW1iZXIsIHJlcXVlc3RDb250ZXh0PzogUGFnZUxvYWRSZXF1ZXN0Q29udGV4dCk6IHZvaWQge1xuICAgICAgICBpZiAocmVxdWVzdENvbnRleHQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmVxdWVzdENvbnRleHQgPSBuZXcgUGFnZUxvYWRSZXF1ZXN0Q29udGV4dCh0aGlzLmFjdGl2ZUZpbHRlciwgdGhpcy5fcGFnaW5hdGlvbik7XG4gICAgICAgICAgICByZXF1ZXN0Q29udGV4dC5wYWdpbmF0aW9uLm51bWJlciArPSAxO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuaXNMb2FkaW5nUmVsZXZhbnRGaWx0ZXIocmVxdWVzdENvbnRleHQpIHx8IHRoaXMuX2VuZE9mRGF0YSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHJlbmRlcmVkUmFuZ2UuZW5kID09PSB0b3RhbExvYWRlZCkge1xuICAgICAgICAgICAgdGhpcy5fcmVxdWVzdGVkUGFnZSQubmV4dChyZXF1ZXN0Q29udGV4dCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGlzTG9hZGluZ1JlbGV2YW50RmlsdGVyKHJlcXVlc3RDb250ZXh0PzogUGFnZUxvYWRSZXF1ZXN0Q29udGV4dCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gcmVxdWVzdENvbnRleHQgPT09IHVuZGVmaW5lZCB8fCAodGhpcy5fbG9hZGluZyQuaXNBY3RpdmVXaXRoRmlsdGVyKHJlcXVlc3RDb250ZXh0LmZpbHRlcikgJiYgIXJlcXVlc3RDb250ZXh0LmZvcmNlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVsb2FkKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX3Rhc2tzJCB8fCAhdGhpcy5fcGFnaW5hdGlvbikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fZW5kT2ZEYXRhID0gZmFsc2U7XG4gICAgICAgIGNvbnN0IHJlcXVlc3RDb250ZXh0ID0gbmV3IFBhZ2VMb2FkUmVxdWVzdENvbnRleHQodGhpcy5hY3RpdmVGaWx0ZXIsIHRoaXMuX3BhZ2luYXRpb24sIHRydWUpO1xuICAgICAgICByZXF1ZXN0Q29udGV4dC5wYWdpbmF0aW9uLm51bWJlciA9IDA7XG4gICAgICAgIGNvbnN0IHJhbmdlID0ge1xuICAgICAgICAgICAgc3RhcnQ6IC0xLFxuICAgICAgICAgICAgZW5kOiAwXG4gICAgICAgIH07XG5cbiAgICAgICAgdGhpcy5uZXh0UGFnZShyYW5nZSwgMCwgcmVxdWVzdENvbnRleHQpO1xuICAgIH1cblxuICAgIHB1YmxpYyByZWxvYWRDdXJyZW50UGFnZShmb3JjZT86IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLl90YXNrcyQgfHwgIXRoaXMuX3BhZ2luYXRpb24pIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2VuZE9mRGF0YSA9IGZhbHNlO1xuICAgICAgICBjb25zdCByZXF1ZXN0Q29udGV4dCA9IG5ldyBQYWdlTG9hZFJlcXVlc3RDb250ZXh0KHRoaXMuYWN0aXZlRmlsdGVyLCB0aGlzLl9wYWdpbmF0aW9uLCBmYWxzZSwgdHJ1ZSwgZm9yY2UpO1xuICAgICAgICByZXF1ZXN0Q29udGV4dC5wYWdpbmF0aW9uLm51bWJlciA9IDA7IC8vIFRPRE8gW0JVR10gLSBSZWxvYWRpbmcgb25seSBmaXJzdCBwYWdlXG4gICAgICAgIGNvbnN0IHJhbmdlID0ge1xuICAgICAgICAgICAgc3RhcnQ6IC0xLFxuICAgICAgICAgICAgZW5kOiAwXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMubmV4dFBhZ2UocmFuZ2UsIDAsIHJlcXVlc3RDb250ZXh0KTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0TWV0YUZpZWxkU29ydElkKCk6IHN0cmluZyB7XG4gICAgICAgIC8vIFRPRE8gVGFza3Mgd2VyZSBub3Qgc29ydGFibGUgb24gb2xkIGZyb250ZW5kIHNvcnRpbmcgbWlnaHQgcmVxdWlyZSBlbGFzdGljIG1hcHBpbmcgY2hhbmdlcyBvbiBiYWNrZW5kXG4gICAgICAgIHJldHVybiB0aGlzLl9sYXN0SGVhZGVyU2VhcmNoU3RhdGUuZmllbGRJZGVudGlmaWVyO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXREZWZhdWx0U29ydFBhcmFtKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBjcmVhdGVTb3J0UGFyYW0oJ3ByaW9yaXR5JywgUGFnaW5hdGlvblNvcnQuREVTQ0VORElORyk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGFkZFBhZ2VQYXJhbXMocGFyYW1zOiBIdHRwUGFyYW1zLCBwYWdpbmF0aW9uOiBQYWdpbmF0aW9uKTogSHR0cFBhcmFtcyB7XG4gICAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoUGFnaW5hdGlvblBhcmFtcy5QQUdFX1NJWkUsIGAke3BhZ2luYXRpb24uc2l6ZX1gKTtcbiAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldChQYWdpbmF0aW9uUGFyYW1zLlBBR0VfTlVNQkVSLCBgJHtwYWdpbmF0aW9uLm51bWJlcn1gKTtcbiAgICAgICAgcmV0dXJuIHBhcmFtcztcbiAgICB9XG59XG4iXX0=
308
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay12aWV3LnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AbmV0Z3JpZi9jb21wb25lbnRzLWNvcmUvIiwic291cmNlcyI6WyJsaWIvdmlldy90YXNrLXZpZXcvc2VydmljZS90YXNrLXZpZXcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsTUFBTSxFQUFFLFVBQVUsRUFBYSxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdEUsT0FBTyxFQUFDLGVBQWUsRUFBYyxFQUFFLEVBQUUsYUFBYSxFQUFFLE9BQU8sRUFBZ0IsS0FBSyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBRWxHLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLDBEQUEwRCxDQUFDO0FBQzdGLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUNoRSxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sK0NBQStDLENBQUM7QUFDOUUsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDckQsT0FBTyxFQUFDLFVBQVUsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEcsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBR2hELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSwrQ0FBK0MsQ0FBQztBQUM1RSxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFFdEUsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sZ0RBQWdELENBQUM7QUFDckYsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBRXJELE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLHlDQUF5QyxDQUFDO0FBQ3BGLE9BQU8sRUFBQyxzQkFBc0Is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Q0FBQztJQUVTLG1CQUFtQjtRQUN6QixPQUFPLGVBQWUsQ0FBQyxVQUFVLEVBQUUsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFUyxhQUFhLENBQUMsTUFBa0IsRUFBRSxVQUFzQjtRQUM5RCxNQUFNLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsR0FBRyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUN0RSxNQUFNLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLEVBQUUsR0FBRyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUMxRSxPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDOzs7WUF0VG1DLG1CQUFtQjtZQUNyQixXQUFXO1lBQ1AsZUFBZTtZQUNyQixnQkFBZ0I7WUFDVixhQUFhO1lBQ3pCLGFBQWE7WUFDRixxQkFBcUI7WUFDcEMsMEJBQTBCOzRDQUNuQyxRQUFRLFlBQUksTUFBTSxTQUFDLDJCQUEyQjs0Q0FDOUMsUUFBUSxZQUFJLE1BQU0sU0FBQywyQkFBMkI7OztZQS9COUQsVUFBVTs7O1lBN0JILG1CQUFtQjtZQUNuQixXQUFXO1lBQ1gsZUFBZTtZQUNmLGdCQUFnQjtZQUtoQixhQUFhO1lBQ2IsYUFBYTtZQUViLHFCQUFxQjtZQVNyQiwwQkFBMEI7WUFSMUIsWUFBWSx1QkErQ0gsUUFBUSxZQUFJLE1BQU0sU0FBQywyQkFBMkI7NENBQzlDLFFBQVEsWUFBSSxNQUFNLFNBQUMsMkJBQTJCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3QsIEluamVjdGFibGUsIE9uRGVzdHJveSwgT3B0aW9uYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIG9mLCBSZXBsYXlTdWJqZWN0LCBTdWJqZWN0LCBTdWJzY3JpcHRpb24sIHRpbWVyfSBmcm9tICdyeGpzJztcbmltcG9ydCB7VGFza1BhbmVsRGF0YX0gZnJvbSAnLi4vLi4vLi4vcGFuZWwvdGFzay1wYW5lbC1saXN0L3Rhc2stcGFuZWwtZGF0YS90YXNrLXBhbmVsLWRhdGEnO1xuaW1wb3J0IHtUYXNrUmVzb3VyY2VTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9yZXNvdXJjZXMvZW5naW5lLWVuZHBvaW50L3Rhc2stcmVzb3VyY2Uuc2VydmljZSc7XG5pbXBvcnQge1VzZXJTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi91c2VyL3NlcnZpY2VzL3VzZXIuc2VydmljZSc7XG5pbXBvcnQge1NuYWNrQmFyU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc25hY2stYmFyL3NlcnZpY2VzL3NuYWNrLWJhci5zZXJ2aWNlJztcbmltcG9ydCB7VHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge2NhdGNoRXJyb3IsIGNvbmNhdE1hcCwgZmlsdGVyLCBtYXAsIG1lcmdlTWFwLCBzY2FuLCBzd2l0Y2hNYXAsIHRha2UsIHRhcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtIdHRwUGFyYW1zfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQge1BhZ2luYXRpb259IGZyb20gJy4uLy4uLy4uL3Jlc291cmNlcy9pbnRlcmZhY2UvcGFnaW5hdGlvbic7XG5pbXBvcnQge1Rhc2t9IGZyb20gJy4uLy4uLy4uL3Jlc291cmNlcy9pbnRlcmZhY2UvdGFzayc7XG5pbXBvcnQge1NlYXJjaFNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlYXJjaC9zZWFyY2gtc2VydmljZS9zZWFyY2guc2VydmljZSc7XG5pbXBvcnQge0xvZ2dlclNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL2xvZ2dlci9zZXJ2aWNlcy9sb2dnZXIuc2VydmljZSc7XG5pbXBvcnQge0xpc3RSYW5nZX0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvbGxlY3Rpb25zJztcbmltcG9ydCB7VXNlckNvbXBhcmF0b3JTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi91c2VyL3NlcnZpY2VzL3VzZXItY29tcGFyYXRvci5zZXJ2aWNlJztcbmltcG9ydCB7VGFza0VuZHBvaW50fSBmcm9tICcuLi9tb2RlbHMvdGFzay1lbmRwb2ludCc7XG5pbXBvcnQge1BhZ2V9IGZyb20gJy4uLy4uLy4uL3Jlc291cmNlcy9pbnRlcmZhY2UvcGFnZSc7XG5pbXBvcnQge05BRV9QUkVGRVJSRURfVEFTS19FTkRQT0lOVH0gZnJvbSAnLi4vbW9kZWxzL2luamVjdGlvbi10b2tlbi10YXNrLWVuZHBvaW50JztcbmltcG9ydCB7UGFnZUxvYWRSZXF1ZXN0Q29udGV4dH0gZnJvbSAnLi4vLi4vYWJzdHJhY3QvcGFnZS1sb2FkLXJlcXVlc3QtY29udGV4dCc7XG5pbXBvcnQge0ZpbHRlcn0gZnJvbSAnLi4vLi4vLi4vZmlsdGVyL21vZGVscy9maWx0ZXInO1xuaW1wb3J0IHtUYXNrUGFnZUxvYWRSZXF1ZXN0UmVzdWx0fSBmcm9tICcuLi9tb2RlbHMvdGFzay1wYWdlLWxvYWQtcmVxdWVzdC1yZXN1bHQnO1xuaW1wb3J0IHtMb2FkaW5nV2l0aEZpbHRlckVtaXR0ZXJ9IGZyb20gJy4uLy4uLy4uL3V0aWxpdHkvbG9hZGluZy13aXRoLWZpbHRlci1lbWl0dGVyJztcbmltcG9ydCB7YXJyYXlUb09ic2VydmFibGV9IGZyb20gJy4uLy4uLy4uL3V0aWxpdHkvYXJyYXktdG8tb2JzZXJ2YWJsZSc7XG5pbXBvcnQge1NlYXJjaEluZGV4UmVzb2x2ZXJTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZWFyY2gvc2VhcmNoLWtleXdvcmQtcmVzb2x2ZXItc2VydmljZS9zZWFyY2gtaW5kZXgtcmVzb2x2ZXIuc2VydmljZSc7XG5pbXBvcnQge1NvcnRhYmxlVmlld30gZnJvbSAnLi4vLi4vYWJzdHJhY3Qvc29ydGFibGUtdmlldyc7XG5pbXBvcnQge05BRV9UQVNLX1ZJRVdfQ09ORklHVVJBVElPTn0gZnJvbSAnLi4vbW9kZWxzL3Rhc2stdmlldy1jb25maWd1cmF0aW9uLWluamVjdGlvbi10b2tlbic7XG5pbXBvcnQge1Rhc2tWaWV3Q29uZmlndXJhdGlvbn0gZnJvbSAnLi4vbW9kZWxzL3Rhc2stdmlldy1jb25maWd1cmF0aW9uJztcbmltcG9ydCB7Q2hhbmdlZEZpZWxkc01hcH0gZnJvbSAnLi4vLi4vLi4vZXZlbnQvc2VydmljZXMvaW50ZXJmYWNlcy9jaGFuZ2VkLWZpZWxkcy1tYXAnO1xuaW1wb3J0IHtQYWdpbmF0aW9uUGFyYW1zfSBmcm9tICcuLi8uLi8uLi91dGlsaXR5L3BhZ2luYXRpb24vcGFnaW5hdGlvbi1wYXJhbXMnO1xuaW1wb3J0IHtjcmVhdGVTb3J0UGFyYW0sIFBhZ2luYXRpb25Tb3J0fSBmcm9tICcuLi8uLi8uLi91dGlsaXR5L3BhZ2luYXRpb24vcGFnaW5hdGlvbi1zb3J0JztcblxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgVGFza1ZpZXdTZXJ2aWNlIGV4dGVuZHMgU29ydGFibGVWaWV3IGltcGxlbWVudHMgT25EZXN0cm95IHtcblxuICAgIHByb3RlY3RlZCBfdGFza3MkOiBPYnNlcnZhYmxlPEFycmF5PFRhc2tQYW5lbERhdGE+PjtcbiAgICBwcm90ZWN0ZWQgX2NoYW5nZWRGaWVsZHMkOiBTdWJqZWN0PENoYW5nZWRGaWVsZHNNYXA+O1xuICAgIHByb3RlY3RlZCBfcmVxdWVzdGVkUGFnZSQ6IEJlaGF2aW9yU3ViamVjdDxQYWdlTG9hZFJlcXVlc3RDb250ZXh0PjtcbiAgICBwcm90ZWN0ZWQgX2xvYWRpbmckOiBMb2FkaW5nV2l0aEZpbHRlckVtaXR0ZXI7XG4gICAgcHJvdGVjdGVkIF9lbmRPZkRhdGE6IGJvb2xlYW47XG4gICAgcHJvdGVjdGVkIF9wYWdpbmF0aW9uOiBQYWdpbmF0aW9uO1xuICAgIHByb3RlY3RlZCBfaW5pdGlhbGx5T3Blbk9uZVRhc2s6IGJvb2xlYW47XG4gICAgcHJvdGVjdGVkIF9jbG9zZVRhc2tUYWJPbk5vVGFza3M6IGJvb2xlYW47XG4gICAgcHJvdGVjdGVkIF9wYW5lbFVwZGF0ZSQ6IEJlaGF2aW9yU3ViamVjdDxBcnJheTxUYXNrUGFuZWxEYXRhPj47XG4gICAgcHJvdGVjdGVkIF9jbG9zZVRhYiQ6IFJlcGxheVN1YmplY3Q8dm9pZD47XG4gICAgcHJvdGVjdGVkIF9zdWJJbml0aWFsbHlPcGVuOiBTdWJzY3JpcHRpb247XG4gICAgcHJvdGVjdGVkIF9zdWJDbG9zZVRhc2s6IFN1YnNjcmlwdGlvbjtcbiAgICBwcm90ZWN0ZWQgX3N1YlNlYXJjaDogU3Vic2NyaXB0aW9uO1xuXG4gICAgLy8gU2VyaWFsaXppbmcgYXNzaWduIGFmdGVyIGNhbmNlbFxuICAgIHByb3RlY3RlZCBfYWxsb3dNdWx0aU9wZW46IGJvb2xlYW47XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9pbml0aWFsaXppbmc6IGJvb2xlYW4gPSB0cnVlO1xuXG4gICAgY29uc3RydWN0b3IocHJvdGVjdGVkIF90YXNrU2VydmljZTogVGFza1Jlc291cmNlU2VydmljZSxcbiAgICAgICAgICAgICAgICBwcml2YXRlIF91c2VyU2VydmljZTogVXNlclNlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSBfc25hY2tCYXJTZXJ2aWNlOiBTbmFja0JhclNlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSBfdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfc2VhcmNoU2VydmljZTogU2VhcmNoU2VydmljZSxcbiAgICAgICAgICAgICAgICBwcml2YXRlIF9sb2c6IExvZ2dlclNlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSBfdXNlckNvbXBhcmF0b3I6IFVzZXJDb21wYXJhdG9yU2VydmljZSxcbiAgICAgICAgICAgICAgICByZXNvbHZlcjogU2VhcmNoSW5kZXhSZXNvbHZlclNlcnZpY2UsXG4gICAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChOQUVfUFJFRkVSUkVEX1RBU0tfRU5EUE9JTlQpIHByb3RlY3RlZCByZWFkb25seSBfcHJlZmVycmVkRW5kcG9pbnQ6IFRhc2tFbmRwb2ludCA9IG51bGwsXG4gICAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChOQUVfVEFTS19WSUVXX0NPTkZJR1VSQVRJT04pIHRhc2tWaWV3Q29uZmlnOiBUYXNrVmlld0NvbmZpZ3VyYXRpb24gPSBudWxsKSB7XG4gICAgICAgIHN1cGVyKHJlc29sdmVyKTtcbiAgICAgICAgdGhpcy5fdGFza3MkID0gbmV3IFN1YmplY3Q8QXJyYXk8VGFza1BhbmVsRGF0YT4+KCk7XG4gICAgICAgIHRoaXMuX2xvYWRpbmckID0gbmV3IExvYWRpbmdXaXRoRmlsdGVyRW1pdHRlcigpO1xuICAgICAgICB0aGlzLl9jaGFuZ2VkRmllbGRzJCA9IG5ldyBTdWJqZWN0PENoYW5nZWRGaWVsZHNNYXA+KCk7XG4gICAgICAgIHRoaXMuX2FsbG93TXVsdGlPcGVuID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5fZW5kT2ZEYXRhID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX3BhZ2luYXRpb24gPSB7XG4gICAgICAgICAgICBzaXplOiA1MCxcbiAgICAgICAgICAgIHRvdGFsRWxlbWVudHM6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIHRvdGFsUGFnZXM6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIG51bWJlcjogLTFcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5fcmVxdWVzdGVkUGFnZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFBhZ2VMb2FkUmVxdWVzdENvbnRleHQ+KFxuICAgICAgICAgICAgbmV3IFBhZ2VMb2FkUmVxdWVzdENvbnRleHQodGhpcy5hY3RpdmVGaWx0ZXIsIE9iamVjdC5hc3NpZ24oe30sIHRoaXMuX3BhZ2luYXRpb24sIHtudW1iZXI6IDB9KSlcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5fcGFuZWxVcGRhdGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBcnJheTxUYXNrUGFuZWxEYXRhPj4oW10pO1xuICAgICAgICB0aGlzLl9jbG9zZVRhYiQgPSBuZXcgUmVwbGF5U3ViamVjdDx2b2lkPigxKTtcbiAgICAgICAgdGhpcy5fcHJlZmVycmVkRW5kcG9pbnQgPSB0YXNrVmlld0NvbmZpZz8ucHJlZmVycmVkRW5kcG9pbnQgPz8gKHRoaXMuX3ByZWZlcnJlZEVuZHBvaW50ID8/IFRhc2tFbmRwb2ludC5NT05HTyk7XG5cbiAgICAgICAgdGhpcy5faW5pdGlhbGl6aW5nID0gZmFsc2U7XG5cbiAgICAgICAgdGhpcy5fc3ViU2VhcmNoID0gdGhpcy5fc2VhcmNoU2VydmljZS5hY3RpdmVGaWx0ZXIkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnJlbG9hZCgpO1xuICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCB0YXNrc01hcCQgPSB0aGlzLl9yZXF1ZXN0ZWRQYWdlJC5waXBlKFxuICAgICAgICAgICAgbWVyZ2VNYXAocCA9PiB0aGlzLmxvYWRQYWdlKHApKSxcbiAgICAgICAgICAgIG1hcChwYWdlTG9hZFJlc3VsdCA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHBhZ2VMb2FkUmVzdWx0LnJlcXVlc3RDb250ZXh0ICYmIHBhZ2VMb2FkUmVzdWx0LnJlcXVlc3RDb250ZXh0LmNsZWFyTG9hZGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIHdlIHNldCBhbiBlbXB0eSB2YWx1ZSB0byB0aGUgdmlydHVhbCBzY3JvbGwgYW5kIHRoZW4gcmVwbGFjZSBpdCBieSB0aGUgcmVhbCB2YWx1ZSBmb3JjaW5nIGl0IHRvIHJlZHJhdyBpdHMgY29udGVudFxuICAgICAgICAgICAgICAgICAgICBjb25zdCByZXN1bHRzID0gW3t0YXNrczoge30sIHJlcXVlc3RDb250ZXh0OiBudWxsfSwgcGFnZUxvYWRSZXN1bHRdO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYXJyYXlUb09ic2VydmFibGUocmVzdWx0cyk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9mKHBhZ2VMb2FkUmVzdWx0KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGNvbmNhdE1hcChvID0+IG8pLFxuICAgICAgICAgICAgc2NhbigoYWNjLCBwYWdlTG9hZFJlc3VsdCkgPT4ge1xuICAgICAgICAgICAgICAgIGxldCByZXN1bHQ6IHsgW2s6IHN0cmluZ106IFRhc2tQYW5lbERhdGEgfTtcbiAgICAgICAgICAgICAgICBpZiAocGFnZUxvYWRSZXN1bHQucmVxdWVzdENvbnRleHQgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHBhZ2VMb2FkUmVzdWx0LnRhc2tzO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmIChwYWdlTG9hZFJlc3VsdC5yZXF1ZXN0Q29udGV4dC5yZWxvYWRDdXJyZW50VGFza1BhZ2UpIHtcbiAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmtleXMoYWNjKS5mb3JFYWNoKHRhc2tJZCA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXBhZ2VMb2FkUmVzdWx0LnRhc2tzW3Rhc2tJZF0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWxldGUgYWNjW3Rhc2tJZF07XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2VMb2FkUmVzdWx0LnRhc2tzW3Rhc2tJZF0udGFzay5kYXRhR3JvdXBzID0gYWNjW3Rhc2tJZF0udGFzay5kYXRhR3JvdXBzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2VMb2FkUmVzdWx0LnRhc2tzW3Rhc2tJZF0uaW5pdGlhbGx5RXhwYW5kZWQgPSBhY2NbdGFza0lkXS5pbml0aWFsbHlFeHBhbmRlZDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVRhc2soYWNjW3Rhc2tJZF0udGFzaywgcGFnZUxvYWRSZXN1bHQudGFza3NbdGFza0lkXS50YXNrKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmJsb2NrVGFza0ZpZWxkcyhhY2NbdGFza0lkXS50YXNrLCAhKGFjY1t0YXNrSWRdLnRhc2sudXNlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiB0aGlzLl91c2VyQ29tcGFyYXRvci5jb21wYXJlVXNlcnMoYWNjW3Rhc2tJZF0udGFzay51c2VyKSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBwYWdlTG9hZFJlc3VsdC50YXNrc1t0YXNrSWRdO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gT2JqZWN0LmFzc2lnbihhY2MsIHBhZ2VMb2FkUmVzdWx0LnRhc2tzKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSB7Li4uYWNjLCAuLi5wYWdlTG9hZFJlc3VsdC50YXNrc307XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLl9wYWdpbmF0aW9uLCBwYWdlTG9hZFJlc3VsdC5yZXF1ZXN0Q29udGV4dC5wYWdpbmF0aW9uKTtcbiAgICAgICAgICAgICAgICBpZiAocGFnZUxvYWRSZXN1bHQucmVxdWVzdENvbnRleHQgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fbG9hZGluZyQub2ZmKHBhZ2VMb2FkUmVzdWx0LnJlcXVlc3RDb250ZXh0LmZpbHRlcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICB9LCB7fSlcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5fdGFza3MkID0gdGFza3NNYXAkLnBpcGUoXG4gICAgICAgICAgICBtYXAodiA9PiBPYmplY3QudmFsdWVzKHYpIGFzIEFycmF5PFRhc2tQYW5lbERhdGE+KSxcbiAgICAgICAgICAgIG1hcCh0YXNrQXJyYXkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICh0YXNrQXJyYXkubGVuZ3RoID09PSAxICYmIHRoaXMuX2luaXRpYWxseU9wZW5PbmVUYXNrKSB7XG4gICAgICAgICAgICAgICAgICAgIHRhc2tBcnJheVswXS50YXNrLmZpbmlzaERhdGUgPT09IHVuZGVmaW5lZCA/XG4gICAgICAgICAgICAgICAgICAgICAgICB0YXNrQXJyYXlbMF0uaW5pdGlhbGx5RXhwYW5kZWQgPSB0cnVlIDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhc2tBcnJheVswXS5pbml0aWFsbHlFeHBhbmRlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gdGFza0FycmF5O1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICB0YXAodiA9PiB0aGlzLl9wYW5lbFVwZGF0ZSQubmV4dCh2KSkpO1xuXG4gICAgICAgIHRoaXMuX3N1YkluaXRpYWxseU9wZW4gPSAodGFza1ZpZXdDb25maWc/LmluaXRpYWxseU9wZW5PbmVUYXNrID8/IG9mKHRydWUpKS5zdWJzY3JpYmUoYm9vbCA9PiB7XG4gICAgICAgICAgICB0aGlzLl9pbml0aWFsbHlPcGVuT25lVGFzayA9IGJvb2w7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuX3N1YkNsb3NlVGFzayA9ICh0YXNrVmlld0NvbmZpZz8uY2xvc2VUYXNrVGFiT25Ob1Rhc2tzID8/IG9mKHRydWUpKS5zdWJzY3JpYmUoYm9vbCA9PiB7XG4gICAgICAgICAgICB0aGlzLl9jbG9zZVRhc2tUYWJPbk5vVGFza3MgPSBib29sO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICAgICAgdGhpcy5fY2hhbmdlZEZpZWxkcyQuY29tcGxldGUoKTtcbiAgICAgICAgdGhpcy5fcmVxdWVzdGVkUGFnZSQuY29tcGxldGUoKTtcbiAgICAgICAgdGhpcy5fcGFuZWxVcGRhdGUkLmNvbXBsZXRlKCk7XG4gICAgICAgIHRoaXMuX2Nsb3NlVGFiJC5jb21wbGV0ZSgpO1xuICAgICAgICB0aGlzLl9zdWJJbml0aWFsbHlPcGVuLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMuX3N1YkNsb3NlVGFzay51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLl9zdWJTZWFyY2gudW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHRhc2tzJCgpOiBPYnNlcnZhYmxlPEFycmF5PFRhc2tQYW5lbERhdGE+PiB7XG4gICAgICAgIHJldHVybiB0aGlzLl90YXNrcyQ7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBjaGFuZ2VkRmllbGRzJCgpOiBTdWJqZWN0PENoYW5nZWRGaWVsZHNNYXA+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NoYW5nZWRGaWVsZHMkO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgbG9hZGluZyQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9sb2FkaW5nJC5hc09ic2VydmFibGUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGxvYWRpbmcoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9sb2FkaW5nJC5pc0FjdGl2ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHBhbmVsVXBkYXRlKCk6IE9ic2VydmFibGU8QXJyYXk8VGFza1BhbmVsRGF0YT4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3BhbmVsVXBkYXRlJC5hc09ic2VydmFibGUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGNsb3NlVGFiKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fY2xvc2VUYWIkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgcGFnaW5hdGlvbigpOiBQYWdpbmF0aW9uIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3BhZ2luYXRpb247XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBhY3RpdmVGaWx0ZXIoKTogRmlsdGVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NlYXJjaFNlcnZpY2UuYWN0aXZlRmlsdGVyO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXQgYWxsb3dNdWx0aU9wZW4oYm9vbDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9hbGxvd011bHRpT3BlbiA9IGJvb2w7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBhbGxvd011bHRpT3BlbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FsbG93TXVsdGlPcGVuO1xuICAgIH1cblxuICAgIHB1YmxpYyBsb2FkUGFnZShyZXF1ZXN0Q29udGV4dDogUGFnZUxvYWRSZXF1ZXN0Q29udGV4dCk6IE9ic2VydmFibGU8VGFza1BhZ2VMb2FkUmVxdWVzdFJlc3VsdD4ge1xuICAgICAgICBpZiAocmVxdWVzdENvbnRleHQgPT09IG51bGwgfHwgcmVxdWVzdENvbnRleHQucGFnZU51bWJlciA8IDApIHtcbiAgICAgICAgICAgIHJldHVybiBvZih7dGFza3M6IHt9LCByZXF1ZXN0Q29udGV4dH0pO1xuICAgICAgICB9XG4gICAgICAgIGxldCBwYXJhbXM6IEh0dHBQYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpO1xuICAgICAgICBwYXJhbXMgPSB0aGlzLmFkZFNvcnRQYXJhbXMocGFyYW1zKTtcbiAgICAgICAgcGFyYW1zID0gdGhpcy5hZGRQYWdlUGFyYW1zKHBhcmFtcywgcmVxdWVzdENvbnRleHQucGFnaW5hdGlvbik7XG4gICAgICAgIHRoaXMuX2xvYWRpbmckLm9uKHJlcXVlc3RDb250ZXh0LmZpbHRlcik7XG5cbiAgICAgICAgbGV0IHJlcXVlc3Q6IE9ic2VydmFibGU8UGFnZTxUYXNrPj47XG4gICAgICAgIGlmIChyZXF1ZXN0Q29udGV4dC5maWx0ZXIuYm9keUNvbnRhaW5zUXVlcnkoKSB8fCB0aGlzLl9wcmVmZXJyZWRFbmRwb2ludCA9PT0gVGFza0VuZHBvaW50LkVMQVNUSUMpIHtcbiAgICAgICAgICAgIHJlcXVlc3QgPSB0aW1lcigyMDApLnBpcGUoXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKCgpID0+IHRoaXMuX3Rhc2tTZXJ2aWNlLnNlYXJjaFRhc2socmVxdWVzdENvbnRleHQuZmlsdGVyLCBwYXJhbXMpLnBpcGUodGFrZSgxKSkpXG4gICAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVxdWVzdCA9IHRoaXMuX3Rhc2tTZXJ2aWNlLmdldFRhc2tzKHJlcXVlc3RDb250ZXh0LmZpbHRlciwgcGFyYW1zKS5waXBlKHRha2UoMSkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXF1ZXN0LnBpcGUoXG4gICAgICAgICAgICBjYXRjaEVycm9yKGVyciA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fbG9nLmVycm9yKCdMb2FkaW5nIHRhc2tzIGhhcyBmYWlsZWQhJywgZXJyKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9sb2FkaW5nJC5vZmYocmVxdWVzdENvbnRleHQuZmlsdGVyKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gb2Yoe2NvbnRlbnQ6IFtdLCBwYWdpbmF0aW9uOiB7Li4udGhpcy5fcGFnaW5hdGlvbn19KTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgZmlsdGVyKCgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCByID0gcmVxdWVzdENvbnRleHQuZmlsdGVyID09PSB0aGlzLl9zZWFyY2hTZXJ2aWNlLmFjdGl2ZUZpbHRlcjtcbiAgICAgICAgICAgICAgICBpZiAoIXIpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fbG9hZGluZyQub2ZmKHJlcXVlc3RDb250ZXh0LmZpbHRlcik7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2xvZy5kZWJ1ZygnUmVjZWl2ZWQgdGFza3MgcGFnZSBpcyBubyBsb25nZXIgcmVsZXZhbnQgc2luY2UgdGhlIGFjdGl2ZSBmaWx0ZXIgaGFzIGNoYW5nZWQgYmVmb3JlIGl0IGNvdWxkIGFycml2ZS4nXG4gICAgICAgICAgICAgICAgICAgICAgICArICcgRGlzY2FyZGluZy4uLicpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gcjtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgdGFwKHQgPT4ge1xuICAgICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24ocmVxdWVzdENvbnRleHQucGFnaW5hdGlvbiwgdC5wYWdpbmF0aW9uKTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgdGFwKHQgPT4ge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLl9wYWdpbmF0aW9uLnRvdGFsRWxlbWVudHMgJiYgdGhpcy5fcGFnaW5hdGlvbi50b3RhbEVsZW1lbnRzID4gMFxuICAgICAgICAgICAgICAgICAgICAmJiB0LnBhZ2luYXRpb24udG90YWxFbGVtZW50cyA9PT0gMCAmJiAhQXJyYXkuaXNBcnJheSh0LmNvbnRlbnQpICYmIHRoaXMuX2Nsb3NlVGFza1RhYk9uTm9UYXNrcykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jbG9zZVRhYiQubmV4dCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgdGFwKHQgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VuZE9mRGF0YSA9ICFBcnJheS5pc0FycmF5KHQuY29udGVudClcbiAgICAgICAgICAgICAgICAgICAgfHwgdC5jb250ZW50Lmxlbmd0aCA9PT0gMFxuICAgICAgICAgICAgICAgICAgICB8fCB0LnBhZ2luYXRpb24ubnVtYmVyID09PSB0LnBhZ2luYXRpb24udG90YWxQYWdlcztcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgbWFwKHRhc2tzID0+IEFycmF5LmlzQXJyYXkodGFza3MuY29udGVudCkgPyB0YXNrcyA6IHsuLi50YXNrcywgY29udGVudDogW119KSxcbiAgICAgICAgICAgIG1hcCh0YXNrcyA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRhc2tzLmNvbnRlbnQucmVkdWNlKChhY2MsIGN1cnIpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ibG9ja1Rhc2tGaWVsZHMoY3VyciwgIShjdXJyLnVzZXIgJiYgdGhpcy5fdXNlckNvbXBhcmF0b3IuY29tcGFyZVVzZXJzKGN1cnIudXNlcikpKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLmFjYywgW2N1cnIuc3RyaW5nSWRdOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFzazogY3VycixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkRmllbGRzOiB0aGlzLl9jaGFuZ2VkRmllbGRzJCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbml0aWFsbHlFeHBhbmRlZDogZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB9LCB7fSk7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIG1hcCh0YXNrcyA9PiAoe3Rhc2tzLCByZXF1ZXN0Q29udGV4dH0pKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlVGFzayhvbGQ6IFRhc2ssIG5ld3c6IFRhc2spIHtcbiAgICAgICAgT2JqZWN0LmtleXMob2xkKS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICAgICAgICBpZiAoIW5ld3cuaGFzT3duUHJvcGVydHkoa2V5KSkge1xuICAgICAgICAgICAgICAgIGRlbGV0ZSBvbGRba2V5XTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5rZXlzKG5ld3cpLmZvckVhY2goa2V5ID0+IHtcbiAgICAgICAgICAgIGlmIChuZXd3W2tleV0gIT09IHVuZGVmaW5lZCAmJiBuZXd3W2tleV0gIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICBvbGRba2V5XSA9IG5ld3dba2V5XTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuYmxvY2tUYXNrRmllbGRzKG9sZCwgIShvbGQudXNlciAmJiB0aGlzLl91c2VyQ29tcGFyYXRvci5jb21wYXJlVXNlcnMob2xkLnVzZXIpKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBibG9ja1Rhc2tGaWVsZHModGFzazogVGFzaywgYmxvY2s6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0YXNrLmRhdGFHcm91cHMpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0YXNrLmRhdGFHcm91cHMuZm9yRWFjaChnID0+IGcuZmllbGRzLmZvckVhY2goZiA9PiBmLmJsb2NrID0gYmxvY2spKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmV4dFBhZ2UocmVuZGVyZWRSYW5nZTogTGlzdFJhbmdlLCB0b3RhbExvYWRlZDogbnVtYmVyLCByZXF1ZXN0Q29udGV4dD86IFBhZ2VMb2FkUmVxdWVzdENvbnRleHQpOiB2b2lkIHtcbiAgICAgICAgaWYgKHJlcXVlc3RDb250ZXh0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJlcXVlc3RDb250ZXh0ID0gbmV3IFBhZ2VMb2FkUmVxdWVzdENvbnRleHQodGhpcy5hY3RpdmVGaWx0ZXIsIHRoaXMuX3BhZ2luYXRpb24pO1xuICAgICAgICAgICAgcmVxdWVzdENvbnRleHQucGFnaW5hdGlvbi5udW1iZXIgKz0gMTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmlzTG9hZGluZ1JlbGV2YW50RmlsdGVyKHJlcXVlc3RDb250ZXh0KSB8fCB0aGlzLl9lbmRPZkRhdGEpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChyZW5kZXJlZFJhbmdlLmVuZCA9PT0gdG90YWxMb2FkZWQpIHtcbiAgICAgICAgICAgIHRoaXMuX3JlcXVlc3RlZFBhZ2UkLm5leHQocmVxdWVzdENvbnRleHQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG5leHRQYWdlUGFnaW5hdGlvbihsZW5ndGg6IG51bWJlciwgcGFnZUluZGV4OiBudW1iZXIsIHJlcXVlc3RDb250ZXh0PzogUGFnZUxvYWRSZXF1ZXN0Q29udGV4dCk6IHZvaWQge1xuICAgICAgICBpZiAocmVxdWVzdENvbnRleHQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmVxdWVzdENvbnRleHQgPSBuZXcgUGFnZUxvYWRSZXF1ZXN0Q29udGV4dCh0aGlzLmFjdGl2ZUZpbHRlciwgdGhpcy5fcGFnaW5hdGlvbik7XG4gICAgICAgICAgICByZXF1ZXN0Q29udGV4dC5wYWdpbmF0aW9uLnNpemUgPSBsZW5ndGg7XG4gICAgICAgICAgICByZXF1ZXN0Q29udGV4dC5wYWdpbmF0aW9uLm51bWJlciA9IHBhZ2VJbmRleDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmlzTG9hZGluZ1JlbGV2YW50RmlsdGVyKHJlcXVlc3RDb250ZXh0KSB8fCB0aGlzLl9lbmRPZkRhdGEpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9yZXF1ZXN0ZWRQYWdlJC5uZXh0KHJlcXVlc3RDb250ZXh0KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzTG9hZGluZ1JlbGV2YW50RmlsdGVyKHJlcXVlc3RDb250ZXh0PzogUGFnZUxvYWRSZXF1ZXN0Q29udGV4dCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gcmVxdWVzdENvbnRleHQgPT09IHVuZGVmaW5lZCB8fCAodGhpcy5fbG9hZGluZyQuaXNBY3RpdmVXaXRoRmlsdGVyKHJlcXVlc3RDb250ZXh0LmZpbHRlcikgJiYgIXJlcXVlc3RDb250ZXh0LmZvcmNlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVsb2FkKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX3Rhc2tzJCB8fCAhdGhpcy5fcGFnaW5hdGlvbikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fZW5kT2ZEYXRhID0gZmFsc2U7XG4gICAgICAgIGNvbnN0IHJlcXVlc3RDb250ZXh0ID0gbmV3IFBhZ2VMb2FkUmVxdWVzdENvbnRleHQodGhpcy5hY3RpdmVGaWx0ZXIsIHRoaXMuX3BhZ2luYXRpb24sIHRydWUpO1xuICAgICAgICByZXF1ZXN0Q29udGV4dC5wYWdpbmF0aW9uLm51bWJlciA9IDA7XG4gICAgICAgIGNvbnN0IHJhbmdlID0ge1xuICAgICAgICAgICAgc3RhcnQ6IC0xLFxuICAgICAgICAgICAgZW5kOiAwXG4gICAgICAgIH07XG5cbiAgICAgICAgdGhpcy5uZXh0UGFnZShyYW5nZSwgMCwgcmVxdWVzdENvbnRleHQpO1xuICAgIH1cblxuICAgIHB1YmxpYyByZWxvYWRDdXJyZW50UGFnZShmb3JjZT86IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLl90YXNrcyQgfHwgIXRoaXMuX3BhZ2luYXRpb24pIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2VuZE9mRGF0YSA9IGZhbHNlO1xuICAgICAgICBjb25zdCByZXF1ZXN0Q29udGV4dCA9IG5ldyBQYWdlTG9hZFJlcXVlc3RDb250ZXh0KHRoaXMuYWN0aXZlRmlsdGVyLCB0aGlzLl9wYWdpbmF0aW9uLCBmYWxzZSwgdHJ1ZSwgZm9yY2UpO1xuICAgICAgICByZXF1ZXN0Q29udGV4dC5wYWdpbmF0aW9uLm51bWJlciA9IDA7IC8vIFRPRE8gW0JVR10gLSBSZWxvYWRpbmcgb25seSBmaXJzdCBwYWdlXG4gICAgICAgIGNvbnN0IHJhbmdlID0ge1xuICAgICAgICAgICAgc3RhcnQ6IC0xLFxuICAgICAgICAgICAgZW5kOiAwXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMubmV4dFBhZ2UocmFuZ2UsIDAsIHJlcXVlc3RDb250ZXh0KTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0TWV0YUZpZWxkU29ydElkKCk6IHN0cmluZyB7XG4gICAgICAgIC8vIFRPRE8gVGFza3Mgd2VyZSBub3Qgc29ydGFibGUgb24gb2xkIGZyb250ZW5kIHNvcnRpbmcgbWlnaHQgcmVxdWlyZSBlbGFzdGljIG1hcHBpbmcgY2hhbmdlcyBvbiBiYWNrZW5kXG4gICAgICAgIHJldHVybiB0aGlzLl9sYXN0SGVhZGVyU2VhcmNoU3RhdGUuZmllbGRJZGVudGlmaWVyO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXREZWZhdWx0U29ydFBhcmFtKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBjcmVhdGVTb3J0UGFyYW0oJ3ByaW9yaXR5JywgUGFnaW5hdGlvblNvcnQuREVTQ0VORElORyk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGFkZFBhZ2VQYXJhbXMocGFyYW1zOiBIdHRwUGFyYW1zLCBwYWdpbmF0aW9uOiBQYWdpbmF0aW9uKTogSHR0cFBhcmFtcyB7XG4gICAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoUGFnaW5hdGlvblBhcmFtcy5QQUdFX1NJWkUsIGAke3BhZ2luYXRpb24uc2l6ZX1gKTtcbiAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldChQYWdpbmF0aW9uUGFyYW1zLlBBR0VfTlVNQkVSLCBgJHtwYWdpbmF0aW9uLm51bWJlcn1gKTtcbiAgICAgICAgcmV0dXJuIHBhcmFtcztcbiAgICB9XG59XG4iXX0=
@@ -7,14 +7,16 @@ export { AuthenticationInterceptor as ɵi } from './lib/authentication/services/
7
7
  export { AbstractDataFieldComponent as ɵb } from './lib/data-fields/models/abstract-data-field-component';
8
8
  export { AbstractTimeInstanceFieldComponent as ɵc } from './lib/data-fields/time-instance-abstract-field/abstract-time-instance-field.component';
9
9
  export { AbstractTimeInstanceField as ɵe } from './lib/data-fields/time-instance-abstract-field/models/abstract-time-instance-field';
10
- export { AlertDialogModule as ɵq } from './lib/dialog/components/alert-dialog/alert-dialog.module';
11
- export { ConfirmDialogModule as ɵr } from './lib/dialog/components/confirm-dialog/confirm-dialog.module';
12
- export { PromptDialogModule as ɵs } from './lib/dialog/components/prompt-dialog/prompt-dialog.module';
13
- export { AbstractDialog as ɵn } from './lib/dialog/models/abstract-dialog';
14
- export { AbstractHeaderModeComponent as ɵt } from './lib/header/header-modes/abstract-header-mode.component';
10
+ export { AlertDialogModule as ɵr } from './lib/dialog/components/alert-dialog/alert-dialog.module';
11
+ export { ConfirmDialogModule as ɵs } from './lib/dialog/components/confirm-dialog/confirm-dialog.module';
12
+ export { PromptDialogModule as ɵt } from './lib/dialog/components/prompt-dialog/prompt-dialog.module';
13
+ export { AbstractDialog as ɵo } from './lib/dialog/models/abstract-dialog';
14
+ export { AbstractHeaderModeComponent as ɵu } from './lib/header/header-modes/abstract-header-mode.component';
15
15
  export { AbstractNavigationResizableDrawerComponent as ɵk } from './lib/navigation/navigation-drawer/abstract-navigation-resizable-drawer.component';
16
16
  export { PanelWithHeaderBinding as ɵm } from './lib/panel/abstract/panel-with-header-binding';
17
17
  export { PanelWithImmediateData as ɵl } from './lib/panel/abstract/panel-with-immediate-data';
18
- export { DataGroupLayoutType as ɵu } from './lib/resources/interface/data-group-layout';
18
+ export { AbstractDefaultTaskList as ɵn } from './lib/panel/task-panel-list/default-task-panel-list/abstract-default-task-list';
19
+ export { DataGroupLayoutType as ɵw } from './lib/resources/interface/data-group-layout';
19
20
  export { TranslateInterceptor as ɵa } from './lib/translate/translate-interceptor';
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0Z3JpZi1jb21wb25lbnRzLWNvcmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AbmV0Z3JpZi9jb21wb25lbnRzLWNvcmUvIiwic291cmNlcyI6WyJuZXRncmlmLWNvbXBvbmVudHMtY29yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDO0FBRTdCLE9BQU8sRUFBQyxrQ0FBa0MsSUFBSSxFQUFFLEVBQUMsTUFBTSxvRUFBb0UsQ0FBQztBQUM1SCxPQUFPLEVBQUMseUJBQXlCLElBQUksRUFBRSxFQUFDLE1BQU0sMERBQTBELENBQUM7QUFJekcsT0FBTyxFQUFDLDBCQUEwQixJQUFJLEVBQUUsRUFBQyxNQUFNLHdEQUF3RCxDQUFDO0FBRXhHLE9BQU8sRUFBQyxrQ0FBa0MsSUFBSSxFQUFFLEVBQUMsTUFBTSx1RkFBdUYsQ0FBQztBQUMvSSxPQUFPLEVBQUMseUJBQXlCLElBQUksRUFBRSxFQUFDLE1BQU0sb0ZBQW9GLENBQUM7QUFDbkksT0FBTyxFQUFDLGlCQUFpQixJQUFJLEVBQUUsRUFBQyxNQUFNLDBEQUEwRCxDQUFDO0FBQ2pHLE9BQU8sRUFBQyxtQkFBbUIsSUFBSSxFQUFFLEVBQUMsTUFBTSw4REFBOEQsQ0FBQztBQUN2RyxPQUFPLEVBQUMsa0JBQWtCLElBQUksRUFBRSxFQUFDLE1BQU0sNERBQTRELENBQUM7QUFHcEcsT0FBTyxFQUFDLGNBQWMsSUFBSSxFQUFFLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUN6RSxPQUFPLEVBQUMsMkJBQTJCLElBQUksRUFBRSxFQUFDLE1BQU0sMERBQTBELENBQUM7QUFDM0csT0FBTyxFQUFDLDBDQUEwQyxJQUFJLEVBQUUsRUFBQyxNQUFNLG1GQUFtRixDQUFDO0FBQ25KLE9BQU8sRUFBQyxzQkFBc0IsSUFBSSxFQUFFLEVBQUMsTUFBTSxnREFBZ0QsQ0FBQztBQUM1RixPQUFPLEVBQUMsc0JBQXNCLElBQUksRUFBRSxFQUFDLE1BQU0sZ0RBQWdELENBQUM7QUFDNUYsT0FBTyxFQUFDLG1CQUFtQixJQUFJLEVBQUUsRUFBQyxNQUFNLDZDQUE2QyxDQUFDO0FBQ3RGLE9BQU8sRUFBQyxvQkFBb0IsSUFBSSxFQUFFLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcblxuZXhwb3J0IHtBbm9ueW1vdXNBdXRoZW50aWNhdGlvbkludGVyY2VwdG9yIGFzIMm1an0gZnJvbSAnLi9saWIvYXV0aGVudGljYXRpb24vc2VydmljZXMvYW5vbnltb3VzLWF1dGhlbnRpY2F0aW9uLWludGVyY2VwdG9yJztcbmV4cG9ydCB7QXV0aGVudGljYXRpb25JbnRlcmNlcHRvciBhcyDJtWl9IGZyb20gJy4vbGliL2F1dGhlbnRpY2F0aW9uL3NlcnZpY2VzL2F1dGhlbnRpY2F0aW9uLWludGVyY2VwdG9yJztcbmV4cG9ydCB7RmlsZUZpZWxkVmFsdWUgYXMgybVmfSBmcm9tICcuL2xpYi9kYXRhLWZpZWxkcy9maWxlLWZpZWxkL21vZGVscy9maWxlLWZpZWxkLXZhbHVlJztcbmV4cG9ydCB7RmlsZUxpc3RGaWVsZFZhbHVlIGFzIMm1Z30gZnJvbSAnLi9saWIvZGF0YS1maWVsZHMvZmlsZS1saXN0LWZpZWxkL21vZGVscy9maWxlLWxpc3QtZmllbGQtdmFsdWUnO1xuZXhwb3J0IHtJMThuRmllbGRWYWx1ZSBhcyDJtWh9IGZyb20gJy4vbGliL2RhdGEtZmllbGRzL2kxOG4tZmllbGQvbW9kZWxzL2kxOG4tZmllbGQtdmFsdWUnO1xuZXhwb3J0IHtBYnN0cmFjdERhdGFGaWVsZENvbXBvbmVudCBhcyDJtWJ9IGZyb20gJy4vbGliL2RhdGEtZmllbGRzL21vZGVscy9hYnN0cmFjdC1kYXRhLWZpZWxkLWNvbXBvbmVudCc7XG5leHBvcnQge0JlaGF2aW9yIGFzIMm1ZH0gZnJvbSAnLi9saWIvZGF0YS1maWVsZHMvbW9kZWxzL2JlaGF2aW9yJztcbmV4cG9ydCB7QWJzdHJhY3RUaW1lSW5zdGFuY2VGaWVsZENvbXBvbmVudCBhcyDJtWN9IGZyb20gJy4vbGliL2RhdGEtZmllbGRzL3RpbWUtaW5zdGFuY2UtYWJzdHJhY3QtZmllbGQvYWJzdHJhY3QtdGltZS1pbnN0YW5jZS1maWVsZC5jb21wb25lbnQnO1xuZXhwb3J0IHtBYnN0cmFjdFRpbWVJbnN0YW5jZUZpZWxkIGFzIMm1ZX0gZnJvbSAnLi9saWIvZGF0YS1maWVsZHMvdGltZS1pbnN0YW5jZS1hYnN0cmFjdC1maWVsZC9tb2RlbHMvYWJzdHJhY3QtdGltZS1pbnN0YW5jZS1maWVsZCc7XG5leHBvcnQge0FsZXJ0RGlhbG9nTW9kdWxlIGFzIMm1cX0gZnJvbSAnLi9saWIvZGlhbG9nL2NvbXBvbmVudHMvYWxlcnQtZGlhbG9nL2FsZXJ0LWRpYWxvZy5tb2R1bGUnO1xuZXhwb3J0IHtDb25maXJtRGlhbG9nTW9kdWxlIGFzIMm1cn0gZnJvbSAnLi9saWIvZGlhbG9nL2NvbXBvbmVudHMvY29uZmlybS1kaWFsb2cvY29uZmlybS1kaWFsb2cubW9kdWxlJztcbmV4cG9ydCB7UHJvbXB0RGlhbG9nTW9kdWxlIGFzIMm1c30gZnJvbSAnLi9saWIvZGlhbG9nL2NvbXBvbmVudHMvcHJvbXB0LWRpYWxvZy9wcm9tcHQtZGlhbG9nLm1vZHVsZSc7XG5leHBvcnQge0RpYWxvZ0RhdGEgYXMgybVwfSBmcm9tICcuL2xpYi9kaWFsb2cvbW9kZWxzL0RpYWxvZ0RhdGEnO1xuZXhwb3J0IHtEaWFsb2dSZXN1bHQgYXMgybVvfSBmcm9tICcuL2xpYi9kaWFsb2cvbW9kZWxzL0RpYWxvZ1Jlc3VsdCc7XG5leHBvcnQge0Fic3RyYWN0RGlhbG9nIGFzIMm1bn0gZnJvbSAnLi9saWIvZGlhbG9nL21vZGVscy9hYnN0cmFjdC1kaWFsb2cnO1xuZXhwb3J0IHtBYnN0cmFjdEhlYWRlck1vZGVDb21wb25lbnQgYXMgybV0fSBmcm9tICcuL2xpYi9oZWFkZXIvaGVhZGVyLW1vZGVzL2Fic3RyYWN0LWhlYWRlci1tb2RlLmNvbXBvbmVudCc7XG5leHBvcnQge0Fic3RyYWN0TmF2aWdhdGlvblJlc2l6YWJsZURyYXdlckNvbXBvbmVudCBhcyDJtWt9IGZyb20gJy4vbGliL25hdmlnYXRpb24vbmF2aWdhdGlvbi1kcmF3ZXIvYWJzdHJhY3QtbmF2aWdhdGlvbi1yZXNpemFibGUtZHJhd2VyLmNvbXBvbmVudCc7XG5leHBvcnQge1BhbmVsV2l0aEhlYWRlckJpbmRpbmcgYXMgybVtfSBmcm9tICcuL2xpYi9wYW5lbC9hYnN0cmFjdC9wYW5lbC13aXRoLWhlYWRlci1iaW5kaW5nJztcbmV4cG9ydCB7UGFuZWxXaXRoSW1tZWRpYXRlRGF0YSBhcyDJtWx9IGZyb20gJy4vbGliL3BhbmVsL2Fic3RyYWN0L3BhbmVsLXdpdGgtaW1tZWRpYXRlLWRhdGEnO1xuZXhwb3J0IHtEYXRhR3JvdXBMYXlvdXRUeXBlIGFzIMm1dX0gZnJvbSAnLi9saWIvcmVzb3VyY2VzL2ludGVyZmFjZS9kYXRhLWdyb3VwLWxheW91dCc7XG5leHBvcnQge1RyYW5zbGF0ZUludGVyY2VwdG9yIGFzIMm1YX0gZnJvbSAnLi9saWIvdHJhbnNsYXRlL3RyYW5zbGF0ZS1pbnRlcmNlcHRvcic7Il19
21
+ export { AbstractDefaultCaseList as ɵv } from './lib/view/case-view/components/default-case-list/abstract-default-case-list';
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0Z3JpZi1jb21wb25lbnRzLWNvcmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AbmV0Z3JpZi9jb21wb25lbnRzLWNvcmUvIiwic291cmNlcyI6WyJuZXRncmlmLWNvbXBvbmVudHMtY29yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDO0FBRTdCLE9BQU8sRUFBQyxrQ0FBa0MsSUFBSSxFQUFFLEVBQUMsTUFBTSxvRUFBb0UsQ0FBQztBQUM1SCxPQUFPLEVBQUMseUJBQXlCLElBQUksRUFBRSxFQUFDLE1BQU0sMERBQTBELENBQUM7QUFJekcsT0FBTyxFQUFDLDBCQUEwQixJQUFJLEVBQUUsRUFBQyxNQUFNLHdEQUF3RCxDQUFDO0FBRXhHLE9BQU8sRUFBQyxrQ0FBa0MsSUFBSSxFQUFFLEVBQUMsTUFBTSx1RkFBdUYsQ0FBQztBQUMvSSxPQUFPLEVBQUMseUJBQXlCLElBQUksRUFBRSxFQUFDLE1BQU0sb0ZBQW9GLENBQUM7QUFDbkksT0FBTyxFQUFDLGlCQUFpQixJQUFJLEVBQUUsRUFBQyxNQUFNLDBEQUEwRCxDQUFDO0FBQ2pHLE9BQU8sRUFBQyxtQkFBbUIsSUFBSSxFQUFFLEVBQUMsTUFBTSw4REFBOEQsQ0FBQztBQUN2RyxPQUFPLEVBQUMsa0JBQWtCLElBQUksRUFBRSxFQUFDLE1BQU0sNERBQTRELENBQUM7QUFHcEcsT0FBTyxFQUFDLGNBQWMsSUFBSSxFQUFFLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUN6RSxPQUFPLEVBQUMsMkJBQTJCLElBQUksRUFBRSxFQUFDLE1BQU0sMERBQTBELENBQUM7QUFDM0csT0FBTyxFQUFDLDBDQUEwQyxJQUFJLEVBQUUsRUFBQyxNQUFNLG1GQUFtRixDQUFDO0FBQ25KLE9BQU8sRUFBQyxzQkFBc0IsSUFBSSxFQUFFLEVBQUMsTUFBTSxnREFBZ0QsQ0FBQztBQUM1RixPQUFPLEVBQUMsc0JBQXNCLElBQUksRUFBRSxFQUFDLE1BQU0sZ0RBQWdELENBQUM7QUFDNUYsT0FBTyxFQUFDLHVCQUF1QixJQUFJLEVBQUUsRUFBQyxNQUFNLGdGQUFnRixDQUFDO0FBQzdILE9BQU8sRUFBQyxtQkFBbUIsSUFBSSxFQUFFLEVBQUMsTUFBTSw2Q0FBNkMsQ0FBQztBQUN0RixPQUFPLEVBQUMsb0JBQW9CLElBQUksRUFBRSxFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFDakYsT0FBTyxFQUFDLHVCQUF1QixJQUFJLEVBQUUsRUFBQyxNQUFNLDhFQUE4RSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuXG5leHBvcnQge0Fub255bW91c0F1dGhlbnRpY2F0aW9uSW50ZXJjZXB0b3IgYXMgybVqfSBmcm9tICcuL2xpYi9hdXRoZW50aWNhdGlvbi9zZXJ2aWNlcy9hbm9ueW1vdXMtYXV0aGVudGljYXRpb24taW50ZXJjZXB0b3InO1xuZXhwb3J0IHtBdXRoZW50aWNhdGlvbkludGVyY2VwdG9yIGFzIMm1aX0gZnJvbSAnLi9saWIvYXV0aGVudGljYXRpb24vc2VydmljZXMvYXV0aGVudGljYXRpb24taW50ZXJjZXB0b3InO1xuZXhwb3J0IHtGaWxlRmllbGRWYWx1ZSBhcyDJtWZ9IGZyb20gJy4vbGliL2RhdGEtZmllbGRzL2ZpbGUtZmllbGQvbW9kZWxzL2ZpbGUtZmllbGQtdmFsdWUnO1xuZXhwb3J0IHtGaWxlTGlzdEZpZWxkVmFsdWUgYXMgybVnfSBmcm9tICcuL2xpYi9kYXRhLWZpZWxkcy9maWxlLWxpc3QtZmllbGQvbW9kZWxzL2ZpbGUtbGlzdC1maWVsZC12YWx1ZSc7XG5leHBvcnQge0kxOG5GaWVsZFZhbHVlIGFzIMm1aH0gZnJvbSAnLi9saWIvZGF0YS1maWVsZHMvaTE4bi1maWVsZC9tb2RlbHMvaTE4bi1maWVsZC12YWx1ZSc7XG5leHBvcnQge0Fic3RyYWN0RGF0YUZpZWxkQ29tcG9uZW50IGFzIMm1Yn0gZnJvbSAnLi9saWIvZGF0YS1maWVsZHMvbW9kZWxzL2Fic3RyYWN0LWRhdGEtZmllbGQtY29tcG9uZW50JztcbmV4cG9ydCB7QmVoYXZpb3IgYXMgybVkfSBmcm9tICcuL2xpYi9kYXRhLWZpZWxkcy9tb2RlbHMvYmVoYXZpb3InO1xuZXhwb3J0IHtBYnN0cmFjdFRpbWVJbnN0YW5jZUZpZWxkQ29tcG9uZW50IGFzIMm1Y30gZnJvbSAnLi9saWIvZGF0YS1maWVsZHMvdGltZS1pbnN0YW5jZS1hYnN0cmFjdC1maWVsZC9hYnN0cmFjdC10aW1lLWluc3RhbmNlLWZpZWxkLmNvbXBvbmVudCc7XG5leHBvcnQge0Fic3RyYWN0VGltZUluc3RhbmNlRmllbGQgYXMgybVlfSBmcm9tICcuL2xpYi9kYXRhLWZpZWxkcy90aW1lLWluc3RhbmNlLWFic3RyYWN0LWZpZWxkL21vZGVscy9hYnN0cmFjdC10aW1lLWluc3RhbmNlLWZpZWxkJztcbmV4cG9ydCB7QWxlcnREaWFsb2dNb2R1bGUgYXMgybVyfSBmcm9tICcuL2xpYi9kaWFsb2cvY29tcG9uZW50cy9hbGVydC1kaWFsb2cvYWxlcnQtZGlhbG9nLm1vZHVsZSc7XG5leHBvcnQge0NvbmZpcm1EaWFsb2dNb2R1bGUgYXMgybVzfSBmcm9tICcuL2xpYi9kaWFsb2cvY29tcG9uZW50cy9jb25maXJtLWRpYWxvZy9jb25maXJtLWRpYWxvZy5tb2R1bGUnO1xuZXhwb3J0IHtQcm9tcHREaWFsb2dNb2R1bGUgYXMgybV0fSBmcm9tICcuL2xpYi9kaWFsb2cvY29tcG9uZW50cy9wcm9tcHQtZGlhbG9nL3Byb21wdC1kaWFsb2cubW9kdWxlJztcbmV4cG9ydCB7RGlhbG9nRGF0YSBhcyDJtXF9IGZyb20gJy4vbGliL2RpYWxvZy9tb2RlbHMvRGlhbG9nRGF0YSc7XG5leHBvcnQge0RpYWxvZ1Jlc3VsdCBhcyDJtXB9IGZyb20gJy4vbGliL2RpYWxvZy9tb2RlbHMvRGlhbG9nUmVzdWx0JztcbmV4cG9ydCB7QWJzdHJhY3REaWFsb2cgYXMgybVvfSBmcm9tICcuL2xpYi9kaWFsb2cvbW9kZWxzL2Fic3RyYWN0LWRpYWxvZyc7XG5leHBvcnQge0Fic3RyYWN0SGVhZGVyTW9kZUNvbXBvbmVudCBhcyDJtXV9IGZyb20gJy4vbGliL2hlYWRlci9oZWFkZXItbW9kZXMvYWJzdHJhY3QtaGVhZGVyLW1vZGUuY29tcG9uZW50JztcbmV4cG9ydCB7QWJzdHJhY3ROYXZpZ2F0aW9uUmVzaXphYmxlRHJhd2VyQ29tcG9uZW50IGFzIMm1a30gZnJvbSAnLi9saWIvbmF2aWdhdGlvbi9uYXZpZ2F0aW9uLWRyYXdlci9hYnN0cmFjdC1uYXZpZ2F0aW9uLXJlc2l6YWJsZS1kcmF3ZXIuY29tcG9uZW50JztcbmV4cG9ydCB7UGFuZWxXaXRoSGVhZGVyQmluZGluZyBhcyDJtW19IGZyb20gJy4vbGliL3BhbmVsL2Fic3RyYWN0L3BhbmVsLXdpdGgtaGVhZGVyLWJpbmRpbmcnO1xuZXhwb3J0IHtQYW5lbFdpdGhJbW1lZGlhdGVEYXRhIGFzIMm1bH0gZnJvbSAnLi9saWIvcGFuZWwvYWJzdHJhY3QvcGFuZWwtd2l0aC1pbW1lZGlhdGUtZGF0YSc7XG5leHBvcnQge0Fic3RyYWN0RGVmYXVsdFRhc2tMaXN0IGFzIMm1bn0gZnJvbSAnLi9saWIvcGFuZWwvdGFzay1wYW5lbC1saXN0L2RlZmF1bHQtdGFzay1wYW5lbC1saXN0L2Fic3RyYWN0LWRlZmF1bHQtdGFzay1saXN0JztcbmV4cG9ydCB7RGF0YUdyb3VwTGF5b3V0VHlwZSBhcyDJtXd9IGZyb20gJy4vbGliL3Jlc291cmNlcy9pbnRlcmZhY2UvZGF0YS1ncm91cC1sYXlvdXQnO1xuZXhwb3J0IHtUcmFuc2xhdGVJbnRlcmNlcHRvciBhcyDJtWF9IGZyb20gJy4vbGliL3RyYW5zbGF0ZS90cmFuc2xhdGUtaW50ZXJjZXB0b3InO1xuZXhwb3J0IHtBYnN0cmFjdERlZmF1bHRDYXNlTGlzdCBhcyDJtXZ9IGZyb20gJy4vbGliL3ZpZXcvY2FzZS12aWV3L2NvbXBvbmVudHMvZGVmYXVsdC1jYXNlLWxpc3QvYWJzdHJhY3QtZGVmYXVsdC1jYXNlLWxpc3QnOyJdfQ==
@@ -13,6 +13,7 @@ var BaseAllowedNetsService = /** @class */ (function () {
13
13
  };
14
14
  Object.defineProperty(BaseAllowedNetsService.prototype, "allowedNets", {
15
15
  /**
16
+ * @deprecated This method should not be used. Use {@link BaseAllowedNetsService#allowedNets$} instead
16
17
  * @returns the currently set allowed nets. Returns an empty array if no value was set.
17
18
  */
18
19
  get: function () {
@@ -62,4 +63,4 @@ var BaseAllowedNetsService = /** @class */ (function () {
62
63
  return BaseAllowedNetsService;
63
64
  }());
64
65
  export { BaseAllowedNetsService };
65
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1hbGxvd2VkLW5ldHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZXRncmlmL2NvbXBvbmVudHMtY29yZS8iLCJzb3VyY2VzIjpbImxpYi9hbGxvd2VkLW5ldHMvc2VydmljZXMvYmFzZS1hbGxvd2VkLW5ldHMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQ3BELE9BQU8sRUFBQyxlQUFlLEVBQTJCLE1BQU0sTUFBTSxDQUFDOztBQUUvRDtJQVFJO1FBQ0ksSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksZUFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFRCw0Q0FBVyxHQUFYO1FBQ0ksSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRWpDLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxTQUFTLEVBQUU7WUFDekIsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUMzQjtJQUNMLENBQUM7SUFNRCxzQkFBVywrQ0FBVztRQUl0Qjs7V0FFRzthQUNIO1lBQ0ksT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDO1FBQ3ZDLENBQUM7UUFiRDs7O1dBR0c7YUFDSCxVQUF1QixJQUFtQjtZQUN0QyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3JDLENBQUM7OztPQUFBO0lBY0Qsc0JBQVcsZ0RBQVk7UUFVdkI7O1dBRUc7YUFDSDtZQUNJLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ2hELENBQUM7UUFwQkQ7Ozs7V0FJRzthQUNILFVBQXdCLGNBQXlDO1lBQWpFLGlCQVFDO1lBUEcsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLFNBQVMsRUFBRTtnQkFDekIsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQzthQUMzQjtZQUVELElBQUksQ0FBQyxJQUFJLEdBQUcsY0FBYyxDQUFDLFNBQVMsQ0FBQyxVQUFBLElBQUk7Z0JBQ3JDLEtBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDckMsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDOzs7T0FBQTs7O2dCQWhESixVQUFVLFNBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCOzs7aUNBTEQ7Q0EyREMsQUF4REQsSUF3REM7U0FyRFksc0JBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlLCBPbkRlc3Ryb3l9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQmFzZUFsbG93ZWROZXRzU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG5cbiAgICBwcm90ZWN0ZWQgX2Jhc2VBbGxvd2VkTmV0czogQmVoYXZpb3JTdWJqZWN0PEFycmF5PHN0cmluZz4+O1xuICAgIHByaXZhdGUgX3N1YjogU3Vic2NyaXB0aW9uO1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuX2Jhc2VBbGxvd2VkTmV0cyA9IG5ldyBCZWhhdmlvclN1YmplY3QoW10pO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9iYXNlQWxsb3dlZE5ldHMuY29tcGxldGUoKTtcblxuICAgICAgICBpZiAodGhpcy5fc3ViICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuX3N1Yi51bnN1YnNjcmliZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cyB0aGUgbmV3IGlkZW50aWZpZXJzIG9mIHRoZSBiYXNlIGFsbG93ZWQgbmV0c1xuICAgICAqIEBwYXJhbSBuZXRzIG5ldyBiYXNlIG5ldCBpZGVudGlmaWVyc1xuICAgICAqL1xuICAgIHB1YmxpYyBzZXQgYWxsb3dlZE5ldHMobmV0czogQXJyYXk8c3RyaW5nPikge1xuICAgICAgICB0aGlzLl9iYXNlQWxsb3dlZE5ldHMubmV4dChuZXRzKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAcmV0dXJucyB0aGUgY3VycmVudGx5IHNldCBhbGxvd2VkIG5ldHMuIFJldHVybnMgYW4gZW1wdHkgYXJyYXkgaWYgbm8gdmFsdWUgd2FzIHNldC5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGFsbG93ZWROZXRzKCk6IEFycmF5PHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fYmFzZUFsbG93ZWROZXRzLnZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFN1YnNjcmliZXMgdG8gdGhlIHByb3ZpZGVkIGBPYnNlcnZhYmxlYCBhbmQgZm9yd2FyZHMgdGhlIGVtaXNzaW9ucyB0byB0aGUgYmFzZUFsbG93ZWROZXRzIGBTdWJqZWN0YC5cbiAgICAgKiBJZiBhIG5ldyBgT2JzZXJ2YWJsZWAgaXMgc2V0LCB0aGUgcHJldmlvdXMgU3Vic2NyaXB0aW9uIGlzIHVuc3Vic2NyaWJlZC5cbiAgICAgKiBAcGFyYW0gb2JzZXJ2YWJsZU5ldHMgYW4gb2JzZXJ2YWJsZSBlbWl0dGluZyB0aGUgbmV3IGJhc2UgbmV0IGlkZW50aWZpZXJzXG4gICAgICovXG4gICAgcHVibGljIHNldCBhbGxvd2VkTmV0cyQob2JzZXJ2YWJsZU5ldHM6IE9ic2VydmFibGU8QXJyYXk8c3RyaW5nPj4pIHtcbiAgICAgICAgaWYgKHRoaXMuX3N1YiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLl9zdWIudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX3N1YiA9IG9ic2VydmFibGVOZXRzLnN1YnNjcmliZShuZXRzID0+IHtcbiAgICAgICAgICAgIHRoaXMuX2Jhc2VBbGxvd2VkTmV0cy5uZXh0KG5ldHMpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAcmV0dXJucyBhbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIGN1cnJlbnRseSBzZXQgYmFzZSBhbGxvd2VkIG5ldHMgYW5kIGFueSBzdWJzZXF1ZW50IHZhbHVlc1xuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgYWxsb3dlZE5ldHMkKCk6IE9ic2VydmFibGU8QXJyYXk8c3RyaW5nPj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fYmFzZUFsbG93ZWROZXRzLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cbn1cbiJdfQ==
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1hbGxvd2VkLW5ldHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZXRncmlmL2NvbXBvbmVudHMtY29yZS8iLCJzb3VyY2VzIjpbImxpYi9hbGxvd2VkLW5ldHMvc2VydmljZXMvYmFzZS1hbGxvd2VkLW5ldHMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQ3BELE9BQU8sRUFBQyxlQUFlLEVBQTJCLE1BQU0sTUFBTSxDQUFDOztBQUUvRDtJQVFJO1FBQ0ksSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksZUFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFRCw0Q0FBVyxHQUFYO1FBQ0ksSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRWpDLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxTQUFTLEVBQUU7WUFDekIsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUMzQjtJQUNMLENBQUM7SUFNRCxzQkFBVywrQ0FBVztRQUl0Qjs7O1dBR0c7YUFDSDtZQUNJLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQztRQUN2QyxDQUFDO1FBZEQ7OztXQUdHO2FBQ0gsVUFBdUIsSUFBbUI7WUFDdEMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNyQyxDQUFDOzs7T0FBQTtJQWVELHNCQUFXLGdEQUFZO1FBVXZCOztXQUVHO2FBQ0g7WUFDSSxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNoRCxDQUFDO1FBcEJEOzs7O1dBSUc7YUFDSCxVQUF3QixjQUF5QztZQUFqRSxpQkFRQztZQVBHLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxTQUFTLEVBQUU7Z0JBQ3pCLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7YUFDM0I7WUFFRCxJQUFJLENBQUMsSUFBSSxHQUFHLGNBQWMsQ0FBQyxTQUFTLENBQUMsVUFBQSxJQUFJO2dCQUNyQyxLQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3JDLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQzs7O09BQUE7OztnQkFqREosVUFBVSxTQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQjs7O2lDQUxEO0NBNERDLEFBekRELElBeURDO1NBdERZLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZSwgT25EZXN0cm95fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEJhc2VBbGxvd2VkTmV0c1NlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuXG4gICAgcHJvdGVjdGVkIF9iYXNlQWxsb3dlZE5ldHM6IEJlaGF2aW9yU3ViamVjdDxBcnJheTxzdHJpbmc+PjtcbiAgICBwcml2YXRlIF9zdWI6IFN1YnNjcmlwdGlvbjtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLl9iYXNlQWxsb3dlZE5ldHMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KFtdKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fYmFzZUFsbG93ZWROZXRzLmNvbXBsZXRlKCk7XG5cbiAgICAgICAgaWYgKHRoaXMuX3N1YiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLl9zdWIudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIG5ldyBpZGVudGlmaWVycyBvZiB0aGUgYmFzZSBhbGxvd2VkIG5ldHNcbiAgICAgKiBAcGFyYW0gbmV0cyBuZXcgYmFzZSBuZXQgaWRlbnRpZmllcnNcbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0IGFsbG93ZWROZXRzKG5ldHM6IEFycmF5PHN0cmluZz4pIHtcbiAgICAgICAgdGhpcy5fYmFzZUFsbG93ZWROZXRzLm5leHQobmV0cyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWQgVGhpcyBtZXRob2Qgc2hvdWxkIG5vdCBiZSB1c2VkLiBVc2Uge0BsaW5rIEJhc2VBbGxvd2VkTmV0c1NlcnZpY2UjYWxsb3dlZE5ldHMkfSBpbnN0ZWFkXG4gICAgICogQHJldHVybnMgdGhlIGN1cnJlbnRseSBzZXQgYWxsb3dlZCBuZXRzLiBSZXR1cm5zIGFuIGVtcHR5IGFycmF5IGlmIG5vIHZhbHVlIHdhcyBzZXQuXG4gICAgICovXG4gICAgcHVibGljIGdldCBhbGxvd2VkTmV0cygpOiBBcnJheTxzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Jhc2VBbGxvd2VkTmV0cy52YWx1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTdWJzY3JpYmVzIHRvIHRoZSBwcm92aWRlZCBgT2JzZXJ2YWJsZWAgYW5kIGZvcndhcmRzIHRoZSBlbWlzc2lvbnMgdG8gdGhlIGJhc2VBbGxvd2VkTmV0cyBgU3ViamVjdGAuXG4gICAgICogSWYgYSBuZXcgYE9ic2VydmFibGVgIGlzIHNldCwgdGhlIHByZXZpb3VzIFN1YnNjcmlwdGlvbiBpcyB1bnN1YnNjcmliZWQuXG4gICAgICogQHBhcmFtIG9ic2VydmFibGVOZXRzIGFuIG9ic2VydmFibGUgZW1pdHRpbmcgdGhlIG5ldyBiYXNlIG5ldCBpZGVudGlmaWVyc1xuICAgICAqL1xuICAgIHB1YmxpYyBzZXQgYWxsb3dlZE5ldHMkKG9ic2VydmFibGVOZXRzOiBPYnNlcnZhYmxlPEFycmF5PHN0cmluZz4+KSB7XG4gICAgICAgIGlmICh0aGlzLl9zdWIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5fc3ViLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9zdWIgPSBvYnNlcnZhYmxlTmV0cy5zdWJzY3JpYmUobmV0cyA9PiB7XG4gICAgICAgICAgICB0aGlzLl9iYXNlQWxsb3dlZE5ldHMubmV4dChuZXRzKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQHJldHVybnMgYW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSBjdXJyZW50bHkgc2V0IGJhc2UgYWxsb3dlZCBuZXRzIGFuZCBhbnkgc3Vic2VxdWVudCB2YWx1ZXNcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGFsbG93ZWROZXRzJCgpOiBPYnNlcnZhYmxlPEFycmF5PHN0cmluZz4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Jhc2VBbGxvd2VkTmV0cy5hc09ic2VydmFibGUoKTtcbiAgICB9XG59XG4iXX0=
@@ -3,7 +3,7 @@ import { Injectable } from '@angular/core';
3
3
  import { ProcessService } from '../../../process/process.service';
4
4
  import { AllowedNetsService } from '../allowed-nets.service';
5
5
  import { switchMap } from 'rxjs/operators';
6
- import { of } from 'rxjs';
6
+ import { BehaviorSubject, of } from 'rxjs';
7
7
  import { PetriNetResourceService } from '../../../resources/engine-endpoint/petri-net-resource.service';
8
8
  import { ConfigurationService } from '../../../configuration/configuration.service';
9
9
  import { LoggerService } from '../../../logger/services/logger.service';
@@ -33,12 +33,14 @@ export function navigationItemTaskAllowedNetsServiceFactory(factory, baseAllowed
33
33
  if (filterField === undefined) {
34
34
  throw new Error("Provided navigation item task data does not contain a filter field with ID '" + UserFilterConstants.FILTER_FIELD_ID + "'! Allowed nets cannot be generated from it!");
35
35
  }
36
- var nets = __spread(filterField.allowedNets);
36
+ var nets = new BehaviorSubject(Array.from(new Set(__spread(filterField.allowedNets))));
37
37
  if (filterField.filterMetadata.inheritAllowedNets) {
38
- nets.push.apply(nets, __spread(baseAllowedNets.allowedNets));
38
+ baseAllowedNets.allowedNets$.subscribe(function (allowedNets) {
39
+ var netSet = new Set(allowedNets);
40
+ nets.next(Array.from(netSet));
41
+ });
39
42
  }
40
- var uniqueNets = new Set(nets);
41
- return factory.createFromArray(Array.from(uniqueNets));
43
+ return factory.createFromObservable(nets.asObservable());
42
44
  }
43
45
  /**
44
46
  * Simplifies the creation of {@link AllowedNetsService} instances
@@ -129,4 +131,4 @@ var AllowedNetsServiceFactory = /** @class */ (function () {
129
131
  return AllowedNetsServiceFactory;
130
132
  }());
131
133
  export { AllowedNetsServiceFactory };
132
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxsb3dlZC1uZXRzLXNlcnZpY2UtZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZXRncmlmL2NvbXBvbmVudHMtY29yZS8iLCJzb3VyY2VzIjpbImxpYi9hbGxvd2VkLW5ldHMvc2VydmljZXMvZmFjdG9yeS9hbGxvd2VkLW5ldHMtc2VydmljZS1mYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUNoRSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUMzRCxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDekMsT0FBTyxFQUFhLEVBQUUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNwQyxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSwrREFBK0QsQ0FBQztBQUN0RyxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSw4Q0FBOEMsQ0FBQztBQUVsRixPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFJdEUsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDckUsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sOENBQThDLENBQUM7QUFFakYsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sNEJBQTRCLENBQUM7Ozs7OztBQUtsRTs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLCtCQUErQixDQUFDLE9BQWtDLEVBQ2xDLE9BQW1DOztJQUMvRSxPQUFPLE9BQU8sQ0FBQyxlQUFlLE9BQUMsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLFdBQVcsbUNBQUksRUFBRSxDQUFDLENBQUM7QUFDL0QsQ0FBQztBQUVEOzs7R0FHRztBQUNILE1BQU0sVUFBVSwyQ0FBMkMsQ0FBQyxPQUFrQyxFQUNsQyxl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ZSxFQUNmLElBQUksQ0FBQyxlQUFlLENBQ3ZCLENBQUM7SUFDTixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLHdEQUFvQixHQUEzQixVQUE0QixVQUFnQjtRQUN4QyxJQUFNLFVBQVUsR0FBRyxnQkFBZ0IsQ0FBQyxVQUFVLEVBQUUsbUJBQW1CLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDckYsSUFBSSxVQUFVLEtBQUssU0FBUyxFQUFFO1lBQzFCLE1BQU0sSUFBSSxLQUFLLENBQUMsa0NBQWdDLFVBQVUsQ0FBQyxLQUFLLG1CQUFjLFVBQVUsQ0FBQyxRQUFRLE1BQUcsQ0FBQyxDQUFDO1NBQ3pHO1FBQ0QsT0FBTyxJQUFJLGtCQUFrQixDQUN6QixFQUFFLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxFQUMxQixJQUFJLENBQUMsZUFBZSxDQUN2QixDQUFDO0lBQ04sQ0FBQzs7Z0JBbEZzQyxjQUFjO2dCQUNaLHVCQUF1QjtnQkFDMUIsb0JBQW9CO2dCQUM5QixhQUFhOzs7O2dCQVI1QyxVQUFVLFNBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCOzs7Z0JBM0RPLGNBQWM7Z0JBSWQsdUJBQXVCO2dCQUN2QixvQkFBb0I7Z0JBRXBCLGFBQWE7O29DQVJyQjtDQWtKQyxBQXhGRCxJQXdGQztTQXJGWSx5QkFBeUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtQcm9jZXNzU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vcHJvY2Vzcy9wcm9jZXNzLnNlcnZpY2UnO1xuaW1wb3J0IHtBbGxvd2VkTmV0c1NlcnZpY2V9IGZyb20gJy4uL2FsbG93ZWQtbmV0cy5zZXJ2aWNlJztcbmltcG9ydCB7c3dpdGNoTWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge09ic2VydmFibGUsIG9mfSBmcm9tICdyeGpzJztcbmltcG9ydCB7UGV0cmlOZXRSZXNvdXJjZVNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3Jlc291cmNlcy9lbmdpbmUtZW5kcG9pbnQvcGV0cmktbmV0LXJlc291cmNlLnNlcnZpY2UnO1xuaW1wb3J0IHtDb25maWd1cmF0aW9uU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vY29uZmlndXJhdGlvbi9jb25maWd1cmF0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHtDYXNlVmlld1BhcmFtc30gZnJvbSAnLi4vLi4vLi4vdmlldy9jYXNlLXZpZXcvbW9kZWxzL2Nhc2Utdmlldy1wYXJhbXMnO1xuaW1wb3J0IHtMb2dnZXJTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9sb2dnZXIvc2VydmljZXMvbG9nZ2VyLnNlcnZpY2UnO1xuaW1wb3J0IHtUYXNrVmlld1BhcmFtc30gZnJvbSAnLi4vLi4vLi4vdmlldy90YXNrLXZpZXcvbW9kZWxzL3Rhc2stdmlldy1wYXJhbXMnO1xuaW1wb3J0IHtJbmplY3RlZFRhYmJlZFRhc2tWaWV3RGF0YX0gZnJvbSAnLi4vLi4vLi4vdmlldy90YXNrLXZpZXcvbW9kZWxzL2luamVjdGVkLXRhYmJlZC10YXNrLXZpZXctZGF0YSc7XG5pbXBvcnQge0Nhc2V9IGZyb20gJy4uLy4uLy4uL3Jlc291cmNlcy9pbnRlcmZhY2UvY2FzZSc7XG5pbXBvcnQge2dldEltbWVkaWF0ZURhdGF9IGZyb20gJy4uLy4uLy4uL3V0aWxpdHkvZ2V0LWltbWVkaWF0ZS1kYXRhJztcbmltcG9ydCB7VXNlckZpbHRlckNvbnN0YW50c30gZnJvbSAnLi4vLi4vLi4vZmlsdGVyL21vZGVscy91c2VyLWZpbHRlci1jb25zdGFudHMnO1xuaW1wb3J0IHtEYXRhR3JvdXB9IGZyb20gJy4uLy4uLy4uL3Jlc291cmNlcy9wdWJsaWMtYXBpJztcbmltcG9ydCB7Z2V0RmllbGRGcm9tRGF0YUdyb3Vwc30gZnJvbSAnLi4vLi4vLi4vdXRpbGl0eS9nZXQtZmllbGQnO1xuaW1wb3J0IHtGaWx0ZXJGaWVsZH0gZnJvbSAnLi4vLi4vLi4vZGF0YS1maWVsZHMvZmlsdGVyLWZpZWxkL21vZGVscy9maWx0ZXItZmllbGQnO1xuaW1wb3J0IHtCYXNlQWxsb3dlZE5ldHNTZXJ2aWNlfSBmcm9tICcuLi9iYXNlLWFsbG93ZWQtbmV0cy5zZXJ2aWNlJztcblxuXG4vKipcbiAqIENvbnZlbmllbmNlIG1ldGhvZCB0aGF0IGNhbiBiZSB1c2VkIGFzIGFuIGFsbG93ZWQgbmV0cyBmYWN0b3J5IGZvciB0YWJiZWQgdGFzayB2aWV3cy5cbiAqIElmIG5vIGFsbG93ZWQgbmV0cyBhcmUgcHJvdmlkZWQgaW4gdGhlIGluamVjdGVkIGRhdGEgdGhlbiBhbiB7QGxpbmsgQWxsb3dlZE5ldHNTZXJ2aWNlfSB3aXRoIG5vIGFsbG93ZWQgbmV0cyBpcyBjcmVhdGVkLlxuICogSXQgaGFzIGEgZGVwZW5kZW5jeSBvbiB0aGlzIGNsYXNzIGFuZCB7QGxpbmsgTkFFX1RBQl9EQVRBfSBpbmplY3Rpb24gdG9rZW4uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0YWJiZWRBbGxvd2VkTmV0c1NlcnZpY2VGYWN0b3J5KGZhY3Rvcnk6IEFsbG93ZWROZXRzU2VydmljZUZhY3RvcnksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJEYXRhOiBJbmplY3RlZFRhYmJlZFRhc2tWaWV3RGF0YSk6IEFsbG93ZWROZXRzU2VydmljZSB7XG4gICAgcmV0dXJuIGZhY3RvcnkuY3JlYXRlRnJvbUFycmF5KHRhYkRhdGE/LmFsbG93ZWROZXRzID8/IFtdKTtcbn1cblxuLyoqXG4gKiBDb252ZW5pZW5jZSBtZXRob2QgdGhhdCBjYW4gYmUgdXNlZCBhcyBhbiBhbGxvd2VkIG5ldHMgZmFjdG9yeSBmb3Igdmlld3MgdGhhdCBhcmUgbG9hZGVkIGZyb20gZmlsdGVyIHByb2Nlc3MgaW5zdGFuY2VzLlxuICogSXQgaGFzIGEgZGVwZW5kZW5jeSBvbiB0aGlzIGNsYXNzIGFuZCB7QGxpbmsgTkFFX05BVklHQVRJT05fSVRFTV9UQVNLX0RBVEF9IGluamVjdGlvbiB0b2tlbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5hdmlnYXRpb25JdGVtVGFza0FsbG93ZWROZXRzU2VydmljZUZhY3RvcnkoZmFjdG9yeTogQWxsb3dlZE5ldHNTZXJ2aWNlRmFjdG9yeSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhc2VBbGxvd2VkTmV0czogQmFzZUFsbG93ZWROZXRzU2VydmljZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hdmlnYXRpb25JdGVtVGFza0RhdGE6IEFycmF5PERhdGFHcm91cD4pOiBBbGxvd2VkTmV0c1NlcnZpY2Uge1xuICAgIGNvbnN0IGZpbHRlckZpZWxkID0gZ2V0RmllbGRGcm9tRGF0YUdyb3VwcyhuYXZpZ2F0aW9uSXRlbVRhc2tEYXRhLCBVc2VyRmlsdGVyQ29uc3RhbnRzLkZJTFRFUl9GSUVMRF9JRCkgYXMgRmlsdGVyRmllbGQ7XG5cbiAgICBpZiAoZmlsdGVyRmllbGQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFByb3ZpZGVkIG5hdmlnYXRpb24gaXRlbSB0YXNrIGRhdGEgZG9lcyBub3QgY29udGFpbiBhIGZpbHRlciBmaWVsZCB3aXRoIElEICcke1VzZXJGaWx0ZXJDb25zdGFudHMuRklMVEVSX0ZJRUxEX0lEXG4gICAgICAgIH0nISBBbGxvd2VkIG5ldHMgY2Fubm90IGJlIGdlbmVyYXRlZCBmcm9tIGl0IWApO1xuICAgIH1cblxuICAgIGNvbnN0IG5ldHMgPSBbLi4uZmlsdGVyRmllbGQuYWxsb3dlZE5ldHNdO1xuXG4gICAgaWYgKGZpbHRlckZpZWxkLmZpbHRlck1ldGFkYXRhLmluaGVyaXRBbGxvd2VkTmV0cykge1xuICAgICAgICBuZXRzLnB1c2goLi4uYmFzZUFsbG93ZWROZXRzLmFsbG93ZWROZXRzKTtcbiAgICB9XG5cbiAgICBjb25zdCB1bmlxdWVOZXRzID0gbmV3IFNldDxzdHJpbmc+KG5ldHMpO1xuXG4gICAgcmV0dXJuIGZhY3RvcnkuY3JlYXRlRnJvbUFycmF5KEFycmF5LmZyb20odW5pcXVlTmV0cykpO1xufVxuXG4vKipcbiAqIFNpbXBsaWZpZXMgdGhlIGNyZWF0aW9uIG9mIHtAbGluayBBbGxvd2VkTmV0c1NlcnZpY2V9IGluc3RhbmNlc1xuICovXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEFsbG93ZWROZXRzU2VydmljZUZhY3Rvcnkge1xuXG4gICAgY29uc3RydWN0b3IocHJvdGVjdGVkIF9wcm9jZXNzU2VydmljZTogUHJvY2Vzc1NlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF9wZXRyaU5ldFJlc291cmNlOiBQZXRyaU5ldFJlc291cmNlU2VydmljZSxcbiAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX2NvbmZpZ1NlcnZpY2U6IENvbmZpZ3VyYXRpb25TZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfbG9nOiBMb2dnZXJTZXJ2aWNlKSB7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhbiBpbnN0YW5jZSBvZiB7QGxpbmsgQWxsb3dlZE5ldHNTZXJ2aWNlfSB3aXRob3V0IGhhdmluZyB0byBwcm92aWRlIGFsbCB0aGUgZGVwZW5kZW5jaWVzIHlvdXJzZWxmLlxuICAgICAqIEByZXR1cm5zIGFuIGluc3RhbmNlIG9mIHtAbGluayBBbGxvd2VkTmV0c1NlcnZpY2V9IHdpdGggYWxsIG5ldHMgc2V0IGFzIHRoZSBgYWxsb3dlZE5ldHNgXG4gICAgICovXG4gICAgcHVibGljIGNyZWF0ZVdpdGhBbGxOZXRzKCk6IEFsbG93ZWROZXRzU2VydmljZSB7XG4gICAgICAgIHJldHVybiBuZXcgQWxsb3dlZE5ldHNTZXJ2aWNlKFxuICAgICAgICAgICAgdGhpcy5fcGV0cmlOZXRSZXNvdXJjZS5nZXRBbGwoKS5waXBlKFxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcChuZXRzID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG5ldHMgJiYgQXJyYXkuaXNBcnJheShuZXRzKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9mKG5ldHMubWFwKG4gPT4gbi5pZGVudGlmaWVyKSk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gb2YoW10pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICB0aGlzLl9wcm9jZXNzU2VydmljZVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYW4gaW5zdGFuY2Ugb2Yge0BsaW5rIEFsbG93ZWROZXRzU2VydmljZX0gd2l0aG91dCBoYXZpbmcgdG8gcHJvdmlkZSBhbGwgdGhlIGRlcGVuZGVuY2llcyB5b3Vyc2VsZi5cbiAgICAgKiBAcGFyYW0gYWxsb3dlZE5ldHNJZGVudGlmaWVycyBpZGVudGlmaWVycyBvZiB0aGUgYWxsb3dlZCBuZXRzXG4gICAgICovXG4gICAgcHVibGljIGNyZWF0ZUZyb21BcnJheShhbGxvd2VkTmV0c0lkZW50aWZpZXJzOiBBcnJheTxzdHJpbmc+KTogQWxsb3dlZE5ldHNTZXJ2aWNlIHtcbiAgICAgICAgcmV0dXJuIG5ldyBBbGxvd2VkTmV0c1NlcnZpY2UoXG4gICAgICAgICAgICBvZihhbGxvd2VkTmV0c0lkZW50aWZpZXJzKSxcbiAgICAgICAgICAgIHRoaXMuX3Byb2Nlc3NTZXJ2aWNlXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhbiBpbnN0YW5jZSBvZiB7QGxpbmsgQWxsb3dlZE5ldHNTZXJ2aWNlfSB3aXRob3V0IGhhdmluZyB0byBwcm92aWRlIGFsbCB0aGUgZGVwZW5kZW5jaWVzIHlvdXJzZWxmLlxuICAgICAqIEBwYXJhbSB3ZWJWaWV3UGF0aCBwYXRoIHRvIHRoZSB2aWV3IGFzIHNwZWNpZmllZCBpbiBpdHMgY29uZmlndXJhdGlvbi4gTm8gbGVhZGluZyBiYWNrc2xhc2guXG4gICAgICogQWxsb3dlZCBuZXRzIGFyZSBsb2FkZWQgZnJvbSB0aGUgY29uZmlndXJhdGlvbiBvZiB0aGUgdmlldy5cbiAgICAgKi9cbiAgICBwdWJsaWMgY3JlYXRlRnJvbUNvbmZpZyh3ZWJWaWV3UGF0aDogc3RyaW5nKTogQWxsb3dlZE5ldHNTZXJ2aWNlIHtcbiAgICAgICAgY29uc3QgdmlldyA9IHRoaXMuX2NvbmZpZ1NlcnZpY2UuZ2V0Vmlld0J5UGF0aCh3ZWJWaWV3UGF0aCk7XG4gICAgICAgIGlmICh2aWV3Py5sYXlvdXQ/LnBhcmFtcyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYENhbid0IGxvYWQgY29uZmlndXJhdGlvbiBmb3IgdmlldyB3aXRoIHdlYlBhdGg6ICcke3dlYlZpZXdQYXRofSdgKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB2aWV3UGFyYW1zID0gdmlldy5sYXlvdXQucGFyYW1zIGFzIENhc2VWaWV3UGFyYW1zIHwgVGFza1ZpZXdQYXJhbXM7XG4gICAgICAgIGlmICh2aWV3UGFyYW1zLmFsbG93ZWROZXRzID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuX2xvZy53YXJuKGBObyAnYWxsb3dlZE5ldHMnIHByb3ZpZGVkIGZvciB2aWV3IHdpdGggd2ViUGF0aCAnJHt3ZWJWaWV3UGF0aH0nYCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ldyBBbGxvd2VkTmV0c1NlcnZpY2UoXG4gICAgICAgICAgICBvZih2aWV3UGFyYW1zLmFsbG93ZWROZXRzID8/IFtdKSxcbiAgICAgICAgICAgIHRoaXMuX3Byb2Nlc3NTZXJ2aWNlXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhbiBpbnN0YW5jZSBvZiB7QGxpbmsgQWxsb3dlZE5ldHNTZXJ2aWNlfSB3aXRob3V0IGhhdmluZyB0byBwcm92aWRlIGFsbCB0aGUgZGVwZW5kZW5jaWVzIHlvdXJzZWxmLlxuICAgICAqIEBwYXJhbSBuZXRJZGVudGlmaWVycyQgb2JzZXJ2YWJsZSBjb250YWluaW5nIHRoZSBpZGVudGlmaWVycyBvZiB0aGUgYWxsb3dlZCBuZXRzLlxuICAgICAqIFdoZW4gYSBuZXcgdmFsdWUgaXMgZW1pdHRlZCB0aGUgYWxsb3dlZCBuZXRzIHdpbGwgYmUgdXBkYXRlZC5cbiAgICAgKi9cbiAgICBwdWJsaWMgY3JlYXRlRnJvbU9ic2VydmFibGUobmV0SWRlbnRpZmllcnMkOiBPYnNlcnZhYmxlPEFycmF5PHN0cmluZz4+KTogQWxsb3dlZE5ldHNTZXJ2aWNlIHtcbiAgICAgICAgcmV0dXJuIG5ldyBBbGxvd2VkTmV0c1NlcnZpY2UoXG4gICAgICAgICAgICBuZXRJZGVudGlmaWVycyQsXG4gICAgICAgICAgICB0aGlzLl9wcm9jZXNzU2VydmljZVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYW4gaW5zdGFuY2Ugb2Yge0BsaW5rIEFsbG93ZWROZXRzU2VydmljZX0gd2l0aG91dCBoYXZpbmcgdG8gcHJvdmlkZSBhbGwgdGhlIGRlcGVuZGVuY2llcyB5b3Vyc2VsZi5cbiAgICAgKiBAcGFyYW0gZmlsdGVyQ2FzZSBhIGZpbHRlciBwcm9jZXNzIGluc3RhbmNlXG4gICAgICogQWxsb3dlZCBuZXRzIGFyZSBzZXQgZnJvbSBmaWx0ZXIgcHJvY2VzcyBpbW1lZGlhdGUgZGF0YVxuICAgICAqL1xuICAgIHB1YmxpYyBjcmVhdGVGcm9tRmlsdGVyQ2FzZShmaWx0ZXJDYXNlOiBDYXNlKTogQWxsb3dlZE5ldHNTZXJ2aWNlIHtcbiAgICAgICAgY29uc3QgZmlsdGVyRGF0YSA9IGdldEltbWVkaWF0ZURhdGEoZmlsdGVyQ2FzZSwgVXNlckZpbHRlckNvbnN0YW50cy5GSUxURVJfRklFTERfSUQpO1xuICAgICAgICBpZiAoZmlsdGVyRGF0YSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCBnZXQgZmlsdGVyIGZyb20gY2FzZSAnJHtmaWx0ZXJDYXNlLnRpdGxlfScgd2l0aCBpZCAnJHtmaWx0ZXJDYXNlLnN0cmluZ0lkfSdgKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmV3IEFsbG93ZWROZXRzU2VydmljZShcbiAgICAgICAgICAgIG9mKGZpbHRlckRhdGEuYWxsb3dlZE5ldHMpLFxuICAgICAgICAgICAgdGhpcy5fcHJvY2Vzc1NlcnZpY2VcbiAgICAgICAgKTtcbiAgICB9XG59XG4iXX0=
134
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxsb3dlZC1uZXRzLXNlcnZpY2UtZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZXRncmlmL2NvbXBvbmVudHMtY29yZS8iLCJzb3VyY2VzIjpbImxpYi9hbGxvd2VkLW5ldHMvc2VydmljZXMvZmFjdG9yeS9hbGxvd2VkLW5ldHMtc2VydmljZS1mYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUNoRSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUMzRCxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDekMsT0FBTyxFQUFFLGVBQWUsRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkQsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sK0RBQStELENBQUM7QUFDdEcsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sOENBQThDLENBQUM7QUFFbEYsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHlDQUF5QyxDQUFDO0FBSXRFLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQ3JFLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLDhDQUE4QyxDQUFDO0FBRWpGLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLDRCQUE0QixDQUFDOzs7Ozs7QUFLbEU7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSwrQkFBK0IsQ0FBQyxPQUFrQyxFQUNsQyxPQUFtQzs7SUFDL0UsT0FBTyxPQUFPLENBQUMsZUFBZSxPQUFDLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxXQUFXLG1DQUFJLEVBQUUsQ0FBQyxDQUFDO0FBQy9ELENBQUM7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsMkNBQTJDLENBQUMsT0FB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LFdBQVcsbUNBQUksRUFBRSxDQUFDLEVBQ2hDLElBQUksQ0FBQyxlQUFlLENBQ3ZCLENBQUM7SUFDTixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLHdEQUFvQixHQUEzQixVQUE0QixlQUEwQztRQUNsRSxPQUFPLElBQUksa0JBQWtCLENBQ3pCLGVBQWUsRUFDZixJQUFJLENBQUMsZUFBZSxDQUN2QixDQUFDO0lBQ04sQ0FBQztJQUVEOzs7O09BSUc7SUFDSSx3REFBb0IsR0FBM0IsVUFBNEIsVUFBZ0I7UUFDeEMsSUFBTSxVQUFVLEdBQUcsZ0JBQWdCLENBQUMsVUFBVSxFQUFFLG1CQUFtQixDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ3JGLElBQUksVUFBVSxLQUFLLFNBQVMsRUFBRTtZQUMxQixNQUFNLElBQUksS0FBSyxDQUFDLGtDQUFnQyxVQUFVLENBQUMsS0FBSyxtQkFBYyxVQUFVLENBQUMsUUFBUSxNQUFHLENBQUMsQ0FBQztTQUN6RztRQUNELE9BQU8sSUFBSSxrQkFBa0IsQ0FDekIsRUFBRSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsRUFDMUIsSUFBSSxDQUFDLGVBQWUsQ0FDdkIsQ0FBQztJQUNOLENBQUM7O2dCQWxGc0MsY0FBYztnQkFDWix1QkFBdUI7Z0JBQzFCLG9CQUFvQjtnQkFDOUIsYUFBYTs7OztnQkFSNUMsVUFBVSxTQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQjs7O2dCQTFETyxjQUFjO2dCQUlkLHVCQUF1QjtnQkFDdkIsb0JBQW9CO2dCQUVwQixhQUFhOztvQ0FSckI7Q0FpSkMsQUF4RkQsSUF3RkM7U0FyRlkseUJBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7UHJvY2Vzc1NlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3Byb2Nlc3MvcHJvY2Vzcy5zZXJ2aWNlJztcbmltcG9ydCB7QWxsb3dlZE5ldHNTZXJ2aWNlfSBmcm9tICcuLi9hbGxvd2VkLW5ldHMuc2VydmljZSc7XG5pbXBvcnQge3N3aXRjaE1hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtQZXRyaU5ldFJlc291cmNlU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vcmVzb3VyY2VzL2VuZ2luZS1lbmRwb2ludC9wZXRyaS1uZXQtcmVzb3VyY2Uuc2VydmljZSc7XG5pbXBvcnQge0NvbmZpZ3VyYXRpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9jb25maWd1cmF0aW9uL2NvbmZpZ3VyYXRpb24uc2VydmljZSc7XG5pbXBvcnQge0Nhc2VWaWV3UGFyYW1zfSBmcm9tICcuLi8uLi8uLi92aWV3L2Nhc2Utdmlldy9tb2RlbHMvY2FzZS12aWV3LXBhcmFtcyc7XG5pbXBvcnQge0xvZ2dlclNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL2xvZ2dlci9zZXJ2aWNlcy9sb2dnZXIuc2VydmljZSc7XG5pbXBvcnQge1Rhc2tWaWV3UGFyYW1zfSBmcm9tICcuLi8uLi8uLi92aWV3L3Rhc2stdmlldy9tb2RlbHMvdGFzay12aWV3LXBhcmFtcyc7XG5pbXBvcnQge0luamVjdGVkVGFiYmVkVGFza1ZpZXdEYXRhfSBmcm9tICcuLi8uLi8uLi92aWV3L3Rhc2stdmlldy9tb2RlbHMvaW5qZWN0ZWQtdGFiYmVkLXRhc2stdmlldy1kYXRhJztcbmltcG9ydCB7Q2FzZX0gZnJvbSAnLi4vLi4vLi4vcmVzb3VyY2VzL2ludGVyZmFjZS9jYXNlJztcbmltcG9ydCB7Z2V0SW1tZWRpYXRlRGF0YX0gZnJvbSAnLi4vLi4vLi4vdXRpbGl0eS9nZXQtaW1tZWRpYXRlLWRhdGEnO1xuaW1wb3J0IHtVc2VyRmlsdGVyQ29uc3RhbnRzfSBmcm9tICcuLi8uLi8uLi9maWx0ZXIvbW9kZWxzL3VzZXItZmlsdGVyLWNvbnN0YW50cyc7XG5pbXBvcnQge0RhdGFHcm91cH0gZnJvbSAnLi4vLi4vLi4vcmVzb3VyY2VzL3B1YmxpYy1hcGknO1xuaW1wb3J0IHtnZXRGaWVsZEZyb21EYXRhR3JvdXBzfSBmcm9tICcuLi8uLi8uLi91dGlsaXR5L2dldC1maWVsZCc7XG5pbXBvcnQge0ZpbHRlckZpZWxkfSBmcm9tICcuLi8uLi8uLi9kYXRhLWZpZWxkcy9maWx0ZXItZmllbGQvbW9kZWxzL2ZpbHRlci1maWVsZCc7XG5pbXBvcnQge0Jhc2VBbGxvd2VkTmV0c1NlcnZpY2V9IGZyb20gJy4uL2Jhc2UtYWxsb3dlZC1uZXRzLnNlcnZpY2UnO1xuXG5cbi8qKlxuICogQ29udmVuaWVuY2UgbWV0aG9kIHRoYXQgY2FuIGJlIHVzZWQgYXMgYW4gYWxsb3dlZCBuZXRzIGZhY3RvcnkgZm9yIHRhYmJlZCB0YXNrIHZpZXdzLlxuICogSWYgbm8gYWxsb3dlZCBuZXRzIGFyZSBwcm92aWRlZCBpbiB0aGUgaW5qZWN0ZWQgZGF0YSB0aGVuIGFuIHtAbGluayBBbGxvd2VkTmV0c1NlcnZpY2V9IHdpdGggbm8gYWxsb3dlZCBuZXRzIGlzIGNyZWF0ZWQuXG4gKiBJdCBoYXMgYSBkZXBlbmRlbmN5IG9uIHRoaXMgY2xhc3MgYW5kIHtAbGluayBOQUVfVEFCX0RBVEF9IGluamVjdGlvbiB0b2tlbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRhYmJlZEFsbG93ZWROZXRzU2VydmljZUZhY3RvcnkoZmFjdG9yeTogQWxsb3dlZE5ldHNTZXJ2aWNlRmFjdG9yeSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYkRhdGE6IEluamVjdGVkVGFiYmVkVGFza1ZpZXdEYXRhKTogQWxsb3dlZE5ldHNTZXJ2aWNlIHtcbiAgICByZXR1cm4gZmFjdG9yeS5jcmVhdGVGcm9tQXJyYXkodGFiRGF0YT8uYWxsb3dlZE5ldHMgPz8gW10pO1xufVxuXG4vKipcbiAqIENvbnZlbmllbmNlIG1ldGhvZCB0aGF0IGNhbiBiZSB1c2VkIGFzIGFuIGFsbG93ZWQgbmV0cyBmYWN0b3J5IGZvciB2aWV3cyB0aGF0IGFyZSBsb2FkZWQgZnJvbSBmaWx0ZXIgcHJvY2VzcyBpbnN0YW5jZXMuXG4gKiBJdCBoYXMgYSBkZXBlbmRlbmN5IG9uIHRoaXMgY2xhc3MgYW5kIHtAbGluayBOQUVfTkFWSUdBVElPTl9JVEVNX1RBU0tfREFUQX0gaW5qZWN0aW9uIHRva2VuLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbmF2aWdhdGlvbkl0ZW1UYXNrQWxsb3dlZE5ldHNTZXJ2aWNlRmFjdG9yeShmYWN0b3J5OiBBbGxvd2VkTmV0c1NlcnZpY2VGYWN0b3J5LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFzZUFsbG93ZWROZXRzOiBCYXNlQWxsb3dlZE5ldHNTZXJ2aWNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmF2aWdhdGlvbkl0ZW1UYXNrRGF0YTogQXJyYXk8RGF0YUdyb3VwPik6IEFsbG93ZWROZXRzU2VydmljZSB7XG4gICAgY29uc3QgZmlsdGVyRmllbGQgPSBnZXRGaWVsZEZyb21EYXRhR3JvdXBzKG5hdmlnYXRpb25JdGVtVGFza0RhdGEsIFVzZXJGaWx0ZXJDb25zdGFudHMuRklMVEVSX0ZJRUxEX0lEKSBhcyBGaWx0ZXJGaWVsZDtcblxuICAgIGlmIChmaWx0ZXJGaWVsZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgUHJvdmlkZWQgbmF2aWdhdGlvbiBpdGVtIHRhc2sgZGF0YSBkb2VzIG5vdCBjb250YWluIGEgZmlsdGVyIGZpZWxkIHdpdGggSUQgJyR7VXNlckZpbHRlckNvbnN0YW50cy5GSUxURVJfRklFTERfSURcbiAgICAgICAgfSchIEFsbG93ZWQgbmV0cyBjYW5ub3QgYmUgZ2VuZXJhdGVkIGZyb20gaXQhYCk7XG4gICAgfVxuICAgIGNvbnN0IG5ldHMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEFycmF5PHN0cmluZz4+KEFycmF5LmZyb20obmV3IFNldDxzdHJpbmc+KFsuLi5maWx0ZXJGaWVsZC5hbGxvd2VkTmV0c10pKSk7XG5cbiAgICBpZiAoZmlsdGVyRmllbGQuZmlsdGVyTWV0YWRhdGEuaW5oZXJpdEFsbG93ZWROZXRzKSB7XG4gICAgICAgIGJhc2VBbGxvd2VkTmV0cy5hbGxvd2VkTmV0cyQuc3Vic2NyaWJlKGFsbG93ZWROZXRzID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG5ldFNldCA9IG5ldyBTZXQ8c3RyaW5nPihhbGxvd2VkTmV0cyk7XG4gICAgICAgICAgICBuZXRzLm5leHQoQXJyYXkuZnJvbShuZXRTZXQpKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBmYWN0b3J5LmNyZWF0ZUZyb21PYnNlcnZhYmxlKG5ldHMuYXNPYnNlcnZhYmxlKCkpO1xufVxuXG4vKipcbiAqIFNpbXBsaWZpZXMgdGhlIGNyZWF0aW9uIG9mIHtAbGluayBBbGxvd2VkTmV0c1NlcnZpY2V9IGluc3RhbmNlc1xuICovXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEFsbG93ZWROZXRzU2VydmljZUZhY3Rvcnkge1xuXG4gICAgY29uc3RydWN0b3IocHJvdGVjdGVkIF9wcm9jZXNzU2VydmljZTogUHJvY2Vzc1NlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF9wZXRyaU5ldFJlc291cmNlOiBQZXRyaU5ldFJlc291cmNlU2VydmljZSxcbiAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX2NvbmZpZ1NlcnZpY2U6IENvbmZpZ3VyYXRpb25TZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfbG9nOiBMb2dnZXJTZXJ2aWNlKSB7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhbiBpbnN0YW5jZSBvZiB7QGxpbmsgQWxsb3dlZE5ldHNTZXJ2aWNlfSB3aXRob3V0IGhhdmluZyB0byBwcm92aWRlIGFsbCB0aGUgZGVwZW5kZW5jaWVzIHlvdXJzZWxmLlxuICAgICAqIEByZXR1cm5zIGFuIGluc3RhbmNlIG9mIHtAbGluayBBbGxvd2VkTmV0c1NlcnZpY2V9IHdpdGggYWxsIG5ldHMgc2V0IGFzIHRoZSBgYWxsb3dlZE5ldHNgXG4gICAgICovXG4gICAgcHVibGljIGNyZWF0ZVdpdGhBbGxOZXRzKCk6IEFsbG93ZWROZXRzU2VydmljZSB7XG4gICAgICAgIHJldHVybiBuZXcgQWxsb3dlZE5ldHNTZXJ2aWNlKFxuICAgICAgICAgICAgdGhpcy5fcGV0cmlOZXRSZXNvdXJjZS5nZXRBbGwoKS5waXBlKFxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcChuZXRzID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG5ldHMgJiYgQXJyYXkuaXNBcnJheShuZXRzKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9mKG5ldHMubWFwKG4gPT4gbi5pZGVudGlmaWVyKSk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gb2YoW10pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICB0aGlzLl9wcm9jZXNzU2VydmljZVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYW4gaW5zdGFuY2Ugb2Yge0BsaW5rIEFsbG93ZWROZXRzU2VydmljZX0gd2l0aG91dCBoYXZpbmcgdG8gcHJvdmlkZSBhbGwgdGhlIGRlcGVuZGVuY2llcyB5b3Vyc2VsZi5cbiAgICAgKiBAcGFyYW0gYWxsb3dlZE5ldHNJZGVudGlmaWVycyBpZGVudGlmaWVycyBvZiB0aGUgYWxsb3dlZCBuZXRzXG4gICAgICovXG4gICAgcHVibGljIGNyZWF0ZUZyb21BcnJheShhbGxvd2VkTmV0c0lkZW50aWZpZXJzOiBBcnJheTxzdHJpbmc+KTogQWxsb3dlZE5ldHNTZXJ2aWNlIHtcbiAgICAgICAgcmV0dXJuIG5ldyBBbGxvd2VkTmV0c1NlcnZpY2UoXG4gICAgICAgICAgICBvZihhbGxvd2VkTmV0c0lkZW50aWZpZXJzKSxcbiAgICAgICAgICAgIHRoaXMuX3Byb2Nlc3NTZXJ2aWNlXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhbiBpbnN0YW5jZSBvZiB7QGxpbmsgQWxsb3dlZE5ldHNTZXJ2aWNlfSB3aXRob3V0IGhhdmluZyB0byBwcm92aWRlIGFsbCB0aGUgZGVwZW5kZW5jaWVzIHlvdXJzZWxmLlxuICAgICAqIEBwYXJhbSB3ZWJWaWV3UGF0aCBwYXRoIHRvIHRoZSB2aWV3IGFzIHNwZWNpZmllZCBpbiBpdHMgY29uZmlndXJhdGlvbi4gTm8gbGVhZGluZyBiYWNrc2xhc2guXG4gICAgICogQWxsb3dlZCBuZXRzIGFyZSBsb2FkZWQgZnJvbSB0aGUgY29uZmlndXJhdGlvbiBvZiB0aGUgdmlldy5cbiAgICAgKi9cbiAgICBwdWJsaWMgY3JlYXRlRnJvbUNvbmZpZyh3ZWJWaWV3UGF0aDogc3RyaW5nKTogQWxsb3dlZE5ldHNTZXJ2aWNlIHtcbiAgICAgICAgY29uc3QgdmlldyA9IHRoaXMuX2NvbmZpZ1NlcnZpY2UuZ2V0Vmlld0J5UGF0aCh3ZWJWaWV3UGF0aCk7XG4gICAgICAgIGlmICh2aWV3Py5sYXlvdXQ/LnBhcmFtcyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYENhbid0IGxvYWQgY29uZmlndXJhdGlvbiBmb3IgdmlldyB3aXRoIHdlYlBhdGg6ICcke3dlYlZpZXdQYXRofSdgKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB2aWV3UGFyYW1zID0gdmlldy5sYXlvdXQucGFyYW1zIGFzIENhc2VWaWV3UGFyYW1zIHwgVGFza1ZpZXdQYXJhbXM7XG4gICAgICAgIGlmICh2aWV3UGFyYW1zLmFsbG93ZWROZXRzID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuX2xvZy53YXJuKGBObyAnYWxsb3dlZE5ldHMnIHByb3ZpZGVkIGZvciB2aWV3IHdpdGggd2ViUGF0aCAnJHt3ZWJWaWV3UGF0aH0nYCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ldyBBbGxvd2VkTmV0c1NlcnZpY2UoXG4gICAgICAgICAgICBvZih2aWV3UGFyYW1zLmFsbG93ZWROZXRzID8/IFtdKSxcbiAgICAgICAgICAgIHRoaXMuX3Byb2Nlc3NTZXJ2aWNlXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhbiBpbnN0YW5jZSBvZiB7QGxpbmsgQWxsb3dlZE5ldHNTZXJ2aWNlfSB3aXRob3V0IGhhdmluZyB0byBwcm92aWRlIGFsbCB0aGUgZGVwZW5kZW5jaWVzIHlvdXJzZWxmLlxuICAgICAqIEBwYXJhbSBuZXRJZGVudGlmaWVycyQgb2JzZXJ2YWJsZSBjb250YWluaW5nIHRoZSBpZGVudGlmaWVycyBvZiB0aGUgYWxsb3dlZCBuZXRzLlxuICAgICAqIFdoZW4gYSBuZXcgdmFsdWUgaXMgZW1pdHRlZCB0aGUgYWxsb3dlZCBuZXRzIHdpbGwgYmUgdXBkYXRlZC5cbiAgICAgKi9cbiAgICBwdWJsaWMgY3JlYXRlRnJvbU9ic2VydmFibGUobmV0SWRlbnRpZmllcnMkOiBPYnNlcnZhYmxlPEFycmF5PHN0cmluZz4+KTogQWxsb3dlZE5ldHNTZXJ2aWNlIHtcbiAgICAgICAgcmV0dXJuIG5ldyBBbGxvd2VkTmV0c1NlcnZpY2UoXG4gICAgICAgICAgICBuZXRJZGVudGlmaWVycyQsXG4gICAgICAgICAgICB0aGlzLl9wcm9jZXNzU2VydmljZVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYW4gaW5zdGFuY2Ugb2Yge0BsaW5rIEFsbG93ZWROZXRzU2VydmljZX0gd2l0aG91dCBoYXZpbmcgdG8gcHJvdmlkZSBhbGwgdGhlIGRlcGVuZGVuY2llcyB5b3Vyc2VsZi5cbiAgICAgKiBAcGFyYW0gZmlsdGVyQ2FzZSBhIGZpbHRlciBwcm9jZXNzIGluc3RhbmNlXG4gICAgICogQWxsb3dlZCBuZXRzIGFyZSBzZXQgZnJvbSBmaWx0ZXIgcHJvY2VzcyBpbW1lZGlhdGUgZGF0YVxuICAgICAqL1xuICAgIHB1YmxpYyBjcmVhdGVGcm9tRmlsdGVyQ2FzZShmaWx0ZXJDYXNlOiBDYXNlKTogQWxsb3dlZE5ldHNTZXJ2aWNlIHtcbiAgICAgICAgY29uc3QgZmlsdGVyRGF0YSA9IGdldEltbWVkaWF0ZURhdGEoZmlsdGVyQ2FzZSwgVXNlckZpbHRlckNvbnN0YW50cy5GSUxURVJfRklFTERfSUQpO1xuICAgICAgICBpZiAoZmlsdGVyRGF0YSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCBnZXQgZmlsdGVyIGZyb20gY2FzZSAnJHtmaWx0ZXJDYXNlLnRpdGxlfScgd2l0aCBpZCAnJHtmaWx0ZXJDYXNlLnN0cmluZ0lkfSdgKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmV3IEFsbG93ZWROZXRzU2VydmljZShcbiAgICAgICAgICAgIG9mKGZpbHRlckRhdGEuYWxsb3dlZE5ldHMpLFxuICAgICAgICAgICAgdGhpcy5fcHJvY2Vzc1NlcnZpY2VcbiAgICAgICAgKTtcbiAgICB9XG59XG4iXX0=