@hestia-earth/ui-components 0.0.4 → 0.0.7

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 (91) hide show
  1. package/auth/{public-api.d.ts → index.d.ts} +0 -0
  2. package/bibliographies/{public-api.d.ts → index.d.ts} +0 -0
  3. package/bundles/hestia-earth-ui-components.umd.js +1607 -1673
  4. package/bundles/hestia-earth-ui-components.umd.js.map +1 -1
  5. package/common/blank-node-state/blank-node-state.component.d.ts +1 -1
  6. package/common/blank-node-value-delta/blank-node-value-delta.component.d.ts +2 -2
  7. package/common/common.service.d.ts +1 -2
  8. package/common/delta-utils.d.ts +20 -0
  9. package/common/{public-api.d.ts → index.d.ts} +2 -0
  10. package/common/toast/toast.component.d.ts +2 -2
  11. package/common/toast.service.d.ts +3 -3
  12. package/common/utils.d.ts +8 -26
  13. package/cycles/{public-api.d.ts → index.d.ts} +1 -0
  14. package/engine/aggregation-engine.service.d.ts +13 -25
  15. package/engine/engine.service.d.ts +2 -6
  16. package/engine/index.d.ts +2 -0
  17. package/esm2015/auth/index.js +2 -0
  18. package/esm2015/bibliographies/index.js +3 -0
  19. package/esm2015/common/blank-node-diffs/blank-node-diffs.component.js +3 -4
  20. package/esm2015/common/blank-node-value-delta/blank-node-value-delta.component.js +4 -4
  21. package/esm2015/common/common.service.js +1 -7
  22. package/esm2015/common/delta-utils.js +54 -0
  23. package/esm2015/common/index.js +33 -0
  24. package/esm2015/common/toast/toast.component.js +3 -3
  25. package/esm2015/common/toast.service.js +5 -5
  26. package/esm2015/common/utils.js +20 -84
  27. package/esm2015/cycles/index.js +12 -0
  28. package/esm2015/engine/aggregation-engine.service.js +11 -47
  29. package/esm2015/engine/engine.service.js +9 -15
  30. package/esm2015/engine/index.js +3 -0
  31. package/esm2015/files/index.js +5 -0
  32. package/esm2015/fontawesome/index.js +2 -0
  33. package/esm2015/impact-assessments/impact-assessments-products/impact-assessments-products.component.js +3 -3
  34. package/esm2015/impact-assessments/index.js +7 -0
  35. package/esm2015/mendeley/index.js +2 -0
  36. package/esm2015/mendeley/mendeley.service.js +1 -1
  37. package/esm2015/node/index.js +14 -0
  38. package/esm2015/node/node-csv.service.js +1 -1
  39. package/esm2015/node/node-diffs/node-diffs.component.js +5 -5
  40. package/esm2015/node/node-diffs/node-diffs.model.js +6 -6
  41. package/esm2015/node/node.service.js +26 -16
  42. package/esm2015/public-api.js +16 -16
  43. package/esm2015/schema/index.js +2 -0
  44. package/esm2015/schema/schema.service.js +1 -1
  45. package/esm2015/search/index.js +4 -0
  46. package/esm2015/search/search.service.js +1 -1
  47. package/esm2015/sites/index.js +6 -0
  48. package/esm2015/terms/index.js +2 -0
  49. package/esm2015/users/index.js +2 -0
  50. package/fesm2015/hestia-earth-ui-components.js +827 -919
  51. package/fesm2015/hestia-earth-ui-components.js.map +1 -1
  52. package/files/{public-api.d.ts → index.d.ts} +2 -0
  53. package/fontawesome/{public-api.d.ts → index.d.ts} +0 -0
  54. package/impact-assessments/impact-assessments-products/impact-assessments-products.component.d.ts +2 -2
  55. package/impact-assessments/{public-api.d.ts → index.d.ts} +0 -0
  56. package/mendeley/{public-api.d.ts → index.d.ts} +0 -0
  57. package/mendeley/mendeley.service.d.ts +2 -2
  58. package/node/{public-api.d.ts → index.d.ts} +1 -0
  59. package/node/node-csv.service.d.ts +1 -1
  60. package/node/node-diffs/node-diffs.component.d.ts +3 -3
  61. package/node/node-diffs/node-diffs.model.d.ts +1 -1
  62. package/node/node.service.d.ts +16 -7
  63. package/package.json +1 -1
  64. package/public-api.d.ts +15 -15
  65. package/schema/{public-api.d.ts → index.d.ts} +0 -0
  66. package/schema/schema.service.d.ts +1 -1
  67. package/search/{public-api.d.ts → index.d.ts} +0 -0
  68. package/search/search.service.d.ts +2 -2
  69. package/sites/{public-api.d.ts → index.d.ts} +0 -0
  70. package/terms/{public-api.d.ts → index.d.ts} +0 -0
  71. package/users/{public-api.d.ts → index.d.ts} +0 -0
  72. package/common/blank-node-diffs/blank-node-diffs.service.d.ts +0 -5
  73. package/common/blank-node-value-delta/blank-node-value-delta.service.d.ts +0 -6
  74. package/engine/public-api.d.ts +0 -2
  75. package/esm2015/auth/public-api.js +0 -2
  76. package/esm2015/bibliographies/public-api.js +0 -3
  77. package/esm2015/common/blank-node-diffs/blank-node-diffs.service.js +0 -20
  78. package/esm2015/common/blank-node-value-delta/blank-node-value-delta.service.js +0 -31
  79. package/esm2015/common/public-api.js +0 -31
  80. package/esm2015/cycles/public-api.js +0 -11
  81. package/esm2015/engine/public-api.js +0 -3
  82. package/esm2015/files/public-api.js +0 -3
  83. package/esm2015/fontawesome/public-api.js +0 -2
  84. package/esm2015/impact-assessments/public-api.js +0 -7
  85. package/esm2015/mendeley/public-api.js +0 -2
  86. package/esm2015/node/public-api.js +0 -13
  87. package/esm2015/schema/public-api.js +0 -2
  88. package/esm2015/search/public-api.js +0 -4
  89. package/esm2015/sites/public-api.js +0 -6
  90. package/esm2015/terms/public-api.js +0 -2
  91. package/esm2015/users/public-api.js +0 -2
@@ -2,9 +2,10 @@ const get = require('lodash.get');
2
2
  import { getColor } from 'random-material-color';
3
3
  import { NodeType, EmissionMethodTier } from '@hestia-earth/schema';
4
4
  import { fileToExt } from '@hestia-earth/api';
5
- import { isEmpty } from '@hestia-earth/utils';
5
+ import { isEmpty, unique } from '@hestia-earth/utils';
6
6
  export const gitHome = 'https://gitlab.com/hestia-earth';
7
7
  export const gitRawBaseUrl = 'https://glcdn.githack.com/hestia-earth';
8
+ export const gitBranch = () => ['dev', 'staging'].some(env => baseUrl().includes(env)) ? 'develop' : 'master';
8
9
  export const isChrome = () => window.navigator.userAgent.includes('Chrome');
9
10
  export const baseUrl = () => window.location.origin.includes('localhost') ?
10
11
  'https://www-dev.hestia.earth' :
@@ -13,16 +14,6 @@ export const baseUrl = () => window.location.origin.includes('localhost') ?
13
14
  'https://www.hestia.earth';
14
15
  export const isExternal = () => baseUrl() !== window.location.origin;
15
16
  ;
16
- export const loadScript = (src) => new Promise((resolve, reject) => {
17
- if (!src || document.body.querySelectorAll('script[src="' + src + '"]').length > 0) {
18
- return resolve({});
19
- }
20
- const script = document.createElement('script');
21
- script.onload = resolve;
22
- script.onerror = reject;
23
- script.src = src;
24
- document.body.appendChild(script);
25
- });
26
17
  const parseErrorStatus = (error) => ((error === null || error === void 0 ? void 0 : error.statusText) || '').toLowerCase().replace(/\s/g, '-');
27
18
  const parseErrorMessage = (error) => get(error, 'error.error', get(error, 'error.message', get(error, 'error', get(error, 'message', error))));
