@senior-agronegocio/angular-components 1.0.17 → 1.0.19
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/components/event-control-board/event-control-board.module.d.ts +4 -3
- package/esm2022/components/event-control-board/event-control-board.component.mjs +11 -10
- package/esm2022/components/event-control-board/event-control-board.module.mjs +12 -8
- package/esm2022/fields/lookups/core/agro-base-lookup-field.mjs +33 -12
- package/esm2022/fields/lookups/core/agro-branch-lookup.mjs +3 -3
- package/esm2022/fields/lookups/core/agro-carrier-lookup.mjs +25 -0
- package/esm2022/fields/lookups/core/index.mjs +2 -3
- package/esm2022/fields/lookups/utils/agro-lookup-utils.mjs +51 -3
- package/esm2022/services/i18n/en-US.mjs +3 -1
- package/esm2022/services/i18n/pt-BR.mjs +3 -1
- package/fesm2022/senior-agronegocio-angular-components.mjs +162 -107
- package/fesm2022/senior-agronegocio-angular-components.mjs.map +1 -1
- package/fields/lookups/core/agro-base-lookup-field.d.ts +2 -0
- package/fields/lookups/core/{agro-driver-lookup.d.ts → agro-carrier-lookup.d.ts} +2 -2
- package/fields/lookups/core/index.d.ts +1 -2
- package/package.json +1 -1
- package/services/i18n/en-US.d.ts +2 -0
- package/services/i18n/pt-BR.d.ts +2 -0
- package/esm2022/fields/lookups/core/agro-driver-lookup.mjs +0 -25
- package/esm2022/fields/lookups/core/agro-rural-estate-lookup.mjs +0 -25
- package/fields/lookups/core/agro-rural-estate-lookup.d.ts +0 -7
|
@@ -25,18 +25,19 @@ import { FixationModule } from "./service/fixation-entity/fixation.module";
|
|
|
25
25
|
import { CancelEventDialogModule } from "../cancel-event-dialog/cancel-event-dialog.module";
|
|
26
26
|
import { LocaleModule } from "@seniorsistemas/angular-components/locale";
|
|
27
27
|
import { ButtonModule } from "@seniorsistemas/angular-components/button";
|
|
28
|
-
import {
|
|
28
|
+
import { DialogComponent } from "@seniorsistemas/angular-components/dialog";
|
|
29
|
+
import { DialogService } from "primeng/dynamicdialog";
|
|
29
30
|
import { FieldsetModule } from "@seniorsistemas/angular-components/fieldset";
|
|
30
31
|
import { BadgeModule } from "@seniorsistemas/angular-components/badge";
|
|
31
|
-
import {
|
|
32
|
+
import { StructureModule } from "@seniorsistemas/angular-components/structure";
|
|
32
33
|
import * as i0 from "@angular/core";
|
|
33
34
|
import * as i1 from "@seniorsistemas/angular-components/locale";
|
|
34
35
|
export class EventControlBoardModule {
|
|
35
36
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: EventControlBoardModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
36
37
|
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: EventControlBoardModule, declarations: [EventControlBoardComponent], imports: [i1.LocaleModule, SharedModule,
|
|
37
38
|
ButtonModule,
|
|
39
|
+
DialogComponent,
|
|
38
40
|
EventStepsModule,
|
|
39
|
-
DialogModule,
|
|
40
41
|
FieldsetModule,
|
|
41
42
|
BadgeModule,
|
|
42
43
|
E001pesModule,
|
|
@@ -55,13 +56,14 @@ export class EventControlBoardModule {
|
|
|
55
56
|
WebsocketModule,
|
|
56
57
|
LibTranslationModule,
|
|
57
58
|
FixationModule,
|
|
58
|
-
CancelEventDialogModule
|
|
59
|
+
CancelEventDialogModule,
|
|
60
|
+
StructureModule], exports: [EventControlBoardComponent] });
|
|
59
61
|
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: EventControlBoardModule, providers: [E012famService, E205depService, PaginatorStorageService,
|
|
60
62
|
EventControlService, DialogService], imports: [LocaleModule.forChild(),
|
|
61
63
|
SharedModule,
|
|
62
64
|
ButtonModule,
|
|
65
|
+
DialogComponent,
|
|
63
66
|
EventStepsModule,
|
|
64
|
-
DialogModule,
|
|
65
67
|
FieldsetModule,
|
|
66
68
|
BadgeModule,
|
|
67
69
|
E001pesModule,
|
|
@@ -80,7 +82,8 @@ export class EventControlBoardModule {
|
|
|
80
82
|
WebsocketModule,
|
|
81
83
|
LibTranslationModule,
|
|
82
84
|
FixationModule,
|
|
83
|
-
CancelEventDialogModule
|
|
85
|
+
CancelEventDialogModule,
|
|
86
|
+
StructureModule] });
|
|
84
87
|
}
|
|
85
88
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: EventControlBoardModule, decorators: [{
|
|
86
89
|
type: NgModule,
|
|
@@ -89,8 +92,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
89
92
|
LocaleModule.forChild(),
|
|
90
93
|
SharedModule,
|
|
91
94
|
ButtonModule,
|
|
95
|
+
DialogComponent,
|
|
92
96
|
EventStepsModule,
|
|
93
|
-
DialogModule,
|
|
94
97
|
FieldsetModule,
|
|
95
98
|
BadgeModule,
|
|
96
99
|
E001pesModule,
|
|
@@ -110,6 +113,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
110
113
|
LibTranslationModule,
|
|
111
114
|
FixationModule,
|
|
112
115
|
CancelEventDialogModule,
|
|
116
|
+
StructureModule
|
|
113
117
|
],
|
|
114
118
|
declarations: [EventControlBoardComponent],
|
|
115
119
|
exports: [EventControlBoardComponent],
|
|
@@ -117,4 +121,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
117
121
|
EventControlService, DialogService],
|
|
118
122
|
}]
|
|
119
123
|
}] });
|
|
120
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
124
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtY29udHJvbC1ib2FyZC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvY29tcG9uZW50cy9ldmVudC1jb250cm9sLWJvYXJkL2V2ZW50LWNvbnRyb2wtYm9hcmQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDckUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDN0UsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNqRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDakUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNqRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDakUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNuRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUNsRixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUNoRyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUMzRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDakUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMENBQTBDLENB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WSxFQUFFLENBQUMsMEJBQTBCLENBQUM7b0JBQzFDLE9BQU8sRUFBRSxDQUFDLDBCQUEwQixDQUFDO29CQUNyQyxTQUFTLEVBQUUsQ0FBQyxjQUFjLEVBQUUsY0FBYyxFQUFFLHVCQUF1Qjt3QkFDL0QsbUJBQW1CLEVBQUUsYUFBYSxDQUFDO2lCQUMxQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbmltcG9ydCB7IEV2ZW50U3RlcHNNb2R1bGUgfSBmcm9tIFwiLi4vZXZlbnQtc3RlcHMvZXZlbnQtc3RlcHMubW9kdWxlXCI7XHJcbmltcG9ydCB7IEV2ZW50Q29udHJvbEJvYXJkQ29tcG9uZW50IH0gZnJvbSBcIi4vZXZlbnQtY29udHJvbC1ib2FyZC5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgU2hhcmVkTW9kdWxlIH0gZnJvbSBcIi4vc2hhcmVkLm1vZHVsZVwiO1xyXG5pbXBvcnQgeyBFMDAxcGVzTW9kdWxlIH0gZnJvbSBcIi4vc2VydmljZS9lMDAxcGVzL2UwMDFwZXMubW9kdWxlXCI7XHJcbmltcG9ydCB7IEUwMDFUbnNNb2R1bGUgfSBmcm9tIFwiLi9zZXJ2aWNlL2UwMDF0bnMvZTAwMXRucy5tb2R1bGVcIjtcclxuaW1wb3J0IHsgRTAxMmZhbVNlcnZpY2UgfSBmcm9tIFwiLi9zZXJ2aWNlL2UwMTJmYW0vZTAxMmZhbS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IEUwNzBFbXBNb2R1bGUgfSBmcm9tIFwiLi9zZXJ2aWNlL2UwNzBlbXAvZTA3MGVtcC5tb2R1bGVcIjtcclxuaW1wb3J0IHsgRTA3MEZpbE1vZHVsZSB9IGZyb20gXCIuL3NlcnZpY2UvZTA3MGZpbC9lMDcwZmlsLm1vZHVsZVwiO1xyXG5pbXBvcnQgeyBFMDc1RGVyTW9kdWxlIH0gZnJvbSBcIi4vc2VydmljZS9lMDc1ZGVyL2UwNzVkZXIubW9kdWxlXCI7XHJcbmltcG9ydCB7IEUyMDVkZXBTZXJ2aWNlIH0gZnJvbSBcIi4vc2VydmljZS9lMjA1ZGVwL2UyMDVkZXAuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBFdmVudENvbnRyb2xNb2R1bGUgfSBmcm9tIFwiLi9zZXJ2aWNlL2V2ZW50LWNvbnRyb2wvZXZlbnQtY29udHJvbC5tb2R1bGVcIjtcclxuaW1wb3J0IHsgRXZlbnRDb250cm9sSXRlbU1vZHVsZSB9IGZyb20gXCIuL3NlcnZpY2UvZXZlbnQtY29udHJvbC1pdGVtL2V2ZW50LWNvbnRyb2wtaXRlbS5tb2R1bGVcIjtcclxuaW1wb3J0IHsgRXh0ZXJuYWxJbnZvaWNlTW9kdWxlIH0gZnJvbSBcIi4vc2VydmljZS9leHRlcm5hbC1pbnZvaWNlL2V4dGVybmFsLWludm9pY2UubW9kdWxlXCI7XHJcbmltcG9ydCB7IEludm9pY2VNb2R1bGUgfSBmcm9tIFwiLi9zZXJ2aWNlL2ludm9pY2UvaW52b2ljZS5tb2R1bGVcIjtcclxuaW1wb3J0IHsgT3JpZ2luYXRpb25Nb2R1bGUgfSBmcm9tIFwiLi9zZXJ2aWNlL29yaWdpbmF0aW9uL29yaWdpbmF0aW9uLm1vZHVsZVwiO1xyXG5pbXBvcnQgeyBSdXJhbEVzdGF0ZU1vZHVsZSB9IGZyb20gXCIuL3NlcnZpY2UvcnVyYWwtZXN0YXRlL3J1cmFsLWVzdGF0ZS5tb2R1bGVcIjtcclxuaW1wb3J0IHsgVGlja2V0TW9kdWxlIH0gZnJvbSBcIi4vc2VydmljZS90aWNrZXQvdGlja2V0Lm1vZHVsZVwiO1xyXG5pbXBvcnQgeyBQYWdpbmF0b3JTdG9yYWdlU2VydmljZSB9IGZyb20gXCIuL3NlcnZpY2UvcGFnaW5hdG9yLXN0b3JhZ2Uuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBXZWJzb2NrZXRNb2R1bGUgfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvd2Vic29ja2V0L3dlYnNvY2tldC5tb2R1bGVcIjtcclxuXHJcbmltcG9ydCB7IExpYlRyYW5zbGF0aW9uTW9kdWxlIH0gZnJvbSBcIi4uLy4uL2xpYi10cmFuc2xhdGlvbi5tb2R1bGVcIjtcclxuaW1wb3J0IHsgRXZlbnRDb250cm9sU2VydmljZSB9IGZyb20gXCIuL3NlcnZpY2UvZXZlbnQtY29udHJvbC9ldmVudC1jb250cm9sLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgVHJhbnNmZXJNb2R1bGUgfSBmcm9tIFwiLi9zZXJ2aWNlL3RyYW5zZmVyL3RyYW5zZmVyLm1vZHVsZVwiO1xyXG5pbXBvcnQgeyBGaXhhdGlvbk1vZHVsZSB9IGZyb20gXCIuL3NlcnZpY2UvZml4YXRpb24tZW50aXR5L2ZpeGF0aW9uLm1vZHVsZVwiO1xyXG5pbXBvcnQgeyBDYW5jZWxFdmVudERpYWxvZ01vZHVsZSB9IGZyb20gXCIuLi9jYW5jZWwtZXZlbnQtZGlhbG9nL2NhbmNlbC1ldmVudC1kaWFsb2cubW9kdWxlXCI7XHJcbmltcG9ydCB7IExvY2FsZU1vZHVsZSB9IGZyb20gXCJAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzL2xvY2FsZVwiO1xyXG5pbXBvcnQgeyBCdXR0b25Nb2R1bGUgfSBmcm9tIFwiQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy9idXR0b25cIjtcclxuaW1wb3J0IHsgRGlhbG9nQ29tcG9uZW50IH0gZnJvbSBcIkBzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvZGlhbG9nXCI7XHJcbmltcG9ydCB7IERpYWxvZ1NlcnZpY2UgfSBmcm9tIFwicHJpbWVuZy9keW5hbWljZGlhbG9nXCI7XHJcbmltcG9ydCB7IEZpZWxkc2V0TW9kdWxlIH0gZnJvbSBcIkBzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvZmllbGRzZXRcIjtcclxuaW1wb3J0IHsgQmFkZ2VNb2R1bGUgfSBmcm9tIFwiQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy9iYWRnZVwiO1xyXG5pbXBvcnQgeyBTdHJ1Y3R1cmVNb2R1bGUgfSBmcm9tIFwiQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy9zdHJ1Y3R1cmVcIjtcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgICBpbXBvcnRzOiBbXHJcbiAgICBMb2NhbGVNb2R1bGUuZm9yQ2hpbGQoKSxcclxuICAgIFNoYXJlZE1vZHVsZSxcclxuICAgIEJ1dHRvbk1vZHVsZSxcclxuICAgIERpYWxvZ0NvbXBvbmVudCxcclxuICAgIEV2ZW50U3RlcHNNb2R1bGUsXHJcbiAgICBGaWVsZHNldE1vZHVsZSxcclxuICAgIEJhZGdlTW9kdWxlLFxyXG4gICAgRTAwMXBlc01vZHVsZSxcclxuICAgIEUwMDFUbnNNb2R1bGUsXHJcbiAgICBFMDcwRW1wTW9kdWxlLFxyXG4gICAgRTA3MEZpbE1vZHVsZSxcclxuICAgIFRyYW5zZmVyTW9kdWxlLFxyXG4gICAgRTA3NURlck1vZHVsZSxcclxuICAgIEV2ZW50Q29udHJvbE1vZHVsZSxcclxuICAgIEV2ZW50Q29udHJvbEl0ZW1Nb2R1bGUsXHJcbiAgICBFeHRlcm5hbEludm9pY2VNb2R1bGUsXHJcbiAgICBJbnZvaWNlTW9kdWxlLFxyXG4gICAgT3JpZ2luYXRpb25Nb2R1bGUsXHJcbiAgICBSdXJhbEVzdGF0ZU1vZHVsZSxcclxuICAgIFRpY2tldE1vZHVsZSxcclxuICAgIFdlYnNvY2tldE1vZHVsZSxcclxuICAgIExpYlRyYW5zbGF0aW9uTW9kdWxlLFxyXG4gICAgRml4YXRpb25Nb2R1bGUsXHJcbiAgICBDYW5jZWxFdmVudERpYWxvZ01vZHVsZSxcclxuICAgIFN0cnVjdHVyZU1vZHVsZVxyXG5dLFxyXG4gICAgZGVjbGFyYXRpb25zOiBbRXZlbnRDb250cm9sQm9hcmRDb21wb25lbnRdLFxyXG4gICAgZXhwb3J0czogW0V2ZW50Q29udHJvbEJvYXJkQ29tcG9uZW50XSxcclxuICAgIHByb3ZpZGVyczogW0UwMTJmYW1TZXJ2aWNlLCBFMjA1ZGVwU2VydmljZSwgUGFnaW5hdG9yU3RvcmFnZVNlcnZpY2UsXHJcbiAgICAgICAgRXZlbnRDb250cm9sU2VydmljZSwgRGlhbG9nU2VydmljZV0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFdmVudENvbnRyb2xCb2FyZE1vZHVsZSB7fVxyXG4iXX0=
|
|
@@ -6,8 +6,10 @@ import { formatCPFCNPJWithMask } from '../utils';
|
|
|
6
6
|
const LOOKUP_DEBOUNCE_MS = 300;
|
|
7
7
|
const LOOKUP_DOCUMENT_FIELDS_TO_FORMAT = [
|
|
8
8
|
'cnpCpf',
|
|
9
|
+
'cnpjCpf',
|
|
9
10
|
'numCgc',
|
|
10
11
|
'e001pes.cnpCpf',
|
|
12
|
+
'e001pes.cnpjCpf',
|
|
11
13
|
'e001pes.numCgc',
|
|
12
14
|
'e001pes.cpfCnpj',
|
|
13
15
|
'e001pes.cpf',
|
|
@@ -36,25 +38,35 @@ export class AgroBaseLookupField {
|
|
|
36
38
|
}
|
|
37
39
|
return typeof value === 'object' && value.id !== undefined && value.id !== null;
|
|
38
40
|
}
|
|
41
|
+
getPathValue(entity, fieldPath) {
|
|
42
|
+
return fieldPath
|
|
43
|
+
.split('.')
|
|
44
|
+
.reduce((currentValue, fieldName) => currentValue?.[fieldName], entity);
|
|
45
|
+
}
|
|
46
|
+
setPathValue(entity, fieldPath, value) {
|
|
47
|
+
const pathParts = fieldPath.split('.');
|
|
48
|
+
const formattedEntity = { ...entity };
|
|
49
|
+
let target = formattedEntity;
|
|
50
|
+
pathParts.slice(0, -1).forEach((fieldName) => {
|
|
51
|
+
target[fieldName] = { ...target[fieldName] };
|
|
52
|
+
target = target[fieldName];
|
|
53
|
+
});
|
|
54
|
+
target[pathParts[pathParts.length - 1]] = value;
|
|
55
|
+
return formattedEntity;
|
|
56
|
+
}
|
|
39
57
|
formatEntityDocumentFields(entity) {
|
|
40
58
|
if (!entity || typeof entity !== 'object' || Array.isArray(entity)) {
|
|
41
59
|
return entity;
|
|
42
60
|
}
|
|
43
61
|
let formattedEntity = entity;
|
|
44
62
|
LOOKUP_DOCUMENT_FIELDS_TO_FORMAT.forEach((fieldName) => {
|
|
45
|
-
|
|
63
|
+
const originalValue = this.getPathValue(formattedEntity, fieldName);
|
|
64
|
+
if (originalValue === undefined || originalValue === null || originalValue === '') {
|
|
46
65
|
return;
|
|
47
66
|
}
|
|
48
|
-
const
|
|
49
|
-
if (originalValue === null || originalValue === undefined || originalValue === '') {
|
|
50
|
-
return;
|
|
51
|
-
}
|
|
52
|
-
const formattedValue = formatCPFCNPJWithMask(originalValue);
|
|
67
|
+
const formattedValue = formatCPFCNPJWithMask(String(originalValue));
|
|
53
68
|
if (formattedValue !== originalValue) {
|
|
54
|
-
|
|
55
|
-
formattedEntity = { ...entity };
|
|
56
|
-
}
|
|
57
|
-
formattedEntity[fieldName] = formattedValue;
|
|
69
|
+
formattedEntity = this.setPathValue(formattedEntity, fieldName, formattedValue);
|
|
58
70
|
}
|
|
59
71
|
});
|
|
60
72
|
return formattedEntity;
|
|
@@ -190,7 +202,7 @@ export class AgroBaseLookupField {
|
|
|
190
202
|
const targetIsValid = this.isLookupValueValid(targetValue);
|
|
191
203
|
const targetIsFilled = this.isControlFilled(targetValue);
|
|
192
204
|
if (forceReset) {
|
|
193
|
-
targetControl.setValue(null, { emitEvent:
|
|
205
|
+
targetControl.setValue(null, { emitEvent: true });
|
|
194
206
|
targetControl.disable({ emitEvent: false });
|
|
195
207
|
return;
|
|
196
208
|
}
|
|
@@ -253,6 +265,15 @@ export class AgroBaseLookupField {
|
|
|
253
265
|
// Observe each dependency directly and compare previous/current values.
|
|
254
266
|
dependsOf.forEach((fieldName) => {
|
|
255
267
|
const control = this.config.formGroup.get(fieldName);
|
|
268
|
+
control?.valueChanges.subscribe((currentValue) => {
|
|
269
|
+
const normalizedCurrentValue = this.normalizeLookupValue(currentValue);
|
|
270
|
+
if (normalizedCurrentValue !== currentValue) {
|
|
271
|
+
control.setValue(normalizedCurrentValue, { emitEvent: false });
|
|
272
|
+
}
|
|
273
|
+
if (!this.isLookupValueValid(normalizedCurrentValue)) {
|
|
274
|
+
this.handleDependenciesState(true);
|
|
275
|
+
}
|
|
276
|
+
});
|
|
256
277
|
control?.valueChanges.pipe(startWith(control.value), debounceTime(LOOKUP_DEBOUNCE_MS), pairwise()).subscribe(([previousValue, currentValue]) => {
|
|
257
278
|
const normalizedPreviousValue = this.normalizeLookupValue(previousValue);
|
|
258
279
|
const normalizedCurrentValue = this.normalizeLookupValue(currentValue);
|
|
@@ -394,4 +415,4 @@ export class AgroBaseLookupField {
|
|
|
394
415
|
};
|
|
395
416
|
}
|
|
396
417
|
}
|
|
397
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdyby1iYXNlLWxvb2t1cC1maWVsZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9maWVsZHMvbG9va3Vwcy9jb3JlL2Fncm8tYmFzZS1sb29rdXAtZmllbGQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUcvQixPQUFPLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuRSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNyRyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsV0FBVyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDL0UsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRWpELE1BQU0sa0JBQWtCLEdBQUcsR0FBRyxDQUFDO0FBQy9CLE1BQU0sZ0NBQWdDLEdBQUc7SUFDckMsUUFBUTtJQUNSLFFBQVE7SUFDUixnQkFBZ0I7SUFDaEIsZ0JBQWdCO0lBQ2hCLGlCQUFpQjtJQUNqQixhQUFhO0lBQ2IsY0FBYztJQUNkLGFBQWE7SUFDYixnQkFBZ0I7SUFDaEIsZ0JBQWdCO0lBQ2hCLEtBQUs7Q0FDUixDQUFDO0FBRUYsTUFBTSxPQUFPLG1CQUFtQjtJQU1QO0lBQ1E7SUFOWixrQkFBa0IsR0FBRyxJQUFJLE9BQU8sRUFBUyxDQUFDO0lBQzFDLGFBQWEsR0FBRyxJQUFJLE9BQU8sRUFBTyxDQUFDO0lBQzVDLDRCQUE0QixHQUFHLEtBQUssQ0FBQztJQUU3QyxZQUNxQixNQUFnQyxFQUN4QixTQUFnQztRQUR4QyxXQUFNLEdBQU4sTUFBTSxDQUEwQjtRQUN4QixjQUFTLEdBQVQsU0FBUyxDQUF1QjtJQUN6RCxDQUFDO0lBRUcsa0JBQWtCLENBQUMsS0FBVTtRQUNqQyxJQUFJ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Q0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTGliVHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbGliLXRyYW5zbGF0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBwYWlyd2lzZSwgc3RhcnRXaXRoLCBkZWJvdW5jZVRpbWUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEdlbmVyaWNMb29rdXBGaWVsZENvbmZpZyB9IGZyb20gJy4vbG9va3VwLWZpZWxkLnR5cGVzJztcclxuaW1wb3J0IHsgY3JlYXRlR2VuZXJpY09uTG9va3VwUmVxdWVzdCwgY3JlYXRlR2VuZXJpY09uU2VhcmNoUmVxdWVzdCB9IGZyb20gJy4vbG9va3VwLWZpZWxkLmhhbmRsZXJzJztcclxuaW1wb3J0IHsgZ2V0TGFiZWxWYWx1ZVJlcXVlc3QsIG1lcmdlVW5pcXVlIH0gZnJvbSAnLi4vdXRpbHMvYWdyby1sb29rdXAtdXRpbHMnO1xyXG5pbXBvcnQgeyBmb3JtYXRDUEZDTlBKV2l0aE1hc2sgfSBmcm9tICcuLi91dGlscyc7XHJcblxyXG5jb25zdCBMT09LVVBfREVCT1VOQ0VfTVMgPSAzMDA7XHJcbmNvbnN0IExPT0tVUF9ET0NVTUVOVF9GSUVMRFNfVE9fRk9STUFUID0gW1xyXG4gICAgJ2NucENwZicsXHJcbiAgICAnbnVtQ2djJyxcclxuICAgICdlMDAxcGVzLmNucENwZicsXHJcbiAgICAnZTAwMXBlcy5udW1DZ2MnLFxyXG4gICAgJ2UwMDFwZXMuY3BmQ25waicsXHJcbiAgICAnZTAwMXBlcy5jcGYnLFxyXG4gICAgJ2UwMDFwZXMuY25waicsXHJcbiAgICAnZTAwMXBlcy5jZ2MnLFxyXG4gICAgJ2UwMDFwZXMuY3BmQ2djJyxcclxuICAgICdlMDAxcGVzLmNnY0NwZicsXHJcbiAgICAnY3BmJ1xyXG5dO1xyXG5cclxuZXhwb3J0IGNsYXNzIEFncm9CYXNlTG9va3VwRmllbGQge1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSBzdWdnZXN0aW9uc1N1YmplY3QgPSBuZXcgU3ViamVjdDxhbnlbXT4oKTtcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgc2VhcmNoU3ViamVjdCA9IG5ldyBTdWJqZWN0PGFueT4oKTtcclxuICAgIHByaXZhdGUgaGFzRGVwZW5kZW5jeUxpc3RlbmVyU3RhcnRlZCA9IGZhbHNlO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgY29uZmlnOiBHZW5lcmljTG9va3VwRmllbGRDb25maWcsXHJcbiAgICAgICAgICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZTogTGliVHJhbnNsYXRpb25TZXJ2aWNlXHJcbiAgICApIHsgfVxyXG5cclxuICAgIHByaXZhdGUgaXNMb29rdXBWYWx1ZVZhbGlkKHZhbHVlOiBhbnkpOiBib29sZWFuIHtcclxuICAgICAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZSA9PT0gJycpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZS5sZW5ndGggPiAwICYmIHZhbHVlLmV2ZXJ5KChpdGVtKSA9PiBpdGVtICYmIHR5cGVvZiBpdGVtID09PSAnb2JqZWN0JyAmJiBpdGVtLmlkICE9PSB1bmRlZmluZWQgJiYgaXRlbS5pZCAhPT0gbnVsbCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiB2YWx1ZS5pZCAhPT0gdW5kZWZpbmVkICYmIHZhbHVlLmlkICE9PSBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZm9ybWF0RW50aXR5RG9jdW1lbnRGaWVsZHMoZW50aXR5OiBhbnkpOiBhbnkge1xyXG4gICAgICAgIGlmICghZW50aXR5IHx8IHR5cGVvZiBlbnRpdHkgIT09ICdvYmplY3QnIHx8IEFycmF5LmlzQXJyYXkoZW50aXR5KSkge1xyXG4gICAgICAgICAgICByZXR1cm4gZW50aXR5O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGV0IGZvcm1hdHRlZEVudGl0eSA9IGVudGl0eTtcclxuXHJcbiAgICAgICAgTE9PS1VQX0RPQ1VNRU5UX0ZJRUxEU19UT19GT1JNQVQuZm9yRWFjaCgoZmllbGROYW1lKSA9PiB7XHJcbiAgICAgICAgICAgIGlmICghT2JqZWN0Lmhhc093bihlbnRpdHksIGZpZWxkTmFtZSkpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgY29uc3Qgb3JpZ2luYWxWYWx1ZSA9IGVudGl0eVtmaWVsZE5hbWVdO1xyXG4gICAgICAgICAgICBpZiAob3JpZ2luYWxWYWx1ZSA9PT0gbnVsbCB8fCBvcmlnaW5hbFZhbHVlID09PSB1bmRlZmluZWQgfHwgb3JpZ2luYWxWYWx1ZSA9PT0gJycpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgY29uc3QgZm9ybWF0dGVkVmFsdWUgPSBmb3JtYXRDUEZDTlBKV2l0aE1hc2sob3JpZ2luYWxWYWx1ZSk7XHJcbiAgICAgICAgICAgIGlmIChmb3JtYXR0ZWRWYWx1ZSAhPT0gb3JpZ2luYWxWYWx1ZSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKGZvcm1hdHRlZEVudGl0eSA9PT0gZW50aXR5KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZm9ybWF0dGVkRW50aXR5ID0geyAuLi5lbnRpdHkgfTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBmb3JtYXR0ZWRFbnRpdHlbZmllbGROYW1lXSA9IGZvcm1hdHRlZFZhbHVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHJldHVybiBmb3JtYXR0ZWRFbnRpdHk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBub3JtYWxpemVMb29rdXBWYWx1ZSh2YWx1ZTogYW55KTogYW55IHtcclxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcclxuICAgICAgICAgICAgbGV0IGhhc0NoYW5nZXMgPSBmYWxzZTtcclxuICAgICAgICAgICAgY29uc3Qgbm9ybWFsaXplZEFycmF5ID0gdmFsdWUubWFwKChpdGVtKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBub3JtYWxpemVkSXRlbSA9IHRoaXMubm9ybWFsaXplTG9va3VwVmFsdWUoaXRlbSk7XHJcbiAgICAgICAgICAgICAgICBoYXNDaGFuZ2VzID0gaGFzQ2hhbmdlcyB8fCBub3JtYWxpemVkSXRlbSAhPT0gaXRlbTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBub3JtYWxpemVkSXRlbTtcclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICByZXR1cm4gaGFzQ2hhbmdlcyA/IG5vcm1hbGl6ZWRBcnJheSA6IHZhbHVlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybWF0RW50aXR5RG9jdW1lbnRGaWVsZHModmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc3luY0NvbnRyb2xWYWx1ZVdpdGhOb3JtYWxpemF0aW9uKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCB8IG51bGwpOiBhbnkge1xyXG4gICAgICAgIGlmICghY29udHJvbCkge1xyXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IG5vcm1hbGl6ZWRWYWx1ZSA9IHRoaXMubm9ybWFsaXplTG9va3VwVmFsdWUoY29udHJvbC52YWx1ZSk7XHJcbiAgICAgICAgaWYgKG5vcm1hbGl6ZWRWYWx1ZSAhPT0gY29udHJvbC52YWx1ZSkge1xyXG4gICAgICAgICAgICBjb250cm9sLnNldFZhbHVlKG5vcm1hbGl6ZWRWYWx1ZSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZWRWYWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGhhc1VzZXJJbnRlcmFjdGlvbihjb250cm9sOiBBYnN0cmFjdENvbnRyb2wgfCBudWxsKTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKCFjb250cm9sKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBjb250cm9sLmRpcnR5IHx8IGNvbnRyb2wudG91Y2hlZDtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIG1hcmtDb250cm9sQXNVc2VySW50ZXJhY3RlZChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wgfCBudWxsKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCFjb250cm9sKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICghY29udHJvbC5kaXJ0eSkge1xyXG4gICAgICAgICAgICBjb250cm9sLm1hcmtBc0RpcnR5KHsgb25seVNlbGY6IHRydWUgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoIWNvbnRyb2wudG91Y2hlZCkge1xyXG4gICAgICAgICAgICBjb250cm9sLm1hcmtBc1RvdWNoZWQoeyBvbmx5U2VsZjogdHJ1ZSB9KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBpc0NvbnRyb2xGaWxsZWQodmFsdWU6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZS50cmltKCkgIT09ICcnO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZS5sZW5ndGggPiAwO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBhcmVEZXBlbmRlbmNpZXNSZWFkeSgpOiBib29sZWFuIHtcclxuICAgICAgICBjb25zdCBkZXBlbmRzT2YgPSB0aGlzLmNvbmZpZy5kZXBlbmRzT2YgPz8gW107XHJcbiAgICAgICAgaWYgKGRlcGVuZHNPZi5sZW5ndGggPT09IDApIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gZGVwZW5kc09mLmV2ZXJ5KChmaWVsZE5hbWUpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgY29udHJvbCA9IHRoaXMuY29uZmlnLmZvcm1Hcm91cC5nZXQoZmllbGROYW1lKTtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaXNMb29rdXBWYWx1ZVZhbGlkKHRoaXMuc3luY0NvbnRyb2xWYWx1ZVdpdGhOb3JtYWxpemF0aW9uKGNvbnRyb2wpKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGlzQXV0b2ZpbGxFbmFibGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmNvbmZpZy5hdXRvZmlsbCAhPT0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBidWlsZERlcGVuZGVuY3lRdWVyeSgpOiBzdHJpbmcge1xyXG4gICAgICAgIGNvbnN0IGRlcGVuZGVuY2llcyA9IHRoaXMuY29uZmlnLmRlcGVuZGVuY2llcyA/PyBbXTtcclxuICAgICAgICByZXR1cm4gZGVwZW5kZW5jaWVzXHJcbiAgICAgICAgICAgIC5tYXAoKHsgZm9ybUNvbnRyb2xOYW1lLCBhcGlGaWVsZCB9KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBkZXBlbmRlbmN5SWQgPSB0aGlzLmNvbmZpZy5mb3JtR3JvdXAuZ2V0KGZvcm1Db250cm9sTmFtZSk/LnZhbHVlPy5pZDtcclxuICAgICAgICAgICAgICAgIHJldHVybiBkZXBlbmRlbmN5SWQgPyBgJHthcGlGaWVsZH0gZXEgJyR7ZGVwZW5kZW5jeUlkfSdgIDogJyc7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIC5maWx0ZXIoQm9vbGVhbilcclxuICAgICAgICAgICAgLmpvaW4oJyBhbmQgJyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBidWlsZEN1c3RvbUZpbHRlclF1ZXJ5KCk6IHN0cmluZyB7XHJcbiAgICAgICAgY29uc3QgcXVlcnkgPSB0aGlzLmNvbmZpZy5jdXN0b21GaWx0ZXJRdWVyeT8uKCk7XHJcbiAgICAgICAgcmV0dXJuIHR5cGVvZiBxdWVyeSA9PT0gJ3N0cmluZycgPyBxdWVyeS50cmltKCkgOiAnJztcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGNvbWJpbmVGaWx0ZXJRdWVyaWVzKC4uLnF1ZXJpZXM6IHN0cmluZ1tdKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gcXVlcmllcy5maWx0ZXIoKHF1ZXJ5KSA9PiAhIXF1ZXJ5KS5qb2luKCcgYW5kICcpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgdHJ5QXV0b2ZpbGxXaGVuU2luZ2xlUmVzdWx0KCk6IHZvaWQge1xyXG4gICAgICAgIGlmICghdGhpcy5pc0F1dG9maWxsRW5hYmxlZCgpKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IGRlcGVuZHNPZiA9IHRoaXMuY29uZmlnLmRlcGVuZHNPZiA/PyBbXTtcclxuICAgICAgICBpZiAoZGVwZW5kc09mLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCB0YXJnZXRDb250cm9sID0gdGhpcy5jb25maWcuZm9ybUdyb3VwLmdldCh0aGlzLmNvbmZpZy5uYW1lKTtcclxuICAgICAgICBpZiAoIXRhcmdldENvbnRyb2wgfHwgdGFyZ2V0Q29udHJvbC5kaXNhYmxlZCB8fCB0aGlzLmlzTG9va3VwVmFsdWVWYWxpZCh0YXJnZXRDb250cm9sLnZhbHVlKSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBkZXBlbmRlbmN5UXVlcnkgPSB0aGlzLmJ1aWxkRGVwZW5kZW5jeVF1ZXJ5KCk7XHJcbiAgICAgICAgY29uc3QgY3VzdG9tUXVlcnkgPSB0aGlzLmJ1aWxkQ3VzdG9tRmlsdGVyUXVlcnkoKTtcclxuICAgICAgICBjb25zdCBmaWx0ZXJRdWVyeSA9IHRoaXMuY29tYmluZUZpbHRlclF1ZXJpZXMoZGVwZW5kZW5jeVF1ZXJ5LCBjdXN0b21RdWVyeSk7XHJcbiAgICAgICAgaWYgKCFmaWx0ZXJRdWVyeSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBzb3J0ID0gdGhpcy5jb25maWcubG9va3VwRGlzcGxheUZpZWxkcy5tYXAoKGZpZWxkOiBzdHJpbmcpID0+ICh7IGZpZWxkLCBvcmRlcjogMSB9KSk7XHJcbiAgICAgICAgY29uc3QgZGlzcGxheUZpZWxkcyA9IG1lcmdlVW5pcXVlKHRoaXMuY29uZmlnLmxvb2t1cERpc3BsYXlGaWVsZHMsIHRoaXMuY29uZmlnLmFkdmFuY2VkRGlzcGxheUZpZWxkcyk7XHJcblxyXG4gICAgICAgIHRoaXMuY29uZmlnLnNlcnZpY2VcclxuICAgICAgICAgICAgLmxpc3QoeyBwYWdlOiAwLCBzaXplOiAyLCBzb3J0LCBmaWx0ZXJRdWVyeSwgZGlzcGxheUZpZWxkcyB9KVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChsaXN0OiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRlbnRzID0gbGlzdD8uY29udGVudHMgPz8gW107XHJcbiAgICAgICAgICAgICAgICBpZiAoY29udGVudHMubGVuZ3RoICE9PSAxKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGNvbnN0IFtzaW5nbGVWYWx1ZV0gPSBnZXRMYWJlbFZhbHVlUmVxdWVzdChjb250ZW50cywgdGhpcy5jb25maWcubG9va3VwRGlzcGxheUZpZWxkcyk7XHJcbiAgICAgICAgICAgICAgICBpZiAoc2luZ2xlVmFsdWUpIHtcclxuICAgICAgICAgICAgICAgICAgICB0YXJnZXRDb250cm9sLnNldFZhbHVlKHRoaXMubm9ybWFsaXplTG9va3VwVmFsdWUoc2luZ2xlVmFsdWUpLCB7IGVtaXRFdmVudDogdHJ1ZSB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBpc1ByZWZpbGxlZEFuZEluZGVwZW5kZW50KGhhc0FueVVzZXJJbnRlcmFjdGlvbjogYm9vbGVhbiwgdGFyZ2V0SXNWYWxpZDogYm9vbGVhbiwgdGFyZ2V0SXNGaWxsZWQ6IGJvb2xlYW4pOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gIWhhc0FueVVzZXJJbnRlcmFjdGlvbiAmJiAodGFyZ2V0SXNWYWxpZCB8fCB0YXJnZXRJc0ZpbGxlZCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBoYW5kbGVEZXBlbmRlbmNpZXNTdGF0ZShmb3JjZVJlc2V0ID0gZmFsc2UpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCB0YXJnZXRDb250cm9sID0gdGhpcy5jb25maWcuZm9ybUdyb3VwLmdldCh0aGlzLmNvbmZpZy5uYW1lKTtcclxuICAgICAgICBpZiAoIXRhcmdldENvbnRyb2wpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgZGVwZW5kc09mID0gdGhpcy5jb25maWcuZGVwZW5kc09mID8/IFtdO1xyXG4gICAgICAgIGlmIChkZXBlbmRzT2YubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IGhhc0FueVVzZXJJbnRlcmFjdGlvbiA9IGRlcGVuZHNPZi5zb21lKChmaWVsZE5hbWUpID0+IHRoaXMuaGFzVXNlckludGVyYWN0aW9uKHRoaXMuY29uZmlnLmZvcm1Hcm91cC5nZXQoZmllbGROYW1lKSkpO1xyXG4gICAgICAgIGNvbnN0IHRhcmdldFZhbHVlID0gdGhpcy5zeW5jQ29udHJvbFZhbHVlV2l0aE5vcm1hbGl6YXRpb24odGFyZ2V0Q29udHJvbCk7XHJcbiAgICAgICAgY29uc3QgdGFyZ2V0SXNWYWxpZCA9IHRoaXMuaXNMb29rdXBWYWx1ZVZhbGlkKHRhcmdldFZhbHVlKTtcclxuICAgICAgICBjb25zdCB0YXJnZXRJc0ZpbGxlZCA9IHRoaXMuaXNDb250cm9sRmlsbGVkKHRhcmdldFZhbHVlKTtcclxuXHJcbiAgICAgICAgaWYgKGZvcmNlUmVzZXQpIHtcclxuICAgICAgICAgICAgdGFyZ2V0Q29udHJvbC5zZXRWYWx1ZShudWxsLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XHJcbiAgICAgICAgICAgIHRhcmdldENvbnRyb2wuZGlzYWJsZSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIFJ1bGU6IGRlcGVuZGVudCBmaWVsZHMgc3RhcnQgZGlzYWJsZWQsIGV4Y2VwdCB3aGVuIGFscmVhZHkgZmlsbGVkL3ZhbGlkIChwcmVmaWxsZWQgc2NlbmFyaW8pLlxyXG4gICAgICAgIGlmICh0aGlzLmlzUHJlZmlsbGVkQW5kSW5kZXBlbmRlbnQoaGFzQW55VXNlckludGVyYWN0aW9uLCB0YXJnZXRJc1ZhbGlkLCB0YXJnZXRJc0ZpbGxlZCkpIHtcclxuICAgICAgICAgICAgdGFyZ2V0Q29udHJvbC5lbmFibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gICAgICAgICAgICB0aGlzLnRyeUF1dG9maWxsV2hlblNpbmdsZVJlc3VsdCgpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5hcmVEZXBlbmRlbmNpZXNSZWFkeSgpKSB7XHJcbiAgICAgICAgICAgIHRhcmdldENvbnRyb2wuZW5hYmxlKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuICAgICAgICAgICAgdGhpcy50cnlBdXRvZmlsbFdoZW5TaW5nbGVSZXN1bHQoKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gS2VlcCBwcmVmaWxsZWQgdmFsdWVzOyBjbGVhciBvbmx5IHdoZW4gdGhlcmUgaXMgdXNlciBpbnRlcmFjdGlvbiBvciB2YWx1ZSBpcyBpbnZhbGlkIGZvciBsb29rdXAuXHJcbiAgICAgICAgaWYgKGhhc0FueVVzZXJJbnRlcmFjdGlvbiB8fCAodGFyZ2V0SXNGaWxsZWQgJiYgIXRhcmdldElzVmFsaWQpKSB7XHJcbiAgICAgICAgICAgIHRhcmdldENvbnRyb2wuc2V0VmFsdWUobnVsbCwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGFyZ2V0Q29udHJvbC5kaXNhYmxlKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGNsZWFyVGFyZ2V0S2VlcGluZ0VuYWJsZWQoKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgdGFyZ2V0Q29udHJvbCA9IHRoaXMuY29uZmlnLmZvcm1Hcm91cC5nZXQodGhpcy5jb25maWcubmFtZSk7XHJcbiAgICAgICAgaWYgKCF0YXJnZXRDb250cm9sKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRhcmdldENvbnRyb2wuc2V0VmFsdWUobnVsbCwgeyBlbWl0RXZlbnQ6IHRydWUgfSk7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmFyZURlcGVuZGVuY2llc1JlYWR5KCkpIHtcclxuICAgICAgICAgICAgdGFyZ2V0Q29udHJvbC5lbmFibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gICAgICAgICAgICB0aGlzLnRyeUF1dG9maWxsV2hlblNpbmdsZVJlc3VsdCgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldENvbXBhcmFibGVMb29rdXBWYWx1ZSh2YWx1ZTogYW55KTogYW55IHtcclxuICAgICAgICBjb25zdCBub3JtYWxpemVkVmFsdWUgPSB0aGlzLm5vcm1hbGl6ZUxvb2t1cFZhbHVlKHZhbHVlKTtcclxuXHJcbiAgICAgICAgaWYgKG5vcm1hbGl6ZWRWYWx1ZSA9PT0gbnVsbCB8fCBub3JtYWxpemVkVmFsdWUgPT09IHVuZGVmaW5lZCB8fCBub3JtYWxpemVkVmFsdWUgPT09ICcnKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkobm9ybWFsaXplZFZhbHVlKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gbm9ybWFsaXplZFZhbHVlLm1hcCgoaXRlbSkgPT4gdGhpcy5nZXRDb21wYXJhYmxlTG9va3VwVmFsdWUoaXRlbSkpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHR5cGVvZiBub3JtYWxpemVkVmFsdWUgPT09ICdvYmplY3QnKSB7XHJcbiAgICAgICAgICAgIGlmIChub3JtYWxpemVkVmFsdWUuaWQgIT09IHVuZGVmaW5lZCAmJiBub3JtYWxpemVkVmFsdWUuaWQgIT09IG51bGwpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBub3JtYWxpemVkVmFsdWUuaWQ7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShub3JtYWxpemVkVmFsdWUpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZWRWYWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGRpZERlcGVuZGVuY3lWYWx1ZUNoYW5nZShwcmV2aW91c0NvbXBhcmFibGU6IGFueSwgY3VycmVudENvbXBhcmFibGU6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShwcmV2aW91c0NvbXBhcmFibGUpICE9PSBKU09OLnN0cmluZ2lmeShjdXJyZW50Q29tcGFyYWJsZSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBzdGFydERlcGVuZGVuY2llc0xpc3RlbmVyKCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLmhhc0RlcGVuZGVuY3lMaXN0ZW5lclN0YXJ0ZWQpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgZGVwZW5kc09mID0gdGhpcy5jb25maWcuZGVwZW5kc09mID8/IFtdO1xyXG4gICAgICAgIGlmIChkZXBlbmRzT2YubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuaGFzRGVwZW5kZW5jeUxpc3RlbmVyU3RhcnRlZCA9IHRydWU7XHJcblxyXG4gICAgICAgIC8vIE9ic2VydmUgZWFjaCBkZXBlbmRlbmN5IGRpcmVjdGx5IGFuZCBjb21wYXJlIHByZXZpb3VzL2N1cnJlbnQgdmFsdWVzLlxyXG4gICAgICAgIGRlcGVuZHNPZi5mb3JFYWNoKChmaWVsZE5hbWUpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgY29udHJvbCA9IHRoaXMuY29uZmlnLmZvcm1Hcm91cC5nZXQoZmllbGROYW1lKTtcclxuICAgICAgICAgICAgICAgIGNvbnRyb2w/LnZhbHVlQ2hhbmdlcy5waXBlKFxyXG4gICAgICAgICAgICAgICAgICAgIHN0YXJ0V2l0aChjb250cm9sLnZhbHVlKSxcclxuICAgICAgICAgICAgICAgICAgICBkZWJvdW5jZVRpbWUoTE9PS1VQX0RFQk9VTkNFX01TKSxcclxuICAgICAgICAgICAgICAgICAgICBwYWlyd2lzZSgpXHJcbiAgICAgICAgICAgICAgICApLnN1YnNjcmliZSgoW3ByZXZpb3VzVmFsdWUsIGN1cnJlbnRWYWx1ZV0pID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IG5vcm1hbGl6ZWRQcmV2aW91c1ZhbHVlID0gdGhpcy5ub3JtYWxpemVMb29rdXBWYWx1ZShwcmV2aW91c1ZhbHVlKTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IG5vcm1hbGl6ZWRDdXJyZW50VmFsdWUgPSB0aGlzLm5vcm1hbGl6ZUxvb2t1cFZhbHVlKGN1cnJlbnRWYWx1ZSk7XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKG5vcm1hbGl6ZWRDdXJyZW50VmFsdWUgIT09IGN1cnJlbnRWYWx1ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnRyb2wuc2V0VmFsdWUobm9ybWFsaXplZEN1cnJlbnRWYWx1ZSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGNvbnN0IHByZXZpb3VzVmFsaWRpdHkgPSB0aGlzLmlzTG9va3VwVmFsdWVWYWxpZChub3JtYWxpemVkUHJldmlvdXNWYWx1ZSk7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBjdXJyZW50VmFsaWRpdHkgPSB0aGlzLmlzTG9va3VwVmFsdWVWYWxpZChub3JtYWxpemVkQ3VycmVudFZhbHVlKTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHByZXZpb3VzQ29tcGFyYWJsZSA9IHRoaXMuZ2V0Q29tcGFyYWJsZUxvb2t1cFZhbHVlKG5vcm1hbGl6ZWRQcmV2aW91c1ZhbHVlKTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRDb21wYXJhYmxlID0gdGhpcy5nZXRDb21wYXJhYmxlTG9va3VwVmFsdWUobm9ybWFsaXplZEN1cnJlbnRWYWx1ZSk7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBkaWRWYWx1ZUNoYW5nZSA9IHRoaXMuZGlkRGVwZW5kZW5jeVZhbHVlQ2hhbmdlKHByZXZpb3VzQ29tcGFyYWJsZSwgY3VycmVudENvbXBhcmFibGUpO1xyXG5cclxuICAgICAgICAgICAgICAgIGlmIChwcmV2aW91c1ZhbGlkaXR5ICYmICFjdXJyZW50VmFsaWRpdHkpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZURlcGVuZGVuY2llc1N0YXRlKHRydWUpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBpZiAocHJldmlvdXNWYWxpZGl0eSAmJiBjdXJyZW50VmFsaWRpdHkgJiYgZGlkVmFsdWVDaGFuZ2UpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNsZWFyVGFyZ2V0S2VlcGluZ0VuYWJsZWQoKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKCFwcmV2aW91c1ZhbGlkaXR5ICYmIGN1cnJlbnRWYWxpZGl0eSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlRGVwZW5kZW5jaWVzU3RhdGUoZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgIGNvbnRyb2w/LnN0YXR1c0NoYW5nZXMuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmFyZURlcGVuZGVuY2llc1JlYWR5KCkpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZURlcGVuZGVuY2llc1N0YXRlKGZhbHNlKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIC8vIEV2YWx1YXRlIG9uY2UgYWZ0ZXIgaW5pdCB0byBob25vciBwcmVmaWxsZWQgdmFsaWQgZGVwZW5kZW5jaWVzIHdpdGhvdXQgZm9yY2luZyByZXNldHMuXHJcbiAgICAgICAgdGhpcy5oYW5kbGVEZXBlbmRlbmNpZXNTdGF0ZShmYWxzZSk7XHJcbiAgICB9XHJcblxyXG4gICAgbWFrZUl0KCk6IGFueSB7XHJcbiAgICAgICAgdGhpcy5zdGFydERlcGVuZGVuY2llc0xpc3RlbmVyKCk7XHJcblxyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIG5hbWU6IHRoaXMuY29uZmlnLm5hbWUsXHJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZTogdGhpcy5jb25maWcubmFtZSwgIC8vIEV4cGxpY2l0bHkgc2V0IGZvcm1Db250cm9sTmFtZSBmb3Igcy1keW5hbWljLWZvcm0gYmluZGluZ1xyXG4gICAgICAgICAgICBmaWx0ZXJGaWVsZE5hbWU6IHRoaXMuY29uZmlnLmZpbHRlckZpZWxkTmFtZSA/PyB0aGlzLmNvbmZpZy5uYW1lLFxyXG4gICAgICAgICAgICByZXF1aXJlZDogdGhpcy5jb25maWcucmVxdWlyZWQgPz8gKCgpID0+IGZhbHNlKSxcclxuICAgICAgICAgICAgc2l6ZTogdGhpcy5jb25maWcuc2l6ZSA/PyB7IHNtOiA0LCBtZDogNCwgbGc6IDQsIHhsOiA0IH0sXHJcbiAgICAgICAgICAgIGRlcGVuZHNPZjogdGhpcy5jb25maWcuZGVwZW5kc09mID8/IFtdLFxyXG4gICAgICAgICAgICBsYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudCh0aGlzLmNvbmZpZy5sYWJlbEtleSksXHJcbiAgICAgICAgICAgIHR5cGU6ICdsb29rdXAnLFxyXG4gICAgICAgICAgICBkYXRhS2V5OiAnaWQnLFxyXG4gICAgICAgICAgICBsb29rdXBEaXNwbGF5RmllbGQ6ICdsYWJlbCcsXHJcbiAgICAgICAgICAgIHNlYXJjaFRpdGxlOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KHRoaXMuY29uZmlnLnNlYXJjaFRpdGxlS2V5KSxcclxuICAgICAgICAgICAgc2VhcmNoRW1wdHlUaXRsZTogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnYWdyby5hbmd1bGFyX2NvbXBvbmVudHMubG9va3VwX25vdGhpbmdfZm91bmQnKSxcclxuICAgICAgICAgICAgZmlsdGVyTGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2Fncm8uYW5ndWxhcl9jb21wb25lbnRzLmxvb2t1cF9maWx0ZXInKSxcclxuICAgICAgICAgICAgZmlsdGVyVGl0bGU6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2Fncm8uYW5ndWxhcl9jb21wb25lbnRzLmxvb2t1cF9maWx0ZXJzJyksXHJcbiAgICAgICAgICAgIGNsZWFyTGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2Fncm8uYW5ndWxhcl9jb21wb25lbnRzLmxvb2t1cF9jbGVhcicpLFxyXG4gICAgICAgICAgICBjYW5jZWxMYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnYWdyby5hbmd1bGFyX2NvbXBvbmVudHMubG9va3VwX2NhbmNlbCcpLFxyXG4gICAgICAgICAgICBzZWxlY3RMYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnYWdyby5hbmd1bGFyX2NvbXBvbmVudHMubG9va3VwX3NlbGVjdCcpLFxyXG4gICAgICAgICAgICBzdWdnZXN0aW9uc09ic2VydmFibGU6IHRoaXMuc3VnZ2VzdGlvbnNTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpLFxyXG4gICAgICAgICAgICBzZWFyY2hPYnNlcnZhYmxlOiB0aGlzLnNlYXJjaFN1YmplY3QuYXNPYnNlcnZhYmxlKCksXHJcbiAgICAgICAgICAgIG9uTG9va3VwUmVxdWVzdDogY3JlYXRlR2VuZXJpY09uTG9va3VwUmVxdWVzdCh7XHJcbiAgICAgICAgICAgICAgICBjb25maWc6IHRoaXMuY29uZmlnLFxyXG4gICAgICAgICAgICAgICAgc3VnZ2VzdGlvbnNTdWJqZWN0OiB0aGlzLnN1Z2dlc3Rpb25zU3ViamVjdCxcclxuICAgICAgICAgICAgICAgIHNlYXJjaFN1YmplY3Q6IHRoaXMuc2VhcmNoU3ViamVjdCxcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIG9uU2VhcmNoUmVxdWVzdDogY3JlYXRlR2VuZXJpY09uU2VhcmNoUmVxdWVzdCh7XHJcbiAgICAgICAgICAgICAgICBjb25maWc6IHRoaXMuY29uZmlnLFxyXG4gICAgICAgICAgICAgICAgc3VnZ2VzdGlvbnNTdWJqZWN0OiB0aGlzLnN1Z2dlc3Rpb25zU3ViamVjdCxcclxuICAgICAgICAgICAgICAgIHNlYXJjaFN1YmplY3Q6IHRoaXMuc2VhcmNoU3ViamVjdCxcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIG9uQmx1cjogKGV2ZW50OiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmNvbmZpZy5mb3JtR3JvdXAuZ2V0KHRoaXMuY29uZmlnLm5hbWUpO1xyXG4gICAgICAgICAgICAgICAgaWYgKGNvbnRyb2wpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm1hcmtDb250cm9sQXNVc2VySW50ZXJhY3RlZChjb250cm9sKTtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCB1aVJhd1ZhbHVlID0gZXZlbnQ/LnRhcmdldD8udmFsdWUgPz8gZXZlbnQ/LnZhbHVlID8/ICcnO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpVGV4dFZhbHVlID0gdHlwZW9mIHVpUmF3VmFsdWUgPT09ICdzdHJpbmcnID8gdWlSYXdWYWx1ZS50cmltKCkgOiB1aVJhd1ZhbHVlO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGlzVWlFbXB0eSA9ICF1aVRleHRWYWx1ZTtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBjdXJyZW50VmFsdWUgPSB0aGlzLnN5bmNDb250cm9sVmFsdWVXaXRoTm9ybWFsaXphdGlvbihjb250cm9sKTtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBpc1ZhbHVlVmFsaWQgPSB0aGlzLmlzTG9va3VwVmFsdWVWYWxpZChjdXJyZW50VmFsdWUpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAvLyBJZiBVSSB3YXMgY2xlYXJlZCBidXQgY29udHJvbCBzdGlsbCBoYXMgYSB2YWx1ZSwgZm9yY2Ugc3luYyB0byBudWxsLlxyXG4gICAgICAgICAgICAgICAgICAgIGlmIChpc1VpRW1wdHkgJiYgY3VycmVudFZhbHVlICE9IG51bGwgJiYgY3VycmVudFZhbHVlICE9PSAnJykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250cm9sLnNldFZhbHVlKG51bGwsIHsgZW1pdEV2ZW50OiB0cnVlIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoeyBlbWl0RXZlbnQ6IHRydWUgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIC8vIElmIHRoZSBjb250cm9sIGhhcyBhIHZhbHVlIGJ1dCBpdCdzIG5vdCBhIHZhbGlkIGxvb2t1cCBvYmplY3QsIGNsZWFyIGl0XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyBjYXRjaGVzIGNhc2VzIHdoZXJlIHRoZSBVSSBjbGVhcmVkIHRoZSBmaWVsZCBidXQgdGhlIEZvcm1Db250cm9sIHdhc24ndCB1cGRhdGVkXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRWYWx1ZSAmJiAhaXNWYWx1ZVZhbGlkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnLmZvcm1Hcm91cC5wYXRjaFZhbHVlKHsgW3RoaXMuY29uZmlnLm5hbWVdOiBudWxsIH0sIHsgZW1pdEV2ZW50OiB0cnVlIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgb25TZWxlY3RIYW5kbGVyOiAoZXZlbnQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgYWN0dWFsVmFsdWUgPSBldmVudD8udmFsdWUgfHwgZXZlbnQ7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBjb250cm9sID0gdGhpcy5jb25maWcuZm9ybUdyb3VwLmdldCh0aGlzLmNvbmZpZy5uYW1lKTtcclxuICAgICAgICAgICAgICAgIGlmIChjb250cm9sICYmIGFjdHVhbFZhbHVlICYmIHR5cGVvZiBhY3R1YWxWYWx1ZSA9PT0gJ29iamVjdCcgJiYgYWN0dWFsVmFsdWUuaWQpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBub3JtYWxpemVkVmFsdWUgPSB0aGlzLm5vcm1hbGl6ZUxvb2t1cFZhbHVlKGFjdHVhbFZhbHVlKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm1hcmtDb250cm9sQXNVc2VySW50ZXJhY3RlZChjb250cm9sKTtcclxuICAgICAgICAgICAgICAgICAgICBjb250cm9sLnNldFZhbHVlKG5vcm1hbGl6ZWRWYWx1ZSwgeyBlbWl0RXZlbnQ6IHRydWUgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIG9uU2VsZWN0OiAoZXZlbnQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgYWN0dWFsVmFsdWUgPSBldmVudD8udmFsdWUgfHwgZXZlbnQ7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBjb250cm9sID0gdGhpcy5jb25maWcuZm9ybUdyb3VwLmdldCh0aGlzLmNvbmZpZy5uYW1lKTtcclxuICAgICAgICAgICAgICAgIGlmIChjb250cm9sICYmIGFjdHVhbFZhbHVlICYmIHR5cGVvZiBhY3R1YWxWYWx1ZSA9PT0gJ29iamVjdCcgJiYgYWN0dWFsVmFsdWUuaWQpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBub3JtYWxpemVkVmFsdWUgPSB0aGlzLm5vcm1hbGl6ZUxvb2t1cFZhbHVlKGFjdHVhbFZhbHVlKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm1hcmtDb250cm9sQXNVc2VySW50ZXJhY3RlZChjb250cm9sKTtcclxuICAgICAgICAgICAgICAgICAgICBjb250cm9sLnNldFZhbHVlKG5vcm1hbGl6ZWRWYWx1ZSwgeyBlbWl0RXZlbnQ6IHRydWUgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIG9uQ2xlYXI6ICgpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmNvbmZpZy5mb3JtR3JvdXAuZ2V0KHRoaXMuY29uZmlnLm5hbWUpO1xyXG4gICAgICAgICAgICAgICAgaWYgKGNvbnRyb2wpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm1hcmtDb250cm9sQXNVc2VySW50ZXJhY3RlZChjb250cm9sKTtcclxuICAgICAgICAgICAgICAgICAgICBjb250cm9sLnNldFZhbHVlKG51bGwsIHsgZW1pdEV2ZW50OiB0cnVlIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBvbkNoYW5nZTogKGV2ZW50OiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmNvbmZpZy5mb3JtR3JvdXAuZ2V0KHRoaXMuY29uZmlnLm5hbWUpO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgYWN0dWFsVmFsdWUgPSBldmVudD8udmFsdWUgfHwgZXZlbnQ7XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKGNvbnRyb2wgJiYgYWN0dWFsVmFsdWUgJiYgdHlwZW9mIGFjdHVhbFZhbHVlID09PSAnb2JqZWN0Jykge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG5vcm1hbGl6ZWRWYWx1ZSA9IHRoaXMubm9ybWFsaXplTG9va3VwVmFsdWUoYWN0dWFsVmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChub3JtYWxpemVkVmFsdWUgIT09IGFjdHVhbFZhbHVlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubWFya0NvbnRyb2xBc1VzZXJJbnRlcmFjdGVkKGNvbnRyb2wpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250cm9sLnNldFZhbHVlKG5vcm1hbGl6ZWRWYWx1ZSwgeyBlbWl0RXZlbnQ6IHRydWUgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKGNvbnRyb2wgJiYgIWFjdHVhbFZhbHVlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tYXJrQ29udHJvbEFzVXNlckludGVyYWN0ZWQoY29udHJvbCk7XHJcbiAgICAgICAgICAgICAgICAgICAgY29udHJvbC5zZXRWYWx1ZShudWxsLCB7IGVtaXRFdmVudDogdHJ1ZSB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgb25VbnNlbGVjdDogKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgY29udHJvbCA9IHRoaXMuY29uZmlnLmZvcm1Hcm91cC5nZXQodGhpcy5jb25maWcubmFtZSk7XHJcbiAgICAgICAgICAgICAgICBpZiAoY29udHJvbCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubWFya0NvbnRyb2xBc1VzZXJJbnRlcmFjdGVkKGNvbnRyb2wpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnRyb2wuc2V0VmFsdWUobnVsbCwgeyBlbWl0RXZlbnQ6IHRydWUgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHNlYXJjaEZpZWxkczogdGhpcy5jb25maWcuc2VhcmNoRmllbGRzLFxyXG4gICAgICAgICAgICBzZWFyY2hHcmlkRmllbGRzOiB0aGlzLmNvbmZpZy5zZWFyY2hGaWVsZHMsXHJcbiAgICAgICAgICAgIGFwcGVuZFRvOiAnYm9keScsXHJcbiAgICAgICAgICAgIGJhc2VaSW5kZXg6IDEwMDAwLFxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcbn1cclxuXHJcblxyXG4iXX0=
|
|
418
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdyby1iYXNlLWxvb2t1cC1maWVsZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9maWVsZHMvbG9va3Vwcy9jb3JlL2Fncm8tYmFzZS1sb29rdXAtZmllbGQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUcvQixPQUFPLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuRSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNyRyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsV0FBVyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDL0UsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRWpELE1BQU0sa0JBQWtCLEdBQUcsR0FBRyxDQUFDO0FBQy9CLE1BQU0sZ0NBQWdDLEdBQUc7SUFDckMsUUFBUTtJQUNSLFNBQVM7SUFDVCxRQUFRO0lBQ1IsZ0JBQWdCO0lBQ2hCLGlCQUFpQjtJQUNqQixnQkFBZ0I7SUFDaEIsaUJBQWlCO0lBQ2pCLGFBQWE7SUFDYixjQUFjO0lBQ2QsYUFBYTtJQUNiLGdCQUFnQjtJQUNoQixnQkFBZ0I7SUFDaEIsS0FBSztDQUNSLENBQUM7QUFFRixNQUFNLE9BQU8sbUJBQW1CO0lBTVA7SUFDUTtJQU5aLGtCQUFrQixHQUFHLElBQUksT0FBTyxFQUFTLENBQUM7SUFDMUMsYUFBYSxHQUFHLElBQUksT0FBTyxFQUFPLENBQUM7SUFDNUMsNEJBQTRCLEdBQUcsS0FBSyxDQUFDO0lBRTdDLFlBQ3FCLE1BQWdDLEVBQ3hCLFNBQWdDO1FBRHhDLFdBQU0sR0FBTixNQUFNLENBQTBCO1FBQ3hCLGNBQVMsR0FBVCxTQUFTLENBQXVCO0lBQ3pELENBQUM7SUFFRyxrQkFBa0IsQ0FBQyxLQUFVO1FBQ2pDLElBQUksS0FBSyxLQUFLLElBQUksSUFBSSxLQUFLLEtBQUssU0FBUyxJQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUN4RCxPQUFPLEtBQUssQ0FBQztRQUNqQixDQUFDO1FBRUQsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDdkIsT0FBTyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxJQUFJLElBQUksQ0FBQyxFQUFFLEtBQUssU0FBUyxJQUFJLElBQUksQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLENBQUM7UUFDcEksQ0FBQztRQUVELE9BQU8sT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLEtBQUssQ0FBQyxFQUFFLEtBQUssU0FBUyxJQUFJLEtBQUssQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDO0lBQ3BGLENBQUM7SUFFTyxZQUFZLENBQUMsTUFBVyxFQUFFLFNBQWlCO1FBQy9DLE9BQU8sU0FBUzthQUNYLEtBQUssQ0FBQyxHQUFHLENBQUM7YUFDVixNQUFNLENBQUMsQ0FBQyxZQUFZLEVBQUUsU0FBUyxFQUFFLEVBQUUsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxTQUFTLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNoRixDQUFDO0lBRU8sWUFBWSxDQUFDLE1BQVcsRUFBRSxTQUFpQixFQUFFLEtBQVU7UUFDM0QsTUFBTSxTQUFTLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN2QyxNQUFNLGVBQWUsR0FBRyxFQUFFLEdBQUcsTUFBTSxFQUFFLENBQUM7UUFDdEMsSUFBSSxNQUFNLEdBQUcsZUFBZSxDQUFDO1FBRTdCLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUU7WUFDekMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztZQUM3QyxNQUFNLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQy9CLENBQUMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDO1FBQ2hELE9BQU8sZUFBZSxDQUFDO0lBQzNCLENBQUM7SUFFTywwQkFBMEIsQ0FBQyxNQUFXO1FBQzFDLElBQUksQ0FBQyxNQUFNLElBQUksT0FBTyxNQUFNLEtBQUssUUFBUSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUNqRSxPQUFPLE1BQU0sQ0FBQztRQUNsQixDQUFDO1FBRUQsSUFBSSxlQUFlLEdBQUcsTUFBTSxDQUFDO1FBRTdCLGdDQUFnQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFO1lBQ25ELE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsZUFBZSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBQ3BFLElBQUksYUFBYSxLQUFLLFNBQVMsSUFBSSxhQUFhLEtBQUssSUFBSSxJQUFJLGFBQWEsS0FBSyxFQUFFLEVBQUUsQ0FBQztnQkFDaEYsT0FBTztZQUNYLENBQUM7WUFFRCxNQUFNLGNBQWMsR0FBRyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztZQUNwRSxJQUFJLGNBQWMsS0FBSyxhQUFhLEVBQUUsQ0FBQztnQkFDbkMsZUFBZSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsZUFBZSxFQUFFLFNBQVMsRUFBRSxjQUFjLENBQUMsQ0FBQztZQUNwRixDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLGVBQWUsQ0FBQztJQUMzQixDQUFDO0lBRU8sb0JBQW9CLENBQUMsS0FBVTtRQUNuQyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN2QixJQUFJLFVBQVUsR0FBRyxLQUFLLENBQUM7WUFDdkIsTUFBTSxlQUFlLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO2dCQUN2QyxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3ZELFVBQVUsR0FBRyxVQUFVLElBQUksY0FBYyxLQUFLLElBQUksQ0FBQztnQkFDbkQsT0FBTyxjQUFjLENBQUM7WUFDMUIsQ0FBQyxDQUFDLENBQUM7WUFFSCxPQUFPLFVBQVUsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDaEQsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDLDBCQUEwQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFTyxpQ0FBaUMsQ0FBQyxPQUErQjtRQUNyRSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDWCxPQUFPLElBQUksQ0FBQztRQUNoQixDQUFDO1FBRUQsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqRSxJQUFJLGVBQWUsS0FBSyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDcEMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxlQUFlLEVBQUUsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUM1RCxDQUFDO1FBRUQsT0FBTyxlQUFlLENBQUM7SUFDM0IsQ0FBQztJQUVPLGtCQUFrQixDQUFDLE9BQStCO1FBQ3RELElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNYLE9BQU8sS0FBSyxDQUFDO1FBQ2pCLENBQUM7UUFFRCxPQUFPLE9BQU8sQ0FBQyxLQUFLLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQztJQUM1QyxDQUFDO0lBRU8sMkJBQTJCLENBQUMsT0FBK0I7UUFDL0QsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ1gsT0FBTztRQUNYLENBQUM7UUFFRCxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2pCLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUM1QyxDQUFDO1FBRUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNuQixPQUFPLENBQUMsYUFBYSxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDOUMsQ0FBQztJQUNMLENBQUM7SUFFTyxlQUFlLENBQUMsS0FBVTtRQUM5QixJQUFJLEtBQUssS0FBSyxJQUFJLElBQUksS0FBSyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3hDLE9BQU8sS0FBSyxDQUFDO1FBQ2pCLENBQUM7UUFFRCxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQzVCLE9BQU8sS0FBSyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQztRQUMvQixDQUFDO1FBRUQsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDdkIsT0FBTyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUM1QixDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVPLG9CQUFvQjtRQUN4QixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsSUFBSSxFQUFFLENBQUM7UUFDOUMsSUFBSSxTQUFTLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3pCLE9BQU8sSUFBSSxDQUFDO1FBQ2hCLENBQUM7UUFFRCxPQUFPLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRTtZQUNqQyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDckQsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLGlDQUFpQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDcEYsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU8saUJBQWlCO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEtBQUssS0FBSyxDQUFDO0lBQzFDLENBQUM7SUFFTyxvQkFBb0I7UUFDeEIsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLElBQUksRUFBRSxDQUFDO1FBQ3BELE9BQU8sWUFBWTthQUNkLEdBQUcsQ0FBQyxDQUFDLEVBQUUsZUFBZSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUU7WUFDbkMsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDM0UsT0FBTyxZQUFZLENBQUMsQ0FBQyxDQUFDLEdBQUcsUUFBUSxRQUFRLFlBQVksR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDbEUsQ0FBQyxDQUFDO2FBQ0QsTUFBTSxDQUFDLE9BQU8sQ0FBQzthQUNmLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN2QixDQUFDO0lBRU8sc0JBQXNCO1FBQzFCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCLEVBQUUsRUFBRSxDQUFDO1FBQ2hELE9BQU8sT0FBTyxLQUFLLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUN6RCxDQUFDO0lBRU8sb0JBQW9CLENBQUMsR0FBRyxPQUFpQjtRQUM3QyxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVPLDJCQUEyQjtRQUMvQixJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLEVBQUUsQ0FBQztZQUM1QixPQUFPO1FBQ1gsQ0FBQztRQUVELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxJQUFJLEVBQUUsQ0FBQztRQUM5QyxJQUFJLFNBQVMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDekIsT0FBTztRQUNYLENBQUM7UUFFRCxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNsRSxJQUFJLENBQUMsYUFBYSxJQUFJLGFBQWEsQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzNGLE9BQU87UUFDWCxDQUFDO1FBRUQsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFDcEQsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7UUFDbEQsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLGVBQWUsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUM1RSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDZixPQUFPO1FBQ1gsQ0FBQztRQUVELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBYSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDM0YsTUFBTSxhQUFhLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBRXRHLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTzthQUNkLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxDQUFDO2FBQzVELFNBQVMsQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFO1lBQ3JCLE1BQU0sUUFBUSxHQUFHLElBQUksRUFBRSxRQUFRLElBQUksRUFBRSxDQUFDO1lBQ3RDLElBQUksUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDeEIsT0FBTztZQUNYLENBQUM7WUFFRCxNQUFNLENBQUMsV0FBVyxDQUFDLEdBQUcsb0JBQW9CLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQztZQUN0RixJQUFJLFdBQVcsRUFBRSxDQUFDO2dCQUNkLGFBQWEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFdBQVcsQ0FBQyxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7WUFDeEYsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVPLHlCQUF5QixDQUFDLHFCQUE4QixFQUFFLGFBQXNCLEVBQUUsY0FBdUI7UUFDN0csT0FBTyxDQUFDLHFCQUFxQixJQUFJLENBQUMsYUFBYSxJQUFJLGNBQWMsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFTyx1QkFBdUIsQ0FBQyxVQUFVLEdBQUcsS0FBSztRQUM5QyxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNsRSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDakIsT0FBTztRQUNYLENBQUM7UUFFRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsSUFBSSxFQUFFLENBQUM7UUFDOUMsSUFBSSxTQUFTLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3pCLE9BQU87UUFDWCxDQUFDO1FBRUQsTUFBTSxxQkFBcUIsR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMzSCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsaUNBQWlDLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDMUUsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzNELE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFekQsSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUNiLGFBQWEsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7WUFDbEQsYUFBYSxDQUFDLE9BQU8sQ0FBQyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1lBQzVDLE9BQU87UUFDWCxDQUFDO1FBRUQsZ0dBQWdHO1FBQ2hHLElBQUksSUFBSSxDQUFDLHlCQUF5QixDQUFDLHFCQUFxQixFQUFFLGFBQWEsRUFBRSxjQUFjLENBQUMsRUFBRSxDQUFDO1lBQ3ZGLGFBQWEsQ0FBQyxNQUFNLENBQUMsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztZQUMzQyxJQUFJLENBQUMsMkJBQTJCLEVBQUUsQ0FBQztZQUNuQyxPQUFPO1FBQ1gsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLG9CQUFvQixFQUFFLEVBQUUsQ0FBQztZQUM5QixhQUFhLENBQUMsTUFBTSxDQUFDLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7WUFDM0MsSUFBSSxDQUFDLDJCQUEyQixFQUFFLENBQUM7WUFDbkMsT0FBTztRQUNYLENBQUM7UUFFRCxtR0FBbUc7UUFDbkcsSUFBSSxxQkFBcUIsSUFBSSxDQUFDLGNBQWMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUM7WUFDOUQsYUFBYSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUN2RCxDQUFDO1FBRUQsYUFBYSxDQUFDLE9BQU8sQ0FBQyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFTyx5QkFBeUI7UUFDN0IsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEUsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ2pCLE9BQU87UUFDWCxDQUFDO1FBRUQsYUFBYSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUVsRCxJQUFJLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxFQUFFLENBQUM7WUFDOUIsYUFBYSxDQUFDLE1BQU0sQ0FBQyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1lBQzNDLElBQUksQ0FBQywyQkFBMkIsRUFBRSxDQUFDO1FBQ3ZDLENBQUM7SUFDTCxDQUFDO0lBRU8sd0JBQXdCLENBQUMsS0FBVTtRQUN2QyxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFekQsSUFBSSxlQUFlLEtBQUssSUFBSSxJQUFJLGVBQWUsS0FBSyxTQUFTLElBQUksZUFBZSxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQ3RGLE9BQU8sSUFBSSxDQUFDO1FBQ2hCLENBQUM7UUFFRCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQztZQUNqQyxPQUFPLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQzlFLENBQUM7UUFFRCxJQUFJLE9BQU8sZUFBZSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ3RDLElBQUksZUFBZSxDQUFDLEVBQUUsS0FBSyxTQUFTLElBQUksZUFBZSxDQUFDLEVBQUUsS0FBSyxJQUFJLEVBQUUsQ0FBQztnQkFDbEUsT0FBTyxlQUFlLENBQUMsRUFBRSxDQUFDO1lBQzlCLENBQUM7WUFFRCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDM0MsQ0FBQztRQUVELE9BQU8sZUFBZSxDQUFDO0lBQzNCLENBQUM7SUFFTyx3QkFBd0IsQ0FBQyxrQkFBdUIsRUFBRSxpQkFBc0I7UUFDNUUsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLGtCQUFrQixDQUFDLEtBQUssSUFBSSxDQUFDLFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3BGLENBQUM7SUFFTyx5QkFBeUI7UUFDN0IsSUFBSSxJQUFJLENBQUMsNEJBQTRCLEVBQUUsQ0FBQztZQUNwQyxPQUFPO1FBQ1gsQ0FBQztRQUVELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxJQUFJLEVBQUUsQ0FBQztRQUM5QyxJQUFJLFNBQVMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDekIsT0FBTztRQUNYLENBQUM7UUFFRCxJQUFJLENBQUMsNEJBQTRCLEdBQUcsSUFBSSxDQUFDO1FBRXpDLHdFQUF3RTtRQUN4RSxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUU7WUFDNUIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3JELE9BQU8sRUFBRSxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsWUFBWSxFQUFFLEVBQUU7Z0JBQzdDLE1BQU0sc0JBQXNCLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFlBQVksQ0FBQyxDQUFDO2dCQUV2RSxJQUFJLHNCQUFzQixLQUFLLFlBQVksRUFBRSxDQUFDO29CQUMxQyxPQUFPLENBQUMsUUFBUSxDQUFDLHNCQUFzQixFQUFFLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7Z0JBQ25FLENBQUM7Z0JBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxzQkFBc0IsQ0FBQyxFQUFFLENBQUM7b0JBQ25ELElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDdkMsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDO1lBRUgsT0FBTyxFQUFFLFlBQVksQ0FBQyxJQUFJLENBQ3RCLFNBQVMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQ3hCLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQyxFQUNoQyxRQUFRLEVBQUUsQ0FDYixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsYUFBYSxFQUFFLFlBQVksQ0FBQyxFQUFFLEVBQUU7Z0JBQzFDLE1BQU0sdUJBQXVCLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLGFBQWEsQ0FBQyxDQUFDO2dCQUN6RSxNQUFNLHNCQUFzQixHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxZQUFZLENBQUMsQ0FBQztnQkFFdkUsSUFBSSxzQkFBc0IsS0FBSyxZQUFZLEVBQUUsQ0FBQztvQkFDMUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxzQkFBc0IsRUFBRSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO2dCQUNuRSxDQUFDO2dCQUVELE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLHVCQUF1QixDQUFDLENBQUM7Z0JBQzFFLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO2dCQUN4RSxNQUFNLGtCQUFrQixHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO2dCQUNsRixNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO2dCQUNoRixNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsd0JBQXdCLENBQUMsa0JBQWtCLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztnQkFFNUYsSUFBSSxnQkFBZ0IsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO29CQUN2QyxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ25DLE9BQU87Z0JBQ1gsQ0FBQztnQkFFRCxJQUFJLGdCQUFnQixJQUFJLGVBQWUsSUFBSSxjQUFjLEVBQUUsQ0FBQztvQkFDeEQsSUFBSSxDQUFDLHlCQUF5QixFQUFFLENBQUM7b0JBQ2pDLE9BQU87Z0JBQ1gsQ0FBQztnQkFFRCxJQUFJLENBQUMsZ0JBQWdCLElBQUksZUFBZSxFQUFFLENBQUM7b0JBQ3ZDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDeEMsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDO1lBRUgsT0FBTyxFQUFFLGFBQWEsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUNsQyxJQUFJLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxFQUFFLENBQUM7b0JBQzlCLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDeEMsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQUM7UUFFSCx5RkFBeUY7UUFDekYsSUFBSSxDQUFDLHVCQUF1QixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxNQUFNO1FBQ0YsSUFBSSxDQUFDLHlCQUF5QixFQUFFLENBQUM7UUFFakMsT0FBTztZQUNILElBQUksRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUk7WUFDdEIsZUFBZSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFHLDREQUE0RDtZQUNoRyxlQUFlLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxlQUFlLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJO1lBQ2hFLFFBQVEsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQztZQUMvQyxJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFO1lBQ3hELFNBQVMsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsSUFBSSxFQUFFO1lBQ3RDLEtBQUssRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQztZQUNuRCxJQUFJLEVBQUUsUUFBUTtZQUNkLE9BQU8sRUFBRSxJQUFJO1lBQ2Isa0JBQWtCLEVBQUUsT0FBTztZQUMzQixXQUFXLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUM7WUFDL0QsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsOENBQThDLENBQUM7WUFDeEYsV0FBVyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLHVDQUF1QyxDQUFDO1lBQzVFLFdBQVcsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyx3Q0FBd0MsQ0FBQztZQUM3RSxVQUFVLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsc0NBQXNDLENBQUM7WUFDMUUsV0FBVyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLHVDQUF1QyxDQUFDO1lBQzVFLFdBQVcsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyx1Q0FBdUMsQ0FBQztZQUM1RSxxQkFBcUIsRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsWUFBWSxFQUFFO1lBQzdELGdCQUFnQixFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxFQUFFO1lBQ25ELGVBQWUsRUFBRSw0QkFBNEIsQ0FBQztnQkFDMUMsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO2dCQUNuQixrQkFBa0IsRUFBRSxJQUFJLENBQUMsa0JBQWtCO2dCQUMzQyxhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWE7YUFDcEMsQ0FBQztZQUNGLGVBQWUsRUFBRSw0QkFBNEIsQ0FBQztnQkFDMUMsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO2dCQUNuQixrQkFBa0IsRUFBRSxJQUFJLENBQUMsa0JBQWtCO2dCQUMzQyxhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWE7YUFDcEMsQ0FBQztZQUNGLE1BQU0sRUFBRSxDQUFDLEtBQVUsRUFBRSxFQUFFO2dCQUNuQixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDNUQsSUFBSSxPQUFPLEVBQUUsQ0FBQztvQkFDVixJQUFJLENBQUMsMkJBQTJCLENBQUMsT0FBTyxDQUFDLENBQUM7b0JBQzFDLE1BQU0sVUFBVSxHQUFHLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxJQUFJLEtBQUssRUFBRSxLQUFLLElBQUksRUFBRSxDQUFDO29CQUM5RCxNQUFNLFdBQVcsR0FBRyxPQUFPLFVBQVUsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDO29CQUNwRixNQUFNLFNBQVMsR0FBRyxDQUFDLFdBQVcsQ0FBQztvQkFDL0IsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLGlDQUFpQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO29CQUNyRSxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsWUFBWSxDQUFDLENBQUM7b0JBRTNELHVFQUF1RTtvQkFDdkUsSUFBSSxTQUFTLElBQUksWUFBWSxJQUFJLElBQUksSUFBSSxZQUFZLEtBQUssRUFBRSxFQUFFLENBQUM7d0JBQzNELE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7d0JBQzVDLE9BQU8sQ0FBQyxzQkFBc0IsQ0FBQyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO3dCQUNwRCxPQUFPO29CQUNYLENBQUM7b0JBRUQsMEVBQTBFO29CQUMxRSx1RkFBdUY7b0JBQ3ZGLElBQUksWUFBWSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7d0JBQ2hDLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO29CQUN4RixDQUFDO2dCQUNMLENBQUM7WUFDTCxDQUFDO1lBQ0QsZUFBZSxFQUFFLENBQUMsS0FBVSxFQUFFLEVBQUU7Z0JBQzVCLE1BQU0sV0FBVyxHQUFHLEtBQUssRUFBRSxLQUFLLElBQUksS0FBSyxDQUFDO2dCQUMxQyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDNUQsSUFBSSxPQUFPLElBQUksV0FBVyxJQUFJLE9BQU8sV0FBVyxLQUFLLFFBQVEsSUFBSSxXQUFXLENBQUMsRUFBRSxFQUFFLENBQUM7b0JBQzlFLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztvQkFDL0QsSUFBSSxDQUFDLDJCQUEyQixDQUFDLE9BQU8sQ0FBQyxDQUFDO29CQUMxQyxPQUFPLENBQUMsUUFBUSxDQUFDLGVBQWUsRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO2dCQUMzRCxDQUFDO1lBQ0wsQ0FBQztZQUNELFFBQVEsRUFBRSxDQUFDLEtBQVUsRUFBRSxFQUFFO2dCQUNyQixNQUFNLFdBQVcsR0FBRyxLQUFLLEVBQUUsS0FBSyxJQUFJLEtBQUssQ0FBQztnQkFDMUMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQzVELElBQUksT0FBTyxJQUFJLFdBQVcsSUFBSSxPQUFPLFdBQVcsS0FBSyxRQUFRLElBQUksV0FBVyxDQUFDLEVBQUUsRUFBRSxDQUFDO29CQUM5RSxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsV0FBVyxDQUFDLENBQUM7b0JBQy9ELElBQUksQ0FBQywyQkFBMkIsQ0FBQyxPQUFPLENBQUMsQ0FBQztvQkFDMUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxlQUFlLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztnQkFDM0QsQ0FBQztZQUNMLENBQUM7WUFDRCxPQUFPLEVBQUUsR0FBRyxFQUFFO2dCQUNWLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUM1RCxJQUFJLE9BQU8sRUFBRSxDQUFDO29CQUNWLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxPQUFPLENBQUMsQ0FBQztvQkFDMUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztnQkFDaEQsQ0FBQztZQUNMLENBQUM7WUFDRCxRQUFRLEVBQUUsQ0FBQyxLQUFVLEVBQUUsRUFBRTtnQkFDckIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQzVELE1BQU0sV0FBVyxHQUFHLEtBQUssRUFBRSxLQUFLLElBQUksS0FBSyxDQUFDO2dCQUUxQyxJQUFJLE9BQU8sSUFBSSxXQUFXLElBQUksT0FBTyxXQUFXLEtBQUssUUFBUSxFQUFFLENBQUM7b0JBQzVELE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztvQkFDL0QsSUFBSSxlQUFlLEtBQUssV0FBVyxFQUFFLENBQUM7d0JBQ2xDLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxPQUFPLENBQUMsQ0FBQzt3QkFDMUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxlQUFlLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQzt3QkFDdkQsT0FBTztvQkFDWCxDQUFDO2dCQUNMLENBQUM7Z0JBRUQsSUFBSSxPQUFPLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztvQkFDMUIsSUFBSSxDQUFDLDJCQUEyQixDQUFDLE9BQU8sQ0FBQyxDQUFDO29CQUMxQyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO2dCQUNoRCxDQUFDO1lBQ0wsQ0FBQztZQUNELFVBQVUsRUFBRSxHQUFHLEVBQUU7Z0JBQ2IsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQzVELElBQUksT0FBTyxFQUFFLENBQUM7b0JBQ1YsSUFBSSxDQUFDLDJCQUEyQixDQUFDLE9BQU8sQ0FBQyxDQUFDO29CQUMxQyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO2dCQUNoRCxDQUFDO1lBQ0wsQ0FBQztZQUNELFlBQVksRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVk7WUFDdEMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZO1lBQzFDLFFBQVEsRUFBRSxNQUFNO1lBQ2hCLFVBQVUsRUFBRSxLQUFLO1NBQ3BCLENBQUM7SUFDTixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTGliVHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbGliLXRyYW5zbGF0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBwYWlyd2lzZSwgc3RhcnRXaXRoLCBkZWJvdW5jZVRpbWUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEdlbmVyaWNMb29rdXBGaWVsZENvbmZpZyB9IGZyb20gJy4vbG9va3VwLWZpZWxkLnR5cGVzJztcclxuaW1wb3J0IHsgY3JlYXRlR2VuZXJpY09uTG9va3VwUmVxdWVzdCwgY3JlYXRlR2VuZXJpY09uU2VhcmNoUmVxdWVzdCB9IGZyb20gJy4vbG9va3VwLWZpZWxkLmhhbmRsZXJzJztcclxuaW1wb3J0IHsgZ2V0TGFiZWxWYWx1ZVJlcXVlc3QsIG1lcmdlVW5pcXVlIH0gZnJvbSAnLi4vdXRpbHMvYWdyby1sb29rdXAtdXRpbHMnO1xyXG5pbXBvcnQgeyBmb3JtYXRDUEZDTlBKV2l0aE1hc2sgfSBmcm9tICcuLi91dGlscyc7XHJcblxyXG5jb25zdCBMT09LVVBfREVCT1VOQ0VfTVMgPSAzMDA7XHJcbmNvbnN0IExPT0tVUF9ET0NVTUVOVF9GSUVMRFNfVE9fRk9STUFUID0gW1xuICAgICdjbnBDcGYnLFxuICAgICdjbnBqQ3BmJyxcbiAgICAnbnVtQ2djJyxcbiAgICAnZTAwMXBlcy5jbnBDcGYnLFxuICAgICdlMDAxcGVzLmNucGpDcGYnLFxuICAgICdlMDAxcGVzLm51bUNnYycsXG4gICAgJ2UwMDFwZXMuY3BmQ25waicsXG4gICAgJ2UwMDFwZXMuY3BmJyxcbiAgICAnZTAwMXBlcy5jbnBqJyxcclxuICAgICdlMDAxcGVzLmNnYycsXHJcbiAgICAnZTAwMXBlcy5jcGZDZ2MnLFxyXG4gICAgJ2UwMDFwZXMuY2djQ3BmJyxcclxuICAgICdjcGYnXHJcbl07XHJcblxyXG5leHBvcnQgY2xhc3MgQWdyb0Jhc2VMb29rdXBGaWVsZCB7XHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHN1Z2dlc3Rpb25zU3ViamVjdCA9IG5ldyBTdWJqZWN0PGFueVtdPigpO1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSBzZWFyY2hTdWJqZWN0ID0gbmV3IFN1YmplY3Q8YW55PigpO1xyXG4gICAgcHJpdmF0ZSBoYXNEZXBlbmRlbmN5TGlzdGVuZXJTdGFydGVkID0gZmFsc2U7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBjb25maWc6IEdlbmVyaWNMb29rdXBGaWVsZENvbmZpZyxcclxuICAgICAgICAgICAgICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlOiBMaWJUcmFuc2xhdGlvblNlcnZpY2VcclxuICAgICkgeyB9XHJcblxyXG4gICAgcHJpdmF0ZSBpc0xvb2t1cFZhbHVlVmFsaWQodmFsdWU6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlID09PSAnJykge1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHZhbHVlLmxlbmd0aCA+IDAgJiYgdmFsdWUuZXZlcnkoKGl0ZW0pID0+IGl0ZW0gJiYgdHlwZW9mIGl0ZW0gPT09ICdvYmplY3QnICYmIGl0ZW0uaWQgIT09IHVuZGVmaW5lZCAmJiBpdGVtLmlkICE9PSBudWxsKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmIHZhbHVlLmlkICE9PSB1bmRlZmluZWQgJiYgdmFsdWUuaWQgIT09IG51bGw7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRQYXRoVmFsdWUoZW50aXR5OiBhbnksIGZpZWxkUGF0aDogc3RyaW5nKTogYW55IHtcbiAgICAgICAgcmV0dXJuIGZpZWxkUGF0aFxuICAgICAgICAgICAgLnNwbGl0KCcuJylcbiAgICAgICAgICAgIC5yZWR1Y2UoKGN1cnJlbnRWYWx1ZSwgZmllbGROYW1lKSA9PiBjdXJyZW50VmFsdWU/LltmaWVsZE5hbWVdLCBlbnRpdHkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0UGF0aFZhbHVlKGVudGl0eTogYW55LCBmaWVsZFBhdGg6IHN0cmluZywgdmFsdWU6IGFueSk6IGFueSB7XG4gICAgICAgIGNvbnN0IHBhdGhQYXJ0cyA9IGZpZWxkUGF0aC5zcGxpdCgnLicpO1xuICAgICAgICBjb25zdCBmb3JtYXR0ZWRFbnRpdHkgPSB7IC4uLmVudGl0eSB9O1xuICAgICAgICBsZXQgdGFyZ2V0ID0gZm9ybWF0dGVkRW50aXR5O1xuXG4gICAgICAgIHBhdGhQYXJ0cy5zbGljZSgwLCAtMSkuZm9yRWFjaCgoZmllbGROYW1lKSA9PiB7XG4gICAgICAgICAgICB0YXJnZXRbZmllbGROYW1lXSA9IHsgLi4udGFyZ2V0W2ZpZWxkTmFtZV0gfTtcbiAgICAgICAgICAgIHRhcmdldCA9IHRhcmdldFtmaWVsZE5hbWVdO1xuICAgICAgICB9KTtcblxuICAgICAgICB0YXJnZXRbcGF0aFBhcnRzW3BhdGhQYXJ0cy5sZW5ndGggLSAxXV0gPSB2YWx1ZTtcbiAgICAgICAgcmV0dXJuIGZvcm1hdHRlZEVudGl0eTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGZvcm1hdEVudGl0eURvY3VtZW50RmllbGRzKGVudGl0eTogYW55KTogYW55IHtcbiAgICAgICAgaWYgKCFlbnRpdHkgfHwgdHlwZW9mIGVudGl0eSAhPT0gJ29iamVjdCcgfHwgQXJyYXkuaXNBcnJheShlbnRpdHkpKSB7XG4gICAgICAgICAgICByZXR1cm4gZW50aXR5O1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGZvcm1hdHRlZEVudGl0eSA9IGVudGl0eTtcblxuICAgICAgICBMT09LVVBfRE9DVU1FTlRfRklFTERTX1RPX0ZPUk1BVC5mb3JFYWNoKChmaWVsZE5hbWUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG9yaWdpbmFsVmFsdWUgPSB0aGlzLmdldFBhdGhWYWx1ZShmb3JtYXR0ZWRFbnRpdHksIGZpZWxkTmFtZSk7XG4gICAgICAgICAgICBpZiAob3JpZ2luYWxWYWx1ZSA9PT0gdW5kZWZpbmVkIHx8IG9yaWdpbmFsVmFsdWUgPT09IG51bGwgfHwgb3JpZ2luYWxWYWx1ZSA9PT0gJycpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IGZvcm1hdHRlZFZhbHVlID0gZm9ybWF0Q1BGQ05QSldpdGhNYXNrKFN0cmluZyhvcmlnaW5hbFZhbHVlKSk7XG4gICAgICAgICAgICBpZiAoZm9ybWF0dGVkVmFsdWUgIT09IG9yaWdpbmFsVmFsdWUpIHtcbiAgICAgICAgICAgICAgICBmb3JtYXR0ZWRFbnRpdHkgPSB0aGlzLnNldFBhdGhWYWx1ZShmb3JtYXR0ZWRFbnRpdHksIGZpZWxkTmFtZSwgZm9ybWF0dGVkVmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gZm9ybWF0dGVkRW50aXR5O1xuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIG5vcm1hbGl6ZUxvb2t1cFZhbHVlKHZhbHVlOiBhbnkpOiBhbnkge1xyXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xyXG4gICAgICAgICAgICBsZXQgaGFzQ2hhbmdlcyA9IGZhbHNlO1xyXG4gICAgICAgICAgICBjb25zdCBub3JtYWxpemVkQXJyYXkgPSB2YWx1ZS5tYXAoKGl0ZW0pID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IG5vcm1hbGl6ZWRJdGVtID0gdGhpcy5ub3JtYWxpemVMb29rdXBWYWx1ZShpdGVtKTtcclxuICAgICAgICAgICAgICAgIGhhc0NoYW5nZXMgPSBoYXNDaGFuZ2VzIHx8IG5vcm1hbGl6ZWRJdGVtICE9PSBpdGVtO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZWRJdGVtO1xyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgIHJldHVybiBoYXNDaGFuZ2VzID8gbm9ybWFsaXplZEFycmF5IDogdmFsdWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5mb3JtYXRFbnRpdHlEb2N1bWVudEZpZWxkcyh2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBzeW5jQ29udHJvbFZhbHVlV2l0aE5vcm1hbGl6YXRpb24oY29udHJvbDogQWJzdHJhY3RDb250cm9sIHwgbnVsbCk6IGFueSB7XHJcbiAgICAgICAgaWYgKCFjb250cm9sKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3Qgbm9ybWFsaXplZFZhbHVlID0gdGhpcy5ub3JtYWxpemVMb29rdXBWYWx1ZShjb250cm9sLnZhbHVlKTtcclxuICAgICAgICBpZiAobm9ybWFsaXplZFZhbHVlICE9PSBjb250cm9sLnZhbHVlKSB7XHJcbiAgICAgICAgICAgIGNvbnRyb2wuc2V0VmFsdWUobm9ybWFsaXplZFZhbHVlLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gbm9ybWFsaXplZFZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgaGFzVXNlckludGVyYWN0aW9uKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCB8IG51bGwpOiBib29sZWFuIHtcclxuICAgICAgICBpZiAoIWNvbnRyb2wpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGNvbnRyb2wuZGlydHkgfHwgY29udHJvbC50b3VjaGVkO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgbWFya0NvbnRyb2xBc1VzZXJJbnRlcmFjdGVkKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCB8IG51bGwpOiB2b2lkIHtcclxuICAgICAgICBpZiAoIWNvbnRyb2wpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKCFjb250cm9sLmRpcnR5KSB7XHJcbiAgICAgICAgICAgIGNvbnRyb2wubWFya0FzRGlydHkoeyBvbmx5U2VsZjogdHJ1ZSB9KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICghY29udHJvbC50b3VjaGVkKSB7XHJcbiAgICAgICAgICAgIGNvbnRyb2wubWFya0FzVG91Y2hlZCh7IG9ubHlTZWxmOiB0cnVlIH0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGlzQ29udHJvbEZpbGxlZCh2YWx1ZTogYW55KTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHZhbHVlLnRyaW0oKSAhPT0gJyc7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHZhbHVlLmxlbmd0aCA+IDA7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGFyZURlcGVuZGVuY2llc1JlYWR5KCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGNvbnN0IGRlcGVuZHNPZiA9IHRoaXMuY29uZmlnLmRlcGVuZHNPZiA/PyBbXTtcclxuICAgICAgICBpZiAoZGVwZW5kc09mLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBkZXBlbmRzT2YuZXZlcnkoKGZpZWxkTmFtZSkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBjb250cm9sID0gdGhpcy5jb25maWcuZm9ybUdyb3VwLmdldChmaWVsZE5hbWUpO1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5pc0xvb2t1cFZhbHVlVmFsaWQodGhpcy5zeW5jQ29udHJvbFZhbHVlV2l0aE5vcm1hbGl6YXRpb24oY29udHJvbCkpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgaXNBdXRvZmlsbEVuYWJsZWQoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY29uZmlnLmF1dG9maWxsICE9PSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGJ1aWxkRGVwZW5kZW5jeVF1ZXJ5KCk6IHN0cmluZyB7XHJcbiAgICAgICAgY29uc3QgZGVwZW5kZW5jaWVzID0gdGhpcy5jb25maWcuZGVwZW5kZW5jaWVzID8/IFtdO1xyXG4gICAgICAgIHJldHVybiBkZXBlbmRlbmNpZXNcclxuICAgICAgICAgICAgLm1hcCgoeyBmb3JtQ29udHJvbE5hbWUsIGFwaUZpZWxkIH0pID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGRlcGVuZGVuY3lJZCA9IHRoaXMuY29uZmlnLmZvcm1Hcm91cC5nZXQoZm9ybUNvbnRyb2xOYW1lKT8udmFsdWU/LmlkO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGRlcGVuZGVuY3lJZCA/IGAke2FwaUZpZWxkfSBlcSAnJHtkZXBlbmRlbmN5SWR9J2AgOiAnJztcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgLmZpbHRlcihCb29sZWFuKVxyXG4gICAgICAgICAgICAuam9pbignIGFuZCAnKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGJ1aWxkQ3VzdG9tRmlsdGVyUXVlcnkoKTogc3RyaW5nIHtcclxuICAgICAgICBjb25zdCBxdWVyeSA9IHRoaXMuY29uZmlnLmN1c3RvbUZpbHRlclF1ZXJ5Py4oKTtcclxuICAgICAgICByZXR1cm4gdHlwZW9mIHF1ZXJ5ID09PSAnc3RyaW5nJyA/IHF1ZXJ5LnRyaW0oKSA6ICcnO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgY29tYmluZUZpbHRlclF1ZXJpZXMoLi4ucXVlcmllczogc3RyaW5nW10pOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiBxdWVyaWVzLmZpbHRlcigocXVlcnkpID0+ICEhcXVlcnkpLmpvaW4oJyBhbmQgJyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSB0cnlBdXRvZmlsbFdoZW5TaW5nbGVSZXN1bHQoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmlzQXV0b2ZpbGxFbmFibGVkKCkpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgZGVwZW5kc09mID0gdGhpcy5jb25maWcuZGVwZW5kc09mID8/IFtdO1xyXG4gICAgICAgIGlmIChkZXBlbmRzT2YubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IHRhcmdldENvbnRyb2wgPSB0aGlzLmNvbmZpZy5mb3JtR3JvdXAuZ2V0KHRoaXMuY29uZmlnLm5hbWUpO1xyXG4gICAgICAgIGlmICghdGFyZ2V0Q29udHJvbCB8fCB0YXJnZXRDb250cm9sLmRpc2FibGVkIHx8IHRoaXMuaXNMb29rdXBWYWx1ZVZhbGlkKHRhcmdldENvbnRyb2wudmFsdWUpKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IGRlcGVuZGVuY3lRdWVyeSA9IHRoaXMuYnVpbGREZXBlbmRlbmN5UXVlcnkoKTtcclxuICAgICAgICBjb25zdCBjdXN0b21RdWVyeSA9IHRoaXMuYnVpbGRDdXN0b21GaWx0ZXJRdWVyeSgpO1xyXG4gICAgICAgIGNvbnN0IGZpbHRlclF1ZXJ5ID0gdGhpcy5jb21iaW5lRmlsdGVyUXVlcmllcyhkZXBlbmRlbmN5UXVlcnksIGN1c3RvbVF1ZXJ5KTtcclxuICAgICAgICBpZiAoIWZpbHRlclF1ZXJ5KSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IHNvcnQgPSB0aGlzLmNvbmZpZy5sb29rdXBEaXNwbGF5RmllbGRzLm1hcCgoZmllbGQ6IHN0cmluZykgPT4gKHsgZmllbGQsIG9yZGVyOiAxIH0pKTtcclxuICAgICAgICBjb25zdCBkaXNwbGF5RmllbGRzID0gbWVyZ2VVbmlxdWUodGhpcy5jb25maWcubG9va3VwRGlzcGxheUZpZWxkcywgdGhpcy5jb25maWcuYWR2YW5jZWREaXNwbGF5RmllbGRzKTtcclxuXHJcbiAgICAgICAgdGhpcy5jb25maWcuc2VydmljZVxyXG4gICAgICAgICAgICAubGlzdCh7IHBhZ2U6IDAsIHNpemU6IDIsIHNvcnQsIGZpbHRlclF1ZXJ5LCBkaXNwbGF5RmllbGRzIH0pXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGxpc3Q6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgY29udGVudHMgPSBsaXN0Py5jb250ZW50cyA/PyBbXTtcclxuICAgICAgICAgICAgICAgIGlmIChjb250ZW50cy5sZW5ndGggIT09IDEpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgY29uc3QgW3NpbmdsZVZhbHVlXSA9IGdldExhYmVsVmFsdWVSZXF1ZXN0KGNvbnRlbnRzLCB0aGlzLmNvbmZpZy5sb29rdXBEaXNwbGF5RmllbGRzKTtcclxuICAgICAgICAgICAgICAgIGlmIChzaW5nbGVWYWx1ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRhcmdldENvbnRyb2wuc2V0VmFsdWUodGhpcy5ub3JtYWxpemVMb29rdXBWYWx1ZShzaW5nbGVWYWx1ZSksIHsgZW1pdEV2ZW50OiB0cnVlIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGlzUHJlZmlsbGVkQW5kSW5kZXBlbmRlbnQoaGFzQW55VXNlckludGVyYWN0aW9uOiBib29sZWFuLCB0YXJnZXRJc1ZhbGlkOiBib29sZWFuLCB0YXJnZXRJc0ZpbGxlZDogYm9vbGVhbik6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiAhaGFzQW55VXNlckludGVyYWN0aW9uICYmICh0YXJnZXRJc1ZhbGlkIHx8IHRhcmdldElzRmlsbGVkKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGhhbmRsZURlcGVuZGVuY2llc1N0YXRlKGZvcmNlUmVzZXQgPSBmYWxzZSk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IHRhcmdldENvbnRyb2wgPSB0aGlzLmNvbmZpZy5mb3JtR3JvdXAuZ2V0KHRoaXMuY29uZmlnLm5hbWUpO1xyXG4gICAgICAgIGlmICghdGFyZ2V0Q29udHJvbCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBkZXBlbmRzT2YgPSB0aGlzLmNvbmZpZy5kZXBlbmRzT2YgPz8gW107XHJcbiAgICAgICAgaWYgKGRlcGVuZHNPZi5sZW5ndGggPT09IDApIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgaGFzQW55VXNlckludGVyYWN0aW9uID0gZGVwZW5kc09mLnNvbWUoKGZpZWxkTmFtZSkgPT4gdGhpcy5oYXNVc2VySW50ZXJhY3Rpb24odGhpcy5jb25maWcuZm9ybUdyb3VwLmdldChmaWVsZE5hbWUpKSk7XHJcbiAgICAgICAgY29uc3QgdGFyZ2V0VmFsdWUgPSB0aGlzLnN5bmNDb250cm9sVmFsdWVXaXRoTm9ybWFsaXphdGlvbih0YXJnZXRDb250cm9sKTtcclxuICAgICAgICBjb25zdCB0YXJnZXRJc1ZhbGlkID0gdGhpcy5pc0xvb2t1cFZhbHVlVmFsaWQodGFyZ2V0VmFsdWUpO1xyXG4gICAgICAgIGNvbnN0IHRhcmdldElzRmlsbGVkID0gdGhpcy5pc0NvbnRyb2xGaWxsZWQodGFyZ2V0VmFsdWUpO1xyXG5cclxuICAgICAgICBpZiAoZm9yY2VSZXNldCkge1xuICAgICAgICAgICAgdGFyZ2V0Q29udHJvbC5zZXRWYWx1ZShudWxsLCB7IGVtaXRFdmVudDogdHJ1ZSB9KTtcbiAgICAgICAgICAgIHRhcmdldENvbnRyb2wuZGlzYWJsZSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxyXG4gICAgICAgIC8vIFJ1bGU6IGRlcGVuZGVudCBmaWVsZHMgc3RhcnQgZGlzYWJsZWQsIGV4Y2VwdCB3aGVuIGFscmVhZHkgZmlsbGVkL3ZhbGlkIChwcmVmaWxsZWQgc2NlbmFyaW8pLlxyXG4gICAgICAgIGlmICh0aGlzLmlzUHJlZmlsbGVkQW5kSW5kZXBlbmRlbnQoaGFzQW55VXNlckludGVyYWN0aW9uLCB0YXJnZXRJc1ZhbGlkLCB0YXJnZXRJc0ZpbGxlZCkpIHtcclxuICAgICAgICAgICAgdGFyZ2V0Q29udHJvbC5lbmFibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gICAgICAgICAgICB0aGlzLnRyeUF1dG9maWxsV2hlblNpbmdsZVJlc3VsdCgpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5hcmVEZXBlbmRlbmNpZXNSZWFkeSgpKSB7XHJcbiAgICAgICAgICAgIHRhcmdldENvbnRyb2wuZW5hYmxlKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuICAgICAgICAgICAgdGhpcy50cnlBdXRvZmlsbFdoZW5TaW5nbGVSZXN1bHQoKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gS2VlcCBwcmVmaWxsZWQgdmFsdWVzOyBjbGVhciBvbmx5IHdoZW4gdGhlcmUgaXMgdXNlciBpbnRlcmFjdGlvbiBvciB2YWx1ZSBpcyBpbnZhbGlkIGZvciBsb29rdXAuXHJcbiAgICAgICAgaWYgKGhhc0FueVVzZXJJbnRlcmFjdGlvbiB8fCAodGFyZ2V0SXNGaWxsZWQgJiYgIXRhcmdldElzVmFsaWQpKSB7XHJcbiAgICAgICAgICAgIHRhcmdldENvbnRyb2wuc2V0VmFsdWUobnVsbCwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGFyZ2V0Q29udHJvbC5kaXNhYmxlKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGNsZWFyVGFyZ2V0S2VlcGluZ0VuYWJsZWQoKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgdGFyZ2V0Q29udHJvbCA9IHRoaXMuY29uZmlnLmZvcm1Hcm91cC5nZXQodGhpcy5jb25maWcubmFtZSk7XHJcbiAgICAgICAgaWYgKCF0YXJnZXRDb250cm9sKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRhcmdldENvbnRyb2wuc2V0VmFsdWUobnVsbCwgeyBlbWl0RXZlbnQ6IHRydWUgfSk7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmFyZURlcGVuZGVuY2llc1JlYWR5KCkpIHtcclxuICAgICAgICAgICAgdGFyZ2V0Q29udHJvbC5lbmFibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gICAgICAgICAgICB0aGlzLnRyeUF1dG9maWxsV2hlblNpbmdsZVJlc3VsdCgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldENvbXBhcmFibGVMb29rdXBWYWx1ZSh2YWx1ZTogYW55KTogYW55IHtcclxuICAgICAgICBjb25zdCBub3JtYWxpemVkVmFsdWUgPSB0aGlzLm5vcm1hbGl6ZUxvb2t1cFZhbHVlKHZhbHVlKTtcclxuXHJcbiAgICAgICAgaWYgKG5vcm1hbGl6ZWRWYWx1ZSA9PT0gbnVsbCB8fCBub3JtYWxpemVkVmFsdWUgPT09IHVuZGVmaW5lZCB8fCBub3JtYWxpemVkVmFsdWUgPT09ICcnKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkobm9ybWFsaXplZFZhbHVlKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gbm9ybWFsaXplZFZhbHVlLm1hcCgoaXRlbSkgPT4gdGhpcy5nZXRDb21wYXJhYmxlTG9va3VwVmFsdWUoaXRlbSkpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHR5cGVvZiBub3JtYWxpemVkVmFsdWUgPT09ICdvYmplY3QnKSB7XHJcbiAgICAgICAgICAgIGlmIChub3JtYWxpemVkVmFsdWUuaWQgIT09IHVuZGVmaW5lZCAmJiBub3JtYWxpemVkVmFsdWUuaWQgIT09IG51bGwpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBub3JtYWxpemVkVmFsdWUuaWQ7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShub3JtYWxpemVkVmFsdWUpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZWRWYWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGRpZERlcGVuZGVuY3lWYWx1ZUNoYW5nZShwcmV2aW91c0NvbXBhcmFibGU6IGFueSwgY3VycmVudENvbXBhcmFibGU6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShwcmV2aW91c0NvbXBhcmFibGUpICE9PSBKU09OLnN0cmluZ2lmeShjdXJyZW50Q29tcGFyYWJsZSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBzdGFydERlcGVuZGVuY2llc0xpc3RlbmVyKCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLmhhc0RlcGVuZGVuY3lMaXN0ZW5lclN0YXJ0ZWQpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgZGVwZW5kc09mID0gdGhpcy5jb25maWcuZGVwZW5kc09mID8/IFtdO1xyXG4gICAgICAgIGlmIChkZXBlbmRzT2YubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuaGFzRGVwZW5kZW5jeUxpc3RlbmVyU3RhcnRlZCA9IHRydWU7XHJcblxyXG4gICAgICAgIC8vIE9ic2VydmUgZWFjaCBkZXBlbmRlbmN5IGRpcmVjdGx5IGFuZCBjb21wYXJlIHByZXZpb3VzL2N1cnJlbnQgdmFsdWVzLlxuICAgICAgICBkZXBlbmRzT2YuZm9yRWFjaCgoZmllbGROYW1lKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjb250cm9sID0gdGhpcy5jb25maWcuZm9ybUdyb3VwLmdldChmaWVsZE5hbWUpO1xuICAgICAgICAgICAgY29udHJvbD8udmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgoY3VycmVudFZhbHVlKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3Qgbm9ybWFsaXplZEN1cnJlbnRWYWx1ZSA9IHRoaXMubm9ybWFsaXplTG9va3VwVmFsdWUoY3VycmVudFZhbHVlKTtcblxuICAgICAgICAgICAgICAgIGlmIChub3JtYWxpemVkQ3VycmVudFZhbHVlICE9PSBjdXJyZW50VmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgY29udHJvbC5zZXRWYWx1ZShub3JtYWxpemVkQ3VycmVudFZhbHVlLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLmlzTG9va3VwVmFsdWVWYWxpZChub3JtYWxpemVkQ3VycmVudFZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZURlcGVuZGVuY2llc1N0YXRlKHRydWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBjb250cm9sPy52YWx1ZUNoYW5nZXMucGlwZShcbiAgICAgICAgICAgICAgICBzdGFydFdpdGgoY29udHJvbC52YWx1ZSksXG4gICAgICAgICAgICAgICAgZGVib3VuY2VUaW1lKExPT0tVUF9ERUJPVU5DRV9NUyksXG4gICAgICAgICAgICAgICAgcGFpcndpc2UoKVxuICAgICAgICAgICAgKS5zdWJzY3JpYmUoKFtwcmV2aW91c1ZhbHVlLCBjdXJyZW50VmFsdWVdKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3Qgbm9ybWFsaXplZFByZXZpb3VzVmFsdWUgPSB0aGlzLm5vcm1hbGl6ZUxvb2t1cFZhbHVlKHByZXZpb3VzVmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgY29uc3Qgbm9ybWFsaXplZEN1cnJlbnRWYWx1ZSA9IHRoaXMubm9ybWFsaXplTG9va3VwVmFsdWUoY3VycmVudFZhbHVlKTtcclxuXHJcbiAgICAgICAgICAgICAgICBpZiAobm9ybWFsaXplZEN1cnJlbnRWYWx1ZSAhPT0gY3VycmVudFZhbHVlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29udHJvbC5zZXRWYWx1ZShub3JtYWxpemVkQ3VycmVudFZhbHVlLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgY29uc3QgcHJldmlvdXNWYWxpZGl0eSA9IHRoaXMuaXNMb29rdXBWYWx1ZVZhbGlkKG5vcm1hbGl6ZWRQcmV2aW91c1ZhbHVlKTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRWYWxpZGl0eSA9IHRoaXMuaXNMb29rdXBWYWx1ZVZhbGlkKG5vcm1hbGl6ZWRDdXJyZW50VmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgcHJldmlvdXNDb21wYXJhYmxlID0gdGhpcy5nZXRDb21wYXJhYmxlTG9va3VwVmFsdWUobm9ybWFsaXplZFByZXZpb3VzVmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgY3VycmVudENvbXBhcmFibGUgPSB0aGlzLmdldENvbXBhcmFibGVMb29rdXBWYWx1ZShub3JtYWxpemVkQ3VycmVudFZhbHVlKTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGRpZFZhbHVlQ2hhbmdlID0gdGhpcy5kaWREZXBlbmRlbmN5VmFsdWVDaGFuZ2UocHJldmlvdXNDb21wYXJhYmxlLCBjdXJyZW50Q29tcGFyYWJsZSk7XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKHByZXZpb3VzVmFsaWRpdHkgJiYgIWN1cnJlbnRWYWxpZGl0eSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlRGVwZW5kZW5jaWVzU3RhdGUodHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGlmIChwcmV2aW91c1ZhbGlkaXR5ICYmIGN1cnJlbnRWYWxpZGl0eSAmJiBkaWRWYWx1ZUNoYW5nZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2xlYXJUYXJnZXRLZWVwaW5nRW5hYmxlZCgpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBpZiAoIXByZXZpb3VzVmFsaWRpdHkgJiYgY3VycmVudFZhbGlkaXR5KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVEZXBlbmRlbmNpZXNTdGF0ZShmYWxzZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgY29udHJvbD8uc3RhdHVzQ2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuYXJlRGVwZW5kZW5jaWVzUmVhZHkoKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlRGVwZW5kZW5jaWVzU3RhdGUoZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgLy8gRXZhbHVhdGUgb25jZSBhZnRlciBpbml0IHRvIGhvbm9yIHByZWZpbGxlZCB2YWxpZCBkZXBlbmRlbmNpZXMgd2l0aG91dCBmb3JjaW5nIHJlc2V0cy5cclxuICAgICAgICB0aGlzLmhhbmRsZURlcGVuZGVuY2llc1N0YXRlKGZhbHNlKTtcclxuICAgIH1cclxuXHJcbiAgICBtYWtlSXQoKTogYW55IHtcclxuICAgICAgICB0aGlzLnN0YXJ0RGVwZW5kZW5jaWVzTGlzdGVuZXIoKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgbmFtZTogdGhpcy5jb25maWcubmFtZSxcclxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lOiB0aGlzLmNvbmZpZy5uYW1lLCAgLy8gRXhwbGljaXRseSBzZXQgZm9ybUNvbnRyb2xOYW1lIGZvciBzLWR5bmFtaWMtZm9ybSBiaW5kaW5nXHJcbiAgICAgICAgICAgIGZpbHRlckZpZWxkTmFtZTogdGhpcy5jb25maWcuZmlsdGVyRmllbGROYW1lID8/IHRoaXMuY29uZmlnLm5hbWUsXHJcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0aGlzLmNvbmZpZy5yZXF1aXJlZCA/PyAoKCkgPT4gZmFsc2UpLFxyXG4gICAgICAgICAgICBzaXplOiB0aGlzLmNvbmZpZy5zaXplID8/IHsgc206IDQsIG1kOiA0LCBsZzogNCwgeGw6IDQgfSxcclxuICAgICAgICAgICAgZGVwZW5kc09mOiB0aGlzLmNvbmZpZy5kZXBlbmRzT2YgPz8gW10sXHJcbiAgICAgICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KHRoaXMuY29uZmlnLmxhYmVsS2V5KSxcclxuICAgICAgICAgICAgdHlwZTogJ2xvb2t1cCcsXHJcbiAgICAgICAgICAgIGRhdGFLZXk6ICdpZCcsXHJcbiAgICAgICAgICAgIGxvb2t1cERpc3BsYXlGaWVsZDogJ2xhYmVsJyxcclxuICAgICAgICAgICAgc2VhcmNoVGl0bGU6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQodGhpcy5jb25maWcuc2VhcmNoVGl0bGVLZXkpLFxyXG4gICAgICAgICAgICBzZWFyY2hFbXB0eVRpdGxlOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdhZ3JvLmFuZ3VsYXJfY29tcG9uZW50cy5sb29rdXBfbm90aGluZ19mb3VuZCcpLFxyXG4gICAgICAgICAgICBmaWx0ZXJMYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnYWdyby5hbmd1bGFyX2NvbXBvbmVudHMubG9va3VwX2ZpbHRlcicpLFxyXG4gICAgICAgICAgICBmaWx0ZXJUaXRsZTogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnYWdyby5hbmd1bGFyX2NvbXBvbmVudHMubG9va3VwX2ZpbHRlcnMnKSxcclxuICAgICAgICAgICAgY2xlYXJMYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnYWdyby5hbmd1bGFyX2NvbXBvbmVudHMubG9va3VwX2NsZWFyJyksXHJcbiAgICAgICAgICAgIGNhbmNlbExhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdhZ3JvLmFuZ3VsYXJfY29tcG9uZW50cy5sb29rdXBfY2FuY2VsJyksXHJcbiAgICAgICAgICAgIHNlbGVjdExhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdhZ3JvLmFuZ3VsYXJfY29tcG9uZW50cy5sb29rdXBfc2VsZWN0JyksXHJcbiAgICAgICAgICAgIHN1Z2dlc3Rpb25zT2JzZXJ2YWJsZTogdGhpcy5zdWdnZXN0aW9uc1N1YmplY3QuYXNPYnNlcnZhYmxlKCksXHJcbiAgICAgICAgICAgIHNlYXJjaE9ic2VydmFibGU6IHRoaXMuc2VhcmNoU3ViamVjdC5hc09ic2VydmFibGUoKSxcclxuICAgICAgICAgICAgb25Mb29rdXBSZXF1ZXN0OiBjcmVhdGVHZW5lcmljT25Mb29rdXBSZXF1ZXN0KHtcclxuICAgICAgICAgICAgICAgIGNvbmZpZzogdGhpcy5jb25maWcsXHJcbiAgICAgICAgICAgICAgICBzdWdnZXN0aW9uc1N1YmplY3Q6IHRoaXMuc3VnZ2VzdGlvbnNTdWJqZWN0LFxyXG4gICAgICAgICAgICAgICAgc2VhcmNoU3ViamVjdDogdGhpcy5zZWFyY2hTdWJqZWN0LFxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgb25TZWFyY2hSZXF1ZXN0OiBjcmVhdGVHZW5lcmljT25TZWFyY2hSZXF1ZXN0KHtcclxuICAgICAgICAgICAgICAgIGNvbmZpZzogdGhpcy5jb25maWcsXHJcbiAgICAgICAgICAgICAgICBzdWdnZXN0aW9uc1N1YmplY3Q6IHRoaXMuc3VnZ2VzdGlvbnNTdWJqZWN0LFxyXG4gICAgICAgICAgICAgICAgc2VhcmNoU3ViamVjdDogdGhpcy5zZWFyY2hTdWJqZWN0LFxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgb25CbHVyOiAoZXZlbnQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgY29udHJvbCA9IHRoaXMuY29uZmlnLmZvcm1Hcm91cC5nZXQodGhpcy5jb25maWcubmFtZSk7XHJcbiAgICAgICAgICAgICAgICBpZiAoY29udHJvbCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubWFya0NvbnRyb2xBc1VzZXJJbnRlcmFjdGVkKGNvbnRyb2wpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpUmF3VmFsdWUgPSBldmVudD8udGFyZ2V0Py52YWx1ZSA/PyBldmVudD8udmFsdWUgPz8gJyc7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdWlUZXh0VmFsdWUgPSB0eXBlb2YgdWlSYXdWYWx1ZSA9PT0gJ3N0cmluZycgPyB1aVJhd1ZhbHVlLnRyaW0oKSA6IHVpUmF3VmFsdWU7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaXNVaUVtcHR5ID0gIXVpVGV4dFZhbHVlO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRWYWx1ZSA9IHRoaXMuc3luY0NvbnRyb2xWYWx1ZVdpdGhOb3JtYWxpemF0aW9uKGNvbnRyb2wpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGlzVmFsdWVWYWxpZCA9IHRoaXMuaXNMb29rdXBWYWx1ZVZhbGlkKGN1cnJlbnRWYWx1ZSk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIC8vIElmIFVJIHdhcyBjbGVhcmVkIGJ1dCBjb250cm9sIHN0aWxsIGhhcyBhIHZhbHVlLCBmb3JjZSBzeW5jIHRvIG51bGwuXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzVWlFbXB0eSAmJiBjdXJyZW50VmFsdWUgIT0gbnVsbCAmJiBjdXJyZW50VmFsdWUgIT09ICcnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRyb2wuc2V0VmFsdWUobnVsbCwgeyBlbWl0RXZlbnQ6IHRydWUgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7IGVtaXRFdmVudDogdHJ1ZSB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhlIGNvbnRyb2wgaGFzIGEgdmFsdWUgYnV0IGl0J3Mgbm90IGEgdmFsaWQgbG9va3VwIG9iamVjdCwgY2xlYXIgaXRcclxuICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIGNhdGNoZXMgY2FzZXMgd2hlcmUgdGhlIFVJIGNsZWFyZWQgdGhlIGZpZWxkIGJ1dCB0aGUgRm9ybUNvbnRyb2wgd2Fzbid0IHVwZGF0ZWRcclxuICAgICAgICAgICAgICAgICAgICBpZiAoY3VycmVudFZhbHVlICYmICFpc1ZhbHVlVmFsaWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb25maWcuZm9ybUdyb3VwLnBhdGNoVmFsdWUoeyBbdGhpcy5jb25maWcubmFtZV06IG51bGwgfSwgeyBlbWl0RXZlbnQ6IHRydWUgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBvblNlbGVjdEhhbmRsZXI6IChldmVudDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBhY3R1YWxWYWx1ZSA9IGV2ZW50Py52YWx1ZSB8fCBldmVudDtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmNvbmZpZy5mb3JtR3JvdXAuZ2V0KHRoaXMuY29uZmlnLm5hbWUpO1xyXG4gICAgICAgICAgICAgICAgaWYgKGNvbnRyb2wgJiYgYWN0dWFsVmFsdWUgJiYgdHlwZW9mIGFjdHVhbFZhbHVlID09PSAnb2JqZWN0JyAmJiBhY3R1YWxWYWx1ZS5pZCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG5vcm1hbGl6ZWRWYWx1ZSA9IHRoaXMubm9ybWFsaXplTG9va3VwVmFsdWUoYWN0dWFsVmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubWFya0NvbnRyb2xBc1VzZXJJbnRlcmFjdGVkKGNvbnRyb2wpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnRyb2wuc2V0VmFsdWUobm9ybWFsaXplZFZhbHVlLCB7IGVtaXRFdmVudDogdHJ1ZSB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgb25TZWxlY3Q6IChldmVudDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBhY3R1YWxWYWx1ZSA9IGV2ZW50Py52YWx1ZSB8fCBldmVudDtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmNvbmZpZy5mb3JtR3JvdXAuZ2V0KHRoaXMuY29uZmlnLm5hbWUpO1xyXG4gICAgICAgICAgICAgICAgaWYgKGNvbnRyb2wgJiYgYWN0dWFsVmFsdWUgJiYgdHlwZW9mIGFjdHVhbFZhbHVlID09PSAnb2JqZWN0JyAmJiBhY3R1YWxWYWx1ZS5pZCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG5vcm1hbGl6ZWRWYWx1ZSA9IHRoaXMubm9ybWFsaXplTG9va3VwVmFsdWUoYWN0dWFsVmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubWFya0NvbnRyb2xBc1VzZXJJbnRlcmFjdGVkKGNvbnRyb2wpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnRyb2wuc2V0VmFsdWUobm9ybWFsaXplZFZhbHVlLCB7IGVtaXRFdmVudDogdHJ1ZSB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgb25DbGVhcjogKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgY29udHJvbCA9IHRoaXMuY29uZmlnLmZvcm1Hcm91cC5nZXQodGhpcy5jb25maWcubmFtZSk7XHJcbiAgICAgICAgICAgICAgICBpZiAoY29udHJvbCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubWFya0NvbnRyb2xBc1VzZXJJbnRlcmFjdGVkKGNvbnRyb2wpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnRyb2wuc2V0VmFsdWUobnVsbCwgeyBlbWl0RXZlbnQ6IHRydWUgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIG9uQ2hhbmdlOiAoZXZlbnQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgY29udHJvbCA9IHRoaXMuY29uZmlnLmZvcm1Hcm91cC5nZXQodGhpcy5jb25maWcubmFtZSk7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBhY3R1YWxWYWx1ZSA9IGV2ZW50Py52YWx1ZSB8fCBldmVudDtcclxuXHJcbiAgICAgICAgICAgICAgICBpZiAoY29udHJvbCAmJiBhY3R1YWxWYWx1ZSAmJiB0eXBlb2YgYWN0dWFsVmFsdWUgPT09ICdvYmplY3QnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgbm9ybWFsaXplZFZhbHVlID0gdGhpcy5ub3JtYWxpemVMb29rdXBWYWx1ZShhY3R1YWxWYWx1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKG5vcm1hbGl6ZWRWYWx1ZSAhPT0gYWN0dWFsVmFsdWUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5tYXJrQ29udHJvbEFzVXNlckludGVyYWN0ZWQoY29udHJvbCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRyb2wuc2V0VmFsdWUobm9ybWFsaXplZFZhbHVlLCB7IGVtaXRFdmVudDogdHJ1ZSB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBpZiAoY29udHJvbCAmJiAhYWN0dWFsVmFsdWUpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm1hcmtDb250cm9sQXNVc2VySW50ZXJhY3RlZChjb250cm9sKTtcclxuICAgICAgICAgICAgICAgICAgICBjb250cm9sLnNldFZhbHVlKG51bGwsIHsgZW1pdEV2ZW50OiB0cnVlIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBvblVuc2VsZWN0OiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBjb250cm9sID0gdGhpcy5jb25maWcuZm9ybUdyb3VwLmdldCh0aGlzLmNvbmZpZy5uYW1lKTtcclxuICAgICAgICAgICAgICAgIGlmIChjb250cm9sKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tYXJrQ29udHJvbEFzVXNlckludGVyYWN0ZWQoY29udHJvbCk7XHJcbiAgICAgICAgICAgICAgICAgICAgY29udHJvbC5zZXRWYWx1ZShudWxsLCB7IGVtaXRFdmVudDogdHJ1ZSB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgc2VhcmNoRmllbGRzOiB0aGlzLmNvbmZpZy5zZWFyY2hGaWVsZHMsXHJcbiAgICAgICAgICAgIHNlYXJjaEdyaWRGaWVsZHM6IHRoaXMuY29uZmlnLnNlYXJjaEZpZWxkcyxcclxuICAgICAgICAgICAgYXBwZW5kVG86ICdib2R5JyxcclxuICAgICAgICAgICAgYmFzZVpJbmRleDogMTAwMDAsXHJcbiAgICAgICAgfTtcclxuICAgIH1cclxufVxyXG5cclxuXHJcbiJdfQ==
|
|
@@ -11,8 +11,8 @@ export class AgroBranchLookup extends AgroLookupBase {
|
|
|
11
11
|
return {
|
|
12
12
|
labelKey: 'agro.angular_components.lookup_contract_branch',
|
|
13
13
|
searchTitleKey: 'agro.angular_components.lookup_contract_branch_search_title',
|
|
14
|
-
lookupDisplayFields: ['codFil', 'nomFil'],
|
|
15
|
-
advancedDisplayFields: ['codFil', 'nomFil'],
|
|
14
|
+
lookupDisplayFields: ['codFil', 'nomFil', 'numCgc', 'cidFil'],
|
|
15
|
+
advancedDisplayFields: ['codFil', 'nomFil', 'numCgc', 'cidFil'],
|
|
16
16
|
searchFields: [
|
|
17
17
|
{ name: 'codFil', label: this.translate.instant('agro.angular_components.lookup_label_code'), type: 'integer', allowNegative: false, precision: 11, scale: 0 },
|
|
18
18
|
{ name: 'nomFil', label: this.translate.instant('agro.angular_components.lookup_label_branch'), type: 'string' },
|
|
@@ -24,4 +24,4 @@ export class AgroBranchLookup extends AgroLookupBase {
|
|
|
24
24
|
};
|
|
25
25
|
}
|
|
26
26
|
}
|
|
27
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdyby1icmFuY2gtbG9va3VwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL2ZpZWxkcy9sb29rdXBzL2NvcmUvYWdyby1icmFuY2gtbG9va3VwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxjQUFjLEVBQXdCLE1BQU0sb0JBQW9CLENBQUM7QUFHMUUsTUFBTSxPQUFPLGdCQUFpQixTQUFRLGNBQWM7SUFDL0IsY0FBYyxDQUFtQztJQUVsRSxZQUFZLE1BQTBDO1FBQ2xELEtBQUssQ0FBQyxNQUFNLEVBQUUsRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsc0JBQXNCLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUNuRixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksdUJBQXVCLENBQzdDLDhCQUE4QixDQUFDLE1BQU0sRUFBRSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsRUFDN0Qsa0JBQWtCLENBQ3JCLENBQUM7SUFDTixDQUFDO0lBRUQsZUFBZTtRQUNYLE9BQU87WUFDSCxRQUFRLEVBQUUsZ0RBQWdEO1lBQzFELGNBQWMsRUFBRSw2REFBNkQ7WUFDN0UsbUJBQW1CLEVBQUUsQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxRQUFRLENBQUM7WUFDN0QscUJBQXFCLEVBQUUsQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxRQUFRLENBQUM7WUFDL0QsWUFBWSxFQUFFO2dCQUNWLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsMkNBQTJDLENBQUMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFO2dCQUM5SixFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLDZDQUE2QyxDQUFDLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRTtnQkFDaEgsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxrREFBa0QsQ0FBQyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUU7Z0JBQ3JILEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsMkNBQTJDLENBQUMsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFO2FBQ2pIO1lBQ0QsWUFBWSxFQUFFLENBQUMsRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsQ0FBQztZQUN0RSxPQUFPLEVBQUUsSUFBSSxDQUFDLGNBQWM7U0FDL0IsQ0FBQztJQUNOLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFncm9Mb29rdXBFbnRpdHlTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvYWdyby1sb29rdXAtZW50aXR5LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyByZXNvbHZlTG9va3VwSG9zdFByb2plY3RDb25maWcgfSBmcm9tICcuLi9jb25maWcvbG9va3VwLWhvc3QtcHJvamVjdC1jb25maWcnO1xyXG5pbXBvcnQgeyBBZ3JvTG9va3VwQmFzZSwgTG9va3VwU3BlY2lmaWNDb25maWcgfSBmcm9tICcuL2Fncm8tbG9va3VwLWJhc2UnO1xyXG5pbXBvcnQgeyBTaGFyZWRMb29rdXBGaWVsZENvbnN0cnVjdG9yQ29uZmlnIH0gZnJvbSAnLi9sb29rdXAtZmllbGQudHlwZXMnO1xyXG5cclxuZXhwb3J0IGNsYXNzIEFncm9CcmFuY2hMb29rdXAgZXh0ZW5kcyBBZ3JvTG9va3VwQmFzZSB7XHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGUwNzBGaWxTZXJ2aWNlOiBBZ3JvTG9va3VwRW50aXR5U2VydmljZTx1bmtub3duPjtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihjb25maWc6IFNoYXJlZExvb2t1cEZpZWxkQ29uc3RydWN0b3JDb25maWcpIHtcclxuICAgICAgICBzdXBlcihjb25maWcsIHsgZGVmYXVsdEZpZWxkTmFtZTogJ2JyYW5jaCcsIGRlZmF1bHRGaWx0ZXJGaWVsZE5hbWU6ICdicmFuY2guaWQnIH0pO1xyXG4gICAgICAgIHRoaXMuZTA3MEZpbFNlcnZpY2UgPSBuZXcgQWdyb0xvb2t1cEVudGl0eVNlcnZpY2UoXHJcbiAgICAgICAgICAgIHJlc29sdmVMb29rdXBIb3N0UHJvamVjdENvbmZpZyhjb25maWcsIEFncm9CcmFuY2hMb29rdXAubmFtZSksXHJcbiAgICAgICAgICAgICdlbnRpdGllcy9lMDcwZmlsJ1xyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0TG9va3VwQ29uZmlnKCk6IExvb2t1cFNwZWNpZmljQ29uZmlnIHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBsYWJlbEtleTogJ2Fncm8uYW5ndWxhcl9jb21wb25lbnRzLmxvb2t1cF9jb250cmFjdF9icmFuY2gnLFxyXG4gICAgICAgICAgICBzZWFyY2hUaXRsZUtleTogJ2Fncm8uYW5ndWxhcl9jb21wb25lbnRzLmxvb2t1cF9jb250cmFjdF9icmFuY2hfc2VhcmNoX3RpdGxlJyxcclxuICAgICAgICAgICAgbG9va3VwRGlzcGxheUZpZWxkczogWydjb2RGaWwnLCAnbm9tRmlsJywgJ251bUNnYycsICdjaWRGaWwnXSxcclxuICAgICAgICAgICAgYWR2YW5jZWREaXNwbGF5RmllbGRzOiBbJ2NvZEZpbCcsICdub21GaWwnLCAnbnVtQ2djJywgJ2NpZEZpbCddLFxyXG4gICAgICAgICAgICBzZWFyY2hGaWVsZHM6IFtcclxuICAgICAgICAgICAgICAgIHsgbmFtZTogJ2NvZEZpbCcsIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdhZ3JvLmFuZ3VsYXJfY29tcG9uZW50cy5sb29rdXBfbGFiZWxfY29kZScpLCB0eXBlOiAnaW50ZWdlcicsIGFsbG93TmVnYXRpdmU6IGZhbHNlLCBwcmVjaXNpb246IDExLCBzY2FsZTogMCB9LFxyXG4gICAgICAgICAgICAgICAgeyBuYW1lOiAnbm9tRmlsJywgbGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2Fncm8uYW5ndWxhcl9jb21wb25lbnRzLmxvb2t1cF9sYWJlbF9icmFuY2gnKSwgdHlwZTogJ3N0cmluZycgfSxcclxuICAgICAgICAgICAgICAgIHsgbmFtZTogJ251bUNnYycsIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdhZ3JvLmFuZ3VsYXJfY29tcG9uZW50cy5sb29rdXBfZV8wNzBfZmlsX251bV9jZ2MnKSwgdHlwZTogJ3N0cmluZycgfSxcclxuICAgICAgICAgICAgICAgIHsgbmFtZTogJ2NpZEZpbCcsIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdhZ3JvLmFuZ3VsYXJfY29tcG9uZW50cy5sb29rdXBfbGFiZWxfY2l0eScpLCB0eXBlOiAnc3RyaW5nJyB9LFxyXG4gICAgICAgICAgICBdLFxyXG4gICAgICAgICAgICBkZXBlbmRlbmNpZXM6IFt7IGZvcm1Db250cm9sTmFtZTogJ2NvbXBhbnknLCBhcGlGaWVsZDogJ2UwNzBlbXAuaWQnIH1dLFxyXG4gICAgICAgICAgICBzZXJ2aWNlOiB0aGlzLmUwNzBGaWxTZXJ2aWNlLFxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcbn1cclxuXHJcbiJdfQ==
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { resolveLookupHostProjectConfig } from '../config/lookup-host-project-config';
|
|
2
|
+
import { AgroLookupEntityService } from '../services/agro-lookup-entity.service';
|
|
3
|
+
import { AgroLookupBase } from './agro-lookup-base';
|
|
4
|
+
export class AgroCarrierLookup extends AgroLookupBase {
|
|
5
|
+
carrierService;
|
|
6
|
+
constructor(config) {
|
|
7
|
+
super(config, { defaultFieldName: 'carrier', defaultFilterFieldName: 'carrier.id', defaultAutofill: false });
|
|
8
|
+
this.carrierService = new AgroLookupEntityService(resolveLookupHostProjectConfig(config, AgroCarrierLookup.name), 'entities/e073pes');
|
|
9
|
+
}
|
|
10
|
+
getLookupConfig() {
|
|
11
|
+
return {
|
|
12
|
+
labelKey: 'agro.angular_components.lookup_carrier',
|
|
13
|
+
searchTitleKey: 'agro.angular_components.lookup_carrier_search_title',
|
|
14
|
+
lookupDisplayFields: ['e001pes.cnpCpf', 'e001pes.nomPes'],
|
|
15
|
+
advancedDisplayFields: ['e001pes.cnpCpf', 'e001pes.nomPes'],
|
|
16
|
+
applyCPFCNPJFormat: true,
|
|
17
|
+
searchFields: [
|
|
18
|
+
{ name: 'e001pes.cnpCpf', label: this.translate.instant('agro.angular_components.lookup_cnpj_cpf'), type: 'string' },
|
|
19
|
+
{ name: 'e001pes.nomPes', label: this.translate.instant('agro.angular_components.lookup_label_name'), type: 'string' },
|
|
20
|
+
],
|
|
21
|
+
service: this.carrierService,
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdyby1jYXJyaWVyLWxvb2t1cC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9maWVsZHMvbG9va3Vwcy9jb3JlL2Fncm8tY2Fycmllci1sb29rdXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDdEYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDakYsT0FBTyxFQUFFLGNBQWMsRUFBd0IsTUFBTSxvQkFBb0IsQ0FBQztBQUcxRSxNQUFNLE9BQU8saUJBQWtCLFNBQVEsY0FBYztJQUNoQyxjQUFjLENBQW1DO0lBRWxFLFlBQVksTUFBMEM7UUFDbEQsS0FBSyxDQUFDLE1BQU0sRUFBRSxFQUFFLGdCQUFnQixFQUFFLFNBQVMsRUFBRSxzQkFBc0IsRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDN0csSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLHVCQUF1QixDQUM3Qyw4QkFBOEIsQ0FBQyxNQUFNLEVBQUUsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEVBQzlELGtCQUFrQixDQUNyQixDQUFDO0lBQ04sQ0FBQztJQUVELGVBQWU7UUFDWCxPQUFPO1lBQ0gsUUFBUSxFQUFFLHdDQUF3QztZQUNsRCxjQUFjLEVBQUUscURBQXFEO1lBQ3JFLG1CQUFtQixFQUFFLENBQUMsZ0JBQWdCLEVBQUUsZ0JBQWdCLENBQUM7WUFDekQscUJBQXFCLEVBQUUsQ0FBQyxnQkFBZ0IsRUFBRSxnQkFBZ0IsQ0FBQztZQUMzRCxrQkFBa0IsRUFBRSxJQUFJO1lBQ3hCLFlBQVksRUFBRTtnQkFDVixFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMseUNBQXlDLENBQUMsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFO2dCQUNwSCxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsMkNBQTJDLENBQUMsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFO2FBQ3pIO1lBQ0QsT0FBTyxFQUFFLElBQUksQ0FBQyxjQUFjO1NBQy9CLENBQUM7SUFDTixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZXNvbHZlTG9va3VwSG9zdFByb2plY3RDb25maWcgfSBmcm9tICcuLi9jb25maWcvbG9va3VwLWhvc3QtcHJvamVjdC1jb25maWcnO1xuaW1wb3J0IHsgQWdyb0xvb2t1cEVudGl0eVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9hZ3JvLWxvb2t1cC1lbnRpdHkuc2VydmljZSc7XG5pbXBvcnQgeyBBZ3JvTG9va3VwQmFzZSwgTG9va3VwU3BlY2lmaWNDb25maWcgfSBmcm9tICcuL2Fncm8tbG9va3VwLWJhc2UnO1xuaW1wb3J0IHsgU2hhcmVkTG9va3VwRmllbGRDb25zdHJ1Y3RvckNvbmZpZyB9IGZyb20gJy4vbG9va3VwLWZpZWxkLnR5cGVzJztcblxuZXhwb3J0IGNsYXNzIEFncm9DYXJyaWVyTG9va3VwIGV4dGVuZHMgQWdyb0xvb2t1cEJhc2Uge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgY2FycmllclNlcnZpY2U6IEFncm9Mb29rdXBFbnRpdHlTZXJ2aWNlPHVua25vd24+O1xuXG4gICAgY29uc3RydWN0b3IoY29uZmlnOiBTaGFyZWRMb29rdXBGaWVsZENvbnN0cnVjdG9yQ29uZmlnKSB7XG4gICAgICAgIHN1cGVyKGNvbmZpZywgeyBkZWZhdWx0RmllbGROYW1lOiAnY2FycmllcicsIGRlZmF1bHRGaWx0ZXJGaWVsZE5hbWU6ICdjYXJyaWVyLmlkJywgZGVmYXVsdEF1dG9maWxsOiBmYWxzZSB9KTtcbiAgICAgICAgdGhpcy5jYXJyaWVyU2VydmljZSA9IG5ldyBBZ3JvTG9va3VwRW50aXR5U2VydmljZShcbiAgICAgICAgICAgIHJlc29sdmVMb29rdXBIb3N0UHJvamVjdENvbmZpZyhjb25maWcsIEFncm9DYXJyaWVyTG9va3VwLm5hbWUpLFxuICAgICAgICAgICAgJ2VudGl0aWVzL2UwNzNwZXMnXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2V0TG9va3VwQ29uZmlnKCk6IExvb2t1cFNwZWNpZmljQ29uZmlnIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGxhYmVsS2V5OiAnYWdyby5hbmd1bGFyX2NvbXBvbmVudHMubG9va3VwX2NhcnJpZXInLFxuICAgICAgICAgICAgc2VhcmNoVGl0bGVLZXk6ICdhZ3JvLmFuZ3VsYXJfY29tcG9uZW50cy5sb29rdXBfY2Fycmllcl9zZWFyY2hfdGl0bGUnLFxuICAgICAgICAgICAgbG9va3VwRGlzcGxheUZpZWxkczogWydlMDAxcGVzLmNucENwZicsICdlMDAxcGVzLm5vbVBlcyddLFxuICAgICAgICAgICAgYWR2YW5jZWREaXNwbGF5RmllbGRzOiBbJ2UwMDFwZXMuY25wQ3BmJywgJ2UwMDFwZXMubm9tUGVzJ10sXG4gICAgICAgICAgICBhcHBseUNQRkNOUEpGb3JtYXQ6IHRydWUsXG4gICAgICAgICAgICBzZWFyY2hGaWVsZHM6IFtcbiAgICAgICAgICAgICAgICB7IG5hbWU6ICdlMDAxcGVzLmNucENwZicsIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdhZ3JvLmFuZ3VsYXJfY29tcG9uZW50cy5sb29rdXBfY25wal9jcGYnKSwgdHlwZTogJ3N0cmluZycgfSxcbiAgICAgICAgICAgICAgICB7IG5hbWU6ICdlMDAxcGVzLm5vbVBlcycsIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdhZ3JvLmFuZ3VsYXJfY29tcG9uZW50cy5sb29rdXBfbGFiZWxfbmFtZScpLCB0eXBlOiAnc3RyaW5nJyB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIHNlcnZpY2U6IHRoaXMuY2FycmllclNlcnZpY2UsXG4gICAgICAgIH07XG4gICAgfVxufVxuIl19
|
|
@@ -3,9 +3,9 @@ export { AgroBaseLookupField } from './agro-base-lookup-field';
|
|
|
3
3
|
export { AgroLookupBase } from './agro-lookup-base';
|
|
4
4
|
export { AgroCompanyLookup } from './agro-company-lookup';
|
|
5
5
|
export { AgroBranchLookup } from './agro-branch-lookup';
|
|
6
|
+
export { AgroCarrierLookup } from './agro-carrier-lookup';
|
|
6
7
|
export { AgroDepositLookup } from './agro-deposit-lookup';
|
|
7
8
|
export { AgroDepositBalanceLookup } from './agro-deposit-balance-lookup';
|
|
8
|
-
export { AgroDriverLookup } from './agro-driver-lookup';
|
|
9
9
|
export { AgroE095PesLookup } from './agro-e095-pes-lookup';
|
|
10
10
|
export { AgroFamilyLookup } from './agro-family-lookup';
|
|
11
11
|
export { AgroProductLookup } from './agro-product-lookup';
|
|
@@ -15,7 +15,6 @@ export { AgroCurrencyLookup } from './agro-currency-lookup';
|
|
|
15
15
|
export { AgroTicketLookup } from './agro-ticket-lookup';
|
|
16
16
|
export { AgroRomaneoLookup } from './agro-romaneo-lookup';
|
|
17
17
|
export { AgroProductVarietyLookup } from './agro-product-variety-lookup';
|
|
18
|
-
export { AgroRuralEstateLookup } from './agro-rural-estate-lookup';
|
|
19
18
|
export { AgroIncreaseProductLookup } from './agro-increase-product-lookup';
|
|
20
19
|
export { AgroFamilyGroupLookup } from './agro-family-group-lookup';
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvZmllbGRzL2xvb2t1cHMvY29yZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFPQSxPQUFPLEVBQ0gsNEJBQTRCLEVBQzVCLDRCQUE0QixFQUM1QixtQkFBbUIsR0FDdEIsTUFBTSx5QkFBeUIsQ0FBQztBQUNqQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFcEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDekUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDekUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDM0UsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNEJBQTRCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSB7XHJcbiAgICBMb29rdXBMaXN0U2VydmljZSxcclxuICAgIExvb2t1cERlcGVuZGVuY3ksXHJcbiAgICBMb29rdXBIb3N0U2VydmljZUNvbmZpZyxcclxuICAgIEdlbmVyaWNMb29rdXBGaWVsZENvbmZpZyxcclxuICAgIFNoYXJlZExvb2t1cEZpZWxkQ29uc3RydWN0b3JDb25maWcsXHJcbn0gZnJvbSAnLi9sb29rdXAtZmllbGQudHlwZXMnO1xyXG5leHBvcnQge1xyXG4gICAgY3JlYXRlR2VuZXJpY09uTG9va3VwUmVxdWVzdCxcclxuICAgIGNyZWF0ZUdlbmVyaWNPblNlYXJjaFJlcXVlc3QsXHJcbiAgICBjcmVhdGVHZW5lcmljT25CbHVyLFxyXG59IGZyb20gJy4vbG9va3VwLWZpZWxkLmhhbmRsZXJzJztcclxuZXhwb3J0IHsgQWdyb0Jhc2VMb29rdXBGaWVsZCB9IGZyb20gJy4vYWdyby1iYXNlLWxvb2t1cC1maWVsZCc7XHJcbmV4cG9ydCB7IEFncm9Mb29rdXBCYXNlIH0gZnJvbSAnLi9hZ3JvLWxvb2t1cC1iYXNlJztcclxuZXhwb3J0IHR5cGUgeyBMb29rdXBTcGVjaWZpY0NvbmZpZyB9IGZyb20gJy4vYWdyby1sb29rdXAtYmFzZSc7XHJcbmV4cG9ydCB7IEFncm9Db21wYW55TG9va3VwIH0gZnJvbSAnLi9hZ3JvLWNvbXBhbnktbG9va3VwJztcclxuZXhwb3J0IHsgQWdyb0JyYW5jaExvb2t1cCB9IGZyb20gJy4vYWdyby1icmFuY2gtbG9va3VwJztcclxuZXhwb3J0IHsgQWdyb0NhcnJpZXJMb29rdXAgfSBmcm9tICcuL2Fncm8tY2Fycmllci1sb29rdXAnO1xyXG5leHBvcnQgeyBBZ3JvRGVwb3NpdExvb2t1cCB9IGZyb20gJy4vYWdyby1kZXBvc2l0LWxvb2t1cCc7XHJcbmV4cG9ydCB7IEFncm9EZXBvc2l0QmFsYW5jZUxvb2t1cCB9IGZyb20gJy4vYWdyby1kZXBvc2l0LWJhbGFuY2UtbG9va3VwJztcclxuZXhwb3J0IHsgQWdyb0UwOTVQZXNMb29rdXAgfSBmcm9tICcuL2Fncm8tZTA5NS1wZXMtbG9va3VwJztcclxuZXhwb3J0IHsgQWdyb0ZhbWlseUxvb2t1cCB9IGZyb20gJy4vYWdyby1mYW1pbHktbG9va3VwJztcclxuZXhwb3J0IHsgQWdyb1Byb2R1Y3RMb29rdXAgfSBmcm9tICcuL2Fncm8tcHJvZHVjdC1sb29rdXAnO1xyXG5leHBvcnQgeyBBZ3JvUHJvZHVjZXJMb29rdXAgfSBmcm9tICcuL2Fncm8tcHJvZHVjZXItbG9va3VwJztcclxuZXhwb3J0IHsgQWdyb0hhcnZlc3RMb29rdXAgfSBmcm9tICcuL2Fncm8taGFydmVzdC1sb29rdXAnO1xyXG5leHBvcnQgeyBBZ3JvQ3VycmVuY3lMb29rdXAgfSBmcm9tICcuL2Fncm8tY3VycmVuY3ktbG9va3VwJztcclxuZXhwb3J0IHsgQWdyb1RpY2tldExvb2t1cCB9IGZyb20gJy4vYWdyby10aWNrZXQtbG9va3VwJztcclxuZXhwb3J0IHsgQWdyb1JvbWFuZW9Mb29rdXAgfSBmcm9tICcuL2Fncm8tcm9tYW5lby1sb29rdXAnO1xyXG5leHBvcnQgeyBBZ3JvUHJvZHVjdFZhcmlldHlMb29rdXAgfSBmcm9tICcuL2Fncm8tcHJvZHVjdC12YXJpZXR5LWxvb2t1cCc7XHJcbmV4cG9ydCB7IEFncm9JbmNyZWFzZVByb2R1Y3RMb29rdXAgfSBmcm9tICcuL2Fncm8taW5jcmVhc2UtcHJvZHVjdC1sb29rdXAnO1xyXG5leHBvcnQgeyBBZ3JvRmFtaWx5R3JvdXBMb29rdXAgfSBmcm9tICcuL2Fncm8tZmFtaWx5LWdyb3VwLWxvb2t1cCc7XHJcbiJdfQ==
|