@netgrif/components-core 6.4.0 → 6.5.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 (90) hide show
  1. package/commons/schema.d.ts +3 -0
  2. package/esm2020/assets/i18n/de.json +4 -2
  3. package/esm2020/assets/i18n/en.json +4 -2
  4. package/esm2020/assets/i18n/sk.json +4 -2
  5. package/esm2020/commons/schema.mjs +1 -1
  6. package/esm2020/lib/admin/role-assignment/abstract-role-assignment.component.mjs +11 -2
  7. package/esm2020/lib/admin/role-assignment/services/ProcessList.mjs +5 -2
  8. package/esm2020/lib/admin/role-assignment-ldap-group/abstract-ldap-group-role-assignment.component.mjs +11 -2
  9. package/esm2020/lib/admin/user-invite/abstract-user-invite.component.mjs +16 -3
  10. package/esm2020/lib/allowed-nets/services/factory/allowed-nets-service-factory.mjs +4 -1
  11. package/esm2020/lib/changed-fields/services/changed-fields.service.mjs +2 -2
  12. package/esm2020/lib/configuration/configuration.service.mjs +2 -2
  13. package/esm2020/lib/dialog/components/confirm-dialog/confirm-dialog.component.mjs +2 -2
  14. package/esm2020/lib/event/public-api.mjs +2 -1
  15. package/esm2020/lib/event/services/event.service.mjs +4 -4
  16. package/esm2020/lib/header/services/overflow.service.mjs +2 -2
  17. package/esm2020/lib/logger/services/log-publisher.service.mjs +2 -2
  18. package/esm2020/lib/navigation/breadcrumbs/abstract-breadcrumbs.component.mjs +3 -3
  19. package/esm2020/lib/navigation/dashboard/abstract-dashboard.component.mjs +228 -0
  20. package/esm2020/lib/navigation/model/group-navigation-constants.mjs +27 -19
  21. package/esm2020/lib/navigation/model/navigation-configs.mjs +2 -2
  22. package/esm2020/lib/navigation/navigation-double-drawer/abstract-navigation-double-drawer.mjs +104 -348
  23. package/esm2020/lib/navigation/navigation-double-drawer/service/double-drawer-navigation.service.mjs +458 -0
  24. package/esm2020/lib/navigation/navigation-double-drawer/util/double-drawer-utils.mjs +43 -0
  25. package/esm2020/lib/navigation/public-api.mjs +4 -1
  26. package/esm2020/lib/navigation/service/uri.service.mjs +2 -2
  27. package/esm2020/lib/navigation/utility/filter-extraction.service.mjs +16 -5
  28. package/esm2020/lib/navigation/utility/navigation-item-task-utility-methods.mjs +13 -1
  29. package/esm2020/lib/panel/task-panel/abstract-task-panel.component.mjs +3 -3
  30. package/esm2020/lib/resources/engine-endpoint/petri-net-resource.service.mjs +12 -1
  31. package/esm2020/lib/resources/interface/petri-net-request-body.mjs +1 -1
  32. package/esm2020/lib/resources/resource-provider.service.mjs +6 -6
  33. package/esm2020/lib/routing/redirect-service/redirect.service.mjs +6 -3
  34. package/esm2020/lib/search/models/category/case/case-dataset.mjs +2 -2
  35. package/esm2020/lib/search/models/operator/operator.mjs +2 -2
  36. package/esm2020/lib/search/models/operator/substring.mjs +2 -2
  37. package/esm2020/lib/search/search-service/search.service.mjs +2 -2
  38. package/esm2020/lib/task/services/task-data.service.mjs +4 -4
  39. package/esm2020/lib/task-content/model/subgrid.mjs +2 -2
  40. package/esm2020/lib/task-content/services/field-converter.service.mjs +2 -2
  41. package/esm2020/lib/task-content/services/task-content.service.mjs +4 -4
  42. package/esm2020/lib/toolbar/abstract-toolbar.component.mjs +48 -11
  43. package/esm2020/lib/toolbar/public-api.mjs +2 -1
  44. package/esm2020/lib/toolbar/toolbar-config.mjs +2 -0
  45. package/esm2020/lib/user/services/user-comparator.service.mjs +2 -2
  46. package/esm2020/lib/utility/contains.pipe.mjs +2 -2
  47. package/esm2020/lib/utility/navigation-item-task-filter-factory.mjs +4 -3
  48. package/esm2020/lib/utility/navigation-item-task-search-categories-factory.mjs +4 -1
  49. package/esm2020/lib/view/abstract/view-with-headers.mjs +1 -1
  50. package/esm2020/lib/view/public-api.mjs +2 -1
  51. package/esm2020/lib/view/task-view/abstract-single-task-view.component.mjs +9 -26
  52. package/esm2020/lib/view/task-view/abstract-tabbed-single-task-view.component.mjs +32 -0
  53. package/esm2020/lib/view/workflow-view/abstract-workflow-view.component.mjs +14 -1
  54. package/esm2020/lib/view/workflow-view/workflow-view.service.mjs +17 -2
  55. package/fesm2015/netgrif-components-core.mjs +1064 -434
  56. package/fesm2015/netgrif-components-core.mjs.map +1 -1
  57. package/fesm2020/netgrif-components-core.mjs +1041 -426
  58. package/fesm2020/netgrif-components-core.mjs.map +1 -1
  59. package/lib/admin/role-assignment/abstract-role-assignment.component.d.ts +4 -1
  60. package/lib/admin/role-assignment/services/ProcessList.d.ts +1 -1
  61. package/lib/admin/role-assignment-ldap-group/abstract-ldap-group-role-assignment.component.d.ts +4 -1
  62. package/lib/admin/user-invite/abstract-user-invite.component.d.ts +9 -3
  63. package/lib/allowed-nets/services/factory/allowed-nets-service-factory.d.ts +1 -1
  64. package/lib/event/public-api.d.ts +1 -0
  65. package/lib/navigation/dashboard/abstract-dashboard.component.d.ts +73 -0
  66. package/lib/navigation/model/group-navigation-constants.d.ts +27 -19
  67. package/lib/navigation/model/navigation-configs.d.ts +1 -0
  68. package/lib/navigation/navigation-double-drawer/abstract-navigation-double-drawer.d.ts +22 -57
  69. package/lib/navigation/navigation-double-drawer/service/double-drawer-navigation.service.d.ts +137 -0
  70. package/lib/navigation/navigation-double-drawer/util/double-drawer-utils.d.ts +16 -0
  71. package/lib/navigation/public-api.d.ts +3 -0
  72. package/lib/navigation/utility/filter-extraction.service.d.ts +3 -2
  73. package/lib/navigation/utility/navigation-item-task-utility-methods.d.ts +6 -0
  74. package/lib/resources/engine-endpoint/petri-net-resource.service.d.ts +8 -0
  75. package/lib/resources/interface/petri-net-request-body.d.ts +1 -0
  76. package/lib/toolbar/abstract-toolbar.component.d.ts +16 -6
  77. package/lib/toolbar/public-api.d.ts +1 -0
  78. package/lib/toolbar/toolbar-config.d.ts +11 -0
  79. package/lib/utility/navigation-item-task-filter-factory.d.ts +3 -1
  80. package/lib/utility/navigation-item-task-search-categories-factory.d.ts +1 -1
  81. package/lib/view/abstract/view-with-headers.d.ts +1 -1
  82. package/lib/view/public-api.d.ts +1 -0
  83. package/lib/view/task-view/abstract-single-task-view.component.d.ts +5 -16
  84. package/lib/view/task-view/abstract-tabbed-single-task-view.component.d.ts +15 -0
  85. package/lib/view/workflow-view/abstract-workflow-view.component.d.ts +5 -2
  86. package/lib/view/workflow-view/workflow-view.service.d.ts +2 -0
  87. package/package.json +1 -1
  88. package/src/assets/i18n/de.json +4 -2
  89. package/src/assets/i18n/en.json +4 -2
  90. package/src/assets/i18n/sk.json +4 -2
@@ -7,11 +7,14 @@ export * from './navigation-double-drawer/abstract-navigation-double-drawer';
7
7
  export * from './navigation-rail/abstract-navigation-rail.component';
8
8
  export * from './group-navigation-component-resolver/abstract-group-navigation-component-resolver.component';
9
9
  export * from './breadcrumbs/abstract-breadcrumbs.component';
10
+ export * from './dashboard/abstract-dashboard.component';
10
11
  /* SERVICES */
11
12
  export * from './group-navigation-component-resolver/group-navigation-component-resolver.service';
12
13
  export * from './utility/filter-extraction.service';
13
14
  export * from './service/uri.service';
14
15
  export * from './service/uri-resource.service';
16
+ export * from './navigation-double-drawer/service/double-drawer-navigation.service';
17
+ export * from './navigation-double-drawer/util/double-drawer-utils';
15
18
  /* MODELS */
16
19
  export * from './model/group-navigation-constants';
17
20
  export * from './model/group-navigation-component-resolver-component-injection-token';
@@ -24,4 +27,4 @@ export * from './model/navigation-menu-events';
24
27
  /* UTILITY METHODS */
25
28
  export * from './utility/navigation-item-task-utility-methods';
26
29
  export * from './group-navigation-component-resolver/group-navigation-view-id-segment-factory';
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25ldGdyaWYtY29tcG9uZW50cy1jb3JlL3NyYy9saWIvbmF2aWdhdGlvbi9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFVBQVU7QUFDVixjQUFjLDBCQUEwQixDQUFDO0FBRXpDLGdCQUFnQjtBQUNoQixjQUFjLHNEQUFzRCxDQUFDO0FBQ3JFLGNBQWMsMERBQTBELENBQUM7QUFDekUsY0FBYyw4REFBOEQsQ0FBQztBQUM3RSxjQUFjLHNEQUFzRCxDQUFDO0FBQ3JFLGNBQWMsOEZBQThGLENBQUM7QUFDN0csY0FBYyw4Q0FBOEMsQ0FBQztBQUU3RCxjQUFjO0FBQ2QsY0FBYyxtRkFBbUYsQ0FBQztBQUNsRyxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxnQ0FBZ0MsQ0FBQztBQUUvQyxZQUFZO0FBQ1osY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLHVFQUF1RSxDQUFDO0FBQ3RGLGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyxtQ0FBbUMsQ0FBQTtBQUNqRCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLGdDQUFnQyxDQUFDO0FBRS9DLHFCQUFxQjtBQUNyQixjQUFjLGdEQUFnRCxDQUFDO0FBQy9ELGNBQWMsZ0ZBQWdGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBBUElTICovXG5leHBvcnQgKiBmcm9tICcuL3F1aWNrLXBhbmVsL3B1YmxpYy1hcGknO1xuXG4vKiBDT01QT05FTlRTICovXG5leHBvcnQgKiBmcm9tICcuL25hdmlnYXRpb24tdHJlZS9hYnN0cmFjdC1uYXZpZ2F0aW9uLXRyZWUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbmF2aWdhdGlvbi1kcmF3ZXIvYWJzdHJhY3QtbmF2aWdhdGlvbi1kcmF3ZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbmF2aWdhdGlvbi1kb3VibGUtZHJhd2VyL2Fic3RyYWN0LW5hdmlnYXRpb24tZG91YmxlLWRyYXdlcic7XG5leHBvcnQgKiBmcm9tICcuL25hdmlnYXRpb24tcmFpbC9hYnN0cmFjdC1uYXZpZ2F0aW9uLXJhaWwuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vZ3JvdXAtbmF2aWdhdGlvbi1jb21wb25lbnQtcmVzb2x2ZXIvYWJzdHJhY3QtZ3JvdXAtbmF2aWdhdGlvbi1jb21wb25lbnQtcmVzb2x2ZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vYnJlYWRjcnVtYnMvYWJzdHJhY3QtYnJlYWRjcnVtYnMuY29tcG9uZW50JztcblxuLyogU0VSVklDRVMgKi9cbmV4cG9ydCAqIGZyb20gJy4vZ3JvdXAtbmF2aWdhdGlvbi1jb21wb25lbnQtcmVzb2x2ZXIvZ3JvdXAtbmF2aWdhdGlvbi1jb21wb25lbnQtcmVzb2x2ZXIuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3V0aWxpdHkvZmlsdGVyLWV4dHJhY3Rpb24uc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2UvdXJpLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlL3VyaS1yZXNvdXJjZS5zZXJ2aWNlJztcblxuLyogTU9ERUxTICovXG5leHBvcnQgKiBmcm9tICcuL21vZGVsL2dyb3VwLW5hdmlnYXRpb24tY29uc3RhbnRzJztcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWwvZ3JvdXAtbmF2aWdhdGlvbi1jb21wb25lbnQtcmVzb2x2ZXItY29tcG9uZW50LWluamVjdGlvbi10b2tlbic7XG5leHBvcnQgKiBmcm9tICcuL21vZGVsL2ZpbHRlci1jYXNlLWluamVjdGlvbi10b2tlbic7XG5leHBvcnQgKiBmcm9tICcuL21vZGVsL3NpemUtbWVudS1pbmplY3Rpb24tdG9rZW4nXG5leHBvcnQgKiBmcm9tICcuL21vZGVsL2dyb3VwLW5hdmlnYXRpb24taXRlbS1sYWJlbCc7XG5leHBvcnQgKiBmcm9tICcuL21vZGVsL3VyaS1yZXNvdXJjZSc7XG5leHBvcnQgKiBmcm9tICcuL21vZGVsL25hdmlnYXRpb24tY29uZmlncyc7XG5leHBvcnQgKiBmcm9tICcuL21vZGVsL25hdmlnYXRpb24tbWVudS1ldmVudHMnO1xuXG4vKiBVVElMSVRZIE1FVEhPRFMgKi9cbmV4cG9ydCAqIGZyb20gJy4vdXRpbGl0eS9uYXZpZ2F0aW9uLWl0ZW0tdGFzay11dGlsaXR5LW1ldGhvZHMnO1xuZXhwb3J0ICogZnJvbSAnLi9ncm91cC1uYXZpZ2F0aW9uLWNvbXBvbmVudC1yZXNvbHZlci9ncm91cC1uYXZpZ2F0aW9uLXZpZXctaWQtc2VnbWVudC1mYWN0b3J5JztcbiJdfQ==
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25ldGdyaWYtY29tcG9uZW50cy1jb3JlL3NyYy9saWIvbmF2aWdhdGlvbi9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFVBQVU7QUFDVixjQUFjLDBCQUEwQixDQUFDO0FBRXpDLGdCQUFnQjtBQUNoQixjQUFjLHNEQUFzRCxDQUFDO0FBQ3JFLGNBQWMsMERBQTBELENBQUM7QUFDekUsY0FBYyw4REFBOEQsQ0FBQztBQUM3RSxjQUFjLHNEQUFzRCxDQUFDO0FBQ3JFLGNBQWMsOEZBQThGLENBQUM7QUFDN0csY0FBYyw4Q0FBOEMsQ0FBQztBQUM3RCxjQUFjLDBDQUEwQyxDQUFDO0FBRXpELGNBQWM7QUFDZCxjQUFjLG1GQUFtRixDQUFDO0FBQ2xHLGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMscUVBQXFFLENBQUM7QUFDcEYsY0FBYyxxREFBcUQsQ0FBQztBQUVwRSxZQUFZO0FBQ1osY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLHVFQUF1RSxDQUFDO0FBQ3RGLGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyxtQ0FBbUMsQ0FBQTtBQUNqRCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLGdDQUFnQyxDQUFDO0FBRS9DLHFCQUFxQjtBQUNyQixjQUFjLGdEQUFnRCxDQUFDO0FBQy9ELGNBQWMsZ0ZBQWdGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBBUElTICovXG5leHBvcnQgKiBmcm9tICcuL3F1aWNrLXBhbmVsL3B1YmxpYy1hcGknO1xuXG4vKiBDT01QT05FTlRTICovXG5leHBvcnQgKiBmcm9tICcuL25hdmlnYXRpb24tdHJlZS9hYnN0cmFjdC1uYXZpZ2F0aW9uLXRyZWUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbmF2aWdhdGlvbi1kcmF3ZXIvYWJzdHJhY3QtbmF2aWdhdGlvbi1kcmF3ZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbmF2aWdhdGlvbi1kb3VibGUtZHJhd2VyL2Fic3RyYWN0LW5hdmlnYXRpb24tZG91YmxlLWRyYXdlcic7XG5leHBvcnQgKiBmcm9tICcuL25hdmlnYXRpb24tcmFpbC9hYnN0cmFjdC1uYXZpZ2F0aW9uLXJhaWwuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vZ3JvdXAtbmF2aWdhdGlvbi1jb21wb25lbnQtcmVzb2x2ZXIvYWJzdHJhY3QtZ3JvdXAtbmF2aWdhdGlvbi1jb21wb25lbnQtcmVzb2x2ZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vYnJlYWRjcnVtYnMvYWJzdHJhY3QtYnJlYWRjcnVtYnMuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vZGFzaGJvYXJkL2Fic3RyYWN0LWRhc2hib2FyZC5jb21wb25lbnQnO1xuXG4vKiBTRVJWSUNFUyAqL1xuZXhwb3J0ICogZnJvbSAnLi9ncm91cC1uYXZpZ2F0aW9uLWNvbXBvbmVudC1yZXNvbHZlci9ncm91cC1uYXZpZ2F0aW9uLWNvbXBvbmVudC1yZXNvbHZlci5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vdXRpbGl0eS9maWx0ZXItZXh0cmFjdGlvbi5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZS91cmkuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2UvdXJpLXJlc291cmNlLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9uYXZpZ2F0aW9uLWRvdWJsZS1kcmF3ZXIvc2VydmljZS9kb3VibGUtZHJhd2VyLW5hdmlnYXRpb24uc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL25hdmlnYXRpb24tZG91YmxlLWRyYXdlci91dGlsL2RvdWJsZS1kcmF3ZXItdXRpbHMnO1xuXG4vKiBNT0RFTFMgKi9cbmV4cG9ydCAqIGZyb20gJy4vbW9kZWwvZ3JvdXAtbmF2aWdhdGlvbi1jb25zdGFudHMnO1xuZXhwb3J0ICogZnJvbSAnLi9tb2RlbC9ncm91cC1uYXZpZ2F0aW9uLWNvbXBvbmVudC1yZXNvbHZlci1jb21wb25lbnQtaW5qZWN0aW9uLXRva2VuJztcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWwvZmlsdGVyLWNhc2UtaW5qZWN0aW9uLXRva2VuJztcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWwvc2l6ZS1tZW51LWluamVjdGlvbi10b2tlbidcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWwvZ3JvdXAtbmF2aWdhdGlvbi1pdGVtLWxhYmVsJztcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWwvdXJpLXJlc291cmNlJztcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWwvbmF2aWdhdGlvbi1jb25maWdzJztcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWwvbmF2aWdhdGlvbi1tZW51LWV2ZW50cyc7XG5cbi8qIFVUSUxJVFkgTUVUSE9EUyAqL1xuZXhwb3J0ICogZnJvbSAnLi91dGlsaXR5L25hdmlnYXRpb24taXRlbS10YXNrLXV0aWxpdHktbWV0aG9kcyc7XG5leHBvcnQgKiBmcm9tICcuL2dyb3VwLW5hdmlnYXRpb24tY29tcG9uZW50LXJlc29sdmVyL2dyb3VwLW5hdmlnYXRpb24tdmlldy1pZC1zZWdtZW50LWZhY3RvcnknO1xuIl19
@@ -155,7 +155,7 @@ export class UriService {
155
155
  data: {
156
156
  [GroupNavigationConstants.ITEM_FIELD_ID_NODE_PATH]: node.uriPath
157
157
  },
158
- process: { identifier: "preference_item" }
158
+ process: { identifier: "menu_item" }
159
159
  };
160
160
  let httpParams = new HttpParams()
161
161
  .set(PaginationParams.PAGE_SIZE, 1)
@@ -236,4 +236,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
236
236
  type: Inject,
237
237
  args: [NAE_URI_NODE_CASES_PAGE_SIZE]
238
238
  }] }]; } });
