@infrab4a/connect-angular 4.2.9 → 4.2.10-beta.2
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/esm2022/angular-connect.module.mjs +97 -0
- package/esm2022/angular-elastic-search.module.mjs +34 -0
- package/esm2022/angular-firebase-auth.module.mjs +115 -0
- package/esm2022/angular-firestore.module.mjs +483 -0
- package/esm2022/angular-hasura-graphql.module.mjs +265 -0
- package/{esm2020 → esm2022}/consts/category-structure.mjs +1 -1
- package/{esm2020 → esm2022}/consts/default-shop.const.mjs +1 -1
- package/{esm2020 → esm2022}/consts/es-config.const.mjs +1 -1
- package/{esm2020 → esm2022}/consts/firebase-const.mjs +1 -1
- package/{esm2020 → esm2022}/consts/hasura-options.const.mjs +1 -1
- package/{esm2020 → esm2022}/consts/index.mjs +1 -1
- package/{esm2020 → esm2022}/helpers/index.mjs +1 -1
- package/{esm2020 → esm2022}/helpers/mobile-operation-system-checker.helper.mjs +1 -1
- package/{esm2020 → esm2022}/index.mjs +1 -1
- package/{esm2020 → esm2022}/services/auth.service.mjs +6 -6
- package/{esm2020 → esm2022}/services/cart.service.mjs +6 -6
- package/{esm2020 → esm2022}/services/catalog/adapters/category-structure.adapter.mjs +1 -1
- package/{esm2020 → esm2022}/services/catalog/adapters/index.mjs +1 -1
- package/{esm2020 → esm2022}/services/catalog/adapters/new-category-structure.adapter.mjs +6 -6
- package/{esm2020 → esm2022}/services/catalog/adapters/old-category-structure.adapter.mjs +6 -6
- package/{esm2020 → esm2022}/services/catalog/catalog.service.mjs +6 -6
- package/{esm2020 → esm2022}/services/catalog/category.service.mjs +6 -6
- package/{esm2020 → esm2022}/services/catalog/enums/index.mjs +1 -1
- package/{esm2020 → esm2022}/services/catalog/enums/product-sorts.enum.mjs +1 -1
- package/{esm2020 → esm2022}/services/catalog/index.mjs +1 -1
- package/{esm2020 → esm2022}/services/catalog/models/category-with-tree.model.mjs +1 -1
- package/{esm2020 → esm2022}/services/catalog/models/index.mjs +1 -1
- package/{esm2020 → esm2022}/services/catalog/types/index.mjs +1 -1
- package/{esm2020 → esm2022}/services/catalog/types/product-sort.type.mjs +1 -1
- package/{esm2020 → esm2022}/services/catalog/wishlist.service.mjs +6 -6
- package/{esm2020 → esm2022}/services/checkout-subscription.service.mjs +6 -6
- package/{esm2020 → esm2022}/services/checkout.service.mjs +6 -6
- package/esm2022/services/coupon.service.mjs +235 -0
- package/{esm2020 → esm2022}/services/helpers/index.mjs +1 -1
- package/{esm2020 → esm2022}/services/helpers/util.helper.mjs +1 -1
- package/{esm2020 → esm2022}/services/home-shop.service.mjs +6 -6
- package/{esm2020 → esm2022}/services/index.mjs +1 -1
- package/{esm2020 → esm2022}/services/order.service.mjs +6 -6
- package/{esm2020 → esm2022}/services/shipping.service.mjs +6 -6
- package/{esm2020 → esm2022}/services/types/index.mjs +1 -1
- package/{esm2020 → esm2022}/services/types/required-checkout-data.type.mjs +1 -1
- package/{esm2020 → esm2022}/services/types/required-checkout-subscription-data.type.mjs +1 -1
- package/esm2022/services/types/shipping-methods.type.mjs +2 -0
- package/{esm2020 → esm2022}/types/firebase-app-config.type.mjs +1 -1
- package/{esm2020 → esm2022}/types/index.mjs +1 -1
- package/{fesm2020 → fesm2022}/infrab4a-connect-angular.mjs +525 -508
- package/fesm2022/infrab4a-connect-angular.mjs.map +1 -0
- package/package.json +6 -12
- package/services/coupon.service.d.ts +1 -0
- package/esm2020/angular-connect.module.mjs +0 -97
- package/esm2020/angular-elastic-search.module.mjs +0 -34
- package/esm2020/angular-firebase-auth.module.mjs +0 -115
- package/esm2020/angular-firestore.module.mjs +0 -483
- package/esm2020/angular-hasura-graphql.module.mjs +0 -265
- package/esm2020/services/coupon.service.mjs +0 -218
- package/esm2020/services/types/shipping-methods.type.mjs +0 -2
- package/fesm2015/infrab4a-connect-angular.mjs +0 -2315
- package/fesm2015/infrab4a-connect-angular.mjs.map +0 -1
- package/fesm2020/infrab4a-connect-angular.mjs.map +0 -1
- /package/{esm2020 → esm2022}/consts/backend-url.const.mjs +0 -0
- /package/{esm2020 → esm2022}/infrab4a-connect-angular.mjs +0 -0
|
@@ -0,0 +1,265 @@
|
|
|
1
|
+
import { isPlatformBrowser } from '@angular/common';
|
|
2
|
+
import { NgModule, PLATFORM_ID } from '@angular/core';
|
|
3
|
+
import { CategoryCollectionChildrenHasuraGraphQLRepository, CategoryFilterHasuraGraphQLRepository, CategoryHasuraGraphQLRepository, FilterHasuraGraphQLRepository, FilterOptionHasuraGraphQLRepository, ProductHasuraGraphQLRepository, ProductReviewsHasuraGraphQLRepository, VariantHasuraGraphQLRepository, WishlistHasuraGraphQLRepository, } from '@infrab4a/connect';
|
|
4
|
+
import { HASURA_OPTIONS } from './consts';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export class AngularHasuraGraphQLModule {
|
|
7
|
+
static initializeApp(options) {
|
|
8
|
+
return {
|
|
9
|
+
ngModule: AngularHasuraGraphQLModule,
|
|
10
|
+
providers: [{ provide: HASURA_OPTIONS, useValue: options }],
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: AngularHasuraGraphQLModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
14
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.3", ngImport: i0, type: AngularHasuraGraphQLModule }); }
|
|
15
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: AngularHasuraGraphQLModule, providers: [
|
|
16
|
+
{
|
|
17
|
+
provide: 'HasuraConfig',
|
|
18
|
+
useFactory: (options, platformId) => ({
|
|
19
|
+
endpoint: options.endpoint,
|
|
20
|
+
authOptions: options.credentials,
|
|
21
|
+
interceptors: {
|
|
22
|
+
request: (request) => {
|
|
23
|
+
if (isPlatformBrowser(platformId))
|
|
24
|
+
return request;
|
|
25
|
+
const interval = setInterval(() => { }, 100);
|
|
26
|
+
request.interval = interval;
|
|
27
|
+
return request;
|
|
28
|
+
},
|
|
29
|
+
response: (response, request) => {
|
|
30
|
+
if (isPlatformBrowser(platformId))
|
|
31
|
+
return response;
|
|
32
|
+
clearInterval(request.interval);
|
|
33
|
+
return response;
|
|
34
|
+
},
|
|
35
|
+
},
|
|
36
|
+
}),
|
|
37
|
+
deps: [HASURA_OPTIONS, PLATFORM_ID],
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
provide: 'CategoryRepository',
|
|
41
|
+
useExisting: CategoryHasuraGraphQLRepository,
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
provide: CategoryHasuraGraphQLRepository,
|
|
45
|
+
useFactory: (options, productRepository, categoryFilterRepository) => {
|
|
46
|
+
return new CategoryHasuraGraphQLRepository(options, productRepository, categoryFilterRepository);
|
|
47
|
+
},
|
|
48
|
+
deps: ['HasuraConfig', ProductHasuraGraphQLRepository, CategoryFilterHasuraGraphQLRepository],
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
provide: 'ProductRepository',
|
|
52
|
+
useExisting: ProductHasuraGraphQLRepository,
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
provide: ProductHasuraGraphQLRepository,
|
|
56
|
+
useFactory: (hasuraConfig) => {
|
|
57
|
+
return new ProductHasuraGraphQLRepository(hasuraConfig);
|
|
58
|
+
},
|
|
59
|
+
deps: ['HasuraConfig'],
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
provide: 'ProductReviewsRepository',
|
|
63
|
+
useExisting: ProductReviewsHasuraGraphQLRepository,
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
provide: ProductReviewsHasuraGraphQLRepository,
|
|
67
|
+
useFactory: (hasuraConfig) => {
|
|
68
|
+
return new ProductReviewsHasuraGraphQLRepository(hasuraConfig);
|
|
69
|
+
},
|
|
70
|
+
deps: ['HasuraConfig'],
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
provide: 'VariantRepository',
|
|
74
|
+
useExisting: VariantHasuraGraphQLRepository,
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
provide: VariantHasuraGraphQLRepository,
|
|
78
|
+
useFactory: (hasuraConfig) => {
|
|
79
|
+
return new VariantHasuraGraphQLRepository(hasuraConfig);
|
|
80
|
+
},
|
|
81
|
+
deps: ['HasuraConfig'],
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
provide: 'CategoryFilterRepository',
|
|
85
|
+
useExisting: CategoryFilterHasuraGraphQLRepository,
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
provide: CategoryFilterHasuraGraphQLRepository,
|
|
89
|
+
useFactory: (options) => {
|
|
90
|
+
return new CategoryFilterHasuraGraphQLRepository(options);
|
|
91
|
+
},
|
|
92
|
+
deps: ['HasuraConfig'],
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
provide: 'FilterOptionRepository',
|
|
96
|
+
useExisting: FilterOptionHasuraGraphQLRepository,
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
provide: FilterOptionHasuraGraphQLRepository,
|
|
100
|
+
useFactory: (options) => {
|
|
101
|
+
return new FilterOptionHasuraGraphQLRepository(options);
|
|
102
|
+
},
|
|
103
|
+
deps: ['HasuraConfig'],
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
provide: 'FilterRepository',
|
|
107
|
+
useExisting: FilterHasuraGraphQLRepository,
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
provide: FilterHasuraGraphQLRepository,
|
|
111
|
+
useFactory: (options, filterOptionRepository, categoryFilterRepository) => {
|
|
112
|
+
return new FilterHasuraGraphQLRepository(options, filterOptionRepository, categoryFilterRepository);
|
|
113
|
+
},
|
|
114
|
+
deps: ['HasuraConfig', FilterOptionHasuraGraphQLRepository, CategoryFilterHasuraGraphQLRepository],
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
provide: CategoryCollectionChildrenHasuraGraphQLRepository,
|
|
118
|
+
useFactory: (options) => new CategoryCollectionChildrenHasuraGraphQLRepository(options),
|
|
119
|
+
deps: ['HasuraConfig'],
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
provide: 'CategoryCollectionChildrenRepository',
|
|
123
|
+
useExisting: CategoryCollectionChildrenHasuraGraphQLRepository,
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
provide: WishlistHasuraGraphQLRepository,
|
|
127
|
+
useFactory: (options, categoryFilterRepository) => {
|
|
128
|
+
return new WishlistHasuraGraphQLRepository(options, categoryFilterRepository);
|
|
129
|
+
},
|
|
130
|
+
deps: ['HasuraConfig', CategoryFilterHasuraGraphQLRepository],
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
provide: 'WishlistRepository',
|
|
134
|
+
useExisting: WishlistHasuraGraphQLRepository,
|
|
135
|
+
},
|
|
136
|
+
] }); }
|
|
137
|
+
}
|
|
138
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: AngularHasuraGraphQLModule, decorators: [{
|
|
139
|
+
type: NgModule,
|
|
140
|
+
args: [{
|
|
141
|
+
providers: [
|
|
142
|
+
{
|
|
143
|
+
provide: 'HasuraConfig',
|
|
144
|
+
useFactory: (options, platformId) => ({
|
|
145
|
+
endpoint: options.endpoint,
|
|
146
|
+
authOptions: options.credentials,
|
|
147
|
+
interceptors: {
|
|
148
|
+
request: (request) => {
|
|
149
|
+
if (isPlatformBrowser(platformId))
|
|
150
|
+
return request;
|
|
151
|
+
const interval = setInterval(() => { }, 100);
|
|
152
|
+
request.interval = interval;
|
|
153
|
+
return request;
|
|
154
|
+
},
|
|
155
|
+
response: (response, request) => {
|
|
156
|
+
if (isPlatformBrowser(platformId))
|
|
157
|
+
return response;
|
|
158
|
+
clearInterval(request.interval);
|
|
159
|
+
return response;
|
|
160
|
+
},
|
|
161
|
+
},
|
|
162
|
+
}),
|
|
163
|
+
deps: [HASURA_OPTIONS, PLATFORM_ID],
|
|
164
|
+
},
|
|
165
|
+
{
|
|
166
|
+
provide: 'CategoryRepository',
|
|
167
|
+
useExisting: CategoryHasuraGraphQLRepository,
|
|
168
|
+
},
|
|
169
|
+
{
|
|
170
|
+
provide: CategoryHasuraGraphQLRepository,
|
|
171
|
+
useFactory: (options, productRepository, categoryFilterRepository) => {
|
|
172
|
+
return new CategoryHasuraGraphQLRepository(options, productRepository, categoryFilterRepository);
|
|
173
|
+
},
|
|
174
|
+
deps: ['HasuraConfig', ProductHasuraGraphQLRepository, CategoryFilterHasuraGraphQLRepository],
|
|
175
|
+
},
|
|
176
|
+
{
|
|
177
|
+
provide: 'ProductRepository',
|
|
178
|
+
useExisting: ProductHasuraGraphQLRepository,
|
|
179
|
+
},
|
|
180
|
+
{
|
|
181
|
+
provide: ProductHasuraGraphQLRepository,
|
|
182
|
+
useFactory: (hasuraConfig) => {
|
|
183
|
+
return new ProductHasuraGraphQLRepository(hasuraConfig);
|
|
184
|
+
},
|
|
185
|
+
deps: ['HasuraConfig'],
|
|
186
|
+
},
|
|
187
|
+
{
|
|
188
|
+
provide: 'ProductReviewsRepository',
|
|
189
|
+
useExisting: ProductReviewsHasuraGraphQLRepository,
|
|
190
|
+
},
|
|
191
|
+
{
|
|
192
|
+
provide: ProductReviewsHasuraGraphQLRepository,
|
|
193
|
+
useFactory: (hasuraConfig) => {
|
|
194
|
+
return new ProductReviewsHasuraGraphQLRepository(hasuraConfig);
|
|
195
|
+
},
|
|
196
|
+
deps: ['HasuraConfig'],
|
|
197
|
+
},
|
|
198
|
+
{
|
|
199
|
+
provide: 'VariantRepository',
|
|
200
|
+
useExisting: VariantHasuraGraphQLRepository,
|
|
201
|
+
},
|
|
202
|
+
{
|
|
203
|
+
provide: VariantHasuraGraphQLRepository,
|
|
204
|
+
useFactory: (hasuraConfig) => {
|
|
205
|
+
return new VariantHasuraGraphQLRepository(hasuraConfig);
|
|
206
|
+
},
|
|
207
|
+
deps: ['HasuraConfig'],
|
|
208
|
+
},
|
|
209
|
+
{
|
|
210
|
+
provide: 'CategoryFilterRepository',
|
|
211
|
+
useExisting: CategoryFilterHasuraGraphQLRepository,
|
|
212
|
+
},
|
|
213
|
+
{
|
|
214
|
+
provide: CategoryFilterHasuraGraphQLRepository,
|
|
215
|
+
useFactory: (options) => {
|
|
216
|
+
return new CategoryFilterHasuraGraphQLRepository(options);
|
|
217
|
+
},
|
|
218
|
+
deps: ['HasuraConfig'],
|
|
219
|
+
},
|
|
220
|
+
{
|
|
221
|
+
provide: 'FilterOptionRepository',
|
|
222
|
+
useExisting: FilterOptionHasuraGraphQLRepository,
|
|
223
|
+
},
|
|
224
|
+
{
|
|
225
|
+
provide: FilterOptionHasuraGraphQLRepository,
|
|
226
|
+
useFactory: (options) => {
|
|
227
|
+
return new FilterOptionHasuraGraphQLRepository(options);
|
|
228
|
+
},
|
|
229
|
+
deps: ['HasuraConfig'],
|
|
230
|
+
},
|
|
231
|
+
{
|
|
232
|
+
provide: 'FilterRepository',
|
|
233
|
+
useExisting: FilterHasuraGraphQLRepository,
|
|
234
|
+
},
|
|
235
|
+
{
|
|
236
|
+
provide: FilterHasuraGraphQLRepository,
|
|
237
|
+
useFactory: (options, filterOptionRepository, categoryFilterRepository) => {
|
|
238
|
+
return new FilterHasuraGraphQLRepository(options, filterOptionRepository, categoryFilterRepository);
|
|
239
|
+
},
|
|
240
|
+
deps: ['HasuraConfig', FilterOptionHasuraGraphQLRepository, CategoryFilterHasuraGraphQLRepository],
|
|
241
|
+
},
|
|
242
|
+
{
|
|
243
|
+
provide: CategoryCollectionChildrenHasuraGraphQLRepository,
|
|
244
|
+
useFactory: (options) => new CategoryCollectionChildrenHasuraGraphQLRepository(options),
|
|
245
|
+
deps: ['HasuraConfig'],
|
|
246
|
+
},
|
|
247
|
+
{
|
|
248
|
+
provide: 'CategoryCollectionChildrenRepository',
|
|
249
|
+
useExisting: CategoryCollectionChildrenHasuraGraphQLRepository,
|
|
250
|
+
},
|
|
251
|
+
{
|
|
252
|
+
provide: WishlistHasuraGraphQLRepository,
|
|
253
|
+
useFactory: (options, categoryFilterRepository) => {
|
|
254
|
+
return new WishlistHasuraGraphQLRepository(options, categoryFilterRepository);
|
|
255
|
+
},
|
|
256
|
+
deps: ['HasuraConfig', CategoryFilterHasuraGraphQLRepository],
|
|
257
|
+
},
|
|
258
|
+
{
|
|
259
|
+
provide: 'WishlistRepository',
|
|
260
|
+
useExisting: WishlistHasuraGraphQLRepository,
|
|
261
|
+
},
|
|
262
|
+
],
|
|
263
|
+
}]
|
|
264
|
+
}] });
|
|
265
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1oYXN1cmEtZ3JhcGhxbC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0LWFuZ3VsYXIvc3JjL2FuZ3VsYXItaGFzdXJhLWdyYXBocWwubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQ25ELE9BQU8sRUFBdUIsUUFBUSxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUMxRSxPQUFPLEVBQ0wsaURBQWlELEVBQ2pELHFDQUFxQyxFQUVyQywrQkFBK0IsRUFFL0IsNkJBQTZCLEVBQzdCLG1DQUFtQyxFQUtuQyw4QkFBOEIsRUFFOUIscUNBQXFDLEVBRXJDLDhCQUE4QixFQUU5QiwrQkFBK0IsR0FDaEMsTUFBTSxtQkFBbUIsQ0FBQTtBQUMxQixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sVUFBVSxDQUFBOztBQWlKekMsTUFBTSxPQUFPLDBCQUEwQjtJQUNyQyxNQUFNLENBQUMsYUFBYSxDQUFDLE9BR3BCO1FBQ0MsT0FBTztZQUNMLFFBQVEsRUFBRSwwQkFBMEI7WUFDcEMsU0FBUyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsQ0FBQztTQUM1RCxDQUFBO0lBQ0gsQ0FBQzs4R0FUVSwwQkFBMEI7K0dBQTFCLDBCQUEwQjsrR0FBMUIsMEJBQTBCLGFBNUkxQjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxjQUFjO2dCQUN2QixVQUFVLEVBQUUsQ0FBQyxPQUE2QixFQUFFLFVBQWtCLEVBQUUsRUFBRSxDQUFDLENBQUM7b0JBQ2xFLFFBQVEsRUFBRSxPQUFPLENBQUMsUUFBUTtvQkFDMUIsV0FBVyxFQUFFLE9BQU8sQ0FBQyxXQUFXO29CQUNoQyxZQUFZLEVBQUU7d0JBQ1osT0FBTyxFQUFFLENBQUMsT0FBMEQsRUFBRSxFQUFFOzRC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QUM3QztxQkFDRjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xyXG5pbXBvcnQgeyBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSwgUExBVEZPUk1fSUQgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xyXG5pbXBvcnQge1xyXG4gIENhdGVnb3J5Q29sbGVjdGlvbkNoaWxkcmVuSGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXHJcbiAgQ2F0ZWdvcnlGaWx0ZXJIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcclxuICBDYXRlZ29yeUZpbHRlclJlcG9zaXRvcnksXHJcbiAgQ2F0ZWdvcnlIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcclxuICBDYXRlZ29yeVJlcG9zaXRvcnksXHJcbiAgRmlsdGVySGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXHJcbiAgRmlsdGVyT3B0aW9uSGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXHJcbiAgRmlsdGVyT3B0aW9uUmVwb3NpdG9yeSxcclxuICBGaWx0ZXJSZXBvc2l0b3J5LFxyXG4gIEdyYXBoUUxQYXJhbXMsXHJcbiAgSGFzdXJhR3JhcGhRTEF1dGhPcHRpb25zLFxyXG4gIFByb2R1Y3RIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcclxuICBQcm9kdWN0UmVwb3NpdG9yeSxcclxuICBQcm9kdWN0UmV2aWV3c0hhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxyXG4gIFByb2R1Y3RSZXZpZXdzUmVwb3NpdG9yeSxcclxuICBWYXJpYW50SGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXHJcbiAgVmFyaWFudFJlcG9zaXRvcnksXHJcbiAgV2lzaGxpc3RIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcclxufSBmcm9tICdAaW5mcmFiNGEvY29ubmVjdCdcclxuaW1wb3J0IHsgSEFTVVJBX09QVElPTlMgfSBmcm9tICcuL2NvbnN0cydcclxuXHJcbmV4cG9ydCB0eXBlIEhhc3VyYUdyYXBoUUxPcHRpb25zID0geyBlbmRwb2ludDogc3RyaW5nOyBjcmVkZW50aWFsczogSGFzdXJhR3JhcGhRTEF1dGhPcHRpb25zIH1cclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6ICdIYXN1cmFDb25maWcnLFxyXG4gICAgICB1c2VGYWN0b3J5OiAob3B0aW9uczogSGFzdXJhR3JhcGhRTE9wdGlvbnMsIHBsYXRmb3JtSWQ6IHN0cmluZykgPT4gKHtcclxuICAgICAgICBlbmRwb2ludDogb3B0aW9ucy5lbmRwb2ludCxcclxuICAgICAgICBhdXRoT3B0aW9uczogb3B0aW9ucy5jcmVkZW50aWFscyxcclxuICAgICAgICBpbnRlcmNlcHRvcnM6IHtcclxuICAgICAgICAgIHJlcXVlc3Q6IChyZXF1ZXN0OiBHcmFwaFFMUGFyYW1zPGFueT4gJiB7IGludGVydmFsOiBOb2RlSlMuVGltZW91dCB9KSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChpc1BsYXRmb3JtQnJvd3NlcihwbGF0Zm9ybUlkKSkgcmV0dXJuIHJlcXVlc3RcclxuXHJcbiAgICAgICAgICAgIGNvbnN0IGludGVydmFsID0gc2V0SW50ZXJ2YWwoKCkgPT4ge30sIDEwMClcclxuXHJcbiAgICAgICAgICAgIHJlcXVlc3QuaW50ZXJ2YWwgPSBpbnRlcnZhbFxyXG5cclxuICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3RcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICByZXNwb25zZTogKHJlc3BvbnNlOiBhbnksIHJlcXVlc3Q6IEdyYXBoUUxQYXJhbXM8YW55PiAmIHsgaW50ZXJ2YWw6IE5vZGVKUy5UaW1lb3V0IH0pID0+IHtcclxuICAgICAgICAgICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHBsYXRmb3JtSWQpKSByZXR1cm4gcmVzcG9uc2VcclxuXHJcbiAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwocmVxdWVzdC5pbnRlcnZhbClcclxuXHJcbiAgICAgICAgICAgIHJldHVybiByZXNwb25zZVxyXG4gICAgICAgICAgfSxcclxuICAgICAgICB9LFxyXG4gICAgICB9KSxcclxuICAgICAgZGVwczogW0hBU1VSQV9PUFRJT05TLCBQTEFURk9STV9JRF0sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiAnQ2F0ZWdvcnlSZXBvc2l0b3J5JyxcclxuICAgICAgdXNlRXhpc3Rpbmc6IENhdGVnb3J5SGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBDYXRlZ29yeUhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxyXG4gICAgICB1c2VGYWN0b3J5OiAoXHJcbiAgICAgICAgb3B0aW9uczogYW55LFxyXG4gICAgICAgIHByb2R1Y3RSZXBvc2l0b3J5OiBQcm9kdWN0SGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXHJcbiAgICAgICAgY2F0ZWdvcnlGaWx0ZXJSZXBvc2l0b3J5OiBDYXRlZ29yeUZpbHRlckhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxyXG4gICAgICApOiBDYXRlZ29yeVJlcG9zaXRvcnkgPT4ge1xyXG4gICAgICAgIHJldHVybiBuZXcgQ2F0ZWdvcnlIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeShvcHRpb25zLCBwcm9kdWN0UmVwb3NpdG9yeSwgY2F0ZWdvcnlGaWx0ZXJSZXBvc2l0b3J5KVxyXG4gICAgICB9LFxyXG4gICAgICBkZXBzOiBbJ0hhc3VyYUNvbmZpZycsIFByb2R1Y3RIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSwgQ2F0ZWdvcnlGaWx0ZXJIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeV0sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiAnUHJvZHVjdFJlcG9zaXRvcnknLFxyXG4gICAgICB1c2VFeGlzdGluZzogUHJvZHVjdEhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogUHJvZHVjdEhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxyXG4gICAgICB1c2VGYWN0b3J5OiAoaGFzdXJhQ29uZmlnOiBhbnkpOiBQcm9kdWN0UmVwb3NpdG9yeSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9kdWN0SGFzdXJhR3JhcGhRTFJlcG9zaXRvcnkoaGFzdXJhQ29uZmlnKVxyXG4gICAgICB9LFxyXG4gICAgICBkZXBzOiBbJ0hhc3VyYUNvbmZpZyddLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogJ1Byb2R1Y3RSZXZpZXdzUmVwb3NpdG9yeScsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBQcm9kdWN0UmV2aWV3c0hhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogUHJvZHVjdFJldmlld3NIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcclxuICAgICAgdXNlRmFjdG9yeTogKGhhc3VyYUNvbmZpZzogYW55KTogUHJvZHVjdFJldmlld3NSZXBvc2l0b3J5ID0+IHtcclxuICAgICAgICByZXR1cm4gbmV3IFByb2R1Y3RSZXZpZXdzSGFzdXJhR3JhcGhRTFJlcG9zaXRvcnkoaGFzdXJhQ29uZmlnKVxyXG4gICAgICB9LFxyXG4gICAgICBkZXBzOiBbJ0hhc3VyYUNvbmZpZyddLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogJ1ZhcmlhbnRSZXBvc2l0b3J5JyxcclxuICAgICAgdXNlRXhpc3Rpbmc6IFZhcmlhbnRIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IFZhcmlhbnRIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcclxuICAgICAgdXNlRmFjdG9yeTogKGhhc3VyYUNvbmZpZzogYW55KTogVmFyaWFudFJlcG9zaXRvcnkgPT4ge1xyXG4gICAgICAgIHJldHVybiBuZXcgVmFyaWFudEhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5KGhhc3VyYUNvbmZpZylcclxuICAgICAgfSxcclxuICAgICAgZGVwczogWydIYXN1cmFDb25maWcnXSxcclxuICAgIH0sXHJcblxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiAnQ2F0ZWdvcnlGaWx0ZXJSZXBvc2l0b3J5JyxcclxuICAgICAgdXNlRXhpc3Rpbmc6IENhdGVnb3J5RmlsdGVySGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBDYXRlZ29yeUZpbHRlckhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxyXG4gICAgICB1c2VGYWN0b3J5OiAob3B0aW9uczogYW55KTogQ2F0ZWdvcnlGaWx0ZXJSZXBvc2l0b3J5ID0+IHtcclxuICAgICAgICByZXR1cm4gbmV3IENhdGVnb3J5RmlsdGVySGFzdXJhR3JhcGhRTFJlcG9zaXRvcnkob3B0aW9ucylcclxuICAgICAgfSxcclxuICAgICAgZGVwczogWydIYXN1cmFDb25maWcnXSxcclxuICAgIH0sXHJcblxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiAnRmlsdGVyT3B0aW9uUmVwb3NpdG9yeScsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBGaWx0ZXJPcHRpb25IYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IEZpbHRlck9wdGlvbkhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxyXG4gICAgICB1c2VGYWN0b3J5OiAob3B0aW9uczogYW55KTogRmlsdGVyT3B0aW9uUmVwb3NpdG9yeSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBGaWx0ZXJPcHRpb25IYXN1cmFHcmFwaFFMUmVwb3NpdG9yeShvcHRpb25zKVxyXG4gICAgICB9LFxyXG4gICAgICBkZXBzOiBbJ0hhc3VyYUNvbmZpZyddLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogJ0ZpbHRlclJlcG9zaXRvcnknLFxyXG4gICAgICB1c2VFeGlzdGluZzogRmlsdGVySGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBGaWx0ZXJIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcclxuICAgICAgdXNlRmFjdG9yeTogKFxyXG4gICAgICAgIG9wdGlvbnM6IGFueSxcclxuICAgICAgICBmaWx0ZXJPcHRpb25SZXBvc2l0b3J5OiBGaWx0ZXJPcHRpb25IYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcclxuICAgICAgICBjYXRlZ29yeUZpbHRlclJlcG9zaXRvcnk6IENhdGVnb3J5RmlsdGVySGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXHJcbiAgICAgICk6IEZpbHRlclJlcG9zaXRvcnkgPT4ge1xyXG4gICAgICAgIHJldHVybiBuZXcgRmlsdGVySGFzdXJhR3JhcGhRTFJlcG9zaXRvcnkob3B0aW9ucywgZmlsdGVyT3B0aW9uUmVwb3NpdG9yeSwgY2F0ZWdvcnlGaWx0ZXJSZXBvc2l0b3J5KVxyXG4gICAgICB9LFxyXG4gICAgICBkZXBzOiBbJ0hhc3VyYUNvbmZpZycsIEZpbHRlck9wdGlvbkhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LCBDYXRlZ29yeUZpbHRlckhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5XSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IENhdGVnb3J5Q29sbGVjdGlvbkNoaWxkcmVuSGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXHJcbiAgICAgIHVzZUZhY3Rvcnk6IChvcHRpb25zOiBhbnkpOiBDYXRlZ29yeUNvbGxlY3Rpb25DaGlsZHJlbkhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5ID0+XHJcbiAgICAgICAgbmV3IENhdGVnb3J5Q29sbGVjdGlvbkNoaWxkcmVuSGFzdXJhR3JhcGhRTFJlcG9zaXRvcnkob3B0aW9ucyksXHJcbiAgICAgIGRlcHM6IFsnSGFzdXJhQ29uZmlnJ10sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiAnQ2F0ZWdvcnlDb2xsZWN0aW9uQ2hpbGRyZW5SZXBvc2l0b3J5JyxcclxuICAgICAgdXNlRXhpc3Rpbmc6IENhdGVnb3J5Q29sbGVjdGlvbkNoaWxkcmVuSGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBXaXNobGlzdEhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxyXG4gICAgICB1c2VGYWN0b3J5OiAoXHJcbiAgICAgICAgb3B0aW9uczogYW55LFxyXG4gICAgICAgIGNhdGVnb3J5RmlsdGVyUmVwb3NpdG9yeTogQ2F0ZWdvcnlGaWx0ZXJIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcclxuICAgICAgKTogV2lzaGxpc3RIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBXaXNobGlzdEhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5KG9wdGlvbnMsIGNhdGVnb3J5RmlsdGVyUmVwb3NpdG9yeSlcclxuICAgICAgfSxcclxuICAgICAgZGVwczogWydIYXN1cmFDb25maWcnLCBDYXRlZ29yeUZpbHRlckhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5XSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6ICdXaXNobGlzdFJlcG9zaXRvcnknLFxyXG4gICAgICB1c2VFeGlzdGluZzogV2lzaGxpc3RIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcclxuICAgIH0sXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEFuZ3VsYXJIYXN1cmFHcmFwaFFMTW9kdWxlIHtcclxuICBzdGF0aWMgaW5pdGlhbGl6ZUFwcChvcHRpb25zOiB7XHJcbiAgICBlbmRwb2ludDogc3RyaW5nXHJcbiAgICBjcmVkZW50aWFsczogSGFzdXJhR3JhcGhRTEF1dGhPcHRpb25zXHJcbiAgfSk6IE1vZHVsZVdpdGhQcm92aWRlcnM8QW5ndWxhckhhc3VyYUdyYXBoUUxNb2R1bGU+IHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIG5nTW9kdWxlOiBBbmd1bGFySGFzdXJhR3JhcGhRTE1vZHVsZSxcclxuICAgICAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBIQVNVUkFfT1BUSU9OUywgdXNlVmFsdWU6IG9wdGlvbnMgfV0sXHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export const CATEGORY_STRUCTURE = 'CATEGORY_STRUCTURE';
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcnktc3RydWN0dXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29ubmVjdC1hbmd1bGFyL3NyYy9jb25zdHMvY2F0ZWdvcnktc3RydWN0dXJlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLG9CQUFvQixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IENBVEVHT1JZX1NUUlVDVFVSRSA9ICdDQVRFR09SWV9TVFJVQ1RVUkUnXHJcbiJdfQ==
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export const DEFAULT_SHOP = 'DEFAULT_SHOP';
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC1zaG9wLmNvbnN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29ubmVjdC1hbmd1bGFyL3NyYy9jb25zdHMvZGVmYXVsdC1zaG9wLmNvbnN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxjQUFjLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgREVGQVVMVF9TSE9QID0gJ0RFRkFVTFRfU0hPUCdcclxuIl19
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export const ES_CONFIG = 'ES_CONFIG';
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXMtY29uZmlnLmNvbnN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29ubmVjdC1hbmd1bGFyL3NyYy9jb25zdHMvZXMtY29uZmlnLmNvbnN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxXQUFXLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgRVNfQ09ORklHID0gJ0VTX0NPTkZJRydcclxuIl19
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { InjectionToken } from '@angular/core';
|
|
2
2
|
export const FIREBASE_APP_NAME = new InjectionToken('firebaseAppName');
|
|
3
3
|
export const FIREBASE_OPTIONS = new InjectionToken('firebaseOptions');
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlyZWJhc2UtY29uc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0LWFuZ3VsYXIvc3JjL2NvbnN0cy9maXJlYmFzZS1jb25zdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBRTlDLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLElBQUksY0FBYyxDQUFDLGlCQUFpQixDQUFDLENBQUE7QUFDdEUsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxjQUFjLENBQUMsaUJBQWlCLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuXHJcbmV4cG9ydCBjb25zdCBGSVJFQkFTRV9BUFBfTkFNRSA9IG5ldyBJbmplY3Rpb25Ub2tlbignZmlyZWJhc2VBcHBOYW1lJylcclxuZXhwb3J0IGNvbnN0IEZJUkVCQVNFX09QVElPTlMgPSBuZXcgSW5qZWN0aW9uVG9rZW4oJ2ZpcmViYXNlT3B0aW9ucycpXHJcbiJdfQ==
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export const HASURA_OPTIONS = 'HASURA_OPTIONS';
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFzdXJhLW9wdGlvbnMuY29uc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0LWFuZ3VsYXIvc3JjL2NvbnN0cy9oYXN1cmEtb3B0aW9ucy5jb25zdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsZ0JBQWdCLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgSEFTVVJBX09QVElPTlMgPSAnSEFTVVJBX09QVElPTlMnXHJcbiJdfQ==
|
|
@@ -4,4 +4,4 @@ export * from './default-shop.const';
|
|
|
4
4
|
export * from './es-config.const';
|
|
5
5
|
export * from './firebase-const';
|
|
6
6
|
export * from './hasura-options.const';
|
|
7
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0LWFuZ3VsYXIvc3JjL2NvbnN0cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHFCQUFxQixDQUFBO0FBQ25DLGNBQWMsc0JBQXNCLENBQUE7QUFDcEMsY0FBYyxzQkFBc0IsQ0FBQTtBQUNwQyxjQUFjLG1CQUFtQixDQUFBO0FBQ2pDLGNBQWMsa0JBQWtCLENBQUE7QUFDaEMsY0FBYyx3QkFBd0IsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYmFja2VuZC11cmwuY29uc3QnXHJcbmV4cG9ydCAqIGZyb20gJy4vY2F0ZWdvcnktc3RydWN0dXJlJ1xyXG5leHBvcnQgKiBmcm9tICcuL2RlZmF1bHQtc2hvcC5jb25zdCdcclxuZXhwb3J0ICogZnJvbSAnLi9lcy1jb25maWcuY29uc3QnXHJcbmV4cG9ydCAqIGZyb20gJy4vZmlyZWJhc2UtY29uc3QnXHJcbmV4cG9ydCAqIGZyb20gJy4vaGFzdXJhLW9wdGlvbnMuY29uc3QnXHJcbiJdfQ==
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export * from './mobile-operation-system-checker.helper';
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0LWFuZ3VsYXIvc3JjL2hlbHBlcnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywwQ0FBMEMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbW9iaWxlLW9wZXJhdGlvbi1zeXN0ZW0tY2hlY2tlci5oZWxwZXInXHJcbiJdfQ==
|
|
@@ -4,4 +4,4 @@ export class MobileOperationSystemCheckerHelper {
|
|
|
4
4
|
(navigator?.userAgent?.includes?.('Mac') && 'ontouchend' in (document || {})));
|
|
5
5
|
}
|
|
6
6
|
}
|
|
7
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9iaWxlLW9wZXJhdGlvbi1zeXN0ZW0tY2hlY2tlci5oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0LWFuZ3VsYXIvc3JjL2hlbHBlcnMvbW9iaWxlLW9wZXJhdGlvbi1zeXN0ZW0tY2hlY2tlci5oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLGtDQUFrQztJQUM3QyxNQUFNLENBQUMsYUFBYTtRQUNsQixPQUFPLENBQ0wsQ0FBQyxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FDekYsU0FBUyxFQUFFLFFBQVEsQ0FDcEI7WUFDRCxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksWUFBWSxJQUFJLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQzlFLENBQUE7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgTW9iaWxlT3BlcmF0aW9uU3lzdGVtQ2hlY2tlckhlbHBlciB7XHJcbiAgc3RhdGljIGlzQXBwbGVEZXZpY2UoKSB7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICBbJ2lQYWQgU2ltdWxhdG9yJywgJ2lQaG9uZSBTaW11bGF0b3InLCAnaVBvZCBTaW11bGF0b3InLCAnaVBhZCcsICdpUGhvbmUnLCAnaVBvZCddLmluY2x1ZGVzKFxyXG4gICAgICAgIG5hdmlnYXRvcj8ucGxhdGZvcm0sXHJcbiAgICAgICkgfHxcclxuICAgICAgKG5hdmlnYXRvcj8udXNlckFnZW50Py5pbmNsdWRlcz8uKCdNYWMnKSAmJiAnb250b3VjaGVuZCcgaW4gKGRvY3VtZW50IHx8IHt9KSlcclxuICAgIClcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -3,4 +3,4 @@ export * from './angular-firebase-auth.module';
|
|
|
3
3
|
export * from './angular-firestore.module';
|
|
4
4
|
export * from './angular-hasura-graphql.module';
|
|
5
5
|
export * from './services';
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0LWFuZ3VsYXIvc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsMEJBQTBCLENBQUE7QUFDeEMsY0FBYyxnQ0FBZ0MsQ0FBQTtBQUM5QyxjQUFjLDRCQUE0QixDQUFBO0FBQzFDLGNBQWMsaUNBQWlDLENBQUE7QUFDL0MsY0FBYyxZQUFZLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2FuZ3VsYXItY29ubmVjdC5tb2R1bGUnXHJcbmV4cG9ydCAqIGZyb20gJy4vYW5ndWxhci1maXJlYmFzZS1hdXRoLm1vZHVsZSdcclxuZXhwb3J0ICogZnJvbSAnLi9hbmd1bGFyLWZpcmVzdG9yZS5tb2R1bGUnXHJcbmV4cG9ydCAqIGZyb20gJy4vYW5ndWxhci1oYXN1cmEtZ3JhcGhxbC5tb2R1bGUnXHJcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMnXHJcbiJdfQ==
|
|
@@ -25,13 +25,13 @@ export class AuthService {
|
|
|
25
25
|
getFireUser() {
|
|
26
26
|
return authState(this.angularFireAuth).pipe(catchError(() => of(null)));
|
|
27
27
|
}
|
|
28
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: AuthService, deps: [{ token: i1.Auth }, { token: 'UserRepository' }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
29
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: AuthService }); }
|
|
28
30
|
}
|
|
29
|
-
|
|
30
|
-
AuthService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: AuthService });
|
|
31
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: AuthService, decorators: [{
|
|
31
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: AuthService, decorators: [{
|
|
32
32
|
type: Injectable
|
|
33
|
-
}], ctorParameters:
|
|
33
|
+
}], ctorParameters: () => [{ type: i1.Auth }, { type: undefined, decorators: [{
|
|
34
34
|
type: Inject,
|
|
35
35
|
args: ['UserRepository']
|
|
36
|
-
}] }]
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
36
|
+
}] }] });
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29ubmVjdC1hbmd1bGFyL3NyYy9zZXJ2aWNlcy9hdXRoLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDbEQsT0FBTyxFQUFFLElBQUksRUFBd0IsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBRXRGLE9BQU8sRUFBYyxhQUFhLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUMxRCxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTs7O0FBRzFELE1BQU0sT0FBTyxXQUFXO0lBQ3RCLFlBQ21CLGVBQXFCLEVBQ0ssY0FBOEI7UUFEeEQsb0JBQWUsR0FBZixlQUFlLENBQU07UUFDSyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7SUFDeEUsQ0FBQztJQUVKLFlBQVk7UUFDVixNQUFNLFdBQVcsR0FBaUQsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUE7UUFFdEcsT0FBTyxhQUFhLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUNwQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUN6QixJQUFJO1lBQ0osV0FBVyxFQUFFLFFBQVEsRUFBRSxXQUFXO1NBQ25DLENBQUMsQ0FBQyxDQUNKLENBQUE7SUFDSCxDQUFDO0lBRUQsT0FBTztRQUNMLE9BQU8sSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLElBQUksQ0FDNUIsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLEVBQ3hCLFFBQVEsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQzNHLENBQUE7SUFDSCxDQUFDO0lBRUQsVUFBVTtRQUNSLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUE7SUFDM0QsQ0FBQztJQUVELFdBQVc7UUFDVCxPQUFPLFNBQVMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ3pFLENBQUM7OEdBOUJVLFdBQVcsc0NBR1osZ0JBQWdCO2tIQUhmLFdBQVc7OzJGQUFYLFdBQVc7a0JBRHZCLFVBQVU7OzBCQUlOLE1BQU07MkJBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuaW1wb3J0IHsgQXV0aCwgVXNlciBhcyBGaXJlYmFzZVVzZXIsIGF1dGhTdGF0ZSwgZ2V0SWRUb2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2ZpcmUvYXV0aCdcclxuaW1wb3J0IHsgVXNlciwgVXNlclJlcG9zaXRvcnkgfSBmcm9tICdAaW5mcmFiNGEvY29ubmVjdCdcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgY29tYmluZUxhdGVzdCwgZnJvbSwgb2YgfSBmcm9tICdyeGpzJ1xyXG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAsIG1lcmdlTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBBdXRoU2VydmljZSB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFuZ3VsYXJGaXJlQXV0aDogQXV0aCxcclxuICAgIEBJbmplY3QoJ1VzZXJSZXBvc2l0b3J5JykgcHJpdmF0ZSByZWFkb25seSB1c2VyUmVwb3NpdG9yeTogVXNlclJlcG9zaXRvcnksXHJcbiAgKSB7fVxyXG5cclxuICBnZXRBdXRoc3RhdGUoKTogT2JzZXJ2YWJsZTx7IHVzZXI6IFVzZXI7IGlzQW5vbnltb3VzOiBib29sZWFuIH0+IHtcclxuICAgIGNvbnN0IG9ic2VydmFibGVzOiBbT2JzZXJ2YWJsZTxGaXJlYmFzZVVzZXI+LCBPYnNlcnZhYmxlPFVzZXI+XSA9IFt0aGlzLmdldEZpcmVVc2VyKCksIHRoaXMuZ2V0VXNlcigpXVxyXG5cclxuICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KG9ic2VydmFibGVzKS5waXBlKFxyXG4gICAgICBtYXAoKFtmaXJlVXNlciwgdXNlcl0pID0+ICh7XHJcbiAgICAgICAgdXNlcixcclxuICAgICAgICBpc0Fub255bW91czogZmlyZVVzZXI/LmlzQW5vbnltb3VzLFxyXG4gICAgICB9KSksXHJcbiAgICApXHJcbiAgfVxyXG5cclxuICBnZXRVc2VyKCk6IE9ic2VydmFibGU8VXNlcj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0RmlyZVVzZXIoKS5waXBlKFxyXG4gICAgICBtYXAoKHVzZXIpID0+IHVzZXI/LnVpZCksXHJcbiAgICAgIG1lcmdlTWFwKChpZCkgPT4gKGlkID8gZnJvbSh0aGlzLnVzZXJSZXBvc2l0b3J5LmdldCh7IGlkIH0pKS5waXBlKGNhdGNoRXJyb3IoKCkgPT4gb2YobnVsbCkpKSA6IG9mKG51bGwpKSksXHJcbiAgICApXHJcbiAgfVxyXG5cclxuICBnZXRUb2tlbklkKCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XHJcbiAgICByZXR1cm4gZnJvbShnZXRJZFRva2VuKHRoaXMuYW5ndWxhckZpcmVBdXRoLmN1cnJlbnRVc2VyKSlcclxuICB9XHJcblxyXG4gIGdldEZpcmVVc2VyKCk6IE9ic2VydmFibGU8RmlyZWJhc2VVc2VyPiB7XHJcbiAgICByZXR1cm4gYXV0aFN0YXRlKHRoaXMuYW5ndWxhckZpcmVBdXRoKS5waXBlKGNhdGNoRXJyb3IoKCkgPT4gb2YobnVsbCkpKVxyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -257,12 +257,12 @@ export class CartService {
|
|
|
257
257
|
});
|
|
258
258
|
});
|
|
259
259
|
}
|
|
260
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: CartService, deps: [{ token: i1.AuthService }, { token: i2.CheckoutService }, { token: DEFAULT_SHOP }, { token: 'ProductRepository' }, { token: 'CategoryRepository' }, { token: 'VariantRepository' }, { token: 'Buy2WinRepository' }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
261
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: CartService }); }
|
|
260
262
|
}
|
|
261
|
-
|
|
262
|
-
CartService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CartService });
|
|
263
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CartService, decorators: [{
|
|
263
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: CartService, decorators: [{
|
|
264
264
|
type: Injectable
|
|
265
|
-
}], ctorParameters:
|
|
265
|
+
}], ctorParameters: () => [{ type: i1.AuthService }, { type: i2.CheckoutService }, { type: i3.Shops, decorators: [{
|
|
266
266
|
type: Inject,
|
|
267
267
|
args: [DEFAULT_SHOP]
|
|
268
268
|
}] }, { type: undefined, decorators: [{
|
|
@@ -277,5 +277,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImpor
|
|
|
277
277
|
}] }, { type: i3.Buy2WinFirestoreRepository, decorators: [{
|
|
278
278
|
type: Inject,
|
|
279
279
|
args: ['Buy2WinRepository']
|
|
280
|
-
}] }]
|
|
281
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FydC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29ubmVjdC1hbmd1bGFyL3NyYy9zZXJ2aWNlcy9jYXJ0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDbEQsT0FBTyxFQUVMLDBCQUEwQixFQUUxQixRQUFRLEVBQ1IsS0FBSyxFQUNMLFFBQVEsRUFDUixhQUFhLEVBR2Isd0JBQXdCLEVBRXhCLEtBQUssRUFJTCxLQUFLLEdBQ04sTUFBTSxtQkFBbUIsQ0FBQTtBQUMxQixPQUFPLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBYyxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQ3pELE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDMUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUN4QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDNUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFBOzs7OztBQVFwRCxNQUFNLE9BQU8sV0FBVztJQUd0QixZQUNtQixXQUF3QixFQUN4QixlQUFnQyxFQUNWLFdBQWtCLEVBQ1gsaUJBQW9DLEVBQ25DLGtCQUFzQyxFQUN2QyxpQkFBb0MsRUFDcEMsaUJBQTZDO1FBTjFFLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNWLGdCQUFXLEdBQVgsV0FBVyxDQUFPO1FBQ1gsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNuQyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3ZDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDcEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUE0QjtRQVRyRixnQkFBVyxHQUFrQixJQUFJLE9BQU8sRUFBRSxDQUFBO1FBa0gxQyx5QkFBb0IsR0FBRyxDQUFDLFFBQWtCLEVBQUUsUUFBZ0IsRUFBRSxRQUFtQixFQUFvQixFQUFFLENBQzdHLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQ3hFLFNBQVMsQ0FBQyxDQUFDLGNBQWMsRUFBRSxFQUFFO1lBQzNCLE1BQU0sS0FBSyxHQUFlLEVBQUUsQ0FBQTtZQUM1QixNQUFNLEtBQUssR0FBRyxjQUFjLENBQUMsU0FBUyxFQUFFLEdBQUcsQ0FBQyxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUE7WUFFbkcsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDLEVBQUU7Z0JBQ2QsY0FBYyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLElBQUksUUFBUSxDQUFBO2dCQUNwRCxjQUFjLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFBO2FBQy9EOztnQkFDQyxjQUFjLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQ3JDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FDcEYsQ0FBQTtZQUVILE9BQU8sSUFBSSxDQUFDLGVBQWU7aUJBQ3hCLHVCQUF1QixDQUFDLGNBQWMsQ0FBQztpQkFDdkMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLGVBQWUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDdkYsQ0FBQyxDQUFDLENBQ0gsQ0FBQTtRQUVLLHVCQUFrQixHQUFHLENBQUMsS0FBaUIsRUFBUSxFQUFFLENBQ3ZELEtBQUssRUFBRSxNQUFNLENBQ1gsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ2YsR0FBRyxJQUFJO1lBQ1AsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsUUFBUSxDQUFDLFVBQVUsQ0FBQztnQkFDN0IsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksSUFBSSxDQUFDO2dCQUMxQixRQUFRLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLFFBQVEsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUMvRSxDQUFDO1NBQ0gsQ0FBQyxFQUNGLEVBQThCLENBQy9CLElBQUksRUFBRSxDQUFBO1FBRUQsa0JBQWEsR0FBRyxLQUFLLEVBQUUsRUFDN0IsUUFBUSxFQUNSLElBQUksRUFDSixRQUFRLEdBS1QsRUFBZ0UsRUFBRTtZQUNqRSxNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFBO1lBRWxELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxFQUFFLFFBQVEsSUFBSSxRQUFRLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsUUFBUSxJQUFJLENBQUMsQ0FBQTtZQUVqSCxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLFFBQVEsSUFBSSxDQUFDLENBQUM7Z0JBQ3pDLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxRQUFRLEdBQUcsY0FBYyxDQUFDLENBQUE7WUFFcEYsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxDQUFBO1lBQ2hELE1BQU0sRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQTtZQUNyRSxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQTtZQUNsQyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDO2dCQUNyQyxPQUFPLEVBQUUsSUFBSTtnQkFDYixJQUFJLEVBQUUsUUFBUSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsV0FBVztnQkFDdkMsWUFBWSxFQUFFLFFBQVEsQ0FBQyxJQUFJLEVBQUUsWUFBWTthQUMxQyxDQUFDLENBQUE7WUFFRix3QkFBd0IsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQTtZQUVqRCxPQUFPO2dCQUNMLFFBQVE7Z0JBQ1IsUUFBUSxFQUFFLFFBQVEsQ0FBQyxVQUFVLENBQUM7b0JBQzVCLEVBQUU7b0JBQ0YsSUFBSSxFQUFFLElBQUksSUFBSSxPQUFPLENBQUMsSUFBSTtvQkFDMUIsR0FBRyxFQUFFLEdBQUcsSUFBSSxPQUFPLENBQUMsR0FBRztvQkFDdkIsS0FBSyxFQUFFLE9BQU8sQ0FBQyxLQUFLO29CQUNwQixJQUFJLEVBQUUsSUFBSSxJQUFJLE9BQU8sQ0FBQyxJQUFJO29CQUMxQixHQUFHLEVBQUUsR0FBRyxJQUFJLE9BQU8sQ0FBQyxHQUFHO29CQUN2QixLQUFLO29CQUNMLEtBQUssRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQztvQkFDN0IsS0FBSztvQkFDTCxNQUFNLEVBQUUsTUFBTSxJQUFJLE9BQU8sQ0FBQyxNQUFNO29CQUNoQyxRQUFRLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQztvQkFDaEQsU0FBUztvQkFDVCxVQUFVLEVBQUUsT0FBTyxDQUFDLFVBQVUsSUFBSSxFQUFFO29CQUNwQyxNQUFNLEVBQUUsTUFBTSxJQUFJLElBQUk7b0JBQ3RCLFNBQVMsRUFBRSxPQUFPLENBQUMsU0FBUyxJQUFJLENBQUM7b0JBQ2pDLElBQUk7aUJBQ0wsQ0FBQzthQUNILENBQUE7UUFDSCxDQUFDLENBQUE7UUFvQ08sb0JBQWUsR0FBRyxDQUFDLEVBQ3pCLE9BQU8sRUFDUCxZQUFZLEdBS2IsRUFBVSxFQUFFO1lBQ1gsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQTtZQUUxQixJQUFJLE9BQU8sQ0FBQyxNQUFNO2dCQUFFLE9BQU8sQ0FBQyxDQUFBO1lBRTVCLE9BQU8sWUFBWSxJQUFJLElBQUksQ0FBQyxlQUFlLEdBQUcsQ0FBQztnQkFDN0MsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDekMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQ25DLENBQUMsQ0FBQTtRQUVPLGtCQUFhLEdBQUcsQ0FBQyxJQUFjLEVBQUUsUUFBZ0IsRUFBRSxFQUFFO1lBQzNELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsUUFBUSxJQUFJLENBQUMsQ0FBQTtZQUMxQyxNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFBO1lBRTVDLE9BQU8saUJBQWlCLEdBQUcsUUFBUSxHQUFHLFFBQVEsQ0FBQTtRQUNoRCxDQUFDLENBQUE7SUFsUEUsQ0FBQztJQUVKLE9BQU8sQ0FBQyxJQUFjLEVBQUUsV0FBbUIsQ0FBQztRQUMxQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUNsRCxTQUFTLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxFQUFFLENBQUMsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsUUFBUSxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsRUFDcEcsUUFBUSxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLEVBQUUsUUFBUSxJQUFJLENBQUMsRUFBRSxRQUFvQixDQUFDLENBQUMsRUFDOUcsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUMzQyxDQUFBO0lBQ0gsQ0FBQztJQUVELFlBQVksQ0FBQyxJQUFjO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxJQUFJLENBQzVDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQ2YsTUFBTSxZQUFZLEdBQUcsUUFBUSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFBO1lBRXBGLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDO2dCQUFFLFlBQVksQ0FBQyxRQUFRLElBQUksWUFBWSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO1lBRXBGLE9BQU8sUUFBUSxDQUFBO1FBQ2pCLENBQUMsQ0FBQyxFQUNGLFNBQVMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyx1QkFBdUIsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUMvRSxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsRUFDOUQsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUMzQyxDQUFBO0lBQ0gsQ0FBQztJQUVELE9BQU8sQ0FBQyxRQUErQjtRQUNyQyxJQUFJLENBQUMscUJBQXFCLENBQUMsUUFBUSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO1FBRXJGLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQTtJQUN6QixDQUFDO0lBRUQ7O09BRUc7SUFDSCx1QkFBdUIsQ0FBQyxJQUFjO1FBQ3BDLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQ3BDLFNBQVMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQ2pCLEdBQUcsQ0FDRCxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsRUFDdkQsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLEVBQzlCLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUNyQixDQUNGLEVBQ0QsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQ3ZDLENBQUE7SUFDSCxDQUFDO0lBRUQsVUFBVSxDQUFDLElBQWM7UUFDdkIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsRUFBRSxDQUFDLElBQUksQ0FDNUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDZixNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUE7WUFFakYsSUFBSSxLQUFLLElBQUksQ0FBQztnQkFBRSxRQUFRLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUE7WUFFbkQsT0FBTyxRQUFRLENBQUE7UUFDakIsQ0FBQyxDQUFDLEVBQ0YsU0FBUyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQy9FLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUM5RCxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQzNDLENBQUE7SUFDSCxDQUFDO0lBRUQsY0FBYyxDQUFDLElBQVU7UUFDdkIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsRUFBRSxDQUFDLElBQUksQ0FDNUMsU0FBUyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FDckIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEVBQUUsR0FBRyxRQUFRLENBQUMsT0FBTyxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUM5RixFQUNELFNBQVMsQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLEVBQUUsQ0FDM0IsSUFBSSxDQUFDLGVBQWU7YUFDakIsdUJBQXVCLENBQ3RCLFFBQVEsQ0FBQyxVQUFVLENBQUM7WUFDbEIsR0FBRyxRQUFRLENBQUMsT0FBTyxFQUFFO1lBQ3JCLFNBQVMsRUFBRSxRQUFRLENBQUMsU0FBUyxFQUFFLE1BQU07Z0JBQ25DLENBQUMsQ0FBQyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQ2YsUUFBUSxDQUFDLFNBQVMsRUFBRSxHQUFHLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUNqRztnQkFDSCxDQUFDLENBQUMsRUFBRTtTQUNQLENBQUMsQ0FDSDthQUNBLFNBQVMsRUFBRSxDQUNmLEVBQ0QsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQzlELEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FDM0MsQ0FBQTtJQUNILENBQUM7SUFFRCxTQUFTO1FBQ1AsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsRUFBRSxDQUFDLElBQUksQ0FDNUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDZixJQUFJLENBQUMsZUFBZSxDQUFDLHdCQUF3QixFQUFFLENBQUE7WUFDL0MsT0FBTyxRQUFRLENBQUE7UUFDakIsQ0FBQyxDQUFDLEVBQ0YsU0FBUyxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsV0FBVyxDQUFDLENBQUMsRUFDbkUsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUMzQyxDQUFBO0lBQ0gsQ0FBQztJQUVPLHFCQUFxQixDQUFDLFlBQW1DO1FBQy9ELE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUMsSUFBSSxDQUN4RCxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsRUFDckMsU0FBUyxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FDakUsQ0FBQTtJQUNILENBQUM7SUFvRk8sVUFBVSxDQUFDLFlBQXVCO1FBQ3hDLE1BQU0sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxHQUFHLFlBQVksQ0FBQTtRQUMxRCxPQUFPO1lBQ0wsR0FBRyxZQUFZO1lBQ2YsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQy9CLFNBQVMsRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN2QyxHQUFHLENBQUMsZUFBZSxJQUFJLEVBQUUsZUFBZSxFQUFFLE1BQU0sQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztTQUNoRixDQUFBO0lBQ0gsQ0FBQztJQUVPLEtBQUssQ0FBQyxjQUFjLENBQUMsU0FBaUI7UUFDNUMsSUFBSSxPQUFnQixDQUFBO1FBQ3BCLElBQUksT0FBZ0IsQ0FBQTtRQUVwQixJQUFJO1lBQ0YsT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFBO1NBQzlEO1FBQUMsT0FBTyxLQUFLLEVBQUU7WUFDZCxJQUFJLENBQUMsQ0FBQyxLQUFLLFlBQVksYUFBYSxDQUFDO2dCQUFFLE1BQU0sS0FBSyxDQUFBO1lBRWxELE1BQU0sRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQTtZQUU1RixPQUFPLEdBQUcsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFBO1lBRTFCLElBQUksQ0FBQyxPQUFPO2dCQUFFLE1BQU0sS0FBSyxDQUFBO1lBRXpCLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUE7U0FDdEU7UUFFRCxPQUFPO1lBQ0wsR0FBRyxPQUFPLENBQUMsT0FBTyxFQUFFO1lBQ3BCLEdBQUcsQ0FBQyxPQUFPLElBQUksRUFBRSxHQUFHLE9BQU8sQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDO1NBQ3pDLENBQUE7SUFDSCxDQUFDO0lBMEJELFFBQVE7UUFDTixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxFQUFFLENBQUMsSUFBSSxDQUM1QyxRQUFRLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxFQUFFO1lBQzFCLE1BQU0sWUFBWSxHQUFlLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFBO1lBRTVHLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTTtnQkFBRSxPQUFPLEVBQUUsR0FBRyxRQUFRLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBYyxDQUFBO1lBRTNFLE1BQU0sU0FBUyxHQUFHLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFBO1lBRWhGLE1BQU0sU0FBUyxHQUFHLE1BQU0sSUFBSSxDQUFDLGlCQUFpQjtpQkFDM0MsSUFBSSxDQUFDO2dCQUNKLE9BQU8sRUFBRTtvQkFDUCxNQUFNLEVBQUUsRUFBRSxRQUFRLEVBQUUsS0FBSyxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO29CQUMvQyxJQUFJLEVBQUUsRUFBRSxRQUFRLEVBQUUsS0FBSyxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRTtpQkFDMUQ7YUFDRixDQUFDO2lCQUNELElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO1lBRTVCLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTTtnQkFBRSxPQUFPLEVBQUUsR0FBRyxRQUFRLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBYyxDQUFBO1lBRWxGLE1BQU0saUJBQWlCLEdBQWMsRUFBRSxDQUFBO1lBRXZDLEtBQUssTUFBTSxRQUFRLElBQUksU0FBUyxFQUFFO2dCQUNoQyxNQUFNLEtBQUssR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFBO2dCQUVsQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxJQUFJLEtBQUssQ0FBQztvQkFBRSxTQUFRO2dCQUVoRyxJQUFJLFFBQVEsQ0FBQyxjQUFjLEVBQUU7b0JBQzNCLE1BQU0sa0JBQWtCLEdBQUcsUUFBUSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQTtvQkFDMUUsTUFBTSwwQkFBMEIsR0FBRyxFQUFFLENBQUE7b0JBRXJDLEtBQUssTUFBTSxFQUFFLElBQUksa0JBQWtCLEVBQUU7d0JBQ25DLE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLGtCQUFrQixDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTt3QkFFeEUsMEJBQTBCLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFBO3FCQUM3RTtvQkFFRCxNQUFNLHNCQUFzQixHQUFHLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDLENBQUE7b0JBQ3ZFLE1BQU0sd0JBQXdCLEdBQUcsUUFBUSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTt3QkFDL0QsSUFBSSxDQUFDLENBQUMsQ0FBQyxVQUFVLElBQUksQ0FBQyxDQUFDLENBQUMsVUFBVSxFQUFFLE1BQU07NEJBQUUsT0FBTyxJQUFJLENBQUE7d0JBRXZELE9BQU8sQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUE7b0JBQ2pGLENBQUMsQ0FBQyxDQUFBO29CQUVGLElBQUksd0JBQXdCLENBQUMsTUFBTSxFQUFFO3dCQUNuQyxNQUFNLG1CQUFtQixHQUFHLHdCQUF3QixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUE7d0JBRXRHLElBQUksbUJBQW1CLElBQUksUUFBUSxDQUFDLFlBQVk7NEJBQUUsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFBO3FCQUNuRjtpQkFDRjtxQkFBTTtvQkFDTCxJQUFJLFFBQVEsQ0FBQyxTQUFTLElBQUksUUFBUSxDQUFDLFNBQVMsR0FBRyxDQUFDLEVBQUU7d0JBQ2hELElBQUksUUFBUSxDQUFDLFNBQVMsSUFBSSxTQUFTOzRCQUFFLGlCQUFpQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQTtxQkFDdEU7aUJBQ0Y7YUFDRjtZQUVELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNO2dCQUFFLE9BQU8sRUFBRSxHQUFHLFFBQVEsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFjLENBQUE7WUFFMUYsTUFBTSxpQkFBaUIsR0FBZ0IsRUFBRSxDQUFBO1lBRXpDLEtBQUssTUFBTSxRQUFRLElBQUksaUJBQWlCLEVBQUU7Z0JBQ3hDLElBQUksZ0JBQWdCLEdBQUcsRUFBRSxDQUFBO2dCQUV6QixLQUFLLE1BQU0sT0FBTyxJQUFJLFFBQVEsQ0FBQyxRQUFRLEVBQUU7b0JBQ3ZDLE1BQU0sRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQTtvQkFFOUYsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNO3dCQUFFLFNBQVE7b0JBRWpDLE1BQU0sSUFBSSxHQUFHLFdBQVcsQ0FBQyxLQUFLLEVBQUUsQ0FBQTtvQkFFaEMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxDQUFDO3dCQUFFLFNBQVE7b0JBRXJDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtpQkFDNUI7Z0JBRUQsaUJBQWlCLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUE7YUFDekM7WUFFRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTTtnQkFBRSxPQUFPLEVBQUUsR0FBRyxRQUFRLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBYyxDQUFBO1lBRTFGLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxHQUFHLGlCQUFpQixDQUFDLENBQUMsQ0FBQTtZQUVuRSxPQUFPLEVBQUUsR0FBRyxRQUFRLEVBQUUsU0FBUyxFQUFFLFlBQVksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQTtRQUMvRCxDQUFDLENBQUMsRUFDRixTQUFTLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsdUJBQXVCLENBQUMsUUFBUSxDQUFDLENBQUMsRUFDL0UsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQzlELEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FDM0MsQ0FBQTtJQUNILENBQUM7SUFFTyxlQUFlLENBQUMsS0FBZ0I7UUFDdEMsT0FBTyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDeEIsTUFBTSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQTtZQUVsRixNQUFNLEtBQUssR0FBRyxJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQTtZQUU1RSxPQUFPLFFBQVEsQ0FBQyxVQUFVLENBQUM7Z0JBQ3pCLEtBQUs7Z0JBQ0wsVUFBVTtnQkFDVixFQUFFLEVBQUUsRUFBRSxDQUFDLFFBQVEsRUFBRTtnQkFDakIsSUFBSTtnQkFDSixLQUFLO2dCQUNMLEdBQUc7Z0JBQ0gsSUFBSTtnQkFDSixLQUFLO2dCQUNMLE1BQU07Z0JBQ04sR0FBRztnQkFDSCxLQUFLO2dCQUNMLFNBQVMsRUFBRSxDQUFDO2dCQUNaLFFBQVEsRUFBRSxDQUFDO2dCQUNYLE1BQU0sRUFBRSxJQUFJO2FBQ2IsQ0FBQyxDQUFBO1FBQ0osQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDOzt3R0FoWFUsV0FBVyw0RUFNWixZQUFZLGFBQ1osbUJBQW1CLGFBQ25CLG9CQUFvQixhQUNwQixtQkFBbUIsYUFDbkIsbUJBQW1COzRHQVZsQixXQUFXOzJGQUFYLFdBQVc7a0JBRHZCLFVBQVU7OzBCQU9OLE1BQU07MkJBQUMsWUFBWTs7MEJBQ25CLE1BQU07MkJBQUMsbUJBQW1COzswQkFDMUIsTUFBTTsyQkFBQyxvQkFBb0I7OzBCQUMzQixNQUFNOzJCQUFDLG1CQUFtQjs7MEJBQzFCLE1BQU07MkJBQUMsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7XG4gIEJ1eTJXaW4sXG4gIEJ1eTJXaW5GaXJlc3RvcmVSZXBvc2l0b3J5LFxuICBDYXRlZ29yeVJlcG9zaXRvcnksXG4gIENoZWNrb3V0LFxuICBpc05pbCxcbiAgTGluZUl0ZW0sXG4gIE5vdEZvdW5kRXJyb3IsXG4gIFByb2R1Y3QsXG4gIFByb2R1Y3RSZXBvc2l0b3J5LFxuICBSb3VuZFByb2R1Y3RQcmljZXNIZWxwZXIsXG4gIFNob3BQcmljZSxcbiAgU2hvcHMsXG4gIFVzZXIsXG4gIFZhcmlhbnQsXG4gIFZhcmlhbnRSZXBvc2l0b3J5LFxuICBXaGVyZSxcbn0gZnJvbSAnQGluZnJhYjRhL2Nvbm5lY3QnXG5pbXBvcnQgeyBmcm9tLCBpaWYsIE9ic2VydmFibGUsIG9mLCBTdWJqZWN0IH0gZnJvbSAncnhqcydcbmltcG9ydCB7IGNhdGNoRXJyb3IsIGNvbmNhdE1hcCwgbWFwLCBtZXJnZU1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXG5pbXBvcnQgeyBERUZBVUxUX1NIT1AgfSBmcm9tICcuLi9jb25zdHMnXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4vYXV0aC5zZXJ2aWNlJ1xuaW1wb3J0IHsgQ2hlY2tvdXRTZXJ2aWNlIH0gZnJvbSAnLi9jaGVja291dC5zZXJ2aWNlJ1xuaW1wb3J0IHsgUmVxdWlyZWRDaGVja291dERhdGEgfSBmcm9tICcuL3R5cGVzJ1xuXG5leHBvcnQgdHlwZSBDYXJ0ID0ge1xuICBbaWQ6IHN0cmluZ106IExpbmVJdGVtXG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBDYXJ0U2VydmljZSB7XG4gIHByaXZhdGUgY2FydFN1YmplY3Q6IFN1YmplY3Q8Q2FydD4gPSBuZXcgU3ViamVjdCgpXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBjaGVja291dFNlcnZpY2U6IENoZWNrb3V0U2VydmljZSxcbiAgICBASW5qZWN0KERFRkFVTFRfU0hPUCkgcHJpdmF0ZSByZWFkb25seSBkZWZhdWx0U2hvcDogU2hvcHMsXG4gICAgQEluamVjdCgnUHJvZHVjdFJlcG9zaXRvcnknKSBwcml2YXRlIHJlYWRvbmx5IHByb2R1Y3RSZXBvc2l0b3J5OiBQcm9kdWN0UmVwb3NpdG9yeSxcbiAgICBASW5qZWN0KCdDYXRlZ29yeVJlcG9zaXRvcnknKSBwcml2YXRlIHJlYWRvbmx5IGNhdGVnb3J5UmVwb3NpdG9yeTogQ2F0ZWdvcnlSZXBvc2l0b3J5LFxuICAgIEBJbmplY3QoJ1ZhcmlhbnRSZXBvc2l0b3J5JykgcHJpdmF0ZSByZWFkb25seSB2YXJpYW50UmVwb3NpdG9yeTogVmFyaWFudFJlcG9zaXRvcnksXG4gICAgQEluamVjdCgnQnV5MldpblJlcG9zaXRvcnknKSBwcml2YXRlIHJlYWRvbmx5IGJ1eTJXaW5SZXBvc2l0b3J5OiBCdXkyV2luRmlyZXN0b3JlUmVwb3NpdG9yeSxcbiAgKSB7fVxuXG4gIGFkZEl0ZW0oaXRlbTogTGluZUl0ZW0sIHF1YW50aXR5OiBudW1iZXIgPSAxKTogT2JzZXJ2YWJsZTxDYXJ0PiB7XG4gICAgcmV0dXJuIGZyb20odGhpcy5jaGVja291dFNlcnZpY2UuZ2V0Q2hlY2tvdXQoKSkucGlwZShcbiAgICAgIGNvbmNhdE1hcChhc3luYyAoY2hlY2tvdXQpID0+IGF3YWl0IHRoaXMuYnVpbGRMaW5lSXRlbSh7IGNoZWNrb3V0LCBpdGVtLCBxdWFudGl0eTogcXVhbnRpdHkgfHwgMSB9KSksXG4gICAgICBtZXJnZU1hcCgoeyBjaGVja291dCwgbGluZUl0ZW0gfSkgPT4gdGhpcy51cGRhdGVMaW5lSXRlbUluQ2FydChsaW5lSXRlbSwgcXVhbnRpdHkgfHwgMSwgY2hlY2tvdXQgYXMgQ2hlY2tvdXQpKSxcbiAgICAgIHRhcCgoY2FydCkgPT4gdGhpcy5jYXJ0U3ViamVjdC5uZXh0KGNhcnQpKSxcbiAgICApXG4gIH1cblxuICBkZWNyZWFzZUl0ZW0oaXRlbTogTGluZUl0ZW0pOiBPYnNlcnZhYmxlPENhcnQ+IHtcbiAgICByZXR1cm4gdGhpcy5jaGVja291dFNlcnZpY2UuZ2V0Q2hlY2tvdXQoKS5waXBlKFxuICAgICAgbWFwKChjaGVja291dCkgPT4ge1xuICAgICAgICBjb25zdCBjaGVja291dEl0ZW0gPSBjaGVja291dC5saW5lSXRlbXM/LmZpbmQoKGxpbmVJdGVtKSA9PiBsaW5lSXRlbS5pZCA9PT0gaXRlbS5pZClcblxuICAgICAgICBpZiAoIWlzTmlsKGNoZWNrb3V0SXRlbSkpIGNoZWNrb3V0SXRlbS5xdWFudGl0eSAtPSBjaGVja291dEl0ZW0ucXVhbnRpdHkgPiAxID8gMSA6IDBcblxuICAgICAgICByZXR1cm4gY2hlY2tvdXRcbiAgICAgIH0pLFxuICAgICAgY29uY2F0TWFwKChjaGVja291dCkgPT4gdGhpcy5jaGVja291dFNlcnZpY2UudXBkYXRlQ2hlY2tvdXRMaW5lSXRlbXMoY2hlY2tvdXQpKSxcbiAgICAgIG1hcCgoY2hlY2tvdXQpID0+IHRoaXMuZ2VuZXJhdGVDYXJ0T2JqZWN0KGNoZWNrb3V0LmxpbmVJdGVtcykpLFxuICAgICAgdGFwKChjYXJ0KSA9PiB0aGlzLmNhcnRTdWJqZWN0Lm5leHQoY2FydCkpLFxuICAgIClcbiAgfVxuXG4gIGdldENhcnQoY2hlY2tvdXQ/OiBSZXF1aXJlZENoZWNrb3V0RGF0YSk6IE9ic2VydmFibGU8Q2FydD4ge1xuICAgIHRoaXMuYnVpbGRDYXJ0RnJvbUNoZWNrb3V0KGNoZWNrb3V0KS5zdWJzY3JpYmUoKGNhcnQpID0+IHRoaXMuY2FydFN1YmplY3QubmV4dChjYXJ0KSlcblxuICAgIHJldHVybiB0aGlzLmNhcnRTdWJqZWN0XG4gIH1cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgVGhlIG1ldGhvZCBzaG91bGQgbm90IGJlIHVzZWRcbiAgICovXG4gIGdldFZhcmlhbnRQcmljZURpc2NvdW50KGl0ZW06IExpbmVJdGVtKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcbiAgICByZXR1cm4gdGhpcy5hdXRoU2VydmljZS5nZXRVc2VyKCkucGlwZShcbiAgICAgIGNvbmNhdE1hcCgodXNlcikgPT5cbiAgICAgICAgaWlmKFxuICAgICAgICAgICgpID0+IHVzZXIuaXNTdWJzY3JpYmVyICYmICEhaXRlbS5wcmljZS5zdWJzY3JpYmVyUHJpY2UsXG4gICAgICAgICAgb2YoaXRlbS5wcmljZS5zdWJzY3JpYmVyUHJpY2UpLFxuICAgICAgICAgIG9mKGl0ZW0ucHJpY2UucHJpY2UpLFxuICAgICAgICApLFxuICAgICAgKSxcbiAgICAgIGNhdGNoRXJyb3IoKCkgPT4gb2YoaXRlbS5wcmljZS5wcmljZSkpLFxuICAgIClcbiAgfVxuXG4gIHJlbW92ZUl0ZW0oaXRlbTogTGluZUl0ZW0pOiBPYnNlcnZhYmxlPENhcnQ+IHtcbiAgICByZXR1cm4gdGhpcy5jaGVja291dFNlcnZpY2UuZ2V0Q2hlY2tvdXQoKS5waXBlKFxuICAgICAgbWFwKChjaGVja291dCkgPT4ge1xuICAgICAgICBjb25zdCBpbmRleCA9IGNoZWNrb3V0LmxpbmVJdGVtcy5maW5kSW5kZXgoKGxpbmVJdGVtKSA9PiBsaW5lSXRlbS5pZCA9PT0gaXRlbS5pZClcblxuICAgICAgICBpZiAoaW5kZXggPj0gMCkgY2hlY2tvdXQubGluZUl0ZW1zLnNwbGljZShpbmRleCwgMSlcblxuICAgICAgICByZXR1cm4gY2hlY2tvdXRcbiAgICAgIH0pLFxuICAgICAgY29uY2F0TWFwKChjaGVja291dCkgPT4gdGhpcy5jaGVja291dFNlcnZpY2UudXBkYXRlQ2hlY2tvdXRMaW5lSXRlbXMoY2hlY2tvdXQpKSxcbiAgICAgIG1hcCgoY2hlY2tvdXQpID0+IHRoaXMuZ2VuZXJhdGVDYXJ0T2JqZWN0KGNoZWNrb3V0LmxpbmVJdGVtcykpLFxuICAgICAgdGFwKChjYXJ0KSA9PiB0aGlzLmNhcnRTdWJqZWN0Lm5leHQoY2FydCkpLFxuICAgIClcbiAgfVxuXG4gIHVwZGF0ZVVzZXJDYXJ0KHVzZXI6IFVzZXIpOiBPYnNlcnZhYmxlPENhcnQ+IHtcbiAgICByZXR1cm4gdGhpcy5jaGVja291dFNlcnZpY2UuZ2V0Q2hlY2tvdXQoKS5waXBlKFxuICAgICAgY29uY2F0TWFwKChjaGVja291dCkgPT5cbiAgICAgICAgdGhpcy5jaGVja291dFNlcnZpY2UudXBkYXRlQ2hlY2tvdXRVc2VyKENoZWNrb3V0LnRvSW5zdGFuY2UoeyAuLi5jaGVja291dC50b1BsYWluKCksIHVzZXIgfSkpLFxuICAgICAgKSxcbiAgICAgIGNvbmNhdE1hcChhc3luYyAoY2hlY2tvdXQpID0+XG4gICAgICAgIHRoaXMuY2hlY2tvdXRTZXJ2aWNlXG4gICAgICAgICAgLnVwZGF0ZUNoZWNrb3V0TGluZUl0ZW1zKFxuICAgICAgICAgICAgQ2hlY2tvdXQudG9JbnN0YW5jZSh7XG4gICAgICAgICAgICAgIC4uLmNoZWNrb3V0LnRvUGxhaW4oKSxcbiAgICAgICAgICAgICAgbGluZUl0ZW1zOiBjaGVja291dC5saW5lSXRlbXM/Lmxlbmd0aFxuICAgICAgICAgICAgICAgID8gYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICAgICAgICAgICAgICAgIGNoZWNrb3V0LmxpbmVJdGVtcz8ubWFwKGFzeW5jIChpdGVtKSA9PiAoYXdhaXQgdGhpcy5idWlsZExpbmVJdGVtKHsgY2hlY2tvdXQsIGl0ZW0gfSkpLmxpbmVJdGVtKSxcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICA6IFtdLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgKVxuICAgICAgICAgIC50b1Byb21pc2UoKSxcbiAgICAgICksXG4gICAgICBtYXAoKGNoZWNrb3V0KSA9PiB0aGlzLmdlbmVyYXRlQ2FydE9iamVjdChjaGVja291dC5saW5lSXRlbXMpKSxcbiAgICAgIHRhcCgoY2FydCkgPT4gdGhpcy5jYXJ0U3ViamVjdC5uZXh0KGNhcnQpKSxcbiAgICApXG4gIH1cblxuICBjbGVhckNhcnQoKTogT2JzZXJ2YWJsZTxDYXJ0PiB7XG4gICAgcmV0dXJuIHRoaXMuY2hlY2tvdXRTZXJ2aWNlLmdldENoZWNrb3V0KCkucGlwZShcbiAgICAgIG1hcCgoY2hlY2tvdXQpID0+IHtcbiAgICAgICAgdGhpcy5jaGVja291dFNlcnZpY2UuY2xlYXJDaGVja291dEZyb21TZXNzaW9uKClcbiAgICAgICAgcmV0dXJuIGNoZWNrb3V0XG4gICAgICB9KSxcbiAgICAgIGNvbmNhdE1hcCgob2xkQ2hlY2tvdXQpID0+IHRoaXMuYnVpbGRDYXJ0RnJvbUNoZWNrb3V0KG9sZENoZWNrb3V0KSksXG4gICAgICB0YXAoKGNhcnQpID0+IHRoaXMuY2FydFN1YmplY3QubmV4dChjYXJ0KSksXG4gICAgKVxuICB9XG5cbiAgcHJpdmF0ZSBidWlsZENhcnRGcm9tQ2hlY2tvdXQoY2hlY2tvdXREYXRhPzogUmVxdWlyZWRDaGVja291dERhdGEpOiBPYnNlcnZhYmxlPENhcnQ+IHtcbiAgICByZXR1cm4gdGhpcy5jaGVja291dFNlcnZpY2UuZ2V0Q2hlY2tvdXQoY2hlY2tvdXREYXRhKS5waXBlKFxuICAgICAgbWFwKChjaGVja291dCkgPT4gY2hlY2tvdXQubGluZUl0ZW1zKSxcbiAgICAgIGNvbmNhdE1hcCgobGluZUl0ZW1zKSA9PiBvZih0aGlzLmdlbmVyYXRlQ2FydE9iamVjdChsaW5lSXRlbXMpKSksXG4gICAgKVxuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVMaW5lSXRlbUluQ2FydCA9IChsaW5lSXRlbTogTGluZUl0ZW0sIHF1YW50aXR5OiBudW1iZXIsIGNoZWNrb3V0PzogQ2hlY2tvdXQpOiBPYnNlcnZhYmxlPENhcnQ+ID0+XG4gICAgKGlzTmlsKGNoZWNrb3V0KSA/IHRoaXMuY2hlY2tvdXRTZXJ2aWNlLmdldENoZWNrb3V0KCkgOiBvZihjaGVja291dCkpLnBpcGUoXG4gICAgICBjb25jYXRNYXAoKGNoZWNrb3V0TG9hZGVkKSA9PiB7XG4gICAgICAgIGNvbnN0IGl0ZW1zOiBMaW5lSXRlbVtdID0gW11cbiAgICAgICAgY29uc3QgaW5kZXggPSBjaGVja291dExvYWRlZC5saW5lSXRlbXM/Lm1hcCgoY2hlY2tvdXRJdGVtKSA9PiBjaGVja291dEl0ZW0uaWQpLmluZGV4T2YobGluZUl0ZW0uaWQpXG5cbiAgICAgICAgaWYgKGluZGV4ID4gLTEpIHtcbiAgICAgICAgICBjaGVja291dExvYWRlZC5saW5lSXRlbXNbaW5kZXhdLnF1YW50aXR5ICs9IHF1YW50aXR5XG4gICAgICAgICAgY2hlY2tvdXRMb2FkZWQubGluZUl0ZW1zW2luZGV4XS5wcmljZVBhaWQgPSBsaW5lSXRlbS5wcmljZVBhaWRcbiAgICAgICAgfSBlbHNlXG4gICAgICAgICAgY2hlY2tvdXRMb2FkZWQubGluZUl0ZW1zID0gaXRlbXMuY29uY2F0KFxuICAgICAgICAgICAgY2hlY2tvdXRMb2FkZWQubGluZUl0ZW1zID8gY2hlY2tvdXRMb2FkZWQubGluZUl0ZW1zLmNvbmNhdChbbGluZUl0ZW1dKSA6IFtsaW5lSXRlbV0sXG4gICAgICAgICAgKVxuXG4gICAgICAgIHJldHVybiB0aGlzLmNoZWNrb3V0U2VydmljZVxuICAgICAgICAgIC51cGRhdGVDaGVja291dExpbmVJdGVtcyhjaGVja291dExvYWRlZClcbiAgICAgICAgICAucGlwZShtYXAoKHVwZGF0ZWRDaGVja291dCkgPT4gdGhpcy5nZW5lcmF0ZUNhcnRPYmplY3QodXBkYXRlZENoZWNrb3V0LmxpbmVJdGVtcykpKVxuICAgICAgfSksXG4gICAgKVxuXG4gIHByaXZhdGUgZ2VuZXJhdGVDYXJ0T2JqZWN0ID0gKGl0ZW1zOiBMaW5lSXRlbVtdKTogQ2FydCA9PlxuICAgIGl0ZW1zPy5yZWR1Y2UoXG4gICAgICAoY2FydCwgaXRlbSkgPT4gKHtcbiAgICAgICAgLi4uY2FydCxcbiAgICAgICAgW2l0ZW0uaWRdOiBMaW5lSXRlbS50b0luc3RhbmNlKHtcbiAgICAgICAgICAuLi4oY2FydFtpdGVtLmlkXSB8fCBpdGVtKSxcbiAgICAgICAgICBxdWFudGl0eTogKGNhcnRbaXRlbS5pZF0/LnF1YW50aXR5IHx8IDApICsgKGl0ZW0ucXVhbnRpdHkgPyBpdGVtLnF1YW50aXR5IDogMSksXG4gICAgICAgIH0pLFxuICAgICAgfSksXG4gICAgICB7fSBhcyBSZWNvcmQ8c3RyaW5nLCBMaW5lSXRlbT4sXG4gICAgKSB8fCB7fVxuXG4gIHByaXZhdGUgYnVpbGRMaW5lSXRlbSA9IGFzeW5jICh7XG4gICAgY2hlY2tvdXQsXG4gICAgaXRlbSxcbiAgICBxdWFudGl0eSxcbiAgfToge1xuICAgIGNoZWNrb3V0OiBSZXF1aXJlZENoZWNrb3V0RGF0YVxuICAgIGl0ZW06IExpbmVJdGVtXG4gICAgcXVhbnRpdHk/OiBudW1iZXJcbiAgfSk6IFByb21pc2U8eyBjaGVja291dDogUGFydGlhbDxDaGVja291dD47IGxpbmVJdGVtOiBMaW5lSXRlbSB9PiA9PiB7XG4gICAgY29uc3QgcHJvZHVjdCA9IGF3YWl0IHRoaXMuZ2V0UHJvZHVjdERhdGEoaXRlbS5pZClcblxuICAgIGl0ZW0ucXVhbnRpdHkgPSBpdGVtPy5xdWFudGl0eSB8fCBjaGVja291dD8ubGluZUl0ZW1zPy5maW5kKChsaW5lSXRlbSkgPT4gbGluZUl0ZW0uaWQgPT09IGl0ZW0uaWQpPy5xdWFudGl0eSB8fCAwXG5cbiAgICBpZiAodGhpcy5jaGVja01heFN0b2NrKGl0ZW0sIHF1YW50aXR5IHx8IDApKVxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdEZXNjdWxwZSEgVGVtb3MgYXBlbmFzICcgKyBpdGVtLnN0b2NrPy5xdWFudGl0eSArICcgZW0gZXN0b3F1ZS4nKVxuXG4gICAgY29uc3QgaW1hZ2UgPSBpdGVtLmltYWdlIHx8IGl0ZW0uaW1hZ2VzPy5zaGlmdCgpXG4gICAgY29uc3QgeyBpZCwgbmFtZSwgRUFOLCBzbHVnLCBzdG9jaywgcHJpY2UsIHdlaWdodCwgc2t1LCB0eXBlIH0gPSBpdGVtXG4gICAgY29uc3QgaXNHaWZ0ID0gaXRlbS5pc0dpZnQgfHwgbnVsbFxuICAgIGNvbnN0IHByaWNlUGFpZCA9IHRoaXMuZ2V0UHJvZHVjdFByaWNlKHtcbiAgICAgIHByb2R1Y3Q6IGl0ZW0sXG4gICAgICBzaG9wOiBjaGVja291dC5zaG9wIHx8IHRoaXMuZGVmYXVsdFNob3AsXG4gICAgICBpc1N1YnNjcmliZXI6IGNoZWNrb3V0LnVzZXI/LmlzU3Vic2NyaWJlcixcbiAgICB9KVxuXG4gICAgUm91bmRQcm9kdWN0UHJpY2VzSGVscGVyLnJvdW5kUHJvZHVjdFByaWNlcyhpdGVtKVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGNoZWNrb3V0LFxuICAgICAgbGluZUl0ZW06IExpbmVJdGVtLnRvSW5zdGFuY2Uoe1xuICAgICAgICBpZCxcbiAgICAgICAgbmFtZTogbmFtZSA/PyBwcm9kdWN0Lm5hbWUsXG4gICAgICAgIEVBTjogRUFOID8/IHByb2R1Y3QuRUFOLFxuICAgICAgICBicmFuZDogcHJvZHVjdC5icmFuZCxcbiAgICAgICAgc2x1Zzogc2x1ZyA/PyBwcm9kdWN0LnNsdWcsXG4gICAgICAgIHNrdTogc2t1ID8/IHByb2R1Y3Quc2t1LFxuICAgICAgICBzdG9jayxcbiAgICAgICAgcHJpY2U6IHRoaXMucm91bmRQcmljZShwcmljZSksXG4gICAgICAgIGltYWdlLFxuICAgICAgICB3ZWlnaHQ6IHdlaWdodCA/PyBwcm9kdWN0LndlaWdodCxcbiAgICAgICAgcXVhbnRpdHk6IChpdGVtLnF1YW50aXR5IHx8IDApICsgKHF1YW50aXR5IHx8IDApLFxuICAgICAgICBwcmljZVBhaWQsXG4gICAgICAgIGNhdGVnb3JpZXM6IHByb2R1Y3QuY2F0ZWdvcmllcyA/PyBbXSxcbiAgICAgICAgaXNHaWZ0OiBpc0dpZnQgPz8gbnVsbCxcbiAgICAgICAgY29zdFByaWNlOiBwcm9kdWN0LmNvc3RQcmljZSA/PyAwLFxuICAgICAgICB0eXBlLFxuICAgICAgfSksXG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSByb3VuZFByaWNlKHByb2R1Y3RQcmljZTogU2hvcFByaWNlKTogU2hvcFByaWNlIHtcbiAgICBjb25zdCB7IHByaWNlLCBmdWxsUHJpY2UsIHN1YnNjcmliZXJQcmljZSB9ID0gcHJvZHVjdFByaWNlXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnByb2R1Y3RQcmljZSxcbiAgICAgIHByaWNlOiBOdW1iZXIocHJpY2UudG9GaXhlZCgyKSksXG4gICAgICBmdWxsUHJpY2U6IE51bWJlcihmdWxsUHJpY2UudG9GaXhlZCgyKSksXG4gICAgICAuLi4oc3Vic2NyaWJlclByaWNlICYmIHsgc3Vic2NyaWJlclByaWNlOiBOdW1iZXIoc3Vic2NyaWJlclByaWNlLnRvRml4ZWQoMikpIH0pLFxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZ2V0UHJvZHVjdERhdGEocHJvZHVjdElkOiBzdHJpbmcpOiBQcm9taXNlPFBhcnRpYWw8UHJvZHVjdD4+IHtcbiAgICBsZXQgcHJvZHVjdDogUHJvZHVjdFxuICAgIGxldCB2YXJpYW50OiBWYXJpYW50XG5cbiAgICB0cnkge1xuICAgICAgcHJvZHVjdCA9IGF3YWl0IHRoaXMucHJvZHVjdFJlcG9zaXRvcnkuZ2V0KHsgaWQ6IHByb2R1Y3RJZCB9KVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBpZiAoIShlcnJvciBpbnN0YW5jZW9mIE5vdEZvdW5kRXJyb3IpKSB0aHJvdyBlcnJvclxuXG4gICAgICBjb25zdCB7IGRhdGE6IHZhcmlhbnRzIH0gPSBhd2FpdCB0aGlzLnZhcmlhbnRSZXBvc2l0b3J5LmZpbmQoeyBmaWx0ZXJzOiB7IGlkOiBwcm9kdWN0SWQgfSB9KVxuXG4gICAgICB2YXJpYW50ID0gdmFyaWFudHMuc2hpZnQoKVxuXG4gICAgICBpZiAoIXZhcmlhbnQpIHRocm93IGVycm9yXG5cbiAgICAgIHByb2R1Y3QgPSBhd2FpdCB0aGlzLnByb2R1Y3RSZXBvc2l0b3J5LmdldCh7IGlkOiB2YXJpYW50LnByb2R1Y3RJZCB9KVxuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICAuLi5wcm9kdWN0LnRvUGxhaW4oKSxcbiAgICAgIC4uLih2YXJpYW50ICYmIHsgLi4udmFyaWFudC50b1BsYWluKCkgfSksXG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRQcm9kdWN0UHJpY2UgPSAoe1xuICAgIHByb2R1Y3QsXG4gICAgaXNTdWJzY3JpYmVyLFxuICB9OiB7XG4gICAgcHJvZHVjdDogTGluZUl0ZW1cbiAgICBzaG9wOiBTaG9wc1xuICAgIGlzU3Vic2NyaWJlcjogYm9vbGVhblxuICB9KTogbnVtYmVyID0+IHtcbiAgICBjb25zdCBpbmZvID0gcHJvZHVjdC5wcmljZVxuXG4gICAgaWYgKHByb2R1Y3QuaXNHaWZ0KSByZXR1cm4gMFxuXG4gICAgcmV0dXJuIGlzU3Vic2NyaWJlciAmJiBpbmZvLnN1YnNjcmliZXJQcmljZSA+IDBcbiAgICAgID8gTnVtYmVyKGluZm8uc3Vic2NyaWJlclByaWNlLnRvRml4ZWQoMikpXG4gICAgICA6IE51bWJlcihpbmZvLnByaWNlLnRvRml4ZWQoMikpXG4gIH1cblxuICBwcml2YXRlIGNoZWNrTWF4U3RvY2sgPSAoaXRlbTogTGluZUl0ZW0sIHF1YW50aXR5OiBudW1iZXIpID0+IHtcbiAgICBjb25zdCBtYXhTdG9jayA9IGl0ZW0uc3RvY2s/LnF1YW50aXR5IHx8IDBcbiAgICBjb25zdCBjdXJyZW50SXRlbUFtb3VudCA9IGl0ZW0ucXVhbnRpdHkgfHwgMFxuXG4gICAgcmV0dXJuIGN1cnJlbnRJdGVtQW1vdW50ICsgcXVhbnRpdHkgPiBtYXhTdG9ja1xuICB9XG5cbiAgZ2V0R2lmdHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuY2hlY2tvdXRTZXJ2aWNlLmdldENoZWNrb3V0KCkucGlwZShcbiAgICAgIG1lcmdlTWFwKGFzeW5jIChjaGVja291dCkgPT4ge1xuICAgICAgICBjb25zdCBub3RHaWZ0SXRlbXM6IExpbmVJdGVtW10gPSBjaGVja291dC5saW5lSXRlbXMgPyBjaGVja291dC5saW5lSXRlbXMuZmlsdGVyKChpdGVtKSA9PiAhaXRlbS5pc0dpZnQpIDogW11cblxuICAgICAgICBpZiAoIW5vdEdpZnRJdGVtcy5sZW5ndGgpIHJldHVybiB7IC4uLmNoZWNrb3V0LCBsaW5lSXRlbXM6IFtdIH0gYXMgQ2hlY2tvdXRcblxuICAgICAgICBjb25zdCBjYXJ0VG90YWwgPSBub3RHaWZ0SXRlbXMucmVkdWNlKChhLCBiKSA9PiBhICsgYi5wcmljZVBhaWQgKiBiLnF1YW50aXR5LCAwKVxuXG4gICAgICAgIGNvbnN0IGNhbXBhaWducyA9IGF3YWl0IHRoaXMuYnV5MldpblJlcG9zaXRvcnlcbiAgICAgICAgICAuZmluZCh7XG4gICAgICAgICAgICBmaWx0ZXJzOiB7XG4gICAgICAgICAgICAgIGFjdGl2ZTogeyBvcGVyYXRvcjogV2hlcmUuRVFVQUxTLCB2YWx1ZTogdHJ1ZSB9LFxuICAgICAgICAgICAgICBzaG9wOiB7IG9wZXJhdG9yOiBXaGVyZS5FUVVBTFMsIHZhbHVlOiB0aGlzLmRlZmF1bHRTaG9wIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0pXG4gICAgICAgICAgLnRoZW4oKGRhdGEpID0+IGRhdGEuZGF0YSlcblxuICAgICAgICBpZiAoIWNhbXBhaWducy5sZW5ndGgpIHJldHVybiB7IC4uLmNoZWNrb3V0LCBsaW5lSXRlbXM6IG5vdEdpZnRJdGVtcyB9IGFzIENoZWNrb3V0XG5cbiAgICAgICAgY29uc3QgZWxlZ2libGVDYW1wYWlnbnM6IEJ1eTJXaW5bXSA9IFtdXG5cbiAgICAgICAgZm9yIChjb25zdCBjYW1wYWlnbiBvZiBjYW1wYWlnbnMpIHtcbiAgICAgICAgICBjb25zdCB0b2RheSA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpXG5cbiAgICAgICAgICBpZiAoIShjYW1wYWlnbi5zdGFydERhdGUuZ2V0VGltZSgpIDw9IHRvZGF5KSAmJiAhKGNhbXBhaWduLmVuZERhdGUuZ2V0VGltZSgpID49IHRvZGF5KSkgY29udGludWVcblxuICAgICAgICAgIGlmIChjYW1wYWlnbi5hY3RpdmVDYXRlZ29yeSkge1xuICAgICAgICAgICAgY29uc3QgY2F0ZWdvcmllc0NhbXBhaW5nID0gY2FtcGFpZ24uY2F0ZWdvcmllcy5tYXAoKGMpID0+IGMuaWQudG9TdHJpbmcoKSlcbiAgICAgICAgICAgIGNvbnN0IGNhdGVnb3JpZXNDYW1wYWluZ0Z1bGxUcmVlID0gW11cblxuICAgICAgICAgICAgZm9yIChjb25zdCBpZCBvZiBjYXRlZ29yaWVzQ2FtcGFpbmcpIHtcbiAgICAgICAgICAgICAgY29uc3QgY2hpbGRyZW4gPSBhd2FpdCB0aGlzLmNhdGVnb3J5UmVwb3NpdG9yeS5nZXRDaGlsZHJlbihwYXJzZUludChpZCkpXG5cbiAgICAgICAgICAgICAgY2F0ZWdvcmllc0NhbXBhaW5nRnVsbFRyZWUucHVzaChpZCwgLi4uY2hpbGRyZW4ubWFwKChjKSA9PiBjLmlkLnRvU3RyaW5nKCkpKVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBjYXRlZ29yaWVzQ2FtcGFpbmdUcmVlID0gWy4uLm5ldyBTZXQoY2F0ZWdvcmllc0NhbXBhaW5nRnVsbFRyZWUpXVxuICAgICAgICAgICAgY29uc3QgZmlsdGVyUHJvZHVjdHNDYXRlZ29yaWVzID0gY2hlY2tvdXQubGluZUl0ZW1zLmZpbHRlcigobCkgPT4ge1xuICAgICAgICAgICAgICBpZiAoIWwuY2F0ZWdvcmllcyB8fCAhbC5jYXRlZ29yaWVzPy5sZW5ndGgpIHJldHVybiB0cnVlXG5cbiAgICAgICAgICAgICAgcmV0dXJuIGwuY2F0ZWdvcmllcy5zb21lKChjKSA9PiBjYXRlZ29yaWVzQ2FtcGFpbmdUcmVlLnNvbWUoKGNhdCkgPT4gY2F0ID09IGMpKVxuICAgICAgICAgICAgfSlcblxuICAgICAgICAgICAgaWYgKGZpbHRlclByb2R1Y3RzQ2F0ZWdvcmllcy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgY29uc3QgY2FydFRvdGFsQ2F0ZWdvcmllcyA9IGZpbHRlclByb2R1Y3RzQ2F0ZWdvcmllcy5yZWR1Y2UoKGEsIGIpID0+IGEgKyBiLnByaWNlUGFpZCAqIGIucXVhbnRpdHksIDApXG5cbiAgICAgICAgICAgICAgaWYgKGNhcnRUb3RhbENhdGVnb3JpZXMgPj0gY2FtcGFpZ24uY2FydFZhbHVlTWluKSBlbGVnaWJsZUNhbXBhaWducy5wdXNoKGNhbXBhaWduKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoY2FtcGFpZ24uY2FydFZhbHVlICYmIGNhbXBhaWduLmNhcnRWYWx1ZSA+IDApIHtcbiAgICAgICAgICAgICAgaWYgKGNhbXBhaWduLmNhcnRWYWx1ZSA8PSBjYXJ0VG90YWwpIGVsZWdpYmxlQ2FtcGFpZ25zLnB1c2goY2FtcGFpZ24pXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFlbGVnaWJsZUNhbXBhaWducy5sZW5ndGgpIHJldHVybiB7IC4uLmNoZWNrb3V0LCBsaW5lSXRlbXM6IG5vdEdpZnRJdGVtcyB9IGFzIENoZWNrb3V0XG5cbiAgICAgICAgY29uc3QgY2FtcGFpbmduUHJvZHVjdHM6IFByb2R1Y3RbXVtdID0gW11cblxuICAgICAgICBmb3IgKGNvbnN0IGNhbXBhaWduIG9mIGVsZWdpYmxlQ2FtcGFpZ25zKSB7XG4gICAgICAgICAgbGV0IGVsZWdpYmxlUHJvZHVjdHMgPSBbXVxuXG4gICAgICAgICAgZm9yIChjb25zdCBwcm9kdWN0IG9mIGNhbXBhaWduLnByb2R1Y3RzKSB7XG4gICAgICAgICAgICBjb25zdCB7IGRhdGE6IHByb2R1Y3REYXRhIH0gPSBhd2FpdCB0aGlzLnByb2R1Y3RSZXBvc2l0b3J5LmZpbmQoeyBmaWx0ZXJzOiB7IHNrdTogcHJvZHVjdCB9IH0pXG5cbiAgICAgICAgICAgIGlmICghcHJvZHVjdERhdGEubGVuZ3RoKSBjb250aW51ZVxuXG4gICAgICAgICAgICBjb25zdCBnaWZ0ID0gcHJvZHVjdERhdGEuc2hpZnQoKVxuXG4gICAgICAgICAgICBpZiAoZ2lmdC5zdG9jay5xdWFudGl0eSA8IDEpIGNvbnRpbnVlXG5cbiAgICAgICAgICAgIGVsZWdpYmxlUHJvZHVjdHMucHVzaChnaWZ0KVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGNhbXBhaW5nblByb2R1Y3RzLnB1c2goZWxlZ2libGVQcm9kdWN0cylcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghY2FtcGFpbmduUHJvZHVjdHMubGVuZ3RoKSByZXR1cm4geyAuLi5jaGVja291dCwgbGluZUl0ZW1zOiBub3RHaWZ0SXRlbXMgfSBhcyBDaGVja291dFxuXG4gICAgICAgIGNvbnN0IGdpZnRzID0gdGhpcy5naWZ0VG9MaW5lSXRlbXMoW10uY29uY2F0KC4uLmNhbXBhaW5nblByb2R1Y3RzKSlcblxuICAgICAgICByZXR1cm4geyAuLi5jaGVja291dCwgbGluZUl0ZW1zOiBub3RHaWZ0SXRlbXMuY29uY2F0KGdpZnRzKSB9XG4gICAgICB9KSxcbiAgICAgIGNvbmNhdE1hcCgoY2hlY2tvdXQpID0+IHRoaXMuY2hlY2tvdXRTZXJ2aWNlLnVwZGF0ZUNoZWNrb3V0TGluZUl0ZW1zKGNoZWNrb3V0KSksXG4gICAgICBtYXAoKGNoZWNrb3V0KSA9PiB0aGlzLmdlbmVyYXRlQ2FydE9iamVjdChjaGVja291dC5saW5lSXRlbXMpKSxcbiAgICAgIHRhcCgoY2FydCkgPT4gdGhpcy5jYXJ0U3ViamVjdC5uZXh0KGNhcnQpKSxcbiAgICApXG4gIH1cblxuICBwcml2YXRlIGdpZnRUb0xpbmVJdGVtcyhpdGVtczogUHJvZHVjdFtdKTogTGluZUl0ZW1bXSB7XG4gICAgcmV0dXJuIGl0ZW1zLm1hcCgoaXRlbSkgPT4ge1xuICAgICAgY29uc3QgeyBicmFuZCwgY2F0ZWdvcmllcywgaWQsIG5hbWUsIHByaWNlLCBza3UsIHNsdWcsIHN0b2NrLCB3ZWlnaHQsIEVBTiB9ID0gaXRlbVxuXG4gICAgICBjb25zdCBpbWFnZSA9IGl0ZW0/Lm1pbmlhdHVyZXM/Lmxlbmd0aCA/IGl0ZW0ubWluaWF0dXJlc1swXSA6IGl0ZW0uaW1hZ2VzWzBdXG5cbiAgICAgIHJldHVybiBMaW5lSXRlbS50b0luc3RhbmNlKHtcbiAgICAgICAgYnJhbmQsXG4gICAgICAgIGNhdGVnb3JpZXMsXG4gICAgICAgIGlkOiBpZC50b1N0cmluZygpLFxuICAgICAgICBuYW1lLFxuICAgICAgICBwcmljZSxcbiAgICAgICAgc2t1LFxuICAgICAgICBzbHVnLFxuICAgICAgICBzdG9jayxcbiAgICAgICAgd2VpZ2h0LFxuICAgICAgICBFQU4sXG4gICAgICAgIGltYWdlLFxuICAgICAgICBwcmljZVBhaWQ6IDAsXG4gICAgICAgIHF1YW50aXR5OiAxLFxuICAgICAgICBpc0dpZnQ6IHRydWUsXG4gICAgICB9KVxuICAgIH0pXG4gIH1cbn1cbiJdfQ==
|
|
280
|
+
}] }] });
|
|
281
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FydC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29ubmVjdC1hbmd1bGFyL3NyYy9zZXJ2aWNlcy9jYXJ0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDbEQsT0FBTyxFQUVMLDBCQUEwQixFQUUxQixRQUFRLEVBQ1IsS0FBSyxFQUNMLFFBQVEsRUFDUixhQUFhLEVBR2Isd0JBQXdCLEVBRXhCLEtBQUssRUFJTCxLQUFLLEdBQ04sTUFBTSxtQkFBbUIsQ0FBQTtBQUMxQixPQUFPLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBYyxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQ3pELE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDMUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUN4QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDNUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFBOzs7OztBQVFwRCxNQUFNLE9BQU8sV0FBVztJQUd0QixZQUNtQixXQUF3QixFQUN4QixlQUFnQyxFQUNWLFdBQWtCLEVBQ1gsaUJBQW9DLEVBQ25DLGtCQUFzQyxFQUN2QyxpQkFBb0MsRUFDcEMsaUJBQTZDO1FBTjFFLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNWLGdCQUFXLEdBQVgsV0FBVyxDQUFPO1FBQ1gsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNuQyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3ZDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7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R0FBRztnQkFDSCxLQUFLO2dCQUNMLFNBQVMsRUFBRSxDQUFDO2dCQUNaLFFBQVEsRUFBRSxDQUFDO2dCQUNYLE1BQU0sRUFBRSxJQUFJO2FBQ2IsQ0FBQyxDQUFBO1FBQ0osQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDOzhHQWhYVSxXQUFXLDRFQU1aLFlBQVksYUFDWixtQkFBbUIsYUFDbkIsb0JBQW9CLGFBQ3BCLG1CQUFtQixhQUNuQixtQkFBbUI7a0hBVmxCLFdBQVc7OzJGQUFYLFdBQVc7a0JBRHZCLFVBQVU7OzBCQU9OLE1BQU07MkJBQUMsWUFBWTs7MEJBQ25CLE1BQU07MkJBQUMsbUJBQW1COzswQkFDMUIsTUFBTTsyQkFBQyxvQkFBb0I7OzBCQUMzQixNQUFNOzJCQUFDLG1CQUFtQjs7MEJBQzFCLE1BQU07MkJBQUMsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuaW1wb3J0IHtcclxuICBCdXkyV2luLFxyXG4gIEJ1eTJXaW5GaXJlc3RvcmVSZXBvc2l0b3J5LFxyXG4gIENhdGVnb3J5UmVwb3NpdG9yeSxcclxuICBDaGVja291dCxcclxuICBpc05pbCxcclxuICBMaW5lSXRlbSxcclxuICBOb3RGb3VuZEVycm9yLFxyXG4gIFByb2R1Y3QsXHJcbiAgUHJvZHVjdFJlcG9zaXRvcnksXHJcbiAgUm91bmRQcm9kdWN0UHJpY2VzSGVscGVyLFxyXG4gIFNob3BQcmljZSxcclxuICBTaG9wcyxcclxuICBVc2VyLFxyXG4gIFZhcmlhbnQsXHJcbiAgVmFyaWFudFJlcG9zaXRvcnksXHJcbiAgV2hlcmUsXHJcbn0gZnJvbSAnQGluZnJhYjRhL2Nvbm5lY3QnXHJcbmltcG9ydCB7IGZyb20sIGlpZiwgT2JzZXJ2YWJsZSwgb2YsIFN1YmplY3QgfSBmcm9tICdyeGpzJ1xyXG5pbXBvcnQgeyBjYXRjaEVycm9yLCBjb25jYXRNYXAsIG1hcCwgbWVyZ2VNYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xyXG5pbXBvcnQgeyBERUZBVUxUX1NIT1AgfSBmcm9tICcuLi9jb25zdHMnXHJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi9hdXRoLnNlcnZpY2UnXHJcbmltcG9ydCB7IENoZWNrb3V0U2VydmljZSB9IGZyb20gJy4vY2hlY2tvdXQuc2VydmljZSdcclxuaW1wb3J0IHsgUmVxdWlyZWRDaGVja291dERhdGEgfSBmcm9tICcuL3R5cGVzJ1xyXG5cclxuZXhwb3J0IHR5cGUgQ2FydCA9IHtcclxuICBbaWQ6IHN0cmluZ106IExpbmVJdGVtXHJcbn1cclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIENhcnRTZXJ2aWNlIHtcclxuICBwcml2YXRlIGNhcnRTdWJqZWN0OiBTdWJqZWN0PENhcnQ+ID0gbmV3IFN1YmplY3QoKVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBjaGVja291dFNlcnZpY2U6IENoZWNrb3V0U2VydmljZSxcclxuICAgIEBJbmplY3QoREVGQVVMVF9TSE9QKSBwcml2YXRlIHJlYWRvbmx5IGRlZmF1bHRTaG9wOiBTaG9wcyxcclxuICAgIEBJbmplY3QoJ1Byb2R1Y3RSZXBvc2l0b3J5JykgcHJpdmF0ZSByZWFkb25seSBwcm9kdWN0UmVwb3NpdG9yeTogUHJvZHVjdFJlcG9zaXRvcnksXHJcbiAgICBASW5qZWN0KCdDYXRlZ29yeVJlcG9zaXRvcnknKSBwcml2YXRlIHJlYWRvbmx5IGNhdGVnb3J5UmVwb3NpdG9yeTogQ2F0ZWdvcnlSZXBvc2l0b3J5LFxyXG4gICAgQEluamVjdCgnVmFyaWFudFJlcG9zaXRvcnknKSBwcml2YXRlIHJlYWRvbmx5IHZhcmlhbnRSZXBvc2l0b3J5OiBWYXJpYW50UmVwb3NpdG9yeSxcclxuICAgIEBJbmplY3QoJ0J1eTJXaW5SZXBvc2l0b3J5JykgcHJpdmF0ZSByZWFkb25seSBidXkyV2luUmVwb3NpdG9yeTogQnV5MldpbkZpcmVzdG9yZVJlcG9zaXRvcnksXHJcbiAgKSB7fVxyXG5cclxuICBhZGRJdGVtKGl0ZW06IExpbmVJdGVtLCBxdWFudGl0eTogbnVtYmVyID0gMSk6IE9ic2VydmFibGU8Q2FydD4ge1xyXG4gICAgcmV0dXJuIGZyb20odGhpcy5jaGVja291dFNlcnZpY2UuZ2V0Q2hlY2tvdXQoKSkucGlwZShcclxuICAgICAgY29uY2F0TWFwKGFzeW5jIChjaGVja291dCkgPT4gYXdhaXQgdGhpcy5idWlsZExpbmVJdGVtKHsgY2hlY2tvdXQsIGl0ZW0sIHF1YW50aXR5OiBxdWFudGl0eSB8fCAxIH0pKSxcclxuICAgICAgbWVyZ2VNYXAoKHsgY2hlY2tvdXQsIGxpbmVJdGVtIH0pID0+IHRoaXMudXBkYXRlTGluZUl0ZW1JbkNhcnQobGluZUl0ZW0sIHF1YW50aXR5IHx8IDEsIGNoZWNrb3V0IGFzIENoZWNrb3V0KSksXHJcbiAgICAgIHRhcCgoY2FydCkgPT4gdGhpcy5jYXJ0U3ViamVjdC5uZXh0KGNhcnQpKSxcclxuICAgIClcclxuICB9XHJcblxyXG4gIGRlY3JlYXNlSXRlbShpdGVtOiBMaW5lSXRlbSk6IE9ic2VydmFibGU8Q2FydD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuY2hlY2tvdXRTZXJ2aWNlLmdldENoZWNrb3V0KCkucGlwZShcclxuICAgICAgbWFwKChjaGVja291dCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGNoZWNrb3V0SXRlbSA9IGNoZWNrb3V0LmxpbmVJdGVtcz8uZmluZCgobGluZUl0ZW0pID0+IGxpbmVJdGVtLmlkID09PSBpdGVtLmlkKVxyXG5cclxuICAgICAgICBpZiAoIWlzTmlsKGNoZWNrb3V0SXRlbSkpIGNoZWNrb3V0SXRlbS5xdWFudGl0eSAtPSBjaGVja291dEl0ZW0ucXVhbnRpdHkgPiAxID8gMSA6IDBcclxuXHJcbiAgICAgICAgcmV0dXJuIGNoZWNrb3V0XHJcbiAgICAgIH0pLFxyXG4gICAgICBjb25jYXRNYXAoKGNoZWNrb3V0KSA9PiB0aGlzLmNoZWNrb3V0U2VydmljZS51cGRhdGVDaGVja291dExpbmVJdGVtcyhjaGVja291dCkpLFxyXG4gICAgICBtYXAoKGNoZWNrb3V0KSA9PiB0aGlzLmdlbmVyYXRlQ2FydE9iamVjdChjaGVja291dC5saW5lSXRlbXMpKSxcclxuICAgICAgdGFwKChjYXJ0KSA9PiB0aGlzLmNhcnRTdWJqZWN0Lm5leHQoY2FydCkpLFxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgZ2V0Q2FydChjaGVja291dD86IFJlcXVpcmVkQ2hlY2tvdXREYXRhKTogT2JzZXJ2YWJsZTxDYXJ0PiB7XHJcbiAgICB0aGlzLmJ1aWxkQ2FydEZyb21DaGVja291dChjaGVja291dCkuc3Vic2NyaWJlKChjYXJ0KSA9PiB0aGlzLmNhcnRTdWJqZWN0Lm5leHQoY2FydCkpXHJcblxyXG4gICAgcmV0dXJuIHRoaXMuY2FydFN1YmplY3RcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEBkZXByZWNhdGVkIFRoZSBtZXRob2Qgc2hvdWxkIG5vdCBiZSB1c2VkXHJcbiAgICovXHJcbiAgZ2V0VmFyaWFudFByaWNlRGlzY291bnQoaXRlbTogTGluZUl0ZW0pOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuYXV0aFNlcnZpY2UuZ2V0VXNlcigpLnBpcGUoXHJcbiAgICAgIGNvbmNhdE1hcCgodXNlcikgPT5cclxuICAgICAgICBpaWYoXHJcbiAgICAgICAgICAoKSA9PiB1c2VyLmlzU3Vic2NyaWJlciAmJiAhIWl0ZW0ucHJpY2Uuc3Vic2NyaWJlclByaWNlLFxyXG4gICAgICAgICAgb2YoaXRlbS5wcmljZS5zdWJzY3JpYmVyUHJpY2UpLFxyXG4gICAgICAgICAgb2YoaXRlbS5wcmljZS5wcmljZSksXHJcbiAgICAgICAgKSxcclxuICAgICAgKSxcclxuICAgICAgY2F0Y2hFcnJvcigoKSA9PiBvZihpdGVtLnByaWNlLnByaWNlKSksXHJcbiAgICApXHJcbiAgfVxyXG5cclxuICByZW1vdmVJdGVtKGl0ZW06IExpbmVJdGVtKTogT2JzZXJ2YWJsZTxDYXJ0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5jaGVja291dFNlcnZpY2UuZ2V0Q2hlY2tvdXQoKS5waXBlKFxyXG4gICAgICBtYXAoKGNoZWNrb3V0KSA9PiB7XHJcbiAgICAgICAgY29uc3QgaW5kZXggPSBjaGVja291dC5saW5lSXRlbXMuZmluZEluZGV4KChsaW5lSXRlbSkgPT4gbGluZUl0ZW0uaWQgPT09IGl0ZW0uaWQpXHJcblxyXG4gICAgICAgIGlmIChpbmRleCA+PSAwKSBjaGVja291dC5saW5lSXRlbXMuc3BsaWNlKGluZGV4LCAxKVxyXG5cclxuICAgICAgICByZXR1cm4gY2hlY2tvdXRcclxuICAgICAgfSksXHJcbiAgICAgIGNvbmNhdE1hcCgoY2hlY2tvdXQpID0+IHRoaXMuY2hlY2tvdXRTZXJ2aWNlLnVwZGF0ZUNoZWNrb3V0TGluZUl0ZW1zKGNoZWNrb3V0KSksXHJcbiAgICAgIG1hcCgoY2hlY2tvdXQpID0+IHRoaXMuZ2VuZXJhdGVDYXJ0T2JqZWN0KGNoZWNrb3V0LmxpbmVJdGVtcykpLFxyXG4gICAgICB0YXAoKGNhcnQpID0+IHRoaXMuY2FydFN1YmplY3QubmV4dChjYXJ0KSksXHJcbiAgICApXHJcbiAgfVxyXG5cclxuICB1cGRhdGVVc2VyQ2FydCh1c2VyOiBVc2VyKTogT2JzZXJ2YWJsZTxDYXJ0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5jaGVja291dFNlcnZpY2UuZ2V0Q2hlY2tvdXQoKS5waXBlKFxyXG4gICAgICBjb25jYXRNYXAoKGNoZWNrb3V0KSA9PlxyXG4gICAgICAgIHRoaXMuY2hlY2tvdXRTZXJ2aWNlLnVwZGF0ZUNoZWNrb3V0VXNlcihDaGVja291dC50b0luc3RhbmNlKHsgLi4uY2hlY2tvdXQudG9QbGFpbigpLCB1c2VyIH0pKSxcclxuICAgICAgKSxcclxuICAgICAgY29uY2F0TWFwKGFzeW5jIChjaGVja291dCkgPT5cclxuICAgICAgICB0aGlzLmNoZWNrb3V0U2VydmljZVxyXG4gICAgICAgICAgLnVwZGF0ZUNoZWNrb3V0TGluZUl0ZW1zKFxyXG4gICAgICAgICAgICBDaGVja291dC50b0luc3RhbmNlKHtcclxuICAgICAgICAgICAgICAuLi5jaGVja291dC50b1BsYWluKCksXHJcbiAgICAgICAgICAgICAgbGluZUl0ZW1zOiBjaGVja291dC5saW5lSXRlbXM/Lmxlbmd0aFxyXG4gICAgICAgICAgICAgICAgPyBhd2FpdCBQcm9taXNlLmFsbChcclxuICAgICAgICAgICAgICAgICAgICBjaGVja291dC5saW5lSXRlbXM/Lm1hcChhc3luYyAoaXRlbSkgPT4gKGF3YWl0IHRoaXMuYnVpbGRMaW5lSXRlbSh7IGNoZWNrb3V0LCBpdGVtIH0pKS5saW5lSXRlbSksXHJcbiAgICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgIDogW10sXHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgKVxyXG4gICAgICAgICAgLnRvUHJvbWlzZSgpLFxyXG4gICAgICApLFxyXG4gICAgICBtYXAoKGNoZWNrb3V0KSA9PiB0aGlzLmdlbmVyYXRlQ2FydE9iamVjdChjaGVja291dC5saW5lSXRlbXMpKSxcclxuICAgICAgdGFwKChjYXJ0KSA9PiB0aGlzLmNhcnRTdWJqZWN0Lm5leHQoY2FydCkpLFxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgY2xlYXJDYXJ0KCk6IE9ic2VydmFibGU8Q2FydD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuY2hlY2tvdXRTZXJ2aWNlLmdldENoZWNrb3V0KCkucGlwZShcclxuICAgICAgbWFwKChjaGVja291dCkgPT4ge1xyXG4gICAgICAgIHRoaXMuY2hlY2tvdXRTZXJ2aWNlLmNsZWFyQ2hlY2tvdXRGcm9tU2Vzc2lvbigpXHJcbiAgICAgICAgcmV0dXJuIGNoZWNrb3V0XHJcbiAgICAgIH0pLFxyXG4gICAgICBjb25jYXRNYXAoKG9sZENoZWNrb3V0KSA9PiB0aGlzLmJ1aWxkQ2FydEZyb21DaGVja291dChvbGRDaGVja291dCkpLFxyXG4gICAgICB0YXAoKGNhcnQpID0+IHRoaXMuY2FydFN1YmplY3QubmV4dChjYXJ0KSksXHJcbiAgICApXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGJ1aWxkQ2FydEZyb21DaGVja291dChjaGVja291dERhdGE/OiBSZXF1aXJlZENoZWNrb3V0RGF0YSk6IE9ic2VydmFibGU8Q2FydD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuY2hlY2tvdXRTZXJ2aWNlLmdldENoZWNrb3V0KGNoZWNrb3V0RGF0YSkucGlwZShcclxuICAgICAgbWFwKChjaGVja291dCkgPT4gY2hlY2tvdXQubGluZUl0ZW1zKSxcclxuICAgICAgY29uY2F0TWFwKChsaW5lSXRlbXMpID0+IG9mKHRoaXMuZ2VuZXJhdGVDYXJ0T2JqZWN0KGxpbmVJdGVtcykpKSxcclxuICAgIClcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlTGluZUl0ZW1JbkNhcnQgPSAobGluZUl0ZW06IExpbmVJdGVtLCBxdWFudGl0eTogbnVtYmVyLCBjaGVja291dD86IENoZWNrb3V0KTogT2JzZXJ2YWJsZTxDYXJ0PiA9PlxyXG4gICAgKGlzTmlsKGNoZWNrb3V0KSA/IHRoaXMuY2hlY2tvdXRTZXJ2aWNlLmdldENoZWNrb3V0KCkgOiBvZihjaGVja291dCkpLnBpcGUoXHJcbiAgICAgIGNvbmNhdE1hcCgoY2hlY2tvdXRMb2FkZWQpID0+IHtcclxuICAgICAgICBjb25zdCBpdGVtczogTGluZUl0ZW1bXSA9IFtdXHJcbiAgICAgICAgY29uc3QgaW5kZXggPSBjaGVja291dExvYWRlZC5saW5lSXRlbXM/Lm1hcCgoY2hlY2tvdXRJdGVtKSA9PiBjaGVja291dEl0ZW0uaWQpLmluZGV4T2YobGluZUl0ZW0uaWQpXHJcblxyXG4gICAgICAgIGlmIChpbmRleCA+IC0xKSB7XHJcbiAgICAgICAgICBjaGVja291dExvYWRlZC5saW5lSXRlbXNbaW5kZXhdLnF1YW50aXR5ICs9IHF1YW50aXR5XHJcbiAgICAgICAgICBjaGVja291dExvYWRlZC5saW5lSXRlbXNbaW5kZXhdLnByaWNlUGFpZCA9IGxpbmVJdGVtLnByaWNlUGFpZFxyXG4gICAgICAgIH0gZWxzZVxyXG4gICAgICAgICAgY2hlY2tvdXRMb2FkZWQubGluZUl0ZW1zID0gaXRlbXMuY29uY2F0KFxyXG4gICAgICAgICAgICBjaGVja291dExvYWRlZC5saW5lSXRlbXMgPyBjaGVja291dExvYWRlZC5saW5lSXRlbXMuY29uY2F0KFtsaW5lSXRlbV0pIDogW2xpbmVJdGVtXSxcclxuICAgICAgICAgIClcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY2hlY2tvdXRTZXJ2aWNlXHJcbiAgICAgICAgICAudXBkYXRlQ2hlY2tvdXRMaW5lSXRlbXMoY2hlY2tvdXRMb2FkZWQpXHJcbiAgICAgICAgICAucGlwZShtYXAoKHVwZGF0ZWRDaGVja291dCkgPT4gdGhpcy5nZW5lcmF0ZUNhcnRPYmplY3QodXBkYXRlZENoZWNrb3V0LmxpbmVJdGVtcykpKVxyXG4gICAgICB9KSxcclxuICAgIClcclxuXHJcbiAgcHJpdmF0ZSBnZW5lcmF0ZUNhcnRPYmplY3QgPSAoaXRlbXM6IExpbmVJdGVtW10pOiBDYXJ0ID0+XHJcbiAgICBpdGVtcz8ucmVkdWNlKFxyXG4gICAgICAoY2FydCwgaXRlbSkgPT4gKHtcclxuICAgICAgICAuLi5jYXJ0LFxyXG4gICAgICAgIFtpdGVtLmlkXTogTGluZUl0ZW0udG9JbnN0YW5jZSh7XHJcbiAgICAgICAgICAuLi4oY2FydFtpdGVtLmlkXSB8fCBpdGVtKSxcclxuICAgICAgICAgIHF1YW50aXR5OiAoY2FydFtpdGVtLmlkXT8ucXVhbnRpdHkgfHwgMCkgKyAoaXRlbS5xdWFudGl0eSA/IGl0ZW0ucXVhbnRpdHkgOiAxKSxcclxuICAgICAgICB9KSxcclxuICAgICAgfSksXHJcbiAgICAgIHt9IGFzIFJlY29yZDxzdHJpbmcsIExpbmVJdGVtPixcclxuICAgICkgfHwge31cclxuXHJcbiAgcHJpdmF0ZSBidWlsZExpbmVJdGVtID0gYXN5bmMgKHtcclxuICAgIGNoZWNrb3V0LFxyXG4gICAgaXRlbSxcclxuICAgIHF1YW50aXR5LFxyXG4gIH06IHtcclxuICAgIGNoZWNrb3V0OiBSZXF1aXJlZENoZWNrb3V0RGF0YVxyXG4gICAgaXRlbTogTGluZUl0ZW1cclxuICAgIHF1YW50aXR5PzogbnVtYmVyXHJcbiAgfSk6IFByb21pc2U8eyBjaGVja291dDogUGFydGlhbDxDaGVja291dD47IGxpbmVJdGVtOiBMaW5lSXRlbSB9PiA9PiB7XHJcbiAgICBjb25zdCBwcm9kdWN0ID0gYXdhaXQgdGhpcy5nZXRQcm9kdWN0RGF0YShpdGVtLmlkKVxyXG5cclxuICAgIGl0ZW0ucXVhbnRpdHkgPSBpdGVtPy5xdWFudGl0eSB8fCBjaGVja291dD8ubGluZUl0ZW1zPy5maW5kKChsaW5lSXRlbSkgPT4gbGluZUl0ZW0uaWQgPT09IGl0ZW0uaWQpPy5xdWFudGl0eSB8fCAwXHJcblxyXG4gICAgaWYgKHRoaXMuY2hlY2tNYXhTdG9jayhpdGVtLCBxdWFudGl0eSB8fCAwKSlcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdEZXNjdWxwZSEgVGVtb3MgYXBlbmFzICcgKyBpdGVtLnN0b2NrPy5xdWFudGl0eSArICcgZW0gZXN0b3F1ZS4nKVxyXG5cclxuICAgIGNvbnN0IGltYWdlID0gaXRlbS5pbWFnZSB8fCBpdGVtLmltYWdlcz8uc2hpZnQoKVxyXG4gICAgY29uc3QgeyBpZCwgbmFtZSwgRUFOLCBzbHVnLCBzdG9jaywgcHJpY2UsIHdlaWdodCwgc2t1LCB0eXBlIH0gPSBpdGVtXHJcbiAgICBjb25zdCBpc0dpZnQgPSBpdGVtLmlzR2lmdCB8fCBudWxsXHJcbiAgICBjb25zdCBwcmljZVBhaWQgPSB0aGlzLmdldFByb2R1Y3RQcmljZSh7XHJcbiAgICAgIHByb2R1Y3Q6IGl0ZW0sXHJcbiAgICAgIHNob3A6IGNoZWNrb3V0LnNob3AgfHwgdGhpcy5kZWZhdWx0U2hvcCxcclxuICAgICAgaXNTdWJzY3JpYmVyOiBjaGVja291dC51c2VyPy5pc1N1YnNjcmliZXIsXHJcbiAgICB9KVxyXG5cclxuICAgIFJvdW5kUHJvZHVjdFByaWNlc0hlbHBlci5yb3VuZFByb2R1Y3RQcmljZXMoaXRlbSlcclxuXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBjaGVja291dCxcclxuICAgICAgbGluZUl0ZW06IExpbmVJdGVtLnRvSW5zdGFuY2Uoe1xyXG4gICAgICAgIGlkLFxyXG4gICAgICAgIG5hbWU6IG5hbWUgPz8gcHJvZHVjdC5uYW1lLFxyXG4gICAgICAgIEVBTjogRUFOID8/IHByb2R1Y3QuRUFOLFxyXG4gICAgICAgIGJyYW5kOiBwcm9kdWN0LmJyYW5kLFxyXG4gICAgICAgIHNsdWc6IHNsdWcgPz8gcHJvZHVjdC5zbHVnLFxyXG4gICAgICAgIHNrdTogc2t1ID8/IHByb2R1Y3Quc2t1LFxyXG4gICAgICAgIHN0b2NrLFxyXG4gICAgICAgIHByaWNlOiB0aGlzLnJvdW5kUHJpY2UocHJpY2UpLFxyXG4gICAgICAgIGltYWdlLFxyXG4gICAgICAgIHdlaWdodDogd2VpZ2h0ID8/IHByb2R1Y3Qud2VpZ2h0LFxyXG4gICAgICAgIHF1YW50aXR5OiAoaXRlbS5xdWFudGl0eSB8fCAwKSArIChxdWFudGl0eSB8fCAwKSxcclxuICAgICAgICBwcmljZVBhaWQsXHJcbiAgICAgICAgY2F0ZWdvcmllczogcHJvZHVjdC5jYXRlZ29yaWVzID8/IFtdLFxyXG4gICAgICAgIGlzR2lmdDogaXNHaWZ0ID8/IG51bGwsXHJcbiAgICAgICAgY29zdFByaWNlOiBwcm9kdWN0LmNvc3RQcmljZSA/PyAwLFxyXG4gICAgICAgIHR5cGUsXHJcbiAgICAgIH0pLFxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByb3VuZFByaWNlKHByb2R1Y3RQcmljZTogU2hvcFByaWNlKTogU2hvcFByaWNlIHtcclxuICAgIGNvbnN0IHsgcHJpY2UsIGZ1bGxQcmljZSwgc3Vic2NyaWJlclByaWNlIH0gPSBwcm9kdWN0UHJpY2VcclxuICAgIHJldHVybiB7XHJcbiAgICAgIC4uLnByb2R1Y3RQcmljZSxcclxuICAgICAgcHJpY2U6IE51bWJlcihwcmljZS50b0ZpeGVkKDIpKSxcclxuICAgICAgZnVsbFByaWNlOiBOdW1iZXIoZnVsbFByaWNlLnRvRml4ZWQoMikpLFxyXG4gICAgICAuLi4oc3Vic2NyaWJlclByaWNlICYmIHsgc3Vic2NyaWJlclByaWNlOiBOdW1iZXIoc3Vic2NyaWJlclByaWNlLnRvRml4ZWQoMikpIH0pLFxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBnZXRQcm9kdWN0RGF0YShwcm9kdWN0SWQ6IHN0cmluZyk6IFByb21pc2U8UGFydGlhbDxQcm9kdWN0Pj4ge1xyXG4gICAgbGV0IHByb2R1Y3Q6IFByb2R1Y3RcclxuICAgIGxldCB2YXJpYW50OiBWYXJpYW50XHJcblxyXG4gICAgdHJ5IHtcclxuICAgICAgcHJvZHVjdCA9IGF3YWl0IHRoaXMucHJvZHVjdFJlcG9zaXRvcnkuZ2V0KHsgaWQ6IHByb2R1Y3RJZCB9KVxyXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgaWYgKCEoZXJyb3IgaW5zdGFuY2VvZiBOb3RGb3VuZEVycm9yKSkgdGhyb3cgZXJyb3JcclxuXHJcbiAgICAgIGNvbnN0IHsgZGF0YTogdmFyaWFudHMgfSA9IGF3YWl0IHRoaXMudmFyaWFudFJlcG9zaXRvcnkuZmluZCh7IGZpbHRlcnM6IHsgaWQ6IHByb2R1Y3RJZCB9IH0pXHJcblxyXG4gICAgICB2YXJpYW50ID0gdmFyaWFudHMuc2hpZnQoKVxyXG5cclxuICAgICAgaWYgKCF2YXJpYW50KSB0aHJvdyBlcnJvclxyXG5cclxuICAgICAgcHJvZHVjdCA9IGF3YWl0IHRoaXMucHJvZHVjdFJlcG9zaXRvcnkuZ2V0KHsgaWQ6IHZhcmlhbnQucHJvZHVjdElkIH0pXHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgLi4ucHJvZHVjdC50b1BsYWluKCksXHJcbiAgICAgIC4uLih2YXJpYW50ICYmIHsgLi4udmFyaWFudC50b1BsYWluKCkgfSksXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFByb2R1Y3RQcmljZSA9ICh7XHJcbiAgICBwcm9kdWN0LFxyXG4gICAgaXNTdWJzY3JpYmVyLFxyXG4gIH06IHtcclxuICAgIHByb2R1Y3Q6IExpbmVJdGVtXHJcbiAgICBzaG9wOiBTaG9wc1xyXG4gICAgaXNTdWJzY3JpYmVyOiBib29sZWFuXHJcbiAgfSk6IG51bWJlciA9PiB7XHJcbiAgICBjb25zdCBpbmZvID0gcHJvZHVjdC5wcmljZVxyXG5cclxuICAgIGlmIChwcm9kdWN0LmlzR2lmdCkgcmV0dXJuIDBcclxuXHJcbiAgICByZXR1cm4gaXNTdWJzY3JpYmVyICYmIGluZm8uc3Vic2NyaWJlclByaWNlID4gMFxyXG4gICAgICA/IE51bWJlcihpbmZvLnN1YnNjcmliZXJQcmljZS50b0ZpeGVkKDIpKVxyXG4gICAgICA6IE51bWJlcihpbmZvLnByaWNlLnRvRml4ZWQoMikpXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNoZWNrTWF4U3RvY2sgPSAoaXRlbTogTGluZUl0ZW0sIHF1YW50aXR5OiBudW1iZXIpID0+IHtcclxuICAgIGNvbnN0IG1heFN0b2NrID0gaXRlbS5zdG9jaz8ucXVhbnRpdHkgfHwgMFxyXG4gICAgY29uc3QgY3VycmVudEl0ZW1BbW91bnQgPSBpdGVtLnF1YW50aXR5IHx8IDBcclxuXHJcbiAgICByZXR1cm4gY3VycmVudEl0ZW1BbW91bnQgKyBxdWFudGl0eSA+IG1heFN0b2NrXHJcbiAgfVxyXG5cclxuICBnZXRHaWZ0cygpIHtcclxuICAgIHJldHVybiB0aGlzLmNoZWNrb3V0U2VydmljZS5nZXRDaGVja291dCgpLnBpcGUoXHJcbiAgICAgIG1lcmdlTWFwKGFzeW5jIChjaGVja291dCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IG5vdEdpZnRJdGVtczogTGluZUl0ZW1bXSA9IGNoZWNrb3V0LmxpbmVJdGVtcyA/IGNoZWNrb3V0LmxpbmVJdGVtcy5maWx0ZXIoKGl0ZW0pID0+ICFpdGVtLmlzR2lmdCkgOiBbXVxyXG5cclxuICAgICAgICBpZiAoIW5vdEdpZnRJdGVtcy5sZW5ndGgpIHJldHVybiB7IC4uLmNoZWNrb3V0LCBsaW5lSXRlbXM6IFtdIH0gYXMgQ2hlY2tvdXRcclxuXHJcbiAgICAgICAgY29uc3QgY2FydFRvdGFsID0gbm90R2lmdEl0ZW1zLnJlZHVjZSgoYSwgYikgPT4gYSArIGIucHJpY2VQYWlkICogYi5xdWFudGl0eSwgMClcclxuXHJcbiAgICAgICAgY29uc3QgY2FtcGFpZ25zID0gYXdhaXQgdGhpcy5idXkyV2luUmVwb3NpdG9yeVxyXG4gICAgICAgICAgLmZpbmQoe1xyXG4gICAgICAgICAgICBmaWx0ZXJzOiB7XHJcbiAgICAgICAgICAgICAgYWN0aXZlOiB7IG9wZXJhdG9yOiBXaGVyZS5FUVVBTFMsIHZhbHVlOiB0cnVlIH0sXHJcbiAgICAgICAgICAgICAgc2hvcDogeyBvcGVyYXRvcjogV2hlcmUuRVFVQUxTLCB2YWx1ZTogdGhpcy5kZWZhdWx0U2hvcCB9LFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgIC50aGVuKChkYXRhKSA9PiBkYXRhLmRhdGEpXHJcblxyXG4gICAgICAgIGlmICghY2FtcGFpZ25zLmxlbmd0aCkgcmV0dXJuIHsgLi4uY2hlY2tvdXQsIGxpbmVJdGVtczogbm90R2lmdEl0ZW1zIH0gYXMgQ2hlY2tvdXRcclxuXHJcbiAgICAgICAgY29uc3QgZWxlZ2libGVDYW1wYWlnbnM6IEJ1eTJXaW5bXSA9IFtdXHJcblxyXG4gICAgICAgIGZvciAoY29uc3QgY2FtcGFpZ24gb2YgY2FtcGFpZ25zKSB7XHJcbiAgICAgICAgICBjb25zdCB0b2RheSA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpXHJcblxyXG4gICAgICAgICAgaWYgKCEoY2FtcGFpZ24uc3RhcnREYXRlLmdldFRpbWUoKSA8PSB0b2RheSkgJiYgIShjYW1wYWlnbi5lbmREYXRlLmdldFRpbWUoKSA+PSB0b2RheSkpIGNvbnRpbnVlXHJcblxyXG4gICAgICAgICAgaWYgKGNhbXBhaWduLmFjdGl2ZUNhdGVnb3J5KSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGNhdGVnb3JpZXNDYW1wYWluZyA9IGNhbXBhaWduLmNhdGVnb3JpZXMubWFwKChjKSA9PiBjLmlkLnRvU3RyaW5nKCkpXHJcbiAgICAgICAgICAgIGNvbnN0IGNhdGVnb3JpZXNDYW1wYWluZ0Z1bGxUcmVlID0gW11cclxuXHJcbiAgICAgICAgICAgIGZvciAoY29uc3QgaWQgb2YgY2F0ZWdvcmllc0NhbXBhaW5nKSB7XHJcbiAgICAgICAgICAgICAgY29uc3QgY2hpbGRyZW4gPSBhd2FpdCB0aGlzLmNhdGVnb3J5UmVwb3NpdG9yeS5nZXRDaGlsZHJlbihwYXJzZUludChpZCkpXHJcblxyXG4gICAgICAgICAgICAgIGNhdGVnb3JpZXNDYW1wYWluZ0Z1bGxUcmVlLnB1c2goaWQsIC4uLmNoaWxkcmVuLm1hcCgoYykgPT4gYy5pZC50b1N0cmluZygpKSlcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgY29uc3QgY2F0ZWdvcmllc0NhbXBhaW5nVHJlZSA9IFsuLi5uZXcgU2V0KGNhdGVnb3JpZXNDYW1wYWluZ0Z1bGxUcmVlKV1cclxuICAgICAgICAgICAgY29uc3QgZmlsdGVyUHJvZHVjdHNDYXRlZ29yaWVzID0gY2hlY2tvdXQubGluZUl0ZW1zLmZpbHRlcigobCkgPT4ge1xyXG4gICAgICAgICAgICAgIGlmICghbC5jYXRlZ29yaWVzIHx8ICFsLmNhdGVnb3JpZXM/Lmxlbmd0aCkgcmV0dXJuIHRydWVcclxuXHJcbiAgICAgICAgICAgICAgcmV0dXJuIGwuY2F0ZWdvcmllcy5zb21lKChjKSA9PiBjYXRlZ29yaWVzQ2FtcGFpbmdUcmVlLnNvbWUoKGNhdCkgPT4gY2F0ID09IGMpKVxyXG4gICAgICAgICAgICB9KVxyXG5cclxuICAgICAgICAgICAgaWYgKGZpbHRlclByb2R1Y3RzQ2F0ZWdvcmllcy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICBjb25zdCBjYXJ0VG90YWxDYXRlZ29yaWVzID0gZmlsdGVyUHJvZHVjdHNDYXRlZ29yaWVzLnJlZHVjZSgoYSwgYikgPT4gYSArIGIucHJpY2VQYWlkICogYi5xdWFudGl0eSwgMClcclxuXHJcbiAgICAgICAgICAgICAgaWYgKGNhcnRUb3RhbENhdGVnb3JpZXMgPj0gY2FtcGFpZ24uY2FydFZhbHVlTWluKSBlbGVnaWJsZUNhbXBhaWducy5wdXNoKGNhbXBhaWduKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBpZiAoY2FtcGFpZ24uY2FydFZhbHVlICYmIGNhbXBhaWduLmNhcnRWYWx1ZSA+IDApIHtcclxuICAgICAgICAgICAgICBpZiAoY2FtcGFpZ24uY2FydFZhbHVlIDw9IGNhcnRUb3RhbCkgZWxlZ2libGVDYW1wYWlnbnMucHVzaChjYW1wYWlnbilcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKCFlbGVnaWJsZUNhbXBhaWducy5sZW5ndGgpIHJldHVybiB7IC4uLmNoZWNrb3V0LCBsaW5lSXRlbXM6IG5vdEdpZnRJdGVtcyB9IGFzIENoZWNrb3V0XHJcblxyXG4gICAgICAgIGNvbnN0IGNhbXBhaW5nblByb2R1Y3RzOiBQcm9kdWN0W11bXSA9IFtdXHJcblxyXG4gICAgICAgIGZvciAoY29uc3QgY2FtcGFpZ24gb2YgZWxlZ2libGVDYW1wYWlnbnMpIHtcclxuICAgICAgICAgIGxldCBlbGVnaWJsZVByb2R1Y3RzID0gW11cclxuXHJcbiAgICAgICAgICBmb3IgKGNvbnN0IHByb2R1Y3Qgb2YgY2FtcGFpZ24ucHJvZHVjdHMpIHtcclxuICAgICAgICAgICAgY29uc3QgeyBkYXRhOiBwcm9kdWN0RGF0YSB9ID0gYXdhaXQgdGhpcy5wcm9kdWN0UmVwb3NpdG9yeS5maW5kKHsgZmlsdGVyczogeyBza3U6IHByb2R1Y3QgfSB9KVxyXG5cclxuICAgICAgICAgICAgaWYgKCFwcm9kdWN0RGF0YS5sZW5ndGgpIGNvbnRpbnVlXHJcblxyXG4gICAgICAgICAgICBjb25zdCBnaWZ0ID0gcHJvZHVjdERhdGEuc2hpZnQoKVxyXG5cclxuICAgICAgICAgICAgaWYgKGdpZnQuc3RvY2sucXVhbnRpdHkgPCAxKSBjb250aW51ZVxyXG5cclxuICAgICAgICAgICAgZWxlZ2libGVQcm9kdWN0cy5wdXNoKGdpZnQpXHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgY2FtcGFpbmduUHJvZHVjdHMucHVzaChlbGVnaWJsZVByb2R1Y3RzKVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKCFjYW1wYWluZ25Qcm9kdWN0cy5sZW5ndGgpIHJldHVybiB7IC4uLmNoZWNrb3V0LCBsaW5lSXRlbXM6IG5vdEdpZnRJdGVtcyB9IGFzIENoZWNrb3V0XHJcblxyXG4gICAgICAgIGNvbnN0IGdpZnRzID0gdGhpcy5naWZ0VG9MaW5lSXRlbXMoW10uY29uY2F0KC4uLmNhbXBhaW5nblByb2R1Y3RzKSlcclxuXHJcbiAgICAgICAgcmV0dXJuIHsgLi4uY2hlY2tvdXQsIGxpbmVJdGVtczogbm90R2lmdEl0ZW1zLmNvbmNhdChnaWZ0cykgfVxyXG4gICAgICB9KSxcclxuICAgICAgY29uY2F0TWFwKChjaGVja291dCkgPT4gdGhpcy5jaGVja291dFNlcnZpY2UudXBkYXRlQ2hlY2tvdXRMaW5lSXRlbXMoY2hlY2tvdXQpKSxcclxuICAgICAgbWFwKChjaGVja291dCkgPT4gdGhpcy5nZW5lcmF0ZUNhcnRPYmplY3QoY2hlY2tvdXQubGluZUl0ZW1zKSksXHJcbiAgICAgIHRhcCgoY2FydCkgPT4gdGhpcy5jYXJ0U3ViamVjdC5uZXh0KGNhcnQpKSxcclxuICAgIClcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2lmdFRvTGluZUl0ZW1zKGl0ZW1zOiBQcm9kdWN0W10pOiBMaW5lSXRlbVtdIHtcclxuICAgIHJldHVybiBpdGVtcy5tYXAoKGl0ZW0pID0+IHtcclxuICAgICAgY29uc3QgeyBicmFuZCwgY2F0ZWdvcmllcywgaWQsIG5hbWUsIHByaWNlLCBza3UsIHNsdWcsIHN0b2NrLCB3ZWlnaHQsIEVBTiB9ID0gaXRlbVxyXG5cclxuICAgICAgY29uc3QgaW1hZ2UgPSBpdGVtPy5taW5pYXR1cmVzPy5sZW5ndGggPyBpdGVtLm1pbmlhdHVyZXNbMF0gOiBpdGVtLmltYWdlc1swXVxyXG5cclxuICAgICAgcmV0dXJuIExpbmVJdGVtLnRvSW5zdGFuY2Uoe1xyXG4gICAgICAgIGJyYW5kLFxyXG4gICAgICAgIGNhdGVnb3JpZXMsXHJcbiAgICAgICAgaWQ6IGlkLnRvU3RyaW5nKCksXHJcbiAgICAgICAgbmFtZSxcclxuICAgICAgICBwcmljZSxcclxuICAgICAgICBza3UsXHJcbiAgICAgICAgc2x1ZyxcclxuICAgICAgICBzdG9jayxcclxuICAgICAgICB3ZWlnaHQsXHJcbiAgICAgICAgRUFOLFxyXG4gICAgICAgIGltYWdlLFxyXG4gICAgICAgIHByaWNlUGFpZDogMCxcclxuICAgICAgICBxdWFudGl0eTogMSxcclxuICAgICAgICBpc0dpZnQ6IHRydWUsXHJcbiAgICAgIH0pXHJcbiAgICB9KVxyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcnktc3RydWN0dXJlLmFkYXB0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0LWFuZ3VsYXIvc3JjL3NlcnZpY2VzL2NhdGFsb2cvYWRhcHRlcnMvY2F0ZWdvcnktc3RydWN0dXJlLmFkYXB0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENhdGVnb3J5LCBQcm9kdWN0LCBSZXBvc2l0b3J5RmluZEZpZWx0ZXJzIH0gZnJvbSAnQGluZnJhYjRhL2Nvbm5lY3QvJ1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDYXRlZ29yeVN0cnVjdHVyZUFkYXB0ZXIge1xyXG4gIGJ1aWxkUHJvZHVjdEZpbHRlckJ5Q2F0ZWdvcnkoY2F0ZWdvcnk6IENhdGVnb3J5KTogUHJvbWlzZTxSZXBvc2l0b3J5RmluZEZpZWx0ZXJzPFByb2R1Y3Q+PlxyXG59XHJcbiJdfQ==
|