@hestia-earth/ui-components 0.27.7 → 0.27.9

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 (38) hide show
  1. package/common/blank-node-state/blank-node-state.component.d.ts +3 -3
  2. package/common/node-utils.d.ts +3 -22
  3. package/common/shelf-dialog/shelf-dialog.component.d.ts +8 -7
  4. package/cycles/cycles-completeness/cycles-completeness.component.d.ts +11 -7
  5. package/cycles/cycles-nodes/cycles-nodes.component.d.ts +13 -8
  6. package/cycles/cycles-nodes-timeline/cycles-nodes-timeline.component.d.ts +4 -5
  7. package/engine/engine.service.d.ts +4 -5
  8. package/esm2022/common/blank-node-state/blank-node-state.component.mjs +1 -1
  9. package/esm2022/common/node-utils.mjs +1 -18
  10. package/esm2022/common/shelf-dialog/shelf-dialog.component.mjs +12 -7
  11. package/esm2022/cycles/cycles-completeness/cycles-completeness.component.mjs +3 -3
  12. package/esm2022/cycles/cycles-nodes/cycles-nodes.component.mjs +3 -3
  13. package/esm2022/cycles/cycles-nodes-timeline/cycles-nodes-timeline.component.mjs +1 -1
  14. package/esm2022/engine/engine-models-version-link/engine-models-version-link.component.mjs +2 -2
  15. package/esm2022/engine/engine.service.mjs +1 -1
  16. package/esm2022/files/files-error.model.mjs +16 -2
  17. package/esm2022/files/files-upload-errors/files-upload-errors.component.mjs +3 -2
  18. package/esm2022/impact-assessments/impact-assessments-products/impact-assessments-products.component.mjs +3 -3
  19. package/esm2022/node/node-logs-models/node-logs-models.component.mjs +5 -6
  20. package/esm2022/node/node-logs-models/node-logs-models.model.mjs +1 -1
  21. package/esm2022/node/node-recommendations/node-recommendations.component.mjs +1 -1
  22. package/esm2022/node/node-store.service.mjs +2 -2
  23. package/esm2022/sites/sites-nodes/sites-nodes.component.mjs +3 -3
  24. package/fesm2022/hestia-earth-ui-components.mjs +60 -58
  25. package/fesm2022/hestia-earth-ui-components.mjs.map +1 -1
  26. package/impact-assessments/impact-assessments-products/impact-assessments-products.component.d.ts +3 -2
  27. package/node/node-logs-models/node-logs-models.component.d.ts +6 -7
  28. package/node/node-logs-models/node-logs-models.model.d.ts +9 -8
  29. package/package.json +6 -6
  30. package/sites/sites-nodes/sites-nodes.component.d.ts +5 -4
  31. package/svg-icons/far-chevron-down.svg +4 -0
  32. package/svg-icons/far-chevron-up.svg +4 -0
  33. package/svg-icons/far-circle-info.svg +6 -6
  34. package/svg-icons/far-close.svg +6 -0
  35. package/svg-icons/far-success.svg +8 -0
  36. package/svg-icons/file-csv.svg +13 -11
  37. package/svg-icons/file-zip.svg +24 -0
  38. package/svg-icons/icons.json +20 -0
@@ -1,6 +1,6 @@
1
1
  import { DataState } from '@hestia-earth/api';
2
- import { NodeType } from '@hestia-earth/schema';
3
- import { NodeKeyState, blankNode } from '../node-utils';
2
+ import { NodeType, blankNodesType } from '@hestia-earth/schema';
3
+ import { NodeKeyState } from '../node-utils';
4
4
  import * as i0 from "@angular/core";