239
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXJpLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZXRncmlmLWNvbXBvbmVudHMtY29yZS9zcmMvbGliL25hdmlnYXRpb24vc2VydmljZS91cmkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDaEQsT0FBTyxFQUFDLE1BQU0sRUFBRSxVQUFVLEVBQWEsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3RFLE9BQU8sRUFBQyxlQUFlLEVBQWMsRUFBRSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ3JELE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuQyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFNL0QsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBQzdELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDRDQUE0QyxDQUFDO0FBQzVFLE9BQU8sRUFBQyw0QkFBNEIsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBR2hGLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLHFDQUFxQyxDQUFDOzs7Ozs7QUFFN0U7O0tBRUs7QUFJTCxNQUFNLE9BQU8sVUFBVTtJQVFuQixZQUFzQixPQUFzQixFQUN0QixnQkFBb0MsRUFDcEMsb0JBQXlDLEVBQ3pDLG1CQUF1QyxFQUNXLFFBQXlCO1FBSjNFLFlBQU8sR0FBUCxPQUFPLENBQWU7UUFDdEIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFvQjtRQUNwQyx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXFCO1FBQ3pDLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBb0I7UUFDVyxhQUFRLEdBQVIsUUFBUSxDQUFpQjtRQUM3RixJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ1gsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7U0FDdEI7UUFDRCxJQUFJLE9BQU8sSUFBSSxDQUFDLFFBQVEsS0FBSyxRQUFRLEVBQUU7WUFDbkMsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQzNDO1FBQ0QsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLGNBQWMsRUFBRSxDQUFDO1FBQzFDLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxjQUFjLEVBQUUsQ0FBQztRQUM1QyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksZUFBZSxDQUFrQixTQUFTLENBQUMsQ0FBQztRQUNwRSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVNLFdBQVc7UUFDZCxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzlCLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDaEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRUQsSUFBVyxJQUFJO1FBQ1gsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUFXLFdBQVc7UUFDbEIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzlCLENBQUM7SUFFTSxNQUFNLENBQUMsSUFBcUI7UUFDL0IsT0FBTyxJQUFJLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxJQUFJLElBQUksQ0FBQyxPQUFPLEtBQUssSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUM7SUFDcEYsQ0FBQztJQUVELElBQVcsVUFBVTtRQUNqQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDeEMsQ0FBQztJQUVELElBQVcsVUFBVSxDQUFDLElBQXFCO1FBQ3ZDLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDL0IsSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFO2dCQUNyQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7YUFDaEM7aUJBQU07Z0JBQ0gsSUFBSSxDQUFDLGVBQWUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztnQkFDMUIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUU7b0JBQzNELElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDdEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLEVBQUUsQ0FBQztnQkFDL0IsQ0FBQyxFQUFFLEtBQUssQ0FBQyxFQUFFO29CQUNQLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUMxQixJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsRUFBRSxDQUFDO2dCQUMvQixDQUFDLENBQUMsQ0FBQzthQUNOO1NBQ0o7UUFDRCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsSUFBVyxXQUFXO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUM3QixDQUFDO0lBRUQsSUFBVyxrQkFBa0I7UUFDekIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDO0lBQ2hDLENBQUM7SUFHRDs7O1NBR0s7SUFDRyxRQUFRO1FBQ1osSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQzdDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRTtnQkFDUixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztnQkFDdEIsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUU7b0JBQ2xCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztpQkFDcEM7YUFDSjtZQUNELElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDN0IsQ0FBQyxFQUFFLEtBQUssQ0FBQyxFQUFFO1lBQ1AsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDMUIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUM3QixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTSxLQUFLO1FBQ1IsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQ2pDLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUMxQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksYUFBYSxDQUFDLElBQVk7UUFDN0IsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FDaEQsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUNuQyxDQUFDO0lBQ04sQ0FBQztJQUVEOzs7T0FHRztJQUNJLGFBQWEsQ0FBQyxJQUFzQjtRQUN2QyxJQUFJLENBQUMsSUFBSTtZQUFFLElBQUksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQ3ZELEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNSLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDNUIsT0FBTyxLQUFLLENBQUM7UUFDakIsQ0FBQyxDQUFDLENBQ0wsQ0FBQztJQUNOLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxjQUFjLENBQUMsSUFBc0IsRUFBRSxrQkFBa0MsRUFBRSxhQUFxQixDQUFDLEVBQUUsV0FBNEIsSUFBSSxDQUFDLFFBQVE7UUFDL0ksSUFBSSxDQUFDLElBQUk7WUFBRSxJQUFJLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUNsQyxNQUFNLFVBQVUsR0FBMEI7WUFDdEMsU0FBUyxFQUFFLElBQUksQ0FBQyxFQUFFO1NBQ3JCLENBQUM7UUFDRixJQUFJLENBQUMsQ0FBQyxrQkFBa0IsRUFBRTtZQUN0QixVQUFVLENBQUMsT0FBTyxHQUFHLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxVQUFVLEVBQUUsRUFBRSxFQUEyQixDQUFBLENBQUMsQ0FBQztTQUNsRztRQUNELG1EQUFtRDtRQUNuRCxnREFBZ0Q7UUFDaEQsNEJBQTRCO1FBQzVCLG1GQUFtRjtRQUNuRixJQUFJO1FBQ0osSUFBSSxVQUFVLEdBQUcsSUFBSSxVQUFVLEVBQUU7YUFDNUIsR0FBRyxDQUFDLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUM7YUFDekMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLFdBQVcsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUNuRCxPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUNyRyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLHFCQUFxQixDQUFDLElBQXNCO1FBQy9DLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDUCxJQUFJLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztTQUMxQjtRQUNELE1BQU0sVUFBVSxHQUEwQjtZQUN0QyxJQUFJLEVBQUU7Z0JBQ0YsQ0FBQyx3QkFBd0IsQ0FBQyx1QkFBdUIsQ0FBQyxFQUFHLElBQUksQ0FBQyxPQUFPO2FBQ3BFO1lBQ0QsT0FBTyxFQUFFLEVBQUMsVUFBVSxFQUFFLGlCQUFpQixFQUFDO1NBQzNDLENBQUM7UUFFRixJQUFJLFVBQVUsR0FBRyxJQUFJLFVBQVUsRUFBRTthQUM1QixHQUFHLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQzthQUNsQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzFDLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ3JHLENBQUM7SUFFRDs7O09BR0c7SUFDSSxpQkFBaUIsQ0FBQyxJQUFzQjtRQUMzQyxJQUFJLENBQUMsSUFBSTtZQUFFLElBQUksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQzdELEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNSLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDNUIsT0FBTyxLQUFLLENBQUM7UUFDakIsQ0FBQyxDQUFDLENBQ0wsQ0FBQztJQUNOLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksZUFBZSxDQUFDLEtBQWEsRUFBRSxNQUF3QjtRQUMxRCxJQUFJLEtBQUssS0FBSyxDQUFDO1lBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUN4QyxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUMvQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDUixNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEtBQUssTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7WUFDOUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUN6QixPQUFPLEVBQUUsQ0FBQztRQUNkLENBQUMsQ0FBQyxDQUNMLENBQUM7SUFDTixDQUFDO0lBRU0saUJBQWlCLENBQUMsSUFBc0I7UUFDM0MsSUFBSSxDQUFDLElBQUk7WUFBRSxJQUFJLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUNsQyxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNwRCxJQUFJLGFBQWEsS0FBSyxDQUFDO1lBQUUsT0FBTyxHQUFHLENBQUM7UUFDcEMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVNLGFBQWEsQ0FBQyxJQUFxQjtRQUN0QyxPQUFPLElBQUksRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUVPLGVBQWUsQ0FBQyxLQUE2QjtRQUNqRCxJQUFJLENBQUMsQ0FBQyxLQUFLLFlBQVksS0FBSyxDQUFDO1lBQUUsT0FBTztRQUN0QyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ssY0FBYyxDQUFDLElBQXFCO1FBQ3hDLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2pDLEtBQUssR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ2xCLElBQUksQ0FBQyxLQUFLLFNBQVMsSUFBSSxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUM7Z0JBQUUsT0FBTztZQUM5QyxJQUFJLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQztnQkFBRSxPQUFPLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUMzQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0RCxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM1QixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDOztBQXJPYSxlQUFJLEdBQVcsTUFBTyxDQUFBO3dHQUYzQixVQUFVLHNKQVlhLDRCQUE0Qjs0R0FabkQsVUFBVSxjQUZQLE1BQU07NEZBRVQsVUFBVTtrQkFIdEIsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckI7OzBCQWFnQixRQUFROzswQkFBSSxNQUFNOzJCQUFDLDRCQUE0QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SHR0cFBhcmFtc30gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtJbmplY3QsIEluamVjdGFibGUsIE9uRGVzdHJveSwgT3B0aW9uYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIG9mfSBmcm9tICdyeGpzJztcbmltcG9ydCB7bWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0Nhc2VTZWFyY2hSZXF1ZXN0Qm9keSwgUGV0cmlOZXRTZWFyY2hSZXF1ZXN0fSBmcm9tICcuLi8uLi9maWx0ZXIvbW9kZWxzL2Nhc2Utc2VhcmNoLXJlcXVlc3QtYm9keSc7XG5pbXBvcnQge1NpbXBsZUZpbHRlcn0gZnJvbSAnLi4vLi4vZmlsdGVyL21vZGVscy9zaW1wbGUtZmlsdGVyJztcbmltcG9ydCB7QWN0aXZlR3JvdXBTZXJ2aWNlfSBmcm9tICcuLi8uLi9ncm91cHMvc2VydmljZXMvYWN0aXZlLWdyb3VwLnNlcnZpY2UnO1xuaW1wb3J0IHtMb2dnZXJTZXJ2aWNlfSBmcm9tICcuLi8uLi9sb2dnZXIvc2VydmljZXMvbG9nZ2VyLnNlcnZpY2UnO1xuaW1wb3J0IHtDYXNlUmVzb3VyY2VTZXJ2aWNlfSBmcm9tICcuLi8uLi9yZXNvdXJjZXMvZW5naW5lLWVuZHBvaW50L2Nhc2UtcmVzb3VyY2Uuc2VydmljZSc7XG5pbXBvcnQge0Nhc2V9IGZyb20gJy4uLy4uL3Jlc291cmNlcy9pbnRlcmZhY2UvY2FzZSc7XG5pbXBvcnQge1BhZ2V9IGZyb20gJy4uLy4uL3Jlc291cmNlcy9pbnRlcmZhY2UvcGFnZSc7XG5pbXBvcnQge0xvYWRpbmdFbWl0dGVyfSBmcm9tICcuLi8uLi91dGlsaXR5L2xvYWRpbmctZW1pdHRlcic7XG5pbXBvcnQge1BhZ2luYXRpb25QYXJhbXN9IGZyb20gJy4uLy4uL3V0aWxpdHkvcGFnaW5hdGlvbi9wYWdpbmF0aW9uLXBhcmFtcyc7XG5pbXBvcnQge05BRV9VUklfTk9ERV9DQVNFU19QQUdFX1NJWkV9IGZyb20gJy4uL21vZGVsL3NpemUtbWVudS1pbmplY3Rpb24tdG9rZW4nO1xuaW1wb3J0IHtVcmlOb2RlUmVzb3VyY2V9IGZyb20gJy4uL21vZGVsL3VyaS1yZXNvdXJjZSc7XG5pbXBvcnQge1VyaVJlc291cmNlU2VydmljZX0gZnJvbSAnLi91cmktcmVzb3VyY2Uuc2VydmljZSc7XG5pbXBvcnQge0dyb3VwTmF2aWdhdGlvbkNvbnN0YW50c30gZnJvbSBcIi4uL21vZGVsL2dyb3VwLW5hdmlnYXRpb24tY29uc3RhbnRzXCI7XG5cbi8qKlxuICogU2VydmljZSBmb3IgbWFuYWdpbmcgVVJJc1xuICogKi9cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFVyaVNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuXG4gICAgcHVibGljIHN0YXRpYyBST09UOiBzdHJpbmcgPSAncm9vdCc7XG4gICAgcHJpdmF0ZSBfcm9vdE5vZGU6IFVyaU5vZGVSZXNvdXJjZTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9yb290TG9hZGluZyQ6IExvYWRpbmdFbWl0dGVyO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX3BhcmVudExvYWRpbmckOiBMb2FkaW5nRW1pdHRlcjtcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9hY3RpdmVOb2RlJDogQmVoYXZpb3JTdWJqZWN0PFVyaU5vZGVSZXNvdXJjZT47XG5cbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgX2xvZ2dlcjogTG9nZ2VyU2VydmljZSxcbiAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX3Jlc291cmNlU2VydmljZTogVXJpUmVzb3VyY2VTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfY2FzZVJlc291cmNlU2VydmljZTogQ2FzZVJlc291cmNlU2VydmljZSxcbiAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX2FjdGl2ZUdyb3VwU2VydmljZTogQWN0aXZlR3JvdXBTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoTkFFX1VSSV9OT0RFX0NBU0VTX1BBR0VfU0laRSkgcHJvdGVjdGVkIHBhZ2VTaXplOiBzdHJpbmcgfCBudW1iZXIpIHtcbiAgICAgICAgaWYgKCFwYWdlU2l6ZSkge1xuICAgICAgICAgICAgdGhpcy5wYWdlU2l6ZSA9IDIwO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5wYWdlU2l6ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHRoaXMucGFnZVNpemUgPSBwYXJzZUludCh0aGlzLnBhZ2VTaXplKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9yb290TG9hZGluZyQgPSBuZXcgTG9hZGluZ0VtaXR0ZXIoKTtcbiAgICAgICAgdGhpcy5fcGFyZW50TG9hZGluZyQgPSBuZXcgTG9hZGluZ0VtaXR0ZXIoKTtcbiAgICAgICAgdGhpcy5fYWN0aXZlTm9kZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFVyaU5vZGVSZXNvdXJjZT4odW5kZWZpbmVkKTtcbiAgICAgICAgdGhpcy5sb2FkUm9vdCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5fcm9vdExvYWRpbmckLmNvbXBsZXRlKCk7XG4gICAgICAgIHRoaXMuX3BhcmVudExvYWRpbmckLmNvbXBsZXRlKCk7XG4gICAgICAgIHRoaXMuX2FjdGl2ZU5vZGUkLmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCByb290KCk6IFVyaU5vZGVSZXNvdXJjZSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yb290Tm9kZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHJvb3RMb2FkZWQkKCk6IExvYWRpbmdFbWl0dGVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Jvb3RMb2FkaW5nJDtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNSb290KG5vZGU6IFVyaU5vZGVSZXNvdXJjZSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gbm9kZS5pZCA9PT0gdGhpcy5fcm9vdE5vZGUuaWQgJiYgbm9kZS51cmlQYXRoID09PSB0aGlzLl9yb290Tm9kZS51cmlQYXRoO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgYWN0aXZlTm9kZSgpOiBVcmlOb2RlUmVzb3VyY2Uge1xuICAgICAgICByZXR1cm4gdGhpcy5fYWN0aXZlTm9kZSQuZ2V0VmFsdWUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0IGFjdGl2ZU5vZGUobm9kZTogVXJpTm9kZVJlc291cmNlKSB7XG4gICAgICAgIGlmIChub2RlLnBhcmVudElkICYmICFub2RlLnBhcmVudCkge1xuICAgICAgICAgICAgaWYgKG5vZGUucGFyZW50SWQgPT09IHRoaXMuX3Jvb3ROb2RlLmlkKSB7XG4gICAgICAgICAgICAgICAgbm9kZS5wYXJlbnQgPSB0aGlzLl9yb290Tm9kZTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fcGFyZW50TG9hZGluZyQub24oKTtcbiAgICAgICAgICAgICAgICB0aGlzLmdldE5vZGVCeVBhdGgodGhpcy5yZXNvbHZlUGFyZW50UGF0aChub2RlKSkuc3Vic2NyaWJlKG4gPT4ge1xuICAgICAgICAgICAgICAgICAgICBub2RlLnBhcmVudCA9ICFuID8gdGhpcy5fcm9vdE5vZGUgOiBuO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9wYXJlbnRMb2FkaW5nJC5vZmYoKTtcbiAgICAgICAgICAgICAgICB9LCBlcnJvciA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2xvZ2dlci5lcnJvcihlcnJvcik7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3BhcmVudExvYWRpbmckLm9mZigpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2FjdGl2ZU5vZGUkLm5leHQobm9kZSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBhY3RpdmVOb2RlJCgpOiBPYnNlcnZhYmxlPFVyaU5vZGVSZXNvdXJjZT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fYWN0aXZlTm9kZSQ7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBwYXJlbnROb2RlTG9hZGluZyQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9wYXJlbnRMb2FkaW5nJDtcbiAgICB9XG5cblxuICAgIC8qKlxuICAgICAqIExvYWRzIHJvb3QgSUQgaW50byB2YXJpYWJsZS5cbiAgICAgKiBXaGVuIHJvb3Qgbm9kZSBpcyBsb2FkZWQgYW5kIGFjdGl2ZSBub2RlIGlzIG5vdCBzZXQgeWV0IHRoZSByb290IG5vZGUgaXMgc2V0IGFzIGFjdGl2ZSBub2RlXG4gICAgICogKi9cbiAgICBwcml2YXRlIGxvYWRSb290KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9yb290TG9hZGluZyQub24oKTtcbiAgICAgICAgdGhpcy5fcmVzb3VyY2VTZXJ2aWNlLmdldFJvb3QoKS5zdWJzY3JpYmUobm9kZSA9PiB7XG4gICAgICAgICAgICBpZiAoISFub2RlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fcm9vdE5vZGUgPSBub2RlO1xuICAgICAgICAgICAgICAgIGlmICghdGhpcy5hY3RpdmVOb2RlKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlTm9kZSA9IHRoaXMuX3Jvb3ROb2RlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuX3Jvb3RMb2FkaW5nJC5vZmYoKTtcbiAgICAgICAgfSwgZXJyb3IgPT4ge1xuICAgICAgICAgICAgdGhpcy5fbG9nZ2VyLmVycm9yKGVycm9yKTtcbiAgICAgICAgICAgIHRoaXMuX3Jvb3RMb2FkaW5nJC5vZmYoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIHJlc2V0KCk6IFVyaU5vZGVSZXNvdXJjZSB7XG4gICAgICAgIHRoaXMuYWN0aXZlTm9kZSA9IHRoaXMuX3Jvb3ROb2RlO1xuICAgICAgICByZXR1cm4gdGhpcy5fcm9vdE5vZGU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0IHVyaSBub2RlIGJ5IHVyaSBwYXRoLlxuICAgICAqIEBwYXJhbSBwYXRoXG4gICAgICovXG4gICAgcHVibGljIGdldE5vZGVCeVBhdGgocGF0aDogc3RyaW5nKTogT2JzZXJ2YWJsZTxVcmlOb2RlUmVzb3VyY2U+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Jlc291cmNlU2VydmljZS5nZXROb2RlQnlVcmkocGF0aCkucGlwZShcbiAgICAgICAgICAgIG1hcChuID0+IHRoaXMuY2FwaXRhbGl6ZU5hbWUobikpLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldCBjaGlsZCBub2RlcyBvZiBwcm92aWRlcyBub2RlLlxuICAgICAqIEBwYXJhbSBub2RlIHBhcmVudCBub2RlXG4gICAgICovXG4gICAgcHVibGljIGdldENoaWxkTm9kZXMobm9kZT86IFVyaU5vZGVSZXNvdXJjZSk6IE9ic2VydmFibGU8QXJyYXk8VXJpTm9kZVJlc291cmNlPj4ge1xuICAgICAgICBpZiAoIW5vZGUpIG5vZGUgPSB0aGlzLmFjdGl2ZU5vZGU7XG4gICAgICAgIHJldHVybiB0aGlzLl9yZXNvdXJjZVNlcnZpY2UuZ2V0Tm9kZXNCeVBhcmVudChub2RlLmlkKS5waXBlKFxuICAgICAgICAgICAgbWFwKG5vZGVzID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmNhcGl0YWxpemVOYW1lcyhub2Rlcyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5vZGVzO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0IGNhc2VzIHVuZGVyIHVyaSBub2RlXG4gICAgICogQHBhcmFtIG5vZGUgcGFyZW50IG5vZGUgb2YgY2FzZXNcbiAgICAgKiBAcGFyYW0gcHJvY2Vzc0lkZW50aWZpZXJzIG9wdGlvbmFsIHNlYXJjaCBmaWx0ZXIgZm9yIHByb2Nlc3MgaWRlbnRpZmllciB0byBnZXQgb25seSBjYXNlcyBmcm9tIHRoZSBwcm9jZXNzXG4gICAgICogQHBhcmFtIHBhZ2VOdW1iZXIgb3B0aW9uYWwgcGFyYW1ldGVyIGZvciBsb2FkIHBhZ2Ugb24gdGhlIGluZGV4LiBEZWZhdWx0IHZhbHVlIGlzIDAgKHRoZSBmaXJzdCBwYWdlKS5cbiAgICAgKiBAcGFyYW0gcGFnZVNpemUgb3B0aW9uYWwgcGFyYW1ldGVyIGZvciBsb2FkZWQgcGFnZSBzaXplLiBEZWZhdWx0cyB0byB2YWx1ZSBvZiBpbmplY3Rpb24gdG9rZW4gVVJJX05PREVfQ0FTRVNfUEFHRV9TSVpFIG9yIHRvIHZhbHVlIFwiMjBcIi5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0Q2FzZXNPZk5vZGUobm9kZT86IFVyaU5vZGVSZXNvdXJjZSwgcHJvY2Vzc0lkZW50aWZpZXJzPzogQXJyYXk8c3RyaW5nPiwgcGFnZU51bWJlcjogbnVtYmVyID0gMCwgcGFnZVNpemU6IHN0cmluZyB8IG51bWJlciA9IHRoaXMucGFnZVNpemUpOiBPYnNlcnZhYmxlPFBhZ2U8Q2FzZT4+IHtcbiAgICAgICAgaWYgKCFub2RlKSBub2RlID0gdGhpcy5hY3RpdmVOb2RlO1xuICAgICAgICBjb25zdCBzZWFyY2hCb2R5OiBDYXNlU2VhcmNoUmVxdWVzdEJvZHkgPSB7XG4gICAgICAgICAgICB1cmlOb2RlSWQ6IG5vZGUuaWQsXG4gICAgICAgIH07XG4gICAgICAgIGlmICghIXByb2Nlc3NJZGVudGlmaWVycykge1xuICAgICAgICAgICAgc2VhcmNoQm9keS5wcm9jZXNzID0gcHJvY2Vzc0lkZW50aWZpZXJzLm1hcChpZCA9PiAoe2lkZW50aWZpZXI6IGlkfSBhcyBQZXRyaU5ldFNlYXJjaFJlcXVlc3QpKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBUT0RPIGFjdGl2ZSBncm91cCBpcyBicm9rZW4gYSBnaXZlbiB0aGUgd3JvbmcgaWRcbiAgICAgICAgLy8gaWYgKCEhdGhpcy5fYWN0aXZlR3JvdXBTZXJ2aWNlLmFjdGl2ZUdyb3VwKSB7XG4gICAgICAgIC8vICAgICBzZWFyY2hCb2R5LmRhdGEgPSB7fTtcbiAgICAgICAgLy8gICAgIHNlYXJjaEJvZHkuZGF0YVsncGFyZW50SWQnXSA9IHRoaXMuX2FjdGl2ZUdyb3VwU2VydmljZS5hY3RpdmVHcm91cC5zdHJpbmdJZDtcbiAgICAgICAgLy8gfVxuICAgICAgICBsZXQgaHR0cFBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKClcbiAgICAgICAgICAgIC5zZXQoUGFnaW5hdGlvblBhcmFtcy5QQUdFX1NJWkUsIHBhZ2VTaXplKVxuICAgICAgICAgICAgLnNldChQYWdpbmF0aW9uUGFyYW1zLlBBR0VfTlVNQkVSLCBwYWdlTnVtYmVyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Nhc2VSZXNvdXJjZVNlcnZpY2Uuc2VhcmNoQ2FzZXMoU2ltcGxlRmlsdGVyLmZyb21DYXNlUXVlcnkoc2VhcmNoQm9keSksIGh0dHBQYXJhbXMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldCBtZW51IGl0ZW0gY2FzZSBieSBub2RlUGF0aCBmaWVsZCB2YWx1ZVxuICAgICAqIEBwYXJhbSBub2RlIGEgbm9kZSwgdGhhdCBpcyByZXByZXNlbnRlZCBieSB0aGUgd2FudGVkIGNhc2VcbiAgICAgKiBAcmV0dXJuIHBhZ2UgY29udGFpbmluZyAxIGNhc2VcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0SXRlbUNhc2VCeU5vZGVQYXRoKG5vZGU/OiBVcmlOb2RlUmVzb3VyY2UpOiBPYnNlcnZhYmxlPFBhZ2U8Q2FzZT4+IHtcbiAgICAgICAgaWYgKCFub2RlKSB7XG4gICAgICAgICAgICBub2RlID0gdGhpcy5hY3RpdmVOb2RlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHNlYXJjaEJvZHk6IENhc2VTZWFyY2hSZXF1ZXN0Qm9keSA9IHtcbiAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICBbR3JvdXBOYXZpZ2F0aW9uQ29uc3RhbnRzLklURU1fRklFTERfSURfTk9ERV9QQVRIXSA6IG5vZGUudXJpUGF0aFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHByb2Nlc3M6IHtpZGVudGlmaWVyOiBcInByZWZlcmVuY2VfaXRlbVwifVxuICAgICAgICB9O1xuXG4gICAgICAgIGxldCBodHRwUGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKVxuICAgICAgICAgICAgLnNldChQYWdpbmF0aW9uUGFyYW1zLlBBR0VfU0laRSwgMSlcbiAgICAgICAgICAgIC5zZXQoUGFnaW5hdGlvblBhcmFtcy5QQUdFX05VTUJFUiwgMCk7XG4gICAgICAgIHJldHVybiB0aGlzLl9jYXNlUmVzb3VyY2VTZXJ2aWNlLnNlYXJjaENhc2VzKFNpbXBsZUZpbHRlci5mcm9tQ2FzZVF1ZXJ5KHNlYXJjaEJvZHkpLCBodHRwUGFyYW1zKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXQgc2libGluZ3Mgbm9kZSBvZiB0aGUgcHJvdmlkZWQgbm9kZVxuICAgICAqIEBwYXJhbSBub2RlIHNpYmxpbmdzIG5vZGVcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0U2libGluZ3NPZk5vZGUobm9kZT86IFVyaU5vZGVSZXNvdXJjZSk6IE9ic2VydmFibGU8QXJyYXk8VXJpTm9kZVJlc291cmNlPj4ge1xuICAgICAgICBpZiAoIW5vZGUpIG5vZGUgPSB0aGlzLmFjdGl2ZU5vZGU7XG4gICAgICAgIHJldHVybiB0aGlzLl9yZXNvdXJjZVNlcnZpY2UuZ2V0Tm9kZXNCeVBhcmVudChub2RlLnBhcmVudElkKS5waXBlKFxuICAgICAgICAgICAgbWFwKG5vZGVzID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmNhcGl0YWxpemVOYW1lcyhub2Rlcyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5vZGVzO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0IG5vZGVzIG9uIHRoZSBzYW1lIHVyaSBsZXZlbCBzdGFydGluZyBmcm9tIDAuIFJvb3Qgbm9kZSBpcyBubyAwIGxldmVsLlxuICAgICAqIEBwYXJhbSBsZXZlbFxuICAgICAqIEBwYXJhbSBwYXJlbnQgb3B0aW9uYWwgcGFyYW1ldGVyIHRvIGZpbHRlciBub2RlcyB3aXRoIGNvbW1vbiBwYXJlbnRcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0Tm9kZXNPbkxldmVsKGxldmVsOiBudW1iZXIsIHBhcmVudD86IFVyaU5vZGVSZXNvdXJjZSk6IE9ic2VydmFibGU8QXJyYXk8VXJpTm9kZVJlc291cmNlPj4ge1xuICAgICAgICBpZiAobGV2ZWwgPT09IDApIHJldHVybiBvZihbdGhpcy5yb290XSk7XG4gICAgICAgIHJldHVybiB0aGlzLl9yZXNvdXJjZVNlcnZpY2UuZ2V0QnlMZXZlbChsZXZlbCkucGlwZShcbiAgICAgICAgICAgIG1hcChub2RlcyA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgbnMgPSAhIXBhcmVudD8uaWQgPyBub2Rlcy5maWx0ZXIobiA9PiBuLnBhcmVudElkID09PSBwYXJlbnQuaWQpIDogbm9kZXM7XG4gICAgICAgICAgICAgICAgdGhpcy5jYXBpdGFsaXplTmFtZXMobnMpO1xuICAgICAgICAgICAgICAgIHJldHVybiBucztcbiAgICAgICAgICAgIH0pLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyByZXNvbHZlUGFyZW50UGF0aChub2RlPzogVXJpTm9kZVJlc291cmNlKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKCFub2RlKSBub2RlID0gdGhpcy5hY3RpdmVOb2RlO1xuICAgICAgICBjb25zdCBsYXN0RGVsaW1pdGVyID0gbm9kZS51cmlQYXRoLmxhc3RJbmRleE9mKCcvJyk7XG4gICAgICAgIGlmIChsYXN0RGVsaW1pdGVyID09PSAwKSByZXR1cm4gJy8nO1xuICAgICAgICByZXR1cm4gbm9kZS51cmlQYXRoLnN1YnN0cmluZygwLCBsYXN0RGVsaW1pdGVyKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3BsaXROb2RlUGF0aChub2RlOiBVcmlOb2RlUmVzb3VyY2UpOiBBcnJheTxzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIG5vZGU/LnVyaVBhdGguc3BsaXQoJy8nKS5maWx0ZXIocyA9PiBzICE9PSBVcmlTZXJ2aWNlLlJPT1QpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2FwaXRhbGl6ZU5hbWVzKG5vZGVzOiBBcnJheTxVcmlOb2RlUmVzb3VyY2U+KSB7XG4gICAgICAgIGlmICghKG5vZGVzIGluc3RhbmNlb2YgQXJyYXkpKSByZXR1cm47XG4gICAgICAgIG5vZGVzLmZvckVhY2gobiA9PiB0aGlzLmNhcGl0YWxpemVOYW1lKG4pKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiAgL25ldGdyaWYvbmFlX3N5c3RlbS9wcm9jZXNzZXMvLi4uID0+IE5ldGdyaWYgLT4gTmFlIFN5c3RlbXMgLT4gUHJvY2Vzc2VzXG4gICAgICogQHBhcmFtIG5vZGVcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIHByaXZhdGUgY2FwaXRhbGl6ZU5hbWUobm9kZTogVXJpTm9kZVJlc291cmNlKSB7XG4gICAgICAgIGxldCBwYXJ0cyA9IG5vZGUubmFtZS5zcGxpdCgnXycpO1xuICAgICAgICBwYXJ0cyA9IHBhcnRzLm1hcChwID0+IHtcbiAgICAgICAgICAgIGlmIChwID09PSB1bmRlZmluZWQgfHwgcC5sZW5ndGggPT09IDApIHJldHVybjtcbiAgICAgICAgICAgIGlmIChwLmxlbmd0aCA9PT0gMSkgcmV0dXJuIHAudG9VcHBlckNhc2UoKTtcbiAgICAgICAgICAgIHJldHVybiBwLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgcC5zdWJzdHJpbmcoMSk7XG4gICAgICAgIH0pO1xuICAgICAgICBub2RlLm5hbWUgPSBwYXJ0cy5qb2luKCcgJyk7XG4gICAgICAgIHJldHVybiBub2RlO1xuICAgIH1cbn1cbiJdfQ==
239
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXJpLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZXRncmlmLWNvbXBvbmVudHMtY29yZS9zcmMvbGliL25hdmlnYXRpb24vc2VydmljZS91cmkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDaEQsT0FBTyxFQUFDLE1BQU0sRUFBRSxVQUFVLEVBQWEsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3RFLE9BQU8sRUFBQyxlQUFlLEVBQWMsRUFBRSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ3JELE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuQyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFNL0QsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBQzdELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDRDQUE0QyxDQUFDO0FBQzVFLE9BQU8sRUFBQyw0QkFBNEIsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBR2hGLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLHFDQUFxQyxDQUFDOzs7Ozs7QUFFN0U7O0tBRUs7QUFJTCxNQUFNLE9BQU8sVUFBVTtJQVFuQixZQUFzQixPQUFzQixFQUN0QixnQkFBb0MsRUFDcEMsb0JBQXlDLEVBQ3pDLG1CQUF1QyxFQUNXLFFBQXlCO1FBSjNFLFlBQU8sR0FBUCxPQUFPLENBQWU7UUFDdEIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFvQjtRQUNwQyx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXFCO1FBQ3pDLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBb0I7UUFDVyxhQUFRLEdBQVIsUUFBUSxDQUFpQjtRQUM3RixJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ1gsSUFBSSxDQUFDLFFBQVEs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WUFDOUMsSUFBSSxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUM7Z0JBQUUsT0FBTyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDM0MsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdEQsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDNUIsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQzs7QUFyT2EsZUFBSSxHQUFXLE1BQU8sQ0FBQTt3R0FGM0IsVUFBVSxzSkFZYSw0QkFBNEI7NEdBWm5ELFVBQVUsY0FGUCxNQUFNOzRGQUVULFVBQVU7a0JBSHRCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCOzswQkFhZ0IsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyw0QkFBNEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0h0dHBQYXJhbXN9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7SW5qZWN0LCBJbmplY3RhYmxlLCBPbkRlc3Ryb3ksIE9wdGlvbmFsfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBvZn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge21hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtDYXNlU2VhcmNoUmVxdWVzdEJvZHksIFBldHJpTmV0U2VhcmNoUmVxdWVzdH0gZnJvbSAnLi4vLi4vZmlsdGVyL21vZGVscy9jYXNlLXNlYXJjaC1yZXF1ZXN0LWJvZHknO1xuaW1wb3J0IHtTaW1wbGVGaWx0ZXJ9IGZyb20gJy4uLy4uL2ZpbHRlci9tb2RlbHMvc2ltcGxlLWZpbHRlcic7XG5pbXBvcnQge0FjdGl2ZUdyb3VwU2VydmljZX0gZnJvbSAnLi4vLi4vZ3JvdXBzL3NlcnZpY2VzL2FjdGl2ZS1ncm91cC5zZXJ2aWNlJztcbmltcG9ydCB7TG9nZ2VyU2VydmljZX0gZnJvbSAnLi4vLi4vbG9nZ2VyL3NlcnZpY2VzL2xvZ2dlci5zZXJ2aWNlJztcbmltcG9ydCB7Q2FzZVJlc291cmNlU2VydmljZX0gZnJvbSAnLi4vLi4vcmVzb3VyY2VzL2VuZ2luZS1lbmRwb2ludC9jYXNlLXJlc291cmNlLnNlcnZpY2UnO1xuaW1wb3J0IHtDYXNlfSBmcm9tICcuLi8uLi9yZXNvdXJjZXMvaW50ZXJmYWNlL2Nhc2UnO1xuaW1wb3J0IHtQYWdlfSBmcm9tICcuLi8uLi9yZXNvdXJjZXMvaW50ZXJmYWNlL3BhZ2UnO1xuaW1wb3J0IHtMb2FkaW5nRW1pdHRlcn0gZnJvbSAnLi4vLi4vdXRpbGl0eS9sb2FkaW5nLWVtaXR0ZXInO1xuaW1wb3J0IHtQYWdpbmF0aW9uUGFyYW1zfSBmcm9tICcuLi8uLi91dGlsaXR5L3BhZ2luYXRpb24vcGFnaW5hdGlvbi1wYXJhbXMnO1xuaW1wb3J0IHtOQUVfVVJJX05PREVfQ0FTRVNfUEFHRV9TSVpFfSBmcm9tICcuLi9tb2RlbC9zaXplLW1lbnUtaW5qZWN0aW9uLXRva2VuJztcbmltcG9ydCB7VXJpTm9kZVJlc291cmNlfSBmcm9tICcuLi9tb2RlbC91cmktcmVzb3VyY2UnO1xuaW1wb3J0IHtVcmlSZXNvdXJjZVNlcnZpY2V9IGZyb20gJy4vdXJpLXJlc291cmNlLnNlcnZpY2UnO1xuaW1wb3J0IHtHcm91cE5hdmlnYXRpb25Db25zdGFudHN9IGZyb20gXCIuLi9tb2RlbC9ncm91cC1uYXZpZ2F0aW9uLWNvbnN0YW50c1wiO1xuXG4vKipcbiAqIFNlcnZpY2UgZm9yIG1hbmFnaW5nIFVSSXNcbiAqICovXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBVcmlTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcblxuICAgIHB1YmxpYyBzdGF0aWMgUk9PVDogc3RyaW5nID0gJ3Jvb3QnO1xuICAgIHByaXZhdGUgX3Jvb3ROb2RlOiBVcmlOb2RlUmVzb3VyY2U7XG4gICAgcHJpdmF0ZSByZWFkb25seSBfcm9vdExvYWRpbmckOiBMb2FkaW5nRW1pdHRlcjtcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9wYXJlbnRMb2FkaW5nJDogTG9hZGluZ0VtaXR0ZXI7XG4gICAgcHJpdmF0ZSByZWFkb25seSBfYWN0aXZlTm9kZSQ6IEJlaGF2aW9yU3ViamVjdDxVcmlOb2RlUmVzb3VyY2U+O1xuXG4gICAgY29uc3RydWN0b3IocHJvdGVjdGVkIF9sb2dnZXI6IExvZ2dlclNlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF9yZXNvdXJjZVNlcnZpY2U6IFVyaVJlc291cmNlU2VydmljZSxcbiAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX2Nhc2VSZXNvdXJjZVNlcnZpY2U6IENhc2VSZXNvdXJjZVNlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF9hY3RpdmVHcm91cFNlcnZpY2U6IEFjdGl2ZUdyb3VwU2VydmljZSxcbiAgICAgICAgICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KE5BRV9VUklfTk9ERV9DQVNFU19QQUdFX1NJWkUpIHByb3RlY3RlZCBwYWdlU2l6ZTogc3RyaW5nIHwgbnVtYmVyKSB7XG4gICAgICAgIGlmICghcGFnZVNpemUpIHtcbiAgICAgICAgICAgIHRoaXMucGFnZVNpemUgPSAyMDtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMucGFnZVNpemUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICB0aGlzLnBhZ2VTaXplID0gcGFyc2VJbnQodGhpcy5wYWdlU2l6ZSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fcm9vdExvYWRpbmckID0gbmV3IExvYWRpbmdFbWl0dGVyKCk7XG4gICAgICAgIHRoaXMuX3BhcmVudExvYWRpbmckID0gbmV3IExvYWRpbmdFbWl0dGVyKCk7XG4gICAgICAgIHRoaXMuX2FjdGl2ZU5vZGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxVcmlOb2RlUmVzb3VyY2U+KHVuZGVmaW5lZCk7XG4gICAgICAgIHRoaXMubG9hZFJvb3QoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMuX3Jvb3RMb2FkaW5nJC5jb21wbGV0ZSgpO1xuICAgICAgICB0aGlzLl9wYXJlbnRMb2FkaW5nJC5jb21wbGV0ZSgpO1xuICAgICAgICB0aGlzLl9hY3RpdmVOb2RlJC5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgcm9vdCgpOiBVcmlOb2RlUmVzb3VyY2Uge1xuICAgICAgICByZXR1cm4gdGhpcy5fcm9vdE5vZGU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCByb290TG9hZGVkJCgpOiBMb2FkaW5nRW1pdHRlciB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yb290TG9hZGluZyQ7XG4gICAgfVxuXG4gICAgcHVibGljIGlzUm9vdChub2RlOiBVcmlOb2RlUmVzb3VyY2UpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIG5vZGUuaWQgPT09IHRoaXMuX3Jvb3ROb2RlLmlkICYmIG5vZGUudXJpUGF0aCA9PT0gdGhpcy5fcm9vdE5vZGUudXJpUGF0aDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGFjdGl2ZU5vZGUoKTogVXJpTm9kZVJlc291cmNlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FjdGl2ZU5vZGUkLmdldFZhbHVlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIHNldCBhY3RpdmVOb2RlKG5vZGU6IFVyaU5vZGVSZXNvdXJjZSkge1xuICAgICAgICBpZiAobm9kZS5wYXJlbnRJZCAmJiAhbm9kZS5wYXJlbnQpIHtcbiAgICAgICAgICAgIGlmIChub2RlLnBhcmVudElkID09PSB0aGlzLl9yb290Tm9kZS5pZCkge1xuICAgICAgICAgICAgICAgIG5vZGUucGFyZW50ID0gdGhpcy5fcm9vdE5vZGU7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuX3BhcmVudExvYWRpbmckLm9uKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5nZXROb2RlQnlQYXRoKHRoaXMucmVzb2x2ZVBhcmVudFBhdGgobm9kZSkpLnN1YnNjcmliZShuID0+IHtcbiAgICAgICAgICAgICAgICAgICAgbm9kZS5wYXJlbnQgPSAhbiA/IHRoaXMuX3Jvb3ROb2RlIDogbjtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fcGFyZW50TG9hZGluZyQub2ZmKCk7XG4gICAgICAgICAgICAgICAgfSwgZXJyb3IgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9sb2dnZXIuZXJyb3IoZXJyb3IpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9wYXJlbnRMb2FkaW5nJC5vZmYoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9hY3RpdmVOb2RlJC5uZXh0KG5vZGUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgYWN0aXZlTm9kZSQoKTogT2JzZXJ2YWJsZTxVcmlOb2RlUmVzb3VyY2U+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FjdGl2ZU5vZGUkO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgcGFyZW50Tm9kZUxvYWRpbmckKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fcGFyZW50TG9hZGluZyQ7XG4gICAgfVxuXG5cbiAgICAvKipcbiAgICAgKiBMb2FkcyByb290IElEIGludG8gdmFyaWFibGUuXG4gICAgICogV2hlbiByb290IG5vZGUgaXMgbG9hZGVkIGFuZCBhY3RpdmUgbm9kZSBpcyBub3Qgc2V0IHlldCB0aGUgcm9vdCBub2RlIGlzIHNldCBhcyBhY3RpdmUgbm9kZVxuICAgICAqICovXG4gICAgcHJpdmF0ZSBsb2FkUm9vdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fcm9vdExvYWRpbmckLm9uKCk7XG4gICAgICAgIHRoaXMuX3Jlc291cmNlU2VydmljZS5nZXRSb290KCkuc3Vic2NyaWJlKG5vZGUgPT4ge1xuICAgICAgICAgICAgaWYgKCEhbm9kZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuX3Jvb3ROb2RlID0gbm9kZTtcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuYWN0aXZlTm9kZSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZU5vZGUgPSB0aGlzLl9yb290Tm9kZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLl9yb290TG9hZGluZyQub2ZmKCk7XG4gICAgICAgIH0sIGVycm9yID0+IHtcbiAgICAgICAgICAgIHRoaXMuX2xvZ2dlci5lcnJvcihlcnJvcik7XG4gICAgICAgICAgICB0aGlzLl9yb290TG9hZGluZyQub2ZmKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyByZXNldCgpOiBVcmlOb2RlUmVzb3VyY2Uge1xuICAgICAgICB0aGlzLmFjdGl2ZU5vZGUgPSB0aGlzLl9yb290Tm9kZTtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Jvb3ROb2RlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldCB1cmkgbm9kZSBieSB1cmkgcGF0aC5cbiAgICAgKiBAcGFyYW0gcGF0aFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXROb2RlQnlQYXRoKHBhdGg6IHN0cmluZyk6IE9ic2VydmFibGU8VXJpTm9kZVJlc291cmNlPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yZXNvdXJjZVNlcnZpY2UuZ2V0Tm9kZUJ5VXJpKHBhdGgpLnBpcGUoXG4gICAgICAgICAgICBtYXAobiA9PiB0aGlzLmNhcGl0YWxpemVOYW1lKG4pKSxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXQgY2hpbGQgbm9kZXMgb2YgcHJvdmlkZXMgbm9kZS5cbiAgICAgKiBAcGFyYW0gbm9kZSBwYXJlbnQgbm9kZVxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRDaGlsZE5vZGVzKG5vZGU/OiBVcmlOb2RlUmVzb3VyY2UpOiBPYnNlcnZhYmxlPEFycmF5PFVyaU5vZGVSZXNvdXJjZT4+IHtcbiAgICAgICAgaWYgKCFub2RlKSBub2RlID0gdGhpcy5hY3RpdmVOb2RlO1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVzb3VyY2VTZXJ2aWNlLmdldE5vZGVzQnlQYXJlbnQobm9kZS5pZCkucGlwZShcbiAgICAgICAgICAgIG1hcChub2RlcyA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5jYXBpdGFsaXplTmFtZXMobm9kZXMpO1xuICAgICAgICAgICAgICAgIHJldHVybiBub2RlcztcbiAgICAgICAgICAgIH0pLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldCBjYXNlcyB1bmRlciB1cmkgbm9kZVxuICAgICAqIEBwYXJhbSBub2RlIHBhcmVudCBub2RlIG9mIGNhc2VzXG4gICAgICogQHBhcmFtIHByb2Nlc3NJZGVudGlmaWVycyBvcHRpb25hbCBzZWFyY2ggZmlsdGVyIGZvciBwcm9jZXNzIGlkZW50aWZpZXIgdG8gZ2V0IG9ubHkgY2FzZXMgZnJvbSB0aGUgcHJvY2Vzc1xuICAgICAqIEBwYXJhbSBwYWdlTnVtYmVyIG9wdGlvbmFsIHBhcmFtZXRlciBmb3IgbG9hZCBwYWdlIG9uIHRoZSBpbmRleC4gRGVmYXVsdCB2YWx1ZSBpcyAwICh0aGUgZmlyc3QgcGFnZSkuXG4gICAgICogQHBhcmFtIHBhZ2VTaXplIG9wdGlvbmFsIHBhcmFtZXRlciBmb3IgbG9hZGVkIHBhZ2Ugc2l6ZS4gRGVmYXVsdHMgdG8gdmFsdWUgb2YgaW5qZWN0aW9uIHRva2VuIFVSSV9OT0RFX0NBU0VTX1BBR0VfU0laRSBvciB0byB2YWx1ZSBcIjIwXCIuXG4gICAgICovXG4gICAgcHVibGljIGdldENhc2VzT2ZOb2RlKG5vZGU/OiBVcmlOb2RlUmVzb3VyY2UsIHByb2Nlc3NJZGVudGlmaWVycz86IEFycmF5PHN0cmluZz4sIHBhZ2VOdW1iZXI6IG51bWJlciA9IDAsIHBhZ2VTaXplOiBzdHJpbmcgfCBudW1iZXIgPSB0aGlzLnBhZ2VTaXplKTogT2JzZXJ2YWJsZTxQYWdlPENhc2U+PiB7XG4gICAgICAgIGlmICghbm9kZSkgbm9kZSA9IHRoaXMuYWN0aXZlTm9kZTtcbiAgICAgICAgY29uc3Qgc2VhcmNoQm9keTogQ2FzZVNlYXJjaFJlcXVlc3RCb2R5ID0ge1xuICAgICAgICAgICAgdXJpTm9kZUlkOiBub2RlLmlkLFxuICAgICAgICB9O1xuICAgICAgICBpZiAoISFwcm9jZXNzSWRlbnRpZmllcnMpIHtcbiAgICAgICAgICAgIHNlYXJjaEJvZHkucHJvY2VzcyA9IHByb2Nlc3NJZGVudGlmaWVycy5tYXAoaWQgPT4gKHtpZGVudGlmaWVyOiBpZH0gYXMgUGV0cmlOZXRTZWFyY2hSZXF1ZXN0KSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gVE9ETyBhY3RpdmUgZ3JvdXAgaXMgYnJva2VuIGEgZ2l2ZW4gdGhlIHdyb25nIGlkXG4gICAgICAgIC8vIGlmICghIXRoaXMuX2FjdGl2ZUdyb3VwU2VydmljZS5hY3RpdmVHcm91cCkge1xuICAgICAgICAvLyAgICAgc2VhcmNoQm9keS5kYXRhID0ge307XG4gICAgICAgIC8vICAgICBzZWFyY2hCb2R5LmRhdGFbJ3BhcmVudElkJ10gPSB0aGlzLl9hY3RpdmVHcm91cFNlcnZpY2UuYWN0aXZlR3JvdXAuc3RyaW5nSWQ7XG4gICAgICAgIC8vIH1cbiAgICAgICAgbGV0IGh0dHBQYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpXG4gICAgICAgICAgICAuc2V0KFBhZ2luYXRpb25QYXJhbXMuUEFHRV9TSVpFLCBwYWdlU2l6ZSlcbiAgICAgICAgICAgIC5zZXQoUGFnaW5hdGlvblBhcmFtcy5QQUdFX05VTUJFUiwgcGFnZU51bWJlcik7XG4gICAgICAgIHJldHVybiB0aGlzLl9jYXNlUmVzb3VyY2VTZXJ2aWNlLnNlYXJjaENhc2VzKFNpbXBsZUZpbHRlci5mcm9tQ2FzZVF1ZXJ5KHNlYXJjaEJvZHkpLCBodHRwUGFyYW1zKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXQgbWVudSBpdGVtIGNhc2UgYnkgbm9kZVBhdGggZmllbGQgdmFsdWVcbiAgICAgKiBAcGFyYW0gbm9kZSBhIG5vZGUsIHRoYXQgaXMgcmVwcmVzZW50ZWQgYnkgdGhlIHdhbnRlZCBjYXNlXG4gICAgICogQHJldHVybiBwYWdlIGNvbnRhaW5pbmcgMSBjYXNlXG4gICAgICovXG4gICAgcHVibGljIGdldEl0ZW1DYXNlQnlOb2RlUGF0aChub2RlPzogVXJpTm9kZVJlc291cmNlKTogT2JzZXJ2YWJsZTxQYWdlPENhc2U+PiB7XG4gICAgICAgIGlmICghbm9kZSkge1xuICAgICAgICAgICAgbm9kZSA9IHRoaXMuYWN0aXZlTm9kZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzZWFyY2hCb2R5OiBDYXNlU2VhcmNoUmVxdWVzdEJvZHkgPSB7XG4gICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgW0dyb3VwTmF2aWdhdGlvbkNvbnN0YW50cy5JVEVNX0ZJRUxEX0lEX05PREVfUEFUSF0gOiBub2RlLnVyaVBhdGhcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBwcm9jZXNzOiB7aWRlbnRpZmllcjogXCJtZW51X2l0ZW1cIn1cbiAgICAgICAgfTtcblxuICAgICAgICBsZXQgaHR0cFBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKClcbiAgICAgICAgICAgIC5zZXQoUGFnaW5hdGlvblBhcmFtcy5QQUdFX1NJWkUsIDEpXG4gICAgICAgICAgICAuc2V0KFBhZ2luYXRpb25QYXJhbXMuUEFHRV9OVU1CRVIsIDApO1xuICAgICAgICByZXR1cm4gdGhpcy5fY2FzZVJlc291cmNlU2VydmljZS5zZWFyY2hDYXNlcyhTaW1wbGVGaWx0ZXIuZnJvbUNhc2VRdWVyeShzZWFyY2hCb2R5KSwgaHR0cFBhcmFtcyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0IHNpYmxpbmdzIG5vZGUgb2YgdGhlIHByb3ZpZGVkIG5vZGVcbiAgICAgKiBAcGFyYW0gbm9kZSBzaWJsaW5ncyBub2RlXG4gICAgICovXG4gICAgcHVibGljIGdldFNpYmxpbmdzT2ZOb2RlKG5vZGU/OiBVcmlOb2RlUmVzb3VyY2UpOiBPYnNlcnZhYmxlPEFycmF5PFVyaU5vZGVSZXNvdXJjZT4+IHtcbiAgICAgICAgaWYgKCFub2RlKSBub2RlID0gdGhpcy5hY3RpdmVOb2RlO1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVzb3VyY2VTZXJ2aWNlLmdldE5vZGVzQnlQYXJlbnQobm9kZS5wYXJlbnRJZCkucGlwZShcbiAgICAgICAgICAgIG1hcChub2RlcyA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5jYXBpdGFsaXplTmFtZXMobm9kZXMpO1xuICAgICAgICAgICAgICAgIHJldHVybiBub2RlcztcbiAgICAgICAgICAgIH0pLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldCBub2RlcyBvbiB0aGUgc2FtZSB1cmkgbGV2ZWwgc3RhcnRpbmcgZnJvbSAwLiBSb290IG5vZGUgaXMgbm8gMCBsZXZlbC5cbiAgICAgKiBAcGFyYW0gbGV2ZWxcbiAgICAgKiBAcGFyYW0gcGFyZW50IG9wdGlvbmFsIHBhcmFtZXRlciB0byBmaWx0ZXIgbm9kZXMgd2l0aCBjb21tb24gcGFyZW50XG4gICAgICovXG4gICAgcHVibGljIGdldE5vZGVzT25MZXZlbChsZXZlbDogbnVtYmVyLCBwYXJlbnQ/OiBVcmlOb2RlUmVzb3VyY2UpOiBPYnNlcnZhYmxlPEFycmF5PFVyaU5vZGVSZXNvdXJjZT4+IHtcbiAgICAgICAgaWYgKGxldmVsID09PSAwKSByZXR1cm4gb2YoW3RoaXMucm9vdF0pO1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVzb3VyY2VTZXJ2aWNlLmdldEJ5TGV2ZWwobGV2ZWwpLnBpcGUoXG4gICAgICAgICAgICBtYXAobm9kZXMgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IG5zID0gISFwYXJlbnQ/LmlkID8gbm9kZXMuZmlsdGVyKG4gPT4gbi5wYXJlbnRJZCA9PT0gcGFyZW50LmlkKSA6IG5vZGVzO1xuICAgICAgICAgICAgICAgIHRoaXMuY2FwaXRhbGl6ZU5hbWVzKG5zKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnM7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVzb2x2ZVBhcmVudFBhdGgobm9kZT86IFVyaU5vZGVSZXNvdXJjZSk6IHN0cmluZyB7XG4gICAgICAgIGlmICghbm9kZSkgbm9kZSA9IHRoaXMuYWN0aXZlTm9kZTtcbiAgICAgICAgY29uc3QgbGFzdERlbGltaXRlciA9IG5vZGUudXJpUGF0aC5sYXN0SW5kZXhPZignLycpO1xuICAgICAgICBpZiAobGFzdERlbGltaXRlciA9PT0gMCkgcmV0dXJuICcvJztcbiAgICAgICAgcmV0dXJuIG5vZGUudXJpUGF0aC5zdWJzdHJpbmcoMCwgbGFzdERlbGltaXRlcik7XG4gICAgfVxuXG4gICAgcHVibGljIHNwbGl0Tm9kZVBhdGgobm9kZTogVXJpTm9kZVJlc291cmNlKTogQXJyYXk8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiBub2RlPy51cmlQYXRoLnNwbGl0KCcvJykuZmlsdGVyKHMgPT4gcyAhPT0gVXJpU2VydmljZS5ST09UKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNhcGl0YWxpemVOYW1lcyhub2RlczogQXJyYXk8VXJpTm9kZVJlc291cmNlPikge1xuICAgICAgICBpZiAoIShub2RlcyBpbnN0YW5jZW9mIEFycmF5KSkgcmV0dXJuO1xuICAgICAgICBub2Rlcy5mb3JFYWNoKG4gPT4gdGhpcy5jYXBpdGFsaXplTmFtZShuKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogIC9uZXRncmlmL25hZV9zeXN0ZW0vcHJvY2Vzc2VzLy4uLiA9PiBOZXRncmlmIC0+IE5hZSBTeXN0ZW1zIC0+IFByb2Nlc3Nlc1xuICAgICAqIEBwYXJhbSBub2RlXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBwcml2YXRlIGNhcGl0YWxpemVOYW1lKG5vZGU6IFVyaU5vZGVSZXNvdXJjZSkge1xuICAgICAgICBsZXQgcGFydHMgPSBub2RlLm5hbWUuc3BsaXQoJ18nKTtcbiAgICAgICAgcGFydHMgPSBwYXJ0cy5tYXAocCA9PiB7XG4gICAgICAgICAgICBpZiAocCA9PT0gdW5kZWZpbmVkIHx8IHAubGVuZ3RoID09PSAwKSByZXR1cm47XG4gICAgICAgICAgICBpZiAocC5sZW5ndGggPT09IDEpIHJldHVybiBwLnRvVXBwZXJDYXNlKCk7XG4gICAgICAgICAgICByZXR1cm4gcC5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIHAuc3Vic3RyaW5nKDEpO1xuICAgICAgICB9KTtcbiAgICAgICAgbm9kZS5uYW1lID0gcGFydHMuam9pbignICcpO1xuICAgICAgICByZXR1cm4gbm9kZTtcbiAgICB9XG59XG4iXX0=
@@ -6,6 +6,7 @@ import { TextField } from '../../data-fields/text-field/models/text-field';
6
6
  import { MergeOperator } from '../../filter/models/merge-operator';
