@mediusinc/mng-commons 2.4.2 → 2.5.0-rc.0

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 (65) hide show
  1. package/assets/i18n/en.json +14 -0
  2. package/assets/i18n/sl.json +14 -0
  3. package/esm2020/index.mjs +2 -1
  4. package/esm2020/lib/api/utils/medius-rest.util.mjs +8 -1
  5. package/esm2020/lib/components/action/editor/action-editor.component.mjs +1 -1
  6. package/esm2020/lib/components/form/autocomplete/autocomplete.component.mjs +3 -2
  7. package/esm2020/lib/components/form/dropdown/dropdown.component.mjs +3 -2
  8. package/esm2020/lib/components/form/editor/form-editor.component.mjs +4 -11
  9. package/esm2020/lib/components/form/formly/fields/formly-field-lookup-dialog/formly-field-lookup-dialog.component.mjs +4 -3
  10. package/esm2020/lib/components/form/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.mjs +7 -6
  11. package/esm2020/lib/components/form/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component.mjs +22 -8
  12. package/esm2020/lib/components/pages/error/error-page.component.mjs +21 -0
  13. package/esm2020/lib/components/pages/index.mjs +3 -0
  14. package/esm2020/lib/components/pages/not-found/not-found-page.component.mjs +21 -0
  15. package/esm2020/lib/components/tableview/route/tableview-route.abstract.component.mjs +18 -10
  16. package/esm2020/lib/components/tableview/table/column-value/column-value.component.mjs +8 -3
  17. package/esm2020/lib/components/tableview/table/table.component.mjs +14 -3
  18. package/esm2020/lib/components/tableview/tableview.component.mjs +36 -4
  19. package/esm2020/lib/descriptors/action/action-button.descriptor.mjs +2 -2
  20. package/esm2020/lib/descriptors/action/action.descriptor.mjs +55 -6
  21. package/esm2020/lib/descriptors/editor/editor.descriptor.mjs +3 -2
  22. package/esm2020/lib/descriptors/editor/field.descriptor.mjs +13 -1
  23. package/esm2020/lib/descriptors/filter/filter.descriptor.mjs +5 -4
  24. package/esm2020/lib/descriptors/table/column.descriptor.mjs +27 -3
  25. package/esm2020/lib/descriptors/tableview/tableview.descriptor.mjs +3 -2
  26. package/esm2020/lib/mng-commons.module.mjs +18 -5
  27. package/esm2020/lib/models/error-internal.model.mjs +27 -0
  28. package/esm2020/lib/models/index.mjs +2 -1
  29. package/esm2020/lib/router/route-builder.mjs +4 -3
  30. package/esm2020/lib/router/routes-builder.mjs +3 -2
  31. package/esm2020/lib/services/action-executor.service.mjs +4 -3
  32. package/esm2020/lib/services/configuration.service.mjs +9 -4
  33. package/esm2020/lib/styles/button-style.builder.mjs +10 -1
  34. package/esm2020/lib/utils/action-data-provider.util.mjs +7 -6
  35. package/esm2020/lib/utils/file.util.mjs +18 -0
  36. package/esm2020/lib/utils/index.mjs +2 -1
  37. package/esm2020/lib/utils/route.util.mjs +3 -2
  38. package/esm2020/lib/utils/tableview.util.mjs +3 -2
  39. package/esm2020/lib/utils/type.util.mjs +3 -2
  40. package/fesm2015/mediusinc-mng-commons.mjs +322 -75
  41. package/fesm2015/mediusinc-mng-commons.mjs.map +1 -1
  42. package/fesm2020/mediusinc-mng-commons.mjs +313 -72
  43. package/fesm2020/mediusinc-mng-commons.mjs.map +1 -1
  44. package/index.d.ts +1 -0
  45. package/lib/api/utils/medius-rest.util.d.ts +2 -0
  46. package/lib/components/form/editor/form-editor.component.d.ts +1 -3
  47. package/lib/components/form/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component.d.ts +4 -0
  48. package/lib/components/pages/error/error-page.component.d.ts +8 -0
  49. package/lib/components/pages/index.d.ts +2 -0
  50. package/lib/components/pages/not-found/not-found-page.component.d.ts +8 -0
  51. package/lib/components/tableview/route/tableview-route.abstract.component.d.ts +1 -1
  52. package/lib/components/tableview/table/table.component.d.ts +3 -1
  53. package/lib/components/tableview/tableview.component.d.ts +4 -1
  54. package/lib/descriptors/action/action.descriptor.d.ts +2 -0
  55. package/lib/descriptors/editor/field.descriptor.d.ts +5 -0
  56. package/lib/descriptors/table/column.descriptor.d.ts +9 -1
  57. package/lib/mng-commons.module.d.ts +3 -1
  58. package/lib/models/error-internal.model.d.ts +29 -0
  59. package/lib/models/index.d.ts +1 -0
  60. package/lib/styles/button-style.builder.d.ts +1 -0
  61. package/lib/utils/file.util.d.ts +3 -0
  62. package/lib/utils/index.d.ts +1 -0
  63. package/package.json +4 -5
  64. package/scss/mng-overrides/_layout_styles.scss +4 -0
  65. package/scss/mng-overrides/_theme_dialog.scss +35 -0
@@ -1,5 +1,6 @@
1
1
  import { isObservable, throwError } from 'rxjs';
2
2
  import { MediusQueryParamBuilder } from '../api/models';