5
5
  export declare class BlankNodeStateComponent {
6
6
  private engineService;
@@ -9,7 +9,7 @@ export declare class BlankNodeStateComponent {
9
9
  protected nodeType: import("@angular/core").InputSignal<NodeType>;
10
10
  protected dataKey: import("@angular/core").InputSignal<string>;
11
11
  protected key: import("@angular/core").InputSignal<string>;
12
- protected node: import("@angular/core").InputSignal<blankNode>;
12
+ protected node: import("@angular/core").InputSignal<blankNodesType>;
13
13
  /**
14
14
  * Force override state.
15
15
  */
@@ -1,25 +1,6 @@
1
- import { Term, ICycleJSONLD, ISiteJSONLD, IImpactAssessmentJSONLD, EmissionMethodTier, ITermJSONLD, Completeness, Emission, Measurement, Practice, Product, Input, Property, Indicator, Animal, Management, Transformation } from '@hestia-earth/schema';
1
+ import { Term, ICycleJSONLD, ISiteJSONLD, IImpactAssessmentJSONLD, EmissionMethodTier, ITermJSONLD, Indicator, Animal, Transformation, blankNodesType, blankNodesKey } from '@hestia-earth/schema';
2
2
  import { propertyValueType } from '@hestia-earth/utils/dist/term';
3
- export type blankNode = Animal | Emission | Input | Product | Property | Practice | Indicator | Measurement | Management;
4
- export type blankNodesKey = 'animals' | 'emissions' | 'emissionsResourceUse' | 'endpoints' | 'impacts' | 'inputs' | 'management' | 'measurements' | 'products' | 'practices';
5
- export declare enum BlankNodesKey {
6
- animals = "animals",
7
- emissions = "emissions",
8
- emissionsResourceUse = "emissionsResourceUse",
9
- endpoints = "endpoints",
10
- impacts = "impacts",
11
- inputs = "inputs",
12
- management = "management",
13
- measurements = "measurements",
14
- products = "products",
15
- practices = "practices"
16
- }
17
- export declare const filterBlankNode: (filterTerm: string) => ({ term }: blankNode) => boolean;
18
- export type nonBlankNode = Completeness;
19
- export type nonBlankNodesKey = 'completeness';
20
- export declare enum NonBlankNodesKey {
21
- completeness = "completeness"
22
- }
3
+ export declare const filterBlankNode: (filterTerm: string) => ({ term }: blankNodesType) => boolean;
23
4
  export declare const ignoreKeys: string[];
24
5
  export declare const isValidKey: (key: string) => boolean;
25
6
  export declare const isMethodModelAllowed: (filterMethod?: Term) => (node: Indicator) => boolean;
@@ -30,7 +11,7 @@ export declare enum NodeKeyState {
30
11
  deleted = "deleted",
31
12
  unchanged = "unchanged"
32
13
  }
33
- export declare const isState: (node: blankNode, key: string, state: NodeKeyState) => any;
14
+ export declare const isState: (node: blankNodesType, key: string, state: NodeKeyState) => any;
34
15
  export interface IGroupedNode<T> {
35
16
  node: T;
36
17
  nodes: T[];
@@ -1,13 +1,14 @@
1
1
  import { TemplateRef } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  export declare class ShelfDialogComponent {
4
- protected readonly faXmark: import("@fortawesome/fontawesome-common-types").IconDefinition;
5
- protected headerTemplate: import("@angular/core").InputSignal<TemplateRef<any>>;
6
- protected title: import("@angular/core").InputSignal<string>;
7
- protected bottom: import("@angular/core").InputSignal<string | number>;
8
- protected closed: import("@angular/core").OutputEmitterRef<void>;
9
- protected showContent: import("@angular/core").WritableSignal<boolean>;
10
- protected toggleIcon: import("@angular/core").Signal<import("@fortawesome/fontawesome-common-types").IconDefinition>;
4
+ protected readonly headerTemplate: import("@angular/core").InputSignal<TemplateRef<any>>;
5
+ protected readonly title: import("@angular/core").InputSignal<string>;
6
+ protected readonly bottom: import("@angular/core").InputSignal<string | number>;
7
+ protected readonly closed: import("@angular/core").OutputEmitterRef<void>;
8
+ protected readonly showContent: import("@angular/core").WritableSignal<boolean>;
9
+ protected readonly toggleIcon: import("@angular/core").Signal<"far-chevron-down" | "far-chevron-up">;
10
+ expand(): void;
11
+ collapse(): void;
11
12
  static ɵfac: i0.ɵɵFactoryDeclaration<ShelfDialogComponent, never>;
12
13
  static ɵcmp: i0.ɵɵComponentDeclaration<ShelfDialogComponent, "he-shelf-dialog", never, { "headerTemplate": { "alias": "headerTemplate"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "bottom": { "alias": "bottom"; "required": false; "isSignal": true; }; }, { "closed": "closed"; }, never, ["*"], true, never>;
13
14
  }
@@ -1,7 +1,6 @@
1
1
  import { IconDefinition } from '@fortawesome/free-solid-svg-icons';
2
2
  import { DataState } from '@hestia-earth/api';
3
- import { ICycleJSONLD, NodeType } from '@hestia-earth/schema';
4
- import { NonBlankNodesKey } from '../../common/node-utils';
3
+ import { ICycleJSONLD, NodeType, NonBlankNodesKey } from '@hestia-earth/schema';
5
4
  import * as i0 from "@angular/core";
6
5
  declare enum View {
7
6
  table = "Table view",
@@ -40,8 +39,8 @@ export declare class CyclesCompletenessComponent {
40
39
  type: NodeType;
41
40
  dataState: DataState;
42
41
  description?: string;
43
- treatment?: string;
44
- commercialPracticeTreatment?: boolean;
42
+ functionalUnit?: import("@hestia-earth/schema").CycleFunctionalUnit;
43
+ functionalUnitDetails?: string;
45
44
  endDate?: string;
46
45
  startDate?: string;
47
46
  startDateDefinition?: import("@hestia-earth/schema").CycleStartDateDefinition;
@@ -50,12 +49,16 @@ export declare class CyclesCompletenessComponent {
50
49
  otherSites?: import("@hestia-earth/schema").ISiteJSONLD[];
51
50
  siteDuration?: number;
52
51
  otherSitesDuration?: number[];
53
- functionalUnit?: import("@hestia-earth/schema").CycleFunctionalUnit;
54
- functionalUnitDetails?: string;
52
+ siteUnusedDuration?: number;
53
+ otherSitesUnusedDuration?: number[];
54
+ siteArea?: number;
55
+ otherSitesArea?: number[];
56
+ harvestedArea?: number;
55
57
  numberOfCycles?: number;
58
+ treatment?: string;
59
+ commercialPracticeTreatment?: boolean;
56
60
  numberOfReplications?: number;
57
61
  sampleWeight?: number;
58
- harvestedArea?: number;
59
62
  defaultMethodClassification?: import("@hestia-earth/schema").CycleDefaultMethodClassification;
60
63
  defaultMethodClassificationDescription?: string;
61
64
  defaultSource?: import("@hestia-earth/schema").ISourceJSONLD;
@@ -74,6 +77,7 @@ export declare class CyclesCompletenessComponent {
74
77
  updated?: string[];
75
78
  updatedVersion?: string[];
76
79
  aggregated?: boolean;
80
+ aggregatedDataValidated?: boolean;
77
81
  aggregatedVersion?: string;
78
82
  aggregatedQualityScore?: number;
79
83
  aggregatedQualityScoreMax?: number;
@@ -1,7 +1,6 @@
1
1
  import { DataState } from '@hestia-earth/api';
2
- import { ICycleJSONLD, Input as HestiaInput, Product, NodeType, Animal, Emission, Practice, TermTermType, EmissionMethodTier, Term, Transformation } from '@hestia-earth/schema';
2
+ import { ICycleJSONLD, Input as HestiaInput, Product, NodeType, Animal, Emission, Practice, TermTermType, EmissionMethodTier, Term, Transformation, BlankNodesKey, blankNodesType } from '@hestia-earth/schema';
3
3
  import { IconDefinition } from '@fortawesome/fontawesome-svg-core';
4
- import { BlankNodesKey, blankNode } from '../../common/node-utils';
5
4
  import { IGroupedKeys } from '../../common/node-utils';
6
5
  import * as i0 from "@angular/core";
7
6
  declare enum View {
@@ -59,8 +58,8 @@ export declare class CyclesNodesComponent {
59
58
  type: NodeType;
60
59
  dataState: DataState;
61
60
  description?: string;
62
- treatment?: string;
63
- commercialPracticeTreatment?: boolean;
61
+ functionalUnit?: import("@hestia-earth/schema").CycleFunctionalUnit;
62
+ functionalUnitDetails?: string;
64
63
  endDate?: string;
65
64
  startDate?: string;
66
65
  startDateDefinition?: import("@hestia-earth/schema").CycleStartDateDefinition;
@@ -69,12 +68,16 @@ export declare class CyclesNodesComponent {
69
68
  otherSites?: import("@hestia-earth/schema").ISiteJSONLD[];
70
69
  siteDuration?: number;
71
70
  otherSitesDuration?: number[];
72
- functionalUnit?: import("@hestia-earth/schema").CycleFunctionalUnit;
73
- functionalUnitDetails?: string;
71
+ siteUnusedDuration?: number;
72
+ otherSitesUnusedDuration?: number[];
73
+ siteArea?: number;
74
+ otherSitesArea?: number[];
75
+ harvestedArea?: number;
74
76
  numberOfCycles?: number;
77
+ treatment?: string;
78
+ commercialPracticeTreatment?: boolean;
75
79
  numberOfReplications?: number;
76
80
  sampleWeight?: number;
77
- harvestedArea?: number;
78
81
  defaultMethodClassification?: import("@hestia-earth/schema").CycleDefaultMethodClassification;
79
82
  defaultMethodClassificationDescription?: string;
80
83
  defaultSource?: import("@hestia-earth/schema").ISourceJSONLD;
@@ -93,6 +96,7 @@ export declare class CyclesNodesComponent {
93
96
  updated?: string[];
94
97
  updatedVersion?: string[];
95
98
  aggregated?: boolean;
99
+ aggregatedDataValidated?: boolean;
96
100
  aggregatedVersion?: string;
97
101
  aggregatedQualityScore?: number;
98
102
  aggregatedQualityScoreMax?: number;
@@ -107,6 +111,7 @@ export declare class CyclesNodesComponent {
107
111
  '@type': NodeType;
108
112
  type: NodeType;
109
113
  dataState: DataState;
114
+ animalId?: string;
110
115
  term?: Term;
111
116
  description?: string;
112
117
  referencePeriod?: import("@hestia-earth/schema").AnimalReferencePeriod;
@@ -160,7 +165,7 @@ export declare class CyclesNodesComponent {
160
165
  private originalValues;
161
166
  private hasRecalculatedNodes;
162
167
  protected showSwitchToRecalculated: import("@angular/core").Signal<boolean>;
163
- protected timelineValues: import("@angular/core").Signal<blankNode[]>;
168
+ protected timelineValues: import("@angular/core").Signal<blankNodesType[]>;
164
169
  private enableTimeline;
165
170
  protected isNodeKeyAllowed: import("@angular/core").Signal<boolean>;
166
171
  private groupedNodes;
@@ -1,15 +1,14 @@
1
1
  import { DataState } from '@hestia-earth/api';
2
- import { TermTermType } from '@hestia-earth/schema';
3
- import { blankNode } from '../../common/node-utils';
2
+ import { TermTermType, blankNodesType } from '@hestia-earth/schema';
4
3
  import * as i0 from "@angular/core";
5
4
  export declare class CyclesNodesTimelineComponent {
6
5
  private elementRef;
7
- protected recalculatedValues: import("@angular/core").InputSignal<blankNode[]>;
6
+ protected recalculatedValues: import("@angular/core").InputSignal<blankNodesType[]>;
8
7
  protected dataState: import("@angular/core").InputSignal<DataState>;
9
8
  protected now: Date;
10
9
  protected TermTermType: typeof TermTermType;
11
- protected blankNodes: import("@angular/core").Signal<blankNode[]>;
12
- trackByBlankNode(_index: number, { term }: blankNode): any;
10
+ protected blankNodes: import("@angular/core").Signal<blankNodesType[]>;
11
+ trackByBlankNode(_index: number, { term }: blankNodesType): any;
13
12
  get lineWidth(): number;
14
13
  static ɵfac: i0.ɵɵFactoryDeclaration<CyclesNodesTimelineComponent, never>;
15
14
  static ɵcmp: i0.ɵɵComponentDeclaration<CyclesNodesTimelineComponent, "he-cycles-nodes-timeline", never, { "recalculatedValues": { "alias": "recalculatedValues"; "required": false; "isSignal": true; }; "dataState": { "alias": "dataState"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
@@ -1,9 +1,8 @@
1
1
  import { InjectionToken } from '@angular/core';
2
2
  import { HttpClient } from '@angular/common/http';
3
3
  import { Observable } from 'rxjs';
4
- import { EmissionMethodTier, JSONLD, NodeType, SchemaType, SiteSiteType, TermTermType } from '@hestia-earth/schema';
4
+ import { EmissionMethodTier, JSONLD, NodeType, SchemaType, SiteSiteType, TermTermType, blankNodesType } from '@hestia-earth/schema';
5
5
  import { HeCommonService } from '../common/common.service';
6
- import { blankNode } from '../common/node-utils';
7
6
  import * as i0 from "@angular/core";
8
7
  export declare const HE_CALCULATIONS_BASE_URL: InjectionToken<string>;
9
8
  export declare const HE_ORCHESTRATOR_BASE_URL: InjectionToken<string>;
@@ -11,10 +10,10 @@ export declare const engineGitBaseUrl: () => string;
11
10
  export declare const engineGitUrl: () => string;
12
11
  export declare const findModels: (models: IModel[], termId: string) => IModel[];
13
12
  export declare const findMatchingModel: (models: (IModel | IModel[])[], model: Partial<IModel>) => IModel;
14
- export declare const modelParams: (node: Partial<blankNode>, includeTerm?: boolean) => {
13
+ export declare const modelParams: (node: Partial<blankNodesType>, includeTerm?: boolean) => {
15
14
  [x: string]: string;
16
15
  };
17
- export declare const modelKeyParams: (node: Partial<blankNode>, key: string) => {
16
+ export declare const modelKeyParams: (node: Partial<blankNodesType>, key: string) => {
18
17
  [x: string]: string;
19
18
  };
20
19
  /**
@@ -106,7 +105,7 @@ export declare class HeEngineService {
106
105
  private get models$();
107
106
  allModels$(includeEcoinvent?: boolean): Observable<IModel[]>;
108
107
  model$(model: Partial<IModel>): Observable<IModel>;
109
- nodeModel$(node: Partial<blankNode>, key?: string): Observable<IModel>;
108
+ nodeModel$(node: Partial<blankNodesType>, key?: string): Observable<IModel>;
110
109
  model(model: Partial<IModel>): Promise<IModel>;
111
110
  latestVersion(): Promise<string>;
112
111
  listModels(params: ICalculationsModelsParams): Promise<{
@@ -58,4 +58,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImpor
58
58
  type: Component,
59
59
  args: [{ selector: 'he-blank-node-state', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgTemplateOutlet, NgClass, FaIconComponent, AsyncPipe], template: "@if (show()) {\n @for (star of stars(); track star) {\n <span>*</span>\n }\n @if (stars().length === 0 || currentState() === NodeKeyState.unchanged) {\n <span>\u2020</span>\n }\n @if (showLink()) {\n <span class=\"is-ml-2\">\n @if (model()) {\n <a [ngClass]=\"linkClass()\" [href]=\"modelUrl()\" target=\"_blank\" (click)=\"$event.stopPropagation()\">\n <span>Docs</span>\n <fa-icon class=\"ml-2\" [icon]=\"faExternalLinkAlt\" size=\"sm\"></fa-icon>\n </a>\n }\n </span>\n }\n}\n", styles: [":host{display:inline-block}\n"] }]
60
60
  }] });
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxhbmstbm9kZS1zdGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tbW9uL2JsYW5rLW5vZGUtc3RhdGUvYmxhbmstbm9kZS1zdGF0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvY29tbW9uL2JsYW5rLW5vZGUtc3RhdGUvYmxhbmstbm9kZS1zdGF0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkUsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDbkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDdEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRTlDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDckMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFbEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzlELE9BQU8sRUFBRSxZQUFZLEVBQWEsT0FBTyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUVqRSxNQUFNLFFBQVEsR0FBRyxDQUFDLElBQWUsRUFBRSxHQUFXLEVBQUUsRUFBRSxDQUNoRDtJQUNFLFlBQVksQ0FBQyxPQUFP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QUFVLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQ3BFLENBQUM7UUFDUSxVQUFLLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM5QixhQUFRLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxXQUFXLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxFQUFFLE9BQU8sSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7S0FDL0c7OEdBdENZLHVCQUF1QjtrR0FBdkIsdUJBQXVCLGc4QkN6Q3BDLDZoQkFrQkEsdUZEcUI4QixPQUFPLG9GQUFFLGVBQWU7OzJGQUV6Qyx1QkFBdUI7a0JBUm5DLFNBQVM7K0JBQ0UscUJBQXFCLG1CQUdkLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQLENBQUMsZ0JBQWdCLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBjb21wdXRlZCwgaW5qZWN0LCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmdUZW1wbGF0ZU91dGxldCwgTmdDbGFzcywgQXN5bmNQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IHRvT2JzZXJ2YWJsZSwgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBGYUljb25Db21wb25lbnQgfSBmcm9tICdAZm9ydGF3ZXNvbWUvYW5ndWxhci1mb250YXdlc29tZSc7XG5pbXBvcnQgeyBmYUV4dGVybmFsTGlua0FsdCB9IGZyb20gJ0Bmb3J0YXdlc29tZS9mcmVlLXNvbGlkLXN2Zy1pY29ucyc7XG5pbXBvcnQgeyBEYXRhU3RhdGUgfSBmcm9tICdAaGVzdGlhLWVhcnRoL2FwaSc7XG5pbXBvcnQgeyBOb2RlVHlwZSB9IGZyb20gJ0BoZXN0aWEtZWFydGgvc2NoZW1hJztcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaWx0ZXIsIG1lcmdlTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgaXNVbmRlZmluZWQgfSBmcm9tICdAaGVzdGlhLWVhcnRoL3V0aWxzJztcblxuaW1wb3J0IHsgSGVFbmdpbmVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZW5naW5lL2VuZ2luZS5zZXJ2aWNlJztcbmltcG9ydCB7IE5vZGVLZXlTdGF0ZSwgYmxhbmtOb2RlLCBpc1N0YXRlIH0gZnJvbSAnLi4vbm9kZS11dGlscyc7XG5cbmNvbnN0IGdldFN0YXRlID0gKG5vZGU6IGJsYW5rTm9kZSwga2V5OiBzdHJpbmcpID0+XG4gIFtcbiAgICBOb2RlS2V5U3RhdGUuZGVsZXRlZCxcbiAgICBOb2RlS2V5U3RhdGUudXBkYXRlZCxcbiAgICAvLyBoYW5kbGUgaW4gdGhpcyBvcmRlciBiZWNhdXNlIGFnZ3JlZ2F0ZWQgY2FuIGJlIHVwZGF0ZWRcbiAgICBOb2RlS2V5U3RhdGUuYWdncmVnYXRlZCxcbiAgICBOb2RlS2V5U3RhdGUuYWRkZWRcbiAgXS5maW5kKHN0YXRlID0+IGlzU3RhdGUobm9kZSwga2V5LCBzdGF0ZSkpIHx8IE5vZGVLZXlTdGF0ZS51bmNoYW5nZWQ7XG5cbmNvbnN0IHN0YXRlU3RhcnM6IHtcbiAgW3N0YXRlIGluIE5vZGVLZXlTdGF0ZV06IG51bWJlcjtcbn0gPSB7XG4gIFtOb2RlS2V5U3RhdGUudW5jaGFuZ2VkXTogMCxcbiAgW05vZGVLZXlTdGF0ZS5hZGRlZF06IDEsXG4gIFtOb2RlS2V5U3RhdGUudXBkYXRlZF06IDIsXG4gIFtOb2RlS2V5U3RhdGUuYWdncmVnYXRlZF06IDMsXG4gIFtOb2RlS2V5U3RhdGUuZGVsZXRlZF06IDRcbn07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2hlLWJsYW5rLW5vZGUtc3RhdGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vYmxhbmstbm9kZS1zdGF0ZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2JsYW5rLW5vZGUtc3RhdGUuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtOZ1RlbXBsYXRlT3V0bGV0LCBOZ0NsYXNzLCBGYUljb25Db21wb25lbnQsIEFzeW5jUGlwZV1cbn0pXG5leHBvcnQgY2xhc3MgQmxhbmtOb2RlU3RhdGVDb21wb25lbnQge1xuICBwcml2YXRlIGVuZ2luZVNlcnZpY2UgPSBpbmplY3QoSGVFbmdpbmVTZXJ2aWNlKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZmFFeHRlcm5hbExpbmtBbHQgPSBmYUV4dGVybmFsTGlua0FsdDtcblxuICBwcm90ZWN0ZWQgZGF0YVN0YXRlID0gaW5wdXQ8RGF0YVN0YXRlPigpO1xuICBwcm90ZWN0ZWQgbm9kZVR5cGUgPSBpbnB1dDxOb2RlVHlwZT4oKTtcbiAgcHJvdGVjdGVkIGRhdGFLZXkgPSBpbnB1dDxzdHJpbmc+KCk7XG4gIHByb3RlY3RlZCBrZXkgPSBpbnB1dDxzdHJpbmc+KCk7XG4gIHByb3RlY3RlZCBub2RlID0gaW5wdXQucmVxdWlyZWQ8YmxhbmtOb2RlPigpO1xuICAvKipcbiAgICogRm9yY2Ugb3ZlcnJpZGUgc3RhdGUuXG4gICAqL1xuICBwcm90ZWN0ZWQgc3RhdGUgPSBpbnB1dDxOb2RlS2V5U3RhdGU+KCk7XG4gIHByb3RlY3RlZCBsaW5rQ2xhc3MgPSBpbnB1dDxzdHJpbmc+KCk7XG5cbiAgcHJvdGVjdGVkIE5vZGVLZXlTdGF0ZSA9IE5vZGVLZXlTdGF0ZTtcblxuICBwcm90ZWN0ZWQgc2hvdyA9IGNvbXB1dGVkKCgpID0+IHRoaXMuZGF0YVN0YXRlKCkgIT09IERhdGFTdGF0ZS5vcmlnaW5hbCk7XG5cbiAgcHJvdGVjdGVkIGN1cnJlbnRTdGF0ZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMuc3RhdGUoKSB8fCBnZXRTdGF0ZSh0aGlzLm5vZGUoKSwgdGhpcy5rZXkoKSkpO1xuXG4gIHByb3RlY3RlZCBzdGFycyA9IGNvbXB1dGVkKCgpID0+IEFycmF5LmZyb20oQXJyYXkoc3RhdGVTdGFyc1t0aGlzLmN1cnJlbnRTdGF0ZSgpXSkua2V5cygpKSk7XG4gIHByb3RlY3RlZCBzaG93TGluayA9IGNvbXB1dGVkKCgpID0+XG4gICAgW1xuICAgICAgISF0aGlzLmRhdGFLZXkoKSxcbiAgICAgIFsndGVybScsICd2YWx1ZSddLmluY2x1ZGVzKHRoaXMua2V5KCkpLFxuICAgICAgdGhpcy5jdXJyZW50U3RhdGUoKSA9PT0gTm9kZUtleVN0YXRlLmFkZGVkIHx8IHRoaXMuY3VycmVudFN0YXRlKCkgPT09IE5vZGVLZXlTdGF0ZS51cGRhdGVkXG4gICAgXS5ldmVyeShCb29sZWFuKVxuICApO1xuXG4gIHByaXZhdGUgbW9kZWwkID0gY29tYmluZUxhdGVzdChbdG9PYnNlcnZhYmxlKHRoaXMubm9kZSksIHRvT2JzZXJ2YWJsZSh0aGlzLmtleSldKS5waXBlKFxuICAgIGZpbHRlcigoW25vZGUsIGtleV0pID0+IFshaXNVbmRlZmluZWQobm9kZSksICEha2V5XS5ldmVyeShCb29sZWFuKSksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBtZXJnZU1hcCgoW25vZGUsIGtleV0pID0+IHRoaXMuZW5naW5lU2VydmljZS5ub2RlTW9kZWwkKG5vZGUsIGtleSkpXG4gICk7XG4gIHByb3RlY3RlZCBtb2RlbCA9IHRvU2lnbmFsKHRoaXMubW9kZWwkKTtcbiAgcHJvdGVjdGVkIG1vZGVsVXJsID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5tb2RlbCgpPy5hcGlEb2NzUGF0aCB8fCB0aGlzLm1vZGVsKCk/LmRvY1BhdGggfHwgdGhpcy5tb2RlbCgpPy5wYXRoKTtcbn1cbiIsIkBpZiAoc2hvdygpKSB7XG4gIEBmb3IgKHN0YXIgb2Ygc3RhcnMoKTsgdHJhY2sgc3Rhcikge1xuICAgIDxzcGFuPio8L3NwYW4+XG4gIH1cbiAgQGlmIChzdGFycygpLmxlbmd0aCA9PT0gMCB8fCBjdXJyZW50U3RhdGUoKSA9PT0gTm9kZUtleVN0YXRlLnVuY2hhbmdlZCkge1xuICAgIDxzcGFuPuKAoDwvc3Bhbj5cbiAgfVxuICBAaWYgKHNob3dMaW5rKCkpIHtcbiAgICA8c3BhbiBjbGFzcz1cImlzLW1sLTJcIj5cbiAgICAgIEBpZiAobW9kZWwoKSkge1xuICAgICAgICA8YSBbbmdDbGFzc109XCJsaW5rQ2xhc3MoKVwiIFtocmVmXT1cIm1vZGVsVXJsKClcIiB0YXJnZXQ9XCJfYmxhbmtcIiAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCI+XG4gICAgICAgICAgPHNwYW4+RG9jczwvc3Bhbj5cbiAgICAgICAgICA8ZmEtaWNvbiBjbGFzcz1cIm1sLTJcIiBbaWNvbl09XCJmYUV4dGVybmFsTGlua0FsdFwiIHNpemU9XCJzbVwiPjwvZmEtaWNvbj5cbiAgICAgICAgPC9hPlxuICAgICAgfVxuICAgIDwvc3Bhbj5cbiAgfVxufVxuIl19
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxhbmstbm9kZS1zdGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tbW9uL2JsYW5rLW5vZGUtc3RhdGUvYmxhbmstbm9kZS1zdGF0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvY29tbW9uL2JsYW5rLW5vZGUtc3RhdGUvYmxhbmstbm9kZS1zdGF0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkUsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDbkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDdEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRTlDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDckMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFbEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzlELE9BQU8sRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUV0RCxNQUFNLFFBQVEsR0FBRyxDQUFDLElBQW9CLEVBQUUsR0FBVyxFQUFFLEVBQUUsQ0FDckQ7SUFDRSxZQUFZLENBQUMsT0FB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LFVBQVUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FDcEUsQ0FBQztRQUNRLFVBQUssR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzlCLGFBQVEsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxFQUFFLFdBQVcsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUUsT0FBTyxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztLQUMvRzs4R0F0Q1ksdUJBQXVCO2tHQUF2Qix1QkFBdUIsZzhCQ3pDcEMsNmhCQWtCQSx1RkRxQjhCLE9BQU8sb0ZBQUUsZUFBZTs7MkZBRXpDLHVCQUF1QjtrQkFSbkMsU0FBUzsrQkFDRSxxQkFBcUIsbUJBR2QsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1AsQ0FBQyxnQkFBZ0IsRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGNvbXB1dGVkLCBpbmplY3QsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ1RlbXBsYXRlT3V0bGV0LCBOZ0NsYXNzLCBBc3luY1BpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgdG9PYnNlcnZhYmxlLCB0b1NpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IEZhSWNvbkNvbXBvbmVudCB9IGZyb20gJ0Bmb3J0YXdlc29tZS9hbmd1bGFyLWZvbnRhd2Vzb21lJztcbmltcG9ydCB7IGZhRXh0ZXJuYWxMaW5rQWx0IH0gZnJvbSAnQGZvcnRhd2Vzb21lL2ZyZWUtc29saWQtc3ZnLWljb25zJztcbmltcG9ydCB7IERhdGFTdGF0ZSB9IGZyb20gJ0BoZXN0aWEtZWFydGgvYXBpJztcbmltcG9ydCB7IE5vZGVUeXBlLCBibGFua05vZGVzVHlwZSB9IGZyb20gJ0BoZXN0aWEtZWFydGgvc2NoZW1hJztcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaWx0ZXIsIG1lcmdlTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgaXNVbmRlZmluZWQgfSBmcm9tICdAaGVzdGlhLWVhcnRoL3V0aWxzJztcblxuaW1wb3J0IHsgSGVFbmdpbmVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZW5naW5lL2VuZ2luZS5zZXJ2aWNlJztcbmltcG9ydCB7IE5vZGVLZXlTdGF0ZSwgaXNTdGF0ZSB9IGZyb20gJy4uL25vZGUtdXRpbHMnO1xuXG5jb25zdCBnZXRTdGF0ZSA9IChub2RlOiBibGFua05vZGVzVHlwZSwga2V5OiBzdHJpbmcpID0+XG4gIFtcbiAgICBOb2RlS2V5U3RhdGUuZGVsZXRlZCxcbiAgICBOb2RlS2V5U3RhdGUudXBkYXRlZCxcbiAgICAvLyBoYW5kbGUgaW4gdGhpcyBvcmRlciBiZWNhdXNlIGFnZ3JlZ2F0ZWQgY2FuIGJlIHVwZGF0ZWRcbiAgICBOb2RlS2V5U3RhdGUuYWdncmVnYXRlZCxcbiAgICBOb2RlS2V5U3RhdGUuYWRkZWRcbiAgXS5maW5kKHN0YXRlID0+IGlzU3RhdGUobm9kZSwga2V5LCBzdGF0ZSkpIHx8IE5vZGVLZXlTdGF0ZS51bmNoYW5nZWQ7XG5cbmNvbnN0IHN0YXRlU3RhcnM6IHtcbiAgW3N0YXRlIGluIE5vZGVLZXlTdGF0ZV06IG51bWJlcjtcbn0gPSB7XG4gIFtOb2RlS2V5U3RhdGUudW5jaGFuZ2VkXTogMCxcbiAgW05vZGVLZXlTdGF0ZS5hZGRlZF06IDEsXG4gIFtOb2RlS2V5U3RhdGUudXBkYXRlZF06IDIsXG4gIFtOb2RlS2V5U3RhdGUuYWdncmVnYXRlZF06IDMsXG4gIFtOb2RlS2V5U3RhdGUuZGVsZXRlZF06IDRcbn07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2hlLWJsYW5rLW5vZGUtc3RhdGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vYmxhbmstbm9kZS1zdGF0ZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2JsYW5rLW5vZGUtc3RhdGUuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtOZ1RlbXBsYXRlT3V0bGV0LCBOZ0NsYXNzLCBGYUljb25Db21wb25lbnQsIEFzeW5jUGlwZV1cbn0pXG5leHBvcnQgY2xhc3MgQmxhbmtOb2RlU3RhdGVDb21wb25lbnQge1xuICBwcml2YXRlIGVuZ2luZVNlcnZpY2UgPSBpbmplY3QoSGVFbmdpbmVTZXJ2aWNlKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZmFFeHRlcm5hbExpbmtBbHQgPSBmYUV4dGVybmFsTGlua0FsdDtcblxuICBwcm90ZWN0ZWQgZGF0YVN0YXRlID0gaW5wdXQ8RGF0YVN0YXRlPigpO1xuICBwcm90ZWN0ZWQgbm9kZVR5cGUgPSBpbnB1dDxOb2RlVHlwZT4oKTtcbiAgcHJvdGVjdGVkIGRhdGFLZXkgPSBpbnB1dDxzdHJpbmc+KCk7XG4gIHByb3RlY3RlZCBrZXkgPSBpbnB1dDxzdHJpbmc+KCk7XG4gIHByb3RlY3RlZCBub2RlID0gaW5wdXQucmVxdWlyZWQ8YmxhbmtOb2Rlc1R5cGU+KCk7XG4gIC8qKlxuICAgKiBGb3JjZSBvdmVycmlkZSBzdGF0ZS5cbiAgICovXG4gIHByb3RlY3RlZCBzdGF0ZSA9IGlucHV0PE5vZGVLZXlTdGF0ZT4oKTtcbiAgcHJvdGVjdGVkIGxpbmtDbGFzcyA9IGlucHV0PHN0cmluZz4oKTtcblxuICBwcm90ZWN0ZWQgTm9kZUtleVN0YXRlID0gTm9kZUtleVN0YXRlO1xuXG4gIHByb3RlY3RlZCBzaG93ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5kYXRhU3RhdGUoKSAhPT0gRGF0YVN0YXRlLm9yaWdpbmFsKTtcblxuICBwcm90ZWN0ZWQgY3VycmVudFN0YXRlID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5zdGF0ZSgpIHx8IGdldFN0YXRlKHRoaXMubm9kZSgpLCB0aGlzLmtleSgpKSk7XG5cbiAgcHJvdGVjdGVkIHN0YXJzID0gY29tcHV0ZWQoKCkgPT4gQXJyYXkuZnJvbShBcnJheShzdGF0ZVN0YXJzW3RoaXMuY3VycmVudFN0YXRlKCldKS5rZXlzKCkpKTtcbiAgcHJvdGVjdGVkIHNob3dMaW5rID0gY29tcHV0ZWQoKCkgPT5cbiAgICBbXG4gICAgICAhIXRoaXMuZGF0YUtleSgpLFxuICAgICAgWyd0ZXJtJywgJ3ZhbHVlJ10uaW5jbHVkZXModGhpcy5rZXkoKSksXG4gICAgICB0aGlzLmN1cnJlbnRTdGF0ZSgpID09PSBOb2RlS2V5U3RhdGUuYWRkZWQgfHwgdGhpcy5jdXJyZW50U3RhdGUoKSA9PT0gTm9kZUtleVN0YXRlLnVwZGF0ZWRcbiAgICBdLmV2ZXJ5KEJvb2xlYW4pXG4gICk7XG5cbiAgcHJpdmF0ZSBtb2RlbCQgPSBjb21iaW5lTGF0ZXN0KFt0b09ic2VydmFibGUodGhpcy5ub2RlKSwgdG9PYnNlcnZhYmxlKHRoaXMua2V5KV0pLnBpcGUoXG4gICAgZmlsdGVyKChbbm9kZSwga2V5XSkgPT4gWyFpc1VuZGVmaW5lZChub2RlKSwgISFrZXldLmV2ZXJ5KEJvb2xlYW4pKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIG1lcmdlTWFwKChbbm9kZSwga2V5XSkgPT4gdGhpcy5lbmdpbmVTZXJ2aWNlLm5vZGVNb2RlbCQobm9kZSwga2V5KSlcbiAgKTtcbiAgcHJvdGVjdGVkIG1vZGVsID0gdG9TaWduYWwodGhpcy5tb2RlbCQpO1xuICBwcm90ZWN0ZWQgbW9kZWxVcmwgPSBjb21wdXRlZCgoKSA9PiB0aGlzLm1vZGVsKCk/LmFwaURvY3NQYXRoIHx8IHRoaXMubW9kZWwoKT8uZG9jUGF0aCB8fCB0aGlzLm1vZGVsKCk/LnBhdGgpO1xufVxuIiwiQGlmIChzaG93KCkpIHtcbiAgQGZvciAoc3RhciBvZiBzdGFycygpOyB0cmFjayBzdGFyKSB7XG4gICAgPHNwYW4+Kjwvc3Bhbj5cbiAgfVxuICBAaWYgKHN0YXJzKCkubGVuZ3RoID09PSAwIHx8IGN1cnJlbnRTdGF0ZSgpID09PSBOb2RlS2V5U3RhdGUudW5jaGFuZ2VkKSB7XG4gICAgPHNwYW4+4oCgPC9zcGFuPlxuICB9XG4gIEBpZiAoc2hvd0xpbmsoKSkge1xuICAgIDxzcGFuIGNsYXNzPVwiaXMtbWwtMlwiPlxuICAgICAgQGlmIChtb2RlbCgpKSB7XG4gICAgICAgIDxhIFtuZ0NsYXNzXT1cImxpbmtDbGFzcygpXCIgW2hyZWZdPVwibW9kZWxVcmwoKVwiIHRhcmdldD1cIl9ibGFua1wiIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIj5cbiAgICAgICAgICA8c3Bhbj5Eb2NzPC9zcGFuPlxuICAgICAgICAgIDxmYS1pY29uIGNsYXNzPVwibWwtMlwiIFtpY29uXT1cImZhRXh0ZXJuYWxMaW5rQWx0XCIgc2l6ZT1cInNtXCI+PC9mYS1pY29uPlxuICAgICAgICA8L2E+XG4gICAgICB9XG4gICAgPC9zcGFuPlxuICB9XG59XG4iXX0=
@@ -2,24 +2,7 @@ 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
- export var BlankNodesKey;
6
- (function (BlankNodesKey) {
7
- BlankNodesKey["animals"] = "animals";
8
- BlankNodesKey["emissions"] = "emissions";
9
- BlankNodesKey["emissionsResourceUse"] = "emissionsResourceUse";
10
- BlankNodesKey["endpoints"] = "endpoints";
11
- BlankNodesKey["impacts"] = "impacts";
12
- BlankNodesKey["inputs"] = "inputs";
13
- BlankNodesKey["management"] = "management";
14
- BlankNodesKey["measurements"] = "measurements";
15
- BlankNodesKey["products"] = "products";
16
- BlankNodesKey["practices"] = "practices";
17
- })(BlankNodesKey || (BlankNodesKey = {}));
18
5
  export const filterBlankNode = (filterTerm) => ({ term }) => !filterTerm || term?.name?.toLowerCase()?.includes(filterTerm.toLowerCase());
19
- export var NonBlankNodesKey;
20
- (function (NonBlankNodesKey) {
21
- NonBlankNodesKey["completeness"] = "completeness";
22
- })(NonBlankNodesKey || (NonBlankNodesKey = {}));
23
6
  export const ignoreKeys = ['@type', 'type', 'added', 'updated', 'addedVersion', 'updatedVersion'];
24
7
  export const isValidKey = (key) => !ignoreKeys.includes(key);
25
8
  export const isMethodModelAllowed = (filterMethod) => (node) => node.methodModel?.['@id'] === (filterMethod ? filterMethod['@id'] : getDefaultModelId(node.term?.['@id']));
@@ -109,4 +92,4 @@ export const groupNodesByTerm = (nodes = [], key, originalValues = [], includeNo
109
92
  });
110
93
  return groups;
111
94
  };
112
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tb24vbm9kZS11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEdBQUcsTUFBTSxZQUFZLENBQUM7QUFDN0IsT0FBTyxFQUtMLGtCQUFrQixFQWFuQixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBRSxhQUFhLEVBQXFCLE1BQU0sK0JBQStCLENBQUM7QUFDakYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUF5QjNELE1BQU0sQ0FBTixJQUFZLGFBV1g7QUFYRCxXQUFZLGFBQWE7SUFDdkIsb0NBQW1CLENBQUE7SUFDbkIsd0NBQXVCLENBQUE7SUFDdkIsOERBQTZDLENBQUE7SUFDN0Msd0NBQXVCLENBQUE7SUFDdkIsb0NBQW1CLENBQUE7SUFDbkIsa0NBQWlCLENBQUE7SUFDakIsMENBQXlCLENBQUE7SUFDekIsOENBQTZCLENBQUE7SUFDN0Isc0NBQXFCLENBQUE7SUFDckIsd0NBQXVCLENBQUE7QUFDekIsQ0FBQyxFQVhXLGFBQWEsS0FBYixhQUFhLFFBV3hCO0FBRUQsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUMxQixDQUFDLFVBQWtCLEVBQUUsRUFBRSxDQUN2QixDQUFDLEVBQUUsSUFBSSxFQUFhLEVBQUUsRUFBRSxDQUN0QixDQUFDLFVBQVUsSUFBSSxJQUFJLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxFQUFFLFFBQVEsQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztBQUtqRixNQUFNLENBQU4sSUFBWSxnQkFFWDtBQUZELFdBQVksZ0JBQWdCO0lBQzFCLGlEQUE2QixDQUFBO0FBQy9CLENBQUMsRUFGVyxnQkFBZ0IsS0FBaEIsZ0JBQWdCLFFBRTNCO0FBRUQsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUs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LENBQUMsb0JBQW9CLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztnQkFDN0csS0FBSyxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxhQUFhLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDekUsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFFSCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZ2V0IGZyb20gJ2xvZGFzaC5nZXQnO1xuaW1wb3J0IHtcbiAgVGVybSxcbiAgSUN5Y2xlSlNPTkxELFxuICBJU2l0ZUpTT05MRCxcbiAgSUltcGFjdEFzc2Vzc21lbnRKU09OTEQsXG4gIEVtaXNzaW9uTWV0aG9kVGllcixcbiAgSVRlcm1KU09OTEQsXG4gIENvbXBsZXRlbmVzcyxcbiAgRW1pc3Npb24sXG4gIE1lYXN1cmVtZW50LFxuICBQcmFjdGljZSxcbiAgUHJvZHVjdCxcbiAgSW5wdXQsXG4gIFByb3BlcnR5LFxuICBJbmRpY2F0b3IsXG4gIEFuaW1hbCxcbiAgTWFuYWdlbWVudCxcbiAgVHJhbnNmb3JtYXRpb25cbn0gZnJvbSAnQGhlc3RpYS1lYXJ0aC9zY2hlbWEnO1xuaW1wb3J0IHsgcHJvcGVydHlWYWx1ZSwgcHJvcGVydHlWYWx1ZVR5cGUgfSBmcm9tICdAaGVzdGlhLWVhcnRoL3V0aWxzL2Rpc3QvdGVybSc7XG5pbXBvcnQgeyBnZXREZWZhdWx0TW9kZWxJZCB9IGZyb20gJ0BoZXN0aWEtZWFydGgvZ2xvc3NhcnknO1xuXG5leHBvcnQgdHlwZSBibGFua05vZGUgPVxuICB8IEFuaW1hbFxuICB8IEVtaXNzaW9uXG4gIHwgSW5wdXRcbiAgfCBQcm9kdWN0XG4gIHwgUHJvcGVydHlcbiAgfCBQcmFjdGljZVxuICB8IEluZGljYXRvclxuICB8IE1lYXN1cmVtZW50XG4gIHwgTWFuYWdlbWVudDtcblxuZXhwb3J0IHR5cGUgYmxhbmtOb2Rlc0tleSA9XG4gIHwgJ2FuaW1hbHMnXG4gIHwgJ2VtaXNzaW9ucydcbiAgfCAnZW1pc3Npb25zUmVzb3VyY2VVc2UnXG4gIHwgJ2VuZHBvaW50cydcbiAgfCAnaW1wYWN0cydcbiAgfCAnaW5wdXRzJ1xuICB8ICdtYW5hZ2VtZW50J1xuICB8ICdtZWFzdXJlbWVudHMnXG4gIHwgJ3Byb2R1Y3RzJ1xuICB8ICdwcmFjdGljZXMnO1xuXG5leHBvcnQgZW51bSBCbGFua05vZGVzS2V5IHtcbiAgYW5pbWFscyA9ICdhbmltYWxzJyxcbiAgZW1pc3Npb25zID0gJ2VtaXNzaW9ucycsXG4gIGVtaXNzaW9uc1Jlc291cmNlVXNlID0gJ2VtaXNzaW9uc1Jlc291cmNlVXNlJyxcbiAgZW5kcG9pbnRzID0gJ2VuZHBvaW50cycsXG4gIGltcGFjdHMgPSAnaW1wYWN0cycsXG4gIGlucHV0cyA9ICdpbnB1dHMnLFxuICBtYW5hZ2VtZW50ID0gJ21hbmFnZW1lbnQnLFxuICBtZWFzdXJlbWVudHMgPSAnbWVhc3VyZW1lbnRzJyxcbiAgcHJvZHVjdHMgPSAncHJvZHVjdHMnLFxuICBwcmFjdGljZXMgPSAncHJhY3RpY2VzJ1xufVxuXG5leHBvcnQgY29uc3QgZmlsdGVyQmxhbmtOb2RlID1cbiAgKGZpbHRlclRlcm06IHN0cmluZykgPT5cbiAgKHsgdGVybSB9OiBibGFua05vZGUpID0+XG4gICAgIWZpbHRlclRlcm0gfHwgdGVybT8ubmFtZT8udG9Mb3dlckNhc2UoKT8uaW5jbHVkZXMoZmlsdGVyVGVybS50b0xvd2VyQ2FzZSgpKTtcblxuZXhwb3J0IHR5cGUgbm9uQmxhbmtOb2RlID0gQ29tcGxldGVuZXNzO1xuZXhwb3J0IHR5cGUgbm9uQmxhbmtOb2Rlc0tleSA9ICdjb21wbGV0ZW5lc3MnO1xuXG5leHBvcnQgZW51bSBOb25CbGFua05vZGVzS2V5IHtcbiAgY29tcGxldGVuZXNzID0gJ2NvbXBsZXRlbmVzcydcbn1cblxuZXhwb3J0IGNvbnN0IGlnbm9yZUtleXMgPSBbJ0B0eXBlJywgJ3R5cGUnLCAnYWRkZWQnLCAndXBkYXRlZCcsICdhZGRlZFZlcnNpb24nLCAndXBkYXRlZFZlcnNpb24nXTtcblxuZXhwb3J0IGNvbnN0IGlzVmFsaWRLZXkgPSAoa2V5OiBzdHJpbmcpID0+ICFpZ25vcmVLZXlzLmluY2x1ZGVzKGtleSk7XG5cbmV4cG9ydCBjb25zdCBpc01ldGhvZE1vZGVsQWxsb3dlZCA9IChmaWx0ZXJNZXRob2Q/OiBUZXJtKSA9PiAobm9kZTogSW5kaWNhdG9yKSA9PlxuICBub2RlLm1ldGhvZE1vZGVsPy5bJ0BpZCddID09PSAoZmlsdGVyTWV0aG9kID8gZmlsdGVyTWV0aG9kWydAaWQnXSA6IGdldERlZmF1bHRNb2RlbElkKG5vZGUudGVybT8uWydAaWQnXSkpO1xuXG5leHBvcnQgZW51bSBOb2RlS2V5U3RhdGUge1xuICBhZGRlZCA9ICdhZGRlZCcsXG4gIHVwZGF0ZWQgPSAndXBkYXRlZCcsXG4gIGFnZ3JlZ2F0ZWQgPSAnYWdncmVnYXRlZCcsXG4gIGRlbGV0ZWQgPSAnZGVsZXRlZCcsXG4gIHVuY2hhbmdlZCA9ICd1bmNoYW5nZWQnXG59XG5cbmV4cG9ydCBjb25zdCBpc1N0YXRlID0gKG5vZGU6IGJsYW5rTm9kZSwga2V5OiBzdHJpbmcsIHN0YXRlOiBOb2RlS2V5U3RhdGUpID0+XG4gIHN0YXRlIGluIG5vZGUhICYmICh0eXBlb2Ygbm9kZSFbc3RhdGVdID09PSAnYm9vbGVhbicgPyBub2RlIVtzdGF0ZV0gOiBub2RlIVtzdGF0ZV0uaW5jbHVkZXMoa2V5KSk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUdyb3VwZWROb2RlPFQ+IHtcbiAgLy8gc3RvcmUgdGhlIG5vZGUgd2l0aCB0aGUgaGlnaGVzdCBcInN0YXRlXCJcbiAgbm9kZTogVDtcbiAgbm9kZXM6IFRbXTtcbiAgaW5kZXg6IG51bWJlcjtcbiAgdmFsdWU6IHByb3BlcnR5VmFsdWVUeXBlW107XG4gIGRhdGVzPzogYW55W107XG4gIHNkPzogbnVtYmVyW107XG4gIG1pbj86IG51bWJlcltdO1xuICBtYXg/OiBudW1iZXJbXTtcbiAgaW5wdXRzPzogYW55W107XG4gIGRlcHRoVXBwZXI/OiBudW1iZXJbXTtcbiAgZGVwdGhMb3dlcj86IG51bWJlcltdO1xuICBzdGFydERhdGU/OiBzdHJpbmdbXTtcbiAgZW5kRGF0ZT86IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElHcm91cGVkTm9kZXNWYWx1ZXM8VD4ge1xuICBbbm9kZUlkOiBzdHJpbmddOiBJR3JvdXBlZE5vZGU8VD47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUdyb3VwZWROb2Rlc1ZhbHVlPFQ+IHtcbiAgdGVybTogSVRlcm1KU09OTEQ7XG4gIG1ldGhvZFRpZXI/OiBFbWlzc2lvbk1ldGhvZFRpZXI7XG4gIC8qKlxuICAgKiBFbmFibGUgb3JkZXJpbmcgbnkgbWV0aG9kVGllclxuICAgKi9cbiAgbWV0aG9kVGllck9yZGVyOiBudW1iZXI7XG4gIHZhbHVlczogSUdyb3VwZWROb2Rlc1ZhbHVlczxUPjtcbiAgb3JpZ2luYWxWYWx1ZXM6IHtcbiAgICBbbm9kZUlkOiBzdHJpbmddOiB7XG4gICAgICB2YWx1ZTogcHJvcGVydHlWYWx1ZVR5cGU7XG4gICAgfTtcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJR3JvdXBlZE5vZGVzPFQ+IHtcbiAgW3Rlcm1JZDogc3RyaW5nXTogSUdyb3VwZWROb2Rlc1ZhbHVlPFQ+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElHcm91cGVkS2V5czxUPiB7XG4gIGtleTogc3RyaW5nO1xuICB2YWx1ZTogSUdyb3VwZWROb2Rlc1ZhbHVlPFQ+O1xufVxuXG5leHBvcnQgY29uc3QgZ3JvdXBwZWRLZXlzID0gPFQ+KHZhbHVlczogeyBba2V5OiBzdHJpbmddOiBUIH0pOiB7IGtleTogc3RyaW5nOyB2YWx1ZTogVCB9W10gPT5cbiAgT2JqZWN0LmVudHJpZXModmFsdWVzKS5tYXAoKFtrZXksIHZhbHVlXSkgPT4gKHsga2V5LCB2YWx1ZSB9KSk7XG5cbmNvbnN0IGNvbmNhdEJsYW5rTm9kZVZhbHVlID0gKHZhbHVlOiBhbnksIG5ld1ZhbHVlOiBhbnkpID0+IHtcbiAgY29uc3QgdmFsdWVBcnJheSA9IEFycmF5LmlzQXJyYXkodmFsdWUpID8gdmFsdWUgOiBbdmFsdWVdO1xuICBjb25zdCBuZXdWYWx1ZUFycmF5ID0gQXJyYXkuaXNBcnJheShuZXdWYWx1ZSkgPyBuZXdWYWx1ZSA6IFtuZXdWYWx1ZV07XG4gIHJldHVybiBbLi4udmFsdWVBcnJheSwgLi4ubmV3VmFsdWVBcnJheV07XG59O1xuXG5leHBvcnQgY29uc3QgbWV0aG9kVGllck9yZGVyID0gKG1ldGhvZFRpZXI6IEVtaXNzaW9uTWV0aG9kVGllcikgPT5cbiAgW1xuICAgIEVtaXNzaW9uTWV0aG9kVGllci5tZWFzdXJlZCxcbiAgICBFbWlzc2lvbk1ldGhvZFRpZXJbJ3RpZXIgMyddLFxuICAgIEVtaXNzaW9uTWV0aG9kVGllclsndGllciAyJ10sXG4gICAgRW1pc3Npb25NZXRob2RUaWVyWyd0aWVyIDEnXSxcbiAgICBFbWlzc2lvbk1ldGhvZFRpZXIuYmFja2dyb3VuZCxcbiAgICBFbWlzc2lvbk1ldGhvZFRpZXJbJ25vdCByZWxldmFudCddXG4gIF0uaW5kZXhPZihtZXRob2RUaWVyKTtcblxuZXhwb3J0IGNvbnN0IGdyb3VwcGVkVmFsdWVLZXlzID0gW1xuICAnZGF0ZXMnLFxuICAnc2QnLFxuICAnbWluJyxcbiAgJ21heCcsXG4gICdpbnB1dHMnLFxuICAnZGVwdGhVcHBlcicsXG4gICdkZXB0aExvd2VyJyxcbiAgJ3N0YXJ0RGF0ZScsXG4gICdlbmREYXRlJyxcbiAgJ21ldGhvZFRpZXInLFxuICAnbWV0aG9kTW9kZWwnLFxuICAnbW9kZWwnLFxuICAnbWV0aG9kJ1xuXTtcblxuY29uc3QgaXNIaWdoZXJTdGF0ZSA9IChzb3VyY2VOb2RlOiBibGFua05vZGUsIG5ld05vZGU6IGJsYW5rTm9kZSkgPT5cbiAgIXNvdXJjZU5vZGUgfHxcbiAgaXNTdGF0ZShuZXdOb2RlLCAndmFsdWUnLCBOb2RlS2V5U3RhdGUudXBkYXRlZCkgfHxcbiAgKCFpc1N0YXRlKHNvdXJjZU5vZGUsICd2YWx1ZScsIE5vZGVLZXlTdGF0ZS51cGRhdGVkKSAmJiBpc1N0YXRlKG5ld05vZGUsICd2YWx1ZScsIE5vZGVLZXlTdGF0ZS5hZGRlZCkpO1xuXG5jb25zdCBncm91cE5vZGVLZXkgPSAoeyB0ZXJtIH06IGFueSkgPT4gdGVybT8ubmFtZSB8fCB0ZXJtPy5bJ0BpZCddO1xuXG5leHBvcnQgY29uc3QgZ3JvdXBOb2Rlc0J5VGVybSA9IDxcbiAgVCBleHRlbmRzIElDeWNsZUpTT05MRCB8IElJbXBhY3RBc3Nlc3NtZW50SlNPTkxEIHwgSVNpdGVKU09OTEQgfCBBbmltYWwgfCBUcmFuc2Zvcm1hdGlvbixcbiAgUlxuPihcbiAgbm9kZXM6IFRbXSA9IFtdLFxuICBrZXk6IGJsYW5rTm9kZXNLZXksXG4gIG9yaWdpbmFsVmFsdWVzOiBUW10gPSBbXSxcbiAgaW5jbHVkZU5vZGUgPSAoX25vZGU6IGFueSkgPT4gdHJ1ZVxuKTogSUdyb3VwZWROb2RlczxSPiA9PiB7XG4gIGNvbnN0IGdyb3VwczogSUdyb3VwZWROb2RlczxSPiA9IG5vZGVzLnJlZHVjZShcbiAgICAocHJldiwgbm9kZSwgaW5kZXgpID0+XG4gICAgICAobm9kZVtrZXldIHx8IFtdKS5yZWR1Y2UoKGdyb3VwLCBibGFua05vZGUpID0+IHtcbiAgICAgICAgLy8gc2tpcCBub2RlIGJhc2VkIG9uIGNvbmRpdGlvblxuICAgICAgICBpZiAoIWluY2x1ZGVOb2RlKGJsYW5rTm9kZSkpIHtcbiAgICAgICAgICByZXR1cm4gZ3JvdXA7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBub2RlSWQgPSBub2RlWydAaWQnXTtcbiAgICAgICAgY29uc3QgZ3JvdXBlZEtleSA9IGdyb3VwTm9kZUtleShibGFua05vZGUpO1xuICAgICAgICBncm91cFtncm91cGVkS2V5XSA9IGdyb3VwW2dyb3VwZWRLZXldIHx8IHtcbiAgICAgICAgICB0ZXJtOiBibGFua05vZGUudGVybSxcbiAgICAgICAgICBtZXRob2RUaWVyOiBibGFua05vZGUubWV0aG9kVGllcixcbiAgICAgICAgICBtZXRob2RUaWVyT3JkZXI6IG1ldGhvZFRpZXJPcmRlcihibGFua05vZGUubWV0aG9kVGllciksXG4gICAgICAgICAgdmFsdWVzOiB7fSxcbiAgICAgICAgICBvcmlnaW5hbFZhbHVlczoge31cbiAgICAgICAgfTtcbiAgICAgICAgZ3JvdXBbZ3JvdXBlZEtleV0udmFsdWVzW25vZGVJZF0gPSBncm91cFtncm91cGVkS2V5XS52YWx1ZXNbbm9kZUlkXSB8fCB7IGluZGV4LCBub2RlczogW10sIHZhbHVlOiBbXSB9O1xuICAgICAgICBncm91cFtncm91cGVkS2V5XS52YWx1ZXNbbm9kZUlkXS5ub2RlID0gaXNIaWdoZXJTdGF0ZShncm91cFtncm91cGVkS2V5XS52YWx1ZXNbbm9kZUlkXS5ub2RlLCBibGFua05vZGUpXG4gICAgICAgICAgPyBibGFua05vZGVcbiAgICAgICAgICA6IGdyb3VwW2dyb3VwZWRLZXldLnZhbHVlc1tub2RlSWRdLm5vZGU7XG4gICAgICAgIGdyb3VwW2dyb3VwZWRLZXldLnZhbHVlc1tub2RlSWRdLm5vZGVzLnB1c2goYmxhbmtOb2RlKTtcbiAgICAgICAgZ3JvdXBbZ3JvdXBlZEtleV0udmFsdWVzW25vZGVJZF0udmFsdWUgPSBjb25jYXRCbGFua05vZGVWYWx1ZShcbiAgICAgICAgICBncm91cFtncm91cGVkS2V5XS52YWx1ZXNbbm9kZUlkXS52YWx1ZSxcbiAgICAgICAgICBibGFua05vZGUudmFsdWVcbiAgICAgICAgKTtcbiAgICAgICAgZ3JvdXBwZWRWYWx1ZUtleXMuZm9yRWFjaChhcnJheUtleSA9PiB7XG4gICAgICAgICAgY29uc3QgbmV3VmFsdWUgPSBnZXQoYmxhbmtOb2RlLCBhcnJheUtleSwgW10pO1xuICAgICAgICAgIGdyb3VwW2dyb3VwZWRLZXldLnZhbHVlc1tub2RlSWRdW2FycmF5S2V5XSA9IFtcbiAgICAgICAgICAgIC4uLihncm91cFtncm91cGVkS2V5XS52YWx1ZXNbbm9kZUlkXVthcnJheUtleV0gfHwgW10pLFxuICAgICAgICAgICAgLi4uKEFycmF5LmlzQXJyYXkobmV3VmFsdWUpID8gbmV3VmFsdWUgOiBbbmV3VmFsdWVdKVxuICAgICAgICAgIF07XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gZ3JvdXA7XG4gICAgICB9LCBwcmV2KSxcbiAgICB7fSBhcyBJR3JvdXBlZE5vZGVzPFI+XG4gICk7XG5cbiAgLy8gY29tcGlsZSBvcmlnaW5hbCB2YWx1ZXNcbiAgT2JqZWN0LnZhbHVlcyhncm91cHMpLm1hcChncm91cCA9PiB7XG4gICAgT2JqZWN0LmtleXMoZ3JvdXAudmFsdWVzKS5tYXAobm9kZUlkID0+IHtcbiAgICAgIGNvbnN0IHsgaW5kZXggfSA9IGdyb3VwLnZhbHVlc1tub2RlSWRdO1xuICAgICAgY29uc3QgdGVybUlkID0gZ3JvdXAudGVybVsnQGlkJ107XG4gICAgICBjb25zdCBvcmlnaW5hbFZhbHVlID0gZ2V0KG9yaWdpbmFsVmFsdWVzLCBgWyR7aW5kZXh9XS4ke2tleX1gLCBbXSkuZmlsdGVyKFxuICAgICAgICAodmFsOiBhbnkpID0+IHZhbC50ZXJtWydAaWQnXSA9PT0gdGVybUlkXG4gICAgICApO1xuICAgICAgaWYgKG9yaWdpbmFsVmFsdWUubGVuZ3RoID4gMCkge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IG9yaWdpbmFsVmFsdWUucmVkdWNlKChhcnJheTogYW55W10sIGN1cnI6IGFueSkgPT4gY29uY2F0QmxhbmtOb2RlVmFsdWUoYXJyYXksIGN1cnIudmFsdWUpLCBbXSk7XG4gICAgICAgIGdyb3VwLm9yaWdpbmFsVmFsdWVzW25vZGVJZF0gPSB7IHZhbHVlOiBwcm9wZXJ0eVZhbHVlKHZhbHVlLCB0ZXJtSWQpIH07XG4gICAgICB9XG4gICAgfSk7XG4gIH0pO1xuXG4gIHJldHVybiBncm91cHM7XG59O1xuIl19
95
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tb24vbm9kZS11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEdBQUcsTUFBTSxZQUFZLENBQUM7QUFDN0IsT0FBTyxFQUtMLGtCQUFrQixFQU9uQixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBRSxhQUFhLEVBQXFCLE1BQU0sK0JBQStCLENBQUM7QUFDakYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFM0QsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUMxQixDQUFDLFVBQWtCLEVBQUUsRUFBRSxDQUN2QixDQUFDLEVBQUUsSUFBSSxFQUFrQixFQUFFLEVBQUUsQ0FDM0IsQ0FBQyxVQUFVLElBQUksSUFBSSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsRUFBRSxRQUFRLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7QUFFakYsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLGNBQWMsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO0FBRWxHLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxDQUFDLEdBQVcsRUFBRSxFQUFFLENBQUMsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBRXJFLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLENBQUMsWUFBbUIsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFlLEVBQUUsRUFBRSxDQUMvRSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLEtBQUss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QUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUU7UUFDaEMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ3JDLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3ZDLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDakMsTUFBTSxhQUFhLEdBQUcsR0FBRyxDQUFDLGNBQWMsRUFBRSxJQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQ3ZFLENBQUMsR0FBUSxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLE1BQU0sQ0FDekMsQ0FBQztZQUNGLElBQUksYUFBYSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDN0IsTUFBTSxLQUFLLEdBQUcsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQVksRUFBRSxJQUFTLEVBQUUsRUFBRSxDQUFDLG9CQUFvQixDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQzdHLEtBQUssQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsYUFBYSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQ3pFLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0lBRUgsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGdldCBmcm9tICdsb2Rhc2guZ2V0JztcbmltcG9ydCB7XG4gIFRlcm0sXG4gIElDeWNsZUpTT05MRCxcbiAgSVNpdGVKU09OTEQsXG4gIElJbXBhY3RBc3Nlc3NtZW50SlNPTkxELFxuICBFbWlzc2lvbk1ldGhvZFRpZXIsXG4gIElUZXJtSlNPTkxELFxuICBJbmRpY2F0b3IsXG4gIEFuaW1hbCxcbiAgVHJhbnNmb3JtYXRpb24sXG4gIGJsYW5rTm9kZXNUeXBlLFxuICBibGFua05vZGVzS2V5XG59IGZyb20gJ0BoZXN0aWEtZWFydGgvc2NoZW1hJztcbmltcG9ydCB7IHByb3BlcnR5VmFsdWUsIHByb3BlcnR5VmFsdWVUeXBlIH0gZnJvbSAnQGhlc3RpYS1lYXJ0aC91dGlscy9kaXN0L3Rlcm0nO1xuaW1wb3J0IHsgZ2V0RGVmYXVsdE1vZGVsSWQgfSBmcm9tICdAaGVzdGlhLWVhcnRoL2dsb3NzYXJ5JztcblxuZXhwb3J0IGNvbnN0IGZpbHRlckJsYW5rTm9kZSA9XG4gIChmaWx0ZXJUZXJtOiBzdHJpbmcpID0+XG4gICh7IHRlcm0gfTogYmxhbmtOb2Rlc1R5cGUpID0+XG4gICAgIWZpbHRlclRlcm0gfHwgdGVybT8ubmFtZT8udG9Mb3dlckNhc2UoKT8uaW5jbHVkZXMoZmlsdGVyVGVybS50b0xvd2VyQ2FzZSgpKTtcblxuZXhwb3J0IGNvbnN0IGlnbm9yZUtleXMgPSBbJ0B0eXBlJywgJ3R5cGUnLCAnYWRkZWQnLCAndXBkYXRlZCcsICdhZGRlZFZlcnNpb24nLCAndXBkYXRlZFZlcnNpb24nXTtcblxuZXhwb3J0IGNvbnN0IGlzVmFsaWRLZXkgPSAoa2V5OiBzdHJpbmcpID0+ICFpZ25vcmVLZXlzLmluY2x1ZGVzKGtleSk7XG5cbmV4cG9ydCBjb25zdCBpc01ldGhvZE1vZGVsQWxsb3dlZCA9IChmaWx0ZXJNZXRob2Q/OiBUZXJtKSA9PiAobm9kZTogSW5kaWNhdG9yKSA9PlxuICBub2RlLm1ldGhvZE1vZGVsPy5bJ0BpZCddID09PSAoZmlsdGVyTWV0aG9kID8gZmlsdGVyTWV0aG9kWydAaWQnXSA6IGdldERlZmF1bHRNb2RlbElkKG5vZGUudGVybT8uWydAaWQnXSkpO1xuXG5leHBvcnQgZW51bSBOb2RlS2V5U3RhdGUge1xuICBhZGRlZCA9ICdhZGRlZCcsXG4gIHVwZGF0ZWQgPSAndXBkYXRlZCcsXG4gIGFnZ3JlZ2F0ZWQgPSAnYWdncmVnYXRlZCcsXG4gIGRlbGV0ZWQgPSAnZGVsZXRlZCcsXG4gIHVuY2hhbmdlZCA9ICd1bmNoYW5nZWQnXG59XG5cbmV4cG9ydCBjb25zdCBpc1N0YXRlID0gKG5vZGU6IGJsYW5rTm9kZXNUeXBlLCBrZXk6IHN0cmluZywgc3RhdGU6IE5vZGVLZXlTdGF0ZSkgPT5cbiAgc3RhdGUgaW4gbm9kZSEgJiYgKHR5cGVvZiBub2RlIVtzdGF0ZV0gPT09ICdib29sZWFuJyA/IG5vZGUhW3N0YXRlXSA6IG5vZGUhW3N0YXRlXS5pbmNsdWRlcyhrZXkpKTtcblxuZXhwb3J0IGludGVyZmFjZSBJR3JvdXBlZE5vZGU8VD4ge1xuICAvLyBzdG9yZSB0aGUgbm9kZSB3aXRoIHRoZSBoaWdoZXN0IFwic3RhdGVcIlxuICBub2RlOiBUO1xuICBub2RlczogVFtdO1xuICBpbmRleDogbnVtYmVyO1xuICB2YWx1ZTogcHJvcGVydHlWYWx1ZVR5cGVbXTtcbiAgZGF0ZXM/OiBhbnlbXTtcbiAgc2Q/OiBudW1iZXJbXTtcbiAgbWluPzogbnVtYmVyW107XG4gIG1heD86IG51bWJlcltdO1xuICBpbnB1dHM/OiBhbnlbXTtcbiAgZGVwdGhVcHBlcj86IG51bWJlcltdO1xuICBkZXB0aExvd2VyPzogbnVtYmVyW107XG4gIHN0YXJ0RGF0ZT86IHN0cmluZ1tdO1xuICBlbmREYXRlPzogc3RyaW5nW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUdyb3VwZWROb2Rlc1ZhbHVlczxUPiB7XG4gIFtub2RlSWQ6IHN0cmluZ106IElHcm91cGVkTm9kZTxUPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJR3JvdXBlZE5vZGVzVmFsdWU8VD4ge1xuICB0ZXJtOiBJVGVybUpTT05MRDtcbiAgbWV0aG9kVGllcj86IEVtaXNzaW9uTWV0aG9kVGllcjtcbiAgLyoqXG4gICAqIEVuYWJsZSBvcmRlcmluZyBueSBtZXRob2RUaWVyXG4gICAqL1xuICBtZXRob2RUaWVyT3JkZXI6IG51bWJlcjtcbiAgdmFsdWVzOiBJR3JvdXBlZE5vZGVzVmFsdWVzPFQ+O1xuICBvcmlnaW5hbFZhbHVlczoge1xuICAgIFtub2RlSWQ6IHN0cmluZ106IHtcbiAgICAgIHZhbHVlOiBwcm9wZXJ0eVZhbHVlVHlwZTtcbiAgICB9O1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElHcm91cGVkTm9kZXM8VD4ge1xuICBbdGVybUlkOiBzdHJpbmddOiBJR3JvdXBlZE5vZGVzVmFsdWU8VD47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUdyb3VwZWRLZXlzPFQ+IHtcbiAga2V5OiBzdHJpbmc7XG4gIHZhbHVlOiBJR3JvdXBlZE5vZGVzVmFsdWU8VD47XG59XG5cbmV4cG9ydCBjb25zdCBncm91cHBlZEtleXMgPSA8VD4odmFsdWVzOiB7IFtrZXk6IHN0cmluZ106IFQgfSk6IHsga2V5OiBzdHJpbmc7IHZhbHVlOiBUIH1bXSA9PlxuICBPYmplY3QuZW50cmllcyh2YWx1ZXMpLm1hcCgoW2tleSwgdmFsdWVdKSA9PiAoeyBrZXksIHZhbHVlIH0pKTtcblxuY29uc3QgY29uY2F0QmxhbmtOb2RlVmFsdWUgPSAodmFsdWU6IGFueSwgbmV3VmFsdWU6IGFueSkgPT4ge1xuICBjb25zdCB2YWx1ZUFycmF5ID0gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZSA6IFt2YWx1ZV07XG4gIGNvbnN0IG5ld1ZhbHVlQXJyYXkgPSBBcnJheS5pc0FycmF5KG5ld1ZhbHVlKSA/IG5ld1ZhbHVlIDogW25ld1ZhbHVlXTtcbiAgcmV0dXJuIFsuLi52YWx1ZUFycmF5LCAuLi5uZXdWYWx1ZUFycmF5XTtcbn07XG5cbmV4cG9ydCBjb25zdCBtZXRob2RUaWVyT3JkZXIgPSAobWV0aG9kVGllcjogRW1pc3Npb25NZXRob2RUaWVyKSA9PlxuICBbXG4gICAgRW1pc3Npb25NZXRob2RUaWVyLm1lYXN1cmVkLFxuICAgIEVtaXNzaW9uTWV0aG9kVGllclsndGllciAzJ10sXG4gICAgRW1pc3Npb25NZXRob2RUaWVyWyd0aWVyIDInXSxcbiAgICBFbWlzc2lvbk1ldGhvZFRpZXJbJ3RpZXIgMSddLFxuICAgIEVtaXNzaW9uTWV0aG9kVGllci5iYWNrZ3JvdW5kLFxuICAgIEVtaXNzaW9uTWV0aG9kVGllclsnbm90IHJlbGV2YW50J11cbiAgXS5pbmRleE9mKG1ldGhvZFRpZXIpO1xuXG5leHBvcnQgY29uc3QgZ3JvdXBwZWRWYWx1ZUtleXMgPSBbXG4gICdkYXRlcycsXG4gICdzZCcsXG4gICdtaW4nLFxuICAnbWF4JyxcbiAgJ2lucHV0cycsXG4gICdkZXB0aFVwcGVyJyxcbiAgJ2RlcHRoTG93ZXInLFxuICAnc3RhcnREYXRlJyxcbiAgJ2VuZERhdGUnLFxuICAnbWV0aG9kVGllcicsXG4gICdtZXRob2RNb2RlbCcsXG4gICdtb2RlbCcsXG4gICdtZXRob2QnXG5dO1xuXG5jb25zdCBpc0hpZ2hlclN0YXRlID0gKHNvdXJjZU5vZGU6IGJsYW5rTm9kZXNUeXBlLCBuZXdOb2RlOiBibGFua05vZGVzVHlwZSkgPT5cbiAgIXNvdXJjZU5vZGUgfHxcbiAgaXNTdGF0ZShuZXdOb2RlLCAndmFsdWUnLCBOb2RlS2V5U3RhdGUudXBkYXRlZCkgfHxcbiAgKCFpc1N0YXRlKHNvdXJjZU5vZGUsICd2YWx1ZScsIE5vZGVLZXlTdGF0ZS51cGRhdGVkKSAmJiBpc1N0YXRlKG5ld05vZGUsICd2YWx1ZScsIE5vZGVLZXlTdGF0ZS5hZGRlZCkpO1xuXG5jb25zdCBncm91cE5vZGVLZXkgPSAoeyB0ZXJtIH06IGFueSkgPT4gdGVybT8ubmFtZSB8fCB0ZXJtPy5bJ0BpZCddO1xuXG5leHBvcnQgY29uc3QgZ3JvdXBOb2Rlc0J5VGVybSA9IDxcbiAgVCBleHRlbmRzIElDeWNsZUpTT05MRCB8IElJbXBhY3RBc3Nlc3NtZW50SlNPTkxEIHwgSVNpdGVKU09OTEQgfCBBbmltYWwgfCBUcmFuc2Zvcm1hdGlvbixcbiAgUlxuPihcbiAgbm9kZXM6IFRbXSA9IFtdLFxuICBrZXk6IGJsYW5rTm9kZXNLZXksXG4gIG9yaWdpbmFsVmFsdWVzOiBUW10gPSBbXSxcbiAgaW5jbHVkZU5vZGUgPSAoX25vZGU6IGFueSkgPT4gdHJ1ZVxuKTogSUdyb3VwZWROb2RlczxSPiA9PiB7XG4gIGNvbnN0IGdyb3VwczogSUdyb3VwZWROb2RlczxSPiA9IG5vZGVzLnJlZHVjZShcbiAgICAocHJldiwgbm9kZSwgaW5kZXgpID0+XG4gICAgICAobm9kZVtrZXldIHx8IFtdKS5yZWR1Y2UoKGdyb3VwLCBibGFua05vZGUpID0+IHtcbiAgICAgICAgLy8gc2tpcCBub2RlIGJhc2VkIG9uIGNvbmRpdGlvblxuICAgICAgICBpZiAoIWluY2x1ZGVOb2RlKGJsYW5rTm9kZSkpIHtcbiAgICAgICAgICByZXR1cm4gZ3JvdXA7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBub2RlSWQgPSBub2RlWydAaWQnXTtcbiAgICAgICAgY29uc3QgZ3JvdXBlZEtleSA9IGdyb3VwTm9kZUtleShibGFua05vZGUpO1xuICAgICAgICBncm91cFtncm91cGVkS2V5XSA9IGdyb3VwW2dyb3VwZWRLZXldIHx8IHtcbiAgICAgICAgICB0ZXJtOiBibGFua05vZGUudGVybSxcbiAgICAgICAgICBtZXRob2RUaWVyOiBibGFua05vZGUubWV0aG9kVGllcixcbiAgICAgICAgICBtZXRob2RUaWVyT3JkZXI6IG1ldGhvZFRpZXJPcmRlcihibGFua05vZGUubWV0aG9kVGllciksXG4gICAgICAgICAgdmFsdWVzOiB7fSxcbiAgICAgICAgICBvcmlnaW5hbFZhbHVlczoge31cbiAgICAgICAgfTtcbiAgICAgICAgZ3JvdXBbZ3JvdXBlZEtleV0udmFsdWVzW25vZGVJZF0gPSBncm91cFtncm91cGVkS2V5XS52YWx1ZXNbbm9kZUlkXSB8fCB7IGluZGV4LCBub2RlczogW10sIHZhbHVlOiBbXSB9O1xuICAgICAgICBncm91cFtncm91cGVkS2V5XS52YWx1ZXNbbm9kZUlkXS5ub2RlID0gaXNIaWdoZXJTdGF0ZShncm91cFtncm91cGVkS2V5XS52YWx1ZXNbbm9kZUlkXS5ub2RlLCBibGFua05vZGUpXG4gICAgICAgICAgPyBibGFua05vZGVcbiAgICAgICAgICA6IGdyb3VwW2dyb3VwZWRLZXldLnZhbHVlc1tub2RlSWRdLm5vZGU7XG4gICAgICAgIGdyb3VwW2dyb3VwZWRLZXldLnZhbHVlc1tub2RlSWRdLm5vZGVzLnB1c2goYmxhbmtOb2RlKTtcbiAgICAgICAgZ3JvdXBbZ3JvdXBlZEtleV0udmFsdWVzW25vZGVJZF0udmFsdWUgPSBjb25jYXRCbGFua05vZGVWYWx1ZShcbiAgICAgICAgICBncm91cFtncm91cGVkS2V5XS52YWx1ZXNbbm9kZUlkXS52YWx1ZSxcbiAgICAgICAgICBibGFua05vZGUudmFsdWVcbiAgICAgICAgKTtcbiAgICAgICAgZ3JvdXBwZWRWYWx1ZUtleXMuZm9yRWFjaChhcnJheUtleSA9PiB7XG4gICAgICAgICAgY29uc3QgbmV3VmFsdWUgPSBnZXQoYmxhbmtOb2RlLCBhcnJheUtleSwgW10pO1xuICAgICAgICAgIGdyb3VwW2dyb3VwZWRLZXldLnZhbHVlc1tub2RlSWRdW2FycmF5S2V5XSA9IFtcbiAgICAgICAgICAgIC4uLihncm91cFtncm91cGVkS2V5XS52YWx1ZXNbbm9kZUlkXVthcnJheUtleV0gfHwgW10pLFxuICAgICAgICAgICAgLi4uKEFycmF5LmlzQXJyYXkobmV3VmFsdWUpID8gbmV3VmFsdWUgOiBbbmV3VmFsdWVdKVxuICAgICAgICAgIF07XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gZ3JvdXA7XG4gICAgICB9LCBwcmV2KSxcbiAgICB7fSBhcyBJR3JvdXBlZE5vZGVzPFI+XG4gICk7XG5cbiAgLy8gY29tcGlsZSBvcmlnaW5hbCB2YWx1ZXNcbiAgT2JqZWN0LnZhbHVlcyhncm91cHMpLm1hcChncm91cCA9PiB7XG4gICAgT2JqZWN0LmtleXMoZ3JvdXAudmFsdWVzKS5tYXAobm9kZUlkID0+IHtcbiAgICAgIGNvbnN0IHsgaW5kZXggfSA9IGdyb3VwLnZhbHVlc1tub2RlSWRdO1xuICAgICAgY29uc3QgdGVybUlkID0gZ3JvdXAudGVybVsnQGlkJ107XG4gICAgICBjb25zdCBvcmlnaW5hbFZhbHVlID0gZ2V0KG9yaWdpbmFsVmFsdWVzLCBgWyR7aW5kZXh9XS4ke2tleX1gLCBbXSkuZmlsdGVyKFxuICAgICAgICAodmFsOiBhbnkpID0+IHZhbC50ZXJtWydAaWQnXSA9PT0gdGVybUlkXG4gICAgICApO1xuICAgICAgaWYgKG9yaWdpbmFsVmFsdWUubGVuZ3RoID4gMCkge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IG9yaWdpbmFsVmFsdWUucmVkdWNlKChhcnJheTogYW55W10sIGN1cnI6IGFueSkgPT4gY29uY2F0QmxhbmtOb2RlVmFsdWUoYXJyYXksIGN1cnIudmFsdWUpLCBbXSk7XG4gICAgICAgIGdyb3VwLm9yaWdpbmFsVmFsdWVzW25vZGVJZF0gPSB7IHZhbHVlOiBwcm9wZXJ0eVZhbHVlKHZhbHVlLCB0ZXJtSWQpIH07XG4gICAgICB9XG4gICAgfSk7XG4gIH0pO1xuXG4gIHJldHVybiBncm91cHM7XG59O1xuIl19
@@ -1,23 +1,28 @@
1
1
  import { ChangeDetectionStrategy, Component, computed, input, output, signal } from '@angular/core';
2
2
  import { NgTemplateOutlet } from '@angular/common';
3
- import { faChevronDown, faChevronUp, faXmark } from '@fortawesome/free-solid-svg-icons';
4
- import { FaIconComponent } from '@fortawesome/angular-fontawesome';
3
+ import { SvgIconComponent } from 'angular-svg-icon';
4
+ import { HeSvgIconsModule } from '../../svg-icons';
5
5
  import * as i0 from "@angular/core";
6
6
  export class ShelfDialogComponent {
7
7
  constructor() {
8
- this.faXmark = faXmark;
9
8
  this.headerTemplate = input();
10
9
  this.title = input();
11
10
  this.bottom = input('0');
12
11
  this.closed = output();
13
12
  this.showContent = signal(true);
14
- this.toggleIcon = computed(() => (this.showContent() ? faChevronDown : faChevronUp));
13
+ this.toggleIcon = computed(() => (this.showContent() ? 'far-chevron-down' : 'far-chevron-up'));
14
+ }
15
+ expand() {
16
+ this.showContent.set(true);
17
+ }
18
+ collapse() {
19
+ this.showContent.set(false);
15
20
  }
16
21
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: ShelfDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
17
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "17.3.8", type: ShelfDialogComponent, isStandalone: true, selector: "he-shelf-dialog", inputs: { headerTemplate: { classPropertyName: "headerTemplate", publicName: "headerTemplate", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, bottom: { classPropertyName: "bottom", publicName: "bottom", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { closed: "closed" }, ngImport: i0, template: "<div [style.bottom]=\"bottom()\" class=\"shelf-dialog | is-fixed\">\n <header class=\"shelf-dialog__header | p-4 is-flex is-rounded has-text-white is-align-items-center\">\n <div class=\"is-flex-grow-1\">\n <ng-container [ngTemplateOutlet]=\"headerTemplate() ?? defaultTemplate\" />\n </div>\n <button (click)=\"showContent.set(!showContent())\" class=\"ml-4 dialog-btn has-text-white\">\n <fa-icon [icon]=\"toggleIcon()\" />\n </button>\n <button (click)=\"closed.emit()\" class=\"ml-4 dialog-btn has-text-white\">\n <fa-icon [icon]=\"faXmark\" />\n </button>\n </header>\n <div [class.max-h-0]=\"!showContent()\" class=\"shelf-dialog__content | has-background-white\">\n <div>\n <div class=\"p-4\">\n <ng-content />\n </div>\n </div>\n </div>\n</div>\n\n<ng-template #defaultTemplate>\n {{ title() }}\n</ng-template>\n", styles: [".shelf-dialog{min-width:360px;right:10%;border-radius:.5em .5em 0 0;overflow:hidden;box-shadow:0 8px 8px #00000026;z-index:9}.shelf-dialog__header{background:#4c7194}.shelf-dialog__content{overflow:hidden;display:grid;grid-template-rows:1fr;transition:grid-template-rows 125ms}.shelf-dialog__content>*{overflow:hidden}.shelf-dialog .dialog-btn{background:transparent;border:none;cursor:pointer}.shelf-dialog .dialog-btn fa-icon{font-size:1.5rem}.max-h-0{grid-template-rows:0fr}@media screen and (max-width: 767px){.shelf-dialog{width:100dvw;right:0;border-radius:0}}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
22
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "17.3.8", type: ShelfDialogComponent, isStandalone: true, selector: "he-shelf-dialog", inputs: { headerTemplate: { classPropertyName: "headerTemplate", publicName: "headerTemplate", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, bottom: { classPropertyName: "bottom", publicName: "bottom", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { closed: "closed" }, ngImport: i0, template: "<div [style.bottom]=\"bottom()\" class=\"shelf-dialog | is-fixed\">\n <header class=\"shelf-dialog__header | p-4 is-flex is-rounded has-text-white is-align-items-center\">\n <div class=\"is-flex-grow-1\">\n <ng-container [ngTemplateOutlet]=\"headerTemplate() ?? defaultTemplate\"/>\n </div>\n <button (click)=\"showContent.set(!showContent())\" class=\"ml-3 dialog-btn has-text-white\">\n <svg-icon class=\"is-size-4\" [name]=\"toggleIcon()\"/>\n </button>\n <button (click)=\"closed.emit()\" class=\"ml-3 dialog-btn has-text-white\">\n <svg-icon class=\"is-size-4\" name=\"far-close\"/>\n </button>\n </header>\n <div [class.max-h-0]=\"!showContent()\" class=\"shelf-dialog__content | has-background-white\">\n <div>\n <div class=\"p-4\">\n <ng-content/>\n </div>\n </div>\n </div>\n</div>\n\n<ng-template #defaultTemplate>\n {{ title() }}\n</ng-template>\n", styles: [".shelf-dialog{min-width:360px;right:10%;border-radius:.5em .5em 0 0;overflow:hidden;box-shadow:0 8px 8px #00000026;z-index:9}.shelf-dialog__header{background:#4c7194}.shelf-dialog__content{overflow:hidden;display:grid;grid-template-rows:1fr;transition:grid-template-rows 125ms}.shelf-dialog__content>*{overflow:hidden}.shelf-dialog .dialog-btn{background:transparent;border:none;cursor:pointer;width:1.5rem;height:1.5rem}.shelf-dialog .dialog-btn fa-icon{font-size:1.5rem}.max-h-0{grid-template-rows:0fr}@media screen and (max-width: 767px){.shelf-dialog{width:100dvw;right:0;border-radius:0}}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: SvgIconComponent, selector: "svg-icon", inputs: ["src", "name", "stretch", "applyClass", "applyCss", "svgClass", "class", "viewBox", "svgAriaLabel", "svgStyle"] }, { kind: "ngmodule", type: HeSvgIconsModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
18
23
  }
19
24
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: ShelfDialogComponent, decorators: [{
20
25
  type: Component,
21
- args: [{ selector: 'he-shelf-dialog', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgTemplateOutlet, FaIconComponent], template: "<div [style.bottom]=\"bottom()\" class=\"shelf-dialog | is-fixed\">\n <header class=\"shelf-dialog__header | p-4 is-flex is-rounded has-text-white is-align-items-center\">\n <div class=\"is-flex-grow-1\">\n <ng-container [ngTemplateOutlet]=\"headerTemplate() ?? defaultTemplate\" />\n </div>\n <button (click)=\"showContent.set(!showContent())\" class=\"ml-4 dialog-btn has-text-white\">\n <fa-icon [icon]=\"toggleIcon()\" />\n </button>\n <button (click)=\"closed.emit()\" class=\"ml-4 dialog-btn has-text-white\">\n <fa-icon [icon]=\"faXmark\" />\n </button>\n </header>\n <div [class.max-h-0]=\"!showContent()\" class=\"shelf-dialog__content | has-background-white\">\n <div>\n <div class=\"p-4\">\n <ng-content />\n </div>\n </div>\n </div>\n</div>\n\n<ng-template #defaultTemplate>\n {{ title() }}\n</ng-template>\n", styles: [".shelf-dialog{min-width:360px;right:10%;border-radius:.5em .5em 0 0;overflow:hidden;box-shadow:0 8px 8px #00000026;z-index:9}.shelf-dialog__header{background:#4c7194}.shelf-dialog__content{overflow:hidden;display:grid;grid-template-rows:1fr;transition:grid-template-rows 125ms}.shelf-dialog__content>*{overflow:hidden}.shelf-dialog .dialog-btn{background:transparent;border:none;cursor:pointer}.shelf-dialog .dialog-btn fa-icon{font-size:1.5rem}.max-h-0{grid-template-rows:0fr}@media screen and (max-width: 767px){.shelf-dialog{width:100dvw;right:0;border-radius:0}}\n"] }]
26
+ args: [{ selector: 'he-shelf-dialog', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgTemplateOutlet, SvgIconComponent, HeSvgIconsModule], template: "<div [style.bottom]=\"bottom()\" class=\"shelf-dialog | is-fixed\">\n <header class=\"shelf-dialog__header | p-4 is-flex is-rounded has-text-white is-align-items-center\">\n <div class=\"is-flex-grow-1\">\n <ng-container [ngTemplateOutlet]=\"headerTemplate() ?? defaultTemplate\"/>\n </div>\n <button (click)=\"showContent.set(!showContent())\" class=\"ml-3 dialog-btn has-text-white\">\n <svg-icon class=\"is-size-4\" [name]=\"toggleIcon()\"/>\n </button>\n <button (click)=\"closed.emit()\" class=\"ml-3 dialog-btn has-text-white\">\n <svg-icon class=\"is-size-4\" name=\"far-close\"/>\n </button>\n </header>\n <div [class.max-h-0]=\"!showContent()\" class=\"shelf-dialog__content | has-background-white\">\n <div>\n <div class=\"p-4\">\n <ng-content/>\n </div>\n </div>\n </div>\n</div>\n\n<ng-template #defaultTemplate>\n {{ title() }}\n</ng-template>\n", styles: [".shelf-dialog{min-width:360px;right:10%;border-radius:.5em .5em 0 0;overflow:hidden;box-shadow:0 8px 8px #00000026;z-index:9}.shelf-dialog__header{background:#4c7194}.shelf-dialog__content{overflow:hidden;display:grid;grid-template-rows:1fr;transition:grid-template-rows 125ms}.shelf-dialog__content>*{overflow:hidden}.shelf-dialog .dialog-btn{background:transparent;border:none;cursor:pointer;width:1.5rem;height:1.5rem}.shelf-dialog .dialog-btn fa-icon{font-size:1.5rem}.max-h-0{grid-template-rows:0fr}@media screen and (max-width: 767px){.shelf-dialog{width:100dvw;right:0;border-radius:0}}\n"] }]
22
27
  }] });
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hlbGYtZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21tb24vc2hlbGYtZGlhbG9nL3NoZWxmLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvY29tbW9uL3NoZWxmLWRpYWxvZy9zaGVsZi1kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQWUsTUFBTSxlQUFlLENBQUM7QUFDakgsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDeEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOztBQVVuRSxNQUFNLE9BQU8sb0JBQW9CO0lBUmpDO1FBU3FCLFlBQU8sR0FBRyxPQUFPLENBQUM7UUFFM0IsbUJBQWMsR0FBRyxLQUFLLEVBQW9CLENBQUM7UUFDM0MsVUFBSyxHQUFHLEtBQUssRUFBVSxDQUFDO1FBQ3hCLFdBQU0sR0FBRyxLQUFLLENBQWtCLEdBQUcsQ0FBQyxDQUFDO1FBRXJDLFdBQU0sR0FBRyxNQUFNLEVBQVEsQ0FBQztRQUV4QixnQkFBVyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMzQixlQUFVLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7S0FDM0Y7OEdBWFksb0JBQW9CO2tHQUFwQixvQkFBb0IsNGZDYmpDLG0zQkF3QkEsa25CRGJZLGdCQUFnQixvSkFBRSxlQUFlOzsyRkFFaEMsb0JBQW9CO2tCQVJoQyxTQUFTOytCQUNFLGlCQUFpQixtQkFHVix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUCxDQUFDLGdCQUFnQixFQUFFLGVBQWUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGNvbXB1dGVkLCBpbnB1dCwgb3V0cHV0LCBzaWduYWwsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IGZhQ2hldnJvbkRvd24sIGZhQ2hldnJvblVwLCBmYVhtYXJrIH0gZnJvbSAnQGZvcnRhd2Vzb21lL2ZyZWUtc29saWQtc3ZnLWljb25zJztcbmltcG9ydCB7IEZhSWNvbkNvbXBvbmVudCB9IGZyb20gJ0Bmb3J0YXdlc29tZS9hbmd1bGFyLWZvbnRhd2Vzb21lJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaGUtc2hlbGYtZGlhbG9nJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NoZWxmLWRpYWxvZy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NoZWxmLWRpYWxvZy5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW05nVGVtcGxhdGVPdXRsZXQsIEZhSWNvbkNvbXBvbmVudF1cbn0pXG5leHBvcnQgY2xhc3MgU2hlbGZEaWFsb2dDb21wb25lbnQge1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZmFYbWFyayA9IGZhWG1hcms7XG5cbiAgcHJvdGVjdGVkIGhlYWRlclRlbXBsYXRlID0gaW5wdXQ8VGVtcGxhdGVSZWY8YW55Pj4oKTtcbiAgcHJvdGVjdGVkIHRpdGxlID0gaW5wdXQ8c3RyaW5nPigpO1xuICBwcm90ZWN0ZWQgYm90dG9tID0gaW5wdXQ8c3RyaW5nIHwgbnVtYmVyPignMCcpO1xuXG4gIHByb3RlY3RlZCBjbG9zZWQgPSBvdXRwdXQ8dm9pZD4oKTtcblxuICBwcm90ZWN0ZWQgc2hvd0NvbnRlbnQgPSBzaWduYWwodHJ1ZSk7XG4gIHByb3RlY3RlZCB0b2dnbGVJY29uID0gY29tcHV0ZWQoKCkgPT4gKHRoaXMuc2hvd0NvbnRlbnQoKSA/IGZhQ2hldnJvbkRvd24gOiBmYUNoZXZyb25VcCkpO1xufVxuIiwiPGRpdiBbc3R5bGUuYm90dG9tXT1cImJvdHRvbSgpXCIgY2xhc3M9XCJzaGVsZi1kaWFsb2cgfCBpcy1maXhlZFwiPlxuICA8aGVhZGVyIGNsYXNzPVwic2hlbGYtZGlhbG9nX19oZWFkZXIgfCBwLTQgaXMtZmxleCBpcy1yb3VuZGVkIGhhcy10ZXh0LXdoaXRlIGlzLWFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgIDxkaXYgY2xhc3M9XCJpcy1mbGV4LWdyb3ctMVwiPlxuICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJoZWFkZXJUZW1wbGF0ZSgpID8/IGRlZmF1bHRUZW1wbGF0ZVwiIC8+XG4gICAgPC9kaXY+XG4gICAgPGJ1dHRvbiAoY2xpY2spPVwic2hvd0NvbnRlbnQuc2V0KCFzaG93Q29udGVudCgpKVwiIGNsYXNzPVwibWwtNCBkaWFsb2ctYnRuIGhhcy10ZXh0LXdoaXRlXCI+XG4gICAgICA8ZmEtaWNvbiBbaWNvbl09XCJ0b2dnbGVJY29uKClcIiAvPlxuICAgIDwvYnV0dG9uPlxuICAgIDxidXR0b24gKGNsaWNrKT1cImNsb3NlZC5lbWl0KClcIiBjbGFzcz1cIm1sLTQgZGlhbG9nLWJ0biBoYXMtdGV4dC13aGl0ZVwiPlxuICAgICAgPGZhLWljb24gW2ljb25dPVwiZmFYbWFya1wiIC8+XG4gICAgPC9idXR0b24+XG4gIDwvaGVhZGVyPlxuICA8ZGl2IFtjbGFzcy5tYXgtaC0wXT1cIiFzaG93Q29udGVudCgpXCIgY2xhc3M9XCJzaGVsZi1kaWFsb2dfX2NvbnRlbnQgfCBoYXMtYmFja2dyb3VuZC13aGl0ZVwiPlxuICAgIDxkaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwicC00XCI+XG4gICAgICAgIDxuZy1jb250ZW50IC8+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNkZWZhdWx0VGVtcGxhdGU+XG4gIHt7IHRpdGxlKCkgfX1cbjwvbmctdGVtcGxhdGU+XG4iXX0=
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hlbGYtZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21tb24vc2hlbGYtZGlhbG9nL3NoZWxmLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvY29tbW9uL3NoZWxmLWRpYWxvZy9zaGVsZi1kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQWUsTUFBTSxlQUFlLENBQUM7QUFDakgsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBVW5ELE1BQU0sT0FBTyxvQkFBb0I7SUFSakM7UUFTcUIsbUJBQWMsR0FBRyxLQUFLLEVBQW9CLENBQUM7UUFFM0MsVUFBSyxHQUFHLEtBQUssRUFBVSxDQUFDO1FBRXhCLFdBQU0sR0FBRyxLQUFLLENBQWtCLEdBQUcsQ0FBQyxDQUFDO1FBRXJDLFdBQU0sR0FBRyxNQUFNLEVBQVEsQ0FBQztRQUV4QixnQkFBVyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUUzQixlQUFVLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO0tBUzlHO0lBUFEsTUFBTTtRQUNYLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFTSxRQUFRO1FBQ2IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUIsQ0FBQzs4R0FuQlUsb0JBQW9CO2tHQUFwQixvQkFBb0IsNGZDYmpDLHk1QkF3QkEsNm9CRGJZLGdCQUFnQixvSkFBRSxnQkFBZ0IsOEtBQUUsZ0JBQWdCOzsyRkFFbkQsb0JBQW9CO2tCQVJoQyxTQUFTOytCQUNFLGlCQUFpQixtQkFHVix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUCxDQUFDLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgY29tcHV0ZWQsIGlucHV0LCBvdXRwdXQsIHNpZ25hbCwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgU3ZnSWNvbkNvbXBvbmVudCB9IGZyb20gJ2FuZ3VsYXItc3ZnLWljb24nO1xuaW1wb3J0IHsgSGVTdmdJY29uc01vZHVsZSB9IGZyb20gJy4uLy4uL3N2Zy1pY29ucyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2hlLXNoZWxmLWRpYWxvZycsXG4gIHRlbXBsYXRlVXJsOiAnLi9zaGVsZi1kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zaGVsZi1kaWFsb2cuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtOZ1RlbXBsYXRlT3V0bGV0LCBTdmdJY29uQ29tcG9uZW50LCBIZVN2Z0ljb25zTW9kdWxlXVxufSlcbmV4cG9ydCBjbGFzcyBTaGVsZkRpYWxvZ0NvbXBvbmVudCB7XG4gIHByb3RlY3RlZCByZWFkb25seSBoZWFkZXJUZW1wbGF0ZSA9IGlucHV0PFRlbXBsYXRlUmVmPGFueT4+KCk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHRpdGxlID0gaW5wdXQ8c3RyaW5nPigpO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBib3R0b20gPSBpbnB1dDxzdHJpbmcgfCBudW1iZXI+KCcwJyk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGNsb3NlZCA9IG91dHB1dDx2b2lkPigpO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBzaG93Q29udGVudCA9IHNpZ25hbCh0cnVlKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgdG9nZ2xlSWNvbiA9IGNvbXB1dGVkKCgpID0+ICh0aGlzLnNob3dDb250ZW50KCkgPyAnZmFyLWNoZXZyb24tZG93bicgOiAnZmFyLWNoZXZyb24tdXAnKSk7XG5cbiAgcHVibGljIGV4cGFuZCgpIHtcbiAgICB0aGlzLnNob3dDb250ZW50LnNldCh0cnVlKTtcbiAgfVxuXG4gIHB1YmxpYyBjb2xsYXBzZSgpIHtcbiAgICB0aGlzLnNob3dDb250ZW50LnNldChmYWxzZSk7XG4gIH1cbn1cbiIsIjxkaXYgW3N0eWxlLmJvdHRvbV09XCJib3R0b20oKVwiIGNsYXNzPVwic2hlbGYtZGlhbG9nIHwgaXMtZml4ZWRcIj5cbiAgPGhlYWRlciBjbGFzcz1cInNoZWxmLWRpYWxvZ19faGVhZGVyIHwgcC00IGlzLWZsZXggaXMtcm91bmRlZCBoYXMtdGV4dC13aGl0ZSBpcy1hbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwiaXMtZmxleC1ncm93LTFcIj5cbiAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiaGVhZGVyVGVtcGxhdGUoKSA/PyBkZWZhdWx0VGVtcGxhdGVcIi8+XG4gICAgPC9kaXY+XG4gICAgPGJ1dHRvbiAoY2xpY2spPVwic2hvd0NvbnRlbnQuc2V0KCFzaG93Q29udGVudCgpKVwiIGNsYXNzPVwibWwtMyBkaWFsb2ctYnRuIGhhcy10ZXh0LXdoaXRlXCI+XG4gICAgICA8c3ZnLWljb24gY2xhc3M9XCJpcy1zaXplLTRcIiBbbmFtZV09XCJ0b2dnbGVJY29uKClcIi8+XG4gICAgPC9idXR0b24+XG4gICAgPGJ1dHRvbiAoY2xpY2spPVwiY2xvc2VkLmVtaXQoKVwiIGNsYXNzPVwibWwtMyBkaWFsb2ctYnRuIGhhcy10ZXh0LXdoaXRlXCI+XG4gICAgICA8c3ZnLWljb24gY2xhc3M9XCJpcy1zaXplLTRcIiBuYW1lPVwiZmFyLWNsb3NlXCIvPlxuICAgIDwvYnV0dG9uPlxuICA8L2hlYWRlcj5cbiAgPGRpdiBbY2xhc3MubWF4LWgtMF09XCIhc2hvd0NvbnRlbnQoKVwiIGNsYXNzPVwic2hlbGYtZGlhbG9nX19jb250ZW50IHwgaGFzLWJhY2tncm91bmQtd2hpdGVcIj5cbiAgICA8ZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cInAtNFwiPlxuICAgICAgICA8bmctY29udGVudC8+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNkZWZhdWx0VGVtcGxhdGU+XG4gIHt7IHRpdGxlKCkgfX1cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -5,10 +5,10 @@ import { FaIconComponent } from '@fortawesome/angular-fontawesome';
5
5
  import { faCalculator, faDownload, faList } from '@fortawesome/free-solid-svg-icons';
6
6
  import { NgbTooltip } from '@ng-bootstrap/ng-bootstrap';
7
7
  import { DataState } from '@hestia-earth/api';
8
- import { NodeType } from '@hestia-earth/schema';
8
+ import { NodeType, NonBlankNodesKey } from '@hestia-earth/schema';
9
9
  import { keyToLabel } from '@hestia-earth/utils';
10
10
  import { HeNodeStoreService } from '../../node/node-store.service';
11
- import { NonBlankNodesKey, isValidKey } from '../../common/node-utils';
11
+ import { isValidKey } from '../../common/node-utils';
12
12
  import { baseUrl, defaultLabel } from '../../common/utils';
13
13
  import { logsKey } from '../cycles.model';
14
14
  import { NodeCsvExportConfirmComponent } from '../../node/node-csv-export-confirm/node-csv-export-confirm.component';
@@ -101,4 +101,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImpor
101
101
  NodeCsvExportConfirmComponent
102
102
  ], template: "<div class=\"columns is-variable is-align-items-center is-2 m-0\">\n <div class=\"column\">\n @if (selectedView() === View.table) {\n <button\n class=\"button is-small is-ghost\"\n (click)=\"showDownload = true\"\n ngbTooltip=\"Download as CSV\"\n [disableTooltip]=\"showDownload\"\n placement=\"bottom\">\n <fa-icon [icon]=\"faDownload\" size=\"lg\"></fa-icon>\n </button>\n }\n </div>\n @if (views()?.length > 1) {\n <div class=\"column is-narrow\">\n <div class=\"field has-addons\">\n @for (view of views(); track view) {\n <div class=\"control\">\n <button\n class=\"button is-small\"\n [class.is-selected]=\"selectedView() === view\"\n (click)=\"selectedView.set(view)\">\n <span class=\"icon is-small\">\n <fa-icon [icon]=\"viewIcon[view]\" aria-hidden=\"true\"></fa-icon>\n </span>\n <span class=\"is-hidden-mobile\">{{ view }}</span>\n </button>\n </div>\n }\n </div>\n </div>\n }\n</div>\n\n@switch (selectedView()) {\n @case (View.table) {\n <div class=\"px-3 pb-3\">\n @if (hasData()) {\n <he-data-table class=\"mb-1 is-small\" [small]=\"true\" maxHeight=\"320\">\n <table class=\"table is-narrow is-striped\">\n <thead>\n <tr class=\"has-text-weight-semibold\">\n <th class=\"width-auto has-border-right\"></th>\n @for (completeness of completenessKeys(); track completeness) {\n <th [attr.title]=\"completeness\">\n <a [href]=\"baseUrl + '/schema/Completeness#' + completeness\" target=\"_blank\">\n {{ keyToLabel(completeness) }}\n </a>\n </th>\n }\n </tr>\n </thead>\n <tbody>\n @for (cycle of cycles(); track trackById(i, cycle); let i = $index) {\n <tr>\n <td class=\"width-auto has-border-right\" [attr.title]=\"defaultLabel(cycle)\">\n <he-node-link [node]=\"cycle\">\n <span>{{ i + 1 }}. {{ defaultLabel(cycle) }}</span>\n </he-node-link>\n </td>\n @for (key of completenessKeys(); track key) {\n <td class=\"is-nowrap\">\n <span>{{ getCompleteness(cycle)[key] ? 'Complete' : 'Incomplete' }}</span>\n <he-blank-node-state\n class=\"ml-1\"\n [dataState]=\"dataState()\"\n [node]=\"getCompleteness(cycle)\"\n [key]=\"key\"></he-blank-node-state>\n </td>\n }\n </tr>\n }\n </tbody>\n </table>\n </he-data-table>\n <he-blank-node-state-notice [dataState]=\"dataState()\" [showAggregated]=\"false\"></he-blank-node-state-notice>\n } @else {\n <div class=\"panel-block\">\n <span>No completeness data</span>\n </div>\n }\n </div>\n }\n @case (View.logs) {\n @if (cycles().length > 1) {\n <div class=\"field has-addons pt-2 px-3\">\n <div class=\"control\">\n <span class=\"button is-small is-static is-secondary\">Select a Cycle</span>\n </div>\n <div class=\"control is-expanded\">\n <div class=\"select is-small is-fullwidth is-secondary\">\n <select (change)=\"selectIndex($event)\">\n @for (value of cycles(); track value; let i = $index) {\n <option [value]=\"i\">{{ i + 1 }}. {{ defaultLabel(value) }}</option>\n }\n </select>\n </div>\n </div>\n </div>\n }\n @if (selectedNode()) {\n <he-node-logs-models\n [node]=\"selectedNode()\"\n [nodeKey]=\"nodeKey\"\n [logsKey]=\"selectedLogsKey()\"\n [originalValues]=\"selectedOriginalValues()\"\n [recalculatedValues]=\"selectedRecalculatedValues()\"></he-node-logs-models>\n }\n }\n}\n\n@if (showDownload) {\n <he-node-csv-export-confirm\n [nodes]=\"cycles()\"\n filename=\"completeness.csv\"\n [isUpload]=\"false\"\n [headerKeys]=\"headerKeys\"\n (closed)=\"showDownload = false\"></he-node-csv-export-confirm>\n}\n" }]
103
103
  }], ctorParameters: () => [] });
104
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3ljbGVzLWNvbXBsZXRlbmVzcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY3ljbGVzL2N5Y2xlcy1jb21wbGV0ZW5lc3MvY3ljbGVzLWNvbXBsZXRlbmVzcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvY3ljbGVzL2N5Y2xlcy1jb21wbGV0ZW5lc3MvY3ljbGVzLWNvbXBsZXRlbmVzcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUcsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDbkUsT0FBTyxFQUFrQixZQUFZLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3JHLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDOUMsT0FBTyxFQUFnQixRQUFRLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFakQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbkUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFVBQVUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDM0QsT0FBTyxFQUFF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QkFDVixlQUFlO3dCQUNmLGtCQUFrQjt3QkFDbEIsaUJBQWlCO3dCQUNqQix1QkFBdUI7d0JBQ3ZCLDZCQUE2Qjt3QkFDN0IsV0FBVzt3QkFDWCx1QkFBdUI7d0JBQ3ZCLDZCQUE2QjtxQkFDOUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBjb21wdXRlZCwgZWZmZWN0LCBpbmplY3QsIGlucHV0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRvU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBGYUljb25Db21wb25lbnQgfSBmcm9tICdAZm9ydGF3ZXNvbWUvYW5ndWxhci1mb250YXdlc29tZSc7XG5pbXBvcnQgeyBJY29uRGVmaW5pdGlvbiwgZmFDYWxjdWxhdG9yLCBmYURvd25sb2FkLCBmYUxpc3QgfSBmcm9tICdAZm9ydGF3ZXNvbWUvZnJlZS1zb2xpZC1zdmctaWNvbnMnO1xuaW1wb3J0IHsgTmdiVG9vbHRpcCB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcbmltcG9ydCB7IERhdGFTdGF0ZSB9IGZyb20gJ0BoZXN0aWEtZWFydGgvYXBpJztcbmltcG9ydCB7IElDeWNsZUpTT05MRCwgTm9kZVR5cGUgfSBmcm9tICdAaGVzdGlhLWVhcnRoL3NjaGVtYSc7XG5pbXBvcnQgeyBrZXlUb0xhYmVsIH0gZnJvbSAnQGhlc3RpYS1lYXJ0aC91dGlscyc7XG5cbmltcG9ydCB7IEhlTm9kZVN0b3JlU2VydmljZSB9IGZyb20gJy4uLy4uL25vZGUvbm9kZS1zdG9yZS5zZXJ2aWNlJztcbmltcG9ydCB7IE5vbkJsYW5rTm9kZXNLZXksIGlzVmFsaWRLZXkgfSBmcm9tICcuLi8uLi9jb21tb24vbm9kZS11dGlscyc7XG5pbXBvcnQgeyBiYXNlVXJsLCBkZWZhdWx0TGFiZWwgfSBmcm9tICcuLi8uLi9jb21tb24vdXRpbHMnO1xuaW1wb3J0IHsgbG9nc0tleSB9IGZyb20gJy4uL2N5Y2xlcy5tb2RlbCc7XG5pbXBvcnQgeyBOb2RlQ3N2RXhwb3J0Q29uZmlybUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL25vZGUvbm9kZS1jc3YtZXhwb3J0LWNvbmZpcm0vbm9kZS1jc3YtZXhwb3J0LWNvbmZpcm0uY29tcG9uZW50JztcbmltcG9ydCB7IE5vZGVMb2dzTW9kZWxzQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbm9kZS9ub2RlLWxvZ3MtbW9kZWxzL25vZGUtbG9ncy1tb2RlbHMuY29tcG9uZW50JztcbmltcG9ydCB7IEJsYW5rTm9kZVN0YXRlTm90aWNlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29tbW9uL2JsYW5rLW5vZGUtc3RhdGUtbm90aWNlL2JsYW5rLW5vZGUtc3RhdGUtbm90aWNlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCbGFua05vZGVTdGF0ZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbW1vbi9ibGFuay1ub2RlLXN0YXRlL2JsYW5rLW5vZGUtc3RhdGUuY29tcG9uZW50JztcbmltcG9ydCB7IE5vZGVMaW5rQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbm9kZS9ub2RlLWxpbmsvbm9kZS1saW5rLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYXRhVGFibGVDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb21tb24vZGF0YS10YWJsZS9kYXRhLXRhYmxlLmNvbXBvbmVudCc7XG5cbmVudW0gVmlldyB7XG4gIHRhYmxlID0gJ1RhYmxlIHZpZXcnLFxuICBsb2dzID0gJ1JlY2FsY3VsYXRpb25zIGxvZ3MnXG59XG5cbmNvbnN0IHZpZXdJY29uOiB7XG4gIFt2aWV3IGluIFZpZXddOiBJY29uRGVmaW5pdGlvbjtcbn0gPSB7XG4gIFtWaWV3LmxvZ3NdOiBmYUNhbGN1bGF0b3IsXG4gIFtWaWV3LnRhYmxlXTogZmFMaXN0XG59O1xuXG5jb25zdCBoZWFkZXJLZXlzID0gWydjeWNsZS5pZCcsICdjeWNsZS5AaWQnLCAnY3ljbGUuY29tcGxldGVuZXNzLiddO1xuXG4vLyBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IHdpdGggc2NoZW1hIHZlcnNpb24gPCAxNFxuY29uc3QgZ2V0Q29tcGxldGVuZXNzID0gKGN5Y2xlOiBhbnkpID0+IGN5Y2xlPy5jb21wbGV0ZW5lc3MgfHwgY3ljbGU/LmRhdGFDb21wbGV0ZW5lc3MgfHwge307XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2hlLWN5Y2xlcy1jb21wbGV0ZW5lc3MnLFxuICB0ZW1wbGF0ZVVybDogJy4vY3ljbGVzLWNvbXBsZXRlbmVzcy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2N5Y2xlcy1jb21wbGV0ZW5lc3MuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBOZ2JUb29sdGlwLFxuICAgIEZhSWNvbkNvbXBvbmVudCxcbiAgICBEYXRhVGFibGVDb21wb25lbnQsXG4gICAgTm9kZUxpbmtDb21wb25lbnQsXG4gICAgQmxhbmtOb2RlU3RhdGVDb21wb25lbnQsXG4gICAgQmxhbmtOb2RlU3RhdGVOb3RpY2VDb21wb25lbnQsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgTm9kZUxvZ3NNb2RlbHNDb21wb25lbnQsXG4gICAgTm9kZUNzdkV4cG9ydENvbmZpcm1Db21wb25lbnRcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBDeWNsZXNDb21wbGV0ZW5lc3NDb21wb25lbnQge1xuICBwcml2YXRlIG5vZGVTdG9yZVNlcnZpY2UgPSBpbmplY3QoSGVOb2RlU3RvcmVTZXJ2aWNlKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZmFEb3dubG9hZCA9IGZhRG93bmxvYWQ7XG5cbiAgcHJvdGVjdGVkIGRhdGFTdGF0ZSA9IGlucHV0KERhdGFTdGF0ZS5vcmlnaW5hbCk7XG5cbiAgcHJvdGVjdGVkIGJhc2VVcmwgPSBiYXNlVXJsKCk7XG4gIHByb3RlY3RlZCBkZWZhdWx0TGFiZWwgPSBkZWZhdWx0TGFiZWw7XG4gIHByb3RlY3RlZCBrZXlUb0xhYmVsID0ga2V5VG9MYWJlbDtcbiAgcHJvdGVjdGVkIGdldENvbXBsZXRlbmVzcyA9IGdldENvbXBsZXRlbmVzcztcbiAgcHJvdGVjdGVkIGhlYWRlcktleXMgPSBoZWFkZXJLZXlzO1xuICBwcm90ZWN0ZWQgc2hvd0Rvd25sb2FkID0gZmFsc2U7XG4gIHByb3RlY3RlZCBub2RlS2V5ID0gTm9uQmxhbmtOb2Rlc0tleS5jb21wbGV0ZW5lc3M7XG5cbiAgcHJvdGVjdGVkIFZpZXcgPSBWaWV3O1xuICBwcm90ZWN0ZWQgdmlld0ljb24gPSB2aWV3SWNvbjtcbiAgcHJpdmF0ZSBzaG93VmlldyA9IGNvbXB1dGVkKFxuICAgICgpID0+XG4gICAgICAoe1xuICAgICAgICBbVmlldy5sb2dzXTogIXRoaXMuaXNPcmlnaW5hbCgpLFxuICAgICAgICBbVmlldy50YWJsZV06IHRydWVcbiAgICAgIH0pIGFzIHsgW3ZpZXcgaW4gVmlld106IGJvb2xlYW4gfVxuICApO1xuICBwcm90ZWN0ZWQgdmlld3MgPSBjb21wdXRlZCgoKSA9PiBPYmplY3QudmFsdWVzKFZpZXcpLmZpbHRlcih2aWV3ID0+IHRoaXMuc2hvd1ZpZXcoKVt2aWV3XSkgPz8gW10pO1xuICBwcm90ZWN0ZWQgc2VsZWN0ZWRWaWV3ID0gc2lnbmFsKFZpZXcudGFibGUpO1xuXG4gIHByaXZhdGUgb3JpZ2luYWxDeWNsZXMgPSB0b1NpZ25hbChcbiAgICB0aGlzLm5vZGVTdG9yZVNlcnZpY2UuZmluZEJ5U3RhdGUkPElDeWNsZUpTT05MRD4oTm9kZVR5cGUuQ3ljbGUsIERhdGFTdGF0ZS5vcmlnaW5hbClcbiAgKTtcbiAgcHJpdmF0ZSBfYWxsQ3ljbGVzID0gdG9TaWduYWwodGhpcy5ub2RlU3RvcmVTZXJ2aWNlLmZpbmQkPElDeWNsZUpTT05MRD4oTm9kZVR5cGUuQ3ljbGUpKTtcbiAgcHJvdGVjdGVkIGN5Y2xlcyA9IGNvbXB1dGVkKCgpID0+IHRoaXMuX2FsbEN5Y2xlcygpPy5tYXAoZGF0YSA9PiBkYXRhW3RoaXMuZGF0YVN0YXRlKCldKSB8fCBbXSk7XG5cbiAgcHJpdmF0ZSBzZWxlY3RlZEluZGV4ID0gc2lnbmFsKDApO1xuICBwcml2YXRlIG9naXJpbmFsU2VsZWN0ZWRDeWNsZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMub3JpZ2luYWxDeWNsZXMoKT8uW3RoaXMuc2VsZWN0ZWRJbmRleCgpXSk7XG4gIHByaXZhdGUgc2VsZWN0ZWRDeWNsZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMuY3ljbGVzKCk/Llt0aGlzLnNlbGVjdGVkSW5kZXgoKV0pO1xuICBwcm90ZWN0ZWQgc2VsZWN0ZWRMb2dzS2V5ID0gY29tcHV0ZWQoKCkgPT4gbG9nc0tleSh0aGlzLnNlbGVjdGVkQ3ljbGUoKSkpO1xuICBwcm90ZWN0ZWQgc2VsZWN0ZWRPcmlnaW5hbFZhbHVlcyA9IGNvbXB1dGVkKCgpID0+IGdldENvbXBsZXRlbmVzcyh0aGlzLm9naXJpbmFsU2VsZWN0ZWRDeWNsZSgpKSk7XG4gIHByb3RlY3RlZCBzZWxlY3RlZFJlY2FsY3VsYXRlZFZhbHVlcyA9IGNvbXB1dGVkKCgpID0+IGdldENvbXBsZXRlbmVzcyh0aGlzLnNlbGVjdGVkQ3ljbGUoKSkpO1xuICBwcm90ZWN0ZWQgc2VsZWN0ZWROb2RlID0gY29tcHV0ZWQoKCkgPT5cbiAgICB0aGlzLnNlbGVjdGVkQ3ljbGUoKVxuICAgICAgPyB7XG4gICAgICAgICAgLi4udGhpcy5zZWxlY3RlZEN5Y2xlKCksXG4gICAgICAgICAgJ0B0eXBlJzogTm9kZVR5cGUuQ3ljbGUsXG4gICAgICAgICAgdHlwZTogTm9kZVR5cGUuQ3ljbGUsXG4gICAgICAgICAgZGF0YVN0YXRlOiBEYXRhU3RhdGUucmVjYWxjdWxhdGVkXG4gICAgICAgIH1cbiAgICAgIDogbnVsbFxuICApO1xuXG4gIHByb3RlY3RlZCBoYXNEYXRhID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5jeWNsZXMoKS5sZW5ndGgpO1xuXG4gIHByb3RlY3RlZCBpc09yaWdpbmFsID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5kYXRhU3RhdGUoKSA9PT0gRGF0YVN0YXRlLm9yaWdpbmFsKTtcblxuICBwcm90ZWN0ZWQgY29tcGxldGVuZXNzS2V5cyA9IGNvbXB1dGVkKCgpID0+XG4gICAgT2JqZWN0LmtleXMoZ2V0Q29tcGxldGVuZXNzKHRoaXMuc2VsZWN0ZWRDeWNsZSgpKSkuZmlsdGVyKGlzVmFsaWRLZXkpLnNvcnQoKVxuICApO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICAvLyBtYWtlIHN1cmUgbG9ncyBkb2VzIG5vdCByZW1haW4gZGlzcGxheWVkIHdoZW4gc3dpdGNoaW5nIGJhY2sgdG8gb3JpZ2luYWwgdmlld1xuICAgICAgaWYgKHRoaXMuaXNPcmlnaW5hbCgpICYmIHRoaXMuc2VsZWN0ZWRWaWV3KCkgPT09IFZpZXcubG9ncykge1xuICAgICAgICB0aGlzLnNlbGVjdGVkVmlldy5zZXQoVmlldy50YWJsZSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgdHJhY2tCeUlkKF9pbmRleDogbnVtYmVyLCBpdGVtOiBJQ3ljbGVKU09OTEQpIHtcbiAgICByZXR1cm4gaXRlbVsnQGlkJ107XG4gIH1cblxuICBwcm90ZWN0ZWQgc2VsZWN0SW5kZXgoeyB0YXJnZXQ6IHsgdmFsdWUgfSB9KSB7XG4gICAgdGhpcy5zZWxlY3RlZEluZGV4LnNldCgrdmFsdWUpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiY29sdW1ucyBpcy12YXJpYWJsZSBpcy1hbGlnbi1pdGVtcy1jZW50ZXIgaXMtMiBtLTBcIj5cbiAgPGRpdiBjbGFzcz1cImNvbHVtblwiPlxuICAgIEBpZiAoc2VsZWN0ZWRWaWV3KCkgPT09IFZpZXcudGFibGUpIHtcbiAgICAgIDxidXR0b25cbiAgICAgICAgY2xhc3M9XCJidXR0b24gaXMtc21hbGwgaXMtZ2hvc3RcIlxuICAgICAgICAoY2xpY2spPVwic2hvd0Rvd25sb2FkID0gdHJ1ZVwiXG4gICAgICAgIG5nYlRvb2x0aXA9XCJEb3dubG9hZCBhcyBDU1ZcIlxuICAgICAgICBbZGlzYWJsZVRvb2x0aXBdPVwic2hvd0Rvd25sb2FkXCJcbiAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tXCI+XG4gICAgICAgIDxmYS1pY29uIFtpY29uXT1cImZhRG93bmxvYWRcIiBzaXplPVwibGdcIj48L2ZhLWljb24+XG4gICAgICA8L2J1dHRvbj5cbiAgICB9XG4gIDwvZGl2PlxuICBAaWYgKHZpZXdzKCk/Lmxlbmd0aCA+IDEpIHtcbiAgICA8ZGl2IGNsYXNzPVwiY29sdW1uIGlzLW5hcnJvd1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGhhcy1hZGRvbnNcIj5cbiAgICAgICAgQGZvciAodmlldyBvZiB2aWV3cygpOyB0cmFjayB2aWV3KSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRyb2xcIj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgY2xhc3M9XCJidXR0b24gaXMtc21hbGxcIlxuICAgICAgICAgICAgICBbY2xhc3MuaXMtc2VsZWN0ZWRdPVwic2VsZWN0ZWRWaWV3KCkgPT09IHZpZXdcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0ZWRWaWV3LnNldCh2aWV3KVwiPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImljb24gaXMtc21hbGxcIj5cbiAgICAgICAgICAgICAgICA8ZmEtaWNvbiBbaWNvbl09XCJ2aWV3SWNvblt2aWV3XVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvZmEtaWNvbj5cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImlzLWhpZGRlbi1tb2JpbGVcIj57eyB2aWV3IH19PC9zcGFuPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICB9XG48L2Rpdj5cblxuQHN3aXRjaCAoc2VsZWN0ZWRWaWV3KCkpIHtcbiAgQGNhc2UgKFZpZXcudGFibGUpIHtcbiAgICA8ZGl2IGNsYXNzPVwicHgtMyBwYi0zXCI+XG4gICAgICBAaWYgKGhhc0RhdGEoKSkge1xuICAgICAgICA8aGUtZGF0YS10YWJsZSBjbGFzcz1cIm1iLTEgaXMtc21hbGxcIiBbc21hbGxdPVwidHJ1ZVwiIG1heEhlaWdodD1cIjMyMFwiPlxuICAgICAgICAgIDx0YWJsZSBjbGFzcz1cInRhYmxlIGlzLW5hcnJvdyBpcy1zdHJpcGVkXCI+XG4gICAgICAgICAgICA8dGhlYWQ+XG4gICAgICAgICAgICAgIDx0ciBjbGFzcz1cImhhcy10ZXh0LXdlaWdodC1zZW1pYm9sZFwiPlxuICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cIndpZHRoLWF1dG8gaGFzLWJvcmRlci1yaWdodFwiPjwvdGg+XG4gICAgICAgICAgICAgICAgQGZvciAoY29tcGxldGVuZXNzIG9mIGNvbXBsZXRlbmVzc0tleXMoKTsgdHJhY2sgY29tcGxldGVuZXNzKSB7XG4gICAgICAgICAgICAgICAgICA8dGggW2F0dHIudGl0bGVdPVwiY29tcGxldGVuZXNzXCI+XG4gICAgICAgICAgICAgICAgICAgIDxhIFtocmVmXT1cImJhc2VVcmwgKyAnL3NjaGVtYS9Db21wbGV0ZW5lc3MjJyArIGNvbXBsZXRlbmVzc1wiIHRhcmdldD1cIl9ibGFua1wiPlxuICAgICAgICAgICAgICAgICAgICAgIHt7IGtleVRvTGFiZWwoY29tcGxldGVuZXNzKSB9fVxuICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICA8L3RoPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgIDwvdGhlYWQ+XG4gICAgICAgICAgICA8dGJvZHk+XG4gICAgICAgICAgICAgIEBmb3IgKGN5Y2xlIG9mIGN5Y2xlcygpOyB0cmFjayB0cmFja0J5SWQoaSwgY3ljbGUpOyBsZXQgaSA9ICRpbmRleCkge1xuICAgICAgICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cIndpZHRoLWF1dG8gaGFzLWJvcmRlci1yaWdodFwiIFthdHRyLnRpdGxlXT1cImRlZmF1bHRMYWJlbChjeWNsZSlcIj5cbiAgICAgICAgICAgICAgICAgICAgPGhlLW5vZGUtbGluayBbbm9kZV09XCJjeWNsZVwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IGkgKyAxIH19LiB7eyBkZWZhdWx0TGFiZWwoY3ljbGUpIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2hlLW5vZGUtbGluaz5cbiAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICBAZm9yIChrZXkgb2YgY29tcGxldGVuZXNzS2V5cygpOyB0cmFjayBrZXkpIHtcbiAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiaXMtbm93cmFwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgZ2V0Q29tcGxldGVuZXNzKGN5Y2xlKVtrZXldID8gJ0NvbXBsZXRlJyA6ICdJbmNvbXBsZXRlJyB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICA8aGUtYmxhbmstbm9kZS1zdGF0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtbC0xXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtkYXRhU3RhdGVdPVwiZGF0YVN0YXRlKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW25vZGVdPVwiZ2V0Q29tcGxldGVuZXNzKGN5Y2xlKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBba2V5XT1cImtleVwiPjwvaGUtYmxhbmstbm9kZS1zdGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L3Rib2R5PlxuICAgICAgICAgIDwvdGFibGU+XG4gICAgICAgIDwvaGUtZGF0YS10YWJsZT5cbiAgICAgICAgPGhlLWJsYW5rLW5vZGUtc3RhdGUtbm90aWNlIFtkYXRhU3RhdGVdPVwiZGF0YVN0YXRlKClcIiBbc2hvd0FnZ3JlZ2F0ZWRdPVwiZmFsc2VcIj48L2hlLWJsYW5rLW5vZGUtc3RhdGUtbm90aWNlPlxuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJwYW5lbC1ibG9ja1wiPlxuICAgICAgICAgIDxzcGFuPk5vIGNvbXBsZXRlbmVzcyBkYXRhPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgfVxuICBAY2FzZSAoVmlldy5sb2dzKSB7XG4gICAgQGlmIChjeWNsZXMoKS5sZW5ndGggPiAxKSB7XG4gICAgICA8ZGl2IGNsYXNzPVwiZmllbGQgaGFzLWFkZG9ucyBwdC0yIHB4LTNcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRyb2xcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImJ1dHRvbiBpcy1zbWFsbCBpcy1zdGF0aWMgaXMtc2Vjb25kYXJ5XCI+U2VsZWN0IGEgQ3ljbGU8L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29udHJvbCBpcy1leHBhbmRlZFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3QgaXMtc21hbGwgaXMtZnVsbHdpZHRoIGlzLXNlY29uZGFyeVwiPlxuICAgICAgICAgICAgPHNlbGVjdCAoY2hhbmdlKT1cInNlbGVjdEluZGV4KCRldmVudClcIj5cbiAgICAgICAgICAgICAgQGZvciAodmFsdWUgb2YgY3ljbGVzKCk7IHRyYWNrIHZhbHVlOyBsZXQgaSA9ICRpbmRleCkge1xuICAgICAgICAgICAgICAgIDxvcHRpb24gW3ZhbHVlXT1cImlcIj57eyBpICsgMSB9fS4ge3sgZGVmYXVsdExhYmVsKHZhbHVlKSB9fTwvb3B0aW9uPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICB9XG4gICAgQGlmIChzZWxlY3RlZE5vZGUoKSkge1xuICAgICAgPGhlLW5vZGUtbG9ncy1tb2RlbHNcbiAgICAgICAgW25vZGVdPVwic2VsZWN0ZWROb2RlKClcIlxuICAgICAgICBbbm9kZUtleV09XCJub2RlS2V5XCJcbiAgICAgICAgW2xvZ3NLZXldPVwic2VsZWN0ZWRMb2dzS2V5KClcIlxuICAgICAgICBbb3JpZ2luYWxWYWx1ZXNdPVwic2VsZWN0ZWRPcmlnaW5hbFZhbHVlcygpXCJcbiAgICAgICAgW3JlY2FsY3VsYXRlZFZhbHVlc109XCJzZWxlY3RlZFJlY2FsY3VsYXRlZFZhbHVlcygpXCI+PC9oZS1ub2RlLWxvZ3MtbW9kZWxzPlxuICAgIH1cbiAgfVxufVxuXG5AaWYgKHNob3dEb3dubG9hZCkge1xuICA8aGUtbm9kZS1jc3YtZXhwb3J0LWNvbmZpcm1cbiAgICBbbm9kZXNdPVwiY3ljbGVzKClcIlxuICAgIGZpbGVuYW1lPVwiY29tcGxldGVuZXNzLmNzdlwiXG4gICAgW2lzVXBsb2FkXT1cImZhbHNlXCJcbiAgICBbaGVhZGVyS2V5c109XCJoZWFkZXJLZXlzXCJcbiAgICAoY2xvc2VkKT1cInNob3dEb3dubG9hZCA9IGZhbHNlXCI+PC9oZS1ub2RlLWNzdi1leHBvcnQtY29uZmlybT5cbn1cbiJdfQ==
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3ljbGVzLWNvbXBsZXRlbmVzcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY3ljbGVzL2N5Y2xlcy1jb21wbGV0ZW5lc3MvY3ljbGVzLWNvbXBsZXRlbmVzcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvY3ljbGVzL2N5Y2xlcy1jb21wbGV0ZW5lc3MvY3ljbGVzLWNvbXBsZXRlbmVzcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUcsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDbkUsT0FBTyxFQUFrQixZQUFZLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3JHLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDOUMsT0FBTyxFQUFnQixRQUFRLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNoRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFakQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbkUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDM0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLHNFQUFzRSxDQUFDO0FBQ3JILE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBQ2pHLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLHdFQUF3RSxDQUFDO0FBQ3ZILE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBQ25HLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDOzs7QUFFbEYsSUFBSyxJQUdKO0FBSEQsV0FBSyxJQUFJO0lBQ1AsNEJBQW9CLENBQUE7SUFDcEIsb0NBQTRCLENBQUE7QUFDOUIsQ0FBQyxFQUhJLElBQUksS0FBSixJQUFJLFFBR1I7QUFFRCxNQUFNLFFBQVEsR0FFVjtJQUNGLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLFlBQVk7SUFDekIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsTUFBTTtDQUNyQixDQUFDO0FBRUYsTUFBTSxVQUFVLEdBQUcsQ0FBQyxVQUFVLEVBQUUsV0FBVyxFQUFFLHFCQUFxQixDQUFDLENBQUM7QUFFcEUsa0RBQWtEO0FBQ2xELE1BQU0sZUFBZSxHQUFHLENBQUMsS0FBVSxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsWUFBWSxJQUFJLEtBQUssRUFBRSxnQkFBZ0IsSUFBSSxFQUFFLENBQUM7QUFvQjdGLE1BQU0sT0FBTywyQkFBMkI7SUEwRHRDO1FBekRRLHFCQUFnQixHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBRW5DLGVBQVUsR0FBRyxVQUFVLENBQUM7UUFFakMsY0FBUyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFdEMsWUFBTyxHQUFHLE9BQU8sRUFBRSxDQUFDO1FBQ3BCLGlCQUFZLEdBQUcsWUFBWSxDQUFDO1FBQzVCLGVBQVUsR0FBRyxVQUFVLENBQUM7UUFDeEIsb0JBQWUsR0FBRyxlQUFlLENBQUM7UUFDbEMsZUFBVSxHQUFHLFVBQVUsQ0FBQztRQUN4QixpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUNyQixZQUFPLEdBQUcsZ0JBQWdCLENBQUMsWUFBWSxDQUFDO1FBRXhDLFNBQUksR0FBRyxJQUFJLENBQUM7UUFDWixhQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3RCLGFBQVEsR0FBRyxRQUFRLENBQ3pCLEdBQUcsRUFBRSxDQUNILENBQUM7WUFDQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDL0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsSUFBSTtTQUNuQixDQUFnQyxDQUNwQyxDQUFDO1FBQ1EsVUFBSyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3hGLGlCQUFZLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVwQyxtQkFBYyxHQUFHLFFBQVEsQ0FDL0IsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFlBQVksQ0FBZSxRQUFRLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FDckYsQ0FBQztRQUNNLGVBQVUsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBZSxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUMvRSxXQUFNLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUV4RixrQkFBYSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMxQiwwQkFBcUIsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN0RixrQkFBYSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3BFLG9CQUFlLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2hFLDJCQUFzQixHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3ZGLCtCQUEwQixHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNuRixpQkFBWSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FDckMsSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUNsQixDQUFDLENBQUM7Z0JBQ0UsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFO2dCQUN2QixPQUFPLEVBQUUsUUFBUSxDQUFDLEtBQUs7Z0JBQ3ZCLElBQUksRUFBRSxRQUFRLENBQUMsS0FBSztnQkFDcEIsU0FBUyxFQUFFLFNBQVMsQ0FBQyxZQUFZO2FBQ2xDO1lBQ0gsQ0FBQyxDQUFDLElBQUksQ0FDVCxDQUFDO1FBRVEsWUFBTyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFL0MsZUFBVSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLEtBQUssU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRXJFLHFCQUFnQixHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FDekMsTUFBTSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQzdFLENBQUM7UUFHQSxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1YsZ0ZBQWdGO1lBQ2hGLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsS0FBSyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQzNELElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNwQyxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRVMsU0FBUyxDQUFDLE1BQWMsRUFBRSxJQUFrQjtRQUNwRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBRVMsV0FBVyxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUU7UUFDekMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQyxDQUFDOzhHQXpFVSwyQkFBMkI7a0dBQTNCLDJCQUEyQixrT0N4RHhDLHcySUF1SEEsMEREMUVJLFVBQVUsMlRBQ1YsZUFBZSxrUEFDZixrQkFBa0IsdUdBQ2xCLGlCQUFpQiw0R0FDakIsdUJBQXVCLG1KQUN2Qiw2QkFBNkIsOEhBQzdCLFdBQVcsNE9BQ1gsdUJBQXVCLHFOQUN2Qiw2QkFBNkI7OzJGQUdwQiwyQkFBMkI7a0JBbEJ2QyxTQUFTOytCQUNFLHdCQUF3QixtQkFHakIsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1A7d0JBQ1AsVUFBVTt3QkFDVixlQUFlO3dCQUNmLGtCQUFrQjt3QkFDbEIsaUJBQWlCO3dCQUNqQix1QkFBdUI7d0JBQ3ZCLDZCQUE2Qjt3QkFDN0IsV0FBVzt3QkFDWCx1QkFBdUI7d0JBQ3ZCLDZCQUE2QjtxQkFDOUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBjb21wdXRlZCwgZWZmZWN0LCBpbmplY3QsIGlucHV0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRvU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBGYUljb25Db21wb25lbnQgfSBmcm9tICdAZm9ydGF3ZXNvbWUvYW5ndWxhci1mb250YXdlc29tZSc7XG5pbXBvcnQgeyBJY29uRGVmaW5pdGlvbiwgZmFDYWxjdWxhdG9yLCBmYURvd25sb2FkLCBmYUxpc3QgfSBmcm9tICdAZm9ydGF3ZXNvbWUvZnJlZS1zb2xpZC1zdmctaWNvbnMnO1xuaW1wb3J0IHsgTmdiVG9vbHRpcCB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcbmltcG9ydCB7IERhdGFTdGF0ZSB9IGZyb20gJ0BoZXN0aWEtZWFydGgvYXBpJztcbmltcG9ydCB7IElDeWNsZUpTT05MRCwgTm9kZVR5cGUsIE5vbkJsYW5rTm9kZXNLZXkgfSBmcm9tICdAaGVzdGlhLWVhcnRoL3NjaGVtYSc7XG5pbXBvcnQgeyBrZXlUb0xhYmVsIH0gZnJvbSAnQGhlc3RpYS1lYXJ0aC91dGlscyc7XG5cbmltcG9ydCB7IEhlTm9kZVN0b3JlU2VydmljZSB9IGZyb20gJy4uLy4uL25vZGUvbm9kZS1zdG9yZS5zZXJ2aWNlJztcbmltcG9ydCB7IGlzVmFsaWRLZXkgfSBmcm9tICcuLi8uLi9jb21tb24vbm9kZS11dGlscyc7XG5pbXBvcnQgeyBiYXNlVXJsLCBkZWZhdWx0TGFiZWwgfSBmcm9tICcuLi8uLi9jb21tb24vdXRpbHMnO1xuaW1wb3J0IHsgbG9nc0tleSB9IGZyb20gJy4uL2N5Y2xlcy5tb2RlbCc7XG5pbXBvcnQgeyBOb2RlQ3N2RXhwb3J0Q29uZmlybUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL25vZGUvbm9kZS1jc3YtZXhwb3J0LWNvbmZpcm0vbm9kZS1jc3YtZXhwb3J0LWNvbmZpcm0uY29tcG9uZW50JztcbmltcG9ydCB7IE5vZGVMb2dzTW9kZWxzQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbm9kZS9ub2RlLWxvZ3MtbW9kZWxzL25vZGUtbG9ncy1tb2RlbHMuY29tcG9uZW50JztcbmltcG9ydCB7IEJsYW5rTm9kZVN0YXRlTm90aWNlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29tbW9uL2JsYW5rLW5vZGUtc3RhdGUtbm90aWNlL2JsYW5rLW5vZGUtc3RhdGUtbm90aWNlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCbGFua05vZGVTdGF0ZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbW1vbi9ibGFuay1ub2RlLXN0YXRlL2JsYW5rLW5vZGUtc3RhdGUuY29tcG9uZW50JztcbmltcG9ydCB7IE5vZGVMaW5rQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbm9kZS9ub2RlLWxpbmsvbm9kZS1saW5rLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYXRhVGFibGVDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb21tb24vZGF0YS10YWJsZS9kYXRhLXRhYmxlLmNvbXBvbmVudCc7XG5cbmVudW0gVmlldyB7XG4gIHRhYmxlID0gJ1RhYmxlIHZpZXcnLFxuICBsb2dzID0gJ1JlY2FsY3VsYXRpb25zIGxvZ3MnXG59XG5cbmNvbnN0IHZpZXdJY29uOiB7XG4gIFt2aWV3IGluIFZpZXddOiBJY29uRGVmaW5pdGlvbjtcbn0gPSB7XG4gIFtWaWV3LmxvZ3NdOiBmYUNhbGN1bGF0b3IsXG4gIFtWaWV3LnRhYmxlXTogZmFMaXN0XG59O1xuXG5jb25zdCBoZWFkZXJLZXlzID0gWydjeWNsZS5pZCcsICdjeWNsZS5AaWQnLCAnY3ljbGUuY29tcGxldGVuZXNzLiddO1xuXG4vLyBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IHdpdGggc2NoZW1hIHZlcnNpb24gPCAxNFxuY29uc3QgZ2V0Q29tcGxldGVuZXNzID0gKGN5Y2xlOiBhbnkpID0+IGN5Y2xlPy5jb21wbGV0ZW5lc3MgfHwgY3ljbGU/LmRhdGFDb21wbGV0ZW5lc3MgfHwge307XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2hlLWN5Y2xlcy1jb21wbGV0ZW5lc3MnLFxuICB0ZW1wbGF0ZVVybDogJy4vY3ljbGVzLWNvbXBsZXRlbmVzcy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2N5Y2xlcy1jb21wbGV0ZW5lc3MuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBOZ2JUb29sdGlwLFxuICAgIEZhSWNvbkNvbXBvbmVudCxcbiAgICBEYXRhVGFibGVDb21wb25lbnQsXG4gICAgTm9kZUxpbmtDb21wb25lbnQsXG4gICAgQmxhbmtOb2RlU3RhdGVDb21wb25lbnQsXG4gICAgQmxhbmtOb2RlU3RhdGVOb3RpY2VDb21wb25lbnQsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgTm9kZUxvZ3NNb2RlbHNDb21wb25lbnQsXG4gICAgTm9kZUNzdkV4cG9ydENvbmZpcm1Db21wb25lbnRcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBDeWNsZXNDb21wbGV0ZW5lc3NDb21wb25lbnQge1xuICBwcml2YXRlIG5vZGVTdG9yZVNlcnZpY2UgPSBpbmplY3QoSGVOb2RlU3RvcmVTZXJ2aWNlKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZmFEb3dubG9hZCA9IGZhRG93bmxvYWQ7XG5cbiAgcHJvdGVjdGVkIGRhdGFTdGF0ZSA9IGlucHV0KERhdGFTdGF0ZS5vcmlnaW5hbCk7XG5cbiAgcHJvdGVjdGVkIGJhc2VVcmwgPSBiYXNlVXJsKCk7XG4gIHByb3RlY3RlZCBkZWZhdWx0TGFiZWwgPSBkZWZhdWx0TGFiZWw7XG4gIHByb3RlY3RlZCBrZXlUb0xhYmVsID0ga2V5VG9MYWJlbDtcbiAgcHJvdGVjdGVkIGdldENvbXBsZXRlbmVzcyA9IGdldENvbXBsZXRlbmVzcztcbiAgcHJvdGVjdGVkIGhlYWRlcktleXMgPSBoZWFkZXJLZXlzO1xuICBwcm90ZWN0ZWQgc2hvd0Rvd25sb2FkID0gZmFsc2U7XG4gIHByb3RlY3RlZCBub2RlS2V5ID0gTm9uQmxhbmtOb2Rlc0tleS5jb21wbGV0ZW5lc3M7XG5cbiAgcHJvdGVjdGVkIFZpZXcgPSBWaWV3O1xuICBwcm90ZWN0ZWQgdmlld0ljb24gPSB2aWV3SWNvbjtcbiAgcHJpdmF0ZSBzaG93VmlldyA9IGNvbXB1dGVkKFxuICAgICgpID0+XG4gICAgICAoe1xuICAgICAgICBbVmlldy5sb2dzXTogIXRoaXMuaXNPcmlnaW5hbCgpLFxuICAgICAgICBbVmlldy50YWJsZV06IHRydWVcbiAgICAgIH0pIGFzIHsgW3ZpZXcgaW4gVmlld106IGJvb2xlYW4gfVxuICApO1xuICBwcm90ZWN0ZWQgdmlld3MgPSBjb21wdXRlZCgoKSA9PiBPYmplY3QudmFsdWVzKFZpZXcpLmZpbHRlcih2aWV3ID0+IHRoaXMuc2hvd1ZpZXcoKVt2aWV3XSkgPz8gW10pO1xuICBwcm90ZWN0ZWQgc2VsZWN0ZWRWaWV3ID0gc2lnbmFsKFZpZXcudGFibGUpO1xuXG4gIHByaXZhdGUgb3JpZ2luYWxDeWNsZXMgPSB0b1NpZ25hbChcbiAgICB0aGlzLm5vZGVTdG9yZVNlcnZpY2UuZmluZEJ5U3RhdGUkPElDeWNsZUpTT05MRD4oTm9kZVR5cGUuQ3ljbGUsIERhdGFTdGF0ZS5vcmlnaW5hbClcbiAgKTtcbiAgcHJpdmF0ZSBfYWxsQ3ljbGVzID0gdG9TaWduYWwodGhpcy5ub2RlU3RvcmVTZXJ2aWNlLmZpbmQkPElDeWNsZUpTT05MRD4oTm9kZVR5cGUuQ3ljbGUpKTtcbiAgcHJvdGVjdGVkIGN5Y2xlcyA9IGNvbXB1dGVkKCgpID0+IHRoaXMuX2FsbEN5Y2xlcygpPy5tYXAoZGF0YSA9PiBkYXRhW3RoaXMuZGF0YVN0YXRlKCldKSB8fCBbXSk7XG5cbiAgcHJpdmF0ZSBzZWxlY3RlZEluZGV4ID0gc2lnbmFsKDApO1xuICBwcml2YXRlIG9naXJpbmFsU2VsZWN0ZWRDeWNsZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMub3JpZ2luYWxDeWNsZXMoKT8uW3RoaXMuc2VsZWN0ZWRJbmRleCgpXSk7XG4gIHByaXZhdGUgc2VsZWN0ZWRDeWNsZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMuY3ljbGVzKCk/Llt0aGlzLnNlbGVjdGVkSW5kZXgoKV0pO1xuICBwcm90ZWN0ZWQgc2VsZWN0ZWRMb2dzS2V5ID0gY29tcHV0ZWQoKCkgPT4gbG9nc0tleSh0aGlzLnNlbGVjdGVkQ3ljbGUoKSkpO1xuICBwcm90ZWN0ZWQgc2VsZWN0ZWRPcmlnaW5hbFZhbHVlcyA9IGNvbXB1dGVkKCgpID0+IGdldENvbXBsZXRlbmVzcyh0aGlzLm9naXJpbmFsU2VsZWN0ZWRDeWNsZSgpKSk7XG4gIHByb3RlY3RlZCBzZWxlY3RlZFJlY2FsY3VsYXRlZFZhbHVlcyA9IGNvbXB1dGVkKCgpID0+IGdldENvbXBsZXRlbmVzcyh0aGlzLnNlbGVjdGVkQ3ljbGUoKSkpO1xuICBwcm90ZWN0ZWQgc2VsZWN0ZWROb2RlID0gY29tcHV0ZWQoKCkgPT5cbiAgICB0aGlzLnNlbGVjdGVkQ3ljbGUoKVxuICAgICAgPyB7XG4gICAgICAgICAgLi4udGhpcy5zZWxlY3RlZEN5Y2xlKCksXG4gICAgICAgICAgJ0B0eXBlJzogTm9kZVR5cGUuQ3ljbGUsXG4gICAgICAgICAgdHlwZTogTm9kZVR5cGUuQ3ljbGUsXG4gICAgICAgICAgZGF0YVN0YXRlOiBEYXRhU3RhdGUucmVjYWxjdWxhdGVkXG4gICAgICAgIH1cbiAgICAgIDogbnVsbFxuICApO1xuXG4gIHByb3RlY3RlZCBoYXNEYXRhID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5jeWNsZXMoKS5sZW5ndGgpO1xuXG4gIHByb3RlY3RlZCBpc09yaWdpbmFsID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5kYXRhU3RhdGUoKSA9PT0gRGF0YVN0YXRlLm9yaWdpbmFsKTtcblxuICBwcm90ZWN0ZWQgY29tcGxldGVuZXNzS2V5cyA9IGNvbXB1dGVkKCgpID0+XG4gICAgT2JqZWN0LmtleXMoZ2V0Q29tcGxldGVuZXNzKHRoaXMuc2VsZWN0ZWRDeWNsZSgpKSkuZmlsdGVyKGlzVmFsaWRLZXkpLnNvcnQoKVxuICApO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICAvLyBtYWtlIHN1cmUgbG9ncyBkb2VzIG5vdCByZW1haW4gZGlzcGxheWVkIHdoZW4gc3dpdGNoaW5nIGJhY2sgdG8gb3JpZ2luYWwgdmlld1xuICAgICAgaWYgKHRoaXMuaXNPcmlnaW5hbCgpICYmIHRoaXMuc2VsZWN0ZWRWaWV3KCkgPT09IFZpZXcubG9ncykge1xuICAgICAgICB0aGlzLnNlbGVjdGVkVmlldy5zZXQoVmlldy50YWJsZSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgdHJhY2tCeUlkKF9pbmRleDogbnVtYmVyLCBpdGVtOiBJQ3ljbGVKU09OTEQpIHtcbiAgICByZXR1cm4gaXRlbVsnQGlkJ107XG4gIH1cblxuICBwcm90ZWN0ZWQgc2VsZWN0SW5kZXgoeyB0YXJnZXQ6IHsgdmFsdWUgfSB9KSB7XG4gICAgdGhpcy5zZWxlY3RlZEluZGV4LnNldCgrdmFsdWUpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiY29sdW1ucyBpcy12YXJpYWJsZSBpcy1hbGlnbi1pdGVtcy1jZW50ZXIgaXMtMiBtLTBcIj5cbiAgPGRpdiBjbGFzcz1cImNvbHVtblwiPlxuICAgIEBpZiAoc2VsZWN0ZWRWaWV3KCkgPT09IFZpZXcudGFibGUpIHtcbiAgICAgIDxidXR0b25cbiAgICAgICAgY2xhc3M9XCJidXR0b24gaXMtc21hbGwgaXMtZ2hvc3RcIlxuICAgICAgICAoY2xpY2spPVwic2hvd0Rvd25sb2FkID0gdHJ1ZVwiXG4gICAgICAgIG5nYlRvb2x0aXA9XCJEb3dubG9hZCBhcyBDU1ZcIlxuICAgICAgICBbZGlzYWJsZVRvb2x0aXBdPVwic2hvd0Rvd25sb2FkXCJcbiAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tXCI+XG4gICAgICAgIDxmYS1pY29uIFtpY29uXT1cImZhRG93bmxvYWRcIiBzaXplPVwibGdcIj48L2ZhLWljb24+XG4gICAgICA8L2J1dHRvbj5cbiAgICB9XG4gIDwvZGl2PlxuICBAaWYgKHZpZXdzKCk/Lmxlbmd0aCA+IDEpIHtcbiAgICA8ZGl2IGNsYXNzPVwiY29sdW1uIGlzLW5hcnJvd1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGhhcy1hZGRvbnNcIj5cbiAgICAgICAgQGZvciAodmlldyBvZiB2aWV3cygpOyB0cmFjayB2aWV3KSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRyb2xcIj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgY2xhc3M9XCJidXR0b24gaXMtc21hbGxcIlxuICAgICAgICAgICAgICBbY2xhc3MuaXMtc2VsZWN0ZWRdPVwic2VsZWN0ZWRWaWV3KCkgPT09IHZpZXdcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0ZWRWaWV3LnNldCh2aWV3KVwiPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImljb24gaXMtc21hbGxcIj5cbiAgICAgICAgICAgICAgICA8ZmEtaWNvbiBbaWNvbl09XCJ2aWV3SWNvblt2aWV3XVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvZmEtaWNvbj5cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImlzLWhpZGRlbi1tb2JpbGVcIj57eyB2aWV3IH19PC9zcGFuPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICB9XG48L2Rpdj5cblxuQHN3aXRjaCAoc2VsZWN0ZWRWaWV3KCkpIHtcbiAgQGNhc2UgKFZpZXcudGFibGUpIHtcbiAgICA8ZGl2IGNsYXNzPVwicHgtMyBwYi0zXCI+XG4gICAgICBAaWYgKGhhc0RhdGEoKSkge1xuICAgICAgICA8aGUtZGF0YS10YWJsZSBjbGFzcz1cIm1iLTEgaXMtc21hbGxcIiBbc21hbGxdPVwidHJ1ZVwiIG1heEhlaWdodD1cIjMyMFwiPlxuICAgICAgICAgIDx0YWJsZSBjbGFzcz1cInRhYmxlIGlzLW5hcnJvdyBpcy1zdHJpcGVkXCI+XG4gICAgICAgICAgICA8dGhlYWQ+XG4gICAgICAgICAgICAgIDx0ciBjbGFzcz1cImhhcy10ZXh0LXdlaWdodC1zZW1pYm9sZFwiPlxuICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cIndpZHRoLWF1dG8gaGFzLWJvcmRlci1yaWdodFwiPjwvdGg+XG4gICAgICAgICAgICAgICAgQGZvciAoY29tcGxldGVuZXNzIG9mIGNvbXBsZXRlbmVzc0tleXMoKTsgdHJhY2sgY29tcGxldGVuZXNzKSB7XG4gICAgICAgICAgICAgICAgICA8dGggW2F0dHIudGl0bGVdPVwiY29tcGxldGVuZXNzXCI+XG4gICAgICAgICAgICAgICAgICAgIDxhIFtocmVmXT1cImJhc2VVcmwgKyAnL3NjaGVtYS9Db21wbGV0ZW5lc3MjJyArIGNvbXBsZXRlbmVzc1wiIHRhcmdldD1cIl9ibGFua1wiPlxuICAgICAgICAgICAgICAgICAgICAgIHt7IGtleVRvTGFiZWwoY29tcGxldGVuZXNzKSB9fVxuICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICA8L3RoPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgIDwvdGhlYWQ+XG4gICAgICAgICAgICA8dGJvZHk+XG4gICAgICAgICAgICAgIEBmb3IgKGN5Y2xlIG9mIGN5Y2xlcygpOyB0cmFjayB0cmFja0J5SWQoaSwgY3ljbGUpOyBsZXQgaSA9ICRpbmRleCkge1xuICAgICAgICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cIndpZHRoLWF1dG8gaGFzLWJvcmRlci1yaWdodFwiIFthdHRyLnRpdGxlXT1cImRlZmF1bHRMYWJlbChjeWNsZSlcIj5cbiAgICAgICAgICAgICAgICAgICAgPGhlLW5vZGUtbGluayBbbm9kZV09XCJjeWNsZVwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IGkgKyAxIH19LiB7eyBkZWZhdWx0TGFiZWwoY3ljbGUpIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2hlLW5vZGUtbGluaz5cbiAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICBAZm9yIChrZXkgb2YgY29tcGxldGVuZXNzS2V5cygpOyB0cmFjayBrZXkpIHtcbiAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiaXMtbm93cmFwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgZ2V0Q29tcGxldGVuZXNzKGN5Y2xlKVtrZXldID8gJ0NvbXBsZXRlJyA6ICdJbmNvbXBsZXRlJyB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICA8aGUtYmxhbmstbm9kZS1zdGF0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtbC0xXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtkYXRhU3RhdGVdPVwiZGF0YVN0YXRlKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW25vZGVdPVwiZ2V0Q29tcGxldGVuZXNzKGN5Y2xlKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBba2V5XT1cImtleVwiPjwvaGUtYmxhbmstbm9kZS1zdGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L3Rib2R5PlxuICAgICAgICAgIDwvdGFibGU+XG4gICAgICAgIDwvaGUtZGF0YS10YWJsZT5cbiAgICAgICAgPGhlLWJsYW5rLW5vZGUtc3RhdGUtbm90aWNlIFtkYXRhU3RhdGVdPVwiZGF0YVN0YXRlKClcIiBbc2hvd0FnZ3JlZ2F0ZWRdPVwiZmFsc2VcIj48L2hlLWJsYW5rLW5vZGUtc3RhdGUtbm90aWNlPlxuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJwYW5lbC1ibG9ja1wiPlxuICAgICAgICAgIDxzcGFuPk5vIGNvbXBsZXRlbmVzcyBkYXRhPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgfVxuICBAY2FzZSAoVmlldy5sb2dzKSB7XG4gICAgQGlmIChjeWNsZXMoKS5sZW5ndGggPiAxKSB7XG4gICAgICA8ZGl2IGNsYXNzPVwiZmllbGQgaGFzLWFkZG9ucyBwdC0yIHB4LTNcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRyb2xcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImJ1dHRvbiBpcy1zbWFsbCBpcy1zdGF0aWMgaXMtc2Vjb25kYXJ5XCI+U2VsZWN0IGEgQ3ljbGU8L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29udHJvbCBpcy1leHBhbmRlZFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3QgaXMtc21hbGwgaXMtZnVsbHdpZHRoIGlzLXNlY29uZGFyeVwiPlxuICAgICAgICAgICAgPHNlbGVjdCAoY2hhbmdlKT1cInNlbGVjdEluZGV4KCRldmVudClcIj5cbiAgICAgICAgICAgICAgQGZvciAodmFsdWUgb2YgY3ljbGVzKCk7IHRyYWNrIHZhbHVlOyBsZXQgaSA9ICRpbmRleCkge1xuICAgICAgICAgICAgICAgIDxvcHRpb24gW3ZhbHVlXT1cImlcIj57eyBpICsgMSB9fS4ge3sgZGVmYXVsdExhYmVsKHZhbHVlKSB9fTwvb3B0aW9uPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICB9XG4gICAgQGlmIChzZWxlY3RlZE5vZGUoKSkge1xuICAgICAgPGhlLW5vZGUtbG9ncy1tb2RlbHNcbiAgICAgICAgW25vZGVdPVwic2VsZWN0ZWROb2RlKClcIlxuICAgICAgICBbbm9kZUtleV09XCJub2RlS2V5XCJcbiAgICAgICAgW2xvZ3NLZXldPVwic2VsZWN0ZWRMb2dzS2V5KClcIlxuICAgICAgICBbb3JpZ2luYWxWYWx1ZXNdPVwic2VsZWN0ZWRPcmlnaW5hbFZhbHVlcygpXCJcbiAgICAgICAgW3JlY2FsY3VsYXRlZFZhbHVlc109XCJzZWxlY3RlZFJlY2FsY3VsYXRlZFZhbHVlcygpXCI+PC9oZS1ub2RlLWxvZ3MtbW9kZWxzPlxuICAgIH1cbiAgfVxufVxuXG5AaWYgKHNob3dEb3dubG9hZCkge1xuICA8aGUtbm9kZS1jc3YtZXhwb3J0LWNvbmZpcm1cbiAgICBbbm9kZXNdPVwiY3ljbGVzKClcIlxuICAgIGZpbGVuYW1lPVwiY29tcGxldGVuZXNzLmNzdlwiXG4gICAgW2lzVXBsb2FkXT1cImZhbHNlXCJcbiAgICBbaGVhZGVyS2V5c109XCJoZWFkZXJLZXlzXCJcbiAgICAoY2xvc2VkKT1cInNob3dEb3dubG9hZCA9IGZhbHNlXCI+PC9oZS1ub2RlLWNzdi1leHBvcnQtY29uZmlybT5cbn1cbiJdfQ==