7
7
  import { GroupNavigationConstants } from "../model/group-navigation-constants";
8
8
  import { navigationItemTaskAllowedNetsServiceFactory } from "../../allowed-nets/services/factory/allowed-nets-service-factory";
9
+ import { SimpleFilter } from '../../filter/models/simple-filter';
9
10
  import * as i0 from "@angular/core";
10
11
  import * as i1 from "../../filter/filter.repository";
11
12
  import * as i2 from "../../resources/engine-endpoint/task-resource.service";
@@ -34,14 +35,24 @@ export class FilterExtractionService {
34
35
  }
35
36
  return navigationItemTaskAllowedNetsServiceFactory(this._factory, this.baseAllowedNets, sliced);
36
37
  }
37
- extractCompleteAdditionalFilterFromData(dataSection) {
38
+ extractCompleteAdditionalFilterFromData(dataSection, activatedRoute) {
38
39
  const taskRefIndex = getFieldIndexFromDataGroups(dataSection, GroupNavigationConstants.ITEM_FIELD_ID_ADDITIONAL_FILTER_TASKREF);
39
40
  if (taskRefIndex === undefined) {
40
41
  return undefined;
41
42
  }
42
- return this.extractCompleteFilterFromData(dataSection.slice(taskRefIndex.dataGroupIndex + 1));
43
+ return this.extractCompleteFilterFromData(dataSection.slice(taskRefIndex.dataGroupIndex + 1), activatedRoute);
43
44
  }
44
- extractCompleteFilterFromData(dataSection, fieldId = UserFilterConstants.FILTER_FIELD_ID) {
45
+ extractCompleteFilterFromData(dataSection, activatedRoute, fieldId = UserFilterConstants.FILTER_FIELD_ID) {
46
+ if (!dataSection) {
47
+ if (!activatedRoute) {
48
+ throw new Error('ActivatedRoute not provided.');
49
+ }
50
+ const singleCaseId = activatedRoute.snapshot.paramMap.get('singleCaseId');
51
+ if (!singleCaseId) {
52
+ throw new Error('Case ID not found in route.');
53
+ }
54
+ return SimpleFilter.fromTaskQuery({ case: { id: singleCaseId } });
55
+ }
45
56
  const filterIndex = getFieldIndexFromDataGroups(dataSection, fieldId);
46
57
  if (filterIndex === undefined) {
47
58
  return undefined;
@@ -53,7 +64,7 @@ export class FilterExtractionService {
53
64
  catch (e) {
54
65
  throw new Error('Filter segment could not be extracted from filter field');
55
66
  }
56
- const parentFilter = this.extractCompleteFilterFromData(dataSection.slice(filterIndex.dataGroupIndex + 1));
67
+ const parentFilter = this.extractCompleteFilterFromData(dataSection.slice(filterIndex.dataGroupIndex + 1), activatedRoute);
57
68
  if (parentFilter !== undefined && parentFilter.type === filterSegment.type) {
58
69
  return filterSegment.merge(parentFilter, MergeOperator.AND);
59
70
  }
@@ -96,4 +107,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
96
107
  providedIn: 'root'
97
108
  }]
98
109
  }], ctorParameters: function () { return [{ type: i1.FilterRepository }, { type: i2.TaskResourceService }, { type: i3.AllowedNetsServiceFactory }, { type: i4.BaseAllowedNetsService }, { type: i5.LoggerService }]; } });