3
+ import { MngErrorInternal } from '../models';
3
4
  export class ActionDataProviderUtil {
4
5
  static runGetAllOrFail(ctx) {
5
6
  const dataProviderExec = ActionDataProviderUtil.runGetAllDataProvider(ctx);
@@ -9,11 +10,11 @@ export class ActionDataProviderUtil {
9
10
  const serviceExec = ActionDataProviderUtil.runGetAllService(ctx);
10
11
  return isObservable(serviceExec)
11
12
  ? serviceExec
12
- : throwError(() => new Error(`Data provider and service instance could not extract fetch function to execute in action ${ctx.instance.action.actionNameLong} (${ctx.instance.action.model?.typeName}) for item id ${ctx.parameters?.itemId}.`));
13
+ : throwError(() => new MngErrorInternal(`Data provider and service instance could not extract fetch function to execute in action ${ctx.instance.action.actionNameLong} (${ctx.instance.action.model?.typeName}) for item id ${ctx.parameters?.itemId}.`, 'ActionDataProviderUtils error').consoleError());
13
14
  }
14
15
  static runFetchOrFail(ctx) {
15
16
  return (ActionDataProviderUtil.runFetch(ctx) ??
16
- throwError(() => new Error(`Data provider and service instance could not extract fetch function to execute in action ${ctx.instance.action.actionNameLong} (${ctx.instance.action.model?.typeName}) for item id ${ctx.parameters?.itemId}.`)));
17
+ throwError(() => new MngErrorInternal(`Data provider and service instance could not extract fetch function to execute in action ${ctx.instance.action.actionNameLong} (${ctx.instance.action.model?.typeName}) for item id ${ctx.parameters?.itemId}.`, 'ActionDataProviderUtils error').consoleError()));
17
18
  }
18
19
  static runFetch(ctx, fallback) {
19
20
  const dataProviderExec = ActionDataProviderUtil.runFetchDataProvider(ctx);
@@ -25,7 +26,7 @@ export class ActionDataProviderUtil {
25
26
  }
26
27
  static runCreateOrFail(ctx) {
27
28
  return (ActionDataProviderUtil.runCreate(ctx) ??
28
- throwError(() => new Error(`Data provider and service instance could not extract create function to execute in action ${ctx.instance.action.actionNameLong} (${ctx.instance.action.model?.typeName}) for item ${ctx.parameters?.item}.`)));
29
+ throwError(() => new MngErrorInternal(`Data provider and service instance could not extract create function to execute in action ${ctx.instance.action.actionNameLong} (${ctx.instance.action.model?.typeName}) for item ${ctx.parameters?.item}.`, 'ActionDataProviderUtils error').consoleError()));
29
30
  }
30
31
  static runCreate(ctx, fallback) {
31
32
  const dataProviderExec = ActionDataProviderUtil.runCreateDataProvider(ctx);
@@ -37,7 +38,7 @@ export class ActionDataProviderUtil {
37
38
  }
38
39
  static runUpdateOrFail(ctx) {
39
40
  return (ActionDataProviderUtil.runUpdate(ctx) ??
40
- throwError(() => new Error(`Data provider and service instance could not extract update function to execute in action ${ctx.instance.action.actionNameLong} (${ctx.instance.action.model?.typeName}) for item id ${ctx.parameters?.itemId}.`)));
41
+ throwError(() => new MngErrorInternal(`Data provider and service instance could not extract update function to execute in action ${ctx.instance.action.actionNameLong} (${ctx.instance.action.model?.typeName}) for item id ${ctx.parameters?.itemId}.`, 'ActionDataProviderUtils error').consoleError()));
41
42
  }
42
43
  static runUpdate(ctx, fallback) {
43
44
  const dataProviderExec = ActionDataProviderUtil.runUpdateDataProvider(ctx);
@@ -55,7 +56,7 @@ export class ActionDataProviderUtil {
55
56
  const serviceExec = ActionDataProviderUtil.runDeleteService(ctx);
56
57
  return isObservable(serviceExec)
57
58
  ? serviceExec
58
- : throwError(() => new Error(`Data provider and service instance could not extract delete function to execute in action ${ctx.instance.action.actionNameLong} (${ctx.instance.action.model?.typeName}) for item id ${ctx.parameters?.itemId}.`));
59
+ : throwError(() => new MngErrorInternal(`Data provider and service instance could not extract delete function to execute in action ${ctx.instance.action.actionNameLong} (${ctx.instance.action.model?.typeName}) for item id ${ctx.parameters?.itemId}.`, 'ActionDataProviderUtils error').consoleError());
59
60
  }
60
61
  static runGetAllService(ctx) {
61
62
  if (typeof ctx.serviceInstance !== 'undefined') {
@@ -148,4 +149,4 @@ export class ActionDataProviderUtil {
148
149
  return null;
149
150
  }
150
151
  }
151
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLWRhdGEtcHJvdmlkZXIudXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdXRpbHMvYWN0aW9uLWRhdGEtcHJvdmlkZXIudXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWEsWUFBWSxFQUFNLFVBQVUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUU5RCxPQUFPLEVBQUMsdUJBQXVCLEVBQW9CLE1BQU0sZUFBZSxDQUFDO0FBS3pFLE1BQU0sT0FBTyxzQkFBc0I7SUFDeEIsTUFBTSxDQUFDLGVBQWUsQ0FBTyxHQUF3QjtRQUN4RCxNQUFNLGdCQUFnQixHQUFHLHNCQUFzQixDQUFDLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzNFLElBQUksWUFBWSxDQUFDLGdCQUFnQixDQUFDLEVBQUU7WUFDaEMsT0FBTyxnQkFBZ0IsQ0FBQztTQUMzQjtRQUNELE1BQU0sV0FBVyxHQUFHLHNCQUFzQixDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2pFLE9BQU8sWUFBWSxDQUFDLFdBQVcsQ0FBQztZQUM1QixDQUFDLENBQUMsV0FBVztZQUNiLENBQUMsQ0FBQyxVQUFVLENBQ04sR0FBRyxFQUFFLENBQ0QsSUFBSSxLQUFLLENBQ0wsNEZBQTRGLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLGNBQWMsS0FBSyxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsUUFBUSxpQkFBaUIsR0FBRyxDQUFDLFVBQVUsRUFBRSxNQUFNLEdBQUcsQ0FDbk4sQ0FDUixDQUFDO0lBQ1osQ0FBQztJQUVNLE1BQU0sQ0FBQyxjQUFjLENBQU8sR0FBd0I7UUFDdkQsT0FBTyxDQUNILHNCQUFzQixDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUM7WUFDcEMsVUFBVSxDQUNOLEdBQUcsRUFBRSxDQUNELElBQUksS0FBSyxDQUNMLDRGQUE0RixHQUFHLENBQUMs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QVUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7YUFDckk7U0FDSjtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFTSxNQUFNLENBQUMscUJBQXFCLENBQU8sR0FBd0I7UUFDOUQsSUFBSSxPQUFPLEdBQUcsQ0FBQyxZQUFZLEtBQUssV0FBVyxFQUFFO1lBQ3pDLE1BQU0sa0JBQWtCLEdBQUcsR0FBRyxDQUFDLFlBQTJDLENBQUM7WUFDM0UsSUFBSSxPQUFPLGtCQUFrQixDQUFDLE1BQU0sS0FBSyxVQUFVLEVBQUU7Z0JBQ2pELE9BQU8sR0FBRyxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQzthQUNySTtTQUNKO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtPYnNlcnZhYmxlLCBpc09ic2VydmFibGUsIG9mLCB0aHJvd0Vycm9yfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtNZWRpdXNRdWVyeVBhcmFtQnVpbGRlciwgTWVkaXVzUXVlcnlSZXN1bHR9IGZyb20gJy4uL2FwaS9tb2RlbHMnO1xuaW1wb3J0IHtJTW5nQ3J1ZEFwaVNlcnZpY2UsIElNbmdHZXRBbGxBcGlTZXJ2aWNlfSBmcm9tICcuLi9hcGkvc2VydmljZXMnO1xuaW1wb3J0IHtBY3Rpb25Db250ZXh0fSBmcm9tICcuLi9jb21wb25lbnRzL2FjdGlvbi9tb2RlbHMnO1xuaW1wb3J0IHtJRWRpdG9yRGF0YVByb3ZpZGVyLCBJVGFibGVEYXRhUHJvdmlkZXJ9IGZyb20gJy4uL2RhdGEtcHJvdmlkZXJzJztcblxuZXhwb3J0IGNsYXNzIEFjdGlvbkRhdGFQcm92aWRlclV0aWwge1xuICAgIHB1YmxpYyBzdGF0aWMgcnVuR2V0QWxsT3JGYWlsPFQsIFM+KGN0eDogQWN0aW9uQ29udGV4dDxULCBTPik6IE9ic2VydmFibGU8TWVkaXVzUXVlcnlSZXN1bHQ8VD4+IHtcbiAgICAgICAgY29uc3QgZGF0YVByb3ZpZGVyRXhlYyA9IEFjdGlvbkRhdGFQcm92aWRlclV0aWwucnVuR2V0QWxsRGF0YVByb3ZpZGVyKGN0eCk7XG4gICAgICAgIGlmIChpc09ic2VydmFibGUoZGF0YVByb3ZpZGVyRXhlYykpIHtcbiAgICAgICAgICAgIHJldHVybiBkYXRhUHJvdmlkZXJFeGVjO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHNlcnZpY2VFeGVjID0gQWN0aW9uRGF0YVByb3ZpZGVyVXRpbC5ydW5HZXRBbGxTZXJ2aWNlKGN0eCk7XG4gICAgICAgIHJldHVybiBpc09ic2VydmFibGUoc2VydmljZUV4ZWMpXG4gICAgICAgICAgICA/IHNlcnZpY2VFeGVjXG4gICAgICAgICAgICA6IHRocm93RXJyb3IoXG4gICAgICAgICAgICAgICAgICAoKSA9PlxuICAgICAgICAgICAgICAgICAgICAgIG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgYERhdGEgcHJvdmlkZXIgYW5kIHNlcnZpY2UgaW5zdGFuY2UgY291bGQgbm90IGV4dHJhY3QgZmV0Y2ggZnVuY3Rpb24gdG8gZXhlY3V0ZSBpbiBhY3Rpb24gJHtjdHguaW5zdGFuY2UuYWN0aW9uLmFjdGlvbk5hbWVMb25nfSAoJHtjdHguaW5zdGFuY2UuYWN0aW9uLm1vZGVsPy50eXBlTmFtZX0pIGZvciBpdGVtIGlkICR7Y3R4LnBhcmFtZXRlcnM/Lml0ZW1JZH0uYFxuICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIHJ1bkZldGNoT3JGYWlsPFQsIFM+KGN0eDogQWN0aW9uQ29udGV4dDxULCBTPik6IE9ic2VydmFibGU8VD4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgQWN0aW9uRGF0YVByb3ZpZGVyVXRpbC5ydW5GZXRjaChjdHgpID8/XG4gICAgICAgICAgICB0aHJvd0Vycm9yKFxuICAgICAgICAgICAgICAgICgpID0+XG4gICAgICAgICAgICAgICAgICAgIG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgICAgICAgICAgIGBEYXRhIHByb3ZpZGVyIGFuZCBzZXJ2aWNlIGluc3RhbmNlIGNvdWxkIG5vdCBleHRyYWN0IGZldGNoIGZ1bmN0aW9uIHRvIGV4ZWN1dGUgaW4gYWN0aW9uICR7Y3R4Lmluc3RhbmNlLmFjdGlvbi5hY3Rpb25OYW1lTG9uZ30gKCR7Y3R4Lmluc3RhbmNlLmFjdGlvbi5tb2RlbD8udHlwZU5hbWV9KSBmb3IgaXRlbSBpZCAke2N0eC5wYXJhbWV0ZXJzPy5pdGVtSWR9LmBcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgcnVuRmV0Y2g8VCwgUz4oY3R4OiBBY3Rpb25Db250ZXh0PFQsIFM+KTogT2JzZXJ2YWJsZTxUPiB8IG51bGw7XG4gICAgcHVibGljIHN0YXRpYyBydW5GZXRjaDxULCBTPihjdHg6IEFjdGlvbkNvbnRleHQ8VCwgUz4sIGZhbGxiYWNrOiBPYnNlcnZhYmxlPFQgfCBudWxsIHwgdW5kZWZpbmVkPik6IE9ic2VydmFibGU8VCB8IG51bGwgfCB1bmRlZmluZWQ+O1xuICAgIHB1YmxpYyBzdGF0aWMgcnVuRmV0Y2g8VCwgUz4oY3R4OiBBY3Rpb25Db250ZXh0PFQsIFM+LCBmYWxsYmFjaz86IE9ic2VydmFibGU8VCB8IG51bGwgfCB1bmRlZmluZWQ+KTogT2JzZXJ2YWJsZTxUIHwgbnVsbCB8IHVuZGVmaW5lZD4gfCBudWxsIHtcbiAgICAgICAgY29uc3QgZGF0YVByb3ZpZGVyRXhlYyA9IEFjdGlvbkRhdGFQcm92aWRlclV0aWwucnVuRmV0Y2hEYXRhUHJvdmlkZXIoY3R4KTtcbiAgICAgICAgaWYgKGlzT2JzZXJ2YWJsZShkYXRhUHJvdmlkZXJFeGVjKSkge1xuICAgICAgICAgICAgcmV0dXJuIGRhdGFQcm92aWRlckV4ZWM7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc2VydmljZUV4ZWMgPSBBY3Rpb25EYXRhUHJvdmlkZXJVdGlsLnJ1bkdldEJ5SWRTZXJ2aWNlKGN0eCk7XG4gICAgICAgIHJldHVybiBpc09ic2VydmFibGUoc2VydmljZUV4ZWMpID8gc2VydmljZUV4ZWMgOiBmYWxsYmFjayA/PyBudWxsO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgcnVuQ3JlYXRlT3JGYWlsPFQsIFM+KGN0eDogQWN0aW9uQ29udGV4dDxULCBTPik6IE9ic2VydmFibGU8VD4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgQWN0aW9uRGF0YVByb3ZpZGVyVXRpbC5ydW5DcmVhdGUoY3R4KSA/P1xuICAgICAgICAgICAgdGhyb3dFcnJvcihcbiAgICAgICAgICAgICAgICAoKSA9PlxuICAgICAgICAgICAgICAgICAgICBuZXcgRXJyb3IoXG4gICAgICAgICAgICAgICAgICAgICAgICBgRGF0YSBwcm92aWRlciBhbmQgc2VydmljZSBpbnN0YW5jZSBjb3VsZCBub3QgZXh0cmFjdCBjcmVhdGUgZnVuY3Rpb24gdG8gZXhlY3V0ZSBpbiBhY3Rpb24gJHtjdHguaW5zdGFuY2UuYWN0aW9uLmFjdGlvbk5hbWVMb25nfSAoJHtjdHguaW5zdGFuY2UuYWN0aW9uLm1vZGVsPy50eXBlTmFtZX0pIGZvciBpdGVtICR7Y3R4LnBhcmFtZXRlcnM/Lml0ZW19LmBcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgcnVuQ3JlYXRlPFQsIFM+KGN0eDogQWN0aW9uQ29udGV4dDxULCBTPik6IE9ic2VydmFibGU8VD4gfCBudWxsO1xuICAgIHB1YmxpYyBzdGF0aWMgcnVuQ3JlYXRlPFQsIFM+KGN0eDogQWN0aW9uQ29udGV4dDxULCBTPiwgZmFsbGJhY2s6IE9ic2VydmFibGU8VCB8IG51bGwgfCB1bmRlZmluZWQ+KTogT2JzZXJ2YWJsZTxUIHwgbnVsbCB8IHVuZGVmaW5lZD47XG4gICAgcHVibGljIHN0YXRpYyBydW5DcmVhdGU8VCwgUz4oY3R4OiBBY3Rpb25Db250ZXh0PFQsIFM+LCBmYWxsYmFjaz86IE9ic2VydmFibGU8VCB8IG51bGwgfCB1bmRlZmluZWQ+KTogT2JzZXJ2YWJsZTxUIHwgbnVsbCB8IHVuZGVmaW5lZD4gfCBudWxsIHtcbiAgICAgICAgY29uc3QgZGF0YVByb3ZpZGVyRXhlYyA9IEFjdGlvbkRhdGFQcm92aWRlclV0aWwucnVuQ3JlYXRlRGF0YVByb3ZpZGVyKGN0eCk7XG4gICAgICAgIGlmIChpc09ic2VydmFibGUoZGF0YVByb3ZpZGVyRXhlYykpIHtcbiAgICAgICAgICAgIHJldHVybiBkYXRhUHJvdmlkZXJFeGVjO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHNlcnZpY2VFeGVjID0gQWN0aW9uRGF0YVByb3ZpZGVyVXRpbC5ydW5DcmVhdGVTZXJ2aWNlKGN0eCk7XG4gICAgICAgIHJldHVybiBpc09ic2VydmFibGUoc2VydmljZUV4ZWMpID8gc2VydmljZUV4ZWMgOiBmYWxsYmFjayA/PyBudWxsO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgcnVuVXBkYXRlT3JGYWlsPFQsIFM+KGN0eDogQWN0aW9uQ29udGV4dDxULCBTPik6IE9ic2VydmFibGU8VD4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgQWN0aW9uRGF0YVByb3ZpZGVyVXRpbC5ydW5VcGRhdGUoY3R4KSA/P1xuICAgICAgICAgICAgdGhyb3dFcnJvcihcbiAgICAgICAgICAgICAgICAoKSA9PlxuICAgICAgICAgICAgICAgICAgICBuZXcgRXJyb3IoXG4gICAgICAgICAgICAgICAgICAgICAgICBgRGF0YSBwcm92aWRlciBhbmQgc2VydmljZSBpbnN0YW5jZSBjb3VsZCBub3QgZXh0cmFjdCB1cGRhdGUgZnVuY3Rpb24gdG8gZXhlY3V0ZSBpbiBhY3Rpb24gJHtjdHguaW5zdGFuY2UuYWN0aW9uLmFjdGlvbk5hbWVMb25nfSAoJHtjdHguaW5zdGFuY2UuYWN0aW9uLm1vZGVsPy50eXBlTmFtZX0pIGZvciBpdGVtIGlkICR7Y3R4LnBhcmFtZXRlcnM/Lml0ZW1JZH0uYFxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBydW5VcGRhdGU8VCwgUz4oY3R4OiBBY3Rpb25Db250ZXh0PFQsIFM+KTogT2JzZXJ2YWJsZTxUPiB8IG51bGw7XG4gICAgcHVibGljIHN0YXRpYyBydW5VcGRhdGU8VCwgUz4oY3R4OiBBY3Rpb25Db250ZXh0PFQsIFM+LCBmYWxsYmFjazogT2JzZXJ2YWJsZTxUIHwgbnVsbCB8IHVuZGVmaW5lZD4pOiBPYnNlcnZhYmxlPFQgfCBudWxsIHwgdW5kZWZpbmVkPjtcbiAgICBwdWJsaWMgc3RhdGljIHJ1blVwZGF0ZTxULCBTPihjdHg6IEFjdGlvbkNvbnRleHQ8VCwgUz4sIGZhbGxiYWNrPzogT2JzZXJ2YWJsZTxUIHwgbnVsbCB8IHVuZGVmaW5lZD4pOiBPYnNlcnZhYmxlPFQgfCBudWxsIHwgdW5kZWZpbmVkPiB8IG51bGwge1xuICAgICAgICBjb25zdCBkYXRhUHJvdmlkZXJFeGVjID0gQWN0aW9uRGF0YVByb3ZpZGVyVXRpbC5ydW5VcGRhdGVEYXRhUHJvdmlkZXIoY3R4KTtcbiAgICAgICAgaWYgKGlzT2JzZXJ2YWJsZShkYXRhUHJvdmlkZXJFeGVjKSkge1xuICAgICAgICAgICAgcmV0dXJuIGRhdGFQcm92aWRlckV4ZWM7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc2VydmljZUV4ZWMgPSBBY3Rpb25EYXRhUHJvdmlkZXJVdGlsLnJ1blVwZGF0ZVNlcnZpY2UoY3R4KTtcbiAgICAgICAgcmV0dXJuIGlzT2JzZXJ2YWJsZShzZXJ2aWNlRXhlYykgPyBzZXJ2aWNlRXhlYyA6IGZhbGxiYWNrID8/IG51bGw7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBydW5EZWxldGVPckZhaWw8VCwgUz4oY3R4OiBBY3Rpb25Db250ZXh0PFQsIFM+KTogT2JzZXJ2YWJsZTxUIHwgbnVsbD4ge1xuICAgICAgICBjb25zdCBkYXRhUHJvdmlkZXJFeGVjID0gQWN0aW9uRGF0YVByb3ZpZGVyVXRpbC5ydW5EZWxldGVEYXRhUHJvdmlkZXIoY3R4KTtcbiAgICAgICAgaWYgKGlzT2JzZXJ2YWJsZShkYXRhUHJvdmlkZXJFeGVjKSkge1xuICAgICAgICAgICAgcmV0dXJuIGRhdGFQcm92aWRlckV4ZWM7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc2VydmljZUV4ZWMgPSBBY3Rpb25EYXRhUHJvdmlkZXJVdGlsLnJ1bkRlbGV0ZVNlcnZpY2UoY3R4KTtcbiAgICAgICAgcmV0dXJuIGlzT2JzZXJ2YWJsZShzZXJ2aWNlRXhlYylcbiAgICAgICAgICAgID8gc2VydmljZUV4ZWNcbiAgICAgICAgICAgIDogdGhyb3dFcnJvcihcbiAgICAgICAgICAgICAgICAgICgpID0+XG4gICAgICAgICAgICAgICAgICAgICAgbmV3IEVycm9yKFxuICAgICAgICAgICAgICAgICAgICAgICAgICBgRGF0YSBwcm92aWRlciBhbmQgc2VydmljZSBpbnN0YW5jZSBjb3VsZCBub3QgZXh0cmFjdCBkZWxldGUgZnVuY3Rpb24gdG8gZXhlY3V0ZSBpbiBhY3Rpb24gJHtjdHguaW5zdGFuY2UuYWN0aW9uLmFjdGlvbk5hbWVMb25nfSAoJHtjdHguaW5zdGFuY2UuYWN0aW9uLm1vZGVsPy50eXBlTmFtZX0pIGZvciBpdGVtIGlkICR7Y3R4LnBhcmFtZXRlcnM/Lml0ZW1JZH0uYFxuICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIHJ1bkdldEFsbFNlcnZpY2U8VD4oY3R4OiBBY3Rpb25Db250ZXh0PFQsIHVua25vd24+KTogT2JzZXJ2YWJsZTxNZWRpdXNRdWVyeVJlc3VsdDxUPj4gfCBudWxsIHtcbiAgICAgICAgaWYgKHR5cGVvZiBjdHguc2VydmljZUluc3RhbmNlICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgY29uc3QgZ2V0QWxsU2VydmljZUluc3RhbmNlID0gY3R4LnNlcnZpY2VJbnN0YW5jZSBhcyBJTW5nR2V0QWxsQXBpU2VydmljZTxNZWRpdXNRdWVyeVJlc3VsdDxUPj47XG4gICAgICAgICAgICBpZiAodHlwZW9mIGdldEFsbFNlcnZpY2VJbnN0YW5jZS5nZXRBbGxQb3N0ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcXVlcnlQYXJhbSA9IGN0eC5wYXJhbWV0ZXJzPy5xdWVyeVBhcmFtID8/IE1lZGl1c1F1ZXJ5UGFyYW1CdWlsZGVyLmNyZWF0ZSgpLmJ1aWxkKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGdldEFsbFNlcnZpY2VJbnN0YW5jZS5nZXRBbGxQb3N0KHF1ZXJ5UGFyYW0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgcnVuR2V0QnlJZFNlcnZpY2U8VD4oY3R4OiBBY3Rpb25Db250ZXh0PFQsIHVua25vd24+KTogT2JzZXJ2YWJsZTxUPiB8IG51bGwge1xuICAgICAgICBpZiAodHlwZW9mIGN0eC5zZXJ2aWNlSW5zdGFuY2UgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICBjb25zdCBjcnVkU2VydmljZUluc3RhbmNlID0gY3R4LnNlcnZpY2VJbnN0YW5jZSBhcyBJTW5nQ3J1ZEFwaVNlcnZpY2U8VD47XG4gICAgICAgICAgICBpZiAodHlwZW9mIGNydWRTZXJ2aWNlSW5zdGFuY2UuZ2V0QnlJZEdldCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBjdHgucGFyYW1ldGVycz8uaXRlbUlkID8gY3J1ZFNlcnZpY2VJbnN0YW5jZS5nZXRCeUlkR2V0KGN0eC5wYXJhbWV0ZXJzLml0ZW1JZCkgOiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgcnVuQ3JlYXRlU2VydmljZTxUPihjdHg6IEFjdGlvbkNvbnRleHQ8VCwgdW5rbm93bj4pOiBPYnNlcnZhYmxlPFQ+IHwgbnVsbCB7XG4gICAgICAgIGlmICh0eXBlb2YgY3R4LnNlcnZpY2VJbnN0YW5jZSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIGNvbnN0IGNydWRTZXJ2aWNlSW5zdGFuY2UgPSBjdHguc2VydmljZUluc3RhbmNlIGFzIElNbmdDcnVkQXBpU2VydmljZTxUPjtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgY3J1ZFNlcnZpY2VJbnN0YW5jZS5jcmVhdGVQb3N0ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGN0eC5wYXJhbWV0ZXJzPy5pdGVtID8gY3J1ZFNlcnZpY2VJbnN0YW5jZS5jcmVhdGVQb3N0KGN0eC5wYXJhbWV0ZXJzLml0ZW0pIDogbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIHJ1blVwZGF0ZVNlcnZpY2U8VD4oY3R4OiBBY3Rpb25Db250ZXh0PFQsIHVua25vd24+KTogT2JzZXJ2YWJsZTxUPiB8IG51bGwge1xuICAgICAgICBpZiAodHlwZW9mIGN0eC5zZXJ2aWNlSW5zdGFuY2UgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICBjb25zdCBjcnVkU2VydmljZUluc3RhbmNlID0gY3R4LnNlcnZpY2VJbnN0YW5jZSBhcyBJTW5nQ3J1ZEFwaVNlcnZpY2U8VD47XG4gICAgICAgICAgICBpZiAodHlwZW9mIGNydWRTZXJ2aWNlSW5zdGFuY2UudXBkYXRlUHV0ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGN0eC5wYXJhbWV0ZXJzPy5pdGVtSWQgJiYgY3R4LnBhcmFtZXRlcnMuaXRlbSA/IGNydWRTZXJ2aWNlSW5zdGFuY2UudXBkYXRlUHV0KGN0eC5wYXJhbWV0ZXJzLml0ZW1JZCwgY3R4LnBhcmFtZXRlcnMuaXRlbSkgOiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgcnVuRGVsZXRlU2VydmljZTxUPihjdHg6IEFjdGlvbkNvbnRleHQ8VCwgdW5rbm93bj4pOiBPYnNlcnZhYmxlPFQgfCBudWxsPiB8IG51bGwge1xuICAgICAgICBpZiAodHlwZW9mIGN0eC5zZXJ2aWNlSW5zdGFuY2UgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICBjb25zdCBjcnVkU2VydmljZUluc3RhbmNlID0gY3R4LnNlcnZpY2VJbnN0YW5jZSBhcyBJTW5nQ3J1ZEFwaVNlcnZpY2U8VD47XG4gICAgICAgICAgICBpZiAodHlwZW9mIGNydWRTZXJ2aWNlSW5zdGFuY2UucmVtb3ZlRGVsZXRlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGN0eC5wYXJhbWV0ZXJzPy5pdGVtSWQgPyBjcnVkU2VydmljZUluc3RhbmNlLnJlbW92ZURlbGV0ZShjdHgucGFyYW1ldGVycy5pdGVtSWQsIGN0eC5wYXJhbWV0ZXJzLml0ZW0pIDogbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIHJ1bkdldEFsbERhdGFQcm92aWRlcjxULCBTPihjdHg6IEFjdGlvbkNvbnRleHQ8VCwgUz4pOiBPYnNlcnZhYmxlPE1lZGl1c1F1ZXJ5UmVzdWx0PFQ+PiB8IG51bGwge1xuICAgICAgICBpZiAodHlwZW9mIGN0eC5kYXRhUHJvdmlkZXIgIT09ICd1bmRlZmluZWQnICYmIHR5cGVvZiBjdHguZGF0YVByb3ZpZGVyWydnZXRBbGwnIGFzIGtleW9mIG9iamVjdF0gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIGNvbnN0IHRhYmxlRGF0YVByb3ZpZGVyID0gY3R4LmRhdGFQcm92aWRlciBhcyBJVGFibGVEYXRhUHJvdmlkZXI8VCwgYW55PjtcbiAgICAgICAgICAgIGNvbnN0IHF1ZXJ5UGFyYW0gPSBjdHgucGFyYW1ldGVycz8ucXVlcnlQYXJhbSA/PyBNZWRpdXNRdWVyeVBhcmFtQnVpbGRlci5jcmVhdGUoKS5idWlsZCgpO1xuICAgICAgICAgICAgcmV0dXJuIHRhYmxlRGF0YVByb3ZpZGVyLmdldEFsbChxdWVyeVBhcmFtLCBjdHguc2VydmljZUluc3RhbmNlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIHJ1bkZldGNoRGF0YVByb3ZpZGVyPFQsIFM+KGN0eDogQWN0aW9uQ29udGV4dDxULCBTPik6IE9ic2VydmFibGU8VD4gfCBudWxsIHtcbiAgICAgICAgaWYgKHR5cGVvZiBjdHguZGF0YVByb3ZpZGVyICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgY29uc3QgZWRpdG9yRGF0YVByb3ZpZGVyID0gY3R4LmRhdGFQcm92aWRlciBhcyBJRWRpdG9yRGF0YVByb3ZpZGVyPFQsIGFueT47XG4gICAgICAgICAgICBpZiAodHlwZW9mIGVkaXRvckRhdGFQcm92aWRlci5mZXRjaCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBjdHgucGFyYW1ldGVycz8uaXRlbUlkID8gZWRpdG9yRGF0YVByb3ZpZGVyLmZldGNoKGN0eC5wYXJhbWV0ZXJzLml0ZW1JZCwgY3R4LnNlcnZpY2VJbnN0YW5jZSwgY3R4LnBhcmFtZXRlcnMubG9jYWxlKSA6IG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBydW5DcmVhdGVEYXRhUHJvdmlkZXI8VCwgUz4oY3R4OiBBY3Rpb25Db250ZXh0PFQsIFM+KTogT2JzZXJ2YWJsZTxUPiB8IG51bGwge1xuICAgICAgICBpZiAodHlwZW9mIGN0eC5kYXRhUHJvdmlkZXIgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICBjb25zdCBlZGl0b3JEYXRhUHJvdmlkZXIgPSBjdHguZGF0YVByb3ZpZGVyIGFzIElFZGl0b3JEYXRhUHJvdmlkZXI8VCwgYW55PjtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgZWRpdG9yRGF0YVByb3ZpZGVyLmNyZWF0ZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBjdHgucGFyYW1ldGVycz8uaXRlbSA/IGVkaXRvckRhdGFQcm92aWRlci5jcmVhdGUoY3R4LnBhcmFtZXRlcnMuaXRlbSwgY3R4LnNlcnZpY2VJbnN0YW5jZSkgOiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgcnVuVXBkYXRlRGF0YVByb3ZpZGVyPFQsIFM+KGN0eDogQWN0aW9uQ29udGV4dDxULCBTPik6IE9ic2VydmFibGU8VD4gfCBudWxsIHtcbiAgICAgICAgaWYgKHR5cGVvZiBjdHguZGF0YVByb3ZpZGVyICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgY29uc3QgZWRpdG9yRGF0YVByb3ZpZGVyID0gY3R4LmRhdGFQcm92aWRlciBhcyBJRWRpdG9yRGF0YVByb3ZpZGVyPFQsIGFueT47XG4gICAgICAgICAgICBpZiAodHlwZW9mIGVkaXRvckRhdGFQcm92aWRlci51cGRhdGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gY3R4LnBhcmFtZXRlcnM/Lml0ZW1JZCA/IGVkaXRvckRhdGFQcm92aWRlci51cGRhdGUoY3R4LnBhcmFtZXRlcnMuaXRlbUlkLCBjdHgucGFyYW1ldGVycy5pdGVtLCBjdHguc2VydmljZUluc3RhbmNlKSA6IG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBydW5EZWxldGVEYXRhUHJvdmlkZXI8VCwgUz4oY3R4OiBBY3Rpb25Db250ZXh0PFQsIFM+KTogT2JzZXJ2YWJsZTxUIHwgbnVsbD4gfCBudWxsIHtcbiAgICAgICAgaWYgKHR5cGVvZiBjdHguZGF0YVByb3ZpZGVyICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgY29uc3QgZWRpdG9yRGF0YVByb3ZpZGVyID0gY3R4LmRhdGFQcm92aWRlciBhcyBJRWRpdG9yRGF0YVByb3ZpZGVyPFQsIGFueT47XG4gICAgICAgICAgICBpZiAodHlwZW9mIGVkaXRvckRhdGFQcm92aWRlci5kZWxldGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gY3R4LnBhcmFtZXRlcnM/Lml0ZW1JZCA/IGVkaXRvckRhdGFQcm92aWRlci5kZWxldGUoY3R4LnBhcmFtZXRlcnMuaXRlbUlkLCBjdHgucGFyYW1ldGVycy5pdGVtLCBjdHguc2VydmljZUluc3RhbmNlKSA6IG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxufVxuIl19
152
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLWRhdGEtcHJvdmlkZXIudXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdXRpbHMvYWN0aW9uLWRhdGEtcHJvdmlkZXIudXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWEsWUFBWSxFQUFFLFVBQVUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUUxRCxPQUFPLEVBQUMsdUJBQXVCLEVBQW9CLE1BQU0sZUFBZSxDQUFDO0FBSXpFLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLFdBQVcsQ0FBQztBQUUzQyxNQUFNLE9BQU8sc0JBQXNCO0lBQ3hCLE1BQU0sQ0FBQyxlQUFlLENBQU8sR0FBd0I7UUFDeEQsTUFBTSxnQkFBZ0IsR0FBRyxzQkFBc0IsQ0FBQyxxQkFBcUIsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMzRSxJQUFJLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFO1lBQ2hDLE9BQU8sZ0JBQWdCLENBQUM7U0FDM0I7UUFDRCxNQUFNLFdBQVcsR0FBRyxzQkFBc0IsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNqRSxPQUFPLFlBQVksQ0FBQyxXQUFXLENBQUM7WUFDNUIsQ0FBQyxDQUFDLFdBQVc7WUFDYixDQUFDLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUNaLElBQUksZ0JBQWdCLENBQ2hCLDRGQUE0RixHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxjQUFjLEtBQUssR0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLFFBQVEsaUJBQWlCLEdBQUcsQ0FBQyxVQUFVLEVBQUUsTUFBTSxHQUFHLEVBQ2hOLCtCQUErQixDQUNsQyxDQUFDLFlBQVksRUFBRSxDQUNuQixDQUFDO0lBQ1osQ0FBQztJQUVNLE1BQU0sQ0FBQyxjQUFjLENBQU8sR0FBd0I7UUFDdkQsT0FBTyxDQUNILHNCQUFzQixDQUFDLFFBQVEsQ0FB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LE1BQU0sa0JBQWtCLEdBQUcsR0FBRyxDQUFDLFlBQTJDLENBQUM7WUFDM0UsSUFBSSxPQUFPLGtCQUFrQixDQUFDLE1BQU0sS0FBSyxVQUFVLEVBQUU7Z0JBQ2pELE9BQU8sR0FBRyxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQzthQUNySTtTQUNKO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVNLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBTyxHQUF3QjtRQUM5RCxJQUFJLE9BQU8sR0FBRyxDQUFDLFlBQVksS0FBSyxXQUFXLEVBQUU7WUFDekMsTUFBTSxrQkFBa0IsR0FBRyxHQUFHLENBQUMsWUFBMkMsQ0FBQztZQUMzRSxJQUFJLE9BQU8sa0JBQWtCLENBQUMsTUFBTSxLQUFLLFVBQVUsRUFBRTtnQkFDakQsT0FBTyxHQUFHLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO2FBQ3JJO1NBQ0o7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge09ic2VydmFibGUsIGlzT2JzZXJ2YWJsZSwgdGhyb3dFcnJvcn0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7TWVkaXVzUXVlcnlQYXJhbUJ1aWxkZXIsIE1lZGl1c1F1ZXJ5UmVzdWx0fSBmcm9tICcuLi9hcGkvbW9kZWxzJztcbmltcG9ydCB7SU1uZ0NydWRBcGlTZXJ2aWNlLCBJTW5nR2V0QWxsQXBpU2VydmljZX0gZnJvbSAnLi4vYXBpL3NlcnZpY2VzJztcbmltcG9ydCB7QWN0aW9uQ29udGV4dH0gZnJvbSAnLi4vY29tcG9uZW50cy9hY3Rpb24vbW9kZWxzJztcbmltcG9ydCB7SUVkaXRvckRhdGFQcm92aWRlciwgSVRhYmxlRGF0YVByb3ZpZGVyfSBmcm9tICcuLi9kYXRhLXByb3ZpZGVycyc7XG5pbXBvcnQge01uZ0Vycm9ySW50ZXJuYWx9IGZyb20gJy4uL21vZGVscyc7XG5cbmV4cG9ydCBjbGFzcyBBY3Rpb25EYXRhUHJvdmlkZXJVdGlsIHtcbiAgICBwdWJsaWMgc3RhdGljIHJ1bkdldEFsbE9yRmFpbDxULCBTPihjdHg6IEFjdGlvbkNvbnRleHQ8VCwgUz4pOiBPYnNlcnZhYmxlPE1lZGl1c1F1ZXJ5UmVzdWx0PFQ+PiB7XG4gICAgICAgIGNvbnN0IGRhdGFQcm92aWRlckV4ZWMgPSBBY3Rpb25EYXRhUHJvdmlkZXJVdGlsLnJ1bkdldEFsbERhdGFQcm92aWRlcihjdHgpO1xuICAgICAgICBpZiAoaXNPYnNlcnZhYmxlKGRhdGFQcm92aWRlckV4ZWMpKSB7XG4gICAgICAgICAgICByZXR1cm4gZGF0YVByb3ZpZGVyRXhlYztcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzZXJ2aWNlRXhlYyA9IEFjdGlvbkRhdGFQcm92aWRlclV0aWwucnVuR2V0QWxsU2VydmljZShjdHgpO1xuICAgICAgICByZXR1cm4gaXNPYnNlcnZhYmxlKHNlcnZpY2VFeGVjKVxuICAgICAgICAgICAgPyBzZXJ2aWNlRXhlY1xuICAgICAgICAgICAgOiB0aHJvd0Vycm9yKCgpID0+XG4gICAgICAgICAgICAgICAgICBuZXcgTW5nRXJyb3JJbnRlcm5hbChcbiAgICAgICAgICAgICAgICAgICAgICBgRGF0YSBwcm92aWRlciBhbmQgc2VydmljZSBpbnN0YW5jZSBjb3VsZCBub3QgZXh0cmFjdCBmZXRjaCBmdW5jdGlvbiB0byBleGVjdXRlIGluIGFjdGlvbiAke2N0eC5pbnN0YW5jZS5hY3Rpb24uYWN0aW9uTmFtZUxvbmd9ICgke2N0eC5pbnN0YW5jZS5hY3Rpb24ubW9kZWw/LnR5cGVOYW1lfSkgZm9yIGl0ZW0gaWQgJHtjdHgucGFyYW1ldGVycz8uaXRlbUlkfS5gLFxuICAgICAgICAgICAgICAgICAgICAgICdBY3Rpb25EYXRhUHJvdmlkZXJVdGlscyBlcnJvcidcbiAgICAgICAgICAgICAgICAgICkuY29uc29sZUVycm9yKClcbiAgICAgICAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIHJ1bkZldGNoT3JGYWlsPFQsIFM+KGN0eDogQWN0aW9uQ29udGV4dDxULCBTPik6IE9ic2VydmFibGU8VD4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgQWN0aW9uRGF0YVByb3ZpZGVyVXRpbC5ydW5GZXRjaChjdHgpID8/XG4gICAgICAgICAgICB0aHJvd0Vycm9yKCgpID0+XG4gICAgICAgICAgICAgICAgbmV3IE1uZ0Vycm9ySW50ZXJuYWwoXG4gICAgICAgICAgICAgICAgICAgIGBEYXRhIHByb3ZpZGVyIGFuZCBzZXJ2aWNlIGluc3RhbmNlIGNvdWxkIG5vdCBleHRyYWN0IGZldGNoIGZ1bmN0aW9uIHRvIGV4ZWN1dGUgaW4gYWN0aW9uICR7Y3R4Lmluc3RhbmNlLmFjdGlvbi5hY3Rpb25OYW1lTG9uZ30gKCR7Y3R4Lmluc3RhbmNlLmFjdGlvbi5tb2RlbD8udHlwZU5hbWV9KSBmb3IgaXRlbSBpZCAke2N0eC5wYXJhbWV0ZXJzPy5pdGVtSWR9LmAsXG4gICAgICAgICAgICAgICAgICAgICdBY3Rpb25EYXRhUHJvdmlkZXJVdGlscyBlcnJvcidcbiAgICAgICAgICAgICAgICApLmNvbnNvbGVFcnJvcigpXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBydW5GZXRjaDxULCBTPihjdHg6IEFjdGlvbkNvbnRleHQ8VCwgUz4pOiBPYnNlcnZhYmxlPFQ+IHwgbnVsbDtcbiAgICBwdWJsaWMgc3RhdGljIHJ1bkZldGNoPFQsIFM+KGN0eDogQWN0aW9uQ29udGV4dDxULCBTPiwgZmFsbGJhY2s6IE9ic2VydmFibGU8VCB8IG51bGwgfCB1bmRlZmluZWQ+KTogT2JzZXJ2YWJsZTxUIHwgbnVsbCB8IHVuZGVmaW5lZD47XG4gICAgcHVibGljIHN0YXRpYyBydW5GZXRjaDxULCBTPihjdHg6IEFjdGlvbkNvbnRleHQ8VCwgUz4sIGZhbGxiYWNrPzogT2JzZXJ2YWJsZTxUIHwgbnVsbCB8IHVuZGVmaW5lZD4pOiBPYnNlcnZhYmxlPFQgfCBudWxsIHwgdW5kZWZpbmVkPiB8IG51bGwge1xuICAgICAgICBjb25zdCBkYXRhUHJvdmlkZXJFeGVjID0gQWN0aW9uRGF0YVByb3ZpZGVyVXRpbC5ydW5GZXRjaERhdGFQcm92aWRlcihjdHgpO1xuICAgICAgICBpZiAoaXNPYnNlcnZhYmxlKGRhdGFQcm92aWRlckV4ZWMpKSB7XG4gICAgICAgICAgICByZXR1cm4gZGF0YVByb3ZpZGVyRXhlYztcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzZXJ2aWNlRXhlYyA9IEFjdGlvbkRhdGFQcm92aWRlclV0aWwucnVuR2V0QnlJZFNlcnZpY2UoY3R4KTtcbiAgICAgICAgcmV0dXJuIGlzT2JzZXJ2YWJsZShzZXJ2aWNlRXhlYykgPyBzZXJ2aWNlRXhlYyA6IGZhbGxiYWNrID8/IG51bGw7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBydW5DcmVhdGVPckZhaWw8VCwgUz4oY3R4OiBBY3Rpb25Db250ZXh0PFQsIFM+KTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICBBY3Rpb25EYXRhUHJvdmlkZXJVdGlsLnJ1bkNyZWF0ZShjdHgpID8/XG4gICAgICAgICAgICB0aHJvd0Vycm9yKCgpID0+XG4gICAgICAgICAgICAgICAgbmV3IE1uZ0Vycm9ySW50ZXJuYWwoXG4gICAgICAgICAgICAgICAgICAgIGBEYXRhIHByb3ZpZGVyIGFuZCBzZXJ2aWNlIGluc3RhbmNlIGNvdWxkIG5vdCBleHRyYWN0IGNyZWF0ZSBmdW5jdGlvbiB0byBleGVjdXRlIGluIGFjdGlvbiAke2N0eC5pbnN0YW5jZS5hY3Rpb24uYWN0aW9uTmFtZUxvbmd9ICgke2N0eC5pbnN0YW5jZS5hY3Rpb24ubW9kZWw/LnR5cGVOYW1lfSkgZm9yIGl0ZW0gJHtjdHgucGFyYW1ldGVycz8uaXRlbX0uYCxcbiAgICAgICAgICAgICAgICAgICAgJ0FjdGlvbkRhdGFQcm92aWRlclV0aWxzIGVycm9yJ1xuICAgICAgICAgICAgICAgICkuY29uc29sZUVycm9yKClcbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIHJ1bkNyZWF0ZTxULCBTPihjdHg6IEFjdGlvbkNvbnRleHQ8VCwgUz4pOiBPYnNlcnZhYmxlPFQ+IHwgbnVsbDtcbiAgICBwdWJsaWMgc3RhdGljIHJ1bkNyZWF0ZTxULCBTPihjdHg6IEFjdGlvbkNvbnRleHQ8VCwgUz4sIGZhbGxiYWNrOiBPYnNlcnZhYmxlPFQgfCBudWxsIHwgdW5kZWZpbmVkPik6IE9ic2VydmFibGU8VCB8IG51bGwgfCB1bmRlZmluZWQ+O1xuICAgIHB1YmxpYyBzdGF0aWMgcnVuQ3JlYXRlPFQsIFM+KGN0eDogQWN0aW9uQ29udGV4dDxULCBTPiwgZmFsbGJhY2s/OiBPYnNlcnZhYmxlPFQgfCBudWxsIHwgdW5kZWZpbmVkPik6IE9ic2VydmFibGU8VCB8IG51bGwgfCB1bmRlZmluZWQ+IHwgbnVsbCB7XG4gICAgICAgIGNvbnN0IGRhdGFQcm92aWRlckV4ZWMgPSBBY3Rpb25EYXRhUHJvdmlkZXJVdGlsLnJ1bkNyZWF0ZURhdGFQcm92aWRlcihjdHgpO1xuICAgICAgICBpZiAoaXNPYnNlcnZhYmxlKGRhdGFQcm92aWRlckV4ZWMpKSB7XG4gICAgICAgICAgICByZXR1cm4gZGF0YVByb3ZpZGVyRXhlYztcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzZXJ2aWNlRXhlYyA9IEFjdGlvbkRhdGFQcm92aWRlclV0aWwucnVuQ3JlYXRlU2VydmljZShjdHgpO1xuICAgICAgICByZXR1cm4gaXNPYnNlcnZhYmxlKHNlcnZpY2VFeGVjKSA/IHNlcnZpY2VFeGVjIDogZmFsbGJhY2sgPz8gbnVsbDtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIHJ1blVwZGF0ZU9yRmFpbDxULCBTPihjdHg6IEFjdGlvbkNvbnRleHQ8VCwgUz4pOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIEFjdGlvbkRhdGFQcm92aWRlclV0aWwucnVuVXBkYXRlKGN0eCkgPz9cbiAgICAgICAgICAgIHRocm93RXJyb3IoKCkgPT5cbiAgICAgICAgICAgICAgICBuZXcgTW5nRXJyb3JJbnRlcm5hbChcbiAgICAgICAgICAgICAgICAgICAgYERhdGEgcHJvdmlkZXIgYW5kIHNlcnZpY2UgaW5zdGFuY2UgY291bGQgbm90IGV4dHJhY3QgdXBkYXRlIGZ1bmN0aW9uIHRvIGV4ZWN1dGUgaW4gYWN0aW9uICR7Y3R4Lmluc3RhbmNlLmFjdGlvbi5hY3Rpb25OYW1lTG9uZ30gKCR7Y3R4Lmluc3RhbmNlLmFjdGlvbi5tb2RlbD8udHlwZU5hbWV9KSBmb3IgaXRlbSBpZCAke2N0eC5wYXJhbWV0ZXJzPy5pdGVtSWR9LmAsXG4gICAgICAgICAgICAgICAgICAgICdBY3Rpb25EYXRhUHJvdmlkZXJVdGlscyBlcnJvcidcbiAgICAgICAgICAgICAgICApLmNvbnNvbGVFcnJvcigpXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBydW5VcGRhdGU8VCwgUz4oY3R4OiBBY3Rpb25Db250ZXh0PFQsIFM+KTogT2JzZXJ2YWJsZTxUPiB8IG51bGw7XG4gICAgcHVibGljIHN0YXRpYyBydW5VcGRhdGU8VCwgUz4oY3R4OiBBY3Rpb25Db250ZXh0PFQsIFM+LCBmYWxsYmFjazogT2JzZXJ2YWJsZTxUIHwgbnVsbCB8IHVuZGVmaW5lZD4pOiBPYnNlcnZhYmxlPFQgfCBudWxsIHwgdW5kZWZpbmVkPjtcbiAgICBwdWJsaWMgc3RhdGljIHJ1blVwZGF0ZTxULCBTPihjdHg6IEFjdGlvbkNvbnRleHQ8VCwgUz4sIGZhbGxiYWNrPzogT2JzZXJ2YWJsZTxUIHwgbnVsbCB8IHVuZGVmaW5lZD4pOiBPYnNlcnZhYmxlPFQgfCBudWxsIHwgdW5kZWZpbmVkPiB8IG51bGwge1xuICAgICAgICBjb25zdCBkYXRhUHJvdmlkZXJFeGVjID0gQWN0aW9uRGF0YVByb3ZpZGVyVXRpbC5ydW5VcGRhdGVEYXRhUHJvdmlkZXIoY3R4KTtcbiAgICAgICAgaWYgKGlzT2JzZXJ2YWJsZShkYXRhUHJvdmlkZXJFeGVjKSkge1xuICAgICAgICAgICAgcmV0dXJuIGRhdGFQcm92aWRlckV4ZWM7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc2VydmljZUV4ZWMgPSBBY3Rpb25EYXRhUHJvdmlkZXJVdGlsLnJ1blVwZGF0ZVNlcnZpY2UoY3R4KTtcbiAgICAgICAgcmV0dXJuIGlzT2JzZXJ2YWJsZShzZXJ2aWNlRXhlYykgPyBzZXJ2aWNlRXhlYyA6IGZhbGxiYWNrID8/IG51bGw7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBydW5EZWxldGVPckZhaWw8VCwgUz4oY3R4OiBBY3Rpb25Db250ZXh0PFQsIFM+KTogT2JzZXJ2YWJsZTxUIHwgbnVsbD4ge1xuICAgICAgICBjb25zdCBkYXRhUHJvdmlkZXJFeGVjID0gQWN0aW9uRGF0YVByb3ZpZGVyVXRpbC5ydW5EZWxldGVEYXRhUHJvdmlkZXIoY3R4KTtcbiAgICAgICAgaWYgKGlzT2JzZXJ2YWJsZShkYXRhUHJvdmlkZXJFeGVjKSkge1xuICAgICAgICAgICAgcmV0dXJuIGRhdGFQcm92aWRlckV4ZWM7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc2VydmljZUV4ZWMgPSBBY3Rpb25EYXRhUHJvdmlkZXJVdGlsLnJ1bkRlbGV0ZVNlcnZpY2UoY3R4KTtcbiAgICAgICAgcmV0dXJuIGlzT2JzZXJ2YWJsZShzZXJ2aWNlRXhlYylcbiAgICAgICAgICAgID8gc2VydmljZUV4ZWNcbiAgICAgICAgICAgIDogdGhyb3dFcnJvcigoKSA9PlxuICAgICAgICAgICAgICAgICAgbmV3IE1uZ0Vycm9ySW50ZXJuYWwoXG4gICAgICAgICAgICAgICAgICAgICAgYERhdGEgcHJvdmlkZXIgYW5kIHNlcnZpY2UgaW5zdGFuY2UgY291bGQgbm90IGV4dHJhY3QgZGVsZXRlIGZ1bmN0aW9uIHRvIGV4ZWN1dGUgaW4gYWN0aW9uICR7Y3R4Lmluc3RhbmNlLmFjdGlvbi5hY3Rpb25OYW1lTG9uZ30gKCR7Y3R4Lmluc3RhbmNlLmFjdGlvbi5tb2RlbD8udHlwZU5hbWV9KSBmb3IgaXRlbSBpZCAke2N0eC5wYXJhbWV0ZXJzPy5pdGVtSWR9LmAsXG4gICAgICAgICAgICAgICAgICAgICAgJ0FjdGlvbkRhdGFQcm92aWRlclV0aWxzIGVycm9yJ1xuICAgICAgICAgICAgICAgICAgKS5jb25zb2xlRXJyb3IoKVxuICAgICAgICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgcnVuR2V0QWxsU2VydmljZTxUPihjdHg6IEFjdGlvbkNvbnRleHQ8VCwgdW5rbm93bj4pOiBPYnNlcnZhYmxlPE1lZGl1c1F1ZXJ5UmVzdWx0PFQ+PiB8IG51bGwge1xuICAgICAgICBpZiAodHlwZW9mIGN0eC5zZXJ2aWNlSW5zdGFuY2UgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICBjb25zdCBnZXRBbGxTZXJ2aWNlSW5zdGFuY2UgPSBjdHguc2VydmljZUluc3RhbmNlIGFzIElNbmdHZXRBbGxBcGlTZXJ2aWNlPE1lZGl1c1F1ZXJ5UmVzdWx0PFQ+PjtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgZ2V0QWxsU2VydmljZUluc3RhbmNlLmdldEFsbFBvc3QgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBxdWVyeVBhcmFtID0gY3R4LnBhcmFtZXRlcnM/LnF1ZXJ5UGFyYW0gPz8gTWVkaXVzUXVlcnlQYXJhbUJ1aWxkZXIuY3JlYXRlKCkuYnVpbGQoKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gZ2V0QWxsU2VydmljZUluc3RhbmNlLmdldEFsbFBvc3QocXVlcnlQYXJhbSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBydW5HZXRCeUlkU2VydmljZTxUPihjdHg6IEFjdGlvbkNvbnRleHQ8VCwgdW5rbm93bj4pOiBPYnNlcnZhYmxlPFQ+IHwgbnVsbCB7XG4gICAgICAgIGlmICh0eXBlb2YgY3R4LnNlcnZpY2VJbnN0YW5jZSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIGNvbnN0IGNydWRTZXJ2aWNlSW5zdGFuY2UgPSBjdHguc2VydmljZUluc3RhbmNlIGFzIElNbmdDcnVkQXBpU2VydmljZTxUPjtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgY3J1ZFNlcnZpY2VJbnN0YW5jZS5nZXRCeUlkR2V0ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGN0eC5wYXJhbWV0ZXJzPy5pdGVtSWQgPyBjcnVkU2VydmljZUluc3RhbmNlLmdldEJ5SWRHZXQoY3R4LnBhcmFtZXRlcnMuaXRlbUlkKSA6IG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBydW5DcmVhdGVTZXJ2aWNlPFQ+KGN0eDogQWN0aW9uQ29udGV4dDxULCB1bmtub3duPik6IE9ic2VydmFibGU8VD4gfCBudWxsIHtcbiAgICAgICAgaWYgKHR5cGVvZiBjdHguc2VydmljZUluc3RhbmNlICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgY29uc3QgY3J1ZFNlcnZpY2VJbnN0YW5jZSA9IGN0eC5zZXJ2aWNlSW5zdGFuY2UgYXMgSU1uZ0NydWRBcGlTZXJ2aWNlPFQ+O1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBjcnVkU2VydmljZUluc3RhbmNlLmNyZWF0ZVBvc3QgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gY3R4LnBhcmFtZXRlcnM/Lml0ZW0gPyBjcnVkU2VydmljZUluc3RhbmNlLmNyZWF0ZVBvc3QoY3R4LnBhcmFtZXRlcnMuaXRlbSkgOiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgcnVuVXBkYXRlU2VydmljZTxUPihjdHg6IEFjdGlvbkNvbnRleHQ8VCwgdW5rbm93bj4pOiBPYnNlcnZhYmxlPFQ+IHwgbnVsbCB7XG4gICAgICAgIGlmICh0eXBlb2YgY3R4LnNlcnZpY2VJbnN0YW5jZSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIGNvbnN0IGNydWRTZXJ2aWNlSW5zdGFuY2UgPSBjdHguc2VydmljZUluc3RhbmNlIGFzIElNbmdDcnVkQXBpU2VydmljZTxUPjtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgY3J1ZFNlcnZpY2VJbnN0YW5jZS51cGRhdGVQdXQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gY3R4LnBhcmFtZXRlcnM/Lml0ZW1JZCAmJiBjdHgucGFyYW1ldGVycy5pdGVtID8gY3J1ZFNlcnZpY2VJbnN0YW5jZS51cGRhdGVQdXQoY3R4LnBhcmFtZXRlcnMuaXRlbUlkLCBjdHgucGFyYW1ldGVycy5pdGVtKSA6IG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBydW5EZWxldGVTZXJ2aWNlPFQ+KGN0eDogQWN0aW9uQ29udGV4dDxULCB1bmtub3duPik6IE9ic2VydmFibGU8VCB8IG51bGw+IHwgbnVsbCB7XG4gICAgICAgIGlmICh0eXBlb2YgY3R4LnNlcnZpY2VJbnN0YW5jZSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIGNvbnN0IGNydWRTZXJ2aWNlSW5zdGFuY2UgPSBjdHguc2VydmljZUluc3RhbmNlIGFzIElNbmdDcnVkQXBpU2VydmljZTxUPjtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgY3J1ZFNlcnZpY2VJbnN0YW5jZS5yZW1vdmVEZWxldGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gY3R4LnBhcmFtZXRlcnM/Lml0ZW1JZCA/IGNydWRTZXJ2aWNlSW5zdGFuY2UucmVtb3ZlRGVsZXRlKGN0eC5wYXJhbWV0ZXJzLml0ZW1JZCwgY3R4LnBhcmFtZXRlcnMuaXRlbSkgOiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgcnVuR2V0QWxsRGF0YVByb3ZpZGVyPFQsIFM+KGN0eDogQWN0aW9uQ29udGV4dDxULCBTPik6IE9ic2VydmFibGU8TWVkaXVzUXVlcnlSZXN1bHQ8VD4+IHwgbnVsbCB7XG4gICAgICAgIGlmICh0eXBlb2YgY3R4LmRhdGFQcm92aWRlciAhPT0gJ3VuZGVmaW5lZCcgJiYgdHlwZW9mIGN0eC5kYXRhUHJvdmlkZXJbJ2dldEFsbCcgYXMga2V5b2Ygb2JqZWN0XSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgY29uc3QgdGFibGVEYXRhUHJvdmlkZXIgPSBjdHguZGF0YVByb3ZpZGVyIGFzIElUYWJsZURhdGFQcm92aWRlcjxULCBhbnk+O1xuICAgICAgICAgICAgY29uc3QgcXVlcnlQYXJhbSA9IGN0eC5wYXJhbWV0ZXJzPy5xdWVyeVBhcmFtID8/IE1lZGl1c1F1ZXJ5UGFyYW1CdWlsZGVyLmNyZWF0ZSgpLmJ1aWxkKCk7XG4gICAgICAgICAgICByZXR1cm4gdGFibGVEYXRhUHJvdmlkZXIuZ2V0QWxsKHF1ZXJ5UGFyYW0sIGN0eC5zZXJ2aWNlSW5zdGFuY2UpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgcnVuRmV0Y2hEYXRhUHJvdmlkZXI8VCwgUz4oY3R4OiBBY3Rpb25Db250ZXh0PFQsIFM+KTogT2JzZXJ2YWJsZTxUPiB8IG51bGwge1xuICAgICAgICBpZiAodHlwZW9mIGN0eC5kYXRhUHJvdmlkZXIgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICBjb25zdCBlZGl0b3JEYXRhUHJvdmlkZXIgPSBjdHguZGF0YVByb3ZpZGVyIGFzIElFZGl0b3JEYXRhUHJvdmlkZXI8VCwgYW55PjtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgZWRpdG9yRGF0YVByb3ZpZGVyLmZldGNoID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGN0eC5wYXJhbWV0ZXJzPy5pdGVtSWQgPyBlZGl0b3JEYXRhUHJvdmlkZXIuZmV0Y2goY3R4LnBhcmFtZXRlcnMuaXRlbUlkLCBjdHguc2VydmljZUluc3RhbmNlLCBjdHgucGFyYW1ldGVycy5sb2NhbGUpIDogbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIHJ1bkNyZWF0ZURhdGFQcm92aWRlcjxULCBTPihjdHg6IEFjdGlvbkNvbnRleHQ8VCwgUz4pOiBPYnNlcnZhYmxlPFQ+IHwgbnVsbCB7XG4gICAgICAgIGlmICh0eXBlb2YgY3R4LmRhdGFQcm92aWRlciAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIGNvbnN0IGVkaXRvckRhdGFQcm92aWRlciA9IGN0eC5kYXRhUHJvdmlkZXIgYXMgSUVkaXRvckRhdGFQcm92aWRlcjxULCBhbnk+O1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBlZGl0b3JEYXRhUHJvdmlkZXIuY3JlYXRlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGN0eC5wYXJhbWV0ZXJzPy5pdGVtID8gZWRpdG9yRGF0YVByb3ZpZGVyLmNyZWF0ZShjdHgucGFyYW1ldGVycy5pdGVtLCBjdHguc2VydmljZUluc3RhbmNlKSA6IG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBydW5VcGRhdGVEYXRhUHJvdmlkZXI8VCwgUz4oY3R4OiBBY3Rpb25Db250ZXh0PFQsIFM+KTogT2JzZXJ2YWJsZTxUPiB8IG51bGwge1xuICAgICAgICBpZiAodHlwZW9mIGN0eC5kYXRhUHJvdmlkZXIgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICBjb25zdCBlZGl0b3JEYXRhUHJvdmlkZXIgPSBjdHguZGF0YVByb3ZpZGVyIGFzIElFZGl0b3JEYXRhUHJvdmlkZXI8VCwgYW55PjtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgZWRpdG9yRGF0YVByb3ZpZGVyLnVwZGF0ZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBjdHgucGFyYW1ldGVycz8uaXRlbUlkID8gZWRpdG9yRGF0YVByb3ZpZGVyLnVwZGF0ZShjdHgucGFyYW1ldGVycy5pdGVtSWQsIGN0eC5wYXJhbWV0ZXJzLml0ZW0sIGN0eC5zZXJ2aWNlSW5zdGFuY2UpIDogbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIHJ1bkRlbGV0ZURhdGFQcm92aWRlcjxULCBTPihjdHg6IEFjdGlvbkNvbnRleHQ8VCwgUz4pOiBPYnNlcnZhYmxlPFQgfCBudWxsPiB8IG51bGwge1xuICAgICAgICBpZiAodHlwZW9mIGN0eC5kYXRhUHJvdmlkZXIgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICBjb25zdCBlZGl0b3JEYXRhUHJvdmlkZXIgPSBjdHguZGF0YVByb3ZpZGVyIGFzIElFZGl0b3JEYXRhUHJvdmlkZXI8VCwgYW55PjtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgZWRpdG9yRGF0YVByb3ZpZGVyLmRlbGV0ZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBjdHgucGFyYW1ldGVycz8uaXRlbUlkID8gZWRpdG9yRGF0YVByb3ZpZGVyLmRlbGV0ZShjdHgucGFyYW1ldGVycy5pdGVtSWQsIGN0eC5wYXJhbWV0ZXJzLml0ZW0sIGN0eC5zZXJ2aWNlSW5zdGFuY2UpIDogbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,18 @@
1
+ export class FileUtil {
2
+ static saveAs(blob, filename) {
3
+ const blobUrl = URL.createObjectURL(blob);
4
+ const link = document.createElement('a');
5
+ link.style.display = 'none';
6
+ link.target = '_blank';
7
+ link.href = blobUrl;
8
+ link.download = filename;
9
+ document.body.appendChild(link);
10
+ link.dispatchEvent(new MouseEvent('click', {
11
+ bubbles: true,
12
+ cancelable: true,
13
+ view: window
14
+ }));
15
+ document.body.removeChild(link);
16
+ }
17
+ }
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi91dGlscy9maWxlLnV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLFFBQVE7SUFDVixNQUFNLENBQUMsTUFBTSxDQUFDLElBQVUsRUFBRSxRQUFnQjtRQUM3QyxNQUFNLE9BQU8sR0FBRyxHQUFHLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFDLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFekMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO1FBQzVCLElBQUksQ0FBQyxNQUFNLEdBQUcsUUFBUSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBRXpCLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRWhDLElBQUksQ0FBQyxhQUFhLENBQ2QsSUFBSSxVQUFVLENBQUMsT0FBTyxFQUFFO1lBQ3BCLE9BQU8sRUFBRSxJQUFJO1lBQ2IsVUFBVSxFQUFFLElBQUk7WUFDaEIsSUFBSSxFQUFFLE1BQU07U0FDZixDQUFDLENBQ0wsQ0FBQztRQUVGLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3BDLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBGaWxlVXRpbCB7XG4gICAgcHVibGljIHN0YXRpYyBzYXZlQXMoYmxvYjogQmxvYiwgZmlsZW5hbWU6IHN0cmluZykge1xuICAgICAgICBjb25zdCBibG9iVXJsID0gVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKTtcbiAgICAgICAgY29uc3QgbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcblxuICAgICAgICBsaW5rLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gICAgICAgIGxpbmsudGFyZ2V0ID0gJ19ibGFuayc7XG4gICAgICAgIGxpbmsuaHJlZiA9IGJsb2JVcmw7XG4gICAgICAgIGxpbmsuZG93bmxvYWQgPSBmaWxlbmFtZTtcblxuICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGxpbmspO1xuXG4gICAgICAgIGxpbmsuZGlzcGF0Y2hFdmVudChcbiAgICAgICAgICAgIG5ldyBNb3VzZUV2ZW50KCdjbGljaycsIHtcbiAgICAgICAgICAgICAgICBidWJibGVzOiB0cnVlLFxuICAgICAgICAgICAgICAgIGNhbmNlbGFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgdmlldzogd2luZG93XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuXG4gICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQobGluayk7XG4gICAgfVxufVxuIl19
@@ -9,4 +9,5 @@ export * from './object.util';
9
9
  export * from './string.util';
10
10
  export * from './type.util';
11
11
  export * from './export.util';
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3V0aWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsZUFBZSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hY3Rpb24tZGF0YS1wcm92aWRlci51dGlsJztcbmV4cG9ydCAqIGZyb20gJy4vZGF0ZS51dGlsJztcbmV4cG9ydCAqIGZyb20gJy4vZWRpdG9yLWZvcm1seS51dGlsJztcbmV4cG9ydCAqIGZyb20gJy4vZW51bS51dGlsJztcbmV4cG9ydCAqIGZyb20gJy4vaTE4bi51dGlsJztcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWwudXRpbCc7XG5leHBvcnQgKiBmcm9tICcuL25vdGlmaWNhdGlvbi51dGlsJztcbmV4cG9ydCAqIGZyb20gJy4vb2JqZWN0LnV0aWwnO1xuZXhwb3J0ICogZnJvbSAnLi9zdHJpbmcudXRpbCc7XG5leHBvcnQgKiBmcm9tICcuL3R5cGUudXRpbCc7XG5leHBvcnQgKiBmcm9tICcuL2V4cG9ydC51dGlsJztcbiJdfQ==
12
+ export * from './file.util';
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3V0aWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsYUFBYSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hY3Rpb24tZGF0YS1wcm92aWRlci51dGlsJztcbmV4cG9ydCAqIGZyb20gJy4vZGF0ZS51dGlsJztcbmV4cG9ydCAqIGZyb20gJy4vZWRpdG9yLWZvcm1seS51dGlsJztcbmV4cG9ydCAqIGZyb20gJy4vZW51bS51dGlsJztcbmV4cG9ydCAqIGZyb20gJy4vaTE4bi51dGlsJztcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWwudXRpbCc7XG5leHBvcnQgKiBmcm9tICcuL25vdGlmaWNhdGlvbi51dGlsJztcbmV4cG9ydCAqIGZyb20gJy4vb2JqZWN0LnV0aWwnO1xuZXhwb3J0ICogZnJvbSAnLi9zdHJpbmcudXRpbCc7XG5leHBvcnQgKiBmcm9tICcuL3R5cGUudXRpbCc7XG5leHBvcnQgKiBmcm9tICcuL2V4cG9ydC51dGlsJztcbmV4cG9ydCAqIGZyb20gJy4vZmlsZS51dGlsJztcbiJdfQ==
@@ -1,3 +1,4 @@
1
+ import { MngErrorInternal } from '../models';
1
2
  export class RouteUtil {
2
3
  static removeEmptyPathSegments(path) {
3
4
  const filteredPath = path.filter(ps => typeof ps === 'string' && ps.length > 0);
@@ -10,7 +11,7 @@ export class RouteUtil {
10
11
  }
11
12
  else if (path[0].startsWith('../')) {
12
13
  // TODO: process multi upper folder
13
- throw new Error('Not implemented');
14
+ throw new MngErrorInternal('Not implemented', 'RouteUtils error').consoleError();
14
15
  }
15
16
  else {
16
17
  return RouteUtil.removeEmptyPathSegments([...basePath, ...path]);
@@ -33,4 +34,4 @@ export class RouteUtil {
33
34
  });
34
35
  }
35
36
  }
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUudXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdXRpbHMvcm91dGUudXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQU8sU0FBUztJQUNYLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxJQUFtQjtRQUNyRCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLEtBQUssUUFBUSxJQUFJLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDaEYsT0FBTyxZQUFZLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFTSxNQUFNLENBQUMsb0JBQW9CLENBQUMsUUFBdUIsRUFBRSxJQUFtQjtRQUMzRSxJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ2pCLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDekIsT0FBTyxJQUFJLENBQUM7YUFDZjtpQkFBTSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQ2xDLG1DQUFtQztnQkFDbkMsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO2FBQ3RDO2lCQUFNO2dCQUNILE9BQU8sU0FBUyxDQUFDLHVCQUF1QixDQUFDLENBQUMsR0FBRyxRQUFRLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDO2FBQ3BFO1NBQ0o7YUFBTTtZQUNILE9BQU8sUUFBUSxDQUFDO1NBQ25CO0lBQ0wsQ0FBQztJQUVNLE1BQU0sQ0FBQyxpQ0FBaUMsQ0FBQyxZQUFzQixFQUFFLFlBQTZCO1FBQ2pHLE9BQU8sWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUN4QixNQUFNLGFBQWEsR0FBRyxFQUFDLEdBQUcsQ0FBQyxFQUFDLENBQUM7WUFDN0IsSUFBSSxhQUFhLENBQUMsVUFBVSxFQUFFO2dCQUMxQixhQUFhLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQyxvQkFBb0IsQ0FDckQsWUFBWSxDQUFDLFVBQVUsRUFDdkIsT0FBTyxhQUFhLENBQUMsVUFBVSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQ3ZHLENBQUM7YUFDTDtZQUNELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQ3BDLGFBQWEsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLGlDQUFpQyxDQUFDLFlBQVksRUFBRSxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDbkc7WUFDRCxPQUFPLGFBQWEsQ0FBQztRQUN6QixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TWVudUl0ZW19IGZyb20gJ3ByaW1lbmcvYXBpJztcblxuZXhwb3J0IGNsYXNzIFJvdXRlVXRpbCB7XG4gICAgcHVibGljIHN0YXRpYyByZW1vdmVFbXB0eVBhdGhTZWdtZW50cyhwYXRoOiBBcnJheTxzdHJpbmc+KSB7XG4gICAgICAgIGNvbnN0IGZpbHRlcmVkUGF0aCA9IHBhdGguZmlsdGVyKHBzID0+IHR5cGVvZiBwcyA9PT0gJ3N0cmluZycgJiYgcHMubGVuZ3RoID4gMCk7XG4gICAgICAgIHJldHVybiBmaWx0ZXJlZFBhdGgubGVuZ3RoID4gMCA/IGZpbHRlcmVkUGF0aCA6IFsnJ107XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBhcHBlbmRQYXRoVG9CYXNlUGF0aChiYXNlUGF0aDogQXJyYXk8c3RyaW5nPiwgcGF0aDogQXJyYXk8c3RyaW5nPikge1xuICAgICAgICBpZiAocGF0aC5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBpZiAocGF0aFswXS5zdGFydHNXaXRoKCcvJykpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcGF0aDtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAocGF0aFswXS5zdGFydHNXaXRoKCcuLi8nKSkge1xuICAgICAgICAgICAgICAgIC8vIFRPRE86IHByb2Nlc3MgbXVsdGkgdXBwZXIgZm9sZGVyXG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQnKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFJvdXRlVXRpbC5yZW1vdmVFbXB0eVBhdGhTZWdtZW50cyhbLi4uYmFzZVBhdGgsIC4uLnBhdGhdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBiYXNlUGF0aDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgYWRqdXN0TWVudUxhenlDaGlsZHJlblJvdXRlckxpbmtzKHJvb3RNZW51SXRlbTogTWVudUl0ZW0sIGxhenlDaGlsZHJlbjogQXJyYXk8TWVudUl0ZW0+KSB7XG4gICAgICAgIHJldHVybiBsYXp5Q2hpbGRyZW4ubWFwKGkgPT4ge1xuICAgICAgICAgICAgY29uc3QgY2hpbGRNZW51SXRlbSA9IHsuLi5pfTtcbiAgICAgICAgICAgIGlmIChjaGlsZE1lbnVJdGVtLnJvdXRlckxpbmspIHtcbiAgICAgICAgICAgICAgICBjaGlsZE1lbnVJdGVtLnJvdXRlckxpbmsgPSBSb3V0ZVV0aWwuYXBwZW5kUGF0aFRvQmFzZVBhdGgoXG4gICAgICAgICAgICAgICAgICAgIHJvb3RNZW51SXRlbS5yb3V0ZXJMaW5rLFxuICAgICAgICAgICAgICAgICAgICB0eXBlb2YgY2hpbGRNZW51SXRlbS5yb3V0ZXJMaW5rID09PSAnc3RyaW5nJyA/IFtjaGlsZE1lbnVJdGVtLnJvdXRlckxpbmtdIDogY2hpbGRNZW51SXRlbS5yb3V0ZXJMaW5rXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGNoaWxkTWVudUl0ZW0uaXRlbXMpKSB7XG4gICAgICAgICAgICAgICAgY2hpbGRNZW51SXRlbS5pdGVtcyA9IHRoaXMuYWRqdXN0TWVudUxhenlDaGlsZHJlblJvdXRlckxpbmtzKHJvb3RNZW51SXRlbSwgY2hpbGRNZW51SXRlbS5pdGVtcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gY2hpbGRNZW51SXRlbTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUudXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdXRpbHMvcm91dGUudXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxXQUFXLENBQUM7QUFFM0MsTUFBTSxPQUFPLFNBQVM7SUFDWCxNQUFNLENBQUMsdUJBQXVCLENBQUMsSUFBbUI7UUFDckQsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxLQUFLLFFBQVEsSUFBSSxFQUFFLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ2hGLE9BQU8sWUFBWSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRU0sTUFBTSxDQUFDLG9CQUFvQixDQUFDLFFBQXVCLEVBQUUsSUFBbUI7UUFDM0UsSUFBSSxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNqQixJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ3pCLE9BQU8sSUFBSSxDQUFDO2FBQ2Y7aUJBQU0sSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUNsQyxtQ0FBbUM7Z0JBQ25DLE1BQU0sSUFBSSxnQkFBZ0IsQ0FBQyxpQkFBaUIsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDLFlBQVksRUFBRSxDQUFDO2FBQ3BGO2lCQUFNO2dCQUNILE9BQU8sU0FBUyxDQUFDLHVCQUF1QixDQUFDLENBQUMsR0FBRyxRQUFRLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDO2FBQ3BFO1NBQ0o7YUFBTTtZQUNILE9BQU8sUUFBUSxDQUFDO1NBQ25CO0lBQ0wsQ0FBQztJQUVNLE1BQU0sQ0FBQyxpQ0FBaUMsQ0FBQyxZQUFzQixFQUFFLFlBQTZCO1FBQ2pHLE9BQU8sWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUN4QixNQUFNLGFBQWEsR0FBRyxFQUFDLEdBQUcsQ0FBQyxFQUFDLENBQUM7WUFDN0IsSUFBSSxhQUFhLENBQUMsVUFBVSxFQUFFO2dCQUMxQixhQUFhLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQyxvQkFBb0IsQ0FDckQsWUFBWSxDQUFDLFVBQVUsRUFDdkIsT0FBTyxhQUFhLENBQUMsVUFBVSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQ3ZHLENBQUM7YUFDTDtZQUNELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQ3BDLGFBQWEsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLGlDQUFpQyxDQUFDLFlBQVksRUFBRSxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDbkc7WUFDRCxPQUFPLGFBQWEsQ0FBQztRQUN6QixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TWVudUl0ZW19IGZyb20gJ3ByaW1lbmcvYXBpJztcblxuaW1wb3J0IHtNbmdFcnJvckludGVybmFsfSBmcm9tICcuLi9tb2RlbHMnO1xuXG5leHBvcnQgY2xhc3MgUm91dGVVdGlsIHtcbiAgICBwdWJsaWMgc3RhdGljIHJlbW92ZUVtcHR5UGF0aFNlZ21lbnRzKHBhdGg6IEFycmF5PHN0cmluZz4pIHtcbiAgICAgICAgY29uc3QgZmlsdGVyZWRQYXRoID0gcGF0aC5maWx0ZXIocHMgPT4gdHlwZW9mIHBzID09PSAnc3RyaW5nJyAmJiBwcy5sZW5ndGggPiAwKTtcbiAgICAgICAgcmV0dXJuIGZpbHRlcmVkUGF0aC5sZW5ndGggPiAwID8gZmlsdGVyZWRQYXRoIDogWycnXTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGFwcGVuZFBhdGhUb0Jhc2VQYXRoKGJhc2VQYXRoOiBBcnJheTxzdHJpbmc+LCBwYXRoOiBBcnJheTxzdHJpbmc+KSB7XG4gICAgICAgIGlmIChwYXRoLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGlmIChwYXRoWzBdLnN0YXJ0c1dpdGgoJy8nKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBwYXRoO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChwYXRoWzBdLnN0YXJ0c1dpdGgoJy4uLycpKSB7XG4gICAgICAgICAgICAgICAgLy8gVE9ETzogcHJvY2VzcyBtdWx0aSB1cHBlciBmb2xkZXJcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgTW5nRXJyb3JJbnRlcm5hbCgnTm90IGltcGxlbWVudGVkJywgJ1JvdXRlVXRpbHMgZXJyb3InKS5jb25zb2xlRXJyb3IoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFJvdXRlVXRpbC5yZW1vdmVFbXB0eVBhdGhTZWdtZW50cyhbLi4uYmFzZVBhdGgsIC4uLnBhdGhdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBiYXNlUGF0aDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgYWRqdXN0TWVudUxhenlDaGlsZHJlblJvdXRlckxpbmtzKHJvb3RNZW51SXRlbTogTWVudUl0ZW0sIGxhenlDaGlsZHJlbjogQXJyYXk8TWVudUl0ZW0+KSB7XG4gICAgICAgIHJldHVybiBsYXp5Q2hpbGRyZW4ubWFwKGkgPT4ge1xuICAgICAgICAgICAgY29uc3QgY2hpbGRNZW51SXRlbSA9IHsuLi5pfTtcbiAgICAgICAgICAgIGlmIChjaGlsZE1lbnVJdGVtLnJvdXRlckxpbmspIHtcbiAgICAgICAgICAgICAgICBjaGlsZE1lbnVJdGVtLnJvdXRlckxpbmsgPSBSb3V0ZVV0aWwuYXBwZW5kUGF0aFRvQmFzZVBhdGgoXG4gICAgICAgICAgICAgICAgICAgIHJvb3RNZW51SXRlbS5yb3V0ZXJMaW5rLFxuICAgICAgICAgICAgICAgICAgICB0eXBlb2YgY2hpbGRNZW51SXRlbS5yb3V0ZXJMaW5rID09PSAnc3RyaW5nJyA/IFtjaGlsZE1lbnVJdGVtLnJvdXRlckxpbmtdIDogY2hpbGRNZW51SXRlbS5yb3V0ZXJMaW5rXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGNoaWxkTWVudUl0ZW0uaXRlbXMpKSB7XG4gICAgICAgICAgICAgICAgY2hpbGRNZW51SXRlbS5pdGVtcyA9IHRoaXMuYWRqdXN0TWVudUxhenlDaGlsZHJlblJvdXRlckxpbmtzKHJvb3RNZW51SXRlbSwgY2hpbGRNZW51SXRlbS5pdGVtcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gY2hpbGRNZW51SXRlbTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19
@@ -1,5 +1,6 @@
1
1
  import { ObjectSerializer } from '../api/utils';
2
2
  import { ColumnDisplayTypeEnum, ColumnTypeEnum, FieldInputTypeEnum } from '../descriptors/types';
3
+ import { MngErrorInternal } from '../models';
3
4
  export class TableviewUtil {
4
5
  /**
5
6
  * returns attributes from class type and extends to typed def with column and field enum type
@@ -14,7 +15,7 @@ export class TableviewUtil {
14
15
  */
15
16
  static expandAttributeDefWithTableviewTypes(attributes) {
16
17
  if (attributes == null) {
17
- throw new Error('AttributeDef is null, problem with ObjectSerializer::findAttributesDefinitionByClassType?');
18
+ throw new MngErrorInternal('AttributeDef is null, problem with ObjectSerializer::findAttributesDefinitionByClassType?', 'TableViewUtils error').consoleError();
18
19
  }
19
20
  const objectSerializer = ObjectSerializer.get();
20
21
  const tableviewAttributeDef = [];
@@ -157,4 +158,4 @@ export class TableviewUtil {
157
158
  }
158
159
  }
159
160
  TableviewUtil._dateRegex = /\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z)/;
160
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGV2aWV3LnV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3V0aWxzL3RhYmxldmlldy51dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLGNBQWMsQ0FBQztBQUU5QyxPQUFPLEVBQUMscUJBQXFCLEVBQUUsY0FBYyxFQUFFLGtCQUFrQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFJL0YsTUFBTSxPQUFPLGFBQWE7SUFHdEI7OztPQUdHO0lBQ0ksTUFBTSxDQUFDLGtCQUFrQixDQUFJLFNBQXVCO1FBQ3ZELE9BQU8sYUFBYSxDQUFDLG9DQUFvQyxDQUFDLGdCQUFnQixDQUFDLEdBQUcsRUFBRSxDQUFDLG1DQUFtQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFDckksQ0FBQztJQUVEOzs7T0FHRztJQUNJLE1BQU0sQ0FBQyxvQ0FBb0MsQ0FBQyxVQUF1QztRQUN0RixJQUFJLFVBQVUsSUFBSSxJQUFJLEVBQUU7WUFDcEIsTUFBTSxJQUFJLEtBQUssQ0FBQywyRkFBMkYsQ0FBQyxDQUFDO1NBQ2hIO1FBQ0QsTUFBTSxnQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUVoRCxNQUFNLHFCQUFxQixHQUE0QixFQUFFLENBQUM7UUFFMUQsS0FBSyxNQUFNLFNBQVMsSUFBSSxVQUFVLEVBQUU7WUFDaEMsTUFBTSxRQUFRLEdBQUcsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMzRCxNQUFNLFVBQVUsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQy9GLHFCQUFxQixDQUFDLElBQUksQ0FBQztnQkFDdkIsSUFBSSxFQUFFLFNBQVMsQ0FBQyxJ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SUFBSSxDQUFDO1NBQ3RDO0lBQ0wsQ0FBQztJQUVEOzs7T0FHRztJQUNJLE1BQU0sQ0FBQyw4QkFBOEIsQ0FBQyxJQUFvQixFQUFFLFdBQW1DO1FBQ2xHLFFBQVEsSUFBSSxFQUFFO1lBQ1YsS0FBSyxjQUFjLENBQUMsTUFBTTtnQkFDdEIsT0FBTyxXQUFXLEtBQUsscUJBQXFCLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQztZQUNwSCxLQUFLLGNBQWMsQ0FBQyxPQUFPO2dCQUN2QixPQUFPLGtCQUFrQixDQUFDLE1BQU0sQ0FBQztZQUNyQyxLQUFLLGNBQWMsQ0FBQyxJQUFJO2dCQUNwQixPQUFPLGtCQUFrQixDQUFDLFVBQVUsQ0FBQztZQUN6QyxLQUFLLGNBQWMsQ0FBQyxNQUFNO2dCQUN0QixPQUFPLGtCQUFrQixDQUFDLE1BQU0sQ0FBQztZQUNyQyxLQUFLLGNBQWMsQ0FBQyxNQUFNLENBQUM7WUFDM0IsS0FBSyxjQUFjLENBQUMsSUFBSSxDQUFDO1lBQ3pCO2dCQUNJLE9BQU8sa0JBQWtCLENBQUMsSUFBSSxDQUFDO1NBQ3RDO0lBQ0wsQ0FBQzs7QUFqS2Msd0JBQVUsR0FBRywwRUFBMEUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QXR0cmlidXRlRGVmfSBmcm9tICcuLi9hcGkvbW9kZWxzJztcbmltcG9ydCB7T2JqZWN0U2VyaWFsaXplcn0gZnJvbSAnLi4vYXBpL3V0aWxzJztcbmltcG9ydCB7Q29sdW1uRGVzY3JpcHRvcn0gZnJvbSAnLi4vZGVzY3JpcHRvcnMvdGFibGUnO1xuaW1wb3J0IHtDb2x1bW5EaXNwbGF5VHlwZUVudW0sIENvbHVtblR5cGVFbnVtLCBGaWVsZElucHV0VHlwZUVudW19IGZyb20gJy4uL2Rlc2NyaXB0b3JzL3R5cGVzJztcbmltcG9ydCB7VGFibGV2aWV3QXR0cmlidXRlRGVmfSBmcm9tICcuLi9tb2RlbHMvdGFibGV2aWV3LWF0dHIubW9kZWwnO1xuaW1wb3J0IHtDbGFzc1R5cGUsIEVudW1UeXBlfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjbGFzcyBUYWJsZXZpZXdVdGlsIHtcbiAgICBwcml2YXRlIHN0YXRpYyBfZGF0ZVJlZ2V4ID0gL1xcZHs0fS1bMDFdXFxkLVswLTNdXFxkVFswLTJdXFxkOlswLTVdXFxkOlswLTVdXFxkXFwuXFxkKyhbKy1dWzAtMl1cXGQ6WzAtNV1cXGR8WikvO1xuXG4gICAgLyoqXG4gICAgICogcmV0dXJucyBhdHRyaWJ1dGVzIGZyb20gY2xhc3MgdHlwZSBhbmQgZXh0ZW5kcyB0byB0eXBlZCBkZWYgd2l0aCBjb2x1bW4gYW5kIGZpZWxkIGVudW0gdHlwZVxuICAgICAqIEBwYXJhbSBtb2RlbFR5cGUgY2xhc3MgdHlwZVxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZ2V0QXR0cmlidXRlRGVmTWFwPFQ+KG1vZGVsVHlwZTogQ2xhc3NUeXBlPFQ+KTogVGFibGV2aWV3QXR0cmlidXRlRGVmW10ge1xuICAgICAgICByZXR1cm4gVGFibGV2aWV3VXRpbC5leHBhbmRBdHRyaWJ1dGVEZWZXaXRoVGFibGV2aWV3VHlwZXMoT2JqZWN0U2VyaWFsaXplci5nZXQoKS5maW5kQXR0cmlidXRlc0RlZmluaXRpb25CeUNsYXNzVHlwZShtb2RlbFR5cGUpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBleHBhbmRzIEF0dHJpYnV0ZURlZiB0byBUYWJsZXZpZXdBdHRyaWJ1dGVEZWYgd2l0aCBkZWZpbmVkIGlucHV0IGFuZCBjb2x1bW4gZW51bSB0eXBlXG4gICAgICogQHBhcmFtIGF0dHJpYnV0ZXMgb3BlbiBhcGkgc3BlY2lmaWNhdGlvbiBtb2RlbFxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZXhwYW5kQXR0cmlidXRlRGVmV2l0aFRhYmxldmlld1R5cGVzKGF0dHJpYnV0ZXM/OiBBcnJheTxBdHRyaWJ1dGVEZWY+IHwgbnVsbCk6IFRhYmxldmlld0F0dHJpYnV0ZURlZltdIHtcbiAgICAgICAgaWYgKGF0dHJpYnV0ZXMgPT0gbnVsbCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdBdHRyaWJ1dGVEZWYgaXMgbnVsbCwgcHJvYmxlbSB3aXRoIE9iamVjdFNlcmlhbGl6ZXI6OmZpbmRBdHRyaWJ1dGVzRGVmaW5pdGlvbkJ5Q2xhc3NUeXBlPycpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG9iamVjdFNlcmlhbGl6ZXIgPSBPYmplY3RTZXJpYWxpemVyLmdldCgpO1xuXG4gICAgICAgIGNvbnN0IHRhYmxldmlld0F0dHJpYnV0ZURlZjogVGFibGV2aWV3QXR0cmlidXRlRGVmW10gPSBbXTtcblxuICAgICAgICBmb3IgKGNvbnN0IGF0dHJpYnV0ZSBvZiBhdHRyaWJ1dGVzKSB7XG4gICAgICAgICAgICBjb25zdCBlbnVtVHlwZSA9IG9iamVjdFNlcmlhbGl6ZXIuZmluZEVudW0oYXR0cmlidXRlLnR5cGUpO1xuICAgICAgICAgICAgY29uc3QgY29sdW1uVHlwZSA9IGVudW1UeXBlID8gQ29sdW1uVHlwZUVudW0uRW51bSA6IFRhYmxldmlld1V0aWwudG9Db2x1bW5UeXBlKGF0dHJpYnV0ZS50eXBlKTtcbiAgICAgICAgICAgIHRhYmxldmlld0F0dHJpYnV0ZURlZi5wdXNoKHtcbiAgICAgICAgICAgICAgICBuYW1lOiBhdHRyaWJ1dGUubmFtZSxcbiAgICAgICAgICAgICAgICBiYXNlTmFtZTogYXR0cmlidXRlLmJhc2VOYW1lLFxuICAgICAgICAgICAgICAgIHR5cGU6IGF0dHJpYnV0ZS50eXBlLFxuICAgICAgICAgICAgICAgIGNvbHVtblR5cGU6IGVudW1UeXBlID8gQ29sdW1uVHlwZUVudW0uRW51bSA6IFRhYmxldmlld1V0aWwudG9Db2x1bW5UeXBlKGF0dHJpYnV0ZS50eXBlKSxcbiAgICAgICAgICAgICAgICBjb2x1bW5EaXNwbGF5VHlwZTogVGFibGV2aWV3VXRpbC50b0NvbHVtbkRpc3BsYXlUeXBlKGNvbHVtblR5cGUsIGF0dHJpYnV0ZS50eXBlKSxcbiAgICAgICAgICAgICAgICBmaWVsZFR5cGU6IFRhYmxldmlld1V0aWwudG9GaWVsZElucHV0VHlwZShhdHRyaWJ1dGUudHlwZSksXG4gICAgICAgICAgICAgICAgZW51bVR5cGU6IG9iamVjdFNlcmlhbGl6ZXIuZmluZEVudW0oYXR0cmlidXRlLnR5cGUpIGFzIEVudW1UeXBlLFxuICAgICAgICAgICAgICAgIGNsYXNzVHlwZTogb2JqZWN0U2VyaWFsaXplci5maW5kVHlwZShhdHRyaWJ1dGUudHlwZSkgYXMgQ2xhc3NUeXBlPGFueT5cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRhYmxldmlld0F0dHJpYnV0ZURlZjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBjb252ZXJ0cyBjb2x1bW4gdG8gbnVtYmVyIG9yIGRhdGUgb24gdmFsdWUgYmFzZWRcbiAgICAgKiBAcGFyYW0gY29sdW1uIGNvbHVtbiB0byBiZSB0cmFuc2Zvcm1lZFxuICAgICAqIEBwYXJhbSB2YWx1ZSB2YWx1ZSB0byBjaGVjayBpZiBhcHBsaWNhYmxlXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBzdHJpbmdDb2x1bW5Db252ZXJ0ZXIoY29sdW1uOiBDb2x1bW5EZXNjcmlwdG9yPGFueSwgYW55PiwgdmFsdWU6IGFueSk6IENvbHVtbkRlc2NyaXB0b3I8YW55LCBhbnk+IHtcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgICAgICAgICByZXR1cm4gY29sdW1uLmFzQm9vbGVhbigpO1xuICAgICAgICB9IGVsc2UgaWYgKCFpc05hTih2YWx1ZSkgJiYgdHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJykge1xuICAgICAgICAgICAgcmV0dXJuIGNvbHVtbi5hc051bWJlcigpO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuX2RhdGVSZWdleC50ZXN0KHZhbHVlKSkge1xuICAgICAgICAgICAgcmV0dXJuIGNvbHVtbi5hc0RhdGUoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBjb2x1bW47XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBjb252ZXJ0cyBzdHJpbmcgdHlwZSB0byBjb2x1bW4gdHlwZSBlbnVtLCBkZWZhdWx0IGlzIHN0cmluZ1xuICAgICAqIEBwYXJhbSBwcm9wZXJ0eVR5cGVcbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIHRvQ29sdW1uVHlwZShwcm9wZXJ0eVR5cGU6IHN0cmluZyk6IENvbHVtblR5cGVFbnVtIHtcbiAgICAgICAgY29uc3Qgb3MgPSBPYmplY3RTZXJpYWxpemVyLmdldCgpO1xuICAgICAgICBpZiAob3MuZmluZEVudW0ocHJvcGVydHlUeXBlKSBhcyBFbnVtVHlwZSkge1xuICAgICAgICAgICAgcHJvcGVydHlUeXBlID0gJ2VudW0nO1xuICAgICAgICB9IGVsc2UgaWYgKG9zLmZpbmRUeXBlKHByb3BlcnR5VHlwZSkgYXMgQ2xhc3NUeXBlPGFueT4pIHtcbiAgICAgICAgICAgIHByb3BlcnR5VHlwZSA9ICdjbGFzcyc7XG4gICAgICAgIH1cblxuICAgICAgICBzd2l0Y2ggKHByb3BlcnR5VHlwZS50b0xvd2VyQ2FzZSgpKSB7XG4gICAgICAgICAgICBjYXNlICdudW1iZXInOlxuICAgICAgICAgICAgY2FzZSAnY3VycmVuY3knOlxuICAgICAgICAgICAgICAgIHJldHVybiBDb2x1bW5UeXBlRW51bS5OdW1iZXI7XG4gICAgICAgICAgICBjYXNlICdib29sZWFuJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gQ29sdW1uVHlwZUVudW0uQm9vbGVhbjtcbiAgICAgICAgICAgIGNhc2UgJ2RhdGUnOlxuICAgICAgICAgICAgICAgIHJldHVybiBDb2x1bW5UeXBlRW51bS5EYXRlO1xuICAgICAgICAgICAgY2FzZSAnZW51bSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIENvbHVtblR5cGVFbnVtLkVudW07XG4gICAgICAgICAgICBjYXNlICdjdXN0b20nOlxuICAgICAgICAgICAgICAgIHJldHVybiBDb2x1bW5UeXBlRW51bS5DdXN0b207XG4gICAgICAgICAgICBjYXNlICdjbGFzcyc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIENvbHVtblR5cGVFbnVtLlN0cmluZztcbiAgICAgICAgICAgIGNhc2UgJ3N0cmluZyc6XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiBDb2x1bW5UeXBlRW51bS5TdHJpbmc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIHRvQ29sdW1uRGlzcGxheVR5cGUoY29sdW1uVHlwZTogQ29sdW1uVHlwZUVudW0sIHByb3BlcnR5VHlwZTogc3RyaW5nKTogQ29sdW1uRGlzcGxheVR5cGVFbnVtIHtcbiAgICAgICAgc3dpdGNoIChjb2x1bW5UeXBlKSB7XG4gICAgICAgICAgICBjYXNlIENvbHVtblR5cGVFbnVtLk51bWJlcjpcbiAgICAgICAgICAgICAgICByZXR1cm4gcHJvcGVydHlUeXBlID09PSAnY3VycmVuY3knID8gQ29sdW1uRGlzcGxheVR5cGVFbnVtLkN1cnJlbmN5IDogQ29sdW1uRGlzcGxheVR5cGVFbnVtLk51bWJlcjtcbiAgICAgICAgICAgIGNhc2UgQ29sdW1uVHlwZUVudW0uQm9vbGVhbjpcbiAgICAgICAgICAgICAgICByZXR1cm4gQ29sdW1uRGlzcGxheVR5cGVFbnVtLkJvb2xlYW47XG4gICAgICAgICAgICBjYXNlIENvbHVtblR5cGVFbnVtLkRhdGU6XG4gICAgICAgICAgICAgICAgcmV0dXJuIENvbHVtbkRpc3BsYXlUeXBlRW51bS5EYXRlO1xuICAgICAgICAgICAgY2FzZSBDb2x1bW5UeXBlRW51bS5FbnVtOlxuICAgICAgICAgICAgICAgIHJldHVybiBDb2x1bW5EaXNwbGF5VHlwZUVudW0uRW51bTtcbiAgICAgICAgICAgIGNhc2UgQ29sdW1uVHlwZUVudW0uQ3VzdG9tOlxuICAgICAgICAgICAgICAgIHJldHVybiBDb2x1bW5EaXNwbGF5VHlwZUVudW0uQ29tcG9uZW50O1xuICAgICAgICAgICAgY2FzZSBDb2x1bW5UeXBlRW51bS5TdHJpbmc6XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiBDb2x1bW5EaXNwbGF5VHlwZUVudW0uU3RyaW5nO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogY29udmVydHMgc3RyaW5nIHR5cGUgdG8gdHlwZSBlbnVtLCBkZWZhdWx0IGlzIHRleHRcbiAgICAgKiBAcGFyYW0gcHJvcGVydHlcbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIHRvRmllbGRJbnB1dFR5cGUocHJvcGVydHk6IHN0cmluZyk6IEZpZWxkSW5wdXRUeXBlRW51bSB7XG4gICAgICAgIHN3aXRjaCAocHJvcGVydHkpIHtcbiAgICAgICAgICAgIGNhc2UgJ2hpZGRlbic6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEZpZWxkSW5wdXRUeXBlRW51bS5IaWRkZW47XG4gICAgICAgICAgICBjYXNlICdsYWJlbCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEZpZWxkSW5wdXRUeXBlRW51bS5MYWJlbDtcbiAgICAgICAgICAgIGNhc2UgJ3RleHRhcmVhJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gRmllbGRJbnB1dFR5cGVFbnVtLlRleHRhcmVhO1xuICAgICAgICAgICAgY2FzZSAnbnVtYmVyJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gRmllbGRJbnB1dFR5cGVFbnVtLk51bWJlcjtcbiAgICAgICAgICAgIGNhc2UgJ2N1cnJlbmN5JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gRmllbGRJbnB1dFR5cGVFbnVtLkN1cnJlbmN5O1xuICAgICAgICAgICAgY2FzZSAnc3dpdGNoJzpcbiAgICAgICAgICAgIGNhc2UgJ2Jvb2xlYW4nOlxuICAgICAgICAgICAgICAgIHJldHVybiBGaWVsZElucHV0VHlwZUVudW0uU3dpdGNoO1xuICAgICAgICAgICAgY2FzZSAncmFkaW8nOlxuICAgICAgICAgICAgICAgIHJldHVybiBGaWVsZElucHV0VHlwZUVudW0uUmFkaW87XG4gICAgICAgICAgICBjYXNlICdkYXRlcGlja2VyJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gRmllbGRJbnB1dFR5cGVFbnVtLkRhdGVwaWNrZXI7XG4gICAgICAgICAgICBjYXNlICdtYXNrJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gRmllbGRJbnB1dFR5cGVFbnVtLk1hc2s7XG4gICAgICAgICAgICBjYXNlICdmaWxlJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gRmllbGRJbnB1dFR5cGVFbnVtLkZpbGU7XG4gICAgICAgICAgICBjYXNlICdjdXN0b20nOlxuICAgICAgICAgICAgICAgIHJldHVybiBGaWVsZElucHV0VHlwZUVudW0uQ3VzdG9tO1xuICAgICAgICAgICAgY2FzZSAndGV4dCc6XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiBGaWVsZElucHV0VHlwZUVudW0uVGV4dDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGNvbnZlcnQgY29sdW1uIHR5cGUgdG8gZXF1aXZhbGVudCBmaWVsZCBpbnB1dCB0eXBlXG4gICAgICogQHBhcmFtIHR5cGUgY29sdW1uIHR5cGVcbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIHRvRmllbGRJbnB1dFR5cGVGcm9tQ29sdW1uVHlwZSh0eXBlOiBDb2x1bW5UeXBlRW51bSwgZGlzcGxheVR5cGU/OiBDb2x1bW5EaXNwbGF5VHlwZUVudW0pOiBGaWVsZElucHV0VHlwZUVudW0ge1xuICAgICAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgQ29sdW1uVHlwZUVudW0uTnVtYmVyOlxuICAgICAgICAgICAgICAgIHJldHVybiBkaXNwbGF5VHlwZSA9PT0gQ29sdW1uRGlzcGxheVR5cGVFbnVtLkN1cnJlbmN5ID8gRmllbGRJbnB1dFR5cGVFbnVtLkN1cnJlbmN5IDogRmllbGRJbnB1dFR5cGVFbnVtLk51bWJlcjtcbiAgICAgICAgICAgIGNhc2UgQ29sdW1uVHlwZUVudW0uQm9vbGVhbjpcbiAgICAgICAgICAgICAgICByZXR1cm4gRmllbGRJbnB1dFR5cGVFbnVtLlN3aXRjaDtcbiAgICAgICAgICAgIGNhc2UgQ29sdW1uVHlwZUVudW0uRGF0ZTpcbiAgICAgICAgICAgICAgICByZXR1cm4gRmllbGRJbnB1dFR5cGVFbnVtLkRhdGVwaWNrZXI7XG4gICAgICAgICAgICBjYXNlIENvbHVtblR5cGVFbnVtLkN1c3RvbTpcbiAgICAgICAgICAgICAgICByZXR1cm4gRmllbGRJbnB1dFR5cGVFbnVtLkN1c3RvbTtcbiAgICAgICAgICAgIGNhc2UgQ29sdW1uVHlwZUVudW0uU3RyaW5nOlxuICAgICAgICAgICAgY2FzZSBDb2x1bW5UeXBlRW51bS5FbnVtOlxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gRmllbGRJbnB1dFR5cGVFbnVtLlRleHQ7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
161
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGV2aWV3LnV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3V0aWxzL3RhYmxldmlldy51dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLGNBQWMsQ0FBQztBQUU5QyxPQUFPLEVBQUMscUJBQXFCLEVBQUUsY0FBYyxFQUFFLGtCQUFrQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDL0YsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sV0FBVyxDQUFDO0FBSTNDLE1BQU0sT0FBTyxhQUFhO0lBR3RCOzs7T0FHRztJQUNJLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBSSxTQUF1QjtRQUN2RCxPQUFPLGFBQWEsQ0FBQyxvQ0FBb0MsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxtQ0FBbUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQ3JJLENBQUM7SUFFRDs7O09BR0c7SUFDSSxNQUFNLENBQUMsb0NBQW9DLENBQUMsVUFBdUM7UUFDdEYsSUFBSSxVQUFVLElBQUksSUFBSSxFQUFFO1lBQ3BCLE1BQU0sSUFBSSxnQkFBZ0IsQ0FBQywyRkFBMkYsRUFBRSxzQkFBc0IsQ0FBQyxDQUFDLFlBQVksRUFBRSxDQUFDO1NBQ2xLO1FBQ0QsTUFBTSxnQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUVoRCxNQUFNLHFCQUFxQixHQUE0QixFQUFFLENBQUM7UUFFMUQsS0FBSyxNQUFNLFNBQVMsSUFBSSxVQUFVLEVBQUU7WUFDaEMsTUFBTSxRQUFRLEdBQUcsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMzRCxNQUFNLFVBQVUsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFD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LGtCQUFrQixDQUFDLE1BQU0sQ0FBQztZQUNyQyxLQUFLLE1BQU0sQ0FBQztZQUNaO2dCQUNJLE9BQU8sa0JBQWtCLENBQUMsSUFBSSxDQUFDO1NBQ3RDO0lBQ0wsQ0FBQztJQUVEOzs7T0FHRztJQUNJLE1BQU0sQ0FBQyw4QkFBOEIsQ0FBQyxJQUFvQixFQUFFLFdBQW1DO1FBQ2xHLFFBQVEsSUFBSSxFQUFFO1lBQ1YsS0FBSyxjQUFjLENBQUMsTUFBTTtnQkFDdEIsT0FBTyxXQUFXLEtBQUsscUJBQXFCLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQztZQUNwSCxLQUFLLGNBQWMsQ0FBQyxPQUFPO2dCQUN2QixPQUFPLGtCQUFrQixDQUFDLE1BQU0sQ0FBQztZQUNyQyxLQUFLLGNBQWMsQ0FBQyxJQUFJO2dCQUNwQixPQUFPLGtCQUFrQixDQUFDLFVBQVUsQ0FBQztZQUN6QyxLQUFLLGNBQWMsQ0FBQyxNQUFNO2dCQUN0QixPQUFPLGtCQUFrQixDQUFDLE1BQU0sQ0FBQztZQUNyQyxLQUFLLGNBQWMsQ0FBQyxNQUFNLENBQUM7WUFDM0IsS0FBSyxjQUFjLENBQUMsSUFBSSxDQUFDO1lBQ3pCO2dCQUNJLE9BQU8sa0JBQWtCLENBQUMsSUFBSSxDQUFDO1NBQ3RDO0lBQ0wsQ0FBQzs7QUFqS2Msd0JBQVUsR0FBRywwRUFBMEUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QXR0cmlidXRlRGVmfSBmcm9tICcuLi9hcGkvbW9kZWxzJztcbmltcG9ydCB7T2JqZWN0U2VyaWFsaXplcn0gZnJvbSAnLi4vYXBpL3V0aWxzJztcbmltcG9ydCB7Q29sdW1uRGVzY3JpcHRvcn0gZnJvbSAnLi4vZGVzY3JpcHRvcnMvdGFibGUnO1xuaW1wb3J0IHtDb2x1bW5EaXNwbGF5VHlwZUVudW0sIENvbHVtblR5cGVFbnVtLCBGaWVsZElucHV0VHlwZUVudW19IGZyb20gJy4uL2Rlc2NyaXB0b3JzL3R5cGVzJztcbmltcG9ydCB7TW5nRXJyb3JJbnRlcm5hbH0gZnJvbSAnLi4vbW9kZWxzJztcbmltcG9ydCB7VGFibGV2aWV3QXR0cmlidXRlRGVmfSBmcm9tICcuLi9tb2RlbHMvdGFibGV2aWV3LWF0dHIubW9kZWwnO1xuaW1wb3J0IHtDbGFzc1R5cGUsIEVudW1UeXBlfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjbGFzcyBUYWJsZXZpZXdVdGlsIHtcbiAgICBwcml2YXRlIHN0YXRpYyBfZGF0ZVJlZ2V4ID0gL1xcZHs0fS1bMDFdXFxkLVswLTNdXFxkVFswLTJdXFxkOlswLTVdXFxkOlswLTVdXFxkXFwuXFxkKyhbKy1dWzAtMl1cXGQ6WzAtNV1cXGR8WikvO1xuXG4gICAgLyoqXG4gICAgICogcmV0dXJucyBhdHRyaWJ1dGVzIGZyb20gY2xhc3MgdHlwZSBhbmQgZXh0ZW5kcyB0byB0eXBlZCBkZWYgd2l0aCBjb2x1bW4gYW5kIGZpZWxkIGVudW0gdHlwZVxuICAgICAqIEBwYXJhbSBtb2RlbFR5cGUgY2xhc3MgdHlwZVxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZ2V0QXR0cmlidXRlRGVmTWFwPFQ+KG1vZGVsVHlwZTogQ2xhc3NUeXBlPFQ+KTogVGFibGV2aWV3QXR0cmlidXRlRGVmW10ge1xuICAgICAgICByZXR1cm4gVGFibGV2aWV3VXRpbC5leHBhbmRBdHRyaWJ1dGVEZWZXaXRoVGFibGV2aWV3VHlwZXMoT2JqZWN0U2VyaWFsaXplci5nZXQoKS5maW5kQXR0cmlidXRlc0RlZmluaXRpb25CeUNsYXNzVHlwZShtb2RlbFR5cGUpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBleHBhbmRzIEF0dHJpYnV0ZURlZiB0byBUYWJsZXZpZXdBdHRyaWJ1dGVEZWYgd2l0aCBkZWZpbmVkIGlucHV0IGFuZCBjb2x1bW4gZW51bSB0eXBlXG4gICAgICogQHBhcmFtIGF0dHJpYnV0ZXMgb3BlbiBhcGkgc3BlY2lmaWNhdGlvbiBtb2RlbFxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZXhwYW5kQXR0cmlidXRlRGVmV2l0aFRhYmxldmlld1R5cGVzKGF0dHJpYnV0ZXM/OiBBcnJheTxBdHRyaWJ1dGVEZWY+IHwgbnVsbCk6IFRhYmxldmlld0F0dHJpYnV0ZURlZltdIHtcbiAgICAgICAgaWYgKGF0dHJpYnV0ZXMgPT0gbnVsbCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IE1uZ0Vycm9ySW50ZXJuYWwoJ0F0dHJpYnV0ZURlZiBpcyBudWxsLCBwcm9ibGVtIHdpdGggT2JqZWN0U2VyaWFsaXplcjo6ZmluZEF0dHJpYnV0ZXNEZWZpbml0aW9uQnlDbGFzc1R5cGU/JywgJ1RhYmxlVmlld1V0aWxzIGVycm9yJykuY29uc29sZUVycm9yKCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgb2JqZWN0U2VyaWFsaXplciA9IE9iamVjdFNlcmlhbGl6ZXIuZ2V0KCk7XG5cbiAgICAgICAgY29uc3QgdGFibGV2aWV3QXR0cmlidXRlRGVmOiBUYWJsZXZpZXdBdHRyaWJ1dGVEZWZbXSA9IFtdO1xuXG4gICAgICAgIGZvciAoY29uc3QgYXR0cmlidXRlIG9mIGF0dHJpYnV0ZXMpIHtcbiAgICAgICAgICAgIGNvbnN0IGVudW1UeXBlID0gb2JqZWN0U2VyaWFsaXplci5maW5kRW51bShhdHRyaWJ1dGUudHlwZSk7XG4gICAgICAgICAgICBjb25zdCBjb2x1bW5UeXBlID0gZW51bVR5cGUgPyBDb2x1bW5UeXBlRW51bS5FbnVtIDogVGFibGV2aWV3VXRpbC50b0NvbHVtblR5cGUoYXR0cmlidXRlLnR5cGUpO1xuICAgICAgICAgICAgdGFibGV2aWV3QXR0cmlidXRlRGVmLnB1c2goe1xuICAgICAgICAgICAgICAgIG5hbWU6IGF0dHJpYnV0ZS5uYW1lLFxuICAgICAgICAgICAgICAgIGJhc2VOYW1lOiBhdHRyaWJ1dGUuYmFzZU5hbWUsXG4gICAgICAgICAgICAgICAgdHlwZTogYXR0cmlidXRlLnR5cGUsXG4gICAgICAgICAgICAgICAgY29sdW1uVHlwZTogZW51bVR5cGUgPyBDb2x1bW5UeXBlRW51bS5FbnVtIDogVGFibGV2aWV3VXRpbC50b0NvbHVtblR5cGUoYXR0cmlidXRlLnR5cGUpLFxuICAgICAgICAgICAgICAgIGNvbHVtbkRpc3BsYXlUeXBlOiBUYWJsZXZpZXdVdGlsLnRvQ29sdW1uRGlzcGxheVR5cGUoY29sdW1uVHlwZSwgYXR0cmlidXRlLnR5cGUpLFxuICAgICAgICAgICAgICAgIGZpZWxkVHlwZTogVGFibGV2aWV3VXRpbC50b0ZpZWxkSW5wdXRUeXBlKGF0dHJpYnV0ZS50eXBlKSxcbiAgICAgICAgICAgICAgICBlbnVtVHlwZTogb2JqZWN0U2VyaWFsaXplci5maW5kRW51bShhdHRyaWJ1dGUudHlwZSkgYXMgRW51bVR5cGUsXG4gICAgICAgICAgICAgICAgY2xhc3NUeXBlOiBvYmplY3RTZXJpYWxpemVyLmZpbmRUeXBlKGF0dHJpYnV0ZS50eXBlKSBhcyBDbGFzc1R5cGU8YW55PlxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGFibGV2aWV3QXR0cmlidXRlRGVmO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGNvbnZlcnRzIGNvbHVtbiB0byBudW1iZXIgb3IgZGF0ZSBvbiB2YWx1ZSBiYXNlZFxuICAgICAqIEBwYXJhbSBjb2x1bW4gY29sdW1uIHRvIGJlIHRyYW5zZm9ybWVkXG4gICAgICogQHBhcmFtIHZhbHVlIHZhbHVlIHRvIGNoZWNrIGlmIGFwcGxpY2FibGVcbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIHN0cmluZ0NvbHVtbkNvbnZlcnRlcihjb2x1bW46IENvbHVtbkRlc2NyaXB0b3I8YW55LCBhbnk+LCB2YWx1ZTogYW55KTogQ29sdW1uRGVzY3JpcHRvcjxhbnksIGFueT4ge1xuICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnYm9vbGVhbicpIHtcbiAgICAgICAgICAgIHJldHVybiBjb2x1bW4uYXNCb29sZWFuKCk7XG4gICAgICAgIH0gZWxzZSBpZiAoIWlzTmFOKHZhbHVlKSAmJiB0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInKSB7XG4gICAgICAgICAgICByZXR1cm4gY29sdW1uLmFzTnVtYmVyKCk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5fZGF0ZVJlZ2V4LnRlc3QodmFsdWUpKSB7XG4gICAgICAgICAgICByZXR1cm4gY29sdW1uLmFzRGF0ZSgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGNvbHVtbjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGNvbnZlcnRzIHN0cmluZyB0eXBlIHRvIGNvbHVtbiB0eXBlIGVudW0sIGRlZmF1bHQgaXMgc3RyaW5nXG4gICAgICogQHBhcmFtIHByb3BlcnR5VHlwZVxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgdG9Db2x1bW5UeXBlKHByb3BlcnR5VHlwZTogc3RyaW5nKTogQ29sdW1uVHlwZUVudW0ge1xuICAgICAgICBjb25zdCBvcyA9IE9iamVjdFNlcmlhbGl6ZXIuZ2V0KCk7XG4gICAgICAgIGlmIChvcy5maW5kRW51bShwcm9wZXJ0eVR5cGUpIGFzIEVudW1UeXBlKSB7XG4gICAgICAgICAgICBwcm9wZXJ0eVR5cGUgPSAnZW51bSc7XG4gICAgICAgIH0gZWxzZSBpZiAob3MuZmluZFR5cGUocHJvcGVydHlUeXBlKSBhcyBDbGFzc1R5cGU8YW55Pikge1xuICAgICAgICAgICAgcHJvcGVydHlUeXBlID0gJ2NsYXNzJztcbiAgICAgICAgfVxuXG4gICAgICAgIHN3aXRjaCAocHJvcGVydHlUeXBlLnRvTG93ZXJDYXNlKCkpIHtcbiAgICAgICAgICAgIGNhc2UgJ251bWJlcic6XG4gICAgICAgICAgICBjYXNlICdjdXJyZW5jeSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIENvbHVtblR5cGVFbnVtLk51bWJlcjtcbiAgICAgICAgICAgIGNhc2UgJ2Jvb2xlYW4nOlxuICAgICAgICAgICAgICAgIHJldHVybiBDb2x1bW5UeXBlRW51bS5Cb29sZWFuO1xuICAgICAgICAgICAgY2FzZSAnZGF0ZSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIENvbHVtblR5cGVFbnVtLkRhdGU7XG4gICAgICAgICAgICBjYXNlICdlbnVtJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gQ29sdW1uVHlwZUVudW0uRW51bTtcbiAgICAgICAgICAgIGNhc2UgJ2N1c3RvbSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIENvbHVtblR5cGVFbnVtLkN1c3RvbTtcbiAgICAgICAgICAgIGNhc2UgJ2NsYXNzJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gQ29sdW1uVHlwZUVudW0uU3RyaW5nO1xuICAgICAgICAgICAgY2FzZSAnc3RyaW5nJzpcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIENvbHVtblR5cGVFbnVtLlN0cmluZztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgdG9Db2x1bW5EaXNwbGF5VHlwZShjb2x1bW5UeXBlOiBDb2x1bW5UeXBlRW51bSwgcHJvcGVydHlUeXBlOiBzdHJpbmcpOiBDb2x1bW5EaXNwbGF5VHlwZUVudW0ge1xuICAgICAgICBzd2l0Y2ggKGNvbHVtblR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgQ29sdW1uVHlwZUVudW0uTnVtYmVyOlxuICAgICAgICAgICAgICAgIHJldHVybiBwcm9wZXJ0eVR5cGUgPT09ICdjdXJyZW5jeScgPyBDb2x1bW5EaXNwbGF5VHlwZUVudW0uQ3VycmVuY3kgOiBDb2x1bW5EaXNwbGF5VHlwZUVudW0uTnVtYmVyO1xuICAgICAgICAgICAgY2FzZSBDb2x1bW5UeXBlRW51bS5Cb29sZWFuOlxuICAgICAgICAgICAgICAgIHJldHVybiBDb2x1bW5EaXNwbGF5VHlwZUVudW0uQm9vbGVhbjtcbiAgICAgICAgICAgIGNhc2UgQ29sdW1uVHlwZUVudW0uRGF0ZTpcbiAgICAgICAgICAgICAgICByZXR1cm4gQ29sdW1uRGlzcGxheVR5cGVFbnVtLkRhdGU7XG4gICAgICAgICAgICBjYXNlIENvbHVtblR5cGVFbnVtLkVudW06XG4gICAgICAgICAgICAgICAgcmV0dXJuIENvbHVtbkRpc3BsYXlUeXBlRW51bS5FbnVtO1xuICAgICAgICAgICAgY2FzZSBDb2x1bW5UeXBlRW51bS5DdXN0b206XG4gICAgICAgICAgICAgICAgcmV0dXJuIENvbHVtbkRpc3BsYXlUeXBlRW51bS5Db21wb25lbnQ7XG4gICAgICAgICAgICBjYXNlIENvbHVtblR5cGVFbnVtLlN0cmluZzpcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIENvbHVtbkRpc3BsYXlUeXBlRW51bS5TdHJpbmc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBjb252ZXJ0cyBzdHJpbmcgdHlwZSB0byB0eXBlIGVudW0sIGRlZmF1bHQgaXMgdGV4dFxuICAgICAqIEBwYXJhbSBwcm9wZXJ0eVxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgdG9GaWVsZElucHV0VHlwZShwcm9wZXJ0eTogc3RyaW5nKTogRmllbGRJbnB1dFR5cGVFbnVtIHtcbiAgICAgICAgc3dpdGNoIChwcm9wZXJ0eSkge1xuICAgICAgICAgICAgY2FzZSAnaGlkZGVuJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gRmllbGRJbnB1dFR5cGVFbnVtLkhpZGRlbjtcbiAgICAgICAgICAgIGNhc2UgJ2xhYmVsJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gRmllbGRJbnB1dFR5cGVFbnVtLkxhYmVsO1xuICAgICAgICAgICAgY2FzZSAndGV4dGFyZWEnOlxuICAgICAgICAgICAgICAgIHJldHVybiBGaWVsZElucHV0VHlwZUVudW0uVGV4dGFyZWE7XG4gICAgICAgICAgICBjYXNlICdudW1iZXInOlxuICAgICAgICAgICAgICAgIHJldHVybiBGaWVsZElucHV0VHlwZUVudW0uTnVtYmVyO1xuICAgICAgICAgICAgY2FzZSAnY3VycmVuY3knOlxuICAgICAgICAgICAgICAgIHJldHVybiBGaWVsZElucHV0VHlwZUVudW0uQ3VycmVuY3k7XG4gICAgICAgICAgICBjYXNlICdzd2l0Y2gnOlxuICAgICAgICAgICAgY2FzZSAnYm9vbGVhbic6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEZpZWxkSW5wdXRUeXBlRW51bS5Td2l0Y2g7XG4gICAgICAgICAgICBjYXNlICdyYWRpbyc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEZpZWxkSW5wdXRUeXBlRW51bS5SYWRpbztcbiAgICAgICAgICAgIGNhc2UgJ2RhdGVwaWNrZXInOlxuICAgICAgICAgICAgICAgIHJldHVybiBGaWVsZElucHV0VHlwZUVudW0uRGF0ZXBpY2tlcjtcbiAgICAgICAgICAgIGNhc2UgJ21hc2snOlxuICAgICAgICAgICAgICAgIHJldHVybiBGaWVsZElucHV0VHlwZUVudW0uTWFzaztcbiAgICAgICAgICAgIGNhc2UgJ2ZpbGUnOlxuICAgICAgICAgICAgICAgIHJldHVybiBGaWVsZElucHV0VHlwZUVudW0uRmlsZTtcbiAgICAgICAgICAgIGNhc2UgJ2N1c3RvbSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEZpZWxkSW5wdXRUeXBlRW51bS5DdXN0b207XG4gICAgICAgICAgICBjYXNlICd0ZXh0JzpcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEZpZWxkSW5wdXRUeXBlRW51bS5UZXh0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogY29udmVydCBjb2x1bW4gdHlwZSB0byBlcXVpdmFsZW50IGZpZWxkIGlucHV0IHR5cGVcbiAgICAgKiBAcGFyYW0gdHlwZSBjb2x1bW4gdHlwZVxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgdG9GaWVsZElucHV0VHlwZUZyb21Db2x1bW5UeXBlKHR5cGU6IENvbHVtblR5cGVFbnVtLCBkaXNwbGF5VHlwZT86IENvbHVtbkRpc3BsYXlUeXBlRW51bSk6IEZpZWxkSW5wdXRUeXBlRW51bSB7XG4gICAgICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgICAgICAgY2FzZSBDb2x1bW5UeXBlRW51bS5OdW1iZXI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRpc3BsYXlUeXBlID09PSBDb2x1bW5EaXNwbGF5VHlwZUVudW0uQ3VycmVuY3kgPyBGaWVsZElucHV0VHlwZUVudW0uQ3VycmVuY3kgOiBGaWVsZElucHV0VHlwZUVudW0uTnVtYmVyO1xuICAgICAgICAgICAgY2FzZSBDb2x1bW5UeXBlRW51bS5Cb29sZWFuOlxuICAgICAgICAgICAgICAgIHJldHVybiBGaWVsZElucHV0VHlwZUVudW0uU3dpdGNoO1xuICAgICAgICAgICAgY2FzZSBDb2x1bW5UeXBlRW51bS5EYXRlOlxuICAgICAgICAgICAgICAgIHJldHVybiBGaWVsZElucHV0VHlwZUVudW0uRGF0ZXBpY2tlcjtcbiAgICAgICAgICAgIGNhc2UgQ29sdW1uVHlwZUVudW0uQ3VzdG9tOlxuICAgICAgICAgICAgICAgIHJldHVybiBGaWVsZElucHV0VHlwZUVudW0uQ3VzdG9tO1xuICAgICAgICAgICAgY2FzZSBDb2x1bW5UeXBlRW51bS5TdHJpbmc6XG4gICAgICAgICAgICBjYXNlIENvbHVtblR5cGVFbnVtLkVudW06XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiBGaWVsZElucHV0VHlwZUVudW0uVGV4dDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
@@ -1,4 +1,5 @@
1
1
  import 'reflect-metadata';
2
+ import { MngErrorInternal } from '../models';
2
3
  export class TypeUtil {
3
4
  /**
4
5
  * Defines type name decorator.
@@ -69,7 +70,7 @@ export class TypeUtil {
69
70
  return enumName;
70
71
  }
71
72
  console.warn('Reflect metadata could not be found for enum, you might experience some issues in production build.', enumType);
72
- throw new Error('Could not fined enum name');
73
+ throw new MngErrorInternal('Could not fined enum name', 'TypeUtils error').consoleError();
73
74
  }
74
75
  /**
75
76
  * Gets type's id property from reflect metadata.
@@ -90,4 +91,4 @@ TypeUtil.reflectTypeNameKey = 'typeName';
90
91
  TypeUtil.reflectTypeIdPropertyKey = 'typeIdProperty';
91
92
  TypeUtil.reflectTypeTitlePropertyKey = 'typeTitleProperty';
92
93
  TypeUtil.reflectEnumNameKey = 'enumName';
93
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi91dGlscy90eXBlLnV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxrQkFBa0IsQ0FBQztBQUkxQixNQUFNLE9BQU8sUUFBUTtJQU1qQjs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLHFCQUFxQixDQUFDLFVBQTBCLEVBQUUsUUFBZ0I7UUFDNUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLGtCQUFrQixFQUFFLFVBQVUsQ0FBQyxFQUFFO1lBQ2xFLE9BQU8sQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLGtCQUFrQixFQUFFLFFBQVEsRUFBRSxVQUFVLENBQUMsQ0FBQztTQUM3RTtJQUNMLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLHFCQUFxQixDQUFDLFVBQW9CLEVBQUUsUUFBZ0I7UUFDdEUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLGtCQUFrQixFQUFFLFVBQVUsQ0FBQyxFQUFFO1lBQ2xFLE9BQU8sQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLGtCQUFrQixFQUFFLFFBQVEsRUFBRSxVQUFVLENBQUMsQ0FBQztTQUM3RTtJQUNMLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLDJCQUEyQixDQUFJLFVBQXdCLEVBQUUsVUFBNEI7UUFDL0YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLHdCQUF3QixFQUFFLFVBQVUsQ0FBQyxFQUFFO1lBQ3hFLE9BQU8sQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLHdCQUF3QixFQUFFLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQztTQUNyRjtJQUNMLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLDhCQUE4QixDQUFJLFVBQXdCLEVBQUUsYUFBK0I7UUFDckcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLDJCQUEyQixFQUFFLFVBQVUsQ0FBQyxFQUFFO1lBQzNFLE9BQU8sQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLDJCQUEyQixFQUFFLGFBQWEsRUFBRSxVQUFVLENBQUMsQ0FBQztTQUMzRjtJQUNMLENBQUM7SUFFRDs7O09BR0c7SUFDSSxNQUFNLENBQUMsWUFBWSxDQUFDLElBQW9CO1FBQzNDLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLGtCQUFrQixFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3hFLElBQUksUUFBUSxFQUFFO1lBQ1YsT0FBTyxRQUFRLENBQUM7U0FDbkI7UUFDRCxPQUFPLENBQUMsSUFBSSxDQUFDLHFHQUFxRyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzFILE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztJQUNyQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFvQjtRQUM3QyxPQUFPLE9BQU8sQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLGtCQUFrQixFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFRDs7O09BR0c7SUFDSSxNQUFNLENBQUMsWUFBWSxDQUFDLFFBQWtCO1FBQ3pDLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLGtCQUFrQixFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQzVFLElBQUksUUFBUSxFQUFFO1lBQ1YsT0FBTyxRQUFRLENBQUM7U0FDbkI7UUFDRCxPQUFPLENBQUMsSUFBSSxDQUFDLHFHQUFxRyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQzlILE1BQU0sSUFBSSxLQUFLLENBQUMsMkJBQTJCLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksTUFBTSxDQUFDLGtCQUFrQixDQUFDLElBQW9CO1FBQ2pELE9BQU8sT0FBTyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsd0JBQXdCLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUVEOzs7T0FHRztJQUNJLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxJQUFvQjtRQUNwRCxPQUFPLE9BQU8sQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLDJCQUEyQixFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzNFLENBQUM7O0FBakdzQiwyQkFBa0IsR0FBRyxVQUFVLENBQUM7QUFDaEMsaUNBQXdCLEdBQUcsZ0JBQWdCLENBQUM7QUFDNUMsb0NBQTJCLEdBQUcsbUJBQW1CLENBQUM7QUFDbEQsMkJBQWtCLEdBQUcsVUFBVSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICdyZWZsZWN0LW1ldGFkYXRhJztcblxuaW1wb3J0IHtDbGFzc1R5cGUsIEVudW1UeXBlfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjbGFzcyBUeXBlVXRpbCB7XG4gICAgcHVibGljIHN0YXRpYyByZWFkb25seSByZWZsZWN0VHlwZU5hbWVLZXkgPSAndHlwZU5hbWUnO1xuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgcmVmbGVjdFR5cGVJZFByb3BlcnR5S2V5ID0gJ3R5cGVJZFByb3BlcnR5JztcbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IHJlZmxlY3RUeXBlVGl0bGVQcm9wZXJ0eUtleSA9ICd0eXBlVGl0bGVQcm9wZXJ0eSc7XG4gICAgcHVibGljIHN0YXRpYyByZWFkb25seSByZWZsZWN0RW51bU5hbWVLZXkgPSAnZW51bU5hbWUnO1xuXG4gICAgLyoqXG4gICAgICogRGVmaW5lcyB0eXBlIG5hbWUgZGVjb3JhdG9yLlxuICAgICAqIEBwYXJhbSB0YXJnZXRUeXBlIGNsYXNzLlxuICAgICAqIEBwYXJhbSB0eXBlTmFtZSBOYW1lIG9mIHRoZSB0eXBlLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZGVmaW5lUmVmbGVjdFR5cGVOYW1lKHRhcmdldFR5cGU6IENsYXNzVHlwZTxhbnk+LCB0eXBlTmFtZTogc3RyaW5nKSB7XG4gICAgICAgIGlmICghUmVmbGVjdC5oYXNPd25NZXRhZGF0YShUeXBlVXRpbC5yZWZsZWN0VHlwZU5hbWVLZXksIHRhcmdldFR5cGUpKSB7XG4gICAgICAgICAgICBSZWZsZWN0LmRlZmluZU1ldGFkYXRhKFR5cGVVdGlsLnJlZmxlY3RUeXBlTmFtZUtleSwgdHlwZU5hbWUsIHRhcmdldFR5cGUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGVmaW5lcyBlbnVtIG5hbWUgZGVjb3JhdG9yLlxuICAgICAqIEBwYXJhbSB0YXJnZXRUeXBlIGVudW0gb2JqZWN0LlxuICAgICAqIEBwYXJhbSBlbnVtTmFtZSBOYW1lIG9mIHRoZSBlbnVtLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZGVmaW5lUmVmbGVjdEVudW1OYW1lKHRhcmdldFR5cGU6IEVudW1UeXBlLCBlbnVtTmFtZTogc3RyaW5nKSB7XG4gICAgICAgIGlmICghUmVmbGVjdC5oYXNPd25NZXRhZGF0YShUeXBlVXRpbC5yZWZsZWN0RW51bU5hbWVLZXksIHRhcmdldFR5cGUpKSB7XG4gICAgICAgICAgICBSZWZsZWN0LmRlZmluZU1ldGFkYXRhKFR5cGVVdGlsLnJlZmxlY3RFbnVtTmFtZUtleSwgZW51bU5hbWUsIHRhcmdldFR5cGUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGVmaW5lcyB0eXBlJ3MgaWQgcHJvcGVydHkuXG4gICAgICogQHBhcmFtIHRhcmdldFR5cGUgY2xhc3MuXG4gICAgICogQHBhcmFtIGlkUHJvcGVydHkgSWQgcHJvcGVydHlcbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGRlZmluZVJlZmxlY3RUeXBlSWRQcm9wZXJ0eTxUPih0YXJnZXRUeXBlOiBDbGFzc1R5cGU8VD4sIGlkUHJvcGVydHk6IGtleW9mIFQgfCBzeW1ib2wpIHtcbiAgICAgICAgaWYgKCFSZWZsZWN0Lmhhc093bk1ldGFkYXRhKFR5cGVVdGlsLnJlZmxlY3RUeXBlSWRQcm9wZXJ0eUtleSwgdGFyZ2V0VHlwZSkpIHtcbiAgICAgICAgICAgIFJlZmxlY3QuZGVmaW5lTWV0YWRhdGEoVHlwZVV0aWwucmVmbGVjdFR5cGVJZFByb3BlcnR5S2V5LCBpZFByb3BlcnR5LCB0YXJnZXRUeXBlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERlZmluZXMgdHlwZSdzIGlkIHByb3BlcnR5LlxuICAgICAqIEBwYXJhbSB0YXJnZXRUeXBlIGNsYXNzLlxuICAgICAqIEBwYXJhbSB0aXRsZVByb3BlcnR5IFRpdGxlIHByb3BlcnR5XG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBkZWZpbmVSZWZsZWN0VHlwZVRpdGxlUHJvcGVydHk8VD4odGFyZ2V0VHlwZTogQ2xhc3NUeXBlPFQ+LCB0aXRsZVByb3BlcnR5OiBrZXlvZiBUIHwgc3ltYm9sKSB7XG4gICAgICAgIGlmICghUmVmbGVjdC5oYXNPd25NZXRhZGF0YShUeXBlVXRpbC5yZWZsZWN0VHlwZVRpdGxlUHJvcGVydHlLZXksIHRhcmdldFR5cGUpKSB7XG4gICAgICAgICAgICBSZWZsZWN0LmRlZmluZU1ldGFkYXRhKFR5cGVVdGlsLnJlZmxlY3RUeXBlVGl0bGVQcm9wZXJ0eUtleSwgdGl0bGVQcm9wZXJ0eSwgdGFyZ2V0VHlwZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHR5cGUgbmFtZSBmcm9tIHJlZmxlY3QgbWV0YWRhdGEuXG4gICAgICogQHBhcmFtIHR5cGUgQ2xhc3MuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBmaW5kVHlwZU5hbWUodHlwZTogQ2xhc3NUeXBlPGFueT4pOiBzdHJpbmcge1xuICAgICAgICBjb25zdCB0eXBlTmFtZSA9IFJlZmxlY3QuZ2V0TWV0YWRhdGEoVHlwZVV0aWwucmVmbGVjdFR5cGVOYW1lS2V5LCB0eXBlKTtcbiAgICAgICAgaWYgKHR5cGVOYW1lKSB7XG4gICAgICAgICAgICByZXR1cm4gdHlwZU5hbWU7XG4gICAgICAgIH1cbiAgICAgICAgY29uc29sZS53YXJuKCdSZWZsZWN0IG1ldGFkYXRhIGNvdWxkIG5vdCBiZSBmb3VuZCBmb3IgdHlwZSwgeW91IG1pZ2h0IGV4cGVyaWVuY2Ugc29tZSBpc3N1ZXMgaW4gcHJvZHVjdGlvbiBidWlsZC4nLCB0eXBlKTtcbiAgICAgICAgcmV0dXJuIHR5cGUubmFtZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHR5cGUgbmFtZSBmcm9tIGVpdGhlciBkZWNvcmF0b3Igb3IgcmVmbGVjdCBtZXRhZGF0YS5cbiAgICAgKiBAcGFyYW0gdHlwZSBDbGFzcy5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIHR5cGVOYW1lRXhpc3RzKHR5cGU6IENsYXNzVHlwZTxhbnk+KTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBSZWZsZWN0Lmhhc093bk1ldGFkYXRhKFR5cGVVdGlsLnJlZmxlY3RUeXBlTmFtZUtleSwgdHlwZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyBlbnVtIG5hbWUgZnJvbSBlaXRoZXIgZGVjb3JhdG9yIG9yIHJlZmxlY3QgbWV0YWRhdGEuXG4gICAgICogQHBhcmFtIGVudW1UeXBlIENsYXNzLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZmluZEVudW1OYW1lKGVudW1UeXBlOiBFbnVtVHlwZSk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGVudW1OYW1lID0gUmVmbGVjdC5nZXRNZXRhZGF0YShUeXBlVXRpbC5yZWZsZWN0RW51bU5hbWVLZXksIGVudW1UeXBlKTtcbiAgICAgICAgaWYgKGVudW1OYW1lKSB7XG4gICAgICAgICAgICByZXR1cm4gZW51bU5hbWU7XG4gICAgICAgIH1cbiAgICAgICAgY29uc29sZS53YXJuKCdSZWZsZWN0IG1ldGFkYXRhIGNvdWxkIG5vdCBiZSBmb3VuZCBmb3IgZW51bSwgeW91IG1pZ2h0IGV4cGVyaWVuY2Ugc29tZSBpc3N1ZXMgaW4gcHJvZHVjdGlvbiBidWlsZC4nLCBlbnVtVHlwZSk7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignQ291bGQgbm90IGZpbmVkIGVudW0gbmFtZScpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgdHlwZSdzIGlkIHByb3BlcnR5IGZyb20gcmVmbGVjdCBtZXRhZGF0YS5cbiAgICAgKiBAcGFyYW0gdHlwZSBDbGFzcy5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGZpbmRUeXBlSWRQcm9wZXJ0eSh0eXBlOiBDbGFzc1R5cGU8YW55Pik6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBSZWZsZWN0LmdldE1ldGFkYXRhKFR5cGVVdGlsLnJlZmxlY3RUeXBlSWRQcm9wZXJ0eUtleSwgdHlwZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyB0eXBlJ3MgdGl0bGUgcHJvcGVydHkgZnJvbSByZWZsZWN0IG1ldGFkYXRhLlxuICAgICAqIEBwYXJhbSB0eXBlIENsYXNzLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZmluZFR5cGVUaXRsZVByb3BlcnR5KHR5cGU6IENsYXNzVHlwZTxhbnk+KTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIFJlZmxlY3QuZ2V0TWV0YWRhdGEoVHlwZVV0aWwucmVmbGVjdFR5cGVUaXRsZVByb3BlcnR5S2V5LCB0eXBlKTtcbiAgICB9XG59XG4iXX0=
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi91dGlscy90eXBlLnV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxrQkFBa0IsQ0FBQztBQUUxQixPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxXQUFXLENBQUM7QUFHM0MsTUFBTSxPQUFPLFFBQVE7SUFNakI7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxVQUEwQixFQUFFLFFBQWdCO1FBQzVFLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsRUFBRSxVQUFVLENBQUMsRUFBRTtZQUNsRSxPQUFPLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsRUFBRSxRQUFRLEVBQUUsVUFBVSxDQUFDLENBQUM7U0FDN0U7SUFDTCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxVQUFvQixFQUFFLFFBQWdCO1FBQ3RFLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsRUFBRSxVQUFVLENBQUMsRUFBRTtZQUNsRSxPQUFPLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsRUFBRSxRQUFRLEVBQUUsVUFBVSxDQUFDLENBQUM7U0FDN0U7SUFDTCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBQywyQkFBMkIsQ0FBSSxVQUF3QixFQUFFLFVBQTRCO1FBQy9GLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyx3QkFBd0IsRUFBRSxVQUFVLENBQUMsRUFBRTtZQUN4RSxPQUFPLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyx3QkFBd0IsRUFBRSxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUM7U0FDckY7SUFDTCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBQyw4QkFBOEIsQ0FBSSxVQUF3QixFQUFFLGFBQStCO1FBQ3JHLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQywyQkFBMkIsRUFBRSxVQUFVLENBQUMsRUFBRTtZQUMzRSxPQUFPLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQywyQkFBMkIsRUFBRSxhQUFhLEVBQUUsVUFBVSxDQUFDLENBQUM7U0FDM0Y7SUFDTCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFvQjtRQUMzQyxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUN4RSxJQUFJLFFBQVEsRUFBRTtZQUNWLE9BQU8sUUFBUSxDQUFDO1NBQ25CO1FBQ0QsT0FBTyxDQUFDLElBQUksQ0FBQyxxR0FBcUcsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUMxSCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDckIsQ0FBQztJQUVEOzs7T0FHRztJQUNJLE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBb0I7UUFDN0MsT0FBTyxPQUFPLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksTUFBTSxDQUFDLFlBQVksQ0FBQyxRQUFrQjtRQUN6QyxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUM1RSxJQUFJLFFBQVEsRUFBRTtZQUNWLE9BQU8sUUFBUSxDQUFDO1NBQ25CO1FBQ0QsT0FBTyxDQUFDLElBQUksQ0FBQyxxR0FBcUcsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUM5SCxNQUFNLElBQUksZ0JBQWdCLENBQUMsMkJBQTJCLEVBQUUsaUJBQWlCLENBQUMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUM5RixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksTUFBTSxDQUFDLGtCQUFrQixDQUFDLElBQW9CO1FBQ2pELE9BQU8sT0FBTyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsd0JBQXdCLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUVEOzs7T0FHRztJQUNJLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxJQUFvQjtRQUNwRCxPQUFPLE9BQU8sQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLDJCQUEyQixFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzNFLENBQUM7O0FBakdzQiwyQkFBa0IsR0FBRyxVQUFVLENBQUM7QUFDaEMsaUNBQXdCLEdBQUcsZ0JBQWdCLENBQUM7QUFDNUMsb0NBQTJCLEdBQUcsbUJBQW1CLENBQUM7QUFDbEQsMkJBQWtCLEdBQUcsVUFBVSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICdyZWZsZWN0LW1ldGFkYXRhJztcblxuaW1wb3J0IHtNbmdFcnJvckludGVybmFsfSBmcm9tICcuLi9tb2RlbHMnO1xuaW1wb3J0IHtDbGFzc1R5cGUsIEVudW1UeXBlfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjbGFzcyBUeXBlVXRpbCB7XG4gICAgcHVibGljIHN0YXRpYyByZWFkb25seSByZWZsZWN0VHlwZU5hbWVLZXkgPSAndHlwZU5hbWUnO1xuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgcmVmbGVjdFR5cGVJZFByb3BlcnR5S2V5ID0gJ3R5cGVJZFByb3BlcnR5JztcbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IHJlZmxlY3RUeXBlVGl0bGVQcm9wZXJ0eUtleSA9ICd0eXBlVGl0bGVQcm9wZXJ0eSc7XG4gICAgcHVibGljIHN0YXRpYyByZWFkb25seSByZWZsZWN0RW51bU5hbWVLZXkgPSAnZW51bU5hbWUnO1xuXG4gICAgLyoqXG4gICAgICogRGVmaW5lcyB0eXBlIG5hbWUgZGVjb3JhdG9yLlxuICAgICAqIEBwYXJhbSB0YXJnZXRUeXBlIGNsYXNzLlxuICAgICAqIEBwYXJhbSB0eXBlTmFtZSBOYW1lIG9mIHRoZSB0eXBlLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZGVmaW5lUmVmbGVjdFR5cGVOYW1lKHRhcmdldFR5cGU6IENsYXNzVHlwZTxhbnk+LCB0eXBlTmFtZTogc3RyaW5nKSB7XG4gICAgICAgIGlmICghUmVmbGVjdC5oYXNPd25NZXRhZGF0YShUeXBlVXRpbC5yZWZsZWN0VHlwZU5hbWVLZXksIHRhcmdldFR5cGUpKSB7XG4gICAgICAgICAgICBSZWZsZWN0LmRlZmluZU1ldGFkYXRhKFR5cGVVdGlsLnJlZmxlY3RUeXBlTmFtZUtleSwgdHlwZU5hbWUsIHRhcmdldFR5cGUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGVmaW5lcyBlbnVtIG5hbWUgZGVjb3JhdG9yLlxuICAgICAqIEBwYXJhbSB0YXJnZXRUeXBlIGVudW0gb2JqZWN0LlxuICAgICAqIEBwYXJhbSBlbnVtTmFtZSBOYW1lIG9mIHRoZSBlbnVtLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZGVmaW5lUmVmbGVjdEVudW1OYW1lKHRhcmdldFR5cGU6IEVudW1UeXBlLCBlbnVtTmFtZTogc3RyaW5nKSB7XG4gICAgICAgIGlmICghUmVmbGVjdC5oYXNPd25NZXRhZGF0YShUeXBlVXRpbC5yZWZsZWN0RW51bU5hbWVLZXksIHRhcmdldFR5cGUpKSB7XG4gICAgICAgICAgICBSZWZsZWN0LmRlZmluZU1ldGFkYXRhKFR5cGVVdGlsLnJlZmxlY3RFbnVtTmFtZUtleSwgZW51bU5hbWUsIHRhcmdldFR5cGUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGVmaW5lcyB0eXBlJ3MgaWQgcHJvcGVydHkuXG4gICAgICogQHBhcmFtIHRhcmdldFR5cGUgY2xhc3MuXG4gICAgICogQHBhcmFtIGlkUHJvcGVydHkgSWQgcHJvcGVydHlcbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGRlZmluZVJlZmxlY3RUeXBlSWRQcm9wZXJ0eTxUPih0YXJnZXRUeXBlOiBDbGFzc1R5cGU8VD4sIGlkUHJvcGVydHk6IGtleW9mIFQgfCBzeW1ib2wpIHtcbiAgICAgICAgaWYgKCFSZWZsZWN0Lmhhc093bk1ldGFkYXRhKFR5cGVVdGlsLnJlZmxlY3RUeXBlSWRQcm9wZXJ0eUtleSwgdGFyZ2V0VHlwZSkpIHtcbiAgICAgICAgICAgIFJlZmxlY3QuZGVmaW5lTWV0YWRhdGEoVHlwZVV0aWwucmVmbGVjdFR5cGVJZFByb3BlcnR5S2V5LCBpZFByb3BlcnR5LCB0YXJnZXRUeXBlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERlZmluZXMgdHlwZSdzIGlkIHByb3BlcnR5LlxuICAgICAqIEBwYXJhbSB0YXJnZXRUeXBlIGNsYXNzLlxuICAgICAqIEBwYXJhbSB0aXRsZVByb3BlcnR5IFRpdGxlIHByb3BlcnR5XG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBkZWZpbmVSZWZsZWN0VHlwZVRpdGxlUHJvcGVydHk8VD4odGFyZ2V0VHlwZTogQ2xhc3NUeXBlPFQ+LCB0aXRsZVByb3BlcnR5OiBrZXlvZiBUIHwgc3ltYm9sKSB7XG4gICAgICAgIGlmICghUmVmbGVjdC5oYXNPd25NZXRhZGF0YShUeXBlVXRpbC5yZWZsZWN0VHlwZVRpdGxlUHJvcGVydHlLZXksIHRhcmdldFR5cGUpKSB7XG4gICAgICAgICAgICBSZWZsZWN0LmRlZmluZU1ldGFkYXRhKFR5cGVVdGlsLnJlZmxlY3RUeXBlVGl0bGVQcm9wZXJ0eUtleSwgdGl0bGVQcm9wZXJ0eSwgdGFyZ2V0VHlwZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHR5cGUgbmFtZSBmcm9tIHJlZmxlY3QgbWV0YWRhdGEuXG4gICAgICogQHBhcmFtIHR5cGUgQ2xhc3MuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBmaW5kVHlwZU5hbWUodHlwZTogQ2xhc3NUeXBlPGFueT4pOiBzdHJpbmcge1xuICAgICAgICBjb25zdCB0eXBlTmFtZSA9IFJlZmxlY3QuZ2V0TWV0YWRhdGEoVHlwZVV0aWwucmVmbGVjdFR5cGVOYW1lS2V5LCB0eXBlKTtcbiAgICAgICAgaWYgKHR5cGVOYW1lKSB7XG4gICAgICAgICAgICByZXR1cm4gdHlwZU5hbWU7XG4gICAgICAgIH1cbiAgICAgICAgY29uc29sZS53YXJuKCdSZWZsZWN0IG1ldGFkYXRhIGNvdWxkIG5vdCBiZSBmb3VuZCBmb3IgdHlwZSwgeW91IG1pZ2h0IGV4cGVyaWVuY2Ugc29tZSBpc3N1ZXMgaW4gcHJvZHVjdGlvbiBidWlsZC4nLCB0eXBlKTtcbiAgICAgICAgcmV0dXJuIHR5cGUubmFtZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHR5cGUgbmFtZSBmcm9tIGVpdGhlciBkZWNvcmF0b3Igb3IgcmVmbGVjdCBtZXRhZGF0YS5cbiAgICAgKiBAcGFyYW0gdHlwZSBDbGFzcy5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIHR5cGVOYW1lRXhpc3RzKHR5cGU6IENsYXNzVHlwZTxhbnk+KTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBSZWZsZWN0Lmhhc093bk1ldGFkYXRhKFR5cGVVdGlsLnJlZmxlY3RUeXBlTmFtZUtleSwgdHlwZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyBlbnVtIG5hbWUgZnJvbSBlaXRoZXIgZGVjb3JhdG9yIG9yIHJlZmxlY3QgbWV0YWRhdGEuXG4gICAgICogQHBhcmFtIGVudW1UeXBlIENsYXNzLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZmluZEVudW1OYW1lKGVudW1UeXBlOiBFbnVtVHlwZSk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGVudW1OYW1lID0gUmVmbGVjdC5nZXRNZXRhZGF0YShUeXBlVXRpbC5yZWZsZWN0RW51bU5hbWVLZXksIGVudW1UeXBlKTtcbiAgICAgICAgaWYgKGVudW1OYW1lKSB7XG4gICAgICAgICAgICByZXR1cm4gZW51bU5hbWU7XG4gICAgICAgIH1cbiAgICAgICAgY29uc29sZS53YXJuKCdSZWZsZWN0IG1ldGFkYXRhIGNvdWxkIG5vdCBiZSBmb3VuZCBmb3IgZW51bSwgeW91IG1pZ2h0IGV4cGVyaWVuY2Ugc29tZSBpc3N1ZXMgaW4gcHJvZHVjdGlvbiBidWlsZC4nLCBlbnVtVHlwZSk7XG4gICAgICAgIHRocm93IG5ldyBNbmdFcnJvckludGVybmFsKCdDb3VsZCBub3QgZmluZWQgZW51bSBuYW1lJywgJ1R5cGVVdGlscyBlcnJvcicpLmNvbnNvbGVFcnJvcigpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgdHlwZSdzIGlkIHByb3BlcnR5IGZyb20gcmVmbGVjdCBtZXRhZGF0YS5cbiAgICAgKiBAcGFyYW0gdHlwZSBDbGFzcy5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGZpbmRUeXBlSWRQcm9wZXJ0eSh0eXBlOiBDbGFzc1R5cGU8YW55Pik6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBSZWZsZWN0LmdldE1ldGFkYXRhKFR5cGVVdGlsLnJlZmxlY3RUeXBlSWRQcm9wZXJ0eUtleSwgdHlwZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyB0eXBlJ3MgdGl0bGUgcHJvcGVydHkgZnJvbSByZWZsZWN0IG1ldGFkYXRhLlxuICAgICAqIEBwYXJhbSB0eXBlIENsYXNzLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZmluZFR5cGVUaXRsZVByb3BlcnR5KHR5cGU6IENsYXNzVHlwZTxhbnk+KTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIFJlZmxlY3QuZ2V0TWV0YWRhdGEoVHlwZVV0aWwucmVmbGVjdFR5cGVUaXRsZVByb3BlcnR5S2V5LCB0eXBlKTtcbiAgICB9XG59XG4iXX0=