@netgrif/components-core 6.4.0-beta.2 → 6.4.0-beta.4

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 (42) hide show
  1. package/esm2020/assets/i18n/de.json +5 -1
  2. package/esm2020/assets/i18n/en.json +5 -1
  3. package/esm2020/assets/i18n/sk.json +5 -1
  4. package/esm2020/lib/header/abstract-header.component.mjs +22 -7
  5. package/esm2020/lib/navigation/group-navigation-component-resolver/group-navigation-component-resolver.service.mjs +1 -10
  6. package/esm2020/lib/navigation/model/group-navigation-constants.mjs +116 -35
  7. package/esm2020/lib/navigation/navigation-double-drawer/abstract-navigation-double-drawer.mjs +152 -107
  8. package/esm2020/lib/navigation/navigation-tree/abstract-navigation-tree.component.mjs +3 -126
  9. package/esm2020/lib/navigation/service/uri.service.mjs +3 -3
  10. package/esm2020/lib/navigation/utility/filter-extraction.service.mjs +33 -9
  11. package/esm2020/lib/navigation/utility/navigation-item-task-utility-methods.mjs +38 -4
  12. package/esm2020/lib/panel/task-panel/abstract-task-panel.component.mjs +5 -2
  13. package/esm2020/lib/panel/task-panel-list/default-task-panel-list/abstract-default-task-list.component.mjs +5 -2
  14. package/esm2020/lib/routing/routing-builder/routing-builder.service.mjs +7 -5
  15. package/esm2020/lib/side-menu/content-components/import-net/abstract-import-net.component.mjs +10 -7
  16. package/esm2020/lib/side-menu/content-components/new-case/model/new-case-injection-data.mjs +1 -1
  17. package/esm2020/lib/utility/navigation-item-default-headers-factory.mjs +22 -0
  18. package/esm2020/lib/utility/public-api.mjs +2 -1
  19. package/esm2020/lib/view/case-view/service/case-view-service.mjs +10 -7
  20. package/fesm2015/netgrif-components-core.mjs +1095 -980
  21. package/fesm2015/netgrif-components-core.mjs.map +1 -1
  22. package/fesm2020/netgrif-components-core.mjs +1089 -976
  23. package/fesm2020/netgrif-components-core.mjs.map +1 -1
  24. package/lib/header/abstract-header.component.d.ts +7 -2
  25. package/lib/navigation/group-navigation-component-resolver/group-navigation-component-resolver.service.d.ts +0 -1
  26. package/lib/navigation/model/group-navigation-constants.d.ts +115 -34
  27. package/lib/navigation/navigation-double-drawer/abstract-navigation-double-drawer.d.ts +38 -28
  28. package/lib/navigation/navigation-tree/abstract-navigation-tree.component.d.ts +2 -27
  29. package/lib/navigation/utility/filter-extraction.service.d.ts +9 -2
  30. package/lib/navigation/utility/navigation-item-task-utility-methods.d.ts +16 -1
  31. package/lib/panel/task-panel/abstract-task-panel.component.d.ts +2 -1
  32. package/lib/panel/task-panel-list/default-task-panel-list/abstract-default-task-list.component.d.ts +2 -1
  33. package/lib/routing/routing-builder/routing-builder.service.d.ts +2 -0
  34. package/lib/side-menu/content-components/import-net/abstract-import-net.component.d.ts +3 -1
  35. package/lib/side-menu/content-components/new-case/model/new-case-injection-data.d.ts +2 -1
  36. package/lib/utility/navigation-item-default-headers-factory.d.ts +3 -0
  37. package/lib/utility/public-api.d.ts +1 -0
  38. package/lib/view/case-view/service/case-view-service.d.ts +2 -2
  39. package/package.json +1 -1
  40. package/src/assets/i18n/de.json +5 -1
  41. package/src/assets/i18n/en.json +5 -1
  42. package/src/assets/i18n/sk.json +5 -1
@@ -3,20 +3,23 @@ import { GroupNavigationConstants } from '../model/group-navigation-constants';
3
3
  import { UserFilterConstants } from '../../filter/models/user-filter-constants';
4
4
  import { FilterField } from '../../data-fields/filter-field/models/filter-field';
5
5
  import { SimpleFilter } from '../../filter/models/simple-filter';
6
+ import { SearchMode } from "../../search/models/component-configuration/search-mode";
6
7
  /**
7
8
  * Extracts the item name and item icon (if any) rom a section of the navigation item task data.
8
9
  * @param dataSection an array containing the data groups that correspond to a single navigation entry
10
+ * @param translateService is a service to translate label name
9
11
  */
10
- export function extractIconAndTitle(dataSection) {
12
+ export function extractIconAndTitle(dataSection, translateService) {
11
13
  const result = { name: '' };
12
14
  if (dataSection.length === 0) {
13
15
  throw new Error('The provided task data does not belong to a Navigation menu item task. Icon and title cannot be extracted');
14
16
  }
15
17
  const nameField = getFieldFromDataGroups(dataSection, GroupNavigationConstants.NAVIGATION_ENTRY_TITLE_FIELD_ID_SUFFIX);
16
18
  if (nameField === undefined) {
17
- throw new Error('Navigation entry name could not be resolved');
19
+ throw new Error('Navigation name could not be resolved');
18
20
  }
19
- result.name = nameField.value;
21
+ const locale = translateService.currentLang.split('-')[0];
22
+ result.name = locale in nameField.value.translations ? nameField.value.translations[locale] : nameField.value.defaultValue;
20
23
  const useIcon = getFieldFromDataGroups(dataSection, GroupNavigationConstants.NAVIGATION_ENTRY_ICON_ENABLED_FIELD_ID_SUFFIX);
21
24
  if (useIcon !== undefined && useIcon.value) {
22
25
  const icon = getFieldFromDataGroups(dataSection, GroupNavigationConstants.NAVIGATION_ENTRY_ICON_FIELD_ID_SUFFIX);
@@ -75,4 +78,35 @@ export function extractFilterFromFilterField(filterField) {
75
78
  }
76
79
  return SimpleFilter.fromQuery({ query: filterField.value }, filterField.filterMetadata.filterType);
77
80
  }
78
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi1pdGVtLXRhc2stdXRpbGl0eS1tZXRob2RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmV0Z3JpZi1jb21wb25lbnRzLWNvcmUvc3JjL2xpYi9uYXZpZ2F0aW9uL3V0aWxpdHkvbmF2aWdhdGlvbi1pdGVtLXRhc2stdXRpbGl0eS1tZXRob2RzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQy9ELE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBRTdFLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLDJDQUEyQyxDQUFDO0FBQzlFLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxvREFBb0QsQ0FBQztBQUMvRSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFHL0Q7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLG1CQUFtQixDQUFDLFdBQTZCO0lBQzdELE1BQU0sTUFBTSxHQUE2QixFQUFDLElBQUksRUFBRSxFQUFFLEVBQUMsQ0FBQztJQUVwRCxJQUFJLFdBQVcsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1FBQzFCLE1BQU0sSUFBSSxLQUFLLENBQUMsMkdBQTJHLENBQUMsQ0FBQztLQUNoSTtJQUVELE1BQU0sU0FBUyxHQUFHLHNCQUFzQixDQUFDLFdBQVcsRUFBRSx3QkFBd0IsQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFDO0lBRXZILElBQUksU0FBUyxLQUFLLFNBQVMsRUFBRTtRQUN6QixNQUFNLElBQUksS0FBSyxDQUFDLDZDQUE2QyxDQUFDLENBQUM7S0FDbEU7SUFDRCxNQUFNLENBQUMsSUFBSSxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUM7SUFFOUIsTUFBTSxPQUFPLEdBQUcsc0JBQXNCLENBQUMsV0FBVyxFQUFFLHdCQUF3QixDQUFDLDZDQUE2QyxDQUFDLENBQUM7SUFDNUgsSUFBSSxPQUFPLEtBQUssU0FBUyxJQUFJLE9BQU8sQ0FBQyxLQUFLLEVBQUU7UUFDeEMsTUFBTSxJQUFJLEdBQUcsc0JBQXNCLENBQUMsV0FBVyxFQUFFLHdCQUF3QixDQUFDLHFDQUFxQyxDQUFDLENBQUM7UUFDakgsSUFBSSxJQUFJLEtBQUssU0FBUyxFQUFFO1lBQ3BCLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLCtFQUErRSxDQUFDLENBQUM7U0FDcEc7YUFBTTtZQUNILE1BQU0sQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztTQUM1QjtLQUNKO0lBQ0QsT0FBTyxNQUFNLENBQUM7QUFDbEIsQ0FBQztBQUVEOzs7Ozs7R0FNRztBQUNILE1BQU0sVUFBVSxZQUFZLENBQUMsV0FBNkIsRUFBRSxXQUFtQjtJQUMzRSxJQUFJLFdBQVcsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1FBQzFCLE1BQU0sSUFBSSxLQUFLLENBQUMseUdBQXlHLENBQUMsQ0FBQztLQUM5SDtJQUVELE1BQU0sT0FBTyxHQUFHLHNCQUFzQixDQUFDLFdBQVcsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUNqRSxJQUFJLE9BQU8sS0FBSyxTQUFTLEVBQUU7UUFDdkIsTUFBTSxJQUFJLEtBQUssQ0FBQyxpRUFBaUUsQ0FBQyxDQUFDO0tBQ3RGO0lBRUQsT0FBUSxPQUF1QyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDdEYsQ0FBQztBQUVEOzs7R0FHRztBQUNILE1BQU0sVUFBVSxxQkFBcUIsQ0FBQyxXQUE2QjtJQUMvRCxPQUFPLDRCQUE0QixDQUFDLDBCQUEwQixDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7QUFDakYsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsMEJBQTBCLENBQUMsV0FBNkI7SUFDcEUsTUFBTSxXQUFXLEdBQUcsc0JBQXNCLENBQUMsV0FBVyxFQUFFLG1CQUFtQixDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBRTdGLElBQUksV0FBVyxLQUFLLFNBQVMsSUFBSSxDQUFDLENBQUMsV0FBVyxZQUFZLFdBQVcsQ0FBQyxFQUFFO1FBQ3BFLE1BQU0sSUFBSSxLQUFLLENBQUMsaUdBQ1osbUJBQW1CLENBQUMsZUFBZSxHQUFHLENBQUMsQ0FBQztLQUMvQztJQUVELE9BQU8sV0FBVyxDQUFDO0FBQ3ZCLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsNEJBQTRCLENBQUMsV0FBd0I7SUFDakUsSUFBSSxXQUFXLEtBQUssU0FBUyxJQUFJLENBQUMsQ0FBQyxXQUFXLFlBQVksV0FBVyxDQUFDLEVBQUU7UUFDcEUsTUFBTSxJQUFJLEtBQUssQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO0tBQ25EO0lBQ0QsT0FBTyxZQUFZLENBQUMsU0FBUyxDQUFDLEVBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxLQUFLLEVBQUMsRUFBRSxXQUFXLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0FBQ3JHLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0dyb3VwTmF2aWdhdGlvbkl0ZW1MYWJlbH0gZnJvbSAnLi4vbW9kZWwvZ3JvdXAtbmF2aWdhdGlvbi1pdGVtLWxhYmVsJztcbmltcG9ydCB7RGF0YUdyb3VwfSBmcm9tICcuLi8uLi9yZXNvdXJjZXMvaW50ZXJmYWNlL2RhdGEtZ3JvdXBzJztcbmltcG9ydCB7Z2V0RmllbGRGcm9tRGF0YUdyb3Vwc30gZnJvbSAnLi4vLi4vdXRpbGl0eS9nZXQtZmllbGQnO1xuaW1wb3J0IHtHcm91cE5hdmlnYXRpb25Db25zdGFudHN9IGZyb20gJy4uL21vZGVsL2dyb3VwLW5hdmlnYXRpb24tY29uc3RhbnRzJztcbmltcG9ydCB7RmlsdGVyfSBmcm9tICcuLi8uLi9maWx0ZXIvbW9kZWxzL2ZpbHRlcic7XG5pbXBvcnQge1VzZXJGaWx0ZXJDb25zdGFudHN9IGZyb20gJy4uLy4uL2ZpbHRlci9tb2RlbHMvdXNlci1maWx0ZXItY29uc3RhbnRzJztcbmltcG9ydCB7RmlsdGVyRmllbGR9IGZyb20gJy4uLy4uL2RhdGEtZmllbGRzL2ZpbHRlci1maWVsZC9tb2RlbHMvZmlsdGVyLWZpZWxkJztcbmltcG9ydCB7U2ltcGxlRmlsdGVyfSBmcm9tICcuLi8uLi9maWx0ZXIvbW9kZWxzL3NpbXBsZS1maWx0ZXInO1xuaW1wb3J0IHtNdWx0aWNob2ljZUZpZWxkfSBmcm9tICcuLi8uLi9kYXRhLWZpZWxkcy9tdWx0aWNob2ljZS1maWVsZC9tb2RlbHMvbXVsdGljaG9pY2UtZmllbGQnO1xuXG4vKipcbiAqIEV4dHJhY3RzIHRoZSBpdGVtIG5hbWUgYW5kIGl0ZW0gaWNvbiAoaWYgYW55KSByb20gYSBzZWN0aW9uIG9mIHRoZSBuYXZpZ2F0aW9uIGl0ZW0gdGFzayBkYXRhLlxuICogQHBhcmFtIGRhdGFTZWN0aW9uIGFuIGFycmF5IGNvbnRhaW5pbmcgdGhlIGRhdGEgZ3JvdXBzIHRoYXQgY29ycmVzcG9uZCB0byBhIHNpbmdsZSBuYXZpZ2F0aW9uIGVudHJ5XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0SWNvbkFuZFRpdGxlKGRhdGFTZWN0aW9uOiBBcnJheTxEYXRhR3JvdXA+KTogR3JvdXBOYXZpZ2F0aW9uSXRlbUxhYmVsIHtcbiAgICBjb25zdCByZXN1bHQ6IEdyb3VwTmF2aWdhdGlvbkl0ZW1MYWJlbCA9IHtuYW1lOiAnJ307XG5cbiAgICBpZiAoZGF0YVNlY3Rpb24ubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignVGhlIHByb3ZpZGVkIHRhc2sgZGF0YSBkb2VzIG5vdCBiZWxvbmcgdG8gYSBOYXZpZ2F0aW9uIG1lbnUgaXRlbSB0YXNrLiBJY29uIGFuZCB0aXRsZSBjYW5ub3QgYmUgZXh0cmFjdGVkJyk7XG4gICAgfVxuXG4gICAgY29uc3QgbmFtZUZpZWxkID0gZ2V0RmllbGRGcm9tRGF0YUdyb3VwcyhkYXRhU2VjdGlvbiwgR3JvdXBOYXZpZ2F0aW9uQ29uc3RhbnRzLk5BVklHQVRJT05fRU5UUllfVElUTEVfRklFTERfSURfU1VGRklYKTtcblxuICAgIGlmIChuYW1lRmllbGQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05hdmlnYXRpb24gZW50cnkgbmFtZSBjb3VsZCBub3QgYmUgcmVzb2x2ZWQnKTtcbiAgICB9XG4gICAgcmVzdWx0Lm5hbWUgPSBuYW1lRmllbGQudmFsdWU7XG5cbiAgICBjb25zdCB1c2VJY29uID0gZ2V0RmllbGRGcm9tRGF0YUdyb3VwcyhkYXRhU2VjdGlvbiwgR3JvdXBOYXZpZ2F0aW9uQ29uc3RhbnRzLk5BVklHQVRJT05fRU5UUllfSUNPTl9FTkFCTEVEX0ZJRUxEX0lEX1NVRkZJWCk7XG4gICAgaWYgKHVzZUljb24gIT09IHVuZGVmaW5lZCAmJiB1c2VJY29uLnZhbHVlKSB7XG4gICAgICAgIGNvbnN0IGljb24gPSBnZXRGaWVsZEZyb21EYXRhR3JvdXBzKGRhdGFTZWN0aW9uLCBHcm91cE5hdmlnYXRpb25Db25zdGFudHMuTkFWSUdBVElPTl9FTlRSWV9JQ09OX0ZJRUxEX0lEX1NVRkZJWCk7XG4gICAgICAgIGlmIChpY29uID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuX2xvZy5lcnJvcignTmF2aWdhdGlvbiBlbnRyeSBpY29uIGNvdWxkIG5vdCBiZSByZXNvbHZlZCwgYnV0IGlzIGVuYWJsZWQuIEljb24gd2FzIGlnbm9yZWQnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlc3VsdC5pY29uID0gaWNvbi52YWx1ZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xufVxuXG4vKipcbiAqIEJhc2VkIG9uIHByb3ZpZGVkIHBhcmFtZXRlciBleHRyYWN0cyBhbGxvd2VkIG9yIGJhbm5lZCByb2xlcyBpbnRvIGFuIEFycmF5IG9mIHN0cmluZ3MgZnJvbSBhIHNlY3Rpb24gb2YgdGhlIG5hdmlnYXRpb24gaXRlbSB0YXNrIGRhdGEuXG4gKiBFYWNoIGl0ZW0gaGFzIGZvcm1hdCBST0xFX0lNUE9SVF9JRDpORVRfSU1QT1JUX0lEXG4gKiBAcGFyYW0gZGF0YVNlY3Rpb24gYW4gYXJyYXkgY29udGFpbmluZyB0aGUgZGF0YSBncm91cHMgdGhhdCBjb3JyZXNwb25kIHRvIGEgc2luZ2xlIG5hdmlnYXRpb24gZW50cnlcbiAqIEBwYXJhbSByb2xlRmllbGRJZCBJRCBvZiBmaWVsZCBjb250YWluaW5nIGJhbm5lZCBvciBhbGxvd2VkIHJvbGUgSURzXG4gKiBAcmV0dXJucyBhbiBBcnJheSBvZiBzdHJpbmcgdmFsdWVzIHJlcHJlc2VudGluZyByb2xlIElEc1xuICovXG5leHBvcnQgZnVuY3Rpb24gZXh0cmFjdFJvbGVzKGRhdGFTZWN0aW9uOiBBcnJheTxEYXRhR3JvdXA+LCByb2xlRmllbGRJZDogc3RyaW5nKTogQXJyYXk8c3RyaW5nPiB7XG4gICAgaWYgKGRhdGFTZWN0aW9uLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RoZSBwcm92aWRlZCB0YXNrIGRhdGEgZG9lcyBub3QgYmVsb25nIHRvIGEgTmF2aWdhdGlvbiBtZW51IGl0ZW0gdGFzay4gUm9sZSBlbnRyaWVzIGNhbm5vdCBiZSBleHRyYWN0ZWQnKTtcbiAgICB9XG5cbiAgICBjb25zdCByb2xlSWRzID0gZ2V0RmllbGRGcm9tRGF0YUdyb3VwcyhkYXRhU2VjdGlvbiwgcm9sZUZpZWxkSWQpO1xuICAgIGlmIChyb2xlSWRzID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdOYXZpZ2F0aW9uIGVudHJ5IHJvbGUgYXV0aG9yaXphdGlvbiBmaWVsZCBjb3VsZCBub3QgYmUgcmVzb2x2ZWQnKTtcbiAgICB9XG5cbiAgICByZXR1cm4gKHJvbGVJZHMgYXMgdW5rbm93biBhcyBNdWx0aWNob2ljZUZpZWxkKS5jaG9pY2VzLm1hcChjaG9pY2UgPT4gY2hvaWNlLmtleSk7XG59XG5cbi8qKlxuICogRXh0cmFjdHMgdGhlIGRhdGEgYW5kIGNyZWF0ZXMgYSBmaWx0ZXIgb2JqZWN0IGZyb20gdGhlIG5hdmlnYXRpb24gaXRlbSB0YXNrIGRhdGEuXG4gKiBAcGFyYW0gZGF0YVNlY3Rpb24gYW4gYXJyYXkgY29udGFpbmluZyB0aGUgZGF0YSBncm91cHMgdGhhdCBjb3JyZXNwb25kIHRvIGEgc2luZ2xlIG5hdmlnYXRpb24gZW50cnlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3RGaWx0ZXJGcm9tRGF0YShkYXRhU2VjdGlvbjogQXJyYXk8RGF0YUdyb3VwPik6IEZpbHRlciB7XG4gICAgcmV0dXJuIGV4dHJhY3RGaWx0ZXJGcm9tRmlsdGVyRmllbGQoZXh0cmFjdEZpbHRlckZpZWxkRnJvbURhdGEoZGF0YVNlY3Rpb24pKTtcbn1cblxuLyoqXG4gKiBFeHRyYWN0cyB0aGUgZmlsdGVyIGZpZWxkIGZyb20gdGhlIG5hdmlnYXRpb24gaXRlbSB0YXNrIGRhdGEuXG4gKiBAcGFyYW0gZGF0YVNlY3Rpb24gYW4gYXJyYXkgY29udGFpbmluZyB0aGUgZGF0YSBncm91cHMgdGhhdCBjb3JyZXNwb25kIHRvIGEgc2luZ2xlIG5hdmlnYXRpb24gZW50cnlcbiAqIEByZXR1cm5zIFRoZSBleHRyYWN0ZWQge0BsaW5rIEZpbHRlckZpZWxkfSBvciBgdW5kZWZpbmVkYCBpZiBpdCBjb3VsZCBub3QgYmUgZXh0cmFjdGVkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZXh0cmFjdEZpbHRlckZpZWxkRnJvbURhdGEoZGF0YVNlY3Rpb246IEFycmF5PERhdGFHcm91cD4pOiBGaWx0ZXJGaWVsZCB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgZmlsdGVyRmllbGQgPSBnZXRGaWVsZEZyb21EYXRhR3JvdXBzKGRhdGFTZWN0aW9uLCBVc2VyRmlsdGVyQ29uc3RhbnRzLkZJTFRFUl9GSUVMRF9JRCk7XG5cbiAgICBpZiAoZmlsdGVyRmllbGQgPT09IHVuZGVmaW5lZCB8fCAhKGZpbHRlckZpZWxkIGluc3RhbmNlb2YgRmlsdGVyRmllbGQpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgRmlsdGVyIGNvdWxkIG5vdCBiZSBleHRyYWN0ZWQuIFRoZSBwcm92aWRlZCBkYXRhZ3JvdXBzIGRvIG5vdCBjb250YWluIGEgZmlsdGVyIGZpZWxkIHdpdGggSUQgJyR7XG4gICAgICAgICAgICBVc2VyRmlsdGVyQ29uc3RhbnRzLkZJTFRFUl9GSUVMRF9JRH0nYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZpbHRlckZpZWxkO1xufVxuXG4vKipcbiAqIEByZXR1cm5zIGEge0BsaW5rIFNpbXBsZUZpbHRlcn0gY29udGFpbmluZyB0aGUgZmlsdGVyIHN0b3JlZCBpbiB0aGUgcHJvdmlkZWQge0BsaW5rIEZpbHRlckZpZWxkfS5cbiAqIFRocm93cyBhbiBlcnJvciBpZiB0aGlzIGlzIG5vdCBwb3NzaWJsZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3RGaWx0ZXJGcm9tRmlsdGVyRmllbGQoZmlsdGVyRmllbGQ6IEZpbHRlckZpZWxkKTogRmlsdGVyIHtcbiAgICBpZiAoZmlsdGVyRmllbGQgPT09IHVuZGVmaW5lZCB8fCAhKGZpbHRlckZpZWxkIGluc3RhbmNlb2YgRmlsdGVyRmllbGQpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignRmlsdGVyIGNvdWxkIG5vdCBiZSByZXNvbHZlZCcpO1xuICAgIH1cbiAgICByZXR1cm4gU2ltcGxlRmlsdGVyLmZyb21RdWVyeSh7cXVlcnk6IGZpbHRlckZpZWxkLnZhbHVlfSwgZmlsdGVyRmllbGQuZmlsdGVyTWV0YWRhdGEuZmlsdGVyVHlwZSk7XG59XG4iXX0=
81
+ /**
82
+ * Extracts the selected search type from enumeration field of the navigation item task data.
83
+ * @returns a {@link SearchMode} containing {@link SearchMode.ADVANCED} or {@link SearchMode.FULLTEXT} or {@link undefined}
84
+ * if unexpected value is found
85
+ * */
86
+ export function extractSearchTypeFromData(dataSection, typeFieldId) {
87
+ const typeField = getFieldFromDataGroups(dataSection, typeFieldId);
88
+ if (typeField === undefined) {
89
+ throw new Error('Navigation entry search type field could not be resolved');
90
+ }
91
+ switch (typeField.value) {
92
+ case 'fulltext':
93
+ return SearchMode.FULLTEXT;
94
+ case 'fulltext_advanced':
95
+ return SearchMode.ADVANCED;
96
+ default:
97
+ return undefined;
98
+ }
99
+ }
100
+ /**
101
+ * Extracts field value from data
102
+ * @returns value of extracted field
103
+ * @throws Error if no field is found
104
+ * */
105
+ export function extractFieldValueFromData(dataSection, fieldId) {
106
+ const field = getFieldFromDataGroups(dataSection, fieldId);
107
+ if (field === undefined) {
108
+ throw new Error(`Field ${fieldId} could not be resolved`);
109
+ }
110
+ return field.value;
111
+ }
112
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi1pdGVtLXRhc2stdXRpbGl0eS1tZXRob2RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmV0Z3JpZi1jb21wb25lbnRzLWNvcmUvc3JjL2xpYi9uYXZpZ2F0aW9uL3V0aWxpdHkvbmF2aWdhdGlvbi1pdGVtLXRhc2stdXRpbGl0eS1tZXRob2RzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQy9ELE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBRTdFLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLDJDQUEyQyxDQUFDO0FBQzlFLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxvREFBb0QsQ0FBQztBQUMvRSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFFL0QsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLHlEQUF5RCxDQUFDO0FBR25GOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsbUJBQW1CLENBQUMsV0FBNkIsRUFBRSxnQkFBa0M7SUFDakcsTUFBTSxNQUFNLEdBQTZCLEVBQUMsSUFBSSxFQUFFLEVBQUUsRUFBQyxDQUFDO0lBRXBELElBQUksV0FBVyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7UUFDMUIsTUFBTSxJQUFJLEtBQUssQ0FBQywyR0FBMkcsQ0FBQyxDQUFDO0tBQ2hJO0lBRUQsTUFBTSxTQUFTLEdBQUcsc0JBQXNCLENBQUMsV0FBVyxFQUFFLHdCQUF3QixDQUFDLHNDQUFzQyxDQUFDLENBQUM7SUFFdkgsSUFBSSxTQUFTLEtBQUssU0FBUyxFQUFFO1FBQ3pCLE1BQU0sSUFBSSxLQUFLLENBQUMsdUNBQXVDLENBQUMsQ0FBQztLQUM1RDtJQUVELE1BQU0sTUFBTSxHQUFHLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMs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QUMsQ0FBQztLQUMvRTtJQUVELFFBQVEsU0FBUyxDQUFDLEtBQUssRUFBRTtRQUNyQixLQUFLLFVBQVU7WUFDWCxPQUFPLFVBQVUsQ0FBQyxRQUFRLENBQUM7UUFDL0IsS0FBSyxtQkFBbUI7WUFDcEIsT0FBTyxVQUFVLENBQUMsUUFBUSxDQUFDO1FBQy9CO1lBQ0ksT0FBTyxTQUFTLENBQUE7S0FDdkI7QUFDTCxDQUFDO0FBRUQ7Ozs7S0FJSztBQUNMLE1BQU0sVUFBVSx5QkFBeUIsQ0FBSSxXQUE2QixFQUFFLE9BQWU7SUFDdkYsTUFBTSxLQUFLLEdBQUcsc0JBQXNCLENBQUMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzNELElBQUksS0FBSyxLQUFLLFNBQVMsRUFBRTtRQUNyQixNQUFNLElBQUksS0FBSyxDQUFDLFNBQVMsT0FBTyx3QkFBd0IsQ0FBQyxDQUFDO0tBQzdEO0lBQ0QsT0FBTyxLQUFLLENBQUMsS0FBSyxDQUFDO0FBQ3ZCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0dyb3VwTmF2aWdhdGlvbkl0ZW1MYWJlbH0gZnJvbSAnLi4vbW9kZWwvZ3JvdXAtbmF2aWdhdGlvbi1pdGVtLWxhYmVsJztcbmltcG9ydCB7RGF0YUdyb3VwfSBmcm9tICcuLi8uLi9yZXNvdXJjZXMvaW50ZXJmYWNlL2RhdGEtZ3JvdXBzJztcbmltcG9ydCB7Z2V0RmllbGRGcm9tRGF0YUdyb3Vwc30gZnJvbSAnLi4vLi4vdXRpbGl0eS9nZXQtZmllbGQnO1xuaW1wb3J0IHtHcm91cE5hdmlnYXRpb25Db25zdGFudHN9IGZyb20gJy4uL21vZGVsL2dyb3VwLW5hdmlnYXRpb24tY29uc3RhbnRzJztcbmltcG9ydCB7RmlsdGVyfSBmcm9tICcuLi8uLi9maWx0ZXIvbW9kZWxzL2ZpbHRlcic7XG5pbXBvcnQge1VzZXJGaWx0ZXJDb25zdGFudHN9IGZyb20gJy4uLy4uL2ZpbHRlci9tb2RlbHMvdXNlci1maWx0ZXItY29uc3RhbnRzJztcbmltcG9ydCB7RmlsdGVyRmllbGR9IGZyb20gJy4uLy4uL2RhdGEtZmllbGRzL2ZpbHRlci1maWVsZC9tb2RlbHMvZmlsdGVyLWZpZWxkJztcbmltcG9ydCB7U2ltcGxlRmlsdGVyfSBmcm9tICcuLi8uLi9maWx0ZXIvbW9kZWxzL3NpbXBsZS1maWx0ZXInO1xuaW1wb3J0IHtNdWx0aWNob2ljZUZpZWxkfSBmcm9tICcuLi8uLi9kYXRhLWZpZWxkcy9tdWx0aWNob2ljZS1maWVsZC9tb2RlbHMvbXVsdGljaG9pY2UtZmllbGQnO1xuaW1wb3J0IHtTZWFyY2hNb2RlfSBmcm9tIFwiLi4vLi4vc2VhcmNoL21vZGVscy9jb21wb25lbnQtY29uZmlndXJhdGlvbi9zZWFyY2gtbW9kZVwiO1xuaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tIFwiQG5neC10cmFuc2xhdGUvY29yZVwiO1xuXG4vKipcbiAqIEV4dHJhY3RzIHRoZSBpdGVtIG5hbWUgYW5kIGl0ZW0gaWNvbiAoaWYgYW55KSByb20gYSBzZWN0aW9uIG9mIHRoZSBuYXZpZ2F0aW9uIGl0ZW0gdGFzayBkYXRhLlxuICogQHBhcmFtIGRhdGFTZWN0aW9uIGFuIGFycmF5IGNvbnRhaW5pbmcgdGhlIGRhdGEgZ3JvdXBzIHRoYXQgY29ycmVzcG9uZCB0byBhIHNpbmdsZSBuYXZpZ2F0aW9uIGVudHJ5XG4gKiBAcGFyYW0gdHJhbnNsYXRlU2VydmljZSBpcyBhIHNlcnZpY2UgdG8gdHJhbnNsYXRlIGxhYmVsIG5hbWVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3RJY29uQW5kVGl0bGUoZGF0YVNlY3Rpb246IEFycmF5PERhdGFHcm91cD4sIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UpOiBHcm91cE5hdmlnYXRpb25JdGVtTGFiZWwge1xuICAgIGNvbnN0IHJlc3VsdDogR3JvdXBOYXZpZ2F0aW9uSXRlbUxhYmVsID0ge25hbWU6ICcnfTtcblxuICAgIGlmIChkYXRhU2VjdGlvbi5sZW5ndGggPT09IDApIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdUaGUgcHJvdmlkZWQgdGFzayBkYXRhIGRvZXMgbm90IGJlbG9uZyB0byBhIE5hdmlnYXRpb24gbWVudSBpdGVtIHRhc2suIEljb24gYW5kIHRpdGxlIGNhbm5vdCBiZSBleHRyYWN0ZWQnKTtcbiAgICB9XG5cbiAgICBjb25zdCBuYW1lRmllbGQgPSBnZXRGaWVsZEZyb21EYXRhR3JvdXBzKGRhdGFTZWN0aW9uLCBHcm91cE5hdmlnYXRpb25Db25zdGFudHMuTkFWSUdBVElPTl9FTlRSWV9USVRMRV9GSUVMRF9JRF9TVUZGSVgpO1xuXG4gICAgaWYgKG5hbWVGaWVsZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignTmF2aWdhdGlvbiBuYW1lIGNvdWxkIG5vdCBiZSByZXNvbHZlZCcpO1xuICAgIH1cblxuICAgIGNvbnN0IGxvY2FsZSA9IHRyYW5zbGF0ZVNlcnZpY2UuY3VycmVudExhbmcuc3BsaXQoJy0nKVswXTtcbiAgICByZXN1bHQubmFtZSA9IGxvY2FsZSBpbiBuYW1lRmllbGQudmFsdWUudHJhbnNsYXRpb25zID8gbmFtZUZpZWxkLnZhbHVlLnRyYW5zbGF0aW9uc1tsb2NhbGVdIDogbmFtZUZpZWxkLnZhbHVlLmRlZmF1bHRWYWx1ZTtcblxuICAgIGNvbnN0IHVzZUljb24gPSBnZXRGaWVsZEZyb21EYXRhR3JvdXBzKGRhdGFTZWN0aW9uLCBHcm91cE5hdmlnYXRpb25Db25zdGFudHMuTkFWSUdBVElPTl9FTlRSWV9JQ09OX0VOQUJMRURfRklFTERfSURfU1VGRklYKTtcbiAgICBpZiAodXNlSWNvbiAhPT0gdW5kZWZpbmVkICYmIHVzZUljb24udmFsdWUpIHtcbiAgICAgICAgY29uc3QgaWNvbiA9IGdldEZpZWxkRnJvbURhdGFHcm91cHMoZGF0YVNlY3Rpb24sIEdyb3VwTmF2aWdhdGlvbkNvbnN0YW50cy5OQVZJR0FUSU9OX0VOVFJZX0lDT05fRklFTERfSURfU1VGRklYKTtcbiAgICAgICAgaWYgKGljb24gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5fbG9nLmVycm9yKCdOYXZpZ2F0aW9uIGVudHJ5IGljb24gY291bGQgbm90IGJlIHJlc29sdmVkLCBidXQgaXMgZW5hYmxlZC4gSWNvbiB3YXMgaWdub3JlZCcpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzdWx0Lmljb24gPSBpY29uLnZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG59XG5cbi8qKlxuICogQmFzZWQgb24gcHJvdmlkZWQgcGFyYW1ldGVyIGV4dHJhY3RzIGFsbG93ZWQgb3IgYmFubmVkIHJvbGVzIGludG8gYW4gQXJyYXkgb2Ygc3RyaW5ncyBmcm9tIGEgc2VjdGlvbiBvZiB0aGUgbmF2aWdhdGlvbiBpdGVtIHRhc2sgZGF0YS5cbiAqIEVhY2ggaXRlbSBoYXMgZm9ybWF0IFJPTEVfSU1QT1JUX0lEOk5FVF9JTVBPUlRfSURcbiAqIEBwYXJhbSBkYXRhU2VjdGlvbiBhbiBhcnJheSBjb250YWluaW5nIHRoZSBkYXRhIGdyb3VwcyB0aGF0IGNvcnJlc3BvbmQgdG8gYSBzaW5nbGUgbmF2aWdhdGlvbiBlbnRyeVxuICogQHBhcmFtIHJvbGVGaWVsZElkIElEIG9mIGZpZWxkIGNvbnRhaW5pbmcgYmFubmVkIG9yIGFsbG93ZWQgcm9sZSBJRHNcbiAqIEByZXR1cm5zIGFuIEFycmF5IG9mIHN0cmluZyB2YWx1ZXMgcmVwcmVzZW50aW5nIHJvbGUgSURzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0Um9sZXMoZGF0YVNlY3Rpb246IEFycmF5PERhdGFHcm91cD4sIHJvbGVGaWVsZElkOiBzdHJpbmcpOiBBcnJheTxzdHJpbmc+IHtcbiAgICBpZiAoZGF0YVNlY3Rpb24ubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignVGhlIHByb3ZpZGVkIHRhc2sgZGF0YSBkb2VzIG5vdCBiZWxvbmcgdG8gYSBOYXZpZ2F0aW9uIG1lbnUgaXRlbSB0YXNrLiBSb2xlIGVudHJpZXMgY2Fubm90IGJlIGV4dHJhY3RlZCcpO1xuICAgIH1cblxuICAgIGNvbnN0IHJvbGVJZHMgPSBnZXRGaWVsZEZyb21EYXRhR3JvdXBzKGRhdGFTZWN0aW9uLCByb2xlRmllbGRJZCk7XG4gICAgaWYgKHJvbGVJZHMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05hdmlnYXRpb24gZW50cnkgcm9sZSBhdXRob3JpemF0aW9uIGZpZWxkIGNvdWxkIG5vdCBiZSByZXNvbHZlZCcpO1xuICAgIH1cblxuICAgIHJldHVybiAocm9sZUlkcyBhcyB1bmtub3duIGFzIE11bHRpY2hvaWNlRmllbGQpLmNob2ljZXMubWFwKGNob2ljZSA9PiBjaG9pY2Uua2V5KTtcbn1cblxuLyoqXG4gKiBFeHRyYWN0cyB0aGUgZGF0YSBhbmQgY3JlYXRlcyBhIGZpbHRlciBvYmplY3QgZnJvbSB0aGUgbmF2aWdhdGlvbiBpdGVtIHRhc2sgZGF0YS5cbiAqIEBwYXJhbSBkYXRhU2VjdGlvbiBhbiBhcnJheSBjb250YWluaW5nIHRoZSBkYXRhIGdyb3VwcyB0aGF0IGNvcnJlc3BvbmQgdG8gYSBzaW5nbGUgbmF2aWdhdGlvbiBlbnRyeVxuICovXG5leHBvcnQgZnVuY3Rpb24gZXh0cmFjdEZpbHRlckZyb21EYXRhKGRhdGFTZWN0aW9uOiBBcnJheTxEYXRhR3JvdXA+KTogRmlsdGVyIHtcbiAgICByZXR1cm4gZXh0cmFjdEZpbHRlckZyb21GaWx0ZXJGaWVsZChleHRyYWN0RmlsdGVyRmllbGRGcm9tRGF0YShkYXRhU2VjdGlvbikpO1xufVxuXG4vKipcbiAqIEV4dHJhY3RzIHRoZSBmaWx0ZXIgZmllbGQgZnJvbSB0aGUgbmF2aWdhdGlvbiBpdGVtIHRhc2sgZGF0YS5cbiAqIEBwYXJhbSBkYXRhU2VjdGlvbiBhbiBhcnJheSBjb250YWluaW5nIHRoZSBkYXRhIGdyb3VwcyB0aGF0IGNvcnJlc3BvbmQgdG8gYSBzaW5nbGUgbmF2aWdhdGlvbiBlbnRyeVxuICogQHJldHVybnMgVGhlIGV4dHJhY3RlZCB7QGxpbmsgRmlsdGVyRmllbGR9IG9yIGB1bmRlZmluZWRgIGlmIGl0IGNvdWxkIG5vdCBiZSBleHRyYWN0ZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0RmlsdGVyRmllbGRGcm9tRGF0YShkYXRhU2VjdGlvbjogQXJyYXk8RGF0YUdyb3VwPik6IEZpbHRlckZpZWxkIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBmaWx0ZXJGaWVsZCA9IGdldEZpZWxkRnJvbURhdGFHcm91cHMoZGF0YVNlY3Rpb24sIFVzZXJGaWx0ZXJDb25zdGFudHMuRklMVEVSX0ZJRUxEX0lEKTtcblxuICAgIGlmIChmaWx0ZXJGaWVsZCA9PT0gdW5kZWZpbmVkIHx8ICEoZmlsdGVyRmllbGQgaW5zdGFuY2VvZiBGaWx0ZXJGaWVsZCkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBGaWx0ZXIgY291bGQgbm90IGJlIGV4dHJhY3RlZC4gVGhlIHByb3ZpZGVkIGRhdGFncm91cHMgZG8gbm90IGNvbnRhaW4gYSBmaWx0ZXIgZmllbGQgd2l0aCBJRCAnJHtcbiAgICAgICAgICAgIFVzZXJGaWx0ZXJDb25zdGFudHMuRklMVEVSX0ZJRUxEX0lEfSdgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmlsdGVyRmllbGQ7XG59XG5cbi8qKlxuICogQHJldHVybnMgYSB7QGxpbmsgU2ltcGxlRmlsdGVyfSBjb250YWluaW5nIHRoZSBmaWx0ZXIgc3RvcmVkIGluIHRoZSBwcm92aWRlZCB7QGxpbmsgRmlsdGVyRmllbGR9LlxuICogVGhyb3dzIGFuIGVycm9yIGlmIHRoaXMgaXMgbm90IHBvc3NpYmxlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZXh0cmFjdEZpbHRlckZyb21GaWx0ZXJGaWVsZChmaWx0ZXJGaWVsZDogRmlsdGVyRmllbGQpOiBGaWx0ZXIge1xuICAgIGlmIChmaWx0ZXJGaWVsZCA9PT0gdW5kZWZpbmVkIHx8ICEoZmlsdGVyRmllbGQgaW5zdGFuY2VvZiBGaWx0ZXJGaWVsZCkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdGaWx0ZXIgY291bGQgbm90IGJlIHJlc29sdmVkJyk7XG4gICAgfVxuICAgIHJldHVybiBTaW1wbGVGaWx0ZXIuZnJvbVF1ZXJ5KHtxdWVyeTogZmlsdGVyRmllbGQudmFsdWV9LCBmaWx0ZXJGaWVsZC5maWx0ZXJNZXRhZGF0YS5maWx0ZXJUeXBlKTtcbn1cblxuLyoqXG4gKiBFeHRyYWN0cyB0aGUgc2VsZWN0ZWQgc2VhcmNoIHR5cGUgZnJvbSBlbnVtZXJhdGlvbiBmaWVsZCBvZiB0aGUgbmF2aWdhdGlvbiBpdGVtIHRhc2sgZGF0YS5cbiAqIEByZXR1cm5zIGEge0BsaW5rIFNlYXJjaE1vZGV9IGNvbnRhaW5pbmcge0BsaW5rIFNlYXJjaE1vZGUuQURWQU5DRUR9IG9yIHtAbGluayBTZWFyY2hNb2RlLkZVTExURVhUfSBvciB7QGxpbmsgdW5kZWZpbmVkfVxuICogaWYgdW5leHBlY3RlZCB2YWx1ZSBpcyBmb3VuZFxuICogKi9cbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0U2VhcmNoVHlwZUZyb21EYXRhKGRhdGFTZWN0aW9uOiBBcnJheTxEYXRhR3JvdXA+LCB0eXBlRmllbGRJZDogc3RyaW5nKTogU2VhcmNoTW9kZSB7XG4gICAgY29uc3QgdHlwZUZpZWxkID0gZ2V0RmllbGRGcm9tRGF0YUdyb3VwcyhkYXRhU2VjdGlvbiwgdHlwZUZpZWxkSWQpO1xuICAgIGlmICh0eXBlRmllbGQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05hdmlnYXRpb24gZW50cnkgc2VhcmNoIHR5cGUgZmllbGQgY291bGQgbm90IGJlIHJlc29sdmVkJyk7XG4gICAgfVxuXG4gICAgc3dpdGNoICh0eXBlRmllbGQudmFsdWUpIHtcbiAgICAgICAgY2FzZSAnZnVsbHRleHQnOlxuICAgICAgICAgICAgcmV0dXJuIFNlYXJjaE1vZGUuRlVMTFRFWFQ7XG4gICAgICAgIGNhc2UgJ2Z1bGx0ZXh0X2FkdmFuY2VkJzpcbiAgICAgICAgICAgIHJldHVybiBTZWFyY2hNb2RlLkFEVkFOQ0VEO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgIH1cbn1cblxuLyoqXG4gKiBFeHRyYWN0cyBmaWVsZCB2YWx1ZSBmcm9tIGRhdGFcbiAqIEByZXR1cm5zIHZhbHVlIG9mIGV4dHJhY3RlZCBmaWVsZFxuICogQHRocm93cyBFcnJvciBpZiBubyBmaWVsZCBpcyBmb3VuZFxuICogKi9cbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0RmllbGRWYWx1ZUZyb21EYXRhPFQ+KGRhdGFTZWN0aW9uOiBBcnJheTxEYXRhR3JvdXA+LCBmaWVsZElkOiBzdHJpbmcpOiBUIHtcbiAgICBjb25zdCBmaWVsZCA9IGdldEZpZWxkRnJvbURhdGFHcm91cHMoZGF0YVNlY3Rpb24sIGZpZWxkSWQpO1xuICAgIGlmIChmaWVsZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgRmllbGQgJHtmaWVsZElkfSBjb3VsZCBub3QgYmUgcmVzb2x2ZWRgKTtcbiAgICB9XG4gICAgcmV0dXJuIGZpZWxkLnZhbHVlO1xufVxuIl19
@@ -55,6 +55,7 @@ export class AbstractTaskPanelComponent extends AbstractPanelWithImmediateDataCo
55
55
  this.responsiveBody = true;
56
56
  this.preventCollapse = false;
57
57
  this.hidePanelHeader = false;
58
+ this.showMoreMenu = true;
58
59
  this.thisContext = {
59
60
  canAssign: () => this.canAssign(),
60
61
  assign: () => this.assign(),
@@ -322,7 +323,7 @@ export class AbstractTaskPanelComponent extends AbstractPanelWithImmediateDataCo
322
323
  }
323
324
  }
324
325
  AbstractTaskPanelComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: AbstractTaskPanelComponent, deps: [{ token: i1.TaskContentService }, { token: i2.LoggerService }, { token: i3.TaskViewService }, { token: i4.PaperViewService }, { token: i5.TaskEventService }, { token: i6.AssignTaskService }, { token: i7.DelegateTaskService }, { token: i8.CancelTaskService }, { token: i9.FinishTaskService }, { token: i10.TaskRequestStateService }, { token: i11.TaskDataService }, { token: i12.AssignPolicyService }, { token: i13.FinishPolicyService }, { token: i14.CallChainService }, { token: i15.SubjectTaskOperations }, { token: NAE_TASK_PANEL_DISABLE_BUTTON_FUNCTIONS, optional: true }, { token: i16.TranslateService }, { token: i17.CurrencyPipe }, { token: i18.ChangedFieldsService }, { token: i19.PermissionService }, { token: i20.OverflowService, optional: true }, { token: NAE_TASK_FORCE_OPEN, optional: true }], target: i0.ɵɵFactoryTarget.Component });