99
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLWV4dHJhY3Rpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25ldGdyaWYtY29tcG9uZW50cy1jb3JlL3NyYy9saWIvbmF2aWdhdGlvbi91dGlsaXR5L2ZpbHRlci1leHRyYWN0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUd6QyxPQUFPLEVBQUMsNEJBQTRCLEVBQUMsTUFBTSx3Q0FBd0MsQ0FBQztBQUNwRixPQUFPLEVBQUMsc0JBQXNCLEVBQUUsMkJBQTJCLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUM1RixPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSwyQ0FBMkMsQ0FBQztBQUU5RSxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZ0RBQWdELENBQUM7QUFFekUsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBSWpFLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBRTdFLE9BQU8sRUFFSCwyQ0FBMkMsRUFDOUMsTUFBTSxrRUFBa0UsQ0FBQzs7Ozs7OztBQUcxRTs7R0FFRztBQUlILE1BQU0sT0FBTyx1QkFBdUI7SUFLaEMsWUFBc0IsaUJBQW1DLEVBQ25DLG9CQUF5QyxFQUN6QyxRQUFtQyxFQUNuQyxlQUF1QyxFQUN2QyxJQUFtQjtRQUpuQixzQkFBaUIsR0FBakIsaUJBQWlCLENBQWtCO1FBQ25DLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBcUI7UUFDekMsYUFBUSxHQUFSLFFBQVEsQ0FBMkI7UUFDbkMsb0JBQWUsR0FBZixlQUFlLENBQXdCO1FBQ3ZDLFNBQUksR0FBSixJQUFJLENBQWU7SUFDekMsQ0FBQztJQUVNLGtDQUFrQyxDQUFDLFdBQTZCO1FBQ25FLE1BQU0sWUFBWSxHQUFHLDJCQUEyQixDQUFDLFdBQVcs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dUJBQXVCLENBQUMsMEJBQTBCLENBQUMsQ0FBQztRQUNyRixJQUFJLEtBQUssS0FBSyxJQUFJLEVBQUU7WUFDaEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxxRUFBcUUsQ0FBQyxDQUFDO1NBQzFGO1FBQ0QsTUFBTSxvQkFBb0IsR0FBRyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxZQUFZLENBQUMsTUFBTSxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3RHLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUMvRSxJQUFJLGVBQWUsS0FBSyxTQUFTLEVBQUU7WUFDL0IsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsaURBQWlELG9CQUFvQixpQ0FBaUMsQ0FBQyxDQUFDO1lBQ3hILE9BQU8sU0FBUyxDQUFDO1NBQ3BCO1FBQ0QsT0FBTyxlQUFlLENBQUM7SUFDM0IsQ0FBQzs7QUFuRkQsc0ZBQXNGO0FBQzVELGtEQUEwQixHQUFHLGVBQWdCLENBQUE7cUhBSDlELHVCQUF1Qjt5SEFBdkIsdUJBQXVCLGNBRnBCLE1BQU07NEZBRVQsdUJBQXVCO2tCQUhuQyxVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0ZpbHRlcn0gZnJvbSAnLi4vLi4vZmlsdGVyL21vZGVscy9maWx0ZXInO1xuaW1wb3J0IHtEYXRhR3JvdXB9IGZyb20gJy4uLy4uL3Jlc291cmNlcy9pbnRlcmZhY2UvZGF0YS1ncm91cHMnO1xuaW1wb3J0IHtleHRyYWN0RmlsdGVyRnJvbUZpbHRlckZpZWxkfSBmcm9tICcuL25hdmlnYXRpb24taXRlbS10YXNrLXV0aWxpdHktbWV0aG9kcyc7XG5pbXBvcnQge2dldEZpZWxkRnJvbURhdGFHcm91cHMsIGdldEZpZWxkSW5kZXhGcm9tRGF0YUdyb3Vwc30gZnJvbSAnLi4vLi4vdXRpbGl0eS9nZXQtZmllbGQnO1xuaW1wb3J0IHtVc2VyRmlsdGVyQ29uc3RhbnRzfSBmcm9tICcuLi8uLi9maWx0ZXIvbW9kZWxzL3VzZXItZmlsdGVyLWNvbnN0YW50cyc7XG5pbXBvcnQge0ZpbHRlclJlcG9zaXRvcnl9IGZyb20gJy4uLy4uL2ZpbHRlci9maWx0ZXIucmVwb3NpdG9yeSc7XG5pbXBvcnQge1RleHRGaWVsZH0gZnJvbSAnLi4vLi4vZGF0YS1maWVsZHMvdGV4dC1maWVsZC9tb2RlbHMvdGV4dC1maWVsZCc7XG5pbXBvcnQge0xvZ2dlclNlcnZpY2V9IGZyb20gJy4uLy4uL2xvZ2dlci9zZXJ2aWNlcy9sb2dnZXIuc2VydmljZSc7XG5pbXBvcnQge01lcmdlT3BlcmF0b3J9IGZyb20gJy4uLy4uL2ZpbHRlci9tb2RlbHMvbWVyZ2Utb3BlcmF0b3InO1xuaW1wb3J0IHtUYXNrUmVzb3VyY2VTZXJ2aWNlfSBmcm9tICcuLi8uLi9yZXNvdXJjZXMvZW5naW5lLWVuZHBvaW50L3Rhc2stcmVzb3VyY2Uuc2VydmljZSc7XG5pbXBvcnQge0ZpbHRlckZpZWxkfSBmcm9tICcuLi8uLi9kYXRhLWZpZWxkcy9maWx0ZXItZmllbGQvbW9kZWxzL2ZpbHRlci1maWVsZCc7XG5pbXBvcnQge0RhdGFGaWVsZH0gZnJvbSAnLi4vLi4vZGF0YS1maWVsZHMvbW9kZWxzL2Fic3RyYWN0LWRhdGEtZmllbGQnO1xuaW1wb3J0IHtHcm91cE5hdmlnYXRpb25Db25zdGFudHN9IGZyb20gXCIuLi9tb2RlbC9ncm91cC1uYXZpZ2F0aW9uLWNvbnN0YW50c1wiO1xuaW1wb3J0IHtBbGxvd2VkTmV0c1NlcnZpY2V9IGZyb20gXCIuLi8uLi9hbGxvd2VkLW5ldHMvc2VydmljZXMvYWxsb3dlZC1uZXRzLnNlcnZpY2VcIjtcbmltcG9ydCB7XG4gICAgQWxsb3dlZE5ldHNTZXJ2aWNlRmFjdG9yeSxcbiAgICBuYXZpZ2F0aW9uSXRlbVRhc2tBbGxvd2VkTmV0c1NlcnZpY2VGYWN0b3J5XG59IGZyb20gXCIuLi8uLi9hbGxvd2VkLW5ldHMvc2VydmljZXMvZmFjdG9yeS9hbGxvd2VkLW5ldHMtc2VydmljZS1mYWN0b3J5XCI7XG5pbXBvcnQge0Jhc2VBbGxvd2VkTmV0c1NlcnZpY2V9IGZyb20gXCIuLi8uLi9hbGxvd2VkLW5ldHMvc2VydmljZXMvYmFzZS1hbGxvd2VkLW5ldHMuc2VydmljZVwiO1xuXG4vKipcbiAqIFRoaXMgc2VydmljZSBpcyBhYmxlIHRvIGxvYWQgdGhlIGZ1bGwgc2F2ZWQgZmlsdGVyIGluY2x1ZGluZyBhbGwgb2YgaXRzIGFuY2VzdG9yIGZpbHRlcnMuXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgRmlsdGVyRXh0cmFjdGlvblNlcnZpY2Uge1xuXG4gICAgLy8gdGhlIHNhbWUgcmVnZXggaXMgdXNlZCBpbiBhIGJhY2tlbmQgZmlsdGVyIHByb2Nlc3MgYWN0aW9uLiBQbGVhc2Uga2VlcCB0aGVtIGluIHN5bmNcbiAgICBwcm90ZWN0ZWQgc3RhdGljIHJlYWRvbmx5IFVOVEFCQkVEX1ZJRVdfSURfRVhUUkFDVE9SID0gJ14uKj8oLVxcXFxkKyk/JCc7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgX2ZpbHRlclJlcG9zaXRvcnk6IEZpbHRlclJlcG9zaXRvcnksXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF90YXNrUmVzb3VyY2VTZXJ2aWNlOiBUYXNrUmVzb3VyY2VTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfZmFjdG9yeTogQWxsb3dlZE5ldHNTZXJ2aWNlRmFjdG9yeSxcbiAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgYmFzZUFsbG93ZWROZXRzOiBCYXNlQWxsb3dlZE5ldHNTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfbG9nOiBMb2dnZXJTZXJ2aWNlKSB7XG4gICAgfVxuXG4gICAgcHVibGljIGV4dHJhY3RBZGRpdGlvbmFsRmlsdGVyQWxsb3dlZE5ldHMoZGF0YVNlY3Rpb246IEFycmF5PERhdGFHcm91cD4pOiBBbGxvd2VkTmV0c1NlcnZpY2Uge1xuICAgICAgICBjb25zdCB0YXNrUmVmSW5kZXggPSBnZXRGaWVsZEluZGV4RnJvbURhdGFHcm91cHMoZGF0YVNlY3Rpb24sIEdyb3VwTmF2aWdhdGlvbkNvbnN0YW50cy5JVEVNX0ZJRUxEX0lEX0FERElUSU9OQUxfRklMVEVSX1RBU0tSRUYpO1xuICAgICAgICBpZiAodGFza1JlZkluZGV4ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc2xpY2VkID0gZGF0YVNlY3Rpb24uc2xpY2UodGFza1JlZkluZGV4LmRhdGFHcm91cEluZGV4ICsgMSlcbiAgICAgICAgaWYgKHNsaWNlZC5sZW5ndGggPT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuYXZpZ2F0aW9uSXRlbVRhc2tBbGxvd2VkTmV0c1NlcnZpY2VGYWN0b3J5KHRoaXMuX2ZhY3RvcnksIHRoaXMuYmFzZUFsbG93ZWROZXRzLCBzbGljZWQpXG4gICAgfVxuXG4gICAgcHVibGljIGV4dHJhY3RDb21wbGV0ZUFkZGl0aW9uYWxGaWx0ZXJGcm9tRGF0YShkYXRhU2VjdGlvbjogQXJyYXk8RGF0YUdyb3VwPik6IEZpbHRlciB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGNvbnN0IHRhc2tSZWZJbmRleCA9IGdldEZpZWxkSW5kZXhGcm9tRGF0YUdyb3VwcyhkYXRhU2VjdGlvbiwgR3JvdXBOYXZpZ2F0aW9uQ29uc3RhbnRzLklURU1fRklFTERfSURfQURESVRJT05BTF9GSUxURVJfVEFTS1JFRik7XG4gICAgICAgIGlmICh0YXNrUmVmSW5kZXggPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLmV4dHJhY3RDb21wbGV0ZUZpbHRlckZyb21EYXRhKGRhdGFTZWN0aW9uLnNsaWNlKHRhc2tSZWZJbmRleC5kYXRhR3JvdXBJbmRleCArIDEpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZXh0cmFjdENvbXBsZXRlRmlsdGVyRnJvbURhdGEoZGF0YVNlY3Rpb246IEFycmF5PERhdGFHcm91cD4sIGZpZWxkSWQ6IHN0cmluZyA9IFVzZXJGaWx0ZXJDb25zdGFudHMuRklMVEVSX0ZJRUxEX0lEKTogRmlsdGVyIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgY29uc3QgZmlsdGVySW5kZXggPSBnZXRGaWVsZEluZGV4RnJvbURhdGFHcm91cHMoZGF0YVNlY3Rpb24sIGZpZWxkSWQpO1xuXG4gICAgICAgIGlmIChmaWx0ZXJJbmRleCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGZpbHRlclNlZ21lbnQ6IEZpbHRlcjtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGZpbHRlclNlZ21lbnQgPSBleHRyYWN0RmlsdGVyRnJvbUZpbHRlckZpZWxkKFxuICAgICAgICAgICAgICAgIGRhdGFTZWN0aW9uW2ZpbHRlckluZGV4LmRhdGFHcm91cEluZGV4XS5maWVsZHNbZmlsdGVySW5kZXguZmllbGRJbmRleF0gYXMgRmlsdGVyRmllbGRcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignRmlsdGVyIHNlZ21lbnQgY291bGQgbm90IGJlIGV4dHJhY3RlZCBmcm9tIGZpbHRlciBmaWVsZCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcGFyZW50RmlsdGVyID0gdGhpcy5leHRyYWN0Q29tcGxldGVGaWx0ZXJGcm9tRGF0YShkYXRhU2VjdGlvbi5zbGljZShmaWx0ZXJJbmRleC5kYXRhR3JvdXBJbmRleCArIDEpKTtcblxuICAgICAgICBpZiAocGFyZW50RmlsdGVyICE9PSB1bmRlZmluZWQgJiYgcGFyZW50RmlsdGVyLnR5cGUgPT09IGZpbHRlclNlZ21lbnQudHlwZSkge1xuICAgICAgICAgICAgcmV0dXJuIGZpbHRlclNlZ21lbnQubWVyZ2UocGFyZW50RmlsdGVyLCBNZXJnZU9wZXJhdG9yLkFORCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBJcyB0aGUgZmlsdGVyIHZpZXcgcm9vdGVkP1xuICAgICAgICBjb25zdCByb290Vmlld0lkRmllbGQgPSBnZXRGaWVsZEZyb21EYXRhR3JvdXBzKGRhdGFTZWN0aW9uLCBVc2VyRmlsdGVyQ29uc3RhbnRzLk9SSUdJTl9WSUVXX0lEX0ZJRUxEX0lEKTtcbiAgICAgICAgaWYgKHJvb3RWaWV3SWRGaWVsZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gZmlsdGVyU2VnbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHJvb3RWaWV3RmlsdGVyID0gdGhpcy5leHRyYWN0Vmlld0ZpbHRlcihyb290Vmlld0lkRmllbGQpO1xuICAgICAgICBpZiAocm9vdFZpZXdGaWx0ZXIgIT09IHVuZGVmaW5lZCAmJiByb290Vmlld0ZpbHRlci50eXBlID09PSBmaWx0ZXJTZWdtZW50LnR5cGUpIHtcbiAgICAgICAgICAgIHJldHVybiBmaWx0ZXJTZWdtZW50Lm1lcmdlKHJvb3RWaWV3RmlsdGVyLCBNZXJnZU9wZXJhdG9yLkFORCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZpbHRlclNlZ21lbnQ7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGV4dHJhY3RWaWV3RmlsdGVyKG9yaWdpblZpZXdJZEZpZWxkOiBEYXRhRmllbGQ8YW55Pik6IEZpbHRlciB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGlmIChvcmlnaW5WaWV3SWRGaWVsZCA9PT0gdW5kZWZpbmVkIHx8ICEob3JpZ2luVmlld0lkRmllbGQgaW5zdGFuY2VvZiBUZXh0RmllbGQpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0NvdWxkIG5vdCBleHRyYWN0IG9yaWdpbiB2aWV3IGlkIGZpZWxkIGZyb20gdGFzayBkYXRhJyk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgb3JpZ2luVmlld0lkID0gb3JpZ2luVmlld0lkRmllbGQudmFsdWU7XG5cbiAgICAgICAgY29uc3QgbWF0Y2ggPSBvcmlnaW5WaWV3SWQubWF0Y2goRmlsdGVyRXh0cmFjdGlvblNlcnZpY2UuVU5UQUJCRURfVklFV19JRF9FWFRSQUNUT1IpO1xuICAgICAgICBpZiAobWF0Y2ggPT09IG51bGwpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignVW5leHBlY3RlZCBzdGF0ZS4gVmlldyBJZCBvZiBvcmlnaW4gYXBwIHZpZXcgY291bGQgbm90IGJlIGV4dHJhY3RlZCcpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG9yaWdpblVudGFiYmVkVmlld0lkID0gb3JpZ2luVmlld0lkLnN1YnN0cmluZygwLCBvcmlnaW5WaWV3SWQubGVuZ3RoIC0gKG1hdGNoWzFdPy5sZW5ndGggPz8gMCkpO1xuICAgICAgICBjb25zdCBhcHBPcmlnaW5GaWx0ZXIgPSB0aGlzLl9maWx0ZXJSZXBvc2l0b3J5LmdldEZpbHRlcihvcmlnaW5VbnRhYmJlZFZpZXdJZCk7XG4gICAgICAgIGlmIChhcHBPcmlnaW5GaWx0ZXIgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5fbG9nLmVycm9yKGBDb3VsZCBub3QgcmV0cmlldmUgb3JpZ2luIGFwcCBmaWx0ZXIgd2l0aCBpZCAnJHtvcmlnaW5VbnRhYmJlZFZpZXdJZH0nLiBGYWxsaW5nIGJhY2sgdG8gZW1wdHkgZmlsdGVyYCk7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhcHBPcmlnaW5GaWx0ZXI7XG4gICAgfVxuXG59XG4iXX0=
110
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLWV4dHJhY3Rpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25ldGdyaWYtY29tcG9uZW50cy1jb3JlL3NyYy9saWIvbmF2aWdhdGlvbi91dGlsaXR5L2ZpbHRlci1leHRyYWN0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUd6QyxPQUFPLEVBQUMsNEJBQTRCLEVBQUMsTUFBTSx3Q0FBd0MsQ0FBQztBQUNwRixPQUFPLEVBQUMsc0JBQXNCLEVBQUUsMkJBQTJCLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUM1RixPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSwyQ0FBMkMsQ0FBQztBQUU5RSxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZ0RBQWdELENBQUM7QUFFekUsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBSWpFLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBRTdFLE9BQU8sRUFFSCwyQ0FBMkMsRUFDOUMsTUFBTSxrRUFBa0UsQ0FBQztBQUcxRSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sbUNBQW1DLENBQUM7Ozs7Ozs7QUFFL0Q7O0dBRUc7QUFJSCxNQUFNLE9BQU8sdUJBQXVCO0lBS2hDLFlBQXNCLGlCQUFtQyxFQUNuQyxvQkFBeUMsRUFDekMsUUFBbUMsRUFDbkMsZUFBdUMsRUFDdkMsSUFBbUI7UUFKbkIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFrQjtRQUNuQyx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXFCO1FBQ3pDLGFBQVEsR0FBUixRQUFRLENBQTJCO1FBQ25DLG9CQUFlLEdBQWYsZUFBZSxDQUF3QjtRQUN2QyxTQUFJLEdBQUosSUFBSSxDQUFlO0lBQ3pDLENBQUM7SUFFTSxrQ0FBa0MsQ0FBQyxX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c0ZBQXNGO0FBQzVELGtEQUEwQixHQUFHLGVBQWdCLENBQUE7cUhBSDlELHVCQUF1Qjt5SEFBdkIsdUJBQXVCLGNBRnBCLE1BQU07NEZBRVQsdUJBQXVCO2tCQUhuQyxVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0ZpbHRlcn0gZnJvbSAnLi4vLi4vZmlsdGVyL21vZGVscy9maWx0ZXInO1xuaW1wb3J0IHtEYXRhR3JvdXB9IGZyb20gJy4uLy4uL3Jlc291cmNlcy9pbnRlcmZhY2UvZGF0YS1ncm91cHMnO1xuaW1wb3J0IHtleHRyYWN0RmlsdGVyRnJvbUZpbHRlckZpZWxkfSBmcm9tICcuL25hdmlnYXRpb24taXRlbS10YXNrLXV0aWxpdHktbWV0aG9kcyc7XG5pbXBvcnQge2dldEZpZWxkRnJvbURhdGFHcm91cHMsIGdldEZpZWxkSW5kZXhGcm9tRGF0YUdyb3Vwc30gZnJvbSAnLi4vLi4vdXRpbGl0eS9nZXQtZmllbGQnO1xuaW1wb3J0IHtVc2VyRmlsdGVyQ29uc3RhbnRzfSBmcm9tICcuLi8uLi9maWx0ZXIvbW9kZWxzL3VzZXItZmlsdGVyLWNvbnN0YW50cyc7XG5pbXBvcnQge0ZpbHRlclJlcG9zaXRvcnl9IGZyb20gJy4uLy4uL2ZpbHRlci9maWx0ZXIucmVwb3NpdG9yeSc7XG5pbXBvcnQge1RleHRGaWVsZH0gZnJvbSAnLi4vLi4vZGF0YS1maWVsZHMvdGV4dC1maWVsZC9tb2RlbHMvdGV4dC1maWVsZCc7XG5pbXBvcnQge0xvZ2dlclNlcnZpY2V9IGZyb20gJy4uLy4uL2xvZ2dlci9zZXJ2aWNlcy9sb2dnZXIuc2VydmljZSc7XG5pbXBvcnQge01lcmdlT3BlcmF0b3J9IGZyb20gJy4uLy4uL2ZpbHRlci9tb2RlbHMvbWVyZ2Utb3BlcmF0b3InO1xuaW1wb3J0IHtUYXNrUmVzb3VyY2VTZXJ2aWNlfSBmcm9tICcuLi8uLi9yZXNvdXJjZXMvZW5naW5lLWVuZHBvaW50L3Rhc2stcmVzb3VyY2Uuc2VydmljZSc7XG5pbXBvcnQge0ZpbHRlckZpZWxkfSBmcm9tICcuLi8uLi9kYXRhLWZpZWxkcy9maWx0ZXItZmllbGQvbW9kZWxzL2ZpbHRlci1maWVsZCc7XG5pbXBvcnQge0RhdGFGaWVsZH0gZnJvbSAnLi4vLi4vZGF0YS1maWVsZHMvbW9kZWxzL2Fic3RyYWN0LWRhdGEtZmllbGQnO1xuaW1wb3J0IHtHcm91cE5hdmlnYXRpb25Db25zdGFudHN9IGZyb20gXCIuLi9tb2RlbC9ncm91cC1uYXZpZ2F0aW9uLWNvbnN0YW50c1wiO1xuaW1wb3J0IHtBbGxvd2VkTmV0c1NlcnZpY2V9IGZyb20gXCIuLi8uLi9hbGxvd2VkLW5ldHMvc2VydmljZXMvYWxsb3dlZC1uZXRzLnNlcnZpY2VcIjtcbmltcG9ydCB7XG4gICAgQWxsb3dlZE5ldHNTZXJ2aWNlRmFjdG9yeSxcbiAgICBuYXZpZ2F0aW9uSXRlbVRhc2tBbGxvd2VkTmV0c1NlcnZpY2VGYWN0b3J5XG59IGZyb20gXCIuLi8uLi9hbGxvd2VkLW5ldHMvc2VydmljZXMvZmFjdG9yeS9hbGxvd2VkLW5ldHMtc2VydmljZS1mYWN0b3J5XCI7XG5pbXBvcnQge0Jhc2VBbGxvd2VkTmV0c1NlcnZpY2V9IGZyb20gXCIuLi8uLi9hbGxvd2VkLW5ldHMvc2VydmljZXMvYmFzZS1hbGxvd2VkLW5ldHMuc2VydmljZVwiO1xuaW1wb3J0IHtBY3RpdmF0ZWRSb3V0ZX0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7U2ltcGxlRmlsdGVyfSBmcm9tICcuLi8uLi9maWx0ZXIvbW9kZWxzL3NpbXBsZS1maWx0ZXInO1xuXG4vKipcbiAqIFRoaXMgc2VydmljZSBpcyBhYmxlIHRvIGxvYWQgdGhlIGZ1bGwgc2F2ZWQgZmlsdGVyIGluY2x1ZGluZyBhbGwgb2YgaXRzIGFuY2VzdG9yIGZpbHRlcnMuXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgRmlsdGVyRXh0cmFjdGlvblNlcnZpY2Uge1xuXG4gICAgLy8gdGhlIHNhbWUgcmVnZXggaXMgdXNlZCBpbiBhIGJhY2tlbmQgZmlsdGVyIHByb2Nlc3MgYWN0aW9uLiBQbGVhc2Uga2VlcCB0aGVtIGluIHN5bmNcbiAgICBwcm90ZWN0ZWQgc3RhdGljIHJlYWRvbmx5IFVOVEFCQkVEX1ZJRVdfSURfRVhUUkFDVE9SID0gJ14uKj8oLVxcXFxkKyk/JCc7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgX2ZpbHRlclJlcG9zaXRvcnk6IEZpbHRlclJlcG9zaXRvcnksXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF90YXNrUmVzb3VyY2VTZXJ2aWNlOiBUYXNrUmVzb3VyY2VTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfZmFjdG9yeTogQWxsb3dlZE5ldHNTZXJ2aWNlRmFjdG9yeSxcbiAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgYmFzZUFsbG93ZWROZXRzOiBCYXNlQWxsb3dlZE5ldHNTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfbG9nOiBMb2dnZXJTZXJ2aWNlKSB7XG4gICAgfVxuXG4gICAgcHVibGljIGV4dHJhY3RBZGRpdGlvbmFsRmlsdGVyQWxsb3dlZE5ldHMoZGF0YVNlY3Rpb246IEFycmF5PERhdGFHcm91cD4pOiBBbGxvd2VkTmV0c1NlcnZpY2Uge1xuICAgICAgICBjb25zdCB0YXNrUmVmSW5kZXggPSBnZXRGaWVsZEluZGV4RnJvbURhdGFHcm91cHMoZGF0YVNlY3Rpb24sIEdyb3VwTmF2aWdhdGlvbkNvbnN0YW50cy5JVEVNX0ZJRUxEX0lEX0FERElUSU9OQUxfRklMVEVSX1RBU0tSRUYpO1xuICAgICAgICBpZiAodGFza1JlZkluZGV4ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc2xpY2VkID0gZGF0YVNlY3Rpb24uc2xpY2UodGFza1JlZkluZGV4LmRhdGFHcm91cEluZGV4ICsgMSlcbiAgICAgICAgaWYgKHNsaWNlZC5sZW5ndGggPT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuYXZpZ2F0aW9uSXRlbVRhc2tBbGxvd2VkTmV0c1NlcnZpY2VGYWN0b3J5KHRoaXMuX2ZhY3RvcnksIHRoaXMuYmFzZUFsbG93ZWROZXRzLCBzbGljZWQpXG4gICAgfVxuXG4gICAgcHVibGljIGV4dHJhY3RDb21wbGV0ZUFkZGl0aW9uYWxGaWx0ZXJGcm9tRGF0YShkYXRhU2VjdGlvbjogQXJyYXk8RGF0YUdyb3VwPiwgYWN0aXZhdGVkUm91dGU/OiBBY3RpdmF0ZWRSb3V0ZSk6IEZpbHRlciB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGNvbnN0IHRhc2tSZWZJbmRleCA9IGdldEZpZWxkSW5kZXhGcm9tRGF0YUdyb3VwcyhkYXRhU2VjdGlvbiwgR3JvdXBOYXZpZ2F0aW9uQ29uc3RhbnRzLklURU1fRklFTERfSURfQURESVRJT05BTF9GSUxURVJfVEFTS1JFRik7XG4gICAgICAgIGlmICh0YXNrUmVmSW5kZXggPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLmV4dHJhY3RDb21wbGV0ZUZpbHRlckZyb21EYXRhKGRhdGFTZWN0aW9uLnNsaWNlKHRhc2tSZWZJbmRleC5kYXRhR3JvdXBJbmRleCArIDEpLCBhY3RpdmF0ZWRSb3V0ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIGV4dHJhY3RDb21wbGV0ZUZpbHRlckZyb21EYXRhKGRhdGFTZWN0aW9uPzogQXJyYXk8RGF0YUdyb3VwPiwgYWN0aXZhdGVkUm91dGU/OiBBY3RpdmF0ZWRSb3V0ZSwgZmllbGRJZDogc3RyaW5nID0gVXNlckZpbHRlckNvbnN0YW50cy5GSUxURVJfRklFTERfSUQpOiBGaWx0ZXIgfCB1bmRlZmluZWQge1xuICAgICAgICBpZiAoIWRhdGFTZWN0aW9uKSB7XG4gICAgICAgICAgICBpZiAoIWFjdGl2YXRlZFJvdXRlKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdBY3RpdmF0ZWRSb3V0ZSBub3QgcHJvdmlkZWQuJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBzaW5nbGVDYXNlSWQgPSBhY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5wYXJhbU1hcC5nZXQoJ3NpbmdsZUNhc2VJZCcpO1xuICAgICAgICAgICAgaWYgKCFzaW5nbGVDYXNlSWQpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhc2UgSUQgbm90IGZvdW5kIGluIHJvdXRlLicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIFNpbXBsZUZpbHRlci5mcm9tVGFza1F1ZXJ5KHtjYXNlOiB7aWQ6IHNpbmdsZUNhc2VJZH19KTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBmaWx0ZXJJbmRleCA9IGdldEZpZWxkSW5kZXhGcm9tRGF0YUdyb3VwcyhkYXRhU2VjdGlvbiwgZmllbGRJZCk7XG5cbiAgICAgICAgaWYgKGZpbHRlckluZGV4ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgZmlsdGVyU2VnbWVudDogRmlsdGVyO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgZmlsdGVyU2VnbWVudCA9IGV4dHJhY3RGaWx0ZXJGcm9tRmlsdGVyRmllbGQoXG4gICAgICAgICAgICAgICAgZGF0YVNlY3Rpb25bZmlsdGVySW5kZXguZGF0YUdyb3VwSW5kZXhdLmZpZWxkc1tmaWx0ZXJJbmRleC5maWVsZEluZGV4XSBhcyBGaWx0ZXJGaWVsZFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdGaWx0ZXIgc2VnbWVudCBjb3VsZCBub3QgYmUgZXh0cmFjdGVkIGZyb20gZmlsdGVyIGZpZWxkJyk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBwYXJlbnRGaWx0ZXIgPSB0aGlzLmV4dHJhY3RDb21wbGV0ZUZpbHRlckZyb21EYXRhKGRhdGFTZWN0aW9uLnNsaWNlKGZpbHRlckluZGV4LmRhdGFHcm91cEluZGV4ICsgMSksIGFjdGl2YXRlZFJvdXRlKTtcblxuICAgICAgICBpZiAocGFyZW50RmlsdGVyICE9PSB1bmRlZmluZWQgJiYgcGFyZW50RmlsdGVyLnR5cGUgPT09IGZpbHRlclNlZ21lbnQudHlwZSkge1xuICAgICAgICAgICAgcmV0dXJuIGZpbHRlclNlZ21lbnQubWVyZ2UocGFyZW50RmlsdGVyLCBNZXJnZU9wZXJhdG9yLkFORCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBJcyB0aGUgZmlsdGVyIHZpZXcgcm9vdGVkP1xuICAgICAgICBjb25zdCByb290Vmlld0lkRmllbGQgPSBnZXRGaWVsZEZyb21EYXRhR3JvdXBzKGRhdGFTZWN0aW9uLCBVc2VyRmlsdGVyQ29uc3RhbnRzLk9SSUdJTl9WSUVXX0lEX0ZJRUxEX0lEKTtcbiAgICAgICAgaWYgKHJvb3RWaWV3SWRGaWVsZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gZmlsdGVyU2VnbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHJvb3RWaWV3RmlsdGVyID0gdGhpcy5leHRyYWN0Vmlld0ZpbHRlcihyb290Vmlld0lkRmllbGQpO1xuICAgICAgICBpZiAocm9vdFZpZXdGaWx0ZXIgIT09IHVuZGVmaW5lZCAmJiByb290Vmlld0ZpbHRlci50eXBlID09PSBmaWx0ZXJTZWdtZW50LnR5cGUpIHtcbiAgICAgICAgICAgIHJldHVybiBmaWx0ZXJTZWdtZW50Lm1lcmdlKHJvb3RWaWV3RmlsdGVyLCBNZXJnZU9wZXJhdG9yLkFORCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZpbHRlclNlZ21lbnQ7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGV4dHJhY3RWaWV3RmlsdGVyKG9yaWdpblZpZXdJZEZpZWxkOiBEYXRhRmllbGQ8YW55Pik6IEZpbHRlciB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGlmIChvcmlnaW5WaWV3SWRGaWVsZCA9PT0gdW5kZWZpbmVkIHx8ICEob3JpZ2luVmlld0lkRmllbGQgaW5zdGFuY2VvZiBUZXh0RmllbGQpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0NvdWxkIG5vdCBleHRyYWN0IG9yaWdpbiB2aWV3IGlkIGZpZWxkIGZyb20gdGFzayBkYXRhJyk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgb3JpZ2luVmlld0lkID0gb3JpZ2luVmlld0lkRmllbGQudmFsdWU7XG5cbiAgICAgICAgY29uc3QgbWF0Y2ggPSBvcmlnaW5WaWV3SWQubWF0Y2goRmlsdGVyRXh0cmFjdGlvblNlcnZpY2UuVU5UQUJCRURfVklFV19JRF9FWFRSQUNUT1IpO1xuICAgICAgICBpZiAobWF0Y2ggPT09IG51bGwpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignVW5leHBlY3RlZCBzdGF0ZS4gVmlldyBJZCBvZiBvcmlnaW4gYXBwIHZpZXcgY291bGQgbm90IGJlIGV4dHJhY3RlZCcpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG9yaWdpblVudGFiYmVkVmlld0lkID0gb3JpZ2luVmlld0lkLnN1YnN0cmluZygwLCBvcmlnaW5WaWV3SWQubGVuZ3RoIC0gKG1hdGNoWzFdPy5sZW5ndGggPz8gMCkpO1xuICAgICAgICBjb25zdCBhcHBPcmlnaW5GaWx0ZXIgPSB0aGlzLl9maWx0ZXJSZXBvc2l0b3J5LmdldEZpbHRlcihvcmlnaW5VbnRhYmJlZFZpZXdJZCk7XG4gICAgICAgIGlmIChhcHBPcmlnaW5GaWx0ZXIgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5fbG9nLmVycm9yKGBDb3VsZCBub3QgcmV0cmlldmUgb3JpZ2luIGFwcCBmaWx0ZXIgd2l0aCBpZCAnJHtvcmlnaW5VbnRhYmJlZFZpZXdJZH0nLiBGYWxsaW5nIGJhY2sgdG8gZW1wdHkgZmlsdGVyYCk7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhcHBPcmlnaW5GaWx0ZXI7XG4gICAgfVxuXG59XG4iXX0=
@@ -109,4 +109,16 @@ export function extractFieldValueFromData(dataSection, fieldId) {
109
109
  }
110
110
  return field.value;
111
111
  }
