@hestia-earth/ui-components 0.27.64 → 0.27.66
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.
- package/common/node-utils.d.ts +1 -0
- package/esm2022/common/node-utils.mjs +16 -8
- package/esm2022/files/files-error.model.mjs +25 -21
- package/esm2022/impact-assessments/impact-assessments-graph/impact-assessments-graph.component.mjs +2 -2
- package/esm2022/impact-assessments/impact-assessments-indicator-breakdown-chart/impact-assessments-indicator-breakdown-chart.component.mjs +2 -2
- package/esm2022/node/node-logs-file/node-logs-file.component.mjs +5 -5
- package/esm2022/node/node-logs-models/node-logs-models.component.mjs +2 -2
- package/esm2022/node/node.service.mjs +2 -10
- package/esm2022/select/filter.component.mjs +3 -3
- package/esm2022/sites/sites-management-chart/sites-management-chart.component.mjs +16 -16
- package/esm2022/terms/terms-property-content/terms-property-content.component.mjs +3 -3
- package/fesm2022/hestia-earth-ui-components.mjs +63 -61
- package/fesm2022/hestia-earth-ui-components.mjs.map +1 -1
- package/node/node-logs-file/node-logs-file.component.d.ts +0 -1
- package/node/node-logs-models/node-logs-models.component.d.ts +57 -57
- package/node/node.service.d.ts +1 -6
- package/package.json +1 -1
- package/sites/sites-management-chart/sites-management-chart.component.d.ts +12 -12
- package/terms/terms-property-content/terms-property-content.component.d.ts +4 -4
package/common/node-utils.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import { Term, ICycleJSONLD, ISiteJSONLD, IImpactAssessmentJSONLD, EmissionMetho
|
|
|
2
2
|
import { propertyValueType } from '@hestia-earth/utils/dist/term';
|
|
3
3
|
export declare const formatDate: (date: string, isStart?: boolean) => Date;
|
|
4
4
|
export declare const getDatesBetween: (startDate: string, endDate: string) => Date[];
|
|
5
|
+
export declare const uniqueDatesBetween: (dates: string[]) => Date[];
|
|
5
6
|
export declare const filterBlankNode: (filterTerm: string) => ({ term }: blankNodesType) => boolean;
|
|
6
7
|
export declare const ignoreKeys: string[];
|
|
7
8
|
export declare const isValidKey: (key: string) => boolean;
|
|
@@ -2,18 +2,21 @@ import get from 'lodash.get';
|
|
|
2
2
|
import { EmissionMethodTier } from '@hestia-earth/schema';
|
|
3
3
|
import { propertyValue } from '@hestia-earth/utils/dist/term';
|
|
4
4
|
import { getDefaultModelId } from '@hestia-earth/glossary';
|
|
5
|
+
import { unique } from '@hestia-earth/utils';
|
|
5
6
|
/* eslint-disable-next-line complexity */
|
|
6
7
|
export const formatDate = (date, isStart = false) => date?.length === 4
|
|
7
8
|
? isStart
|
|
8
|
-
? new Date(`${date}-01-
|
|
9
|
-
: new Date(`${date}-12-
|
|
9
|
+
? new Date(`${date}-01-01T12:00:00.000Z`)
|
|
10
|
+
: new Date(`${date}-12-31T12:00:00.000Z`)
|
|
10
11
|
: date?.length === 7
|
|
11
12
|
? isStart
|
|
12
|
-
? new Date(`${date}-
|
|
13
|
-
: new Date(`${date}-
|
|
14
|
-
: date
|
|
15
|
-
? new Date(date)
|
|
16
|
-
:
|
|
13
|
+
? new Date(`${date}-15T12:00:00.000Z`)
|
|
14
|
+
: new Date(`${date}-14T12:00:00.000Z`)
|
|
15
|
+
: date?.length === 10
|
|
16
|
+
? new Date(`${date}T12:00:00.000Z`)
|
|
17
|
+
: date
|
|
18
|
+
? new Date(date)
|
|
19
|
+
: undefined;
|
|
17
20
|
export const getDatesBetween = (startDate, endDate) => {
|
|
18
21
|
const start = formatDate(startDate, true);
|
|
19
22
|
const end = formatDate(endDate, false);
|
|
@@ -23,9 +26,14 @@ export const getDatesBetween = (startDate, endDate) => {
|
|
|
23
26
|
dates.push(date);
|
|
24
27
|
date = new Date(date);
|
|
25
28
|
date.setMonth(date.getMonth() + 1);
|
|
29
|
+
date.setUTCHours(12);
|
|
26
30
|
}
|
|
27
31
|
return dates;
|
|
28
32
|
};
|
|
33
|
+
export const uniqueDatesBetween = (dates) => {
|
|
34
|
+
const sortedDates = unique(dates).sort((a, b) => new Date(a).getTime() - new Date(b).getTime());
|
|
35
|
+
return getDatesBetween(sortedDates.shift(), sortedDates.pop());
|
|
36
|
+
};
|
|
29
37
|
export const filterBlankNode = (filterTerm) => ({ term }) => !filterTerm || term?.name?.toLowerCase()?.includes(filterTerm.toLowerCase());
|
|
30
38
|
export const ignoreKeys = ['@type', 'type', 'added', 'updated', 'addedVersion', 'updatedVersion'];
|
|
31
39
|
export const isValidKey = (key) => !ignoreKeys.includes(key);
|
|
@@ -115,4 +123,4 @@ export const groupNodesByTerm = (nodes = [], key, originalValues = [], includeNo
|
|
|
115
123
|
});
|
|
116
124
|
return groups;
|
|
117
125
|
};
|
|
118
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tb24vbm9kZS11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEdBQUcsTUFBTSxZQUFZLENBQUM7QUFDN0IsT0FBTyxFQUtMLGtCQUFrQixFQU9uQixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBRSxhQUFhLEVBQXFCLE1BQU0sK0JBQStCLENBQUM7QUFDakYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFM0QseUNBQXlDO0FBQ3pDLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxDQUFDLElBQVksRUFBRSxPQUFPLEdBQUcsS0FBSyxFQUFFLEVBQUUsQ0FDMUQsSUFBSSxFQUFFLE1BQU0sS0FBSyxDQUFDO0lBQ2hCLENBQUMsQ0FBQyxPQUFPO1FBQ1AsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLEdBQUcsSUFBSSxRQUFRLENBQUM7UUFDM0IsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLEdBQUcsSUFBSSxRQUFRLENBQUM7SUFDN0IsQ0FBQyxDQUFDLElBQUksRUFBRSxNQUFNLEtBQUssQ0FBQztRQUNsQixDQUFDLENBQUMsT0FBTztZQUNQLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxHQUFHLElBQUksS0FBSyxDQUFDO1lBQ3hCLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxHQUFHLElBQUksS0FBSyxDQUFDO1FBQzFCLENBQUMsQ0FBQyxJQUFJO1lBQ0osQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQztZQUNoQixDQUFDLENBQUMsU0FBUyxDQUFDO0FBRXBCLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxDQUFDLFNBQWlCLEVBQUUsT0FBZSxFQUFFLEVBQUU7SUFDcEUsTUFBTSxLQUFLLEdBQUcsVUFBVSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUMxQyxNQUFNLEdBQUcsR0FBRyxVQUFVLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3ZDLE1BQU0sS0FBSyxHQUFXLEVBQUUsQ0FBQztJQUV6QixJQUFJLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQixPQUFPLElBQUksSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUNuQixLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2pCLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxlQUFlLEdBQzFCLENBQUMsVUFBa0IsRUFBRSxFQUFFLENBQ3ZCLENBQUMsRUFBRSxJQUFJLEVBQWtCLEVBQUUsRUFBRSxDQUMzQixDQUFDLFVBQVUsSUFBSSxJQUFJLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxFQUFFLFFBQVEsQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztBQUVqRixNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLGdCQUFnQixDQUFDLENBQUM7QUFFbEcsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLENBQUMsR0FBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7QUFFckUsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxZQUFtQixFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQWUsRUFBRSxFQUFFLENBQy9FLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBRTdHLE1BQU0sQ0FBTixJQUFZLFlBS1g7QUFMRCxXQUFZLFlBQVk7SUFDdEIsK0JBQWUsQ0FBQTtJQUNmLG1DQUFtQixDQUFBO0lBQ25CLG1DQUFtQixDQUFBO0lBQ25CLHVDQUF1QixDQUFBO0FBQ3pCLENBQUMsRUFMVyxZQUFZLEtBQVosWUFBWSxRQUt2QjtBQUVELE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxDQUFDLElBQW9CLEVBQUUsR0FBVyxFQUFFLEtBQW1CLEVBQUUsRUFBRSxDQUNoRixLQUFLLElBQUksSUFBSyxJQUFJLENBQUMsT0FBTyxJQUFLLENBQUMsS0FBSyxDQUFDLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztBQStDcEcsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLENBQUksTUFBNEIsRUFBK0IsRUFBRSxDQUMzRixNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztBQUVqRSxNQUFNLG9CQUFvQixHQUFHLENBQUMsS0FBVSxFQUFFLFFBQWEsRUFBRSxFQUFFO0lBQ3pELE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxRCxNQUFNLGFBQWEsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDdEUsT0FBTyxDQUFDLEdBQUcsVUFBVSxFQUFFLEdBQUcsYUFBYSxDQUFDLENBQUM7QUFDM0MsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLENBQUMsVUFBOEIsRUFBRSxFQUFFLENBQ2hFO0lBQ0Usa0JBQWtCLENBQUMsUUFBUTtJQUMzQixrQkFBa0IsQ0FBQyxRQUFRLENBQUM7SUFDNUIsa0JBQWtCLENBQUMsUUFBUSxDQUFDO0lBQzVCLGtCQUFrQixDQUFDLFFBQVEsQ0FBQztJQUM1QixrQkFBa0IsQ0FBQyxVQUFVO0lBQzdCLGtCQUFrQixDQUFDLGNBQWMsQ0FBQztDQUNuQyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUV4QixNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRztJQUMvQixPQUFPO0lBQ1AsSUFBSTtJQUNKLEtBQUs7SUFDTCxLQUFLO0lBQ0wsUUFBUTtJQUNSLFlBQVk7SUFDWixZQUFZO0lBQ1osV0FBVztJQUNYLFNBQVM7SUFDVCxZQUFZO0lBQ1osYUFBYTtJQUNiLE9BQU87SUFDUCxRQUFRO0NBQ1QsQ0FBQztBQUVGLE1BQU0sYUFBYSxHQUFHLENBQUMsVUFBMEIsRUFBRSxPQUF1QixFQUFFLEVBQUUsQ0FDNUUsQ0FBQyxVQUFVO0lBQ1gsT0FBTyxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsWUFBWSxDQUFDLE9BQU8sQ0FBQztJQUMvQyxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxPQUFPLEVBQUUsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLE9BQU8sQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBRXpHLE1BQU0sWUFBWSxHQUFHLENBQUMsRUFBRSxJQUFJLEVBQU8sRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksSUFBSSxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUVwRSxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxDQUk5QixRQUFhLEVBQUUsRUFDZixHQUFrQixFQUNsQixpQkFBc0IsRUFBRSxFQUN4QixjQUFjLENBQUMsS0FBVSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQ2hCLEVBQUU7SUFDcEIsTUFBTSxNQUFNLEdBQXFCLEtBQUssQ0FBQyxNQUFNLENBQzNDLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUNwQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLEVBQUU7UUFDNUMsK0JBQStCO1FBQy9CLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztZQUM1QixPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7UUFFRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0IsTUFBTSxVQUFVLEdBQUcsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzNDLEtBQUssQ0FBQyxVQUFVLENBQUMsR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDLElBQUk7WUFDdkMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxJQUFJO1lBQ3BCLFVBQVUsRUFBRSxTQUFTLENBQUMsVUFBVTtZQUNoQyxlQUFlLEVBQUUsZUFBZSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUM7WUFDdEQsTUFBTSxFQUFFLEVBQUU7WUFDVixjQUFjLEVBQUUsRUFBRTtTQUNuQixDQUFDO1FBQ0YsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDO1FBQ3ZHLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxHQUFHLGFBQWEsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxTQUFTLENBQUM7WUFDckcsQ0FBQyxDQUFDLFNBQVM7WUFDWCxDQUFDLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDMUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3ZELEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxHQUFHLG9CQUFvQixDQUMzRCxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFDdEMsU0FBUyxDQUFDLEtBQUssQ0FDaEIsQ0FBQztRQUNGLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUNuQyxNQUFNLFFBQVEsR0FBRyxHQUFHLENBQUMsU0FBUyxFQUFFLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUM5QyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHO2dCQUMzQyxHQUFHLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ3JELEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDckQsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDLEVBQUUsSUFBSSxDQUFDLEVBQ1YsRUFBc0IsQ0FDdkIsQ0FBQztJQUVGLDBCQUEwQjtJQUMxQixNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRTtRQUNoQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDckMsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDdkMsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNqQyxNQUFNLGFBQWEsR0FBRyxHQUFHLENBQUMsY0FBYyxFQUFFLElBQUksS0FBSyxLQUFLLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FDdkUsQ0FBQyxHQUFRLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssTUFBTSxDQUN6QyxDQUFDO1lBQ0YsSUFBSSxhQUFhLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUM3QixNQUFNLEtBQUssR0FBRyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBWSxFQUFFLElBQVMsRUFBRSxFQUFFLENBQUMsb0JBQW9CLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztnQkFDN0csS0FBSyxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxhQUFhLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDekUsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFFSCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZ2V0IGZyb20gJ2xvZGFzaC5nZXQnO1xuaW1wb3J0IHtcbiAgVGVybSxcbiAgSUN5Y2xlSlNPTkxELFxuICBJU2l0ZUpTT05MRCxcbiAgSUltcGFjdEFzc2Vzc21lbnRKU09OTEQsXG4gIEVtaXNzaW9uTWV0aG9kVGllcixcbiAgSVRlcm1KU09OTEQsXG4gIEluZGljYXRvcixcbiAgQW5pbWFsLFxuICBUcmFuc2Zvcm1hdGlvbixcbiAgYmxhbmtOb2Rlc1R5cGUsXG4gIGJsYW5rTm9kZXNLZXlcbn0gZnJvbSAnQGhlc3RpYS1lYXJ0aC9zY2hlbWEnO1xuaW1wb3J0IHsgcHJvcGVydHlWYWx1ZSwgcHJvcGVydHlWYWx1ZVR5cGUgfSBmcm9tICdAaGVzdGlhLWVhcnRoL3V0aWxzL2Rpc3QvdGVybSc7XG5pbXBvcnQgeyBnZXREZWZhdWx0TW9kZWxJZCB9IGZyb20gJ0BoZXN0aWEtZWFydGgvZ2xvc3NhcnknO1xuXG4vKiBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgY29tcGxleGl0eSAqL1xuZXhwb3J0IGNvbnN0IGZvcm1hdERhdGUgPSAoZGF0ZTogc3RyaW5nLCBpc1N0YXJ0ID0gZmFsc2UpID0+XG4gIGRhdGU/Lmxlbmd0aCA9PT0gNFxuICAgID8gaXNTdGFydFxuICAgICAgPyBuZXcgRGF0ZShgJHtkYXRlfS0wMS0wMWApXG4gICAgICA6IG5ldyBEYXRlKGAke2RhdGV9LTEyLTMxYClcbiAgICA6IGRhdGU/Lmxlbmd0aCA9PT0gN1xuICAgICAgPyBpc1N0YXJ0XG4gICAgICAgID8gbmV3IERhdGUoYCR7ZGF0ZX0tMTVgKVxuICAgICAgICA6IG5ldyBEYXRlKGAke2RhdGV9LTE0YClcbiAgICAgIDogZGF0ZVxuICAgICAgICA/IG5ldyBEYXRlKGRhdGUpXG4gICAgICAgIDogdW5kZWZpbmVkO1xuXG5leHBvcnQgY29uc3QgZ2V0RGF0ZXNCZXR3ZWVuID0gKHN0YXJ0RGF0ZTogc3RyaW5nLCBlbmREYXRlOiBzdHJpbmcpID0+IHtcbiAgY29uc3Qgc3RhcnQgPSBmb3JtYXREYXRlKHN0YXJ0RGF0ZSwgdHJ1ZSk7XG4gIGNvbnN0IGVuZCA9IGZvcm1hdERhdGUoZW5kRGF0ZSwgZmFsc2UpO1xuICBjb25zdCBkYXRlczogRGF0ZVtdID0gW107XG5cbiAgbGV0IGRhdGUgPSBuZXcgRGF0ZShzdGFydCk7XG4gIHdoaWxlIChkYXRlIDw9IGVuZCkge1xuICAgIGRhdGVzLnB1c2goZGF0ZSk7XG4gICAgZGF0ZSA9IG5ldyBEYXRlKGRhdGUpO1xuICAgIGRhdGUuc2V0TW9udGgoZGF0ZS5nZXRNb250aCgpICsgMSk7XG4gIH1cblxuICByZXR1cm4gZGF0ZXM7XG59O1xuXG5leHBvcnQgY29uc3QgZmlsdGVyQmxhbmtOb2RlID1cbiAgKGZpbHRlclRlcm06IHN0cmluZykgPT5cbiAgKHsgdGVybSB9OiBibGFua05vZGVzVHlwZSkgPT5cbiAgICAhZmlsdGVyVGVybSB8fCB0ZXJtPy5uYW1lPy50b0xvd2VyQ2FzZSgpPy5pbmNsdWRlcyhmaWx0ZXJUZXJtLnRvTG93ZXJDYXNlKCkpO1xuXG5leHBvcnQgY29uc3QgaWdub3JlS2V5cyA9IFsnQHR5cGUnLCAndHlwZScsICdhZGRlZCcsICd1cGRhdGVkJywgJ2FkZGVkVmVyc2lvbicsICd1cGRhdGVkVmVyc2lvbiddO1xuXG5leHBvcnQgY29uc3QgaXNWYWxpZEtleSA9IChrZXk6IHN0cmluZykgPT4gIWlnbm9yZUtleXMuaW5jbHVkZXMoa2V5KTtcblxuZXhwb3J0IGNvbnN0IGlzTWV0aG9kTW9kZWxBbGxvd2VkID0gKGZpbHRlck1ldGhvZD86IFRlcm0pID0+IChub2RlOiBJbmRpY2F0b3IpID0+XG4gIG5vZGUubWV0aG9kTW9kZWw/LlsnQGlkJ10gPT09IChmaWx0ZXJNZXRob2QgPyBmaWx0ZXJNZXRob2RbJ0BpZCddIDogZ2V0RGVmYXVsdE1vZGVsSWQobm9kZS50ZXJtPy5bJ0BpZCddKSk7XG5cbmV4cG9ydCBlbnVtIE5vZGVLZXlTdGF0ZSB7XG4gIGFkZGVkID0gJ2FkZGVkJyxcbiAgdXBkYXRlZCA9ICd1cGRhdGVkJyxcbiAgZGVsZXRlZCA9ICdkZWxldGVkJyxcbiAgdW5jaGFuZ2VkID0gJ3VuY2hhbmdlZCdcbn1cblxuZXhwb3J0IGNvbnN0IGlzU3RhdGUgPSAobm9kZTogYmxhbmtOb2Rlc1R5cGUsIGtleTogc3RyaW5nLCBzdGF0ZTogTm9kZUtleVN0YXRlKSA9PlxuICBzdGF0ZSBpbiBub2RlISAmJiAodHlwZW9mIG5vZGUhW3N0YXRlXSA9PT0gJ2Jvb2xlYW4nID8gbm9kZSFbc3RhdGVdIDogbm9kZSFbc3RhdGVdLmluY2x1ZGVzKGtleSkpO1xuXG5leHBvcnQgaW50ZXJmYWNlIElHcm91cGVkTm9kZTxUPiB7XG4gIC8vIHN0b3JlIHRoZSBub2RlIHdpdGggdGhlIGhpZ2hlc3QgXCJzdGF0ZVwiXG4gIG5vZGU6IFQ7XG4gIG5vZGVzOiBUW107XG4gIGluZGV4OiBudW1iZXI7XG4gIHZhbHVlOiBwcm9wZXJ0eVZhbHVlVHlwZVtdO1xuICBkYXRlcz86IGFueVtdO1xuICBzZD86IG51bWJlcltdO1xuICBtaW4/OiBudW1iZXJbXTtcbiAgbWF4PzogbnVtYmVyW107XG4gIGlucHV0cz86IGFueVtdO1xuICBkZXB0aFVwcGVyPzogbnVtYmVyW107XG4gIGRlcHRoTG93ZXI/OiBudW1iZXJbXTtcbiAgc3RhcnREYXRlPzogc3RyaW5nW107XG4gIGVuZERhdGU/OiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJR3JvdXBlZE5vZGVzVmFsdWVzPFQ+IHtcbiAgW25vZGVJZDogc3RyaW5nXTogSUdyb3VwZWROb2RlPFQ+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElHcm91cGVkTm9kZXNWYWx1ZTxUPiB7XG4gIHRlcm06IElUZXJtSlNPTkxEO1xuICBtZXRob2RUaWVyPzogRW1pc3Npb25NZXRob2RUaWVyO1xuICAvKipcbiAgICogRW5hYmxlIG9yZGVyaW5nIG55IG1ldGhvZFRpZXJcbiAgICovXG4gIG1ldGhvZFRpZXJPcmRlcjogbnVtYmVyO1xuICB2YWx1ZXM6IElHcm91cGVkTm9kZXNWYWx1ZXM8VD47XG4gIG9yaWdpbmFsVmFsdWVzOiB7XG4gICAgW25vZGVJZDogc3RyaW5nXToge1xuICAgICAgdmFsdWU6IHByb3BlcnR5VmFsdWVUeXBlO1xuICAgIH07XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUdyb3VwZWROb2RlczxUPiB7XG4gIFt0ZXJtSWQ6IHN0cmluZ106IElHcm91cGVkTm9kZXNWYWx1ZTxUPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJR3JvdXBlZEtleXM8VD4ge1xuICBrZXk6IHN0cmluZztcbiAgdmFsdWU6IElHcm91cGVkTm9kZXNWYWx1ZTxUPjtcbn1cblxuZXhwb3J0IGNvbnN0IGdyb3VwcGVkS2V5cyA9IDxUPih2YWx1ZXM6IHsgW2tleTogc3RyaW5nXTogVCB9KTogeyBrZXk6IHN0cmluZzsgdmFsdWU6IFQgfVtdID0+XG4gIE9iamVjdC5lbnRyaWVzKHZhbHVlcykubWFwKChba2V5LCB2YWx1ZV0pID0+ICh7IGtleSwgdmFsdWUgfSkpO1xuXG5jb25zdCBjb25jYXRCbGFua05vZGVWYWx1ZSA9ICh2YWx1ZTogYW55LCBuZXdWYWx1ZTogYW55KSA9PiB7XG4gIGNvbnN0IHZhbHVlQXJyYXkgPSBBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlIDogW3ZhbHVlXTtcbiAgY29uc3QgbmV3VmFsdWVBcnJheSA9IEFycmF5LmlzQXJyYXkobmV3VmFsdWUpID8gbmV3VmFsdWUgOiBbbmV3VmFsdWVdO1xuICByZXR1cm4gWy4uLnZhbHVlQXJyYXksIC4uLm5ld1ZhbHVlQXJyYXldO1xufTtcblxuZXhwb3J0IGNvbnN0IG1ldGhvZFRpZXJPcmRlciA9IChtZXRob2RUaWVyOiBFbWlzc2lvbk1ldGhvZFRpZXIpID0+XG4gIFtcbiAgICBFbWlzc2lvbk1ldGhvZFRpZXIubWVhc3VyZWQsXG4gICAgRW1pc3Npb25NZXRob2RUaWVyWyd0aWVyIDMnXSxcbiAgICBFbWlzc2lvbk1ldGhvZFRpZXJbJ3RpZXIgMiddLFxuICAgIEVtaXNzaW9uTWV0aG9kVGllclsndGllciAxJ10sXG4gICAgRW1pc3Npb25NZXRob2RUaWVyLmJhY2tncm91bmQsXG4gICAgRW1pc3Npb25NZXRob2RUaWVyWydub3QgcmVsZXZhbnQnXVxuICBdLmluZGV4T2YobWV0aG9kVGllcik7XG5cbmV4cG9ydCBjb25zdCBncm91cHBlZFZhbHVlS2V5cyA9IFtcbiAgJ2RhdGVzJyxcbiAgJ3NkJyxcbiAgJ21pbicsXG4gICdtYXgnLFxuICAnaW5wdXRzJyxcbiAgJ2RlcHRoVXBwZXInLFxuICAnZGVwdGhMb3dlcicsXG4gICdzdGFydERhdGUnLFxuICAnZW5kRGF0ZScsXG4gICdtZXRob2RUaWVyJyxcbiAgJ21ldGhvZE1vZGVsJyxcbiAgJ21vZGVsJyxcbiAgJ21ldGhvZCdcbl07XG5cbmNvbnN0IGlzSGlnaGVyU3RhdGUgPSAoc291cmNlTm9kZTogYmxhbmtOb2Rlc1R5cGUsIG5ld05vZGU6IGJsYW5rTm9kZXNUeXBlKSA9PlxuICAhc291cmNlTm9kZSB8fFxuICBpc1N0YXRlKG5ld05vZGUsICd2YWx1ZScsIE5vZGVLZXlTdGF0ZS51cGRhdGVkKSB8fFxuICAoIWlzU3RhdGUoc291cmNlTm9kZSwgJ3ZhbHVlJywgTm9kZUtleVN0YXRlLnVwZGF0ZWQpICYmIGlzU3RhdGUobmV3Tm9kZSwgJ3ZhbHVlJywgTm9kZUtleVN0YXRlLmFkZGVkKSk7XG5cbmNvbnN0IGdyb3VwTm9kZUtleSA9ICh7IHRlcm0gfTogYW55KSA9PiB0ZXJtPy5uYW1lIHx8IHRlcm0/LlsnQGlkJ107XG5cbmV4cG9ydCBjb25zdCBncm91cE5vZGVzQnlUZXJtID0gPFxuICBUIGV4dGVuZHMgSUN5Y2xlSlNPTkxEIHwgSUltcGFjdEFzc2Vzc21lbnRKU09OTEQgfCBJU2l0ZUpTT05MRCB8IEFuaW1hbCB8IFRyYW5zZm9ybWF0aW9uLFxuICBSXG4+KFxuICBub2RlczogVFtdID0gW10sXG4gIGtleTogYmxhbmtOb2Rlc0tleSxcbiAgb3JpZ2luYWxWYWx1ZXM6IFRbXSA9IFtdLFxuICBpbmNsdWRlTm9kZSA9IChfbm9kZTogYW55KSA9PiB0cnVlXG4pOiBJR3JvdXBlZE5vZGVzPFI+ID0+IHtcbiAgY29uc3QgZ3JvdXBzOiBJR3JvdXBlZE5vZGVzPFI+ID0gbm9kZXMucmVkdWNlKFxuICAgIChwcmV2LCBub2RlLCBpbmRleCkgPT5cbiAgICAgIChub2RlW2tleV0gfHwgW10pLnJlZHVjZSgoZ3JvdXAsIGJsYW5rTm9kZSkgPT4ge1xuICAgICAgICAvLyBza2lwIG5vZGUgYmFzZWQgb24gY29uZGl0aW9uXG4gICAgICAgIGlmICghaW5jbHVkZU5vZGUoYmxhbmtOb2RlKSkge1xuICAgICAgICAgIHJldHVybiBncm91cDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG5vZGVJZCA9IG5vZGVbJ0BpZCddO1xuICAgICAgICBjb25zdCBncm91cGVkS2V5ID0gZ3JvdXBOb2RlS2V5KGJsYW5rTm9kZSk7XG4gICAgICAgIGdyb3VwW2dyb3VwZWRLZXldID0gZ3JvdXBbZ3JvdXBlZEtleV0gfHwge1xuICAgICAgICAgIHRlcm06IGJsYW5rTm9kZS50ZXJtLFxuICAgICAgICAgIG1ldGhvZFRpZXI6IGJsYW5rTm9kZS5tZXRob2RUaWVyLFxuICAgICAgICAgIG1ldGhvZFRpZXJPcmRlcjogbWV0aG9kVGllck9yZGVyKGJsYW5rTm9kZS5tZXRob2RUaWVyKSxcbiAgICAgICAgICB2YWx1ZXM6IHt9LFxuICAgICAgICAgIG9yaWdpbmFsVmFsdWVzOiB7fVxuICAgICAgICB9O1xuICAgICAgICBncm91cFtncm91cGVkS2V5XS52YWx1ZXNbbm9kZUlkXSA9IGdyb3VwW2dyb3VwZWRLZXldLnZhbHVlc1tub2RlSWRdIHx8IHsgaW5kZXgsIG5vZGVzOiBbXSwgdmFsdWU6IFtdIH07XG4gICAgICAgIGdyb3VwW2dyb3VwZWRLZXldLnZhbHVlc1tub2RlSWRdLm5vZGUgPSBpc0hpZ2hlclN0YXRlKGdyb3VwW2dyb3VwZWRLZXldLnZhbHVlc1tub2RlSWRdLm5vZGUsIGJsYW5rTm9kZSlcbiAgICAgICAgICA/IGJsYW5rTm9kZVxuICAgICAgICAgIDogZ3JvdXBbZ3JvdXBlZEtleV0udmFsdWVzW25vZGVJZF0ubm9kZTtcbiAgICAgICAgZ3JvdXBbZ3JvdXBlZEtleV0udmFsdWVzW25vZGVJZF0ubm9kZXMucHVzaChibGFua05vZGUpO1xuICAgICAgICBncm91cFtncm91cGVkS2V5XS52YWx1ZXNbbm9kZUlkXS52YWx1ZSA9IGNvbmNhdEJsYW5rTm9kZVZhbHVlKFxuICAgICAgICAgIGdyb3VwW2dyb3VwZWRLZXldLnZhbHVlc1tub2RlSWRdLnZhbHVlLFxuICAgICAgICAgIGJsYW5rTm9kZS52YWx1ZVxuICAgICAgICApO1xuICAgICAgICBncm91cHBlZFZhbHVlS2V5cy5mb3JFYWNoKGFycmF5S2V5ID0+IHtcbiAgICAgICAgICBjb25zdCBuZXdWYWx1ZSA9IGdldChibGFua05vZGUsIGFycmF5S2V5LCBbXSk7XG4gICAgICAgICAgZ3JvdXBbZ3JvdXBlZEtleV0udmFsdWVzW25vZGVJZF1bYXJyYXlLZXldID0gW1xuICAgICAgICAgICAgLi4uKGdyb3VwW2dyb3VwZWRLZXldLnZhbHVlc1tub2RlSWRdW2FycmF5S2V5XSB8fCBbXSksXG4gICAgICAgICAgICAuLi4oQXJyYXkuaXNBcnJheShuZXdWYWx1ZSkgPyBuZXdWYWx1ZSA6IFtuZXdWYWx1ZV0pXG4gICAgICAgICAgXTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBncm91cDtcbiAgICAgIH0sIHByZXYpLFxuICAgIHt9IGFzIElHcm91cGVkTm9kZXM8Uj5cbiAgKTtcblxuICAvLyBjb21waWxlIG9yaWdpbmFsIHZhbHVlc1xuICBPYmplY3QudmFsdWVzKGdyb3VwcykubWFwKGdyb3VwID0+IHtcbiAgICBPYmplY3Qua2V5cyhncm91cC52YWx1ZXMpLm1hcChub2RlSWQgPT4ge1xuICAgICAgY29uc3QgeyBpbmRleCB9ID0gZ3JvdXAudmFsdWVzW25vZGVJZF07XG4gICAgICBjb25zdCB0ZXJtSWQgPSBncm91cC50ZXJtWydAaWQnXTtcbiAgICAgIGNvbnN0IG9yaWdpbmFsVmFsdWUgPSBnZXQob3JpZ2luYWxWYWx1ZXMsIGBbJHtpbmRleH1dLiR7a2V5fWAsIFtdKS5maWx0ZXIoXG4gICAgICAgICh2YWw6IGFueSkgPT4gdmFsLnRlcm1bJ0BpZCddID09PSB0ZXJtSWRcbiAgICAgICk7XG4gICAgICBpZiAob3JpZ2luYWxWYWx1ZS5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gb3JpZ2luYWxWYWx1ZS5yZWR1Y2UoKGFycmF5OiBhbnlbXSwgY3VycjogYW55KSA9PiBjb25jYXRCbGFua05vZGVWYWx1ZShhcnJheSwgY3Vyci52YWx1ZSksIFtdKTtcbiAgICAgICAgZ3JvdXAub3JpZ2luYWxWYWx1ZXNbbm9kZUlkXSA9IHsgdmFsdWU6IHByb3BlcnR5VmFsdWUodmFsdWUsIHRlcm1JZCkgfTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSk7XG5cbiAgcmV0dXJuIGdyb3Vwcztcbn07XG4iXX0=
|
|
126
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tb24vbm9kZS11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEdBQUcsTUFBTSxZQUFZLENBQUM7QUFDN0IsT0FBTyxFQUtMLGtCQUFrQixFQU9uQixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBRSxhQUFhLEVBQXFCLE1BQU0sK0JBQStCLENBQUM7QUFDakYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDM0QsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRTdDLHlDQUF5QztBQUN6QyxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsQ0FBQyxJQUFZLEVBQUUsT0FBTyxHQUFHLEtBQUssRUFBRSxFQUFFLENBQzFELElBQUksRUFBRSxNQUFNLEtBQUssQ0FBQztJQUNoQixDQUFDLENBQUMsT0FBTztRQUNQLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxHQUFHLElBQUksc0JBQXNCLENBQUM7UUFDekMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLEdBQUcsSUFBSSxzQkFBc0IsQ0FBQztJQUMzQyxDQUFDLENBQUMsSUFBSSxFQUFFLE1BQU0sS0FBSyxDQUFDO1FBQ2xCLENBQUMsQ0FBQyxPQUFPO1lBQ1AsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLEdBQUcsSUFBSSxtQkFBbUIsQ0FBQztZQUN0QyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsR0FBRyxJQUFJLG1CQUFtQixDQUFDO1FBQ3hDLENBQUMsQ0FBQyxJQUFJLEVBQUUsTUFBTSxLQUFLLEVBQUU7WUFDbkIsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBQztZQUNuQyxDQUFDLENBQUMsSUFBSTtnQkFDSixDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDO2dCQUNoQixDQUFDLENBQUMsU0FBUyxDQUFDO0FBRXRCLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxDQUFDLFNBQWlCLEVBQUUsT0FBZSxFQUFFLEVBQUU7SUFDcEUsTUFBTSxLQUFLLEdBQUcsVUFBVSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUMxQyxNQUFNLEdBQUcsR0FBRyxVQUFVLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3ZDLE1BQU0sS0FBSyxHQUFXLEVBQUUsQ0FBQztJQUV6QixJQUFJLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQixPQUFPLElBQUksSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUNuQixLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2pCLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNuQyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLENBQUMsS0FBZSxFQUFFLEVBQUU7SUFDcEQsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxHQUFHLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDaEcsT0FBTyxlQUFlLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxFQUFFLFdBQVcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO0FBQ2pFLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FDMUIsQ0FBQyxVQUFrQixFQUFFLEVBQUUsQ0FDdkIsQ0FBQyxFQUFFLElBQUksRUFBa0IsRUFBRSxFQUFFLENBQzNCLENBQUMsVUFBVSxJQUFJLElBQUksRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLEVBQUUsUUFBUSxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO0FBRWpGLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztBQUVsRyxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsQ0FBQyxHQUFXLEVBQUUsRUFBRSxDQUFDLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUVyRSxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLFlBQW1CLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBZSxFQUFFLEVBQUUsQ0FDL0UsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFFN0csTUFBTSxDQUFOLElBQVksWUFLWDtBQUxELFdBQVksWUFBWTtJQUN0QiwrQkFBZSxDQUFBO0lBQ2YsbUNBQW1CLENBQUE7SUFDbkIsbUNBQW1CLENBQUE7SUFDbkIsdUNBQXVCLENBQUE7QUFDekIsQ0FBQyxFQUxXLFlBQVksS0FBWixZQUFZLFFBS3ZCO0FBRUQsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLENBQUMsSUFBb0IsRUFBRSxHQUFXLEVBQUUsS0FBbUIsRUFBRSxFQUFFLENBQ2hGLEtBQUssSUFBSSxJQUFLLElBQUksQ0FBQyxPQUFPLElBQUssQ0FBQyxLQUFLLENBQUMsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBK0NwRyxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsQ0FBSSxNQUE0QixFQUErQixFQUFFLENBQzNGLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBRWpFLE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxLQUFVLEVBQUUsUUFBYSxFQUFFLEVBQUU7SUFDekQsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFELE1BQU0sYUFBYSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN0RSxPQUFPLENBQUMsR0FBRyxVQUFVLEVBQUUsR0FBRyxhQUFhLENBQUMsQ0FBQztBQUMzQyxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsQ0FBQyxVQUE4QixFQUFFLEVBQUUsQ0FDaEU7SUFDRSxrQkFBa0IsQ0FBQyxRQUFRO0lBQzNCLGtCQUFrQixDQUFDLFFBQVEsQ0FBQztJQUM1QixrQkFBa0IsQ0FBQyxRQUFRLENBQUM7SUFDNUIsa0JBQWtCLENBQUMsUUFBUSxDQUFDO0lBQzVCLGtCQUFrQixDQUFDLFVBQVU7SUFDN0Isa0JBQWtCLENBQUMsY0FBYyxDQUFDO0NBQ25DLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0FBRXhCLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHO0lBQy9CLE9BQU87SUFDUCxJQUFJO0lBQ0osS0FBSztJQUNMLEtBQUs7SUFDTCxRQUFRO0lBQ1IsWUFBWTtJQUNaLFlBQVk7SUFDWixXQUFXO0lBQ1gsU0FBUztJQUNULFlBQVk7SUFDWixhQUFhO0lBQ2IsT0FBTztJQUNQLFFBQVE7Q0FDVCxDQUFDO0FBRUYsTUFBTSxhQUFhLEdBQUcsQ0FBQyxVQUEwQixFQUFFLE9BQXVCLEVBQUUsRUFBRSxDQUM1RSxDQUFDLFVBQVU7SUFDWCxPQUFPLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxZQUFZLENBQUMsT0FBTyxDQUFDO0lBQy9DLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLE9BQU8sRUFBRSxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksT0FBTyxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFFekcsTUFBTSxZQUFZLEdBQUcsQ0FBQyxFQUFFLElBQUksRUFBTyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxJQUFJLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBRXBFLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLENBSTlCLFFBQWEsRUFBRSxFQUNmLEdBQWtCLEVBQ2xCLGlCQUFzQixFQUFFLEVBQ3hCLGNBQWMsQ0FBQyxLQUFVLEVBQUUsRUFBRSxDQUFDLElBQUksRUFDaEIsRUFBRTtJQUNwQixNQUFNLE1BQU0sR0FBcUIsS0FBSyxDQUFDLE1BQU0sQ0FDM0MsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQ3BCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxTQUFTLEVBQUUsRUFBRTtRQUM1QywrQkFBK0I7UUFDL0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1lBQzVCLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztRQUVELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzQixNQUFNLFVBQVUsR0FBRyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDM0MsS0FBSyxDQUFDLFVBQVUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBSTtZQUN2QyxJQUFJLEVBQUUsU0FBUyxDQUFDLElBQUk7WUFDcEIsVUFBVSxFQUFFLFNBQVMsQ0FBQyxVQUFVO1lBQ2hDLGVBQWUsRUFBRSxlQUFlLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQztZQUN0RCxNQUFNLEVBQUUsRUFBRTtZQUNWLGNBQWMsRUFBRSxFQUFFO1NBQ25CLENBQUM7UUFDRixLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUM7UUFDdkcsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEdBQUcsYUFBYSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQztZQUNyRyxDQUFDLENBQUMsU0FBUztZQUNYLENBQUMsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQztRQUMxQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDdkQsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEdBQUcsb0JBQW9CLENBQzNELEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUN0QyxTQUFTLENBQUMsS0FBSyxDQUNoQixDQUFDO1FBQ0YsaUJBQWlCLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ25DLE1BQU0sUUFBUSxHQUFHLEdBQUcsQ0FBQyxTQUFTLEVBQUUsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQzlDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUc7Z0JBQzNDLEdBQUcsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDckQsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUNyRCxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUMsRUFBRSxJQUFJLENBQUMsRUFDVixFQUFzQixDQUN2QixDQUFDO0lBRUYsMEJBQTBCO0lBQzFCLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFO1FBQ2hDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNyQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN2QyxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2pDLE1BQU0sYUFBYSxHQUFHLEdBQUcsQ0FBQyxjQUFjLEVBQUUsSUFBSSxLQUFLLEtBQUssR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUN2RSxDQUFDLEdBQVEsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxNQUFNLENBQ3pDLENBQUM7WUFDRixJQUFJLGFBQWEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQzdCLE1BQU0sS0FBSyxHQUFHLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFZLEVBQUUsSUFBUyxFQUFFLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUM3RyxLQUFLLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLGFBQWEsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUN6RSxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUVILE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBnZXQgZnJvbSAnbG9kYXNoLmdldCc7XG5pbXBvcnQge1xuICBUZXJtLFxuICBJQ3ljbGVKU09OTEQsXG4gIElTaXRlSlNPTkxELFxuICBJSW1wYWN0QXNzZXNzbWVudEpTT05MRCxcbiAgRW1pc3Npb25NZXRob2RUaWVyLFxuICBJVGVybUpTT05MRCxcbiAgSW5kaWNhdG9yLFxuICBBbmltYWwsXG4gIFRyYW5zZm9ybWF0aW9uLFxuICBibGFua05vZGVzVHlwZSxcbiAgYmxhbmtOb2Rlc0tleVxufSBmcm9tICdAaGVzdGlhLWVhcnRoL3NjaGVtYSc7XG5pbXBvcnQgeyBwcm9wZXJ0eVZhbHVlLCBwcm9wZXJ0eVZhbHVlVHlwZSB9IGZyb20gJ0BoZXN0aWEtZWFydGgvdXRpbHMvZGlzdC90ZXJtJztcbmltcG9ydCB7IGdldERlZmF1bHRNb2RlbElkIH0gZnJvbSAnQGhlc3RpYS1lYXJ0aC9nbG9zc2FyeSc7XG5pbXBvcnQgeyB1bmlxdWUgfSBmcm9tICdAaGVzdGlhLWVhcnRoL3V0aWxzJztcblxuLyogZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGNvbXBsZXhpdHkgKi9cbmV4cG9ydCBjb25zdCBmb3JtYXREYXRlID0gKGRhdGU6IHN0cmluZywgaXNTdGFydCA9IGZhbHNlKSA9PlxuICBkYXRlPy5sZW5ndGggPT09IDRcbiAgICA/IGlzU3RhcnRcbiAgICAgID8gbmV3IERhdGUoYCR7ZGF0ZX0tMDEtMDFUMTI6MDA6MDAuMDAwWmApXG4gICAgICA6IG5ldyBEYXRlKGAke2RhdGV9LTEyLTMxVDEyOjAwOjAwLjAwMFpgKVxuICAgIDogZGF0ZT8ubGVuZ3RoID09PSA3XG4gICAgICA/IGlzU3RhcnRcbiAgICAgICAgPyBuZXcgRGF0ZShgJHtkYXRlfS0xNVQxMjowMDowMC4wMDBaYClcbiAgICAgICAgOiBuZXcgRGF0ZShgJHtkYXRlfS0xNFQxMjowMDowMC4wMDBaYClcbiAgICAgIDogZGF0ZT8ubGVuZ3RoID09PSAxMFxuICAgICAgICA/IG5ldyBEYXRlKGAke2RhdGV9VDEyOjAwOjAwLjAwMFpgKVxuICAgICAgICA6IGRhdGVcbiAgICAgICAgICA/IG5ldyBEYXRlKGRhdGUpXG4gICAgICAgICAgOiB1bmRlZmluZWQ7XG5cbmV4cG9ydCBjb25zdCBnZXREYXRlc0JldHdlZW4gPSAoc3RhcnREYXRlOiBzdHJpbmcsIGVuZERhdGU6IHN0cmluZykgPT4ge1xuICBjb25zdCBzdGFydCA9IGZvcm1hdERhdGUoc3RhcnREYXRlLCB0cnVlKTtcbiAgY29uc3QgZW5kID0gZm9ybWF0RGF0ZShlbmREYXRlLCBmYWxzZSk7XG4gIGNvbnN0IGRhdGVzOiBEYXRlW10gPSBbXTtcblxuICBsZXQgZGF0ZSA9IG5ldyBEYXRlKHN0YXJ0KTtcbiAgd2hpbGUgKGRhdGUgPD0gZW5kKSB7XG4gICAgZGF0ZXMucHVzaChkYXRlKTtcbiAgICBkYXRlID0gbmV3IERhdGUoZGF0ZSk7XG4gICAgZGF0ZS5zZXRNb250aChkYXRlLmdldE1vbnRoKCkgKyAxKTtcbiAgICBkYXRlLnNldFVUQ0hvdXJzKDEyKTtcbiAgfVxuXG4gIHJldHVybiBkYXRlcztcbn07XG5cbmV4cG9ydCBjb25zdCB1bmlxdWVEYXRlc0JldHdlZW4gPSAoZGF0ZXM6IHN0cmluZ1tdKSA9PiB7XG4gIGNvbnN0IHNvcnRlZERhdGVzID0gdW5pcXVlKGRhdGVzKS5zb3J0KChhLCBiKSA9PiBuZXcgRGF0ZShhKS5nZXRUaW1lKCkgLSBuZXcgRGF0ZShiKS5nZXRUaW1lKCkpO1xuICByZXR1cm4gZ2V0RGF0ZXNCZXR3ZWVuKHNvcnRlZERhdGVzLnNoaWZ0KCksIHNvcnRlZERhdGVzLnBvcCgpKTtcbn07XG5cbmV4cG9ydCBjb25zdCBmaWx0ZXJCbGFua05vZGUgPVxuICAoZmlsdGVyVGVybTogc3RyaW5nKSA9PlxuICAoeyB0ZXJtIH06IGJsYW5rTm9kZXNUeXBlKSA9PlxuICAgICFmaWx0ZXJUZXJtIHx8IHRlcm0/Lm5hbWU/LnRvTG93ZXJDYXNlKCk/LmluY2x1ZGVzKGZpbHRlclRlcm0udG9Mb3dlckNhc2UoKSk7XG5cbmV4cG9ydCBjb25zdCBpZ25vcmVLZXlzID0gWydAdHlwZScsICd0eXBlJywgJ2FkZGVkJywgJ3VwZGF0ZWQnLCAnYWRkZWRWZXJzaW9uJywgJ3VwZGF0ZWRWZXJzaW9uJ107XG5cbmV4cG9ydCBjb25zdCBpc1ZhbGlkS2V5ID0gKGtleTogc3RyaW5nKSA9PiAhaWdub3JlS2V5cy5pbmNsdWRlcyhrZXkpO1xuXG5leHBvcnQgY29uc3QgaXNNZXRob2RNb2RlbEFsbG93ZWQgPSAoZmlsdGVyTWV0aG9kPzogVGVybSkgPT4gKG5vZGU6IEluZGljYXRvcikgPT5cbiAgbm9kZS5tZXRob2RNb2RlbD8uWydAaWQnXSA9PT0gKGZpbHRlck1ldGhvZCA/IGZpbHRlck1ldGhvZFsnQGlkJ10gOiBnZXREZWZhdWx0TW9kZWxJZChub2RlLnRlcm0/LlsnQGlkJ10pKTtcblxuZXhwb3J0IGVudW0gTm9kZUtleVN0YXRlIHtcbiAgYWRkZWQgPSAnYWRkZWQnLFxuICB1cGRhdGVkID0gJ3VwZGF0ZWQnLFxuICBkZWxldGVkID0gJ2RlbGV0ZWQnLFxuICB1bmNoYW5nZWQgPSAndW5jaGFuZ2VkJ1xufVxuXG5leHBvcnQgY29uc3QgaXNTdGF0ZSA9IChub2RlOiBibGFua05vZGVzVHlwZSwga2V5OiBzdHJpbmcsIHN0YXRlOiBOb2RlS2V5U3RhdGUpID0+XG4gIHN0YXRlIGluIG5vZGUhICYmICh0eXBlb2Ygbm9kZSFbc3RhdGVdID09PSAnYm9vbGVhbicgPyBub2RlIVtzdGF0ZV0gOiBub2RlIVtzdGF0ZV0uaW5jbHVkZXMoa2V5KSk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUdyb3VwZWROb2RlPFQ+IHtcbiAgLy8gc3RvcmUgdGhlIG5vZGUgd2l0aCB0aGUgaGlnaGVzdCBcInN0YXRlXCJcbiAgbm9kZTogVDtcbiAgbm9kZXM6IFRbXTtcbiAgaW5kZXg6IG51bWJlcjtcbiAgdmFsdWU6IHByb3BlcnR5VmFsdWVUeXBlW107XG4gIGRhdGVzPzogYW55W107XG4gIHNkPzogbnVtYmVyW107XG4gIG1pbj86IG51bWJlcltdO1xuICBtYXg/OiBudW1iZXJbXTtcbiAgaW5wdXRzPzogYW55W107XG4gIGRlcHRoVXBwZXI/OiBudW1iZXJbXTtcbiAgZGVwdGhMb3dlcj86IG51bWJlcltdO1xuICBzdGFydERhdGU/OiBzdHJpbmdbXTtcbiAgZW5kRGF0ZT86IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElHcm91cGVkTm9kZXNWYWx1ZXM8VD4ge1xuICBbbm9kZUlkOiBzdHJpbmddOiBJR3JvdXBlZE5vZGU8VD47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUdyb3VwZWROb2Rlc1ZhbHVlPFQ+IHtcbiAgdGVybTogSVRlcm1KU09OTEQ7XG4gIG1ldGhvZFRpZXI/OiBFbWlzc2lvbk1ldGhvZFRpZXI7XG4gIC8qKlxuICAgKiBFbmFibGUgb3JkZXJpbmcgbnkgbWV0aG9kVGllclxuICAgKi9cbiAgbWV0aG9kVGllck9yZGVyOiBudW1iZXI7XG4gIHZhbHVlczogSUdyb3VwZWROb2Rlc1ZhbHVlczxUPjtcbiAgb3JpZ2luYWxWYWx1ZXM6IHtcbiAgICBbbm9kZUlkOiBzdHJpbmddOiB7XG4gICAgICB2YWx1ZTogcHJvcGVydHlWYWx1ZVR5cGU7XG4gICAgfTtcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJR3JvdXBlZE5vZGVzPFQ+IHtcbiAgW3Rlcm1JZDogc3RyaW5nXTogSUdyb3VwZWROb2Rlc1ZhbHVlPFQ+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElHcm91cGVkS2V5czxUPiB7XG4gIGtleTogc3RyaW5nO1xuICB2YWx1ZTogSUdyb3VwZWROb2Rlc1ZhbHVlPFQ+O1xufVxuXG5leHBvcnQgY29uc3QgZ3JvdXBwZWRLZXlzID0gPFQ+KHZhbHVlczogeyBba2V5OiBzdHJpbmddOiBUIH0pOiB7IGtleTogc3RyaW5nOyB2YWx1ZTogVCB9W10gPT5cbiAgT2JqZWN0LmVudHJpZXModmFsdWVzKS5tYXAoKFtrZXksIHZhbHVlXSkgPT4gKHsga2V5LCB2YWx1ZSB9KSk7XG5cbmNvbnN0IGNvbmNhdEJsYW5rTm9kZVZhbHVlID0gKHZhbHVlOiBhbnksIG5ld1ZhbHVlOiBhbnkpID0+IHtcbiAgY29uc3QgdmFsdWVBcnJheSA9IEFycmF5LmlzQXJyYXkodmFsdWUpID8gdmFsdWUgOiBbdmFsdWVdO1xuICBjb25zdCBuZXdWYWx1ZUFycmF5ID0gQXJyYXkuaXNBcnJheShuZXdWYWx1ZSkgPyBuZXdWYWx1ZSA6IFtuZXdWYWx1ZV07XG4gIHJldHVybiBbLi4udmFsdWVBcnJheSwgLi4ubmV3VmFsdWVBcnJheV07XG59O1xuXG5leHBvcnQgY29uc3QgbWV0aG9kVGllck9yZGVyID0gKG1ldGhvZFRpZXI6IEVtaXNzaW9uTWV0aG9kVGllcikgPT5cbiAgW1xuICAgIEVtaXNzaW9uTWV0aG9kVGllci5tZWFzdXJlZCxcbiAgICBFbWlzc2lvbk1ldGhvZFRpZXJbJ3RpZXIgMyddLFxuICAgIEVtaXNzaW9uTWV0aG9kVGllclsndGllciAyJ10sXG4gICAgRW1pc3Npb25NZXRob2RUaWVyWyd0aWVyIDEnXSxcbiAgICBFbWlzc2lvbk1ldGhvZFRpZXIuYmFja2dyb3VuZCxcbiAgICBFbWlzc2lvbk1ldGhvZFRpZXJbJ25vdCByZWxldmFudCddXG4gIF0uaW5kZXhPZihtZXRob2RUaWVyKTtcblxuZXhwb3J0IGNvbnN0IGdyb3VwcGVkVmFsdWVLZXlzID0gW1xuICAnZGF0ZXMnLFxuICAnc2QnLFxuICAnbWluJyxcbiAgJ21heCcsXG4gICdpbnB1dHMnLFxuICAnZGVwdGhVcHBlcicsXG4gICdkZXB0aExvd2VyJyxcbiAgJ3N0YXJ0RGF0ZScsXG4gICdlbmREYXRlJyxcbiAgJ21ldGhvZFRpZXInLFxuICAnbWV0aG9kTW9kZWwnLFxuICAnbW9kZWwnLFxuICAnbWV0aG9kJ1xuXTtcblxuY29uc3QgaXNIaWdoZXJTdGF0ZSA9IChzb3VyY2VOb2RlOiBibGFua05vZGVzVHlwZSwgbmV3Tm9kZTogYmxhbmtOb2Rlc1R5cGUpID0+XG4gICFzb3VyY2VOb2RlIHx8XG4gIGlzU3RhdGUobmV3Tm9kZSwgJ3ZhbHVlJywgTm9kZUtleVN0YXRlLnVwZGF0ZWQpIHx8XG4gICghaXNTdGF0ZShzb3VyY2VOb2RlLCAndmFsdWUnLCBOb2RlS2V5U3RhdGUudXBkYXRlZCkgJiYgaXNTdGF0ZShuZXdOb2RlLCAndmFsdWUnLCBOb2RlS2V5U3RhdGUuYWRkZWQpKTtcblxuY29uc3QgZ3JvdXBOb2RlS2V5ID0gKHsgdGVybSB9OiBhbnkpID0+IHRlcm0/Lm5hbWUgfHwgdGVybT8uWydAaWQnXTtcblxuZXhwb3J0IGNvbnN0IGdyb3VwTm9kZXNCeVRlcm0gPSA8XG4gIFQgZXh0ZW5kcyBJQ3ljbGVKU09OTEQgfCBJSW1wYWN0QXNzZXNzbWVudEpTT05MRCB8IElTaXRlSlNPTkxEIHwgQW5pbWFsIHwgVHJhbnNmb3JtYXRpb24sXG4gIFJcbj4oXG4gIG5vZGVzOiBUW10gPSBbXSxcbiAga2V5OiBibGFua05vZGVzS2V5LFxuICBvcmlnaW5hbFZhbHVlczogVFtdID0gW10sXG4gIGluY2x1ZGVOb2RlID0gKF9ub2RlOiBhbnkpID0+IHRydWVcbik6IElHcm91cGVkTm9kZXM8Uj4gPT4ge1xuICBjb25zdCBncm91cHM6IElHcm91cGVkTm9kZXM8Uj4gPSBub2Rlcy5yZWR1Y2UoXG4gICAgKHByZXYsIG5vZGUsIGluZGV4KSA9PlxuICAgICAgKG5vZGVba2V5XSB8fCBbXSkucmVkdWNlKChncm91cCwgYmxhbmtOb2RlKSA9PiB7XG4gICAgICAgIC8vIHNraXAgbm9kZSBiYXNlZCBvbiBjb25kaXRpb25cbiAgICAgICAgaWYgKCFpbmNsdWRlTm9kZShibGFua05vZGUpKSB7XG4gICAgICAgICAgcmV0dXJuIGdyb3VwO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgbm9kZUlkID0gbm9kZVsnQGlkJ107XG4gICAgICAgIGNvbnN0IGdyb3VwZWRLZXkgPSBncm91cE5vZGVLZXkoYmxhbmtOb2RlKTtcbiAgICAgICAgZ3JvdXBbZ3JvdXBlZEtleV0gPSBncm91cFtncm91cGVkS2V5XSB8fCB7XG4gICAgICAgICAgdGVybTogYmxhbmtOb2RlLnRlcm0sXG4gICAgICAgICAgbWV0aG9kVGllcjogYmxhbmtOb2RlLm1ldGhvZFRpZXIsXG4gICAgICAgICAgbWV0aG9kVGllck9yZGVyOiBtZXRob2RUaWVyT3JkZXIoYmxhbmtOb2RlLm1ldGhvZFRpZXIpLFxuICAgICAgICAgIHZhbHVlczoge30sXG4gICAgICAgICAgb3JpZ2luYWxWYWx1ZXM6IHt9XG4gICAgICAgIH07XG4gICAgICAgIGdyb3VwW2dyb3VwZWRLZXldLnZhbHVlc1tub2RlSWRdID0gZ3JvdXBbZ3JvdXBlZEtleV0udmFsdWVzW25vZGVJZF0gfHwgeyBpbmRleCwgbm9kZXM6IFtdLCB2YWx1ZTogW10gfTtcbiAgICAgICAgZ3JvdXBbZ3JvdXBlZEtleV0udmFsdWVzW25vZGVJZF0ubm9kZSA9IGlzSGlnaGVyU3RhdGUoZ3JvdXBbZ3JvdXBlZEtleV0udmFsdWVzW25vZGVJZF0ubm9kZSwgYmxhbmtOb2RlKVxuICAgICAgICAgID8gYmxhbmtOb2RlXG4gICAgICAgICAgOiBncm91cFtncm91cGVkS2V5XS52YWx1ZXNbbm9kZUlkXS5ub2RlO1xuICAgICAgICBncm91cFtncm91cGVkS2V5XS52YWx1ZXNbbm9kZUlkXS5ub2Rlcy5wdXNoKGJsYW5rTm9kZSk7XG4gICAgICAgIGdyb3VwW2dyb3VwZWRLZXldLnZhbHVlc1tub2RlSWRdLnZhbHVlID0gY29uY2F0QmxhbmtOb2RlVmFsdWUoXG4gICAgICAgICAgZ3JvdXBbZ3JvdXBlZEtleV0udmFsdWVzW25vZGVJZF0udmFsdWUsXG4gICAgICAgICAgYmxhbmtOb2RlLnZhbHVlXG4gICAgICAgICk7XG4gICAgICAgIGdyb3VwcGVkVmFsdWVLZXlzLmZvckVhY2goYXJyYXlLZXkgPT4ge1xuICAgICAgICAgIGNvbnN0IG5ld1ZhbHVlID0gZ2V0KGJsYW5rTm9kZSwgYXJyYXlLZXksIFtdKTtcbiAgICAgICAgICBncm91cFtncm91cGVkS2V5XS52YWx1ZXNbbm9kZUlkXVthcnJheUtleV0gPSBbXG4gICAgICAgICAgICAuLi4oZ3JvdXBbZ3JvdXBlZEtleV0udmFsdWVzW25vZGVJZF1bYXJyYXlLZXldIHx8IFtdKSxcbiAgICAgICAgICAgIC4uLihBcnJheS5pc0FycmF5KG5ld1ZhbHVlKSA/IG5ld1ZhbHVlIDogW25ld1ZhbHVlXSlcbiAgICAgICAgICBdO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIGdyb3VwO1xuICAgICAgfSwgcHJldiksXG4gICAge30gYXMgSUdyb3VwZWROb2RlczxSPlxuICApO1xuXG4gIC8vIGNvbXBpbGUgb3JpZ2luYWwgdmFsdWVzXG4gIE9iamVjdC52YWx1ZXMoZ3JvdXBzKS5tYXAoZ3JvdXAgPT4ge1xuICAgIE9iamVjdC5rZXlzKGdyb3VwLnZhbHVlcykubWFwKG5vZGVJZCA9PiB7XG4gICAgICBjb25zdCB7IGluZGV4IH0gPSBncm91cC52YWx1ZXNbbm9kZUlkXTtcbiAgICAgIGNvbnN0IHRlcm1JZCA9IGdyb3VwLnRlcm1bJ0BpZCddO1xuICAgICAgY29uc3Qgb3JpZ2luYWxWYWx1ZSA9IGdldChvcmlnaW5hbFZhbHVlcywgYFske2luZGV4fV0uJHtrZXl9YCwgW10pLmZpbHRlcihcbiAgICAgICAgKHZhbDogYW55KSA9PiB2YWwudGVybVsnQGlkJ10gPT09IHRlcm1JZFxuICAgICAgKTtcbiAgICAgIGlmIChvcmlnaW5hbFZhbHVlLmxlbmd0aCA+IDApIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBvcmlnaW5hbFZhbHVlLnJlZHVjZSgoYXJyYXk6IGFueVtdLCBjdXJyOiBhbnkpID0+IGNvbmNhdEJsYW5rTm9kZVZhbHVlKGFycmF5LCBjdXJyLnZhbHVlKSwgW10pO1xuICAgICAgICBncm91cC5vcmlnaW5hbFZhbHVlc1tub2RlSWRdID0geyB2YWx1ZTogcHJvcGVydHlWYWx1ZSh2YWx1ZSwgdGVybUlkKSB9O1xuICAgICAgfVxuICAgIH0pO1xuICB9KTtcblxuICByZXR1cm4gZ3JvdXBzO1xufTtcbiJdfQ==
|