@hestia-earth/ui-components 0.21.12 → 0.21.14

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.
@@ -15,7 +15,6 @@ export declare class LinkKeyValueComponent {
15
15
  toString: (value: any) => any;
16
16
  get type(): any;
17
17
  get value(): any;
18
- get valueString(): any;
19
18
  get isArray(): boolean;
20
19
  get isUndefined(): boolean;
21
20
  isBlankNode(value: any): boolean;
@@ -7,11 +7,11 @@ import * as i0 from "@angular/core";
7
7
  import * as i1 from "@angular/common";
8
8
  import * as i2 from "../bind-once.directive";
9
9
  import * as i3 from "../blank-node-state/blank-node-state.component";
10
- import * as i4 from "../precision.pipe";
11
10
  const valueLink = (value) => isExpandable(value) && value['@id'] ? [baseUrl(), value['@type'].toLowerCase(), value['@id']].join('/') : null;
12
11
  const valueLinkRef = (value, href) => href ? `<a class="is-dark" href="${href}">${value.name || value['@id']}</a>` : null;
13
12
  const valueValue = (value) => Array.isArray(value) ? value.map(valueValue).join(', ') : toPrecision(value);
14
13
  const stringMapper = {
14
+ number: (value) => `${toPrecision(value, 3)}`,
15
15
  undefined: () => '',
16
16
  blankNode: value => 'term' in value
17
17
  ? `${valueLinkRef(value.term, valueLink(value.term))}${'value' in value ? `: ${valueValue(value.value)}` : ''}`
@@ -42,11 +42,11 @@ export class LinkKeyValueComponent {
42
42
  get value() {
43
43
  return get(this.node, this.key);
44
44
  }
45
- get valueString() {
46
- return toString(this.value);
47
- }
48
45
  get isArray() {
49
- return Array.isArray(this.value) && this.value.length > 1;
46
+ return Array.isArray(this.value) && [
47
+ this.value.length > 1,
48
+ isExpandable(this.value[0])
49
+ ].some(Boolean);
50
50
  }
51
51
  get isUndefined() {
52
52
  return isUndefined(this.value);
@@ -55,11 +55,11 @@ export class LinkKeyValueComponent {
55
55
  return isExpandable(value) && 'term' in value;
56
56
  }
57
57
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.8", ngImport: i0, type: LinkKeyValueComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
58
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.8", type: LinkKeyValueComponent, selector: "he-link-key-value", inputs: { node: "node", nodeType: "nodeType", dataKey: "dataKey", key: "key", defaultValue: "defaultValue", dataState: "dataState" }, host: { properties: { "class.is-inline-block": "this.isInlineBlock" } }, ngImport: i0, template: "<ng-container *ngIf=\"!isUndefined; else showDefault\">\n <ng-container *bindOnce=\"node\">\n <a class=\"is-dark\" [href]=\"baseUrl + '/schema/' + type + '#' + key\" target=\"_blank\"><b>{{key}}</b></a>\n <span class=\"pr-2\">:</span>\n\n <ng-container *ngIf=\"isArray; else singleValue\">\n <div class=\"array-container pl-2\">\n <ng-container *ngFor=\"let v of value\">\n <ng-template #stringValue>\n <p [innerHtml]=\"toString(v) | precision:3\"></p>\n </ng-template>\n <ng-container *ngIf=\"isBlankNode(v); else stringValue\">\n <div>\n <a class=\"is-dark\" href=\"valueLink(v.term)\">{{v.term.name || v.term['@id']}}</a>\n <span class=\"pr-2\">:</span>\n <div class=\"is-inline-block is-nowrap\" [innerHtml]=\"toString(v.value) | precision:3\"></div>\n\n <he-blank-node-state class=\"pl-1\"\n [node]=\"v\" [nodeType]=\"nodeType\" [dataState]=\"dataState\" [dataKey]=\"dataKey\" key=\"value\" linkClass=\"is-dark\"\n ></he-blank-node-state>\n </div>\n </ng-container>\n </ng-container>\n </div>\n </ng-container>\n </ng-container>\n</ng-container>\n\n<ng-template #singleValue>\n <div class=\"is-inline-block is-nowrap\" [innerHtml]=\"valueString | precision:3\"></div>\n\n <he-blank-node-state class=\"pl-1\"\n [node]=\"node\" [nodeType]=\"nodeType\" [dataState]=\"dataState\" [dataKey]=\"dataKey\" [key]=\"key\" linkClass=\"is-dark\"\n ></he-blank-node-state>\n</ng-template>\n\n<ng-template #showDefault>\n <span>{{defaultValue}}</span>\n</ng-template>\n", styles: [":host{display:block}:host a.has-text-white:hover,:host a.has-text-white.is-hovered{text-decoration:underline}.array-container{max-height:100px;overflow-y:auto}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.BindOnceDirective, selector: "[bindOnce]", inputs: ["bindOnce"] }, { kind: "component", type: i3.BlankNodeStateComponent, selector: "he-blank-node-state", inputs: ["dataState", "nodeType", "dataKey", "key", "node", "state", "linkClass"] }, { kind: "pipe", type: i4.PrecisionPipe, name: "precision" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
58
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.8", type: LinkKeyValueComponent, selector: "he-link-key-value", inputs: { node: "node", nodeType: "nodeType", dataKey: "dataKey", key: "key", defaultValue: "defaultValue", dataState: "dataState" }, host: { properties: { "class.is-inline-block": "this.isInlineBlock" } }, ngImport: i0, template: "<ng-container *ngIf=\"!isUndefined; else showDefault\">\n <ng-container *bindOnce=\"node\">\n <a class=\"is-dark\" [href]=\"baseUrl + '/schema/' + type + '#' + key\" target=\"_blank\"><b>{{key}}</b></a>\n <span class=\"pr-2\">:</span>\n\n <ng-container *ngIf=\"isArray; else singleValue\">\n <div class=\"array-container is-pl-2\">\n <ng-container *ngFor=\"let v of value\">\n <ng-template #nonBlankNodeValue>\n <ng-container *ngTemplateOutlet=\"valueContent;context:{value:v}\"></ng-container>\n </ng-template>\n\n <ng-container *ngIf=\"isBlankNode(v); else nonBlankNodeValue\">\n <div>\n <a class=\"is-dark\" [href]=\"valueLink(v.term)\">{{v.term.name || v.term['@id']}}</a>\n <span class=\"pr-2\">:</span>\n <ng-container *ngTemplateOutlet=\"valueContent;context:{value:v.value}\"></ng-container>\n\n <he-blank-node-state class=\"pl-1\"\n [node]=\"v\" [nodeType]=\"nodeType\" [dataState]=\"dataState\" [dataKey]=\"dataKey\" key=\"value\" linkClass=\"is-dark\"\n ></he-blank-node-state>\n </div>\n </ng-container>\n </ng-container>\n </div>\n </ng-container>\n </ng-container>\n</ng-container>\n\n<ng-template #valueContent let-v=\"value\">\n <div class=\"is-inline-block is-nowrap\" [innerHtml]=\"toString(v)\"></div>\n</ng-template>\n\n<ng-template #singleValue>\n <ng-container *ngTemplateOutlet=\"valueContent;context:{value}\"></ng-container>\n\n <he-blank-node-state class=\"pl-1\"\n [node]=\"node\" [nodeType]=\"nodeType\" [dataState]=\"dataState\" [dataKey]=\"dataKey\" [key]=\"key\" linkClass=\"is-dark\"\n ></he-blank-node-state>\n</ng-template>\n\n<ng-template #showDefault>\n <span *ngIf=\"!!defaultValue\">{{defaultValue}}</span>\n</ng-template>\n", styles: [":host{display:block}:host a.has-text-white:hover,:host a.has-text-white.is-hovered{text-decoration:underline}.array-container{max-height:100px;overflow-y:auto}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.BindOnceDirective, selector: "[bindOnce]", inputs: ["bindOnce"] }, { kind: "component", type: i3.BlankNodeStateComponent, selector: "he-blank-node-state", inputs: ["dataState", "nodeType", "dataKey", "key", "node", "state", "linkClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
59
59
  }
60
60
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.8", ngImport: i0, type: LinkKeyValueComponent, decorators: [{
61
61
  type: Component,
62
- args: [{ selector: 'he-link-key-value', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"!isUndefined; else showDefault\">\n <ng-container *bindOnce=\"node\">\n <a class=\"is-dark\" [href]=\"baseUrl + '/schema/' + type + '#' + key\" target=\"_blank\"><b>{{key}}</b></a>\n <span class=\"pr-2\">:</span>\n\n <ng-container *ngIf=\"isArray; else singleValue\">\n <div class=\"array-container pl-2\">\n <ng-container *ngFor=\"let v of value\">\n <ng-template #stringValue>\n <p [innerHtml]=\"toString(v) | precision:3\"></p>\n </ng-template>\n <ng-container *ngIf=\"isBlankNode(v); else stringValue\">\n <div>\n <a class=\"is-dark\" href=\"valueLink(v.term)\">{{v.term.name || v.term['@id']}}</a>\n <span class=\"pr-2\">:</span>\n <div class=\"is-inline-block is-nowrap\" [innerHtml]=\"toString(v.value) | precision:3\"></div>\n\n <he-blank-node-state class=\"pl-1\"\n [node]=\"v\" [nodeType]=\"nodeType\" [dataState]=\"dataState\" [dataKey]=\"dataKey\" key=\"value\" linkClass=\"is-dark\"\n ></he-blank-node-state>\n </div>\n </ng-container>\n </ng-container>\n </div>\n </ng-container>\n </ng-container>\n</ng-container>\n\n<ng-template #singleValue>\n <div class=\"is-inline-block is-nowrap\" [innerHtml]=\"valueString | precision:3\"></div>\n\n <he-blank-node-state class=\"pl-1\"\n [node]=\"node\" [nodeType]=\"nodeType\" [dataState]=\"dataState\" [dataKey]=\"dataKey\" [key]=\"key\" linkClass=\"is-dark\"\n ></he-blank-node-state>\n</ng-template>\n\n<ng-template #showDefault>\n <span>{{defaultValue}}</span>\n</ng-template>\n", styles: [":host{display:block}:host a.has-text-white:hover,:host a.has-text-white.is-hovered{text-decoration:underline}.array-container{max-height:100px;overflow-y:auto}\n"] }]
62
+ args: [{ selector: 'he-link-key-value', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"!isUndefined; else showDefault\">\n <ng-container *bindOnce=\"node\">\n <a class=\"is-dark\" [href]=\"baseUrl + '/schema/' + type + '#' + key\" target=\"_blank\"><b>{{key}}</b></a>\n <span class=\"pr-2\">:</span>\n\n <ng-container *ngIf=\"isArray; else singleValue\">\n <div class=\"array-container is-pl-2\">\n <ng-container *ngFor=\"let v of value\">\n <ng-template #nonBlankNodeValue>\n <ng-container *ngTemplateOutlet=\"valueContent;context:{value:v}\"></ng-container>\n </ng-template>\n\n <ng-container *ngIf=\"isBlankNode(v); else nonBlankNodeValue\">\n <div>\n <a class=\"is-dark\" [href]=\"valueLink(v.term)\">{{v.term.name || v.term['@id']}}</a>\n <span class=\"pr-2\">:</span>\n <ng-container *ngTemplateOutlet=\"valueContent;context:{value:v.value}\"></ng-container>\n\n <he-blank-node-state class=\"pl-1\"\n [node]=\"v\" [nodeType]=\"nodeType\" [dataState]=\"dataState\" [dataKey]=\"dataKey\" key=\"value\" linkClass=\"is-dark\"\n ></he-blank-node-state>\n </div>\n </ng-container>\n </ng-container>\n </div>\n </ng-container>\n </ng-container>\n</ng-container>\n\n<ng-template #valueContent let-v=\"value\">\n <div class=\"is-inline-block is-nowrap\" [innerHtml]=\"toString(v)\"></div>\n</ng-template>\n\n<ng-template #singleValue>\n <ng-container *ngTemplateOutlet=\"valueContent;context:{value}\"></ng-container>\n\n <he-blank-node-state class=\"pl-1\"\n [node]=\"node\" [nodeType]=\"nodeType\" [dataState]=\"dataState\" [dataKey]=\"dataKey\" [key]=\"key\" linkClass=\"is-dark\"\n ></he-blank-node-state>\n</ng-template>\n\n<ng-template #showDefault>\n <span *ngIf=\"!!defaultValue\">{{defaultValue}}</span>\n</ng-template>\n", styles: [":host{display:block}:host a.has-text-white:hover,:host a.has-text-white.is-hovered{text-decoration:underline}.array-container{max-height:100px;overflow-y:auto}\n"] }]
63
63
  }], propDecorators: { node: [{
64
64
  type: Input
65
65
  }], nodeType: [{
@@ -76,4 +76,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.8", ngImpor
76
76
  type: HostBinding,
77
77
  args: ['class.is-inline-block']
78
78
  }] } });
79
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluay1rZXktdmFsdWUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbW1vbi9saW5rLWtleS12YWx1ZS9saW5rLWtleS12YWx1ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvY29tbW9uL2xpbmsta2V5LXZhbHVlL2xpbmsta2V5LXZhbHVlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV2RixPQUFPLEVBQUUsWUFBWSxFQUFZLE1BQU0sc0JBQXNCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMvRCxPQUFPLEdBQUcsTUFBTSxZQUFZLENBQUM7QUFFN0IsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFVBQVUsQ0FBQzs7Ozs7O0FBRW5DLE1BQU0sU0FBUyxHQUFHLENBQUMsS0FBVSxFQUFFLEVBQUUsQ0FDL0IsWUFBWSxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7QUFFakgsTUFBTSxZQUFZLEdBQUcsQ0FBQyxLQUFVLEVBQUUsSUFBYSxFQUFFLEVBQUUsQ0FDakQsSUFBSSxDQUFDLENBQUMsQ0FBQyw0QkFBNEIsSUFBSSxLQUFLLEtBQUssQ0FBQyxJQUFJLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztBQUV0RixNQUFN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QUMsS0FBVTtRQUMzQixPQUFPLFlBQVksQ0FBQyxLQUFLLENBQUMsSUFBSSxNQUFNLElBQUksS0FBSyxDQUFDO0lBQ2hELENBQUM7OEdBL0NVLHFCQUFxQjtrR0FBckIscUJBQXFCLHdRQzFDbEMsd25EQXVDQTs7MkZER2EscUJBQXFCO2tCQU5qQyxTQUFTOytCQUNFLG1CQUFtQixtQkFHWix1QkFBdUIsQ0FBQyxNQUFNOzhCQUlyQyxJQUFJO3NCQURiLEtBQUs7Z0JBR0ksUUFBUTtzQkFEakIsS0FBSztnQkFHSSxPQUFPO3NCQURoQixLQUFLO2dCQUdJLEdBQUc7c0JBRFosS0FBSztnQkFHSSxZQUFZO3NCQURyQixLQUFLO2dCQUdJLFNBQVM7c0JBRGxCLEtBQUs7Z0JBT0YsYUFBYTtzQkFEaEIsV0FBVzt1QkFBQyx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBIb3N0QmluZGluZywgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERhdGFTdGF0ZSB9IGZyb20gJ0BoZXN0aWEtZWFydGgvYXBpJztcbmltcG9ydCB7IGlzRXhwYW5kYWJsZSwgTm9kZVR5cGUgfSBmcm9tICdAaGVzdGlhLWVhcnRoL3NjaGVtYSc7XG5pbXBvcnQgeyBpc1VuZGVmaW5lZCwgdG9QcmVjaXNpb24gfSBmcm9tICdAaGVzdGlhLWVhcnRoL3V0aWxzJztcbmltcG9ydCBnZXQgZnJvbSAnbG9kYXNoLmdldCc7XG5cbmltcG9ydCB7IGJhc2VVcmwgfSBmcm9tICcuLi91dGlscyc7XG5cbmNvbnN0IHZhbHVlTGluayA9ICh2YWx1ZTogYW55KSA9PlxuICBpc0V4cGFuZGFibGUodmFsdWUpICYmIHZhbHVlWydAaWQnXSA/IFtiYXNlVXJsKCksIHZhbHVlWydAdHlwZSddLnRvTG93ZXJDYXNlKCksIHZhbHVlWydAaWQnXV0uam9pbignLycpIDogbnVsbDtcblxuY29uc3QgdmFsdWVMaW5rUmVmID0gKHZhbHVlOiBhbnksIGhyZWY/OiBzdHJpbmcpID0+XG4gIGhyZWYgPyBgPGEgY2xhc3M9XCJpcy1kYXJrXCIgaHJlZj1cIiR7aHJlZn1cIj4ke3ZhbHVlLm5hbWUgfHwgdmFsdWVbJ0BpZCddfTwvYT5gIDogbnVsbDtcblxuY29uc3QgdmFsdWVWYWx1ZSA9ICh2YWx1ZTogYW55KSA9PiBBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlLm1hcCh2YWx1ZVZhbHVlKS5qb2luKCcsICcpIDogdG9QcmVjaXNpb24odmFsdWUpO1xuXG5jb25zdCBzdHJpbmdNYXBwZXI6IHtcbiAgW3R5cGU6IHN0cmluZ106ICh2YWx1ZT86IGFueSkgPT4gc3RyaW5nO1xufSA9IHtcbiAgdW5kZWZpbmVkOiAoKSA9PiAnJyxcbiAgYmxhbmtOb2RlOiB2YWx1ZSA9PlxuICAgICd0ZXJtJyBpbiB2YWx1ZVxuICAgICAgPyBgJHt2YWx1ZUxpbmtSZWYodmFsdWUudGVybSwgdmFsdWVMaW5rKHZhbHVlLnRlcm0pKX0keyd2YWx1ZScgaW4gdmFsdWUgPyBgOiAke3ZhbHVlVmFsdWUodmFsdWUudmFsdWUpfWAgOiAnJ31gXG4gICAgICA6IHZhbHVlTGlua1JlZih2YWx1ZSwgdmFsdWVMaW5rKHZhbHVlKSkgfHwgdmFsdWUubmFtZSB8fCB2YWx1ZVsnQGlkJ10sXG4gIG9iamVjdDogdmFsdWUgPT5cbiAgICBBcnJheS5pc0FycmF5KHZhbHVlKVxuICAgICAgPyB2YWx1ZS5tYXAodG9TdHJpbmcpLmpvaW4oJywgJylcbiAgICAgIDogdmFsdWUgaW5zdGFuY2VvZiBEYXRlXG4gICAgICA/IHZhbHVlLnRvSlNPTigpXG4gICAgICA6IGlzRXhwYW5kYWJsZSh2YWx1ZSlcbiAgICAgID8gc3RyaW5nTWFwcGVyLmJsYW5rTm9kZSh2YWx1ZSlcbiAgICAgIDogSlNPTi5zdHJpbmdpZnkodmFsdWUsIG51bGwsIDIpXG59O1xuXG5jb25zdCB0b1N0cmluZyA9ICh2YWx1ZTogYW55KSA9PiB0eXBlb2YgdmFsdWUgaW4gc3RyaW5nTWFwcGVyID8gc3RyaW5nTWFwcGVyW3R5cGVvZiB2YWx1ZV0odmFsdWUpIDogdmFsdWUudG9TdHJpbmcoKTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaGUtbGluay1rZXktdmFsdWUnLFxuICB0ZW1wbGF0ZVVybDogJy4vbGluay1rZXktdmFsdWUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9saW5rLWtleS12YWx1ZS5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBMaW5rS2V5VmFsdWVDb21wb25lbnQge1xuICBASW5wdXQoKVxuICBwcm90ZWN0ZWQgbm9kZTogYW55O1xuICBASW5wdXQoKVxuICBwcm90ZWN0ZWQgbm9kZVR5cGU/OiBOb2RlVHlwZTtcbiAgQElucHV0KClcbiAgcHJvdGVjdGVkIGRhdGFLZXk/OiBzdHJpbmc7XG4gIEBJbnB1dCgpXG4gIHByb3RlY3RlZCBrZXk/OiBzdHJpbmc7XG4gIEBJbnB1dCgpXG4gIHByb3RlY3RlZCBkZWZhdWx0VmFsdWU/OiBhbnkgPSAnJztcbiAgQElucHV0KClcbiAgcHJvdGVjdGVkIGRhdGFTdGF0ZT86IERhdGFTdGF0ZTtcblxuICBwdWJsaWMgaXNFeHBhbmRhYmxlID0gaXNFeHBhbmRhYmxlO1xuICBwdWJsaWMgdmFsdWVMaW5rID0gdmFsdWVMaW5rO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MuaXMtaW5saW5lLWJsb2NrJylcbiAgZ2V0IGlzSW5saW5lQmxvY2soKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNBcnJheTtcbiAgfVxuXG4gIHB1YmxpYyBiYXNlVXJsID0gYmFzZVVybCgpO1xuICBwdWJsaWMgdG9TdHJpbmcgPSB0b1N0cmluZztcblxuICBwdWJsaWMgZ2V0IHR5cGUoKSB7XG4gICAgcmV0dXJuIHRoaXMubm9kZVsnQHR5cGUnXSB8fCB0aGlzLm5vZGUudHlwZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgdmFsdWUoKSB7XG4gICAgcmV0dXJuIGdldCh0aGlzLm5vZGUsIHRoaXMua2V5KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgdmFsdWVTdHJpbmcoKSB7XG4gICAgcmV0dXJuIHRvU3RyaW5nKHRoaXMudmFsdWUpO1xuICB9XG5cbiAgcHVibGljIGdldCBpc0FycmF5KCkge1xuICAgIHJldHVybiBBcnJheS5pc0FycmF5KHRoaXMudmFsdWUpICYmIHRoaXMudmFsdWUubGVuZ3RoID4gMTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNVbmRlZmluZWQoKSB7XG4gICAgcmV0dXJuIGlzVW5kZWZpbmVkKHRoaXMudmFsdWUpO1xuICB9XG5cbiAgcHVibGljIGlzQmxhbmtOb2RlKHZhbHVlOiBhbnkpIHtcbiAgICByZXR1cm4gaXNFeHBhbmRhYmxlKHZhbHVlKSAmJiAndGVybScgaW4gdmFsdWU7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNVbmRlZmluZWQ7IGVsc2Ugc2hvd0RlZmF1bHRcIj5cbiAgPG5nLWNvbnRhaW5lciAqYmluZE9uY2U9XCJub2RlXCI+XG4gICAgPGEgY2xhc3M9XCJpcy1kYXJrXCIgW2hyZWZdPVwiYmFzZVVybCArICcvc2NoZW1hLycgKyB0eXBlICsgJyMnICsga2V5XCIgdGFyZ2V0PVwiX2JsYW5rXCI+PGI+e3trZXl9fTwvYj48L2E+XG4gICAgPHNwYW4gY2xhc3M9XCJwci0yXCI+Ojwvc3Bhbj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0FycmF5OyBlbHNlIHNpbmdsZVZhbHVlXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiYXJyYXktY29udGFpbmVyIHBsLTJcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgdiBvZiB2YWx1ZVwiPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjc3RyaW5nVmFsdWU+XG4gICAgICAgICAgICA8cCBbaW5uZXJIdG1sXT1cInRvU3RyaW5nKHYpIHwgcHJlY2lzaW9uOjNcIj48L3A+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNCbGFua05vZGUodik7IGVsc2Ugc3RyaW5nVmFsdWVcIj5cbiAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgIDxhIGNsYXNzPVwiaXMtZGFya1wiIGhyZWY9XCJ2YWx1ZUxpbmsodi50ZXJtKVwiPnt7di50ZXJtLm5hbWUgfHwgdi50ZXJtWydAaWQnXX19PC9hPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInByLTJcIj46PC9zcGFuPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaXMtaW5saW5lLWJsb2NrIGlzLW5vd3JhcFwiIFtpbm5lckh0bWxdPVwidG9TdHJpbmcodi52YWx1ZSkgfCBwcmVjaXNpb246M1wiPjwvZGl2PlxuXG4gICAgICAgICAgICAgIDxoZS1ibGFuay1ub2RlLXN0YXRlIGNsYXNzPVwicGwtMVwiXG4gICAgICAgICAgICAgICAgW25vZGVdPVwidlwiIFtub2RlVHlwZV09XCJub2RlVHlwZVwiIFtkYXRhU3RhdGVdPVwiZGF0YVN0YXRlXCIgW2RhdGFLZXldPVwiZGF0YUtleVwiIGtleT1cInZhbHVlXCIgbGlua0NsYXNzPVwiaXMtZGFya1wiXG4gICAgICAgICAgICAgID48L2hlLWJsYW5rLW5vZGUtc3RhdGU+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9uZy1jb250YWluZXI+XG48L25nLWNvbnRhaW5lcj5cblxuPG5nLXRlbXBsYXRlICNzaW5nbGVWYWx1ZT5cbiAgPGRpdiBjbGFzcz1cImlzLWlubGluZS1ibG9jayBpcy1ub3dyYXBcIiBbaW5uZXJIdG1sXT1cInZhbHVlU3RyaW5nIHwgcHJlY2lzaW9uOjNcIj48L2Rpdj5cblxuICA8aGUtYmxhbmstbm9kZS1zdGF0ZSBjbGFzcz1cInBsLTFcIlxuICAgIFtub2RlXT1cIm5vZGVcIiBbbm9kZVR5cGVdPVwibm9kZVR5cGVcIiBbZGF0YVN0YXRlXT1cImRhdGFTdGF0ZVwiIFtkYXRhS2V5XT1cImRhdGFLZXlcIiBba2V5XT1cImtleVwiIGxpbmtDbGFzcz1cImlzLWRhcmtcIlxuICA+PC9oZS1ibGFuay1ub2RlLXN0YXRlPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNzaG93RGVmYXVsdD5cbiAgPHNwYW4+e3tkZWZhdWx0VmFsdWV9fTwvc3Bhbj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluay1rZXktdmFsdWUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbW1vbi9saW5rLWtleS12YWx1ZS9saW5rLWtleS12YWx1ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvY29tbW9uL2xpbmsta2V5LXZhbHVlL2xpbmsta2V5LXZhbHVlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV2RixPQUFPLEVBQUUsWUFBWSxFQUFZLE1BQU0sc0JBQXNCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMvRCxPQUFPLEdBQUcsTUFBTSxZQUFZLENBQUM7QUFFN0IsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFVBQVUsQ0FBQzs7Ozs7QUFFbkMsTUFBTSxTQUFTLEdBQUcsQ0FBQyxLQUFVLEVBQUUsRUFBRSxDQUMvQixZQUFZLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztBQUVqSCxNQUFNLFlBQVksR0FBRyxDQUFDLEtBQVUsRUFBRSxJQUFhLEVBQUUsRUFBRSxDQUNqRCxJQUFJLENBQUMsQ0FBQyxDQUFDLDRCQUE0QixJQUFJLEtBQUssS0FBSyxDQUFDLElBQUksSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0FBRXRGLE1BQU0s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O0lBQ2xCLENBQUM7SUFFRCxJQUFXLFdBQVc7UUFDcEIsT0FBTyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFTSxXQUFXLENBQUMsS0FBVTtRQUMzQixPQUFPLFlBQVksQ0FBQyxLQUFLLENBQUMsSUFBSSxNQUFNLElBQUksS0FBSyxDQUFDO0lBQ2hELENBQUM7OEdBOUNVLHFCQUFxQjtrR0FBckIscUJBQXFCLHdRQzNDbEMsbTBEQTRDQTs7MkZERGEscUJBQXFCO2tCQU5qQyxTQUFTOytCQUNFLG1CQUFtQixtQkFHWix1QkFBdUIsQ0FBQyxNQUFNOzhCQUlyQyxJQUFJO3NCQURiLEtBQUs7Z0JBR0ksUUFBUTtzQkFEakIsS0FBSztnQkFHSSxPQUFPO3NCQURoQixLQUFLO2dCQUdJLEdBQUc7c0JBRFosS0FBSztnQkFHSSxZQUFZO3NCQURyQixLQUFLO2dCQUdJLFNBQVM7c0JBRGxCLEtBQUs7Z0JBT0YsYUFBYTtzQkFEaEIsV0FBVzt1QkFBQyx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBIb3N0QmluZGluZywgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERhdGFTdGF0ZSB9IGZyb20gJ0BoZXN0aWEtZWFydGgvYXBpJztcbmltcG9ydCB7IGlzRXhwYW5kYWJsZSwgTm9kZVR5cGUgfSBmcm9tICdAaGVzdGlhLWVhcnRoL3NjaGVtYSc7XG5pbXBvcnQgeyBpc1VuZGVmaW5lZCwgdG9QcmVjaXNpb24gfSBmcm9tICdAaGVzdGlhLWVhcnRoL3V0aWxzJztcbmltcG9ydCBnZXQgZnJvbSAnbG9kYXNoLmdldCc7XG5cbmltcG9ydCB7IGJhc2VVcmwgfSBmcm9tICcuLi91dGlscyc7XG5cbmNvbnN0IHZhbHVlTGluayA9ICh2YWx1ZTogYW55KSA9PlxuICBpc0V4cGFuZGFibGUodmFsdWUpICYmIHZhbHVlWydAaWQnXSA/IFtiYXNlVXJsKCksIHZhbHVlWydAdHlwZSddLnRvTG93ZXJDYXNlKCksIHZhbHVlWydAaWQnXV0uam9pbignLycpIDogbnVsbDtcblxuY29uc3QgdmFsdWVMaW5rUmVmID0gKHZhbHVlOiBhbnksIGhyZWY/OiBzdHJpbmcpID0+XG4gIGhyZWYgPyBgPGEgY2xhc3M9XCJpcy1kYXJrXCIgaHJlZj1cIiR7aHJlZn1cIj4ke3ZhbHVlLm5hbWUgfHwgdmFsdWVbJ0BpZCddfTwvYT5gIDogbnVsbDtcblxuY29uc3QgdmFsdWVWYWx1ZSA9ICh2YWx1ZTogYW55KSA9PiBBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlLm1hcCh2YWx1ZVZhbHVlKS5qb2luKCcsICcpIDogdG9QcmVjaXNpb24odmFsdWUpO1xuXG5jb25zdCBzdHJpbmdNYXBwZXI6IHtcbiAgW3R5cGU6IHN0cmluZ106ICh2YWx1ZT86IGFueSkgPT4gc3RyaW5nO1xufSA9IHtcbiAgbnVtYmVyOiAodmFsdWU6IG51bWJlcikgPT4gYCR7dG9QcmVjaXNpb24odmFsdWUsIDMpfWAsXG4gIHVuZGVmaW5lZDogKCkgPT4gJycsXG4gIGJsYW5rTm9kZTogdmFsdWUgPT5cbiAgICAndGVybScgaW4gdmFsdWVcbiAgICAgID8gYCR7dmFsdWVMaW5rUmVmKHZhbHVlLnRlcm0sIHZhbHVlTGluayh2YWx1ZS50ZXJtKSl9JHsndmFsdWUnIGluIHZhbHVlID8gYDogJHt2YWx1ZVZhbHVlKHZhbHVlLnZhbHVlKX1gIDogJyd9YFxuICAgICAgOiB2YWx1ZUxpbmtSZWYodmFsdWUsIHZhbHVlTGluayh2YWx1ZSkpIHx8IHZhbHVlLm5hbWUgfHwgdmFsdWVbJ0BpZCddLFxuICBvYmplY3Q6IHZhbHVlID0+XG4gICAgQXJyYXkuaXNBcnJheSh2YWx1ZSlcbiAgICAgID8gdmFsdWUubWFwKHRvU3RyaW5nKS5qb2luKCcsICcpXG4gICAgICA6IHZhbHVlIGluc3RhbmNlb2YgRGF0ZVxuICAgICAgICA/IHZhbHVlLnRvSlNPTigpXG4gICAgICAgIDogaXNFeHBhbmRhYmxlKHZhbHVlKVxuICAgICAgICAgID8gc3RyaW5nTWFwcGVyLmJsYW5rTm9kZSh2YWx1ZSlcbiAgICAgICAgICA6IEpTT04uc3RyaW5naWZ5KHZhbHVlLCBudWxsLCAyKVxufTtcblxuY29uc3QgdG9TdHJpbmcgPSAodmFsdWU6IGFueSkgPT4gdHlwZW9mIHZhbHVlIGluIHN0cmluZ01hcHBlciA/IHN0cmluZ01hcHBlclt0eXBlb2YgdmFsdWVdKHZhbHVlKSA6IHZhbHVlLnRvU3RyaW5nKCk7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2hlLWxpbmsta2V5LXZhbHVlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2xpbmsta2V5LXZhbHVlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbGluay1rZXktdmFsdWUuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgTGlua0tleVZhbHVlQ29tcG9uZW50IHtcbiAgQElucHV0KClcbiAgcHJvdGVjdGVkIG5vZGU6IGFueTtcbiAgQElucHV0KClcbiAgcHJvdGVjdGVkIG5vZGVUeXBlPzogTm9kZVR5cGU7XG4gIEBJbnB1dCgpXG4gIHByb3RlY3RlZCBkYXRhS2V5Pzogc3RyaW5nO1xuICBASW5wdXQoKVxuICBwcm90ZWN0ZWQga2V5Pzogc3RyaW5nO1xuICBASW5wdXQoKVxuICBwcm90ZWN0ZWQgZGVmYXVsdFZhbHVlPzogYW55ID0gJyc7XG4gIEBJbnB1dCgpXG4gIHByb3RlY3RlZCBkYXRhU3RhdGU/OiBEYXRhU3RhdGU7XG5cbiAgcHVibGljIGlzRXhwYW5kYWJsZSA9IGlzRXhwYW5kYWJsZTtcbiAgcHVibGljIHZhbHVlTGluayA9IHZhbHVlTGluaztcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlzLWlubGluZS1ibG9jaycpXG4gIGdldCBpc0lubGluZUJsb2NrKCkge1xuICAgIHJldHVybiB0aGlzLmlzQXJyYXk7XG4gIH1cblxuICBwdWJsaWMgYmFzZVVybCA9IGJhc2VVcmwoKTtcbiAgcHVibGljIHRvU3RyaW5nID0gdG9TdHJpbmc7XG5cbiAgcHVibGljIGdldCB0eXBlKCkge1xuICAgIHJldHVybiB0aGlzLm5vZGVbJ0B0eXBlJ10gfHwgdGhpcy5ub2RlLnR5cGU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHZhbHVlKCkge1xuICAgIHJldHVybiBnZXQodGhpcy5ub2RlLCB0aGlzLmtleSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzQXJyYXkoKSB7XG4gICAgcmV0dXJuIEFycmF5LmlzQXJyYXkodGhpcy52YWx1ZSkgJiYgW1xuICAgICAgdGhpcy52YWx1ZS5sZW5ndGggPiAxLFxuICAgICAgaXNFeHBhbmRhYmxlKHRoaXMudmFsdWVbMF0pXG4gICAgXS5zb21lKEJvb2xlYW4pO1xuICB9XG5cbiAgcHVibGljIGdldCBpc1VuZGVmaW5lZCgpIHtcbiAgICByZXR1cm4gaXNVbmRlZmluZWQodGhpcy52YWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgaXNCbGFua05vZGUodmFsdWU6IGFueSkge1xuICAgIHJldHVybiBpc0V4cGFuZGFibGUodmFsdWUpICYmICd0ZXJtJyBpbiB2YWx1ZTtcbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc1VuZGVmaW5lZDsgZWxzZSBzaG93RGVmYXVsdFwiPlxuICA8bmctY29udGFpbmVyICpiaW5kT25jZT1cIm5vZGVcIj5cbiAgICA8YSBjbGFzcz1cImlzLWRhcmtcIiBbaHJlZl09XCJiYXNlVXJsICsgJy9zY2hlbWEvJyArIHR5cGUgKyAnIycgKyBrZXlcIiB0YXJnZXQ9XCJfYmxhbmtcIj48Yj57e2tleX19PC9iPjwvYT5cbiAgICA8c3BhbiBjbGFzcz1cInByLTJcIj46PC9zcGFuPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzQXJyYXk7IGVsc2Ugc2luZ2xlVmFsdWVcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJhcnJheS1jb250YWluZXIgaXMtcGwtMlwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCB2IG9mIHZhbHVlXCI+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNub25CbGFua05vZGVWYWx1ZT5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ2YWx1ZUNvbnRlbnQ7Y29udGV4dDp7dmFsdWU6dn1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzQmxhbmtOb2RlKHYpOyBlbHNlIG5vbkJsYW5rTm9kZVZhbHVlXCI+XG4gICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICA8YSBjbGFzcz1cImlzLWRhcmtcIiBbaHJlZl09XCJ2YWx1ZUxpbmsodi50ZXJtKVwiPnt7di50ZXJtLm5hbWUgfHwgdi50ZXJtWydAaWQnXX19PC9hPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInByLTJcIj46PC9zcGFuPlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidmFsdWVDb250ZW50O2NvbnRleHQ6e3ZhbHVlOnYudmFsdWV9XCI+PC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgPGhlLWJsYW5rLW5vZGUtc3RhdGUgY2xhc3M9XCJwbC0xXCJcbiAgICAgICAgICAgICAgICBbbm9kZV09XCJ2XCIgW25vZGVUeXBlXT1cIm5vZGVUeXBlXCIgW2RhdGFTdGF0ZV09XCJkYXRhU3RhdGVcIiBbZGF0YUtleV09XCJkYXRhS2V5XCIga2V5PVwidmFsdWVcIiBsaW5rQ2xhc3M9XCJpcy1kYXJrXCJcbiAgICAgICAgICAgICAgPjwvaGUtYmxhbmstbm9kZS1zdGF0ZT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvbmctY29udGFpbmVyPlxuXG48bmctdGVtcGxhdGUgI3ZhbHVlQ29udGVudCBsZXQtdj1cInZhbHVlXCI+XG4gIDxkaXYgY2xhc3M9XCJpcy1pbmxpbmUtYmxvY2sgaXMtbm93cmFwXCIgW2lubmVySHRtbF09XCJ0b1N0cmluZyh2KVwiPjwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNzaW5nbGVWYWx1ZT5cbiAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInZhbHVlQ29udGVudDtjb250ZXh0Ont2YWx1ZX1cIj48L25nLWNvbnRhaW5lcj5cblxuICA8aGUtYmxhbmstbm9kZS1zdGF0ZSBjbGFzcz1cInBsLTFcIlxuICAgIFtub2RlXT1cIm5vZGVcIiBbbm9kZVR5cGVdPVwibm9kZVR5cGVcIiBbZGF0YVN0YXRlXT1cImRhdGFTdGF0ZVwiIFtkYXRhS2V5XT1cImRhdGFLZXlcIiBba2V5XT1cImtleVwiIGxpbmtDbGFzcz1cImlzLWRhcmtcIlxuICA+PC9oZS1ibGFuay1ub2RlLXN0YXRlPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNzaG93RGVmYXVsdD5cbiAgPHNwYW4gKm5nSWY9XCIhIWRlZmF1bHRWYWx1ZVwiPnt7ZGVmYXVsdFZhbHVlfX08L3NwYW4+XG48L25nLXRlbXBsYXRlPlxuIl19
@@ -4,7 +4,7 @@ import get from 'lodash.get';
4
4
  import set from 'lodash.set';
5
5
  import { SchemaType } from '@hestia-earth/schema';
6
6
  import { unique } from '@hestia-earth/utils';
7
- import { filterError, formatError, parseDataPath } from './files-error.model';
7
+ import { filterError, formatError, dataPathLabel } from './files-error.model';
8
8
  import { dataPathToKey } from './files-form.model';
9
9
  import { code, nodeLink } from '../common/utils';
10
10
  const nodeTerm = (node, key) => {
@@ -29,9 +29,8 @@ const summaryShowErrors = (summaryData, { path, level, message }) => summaryData
29
29
  */
30
30
  export const buildSummary = (nodes = [], errors = [], summaryData = []) => from(errors).pipe(mergeMap(error => 'error' in error ? error.error : error), filter(filterError), reduce((prev, error) => {
31
31
  const { level, message } = error;
32
- const [dataPath] = parseDataPath(error.dataPath);
33
32
  const node = get(nodes, error.nodeIndex, null);
34
- const label = (dataPath ? dataPath.label : node?.type) || '';
33
+ const label = dataPathLabel(error.dataPath) || node?.type || '';
35
34
  const term = error.params?.term || findNodeTerm(node, error);
36
35
  prev[message] = prev[message] || {};
37
36
  const key = [level, label].join('.');
@@ -49,4 +48,4 @@ export const buildSummary = (nodes = [], errors = [], summaryData = []) => from(
49
48
  count: summaries.length,
50
49
  showErrors: summaryShowErrors(summaryData, { level: level, path, message })
51
50
  })))), filter(({ formattedMessage }) => !!formattedMessage))), toArray(), map(values => values.sort(({ level }) => level === 'error' ? -1 : 1)));
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZXMtZXJyb3Itc3VtbWFyeS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9maWxlcy9maWxlcy1lcnJvci1zdW1tYXJ5Lm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDNUIsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RSxPQUFPLEdBQUcsTUFBTSxZQUFZLENBQUM7QUFDN0IsT0FBTyxHQUFHLE1BQU0sWUFBWSxDQUFDO0FBQzdCLE9BQU8sRUFBc0IsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdEUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRTdDLE9BQU8sRUFFTCxXQUFXLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFDeEMsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbkQsT0FBTyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQTJCakQsTUFBTSxRQUFRLEdBQUcsQ0FBQyxJQUE0QixFQUFFLEdBQVcsRUFBRSxFQUFFO0lBQzdELE1BQU0sUUFBUSxHQUFHLEdBQUcsQ0FBQyxJQUFJLEVBQUUsR0FBRyxHQUFHLE9BQU8sRUFBRSxHQUFHLENBQUMsSUFBSSxFQUFFLEdBQUcsR0FBRyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUMzRSxPQUFPLFFBQVEsS0FBSyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0FBQ3BFLENBQUMsQ0FBQztBQUVGLE1BQU0s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S0FBNkIsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLENBQUM7Q0FDdkYsQ0FBQSxDQUFDLENBQUMsQ0FDakIsRUFDRCxNQUFNLENBQUMsQ0FBQyxFQUFFLGdCQUFnQixFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUNyRCxDQUFDLEVBQ0YsT0FBTyxFQUFFLEVBQ1QsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDLEtBQUssS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUN0RSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZnJvbSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCBtYXAsIG1lcmdlTWFwLCByZWR1Y2UsIHRvQXJyYXkgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgZ2V0IGZyb20gJ2xvZGFzaC5nZXQnO1xuaW1wb3J0IHNldCBmcm9tICdsb2Rhc2guc2V0JztcbmltcG9ydCB7IEpTT04gYXMgSGVzdGlhSnNvbiwgU2NoZW1hVHlwZSB9IGZyb20gJ0BoZXN0aWEtZWFydGgvc2NoZW1hJztcbmltcG9ydCB7IHVuaXF1ZSB9IGZyb20gJ0BoZXN0aWEtZWFydGgvdXRpbHMnO1xuXG5pbXBvcnQge1xuICBJVmFsaWRhdGlvbkVycm9yLCBJVmFsaWRhdGlvbkVycm9yV2l0aEluZGV4LCB2YWxpZGF0aW9uRXJyb3JMZXZlbCxcbiAgZmlsdGVyRXJyb3IsIGZvcm1hdEVycm9yLCBwYXJzZURhdGFQYXRoXG59IGZyb20gJy4vZmlsZXMtZXJyb3IubW9kZWwnO1xuaW1wb3J0IHsgZGF0YVBhdGhUb0tleSB9IGZyb20gJy4vZmlsZXMtZm9ybS5tb2RlbCc7XG5pbXBvcnQgeyBjb2RlLCBub2RlTGluayB9IGZyb20gJy4uL2NvbW1vbi91dGlscyc7XG5cbmludGVyZmFjZSBJU3VtbWFyeUVycm9yIHtcbiAgbm9kZTogSGVzdGlhSnNvbjxTY2hlbWFUeXBlPjtcbiAgZXJyb3I6IElWYWxpZGF0aW9uRXJyb3I7XG4gIHRlcm0/OiBhbnk7XG59XG5cbmludGVyZmFjZSBJU3VtbWFyeUdyb3VwZWQge1xuICBbbWVzc2FnZTogc3RyaW5nXToge1xuICAgIFtsZXZlbDogc3RyaW5nXToge1xuICAgICAgW2xhYmVsOiBzdHJpbmddOiBJU3VtbWFyeUVycm9yW107XG4gICAgfTtcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJU3VtbWFyeSB7XG4gIGxldmVsOiB2YWxpZGF0aW9uRXJyb3JMZXZlbDtcbiAgcGF0aDogc3RyaW5nO1xuICBtZXNzYWdlOiBzdHJpbmc7XG4gIGZvcm1hdHRlZE1lc3NhZ2U6IHN0cmluZztcbiAgY291bnQ6IG51bWJlcjtcbiAgc2hvd0Vycm9yczogYm9vbGVhbjtcbiAgZXJyb3JzOiBJU3VtbWFyeUVycm9yW107XG4gIHRlcm1zPzogc3RyaW5nO1xufVxuXG5jb25zdCBub2RlVGVybSA9IChub2RlOiBIZXN0aWFKc29uPFNjaGVtYVR5cGU+LCBrZXk6IHN0cmluZykgPT4ge1xuICBjb25zdCB0ZXJtVHlwZSA9IGdldChub2RlLCBgJHtrZXl9LnR5cGVgLCBnZXQobm9kZSwgYCR7a2V5fS5AdHlwZWAsIG51bGwpKTtcbiAgcmV0dXJuIHRlcm1UeXBlID09PSBTY2hlbWFUeXBlLlRlcm0gPyBnZXQobm9kZSwga2V5LCBudWxsKSA6IG51bGw7XG59O1xuXG5jb25zdCBmaW5kTm9kZVRlcm0gPSAobm9kZTogSGVzdGlhSnNvbjxTY2hlbWFUeXBlPiwgeyBkYXRhUGF0aCB9OiBJVmFsaWRhdGlvbkVycm9yKSA9PlxuICBub2RlVGVybShub2RlLCBkYXRhUGF0aFRvS2V5KGRhdGFQYXRoKSkgfHxcbiAgbm9kZVRlcm0obm9kZSwgYCR7ZGF0YVBhdGhUb0tleShkYXRhUGF0aCl9LnRlcm1gKSB8fFxuICBub2RlVGVybShub2RlLCBkYXRhUGF0aFRvS2V5KGRhdGFQYXRoLCB0cnVlKSkgfHxcbiAgbm9kZVRlcm0obm9kZSwgYCR7ZGF0YVBhdGhUb0tleShkYXRhUGF0aCwgdHJ1ZSl9LnRlcm1gKTtcblxuY29uc3QgdW5pcXVlVGVybXMgPSAoZXJyb3JzOiBJU3VtbWFyeUVycm9yW10pID0+IHVuaXF1ZShcbiAgZXJyb3JzXG4gICAgLm1hcCgoeyB0ZXJtIH0pID0+IHRlcm0gPyBub2RlTGluayh0ZXJtKSB8fCBjb2RlKHRlcm0ubmFtZSB8fCB0ZXJtWydAaWQnXSB8fCB0ZXJtLmlkKSA6IG51bGwpXG4gICAgLmZpbHRlcihCb29sZWFuKVxuKTtcblxuY29uc3Qgc3VtbWFyeVNob3dFcnJvcnMgPSAoc3VtbWFyeURhdGE6IElTdW1tYXJ5W10sIHsgcGF0aCwgbGV2ZWwsIG1lc3NhZ2UgfTogUGFydGlhbDxJU3VtbWFyeT4pID0+XG4gIHN1bW1hcnlEYXRhLmZpbmQoc3VtbWFyeSA9PlxuICAgIHN1bW1hcnkucGF0aCA9PT0gcGF0aCAmJiBzdW1tYXJ5LmxldmVsID09PSBsZXZlbCAmJiBzdW1tYXJ5Lm1lc3NhZ2UgPT09IG1lc3NhZ2VcbiAgKT8uc2hvd0Vycm9ycyB8fCB0cnVlO1xuXG4vKipcbiAqIEJ1aWxkIHRoZSBzdW1tYXJ5IG9iamVjdHMuXG4gKlxuICogQHBhcmFtIG5vZGVzIFRoZSBsaXN0IG9mIG5vZGVzLlxuICogQHBhcmFtIGVycm9ycyBUaGUgbGlzdCBvZiBlcnJvcnMgcGVyIG5vZGUuXG4gKiBAcGFyYW0gc3VtbWFyeURhdGEgVGhlIHByZXZpb3VzbHkgY29tcHV0ZWQgc3VtbWFyeSBvYmplY3RzLlxuICogQHJldHVybnNcbiAqL1xuZXhwb3J0IGNvbnN0IGJ1aWxkU3VtbWFyeSA9IChcbiAgbm9kZXM6IEhlc3RpYUpzb248U2NoZW1hVHlwZT5bXSA9IFtdLFxuICBlcnJvcnM6IChJVmFsaWRhdGlvbkVycm9yW10gfCBJVmFsaWRhdGlvbkVycm9yV2l0aEluZGV4KVtdID0gW10sXG4gIHN1bW1hcnlEYXRhOiBJU3VtbWFyeVtdID0gW11cbikgPT5cbiAgZnJvbShlcnJvcnMpLnBpcGUoXG4gICAgbWVyZ2VNYXAoZXJyb3IgPT4gJ2Vycm9yJyBpbiBlcnJvciA/IChlcnJvciBhcyBJVmFsaWRhdGlvbkVycm9yV2l0aEluZGV4KS5lcnJvciA6IGVycm9yKSxcbiAgICBmaWx0ZXIoZmlsdGVyRXJyb3IpLFxuICAgIHJlZHVjZSgocHJldiwgZXJyb3IpID0+IHtcbiAgICAgIGNvbnN0IHsgbGV2ZWwsIG1lc3NhZ2UgfSA9IGVycm9yO1xuICAgICAgY29uc3QgW2RhdGFQYXRoXSA9IHBhcnNlRGF0YVBhdGgoZXJyb3IuZGF0YVBhdGgpO1xuICAgICAgY29uc3Qgbm9kZSA9IGdldChub2RlcywgZXJyb3Iubm9kZUluZGV4LCBudWxsKTtcbiAgICAgIGNvbnN0IGxhYmVsID0gKGRhdGFQYXRoID8gZGF0YVBhdGgubGFiZWwgOiBub2RlPy50eXBlKSB8fCAnJztcbiAgICAgIGNvbnN0IHRlcm0gPSBlcnJvci5wYXJhbXM/LnRlcm0gfHwgZmluZE5vZGVUZXJtKG5vZGUsIGVycm9yKTtcbiAgICAgIHByZXZbbWVzc2FnZV0gPSBwcmV2W21lc3NhZ2VdIHx8IHt9O1xuICAgICAgY29uc3Qga2V5ID0gW2xldmVsLCBsYWJlbF0uam9pbignLicpO1xuICAgICAgc2V0KHByZXZbbWVzc2FnZV0sIGtleSwgZ2V0KHByZXZbbWVzc2FnZV0sIGtleSwgW10pKTtcbiAgICAgIHByZXZbbWVzc2FnZV1bbGV2ZWxdW2xhYmVsXS5wdXNoKHsgbm9kZSwgZXJyb3IsIHRlcm0gfSk7XG4gICAgICByZXR1cm4gcHJldjtcbiAgICB9LCB7fSBhcyBJU3VtbWFyeUdyb3VwZWQpLFxuICAgIG1lcmdlTWFwKGRhdGEgPT4gZnJvbShPYmplY3Qua2V5cyhkYXRhKSkucGlwZShcbiAgICAgIGZpbHRlcihtZXNzYWdlID0+ICEhbWVzc2FnZSksXG4gICAgICBtZXJnZU1hcChtZXNzYWdlID0+XG4gICAgICAgIE9iamVjdC5lbnRyaWVzKGRhdGFbbWVzc2FnZV0pXG4gICAgICAgIC5mbGF0TWFwKChbbGV2ZWwsIHBhdGhzXSkgPT4gT2JqZWN0LmVudHJpZXMocGF0aHMpLm1hcCgoW3BhdGgsIHN1bW1hcmllc10pID0+ICh7XG4gICAgICAgICAgbGV2ZWwsXG4gICAgICAgICAgcGF0aCxcbiAgICAgICAgICBtZXNzYWdlLFxuICAgICAgICAgIGZvcm1hdHRlZE1lc3NhZ2U6IGZvcm1hdEVycm9yKHN1bW1hcmllc1swXS5lcnJvciwgc3VtbWFyaWVzLm1hcCgoeyBlcnJvciB9KSA9PiBlcnJvcikpPy5tZXNzYWdlLFxuICAgICAgICAgIHRlcm1zOiB1bmlxdWVUZXJtcyhzdW1tYXJpZXMpLmpvaW4oJyA7ICcpLFxuICAgICAgICAgIGVycm9yczogc3VtbWFyaWVzLFxuICAgICAgICAgIGNvdW50OiBzdW1tYXJpZXMubGVuZ3RoLFxuICAgICAgICAgIHNob3dFcnJvcnM6IHN1bW1hcnlTaG93RXJyb3JzKHN1bW1hcnlEYXRhLCB7IGxldmVsOiBsZXZlbCBhcyB2YWxpZGF0aW9uRXJyb3JMZXZlbCwgcGF0aCwgbWVzc2FnZSB9KVxuICAgICAgICB9IGFzIElTdW1tYXJ5KSkpXG4gICAgICApLFxuICAgICAgZmlsdGVyKCh7IGZvcm1hdHRlZE1lc3NhZ2UgfSkgPT4gISFmb3JtYXR0ZWRNZXNzYWdlKVxuICAgICkpLFxuICAgIHRvQXJyYXkoKSxcbiAgICBtYXAodmFsdWVzID0+IHZhbHVlcy5zb3J0KCh7IGxldmVsIH0pID0+IGxldmVsID09PSAnZXJyb3InID8gLTEgOiAxKSlcbiAgKTtcbiJdfQ==
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZXMtZXJyb3Itc3VtbWFyeS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9maWxlcy9maWxlcy1lcnJvci1zdW1tYXJ5Lm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDNUIsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RSxPQUFPLEdBQUcsTUFBTSxZQUFZLENBQUM7QUFDN0IsT0FBTyxHQUFHLE1BQU0sWUFBWSxDQUFDO0FBQzdCLE9BQU8sRUFBc0IsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdEUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRTdDLE9BQU8sRUFFTCxXQUFXLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFDeEMsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbkQsT0FBTyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQTJCakQsTUFBTSxRQUFRLEdBQUcsQ0FBQyxJQUE0QixFQUFFLEdBQVcsRUFBRSxFQUFFO0lBQzdELE1BQU0sUUFBUSxHQUFHLEdBQUcsQ0FBQyxJQUFJLEVBQUUsR0FBRyxHQUFHLE9BQU8sRUFBRSxHQUFHLENBQUMsSUFBSSxFQUFFLEdBQUcsR0FBRyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUMzRSxPQUFPLFFBQVEsS0FBSyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0FBQ3BFLENBQUMsQ0FBQztBQUVGLE1BQU0s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QWdCLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQ3JELENBQUMsRUFDRixPQUFPLEVBQUUsRUFDVCxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUMsS0FBSyxLQUFLLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQ3RFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmcm9tIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIsIG1hcCwgbWVyZ2VNYXAsIHJlZHVjZSwgdG9BcnJheSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCBnZXQgZnJvbSAnbG9kYXNoLmdldCc7XG5pbXBvcnQgc2V0IGZyb20gJ2xvZGFzaC5zZXQnO1xuaW1wb3J0IHsgSlNPTiBhcyBIZXN0aWFKc29uLCBTY2hlbWFUeXBlIH0gZnJvbSAnQGhlc3RpYS1lYXJ0aC9zY2hlbWEnO1xuaW1wb3J0IHsgdW5pcXVlIH0gZnJvbSAnQGhlc3RpYS1lYXJ0aC91dGlscyc7XG5cbmltcG9ydCB7XG4gIElWYWxpZGF0aW9uRXJyb3IsIElWYWxpZGF0aW9uRXJyb3JXaXRoSW5kZXgsIHZhbGlkYXRpb25FcnJvckxldmVsLFxuICBmaWx0ZXJFcnJvciwgZm9ybWF0RXJyb3IsIGRhdGFQYXRoTGFiZWxcbn0gZnJvbSAnLi9maWxlcy1lcnJvci5tb2RlbCc7XG5pbXBvcnQgeyBkYXRhUGF0aFRvS2V5IH0gZnJvbSAnLi9maWxlcy1mb3JtLm1vZGVsJztcbmltcG9ydCB7IGNvZGUsIG5vZGVMaW5rIH0gZnJvbSAnLi4vY29tbW9uL3V0aWxzJztcblxuaW50ZXJmYWNlIElTdW1tYXJ5RXJyb3Ige1xuICBub2RlOiBIZXN0aWFKc29uPFNjaGVtYVR5cGU+O1xuICBlcnJvcjogSVZhbGlkYXRpb25FcnJvcjtcbiAgdGVybT86IGFueTtcbn1cblxuaW50ZXJmYWNlIElTdW1tYXJ5R3JvdXBlZCB7XG4gIFttZXNzYWdlOiBzdHJpbmddOiB7XG4gICAgW2xldmVsOiBzdHJpbmddOiB7XG4gICAgICBbbGFiZWw6IHN0cmluZ106IElTdW1tYXJ5RXJyb3JbXTtcbiAgICB9O1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElTdW1tYXJ5IHtcbiAgbGV2ZWw6IHZhbGlkYXRpb25FcnJvckxldmVsO1xuICBwYXRoOiBzdHJpbmc7XG4gIG1lc3NhZ2U6IHN0cmluZztcbiAgZm9ybWF0dGVkTWVzc2FnZTogc3RyaW5nO1xuICBjb3VudDogbnVtYmVyO1xuICBzaG93RXJyb3JzOiBib29sZWFuO1xuICBlcnJvcnM6IElTdW1tYXJ5RXJyb3JbXTtcbiAgdGVybXM/OiBzdHJpbmc7XG59XG5cbmNvbnN0IG5vZGVUZXJtID0gKG5vZGU6IEhlc3RpYUpzb248U2NoZW1hVHlwZT4sIGtleTogc3RyaW5nKSA9PiB7XG4gIGNvbnN0IHRlcm1UeXBlID0gZ2V0KG5vZGUsIGAke2tleX0udHlwZWAsIGdldChub2RlLCBgJHtrZXl9LkB0eXBlYCwgbnVsbCkpO1xuICByZXR1cm4gdGVybVR5cGUgPT09IFNjaGVtYVR5cGUuVGVybSA/IGdldChub2RlLCBrZXksIG51bGwpIDogbnVsbDtcbn07XG5cbmNvbnN0IGZpbmROb2RlVGVybSA9IChub2RlOiBIZXN0aWFKc29uPFNjaGVtYVR5cGU+LCB7IGRhdGFQYXRoIH06IElWYWxpZGF0aW9uRXJyb3IpID0+XG4gIG5vZGVUZXJtKG5vZGUsIGRhdGFQYXRoVG9LZXkoZGF0YVBhdGgpKSB8fFxuICBub2RlVGVybShub2RlLCBgJHtkYXRhUGF0aFRvS2V5KGRhdGFQYXRoKX0udGVybWApIHx8XG4gIG5vZGVUZXJtKG5vZGUsIGRhdGFQYXRoVG9LZXkoZGF0YVBhdGgsIHRydWUpKSB8fFxuICBub2RlVGVybShub2RlLCBgJHtkYXRhUGF0aFRvS2V5KGRhdGFQYXRoLCB0cnVlKX0udGVybWApO1xuXG5jb25zdCB1bmlxdWVUZXJtcyA9IChlcnJvcnM6IElTdW1tYXJ5RXJyb3JbXSkgPT4gdW5pcXVlKFxuICBlcnJvcnNcbiAgICAubWFwKCh7IHRlcm0gfSkgPT4gdGVybSA/IG5vZGVMaW5rKHRlcm0pIHx8IGNvZGUodGVybS5uYW1lIHx8IHRlcm1bJ0BpZCddIHx8IHRlcm0uaWQpIDogbnVsbClcbiAgICAuZmlsdGVyKEJvb2xlYW4pXG4pO1xuXG5jb25zdCBzdW1tYXJ5U2hvd0Vycm9ycyA9IChzdW1tYXJ5RGF0YTogSVN1bW1hcnlbXSwgeyBwYXRoLCBsZXZlbCwgbWVzc2FnZSB9OiBQYXJ0aWFsPElTdW1tYXJ5PikgPT5cbiAgc3VtbWFyeURhdGEuZmluZChzdW1tYXJ5ID0+XG4gICAgc3VtbWFyeS5wYXRoID09PSBwYXRoICYmIHN1bW1hcnkubGV2ZWwgPT09IGxldmVsICYmIHN1bW1hcnkubWVzc2FnZSA9PT0gbWVzc2FnZVxuICApPy5zaG93RXJyb3JzIHx8IHRydWU7XG5cbi8qKlxuICogQnVpbGQgdGhlIHN1bW1hcnkgb2JqZWN0cy5cbiAqXG4gKiBAcGFyYW0gbm9kZXMgVGhlIGxpc3Qgb2Ygbm9kZXMuXG4gKiBAcGFyYW0gZXJyb3JzIFRoZSBsaXN0IG9mIGVycm9ycyBwZXIgbm9kZS5cbiAqIEBwYXJhbSBzdW1tYXJ5RGF0YSBUaGUgcHJldmlvdXNseSBjb21wdXRlZCBzdW1tYXJ5IG9iamVjdHMuXG4gKiBAcmV0dXJuc1xuICovXG5leHBvcnQgY29uc3QgYnVpbGRTdW1tYXJ5ID0gKFxuICBub2RlczogSGVzdGlhSnNvbjxTY2hlbWFUeXBlPltdID0gW10sXG4gIGVycm9yczogKElWYWxpZGF0aW9uRXJyb3JbXSB8IElWYWxpZGF0aW9uRXJyb3JXaXRoSW5kZXgpW10gPSBbXSxcbiAgc3VtbWFyeURhdGE6IElTdW1tYXJ5W10gPSBbXVxuKSA9PlxuICBmcm9tKGVycm9ycykucGlwZShcbiAgICBtZXJnZU1hcChlcnJvciA9PiAnZXJyb3InIGluIGVycm9yID8gKGVycm9yIGFzIElWYWxpZGF0aW9uRXJyb3JXaXRoSW5kZXgpLmVycm9yIDogZXJyb3IpLFxuICAgIGZpbHRlcihmaWx0ZXJFcnJvciksXG4gICAgcmVkdWNlKChwcmV2LCBlcnJvcikgPT4ge1xuICAgICAgY29uc3QgeyBsZXZlbCwgbWVzc2FnZSB9ID0gZXJyb3I7XG4gICAgICBjb25zdCBub2RlID0gZ2V0KG5vZGVzLCBlcnJvci5ub2RlSW5kZXgsIG51bGwpO1xuICAgICAgY29uc3QgbGFiZWwgPSBkYXRhUGF0aExhYmVsKGVycm9yLmRhdGFQYXRoKSB8fCBub2RlPy50eXBlIHx8ICcnO1xuICAgICAgY29uc3QgdGVybSA9IGVycm9yLnBhcmFtcz8udGVybSB8fCBmaW5kTm9kZVRlcm0obm9kZSwgZXJyb3IpO1xuICAgICAgcHJldlttZXNzYWdlXSA9IHByZXZbbWVzc2FnZV0gfHwge307XG4gICAgICBjb25zdCBrZXkgPSBbbGV2ZWwsIGxhYmVsXS5qb2luKCcuJyk7XG4gICAgICBzZXQocHJldlttZXNzYWdlXSwga2V5LCBnZXQocHJldlttZXNzYWdlXSwga2V5LCBbXSkpO1xuICAgICAgcHJldlttZXNzYWdlXVtsZXZlbF1bbGFiZWxdLnB1c2goeyBub2RlLCBlcnJvciwgdGVybSB9KTtcbiAgICAgIHJldHVybiBwcmV2O1xuICAgIH0sIHt9IGFzIElTdW1tYXJ5R3JvdXBlZCksXG4gICAgbWVyZ2VNYXAoZGF0YSA9PiBmcm9tKE9iamVjdC5rZXlzKGRhdGEpKS5waXBlKFxuICAgICAgZmlsdGVyKG1lc3NhZ2UgPT4gISFtZXNzYWdlKSxcbiAgICAgIG1lcmdlTWFwKG1lc3NhZ2UgPT5cbiAgICAgICAgT2JqZWN0LmVudHJpZXMoZGF0YVttZXNzYWdlXSlcbiAgICAgICAgLmZsYXRNYXAoKFtsZXZlbCwgcGF0aHNdKSA9PiBPYmplY3QuZW50cmllcyhwYXRocykubWFwKChbcGF0aCwgc3VtbWFyaWVzXSkgPT4gKHtcbiAgICAgICAgICBsZXZlbCxcbiAgICAgICAgICBwYXRoLFxuICAgICAgICAgIG1lc3NhZ2UsXG4gICAgICAgICAgZm9ybWF0dGVkTWVzc2FnZTogZm9ybWF0RXJyb3Ioc3VtbWFyaWVzWzBdLmVycm9yLCBzdW1tYXJpZXMubWFwKCh7IGVycm9yIH0pID0+IGVycm9yKSk/Lm1lc3NhZ2UsXG4gICAgICAgICAgdGVybXM6IHVuaXF1ZVRlcm1zKHN1bW1hcmllcykuam9pbignIDsgJyksXG4gICAgICAgICAgZXJyb3JzOiBzdW1tYXJpZXMsXG4gICAgICAgICAgY291bnQ6IHN1bW1hcmllcy5sZW5ndGgsXG4gICAgICAgICAgc2hvd0Vycm9yczogc3VtbWFyeVNob3dFcnJvcnMoc3VtbWFyeURhdGEsIHsgbGV2ZWw6IGxldmVsIGFzIHZhbGlkYXRpb25FcnJvckxldmVsLCBwYXRoLCBtZXNzYWdlIH0pXG4gICAgICAgIH0gYXMgSVN1bW1hcnkpKSlcbiAgICAgICksXG4gICAgICBmaWx0ZXIoKHsgZm9ybWF0dGVkTWVzc2FnZSB9KSA9PiAhIWZvcm1hdHRlZE1lc3NhZ2UpXG4gICAgKSksXG4gICAgdG9BcnJheSgpLFxuICAgIG1hcCh2YWx1ZXMgPT4gdmFsdWVzLnNvcnQoKHsgbGV2ZWwgfSkgPT4gbGV2ZWwgPT09ICdlcnJvcicgPyAtMSA6IDEpKVxuICApO1xuIl19