ng-easycommerce-v18 0.3.16-beta.1 → 0.3.17-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/README.md +4 -4
- package/esm2022/lib/classes/filters/dynamics-filter.mjs +23 -31
- package/esm2022/lib/classes/filters/filter.mjs +3 -12
- package/esm2022/lib/classes/filters/price_range-filter.mjs +1 -1
- package/esm2022/lib/ec-components/abstractions-components/menu-ec.component.mjs +17 -1
- package/esm2022/lib/ec-components/filters-ec/filters-ec.component.mjs +31 -6
- package/esm2022/lib/ec-components/header-ec/header-ec.component.mjs +1 -1
- package/esm2022/lib/ec-services/filters.service.mjs +19 -54
- package/esm2022/lib/ec-services/pagination.service.mjs +6 -17
- package/esm2022/lib/ec-services/products.service.mjs +3 -10
- package/esm2022/lib/interfaces/filter.mjs +1 -1
- package/esm2022/lib/interfaces/options.mjs +1 -1
- package/fesm2022/ng-easycommerce-v18.mjs +95 -124
- package/fesm2022/ng-easycommerce-v18.mjs.map +1 -1
- package/lib/classes/filters/dynamics-filter.d.ts +2 -2
- package/lib/classes/filters/filter.d.ts +0 -1
- package/lib/ec-components/abstractions-components/menu-ec.component.d.ts +12 -0
- package/lib/ec-components/filters-ec/filters-ec.component.d.ts +12 -4
- package/lib/ec-components/header-ec/header-ec.component.d.ts +1 -1
- package/lib/ec-services/filters.service.d.ts +1 -14
- package/lib/ec-services/pagination.service.d.ts +0 -2
- package/lib/interfaces/filter.d.ts +1 -0
- package/lib/interfaces/options.d.ts +2 -0
- package/package.json +1 -1
|
@@ -15,8 +15,6 @@ export class FiltersService {
|
|
|
15
15
|
environmentInjector = inject(EnvironmentInjector);
|
|
16
16
|
_optionsFilters = ['all'];
|
|
17
17
|
_defaultFilters = [];
|
|
18
|
-
_filtersInView = new BehaviorSubject(null);
|
|
19
|
-
filtersInView$ = this._filtersInView.asObservable();
|
|
20
18
|
_paginationSettings = {
|
|
21
19
|
value: '',
|
|
22
20
|
type: '',
|
|
@@ -41,17 +39,12 @@ export class FiltersService {
|
|
|
41
39
|
*/
|
|
42
40
|
generateFinalApi(search_value) {
|
|
43
41
|
let extra_params = '';
|
|
44
|
-
|
|
45
|
-
const extra =
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
extra_params += extra;
|
|
51
|
-
}
|
|
52
|
-
if (search_value) {
|
|
53
|
-
extra_params += `&criteria[search][type]=contains&criteria[search][value]=${encodeURIComponent(search_value)}`;
|
|
54
|
-
}
|
|
42
|
+
this._filtersSubject.value.forEach(filter => {
|
|
43
|
+
const extra = filter.toUrlParams();
|
|
44
|
+
extra.split('=')[1] != '' ? extra_params += extra : null;
|
|
45
|
+
});
|
|
46
|
+
if (search_value)
|
|
47
|
+
extra_params += ('&criteria[search][type]=contains&criteria[search][value]=' + search_value);
|
|
55
48
|
return this.productsFilterApi(extra_params);
|
|
56
49
|
}
|
|
57
50
|
isUpdated(paginationSettings) {
|
|
@@ -70,24 +63,26 @@ export class FiltersService {
|
|
|
70
63
|
setFilters(paginationSettings, search_value) {
|
|
71
64
|
this._paginationSettings = paginationSettings;
|
|
72
65
|
let final_filters = [];
|
|
73
|
-
|
|
66
|
+
let filtersToProcess = this._optionsFilters?.includes('all')
|
|
74
67
|
? ['attributes', 'categories', 'dynamics', 'sort', 'price_range']
|
|
75
68
|
: this._optionsFilters;
|
|
76
69
|
runInInjectionContext(this.environmentInjector, () => {
|
|
77
70
|
const filterFactory = new FilterFactory();
|
|
78
71
|
filtersToProcess?.forEach(filterType => {
|
|
79
72
|
const filter = filterFactory.create(filterType, paginationSettings);
|
|
80
|
-
if (filter)
|
|
73
|
+
if (filter) {
|
|
81
74
|
final_filters.push(filter);
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
// console.warn(`❌ Failed to create filter for type: ${filterType}`);
|
|
78
|
+
}
|
|
82
79
|
});
|
|
83
80
|
});
|
|
84
|
-
this._defaultFilters?.forEach(
|
|
85
|
-
|
|
86
|
-
|
|
81
|
+
this._defaultFilters?.forEach(filterDefault => {
|
|
82
|
+
let filter = final_filters.find(filter => filter.type() == filterDefault.filter_type);
|
|
83
|
+
filter && filterDefault.codes.forEach(value => filter.setSelected(value));
|
|
87
84
|
});
|
|
88
85
|
this._filtersSubject.next(final_filters);
|
|
89
|
-
if (!this._readySubject.value)
|
|
90
|
-
this._readySubject.next(true);
|
|
91
86
|
}
|
|
92
87
|
getFilters(paginationSettings) {
|
|
93
88
|
if (this._filtersInitialized)
|
|
@@ -126,13 +121,12 @@ export class FiltersService {
|
|
|
126
121
|
setFilterSelected(filterObj, filterElem) {
|
|
127
122
|
let final_filters = this._filtersSubject.value;
|
|
128
123
|
if (filterObj.type() !== 'price_range') {
|
|
129
|
-
|
|
124
|
+
let index = final_filters.findIndex(filter => filter.type() == filterObj.type());
|
|
130
125
|
final_filters[index].setSelected(filterElem, filterElem.value || filterElem.code);
|
|
126
|
+
console.log(index, final_filters);
|
|
131
127
|
}
|
|
132
128
|
this._filtersSubject.next(final_filters);
|
|
133
|
-
|
|
134
|
-
this._filtersInView.next(filterElem);
|
|
135
|
-
}
|
|
129
|
+
// }
|
|
136
130
|
}
|
|
137
131
|
updateFilters(paginationFilters) {
|
|
138
132
|
const claves = Object.keys(paginationFilters);
|
|
@@ -165,35 +159,6 @@ export class FiltersService {
|
|
|
165
159
|
pr.setSelected(min, max);
|
|
166
160
|
this._filtersSubject.next([...filters]);
|
|
167
161
|
}
|
|
168
|
-
setOptionsFilters(filters) {
|
|
169
|
-
this._optionsFilters = filters?.length ? filters : ['all'];
|
|
170
|
-
}
|
|
171
|
-
setDefaultFilters(defaults) {
|
|
172
|
-
this._defaultFilters = defaults || [];
|
|
173
|
-
}
|
|
174
|
-
hydrateDynamics(options) {
|
|
175
|
-
if (!options)
|
|
176
|
-
return;
|
|
177
|
-
const filters = this._filtersSubject.value || [];
|
|
178
|
-
const dyn = filters.find(f => f.type() === 'dynamics');
|
|
179
|
-
if (!dyn?.setContent)
|
|
180
|
-
return;
|
|
181
|
-
dyn.setContent(options);
|
|
182
|
-
this._filtersSubject.next([...filters]);
|
|
183
|
-
// Si querés que ready$ represente "filtros listos para render (incluye dinámicos)"
|
|
184
|
-
if (!this._readySubject.value)
|
|
185
|
-
this._readySubject.next(true);
|
|
186
|
-
}
|
|
187
|
-
/**
|
|
188
|
-
* @description redirecciona segun la url del filtro.
|
|
189
|
-
* @param filterElem No hace nada por ahora, es para mantener el mismo formato que como se usa en collection
|
|
190
|
-
* @param data Filtro que se usa para redireccion
|
|
191
|
-
*/
|
|
192
|
-
setFilterSelectedByPath(filterElem, data, router) {
|
|
193
|
-
if (!router || !data?.path)
|
|
194
|
-
return;
|
|
195
|
-
router.navigateByUrl(data.path);
|
|
196
|
-
}
|
|
197
162
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FiltersService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
198
163
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FiltersService, providedIn: 'root' });
|
|
199
164
|
}
|
|
@@ -203,4 +168,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
203
168
|
providedIn: 'root'
|
|
204
169
|
}]
|
|
205
170
|
}], ctorParameters: () => [] });
|
|
206
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVycy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLXNlcnZpY2VzL2ZpbHRlcnMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRixPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ25ELE9BQU8sRUFBVSxhQUFhLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFbkQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sY0FBYyxDQUFDOztBQU16RSxNQUFNLE9BQU8sY0FBYztJQUNmLFVBQVUsR0FBd0IsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDOUQsT0FBTyxHQUF5QixNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQUM3RCxlQUFlLEdBQThCLElBQUksZUFBZSxDQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQ2hGLFFBQVEsR0FBeUIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUVwRSxjQUFjLEdBQTRCLElBQUksZUFBZSxDQUFTLEVBQUUsQ0FBQyxDQUFDO0lBQzNFLE9BQU8sR0FBdUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUVoRSxhQUFhLEdBQTZCLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO0lBQy9FLE1BQU0sR0FBd0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUUvRCxtQkFBbUIsR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQTtJQUVqRCxlQUFlLEdBQTJCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbEQsZUFBZSxHQUFvQixFQUFFLENB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LEVBQUUsQ0FBQztRQUNqRCxNQUFNLEdBQUcsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxLQUFLLFVBQVUsQ0FBUSxDQUFDO1FBQzlELElBQUksQ0FBQyxHQUFHLEVBQUUsVUFBVTtZQUFFLE9BQU87UUFFN0IsR0FBRyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN4QixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUV4QyxtRkFBbUY7UUFDbkYsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSztZQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksdUJBQXVCLENBQUMsVUFBeUIsRUFBRSxJQUFzQixFQUFFLE1BQVk7UUFDMUYsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJO1lBQUUsT0FBTztRQUNuQyxNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNwQyxDQUFDO3dHQWhOUSxjQUFjOzRHQUFkLGNBQWMsY0FGWCxNQUFNOzs0RkFFVCxjQUFjO2tCQUgxQixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVudmlyb25tZW50SW5qZWN0b3IsIGluamVjdCwgSW5qZWN0YWJsZSwgcnVuSW5JbmplY3Rpb25Db250ZXh0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEZpbHRlciwgRmlsdGVyRmFjdG9yeSB9IGZyb20gJy4uL2NsYXNzZXMnO1xuaW1wb3J0IHsgRGVmYXVsdEZpbHRlciwgRmlsdGVyRWxlbWVudCwgUGFnaW5hdGlvblNldHRpbmdzLCBGaWx0ZXJUeXBlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBBcGlDb25zdGFudHNTZXJ2aWNlLCBDb3JlQ29uc3RhbnRzU2VydmljZSB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBQcmljZVJhbmdlRmlsdGVyIH0gZnJvbSAnLi4vY2xhc3Nlcy9maWx0ZXJzL3ByaWNlX3JhbmdlLWZpbHRlcic7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgRmlsdGVyc1NlcnZpY2Uge1xuICAgIHByaXZhdGUgX2FwaUNvbnN0czogQXBpQ29uc3RhbnRzU2VydmljZSA9IGluamVjdChBcGlDb25zdGFudHNTZXJ2aWNlKTtcbiAgICBwcml2YXRlIF9jb25zdHM6IENvcmVDb25zdGFudHNTZXJ2aWNlID0gaW5qZWN0KENvcmVDb25zdGFudHNTZXJ2aWNlKTtcbiAgICBwcml2YXRlIF9maWx0ZXJzU3ViamVjdDogQmVoYXZpb3JTdWJqZWN0PEZpbHRlcltdPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RmlsdGVyW10+KFtdKTtcbiAgICBwdWJsaWMgZmlsdGVycyQ6IE9ic2VydmFibGU8RmlsdGVyW10+ID0gdGhpcy5fZmlsdGVyc1N1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG5cbiAgICBwcml2YXRlIF9hcGlVcmxTdWJqZWN0OiBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignJyk7XG4gICAgcHVibGljIGFwaVVybCQ6IE9ic2VydmFibGU8c3RyaW5nPiA9IHRoaXMuX2FwaVVybFN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG5cbiAgICBwcml2YXRlIF9yZWFkeVN1YmplY3Q6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICAgIHB1YmxpYyByZWFkeSQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSB0aGlzLl9yZWFkeVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG5cbiAgICBwcml2YXRlIGVudmlyb25tZW50SW5qZWN0b3IgPSBpbmplY3QoRW52aXJvbm1lbnRJbmplY3RvcilcblxuICAgIHByaXZhdGUgX29wdGlvbnNGaWx0ZXJzOiAoRmlsdGVyVHlwZSB8ICdhbGwnKVtdID0gWydhbGwnXTtcbiAgICBwcml2YXRlIF9kZWZhdWx0RmlsdGVyczogRGVmYXVsdEZpbHRlcltdID0gW107XG5cbiAgICBwcml2YXRlIF9maWx0ZXJzSW5WaWV3ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxGaWx0ZXJFbGVtZW50IHwgbnVsbD4obnVsbCk7XG4gICAgcHVibGljIGZpbHRlcnNJblZpZXckID0gdGhpcy5fZmlsdGVyc0luVmlldy5hc09ic2VydmFibGUoKTtcblxuICAgIHByaXZhdGUgX3BhZ2luYXRpb25TZXR0aW5nczogUGFnaW5hdGlvblNldHRpbmdzID0ge1xuICAgICAgICB2YWx1ZTogJycsXG4gICAgICAgIHR5cGU6ICcnLFxuICAgICAgICBsaW1pdDogMFxuICAgIH07XG5cbiAgICBwcml2YXRlIF9maWx0ZXJzSW5pdGlhbGl6ZWQgPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICAvL3RoaXMuX2RlZmF1bHRGaWx0ZXJzID0gdGhpcy5fY29uc3RzLmdldERlZmF1bHRGaWx0ZXJzKClcbiAgICB9XG5cbiAgICAvL0FQSSBVUkxcbiAgICAvKipcbiAgICAgKiBSZXRvcm5hIGxhIHVybCBwYXJhIGVsIGZpbHRyYWRvXG4gICAgICogQHBhcmFtIGZpbHRlcnMgXG4gICAgICogQHJldHVybnMgXG4gICAgICovXG4gICAgcHJvZHVjdHNGaWx0ZXJBcGkoZmlsdGVycyA9ICcnKSB7IHJldHVybiAnc2hvcC1hcGkvJyArIHRoaXMuX2FwaUNvbnN0cy5DSEFOTkVMICsgJy9wcm9kdWN0LXNlYXJjaC8nICsgJz9sb2NhbGU9JyArIHRoaXMuX2FwaUNvbnN0cy5MT0NBTEUgKyBmaWx0ZXJzIH07XG4gICAgLyoqXG4gICAgICogQXJtYSBsb3MgZmlsdHJvcyB5IHJldG9ybmEgbGEgdXJsIGNvbXBsZXRhIGNvbiBsb3MgZmlsdHJvcyBhcGxpY2Fkb3MuXG4gICAgICogQHBhcmFtIHNlYXJjaF92YWx1ZSB2YWxvciBhIGJ1c2NhclxuICAgICAqIEByZXR1cm5zIFxuICAgICAqL1xuICAgIGdlbmVyYXRlRmluYWxBcGkoc2VhcmNoX3ZhbHVlPzogc3RyaW5nKSB7XG4gICAgICAgIGxldCBleHRyYV9wYXJhbXMgPSAnJztcblxuICAgICAgICBmb3IgKGNvbnN0IGZpbHRlciBvZiB0aGlzLl9maWx0ZXJzU3ViamVjdC52YWx1ZSkge1xuICAgICAgICAgICAgY29uc3QgZXh0cmEgPSAoZmlsdGVyPy50b1VybFBhcmFtcz8uKCkgfHwgJycpLnRyaW0oKTtcbiAgICAgICAgICAgIGlmICghZXh0cmEpIGNvbnRpbnVlO1xuXG4gICAgICAgICAgICBjb25zdCBhZnRlckVxID0gZXh0cmEuaW5jbHVkZXMoJz0nKSA/IGV4dHJhLnNwbGl0KCc9JylbMV0gOiBleHRyYS5yZXBsYWNlKC9eJi8sICcnKTtcbiAgICAgICAgICAgIGlmIChhZnRlckVxICE9PSAnJykgZXh0cmFfcGFyYW1zICs9IGV4dHJhO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHNlYXJjaF92YWx1ZSkge1xuICAgICAgICAgICAgZXh0cmFfcGFyYW1zICs9IGAmY3JpdGVyaWFbc2VhcmNoXVt0eXBlXT1jb250YWlucyZjcml0ZXJpYVtzZWFyY2hdW3ZhbHVlXT0ke2VuY29kZVVSSUNvbXBvbmVudChzZWFyY2hfdmFsdWUpfWA7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMucHJvZHVjdHNGaWx0ZXJBcGkoZXh0cmFfcGFyYW1zKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzVXBkYXRlZChwYWdpbmF0aW9uU2V0dGluZ3M6IFBhZ2luYXRpb25TZXR0aW5ncykge1xuICAgICAgICBjb25zdCBrZXlzOiBzdHJpbmdbXSA9IE9iamVjdC5rZXlzKHBhZ2luYXRpb25TZXR0aW5ncyk7XG4gICAgICAgIGxldCBjaGFuZ2U6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICAgICAga2V5cy5mb3JFYWNoKChrZXk6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSAocGFnaW5hdGlvblNldHRpbmdzIGFzIFJlY29yZDxzdHJpbmcsIGFueT4pW2tleV07XG4gICAgICAgICAgICBjb25zdCB2YWx1ZTIgPSAodGhpcy5fcGFnaW5hdGlvblNldHRpbmdzIGFzIFJlY29yZDxzdHJpbmcsIGFueT4pW2tleV07XG4gICAgICAgICAgICBpZiAodmFsdWUgIT0gdmFsdWUyKSBjaGFuZ2UgPSB0cnVlO1xuICAgICAgICB9KVxuICAgICAgICBpZiAoY2hhbmdlKSB0aGlzLl9wYWdpbmF0aW9uU2V0dGluZ3MgPSBwYWdpbmF0aW9uU2V0dGluZ3M7XG4gICAgICAgIHJldHVybiBjaGFuZ2U7XG4gICAgfVxuXG4gICAgc2V0RmlsdGVycyhwYWdpbmF0aW9uU2V0dGluZ3M6IFBhZ2luYXRpb25TZXR0aW5ncywgc2VhcmNoX3ZhbHVlPzogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuX3BhZ2luYXRpb25TZXR0aW5ncyA9IHBhZ2luYXRpb25TZXR0aW5ncztcbiAgICAgICAgbGV0IGZpbmFsX2ZpbHRlcnM6IEZpbHRlcltdID0gW107XG4gICAgICAgIGNvbnN0IGZpbHRlcnNUb1Byb2Nlc3MgPSB0aGlzLl9vcHRpb25zRmlsdGVycz8uaW5jbHVkZXMoJ2FsbCcpXG4gICAgICAgICAgICA/IChbJ2F0dHJpYnV0ZXMnLCAnY2F0ZWdvcmllcycsICdkeW5hbWljcycsICdzb3J0JywgJ3ByaWNlX3JhbmdlJ10gYXMgRmlsdGVyVHlwZVtdKVxuICAgICAgICAgICAgOiB0aGlzLl9vcHRpb25zRmlsdGVycztcblxuICAgICAgICBydW5JbkluamVjdGlvbkNvbnRleHQodGhpcy5lbnZpcm9ubWVudEluamVjdG9yLCAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBmaWx0ZXJGYWN0b3J5ID0gbmV3IEZpbHRlckZhY3RvcnkoKTtcbiAgICAgICAgICAgIGZpbHRlcnNUb1Byb2Nlc3M/LmZvckVhY2goZmlsdGVyVHlwZSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgZmlsdGVyID0gZmlsdGVyRmFjdG9yeS5jcmVhdGUoZmlsdGVyVHlwZSwgcGFnaW5hdGlvblNldHRpbmdzKTtcbiAgICAgICAgICAgICAgICBpZiAoZmlsdGVyKSBmaW5hbF9maWx0ZXJzLnB1c2goZmlsdGVyKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLl9kZWZhdWx0RmlsdGVycz8uZm9yRWFjaChkZiA9PiB7XG4gICAgICAgICAgICBjb25zdCBmID0gZmluYWxfZmlsdGVycy5maW5kKGYgPT4gZi50eXBlKCkgPT09IGRmLmZpbHRlcl90eXBlKTtcbiAgICAgICAgICAgIGYgJiYgZGYuY29kZXMuZm9yRWFjaChjb2RlID0+IGYuc2V0U2VsZWN0ZWQoY29kZSkpO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLl9maWx0ZXJzU3ViamVjdC5uZXh0KGZpbmFsX2ZpbHRlcnMpO1xuXG4gICAgICAgIGlmICghdGhpcy5fcmVhZHlTdWJqZWN0LnZhbHVlKSB0aGlzLl9yZWFkeVN1YmplY3QubmV4dCh0cnVlKTtcbiAgICB9XG5cbiAgICBnZXRGaWx0ZXJzKHBhZ2luYXRpb25TZXR0aW5ncz86IFBhZ2luYXRpb25TZXR0aW5ncykge1xuICAgICAgICBpZiAodGhpcy5fZmlsdGVyc0luaXRpYWxpemVkKSByZXR1cm47XG4gICAgICAgIHRoaXMuX2ZpbHRlcnNJbml0aWFsaXplZCA9IHRydWU7XG4gICAgICAgIGNvbnN0IHNldHRpbmdzID0gcGFnaW5hdGlvblNldHRpbmdzIHx8IHRoaXMuX3BhZ2luYXRpb25TZXR0aW5ncztcbiAgICAgICAgbGV0IGZpbmFsX2ZpbHRlcnM6IEZpbHRlcltdID0gW107XG4gICAgICAgIGxldCBmaWx0ZXJzVG9Qcm9jZXNzID0gdGhpcy5fb3B0aW9uc0ZpbHRlcnM/LmluY2x1ZGVzKCdhbGwnKVxuICAgICAgICAgICAgPyAoWydhdHRyaWJ1dGVzJywgJ2NhdGVnb3JpZXMnLCAnZHluYW1pY3MnLCAnc29ydCcsICdwcmljZV9yYW5nZSddIGFzIEZpbHRlclR5cGVbXSlcbiAgICAgICAgICAgIDogdGhpcy5fb3B0aW9uc0ZpbHRlcnM7XG5cbiAgICAgICAgcnVuSW5JbmplY3Rpb25Db250ZXh0KHRoaXMuZW52aXJvbm1lbnRJbmplY3RvciwgKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZmlsdGVyRmFjdG9yeSA9IG5ldyBGaWx0ZXJGYWN0b3J5KCk7XG4gICAgICAgICAgICBmaWx0ZXJzVG9Qcm9jZXNzPy5mb3JFYWNoKGZpbHRlclR5cGUgPT4ge1xuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCdDcmVhdGluZyBmaWx0ZXIgZm9yIHR5cGU6JywgZmlsdGVyVHlwZSk7XG4gICAgICAgICAgICAgICAgY29uc3QgZmlsdGVyID0gZmlsdGVyRmFjdG9yeS5jcmVhdGUoZmlsdGVyVHlwZSwgc2V0dGluZ3MpO1xuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCdDcmVhdGVkIGZpbHRlcjonLCBmaWx0ZXIpO1xuICAgICAgICAgICAgICAgIGlmIChmaWx0ZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgZmluYWxfZmlsdGVycy5wdXNoKGZpbHRlcik7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS53YXJuKGBGYWlsZWQgdG8gY3JlYXRlIGZpbHRlciBmb3IgdHlwZTogJHtmaWx0ZXJUeXBlfWApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLl9kZWZhdWx0RmlsdGVycz8uZm9yRWFjaChmaWx0ZXJEZWZhdWx0ID0+IHtcbiAgICAgICAgICAgIGxldCBmaWx0ZXIgPSBmaW5hbF9maWx0ZXJzLmZpbmQoZmlsdGVyID0+IGZpbHRlci50eXBlKCkgPT0gZmlsdGVyRGVmYXVsdC5maWx0ZXJfdHlwZSk7XG4gICAgICAgICAgICBmaWx0ZXIgJiYgZmlsdGVyRGVmYXVsdC5jb2Rlcy5mb3JFYWNoKHZhbHVlID0+IGZpbHRlci5zZXRTZWxlY3RlZCh2YWx1ZSkpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5fZmlsdGVyc1N1YmplY3QubmV4dChmaW5hbF9maWx0ZXJzKTtcbiAgICAgICAgcmV0dXJuIGZpbmFsX2ZpbHRlcnM7XG4gICAgfVxuXG4gICAgZ2V0U3BlY2lmaWNGaWx0ZXJzKHR5cGVzOiBGaWx0ZXJUeXBlW10pOiBGaWx0ZXJbXSB7XG4gICAgICAgIGNvbnN0IGZpbHRlcnM6IEZpbHRlcltdID0gdGhpcy5fZmlsdGVyc1N1YmplY3QudmFsdWUuZmlsdGVyKGZpbHRlciA9PiB0eXBlcy5pbmNsdWRlcyhmaWx0ZXIudHlwZSgpKSlcbiAgICAgICAgcmV0dXJuIGZpbHRlcnM7XG4gICAgfVxuXG4gICAgc2V0RmlsdGVyU2VsZWN0ZWQoZmlsdGVyT2JqOiBGaWx0ZXIsIGZpbHRlckVsZW06IEZpbHRlckVsZW1lbnQpIHtcbiAgICAgICAgbGV0IGZpbmFsX2ZpbHRlcnM6IEZpbHRlcltdID0gdGhpcy5fZmlsdGVyc1N1YmplY3QudmFsdWU7XG4gICAgICAgIGlmIChmaWx0ZXJPYmoudHlwZSgpICE9PSAncHJpY2VfcmFuZ2UnKSB7XG4gICAgICAgICAgICBjb25zdCBpbmRleCA9IGZpbmFsX2ZpbHRlcnMuZmluZEluZGV4KGYgPT4gZi50eXBlKCkgPT0gZmlsdGVyT2JqLnR5cGUoKSk7XG4gICAgICAgICAgICBmaW5hbF9maWx0ZXJzW2luZGV4XS5zZXRTZWxlY3RlZChmaWx0ZXJFbGVtLCBmaWx0ZXJFbGVtLnZhbHVlIHx8IGZpbHRlckVsZW0uY29kZSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fZmlsdGVyc1N1YmplY3QubmV4dChmaW5hbF9maWx0ZXJzKTtcblxuICAgICAgICBpZiAoKGZpbHRlckVsZW0gYXMgYW55KT8ubm9VcmwpIHtcbiAgICAgICAgICAgIHRoaXMuX2ZpbHRlcnNJblZpZXcubmV4dChmaWx0ZXJFbGVtKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHVwZGF0ZUZpbHRlcnMocGFnaW5hdGlvbkZpbHRlcnM6IGFueSk6IHZvaWQge1xuICAgICAgICBjb25zdCBjbGF2ZXMgPSBPYmplY3Qua2V5cyhwYWdpbmF0aW9uRmlsdGVycylcbiAgICAgICAgcnVuSW5JbmplY3Rpb25Db250ZXh0KHRoaXMuZW52aXJvbm1lbnRJbmplY3RvciwgKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZmlsdGVyRmFjdG9yeSA9IG5ldyBGaWx0ZXJGYWN0b3J5KCk7XG4gICAgICAgICAgICBjb25zdCBmaWx0ZXI6IEZpbHRlcltdID0gW11cbiAgICAgICAgICAgIC8qIGNsYXZlcy5mb3JFYWNoKChrZXk6YW55KSA9PiB7XG4gICAgICAgICAgICAgICAgZmlsdGVyLnB1c2goZmlsdGVyRmFjdG9yeS5jcmVhdGUoa2V5KSlcbiAgICAgICAgICAgICAgICBwYWdpbmF0aW9uRmlsdGVyc1trZXldLmZvckVhY2goKHZhbHVlOmFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coZmlsdGVyWzBdLmNyZWF0ZUVsZW1lbnQodmFsdWUscGFnaW5hdGlvbkZpbHRlcnNba2V5XSkpO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICBcbiAgICAgICAgICAgIH0pICovXG4gICAgICAgICAgICB0aGlzLl9maWx0ZXJzU3ViamVjdC52YWx1ZS5mb3JFYWNoKCh2YWx1ZTogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHZhbHVlLnR5cGUoKSA9PSBcImF0dHJpYnV0ZXNcIikge1xuICAgICAgICAgICAgICAgICAgICAvL3ZhbHVlLmRhdGEgPSBbXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICB9KVxuICAgIH1cblxuICAgIC8qKiBcbiAgICAgKiBBY3R1YWxpemEgaW50ZXJuYW1lbnRlIGVsIHJhbmdvIGRlIHByZWNpbyB5IHJlLWVtaXRlIFxuICAgICAqIGVsIGFycmF5IGRlIGZpbHRyb3MgcGFyYSBxdWUgUGFnaW5hdGlvblNlcnZpY2UgdnVlbHZhIGEgbGxhbWFyIFxuICAgICAqL1xuICAgIHB1YmxpYyB1cGRhdGVQcmljZVJhbmdlRmlsdGVyKG1pbjogbnVtYmVyLCBtYXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBjb25zdCBmaWx0ZXJzID0gdGhpcy5fZmlsdGVyc1N1YmplY3QudmFsdWU7XG4gICAgICAgIGNvbnN0IHByID0gZmlsdGVycy5maW5kKGYgPT4gZi50eXBlKCkgPT09ICdwcmljZV9yYW5nZScpIGFzIFByaWNlUmFuZ2VGaWx0ZXIgfCB1bmRlZmluZWQ7XG4gICAgICAgIGlmICghcHIpIHJldHVybjtcbiAgICAgICAgcHIuc2V0U2VsZWN0ZWQobWluLCBtYXgpO1xuICAgICAgICB0aGlzLl9maWx0ZXJzU3ViamVjdC5uZXh0KFsuLi5maWx0ZXJzXSk7XG4gICAgfVxuXG4gICAgcHVibGljIHNldE9wdGlvbnNGaWx0ZXJzKGZpbHRlcnM6IChGaWx0ZXJUeXBlIHwgJ2FsbCcpW10pIHtcbiAgICAgICAgdGhpcy5fb3B0aW9uc0ZpbHRlcnMgPSBmaWx0ZXJzPy5sZW5ndGggPyBmaWx0ZXJzIDogWydhbGwnXTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0RGVmYXVsdEZpbHRlcnMoZGVmYXVsdHM6IERlZmF1bHRGaWx0ZXJbXSkge1xuICAgICAgICB0aGlzLl9kZWZhdWx0RmlsdGVycyA9IGRlZmF1bHRzIHx8IFtdO1xuICAgIH1cblxuICAgIHB1YmxpYyBoeWRyYXRlRHluYW1pY3Mob3B0aW9uczogYW55KTogdm9pZCB7XG4gICAgICAgIGlmICghb3B0aW9ucykgcmV0dXJuO1xuICAgICAgICBjb25zdCBmaWx0ZXJzID0gdGhpcy5fZmlsdGVyc1N1YmplY3QudmFsdWUgfHwgW107XG4gICAgICAgIGNvbnN0IGR5biA9IGZpbHRlcnMuZmluZChmID0+IGYudHlwZSgpID09PSAnZHluYW1pY3MnKSBhcyBhbnk7XG4gICAgICAgIGlmICghZHluPy5zZXRDb250ZW50KSByZXR1cm47XG5cbiAgICAgICAgZHluLnNldENvbnRlbnQob3B0aW9ucyk7XG4gICAgICAgIHRoaXMuX2ZpbHRlcnNTdWJqZWN0Lm5leHQoWy4uLmZpbHRlcnNdKTtcblxuICAgICAgICAvLyBTaSBxdWVyw6lzIHF1ZSByZWFkeSQgcmVwcmVzZW50ZSBcImZpbHRyb3MgbGlzdG9zIHBhcmEgcmVuZGVyIChpbmNsdXllIGRpbsOhbWljb3MpXCJcbiAgICAgICAgaWYgKCF0aGlzLl9yZWFkeVN1YmplY3QudmFsdWUpIHRoaXMuX3JlYWR5U3ViamVjdC5uZXh0KHRydWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiByZWRpcmVjY2lvbmEgc2VndW4gbGEgdXJsIGRlbCBmaWx0cm8uXG4gICAgICogQHBhcmFtIGZpbHRlckVsZW0gTm8gaGFjZSBuYWRhIHBvciBhaG9yYSwgZXMgcGFyYSBtYW50ZW5lciBlbCBtaXNtbyBmb3JtYXRvIHF1ZSBjb21vIHNlIHVzYSBlbiBjb2xsZWN0aW9uXG4gICAgICogQHBhcmFtIGRhdGEgRmlsdHJvIHF1ZSBzZSB1c2EgcGFyYSByZWRpcmVjY2lvblxuICAgICAqL1xuICAgIHB1YmxpYyBzZXRGaWx0ZXJTZWxlY3RlZEJ5UGF0aChmaWx0ZXJFbGVtOiBGaWx0ZXJFbGVtZW50LCBkYXRhOiB7IHBhdGg6IHN0cmluZyB9LCByb3V0ZXI/OiBhbnkpIHtcbiAgICAgICAgaWYgKCFyb3V0ZXIgfHwgIWRhdGE/LnBhdGgpIHJldHVybjtcbiAgICAgICAgcm91dGVyLm5hdmlnYXRlQnlVcmwoZGF0YS5wYXRoKTtcbiAgICB9XG59XG5cbi8vIGV4cG9ydCB0eXBlIEZpbHRlclR5cGUgPSAnYXR0cmlidXRlcycgfCAnY2F0ZWdvcmllcycgfCAnZHluYW1pY3MnIHwgJ3NvcnQnIHwgJ3ByaWNlX3JhbmdlJzsgLy8gVXNlIGltcG9ydGVkIEZpbHRlclR5cGUgaW5zdGVhZFxuIl19
|
|
171
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVycy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLXNlcnZpY2VzL2ZpbHRlcnMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRixPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ25ELE9BQU8sRUFBVSxhQUFhLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFbkQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sY0FBYyxDQUFDOztBQU16RSxNQUFNLE9BQU8sY0FBYztJQUNmLFVBQVUsR0FBd0IsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDOUQsT0FBTyxHQUF5QixNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQUM3RCxlQUFlLEdBQThCLElBQUksZUFBZSxDQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQ2hGLFFBQVEsR0FBeUIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUVwRSxjQUFjLEdBQTRCLElBQUksZUFBZSxDQUFTLEVBQUUsQ0FBQyxDQUFDO0lBQzNFLE9BQU8sR0FBdUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUVoRSxhQUFhLEdBQTZCLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO0lBQy9FLE1BQU0sR0FBd0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUUvRCxtQkFBbUIsR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQTtJQUVqRCxlQUFlLEdBQTJCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbEQsZUFBZSxHQUFvQixFQUFFLENB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QUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxLQUFLLGFBQWEsQ0FBaUMsQ0FBQztRQUN6RixJQUFJLENBQUMsRUFBRTtZQUFFLE9BQU87UUFDaEIsRUFBRSxDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDNUMsQ0FBQzt3R0F2S1EsY0FBYzs0R0FBZCxjQUFjLGNBRlgsTUFBTTs7NEZBRVQsY0FBYztrQkFIMUIsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbnZpcm9ubWVudEluamVjdG9yLCBpbmplY3QsIEluamVjdGFibGUsIHJ1bkluSW5qZWN0aW9uQ29udGV4dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBGaWx0ZXIsIEZpbHRlckZhY3RvcnkgfSBmcm9tICcuLi9jbGFzc2VzJztcbmltcG9ydCB7IERlZmF1bHRGaWx0ZXIsIEZpbHRlckVsZW1lbnQsIFBhZ2luYXRpb25TZXR0aW5ncywgRmlsdGVyVHlwZSB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgQXBpQ29uc3RhbnRzU2VydmljZSwgQ29yZUNvbnN0YW50c1NlcnZpY2UgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgUHJpY2VSYW5nZUZpbHRlciB9IGZyb20gJy4uL2NsYXNzZXMvZmlsdGVycy9wcmljZV9yYW5nZS1maWx0ZXInO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEZpbHRlcnNTZXJ2aWNlIHtcbiAgICBwcml2YXRlIF9hcGlDb25zdHM6IEFwaUNvbnN0YW50c1NlcnZpY2UgPSBpbmplY3QoQXBpQ29uc3RhbnRzU2VydmljZSk7XG4gICAgcHJpdmF0ZSBfY29uc3RzOiBDb3JlQ29uc3RhbnRzU2VydmljZSA9IGluamVjdChDb3JlQ29uc3RhbnRzU2VydmljZSk7XG4gICAgcHJpdmF0ZSBfZmlsdGVyc1N1YmplY3Q6IEJlaGF2aW9yU3ViamVjdDxGaWx0ZXJbXT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEZpbHRlcltdPihbXSk7XG4gICAgcHVibGljIGZpbHRlcnMkOiBPYnNlcnZhYmxlPEZpbHRlcltdPiA9IHRoaXMuX2ZpbHRlcnNTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuXG4gICAgcHJpdmF0ZSBfYXBpVXJsU3ViamVjdDogQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4oJycpO1xuICAgIHB1YmxpYyBhcGlVcmwkOiBPYnNlcnZhYmxlPHN0cmluZz4gPSB0aGlzLl9hcGlVcmxTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuXG4gICAgcHJpdmF0ZSBfcmVhZHlTdWJqZWN0OiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgICBwdWJsaWMgcmVhZHkkOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy5fcmVhZHlTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuXG4gICAgcHJpdmF0ZSBlbnZpcm9ubWVudEluamVjdG9yID0gaW5qZWN0KEVudmlyb25tZW50SW5qZWN0b3IpXG5cbiAgICBwcml2YXRlIF9vcHRpb25zRmlsdGVyczogKEZpbHRlclR5cGUgfCAnYWxsJylbXSA9IFsnYWxsJ107XG4gICAgcHJpdmF0ZSBfZGVmYXVsdEZpbHRlcnM6IERlZmF1bHRGaWx0ZXJbXSA9IFtdO1xuXG4gICAgcHJpdmF0ZSBfcGFnaW5hdGlvblNldHRpbmdzOiBQYWdpbmF0aW9uU2V0dGluZ3MgPSB7XG4gICAgICAgIHZhbHVlOiAnJyxcbiAgICAgICAgdHlwZTogJycsXG4gICAgICAgIGxpbWl0OiAwXG4gICAgfTtcblxuICAgIHByaXZhdGUgX2ZpbHRlcnNJbml0aWFsaXplZCA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIC8vdGhpcy5fZGVmYXVsdEZpbHRlcnMgPSB0aGlzLl9jb25zdHMuZ2V0RGVmYXVsdEZpbHRlcnMoKVxuICAgIH1cblxuICAgIC8vQVBJIFVSTFxuICAgIC8qKlxuICAgICAqIFJldG9ybmEgbGEgdXJsIHBhcmEgZWwgZmlsdHJhZG9cbiAgICAgKiBAcGFyYW0gZmlsdGVycyBcbiAgICAgKiBAcmV0dXJucyBcbiAgICAgKi9cbiAgICBwcm9kdWN0c0ZpbHRlckFwaShmaWx0ZXJzID0gJycpIHsgcmV0dXJuICdzaG9wLWFwaS8nICsgdGhpcy5fYXBpQ29uc3RzLkNIQU5ORUwgKyAnL3Byb2R1Y3Qtc2VhcmNoLycgKyAnP2xvY2FsZT0nICsgdGhpcy5fYXBpQ29uc3RzLkxPQ0FMRSArIGZpbHRlcnMgfTtcbiAgICAvKipcbiAgICAgKiBBcm1hIGxvcyBmaWx0cm9zIHkgcmV0b3JuYSBsYSB1cmwgY29tcGxldGEgY29uIGxvcyBmaWx0cm9zIGFwbGljYWRvcy5cbiAgICAgKiBAcGFyYW0gc2VhcmNoX3ZhbHVlIHZhbG9yIGEgYnVzY2FyXG4gICAgICogQHJldHVybnMgXG4gICAgICovXG4gICAgZ2VuZXJhdGVGaW5hbEFwaShzZWFyY2hfdmFsdWU/OiBzdHJpbmcpIHtcbiAgICAgICAgbGV0IGV4dHJhX3BhcmFtcyA9ICcnO1xuICAgICAgICB0aGlzLl9maWx0ZXJzU3ViamVjdC52YWx1ZS5mb3JFYWNoKGZpbHRlciA9PiB7XG4gICAgICAgICAgICBjb25zdCBleHRyYSA9IGZpbHRlci50b1VybFBhcmFtcygpO1xuICAgICAgICAgICAgZXh0cmEuc3BsaXQoJz0nKVsxXSAhPSAnJyA/IGV4dHJhX3BhcmFtcyArPSBleHRyYSA6IG51bGw7XG4gICAgICAgIH0pXG4gICAgICAgIGlmIChzZWFyY2hfdmFsdWUpIGV4dHJhX3BhcmFtcyArPSAoJyZjcml0ZXJpYVtzZWFyY2hdW3R5cGVdPWNvbnRhaW5zJmNyaXRlcmlhW3NlYXJjaF1bdmFsdWVdPScgKyBzZWFyY2hfdmFsdWUpO1xuXG4gICAgICAgIHJldHVybiB0aGlzLnByb2R1Y3RzRmlsdGVyQXBpKGV4dHJhX3BhcmFtcyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc1VwZGF0ZWQocGFnaW5hdGlvblNldHRpbmdzOiBQYWdpbmF0aW9uU2V0dGluZ3MpIHtcbiAgICAgICAgY29uc3Qga2V5czogc3RyaW5nW10gPSBPYmplY3Qua2V5cyhwYWdpbmF0aW9uU2V0dGluZ3MpO1xuICAgICAgICBsZXQgY2hhbmdlOiBib29sZWFuID0gZmFsc2U7XG4gICAgICAgIGtleXMuZm9yRWFjaCgoa2V5OiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gKHBhZ2luYXRpb25TZXR0aW5ncyBhcyBSZWNvcmQ8c3RyaW5nLCBhbnk+KVtrZXldO1xuICAgICAgICAgICAgY29uc3QgdmFsdWUyID0gKHRoaXMuX3BhZ2luYXRpb25TZXR0aW5ncyBhcyBSZWNvcmQ8c3RyaW5nLCBhbnk+KVtrZXldO1xuICAgICAgICAgICAgaWYgKHZhbHVlICE9IHZhbHVlMikgY2hhbmdlID0gdHJ1ZTtcbiAgICAgICAgfSlcbiAgICAgICAgaWYgKGNoYW5nZSkgdGhpcy5fcGFnaW5hdGlvblNldHRpbmdzID0gcGFnaW5hdGlvblNldHRpbmdzO1xuICAgICAgICByZXR1cm4gY2hhbmdlO1xuICAgIH1cblxuICAgIHNldEZpbHRlcnMocGFnaW5hdGlvblNldHRpbmdzOiBQYWdpbmF0aW9uU2V0dGluZ3MsIHNlYXJjaF92YWx1ZT86IHN0cmluZykge1xuICAgICAgICB0aGlzLl9wYWdpbmF0aW9uU2V0dGluZ3MgPSBwYWdpbmF0aW9uU2V0dGluZ3M7XG4gICAgICAgIGxldCBmaW5hbF9maWx0ZXJzOiBGaWx0ZXJbXSA9IFtdO1xuICAgICAgICBsZXQgZmlsdGVyc1RvUHJvY2VzcyA9IHRoaXMuX29wdGlvbnNGaWx0ZXJzPy5pbmNsdWRlcygnYWxsJylcbiAgICAgICAgICAgID8gKFsnYXR0cmlidXRlcycsICdjYXRlZ29yaWVzJywgJ2R5bmFtaWNzJywgJ3NvcnQnLCAncHJpY2VfcmFuZ2UnXSBhcyBGaWx0ZXJUeXBlW10pXG4gICAgICAgICAgICA6IHRoaXMuX29wdGlvbnNGaWx0ZXJzO1xuXG4gICAgICAgIHJ1bkluSW5qZWN0aW9uQ29udGV4dCh0aGlzLmVudmlyb25tZW50SW5qZWN0b3IsICgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGZpbHRlckZhY3RvcnkgPSBuZXcgRmlsdGVyRmFjdG9yeSgpO1xuICAgICAgICAgICAgZmlsdGVyc1RvUHJvY2Vzcz8uZm9yRWFjaChmaWx0ZXJUeXBlID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBmaWx0ZXIgPSBmaWx0ZXJGYWN0b3J5LmNyZWF0ZShmaWx0ZXJUeXBlLCBwYWdpbmF0aW9uU2V0dGluZ3MpO1xuICAgICAgICAgICAgICAgIGlmIChmaWx0ZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgZmluYWxfZmlsdGVycy5wdXNoKGZpbHRlcik7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS53YXJuKGDinYwgRmFpbGVkIHRvIGNyZWF0ZSBmaWx0ZXIgZm9yIHR5cGU6ICR7ZmlsdGVyVHlwZX1gKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSlcblxuICAgICAgICB0aGlzLl9kZWZhdWx0RmlsdGVycz8uZm9yRWFjaChmaWx0ZXJEZWZhdWx0ID0+IHtcbiAgICAgICAgICAgIGxldCBmaWx0ZXIgPSBmaW5hbF9maWx0ZXJzLmZpbmQoZmlsdGVyID0+IGZpbHRlci50eXBlKCkgPT0gZmlsdGVyRGVmYXVsdC5maWx0ZXJfdHlwZSk7XG4gICAgICAgICAgICBmaWx0ZXIgJiYgZmlsdGVyRGVmYXVsdC5jb2Rlcy5mb3JFYWNoKHZhbHVlID0+IGZpbHRlci5zZXRTZWxlY3RlZCh2YWx1ZSkpO1xuICAgICAgICB9KVxuICAgICAgICB0aGlzLl9maWx0ZXJzU3ViamVjdC5uZXh0KGZpbmFsX2ZpbHRlcnMpO1xuICAgIH1cblxuICAgIGdldEZpbHRlcnMocGFnaW5hdGlvblNldHRpbmdzPzogUGFnaW5hdGlvblNldHRpbmdzKSB7XG4gICAgICAgIGlmICh0aGlzLl9maWx0ZXJzSW5pdGlhbGl6ZWQpIHJldHVybjtcbiAgICAgICAgdGhpcy5fZmlsdGVyc0luaXRpYWxpemVkID0gdHJ1ZTtcbiAgICAgICAgY29uc3Qgc2V0dGluZ3MgPSBwYWdpbmF0aW9uU2V0dGluZ3MgfHwgdGhpcy5fcGFnaW5hdGlvblNldHRpbmdzO1xuICAgICAgICBsZXQgZmluYWxfZmlsdGVyczogRmlsdGVyW10gPSBbXTtcbiAgICAgICAgbGV0IGZpbHRlcnNUb1Byb2Nlc3MgPSB0aGlzLl9vcHRpb25zRmlsdGVycz8uaW5jbHVkZXMoJ2FsbCcpXG4gICAgICAgICAgICA/IChbJ2F0dHJpYnV0ZXMnLCAnY2F0ZWdvcmllcycsICdkeW5hbWljcycsICdzb3J0JywgJ3ByaWNlX3JhbmdlJ10gYXMgRmlsdGVyVHlwZVtdKVxuICAgICAgICAgICAgOiB0aGlzLl9vcHRpb25zRmlsdGVycztcblxuICAgICAgICBydW5JbkluamVjdGlvbkNvbnRleHQodGhpcy5lbnZpcm9ubWVudEluamVjdG9yLCAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBmaWx0ZXJGYWN0b3J5ID0gbmV3IEZpbHRlckZhY3RvcnkoKTtcbiAgICAgICAgICAgIGZpbHRlcnNUb1Byb2Nlc3M/LmZvckVhY2goZmlsdGVyVHlwZSA9PiB7XG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coJ0NyZWF0aW5nIGZpbHRlciBmb3IgdHlwZTonLCBmaWx0ZXJUeXBlKTtcbiAgICAgICAgICAgICAgICBjb25zdCBmaWx0ZXIgPSBmaWx0ZXJGYWN0b3J5LmNyZWF0ZShmaWx0ZXJUeXBlLCBzZXR0aW5ncyk7XG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coJ0NyZWF0ZWQgZmlsdGVyOicsIGZpbHRlcik7XG4gICAgICAgICAgICAgICAgaWYgKGZpbHRlcikge1xuICAgICAgICAgICAgICAgICAgICBmaW5hbF9maWx0ZXJzLnB1c2goZmlsdGVyKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLndhcm4oYEZhaWxlZCB0byBjcmVhdGUgZmlsdGVyIGZvciB0eXBlOiAke2ZpbHRlclR5cGV9YCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuX2RlZmF1bHRGaWx0ZXJzPy5mb3JFYWNoKGZpbHRlckRlZmF1bHQgPT4ge1xuICAgICAgICAgICAgbGV0IGZpbHRlciA9IGZpbmFsX2ZpbHRlcnMuZmluZChmaWx0ZXIgPT4gZmlsdGVyLnR5cGUoKSA9PSBmaWx0ZXJEZWZhdWx0LmZpbHRlcl90eXBlKTtcbiAgICAgICAgICAgIGZpbHRlciAmJiBmaWx0ZXJEZWZhdWx0LmNvZGVzLmZvckVhY2godmFsdWUgPT4gZmlsdGVyLnNldFNlbGVjdGVkKHZhbHVlKSk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLl9maWx0ZXJzU3ViamVjdC5uZXh0KGZpbmFsX2ZpbHRlcnMpO1xuICAgICAgICByZXR1cm4gZmluYWxfZmlsdGVycztcbiAgICB9XG5cbiAgICBnZXRTcGVjaWZpY0ZpbHRlcnModHlwZXM6IEZpbHRlclR5cGVbXSk6IEZpbHRlcltdIHtcbiAgICAgICAgY29uc3QgZmlsdGVyczogRmlsdGVyW10gPSB0aGlzLl9maWx0ZXJzU3ViamVjdC52YWx1ZS5maWx0ZXIoZmlsdGVyID0+IHR5cGVzLmluY2x1ZGVzKGZpbHRlci50eXBlKCkpKVxuICAgICAgICByZXR1cm4gZmlsdGVycztcbiAgICB9XG5cbiAgICBzZXRGaWx0ZXJTZWxlY3RlZChmaWx0ZXJPYmo6IEZpbHRlciwgZmlsdGVyRWxlbTogRmlsdGVyRWxlbWVudCkge1xuICAgICAgICBsZXQgZmluYWxfZmlsdGVyczogRmlsdGVyW10gPSB0aGlzLl9maWx0ZXJzU3ViamVjdC52YWx1ZTtcbiAgICAgICAgaWYgKGZpbHRlck9iai50eXBlKCkgIT09ICdwcmljZV9yYW5nZScpIHtcbiAgICAgICAgICAgIGxldCBpbmRleCA9IGZpbmFsX2ZpbHRlcnMuZmluZEluZGV4KGZpbHRlciA9PiBmaWx0ZXIudHlwZSgpID09IGZpbHRlck9iai50eXBlKCkpO1xuICAgICAgICAgICAgZmluYWxfZmlsdGVyc1tpbmRleF0uc2V0U2VsZWN0ZWQoZmlsdGVyRWxlbSwgZmlsdGVyRWxlbS52YWx1ZSB8fCBmaWx0ZXJFbGVtLmNvZGUpO1xuICAgICAgICAgICAgY29uc29sZS5sb2coaW5kZXgsIGZpbmFsX2ZpbHRlcnMpXG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fZmlsdGVyc1N1YmplY3QubmV4dChmaW5hbF9maWx0ZXJzKTtcbiAgICAgICAgLy8gfVxuICAgIH1cblxuICAgIHVwZGF0ZUZpbHRlcnMocGFnaW5hdGlvbkZpbHRlcnM6IGFueSk6IHZvaWQge1xuICAgICAgICBjb25zdCBjbGF2ZXMgPSBPYmplY3Qua2V5cyhwYWdpbmF0aW9uRmlsdGVycylcbiAgICAgICAgcnVuSW5JbmplY3Rpb25Db250ZXh0KHRoaXMuZW52aXJvbm1lbnRJbmplY3RvciwgKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZmlsdGVyRmFjdG9yeSA9IG5ldyBGaWx0ZXJGYWN0b3J5KCk7XG4gICAgICAgICAgICBjb25zdCBmaWx0ZXI6IEZpbHRlcltdID0gW11cbiAgICAgICAgICAgIC8qIGNsYXZlcy5mb3JFYWNoKChrZXk6YW55KSA9PiB7XG4gICAgICAgICAgICAgICAgZmlsdGVyLnB1c2goZmlsdGVyRmFjdG9yeS5jcmVhdGUoa2V5KSlcbiAgICAgICAgICAgICAgICBwYWdpbmF0aW9uRmlsdGVyc1trZXldLmZvckVhY2goKHZhbHVlOmFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coZmlsdGVyWzBdLmNyZWF0ZUVsZW1lbnQodmFsdWUscGFnaW5hdGlvbkZpbHRlcnNba2V5XSkpO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICBcbiAgICAgICAgICAgIH0pICovXG4gICAgICAgICAgICB0aGlzLl9maWx0ZXJzU3ViamVjdC52YWx1ZS5mb3JFYWNoKCh2YWx1ZTogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHZhbHVlLnR5cGUoKSA9PSBcImF0dHJpYnV0ZXNcIikge1xuICAgICAgICAgICAgICAgICAgICAvL3ZhbHVlLmRhdGEgPSBbXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICB9KVxuICAgIH1cblxuICAgIC8qKiBcbiAgICAgKiBBY3R1YWxpemEgaW50ZXJuYW1lbnRlIGVsIHJhbmdvIGRlIHByZWNpbyB5IHJlLWVtaXRlIFxuICAgICAqIGVsIGFycmF5IGRlIGZpbHRyb3MgcGFyYSBxdWUgUGFnaW5hdGlvblNlcnZpY2UgdnVlbHZhIGEgbGxhbWFyIFxuICAgICAqL1xuICAgIHB1YmxpYyB1cGRhdGVQcmljZVJhbmdlRmlsdGVyKG1pbjogbnVtYmVyLCBtYXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBjb25zdCBmaWx0ZXJzID0gdGhpcy5fZmlsdGVyc1N1YmplY3QudmFsdWU7XG4gICAgICAgIGNvbnN0IHByID0gZmlsdGVycy5maW5kKGYgPT4gZi50eXBlKCkgPT09ICdwcmljZV9yYW5nZScpIGFzIFByaWNlUmFuZ2VGaWx0ZXIgfCB1bmRlZmluZWQ7XG4gICAgICAgIGlmICghcHIpIHJldHVybjtcbiAgICAgICAgcHIuc2V0U2VsZWN0ZWQobWluLCBtYXgpO1xuICAgICAgICB0aGlzLl9maWx0ZXJzU3ViamVjdC5uZXh0KFsuLi5maWx0ZXJzXSk7XG4gICAgfVxufVxuXG4vLyBleHBvcnQgdHlwZSBGaWx0ZXJUeXBlID0gJ2F0dHJpYnV0ZXMnIHwgJ2NhdGVnb3JpZXMnIHwgJ2R5bmFtaWNzJyB8ICdzb3J0JyB8ICdwcmljZV9yYW5nZSc7IC8vIFVzZSBpbXBvcnRlZCBGaWx0ZXJUeXBlIGluc3RlYWRcbiJdfQ==
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { inject, Injectable, signal } from '@angular/core';
|
|
2
2
|
import { ConnectionService } from '../api';
|
|
3
|
-
import { BehaviorSubject,
|
|
3
|
+
import { BehaviorSubject, filter, map, shareReplay, switchMap } from 'rxjs';
|
|
4
4
|
import { FiltersService } from './filters.service';
|
|
5
5
|
import { CoreConstantsService } from '../constants';
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
@@ -12,11 +12,10 @@ export class PaginationService {
|
|
|
12
12
|
_connectionService = inject(ConnectionService);
|
|
13
13
|
_filtersService = inject(FiltersService);
|
|
14
14
|
_constants = inject(CoreConstantsService);
|
|
15
|
-
|
|
16
|
-
paginationData$ = this._filtersService.filters$.pipe(filter(filters => Array.isArray(filters) && filters.length > 0), map(filters => {
|
|
15
|
+
paginationData$ = this._filtersService.filters$.pipe(shareReplay(1), filter(filters => filters && filters.length > 0), switchMap((filters) => {
|
|
17
16
|
const url = this.buildUrl(filters);
|
|
18
|
-
return
|
|
19
|
-
})
|
|
17
|
+
return this.getData(url);
|
|
18
|
+
}));
|
|
20
19
|
_dataPagination = signal({
|
|
21
20
|
attributes: [],
|
|
22
21
|
category: [],
|
|
@@ -53,7 +52,6 @@ export class PaginationService {
|
|
|
53
52
|
this._finished = false;
|
|
54
53
|
this._start = true;
|
|
55
54
|
this._nextProductsSubject.next([]);
|
|
56
|
-
this._hydratedDynamics = false;
|
|
57
55
|
}
|
|
58
56
|
/**
|
|
59
57
|
* Obtengo los datos de la siguiente página.
|
|
@@ -162,21 +160,12 @@ export class PaginationService {
|
|
|
162
160
|
this._resetSubject.next(true);
|
|
163
161
|
this._nextProductsSubject.next([]);
|
|
164
162
|
this._connectionService.get(url, { limit: 10, page: 1 }).pipe(map(res => {
|
|
165
|
-
//
|
|
166
|
-
if (!this._hydratedDynamics && res?.options) {
|
|
167
|
-
this._filtersService.hydrateDynamics(res.options);
|
|
168
|
-
this._hydratedDynamics = true;
|
|
169
|
-
}
|
|
163
|
+
//console.log(res)
|
|
170
164
|
this._nextProductsSubject.next(res.items);
|
|
171
165
|
res.links ? this.updatePageData(res) : this.finish(res);
|
|
172
166
|
})).subscribe();
|
|
173
167
|
return this.nextProducts$;
|
|
174
168
|
}
|
|
175
|
-
urlSignature(filters) {
|
|
176
|
-
const params = filters.map(f => (f?.toUrlParams?.() || '')).join('|');
|
|
177
|
-
const sv = this._constants.searchValue || '';
|
|
178
|
-
return params + '::' + sv;
|
|
179
|
-
}
|
|
180
169
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PaginationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
181
170
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PaginationService, providedIn: 'root' });
|
|
182
171
|
}
|
|
@@ -186,4 +175,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
186
175
|
providedIn: 'root'
|
|
187
176
|
}]
|
|
188
177
|
}], ctorParameters: () => [] });
|
|
189
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLXNlcnZpY2VzL3BhZ2luYXRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBYyxXQUFXLEVBQUUsU0FBUyxFQUFPLE1BQU0sTUFBTSxDQUFDO0FBRW5ILE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVuRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxjQUFjLENBQUM7O0FBQ3BEOzs7R0FHRztBQUlILE1BQU0sT0FBTyxpQkFBaUI7SUFFckIsa0JBQWtCLEdBQXNCLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ2xFLGVBQWUsR0FBbUIsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFBO0lBQ3hELFVBQVUsR0FBeUIsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUM7SUFFaEUsaUJBQWlCLEdBQUcsS0FBSyxDQUFDO0lBRTNCLGVBQWUsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQzFELE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsRUFDL0QsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ2IsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztR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Q0FBQyxDQUFDO1FBQ3RFLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxJQUFJLEVBQUUsQ0FBQztRQUM3QyxPQUFPLE1BQU0sR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBQzNCLENBQUM7d0dBL0xXLGlCQUFpQjs0R0FBakIsaUJBQWlCLGNBRmpCLE1BQU07OzRGQUVOLGlCQUFpQjtrQkFIN0IsVUFBVTttQkFBQztvQkFDWCxVQUFVLEVBQUUsTUFBTTtpQkFDbEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29ubmVjdGlvblNlcnZpY2UgfSBmcm9tICcuLi9hcGknO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZmlsdGVyLCBtYXAsIE9ic2VydmFibGUsIHNoYXJlUmVwbGF5LCBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgUGFnaW5hdGlvbiwgUHJvZHVjdCB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgRmlsdGVyc1NlcnZpY2UgfSBmcm9tICcuL2ZpbHRlcnMuc2VydmljZSc7XG5pbXBvcnQgeyBGaWx0ZXIgfSBmcm9tICcuLi9jbGFzc2VzJztcbmltcG9ydCB7IENvcmVDb25zdGFudHNTZXJ2aWNlIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbi8qKlxuICogU2VydmljaW8gcGFyYSBtYW5lamFyIGxhIHBhZ2luYWNpw7NuIGRlIGxvcyBwcm9kdWN0b3MuXG4gKiBAY2xhc3MgUGFnaW5hdGlvblNlcnZpY2VcbiAqL1xuQEluamVjdGFibGUoe1xuXHRwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgUGFnaW5hdGlvblNlcnZpY2Uge1xuXG5cdHByaXZhdGUgX2Nvbm5lY3Rpb25TZXJ2aWNlOiBDb25uZWN0aW9uU2VydmljZSA9IGluamVjdChDb25uZWN0aW9uU2VydmljZSk7XG5cdHByaXZhdGUgX2ZpbHRlcnNTZXJ2aWNlOiBGaWx0ZXJzU2VydmljZSA9IGluamVjdChGaWx0ZXJzU2VydmljZSlcblx0cHJpdmF0ZSBfY29uc3RhbnRzOiBDb3JlQ29uc3RhbnRzU2VydmljZSA9IGluamVjdChDb3JlQ29uc3RhbnRzU2VydmljZSk7XG5cblx0cHJpdmF0ZSBfaHlkcmF0ZWREeW5hbWljcyA9IGZhbHNlO1xuXG5cdHB1YmxpYyBwYWdpbmF0aW9uRGF0YSQgPSB0aGlzLl9maWx0ZXJzU2VydmljZS5maWx0ZXJzJC5waXBlKFxuXHRcdGZpbHRlcihmaWx0ZXJzID0+IEFycmF5LmlzQXJyYXkoZmlsdGVycykgJiYgZmlsdGVycy5sZW5ndGggPiAwKSxcblx0XHRtYXAoZmlsdGVycyA9PiB7XG5cdFx0XHRjb25zdCB1cmwgPSB0aGlzLmJ1aWxkVXJsKGZpbHRlcnMpO1xuXHRcdFx0cmV0dXJuIHsgdXJsLCBrZXk6IHRoaXMudXJsU2lnbmF0dXJlKGZpbHRlcnMpIH07XG5cdFx0fSksXG5cdFx0ZGlzdGluY3RVbnRpbENoYW5nZWQoKGEsIGIpID0+IGEua2V5ID09PSBiLmtleSksXG5cdFx0c3dpdGNoTWFwKCh7IHVybCB9KSA9PiB0aGlzLmdldERhdGEodXJsKSksXG5cdFx0c2hhcmVSZXBsYXkoMSlcblx0KVxuXG5cdHByaXZhdGUgX2RhdGFQYWdpbmF0aW9uOiBhbnkgPSBzaWduYWw8UGFnaW5hdGlvbj4oe1xuXHRcdGF0dHJpYnV0ZXM6IFtdLFxuXHRcdGNhdGVnb3J5OiBbXSxcblx0XHRvcHRpb25zOiBbXSxcblx0XHRsaW1pdDogMCxcblx0XHRwYWdlOiAwLFxuXHRcdHBhZ2VzOiAwLFxuXHRcdHRvdGFsOiAwLFxuXHRcdGl0ZW1zOiBbXSxcblx0XHRjYWxsZWQ6IGZhbHNlLFxuXHRcdHByaWNlX21heDogMCxcblx0XHRwcmljZV9taW46IDBcblx0fSk7XG5cblx0cHJpdmF0ZSBfd2FpdGluZzogYm9vbGVhbiA9IGZhbHNlO1xuXHRwcml2YXRlIF9maW5pc2hlZDogYm9vbGVhbiA9IGZhbHNlO1xuXHRwcml2YXRlIF9hcGlVcmw6IHN0cmluZyA9ICcnO1xuXHRwcml2YXRlIF9zdGFydDogYm9vbGVhbiA9IGZhbHNlO1xuXG5cdHByaXZhdGUgX25leHRQcm9kdWN0c1N1YmplY3Q6IEJlaGF2aW9yU3ViamVjdDxQcm9kdWN0W10+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxQcm9kdWN0W10+KFtdKTtcblx0cHVibGljIG5leHRQcm9kdWN0cyQgPSB0aGlzLl9uZXh0UHJvZHVjdHNTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuXG5cdHByaXZhdGUgX3Jlc2V0U3ViamVjdDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG5cdHB1YmxpYyByZXNldCQgPSB0aGlzLl9yZXNldFN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG5cblx0cHJpdmF0ZSBwcmljZVJhbmdlU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8eyBwcmljZV9taW46IG51bWJlciwgcHJpY2VfbWF4OiBudW1iZXIgfT4oeyBwcmljZV9taW46IDAsIHByaWNlX21heDogMCB9KTtcblx0cHVibGljIHByaWNlUmFuZ2UkID0gdGhpcy5wcmljZVJhbmdlU3ViamVjdC5hc09ic2VydmFibGUoKTtcblx0XG5cdGNvbnN0cnVjdG9yKCkgeyB9XG5cblx0LyoqXG5cdCAqIEluaWNpYWxpemEgbGEgY29uZmlndXJhY2nDs24gcGFyYSBlbCBTZXJ2aWNpbyBkZSBQYWdpbmFjacOzbi5cblx0ICogQHBhcmFtIGFwaVVybCBVcmwgY29uIGxvcyBmaWx0cm9zIGFwbGljYWRvcy4gXG5cdCAqIEBwYXJhbSBsaW1pdCBsaW1pdGUgZGUgcHJvZHVjdG9zIGVuIGNhZGEgcGV0aWNpw7NuLlxuXHQgKi9cblx0aW5pdGlhbGl6ZShhcGlVcmw6IHN0cmluZywgbGltaXQ/OiBudW1iZXIpIHtcblx0XHQvL2NvbnNvbGUubG9nKGFwaVVybClcblx0XHR0aGlzLl9hcGlVcmwgPSBhcGlVcmw7XG5cdFx0dGhpcy5fZGF0YVBhZ2luYXRpb24oKS5saW1pdCA9IGxpbWl0IHx8IHRoaXMuX2RhdGFQYWdpbmF0aW9uKCkubGltaXQgfHwgMTA7XG5cdFx0dGhpcy5fZmluaXNoZWQgPSBmYWxzZTtcblx0XHR0aGlzLl9zdGFydCA9IHRydWU7XG5cdFx0dGhpcy5fbmV4dFByb2R1Y3RzU3ViamVjdC5uZXh0KFtdKTtcblx0XHR0aGlzLl9oeWRyYXRlZER5bmFtaWNzID0gZmFsc2U7XG5cdH1cblx0LyoqXG5cdCAqIE9idGVuZ28gbG9zIGRhdG9zIGRlIGxhIHNpZ3VpZW50ZSBww6FnaW5hLlxuXHQgKiBAcGFyYW0gbmV4dCBcblx0ICogQHJldHVybnMgXG5cdCAqL1xuXHRnZXROZXh0KG5leHQ/OiBhbnkpOiBib29sZWFuIHtcblx0XHR0aGlzLl93YWl0aW5nID0gdHJ1ZTtcblx0XHR0aGlzLl9uZXh0UHJvZHVjdHNTdWJqZWN0Lm5leHQoW10pO1xuXHRcdHRoaXMuX2FwaVVybCA9IHRoaXMuX2FwaVVybC5yZXBsYWNlKCclMjAnLCAnICcpOy8vIG1hcyBwYXJhIGN1YW5kbyBlcyB1biBzZWFyY2ggdmFsdWUuXG5cdFx0bGV0IG5leHRQcm9kdWN0cztcblx0XHRpZiAodGhpcy5fc3RhcnQpIHtcblx0XHRcdG5leHRQcm9kdWN0cyA9IHRoaXMuX2Nvbm5lY3Rpb25TZXJ2aWNlLmdldCh0aGlzLl9hcGlVcmwsIHsgbGltaXQ6IHRoaXMuX2RhdGFQYWdpbmF0aW9uKCkubGltaXQsIHBhZ2U6IDEgfSlcblx0XHRcdHRoaXMuX3N0YXJ0ID0gZmFsc2Vcblx0XHR9IGVsc2Uge1xuXHRcdFx0bmV4dFByb2R1Y3RzID0gdGhpcy5fY29ubmVjdGlvblNlcnZpY2UuZ2V0KHRoaXMuX2RhdGFQYWdpbmF0aW9uKCkubGlua3MubmV4dC5zbGljZSgxKSk7XG5cdFx0fVxuXG5cdFx0IXRoaXMuX2ZpbmlzaGVkICYmIG5leHRQcm9kdWN0cy5zdWJzY3JpYmUoXG5cdFx0XHQocmVzcG9uc2U6IFBhZ2luYXRpb24pID0+IHtcblx0XHRcdFx0cmVzcG9uc2UubGlua3MgPyB0aGlzLnVwZGF0ZVBhZ2VEYXRhKHJlc3BvbnNlKSA6IHRoaXMuZmluaXNoKHJlc3BvbnNlKVxuXHRcdFx0XHR0aGlzLl9uZXh0UHJvZHVjdHNTdWJqZWN0Lm5leHQocmVzcG9uc2UuaXRlbXMpO1xuXHRcdFx0fVxuXHRcdClcblx0XHRyZXR1cm4gdHJ1ZTtcblx0fVxuXHQvKipcblx0ICogQWN0dWFsaXphIGxvcyBkYXRvcyBkZSBsYSBwYWdpbmEuXG5cdCAqIEBwYXJhbSByZXNwb25zZSByZXNwdWVzdGEgZGVsIGJhY2tlbmQgbyBvYmplY3RvIGRlbCB0aXBvIGBQYWdpbmF0aW9uYC5cblx0ICovXG5cdHVwZGF0ZVBhZ2VEYXRhKHJlc3BvbnNlOiBQYWdpbmF0aW9uKTogdm9pZCB7XG5cdFx0dGhpcy5fZGF0YVBhZ2luYXRpb24uc2V0KHsgLi4ucmVzcG9uc2UsIGNhbGxlZDogdHJ1ZSB9KVxuXHRcdHRoaXMuX2ZpbmlzaGVkID0gKHJlc3BvbnNlLnBhZ2UgPT0gcmVzcG9uc2UucGFnZXMpXG5cdFx0dGhpcy5fd2FpdGluZyA9IGZhbHNlO1xuXHRcdCAvLyBFbWl0aXIgbG9zIHZhbG9yZXMgZGUgcHJpY2VfbWluIHkgcHJpY2VfbWF4IGEgdHJhdsOpcyBkZSBwcmljZVJhbmdlU3ViamVjdFxuICAgICAgICB0aGlzLnByaWNlUmFuZ2VTdWJqZWN0Lm5leHQoe1xuICAgICAgICAgICAgcHJpY2VfbWluOiByZXNwb25zZS5wcmljZV9taW4sXG4gICAgICAgICAgICBwcmljZV9tYXg6IHJlc3BvbnNlLnByaWNlX21heFxuICAgICAgICB9KTtcblxuXHR9XG5cdC8qKlxuXHQgKiBNYXJjYSBlbCBmaW5hbCBkZSBsYXMgcGFnaW5hcywgZXMgZGVjaXIgY3VhbmRvIHlhIG5vIHF1ZWRhIG1hcyBlbGVtZW50b3MgcXVlIG1vc3RyYXIuXG5cdCAqIEBwYXJhbSByZXNwb25zZSBcblx0ICovXG5cdGZpbmlzaChyZXNwb25zZTogUGFnaW5hdGlvbik6IHZvaWQge1xuXHRcdHRoaXMuX2ZpbmlzaGVkID0gdHJ1ZTtcblx0XHR0aGlzLl93YWl0aW5nID0gZmFsc2U7XG5cdH1cblx0LyoqXG5cdCAqIE9idGVuZ28gbG9zIHByb2R1Y3RvcyBkZSBsYSBwYWdpbmEgY2FyZ2FkYSBhY3R1YWwuIFxuXHQgKiBAcmV0dXJucyBcblx0ICovXG5cdHB1YmxpYyBnZXROZXh0UHJvZHVjdHMoKTogUHJvZHVjdFtdIHtcblx0XHRyZXR1cm4gdGhpcy5fbmV4dFByb2R1Y3RzU3ViamVjdC52YWx1ZTtcblx0fVxuXHQvKipcblx0ICogRGV2dWVsdmUgc2kgZXN0YSBlc3BlcmFuZG8gbyBubyBsYSBwZXRpY2nDs24gYWwgYmFja2VuZC5cblx0ICogQHJldHVybnMgXG5cdCAqL1xuXHRwdWJsaWMgZ2V0V2FpdGluZygpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMuX3dhaXRpbmc7IH1cblx0LyoqXG5cdCAqIFNldGVhIGxhIHZhcmlhYmxlIHdhaXRpbmcuXG5cdCAqIEBwYXJhbSB2YWx1ZSBcblx0ICovXG5cdHB1YmxpYyBzZXRXYWl0aW5nKHZhbHVlOiBib29sZWFuKTogdm9pZCB7IHRoaXMuX3dhaXRpbmcgPSB2YWx1ZSB9XG5cdC8qKlxuXHQgKiBHZXR0ZXIgcGFyYSBsYSB2YXJpYWJsZSBgX2ZpbmlzaGVkYC5cblx0ICogQHJldHVybnMgXG5cdCAqL1xuXHRwdWJsaWMgZ2V0RmluaXNoZWQoKTogYm9vbGVhbiB7IHJldHVybiB0aGlzLl9maW5pc2hlZDsgfVxuXHQvKipcblx0ICogRGV2dWVsdmUgZWwgdG90YWwgZGUgSXRlbXMuXG5cdCAqIEByZXR1cm5zIFxuXHQgKi9cblx0cHVibGljIGdldFRvdGFsSXRlbXMoKTogbnVtYmVyIHtcblx0XHRyZXR1cm4gdGhpcy5fZGF0YVBhZ2luYXRpb24oKS5saW1pdCAqIHRoaXMuX2RhdGFQYWdpbmF0aW9uKCkucGFnZTtcblx0fVxuXHQvKipcblx0ICogT2J0ZW5nbyB1biBvYmplY3RvIGNvbiBsb3MgZGF0b3MgZGUgbG9zIGZpbHRyb3MgcmVzdWx0YW50ZXMuXG5cdCAqIEByZXR1cm5zIFxuXHQgKi9cblx0cHVibGljIGdldEZpbHRlcnNQYWdpbmF0aW9uKCk6IGFueSB7XG5cdFx0cmV0dXJuIHtcblx0XHRcdFwiY2F0ZWdvcmllc1wiOiB0aGlzLl9kYXRhUGFnaW5hdGlvbigpLmNhdGVnb3J5LFxuXHRcdFx0XCJhdHRyaWJ1dGVzXCI6IHRoaXMuX2RhdGFQYWdpbmF0aW9uKCkuYXR0cmlidXRlcyxcblx0XHRcdFwib3B0aW9uc1wiOiB0aGlzLl9kYXRhUGFnaW5hdGlvbigpLm9wdGlvbnNcblx0XHR9XG5cdH1cblx0LyoqXG5cdCAqIFBhcmEgY29udHJ1aXN0ZSBsYSB1cmwgZW4gYmFzZSBhIGxvcyBmaWx0cm9zIGFwbGljYWRvcy5cblx0ICogQHBhcmFtIGZpbHRlcnMgXG5cdCAqIEByZXR1cm5zIFxuXHQgKi9cblx0cHVibGljIGJ1aWxkVXJsKGZpbHRlcnM6IEZpbHRlcltdKSB7XHRcdFxuXHRcdGlmICh0aGlzLl9jb25zdGFudHMuc2VhcmNoVmFsdWUpe1xuXHRcdFx0cmV0dXJuIHRoaXMuX2ZpbHRlcnNTZXJ2aWNlLmdlbmVyYXRlRmluYWxBcGkodGhpcy5fY29uc3RhbnRzLnNlYXJjaFZhbHVlKTtcblx0XHR9IGVsc2V7XG5cdFx0XHRyZXR1cm4gdGhpcy5fZmlsdGVyc1NlcnZpY2UuZ2VuZXJhdGVGaW5hbEFwaSgpO1xuXHRcdH1cblx0XHRcblx0fVxuXHQvKipcblx0ICogRGV2dWVsdmUgdW4gb2JzZXJ2YWJsZSBkZSBsb3MgcHJvZHVjdG9zIHF1ZSBkZXZvbHZpbyBsYSDDumx0aW1hIHDDoWdpbmEgb2J0ZW5pZGEuXG5cdCAqIEBwYXJhbSB1cmwgXG5cdCAqIEByZXR1cm5zIFxuXHQgKi9cblx0cHVibGljIGdldERhdGEodXJsOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuXHRcdHRoaXMuX3Jlc2V0U3ViamVjdC5uZXh0KHRydWUpO1xuXHRcdHRoaXMuX25leHRQcm9kdWN0c1N1YmplY3QubmV4dChbXSk7XG5cdFx0dGhpcy5fY29ubmVjdGlvblNlcnZpY2UuZ2V0KHVybCwgeyBsaW1pdDogMTAsIHBhZ2U6IDEgfSkucGlwZShcblx0XHRcdG1hcChyZXMgPT57IFxuXHRcdFx0XHQvLyBISURSQVRBUiBESU7DgU1JQ08gU09MTyBVTkEgVkVaIDw8PFxuXHRcdFx0XHRpZiAoIXRoaXMuX2h5ZHJhdGVkRHluYW1pY3MgJiYgcmVzPy5vcHRpb25zKSB7XG5cdFx0XHRcdFx0dGhpcy5fZmlsdGVyc1NlcnZpY2UuaHlkcmF0ZUR5bmFtaWNzKHJlcy5vcHRpb25zKTtcblx0XHRcdFx0XHR0aGlzLl9oeWRyYXRlZER5bmFtaWNzID0gdHJ1ZTtcblx0XHRcdFx0fVxuXHQgIFxuXHRcdFx0XHR0aGlzLl9uZXh0UHJvZHVjdHNTdWJqZWN0Lm5leHQocmVzLml0ZW1zKTtcblx0XHRcdFx0cmVzLmxpbmtzID8gdGhpcy51cGRhdGVQYWdlRGF0YShyZXMpIDogdGhpcy5maW5pc2gocmVzKVxuXHRcdFx0fSkpLnN1YnNjcmliZSgpO1xuXG5cdFx0cmV0dXJuIHRoaXMubmV4dFByb2R1Y3RzJDtcblx0fVxuXG5cdHByaXZhdGUgdXJsU2lnbmF0dXJlKGZpbHRlcnM6IEZpbHRlcltdKTogc3RyaW5nIHtcblx0XHRjb25zdCBwYXJhbXMgPSBmaWx0ZXJzLm1hcChmID0+IChmPy50b1VybFBhcmFtcz8uKCkgfHwgJycpKS5qb2luKCd8Jyk7XG5cdFx0Y29uc3Qgc3YgPSB0aGlzLl9jb25zdGFudHMuc2VhcmNoVmFsdWUgfHwgJyc7XG5cdFx0cmV0dXJuIHBhcmFtcyArICc6OicgKyBzdjtcblx0fVxufVxuXG4iXX0=
|
|
178
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLXNlcnZpY2VzL3BhZ2luYXRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBYyxXQUFXLEVBQUUsU0FBUyxFQUFPLE1BQU0sTUFBTSxDQUFDO0FBRTdGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVuRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxjQUFjLENBQUM7O0FBQ3BEOzs7R0FHRztBQUlILE1BQU0sT0FBTyxpQkFBaUI7SUFFckIsa0JBQWtCLEdBQXNCLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ2xFLGVBQWUsR0FBbUIsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFBO0lBQ3hELFVBQVUsR0FBeUIsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUM7SUFFakUsZUFBZSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLElBQUksQ0FDMUQsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUNkLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxFQUNoRCxTQUFTLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtRQUNyQixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ25DLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMxQixDQUFDLENBQUMsQ0FDRixDQUFBO0lBRU8sZUFBZSxHQUFRLE1BQU0sQ0FBYTtRQUNqRCxVQUFVLEVBQUUsRUFBRTtRQUNkLFFBQVEsRUFBRSxFQUFFO1FBQ1osT0FBTyxFQUFFLEVBQUU7UUFDWCxLQUFLLEVBQUUsQ0FBQztRQUNSLElBQUksRUFBRSxDQUFDO1FBQ1AsS0FBSyxFQUFFLENBQUM7UUFDUixLQUFLLEVBQUUsQ0FBQztRQUNSLEtBQUssRUFBRSxFQUFFO1FBQ1QsTUFBTSxFQUFFLEtBQUs7UUFDYixTQUFTLEVBQUUsQ0FBQztRQUNaLFNBQVMsRUFBRSxDQUFDO0tBQ1osQ0FBQyxDQUFDO0lBRUssUUFBUSxHQUFZLEtBQUssQ0FBQztJQUMxQixTQUFTLEdBQVksS0FBSyxDQUFDO0lBQzNCLE9BQU8sR0FBVyxFQUFFLENBQUM7SUFDckIsTUFBTSxHQUFZLEtBQUssQ0FBQztJQUV4QixvQkFBb0IsR0FBK0IsSUFBSSxlQUFlLENBQVksRUFBRSxDQUFDLENBQUM7SUFDdkYsYUFBYSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUV4RCxhQUFhLEdBQTZCLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO0lBQy9FLE1BQU0sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBRTFDLGlCQUFpQixHQUFHLElBQUksZUFBZSxDQUEyQyxFQUFFLFNBQVMsRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDbkgsV0FBVyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUUzRCxnQkFBZ0IsQ0FBQztJQUVqQjs7OztPQUlHO0lBQ0gsVUFBVSxDQUFDLE1BQWMsRUFBRSxLQUFjO1FBQ3hDLHFCQUFxQjtRQUNyQixJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUN0QixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUMsS0FBSyxHQUFHLEtBQUssSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQztRQUMzRSxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUN2QixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUNuQixJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFDRDs7OztPQUlHO0lBQ0gsT0FBTyxDQUFDLElBQVU7UUFDakIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFDckIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNuQyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFBLHNDQUFzQztRQUN0RixJQUFJLFlBQVksQ0FBQztRQUNqQixJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNqQixZQUFZLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUE7WUFDMUcsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUE7UUFDcEIsQ0FBQzthQUFNLENBQUM7WUFDUCxZQUFZLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN4RixDQUFDO1FBRUQsQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLFlBQVksQ0FBQyxTQUFTLENBQ3hDLENBQUMsUUFBb0IsRUFBRSxFQUFFO1lBQ3hCLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUE7WUFDdEUsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEQsQ0FBQyxDQUNELENBQUE7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNiLENBQUM7SUFDRDs7O09BR0c7SUFDSCxjQUFjLENBQUMsUUFBb0I7UUFDbEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLFFBQVEsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQTtRQUN2RCxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksSUFBSSxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDbEQsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDckIsNEVBQTRFO1FBQ3ZFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUM7WUFDeEIsU0FBUyxFQUFFLFFBQVEsQ0FBQyxTQUFTO1lBQzdCLFNBQVMsRUFBRSxRQUFRLENBQUMsU0FBUztTQUNoQyxDQUFDLENBQUM7SUFFVixDQUFDO0lBQ0Q7OztPQUdHO0lBQ0gsTUFBTSxDQUFDLFFBQW9CO1FBQzFCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO0lBQ3ZCLENBQUM7SUFDRDs7O09BR0c7SUFDSSxlQUFlO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQztJQUN4QyxDQUFDO0lBQ0Q7OztPQUdHO0lBQ0ksVUFBVSxLQUFjLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDdEQ7OztPQUdHO0lBQ0ksVUFBVSxDQUFDLEtBQWMsSUFBVSxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQSxDQUFDLENBQUM7SUFDakU7OztPQUdHO0lBQ0ksV0FBVyxLQUFjLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFDeEQ7OztPQUdHO0lBQ0ksYUFBYTtRQUNuQixPQUFPLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLElBQUksQ0FBQztJQUNuRSxDQUFDO0lBQ0Q7OztPQUdHO0lBQ0ksb0JBQW9CO1FBQzFCLE9BQU87WUFDTixZQUFZLEVBQUUsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVE7WUFDN0MsWUFBWSxFQUFFLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxVQUFVO1lBQy9DLFNBQVMsRUFBRSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUMsT0FBTztTQUN6QyxDQUFBO0lBQ0YsQ0FBQztJQUNEOzs7O09BSUc7SUFDSSxRQUFRLENBQUMsT0FBaUI7UUFDaEMsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBQyxDQUFDO1lBQ2hDLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzNFLENBQUM7YUFBSyxDQUFDO1lBQ04sT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDaEQsQ0FBQztJQUVGLENBQUM7SUFDRDs7OztPQUlHO0lBQ0ksT0FBTyxDQUFDLEdBQVc7UUFDekIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDOUIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNuQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUM1RCxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDVCxrQkFBa0I7WUFDbEIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDMUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUN4RCxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBRWpCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUMzQixDQUFDO3dHQS9LVyxpQkFBaUI7NEdBQWpCLGlCQUFpQixjQUZqQixNQUFNOzs0RkFFTixpQkFBaUI7a0JBSDdCLFVBQVU7bUJBQUM7b0JBQ1gsVUFBVSxFQUFFLE1BQU07aUJBQ2xCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlLCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbm5lY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi4vYXBpJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgZmlsdGVyLCBtYXAsIE9ic2VydmFibGUsIHNoYXJlUmVwbGF5LCBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgUGFnaW5hdGlvbiwgUHJvZHVjdCB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgRmlsdGVyc1NlcnZpY2UgfSBmcm9tICcuL2ZpbHRlcnMuc2VydmljZSc7XG5pbXBvcnQgeyBGaWx0ZXIgfSBmcm9tICcuLi9jbGFzc2VzJztcbmltcG9ydCB7IENvcmVDb25zdGFudHNTZXJ2aWNlIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbi8qKlxuICogU2VydmljaW8gcGFyYSBtYW5lamFyIGxhIHBhZ2luYWNpw7NuIGRlIGxvcyBwcm9kdWN0b3MuXG4gKiBAY2xhc3MgUGFnaW5hdGlvblNlcnZpY2VcbiAqL1xuQEluamVjdGFibGUoe1xuXHRwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgUGFnaW5hdGlvblNlcnZpY2Uge1xuXG5cdHByaXZhdGUgX2Nvbm5lY3Rpb25TZXJ2aWNlOiBDb25uZWN0aW9uU2VydmljZSA9IGluamVjdChDb25uZWN0aW9uU2VydmljZSk7XG5cdHByaXZhdGUgX2ZpbHRlcnNTZXJ2aWNlOiBGaWx0ZXJzU2VydmljZSA9IGluamVjdChGaWx0ZXJzU2VydmljZSlcblx0cHJpdmF0ZSBfY29uc3RhbnRzOiBDb3JlQ29uc3RhbnRzU2VydmljZSA9IGluamVjdChDb3JlQ29uc3RhbnRzU2VydmljZSk7XG5cdFxuXHRwdWJsaWMgcGFnaW5hdGlvbkRhdGEkID0gdGhpcy5fZmlsdGVyc1NlcnZpY2UuZmlsdGVycyQucGlwZShcblx0XHRzaGFyZVJlcGxheSgxKSxcblx0XHRmaWx0ZXIoZmlsdGVycyA9PiBmaWx0ZXJzICYmIGZpbHRlcnMubGVuZ3RoID4gMCksXG5cdFx0c3dpdGNoTWFwKChmaWx0ZXJzKSA9PiB7XHRcdFx0XG5cdFx0XHRjb25zdCB1cmwgPSB0aGlzLmJ1aWxkVXJsKGZpbHRlcnMpO1x0XHRcdFxuXHRcdFx0cmV0dXJuIHRoaXMuZ2V0RGF0YSh1cmwpO1xuXHRcdH0pXG5cdClcblxuXHRwcml2YXRlIF9kYXRhUGFnaW5hdGlvbjogYW55ID0gc2lnbmFsPFBhZ2luYXRpb24+KHtcblx0XHRhdHRyaWJ1dGVzOiBbXSxcblx0XHRjYXRlZ29yeTogW10sXG5cdFx0b3B0aW9uczogW10sXG5cdFx0bGltaXQ6IDAsXG5cdFx0cGFnZTogMCxcblx0XHRwYWdlczogMCxcblx0XHR0b3RhbDogMCxcblx0XHRpdGVtczogW10sXG5cdFx0Y2FsbGVkOiBmYWxzZSxcblx0XHRwcmljZV9tYXg6IDAsXG5cdFx0cHJpY2VfbWluOiAwXG5cdH0pO1xuXG5cdHByaXZhdGUgX3dhaXRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcblx0cHJpdmF0ZSBfZmluaXNoZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblx0cHJpdmF0ZSBfYXBpVXJsOiBzdHJpbmcgPSAnJztcblx0cHJpdmF0ZSBfc3RhcnQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuXHRwcml2YXRlIF9uZXh0UHJvZHVjdHNTdWJqZWN0OiBCZWhhdmlvclN1YmplY3Q8UHJvZHVjdFtdPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8UHJvZHVjdFtdPihbXSk7XG5cdHB1YmxpYyBuZXh0UHJvZHVjdHMkID0gdGhpcy5fbmV4dFByb2R1Y3RzU3ViamVjdC5hc09ic2VydmFibGUoKTtcblxuXHRwcml2YXRlIF9yZXNldFN1YmplY3Q6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuXHRwdWJsaWMgcmVzZXQkID0gdGhpcy5fcmVzZXRTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuXG5cdHByaXZhdGUgcHJpY2VSYW5nZVN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHsgcHJpY2VfbWluOiBudW1iZXIsIHByaWNlX21heDogbnVtYmVyIH0+KHsgcHJpY2VfbWluOiAwLCBwcmljZV9tYXg6IDAgfSk7XG5cdHB1YmxpYyBwcmljZVJhbmdlJCA9IHRoaXMucHJpY2VSYW5nZVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG5cdFxuXHRjb25zdHJ1Y3RvcigpIHsgfVxuXG5cdC8qKlxuXHQgKiBJbmljaWFsaXphIGxhIGNvbmZpZ3VyYWNpw7NuIHBhcmEgZWwgU2VydmljaW8gZGUgUGFnaW5hY2nDs24uXG5cdCAqIEBwYXJhbSBhcGlVcmwgVXJsIGNvbiBsb3MgZmlsdHJvcyBhcGxpY2Fkb3MuIFxuXHQgKiBAcGFyYW0gbGltaXQgbGltaXRlIGRlIHByb2R1Y3RvcyBlbiBjYWRhIHBldGljacOzbi5cblx0ICovXG5cdGluaXRpYWxpemUoYXBpVXJsOiBzdHJpbmcsIGxpbWl0PzogbnVtYmVyKSB7XG5cdFx0Ly9jb25zb2xlLmxvZyhhcGlVcmwpXG5cdFx0dGhpcy5fYXBpVXJsID0gYXBpVXJsO1xuXHRcdHRoaXMuX2RhdGFQYWdpbmF0aW9uKCkubGltaXQgPSBsaW1pdCB8fCB0aGlzLl9kYXRhUGFnaW5hdGlvbigpLmxpbWl0IHx8IDEwO1xuXHRcdHRoaXMuX2ZpbmlzaGVkID0gZmFsc2U7XG5cdFx0dGhpcy5fc3RhcnQgPSB0cnVlO1xuXHRcdHRoaXMuX25leHRQcm9kdWN0c1N1YmplY3QubmV4dChbXSk7XG5cdH1cblx0LyoqXG5cdCAqIE9idGVuZ28gbG9zIGRhdG9zIGRlIGxhIHNpZ3VpZW50ZSBww6FnaW5hLlxuXHQgKiBAcGFyYW0gbmV4dCBcblx0ICogQHJldHVybnMgXG5cdCAqL1xuXHRnZXROZXh0KG5leHQ/OiBhbnkpOiBib29sZWFuIHtcblx0XHR0aGlzLl93YWl0aW5nID0gdHJ1ZTtcblx0XHR0aGlzLl9uZXh0UHJvZHVjdHNTdWJqZWN0Lm5leHQoW10pO1xuXHRcdHRoaXMuX2FwaVVybCA9IHRoaXMuX2FwaVVybC5yZXBsYWNlKCclMjAnLCAnICcpOy8vIG1hcyBwYXJhIGN1YW5kbyBlcyB1biBzZWFyY2ggdmFsdWUuXG5cdFx0bGV0IG5leHRQcm9kdWN0cztcblx0XHRpZiAodGhpcy5fc3RhcnQpIHtcblx0XHRcdG5leHRQcm9kdWN0cyA9IHRoaXMuX2Nvbm5lY3Rpb25TZXJ2aWNlLmdldCh0aGlzLl9hcGlVcmwsIHsgbGltaXQ6IHRoaXMuX2RhdGFQYWdpbmF0aW9uKCkubGltaXQsIHBhZ2U6IDEgfSlcblx0XHRcdHRoaXMuX3N0YXJ0ID0gZmFsc2Vcblx0XHR9IGVsc2Uge1xuXHRcdFx0bmV4dFByb2R1Y3RzID0gdGhpcy5fY29ubmVjdGlvblNlcnZpY2UuZ2V0KHRoaXMuX2RhdGFQYWdpbmF0aW9uKCkubGlua3MubmV4dC5zbGljZSgxKSk7XG5cdFx0fVxuXG5cdFx0IXRoaXMuX2ZpbmlzaGVkICYmIG5leHRQcm9kdWN0cy5zdWJzY3JpYmUoXG5cdFx0XHQocmVzcG9uc2U6IFBhZ2luYXRpb24pID0+IHtcblx0XHRcdFx0cmVzcG9uc2UubGlua3MgPyB0aGlzLnVwZGF0ZVBhZ2VEYXRhKHJlc3BvbnNlKSA6IHRoaXMuZmluaXNoKHJlc3BvbnNlKVxuXHRcdFx0XHR0aGlzLl9uZXh0UHJvZHVjdHNTdWJqZWN0Lm5leHQocmVzcG9uc2UuaXRlbXMpO1xuXHRcdFx0fVxuXHRcdClcblx0XHRyZXR1cm4gdHJ1ZTtcblx0fVxuXHQvKipcblx0ICogQWN0dWFsaXphIGxvcyBkYXRvcyBkZSBsYSBwYWdpbmEuXG5cdCAqIEBwYXJhbSByZXNwb25zZSByZXNwdWVzdGEgZGVsIGJhY2tlbmQgbyBvYmplY3RvIGRlbCB0aXBvIGBQYWdpbmF0aW9uYC5cblx0ICovXG5cdHVwZGF0ZVBhZ2VEYXRhKHJlc3BvbnNlOiBQYWdpbmF0aW9uKTogdm9pZCB7XG5cdFx0dGhpcy5fZGF0YVBhZ2luYXRpb24uc2V0KHsgLi4ucmVzcG9uc2UsIGNhbGxlZDogdHJ1ZSB9KVxuXHRcdHRoaXMuX2ZpbmlzaGVkID0gKHJlc3BvbnNlLnBhZ2UgPT0gcmVzcG9uc2UucGFnZXMpXG5cdFx0dGhpcy5fd2FpdGluZyA9IGZhbHNlO1xuXHRcdCAvLyBFbWl0aXIgbG9zIHZhbG9yZXMgZGUgcHJpY2VfbWluIHkgcHJpY2VfbWF4IGEgdHJhdsOpcyBkZSBwcmljZVJhbmdlU3ViamVjdFxuICAgICAgICB0aGlzLnByaWNlUmFuZ2VTdWJqZWN0Lm5leHQoe1xuICAgICAgICAgICAgcHJpY2VfbWluOiByZXNwb25zZS5wcmljZV9taW4sXG4gICAgICAgICAgICBwcmljZV9tYXg6IHJlc3BvbnNlLnByaWNlX21heFxuICAgICAgICB9KTtcblxuXHR9XG5cdC8qKlxuXHQgKiBNYXJjYSBlbCBmaW5hbCBkZSBsYXMgcGFnaW5hcywgZXMgZGVjaXIgY3VhbmRvIHlhIG5vIHF1ZWRhIG1hcyBlbGVtZW50b3MgcXVlIG1vc3RyYXIuXG5cdCAqIEBwYXJhbSByZXNwb25zZSBcblx0ICovXG5cdGZpbmlzaChyZXNwb25zZTogUGFnaW5hdGlvbik6IHZvaWQge1xuXHRcdHRoaXMuX2ZpbmlzaGVkID0gdHJ1ZTtcblx0XHR0aGlzLl93YWl0aW5nID0gZmFsc2U7XG5cdH1cblx0LyoqXG5cdCAqIE9idGVuZ28gbG9zIHByb2R1Y3RvcyBkZSBsYSBwYWdpbmEgY2FyZ2FkYSBhY3R1YWwuIFxuXHQgKiBAcmV0dXJucyBcblx0ICovXG5cdHB1YmxpYyBnZXROZXh0UHJvZHVjdHMoKTogUHJvZHVjdFtdIHtcblx0XHRyZXR1cm4gdGhpcy5fbmV4dFByb2R1Y3RzU3ViamVjdC52YWx1ZTtcblx0fVxuXHQvKipcblx0ICogRGV2dWVsdmUgc2kgZXN0YSBlc3BlcmFuZG8gbyBubyBsYSBwZXRpY2nDs24gYWwgYmFja2VuZC5cblx0ICogQHJldHVybnMgXG5cdCAqL1xuXHRwdWJsaWMgZ2V0V2FpdGluZygpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMuX3dhaXRpbmc7IH1cblx0LyoqXG5cdCAqIFNldGVhIGxhIHZhcmlhYmxlIHdhaXRpbmcuXG5cdCAqIEBwYXJhbSB2YWx1ZSBcblx0ICovXG5cdHB1YmxpYyBzZXRXYWl0aW5nKHZhbHVlOiBib29sZWFuKTogdm9pZCB7IHRoaXMuX3dhaXRpbmcgPSB2YWx1ZSB9XG5cdC8qKlxuXHQgKiBHZXR0ZXIgcGFyYSBsYSB2YXJpYWJsZSBgX2ZpbmlzaGVkYC5cblx0ICogQHJldHVybnMgXG5cdCAqL1xuXHRwdWJsaWMgZ2V0RmluaXNoZWQoKTogYm9vbGVhbiB7IHJldHVybiB0aGlzLl9maW5pc2hlZDsgfVxuXHQvKipcblx0ICogRGV2dWVsdmUgZWwgdG90YWwgZGUgSXRlbXMuXG5cdCAqIEByZXR1cm5zIFxuXHQgKi9cblx0cHVibGljIGdldFRvdGFsSXRlbXMoKTogbnVtYmVyIHtcblx0XHRyZXR1cm4gdGhpcy5fZGF0YVBhZ2luYXRpb24oKS5saW1pdCAqIHRoaXMuX2RhdGFQYWdpbmF0aW9uKCkucGFnZTtcblx0fVxuXHQvKipcblx0ICogT2J0ZW5nbyB1biBvYmplY3RvIGNvbiBsb3MgZGF0b3MgZGUgbG9zIGZpbHRyb3MgcmVzdWx0YW50ZXMuXG5cdCAqIEByZXR1cm5zIFxuXHQgKi9cblx0cHVibGljIGdldEZpbHRlcnNQYWdpbmF0aW9uKCk6IGFueSB7XG5cdFx0cmV0dXJuIHtcblx0XHRcdFwiY2F0ZWdvcmllc1wiOiB0aGlzLl9kYXRhUGFnaW5hdGlvbigpLmNhdGVnb3J5LFxuXHRcdFx0XCJhdHRyaWJ1dGVzXCI6IHRoaXMuX2RhdGFQYWdpbmF0aW9uKCkuYXR0cmlidXRlcyxcblx0XHRcdFwib3B0aW9uc1wiOiB0aGlzLl9kYXRhUGFnaW5hdGlvbigpLm9wdGlvbnNcblx0XHR9XG5cdH1cblx0LyoqXG5cdCAqIFBhcmEgY29udHJ1aXN0ZSBsYSB1cmwgZW4gYmFzZSBhIGxvcyBmaWx0cm9zIGFwbGljYWRvcy5cblx0ICogQHBhcmFtIGZpbHRlcnMgXG5cdCAqIEByZXR1cm5zIFxuXHQgKi9cblx0cHVibGljIGJ1aWxkVXJsKGZpbHRlcnM6IEZpbHRlcltdKSB7XHRcdFxuXHRcdGlmICh0aGlzLl9jb25zdGFudHMuc2VhcmNoVmFsdWUpe1xuXHRcdFx0cmV0dXJuIHRoaXMuX2ZpbHRlcnNTZXJ2aWNlLmdlbmVyYXRlRmluYWxBcGkodGhpcy5fY29uc3RhbnRzLnNlYXJjaFZhbHVlKTtcblx0XHR9IGVsc2V7XG5cdFx0XHRyZXR1cm4gdGhpcy5fZmlsdGVyc1NlcnZpY2UuZ2VuZXJhdGVGaW5hbEFwaSgpO1xuXHRcdH1cblx0XHRcblx0fVxuXHQvKipcblx0ICogRGV2dWVsdmUgdW4gb2JzZXJ2YWJsZSBkZSBsb3MgcHJvZHVjdG9zIHF1ZSBkZXZvbHZpbyBsYSDDumx0aW1hIHDDoWdpbmEgb2J0ZW5pZGEuXG5cdCAqIEBwYXJhbSB1cmwgXG5cdCAqIEByZXR1cm5zIFxuXHQgKi9cblx0cHVibGljIGdldERhdGEodXJsOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuXHRcdHRoaXMuX3Jlc2V0U3ViamVjdC5uZXh0KHRydWUpO1xuXHRcdHRoaXMuX25leHRQcm9kdWN0c1N1YmplY3QubmV4dChbXSk7XG5cdFx0dGhpcy5fY29ubmVjdGlvblNlcnZpY2UuZ2V0KHVybCwgeyBsaW1pdDogMTAsIHBhZ2U6IDEgfSkucGlwZShcblx0XHRcdG1hcChyZXMgPT57IFxuXHRcdFx0XHQvL2NvbnNvbGUubG9nKHJlcylcblx0XHRcdFx0dGhpcy5fbmV4dFByb2R1Y3RzU3ViamVjdC5uZXh0KHJlcy5pdGVtcyk7XG5cdFx0XHRcdHJlcy5saW5rcyA/IHRoaXMudXBkYXRlUGFnZURhdGEocmVzKSA6IHRoaXMuZmluaXNoKHJlcylcblx0XHRcdH0pKS5zdWJzY3JpYmUoKTtcblxuXHRcdHJldHVybiB0aGlzLm5leHRQcm9kdWN0cyQ7XG5cdH1cbn1cblxuIl19
|
|
@@ -61,15 +61,8 @@ export class ProductsService {
|
|
|
61
61
|
* @param searchValue
|
|
62
62
|
*/
|
|
63
63
|
getProductsForFilter(paginationSettings, searchValue) {
|
|
64
|
-
|
|
65
|
-
this.
|
|
66
|
-
this._consts.searchValue = sv;
|
|
67
|
-
if (paginationSettings) {
|
|
68
|
-
this._filtersService.setFilters(paginationSettings);
|
|
69
|
-
}
|
|
70
|
-
const apiUrl = this._filtersService.generateFinalApi(sv);
|
|
71
|
-
const limit = paginationSettings?.limit ?? 10;
|
|
72
|
-
this._paginationService.initialize(apiUrl, limit);
|
|
64
|
+
searchValue ? this.searchValue.set(searchValue) : this.searchValue.set('');
|
|
65
|
+
paginationSettings && this._filtersService.setFilters(paginationSettings);
|
|
73
66
|
}
|
|
74
67
|
/**
|
|
75
68
|
* Actualiza los productos con los de la siguiente pagina.
|
|
@@ -198,4 +191,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
198
191
|
providedIn: 'root'
|
|
199
192
|
}]
|
|
200
193
|
}], ctorParameters: () => [] });
|
|
201
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWVhc3ljb21tZXJjZS12MTgvc3JjL2xpYi9lYy1zZXJ2aWNlcy9wcm9kdWN0cy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBdUIsTUFBTSxFQUFFLFVBQVUsRUFBeUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZHLE9BQU8sRUFBRSxlQUFlLEVBQTBELE1BQU0sTUFBTSxDQUFDO0FBRS9GLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUMzQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDekUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXpELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTs7QUFLbEQsTUFBTSxPQUFPLGVBQWU7SUFFaEIsV0FBVyxHQUFzQixNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUMzRCxVQUFVLEdBQXdCLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQzlELGVBQWUsR0FBbUIsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3pELGtCQUFrQixHQUFzQixNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUNsRSxPQUFPLEdBQXlCLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBRTdELGdCQUFnQixHQUErQixJQUFJLGVBQWUsQ0FBWSxFQUFFLENBQUMsQ0FBQTtJQUNsRixTQUFTLEdBQTBCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLEVBQUUsQ0FB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QUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFRCxRQUFRLENBQUMsT0FBZ0I7UUFDckIsMkRBQTJEO1FBQzNELElBQUksT0FBTyxPQUFPLENBQUMsS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ3BDLE9BQU8sT0FBTyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7UUFDN0IsQ0FBQztRQUNELGlFQUFpRTtRQUNqRSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7WUFDbEMsT0FBTyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDL0QsQ0FBQztRQUNELDhEQUE4RDtRQUM5RCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO3dHQXROUSxlQUFlOzRHQUFmLGVBQWUsY0FGWixNQUFNOzs0RkFFVCxlQUFlO2tCQUgzQixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVudmlyb25tZW50SW5qZWN0b3IsIGluamVjdCwgSW5qZWN0YWJsZSwgcnVuSW5JbmplY3Rpb25Db250ZXh0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgbWFwLCBPYnNlcnZhYmxlLCBSZXBsYXlTdWJqZWN0LCBzaGFyZVJlcGxheSwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBEZWZhdWx0RmlsdGVyLCBGaWx0ZXJFbGVtZW50LCBGaWx0ZXJUeXBlLCBJRmlsdGVyLCBPcHRpb25zLCBQYWdpbmF0aW9uU2V0dGluZ3MsIFBhcmFtc1Byb2R1Y3RzV2l0aFVuaXF1ZVZhcmlhbnQsIFByb2R1Y3QgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IENvbm5lY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi4vYXBpJztcbmltcG9ydCB7IEFwaUNvbnN0YW50c1NlcnZpY2UsIENvcmVDb25zdGFudHNTZXJ2aWNlIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IE9wdGlvbnNTZXJ2aWNlIH0gZnJvbSAnLi9vcHRpb25zLnNlcnZpY2UnO1xuaW1wb3J0IHsgUGFnaW5hdGlvblNlcnZpY2UgfSBmcm9tICcuL3BhZ2luYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBGaWx0ZXIsIEZpbHRlckZhY3RvcnksIH0gZnJvbSAnLi4vY2xhc3Nlcyc7XG5pbXBvcnQgeyBQcmljZVJhbmdlRmlsdGVyIH0gZnJvbSAnLi4vY2xhc3Nlcy9maWx0ZXJzL3ByaWNlX3JhbmdlLWZpbHRlcic7XG5pbXBvcnQgeyBGaWx0ZXJzU2VydmljZSB9IGZyb20gJy4vZmlsdGVycy5zZXJ2aWNlJ1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFByb2R1Y3RzU2VydmljZSB7XG5cbiAgICBwcml2YXRlIF9jb25uZWN0aW9uOiBDb25uZWN0aW9uU2VydmljZSA9IGluamVjdChDb25uZWN0aW9uU2VydmljZSk7XG4gICAgcHJpdmF0ZSBfYXBpQ29uc3RzOiBBcGlDb25zdGFudHNTZXJ2aWNlID0gaW5qZWN0KEFwaUNvbnN0YW50c1NlcnZpY2UpO1xuICAgIHByaXZhdGUgX29wdGlvbnNTZXJ2aWNlOiBPcHRpb25zU2VydmljZSA9IGluamVjdChPcHRpb25zU2VydmljZSk7XG4gICAgcHJpdmF0ZSBfcGFnaW5hdGlvblNlcnZpY2U6IFBhZ2luYXRpb25TZXJ2aWNlID0gaW5qZWN0KFBhZ2luYXRpb25TZXJ2aWNlKTtcbiAgICBwcml2YXRlIF9jb25zdHM6IENvcmVDb25zdGFudHNTZXJ2aWNlID0gaW5qZWN0KENvcmVDb25zdGFudHNTZXJ2aWNlKTtcblxuICAgIHByaXZhdGUgX3Byb2R1Y3RzU3ViamVjdDogQmVoYXZpb3JTdWJqZWN0PFByb2R1Y3RbXT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFByb2R1Y3RbXT4oW10pXG4gICAgcHVibGljIHByb2R1Y3RzJDogT2JzZXJ2YWJsZTxQcm9kdWN0W10+ID0gdGhpcy5fcHJvZHVjdHNTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICAgIHByaXZhdGUgX2ZpbHRlcnNTZXJ2aWNlOiBGaWx0ZXJzU2VydmljZSA9IGluamVjdChGaWx0ZXJzU2VydmljZSlcbiAgICBwcml2YXRlIGZpbHRlcnNTdWJqZWN0OiBCZWhhdmlvclN1YmplY3Q8RmlsdGVyW10+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxGaWx0ZXJbXT4oW10pO1xuICAgIHB1YmxpYyBmaWx0ZXJzJCA9IHRoaXMuZmlsdGVyc1N1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG5cbiAgICBwcml2YXRlIHNlYXJjaFZhbHVlID0gc2lnbmFsPHN0cmluZz4oJycpO1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuX3BhZ2luYXRpb25TZXJ2aWNlLnJlc2V0JC5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgICAgIHRoaXMuX3Byb2R1Y3RzU3ViamVjdC5uZXh0KFtdKVxuICAgICAgICB9KVxuICAgICAgICB0aGlzLl9wYWdpbmF0aW9uU2VydmljZS5wYWdpbmF0aW9uRGF0YSQuc3Vic2NyaWJlKFxuICAgICAgICAgICAgcHJvZHVjdHMgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHByb2R1Y3RzV2l0aFVuaXF1ZVZhcmlhbnQgPSB0aGlzLl9jb25zdHMuZ2V0UHJvZHVjdFdpdGhVbmlxdWVWYXJpYW50KCk7XG4gICAgICAgICAgICAgICAgaWYgKHByb2R1Y3RzV2l0aFVuaXF1ZVZhcmlhbnQpXG4gICAgICAgICAgICAgICAgICAgIHByb2R1Y3RzID0gdGhpcy5nZXRQcm9kdWN0c1dpdGhVbmlxdWVWYXJpYW50KHByb2R1Y3RzLCB0aGlzLmdldE9iamVjdFdpdGhWYXJpYW50KCkpXG4gICAgICAgICAgICAgICAgY29uc3QgY3VycmVudFByb2R1Y3RzID0gdGhpcy5fcHJvZHVjdHNTdWJqZWN0LnZhbHVlO1xuICAgICAgICAgICAgICAgIHRoaXMuX3Byb2R1Y3RzU3ViamVjdC5uZXh0KFsuLi5jdXJyZW50UHJvZHVjdHMsIC4uLnByb2R1Y3RzXSk7XG5cbiAgICAgICAgICAgIH1cblxuICAgICAgICApXG4gICAgICAgIC8vIFN1c2NyaWJpcnNlIGEgbG9zIGNhbWJpb3MgZW4gZWwgcmFuZ28gZGUgcHJlY2lvc1xuICAgICAgICB0aGlzLl9wYWdpbmF0aW9uU2VydmljZS5wcmljZVJhbmdlJC5zdWJzY3JpYmUocmFuZ2UgPT4ge1xuICAgICAgICAgICAgbGV0IG1pbiA9IE1hdGguZmxvb3IocmFuZ2UucHJpY2VfbWluKTtcbiAgICAgICAgICAgIGxldCBtYXggPSBNYXRoLmNlaWwocmFuZ2UucHJpY2VfbWF4KTtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlUHJpY2VSYW5nZUZpbHRlcihtaW4sIG1heCk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLl9maWx0ZXJzU2VydmljZS5maWx0ZXJzJC5zdWJzY3JpYmUoZmlsdGVycyA9PiB7XG4gICAgICAgICAgICB0aGlzLmZpbHRlcnNTdWJqZWN0Lm5leHQoZmlsdGVycyk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlUHJpY2VSYW5nZUZpbHRlcihtaW46IG51bWJlciwgbWF4OiBudW1iZXIpIHtcbiAgICAgICAgY29uc3QgZmluYWxfZmlsdGVyczogRmlsdGVyW10gPSB0aGlzLmZpbHRlcnNTdWJqZWN0LnZhbHVlO1xuICAgICAgICBjb25zdCBwcmljZVJhbmdlRmlsdGVyID0gZmluYWxfZmlsdGVycy5maW5kKGZpbHRlciA9PiBmaWx0ZXIgaW5zdGFuY2VvZiBQcmljZVJhbmdlRmlsdGVyKTtcblxuICAgICAgICBpZiAocHJpY2VSYW5nZUZpbHRlcikge1xuICAgICAgICAgICAgKHByaWNlUmFuZ2VGaWx0ZXIgYXMgUHJpY2VSYW5nZUZpbHRlcikudXBkYXRlUHJpY2VzKG1pbiwgbWF4KTtcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyc1N1YmplY3QubmV4dChmaW5hbF9maWx0ZXJzKTtcbiAgICAgICAgfVxuICAgIH1cblxuXG5cbiAgICAvL0FQSSBVUkxcbiAgICBwcml2YXRlIF9zaG9wQXBpVXJsID0gdGhpcy5fYXBpQ29uc3RzLlNIT1BfQVBJX1VSTDtcbiAgICBwcm9kdWN0QnlDb2RlQXBpKGNvZGU6IHN0cmluZywgdmFyaWFudDogYm9vbGVhbikgeyByZXR1cm4gdGhpcy5fc2hvcEFwaVVybCArIHRoaXMuX2FwaUNvbnN0cy5DSEFOTkVMICsgJy9wcm9kdWN0cy9ieS1jb2RlLycgKyAodmFyaWFudCA/ICd2YXJpYW50LycgOiAnJykgKyBjb2RlICsgJz9sb2NhbGU9JyArIHRoaXMuX2FwaUNvbnN0cy5MT0NBTEU7IH1cbiAgICAvLyByZXZpZXdcbiAgICBzYXZlUHJvZHVjdFJldmlld3NBcGkoY29kZTogc3RyaW5nKSB7IHJldHVybiB0aGlzLl9zaG9wQXBpVXJsICsgdGhpcy5fYXBpQ29uc3RzLkNIQU5ORUwgKyAnL3Byb2R1Y3RzL2J5LWNvZGUvJyArIGNvZGUgKyAnL3Jldmlld3MnOyB9XG4gICAgLy9yZWxhdGVkIHByb2R1Y3RzXG4gICAgcmVsYXRlZFByb2R1Y3RzQXBpID0gKGtleTogc3RyaW5nKTogc3RyaW5nID0+ICdzaG9wLWFwaS8nICsgdGhpcy5fYXBpQ29uc3RzLkNIQU5ORUwgKyAnL3Byb2R1Y3RzL3JlbGF0ZWQvYnktY29kZS8nICsga2V5ICsgJz9sb2NhbGU9JyArIHRoaXMuX2FwaUNvbnN0cy5MT0NBTEU7XG5cbiAgICAvKipcbiAgICAgKiBTZXRlYSBsb3MgZmlsdHJvcyBwYXJhIG9idGVuZXIgbG9zIHByb2R1Y3Rvcy5cbiAgICAgKiBAcGFyYW0gcGFnaW5hdGlvblNldHRpbmdzIFxuICAgICAqIEBwYXJhbSBzZWFyY2hWYWx1ZSBcbiAgICAgKi9cbiAgICBnZXRQcm9kdWN0c0ZvckZpbHRlcihwYWdpbmF0aW9uU2V0dGluZ3M/OiBQYWdpbmF0aW9uU2V0dGluZ3MsIHNlYXJjaFZhbHVlPzogYW55KTogYW55IHtcbiAgICAgICAgY29uc3Qgc3YgPSBzZWFyY2hWYWx1ZSA/PyAnJztcbiAgICAgICAgdGhpcy5zZWFyY2hWYWx1ZS5zZXQoc3YpO1xuXG4gICAgICAgICh0aGlzLl9jb25zdHMgYXMgYW55KS5zZWFyY2hWYWx1ZSA9IHN2O1xuXG4gICAgICAgIGlmIChwYWdpbmF0aW9uU2V0dGluZ3MpIHtcbiAgICAgICAgICAgIHRoaXMuX2ZpbHRlcnNTZXJ2aWNlLnNldEZpbHRlcnMocGFnaW5hdGlvblNldHRpbmdzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGFwaVVybCA9IHRoaXMuX2ZpbHRlcnNTZXJ2aWNlLmdlbmVyYXRlRmluYWxBcGkoc3YpO1xuXG4gICAgICAgIGNvbnN0IGxpbWl0ID0gcGFnaW5hdGlvblNldHRpbmdzPy5saW1pdCA/PyAxMDtcbiAgICAgICAgdGhpcy5fcGFnaW5hdGlvblNlcnZpY2UuaW5pdGlhbGl6ZShhcGlVcmwsIGxpbWl0KTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQWN0dWFsaXphIGxvcyBwcm9kdWN0b3MgY29uIGxvcyBkZSBsYSBzaWd1aWVudGUgcGFnaW5hLlxuICAgICAqL1xuICAgIHVwZGF0ZVByb2R1Y3RzKCkge1xuICAgICAgICBpZiAoIXRoaXMuX3BhZ2luYXRpb25TZXJ2aWNlLmdldFdhaXRpbmcoKSkge1xuICAgICAgICAgICAgdGhpcy5fcGFnaW5hdGlvblNlcnZpY2UuZ2V0TmV4dCgpXG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogRGV2dWVsdmUgZWwgcHJvZHVjdG8gcG9yIGNvZGlnby5cbiAgICAgKiBAcGFyYW0gY29kZSBDb2RpZ28gZGVsIHByb2R1Y3RvXG4gICAgICogQHBhcmFtIHZhcmlhbnQgUGFyYSBpbmRpY2FyIHNpIGVzIHZhcmlhbnRlIG8gbm8uXG4gICAgICogQHJldHVybnMgXG4gICAgICovXG4gICAgZ2V0UHJvZHVjdEJ5Q29kZShjb2RlOiBzdHJpbmcsIHZhcmlhbnQ6IGJvb2xlYW4pOiBPYnNlcnZhYmxlPFByb2R1Y3Q+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Nvbm5lY3Rpb24uZ2V0KHRoaXMucHJvZHVjdEJ5Q29kZUFwaShjb2RlLCB2YXJpYW50KSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBAZGVzY3JpcHRpb24gR3VhcmRhIGxhIHJlc2XDsWEgZGUgdW4gcHJvZHVjdG8uXG4gICAgKiBAcGFyYW0gY29kZVxuICAgICogQHBhcmFtIGZvcm1fZGF0YVxuICAgICogQHJldHVybnNcbiAgICAqL1xuICAgIHNhdmVSZXZpZXdzID0gKGNvZGU6IHN0cmluZywgZm9ybV9kYXRhOiBhbnkpID0+IHRoaXMuX2Nvbm5lY3Rpb24ucG9zdCh0aGlzLnNhdmVQcm9kdWN0UmV2aWV3c0FwaShjb2RlKSwgZm9ybV9kYXRhKVxuXG5cbiAgICAvKipcbiAgICAgKiBSZWNpYmUgdW5hIGxpc3RhIGRlIHByb2R1Y3RvcyB5IHJldG9ybmEgbG9zIG1pc21vcyBwcm9kdWN0b3MgdGFudGFzIHZlY2VzIGNvbW8gdmFyaWFudGVzIHRlbmdhLlxuICAgICAqIGNhZGEgcHJvZHVjdG8gcmV0b3JuYWRvIHRlbmRyw6EgdW5hIMO6bmljYSB2YXJpYW50ZS5cbiAgICAgKiBAcGFyYW0gcHJvZHVjdHMgIEFycmF5LiBMaXN0YSBkZSBwcm9kdWN0b3MuXG4gICAgICogQHBhcmFtIHdpdGhPcHRpb24gJ3R5cGUnIHRpcG8gZGUgb3BjacOzbiwgY29kZTogY8OzZGlnbyBkZSBsYSBvcGNpw7NuLiAnZGVmYXVsdEZpcnN0T3B0aW9uJzogZW4gY2FzbyBkZSBxdWUgbm8gc2UgcHVlZGEgZGVzZG9ibGFyIHBvciBsYSBvcGNpw7NuIGluZGljYWRhIHNpIGVsIHZhbG9yIGVzIHZlcmRhZGVybyBzZSBpbnRlbnRhcmEgZGVzZG9ibGFyIHBvciBsYSBwcmltZXJhIG9wY2nDs24gYXNvY2lhZGEgYWwgcHJvZHVjdG8uXG4gICAgICogJ2NoZWNrSWZTdG9jayc6IGVuIGNhc28gZGUgcXVlIGVzdGEgdmFsb3Igc2VhIHZlcmRhZGVybyBzZSByZWFsaXphIHVuIGNvbnRyb2wgZGUgcXVlIGxhIHZhcmlhbnRlcyBjdWVudGVuIGNvbiBzdG9jayBwYXJhIHNlciB1biBwcm9kdWN0byBkZXNkb2JsYWRvIHBvciBsYSB2YXJpYW50ZSwgc2kgZWwgdmFsb3IgZXMgZmFsc28gbm8gc2UgcmVhbGl6YSBkaWNobyBjb250cm9sIHkgZWwgcHJvZHVjdG8gc2UgZGVzZG9ibGFyYSBjb24gc3RvY2sgZW4gMC5cbiAgICAgKiBAcmV0dXJucyBhcnJlZ2xvIGNvbiBsb3MgcHJvZHVjdG9zIGRlc2RvYmxhZG9zIHBvciBsYSBvcGNpw7NuIHNvbGljaXRhZGEuXG4gICAgICogKG9wY2nDs24gcG9yIGRlZmVjdG8gcXVlIHNlIGludGVudGEgaGFjZXIgZWwgZGVzZG9ibGFtaWVudG8gJ2NvbG9yJywgbyBiaWVuIHNpIGVuIGxlIHBhcsOhbWV0cm8gd2l0aE9wdGlvbiBlbCBhdHJpYnV0byAnZGVmYXVsdEZpcnN0T3B0aW9uJyBlcyB2ZXJkYWRlcm8gc2UgZGVzZG9ibGEgcG9yIGxhIHByaW1lcmEgb3BjacOzbiBhc29jaWFkYSBhbCBwcm9kdWN0bylcbiAgICAgKi9cbiAgICBnZXRQcm9kdWN0c1dpdGhVbmlxdWVWYXJpYW50ID0gKHByb2R1Y3RzOiBQcm9kdWN0W10sIHdpdGhPcHRpb246IFBhcmFtc1Byb2R1Y3RzV2l0aFVuaXF1ZVZhcmlhbnQgPSB7IHR5cGU6ICdjb2xvcicsIGNvZGU6ICdjb2xvcicsIGRlZmF1bHRGaXJzdE9wdGlvbjogZmFsc2UsIGNoZWNrSWZTdG9jazogdHJ1ZSB9KSA9PiB7XG5cbiAgICAgICAgIXdpdGhPcHRpb25bJ2NvZGUnXSAmJiB3aXRoT3B0aW9uWyd0eXBlJ10gJiYgKHdpdGhPcHRpb25bJ2NvZGUnXSA9IHdpdGhPcHRpb25bJ3R5cGUnXSkgfHwgIXdpdGhPcHRpb25bJ2NvZGUnXSAmJiAod2l0aE9wdGlvblsnY29kZSddID0gJ2NvbG9yJylcbiAgICAgICAgIXdpdGhPcHRpb25bJ3R5cGUnXSAmJiB3aXRoT3B0aW9uWydjb2RlJ10gJiYgKHdpdGhPcHRpb25bJ3R5cGUnXSA9IHdpdGhPcHRpb25bJ2NvZGUnXSkgfHwgIXdpdGhPcHRpb25bJ3R5cGUnXSAmJiAod2l0aE9wdGlvblsndHlwZSddID0gJ2NvbG9yJylcbiAgICAgICAgIXdpdGhPcHRpb24uaGFzT3duUHJvcGVydHkoJ2RlZmF1bHRGaXJzdE9wdGlvbicpICYmICh3aXRoT3B0aW9uWydkZWZhdWx0Rmlyc3RPcHRpb24nXSA9IGZhbHNlKVxuICAgICAgICAhd2l0aE9wdGlvbi5oYXNPd25Qcm9wZXJ0eSgnY2hlY2tJZlN0b2NrJykgJiYgKHdpdGhPcHRpb25bJ2NoZWNrSWZTdG9jayddID0gdHJ1ZSlcblxuICAgICAgICBsZXQgcHJvZHVjdHNVbmlxdWVWYXJpYW50OiBhbnlbXSA9IFtdO1xuICAgICAgICBwcm9kdWN0cy5mb3JFYWNoKChwcm9kdWN0OiBhbnkpID0+IHtcbiAgICAgICAgICAgIGxldCB2YXJpYW50cyA9IFsuLi5wcm9kdWN0Py52YXJpYW50c107XG4gICAgICAgICAgICBsZXQgb3B0aW9uID0gcHJvZHVjdC5vcHRpb25zLmZpbmQoKG9wdDogYW55KSA9PiBvcHQudHlwZS50b0xvd2VyQ2FzZSgpID09PSB3aXRoT3B0aW9uLnR5cGU/LnRvTG93ZXJDYXNlKCkpO1xuICAgICAgICAgICAgaWYgKG9wdGlvbikge1xuICAgICAgICAgICAgICAgIG9wdGlvbi52YWx1ZXMuZm9yRWFjaCgob3B0aW9uVmFsdWU6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBsZXQgbW9kaWZpZWRfcHJvZHVjdCA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkocHJvZHVjdCkpO1xuICAgICAgICAgICAgICAgICAgICBtb2RpZmllZF9wcm9kdWN0Lm9wdGlvbnMuZmluZCgob3B0aW9uOiBhbnkpID0+IG9wdGlvbi50eXBlLnRvTG93ZXJDYXNlKCkgPT0gd2l0aE9wdGlvbi50eXBlPy50b0xvd2VyQ2FzZSgpKS52YWx1ZXMgPSBbeyBjb2RlOiBvcHRpb25WYWx1ZS5jb2RlLCBuYW1lOiBvcHRpb25WYWx1ZS5uYW1lIH1dO1xuICAgICAgICAgICAgICAgICAgICAvL2J1c2NvIHVuYSB2YXJpYW50ZSBjb24gZXNlIGNvZGUgcGFyYSBhc2lnbmFybGUgbGEgbGlzdGEgZGUgaW1hZ2VuZXNcbiAgICAgICAgICAgICAgICAgICAgbGV0IHZhcmlhbnRBdXggPSB2YXJpYW50cy5maW5kKFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFudCA9PiAoKHdpdGhPcHRpb24uY2hlY2tJZlN0b2NrICYmIHZhcmlhbnQuc3RvY2sgPiAwKSB8fCB3aXRoT3B0aW9uLmNoZWNrSWZTdG9jayA9PSBmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiB2YXJpYW50Lm9wdGlvbnMubGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgdmFyaWFudC5vcHRpb25zLnNvbWUoKG9wOiBhbnkpID0+IChvcC5oYXNPd25Qcm9wZXJ0eSh3aXRoT3B0aW9uLmNvZGU/LnRvTG93ZXJDYXNlKCkpIHx8IG9wLmhhc093blByb3BlcnR5KHdpdGhPcHRpb24uY29kZT8udG9VcHBlckNhc2UoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmIChvcFtgJHt3aXRoT3B0aW9uLmNvZGU/LnRvTG93ZXJDYXNlKCl9YF0gfHwgb3BbYCR7d2l0aE9wdGlvbi5jb2RlPy50b1VwcGVyQ2FzZSgpfWBdKSA9PT0gb3B0aW9uVmFsdWUuY29kZSlcblxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAvL2NvbnNvbGUubG9nKFwiLS0tXCIsdmFyaWFudEF1eCk7XG4gICAgICAgICAgICAgICAgICAgIHZhcmlhbnRBdXggJiYgcHJvZHVjdHNVbmlxdWVWYXJpYW50LnB1c2godGhpcy5wcm9kdWN0V2l0aFZhcmlhbnRWYWx1ZXMobW9kaWZpZWRfcHJvZHVjdCwgdmFyaWFudEF1eCwgb3B0aW9uVmFsdWUpKTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgKiBzZSBtb2RpZmljYSBlbCBjYXNvIHBhcmEgY3VhbmRvIHNlIHRvbWEgZWwgcHJpbWVyIGBvcHRpb25gIGRlbCBwcm9kdWN0byBwYXJhXG4gICAgICAgICAgICAgICAgICogYXJtYXIgbGEgbGlzdGEgZGUgcHJvZHVjdG9zIGNvbiB2YXJpYW50ZXMuXG4gICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgaWYgKHdpdGhPcHRpb24uZGVmYXVsdEZpcnN0T3B0aW9uICYmIHByb2R1Y3Qub3B0aW9ucz8ubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBmaXJzdE9wdGlvbnMgPSBwcm9kdWN0Lm9wdGlvbnNbMF1cbiAgICAgICAgICAgICAgICAgICAgcHJvZHVjdC5vcHRpb25zWzBdLnZhbHVlcy5mb3JFYWNoKChvcHRpb25WYWx1ZTogYW55KSA9PiB7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtb2RpZmllZF9wcm9kdWN0ID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShwcm9kdWN0KSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBtb2RpZmllZF9wcm9kdWN0Lm9wdGlvbnMuZmluZCgob3B0aW9uOiBPcHRpb25zKSA9PiBvcHRpb24udHlwZSA9PSBmaXJzdE9wdGlvbnMudHlwZSkudmFsdWVzID0gW3sgY29kZTogb3B0aW9uVmFsdWUuY29kZSwgbmFtZTogb3B0aW9uVmFsdWUubmFtZSB9XTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHZhcmlhbnRBdXggPSB2YXJpYW50cy5maW5kKHZhcmlhbnQgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB2YXJpYW50Lm9wdGlvbnMuZmluZCgoZWxlbTogYW55KSA9PiBlbGVtW2ZpcnN0T3B0aW9ucy5jb2RlXSA9PSBvcHRpb25WYWx1ZS5jb2RlKVxuICAgICAgICAgICAgICAgICAgICAgICAgfSlcblxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZhcmlhbnRBdXggJiYgdmFyaWFudEF1eC5pbWFnZXMubGVuZ3RoID09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50QXV4LmltYWdlcyA9IHByb2R1Y3QucGljdHVyZXNkZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh3aXRoT3B0aW9uLmNoZWNrSWZTdG9jaykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2YXJpYW50QXV4ICYmIHZhcmlhbnRBdXguc3RvY2sgPiAwKSA/IHByb2R1Y3RzVW5pcXVlVmFyaWFudC5wdXNoKHRoaXMucHJvZHVjdFdpdGhWYXJpYW50VmFsdWVzKG1vZGlmaWVkX3Byb2R1Y3QsIHZhcmlhbnRBdXgsIG9wdGlvblZhbHVlKSkgOiBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50QXV4ICYmIHByb2R1Y3RzVW5pcXVlVmFyaWFudC5wdXNoKHRoaXMucHJvZHVjdFdpdGhWYXJpYW50VmFsdWVzKG1vZGlmaWVkX3Byb2R1Y3QsIHZhcmlhbnRBdXgsIG9wdGlvblZhbHVlKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHByb2R1Y3RzVW5pcXVlVmFyaWFudC5wdXNoKHByb2R1Y3QpXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICAgIHJldHVybiBwcm9kdWN0c1VuaXF1ZVZhcmlhbnQubGVuZ3RoID4gMCA/IHByb2R1Y3RzVW5pcXVlVmFyaWFudCA6IHByb2R1Y3RzO1xuICAgIH1cblxuICAgIHByb2R1Y3RXaXRoVmFyaWFudFZhbHVlcyA9IChwcm9kdWN0OiBQcm9kdWN0LCB2YXJpYW50OiBhbnksIG9wdGlvblZhbHVlOiBhbnkpID0+IHtcbiAgICAgICAgcHJvZHVjdC5waWN0dXJlc2RlZmF1bHQgPSBbLi4udmFyaWFudC5pbWFnZXNdXG4gICAgICAgIHByb2R1Y3QudmFyaWFudF9pZCA9IHZhcmlhbnQuY29kZTsgLy9sbyBkZWpvIGFjYSBoYXN0YSBhc2VndXJhcm5vcyBkZSBxdWUgbm8gc2UgZXN0YWJhIHVzYW5kbyBlbiBvdHJhIHBhcnRlLlxuICAgICAgICBwcm9kdWN0LnN0b2NrID0gdmFyaWFudC5zdG9jayB8fCAwOyAvL2xvIGRlam8gYWNhIGhhc3RhIGFzZWd1cmFybm9zIGRlIHF1ZSBubyBzZSBlc3RhYmEgdXNhbmRvIGVuIG90cmEgcGFydGUuXG4gICAgICAgIHByb2R1Y3QucHJpY2UgPSB2YXJpYW50LnByaWNlLnRvU3RyaW5nKCkgfHwgJzAnO1xuICAgICAgICBwcm9kdWN0LmN1cnJlbnRPcHRpb24gPSB7XG4gICAgICAgICAgICAuLi5vcHRpb25WYWx1ZSxcbiAgICAgICAgICAgIHByb2R1Y3RDb2RlOiBwcm9kdWN0LmlkLFxuICAgICAgICAgICAgdmFyaWFudENvZGU6IHZhcmlhbnQuY29kZSxcbiAgICAgICAgICAgIHN0b2NrOiB2YXJpYW50LnN0b2NrIHx8IDAsXG4gICAgICAgICAgICBmaW5hbFByaWNlOiB2YXJpYW50LnNhbGVwcmljZSB8fCB2YXJpYW50LnByaWNlIHx8IDAsXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHByb2R1Y3RcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldE9iamVjdFdpdGhWYXJpYW50ID0gKCk6IFBhcmFtc1Byb2R1Y3RzV2l0aFVuaXF1ZVZhcmlhbnQgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fY29uc3RzLmdldFBhcmFtc1Byb2R1Y3RzV2l0aFVuaXF1ZVZhcmlhbnQoKVxuICAgIH1cblxuICAgIGdldFJlbGF0ZWRQcm9kdWN0cyhwcm9kdWN0X2lkOiBhbnkpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Nvbm5lY3Rpb24uZ2V0KHRoaXMucmVsYXRlZFByb2R1Y3RzQXBpKHByb2R1Y3RfaWQpKTtcbiAgICB9XG5cbiAgICBoYXNTdG9jayhwcm9kdWN0OiBQcm9kdWN0KTogYm9vbGVhbiB7XG4gICAgICAgIC8vIFNpIGVsIHByb2R1Y3RvIHRpZW5lIGxhIHByb3BpZWRhZCAnc3RvY2snIHkgZXMgbWF5b3IgYSAwXG4gICAgICAgIGlmICh0eXBlb2YgcHJvZHVjdC5zdG9jayA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICAgIHJldHVybiBwcm9kdWN0LnN0b2NrID4gMDtcbiAgICAgICAgfVxuICAgICAgICAvLyBTaSBlbCBwcm9kdWN0byB0aWVuZSB2YXJpYW50ZXMsIHZlcmlmaWNhIHNpIGFsZ3VuYSB0aWVuZSBzdG9ja1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShwcm9kdWN0LnZhcmlhbnRzKSkge1xuICAgICAgICAgICAgcmV0dXJuIHByb2R1Y3QudmFyaWFudHMuc29tZSh2YXJpYW50ID0+IHZhcmlhbnQuc3RvY2sgPiAwKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBTaSBubyB0aWVuZSBpbmZvcm1hY2nDs24gZGUgc3RvY2ssIGFzdW1pbW9zIHF1ZSBubyBoYXkgc3RvY2tcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbn1cbiJdfQ==
|
|
194
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWVhc3ljb21tZXJjZS12MTgvc3JjL2xpYi9lYy1zZXJ2aWNlcy9wcm9kdWN0cy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBdUIsTUFBTSxFQUFFLFVBQVUsRUFBeUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZHLE9BQU8sRUFBRSxlQUFlLEVBQTBELE1BQU0sTUFBTSxDQUFDO0FBRS9GLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUMzQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDekUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXpELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTs7QUFLbEQsTUFBTSxPQUFPLGVBQWU7SUFFaEIsV0FBVyxHQUFzQixNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUMzRCxVQUFVLEdBQXdCLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQzlELGVBQWUsR0FBbUIsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3pELGtCQUFrQixHQUFzQixNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUNsRSxPQUFPLEdBQXlCLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBRTdELGdCQUFnQixHQUErQixJQUFJLGVBQWUsQ0FBWSxFQUFFLENBQUMsQ0FBQTtJQUNsRixTQUFTLEdBQTBCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLEVBQUUsQ0FB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Q0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7WUFDbEMsT0FBTyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDL0QsQ0FBQztRQUNELDhEQUE4RDtRQUM5RCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO3dHQTNNUSxlQUFlOzRHQUFmLGVBQWUsY0FGWixNQUFNOzs0RkFFVCxlQUFlO2tCQUgzQixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVudmlyb25tZW50SW5qZWN0b3IsIGluamVjdCwgSW5qZWN0YWJsZSwgcnVuSW5JbmplY3Rpb25Db250ZXh0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgbWFwLCBPYnNlcnZhYmxlLCBSZXBsYXlTdWJqZWN0LCBzaGFyZVJlcGxheSwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBEZWZhdWx0RmlsdGVyLCBGaWx0ZXJFbGVtZW50LCBGaWx0ZXJUeXBlLCBJRmlsdGVyLCBPcHRpb25zLCBQYWdpbmF0aW9uU2V0dGluZ3MsIFBhcmFtc1Byb2R1Y3RzV2l0aFVuaXF1ZVZhcmlhbnQsIFByb2R1Y3QgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IENvbm5lY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi4vYXBpJztcbmltcG9ydCB7IEFwaUNvbnN0YW50c1NlcnZpY2UsIENvcmVDb25zdGFudHNTZXJ2aWNlIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IE9wdGlvbnNTZXJ2aWNlIH0gZnJvbSAnLi9vcHRpb25zLnNlcnZpY2UnO1xuaW1wb3J0IHsgUGFnaW5hdGlvblNlcnZpY2UgfSBmcm9tICcuL3BhZ2luYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBGaWx0ZXIsIEZpbHRlckZhY3RvcnksIH0gZnJvbSAnLi4vY2xhc3Nlcyc7XG5pbXBvcnQgeyBQcmljZVJhbmdlRmlsdGVyIH0gZnJvbSAnLi4vY2xhc3Nlcy9maWx0ZXJzL3ByaWNlX3JhbmdlLWZpbHRlcic7XG5pbXBvcnQgeyBGaWx0ZXJzU2VydmljZSB9IGZyb20gJy4vZmlsdGVycy5zZXJ2aWNlJ1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFByb2R1Y3RzU2VydmljZSB7XG5cbiAgICBwcml2YXRlIF9jb25uZWN0aW9uOiBDb25uZWN0aW9uU2VydmljZSA9IGluamVjdChDb25uZWN0aW9uU2VydmljZSk7XG4gICAgcHJpdmF0ZSBfYXBpQ29uc3RzOiBBcGlDb25zdGFudHNTZXJ2aWNlID0gaW5qZWN0KEFwaUNvbnN0YW50c1NlcnZpY2UpO1xuICAgIHByaXZhdGUgX29wdGlvbnNTZXJ2aWNlOiBPcHRpb25zU2VydmljZSA9IGluamVjdChPcHRpb25zU2VydmljZSk7XG4gICAgcHJpdmF0ZSBfcGFnaW5hdGlvblNlcnZpY2U6IFBhZ2luYXRpb25TZXJ2aWNlID0gaW5qZWN0KFBhZ2luYXRpb25TZXJ2aWNlKTtcbiAgICBwcml2YXRlIF9jb25zdHM6IENvcmVDb25zdGFudHNTZXJ2aWNlID0gaW5qZWN0KENvcmVDb25zdGFudHNTZXJ2aWNlKTtcblxuICAgIHByaXZhdGUgX3Byb2R1Y3RzU3ViamVjdDogQmVoYXZpb3JTdWJqZWN0PFByb2R1Y3RbXT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFByb2R1Y3RbXT4oW10pXG4gICAgcHVibGljIHByb2R1Y3RzJDogT2JzZXJ2YWJsZTxQcm9kdWN0W10+ID0gdGhpcy5fcHJvZHVjdHNTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICAgIHByaXZhdGUgX2ZpbHRlcnNTZXJ2aWNlOiBGaWx0ZXJzU2VydmljZSA9IGluamVjdChGaWx0ZXJzU2VydmljZSlcbiAgICBwcml2YXRlIGZpbHRlcnNTdWJqZWN0OiBCZWhhdmlvclN1YmplY3Q8RmlsdGVyW10+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxGaWx0ZXJbXT4oW10pO1xuICAgIHB1YmxpYyBmaWx0ZXJzJCA9IHRoaXMuZmlsdGVyc1N1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG5cbiAgICBwcml2YXRlIHNlYXJjaFZhbHVlID0gc2lnbmFsPHN0cmluZz4oJycpO1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuX3BhZ2luYXRpb25TZXJ2aWNlLnJlc2V0JC5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgICAgIHRoaXMuX3Byb2R1Y3RzU3ViamVjdC5uZXh0KFtdKVxuICAgICAgICB9KVxuICAgICAgICB0aGlzLl9wYWdpbmF0aW9uU2VydmljZS5wYWdpbmF0aW9uRGF0YSQuc3Vic2NyaWJlKFxuICAgICAgICAgICAgcHJvZHVjdHMgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHByb2R1Y3RzV2l0aFVuaXF1ZVZhcmlhbnQgPSB0aGlzLl9jb25zdHMuZ2V0UHJvZHVjdFdpdGhVbmlxdWVWYXJpYW50KCk7XG4gICAgICAgICAgICAgICAgaWYgKHByb2R1Y3RzV2l0aFVuaXF1ZVZhcmlhbnQpXG4gICAgICAgICAgICAgICAgICAgIHByb2R1Y3RzID0gdGhpcy5nZXRQcm9kdWN0c1dpdGhVbmlxdWVWYXJpYW50KHByb2R1Y3RzLCB0aGlzLmdldE9iamVjdFdpdGhWYXJpYW50KCkpXG4gICAgICAgICAgICAgICAgY29uc3QgY3VycmVudFByb2R1Y3RzID0gdGhpcy5fcHJvZHVjdHNTdWJqZWN0LnZhbHVlO1xuICAgICAgICAgICAgICAgIHRoaXMuX3Byb2R1Y3RzU3ViamVjdC5uZXh0KFsuLi5jdXJyZW50UHJvZHVjdHMsIC4uLnByb2R1Y3RzXSk7XG5cbiAgICAgICAgICAgIH1cblxuICAgICAgICApXG4gICAgICAgIC8vIFN1c2NyaWJpcnNlIGEgbG9zIGNhbWJpb3MgZW4gZWwgcmFuZ28gZGUgcHJlY2lvc1xuICAgICAgICB0aGlzLl9wYWdpbmF0aW9uU2VydmljZS5wcmljZVJhbmdlJC5zdWJzY3JpYmUocmFuZ2UgPT4ge1xuICAgICAgICAgICAgbGV0IG1pbiA9IE1hdGguZmxvb3IocmFuZ2UucHJpY2VfbWluKTtcbiAgICAgICAgICAgIGxldCBtYXggPSBNYXRoLmNlaWwocmFuZ2UucHJpY2VfbWF4KTtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlUHJpY2VSYW5nZUZpbHRlcihtaW4sIG1heCk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLl9maWx0ZXJzU2VydmljZS5maWx0ZXJzJC5zdWJzY3JpYmUoZmlsdGVycyA9PiB7XG4gICAgICAgICAgICB0aGlzLmZpbHRlcnNTdWJqZWN0Lm5leHQoZmlsdGVycyk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlUHJpY2VSYW5nZUZpbHRlcihtaW46IG51bWJlciwgbWF4OiBudW1iZXIpIHtcbiAgICAgICAgY29uc3QgZmluYWxfZmlsdGVyczogRmlsdGVyW10gPSB0aGlzLmZpbHRlcnNTdWJqZWN0LnZhbHVlO1xuICAgICAgICBjb25zdCBwcmljZVJhbmdlRmlsdGVyID0gZmluYWxfZmlsdGVycy5maW5kKGZpbHRlciA9PiBmaWx0ZXIgaW5zdGFuY2VvZiBQcmljZVJhbmdlRmlsdGVyKTtcblxuICAgICAgICBpZiAocHJpY2VSYW5nZUZpbHRlcikge1xuICAgICAgICAgICAgKHByaWNlUmFuZ2VGaWx0ZXIgYXMgUHJpY2VSYW5nZUZpbHRlcikudXBkYXRlUHJpY2VzKG1pbiwgbWF4KTtcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyc1N1YmplY3QubmV4dChmaW5hbF9maWx0ZXJzKTtcbiAgICAgICAgfVxuICAgIH1cblxuXG5cbiAgICAvL0FQSSBVUkxcbiAgICBwcml2YXRlIF9zaG9wQXBpVXJsID0gdGhpcy5fYXBpQ29uc3RzLlNIT1BfQVBJX1VSTDtcbiAgICBwcm9kdWN0QnlDb2RlQXBpKGNvZGU6IHN0cmluZywgdmFyaWFudDogYm9vbGVhbikgeyByZXR1cm4gdGhpcy5fc2hvcEFwaVVybCArIHRoaXMuX2FwaUNvbnN0cy5DSEFOTkVMICsgJy9wcm9kdWN0cy9ieS1jb2RlLycgKyAodmFyaWFudCA/ICd2YXJpYW50LycgOiAnJykgKyBjb2RlICsgJz9sb2NhbGU9JyArIHRoaXMuX2FwaUNvbnN0cy5MT0NBTEU7IH1cbiAgICAvLyByZXZpZXdcbiAgICBzYXZlUHJvZHVjdFJldmlld3NBcGkoY29kZTogc3RyaW5nKSB7IHJldHVybiB0aGlzLl9zaG9wQXBpVXJsICsgdGhpcy5fYXBpQ29uc3RzLkNIQU5ORUwgKyAnL3Byb2R1Y3RzL2J5LWNvZGUvJyArIGNvZGUgKyAnL3Jldmlld3MnOyB9XG4gICAgLy9yZWxhdGVkIHByb2R1Y3RzXG4gICAgcmVsYXRlZFByb2R1Y3RzQXBpID0gKGtleTogc3RyaW5nKTogc3RyaW5nID0+ICdzaG9wLWFwaS8nICsgdGhpcy5fYXBpQ29uc3RzLkNIQU5ORUwgKyAnL3Byb2R1Y3RzL3JlbGF0ZWQvYnktY29kZS8nICsga2V5ICsgJz9sb2NhbGU9JyArIHRoaXMuX2FwaUNvbnN0cy5MT0NBTEU7XG5cbiAgICAvKipcbiAgICAgKiBTZXRlYSBsb3MgZmlsdHJvcyBwYXJhIG9idGVuZXIgbG9zIHByb2R1Y3Rvcy5cbiAgICAgKiBAcGFyYW0gcGFnaW5hdGlvblNldHRpbmdzIFxuICAgICAqIEBwYXJhbSBzZWFyY2hWYWx1ZSBcbiAgICAgKi9cbiAgICBnZXRQcm9kdWN0c0ZvckZpbHRlcihwYWdpbmF0aW9uU2V0dGluZ3M/OiBQYWdpbmF0aW9uU2V0dGluZ3MsIHNlYXJjaFZhbHVlPzogYW55KTogYW55IHtcbiAgICAgICAgc2VhcmNoVmFsdWUgPyB0aGlzLnNlYXJjaFZhbHVlLnNldChzZWFyY2hWYWx1ZSkgOiB0aGlzLnNlYXJjaFZhbHVlLnNldCgnJyk7XG4gICAgICAgIHBhZ2luYXRpb25TZXR0aW5ncyAmJiB0aGlzLl9maWx0ZXJzU2VydmljZS5zZXRGaWx0ZXJzKHBhZ2luYXRpb25TZXR0aW5ncylcbiAgICB9XG4gICAgLyoqXG4gICAgICogQWN0dWFsaXphIGxvcyBwcm9kdWN0b3MgY29uIGxvcyBkZSBsYSBzaWd1aWVudGUgcGFnaW5hLlxuICAgICAqL1xuICAgIHVwZGF0ZVByb2R1Y3RzKCkge1xuICAgICAgICBpZiAoIXRoaXMuX3BhZ2luYXRpb25TZXJ2aWNlLmdldFdhaXRpbmcoKSkge1xuICAgICAgICAgICAgdGhpcy5fcGFnaW5hdGlvblNlcnZpY2UuZ2V0TmV4dCgpXG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogRGV2dWVsdmUgZWwgcHJvZHVjdG8gcG9yIGNvZGlnby5cbiAgICAgKiBAcGFyYW0gY29kZSBDb2RpZ28gZGVsIHByb2R1Y3RvXG4gICAgICogQHBhcmFtIHZhcmlhbnQgUGFyYSBpbmRpY2FyIHNpIGVzIHZhcmlhbnRlIG8gbm8uXG4gICAgICogQHJldHVybnMgXG4gICAgICovXG4gICAgZ2V0UHJvZHVjdEJ5Q29kZShjb2RlOiBzdHJpbmcsIHZhcmlhbnQ6IGJvb2xlYW4pOiBPYnNlcnZhYmxlPFByb2R1Y3Q+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Nvbm5lY3Rpb24uZ2V0KHRoaXMucHJvZHVjdEJ5Q29kZUFwaShjb2RlLCB2YXJpYW50KSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBAZGVzY3JpcHRpb24gR3VhcmRhIGxhIHJlc2XDsWEgZGUgdW4gcHJvZHVjdG8uXG4gICAgKiBAcGFyYW0gY29kZVxuICAgICogQHBhcmFtIGZvcm1fZGF0YVxuICAgICogQHJldHVybnNcbiAgICAqL1xuICAgIHNhdmVSZXZpZXdzID0gKGNvZGU6IHN0cmluZywgZm9ybV9kYXRhOiBhbnkpID0+IHRoaXMuX2Nvbm5lY3Rpb24ucG9zdCh0aGlzLnNhdmVQcm9kdWN0UmV2aWV3c0FwaShjb2RlKSwgZm9ybV9kYXRhKVxuXG5cbiAgICAvKipcbiAgICAgKiBSZWNpYmUgdW5hIGxpc3RhIGRlIHByb2R1Y3RvcyB5IHJldG9ybmEgbG9zIG1pc21vcyBwcm9kdWN0b3MgdGFudGFzIHZlY2VzIGNvbW8gdmFyaWFudGVzIHRlbmdhLlxuICAgICAqIGNhZGEgcHJvZHVjdG8gcmV0b3JuYWRvIHRlbmRyw6EgdW5hIMO6bmljYSB2YXJpYW50ZS5cbiAgICAgKiBAcGFyYW0gcHJvZHVjdHMgIEFycmF5LiBMaXN0YSBkZSBwcm9kdWN0b3MuXG4gICAgICogQHBhcmFtIHdpdGhPcHRpb24gJ3R5cGUnIHRpcG8gZGUgb3BjacOzbiwgY29kZTogY8OzZGlnbyBkZSBsYSBvcGNpw7NuLiAnZGVmYXVsdEZpcnN0T3B0aW9uJzogZW4gY2FzbyBkZSBxdWUgbm8gc2UgcHVlZGEgZGVzZG9ibGFyIHBvciBsYSBvcGNpw7NuIGluZGljYWRhIHNpIGVsIHZhbG9yIGVzIHZlcmRhZGVybyBzZSBpbnRlbnRhcmEgZGVzZG9ibGFyIHBvciBsYSBwcmltZXJhIG9wY2nDs24gYXNvY2lhZGEgYWwgcHJvZHVjdG8uXG4gICAgICogJ2NoZWNrSWZTdG9jayc6IGVuIGNhc28gZGUgcXVlIGVzdGEgdmFsb3Igc2VhIHZlcmRhZGVybyBzZSByZWFsaXphIHVuIGNvbnRyb2wgZGUgcXVlIGxhIHZhcmlhbnRlcyBjdWVudGVuIGNvbiBzdG9jayBwYXJhIHNlciB1biBwcm9kdWN0byBkZXNkb2JsYWRvIHBvciBsYSB2YXJpYW50ZSwgc2kgZWwgdmFsb3IgZXMgZmFsc28gbm8gc2UgcmVhbGl6YSBkaWNobyBjb250cm9sIHkgZWwgcHJvZHVjdG8gc2UgZGVzZG9ibGFyYSBjb24gc3RvY2sgZW4gMC5cbiAgICAgKiBAcmV0dXJucyBhcnJlZ2xvIGNvbiBsb3MgcHJvZHVjdG9zIGRlc2RvYmxhZG9zIHBvciBsYSBvcGNpw7NuIHNvbGljaXRhZGEuXG4gICAgICogKG9wY2nDs24gcG9yIGRlZmVjdG8gcXVlIHNlIGludGVudGEgaGFjZXIgZWwgZGVzZG9ibGFtaWVudG8gJ2NvbG9yJywgbyBiaWVuIHNpIGVuIGxlIHBhcsOhbWV0cm8gd2l0aE9wdGlvbiBlbCBhdHJpYnV0byAnZGVmYXVsdEZpcnN0T3B0aW9uJyBlcyB2ZXJkYWRlcm8gc2UgZGVzZG9ibGEgcG9yIGxhIHByaW1lcmEgb3BjacOzbiBhc29jaWFkYSBhbCBwcm9kdWN0bylcbiAgICAgKi9cbiAgICBnZXRQcm9kdWN0c1dpdGhVbmlxdWVWYXJpYW50ID0gKHByb2R1Y3RzOiBQcm9kdWN0W10sIHdpdGhPcHRpb246IFBhcmFtc1Byb2R1Y3RzV2l0aFVuaXF1ZVZhcmlhbnQgPSB7IHR5cGU6ICdjb2xvcicsIGNvZGU6ICdjb2xvcicsIGRlZmF1bHRGaXJzdE9wdGlvbjogZmFsc2UsIGNoZWNrSWZTdG9jazogdHJ1ZSB9KSA9PiB7XG5cbiAgICAgICAgIXdpdGhPcHRpb25bJ2NvZGUnXSAmJiB3aXRoT3B0aW9uWyd0eXBlJ10gJiYgKHdpdGhPcHRpb25bJ2NvZGUnXSA9IHdpdGhPcHRpb25bJ3R5cGUnXSkgfHwgIXdpdGhPcHRpb25bJ2NvZGUnXSAmJiAod2l0aE9wdGlvblsnY29kZSddID0gJ2NvbG9yJylcbiAgICAgICAgIXdpdGhPcHRpb25bJ3R5cGUnXSAmJiB3aXRoT3B0aW9uWydjb2RlJ10gJiYgKHdpdGhPcHRpb25bJ3R5cGUnXSA9IHdpdGhPcHRpb25bJ2NvZGUnXSkgfHwgIXdpdGhPcHRpb25bJ3R5cGUnXSAmJiAod2l0aE9wdGlvblsndHlwZSddID0gJ2NvbG9yJylcbiAgICAgICAgIXdpdGhPcHRpb24uaGFzT3duUHJvcGVydHkoJ2RlZmF1bHRGaXJzdE9wdGlvbicpICYmICh3aXRoT3B0aW9uWydkZWZhdWx0Rmlyc3RPcHRpb24nXSA9IGZhbHNlKVxuICAgICAgICAhd2l0aE9wdGlvbi5oYXNPd25Qcm9wZXJ0eSgnY2hlY2tJZlN0b2NrJykgJiYgKHdpdGhPcHRpb25bJ2NoZWNrSWZTdG9jayddID0gdHJ1ZSlcblxuICAgICAgICBsZXQgcHJvZHVjdHNVbmlxdWVWYXJpYW50OiBhbnlbXSA9IFtdO1xuICAgICAgICBwcm9kdWN0cy5mb3JFYWNoKChwcm9kdWN0OiBhbnkpID0+IHtcbiAgICAgICAgICAgIGxldCB2YXJpYW50cyA9IFsuLi5wcm9kdWN0Py52YXJpYW50c107XG4gICAgICAgICAgICBsZXQgb3B0aW9uID0gcHJvZHVjdC5vcHRpb25zLmZpbmQoKG9wdDogYW55KSA9PiBvcHQudHlwZS50b0xvd2VyQ2FzZSgpID09PSB3aXRoT3B0aW9uLnR5cGU/LnRvTG93ZXJDYXNlKCkpO1xuICAgICAgICAgICAgaWYgKG9wdGlvbikge1xuICAgICAgICAgICAgICAgIG9wdGlvbi52YWx1ZXMuZm9yRWFjaCgob3B0aW9uVmFsdWU6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBsZXQgbW9kaWZpZWRfcHJvZHVjdCA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkocHJvZHVjdCkpO1xuICAgICAgICAgICAgICAgICAgICBtb2RpZmllZF9wcm9kdWN0Lm9wdGlvbnMuZmluZCgob3B0aW9uOiBhbnkpID0+IG9wdGlvbi50eXBlLnRvTG93ZXJDYXNlKCkgPT0gd2l0aE9wdGlvbi50eXBlPy50b0xvd2VyQ2FzZSgpKS52YWx1ZXMgPSBbeyBjb2RlOiBvcHRpb25WYWx1ZS5jb2RlLCBuYW1lOiBvcHRpb25WYWx1ZS5uYW1lIH1dO1xuICAgICAgICAgICAgICAgICAgICAvL2J1c2NvIHVuYSB2YXJpYW50ZSBjb24gZXNlIGNvZGUgcGFyYSBhc2lnbmFybGUgbGEgbGlzdGEgZGUgaW1hZ2VuZXNcbiAgICAgICAgICAgICAgICAgICAgbGV0IHZhcmlhbnRBdXggPSB2YXJpYW50cy5maW5kKFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFudCA9PiAoKHdpdGhPcHRpb24uY2hlY2tJZlN0b2NrICYmIHZhcmlhbnQuc3RvY2sgPiAwKSB8fCB3aXRoT3B0aW9uLmNoZWNrSWZTdG9jayA9PSBmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiB2YXJpYW50Lm9wdGlvbnMubGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgdmFyaWFudC5vcHRpb25zLnNvbWUoKG9wOiBhbnkpID0+IChvcC5oYXNPd25Qcm9wZXJ0eSh3aXRoT3B0aW9uLmNvZGU/LnRvTG93ZXJDYXNlKCkpIHx8IG9wLmhhc093blByb3BlcnR5KHdpdGhPcHRpb24uY29kZT8udG9VcHBlckNhc2UoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmIChvcFtgJHt3aXRoT3B0aW9uLmNvZGU/LnRvTG93ZXJDYXNlKCl9YF0gfHwgb3BbYCR7d2l0aE9wdGlvbi5jb2RlPy50b1VwcGVyQ2FzZSgpfWBdKSA9PT0gb3B0aW9uVmFsdWUuY29kZSlcblxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAvL2NvbnNvbGUubG9nKFwiLS0tXCIsdmFyaWFudEF1eCk7XG4gICAgICAgICAgICAgICAgICAgIHZhcmlhbnRBdXggJiYgcHJvZHVjdHNVbmlxdWVWYXJpYW50LnB1c2godGhpcy5wcm9kdWN0V2l0aFZhcmlhbnRWYWx1ZXMobW9kaWZpZWRfcHJvZHVjdCwgdmFyaWFudEF1eCwgb3B0aW9uVmFsdWUpKTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgKiBzZSBtb2RpZmljYSBlbCBjYXNvIHBhcmEgY3VhbmRvIHNlIHRvbWEgZWwgcHJpbWVyIGBvcHRpb25gIGRlbCBwcm9kdWN0byBwYXJhXG4gICAgICAgICAgICAgICAgICogYXJtYXIgbGEgbGlzdGEgZGUgcHJvZHVjdG9zIGNvbiB2YXJpYW50ZXMuXG4gICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgaWYgKHdpdGhPcHRpb24uZGVmYXVsdEZpcnN0T3B0aW9uICYmIHByb2R1Y3Qub3B0aW9ucz8ubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBmaXJzdE9wdGlvbnMgPSBwcm9kdWN0Lm9wdGlvbnNbMF1cbiAgICAgICAgICAgICAgICAgICAgcHJvZHVjdC5vcHRpb25zWzBdLnZhbHVlcy5mb3JFYWNoKChvcHRpb25WYWx1ZTogYW55KSA9PiB7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtb2RpZmllZF9wcm9kdWN0ID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShwcm9kdWN0KSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBtb2RpZmllZF9wcm9kdWN0Lm9wdGlvbnMuZmluZCgob3B0aW9uOiBPcHRpb25zKSA9PiBvcHRpb24udHlwZSA9PSBmaXJzdE9wdGlvbnMudHlwZSkudmFsdWVzID0gW3sgY29kZTogb3B0aW9uVmFsdWUuY29kZSwgbmFtZTogb3B0aW9uVmFsdWUubmFtZSB9XTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHZhcmlhbnRBdXggPSB2YXJpYW50cy5maW5kKHZhcmlhbnQgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB2YXJpYW50Lm9wdGlvbnMuZmluZCgoZWxlbTogYW55KSA9PiBlbGVtW2ZpcnN0T3B0aW9ucy5jb2RlXSA9PSBvcHRpb25WYWx1ZS5jb2RlKVxuICAgICAgICAgICAgICAgICAgICAgICAgfSlcblxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZhcmlhbnRBdXggJiYgdmFyaWFudEF1eC5pbWFnZXMubGVuZ3RoID09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50QXV4LmltYWdlcyA9IHByb2R1Y3QucGljdHVyZXNkZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh3aXRoT3B0aW9uLmNoZWNrSWZTdG9jaykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2YXJpYW50QXV4ICYmIHZhcmlhbnRBdXguc3RvY2sgPiAwKSA/IHByb2R1Y3RzVW5pcXVlVmFyaWFudC5wdXNoKHRoaXMucHJvZHVjdFdpdGhWYXJpYW50VmFsdWVzKG1vZGlmaWVkX3Byb2R1Y3QsIHZhcmlhbnRBdXgsIG9wdGlvblZhbHVlKSkgOiBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50QXV4ICYmIHByb2R1Y3RzVW5pcXVlVmFyaWFudC5wdXNoKHRoaXMucHJvZHVjdFdpdGhWYXJpYW50VmFsdWVzKG1vZGlmaWVkX3Byb2R1Y3QsIHZhcmlhbnRBdXgsIG9wdGlvblZhbHVlKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHByb2R1Y3RzVW5pcXVlVmFyaWFudC5wdXNoKHByb2R1Y3QpXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICAgIHJldHVybiBwcm9kdWN0c1VuaXF1ZVZhcmlhbnQubGVuZ3RoID4gMCA/IHByb2R1Y3RzVW5pcXVlVmFyaWFudCA6IHByb2R1Y3RzO1xuICAgIH1cblxuICAgIHByb2R1Y3RXaXRoVmFyaWFudFZhbHVlcyA9IChwcm9kdWN0OiBQcm9kdWN0LCB2YXJpYW50OiBhbnksIG9wdGlvblZhbHVlOiBhbnkpID0+IHtcbiAgICAgICAgcHJvZHVjdC5waWN0dXJlc2RlZmF1bHQgPSBbLi4udmFyaWFudC5pbWFnZXNdXG4gICAgICAgIHByb2R1Y3QudmFyaWFudF9pZCA9IHZhcmlhbnQuY29kZTsgLy9sbyBkZWpvIGFjYSBoYXN0YSBhc2VndXJhcm5vcyBkZSBxdWUgbm8gc2UgZXN0YWJhIHVzYW5kbyBlbiBvdHJhIHBhcnRlLlxuICAgICAgICBwcm9kdWN0LnN0b2NrID0gdmFyaWFudC5zdG9jayB8fCAwOyAvL2xvIGRlam8gYWNhIGhhc3RhIGFzZWd1cmFybm9zIGRlIHF1ZSBubyBzZSBlc3RhYmEgdXNhbmRvIGVuIG90cmEgcGFydGUuXG4gICAgICAgIHByb2R1Y3QucHJpY2UgPSB2YXJpYW50LnByaWNlLnRvU3RyaW5nKCkgfHwgJzAnO1xuICAgICAgICBwcm9kdWN0LmN1cnJlbnRPcHRpb24gPSB7XG4gICAgICAgICAgICAuLi5vcHRpb25WYWx1ZSxcbiAgICAgICAgICAgIHByb2R1Y3RDb2RlOiBwcm9kdWN0LmlkLFxuICAgICAgICAgICAgdmFyaWFudENvZGU6IHZhcmlhbnQuY29kZSxcbiAgICAgICAgICAgIHN0b2NrOiB2YXJpYW50LnN0b2NrIHx8IDAsXG4gICAgICAgICAgICBmaW5hbFByaWNlOiB2YXJpYW50LnNhbGVwcmljZSB8fCB2YXJpYW50LnByaWNlIHx8IDAsXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHByb2R1Y3RcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldE9iamVjdFdpdGhWYXJpYW50ID0gKCk6IFBhcmFtc1Byb2R1Y3RzV2l0aFVuaXF1ZVZhcmlhbnQgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fY29uc3RzLmdldFBhcmFtc1Byb2R1Y3RzV2l0aFVuaXF1ZVZhcmlhbnQoKVxuICAgIH1cblxuICAgIGdldFJlbGF0ZWRQcm9kdWN0cyhwcm9kdWN0X2lkOiBhbnkpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Nvbm5lY3Rpb24uZ2V0KHRoaXMucmVsYXRlZFByb2R1Y3RzQXBpKHByb2R1Y3RfaWQpKTtcbiAgICB9XG4gICAgXG4gICAgaGFzU3RvY2socHJvZHVjdDogUHJvZHVjdCk6IGJvb2xlYW4ge1xuICAgICAgICAvLyBTaSBlbCBwcm9kdWN0byB0aWVuZSBsYSBwcm9waWVkYWQgJ3N0b2NrJyB5IGVzIG1heW9yIGEgMFxuICAgICAgICBpZiAodHlwZW9mIHByb2R1Y3Quc3RvY2sgPT09ICdudW1iZXInKSB7XG4gICAgICAgICAgICByZXR1cm4gcHJvZHVjdC5zdG9jayA+IDA7XG4gICAgICAgIH1cbiAgICAgICAgLy8gU2kgZWwgcHJvZHVjdG8gdGllbmUgdmFyaWFudGVzLCB2ZXJpZmljYSBzaSBhbGd1bmEgdGllbmUgc3RvY2tcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkocHJvZHVjdC52YXJpYW50cykpIHtcbiAgICAgICAgICAgIHJldHVybiBwcm9kdWN0LnZhcmlhbnRzLnNvbWUodmFyaWFudCA9PiB2YXJpYW50LnN0b2NrID4gMCk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gU2kgbm8gdGllbmUgaW5mb3JtYWNpw7NuIGRlIHN0b2NrLCBhc3VtaW1vcyBxdWUgbm8gaGF5IHN0b2NrXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2ludGVyZmFjZXMvZmlsdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBGaWx0ZXJUeXBlID0gJ2NhdGVnb3JpZXMnIHwgJ2F0dHJpYnV0ZXMnIHwgJ3NvcnQnIHwgJ2R5bmFtaWNzJyB8ICdwcmljZV9yYW5nZScgfCAnYWxsJztcbmV4cG9ydCB0eXBlIEVsZW1lbnRUeXBlID0gJ3N1YicgfCAnY2hpbGQnIHwgJ3JhbmdlJztcbmV4cG9ydCB0eXBlIEZpbHRlclNoYXBlID0gJ2NvbG9yJyB8ICd0ZXh0JyB8ICdzaXplJztcbi8qKlxuICogQGRlc2NyaXB0aW9uIEludGVyZmF6IHV0aWxpemFkYSBwYXJhIGFwbGljYXIgZmlsdHJvcyBwb3IgZGVmZWN0by5cbiAqL1xuZXhwb3J0IHR5cGUgRGVmYXVsdEZpbHRlciA9IHtcbiAgICAvLyBba2V5IGluIEZpbHRlclR5cGVdIDogc3RyaW5nW11cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpdGlvbiBUaXBvIGRlIGZpbHRybyBxdWUgc2UgYXBsaWNhcmEuXG4gICAgICogRWplbXBsbzogJ3NvcnQnIHwgJ2NhdGVnb3J5JyB8ICdhdHRyaWJ1dGVzJyB8ICdkeW5hbWljcycgLi4uXG4gICAgICovXG4gICAgZmlsdGVyX3R5cGU6IEZpbHRlclR5cGUsXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIENvbnRpZW5lIGxvcyBjb2RpZ29zIGRlIGxvcyBmaWx0cm9zIHF1ZSBzZSBkZXNlYW4gYXBsaWNhci5cbiAgICAgKiBFamVtcGxvOiBzaSBlbCBmaWx0cm8gZXMgJ3NvcnQnIGVsIGFycmVnbG8gcG9kcmlhIGNvbnRlbmVyICdwcmljZSBjaGlwJyB8ICdwcmljZSBleHBlbnNpdmUnIHwgJ2FscGhhIGFzYycgfCAnYWxwaGEgZGVzYycgLi4uXG4gICAgICovXG4gICAgY29kZXM6IHN0cmluZ1tdXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmlsdGVyRWxlbWVudCB7XG5cbiAgICAvLyBCT1RIXG4gICAgdGl0bGU6IHN0cmluZztcbiAgICB0eXBlOiBFbGVtZW50VHlwZTtcbiAgICBjb2RlOiBzdHJpbmc7XG4gICAgaXNWaXNpYmxlPzogYm9vbGVhbjtcbiAgICBcbiAgICAvLyBGQVRIRVJcbiAgICBtdWx0aT86IGJvb2xlYW47XG4gICAgY2hpbGRyZW4/OiBGaWx0ZXJFbGVtZW50W107XG4gICAgc2hhcGU/OiBGaWx0ZXJTaGFwZTtcbiAgICBwYXRoPzogc3RyaW5nOyBcbiAgICBub1VybD86Ym9vbGVhbjsgLy8gcGFyYSBpbmRpY2FyIHNpIHNlIGZpbHRyYSBlbiBsYSB2aXN0YSBvIG5vXG4gICAgXG4gICAgLy8gQ0hJTERcbiAgICB2YWx1ZT86IHN0cmluZztcbiAgICBzbHVnPzogc3RyaW5nO1xuICAgIHNlbGVjdGVkPzogYm9vbGVhbjtcbn1cblxuLyogZXhwb3J0IGludGVyZmFjZSBJRmlsdGVyIHtcblxuICAgIGdlbmVyYXRlZF91cmw6IHN0cmluZztcbiAgICBkYXRhOiBhbnk7XG4gICAgdHlwZSgpOiBGaWx0ZXJUeXBlO1xuICAgIHNldENvbnRlbnQob3B0aW9uczphbnkpOiB2b2lkO1xuICAgIGdldENvbnRlbnQoKTogRmlsdGVyRWxlbWVudFtdO1xuICAgIHNldFNlbGVjdGVkKGVsZW1lbnQ6IEZpbHRlckVsZW1lbnQsIHZhbHVlOiBzdHJpbmcpOnZvaWQ7XG4gICAgdG9VcmxQYXJhbXMoKTogc3RyaW5nO1xufSAqL1xuXG5leHBvcnQgaW50ZXJmYWNlIElGaWx0ZXJ7XG4gICAgZGF0YTogRmlsdGVyRWxlbWVudFtdO1xuICAgIG11bHRpOmJvb2xlYW47XG4gICAgXG4gICAgdHlwZSgpOiBGaWx0ZXJUeXBlO1xuICAgIHNldENvbnRlbnQob3B0aW9uczphbnkpOiB2b2lkO1xuICAgIGdldENvbnRlbnQoKTogRmlsdGVyRWxlbWVudFtdO1xuICAgIHRvVXJsUGFyYW1zKCk6IHN0cmluZztcbiAgICBjcmVhdGVFbGVtZW50KGZpbHRlcjphbnksb3JpZ2luYWw6YW55LGluaXRpYWxWYWx1ZT86YW55KTphbnk7XG59Il19
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWVhc3ljb21tZXJjZS12MTgvc3JjL2xpYi9pbnRlcmZhY2VzL29wdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgQ2F0ZWdvcnl7XG4gICAgY29kZTogc3RyaW5nO1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBzbHVnOiBzdHJpbmc7XG4gICAgcG9zaXRpb246IG51bWJlcjtcbiAgICBwYXRoOiBzdHJpbmc7IFxuICAgIGlzVmlzaWJsZT86IGJvb2xlYW47XG4gICAgY2hpbGRyZW4/OiBDYXRlZ29yeVtdO1xuICAgIGltYWdlcz86YW55W107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VjdGlvbntcbiAgICBjb2RlOiBzdHJpbmc7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHBhZ2VzPzphbnlbXTtcbiAgICBwYXRoPzpzdHJpbmc7XG4gICAgY2hpbGRyZW4/OlNlY3Rpb25bXTtcbiAgICB0eXBlPzpzdHJpbmc7XG4gICAgYmxvY2tzPzphbnlbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBdHRyaWJ1dGV7XG4gICAgY29kZTogc3RyaW5nO1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBwYXRoOiBzdHJpbmc7XG4gICAgc2x1Zzogc3RyaW5nO1xuICAgIHVzZVRvRmlsdGVyOiBib29sZWFuO1xuICAgIHN0eWxlcz86YW55W107XG4gICAgaXNWaXNpYmxlPzogYm9vbGVhbjtcbn0iXX0=
|