112
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi1pdGVtLXRhc2stdXRpbGl0eS1tZXRob2RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmV0Z3JpZi1jb21wb25lbnRzLWNvcmUvc3JjL2xpYi9uYXZpZ2F0aW9uL3V0aWxpdHkvbmF2aWdhdGlvbi1pdGVtLXRhc2stdXRpbGl0eS1tZXRob2RzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQy9ELE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBRTdFLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLDJDQUEyQyxDQUFDO0FBQzlFLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxvREFBb0QsQ0FBQztBQUMvRSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFFL0QsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLHlEQUF5RCxDQUFDO0FBR25GOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsbUJBQW1CLENBQUMsV0FBNkIsRUFBRSxnQkFBa0M7SUFDakcsTUFBTSxNQUFNLEdBQTZCLEVBQUMsSUFBSSxFQUFFLEVBQUUsRUFBQyxDQUFDO0lBRXBELElBQUksV0FBVyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7UUFDMUIsTUFBTSxJQUFJLEtBQUssQ0FBQywyR0FBMkcsQ0FBQyxDQUFDO0tBQ2hJO0lBRUQsTUFBTSxTQUFTLEdBQUcsc0JBQXNCLENBQUMsV0FBVyxFQUFFLHdCQUF3QixDQUFDLHNDQUFzQyxDQUFDLENBQUM7SUFFdkgsSUFBSSxTQUFTLEtBQUssU0FBUyxFQUFFO1FBQ3pCLE1BQU0sSUFBSSxLQUFLLENBQUMsdUNBQXVDLENBQUMsQ0FBQztLQUM1RDtJQUVELE1BQU0sTUFBTSxHQUFHLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMs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QUMsQ0FBQztLQUMvRTtJQUVELFFBQVEsU0FBUyxDQUFDLEtBQUssRUFBRTtRQUNyQixLQUFLLFVBQVU7WUFDWCxPQUFPLFVBQVUsQ0FBQyxRQUFRLENBQUM7UUFDL0IsS0FBSyxtQkFBbUI7WUFDcEIsT0FBTyxVQUFVLENBQUMsUUFBUSxDQUFDO1FBQy9CO1lBQ0ksT0FBTyxTQUFTLENBQUE7S0FDdkI7QUFDTCxDQUFDO0FBRUQ7Ozs7S0FJSztBQUNMLE1BQU0sVUFBVSx5QkFBeUIsQ0FBSSxXQUE2QixFQUFFLE9BQWU7SUFDdkYsTUFBTSxLQUFLLEdBQUcsc0JBQXNCLENBQUMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzNELElBQUksS0FBSyxLQUFLLFNBQVMsRUFBRTtRQUNyQixNQUFNLElBQUksS0FBSyxDQUFDLFNBQVMsT0FBTyx3QkFBd0IsQ0FBQyxDQUFDO0tBQzdEO0lBQ0QsT0FBTyxLQUFLLENBQUMsS0FBSyxDQUFDO0FBQ3ZCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0dyb3VwTmF2aWdhdGlvbkl0ZW1MYWJlbH0gZnJvbSAnLi4vbW9kZWwvZ3JvdXAtbmF2aWdhdGlvbi1pdGVtLWxhYmVsJztcbmltcG9ydCB7RGF0YUdyb3VwfSBmcm9tICcuLi8uLi9yZXNvdXJjZXMvaW50ZXJmYWNlL2RhdGEtZ3JvdXBzJztcbmltcG9ydCB7Z2V0RmllbGRGcm9tRGF0YUdyb3Vwc30gZnJvbSAnLi4vLi4vdXRpbGl0eS9nZXQtZmllbGQnO1xuaW1wb3J0IHtHcm91cE5hdmlnYXRpb25Db25zdGFudHN9IGZyb20gJy4uL21vZGVsL2dyb3VwLW5hdmlnYXRpb24tY29uc3RhbnRzJztcbmltcG9ydCB7RmlsdGVyfSBmcm9tICcuLi8uLi9maWx0ZXIvbW9kZWxzL2ZpbHRlcic7XG5pbXBvcnQge1VzZXJGaWx0ZXJDb25zdGFudHN9IGZyb20gJy4uLy4uL2ZpbHRlci9tb2RlbHMvdXNlci1maWx0ZXItY29uc3RhbnRzJztcbmltcG9ydCB7RmlsdGVyRmllbGR9IGZyb20gJy4uLy4uL2RhdGEtZmllbGRzL2ZpbHRlci1maWVsZC9tb2RlbHMvZmlsdGVyLWZpZWxkJztcbmltcG9ydCB7U2ltcGxlRmlsdGVyfSBmcm9tICcuLi8uLi9maWx0ZXIvbW9kZWxzL3NpbXBsZS1maWx0ZXInO1xuaW1wb3J0IHtNdWx0aWNob2ljZUZpZWxkfSBmcm9tICcuLi8uLi9kYXRhLWZpZWxkcy9tdWx0aWNob2ljZS1maWVsZC9tb2RlbHMvbXVsdGljaG9pY2UtZmllbGQnO1xuaW1wb3J0IHtTZWFyY2hNb2RlfSBmcm9tIFwiLi4vLi4vc2VhcmNoL21vZGVscy9jb21wb25lbnQtY29uZmlndXJhdGlvbi9zZWFyY2gtbW9kZVwiO1xuaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tIFwiQG5neC10cmFuc2xhdGUvY29yZVwiO1xuXG4vKipcbiAqIEV4dHJhY3RzIHRoZSBpdGVtIG5hbWUgYW5kIGl0ZW0gaWNvbiAoaWYgYW55KSByb20gYSBzZWN0aW9uIG9mIHRoZSBuYXZpZ2F0aW9uIGl0ZW0gdGFzayBkYXRhLlxuICogQHBhcmFtIGRhdGFTZWN0aW9uIGFuIGFycmF5IGNvbnRhaW5pbmcgdGhlIGRhdGEgZ3JvdXBzIHRoYXQgY29ycmVzcG9uZCB0byBhIHNpbmdsZSBuYXZpZ2F0aW9uIGVudHJ5XG4gKiBAcGFyYW0gdHJhbnNsYXRlU2VydmljZSBpcyBhIHNlcnZpY2UgdG8gdHJhbnNsYXRlIGxhYmVsIG5hbWVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3RJY29uQW5kVGl0bGUoZGF0YVNlY3Rpb246IEFycmF5PERhdGFHcm91cD4sIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UpOiBHcm91cE5hdmlnYXRpb25JdGVtTGFiZWwge1xuICAgIGNvbnN0IHJlc3VsdDogR3JvdXBOYXZpZ2F0aW9uSXRlbUxhYmVsID0ge25hbWU6ICcnfTtcblxuICAgIGlmIChkYXRhU2VjdGlvbi5sZW5ndGggPT09IDApIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdUaGUgcHJvdmlkZWQgdGFzayBkYXRhIGRvZXMgbm90IGJlbG9uZyB0byBhIE5hdmlnYXRpb24gbWVudSBpdGVtIHRhc2suIEljb24gYW5kIHRpdGxlIGNhbm5vdCBiZSBleHRyYWN0ZWQnKTtcbiAgICB9XG5cbiAgICBjb25zdCBuYW1lRmllbGQgPSBnZXRGaWVsZEZyb21EYXRhR3JvdXBzKGRhdGFTZWN0aW9uLCBHcm91cE5hdmlnYXRpb25Db25zdGFudHMuTkFWSUdBVElPTl9FTlRSWV9USVRMRV9GSUVMRF9JRF9TVUZGSVgpO1xuXG4gICAgaWYgKG5hbWVGaWVsZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignTmF2aWdhdGlvbiBuYW1lIGNvdWxkIG5vdCBiZSByZXNvbHZlZCcpO1xuICAgIH1cblxuICAgIGNvbnN0IGxvY2FsZSA9IHRyYW5zbGF0ZVNlcnZpY2UuY3VycmVudExhbmcuc3BsaXQoJy0nKVswXTtcbiAgICByZXN1bHQubmFtZSA9IGxvY2FsZSBpbiBuYW1lRmllbGQudmFsdWUudHJhbnNsYXRpb25zID8gbmFtZUZpZWxkLnZhbHVlLnRyYW5zbGF0aW9uc1tsb2NhbGVdIDogbmFtZUZpZWxkLnZhbHVlLmRlZmF1bHRWYWx1ZTtcblxuICAgIGNvbnN0IHVzZUljb24gPSBnZXRGaWVsZEZyb21EYXRhR3JvdXBzKGRhdGFTZWN0aW9uLCBHcm91cE5hdmlnYXRpb25Db25zdGFudHMuTkFWSUdBVElPTl9FTlRSWV9JQ09OX0VOQUJMRURfRklFTERfSURfU1VGRklYKTtcbiAgICBpZiAodXNlSWNvbiAhPT0gdW5kZWZpbmVkICYmIHVzZUljb24udmFsdWUpIHtcbiAgICAgICAgY29uc3QgaWNvbiA9IGdldEZpZWxkRnJvbURhdGFHcm91cHMoZGF0YVNlY3Rpb24sIEdyb3VwTmF2aWdhdGlvbkNvbnN0YW50cy5OQVZJR0FUSU9OX0VOVFJZX0lDT05fRklFTERfSURfU1VGRklYKTtcbiAgICAgICAgaWYgKGljb24gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5fbG9nLmVycm9yKCdOYXZpZ2F0aW9uIGVudHJ5IGljb24gY291bGQgbm90IGJlIHJlc29sdmVkLCBidXQgaXMgZW5hYmxlZC4gSWNvbiB3YXMgaWdub3JlZCcpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzdWx0Lmljb24gPSBpY29uLnZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG59XG5cbi8qKlxuICogQmFzZWQgb24gcHJvdmlkZWQgcGFyYW1ldGVyIGV4dHJhY3RzIGFsbG93ZWQgb3IgYmFubmVkIHJvbGVzIGludG8gYW4gQXJyYXkgb2Ygc3RyaW5ncyBmcm9tIGEgc2VjdGlvbiBvZiB0aGUgbmF2aWdhdGlvbiBpdGVtIHRhc2sgZGF0YS5cbiAqIEVhY2ggaXRlbSBoYXMgZm9ybWF0IFJPTEVfSU1QT1JUX0lEOk5FVF9JTVBPUlRfSURcbiAqIEBwYXJhbSBkYXRhU2VjdGlvbiBhbiBhcnJheSBjb250YWluaW5nIHRoZSBkYXRhIGdyb3VwcyB0aGF0IGNvcnJlc3BvbmQgdG8gYSBzaW5nbGUgbmF2aWdhdGlvbiBlbnRyeVxuICogQHBhcmFtIHJvbGVGaWVsZElkIElEIG9mIGZpZWxkIGNvbnRhaW5pbmcgYmFubmVkIG9yIGFsbG93ZWQgcm9sZSBJRHNcbiAqIEByZXR1cm5zIGFuIEFycmF5IG9mIHN0cmluZyB2YWx1ZXMgcmVwcmVzZW50aW5nIHJvbGUgSURzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0Um9sZXMoZGF0YVNlY3Rpb246IEFycmF5PERhdGFHcm91cD4sIHJvbGVGaWVsZElkOiBzdHJpbmcpOiBBcnJheTxzdHJpbmc+IHtcbiAgICBpZiAoZGF0YVNlY3Rpb24ubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignVGhlIHByb3ZpZGVkIHRhc2sgZGF0YSBkb2VzIG5vdCBiZWxvbmcgdG8gYSBOYXZpZ2F0aW9uIG1lbnUgaXRlbSB0YXNrLiBSb2xlIGVudHJpZXMgY2Fubm90IGJlIGV4dHJhY3RlZCcpO1xuICAgIH1cblxuICAgIGNvbnN0IHJvbGVJZHMgPSBnZXRGaWVsZEZyb21EYXRhR3JvdXBzKGRhdGFTZWN0aW9uLCByb2xlRmllbGRJZCk7XG4gICAgaWYgKHJvbGVJZHMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05hdmlnYXRpb24gZW50cnkgcm9sZSBhdXRob3JpemF0aW9uIGZpZWxkIGNvdWxkIG5vdCBiZSByZXNvbHZlZCcpO1xuICAgIH1cblxuICAgIHJldHVybiAocm9sZUlkcyBhcyB1bmtub3duIGFzIE11bHRpY2hvaWNlRmllbGQpLmNob2ljZXMubWFwKGNob2ljZSA9PiBjaG9pY2Uua2V5KTtcbn1cblxuLyoqXG4gKiBFeHRyYWN0cyB0aGUgZGF0YSBhbmQgY3JlYXRlcyBhIGZpbHRlciBvYmplY3QgZnJvbSB0aGUgbmF2aWdhdGlvbiBpdGVtIHRhc2sgZGF0YS5cbiAqIEBwYXJhbSBkYXRhU2VjdGlvbiBhbiBhcnJheSBjb250YWluaW5nIHRoZSBkYXRhIGdyb3VwcyB0aGF0IGNvcnJlc3BvbmQgdG8gYSBzaW5nbGUgbmF2aWdhdGlvbiBlbnRyeVxuICovXG5leHBvcnQgZnVuY3Rpb24gZXh0cmFjdEZpbHRlckZyb21EYXRhKGRhdGFTZWN0aW9uOiBBcnJheTxEYXRhR3JvdXA+KTogRmlsdGVyIHtcbiAgICByZXR1cm4gZXh0cmFjdEZpbHRlckZyb21GaWx0ZXJGaWVsZChleHRyYWN0RmlsdGVyRmllbGRGcm9tRGF0YShkYXRhU2VjdGlvbikpO1xufVxuXG4vKipcbiAqIEV4dHJhY3RzIHRoZSBmaWx0ZXIgZmllbGQgZnJvbSB0aGUgbmF2aWdhdGlvbiBpdGVtIHRhc2sgZGF0YS5cbiAqIEBwYXJhbSBkYXRhU2VjdGlvbiBhbiBhcnJheSBjb250YWluaW5nIHRoZSBkYXRhIGdyb3VwcyB0aGF0IGNvcnJlc3BvbmQgdG8gYSBzaW5nbGUgbmF2aWdhdGlvbiBlbnRyeVxuICogQHJldHVybnMgVGhlIGV4dHJhY3RlZCB7QGxpbmsgRmlsdGVyRmllbGR9IG9yIGB1bmRlZmluZWRgIGlmIGl0IGNvdWxkIG5vdCBiZSBleHRyYWN0ZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0RmlsdGVyRmllbGRGcm9tRGF0YShkYXRhU2VjdGlvbjogQXJyYXk8RGF0YUdyb3VwPik6IEZpbHRlckZpZWxkIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBmaWx0ZXJGaWVsZCA9IGdldEZpZWxkRnJvbURhdGFHcm91cHMoZGF0YVNlY3Rpb24sIFVzZXJGaWx0ZXJDb25zdGFudHMuRklMVEVSX0ZJRUxEX0lEKTtcblxuICAgIGlmIChmaWx0ZXJGaWVsZCA9PT0gdW5kZWZpbmVkIHx8ICEoZmlsdGVyRmllbGQgaW5zdGFuY2VvZiBGaWx0ZXJGaWVsZCkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBGaWx0ZXIgY291bGQgbm90IGJlIGV4dHJhY3RlZC4gVGhlIHByb3ZpZGVkIGRhdGFncm91cHMgZG8gbm90IGNvbnRhaW4gYSBmaWx0ZXIgZmllbGQgd2l0aCBJRCAnJHtcbiAgICAgICAgICAgIFVzZXJGaWx0ZXJDb25zdGFudHMuRklMVEVSX0ZJRUxEX0lEfSdgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmlsdGVyRmllbGQ7XG59XG5cbi8qKlxuICogQHJldHVybnMgYSB7QGxpbmsgU2ltcGxlRmlsdGVyfSBjb250YWluaW5nIHRoZSBmaWx0ZXIgc3RvcmVkIGluIHRoZSBwcm92aWRlZCB7QGxpbmsgRmlsdGVyRmllbGR9LlxuICogVGhyb3dzIGFuIGVycm9yIGlmIHRoaXMgaXMgbm90IHBvc3NpYmxlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZXh0cmFjdEZpbHRlckZyb21GaWx0ZXJGaWVsZChmaWx0ZXJGaWVsZDogRmlsdGVyRmllbGQpOiBGaWx0ZXIge1xuICAgIGlmIChmaWx0ZXJGaWVsZCA9PT0gdW5kZWZpbmVkIHx8ICEoZmlsdGVyRmllbGQgaW5zdGFuY2VvZiBGaWx0ZXJGaWVsZCkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdGaWx0ZXIgY291bGQgbm90IGJlIHJlc29sdmVkJyk7XG4gICAgfVxuICAgIHJldHVybiBTaW1wbGVGaWx0ZXIuZnJvbVF1ZXJ5KHtxdWVyeTogZmlsdGVyRmllbGQudmFsdWV9LCBmaWx0ZXJGaWVsZC5maWx0ZXJNZXRhZGF0YS5maWx0ZXJUeXBlKTtcbn1cblxuLyoqXG4gKiBFeHRyYWN0cyB0aGUgc2VsZWN0ZWQgc2VhcmNoIHR5cGUgZnJvbSBlbnVtZXJhdGlvbiBmaWVsZCBvZiB0aGUgbmF2aWdhdGlvbiBpdGVtIHRhc2sgZGF0YS5cbiAqIEByZXR1cm5zIGEge0BsaW5rIFNlYXJjaE1vZGV9IGNvbnRhaW5pbmcge0BsaW5rIFNlYXJjaE1vZGUuQURWQU5DRUR9IG9yIHtAbGluayBTZWFyY2hNb2RlLkZVTExURVhUfSBvciB7QGxpbmsgdW5kZWZpbmVkfVxuICogaWYgdW5leHBlY3RlZCB2YWx1ZSBpcyBmb3VuZFxuICogKi9cbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0U2VhcmNoVHlwZUZyb21EYXRhKGRhdGFTZWN0aW9uOiBBcnJheTxEYXRhR3JvdXA+LCB0eXBlRmllbGRJZDogc3RyaW5nKTogU2VhcmNoTW9kZSB7XG4gICAgY29uc3QgdHlwZUZpZWxkID0gZ2V0RmllbGRGcm9tRGF0YUdyb3VwcyhkYXRhU2VjdGlvbiwgdHlwZUZpZWxkSWQpO1xuICAgIGlmICh0eXBlRmllbGQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05hdmlnYXRpb24gZW50cnkgc2VhcmNoIHR5cGUgZmllbGQgY291bGQgbm90IGJlIHJlc29sdmVkJyk7XG4gICAgfVxuXG4gICAgc3dpdGNoICh0eXBlRmllbGQudmFsdWUpIHtcbiAgICAgICAgY2FzZSAnZnVsbHRleHQnOlxuICAgICAgICAgICAgcmV0dXJuIFNlYXJjaE1vZGUuRlVMTFRFWFQ7XG4gICAgICAgIGNhc2UgJ2Z1bGx0ZXh0X2FkdmFuY2VkJzpcbiAgICAgICAgICAgIHJldHVybiBTZWFyY2hNb2RlLkFEVkFOQ0VEO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgIH1cbn1cblxuLyoqXG4gKiBFeHRyYWN0cyBmaWVsZCB2YWx1ZSBmcm9tIGRhdGFcbiAqIEByZXR1cm5zIHZhbHVlIG9mIGV4dHJhY3RlZCBmaWVsZFxuICogQHRocm93cyBFcnJvciBpZiBubyBmaWVsZCBpcyBmb3VuZFxuICogKi9cbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0RmllbGRWYWx1ZUZyb21EYXRhPFQ+KGRhdGFTZWN0aW9uOiBBcnJheTxEYXRhR3JvdXA+LCBmaWVsZElkOiBzdHJpbmcpOiBUIHtcbiAgICBjb25zdCBmaWVsZCA9IGdldEZpZWxkRnJvbURhdGFHcm91cHMoZGF0YVNlY3Rpb24sIGZpZWxkSWQpO1xuICAgIGlmIChmaWVsZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgRmllbGQgJHtmaWVsZElkfSBjb3VsZCBub3QgYmUgcmVzb2x2ZWRgKTtcbiAgICB9XG4gICAgcmV0dXJuIGZpZWxkLnZhbHVlO1xufVxuIl19
112
+ /**
113
+ * Checks if the data groups contain view
114
+ * @returns true if the data contains filter
115
+ * @throws Error if filter field is not found
116
+ * */
117
+ export function hasView(dataSection) {
118
+ const field = getFieldFromDataGroups(dataSection, 'view_configuration_form');
119
+ if (field === undefined) {
120
+ throw new Error(`Field view_configuration_form could not be resolved`);
121
+ }
122
+ return field.value !== null && field.value !== undefined && field.value.length > 0;
123
+ }
124
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi1pdGVtLXRhc2stdXRpbGl0eS1tZXRob2RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmV0Z3JpZi1jb21wb25lbnRzLWNvcmUvc3JjL2xpYi9uYXZpZ2F0aW9uL3V0aWxpdHkvbmF2aWdhdGlvbi1pdGVtLXRhc2stdXRpbGl0eS1tZXRob2RzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQy9ELE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBRTdFLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLDJDQUEyQyxDQUFDO0FBQzlFLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxvREFBb0QsQ0FBQztBQUMvRSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFFL0QsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLHlEQUF5RCxDQUFDO0FBR25GOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsbUJBQW1CLENBQUMsV0FBNkIsRUFBRSxnQkFBa0M7SUFDakcsTUFBTSxNQUFNLEdBQTZCLEVBQUMsSUFBSSxFQUFFLEVBQUUsRUFBQyxDQUFDO0lBRXBELElBQUksV0FBVyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7UUFDMUIsTUFBTSxJQUFJLEtBQUssQ0FBQywyR0FBMkcsQ0FBQyxDQUFDO0tBQ2hJO0lBRUQsTUFBTSxTQUFTLEdBQUcsc0JBQXNCLENBQUMsV0FBVyxFQUFFLHdCQUF3QixDQUFDLHNDQUFzQyxDQUFDLENBQUM7SUFFdkgsSUFBSSxTQUFTLEtBQUssU0FBUyxFQUFFO1FBQ3pCLE1BQU0sSUFBSSxLQUFLLENBQUMsdUNBQXVDLENBQUMsQ0FBQztLQUM1RDtJQUVELE1BQU0sTUFBTSxHQUFHLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMs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QUMsQ0FBQztLQUMvRTtJQUVELFFBQVEsU0FBUyxDQUFDLEtBQUssRUFBRTtRQUNyQixLQUFLLFVBQVU7WUFDWCxPQUFPLFVBQVUsQ0FBQyxRQUFRLENBQUM7UUFDL0IsS0FBSyxtQkFBbUI7WUFDcEIsT0FBTyxVQUFVLENBQUMsUUFBUSxDQUFDO1FBQy9CO1lBQ0ksT0FBTyxTQUFTLENBQUE7S0FDdkI7QUFDTCxDQUFDO0FBRUQ7Ozs7S0FJSztBQUNMLE1BQU0sVUFBVSx5QkFBeUIsQ0FBSSxXQUE2QixFQUFFLE9BQWU7SUFDdkYsTUFBTSxLQUFLLEdBQUcsc0JBQXNCLENBQUMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzNELElBQUksS0FBSyxLQUFLLFNBQVMsRUFBRTtRQUNyQixNQUFNLElBQUksS0FBSyxDQUFDLFNBQVMsT0FBTyx3QkFBd0IsQ0FBQyxDQUFDO0tBQzdEO0lBQ0QsT0FBTyxLQUFLLENBQUMsS0FBSyxDQUFDO0FBQ3ZCLENBQUM7QUFFRDs7OztLQUlLO0FBQ0wsTUFBTSxVQUFVLE9BQU8sQ0FBQyxXQUE2QjtJQUNqRCxNQUFNLEtBQUssR0FBRyxzQkFBc0IsQ0FBQyxXQUFXLEVBQUUseUJBQXlCLENBQUMsQ0FBQztJQUM3RSxJQUFJLEtBQUssS0FBSyxTQUFTLEVBQUU7UUFDckIsTUFBTSxJQUFJLEtBQUssQ0FBQyxxREFBcUQsQ0FBQyxDQUFDO0tBQzFFO0lBQ0QsT0FBTyxLQUFLLENBQUMsS0FBSyxLQUFLLElBQUksSUFBSSxLQUFLLENBQUMsS0FBSyxLQUFLLFNBQVMsSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7QUFDdkYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7R3JvdXBOYXZpZ2F0aW9uSXRlbUxhYmVsfSBmcm9tICcuLi9tb2RlbC9ncm91cC1uYXZpZ2F0aW9uLWl0ZW0tbGFiZWwnO1xuaW1wb3J0IHtEYXRhR3JvdXB9IGZyb20gJy4uLy4uL3Jlc291cmNlcy9pbnRlcmZhY2UvZGF0YS1ncm91cHMnO1xuaW1wb3J0IHtnZXRGaWVsZEZyb21EYXRhR3JvdXBzfSBmcm9tICcuLi8uLi91dGlsaXR5L2dldC1maWVsZCc7XG5pbXBvcnQge0dyb3VwTmF2aWdhdGlvbkNvbnN0YW50c30gZnJvbSAnLi4vbW9kZWwvZ3JvdXAtbmF2aWdhdGlvbi1jb25zdGFudHMnO1xuaW1wb3J0IHtGaWx0ZXJ9IGZyb20gJy4uLy4uL2ZpbHRlci9tb2RlbHMvZmlsdGVyJztcbmltcG9ydCB7VXNlckZpbHRlckNvbnN0YW50c30gZnJvbSAnLi4vLi4vZmlsdGVyL21vZGVscy91c2VyLWZpbHRlci1jb25zdGFudHMnO1xuaW1wb3J0IHtGaWx0ZXJGaWVsZH0gZnJvbSAnLi4vLi4vZGF0YS1maWVsZHMvZmlsdGVyLWZpZWxkL21vZGVscy9maWx0ZXItZmllbGQnO1xuaW1wb3J0IHtTaW1wbGVGaWx0ZXJ9IGZyb20gJy4uLy4uL2ZpbHRlci9tb2RlbHMvc2ltcGxlLWZpbHRlcic7XG5pbXBvcnQge011bHRpY2hvaWNlRmllbGR9IGZyb20gJy4uLy4uL2RhdGEtZmllbGRzL211bHRpY2hvaWNlLWZpZWxkL21vZGVscy9tdWx0aWNob2ljZS1maWVsZCc7XG5pbXBvcnQge1NlYXJjaE1vZGV9IGZyb20gXCIuLi8uLi9zZWFyY2gvbW9kZWxzL2NvbXBvbmVudC1jb25maWd1cmF0aW9uL3NlYXJjaC1tb2RlXCI7XG5pbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2V9IGZyb20gXCJAbmd4LXRyYW5zbGF0ZS9jb3JlXCI7XG5cbi8qKlxuICogRXh0cmFjdHMgdGhlIGl0ZW0gbmFtZSBhbmQgaXRlbSBpY29uIChpZiBhbnkpIHJvbSBhIHNlY3Rpb24gb2YgdGhlIG5hdmlnYXRpb24gaXRlbSB0YXNrIGRhdGEuXG4gKiBAcGFyYW0gZGF0YVNlY3Rpb24gYW4gYXJyYXkgY29udGFpbmluZyB0aGUgZGF0YSBncm91cHMgdGhhdCBjb3JyZXNwb25kIHRvIGEgc2luZ2xlIG5hdmlnYXRpb24gZW50cnlcbiAqIEBwYXJhbSB0cmFuc2xhdGVTZXJ2aWNlIGlzIGEgc2VydmljZSB0byB0cmFuc2xhdGUgbGFiZWwgbmFtZVxuICovXG5leHBvcnQgZnVuY3Rpb24gZXh0cmFjdEljb25BbmRUaXRsZShkYXRhU2VjdGlvbjogQXJyYXk8RGF0YUdyb3VwPiwgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSk6IEdyb3VwTmF2aWdhdGlvbkl0ZW1MYWJlbCB7XG4gICAgY29uc3QgcmVzdWx0OiBHcm91cE5hdmlnYXRpb25JdGVtTGFiZWwgPSB7bmFtZTogJyd9O1xuXG4gICAgaWYgKGRhdGFTZWN0aW9uLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RoZSBwcm92aWRlZCB0YXNrIGRhdGEgZG9lcyBub3QgYmVsb25nIHRvIGEgTmF2aWdhdGlvbiBtZW51IGl0ZW0gdGFzay4gSWNvbiBhbmQgdGl0bGUgY2Fubm90IGJlIGV4dHJhY3RlZCcpO1xuICAgIH1cblxuICAgIGNvbnN0IG5hbWVGaWVsZCA9IGdldEZpZWxkRnJvbURhdGFHcm91cHMoZGF0YVNlY3Rpb24sIEdyb3VwTmF2aWdhdGlvbkNvbnN0YW50cy5OQVZJR0FUSU9OX0VOVFJZX1RJVExFX0ZJRUxEX0lEX1NVRkZJWCk7XG5cbiAgICBpZiAobmFtZUZpZWxkID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdOYXZpZ2F0aW9uIG5hbWUgY291bGQgbm90IGJlIHJlc29sdmVkJyk7XG4gICAgfVxuXG4gICAgY29uc3QgbG9jYWxlID0gdHJhbnNsYXRlU2VydmljZS5jdXJyZW50TGFuZy5zcGxpdCgnLScpWzBdO1xuICAgIHJlc3VsdC5uYW1lID0gbG9jYWxlIGluIG5hbWVGaWVsZC52YWx1ZS50cmFuc2xhdGlvbnMgPyBuYW1lRmllbGQudmFsdWUudHJhbnNsYXRpb25zW2xvY2FsZV0gOiBuYW1lRmllbGQudmFsdWUuZGVmYXVsdFZhbHVlO1xuXG4gICAgY29uc3QgdXNlSWNvbiA9IGdldEZpZWxkRnJvbURhdGFHcm91cHMoZGF0YVNlY3Rpb24sIEdyb3VwTmF2aWdhdGlvbkNvbnN0YW50cy5OQVZJR0FUSU9OX0VOVFJZX0lDT05fRU5BQkxFRF9GSUVMRF9JRF9TVUZGSVgpO1xuICAgIGlmICh1c2VJY29uICE9PSB1bmRlZmluZWQgJiYgdXNlSWNvbi52YWx1ZSkge1xuICAgICAgICBjb25zdCBpY29uID0gZ2V0RmllbGRGcm9tRGF0YUdyb3VwcyhkYXRhU2VjdGlvbiwgR3JvdXBOYXZpZ2F0aW9uQ29uc3RhbnRzLk5BVklHQVRJT05fRU5UUllfSUNPTl9GSUVMRF9JRF9TVUZGSVgpO1xuICAgICAgICBpZiAoaWNvbiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLl9sb2cuZXJyb3IoJ05hdmlnYXRpb24gZW50cnkgaWNvbiBjb3VsZCBub3QgYmUgcmVzb2x2ZWQsIGJ1dCBpcyBlbmFibGVkLiBJY29uIHdhcyBpZ25vcmVkJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXN1bHQuaWNvbiA9IGljb24udmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbn1cblxuLyoqXG4gKiBCYXNlZCBvbiBwcm92aWRlZCBwYXJhbWV0ZXIgZXh0cmFjdHMgYWxsb3dlZCBvciBiYW5uZWQgcm9sZXMgaW50byBhbiBBcnJheSBvZiBzdHJpbmdzIGZyb20gYSBzZWN0aW9uIG9mIHRoZSBuYXZpZ2F0aW9uIGl0ZW0gdGFzayBkYXRhLlxuICogRWFjaCBpdGVtIGhhcyBmb3JtYXQgUk9MRV9JTVBPUlRfSUQ6TkVUX0lNUE9SVF9JRFxuICogQHBhcmFtIGRhdGFTZWN0aW9uIGFuIGFycmF5IGNvbnRhaW5pbmcgdGhlIGRhdGEgZ3JvdXBzIHRoYXQgY29ycmVzcG9uZCB0byBhIHNpbmdsZSBuYXZpZ2F0aW9uIGVudHJ5XG4gKiBAcGFyYW0gcm9sZUZpZWxkSWQgSUQgb2YgZmllbGQgY29udGFpbmluZyBiYW5uZWQgb3IgYWxsb3dlZCByb2xlIElEc1xuICogQHJldHVybnMgYW4gQXJyYXkgb2Ygc3RyaW5nIHZhbHVlcyByZXByZXNlbnRpbmcgcm9sZSBJRHNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3RSb2xlcyhkYXRhU2VjdGlvbjogQXJyYXk8RGF0YUdyb3VwPiwgcm9sZUZpZWxkSWQ6IHN0cmluZyk6IEFycmF5PHN0cmluZz4ge1xuICAgIGlmIChkYXRhU2VjdGlvbi5sZW5ndGggPT09IDApIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdUaGUgcHJvdmlkZWQgdGFzayBkYXRhIGRvZXMgbm90IGJlbG9uZyB0byBhIE5hdmlnYXRpb24gbWVudSBpdGVtIHRhc2suIFJvbGUgZW50cmllcyBjYW5ub3QgYmUgZXh0cmFjdGVkJyk7XG4gICAgfVxuXG4gICAgY29uc3Qgcm9sZUlkcyA9IGdldEZpZWxkRnJvbURhdGFHcm91cHMoZGF0YVNlY3Rpb24sIHJvbGVGaWVsZElkKTtcbiAgICBpZiAocm9sZUlkcyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignTmF2aWdhdGlvbiBlbnRyeSByb2xlIGF1dGhvcml6YXRpb24gZmllbGQgY291bGQgbm90IGJlIHJlc29sdmVkJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIChyb2xlSWRzIGFzIHVua25vd24gYXMgTXVsdGljaG9pY2VGaWVsZCkuY2hvaWNlcy5tYXAoY2hvaWNlID0+IGNob2ljZS5rZXkpO1xufVxuXG4vKipcbiAqIEV4dHJhY3RzIHRoZSBkYXRhIGFuZCBjcmVhdGVzIGEgZmlsdGVyIG9iamVjdCBmcm9tIHRoZSBuYXZpZ2F0aW9uIGl0ZW0gdGFzayBkYXRhLlxuICogQHBhcmFtIGRhdGFTZWN0aW9uIGFuIGFycmF5IGNvbnRhaW5pbmcgdGhlIGRhdGEgZ3JvdXBzIHRoYXQgY29ycmVzcG9uZCB0byBhIHNpbmdsZSBuYXZpZ2F0aW9uIGVudHJ5XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0RmlsdGVyRnJvbURhdGEoZGF0YVNlY3Rpb246IEFycmF5PERhdGFHcm91cD4pOiBGaWx0ZXIge1xuICAgIHJldHVybiBleHRyYWN0RmlsdGVyRnJvbUZpbHRlckZpZWxkKGV4dHJhY3RGaWx0ZXJGaWVsZEZyb21EYXRhKGRhdGFTZWN0aW9uKSk7XG59XG5cbi8qKlxuICogRXh0cmFjdHMgdGhlIGZpbHRlciBmaWVsZCBmcm9tIHRoZSBuYXZpZ2F0aW9uIGl0ZW0gdGFzayBkYXRhLlxuICogQHBhcmFtIGRhdGFTZWN0aW9uIGFuIGFycmF5IGNvbnRhaW5pbmcgdGhlIGRhdGEgZ3JvdXBzIHRoYXQgY29ycmVzcG9uZCB0byBhIHNpbmdsZSBuYXZpZ2F0aW9uIGVudHJ5XG4gKiBAcmV0dXJucyBUaGUgZXh0cmFjdGVkIHtAbGluayBGaWx0ZXJGaWVsZH0gb3IgYHVuZGVmaW5lZGAgaWYgaXQgY291bGQgbm90IGJlIGV4dHJhY3RlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3RGaWx0ZXJGaWVsZEZyb21EYXRhKGRhdGFTZWN0aW9uOiBBcnJheTxEYXRhR3JvdXA+KTogRmlsdGVyRmllbGQgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IGZpbHRlckZpZWxkID0gZ2V0RmllbGRGcm9tRGF0YUdyb3VwcyhkYXRhU2VjdGlvbiwgVXNlckZpbHRlckNvbnN0YW50cy5GSUxURVJfRklFTERfSUQpO1xuXG4gICAgaWYgKGZpbHRlckZpZWxkID09PSB1bmRlZmluZWQgfHwgIShmaWx0ZXJGaWVsZCBpbnN0YW5jZW9mIEZpbHRlckZpZWxkKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEZpbHRlciBjb3VsZCBub3QgYmUgZXh0cmFjdGVkLiBUaGUgcHJvdmlkZWQgZGF0YWdyb3VwcyBkbyBub3QgY29udGFpbiBhIGZpbHRlciBmaWVsZCB3aXRoIElEICcke1xuICAgICAgICAgICAgVXNlckZpbHRlckNvbnN0YW50cy5GSUxURVJfRklFTERfSUR9J2ApO1xuICAgIH1cblxuICAgIHJldHVybiBmaWx0ZXJGaWVsZDtcbn1cblxuLyoqXG4gKiBAcmV0dXJucyBhIHtAbGluayBTaW1wbGVGaWx0ZXJ9IGNvbnRhaW5pbmcgdGhlIGZpbHRlciBzdG9yZWQgaW4gdGhlIHByb3ZpZGVkIHtAbGluayBGaWx0ZXJGaWVsZH0uXG4gKiBUaHJvd3MgYW4gZXJyb3IgaWYgdGhpcyBpcyBub3QgcG9zc2libGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0RmlsdGVyRnJvbUZpbHRlckZpZWxkKGZpbHRlckZpZWxkOiBGaWx0ZXJGaWVsZCk6IEZpbHRlciB7XG4gICAgaWYgKGZpbHRlckZpZWxkID09PSB1bmRlZmluZWQgfHwgIShmaWx0ZXJGaWVsZCBpbnN0YW5jZW9mIEZpbHRlckZpZWxkKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZpbHRlciBjb3VsZCBub3QgYmUgcmVzb2x2ZWQnKTtcbiAgICB9XG4gICAgcmV0dXJuIFNpbXBsZUZpbHRlci5mcm9tUXVlcnkoe3F1ZXJ5OiBmaWx0ZXJGaWVsZC52YWx1ZX0sIGZpbHRlckZpZWxkLmZpbHRlck1ldGFkYXRhLmZpbHRlclR5cGUpO1xufVxuXG4vKipcbiAqIEV4dHJhY3RzIHRoZSBzZWxlY3RlZCBzZWFyY2ggdHlwZSBmcm9tIGVudW1lcmF0aW9uIGZpZWxkIG9mIHRoZSBuYXZpZ2F0aW9uIGl0ZW0gdGFzayBkYXRhLlxuICogQHJldHVybnMgYSB7QGxpbmsgU2VhcmNoTW9kZX0gY29udGFpbmluZyB7QGxpbmsgU2VhcmNoTW9kZS5BRFZBTkNFRH0gb3Ige0BsaW5rIFNlYXJjaE1vZGUuRlVMTFRFWFR9IG9yIHtAbGluayB1bmRlZmluZWR9XG4gKiBpZiB1bmV4cGVjdGVkIHZhbHVlIGlzIGZvdW5kXG4gKiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3RTZWFyY2hUeXBlRnJvbURhdGEoZGF0YVNlY3Rpb246IEFycmF5PERhdGFHcm91cD4sIHR5cGVGaWVsZElkOiBzdHJpbmcpOiBTZWFyY2hNb2RlIHtcbiAgICBjb25zdCB0eXBlRmllbGQgPSBnZXRGaWVsZEZyb21EYXRhR3JvdXBzKGRhdGFTZWN0aW9uLCB0eXBlRmllbGRJZCk7XG4gICAgaWYgKHR5cGVGaWVsZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignTmF2aWdhdGlvbiBlbnRyeSBzZWFyY2ggdHlwZSBmaWVsZCBjb3VsZCBub3QgYmUgcmVzb2x2ZWQnKTtcbiAgICB9XG5cbiAgICBzd2l0Y2ggKHR5cGVGaWVsZC52YWx1ZSkge1xuICAgICAgICBjYXNlICdmdWxsdGV4dCc6XG4gICAgICAgICAgICByZXR1cm4gU2VhcmNoTW9kZS5GVUxMVEVYVDtcbiAgICAgICAgY2FzZSAnZnVsbHRleHRfYWR2YW5jZWQnOlxuICAgICAgICAgICAgcmV0dXJuIFNlYXJjaE1vZGUuQURWQU5DRUQ7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfVxufVxuXG4vKipcbiAqIEV4dHJhY3RzIGZpZWxkIHZhbHVlIGZyb20gZGF0YVxuICogQHJldHVybnMgdmFsdWUgb2YgZXh0cmFjdGVkIGZpZWxkXG4gKiBAdGhyb3dzIEVycm9yIGlmIG5vIGZpZWxkIGlzIGZvdW5kXG4gKiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3RGaWVsZFZhbHVlRnJvbURhdGE8VD4oZGF0YVNlY3Rpb246IEFycmF5PERhdGFHcm91cD4sIGZpZWxkSWQ6IHN0cmluZyk6IFQge1xuICAgIGNvbnN0IGZpZWxkID0gZ2V0RmllbGRGcm9tRGF0YUdyb3VwcyhkYXRhU2VjdGlvbiwgZmllbGRJZCk7XG4gICAgaWYgKGZpZWxkID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBGaWVsZCAke2ZpZWxkSWR9IGNvdWxkIG5vdCBiZSByZXNvbHZlZGApO1xuICAgIH1cbiAgICByZXR1cm4gZmllbGQudmFsdWU7XG59XG5cbi8qKlxuICogQ2hlY2tzIGlmIHRoZSBkYXRhIGdyb3VwcyBjb250YWluIHZpZXdcbiAqIEByZXR1cm5zIHRydWUgaWYgdGhlIGRhdGEgY29udGFpbnMgZmlsdGVyXG4gKiBAdGhyb3dzIEVycm9yIGlmIGZpbHRlciBmaWVsZCBpcyBub3QgZm91bmRcbiAqICovXG5leHBvcnQgZnVuY3Rpb24gaGFzVmlldyhkYXRhU2VjdGlvbjogQXJyYXk8RGF0YUdyb3VwPik6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGZpZWxkID0gZ2V0RmllbGRGcm9tRGF0YUdyb3VwcyhkYXRhU2VjdGlvbiwgJ3ZpZXdfY29uZmlndXJhdGlvbl9mb3JtJyk7XG4gICAgaWYgKGZpZWxkID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBGaWVsZCB2aWV3X2NvbmZpZ3VyYXRpb25fZm9ybSBjb3VsZCBub3QgYmUgcmVzb2x2ZWRgKTtcbiAgICB9XG4gICAgcmV0dXJuIGZpZWxkLnZhbHVlICE9PSBudWxsICYmIGZpZWxkLnZhbHVlICE9PSB1bmRlZmluZWQgJiYgZmllbGQudmFsdWUubGVuZ3RoID4gMDtcbn1cbiJdfQ==
@@ -85,7 +85,7 @@ export class AbstractTaskPanelComponent extends AbstractPanelWithImmediateDataCo
85
85
  this.taskEvent.emit(event);
86
86
  });
87
87
  this._subTaskData = _changedFieldsService.changedFields$.subscribe((changedFieldsMap) => {
88
- const filteredCaseIds = Object.keys(changedFieldsMap).filter(caseId => Object.keys(this._taskContentService.referencedTaskAndCaseIds).includes(caseId));
88
+ const filteredCaseIds = Object.keys(changedFieldsMap).filter(caseId => Object.keys(this._taskContentService.referencedTaskAndCaseIds)?.includes(caseId));
89
89
  const changedFields = [];
90
90
  filteredCaseIds.forEach(caseId => {
91
91
  const taskIds = this._taskContentService.referencedTaskAndCaseIds[caseId];
@@ -99,7 +99,7 @@ export class AbstractTaskPanelComponent extends AbstractPanelWithImmediateDataCo
99
99
  this.expand();
100
100
  });
101
101
  _taskOperations.close$.subscribe(() => {
102
- if (!this._taskForceOpen) {
102
+ if (!(this._taskForceOpen || this.preventCollapse)) {
103
103
  this.collapse();
104
104
  }
105
105
  });
@@ -401,4 +401,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
401
401
  }], taskPanelData: [{
402
402
  type: Input
403
403
  }] } });