325
- AbstractTaskPanelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: AbstractTaskPanelComponent, selector: "ncc-abstract-legal-notice", inputs: { taskListVirtualScroll: "taskListVirtualScroll", panelContentComponent: "panelContentComponent", selectedHeaders$: "selectedHeaders$", first: "first", last: "last", responsiveBody: "responsiveBody", preventCollapse: "preventCollapse", hidePanelHeader: "hidePanelHeader", actionButtonTemplates: "actionButtonTemplates", actionRowJustifyContent: "actionRowJustifyContent", forceLoadDataOnOpen: "forceLoadDataOnOpen", textEllipsis: "textEllipsis", taskPanelData: "taskPanelData" }, outputs: { taskEvent: "taskEvent", panelRefOutput: "panelRefOutput" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
326
+ AbstractTaskPanelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: AbstractTaskPanelComponent, selector: "ncc-abstract-legal-notice", inputs: { taskListVirtualScroll: "taskListVirtualScroll", panelContentComponent: "panelContentComponent", selectedHeaders$: "selectedHeaders$", first: "first", last: "last", responsiveBody: "responsiveBody", preventCollapse: "preventCollapse", hidePanelHeader: "hidePanelHeader", actionButtonTemplates: "actionButtonTemplates", actionRowJustifyContent: "actionRowJustifyContent", showMoreMenu: "showMoreMenu", forceLoadDataOnOpen: "forceLoadDataOnOpen", textEllipsis: "textEllipsis", taskPanelData: "taskPanelData" }, outputs: { taskEvent: "taskEvent", panelRefOutput: "panelRefOutput" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
326
327
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: AbstractTaskPanelComponent, decorators: [{
327
328
  type: Component,
328
329
  args: [{
@@ -361,6 +362,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
361
362
  type: Input
362
363
  }], actionRowJustifyContent: [{
363
364
  type: Input
365
+ }], showMoreMenu: [{
366
+ type: Input
364
367
  }], forceLoadDataOnOpen: [{
365
368
  type: Input
366
369
  }], textEllipsis: [{
@@ -372,4 +375,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
372
375
  }], taskPanelData: [{
373
376
  type: Input
374
377
  }] } });
375
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtdGFzay1wYW5lbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZXRncmlmLWNvbXBvbmVudHMtY29yZS9zcmMvbGliL3BhbmVsL3Rhc2stcGFuZWwvYWJzdHJhY3QtdGFzay1wYW5lbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILFNBQVMsRUFDVCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFHTCxRQUFRLEVBQ1IsTUFBTSxFQUdULE1BQU0sZUFBZSxDQUFDO0FBUXZCLE9BQU8sRUFBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRWpELE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUM3RCxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQU9sRSxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFPdEUsT0FBTyxFQUF3Qix1Q0FBdUMsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBRzFHLE9BQU8sRUFBQyx1Q0FBdUMsRUFBQyxNQUFNLHVDQUF1QyxDQUFDO0FBUzlGLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLDZEQUE2RCxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBUWhHLE1BQU0sT0FBZ0IsMEJBQTJCLFNBQVEsdUNBQXVDO0lBOEQ1RixZQUFnQyxtQkFBdUMsRUFDdkMsSUFBbUIsRUFDbkIsZ0JBQWlDLEVBQ2pDLFVBQTRCLEVBQzVCLGlCQUFtQyxFQUNuQyxrQkFBcUMsRUFDckMsb0JBQXlDLEVBQ3pDLGtCQUFxQyxFQUNyQyxrQkFBcUMsRUFDckMsVUFBbUMsRUFDbkMsZ0JBQWlDLEVBQ2pDLG9CQUF5QyxFQUN6QyxvQkFBeUMsRUFDekMsVUFBNEIsRUFDNUIsZUFBc0MsRUFDdUIsaUJB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QUFhLEVBQUUsQ0FBQyxhQUFhLENBQUMsWUFBWSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUM7SUFDN0YsQ0FBQzs7d0hBL1dpQiwwQkFBMEIsNmdCQTZFRix1Q0FBdUMsa05BTXZDLG1CQUFtQjs0R0FuRjNDLDBCQUEwQix1b0JBRmxDLEVBQUU7NEZBRU0sMEJBQTBCO2tCQUovQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLFFBQVEsRUFBRSxFQUFFO2lCQUNmOzswQkE4RTBCLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsdUNBQXVDOzswQkFLMUQsUUFBUTs7MEJBQ1IsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxtQkFBbUI7NENBM0VwRCxxQkFBcUI7c0JBQTdCLEtBQUs7Z0JBQ0cscUJBQXFCO3NCQUE3QixLQUFLO2dCQUNVLGdCQUFnQjtzQkFBL0IsS0FBSztnQkFDVSxLQUFLO3NCQUFwQixLQUFLO2dCQUNVLElBQUk7c0JBQW5CLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0cscUJBQXFCO3NCQUE3QixLQUFLO2dCQUNHLHVCQUF1QjtzQkFBL0IsS0FBSztnQkF5QkYsbUJBQW1CO3NCQUR0QixLQUFLO2dCQU1HLFlBQVk7c0JBQXBCLEtBQUs7Z0JBSUksU0FBUztzQkFBbEIsTUFBTTtnQkFDRyxjQUFjO3NCQUF2QixNQUFNO2dCQTZISSxhQUFhO3NCQUR2QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENvbXBvbmVudCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3B0aW9uYWwsXG4gICAgT3V0cHV0LFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFR5cGVcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge01hdEV4cGFuc2lvblBhbmVsfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9leHBhbnNpb24nO1xuaW1wb3J0IHtDb21wb25lbnRQb3J0YWx9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHtUYXNrQ29udGVudFNlcnZpY2V9IGZyb20gJy4uLy4uL3Rhc2stY29udGVudC9zZXJ2aWNlcy90YXNrLWNvbnRlbnQuc2VydmljZSc7XG5pbXBvcnQge0xvZ2dlclNlcnZpY2V9IGZyb20gJy4uLy4uL2xvZ2dlci9zZXJ2aWNlcy9sb2dnZXIuc2VydmljZSc7XG5pbXBvcnQge1Rhc2tQYW5lbERhdGF9IGZyb20gJy4uL3Rhc2stcGFuZWwtbGlzdC90YXNrLXBhbmVsLWRhdGEvdGFzay1wYW5lbC1kYXRhJztcbmltcG9ydCB7T2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcbmltcG9ydCB7VGFza1ZpZXdTZXJ2aWNlfSBmcm9tICcuLi8uLi92aWV3L3Rhc2stdmlldy9zZXJ2aWNlL3Rhc2stdmlldy5zZXJ2aWNlJztcbmltcG9ydCB7ZmlsdGVyLCBtYXAsIHRha2V9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7SGVhZGVyQ29sdW1ufSBmcm9tICcuLi8uLi9oZWFkZXIvbW9kZWxzL2hlYWRlci1jb2x1bW4nO1xuaW1wb3J0IHt0b01vbWVudH0gZnJvbSAnLi4vLi4vcmVzb3VyY2VzL3R5cGVzL25hZS1kYXRlLXR5cGUnO1xuaW1wb3J0IHtEQVRFX1RJTUVfRk9STUFUX1NUUklOR30gZnJvbSAnLi4vLi4vbW9tZW50L3RpbWUtZm9ybWF0cyc7XG5pbXBvcnQge1BhcGVyVmlld1NlcnZpY2V9IGZyb20gJy4uLy4uL25hdmlnYXRpb24vcXVpY2stcGFuZWwvY29tcG9uZW50cy9wYXBlci12aWV3LnNlcnZpY2UnO1xuaW1wb3J0IHtUYXNrRXZlbnRTZXJ2aWNlfSBmcm9tICcuLi8uLi90YXNrLWNvbnRlbnQvc2VydmljZXMvdGFzay1ldmVudC5zZXJ2aWNlJztcbmltcG9ydCB7QXNzaWduVGFza1NlcnZpY2V9IGZyb20gJy4uLy4uL3Rhc2svc2VydmljZXMvYXNzaWduLXRhc2suc2VydmljZSc7XG5pbXBvcnQge0RlbGVnYXRlVGFza1NlcnZpY2V9IGZyb20gJy4uLy4uL3Rhc2svc2VydmljZXMvZGVsZWdhdGUtdGFzay5zZXJ2aWNlJztcbmltcG9ydCB7Q2FuY2VsVGFza1NlcnZpY2V9IGZyb20gJy4uLy4uL3Rhc2svc2VydmljZXMvY2FuY2VsLXRhc2suc2VydmljZSc7XG5pbXBvcnQge0ZpbmlzaFRhc2tTZXJ2aWNlfSBmcm9tICcuLi8uLi90YXNrL3NlcnZpY2VzL2ZpbmlzaC10YXNrLnNlcnZpY2UnO1xuaW1wb3J0IHtUYXNrTWV0YUZpZWxkfSBmcm9tICcuLi8uLi9oZWFkZXIvdGFzay1oZWFkZXIvdGFzay1tZXRhLWVudW0nO1xuaW1wb3J0IHtUYXNrUmVxdWVzdFN0YXRlU2VydmljZX0gZnJvbSAnLi4vLi4vdGFzay9zZXJ2aWNlcy90YXNrLXJlcXVlc3Qtc3RhdGUuc2VydmljZSc7XG5pbXBvcnQge1Rhc2tEYXRhU2VydmljZX0gZnJvbSAnLi4vLi4vdGFzay9zZXJ2aWNlcy90YXNrLWRhdGEuc2VydmljZSc7XG5pbXBvcnQge0Fzc2lnblBvbGljeVNlcnZpY2V9IGZyb20gJy4uLy4uL3Rhc2svc2VydmljZXMvYXNzaWduLXBvbGljeS5zZXJ2aWNlJztcbmltcG9ydCB7U3ViamVjdFRhc2tPcGVyYXRpb25zfSBmcm9tICcuLi8uLi90YXNrL21vZGVscy9zdWJqZWN0LXRhc2stb3BlcmF0aW9ucyc7XG5pbXBvcnQge0NhbGxDaGFpblNlcnZpY2V9IGZyb20gJy4uLy4uL3V0aWxpdHkvY2FsbC1jaGFpbi9jYWxsLWNoYWluLnNlcnZpY2UnO1xuaW1wb3J0IHtUYXNrRXZlbnROb3RpZmljYXRpb259IGZyb20gJy4uLy4uL3Rhc2stY29udGVudC9tb2RlbC90YXNrLWV2ZW50LW5vdGlmaWNhdGlvbic7XG5pbXBvcnQge0Rpc2FibGVCdXR0b25GdW50aW9ucywgTkFFX1RBU0tfUEFORUxfRElTQUJMRV9CVVRUT05fRlVOQ1RJT05TfSBmcm9tICcuL21vZGVscy9kaXNhYmxlLWZ1bmN0aW9ucyc7XG5pbXBvcnQge1Rhc2t9IGZyb20gJy4uLy4uL3Jlc291cmNlcy9pbnRlcmZhY2UvdGFzayc7XG5pbXBvcnQge0NoYW5nZWRGaWVsZHN9IGZyb20gJy4uLy4uL2RhdGEtZmllbGRzL21vZGVscy9jaGFuZ2VkLWZpZWxkcyc7XG5pbXBvcnQge0Fic3RyYWN0UGFuZWxXaXRoSW1tZWRpYXRlRGF0YUNvbXBvbmVudH0gZnJvbSAnLi4vYWJzdHJhY3QvcGFuZWwtd2l0aC1pbW1lZGlhdGUtZGF0YSc7XG5pbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtGZWF0dXJlZFZhbHVlfSBmcm9tICcuLi9hYnN0cmFjdC9mZWF0dXJlZC12YWx1ZSc7XG5pbXBvcnQge0N1cnJlbmN5UGlwZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7UGVybWlzc2lvblNlcnZpY2V9IGZyb20gJy4uLy4uL2F1dGhvcml6YXRpb24vcGVybWlzc2lvbi9wZXJtaXNzaW9uLnNlcnZpY2UnO1xuaW1wb3J0IHtDaGFuZ2VkRmllbGRzU2VydmljZX0gZnJvbSAnLi4vLi4vY2hhbmdlZC1maWVsZHMvc2VydmljZXMvY2hhbmdlZC1maWVsZHMuc2VydmljZSc7XG5pbXBvcnQge0NoYW5nZWRGaWVsZHNNYXB9IGZyb20gJy4uLy4uL2V2ZW50L3NlcnZpY2VzL2ludGVyZmFjZXMvY2hhbmdlZC1maWVsZHMtbWFwJztcbmltcG9ydCB7VGFza1BhbmVsQ29udGV4dH0gZnJvbSAnLi9tb2RlbHMvdGFzay1wYW5lbC1jb250ZXh0JztcbmltcG9ydCB7T3ZlcmZsb3dTZXJ2aWNlfSBmcm9tICcuLi8uLi9oZWFkZXIvc2VydmljZXMvb3ZlcmZsb3cuc2VydmljZSc7XG5pbXBvcnQge05BRV9UQVNLX0ZPUkNFX09QRU59IGZyb20gJy4uLy4uL3ZpZXcvdGFzay12aWV3L21vZGVscy9pbmplY3Rpb24tdG9rZW4tdGFzay1mb3JjZS1vcGVuJztcbmltcG9ydCB7Q2RrVmlydHVhbFNjcm9sbFZpZXdwb3J0fSBmcm9tICdAYW5ndWxhci9jZGsvc2Nyb2xsaW5nJztcbmltcG9ydCB7IEZpbmlzaFBvbGljeVNlcnZpY2UgfSBmcm9tICcuLi8uLi90YXNrL3NlcnZpY2VzL2ZpbmlzaC1wb2xpY3kuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmNjLWFic3RyYWN0LWxlZ2FsLW5vdGljZScsXG4gICAgdGVtcGxhdGU6ICcnXG59KVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0VGFza1BhbmVsQ29tcG9uZW50IGV4dGVuZHMgQWJzdHJhY3RQYW5lbFdpdGhJbW1lZGlhdGVEYXRhQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuXG4gICAgLyoqXG4gICAgICogQGlnbm9yZVxuICAgICAqIFNldCBieSBhbiBASW5wdXQoKSBvbiBhIHNldHRlciBmdW5jdGlvbiwgdGhhdCBhbHNvIHJlc29sdmVzIGZlYXR1cmVkIGZpZWxkcy5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgX3Rhc2tQYW5lbERhdGE6IFRhc2tQYW5lbERhdGE7XG4gICAgcHJvdGVjdGVkIF9mb3JjZUxvYWREYXRhT25PcGVuID0gZmFsc2U7XG4gICAgQElucHV0KCkgdGFza0xpc3RWaXJ0dWFsU2Nyb2xsOiBDZGtWaXJ0dWFsU2Nyb2xsVmlld3BvcnQ7XG4gICAgQElucHV0KCkgcGFuZWxDb250ZW50Q29tcG9uZW50OiBUeXBlPGFueT47XG4gICAgQElucHV0KCkgcHVibGljIHNlbGVjdGVkSGVhZGVycyQ6IE9ic2VydmFibGU8QXJyYXk8SGVhZGVyQ29sdW1uPj47XG4gICAgQElucHV0KCkgcHVibGljIGZpcnN0OiBib29sZWFuO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBsYXN0OiBib29sZWFuO1xuICAgIEBJbnB1dCgpIHJlc3BvbnNpdmVCb2R5ID0gdHJ1ZTtcbiAgICBASW5wdXQoKSBwcmV2ZW50Q29sbGFwc2UgPSBmYWxzZTtcbiAgICBASW5wdXQoKSBoaWRlUGFuZWxIZWFkZXIgPSBmYWxzZTtcbiAgICBASW5wdXQoKSBhY3Rpb25CdXR0b25UZW1wbGF0ZXM6IEFycmF5PFRlbXBsYXRlUmVmPGFueT4+O1xuICAgIEBJbnB1dCgpIGFjdGlvblJvd0p1c3RpZnlDb250ZW50OiAnc3BhY2UtYmV0d2VlbicgfCAnZmxleC1zdGFydCcgfCAnZmxleC1lbmQnIHwgJ2NlbnRlcicgfCAnc3BhY2UtYXJvdW5kJyB8XG4gICAgICAgICdpbml0aWFsJyB8ICdzdGFydCcgfCAnZW5kJyB8ICdsZWZ0JyB8ICdyaWdodCcgfCAncmV2ZXJ0JyB8ICdpbmhlcml0JyB8ICd1bnNldCdcblxuICAgIHRoaXNDb250ZXh0OiBUYXNrUGFuZWxDb250ZXh0ID0ge1xuICAgICAgICBjYW5Bc3NpZ246ICgpID0+IHRoaXMuY2FuQXNzaWduKCksXG4gICAgICAgIGFzc2lnbjogKCkgPT4gdGhpcy5hc3NpZ24oKSxcbiAgICAgICAgZ2V0QXNzaWduVGl0bGU6ICgpID0+IHRoaXMuZ2V0QXNzaWduVGl0bGUoKSxcbiAgICAgICAgZGVsZWdhdGU6ICgpID0+IHRoaXMuZGVsZWdhdGUoKSxcbiAgICAgICAgZ2V0RGVsZWdhdGVUaXRsZTogKCkgPT4gdGhpcy5nZXREZWxlZ2F0ZVRpdGxlKCksXG4gICAgICAgIGNhblJlYXNzaWduOiAoKSA9PiB0aGlzLmNhblJlYXNzaWduKCksXG4gICAgICAgIGNhbkNhbmNlbDogKCkgPT4gdGhpcy5jYW5DYW5jZWwoKSxcbiAgICAgICAgY2FuY2VsOiAoKSA9PiB0aGlzLmNhbmNlbCgpLFxuICAgICAgICBnZXRDYW5jZWxUaXRsZTogKCkgPT4gdGhpcy5nZXRDYW5jZWxUaXRsZSgpLFxuICAgICAgICBjYW5GaW5pc2g6ICgpID0+IHRoaXMuY2FuRmluaXNoKCksXG4gICAgICAgIGZpbmlzaDogKCkgPT4gdGhpcy5maW5pc2goKSxcbiAgICAgICAgZ2V0RmluaXNoVGl0bGU6ICgpID0+IHRoaXMuZ2V0RmluaXNoVGl0bGUoKSxcbiAgICAgICAgY2FuQ29sbGFwc2U6ICgpID0+IHRoaXMuY2FuQ29sbGFwc2UoKSxcbiAgICAgICAgY29sbGFwc2U6ICgpID0+IHRoaXMuY29sbGFwc2UoKSxcbiAgICAgICAgY2FuRGlzYWJsZTogKGFyZzogc3RyaW5nKSA9PiB0aGlzLmNhbkRpc2FibGUoYXJnKSxcbiAgICAgICAgY2FuRG86IChhcmc6IHN0cmluZykgPT4gdGhpcy5jYW5EbyhhcmcpLFxuICAgICAgICBpc0xvYWRpbmc6ICgpID0+IHRoaXMuaXNMb2FkaW5nXG4gICAgfTtcblxuXG4gICAgQElucHV0KClcbiAgICBzZXQgZm9yY2VMb2FkRGF0YU9uT3Blbihmb3JjZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9mb3JjZUxvYWREYXRhT25PcGVuID0gZm9yY2U7XG4gICAgICAgIHRoaXMuX2Fzc2lnblBvbGljeVNlcnZpY2UuZm9yY2VkID0gZm9yY2U7XG4gICAgfVxuXG4gICAgQElucHV0KCkgdGV4dEVsbGlwc2lzID0gZmFsc2U7XG4gICAgLyoqXG4gICAgICogRW1pdHMgbm90aWZpY2F0aW9ucyBhYm91dCB0YXNrIGV2ZW50c1xuICAgICAqL1xuICAgIEBPdXRwdXQoKSB0YXNrRXZlbnQ6IEV2ZW50RW1pdHRlcjxUYXNrRXZlbnROb3RpZmljYXRpb24+O1xuICAgIEBPdXRwdXQoKSBwYW5lbFJlZk91dHB1dDogRXZlbnRFbWl0dGVyPE1hdEV4cGFuc2lvblBhbmVsPjtcblxuICAgIHB1YmxpYyBwb3J0YWw6IENvbXBvbmVudFBvcnRhbDxhbnk+O1xuICAgIHB1YmxpYyBwYW5lbFJlZjogTWF0RXhwYW5zaW9uUGFuZWw7XG4gICAgcHJvdGVjdGVkIF9zdWI6IFN1YnNjcmlwdGlvbjtcbiAgICBwcm90ZWN0ZWQgX3N1YlRhc2tFdmVudDogU3Vic2NyaXB0aW9uO1xuICAgIHByb3RlY3RlZCBfc3ViVGFza0RhdGE6IFN1YnNjcmlwdGlvbjtcbiAgICBwcm90ZWN0ZWQgX3N1YlBhbmVsVXBkYXRlOiBTdWJzY3JpcHRpb247XG4gICAgcHJvdGVjdGVkIF90YXNrRGlzYWJsZUJ1dHRvbkZ1bmN0aW9uczogRGlzYWJsZUJ1dHRvbkZ1bnRpb25zO1xuXG4gICAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBfdGFza0NvbnRlbnRTZXJ2aWNlOiBUYXNrQ29udGVudFNlcnZpY2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfbG9nOiBMb2dnZXJTZXJ2aWNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX3Rhc2tWaWV3U2VydmljZTogVGFza1ZpZXdTZXJ2aWNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX3BhcGVyVmlldzogUGFwZXJWaWV3U2VydmljZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvdGVjdGVkIF90YXNrRXZlbnRTZXJ2aWNlOiBUYXNrRXZlbnRTZXJ2aWNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX2Fzc2lnblRhc2tTZXJ2aWNlOiBBc3NpZ25UYXNrU2VydmljZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvdGVjdGVkIF9kZWxlZ2F0ZVRhc2tTZXJ2aWNlOiBEZWxlZ2F0ZVRhc2tTZXJ2aWNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX2NhbmNlbFRhc2tTZXJ2aWNlOiBDYW5jZWxUYXNrU2VydmljZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvdGVjdGVkIF9maW5pc2hUYXNrU2VydmljZTogRmluaXNoVGFza1NlcnZpY2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfdGFza1N0YXRlOiBUYXNrUmVxdWVzdFN0YXRlU2VydmljZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvdGVjdGVkIF90YXNrRGF0YVNlcnZpY2U6IFRhc2tEYXRhU2VydmljZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvdGVjdGVkIF9hc3NpZ25Qb2xpY3lTZXJ2aWNlOiBBc3NpZ25Qb2xpY3lTZXJ2aWNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX2ZpbmlzaFBvbGljeVNlcnZpY2U6IEZpbmlzaFBvbGljeVNlcnZpY2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfY2FsbENoYWluOiBDYWxsQ2hhaW5TZXJ2aWNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX3Rhc2tPcGVyYXRpb25zOiBTdWJqZWN0VGFza09wZXJhdGlvbnMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoTkFFX1RBU0tfUEFORUxfRElTQUJMRV9CVVRUT05fRlVOQ1RJT05TKSBwcm90ZWN0ZWQgX2Rpc2FibGVGdW5jdGlvbnM6IERpc2FibGVCdXR0b25GdW50aW9ucyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvdGVjdGVkIF90cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfY3VycmVuY3lQaXBlOiBDdXJyZW5jeVBpcGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfY2hhbmdlZEZpZWxkc1NlcnZpY2U6IENoYW5nZWRGaWVsZHNTZXJ2aWNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX3Blcm1pc3Npb25TZXJ2aWNlOiBQZXJtaXNzaW9uU2VydmljZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgb3ZlcmZsb3dTZXJ2aWNlOiBPdmVyZmxvd1NlcnZpY2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoTkFFX1RBU0tfRk9SQ0VfT1BFTikgcHJvdGVjdGVkIF90YXNrRm9yY2VPcGVuOiBib29sZWFuKSB7XG4gICAgICAgIHN1cGVyKF90cmFuc2xhdGUsIF9jdXJyZW5jeVBpcGUsIG92ZXJmbG93U2VydmljZSk7XG4gICAgICAgIHRoaXMudGFza0V2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxUYXNrRXZlbnROb3RpZmljYXRpb24+KCk7XG4gICAgICAgIHRoaXMucGFuZWxSZWZPdXRwdXQgPSBuZXcgRXZlbnRFbWl0dGVyPE1hdEV4cGFuc2lvblBhbmVsPigpO1xuICAgICAgICB0aGlzLl9zdWJUYXNrRXZlbnQgPSBfdGFza0V2ZW50U2VydmljZS50YXNrRXZlbnROb3RpZmljYXRpb25zJC5zdWJzY3JpYmUoZXZlbnQgPT4ge1xuICAgICAgICAgICAgdGhpcy50YXNrRXZlbnQuZW1pdChldmVudCk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLl9zdWJUYXNrRGF0YSA9IF9jaGFuZ2VkRmllbGRzU2VydmljZS5jaGFuZ2VkRmllbGRzJC5zdWJzY3JpYmUoKGNoYW5nZWRGaWVsZHNNYXA6IENoYW5nZWRGaWVsZHNNYXApID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGZpbHRlcmVkQ2FzZUlkczogQXJyYXk8c3RyaW5nPiA9IE9iamVjdC5rZXlzKGNoYW5nZWRGaWVsZHNNYXApLmZpbHRlcihcbiAgICAgICAgICAgICAgICBjYXNlSWQgPT4gT2JqZWN0LmtleXModGhpcy5fdGFza0NvbnRlbnRTZXJ2aWNlLnJlZmVyZW5jZWRUYXNrQW5kQ2FzZUlkcykuaW5jbHVkZXMoY2FzZUlkKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGNvbnN0IGNoYW5nZWRGaWVsZHM6IEFycmF5PENoYW5nZWRGaWVsZHM+ID0gW107XG4gICAgICAgICAgICBmaWx0ZXJlZENhc2VJZHMuZm9yRWFjaChjYXNlSWQgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRhc2tJZHM6IEFycmF5PHN0cmluZz4gPSB0aGlzLl90YXNrQ29udGVudFNlcnZpY2UucmVmZXJlbmNlZFRhc2tBbmRDYXNlSWRzW2Nhc2VJZF07XG4gICAgICAgICAgICAgICAgY2hhbmdlZEZpZWxkcy5wdXNoKC4uLnRoaXMuX2NoYW5nZWRGaWVsZHNTZXJ2aWNlLnBhcnNlQ2hhbmdlZEZpZWxkc0J5Q2FzZUFuZFRhc2tJZHMoY2FzZUlkLCB0YXNrSWRzLCBjaGFuZ2VkRmllbGRzTWFwKSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNoYW5nZWRGaWVsZHMuZmlsdGVyKGZpZWxkcyA9PiBmaWVsZHMgIT09IHVuZGVmaW5lZCkuZm9yRWFjaChmaWVsZHMgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMudGFza1BhbmVsRGF0YS5jaGFuZ2VkRmllbGRzLm5leHQoZmllbGRzKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgICAgX3Rhc2tPcGVyYXRpb25zLm9wZW4kLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmV4cGFuZCgpO1xuICAgICAgICB9KTtcbiAgICAgICAgX3Rhc2tPcGVyYXRpb25zLmNsb3NlJC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKCF0aGlzLl90YXNrRm9yY2VPcGVuKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jb2xsYXBzZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgX3Rhc2tPcGVyYXRpb25zLnJlbG9hZCQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX3Rhc2tWaWV3U2VydmljZS5yZWxvYWRDdXJyZW50UGFnZSgpO1xuICAgICAgICB9KTtcbiAgICAgICAgX3Rhc2tPcGVyYXRpb25zLmZvcmNlUmVsb2FkJC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fdGFza1ZpZXdTZXJ2aWNlLnJlbG9hZEN1cnJlbnRQYWdlKHRydWUpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5fdGFza0Rpc2FibGVCdXR0b25GdW5jdGlvbnMgPSB7XG4gICAgICAgICAgICBmaW5pc2g6ICh0OiBUYXNrKSA9PiBmYWxzZSxcbiAgICAgICAgICAgIGFzc2lnbjogKHQ6IFRhc2spID0+IGZhbHNlLFxuICAgICAgICAgICAgZGVsZWdhdGU6ICh0OiBUYXNrKSA9PiBmYWxzZSxcbiAgICAgICAgICAgIHJlYXNzaWduOiAodDogVGFzaykgPT4gZmFsc2UsXG4gICAgICAgICAgICBjYW5jZWw6ICh0OiBUYXNrKSA9PiBmYWxzZSxcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKF9kaXNhYmxlRnVuY3Rpb25zKSB7XG4gICAgICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMuX3Rhc2tEaXNhYmxlQnV0dG9uRnVuY3Rpb25zLCBfZGlzYWJsZUZ1bmN0aW9ucyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAgICAgdGhpcy5fdGFza0NvbnRlbnRTZXJ2aWNlLnRhc2sgPSB0aGlzLl90YXNrUGFuZWxEYXRhLnRhc2s7XG5cbiAgICAgICAgdGhpcy5jcmVhdGVDb250ZW50UG9ydGFsKCk7XG4gICAgICAgIHRoaXMuX3N1YiA9IHRoaXMuX3Rhc2tQYW5lbERhdGEuY2hhbmdlZEZpZWxkcy5zdWJzY3JpYmUoY2hGaWVsZHMgPT4ge1xuICAgICAgICAgICAgdGhpcy5fdGFza0NvbnRlbnRTZXJ2aWNlLnVwZGF0ZUZyb21DaGFuZ2VkRmllbGRzKGNoRmllbGRzKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5fc3ViUGFuZWxVcGRhdGUgPSB0aGlzLl90YXNrVmlld1NlcnZpY2UucGFuZWxVcGRhdGUucGlwZShcbiAgICAgICAgICAgIG1hcChhID0+IGEuZmluZChwID0+IHAudGFzay5zdHJpbmdJZCA9PT0gdGhpcy50YXNrUGFuZWxEYXRhLnRhc2suc3RyaW5nSWQpKSxcbiAgICAgICAgICAgIGZpbHRlcihwID0+ICEhcClcbiAgICAgICAgKS5zdWJzY3JpYmUodmFsdWUgPT4ge1xuICAgICAgICAgICAgdGhpcy5yZXNvbHZlRmVhdHVyZWRGaWVsZHNWYWx1ZXMoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICB0aGlzLnBhbmVsUmVmLm9wZW5lZC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fdGFza0NvbnRlbnRTZXJ2aWNlLmV4cGFuc2lvblN0YXJ0ZWQoKTtcbiAgICAgICAgICAgIGlmICghdGhpcy5fdGFza1N0YXRlLmlzTG9hZGluZygpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fYXNzaWduUG9saWN5U2VydmljZS5wZXJmb3JtQXNzaWduUG9saWN5KHRydWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5wYW5lbFJlZi5jbG9zZWQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIGlmICghdGhpcy5fdGFza1N0YXRlLmlzTG9hZGluZygpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fYXNzaWduUG9saWN5U2VydmljZS5wZXJmb3JtQXNzaWduUG9saWN5KGZhbHNlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMucGFuZWxSZWYuYWZ0ZXJFeHBhbmQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX3Rhc2tDb250ZW50U2VydmljZS4kc2hvdWxkQ3JlYXRlLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl90YXNrQ29udGVudFNlcnZpY2UuYmxvY2tGaWVsZHModGhpcy5oYXNOb0ZpbmlzaFBlcm1pc3Npb24oKSk7XG4gICAgICAgICAgICAgICAgdGhpcy5fdGFza1BhbmVsRGF0YS5pbml0aWFsbHlFeHBhbmRlZCA9IHRydWU7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMuX3Rhc2tDb250ZW50U2VydmljZS5leHBhbnNpb25GaW5pc2hlZCgpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5wYW5lbFJlZi5hZnRlckNvbGxhcHNlLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl90YXNrUGFuZWxEYXRhLmluaXRpYWxseUV4cGFuZGVkID0gZmFsc2U7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmICh0aGlzLl90YXNrUGFuZWxEYXRhLmluaXRpYWxseUV4cGFuZGVkIHx8IHRoaXMuX3Rhc2tGb3JjZU9wZW4pIHtcbiAgICAgICAgICAgIHRoaXMucGFuZWxSZWYuZXhwYW5kZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IGNyZWF0ZUNvbnRlbnRQb3J0YWwoKTogdm9pZDtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCB0YXNrUGFuZWxEYXRhKGRhdGE6IFRhc2tQYW5lbERhdGEpIHtcbiAgICAgICAgdGhpcy5fdGFza1BhbmVsRGF0YSA9IGRhdGE7XG4gICAgICAgIHRoaXMucmVzb2x2ZUZlYXR1cmVkRmllbGRzVmFsdWVzKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCB0YXNrUGFuZWxEYXRhKCk6IFRhc2tQYW5lbERhdGEge1xuICAgICAgICByZXR1cm4gdGhpcy5fdGFza1BhbmVsRGF0YTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGlzTG9hZGluZygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Rhc2tTdGF0ZS5pc0xvYWRpbmcoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RvcExvYWRpbmcoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3Rhc2tTdGF0ZS5zdG9wTG9hZGluZyh0aGlzLl90YXNrUGFuZWxEYXRhLnRhc2suc3RyaW5nSWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBwcmV2ZW50UGFuZWxPcGVuKCRldmVudDogTW91c2VFdmVudCk6IGJvb2xlYW4ge1xuICAgICAgICAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNQYXBlclZpZXcoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9wYXBlclZpZXcucGFwZXJWaWV3O1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRQYW5lbFJlZihwYW5lbFJlZjogTWF0RXhwYW5zaW9uUGFuZWwpIHtcbiAgICAgICAgdGhpcy5wYW5lbFJlZiA9IHBhbmVsUmVmO1xuICAgICAgICB0aGlzLnBhbmVsUmVmT3V0cHV0LmVtaXQocGFuZWxSZWYpO1xuICAgIH1cblxuICAgIGFzc2lnbigpIHtcbiAgICAgICAgdGhpcy5fYXNzaWduVGFza1NlcnZpY2UuYXNzaWduKHRoaXMuX2NhbGxDaGFpbi5jcmVhdGUoKGFmdGVyQWN0aW9uID0+IHtcbiAgICAgICAgICAgIGlmIChhZnRlckFjdGlvbikge1xuICAgICAgICAgICAgICAgIHRoaXMuX3Rhc2tEYXRhU2VydmljZS5pbml0aWFsaXplVGFza0RhdGFGaWVsZHMoKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9maW5pc2hQb2xpY3lTZXJ2aWNlLnBlcmZvcm1GaW5pc2hQb2xpY3koKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSkpKTtcbiAgICB9XG5cbiAgICBkZWxlZ2F0ZSgpIHtcbiAgICAgICAgdGhpcy5fZGVsZWdhdGVUYXNrU2VydmljZS5kZWxlZ2F0ZSgpO1xuICAgIH1cblxuICAgIGNhbmNlbCgpIHtcbiAgICAgICAgdGhpcy5fY2FuY2VsVGFza1NlcnZpY2UuY2FuY2VsKHRoaXMuX2NhbGxDaGFpbi5jcmVhdGUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fdGFza09wZXJhdGlvbnMucmVsb2FkKCk7XG4gICAgICAgICAgICB0aGlzLl90YXNrT3BlcmF0aW9ucy5jbG9zZSgpO1xuICAgICAgICB9KSk7XG4gICAgfVxuXG4gICAgZmluaXNoKCkge1xuICAgICAgICBpZiAoIXRoaXMuX3Rhc2tDb250ZW50U2VydmljZS52YWxpZGF0ZVRhc2tEYXRhKCkpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLl90YXNrQ29udGVudFNlcnZpY2UudGFzay5kYXRhU2l6ZSA8PSAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fdGFza0RhdGFTZXJ2aWNlLmluaXRpYWxpemVUYXNrRGF0YUZpZWxkcygpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgaW52YWxpZEZpZWxkcyA9IHRoaXMuX3Rhc2tDb250ZW50U2VydmljZS5nZXRJbnZhbGlkVGFza0RhdGEoKTtcbiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGludmFsaWRGaWVsZHNbMF0uc3RyaW5nSWQpLnNjcm9sbEludG9WaWV3KHtcbiAgICAgICAgICAgICAgICBiZWhhdmlvcjogJ3Ntb290aCcsXG4gICAgICAgICAgICAgICAgYmxvY2s6ICdzdGFydCcsXG4gICAgICAgICAgICAgICAgaW5saW5lOiAnbmVhcmVzdCdcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fZmluaXNoVGFza1NlcnZpY2UudmFsaWRhdGVEYXRhQW5kRmluaXNoKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjb2xsYXBzZSgpIHtcbiAgICAgICAgdGhpcy5wYW5lbFJlZi5jbG9zZSgpO1xuICAgICAgICB0aGlzLnBhbmVsUmVmLmV4cGFuZGVkID0gZmFsc2U7XG4gICAgfVxuXG4gICAgZXhwYW5kKCkge1xuICAgICAgICB0aGlzLnBhbmVsUmVmLm9wZW4oKTtcbiAgICAgICAgdGhpcy5wYW5lbFJlZi5leHBhbmRlZCA9IHRydWU7XG4gICAgfVxuXG4gICAgcHVibGljIGNhbkFzc2lnbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Blcm1pc3Npb25TZXJ2aWNlLmNhbkFzc2lnbih0aGlzLnRhc2tQYW5lbERhdGEudGFzaykgJiYgdGhpcy5nZXRBc3NpZ25UaXRsZSgpICE9PSAnJztcbiAgICB9XG5cbiAgICBwdWJsaWMgY2FuUmVhc3NpZ24oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9wZXJtaXNzaW9uU2VydmljZS5jYW5SZWFzc2lnbih0aGlzLnRhc2tQYW5lbERhdGEudGFzayk7XG4gICAgfVxuXG4gICAgcHVibGljIGNhbkNhbmNlbCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Blcm1pc3Npb25TZXJ2aWNlLmNhbkNhbmNlbCh0aGlzLnRhc2tQYW5lbERhdGEudGFzaykgJiYgdGhpcy5nZXRDYW5jZWxUaXRsZSgpICE9PSAnJztcbiAgICB9XG5cbiAgICBwdWJsaWMgY2FuRmluaXNoKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fcGVybWlzc2lvblNlcnZpY2UuY2FuRmluaXNoKHRoaXMudGFza1BhbmVsRGF0YS50YXNrKSAmJiB0aGlzLmdldEZpbmlzaFRpdGxlKCkgIT09ICcnO1xuICAgIH1cblxuICAgIHByaXZhdGUgaGFzTm9GaW5pc2hQZXJtaXNzaW9uKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXRoaXMuX3Blcm1pc3Npb25TZXJ2aWNlLmNhbkZpbmlzaCh0aGlzLnRhc2tQYW5lbERhdGEudGFzaylcbiAgICB9XG5cbiAgICBwdWJsaWMgY2FuQ29sbGFwc2UoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl90YXNrRm9yY2VPcGVuID8gZmFsc2UgOiB0aGlzLl9wZXJtaXNzaW9uU2VydmljZS5jYW5Db2xsYXBzZSh0aGlzLnRhc2tQYW5lbERhdGEudGFzayk7XG4gICAgfVxuXG4gICAgcHVibGljIGNhbkRvKGFjdGlvbik6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fcGVybWlzc2lvblNlcnZpY2UuaGFzVGFza1Blcm1pc3Npb24odGhpcy50YXNrUGFuZWxEYXRhLnRhc2ssIGFjdGlvbikgJiYgdGhpcy5nZXREZWxlZ2F0ZVRpdGxlKCkgIT09ICcnO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRBc3NpZ25UaXRsZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gKHRoaXMudGFza1BhbmVsRGF0YS50YXNrLmFzc2lnblRpdGxlID09PSAnJyB8fCB0aGlzLnRhc2tQYW5lbERhdGEudGFzay5hc3NpZ25UaXRsZSlcbiAgICAgICAgICAgID8gdGhpcy50YXNrUGFuZWxEYXRhLnRhc2suYXNzaWduVGl0bGUgOiAndGFza3Mudmlldy5hc3NpZ24nO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRDYW5jZWxUaXRsZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gKHRoaXMudGFza1BhbmVsRGF0YS50YXNrLmNhbmNlbFRpdGxlID09PSAnJyB8fCB0aGlzLnRhc2tQYW5lbERhdGEudGFzay5jYW5jZWxUaXRsZSlcbiAgICAgICAgICAgID8gdGhpcy50YXNrUGFuZWxEYXRhLnRhc2suY2FuY2VsVGl0bGUgOiAndGFza3Mudmlldy5jYW5jZWwnO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXREZWxlZ2F0ZVRpdGxlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiAodGhpcy50YXNrUGFuZWxEYXRhLnRhc2suZGVsZWdhdGVUaXRsZSA9PT0gJycgfHwgdGhpcy50YXNrUGFuZWxEYXRhLnRhc2suZGVsZWdhdGVUaXRsZSlcbiAgICAgICAgICAgID8gdGhpcy50YXNrUGFuZWxEYXRhLnRhc2suZGVsZWdhdGVUaXRsZSA6ICd0YXNrcy52aWV3LmRlbGVnYXRlJztcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0RmluaXNoVGl0bGUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuICh0aGlzLnRhc2tQYW5lbERhdGEudGFzay5maW5pc2hUaXRsZSA9PT0gJycgfHwgdGhpcy50YXNrUGFuZWxEYXRhLnRhc2suZmluaXNoVGl0bGUpXG4gICAgICAgICAgICA/IHRoaXMudGFza1BhbmVsRGF0YS50YXNrLmZpbmlzaFRpdGxlIDogJ3Rhc2tzLnZpZXcuZmluaXNoJztcbiAgICB9XG5cbiAgICBwdWJsaWMgY2FuRGlzYWJsZSh0eXBlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgbGV0IGRpc2FibGUgPSBmYWxzZTtcbiAgICAgICAgaWYgKCEhdGhpcy50YXNrUGFuZWxEYXRhICYmICEhdGhpcy50YXNrUGFuZWxEYXRhLnRhc2spIHtcbiAgICAgICAgICAgIGRpc2FibGUgPSBkaXNhYmxlXG4gICAgICAgICAgICAgICAgfHwgISF0aGlzLl90YXNrU3RhdGUuaXNMb2FkaW5nKHRoaXMudGFza1BhbmVsRGF0YS50YXNrLnN0cmluZ0lkKVxuICAgICAgICAgICAgICAgIHx8ICEhdGhpcy5fdGFza1N0YXRlLmlzVXBkYXRpbmcodGhpcy50YXNrUGFuZWxEYXRhLnRhc2suc3RyaW5nSWQpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBkaXNhYmxlIHx8IHRoaXMuX3Rhc2tEaXNhYmxlQnV0dG9uRnVuY3Rpb25zW3R5cGVdKHsuLi50aGlzLl90YXNrQ29udGVudFNlcnZpY2UudGFza30pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXRGZWF0dXJlZE1ldGFWYWx1ZShzZWxlY3RlZEhlYWRlcjogSGVhZGVyQ29sdW1uKTogRmVhdHVyZWRWYWx1ZSB7XG4gICAgICAgIGNvbnN0IHRhc2sgPSB0aGlzLl90YXNrUGFuZWxEYXRhLnRhc2s7XG4gICAgICAgIHN3aXRjaCAoc2VsZWN0ZWRIZWFkZXIuZmllbGRJZGVudGlmaWVyKSB7XG4gICAgICAgICAgICBjYXNlIFRhc2tNZXRhRmllbGQuQ0FTRTpcbiAgICAgICAgICAgICAgICByZXR1cm4ge3ZhbHVlOiB0YXNrLmNhc2VUaXRsZSwgaWNvbjogJycsIHR5cGU6ICdtZXRhJ307XG4gICAgICAgICAgICBjYXNlIFRhc2tNZXRhRmllbGQuQ0FTRV9JRDpcbiAgICAgICAgICAgICAgICByZXR1cm4ge3ZhbHVlOiB0YXNrLmNhc2VJZCwgaWNvbjogJycsIHR5cGU6ICdtZXRhJ307XG4gICAgICAgICAgICBjYXNlIFRhc2tNZXRhRmllbGQuVEFTS19JRDpcbiAgICAgICAgICAgICAgICByZXR1cm4ge3ZhbHVlOiB0YXNrLnN0cmluZ0lkLCBpY29uOiAnJywgdHlwZTogJ21ldGEnfTtcbiAgICAgICAgICAgIGNhc2UgVGFza01ldGFGaWVsZC5USVRMRTpcbiAgICAgICAgICAgICAgICByZXR1cm4ge3ZhbHVlOiB0YXNrLnRpdGxlLCBpY29uOiAnJywgdHlwZTogJ21ldGEnfTtcbiAgICAgICAgICAgIGNhc2UgVGFza01ldGFGaWVsZC5QUklPUklUWTpcbiAgICAgICAgICAgICAgICAvLyBUT0RPIHByaW9yaXR5XG4gICAgICAgICAgICAgICAgaWYgKCF0YXNrLnByaW9yaXR5IHx8IHRhc2sucHJpb3JpdHkgPCAyKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7dmFsdWU6ICdoaWdoJywgaWNvbjogJ2Vycm9yJywgdHlwZTogJ21ldGEnfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHRhc2sucHJpb3JpdHkgPT09IDIpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt2YWx1ZTogJ21lZGl1bScsIGljb246ICdub3J0aCcsIHR5cGU6ICdtZXRhJ307XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiB7dmFsdWU6ICdsb3cnLCBpY29uOiAnc291dGgnLCB0eXBlOiAnbWV0YSd9O1xuICAgICAgICAgICAgY2FzZSBUYXNrTWV0YUZpZWxkLlVTRVI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHt2YWx1ZTogdGFzay51c2VyID8gdGFzay51c2VyLmZ1bGxOYW1lIDogJycsIGljb246ICdhY2NvdW50X2NpcmNsZScsIHR5cGU6ICdtZXRhJ307XG4gICAgICAgICAgICBjYXNlIFRhc2tNZXRhRmllbGQuQVNTSUdOX0RBVEU6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHRhc2suc3RhcnREYXRlID8gdG9Nb21lbnQodGFzay5zdGFydERhdGUpLmZvcm1hdChEQVRFX1RJTUVfRk9STUFUX1NUUklORykgOiAnJyxcbiAgICAgICAgICAgICAgICAgICAgaWNvbjogJ2V2ZW50JyxcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogJ21ldGEnXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXRGZWF0dXJlZEltbWVkaWF0ZVZhbHVlKHNlbGVjdGVkSGVhZGVyOiBIZWFkZXJDb2x1bW4pOiBGZWF0dXJlZFZhbHVlIHtcbiAgICAgICAgaWYgKHRoaXMuX3Rhc2tDb250ZW50U2VydmljZS50YXNrICYmIHRoaXMuX3Rhc2tDb250ZW50U2VydmljZS50YXNrLmltbWVkaWF0ZURhdGEpIHtcbiAgICAgICAgICAgIGNvbnN0IGltbWVkaWF0ZSA9IHRoaXMuX3Rhc2tDb250ZW50U2VydmljZS50YXNrLmltbWVkaWF0ZURhdGEuZmluZChpdCA9PiBpdC5zdHJpbmdJZCA9PT0gc2VsZWN0ZWRIZWFkZXIuZmllbGRJZGVudGlmaWVyKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnBhcnNlSW1tZWRpYXRlVmFsdWUoaW1tZWRpYXRlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge3ZhbHVlOiAnJywgaWNvbjogJycsIHR5cGU6ICcnfTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICAgICAgdGhpcy5fc3ViLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMuX3N1YlRhc2tFdmVudC51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLl9zdWJUYXNrRGF0YS51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLl90YXNrT3BlcmF0aW9ucy5kZXN0cm95KCk7XG4gICAgICAgIHRoaXMuX3N1YlBhbmVsVXBkYXRlLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMudGFza0V2ZW50LmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGlzRm9yY2VPcGVuKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fdGFza0ZvcmNlT3BlbiAmJiAhIXRoaXMudGFza0xpc3RWaXJ0dWFsU2Nyb2xsPy5nZXRFbGVtZW50UmVmKCk/Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgfVxuXG4gICAgcHVibGljIGdldENvbnRlbnRNaW5IZWlnaHQoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGFza0xpc3RWaXJ0dWFsU2Nyb2xsLmdldEVsZW1lbnRSZWYoKS5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodCAtIDMyICsgJ3B4JztcbiAgICB9XG59XG4iXX0=
378
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtdGFzay1wYW5lbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZXRncmlmLWNvbXBvbmVudHMtY29yZS9zcmMvbGliL3BhbmVsL3Rhc2stcGFuZWwvYWJzdHJhY3QtdGFzay1wYW5lbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILFNBQVMsRUFDVCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFHTCxRQUFRLEVBQ1IsTUFBTSxFQUdULE1BQU0sZUFBZSxDQUFDO0FBUXZCLE9BQU8sRUFBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRWpELE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUM3RCxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQU9sRSxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFPdEUsT0FBTyxFQUF3Qix1Q0FBdUMsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBRzFHLE9BQU8sRUFBQyx1Q0FBdUMsRUFBQyxNQUFNLHVDQUF1QyxDQUFDO0FBUzlGLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLDZEQUE2RCxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBUWhHLE1BQU0sT0FBZ0IsMEJBQTJCLFNBQVEsdUNBQXVDO0lBK0Q1RixZQUFnQyxtQkFBdUMsRUFDdkMsSUFBbUIsRUFDbkIsZ0JBQWlDLEVBQ2pDLFVBQTRCLEVBQzVCLGlCQUFtQyxFQUNuQyxrQkFBcUMsRUFDckMsb0JBQXlDLEVBQ3pDLGtCQUFxQyxFQUNyQyxrQkFBcUMsRUFDckMsVUFBbUMsRUFDbkMsZ0JBQWlDLEVBQ2pDLG9CQUF5QyxFQUN6QyxvQkFBeUMsRUFDekMsVUFBNEIsRUFDNUIsZUFBc0MsRUFDdUIsaUJB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QUFPLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxhQUFhLENBQUMsWUFBWSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUM7SUFDN0YsQ0FBQzs7d0hBaFhpQiwwQkFBMEIsNmdCQThFRix1Q0FBdUMsa05BTXZDLG1CQUFtQjs0R0FwRjNDLDBCQUEwQixxcUJBRmxDLEVBQUU7NEZBRU0sMEJBQTBCO2tCQUovQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLFFBQVEsRUFBRSxFQUFFO2lCQUNmOzswQkErRTBCLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsdUNBQXVDOzswQkFLMUQsUUFBUTs7MEJBQ1IsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxtQkFBbUI7NENBNUVwRCxxQkFBcUI7c0JBQTdCLEtBQUs7Z0JBQ0cscUJBQXFCO3NCQUE3QixLQUFLO2dCQUNVLGdCQUFnQjtzQkFBL0IsS0FBSztnQkFDVSxLQUFLO3NCQUFwQixLQUFLO2dCQUNVLElBQUk7c0JBQW5CLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0cscUJBQXFCO3NCQUE3QixLQUFLO2dCQUNHLHVCQUF1QjtzQkFBL0IsS0FBSztnQkFFRyxZQUFZO3NCQUFwQixLQUFLO2dCQXdCRixtQkFBbUI7c0JBRHRCLEtBQUs7Z0JBTUcsWUFBWTtzQkFBcEIsS0FBSztnQkFJSSxTQUFTO3NCQUFsQixNQUFNO2dCQUNHLGNBQWM7c0JBQXZCLE1BQU07Z0JBNkhJLGFBQWE7c0JBRHZCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ29tcG9uZW50LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPcHRpb25hbCxcbiAgICBPdXRwdXQsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVHlwZVxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TWF0RXhwYW5zaW9uUGFuZWx9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2V4cGFuc2lvbic7XG5pbXBvcnQge0NvbXBvbmVudFBvcnRhbH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQge1Rhc2tDb250ZW50U2VydmljZX0gZnJvbSAnLi4vLi4vdGFzay1jb250ZW50L3NlcnZpY2VzL3Rhc2stY29udGVudC5zZXJ2aWNlJztcbmltcG9ydCB7TG9nZ2VyU2VydmljZX0gZnJvbSAnLi4vLi4vbG9nZ2VyL3NlcnZpY2VzL2xvZ2dlci5zZXJ2aWNlJztcbmltcG9ydCB7VGFza1BhbmVsRGF0YX0gZnJvbSAnLi4vdGFzay1wYW5lbC1saXN0L3Rhc2stcGFuZWwtZGF0YS90YXNrLXBhbmVsLWRhdGEnO1xuaW1wb3J0IHtPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtUYXNrVmlld1NlcnZpY2V9IGZyb20gJy4uLy4uL3ZpZXcvdGFzay12aWV3L3NlcnZpY2UvdGFzay12aWV3LnNlcnZpY2UnO1xuaW1wb3J0IHtmaWx0ZXIsIG1hcCwgdGFrZX0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtIZWFkZXJDb2x1bW59IGZyb20gJy4uLy4uL2hlYWRlci9tb2RlbHMvaGVhZGVyLWNvbHVtbic7XG5pbXBvcnQge3RvTW9tZW50fSBmcm9tICcuLi8uLi9yZXNvdXJjZXMvdHlwZXMvbmFlLWRhdGUtdHlwZSc7XG5pbXBvcnQge0RBVEVfVElNRV9GT1JNQVRfU1RSSU5HfSBmcm9tICcuLi8uLi9tb21lbnQvdGltZS1mb3JtYXRzJztcbmltcG9ydCB7UGFwZXJWaWV3U2VydmljZX0gZnJvbSAnLi4vLi4vbmF2aWdhdGlvbi9xdWljay1wYW5lbC9jb21wb25lbnRzL3BhcGVyLXZpZXcuc2VydmljZSc7XG5pbXBvcnQge1Rhc2tFdmVudFNlcnZpY2V9IGZyb20gJy4uLy4uL3Rhc2stY29udGVudC9zZXJ2aWNlcy90YXNrLWV2ZW50LnNlcnZpY2UnO1xuaW1wb3J0IHtBc3NpZ25UYXNrU2VydmljZX0gZnJvbSAnLi4vLi4vdGFzay9zZXJ2aWNlcy9hc3NpZ24tdGFzay5zZXJ2aWNlJztcbmltcG9ydCB7RGVsZWdhdGVUYXNrU2VydmljZX0gZnJvbSAnLi4vLi4vdGFzay9zZXJ2aWNlcy9kZWxlZ2F0ZS10YXNrLnNlcnZpY2UnO1xuaW1wb3J0IHtDYW5jZWxUYXNrU2VydmljZX0gZnJvbSAnLi4vLi4vdGFzay9zZXJ2aWNlcy9jYW5jZWwtdGFzay5zZXJ2aWNlJztcbmltcG9ydCB7RmluaXNoVGFza1NlcnZpY2V9IGZyb20gJy4uLy4uL3Rhc2svc2VydmljZXMvZmluaXNoLXRhc2suc2VydmljZSc7XG5pbXBvcnQge1Rhc2tNZXRhRmllbGR9IGZyb20gJy4uLy4uL2hlYWRlci90YXNrLWhlYWRlci90YXNrLW1ldGEtZW51bSc7XG5pbXBvcnQge1Rhc2tSZXF1ZXN0U3RhdGVTZXJ2aWNlfSBmcm9tICcuLi8uLi90YXNrL3NlcnZpY2VzL3Rhc2stcmVxdWVzdC1zdGF0ZS5zZXJ2aWNlJztcbmltcG9ydCB7VGFza0RhdGFTZXJ2aWNlfSBmcm9tICcuLi8uLi90YXNrL3NlcnZpY2VzL3Rhc2stZGF0YS5zZXJ2aWNlJztcbmltcG9ydCB7QXNzaWduUG9saWN5U2VydmljZX0gZnJvbSAnLi4vLi4vdGFzay9zZXJ2aWNlcy9hc3NpZ24tcG9saWN5LnNlcnZpY2UnO1xuaW1wb3J0IHtTdWJqZWN0VGFza09wZXJhdGlvbnN9IGZyb20gJy4uLy4uL3Rhc2svbW9kZWxzL3N1YmplY3QtdGFzay1vcGVyYXRpb25zJztcbmltcG9ydCB7Q2FsbENoYWluU2VydmljZX0gZnJvbSAnLi4vLi4vdXRpbGl0eS9jYWxsLWNoYWluL2NhbGwtY2hhaW4uc2VydmljZSc7XG5pbXBvcnQge1Rhc2tFdmVudE5vdGlmaWNhdGlvbn0gZnJvbSAnLi4vLi4vdGFzay1jb250ZW50L21vZGVsL3Rhc2stZXZlbnQtbm90aWZpY2F0aW9uJztcbmltcG9ydCB7RGlzYWJsZUJ1dHRvbkZ1bnRpb25zLCBOQUVfVEFTS19QQU5FTF9ESVNBQkxFX0JVVFRPTl9GVU5DVElPTlN9IGZyb20gJy4vbW9kZWxzL2Rpc2FibGUtZnVuY3Rpb25zJztcbmltcG9ydCB7VGFza30gZnJvbSAnLi4vLi4vcmVzb3VyY2VzL2ludGVyZmFjZS90YXNrJztcbmltcG9ydCB7Q2hhbmdlZEZpZWxkc30gZnJvbSAnLi4vLi4vZGF0YS1maWVsZHMvbW9kZWxzL2NoYW5nZWQtZmllbGRzJztcbmltcG9ydCB7QWJzdHJhY3RQYW5lbFdpdGhJbW1lZGlhdGVEYXRhQ29tcG9uZW50fSBmcm9tICcuLi9hYnN0cmFjdC9wYW5lbC13aXRoLWltbWVkaWF0ZS1kYXRhJztcbmltcG9ydCB7VHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge0ZlYXR1cmVkVmFsdWV9IGZyb20gJy4uL2Fic3RyYWN0L2ZlYXR1cmVkLXZhbHVlJztcbmltcG9ydCB7Q3VycmVuY3lQaXBlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtQZXJtaXNzaW9uU2VydmljZX0gZnJvbSAnLi4vLi4vYXV0aG9yaXphdGlvbi9wZXJtaXNzaW9uL3Blcm1pc3Npb24uc2VydmljZSc7XG5pbXBvcnQge0NoYW5nZWRGaWVsZHNTZXJ2aWNlfSBmcm9tICcuLi8uLi9jaGFuZ2VkLWZpZWxkcy9zZXJ2aWNlcy9jaGFuZ2VkLWZpZWxkcy5zZXJ2aWNlJztcbmltcG9ydCB7Q2hhbmdlZEZpZWxkc01hcH0gZnJvbSAnLi4vLi4vZXZlbnQvc2VydmljZXMvaW50ZXJmYWNlcy9jaGFuZ2VkLWZpZWxkcy1tYXAnO1xuaW1wb3J0IHtUYXNrUGFuZWxDb250ZXh0fSBmcm9tICcuL21vZGVscy90YXNrLXBhbmVsLWNvbnRleHQnO1xuaW1wb3J0IHtPdmVyZmxvd1NlcnZpY2V9IGZyb20gJy4uLy4uL2hlYWRlci9zZXJ2aWNlcy9vdmVyZmxvdy5zZXJ2aWNlJztcbmltcG9ydCB7TkFFX1RBU0tfRk9SQ0VfT1BFTn0gZnJvbSAnLi4vLi4vdmlldy90YXNrLXZpZXcvbW9kZWxzL2luamVjdGlvbi10b2tlbi10YXNrLWZvcmNlLW9wZW4nO1xuaW1wb3J0IHtDZGtWaXJ0dWFsU2Nyb2xsVmlld3BvcnR9IGZyb20gJ0Bhbmd1bGFyL2Nkay9zY3JvbGxpbmcnO1xuaW1wb3J0IHsgRmluaXNoUG9saWN5U2VydmljZSB9IGZyb20gJy4uLy4uL3Rhc2svc2VydmljZXMvZmluaXNoLXBvbGljeS5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICduY2MtYWJzdHJhY3QtbGVnYWwtbm90aWNlJyxcbiAgICB0ZW1wbGF0ZTogJydcbn0pXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3RUYXNrUGFuZWxDb21wb25lbnQgZXh0ZW5kcyBBYnN0cmFjdFBhbmVsV2l0aEltbWVkaWF0ZURhdGFDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG5cbiAgICAvKipcbiAgICAgKiBAaWdub3JlXG4gICAgICogU2V0IGJ5IGFuIEBJbnB1dCgpIG9uIGEgc2V0dGVyIGZ1bmN0aW9uLCB0aGF0IGFsc28gcmVzb2x2ZXMgZmVhdHVyZWQgZmllbGRzLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBfdGFza1BhbmVsRGF0YTogVGFza1BhbmVsRGF0YTtcbiAgICBwcm90ZWN0ZWQgX2ZvcmNlTG9hZERhdGFPbk9wZW4gPSBmYWxzZTtcbiAgICBASW5wdXQoKSB0YXNrTGlzdFZpcnR1YWxTY3JvbGw6IENka1ZpcnR1YWxTY3JvbGxWaWV3cG9ydDtcbiAgICBASW5wdXQoKSBwYW5lbENvbnRlbnRDb21wb25lbnQ6IFR5cGU8YW55PjtcbiAgICBASW5wdXQoKSBwdWJsaWMgc2VsZWN0ZWRIZWFkZXJzJDogT2JzZXJ2YWJsZTxBcnJheTxIZWFkZXJDb2x1bW4+PjtcbiAgICBASW5wdXQoKSBwdWJsaWMgZmlyc3Q6IGJvb2xlYW47XG4gICAgQElucHV0KCkgcHVibGljIGxhc3Q6IGJvb2xlYW47XG4gICAgQElucHV0KCkgcmVzcG9uc2l2ZUJvZHkgPSB0cnVlO1xuICAgIEBJbnB1dCgpIHByZXZlbnRDb2xsYXBzZSA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIGhpZGVQYW5lbEhlYWRlciA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIGFjdGlvbkJ1dHRvblRlbXBsYXRlczogQXJyYXk8VGVtcGxhdGVSZWY8YW55Pj47XG4gICAgQElucHV0KCkgYWN0aW9uUm93SnVzdGlmeUNvbnRlbnQ6ICdzcGFjZS1iZXR3ZWVuJyB8ICdmbGV4LXN0YXJ0JyB8ICdmbGV4LWVuZCcgfCAnY2VudGVyJyB8ICdzcGFjZS1hcm91bmQnIHxcbiAgICAgICAgJ2luaXRpYWwnIHwgJ3N0YXJ0JyB8ICdlbmQnIHwgJ2xlZnQnIHwgJ3JpZ2h0JyB8ICdyZXZlcnQnIHwgJ2luaGVyaXQnIHwgJ3Vuc2V0J1xuICAgIEBJbnB1dCgpIHNob3dNb3JlTWVudTogYm9vbGVhbiA9IHRydWU7XG5cbiAgICB0aGlzQ29udGV4dDogVGFza1BhbmVsQ29udGV4dCA9IHtcbiAgICAgICAgY2FuQXNzaWduOiAoKSA9PiB0aGlzLmNhbkFzc2lnbigpLFxuICAgICAgICBhc3NpZ246ICgpID0+IHRoaXMuYXNzaWduKCksXG4gICAgICAgIGdldEFzc2lnblRpdGxlOiAoKSA9PiB0aGlzLmdldEFzc2lnblRpdGxlKCksXG4gICAgICAgIGRlbGVnYXRlOiAoKSA9PiB0aGlzLmRlbGVnYXRlKCksXG4gICAgICAgIGdldERlbGVnYXRlVGl0bGU6ICgpID0+IHRoaXMuZ2V0RGVsZWdhdGVUaXRsZSgpLFxuICAgICAgICBjYW5SZWFzc2lnbjogKCkgPT4gdGhpcy5jYW5SZWFzc2lnbigpLFxuICAgICAgICBjYW5DYW5jZWw6ICgpID0+IHRoaXMuY2FuQ2FuY2VsKCksXG4gICAgICAgIGNhbmNlbDogKCkgPT4gdGhpcy5jYW5jZWwoKSxcbiAgICAgICAgZ2V0Q2FuY2VsVGl0bGU6ICgpID0+IHRoaXMuZ2V0Q2FuY2VsVGl0bGUoKSxcbiAgICAgICAgY2FuRmluaXNoOiAoKSA9PiB0aGlzLmNhbkZpbmlzaCgpLFxuICAgICAgICBmaW5pc2g6ICgpID0+IHRoaXMuZmluaXNoKCksXG4gICAgICAgIGdldEZpbmlzaFRpdGxlOiAoKSA9PiB0aGlzLmdldEZpbmlzaFRpdGxlKCksXG4gICAgICAgIGNhbkNvbGxhcHNlOiAoKSA9PiB0aGlzLmNhbkNvbGxhcHNlKCksXG4gICAgICAgIGNvbGxhcHNlOiAoKSA9PiB0aGlzLmNvbGxhcHNlKCksXG4gICAgICAgIGNhbkRpc2FibGU6IChhcmc6IHN0cmluZykgPT4gdGhpcy5jYW5EaXNhYmxlKGFyZyksXG4gICAgICAgIGNhbkRvOiAoYXJnOiBzdHJpbmcpID0+IHRoaXMuY2FuRG8oYXJnKSxcbiAgICAgICAgaXNMb2FkaW5nOiAoKSA9PiB0aGlzLmlzTG9hZGluZ1xuICAgIH07XG5cblxuICAgIEBJbnB1dCgpXG4gICAgc2V0IGZvcmNlTG9hZERhdGFPbk9wZW4oZm9yY2U6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fZm9yY2VMb2FkRGF0YU9uT3BlbiA9IGZvcmNlO1xuICAgICAgICB0aGlzLl9hc3NpZ25Qb2xpY3lTZXJ2aWNlLmZvcmNlZCA9IGZvcmNlO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHRleHRFbGxpcHNpcyA9IGZhbHNlO1xuICAgIC8qKlxuICAgICAqIEVtaXRzIG5vdGlmaWNhdGlvbnMgYWJvdXQgdGFzayBldmVudHNcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgdGFza0V2ZW50OiBFdmVudEVtaXR0ZXI8VGFza0V2ZW50Tm90aWZpY2F0aW9uPjtcbiAgICBAT3V0cHV0KCkgcGFuZWxSZWZPdXRwdXQ6IEV2ZW50RW1pdHRlcjxNYXRFeHBhbnNpb25QYW5lbD47XG5cbiAgICBwdWJsaWMgcG9ydGFsOiBDb21wb25lbnRQb3J0YWw8YW55PjtcbiAgICBwdWJsaWMgcGFuZWxSZWY6IE1hdEV4cGFuc2lvblBhbmVsO1xuICAgIHByb3RlY3RlZCBfc3ViOiBTdWJzY3JpcHRpb247XG4gICAgcHJvdGVjdGVkIF9zdWJUYXNrRXZlbnQ6IFN1YnNjcmlwdGlvbjtcbiAgICBwcm90ZWN0ZWQgX3N1YlRhc2tEYXRhOiBTdWJzY3JpcHRpb247XG4gICAgcHJvdGVjdGVkIF9zdWJQYW5lbFVwZGF0ZTogU3Vic2NyaXB0aW9uO1xuICAgIHByb3RlY3RlZCBfdGFza0Rpc2FibGVCdXR0b25GdW5jdGlvbnM6IERpc2FibGVCdXR0b25GdW50aW9ucztcblxuICAgIHByb3RlY3RlZCBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgX3Rhc2tDb250ZW50U2VydmljZTogVGFza0NvbnRlbnRTZXJ2aWNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX2xvZzogTG9nZ2VyU2VydmljZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvdGVjdGVkIF90YXNrVmlld1NlcnZpY2U6IFRhc2tWaWV3U2VydmljZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvdGVjdGVkIF9wYXBlclZpZXc6IFBhcGVyVmlld1NlcnZpY2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfdGFza0V2ZW50U2VydmljZTogVGFza0V2ZW50U2VydmljZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvdGVjdGVkIF9hc3NpZ25UYXNrU2VydmljZTogQXNzaWduVGFza1NlcnZpY2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfZGVsZWdhdGVUYXNrU2VydmljZTogRGVsZWdhdGVUYXNrU2VydmljZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvdGVjdGVkIF9jYW5jZWxUYXNrU2VydmljZTogQ2FuY2VsVGFza1NlcnZpY2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfZmluaXNoVGFza1NlcnZpY2U6IEZpbmlzaFRhc2tTZXJ2aWNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX3Rhc2tTdGF0ZTogVGFza1JlcXVlc3RTdGF0ZVNlcnZpY2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfdGFza0RhdGFTZXJ2aWNlOiBUYXNrRGF0YVNlcnZpY2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfYXNzaWduUG9saWN5U2VydmljZTogQXNzaWduUG9saWN5U2VydmljZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvdGVjdGVkIF9maW5pc2hQb2xpY3lTZXJ2aWNlOiBGaW5pc2hQb2xpY3lTZXJ2aWNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX2NhbGxDaGFpbjogQ2FsbENoYWluU2VydmljZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvdGVjdGVkIF90YXNrT3BlcmF0aW9uczogU3ViamVjdFRhc2tPcGVyYXRpb25zLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KE5BRV9UQVNLX1BBTkVMX0RJU0FCTEVfQlVUVE9OX0ZVTkNUSU9OUykgcHJvdGVjdGVkIF9kaXNhYmxlRnVuY3Rpb25zOiBEaXNhYmxlQnV0dG9uRnVudGlvbnMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX2N1cnJlbmN5UGlwZTogQ3VycmVuY3lQaXBlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX2NoYW5nZWRGaWVsZHNTZXJ2aWNlOiBDaGFuZ2VkRmllbGRzU2VydmljZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvdGVjdGVkIF9wZXJtaXNzaW9uU2VydmljZTogUGVybWlzc2lvblNlcnZpY2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIEBPcHRpb25hbCgpIG92ZXJmbG93U2VydmljZTogT3ZlcmZsb3dTZXJ2aWNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KE5BRV9UQVNLX0ZPUkNFX09QRU4pIHByb3RlY3RlZCBfdGFza0ZvcmNlT3BlbjogYm9vbGVhbikge1xuICAgICAgICBzdXBlcihfdHJhbnNsYXRlLCBfY3VycmVuY3lQaXBlLCBvdmVyZmxvd1NlcnZpY2UpO1xuICAgICAgICB0aGlzLnRhc2tFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8VGFza0V2ZW50Tm90aWZpY2F0aW9uPigpO1xuICAgICAgICB0aGlzLnBhbmVsUmVmT3V0cHV0ID0gbmV3IEV2ZW50RW1pdHRlcjxNYXRFeHBhbnNpb25QYW5lbD4oKTtcbiAgICAgICAgdGhpcy5fc3ViVGFza0V2ZW50ID0gX3Rhc2tFdmVudFNlcnZpY2UudGFza0V2ZW50Tm90aWZpY2F0aW9ucyQuc3Vic2NyaWJlKGV2ZW50ID0+IHtcbiAgICAgICAgICAgIHRoaXMudGFza0V2ZW50LmVtaXQoZXZlbnQpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5fc3ViVGFza0RhdGEgPSBfY2hhbmdlZEZpZWxkc1NlcnZpY2UuY2hhbmdlZEZpZWxkcyQuc3Vic2NyaWJlKChjaGFuZ2VkRmllbGRzTWFwOiBDaGFuZ2VkRmllbGRzTWFwKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBmaWx0ZXJlZENhc2VJZHM6IEFycmF5PHN0cmluZz4gPSBPYmplY3Qua2V5cyhjaGFuZ2VkRmllbGRzTWFwKS5maWx0ZXIoXG4gICAgICAgICAgICAgICAgY2FzZUlkID0+IE9iamVjdC5rZXlzKHRoaXMuX3Rhc2tDb250ZW50U2VydmljZS5yZWZlcmVuY2VkVGFza0FuZENhc2VJZHMpLmluY2x1ZGVzKGNhc2VJZClcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBjb25zdCBjaGFuZ2VkRmllbGRzOiBBcnJheTxDaGFuZ2VkRmllbGRzPiA9IFtdO1xuICAgICAgICAgICAgZmlsdGVyZWRDYXNlSWRzLmZvckVhY2goY2FzZUlkID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCB0YXNrSWRzOiBBcnJheTxzdHJpbmc+ID0gdGhpcy5fdGFza0NvbnRlbnRTZXJ2aWNlLnJlZmVyZW5jZWRUYXNrQW5kQ2FzZUlkc1tjYXNlSWRdO1xuICAgICAgICAgICAgICAgIGNoYW5nZWRGaWVsZHMucHVzaCguLi50aGlzLl9jaGFuZ2VkRmllbGRzU2VydmljZS5wYXJzZUNoYW5nZWRGaWVsZHNCeUNhc2VBbmRUYXNrSWRzKGNhc2VJZCwgdGFza0lkcywgY2hhbmdlZEZpZWxkc01hcCkpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjaGFuZ2VkRmllbGRzLmZpbHRlcihmaWVsZHMgPT4gZmllbGRzICE9PSB1bmRlZmluZWQpLmZvckVhY2goZmllbGRzID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnRhc2tQYW5lbERhdGEuY2hhbmdlZEZpZWxkcy5uZXh0KGZpZWxkcyk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICAgIF90YXNrT3BlcmF0aW9ucy5vcGVuJC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5leHBhbmQoKTtcbiAgICAgICAgfSk7XG4gICAgICAgIF90YXNrT3BlcmF0aW9ucy5jbG9zZSQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIGlmICghdGhpcy5fdGFza0ZvcmNlT3Blbikge1xuICAgICAgICAgICAgICAgIHRoaXMuY29sbGFwc2UoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIF90YXNrT3BlcmF0aW9ucy5yZWxvYWQkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl90YXNrVmlld1NlcnZpY2UucmVsb2FkQ3VycmVudFBhZ2UoKTtcbiAgICAgICAgfSk7XG4gICAgICAgIF90YXNrT3BlcmF0aW9ucy5mb3JjZVJlbG9hZCQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX3Rhc2tWaWV3U2VydmljZS5yZWxvYWRDdXJyZW50UGFnZSh0cnVlKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuX3Rhc2tEaXNhYmxlQnV0dG9uRnVuY3Rpb25zID0ge1xuICAgICAgICAgICAgZmluaXNoOiAodDogVGFzaykgPT4gZmFsc2UsXG4gICAgICAgICAgICBhc3NpZ246ICh0OiBUYXNrKSA9PiBmYWxzZSxcbiAgICAgICAgICAgIGRlbGVnYXRlOiAodDogVGFzaykgPT4gZmFsc2UsXG4gICAgICAgICAgICByZWFzc2lnbjogKHQ6IFRhc2spID0+IGZhbHNlLFxuICAgICAgICAgICAgY2FuY2VsOiAodDogVGFzaykgPT4gZmFsc2UsXG4gICAgICAgIH07XG4gICAgICAgIGlmIChfZGlzYWJsZUZ1bmN0aW9ucykge1xuICAgICAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLl90YXNrRGlzYWJsZUJ1dHRvbkZ1bmN0aW9ucywgX2Rpc2FibGVGdW5jdGlvbnMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgIHRoaXMuX3Rhc2tDb250ZW50U2VydmljZS50YXNrID0gdGhpcy5fdGFza1BhbmVsRGF0YS50YXNrO1xuXG4gICAgICAgIHRoaXMuY3JlYXRlQ29udGVudFBvcnRhbCgpO1xuICAgICAgICB0aGlzLl9zdWIgPSB0aGlzLl90YXNrUGFuZWxEYXRhLmNoYW5nZWRGaWVsZHMuc3Vic2NyaWJlKGNoRmllbGRzID0+IHtcbiAgICAgICAgICAgIHRoaXMuX3Rhc2tDb250ZW50U2VydmljZS51cGRhdGVGcm9tQ2hhbmdlZEZpZWxkcyhjaEZpZWxkcyk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuX3N1YlBhbmVsVXBkYXRlID0gdGhpcy5fdGFza1ZpZXdTZXJ2aWNlLnBhbmVsVXBkYXRlLnBpcGUoXG4gICAgICAgICAgICBtYXAoYSA9PiBhLmZpbmQocCA9PiBwLnRhc2suc3RyaW5nSWQgPT09IHRoaXMudGFza1BhbmVsRGF0YS50YXNrLnN0cmluZ0lkKSksXG4gICAgICAgICAgICBmaWx0ZXIocCA9PiAhIXApXG4gICAgICAgICkuc3Vic2NyaWJlKHZhbHVlID0+IHtcbiAgICAgICAgICAgIHRoaXMucmVzb2x2ZUZlYXR1cmVkRmllbGRzVmFsdWVzKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgdGhpcy5wYW5lbFJlZi5vcGVuZWQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX3Rhc2tDb250ZW50U2VydmljZS5leHBhbnNpb25TdGFydGVkKCk7XG4gICAgICAgICAgICBpZiAoIXRoaXMuX3Rhc2tTdGF0ZS5pc0xvYWRpbmcoKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2Fzc2lnblBvbGljeVNlcnZpY2UucGVyZm9ybUFzc2lnblBvbGljeSh0cnVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMucGFuZWxSZWYuY2xvc2VkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuX3Rhc2tTdGF0ZS5pc0xvYWRpbmcoKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2Fzc2lnblBvbGljeVNlcnZpY2UucGVyZm9ybUFzc2lnblBvbGljeShmYWxzZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnBhbmVsUmVmLmFmdGVyRXhwYW5kLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl90YXNrQ29udGVudFNlcnZpY2UuJHNob3VsZENyZWF0ZS5waXBlKHRha2UoMSkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fdGFza0NvbnRlbnRTZXJ2aWNlLmJsb2NrRmllbGRzKHRoaXMuaGFzTm9GaW5pc2hQZXJtaXNzaW9uKCkpO1xuICAgICAgICAgICAgICAgIHRoaXMuX3Rhc2tQYW5lbERhdGEuaW5pdGlhbGx5RXhwYW5kZWQgPSB0cnVlO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLl90YXNrQ29udGVudFNlcnZpY2UuZXhwYW5zaW9uRmluaXNoZWQoKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMucGFuZWxSZWYuYWZ0ZXJDb2xsYXBzZS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fdGFza1BhbmVsRGF0YS5pbml0aWFsbHlFeHBhbmRlZCA9IGZhbHNlO1xuICAgICAgICB9KTtcblxuICAgICAgICBpZiAodGhpcy5fdGFza1BhbmVsRGF0YS5pbml0aWFsbHlFeHBhbmRlZCB8fCB0aGlzLl90YXNrRm9yY2VPcGVuKSB7XG4gICAgICAgICAgICB0aGlzLnBhbmVsUmVmLmV4cGFuZGVkID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBjcmVhdGVDb250ZW50UG9ydGFsKCk6IHZvaWQ7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZXQgdGFza1BhbmVsRGF0YShkYXRhOiBUYXNrUGFuZWxEYXRhKSB7XG4gICAgICAgIHRoaXMuX3Rhc2tQYW5lbERhdGEgPSBkYXRhO1xuICAgICAgICB0aGlzLnJlc29sdmVGZWF0dXJlZEZpZWxkc1ZhbHVlcygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgdGFza1BhbmVsRGF0YSgpOiBUYXNrUGFuZWxEYXRhIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Rhc2tQYW5lbERhdGE7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBpc0xvYWRpbmcoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl90YXNrU3RhdGUuaXNMb2FkaW5nKCk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0b3BMb2FkaW5nKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl90YXNrU3RhdGUuc3RvcExvYWRpbmcodGhpcy5fdGFza1BhbmVsRGF0YS50YXNrLnN0cmluZ0lkKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcHJldmVudFBhbmVsT3BlbigkZXZlbnQ6IE1vdXNlRXZlbnQpOiBib29sZWFuIHtcbiAgICAgICAgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcHVibGljIGlzUGFwZXJWaWV3KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcGFwZXJWaWV3LnBhcGVyVmlldztcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0UGFuZWxSZWYocGFuZWxSZWY6IE1hdEV4cGFuc2lvblBhbmVsKSB7XG4gICAgICAgIHRoaXMucGFuZWxSZWYgPSBwYW5lbFJlZjtcbiAgICAgICAgdGhpcy5wYW5lbFJlZk91dHB1dC5lbWl0KHBhbmVsUmVmKTtcbiAgICB9XG5cbiAgICBhc3NpZ24oKSB7XG4gICAgICAgIHRoaXMuX2Fzc2lnblRhc2tTZXJ2aWNlLmFzc2lnbih0aGlzLl9jYWxsQ2hhaW4uY3JlYXRlKChhZnRlckFjdGlvbiA9PiB7XG4gICAgICAgICAgICBpZiAoYWZ0ZXJBY3Rpb24pIHtcbiAgICAgICAgICAgICAgICB0aGlzLl90YXNrRGF0YVNlcnZpY2UuaW5pdGlhbGl6ZVRhc2tEYXRhRmllbGRzKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5fZmluaXNoUG9saWN5U2VydmljZS5wZXJmb3JtRmluaXNoUG9saWN5KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pKSk7XG4gICAgfVxuXG4gICAgZGVsZWdhdGUoKSB7XG4gICAgICAgIHRoaXMuX2RlbGVnYXRlVGFza1NlcnZpY2UuZGVsZWdhdGUoKTtcbiAgICB9XG5cbiAgICBjYW5jZWwoKSB7XG4gICAgICAgIHRoaXMuX2NhbmNlbFRhc2tTZXJ2aWNlLmNhbmNlbCh0aGlzLl9jYWxsQ2hhaW4uY3JlYXRlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX3Rhc2tPcGVyYXRpb25zLnJlbG9hZCgpO1xuICAgICAgICAgICAgdGhpcy5fdGFza09wZXJhdGlvbnMuY2xvc2UoKTtcbiAgICAgICAgfSkpO1xuICAgIH1cblxuICAgIGZpbmlzaCgpIHtcbiAgICAgICAgaWYgKCF0aGlzLl90YXNrQ29udGVudFNlcnZpY2UudmFsaWRhdGVUYXNrRGF0YSgpKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5fdGFza0NvbnRlbnRTZXJ2aWNlLnRhc2suZGF0YVNpemUgPD0gMCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX3Rhc2tEYXRhU2VydmljZS5pbml0aWFsaXplVGFza0RhdGFGaWVsZHMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGludmFsaWRGaWVsZHMgPSB0aGlzLl90YXNrQ29udGVudFNlcnZpY2UuZ2V0SW52YWxpZFRhc2tEYXRhKCk7XG4gICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpbnZhbGlkRmllbGRzWzBdLnN0cmluZ0lkKS5zY3JvbGxJbnRvVmlldyh7XG4gICAgICAgICAgICAgICAgYmVoYXZpb3I6ICdzbW9vdGgnLFxuICAgICAgICAgICAgICAgIGJsb2NrOiAnc3RhcnQnLFxuICAgICAgICAgICAgICAgIGlubGluZTogJ25lYXJlc3QnXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2ZpbmlzaFRhc2tTZXJ2aWNlLnZhbGlkYXRlRGF0YUFuZEZpbmlzaCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY29sbGFwc2UoKSB7XG4gICAgICAgIHRoaXMucGFuZWxSZWYuY2xvc2UoKTtcbiAgICAgICAgdGhpcy5wYW5lbFJlZi5leHBhbmRlZCA9IGZhbHNlO1xuICAgIH1cblxuICAgIGV4cGFuZCgpIHtcbiAgICAgICAgdGhpcy5wYW5lbFJlZi5vcGVuKCk7XG4gICAgICAgIHRoaXMucGFuZWxSZWYuZXhwYW5kZWQgPSB0cnVlO1xuICAgIH1cblxuICAgIHB1YmxpYyBjYW5Bc3NpZ24oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9wZXJtaXNzaW9uU2VydmljZS5jYW5Bc3NpZ24odGhpcy50YXNrUGFuZWxEYXRhLnRhc2spICYmIHRoaXMuZ2V0QXNzaWduVGl0bGUoKSAhPT0gJyc7XG4gICAgfVxuXG4gICAgcHVibGljIGNhblJlYXNzaWduKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fcGVybWlzc2lvblNlcnZpY2UuY2FuUmVhc3NpZ24odGhpcy50YXNrUGFuZWxEYXRhLnRhc2spO1xuICAgIH1cblxuICAgIHB1YmxpYyBjYW5DYW5jZWwoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9wZXJtaXNzaW9uU2VydmljZS5jYW5DYW5jZWwodGhpcy50YXNrUGFuZWxEYXRhLnRhc2spICYmIHRoaXMuZ2V0Q2FuY2VsVGl0bGUoKSAhPT0gJyc7XG4gICAgfVxuXG4gICAgcHVibGljIGNhbkZpbmlzaCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Blcm1pc3Npb25TZXJ2aWNlLmNhbkZpbmlzaCh0aGlzLnRhc2tQYW5lbERhdGEudGFzaykgJiYgdGhpcy5nZXRGaW5pc2hUaXRsZSgpICE9PSAnJztcbiAgICB9XG5cbiAgICBwcml2YXRlIGhhc05vRmluaXNoUGVybWlzc2lvbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLl9wZXJtaXNzaW9uU2VydmljZS5jYW5GaW5pc2godGhpcy50YXNrUGFuZWxEYXRhLnRhc2spXG4gICAgfVxuXG4gICAgcHVibGljIGNhbkNvbGxhcHNlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fdGFza0ZvcmNlT3BlbiA/IGZhbHNlIDogdGhpcy5fcGVybWlzc2lvblNlcnZpY2UuY2FuQ29sbGFwc2UodGhpcy50YXNrUGFuZWxEYXRhLnRhc2spO1xuICAgIH1cblxuICAgIHB1YmxpYyBjYW5EbyhhY3Rpb24pOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Blcm1pc3Npb25TZXJ2aWNlLmhhc1Rhc2tQZXJtaXNzaW9uKHRoaXMudGFza1BhbmVsRGF0YS50YXNrLCBhY3Rpb24pICYmIHRoaXMuZ2V0RGVsZWdhdGVUaXRsZSgpICE9PSAnJztcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0QXNzaWduVGl0bGUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuICh0aGlzLnRhc2tQYW5lbERhdGEudGFzay5hc3NpZ25UaXRsZSA9PT0gJycgfHwgdGhpcy50YXNrUGFuZWxEYXRhLnRhc2suYXNzaWduVGl0bGUpXG4gICAgICAgICAgICA/IHRoaXMudGFza1BhbmVsRGF0YS50YXNrLmFzc2lnblRpdGxlIDogJ3Rhc2tzLnZpZXcuYXNzaWduJztcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0Q2FuY2VsVGl0bGUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuICh0aGlzLnRhc2tQYW5lbERhdGEudGFzay5jYW5jZWxUaXRsZSA9PT0gJycgfHwgdGhpcy50YXNrUGFuZWxEYXRhLnRhc2suY2FuY2VsVGl0bGUpXG4gICAgICAgICAgICA/IHRoaXMudGFza1BhbmVsRGF0YS50YXNrLmNhbmNlbFRpdGxlIDogJ3Rhc2tzLnZpZXcuY2FuY2VsJztcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0RGVsZWdhdGVUaXRsZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gKHRoaXMudGFza1BhbmVsRGF0YS50YXNrLmRlbGVnYXRlVGl0bGUgPT09ICcnIHx8IHRoaXMudGFza1BhbmVsRGF0YS50YXNrLmRlbGVnYXRlVGl0bGUpXG4gICAgICAgICAgICA/IHRoaXMudGFza1BhbmVsRGF0YS50YXNrLmRlbGVnYXRlVGl0bGUgOiAndGFza3Mudmlldy5kZWxlZ2F0ZSc7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEZpbmlzaFRpdGxlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiAodGhpcy50YXNrUGFuZWxEYXRhLnRhc2suZmluaXNoVGl0bGUgPT09ICcnIHx8IHRoaXMudGFza1BhbmVsRGF0YS50YXNrLmZpbmlzaFRpdGxlKVxuICAgICAgICAgICAgPyB0aGlzLnRhc2tQYW5lbERhdGEudGFzay5maW5pc2hUaXRsZSA6ICd0YXNrcy52aWV3LmZpbmlzaCc7XG4gICAgfVxuXG4gICAgcHVibGljIGNhbkRpc2FibGUodHlwZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIGxldCBkaXNhYmxlID0gZmFsc2U7XG4gICAgICAgIGlmICghIXRoaXMudGFza1BhbmVsRGF0YSAmJiAhIXRoaXMudGFza1BhbmVsRGF0YS50YXNrKSB7XG4gICAgICAgICAgICBkaXNhYmxlID0gZGlzYWJsZVxuICAgICAgICAgICAgICAgIHx8ICEhdGhpcy5fdGFza1N0YXRlLmlzTG9hZGluZyh0aGlzLnRhc2tQYW5lbERhdGEudGFzay5zdHJpbmdJZClcbiAgICAgICAgICAgICAgICB8fCAhIXRoaXMuX3Rhc2tTdGF0ZS5pc1VwZGF0aW5nKHRoaXMudGFza1BhbmVsRGF0YS50YXNrLnN0cmluZ0lkKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZGlzYWJsZSB8fCB0aGlzLl90YXNrRGlzYWJsZUJ1dHRvbkZ1bmN0aW9uc1t0eXBlXSh7Li4udGhpcy5fdGFza0NvbnRlbnRTZXJ2aWNlLnRhc2t9KTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0RmVhdHVyZWRNZXRhVmFsdWUoc2VsZWN0ZWRIZWFkZXI6IEhlYWRlckNvbHVtbik6IEZlYXR1cmVkVmFsdWUge1xuICAgICAgICBjb25zdCB0YXNrID0gdGhpcy5fdGFza1BhbmVsRGF0YS50YXNrO1xuICAgICAgICBzd2l0Y2ggKHNlbGVjdGVkSGVhZGVyLmZpZWxkSWRlbnRpZmllcikge1xuICAgICAgICAgICAgY2FzZSBUYXNrTWV0YUZpZWxkLkNBU0U6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHt2YWx1ZTogdGFzay5jYXNlVGl0bGUsIGljb246ICcnLCB0eXBlOiAnbWV0YSd9O1xuICAgICAgICAgICAgY2FzZSBUYXNrTWV0YUZpZWxkLkNBU0VfSUQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHt2YWx1ZTogdGFzay5jYXNlSWQsIGljb246ICcnLCB0eXBlOiAnbWV0YSd9O1xuICAgICAgICAgICAgY2FzZSBUYXNrTWV0YUZpZWxkLlRBU0tfSUQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHt2YWx1ZTogdGFzay5zdHJpbmdJZCwgaWNvbjogJycsIHR5cGU6ICdtZXRhJ307XG4gICAgICAgICAgICBjYXNlIFRhc2tNZXRhRmllbGQuVElUTEU6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHt2YWx1ZTogdGFzay50aXRsZSwgaWNvbjogJycsIHR5cGU6ICdtZXRhJ307XG4gICAgICAgICAgICBjYXNlIFRhc2tNZXRhRmllbGQuUFJJT1JJVFk6XG4gICAgICAgICAgICAgICAgLy8gVE9ETyBwcmlvcml0eVxuICAgICAgICAgICAgICAgIGlmICghdGFzay5wcmlvcml0eSB8fCB0YXNrLnByaW9yaXR5IDwgMikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3ZhbHVlOiAnaGlnaCcsIGljb246ICdlcnJvcicsIHR5cGU6ICdtZXRhJ307XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICh0YXNrLnByaW9yaXR5ID09PSAyKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7dmFsdWU6ICdtZWRpdW0nLCBpY29uOiAnbm9ydGgnLCB0eXBlOiAnbWV0YSd9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4ge3ZhbHVlOiAnbG93JywgaWNvbjogJ3NvdXRoJywgdHlwZTogJ21ldGEnfTtcbiAgICAgICAgICAgIGNhc2UgVGFza01ldGFGaWVsZC5VU0VSOlxuICAgICAgICAgICAgICAgIHJldHVybiB7dmFsdWU6IHRhc2sudXNlciA/IHRhc2sudXNlci5mdWxsTmFtZSA6ICcnLCBpY29uOiAnYWNjb3VudF9jaXJjbGUnLCB0eXBlOiAnbWV0YSd9O1xuICAgICAgICAgICAgY2FzZSBUYXNrTWV0YUZpZWxkLkFTU0lHTl9EQVRFOlxuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiB0YXNrLnN0YXJ0RGF0ZSA/IHRvTW9tZW50KHRhc2suc3RhcnREYXRlKS5mb3JtYXQoREFURV9USU1FX0ZPUk1BVF9TVFJJTkcpIDogJycsXG4gICAgICAgICAgICAgICAgICAgIGljb246ICdldmVudCcsXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6ICdtZXRhJ1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0RmVhdHVyZWRJbW1lZGlhdGVWYWx1ZShzZWxlY3RlZEhlYWRlcjogSGVhZGVyQ29sdW1uKTogRmVhdHVyZWRWYWx1ZSB7XG4gICAgICAgIGlmICh0aGlzLl90YXNrQ29udGVudFNlcnZpY2UudGFzayAmJiB0aGlzLl90YXNrQ29udGVudFNlcnZpY2UudGFzay5pbW1lZGlhdGVEYXRhKSB7XG4gICAgICAgICAgICBjb25zdCBpbW1lZGlhdGUgPSB0aGlzLl90YXNrQ29udGVudFNlcnZpY2UudGFzay5pbW1lZGlhdGVEYXRhLmZpbmQoaXQgPT4gaXQuc3RyaW5nSWQgPT09IHNlbGVjdGVkSGVhZGVyLmZpZWxkSWRlbnRpZmllcik7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5wYXJzZUltbWVkaWF0ZVZhbHVlKGltbWVkaWF0ZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHt2YWx1ZTogJycsIGljb246ICcnLCB0eXBlOiAnJ307XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgICAgIHRoaXMuX3N1Yi51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLl9zdWJUYXNrRXZlbnQudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgdGhpcy5fc3ViVGFza0RhdGEudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgdGhpcy5fdGFza09wZXJhdGlvbnMuZGVzdHJveSgpO1xuICAgICAgICB0aGlzLl9zdWJQYW5lbFVwZGF0ZS51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLnRhc2tFdmVudC5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc0ZvcmNlT3BlbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Rhc2tGb3JjZU9wZW4gJiYgISF0aGlzLnRhc2tMaXN0VmlydHVhbFNjcm9sbD8uZ2V0RWxlbWVudFJlZigpPy5uYXRpdmVFbGVtZW50O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRDb250ZW50TWluSGVpZ2h0KCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLnRhc2tMaXN0VmlydHVhbFNjcm9sbC5nZXRFbGVtZW50UmVmKCkubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQgLSAzMiArICdweCc7XG4gICAgfVxufVxuIl19
@@ -17,6 +17,7 @@ export class AbstractDefaultTaskListComponent extends TabbedVirtualScrollCompone
17
17
  this.responsiveBody = true;
18
18
  this.forceLoadDataOnOpen = false;
19
19
  this.textEllipsis = false;
20
+ this.showMoreMenu = true;
20
21
  this.taskEvent = new EventEmitter();
21
22
  this._taskPanelRefs = new Map();
22
23
  this._unsubscribe$ = new Subject();
@@ -64,7 +65,7 @@ export class AbstractDefaultTaskListComponent extends TabbedVirtualScrollCompone
64
65
  }
