@provoly/dashboard 0.13.11 → 0.13.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/admin/components/admin-classes/admin-classes-customize/admin-classes-customize.component.d.ts +0 -2
- package/admin/components/admin-classes/admin-classes-customize/tooltip/admin-classes-customize-tooltip.component.d.ts +0 -1
- package/admin/components/admin-classes/admin-classes-select/admin-classes-select.component.d.ts +0 -3
- package/admin/components/admin-classes/admin-classes-view/admin-attributes-select/admin-attributes-select.component.d.ts +0 -2
- package/admin/components/admin-dataset/admin-select-dataset/admin-select-dataset.component.d.ts +0 -3
- package/admin/components/admin-environment/admin-environment-select/admin-environment-select.component.d.ts +0 -3
- package/admin/components/admin-fields/admin-fields-select/admin-fields-select.component.d.ts +0 -3
- package/admin/components/admin-metadata/admin-select-metadata/admin-select-metadata.component.d.ts +0 -2
- package/admin/components/admin-metadata-rules/admin-select-metadata-rules/admin-select-metadata-rules.component.d.ts +0 -2
- package/admin/components/admin-metadata-user/admin-user-select-metadata/admin-user-select-metadata.component.d.ts +0 -2
- package/admin/components/admin-predicates/admin-predicates-select/admin-predicates-select.component.d.ts +0 -2
- package/admin/components/admin-relation-types/admin-relation-types-select/admin-relation-types-select.component.d.ts +0 -2
- package/admin/components/association/association.component.d.ts +1 -1
- package/dataset/style/_o-pry-dataset-detail.scss +17 -7
- package/dataset/style/_o-pry-dataset.scss +8 -6
- package/esm2022/admin/components/admin-classes/admin-classes-customize/admin-classes-customize.component.mjs +7 -9
- package/esm2022/admin/components/admin-classes/admin-classes-customize/symbol/admin-classes-customize-symbol.component.mjs +3 -3
- package/esm2022/admin/components/admin-classes/admin-classes-customize/tooltip/admin-classes-customize-tooltip.component.mjs +3 -4
- package/esm2022/admin/components/admin-classes/admin-classes-select/admin-classes-select.component.mjs +3 -9
- package/esm2022/admin/components/admin-classes/admin-classes-view/admin-attributes-select/admin-attributes-select.component.mjs +4 -9
- package/esm2022/admin/components/admin-dataset/admin-select-dataset/admin-select-dataset.component.mjs +3 -9
- package/esm2022/admin/components/admin-environment/admin-environment-select/admin-environment-select.component.mjs +3 -9
- package/esm2022/admin/components/admin-fields/admin-fields-select/admin-fields-select.component.mjs +3 -9
- package/esm2022/admin/components/admin-metadata/admin-select-metadata/admin-select-metadata.component.mjs +3 -6
- package/esm2022/admin/components/admin-metadata-rules/admin-select-metadata-rules/admin-select-metadata-rules.component.mjs +3 -6
- package/esm2022/admin/components/admin-metadata-user/admin-user-select-metadata/admin-user-select-metadata.component.mjs +3 -6
- package/esm2022/admin/components/admin-predicates/admin-predicates-select/admin-predicates-select.component.mjs +3 -6
- package/esm2022/admin/components/admin-relation-types/admin-relation-types-select/admin-relation-types-select.component.mjs +3 -6
- package/esm2022/admin/components/admin-user/admin-user-select/admin-user-select.component.mjs +3 -3
- package/esm2022/admin/components/association/association.component.mjs +1 -1
- package/esm2022/components/metadata-editor/metadata-editor.component.mjs +4 -4
- package/esm2022/dataset/components/dataset-detail/dataset-detail.component.mjs +6 -5
- package/esm2022/dataset/style/css.component.mjs +2 -2
- package/esm2022/lib/core/components/base-toolbox/base-toolbox.component.mjs +3 -3
- package/esm2022/lib/core/components/tabs/tab-group.component.mjs +36 -0
- package/esm2022/lib/core/components/tabs/tab.component.mjs +23 -0
- package/esm2022/lib/core/core.module.mjs +27 -33
- package/esm2022/lib/core/public-api.mjs +7 -5
- package/esm2022/lib/dashboard/store/dashboard.actions.mjs +2 -1
- package/esm2022/lib/dashboard/store/dashboard.reducers.mjs +10 -1
- package/esm2022/supervision/components/supervision-integration-errors/supervision-integration-errors-select/supervision-integration-errors-select.component.mjs +3 -6
- package/esm2022/toolbox/components/toolbox.component.mjs +27 -18
- package/esm2022/toolbox/toolbox.model.mjs +6 -6
- package/esm2022/widgets/widget-map/component/widget-map.component.mjs +8 -72
- package/esm2022/widgets/widget-map/i18n/en.translations.mjs +1 -6
- package/esm2022/widgets/widget-map/i18n/fr.translations.mjs +1 -6
- package/esm2022/widgets/widget-map/interaction/interaction-manager.class.mjs +1 -9
- package/esm2022/widgets/widget-map/utils/widget-map.utils.mjs +1 -47
- package/fesm2022/provoly-dashboard-admin.mjs +30 -77
- package/fesm2022/provoly-dashboard-admin.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-components-metadata-editor.mjs +3 -3
- package/fesm2022/provoly-dashboard-components-metadata-editor.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-dataset.mjs +7 -6
- package/fesm2022/provoly-dashboard-dataset.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-supervision.mjs +2 -5
- package/fesm2022/provoly-dashboard-supervision.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-toolbox.mjs +60 -51
- package/fesm2022/provoly-dashboard-toolbox.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-map.mjs +11 -310
- package/fesm2022/provoly-dashboard-widgets-widget-map.mjs.map +1 -1
- package/fesm2022/provoly-dashboard.mjs +89 -35
- package/fesm2022/provoly-dashboard.mjs.map +1 -1
- package/lib/core/components/tabs/tab-group.component.d.ts +16 -0
- package/lib/core/components/tabs/tab.component.d.ts +10 -0
- package/lib/core/core.module.d.ts +22 -20
- package/lib/core/public-api.d.ts +6 -4
- package/lib/dashboard/store/dashboard.actions.d.ts +1 -0
- package/package.json +75 -32
- package/schematics/ng-add/index.js +0 -4
- package/schematics/ng-add/index.js.map +1 -1
- package/schematics/ng-update/version-0-13/index.js +6 -2
- package/schematics/ng-update/version-0-13/index.js.map +1 -1
- package/styles/components/_o-panel.scss +1 -13
- package/styles/components/_o-tabs.scss +40 -56
- package/supervision/components/supervision-integration-errors/supervision-integration-errors-select/supervision-integration-errors-select.component.d.ts +0 -2
- package/toolbox/components/toolbox.component.d.ts +4 -2
- package/toolbox/toolbox.model.d.ts +1 -1
- package/widgets/widget-map/component/widget-map.component.d.ts +1 -4
- package/widgets/widget-map/i18n/en.translations.d.ts +0 -5
- package/widgets/widget-map/i18n/fr.translations.d.ts +0 -5
- package/widgets/widget-map/interaction/interaction-manager.class.d.ts +0 -2
- package/widgets/widget-map/utils/widget-map.utils.d.ts +0 -2
- package/esm2022/widgets/widget-map/reader/kmz-zip-reader.class.mjs +0 -57
- package/esm2022/widgets/widget-map/reader/map-formats-reader.class.mjs +0 -37
- package/esm2022/widgets/widget-map/reader/random-color-style.function.mjs +0 -32
- package/esm2022/widgets/widget-map/reader/read-as-text.class.mjs +0 -30
- package/esm2022/widgets/widget-map/reader/shp-zip-reader.class.mjs +0 -35
- package/widgets/widget-map/reader/kmz-zip-reader.class.d.ts +0 -12
- package/widgets/widget-map/reader/map-formats-reader.class.d.ts +0 -15
- package/widgets/widget-map/reader/random-color-style.function.d.ts +0 -6
- package/widgets/widget-map/reader/read-as-text.class.d.ts +0 -10
- package/widgets/widget-map/reader/shp-zip-reader.class.d.ts +0 -10
|
@@ -15,9 +15,7 @@ export declare class AdminClassesCustomizeComponent extends SubscriptionnerDirec
|
|
|
15
15
|
otherAttributes: string[];
|
|
16
16
|
currentPropertiesConfig$: Observable<string[]>;
|
|
17
17
|
currentTilePropertiesConfig$: Observable<string[]>;
|
|
18
|
-
currentRuleModifiedIndex: number;
|
|
19
18
|
classes$: Observable<Class[]>;
|
|
20
|
-
tab: number;
|
|
21
19
|
defaultTileAttributes: string[];
|
|
22
20
|
otherTileAttributes: string[];
|
|
23
21
|
maxTilesAttributes: number;
|
|
@@ -15,7 +15,6 @@ export declare class AdminClassesCustomizeTooltipComponent extends Subscriptionn
|
|
|
15
15
|
label: string;
|
|
16
16
|
}[]>;
|
|
17
17
|
advancedTooltip: boolean;
|
|
18
|
-
attributesForTooltip: string[];
|
|
19
18
|
possibleAttributes: Attribute[];
|
|
20
19
|
possibleNonAttributesFields: Attribute[];
|
|
21
20
|
backPressed: EventEmitter<void>;
|
package/admin/components/admin-classes/admin-classes-select/admin-classes-select.component.d.ts
CHANGED
|
@@ -9,15 +9,12 @@ export declare class AdminClassesSelectComponent implements OnInit, OnDestroy {
|
|
|
9
9
|
private router;
|
|
10
10
|
private route;
|
|
11
11
|
static id: string;
|
|
12
|
-
compId: number;
|
|
13
|
-
tab: number;
|
|
14
12
|
sub: Subscription;
|
|
15
13
|
currentClass$: Observable<Class | undefined>;
|
|
16
14
|
linkedObjects$: Observable<any[]>;
|
|
17
15
|
associations$: Observable<Associations | undefined>;
|
|
18
16
|
constructor(store: Store<any>, router: Router, route: ActivatedRoute);
|
|
19
17
|
ngOnInit(): void;
|
|
20
|
-
switch(number: number): void;
|
|
21
18
|
ngOnDestroy(): void;
|
|
22
19
|
closePanel(): void;
|
|
23
20
|
static ɵfac: i0.ɵɵFactoryDeclaration<AdminClassesSelectComponent, never>;
|
|
@@ -9,7 +9,6 @@ export declare class AdminAttributesSelectComponent implements OnInit, OnDestroy
|
|
|
9
9
|
private router;
|
|
10
10
|
private route;
|
|
11
11
|
static id: string;
|
|
12
|
-
compId: number;
|
|
13
12
|
selectedAttribute$: Observable<AttributeExtended | undefined>;
|
|
14
13
|
sub: Subscription;
|
|
15
14
|
associations$: Observable<Associations | undefined>;
|
|
@@ -23,7 +22,6 @@ export declare class AdminAttributesSelectComponent implements OnInit, OnDestroy
|
|
|
23
22
|
ngOnInit(): void;
|
|
24
23
|
ngOnDestroy(): void;
|
|
25
24
|
closePanel(): void;
|
|
26
|
-
switch(number: number): void;
|
|
27
25
|
static ɵfac: i0.ɵɵFactoryDeclaration<AdminAttributesSelectComponent, never>;
|
|
28
26
|
static ɵcmp: i0.ɵɵComponentDeclaration<AdminAttributesSelectComponent, "pry-admin-attribute-select", never, {}, {}, never, never, false, never>;
|
|
29
27
|
}
|
package/admin/components/admin-dataset/admin-select-dataset/admin-select-dataset.component.d.ts
CHANGED
|
@@ -10,18 +10,15 @@ export declare class AdminSelectDatasetComponent extends SubscriptionnerDirectiv
|
|
|
10
10
|
private router;
|
|
11
11
|
private route;
|
|
12
12
|
static id: string;
|
|
13
|
-
compId: number;
|
|
14
13
|
selectedDataset$: Observable<Dataset | null>;
|
|
15
14
|
associations$: Observable<Associations | undefined>;
|
|
16
15
|
sub: Subscription;
|
|
17
16
|
currentTypeTranslation: string;
|
|
18
|
-
tab: number;
|
|
19
17
|
datasetMetadata$: Observable<MetadataValue[]>;
|
|
20
18
|
editable$: Observable<boolean>;
|
|
21
19
|
constructor(store: Store<any>, router: Router, route: ActivatedRoute);
|
|
22
20
|
ngOnInit(): void;
|
|
23
21
|
closePanel(): void;
|
|
24
|
-
switch(number: number): void;
|
|
25
22
|
removeMetadata(metadata: MetaEventType): void;
|
|
26
23
|
addDatasetMetadata(metadata: MetaEventType): void;
|
|
27
24
|
static ɵfac: i0.ɵɵFactoryDeclaration<AdminSelectDatasetComponent, never>;
|
|
@@ -9,16 +9,13 @@ export declare class AdminEnvironmentSelectComponent implements OnInit, OnDestro
|
|
|
9
9
|
private router;
|
|
10
10
|
private route;
|
|
11
11
|
static id: string;
|
|
12
|
-
compId: number;
|
|
13
12
|
currentEnv$: Observable<Environment | undefined>;
|
|
14
13
|
sub: Subscription;
|
|
15
|
-
tab: number;
|
|
16
14
|
currentTypeTranslation: string;
|
|
17
15
|
constructor(store: Store<any>, router: Router, route: ActivatedRoute);
|
|
18
16
|
ngOnInit(): void;
|
|
19
17
|
ngOnDestroy(): void;
|
|
20
18
|
closePanel(): void;
|
|
21
|
-
switch(number: number): void;
|
|
22
19
|
static ɵfac: i0.ɵɵFactoryDeclaration<AdminEnvironmentSelectComponent, never>;
|
|
23
20
|
static ɵcmp: i0.ɵɵComponentDeclaration<AdminEnvironmentSelectComponent, "pry-admin-environment-select", never, {}, {}, never, never, false, never>;
|
|
24
21
|
}
|
package/admin/components/admin-fields/admin-fields-select/admin-fields-select.component.d.ts
CHANGED
|
@@ -11,8 +11,6 @@ export declare class AdminFieldsSelectComponent implements OnInit, OnDestroy {
|
|
|
11
11
|
static id: string;
|
|
12
12
|
currentField$: Observable<Field | undefined>;
|
|
13
13
|
associations$: Observable<Associations | undefined>;
|
|
14
|
-
compId: number;
|
|
15
|
-
tab: number;
|
|
16
14
|
sub: Subscription;
|
|
17
15
|
attributes$: Observable<{
|
|
18
16
|
name: string;
|
|
@@ -20,7 +18,6 @@ export declare class AdminFieldsSelectComponent implements OnInit, OnDestroy {
|
|
|
20
18
|
}[]>;
|
|
21
19
|
constructor(store: Store<any>, router: Router, route: ActivatedRoute);
|
|
22
20
|
ngOnInit(): void;
|
|
23
|
-
switch(number: number): void;
|
|
24
21
|
getTranslationType(type: string): string;
|
|
25
22
|
closePanel(): void;
|
|
26
23
|
ngOnDestroy(): void;
|
package/admin/components/admin-metadata/admin-select-metadata/admin-select-metadata.component.d.ts
CHANGED
|
@@ -9,11 +9,9 @@ export declare class AdminSelectMetadataComponent implements OnInit, OnDestroy {
|
|
|
9
9
|
private router;
|
|
10
10
|
private route;
|
|
11
11
|
static id: string;
|
|
12
|
-
compId: number;
|
|
13
12
|
metadata$: Observable<IMetadata | undefined>;
|
|
14
13
|
sub: Subscription;
|
|
15
14
|
currentTypeTranslation: string;
|
|
16
|
-
tab: number;
|
|
17
15
|
constructor(store: Store<any>, router: Router, route: ActivatedRoute);
|
|
18
16
|
ngOnInit(): void;
|
|
19
17
|
ngOnDestroy(): void;
|
|
@@ -9,11 +9,9 @@ export declare class AdminSelectMetadataRulesComponent implements OnInit, OnDest
|
|
|
9
9
|
private router;
|
|
10
10
|
private route;
|
|
11
11
|
static id: string;
|
|
12
|
-
compId: number;
|
|
13
12
|
metadataRulesSelected$: Observable<MetadataRules | null>;
|
|
14
13
|
sub: Subscription;
|
|
15
14
|
currentTypeTranslation: string;
|
|
16
|
-
tab: number;
|
|
17
15
|
constructor(store: Store<any>, router: Router, route: ActivatedRoute);
|
|
18
16
|
ngOnInit(): void;
|
|
19
17
|
ngOnDestroy(): void;
|
|
@@ -9,11 +9,9 @@ export declare class AdminUserSelectMetadataComponent implements OnInit, OnDestr
|
|
|
9
9
|
private router;
|
|
10
10
|
private route;
|
|
11
11
|
static id: string;
|
|
12
|
-
compId: number;
|
|
13
12
|
metadata$: Observable<IMetadata | undefined>;
|
|
14
13
|
sub: Subscription;
|
|
15
14
|
currentTypeTranslation: string;
|
|
16
|
-
tab: number;
|
|
17
15
|
constructor(store: Store<any>, router: Router, route: ActivatedRoute);
|
|
18
16
|
ngOnInit(): void;
|
|
19
17
|
ngOnDestroy(): void;
|
|
@@ -9,9 +9,7 @@ export declare class AdminPredicatesSelectComponent implements OnInit, OnDestroy
|
|
|
9
9
|
private router;
|
|
10
10
|
private route;
|
|
11
11
|
static id: string;
|
|
12
|
-
compId: number;
|
|
13
12
|
currentPredicate$: Observable<Predicate | undefined>;
|
|
14
|
-
tab: number;
|
|
15
13
|
sub: Subscription;
|
|
16
14
|
constructor(store: Store<any>, router: Router, route: ActivatedRoute);
|
|
17
15
|
ngOnInit(): void;
|
|
@@ -6,10 +6,8 @@ import * as i0 from "@angular/core";
|
|
|
6
6
|
export declare class AdminRelationTypesSelectComponent implements OnInit, OnDestroy {
|
|
7
7
|
private store;
|
|
8
8
|
static id: string;
|
|
9
|
-
compId: number;
|
|
10
9
|
currentRelationType$: Observable<RelationType | undefined>;
|
|
11
10
|
sub: Subscription;
|
|
12
|
-
tab: number;
|
|
13
11
|
constructor(store: Store<AdminRelationTypesSelectComponent>);
|
|
14
12
|
ngOnInit(): void;
|
|
15
13
|
ngOnDestroy(): void;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Associations } from '@provoly/dashboard';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
export declare class PryAssociationComponent {
|
|
4
|
-
associations?: Associations;
|
|
4
|
+
associations?: Associations | null;
|
|
5
5
|
static ɵfac: i0.ɵɵFactoryDeclaration<PryAssociationComponent, never>;
|
|
6
6
|
static ɵcmp: i0.ɵɵComponentDeclaration<PryAssociationComponent, "pry-association", never, { "associations": { "alias": "associations"; "required": false; }; }, {}, never, never, false, never>;
|
|
7
7
|
}
|
|
@@ -7,21 +7,30 @@ pry-dataset-detail {
|
|
|
7
7
|
width: 100%;
|
|
8
8
|
|
|
9
9
|
.dataset-detail {
|
|
10
|
-
overflow: auto;
|
|
11
10
|
height: 80%;
|
|
12
11
|
display: flex;
|
|
13
12
|
flex-direction: column;
|
|
14
13
|
flex: 1 1;
|
|
15
14
|
padding: toRem(25);
|
|
15
|
+
|
|
16
|
+
pry-tab-group {
|
|
17
|
+
height: 100%;
|
|
18
|
+
|
|
19
|
+
.o-tabs__panel__content {
|
|
20
|
+
height: 100%;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
16
23
|
}
|
|
17
24
|
|
|
18
25
|
.dashboard-container {
|
|
19
|
-
|
|
26
|
+
height: 100%;
|
|
20
27
|
}
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
28
|
+
|
|
29
|
+
pry-icon {
|
|
30
|
+
position: relative;
|
|
31
|
+
top: toRem(5);
|
|
32
|
+
}
|
|
33
|
+
|
|
25
34
|
.table-container {
|
|
26
35
|
flex: 1 1;
|
|
27
36
|
}
|
|
@@ -52,6 +61,7 @@ pry-dataset-detail {
|
|
|
52
61
|
.o-tabs {
|
|
53
62
|
padding-left: 2rem;
|
|
54
63
|
padding-right: 2rem;
|
|
64
|
+
height: 100%;
|
|
55
65
|
}
|
|
56
66
|
|
|
57
67
|
.dataset-layout__content {
|
|
@@ -78,7 +88,7 @@ td {
|
|
|
78
88
|
pointer-events:initial;
|
|
79
89
|
}
|
|
80
90
|
|
|
81
|
-
.description:hover:after{
|
|
91
|
+
.description:hover:after {
|
|
82
92
|
cursor: pointer;
|
|
83
93
|
}
|
|
84
94
|
|
|
@@ -3,11 +3,11 @@
|
|
|
3
3
|
/* Organism - pry-dataset */
|
|
4
4
|
|
|
5
5
|
.o-pry-dataset {
|
|
6
|
-
display:
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
gap: toRem(
|
|
10
|
-
|
|
6
|
+
display: grid;
|
|
7
|
+
grid-template-columns: repeat(auto-fill, minmax(toRem(330), 0fr));
|
|
8
|
+
grid-auto-rows: toRem(200);
|
|
9
|
+
grid-gap: toRem(10);
|
|
10
|
+
gap: 1.5rem;
|
|
11
11
|
|
|
12
12
|
&__search {
|
|
13
13
|
position: relative;
|
|
@@ -22,7 +22,9 @@
|
|
|
22
22
|
}
|
|
23
23
|
|
|
24
24
|
pry-dataset-card {
|
|
25
|
-
|
|
25
|
+
margin: 2rem;
|
|
26
|
+
width: 100%;
|
|
27
|
+
box-sizing: border-box;
|
|
26
28
|
}
|
|
27
29
|
}
|
|
28
30
|
.o-dataset-layout {
|
|
@@ -8,10 +8,10 @@ import * as i0 from "@angular/core";
|
|
|
8
8
|
import * as i1 from "@ngrx/store";
|
|
9
9
|
import * as i2 from "@angular/router";
|
|
10
10
|
import * as i3 from "@angular/common";
|
|
11
|
-
import * as i4 from "@
|
|
12
|
-
import * as i5 from "
|
|
13
|
-
import * as i6 from "./
|
|
14
|
-
import * as i7 from "
|
|
11
|
+
import * as i4 from "@provoly/dashboard";
|
|
12
|
+
import * as i5 from "@angular/cdk/drag-drop";
|
|
13
|
+
import * as i6 from "./tooltip/admin-classes-customize-tooltip.component";
|
|
14
|
+
import * as i7 from "./symbol/admin-classes-customize-symbol.component";
|
|
15
15
|
export class AdminClassesCustomizeComponent extends SubscriptionnerDirective {
|
|
16
16
|
constructor(store, router, route) {
|
|
17
17
|
super();
|
|
@@ -21,9 +21,7 @@ export class AdminClassesCustomizeComponent extends SubscriptionnerDirective {
|
|
|
21
21
|
this.currentClass = {};
|
|
22
22
|
this.defaultAttributes = [];
|
|
23
23
|
this.otherAttributes = [];
|
|
24
|
-
this.currentRuleModifiedIndex = -1;
|
|
25
24
|
this.classes$ = of([]);
|
|
26
|
-
this.tab = 0;
|
|
27
25
|
this.defaultTileAttributes = [];
|
|
28
26
|
this.otherTileAttributes = [];
|
|
29
27
|
this.maxTilesAttributes = 5;
|
|
@@ -83,10 +81,10 @@ export class AdminClassesCustomizeComponent extends SubscriptionnerDirective {
|
|
|
83
81
|
return this.defaultTileAttributes.length > 0 && this.defaultTileAttributes.length <= this.maxTilesAttributes;
|
|
84
82
|
}
|
|
85
83
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: AdminClassesCustomizeComponent, deps: [{ token: i1.Store }, { token: i2.Router }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
86
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: AdminClassesCustomizeComponent, selector: "pry-admin-classes-customize", usesInheritance: true, ngImport: i0, template: "<div class=\"o-pry-admin-classes-customize\">\n <h1 class=\"a-h1\" id=\"tab-
|
|
84
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: AdminClassesCustomizeComponent, selector: "pry-admin-classes-customize", usesInheritance: true, ngImport: i0, template: "<div class=\"o-pry-admin-classes-customize\">\n <h1 class=\"a-h1\" id=\"tab-custom\">{{ '@pry.admin.customize.title' | i18n }}</h1>\n\n <pry-tab-group translationStringBase=\"@pry.admin.\">\n <pry-tab [templateRef]=\"customizeTemplate\" name=\"customize.template\"></pry-tab>\n <pry-tab [templateRef]=\"customizeTable\" name=\"customize.table\"></pry-tab>\n <pry-tab [templateRef]=\"customizeSymbol\" name=\"classes.rules\"></pry-tab>\n <pry-tab [templateRef]=\"customizeTile\" name=\"customize.tile\"></pry-tab>\n </pry-tab-group>\n\n <ng-template #customizeTemplate>\n <pry-admin-classes-customize-tooltip\n (backPressed)=\"goBack()\"\n [currentClass]=\"currentClass$ | async\"\n ></pry-admin-classes-customize-tooltip>\n </ng-template>\n <ng-template #customizeTable>\n <div class=\"container\">\n <h2>{{ '@pry.admin.customize.tableAttrs' | i18n }}</h2>\n <div\n cdkDropList\n #defaultList=\"cdkDropList\"\n [cdkDropListData]=\"defaultAttributes\"\n [cdkDropListConnectedTo]=\"[notDefaultList]\"\n class=\"list\"\n (cdkDropListDropped)=\"drop($event)\"\n >\n <div class=\"item\" *ngFor=\"let item of defaultAttributes\" cdkDrag>{{ item }}</div>\n </div>\n </div>\n\n <div class=\"container\">\n <h2>{{ '@pry.admin.customize.noTableAttrs' | i18n }}</h2>\n <div\n cdkDropList\n #notDefaultList=\"cdkDropList\"\n [cdkDropListData]=\"otherAttributes\"\n [cdkDropListConnectedTo]=\"[defaultList]\"\n class=\"list\"\n (cdkDropListDropped)=\"drop($event)\"\n >\n <div class=\"item\" *ngFor=\"let item of otherAttributes\" cdkDrag>{{ item }}</div>\n </div>\n </div>\n\n <div class=\"m-btn-group -width-lg\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary\"\n (click)=\"goBack()\"\n [innerHTML]=\"'@pry.admin.cancel' | i18n\"\n ></button>\n <button class=\"a-btn a-btn--primary\" type=\"submit\" (click)=\"updateTableAttrs()\">\n {{ '@pry.admin.customize.updateTable' | i18n }}\n </button>\n </div>\n </ng-template>\n <ng-template #customizeSymbol>\n <pry-admin-classes-customize-symbol\n (backPressed)=\"goBack()\"\n [currentClass]=\"currentClass$ | async\"\n ></pry-admin-classes-customize-symbol>\n </ng-template>\n <ng-template #customizeTile>\n <div class=\"container\">\n <h2>{{ '@pry.admin.customize.tile' | i18n }}</h2>\n <div\n cdkDropList\n #defaultTilesList=\"cdkDropList\"\n [cdkDropListData]=\"defaultTileAttributes\"\n [cdkDropListConnectedTo]=\"[notDefaultTilesList]\"\n class=\"list\"\n (cdkDropListDropped)=\"drop($event)\"\n >\n <div class=\"item\" *ngFor=\"let item of defaultTileAttributes\" cdkDrag>{{ item }}</div>\n </div>\n </div>\n\n <div class=\"container\">\n <h2>{{ '@pry.admin.customize.noTileAttrs' | i18n }}</h2>\n <div\n cdkDropList\n #notDefaultTilesList=\"cdkDropList\"\n [cdkDropListData]=\"otherTileAttributes\"\n [cdkDropListConnectedTo]=\"[defaultTilesList]\"\n class=\"list\"\n (cdkDropListDropped)=\"drop($event)\"\n >\n <div class=\"item\" *ngFor=\"let item of otherTileAttributes\" cdkDrag>{{ item }}</div>\n </div>\n </div>\n\n <div>\n <ng-container *ngIf=\"!isTileConfValid()\">\n <p>{{ '@pry.admin.customize.tileHint' | i18n : { max: maxTilesAttributes } }}</p>\n </ng-container>\n </div>\n\n <div class=\"m-btn-group -width-lg\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary\"\n (click)=\"goBack()\"\n [innerHTML]=\"'@pry.admin.cancel' | i18n\"\n ></button>\n <button class=\"a-btn a-btn--primary\" type=\"submit\" (click)=\"updateTileAttrs()\" [disabled]=\"!isTileConfValid()\">\n {{ '@pry.admin.customize.updateTile' | i18n }}\n </button>\n </div>\n </ng-template>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.TabGroupComponent, selector: "pry-tab-group", inputs: ["translationStringBase"] }, { kind: "component", type: i4.TabComponent, selector: "pry-tab", inputs: ["name", "templateRef", "index"] }, { kind: "directive", type: i5.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i5.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "component", type: i6.AdminClassesCustomizeTooltipComponent, selector: "pry-admin-classes-customize-tooltip", inputs: ["currentClass"], outputs: ["backPressed"] }, { kind: "component", type: i7.AdminClassesCustomizeSymbolComponent, selector: "pry-admin-classes-customize-symbol", inputs: ["currentClass"], outputs: ["backPressed"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
|
|
87
85
|
}
|
|
88
86
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: AdminClassesCustomizeComponent, decorators: [{
|
|
89
87
|
type: Component,
|
|
90
|
-
args: [{ selector: 'pry-admin-classes-customize', template: "<div class=\"o-pry-admin-classes-customize\">\n <h1 class=\"a-h1\" id=\"tab-
|
|
88
|
+
args: [{ selector: 'pry-admin-classes-customize', template: "<div class=\"o-pry-admin-classes-customize\">\n <h1 class=\"a-h1\" id=\"tab-custom\">{{ '@pry.admin.customize.title' | i18n }}</h1>\n\n <pry-tab-group translationStringBase=\"@pry.admin.\">\n <pry-tab [templateRef]=\"customizeTemplate\" name=\"customize.template\"></pry-tab>\n <pry-tab [templateRef]=\"customizeTable\" name=\"customize.table\"></pry-tab>\n <pry-tab [templateRef]=\"customizeSymbol\" name=\"classes.rules\"></pry-tab>\n <pry-tab [templateRef]=\"customizeTile\" name=\"customize.tile\"></pry-tab>\n </pry-tab-group>\n\n <ng-template #customizeTemplate>\n <pry-admin-classes-customize-tooltip\n (backPressed)=\"goBack()\"\n [currentClass]=\"currentClass$ | async\"\n ></pry-admin-classes-customize-tooltip>\n </ng-template>\n <ng-template #customizeTable>\n <div class=\"container\">\n <h2>{{ '@pry.admin.customize.tableAttrs' | i18n }}</h2>\n <div\n cdkDropList\n #defaultList=\"cdkDropList\"\n [cdkDropListData]=\"defaultAttributes\"\n [cdkDropListConnectedTo]=\"[notDefaultList]\"\n class=\"list\"\n (cdkDropListDropped)=\"drop($event)\"\n >\n <div class=\"item\" *ngFor=\"let item of defaultAttributes\" cdkDrag>{{ item }}</div>\n </div>\n </div>\n\n <div class=\"container\">\n <h2>{{ '@pry.admin.customize.noTableAttrs' | i18n }}</h2>\n <div\n cdkDropList\n #notDefaultList=\"cdkDropList\"\n [cdkDropListData]=\"otherAttributes\"\n [cdkDropListConnectedTo]=\"[defaultList]\"\n class=\"list\"\n (cdkDropListDropped)=\"drop($event)\"\n >\n <div class=\"item\" *ngFor=\"let item of otherAttributes\" cdkDrag>{{ item }}</div>\n </div>\n </div>\n\n <div class=\"m-btn-group -width-lg\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary\"\n (click)=\"goBack()\"\n [innerHTML]=\"'@pry.admin.cancel' | i18n\"\n ></button>\n <button class=\"a-btn a-btn--primary\" type=\"submit\" (click)=\"updateTableAttrs()\">\n {{ '@pry.admin.customize.updateTable' | i18n }}\n </button>\n </div>\n </ng-template>\n <ng-template #customizeSymbol>\n <pry-admin-classes-customize-symbol\n (backPressed)=\"goBack()\"\n [currentClass]=\"currentClass$ | async\"\n ></pry-admin-classes-customize-symbol>\n </ng-template>\n <ng-template #customizeTile>\n <div class=\"container\">\n <h2>{{ '@pry.admin.customize.tile' | i18n }}</h2>\n <div\n cdkDropList\n #defaultTilesList=\"cdkDropList\"\n [cdkDropListData]=\"defaultTileAttributes\"\n [cdkDropListConnectedTo]=\"[notDefaultTilesList]\"\n class=\"list\"\n (cdkDropListDropped)=\"drop($event)\"\n >\n <div class=\"item\" *ngFor=\"let item of defaultTileAttributes\" cdkDrag>{{ item }}</div>\n </div>\n </div>\n\n <div class=\"container\">\n <h2>{{ '@pry.admin.customize.noTileAttrs' | i18n }}</h2>\n <div\n cdkDropList\n #notDefaultTilesList=\"cdkDropList\"\n [cdkDropListData]=\"otherTileAttributes\"\n [cdkDropListConnectedTo]=\"[defaultTilesList]\"\n class=\"list\"\n (cdkDropListDropped)=\"drop($event)\"\n >\n <div class=\"item\" *ngFor=\"let item of otherTileAttributes\" cdkDrag>{{ item }}</div>\n </div>\n </div>\n\n <div>\n <ng-container *ngIf=\"!isTileConfValid()\">\n <p>{{ '@pry.admin.customize.tileHint' | i18n : { max: maxTilesAttributes } }}</p>\n </ng-container>\n </div>\n\n <div class=\"m-btn-group -width-lg\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary\"\n (click)=\"goBack()\"\n [innerHTML]=\"'@pry.admin.cancel' | i18n\"\n ></button>\n <button class=\"a-btn a-btn--primary\" type=\"submit\" (click)=\"updateTileAttrs()\" [disabled]=\"!isTileConfValid()\">\n {{ '@pry.admin.customize.updateTile' | i18n }}\n </button>\n </div>\n </ng-template>\n</div>\n" }]
|
|
91
89
|
}], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.Router }, { type: i2.ActivatedRoute }]; } });
|
|
92
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRtaW4tY2xhc3Nlcy1jdXN0b21pemUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvYWRtaW4vY29tcG9uZW50cy9hZG1pbi1jbGFzc2VzL2FkbWluLWNsYXNzZXMtY3VzdG9taXplL2FkbWluLWNsYXNzZXMtY3VzdG9taXplLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2FkbWluL2NvbXBvbmVudHMvYWRtaW4tY2xhc3Nlcy9hZG1pbi1jbGFzc2VzLWN1c3RvbWl6ZS9hZG1pbi1jbGFzc2VzLWN1c3RvbWl6ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWUsZUFBZSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekYsT0FBTyxFQUFFLFNBQVMsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUdyRCxPQUFPLEVBRUwsWUFBWSxFQUNaLGNBQWMsRUFDZCxhQUFhLEVBQ2IsZUFBZSxFQUNmLFNBQVMsRUFDVCx3QkFBd0IsRUFDekIsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQUUsYUFBYSxFQUFFLGlCQUFpQixFQUFFLEdBQUcsRUFBYyxFQUFFLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOzs7Ozs7Ozs7QUFNckUsTUFBTSxPQUFPLDhCQUErQixTQUFRLHdCQUF3QjtJQWMxRSxZQUNVLEtBQWlCLEVBQ2pCLE1BQWMsRUFDZCxLQUFxQjtRQUU3QixLQUFLLEVBQUUsQ0FBQztRQUpBLFVBQUssR0FBTCxLQUFLLENBQVk7UUFDakIs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QUE5Qiw4QkFBOEIsMEZDckIzQyx5OE1Bb01BOzsyRkQvS2EsOEJBQThCO2tCQUoxQyxTQUFTOytCQUNFLDZCQUE2QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENka0RyYWdEcm9wLCBtb3ZlSXRlbUluQXJyYXksIHRyYW5zZmVyQXJyYXlJdGVtIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XG5pbXBvcnQgeyBDb21wb25lbnQsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7XG4gIENsYXNzLFxuICBDbGFzc0FjdGlvbnMsXG4gIENsYXNzU2VsZWN0b3JzLFxuICBDb25maWdBY3Rpb25zLFxuICBDb25maWdTZWxlY3RvcnMsXG4gIEl0ZW1VdGlscyxcbiAgU3Vic2NyaXB0aW9ubmVyRGlyZWN0aXZlXG59IGZyb20gJ0Bwcm92b2x5L2Rhc2hib2FyZCc7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBjb21iaW5lTGF0ZXN0V2l0aCwgbWFwLCBPYnNlcnZhYmxlLCBvZiwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBZG1pbkNsYXNzQWN0aW9ucyB9IGZyb20gJy4uL3N0b3JlL2FkbWluLWNsYXNzLmFjdGlvbnMnO1xuaW1wb3J0IHsgQWRtaW5DbGFzc1NlbGVjdG9ycyB9IGZyb20gJy4uL3N0b3JlL2FkbWluLWNsYXNzLnNlbGVjdG9ycyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ByeS1hZG1pbi1jbGFzc2VzLWN1c3RvbWl6ZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9hZG1pbi1jbGFzc2VzLWN1c3RvbWl6ZS5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgQWRtaW5DbGFzc2VzQ3VzdG9taXplQ29tcG9uZW50IGV4dGVuZHMgU3Vic2NyaXB0aW9ubmVyRGlyZWN0aXZlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgY3VycmVudENsYXNzJDogT2JzZXJ2YWJsZTxDbGFzcyB8IHVuZGVmaW5lZD47XG4gIGN1cnJlbnRDbGFzczogQ2xhc3MgPSB7fSBhcyBDbGFzcztcbiAgZGVmYXVsdEF0dHJpYnV0ZXM6IHN0cmluZ1tdID0gW107XG4gIG90aGVyQXR0cmlidXRlczogc3RyaW5nW10gPSBbXTtcbiAgY3VycmVudFByb3BlcnRpZXNDb25maWckOiBPYnNlcnZhYmxlPHN0cmluZ1tdPjtcbiAgY3VycmVudFRpbGVQcm9wZXJ0aWVzQ29uZmlnJDogT2JzZXJ2YWJsZTxzdHJpbmdbXT47XG4gIGN1cnJlbnRSdWxlTW9kaWZpZWRJbmRleDogbnVtYmVyID0gLTE7XG4gIGNsYXNzZXMkOiBPYnNlcnZhYmxlPENsYXNzW10+ID0gb2YoW10pO1xuICB0YWIgPSAwO1xuICBkZWZhdWx0VGlsZUF0dHJpYnV0ZXM6IHN0cmluZ1tdID0gW107XG4gIG90aGVyVGlsZUF0dHJpYnV0ZXM6IHN0cmluZ1tdID0gW107XG4gIG1heFRpbGVzQXR0cmlidXRlcyA9IDU7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBzdG9yZTogU3RvcmU8YW55PixcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlXG4gICkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIHRoaXMucm91dGUucGFyYW1zLnN1YnNjcmliZSgocGFyYW1zKSA9PlxuICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKEFkbWluQ2xhc3NBY3Rpb25zLnNlbGVjdENsYXNzKHsgY2xheno6IHsgaWQ6IHBhcmFtc1snaWQnXSB9IGFzIENsYXNzIH0pKVxuICAgICAgKVxuICAgICk7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChDbGFzc0FjdGlvbnMubG9hZCgpKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKENvbmZpZ0FjdGlvbnMubG9hZEN1c3RvbWl6YXRpb24oKSk7XG4gICAgdGhpcy5jdXJyZW50Q2xhc3MkID0gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLnN0b3JlLnNlbGVjdChBZG1pbkNsYXNzU2VsZWN0b3JzLnNlbGVjdGVkQ2xhc3MpLFxuICAgICAgdGhpcy5zdG9yZS5zZWxlY3QoQ2xhc3NTZWxlY3RvcnMuY2xhc3NlcylcbiAgICBdKS5waXBlKHN3aXRjaE1hcCgoW2NsYXp6LCBfXSkgPT4gdGhpcy5zdG9yZS5zZWxlY3QoQ2xhc3NTZWxlY3RvcnMuY2xhc3NCeUlkKGNsYXp6Py5pZCA/PyAnJykpKSk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZCh0aGlzLmN1cnJlbnRDbGFzcyQuc3Vic2NyaWJlKChjbGF6eikgPT4gKHRoaXMuY3VycmVudENsYXNzID0gY2xhenogPz8gKHt9IGFzIENsYXNzKSkpKTtcbiAgICB0aGlzLmN1cnJlbnRQcm9wZXJ0aWVzQ29uZmlnJCA9IHRoaXMuc3RvcmUuc2VsZWN0KENvbmZpZ1NlbGVjdG9ycy50YWJsZURlZmF1bHRBdHRyaWJ1dGVzRGVmaW5pdGlvbnMpLnBpcGUoXG4gICAgICBjb21iaW5lTGF0ZXN0V2l0aCh0aGlzLmN1cnJlbnRDbGFzcyQpLFxuICAgICAgbWFwKChbZGVmcywgY2xhenpdKSA9PiBJdGVtVXRpbHMuZ2V0QXR0cmlidXRlc0RlZmluaXRpb25Gb3JDbGFzcygoY2xhenogPz8geyBhdHRyaWJ1dGVzOiBbXSB9KSBhcyBDbGFzcywgZGVmcykpXG4gICAgKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgdGhpcy5jdXJyZW50UHJvcGVydGllc0NvbmZpZyQucGlwZShjb21iaW5lTGF0ZXN0V2l0aCh0aGlzLmN1cnJlbnRDbGFzcyQpKS5zdWJzY3JpYmUoKFthdHRycywgY2xhenpdKSA9PiB7XG4gICAgICAgIHRoaXMuZGVmYXVsdEF0dHJpYnV0ZXMgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGF0dHJzKSk7XG4gICAgICAgIHRoaXMub3RoZXJBdHRyaWJ1dGVzID0gKGNsYXp6ID8/IHsgYXR0cmlidXRlczogW10gfSkuYXR0cmlidXRlc1xuICAgICAgICAgIC5tYXAoKGF0dHIpID0+IGF0dHIubmFtZSlcbiAgICAgICAgICAuZmlsdGVyKChuYW1lKSA9PiAhYXR0cnMuaW5jbHVkZXMobmFtZSkpO1xuICAgICAgfSlcbiAgICApO1xuICAgIHRoaXMuY3VycmVudFRpbGVQcm9wZXJ0aWVzQ29uZmlnJCA9IHRoaXMuc3RvcmUuc2VsZWN0KENvbmZpZ1NlbGVjdG9ycy50aWxlQXR0cmlidXRlc0RlZmluaXRpb25zKS5waXBlKFxuICAgICAgY29tYmluZUxhdGVzdFdpdGgodGhpcy5jdXJyZW50Q2xhc3MkKSxcbiAgICAgIG1hcCgoW2RlZnMsIGNsYXp6XSkgPT4gSXRlbVV0aWxzLmdldEF0dHJpYnV0ZXNEZWZpbml0aW9uRm9yQ2xhc3MoKGNsYXp6ID8/IHsgYXR0cmlidXRlczogW10gfSkgYXMgQ2xhc3MsIGRlZnMpKSxcbiAgICAgIG1hcCgoYXR0cnMpID0+IGF0dHJzLmZpbHRlcigoXywgaSkgPT4gaSA8IHRoaXMubWF4VGlsZXNBdHRyaWJ1dGVzKSlcbiAgICApO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICB0aGlzLmN1cnJlbnRUaWxlUHJvcGVydGllc0NvbmZpZyQucGlwZShjb21iaW5lTGF0ZXN0V2l0aCh0aGlzLmN1cnJlbnRDbGFzcyQpKS5zdWJzY3JpYmUoKFthdHRycywgY2xhenpdKSA9PiB7XG4gICAgICAgIHRoaXMuZGVmYXVsdFRpbGVBdHRyaWJ1dGVzID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShhdHRycykpO1xuICAgICAgICB0aGlzLm90aGVyVGlsZUF0dHJpYnV0ZXMgPSAoY2xhenogPz8geyBhdHRyaWJ1dGVzOiBbXSB9KS5hdHRyaWJ1dGVzXG4gICAgICAgICAgLm1hcCgoYXR0cikgPT4gYXR0ci5uYW1lKVxuICAgICAgICAgIC5maWx0ZXIoKG5hbWUpID0+ICFhdHRycy5pbmNsdWRlcyhuYW1lKSk7XG4gICAgICB9KVxuICAgICk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIHRoaXMuc3RvcmUuc2VsZWN0KENvbmZpZ1NlbGVjdG9ycy5tYXhBdHRyaWJ1dGVzSW5UaWxlcykuc3Vic2NyaWJlKChtYXgpID0+IHtcbiAgICAgICAgdGhpcy5tYXhUaWxlc0F0dHJpYnV0ZXMgPSBtYXg7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBnb0JhY2soKSB7XG4gICAgY29uc3QgcGF0aCA9IHRoaXMucm91dGVyLmNyZWF0ZVVybFRyZWUoWycuLi8uLiddLCB7IHJlbGF0aXZlVG86IHRoaXMucm91dGUgfSk7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChBZG1pbkNsYXNzQWN0aW9ucy5iYWNrKHsgcGF0aDogcGF0aC50b1N0cmluZygpIH0pKTtcbiAgfVxuXG4gIGRyb3AoZXZlbnQ6IENka0RyYWdEcm9wPHN0cmluZ1tdPikge1xuICAgIGlmIChldmVudC5wcmV2aW91c0NvbnRhaW5lciA9PT0gZXZlbnQuY29udGFpbmVyKSB7XG4gICAgICBtb3ZlSXRlbUluQXJyYXkoZXZlbnQuY29udGFpbmVyLmRhdGEsIGV2ZW50LnByZXZpb3VzSW5kZXgsIGV2ZW50LmN1cnJlbnRJbmRleCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRyYW5zZmVyQXJyYXlJdGVtKGV2ZW50LnByZXZpb3VzQ29udGFpbmVyLmRhdGEsIGV2ZW50LmNvbnRhaW5lci5kYXRhLCBldmVudC5wcmV2aW91c0luZGV4LCBldmVudC5jdXJyZW50SW5kZXgpO1xuICAgIH1cbiAgICBjb25zdCB0b1NvcnQgPSBldmVudC5wcmV2aW91c0NvbnRhaW5lci5pZCA9PT0gJ2Nkay1kcm9wLWxpc3QtMScgPyBldmVudC5wcmV2aW91c0NvbnRhaW5lciA6IGV2ZW50LmNvbnRhaW5lcjtcbiAgICB0b1NvcnQuZGF0YS5zb3J0KChhLCBiKSA9PiBhLnRvTG93ZXJDYXNlKCkubG9jYWxlQ29tcGFyZShiLnRvTG93ZXJDYXNlKCkpKTtcbiAgfVxuXG4gIHVwZGF0ZVRhYmxlQXR0cnMoKSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChcbiAgICAgIENvbmZpZ0FjdGlvbnMuc2F2ZVRhYmxlRGVmYXVsdEF0dHJpYnV0ZXMoe1xuICAgICAgICBkZWZpbml0aW9uczogeyBbdGhpcy5jdXJyZW50Q2xhc3MuaWRdOiB0aGlzLmRlZmF1bHRBdHRyaWJ1dGVzLnNvcnQoKSB9XG4gICAgICB9KVxuICAgICk7XG4gICAgdGhpcy5nb0JhY2soKTtcbiAgfVxuXG4gIHVwZGF0ZVRpbGVBdHRycygpIHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgQ29uZmlnQWN0aW9ucy5zYXZlVGlsZUF0dHJpYnV0ZXMoe1xuICAgICAgICBkZWZpbml0aW9uczogeyBbdGhpcy5jdXJyZW50Q2xhc3MuaWRdOiB0aGlzLmRlZmF1bHRUaWxlQXR0cmlidXRlcyB9XG4gICAgICB9KVxuICAgICk7XG4gICAgdGhpcy5nb0JhY2soKTtcbiAgfVxuXG4gIGlzVGlsZUNvbmZWYWxpZCgpIHtcbiAgICByZXR1cm4gdGhpcy5kZWZhdWx0VGlsZUF0dHJpYnV0ZXMubGVuZ3RoID4gMCAmJiB0aGlzLmRlZmF1bHRUaWxlQXR0cmlidXRlcy5sZW5ndGggPD0gdGhpcy5tYXhUaWxlc0F0dHJpYnV0ZXM7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJvLXByeS1hZG1pbi1jbGFzc2VzLWN1c3RvbWl6ZVwiPlxuICA8aDEgY2xhc3M9XCJhLWgxXCIgaWQ9XCJ0YWItY3VzdG9cIj57eyAnQHByeS5hZG1pbi5jdXN0b21pemUudGl0bGUnIHwgaTE4biB9fTwvaDE+XG5cbiAgPGRpdiBjbGFzcz1cIm8tdGFic1wiPlxuICAgIDxkaXYgY2xhc3M9XCJvLXRhYnNfX2xpc3RcIiByb2xlPVwidGFibGlzdFwiIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCIndGFiLWN1c3RvJ1wiPlxuICAgICAgPGJ1dHRvblxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgY2xhc3M9XCJvLXRhYnNfX2xpc3RfX2J0blwiXG4gICAgICAgIHJvbGU9XCJ0YWJcIlxuICAgICAgICBbaWRdPVwiJ3RhYi1jdXN0by1idG4tMCdcIlxuICAgICAgICBbYXR0ci5hcmlhLXNlbGVjdGVkXT1cInRhYiA9PT0gMFwiXG4gICAgICAgIFthdHRyLnRhYmluZGV4XT1cInRhYiA9PT0gMCA/IDAgOiAtMVwiXG4gICAgICAgIFthdHRyLmFyaWEtY29udHJvbHNdPVwiJ3RhYi1jdXN0by1wbmwtMCdcIlxuICAgICAgICAoY2xpY2spPVwidGFiID0gMFwiXG4gICAgICA+XG4gICAgICAgIHt7ICdAcHJ5LmFkbWluLmN1c3RvbWl6ZS50ZW1wbGF0ZScgfCBpMThuIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIGNsYXNzPVwiby10YWJzX19saXN0X19idG5cIlxuICAgICAgICByb2xlPVwidGFiXCJcbiAgICAgICAgW2lkXT1cIid0YWItY3VzdG8tYnRuLTEnXCJcbiAgICAgICAgW2F0dHIuYXJpYS1zZWxlY3RlZF09XCJ0YWIgPT09IDFcIlxuICAgICAgICBbYXR0ci50YWJpbmRleF09XCJ0YWIgPT09IDEgPyAwIDogLTFcIlxuICAgICAgICBbYXR0ci5hcmlhLWNvbnRyb2xzXT1cIid0YWItY3VzdG8tcG5sLTEnXCJcbiAgICAgICAgKGNsaWNrKT1cInRhYiA9IDFcIlxuICAgICAgPlxuICAgICAgICB7eyAnQHByeS5hZG1pbi5jdXN0b21pemUudGFibGUnIHwgaTE4biB9fVxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBjbGFzcz1cIm8tdGFic19fbGlzdF9fYnRuXCJcbiAgICAgICAgcm9sZT1cInRhYlwiXG4gICAgICAgIFtpZF09XCIndGFiLWN1c3RvLWJ0bi0yJ1wiXG4gICAgICAgIFthdHRyLmFyaWEtc2VsZWN0ZWRdPVwidGFiID09PSAyXCJcbiAgICAgICAgW2F0dHIudGFiaW5kZXhdPVwidGFiID09PSAyID8gMCA6IC0xXCJcbiAgICAgICAgW2F0dHIuYXJpYS1jb250cm9sc109XCIndGFiLWN1c3RvLXBubC0yJ1wiXG4gICAgICAgIChjbGljayk9XCJ0YWIgPSAyXCJcbiAgICAgID5cbiAgICAgICAge3sgJ0BwcnkuYWRtaW4uY2xhc3Nlcy5ydWxlcycgfCBpMThuIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIGNsYXNzPVwiby10YWJzX19saXN0X19idG5cIlxuICAgICAgICByb2xlPVwidGFiXCJcbiAgICAgICAgW2lkXT1cIid0YWItY3VzdG8tYnRuLTMnXCJcbiAgICAgICAgW2F0dHIuYXJpYS1zZWxlY3RlZF09XCJ0YWIgPT09IDNcIlxuICAgICAgICBbYXR0ci50YWJpbmRleF09XCJ0YWIgPT09IDMgPyAwIDogLTFcIlxuICAgICAgICBbYXR0ci5hcmlhLWNvbnRyb2xzXT1cIid0YWItY3VzdG8tcG5sLTMnXCJcbiAgICAgICAgKGNsaWNrKT1cInRhYiA9IDNcIlxuICAgICAgPlxuICAgICAgICB7eyAnQHByeS5hZG1pbi5jdXN0b21pemUudGlsZScgfCBpMThuIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJvLXRhYnNfX3BhbmVsc1wiPlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cIm8tdGFic19fcGFuZWxzX19pdGVtXCJcbiAgICAgICAgW2NsYXNzLmlzLWhpZGRlbl09XCJ0YWIgIT09IDBcIlxuICAgICAgICBbaWRdPVwiJ3RhYi1jdXN0by1wbmwtMCdcIlxuICAgICAgICByb2xlPVwidGFicGFuZWxcIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiJ3RhYi1jdXN0by1idG4tMCdcIlxuICAgICAgICB0YWJpbmRleD1cIjBcIlxuICAgICAgPlxuICAgICAgICA8cHJ5LWFkbWluLWNsYXNzZXMtY3VzdG9taXplLXRvb2x0aXBcbiAgICAgICAgICAoYmFja1ByZXNzZWQpPVwiZ29CYWNrKClcIlxuICAgICAgICAgIFtjdXJyZW50Q2xhc3NdPVwiY3VycmVudENsYXNzJCB8IGFzeW5jXCJcbiAgICAgICAgPjwvcHJ5LWFkbWluLWNsYXNzZXMtY3VzdG9taXplLXRvb2x0aXA+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJvLXRhYnNfX3BhbmVsc19faXRlbVwiXG4gICAgICAgIFtjbGFzcy5pcy1oaWRkZW5dPVwidGFiICE9PSAxXCJcbiAgICAgICAgW2lkXT1cIid0YWItY3VzdG8tcG5sLTEnXCJcbiAgICAgICAgcm9sZT1cInRhYnBhbmVsXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cIid0YWItY3VzdG8tYnRuLTEnXCJcbiAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgID5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxuICAgICAgICAgIDxoMj57eyAnQHByeS5hZG1pbi5jdXN0b21pemUudGFibGVBdHRycycgfCBpMThuIH19PC9oMj5cblxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNka0Ryb3BMaXN0XG4gICAgICAgICAgICAjZGVmYXVsdExpc3Q9XCJjZGtEcm9wTGlzdFwiXG4gICAgICAgICAgICBbY2RrRHJvcExpc3REYXRhXT1cImRlZmF1bHRBdHRyaWJ1dGVzXCJcbiAgICAgICAgICAgIFtjZGtEcm9wTGlzdENvbm5lY3RlZFRvXT1cIltub3REZWZhdWx0TGlzdF1cIlxuICAgICAgICAgICAgY2xhc3M9XCJsaXN0XCJcbiAgICAgICAgICAgIChjZGtEcm9wTGlzdERyb3BwZWQpPVwiZHJvcCgkZXZlbnQpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaXRlbVwiICpuZ0Zvcj1cImxldCBpdGVtIG9mIGRlZmF1bHRBdHRyaWJ1dGVzXCIgY2RrRHJhZz57eyBpdGVtIH19PC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIj5cbiAgICAgICAgICA8aDI+e3sgJ0BwcnkuYWRtaW4uY3VzdG9taXplLm5vVGFibGVBdHRycycgfCBpMThuIH19PC9oMj5cblxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNka0Ryb3BMaXN0XG4gICAgICAgICAgICAjbm90RGVmYXVsdExpc3Q9XCJjZGtEcm9wTGlzdFwiXG4gICAgICAgICAgICBbY2RrRHJvcExpc3REYXRhXT1cIm90aGVyQXR0cmlidXRlc1wiXG4gICAgICAgICAgICBbY2RrRHJvcExpc3RDb25uZWN0ZWRUb109XCJbZGVmYXVsdExpc3RdXCJcbiAgICAgICAgICAgIGNsYXNzPVwibGlzdFwiXG4gICAgICAgICAgICAoY2RrRHJvcExpc3REcm9wcGVkKT1cImRyb3AoJGV2ZW50KVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIml0ZW1cIiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBvdGhlckF0dHJpYnV0ZXNcIiBjZGtEcmFnPnt7IGl0ZW0gfX08L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm0tYnRuLWdyb3VwIC13aWR0aC1sZ1wiPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgY2xhc3M9XCJhLWJ0biBhLWJ0bi0tc2Vjb25kYXJ5XCJcbiAgICAgICAgICAgIChjbGljayk9XCJnb0JhY2soKVwiXG4gICAgICAgICAgICBbaW5uZXJIVE1MXT1cIidAcHJ5LmFkbWluLmNhbmNlbCcgfCBpMThuXCJcbiAgICAgICAgICA+PC9idXR0b24+XG4gICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImEtYnRuIGEtYnRuLS1wcmltYXJ5XCIgdHlwZT1cInN1Ym1pdFwiIChjbGljayk9XCJ1cGRhdGVUYWJsZUF0dHJzKClcIj5cbiAgICAgICAgICAgIHt7ICdAcHJ5LmFkbWluLmN1c3RvbWl6ZS51cGRhdGVUYWJsZScgfCBpMThuIH19XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiby10YWJzX19wYW5lbHNfX2l0ZW1cIlxuICAgICAgICBbY2xhc3MuaXMtaGlkZGVuXT1cInRhYiAhPT0gMlwiXG4gICAgICAgIFtpZF09XCIndGFiLWN1c3RvLXBubC0yJ1wiXG4gICAgICAgIHJvbGU9XCJ0YWJwYW5lbFwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCIndGFiLWN1c3RvLWJ0bi0yJ1wiXG4gICAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICA+XG4gICAgICAgIDxwcnktYWRtaW4tY2xhc3Nlcy1jdXN0b21pemUtc3ltYm9sXG4gICAgICAgICAgKGJhY2tQcmVzc2VkKT1cImdvQmFjaygpXCJcbiAgICAgICAgICBbY3VycmVudENsYXNzXT1cImN1cnJlbnRDbGFzcyQgfCBhc3luY1wiXG4gICAgICAgID48L3ByeS1hZG1pbi1jbGFzc2VzLWN1c3RvbWl6ZS1zeW1ib2w+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJvLXRhYnNfX3BhbmVsc19faXRlbVwiXG4gICAgICAgIFtjbGFzcy5pcy1oaWRkZW5dPVwidGFiICE9PSAzXCJcbiAgICAgICAgW2lkXT1cIid0YWItY3VzdG8tcG5sLTMnXCJcbiAgICAgICAgcm9sZT1cInRhYnBhbmVsXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cIid0YWItY3VzdG8tYnRuLTMnXCJcbiAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgID5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxuICAgICAgICAgIDxoMj57eyAnQHByeS5hZG1pbi5jdXN0b21pemUudGlsZScgfCBpMThuIH19PC9oMj5cblxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNka0Ryb3BMaXN0XG4gICAgICAgICAgICAjZGVmYXVsdFRpbGVzTGlzdD1cImNka0Ryb3BMaXN0XCJcbiAgICAgICAgICAgIFtjZGtEcm9wTGlzdERhdGFdPVwiZGVmYXVsdFRpbGVBdHRyaWJ1dGVzXCJcbiAgICAgICAgICAgIFtjZGtEcm9wTGlzdENvbm5lY3RlZFRvXT1cIltub3REZWZhdWx0VGlsZXNMaXN0XVwiXG4gICAgICAgICAgICBjbGFzcz1cImxpc3RcIlxuICAgICAgICAgICAgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJkcm9wKCRldmVudClcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpdGVtXCIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZGVmYXVsdFRpbGVBdHRyaWJ1dGVzXCIgY2RrRHJhZz57eyBpdGVtIH19PC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIj5cbiAgICAgICAgICA8aDI+e3sgJ0BwcnkuYWRtaW4uY3VzdG9taXplLm5vVGlsZUF0dHJzJyB8IGkxOG4gfX08L2gyPlxuXG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2RrRHJvcExpc3RcbiAgICAgICAgICAgICNub3REZWZhdWx0VGlsZXNMaXN0PVwiY2RrRHJvcExpc3RcIlxuICAgICAgICAgICAgW2Nka0Ryb3BMaXN0RGF0YV09XCJvdGhlclRpbGVBdHRyaWJ1dGVzXCJcbiAgICAgICAgICAgIFtjZGtEcm9wTGlzdENvbm5lY3RlZFRvXT1cIltkZWZhdWx0VGlsZXNMaXN0XVwiXG4gICAgICAgICAgICBjbGFzcz1cImxpc3RcIlxuICAgICAgICAgICAgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJkcm9wKCRldmVudClcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpdGVtXCIgKm5nRm9yPVwibGV0IGl0ZW0gb2Ygb3RoZXJUaWxlQXR0cmlidXRlc1wiIGNka0RyYWc+e3sgaXRlbSB9fTwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2PlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNUaWxlQ29uZlZhbGlkKClcIj5cbiAgICAgICAgICAgIDxwPnt7ICdAcHJ5LmFkbWluLmN1c3RvbWl6ZS50aWxlSGludCcgfCBpMThuOiB7IG1heDogbWF4VGlsZXNBdHRyaWJ1dGVzIH0gfX08L3A+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtLWJ0bi1ncm91cCAtd2lkdGgtbGdcIj5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIGNsYXNzPVwiYS1idG4gYS1idG4tLXNlY29uZGFyeVwiXG4gICAgICAgICAgICAoY2xpY2spPVwiZ29CYWNrKClcIlxuICAgICAgICAgICAgW2lubmVySFRNTF09XCInQHByeS5hZG1pbi5jYW5jZWwnIHwgaTE4blwiXG4gICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGNsYXNzPVwiYS1idG4gYS1idG4tLXByaW1hcnlcIlxuICAgICAgICAgICAgdHlwZT1cInN1Ym1pdFwiXG4gICAgICAgICAgICAoY2xpY2spPVwidXBkYXRlVGlsZUF0dHJzKClcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFpc1RpbGVDb25mVmFsaWQoKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge3sgJ0BwcnkuYWRtaW4uY3VzdG9taXplLnVwZGF0ZVRpbGUnIHwgaTE4biB9fVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
90
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRtaW4tY2xhc3Nlcy1jdXN0b21pemUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvYWRtaW4vY29tcG9uZW50cy9hZG1pbi1jbGFzc2VzL2FkbWluLWNsYXNzZXMtY3VzdG9taXplL2FkbWluLWNsYXNzZXMtY3VzdG9taXplLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2FkbWluL2NvbXBvbmVudHMvYWRtaW4tY2xhc3Nlcy9hZG1pbi1jbGFzc2VzLWN1c3RvbWl6ZS9hZG1pbi1jbGFzc2VzLWN1c3RvbWl6ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWUsZUFBZSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekYsT0FBTyxFQUFFLFNBQVMsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUdyRCxPQUFPLEVBRUwsWUFBWSxFQUNaLGNBQWMsRUFDZCxhQUFhLEVBQ2IsZUFBZSxFQUNmLFNBQVMsRUFDVCx3QkFBd0IsRUFDekIsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQUUsYUFBYSxFQUFFLGlCQUFpQixFQUFFLEdBQUcsRUFBYyxFQUFFLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOzs7Ozs7Ozs7QUFNckUsTUFBTSxPQUFPLDhCQUErQixTQUFRLHdCQUF3QjtJQVkxRSxZQUFvQixLQUFpQixFQUFVLE1BQWMsRUFBVSxLQUFxQjtRQUMxRixLQUFLLEVBQUUsQ0FBQztRQURVLFVBQUssR0FBTCxLQUFLLENBQVk7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQVUsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFWNUYsaUJBQVksR0FBVSxFQUFXLENBQUM7UUFDbEMsc0JBQWlCLEdBQWEsRUFBRSxDQUFDO1FBQ2pDLG9CQUFlLEdBQWEsRUFBRSxDQUFDO1FBRy9CLGFBQVEsR0FBd0IsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZDLDBCQUFxQixHQUFhLEVBQUUsQ0FBQztRQUNyQyx3QkFBbUIsR0FBYSxFQUFFLENBQUM7UUFDbkMsdUJBQWtCLEdBQUcsQ0FBQyxDQUFDO1FBSXJCLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUNwQixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUNyQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFXLEVBQUUsQ0FBQyxDQUFDLENBQzdGLENBQ0YsQ0FBQztRQUNGLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLENBQUM7UUFDdkQsSUFBSSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUM7WUFDakMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsbUJBQW1CLENBQUMsYUFBYSxDQUFDO1lBQ3BELElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUM7U0FDMUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2pHLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxJQUFLLEVBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM5RyxJQUFJLENBQUMsd0JBQXdCLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLGlDQUFpQyxDQUFDLENBQUMsSUFBSSxDQUN2RyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQ3JDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsK0JBQStCLENBQUMsQ0FBQyxLQUFLLElBQUksRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFLENBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUNoSCxDQUFDO1FBQ0YsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQ3BCLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRTtZQUNyRyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDM0QsSUFBSSxDQUFDLGVBQWUsR0FBRyxDQUFDLEtBQUssSUFBSSxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLFVBQVU7aUJBQzVELEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztpQkFDeEIsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUM3QyxDQUFDLENBQUMsQ0FDSCxDQUFDO1FBQ0YsSUFBSSxDQUFDLDRCQUE0QixHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDLElBQUksQ0FDbkcsaUJBQWlCLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUNyQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLCtCQUErQixDQUFDLENBQUMsS0FBSyxJQUFJLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRSxDQUFVLEVBQUUsSUFBSSxDQUFDLENBQUMsRUFDL0csR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQ3BFLENBQUM7UUFDRixJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FDcEIsSUFBSSxDQUFDLDRCQUE0QixDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFO1lBQ3pHLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUMvRCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsQ0FBQyxLQUFLLElBQUksRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxVQUFVO2lCQUNoRSxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7aUJBQ3hCLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDN0MsQ0FBQyxDQUFDLENBQ0gsQ0FBQztRQUNGLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUNwQixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUN4RSxJQUFJLENBQUMsa0JBQWtCLEdBQUcsR0FBRyxDQUFDO1FBQ2hDLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTTtRQUNKLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDOUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRUQsSUFBSSxDQUFDLEtBQTRCO1FBQy9CLElBQUksS0FBSyxDQUFDLGlCQUFpQixLQUFLLEtBQUssQ0FBQyxTQUFTLEVBQUU7WUFDL0MsZUFBZSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxhQUFhLEVBQUUsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO1NBQ2hGO2FBQU07WUFDTCxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxhQUFhLEVBQUUsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO1NBQ2hIO1FBQ0QsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLGlCQUFpQixDQUFDLEVBQUUsS0FBSyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDO1FBQzVHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzdFLENBQUM7SUFFRCxnQkFBZ0I7UUFDZCxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FDakIsYUFBYSxDQUFDLDBCQUEwQixDQUFDO1lBQ3ZDLFdBQVcsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLEVBQUU7U0FDdkUsQ0FBQyxDQUNILENBQUM7UUFDRixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDaEIsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FDakIsYUFBYSxDQUFDLGtCQUFrQixDQUFDO1lBQy9CLFdBQVcsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMscUJBQXFCLEVBQUU7U0FDcEUsQ0FBQyxDQUNILENBQUM7UUFDRixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDaEIsQ0FBQztJQUVELGVBQWU7UUFDYixPQUFPLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDO0lBQy9HLENBQUM7OEdBN0ZVLDhCQUE4QjtrR0FBOUIsOEJBQThCLDBGQ3JCM0MsZzlIQStHQTs7MkZEMUZhLDhCQUE4QjtrQkFKMUMsU0FBUzsrQkFDRSw2QkFBNkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDZGtEcmFnRHJvcCwgbW92ZUl0ZW1JbkFycmF5LCB0cmFuc2ZlckFycmF5SXRlbSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQge1xuICBDbGFzcyxcbiAgQ2xhc3NBY3Rpb25zLFxuICBDbGFzc1NlbGVjdG9ycyxcbiAgQ29uZmlnQWN0aW9ucyxcbiAgQ29uZmlnU2VsZWN0b3JzLFxuICBJdGVtVXRpbHMsXG4gIFN1YnNjcmlwdGlvbm5lckRpcmVjdGl2ZVxufSBmcm9tICdAcHJvdm9seS9kYXNoYm9hcmQnO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgY29tYmluZUxhdGVzdFdpdGgsIG1hcCwgT2JzZXJ2YWJsZSwgb2YsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQWRtaW5DbGFzc0FjdGlvbnMgfSBmcm9tICcuLi9zdG9yZS9hZG1pbi1jbGFzcy5hY3Rpb25zJztcbmltcG9ydCB7IEFkbWluQ2xhc3NTZWxlY3RvcnMgfSBmcm9tICcuLi9zdG9yZS9hZG1pbi1jbGFzcy5zZWxlY3RvcnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwcnktYWRtaW4tY2xhc3Nlcy1jdXN0b21pemUnLFxuICB0ZW1wbGF0ZVVybDogJy4vYWRtaW4tY2xhc3Nlcy1jdXN0b21pemUuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIEFkbWluQ2xhc3Nlc0N1c3RvbWl6ZUNvbXBvbmVudCBleHRlbmRzIFN1YnNjcmlwdGlvbm5lckRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIGN1cnJlbnRDbGFzcyQ6IE9ic2VydmFibGU8Q2xhc3MgfCB1bmRlZmluZWQ+O1xuICBjdXJyZW50Q2xhc3M6IENsYXNzID0ge30gYXMgQ2xhc3M7XG4gIGRlZmF1bHRBdHRyaWJ1dGVzOiBzdHJpbmdbXSA9IFtdO1xuICBvdGhlckF0dHJpYnV0ZXM6IHN0cmluZ1tdID0gW107XG4gIGN1cnJlbnRQcm9wZXJ0aWVzQ29uZmlnJDogT2JzZXJ2YWJsZTxzdHJpbmdbXT47XG4gIGN1cnJlbnRUaWxlUHJvcGVydGllc0NvbmZpZyQ6IE9ic2VydmFibGU8c3RyaW5nW10+O1xuICBjbGFzc2VzJDogT2JzZXJ2YWJsZTxDbGFzc1tdPiA9IG9mKFtdKTtcbiAgZGVmYXVsdFRpbGVBdHRyaWJ1dGVzOiBzdHJpbmdbXSA9IFtdO1xuICBvdGhlclRpbGVBdHRyaWJ1dGVzOiBzdHJpbmdbXSA9IFtdO1xuICBtYXhUaWxlc0F0dHJpYnV0ZXMgPSA1O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc3RvcmU6IFN0b3JlPGFueT4sIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgdGhpcy5yb3V0ZS5wYXJhbXMuc3Vic2NyaWJlKChwYXJhbXMpID0+XG4gICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goQWRtaW5DbGFzc0FjdGlvbnMuc2VsZWN0Q2xhc3MoeyBjbGF6ejogeyBpZDogcGFyYW1zWydpZCddIH0gYXMgQ2xhc3MgfSkpXG4gICAgICApXG4gICAgKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKENsYXNzQWN0aW9ucy5sb2FkKCkpO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goQ29uZmlnQWN0aW9ucy5sb2FkQ3VzdG9taXphdGlvbigpKTtcbiAgICB0aGlzLmN1cnJlbnRDbGFzcyQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMuc3RvcmUuc2VsZWN0KEFkbWluQ2xhc3NTZWxlY3RvcnMuc2VsZWN0ZWRDbGFzcyksXG4gICAgICB0aGlzLnN0b3JlLnNlbGVjdChDbGFzc1NlbGVjdG9ycy5jbGFzc2VzKVxuICAgIF0pLnBpcGUoc3dpdGNoTWFwKChbY2xhenosIF9dKSA9PiB0aGlzLnN0b3JlLnNlbGVjdChDbGFzc1NlbGVjdG9ycy5jbGFzc0J5SWQoY2xheno/LmlkID8/ICcnKSkpKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKHRoaXMuY3VycmVudENsYXNzJC5zdWJzY3JpYmUoKGNsYXp6KSA9PiAodGhpcy5jdXJyZW50Q2xhc3MgPSBjbGF6eiA/PyAoe30gYXMgQ2xhc3MpKSkpO1xuICAgIHRoaXMuY3VycmVudFByb3BlcnRpZXNDb25maWckID0gdGhpcy5zdG9yZS5zZWxlY3QoQ29uZmlnU2VsZWN0b3JzLnRhYmxlRGVmYXVsdEF0dHJpYnV0ZXNEZWZpbml0aW9ucykucGlwZShcbiAgICAgIGNvbWJpbmVMYXRlc3RXaXRoKHRoaXMuY3VycmVudENsYXNzJCksXG4gICAgICBtYXAoKFtkZWZzLCBjbGF6el0pID0+IEl0ZW1VdGlscy5nZXRBdHRyaWJ1dGVzRGVmaW5pdGlvbkZvckNsYXNzKChjbGF6eiA/PyB7IGF0dHJpYnV0ZXM6IFtdIH0pIGFzIENsYXNzLCBkZWZzKSlcbiAgICApO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICB0aGlzLmN1cnJlbnRQcm9wZXJ0aWVzQ29uZmlnJC5waXBlKGNvbWJpbmVMYXRlc3RXaXRoKHRoaXMuY3VycmVudENsYXNzJCkpLnN1YnNjcmliZSgoW2F0dHJzLCBjbGF6el0pID0+IHtcbiAgICAgICAgdGhpcy5kZWZhdWx0QXR0cmlidXRlcyA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoYXR0cnMpKTtcbiAgICAgICAgdGhpcy5vdGhlckF0dHJpYnV0ZXMgPSAoY2xhenogPz8geyBhdHRyaWJ1dGVzOiBbXSB9KS5hdHRyaWJ1dGVzXG4gICAgICAgICAgLm1hcCgoYXR0cikgPT4gYXR0ci5uYW1lKVxuICAgICAgICAgIC5maWx0ZXIoKG5hbWUpID0+ICFhdHRycy5pbmNsdWRlcyhuYW1lKSk7XG4gICAgICB9KVxuICAgICk7XG4gICAgdGhpcy5jdXJyZW50VGlsZVByb3BlcnRpZXNDb25maWckID0gdGhpcy5zdG9yZS5zZWxlY3QoQ29uZmlnU2VsZWN0b3JzLnRpbGVBdHRyaWJ1dGVzRGVmaW5pdGlvbnMpLnBpcGUoXG4gICAgICBjb21iaW5lTGF0ZXN0V2l0aCh0aGlzLmN1cnJlbnRDbGFzcyQpLFxuICAgICAgbWFwKChbZGVmcywgY2xhenpdKSA9PiBJdGVtVXRpbHMuZ2V0QXR0cmlidXRlc0RlZmluaXRpb25Gb3JDbGFzcygoY2xhenogPz8geyBhdHRyaWJ1dGVzOiBbXSB9KSBhcyBDbGFzcywgZGVmcykpLFxuICAgICAgbWFwKChhdHRycykgPT4gYXR0cnMuZmlsdGVyKChfLCBpKSA9PiBpIDwgdGhpcy5tYXhUaWxlc0F0dHJpYnV0ZXMpKVxuICAgICk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIHRoaXMuY3VycmVudFRpbGVQcm9wZXJ0aWVzQ29uZmlnJC5waXBlKGNvbWJpbmVMYXRlc3RXaXRoKHRoaXMuY3VycmVudENsYXNzJCkpLnN1YnNjcmliZSgoW2F0dHJzLCBjbGF6el0pID0+IHtcbiAgICAgICAgdGhpcy5kZWZhdWx0VGlsZUF0dHJpYnV0ZXMgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGF0dHJzKSk7XG4gICAgICAgIHRoaXMub3RoZXJUaWxlQXR0cmlidXRlcyA9IChjbGF6eiA/PyB7IGF0dHJpYnV0ZXM6IFtdIH0pLmF0dHJpYnV0ZXNcbiAgICAgICAgICAubWFwKChhdHRyKSA9PiBhdHRyLm5hbWUpXG4gICAgICAgICAgLmZpbHRlcigobmFtZSkgPT4gIWF0dHJzLmluY2x1ZGVzKG5hbWUpKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgdGhpcy5zdG9yZS5zZWxlY3QoQ29uZmlnU2VsZWN0b3JzLm1heEF0dHJpYnV0ZXNJblRpbGVzKS5zdWJzY3JpYmUoKG1heCkgPT4ge1xuICAgICAgICB0aGlzLm1heFRpbGVzQXR0cmlidXRlcyA9IG1heDtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIGdvQmFjaygpIHtcbiAgICBjb25zdCBwYXRoID0gdGhpcy5yb3V0ZXIuY3JlYXRlVXJsVHJlZShbJy4uLy4uJ10sIHsgcmVsYXRpdmVUbzogdGhpcy5yb3V0ZSB9KTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKEFkbWluQ2xhc3NBY3Rpb25zLmJhY2soeyBwYXRoOiBwYXRoLnRvU3RyaW5nKCkgfSkpO1xuICB9XG5cbiAgZHJvcChldmVudDogQ2RrRHJhZ0Ryb3A8c3RyaW5nW10+KSB7XG4gICAgaWYgKGV2ZW50LnByZXZpb3VzQ29udGFpbmVyID09PSBldmVudC5jb250YWluZXIpIHtcbiAgICAgIG1vdmVJdGVtSW5BcnJheShldmVudC5jb250YWluZXIuZGF0YSwgZXZlbnQucHJldmlvdXNJbmRleCwgZXZlbnQuY3VycmVudEluZGV4KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdHJhbnNmZXJBcnJheUl0ZW0oZXZlbnQucHJldmlvdXNDb250YWluZXIuZGF0YSwgZXZlbnQuY29udGFpbmVyLmRhdGEsIGV2ZW50LnByZXZpb3VzSW5kZXgsIGV2ZW50LmN1cnJlbnRJbmRleCk7XG4gICAgfVxuICAgIGNvbnN0IHRvU29ydCA9IGV2ZW50LnByZXZpb3VzQ29udGFpbmVyLmlkID09PSAnY2RrLWRyb3AtbGlzdC0xJyA/IGV2ZW50LnByZXZpb3VzQ29udGFpbmVyIDogZXZlbnQuY29udGFpbmVyO1xuICAgIHRvU29ydC5kYXRhLnNvcnQoKGEsIGIpID0+IGEudG9Mb3dlckNhc2UoKS5sb2NhbGVDb21wYXJlKGIudG9Mb3dlckNhc2UoKSkpO1xuICB9XG5cbiAgdXBkYXRlVGFibGVBdHRycygpIHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgQ29uZmlnQWN0aW9ucy5zYXZlVGFibGVEZWZhdWx0QXR0cmlidXRlcyh7XG4gICAgICAgIGRlZmluaXRpb25zOiB7IFt0aGlzLmN1cnJlbnRDbGFzcy5pZF06IHRoaXMuZGVmYXVsdEF0dHJpYnV0ZXMuc29ydCgpIH1cbiAgICAgIH0pXG4gICAgKTtcbiAgICB0aGlzLmdvQmFjaygpO1xuICB9XG5cbiAgdXBkYXRlVGlsZUF0dHJzKCkge1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICBDb25maWdBY3Rpb25zLnNhdmVUaWxlQXR0cmlidXRlcyh7XG4gICAgICAgIGRlZmluaXRpb25zOiB7IFt0aGlzLmN1cnJlbnRDbGFzcy5pZF06IHRoaXMuZGVmYXVsdFRpbGVBdHRyaWJ1dGVzIH1cbiAgICAgIH0pXG4gICAgKTtcbiAgICB0aGlzLmdvQmFjaygpO1xuICB9XG5cbiAgaXNUaWxlQ29uZlZhbGlkKCkge1xuICAgIHJldHVybiB0aGlzLmRlZmF1bHRUaWxlQXR0cmlidXRlcy5sZW5ndGggPiAwICYmIHRoaXMuZGVmYXVsdFRpbGVBdHRyaWJ1dGVzLmxlbmd0aCA8PSB0aGlzLm1heFRpbGVzQXR0cmlidXRlcztcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIm8tcHJ5LWFkbWluLWNsYXNzZXMtY3VzdG9taXplXCI+XG4gIDxoMSBjbGFzcz1cImEtaDFcIiBpZD1cInRhYi1jdXN0b21cIj57eyAnQHByeS5hZG1pbi5jdXN0b21pemUudGl0bGUnIHwgaTE4biB9fTwvaDE+XG5cbiAgPHByeS10YWItZ3JvdXAgdHJhbnNsYXRpb25TdHJpbmdCYXNlPVwiQHByeS5hZG1pbi5cIj5cbiAgICA8cHJ5LXRhYiBbdGVtcGxhdGVSZWZdPVwiY3VzdG9taXplVGVtcGxhdGVcIiBuYW1lPVwiY3VzdG9taXplLnRlbXBsYXRlXCI+PC9wcnktdGFiPlxuICAgIDxwcnktdGFiIFt0ZW1wbGF0ZVJlZl09XCJjdXN0b21pemVUYWJsZVwiIG5hbWU9XCJjdXN0b21pemUudGFibGVcIj48L3ByeS10YWI+XG4gICAgPHByeS10YWIgW3RlbXBsYXRlUmVmXT1cImN1c3RvbWl6ZVN5bWJvbFwiIG5hbWU9XCJjbGFzc2VzLnJ1bGVzXCI+PC9wcnktdGFiPlxuICAgIDxwcnktdGFiIFt0ZW1wbGF0ZVJlZl09XCJjdXN0b21pemVUaWxlXCIgbmFtZT1cImN1c3RvbWl6ZS50aWxlXCI+PC9wcnktdGFiPlxuICA8L3ByeS10YWItZ3JvdXA+XG5cbiAgPG5nLXRlbXBsYXRlICNjdXN0b21pemVUZW1wbGF0ZT5cbiAgICA8cHJ5LWFkbWluLWNsYXNzZXMtY3VzdG9taXplLXRvb2x0aXBcbiAgICAgIChiYWNrUHJlc3NlZCk9XCJnb0JhY2soKVwiXG4gICAgICBbY3VycmVudENsYXNzXT1cImN1cnJlbnRDbGFzcyQgfCBhc3luY1wiXG4gICAgPjwvcHJ5LWFkbWluLWNsYXNzZXMtY3VzdG9taXplLXRvb2x0aXA+XG4gIDwvbmctdGVtcGxhdGU+XG4gIDxuZy10ZW1wbGF0ZSAjY3VzdG9taXplVGFibGU+XG4gICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxuICAgICAgPGgyPnt7ICdAcHJ5LmFkbWluLmN1c3RvbWl6ZS50YWJsZUF0dHJzJyB8IGkxOG4gfX08L2gyPlxuICAgICAgPGRpdlxuICAgICAgICBjZGtEcm9wTGlzdFxuICAgICAgICAjZGVmYXVsdExpc3Q9XCJjZGtEcm9wTGlzdFwiXG4gICAgICAgIFtjZGtEcm9wTGlzdERhdGFdPVwiZGVmYXVsdEF0dHJpYnV0ZXNcIlxuICAgICAgICBbY2RrRHJvcExpc3RDb25uZWN0ZWRUb109XCJbbm90RGVmYXVsdExpc3RdXCJcbiAgICAgICAgY2xhc3M9XCJsaXN0XCJcbiAgICAgICAgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJkcm9wKCRldmVudClcIlxuICAgICAgPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaXRlbVwiICpuZ0Zvcj1cImxldCBpdGVtIG9mIGRlZmF1bHRBdHRyaWJ1dGVzXCIgY2RrRHJhZz57eyBpdGVtIH19PC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIj5cbiAgICAgIDxoMj57eyAnQHByeS5hZG1pbi5jdXN0b21pemUubm9UYWJsZUF0dHJzJyB8IGkxOG4gfX08L2gyPlxuICAgICAgPGRpdlxuICAgICAgICBjZGtEcm9wTGlzdFxuICAgICAgICAjbm90RGVmYXVsdExpc3Q9XCJjZGtEcm9wTGlzdFwiXG4gICAgICAgIFtjZGtEcm9wTGlzdERhdGFdPVwib3RoZXJBdHRyaWJ1dGVzXCJcbiAgICAgICAgW2Nka0Ryb3BMaXN0Q29ubmVjdGVkVG9dPVwiW2RlZmF1bHRMaXN0XVwiXG4gICAgICAgIGNsYXNzPVwibGlzdFwiXG4gICAgICAgIChjZGtEcm9wTGlzdERyb3BwZWQpPVwiZHJvcCgkZXZlbnQpXCJcbiAgICAgID5cbiAgICAgICAgPGRpdiBjbGFzcz1cIml0ZW1cIiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBvdGhlckF0dHJpYnV0ZXNcIiBjZGtEcmFnPnt7IGl0ZW0gfX08L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cIm0tYnRuLWdyb3VwIC13aWR0aC1sZ1wiPlxuICAgICAgPGJ1dHRvblxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgY2xhc3M9XCJhLWJ0biBhLWJ0bi0tc2Vjb25kYXJ5XCJcbiAgICAgICAgKGNsaWNrKT1cImdvQmFjaygpXCJcbiAgICAgICAgW2lubmVySFRNTF09XCInQHByeS5hZG1pbi5jYW5jZWwnIHwgaTE4blwiXG4gICAgICA+PC9idXR0b24+XG4gICAgICA8YnV0dG9uIGNsYXNzPVwiYS1idG4gYS1idG4tLXByaW1hcnlcIiB0eXBlPVwic3VibWl0XCIgKGNsaWNrKT1cInVwZGF0ZVRhYmxlQXR0cnMoKVwiPlxuICAgICAgICB7eyAnQHByeS5hZG1pbi5jdXN0b21pemUudXBkYXRlVGFibGUnIHwgaTE4biB9fVxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvbmctdGVtcGxhdGU+XG4gIDxuZy10ZW1wbGF0ZSAjY3VzdG9taXplU3ltYm9sPlxuICAgIDxwcnktYWRtaW4tY2xhc3Nlcy1jdXN0b21pemUtc3ltYm9sXG4gICAgICAoYmFja1ByZXNzZWQpPVwiZ29CYWNrKClcIlxuICAgICAgW2N1cnJlbnRDbGFzc109XCJjdXJyZW50Q2xhc3MkIHwgYXN5bmNcIlxuICAgID48L3ByeS1hZG1pbi1jbGFzc2VzLWN1c3RvbWl6ZS1zeW1ib2w+XG4gIDwvbmctdGVtcGxhdGU+XG4gIDxuZy10ZW1wbGF0ZSAjY3VzdG9taXplVGlsZT5cbiAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+XG4gICAgICA8aDI+e3sgJ0BwcnkuYWRtaW4uY3VzdG9taXplLnRpbGUnIHwgaTE4biB9fTwvaDI+XG4gICAgICA8ZGl2XG4gICAgICAgIGNka0Ryb3BMaXN0XG4gICAgICAgICNkZWZhdWx0VGlsZXNMaXN0PVwiY2RrRHJvcExpc3RcIlxuICAgICAgICBbY2RrRHJvcExpc3REYXRhXT1cImRlZmF1bHRUaWxlQXR0cmlidXRlc1wiXG4gICAgICAgIFtjZGtEcm9wTGlzdENvbm5lY3RlZFRvXT1cIltub3REZWZhdWx0VGlsZXNMaXN0XVwiXG4gICAgICAgIGNsYXNzPVwibGlzdFwiXG4gICAgICAgIChjZGtEcm9wTGlzdERyb3BwZWQpPVwiZHJvcCgkZXZlbnQpXCJcbiAgICAgID5cbiAgICAgICAgPGRpdiBjbGFzcz1cIml0ZW1cIiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBkZWZhdWx0VGlsZUF0dHJpYnV0ZXNcIiBjZGtEcmFnPnt7IGl0ZW0gfX08L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxuICAgICAgPGgyPnt7ICdAcHJ5LmFkbWluLmN1c3RvbWl6ZS5ub1RpbGVBdHRycycgfCBpMThuIH19PC9oMj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2RrRHJvcExpc3RcbiAgICAgICAgI25vdERlZmF1bHRUaWxlc0xpc3Q9XCJjZGtEcm9wTGlzdFwiXG4gICAgICAgIFtjZGtEcm9wTGlzdERhdGFdPVwib3RoZXJUaWxlQXR0cmlidXRlc1wiXG4gICAgICAgIFtjZGtEcm9wTGlzdENvbm5lY3RlZFRvXT1cIltkZWZhdWx0VGlsZXNMaXN0XVwiXG4gICAgICAgIGNsYXNzPVwibGlzdFwiXG4gICAgICAgIChjZGtEcm9wTGlzdERyb3BwZWQpPVwiZHJvcCgkZXZlbnQpXCJcbiAgICAgID5cbiAgICAgICAgPGRpdiBjbGFzcz1cIml0ZW1cIiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBvdGhlclRpbGVBdHRyaWJ1dGVzXCIgY2RrRHJhZz57eyBpdGVtIH19PC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXY+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzVGlsZUNvbmZWYWxpZCgpXCI+XG4gICAgICAgIDxwPnt7ICdAcHJ5LmFkbWluLmN1c3RvbWl6ZS50aWxlSGludCcgfCBpMThuIDogeyBtYXg6IG1heFRpbGVzQXR0cmlidXRlcyB9IH19PC9wPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwibS1idG4tZ3JvdXAgLXdpZHRoLWxnXCI+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBjbGFzcz1cImEtYnRuIGEtYnRuLS1zZWNvbmRhcnlcIlxuICAgICAgICAoY2xpY2spPVwiZ29CYWNrKClcIlxuICAgICAgICBbaW5uZXJIVE1MXT1cIidAcHJ5LmFkbWluLmNhbmNlbCcgfCBpMThuXCJcbiAgICAgID48L2J1dHRvbj5cbiAgICAgIDxidXR0b24gY2xhc3M9XCJhLWJ0biBhLWJ0bi0tcHJpbWFyeVwiIHR5cGU9XCJzdWJtaXRcIiAoY2xpY2spPVwidXBkYXRlVGlsZUF0dHJzKClcIiBbZGlzYWJsZWRdPVwiIWlzVGlsZUNvbmZWYWxpZCgpXCI+XG4gICAgICAgIHt7ICdAcHJ5LmFkbWluLmN1c3RvbWl6ZS51cGRhdGVUaWxlJyB8IGkxOG4gfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L25nLXRlbXBsYXRlPlxuPC9kaXY+XG4iXX0=
|