404
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtdGFzay1wYW5lbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZXRncmlmLWNvbXBvbmVudHMtY29yZS9zcmMvbGliL3BhbmVsL3Rhc2stcGFuZWwvYWJzdHJhY3QtdGFzay1wYW5lbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILFNBQVMsRUFDVCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFHTCxRQUFRLEVBQ1IsTUFBTSxFQUdULE1BQU0sZUFBZSxDQUFDO0FBUXZCLE9BQU8sRUFBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRWpELE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUM3RCxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQU9sRSxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFPdEUsT0FBTyxFQUF3Qix1Q0FBdUMsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBRzFHLE9BQU8sRUFBQyx1Q0FBdUMsRUFBQyxNQUFNLHVDQUF1QyxDQUFDO0FBUzlGLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLDZEQUE2RCxDQUFDO0FBR2hHLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSw4REFBOEQsQ0FBQztBQUUxRixPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sdUNBQXVDLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFNbEUsTUFBTSxPQUFnQiwwQkFBMkIsU0FBUSx1Q0FBdUM7SUFrRTVGLFlBQWdDLG1CQUF1QyxFQUN2QyxJQUFtQixFQUNuQixnQkFBaUMsRUFDakMsVUFBNEIsRUFDNUIsaUJBQW1DLEVBQ25DLGtCQUFxQyxFQUNyQyxvQkFBeUMsRUFDekMsa0JBQXFDLEVBQ3JDLGtCQUFx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O29CQUNyQyxRQUFRLEVBQUUsRUFBRTtpQkFDZjs7MEJBa0YwQixRQUFROzswQkFBSSxNQUFNOzJCQUFDLHVDQUF1Qzs7MEJBSzFELFFBQVE7OzBCQUNSLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsbUJBQW1COzswQkFDdEMsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxZQUFZOzRDQWhGN0MscUJBQXFCO3NCQUE3QixLQUFLO2dCQUNHLHFCQUFxQjtzQkFBN0IsS0FBSztnQkFDVSxnQkFBZ0I7c0JBQS9CLEtBQUs7Z0JBQ1UsS0FBSztzQkFBcEIsS0FBSztnQkFDVSxJQUFJO3NCQUFuQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0cscUJBQXFCO3NCQUE3QixLQUFLO2dCQUNHLHVCQUF1QjtzQkFBL0IsS0FBSztnQkFFRyxZQUFZO3NCQUFwQixLQUFLO2dCQXdCRixtQkFBbUI7c0JBRHRCLEtBQUs7Z0JBTUcsWUFBWTtzQkFBcEIsS0FBSztnQkFJSSxTQUFTO3NCQUFsQixNQUFNO2dCQUNHLGNBQWM7c0JBQXZCLE1BQU07Z0JBMklJLGFBQWE7c0JBRHZCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ29tcG9uZW50LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPcHRpb25hbCxcbiAgICBPdXRwdXQsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVHlwZVxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TWF0RXhwYW5zaW9uUGFuZWx9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2V4cGFuc2lvbic7XG5pbXBvcnQge0NvbXBvbmVudFBvcnRhbH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQge1Rhc2tDb250ZW50U2VydmljZX0gZnJvbSAnLi4vLi4vdGFzay1jb250ZW50L3NlcnZpY2VzL3Rhc2stY29udGVudC5zZXJ2aWNlJztcbmltcG9ydCB7TG9nZ2VyU2VydmljZX0gZnJvbSAnLi4vLi4vbG9nZ2VyL3NlcnZpY2VzL2xvZ2dlci5zZXJ2aWNlJztcbmltcG9ydCB7VGFza1BhbmVsRGF0YX0gZnJvbSAnLi4vdGFzay1wYW5lbC1saXN0L3Rhc2stcGFuZWwtZGF0YS90YXNrLXBhbmVsLWRhdGEnO1xuaW1wb3J0IHtPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtUYXNrVmlld1NlcnZpY2V9IGZyb20gJy4uLy4uL3ZpZXcvdGFzay12aWV3L3NlcnZpY2UvdGFzay12aWV3LnNlcnZpY2UnO1xuaW1wb3J0IHtmaWx0ZXIsIG1hcCwgdGFrZX0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtIZWFkZXJDb2x1bW59IGZyb20gJy4uLy4uL2hlYWRlci9tb2RlbHMvaGVhZGVyLWNvbHVtbic7XG5pbXBvcnQge3RvTW9tZW50fSBmcm9tICcuLi8uLi9yZXNvdXJjZXMvdHlwZXMvbmFlLWRhdGUtdHlwZSc7XG5pbXBvcnQge0RBVEVfVElNRV9GT1JNQVRfU1RSSU5HfSBmcm9tICcuLi8uLi9tb21lbnQvdGltZS1mb3JtYXRzJztcbmltcG9ydCB7UGFwZXJWaWV3U2VydmljZX0gZnJvbSAnLi4vLi4vbmF2aWdhdGlvbi9xdWljay1wYW5lbC9jb21wb25lbnRzL3BhcGVyLXZpZXcuc2VydmljZSc7XG5pbXBvcnQge1Rhc2tFdmVudFNlcnZpY2V9IGZyb20gJy4uLy4uL3Rhc2stY29udGVudC9zZXJ2aWNlcy90YXNrLWV2ZW50LnNlcnZpY2UnO1xuaW1wb3J0IHtBc3NpZ25UYXNrU2VydmljZX0gZnJvbSAnLi4vLi4vdGFzay9zZXJ2aWNlcy9hc3NpZ24tdGFzay5zZXJ2aWNlJztcbmltcG9ydCB7RGVsZWdhdGVUYXNrU2VydmljZX0gZnJvbSAnLi4vLi4vdGFzay9zZXJ2aWNlcy9kZWxlZ2F0ZS10YXNrLnNlcnZpY2UnO1xuaW1wb3J0IHtDYW5jZWxUYXNrU2VydmljZX0gZnJvbSAnLi4vLi4vdGFzay9zZXJ2aWNlcy9jYW5jZWwtdGFzay5zZXJ2aWNlJztcbmltcG9ydCB7RmluaXNoVGFza1NlcnZpY2V9IGZyb20gJy4uLy4uL3Rhc2svc2VydmljZXMvZmluaXNoLXRhc2suc2VydmljZSc7XG5pbXBvcnQge1Rhc2tNZXRhRmllbGR9IGZyb20gJy4uLy4uL2hlYWRlci90YXNrLWhlYWRlci90YXNrLW1ldGEtZW51bSc7XG5pbXBvcnQge1Rhc2tSZXF1ZXN0U3RhdGVTZXJ2aWNlfSBmcm9tICcuLi8uLi90YXNrL3NlcnZpY2VzL3Rhc2stcmVxdWVzdC1zdGF0ZS5zZXJ2aWNlJztcbmltcG9ydCB7VGFza0RhdGFTZXJ2aWNlfSBmcm9tICcuLi8uLi90YXNrL3NlcnZpY2VzL3Rhc2stZGF0YS5zZXJ2aWNlJztcbmltcG9ydCB7QXNzaWduUG9saWN5U2VydmljZX0gZnJvbSAnLi4vLi4vdGFzay9zZXJ2aWNlcy9hc3NpZ24tcG9saWN5LnNlcnZpY2UnO1xuaW1wb3J0IHtTdWJqZWN0VGFza09wZXJhdGlvbnN9IGZyb20gJy4uLy4uL3Rhc2svbW9kZWxzL3N1YmplY3QtdGFzay1vcGVyYXRpb25zJztcbmltcG9ydCB7Q2FsbENoYWluU2VydmljZX0gZnJvbSAnLi4vLi4vdXRpbGl0eS9jYWxsLWNoYWluL2NhbGwtY2hhaW4uc2VydmljZSc7XG5pbXBvcnQge1Rhc2tFdmVudE5vdGlmaWNhdGlvbn0gZnJvbSAnLi4vLi4vdGFzay1jb250ZW50L21vZGVsL3Rhc2stZXZlbnQtbm90aWZpY2F0aW9uJztcbmltcG9ydCB7RGlzYWJsZUJ1dHRvbkZ1bnRpb25zLCBOQUVfVEFTS19QQU5FTF9ESVNBQkxFX0JVVFRPTl9GVU5DVElPTlN9IGZyb20gJy4vbW9kZWxzL2Rpc2FibGUtZnVuY3Rpb25zJztcbmltcG9ydCB7VGFza30gZnJvbSAnLi4vLi4vcmVzb3VyY2VzL2ludGVyZmFjZS90YXNrJztcbmltcG9ydCB7Q2hhbmdlZEZpZWxkc30gZnJvbSAnLi4vLi4vZGF0YS1maWVsZHMvbW9kZWxzL2NoYW5nZWQtZmllbGRzJztcbmltcG9ydCB7QWJzdHJhY3RQYW5lbFdpdGhJbW1lZGlhdGVEYXRhQ29tcG9uZW50fSBmcm9tICcuLi9hYnN0cmFjdC9wYW5lbC13aXRoLWltbWVkaWF0ZS1kYXRhJztcbmltcG9ydCB7VHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge0ZlYXR1cmVkVmFsdWV9IGZyb20gJy4uL2Fic3RyYWN0L2ZlYXR1cmVkLXZhbHVlJztcbmltcG9ydCB7Q3VycmVuY3lQaXBlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtQZXJtaXNzaW9uU2VydmljZX0gZnJvbSAnLi4vLi4vYXV0aG9yaXphdGlvbi9wZXJtaXNzaW9uL3Blcm1pc3Npb24uc2VydmljZSc7XG5pbXBvcnQge0NoYW5nZWRGaWVsZHNTZXJ2aWNlfSBmcm9tICcuLi8uLi9jaGFuZ2VkLWZpZWxkcy9zZXJ2aWNlcy9jaGFuZ2VkLWZpZWxkcy5zZXJ2aWNlJztcbmltcG9ydCB7Q2hhbmdlZEZpZWxkc01hcH0gZnJvbSAnLi4vLi4vZXZlbnQvc2VydmljZXMvaW50ZXJmYWNlcy9jaGFuZ2VkLWZpZWxkcy1tYXAnO1xuaW1wb3J0IHtUYXNrUGFuZWxDb250ZXh0fSBmcm9tICcuL21vZGVscy90YXNrLXBhbmVsLWNvbnRleHQnO1xuaW1wb3J0IHtPdmVyZmxvd1NlcnZpY2V9IGZyb20gJy4uLy4uL2hlYWRlci9zZXJ2aWNlcy9vdmVyZmxvdy5zZXJ2aWNlJztcbmltcG9ydCB7TkFFX1RBU0tfRk9SQ0VfT1BFTn0gZnJvbSAnLi4vLi4vdmlldy90YXNrLXZpZXcvbW9kZWxzL2luamVjdGlvbi10b2tlbi10YXNrLWZvcmNlLW9wZW4nO1xuaW1wb3J0IHtDZGtWaXJ0dWFsU2Nyb2xsVmlld3BvcnR9IGZyb20gJ0Bhbmd1bGFyL2Nkay9zY3JvbGxpbmcnO1xuaW1wb3J0IHsgRmluaXNoUG9saWN5U2VydmljZSB9IGZyb20gJy4uLy4uL3Rhc2svc2VydmljZXMvZmluaXNoLXBvbGljeS5zZXJ2aWNlJztcbmltcG9ydCB7TkFFX1RBQl9EQVRBfSBmcm9tICcuLi8uLi90YWJzL3RhYi1kYXRhLWluamVjdGlvbi10b2tlbi90YWItZGF0YS1pbmplY3Rpb24tdG9rZW4nO1xuaW1wb3J0IHtJbmplY3RlZFRhYkRhdGF9IGZyb20gJy4uLy4uL3RhYnMvaW50ZXJmYWNlcyc7XG5pbXBvcnQge0FmdGVyQWN0aW9ufSBmcm9tICcuLi8uLi91dGlsaXR5L2NhbGwtY2hhaW4vYWZ0ZXItYWN0aW9uJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICduY2MtYWJzdHJhY3QtbGVnYWwtbm90aWNlJyxcbiAgICB0ZW1wbGF0ZTogJydcbn0pXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3RUYXNrUGFuZWxDb21wb25lbnQgZXh0ZW5kcyBBYnN0cmFjdFBhbmVsV2l0aEltbWVkaWF0ZURhdGFDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG5cbiAgICAvKipcbiAgICAgKiBAaWdub3JlXG4gICAgICogU2V0IGJ5IGFuIEBJbnB1dCgpIG9uIGEgc2V0dGVyIGZ1bmN0aW9uLCB0aGF0IGFsc28gcmVzb2x2ZXMgZmVhdHVyZWQgZmllbGRzLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBfdGFza1BhbmVsRGF0YTogVGFza1BhbmVsRGF0YTtcbiAgICBwcm90ZWN0ZWQgX2ZvcmNlTG9hZERhdGFPbk9wZW4gPSBmYWxzZTtcbiAgICBASW5wdXQoKSB0YXNrTGlzdFZpcnR1YWxTY3JvbGw6IENka1ZpcnR1YWxTY3JvbGxWaWV3cG9ydDtcbiAgICBASW5wdXQoKSBwYW5lbENvbnRlbnRDb21wb25lbnQ6IFR5cGU8YW55PjtcbiAgICBASW5wdXQoKSBwdWJsaWMgc2VsZWN0ZWRIZWFkZXJzJDogT2JzZXJ2YWJsZTxBcnJheTxIZWFkZXJDb2x1bW4+PjtcbiAgICBASW5wdXQoKSBwdWJsaWMgZmlyc3Q6IGJvb2xlYW47XG4gICAgQElucHV0KCkgcHVibGljIGxhc3Q6IGJvb2xlYW47XG4gICAgQElucHV0KCkgcmVzcG9uc2l2ZUJvZHkgPSB0cnVlO1xuICAgIEBJbnB1dCgpIHByZXZlbnRDb2xsYXBzZSA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIGhpZGVQYW5lbEhlYWRlciA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIGhpZGVBY3Rpb25Sb3cgPSBmYWxzZTtcbiAgICBASW5wdXQoKSBhY3Rpb25CdXR0b25UZW1wbGF0ZXM6IEFycmF5PFRlbXBsYXRlUmVmPGFueT4+O1xuICAgIEBJbnB1dCgpIGFjdGlvblJvd0p1c3RpZnlDb250ZW50OiAnc3BhY2UtYmV0d2VlbicgfCAnZmxleC1zdGFydCcgfCAnZmxleC1lbmQnIHwgJ2NlbnRlcicgfCAnc3BhY2UtYXJvdW5kJyB8XG4gICAgICAgICdpbml0aWFsJyB8ICdzdGFydCcgfCAnZW5kJyB8ICdsZWZ0JyB8ICdyaWdodCcgfCAncmV2ZXJ0JyB8ICdpbmhlcml0JyB8ICd1bnNldCdcbiAgICBASW5wdXQoKSBzaG93TW9yZU1lbnU6IGJvb2xlYW4gPSB0cnVlO1xuXG4gICAgdGhpc0NvbnRleHQ6IFRhc2tQYW5lbENvbnRleHQgPSB7XG4gICAgICAgIGNhbkFzc2lnbjogKCkgPT4gdGhpcy5jYW5Bc3NpZ24oKSxcbiAgICAgICAgYXNzaWduOiAoKSA9PiB0aGlzLmFzc2lnbigpLFxuICAgICAgICBnZXRBc3NpZ25UaXRsZTogKCkgPT4gdGhpcy5nZXRBc3NpZ25UaXRsZSgpLFxuICAgICAgICBkZWxlZ2F0ZTogKCkgPT4gdGhpcy5kZWxlZ2F0ZSgpLFxuICAgICAgICBnZXREZWxlZ2F0ZVRpdGxlOiAoKSA9PiB0aGlzLmdldERlbGVnYXRlVGl0bGUoKSxcbiAgICAgICAgY2FuUmVhc3NpZ246ICgpID0+IHRoaXMuY2FuUmVhc3NpZ24oKSxcbiAgICAgICAgY2FuQ2FuY2VsOiAoKSA9PiB0aGlzLmNhbkNhbmNlbCgpLFxuICAgICAgICBjYW5jZWw6ICgpID0+IHRoaXMuY2FuY2VsKCksXG4gICAgICAgIGdldENhbmNlbFRpdGxlOiAoKSA9PiB0aGlzLmdldENhbmNlbFRpdGxlKCksXG4gICAgICAgIGNhbkZpbmlzaDogKCkgPT4gdGhpcy5jYW5GaW5pc2goKSxcbiAgICAgICAgZmluaXNoOiAoKSA9PiB0aGlzLmZpbmlzaCgpLFxuICAgICAgICBnZXRGaW5pc2hUaXRsZTogKCkgPT4gdGhpcy5nZXRGaW5pc2hUaXRsZSgpLFxuICAgICAgICBjYW5Db2xsYXBzZTogKCkgPT4gdGhpcy5jYW5Db2xsYXBzZSgpLFxuICAgICAgICBjb2xsYXBzZTogKCkgPT4gdGhpcy5jb2xsYXBzZSgpLFxuICAgICAgICBjYW5EaXNhYmxlOiAoYXJnOiBzdHJpbmcpID0+IHRoaXMuY2FuRGlzYWJsZShhcmcpLFxuICAgICAgICBjYW5EbzogKGFyZzogc3RyaW5nKSA9PiB0aGlzLmNhbkRvKGFyZyksXG4gICAgICAgIGlzTG9hZGluZzogKCkgPT4gdGhpcy5pc0xvYWRpbmdcbiAgICB9O1xuXG5cbiAgICBASW5wdXQoKVxuICAgIHNldCBmb3JjZUxvYWREYXRhT25PcGVuKGZvcmNlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX2ZvcmNlTG9hZERhdGFPbk9wZW4gPSBmb3JjZTtcbiAgICAgICAgdGhpcy5fYXNzaWduUG9saWN5U2VydmljZS5mb3JjZWQgPSBmb3JjZTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSB0ZXh0RWxsaXBzaXMgPSBmYWxzZTtcbiAgICAvKipcbiAgICAgKiBFbWl0cyBub3RpZmljYXRpb25zIGFib3V0IHRhc2sgZXZlbnRzXG4gICAgICovXG4gICAgQE91dHB1dCgpIHRhc2tFdmVudDogRXZlbnRFbWl0dGVyPFRhc2tFdmVudE5vdGlmaWNhdGlvbj47XG4gICAgQE91dHB1dCgpIHBhbmVsUmVmT3V0cHV0OiBFdmVudEVtaXR0ZXI8TWF0RXhwYW5zaW9uUGFuZWw+O1xuXG4gICAgcHVibGljIHBvcnRhbDogQ29tcG9uZW50UG9ydGFsPGFueT47XG4gICAgcHVibGljIHBhbmVsUmVmOiBNYXRFeHBhbnNpb25QYW5lbDtcbiAgICBwcm90ZWN0ZWQgX3N1YjogU3Vic2NyaXB0aW9uO1xuICAgIHByb3RlY3RlZCBfc3ViVGFza0V2ZW50OiBTdWJzY3JpcHRpb247XG4gICAgcHJvdGVjdGVkIF9zdWJUYXNrRGF0YTogU3Vic2NyaXB0aW9uO1xuICAgIHByb3RlY3RlZCBfc3ViUGFuZWxVcGRhdGU6IFN1YnNjcmlwdGlvbjtcbiAgICBwcm90ZWN0ZWQgX3Rhc2tEaXNhYmxlQnV0dG9uRnVuY3Rpb25zOiBEaXNhYmxlQnV0dG9uRnVudGlvbnM7XG4gICAgcHJvdGVjdGVkIF91bnN1YjogU3Vic2NyaXB0aW9uO1xuICAgIHByb3RlY3RlZCBfY2FuUmVsb2FkOiBib29sZWFuO1xuXG4gICAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBfdGFza0NvbnRlbnRTZXJ2aWNlOiBUYXNrQ29udGVudFNlcnZpY2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfbG9nOiBMb2dnZXJTZXJ2aWNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX3Rhc2tWaWV3U2VydmljZTogVGFza1ZpZXdTZXJ2aWNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX3BhcGVyVmlldzogUGFwZXJWaWV3U2VydmljZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvdGVjdGVkIF90YXNrRXZlbnRTZXJ2aWNlOiBUYXNrRXZlbnRTZXJ2aWNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX2Fzc2lnblRhc2tTZXJ2aWNlOiBBc3NpZ25UYXNrU2VydmljZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvdGVjdGVkIF9kZWxlZ2F0ZVRhc2tTZXJ2aWNlOiBEZWxlZ2F0ZVRhc2tTZXJ2aWNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX2NhbmNlbFRhc2tTZXJ2aWNlOiBDYW5jZWxUYXNrU2VydmljZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvdGVjdGVkIF9maW5pc2hUYXNrU2VydmljZTogRmluaXNoVGFza1NlcnZpY2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfdGFza1N0YXRlOiBUYXNrUmVxdWVzdFN0YXRlU2VydmljZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvdGVjdGVkIF90YXNrRGF0YVNlcnZpY2U6IFRhc2tEYXRhU2VydmljZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvdGVjdGVkIF9hc3NpZ25Qb2xpY3lTZXJ2aWNlOiBBc3NpZ25Qb2xpY3lTZXJ2aWNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX2ZpbmlzaFBvbGljeVNlcnZpY2U6IEZpbmlzaFBvbGljeVNlcnZpY2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfY2FsbENoYWluOiBDYWxsQ2hhaW5TZXJ2aWNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX3Rhc2tPcGVyYXRpb25zOiBTdWJqZWN0VGFza09wZXJhdGlvbnMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoTkFFX1RBU0tfUEFORUxfRElTQUJMRV9CVVRUT05fRlVOQ1RJT05TKSBwcm90ZWN0ZWQgX2Rpc2FibGVGdW5jdGlvbnM6IERpc2FibGVCdXR0b25GdW50aW9ucyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvdGVjdGVkIF90cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfY3VycmVuY3lQaXBlOiBDdXJyZW5jeVBpcGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfY2hhbmdlZEZpZWxkc1NlcnZpY2U6IENoYW5nZWRGaWVsZHNTZXJ2aWNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX3Blcm1pc3Npb25TZXJ2aWNlOiBQZXJtaXNzaW9uU2VydmljZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgb3ZlcmZsb3dTZXJ2aWNlOiBPdmVyZmxvd1NlcnZpY2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoTkFFX1RBU0tfRk9SQ0VfT1BFTikgcHJvdGVjdGVkIF90YXNrRm9yY2VPcGVuOiBib29sZWFuLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KE5BRV9UQUJfREFUQSkgaW5qZWN0ZWRUYWJEYXRhOiBJbmplY3RlZFRhYkRhdGEpIHtcbiAgICAgICAgc3VwZXIoX3RyYW5zbGF0ZSwgX2N1cnJlbmN5UGlwZSwgb3ZlcmZsb3dTZXJ2aWNlKTtcbiAgICAgICAgdGhpcy50YXNrRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPFRhc2tFdmVudE5vdGlmaWNhdGlvbj4oKTtcbiAgICAgICAgdGhpcy5wYW5lbFJlZk91dHB1dCA9IG5ldyBFdmVudEVtaXR0ZXI8TWF0RXhwYW5zaW9uUGFuZWw+KCk7XG4gICAgICAgIHRoaXMuX3N1YlRhc2tFdmVudCA9IF90YXNrRXZlbnRTZXJ2aWNlLnRhc2tFdmVudE5vdGlmaWNhdGlvbnMkLnN1YnNjcmliZShldmVudCA9PiB7XG4gICAgICAgICAgICB0aGlzLnRhc2tFdmVudC5lbWl0KGV2ZW50KTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuX3N1YlRhc2tEYXRhID0gX2NoYW5nZWRGaWVsZHNTZXJ2aWNlLmNoYW5nZWRGaWVsZHMkLnN1YnNjcmliZSgoY2hhbmdlZEZpZWxkc01hcDogQ2hhbmdlZEZpZWxkc01hcCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZmlsdGVyZWRDYXNlSWRzOiBBcnJheTxzdHJpbmc+ID0gT2JqZWN0LmtleXMoY2hhbmdlZEZpZWxkc01hcCkuZmlsdGVyKFxuICAgICAgICAgICAgICAgIGNhc2VJZCA9PiBPYmplY3Qua2V5cyh0aGlzLl90YXNrQ29udGVudFNlcnZpY2UucmVmZXJlbmNlZFRhc2tBbmRDYXNlSWRzKS5pbmNsdWRlcyhjYXNlSWQpXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgY29uc3QgY2hhbmdlZEZpZWxkczogQXJyYXk8Q2hhbmdlZEZpZWxkcz4gPSBbXTtcbiAgICAgICAgICAgIGZpbHRlcmVkQ2FzZUlkcy5mb3JFYWNoKGNhc2VJZCA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGFza0lkczogQXJyYXk8c3RyaW5nPiA9IHRoaXMuX3Rhc2tDb250ZW50U2VydmljZS5yZWZlcmVuY2VkVGFza0FuZENhc2VJZHNbY2FzZUlkXTtcbiAgICAgICAgICAgICAgICBjaGFuZ2VkRmllbGRzLnB1c2goLi4udGhpcy5fY2hhbmdlZEZpZWxkc1NlcnZpY2UucGFyc2VDaGFuZ2VkRmllbGRzQnlDYXNlQW5kVGFza0lkcyhjYXNlSWQsIHRhc2tJZHMsIGNoYW5nZWRGaWVsZHNNYXApKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgY2hhbmdlZEZpZWxkcy5maWx0ZXIoZmllbGRzID0+IGZpZWxkcyAhPT0gdW5kZWZpbmVkKS5mb3JFYWNoKGZpZWxkcyA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy50YXNrUGFuZWxEYXRhLmNoYW5nZWRGaWVsZHMubmV4dChmaWVsZHMpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgICBfdGFza09wZXJhdGlvbnMub3BlbiQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZXhwYW5kKCk7XG4gICAgICAgIH0pO1xuICAgICAgICBfdGFza09wZXJhdGlvbnMuY2xvc2UkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuX3Rhc2tGb3JjZU9wZW4pIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbGxhcHNlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICBfdGFza09wZXJhdGlvbnMucmVsb2FkJC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fdGFza1ZpZXdTZXJ2aWNlLnJlbG9hZEN1cnJlbnRQYWdlKCk7XG4gICAgICAgIH0pO1xuICAgICAgICBfdGFza09wZXJhdGlvbnMuZm9yY2VSZWxvYWQkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl90YXNrVmlld1NlcnZpY2UucmVsb2FkQ3VycmVudFBhZ2UodHJ1ZSk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLl90YXNrRGlzYWJsZUJ1dHRvbkZ1bmN0aW9ucyA9IHtcbiAgICAgICAgICAgIGZpbmlzaDogKHQ6IFRhc2spID0+IGZhbHNlLFxuICAgICAgICAgICAgYXNzaWduOiAodDogVGFzaykgPT4gZmFsc2UsXG4gICAgICAgICAgICBkZWxlZ2F0ZTogKHQ6IFRhc2spID0+IGZhbHNlLFxuICAgICAgICAgICAgcmVhc3NpZ246ICh0OiBUYXNrKSA9PiBmYWxzZSxcbiAgICAgICAgICAgIGNhbmNlbDogKHQ6IFRhc2spID0+IGZhbHNlLFxuICAgICAgICB9O1xuICAgICAgICBpZiAoX2Rpc2FibGVGdW5jdGlvbnMpIHtcbiAgICAgICAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5fdGFza0Rpc2FibGVCdXR0b25GdW5jdGlvbnMsIF9kaXNhYmxlRnVuY3Rpb25zKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaW5qZWN0ZWRUYWJEYXRhICE9PSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLl91bnN1YiA9IGluamVjdGVkVGFiRGF0YS50YWJTZWxlY3RlZCQucGlwZShcbiAgICAgICAgICAgICAgICBmaWx0ZXIoYm9vbCA9PiBib29sICYmIHRoaXMuaXNFeHBhbmRlZCgpKVxuICAgICAgICAgICAgKS5zdWJzY3JpYmUoICgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5fY2FuUmVsb2FkKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3Rhc2tEYXRhU2VydmljZS5pbml0aWFsaXplVGFza0RhdGFGaWVsZHMobmV3IEFmdGVyQWN0aW9uKCksIHRydWUpXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fY2FuUmVsb2FkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgICAgICB0aGlzLl90YXNrQ29udGVudFNlcnZpY2UudGFzayA9IHRoaXMuX3Rhc2tQYW5lbERhdGEudGFzaztcblxuICAgICAgICB0aGlzLmNyZWF0ZUNvbnRlbnRQb3J0YWwoKTtcbiAgICAgICAgdGhpcy5fc3ViID0gdGhpcy5fdGFza1BhbmVsRGF0YS5jaGFuZ2VkRmllbGRzLnN1YnNjcmliZShjaEZpZWxkcyA9PiB7XG4gICAgICAgICAgICB0aGlzLl90YXNrQ29udGVudFNlcnZpY2UudXBkYXRlRnJvbUNoYW5nZWRGaWVsZHMoY2hGaWVsZHMpO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLl9zdWJQYW5lbFVwZGF0ZSA9IHRoaXMuX3Rhc2tWaWV3U2VydmljZS5wYW5lbFVwZGF0ZS5waXBlKFxuICAgICAgICAgICAgbWFwKGEgPT4gYS5maW5kKHAgPT4gcC50YXNrLnN0cmluZ0lkID09PSB0aGlzLnRhc2tQYW5lbERhdGEudGFzay5zdHJpbmdJZCkpLFxuICAgICAgICAgICAgZmlsdGVyKHAgPT4gISFwKVxuICAgICAgICApLnN1YnNjcmliZSh2YWx1ZSA9PiB7XG4gICAgICAgICAgICB0aGlzLnJlc29sdmVGZWF0dXJlZEZpZWxkc1ZhbHVlcygpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIHRoaXMucGFuZWxSZWYub3BlbmVkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl90YXNrQ29udGVudFNlcnZpY2UuZXhwYW5zaW9uU3RhcnRlZCgpO1xuICAgICAgICAgICAgaWYgKCF0aGlzLl90YXNrU3RhdGUuaXNMb2FkaW5nKCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9hc3NpZ25Qb2xpY3lTZXJ2aWNlLnBlcmZvcm1Bc3NpZ25Qb2xpY3kodHJ1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnBhbmVsUmVmLmNsb3NlZC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKCF0aGlzLl90YXNrU3RhdGUuaXNMb2FkaW5nKCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9hc3NpZ25Qb2xpY3lTZXJ2aWNlLnBlcmZvcm1Bc3NpZ25Qb2xpY3koZmFsc2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5wYW5lbFJlZi5hZnRlckV4cGFuZC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fdGFza0NvbnRlbnRTZXJ2aWNlLiRzaG91bGRDcmVhdGUucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX3Rhc2tDb250ZW50U2VydmljZS5ibG9ja0ZpZWxkcyh0aGlzLmhhc05vRmluaXNoUGVybWlzc2lvbigpKTtcbiAgICAgICAgICAgICAgICB0aGlzLl90YXNrUGFuZWxEYXRhLmluaXRpYWxseUV4cGFuZGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5fdGFza0NvbnRlbnRTZXJ2aWNlLmV4cGFuc2lvbkZpbmlzaGVkKCk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnBhbmVsUmVmLmFmdGVyQ29sbGFwc2Uuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX3Rhc2tQYW5lbERhdGEuaW5pdGlhbGx5RXhwYW5kZWQgPSBmYWxzZTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKHRoaXMuX3Rhc2tQYW5lbERhdGEuaW5pdGlhbGx5RXhwYW5kZWQgfHwgdGhpcy5fdGFza0ZvcmNlT3Blbikge1xuICAgICAgICAgICAgdGhpcy5wYW5lbFJlZi5leHBhbmRlZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgY3JlYXRlQ29udGVudFBvcnRhbCgpOiB2b2lkO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2V0IHRhc2tQYW5lbERhdGEoZGF0YTogVGFza1BhbmVsRGF0YSkge1xuICAgICAgICB0aGlzLl90YXNrUGFuZWxEYXRhID0gZGF0YTtcbiAgICAgICAgdGhpcy5yZXNvbHZlRmVhdHVyZWRGaWVsZHNWYWx1ZXMoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHRhc2tQYW5lbERhdGEoKTogVGFza1BhbmVsRGF0YSB7XG4gICAgICAgIHJldHVybiB0aGlzLl90YXNrUGFuZWxEYXRhO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaXNMb2FkaW5nKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fdGFza1N0YXRlLmlzTG9hZGluZygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdG9wTG9hZGluZygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdGFza1N0YXRlLnN0b3BMb2FkaW5nKHRoaXMuX3Rhc2tQYW5lbERhdGEudGFzay5zdHJpbmdJZCk7XG4gICAgfVxuXG4gICAgcHVibGljIHByZXZlbnRQYW5lbE9wZW4oJGV2ZW50OiBNb3VzZUV2ZW50KTogYm9vbGVhbiB7XG4gICAgICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc1BhcGVyVmlldygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3BhcGVyVmlldy5wYXBlclZpZXc7XG4gICAgfVxuXG4gICAgcHVibGljIHNldFBhbmVsUmVmKHBhbmVsUmVmOiBNYXRFeHBhbnNpb25QYW5lbCkge1xuICAgICAgICB0aGlzLnBhbmVsUmVmID0gcGFuZWxSZWY7XG4gICAgICAgIHRoaXMucGFuZWxSZWZPdXRwdXQuZW1pdChwYW5lbFJlZik7XG4gICAgfVxuXG4gICAgYXNzaWduKCkge1xuICAgICAgICB0aGlzLl9hc3NpZ25UYXNrU2VydmljZS5hc3NpZ24odGhpcy5fY2FsbENoYWluLmNyZWF0ZSgoYWZ0ZXJBY3Rpb24gPT4ge1xuICAgICAgICAgICAgaWYgKGFmdGVyQWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fdGFza0RhdGFTZXJ2aWNlLmluaXRpYWxpemVUYXNrRGF0YUZpZWxkcygpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2ZpbmlzaFBvbGljeVNlcnZpY2UucGVyZm9ybUZpbmlzaFBvbGljeSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KSkpO1xuICAgIH1cblxuICAgIGRlbGVnYXRlKCkge1xuICAgICAgICB0aGlzLl9kZWxlZ2F0ZVRhc2tTZXJ2aWNlLmRlbGVnYXRlKCk7XG4gICAgfVxuXG4gICAgY2FuY2VsKCkge1xuICAgICAgICB0aGlzLl9jYW5jZWxUYXNrU2VydmljZS5jYW5jZWwodGhpcy5fY2FsbENoYWluLmNyZWF0ZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl90YXNrT3BlcmF0aW9ucy5yZWxvYWQoKTtcbiAgICAgICAgICAgIHRoaXMuX3Rhc2tPcGVyYXRpb25zLmNsb3NlKCk7XG4gICAgICAgIH0pKTtcbiAgICB9XG5cbiAgICBmaW5pc2goKSB7XG4gICAgICAgIGlmICghdGhpcy5fdGFza0NvbnRlbnRTZXJ2aWNlLnZhbGlkYXRlVGFza0RhdGEoKSkge1xuICAgICAgICAgICAgaWYgKHRoaXMuX3Rhc2tDb250ZW50U2VydmljZS50YXNrLmRhdGFTaXplIDw9IDApIHtcbiAgICAgICAgICAgICAgICB0aGlzLl90YXNrRGF0YVNlcnZpY2UuaW5pdGlhbGl6ZVRhc2tEYXRhRmllbGRzKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBpbnZhbGlkRmllbGRzID0gdGhpcy5fdGFza0NvbnRlbnRTZXJ2aWNlLmdldEludmFsaWRUYXNrRGF0YSgpO1xuICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaW52YWxpZEZpZWxkc1swXS5zdHJpbmdJZCkuc2Nyb2xsSW50b1ZpZXcoe1xuICAgICAgICAgICAgICAgIGJlaGF2aW9yOiAnc21vb3RoJyxcbiAgICAgICAgICAgICAgICBibG9jazogJ3N0YXJ0JyxcbiAgICAgICAgICAgICAgICBpbmxpbmU6ICduZWFyZXN0J1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9maW5pc2hUYXNrU2VydmljZS52YWxpZGF0ZURhdGFBbmRGaW5pc2goKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNvbGxhcHNlKCkge1xuICAgICAgICB0aGlzLnBhbmVsUmVmLmNsb3NlKCk7XG4gICAgICAgIHRoaXMucGFuZWxSZWYuZXhwYW5kZWQgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBleHBhbmQoKSB7XG4gICAgICAgIHRoaXMucGFuZWxSZWYub3BlbigpO1xuICAgICAgICB0aGlzLnBhbmVsUmVmLmV4cGFuZGVkID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2FuQXNzaWduKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fcGVybWlzc2lvblNlcnZpY2UuY2FuQXNzaWduKHRoaXMudGFza1BhbmVsRGF0YS50YXNrKSAmJiB0aGlzLmdldEFzc2lnblRpdGxlKCkgIT09ICcnO1xuICAgIH1cblxuICAgIHB1YmxpYyBjYW5SZWFzc2lnbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Blcm1pc3Npb25TZXJ2aWNlLmNhblJlYXNzaWduKHRoaXMudGFza1BhbmVsRGF0YS50YXNrKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2FuQ2FuY2VsKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fcGVybWlzc2lvblNlcnZpY2UuY2FuQ2FuY2VsKHRoaXMudGFza1BhbmVsRGF0YS50YXNrKSAmJiB0aGlzLmdldENhbmNlbFRpdGxlKCkgIT09ICcnO1xuICAgIH1cblxuICAgIHB1YmxpYyBjYW5GaW5pc2goKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9wZXJtaXNzaW9uU2VydmljZS5jYW5GaW5pc2godGhpcy50YXNrUGFuZWxEYXRhLnRhc2spICYmIHRoaXMuZ2V0RmluaXNoVGl0bGUoKSAhPT0gJyc7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoYXNOb0ZpbmlzaFBlcm1pc3Npb24oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhdGhpcy5fcGVybWlzc2lvblNlcnZpY2UuY2FuRmluaXNoKHRoaXMudGFza1BhbmVsRGF0YS50YXNrKVxuICAgIH1cblxuICAgIHB1YmxpYyBjYW5Db2xsYXBzZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Rhc2tGb3JjZU9wZW4gPyBmYWxzZSA6IHRoaXMuX3Blcm1pc3Npb25TZXJ2aWNlLmNhbkNvbGxhcHNlKHRoaXMudGFza1BhbmVsRGF0YS50YXNrKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2FuRG8oYWN0aW9uKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9wZXJtaXNzaW9uU2VydmljZS5oYXNUYXNrUGVybWlzc2lvbih0aGlzLnRhc2tQYW5lbERhdGEudGFzaywgYWN0aW9uKSAmJiB0aGlzLmdldERlbGVnYXRlVGl0bGUoKSAhPT0gJyc7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEFzc2lnblRpdGxlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiAodGhpcy50YXNrUGFuZWxEYXRhLnRhc2suYXNzaWduVGl0bGUgPT09ICcnIHx8IHRoaXMudGFza1BhbmVsRGF0YS50YXNrLmFzc2lnblRpdGxlKVxuICAgICAgICAgICAgPyB0aGlzLnRhc2tQYW5lbERhdGEudGFzay5hc3NpZ25UaXRsZSA6ICd0YXNrcy52aWV3LmFzc2lnbic7XG4gICAgfVxuXG4gICAgcHVibGljIGdldENhbmNlbFRpdGxlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiAodGhpcy50YXNrUGFuZWxEYXRhLnRhc2suY2FuY2VsVGl0bGUgPT09ICcnIHx8IHRoaXMudGFza1BhbmVsRGF0YS50YXNrLmNhbmNlbFRpdGxlKVxuICAgICAgICAgICAgPyB0aGlzLnRhc2tQYW5lbERhdGEudGFzay5jYW5jZWxUaXRsZSA6ICd0YXNrcy52aWV3LmNhbmNlbCc7XG4gICAgfVxuXG4gICAgcHVibGljIGdldERlbGVnYXRlVGl0bGUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuICh0aGlzLnRhc2tQYW5lbERhdGEudGFzay5kZWxlZ2F0ZVRpdGxlID09PSAnJyB8fCB0aGlzLnRhc2tQYW5lbERhdGEudGFzay5kZWxlZ2F0ZVRpdGxlKVxuICAgICAgICAgICAgPyB0aGlzLnRhc2tQYW5lbERhdGEudGFzay5kZWxlZ2F0ZVRpdGxlIDogJ3Rhc2tzLnZpZXcuZGVsZWdhdGUnO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRGaW5pc2hUaXRsZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gKHRoaXMudGFza1BhbmVsRGF0YS50YXNrLmZpbmlzaFRpdGxlID09PSAnJyB8fCB0aGlzLnRhc2tQYW5lbERhdGEudGFzay5maW5pc2hUaXRsZSlcbiAgICAgICAgICAgID8gdGhpcy50YXNrUGFuZWxEYXRhLnRhc2suZmluaXNoVGl0bGUgOiAndGFza3Mudmlldy5maW5pc2gnO1xuICAgIH1cblxuICAgIHB1YmxpYyBjYW5EaXNhYmxlKHR5cGU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICBsZXQgZGlzYWJsZSA9IGZhbHNlO1xuICAgICAgICBpZiAoISF0aGlzLnRhc2tQYW5lbERhdGEgJiYgISF0aGlzLnRhc2tQYW5lbERhdGEudGFzaykge1xuICAgICAgICAgICAgZGlzYWJsZSA9IGRpc2FibGVcbiAgICAgICAgICAgICAgICB8fCAhIXRoaXMuX3Rhc2tTdGF0ZS5pc0xvYWRpbmcodGhpcy50YXNrUGFuZWxEYXRhLnRhc2suc3RyaW5nSWQpXG4gICAgICAgICAgICAgICAgfHwgISF0aGlzLl90YXNrU3RhdGUuaXNVcGRhdGluZyh0aGlzLnRhc2tQYW5lbERhdGEudGFzay5zdHJpbmdJZCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGRpc2FibGUgfHwgdGhpcy5fdGFza0Rpc2FibGVCdXR0b25GdW5jdGlvbnNbdHlwZV0oey4uLnRoaXMuX3Rhc2tDb250ZW50U2VydmljZS50YXNrfSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldEZlYXR1cmVkTWV0YVZhbHVlKHNlbGVjdGVkSGVhZGVyOiBIZWFkZXJDb2x1bW4pOiBGZWF0dXJlZFZhbHVlIHtcbiAgICAgICAgY29uc3QgdGFzayA9IHRoaXMuX3Rhc2tQYW5lbERhdGEudGFzaztcbiAgICAgICAgc3dpdGNoIChzZWxlY3RlZEhlYWRlci5maWVsZElkZW50aWZpZXIpIHtcbiAgICAgICAgICAgIGNhc2UgVGFza01ldGFGaWVsZC5DQVNFOlxuICAgICAgICAgICAgICAgIHJldHVybiB7dmFsdWU6IHRhc2suY2FzZVRpdGxlLCBpY29uOiAnJywgdHlwZTogJ21ldGEnfTtcbiAgICAgICAgICAgIGNhc2UgVGFza01ldGFGaWVsZC5DQVNFX0lEOlxuICAgICAgICAgICAgICAgIHJldHVybiB7dmFsdWU6IHRhc2suY2FzZUlkLCBpY29uOiAnJywgdHlwZTogJ21ldGEnfTtcbiAgICAgICAgICAgIGNhc2UgVGFza01ldGFGaWVsZC5UQVNLX0lEOlxuICAgICAgICAgICAgICAgIHJldHVybiB7dmFsdWU6IHRhc2suc3RyaW5nSWQsIGljb246ICcnLCB0eXBlOiAnbWV0YSd9O1xuICAgICAgICAgICAgY2FzZSBUYXNrTWV0YUZpZWxkLlRJVExFOlxuICAgICAgICAgICAgICAgIHJldHVybiB7dmFsdWU6IHRhc2sudGl0bGUsIGljb246ICcnLCB0eXBlOiAnbWV0YSd9O1xuICAgICAgICAgICAgY2FzZSBUYXNrTWV0YUZpZWxkLlBSSU9SSVRZOlxuICAgICAgICAgICAgICAgIC8vIFRPRE8gcHJpb3JpdHlcbiAgICAgICAgICAgICAgICBpZiAoIXRhc2sucHJpb3JpdHkgfHwgdGFzay5wcmlvcml0eSA8IDIpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt2YWx1ZTogJ2hpZ2gnLCBpY29uOiAnZXJyb3InLCB0eXBlOiAnbWV0YSd9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAodGFzay5wcmlvcml0eSA9PT0gMikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3ZhbHVlOiAnbWVkaXVtJywgaWNvbjogJ25vcnRoJywgdHlwZTogJ21ldGEnfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHt2YWx1ZTogJ2xvdycsIGljb246ICdzb3V0aCcsIHR5cGU6ICdtZXRhJ307XG4gICAgICAgICAgICBjYXNlIFRhc2tNZXRhRmllbGQuVVNFUjpcbiAgICAgICAgICAgICAgICByZXR1cm4ge3ZhbHVlOiB0YXNrLnVzZXIgPyB0YXNrLnVzZXIuZnVsbE5hbWUgOiAnJywgaWNvbjogJ2FjY291bnRfY2lyY2xlJywgdHlwZTogJ21ldGEnfTtcbiAgICAgICAgICAgIGNhc2UgVGFza01ldGFGaWVsZC5BU1NJR05fREFURTpcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogdGFzay5zdGFydERhdGUgPyB0b01vbWVudCh0YXNrLnN0YXJ0RGF0ZSkuZm9ybWF0KERBVEVfVElNRV9GT1JNQVRfU1RSSU5HKSA6ICcnLFxuICAgICAgICAgICAgICAgICAgICBpY29uOiAnZXZlbnQnLFxuICAgICAgICAgICAgICAgICAgICB0eXBlOiAnbWV0YSdcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldEZlYXR1cmVkSW1tZWRpYXRlVmFsdWUoc2VsZWN0ZWRIZWFkZXI6IEhlYWRlckNvbHVtbik6IEZlYXR1cmVkVmFsdWUge1xuICAgICAgICBpZiAodGhpcy5fdGFza0NvbnRlbnRTZXJ2aWNlLnRhc2sgJiYgdGhpcy5fdGFza0NvbnRlbnRTZXJ2aWNlLnRhc2suaW1tZWRpYXRlRGF0YSkge1xuICAgICAgICAgICAgY29uc3QgaW1tZWRpYXRlID0gdGhpcy5fdGFza0NvbnRlbnRTZXJ2aWNlLnRhc2suaW1tZWRpYXRlRGF0YS5maW5kKGl0ID0+IGl0LnN0cmluZ0lkID09PSBzZWxlY3RlZEhlYWRlci5maWVsZElkZW50aWZpZXIpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucGFyc2VJbW1lZGlhdGVWYWx1ZShpbW1lZGlhdGUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7dmFsdWU6ICcnLCBpY29uOiAnJywgdHlwZTogJyd9O1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgICAgICB0aGlzLl9zdWIudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgdGhpcy5fc3ViVGFza0V2ZW50LnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMuX3N1YlRhc2tEYXRhLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMuX3Rhc2tPcGVyYXRpb25zLmRlc3Ryb3koKTtcbiAgICAgICAgdGhpcy5fc3ViUGFuZWxVcGRhdGUudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgdGhpcy50YXNrRXZlbnQuY29tcGxldGUoKTtcbiAgICAgICAgaWYgKHRoaXMuX3Vuc3ViKSB7XG4gICAgICAgICAgICB0aGlzLl91bnN1Yi51bnN1YnNjcmliZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGlzRm9yY2VPcGVuKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fdGFza0ZvcmNlT3BlbiAmJiAhIXRoaXMudGFza0xpc3RWaXJ0dWFsU2Nyb2xsPy5nZXRFbGVtZW50UmVmKCk/Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgfVxuXG4gICAgcHVibGljIGdldENvbnRlbnRNaW5IZWlnaHQoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGFza0xpc3RWaXJ0dWFsU2Nyb2xsLmdldEVsZW1lbnRSZWYoKS5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodCAtIDMyICsgJ3B4JztcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNFeHBhbmRlZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGFuZWxSZWY/LmV4cGFuZGVkICYmICF0aGlzLl90YXNrQ29udGVudFNlcnZpY2U/LmlzRXhwYW5kaW5nO1xuICAgIH1cbn1cbiJdfQ==
404
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtdGFzay1wYW5lbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZXRncmlmLWNvbXBvbmVudHMtY29yZS9zcmMvbGliL3BhbmVsL3Rhc2stcGFuZWwvYWJzdHJhY3QtdGFzay1wYW5lbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILFNBQVMsRUFDVCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFHTCxRQUFRLEVBQ1IsTUFBTSxFQUdULE1BQU0sZUFBZSxDQUFDO0FBUXZCLE9BQU8sRUFBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRWpELE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUM3RCxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQU9sRSxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFPdEUsT0FBTyxFQUF3Qix1Q0FBdUMsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBRzFHLE9BQU8sRUFBQyx1Q0FBdUMsRUFBQyxNQUFNLHVDQUF1QyxDQUFDO0FBUzlGLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLDZEQUE2RCxDQUFDO0FBR2hHLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSw4REFBOEQsQ0FBQztBQUUxRixPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sdUNBQXVDLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFNbEUsTUFBTSxPQUFnQiwwQkFBMkIsU0FBUSx1Q0FBdUM7SUFrRTVGLFlBQWdDLG1CQUF1QyxFQUN2QyxJQUFtQixFQUNuQixnQkFBaUMsRUFDakMsVUFBNEIsRUFDNUIsaUJBQW1DLEVBQ25DLGtCQUFxQyxFQUNyQyxvQkFBeUMsRUFDekMsa0JBQXFDLEVBQ3JDLGtCQUFx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UzttQkFBQztvQkFDUCxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyxRQUFRLEVBQUUsRUFBRTtpQkFDZjs7MEJBa0YwQixRQUFROzswQkFBSSxNQUFNOzJCQUFDLHVDQUF1Qzs7MEJBSzFELFFBQVE7OzBCQUNSLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsbUJBQW1COzswQkFDdEMsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxZQUFZOzRDQWhGN0MscUJBQXFCO3NCQUE3QixLQUFLO2dCQUNHLHFCQUFxQjtzQkFBN0IsS0FBSztnQkFDVSxnQkFBZ0I7c0JBQS9CLEtBQUs7Z0JBQ1UsS0FBSztzQkFBcEIsS0FBSztnQkFDVSxJQUFJO3NCQUFuQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0cscUJBQXFCO3NCQUE3QixLQUFLO2dCQUNHLHVCQUF1QjtzQkFBL0IsS0FBSztnQkFFRyxZQUFZO3NCQUFwQixLQUFLO2dCQXdCRixtQkFBbUI7c0JBRHRCLEtBQUs7Z0JBTUcsWUFBWTtzQkFBcEIsS0FBSztnQkFJSSxTQUFTO3NCQUFsQixNQUFNO2dCQUNHLGNBQWM7c0JBQXZCLE1BQU07Z0JBMklJLGFBQWE7c0JBRHZCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ29tcG9uZW50LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPcHRpb25hbCxcbiAgICBPdXRwdXQsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVHlwZVxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TWF0RXhwYW5zaW9uUGFuZWx9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2V4cGFuc2lvbic7XG5pbXBvcnQge0NvbXBvbmVudFBvcnRhbH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQge1Rhc2tDb250ZW50U2VydmljZX0gZnJvbSAnLi4vLi4vdGFzay1jb250ZW50L3NlcnZpY2VzL3Rhc2stY29udGVudC5zZXJ2aWNlJztcbmltcG9ydCB7TG9nZ2VyU2VydmljZX0gZnJvbSAnLi4vLi4vbG9nZ2VyL3NlcnZpY2VzL2xvZ2dlci5zZXJ2aWNlJztcbmltcG9ydCB7VGFza1BhbmVsRGF0YX0gZnJvbSAnLi4vdGFzay1wYW5lbC1saXN0L3Rhc2stcGFuZWwtZGF0YS90YXNrLXBhbmVsLWRhdGEnO1xuaW1wb3J0IHtPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtUYXNrVmlld1NlcnZpY2V9IGZyb20gJy4uLy4uL3ZpZXcvdGFzay12aWV3L3NlcnZpY2UvdGFzay12aWV3LnNlcnZpY2UnO1xuaW1wb3J0IHtmaWx0ZXIsIG1hcCwgdGFrZX0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtIZWFkZXJDb2x1bW59IGZyb20gJy4uLy4uL2hlYWRlci9tb2RlbHMvaGVhZGVyLWNvbHVtbic7XG5pbXBvcnQge3RvTW9tZW50fSBmcm9tICcuLi8uLi9yZXNvdXJjZXMvdHlwZXMvbmFlLWRhdGUtdHlwZSc7XG5pbXBvcnQge0RBVEVfVElNRV9GT1JNQVRfU1RSSU5HfSBmcm9tICcuLi8uLi9tb21lbnQvdGltZS1mb3JtYXRzJztcbmltcG9ydCB7UGFwZXJWaWV3U2VydmljZX0gZnJvbSAnLi4vLi4vbmF2aWdhdGlvbi9xdWljay1wYW5lbC9jb21wb25lbnRzL3BhcGVyLXZpZXcuc2VydmljZSc7XG5pbXBvcnQge1Rhc2tFdmVudFNlcnZpY2V9IGZyb20gJy4uLy4uL3Rhc2stY29udGVudC9zZXJ2aWNlcy90YXNrLWV2ZW50LnNlcnZpY2UnO1xuaW1wb3J0IHtBc3NpZ25UYXNrU2VydmljZX0gZnJvbSAnLi4vLi4vdGFzay9zZXJ2aWNlcy9hc3NpZ24tdGFzay5zZXJ2aWNlJztcbmltcG9ydCB7RGVsZWdhdGVUYXNrU2VydmljZX0gZnJvbSAnLi4vLi4vdGFzay9zZXJ2aWNlcy9kZWxlZ2F0ZS10YXNrLnNlcnZpY2UnO1xuaW1wb3J0IHtDYW5jZWxUYXNrU2VydmljZX0gZnJvbSAnLi4vLi4vdGFzay9zZXJ2aWNlcy9jYW5jZWwtdGFzay5zZXJ2aWNlJztcbmltcG9ydCB7RmluaXNoVGFza1NlcnZpY2V9IGZyb20gJy4uLy4uL3Rhc2svc2VydmljZXMvZmluaXNoLXRhc2suc2VydmljZSc7XG5pbXBvcnQge1Rhc2tNZXRhRmllbGR9IGZyb20gJy4uLy4uL2hlYWRlci90YXNrLWhlYWRlci90YXNrLW1ldGEtZW51bSc7XG5pbXBvcnQge1Rhc2tSZXF1ZXN0U3RhdGVTZXJ2aWNlfSBmcm9tICcuLi8uLi90YXNrL3NlcnZpY2VzL3Rhc2stcmVxdWVzdC1zdGF0ZS5zZXJ2aWNlJztcbmltcG9ydCB7VGFza0RhdGFTZXJ2aWNlfSBmcm9tICcuLi8uLi90YXNrL3NlcnZpY2VzL3Rhc2stZGF0YS5zZXJ2aWNlJztcbmltcG9ydCB7QXNzaWduUG9saWN5U2VydmljZX0gZnJvbSAnLi4vLi4vdGFzay9zZXJ2aWNlcy9hc3NpZ24tcG9saWN5LnNlcnZpY2UnO1xuaW1wb3J0IHtTdWJqZWN0VGFza09wZXJhdGlvbnN9IGZyb20gJy4uLy4uL3Rhc2svbW9kZWxzL3N1YmplY3QtdGFzay1vcGVyYXRpb25zJztcbmltcG9ydCB7Q2FsbENoYWluU2VydmljZX0gZnJvbSAnLi4vLi4vdXRpbGl0eS9jYWxsLWNoYWluL2NhbGwtY2hhaW4uc2VydmljZSc7XG5pbXBvcnQge1Rhc2tFdmVudE5vdGlmaWNhdGlvbn0gZnJvbSAnLi4vLi4vdGFzay1jb250ZW50L21vZGVsL3Rhc2stZXZlbnQtbm90aWZpY2F0aW9uJztcbmltcG9ydCB7RGlzYWJsZUJ1dHRvbkZ1bnRpb25zLCBOQUVfVEFTS19QQU5FTF9ESVNBQkxFX0JVVFRPTl9GVU5DVElPTlN9IGZyb20gJy4vbW9kZWxzL2Rpc2FibGUtZnVuY3Rpb25zJztcbmltcG9ydCB7VGFza30gZnJvbSAnLi4vLi4vcmVzb3VyY2VzL2ludGVyZmFjZS90YXNrJztcbmltcG9ydCB7Q2hhbmdlZEZpZWxkc30gZnJvbSAnLi4vLi4vZGF0YS1maWVsZHMvbW9kZWxzL2NoYW5nZWQtZmllbGRzJztcbmltcG9ydCB7QWJzdHJhY3RQYW5lbFdpdGhJbW1lZGlhdGVEYXRhQ29tcG9uZW50fSBmcm9tICcuLi9hYnN0cmFjdC9wYW5lbC13aXRoLWltbWVkaWF0ZS1kYXRhJztcbmltcG9ydCB7VHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge0ZlYXR1cmVkVmFsdWV9IGZyb20gJy4uL2Fic3RyYWN0L2ZlYXR1cmVkLXZhbHVlJztcbmltcG9ydCB7Q3VycmVuY3lQaXBlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtQZXJtaXNzaW9uU2VydmljZX0gZnJvbSAnLi4vLi4vYXV0aG9yaXphdGlvbi9wZXJtaXNzaW9uL3Blcm1pc3Npb24uc2VydmljZSc7XG5pbXBvcnQge0NoYW5nZWRGaWVsZHNTZXJ2aWNlfSBmcm9tICcuLi8uLi9jaGFuZ2VkLWZpZWxkcy9zZXJ2aWNlcy9jaGFuZ2VkLWZpZWxkcy5zZXJ2aWNlJztcbmltcG9ydCB7Q2hhbmdlZEZpZWxkc01hcH0gZnJvbSAnLi4vLi4vZXZlbnQvc2VydmljZXMvaW50ZXJmYWNlcy9jaGFuZ2VkLWZpZWxkcy1tYXAnO1xuaW1wb3J0IHtUYXNrUGFuZWxDb250ZXh0fSBmcm9tICcuL21vZGVscy90YXNrLXBhbmVsLWNvbnRleHQnO1xuaW1wb3J0IHtPdmVyZmxvd1NlcnZpY2V9IGZyb20gJy4uLy4uL2hlYWRlci9zZXJ2aWNlcy9vdmVyZmxvdy5zZXJ2aWNlJztcbmltcG9ydCB7TkFFX1RBU0tfRk9SQ0VfT1BFTn0gZnJvbSAnLi4vLi4vdmlldy90YXNrLXZpZXcvbW9kZWxzL2luamVjdGlvbi10b2tlbi10YXNrLWZvcmNlLW9wZW4nO1xuaW1wb3J0IHtDZGtWaXJ0dWFsU2Nyb2xsVmlld3BvcnR9IGZyb20gJ0Bhbmd1bGFyL2Nkay9zY3JvbGxpbmcnO1xuaW1wb3J0IHsgRmluaXNoUG9saWN5U2VydmljZSB9IGZyb20gJy4uLy4uL3Rhc2svc2VydmljZXMvZmluaXNoLXBvbGljeS5zZXJ2aWNlJztcbmltcG9ydCB7TkFFX1RBQl9EQVRBfSBmcm9tICcuLi8uLi90YWJzL3RhYi1kYXRhLWluamVjdGlvbi10b2tlbi90YWItZGF0YS1pbmplY3Rpb24tdG9rZW4nO1xuaW1wb3J0IHtJbmplY3RlZFRhYkRhdGF9IGZyb20gJy4uLy4uL3RhYnMvaW50ZXJmYWNlcyc7XG5pbXBvcnQge0FmdGVyQWN0aW9ufSBmcm9tICcuLi8uLi91dGlsaXR5L2NhbGwtY2hhaW4vYWZ0ZXItYWN0aW9uJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICduY2MtYWJzdHJhY3QtbGVnYWwtbm90aWNlJyxcbiAgICB0ZW1wbGF0ZTogJydcbn0pXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3RUYXNrUGFuZWxDb21wb25lbnQgZXh0ZW5kcyBBYnN0cmFjdFBhbmVsV2l0aEltbWVkaWF0ZURhdGFDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG5cbiAgICAvKipcbiAgICAgKiBAaWdub3JlXG4gICAgICogU2V0IGJ5IGFuIEBJbnB1dCgpIG9uIGEgc2V0dGVyIGZ1bmN0aW9uLCB0aGF0IGFsc28gcmVzb2x2ZXMgZmVhdHVyZWQgZmllbGRzLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBfdGFza1BhbmVsRGF0YTogVGFza1BhbmVsRGF0YTtcbiAgICBwcm90ZWN0ZWQgX2ZvcmNlTG9hZERhdGFPbk9wZW4gPSBmYWxzZTtcbiAgICBASW5wdXQoKSB0YXNrTGlzdFZpcnR1YWxTY3JvbGw6IENka1ZpcnR1YWxTY3JvbGxWaWV3cG9ydDtcbiAgICBASW5wdXQoKSBwYW5lbENvbnRlbnRDb21wb25lbnQ6IFR5cGU8YW55PjtcbiAgICBASW5wdXQoKSBwdWJsaWMgc2VsZWN0ZWRIZWFkZXJzJDogT2JzZXJ2YWJsZTxBcnJheTxIZWFkZXJDb2x1bW4+PjtcbiAgICBASW5wdXQoKSBwdWJsaWMgZmlyc3Q6IGJvb2xlYW47XG4gICAgQElucHV0KCkgcHVibGljIGxhc3Q6IGJvb2xlYW47XG4gICAgQElucHV0KCkgcmVzcG9uc2l2ZUJvZHkgPSB0cnVlO1xuICAgIEBJbnB1dCgpIHByZXZlbnRDb2xsYXBzZSA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIGhpZGVQYW5lbEhlYWRlciA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIGhpZGVBY3Rpb25Sb3cgPSBmYWxzZTtcbiAgICBASW5wdXQoKSBhY3Rpb25CdXR0b25UZW1wbGF0ZXM6IEFycmF5PFRlbXBsYXRlUmVmPGFueT4+O1xuICAgIEBJbnB1dCgpIGFjdGlvblJvd0p1c3RpZnlDb250ZW50OiAnc3BhY2UtYmV0d2VlbicgfCAnZmxleC1zdGFydCcgfCAnZmxleC1lbmQnIHwgJ2NlbnRlcicgfCAnc3BhY2UtYXJvdW5kJyB8XG4gICAgICAgICdpbml0aWFsJyB8ICdzdGFydCcgfCAnZW5kJyB8ICdsZWZ0JyB8ICdyaWdodCcgfCAncmV2ZXJ0JyB8ICdpbmhlcml0JyB8ICd1bnNldCdcbiAgICBASW5wdXQoKSBzaG93TW9yZU1lbnU6IGJvb2xlYW4gPSB0cnVlO1xuXG4gICAgdGhpc0NvbnRleHQ6IFRhc2tQYW5lbENvbnRleHQgPSB7XG4gICAgICAgIGNhbkFzc2lnbjogKCkgPT4gdGhpcy5jYW5Bc3NpZ24oKSxcbiAgICAgICAgYXNzaWduOiAoKSA9PiB0aGlzLmFzc2lnbigpLFxuICAgICAgICBnZXRBc3NpZ25UaXRsZTogKCkgPT4gdGhpcy5nZXRBc3NpZ25UaXRsZSgpLFxuICAgICAgICBkZWxlZ2F0ZTogKCkgPT4gdGhpcy5kZWxlZ2F0ZSgpLFxuICAgICAgICBnZXREZWxlZ2F0ZVRpdGxlOiAoKSA9PiB0aGlzLmdldERlbGVnYXRlVGl0bGUoKSxcbiAgICAgICAgY2FuUmVhc3NpZ246ICgpID0+IHRoaXMuY2FuUmVhc3NpZ24oKSxcbiAgICAgICAgY2FuQ2FuY2VsOiAoKSA9PiB0aGlzLmNhbkNhbmNlbCgpLFxuICAgICAgICBjYW5jZWw6ICgpID0+IHRoaXMuY2FuY2VsKCksXG4gICAgICAgIGdldENhbmNlbFRpdGxlOiAoKSA9PiB0aGlzLmdldENhbmNlbFRpdGxlKCksXG4gICAgICAgIGNhbkZpbmlzaDogKCkgPT4gdGhpcy5jYW5GaW5pc2goKSxcbiAgICAgICAgZmluaXNoOiAoKSA9PiB0aGlzLmZpbmlzaCgpLFxuICAgICAgICBnZXRGaW5pc2hUaXRsZTogKCkgPT4gdGhpcy5nZXRGaW5pc2hUaXRsZSgpLFxuICAgICAgICBjYW5Db2xsYXBzZTogKCkgPT4gdGhpcy5jYW5Db2xsYXBzZSgpLFxuICAgICAgICBjb2xsYXBzZTogKCkgPT4gdGhpcy5jb2xsYXBzZSgpLFxuICAgICAgICBjYW5EaXNhYmxlOiAoYXJnOiBzdHJpbmcpID0+IHRoaXMuY2FuRGlzYWJsZShhcmcpLFxuICAgICAgICBjYW5EbzogKGFyZzogc3RyaW5nKSA9PiB0aGlzLmNhbkRvKGFyZyksXG4gICAgICAgIGlzTG9hZGluZzogKCkgPT4gdGhpcy5pc0xvYWRpbmdcbiAgICB9O1xuXG5cbiAgICBASW5wdXQoKVxuICAgIHNldCBmb3JjZUxvYWREYXRhT25PcGVuKGZvcmNlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX2ZvcmNlTG9hZERhdGFPbk9wZW4gPSBmb3JjZTtcbiAgICAgICAgdGhpcy5fYXNzaWduUG9saWN5U2VydmljZS5mb3JjZWQgPSBmb3JjZTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSB0ZXh0RWxsaXBzaXMgPSBmYWxzZTtcbiAgICAvKipcbiAgICAgKiBFbWl0cyBub3RpZmljYXRpb25zIGFib3V0IHRhc2sgZXZlbnRzXG4gICAgICovXG4gICAgQE91dHB1dCgpIHRhc2tFdmVudDogRXZlbnRFbWl0dGVyPFRhc2tFdmVudE5vdGlmaWNhdGlvbj47XG4gICAgQE91dHB1dCgpIHBhbmVsUmVmT3V0cHV0OiBFdmVudEVtaXR0ZXI8TWF0RXhwYW5zaW9uUGFuZWw+O1xuXG4gICAgcHVibGljIHBvcnRhbDogQ29tcG9uZW50UG9ydGFsPGFueT47XG4gICAgcHVibGljIHBhbmVsUmVmOiBNYXRFeHBhbnNpb25QYW5lbDtcbiAgICBwcm90ZWN0ZWQgX3N1YjogU3Vic2NyaXB0aW9uO1xuICAgIHByb3RlY3RlZCBfc3ViVGFza0V2ZW50OiBTdWJzY3JpcHRpb247XG4gICAgcHJvdGVjdGVkIF9zdWJUYXNrRGF0YTogU3Vic2NyaXB0aW9uO1xuICAgIHByb3RlY3RlZCBfc3ViUGFuZWxVcGRhdGU6IFN1YnNjcmlwdGlvbjtcbiAgICBwcm90ZWN0ZWQgX3Rhc2tEaXNhYmxlQnV0dG9uRnVuY3Rpb25zOiBEaXNhYmxlQnV0dG9uRnVudGlvbnM7XG4gICAgcHJvdGVjdGVkIF91bnN1YjogU3Vic2NyaXB0aW9uO1xuICAgIHByb3RlY3RlZCBfY2FuUmVsb2FkOiBib29sZWFuO1xuXG4gICAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBfdGFza0NvbnRlbnRTZXJ2aWNlOiBUYXNrQ29udGVudFNlcnZpY2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfbG9nOiBMb2dnZXJTZXJ2aWNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX3Rhc2tWaWV3U2VydmljZTogVGFza1ZpZXdTZXJ2aWNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX3BhcGVyVmlldzogUGFwZXJWaWV3U2VydmljZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvdGVjdGVkIF90YXNrRXZlbnRTZXJ2aWNlOiBUYXNrRXZlbnRTZXJ2aWNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX2Fzc2lnblRhc2tTZXJ2aWNlOiBBc3NpZ25UYXNrU2VydmljZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvdGVjdGVkIF9kZWxlZ2F0ZVRhc2tTZXJ2aWNlOiBEZWxlZ2F0ZVRhc2tTZXJ2aWNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX2NhbmNlbFRhc2tTZXJ2aWNlOiBDYW5jZWxUYXNrU2VydmljZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvdGVjdGVkIF9maW5pc2hUYXNrU2VydmljZTogRmluaXNoVGFza1NlcnZpY2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfdGFza1N0YXRlOiBUYXNrUmVxdWVzdFN0YXRlU2VydmljZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvdGVjdGVkIF90YXNrRGF0YVNlcnZpY2U6IFRhc2tEYXRhU2VydmljZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvdGVjdGVkIF9hc3NpZ25Qb2xpY3lTZXJ2aWNlOiBBc3NpZ25Qb2xpY3lTZXJ2aWNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX2ZpbmlzaFBvbGljeVNlcnZpY2U6IEZpbmlzaFBvbGljeVNlcnZpY2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfY2FsbENoYWluOiBDYWxsQ2hhaW5TZXJ2aWNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX3Rhc2tPcGVyYXRpb25zOiBTdWJqZWN0VGFza09wZXJhdGlvbnMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoTkFFX1RBU0tfUEFORUxfRElTQUJMRV9CVVRUT05fRlVOQ1RJT05TKSBwcm90ZWN0ZWQgX2Rpc2FibGVGdW5jdGlvbnM6IERpc2FibGVCdXR0b25GdW50aW9ucyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvdGVjdGVkIF90cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfY3VycmVuY3lQaXBlOiBDdXJyZW5jeVBpcGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfY2hhbmdlZEZpZWxkc1NlcnZpY2U6IENoYW5nZWRGaWVsZHNTZXJ2aWNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX3Blcm1pc3Npb25TZXJ2aWNlOiBQZXJtaXNzaW9uU2VydmljZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgb3ZlcmZsb3dTZXJ2aWNlOiBPdmVyZmxvd1NlcnZpY2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoTkFFX1RBU0tfRk9SQ0VfT1BFTikgcHJvdGVjdGVkIF90YXNrRm9yY2VPcGVuOiBib29sZWFuLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KE5BRV9UQUJfREFUQSkgaW5qZWN0ZWRUYWJEYXRhOiBJbmplY3RlZFRhYkRhdGEpIHtcbiAgICAgICAgc3VwZXIoX3RyYW5zbGF0ZSwgX2N1cnJlbmN5UGlwZSwgb3ZlcmZsb3dTZXJ2aWNlKTtcbiAgICAgICAgdGhpcy50YXNrRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPFRhc2tFdmVudE5vdGlmaWNhdGlvbj4oKTtcbiAgICAgICAgdGhpcy5wYW5lbFJlZk91dHB1dCA9IG5ldyBFdmVudEVtaXR0ZXI8TWF0RXhwYW5zaW9uUGFuZWw+KCk7XG4gICAgICAgIHRoaXMuX3N1YlRhc2tFdmVudCA9IF90YXNrRXZlbnRTZXJ2aWNlLnRhc2tFdmVudE5vdGlmaWNhdGlvbnMkLnN1YnNjcmliZShldmVudCA9PiB7XG4gICAgICAgICAgICB0aGlzLnRhc2tFdmVudC5lbWl0KGV2ZW50KTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuX3N1YlRhc2tEYXRhID0gX2NoYW5nZWRGaWVsZHNTZXJ2aWNlLmNoYW5nZWRGaWVsZHMkLnN1YnNjcmliZSgoY2hhbmdlZEZpZWxkc01hcDogQ2hhbmdlZEZpZWxkc01hcCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZmlsdGVyZWRDYXNlSWRzOiBBcnJheTxzdHJpbmc+ID0gT2JqZWN0LmtleXMoY2hhbmdlZEZpZWxkc01hcCkuZmlsdGVyKFxuICAgICAgICAgICAgICAgIGNhc2VJZCA9PiBPYmplY3Qua2V5cyh0aGlzLl90YXNrQ29udGVudFNlcnZpY2UucmVmZXJlbmNlZFRhc2tBbmRDYXNlSWRzKT8uaW5jbHVkZXMoY2FzZUlkKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGNvbnN0IGNoYW5nZWRGaWVsZHM6IEFycmF5PENoYW5nZWRGaWVsZHM+ID0gW107XG4gICAgICAgICAgICBmaWx0ZXJlZENhc2VJZHMuZm9yRWFjaChjYXNlSWQgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRhc2tJZHM6IEFycmF5PHN0cmluZz4gPSB0aGlzLl90YXNrQ29udGVudFNlcnZpY2UucmVmZXJlbmNlZFRhc2tBbmRDYXNlSWRzW2Nhc2VJZF07XG4gICAgICAgICAgICAgICAgY2hhbmdlZEZpZWxkcy5wdXNoKC4uLnRoaXMuX2NoYW5nZWRGaWVsZHNTZXJ2aWNlLnBhcnNlQ2hhbmdlZEZpZWxkc0J5Q2FzZUFuZFRhc2tJZHMoY2FzZUlkLCB0YXNrSWRzLCBjaGFuZ2VkRmllbGRzTWFwKSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNoYW5nZWRGaWVsZHMuZmlsdGVyKGZpZWxkcyA9PiBmaWVsZHMgIT09IHVuZGVmaW5lZCkuZm9yRWFjaChmaWVsZHMgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMudGFza1BhbmVsRGF0YS5jaGFuZ2VkRmllbGRzLm5leHQoZmllbGRzKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgICAgX3Rhc2tPcGVyYXRpb25zLm9wZW4kLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmV4cGFuZCgpO1xuICAgICAgICB9KTtcbiAgICAgICAgX3Rhc2tPcGVyYXRpb25zLmNsb3NlJC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKCEodGhpcy5fdGFza0ZvcmNlT3BlbiB8fCB0aGlzLnByZXZlbnRDb2xsYXBzZSkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbGxhcHNlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICBfdGFza09wZXJhdGlvbnMucmVsb2FkJC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fdGFza1ZpZXdTZXJ2aWNlLnJlbG9hZEN1cnJlbnRQYWdlKCk7XG4gICAgICAgIH0pO1xuICAgICAgICBfdGFza09wZXJhdGlvbnMuZm9yY2VSZWxvYWQkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl90YXNrVmlld1NlcnZpY2UucmVsb2FkQ3VycmVudFBhZ2UodHJ1ZSk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLl90YXNrRGlzYWJsZUJ1dHRvbkZ1bmN0aW9ucyA9IHtcbiAgICAgICAgICAgIGZpbmlzaDogKHQ6IFRhc2spID0+IGZhbHNlLFxuICAgICAgICAgICAgYXNzaWduOiAodDogVGFzaykgPT4gZmFsc2UsXG4gICAgICAgICAgICBkZWxlZ2F0ZTogKHQ6IFRhc2spID0+IGZhbHNlLFxuICAgICAgICAgICAgcmVhc3NpZ246ICh0OiBUYXNrKSA9PiBmYWxzZSxcbiAgICAgICAgICAgIGNhbmNlbDogKHQ6IFRhc2spID0+IGZhbHNlLFxuICAgICAgICB9O1xuICAgICAgICBpZiAoX2Rpc2FibGVGdW5jdGlvbnMpIHtcbiAgICAgICAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5fdGFza0Rpc2FibGVCdXR0b25GdW5jdGlvbnMsIF9kaXNhYmxlRnVuY3Rpb25zKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaW5qZWN0ZWRUYWJEYXRhICE9PSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLl91bnN1YiA9IGluamVjdGVkVGFiRGF0YS50YWJTZWxlY3RlZCQucGlwZShcbiAgICAgICAgICAgICAgICBmaWx0ZXIoYm9vbCA9PiBib29sICYmIHRoaXMuaXNFeHBhbmRlZCgpKVxuICAgICAgICAgICAgKS5zdWJzY3JpYmUoICgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5fY2FuUmVsb2FkKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3Rhc2tEYXRhU2VydmljZS5pbml0aWFsaXplVGFza0RhdGFGaWVsZHMobmV3IEFmdGVyQWN0aW9uKCksIHRydWUpXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fY2FuUmVsb2FkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgICAgICB0aGlzLl90YXNrQ29udGVudFNlcnZpY2UudGFzayA9IHRoaXMuX3Rhc2tQYW5lbERhdGEudGFzaztcblxuICAgICAgICB0aGlzLmNyZWF0ZUNvbnRlbnRQb3J0YWwoKTtcbiAgICAgICAgdGhpcy5fc3ViID0gdGhpcy5fdGFza1BhbmVsRGF0YS5jaGFuZ2VkRmllbGRzLnN1YnNjcmliZShjaEZpZWxkcyA9PiB7XG4gICAgICAgICAgICB0aGlzLl90YXNrQ29udGVudFNlcnZpY2UudXBkYXRlRnJvbUNoYW5nZWRGaWVsZHMoY2hGaWVsZHMpO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLl9zdWJQYW5lbFVwZGF0ZSA9IHRoaXMuX3Rhc2tWaWV3U2VydmljZS5wYW5lbFVwZGF0ZS5waXBlKFxuICAgICAgICAgICAgbWFwKGEgPT4gYS5maW5kKHAgPT4gcC50YXNrLnN0cmluZ0lkID09PSB0aGlzLnRhc2tQYW5lbERhdGEudGFzay5zdHJpbmdJZCkpLFxuICAgICAgICAgICAgZmlsdGVyKHAgPT4gISFwKVxuICAgICAgICApLnN1YnNjcmliZSh2YWx1ZSA9PiB7XG4gICAgICAgICAgICB0aGlzLnJlc29sdmVGZWF0dXJlZEZpZWxkc1ZhbHVlcygpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIHRoaXMucGFuZWxSZWYub3BlbmVkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl90YXNrQ29udGVudFNlcnZpY2UuZXhwYW5zaW9uU3RhcnRlZCgpO1xuICAgICAgICAgICAgaWYgKCF0aGlzLl90YXNrU3RhdGUuaXNMb2FkaW5nKCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9hc3NpZ25Qb2xpY3lTZXJ2aWNlLnBlcmZvcm1Bc3NpZ25Qb2xpY3kodHJ1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnBhbmVsUmVmLmNsb3NlZC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKCF0aGlzLl90YXNrU3RhdGUuaXNMb2FkaW5nKCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9hc3NpZ25Qb2xpY3lTZXJ2aWNlLnBlcmZvcm1Bc3NpZ25Qb2xpY3koZmFsc2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5wYW5lbFJlZi5hZnRlckV4cGFuZC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fdGFza0NvbnRlbnRTZXJ2aWNlLiRzaG91bGRDcmVhdGUucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX3Rhc2tDb250ZW50U2VydmljZS5ibG9ja0ZpZWxkcyh0aGlzLmhhc05vRmluaXNoUGVybWlzc2lvbigpKTtcbiAgICAgICAgICAgICAgICB0aGlzLl90YXNrUGFuZWxEYXRhLmluaXRpYWxseUV4cGFuZGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5fdGFza0NvbnRlbnRTZXJ2aWNlLmV4cGFuc2lvbkZpbmlzaGVkKCk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnBhbmVsUmVmLmFmdGVyQ29sbGFwc2Uuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX3Rhc2tQYW5lbERhdGEuaW5pdGlhbGx5RXhwYW5kZWQgPSBmYWxzZTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKHRoaXMuX3Rhc2tQYW5lbERhdGEuaW5pdGlhbGx5RXhwYW5kZWQgfHwgdGhpcy5fdGFza0ZvcmNlT3Blbikge1xuICAgICAgICAgICAgdGhpcy5wYW5lbFJlZi5leHBhbmRlZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgY3JlYXRlQ29udGVudFBvcnRhbCgpOiB2b2lkO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2V0IHRhc2tQYW5lbERhdGEoZGF0YTogVGFza1BhbmVsRGF0YSkge1xuICAgICAgICB0aGlzLl90YXNrUGFuZWxEYXRhID0gZGF0YTtcbiAgICAgICAgdGhpcy5yZXNvbHZlRmVhdHVyZWRGaWVsZHNWYWx1ZXMoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHRhc2tQYW5lbERhdGEoKTogVGFza1BhbmVsRGF0YSB7XG4gICAgICAgIHJldHVybiB0aGlzLl90YXNrUGFuZWxEYXRhO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaXNMb2FkaW5nKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fdGFza1N0YXRlLmlzTG9hZGluZygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdG9wTG9hZGluZygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdGFza1N0YXRlLnN0b3BMb2FkaW5nKHRoaXMuX3Rhc2tQYW5lbERhdGEudGFzay5zdHJpbmdJZCk7XG4gICAgfVxuXG4gICAgcHVibGljIHByZXZlbnRQYW5lbE9wZW4oJGV2ZW50OiBNb3VzZUV2ZW50KTogYm9vbGVhbiB7XG4gICAgICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc1BhcGVyVmlldygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3BhcGVyVmlldy5wYXBlclZpZXc7XG4gICAgfVxuXG4gICAgcHVibGljIHNldFBhbmVsUmVmKHBhbmVsUmVmOiBNYXRFeHBhbnNpb25QYW5lbCkge1xuICAgICAgICB0aGlzLnBhbmVsUmVmID0gcGFuZWxSZWY7XG4gICAgICAgIHRoaXMucGFuZWxSZWZPdXRwdXQuZW1pdChwYW5lbFJlZik7XG4gICAgfVxuXG4gICAgYXNzaWduKCkge1xuICAgICAgICB0aGlzLl9hc3NpZ25UYXNrU2VydmljZS5hc3NpZ24odGhpcy5fY2FsbENoYWluLmNyZWF0ZSgoYWZ0ZXJBY3Rpb24gPT4ge1xuICAgICAgICAgICAgaWYgKGFmdGVyQWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fdGFza0RhdGFTZXJ2aWNlLmluaXRpYWxpemVUYXNrRGF0YUZpZWxkcygpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2ZpbmlzaFBvbGljeVNlcnZpY2UucGVyZm9ybUZpbmlzaFBvbGljeSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KSkpO1xuICAgIH1cblxuICAgIGRlbGVnYXRlKCkge1xuICAgICAgICB0aGlzLl9kZWxlZ2F0ZVRhc2tTZXJ2aWNlLmRlbGVnYXRlKCk7XG4gICAgfVxuXG4gICAgY2FuY2VsKCkge1xuICAgICAgICB0aGlzLl9jYW5jZWxUYXNrU2VydmljZS5jYW5jZWwodGhpcy5fY2FsbENoYWluLmNyZWF0ZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl90YXNrT3BlcmF0aW9ucy5yZWxvYWQoKTtcbiAgICAgICAgICAgIHRoaXMuX3Rhc2tPcGVyYXRpb25zLmNsb3NlKCk7XG4gICAgICAgIH0pKTtcbiAgICB9XG5cbiAgICBmaW5pc2goKSB7XG4gICAgICAgIGlmICghdGhpcy5fdGFza0NvbnRlbnRTZXJ2aWNlLnZhbGlkYXRlVGFza0RhdGEoKSkge1xuICAgICAgICAgICAgaWYgKHRoaXMuX3Rhc2tDb250ZW50U2VydmljZS50YXNrLmRhdGFTaXplIDw9IDApIHtcbiAgICAgICAgICAgICAgICB0aGlzLl90YXNrRGF0YVNlcnZpY2UuaW5pdGlhbGl6ZVRhc2tEYXRhRmllbGRzKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBpbnZhbGlkRmllbGRzID0gdGhpcy5fdGFza0NvbnRlbnRTZXJ2aWNlLmdldEludmFsaWRUYXNrRGF0YSgpO1xuICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaW52YWxpZEZpZWxkc1swXS5zdHJpbmdJZCkuc2Nyb2xsSW50b1ZpZXcoe1xuICAgICAgICAgICAgICAgIGJlaGF2aW9yOiAnc21vb3RoJyxcbiAgICAgICAgICAgICAgICBibG9jazogJ3N0YXJ0JyxcbiAgICAgICAgICAgICAgICBpbmxpbmU6ICduZWFyZXN0J1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9maW5pc2hUYXNrU2VydmljZS52YWxpZGF0ZURhdGFBbmRGaW5pc2goKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNvbGxhcHNlKCkge1xuICAgICAgICB0aGlzLnBhbmVsUmVmLmNsb3NlKCk7XG4gICAgICAgIHRoaXMucGFuZWxSZWYuZXhwYW5kZWQgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBleHBhbmQoKSB7XG4gICAgICAgIHRoaXMucGFuZWxSZWYub3BlbigpO1xuICAgICAgICB0aGlzLnBhbmVsUmVmLmV4cGFuZGVkID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2FuQXNzaWduKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fcGVybWlzc2lvblNlcnZpY2UuY2FuQXNzaWduKHRoaXMudGFza1BhbmVsRGF0YS50YXNrKSAmJiB0aGlzLmdldEFzc2lnblRpdGxlKCkgIT09ICcnO1xuICAgIH1cblxuICAgIHB1YmxpYyBjYW5SZWFzc2lnbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Blcm1pc3Npb25TZXJ2aWNlLmNhblJlYXNzaWduKHRoaXMudGFza1BhbmVsRGF0YS50YXNrKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2FuQ2FuY2VsKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fcGVybWlzc2lvblNlcnZpY2UuY2FuQ2FuY2VsKHRoaXMudGFza1BhbmVsRGF0YS50YXNrKSAmJiB0aGlzLmdldENhbmNlbFRpdGxlKCkgIT09ICcnO1xuICAgIH1cblxuICAgIHB1YmxpYyBjYW5GaW5pc2goKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9wZXJtaXNzaW9uU2VydmljZS5jYW5GaW5pc2godGhpcy50YXNrUGFuZWxEYXRhLnRhc2spICYmIHRoaXMuZ2V0RmluaXNoVGl0bGUoKSAhPT0gJyc7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoYXNOb0ZpbmlzaFBlcm1pc3Npb24oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhdGhpcy5fcGVybWlzc2lvblNlcnZpY2UuY2FuRmluaXNoKHRoaXMudGFza1BhbmVsRGF0YS50YXNrKVxuICAgIH1cblxuICAgIHB1YmxpYyBjYW5Db2xsYXBzZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Rhc2tGb3JjZU9wZW4gPyBmYWxzZSA6IHRoaXMuX3Blcm1pc3Npb25TZXJ2aWNlLmNhbkNvbGxhcHNlKHRoaXMudGFza1BhbmVsRGF0YS50YXNrKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2FuRG8oYWN0aW9uKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9wZXJtaXNzaW9uU2VydmljZS5oYXNUYXNrUGVybWlzc2lvbih0aGlzLnRhc2tQYW5lbERhdGEudGFzaywgYWN0aW9uKSAmJiB0aGlzLmdldERlbGVnYXRlVGl0bGUoKSAhPT0gJyc7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEFzc2lnblRpdGxlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiAodGhpcy50YXNrUGFuZWxEYXRhLnRhc2suYXNzaWduVGl0bGUgPT09ICcnIHx8IHRoaXMudGFza1BhbmVsRGF0YS50YXNrLmFzc2lnblRpdGxlKVxuICAgICAgICAgICAgPyB0aGlzLnRhc2tQYW5lbERhdGEudGFzay5hc3NpZ25UaXRsZSA6ICd0YXNrcy52aWV3LmFzc2lnbic7XG4gICAgfVxuXG4gICAgcHVibGljIGdldENhbmNlbFRpdGxlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiAodGhpcy50YXNrUGFuZWxEYXRhLnRhc2suY2FuY2VsVGl0bGUgPT09ICcnIHx8IHRoaXMudGFza1BhbmVsRGF0YS50YXNrLmNhbmNlbFRpdGxlKVxuICAgICAgICAgICAgPyB0aGlzLnRhc2tQYW5lbERhdGEudGFzay5jYW5jZWxUaXRsZSA6ICd0YXNrcy52aWV3LmNhbmNlbCc7XG4gICAgfVxuXG4gICAgcHVibGljIGdldERlbGVnYXRlVGl0bGUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuICh0aGlzLnRhc2tQYW5lbERhdGEudGFzay5kZWxlZ2F0ZVRpdGxlID09PSAnJyB8fCB0aGlzLnRhc2tQYW5lbERhdGEudGFzay5kZWxlZ2F0ZVRpdGxlKVxuICAgICAgICAgICAgPyB0aGlzLnRhc2tQYW5lbERhdGEudGFzay5kZWxlZ2F0ZVRpdGxlIDogJ3Rhc2tzLnZpZXcuZGVsZWdhdGUnO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRGaW5pc2hUaXRsZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gKHRoaXMudGFza1BhbmVsRGF0YS50YXNrLmZpbmlzaFRpdGxlID09PSAnJyB8fCB0aGlzLnRhc2tQYW5lbERhdGEudGFzay5maW5pc2hUaXRsZSlcbiAgICAgICAgICAgID8gdGhpcy50YXNrUGFuZWxEYXRhLnRhc2suZmluaXNoVGl0bGUgOiAndGFza3Mudmlldy5maW5pc2gnO1xuICAgIH1cblxuICAgIHB1YmxpYyBjYW5EaXNhYmxlKHR5cGU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICBsZXQgZGlzYWJsZSA9IGZhbHNlO1xuICAgICAgICBpZiAoISF0aGlzLnRhc2tQYW5lbERhdGEgJiYgISF0aGlzLnRhc2tQYW5lbERhdGEudGFzaykge1xuICAgICAgICAgICAgZGlzYWJsZSA9IGRpc2FibGVcbiAgICAgICAgICAgICAgICB8fCAhIXRoaXMuX3Rhc2tTdGF0ZS5pc0xvYWRpbmcodGhpcy50YXNrUGFuZWxEYXRhLnRhc2suc3RyaW5nSWQpXG4gICAgICAgICAgICAgICAgfHwgISF0aGlzLl90YXNrU3RhdGUuaXNVcGRhdGluZyh0aGlzLnRhc2tQYW5lbERhdGEudGFzay5zdHJpbmdJZCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGRpc2FibGUgfHwgdGhpcy5fdGFza0Rpc2FibGVCdXR0b25GdW5jdGlvbnNbdHlwZV0oey4uLnRoaXMuX3Rhc2tDb250ZW50U2VydmljZS50YXNrfSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldEZlYXR1cmVkTWV0YVZhbHVlKHNlbGVjdGVkSGVhZGVyOiBIZWFkZXJDb2x1bW4pOiBGZWF0dXJlZFZhbHVlIHtcbiAgICAgICAgY29uc3QgdGFzayA9IHRoaXMuX3Rhc2tQYW5lbERhdGEudGFzaztcbiAgICAgICAgc3dpdGNoIChzZWxlY3RlZEhlYWRlci5maWVsZElkZW50aWZpZXIpIHtcbiAgICAgICAgICAgIGNhc2UgVGFza01ldGFGaWVsZC5DQVNFOlxuICAgICAgICAgICAgICAgIHJldHVybiB7dmFsdWU6IHRhc2suY2FzZVRpdGxlLCBpY29uOiAnJywgdHlwZTogJ21ldGEnfTtcbiAgICAgICAgICAgIGNhc2UgVGFza01ldGFGaWVsZC5DQVNFX0lEOlxuICAgICAgICAgICAgICAgIHJldHVybiB7dmFsdWU6IHRhc2suY2FzZUlkLCBpY29uOiAnJywgdHlwZTogJ21ldGEnfTtcbiAgICAgICAgICAgIGNhc2UgVGFza01ldGFGaWVsZC5UQVNLX0lEOlxuICAgICAgICAgICAgICAgIHJldHVybiB7dmFsdWU6IHRhc2suc3RyaW5nSWQsIGljb246ICcnLCB0eXBlOiAnbWV0YSd9O1xuICAgICAgICAgICAgY2FzZSBUYXNrTWV0YUZpZWxkLlRJVExFOlxuICAgICAgICAgICAgICAgIHJldHVybiB7dmFsdWU6IHRhc2sudGl0bGUsIGljb246ICcnLCB0eXBlOiAnbWV0YSd9O1xuICAgICAgICAgICAgY2FzZSBUYXNrTWV0YUZpZWxkLlBSSU9SSVRZOlxuICAgICAgICAgICAgICAgIC8vIFRPRE8gcHJpb3JpdHlcbiAgICAgICAgICAgICAgICBpZiAoIXRhc2sucHJpb3JpdHkgfHwgdGFzay5wcmlvcml0eSA8IDIpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt2YWx1ZTogJ2hpZ2gnLCBpY29uOiAnZXJyb3InLCB0eXBlOiAnbWV0YSd9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAodGFzay5wcmlvcml0eSA9PT0gMikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3ZhbHVlOiAnbWVkaXVtJywgaWNvbjogJ25vcnRoJywgdHlwZTogJ21ldGEnfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHt2YWx1ZTogJ2xvdycsIGljb246ICdzb3V0aCcsIHR5cGU6ICdtZXRhJ307XG4gICAgICAgICAgICBjYXNlIFRhc2tNZXRhRmllbGQuVVNFUjpcbiAgICAgICAgICAgICAgICByZXR1cm4ge3ZhbHVlOiB0YXNrLnVzZXIgPyB0YXNrLnVzZXIuZnVsbE5hbWUgOiAnJywgaWNvbjogJ2FjY291bnRfY2lyY2xlJywgdHlwZTogJ21ldGEnfTtcbiAgICAgICAgICAgIGNhc2UgVGFza01ldGFGaWVsZC5BU1NJR05fREFURTpcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogdGFzay5zdGFydERhdGUgPyB0b01vbWVudCh0YXNrLnN0YXJ0RGF0ZSkuZm9ybWF0KERBVEVfVElNRV9GT1JNQVRfU1RSSU5HKSA6ICcnLFxuICAgICAgICAgICAgICAgICAgICBpY29uOiAnZXZlbnQnLFxuICAgICAgICAgICAgICAgICAgICB0eXBlOiAnbWV0YSdcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldEZlYXR1cmVkSW1tZWRpYXRlVmFsdWUoc2VsZWN0ZWRIZWFkZXI6IEhlYWRlckNvbHVtbik6IEZlYXR1cmVkVmFsdWUge1xuICAgICAgICBpZiAodGhpcy5fdGFza0NvbnRlbnRTZXJ2aWNlLnRhc2sgJiYgdGhpcy5fdGFza0NvbnRlbnRTZXJ2aWNlLnRhc2suaW1tZWRpYXRlRGF0YSkge1xuICAgICAgICAgICAgY29uc3QgaW1tZWRpYXRlID0gdGhpcy5fdGFza0NvbnRlbnRTZXJ2aWNlLnRhc2suaW1tZWRpYXRlRGF0YS5maW5kKGl0ID0+IGl0LnN0cmluZ0lkID09PSBzZWxlY3RlZEhlYWRlci5maWVsZElkZW50aWZpZXIpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucGFyc2VJbW1lZGlhdGVWYWx1ZShpbW1lZGlhdGUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7dmFsdWU6ICcnLCBpY29uOiAnJywgdHlwZTogJyd9O1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgICAgICB0aGlzLl9zdWIudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgdGhpcy5fc3ViVGFza0V2ZW50LnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMuX3N1YlRhc2tEYXRhLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMuX3Rhc2tPcGVyYXRpb25zLmRlc3Ryb3koKTtcbiAgICAgICAgdGhpcy5fc3ViUGFuZWxVcGRhdGUudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgdGhpcy50YXNrRXZlbnQuY29tcGxldGUoKTtcbiAgICAgICAgaWYgKHRoaXMuX3Vuc3ViKSB7XG4gICAgICAgICAgICB0aGlzLl91bnN1Yi51bnN1YnNjcmliZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGlzRm9yY2VPcGVuKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fdGFza0ZvcmNlT3BlbiAmJiAhIXRoaXMudGFza0xpc3RWaXJ0dWFsU2Nyb2xsPy5nZXRFbGVtZW50UmVmKCk/Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgfVxuXG4gICAgcHVibGljIGdldENvbnRlbnRNaW5IZWlnaHQoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGFza0xpc3RWaXJ0dWFsU2Nyb2xsLmdldEVsZW1lbnRSZWYoKS5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodCAtIDMyICsgJ3B4JztcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNFeHBhbmRlZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGFuZWxSZWY/LmV4cGFuZGVkICYmICF0aGlzLl90YXNrQ29udGVudFNlcnZpY2U/LmlzRXhwYW5kaW5nO1xuICAgIH1cbn1cbiJdfQ==