65
66
  }
66
67
  AbstractDefaultTaskListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: AbstractDefaultTaskListComponent, deps: [{ token: i1.TaskViewService }, { token: i2.LoggerService }, { token: NAE_TAB_DATA, optional: true }, { token: i3.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component });
67
- AbstractDefaultTaskListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: AbstractDefaultTaskListComponent, selector: "ncc-abstract-default-task-list", inputs: { loading$: "loading$", selectedHeaders$: "selectedHeaders$", responsiveBody: "responsiveBody", forceLoadDataOnOpen: "forceLoadDataOnOpen", textEllipsis: "textEllipsis", allowMultiOpen: "allowMultiOpen" }, outputs: { taskEvent: "taskEvent" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
68
+ AbstractDefaultTaskListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: AbstractDefaultTaskListComponent, selector: "ncc-abstract-default-task-list", inputs: { loading$: "loading$", selectedHeaders$: "selectedHeaders$", responsiveBody: "responsiveBody", forceLoadDataOnOpen: "forceLoadDataOnOpen", textEllipsis: "textEllipsis", showMoreMenu: "showMoreMenu", allowMultiOpen: "allowMultiOpen" }, outputs: { taskEvent: "taskEvent" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
68
69
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: AbstractDefaultTaskListComponent, decorators: [{
69
70
  type: Component,
70
71
  args: [{
@@ -86,9 +87,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
86
87
  type: Input
87
88
  }], textEllipsis: [{
88
89
  type: Input
90
+ }], showMoreMenu: [{
91
+ type: Input
89
92
  }], allowMultiOpen: [{
90
93
  type: Input
91
94
  }], taskEvent: [{
92
95
  type: Output
93
96
  }] } });
94
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtZGVmYXVsdC10YXNrLWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmV0Z3JpZi1jb21wb25lbnRzLWNvcmUvc3JjL2xpYi9wYW5lbC90YXNrLXBhbmVsLWxpc3QvZGVmYXVsdC10YXNrLXBhbmVsLWxpc3QvYWJzdHJhY3QtZGVmYXVsdC10YXNrLWxpc3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0QyxPQUFPLEVBQUMsNEJBQTRCLEVBQUMsTUFBTSxnREFBZ0QsQ0FBQztBQUM1RixPQUFPLEVBQWdCLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBYSxRQUFRLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2pILE9BQU8sRUFBYSxPQUFPLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFNekMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlFQUFpRSxDQUFDOzs7OztBQVE3RixNQUFNLE9BQWdCLGdDQUFpQyxTQUFRLDRCQUE0QjtJQTRCdkYsWUFBc0IsZ0JBQWlDLEVBQ2pDLElBQW1CLEVBQ0ssZUFBZ0MsRUFDeEQsS0FBc0I7UUFDeEMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBSkwscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFpQjtRQUNqQyxTQUFJLEdBQUosSUFBSSxDQUFlO1FBRW5CLFVBQUssR0FBTCxLQUFLLENBQWlCO1FBMUJsQyxvQkFBZSxHQUFHLElBQUksQ0FBQztRQUl4QixtQkFBYyxHQUFHLElBQUksQ0FBQztRQUN0Qix3QkFBbUIsR0FBRyxLQUFLLENBQUM7UUFDNUIsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFzQjFCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxZQUFZLEVBQXlCLENBQUM7UUFDM0Qs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QUFsQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtNYXRFeHBhbnNpb25QYW5lbH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZXhwYW5zaW9uJztcbmltcG9ydCB7QWN0aXZhdGVkUm91dGV9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge2ZpbHRlcn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtUYWJiZWRWaXJ0dWFsU2Nyb2xsQ29tcG9uZW50fSBmcm9tICcuLi8uLi9hYnN0cmFjdC90YWJiZWQtdmlydHVhbC1zY3JvbGwuY29tcG9uZW50JztcbmltcG9ydCB7QWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEluamVjdCwgSW5wdXQsIE9uRGVzdHJveSwgT3B0aW9uYWwsIE91dHB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge09ic2VydmFibGUsIFN1YmplY3R9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtUYXNrUGFuZWxEYXRhfSBmcm9tICcuLi90YXNrLXBhbmVsLWRhdGEvdGFzay1wYW5lbC1kYXRhJztcbmltcG9ydCB7SGVhZGVyQ29sdW1ufSBmcm9tICcuLi8uLi8uLi9oZWFkZXIvbW9kZWxzL2hlYWRlci1jb2x1bW4nO1xuaW1wb3J0IHtUYXNrRXZlbnROb3RpZmljYXRpb259IGZyb20gJy4uLy4uLy4uL3Rhc2stY29udGVudC9tb2RlbC90YXNrLWV2ZW50LW5vdGlmaWNhdGlvbic7XG5pbXBvcnQge1Rhc2tWaWV3U2VydmljZX0gZnJvbSAnLi4vLi4vLi4vdmlldy90YXNrLXZpZXcvc2VydmljZS90YXNrLXZpZXcuc2VydmljZSc7XG5pbXBvcnQge0xvZ2dlclNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL2xvZ2dlci9zZXJ2aWNlcy9sb2dnZXIuc2VydmljZSc7XG5pbXBvcnQge05BRV9UQUJfREFUQX0gZnJvbSAnLi4vLi4vLi4vdGFicy90YWItZGF0YS1pbmplY3Rpb24tdG9rZW4vdGFiLWRhdGEtaW5qZWN0aW9uLXRva2VuJztcbmltcG9ydCB7SW5qZWN0ZWRUYWJEYXRhfSBmcm9tICcuLi8uLi8uLi90YWJzL2ludGVyZmFjZXMnO1xuXG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmNjLWFic3RyYWN0LWRlZmF1bHQtdGFzay1saXN0JyxcbiAgICB0ZW1wbGF0ZTogJydcbn0pXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3REZWZhdWx0VGFza0xpc3RDb21wb25lbnQgZXh0ZW5kcyBUYWJiZWRWaXJ0dWFsU2Nyb2xsQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcblxuICAgIHByb3RlY3RlZCBfdGFza3MkOiBPYnNlcnZhYmxlPEFycmF5PFRhc2tQYW5lbERhdGE+PjtcbiAgICBwcm90ZWN0ZWQgX3JlZGlyZWN0VGFza0lkOiBzdHJpbmc7XG4gICAgcHJvdGVjdGVkIF91bnN1YnNjcmliZSQ6IFN1YmplY3Q8dm9pZD47XG4gICAgcHJvdGVjdGVkIF9hbGxvd011bHRpT3BlbiA9IHRydWU7XG4gICAgcHJvdGVjdGVkIF90YXNrUGFuZWxSZWZzOiBNYXA8c3RyaW5nLCBNYXRFeHBhbnNpb25QYW5lbD47XG4gICAgQElucHV0KCkgbG9hZGluZyQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gICAgQElucHV0KCkgc2VsZWN0ZWRIZWFkZXJzJDogT2JzZXJ2YWJsZTxBcnJheTxIZWFkZXJDb2x1bW4+PjtcbiAgICBASW5wdXQoKSByZXNwb25zaXZlQm9keSA9IHRydWU7XG4gICAgQElucHV0KCkgZm9yY2VMb2FkRGF0YU9uT3BlbiA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIHRleHRFbGxpcHNpcyA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBzZXQgYWxsb3dNdWx0aU9wZW4oYm9vbDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9hbGxvd011bHRpT3BlbiA9IGJvb2w7XG4gICAgICAgIHRoaXMuX3Rhc2tWaWV3U2VydmljZS5hbGxvd011bHRpT3BlbiA9IGJvb2w7XG4gICAgfVxuXG4gICAgZ2V0IGFsbG93TXVsdGlPcGVuKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fYWxsb3dNdWx0aU9wZW47XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRW1pdHMgbm90aWZpY2F0aW9ucyBhYm91dCB0YXNrIGV2ZW50c1xuICAgICAqL1xuICAgIEBPdXRwdXQoKSB0YXNrRXZlbnQ6IEV2ZW50RW1pdHRlcjxUYXNrRXZlbnROb3RpZmljYXRpb24+O1xuXG4gICAgY29uc3RydWN0b3IocHJvdGVjdGVkIF90YXNrVmlld1NlcnZpY2U6IFRhc2tWaWV3U2VydmljZSxcbiAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX2xvZzogTG9nZ2VyU2VydmljZSxcbiAgICAgICAgICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KE5BRV9UQUJfREFUQSkgaW5qZWN0ZWRUYWJEYXRhOiBJbmplY3RlZFRhYkRhdGEsXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIHJvdXRlPzogQWN0aXZhdGVkUm91dGUpIHtcbiAgICAgICAgc3VwZXIoaW5qZWN0ZWRUYWJEYXRhKTtcbiAgICAgICAgdGhpcy50YXNrRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPFRhc2tFdmVudE5vdGlmaWNhdGlvbj4oKTtcbiAgICAgICAgdGhpcy5fdGFza1BhbmVsUmVmcyA9IG5ldyBNYXA8c3RyaW5nLCBNYXRFeHBhbnNpb25QYW5lbD4oKTtcbiAgICAgICAgdGhpcy5fdW5zdWJzY3JpYmUkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICAgICAgdGhpcy50YXNrRXZlbnQuY29tcGxldGUoKTtcbiAgICAgICAgdGhpcy5fdW5zdWJzY3JpYmUkLmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICB0aGlzLm9uUmVkaXJlY3QoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdHJhY2tCeShfaWR4OiBudW1iZXIsIGl0ZW06IFRhc2tQYW5lbERhdGEpOiBhbnkge1xuICAgICAgICByZXR1cm4gaXRlbS50YXNrLnN0cmluZ0lkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEVtaXRzIGFuIGV2ZW50IGludG8gdGhpcyBjb21wb25lbnQncyBAT3V0cHV0IGF0dHJpYnV0ZVxuICAgICAqIEBwYXJhbSBldmVudCB0aGUgZXZlbnQgdGhhdCB3aWxsIGJlIGVtaXR0ZWRcbiAgICAgKi9cbiAgICBwdWJsaWMgZW1pdFRhc2tFdmVudChldmVudDogVGFza0V2ZW50Tm90aWZpY2F0aW9uKSB7XG4gICAgICAgIHRoaXMudGFza0V2ZW50LmVtaXQoZXZlbnQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhZGRUb1BhbmVsUmVmcyh0YXNrOiBUYXNrUGFuZWxEYXRhLCBwYW5lbFJlZjogTWF0RXhwYW5zaW9uUGFuZWwpIHtcbiAgICAgICAgdGhpcy5fdGFza1BhbmVsUmVmcy5zZXQodGFzay50YXNrLnN0cmluZ0lkLCBwYW5lbFJlZik7XG4gICAgfVxuXG4gICAgcHVibGljIG9uUmVkaXJlY3QoKSB7XG4gICAgICAgIHRoaXMucm91dGUucXVlcnlQYXJhbXMucGlwZShmaWx0ZXIocG0gPT4gISFwbVsndGFza0lkJ10pKS5zdWJzY3JpYmUocG0gPT4ge1xuICAgICAgICAgICAgdGhpcy5fcmVkaXJlY3RUYXNrSWQgPSBwbVsndGFza0lkJ107XG4gICAgICAgICAgICB0aGlzLl90YXNrcyQucGlwZSgpLnN1YnNjcmliZSh0YXNrcyA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGFzayA9IHRhc2tzLmZpbmQodCA9PiB0LnRhc2suc3RyaW5nSWQgPT09IHRoaXMuX3JlZGlyZWN0VGFza0lkKTtcbiAgICAgICAgICAgICAgICBpZiAoISF0YXNrICYmICF0YXNrLmluaXRpYWxseUV4cGFuZGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3Rhc2tQYW5lbFJlZnMuZ2V0KHRoaXMuX3JlZGlyZWN0VGFza0lkKS5vcGVuKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3Rhc2tQYW5lbFJlZnMuZ2V0KHRoaXMuX3JlZGlyZWN0VGFza0lkKS5leHBhbmRlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3Vuc3Vic2NyaWJlJC5uZXh0KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
97
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtZGVmYXVsdC10YXNrLWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmV0Z3JpZi1jb21wb25lbnRzLWNvcmUvc3JjL2xpYi9wYW5lbC90YXNrLXBhbmVsLWxpc3QvZGVmYXVsdC10YXNrLXBhbmVsLWxpc3QvYWJzdHJhY3QtZGVmYXVsdC10YXNrLWxpc3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0QyxPQUFPLEVBQUMsNEJBQTRCLEVBQUMsTUFBTSxnREFBZ0QsQ0FBQztBQUM1RixPQUFPLEVBQWdCLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBYSxRQUFRLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2pILE9BQU8sRUFBYSxPQUFPLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFNekMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlFQUFpRSxDQUFDOzs7OztBQVE3RixNQUFNLE9BQWdCLGdDQUFpQyxTQUFRLDRCQUE0QjtJQTZCdkYsWUFBc0IsZ0JBQWlDLEVBQ2pDLElBQW1CLEVBQ0ssZUFBZ0MsRUFDeEQsS0FBc0I7UUFDeEMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBSkwscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFpQjtRQUNqQyxTQUFJLEdBQUosSUFBSSxDQUFlO1FBRW5CLFVBQUssR0FBTCxLQUFLLENBQWlCO1FBM0JsQyxvQkFBZSxHQUFHLElBQUksQ0FBQztRQUl4QixtQkFBYyxHQUFHLElBQUksQ0FBQztRQUN0Qix3QkFBbUIsR0FBRyxLQUFLLENBQUM7UUFDNUIsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFDckIsaUJBQVksR0FBWSxJQUFJLENBQUM7UUFzQmxDLElBQUksQ0FBQyxTQUFTLEdBQUcs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WTtzQkFBcEIsS0FBSztnQkFHRixjQUFjO3NCQURqQixLQUFLO2dCQWFJLFNBQVM7c0JBQWxCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge01hdEV4cGFuc2lvblBhbmVsfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9leHBhbnNpb24nO1xuaW1wb3J0IHtBY3RpdmF0ZWRSb3V0ZX0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7ZmlsdGVyfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1RhYmJlZFZpcnR1YWxTY3JvbGxDb21wb25lbnR9IGZyb20gJy4uLy4uL2Fic3RyYWN0L3RhYmJlZC12aXJ0dWFsLXNjcm9sbC5jb21wb25lbnQnO1xuaW1wb3J0IHtBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5qZWN0LCBJbnB1dCwgT25EZXN0cm95LCBPcHRpb25hbCwgT3V0cHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7T2JzZXJ2YWJsZSwgU3ViamVjdH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1Rhc2tQYW5lbERhdGF9IGZyb20gJy4uL3Rhc2stcGFuZWwtZGF0YS90YXNrLXBhbmVsLWRhdGEnO1xuaW1wb3J0IHtIZWFkZXJDb2x1bW59IGZyb20gJy4uLy4uLy4uL2hlYWRlci9tb2RlbHMvaGVhZGVyLWNvbHVtbic7XG5pbXBvcnQge1Rhc2tFdmVudE5vdGlmaWNhdGlvbn0gZnJvbSAnLi4vLi4vLi4vdGFzay1jb250ZW50L21vZGVsL3Rhc2stZXZlbnQtbm90aWZpY2F0aW9uJztcbmltcG9ydCB7VGFza1ZpZXdTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi92aWV3L3Rhc2stdmlldy9zZXJ2aWNlL3Rhc2stdmlldy5zZXJ2aWNlJztcbmltcG9ydCB7TG9nZ2VyU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vbG9nZ2VyL3NlcnZpY2VzL2xvZ2dlci5zZXJ2aWNlJztcbmltcG9ydCB7TkFFX1RBQl9EQVRBfSBmcm9tICcuLi8uLi8uLi90YWJzL3RhYi1kYXRhLWluamVjdGlvbi10b2tlbi90YWItZGF0YS1pbmplY3Rpb24tdG9rZW4nO1xuaW1wb3J0IHtJbmplY3RlZFRhYkRhdGF9IGZyb20gJy4uLy4uLy4uL3RhYnMvaW50ZXJmYWNlcyc7XG5cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICduY2MtYWJzdHJhY3QtZGVmYXVsdC10YXNrLWxpc3QnLFxuICAgIHRlbXBsYXRlOiAnJ1xufSlcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBYnN0cmFjdERlZmF1bHRUYXNrTGlzdENvbXBvbmVudCBleHRlbmRzIFRhYmJlZFZpcnR1YWxTY3JvbGxDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuXG4gICAgcHJvdGVjdGVkIF90YXNrcyQ6IE9ic2VydmFibGU8QXJyYXk8VGFza1BhbmVsRGF0YT4+O1xuICAgIHByb3RlY3RlZCBfcmVkaXJlY3RUYXNrSWQ6IHN0cmluZztcbiAgICBwcm90ZWN0ZWQgX3Vuc3Vic2NyaWJlJDogU3ViamVjdDx2b2lkPjtcbiAgICBwcm90ZWN0ZWQgX2FsbG93TXVsdGlPcGVuID0gdHJ1ZTtcbiAgICBwcm90ZWN0ZWQgX3Rhc2tQYW5lbFJlZnM6IE1hcDxzdHJpbmcsIE1hdEV4cGFuc2lvblBhbmVsPjtcbiAgICBASW5wdXQoKSBsb2FkaW5nJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgICBASW5wdXQoKSBzZWxlY3RlZEhlYWRlcnMkOiBPYnNlcnZhYmxlPEFycmF5PEhlYWRlckNvbHVtbj4+O1xuICAgIEBJbnB1dCgpIHJlc3BvbnNpdmVCb2R5ID0gdHJ1ZTtcbiAgICBASW5wdXQoKSBmb3JjZUxvYWREYXRhT25PcGVuID0gZmFsc2U7XG4gICAgQElucHV0KCkgdGV4dEVsbGlwc2lzID0gZmFsc2U7XG4gICAgQElucHV0KCkgc2hvd01vcmVNZW51OiBib29sZWFuID0gdHJ1ZTtcblxuICAgIEBJbnB1dCgpXG4gICAgc2V0IGFsbG93TXVsdGlPcGVuKGJvb2w6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fYWxsb3dNdWx0aU9wZW4gPSBib29sO1xuICAgICAgICB0aGlzLl90YXNrVmlld1NlcnZpY2UuYWxsb3dNdWx0aU9wZW4gPSBib29sO1xuICAgIH1cblxuICAgIGdldCBhbGxvd011bHRpT3BlbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FsbG93TXVsdGlPcGVuO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEVtaXRzIG5vdGlmaWNhdGlvbnMgYWJvdXQgdGFzayBldmVudHNcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgdGFza0V2ZW50OiBFdmVudEVtaXR0ZXI8VGFza0V2ZW50Tm90aWZpY2F0aW9uPjtcblxuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBfdGFza1ZpZXdTZXJ2aWNlOiBUYXNrVmlld1NlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF9sb2c6IExvZ2dlclNlcnZpY2UsXG4gICAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChOQUVfVEFCX0RBVEEpIGluamVjdGVkVGFiRGF0YTogSW5qZWN0ZWRUYWJEYXRhLFxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCByb3V0ZT86IEFjdGl2YXRlZFJvdXRlKSB7XG4gICAgICAgIHN1cGVyKGluamVjdGVkVGFiRGF0YSk7XG4gICAgICAgIHRoaXMudGFza0V2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxUYXNrRXZlbnROb3RpZmljYXRpb24+KCk7XG4gICAgICAgIHRoaXMuX3Rhc2tQYW5lbFJlZnMgPSBuZXcgTWFwPHN0cmluZywgTWF0RXhwYW5zaW9uUGFuZWw+KCk7XG4gICAgICAgIHRoaXMuX3Vuc3Vic2NyaWJlJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgICAgIHRoaXMudGFza0V2ZW50LmNvbXBsZXRlKCk7XG4gICAgICAgIHRoaXMuX3Vuc3Vic2NyaWJlJC5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgdGhpcy5vblJlZGlyZWN0KCk7XG4gICAgfVxuXG4gICAgcHVibGljIHRyYWNrQnkoX2lkeDogbnVtYmVyLCBpdGVtOiBUYXNrUGFuZWxEYXRhKTogYW55IHtcbiAgICAgICAgcmV0dXJuIGl0ZW0udGFzay5zdHJpbmdJZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBFbWl0cyBhbiBldmVudCBpbnRvIHRoaXMgY29tcG9uZW50J3MgQE91dHB1dCBhdHRyaWJ1dGVcbiAgICAgKiBAcGFyYW0gZXZlbnQgdGhlIGV2ZW50IHRoYXQgd2lsbCBiZSBlbWl0dGVkXG4gICAgICovXG4gICAgcHVibGljIGVtaXRUYXNrRXZlbnQoZXZlbnQ6IFRhc2tFdmVudE5vdGlmaWNhdGlvbikge1xuICAgICAgICB0aGlzLnRhc2tFdmVudC5lbWl0KGV2ZW50KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYWRkVG9QYW5lbFJlZnModGFzazogVGFza1BhbmVsRGF0YSwgcGFuZWxSZWY6IE1hdEV4cGFuc2lvblBhbmVsKSB7XG4gICAgICAgIHRoaXMuX3Rhc2tQYW5lbFJlZnMuc2V0KHRhc2sudGFzay5zdHJpbmdJZCwgcGFuZWxSZWYpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvblJlZGlyZWN0KCkge1xuICAgICAgICB0aGlzLnJvdXRlLnF1ZXJ5UGFyYW1zLnBpcGUoZmlsdGVyKHBtID0+ICEhcG1bJ3Rhc2tJZCddKSkuc3Vic2NyaWJlKHBtID0+IHtcbiAgICAgICAgICAgIHRoaXMuX3JlZGlyZWN0VGFza0lkID0gcG1bJ3Rhc2tJZCddO1xuICAgICAgICAgICAgdGhpcy5fdGFza3MkLnBpcGUoKS5zdWJzY3JpYmUodGFza3MgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRhc2sgPSB0YXNrcy5maW5kKHQgPT4gdC50YXNrLnN0cmluZ0lkID09PSB0aGlzLl9yZWRpcmVjdFRhc2tJZCk7XG4gICAgICAgICAgICAgICAgaWYgKCEhdGFzayAmJiAhdGFzay5pbml0aWFsbHlFeHBhbmRlZCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl90YXNrUGFuZWxSZWZzLmdldCh0aGlzLl9yZWRpcmVjdFRhc2tJZCkub3BlbigpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl90YXNrUGFuZWxSZWZzLmdldCh0aGlzLl9yZWRpcmVjdFRhc2tJZCkuZXhwYW5kZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl91bnN1YnNjcmliZSQubmV4dCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG59XG4iXX0=
@@ -132,15 +132,17 @@ export class RoutingBuilderService {
132
132
  if (view.layout.name === GroupNavigationConstants.GROUP_NAVIGATION_OUTLET) {
133
133
  return this._groupNavigationComponentResolverComponent;
134
134
  }
135
- let className;
135
+ const className = RoutingBuilderService.parseClassNameFromView(view, configPath);
136
+ return this._viewService.resolveNameToClass(className);
137
+ }
138
+ static parseClassNameFromView(view, configPath) {
136
139
  if (!!view.layout.componentName) {
137
- className = `${classify(view.layout.componentName)}Component`;
140
+ return `${classify(view.layout.componentName)}Component`;
138
141
  }
139
142
  else {
140
143
  const classInfo = new ViewClassInfo(configPath, view.layout.name, view.layout.componentName);
141
- className = classInfo.className;
144
+ return classInfo.className;
142
145
  }
143
- return this._viewService.resolveNameToClass(className);
144
146
  }
145
147
  defaultRoutesRedirects() {
146
148
  const result = [];
@@ -176,4 +178,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
176
178
  type: Inject,
177
179
  args: [NAE_GROUP_NAVIGATION_COMPONENT_RESOLVER_COMPONENT]
178
180
  }] }]; } });
