@mediusinc/mng-commons 3.0.0-rc.8 → 3.0.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 (84) hide show
  1. package/dev-scripts/version-info.js +13 -6
  2. package/esm2022/lib/components/action/models/action-execution.model.mjs +1 -1
  3. package/esm2022/lib/components/form/autocomplete/autocomplete.component.mjs +13 -2
  4. package/esm2022/lib/components/form/dropdown/dropdown.component.mjs +16 -5
  5. package/esm2022/lib/components/form/formly/fields/formly-field-action/formly-field-action.component.mjs +22 -4
  6. package/esm2022/lib/components/form/formly/fields/formly-field-lookup-dialog/formly-field-lookup-dialog.component.mjs +10 -3
  7. package/esm2022/lib/components/form/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.mjs +7 -5
  8. package/esm2022/lib/components/form/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component.mjs +17 -8
  9. package/esm2022/lib/components/form/models/field-action-context.model.mjs +1 -1
  10. package/esm2022/lib/components/form/models/index.mjs +2 -1
  11. package/esm2022/lib/components/tableview/table/table.component.mjs +55 -53
  12. package/esm2022/lib/descriptors/action/action.descriptor.mjs +6 -6
  13. package/esm2022/lib/descriptors/editor/editor.descriptor.mjs +2 -2
  14. package/esm2022/lib/descriptors/editor/field.descriptor.mjs +13 -4
  15. package/esm2022/lib/descriptors/filter/filter.descriptor.mjs +4 -4
  16. package/esm2022/lib/descriptors/table/column.descriptor.mjs +2 -2
  17. package/esm2022/lib/descriptors/tableview/tableview.descriptor.mjs +2 -2
  18. package/esm2022/lib/error/error.handler.mjs +7 -10
  19. package/esm2022/lib/models/error.model.mjs +44 -2
  20. package/esm2022/lib/models/index.mjs +1 -2
  21. package/esm2022/lib/models/log.model.mjs +1 -1
  22. package/esm2022/lib/models/version.model.mjs +1 -1
  23. package/esm2022/lib/pipes/json-path.pipe.mjs +3 -62
  24. package/esm2022/lib/provide-commons.mjs +8 -3
  25. package/esm2022/lib/router/route-builder.mjs +3 -3
  26. package/esm2022/lib/router/routes-builder.mjs +2 -2
  27. package/esm2022/lib/services/action-error-mapper.service.mjs +3 -2
  28. package/esm2022/lib/services/action-executor.service.mjs +61 -36
  29. package/esm2022/lib/services/configuration.service.mjs +7 -13
  30. package/esm2022/lib/services/index.mjs +2 -1
  31. package/esm2022/lib/services/internal/commons-init.service.mjs +4 -3
  32. package/esm2022/lib/services/log-publisher-console.service.mjs +40 -0
  33. package/esm2022/lib/services/logger.service.mjs +57 -50
  34. package/esm2022/lib/services/tokens/index.mjs +2 -1
  35. package/esm2022/lib/services/tokens/log-publisher.token.mjs +3 -0
  36. package/esm2022/lib/services/version.service.mjs +7 -2
  37. package/esm2022/lib/utils/action-data-provider.util.mjs +7 -7
  38. package/esm2022/lib/utils/editor-formly.util.mjs +2 -1
  39. package/esm2022/lib/utils/error.util.mjs +247 -0
  40. package/esm2022/lib/utils/i18n.util.mjs +7 -9
  41. package/esm2022/lib/utils/index.mjs +2 -1
  42. package/esm2022/lib/utils/notification.util.mjs +1 -1
  43. package/esm2022/lib/utils/object.util.mjs +50 -1
  44. package/esm2022/lib/utils/route.util.mjs +2 -2
  45. package/esm2022/lib/utils/string.util.mjs +32 -1
  46. package/esm2022/lib/utils/tableview.util.mjs +2 -2
  47. package/esm2022/lib/utils/type.util.mjs +2 -2
  48. package/fesm2022/mediusinc-mng-commons.mjs +867 -457
  49. package/fesm2022/mediusinc-mng-commons.mjs.map +1 -1
  50. package/lib/components/action/models/action-execution.model.d.ts +2 -2
  51. package/lib/components/form/formly/fields/formly-field-action/formly-field-action.component.d.ts +3 -0
  52. package/lib/components/form/formly/fields/formly-field-lookup-dialog/formly-field-lookup-dialog.component.d.ts +1 -0
  53. package/lib/components/form/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component.d.ts +1 -0
  54. package/lib/components/form/models/field-action-context.model.d.ts +7 -0
  55. package/lib/components/form/models/index.d.ts +1 -0
  56. package/lib/components/tableview/table/table.component.d.ts +2 -0
  57. package/lib/descriptors/editor/field.descriptor.d.ts +8 -6
  58. package/lib/descriptors/table/column.descriptor.d.ts +1 -1
  59. package/lib/models/error.model.d.ts +44 -9
  60. package/lib/models/index.d.ts +0 -1
  61. package/lib/models/log.model.d.ts +14 -8
  62. package/lib/models/version.model.d.ts +1 -1
  63. package/lib/pipes/json-path.pipe.d.ts +0 -1
  64. package/lib/services/action-error-mapper.service.d.ts +10 -3
  65. package/lib/services/action-executor.service.d.ts +3 -2
  66. package/lib/services/index.d.ts +1 -0
  67. package/lib/services/internal/commons-init.service.d.ts +1 -0
  68. package/lib/services/log-publisher-console.service.d.ts +4 -0
  69. package/lib/services/logger.service.d.ts +11 -8
  70. package/lib/services/tokens/index.d.ts +1 -0
  71. package/lib/services/tokens/log-publisher.token.d.ts +3 -0
  72. package/lib/services/version.service.d.ts +1 -0
  73. package/lib/utils/error.util.d.ts +116 -0
  74. package/lib/utils/i18n.util.d.ts +3 -3
  75. package/lib/utils/index.d.ts +1 -0
  76. package/lib/utils/notification.util.d.ts +2 -2
  77. package/lib/utils/object.util.d.ts +1 -0
  78. package/lib/utils/string.util.d.ts +5 -0
  79. package/package.json +4 -1
  80. package/scss/common/theme/designer/_components.scss +1 -1
  81. package/scss/mng-overrides/_theme_dialog.scss +7 -0
  82. package/scss/mng-overrides/_theme_tableview.scss +3 -0
  83. package/esm2022/lib/models/internal-error.model.mjs +0 -30
  84. package/lib/models/internal-error.model.d.ts +0 -26
@@ -82,5 +82,54 @@ export class ObjectUtil {
82
82
  }
83
83
  return Array.from(getterSet);
84
84
  }
85
+ static getPropertyByPath(value, path) {
86
+ if (path === '$') {
87
+ // only return the root
88
+ return value;
89
+ }
90
+ // Check for leading root object notation
91
+ if (path.startsWith('$')) {
92
+ path = path.substring(1);
93
+ }
94
+ // Check for leading .
95
+ if (path.startsWith('.')) {
96
+ path = path.substring(1);
97
+ }
98
+ if (path.indexOf('.') >= 0) {
99
+ const pathSplit = path.split('.');
100
+ let currValue = value;
101
+ for (const p of pathSplit) {
102
+ if (typeof currValue === 'undefined' || currValue === null) {
103
+ return currValue;
104
+ }
105
+ if (!p.length) {
106
+ // empty path, return current value
107
+ return currValue;
108
+ }
109
+ const leftBracketIdx = p.indexOf('[');
110
+ if (leftBracketIdx >= 0 && p.endsWith(']')) {
111
+ // should be reference to array
112
+ const arrayPath = p.substring(0, leftBracketIdx);
113
+ const arrayIdx = +p.substring(leftBracketIdx + 1, p.length - 1);
114
+ const array = currValue[arrayPath];
115
+ if (Array.isArray(array)) {
116
+ if (arrayIdx >= 0 && arrayIdx < array.length) {
117
+ // valid index, continue on the path
118
+ currValue = array[arrayIdx];
119
+ continue;
120
+ }
121
+ }
122
+ return undefined;
123
+ }
124
+ else if (typeof currValue === 'object') {
125
+ currValue = currValue[p];
126
+ }
127
+ }
128
+ return currValue;
129
+ }
130
+ else {
131
+ return value[path];
132
+ }
133
+ }
85
134
  }
86
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LnV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3V0aWxzL29iamVjdC51dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVVBLE1BQU0sT0FBTyxVQUFVO0lBTVosTUFBTSxDQUFDLFFBQVEsQ0FBeUIsR0FBTSxFQUFFLE9BQTRCO1FBQy9FLElBQUksT0FBTyxHQUFHLEtBQUssUUFBUSxJQUFJLEdBQUcsS0FBSyxJQUFJLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUMvRCxPQUFPLEdBQUcsQ0FBQztTQUNkO1FBRUQsSUFBSSxHQUFHLFlBQVksSUFBSSxFQUFFO1lBQ3JCLE9BQU8sSUFBSSxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUN6QjtRQUVELElBQUksSUFBSSxDQUFDO1FBQ1QsSUFBSSxPQUFPLEVBQUUsc0JBQXNCLEVBQUU7WUFDakMsSUFBSSxHQUFHLEVBQUUsQ0FBQztTQUNiO2FBQU07WUFDSCxJQUFJLEdBQUcsT0FBTyxFQUFFLGVBQWUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLFdBQTJCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUNsSixNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztTQUM1QjtRQUVELEtBQUssTUFBTSxHQUFHLElBQUksVUFBVSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUM3QyxNQUFNLElBQUksR0FBRyxHQUFHLENBQUMsR0FBbUIsQ0FBQyxDQUFDO1lBQ3RDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxVQUFVLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxFQUFDLHNCQUFzQixFQUFFLE9B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QU07WUFDSCxPQUFPLElBQUksQ0FBQztTQUNmO0lBQ0wsQ0FBQztJQUVNLE1BQU0sQ0FBQyxhQUFhLENBQUMsR0FBVztRQUNuQyxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVNLE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBUTtRQUM3QixNQUFNLFNBQVMsR0FBRyxJQUFJLEdBQUcsRUFBVSxDQUFDO1FBQ3BDLElBQUksT0FBTyxHQUFHLEdBQUcsQ0FBQztRQUVsQixPQUFPLE9BQU8sRUFBRTtZQUNaLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLHlCQUF5QixDQUFDLE9BQU8sQ0FBQyxDQUFDO2lCQUNwRSxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsVUFBVSxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sVUFBVSxDQUFDLEdBQUcsS0FBSyxVQUFVLENBQUM7aUJBQ2hFLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsS0FBSyxXQUFXLENBQUM7aUJBQ3RDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBRXpCLEtBQUssTUFBTSxNQUFNLElBQUksT0FBTyxFQUFFO2dCQUMxQixTQUFTLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2FBQ3pCO1lBRUQsT0FBTyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDNUM7UUFFRCxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDakMsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDbGFzc1R5cGV9IGZyb20gJy4uL3R5cGVzJztcblxuaW50ZXJmYWNlIERlZXBDb3B5UHJvcHNPcHRpb25zIHtcbiAgICBtYXBHZXR0ZXJzVG9Qcm9wZXJ0aWVzPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEZWVwQ29weU9wdGlvbnM8UCA9IG9iamVjdD4gZXh0ZW5kcyBEZWVwQ29weVByb3BzT3B0aW9ucyB7XG4gICAgb2JqZWN0UHJvdG90eXBlPzogQ2xhc3NUeXBlPFA+O1xufVxuXG5leHBvcnQgY2xhc3MgT2JqZWN0VXRpbCB7XG4gICAgcHVibGljIHN0YXRpYyBkZWVwQ29weTxUID0gb2JqZWN0LCBQID0gb2JqZWN0PihvYmo6IFQsIG9wdGlvbnM6IERlZXBDb3B5T3B0aW9uczxQPiAmIHttYXBHZXR0ZXJzVG9Qcm9wZXJ0aWVzOiB0cnVlfSk6IFQgfCBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuICAgIHB1YmxpYyBzdGF0aWMgZGVlcENvcHk8VCA9IG9iamVjdCwgUCA9IG9iamVjdD4ob2JqOiBULCBvcHRpb25zOiBEZWVwQ29weU9wdGlvbnM8UD4gJiB7b2JqZWN0UHJvdG90eXBlOiBDbGFzc1R5cGU8UD59ICYge21hcEdldHRlcnNUb1Byb3BlcnRpZXM/OiBmYWxzZX0pOiBQO1xuICAgIHB1YmxpYyBzdGF0aWMgZGVlcENvcHk8VCA9IG9iamVjdCwgUCA9IG9iamVjdD4ob2JqOiBULCBvcHRpb25zOiBEZWVwQ29weU9wdGlvbnM8UD4gJiB7b2JqZWN0UHJvdG90eXBlOiBDbGFzc1R5cGU8UD59ICYge21hcEdldHRlcnNUb1Byb3BlcnRpZXM6IHRydWV9KTogUCB8IFJlY29yZDxzdHJpbmcsIGFueT47XG4gICAgcHVibGljIHN0YXRpYyBkZWVwQ29weTxUID0gb2JqZWN0LCBQID0gb2JqZWN0PihvYmo6IFQsIG9wdGlvbnM/OiBEZWVwQ29weU9wdGlvbnM8UD4pOiBUO1xuXG4gICAgcHVibGljIHN0YXRpYyBkZWVwQ29weTxUID0gb2JqZWN0LCBQID0gb2JqZWN0PihvYmo6IFQsIG9wdGlvbnM/OiBEZWVwQ29weU9wdGlvbnM8UD4pOiBUIHwgUCB8IFJlY29yZDxzdHJpbmcsIGFueT4ge1xuICAgICAgICBpZiAodHlwZW9mIG9iaiAhPT0gJ29iamVjdCcgfHwgb2JqID09PSBudWxsIHx8IEFycmF5LmlzQXJyYXkob2JqKSkge1xuICAgICAgICAgICAgcmV0dXJuIG9iajtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChvYmogaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IERhdGUoK29iaik7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgY29weTtcbiAgICAgICAgaWYgKG9wdGlvbnM/Lm1hcEdldHRlcnNUb1Byb3BlcnRpZXMpIHtcbiAgICAgICAgICAgIGNvcHkgPSB7fTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvcHkgPSBvcHRpb25zPy5vYmplY3RQcm90b3R5cGUgPyBPYmplY3QuY3JlYXRlKG9wdGlvbnMub2JqZWN0UHJvdG90eXBlWydwcm90b3R5cGUnIGFzIGtleW9mIG9iamVjdF0pIDogT2JqZWN0LmNyZWF0ZShPYmplY3QuZ2V0UHJvdG90eXBlT2Yob2JqKSk7XG4gICAgICAgICAgICBPYmplY3QuYXNzaWduKGNvcHksIG9iaik7XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3RVdGlsLmdldFByb3BlcnRpZXMob2JqKSkge1xuICAgICAgICAgICAgY29uc3QgcHJvcCA9IG9ialtrZXkgYXMga2V5b2Ygb2JqZWN0XTtcbiAgICAgICAgICAgIGNvcHlba2V5XSA9IE9iamVjdFV0aWwuaGFuZGxlUHJvcChwcm9wLCB7bWFwR2V0dGVyc1RvUHJvcGVydGllczogb3B0aW9ucz8ubWFwR2V0dGVyc1RvUHJvcGVydGllc30pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG9wdGlvbnM/Lm1hcEdldHRlcnNUb1Byb3BlcnRpZXMpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgZ2V0dGVyS2V5IG9mIE9iamVjdFV0aWwuZ2V0R2V0dGVycyhvYmopKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcHJvcCA9IG9ialtnZXR0ZXJLZXkgYXMga2V5b2Ygb2JqZWN0XTtcbiAgICAgICAgICAgICAgICBjb3B5W2dldHRlcktleV0gPSBPYmplY3RVdGlsLmhhbmRsZVByb3AocHJvcCwge21hcEdldHRlcnNUb1Byb3BlcnRpZXM6IG9wdGlvbnM/Lm1hcEdldHRlcnNUb1Byb3BlcnRpZXN9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjb3B5O1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgZGVlcE1lcmdlKHRhcmdldDogUmVjb3JkPHN0cmluZywgYW55Piwgc291cmNlOiBSZWNvcmQ8c3RyaW5nLCBhbnk+KTogUmVjb3JkPHN0cmluZywgYW55PiB7XG4gICAgICAgIGlmICghT2JqZWN0VXRpbC5pc09iamVjdChzb3VyY2UpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGFyZ2V0O1xuICAgICAgICB9XG5cbiAgICAgICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0VXRpbC5nZXRQcm9wZXJ0aWVzKHNvdXJjZSkpIHtcbiAgICAgICAgICAgIGlmIChPYmplY3RVdGlsLmlzT2JqZWN0KHNvdXJjZVtrZXldKSkge1xuICAgICAgICAgICAgICAgIGlmIChPYmplY3RVdGlsLmlzT2JqZWN0KHRhcmdldFtrZXldKSkge1xuICAgICAgICAgICAgICAgICAgICB0YXJnZXRba2V5XSA9IE9iamVjdFV0aWwuZGVlcE1lcmdlKHRhcmdldFtrZXldLCBzb3VyY2Vba2V5XSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0W2tleV0gPSBPYmplY3RVdGlsLmRlZXBDb3B5KHNvdXJjZVtrZXldKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoc291cmNlW2tleV0pKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KHRhcmdldFtrZXldKSkge1xuICAgICAgICAgICAgICAgICAgICB0YXJnZXRba2V5XSA9IChzb3VyY2Vba2V5XSBhcyBBcnJheTx1bmtub3duPikubWFwKGkgPT4gKE9iamVjdFV0aWwuaXNPYmplY3QoaSkgPyBPYmplY3RVdGlsLmRlZXBNZXJnZSh7fSwgaSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPikgOiBpKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgdGFyZ2V0W2tleV0gPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgICAgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0YXJnZXQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGF0aWMgaXNPYmplY3Qob2JqOiBhbnkpIHtcbiAgICAgICAgcmV0dXJuIHR5cGVvZiBvYmogPT09ICdvYmplY3QnICYmIG9iaiAhPT0gbnVsbCAmJiAhQXJyYXkuaXNBcnJheShvYmopO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIGhhbmRsZVByb3AocHJvcDogYW55LCBvcHRpb25zPzogRGVlcENvcHlQcm9wc09wdGlvbnMpIHtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkocHJvcCkpIHtcbiAgICAgICAgICAgIHJldHVybiBwcm9wLm1hcChpID0+IE9iamVjdFV0aWwuZGVlcENvcHkoaSwgb3B0aW9ucykpO1xuICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBwcm9wID09PSAnb2JqZWN0JyAmJiBwcm9wICE9PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gT2JqZWN0VXRpbC5kZWVwQ29weShwcm9wLCBvcHRpb25zKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBwcm9wO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBnZXRQcm9wZXJ0aWVzKG9iajogb2JqZWN0KSB7XG4gICAgICAgIHJldHVybiBPYmplY3Qua2V5cyhvYmopO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgZ2V0R2V0dGVycyhvYmo6IGFueSk6IHN0cmluZ1tdIHtcbiAgICAgICAgY29uc3QgZ2V0dGVyU2V0ID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gICAgICAgIGxldCBjdXJyT2JqID0gb2JqO1xuXG4gICAgICAgIHdoaWxlIChjdXJyT2JqKSB7XG4gICAgICAgICAgICBjb25zdCBnZXR0ZXJzID0gT2JqZWN0LmVudHJpZXMoT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMoY3Vyck9iaikpXG4gICAgICAgICAgICAgICAgLmZpbHRlcigoWywgZGVzY3JpcHRvcl0pID0+IHR5cGVvZiBkZXNjcmlwdG9yLmdldCA9PT0gJ2Z1bmN0aW9uJylcbiAgICAgICAgICAgICAgICAuZmlsdGVyKChba2V5XSkgPT4ga2V5ICE9PSAnX19wcm90b19fJylcbiAgICAgICAgICAgICAgICAubWFwKChba2V5XSkgPT4ga2V5KTtcblxuICAgICAgICAgICAgZm9yIChjb25zdCBnZXR0ZXIgb2YgZ2V0dGVycykge1xuICAgICAgICAgICAgICAgIGdldHRlclNldC5hZGQoZ2V0dGVyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY3Vyck9iaiA9IE9iamVjdC5nZXRQcm90b3R5cGVPZihjdXJyT2JqKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBBcnJheS5mcm9tKGdldHRlclNldCk7XG4gICAgfVxufVxuIl19
135
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LnV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3V0aWxzL29iamVjdC51dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVVBLE1BQU0sT0FBTyxVQUFVO0lBTVosTUFBTSxDQUFDLFFBQVEsQ0FBeUIsR0FBTSxFQUFFLE9BQTRCO1FBQy9FLElBQUksT0FBTyxHQUFHLEtBQUssUUFBUSxJQUFJLEdBQUcsS0FBSyxJQUFJLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUMvRCxPQUFPLEdBQUcsQ0FBQztTQUNkO1FBRUQsSUFBSSxHQUFHLFlBQVksSUFBSSxFQUFFO1lBQ3JCLE9BQU8sSUFBSSxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUN6QjtRQUVELElBQUksSUFBSSxDQUFDO1FBQ1QsSUFBSSxPQUFPLEVBQUUsc0JBQXNCLEVBQUU7WUFDakMsSUFBSSxHQUFHLEVBQUUsQ0FBQztTQUNiO2FBQU07WUFDSCxJQUFJLEdBQUcsT0FBTyxFQUFFLGVBQWUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLFdBQTJCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUNsSixNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztTQUM1QjtRQUVELEtBQUssTUFBTSxHQUFHLElBQUksVUFBVSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUM3QyxNQUFNLElBQUksR0FBRyxHQUFHLENBQUMsR0FBbUIsQ0FBQyxDQUFDO1lBQ3RDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxVQUFVLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxFQUFDLHNCQUFzQixFQUFFLE9B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LEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7d0JBQ3RCLElBQUksUUFBUSxJQUFJLENBQUMsSUFBSSxRQUFRLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRTs0QkFDMUMsb0NBQW9DOzRCQUNwQyxTQUFTLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDOzRCQUM1QixTQUFTO3lCQUNaO3FCQUNKO29CQUVELE9BQU8sU0FBUyxDQUFDO2lCQUNwQjtxQkFBTSxJQUFJLE9BQU8sU0FBUyxLQUFLLFFBQVEsRUFBRTtvQkFDdEMsU0FBUyxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztpQkFDNUI7YUFDSjtZQUNELE9BQU8sU0FBUyxDQUFDO1NBQ3BCO2FBQU07WUFDSCxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUN0QjtJQUNMLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2xhc3NUeXBlfSBmcm9tICcuLi90eXBlcyc7XG5cbmludGVyZmFjZSBEZWVwQ29weVByb3BzT3B0aW9ucyB7XG4gICAgbWFwR2V0dGVyc1RvUHJvcGVydGllcz86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGVlcENvcHlPcHRpb25zPFAgPSBvYmplY3Q+IGV4dGVuZHMgRGVlcENvcHlQcm9wc09wdGlvbnMge1xuICAgIG9iamVjdFByb3RvdHlwZT86IENsYXNzVHlwZTxQPjtcbn1cblxuZXhwb3J0IGNsYXNzIE9iamVjdFV0aWwge1xuICAgIHB1YmxpYyBzdGF0aWMgZGVlcENvcHk8VCA9IG9iamVjdCwgUCA9IG9iamVjdD4ob2JqOiBULCBvcHRpb25zOiBEZWVwQ29weU9wdGlvbnM8UD4gJiB7bWFwR2V0dGVyc1RvUHJvcGVydGllczogdHJ1ZX0pOiBUIHwgUmVjb3JkPHN0cmluZywgYW55PjtcbiAgICBwdWJsaWMgc3RhdGljIGRlZXBDb3B5PFQgPSBvYmplY3QsIFAgPSBvYmplY3Q+KG9iajogVCwgb3B0aW9uczogRGVlcENvcHlPcHRpb25zPFA+ICYge29iamVjdFByb3RvdHlwZTogQ2xhc3NUeXBlPFA+fSAmIHttYXBHZXR0ZXJzVG9Qcm9wZXJ0aWVzPzogZmFsc2V9KTogUDtcbiAgICBwdWJsaWMgc3RhdGljIGRlZXBDb3B5PFQgPSBvYmplY3QsIFAgPSBvYmplY3Q+KG9iajogVCwgb3B0aW9uczogRGVlcENvcHlPcHRpb25zPFA+ICYge29iamVjdFByb3RvdHlwZTogQ2xhc3NUeXBlPFA+fSAmIHttYXBHZXR0ZXJzVG9Qcm9wZXJ0aWVzOiB0cnVlfSk6IFAgfCBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuICAgIHB1YmxpYyBzdGF0aWMgZGVlcENvcHk8VCA9IG9iamVjdCwgUCA9IG9iamVjdD4ob2JqOiBULCBvcHRpb25zPzogRGVlcENvcHlPcHRpb25zPFA+KTogVDtcblxuICAgIHB1YmxpYyBzdGF0aWMgZGVlcENvcHk8VCA9IG9iamVjdCwgUCA9IG9iamVjdD4ob2JqOiBULCBvcHRpb25zPzogRGVlcENvcHlPcHRpb25zPFA+KTogVCB8IFAgfCBSZWNvcmQ8c3RyaW5nLCBhbnk+IHtcbiAgICAgICAgaWYgKHR5cGVvZiBvYmogIT09ICdvYmplY3QnIHx8IG9iaiA9PT0gbnVsbCB8fCBBcnJheS5pc0FycmF5KG9iaikpIHtcbiAgICAgICAgICAgIHJldHVybiBvYmo7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAob2JqIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBEYXRlKCtvYmopO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGNvcHk7XG4gICAgICAgIGlmIChvcHRpb25zPy5tYXBHZXR0ZXJzVG9Qcm9wZXJ0aWVzKSB7XG4gICAgICAgICAgICBjb3B5ID0ge307XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb3B5ID0gb3B0aW9ucz8ub2JqZWN0UHJvdG90eXBlID8gT2JqZWN0LmNyZWF0ZShvcHRpb25zLm9iamVjdFByb3RvdHlwZVsncHJvdG90eXBlJyBhcyBrZXlvZiBvYmplY3RdKSA6IE9iamVjdC5jcmVhdGUoT2JqZWN0LmdldFByb3RvdHlwZU9mKG9iaikpO1xuICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihjb3B5LCBvYmopO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0VXRpbC5nZXRQcm9wZXJ0aWVzKG9iaikpIHtcbiAgICAgICAgICAgIGNvbnN0IHByb3AgPSBvYmpba2V5IGFzIGtleW9mIG9iamVjdF07XG4gICAgICAgICAgICBjb3B5W2tleV0gPSBPYmplY3RVdGlsLmhhbmRsZVByb3AocHJvcCwge21hcEdldHRlcnNUb1Byb3BlcnRpZXM6IG9wdGlvbnM/Lm1hcEdldHRlcnNUb1Byb3BlcnRpZXN9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChvcHRpb25zPy5tYXBHZXR0ZXJzVG9Qcm9wZXJ0aWVzKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGdldHRlcktleSBvZiBPYmplY3RVdGlsLmdldEdldHRlcnMob2JqKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHByb3AgPSBvYmpbZ2V0dGVyS2V5IGFzIGtleW9mIG9iamVjdF07XG4gICAgICAgICAgICAgICAgY29weVtnZXR0ZXJLZXldID0gT2JqZWN0VXRpbC5oYW5kbGVQcm9wKHByb3AsIHttYXBHZXR0ZXJzVG9Qcm9wZXJ0aWVzOiBvcHRpb25zPy5tYXBHZXR0ZXJzVG9Qcm9wZXJ0aWVzfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY29weTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGRlZXBNZXJnZSh0YXJnZXQ6IFJlY29yZDxzdHJpbmcsIGFueT4sIHNvdXJjZTogUmVjb3JkPHN0cmluZywgYW55Pik6IFJlY29yZDxzdHJpbmcsIGFueT4ge1xuICAgICAgICBpZiAoIU9iamVjdFV0aWwuaXNPYmplY3Qoc291cmNlKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRhcmdldDtcbiAgICAgICAgfVxuXG4gICAgICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdFV0aWwuZ2V0UHJvcGVydGllcyhzb3VyY2UpKSB7XG4gICAgICAgICAgICBpZiAoT2JqZWN0VXRpbC5pc09iamVjdChzb3VyY2Vba2V5XSkpIHtcbiAgICAgICAgICAgICAgICBpZiAoT2JqZWN0VXRpbC5pc09iamVjdCh0YXJnZXRba2V5XSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0W2tleV0gPSBPYmplY3RVdGlsLmRlZXBNZXJnZSh0YXJnZXRba2V5XSwgc291cmNlW2tleV0pO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRhcmdldFtrZXldID0gT2JqZWN0VXRpbC5kZWVwQ29weShzb3VyY2Vba2V5XSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KHNvdXJjZVtrZXldKSkge1xuICAgICAgICAgICAgICAgIGlmICghQXJyYXkuaXNBcnJheSh0YXJnZXRba2V5XSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0W2tleV0gPSAoc291cmNlW2tleV0gYXMgQXJyYXk8dW5rbm93bj4pLm1hcChpID0+IChPYmplY3RVdGlsLmlzT2JqZWN0KGkpID8gT2JqZWN0VXRpbC5kZWVwTWVyZ2Uoe30sIGkgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pIDogaSkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHRhcmdldFtrZXldID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgIHRhcmdldFtrZXldID0gc291cmNlW2tleV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGFyZ2V0O1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIGlzT2JqZWN0KG9iajogYW55KSB7XG4gICAgICAgIHJldHVybiB0eXBlb2Ygb2JqID09PSAnb2JqZWN0JyAmJiBvYmogIT09IG51bGwgJiYgIUFycmF5LmlzQXJyYXkob2JqKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXRpYyBoYW5kbGVQcm9wKHByb3A6IGFueSwgb3B0aW9ucz86IERlZXBDb3B5UHJvcHNPcHRpb25zKSB7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHByb3ApKSB7XG4gICAgICAgICAgICByZXR1cm4gcHJvcC5tYXAoaSA9PiBPYmplY3RVdGlsLmRlZXBDb3B5KGksIG9wdGlvbnMpKTtcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgcHJvcCA9PT0gJ29iamVjdCcgJiYgcHJvcCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIE9iamVjdFV0aWwuZGVlcENvcHkocHJvcCwgb3B0aW9ucyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gcHJvcDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgZ2V0UHJvcGVydGllcyhvYmo6IG9iamVjdCkge1xuICAgICAgICByZXR1cm4gT2JqZWN0LmtleXMob2JqKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGdldEdldHRlcnMob2JqOiBhbnkpOiBzdHJpbmdbXSB7XG4gICAgICAgIGNvbnN0IGdldHRlclNldCA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICAgICAgICBsZXQgY3Vyck9iaiA9IG9iajtcblxuICAgICAgICB3aGlsZSAoY3Vyck9iaikge1xuICAgICAgICAgICAgY29uc3QgZ2V0dGVycyA9IE9iamVjdC5lbnRyaWVzKE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKGN1cnJPYmopKVxuICAgICAgICAgICAgICAgIC5maWx0ZXIoKFssIGRlc2NyaXB0b3JdKSA9PiB0eXBlb2YgZGVzY3JpcHRvci5nZXQgPT09ICdmdW5jdGlvbicpXG4gICAgICAgICAgICAgICAgLmZpbHRlcigoW2tleV0pID0+IGtleSAhPT0gJ19fcHJvdG9fXycpXG4gICAgICAgICAgICAgICAgLm1hcCgoW2tleV0pID0+IGtleSk7XG5cbiAgICAgICAgICAgIGZvciAoY29uc3QgZ2V0dGVyIG9mIGdldHRlcnMpIHtcbiAgICAgICAgICAgICAgICBnZXR0ZXJTZXQuYWRkKGdldHRlcik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGN1cnJPYmogPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YoY3Vyck9iaik7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gQXJyYXkuZnJvbShnZXR0ZXJTZXQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgZ2V0UHJvcGVydHlCeVBhdGgodmFsdWU6IGFueSwgcGF0aDogc3RyaW5nKTogYW55IHwgdW5kZWZpbmVkIHtcbiAgICAgICAgaWYgKHBhdGggPT09ICckJykge1xuICAgICAgICAgICAgLy8gb25seSByZXR1cm4gdGhlIHJvb3RcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIENoZWNrIGZvciBsZWFkaW5nIHJvb3Qgb2JqZWN0IG5vdGF0aW9uXG4gICAgICAgIGlmIChwYXRoLnN0YXJ0c1dpdGgoJyQnKSkge1xuICAgICAgICAgICAgcGF0aCA9IHBhdGguc3Vic3RyaW5nKDEpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQ2hlY2sgZm9yIGxlYWRpbmcgLlxuICAgICAgICBpZiAocGF0aC5zdGFydHNXaXRoKCcuJykpIHtcbiAgICAgICAgICAgIHBhdGggPSBwYXRoLnN1YnN0cmluZygxKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChwYXRoLmluZGV4T2YoJy4nKSA+PSAwKSB7XG4gICAgICAgICAgICBjb25zdCBwYXRoU3BsaXQgPSBwYXRoLnNwbGl0KCcuJyk7XG4gICAgICAgICAgICBsZXQgY3VyclZhbHVlID0gdmFsdWU7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IHAgb2YgcGF0aFNwbGl0KSB7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBjdXJyVmFsdWUgPT09ICd1bmRlZmluZWQnIHx8IGN1cnJWYWx1ZSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gY3VyclZhbHVlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmICghcC5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gZW1wdHkgcGF0aCwgcmV0dXJuIGN1cnJlbnQgdmFsdWVcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGN1cnJWYWx1ZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBjb25zdCBsZWZ0QnJhY2tldElkeCA9IHAuaW5kZXhPZignWycpO1xuICAgICAgICAgICAgICAgIGlmIChsZWZ0QnJhY2tldElkeCA+PSAwICYmIHAuZW5kc1dpdGgoJ10nKSkge1xuICAgICAgICAgICAgICAgICAgICAvLyBzaG91bGQgYmUgcmVmZXJlbmNlIHRvIGFycmF5XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGFycmF5UGF0aCA9IHAuc3Vic3RyaW5nKDAsIGxlZnRCcmFja2V0SWR4KTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYXJyYXlJZHggPSArcC5zdWJzdHJpbmcobGVmdEJyYWNrZXRJZHggKyAxLCBwLmxlbmd0aCAtIDEpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBhcnJheSA9IGN1cnJWYWx1ZVthcnJheVBhdGhdO1xuICAgICAgICAgICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShhcnJheSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhcnJheUlkeCA+PSAwICYmIGFycmF5SWR4IDwgYXJyYXkubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdmFsaWQgaW5kZXgsIGNvbnRpbnVlIG9uIHRoZSBwYXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VyclZhbHVlID0gYXJyYXlbYXJyYXlJZHhdO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBjdXJyVmFsdWUgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICAgICAgICAgIGN1cnJWYWx1ZSA9IGN1cnJWYWx1ZVtwXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gY3VyclZhbHVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHZhbHVlW3BhdGhdO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
@@ -11,7 +11,7 @@ export class RouteUtil {
11
11
  }
12
12
  else if (path[0].startsWith('../')) {
13
13
  // TODO: process multi upper folder
14
- throw new MngInternalError('Not implemented', 'RouteUtils error');
14
+ throw new MngInternalError('Not implemented', { name: 'RouteUtilsError' });
15
15
  }
16
16
  else {
17
17
  return RouteUtil.removeEmptyPathSegments([...basePath, ...path]);
@@ -34,4 +34,4 @@ export class RouteUtil {
34
34
  });
35
35
  }
36
36
  }
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUudXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdXRpbHMvcm91dGUudXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxXQUFXLENBQUM7QUFFM0MsTUFBTSxPQUFPLFNBQVM7SUFDWCxNQUFNLENBQUMsdUJBQXVCLENBQUMsSUFBbUI7UUFDckQsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxLQUFLLFFBQVEsSUFBSSxFQUFFLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ2hGLE9BQU8sWUFBWSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRU0sTUFBTSxDQUFDLG9CQUFvQixDQUFDLFFBQXVCLEVBQUUsSUFBbUI7UUFDM0UsSUFBSSxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNqQixJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ3pCLE9BQU8sSUFBSSxDQUFDO2FBQ2Y7aUJBQU0sSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUNsQyxtQ0FBbUM7Z0JBQ25DLE1BQU0sSUFBSSxnQkFBZ0IsQ0FBQyxpQkFBaUIsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO2FBQ3JFO2lCQUFNO2dCQUNILE9BQU8sU0FBUyxDQUFDLHVCQUF1QixDQUFDLENBQUMsR0FBRyxRQUFRLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDO2FBQ3BFO1NBQ0o7YUFBTTtZQUNILE9BQU8sUUFBUSxDQUFDO1NBQ25CO0lBQ0wsQ0FBQztJQUVNLE1BQU0sQ0FBQyxpQ0FBaUMsQ0FBQyxZQUFzQixFQUFFLFlBQTZCO1FBQ2pHLE9BQU8sWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUN4QixNQUFNLGFBQWEsR0FBRyxFQUFDLEdBQUcsQ0FBQyxFQUFDLENBQUM7WUFDN0IsSUFBSSxhQUFhLENBQUMsVUFBVSxFQUFFO2dCQUMxQixhQUFhLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQyxvQkFBb0IsQ0FDckQsWUFBWSxDQUFDLFVBQVUsRUFDdkIsT0FBTyxhQUFhLENBQUMsVUFBVSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQ3ZHLENBQUM7YUFDTDtZQUNELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQ3BDLGFBQWEsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLGlDQUFpQyxDQUFDLFlBQVksRUFBRSxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDbkc7WUFDRCxPQUFPLGFBQWEsQ0FBQztRQUN6QixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TWVudUl0ZW19IGZyb20gJ3ByaW1lbmcvYXBpJztcblxuaW1wb3J0IHtNbmdJbnRlcm5hbEVycm9yfSBmcm9tICcuLi9tb2RlbHMnO1xuXG5leHBvcnQgY2xhc3MgUm91dGVVdGlsIHtcbiAgICBwdWJsaWMgc3RhdGljIHJlbW92ZUVtcHR5UGF0aFNlZ21lbnRzKHBhdGg6IEFycmF5PHN0cmluZz4pIHtcbiAgICAgICAgY29uc3QgZmlsdGVyZWRQYXRoID0gcGF0aC5maWx0ZXIocHMgPT4gdHlwZW9mIHBzID09PSAnc3RyaW5nJyAmJiBwcy5sZW5ndGggPiAwKTtcbiAgICAgICAgcmV0dXJuIGZpbHRlcmVkUGF0aC5sZW5ndGggPiAwID8gZmlsdGVyZWRQYXRoIDogWycnXTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGFwcGVuZFBhdGhUb0Jhc2VQYXRoKGJhc2VQYXRoOiBBcnJheTxzdHJpbmc+LCBwYXRoOiBBcnJheTxzdHJpbmc+KSB7XG4gICAgICAgIGlmIChwYXRoLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGlmIChwYXRoWzBdLnN0YXJ0c1dpdGgoJy8nKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBwYXRoO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChwYXRoWzBdLnN0YXJ0c1dpdGgoJy4uLycpKSB7XG4gICAgICAgICAgICAgICAgLy8gVE9ETzogcHJvY2VzcyBtdWx0aSB1cHBlciBmb2xkZXJcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgTW5nSW50ZXJuYWxFcnJvcignTm90IGltcGxlbWVudGVkJywgJ1JvdXRlVXRpbHMgZXJyb3InKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFJvdXRlVXRpbC5yZW1vdmVFbXB0eVBhdGhTZWdtZW50cyhbLi4uYmFzZVBhdGgsIC4uLnBhdGhdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBiYXNlUGF0aDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgYWRqdXN0TWVudUxhenlDaGlsZHJlblJvdXRlckxpbmtzKHJvb3RNZW51SXRlbTogTWVudUl0ZW0sIGxhenlDaGlsZHJlbjogQXJyYXk8TWVudUl0ZW0+KSB7XG4gICAgICAgIHJldHVybiBsYXp5Q2hpbGRyZW4ubWFwKGkgPT4ge1xuICAgICAgICAgICAgY29uc3QgY2hpbGRNZW51SXRlbSA9IHsuLi5pfTtcbiAgICAgICAgICAgIGlmIChjaGlsZE1lbnVJdGVtLnJvdXRlckxpbmspIHtcbiAgICAgICAgICAgICAgICBjaGlsZE1lbnVJdGVtLnJvdXRlckxpbmsgPSBSb3V0ZVV0aWwuYXBwZW5kUGF0aFRvQmFzZVBhdGgoXG4gICAgICAgICAgICAgICAgICAgIHJvb3RNZW51SXRlbS5yb3V0ZXJMaW5rLFxuICAgICAgICAgICAgICAgICAgICB0eXBlb2YgY2hpbGRNZW51SXRlbS5yb3V0ZXJMaW5rID09PSAnc3RyaW5nJyA/IFtjaGlsZE1lbnVJdGVtLnJvdXRlckxpbmtdIDogY2hpbGRNZW51SXRlbS5yb3V0ZXJMaW5rXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGNoaWxkTWVudUl0ZW0uaXRlbXMpKSB7XG4gICAgICAgICAgICAgICAgY2hpbGRNZW51SXRlbS5pdGVtcyA9IHRoaXMuYWRqdXN0TWVudUxhenlDaGlsZHJlblJvdXRlckxpbmtzKHJvb3RNZW51SXRlbSwgY2hpbGRNZW51SXRlbS5pdGVtcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gY2hpbGRNZW51SXRlbTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUudXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdXRpbHMvcm91dGUudXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxXQUFXLENBQUM7QUFFM0MsTUFBTSxPQUFPLFNBQVM7SUFDWCxNQUFNLENBQUMsdUJBQXVCLENBQUMsSUFBbUI7UUFDckQsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxLQUFLLFFBQVEsSUFBSSxFQUFFLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ2hGLE9BQU8sWUFBWSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRU0sTUFBTSxDQUFDLG9CQUFvQixDQUFDLFFBQXVCLEVBQUUsSUFBbUI7UUFDM0UsSUFBSSxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNqQixJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ3pCLE9BQU8sSUFBSSxDQUFDO2FBQ2Y7aUJBQU0sSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUNsQyxtQ0FBbUM7Z0JBQ25DLE1BQU0sSUFBSSxnQkFBZ0IsQ0FBQyxpQkFBaUIsRUFBRSxFQUFDLElBQUksRUFBRSxpQkFBaUIsRUFBQyxDQUFDLENBQUM7YUFDNUU7aUJBQU07Z0JBQ0gsT0FBTyxTQUFTLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxHQUFHLFFBQVEsRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUM7YUFDcEU7U0FDSjthQUFNO1lBQ0gsT0FBTyxRQUFRLENBQUM7U0FDbkI7SUFDTCxDQUFDO0lBRU0sTUFBTSxDQUFDLGlDQUFpQyxDQUFDLFlBQXNCLEVBQUUsWUFBNkI7UUFDakcsT0FBTyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ3hCLE1BQU0sYUFBYSxHQUFHLEVBQUMsR0FBRyxDQUFDLEVBQUMsQ0FBQztZQUM3QixJQUFJLGFBQWEsQ0FBQyxVQUFVLEVBQUU7Z0JBQzFCLGFBQWEsQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDLG9CQUFvQixDQUNyRCxZQUFZLENBQUMsVUFBVSxFQUN2QixPQUFPLGFBQWEsQ0FBQyxVQUFVLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FDdkcsQ0FBQzthQUNMO1lBQ0QsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDcEMsYUFBYSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsaUNBQWlDLENBQUMsWUFBWSxFQUFFLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUNuRztZQUNELE9BQU8sYUFBYSxDQUFDO1FBQ3pCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtNZW51SXRlbX0gZnJvbSAncHJpbWVuZy9hcGknO1xuXG5pbXBvcnQge01uZ0ludGVybmFsRXJyb3J9IGZyb20gJy4uL21vZGVscyc7XG5cbmV4cG9ydCBjbGFzcyBSb3V0ZVV0aWwge1xuICAgIHB1YmxpYyBzdGF0aWMgcmVtb3ZlRW1wdHlQYXRoU2VnbWVudHMocGF0aDogQXJyYXk8c3RyaW5nPikge1xuICAgICAgICBjb25zdCBmaWx0ZXJlZFBhdGggPSBwYXRoLmZpbHRlcihwcyA9PiB0eXBlb2YgcHMgPT09ICdzdHJpbmcnICYmIHBzLmxlbmd0aCA+IDApO1xuICAgICAgICByZXR1cm4gZmlsdGVyZWRQYXRoLmxlbmd0aCA+IDAgPyBmaWx0ZXJlZFBhdGggOiBbJyddO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgYXBwZW5kUGF0aFRvQmFzZVBhdGgoYmFzZVBhdGg6IEFycmF5PHN0cmluZz4sIHBhdGg6IEFycmF5PHN0cmluZz4pIHtcbiAgICAgICAgaWYgKHBhdGgubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgaWYgKHBhdGhbMF0uc3RhcnRzV2l0aCgnLycpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBhdGg7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHBhdGhbMF0uc3RhcnRzV2l0aCgnLi4vJykpIHtcbiAgICAgICAgICAgICAgICAvLyBUT0RPOiBwcm9jZXNzIG11bHRpIHVwcGVyIGZvbGRlclxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBNbmdJbnRlcm5hbEVycm9yKCdOb3QgaW1wbGVtZW50ZWQnLCB7bmFtZTogJ1JvdXRlVXRpbHNFcnJvcid9KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFJvdXRlVXRpbC5yZW1vdmVFbXB0eVBhdGhTZWdtZW50cyhbLi4uYmFzZVBhdGgsIC4uLnBhdGhdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBiYXNlUGF0aDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgYWRqdXN0TWVudUxhenlDaGlsZHJlblJvdXRlckxpbmtzKHJvb3RNZW51SXRlbTogTWVudUl0ZW0sIGxhenlDaGlsZHJlbjogQXJyYXk8TWVudUl0ZW0+KSB7XG4gICAgICAgIHJldHVybiBsYXp5Q2hpbGRyZW4ubWFwKGkgPT4ge1xuICAgICAgICAgICAgY29uc3QgY2hpbGRNZW51SXRlbSA9IHsuLi5pfTtcbiAgICAgICAgICAgIGlmIChjaGlsZE1lbnVJdGVtLnJvdXRlckxpbmspIHtcbiAgICAgICAgICAgICAgICBjaGlsZE1lbnVJdGVtLnJvdXRlckxpbmsgPSBSb3V0ZVV0aWwuYXBwZW5kUGF0aFRvQmFzZVBhdGgoXG4gICAgICAgICAgICAgICAgICAgIHJvb3RNZW51SXRlbS5yb3V0ZXJMaW5rLFxuICAgICAgICAgICAgICAgICAgICB0eXBlb2YgY2hpbGRNZW51SXRlbS5yb3V0ZXJMaW5rID09PSAnc3RyaW5nJyA/IFtjaGlsZE1lbnVJdGVtLnJvdXRlckxpbmtdIDogY2hpbGRNZW51SXRlbS5yb3V0ZXJMaW5rXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGNoaWxkTWVudUl0ZW0uaXRlbXMpKSB7XG4gICAgICAgICAgICAgICAgY2hpbGRNZW51SXRlbS5pdGVtcyA9IHRoaXMuYWRqdXN0TWVudUxhenlDaGlsZHJlblJvdXRlckxpbmtzKHJvb3RNZW51SXRlbSwgY2hpbGRNZW51SXRlbS5pdGVtcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gY2hpbGRNZW51SXRlbTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19
@@ -1,3 +1,4 @@
1
+ import { DateUtil } from './date.util';
1
2
  import { ObjectUtil } from './object.util';
2
3
  export class StringUtil {
3
4
  static escapeHtml(value) {
@@ -24,5 +25,35 @@ export class StringUtil {
24
25
  }
25
26
  return value;
26
27
  }
28
+ /**
29
+ * Stringifies a value - primitives with toString, dates with dateUtil, objects with JSON.stringify.
30
+ * @param value Any value.
31
+ */
32
+ static stringify(value) {
33
+ if (value === null) {
34
+ return 'null';
35
+ }
36
+ if (typeof value === 'undefined') {
37
+ return 'undefined';
38
+ }
39
+ // eliminate functions, cause they could fall into objects
40
+ if (typeof value === 'function') {
41
+ return `Function ${value.name ?? 'anonymous'}()`;
42
+ }
43
+ if (typeof value === 'object') {
44
+ // date is object, but would like it in ISO string representation
45
+ if (value instanceof Date) {
46
+ return DateUtil.toIsoString(value, false, true, true) ?? 'null';
47
+ }
48
+ try {
49
+ return JSON.stringify(value);
50
+ }
51
+ catch (e) {
52
+ return value.toString();
53
+ }
54
+ }
55
+ // only primitives should be left to be printed like this (string, number, boolean)
56
+ return value.toString();
57
+ }
27
58
  }
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5nLnV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3V0aWxzL3N0cmluZy51dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFekMsTUFBTSxPQUFPLFVBQVU7SUFDWixNQUFNLENBQUMsVUFBVSxDQUFDLEtBQWE7UUFDbEMsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFTSxNQUFNLENBQUMsYUFBYSxDQUFDLEtBQVc7UUFDbkMsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUU7WUFDM0IsT0FBTyxVQUFVLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3ZDO2FBQU0sSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUU7WUFDbEMsTUFBTSxZQUFZLEdBQVEsVUFBVSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsRUFBQyxzQkFBc0IsRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDO1lBRXJGLEtBQUssTUFBTSxHQUFHLElBQUksS0FBSyxFQUFFO2dCQUNyQixJQUFJLE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLFFBQVEsRUFBRTtvQkFDaEMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7aUJBQ3pEO3FCQUFNLElBQUksT0FBTyxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssUUFBUSxFQUFFO29CQUN2QyxZQUFZLENBQUMsR0FBRyxDQUFDLEdBQUcsVUFBVSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztpQkFDNUQ7cUJBQU07b0JBQ0gsWUFBWSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztpQkFDbEM7YUFDSjtZQUNELE9BQU8sWUFBWSxDQUFDO1NBQ3ZCO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtPYmplY3RVdGlsfSBmcm9tICcuL29iamVjdC51dGlsJztcblxuZXhwb3J0IGNsYXNzIFN0cmluZ1V0aWwge1xuICAgIHB1YmxpYyBzdGF0aWMgZXNjYXBlSHRtbCh2YWx1ZTogc3RyaW5nKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHZhbHVlLnJlcGxhY2UoLzwvZywgJyZsdDsnKS5yZXBsYWNlKC8+L2csICcmZ3Q7Jyk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBlc2NhcGVIdG1sQW55KHZhbHVlPzogYW55KTogYW55IHtcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHJldHVybiBTdHJpbmdVdGlsLmVzY2FwZUh0bWwodmFsdWUpO1xuICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgIGNvbnN0IGVzY2FwZWRWYWx1ZTogYW55ID0gT2JqZWN0VXRpbC5kZWVwQ29weSh2YWx1ZSwge21hcEdldHRlcnNUb1Byb3BlcnRpZXM6IHRydWV9KTtcblxuICAgICAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gdmFsdWUpIHtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHZhbHVlW2tleV0gPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgICAgIGVzY2FwZWRWYWx1ZVtrZXldID0gU3RyaW5nVXRpbC5lc2NhcGVIdG1sKHZhbHVlW2tleV0pO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlW2tleV0gPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICAgICAgICAgIGVzY2FwZWRWYWx1ZVtrZXldID0gU3RyaW5nVXRpbC5lc2NhcGVIdG1sQW55KHZhbHVlW2tleV0pO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGVzY2FwZWRWYWx1ZVtrZXldID0gdmFsdWVba2V5XTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZXNjYXBlZFZhbHVlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cbn1cbiJdfQ==
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5nLnV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3V0aWxzL3N0cmluZy51dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxhQUFhLENBQUM7QUFDckMsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUV6QyxNQUFNLE9BQU8sVUFBVTtJQUNaLE1BQU0sQ0FBQyxVQUFVLENBQUMsS0FBYTtRQUNsQyxPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVNLE1BQU0sQ0FBQyxhQUFhLENBQUMsS0FBVztRQUNuQyxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtZQUMzQixPQUFPLFVBQVUsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDdkM7YUFBTSxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtZQUNsQyxNQUFNLFlBQVksR0FBUSxVQUFVLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxFQUFDLHNCQUFzQixFQUFFLElBQUksRUFBQyxDQUFDLENBQUM7WUFFckYsS0FBSyxNQUFNLEdBQUcsSUFBSSxLQUFLLEVBQUU7Z0JBQ3JCLElBQUksT0FBTyxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssUUFBUSxFQUFFO29CQUNoQyxZQUFZLENBQUMsR0FBRyxDQUFDLEdBQUcsVUFBVSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztpQkFDekQ7cUJBQU0sSUFBSSxPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxRQUFRLEVBQUU7b0JBQ3ZDLFlBQVksQ0FBQyxHQUFHLENBQUMsR0FBRyxVQUFVLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2lCQUM1RDtxQkFBTTtvQkFDSCxZQUFZLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2lCQUNsQzthQUNKO1lBQ0QsT0FBTyxZQUFZLENBQUM7U0FDdkI7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFVO1FBQzlCLElBQUksS0FBSyxLQUFLLElBQUksRUFBRTtZQUNoQixPQUFPLE1BQU0sQ0FBQztTQUNqQjtRQUNELElBQUksT0FBTyxLQUFLLEtBQUssV0FBVyxFQUFFO1lBQzlCLE9BQU8sV0FBVyxDQUFDO1NBQ3RCO1FBQ0QsMERBQTBEO1FBQzFELElBQUksT0FBTyxLQUFLLEtBQUssVUFBVSxFQUFFO1lBQzdCLE9BQU8sWUFBWSxLQUFLLENBQUMsSUFBSSxJQUFJLFdBQVcsSUFBSSxDQUFDO1NBQ3BEO1FBQ0QsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUU7WUFDM0IsaUVBQWlFO1lBQ2pFLElBQUksS0FBSyxZQUFZLElBQUksRUFBRTtnQkFDdkIsT0FBTyxRQUFRLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLE1BQU0sQ0FBQzthQUNuRTtZQUNELElBQUk7Z0JBQ0EsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ2hDO1lBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQ1IsT0FBTyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7YUFDM0I7U0FDSjtRQUNELG1GQUFtRjtRQUNuRixPQUFPLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM1QixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RhdGVVdGlsfSBmcm9tICcuL2RhdGUudXRpbCc7XG5pbXBvcnQge09iamVjdFV0aWx9IGZyb20gJy4vb2JqZWN0LnV0aWwnO1xuXG5leHBvcnQgY2xhc3MgU3RyaW5nVXRpbCB7XG4gICAgcHVibGljIHN0YXRpYyBlc2NhcGVIdG1sKHZhbHVlOiBzdHJpbmcpOiBhbnkge1xuICAgICAgICByZXR1cm4gdmFsdWUucmVwbGFjZSgvPC9nLCAnJmx0OycpLnJlcGxhY2UoLz4vZywgJyZndDsnKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGVzY2FwZUh0bWxBbnkodmFsdWU/OiBhbnkpOiBhbnkge1xuICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgcmV0dXJuIFN0cmluZ1V0aWwuZXNjYXBlSHRtbCh2YWx1ZSk7XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgY29uc3QgZXNjYXBlZFZhbHVlOiBhbnkgPSBPYmplY3RVdGlsLmRlZXBDb3B5KHZhbHVlLCB7bWFwR2V0dGVyc1RvUHJvcGVydGllczogdHJ1ZX0pO1xuXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiB2YWx1ZSkge1xuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWVba2V5XSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICAgICAgZXNjYXBlZFZhbHVlW2tleV0gPSBTdHJpbmdVdGlsLmVzY2FwZUh0bWwodmFsdWVba2V5XSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgdmFsdWVba2V5XSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgICAgICAgICAgZXNjYXBlZFZhbHVlW2tleV0gPSBTdHJpbmdVdGlsLmVzY2FwZUh0bWxBbnkodmFsdWVba2V5XSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgZXNjYXBlZFZhbHVlW2tleV0gPSB2YWx1ZVtrZXldO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBlc2NhcGVkVmFsdWU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU3RyaW5naWZpZXMgYSB2YWx1ZSAtIHByaW1pdGl2ZXMgd2l0aCB0b1N0cmluZywgZGF0ZXMgd2l0aCBkYXRlVXRpbCwgb2JqZWN0cyB3aXRoIEpTT04uc3RyaW5naWZ5LlxuICAgICAqIEBwYXJhbSB2YWx1ZSBBbnkgdmFsdWUuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBzdHJpbmdpZnkodmFsdWU6IGFueSk6IHN0cmluZyB7XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuICdudWxsJztcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgcmV0dXJuICd1bmRlZmluZWQnO1xuICAgICAgICB9XG4gICAgICAgIC8vIGVsaW1pbmF0ZSBmdW5jdGlvbnMsIGNhdXNlIHRoZXkgY291bGQgZmFsbCBpbnRvIG9iamVjdHNcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgcmV0dXJuIGBGdW5jdGlvbiAke3ZhbHVlLm5hbWUgPz8gJ2Fub255bW91cyd9KClgO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICAvLyBkYXRlIGlzIG9iamVjdCwgYnV0IHdvdWxkIGxpa2UgaXQgaW4gSVNPIHN0cmluZyByZXByZXNlbnRhdGlvblxuICAgICAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBEYXRlVXRpbC50b0lzb1N0cmluZyh2YWx1ZSwgZmFsc2UsIHRydWUsIHRydWUpID8/ICdudWxsJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHZhbHVlKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUudG9TdHJpbmcoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyBvbmx5IHByaW1pdGl2ZXMgc2hvdWxkIGJlIGxlZnQgdG8gYmUgcHJpbnRlZCBsaWtlIHRoaXMgKHN0cmluZywgbnVtYmVyLCBib29sZWFuKVxuICAgICAgICByZXR1cm4gdmFsdWUudG9TdHJpbmcoKTtcbiAgICB9XG59XG4iXX0=
@@ -17,7 +17,7 @@ export class TableviewUtil {
17
17
  */
18
18
  static expandAttributeDefWithTableviewTypes(attributes) {
19
19
  if (attributes == null) {
20
- throw new MngInternalError('AttributeDef is null, problem with ObjectSerializer::findAttributesDefinitionByClassType?', 'TableViewUtils error');
20
+ throw new MngInternalError('AttributeDef is null, problem with ObjectSerializer::findAttributesDefinitionByClassType?', { name: 'TableViewUtilsError' });
21
21
  }
22
22
  const objectSerializer = ObjectSerializer.get();
23
23
  const tableviewAttributeDef = [];
@@ -190,4 +190,4 @@ export class TableviewUtil {
190
190
  return flatten(objectModel);
191
191
  }
192
192
  }
193
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGV2aWV3LnV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3V0aWxzL3RhYmxldmlldy51dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLGNBQWMsQ0FBQztBQUU5QyxPQUFPLEVBQUMscUJBQXFCLEVBQUUsY0FBYyxFQUFFLGtCQUFrQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDL0YsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sV0FBVyxDQUFDO0FBSTNDLE1BQU0sT0FBTyxhQUFhO2FBQ1AsZUFBVSxHQUFHLHNCQUFzQixDQUFDO2FBQ3BDLG1CQUFjLEdBQUcsd0hBQXdILENBQUM7SUFFeko7OztPQUdHO0lBQ0ksTUFBTSxDQUFDLGtCQUFrQixDQUFJLFNBQXVCO1FBQ3ZELE9BQU8sYUFBYSxDQUFDLG9DQUFvQyxDQUFDLGdCQUFnQixDQUFDLEdBQUcsRUFBRSxDQUFDLG1DQUFtQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFDckksQ0FBQztJQUVEOzs7T0FHRztJQUNJLE1BQU0sQ0FBQyxvQ0FBb0MsQ0FBQyxVQUF1QztRQUN0RixJQUFJLFVBQVUsSUFBSSxJQUFJLEVBQUU7WUFDcEIsTUFBTSxJQUFJLGdCQUFnQixDQUFDLDJGQUEyRixFQUFFLHNCQUFzQixDQUFDLENBQUM7U0FDbko7UUFDRCxNQUFNLGdCQUFnQixHQUFHLGdCQUFnQixDQUFDLEdBQUcsRUFBRSxDQUFDO1FBRWhELE1BQU0scUJBQXFCLEdBQTRCLEVBQUUsQ0FBQztRQUUxRCxLQUFLLE1BQU0sU0FBUyxJQUFJLFVBQVUsRUFBRTtZQUNoQyxNQUFNLFFBQVEsR0FBRyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzNELE1BQU0sVUFBVSxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDL0YscUJBQXFCLENBQUMsSUFBSSxDQUFDO2dCQUN2QixJQUFJLEVBQUUsU0FBUyxDQUFDLElBQUk7Z0JBQ3BCLFFBQVEsRUFBRSxTQUFTLENBQUMsUUFBUTtnQkFDNUIsSUFBSSxFQUFFLFNBQVMsQ0FBQyxJQUFJO2dCQUNwQixVQUFVLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUM7Z0JBQ3ZGLGlCQUFpQixFQUFFLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQztnQkFDaEYsU0FBUyxFQUFFLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDO2dCQUN6RCxRQUFRLEVBQUUsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQWE7Z0JBQy9ELFNBQVMsRUFBRSxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBbUI7YUFDekUsQ0FBQyxDQUFDO1NBQ047UUFFRCxPQUFPLHFCQUFxQixDQUFDO0lBQ2pDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLHFCQUFxQixDQUFDLE1BQWtDLEVBQUUsS0FBVTtRQUM5RSxJQUFJLE9BQU8sS0FBSyxLQUFLLFNBQVMsRUFBRTtZQUM1QixPQUFPLE1BQU0sQ0FBQyxTQUFTLEVBQUUsQ0FBQztTQUM3QjthQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFO1lBQ25ELE9BQU8sTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDO1NBQzVCO2FBQU0sSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNwQyxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUNqQyxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQzthQUM5QztZQUNELE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztTQUN4QzthQUFNO1lBQ0gsT0FBTyxNQUFNLENBQUM7U0FDakI7SUFDTCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksTUFBTSxDQUFDLFlBQVksQ0FBQyxZQUFvQjtRQUMzQyxNQUFNLEVBQUUsR0FBRyxnQkFBZ0IsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNsQyxJQUFJLEVBQUUsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFhLEVBQUU7WUFDdkMsWUFBWSxHQUFHLE1BQU0sQ0FBQztTQUN6QjthQUFNLElBQUksRUFBRSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQW1CLEVBQUU7WUFDcEQsWUFBWSxHQUFHLE9BQU8sQ0FBQztTQUMxQjtRQUVELFFBQVEsWUFBWSxDQUFDLFdBQVcsRUFBRSxFQUFFO1lBQ2hDLEtBQUssUUFBUSxDQUFDO1lBQ2QsS0FBSyxVQUFVO2dCQUNYLE9BQU8sY0FBYyxDQUFDLE1BQU0sQ0FBQztZQUNqQyxLQUFLLFNBQVM7Z0JBQ1YsT0FBTyxjQUFjLENBQUMsT0FBTyxDQUFDO1lBQ2xDLEtBQUssTUFBTTtnQkFDUCxPQUFPLGNBQWMsQ0FBQyxJQUFJLENBQUM7WUFDL0IsS0FBSyxNQUFNO2dCQUNQLE9BQU8sY0FBYyxDQUFDLElBQUksQ0FBQztZQUMvQixLQUFLLFFBQVE7Z0JBQ1QsT0FBTyxjQUFjLENBQUMsTUFBTSxDQUFDO1lBQ2pDLEtBQUssT0FBTztnQkFDUixPQUFPLGNBQWMsQ0FBQyxNQUFNLENBQUM7WUFDakMsS0FBSyxRQUFRLENBQUM7WUFDZDtnQkFDSSxPQUFPLGNBQWMsQ0FBQyxNQUFNLENBQUM7U0FDcEM7SUFDTCxDQUFDO0lBRU0sTUFBTSxDQUFDLG1CQUFtQixDQUFDLFVBQTBCLEVBQUUsWUFBb0I7UUFDOUUsUUFBUSxVQUFVLEVBQUU7WUFDaEIsS0FBSyxjQUFjLENBQUMsTUFBTTtnQkFDdEIsT0FBTyxZQUFZLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixDQUFDLE1BQU0sQ0FBQztZQUN2RyxLQUFLLGNBQWMsQ0FBQyxPQUFPO2dCQUN2QixPQUFPLHFCQUFxQixDQUFDLE9BQU8sQ0FBQztZQUN6QyxLQUFLLGNBQWMsQ0FBQyxJQUFJO2dCQUNwQixPQUFPLHFCQUFxQixDQUFDLElBQUksQ0FBQztZQUN0QyxLQUFLLGNBQWMsQ0FBQyxJQUFJO2dCQUNwQixPQUFPLHFCQUFxQixDQUFDLElBQUksQ0FBQztZQUN0QyxLQUFLLGNBQWMsQ0FBQyxNQUFNO2dCQUN0QixPQUFPLHFCQUFxQixDQUFDLFNBQVMsQ0FBQztZQUMzQyxLQUFLLGNBQWMsQ0FBQyxNQUFNLENBQUM7WUFDM0I7Z0JBQ0ksT0FBTyxxQkFBcUIsQ0FBQyxNQUFNLENBQUM7U0FDM0M7SUFDTCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksTUFBTSxDQUFDLGdCQUFnQixDQUFDLFFBQWdCO1FBQzNDLFFBQVEsUUFBUSxFQUFFO1lBQ2QsS0FBSyxRQUFRO2dCQUNULE9BQU8sa0JBQWtCLENBQUMsTUFBTSxDQUFDO1lBQ3JDLEtBQUssT0FBTztnQkFDUixPQUFPLGtCQUFrQixDQUFDLEtBQUssQ0FBQztZQUNwQyxLQUFLLFVBQVU7Z0JBQ1gsT0FBTyxrQkFBa0IsQ0FBQyxRQUFRLENBQUM7WUFDdkMsS0FBSyxRQUFRO2dCQUNULE9BQU8sa0JBQWtCLENBQUMsTUFBTSxDQUFDO1lBQ3JDLEtBQUssVUFBVTtnQkFDWCxPQUFPLGtCQUFrQixDQUFDLFFBQVEsQ0FBQztZQUN2QyxLQUFLLFFBQVEsQ0FBQztZQUNkLEtBQUssU0FBUztnQkFDVixPQUFPLGtCQUFrQixDQUFDLE1BQU0sQ0FBQztZQUNyQyxLQUFLLE9BQU87Z0JBQ1IsT0FBTyxrQkFBa0IsQ0FBQyxLQUFLLENBQUM7WUFDcEMsS0FBSyxZQUFZO2dCQUNiLE9BQU8sa0JBQWtCLENBQUMsVUFBVSxDQUFDO1lBQ3pDLEtBQUssTUFBTTtnQkFDUCxPQUFPLGtCQUFrQixDQUFDLElBQUksQ0FBQztZQUNuQyxLQUFLLE1BQU07Z0JBQ1AsT0FBTyxrQkFBa0IsQ0FBQyxJQUFJLENBQUM7WUFDbkMsS0FBSyxRQUFRO2dCQUNULE9BQU8sa0JBQWtCLENBQUMsTUFBTSxDQUFDO1lBQ3JDLEtBQUssTUFBTSxDQUFDO1lBQ1o7Z0JBQ0ksT0FBTyxrQkFBa0IsQ0FBQyxJQUFJLENBQUM7U0FDdEM7SUFDTCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBQyw4QkFBOEIsQ0FBQyxJQUFvQixFQUFFLFdBQW1DO1FBQ2xHLFFBQVEsSUFBSSxFQUFFO1lBQ1YsS0FBSyxjQUFjLENBQUMsTUFBTTtnQkFDdEIsT0FBTyxXQUFXLEtBQUsscUJBQXFCLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQztZQUNwSCxLQUFLLGNBQWMsQ0FBQyxPQUFPO2dCQUN2QixPQUFPLGtCQUFrQixDQUFDLE1BQU0sQ0FBQztZQUNyQyxLQUFLLGNBQWMsQ0FBQyxJQUFJO2dCQUNwQixPQUFPLGtCQUFrQixDQUFDLFVBQVUsQ0FBQztZQUN6QyxLQUFLLGNBQWMsQ0FBQyxNQUFNO2dCQUN0QixPQUFPLGtCQUFrQixDQUFDLE1BQU0sQ0FBQztZQUNyQyxLQUFLLGNBQWMsQ0FBQyxNQUFNLENBQUM7WUFDM0IsS0FBSyxjQUFjLENBQUMsSUFBSSxDQUFDO1lBQ3pCO2dCQUNJLE9BQU8sa0JBQWtCLENBQUMsSUFBSSxDQUFDO1NBQ3RDO0lBQ0wsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksTUFBTSxDQUFDLDJCQUEyQixDQUFDLFFBQWdCLEVBQUUsR0FBVyxFQUFFLE9BQWdCO1FBQ3JGLE9BQU8sZ0JBQWdCLFFBQVEsS0FBSyxPQUFPLElBQUksR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUNyRixDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNLENBQUMsYUFBYSxDQUFDLFdBQWdCO1FBQ3hDLE1BQU0sUUFBUSxHQUFHLENBQUMsS0FBVSxFQUFFLEVBQUU7WUFDNUIsT0FBTyxDQUFDLENBQUMsS0FBSyxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekUsQ0FBQyxDQUFDO1FBRUYsTUFBTSxPQUFPLEdBQUcsQ0FBQyxNQUFXLEVBQUUsTUFBWSxFQUFFLEVBQUU7WUFDMUMsSUFBSSxPQUFPLEdBQVUsRUFBRSxDQUFDO1lBQ3hCLEtBQUssTUFBTSxHQUFHLElBQUksTUFBTSxFQUFFO2dCQUN0QixNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQzFCLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxNQUFNLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUM7Z0JBRXZELE9BQU8sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsT0FBTyxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ2pHO1lBQ0QsT0FBTyxPQUFPLENBQUM7UUFDbkIsQ0FBQyxDQUFDO1FBRUYsT0FBTyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDaEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QXR0cmlidXRlRGVmfSBmcm9tICcuLi9hcGkvbW9kZWxzJztcbmltcG9ydCB7T2JqZWN0U2VyaWFsaXplcn0gZnJvbSAnLi4vYXBpL3V0aWxzJztcbmltcG9ydCB7Q29sdW1uRGVzY3JpcHRvcn0gZnJvbSAnLi4vZGVzY3JpcHRvcnMvdGFibGUnO1xuaW1wb3J0IHtDb2x1bW5EaXNwbGF5VHlwZUVudW0sIENvbHVtblR5cGVFbnVtLCBGaWVsZElucHV0VHlwZUVudW19IGZyb20gJy4uL2Rlc2NyaXB0b3JzL3R5cGVzJztcbmltcG9ydCB7TW5nSW50ZXJuYWxFcnJvcn0gZnJvbSAnLi4vbW9kZWxzJztcbmltcG9ydCB7VGFibGV2aWV3QXR0cmlidXRlRGVmfSBmcm9tICcuLi9tb2RlbHMvdGFibGV2aWV3LWF0dHIubW9kZWwnO1xuaW1wb3J0IHtDbGFzc1R5cGUsIEVudW1UeXBlfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjbGFzcyBUYWJsZXZpZXdVdGlsIHtcbiAgICBwcml2YXRlIHN0YXRpYyBfZGF0ZVJlZ2V4ID0gL1xcZHs0fS1bMDFdXFxkLVswLTNdXFxkLztcbiAgICBwcml2YXRlIHN0YXRpYyBfZGF0ZVRpbWVSZWdleCA9IC9cXGR7NH0tWzAxXVxcZC1bMC0zXVxcZFQoWzAtMl1cXGQ6WzAtNV1cXGQ6WzAtNV1cXGRcXC5cXGQrKFsrLV1bMC0yXVxcZDpbMC01XVxcZHxaPyl8KFswLTJdXFxkOlswLTVdXFxkOlswLTVdXFxkXFwrWzAtMl1cXGQ6WzAtNV1cXGQpKS87XG5cbiAgICAvKipcbiAgICAgKiByZXR1cm5zIGF0dHJpYnV0ZXMgZnJvbSBjbGFzcyB0eXBlIGFuZCBleHRlbmRzIHRvIHR5cGVkIGRlZiB3aXRoIGNvbHVtbiBhbmQgZmllbGQgZW51bSB0eXBlXG4gICAgICogQHBhcmFtIG1vZGVsVHlwZSBjbGFzcyB0eXBlXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBnZXRBdHRyaWJ1dGVEZWZNYXA8VD4obW9kZWxUeXBlOiBDbGFzc1R5cGU8VD4pOiBUYWJsZXZpZXdBdHRyaWJ1dGVEZWZbXSB7XG4gICAgICAgIHJldHVybiBUYWJsZXZpZXdVdGlsLmV4cGFuZEF0dHJpYnV0ZURlZldpdGhUYWJsZXZpZXdUeXBlcyhPYmplY3RTZXJpYWxpemVyLmdldCgpLmZpbmRBdHRyaWJ1dGVzRGVmaW5pdGlvbkJ5Q2xhc3NUeXBlKG1vZGVsVHlwZSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGV4cGFuZHMgQXR0cmlidXRlRGVmIHRvIFRhYmxldmlld0F0dHJpYnV0ZURlZiB3aXRoIGRlZmluZWQgaW5wdXQgYW5kIGNvbHVtbiBlbnVtIHR5cGVcbiAgICAgKiBAcGFyYW0gYXR0cmlidXRlcyBvcGVuIGFwaSBzcGVjaWZpY2F0aW9uIG1vZGVsXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBleHBhbmRBdHRyaWJ1dGVEZWZXaXRoVGFibGV2aWV3VHlwZXMoYXR0cmlidXRlcz86IEFycmF5PEF0dHJpYnV0ZURlZj4gfCBudWxsKTogVGFibGV2aWV3QXR0cmlidXRlRGVmW10ge1xuICAgICAgICBpZiAoYXR0cmlidXRlcyA9PSBudWxsKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgTW5nSW50ZXJuYWxFcnJvcignQXR0cmlidXRlRGVmIGlzIG51bGwsIHByb2JsZW0gd2l0aCBPYmplY3RTZXJpYWxpemVyOjpmaW5kQXR0cmlidXRlc0RlZmluaXRpb25CeUNsYXNzVHlwZT8nLCAnVGFibGVWaWV3VXRpbHMgZXJyb3InKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBvYmplY3RTZXJpYWxpemVyID0gT2JqZWN0U2VyaWFsaXplci5nZXQoKTtcblxuICAgICAgICBjb25zdCB0YWJsZXZpZXdBdHRyaWJ1dGVEZWY6IFRhYmxldmlld0F0dHJpYnV0ZURlZltdID0gW107XG5cbiAgICAgICAgZm9yIChjb25zdCBhdHRyaWJ1dGUgb2YgYXR0cmlidXRlcykge1xuICAgICAgICAgICAgY29uc3QgZW51bVR5cGUgPSBvYmplY3RTZXJpYWxpemVyLmZpbmRFbnVtKGF0dHJpYnV0ZS50eXBlKTtcbiAgICAgICAgICAgIGNvbnN0IGNvbHVtblR5cGUgPSBlbnVtVHlwZSA/IENvbHVtblR5cGVFbnVtLkVudW0gOiBUYWJsZXZpZXdVdGlsLnRvQ29sdW1uVHlwZShhdHRyaWJ1dGUudHlwZSk7XG4gICAgICAgICAgICB0YWJsZXZpZXdBdHRyaWJ1dGVEZWYucHVzaCh7XG4gICAgICAgICAgICAgICAgbmFtZTogYXR0cmlidXRlLm5hbWUsXG4gICAgICAgICAgICAgICAgYmFzZU5hbWU6IGF0dHJpYnV0ZS5iYXNlTmFtZSxcbiAgICAgICAgICAgICAgICB0eXBlOiBhdHRyaWJ1dGUudHlwZSxcbiAgICAgICAgICAgICAgICBjb2x1bW5UeXBlOiBlbnVtVHlwZSA/IENvbHVtblR5cGVFbnVtLkVudW0gOiBUYWJsZXZpZXdVdGlsLnRvQ29sdW1uVHlwZShhdHRyaWJ1dGUudHlwZSksXG4gICAgICAgICAgICAgICAgY29sdW1uRGlzcGxheVR5cGU6IFRhYmxldmlld1V0aWwudG9Db2x1bW5EaXNwbGF5VHlwZShjb2x1bW5UeXBlLCBhdHRyaWJ1dGUudHlwZSksXG4gICAgICAgICAgICAgICAgZmllbGRUeXBlOiBUYWJsZXZpZXdVdGlsLnRvRmllbGRJbnB1dFR5cGUoYXR0cmlidXRlLnR5cGUpLFxuICAgICAgICAgICAgICAgIGVudW1UeXBlOiBvYmplY3RTZXJpYWxpemVyLmZpbmRFbnVtKGF0dHJpYnV0ZS50eXBlKSBhcyBFbnVtVHlwZSxcbiAgICAgICAgICAgICAgICBjbGFzc1R5cGU6IG9iamVjdFNlcmlhbGl6ZXIuZmluZFR5cGUoYXR0cmlidXRlLnR5cGUpIGFzIENsYXNzVHlwZTxhbnk+XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0YWJsZXZpZXdBdHRyaWJ1dGVEZWY7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogY29udmVydHMgY29sdW1uIHRvIG51bWJlciBvciBkYXRlIG9uIHZhbHVlIGJhc2VkXG4gICAgICogQHBhcmFtIGNvbHVtbiBjb2x1bW4gdG8gYmUgdHJhbnNmb3JtZWRcbiAgICAgKiBAcGFyYW0gdmFsdWUgdmFsdWUgdG8gY2hlY2sgaWYgYXBwbGljYWJsZVxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgc3RyaW5nQ29sdW1uQ29udmVydGVyKGNvbHVtbjogQ29sdW1uRGVzY3JpcHRvcjxhbnksIGFueT4sIHZhbHVlOiBhbnkpOiBDb2x1bW5EZXNjcmlwdG9yPGFueSwgYW55PiB7XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdib29sZWFuJykge1xuICAgICAgICAgICAgcmV0dXJuIGNvbHVtbi5hc0Jvb2xlYW4oKTtcbiAgICAgICAgfSBlbHNlIGlmICghaXNOYU4odmFsdWUpICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICAgIHJldHVybiBjb2x1bW4uYXNOdW1iZXIoKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLl9kYXRlUmVnZXgudGVzdCh2YWx1ZSkpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLl9kYXRlVGltZVJlZ2V4LnRlc3QodmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNvbHVtbi5hc0RhdGUoJ2RkLiBNTU0geXl5eSBISDptbScpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGNvbHVtbi5hc0RhdGUoJ2RkLiBNTU0geXl5eScpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGNvbHVtbjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGNvbnZlcnRzIHN0cmluZyB0eXBlIHRvIGNvbHVtbiB0eXBlIGVudW0sIGRlZmF1bHQgaXMgc3RyaW5nXG4gICAgICogQHBhcmFtIHByb3BlcnR5VHlwZVxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgdG9Db2x1bW5UeXBlKHByb3BlcnR5VHlwZTogc3RyaW5nKTogQ29sdW1uVHlwZUVudW0ge1xuICAgICAgICBjb25zdCBvcyA9IE9iamVjdFNlcmlhbGl6ZXIuZ2V0KCk7XG4gICAgICAgIGlmIChvcy5maW5kRW51bShwcm9wZXJ0eVR5cGUpIGFzIEVudW1UeXBlKSB7XG4gICAgICAgICAgICBwcm9wZXJ0eVR5cGUgPSAnZW51bSc7XG4gICAgICAgIH0gZWxzZSBpZiAob3MuZmluZFR5cGUocHJvcGVydHlUeXBlKSBhcyBDbGFzc1R5cGU8YW55Pikge1xuICAgICAgICAgICAgcHJvcGVydHlUeXBlID0gJ2NsYXNzJztcbiAgICAgICAgfVxuXG4gICAgICAgIHN3aXRjaCAocHJvcGVydHlUeXBlLnRvTG93ZXJDYXNlKCkpIHtcbiAgICAgICAgICAgIGNhc2UgJ251bWJlcic6XG4gICAgICAgICAgICBjYXNlICdjdXJyZW5jeSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIENvbHVtblR5cGVFbnVtLk51bWJlcjtcbiAgICAgICAgICAgIGNhc2UgJ2Jvb2xlYW4nOlxuICAgICAgICAgICAgICAgIHJldHVybiBDb2x1bW5UeXBlRW51bS5Cb29sZWFuO1xuICAgICAgICAgICAgY2FzZSAnZGF0ZSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIENvbHVtblR5cGVFbnVtLkRhdGU7XG4gICAgICAgICAgICBjYXNlICdlbnVtJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gQ29sdW1uVHlwZUVudW0uRW51bTtcbiAgICAgICAgICAgIGNhc2UgJ2N1c3RvbSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIENvbHVtblR5cGVFbnVtLkN1c3RvbTtcbiAgICAgICAgICAgIGNhc2UgJ2NsYXNzJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gQ29sdW1uVHlwZUVudW0uU3RyaW5nO1xuICAgICAgICAgICAgY2FzZSAnc3RyaW5nJzpcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIENvbHVtblR5cGVFbnVtLlN0cmluZztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgdG9Db2x1bW5EaXNwbGF5VHlwZShjb2x1bW5UeXBlOiBDb2x1bW5UeXBlRW51bSwgcHJvcGVydHlUeXBlOiBzdHJpbmcpOiBDb2x1bW5EaXNwbGF5VHlwZUVudW0ge1xuICAgICAgICBzd2l0Y2ggKGNvbHVtblR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgQ29sdW1uVHlwZUVudW0uTnVtYmVyOlxuICAgICAgICAgICAgICAgIHJldHVybiBwcm9wZXJ0eVR5cGUgPT09ICdjdXJyZW5jeScgPyBDb2x1bW5EaXNwbGF5VHlwZUVudW0uQ3VycmVuY3kgOiBDb2x1bW5EaXNwbGF5VHlwZUVudW0uTnVtYmVyO1xuICAgICAgICAgICAgY2FzZSBDb2x1bW5UeXBlRW51bS5Cb29sZWFuOlxuICAgICAgICAgICAgICAgIHJldHVybiBDb2x1bW5EaXNwbGF5VHlwZUVudW0uQm9vbGVhbjtcbiAgICAgICAgICAgIGNhc2UgQ29sdW1uVHlwZUVudW0uRGF0ZTpcbiAgICAgICAgICAgICAgICByZXR1cm4gQ29sdW1uRGlzcGxheVR5cGVFbnVtLkRhdGU7XG4gICAgICAgICAgICBjYXNlIENvbHVtblR5cGVFbnVtLkVudW06XG4gICAgICAgICAgICAgICAgcmV0dXJuIENvbHVtbkRpc3BsYXlUeXBlRW51bS5FbnVtO1xuICAgICAgICAgICAgY2FzZSBDb2x1bW5UeXBlRW51bS5DdXN0b206XG4gICAgICAgICAgICAgICAgcmV0dXJuIENvbHVtbkRpc3BsYXlUeXBlRW51bS5Db21wb25lbnQ7XG4gICAgICAgICAgICBjYXNlIENvbHVtblR5cGVFbnVtLlN0cmluZzpcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIENvbHVtbkRpc3BsYXlUeXBlRW51bS5TdHJpbmc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBjb252ZXJ0cyBzdHJpbmcgdHlwZSB0byB0eXBlIGVudW0sIGRlZmF1bHQgaXMgdGV4dFxuICAgICAqIEBwYXJhbSBwcm9wZXJ0eVxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgdG9GaWVsZElucHV0VHlwZShwcm9wZXJ0eTogc3RyaW5nKTogRmllbGRJbnB1dFR5cGVFbnVtIHtcbiAgICAgICAgc3dpdGNoIChwcm9wZXJ0eSkge1xuICAgICAgICAgICAgY2FzZSAnaGlkZGVuJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gRmllbGRJbnB1dFR5cGVFbnVtLkhpZGRlbjtcbiAgICAgICAgICAgIGNhc2UgJ2xhYmVsJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gRmllbGRJbnB1dFR5cGVFbnVtLkxhYmVsO1xuICAgICAgICAgICAgY2FzZSAndGV4dGFyZWEnOlxuICAgICAgICAgICAgICAgIHJldHVybiBGaWVsZElucHV0VHlwZUVudW0uVGV4dGFyZWE7XG4gICAgICAgICAgICBjYXNlICdudW1iZXInOlxuICAgICAgICAgICAgICAgIHJldHVybiBGaWVsZElucHV0VHlwZUVudW0uTnVtYmVyO1xuICAgICAgICAgICAgY2FzZSAnY3VycmVuY3knOlxuICAgICAgICAgICAgICAgIHJldHVybiBGaWVsZElucHV0VHlwZUVudW0uQ3VycmVuY3k7XG4gICAgICAgICAgICBjYXNlICdzd2l0Y2gnOlxuICAgICAgICAgICAgY2FzZSAnYm9vbGVhbic6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEZpZWxkSW5wdXRUeXBlRW51bS5Td2l0Y2g7XG4gICAgICAgICAgICBjYXNlICdyYWRpbyc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEZpZWxkSW5wdXRUeXBlRW51bS5SYWRpbztcbiAgICAgICAgICAgIGNhc2UgJ2RhdGVwaWNrZXInOlxuICAgICAgICAgICAgICAgIHJldHVybiBGaWVsZElucHV0VHlwZUVudW0uRGF0ZXBpY2tlcjtcbiAgICAgICAgICAgIGNhc2UgJ21hc2snOlxuICAgICAgICAgICAgICAgIHJldHVybiBGaWVsZElucHV0VHlwZUVudW0uTWFzaztcbiAgICAgICAgICAgIGNhc2UgJ2ZpbGUnOlxuICAgICAgICAgICAgICAgIHJldHVybiBGaWVsZElucHV0VHlwZUVudW0uRmlsZTtcbiAgICAgICAgICAgIGNhc2UgJ2N1c3RvbSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEZpZWxkSW5wdXRUeXBlRW51bS5DdXN0b207XG4gICAgICAgICAgICBjYXNlICd0ZXh0JzpcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEZpZWxkSW5wdXRUeXBlRW51bS5UZXh0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogY29udmVydCBjb2x1bW4gdHlwZSB0byBlcXVpdmFsZW50IGZpZWxkIGlucHV0IHR5cGVcbiAgICAgKiBAcGFyYW0gdHlwZSBjb2x1bW4gdHlwZVxuICAgICAqIEBwYXJhbSBkaXNwbGF5VHlwZSBjb2x1bW4gZGlzcGxheSB0eXBlXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyB0b0ZpZWxkSW5wdXRUeXBlRnJvbUNvbHVtblR5cGUodHlwZTogQ29sdW1uVHlwZUVudW0sIGRpc3BsYXlUeXBlPzogQ29sdW1uRGlzcGxheVR5cGVFbnVtKTogRmllbGRJbnB1dFR5cGVFbnVtIHtcbiAgICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgICAgICBjYXNlIENvbHVtblR5cGVFbnVtLk51bWJlcjpcbiAgICAgICAgICAgICAgICByZXR1cm4gZGlzcGxheVR5cGUgPT09IENvbHVtbkRpc3BsYXlUeXBlRW51bS5DdXJyZW5jeSA/IEZpZWxkSW5wdXRUeXBlRW51bS5DdXJyZW5jeSA6IEZpZWxkSW5wdXRUeXBlRW51bS5OdW1iZXI7XG4gICAgICAgICAgICBjYXNlIENvbHVtblR5cGVFbnVtLkJvb2xlYW46XG4gICAgICAgICAgICAgICAgcmV0dXJuIEZpZWxkSW5wdXRUeXBlRW51bS5Td2l0Y2g7XG4gICAgICAgICAgICBjYXNlIENvbHVtblR5cGVFbnVtLkRhdGU6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEZpZWxkSW5wdXRUeXBlRW51bS5EYXRlcGlja2VyO1xuICAgICAgICAgICAgY2FzZSBDb2x1bW5UeXBlRW51bS5DdXN0b206XG4gICAgICAgICAgICAgICAgcmV0dXJuIEZpZWxkSW5wdXRUeXBlRW51bS5DdXN0b207XG4gICAgICAgICAgICBjYXNlIENvbHVtblR5cGVFbnVtLlN0cmluZzpcbiAgICAgICAgICAgIGNhc2UgQ29sdW1uVHlwZUVudW0uRW51bTpcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEZpZWxkSW5wdXRUeXBlRW51bS5UZXh0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogZ2VuZXJhdGVzIHRhYmxlIGxheW91dCBwcmVmZXJlbmNlcyBrZXkgdXNlZCB3aGVuIHNhdmluZyBwcmVmZXJlbmNlcyB0byBsb2NhbHN0b3JhZ2VcbiAgICAgKiBAcGFyYW0gdHlwZU5hbWUgc3RyaW5nLCByZXF1aXJlZFxuICAgICAqIEBwYXJhbSB1cmwgc3RyaW5nLCByZXF1aXJlZFxuICAgICAqIEBwYXJhbSBkYXRhS2V5IHN0cmluZywgbm90IHJlcXVpcmVkXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBnZW5lcmF0ZVRhYmxlTGF5b3V0UHJlZnNLZXkodHlwZU5hbWU6IHN0cmluZywgdXJsOiBzdHJpbmcsIGRhdGFLZXk/OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gYGxheW91dFByZWZzfn4ke3R5cGVOYW1lfX5+JHtkYXRhS2V5ID8/IHVybC5zcGxpdCgnPycpWzBdLnNwbGl0KCcjJylbMF19YDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBGbGF0dGVuIGFuIG9iamVjdCBvZiB1bmtub3duIHR5cGUsIHVzZWQgZm9yIGdlbmVyYXRpbmcgZmllbGRzIGFuZCBjb2x1bW5zIGluIGR5bmFtaWMgdGFibGV2aWV3c1xuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZmxhdHRlbk9iamVjdChvYmplY3RNb2RlbDogYW55KTogc3RyaW5nW10ge1xuICAgICAgICBjb25zdCBpc09iamVjdCA9IChlbnRyeTogYW55KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gISFlbnRyeSAmJiB0eXBlb2YgZW50cnkgPT09ICdvYmplY3QnICYmICFBcnJheS5pc0FycmF5KGVudHJ5KTtcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCBmbGF0dGVuID0gKG9iamVjdDogYW55LCBwYXJlbnQ/OiBhbnkpID0+IHtcbiAgICAgICAgICAgIGxldCByZXN1bHRzOiBhbnlbXSA9IFtdO1xuICAgICAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gb2JqZWN0KSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBvYmplY3Rba2V5XTtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGlzS2V5ID0gcGFyZW50ID8gYCR7cGFyZW50fS4ke2tleX1gIDogYCR7a2V5fWA7XG5cbiAgICAgICAgICAgICAgICByZXN1bHRzID0gcmVzdWx0cy5jb25jYXQoaXNPYmplY3QodmFsdWUpID8gZmxhdHRlbih2YWx1ZSwgdGhpc0tleSkgOiBbW2Ake3RoaXNLZXl9YCwgdmFsdWVdXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0cztcbiAgICAgICAgfTtcblxuICAgICAgICByZXR1cm4gZmxhdHRlbihvYmplY3RNb2RlbCk7XG4gICAgfVxufVxuIl19
193
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGV2aWV3LnV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3V0aWxzL3RhYmxldmlldy51dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLGNBQWMsQ0FBQztBQUU5QyxPQUFPLEVBQUMscUJBQXFCLEVBQUUsY0FBYyxFQUFFLGtCQUFrQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDL0YsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sV0FBVyxDQUFDO0FBSTNDLE1BQU0sT0FBTyxhQUFhO2FBQ1AsZUFBVSxHQUFHLHNCQUFzQixDQUFDO2FBQ3BDLG1CQUFjLEdBQUcsd0hBQXdILENBQUM7SUFFeko7OztPQUdHO0lBQ0ksTUFBTSxDQUFDLGtCQUFrQixDQUFJLFNBQXVCO1FBQ3ZELE9BQU8sYUFBYSxDQUFDLG9DQUFvQyxDQUFDLGdCQUFnQixDQUFDLEdBQUcsRUFBRSxDQUFDLG1DQUFtQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFDckksQ0FBQztJQUVEOzs7T0FHRztJQUNJLE1BQU0sQ0FBQyxvQ0FBb0MsQ0FBQyxVQUF1QztRQUN0RixJQUFJLFVBQVUsSUFBSSxJQUFJLEVBQUU7WUFDcEIsTUFBTSxJQUFJLGdCQUFnQixDQUFDLDJGQUEyRixFQUFFLEVBQUMsSUFBSSxFQUFFLHFCQUFxQixFQUFDLENBQUMsQ0FBQztTQUMxSjtRQUNELE1BQU0sZ0JBQWdCLEdBQUcsZ0JBQWdCLENBQUMsR0FBRyxFQUFFLENBQUM7UUFFaEQsTUFBTSxxQkFBcUIsR0FBNEIsRUFBRSxDQUFDO1FBRTFELEtBQUssTUFBTSxTQUFTLElBQUksVUFBVSxFQUFFO1lBQ2hDLE1BQU0sUUFBUSxHQUFHLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDM0QsTUFBTSxVQUFVLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FB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QUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ3JGLENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxhQUFhLENBQUMsV0FBZ0I7UUFDeEMsTUFBTSxRQUFRLEdBQUcsQ0FBQyxLQUFVLEVBQUUsRUFBRTtZQUM1QixPQUFPLENBQUMsQ0FBQyxLQUFLLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6RSxDQUFDLENBQUM7UUFFRixNQUFNLE9BQU8sR0FBRyxDQUFDLE1BQVcsRUFBRSxNQUFZLEVBQUUsRUFBRTtZQUMxQyxJQUFJLE9BQU8sR0FBVSxFQUFFLENBQUM7WUFDeEIsS0FBSyxNQUFNLEdBQUcsSUFBSSxNQUFNLEVBQUU7Z0JBQ3RCLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDMUIsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLE1BQU0sSUFBSSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQztnQkFFdkQsT0FBTyxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxPQUFPLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDakc7WUFDRCxPQUFPLE9BQU8sQ0FBQztRQUNuQixDQUFDLENBQUM7UUFFRixPQUFPLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNoQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBdHRyaWJ1dGVEZWZ9IGZyb20gJy4uL2FwaS9tb2RlbHMnO1xuaW1wb3J0IHtPYmplY3RTZXJpYWxpemVyfSBmcm9tICcuLi9hcGkvdXRpbHMnO1xuaW1wb3J0IHtDb2x1bW5EZXNjcmlwdG9yfSBmcm9tICcuLi9kZXNjcmlwdG9ycy90YWJsZSc7XG5pbXBvcnQge0NvbHVtbkRpc3BsYXlUeXBlRW51bSwgQ29sdW1uVHlwZUVudW0sIEZpZWxkSW5wdXRUeXBlRW51bX0gZnJvbSAnLi4vZGVzY3JpcHRvcnMvdHlwZXMnO1xuaW1wb3J0IHtNbmdJbnRlcm5hbEVycm9yfSBmcm9tICcuLi9tb2RlbHMnO1xuaW1wb3J0IHtUYWJsZXZpZXdBdHRyaWJ1dGVEZWZ9IGZyb20gJy4uL21vZGVscy90YWJsZXZpZXctYXR0ci5tb2RlbCc7XG5pbXBvcnQge0NsYXNzVHlwZSwgRW51bVR5cGV9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNsYXNzIFRhYmxldmlld1V0aWwge1xuICAgIHByaXZhdGUgc3RhdGljIF9kYXRlUmVnZXggPSAvXFxkezR9LVswMV1cXGQtWzAtM11cXGQvO1xuICAgIHByaXZhdGUgc3RhdGljIF9kYXRlVGltZVJlZ2V4ID0gL1xcZHs0fS1bMDFdXFxkLVswLTNdXFxkVChbMC0yXVxcZDpbMC01XVxcZDpbMC01XVxcZFxcLlxcZCsoWystXVswLTJdXFxkOlswLTVdXFxkfFo/KXwoWzAtMl1cXGQ6WzAtNV1cXGQ6WzAtNV1cXGRcXCtbMC0yXVxcZDpbMC01XVxcZCkpLztcblxuICAgIC8qKlxuICAgICAqIHJldHVybnMgYXR0cmlidXRlcyBmcm9tIGNsYXNzIHR5cGUgYW5kIGV4dGVuZHMgdG8gdHlwZWQgZGVmIHdpdGggY29sdW1uIGFuZCBmaWVsZCBlbnVtIHR5cGVcbiAgICAgKiBAcGFyYW0gbW9kZWxUeXBlIGNsYXNzIHR5cGVcbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGdldEF0dHJpYnV0ZURlZk1hcDxUPihtb2RlbFR5cGU6IENsYXNzVHlwZTxUPik6IFRhYmxldmlld0F0dHJpYnV0ZURlZltdIHtcbiAgICAgICAgcmV0dXJuIFRhYmxldmlld1V0aWwuZXhwYW5kQXR0cmlidXRlRGVmV2l0aFRhYmxldmlld1R5cGVzKE9iamVjdFNlcmlhbGl6ZXIuZ2V0KCkuZmluZEF0dHJpYnV0ZXNEZWZpbml0aW9uQnlDbGFzc1R5cGUobW9kZWxUeXBlKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogZXhwYW5kcyBBdHRyaWJ1dGVEZWYgdG8gVGFibGV2aWV3QXR0cmlidXRlRGVmIHdpdGggZGVmaW5lZCBpbnB1dCBhbmQgY29sdW1uIGVudW0gdHlwZVxuICAgICAqIEBwYXJhbSBhdHRyaWJ1dGVzIG9wZW4gYXBpIHNwZWNpZmljYXRpb24gbW9kZWxcbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGV4cGFuZEF0dHJpYnV0ZURlZldpdGhUYWJsZXZpZXdUeXBlcyhhdHRyaWJ1dGVzPzogQXJyYXk8QXR0cmlidXRlRGVmPiB8IG51bGwpOiBUYWJsZXZpZXdBdHRyaWJ1dGVEZWZbXSB7XG4gICAgICAgIGlmIChhdHRyaWJ1dGVzID09IG51bGwpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBNbmdJbnRlcm5hbEVycm9yKCdBdHRyaWJ1dGVEZWYgaXMgbnVsbCwgcHJvYmxlbSB3aXRoIE9iamVjdFNlcmlhbGl6ZXI6OmZpbmRBdHRyaWJ1dGVzRGVmaW5pdGlvbkJ5Q2xhc3NUeXBlPycsIHtuYW1lOiAnVGFibGVWaWV3VXRpbHNFcnJvcid9KTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBvYmplY3RTZXJpYWxpemVyID0gT2JqZWN0U2VyaWFsaXplci5nZXQoKTtcblxuICAgICAgICBjb25zdCB0YWJsZXZpZXdBdHRyaWJ1dGVEZWY6IFRhYmxldmlld0F0dHJpYnV0ZURlZltdID0gW107XG5cbiAgICAgICAgZm9yIChjb25zdCBhdHRyaWJ1dGUgb2YgYXR0cmlidXRlcykge1xuICAgICAgICAgICAgY29uc3QgZW51bVR5cGUgPSBvYmplY3RTZXJpYWxpemVyLmZpbmRFbnVtKGF0dHJpYnV0ZS50eXBlKTtcbiAgICAgICAgICAgIGNvbnN0IGNvbHVtblR5cGUgPSBlbnVtVHlwZSA/IENvbHVtblR5cGVFbnVtLkVudW0gOiBUYWJsZXZpZXdVdGlsLnRvQ29sdW1uVHlwZShhdHRyaWJ1dGUudHlwZSk7XG4gICAgICAgICAgICB0YWJsZXZpZXdBdHRyaWJ1dGVEZWYucHVzaCh7XG4gICAgICAgICAgICAgICAgbmFtZTogYXR0cmlidXRlLm5hbWUsXG4gICAgICAgICAgICAgICAgYmFzZU5hbWU6IGF0dHJpYnV0ZS5iYXNlTmFtZSxcbiAgICAgICAgICAgICAgICB0eXBlOiBhdHRyaWJ1dGUudHlwZSxcbiAgICAgICAgICAgICAgICBjb2x1bW5UeXBlOiBlbnVtVHlwZSA/IENvbHVtblR5cGVFbnVtLkVudW0gOiBUYWJsZXZpZXdVdGlsLnRvQ29sdW1uVHlwZShhdHRyaWJ1dGUudHlwZSksXG4gICAgICAgICAgICAgICAgY29sdW1uRGlzcGxheVR5cGU6IFRhYmxldmlld1V0aWwudG9Db2x1bW5EaXNwbGF5VHlwZShjb2x1bW5UeXBlLCBhdHRyaWJ1dGUudHlwZSksXG4gICAgICAgICAgICAgICAgZmllbGRUeXBlOiBUYWJsZXZpZXdVdGlsLnRvRmllbGRJbnB1dFR5cGUoYXR0cmlidXRlLnR5cGUpLFxuICAgICAgICAgICAgICAgIGVudW1UeXBlOiBvYmplY3RTZXJpYWxpemVyLmZpbmRFbnVtKGF0dHJpYnV0ZS50eXBlKSBhcyBFbnVtVHlwZSxcbiAgICAgICAgICAgICAgICBjbGFzc1R5cGU6IG9iamVjdFNlcmlhbGl6ZXIuZmluZFR5cGUoYXR0cmlidXRlLnR5cGUpIGFzIENsYXNzVHlwZTxhbnk+XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0YWJsZXZpZXdBdHRyaWJ1dGVEZWY7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogY29udmVydHMgY29sdW1uIHRvIG51bWJlciBvciBkYXRlIG9uIHZhbHVlIGJhc2VkXG4gICAgICogQHBhcmFtIGNvbHVtbiBjb2x1bW4gdG8gYmUgdHJhbnNmb3JtZWRcbiAgICAgKiBAcGFyYW0gdmFsdWUgdmFsdWUgdG8gY2hlY2sgaWYgYXBwbGljYWJsZVxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgc3RyaW5nQ29sdW1uQ29udmVydGVyKGNvbHVtbjogQ29sdW1uRGVzY3JpcHRvcjxhbnksIGFueT4sIHZhbHVlOiBhbnkpOiBDb2x1bW5EZXNjcmlwdG9yPGFueSwgYW55PiB7XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdib29sZWFuJykge1xuICAgICAgICAgICAgcmV0dXJuIGNvbHVtbi5hc0Jvb2xlYW4oKTtcbiAgICAgICAgfSBlbHNlIGlmICghaXNOYU4odmFsdWUpICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICAgIHJldHVybiBjb2x1bW4uYXNOdW1iZXIoKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLl9kYXRlUmVnZXgudGVzdCh2YWx1ZSkpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLl9kYXRlVGltZVJlZ2V4LnRlc3QodmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNvbHVtbi5hc0RhdGUoJ2RkLiBNTU0geXl5eSBISDptbScpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGNvbHVtbi5hc0RhdGUoJ2RkLiBNTU0geXl5eScpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGNvbHVtbjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGNvbnZlcnRzIHN0cmluZyB0eXBlIHRvIGNvbHVtbiB0eXBlIGVudW0sIGRlZmF1bHQgaXMgc3RyaW5nXG4gICAgICogQHBhcmFtIHByb3BlcnR5VHlwZVxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgdG9Db2x1bW5UeXBlKHByb3BlcnR5VHlwZTogc3RyaW5nKTogQ29sdW1uVHlwZUVudW0ge1xuICAgICAgICBjb25zdCBvcyA9IE9iamVjdFNlcmlhbGl6ZXIuZ2V0KCk7XG4gICAgICAgIGlmIChvcy5maW5kRW51bShwcm9wZXJ0eVR5cGUpIGFzIEVudW1UeXBlKSB7XG4gICAgICAgICAgICBwcm9wZXJ0eVR5cGUgPSAnZW51bSc7XG4gICAgICAgIH0gZWxzZSBpZiAob3MuZmluZFR5cGUocHJvcGVydHlUeXBlKSBhcyBDbGFzc1R5cGU8YW55Pikge1xuICAgICAgICAgICAgcHJvcGVydHlUeXBlID0gJ2NsYXNzJztcbiAgICAgICAgfVxuXG4gICAgICAgIHN3aXRjaCAocHJvcGVydHlUeXBlLnRvTG93ZXJDYXNlKCkpIHtcbiAgICAgICAgICAgIGNhc2UgJ251bWJlcic6XG4gICAgICAgICAgICBjYXNlICdjdXJyZW5jeSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIENvbHVtblR5cGVFbnVtLk51bWJlcjtcbiAgICAgICAgICAgIGNhc2UgJ2Jvb2xlYW4nOlxuICAgICAgICAgICAgICAgIHJldHVybiBDb2x1bW5UeXBlRW51bS5Cb29sZWFuO1xuICAgICAgICAgICAgY2FzZSAnZGF0ZSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIENvbHVtblR5cGVFbnVtLkRhdGU7XG4gICAgICAgICAgICBjYXNlICdlbnVtJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gQ29sdW1uVHlwZUVudW0uRW51bTtcbiAgICAgICAgICAgIGNhc2UgJ2N1c3RvbSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIENvbHVtblR5cGVFbnVtLkN1c3RvbTtcbiAgICAgICAgICAgIGNhc2UgJ2NsYXNzJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gQ29sdW1uVHlwZUVudW0uU3RyaW5nO1xuICAgICAgICAgICAgY2FzZSAnc3RyaW5nJzpcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIENvbHVtblR5cGVFbnVtLlN0cmluZztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgdG9Db2x1bW5EaXNwbGF5VHlwZShjb2x1bW5UeXBlOiBDb2x1bW5UeXBlRW51bSwgcHJvcGVydHlUeXBlOiBzdHJpbmcpOiBDb2x1bW5EaXNwbGF5VHlwZUVudW0ge1xuICAgICAgICBzd2l0Y2ggKGNvbHVtblR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgQ29sdW1uVHlwZUVudW0uTnVtYmVyOlxuICAgICAgICAgICAgICAgIHJldHVybiBwcm9wZXJ0eVR5cGUgPT09ICdjdXJyZW5jeScgPyBDb2x1bW5EaXNwbGF5VHlwZUVudW0uQ3VycmVuY3kgOiBDb2x1bW5EaXNwbGF5VHlwZUVudW0uTnVtYmVyO1xuICAgICAgICAgICAgY2FzZSBDb2x1bW5UeXBlRW51bS5Cb29sZWFuOlxuICAgICAgICAgICAgICAgIHJldHVybiBDb2x1bW5EaXNwbGF5VHlwZUVudW0uQm9vbGVhbjtcbiAgICAgICAgICAgIGNhc2UgQ29sdW1uVHlwZUVudW0uRGF0ZTpcbiAgICAgICAgICAgICAgICByZXR1cm4gQ29sdW1uRGlzcGxheVR5cGVFbnVtLkRhdGU7XG4gICAgICAgICAgICBjYXNlIENvbHVtblR5cGVFbnVtLkVudW06XG4gICAgICAgICAgICAgICAgcmV0dXJuIENvbHVtbkRpc3BsYXlUeXBlRW51bS5FbnVtO1xuICAgICAgICAgICAgY2FzZSBDb2x1bW5UeXBlRW51bS5DdXN0b206XG4gICAgICAgICAgICAgICAgcmV0dXJuIENvbHVtbkRpc3BsYXlUeXBlRW51bS5Db21wb25lbnQ7XG4gICAgICAgICAgICBjYXNlIENvbHVtblR5cGVFbnVtLlN0cmluZzpcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIENvbHVtbkRpc3BsYXlUeXBlRW51bS5TdHJpbmc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBjb252ZXJ0cyBzdHJpbmcgdHlwZSB0byB0eXBlIGVudW0sIGRlZmF1bHQgaXMgdGV4dFxuICAgICAqIEBwYXJhbSBwcm9wZXJ0eVxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgdG9GaWVsZElucHV0VHlwZShwcm9wZXJ0eTogc3RyaW5nKTogRmllbGRJbnB1dFR5cGVFbnVtIHtcbiAgICAgICAgc3dpdGNoIChwcm9wZXJ0eSkge1xuICAgICAgICAgICAgY2FzZSAnaGlkZGVuJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gRmllbGRJbnB1dFR5cGVFbnVtLkhpZGRlbjtcbiAgICAgICAgICAgIGNhc2UgJ2xhYmVsJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gRmllbGRJbnB1dFR5cGVFbnVtLkxhYmVsO1xuICAgICAgICAgICAgY2FzZSAndGV4dGFyZWEnOlxuICAgICAgICAgICAgICAgIHJldHVybiBGaWVsZElucHV0VHlwZUVudW0uVGV4dGFyZWE7XG4gICAgICAgICAgICBjYXNlICdudW1iZXInOlxuICAgICAgICAgICAgICAgIHJldHVybiBGaWVsZElucHV0VHlwZUVudW0uTnVtYmVyO1xuICAgICAgICAgICAgY2FzZSAnY3VycmVuY3knOlxuICAgICAgICAgICAgICAgIHJldHVybiBGaWVsZElucHV0VHlwZUVudW0uQ3VycmVuY3k7XG4gICAgICAgICAgICBjYXNlICdzd2l0Y2gnOlxuICAgICAgICAgICAgY2FzZSAnYm9vbGVhbic6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEZpZWxkSW5wdXRUeXBlRW51bS5Td2l0Y2g7XG4gICAgICAgICAgICBjYXNlICdyYWRpbyc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEZpZWxkSW5wdXRUeXBlRW51bS5SYWRpbztcbiAgICAgICAgICAgIGNhc2UgJ2RhdGVwaWNrZXInOlxuICAgICAgICAgICAgICAgIHJldHVybiBGaWVsZElucHV0VHlwZUVudW0uRGF0ZXBpY2tlcjtcbiAgICAgICAgICAgIGNhc2UgJ21hc2snOlxuICAgICAgICAgICAgICAgIHJldHVybiBGaWVsZElucHV0VHlwZUVudW0uTWFzaztcbiAgICAgICAgICAgIGNhc2UgJ2ZpbGUnOlxuICAgICAgICAgICAgICAgIHJldHVybiBGaWVsZElucHV0VHlwZUVudW0uRmlsZTtcbiAgICAgICAgICAgIGNhc2UgJ2N1c3RvbSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEZpZWxkSW5wdXRUeXBlRW51bS5DdXN0b207XG4gICAgICAgICAgICBjYXNlICd0ZXh0JzpcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEZpZWxkSW5wdXRUeXBlRW51bS5UZXh0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogY29udmVydCBjb2x1bW4gdHlwZSB0byBlcXVpdmFsZW50IGZpZWxkIGlucHV0IHR5cGVcbiAgICAgKiBAcGFyYW0gdHlwZSBjb2x1bW4gdHlwZVxuICAgICAqIEBwYXJhbSBkaXNwbGF5VHlwZSBjb2x1bW4gZGlzcGxheSB0eXBlXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyB0b0ZpZWxkSW5wdXRUeXBlRnJvbUNvbHVtblR5cGUodHlwZTogQ29sdW1uVHlwZUVudW0sIGRpc3BsYXlUeXBlPzogQ29sdW1uRGlzcGxheVR5cGVFbnVtKTogRmllbGRJbnB1dFR5cGVFbnVtIHtcbiAgICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgICAgICBjYXNlIENvbHVtblR5cGVFbnVtLk51bWJlcjpcbiAgICAgICAgICAgICAgICByZXR1cm4gZGlzcGxheVR5cGUgPT09IENvbHVtbkRpc3BsYXlUeXBlRW51bS5DdXJyZW5jeSA/IEZpZWxkSW5wdXRUeXBlRW51bS5DdXJyZW5jeSA6IEZpZWxkSW5wdXRUeXBlRW51bS5OdW1iZXI7XG4gICAgICAgICAgICBjYXNlIENvbHVtblR5cGVFbnVtLkJvb2xlYW46XG4gICAgICAgICAgICAgICAgcmV0dXJuIEZpZWxkSW5wdXRUeXBlRW51bS5Td2l0Y2g7XG4gICAgICAgICAgICBjYXNlIENvbHVtblR5cGVFbnVtLkRhdGU6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEZpZWxkSW5wdXRUeXBlRW51bS5EYXRlcGlja2VyO1xuICAgICAgICAgICAgY2FzZSBDb2x1bW5UeXBlRW51bS5DdXN0b206XG4gICAgICAgICAgICAgICAgcmV0dXJuIEZpZWxkSW5wdXRUeXBlRW51bS5DdXN0b207XG4gICAgICAgICAgICBjYXNlIENvbHVtblR5cGVFbnVtLlN0cmluZzpcbiAgICAgICAgICAgIGNhc2UgQ29sdW1uVHlwZUVudW0uRW51bTpcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEZpZWxkSW5wdXRUeXBlRW51bS5UZXh0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogZ2VuZXJhdGVzIHRhYmxlIGxheW91dCBwcmVmZXJlbmNlcyBrZXkgdXNlZCB3aGVuIHNhdmluZyBwcmVmZXJlbmNlcyB0byBsb2NhbHN0b3JhZ2VcbiAgICAgKiBAcGFyYW0gdHlwZU5hbWUgc3RyaW5nLCByZXF1aXJlZFxuICAgICAqIEBwYXJhbSB1cmwgc3RyaW5nLCByZXF1aXJlZFxuICAgICAqIEBwYXJhbSBkYXRhS2V5IHN0cmluZywgbm90IHJlcXVpcmVkXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBnZW5lcmF0ZVRhYmxlTGF5b3V0UHJlZnNLZXkodHlwZU5hbWU6IHN0cmluZywgdXJsOiBzdHJpbmcsIGRhdGFLZXk/OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gYGxheW91dFByZWZzfn4ke3R5cGVOYW1lfX5+JHtkYXRhS2V5ID8/IHVybC5zcGxpdCgnPycpWzBdLnNwbGl0KCcjJylbMF19YDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBGbGF0dGVuIGFuIG9iamVjdCBvZiB1bmtub3duIHR5cGUsIHVzZWQgZm9yIGdlbmVyYXRpbmcgZmllbGRzIGFuZCBjb2x1bW5zIGluIGR5bmFtaWMgdGFibGV2aWV3c1xuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZmxhdHRlbk9iamVjdChvYmplY3RNb2RlbDogYW55KTogc3RyaW5nW10ge1xuICAgICAgICBjb25zdCBpc09iamVjdCA9IChlbnRyeTogYW55KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gISFlbnRyeSAmJiB0eXBlb2YgZW50cnkgPT09ICdvYmplY3QnICYmICFBcnJheS5pc0FycmF5KGVudHJ5KTtcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCBmbGF0dGVuID0gKG9iamVjdDogYW55LCBwYXJlbnQ/OiBhbnkpID0+IHtcbiAgICAgICAgICAgIGxldCByZXN1bHRzOiBhbnlbXSA9IFtdO1xuICAgICAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gb2JqZWN0KSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBvYmplY3Rba2V5XTtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGlzS2V5ID0gcGFyZW50ID8gYCR7cGFyZW50fS4ke2tleX1gIDogYCR7a2V5fWA7XG5cbiAgICAgICAgICAgICAgICByZXN1bHRzID0gcmVzdWx0cy5jb25jYXQoaXNPYmplY3QodmFsdWUpID8gZmxhdHRlbih2YWx1ZSwgdGhpc0tleSkgOiBbW2Ake3RoaXNLZXl9YCwgdmFsdWVdXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0cztcbiAgICAgICAgfTtcblxuICAgICAgICByZXR1cm4gZmxhdHRlbihvYmplY3RNb2RlbCk7XG4gICAgfVxufVxuIl19
@@ -74,7 +74,7 @@ export class TypeUtil {
74
74
  if (enumName) {
75
75
  return enumName;
76
76
  }
77
- throw new MngInternalError('Could not fined enum name', 'TypeUtils error');
77
+ throw new MngInternalError('Could not fined enum name', { name: 'TypeUtilsError' });
78
78
  }
79
79
  /**
80
80
  * Gets type's id property from reflect metadata.
@@ -91,4 +91,4 @@ export class TypeUtil {
91
91
  return Reflect.getMetadata(TypeUtil.reflectTypeTitlePropertyKey, type);
92
92
  }
93
93
  }
94
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi91dGlscy90eXBlLnV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxrQkFBa0IsQ0FBQztBQUUxQixPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxXQUFXLENBQUM7QUFDM0MsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sYUFBYSxDQUFDO0FBRzdDLE1BQU0sT0FBTyxRQUFRO2FBQ00sdUJBQWtCLEdBQUcsVUFBVSxDQUFDO2FBQ2hDLDZCQUF3QixHQUFHLGdCQUFnQixDQUFDO2FBQzVDLGdDQUEyQixHQUFHLG1CQUFtQixDQUFDO2FBQ2xELHVCQUFrQixHQUFHLFVBQVUsQ0FBQztJQUV2RDs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLHFCQUFxQixDQUFDLFVBQTBCLEVBQUUsUUFBZ0I7UUFDNUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLGtCQUFrQixFQUFFLFVBQVUsQ0FBQyxFQUFFO1lBQ2xFLE9BQU8sQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLGtCQUFrQixFQUFFLFFBQVEsRUFBRSxVQUFVLENBQUMsQ0FBQztTQUM3RTtJQUNMLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLHFCQUFxQixDQUFDLFVBQW9CLEVBQUUsUUFBZ0I7UUFDdEUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLGtCQUFrQixFQUFFLFVBQVUsQ0FBQyxFQUFFO1lBQ2xFLE9BQU8sQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLGtCQUFrQixFQUFFLFFBQVEsRUFBRSxVQUFVLENBQUMsQ0FBQztTQUM3RTtJQUNMLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLDJCQUEyQixDQUFJLFVBQXdCLEVBQUUsVUFBNEI7UUFDL0YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLHdCQUF3QixFQUFFLFVBQVUsQ0FBQyxFQUFFO1lBQ3hFLE9BQU8sQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLHdCQUF3QixFQUFFLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQztTQUNyRjtJQUNMLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLDhCQUE4QixDQUFJLFVBQXdCLEVBQUUsYUFBK0I7UUFDckcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLDJCQUEyQixFQUFFLFVBQVUsQ0FBQyxFQUFFO1lBQzNFLE9BQU8sQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLDJCQUEyQixFQUFFLGFBQWEsRUFBRSxVQUFVLENBQUMsQ0FBQztTQUMzRjtJQUNMLENBQUM7SUFFRDs7O09BR0c7SUFDSSxNQUFNLENBQUMsWUFBWSxDQUFDLElBQW9CO1FBQzNDLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLGtCQUFrQixFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3hFLElBQUksUUFBUSxFQUFFO1lBQ1YsT0FBTyxRQUFRLENBQUM7U0FDbkI7UUFDRCxnQkFBZ0IsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsOEdBQThHLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3pKLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztJQUNyQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFvQjtRQUM3QyxPQUFPLE9BQU8sQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLGtCQUFrQixFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFRDs7O09BR0c7SUFDSSxNQUFNLENBQUMsWUFBWSxDQUFDLFFBQWtCO1FBQ3pDLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLGtCQUFrQixFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQzVFLElBQUksUUFBUSxFQUFFO1lBQ1YsT0FBTyxRQUFRLENBQUM7U0FDbkI7UUFDRCxNQUFNLElBQUksZ0JBQWdCLENBQUMsMkJBQTJCLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztJQUMvRSxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksTUFBTSxDQUFDLGtCQUFrQixDQUFDLElBQW9CO1FBQ2pELE9BQU8sT0FBTyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsd0JBQXdCLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUVEOzs7T0FHRztJQUNJLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxJQUFvQjtRQUNwRCxPQUFPLE9BQU8sQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLDJCQUEyQixFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzNFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJ3JlZmxlY3QtbWV0YWRhdGEnO1xuXG5pbXBvcnQge01uZ0ludGVybmFsRXJyb3J9IGZyb20gJy4uL21vZGVscyc7XG5pbXBvcnQge01uZ0xvZ2dlclNlcnZpY2V9IGZyb20gJy4uL3NlcnZpY2VzJztcbmltcG9ydCB7Q2xhc3NUeXBlLCBFbnVtVHlwZX0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY2xhc3MgVHlwZVV0aWwge1xuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgcmVmbGVjdFR5cGVOYW1lS2V5ID0gJ3R5cGVOYW1lJztcbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IHJlZmxlY3RUeXBlSWRQcm9wZXJ0eUtleSA9ICd0eXBlSWRQcm9wZXJ0eSc7XG4gICAgcHVibGljIHN0YXRpYyByZWFkb25seSByZWZsZWN0VHlwZVRpdGxlUHJvcGVydHlLZXkgPSAndHlwZVRpdGxlUHJvcGVydHknO1xuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgcmVmbGVjdEVudW1OYW1lS2V5ID0gJ2VudW1OYW1lJztcblxuICAgIC8qKlxuICAgICAqIERlZmluZXMgdHlwZSBuYW1lIGRlY29yYXRvci5cbiAgICAgKiBAcGFyYW0gdGFyZ2V0VHlwZSBjbGFzcy5cbiAgICAgKiBAcGFyYW0gdHlwZU5hbWUgTmFtZSBvZiB0aGUgdHlwZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGRlZmluZVJlZmxlY3RUeXBlTmFtZSh0YXJnZXRUeXBlOiBDbGFzc1R5cGU8YW55PiwgdHlwZU5hbWU6IHN0cmluZykge1xuICAgICAgICBpZiAoIVJlZmxlY3QuaGFzT3duTWV0YWRhdGEoVHlwZVV0aWwucmVmbGVjdFR5cGVOYW1lS2V5LCB0YXJnZXRUeXBlKSkge1xuICAgICAgICAgICAgUmVmbGVjdC5kZWZpbmVNZXRhZGF0YShUeXBlVXRpbC5yZWZsZWN0VHlwZU5hbWVLZXksIHR5cGVOYW1lLCB0YXJnZXRUeXBlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERlZmluZXMgZW51bSBuYW1lIGRlY29yYXRvci5cbiAgICAgKiBAcGFyYW0gdGFyZ2V0VHlwZSBlbnVtIG9iamVjdC5cbiAgICAgKiBAcGFyYW0gZW51bU5hbWUgTmFtZSBvZiB0aGUgZW51bS5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGRlZmluZVJlZmxlY3RFbnVtTmFtZSh0YXJnZXRUeXBlOiBFbnVtVHlwZSwgZW51bU5hbWU6IHN0cmluZykge1xuICAgICAgICBpZiAoIVJlZmxlY3QuaGFzT3duTWV0YWRhdGEoVHlwZVV0aWwucmVmbGVjdEVudW1OYW1lS2V5LCB0YXJnZXRUeXBlKSkge1xuICAgICAgICAgICAgUmVmbGVjdC5kZWZpbmVNZXRhZGF0YShUeXBlVXRpbC5yZWZsZWN0RW51bU5hbWVLZXksIGVudW1OYW1lLCB0YXJnZXRUeXBlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERlZmluZXMgdHlwZSdzIGlkIHByb3BlcnR5LlxuICAgICAqIEBwYXJhbSB0YXJnZXRUeXBlIGNsYXNzLlxuICAgICAqIEBwYXJhbSBpZFByb3BlcnR5IElkIHByb3BlcnR5XG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBkZWZpbmVSZWZsZWN0VHlwZUlkUHJvcGVydHk8VD4odGFyZ2V0VHlwZTogQ2xhc3NUeXBlPFQ+LCBpZFByb3BlcnR5OiBrZXlvZiBUIHwgc3ltYm9sKSB7XG4gICAgICAgIGlmICghUmVmbGVjdC5oYXNPd25NZXRhZGF0YShUeXBlVXRpbC5yZWZsZWN0VHlwZUlkUHJvcGVydHlLZXksIHRhcmdldFR5cGUpKSB7XG4gICAgICAgICAgICBSZWZsZWN0LmRlZmluZU1ldGFkYXRhKFR5cGVVdGlsLnJlZmxlY3RUeXBlSWRQcm9wZXJ0eUtleSwgaWRQcm9wZXJ0eSwgdGFyZ2V0VHlwZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEZWZpbmVzIHR5cGUncyBpZCBwcm9wZXJ0eS5cbiAgICAgKiBAcGFyYW0gdGFyZ2V0VHlwZSBjbGFzcy5cbiAgICAgKiBAcGFyYW0gdGl0bGVQcm9wZXJ0eSBUaXRsZSBwcm9wZXJ0eVxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZGVmaW5lUmVmbGVjdFR5cGVUaXRsZVByb3BlcnR5PFQ+KHRhcmdldFR5cGU6IENsYXNzVHlwZTxUPiwgdGl0bGVQcm9wZXJ0eToga2V5b2YgVCB8IHN5bWJvbCkge1xuICAgICAgICBpZiAoIVJlZmxlY3QuaGFzT3duTWV0YWRhdGEoVHlwZVV0aWwucmVmbGVjdFR5cGVUaXRsZVByb3BlcnR5S2V5LCB0YXJnZXRUeXBlKSkge1xuICAgICAgICAgICAgUmVmbGVjdC5kZWZpbmVNZXRhZGF0YShUeXBlVXRpbC5yZWZsZWN0VHlwZVRpdGxlUHJvcGVydHlLZXksIHRpdGxlUHJvcGVydHksIHRhcmdldFR5cGUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyB0eXBlIG5hbWUgZnJvbSByZWZsZWN0IG1ldGFkYXRhLlxuICAgICAqIEBwYXJhbSB0eXBlIENsYXNzLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZmluZFR5cGVOYW1lKHR5cGU6IENsYXNzVHlwZTxhbnk+KTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgdHlwZU5hbWUgPSBSZWZsZWN0LmdldE1ldGFkYXRhKFR5cGVVdGlsLnJlZmxlY3RUeXBlTmFtZUtleSwgdHlwZSk7XG4gICAgICAgIGlmICh0eXBlTmFtZSkge1xuICAgICAgICAgICAgcmV0dXJuIHR5cGVOYW1lO1xuICAgICAgICB9XG4gICAgICAgIE1uZ0xvZ2dlclNlcnZpY2UuZ2V0KCkuZGVidWcoJ1dBUk5JTkc6IFJlZmxlY3QgbWV0YWRhdGEgY291bGQgbm90IGJlIGZvdW5kIGZvciB0eXBlLCB5b3UgbWlnaHQgZXhwZXJpZW5jZSBzb21lIGlzc3VlcyBpbiBwcm9kdWN0aW9uIGJ1aWxkLicsIHR5cGU/Lm5hbWUpO1xuICAgICAgICByZXR1cm4gdHlwZS5uYW1lO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgdHlwZSBuYW1lIGZyb20gZWl0aGVyIGRlY29yYXRvciBvciByZWZsZWN0IG1ldGFkYXRhLlxuICAgICAqIEBwYXJhbSB0eXBlIENsYXNzLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgdHlwZU5hbWVFeGlzdHModHlwZTogQ2xhc3NUeXBlPGFueT4pOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIFJlZmxlY3QuaGFzT3duTWV0YWRhdGEoVHlwZVV0aWwucmVmbGVjdFR5cGVOYW1lS2V5LCB0eXBlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIGVudW0gbmFtZSBmcm9tIGVpdGhlciBkZWNvcmF0b3Igb3IgcmVmbGVjdCBtZXRhZGF0YS5cbiAgICAgKiBAcGFyYW0gZW51bVR5cGUgQ2xhc3MuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBmaW5kRW51bU5hbWUoZW51bVR5cGU6IEVudW1UeXBlKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgZW51bU5hbWUgPSBSZWZsZWN0LmdldE1ldGFkYXRhKFR5cGVVdGlsLnJlZmxlY3RFbnVtTmFtZUtleSwgZW51bVR5cGUpO1xuICAgICAgICBpZiAoZW51bU5hbWUpIHtcbiAgICAgICAgICAgIHJldHVybiBlbnVtTmFtZTtcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBuZXcgTW5nSW50ZXJuYWxFcnJvcignQ291bGQgbm90IGZpbmVkIGVudW0gbmFtZScsICdUeXBlVXRpbHMgZXJyb3InKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHR5cGUncyBpZCBwcm9wZXJ0eSBmcm9tIHJlZmxlY3QgbWV0YWRhdGEuXG4gICAgICogQHBhcmFtIHR5cGUgQ2xhc3MuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBmaW5kVHlwZUlkUHJvcGVydHkodHlwZTogQ2xhc3NUeXBlPGFueT4pOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gUmVmbGVjdC5nZXRNZXRhZGF0YShUeXBlVXRpbC5yZWZsZWN0VHlwZUlkUHJvcGVydHlLZXksIHR5cGUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgdHlwZSdzIHRpdGxlIHByb3BlcnR5IGZyb20gcmVmbGVjdCBtZXRhZGF0YS5cbiAgICAgKiBAcGFyYW0gdHlwZSBDbGFzcy5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGZpbmRUeXBlVGl0bGVQcm9wZXJ0eSh0eXBlOiBDbGFzc1R5cGU8YW55Pik6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBSZWZsZWN0LmdldE1ldGFkYXRhKFR5cGVVdGlsLnJlZmxlY3RUeXBlVGl0bGVQcm9wZXJ0eUtleSwgdHlwZSk7XG4gICAgfVxufVxuIl19
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi91dGlscy90eXBlLnV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxrQkFBa0IsQ0FBQztBQUUxQixPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxXQUFXLENBQUM7QUFDM0MsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sYUFBYSxDQUFDO0FBRzdDLE1BQU0sT0FBTyxRQUFRO2FBQ00sdUJBQWtCLEdBQUcsVUFBVSxDQUFDO2FBQ2hDLDZCQUF3QixHQUFHLGdCQUFnQixDQUFDO2FBQzVDLGdDQUEyQixHQUFHLG1CQUFtQixDQUFDO2FBQ2xELHVCQUFrQixHQUFHLFVBQVUsQ0FBQztJQUV2RDs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLHFCQUFxQixDQUFDLFVBQTBCLEVBQUUsUUFBZ0I7UUFDNUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLGtCQUFrQixFQUFFLFVBQVUsQ0FBQyxFQUFFO1lBQ2xFLE9BQU8sQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLGtCQUFrQixFQUFFLFFBQVEsRUFBRSxVQUFVLENBQUMsQ0FBQztTQUM3RTtJQUNMLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLHFCQUFxQixDQUFDLFVBQW9CLEVBQUUsUUFBZ0I7UUFDdEUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLGtCQUFrQixFQUFFLFVBQVUsQ0FBQyxFQUFFO1lBQ2xFLE9BQU8sQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLGtCQUFrQixFQUFFLFFBQVEsRUFBRSxVQUFVLENBQUMsQ0FBQztTQUM3RTtJQUNMLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLDJCQUEyQixDQUFJLFVBQXdCLEVBQUUsVUFBNEI7UUFDL0YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLHdCQUF3QixFQUFFLFVBQVUsQ0FBQyxFQUFFO1lBQ3hFLE9BQU8sQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLHdCQUF3QixFQUFFLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQztTQUNyRjtJQUNMLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLDhCQUE4QixDQUFJLFVBQXdCLEVBQUUsYUFBK0I7UUFDckcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLDJCQUEyQixFQUFFLFVBQVUsQ0FBQyxFQUFFO1lBQzNFLE9BQU8sQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLDJCQUEyQixFQUFFLGFBQWEsRUFBRSxVQUFVLENBQUMsQ0FBQztTQUMzRjtJQUNMLENBQUM7SUFFRDs7O09BR0c7SUFDSSxNQUFNLENBQUMsWUFBWSxDQUFDLElBQW9CO1FBQzNDLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLGtCQUFrQixFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3hFLElBQUksUUFBUSxFQUFFO1lBQ1YsT0FBTyxRQUFRLENBQUM7U0FDbkI7UUFDRCxnQkFBZ0IsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsOEdBQThHLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3pKLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztJQUNyQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFvQjtRQUM3QyxPQUFPLE9BQU8sQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLGtCQUFrQixFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFRDs7O09BR0c7SUFDSSxNQUFNLENBQUMsWUFBWSxDQUFDLFFBQWtCO1FBQ3pDLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLGtCQUFrQixFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQzVFLElBQUksUUFBUSxFQUFFO1lBQ1YsT0FBTyxRQUFRLENBQUM7U0FDbkI7UUFDRCxNQUFNLElBQUksZ0JBQWdCLENBQUMsMkJBQTJCLEVBQUUsRUFBQyxJQUFJLEVBQUUsZ0JBQWdCLEVBQUMsQ0FBQyxDQUFDO0lBQ3RGLENBQUM7SUFFRDs7O09BR0c7SUFDSSxNQUFNLENBQUMsa0JBQWtCLENBQUMsSUFBb0I7UUFDakQsT0FBTyxPQUFPLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyx3QkFBd0IsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksTUFBTSxDQUFDLHFCQUFxQixDQUFDLElBQW9CO1FBQ3BELE9BQU8sT0FBTyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsMkJBQTJCLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDM0UsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAncmVmbGVjdC1tZXRhZGF0YSc7XG5cbmltcG9ydCB7TW5nSW50ZXJuYWxFcnJvcn0gZnJvbSAnLi4vbW9kZWxzJztcbmltcG9ydCB7TW5nTG9nZ2VyU2VydmljZX0gZnJvbSAnLi4vc2VydmljZXMnO1xuaW1wb3J0IHtDbGFzc1R5cGUsIEVudW1UeXBlfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjbGFzcyBUeXBlVXRpbCB7XG4gICAgcHVibGljIHN0YXRpYyByZWFkb25seSByZWZsZWN0VHlwZU5hbWVLZXkgPSAndHlwZU5hbWUnO1xuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgcmVmbGVjdFR5cGVJZFByb3BlcnR5S2V5ID0gJ3R5cGVJZFByb3BlcnR5JztcbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IHJlZmxlY3RUeXBlVGl0bGVQcm9wZXJ0eUtleSA9ICd0eXBlVGl0bGVQcm9wZXJ0eSc7XG4gICAgcHVibGljIHN0YXRpYyByZWFkb25seSByZWZsZWN0RW51bU5hbWVLZXkgPSAnZW51bU5hbWUnO1xuXG4gICAgLyoqXG4gICAgICogRGVmaW5lcyB0eXBlIG5hbWUgZGVjb3JhdG9yLlxuICAgICAqIEBwYXJhbSB0YXJnZXRUeXBlIGNsYXNzLlxuICAgICAqIEBwYXJhbSB0eXBlTmFtZSBOYW1lIG9mIHRoZSB0eXBlLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZGVmaW5lUmVmbGVjdFR5cGVOYW1lKHRhcmdldFR5cGU6IENsYXNzVHlwZTxhbnk+LCB0eXBlTmFtZTogc3RyaW5nKSB7XG4gICAgICAgIGlmICghUmVmbGVjdC5oYXNPd25NZXRhZGF0YShUeXBlVXRpbC5yZWZsZWN0VHlwZU5hbWVLZXksIHRhcmdldFR5cGUpKSB7XG4gICAgICAgICAgICBSZWZsZWN0LmRlZmluZU1ldGFkYXRhKFR5cGVVdGlsLnJlZmxlY3RUeXBlTmFtZUtleSwgdHlwZU5hbWUsIHRhcmdldFR5cGUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGVmaW5lcyBlbnVtIG5hbWUgZGVjb3JhdG9yLlxuICAgICAqIEBwYXJhbSB0YXJnZXRUeXBlIGVudW0gb2JqZWN0LlxuICAgICAqIEBwYXJhbSBlbnVtTmFtZSBOYW1lIG9mIHRoZSBlbnVtLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZGVmaW5lUmVmbGVjdEVudW1OYW1lKHRhcmdldFR5cGU6IEVudW1UeXBlLCBlbnVtTmFtZTogc3RyaW5nKSB7XG4gICAgICAgIGlmICghUmVmbGVjdC5oYXNPd25NZXRhZGF0YShUeXBlVXRpbC5yZWZsZWN0RW51bU5hbWVLZXksIHRhcmdldFR5cGUpKSB7XG4gICAgICAgICAgICBSZWZsZWN0LmRlZmluZU1ldGFkYXRhKFR5cGVVdGlsLnJlZmxlY3RFbnVtTmFtZUtleSwgZW51bU5hbWUsIHRhcmdldFR5cGUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGVmaW5lcyB0eXBlJ3MgaWQgcHJvcGVydHkuXG4gICAgICogQHBhcmFtIHRhcmdldFR5cGUgY2xhc3MuXG4gICAgICogQHBhcmFtIGlkUHJvcGVydHkgSWQgcHJvcGVydHlcbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGRlZmluZVJlZmxlY3RUeXBlSWRQcm9wZXJ0eTxUPih0YXJnZXRUeXBlOiBDbGFzc1R5cGU8VD4sIGlkUHJvcGVydHk6IGtleW9mIFQgfCBzeW1ib2wpIHtcbiAgICAgICAgaWYgKCFSZWZsZWN0Lmhhc093bk1ldGFkYXRhKFR5cGVVdGlsLnJlZmxlY3RUeXBlSWRQcm9wZXJ0eUtleSwgdGFyZ2V0VHlwZSkpIHtcbiAgICAgICAgICAgIFJlZmxlY3QuZGVmaW5lTWV0YWRhdGEoVHlwZVV0aWwucmVmbGVjdFR5cGVJZFByb3BlcnR5S2V5LCBpZFByb3BlcnR5LCB0YXJnZXRUeXBlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERlZmluZXMgdHlwZSdzIGlkIHByb3BlcnR5LlxuICAgICAqIEBwYXJhbSB0YXJnZXRUeXBlIGNsYXNzLlxuICAgICAqIEBwYXJhbSB0aXRsZVByb3BlcnR5IFRpdGxlIHByb3BlcnR5XG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBkZWZpbmVSZWZsZWN0VHlwZVRpdGxlUHJvcGVydHk8VD4odGFyZ2V0VHlwZTogQ2xhc3NUeXBlPFQ+LCB0aXRsZVByb3BlcnR5OiBrZXlvZiBUIHwgc3ltYm9sKSB7XG4gICAgICAgIGlmICghUmVmbGVjdC5oYXNPd25NZXRhZGF0YShUeXBlVXRpbC5yZWZsZWN0VHlwZVRpdGxlUHJvcGVydHlLZXksIHRhcmdldFR5cGUpKSB7XG4gICAgICAgICAgICBSZWZsZWN0LmRlZmluZU1ldGFkYXRhKFR5cGVVdGlsLnJlZmxlY3RUeXBlVGl0bGVQcm9wZXJ0eUtleSwgdGl0bGVQcm9wZXJ0eSwgdGFyZ2V0VHlwZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHR5cGUgbmFtZSBmcm9tIHJlZmxlY3QgbWV0YWRhdGEuXG4gICAgICogQHBhcmFtIHR5cGUgQ2xhc3MuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBmaW5kVHlwZU5hbWUodHlwZTogQ2xhc3NUeXBlPGFueT4pOiBzdHJpbmcge1xuICAgICAgICBjb25zdCB0eXBlTmFtZSA9IFJlZmxlY3QuZ2V0TWV0YWRhdGEoVHlwZVV0aWwucmVmbGVjdFR5cGVOYW1lS2V5LCB0eXBlKTtcbiAgICAgICAgaWYgKHR5cGVOYW1lKSB7XG4gICAgICAgICAgICByZXR1cm4gdHlwZU5hbWU7XG4gICAgICAgIH1cbiAgICAgICAgTW5nTG9nZ2VyU2VydmljZS5nZXQoKS5kZWJ1ZygnV0FSTklORzogUmVmbGVjdCBtZXRhZGF0YSBjb3VsZCBub3QgYmUgZm91bmQgZm9yIHR5cGUsIHlvdSBtaWdodCBleHBlcmllbmNlIHNvbWUgaXNzdWVzIGluIHByb2R1Y3Rpb24gYnVpbGQuJywgdHlwZT8ubmFtZSk7XG4gICAgICAgIHJldHVybiB0eXBlLm5hbWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyB0eXBlIG5hbWUgZnJvbSBlaXRoZXIgZGVjb3JhdG9yIG9yIHJlZmxlY3QgbWV0YWRhdGEuXG4gICAgICogQHBhcmFtIHR5cGUgQ2xhc3MuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyB0eXBlTmFtZUV4aXN0cyh0eXBlOiBDbGFzc1R5cGU8YW55Pik6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gUmVmbGVjdC5oYXNPd25NZXRhZGF0YShUeXBlVXRpbC5yZWZsZWN0VHlwZU5hbWVLZXksIHR5cGUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgZW51bSBuYW1lIGZyb20gZWl0aGVyIGRlY29yYXRvciBvciByZWZsZWN0IG1ldGFkYXRhLlxuICAgICAqIEBwYXJhbSBlbnVtVHlwZSBDbGFzcy5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGZpbmRFbnVtTmFtZShlbnVtVHlwZTogRW51bVR5cGUpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBlbnVtTmFtZSA9IFJlZmxlY3QuZ2V0TWV0YWRhdGEoVHlwZVV0aWwucmVmbGVjdEVudW1OYW1lS2V5LCBlbnVtVHlwZSk7XG4gICAgICAgIGlmIChlbnVtTmFtZSkge1xuICAgICAgICAgICAgcmV0dXJuIGVudW1OYW1lO1xuICAgICAgICB9XG4gICAgICAgIHRocm93IG5ldyBNbmdJbnRlcm5hbEVycm9yKCdDb3VsZCBub3QgZmluZWQgZW51bSBuYW1lJywge25hbWU6ICdUeXBlVXRpbHNFcnJvcid9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHR5cGUncyBpZCBwcm9wZXJ0eSBmcm9tIHJlZmxlY3QgbWV0YWRhdGEuXG4gICAgICogQHBhcmFtIHR5cGUgQ2xhc3MuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBmaW5kVHlwZUlkUHJvcGVydHkodHlwZTogQ2xhc3NUeXBlPGFueT4pOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gUmVmbGVjdC5nZXRNZXRhZGF0YShUeXBlVXRpbC5yZWZsZWN0VHlwZUlkUHJvcGVydHlLZXksIHR5cGUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgdHlwZSdzIHRpdGxlIHByb3BlcnR5IGZyb20gcmVmbGVjdCBtZXRhZGF0YS5cbiAgICAgKiBAcGFyYW0gdHlwZSBDbGFzcy5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGZpbmRUeXBlVGl0bGVQcm9wZXJ0eSh0eXBlOiBDbGFzc1R5cGU8YW55Pik6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBSZWZsZWN0LmdldE1ldGFkYXRhKFR5cGVVdGlsLnJlZmxlY3RUeXBlVGl0bGVQcm9wZXJ0eUtleSwgdHlwZSk7XG4gICAgfVxufVxuIl19