28
19
  export const handleAPIError = (error) => {
@@ -39,20 +30,6 @@ export const errorText = (error) => {
39
30
  const err = parseErrorMessage(error);
40
31
  return parseErrorStatus(err) || err;
41
32
  };
42
- export const toFormData = (data, formData = new FormData()) => {
43
- for (const key in data) {
44
- if (data.hasOwnProperty(key)) {
45
- const value = data[key];
46
- if (typeof value === 'object') {
47
- formData.append(key, JSON.stringify(value));
48
- }
49
- else {
50
- formData.append(key, value);
51
- }
52
- }
53
- }
54
- return formData;
55
- };
56
33
  export const filterParams = (obj) => {
57
34
  const res = {};
58
35
  Object.keys(obj).sort().forEach(key => {
@@ -63,13 +40,6 @@ export const filterParams = (obj) => {
63
40
  });
64
41
  return res;
65
42
  };
66
- export const toSearchParams = (params = {}) => {
67
- const searchParams = new URLSearchParams();
68
- Object.keys(params)
69
- .filter(key => typeof params[key] !== 'undefined')
70
- .forEach(key => searchParams.append(key, `${params[key]}`));
71
- return searchParams;
72
- };
73
43
  export const waitFor = (variable, callback) => {
74
44
  if (variable in window) {
75
45
  return callback();
@@ -83,23 +53,6 @@ export const scrollToEl = (id, retries = 0) => {
83
53
  setTimeout(() => el ? el.scrollIntoView() : (retries < 10 ? scrollToEl(id, retries + 1) : null), 100);
84
54
  };
85
55
  export const scrollTop = () => window.scrollTo(0, 0);
86
- export const animateCounter = (total, callback) => {
87
- let animationDuration = 10;
88
- const step = Math.pow(10, `${total}`.length - 1);
89
- const maxSteps = parseInt(`${total / step}`, 10);
90
- let current = 0;
91
- const interval = setInterval(() => {
92
- callback(current);
93
- current += (step / animationDuration);
94
- if (current > maxSteps * step) {
95
- animationDuration = 100;
96
- }
97
- if (current > total) {
98
- callback(total);
99
- clearInterval(interval);
100
- }
101
- }, animationDuration);
102
- };
103
56
  export const safeJSONParse = (value, defaultValue) => {
104
57
  try {
105
58
  return typeof value === 'string' ? JSON.parse(value) : value;
@@ -180,7 +133,6 @@ export const groupNodesByTerm = (nodes = [], key, originalValues = [], filterMet
180
133
  });
181
134
  return groups;
182
135
  };
183
- export const sortByFn = (key, asc) => (a, b) => asc ? get(a, key, '').localeCompare(get(b, key, '')) : get(b, key, '').localeCompare(get(a, key, ''));
184
136
  export const ellipsis = (text = '', maxlength = 20) => text.length > maxlength ? `${text.substring(0, maxlength)}...` : text;
185
137
  const mapsQuery = 'https://www.google.com/maps/search/?api=1&query=';
186
138
  export const mapsUrl = (location) => location ? (location.lat && location.lng ?
@@ -200,8 +152,6 @@ export const toDashCase = (value) => value ?
200
152
  // handle years
201
153
  .replace(/([0-9]{4})/g, g => `-${g}`) :
202
154
  null;
203
- export const nodeTypeToString = (type) => `${type.charAt(0).toLowerCase()}${type.substring(1)}`;
204
- export const parseNodeType = (type) => Object.values(NodeType).find(v => v.toString().toLowerCase() === (type || '').toLowerCase());
205
155
  const nodeDefaultLabel = {
206
156
  [NodeType.ImpactAssessment]: ({ name, country, endDate, product }) => name ? name.replace(`${product === null || product === void 0 ? void 0 : product.name}, `, '') : [
207
157
  product === null || product === void 0 ? void 0 : product.name,
@@ -213,42 +163,28 @@ const nodeDefaultLabel = {
213
163
  export const defaultLabel = (node) => node ? (node['@type'] in nodeDefaultLabel ? nodeDefaultLabel[node['@type']](node) : node.name) || node['@id'] || node.id : '';
214
164
  export const itemColor = (index) => getColor({ text: `${index}` });
215
165
  export const listColor = (_v, index) => itemColor(index);
216
- export const minutesBefore = (date, minutes = 1) => {
217
- date.setMinutes(date.getMinutes() - minutes);
218
- return date;
219
- };
220
- export const hoursBefore = (date, hours = 1) => {
221
- date.setHours(date.getHours() - hours);
222
- return date;
223
- };
224
- export const repeat = (times = 0) => (Array.from(Array(times), Math.random));
225
- export var DeltaDisplayType;
226
- (function (DeltaDisplayType) {
227
- DeltaDisplayType["absolute"] = "absolute";
228
- DeltaDisplayType["percent"] = "percent";
229
- })(DeltaDisplayType || (DeltaDisplayType = {}));
230
- const deltaPerType = {
231
- [DeltaDisplayType.absolute]: (value, original) => value - original,
232
- [DeltaDisplayType.percent]: (value, original) => ((value - original) / original) * 100
233
- };
234
- export const roundValue = (value) => +`${value}`.substring(0, 10);
235
- export const delta = (value, originalValue, displayType = DeltaDisplayType.percent, customDeltaFuncs) => {
236
- const vvalue = roundValue(propertyValue(value));
237
- const voriginalValue = roundValue(propertyValue(originalValue));
238
- const deltaFuncs = Object.assign(Object.assign({}, deltaPerType), customDeltaFuncs);
239
- const diff = vvalue === voriginalValue ? 0 : deltaFuncs[displayType](vvalue, voriginalValue);
240
- return Number.isFinite(diff) ? (diff === -0 ? 0 : diff) : 0;
166
+ const reduceValues = (values) => values.length ? values.reduce((p, v) => p + propertyValue(v.value), 0) : undefined;
167
+ export const formatDiffValues = (originalValues = [], recalculatedValues = []) => {
168
+ const originalValuesFiltered = originalValues.filter((value) => !value.deleted);
169
+ const recalculatedValuesFiltered = recalculatedValues.filter((value) => !value.deleted);
170
+ const terms = unique([...originalValuesFiltered, ...recalculatedValuesFiltered].map((v) => v.term['@id'])).sort();
171
+ const values = terms.map((termId) => {
172
+ const original = originalValuesFiltered.filter((v) => termId === v.term['@id']);
173
+ const recalculated = recalculatedValuesFiltered.filter((v) => termId === v.term['@id']);
174
+ const { term } = original[0] || recalculated[0] || { term: { '@id': termId } };
175
+ return {
176
+ term,
177
+ original: reduceValues(original),
178
+ recalculated: reduceValues(recalculated)
179
+ };
180
+ });
181
+ return values;
241
182
  };
242
- export var DeltaColour;
243
- (function (DeltaColour) {
244
- DeltaColour["Success"] = "success";
245
- DeltaColour["Warning"] = "warning";
246
- DeltaColour["Danger"] = "danger";
247
- })(DeltaColour || (DeltaColour = {}));
248
183
  export const emptyValue = (value) => isEmpty(value) || isNaN(propertyValue(value));
184
+ export const repeat = (times = 0) => (Array.from(Array(times), Math.random));
249
185
  export const filenameWithoutExt = (filename = '') => {
250
186
  const file = fileToExt(filename, '');
251
187
  // remove last .
252
188
  return file.endsWith('.') ? file.substring(0, file.length - 1) : file;
253
189
  };
254
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tbW9uL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sR0FBRyxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQztBQUNsQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDakQsT0FBTyxFQUNMLFFBQVEsRUFBb0Usa0JBQWtCLEVBQy9GLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUU5QyxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsaUNBQWlDLENBQUM7QUFDekQsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLHdDQUF3QyxDQUFDO0FBRXRFLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7QUFFNUUsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLEdBQUcsRUFBRSxDQUMxQixNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztJQUM1Qyw4QkFBOEIsQ0FBQyxDQUFDO0lBQ2hDLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO1FBQy9DLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDeEIsMEJBQTBCLENBQUM7QUFFakMsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLEdBQUcsRUFBRSxDQUFDLE9BQU8sRUFBRSxLQUFLLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDO0FBQUEsQ0FBQztBQUV0RSxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsQ0FBQyxHQUFZLEVBQUUsRUFBRSxDQUFDLElBQUksT0FBTyxDQUFNLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO0lBQy9FLElBQUksQ0FBQyxHQUFHLElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7UUFDbEYsT0FBTyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7S0FDcEI7SUFFRCxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2hELE1BQU0sQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDO0lBQ3hCLE1BQU0sQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO0lBQ3hCLE1BQU0sQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO0lBQ2pCLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ3BDLENBQUMsQ0FBQyxDQUFDO0FBRUgsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLEtBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFBLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxVQUFVLEtBQUksRUFBRSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQztBQUVyRyxNQUFNLGlCQUFpQixHQUFHLENBQUMsS0FBVSxFQUFFLEVBQUUsQ0FDdkMsR0FBRyxDQUFDLEtBQUssRUFBRSxhQUFhLEVBQUUsR0FBRyxDQUFDLEtBQUssRUFBRSxlQUFlLEVBQUUsR0FBRyxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsR0FBRyxDQUFDLEtBQUssRUFBRSxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFFNUcsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLENBQUMsS0FBVSxFQUFFLEVBQUU7SUFDM0MsSUFBSTtRQUNGLEtBQUssR0FBRyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztLQUNsQztJQUNELE9BQU8sQ0FBQyxFQUFFLEdBQUc7SUFDYixNQUFNLEtBQUssQ0FBQztBQUNkLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxDQUFDLEtBQVUsRUFBVSxFQUFFO0lBQzlDLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFO1FBQzdCLE9BQU8sS0FBSyxDQUFDO0tBQ2Q7SUFDRCxNQUFNLEdBQUcsR0FBRyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNyQyxPQUFPLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxJQUFJLEdBQUcsQ0FBQztBQUN0QyxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsQ0FBQyxJQUFTLEVBQUUsUUFBUSxHQUFHLElBQUksUUFBUSxFQUFFLEVBQUUsRUFBRTtJQUNqRSxLQUFLLE1BQU0sR0FBRyxJQUFJLElBQUksRUFBRTtRQUN0QixJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDNUIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3hCLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFO2dCQUM3QixRQUFRLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7YUFDN0M7aUJBQ0k7Z0JBQ0gsUUFBUSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7YUFDN0I7U0FDRjtLQUNGO0lBQ0QsT0FBTyxRQUFRLENBQUM7QUFDbEIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLENBQUMsR0FBUSxFQUFFLEVBQUU7SUFDdkMsTUFBTSxHQUFHLEdBRUwsRUFBRSxDQUFDO0lBQ1AsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7UUFDcEMsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3ZCLElBQUksS0FBSyxJQUFJLEtBQUssS0FBSyxXQUFXLEVBQUU7WUFDbEMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsS0FBSyxFQUFFLENBQUM7U0FDdkI7SUFDSCxDQUFDLENBQUMsQ0FBQztJQUNILE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLENBQUMsU0FBYyxFQUFFLEVBQUUsRUFBRTtJQUNqRCxNQUFNLFlBQVksR0FBRyxJQUFJLGVBQWUsRUFBRSxDQUFDO0lBQzNDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO1NBQ2hCLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLFdBQVcsQ0FBQztTQUNqRCxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM5RCxPQUFPLFlBQVksQ0FBQztBQUN0QixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsQ0FBQyxRQUFnQixFQUFFLFFBQW9CLEVBQUUsRUFBRTtJQUNoRSxJQUFJLFFBQVEsSUFBSSxNQUFNLEVBQUU7UUFDdEIsT0FBTyxRQUFRLEVBQUUsQ0FBQztLQUNuQjtJQUNELFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0FBQ3JELENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBRyxDQUFDLE9BQW9CLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDLHFCQUFxQixFQUFFLENBQUMsTUFBTSxDQUFDO0FBRTNHLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxDQUFDLE9BQW9CLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztBQUU1RyxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsQ0FBQyxFQUFVLEVBQUUsT0FBTyxHQUFHLENBQUMsRUFBRSxFQUFFO0lBQ3BELE1BQU0sRUFBRSxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDdkMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxFQUFFLEVBQUUsT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztBQUN4RyxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFFckQsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLENBQUMsS0FBYSxFQUFFLFFBQWlDLEVBQUUsRUFBRTtJQUNqRixJQUFJLGlCQUFpQixHQUFHLEVBQUUsQ0FBQztJQUMzQixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLEtBQUssRUFBRSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNqRCxNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsR0FBRyxLQUFLLEdBQUcsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDakQsSUFBSSxPQUFPLEdBQUcsQ0FBQyxDQUFDO0lBQ2hCLE1BQU0sUUFBUSxHQUFHLFdBQVcsQ0FBQyxHQUFHLEVBQUU7UUFDaEMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLElBQUksR0FBRyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3RDLElBQUksT0FBTyxHQUFHLFFBQVEsR0FBRyxJQUFJLEVBQUU7WUFDN0IsaUJBQWlCLEdBQUcsR0FBRyxDQUFDO1NBQ3pCO1FBQ0QsSUFBSSxPQUFPLEdBQUcsS0FBSyxFQUFFO1lBQ25CLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNoQixhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDekI7SUFDSCxDQUFDLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztBQUN4QixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsQ0FBSSxLQUFhLEVBQUUsWUFBa0IsRUFBRSxFQUFFO0lBQ3BFLElBQUk7UUFDRixPQUFPLE9BQU8sS0FBSyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0tBQ25FO0lBQ0QsT0FBTyxHQUFHLEVBQUU7UUFDVixPQUFPLFlBQVksQ0FBQztLQUNyQjtBQUNILENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLENBQUMsS0FBYSxFQUFFLEVBQUUsQ0FBQyxPQUFPLEtBQUssS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUU5RyxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsQ0FBQyxNQUFhLEVBQUUsU0FBa0IsRUFBRSxFQUFFLENBQzlELENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQVksRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksR0FBRyxVQUFVLENBQUMsR0FBRyxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUVuSCxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsQ0FBQyxLQUE4QyxFQUFFLFNBQVMsR0FBRyxLQUFLLEVBQVUsRUFBRSxDQUN6RyxPQUFPLEtBQUssS0FBSyxXQUFXLElBQUksS0FBSyxLQUFLLElBQUksQ0FBQyxDQUFDO0lBQzlDLElBQVcsQ0FBQyxDQUFDO0lBQ2IsQ0FDRSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsR0FBRyxLQUFLLEVBQUUsQ0FBQyxDQUM3RSxDQUFDO0FBRU4sTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLENBQUMsSUFBUyxFQUFFLEtBQWEsRUFBRSxRQUFnQixFQUFFLEVBQUU7SUFDdEUsSUFBSTtRQUNGLE9BQU8sYUFBYSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztLQUNuRDtJQUNELE9BQU8sR0FBRyxFQUFFO1FBQ1YsT0FBTyxJQUFJLENBQUM7S0FDYjtBQUNILENBQUMsQ0FBQztBQWVELENBQUM7QUFrQkQsQ0FBQztBQVdGLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxDQUFJLEtBQXVCLEVBQXFCLEVBQUUsQ0FDNUUsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFFOUQsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLEtBQVUsRUFBRSxRQUFhLEVBQUUsRUFBRTtJQUN6RCxNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUQsTUFBTSxhQUFhLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3RFLE9BQU8sQ0FBQyxHQUFHLFVBQVUsRUFBRSxHQUFHLGFBQWEsQ0FBQyxDQUFDO0FBQzNDLENBQUMsQ0FBQztBQUVGLE1BQU0sZUFBZSxHQUFHLENBQUMsVUFBOEIsRUFBRSxFQUFFLENBQUM7SUFDMUQsa0JBQWtCLENBQUMsUUFBUTtJQUMzQixrQkFBa0IsQ0FBQyxRQUFRLENBQUM7SUFDNUIsa0JBQWtCLENBQUMsUUFBUSxDQUFDO0lBQzVCLGtCQUFrQixDQUFDLFFBQVEsQ0FBQztJQUM1QixrQkFBa0IsQ0FBQyxVQUFVO0NBQzlCLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0FBRXRCLE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxJQUFTLEVBQUUsWUFBbUIsRUFBRSxFQUFFLENBQzlELENBQUMsWUFBWSxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7QUFFOUYsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUc7SUFDL0IsT0FBTyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxTQUFTO0lBQ3pGLFlBQVksRUFBRSxhQUFhO0NBQzVCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxDQUM5QixRQUFhLEVBQUUsRUFDZixHQUE4RixFQUM5RixpQkFBc0IsRUFBRSxFQUN4QixZQUFtQixFQUNELEVBQUU7SUFDcEIsTUFBTSxNQUFNLEdBQXFCLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxFQUFFO1FBQ2pILElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTLEVBQUUsWUFBWSxDQUFDLEVBQUU7WUFDbEQsT0FBTyxLQUFLLENBQUM7U0FDZDtRQUVELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzQixNQUFNLE1BQU0sR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JDLEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUk7WUFDL0IsSUFBSSxFQUFFLFNBQVMsQ0FBQyxJQUFJO1lBQ3BCLGVBQWUsRUFBRSxlQUFlLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQztZQUN0RCxNQUFNLEVBQUUsRUFBRTtZQUNWLGNBQWMsRUFBRSxFQUFFO1NBQ25CLENBQUM7UUFDRixLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUM7UUFDL0YsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ25ELEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxHQUFHLG9CQUFvQixDQUN2RCxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFDbEMsU0FBUyxDQUFDLEtBQUssQ0FDaEIsQ0FBQztRQUNGLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUNuQyxNQUFNLFFBQVEsR0FBRyxHQUFHLENBQUMsU0FBUyxFQUFFLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUM5QyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHO2dCQUN2QyxHQUFHLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ2pELEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDckQsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBc0IsQ0FBQyxDQUFDO0lBRWxDLDBCQUEwQjtJQUMxQixNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRTtRQUNoQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDckMsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDdkMsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNqQyxNQUFNLGFBQWEsR0FBRyxHQUFHLENBQUMsY0FBYyxFQUFFLElBQUksS0FBSyxLQUFLLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQVEsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxNQUFNLENBQUMsQ0FBQztZQUNwSCxJQUFJLGFBQWEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO2dCQUM1QixNQUFNLEtBQUssR0FBRyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBWSxFQUFFLElBQVMsRUFBRSxFQUFFLENBQUMsb0JBQW9CLENBQ2xGLEtBQUssRUFDTCxJQUFJLENBQUMsS0FBSyxDQUNYLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQ1AsS0FBSyxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxhQUFhLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQzthQUNoRTtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFFSCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsQ0FBQyxHQUFXLEVBQUUsR0FBWSxFQUFFLEVBQUUsQ0FBQyxDQUFJLENBQUksRUFBRSxDQUFJLEVBQVUsRUFBRSxDQUMvRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUV4RyxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsQ0FBQyxJQUFJLEdBQUcsRUFBRSxFQUFFLFNBQVMsR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUNwRCxJQUFJLENBQUMsTUFBTSxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7QUFFeEUsTUFBTSxTQUFTLEdBQUcsa0RBQWtELENBQUM7QUFFckUsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLENBQUMsUUFBd0QsRUFBRSxFQUFFLENBQ2xGLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FDVCxRQUFRLENBQUMsR0FBRyxJQUFJLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM1QixHQUFHLFNBQVMsR0FBRyxRQUFRLENBQUMsR0FBRyxJQUFJLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQy9DLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxTQUFTLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FDMUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0FBRWhCLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxDQUFDLEdBQVcsRUFBRSxFQUFFLENBQ3hDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUNyQixHQUFHLENBQUMsT0FBTyxDQUFDLGlCQUFpQixFQUFFLE9BQU8sQ0FBQztLQUNwQyxPQUFPLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDO0tBQzFELFNBQVMsQ0FBQyxDQUFDLENBQ2hCLEVBQUUsQ0FBQztBQUVMLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxDQUFDLEtBQWMsRUFBRSxFQUFFLENBQzNDLEtBQUssQ0FBQyxDQUFDO0lBQ0wsS0FBSztRQUNILDBDQUEwQztTQUN6QyxPQUFPLENBQUMsc0JBQXNCLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDO1FBQ25GLG1CQUFtQjtTQUNsQixPQUFPLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDcEQsNkJBQTZCO1NBQzVCLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDO1FBQ25ELGVBQWU7U0FDZCxPQUFPLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDekMsSUFBSSxDQUFDO0FBRVQsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxJQUFjLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7QUFFMUcsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLENBQUMsSUFBWSxFQUFFLEVBQUUsQ0FDNUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztBQUUvRixNQUFNLGdCQUFnQixHQUVsQjtJQUNGLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBMkIsRUFBRSxFQUFFLENBQzVGLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxJQUFJLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDOUMsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLElBQUk7UUFDYixPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsSUFBSTtRQUNiLE9BQU87S0FDUixDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQzlCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFlLEVBQUUsRUFBRSxDQUFDLElBQUksSUFBSSxXQUFZO0NBQzlFLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsQ0FBQyxJQUFVLEVBQUUsRUFBRSxDQUN6QyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQ0wsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FDdEYsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0FBRW5DLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxDQUFDLEtBQWEsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUUsSUFBSSxFQUFFLEdBQUcsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBRTNFLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxDQUFJLEVBQUssRUFBRSxLQUFhLEVBQVUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUUvRSxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsQ0FBQyxJQUFVLEVBQUUsT0FBTyxHQUFHLENBQUMsRUFBRSxFQUFFO0lBQ3ZELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxHQUFHLE9BQU8sQ0FBQyxDQUFDO0lBQzdDLE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLENBQUMsSUFBVSxFQUFFLEtBQUssR0FBRyxDQUFDLEVBQUUsRUFBRTtJQUNuRCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsR0FBRyxLQUFLLENBQUMsQ0FBQztJQUN2QyxPQUFPLElBQUksQ0FBQztBQUNkLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBRyxDQUFDLEtBQUssR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7QUFFN0UsTUFBTSxDQUFOLElBQVksZ0JBR1g7QUFIRCxXQUFZLGdCQUFnQjtJQUMxQix5Q0FBcUIsQ0FBQTtJQUNyQix1Q0FBbUIsQ0FBQTtBQUNyQixDQUFDLEVBSFcsZ0JBQWdCLEtBQWhCLGdCQUFnQixRQUczQjtBQU1ELE1BQU0sWUFBWSxHQUFxQjtJQUNyQyxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxFQUFFLENBQUMsS0FBSyxHQUFHLFFBQVE7SUFDbEUsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsUUFBUSxDQUFDLEdBQUcsUUFBUSxDQUFDLEdBQUcsR0FBRztDQUN2RixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLENBQUMsS0FBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsS0FBSyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUV2RSxNQUFNLENBQUMsTUFBTSxLQUFLLEdBQUcsQ0FDbkIsS0FBVSxFQUNWLGFBQWtCLEVBQ2xCLFdBQVcsR0FBRyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQ3RDLGdCQUFtQyxFQUNuQyxFQUFFO0lBQ0YsTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2hELE1BQU0sY0FBYyxHQUFHLFVBQVUsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztJQUNoRSxNQUFNLFVBQVUsbUNBQVEsWUFBWSxHQUFLLGdCQUFnQixDQUFFLENBQUM7SUFDNUQsTUFBTSxJQUFJLEdBQUcsTUFBTSxLQUFLLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFFLENBQUMsTUFBTSxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBQzlGLE9BQU8sTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUM5RCxDQUFDLENBQUM7QUFFRixNQUFNLENBQU4sSUFBWSxXQUlYO0FBSkQsV0FBWSxXQUFXO0lBQ3JCLGtDQUFtQixDQUFBO0lBQ25CLGtDQUFtQixDQUFBO0lBQ25CLGdDQUFpQixDQUFBO0FBQ25CLENBQUMsRUFKVyxXQUFXLEtBQVgsV0FBVyxRQUl0QjtBQUVELE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxDQUFDLEtBQVUsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztBQUV4RixNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLFFBQVEsR0FBRyxFQUFFLEVBQUUsRUFBRTtJQUNsRCxNQUFNLElBQUksR0FBRyxTQUFTLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3JDLGdCQUFnQjtJQUNoQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztBQUN4RSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBnZXQgPSByZXF1aXJlKCdsb2Rhc2guZ2V0Jyk7XG5pbXBvcnQgeyBnZXRDb2xvciB9IGZyb20gJ3JhbmRvbS1tYXRlcmlhbC1jb2xvcic7XG5pbXBvcnQge1xuICBOb2RlVHlwZSwgVGVybSwgSlNPTkxELCBJQ3ljbGVKU09OTEQsIElTaXRlSlNPTkxELCBJSW1wYWN0QXNzZXNzbWVudEpTT05MRCwgRW1pc3Npb25NZXRob2RUaWVyXG59IGZyb20gJ0BoZXN0aWEtZWFydGgvc2NoZW1hJztcbmltcG9ydCB7IGZpbGVUb0V4dCB9IGZyb20gJ0BoZXN0aWEtZWFydGgvYXBpJztcbmltcG9ydCB7IGlzRW1wdHkgfSBmcm9tICdAaGVzdGlhLWVhcnRoL3V0aWxzJztcblxuZXhwb3J0IGNvbnN0IGdpdEhvbWUgPSAnaHR0cHM6Ly9naXRsYWIuY29tL2hlc3RpYS1lYXJ0aCc7XG5leHBvcnQgY29uc3QgZ2l0UmF3QmFzZVVybCA9ICdodHRwczovL2dsY2RuLmdpdGhhY2suY29tL2hlc3RpYS1lYXJ0aCc7XG5cbmV4cG9ydCBjb25zdCBpc0Nocm9tZSA9ICgpID0+IHdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50LmluY2x1ZGVzKCdDaHJvbWUnKTtcblxuZXhwb3J0IGNvbnN0IGJhc2VVcmwgPSAoKSA9PlxuICB3aW5kb3cubG9jYXRpb24ub3JpZ2luLmluY2x1ZGVzKCdsb2NhbGhvc3QnKSA/XG4gICAgJ2h0dHBzOi8vd3d3LWRldi5oZXN0aWEuZWFydGgnIDpcbiAgICB3aW5kb3cubG9jYXRpb24ub3JpZ2luLmluY2x1ZGVzKCdoZXN0aWEuZWFydGgnKSA/XG4gICAgICB3aW5kb3cubG9jYXRpb24ub3JpZ2luIDpcbiAgICAgICdodHRwczovL3d3dy5oZXN0aWEuZWFydGgnO1xuXG5leHBvcnQgY29uc3QgaXNFeHRlcm5hbCA9ICgpID0+IGJhc2VVcmwoKSAhPT0gd2luZG93LmxvY2F0aW9uLm9yaWdpbjs7XG5cbmV4cG9ydCBjb25zdCBsb2FkU2NyaXB0ID0gKHNyYz86IHN0cmluZykgPT4gbmV3IFByb21pc2U8YW55PigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gIGlmICghc3JjIHx8IGRvY3VtZW50LmJvZHkucXVlcnlTZWxlY3RvckFsbCgnc2NyaXB0W3NyYz1cIicgKyBzcmMgKyAnXCJdJykubGVuZ3RoID4gMCkge1xuICAgIHJldHVybiByZXNvbHZlKHt9KTtcbiAgfVxuXG4gIGNvbnN0IHNjcmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xuICBzY3JpcHQub25sb2FkID0gcmVzb2x2ZTtcbiAgc2NyaXB0Lm9uZXJyb3IgPSByZWplY3Q7XG4gIHNjcmlwdC5zcmMgPSBzcmM7XG4gIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoc2NyaXB0KTtcbn0pO1xuXG5jb25zdCBwYXJzZUVycm9yU3RhdHVzID0gKGVycm9yOiBhbnkpID0+IChlcnJvcj8uc3RhdHVzVGV4dCB8fCAnJykudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9cXHMvZywgJy0nKTtcblxuY29uc3QgcGFyc2VFcnJvck1lc3NhZ2UgPSAoZXJyb3I6IGFueSkgPT5cbiAgZ2V0KGVycm9yLCAnZXJyb3IuZXJyb3InLCBnZXQoZXJyb3IsICdlcnJvci5tZXNzYWdlJywgZ2V0KGVycm9yLCAnZXJyb3InLCBnZXQoZXJyb3IsICdtZXNzYWdlJywgZXJyb3IpKSkpO1xuXG5leHBvcnQgY29uc3QgaGFuZGxlQVBJRXJyb3IgPSAoZXJyb3I6IGFueSkgPT4ge1xuICB0cnkge1xuICAgIGVycm9yID0gcGFyc2VFcnJvck1lc3NhZ2UoZXJyb3IpO1xuICB9XG4gIGNhdGNoIChfKSB7IH1cbiAgdGhyb3cgZXJyb3I7XG59O1xuXG5leHBvcnQgY29uc3QgZXJyb3JUZXh0ID0gKGVycm9yOiBhbnkpOiBzdHJpbmcgPT4ge1xuICBpZiAodHlwZW9mIGVycm9yID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBlcnJvcjtcbiAgfVxuICBjb25zdCBlcnIgPSBwYXJzZUVycm9yTWVzc2FnZShlcnJvcik7XG4gIHJldHVybiBwYXJzZUVycm9yU3RhdHVzKGVycikgfHwgZXJyO1xufTtcblxuZXhwb3J0IGNvbnN0IHRvRm9ybURhdGEgPSAoZGF0YTogYW55LCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpKSA9PiB7XG4gIGZvciAoY29uc3Qga2V5IGluIGRhdGEpIHtcbiAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICBjb25zdCB2YWx1ZSA9IGRhdGFba2V5XTtcbiAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnKSB7XG4gICAgICAgIGZvcm1EYXRhLmFwcGVuZChrZXksIEpTT04uc3RyaW5naWZ5KHZhbHVlKSk7XG4gICAgICB9XG4gICAgICBlbHNlIHtcbiAgICAgICAgZm9ybURhdGEuYXBwZW5kKGtleSwgdmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gZm9ybURhdGE7XG59O1xuXG5leHBvcnQgY29uc3QgZmlsdGVyUGFyYW1zID0gKG9iajogYW55KSA9PiB7XG4gIGNvbnN0IHJlczoge1xuICAgIFt4OiBzdHJpbmddOiBzdHJpbmc7XG4gIH0gPSB7fTtcbiAgT2JqZWN0LmtleXMob2JqKS5zb3J0KCkuZm9yRWFjaChrZXkgPT4ge1xuICAgIGNvbnN0IHZhbHVlID0gb2JqW2tleV07XG4gICAgaWYgKHZhbHVlICYmIHZhbHVlICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgcmVzW2tleV0gPSBgJHt2YWx1ZX1gO1xuICAgIH1cbiAgfSk7XG4gIHJldHVybiByZXM7XG59O1xuXG5leHBvcnQgY29uc3QgdG9TZWFyY2hQYXJhbXMgPSAocGFyYW1zOiBhbnkgPSB7fSkgPT4ge1xuICBjb25zdCBzZWFyY2hQYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKCk7XG4gIE9iamVjdC5rZXlzKHBhcmFtcylcbiAgICAuZmlsdGVyKGtleSA9PiB0eXBlb2YgcGFyYW1zW2tleV0gIT09ICd1bmRlZmluZWQnKVxuICAgIC5mb3JFYWNoKGtleSA9PiBzZWFyY2hQYXJhbXMuYXBwZW5kKGtleSwgYCR7cGFyYW1zW2tleV19YCkpO1xuICByZXR1cm4gc2VhcmNoUGFyYW1zO1xufTtcblxuZXhwb3J0IGNvbnN0IHdhaXRGb3IgPSAodmFyaWFibGU6IHN0cmluZywgY2FsbGJhY2s6ICgpID0+IHZvaWQpID0+IHtcbiAgaWYgKHZhcmlhYmxlIGluIHdpbmRvdykge1xuICAgIHJldHVybiBjYWxsYmFjaygpO1xuICB9XG4gIHNldFRpbWVvdXQoKCkgPT4gd2FpdEZvcih2YXJpYWJsZSwgY2FsbGJhY2spLCAxMDApO1xufTtcblxuZXhwb3J0IGNvbnN0IGJvdHRvbSA9IChlbGVtZW50OiBIVE1MRWxlbWVudCkgPT4gZWxlbWVudC5vZmZzZXRUb3AgKyBlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodDtcblxuZXhwb3J0IGNvbnN0IGlzU2Nyb2xsZWRCZWxvdyA9IChlbGVtZW50OiBIVE1MRWxlbWVudCkgPT4gZWxlbWVudCA/IHdpbmRvdy5zY3JvbGxZID4gYm90dG9tKGVsZW1lbnQpIDogZmFsc2U7XG5cbmV4cG9ydCBjb25zdCBzY3JvbGxUb0VsID0gKGlkOiBzdHJpbmcsIHJldHJpZXMgPSAwKSA9PiB7XG4gIGNvbnN0IGVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpO1xuICBzZXRUaW1lb3V0KCgpID0+IGVsID8gZWwuc2Nyb2xsSW50b1ZpZXcoKSA6IChyZXRyaWVzIDwgMTAgPyBzY3JvbGxUb0VsKGlkLCByZXRyaWVzICsgMSkgOiBudWxsKSwgMTAwKTtcbn07XG5cbmV4cG9ydCBjb25zdCBzY3JvbGxUb3AgPSAoKSA9PiB3aW5kb3cuc2Nyb2xsVG8oMCwgMCk7XG5cbmV4cG9ydCBjb25zdCBhbmltYXRlQ291bnRlciA9ICh0b3RhbDogbnVtYmVyLCBjYWxsYmFjazogKGNvdW50OiBudW1iZXIpID0+IHZvaWQpID0+IHtcbiAgbGV0IGFuaW1hdGlvbkR1cmF0aW9uID0gMTA7XG4gIGNvbnN0IHN0ZXAgPSBNYXRoLnBvdygxMCwgYCR7dG90YWx9YC5sZW5ndGggLSAxKTtcbiAgY29uc3QgbWF4U3RlcHMgPSBwYXJzZUludChgJHt0b3RhbCAvIHN0ZXB9YCwgMTApO1xuICBsZXQgY3VycmVudCA9IDA7XG4gIGNvbnN0IGludGVydmFsID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xuICAgIGNhbGxiYWNrKGN1cnJlbnQpO1xuICAgIGN1cnJlbnQgKz0gKHN0ZXAgLyBhbmltYXRpb25EdXJhdGlvbik7XG4gICAgaWYgKGN1cnJlbnQgPiBtYXhTdGVwcyAqIHN0ZXApIHtcbiAgICAgIGFuaW1hdGlvbkR1cmF0aW9uID0gMTAwO1xuICAgIH1cbiAgICBpZiAoY3VycmVudCA+IHRvdGFsKSB7XG4gICAgICBjYWxsYmFjayh0b3RhbCk7XG4gICAgICBjbGVhckludGVydmFsKGludGVydmFsKTtcbiAgICB9XG4gIH0sIGFuaW1hdGlvbkR1cmF0aW9uKTtcbn07XG5cbmV4cG9ydCBjb25zdCBzYWZlSlNPTlBhcnNlID0gPFQ+KHZhbHVlOiBzdHJpbmcsIGRlZmF1bHRWYWx1ZT86IGFueSkgPT4ge1xuICB0cnkge1xuICAgIHJldHVybiB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnID8gSlNPTi5wYXJzZSh2YWx1ZSkgYXMgVCA6IHZhbHVlO1xuICB9XG4gIGNhdGNoIChlcnIpIHtcbiAgICByZXR1cm4gZGVmYXVsdFZhbHVlO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3Qgc2FmZUpTT05TdHJpbmdpZnkgPSAodmFsdWU6IHN0cmluZykgPT4gdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyA/IHZhbHVlIDogSlNPTi5zdHJpbmdpZnkodmFsdWUpO1xuXG5leHBvcnQgY29uc3QgYXJyYXlWYWx1ZSA9ICh2YWx1ZXM6IGFueVtdLCBpc0F2ZXJhZ2U6IGJvb2xlYW4pID0+XG4gICh2YWx1ZXMgfHwgW10pLnJlZHVjZSgocHJldjogbnVtYmVyLCBjdXJyKSA9PiBwcmV2ICsgcGFyc2VGbG9hdChgJHtjdXJyfWApLCAwKSAvIChpc0F2ZXJhZ2UgPyB2YWx1ZXMubGVuZ3RoIDogMSk7XG5cbmV4cG9ydCBjb25zdCBwcm9wZXJ0eVZhbHVlID0gKHZhbHVlOiBzdHJpbmcgfCBudW1iZXIgfCAoKHN0cmluZyB8IG51bWJlcilbXSksIGlzQXZlcmFnZSA9IGZhbHNlKTogbnVtYmVyID0+XG4gIHR5cGVvZiB2YWx1ZSA9PT0gJ3VuZGVmaW5lZCcgfHwgdmFsdWUgPT09IG51bGwgP1xuICAgIG51bGwgYXMgYW55IDpcbiAgICAoXG4gICAgICBBcnJheS5pc0FycmF5KHZhbHVlKSA/IGFycmF5VmFsdWUodmFsdWUsIGlzQXZlcmFnZSkgOiBwYXJzZUZsb2F0KGAke3ZhbHVlfWApXG4gICAgKTtcblxuZXhwb3J0IGNvbnN0IGRhdGFWYWx1ZSA9IChkYXRhOiBhbnksIGluZGV4OiBudW1iZXIsIHByb3BlcnR5OiBzdHJpbmcpID0+IHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gcHJvcGVydHlWYWx1ZShkYXRhW3Byb3BlcnR5XVtpbmRleF0udmFsdWUpO1xuICB9XG4gIGNhdGNoIChlcnIpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxufTtcblxuZXhwb3J0IGludGVyZmFjZSBJR3JvdXBlZE5vZGU8VD4ge1xuICBub2RlczogVFtdO1xuICBpbmRleDogbnVtYmVyO1xuICB2YWx1ZTogbnVtYmVyW107XG4gIGRhdGVzPzogYW55W107XG4gIHNkPzogbnVtYmVyW107XG4gIG1pbj86IG51bWJlcltdO1xuICBtYXg/OiBudW1iZXJbXTtcbiAgaW5wdXRzPzogYW55W107XG4gIGRlcHRoVXBwZXI/OiBudW1iZXJbXTtcbiAgZGVwdGhMb3dlcj86IG51bWJlcltdO1xuICBzdGFydERhdGU/OiBzdHJpbmdbXTtcbiAgZW5kRGF0ZT86IHN0cmluZ1tdO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBJR3JvdXBlZE5vZGVzVmFsdWVzPFQ+IHtcbiAgW25vZGVJZDogc3RyaW5nXTogSUdyb3VwZWROb2RlPFQ+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElHcm91cGVkTm9kZXNWYWx1ZTxUPiB7XG4gIHRlcm06IFRlcm07XG4gIC8qKlxuICAgKiBFbmFibGUgb3JkZXJpbmcgbnkgbWV0aG9kVGllclxuICAgKi9cbiAgbWV0aG9kVGllck9yZGVyOiBudW1iZXI7XG4gIHZhbHVlczogSUdyb3VwZWROb2Rlc1ZhbHVlczxUPjtcbiAgb3JpZ2luYWxWYWx1ZXM6IHtcbiAgICBbbm9kZUlkOiBzdHJpbmddOiB7XG4gICAgICB2YWx1ZTogbnVtYmVyO1xuICAgIH07XG4gIH07XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIElHcm91cGVkTm9kZXM8VD4ge1xuICBbdGVybUlkOiBzdHJpbmddOiBJR3JvdXBlZE5vZGVzVmFsdWU8VD47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUdyb3VwZWRLZXlzPFQ+IHtcbiAga2V5OiBzdHJpbmc7XG4gIHZhbHVlOiBJR3JvdXBlZE5vZGVzVmFsdWU8VD47XG59XG5cbmV4cG9ydCBjb25zdCBncm91cHBlZEtleXMgPSA8VD4odmFsdWU6IElHcm91cGVkTm9kZXM8VD4pOiBJR3JvdXBlZEtleXM8VD5bXSA9PlxuICBPYmplY3Qua2V5cyh2YWx1ZSkubWFwKGtleSA9PiAoeyBrZXksIHZhbHVlOiB2YWx1ZVtrZXldIH0pKTtcblxuY29uc3QgY29uY2F0QmxhbmtOb2RlVmFsdWUgPSAodmFsdWU6IGFueSwgbmV3VmFsdWU6IGFueSkgPT4ge1xuICBjb25zdCB2YWx1ZUFycmF5ID0gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZSA6IFt2YWx1ZV07XG4gIGNvbnN0IG5ld1ZhbHVlQXJyYXkgPSBBcnJheS5pc0FycmF5KG5ld1ZhbHVlKSA/IG5ld1ZhbHVlIDogW25ld1ZhbHVlXTtcbiAgcmV0dXJuIFsuLi52YWx1ZUFycmF5LCAuLi5uZXdWYWx1ZUFycmF5XTtcbn07XG5cbmNvbnN0IG1ldGhvZFRpZXJPcmRlciA9IChtZXRob2RUaWVyOiBFbWlzc2lvbk1ldGhvZFRpZXIpID0+IFtcbiAgRW1pc3Npb25NZXRob2RUaWVyLm1lYXN1cmVkLFxuICBFbWlzc2lvbk1ldGhvZFRpZXJbJ3RpZXIgMyddLFxuICBFbWlzc2lvbk1ldGhvZFRpZXJbJ3RpZXIgMiddLFxuICBFbWlzc2lvbk1ldGhvZFRpZXJbJ3RpZXIgMSddLFxuICBFbWlzc2lvbk1ldGhvZFRpZXIuYmFja2dyb3VuZFxuXS5pbmRleE9mKG1ldGhvZFRpZXIpO1xuXG5jb25zdCBpc01ldGhvZE1vZGVsQWxsb3dlZCA9IChub2RlOiBhbnksIGZpbHRlck1ldGhvZD86IFRlcm0pID0+XG4gICFmaWx0ZXJNZXRob2QgfHwgIW5vZGVbJ21ldGhvZE1vZGVsJ10gfHwgbm9kZVsnbWV0aG9kTW9kZWwnXVsnQGlkJ10gPT09IGZpbHRlck1ldGhvZFsnQGlkJ107XG5cbmV4cG9ydCBjb25zdCBncm91cHBlZFZhbHVlS2V5cyA9IFtcbiAgJ2RhdGVzJywgJ3NkJywgJ21pbicsICdtYXgnLCAnaW5wdXRzJywgJ2RlcHRoVXBwZXInLCAnZGVwdGhMb3dlcicsICdzdGFydERhdGUnLCAnZW5kRGF0ZScsXG4gICdtZXRob2RUaWVyJywgJ21ldGhvZE1vZGVsJ1xuXTtcblxuZXhwb3J0IGNvbnN0IGdyb3VwTm9kZXNCeVRlcm0gPSA8VCBleHRlbmRzIElDeWNsZUpTT05MRCB8IElJbXBhY3RBc3Nlc3NtZW50SlNPTkxEIHwgSVNpdGVKU09OTEQsIFI+KFxuICBub2RlczogVFtdID0gW10sXG4gIGtleTogJ2ltcGFjdHMnIHwgJ2VtaXNzaW9uc1Jlc291cmNlVXNlJyB8ICdpbnB1dHMnIHwgJ3Byb2R1Y3RzJyB8ICdlbWlzc2lvbnMnIHwgJ21lYXN1cmVtZW50cycsXG4gIG9yaWdpbmFsVmFsdWVzOiBUW10gPSBbXSxcbiAgZmlsdGVyTWV0aG9kPzogVGVybVxuKTogSUdyb3VwZWROb2RlczxSPiA9PiB7XG4gIGNvbnN0IGdyb3VwczogSUdyb3VwZWROb2RlczxSPiA9IG5vZGVzLnJlZHVjZSgocHJldiwgbm9kZSwgaW5kZXgpID0+IChub2RlW2tleV0gfHwgW10pLnJlZHVjZSgoZ3JvdXAsIGJsYW5rTm9kZSkgPT4ge1xuICAgIGlmICghaXNNZXRob2RNb2RlbEFsbG93ZWQoYmxhbmtOb2RlLCBmaWx0ZXJNZXRob2QpKSB7XG4gICAgICByZXR1cm4gZ3JvdXA7XG4gICAgfVxuXG4gICAgY29uc3Qgbm9kZUlkID0gbm9kZVsnQGlkJ107XG4gICAgY29uc3QgdGVybUlkID0gYmxhbmtOb2RlLnRlcm1bJ0BpZCddO1xuICAgIGdyb3VwW3Rlcm1JZF0gPSBncm91cFt0ZXJtSWRdIHx8IHtcbiAgICAgIHRlcm06IGJsYW5rTm9kZS50ZXJtLFxuICAgICAgbWV0aG9kVGllck9yZGVyOiBtZXRob2RUaWVyT3JkZXIoYmxhbmtOb2RlLm1ldGhvZFRpZXIpLFxuICAgICAgdmFsdWVzOiB7fSxcbiAgICAgIG9yaWdpbmFsVmFsdWVzOiB7fVxuICAgIH07XG4gICAgZ3JvdXBbdGVybUlkXS52YWx1ZXNbbm9kZUlkXSA9IGdyb3VwW3Rlcm1JZF0udmFsdWVzW25vZGVJZF0gfHwgeyBpbmRleCwgbm9kZXM6IFtdLCB2YWx1ZTogW10gfTtcbiAgICBncm91cFt0ZXJtSWRdLnZhbHVlc1tub2RlSWRdLm5vZGVzLnB1c2goYmxhbmtOb2RlKTtcbiAgICBncm91cFt0ZXJtSWRdLnZhbHVlc1tub2RlSWRdLnZhbHVlID0gY29uY2F0QmxhbmtOb2RlVmFsdWUoXG4gICAgICBncm91cFt0ZXJtSWRdLnZhbHVlc1tub2RlSWRdLnZhbHVlLFxuICAgICAgYmxhbmtOb2RlLnZhbHVlXG4gICAgKTtcbiAgICBncm91cHBlZFZhbHVlS2V5cy5mb3JFYWNoKGFycmF5S2V5ID0+IHtcbiAgICAgIGNvbnN0IG5ld1ZhbHVlID0gZ2V0KGJsYW5rTm9kZSwgYXJyYXlLZXksIFtdKTtcbiAgICAgIGdyb3VwW3Rlcm1JZF0udmFsdWVzW25vZGVJZF1bYXJyYXlLZXldID0gW1xuICAgICAgICAuLi4oZ3JvdXBbdGVybUlkXS52YWx1ZXNbbm9kZUlkXVthcnJheUtleV0gfHwgW10pLFxuICAgICAgICAuLi4oQXJyYXkuaXNBcnJheShuZXdWYWx1ZSkgPyBuZXdWYWx1ZSA6IFtuZXdWYWx1ZV0pXG4gICAgICBdO1xuICAgIH0pO1xuICAgIHJldHVybiBncm91cDtcbiAgfSwgcHJldiksIHt9IGFzIElHcm91cGVkTm9kZXM8Uj4pO1xuXG4gIC8vIGNvbXBpbGUgb3JpZ2luYWwgdmFsdWVzXG4gIE9iamVjdC52YWx1ZXMoZ3JvdXBzKS5tYXAoZ3JvdXAgPT4ge1xuICAgIE9iamVjdC5rZXlzKGdyb3VwLnZhbHVlcykubWFwKG5vZGVJZCA9PiB7XG4gICAgICBjb25zdCB7IGluZGV4IH0gPSBncm91cC52YWx1ZXNbbm9kZUlkXTtcbiAgICAgIGNvbnN0IHRlcm1JZCA9IGdyb3VwLnRlcm1bJ0BpZCddO1xuICAgICAgY29uc3Qgb3JpZ2luYWxWYWx1ZSA9IGdldChvcmlnaW5hbFZhbHVlcywgYFske2luZGV4fV0uJHtrZXl9YCwgW10pLmZpbHRlcigodmFsOiBhbnkpID0+IHZhbC50ZXJtWydAaWQnXSA9PT0gdGVybUlkKTtcbiAgICAgIGlmIChvcmlnaW5hbFZhbHVlLmxlbmd0aCA+IDApIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBvcmlnaW5hbFZhbHVlLnJlZHVjZSgoYXJyYXk6IGFueVtdLCBjdXJyOiBhbnkpID0+IGNvbmNhdEJsYW5rTm9kZVZhbHVlKFxuICAgICAgICAgIGFycmF5LFxuICAgICAgICAgIGN1cnIudmFsdWVcbiAgICAgICAgKSwgW10pO1xuICAgICAgICBncm91cC5vcmlnaW5hbFZhbHVlc1tub2RlSWRdID0geyB2YWx1ZTogcHJvcGVydHlWYWx1ZSh2YWx1ZSkgfTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSk7XG5cbiAgcmV0dXJuIGdyb3Vwcztcbn07XG5cbmV4cG9ydCBjb25zdCBzb3J0QnlGbiA9IChrZXk6IHN0cmluZywgYXNjOiBib29sZWFuKSA9PiA8VD4oYTogVCwgYjogVCk6IG51bWJlciA9PlxuICBhc2MgPyBnZXQoYSwga2V5LCAnJykubG9jYWxlQ29tcGFyZShnZXQoYiwga2V5LCAnJykpIDogZ2V0KGIsIGtleSwgJycpLmxvY2FsZUNvbXBhcmUoZ2V0KGEsIGtleSwgJycpKTtcblxuZXhwb3J0IGNvbnN0IGVsbGlwc2lzID0gKHRleHQgPSAnJywgbWF4bGVuZ3RoID0gMjApID0+XG4gIHRleHQubGVuZ3RoID4gbWF4bGVuZ3RoID8gYCR7dGV4dC5zdWJzdHJpbmcoMCwgbWF4bGVuZ3RoKX0uLi5gIDogdGV4dDtcblxuY29uc3QgbWFwc1F1ZXJ5ID0gJ2h0dHBzOi8vd3d3Lmdvb2dsZS5jb20vbWFwcy9zZWFyY2gvP2FwaT0xJnF1ZXJ5PSc7XG5cbmV4cG9ydCBjb25zdCBtYXBzVXJsID0gKGxvY2F0aW9uPzogeyBsYXQ/OiBudW1iZXI7IGxuZz86IG51bWJlcjsgbmFtZT86IHN0cmluZyB9KSA9PlxuICBsb2NhdGlvbiA/IChcbiAgICBsb2NhdGlvbi5sYXQgJiYgbG9jYXRpb24ubG5nID9cbiAgICAgIGAke21hcHNRdWVyeX0ke2xvY2F0aW9uLmxhdH0sJHtsb2NhdGlvbi5sbmd9YCA6XG4gICAgICAobG9jYXRpb24ubmFtZSA/IGAke21hcHNRdWVyeX0ke2VuY29kZVVSSShsb2NhdGlvbi5uYW1lKX1gIDogdW5kZWZpbmVkKVxuICApIDogdW5kZWZpbmVkO1xuXG5leHBvcnQgY29uc3Qga2V5VG9MYWJlbCA9IChrZXk6IHN0cmluZykgPT5cbiAgYCR7a2V5WzBdLnRvVXBwZXJDYXNlKCl9JHtcbiAgICBrZXkucmVwbGFjZSgvKFthLXpdKShbQS1aXSkvZywgJyQxICQyJylcbiAgICAgIC5yZXBsYWNlKC8oW19dKShbYS16QS1aXSkvZywgZyA9PiBgICR7Z1sxXS50b1VwcGVyQ2FzZSgpfWApXG4gICAgICAuc3Vic3RyaW5nKDEpXG4gIH1gO1xuXG5leHBvcnQgY29uc3QgdG9EYXNoQ2FzZSA9ICh2YWx1ZT86IHN0cmluZykgPT5cbiAgdmFsdWUgP1xuICAgIHZhbHVlXG4gICAgICAvLyBoYW5kbGUgZGF0ZXMgZm9sbG93ZWQgYnkgY2FwaXRhbCBsZXR0ZXJcbiAgICAgIC5yZXBsYWNlKC8oW1xcZF17NH0pKFtBLVpdezF9KS9nLCBnID0+IGAke2cuc3Vic3RyaW5nKDAsIDQpfS0ke2dbNF0udG9Mb3dlckNhc2UoKX1gKVxuICAgICAgLy8gaGFuZGxlIG1vbGVjdWxlc1xuICAgICAgLnJlcGxhY2UoLyhbXFxkXXsxfVtBLVpdezF9KS9nLCBnID0+IGcudG9Mb3dlckNhc2UoKSlcbiAgICAgIC8vIGhhbmRsZSBhbGwgY2FwaXRhbCBsZXR0ZXJzXG4gICAgICAucmVwbGFjZSgvKFtBLVpdKS9nLCBnID0+IGAtJHtnWzBdLnRvTG93ZXJDYXNlKCl9YClcbiAgICAgIC8vIGhhbmRsZSB5ZWFyc1xuICAgICAgLnJlcGxhY2UoLyhbMC05XXs0fSkvZywgZyA9PiBgLSR7Z31gKSA6XG4gICAgbnVsbDtcblxuZXhwb3J0IGNvbnN0IG5vZGVUeXBlVG9TdHJpbmcgPSAodHlwZTogTm9kZVR5cGUpID0+IGAke3R5cGUuY2hhckF0KDApLnRvTG93ZXJDYXNlKCl9JHt0eXBlLnN1YnN0cmluZygxKX1gO1xuXG5leHBvcnQgY29uc3QgcGFyc2VOb2RlVHlwZSA9ICh0eXBlOiBzdHJpbmcpID0+XG4gIE9iamVjdC52YWx1ZXMoTm9kZVR5cGUpLmZpbmQodiA9PiB2LnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKSA9PT0gKHR5cGUgfHwgJycpLnRvTG93ZXJDYXNlKCkpO1xuXG5jb25zdCBub2RlRGVmYXVsdExhYmVsOiB7XG4gIFt0eXBlIGluIE5vZGVUeXBlXT86IChkYXRhOiBKU09OTEQ8YW55PikgPT4gc3RyaW5nO1xufSA9IHtcbiAgW05vZGVUeXBlLkltcGFjdEFzc2Vzc21lbnRdOiAoeyBuYW1lLCBjb3VudHJ5LCBlbmREYXRlLCBwcm9kdWN0IH06IElJbXBhY3RBc3Nlc3NtZW50SlNPTkxEKSA9PlxuICAgIG5hbWUgPyBuYW1lLnJlcGxhY2UoYCR7cHJvZHVjdD8ubmFtZX0sIGAsICcnKSA6IFtcbiAgICAgIHByb2R1Y3Q/Lm5hbWUsXG4gICAgICBjb3VudHJ5Py5uYW1lLFxuICAgICAgZW5kRGF0ZVxuICAgIF0uZmlsdGVyKEJvb2xlYW4pLmpvaW4oJywgJyksXG4gIFtOb2RlVHlwZS5TaXRlXTogKHsgbmFtZSwgZGVzY3JpcHRpb24gfTogSVNpdGVKU09OTEQpID0+IG5hbWUgfHwgZGVzY3JpcHRpb24hXG59O1xuXG5leHBvcnQgY29uc3QgZGVmYXVsdExhYmVsID0gKG5vZGU/OiBhbnkpID0+XG4gIG5vZGUgPyAoXG4gICAgbm9kZVsnQHR5cGUnXSBpbiBub2RlRGVmYXVsdExhYmVsID8gbm9kZURlZmF1bHRMYWJlbFtub2RlWydAdHlwZSddXShub2RlKSA6IG5vZGUubmFtZVxuICApIHx8IG5vZGVbJ0BpZCddIHx8IG5vZGUuaWQgOiAnJztcblxuZXhwb3J0IGNvbnN0IGl0ZW1Db2xvciA9IChpbmRleDogbnVtYmVyKSA9PiBnZXRDb2xvcih7IHRleHQ6IGAke2luZGV4fWAgfSk7XG5cbmV4cG9ydCBjb25zdCBsaXN0Q29sb3IgPSA8VD4oX3Y6IFQsIGluZGV4OiBudW1iZXIpOiBzdHJpbmcgPT4gaXRlbUNvbG9yKGluZGV4KTtcblxuZXhwb3J0IGNvbnN0IG1pbnV0ZXNCZWZvcmUgPSAoZGF0ZTogRGF0ZSwgbWludXRlcyA9IDEpID0+IHtcbiAgZGF0ZS5zZXRNaW51dGVzKGRhdGUuZ2V0TWludXRlcygpIC0gbWludXRlcyk7XG4gIHJldHVybiBkYXRlO1xufTtcblxuZXhwb3J0IGNvbnN0IGhvdXJzQmVmb3JlID0gKGRhdGU6IERhdGUsIGhvdXJzID0gMSkgPT4ge1xuICBkYXRlLnNldEhvdXJzKGRhdGUuZ2V0SG91cnMoKSAtIGhvdXJzKTtcbiAgcmV0dXJuIGRhdGU7XG59O1xuXG5leHBvcnQgY29uc3QgcmVwZWF0ID0gKHRpbWVzID0gMCkgPT4gKEFycmF5LmZyb20oQXJyYXkodGltZXMpLCBNYXRoLnJhbmRvbSkpO1xuXG5leHBvcnQgZW51bSBEZWx0YURpc3BsYXlUeXBlIHtcbiAgYWJzb2x1dGUgPSAnYWJzb2x1dGUnLFxuICBwZXJjZW50ID0gJ3BlcmNlbnQnXG59XG5cbnR5cGUgZGVsdGFUeXBlTWFwcGluZyA9IHtcbiAgW3R5cGUgaW4gRGVsdGFEaXNwbGF5VHlwZV0/OiAodmFsdWU6IG51bWJlciwgb3JpZ2luYWw6IG51bWJlcikgPT4gbnVtYmVyO1xufTtcblxuY29uc3QgZGVsdGFQZXJUeXBlOiBkZWx0YVR5cGVNYXBwaW5nID0ge1xuICBbRGVsdGFEaXNwbGF5VHlwZS5hYnNvbHV0ZV06ICh2YWx1ZSwgb3JpZ2luYWwpID0+IHZhbHVlIC0gb3JpZ2luYWwsXG4gIFtEZWx0YURpc3BsYXlUeXBlLnBlcmNlbnRdOiAodmFsdWUsIG9yaWdpbmFsKSA9PiAoKHZhbHVlIC0gb3JpZ2luYWwpIC8gb3JpZ2luYWwpICogMTAwXG59O1xuXG5leHBvcnQgY29uc3Qgcm91bmRWYWx1ZSA9ICh2YWx1ZTogYW55KSA9PiArYCR7dmFsdWV9YC5zdWJzdHJpbmcoMCwgMTApO1xuXG5leHBvcnQgY29uc3QgZGVsdGEgPSAoXG4gIHZhbHVlOiBhbnksXG4gIG9yaWdpbmFsVmFsdWU6IGFueSxcbiAgZGlzcGxheVR5cGUgPSBEZWx0YURpc3BsYXlUeXBlLnBlcmNlbnQsXG4gIGN1c3RvbURlbHRhRnVuY3M/OiBkZWx0YVR5cGVNYXBwaW5nXG4pID0+IHtcbiAgY29uc3QgdnZhbHVlID0gcm91bmRWYWx1ZShwcm9wZXJ0eVZhbHVlKHZhbHVlKSk7XG4gIGNvbnN0IHZvcmlnaW5hbFZhbHVlID0gcm91bmRWYWx1ZShwcm9wZXJ0eVZhbHVlKG9yaWdpbmFsVmFsdWUpKTtcbiAgY29uc3QgZGVsdGFGdW5jcyA9IHsgLi4uZGVsdGFQZXJUeXBlLCAuLi5jdXN0b21EZWx0YUZ1bmNzIH07XG4gIGNvbnN0IGRpZmYgPSB2dmFsdWUgPT09IHZvcmlnaW5hbFZhbHVlID8gMCA6IGRlbHRhRnVuY3NbZGlzcGxheVR5cGVdISh2dmFsdWUsIHZvcmlnaW5hbFZhbHVlKTtcbiAgcmV0dXJuIE51bWJlci5pc0Zpbml0ZShkaWZmKSA/IChkaWZmID09PSAtMCA/IDAgOiBkaWZmKSA6IDA7XG59O1xuXG5leHBvcnQgZW51bSBEZWx0YUNvbG91ciB7XG4gIFN1Y2Nlc3MgPSAnc3VjY2VzcycsXG4gIFdhcm5pbmcgPSAnd2FybmluZycsXG4gIERhbmdlciA9ICdkYW5nZXInXG59XG5cbmV4cG9ydCBjb25zdCBlbXB0eVZhbHVlID0gKHZhbHVlOiBhbnkpID0+IGlzRW1wdHkodmFsdWUpIHx8IGlzTmFOKHByb3BlcnR5VmFsdWUodmFsdWUpKTtcblxuZXhwb3J0IGNvbnN0IGZpbGVuYW1lV2l0aG91dEV4dCA9IChmaWxlbmFtZSA9ICcnKSA9PiB7XG4gIGNvbnN0IGZpbGUgPSBmaWxlVG9FeHQoZmlsZW5hbWUsICcnKTtcbiAgLy8gcmVtb3ZlIGxhc3QgLlxuICByZXR1cm4gZmlsZS5lbmRzV2l0aCgnLicpID8gZmlsZS5zdWJzdHJpbmcoMCwgZmlsZS5sZW5ndGggLSAxKSA6IGZpbGU7XG59O1xuIl19
190
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tbW9uL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sR0FBRyxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQztBQUNsQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDakQsT0FBTyxFQUNMLFFBQVEsRUFBb0Usa0JBQWtCLEVBQy9GLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFdEQsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLGlDQUFpQyxDQUFDO0FBQ3pELE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyx3Q0FBd0MsQ0FBQztBQUN0RSxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsR0FBRyxFQUFFLENBQUMsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO0FBRTlHLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7QUFFNUUsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLEdBQUcsRUFBRSxDQUMxQixNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztJQUM1Qyw4QkFBOEIsQ0FBQyxDQUFDO0lBQ2hDLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFFB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QUFDLENBQUM7SUFDckMsZ0JBQWdCO0lBQ2hCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0FBQ3hFLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGdldCA9IHJlcXVpcmUoJ2xvZGFzaC5nZXQnKTtcbmltcG9ydCB7IGdldENvbG9yIH0gZnJvbSAncmFuZG9tLW1hdGVyaWFsLWNvbG9yJztcbmltcG9ydCB7XG4gIE5vZGVUeXBlLCBUZXJtLCBKU09OTEQsIElDeWNsZUpTT05MRCwgSVNpdGVKU09OTEQsIElJbXBhY3RBc3Nlc3NtZW50SlNPTkxELCBFbWlzc2lvbk1ldGhvZFRpZXJcbn0gZnJvbSAnQGhlc3RpYS1lYXJ0aC9zY2hlbWEnO1xuaW1wb3J0IHsgZmlsZVRvRXh0IH0gZnJvbSAnQGhlc3RpYS1lYXJ0aC9hcGknO1xuaW1wb3J0IHsgaXNFbXB0eSwgdW5pcXVlIH0gZnJvbSAnQGhlc3RpYS1lYXJ0aC91dGlscyc7XG5cbmV4cG9ydCBjb25zdCBnaXRIb21lID0gJ2h0dHBzOi8vZ2l0bGFiLmNvbS9oZXN0aWEtZWFydGgnO1xuZXhwb3J0IGNvbnN0IGdpdFJhd0Jhc2VVcmwgPSAnaHR0cHM6Ly9nbGNkbi5naXRoYWNrLmNvbS9oZXN0aWEtZWFydGgnO1xuZXhwb3J0IGNvbnN0IGdpdEJyYW5jaCA9ICgpID0+IFsnZGV2JywgJ3N0YWdpbmcnXS5zb21lKGVudiA9PiBiYXNlVXJsKCkuaW5jbHVkZXMoZW52KSkgPyAnZGV2ZWxvcCcgOiAnbWFzdGVyJztcblxuZXhwb3J0IGNvbnN0IGlzQ2hyb21lID0gKCkgPT4gd2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnQuaW5jbHVkZXMoJ0Nocm9tZScpO1xuXG5leHBvcnQgY29uc3QgYmFzZVVybCA9ICgpID0+XG4gIHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4uaW5jbHVkZXMoJ2xvY2FsaG9zdCcpID9cbiAgICAnaHR0cHM6Ly93d3ctZGV2Lmhlc3RpYS5lYXJ0aCcgOlxuICAgIHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4uaW5jbHVkZXMoJ2hlc3RpYS5lYXJ0aCcpID9cbiAgICAgIHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4gOlxuICAgICAgJ2h0dHBzOi8vd3d3Lmhlc3RpYS5lYXJ0aCc7XG5cbmV4cG9ydCBjb25zdCBpc0V4dGVybmFsID0gKCkgPT4gYmFzZVVybCgpICE9PSB3aW5kb3cubG9jYXRpb24ub3JpZ2luOztcblxuY29uc3QgcGFyc2VFcnJvclN0YXR1cyA9IChlcnJvcjogYW55KSA9PiAoZXJyb3I/LnN0YXR1c1RleHQgfHwgJycpLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvXFxzL2csICctJyk7XG5cbmNvbnN0IHBhcnNlRXJyb3JNZXNzYWdlID0gKGVycm9yOiBhbnkpID0+XG4gIGdldChlcnJvciwgJ2Vycm9yLmVycm9yJywgZ2V0KGVycm9yLCAnZXJyb3IubWVzc2FnZScsIGdldChlcnJvciwgJ2Vycm9yJywgZ2V0KGVycm9yLCAnbWVzc2FnZScsIGVycm9yKSkpKTtcblxuZXhwb3J0IGNvbnN0IGhhbmRsZUFQSUVycm9yID0gKGVycm9yOiBhbnkpID0+IHtcbiAgdHJ5IHtcbiAgICBlcnJvciA9IHBhcnNlRXJyb3JNZXNzYWdlKGVycm9yKTtcbiAgfVxuICBjYXRjaCAoXykgeyB9XG4gIHRocm93IGVycm9yO1xufTtcblxuZXhwb3J0IGNvbnN0IGVycm9yVGV4dCA9IChlcnJvcjogYW55KTogc3RyaW5nID0+IHtcbiAgaWYgKHR5cGVvZiBlcnJvciA9PT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gZXJyb3I7XG4gIH1cbiAgY29uc3QgZXJyID0gcGFyc2VFcnJvck1lc3NhZ2UoZXJyb3IpO1xuICByZXR1cm4gcGFyc2VFcnJvclN0YXR1cyhlcnIpIHx8IGVycjtcbn07XG5cbmV4cG9ydCBjb25zdCBmaWx0ZXJQYXJhbXMgPSAob2JqOiBhbnkpID0+IHtcbiAgY29uc3QgcmVzOiB7XG4gICAgW3g6IHN0cmluZ106IHN0cmluZztcbiAgfSA9IHt9O1xuICBPYmplY3Qua2V5cyhvYmopLnNvcnQoKS5mb3JFYWNoKGtleSA9PiB7XG4gICAgY29uc3QgdmFsdWUgPSBvYmpba2V5XTtcbiAgICBpZiAodmFsdWUgJiYgdmFsdWUgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICByZXNba2V5XSA9IGAke3ZhbHVlfWA7XG4gICAgfVxuICB9KTtcbiAgcmV0dXJuIHJlcztcbn07XG5cbmV4cG9ydCBjb25zdCB3YWl0Rm9yID0gKHZhcmlhYmxlOiBzdHJpbmcsIGNhbGxiYWNrOiAoKSA9PiB2b2lkKSA9PiB7XG4gIGlmICh2YXJpYWJsZSBpbiB3aW5kb3cpIHtcbiAgICByZXR1cm4gY2FsbGJhY2soKTtcbiAgfVxuICBzZXRUaW1lb3V0KCgpID0+IHdhaXRGb3IodmFyaWFibGUsIGNhbGxiYWNrKSwgMTAwKTtcbn07XG5cbmV4cG9ydCBjb25zdCBib3R0b20gPSAoZWxlbWVudDogSFRNTEVsZW1lbnQpID0+IGVsZW1lbnQub2Zmc2V0VG9wICsgZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQ7XG5cbmV4cG9ydCBjb25zdCBpc1Njcm9sbGVkQmVsb3cgPSAoZWxlbWVudDogSFRNTEVsZW1lbnQpID0+IGVsZW1lbnQgPyB3aW5kb3cuc2Nyb2xsWSA+IGJvdHRvbShlbGVtZW50KSA6IGZhbHNlO1xuXG5leHBvcnQgY29uc3Qgc2Nyb2xsVG9FbCA9IChpZDogc3RyaW5nLCByZXRyaWVzID0gMCkgPT4ge1xuICBjb25zdCBlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKTtcbiAgc2V0VGltZW91dCgoKSA9PiBlbCA/IGVsLnNjcm9sbEludG9WaWV3KCkgOiAocmV0cmllcyA8IDEwID8gc2Nyb2xsVG9FbChpZCwgcmV0cmllcyArIDEpIDogbnVsbCksIDEwMCk7XG59O1xuXG5leHBvcnQgY29uc3Qgc2Nyb2xsVG9wID0gKCkgPT4gd2luZG93LnNjcm9sbFRvKDAsIDApO1xuXG5leHBvcnQgY29uc3Qgc2FmZUpTT05QYXJzZSA9IDxUPih2YWx1ZTogc3RyaW5nLCBkZWZhdWx0VmFsdWU/OiBhbnkpID0+IHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyA/IEpTT04ucGFyc2UodmFsdWUpIGFzIFQgOiB2YWx1ZTtcbiAgfVxuICBjYXRjaCAoZXJyKSB7XG4gICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IHNhZmVKU09OU3RyaW5naWZ5ID0gKHZhbHVlOiBzdHJpbmcpID0+IHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgPyB2YWx1ZSA6IEpTT04uc3RyaW5naWZ5KHZhbHVlKTtcblxuZXhwb3J0IGNvbnN0IGFycmF5VmFsdWUgPSAodmFsdWVzOiBhbnlbXSwgaXNBdmVyYWdlOiBib29sZWFuKSA9PlxuICAodmFsdWVzIHx8IFtdKS5yZWR1Y2UoKHByZXY6IG51bWJlciwgY3VycikgPT4gcHJldiArIHBhcnNlRmxvYXQoYCR7Y3Vycn1gKSwgMCkgLyAoaXNBdmVyYWdlID8gdmFsdWVzLmxlbmd0aCA6IDEpO1xuXG5leHBvcnQgY29uc3QgcHJvcGVydHlWYWx1ZSA9ICh2YWx1ZTogc3RyaW5nIHwgbnVtYmVyIHwgKChzdHJpbmcgfCBudW1iZXIpW10pLCBpc0F2ZXJhZ2UgPSBmYWxzZSk6IG51bWJlciA9PlxuICB0eXBlb2YgdmFsdWUgPT09ICd1bmRlZmluZWQnIHx8IHZhbHVlID09PSBudWxsID9cbiAgICBudWxsIGFzIGFueSA6XG4gICAgKFxuICAgICAgQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyBhcnJheVZhbHVlKHZhbHVlLCBpc0F2ZXJhZ2UpIDogcGFyc2VGbG9hdChgJHt2YWx1ZX1gKVxuICAgICk7XG5cbmV4cG9ydCBjb25zdCBkYXRhVmFsdWUgPSAoZGF0YTogYW55LCBpbmRleDogbnVtYmVyLCBwcm9wZXJ0eTogc3RyaW5nKSA9PiB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIHByb3BlcnR5VmFsdWUoZGF0YVtwcm9wZXJ0eV1baW5kZXhdLnZhbHVlKTtcbiAgfVxuICBjYXRjaCAoZXJyKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUdyb3VwZWROb2RlPFQ+IHtcbiAgbm9kZXM6IFRbXTtcbiAgaW5kZXg6IG51bWJlcjtcbiAgdmFsdWU6IG51bWJlcltdO1xuICBkYXRlcz86IGFueVtdO1xuICBzZD86IG51bWJlcltdO1xuICBtaW4/OiBudW1iZXJbXTtcbiAgbWF4PzogbnVtYmVyW107XG4gIGlucHV0cz86IGFueVtdO1xuICBkZXB0aFVwcGVyPzogbnVtYmVyW107XG4gIGRlcHRoTG93ZXI/OiBudW1iZXJbXTtcbiAgc3RhcnREYXRlPzogc3RyaW5nW107XG4gIGVuZERhdGU/OiBzdHJpbmdbXTtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUdyb3VwZWROb2Rlc1ZhbHVlczxUPiB7XG4gIFtub2RlSWQ6IHN0cmluZ106IElHcm91cGVkTm9kZTxUPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJR3JvdXBlZE5vZGVzVmFsdWU8VD4ge1xuICB0ZXJtOiBUZXJtO1xuICAvKipcbiAgICogRW5hYmxlIG9yZGVyaW5nIG55IG1ldGhvZFRpZXJcbiAgICovXG4gIG1ldGhvZFRpZXJPcmRlcjogbnVtYmVyO1xuICB2YWx1ZXM6IElHcm91cGVkTm9kZXNWYWx1ZXM8VD47XG4gIG9yaWdpbmFsVmFsdWVzOiB7XG4gICAgW25vZGVJZDogc3RyaW5nXToge1xuICAgICAgdmFsdWU6IG51bWJlcjtcbiAgICB9O1xuICB9O1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBJR3JvdXBlZE5vZGVzPFQ+IHtcbiAgW3Rlcm1JZDogc3RyaW5nXTogSUdyb3VwZWROb2Rlc1ZhbHVlPFQ+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElHcm91cGVkS2V5czxUPiB7XG4gIGtleTogc3RyaW5nO1xuICB2YWx1ZTogSUdyb3VwZWROb2Rlc1ZhbHVlPFQ+O1xufVxuXG5leHBvcnQgY29uc3QgZ3JvdXBwZWRLZXlzID0gPFQ+KHZhbHVlOiBJR3JvdXBlZE5vZGVzPFQ+KTogSUdyb3VwZWRLZXlzPFQ+W10gPT5cbiAgT2JqZWN0LmtleXModmFsdWUpLm1hcChrZXkgPT4gKHsga2V5LCB2YWx1ZTogdmFsdWVba2V5XSB9KSk7XG5cbmNvbnN0IGNvbmNhdEJsYW5rTm9kZVZhbHVlID0gKHZhbHVlOiBhbnksIG5ld1ZhbHVlOiBhbnkpID0+IHtcbiAgY29uc3QgdmFsdWVBcnJheSA9IEFycmF5LmlzQXJyYXkodmFsdWUpID8gdmFsdWUgOiBbdmFsdWVdO1xuICBjb25zdCBuZXdWYWx1ZUFycmF5ID0gQXJyYXkuaXNBcnJheShuZXdWYWx1ZSkgPyBuZXdWYWx1ZSA6IFtuZXdWYWx1ZV07XG4gIHJldHVybiBbLi4udmFsdWVBcnJheSwgLi4ubmV3VmFsdWVBcnJheV07XG59O1xuXG5jb25zdCBtZXRob2RUaWVyT3JkZXIgPSAobWV0aG9kVGllcjogRW1pc3Npb25NZXRob2RUaWVyKSA9PiBbXG4gIEVtaXNzaW9uTWV0aG9kVGllci5tZWFzdXJlZCxcbiAgRW1pc3Npb25NZXRob2RUaWVyWyd0aWVyIDMnXSxcbiAgRW1pc3Npb25NZXRob2RUaWVyWyd0aWVyIDInXSxcbiAgRW1pc3Npb25NZXRob2RUaWVyWyd0aWVyIDEnXSxcbiAgRW1pc3Npb25NZXRob2RUaWVyLmJhY2tncm91bmRcbl0uaW5kZXhPZihtZXRob2RUaWVyKTtcblxuY29uc3QgaXNNZXRob2RNb2RlbEFsbG93ZWQgPSAobm9kZTogYW55LCBmaWx0ZXJNZXRob2Q/OiBUZXJtKSA9PlxuICAhZmlsdGVyTWV0aG9kIHx8ICFub2RlWydtZXRob2RNb2RlbCddIHx8IG5vZGVbJ21ldGhvZE1vZGVsJ11bJ0BpZCddID09PSBmaWx0ZXJNZXRob2RbJ0BpZCddO1xuXG5leHBvcnQgY29uc3QgZ3JvdXBwZWRWYWx1ZUtleXMgPSBbXG4gICdkYXRlcycsICdzZCcsICdtaW4nLCAnbWF4JywgJ2lucHV0cycsICdkZXB0aFVwcGVyJywgJ2RlcHRoTG93ZXInLCAnc3RhcnREYXRlJywgJ2VuZERhdGUnLFxuICAnbWV0aG9kVGllcicsICdtZXRob2RNb2RlbCdcbl07XG5cbmV4cG9ydCBjb25zdCBncm91cE5vZGVzQnlUZXJtID0gPFQgZXh0ZW5kcyBJQ3ljbGVKU09OTEQgfCBJSW1wYWN0QXNzZXNzbWVudEpTT05MRCB8IElTaXRlSlNPTkxELCBSPihcbiAgbm9kZXM6IFRbXSA9IFtdLFxuICBrZXk6ICdpbXBhY3RzJyB8ICdlbWlzc2lvbnNSZXNvdXJjZVVzZScgfCAnaW5wdXRzJyB8ICdwcm9kdWN0cycgfCAnZW1pc3Npb25zJyB8ICdtZWFzdXJlbWVudHMnLFxuICBvcmlnaW5hbFZhbHVlczogVFtdID0gW10sXG4gIGZpbHRlck1ldGhvZD86IFRlcm1cbik6IElHcm91cGVkTm9kZXM8Uj4gPT4ge1xuICBjb25zdCBncm91cHM6IElHcm91cGVkTm9kZXM8Uj4gPSBub2Rlcy5yZWR1Y2UoKHByZXYsIG5vZGUsIGluZGV4KSA9PiAobm9kZVtrZXldIHx8IFtdKS5yZWR1Y2UoKGdyb3VwLCBibGFua05vZGUpID0+IHtcbiAgICBpZiAoIWlzTWV0aG9kTW9kZWxBbGxvd2VkKGJsYW5rTm9kZSwgZmlsdGVyTWV0aG9kKSkge1xuICAgICAgcmV0dXJuIGdyb3VwO1xuICAgIH1cblxuICAgIGNvbnN0IG5vZGVJZCA9IG5vZGVbJ0BpZCddO1xuICAgIGNvbnN0IHRlcm1JZCA9IGJsYW5rTm9kZS50ZXJtWydAaWQnXTtcbiAgICBncm91cFt0ZXJtSWRdID0gZ3JvdXBbdGVybUlkXSB8fCB7XG4gICAgICB0ZXJtOiBibGFua05vZGUudGVybSxcbiAgICAgIG1ldGhvZFRpZXJPcmRlcjogbWV0aG9kVGllck9yZGVyKGJsYW5rTm9kZS5tZXRob2RUaWVyKSxcbiAgICAgIHZhbHVlczoge30sXG4gICAgICBvcmlnaW5hbFZhbHVlczoge31cbiAgICB9O1xuICAgIGdyb3VwW3Rlcm1JZF0udmFsdWVzW25vZGVJZF0gPSBncm91cFt0ZXJtSWRdLnZhbHVlc1tub2RlSWRdIHx8IHsgaW5kZXgsIG5vZGVzOiBbXSwgdmFsdWU6IFtdIH07XG4gICAgZ3JvdXBbdGVybUlkXS52YWx1ZXNbbm9kZUlkXS5ub2Rlcy5wdXNoKGJsYW5rTm9kZSk7XG4gICAgZ3JvdXBbdGVybUlkXS52YWx1ZXNbbm9kZUlkXS52YWx1ZSA9IGNvbmNhdEJsYW5rTm9kZVZhbHVlKFxuICAgICAgZ3JvdXBbdGVybUlkXS52YWx1ZXNbbm9kZUlkXS52YWx1ZSxcbiAgICAgIGJsYW5rTm9kZS52YWx1ZVxuICAgICk7XG4gICAgZ3JvdXBwZWRWYWx1ZUtleXMuZm9yRWFjaChhcnJheUtleSA9PiB7XG4gICAgICBjb25zdCBuZXdWYWx1ZSA9IGdldChibGFua05vZGUsIGFycmF5S2V5LCBbXSk7XG4gICAgICBncm91cFt0ZXJtSWRdLnZhbHVlc1tub2RlSWRdW2FycmF5S2V5XSA9IFtcbiAgICAgICAgLi4uKGdyb3VwW3Rlcm1JZF0udmFsdWVzW25vZGVJZF1bYXJyYXlLZXldIHx8IFtdKSxcbiAgICAgICAgLi4uKEFycmF5LmlzQXJyYXkobmV3VmFsdWUpID8gbmV3VmFsdWUgOiBbbmV3VmFsdWVdKVxuICAgICAgXTtcbiAgICB9KTtcbiAgICByZXR1cm4gZ3JvdXA7XG4gIH0sIHByZXYpLCB7fSBhcyBJR3JvdXBlZE5vZGVzPFI+KTtcblxuICAvLyBjb21waWxlIG9yaWdpbmFsIHZhbHVlc1xuICBPYmplY3QudmFsdWVzKGdyb3VwcykubWFwKGdyb3VwID0+IHtcbiAgICBPYmplY3Qua2V5cyhncm91cC52YWx1ZXMpLm1hcChub2RlSWQgPT4ge1xuICAgICAgY29uc3QgeyBpbmRleCB9ID0gZ3JvdXAudmFsdWVzW25vZGVJZF07XG4gICAgICBjb25zdCB0ZXJtSWQgPSBncm91cC50ZXJtWydAaWQnXTtcbiAgICAgIGNvbnN0IG9yaWdpbmFsVmFsdWUgPSBnZXQob3JpZ2luYWxWYWx1ZXMsIGBbJHtpbmRleH1dLiR7a2V5fWAsIFtdKS5maWx0ZXIoKHZhbDogYW55KSA9PiB2YWwudGVybVsnQGlkJ10gPT09IHRlcm1JZCk7XG4gICAgICBpZiAob3JpZ2luYWxWYWx1ZS5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gb3JpZ2luYWxWYWx1ZS5yZWR1Y2UoKGFycmF5OiBhbnlbXSwgY3VycjogYW55KSA9PiBjb25jYXRCbGFua05vZGVWYWx1ZShcbiAgICAgICAgICBhcnJheSxcbiAgICAgICAgICBjdXJyLnZhbHVlXG4gICAgICAgICksIFtdKTtcbiAgICAgICAgZ3JvdXAub3JpZ2luYWxWYWx1ZXNbbm9kZUlkXSA9IHsgdmFsdWU6IHByb3BlcnR5VmFsdWUodmFsdWUpIH07XG4gICAgICB9XG4gICAgfSk7XG4gIH0pO1xuXG4gIHJldHVybiBncm91cHM7XG59O1xuXG5leHBvcnQgY29uc3QgZWxsaXBzaXMgPSAodGV4dCA9ICcnLCBtYXhsZW5ndGggPSAyMCkgPT5cbiAgdGV4dC5sZW5ndGggPiBtYXhsZW5ndGggPyBgJHt0ZXh0LnN1YnN0cmluZygwLCBtYXhsZW5ndGgpfS4uLmAgOiB0ZXh0O1xuXG5jb25zdCBtYXBzUXVlcnkgPSAnaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9tYXBzL3NlYXJjaC8/YXBpPTEmcXVlcnk9JztcblxuZXhwb3J0IGNvbnN0IG1hcHNVcmwgPSAobG9jYXRpb24/OiB7IGxhdD86IG51bWJlcjsgbG5nPzogbnVtYmVyOyBuYW1lPzogc3RyaW5nIH0pID0+XG4gIGxvY2F0aW9uID8gKFxuICAgIGxvY2F0aW9uLmxhdCAmJiBsb2NhdGlvbi5sbmcgP1xuICAgICAgYCR7bWFwc1F1ZXJ5fSR7bG9jYXRpb24ubGF0fSwke2xvY2F0aW9uLmxuZ31gIDpcbiAgICAgIChsb2NhdGlvbi5uYW1lID8gYCR7bWFwc1F1ZXJ5fSR7ZW5jb2RlVVJJKGxvY2F0aW9uLm5hbWUpfWAgOiB1bmRlZmluZWQpXG4gICkgOiB1bmRlZmluZWQ7XG5cbmV4cG9ydCBjb25zdCBrZXlUb0xhYmVsID0gKGtleTogc3RyaW5nKSA9PlxuICBgJHtrZXlbMF0udG9VcHBlckNhc2UoKX0ke1xuICAgIGtleS5yZXBsYWNlKC8oW2Etel0pKFtBLVpdKS9nLCAnJDEgJDInKVxuICAgICAgLnJlcGxhY2UoLyhbX10pKFthLXpBLVpdKS9nLCBnID0+IGAgJHtnWzFdLnRvVXBwZXJDYXNlKCl9YClcbiAgICAgIC5zdWJzdHJpbmcoMSlcbiAgfWA7XG5cbmV4cG9ydCBjb25zdCB0b0Rhc2hDYXNlID0gKHZhbHVlPzogc3RyaW5nKSA9PlxuICB2YWx1ZSA/XG4gICAgdmFsdWVcbiAgICAgIC8vIGhhbmRsZSBkYXRlcyBmb2xsb3dlZCBieSBjYXBpdGFsIGxldHRlclxuICAgICAgLnJlcGxhY2UoLyhbXFxkXXs0fSkoW0EtWl17MX0pL2csIGcgPT4gYCR7Zy5zdWJzdHJpbmcoMCwgNCl9LSR7Z1s0XS50b0xvd2VyQ2FzZSgpfWApXG4gICAgICAvLyBoYW5kbGUgbW9sZWN1bGVzXG4gICAgICAucmVwbGFjZSgvKFtcXGRdezF9W0EtWl17MX0pL2csIGcgPT4gZy50b0xvd2VyQ2FzZSgpKVxuICAgICAgLy8gaGFuZGxlIGFsbCBjYXBpdGFsIGxldHRlcnNcbiAgICAgIC5yZXBsYWNlKC8oW0EtWl0pL2csIGcgPT4gYC0ke2dbMF0udG9Mb3dlckNhc2UoKX1gKVxuICAgICAgLy8gaGFuZGxlIHllYXJzXG4gICAgICAucmVwbGFjZSgvKFswLTldezR9KS9nLCBnID0+IGAtJHtnfWApIDpcbiAgICBudWxsO1xuXG5jb25zdCBub2RlRGVmYXVsdExhYmVsOiB7XG4gIFt0eXBlIGluIE5vZGVUeXBlXT86IChkYXRhOiBKU09OTEQ8YW55PikgPT4gc3RyaW5nO1xufSA9IHtcbiAgW05vZGVUeXBlLkltcGFjdEFzc2Vzc21lbnRdOiAoeyBuYW1lLCBjb3VudHJ5LCBlbmREYXRlLCBwcm9kdWN0IH06IElJbXBhY3RBc3Nlc3NtZW50SlNPTkxEKSA9PlxuICAgIG5hbWUgPyBuYW1lLnJlcGxhY2UoYCR7cHJvZHVjdD8ubmFtZX0sIGAsICcnKSA6IFtcbiAgICAgIHByb2R1Y3Q/Lm5hbWUsXG4gICAgICBjb3VudHJ5Py5uYW1lLFxuICAgICAgZW5kRGF0ZVxuICAgIF0uZmlsdGVyKEJvb2xlYW4pLmpvaW4oJywgJyksXG4gIFtOb2RlVHlwZS5TaXRlXTogKHsgbmFtZSwgZGVzY3JpcHRpb24gfTogSVNpdGVKU09OTEQpID0+IG5hbWUgfHwgZGVzY3JpcHRpb24hXG59O1xuXG5leHBvcnQgY29uc3QgZGVmYXVsdExhYmVsID0gKG5vZGU/OiBhbnkpID0+XG4gIG5vZGUgPyAoXG4gICAgbm9kZVsnQHR5cGUnXSBpbiBub2RlRGVmYXVsdExhYmVsID8gbm9kZURlZmF1bHRMYWJlbFtub2RlWydAdHlwZSddXShub2RlKSA6IG5vZGUubmFtZVxuICApIHx8IG5vZGVbJ0BpZCddIHx8IG5vZGUuaWQgOiAnJztcblxuZXhwb3J0IGNvbnN0IGl0ZW1Db2xvciA9IChpbmRleDogbnVtYmVyKSA9PiBnZXRDb2xvcih7IHRleHQ6IGAke2luZGV4fWAgfSk7XG5cbmV4cG9ydCBjb25zdCBsaXN0Q29sb3IgPSA8VD4oX3Y6IFQsIGluZGV4OiBudW1iZXIpOiBzdHJpbmcgPT4gaXRlbUNvbG9yKGluZGV4KTtcblxuY29uc3QgcmVkdWNlVmFsdWVzID0gKHZhbHVlczogYW55W10pID0+XG4gIHZhbHVlcy5sZW5ndGggPyB2YWx1ZXMucmVkdWNlKChwLCB2KSA9PiBwICsgcHJvcGVydHlWYWx1ZSh2LnZhbHVlKSwgMCkgOiB1bmRlZmluZWQ7XG5cbmV4cG9ydCBjb25zdCBmb3JtYXREaWZmVmFsdWVzID0gKG9yaWdpbmFsVmFsdWVzOiBhbnlbXSA9IFtdLCByZWNhbGN1bGF0ZWRWYWx1ZXM6IGFueVtdID0gW10pID0+IHtcbiAgY29uc3Qgb3JpZ2luYWxWYWx1ZXNGaWx0ZXJlZCA9IG9yaWdpbmFsVmFsdWVzLmZpbHRlcigodmFsdWUpID0+ICF2YWx1ZS5kZWxldGVkKTtcbiAgY29uc3QgcmVjYWxjdWxhdGVkVmFsdWVzRmlsdGVyZWQgPSByZWNhbGN1bGF0ZWRWYWx1ZXMuZmlsdGVyKCh2YWx1ZSkgPT4gIXZhbHVlLmRlbGV0ZWQpO1xuICBjb25zdCB0ZXJtcyA9IHVuaXF1ZShbLi4ub3JpZ2luYWxWYWx1ZXNGaWx0ZXJlZCwgLi4ucmVjYWxjdWxhdGVkVmFsdWVzRmlsdGVyZWRdLm1hcCgodikgPT4gdi50ZXJtWydAaWQnXSkpLnNvcnQoKTtcbiAgY29uc3QgdmFsdWVzID0gdGVybXMubWFwKCh0ZXJtSWQpID0+IHtcbiAgICBjb25zdCBvcmlnaW5hbCA9IG9yaWdpbmFsVmFsdWVzRmlsdGVyZWQuZmlsdGVyKCh2KSA9PiB0ZXJtSWQgPT09IHYudGVybVsnQGlkJ10pO1xuICAgIGNvbnN0IHJlY2FsY3VsYXRlZCA9IHJlY2FsY3VsYXRlZFZhbHVlc0ZpbHRlcmVkLmZpbHRlcigodikgPT4gdGVybUlkID09PSB2LnRlcm1bJ0BpZCddKTtcbiAgICBjb25zdCB7IHRlcm0gfSA9IG9yaWdpbmFsWzBdIHx8IHJlY2FsY3VsYXRlZFswXSB8fCB7IHRlcm06IHsgJ0BpZCc6IHRlcm1JZCB9IH07XG4gICAgcmV0dXJuIHtcbiAgICAgIHRlcm0sXG4gICAgICBvcmlnaW5hbDogcmVkdWNlVmFsdWVzKG9yaWdpbmFsKSxcbiAgICAgIHJlY2FsY3VsYXRlZDogcmVkdWNlVmFsdWVzKHJlY2FsY3VsYXRlZClcbiAgICB9O1xuICB9KTtcbiAgcmV0dXJuIHZhbHVlcztcbn07XG5cbmV4cG9ydCBjb25zdCBlbXB0eVZhbHVlID0gKHZhbHVlOiBhbnkpID0+IGlzRW1wdHkodmFsdWUpIHx8IGlzTmFOKHByb3BlcnR5VmFsdWUodmFsdWUpKTtcblxuZXhwb3J0IGNvbnN0IHJlcGVhdCA9ICh0aW1lcyA9IDApID0+IChBcnJheS5mcm9tKEFycmF5KHRpbWVzKSwgTWF0aC5yYW5kb20pKTtcblxuZXhwb3J0IGNvbnN0IGZpbGVuYW1lV2l0aG91dEV4dCA9IChmaWxlbmFtZSA9ICcnKSA9PiB7XG4gIGNvbnN0IGZpbGUgPSBmaWxlVG9FeHQoZmlsZW5hbWUsICcnKTtcbiAgLy8gcmVtb3ZlIGxhc3QgLlxuICByZXR1cm4gZmlsZS5lbmRzV2l0aCgnLicpID8gZmlsZS5zdWJzdHJpbmcoMCwgZmlsZS5sZW5ndGggLSAxKSA6IGZpbGU7XG59O1xuIl19
@@ -0,0 +1,12 @@
1
+ export * from './cycles.model';
2
+ export * from './cycles.module';
3
+ export { CyclesActivityComponent } from './cycles-activity/cycles-activity.component';
4
+ export { CyclesActivityLogsComponent } from './cycles-activity-logs/cycles-activity-logs.component';
5
+ export { CyclesCompletenessComponent } from './cycles-completeness/cycles-completeness.component';
6
+ export { CyclesEmissionsChartComponent } from './cycles-emissions-chart/cycles-emissions-chart.component';
7
+ export { CyclesEmissionsLogsComponent } from './cycles-emissions-logs/cycles-emissions-logs.component';
8
+ export { CyclesEmissionsComponent } from './cycles-emissions/cycles-emissions.component';
9
+ export { CyclesFunctionalUnitMeasureComponent } from './cycles-functional-unit-measure/cycles-functional-unit-measure.component';
10
+ export { CyclesResultComponent } from './cycles-result/cycles-result.component';
11
+ export { CyclesSuggestFormComponent } from './cycles-suggest-form/cycles-suggest-form.component';
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY3ljbGVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxpQkFBaUIsQ0FBQztBQUVoQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUN0RixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUNwRyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUNsRyxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSwyREFBMkQsQ0FBQztBQUMxRyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUN2RyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUN6RixPQUFPLEVBQUUsb0NBQW9DLEVBQUUsTUFBTSwyRUFBMkUsQ0FBQztBQUNqSSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNoRixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY3ljbGVzLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vY3ljbGVzLm1vZHVsZSc7XG5cbmV4cG9ydCB7IEN5Y2xlc0FjdGl2aXR5Q29tcG9uZW50IH0gZnJvbSAnLi9jeWNsZXMtYWN0aXZpdHkvY3ljbGVzLWFjdGl2aXR5LmNvbXBvbmVudCc7XG5leHBvcnQgeyBDeWNsZXNBY3Rpdml0eUxvZ3NDb21wb25lbnQgfSBmcm9tICcuL2N5Y2xlcy1hY3Rpdml0eS1sb2dzL2N5Y2xlcy1hY3Rpdml0eS1sb2dzLmNvbXBvbmVudCc7XG5leHBvcnQgeyBDeWNsZXNDb21wbGV0ZW5lc3NDb21wb25lbnQgfSBmcm9tICcuL2N5Y2xlcy1jb21wbGV0ZW5lc3MvY3ljbGVzLWNvbXBsZXRlbmVzcy5jb21wb25lbnQnO1xuZXhwb3J0IHsgQ3ljbGVzRW1pc3Npb25zQ2hhcnRDb21wb25lbnQgfSBmcm9tICcuL2N5Y2xlcy1lbWlzc2lvbnMtY2hhcnQvY3ljbGVzLWVtaXNzaW9ucy1jaGFydC5jb21wb25lbnQnO1xuZXhwb3J0IHsgQ3ljbGVzRW1pc3Npb25zTG9nc0NvbXBvbmVudCB9IGZyb20gJy4vY3ljbGVzLWVtaXNzaW9ucy1sb2dzL2N5Y2xlcy1lbWlzc2lvbnMtbG9ncy5jb21wb25lbnQnO1xuZXhwb3J0IHsgQ3ljbGVzRW1pc3Npb25zQ29tcG9uZW50IH0gZnJvbSAnLi9jeWNsZXMtZW1pc3Npb25zL2N5Y2xlcy1lbWlzc2lvbnMuY29tcG9uZW50JztcbmV4cG9ydCB7IEN5Y2xlc0Z1bmN0aW9uYWxVbml0TWVhc3VyZUNvbXBvbmVudCB9IGZyb20gJy4vY3ljbGVzLWZ1bmN0aW9uYWwtdW5pdC1tZWFzdXJlL2N5Y2xlcy1mdW5jdGlvbmFsLXVuaXQtbWVhc3VyZS5jb21wb25lbnQnO1xuZXhwb3J0IHsgQ3ljbGVzUmVzdWx0Q29tcG9uZW50IH0gZnJvbSAnLi9jeWNsZXMtcmVzdWx0L2N5Y2xlcy1yZXN1bHQuY29tcG9uZW50JztcbmV4cG9ydCB7IEN5Y2xlc1N1Z2dlc3RGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi9jeWNsZXMtc3VnZ2VzdC1mb3JtL2N5Y2xlcy1zdWdnZXN0LWZvcm0uY29tcG9uZW50JztcbiJdfQ==
@@ -4,49 +4,19 @@ import { forkJoin, from, of, ReplaySubject } from 'rxjs';
4
4
  import { catchError, map, take } from 'rxjs/operators';
5
5
  import { TermTermType } from '@hestia-earth/schema';
6
6
  import * as csvtojson from 'csvtojson';
7
- import { worldRegion } from '../search/search.model';
8
- import { primaryProduct } from '../cycles/cycles.model';
9
- import { propertyValue, delta, gitHome, gitRawBaseUrl } from '../common/utils';
7
+ import { gitBranch, gitHome, gitRawBaseUrl } from '../common/utils';
10
8
  import * as i0 from "@angular/core";
11
9
  import * as i1 from "@angular/common/http";
12
- import * as i2 from "../common/common.service";
13
- import * as i3 from "../node/node.service";
14
- const get = require('lodash.get');
15
- const lookups = Object.freeze({
10
+ import * as i2 from "../node/node.service";
11
+ const gitUrl = () => `${gitHome}/hestia-aggregation-engine/-/blob/${gitBranch()}`;
12
+ const rawUrl = () => `${gitRawBaseUrl}/hestia-aggregation-engine/-/raw/${gitBranch()}`;
13
+ export const lookups = Object.freeze({
16
14
  cropYield: 'region-crop-cropGroupingFaostatProduction-yield',
17
15
  cropGroupingColumn: 'cropGroupingFaostatProduction'
18
16
  });
19
- const extractGroupedDataClosesDate = (data, year) => {
20
- const dataByDate = (data || '').split(';').reduce((prev, curr) => (Object.assign(Object.assign({}, prev), (curr.length > 0 && curr.split(':')[1] !== '-' ? { [curr.split(':')[0]]: curr.split(':')[1] } : {}))), {});
21
- const years = Object.keys(dataByDate).map(v => +v);
22
- const closestYear = years.reduce((prev, curr) => Math.abs(curr - year) < Math.abs(prev - year) ? curr : prev, 0);
23
- return closestYear ? +dataByDate[closestYear] / 10 : null;
24
- };
25
- const cropGrouping = (lookup, product) => (lookup.find(({ term }) => term.id === (product === null || product === void 0 ? void 0 : product.term['@id'])) || {})[lookups.cropGroupingColumn];
26
- const cropYieldCountry = (cropYield, cycle) => cropYield.find(({ term }) => term.id === get(cycle, 'site.country.@id', worldRegion['@id'])) || {};
27
- export const extendCycle = ({ crop, cropYield }) => (cycle) => {
28
- var _a, _b, _c;
29
- const product = primaryProduct(cycle);
30
- const grouping = cropGrouping(crop, product);
31
- const countryData = cropYieldCountry(cropYield, cycle)[grouping];
32
- const countryValue = extractGroupedDataClosesDate(countryData, +(cycle.endDate || ''));
33
- const productValue = propertyValue(product === null || product === void 0 ? void 0 : product.value);
34
- return {
35
- cycle,
36
- name: (_a = product === null || product === void 0 ? void 0 : product.term) === null || _a === void 0 ? void 0 : _a.name,
37
- startDate: cycle.startDate,
38
- endDate: cycle.endDate,
39
- country: ((_c = (_b = cycle.site) === null || _b === void 0 ? void 0 : _b.country) === null || _c === void 0 ? void 0 : _c.name) || worldRegion.name,
40
- observations: propertyValue(product === null || product === void 0 ? void 0 : product.observations) || 0,
41
- yield: productValue,
42
- faoYield: countryValue || undefined,
43
- diff: delta(productValue, countryValue)
44
- };
45
- };
46
17
  export class HeAggregationEngineService {
47
- constructor(http, commonService, nodeService) {
18
+ constructor(http, nodeService) {
48
19
  this.http = http;
49
- this.commonService = commonService;
50
20
  this.nodeService = nodeService;
51
21
  this.modelsLoading = false;
52
22
  this.modelsLoaded = false;
@@ -61,18 +31,12 @@ export class HeAggregationEngineService {
61
31
  yield this.loadModels().toPromise();
62
32
  });
63
33
  }
64
- get gitUrl() {
65
- return `${gitHome}/hestia-aggregation-engine/-/blob/${this.commonService.gitBranch}`;
66
- }
67
- get rawUrl() {
68
- return `${gitRawBaseUrl}/hestia-aggregation-engine/-/raw/${this.commonService.gitBranch}`;
69
- }
70
34
  loadModels() {
71
35
  this.modelsLoading = true;
72
- return this.http.get(`${this.rawUrl}/model-links.json`).pipe(catchError(() => of({ links: [] })), map(({ links }) => {
36
+ return this.http.get(`${rawUrl()}/model-links.json`).pipe(catchError(() => of({ links: [] })), map(({ links }) => {
73
37
  this._models.next(links.map((_a) => {
74
38
  var { path: modelPath, docPath } = _a, link = __rest(_a, ["path", "docPath"]);
75
- return (Object.assign(Object.assign({}, link), { path: `${this.gitUrl}/${modelPath}`, docPath: `${this.gitUrl}/${docPath}` }));
39
+ return (Object.assign(Object.assign({}, link), { path: `${gitUrl()}/${modelPath}`, docPath: `${gitUrl()}/${docPath}` }));
76
40
  }));
77
41
  this.modelsLoading = false;
78
42
  this.modelsLoaded = true;
@@ -115,12 +79,12 @@ export class HeAggregationEngineService {
115
79
  return this.lookups$.pipe(take(1)).toPromise();
116
80
  }
117
81
  }
118
- HeAggregationEngineService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: HeAggregationEngineService, deps: [{ token: i1.HttpClient }, { token: i2.HeCommonService }, { token: i3.HeNodeService }], target: i0.ɵɵFactoryTarget.Injectable });
82
+ HeAggregationEngineService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: HeAggregationEngineService, deps: [{ token: i1.HttpClient }, { token: i2.HeNodeService }], target: i0.ɵɵFactoryTarget.Injectable });
119
83
  HeAggregationEngineService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: HeAggregationEngineService, providedIn: 'root' });
120
84
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: HeAggregationEngineService, decorators: [{
121
85
  type: Injectable,
122
86
  args: [{
123
87
  providedIn: 'root'
124
88
  }]
125
- }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.HeCommonService }, { type: i3.HeNodeService }]; } });
126
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdncmVnYXRpb24tZW5naW5lLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZW5naW5lL2FnZ3JlZ2F0aW9uLWVuZ2luZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDekQsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkQsT0FBTyxFQUF5QyxZQUFZLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMzRixPQUFPLEtBQUssU0FBUyxNQUFNLFdBQVcsQ0FBQztBQUl2QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7QUFML0UsTUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDO0FBUWxDLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFDNUIsU0FBUyxFQUFFLGlEQUFpRDtJQUM1RCxrQkFBa0IsRUFBRSwrQkFBK0I7Q0FDcEQsQ0FBQyxDQUFDO0FBeUJILE1BQU0sNEJBQTRCLEdBQUcsQ0FBQyxJQUFZLEVBQUUsSUFBWSxFQUFFLEVBQUU7SUFDbEUsTUFBTSxVQUFVLEdBQUcsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLGlDQUM3RCxJQUFJLEdBQ0osQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUNwRyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ1IsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ25ELE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDakgsT0FBTyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0FBQzVELENBQUMsQ0FBQztBQUVGLE1BQU0sWUFBWSxHQUFHLENBQUMsTUFBYSxFQUFFLE9BQWdCLEVBQUUsRUFBRSxDQUN2RCxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFLLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxJQUFJLENBQUUsS0FBSyxDQUFDLENBQUEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0FBY25HLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxTQUFnQixFQUFFLEtBQW1CLEVBQUUsRUFBRSxDQUNqRSxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxHQUFHLENBQUMsS0FBSyxFQUFFLGtCQUFrQixFQUFFLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO0FBRXJHLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxDQUFDLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBWSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQW1CLEVBQVUsRUFBRTs7SUFDNUYsTUFBTSxPQUFPLEdBQUcsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3RDLE1BQU0sUUFBUSxHQUFHLFlBQVksQ0FBQyxJQUFJLEVBQUUsT0FBUSxDQUFDLENBQUM7SUFDOUMsTUFBTSxXQUFXLEdBQUcsZ0JBQWdCLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2pFLE1BQU0sWUFBWSxHQUFHLDRCQUE0QixDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3ZGLE1BQU0sWUFBWSxHQUFHLGFBQWEsQ0FBQyxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsS0FBTSxDQUFDLENBQUM7SUFFcEQsT0FBTztRQUNMLEtBQUs7UUFDTCxJQUFJLEVBQUUsTUFBQSxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsSUFBSSwwQ0FBRSxJQUFJO1FBQ3pCLFNBQVMsRUFBRSxLQUFLLENBQUMsU0FBUztRQUMxQixPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU87UUFDdEIsT0FBTyxFQUFFLENBQUEsTUFBQSxNQUFBLEtBQUssQ0FBQyxJQUFJLDBDQUFFLE9BQU8sMENBQUUsSUFBSSxLQUFJLFdBQVcsQ0FBQyxJQUFJO1FBQ3RELFlBQVksRUFBRSxhQUFhLENBQUMsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLFlBQWEsQ0FBQyxJQUFJLENBQUM7UUFDeEQsS0FBSyxFQUFFLFlBQVk7UUFDbkIsUUFBUSxFQUFFLFlBQVksSUFBSSxTQUFTO1FBQ25DLElBQUksRUFBRSxLQUFLLENBQUMsWUFBWSxFQUFFLFlBQVksQ0FBQztLQUN4QyxDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBV0YsTUFBTSxPQUFPLDBCQUEwQjtJQVNyQyxZQUNVLElBQWdCLEVBQ2hCLGFBQThCLEVBQzlCLFdBQTBCO1FBRjFCLFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsa0JBQWEsR0FBYixhQUFhLENBQWlCO1FBQzlCLGdCQUFXLEdBQVgsV0FBVyxDQUFlO1FBWDVCLGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLFlBQU8sR0FBRyxJQUFJLGFBQWEsQ0FBVyxDQUFDLENBQUMsQ0FBQztRQUV6QyxtQkFBYyxHQUFHLEtBQUssQ0FBQztRQUN2QixrQkFBYSxHQUFHLEtBQUssQ0FBQztRQUN0QixhQUFRLEdBQUcsSUFBSSxhQUFhLENBQVcsQ0FBQyxDQUFDLENBQUM7UUFPaEQsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2QsQ0FBQztJQUVhLElBQUk7O1lBQ2hCLE1BQU0sSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ3RDLENBQUM7S0FBQTtJQUVELElBQVksTUFBTTtRQUNoQixPQUFPLEdBQUcsT0FBTyxxQ0FBcUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUN2RixDQUFDO0lBRUQsSUFBWSxNQUFNO1FBQ2hCLE9BQU8sR0FBRyxhQUFhLG9DQUFvQyxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQzVGLENBQUM7SUFFTyxVQUFVO1FBQ2hCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO1FBQzFCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQWMsR0FBRyxJQUFJLENBQUMsTUFBTSxtQkFBbUIsQ0FBQyxDQUFDLElBQUksQ0FDdkUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQWlCLENBQUMsQ0FBQyxFQUNsRCxHQUFHLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDaEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQXFDLEVBQUUsRUFBRTtvQkFBekMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE9BQU8sT0FBVyxFQUFOLElBQUksY0FBbkMsbUJBQXFDLENBQUY7Z0JBQU8sT0FBQSxpQ0FDbEUsSUFBSSxLQUNQLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLElBQUksU0FBUyxFQUFFLEVBQ25DLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLElBQUksT0FBTyxFQUFFLElBQ3BDLENBQUE7YUFBQSxDQUFDLENBQUMsQ0FBQztZQUNMLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO1lBQzNCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1lBQ3pCLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRCxJQUFXLE9BQU87UUFDaEIsT0FBTyxJQUFJLENBQUMsYUFBYSxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNuRyxDQUFDO0lBRU0sTUFBTTtRQUNYLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDaEQsQ0FBQztJQUVNLE1BQU0sQ0FBQyxLQUFzQjtRQUNsQyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUN0QixHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUN4RixDQUFDO0lBQ0osQ0FBQztJQUVNLEtBQUssQ0FBQyxLQUFzQjtRQUNqQyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ3RELENBQUM7SUFFYSxVQUFVLENBQUMsUUFBZ0I7O1lBQ3ZDLE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDN0QsT0FBTyxTQUFTLENBQUMsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSyxDQUFDLENBQUM7UUFDNUQsQ0FBQztLQUFBO0lBRU8sV0FBVztRQUNqQixPQUFPLFFBQVEsQ0FBQztZQUNkLFNBQVMsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDbkQsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUMvQyxDQUFDLENBQUMsSUFBSSxDQUNMLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNYLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzNCLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO1lBQzVCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO1lBQzFCLE9BQU8sTUFBTSxDQUFDO1FBQ2hCLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQsSUFBVyxRQUFRO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLGNBQWMsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDdkcsQ0FBQztJQUVNLE9BQU87UUFDWixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ2pELENBQUM7O3dIQXpGVSwwQkFBMEI7NEhBQTFCLDBCQUEwQixjQUZ6QixNQUFNOzRGQUVQLDBCQUEwQjtrQkFIdEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgZm9ya0pvaW4sIGZyb20sIG9mLCBSZXBsYXlTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAsIHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBJQ3ljbGVKU09OTEQsIE5vZGVUeXBlLCBQcm9kdWN0LCBUZXJtLCBUZXJtVGVybVR5cGUgfSBmcm9tICdAaGVzdGlhLWVhcnRoL3NjaGVtYSc7XG5pbXBvcnQgKiBhcyBjc3Z0b2pzb24gZnJvbSAnY3N2dG9qc29uJztcbmNvbnN0IGdldCA9IHJlcXVpcmUoJ2xvZGFzaC5nZXQnKTtcblxuaW1wb3J0IHsgSGVOb2RlU2VydmljZSB9IGZyb20gJy4uL25vZGUvbm9kZS5zZXJ2aWNlJztcbmltcG9ydCB7IHdvcmxkUmVnaW9uIH0gZnJvbSAnLi4vc2VhcmNoL3NlYXJjaC5tb2RlbCc7XG5pbXBvcnQgeyBwcmltYXJ5UHJvZHVjdCB9IGZyb20gJy4uL2N5Y2xlcy9jeWNsZXMubW9kZWwnO1xuaW1wb3J0IHsgcHJvcGVydHlWYWx1ZSwgZGVsdGEsIGdpdEhvbWUsIGdpdFJhd0Jhc2VVcmwgfSBmcm9tICcuLi9jb21tb24vdXRpbHMnO1xuaW1wb3J0IHsgSGVDb21tb25TZXJ2aWNlIH0gZnJvbSAnLi4vY29tbW9uL2NvbW1vbi5zZXJ2aWNlJztcblxuY29uc3QgbG9va3VwcyA9IE9iamVjdC5mcmVlemUoe1xuICBjcm9wWWllbGQ6ICdyZWdpb24tY3JvcC1jcm9wR3JvdXBpbmdGYW9zdGF0UHJvZHVjdGlvbi15aWVsZCcsXG4gIGNyb3BHcm91cGluZ0NvbHVtbjogJ2Nyb3BHcm91cGluZ0Zhb3N0YXRQcm9kdWN0aW9uJ1xufSk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU1vZGVsIHtcbiAgdHlwZTogTm9kZVR5cGU7XG4gIC8qKlxuICAgKiBQYXRoIHRvIHRoZSBpbXBsZW1lbnRhdGlvbiAoY29kZSkgb2YgdGhlIG1vZGVsLlxuICAgKi9cbiAgcGF0aDogc3RyaW5nO1xuICAvKipcbiAgICogUGF0aCB0byB0aGUgZG9jdW1lbnRhdGlvbiBvZiB0aGUgbW9kZWwuXG4gICAqL1xuICBkb2NQYXRoOiBzdHJpbmc7XG4gIGRhdGFQYXRoOiBzdHJpbmc7XG4gICdAaWQnPzogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgSU1vZGVsTGlua3Mge1xuICBsaW5rczogSU1vZGVsW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUxvb2t1cHMge1xuICBjcm9wOiBhbnlbXTtcbiAgY3JvcFlpZWxkOiBhbnlbXTtcbn1cblxuY29uc3QgZXh0cmFjdEdyb3VwZWREYXRhQ2xvc2VzRGF0ZSA9IChkYXRhOiBzdHJpbmcsIHllYXI6IG51bWJlcikgPT4ge1xuICBjb25zdCBkYXRhQnlEYXRlID0gKGRhdGEgfHwgJycpLnNwbGl0KCc7JykucmVkdWNlKChwcmV2LCBjdXJyKSA9PiAoe1xuICAgIC4uLnByZXYsXG4gICAgLi4uKGN1cnIubGVuZ3RoID4gMCAmJiBjdXJyLnNwbGl0KCc6JylbMV0gIT09ICctJyA/IHtbY3Vyci5zcGxpdCgnOicpWzBdXTogY3Vyci5zcGxpdCgnOicpWzFdfSA6IHt9KVxuICB9KSwge30pO1xuICBjb25zdCB5ZWFycyA9IE9iamVjdC5rZXlzKGRhdGFCeURhdGUpLm1hcCh2ID0+ICt2KTtcbiAgY29uc3QgY2xvc2VzdFllYXIgPSB5ZWFycy5yZWR1Y2UoKHByZXYsIGN1cnIpID0+IE1hdGguYWJzKGN1cnIgLSB5ZWFyKSA8IE1hdGguYWJzKHByZXYgLSB5ZWFyKSA/IGN1cnIgOiBwcmV2LCAwKTtcbiAgcmV0dXJuIGNsb3Nlc3RZZWFyID8gK2RhdGFCeURhdGVbY2xvc2VzdFllYXJdIC8gMTAgOiBudWxsO1xufTtcblxuY29uc3QgY3JvcEdyb3VwaW5nID0gKGxvb2t1cDogYW55W10sIHByb2R1Y3Q6IFByb2R1Y3QpID0+XG4gIChsb29rdXAuZmluZCgoeyB0ZXJtIH0pID0+IHRlcm0uaWQgPT09IHByb2R1Y3Q/LnRlcm0hWydAaWQnXSkgfHwge30pW2xvb2t1cHMuY3JvcEdyb3VwaW5nQ29sdW1uXTtcblxuZXhwb3J0IGludGVyZmFjZSBJQ3ljbGUge1xuICBjeWNsZTogSUN5Y2xlSlNPTkxEO1xuICBuYW1lPzogc3RyaW5nO1xuICBzdGFydERhdGU/OiBzdHJpbmc7XG4gIGVuZERhdGU/OiBzdHJpbmc7XG4gIGNvdW50cnk6IHN0cmluZztcbiAgb2JzZXJ2YXRpb25zPzogbnVtYmVyO1xuICB5aWVsZD86IG51bWJlcjtcbiAgZmFvWWllbGQ/OiBudW1iZXI7XG4gIGRpZmY/OiBudW1iZXI7XG59XG5cbmNvbnN0IGNyb3BZaWVsZENvdW50cnkgPSAoY3JvcFlpZWxkOiBhbnlbXSwgY3ljbGU6IElDeWNsZUpTT05MRCkgPT5cbiAgY3JvcFlpZWxkLmZpbmQoKHsgdGVybSB9KSA9PiB0ZXJtLmlkID09PSBnZXQoY3ljbGUsICdzaXRlLmNvdW50cnkuQGlkJywgd29ybGRSZWdpb25bJ0BpZCddKSkgfHwge307XG5cbmV4cG9ydCBjb25zdCBleHRlbmRDeWNsZSA9ICh7IGNyb3AsIGNyb3BZaWVsZCB9OiBJTG9va3VwcykgPT4gKGN5Y2xlOiBJQ3ljbGVKU09OTEQpOiBJQ3ljbGUgPT4ge1xuICBjb25zdCBwcm9kdWN0ID0gcHJpbWFyeVByb2R1Y3QoY3ljbGUpO1xuICBjb25zdCBncm91cGluZyA9IGNyb3BHcm91cGluZyhjcm9wLCBwcm9kdWN0ISk7XG4gIGNvbnN0IGNvdW50cnlEYXRhID0gY3JvcFlpZWxkQ291bnRyeShjcm9wWWllbGQsIGN5Y2xlKVtncm91cGluZ107XG4gIGNvbnN0IGNvdW50cnlWYWx1ZSA9IGV4dHJhY3RHcm91cGVkRGF0YUNsb3Nlc0RhdGUoY291bnRyeURhdGEsICsoY3ljbGUuZW5kRGF0ZSB8fCAnJykpO1xuICBjb25zdCBwcm9kdWN0VmFsdWUgPSBwcm9wZXJ0eVZhbHVlKHByb2R1Y3Q/LnZhbHVlISk7XG5cbiAgcmV0dXJuIHtcbiAgICBjeWNsZSxcbiAgICBuYW1lOiBwcm9kdWN0Py50ZXJtPy5uYW1lLFxuICAgIHN0YXJ0RGF0ZTogY3ljbGUuc3RhcnREYXRlLFxuICAgIGVuZERhdGU6IGN5Y2xlLmVuZERhdGUsXG4gICAgY291bnRyeTogY3ljbGUuc2l0ZT8uY291bnRyeT8ubmFtZSB8fCB3b3JsZFJlZ2lvbi5uYW1lLFxuICAgIG9ic2VydmF0aW9uczogcHJvcGVydHlWYWx1ZShwcm9kdWN0Py5vYnNlcnZhdGlvbnMhKSB8fCAwLFxuICAgIHlpZWxkOiBwcm9kdWN0VmFsdWUsXG4gICAgZmFvWWllbGQ6IGNvdW50cnlWYWx1ZSB8fCB1bmRlZmluZWQsXG4gICAgZGlmZjogZGVsdGEocHJvZHVjdFZhbHVlLCBjb3VudHJ5VmFsdWUpXG4gIH07XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIElUcmlnZ2VyQ291bnRyeVBhcmFtcyB7XG4gIGNvdW50cnk6IFRlcm07XG4gIHByb2R1Y3Q6IFByb2R1Y3Q7XG4gICdAdHlwZSc/OiBOb2RlVHlwZTtcbn1cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgSGVBZ2dyZWdhdGlvbkVuZ2luZVNlcnZpY2Uge1xuICBwcml2YXRlIG1vZGVsc0xvYWRpbmcgPSBmYWxzZTtcbiAgcHJpdmF0ZSBtb2RlbHNMb2FkZWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSBfbW9kZWxzID0gbmV3IFJlcGxheVN1YmplY3Q8SU1vZGVsW10+KDEpO1xuXG4gIHByaXZhdGUgbG9va3Vwc0xvYWRpbmcgPSBmYWxzZTtcbiAgcHJpdmF0ZSBsb29rdXBzTG9hZGVkID0gZmFsc2U7XG4gIHByaXZhdGUgX2xvb2t1cHMgPSBuZXcgUmVwbGF5U3ViamVjdDxJTG9va3Vwcz4oMSk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxuICAgIHByaXZhdGUgY29tbW9uU2VydmljZTogSGVDb21tb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgbm9kZVNlcnZpY2U6IEhlTm9kZVNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5pbml0KCk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGluaXQoKSB7XG4gICAgYXdhaXQgdGhpcy5sb2FkTW9kZWxzKCkudG9Qcm9taXNlKCk7XG4gIH1cblxuICBwcml2YXRlIGdldCBnaXRVcmwoKSB7XG4gICAgcmV0dXJuIGAke2dpdEhvbWV9L2hlc3RpYS1hZ2dyZWdhdGlvbi1lbmdpbmUvLS9ibG9iLyR7dGhpcy5jb21tb25TZXJ2aWNlLmdpdEJyYW5jaH1gO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgcmF3VXJsKCkge1xuICAgIHJldHVybiBgJHtnaXRSYXdCYXNlVXJsfS9oZXN0aWEtYWdncmVnYXRpb24tZW5naW5lLy0vcmF3LyR7dGhpcy5jb21tb25TZXJ2aWNlLmdpdEJyYW5jaH1gO1xuICB9XG5cbiAgcHJpdmF0ZSBsb2FkTW9kZWxzKCkge1xuICAgIHRoaXMubW9kZWxzTG9hZGluZyA9IHRydWU7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8SU1vZGVsTGlua3M+KGAke3RoaXMucmF3VXJsfS9tb2RlbC1saW5rcy5qc29uYCkucGlwZShcbiAgICAgIGNhdGNoRXJyb3IoKCkgPT4gb2YoeyBsaW5rczogW10gfSBhcyBJTW9kZWxMaW5rcykpLFxuICAgICAgbWFwKCh7IGxpbmtzIH0pID0+IHtcbiAgICAgICAgdGhpcy5fbW9kZWxzLm5leHQobGlua3MubWFwKCh7IHBhdGg6IG1vZGVsUGF0aCwgZG9jUGF0aCwgLi4ubGluayB9KSA9PiAoe1xuICAgICAgICAgIC4uLmxpbmssXG4gICAgICAgICAgcGF0aDogYCR7dGhpcy5naXRVcmx9LyR7bW9kZWxQYXRofWAsXG4gICAgICAgICAgZG9jUGF0aDogYCR7dGhpcy5naXRVcmx9LyR7ZG9jUGF0aH1gXG4gICAgICAgIH0pKSk7XG4gICAgICAgIHRoaXMubW9kZWxzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLm1vZGVsc0xvYWRlZCA9IHRydWU7XG4gICAgICAgIHJldHVybiBsaW5rcztcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgbW9kZWxzJCgpIHtcbiAgICByZXR1cm4gdGhpcy5tb2RlbHNMb2FkaW5nIHx8IHRoaXMubW9kZWxzTG9hZGVkID8gdGhpcy5fbW9kZWxzLmFzT2JzZXJ2YWJsZSgpIDogdGhpcy5sb2FkTW9kZWxzKCk7XG4gIH1cblxuICBwdWJsaWMgbW9kZWxzKCkge1xuICAgIHJldHVybiB0aGlzLm1vZGVscyQucGlwZSh0YWtlKDEpKS50b1Byb21pc2UoKTtcbiAgfVxuXG4gIHB1YmxpYyBtb2RlbCQobW9kZWw6IFBhcnRpYWw8SU1vZGVsPikge1xuICAgIHJldHVybiB0aGlzLm1vZGVscyQucGlwZShcbiAgICAgIG1hcChtb2RlbHMgPT4gbW9kZWxzLmZpbmQobSA9PiBPYmplY3Qua2V5cyhtb2RlbCkuZXZlcnkoa2V5ID0+IG1vZGVsW2tleV0gPT09IG1ba2V5XSkpKVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgbW9kZWwobW9kZWw6IFBhcnRpYWw8SU1vZGVsPikge1xuICAgIHJldHVybiB0aGlzLm1vZGVsJChtb2RlbCkucGlwZSh0YWtlKDEpKS50b1Byb21pc2UoKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgbG9hZExvb2t1cChmaWxlbmFtZTogc3RyaW5nKSB7XG4gICAgY29uc3QgZGF0YSA9IGF3YWl0IHRoaXMubm9kZVNlcnZpY2UuZG93bmxvYWRMb29rdXAoZmlsZW5hbWUpO1xuICAgIHJldHVybiBjc3Z0b2pzb24oeyBkZWxpbWl0ZXI6ICdhdXRvJyB9KS5mcm9tU3RyaW5nKGRhdGEhKTtcbiAgfVxuXG4gIHByaXZhdGUgbG9hZExvb2t1cHMoKSB7XG4gICAgcmV0dXJuIGZvcmtKb2luKHtcbiAgICAgIGNyb3BZaWVsZDogZnJvbSh0aGlzLmxvYWRMb29rdXAobG9va3Vwcy5jcm9wWWllbGQpKSxcbiAgICAgIGNyb3A6IGZyb20odGhpcy5sb2FkTG9va3VwKFRlcm1UZXJtVHlwZS5jcm9wKSlcbiAgICB9KS5waXBlKFxuICAgICAgbWFwKHZhbHVlcyA9PiB7XG4gICAgICAgIHRoaXMuX2xvb2t1cHMubmV4dCh2YWx1ZXMpO1xuICAgICAgICB0aGlzLmxvb2t1cHNMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMubG9va3Vwc0xvYWRlZCA9IHRydWU7XG4gICAgICAgIHJldHVybiB2YWx1ZXM7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGxvb2t1cHMkKCkge1xuICAgIHJldHVybiB0aGlzLmxvb2t1cHNMb2FkaW5nIHx8IHRoaXMubG9va3Vwc0xvYWRlZCA/IHRoaXMuX2xvb2t1cHMuYXNPYnNlcnZhYmxlKCkgOiB0aGlzLmxvYWRMb29rdXBzKCk7XG4gIH1cblxuICBwdWJsaWMgbG9va3VwcygpIHtcbiAgICByZXR1cm4gdGhpcy5sb29rdXBzJC5waXBlKHRha2UoMSkpLnRvUHJvbWlzZSgpO1xuICB9XG59XG4iXX0=
89
+ }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.HeNodeService }]; } });
90
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdncmVnYXRpb24tZW5naW5lLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZW5naW5lL2FnZ3JlZ2F0aW9uLWVuZ2luZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDekQsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkQsT0FBTyxFQUEyQixZQUFZLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM3RSxPQUFPLEtBQUssU0FBUyxNQUFNLFdBQVcsQ0FBQztBQUd2QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7OztBQUVwRSxNQUFNLE1BQU0sR0FBRyxHQUFHLEVBQUUsQ0FBQyxHQUFHLE9BQU8scUNBQXFDLFNBQVMsRUFBRSxFQUFFLENBQUM7QUFDbEYsTUFBTSxNQUFNLEdBQUcsR0FBRyxFQUFFLENBQUMsR0FBRyxhQUFhLG9DQUFvQyxTQUFTLEVBQUUsRUFBRSxDQUFDO0FBRXZGLE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO0lBQ25DLFNBQVMsRUFBRSxpREFBaUQ7SUFDNUQsa0JBQWtCLEVBQUUsK0JBQStCO0NBQ3BELENBQUMsQ0FBQztBQWtDSCxNQUFNLE9BQU8sMEJBQTBCO0lBU3JDLFlBQ1ksSUFBZ0IsRUFDaEIsV0FBMEI7UUFEMUIsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixnQkFBVyxHQUFYLFdBQVcsQ0FBZTtRQVY5QixrQkFBYSxHQUFHLEtBQUssQ0FBQztRQUN0QixpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUNy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QUFXO1FBQ2pCLE9BQU8sUUFBUSxDQUFDO1lBQ2QsU0FBUyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNuRCxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQy9DLENBQUMsQ0FBQyxJQUFJLENBQ0wsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ1gsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDM0IsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7WUFDNUIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7WUFDMUIsT0FBTyxNQUFNLENBQUM7UUFDaEIsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRCxJQUFXLFFBQVE7UUFDakIsT0FBTyxJQUFJLENBQUMsY0FBYyxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN2RyxDQUFDO0lBRU0sT0FBTztRQUNaLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDakQsQ0FBQzs7d0hBaEZVLDBCQUEwQjs0SEFBMUIsMEJBQTBCLGNBRnpCLE1BQU07NEZBRVAsMEJBQTBCO2tCQUh0QyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBmb3JrSm9pbiwgZnJvbSwgb2YsIFJlcGxheVN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCwgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IE5vZGVUeXBlLCBQcm9kdWN0LCBUZXJtLCBUZXJtVGVybVR5cGUgfSBmcm9tICdAaGVzdGlhLWVhcnRoL3NjaGVtYSc7XG5pbXBvcnQgKiBhcyBjc3Z0b2pzb24gZnJvbSAnY3N2dG9qc29uJztcblxuaW1wb3J0IHsgSGVOb2RlU2VydmljZSB9IGZyb20gJy4uL25vZGUvbm9kZS5zZXJ2aWNlJztcbmltcG9ydCB7IGdpdEJyYW5jaCwgZ2l0SG9tZSwgZ2l0UmF3QmFzZVVybCB9IGZyb20gJy4uL2NvbW1vbi91dGlscyc7XG5cbmNvbnN0IGdpdFVybCA9ICgpID0+IGAke2dpdEhvbWV9L2hlc3RpYS1hZ2dyZWdhdGlvbi1lbmdpbmUvLS9ibG9iLyR7Z2l0QnJhbmNoKCl9YDtcbmNvbnN0IHJhd1VybCA9ICgpID0+IGAke2dpdFJhd0Jhc2VVcmx9L2hlc3RpYS1hZ2dyZWdhdGlvbi1lbmdpbmUvLS9yYXcvJHtnaXRCcmFuY2goKX1gO1xuXG5leHBvcnQgY29uc3QgbG9va3VwcyA9IE9iamVjdC5mcmVlemUoe1xuICBjcm9wWWllbGQ6ICdyZWdpb24tY3JvcC1jcm9wR3JvdXBpbmdGYW9zdGF0UHJvZHVjdGlvbi15aWVsZCcsXG4gIGNyb3BHcm91cGluZ0NvbHVtbjogJ2Nyb3BHcm91cGluZ0Zhb3N0YXRQcm9kdWN0aW9uJ1xufSk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUFnZ3JlZ2F0aW9uTW9kZWwge1xuICB0eXBlOiBOb2RlVHlwZTtcbiAgLyoqXG4gICAqIFBhdGggdG8gdGhlIGltcGxlbWVudGF0aW9uIChjb2RlKSBvZiB0aGUgbW9kZWwuXG4gICAqL1xuICBwYXRoOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBQYXRoIHRvIHRoZSBkb2N1bWVudGF0aW9uIG9mIHRoZSBtb2RlbC5cbiAgICovXG4gIGRvY1BhdGg6IHN0cmluZztcbiAgZGF0YVBhdGg6IHN0cmluZztcbiAgJ0BpZCc/OiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBJQWdncmVnYXRpb25Nb2RlbExpbmtzIHtcbiAgbGlua3M6IElBZ2dyZWdhdGlvbk1vZGVsW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUxvb2t1cHMge1xuICBjcm9wOiBhbnlbXTtcbiAgY3JvcFlpZWxkOiBhbnlbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJVHJpZ2dlckNvdW50cnlQYXJhbXMge1xuICBjb3VudHJ5OiBUZXJtO1xuICBwcm9kdWN0OiBQcm9kdWN0O1xuICAnQHR5cGUnPzogTm9kZVR5cGU7XG59XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEhlQWdncmVnYXRpb25FbmdpbmVTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBtb2RlbHNMb2FkaW5nID0gZmFsc2U7XG4gIHByaXZhdGUgbW9kZWxzTG9hZGVkID0gZmFsc2U7XG4gIHByaXZhdGUgX21vZGVscyA9IG5ldyBSZXBsYXlTdWJqZWN0PElBZ2dyZWdhdGlvbk1vZGVsW10+KDEpO1xuXG4gIHByaXZhdGUgbG9va3Vwc0xvYWRpbmcgPSBmYWxzZTtcbiAgcHJpdmF0ZSBsb29rdXBzTG9hZGVkID0gZmFsc2U7XG4gIHByaXZhdGUgX2xvb2t1cHMgPSBuZXcgUmVwbGF5U3ViamVjdDxJTG9va3Vwcz4oMSk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgcHJvdGVjdGVkIG5vZGVTZXJ2aWNlOiBIZU5vZGVTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMuaW5pdCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBpbml0KCkge1xuICAgIGF3YWl0IHRoaXMubG9hZE1vZGVscygpLnRvUHJvbWlzZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBsb2FkTW9kZWxzKCkge1xuICAgIHRoaXMubW9kZWxzTG9hZGluZyA9IHRydWU7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8SUFnZ3JlZ2F0aW9uTW9kZWxMaW5rcz4oYCR7cmF3VXJsKCl9L21vZGVsLWxpbmtzLmpzb25gKS5waXBlKFxuICAgICAgY2F0Y2hFcnJvcigoKSA9PiBvZih7IGxpbmtzOiBbXSB9IGFzIElBZ2dyZWdhdGlvbk1vZGVsTGlua3MpKSxcbiAgICAgIG1hcCgoeyBsaW5rcyB9KSA9PiB7XG4gICAgICAgIHRoaXMuX21vZGVscy5uZXh0KGxpbmtzLm1hcCgoeyBwYXRoOiBtb2RlbFBhdGgsIGRvY1BhdGgsIC4uLmxpbmsgfSkgPT4gKHtcbiAgICAgICAgICAuLi5saW5rLFxuICAgICAgICAgIHBhdGg6IGAke2dpdFVybCgpfS8ke21vZGVsUGF0aH1gLFxuICAgICAgICAgIGRvY1BhdGg6IGAke2dpdFVybCgpfS8ke2RvY1BhdGh9YFxuICAgICAgICB9KSkpO1xuICAgICAgICB0aGlzLm1vZGVsc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5tb2RlbHNMb2FkZWQgPSB0cnVlO1xuICAgICAgICByZXR1cm4gbGlua3M7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IG1vZGVscyQoKSB7XG4gICAgcmV0dXJuIHRoaXMubW9kZWxzTG9hZGluZyB8fCB0aGlzLm1vZGVsc0xvYWRlZCA/IHRoaXMuX21vZGVscy5hc09ic2VydmFibGUoKSA6IHRoaXMubG9hZE1vZGVscygpO1xuICB9XG5cbiAgcHVibGljIG1vZGVscygpIHtcbiAgICByZXR1cm4gdGhpcy5tb2RlbHMkLnBpcGUodGFrZSgxKSkudG9Qcm9taXNlKCk7XG4gIH1cblxuICBwdWJsaWMgbW9kZWwkKG1vZGVsOiBQYXJ0aWFsPElBZ2dyZWdhdGlvbk1vZGVsPikge1xuICAgIHJldHVybiB0aGlzLm1vZGVscyQucGlwZShcbiAgICAgIG1hcChtb2RlbHMgPT4gbW9kZWxzLmZpbmQobSA9PiBPYmplY3Qua2V5cyhtb2RlbCkuZXZlcnkoa2V5ID0+IG1vZGVsW2tleV0gPT09IG1ba2V5XSkpKVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgbW9kZWwobW9kZWw6IFBhcnRpYWw8SUFnZ3JlZ2F0aW9uTW9kZWw+KSB7XG4gICAgcmV0dXJuIHRoaXMubW9kZWwkKG1vZGVsKS5waXBlKHRha2UoMSkpLnRvUHJvbWlzZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBsb2FkTG9va3VwKGZpbGVuYW1lOiBzdHJpbmcpIHtcbiAgICBjb25zdCBkYXRhID0gYXdhaXQgdGhpcy5ub2RlU2VydmljZS5kb3dubG9hZExvb2t1cChmaWxlbmFtZSk7XG4gICAgcmV0dXJuIGNzdnRvanNvbih7IGRlbGltaXRlcjogJ2F1dG8nIH0pLmZyb21TdHJpbmcoZGF0YSEpO1xuICB9XG5cbiAgcHJpdmF0ZSBsb2FkTG9va3VwcygpIHtcbiAgICByZXR1cm4gZm9ya0pvaW4oe1xuICAgICAgY3JvcFlpZWxkOiBmcm9tKHRoaXMubG9hZExvb2t1cChsb29rdXBzLmNyb3BZaWVsZCkpLFxuICAgICAgY3JvcDogZnJvbSh0aGlzLmxvYWRMb29rdXAoVGVybVRlcm1UeXBlLmNyb3ApKVxuICAgIH0pLnBpcGUoXG4gICAgICBtYXAodmFsdWVzID0+IHtcbiAgICAgICAgdGhpcy5fbG9va3Vwcy5uZXh0KHZhbHVlcyk7XG4gICAgICAgIHRoaXMubG9va3Vwc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5sb29rdXBzTG9hZGVkID0gdHJ1ZTtcbiAgICAgICAgcmV0dXJuIHZhbHVlcztcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgbG9va3VwcyQoKSB7XG4gICAgcmV0dXJuIHRoaXMubG9va3Vwc0xvYWRpbmcgfHwgdGhpcy5sb29rdXBzTG9hZGVkID8gdGhpcy5fbG9va3Vwcy5hc09ic2VydmFibGUoKSA6IHRoaXMubG9hZExvb2t1cHMoKTtcbiAgfVxuXG4gIHB1YmxpYyBsb29rdXBzKCkge1xuICAgIHJldHVybiB0aGlzLmxvb2t1cHMkLnBpcGUodGFrZSgxKSkudG9Qcm9taXNlKCk7XG4gIH1cbn1cbiJdfQ==
@@ -2,11 +2,12 @@ import { __awaiter, __rest } from "tslib";
2
2
  import { Injectable, InjectionToken } from '@angular/core';
3
3
  import { of, ReplaySubject } from 'rxjs';
4
4
  import { catchError, map, take } from 'rxjs/operators';
5
- import { baseUrl, toDashCase, gitHome, gitRawBaseUrl } from '../common/utils';
5
+ import { baseUrl, toDashCase, gitHome, gitRawBaseUrl, gitBranch } from '../common/utils';
6
6
  import * as i0 from "@angular/core";
7
7
  import * as i1 from "@angular/common/http";
8
- import * as i2 from "../common/common.service";
9
8
  export const HE_ORCHESTRATOR_BASE_URL = new InjectionToken('HE_ORCHESTRATOR_BASE_URL');
9
+ const gitUrl = () => `${gitHome}/hestia-engine-models/-/blob/${gitBranch()}`;
10
+ const rawUrl = () => `${gitRawBaseUrl}/hestia-engine-models/-/raw/${gitBranch()}`;
10
11
  export const findConfigModels = ({ models }, modelId, modelKey) => models.flat().filter(({ value, key }) => modelId.startsWith(value) && (!modelKey || key === modelKey));
11
12
  export const pathToApiDocsPath = (model, term) => [
12
13
  baseUrl(),
@@ -18,9 +19,8 @@ export const pathToApiDocsPath = (model, term) => [
18
19
  ].filter(Boolean).join('-')
19
20
  ].join('/');
20
21
  export class HeEngineService {
21
- constructor(http, commonService) {
22
+ constructor(http) {
22
23
  this.http = http;
23
- this.commonService = commonService;
24
24
  this.modelsLoading = false;
25
25
  this.modelsLoaded = false;
26
26
  this._models = new ReplaySubject(1);
@@ -31,18 +31,12 @@ export class HeEngineService {
31
31
  yield this.loadModels().toPromise();
32
32
  });
33
33
  }
34
- get gitUrl() {
35
- return `${gitHome}/hestia-engine-models/-/blob/${this.commonService.gitBranch}`;
36
- }
37
- get rawUrl() {
38
- return `${gitRawBaseUrl}/hestia-engine-models/-/raw/${this.commonService.gitBranch}`;
39
- }
40
34
  loadModels() {
41
35
  this.modelsLoading = true;
42
- return this.http.get(`${this.rawUrl}/model-links.json`).pipe(catchError(() => of({ links: [] })), map(({ links }) => {
36
+ return this.http.get(`${rawUrl()}/model-links.json`).pipe(catchError(() => of({ links: [] })), map(({ links }) => {
43
37
  this._models.next(links.map((_a) => {
44
38
  var { path, docPath } = _a, link = __rest(_a, ["path", "docPath"]);
45
- return (Object.assign(Object.assign({}, link), { path: `${this.gitUrl}/${path}`, docPath: `${this.gitUrl}/${docPath}`, apiDocsPath: pathToApiDocsPath(link.model, link.term || link.modelKey) }));
39
+ return (Object.assign(Object.assign({}, link), { path: `${gitUrl()}/${path}`, docPath: `${gitUrl()}/${docPath}`, apiDocsPath: pathToApiDocsPath(link.model, link.term || link.modelKey) }));
46
40
  }));
47
41
  this.modelsLoading = false;
48
42
  this.modelsLoaded = true;
@@ -67,12 +61,12 @@ export class HeEngineService {
67
61
  }).toPromise();
68
62
  }
69
63
  }
70
- HeEngineService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: HeEngineService, deps: [{ token: i1.HttpClient }, { token: i2.HeCommonService }], target: i0.ɵɵFactoryTarget.Injectable });
64
+ HeEngineService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: HeEngineService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
71
65
  HeEngineService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: HeEngineService, providedIn: 'root' });
72
66
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: HeEngineService, decorators: [{
73
67
  type: Injectable,
74
68
  args: [{
75
69
  providedIn: 'root'
76
70
  }]
77
- }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.HeCommonService }]; } });
78
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5naW5lLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZW5naW5lL2VuZ2luZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzRCxPQUFPLEVBQUUsRUFBRSxFQUFFLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN6QyxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUd2RCxPQUFPLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7QUFHOUUsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsSUFBSSxjQUFjLENBQVMsMEJBQTBCLENBQUMsQ0FBQztBQUUvRixNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLEVBQUUsTUFBTSxFQUF1QixFQUFFLE9BQWUsRUFBRSxRQUFnQixFQUFFLEVBQUUsQ0FDckcsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLElBQUksR0FBRyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUM7QUFFekcsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxLQUFhLEVBQUUsSUFBYSxFQUFFLEVBQUUsQ0FDaEU7SUFDRSxPQUFPLEVBQUU7SUFDVCxNQUFNO0lBQ047UUFDRSw0QkFBNEI7UUFDNUIsVUFBVSxDQUFDLEtBQUssQ0FBQztRQUNqQixVQUFVLENBQUMsSUFBSSxDQUFDO0tBQ2pCLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FB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QUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUN4RixDQUFDO0lBQ0osQ0FBQztJQUVNLEtBQUssQ0FBQyxLQUFzQjtRQUNqQyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ3RELENBQUM7SUFFTSxpQkFBaUIsQ0FBQyxJQUFjO1FBQ3JDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQXNCLEdBQUcsd0JBQXdCLElBQUksSUFBSSxPQUFPLEVBQUU7WUFDcEYsTUFBTSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtTQUMxQixDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDakIsQ0FBQzs7NkdBaEVVLGVBQWU7aUhBQWYsZUFBZSxjQUZkLE1BQU07NEZBRVAsZUFBZTtrQkFIM0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IG9mLCBSZXBsYXlTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAsIHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBOb2RlVHlwZSB9IGZyb20gJ0BoZXN0aWEtZWFydGgvc2NoZW1hJztcblxuaW1wb3J0IHsgYmFzZVVybCwgdG9EYXNoQ2FzZSwgZ2l0SG9tZSwgZ2l0UmF3QmFzZVVybCB9IGZyb20gJy4uL2NvbW1vbi91dGlscyc7XG5pbXBvcnQgeyBIZUNvbW1vblNlcnZpY2UgfSBmcm9tICcuLi9jb21tb24vY29tbW9uLnNlcnZpY2UnO1xuXG5leHBvcnQgY29uc3QgSEVfT1JDSEVTVFJBVE9SX0JBU0VfVVJMID0gbmV3IEluamVjdGlvblRva2VuPHN0cmluZz4oJ0hFX09SQ0hFU1RSQVRPUl9CQVNFX1VSTCcpO1xuXG5leHBvcnQgY29uc3QgZmluZENvbmZpZ01vZGVscyA9ICh7IG1vZGVscyB9OiBJT3JjaGVzdHJhdG9yQ29uZmlnLCBtb2RlbElkOiBzdHJpbmcsIG1vZGVsS2V5OiBzdHJpbmcpID0+XG4gIG1vZGVscy5mbGF0KCkuZmlsdGVyKCh7IHZhbHVlLCBrZXkgfSkgPT4gbW9kZWxJZC5zdGFydHNXaXRoKHZhbHVlKSAmJiAoIW1vZGVsS2V5IHx8IGtleSA9PT0gbW9kZWxLZXkpKTtcblxuZXhwb3J0IGNvbnN0IHBhdGhUb0FwaURvY3NQYXRoID0gKG1vZGVsOiBzdHJpbmcsIHRlcm0/OiBzdHJpbmcpID0+XG4gIFtcbiAgICBiYXNlVXJsKCksXG4gICAgJ2RvY3MnLFxuICAgIFtcbiAgICAgICcjaGVzdGlhLWNhbGN1bGF0aW9uLW1vZGVscycsXG4gICAgICB0b0Rhc2hDYXNlKG1vZGVsKSxcbiAgICAgIHRvRGFzaENhc2UodGVybSlcbiAgICBdLmZpbHRlcihCb29sZWFuKS5qb2luKCctJylcbiAgXS5qb2luKCcvJyk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU1vZGVsIHtcbiAgLyoqXG4gICAqIFBhdGggdG8gdGhlIGltcGxlbWVudGF0aW9uIChjb2RlKSBvZiB0aGUgbW9kZWwuXG4gICAqL1xuICBwYXRoOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBQYXRoIHRvIHRoZSBkb2N1bWVudGF0aW9uIG9mIHRoZSBtb2RlbC5cbiAgICovXG4gIGRvY1BhdGg6IHN0cmluZztcbiAgLyoqXG4gICAqIFBhdGggdG8gdGhlIEFQSSBEb2N1bWVudGF0aW9uLlxuICAgKi9cbiAgYXBpRG9jc1BhdGg/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgbW9kZWwgdXNlZCBhcyBgbWV0aG9kTW9kZWxgLlxuICAgKi9cbiAgbW9kZWw6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSB0ZXJtIHRoZSBtb2RlbCBpcyBhc3NvY2lhdGVkIHdpdGguXG4gICAqL1xuICB0ZXJtPzogc3RyaW5nO1xuICAvKipcbiAgICogQSBrZXkgaW4gdGhlIG1vZGVsIGlmIHRlcm0gZG9lcyBub3QgZXhpc3QuXG4gICAqL1xuICBtb2RlbEtleT86IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIElNb2RlbExpbmtzIHtcbiAgbGlua3M6IElNb2RlbFtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElPcmNoZXN0cmF0b3JNb2RlbENvbmZpZyB7XG4gIGtleTogc3RyaW5nO1xuICBtb2RlbDogc3RyaW5nO1xuICB2YWx1ZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElPcmNoZXN0cmF0b3JDb25maWcge1xuICBtb2RlbHM6IElPcmNoZXN0cmF0b3JNb2RlbENvbmZpZ1tdO1xufVxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBIZUVuZ2luZVNlcnZpY2Uge1xuICBwcml2YXRlIG1vZGVsc0xvYWRpbmcgPSBmYWxzZTtcbiAgcHJpdmF0ZSBtb2RlbHNMb2FkZWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSBfbW9kZWxzID0gbmV3IFJlcGxheVN1YmplY3Q8SU1vZGVsW10+KDEpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcbiAgICBwcml2YXRlIGNvbW1vblNlcnZpY2U6IEhlQ29tbW9uU2VydmljZVxuICApIHtcbiAgICB0aGlzLmluaXQoKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgaW5pdCgpIHtcbiAgICBhd2FpdCB0aGlzLmxvYWRNb2RlbHMoKS50b1Byb21pc2UoKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IGdpdFVybCgpIHtcbiAgICByZXR1cm4gYCR7Z2l0SG9tZX0vaGVzdGlhLWVuZ2luZS1tb2RlbHMvLS9ibG9iLyR7dGhpcy5jb21tb25TZXJ2aWNlLmdpdEJyYW5jaH1gO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgcmF3VXJsKCkge1xuICAgIHJldHVybiBgJHtnaXRSYXdCYXNlVXJsfS9oZXN0aWEtZW5naW5lLW1vZGVscy8tL3Jhdy8ke3RoaXMuY29tbW9uU2VydmljZS5naXRCcmFuY2h9YDtcbiAgfVxuXG4gIHByaXZhdGUgbG9hZE1vZGVscygpIHtcbiAgICB0aGlzLm1vZGVsc0xvYWRpbmcgPSB0cnVlO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PElNb2RlbExpbmtzPihgJHt0aGlzLnJhd1VybH0vbW9kZWwtbGlua3MuanNvbmApLnBpcGUoXG4gICAgICBjYXRjaEVycm9yKCgpID0+IG9mKHsgbGlua3M6IFtdIH0gYXMgSU1vZGVsTGlua3MpKSxcbiAgICAgIG1hcCgoeyBsaW5rcyB9KSA9PiB7XG4gICAgICAgIHRoaXMuX21vZGVscy5uZXh0KGxpbmtzLm1hcCgoeyBwYXRoLCBkb2NQYXRoLCAuLi5saW5rIH0pID0+ICh7XG4gICAgICAgICAgLi4ubGluayxcbiAgICAgICAgICBwYXRoOiBgJHt0aGlzLmdpdFVybH0vJHtwYXRofWAsXG4gICAgICAgICAgZG9jUGF0aDogYCR7dGhpcy5naXRVcmx9LyR7ZG9jUGF0aH1gLFxuICAgICAgICAgIGFwaURvY3NQYXRoOiBwYXRoVG9BcGlEb2NzUGF0aChsaW5rLm1vZGVsLCBsaW5rLnRlcm0gfHwgbGluay5tb2RlbEtleSlcbiAgICAgICAgfSkpKTtcbiAgICAgICAgdGhpcy5tb2RlbHNMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMubW9kZWxzTG9hZGVkID0gdHJ1ZTtcbiAgICAgICAgcmV0dXJuIGxpbmtzO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGdldCBtb2RlbHMkKCkge1xuICAgIHJldHVybiB0aGlzLm1vZGVsc0xvYWRpbmcgfHwgdGhpcy5tb2RlbHNMb2FkZWQgPyB0aGlzLl9tb2RlbHMuYXNPYnNlcnZhYmxlKCkgOiB0aGlzLmxvYWRNb2RlbHMoKTtcbiAgfVxuXG4gIHB1YmxpYyBtb2RlbHMoKSB7XG4gICAgcmV0dXJuIHRoaXMubW9kZWxzJC5waXBlKHRha2UoMSkpLnRvUHJvbWlzZSgpO1xuICB9XG5cbiAgcHVibGljIG1vZGVsJChtb2RlbDogUGFydGlhbDxJTW9kZWw+KSB7XG4gICAgcmV0dXJuIHRoaXMubW9kZWxzJC5waXBlKFxuICAgICAgbWFwKG1vZGVscyA9PiBtb2RlbHMuZmluZChtID0+IE9iamVjdC5rZXlzKG1vZGVsKS5ldmVyeShrZXkgPT4gbW9kZWxba2V5XSA9PT0gbVtrZXldKSkpXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBtb2RlbChtb2RlbDogUGFydGlhbDxJTW9kZWw+KSB7XG4gICAgcmV0dXJuIHRoaXMubW9kZWwkKG1vZGVsKS5waXBlKHRha2UoMSkpLnRvUHJvbWlzZSgpO1xuICB9XG5cbiAgcHVibGljIG9jaGVzdHJhdG9yQ29uZmlnKHR5cGU6IE5vZGVUeXBlKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8SU9yY2hlc3RyYXRvckNvbmZpZz4oYCR7SEVfT1JDSEVTVFJBVE9SX0JBU0VfVVJMfS8ke3R5cGV9Lmpzb25gLCB7XG4gICAgICBwYXJhbXM6IHsgaW5saW5lOiBmYWxzZSB9XG4gICAgfSkudG9Qcm9taXNlKCk7XG4gIH1cbn1cbiJdfQ==
71
+ }], ctorParameters: function () { return [{ type: i1.HttpClient }]; } });
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5naW5lLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZW5naW5lL2VuZ2luZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzRCxPQUFPLEVBQUUsRUFBRSxFQUFFLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN6QyxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUd2RCxPQUFPLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7QUFFekYsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsSUFBSSxjQUFjLENBQVMsMEJBQTBCLENBQUMsQ0FBQztBQUUvRixNQUFNLE1BQU0sR0FBRyxHQUFHLEVBQUUsQ0FBQyxHQUFHLE9BQU8sZ0NBQWdDLFNBQVMsRUFBRSxFQUFFLENBQUM7QUFDN0UsTUFBTSxNQUFNLEdBQUcsR0FBRyxFQUFFLENBQUMsR0FBRyxhQUFhLCtCQUErQixTQUFTLEVBQUUsRUFBRSxDQUFDO0FBRWxGLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLENBQUMsRUFBRSxNQUFNLEVBQXVCLEVBQUUsT0FBZSxFQUFFLFFBQWdCLEVBQUUsRUFBRSxDQUNyRyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsSUFBSSxHQUFHLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQztBQUV6RyxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLEtBQWEsRUFBRSxJQUFh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QUFPLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ3RELENBQUM7SUFFTSxpQkFBaUIsQ0FBQyxJQUFjO1FBQ3JDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQXNCLEdBQUcsd0JBQXdCLElBQUksSUFBSSxPQUFPLEVBQUU7WUFDcEYsTUFBTSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtTQUMxQixDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDakIsQ0FBQzs7NkdBdkRVLGVBQWU7aUhBQWYsZUFBZSxjQUZkLE1BQU07NEZBRVAsZUFBZTtrQkFIM0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IG9mLCBSZXBsYXlTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAsIHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBOb2RlVHlwZSB9IGZyb20gJ0BoZXN0aWEtZWFydGgvc2NoZW1hJztcblxuaW1wb3J0IHsgYmFzZVVybCwgdG9EYXNoQ2FzZSwgZ2l0SG9tZSwgZ2l0UmF3QmFzZVVybCwgZ2l0QnJhbmNoIH0gZnJvbSAnLi4vY29tbW9uL3V0aWxzJztcblxuZXhwb3J0IGNvbnN0IEhFX09SQ0hFU1RSQVRPUl9CQVNFX1VSTCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxzdHJpbmc+KCdIRV9PUkNIRVNUUkFUT1JfQkFTRV9VUkwnKTtcblxuY29uc3QgZ2l0VXJsID0gKCkgPT4gYCR7Z2l0SG9tZX0vaGVzdGlhLWVuZ2luZS1tb2RlbHMvLS9ibG9iLyR7Z2l0QnJhbmNoKCl9YDtcbmNvbnN0IHJhd1VybCA9ICgpID0+IGAke2dpdFJhd0Jhc2VVcmx9L2hlc3RpYS1lbmdpbmUtbW9kZWxzLy0vcmF3LyR7Z2l0QnJhbmNoKCl9YDtcblxuZXhwb3J0IGNvbnN0IGZpbmRDb25maWdNb2RlbHMgPSAoeyBtb2RlbHMgfTogSU9yY2hlc3RyYXRvckNvbmZpZywgbW9kZWxJZDogc3RyaW5nLCBtb2RlbEtleTogc3RyaW5nKSA9PlxuICBtb2RlbHMuZmxhdCgpLmZpbHRlcigoeyB2YWx1ZSwga2V5IH0pID0+IG1vZGVsSWQuc3RhcnRzV2l0aCh2YWx1ZSkgJiYgKCFtb2RlbEtleSB8fCBrZXkgPT09IG1vZGVsS2V5KSk7XG5cbmV4cG9ydCBjb25zdCBwYXRoVG9BcGlEb2NzUGF0aCA9IChtb2RlbDogc3RyaW5nLCB0ZXJtPzogc3RyaW5nKSA9PlxuICBbXG4gICAgYmFzZVVybCgpLFxuICAgICdkb2NzJyxcbiAgICBbXG4gICAgICAnI2hlc3RpYS1jYWxjdWxhdGlvbi1tb2RlbHMnLFxuICAgICAgdG9EYXNoQ2FzZShtb2RlbCksXG4gICAgICB0b0Rhc2hDYXNlKHRlcm0pXG4gICAgXS5maWx0ZXIoQm9vbGVhbikuam9pbignLScpXG4gIF0uam9pbignLycpO1xuXG5leHBvcnQgaW50ZXJmYWNlIElNb2RlbCB7XG4gIC8qKlxuICAgKiBQYXRoIHRvIHRoZSBpbXBsZW1lbnRhdGlvbiAoY29kZSkgb2YgdGhlIG1vZGVsLlxuICAgKi9cbiAgcGF0aDogc3RyaW5nO1xuICAvKipcbiAgICogUGF0aCB0byB0aGUgZG9jdW1lbnRhdGlvbiBvZiB0aGUgbW9kZWwuXG4gICAqL1xuICBkb2NQYXRoOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBQYXRoIHRvIHRoZSBBUEkgRG9jdW1lbnRhdGlvbi5cbiAgICovXG4gIGFwaURvY3NQYXRoPzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIG1vZGVsIHVzZWQgYXMgYG1ldGhvZE1vZGVsYC5cbiAgICovXG4gIG1vZGVsOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgdGVybSB0aGUgbW9kZWwgaXMgYXNzb2NpYXRlZCB3aXRoLlxuICAgKi9cbiAgdGVybT86IHN0cmluZztcbiAgLyoqXG4gICAqIEEga2V5IGluIHRoZSBtb2RlbCBpZiB0ZXJtIGRvZXMgbm90IGV4aXN0LlxuICAgKi9cbiAgbW9kZWxLZXk/OiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBJTW9kZWxMaW5rcyB7XG4gIGxpbmtzOiBJTW9kZWxbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJT3JjaGVzdHJhdG9yTW9kZWxDb25maWcge1xuICBrZXk6IHN0cmluZztcbiAgbW9kZWw6IHN0cmluZztcbiAgdmFsdWU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJT3JjaGVzdHJhdG9yQ29uZmlnIHtcbiAgbW9kZWxzOiBJT3JjaGVzdHJhdG9yTW9kZWxDb25maWdbXTtcbn1cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgSGVFbmdpbmVTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBtb2RlbHNMb2FkaW5nID0gZmFsc2U7XG4gIHByaXZhdGUgbW9kZWxzTG9hZGVkID0gZmFsc2U7XG4gIHByaXZhdGUgX21vZGVscyA9IG5ldyBSZXBsYXlTdWJqZWN0PElNb2RlbFtdPigxKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgaHR0cDogSHR0cENsaWVudFxuICApIHtcbiAgICB0aGlzLmluaXQoKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgaW5pdCgpIHtcbiAgICBhd2FpdCB0aGlzLmxvYWRNb2RlbHMoKS50b1Byb21pc2UoKTtcbiAgfVxuXG4gIHByaXZhdGUgbG9hZE1vZGVscygpIHtcbiAgICB0aGlzLm1vZGVsc0xvYWRpbmcgPSB0cnVlO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PElNb2RlbExpbmtzPihgJHtyYXdVcmwoKX0vbW9kZWwtbGlua3MuanNvbmApLnBpcGUoXG4gICAgICBjYXRjaEVycm9yKCgpID0+IG9mKHsgbGlua3M6IFtdIH0gYXMgSU1vZGVsTGlua3MpKSxcbiAgICAgIG1hcCgoeyBsaW5rcyB9KSA9PiB7XG4gICAgICAgIHRoaXMuX21vZGVscy5uZXh0KGxpbmtzLm1hcCgoeyBwYXRoLCBkb2NQYXRoLCAuLi5saW5rIH0pID0+ICh7XG4gICAgICAgICAgLi4ubGluayxcbiAgICAgICAgICBwYXRoOiBgJHtnaXRVcmwoKX0vJHtwYXRofWAsXG4gICAgICAgICAgZG9jUGF0aDogYCR7Z2l0VXJsKCl9LyR7ZG9jUGF0aH1gLFxuICAgICAgICAgIGFwaURvY3NQYXRoOiBwYXRoVG9BcGlEb2NzUGF0aChsaW5rLm1vZGVsLCBsaW5rLnRlcm0gfHwgbGluay5tb2RlbEtleSlcbiAgICAgICAgfSkpKTtcbiAgICAgICAgdGhpcy5tb2RlbHNMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMubW9kZWxzTG9hZGVkID0gdHJ1ZTtcbiAgICAgICAgcmV0dXJuIGxpbmtzO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGdldCBtb2RlbHMkKCkge1xuICAgIHJldHVybiB0aGlzLm1vZGVsc0xvYWRpbmcgfHwgdGhpcy5tb2RlbHNMb2FkZWQgPyB0aGlzLl9tb2RlbHMuYXNPYnNlcnZhYmxlKCkgOiB0aGlzLmxvYWRNb2RlbHMoKTtcbiAgfVxuXG4gIHB1YmxpYyBtb2RlbHMoKSB7XG4gICAgcmV0dXJuIHRoaXMubW9kZWxzJC5waXBlKHRha2UoMSkpLnRvUHJvbWlzZSgpO1xuICB9XG5cbiAgcHVibGljIG1vZGVsJChtb2RlbDogUGFydGlhbDxJTW9kZWw+KSB7XG4gICAgcmV0dXJuIHRoaXMubW9kZWxzJC5waXBlKFxuICAgICAgbWFwKG1vZGVscyA9PiBtb2RlbHMuZmluZChtID0+IE9iamVjdC5rZXlzKG1vZGVsKS5ldmVyeShrZXkgPT4gbW9kZWxba2V5XSA9PT0gbVtrZXldKSkpXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBtb2RlbChtb2RlbDogUGFydGlhbDxJTW9kZWw+KSB7XG4gICAgcmV0dXJuIHRoaXMubW9kZWwkKG1vZGVsKS5waXBlKHRha2UoMSkpLnRvUHJvbWlzZSgpO1xuICB9XG5cbiAgcHVibGljIG9jaGVzdHJhdG9yQ29uZmlnKHR5cGU6IE5vZGVUeXBlKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8SU9yY2hlc3RyYXRvckNvbmZpZz4oYCR7SEVfT1JDSEVTVFJBVE9SX0JBU0VfVVJMfS8ke3R5cGV9Lmpzb25gLCB7XG4gICAgICBwYXJhbXM6IHsgaW5saW5lOiBmYWxzZSB9XG4gICAgfSkudG9Qcm9taXNlKCk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,3 @@
1
+ export * from './aggregation-engine.service';
2
+ export * from './engine.service';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZW5naW5lL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyxrQkFBa0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYWdncmVnYXRpb24tZW5naW5lLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9lbmdpbmUuc2VydmljZSc7XG4iXX0=
@@ -0,0 +1,5 @@
1
+ export * from './files-error.model';
2
+ export * from './files-form.model';
3
+ export * from './files.module';
4
+ export { FilesFormComponent } from './files-form/files-form.component';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZmlsZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsZ0JBQWdCLENBQUM7QUFFL0IsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUNBQW1DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2ZpbGVzLWVycm9yLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vZmlsZXMtZm9ybS5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL2ZpbGVzLm1vZHVsZSc7XG5cbmV4cG9ydCB7IEZpbGVzRm9ybUNvbXBvbmVudCB9IGZyb20gJy4vZmlsZXMtZm9ybS9maWxlcy1mb3JtLmNvbXBvbmVudCc7XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export * from './fontawesome.module';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZm9udGF3ZXNvbWUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxzQkFBc0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZm9udGF3ZXNvbWUubW9kdWxlJztcbiJdfQ==