179
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGluZy1idWlsZGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZXRncmlmLWNvbXBvbmVudHMtY29yZS9zcmMvbGliL3JvdXRpbmcvcm91dGluZy1idWlsZGVyL3JvdXRpbmctYnVpbGRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBTyxNQUFNLGVBQWUsQ0FBQztBQUtqRSxPQUFPLEVBQUMsMEJBQTBCLEVBQUMsTUFBTSxrRUFBa0UsQ0FBQztBQUM1RyxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDL0QsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGtEQUFrRCxDQUFDO0FBRTFFLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLHVEQUF1RCxDQUFDO0FBQzVGLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDZDQUE2QyxDQUFDO0FBQzdFLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLCtDQUErQyxDQUFDO0FBQ2hGLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLG1EQUFtRCxDQUFDO0FBQzNGLE9BQU8sRUFDSCxpREFBaUQsRUFDcEQsTUFBTSxzRkFBc0YsQ0FBQzs7Ozs7OztBQVE5RixNQUFNLENBQUMsTUFBTSw4QkFBOEIsR0FBRyxZQUFZLENBQUM7QUFFM0Q7O0dBRUc7QUFJSCxNQUFNLE9BQU8scUJBQXFCO0lBSTlCLFlBQVksTUFBYyxFQUNOLGNBQW9DLEVBQ3BDLFlBQXlCLEVBQ3pCLE9BQXNCLEVBQ3RCLDhCQUFxRSxFQUVyRSwwQ0FBbUc7UUFMbkcsbUJBQWMsR0FBZCxjQUFjLENBQXNCO1FBQ3BDLGlCQUFZLEdBQVosWUFBWSxDQUFhO1FBQ3pCLFlBQU8sR0FBUCxPQUFPLENBQWU7UUFDdEIsbUNBQThCLEdBQTlCLDhCQUE4QixDQUF1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RUFBRSxNQUFNO2lCQUNwQixDQUFDLENBQUM7YUFDTjtZQUNELElBQUksQ0FBQyxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLEVBQUU7Z0JBQzNDLE1BQU0sQ0FBQyxJQUFJLENBQUM7b0JBQ1IsSUFBSSxFQUFFLElBQUk7b0JBQ1YsVUFBVSxFQUFFLGNBQWMsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCO2lCQUN0RCxDQUFDLENBQUM7YUFDTjtTQUNKO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQzs7bUhBMUpRLHFCQUFxQix5TEFTRSxpREFBaUQ7dUhBVHhFLHFCQUFxQixjQUZsQixNQUFNOzRGQUVULHFCQUFxQjtrQkFIakMsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckI7OzBCQVVnQixRQUFROzswQkFBSSxNQUFNOzJCQUFDLGlEQUFpRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0LCBJbmplY3RhYmxlLCBPcHRpb25hbCwgVHlwZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NvbmZpZ3VyYXRpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi9jb25maWd1cmF0aW9uL2NvbmZpZ3VyYXRpb24uc2VydmljZSc7XG5pbXBvcnQge1ZpZXdTZXJ2aWNlfSBmcm9tICcuLi92aWV3LXNlcnZpY2Uvdmlldy5zZXJ2aWNlJztcbmltcG9ydCB7Um91dGUsIFJvdXRlcn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7Vmlld30gZnJvbSAnLi4vLi4vLi4vY29tbW9ucy9zY2hlbWEnO1xuaW1wb3J0IHtBdXRoZW50aWNhdGlvbkd1YXJkU2VydmljZX0gZnJvbSAnLi4vLi4vYXV0aGVudGljYXRpb24vc2VydmljZXMvZ3VhcmQvYXV0aGVudGljYXRpb24tZ3VhcmQuc2VydmljZSc7XG5pbXBvcnQge1ZpZXdDbGFzc0luZm99IGZyb20gJy4uLy4uLy4uL2NvbW1vbnMvdmlldy1jbGFzcy1pbmZvJztcbmltcG9ydCB7Y2xhc3NpZnl9IGZyb20gJy4uLy4uLy4uL2NvbW1vbnMvYW5ndWxhci1jbGktZGV2a2l0LWNvcmUtc3RyaW5ncyc7XG5pbXBvcnQge0xvZ2dlclNlcnZpY2V9IGZyb20gJy4uLy4uL2xvZ2dlci9zZXJ2aWNlcy9sb2dnZXIuc2VydmljZSc7XG5pbXBvcnQge0F1dGhvcml0eUd1YXJkU2VydmljZX0gZnJvbSAnLi4vLi4vYXV0aG9yaXphdGlvbi9hdXRob3JpdHkvYXV0aG9yaXR5LWd1YXJkLnNlcnZpY2UnO1xuaW1wb3J0IHtSb2xlR3VhcmRTZXJ2aWNlfSBmcm9tICcuLi8uLi9hdXRob3JpemF0aW9uL3JvbGUvcm9sZS1ndWFyZC5zZXJ2aWNlJztcbmltcG9ydCB7R3JvdXBHdWFyZFNlcnZpY2V9IGZyb20gJy4uLy4uL2F1dGhvcml6YXRpb24vZ3JvdXAvZ3JvdXAtZ3VhcmQuc2VydmljZSc7XG5pbXBvcnQge0dyb3VwTmF2aWdhdGlvbkNvbnN0YW50c30gZnJvbSAnLi4vLi4vbmF2aWdhdGlvbi9tb2RlbC9ncm91cC1uYXZpZ2F0aW9uLWNvbnN0YW50cyc7XG5pbXBvcnQge1xuICAgIE5BRV9HUk9VUF9OQVZJR0FUSU9OX0NPTVBPTkVOVF9SRVNPTFZFUl9DT01QT05FTlRcbn0gZnJvbSAnLi4vLi4vbmF2aWdhdGlvbi9tb2RlbC9ncm91cC1uYXZpZ2F0aW9uLWNvbXBvbmVudC1yZXNvbHZlci1jb21wb25lbnQtaW5qZWN0aW9uLXRva2VuJztcbmltcG9ydCB7XG4gICAgQWJzdHJhY3RHcm91cE5hdmlnYXRpb25Db21wb25lbnRSZXNvbHZlckNvbXBvbmVudFxufSBmcm9tICcuLi8uLi9uYXZpZ2F0aW9uL2dyb3VwLW5hdmlnYXRpb24tY29tcG9uZW50LXJlc29sdmVyL2Fic3RyYWN0LWdyb3VwLW5hdmlnYXRpb24tY29tcG9uZW50LXJlc29sdmVyLmNvbXBvbmVudCc7XG5pbXBvcnQge1xuICAgIER5bmFtaWNOYXZpZ2F0aW9uUm91dGVQcm92aWRlclNlcnZpY2Vcbn0gZnJvbSAnLi4vZHluYW1pYy1uYXZpZ2F0aW9uLXJvdXRlLXByb3ZpZGVyL2R5bmFtaWMtbmF2aWdhdGlvbi1yb3V0ZS1wcm92aWRlci5zZXJ2aWNlJztcblxuZXhwb3J0IGNvbnN0IE5BRV9ST1VUSU5HX0NPTkZJR1VSQVRJT05fUEFUSCA9IFwiY29uZmlnUGF0aFwiO1xuXG4vKipcbiAqIFVzZXMgdGhlIGluZm9ybWF0aW9uIGZyb20gbmFlLmpzb24gdG8gY29uc3RydWN0IHRoZSBhcHBsaWNhdGlvbidzIHJvdXRpbmdcbiAqL1xuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBSb3V0aW5nQnVpbGRlclNlcnZpY2Uge1xuXG4gICAgcHJpdmF0ZSBfZ3JvdXBOYXZpZ2F0aW9uUm91dGVHZW5lcmF0ZWQgPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKHJvdXRlcjogUm91dGVyLFxuICAgICAgICAgICAgICAgIHByaXZhdGUgX2NvbmZpZ1NlcnZpY2U6IENvbmZpZ3VyYXRpb25TZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHByaXZhdGUgX3ZpZXdTZXJ2aWNlOiBWaWV3U2VydmljZSxcbiAgICAgICAgICAgICAgICBwcml2YXRlIF9sb2dnZXI6IExvZ2dlclNlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSBfZHluYW1pY05hdmlnYXRpb25Sb3V0ZVNlcnZpY2U6IER5bmFtaWNOYXZpZ2F0aW9uUm91dGVQcm92aWRlclNlcnZpY2UsXG4gICAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChOQUVfR1JPVVBfTkFWSUdBVElPTl9DT01QT05FTlRfUkVTT0xWRVJfQ09NUE9ORU5UKVxuICAgICAgICAgICAgICAgIHByaXZhdGUgX2dyb3VwTmF2aWdhdGlvbkNvbXBvbmVudFJlc29sdmVyQ29tcG9uZW50OiBUeXBlPEFic3RyYWN0R3JvdXBOYXZpZ2F0aW9uQ29tcG9uZW50UmVzb2x2ZXJDb21wb25lbnQ+KSB7XG4gICAgICAgIHJvdXRlci5yZWxhdGl2ZUxpbmtSZXNvbHV0aW9uID0gJ2xlZ2FjeSc7XG4gICAgICAgIHJvdXRlci5jb25maWcuc3BsaWNlKDAsIHJvdXRlci5jb25maWcubGVuZ3RoKTtcbiAgICAgICAgZm9yIChjb25zdCBbcGF0aFNlZ21lbnQsIHZpZXddIG9mIE9iamVjdC5lbnRyaWVzKF9jb25maWdTZXJ2aWNlLmdldCgpLnZpZXdzKSkge1xuICAgICAgICAgICAgY29uc3Qgcm91dGUgPSB0aGlzLmNvbnN0cnVjdFJvdXRlT2JqZWN0KHZpZXcsIHBhdGhTZWdtZW50KTtcbiAgICAgICAgICAgIGlmIChyb3V0ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgcm91dGVyLmNvbmZpZy5wdXNoKHJvdXRlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByb3V0ZXIuY29uZmlnLnB1c2goLi4udGhpcy5kZWZhdWx0Um91dGVzUmVkaXJlY3RzKCkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY29uc3RydWN0Um91dGVPYmplY3QodmlldzogVmlldywgY29uZmlnUGF0aDogc3RyaW5nLCBhbmNlc3RvcnM6IEFycmF5PFJvdXRlPiA9IFtdKTogUm91dGUgfCB1bmRlZmluZWQge1xuICAgICAgICBjb25zdCBjb21wb25lbnQgPSB0aGlzLnJlc29sdmVDb21wb25lbnRDbGFzcyh2aWV3LCBjb25maWdQYXRoKTtcbiAgICAgICAgaWYgKGNvbXBvbmVudCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdmlldy5yb3V0aW5nKSB7XG4gICAgICAgICAgICB0aGlzLl9sb2dnZXIud2FybihgbmFlLmpzb24gY29uZmlndXJhdGlvbiBpcyBpbnZhbGlkLiBWaWV3IGF0IHBhdGggJyR7Y29uZmlnUGF0aH0nYCArXG4gICAgICAgICAgICAgICAgYCBtdXN0IGRlZmluZSBhICdyb3V0aW5nJyBhdHRyaWJ1dGUuIFNraXBwaW5nIHRoaXMgdmlldyBmb3Igcm91dGluZyBnZW5lcmF0aW9uLmApO1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHJvdXRlOiBSb3V0ZSA9IHtcbiAgICAgICAgICAgIHBhdGg6IHZpZXcucm91dGluZy5wYXRoLFxuICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICAgIFtOQUVfUk9VVElOR19DT05GSUdVUkFUSU9OX1BBVEhdOiBjb25maWdQYXRoXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgY29tcG9uZW50XG4gICAgICAgIH07XG5cbiAgICAgICAgaWYgKHZpZXc/LmxheW91dD8ubmFtZSA9PT0gR3JvdXBOYXZpZ2F0aW9uQ29uc3RhbnRzLkdST1VQX05BVklHQVRJT05fT1VUTEVUKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5fZ3JvdXBOYXZpZ2F0aW9uUm91dGVHZW5lcmF0ZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9sb2dnZXIud2FybihgTXVsdGlwbGUgZ3JvdXBOYXZpZ2F0aW9uT3V0bGV0cyBhcmUgcHJlc2VudCBpbiBuYWUuanNvbi4gRHVwbGljYXRlIGVudHJ5IGZvdW5kIGF0IHBhdGggJHtjb25maWdQYXRofWApO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9sb2dnZXIuZGVidWcoYEdyb3VwTmF2aWdhdGlvbk91dGxldCBmb3VuZCBpbiBuYWUuanNvbiBhdCBwYXRoICcke2NvbmZpZ1BhdGh9J2ApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBwYXRoTm9QYXJhbXMgPSByb3V0ZS5wYXRoO1xuICAgICAgICAgICAgcm91dGUucGF0aCA9IGAke3BhdGhOb1BhcmFtc30vOiR7R3JvdXBOYXZpZ2F0aW9uQ29uc3RhbnRzLkdST1VQX05BVklHQVRJT05fUk9VVEVSX1BBUkFNfWA7XG4gICAgICAgICAgICByb3V0ZS5jYW5BY3RpdmF0ZSA9IFtBdXRoZW50aWNhdGlvbkd1YXJkU2VydmljZV07XG4gICAgICAgICAgICBjb25zdCBwYXJlbnRQYXRoU2VnbWVudHMgPSBhbmNlc3RvcnMubWFwKGEgPT4gYS5wYXRoKTtcbiAgICAgICAgICAgIHBhcmVudFBhdGhTZWdtZW50cy5wdXNoKHBhdGhOb1BhcmFtcyk7XG4gICAgICAgICAgICB0aGlzLl9keW5hbWljTmF2aWdhdGlvblJvdXRlU2VydmljZS5yb3V0ZSA9IHBhcmVudFBhdGhTZWdtZW50cy5qb2luKCcvJyk7XG5cbiAgICAgICAgICAgIHRoaXMuX2dyb3VwTmF2aWdhdGlvblJvdXRlR2VuZXJhdGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIHJldHVybiByb3V0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh2aWV3LnJvdXRpbmcubWF0Y2ggIT09IHVuZGVmaW5lZCAmJiB2aWV3LnJvdXRpbmcubWF0Y2gpIHtcbiAgICAgICAgICAgIHJvdXRlWydwYXRoTWF0Y2gnXSA9ICdmdWxsJztcbiAgICAgICAgfVxuICAgICAgICByb3V0ZVsnY2FuQWN0aXZhdGUnXSA9IFtdO1xuICAgICAgICBpZiAodmlldy5hY2Nlc3MgPT09ICdwcml2YXRlJ1xuICAgICAgICAgICAgfHwgdmlldy5hY2Nlc3MuaGFzT3duUHJvcGVydHkoJ3JvbGUnKVxuICAgICAgICAgICAgfHwgdmlldy5hY2Nlc3MuaGFzT3duUHJvcGVydHkoJ2dyb3VwJylcbiAgICAgICAgICAgIHx8IHZpZXcuYWNjZXNzLmhhc093blByb3BlcnR5KCdhdXRob3JpdHknKSkge1xuICAgICAgICAgICAgcm91dGVbJ2NhbkFjdGl2YXRlJ10ucHVzaChBdXRoZW50aWNhdGlvbkd1YXJkU2VydmljZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHZpZXcuYWNjZXNzLmhhc093blByb3BlcnR5KCdyb2xlJykpIHtcbiAgICAgICAgICAgIHJvdXRlWydjYW5BY3RpdmF0ZSddLnB1c2goUm9sZUd1YXJkU2VydmljZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHZpZXcuYWNjZXNzLmhhc093blByb3BlcnR5KCdhdXRob3JpdHknKSkge1xuICAgICAgICAgICAgcm91dGVbJ2NhbkFjdGl2YXRlJ10ucHVzaChBdXRob3JpdHlHdWFyZFNlcnZpY2UpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh2aWV3LmFjY2Vzcy5oYXNPd25Qcm9wZXJ0eSgnZ3JvdXAnKSkge1xuICAgICAgICAgICAgcm91dGVbJ2NhbkFjdGl2YXRlJ10ucHVzaChHcm91cEd1YXJkU2VydmljZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCEhdmlldy5jaGlsZHJlbikge1xuICAgICAgICAgICAgcm91dGVbJ2NoaWxkcmVuJ10gPSBbXTtcbiAgICAgICAgICAgIE9iamVjdC5lbnRyaWVzKHZpZXcuY2hpbGRyZW4pLmZvckVhY2goKFtjb25maWdQYXRoU2VnbWVudCwgY2hpbGRWaWV3XSkgPT4ge1xuICAgICAgICAgICAgICAgIC8vIFRPRE8gY2hlY2sgaWYgcm91dGVzIGFyZSBjb25zdHJ1Y3RlZCBjb3JyZWN0bHkgcmVnYXJkaW5nIGVtcHR5IHJvdXRlIHNlZ21lbnRzXG4gICAgICAgICAgICAgICAgY29uc3QgY2hpbGRSb3V0ZSA9IHRoaXMuY29uc3RydWN0Um91dGVPYmplY3QoY2hpbGRWaWV3LCBgJHtjb25maWdQYXRofS8ke2NvbmZpZ1BhdGhTZWdtZW50fWAsIFsuLi5hbmNlc3RvcnMsIHJvdXRlXSk7XG4gICAgICAgICAgICAgICAgaWYgKGNoaWxkUm91dGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICByb3V0ZVsnY2hpbGRyZW4nXS5wdXNoKGNoaWxkUm91dGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGlmICh2aWV3Py5sYXlvdXQ/Lm5hbWUgPT09ICd0YWJWaWV3Jykge1xuICAgICAgICAgICAgaWYgKCF2aWV3LmNoaWxkcmVuKSB7XG4gICAgICAgICAgICAgICAgcm91dGVbJ2NoaWxkcmVuJ10gPSBbXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJvdXRlWydjaGlsZHJlbiddLnB1c2goe1xuICAgICAgICAgICAgICAgIHBhdGg6ICcqKicsXG4gICAgICAgICAgICAgICAgY29tcG9uZW50XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiByb3V0ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlc29sdmVDb21wb25lbnRDbGFzcyh2aWV3OiBWaWV3LCBjb25maWdQYXRoOiBzdHJpbmcpOiBUeXBlPGFueT4gfCB1bmRlZmluZWQge1xuICAgICAgICBsZXQgcmVzdWx0O1xuICAgICAgICBpZiAoISF2aWV3LmNvbXBvbmVudCkge1xuICAgICAgICAgICAgcmVzdWx0ID0gdGhpcy5fdmlld1NlcnZpY2UucmVzb2x2ZU5hbWVUb0NsYXNzKHZpZXcuY29tcG9uZW50LmNsYXNzKTtcbiAgICAgICAgfSBlbHNlIGlmICghIXZpZXcubGF5b3V0KSB7XG4gICAgICAgICAgICByZXN1bHQgPSB0aGlzLnJlc29sdmVDb21wb25lbnRDbGFzc0Zyb21MYXlvdXQodmlldywgY29uZmlnUGF0aCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9sb2dnZXIud2FybihgbmFlLmpzb24gY29uZmlndXJhdGlvbiBpcyBpbnZhbGlkLiBWaWV3IGF0IHBhdGggJyR7Y29uZmlnUGF0aH0nYCArXG4gICAgICAgICAgICAgICAgYCBtdXN0IGRlZmluZSBlaXRoZXIgYSAnbGF5b3V0JyBvciBhICdjb21wb25lbnQnIGF0dHJpYnV0ZS4gU2tpcHBpbmcgdGhpcyB2aWV3IGZvciByb3V0aW5nIGdlbmVyYXRpb24uYCk7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIGlmIChyZXN1bHQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5fbG9nZ2VyLndhcm4oYFNvbWUgdmlld3MgZnJvbSBuYWUuanNvbiBjb25maWd1cmF0aW9uIGhhdmUgbm90IGJlZW4gY3JlYXRlZCBpbiB0aGUgcHJvamVjdC5gICtcbiAgICAgICAgICAgICAgICBgIFJ1biBjcmVhdGUtdmlldyBzY2hlbWF0aWMgdG8gcmVjdGlmeSB0aGlzLiBTa2lwcGluZyB0aGlzIHZpZXcgZm9yIHJvdXRpbmcgZ2VuZXJhdGlvbi5gKTtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlc29sdmVDb21wb25lbnRDbGFzc0Zyb21MYXlvdXQodmlldzogVmlldywgY29uZmlnUGF0aDogc3RyaW5nKTogVHlwZTxhbnk+IHwgdW5kZWZpbmVkIHtcbiAgICAgICAgaWYgKHZpZXcubGF5b3V0Lm5hbWUgPT09IEdyb3VwTmF2aWdhdGlvbkNvbnN0YW50cy5HUk9VUF9OQVZJR0FUSU9OX09VVExFVCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2dyb3VwTmF2aWdhdGlvbkNvbXBvbmVudFJlc29sdmVyQ29tcG9uZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGNsYXNzTmFtZTtcbiAgICAgICAgaWYgKCEhdmlldy5sYXlvdXQuY29tcG9uZW50TmFtZSkge1xuICAgICAgICAgICAgY2xhc3NOYW1lID0gYCR7Y2xhc3NpZnkodmlldy5sYXlvdXQuY29tcG9uZW50TmFtZSl9Q29tcG9uZW50YDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGNsYXNzSW5mbyA9IG5ldyBWaWV3Q2xhc3NJbmZvKGNvbmZpZ1BhdGgsIHZpZXcubGF5b3V0Lm5hbWUsIHZpZXcubGF5b3V0LmNvbXBvbmVudE5hbWUpO1xuICAgICAgICAgICAgY2xhc3NOYW1lID0gY2xhc3NJbmZvLmNsYXNzTmFtZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5fdmlld1NlcnZpY2UucmVzb2x2ZU5hbWVUb0NsYXNzKGNsYXNzTmFtZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBkZWZhdWx0Um91dGVzUmVkaXJlY3RzKCk6IEFycmF5PFJvdXRlPiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IFtdO1xuICAgICAgICBjb25zdCBzZXJ2aWNlc0NvbmZpZyA9IHRoaXMuX2NvbmZpZ1NlcnZpY2UuZ2V0U2VydmljZXNDb25maWd1cmF0aW9uKCk7XG4gICAgICAgIGlmICghIXNlcnZpY2VzQ29uZmlnICYmICEhc2VydmljZXNDb25maWcucm91dGluZykge1xuICAgICAgICAgICAgaWYgKCEhc2VydmljZXNDb25maWcucm91dGluZy5kZWZhdWx0UmVkaXJlY3QpIHtcbiAgICAgICAgICAgICAgICByZXN1bHQucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgIHBhdGg6ICcnLFxuICAgICAgICAgICAgICAgICAgICByZWRpcmVjdFRvOiBzZXJ2aWNlc0NvbmZpZy5yb3V0aW5nLmRlZmF1bHRSZWRpcmVjdCxcbiAgICAgICAgICAgICAgICAgICAgcGF0aE1hdGNoOiAnZnVsbCdcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghIXNlcnZpY2VzQ29uZmlnLnJvdXRpbmcud2lsZGNhcmRSZWRpcmVjdCkge1xuICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgcGF0aDogJyoqJyxcbiAgICAgICAgICAgICAgICAgICAgcmVkaXJlY3RUbzogc2VydmljZXNDb25maWcucm91dGluZy53aWxkY2FyZFJlZGlyZWN0XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG59XG4iXX0=
181
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGluZy1idWlsZGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZXRncmlmLWNvbXBvbmVudHMtY29yZS9zcmMvbGliL3JvdXRpbmcvcm91dGluZy1idWlsZGVyL3JvdXRpbmctYnVpbGRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBTyxNQUFNLGVBQWUsQ0FBQztBQUtqRSxPQUFPLEVBQUMsMEJBQTBCLEVBQUMsTUFBTSxrRUFBa0UsQ0FBQztBQUM1RyxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDL0QsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGtEQUFrRCxDQUFDO0FBRTFFLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLHVEQUF1RCxDQUFDO0FBQzVGLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDZDQUE2QyxDQUFDO0FBQzdFLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLCtDQUErQyxDQUFDO0FBQ2hGLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLG1EQUFtRCxDQUFDO0FBQzNGLE9BQU8sRUFDSCxpREFBaUQsRUFDcEQsTUFBTSxzRkFBc0YsQ0FBQzs7Ozs7OztBQVE5RixNQUFNLENBQUMsTUFBTSw4QkFBOEIsR0FBRyxZQUFZLENBQUM7QUFFM0Q7O0dBRUc7QUFJSCxNQUFNLE9BQU8scUJBQXFCO0lBSTlCLFlBQVksTUFBYyxFQUNOLGNBQW9DLEVBQ3BDLFlBQXlCLEVBQ3pCLE9BQXNCLEVBQ3RCLDhCQUFxRSxFQUVyRSwwQ0FBbUc7UUFMbkcsbUJBQWMsR0FBZCxjQUFjLENBQXNCO1FBQ3BDLGlCQUFZLEdBQVosWUFBWSxDQUFhO1FBQ3pCLFlBQU8sR0FBUCxPQUFPLENBQWU7UUFDdEIsbUNBQThCLEdBQTlCLDhCQUE4QixDQUF1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TUFBTSxDQUFDLElBQUksQ0FBQztvQkFDUixJQUFJLEVBQUUsRUFBRTtvQkFDUixVQUFVLEVBQUUsY0FBYyxDQUFDLE9BQU8sQ0FBQyxlQUFlO29CQUNsRCxTQUFTLEVBQUUsTUFBTTtpQkFDcEIsQ0FBQyxDQUFDO2FBQ047WUFDRCxJQUFJLENBQUMsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLGdCQUFnQixFQUFFO2dCQUMzQyxNQUFNLENBQUMsSUFBSSxDQUFDO29CQUNSLElBQUksRUFBRSxJQUFJO29CQUNWLFVBQVUsRUFBRSxjQUFjLENBQUMsT0FBTyxDQUFDLGdCQUFnQjtpQkFDdEQsQ0FBQyxDQUFDO2FBQ047U0FDSjtRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7O21IQTdKUSxxQkFBcUIseUxBU0UsaURBQWlEO3VIQVR4RSxxQkFBcUIsY0FGbEIsTUFBTTs0RkFFVCxxQkFBcUI7a0JBSGpDLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCOzswQkFVZ0IsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxpREFBaUQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdCwgSW5qZWN0YWJsZSwgT3B0aW9uYWwsIFR5cGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDb25maWd1cmF0aW9uU2VydmljZX0gZnJvbSAnLi4vLi4vY29uZmlndXJhdGlvbi9jb25maWd1cmF0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHtWaWV3U2VydmljZX0gZnJvbSAnLi4vdmlldy1zZXJ2aWNlL3ZpZXcuc2VydmljZSc7XG5pbXBvcnQge1JvdXRlLCBSb3V0ZXJ9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1ZpZXd9IGZyb20gJy4uLy4uLy4uL2NvbW1vbnMvc2NoZW1hJztcbmltcG9ydCB7QXV0aGVudGljYXRpb25HdWFyZFNlcnZpY2V9IGZyb20gJy4uLy4uL2F1dGhlbnRpY2F0aW9uL3NlcnZpY2VzL2d1YXJkL2F1dGhlbnRpY2F0aW9uLWd1YXJkLnNlcnZpY2UnO1xuaW1wb3J0IHtWaWV3Q2xhc3NJbmZvfSBmcm9tICcuLi8uLi8uLi9jb21tb25zL3ZpZXctY2xhc3MtaW5mbyc7XG5pbXBvcnQge2NsYXNzaWZ5fSBmcm9tICcuLi8uLi8uLi9jb21tb25zL2FuZ3VsYXItY2xpLWRldmtpdC1jb3JlLXN0cmluZ3MnO1xuaW1wb3J0IHtMb2dnZXJTZXJ2aWNlfSBmcm9tICcuLi8uLi9sb2dnZXIvc2VydmljZXMvbG9nZ2VyLnNlcnZpY2UnO1xuaW1wb3J0IHtBdXRob3JpdHlHdWFyZFNlcnZpY2V9IGZyb20gJy4uLy4uL2F1dGhvcml6YXRpb24vYXV0aG9yaXR5L2F1dGhvcml0eS1ndWFyZC5zZXJ2aWNlJztcbmltcG9ydCB7Um9sZUd1YXJkU2VydmljZX0gZnJvbSAnLi4vLi4vYXV0aG9yaXphdGlvbi9yb2xlL3JvbGUtZ3VhcmQuc2VydmljZSc7XG5pbXBvcnQge0dyb3VwR3VhcmRTZXJ2aWNlfSBmcm9tICcuLi8uLi9hdXRob3JpemF0aW9uL2dyb3VwL2dyb3VwLWd1YXJkLnNlcnZpY2UnO1xuaW1wb3J0IHtHcm91cE5hdmlnYXRpb25Db25zdGFudHN9IGZyb20gJy4uLy4uL25hdmlnYXRpb24vbW9kZWwvZ3JvdXAtbmF2aWdhdGlvbi1jb25zdGFudHMnO1xuaW1wb3J0IHtcbiAgICBOQUVfR1JPVVBfTkFWSUdBVElPTl9DT01QT05FTlRfUkVTT0xWRVJfQ09NUE9ORU5UXG59IGZyb20gJy4uLy4uL25hdmlnYXRpb24vbW9kZWwvZ3JvdXAtbmF2aWdhdGlvbi1jb21wb25lbnQtcmVzb2x2ZXItY29tcG9uZW50LWluamVjdGlvbi10b2tlbic7XG5pbXBvcnQge1xuICAgIEFic3RyYWN0R3JvdXBOYXZpZ2F0aW9uQ29tcG9uZW50UmVzb2x2ZXJDb21wb25lbnRcbn0gZnJvbSAnLi4vLi4vbmF2aWdhdGlvbi9ncm91cC1uYXZpZ2F0aW9uLWNvbXBvbmVudC1yZXNvbHZlci9hYnN0cmFjdC1ncm91cC1uYXZpZ2F0aW9uLWNvbXBvbmVudC1yZXNvbHZlci5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgICBEeW5hbWljTmF2aWdhdGlvblJvdXRlUHJvdmlkZXJTZXJ2aWNlXG59IGZyb20gJy4uL2R5bmFtaWMtbmF2aWdhdGlvbi1yb3V0ZS1wcm92aWRlci9keW5hbWljLW5hdmlnYXRpb24tcm91dGUtcHJvdmlkZXIuc2VydmljZSc7XG5cbmV4cG9ydCBjb25zdCBOQUVfUk9VVElOR19DT05GSUdVUkFUSU9OX1BBVEggPSBcImNvbmZpZ1BhdGhcIjtcblxuLyoqXG4gKiBVc2VzIHRoZSBpbmZvcm1hdGlvbiBmcm9tIG5hZS5qc29uIHRvIGNvbnN0cnVjdCB0aGUgYXBwbGljYXRpb24ncyByb3V0aW5nXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgUm91dGluZ0J1aWxkZXJTZXJ2aWNlIHtcblxuICAgIHByaXZhdGUgX2dyb3VwTmF2aWdhdGlvblJvdXRlR2VuZXJhdGVkID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3Rvcihyb3V0ZXI6IFJvdXRlcixcbiAgICAgICAgICAgICAgICBwcml2YXRlIF9jb25maWdTZXJ2aWNlOiBDb25maWd1cmF0aW9uU2VydmljZSxcbiAgICAgICAgICAgICAgICBwcml2YXRlIF92aWV3U2VydmljZTogVmlld1NlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSBfbG9nZ2VyOiBMb2dnZXJTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHByaXZhdGUgX2R5bmFtaWNOYXZpZ2F0aW9uUm91dGVTZXJ2aWNlOiBEeW5hbWljTmF2aWdhdGlvblJvdXRlUHJvdmlkZXJTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoTkFFX0dST1VQX05BVklHQVRJT05fQ09NUE9ORU5UX1JFU09MVkVSX0NPTVBPTkVOVClcbiAgICAgICAgICAgICAgICBwcml2YXRlIF9ncm91cE5hdmlnYXRpb25Db21wb25lbnRSZXNvbHZlckNvbXBvbmVudDogVHlwZTxBYnN0cmFjdEdyb3VwTmF2aWdhdGlvbkNvbXBvbmVudFJlc29sdmVyQ29tcG9uZW50Pikge1xuICAgICAgICByb3V0ZXIucmVsYXRpdmVMaW5rUmVzb2x1dGlvbiA9ICdsZWdhY3knO1xuICAgICAgICByb3V0ZXIuY29uZmlnLnNwbGljZSgwLCByb3V0ZXIuY29uZmlnLmxlbmd0aCk7XG4gICAgICAgIGZvciAoY29uc3QgW3BhdGhTZWdtZW50LCB2aWV3XSBvZiBPYmplY3QuZW50cmllcyhfY29uZmlnU2VydmljZS5nZXQoKS52aWV3cykpIHtcbiAgICAgICAgICAgIGNvbnN0IHJvdXRlID0gdGhpcy5jb25zdHJ1Y3RSb3V0ZU9iamVjdCh2aWV3LCBwYXRoU2VnbWVudCk7XG4gICAgICAgICAgICBpZiAocm91dGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHJvdXRlci5jb25maWcucHVzaChyb3V0ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcm91dGVyLmNvbmZpZy5wdXNoKC4uLnRoaXMuZGVmYXVsdFJvdXRlc1JlZGlyZWN0cygpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNvbnN0cnVjdFJvdXRlT2JqZWN0KHZpZXc6IFZpZXcsIGNvbmZpZ1BhdGg6IHN0cmluZywgYW5jZXN0b3JzOiBBcnJheTxSb3V0ZT4gPSBbXSk6IFJvdXRlIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgY29uc3QgY29tcG9uZW50ID0gdGhpcy5yZXNvbHZlQ29tcG9uZW50Q2xhc3ModmlldywgY29uZmlnUGF0aCk7XG4gICAgICAgIGlmIChjb21wb25lbnQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXZpZXcucm91dGluZykge1xuICAgICAgICAgICAgdGhpcy5fbG9nZ2VyLndhcm4oYG5hZS5qc29uIGNvbmZpZ3VyYXRpb24gaXMgaW52YWxpZC4gVmlldyBhdCBwYXRoICcke2NvbmZpZ1BhdGh9J2AgK1xuICAgICAgICAgICAgICAgIGAgbXVzdCBkZWZpbmUgYSAncm91dGluZycgYXR0cmlidXRlLiBTa2lwcGluZyB0aGlzIHZpZXcgZm9yIHJvdXRpbmcgZ2VuZXJhdGlvbi5gKTtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCByb3V0ZTogUm91dGUgPSB7XG4gICAgICAgICAgICBwYXRoOiB2aWV3LnJvdXRpbmcucGF0aCxcbiAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICBbTkFFX1JPVVRJTkdfQ09ORklHVVJBVElPTl9QQVRIXTogY29uZmlnUGF0aFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGNvbXBvbmVudFxuICAgICAgICB9O1xuXG4gICAgICAgIGlmICh2aWV3Py5sYXlvdXQ/Lm5hbWUgPT09IEdyb3VwTmF2aWdhdGlvbkNvbnN0YW50cy5HUk9VUF9OQVZJR0FUSU9OX09VVExFVCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuX2dyb3VwTmF2aWdhdGlvblJvdXRlR2VuZXJhdGVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fbG9nZ2VyLndhcm4oYE11bHRpcGxlIGdyb3VwTmF2aWdhdGlvbk91dGxldHMgYXJlIHByZXNlbnQgaW4gbmFlLmpzb24uIER1cGxpY2F0ZSBlbnRyeSBmb3VuZCBhdCBwYXRoICR7Y29uZmlnUGF0aH1gKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fbG9nZ2VyLmRlYnVnKGBHcm91cE5hdmlnYXRpb25PdXRsZXQgZm91bmQgaW4gbmFlLmpzb24gYXQgcGF0aCAnJHtjb25maWdQYXRofSdgKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgcGF0aE5vUGFyYW1zID0gcm91dGUucGF0aDtcbiAgICAgICAgICAgIHJvdXRlLnBhdGggPSBgJHtwYXRoTm9QYXJhbXN9Lzoke0dyb3VwTmF2aWdhdGlvbkNvbnN0YW50cy5HUk9VUF9OQVZJR0FUSU9OX1JPVVRFUl9QQVJBTX1gO1xuICAgICAgICAgICAgcm91dGUuY2FuQWN0aXZhdGUgPSBbQXV0aGVudGljYXRpb25HdWFyZFNlcnZpY2VdO1xuICAgICAgICAgICAgY29uc3QgcGFyZW50UGF0aFNlZ21lbnRzID0gYW5jZXN0b3JzLm1hcChhID0+IGEucGF0aCk7XG4gICAgICAgICAgICBwYXJlbnRQYXRoU2VnbWVudHMucHVzaChwYXRoTm9QYXJhbXMpO1xuICAgICAgICAgICAgdGhpcy5fZHluYW1pY05hdmlnYXRpb25Sb3V0ZVNlcnZpY2Uucm91dGUgPSBwYXJlbnRQYXRoU2VnbWVudHMuam9pbignLycpO1xuXG4gICAgICAgICAgICB0aGlzLl9ncm91cE5hdmlnYXRpb25Sb3V0ZUdlbmVyYXRlZCA9IHRydWU7XG4gICAgICAgICAgICByZXR1cm4gcm91dGU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodmlldy5yb3V0aW5nLm1hdGNoICE9PSB1bmRlZmluZWQgJiYgdmlldy5yb3V0aW5nLm1hdGNoKSB7XG4gICAgICAgICAgICByb3V0ZVsncGF0aE1hdGNoJ10gPSAnZnVsbCc7XG4gICAgICAgIH1cbiAgICAgICAgcm91dGVbJ2NhbkFjdGl2YXRlJ10gPSBbXTtcbiAgICAgICAgaWYgKHZpZXcuYWNjZXNzID09PSAncHJpdmF0ZSdcbiAgICAgICAgICAgIHx8IHZpZXcuYWNjZXNzLmhhc093blByb3BlcnR5KCdyb2xlJylcbiAgICAgICAgICAgIHx8IHZpZXcuYWNjZXNzLmhhc093blByb3BlcnR5KCdncm91cCcpXG4gICAgICAgICAgICB8fCB2aWV3LmFjY2Vzcy5oYXNPd25Qcm9wZXJ0eSgnYXV0aG9yaXR5JykpIHtcbiAgICAgICAgICAgIHJvdXRlWydjYW5BY3RpdmF0ZSddLnB1c2goQXV0aGVudGljYXRpb25HdWFyZFNlcnZpY2UpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh2aWV3LmFjY2Vzcy5oYXNPd25Qcm9wZXJ0eSgncm9sZScpKSB7XG4gICAgICAgICAgICByb3V0ZVsnY2FuQWN0aXZhdGUnXS5wdXNoKFJvbGVHdWFyZFNlcnZpY2UpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh2aWV3LmFjY2Vzcy5oYXNPd25Qcm9wZXJ0eSgnYXV0aG9yaXR5JykpIHtcbiAgICAgICAgICAgIHJvdXRlWydjYW5BY3RpdmF0ZSddLnB1c2goQXV0aG9yaXR5R3VhcmRTZXJ2aWNlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodmlldy5hY2Nlc3MuaGFzT3duUHJvcGVydHkoJ2dyb3VwJykpIHtcbiAgICAgICAgICAgIHJvdXRlWydjYW5BY3RpdmF0ZSddLnB1c2goR3JvdXBHdWFyZFNlcnZpY2UpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghIXZpZXcuY2hpbGRyZW4pIHtcbiAgICAgICAgICAgIHJvdXRlWydjaGlsZHJlbiddID0gW107XG4gICAgICAgICAgICBPYmplY3QuZW50cmllcyh2aWV3LmNoaWxkcmVuKS5mb3JFYWNoKChbY29uZmlnUGF0aFNlZ21lbnQsIGNoaWxkVmlld10pID0+IHtcbiAgICAgICAgICAgICAgICAvLyBUT0RPIGNoZWNrIGlmIHJvdXRlcyBhcmUgY29uc3RydWN0ZWQgY29ycmVjdGx5IHJlZ2FyZGluZyBlbXB0eSByb3V0ZSBzZWdtZW50c1xuICAgICAgICAgICAgICAgIGNvbnN0IGNoaWxkUm91dGUgPSB0aGlzLmNvbnN0cnVjdFJvdXRlT2JqZWN0KGNoaWxkVmlldywgYCR7Y29uZmlnUGF0aH0vJHtjb25maWdQYXRoU2VnbWVudH1gLCBbLi4uYW5jZXN0b3JzLCByb3V0ZV0pO1xuICAgICAgICAgICAgICAgIGlmIChjaGlsZFJvdXRlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcm91dGVbJ2NoaWxkcmVuJ10ucHVzaChjaGlsZFJvdXRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodmlldz8ubGF5b3V0Py5uYW1lID09PSAndGFiVmlldycpIHtcbiAgICAgICAgICAgIGlmICghdmlldy5jaGlsZHJlbikge1xuICAgICAgICAgICAgICAgIHJvdXRlWydjaGlsZHJlbiddID0gW107XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByb3V0ZVsnY2hpbGRyZW4nXS5wdXNoKHtcbiAgICAgICAgICAgICAgICBwYXRoOiAnKionLFxuICAgICAgICAgICAgICAgIGNvbXBvbmVudFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcm91dGU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZXNvbHZlQ29tcG9uZW50Q2xhc3ModmlldzogVmlldywgY29uZmlnUGF0aDogc3RyaW5nKTogVHlwZTxhbnk+IHwgdW5kZWZpbmVkIHtcbiAgICAgICAgbGV0IHJlc3VsdDtcbiAgICAgICAgaWYgKCEhdmlldy5jb21wb25lbnQpIHtcbiAgICAgICAgICAgIHJlc3VsdCA9IHRoaXMuX3ZpZXdTZXJ2aWNlLnJlc29sdmVOYW1lVG9DbGFzcyh2aWV3LmNvbXBvbmVudC5jbGFzcyk7XG4gICAgICAgIH0gZWxzZSBpZiAoISF2aWV3LmxheW91dCkge1xuICAgICAgICAgICAgcmVzdWx0ID0gdGhpcy5yZXNvbHZlQ29tcG9uZW50Q2xhc3NGcm9tTGF5b3V0KHZpZXcsIGNvbmZpZ1BhdGgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fbG9nZ2VyLndhcm4oYG5hZS5qc29uIGNvbmZpZ3VyYXRpb24gaXMgaW52YWxpZC4gVmlldyBhdCBwYXRoICcke2NvbmZpZ1BhdGh9J2AgK1xuICAgICAgICAgICAgICAgIGAgbXVzdCBkZWZpbmUgZWl0aGVyIGEgJ2xheW91dCcgb3IgYSAnY29tcG9uZW50JyBhdHRyaWJ1dGUuIFNraXBwaW5nIHRoaXMgdmlldyBmb3Igcm91dGluZyBnZW5lcmF0aW9uLmApO1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBpZiAocmVzdWx0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuX2xvZ2dlci53YXJuKGBTb21lIHZpZXdzIGZyb20gbmFlLmpzb24gY29uZmlndXJhdGlvbiBoYXZlIG5vdCBiZWVuIGNyZWF0ZWQgaW4gdGhlIHByb2plY3QuYCArXG4gICAgICAgICAgICAgICAgYCBSdW4gY3JlYXRlLXZpZXcgc2NoZW1hdGljIHRvIHJlY3RpZnkgdGhpcy4gU2tpcHBpbmcgdGhpcyB2aWV3IGZvciByb3V0aW5nIGdlbmVyYXRpb24uYCk7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZXNvbHZlQ29tcG9uZW50Q2xhc3NGcm9tTGF5b3V0KHZpZXc6IFZpZXcsIGNvbmZpZ1BhdGg6IHN0cmluZyk6IFR5cGU8YW55PiB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGlmICh2aWV3LmxheW91dC5uYW1lID09PSBHcm91cE5hdmlnYXRpb25Db25zdGFudHMuR1JPVVBfTkFWSUdBVElPTl9PVVRMRVQpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9ncm91cE5hdmlnYXRpb25Db21wb25lbnRSZXNvbHZlckNvbXBvbmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGNsYXNzTmFtZSA9IFJvdXRpbmdCdWlsZGVyU2VydmljZS5wYXJzZUNsYXNzTmFtZUZyb21WaWV3KHZpZXcsIGNvbmZpZ1BhdGgpO1xuICAgICAgICByZXR1cm4gdGhpcy5fdmlld1NlcnZpY2UucmVzb2x2ZU5hbWVUb0NsYXNzKGNsYXNzTmFtZSk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBwYXJzZUNsYXNzTmFtZUZyb21WaWV3KHZpZXc6IFZpZXcsIGNvbmZpZ1BhdGg6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIGlmICghIXZpZXcubGF5b3V0LmNvbXBvbmVudE5hbWUpIHtcbiAgICAgICAgICAgIHJldHVybiBgJHtjbGFzc2lmeSh2aWV3LmxheW91dC5jb21wb25lbnROYW1lKX1Db21wb25lbnRgO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgY2xhc3NJbmZvID0gbmV3IFZpZXdDbGFzc0luZm8oY29uZmlnUGF0aCwgdmlldy5sYXlvdXQubmFtZSwgdmlldy5sYXlvdXQuY29tcG9uZW50TmFtZSk7XG4gICAgICAgICAgICByZXR1cm4gY2xhc3NJbmZvLmNsYXNzTmFtZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZGVmYXVsdFJvdXRlc1JlZGlyZWN0cygpOiBBcnJheTxSb3V0ZT4ge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBbXTtcbiAgICAgICAgY29uc3Qgc2VydmljZXNDb25maWcgPSB0aGlzLl9jb25maWdTZXJ2aWNlLmdldFNlcnZpY2VzQ29uZmlndXJhdGlvbigpO1xuICAgICAgICBpZiAoISFzZXJ2aWNlc0NvbmZpZyAmJiAhIXNlcnZpY2VzQ29uZmlnLnJvdXRpbmcpIHtcbiAgICAgICAgICAgIGlmICghIXNlcnZpY2VzQ29uZmlnLnJvdXRpbmcuZGVmYXVsdFJlZGlyZWN0KSB7XG4gICAgICAgICAgICAgICAgcmVzdWx0LnB1c2goe1xuICAgICAgICAgICAgICAgICAgICBwYXRoOiAnJyxcbiAgICAgICAgICAgICAgICAgICAgcmVkaXJlY3RUbzogc2VydmljZXNDb25maWcucm91dGluZy5kZWZhdWx0UmVkaXJlY3QsXG4gICAgICAgICAgICAgICAgICAgIHBhdGhNYXRjaDogJ2Z1bGwnXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoISFzZXJ2aWNlc0NvbmZpZy5yb3V0aW5nLndpbGRjYXJkUmVkaXJlY3QpIHtcbiAgICAgICAgICAgICAgICByZXN1bHQucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgIHBhdGg6ICcqKicsXG4gICAgICAgICAgICAgICAgICAgIHJlZGlyZWN0VG86IHNlcnZpY2VzQ29uZmlnLnJvdXRpbmcud2lsZGNhcmRSZWRpcmVjdFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxufVxuIl19