@esolve/ng-esolve-connect 0.20.9 → 0.21.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/esm2020/lib/shared/filters/classes/esolve-multiple-select-filter.model.mjs +30 -0
  2. package/esm2020/lib/shared/filters/classes/esolve-range-filter.model.mjs +45 -0
  3. package/esm2020/lib/shared/filters/classes/esolve-single-select-filter.model.mjs +33 -0
  4. package/esm2020/lib/shared/filters/classes/index.mjs +5 -0
  5. package/esm2020/lib/shared/filters/esolve-filter-factory.mjs +60 -0
  6. package/esm2020/lib/shared/filters/index.mjs +5 -0
  7. package/esm2020/lib/shared/filters/interfaces/esolve-filter-definitions.interface.mjs +2 -0
  8. package/esm2020/lib/shared/filters/interfaces/esolve-filter-record.interface.mjs +2 -0
  9. package/esm2020/lib/shared/filters/interfaces/esolve-filter.interface.mjs +2 -0
  10. package/esm2020/lib/shared/filters/interfaces/esolve-range-filter-record.interface.mjs +2 -0
  11. package/esm2020/lib/shared/filters/interfaces/esolve-select-filter-record.interface.mjs +2 -0
  12. package/esm2020/lib/shared/filters/interfaces/esolve-select-filter.interface.mjs +2 -0
  13. package/esm2020/lib/shared/filters/interfaces/index.mjs +8 -0
  14. package/esm2020/lib/shared/filters/types/esolve-filter-list.type.mjs +2 -0
  15. package/esm2020/lib/shared/filters/types/esolve-filter-record-list.type.mjs +2 -0
  16. package/esm2020/lib/shared/filters/types/esolve-filter-type.type.mjs +2 -0
  17. package/esm2020/lib/shared/filters/types/esolve-range-filter-type.type.mjs +2 -0
  18. package/esm2020/lib/shared/filters/types/esolve-select-filter-type.type.mjs +2 -0
  19. package/esm2020/lib/shared/filters/types/index.mjs +7 -0
  20. package/esm2020/lib/stock/esolve-stock.service.mjs +47 -8
  21. package/esm2020/lib/stock/interfaces/esolve-stock-filter-options.interface.mjs +2 -0
  22. package/esm2020/lib/stock/interfaces/esolve-stock-item-options.interface.mjs +1 -1
  23. package/esm2020/public-api.mjs +2 -1
  24. package/fesm2015/esolve-ng-esolve-connect.mjs +217 -8
  25. package/fesm2015/esolve-ng-esolve-connect.mjs.map +1 -1
  26. package/fesm2020/esolve-ng-esolve-connect.mjs +219 -8
  27. package/fesm2020/esolve-ng-esolve-connect.mjs.map +1 -1
  28. package/lib/shared/filters/classes/esolve-multiple-select-filter.model.d.ts +14 -0
  29. package/lib/shared/filters/classes/esolve-range-filter.model.d.ts +18 -0
  30. package/lib/shared/filters/classes/esolve-single-select-filter.model.d.ts +15 -0
  31. package/lib/shared/filters/classes/index.d.ts +3 -0
  32. package/lib/shared/filters/esolve-filter-factory.d.ts +13 -0
  33. package/lib/shared/filters/index.d.ts +4 -0
  34. package/lib/shared/filters/interfaces/esolve-filter-definitions.interface.d.ts +6 -0
  35. package/lib/shared/filters/interfaces/esolve-filter-record.interface.d.ts +5 -0
  36. package/lib/shared/filters/interfaces/esolve-filter.interface.d.ts +10 -0
  37. package/lib/shared/filters/interfaces/esolve-range-filter-record.interface.d.ts +7 -0
  38. package/lib/shared/filters/interfaces/esolve-select-filter-record.interface.d.ts +6 -0
  39. package/lib/shared/filters/interfaces/esolve-select-filter.interface.d.ts +4 -0
  40. package/lib/shared/filters/interfaces/index.d.ts +6 -0
  41. package/lib/shared/filters/types/esolve-filter-list.type.d.ts +2 -0
  42. package/lib/shared/filters/types/esolve-filter-record-list.type.d.ts +2 -0
  43. package/lib/shared/filters/types/esolve-filter-type.type.d.ts +3 -0
  44. package/lib/shared/filters/types/esolve-range-filter-type.type.d.ts +1 -0
  45. package/lib/shared/filters/types/esolve-select-filter-type.type.d.ts +1 -0
  46. package/lib/shared/filters/types/index.d.ts +5 -0
  47. package/lib/stock/esolve-stock.service.d.ts +3 -0
  48. package/lib/stock/interfaces/esolve-stock-filter-options.interface.d.ts +7 -0
  49. package/lib/stock/interfaces/esolve-stock-item-options.interface.d.ts +5 -0
  50. package/package.json +1 -1
  51. package/public-api.d.ts +1 -0
@@ -0,0 +1,30 @@
1
+ export class EsolveMultipleSelectFilter {
2
+ constructor(field, options) {
3
+ this.field = field;
4
+ this.type = 'multiple';
5
+ this.options = [];
6
+ if (options) {
7
+ this.options = options;
8
+ }
9
+ }
10
+ setValue(values) {
11
+ this.values = values;
12
+ }
13
+ toHttpParams(http_params) {
14
+ if (!this.values) {
15
+ throw new Error('No values set');
16
+ }
17
+ const base_property = `filter[${this.field}]`;
18
+ const type_property = base_property + '[type]';
19
+ const values_property = base_property + '[values][]';
20
+ const params = {
21
+ [type_property]: this.type,
22
+ [values_property]: this.values,
23
+ };
24
+ if (http_params) {
25
+ return http_params.appendAll(params);
26
+ }
27
+ return params;
28
+ }
29
+ }
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLW11bHRpcGxlLXNlbGVjdC1maWx0ZXIubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lc29sdmUtY29ubmVjdC9zcmMvbGliL3NoYXJlZC9maWx0ZXJzL2NsYXNzZXMvZXNvbHZlLW11bHRpcGxlLXNlbGVjdC1maWx0ZXIubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsTUFBTSxPQUFPLDBCQUEwQjtJQU1uQyxZQUNXLEtBQWEsRUFDcEIsT0FBNkI7UUFEdEIsVUFBSyxHQUFMLEtBQUssQ0FBUTtRQU5SLFNBQUksR0FBRyxVQUFVLENBQUM7UUFDM0IsWUFBTyxHQUF3QixFQUFFLENBQUM7UUFRckMsSUFBSSxPQUFPLEVBQUU7WUFDVCxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztTQUMxQjtJQUNMLENBQUM7SUFFTSxRQUFRLENBQUMsTUFBMkI7UUFDdkMsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7SUFDekIsQ0FBQztJQUlNLFlBQVksQ0FDZixXQUF3QjtRQUV4QixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNkLE1BQU0sSUFBSSxLQUFLLENBQUMsZUFBZSxDQUFDLENBQUM7U0FDcEM7UUFFRCxNQUFNLGFBQWEsR0FBRyxVQUFVLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQztRQUM5QyxNQUFNLGFBQWEsR0FBRyxhQUFhLEdBQUcsUUFBUSxDQUFDO1FBQy9DLE1BQU0sZUFBZSxHQUFHLGFBQWEsR0FBRyxZQUFZLENBQUM7UUFFckQsTUFBTSxNQUFNLEdBQUc7WUFDWCxDQUFDLGFBQWEsQ0FBQyxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQzFCLENBQUMsZUFBZSxDQUFDLEVBQUUsSUFBSSxDQUFDLE1BQU07U0FDakMsQ0FBQztRQUVGLElBQUksV0FBVyxFQUFFO1lBQ2IsT0FBTyxXQUFXLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ3hDO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuXHJcbmltcG9ydCB7IEVzb2x2ZVNlbGVjdEZpbHRlciB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xyXG5cclxuZXhwb3J0IGNsYXNzIEVzb2x2ZU11bHRpcGxlU2VsZWN0RmlsdGVyIGltcGxlbWVudHMgRXNvbHZlU2VsZWN0RmlsdGVyIHtcclxuICAgIHB1YmxpYyByZWFkb25seSB0eXBlID0gJ211bHRpcGxlJztcclxuICAgIHB1YmxpYyBvcHRpb25zOiAoc3RyaW5nIHwgbnVtYmVyKVtdID0gW107XHJcblxyXG4gICAgcHJpdmF0ZSB2YWx1ZXM/OiAoc3RyaW5nIHwgbnVtYmVyKVtdO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHB1YmxpYyBmaWVsZDogc3RyaW5nLFxyXG4gICAgICAgIG9wdGlvbnM/OiAoc3RyaW5nIHwgbnVtYmVyKVtdLFxyXG4gICAgKSB7XHJcbiAgICAgICAgaWYgKG9wdGlvbnMpIHtcclxuICAgICAgICAgICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucztcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNldFZhbHVlKHZhbHVlczogKHN0cmluZyB8IG51bWJlcilbXSkge1xyXG4gICAgICAgIHRoaXMudmFsdWVzID0gdmFsdWVzO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyB0b0h0dHBQYXJhbXMoKTogeyBbeDogc3RyaW5nXTogc3RyaW5nIHwgKHN0cmluZyB8IG51bWJlcilbXTsgfTtcclxuICAgIHB1YmxpYyB0b0h0dHBQYXJhbXMoaHR0cF9wYXJhbXM6IEh0dHBQYXJhbXMpOiBIdHRwUGFyYW1zO1xyXG4gICAgcHVibGljIHRvSHR0cFBhcmFtcyhcclxuICAgICAgICBodHRwX3BhcmFtcz86IEh0dHBQYXJhbXMsXHJcbiAgICApOiBIdHRwUGFyYW1zIHwgeyBbeDogc3RyaW5nXTogc3RyaW5nIHwgKHN0cmluZyB8IG51bWJlcilbXTsgfSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLnZhbHVlcykge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIHZhbHVlcyBzZXQnKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IGJhc2VfcHJvcGVydHkgPSBgZmlsdGVyWyR7dGhpcy5maWVsZH1dYDtcclxuICAgICAgICBjb25zdCB0eXBlX3Byb3BlcnR5ID0gYmFzZV9wcm9wZXJ0eSArICdbdHlwZV0nO1xyXG4gICAgICAgIGNvbnN0IHZhbHVlc19wcm9wZXJ0eSA9IGJhc2VfcHJvcGVydHkgKyAnW3ZhbHVlc11bXSc7XHJcblxyXG4gICAgICAgIGNvbnN0IHBhcmFtcyA9IHtcclxuICAgICAgICAgICAgW3R5cGVfcHJvcGVydHldOiB0aGlzLnR5cGUsXHJcbiAgICAgICAgICAgIFt2YWx1ZXNfcHJvcGVydHldOiB0aGlzLnZhbHVlcyxcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICBpZiAoaHR0cF9wYXJhbXMpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGh0dHBfcGFyYW1zLmFwcGVuZEFsbChwYXJhbXMpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHBhcmFtcztcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,45 @@
1
+ export class EsolveRangeFilter {
2
+ constructor(field, min = 0, max = 0) {
3
+ this.field = field;
4
+ this.type = 'range';
5
+ this.min = 0;
6
+ this.max = 0;
7
+ this.options = {
8
+ min: 0,
9
+ max: 0,
10
+ };
11
+ this.options.min = min;
12
+ this.options.max = max;
13
+ if ((max > 0) && (min > max)) {
14
+ this.options.min = max;
15
+ this.options.max = min;
16
+ }
17
+ }
18
+ setValue(min, max) {
19
+ this.min = min;
20
+ this.max = max;
21
+ if ((max > 0) && (min > max)) {
22
+ this.min = max;
23
+ this.max = min;
24
+ }
25
+ }
26
+ toHttpParams(http_params) {
27
+ if (this.min <= 0 && this.max <= 0) {
28
+ throw new Error('No values set');
29
+ }
30
+ const base_property = `filter[${this.field}]`;
31
+ const type_property = base_property + '[type]';
32
+ const min_property = base_property + '[min]';
33
+ const max_property = base_property + '[max]';
34
+ const params = {
35
+ [type_property]: this.type,
36
+ [min_property]: this.min,
37
+ [max_property]: this.max,
38
+ };
39
+ if (http_params) {
40
+ return http_params.appendAll(params);
41
+ }
42
+ return params;
43
+ }
44
+ }
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXJhbmdlLWZpbHRlci5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvc2hhcmVkL2ZpbHRlcnMvY2xhc3Nlcy9lc29sdmUtcmFuZ2UtZmlsdGVyLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE1BQU0sT0FBTyxpQkFBaUI7SUFTMUIsWUFDVyxLQUFhLEVBQ3BCLE1BQWMsQ0FBQyxFQUNmLE1BQWMsQ0FBQztRQUZSLFVBQUssR0FBTCxLQUFLLENBQVE7UUFUUixTQUFJLEdBQUcsT0FBTyxDQUFDO1FBQ3hCLFFBQUcsR0FBVyxDQUFDLENBQUM7UUFDaEIsUUFBRyxHQUFXLENBQUMsQ0FBQztRQUNoQixZQUFPLEdBQUc7WUFDYixHQUFHLEVBQUUsQ0FBQztZQUNOLEdBQUcsRUFBRSxDQUFDO1NBQ1QsQ0FBQztRQU9FLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUN2QixJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7UUFFdkIsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRTtZQUMxQixJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7WUFDdkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1NBQzFCO0lBQ0wsQ0FBQztJQUVNLFFBQVEsQ0FBQyxHQUFXLEVBQUUsR0FBVztRQUNwQyxJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUNmLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1FBRWYsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRTtZQUMxQixJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztZQUNmLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1NBQ2xCO0lBQ0wsQ0FBQztJQUlNLFlBQVksQ0FDZixXQUF3QjtRQUV4QixJQUFJLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxFQUFFO1lBQ2hDLE1BQU0sSUFBSSxLQUFLLENBQUMsZUFBZSxDQUFDLENBQUM7U0FDcEM7UUFFRCxNQUFNLGFBQWEsR0FBRyxVQUFVLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQztRQUM5QyxNQUFNLGFBQWEsR0FBRyxhQUFhLEdBQUcsUUFBUSxDQUFDO1FBQy9DLE1BQU0sWUFBWSxHQUFHLGFBQWEsR0FBRyxPQUFPLENBQUM7UUFDN0MsTUFBTSxZQUFZLEdBQUcsYUFBYSxHQUFHLE9BQU8sQ0FBQztRQUU3QyxNQUFNLE1BQU0sR0FBRztZQUNYLENBQUMsYUFBYSxDQUFDLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDMUIsQ0FBQyxZQUFZLENBQUMsRUFBRSxJQUFJLENBQUMsR0FBRztZQUN4QixDQUFDLFlBQVksQ0FBQyxFQUFFLElBQUksQ0FBQyxHQUFHO1NBQzNCLENBQUM7UUFFRixJQUFJLFdBQVcsRUFBRTtZQUNiLE9BQU8sV0FBVyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUN4QztRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEVzb2x2ZUZpbHRlciB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xyXG5cclxuZXhwb3J0IGNsYXNzIEVzb2x2ZVJhbmdlRmlsdGVyIGltcGxlbWVudHMgRXNvbHZlRmlsdGVyIHtcclxuICAgIHB1YmxpYyByZWFkb25seSB0eXBlID0gJ3JhbmdlJztcclxuICAgIHB1YmxpYyBtaW46IG51bWJlciA9IDA7XHJcbiAgICBwdWJsaWMgbWF4OiBudW1iZXIgPSAwO1xyXG4gICAgcHVibGljIG9wdGlvbnMgPSB7XHJcbiAgICAgICAgbWluOiAwLFxyXG4gICAgICAgIG1heDogMCxcclxuICAgIH07XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHVibGljIGZpZWxkOiBzdHJpbmcsXHJcbiAgICAgICAgbWluOiBudW1iZXIgPSAwLFxyXG4gICAgICAgIG1heDogbnVtYmVyID0gMCxcclxuICAgICkge1xyXG4gICAgICAgIHRoaXMub3B0aW9ucy5taW4gPSBtaW47XHJcbiAgICAgICAgdGhpcy5vcHRpb25zLm1heCA9IG1heDtcclxuXHJcbiAgICAgICAgaWYgKChtYXggPiAwKSAmJiAobWluID4gbWF4KSkge1xyXG4gICAgICAgICAgICB0aGlzLm9wdGlvbnMubWluID0gbWF4O1xyXG4gICAgICAgICAgICB0aGlzLm9wdGlvbnMubWF4ID0gbWluO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc2V0VmFsdWUobWluOiBudW1iZXIsIG1heDogbnVtYmVyKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5taW4gPSBtaW47XHJcbiAgICAgICAgdGhpcy5tYXggPSBtYXg7XHJcblxyXG4gICAgICAgIGlmICgobWF4ID4gMCkgJiYgKG1pbiA+IG1heCkpIHtcclxuICAgICAgICAgICAgdGhpcy5taW4gPSBtYXg7XHJcbiAgICAgICAgICAgIHRoaXMubWF4ID0gbWluO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgdG9IdHRwUGFyYW1zKCk6IHsgW3g6IHN0cmluZ106IHN0cmluZyB8IG51bWJlcjsgfTtcclxuICAgIHB1YmxpYyB0b0h0dHBQYXJhbXMoaHR0cF9wYXJhbXM6IEh0dHBQYXJhbXMpOiBIdHRwUGFyYW1zO1xyXG4gICAgcHVibGljIHRvSHR0cFBhcmFtcyhcclxuICAgICAgICBodHRwX3BhcmFtcz86IEh0dHBQYXJhbXMsXHJcbiAgICApOiBIdHRwUGFyYW1zIHwgeyBbeDogc3RyaW5nXTogc3RyaW5nIHwgbnVtYmVyOyB9IHtcclxuICAgICAgICBpZiAodGhpcy5taW4gPD0gMCAmJiB0aGlzLm1heCA8PSAwKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignTm8gdmFsdWVzIHNldCcpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgYmFzZV9wcm9wZXJ0eSA9IGBmaWx0ZXJbJHt0aGlzLmZpZWxkfV1gO1xyXG4gICAgICAgIGNvbnN0IHR5cGVfcHJvcGVydHkgPSBiYXNlX3Byb3BlcnR5ICsgJ1t0eXBlXSc7XHJcbiAgICAgICAgY29uc3QgbWluX3Byb3BlcnR5ID0gYmFzZV9wcm9wZXJ0eSArICdbbWluXSc7XHJcbiAgICAgICAgY29uc3QgbWF4X3Byb3BlcnR5ID0gYmFzZV9wcm9wZXJ0eSArICdbbWF4XSc7XHJcblxyXG4gICAgICAgIGNvbnN0IHBhcmFtcyA9IHtcclxuICAgICAgICAgICAgW3R5cGVfcHJvcGVydHldOiB0aGlzLnR5cGUsXHJcbiAgICAgICAgICAgIFttaW5fcHJvcGVydHldOiB0aGlzLm1pbixcclxuICAgICAgICAgICAgW21heF9wcm9wZXJ0eV06IHRoaXMubWF4LFxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIGlmIChodHRwX3BhcmFtcykge1xyXG4gICAgICAgICAgICByZXR1cm4gaHR0cF9wYXJhbXMuYXBwZW5kQWxsKHBhcmFtcyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gcGFyYW1zO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,33 @@
1
+ export class EsolveSingleSelectFilter {
2
+ constructor(field, options_or_value) {
3
+ this.field = field;
4
+ this.type = 'single';
5
+ this.options = [];
6
+ if (Array.isArray(options_or_value)) {
7
+ this.options = options_or_value;
8
+ }
9
+ else {
10
+ this.setValue(options_or_value);
11
+ }
12
+ }
13
+ setValue(value) {
14
+ this.value = value;
15
+ }
16
+ toHttpParams(http_params) {
17
+ if (!this.value) {
18
+ throw new Error('No values set');
19
+ }
20
+ const base_property = `filter[${this.field}]`;
21
+ const type_property = base_property + '[type]';
22
+ const values_property = base_property + '[value]';
23
+ const params = {
24
+ [type_property]: this.type,
25
+ [values_property]: this.value,
26
+ };
27
+ if (http_params) {
28
+ return http_params.appendAll(params);
29
+ }
30
+ return params;
31
+ }
32
+ }
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXNpbmdsZS1zZWxlY3QtZmlsdGVyLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZXNvbHZlLWNvbm5lY3Qvc3JjL2xpYi9zaGFyZWQvZmlsdGVycy9jbGFzc2VzL2Vzb2x2ZS1zaW5nbGUtc2VsZWN0LWZpbHRlci5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxNQUFNLE9BQU8sd0JBQXdCO0lBUWpDLFlBQ1csS0FBYSxFQUNwQixnQkFBdUQ7UUFEaEQsVUFBSyxHQUFMLEtBQUssQ0FBUTtRQVJSLFNBQUksR0FBRyxRQUFRLENBQUM7UUFDekIsWUFBTyxHQUF3QixFQUFFLENBQUM7UUFVckMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLEVBQUU7WUFDakMsSUFBSSxDQUFDLE9BQU8sR0FBRyxnQkFBZ0IsQ0FBQztTQUNuQzthQUFNO1lBQ0gsSUFBSSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1NBQ25DO0lBQ0wsQ0FBQztJQUVNLFFBQVEsQ0FBQyxLQUFzQjtRQUNsQyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUN2QixDQUFDO0lBSU0sWUFBWSxDQUNmLFdBQXdCO1FBRXhCLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ2IsTUFBTSxJQUFJLEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FBQztTQUNwQztRQUVELE1BQU0sYUFBYSxHQUFHLFVBQVUsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDO1FBQzlDLE1BQU0sYUFBYSxHQUFHLGFBQWEsR0FBRyxRQUFRLENBQUM7UUFDL0MsTUFBTSxlQUFlLEdBQUcsYUFBYSxHQUFHLFNBQVMsQ0FBQztRQUVsRCxNQUFNLE1BQU0sR0FBRztZQUNYLENBQUMsYUFBYSxDQUFDLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDMUIsQ0FBQyxlQUFlLENBQUMsRUFBRSxJQUFJLENBQUMsS0FBSztTQUNoQyxDQUFDO1FBRUYsSUFBSSxXQUFXLEVBQUU7WUFDYixPQUFPLFdBQVcsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDeEM7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwUGFyYW1zIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5cclxuaW1wb3J0IHsgRXNvbHZlU2VsZWN0RmlsdGVyIH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XHJcblxyXG5leHBvcnQgY2xhc3MgRXNvbHZlU2luZ2xlU2VsZWN0RmlsdGVyIGltcGxlbWVudHMgRXNvbHZlU2VsZWN0RmlsdGVyIHtcclxuICAgIHB1YmxpYyByZWFkb25seSB0eXBlID0gJ3NpbmdsZSc7XHJcbiAgICBwdWJsaWMgb3B0aW9uczogKHN0cmluZyB8IG51bWJlcilbXSA9IFtdO1xyXG5cclxuICAgIHByaXZhdGUgdmFsdWU/OiBzdHJpbmcgfCBudW1iZXI7XHJcblxyXG4gICAgY29uc3RydWN0b3IoZmllbGQ6IHN0cmluZywgb3B0aW9uczogKHN0cmluZyB8IG51bWJlcilbXSk7XHJcbiAgICBjb25zdHJ1Y3RvcihmaWVsZDogc3RyaW5nLCB2YWx1ZTogc3RyaW5nIHwgbnVtYmVyKTtcclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHB1YmxpYyBmaWVsZDogc3RyaW5nLFxyXG4gICAgICAgIG9wdGlvbnNfb3JfdmFsdWU6IHN0cmluZyB8IG51bWJlciB8IChzdHJpbmcgfCBudW1iZXIpW10sXHJcbiAgICApIHtcclxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShvcHRpb25zX29yX3ZhbHVlKSkge1xyXG4gICAgICAgICAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zX29yX3ZhbHVlO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0VmFsdWUob3B0aW9uc19vcl92YWx1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzZXRWYWx1ZSh2YWx1ZTogc3RyaW5nIHwgbnVtYmVyKSB7XHJcbiAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyB0b0h0dHBQYXJhbXMoKTogeyBbeDogc3RyaW5nXTogc3RyaW5nIHwgbnVtYmVyOyB9O1xyXG4gICAgcHVibGljIHRvSHR0cFBhcmFtcyhodHRwX3BhcmFtczogSHR0cFBhcmFtcyk6IEh0dHBQYXJhbXM7XHJcbiAgICBwdWJsaWMgdG9IdHRwUGFyYW1zKFxyXG4gICAgICAgIGh0dHBfcGFyYW1zPzogSHR0cFBhcmFtcyxcclxuICAgICk6IEh0dHBQYXJhbXMgfCB7IFt4OiBzdHJpbmddOiBzdHJpbmcgfCBudW1iZXI7IH0ge1xyXG4gICAgICAgIGlmICghdGhpcy52YWx1ZSkge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIHZhbHVlcyBzZXQnKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IGJhc2VfcHJvcGVydHkgPSBgZmlsdGVyWyR7dGhpcy5maWVsZH1dYDtcclxuICAgICAgICBjb25zdCB0eXBlX3Byb3BlcnR5ID0gYmFzZV9wcm9wZXJ0eSArICdbdHlwZV0nO1xyXG4gICAgICAgIGNvbnN0IHZhbHVlc19wcm9wZXJ0eSA9IGJhc2VfcHJvcGVydHkgKyAnW3ZhbHVlXSc7XHJcblxyXG4gICAgICAgIGNvbnN0IHBhcmFtcyA9IHtcclxuICAgICAgICAgICAgW3R5cGVfcHJvcGVydHldOiB0aGlzLnR5cGUsXHJcbiAgICAgICAgICAgIFt2YWx1ZXNfcHJvcGVydHldOiB0aGlzLnZhbHVlLFxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIGlmIChodHRwX3BhcmFtcykge1xyXG4gICAgICAgICAgICByZXR1cm4gaHR0cF9wYXJhbXMuYXBwZW5kQWxsKHBhcmFtcyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gcGFyYW1zO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,5 @@
1
+ // Classes
2
+ export * from './esolve-multiple-select-filter.model';
3
+ export * from './esolve-range-filter.model';
4
+ export * from './esolve-single-select-filter.model';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lc29sdmUtY29ubmVjdC9zcmMvbGliL3NoYXJlZC9maWx0ZXJzL2NsYXNzZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsVUFBVTtBQUNWLGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLHFDQUFxQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ2xhc3Nlc1xyXG5leHBvcnQgKiBmcm9tICcuL2Vzb2x2ZS1tdWx0aXBsZS1zZWxlY3QtZmlsdGVyLm1vZGVsJztcclxuZXhwb3J0ICogZnJvbSAnLi9lc29sdmUtcmFuZ2UtZmlsdGVyLm1vZGVsJztcclxuZXhwb3J0ICogZnJvbSAnLi9lc29sdmUtc2luZ2xlLXNlbGVjdC1maWx0ZXIubW9kZWwnO1xyXG4iXX0=
@@ -0,0 +1,60 @@
1
+ import { EsolveMultipleSelectFilter, EsolveRangeFilter, EsolveSingleSelectFilter, } from './classes';
2
+ export var EsolveFilterFactory;
3
+ (function (EsolveFilterFactory) {
4
+ function createRangeWithValue(field, min = 0, max = 0) {
5
+ const filter = new EsolveRangeFilter(field);
6
+ filter.setValue(min, max);
7
+ return filter;
8
+ }
9
+ EsolveFilterFactory.createRangeWithValue = createRangeWithValue;
10
+ function createSingleSelectWithValue(field, value) {
11
+ const filter = new EsolveSingleSelectFilter(field, value);
12
+ return filter;
13
+ }
14
+ EsolveFilterFactory.createSingleSelectWithValue = createSingleSelectWithValue;
15
+ function createMultipleSelectWithValue(field, value) {
16
+ const filter = new EsolveMultipleSelectFilter(field);
17
+ filter.setValue(value);
18
+ return filter;
19
+ }
20
+ EsolveFilterFactory.createMultipleSelectWithValue = createMultipleSelectWithValue;
21
+ function covertFromObj(obj) {
22
+ const filters = [];
23
+ for (const field in obj) {
24
+ const value = obj[field];
25
+ let filter = null;
26
+ if (Array.isArray(value)) {
27
+ filter = createMultipleSelectWithValue(field, value);
28
+ }
29
+ else if (typeof value === 'object') {
30
+ filter = createRangeWithValue(field, value.min, value.max);
31
+ }
32
+ else {
33
+ filter = createSingleSelectWithValue(field, value);
34
+ }
35
+ if (filter) {
36
+ filters.push(filter);
37
+ }
38
+ }
39
+ return filters;
40
+ }
41
+ EsolveFilterFactory.covertFromObj = covertFromObj;
42
+ function convertToHttpParams(filters, http_params) {
43
+ if (http_params) {
44
+ for (const filter of filters) {
45
+ http_params = filter.toHttpParams(http_params);
46
+ }
47
+ return http_params;
48
+ }
49
+ let params = {};
50
+ for (const filter of filters) {
51
+ params = {
52
+ ...params,
53
+ ...filter.toHttpParams(),
54
+ };
55
+ }
56
+ return params;
57
+ }
58
+ EsolveFilterFactory.convertToHttpParams = convertToHttpParams;
59
+ })(EsolveFilterFactory || (EsolveFilterFactory = {}));
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWZpbHRlci1mYWN0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZXNvbHZlLWNvbm5lY3Qvc3JjL2xpYi9zaGFyZWQvZmlsdGVycy9lc29sdmUtZmlsdGVyLWZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUNILDBCQUEwQixFQUMxQixpQkFBaUIsRUFDakIsd0JBQXdCLEdBQzNCLE1BQU0sV0FBVyxDQUFDO0FBR25CLE1BQU0sS0FBVyxtQkFBbUIsQ0FzRm5DO0FBdEZELFdBQWlCLG1CQUFtQjtJQUNoQyxTQUFnQixvQkFBb0IsQ0FDaEMsS0FBYSxFQUNiLE1BQWMsQ0FBQyxFQUNmLE1BQWMsQ0FBQztRQUVmLE1BQU0sTUFBTSxHQUFHLElBQUksaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDNUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFFMUIsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQztJQVRlLHdDQUFvQix1QkFTbkMsQ0FBQTtJQUVELFNBQWdCLDJCQUEyQixDQUN2QyxLQUFhLEVBQ2IsS0FBc0I7UUFFdEIsTUFBTSxNQUFNLEdBQUcsSUFBSSx3QkFBd0IsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFMUQsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQztJQVBlLCtDQUEyQiw4QkFPMUMsQ0FBQTtJQUVELFNBQWdCLDZCQUE2QixDQUN6QyxLQUFhLEVBQ2IsS0FBMEI7UUFFMUIsTUFBTSxNQUFNLEdBQUcsSUFBSSwwQkFBMEIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyRCxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXZCLE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7SUFSZSxpREFBNkIsZ0NBUTVDLENBQUE7SUFFRCxTQUFnQixhQUFhLENBQUMsR0FBNEI7UUFDdEQsTUFBTSxPQUFPLEdBQW1CLEVBQUUsQ0FBQztRQUVuQyxLQUFLLE1BQU0sS0FBSyxJQUFJLEdBQUcsRUFBRTtZQUNyQixNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDekIsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDO1lBRWxCLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDdEIsTUFBTSxHQUFHLDZCQUE2QixDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQzthQUN4RDtpQkFBTSxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtnQkFDbEMsTUFBTSxHQUFHLG9CQUFvQixDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUM5RDtpQkFBTTtnQkFDSCxNQUFNLEdBQUcsMkJBQTJCLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO2FBQ3REO1lBRUQsSUFBSSxNQUFNLEVBQUU7Z0JBQ1IsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUN4QjtTQUNKO1FBRUQsT0FBTyxPQUFPLENBQUM7SUFDbkIsQ0FBQztJQXJCZSxpQ0FBYSxnQkFxQjVCLENBQUE7SUFXRCxTQUFnQixtQkFBbUIsQ0FDL0IsT0FBdUIsRUFDdkIsV0FBd0I7UUFFeEIsSUFBSSxXQUFXLEVBQUU7WUFDYixLQUFLLE1BQU0sTUFBTSxJQUFJLE9BQU8sRUFBRTtnQkFDMUIsV0FBVyxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLENBQUM7YUFDbEQ7WUFFRCxPQUFPLFdBQVcsQ0FBQztTQUN0QjtRQUVELElBQUksTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUVoQixLQUFLLE1BQU0sTUFBTSxJQUFJLE9BQU8sRUFBRTtZQUMxQixNQUFNLEdBQUc7Z0JBQ0wsR0FBRyxNQUFNO2dCQUNULEdBQUcsTUFBTSxDQUFDLFlBQVksRUFBRTthQUMzQixDQUFDO1NBQ0w7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDO0lBdEJlLHVDQUFtQixzQkFzQmxDLENBQUE7QUFDTCxDQUFDLEVBdEZnQixtQkFBbUIsS0FBbkIsbUJBQW1CLFFBc0ZuQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcblxyXG5pbXBvcnQge1xyXG4gICAgRXNvbHZlTXVsdGlwbGVTZWxlY3RGaWx0ZXIsXHJcbiAgICBFc29sdmVSYW5nZUZpbHRlcixcclxuICAgIEVzb2x2ZVNpbmdsZVNlbGVjdEZpbHRlcixcclxufSBmcm9tICcuL2NsYXNzZXMnO1xyXG5pbXBvcnQgeyBFc29sdmVGaWx0ZXIsIEVzb2x2ZUZpbHRlckRlZmluaXRpb25zIH0gZnJvbSAnLi9pbnRlcmZhY2VzJztcclxuXHJcbmV4cG9ydCBuYW1lc3BhY2UgRXNvbHZlRmlsdGVyRmFjdG9yeSB7XHJcbiAgICBleHBvcnQgZnVuY3Rpb24gY3JlYXRlUmFuZ2VXaXRoVmFsdWUoXHJcbiAgICAgICAgZmllbGQ6IHN0cmluZyxcclxuICAgICAgICBtaW46IG51bWJlciA9IDAsXHJcbiAgICAgICAgbWF4OiBudW1iZXIgPSAwLFxyXG4gICAgKTogRXNvbHZlUmFuZ2VGaWx0ZXIge1xyXG4gICAgICAgIGNvbnN0IGZpbHRlciA9IG5ldyBFc29sdmVSYW5nZUZpbHRlcihmaWVsZCk7XHJcbiAgICAgICAgZmlsdGVyLnNldFZhbHVlKG1pbiwgbWF4KTtcclxuXHJcbiAgICAgICAgcmV0dXJuIGZpbHRlcjtcclxuICAgIH1cclxuXHJcbiAgICBleHBvcnQgZnVuY3Rpb24gY3JlYXRlU2luZ2xlU2VsZWN0V2l0aFZhbHVlKFxyXG4gICAgICAgIGZpZWxkOiBzdHJpbmcsXHJcbiAgICAgICAgdmFsdWU6IHN0cmluZyB8IG51bWJlcixcclxuICAgICk6IEVzb2x2ZVNpbmdsZVNlbGVjdEZpbHRlciB7XHJcbiAgICAgICAgY29uc3QgZmlsdGVyID0gbmV3IEVzb2x2ZVNpbmdsZVNlbGVjdEZpbHRlcihmaWVsZCwgdmFsdWUpO1xyXG5cclxuICAgICAgICByZXR1cm4gZmlsdGVyO1xyXG4gICAgfVxyXG5cclxuICAgIGV4cG9ydCBmdW5jdGlvbiBjcmVhdGVNdWx0aXBsZVNlbGVjdFdpdGhWYWx1ZShcclxuICAgICAgICBmaWVsZDogc3RyaW5nLFxyXG4gICAgICAgIHZhbHVlOiAoc3RyaW5nIHwgbnVtYmVyKVtdLFxyXG4gICAgKTogRXNvbHZlTXVsdGlwbGVTZWxlY3RGaWx0ZXIge1xyXG4gICAgICAgIGNvbnN0IGZpbHRlciA9IG5ldyBFc29sdmVNdWx0aXBsZVNlbGVjdEZpbHRlcihmaWVsZCk7XHJcbiAgICAgICAgZmlsdGVyLnNldFZhbHVlKHZhbHVlKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIGZpbHRlcjtcclxuICAgIH1cclxuXHJcbiAgICBleHBvcnQgZnVuY3Rpb24gY292ZXJ0RnJvbU9iaihvYmo6IEVzb2x2ZUZpbHRlckRlZmluaXRpb25zKTogRXNvbHZlRmlsdGVyW10ge1xyXG4gICAgICAgIGNvbnN0IGZpbHRlcnM6IEVzb2x2ZUZpbHRlcltdID0gW107XHJcblxyXG4gICAgICAgIGZvciAoY29uc3QgZmllbGQgaW4gb2JqKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gb2JqW2ZpZWxkXTtcclxuICAgICAgICAgICAgbGV0IGZpbHRlciA9IG51bGw7XHJcblxyXG4gICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcclxuICAgICAgICAgICAgICAgIGZpbHRlciA9IGNyZWF0ZU11bHRpcGxlU2VsZWN0V2l0aFZhbHVlKGZpZWxkLCB2YWx1ZSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0Jykge1xyXG4gICAgICAgICAgICAgICAgZmlsdGVyID0gY3JlYXRlUmFuZ2VXaXRoVmFsdWUoZmllbGQsIHZhbHVlLm1pbiwgdmFsdWUubWF4KTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGZpbHRlciA9IGNyZWF0ZVNpbmdsZVNlbGVjdFdpdGhWYWx1ZShmaWVsZCwgdmFsdWUpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAoZmlsdGVyKSB7XHJcbiAgICAgICAgICAgICAgICBmaWx0ZXJzLnB1c2goZmlsdGVyKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGZpbHRlcnM7XHJcbiAgICB9XHJcblxyXG4gICAgZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnRUb0h0dHBQYXJhbXMoXHJcbiAgICAgICAgZmlsdGVyczogRXNvbHZlRmlsdGVyW10sXHJcbiAgICApOiB7IFt4OiBzdHJpbmddOiBzdHJpbmcgfCBudW1iZXIgfCAoc3RyaW5nIHwgbnVtYmVyKVtdOyB9O1xyXG5cclxuICAgIGV4cG9ydCBmdW5jdGlvbiBjb252ZXJ0VG9IdHRwUGFyYW1zKFxyXG4gICAgICAgIGZpbHRlcnM6IEVzb2x2ZUZpbHRlcltdLFxyXG4gICAgICAgIGh0dHBfcGFyYW1zOiBIdHRwUGFyYW1zLFxyXG4gICAgKTogSHR0cFBhcmFtcztcclxuXHJcbiAgICBleHBvcnQgZnVuY3Rpb24gY29udmVydFRvSHR0cFBhcmFtcyhcclxuICAgICAgICBmaWx0ZXJzOiBFc29sdmVGaWx0ZXJbXSxcclxuICAgICAgICBodHRwX3BhcmFtcz86IEh0dHBQYXJhbXMsXHJcbiAgICApOiBIdHRwUGFyYW1zIHwgeyBbeDogc3RyaW5nXTogc3RyaW5nIHwgbnVtYmVyIHwgKHN0cmluZyB8IG51bWJlcilbXTsgfSB7XHJcbiAgICAgICAgaWYgKGh0dHBfcGFyYW1zKSB7XHJcbiAgICAgICAgICAgIGZvciAoY29uc3QgZmlsdGVyIG9mIGZpbHRlcnMpIHtcclxuICAgICAgICAgICAgICAgIGh0dHBfcGFyYW1zID0gZmlsdGVyLnRvSHR0cFBhcmFtcyhodHRwX3BhcmFtcyk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHJldHVybiBodHRwX3BhcmFtcztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxldCBwYXJhbXMgPSB7fTtcclxuXHJcbiAgICAgICAgZm9yIChjb25zdCBmaWx0ZXIgb2YgZmlsdGVycykge1xyXG4gICAgICAgICAgICBwYXJhbXMgPSB7XHJcbiAgICAgICAgICAgICAgICAuLi5wYXJhbXMsXHJcbiAgICAgICAgICAgICAgICAuLi5maWx0ZXIudG9IdHRwUGFyYW1zKCksXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gcGFyYW1zO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,5 @@
1
+ export * from './classes';
2
+ export * from './interfaces';
3
+ export * from './types';
4
+ export * from './esolve-filter-factory';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lc29sdmUtY29ubmVjdC9zcmMvbGliL3NoYXJlZC9maWx0ZXJzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsU0FBUyxDQUFDO0FBQ3hCLGNBQWMseUJBQXlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NsYXNzZXMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2ludGVyZmFjZXMnO1xyXG5leHBvcnQgKiBmcm9tICcuL3R5cGVzJztcclxuZXhwb3J0ICogZnJvbSAnLi9lc29sdmUtZmlsdGVyLWZhY3RvcnknO1xyXG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWZpbHRlci1kZWZpbml0aW9ucy5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lc29sdmUtY29ubmVjdC9zcmMvbGliL3NoYXJlZC9maWx0ZXJzL2ludGVyZmFjZXMvZXNvbHZlLWZpbHRlci1kZWZpbml0aW9ucy5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgRXNvbHZlRmlsdGVyRGVmaW5pdGlvbnMge1xyXG4gICAgW3g6IHN0cmluZ106IHN0cmluZyB8IG51bWJlciB8IChzdHJpbmcgfCBudW1iZXIpW10gfCB7XHJcbiAgICAgICAgbWluOiBudW1iZXI7XHJcbiAgICAgICAgbWF4OiBudW1iZXI7XHJcbiAgICB9O1xyXG59XHJcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWZpbHRlci1yZWNvcmQuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZXNvbHZlLWNvbm5lY3Qvc3JjL2xpYi9zaGFyZWQvZmlsdGVycy9pbnRlcmZhY2VzL2Vzb2x2ZS1maWx0ZXItcmVjb3JkLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXNvbHZlRmlsdGVyVHlwZSB9IGZyb20gJy4uL3R5cGVzJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRXNvbHZlRmlsdGVyUmVjb3JkIHtcclxuICAgIGZpZWxkOiBzdHJpbmc7XHJcbiAgICB0eXBlOiBFc29sdmVGaWx0ZXJUeXBlO1xyXG59XHJcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWZpbHRlci5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lc29sdmUtY29ubmVjdC9zcmMvbGliL3NoYXJlZC9maWx0ZXJzL2ludGVyZmFjZXMvZXNvbHZlLWZpbHRlci5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEVzb2x2ZUZpbHRlclR5cGUgfSBmcm9tICcuLi90eXBlcyc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEVzb2x2ZUZpbHRlciB7XHJcbiAgICBmaWVsZDogc3RyaW5nO1xyXG4gICAgcmVhZG9ubHkgdHlwZTogRXNvbHZlRmlsdGVyVHlwZTtcclxuXHJcbiAgICB0b0h0dHBQYXJhbXMoKTogeyBbeDogc3RyaW5nXTogc3RyaW5nIHwgbnVtYmVyIHwgKHN0cmluZyB8IG51bWJlcilbXTsgfTtcclxuICAgIHRvSHR0cFBhcmFtcyhodHRwX3BhcmFtczogSHR0cFBhcmFtcyk6IEh0dHBQYXJhbXM7XHJcbn1cclxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXJhbmdlLWZpbHRlci1yZWNvcmQuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZXNvbHZlLWNvbm5lY3Qvc3JjL2xpYi9zaGFyZWQvZmlsdGVycy9pbnRlcmZhY2VzL2Vzb2x2ZS1yYW5nZS1maWx0ZXItcmVjb3JkLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXNvbHZlUmFuZ2VGaWx0ZXJUeXBlIH0gZnJvbSAnLi4vdHlwZXMnO1xyXG5cclxuaW1wb3J0IHsgRXNvbHZlRmlsdGVyUmVjb3JkIH0gZnJvbSAnLi9lc29sdmUtZmlsdGVyLXJlY29yZC5pbnRlcmZhY2UnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBFc29sdmVSYW5nZUZpbHRlclJlY29yZCBleHRlbmRzIEVzb2x2ZUZpbHRlclJlY29yZCB7XHJcbiAgICB0eXBlOiBFc29sdmVSYW5nZUZpbHRlclR5cGU7XHJcbiAgICBtaW46IG51bWJlcjtcclxuICAgIG1heDogbnVtYmVyO1xyXG59XHJcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXNlbGVjdC1maWx0ZXItcmVjb3JkLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvc2hhcmVkL2ZpbHRlcnMvaW50ZXJmYWNlcy9lc29sdmUtc2VsZWN0LWZpbHRlci1yZWNvcmQuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFc29sdmVTZWxlY3RGaWx0ZXJUeXBlIH0gZnJvbSAnLi4vdHlwZXMnO1xyXG5cclxuaW1wb3J0IHsgRXNvbHZlRmlsdGVyUmVjb3JkIH0gZnJvbSAnLi9lc29sdmUtZmlsdGVyLXJlY29yZC5pbnRlcmZhY2UnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBFc29sdmVTZWxlY3RGaWx0ZXJSZWNvcmQgZXh0ZW5kcyBFc29sdmVGaWx0ZXJSZWNvcmQge1xyXG4gICAgdHlwZTogRXNvbHZlU2VsZWN0RmlsdGVyVHlwZTtcclxuICAgIHZhbHVlczogc3RyaW5nW107XHJcbn1cclxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXNlbGVjdC1maWx0ZXIuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZXNvbHZlLWNvbm5lY3Qvc3JjL2xpYi9zaGFyZWQvZmlsdGVycy9pbnRlcmZhY2VzL2Vzb2x2ZS1zZWxlY3QtZmlsdGVyLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXNvbHZlRmlsdGVyIH0gZnJvbSAnLi9lc29sdmUtZmlsdGVyLmludGVyZmFjZSc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEVzb2x2ZVNlbGVjdEZpbHRlciBleHRlbmRzIEVzb2x2ZUZpbHRlciB7XHJcbiAgICBvcHRpb25zOiAoc3RyaW5nIHwgbnVtYmVyKVtdO1xyXG59XHJcbiJdfQ==
@@ -0,0 +1,8 @@
1
+ // Interfaces
2
+ export * from './esolve-filter-definitions.interface';
3
+ export * from './esolve-filter-record.interface';
4
+ export * from './esolve-filter.interface';
5
+ export * from './esolve-range-filter-record.interface';
6
+ export * from './esolve-select-filter-record.interface';
7
+ export * from './esolve-select-filter.interface';
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lc29sdmUtY29ubmVjdC9zcmMvbGliL3NoYXJlZC9maWx0ZXJzL2ludGVyZmFjZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsYUFBYTtBQUNiLGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLGtDQUFrQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gSW50ZXJmYWNlc1xyXG5leHBvcnQgKiBmcm9tICcuL2Vzb2x2ZS1maWx0ZXItZGVmaW5pdGlvbnMuaW50ZXJmYWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9lc29sdmUtZmlsdGVyLXJlY29yZC5pbnRlcmZhY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2Vzb2x2ZS1maWx0ZXIuaW50ZXJmYWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9lc29sdmUtcmFuZ2UtZmlsdGVyLXJlY29yZC5pbnRlcmZhY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2Vzb2x2ZS1zZWxlY3QtZmlsdGVyLXJlY29yZC5pbnRlcmZhY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2Vzb2x2ZS1zZWxlY3QtZmlsdGVyLmludGVyZmFjZSc7XHJcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWZpbHRlci1saXN0LnR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lc29sdmUtY29ubmVjdC9zcmMvbGliL3NoYXJlZC9maWx0ZXJzL3R5cGVzL2Vzb2x2ZS1maWx0ZXItbGlzdC50eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFc29sdmVNdWx0aXBsZVNlbGVjdEZpbHRlciwgRXNvbHZlUmFuZ2VGaWx0ZXIsIEVzb2x2ZVNpbmdsZVNlbGVjdEZpbHRlciB9IGZyb20gJy4uL2NsYXNzZXMnO1xyXG5cclxuZXhwb3J0IHR5cGUgRXNvbHZlRmlsdGVyTGlzdCA9IChcclxuICAgIEVzb2x2ZVJhbmdlRmlsdGVyIHxcclxuICAgIEVzb2x2ZU11bHRpcGxlU2VsZWN0RmlsdGVyIHxcclxuICAgIEVzb2x2ZVNpbmdsZVNlbGVjdEZpbHRlclxyXG4pW107XHJcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWZpbHRlci1yZWNvcmQtbGlzdC50eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZXNvbHZlLWNvbm5lY3Qvc3JjL2xpYi9zaGFyZWQvZmlsdGVycy90eXBlcy9lc29sdmUtZmlsdGVyLXJlY29yZC1saXN0LnR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVzb2x2ZVJhbmdlRmlsdGVyUmVjb3JkLCBFc29sdmVTZWxlY3RGaWx0ZXJSZWNvcmQgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcclxuXHJcbmV4cG9ydCB0eXBlIEVzb2x2ZUZpbHRlclJlY29yZExpc3QgPSAoRXNvbHZlUmFuZ2VGaWx0ZXJSZWNvcmQgfCBFc29sdmVTZWxlY3RGaWx0ZXJSZWNvcmQpW107XHJcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWZpbHRlci10eXBlLnR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lc29sdmUtY29ubmVjdC9zcmMvbGliL3NoYXJlZC9maWx0ZXJzL3R5cGVzL2Vzb2x2ZS1maWx0ZXItdHlwZS50eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFc29sdmVTZWxlY3RGaWx0ZXJUeXBlIH0gZnJvbSAnLi9lc29sdmUtc2VsZWN0LWZpbHRlci10eXBlLnR5cGUnO1xyXG5pbXBvcnQgeyBFc29sdmVSYW5nZUZpbHRlclR5cGUgfSBmcm9tICcuL2Vzb2x2ZS1yYW5nZS1maWx0ZXItdHlwZS50eXBlJztcclxuXHJcbmV4cG9ydCB0eXBlIEVzb2x2ZUZpbHRlclR5cGUgPSBFc29sdmVTZWxlY3RGaWx0ZXJUeXBlIHwgRXNvbHZlUmFuZ2VGaWx0ZXJUeXBlO1xyXG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXJhbmdlLWZpbHRlci10eXBlLnR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lc29sdmUtY29ubmVjdC9zcmMvbGliL3NoYXJlZC9maWx0ZXJzL3R5cGVzL2Vzb2x2ZS1yYW5nZS1maWx0ZXItdHlwZS50eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBFc29sdmVSYW5nZUZpbHRlclR5cGUgPSAncmFuZ2UnO1xyXG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXNlbGVjdC1maWx0ZXItdHlwZS50eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZXNvbHZlLWNvbm5lY3Qvc3JjL2xpYi9zaGFyZWQvZmlsdGVycy90eXBlcy9lc29sdmUtc2VsZWN0LWZpbHRlci10eXBlLnR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIEVzb2x2ZVNlbGVjdEZpbHRlclR5cGUgPSAnc2luZ2xlJyB8ICdtdWx0aXBsZSc7XHJcbiJdfQ==
@@ -0,0 +1,7 @@
1
+ // Types
2
+ export * from './esolve-filter-list.type';
3
+ export * from './esolve-filter-record-list.type';
4
+ export * from './esolve-filter-type.type';
5
+ export * from './esolve-range-filter-type.type';
6
+ export * from './esolve-select-filter-type.type';
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lc29sdmUtY29ubmVjdC9zcmMvbGliL3NoYXJlZC9maWx0ZXJzL3R5cGVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFFBQVE7QUFDUixjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsa0NBQWtDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUeXBlc1xyXG5leHBvcnQgKiBmcm9tICcuL2Vzb2x2ZS1maWx0ZXItbGlzdC50eXBlJztcclxuZXhwb3J0ICogZnJvbSAnLi9lc29sdmUtZmlsdGVyLXJlY29yZC1saXN0LnR5cGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2Vzb2x2ZS1maWx0ZXItdHlwZS50eXBlJztcclxuZXhwb3J0ICogZnJvbSAnLi9lc29sdmUtcmFuZ2UtZmlsdGVyLXR5cGUudHlwZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZXNvbHZlLXNlbGVjdC1maWx0ZXItdHlwZS50eXBlJztcclxuIl19
@@ -3,6 +3,7 @@ import { HttpParams } from '@angular/common/http';
3
3
  import { map } from 'rxjs/operators';
4
4
  import { ESOLVE_CONNECT_CONFIG } from '../esolve-connect-config.constant';
5
5
  import { EsolveList } from '../shared/esolve-list.model';
6
+ import { EsolveFilterFactory, EsolveMultipleSelectFilter, EsolveRangeFilter, EsolveSingleSelectFilter } from '../shared/filters';
6
7
  import { EsolveStockItem, EsolveStockItemList, EsolveMediaStockItem, EsolveRecipeStockItem, EsolveLinkedStockItem, EsolveStockImageCollection, } from './classes';
7
8
  import * as i0 from "@angular/core";
8
9
  import * as i1 from "@angular/common/http";
@@ -97,15 +98,18 @@ export class EsolveStockService {
97
98
  if (options.specials_id) {
98
99
  params = params.set('specials_id', options.specials_id);
99
100
  }
100
- if (options.tag_id_list) {
101
- if (options.tag_id_list.length > 0) {
102
- params = params.set('tag_id', options.tag_id_list.join(','));
103
- }
101
+ if (options.tag_id_list && options.tag_id_list.length > 0) {
102
+ params = params.set('tag_id', options.tag_id_list.join(','));
103
+ }
104
+ if (options.topic_id_list && options.topic_id_list.length > 0) {
105
+ params = params.set('topic_id', options.topic_id_list.join(','));
104
106
  }
105
- if (options.topic_id_list) {
106
- if (options.topic_id_list.length > 0) {
107
- params = params.set('topic_id', options.topic_id_list.join(','));
107
+ if (options.filters) {
108
+ let filters = options.filters;
109
+ if (!Array.isArray(filters)) {
110
+ filters = EsolveFilterFactory.covertFromObj(filters);
108
111
  }
112
+ params = EsolveFilterFactory.convertToHttpParams(filters, params);
109
113
  }
110
114
  return this.getStockRecords(params).pipe(map(response => {
111
115
  if ((response.records === undefined) ||
@@ -227,6 +231,41 @@ export class EsolveStockService {
227
231
  return collection;
228
232
  }));
229
233
  }
234
+ getStockFilters(options) {
235
+ let params = new HttpParams({
236
+ fromObject: {
237
+ category_id: options.category_id ?? '',
238
+ subcategory_id: options.subcategory_id ?? 0,
239
+ ranges_id: options.ranges_id ?? 0,
240
+ manufacturers_id: options.manufacturers_id ?? 0,
241
+ fields: options.fields.join(','),
242
+ },
243
+ });
244
+ return this.http
245
+ .get(`${this.config.api_url}/get-item-filters.php`, { params })
246
+ .pipe(map((response) => {
247
+ if (response.records === undefined) {
248
+ throw response;
249
+ }
250
+ const filters = [];
251
+ for (const record of response.records) {
252
+ let filter = null;
253
+ if (record.type === 'range') {
254
+ filter = new EsolveRangeFilter(record.field, +record.min, +record.max);
255
+ }
256
+ else if (record.type === 'single') {
257
+ filter = new EsolveSingleSelectFilter(record.field, record.values);
258
+ }
259
+ else if (record.type === 'multiple') {
260
+ filter = new EsolveMultipleSelectFilter(record.field, record.values);
261
+ }
262
+ if (filter) {
263
+ filters.push(filter);
264
+ }
265
+ }
266
+ return filters;
267
+ }));
268
+ }
230
269
  /**
231
270
  * Processes the eSolve stock item record and converts it to an object.
232
271
  *
@@ -296,4 +335,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
296
335
  type: Inject,
297
336
  args: [ESOLVE_CONNECT_CONFIG]
298
337
  }] }, { type: i1.HttpClient }]; } });
299
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXN0b2NrLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lc29sdmUtY29ubmVjdC9zcmMvbGliL3N0b2NrL2Vzb2x2ZS1zdG9jay5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBYyxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUc5RCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHckMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFMUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBZXpELE9BQU8sRUFDSCxlQUFlLEVBQ2YsbUJBQW1CLEVBQ25CLG9CQUFvQixFQUNwQixxQkFBcUIsRUFDckIscUJBQXFCLEVBQ3JCLDBCQUEwQixHQUM3QixNQUFNLFdBQVcsQ0FBQzs7O0FBS25CLE1BQU0sT0FBTyxrQkFBa0I7SUFDM0IsWUFDMkMsTUFBMkIsRUFDMUQsSUFBZ0I7UUFEZSxXQUFNLEdBQU4sTUFBTSxDQUFxQjtRQUMxRCxTQUFJLEdBQUosSUFBSSxDQUFZO0lBQ3hCLENBQUM7SUFFTDs7OztPQUlHO0lBQ0ksWUFBWSxDQUFDLElBQVk7UUFDNUIsTUFBTSxNQUFNLEdBQUcsSUFBSSxVQUFVLENBQUM7WUFDMUIsVUFBVSxFQUFFO2dCQUNSLElBQUk7YUFDUDtTQUNKLENBQUMsQ0FBQztRQUVILE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQ3BDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUNYLElBQ0ksQ0FBQyxRQUFRLENBQUMsT0FBTyxLQUFLLFNBQVMsQ0FBQztnQkFDaEMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsRUFDaEM7Z0JBQ0UsTUFBTSxRQUFRLENBQUM7YUFDbEI7WUFFRCxNQUFNLFdBQVcsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRXhDLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzlDLENBQUMsQ0FBQyxDQUNMLENBQUM7SUFDTixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLG1CQUFtQixDQUFDLFFBQWdCO1FBQ3ZDLE1BQU0sTUFBTSxHQUFHLElBQUksVUFBVSxDQUFDO1lBQzFCLFVBQVUsRUFBRTtnQkFDUixRQUFRO2FBQ1g7U0FDSixDQUFDLENBQUM7UUFFSCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUNwQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDWCxJQUNJLENBQUMsUUFBUSxDQUFDLE9BQU8sS0FBSyxTQUFTLENBQUM7Z0JBQ2hDLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDLEVBQ2hDO2dCQUNFLE1BQU0sUUFBUSxDQUFDO2FBQ2xCO1lBRUQsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUV4QyxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUM5QyxDQUFDLENBQUMsQ0FDTCxDQUFDO0lBQ04sQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxhQUFhLENBQ2hCLE9BQStCO1FBRS9CLElBQUksTUFBTSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUM7UUFFOUIsSUFBSSxPQUFPLENBQUMsSUFBSSxFQUFFO1lBQ2QsTUFBTSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUM3QztRQUVELElBQUksT0FBTyxDQUFDLElBQUksRUFBRTtZQUNkLE1BQU0sR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDN0M7UUFFRCxJQUFJLE9BQU8sQ0FBQyxJQUFJLEVBQUU7WUFDZCxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDO1lBRTFCLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtnQkFDWixNQUFNLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQzNDO1lBRUQsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO2dCQUNaLE1BQU0sR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDNUM7U0FDSjtRQUVELElBQUksT0FBTyxDQUFDLGFBQWEsRUFBRTtZQUN2QixNQUFNLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxlQUFlLEVBQUUsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1NBQy9EO1FBRUQsSUFBSSxPQUFPLENBQUMsWUFBWSxFQUFFO1lBQ3RCLE1BQU0sR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLGNBQWMsRUFBRSxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDN0Q7UUFFRCxJQUFJLE9BQU8sQ0FBQyxTQUFTLEVBQUU7WUFDbkIsTUFBTSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUN2RDtRQUVELElBQUksT0FBTyxDQUFDLFdBQVcsRUFBRTtZQUNyQixNQUFNLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1NBQzNEO1FBRUQsSUFBSSxPQUFPLENBQUMsY0FBYyxFQUFFO1lBQ3hCLE1BQU0sR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLGdCQUFnQixFQUFFLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQztTQUNqRTtRQUVELElBQUksT0FBTyxDQUFDLGdCQUFnQixFQUFFO1lBQzFCLE1BQU0sR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLGtCQUFrQixFQUFFLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1NBQ3JFO1FBRUQsSUFBSSxPQUFPLENBQUMsU0FBUyxFQUFFO1lBQ25CLE1BQU0sR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDdkQ7UUFFRCxJQUFJLE9BQU8sQ0FBQyxXQUFXLEVBQUU7WUFDckIsTUFBTSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztTQUMzRDtRQUVELElBQUksT0FBTyxDQUFDLFdBQVcsRUFBRTtZQUNyQixJQUFJLE9BQU8sQ0FBQyxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDaEMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7YUFDaEU7U0FDSjtRQUVELElBQUksT0FBTyxDQUFDLGFBQWEsRUFBRTtZQUN2QixJQUFJLE9BQU8sQ0FBQyxhQUFhLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDbEMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7YUFDcEU7U0FDSjtRQUVELE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQ3BDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUNYLElBQ0ksQ0FBQyxRQUFRLENBQUMsT0FBTyxLQUFLLFNBQVMsQ0FBQztnQkFDaEMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsRUFDaEM7Z0JBQ0UsTUFBTSxRQUFRLENBQUM7YUFDbEI7WUFFRCxNQUFNLFVBQVUsR0FBeUIsRUFBRSxDQUFDO1lBRTVDLFFBQVEsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxFQUFFO2dCQUNuQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1lBQ3hELENBQUMsQ0FBQyxDQUFDO1lBRUgsT0FBTyxJQUFJLG1CQUFtQixDQUMxQixVQUFVLEVBQ1YsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLGFBQWEsRUFDdkMsT0FBTyxDQUFDLElBQUksSUFBSSxDQUFDLENBQ3BCLENBQUM7UUFDTixDQUFDLENBQUMsQ0FDTCxDQUFDO0lBQ04sQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxjQUFjLENBQ2pCLElBQVk7UUFFWixPQUFPLElBQUksQ0FBQyxJQUFJO2FBQ1gsR0FBRyxDQUNBLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLHVCQUF1QixFQUM3QyxFQUFFLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLENBQ3ZCO2FBQ0EsSUFBSSxDQUNELEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQ2IsSUFDSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEtBQUssU0FBUyxDQUFDO2dCQUNoQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxFQUNoQztnQkFDRSxNQUFNLFFBQVEsQ0FBQzthQUNsQjtZQUVELE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNyRCxDQUFDLENBQUMsQ0FDTCxDQUFDO0lBQ1YsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxjQUFjLENBQ2pCLElBQVksRUFDWixPQUFrQztRQUVsQyxJQUFJLE1BQU0sR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFFaEQsSUFBSSxPQUFPLEVBQUU7WUFDVCxJQUFJLE9BQU8sQ0FBQyxJQUFJLEVBQUU7Z0JBQ2QsTUFBTSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUM3QztZQUVELElBQUksT0FBTyxDQUFDLElBQUksRUFBRTtnQkFDZCxNQUFNLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQzdDO1lBRUQsSUFBSSxPQUFPLENBQUMsSUFBSSxFQUFFO2dCQUNkLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUM7Z0JBRTFCLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtvQkFDWixNQUFNLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2lCQUMzQztnQkFFRCxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7b0JBQ1osTUFBTSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztpQkFDNUM7YUFDSjtTQUNKO1FBRUQsT0FBTyxJQUFJLENBQUMsSUFBSTthQUNYLEdBQUcsQ0FDQSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyx1QkFBdUIsRUFDN0MsRUFBRSxNQUFNLEVBQUUsQ0FDYjthQUNBLElBQUksQ0FDRCxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUNiLElBQ0ksQ0FBQyxRQUFRLENBQUMsT0FBTyxLQUFLLFNBQVMsQ0FBQztnQkFDaEMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsRUFDaEM7Z0JBQ0UsTUFBTSxRQUFRLENBQUM7YUFDbEI7WUFFRCxPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDckQsQ0FBQyxDQUFDLENBQ0wsQ0FBQztJQUNWLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksbUJBQW1CLENBQ3RCLE9BQW9DO1FBRXBDLElBQUksTUFBTSxHQUFHLElBQUksVUFBVSxDQUFDO1lBQ3hCLFVBQVUsRUFBRTtnQkFDUixJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUksSUFBSSxDQUFDO2dCQUN2QixJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUksSUFBSSxDQUFDO2dCQUN2QixTQUFTLEVBQUUsT0FBTyxDQUFDLFNBQVMsSUFBSSxDQUFDO2dCQUNqQyxnQkFBZ0IsRUFBRSxPQUFPLENBQUMsZ0JBQWdCLElBQUksQ0FBQztnQkFDL0MsWUFBWSxFQUFFLE9BQU8sQ0FBQyxZQUFZLElBQUksS0FBSztnQkFDM0MsU0FBUyxFQUFFLE9BQU8sQ0FBQyxTQUFTLElBQUksSUFBSTthQUN2QztTQUNKLENBQUMsQ0FBQztRQUVILElBQUksT0FBTyxDQUFDLElBQUksRUFBRTtZQUNkLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUM7WUFFMUIsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO2dCQUNaLE1BQU0sR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDM0M7WUFFRCxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7Z0JBQ1osTUFBTSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUM1QztTQUNKO1FBRUQsSUFBSSxPQUFPLENBQUMsZ0JBQWdCLEVBQUU7WUFDMUIsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsa0JBQWtCLEVBQUUsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBQUM7U0FDeEU7UUFFRCxJQUFJLE9BQU8sQ0FBQyxRQUFRLEVBQUU7WUFDbEIsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUN4RDtRQUVELE9BQU8sSUFBSSxDQUFDLElBQUk7YUFDWCxHQUFHLENBQ0EsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sNkJBQTZCLEVBQ25ELEVBQUUsTUFBTSxFQUFFLENBQ2I7YUFDQSxJQUFJLENBQ0QsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDYixJQUNJLENBQUMsUUFBUSxDQUFDLE9BQU8sS0FBSyxTQUFTLENBQUM7Z0JBQ2hDLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDLEVBQ2hDO2dCQUNFLE1BQU0sUUFBUSxDQUFDO2FBQ2xCO1lBRUQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUU1RCxPQUFPLElBQUksVUFBVSxDQUNqQixLQUFLLEVBQ0wsT0FBTyxDQUFDLElBQUksRUFDWixPQUFPLENBQUMsSUFBSSxFQUNaLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQzFDLENBQUM7UUFDTixDQUFDLENBQUMsQ0FDTCxDQUFDO0lBQ1YsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSx1QkFBdUIsQ0FBQyxJQUFZO1FBQ3ZDLE9BQU8sSUFBSSxDQUFDLElBQUk7YUFDWCxHQUFHLENBQ0EsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sZ0NBQWdDLEVBQ3RELEVBQUUsTUFBTSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FDdkI7YUFDQSxJQUFJLENBQ0QsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDYixJQUFJLFFBQVEsQ0FBQyxPQUFPLEtBQUssU0FBUyxFQUFFO2dCQUNoQyxNQUFNLFFBQVEsQ0FBQzthQUNsQjtZQUVELE1BQU0sVUFBVSxHQUFHLElBQUksMEJBQTBCLENBQzdDLFFBQVEsQ0FBQyxPQUFPLENBQ25CLENBQUM7WUFFRixPQUFPLFVBQVUsQ0FBQztRQUN0QixDQUFDLENBQUMsQ0FDTCxDQUFDO0lBQ1YsQ0FBQztJQUVEOzs7O09BSUc7SUFDSyxnQkFBZ0IsQ0FBQyxNQUE0QjtRQUNqRCxPQUFPLElBQUksZUFBZSxDQUFJLE1BQU0sQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ssa0JBQWtCLENBQ3RCLE9BQXFDO1FBRXJDLE1BQU0sS0FBSyxHQUErQixFQUFFLENBQUM7UUFFN0MsSUFBSSxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNwQixLQUFLLE1BQU0sTUFBTSxJQUFJLE9BQU8sRUFBRTtnQkFDMUIsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLHFCQUFxQixDQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUM7YUFDcEQ7U0FDSjtRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ssa0JBQWtCLENBQ3RCLE9BQW9DO1FBRXBDLE1BQU0sS0FBSyxHQUErQixFQUFFLENBQUM7UUFFN0MsSUFBSSxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNwQixLQUFLLE1BQU0sTUFBTSxJQUFJLE9BQU8sRUFBRTtnQkFDMUIsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLHFCQUFxQixDQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUM7YUFDcEQ7U0FDSjtRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ssc0JBQXNCLENBQzFCLE9BQXdDO1FBRXhDLE1BQU0sS0FBSyxHQUE4QixFQUFFLENBQUM7UUFFNUMsSUFBSSxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNwQixLQUFLLE1BQU0sTUFBTSxJQUFJLE9BQU8sRUFBRTtnQkFDMUIsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLG9CQUFvQixDQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUM7YUFDbkQ7U0FDSjtRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7SUFFRDs7O09BR0c7SUFDSyxlQUFlLENBQ25CLE1BQWtCO1FBRWxCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQ2hCLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLGdCQUFnQixFQUN0QyxFQUFFLE1BQU0sRUFBRSxDQUNiLENBQUM7SUFDTixDQUFDOztnSEF2WlEsa0JBQWtCLGtCQUVmLHFCQUFxQjtvSEFGeEIsa0JBQWtCLGNBRmYsTUFBTTs0RkFFVCxrQkFBa0I7a0JBSDlCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCOzswQkFHUSxNQUFNOzJCQUFDLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwUGFyYW1zIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5cclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQgeyBFc29sdmVDb25uZWN0Q29uZmlnIH0gZnJvbSAnLi4vZXNvbHZlLWNvbm5lY3QuY29uZmlnJztcclxuaW1wb3J0IHsgRVNPTFZFX0NPTk5FQ1RfQ09ORklHIH0gZnJvbSAnLi4vZXNvbHZlLWNvbm5lY3QtY29uZmlnLmNvbnN0YW50JztcclxuXHJcbmltcG9ydCB7IEVzb2x2ZUxpc3QgfSBmcm9tICcuLi9zaGFyZWQvZXNvbHZlLWxpc3QubW9kZWwnO1xyXG5pbXBvcnQgeyBFc29sdmVHZXRSZXNwb25zZSB9IGZyb20gJy4uL3NoYXJlZC9yZXNwb25zZSc7XHJcbmltcG9ydCB7IEVzb2x2ZUN1c3RvbUZpZWxkcyB9IGZyb20gJy4uL3NoYXJlZC9jdXN0b20tZmllbGRzJztcclxuXHJcbmltcG9ydCB7IEVzb2x2ZU1lZGlhU3RvY2tJdGVtTGlzdCB9IGZyb20gJy4vdHlwZXMnO1xyXG5pbXBvcnQge1xyXG4gICAgRXNvbHZlU3RvY2tSZWNvcmQsXHJcbiAgICBFc29sdmVTdG9ja0l0ZW1PcHRpb25zLFxyXG4gICAgRXNvbHZlUmVjaXBlSXRlbVJlY29yZCxcclxuICAgIEVzb2x2ZUxpbmtlZFN0b2NrUmVjb3JkLFxyXG4gICAgRXNvbHZlUmVjaXBlU3RvY2tPcHRpb25zLFxyXG4gICAgRXNvbHZlTWVkaWFTdG9ja0l0ZW1SZWNvcmQsXHJcbiAgICBFc29sdmVNZWRpYVN0b2NrSXRlbU9wdGlvbnMsXHJcbiAgICBFc29sdmVTdG9ja0ltYWdlQ29sbGVjdGlvblJlY29yZCxcclxufSBmcm9tICcuL2ludGVyZmFjZXMnO1xyXG5pbXBvcnQge1xyXG4gICAgRXNvbHZlU3RvY2tJdGVtLFxyXG4gICAgRXNvbHZlU3RvY2tJdGVtTGlzdCxcclxuICAgIEVzb2x2ZU1lZGlhU3RvY2tJdGVtLFxyXG4gICAgRXNvbHZlUmVjaXBlU3RvY2tJdGVtLFxyXG4gICAgRXNvbHZlTGlua2VkU3RvY2tJdGVtLFxyXG4gICAgRXNvbHZlU3RvY2tJbWFnZUNvbGxlY3Rpb24sXHJcbn0gZnJvbSAnLi9jbGFzc2VzJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEVzb2x2ZVN0b2NrU2VydmljZTxUIGV4dGVuZHMgRXNvbHZlQ3VzdG9tRmllbGRzID0gRXNvbHZlQ3VzdG9tRmllbGRzPiB7XHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBASW5qZWN0KEVTT0xWRV9DT05ORUNUX0NPTkZJRykgcHJpdmF0ZSBjb25maWc6IEVzb2x2ZUNvbm5lY3RDb25maWcsXHJcbiAgICAgICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxyXG4gICAgKSB7IH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldHJpZXZlcyB0aGUgc3RvY2sgcmVjb3JkIGZyb20gdGhlIGVTb2x2ZSBpbnN0YW5jZSB1c2luZyB0aGUgY29kZS5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gY29kZSBlU29sdmUgc3RvY2sgY29kZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0U3RvY2tJdGVtKGNvZGU6IHN0cmluZyk6IE9ic2VydmFibGU8RXNvbHZlU3RvY2tJdGVtPFQ+PiB7XHJcbiAgICAgICAgY29uc3QgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoe1xyXG4gICAgICAgICAgICBmcm9tT2JqZWN0OiB7XHJcbiAgICAgICAgICAgICAgICBjb2RlLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5nZXRTdG9ja1JlY29yZHMocGFyYW1zKS5waXBlKFxyXG4gICAgICAgICAgICBtYXAocmVzcG9uc2UgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgICAgICAgIChyZXNwb25zZS5yZWNvcmRzID09PSB1bmRlZmluZWQpIHx8XHJcbiAgICAgICAgICAgICAgICAgICAgKHJlc3BvbnNlLnJlY29yZHMubGVuZ3RoIDw9IDApXHJcbiAgICAgICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgICAgICB0aHJvdyByZXNwb25zZTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBjb25zdCBzdG9ja1JlY29yZCA9IHJlc3BvbnNlLnJlY29yZHNbMF07XHJcblxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucHJvY2Vzc1N0b2NrSXRlbShzdG9ja1JlY29yZCk7XHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXRyaWV2ZXMgdGhlIHN0b2NrIHJlY29yZCBmcm9tIHRoZSBlU29sdmUgaW5zdGFuY2UgdXNpbmcgdGhlIFNFRiBuYW1lLlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBzZWZfbmFtZSBTRUYgbmFtZSBvZiB0aGUgc3RvY2sgaXRlbVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0U3RvY2tJdGVtRnJvbVNFRihzZWZfbmFtZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxFc29sdmVTdG9ja0l0ZW08VD4+IHtcclxuICAgICAgICBjb25zdCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcyh7XHJcbiAgICAgICAgICAgIGZyb21PYmplY3Q6IHtcclxuICAgICAgICAgICAgICAgIHNlZl9uYW1lLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5nZXRTdG9ja1JlY29yZHMocGFyYW1zKS5waXBlKFxyXG4gICAgICAgICAgICBtYXAocmVzcG9uc2UgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgICAgICAgIChyZXNwb25zZS5yZWNvcmRzID09PSB1bmRlZmluZWQpIHx8XHJcbiAgICAgICAgICAgICAgICAgICAgKHJlc3BvbnNlLnJlY29yZHMubGVuZ3RoIDw9IDApXHJcbiAgICAgICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgICAgICB0aHJvdyByZXNwb25zZTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBjb25zdCBzdG9ja1JlY29yZCA9IHJlc3BvbnNlLnJlY29yZHNbMF07XHJcblxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucHJvY2Vzc1N0b2NrSXRlbShzdG9ja1JlY29yZCk7XHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXRyaWV2ZXMgbGlzdCBvZiBzdG9jayBmcm9tIHRoZSBlU29sdmUgaW5zdGFuY2UgdXNpbmcgaW5mbyBwcm92aWRlZFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBvcHRpb25zIFN0b2NrIGZpbHRlciBvcHRpb25zXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXRTdG9ja0l0ZW1zKFxyXG4gICAgICAgIG9wdGlvbnM6IEVzb2x2ZVN0b2NrSXRlbU9wdGlvbnMsXHJcbiAgICApOiBPYnNlcnZhYmxlPEVzb2x2ZVN0b2NrSXRlbUxpc3Q8VD4+IHtcclxuICAgICAgICBsZXQgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKTtcclxuXHJcbiAgICAgICAgaWYgKG9wdGlvbnMucGFnZSkge1xyXG4gICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdwYWdlJywgb3B0aW9ucy5wYWdlKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChvcHRpb25zLnJvd3MpIHtcclxuICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgncm93cycsIG9wdGlvbnMucm93cyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAob3B0aW9ucy5zb3J0KSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHNvcnQgPSBvcHRpb25zLnNvcnQ7XHJcblxyXG4gICAgICAgICAgICBpZiAoc29ydC5maWVsZCkge1xyXG4gICAgICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgnc29ydCcsIHNvcnQuZmllbGQpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAoc29ydC5vcmRlcikge1xyXG4gICAgICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgnb3JkZXInLCBzb3J0Lm9yZGVyKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKG9wdGlvbnMuc2VhcmNoX3BocmFzZSkge1xyXG4gICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdzZWFyY2hfcGhyYXNlJywgb3B0aW9ucy5zZWFyY2hfcGhyYXNlKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChvcHRpb25zLmRpc3BsYXlfb25seSkge1xyXG4gICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdkaXNwbGF5X29ubHknLCBvcHRpb25zLmRpc3BsYXlfb25seSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAob3B0aW9ucy5pc19hY3RpdmUpIHtcclxuICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgnaXNfYWN0aXZlJywgb3B0aW9ucy5pc19hY3RpdmUpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKG9wdGlvbnMuY2F0ZWdvcnlfaWQpIHtcclxuICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgnY2F0ZWdvcnlfaWQnLCBvcHRpb25zLmNhdGVnb3J5X2lkKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChvcHRpb25zLnN1YmNhdGVnb3J5X2lkKSB7XHJcbiAgICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ3N1YmNhdGVnb3J5X2lkJywgb3B0aW9ucy5zdWJjYXRlZ29yeV9pZCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAob3B0aW9ucy5tYW51ZmFjdHVyZXJzX2lkKSB7XHJcbiAgICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ21hbnVmYWN0dXJlcnNfaWQnLCBvcHRpb25zLm1hbnVmYWN0dXJlcnNfaWQpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKG9wdGlvbnMucmFuZ2VzX2lkKSB7XHJcbiAgICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ3Jhbmdlc19pZCcsIG9wdGlvbnMucmFuZ2VzX2lkKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChvcHRpb25zLnNwZWNpYWxzX2lkKSB7XHJcbiAgICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ3NwZWNpYWxzX2lkJywgb3B0aW9ucy5zcGVjaWFsc19pZCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAob3B0aW9ucy50YWdfaWRfbGlzdCkge1xyXG4gICAgICAgICAgICBpZiAob3B0aW9ucy50YWdfaWRfbGlzdC5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCd0YWdfaWQnLCBvcHRpb25zLnRhZ19pZF9saXN0LmpvaW4oJywnKSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChvcHRpb25zLnRvcGljX2lkX2xpc3QpIHtcclxuICAgICAgICAgICAgaWYgKG9wdGlvbnMudG9waWNfaWRfbGlzdC5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCd0b3BpY19pZCcsIG9wdGlvbnMudG9waWNfaWRfbGlzdC5qb2luKCcsJykpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5nZXRTdG9ja1JlY29yZHMocGFyYW1zKS5waXBlKFxyXG4gICAgICAgICAgICBtYXAocmVzcG9uc2UgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgICAgICAgIChyZXNwb25zZS5yZWNvcmRzID09PSB1bmRlZmluZWQpIHx8XHJcbiAgICAgICAgICAgICAgICAgICAgKHJlc3BvbnNlLnJlY29yZHMubGVuZ3RoIDw9IDApXHJcbiAgICAgICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgICAgICB0aHJvdyByZXNwb25zZTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBjb25zdCBzdG9ja0l0ZW1zOiBFc29sdmVTdG9ja0l0ZW08VD5bXSA9IFtdO1xyXG5cclxuICAgICAgICAgICAgICAgIHJlc3BvbnNlLnJlY29yZHMuZm9yRWFjaChzdG9ja1JlY29yZCA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgc3RvY2tJdGVtcy5wdXNoKHRoaXMucHJvY2Vzc1N0b2NrSXRlbShzdG9ja1JlY29yZCkpO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBFc29sdmVTdG9ja0l0ZW1MaXN0KFxyXG4gICAgICAgICAgICAgICAgICAgIHN0b2NrSXRlbXMsXHJcbiAgICAgICAgICAgICAgICAgICAgK3Jlc3BvbnNlLmFkZGl0aW9uYWxfZGF0YS50b3RhbF9yZWNvcmRzLFxyXG4gICAgICAgICAgICAgICAgICAgIG9wdGlvbnMucGFnZSA/PyAwLFxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldHJpZXZlIGxpc3Qgb2Ygc3RvY2sgaXRlbXMgbGlua2VkIHRvIGEgc3RvY2sgaXRlbSBmcm9tIHRoZSBlU29sdmUgQVBJXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIGNvZGUgU3RvY2sgaXRlbSBjb2RlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXRMaW5rZWRJdGVtcyhcclxuICAgICAgICBjb2RlOiBzdHJpbmcsXHJcbiAgICApOiBPYnNlcnZhYmxlPEVzb2x2ZUxpbmtlZFN0b2NrSXRlbTxUPltdPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAgICAgICAuZ2V0PEVzb2x2ZUdldFJlc3BvbnNlPEVzb2x2ZUxpbmtlZFN0b2NrUmVjb3JkPFQ+W10+PihcclxuICAgICAgICAgICAgICAgIGAke3RoaXMuY29uZmlnLmFwaV91cmx9L2dldC1saW5rZWQtaXRlbXMucGhwYCxcclxuICAgICAgICAgICAgICAgIHsgcGFyYW1zOiB7IGNvZGUgfSB9LFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgbWFwKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAgICAgICAgICAgKHJlc3BvbnNlLnJlY29yZHMgPT09IHVuZGVmaW5lZCkgfHxcclxuICAgICAgICAgICAgICAgICAgICAgICAgKHJlc3BvbnNlLnJlY29yZHMubGVuZ3RoIDw9IDApXHJcbiAgICAgICAgICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IHJlc3BvbnNlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucHJvY2Vzc0xpbmtlZEl0ZW1zKHJlc3BvbnNlLnJlY29yZHMpO1xyXG4gICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXRyaWV2ZSBsaXN0IG9mIHN0b2NrIGl0ZW1zIG9uIGEgcmVjaXBlIGZyb20gdGhlIGVTb2x2ZSBBUElcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gY29kZSBTdG9jayBpdGVtIGNvZGVcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldFJlY2lwZUl0ZW1zKFxyXG4gICAgICAgIGNvZGU6IHN0cmluZyxcclxuICAgICAgICBvcHRpb25zPzogRXNvbHZlUmVjaXBlU3RvY2tPcHRpb25zLFxyXG4gICAgKTogT2JzZXJ2YWJsZTxFc29sdmVSZWNpcGVTdG9ja0l0ZW08VD5bXT4ge1xyXG4gICAgICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpLnNldCgnY29kZScsIGNvZGUpO1xyXG5cclxuICAgICAgICBpZiAob3B0aW9ucykge1xyXG4gICAgICAgICAgICBpZiAob3B0aW9ucy5wYWdlKSB7XHJcbiAgICAgICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdwYWdlJywgb3B0aW9ucy5wYWdlKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKG9wdGlvbnMucm93cykge1xyXG4gICAgICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgncm93cycsIG9wdGlvbnMucm93cyk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmIChvcHRpb25zLnNvcnQpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHNvcnQgPSBvcHRpb25zLnNvcnQ7XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKHNvcnQuZmllbGQpIHtcclxuICAgICAgICAgICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdzb3J0Jywgc29ydC5maWVsZCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKHNvcnQub3JkZXIpIHtcclxuICAgICAgICAgICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdvcmRlcicsIHNvcnQub3JkZXIpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgICAgICAgIC5nZXQ8RXNvbHZlR2V0UmVzcG9uc2U8RXNvbHZlUmVjaXBlSXRlbVJlY29yZDxUPltdPj4oXHJcbiAgICAgICAgICAgICAgICBgJHt0aGlzLmNvbmZpZy5hcGlfdXJsfS9nZXQtcmVjaXBlLWl0ZW1zLnBocGAsXHJcbiAgICAgICAgICAgICAgICB7IHBhcmFtcyB9LFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgbWFwKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAgICAgICAgICAgKHJlc3BvbnNlLnJlY29yZHMgPT09IHVuZGVmaW5lZCkgfHxcclxuICAgICAgICAgICAgICAgICAgICAgICAgKHJlc3BvbnNlLnJlY29yZHMubGVuZ3RoIDw9IDApXHJcbiAgICAgICAgICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IHJlc3BvbnNlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucHJvY2Vzc1JlY2lwZUl0ZW1zKHJlc3BvbnNlLnJlY29yZHMpO1xyXG4gICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXRyaWV2ZSBsaXN0IG9mIHN0b2NrIGl0ZW1zIGxpbmtlZCB0byBhIHN0b2NrIGl0ZW0gZnJvbSB0aGUgZVNvbHZlIEFQSVxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBvcHRpb25zIEZpbHRlciBvcHRpb25zXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXRNZWRpYUxpbmtlZEl0ZW1zKFxyXG4gICAgICAgIG9wdGlvbnM6IEVzb2x2ZU1lZGlhU3RvY2tJdGVtT3B0aW9ucyxcclxuICAgICk6IE9ic2VydmFibGU8RXNvbHZlTWVkaWFTdG9ja0l0ZW1MaXN0PFQ+PiB7XHJcbiAgICAgICAgbGV0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKHtcclxuICAgICAgICAgICAgZnJvbU9iamVjdDoge1xyXG4gICAgICAgICAgICAgICAgcm93czogb3B0aW9ucy5yb3dzID8/IDAsXHJcbiAgICAgICAgICAgICAgICBwYWdlOiBvcHRpb25zLnBhZ2UgPz8gMCxcclxuICAgICAgICAgICAgICAgIHJhbmdlc19pZDogb3B0aW9ucy5yYW5nZXNfaWQgPz8gMCxcclxuICAgICAgICAgICAgICAgIG1hbnVmYWN0dXJlcnNfaWQ6IG9wdGlvbnMubWFudWZhY3R1cmVyc19pZCA/PyAwLFxyXG4gICAgICAgICAgICAgICAgZGlzcGxheV9vbmx5OiBvcHRpb25zLmRpc3BsYXlfb25seSA/PyBmYWxzZSxcclxuICAgICAgICAgICAgICAgIGlzX2FjdGl2ZTogb3B0aW9ucy5pc19hY3RpdmUgPz8gdHJ1ZSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgaWYgKG9wdGlvbnMuc29ydCkge1xyXG4gICAgICAgICAgICBjb25zdCBzb3J0ID0gb3B0aW9ucy5zb3J0O1xyXG5cclxuICAgICAgICAgICAgaWYgKHNvcnQuZmllbGQpIHtcclxuICAgICAgICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ3NvcnQnLCBzb3J0LmZpZWxkKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKHNvcnQub3JkZXIpIHtcclxuICAgICAgICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ29yZGVyJywgc29ydC5vcmRlcik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChvcHRpb25zLm1lZGlhX2lkZW50aWZpZXIpIHtcclxuICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLmFwcGVuZCgnbWVkaWFfaWRlbnRpZmllcicsIG9wdGlvbnMubWVkaWFfaWRlbnRpZmllcik7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAob3B0aW9ucy5tZWRpYV9pZCkge1xyXG4gICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuYXBwZW5kKCdtZWRpYV9pZCcsIG9wdGlvbnMubWVkaWFfaWQpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAgICAgICAuZ2V0PEVzb2x2ZUdldFJlc3BvbnNlPEVzb2x2ZU1lZGlhU3RvY2tJdGVtUmVjb3JkPFQ+W10+PihcclxuICAgICAgICAgICAgICAgIGAke3RoaXMuY29uZmlnLmFwaV91cmx9L2dldC1tZWRpYS1saW5rZWQtaXRlbXMucGhwYCxcclxuICAgICAgICAgICAgICAgIHsgcGFyYW1zIH0sXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAocmVzcG9uc2UucmVjb3JkcyA9PT0gdW5kZWZpbmVkKSB8fFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAocmVzcG9uc2UucmVjb3Jkcy5sZW5ndGggPD0gMClcclxuICAgICAgICAgICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgcmVzcG9uc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBpdGVtcyA9IHRoaXMucHJvY2Vzc01lZGlhU3RvY2tJdGVtcyhyZXNwb25zZS5yZWNvcmRzKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBFc29sdmVMaXN0KFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtcyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucy5wYWdlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zLnJvd3MsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICtyZXNwb25zZS5hZGRpdGlvbmFsX2RhdGEudG90YWxfcmVjb3JkcyxcclxuICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXRyaWV2ZXMgdGhlIGZ1bGwgaW1hZ2UgY29sbGVjdGlvbiBvZiBhIHN0b2NrIGl0ZW1cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gY29kZSBTdG9jayBpdGVtIGNvZGVcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldFN0b2NrSW1hZ2VDb2xsZWN0aW9uKGNvZGU6IHN0cmluZyk6IE9ic2VydmFibGU8RXNvbHZlU3RvY2tJbWFnZUNvbGxlY3Rpb24+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgICAgICAgIC5nZXQ8RXNvbHZlR2V0UmVzcG9uc2U8RXNvbHZlU3RvY2tJbWFnZUNvbGxlY3Rpb25SZWNvcmQ+PihcclxuICAgICAgICAgICAgICAgIGAke3RoaXMuY29uZmlnLmFwaV91cmx9L2dldC1pdGVtLWltYWdlLWNvbGxlY3Rpb24ucGhwYCxcclxuICAgICAgICAgICAgICAgIHsgcGFyYW1zOiB7IGNvZGUgfSB9LFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgbWFwKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5yZWNvcmRzID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgcmVzcG9uc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBjb2xsZWN0aW9uID0gbmV3IEVzb2x2ZVN0b2NrSW1hZ2VDb2xsZWN0aW9uKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXNwb25zZS5yZWNvcmRzLFxyXG4gICAgICAgICAgICAgICAgICAgICk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBjb2xsZWN0aW9uO1xyXG4gICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQcm9jZXNzZXMgdGhlIGVTb2x2ZSBzdG9jayBpdGVtIHJlY29yZCBhbmQgY29udmVydHMgaXQgdG8gYW4gb2JqZWN0LlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSByZWNvcmQgZVNvbHZlIHN0b2NrIGl0ZW0gcmVjb3JkXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgcHJvY2Vzc1N0b2NrSXRlbShyZWNvcmQ6IEVzb2x2ZVN0b2NrUmVjb3JkPFQ+KTogRXNvbHZlU3RvY2tJdGVtPFQ+IHtcclxuICAgICAgICByZXR1cm4gbmV3IEVzb2x2ZVN0b2NrSXRlbTxUPihyZWNvcmQpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUHJvY2Vzc2VzIHRoZSBsaW5rZWQgZVNvbHZlIHN0b2NrIGl0ZW0gcmVjb3JkcyBhbmQgY29udmVydHMgdGhlbSB0byBvYmplY3RzLlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSByZWNvcmRzIExpbmtlZCBlU29sdmUgc3RvY2sgaXRlbSByZWNvcmRzXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgcHJvY2Vzc0xpbmtlZEl0ZW1zKFxyXG4gICAgICAgIHJlY29yZHM6IEVzb2x2ZUxpbmtlZFN0b2NrUmVjb3JkPFQ+W10sXHJcbiAgICApOiBFc29sdmVMaW5rZWRTdG9ja0l0ZW08VD5bXSB7XHJcbiAgICAgICAgY29uc3QgaXRlbXM6IEVzb2x2ZUxpbmtlZFN0b2NrSXRlbTxUPltdID0gW107XHJcblxyXG4gICAgICAgIGlmIChyZWNvcmRzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgZm9yIChjb25zdCByZWNvcmQgb2YgcmVjb3Jkcykge1xyXG4gICAgICAgICAgICAgICAgaXRlbXMucHVzaChuZXcgRXNvbHZlTGlua2VkU3RvY2tJdGVtPFQ+KHJlY29yZCkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gaXRlbXM7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQcm9jZXNzZXMgdGhlIHJlY2lwZSBlU29sdmUgc3RvY2sgaXRlbSByZWNvcmRzIGFuZCBjb252ZXJ0cyB0aGVtIHRvIG9iamVjdHMuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHJlY29yZHMgUmVjaXBlIGVTb2x2ZSBzdG9jayBpdGVtIHJlY29yZHNcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBwcm9jZXNzUmVjaXBlSXRlbXMoXHJcbiAgICAgICAgcmVjb3JkczogRXNvbHZlUmVjaXBlSXRlbVJlY29yZDxUPltdLFxyXG4gICAgKTogRXNvbHZlUmVjaXBlU3RvY2tJdGVtPFQ+W10ge1xyXG4gICAgICAgIGNvbnN0IGl0ZW1zOiBFc29sdmVSZWNpcGVTdG9ja0l0ZW08VD5bXSA9IFtdO1xyXG5cclxuICAgICAgICBpZiAocmVjb3Jkcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIGZvciAoY29uc3QgcmVjb3JkIG9mIHJlY29yZHMpIHtcclxuICAgICAgICAgICAgICAgIGl0ZW1zLnB1c2gobmV3IEVzb2x2ZVJlY2lwZVN0b2NrSXRlbTxUPihyZWNvcmQpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGl0ZW1zO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUHJvY2Vzc2VzIHRoZSBsaW5rZWQgZVNvbHZlIHN0b2NrIGl0ZW0gcmVjb3JkcyBhbmQgY29udmVydHMgdGhlbSB0byBvYmplY3RzLlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSByZWNvcmRzIExpbmtlZCBlU29sdmUgc3RvY2sgaXRlbSByZWNvcmRzXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgcHJvY2Vzc01lZGlhU3RvY2tJdGVtcyhcclxuICAgICAgICByZWNvcmRzOiBFc29sdmVNZWRpYVN0b2NrSXRlbVJlY29yZDxUPltdLFxyXG4gICAgKTogRXNvbHZlTWVkaWFTdG9ja0l0ZW08VD5bXSB7XHJcbiAgICAgICAgY29uc3QgaXRlbXM6IEVzb2x2ZU1lZGlhU3RvY2tJdGVtPFQ+W10gPSBbXTtcclxuXHJcbiAgICAgICAgaWYgKHJlY29yZHMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IHJlY29yZCBvZiByZWNvcmRzKSB7XHJcbiAgICAgICAgICAgICAgICBpdGVtcy5wdXNoKG5ldyBFc29sdmVNZWRpYVN0b2NrSXRlbTxUPihyZWNvcmQpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGl0ZW1zO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0cmlldmVzIHN0b2NrIHJlY29yZHMgZnJvbSBIVFRQIHBhcmFtcy5cclxuICAgICAqIEBwYXJhbSBwYXJhbXMgSFRUUCBjbGllbnQgcGFyYW1ldGVyc1xyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGdldFN0b2NrUmVjb3JkcyhcclxuICAgICAgICBwYXJhbXM6IEh0dHBQYXJhbXMsXHJcbiAgICApOiBPYnNlcnZhYmxlPEVzb2x2ZUdldFJlc3BvbnNlPEVzb2x2ZVN0b2NrUmVjb3JkPFQ+W10+PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8RXNvbHZlR2V0UmVzcG9uc2U8RXNvbHZlU3RvY2tSZWNvcmQ8VD5bXT4+KFxyXG4gICAgICAgICAgICBgJHt0aGlzLmNvbmZpZy5hcGlfdXJsfS9nZXQtaXRlbXMucGhwYCxcclxuICAgICAgICAgICAgeyBwYXJhbXMgfSxcclxuICAgICAgICApO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
338
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXN0b2NrLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lc29sdmUtY29ubmVjdC9zcmMvbGliL3N0b2NrL2Vzb2x2ZS1zdG9jay5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBYyxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUc5RCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHckMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFMUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBR3pELE9BQU8sRUFBRSxtQkFBbUIsRUFBZ0UsMEJBQTBCLEVBQUUsaUJBQWlCLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQWEvTCxPQUFPLEVBQ0gsZUFBZSxFQUNmLG1CQUFtQixFQUNuQixvQkFBb0IsRUFDcEIscUJBQXFCLEVBQ3JCLHFCQUFxQixFQUNyQiwwQkFBMEIsR0FDN0IsTUFBTSxXQUFXLENBQUM7OztBQU1uQixNQUFNLE9BQU8sa0JBQWtCO0lBQzNCLFlBQzJDLE1BQTJCLEVBQzFELElBQWdCO1FBRGUsV0FBTSxHQUFOLE1BQU0sQ0FBcUI7UUFDMUQsU0FBSSxHQUFKLElBQUksQ0FBWTtJQUN4QixDQUFDO0lBRUw7Ozs7T0FJRztJQUNJLFlBQVksQ0FBQyxJQUFZO1FBQzVCLE1BQU0sTUFBTSxHQUFHLElBQUksVUFBVSxDQUFDO1lBQzFCLFVBQVUsRUFBRTtnQkFDUixJQUFJO2FBQ1A7U0FDSixDQUFDLENBQUM7UUFFSCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUNwQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDWCxJQUNJLENBQUMsUUFBUSxDQUFDLE9BQU8sS0FBSyxTQUFTLENBQUM7Z0JBQ2hDLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDLEVBQ2hDO2dCQUNFLE1BQU0sUUFBUSxDQUFDO2FBQ2xCO1lBRUQsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUV4QyxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUM5QyxDQUFDLENBQUMsQ0FDTCxDQUFDO0lBQ04sQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxtQkFBbUIsQ0FBQyxRQUFnQjtRQUN2QyxNQUFNLE1BQU0sR0FBRyxJQUFJLFVBQVUsQ0FBQztZQUMxQixVQUFVLEVBQUU7Z0JBQ1IsUUFBUTthQUNYO1NBQ0osQ0FBQyxDQUFDO1FBRUgsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FDcEMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ1gsSUFDSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEtBQUssU0FBUyxDQUFDO2dCQUNoQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxFQUNoQztnQkFDRSxNQUFNLFFBQVEsQ0FBQzthQUNsQjtZQUVELE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFFeEMsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDOUMsQ0FBQyxDQUFDLENBQ0wsQ0FBQztJQUNOLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksYUFBYSxDQUNoQixPQUErQjtRQUUvQixJQUFJLE1BQU0sR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBRTlCLElBQUksT0FBTyxDQUFDLElBQUksRUFBRTtZQUNkLE1BQU0sR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDN0M7UUFFRCxJQUFJLE9BQU8sQ0FBQyxJQUFJLEVBQUU7WUFDZCxNQUFNLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzdDO1FBRUQsSUFBSSxPQUFPLENBQUMsSUFBSSxFQUFFO1lBQ2QsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQztZQUUxQixJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7Z0JBQ1osTUFBTSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUMzQztZQUVELElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtnQkFDWixNQUFNLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQzVDO1NBQ0o7UUFFRCxJQUFJLE9BQU8sQ0FBQyxhQUFhLEVBQUU7WUFDdkIsTUFBTSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsZUFBZSxFQUFFLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQztTQUMvRDtRQUVELElBQUksT0FBTyxDQUFDLFlBQVksRUFBRTtZQUN0QixNQUFNLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxjQUFjLEVBQUUsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDO1NBQzdEO1FBRUQsSUFBSSxPQUFPLENBQUMsU0FBUyxFQUFFO1lBQ25CLE1BQU0sR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDdkQ7UUFFRCxJQUFJLE9BQU8sQ0FBQyxXQUFXLEVBQUU7WUFDckIsTUFBTSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztTQUMzRDtRQUVELElBQUksT0FBTyxDQUFDLGNBQWMsRUFBRTtZQUN4QixNQUFNLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsRUFBRSxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUM7U0FDakU7UUFFRCxJQUFJLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRTtZQUMxQixNQUFNLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsRUFBRSxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztTQUNyRTtRQUVELElBQUksT0FBTyxDQUFDLFNBQVMsRUFBRTtZQUNuQixNQUFNLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQ3ZEO1FBRUQsSUFBSSxPQUFPLENBQUMsV0FBVyxFQUFFO1lBQ3JCLE1BQU0sR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7U0FDM0Q7UUFFRCxJQUFJLE9BQU8sQ0FBQyxXQUFXLElBQUksT0FBTyxDQUFDLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3ZELE1BQU0sR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQ2hFO1FBRUQsSUFBSSxPQUFPLENBQUMsYUFBYSxJQUFJLE9BQU8sQ0FBQyxhQUFhLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUMzRCxNQUFNLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztTQUNwRTtRQUVELElBQUksT0FBTyxDQUFDLE9BQU8sRUFBRTtZQUNqQixJQUFJLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDO1lBRTlCLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFO2dCQUN6QixPQUFPLEdBQUcsbUJBQW1CLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQ3hEO1lBRUQsTUFBTSxHQUFHLG1CQUFtQixDQUFDLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztTQUNyRTtRQUVELE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQ3BDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUNYLElBQ0ksQ0FBQyxRQUFRLENBQUMsT0FBTyxLQUFLLFNBQVMsQ0FBQztnQkFDaEMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsRUFDaEM7Z0JBQ0UsTUFBTSxRQUFRLENBQUM7YUFDbEI7WUFFRCxNQUFNLFVBQVUsR0FBeUIsRUFBRSxDQUFDO1lBRTVDLFFBQVEsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxFQUFFO2dCQUNuQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1lBQ3hELENBQUMsQ0FBQyxDQUFDO1lBRUgsT0FBTyxJQUFJLG1CQUFtQixDQUMxQixVQUFVLEVBQ1YsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLGFBQWEsRUFDdkMsT0FBTyxDQUFDLElBQUksSUFBSSxDQUFDLENBQ3BCLENBQUM7UUFDTixDQUFDLENBQUMsQ0FDTCxDQUFDO0lBQ04sQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxjQUFjLENBQ2pCLElBQVk7UUFFWixPQUFPLElBQUksQ0FBQyxJQUFJO2FBQ1gsR0FBRyxDQUNBLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLHVCQUF1QixFQUM3QyxFQUFFLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLENBQ3ZCO2FBQ0EsSUFBSSxDQUNELEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQ2IsSUFDSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEtBQUssU0FBUyxDQUFDO2dCQUNoQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxFQUNoQztnQkFDRSxNQUFNLFFBQVEsQ0FBQzthQUNsQjtZQUVELE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNyRCxDQUFDLENBQUMsQ0FDTCxDQUFDO0lBQ1YsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxjQUFjLENBQ2pCLElBQVksRUFDWixPQUFrQztRQUVsQyxJQUFJLE1BQU0sR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFFaEQsSUFBSSxPQUFPLEVBQUU7WUFDVCxJQUFJLE9BQU8sQ0FBQyxJQUFJLEVBQUU7Z0JBQ2QsTUFBTSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUM3QztZQUVELElBQUksT0FBTyxDQUFDLElBQUksRUFBRTtnQkFDZCxNQUFNLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQzdDO1lBRUQsSUFBSSxPQUFPLENBQUMsSUFBSSxFQUFFO2dCQUNkLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUM7Z0JBRTFCLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtvQkFDWixNQUFNLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2lCQUMzQztnQkFFRCxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7b0JBQ1osTUFBTSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztpQkFDNUM7YUFDSjtTQUNKO1FBRUQsT0FBTyxJQUFJLENBQUMsSUFBSTthQUNYLEdBQUcsQ0FDQSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyx1QkFBdUIsRUFDN0MsRUFBRSxNQUFNLEVBQUUsQ0FDYjthQUNBLElBQUksQ0FDRCxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUNiLElBQ0ksQ0FBQyxRQUFRLENBQUMsT0FBTyxLQUFLLFNBQVMsQ0FBQztnQkFDaEMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsRUFDaEM7Z0JBQ0UsTUFBTSxRQUFRLENBQUM7YUFDbEI7WUFFRCxPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDckQsQ0FBQyxDQUFDLENBQ0wsQ0FBQztJQUNWLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksbUJBQW1CLENBQ3RCLE9BQW9DO1FBRXBDLElBQUksTUFBTSxHQUFHLElBQUksVUFBVSxDQUFDO1lBQ3hCLFVBQVUsRUFBRTtnQkFDUixJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUksSUFBSSxDQUFDO2dCQUN2QixJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUksSUFBSSxDQUFDO2dCQUN2QixTQUFTLEVBQUUsT0FBTyxDQUFDLFNBQVMsSUFBSSxDQUFDO2dCQUNqQyxnQkFBZ0IsRUFBRSxPQUFPLENBQUMsZ0JBQWdCLElBQUksQ0FBQztnQkFDL0MsWUFBWSxFQUFFLE9BQU8sQ0FBQyxZQUFZLElBQUksS0FBSztnQkFDM0MsU0FBUyxFQUFFLE9BQU8sQ0FBQyxTQUFTLElBQUksSUFBSTthQUN2QztTQUNKLENBQUMsQ0FBQztRQUVILElBQUksT0FBTyxDQUFDLElBQUksRUFBRTtZQUNkLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUM7WUFFMUIsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO2dCQUNaLE1BQU0sR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDM0M7WUFFRCxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7Z0JBQ1osTUFBTSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUM1QztTQUNKO1FBRUQsSUFBSSxPQUFPLENBQUMsZ0JBQWdCLEVBQUU7WUFDMUIsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsa0JBQWtCLEVBQUUsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBQUM7U0FDeEU7UUFFRCxJQUFJLE9BQU8sQ0FBQyxRQUFRLEVBQUU7WUFDbEIsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUN4RDtRQUVELE9BQU8sSUFBSSxDQUFDLElBQUk7YUFDWCxHQUFHLENBQ0EsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sNkJBQTZCLEVBQ25ELEVBQUUsTUFBTSxFQUFFLENBQ2I7YUFDQSxJQUFJLENBQ0QsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDYixJQUNJLENBQUMsUUFBUSxDQUFDLE9BQU8sS0FBSyxTQUFTLENBQUM7Z0JBQ2hDLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDLEVBQ2hDO2dCQUNFLE1BQU0sUUFBUSxDQUFDO2FBQ2xCO1lBRUQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUU1RCxPQUFPLElBQUksVUFBVSxDQUNqQixLQUFLLEVBQ0wsT0FBTyxDQUFDLElBQUksRUFDWixPQUFPLENBQUMsSUFBSSxFQUNaLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQzFDLENBQUM7UUFDTixDQUFDLENBQUMsQ0FDTCxDQUFDO0lBQ1YsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSx1QkFBdUIsQ0FBQyxJQUFZO1FBQ3ZDLE9BQU8sSUFBSSxDQUFDLElBQUk7YUFDWCxHQUFHLENBQ0EsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sZ0NBQWdDLEVBQ3RELEVBQUUsTUFBTSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FDdkI7YUFDQSxJQUFJLENBQ0QsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDYixJQUFJLFFBQVEsQ0FBQyxPQUFPLEtBQUssU0FBUyxFQUFFO2dCQUNoQyxNQUFNLFFBQVEsQ0FBQzthQUNsQjtZQUVELE1BQU0sVUFBVSxHQUFHLElBQUksMEJBQTBCLENBQzdDLFFBQVEsQ0FBQyxPQUFPLENBQ25CLENBQUM7WUFFRixPQUFPLFVBQVUsQ0FBQztRQUN0QixDQUFDLENBQUMsQ0FDTCxDQUFDO0lBQ1YsQ0FBQztJQUVNLGVBQWUsQ0FBQyxPQUFpQztRQUNwRCxJQUFJLE1BQU0sR0FBRyxJQUFJLFVBQVUsQ0FBQztZQUN4QixVQUFVLEVBQUU7Z0JBQ1IsV0FBVyxFQUFFLE9BQU8sQ0FBQyxXQUFXLElBQUksRUFBRTtnQkFDdEMsY0FBYyxFQUFFLE9BQU8sQ0FBQyxjQUFjLElBQUksQ0FBQztnQkFDM0MsU0FBUyxFQUFFLE9BQU8sQ0FBQyxTQUFTLElBQUksQ0FBQztnQkFDakMsZ0JBQWdCLEVBQUUsT0FBTyxDQUFDLGdCQUFnQixJQUFJLENBQUM7Z0JBQy9DLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7YUFDbkM7U0FDSixDQUFDLENBQUM7UUFFSCxPQUFPLElBQUksQ0FBQyxJQUFJO2FBQ1gsR0FBRyxDQUNBLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLHVCQUF1QixFQUM3QyxFQUFFLE1BQU0sRUFBRSxDQUNiO2FBQ0EsSUFBSSxDQUNELEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQ2IsSUFBSSxRQUFRLENBQUMsT0FBTyxLQUFLLFNBQVMsRUFBRTtnQkFDaEMsTUFBTSxRQUFRLENBQUM7YUFDbEI7WUFFRCxNQUFNLE9BQU8sR0FBRyxFQUFFLENBQUM7WUFFbkIsS0FBSyxNQUFNLE1BQU0sSUFBSSxRQUFRLENBQUMsT0FBTyxFQUFFO2dCQUNuQyxJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUM7Z0JBRWxCLElBQUksTUFBTSxDQUFDLElBQUksS0FBSyxPQUFPLEVBQUU7b0JBQ3pCLE1BQU0sR0FBRyxJQUFJLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2lCQUMxRTtxQkFBTSxJQUFJLE1BQU0sQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUFFO29CQUNqQyxNQUFNLEdBQUcsSUFBSSx3QkFBd0IsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztpQkFDdEU7cUJBQU0sSUFBSSxNQUFNLENBQUMsSUFBSSxLQUFLLFVBQVUsRUFBRTtvQkFDbkMsTUFBTSxHQUFHLElBQUksMEJBQTBCLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7aUJBQ3hFO2dCQUVELElBQUksTUFBTSxFQUFFO29CQUNSLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7aUJBQ3hCO2FBQ0o7WUFFRCxPQUFPLE9BQU8sQ0FBQztRQUNuQixDQUFDLENBQUMsQ0FDTCxDQUFDO0lBQ1YsQ0FBQztJQUVEOzs7O09BSUc7SUFDSyxnQkFBZ0IsQ0FBQyxNQUE0QjtRQUNqRCxPQUFPLElBQUksZUFBZSxDQUFJLE1BQU0sQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ssa0JBQWtCLENBQ3RCLE9BQXFDO1FBRXJDLE1BQU0sS0FBSyxHQUErQixFQUFFLENBQUM7UUFFN0MsSUFBSSxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNwQixLQUFLLE1BQU0sTUFBTSxJQUFJLE9BQU8sRUFBRTtnQkFDMUIsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLHFCQUFxQixDQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUM7YUFDcEQ7U0FDSjtRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ssa0JBQWtCLENBQ3RCLE9BQW9DO1FBRXBDLE1BQU0sS0FBSyxHQUErQixFQUFFLENBQUM7UUFFN0MsSUFBSSxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNwQixLQUFLLE1BQU0sTUFBTSxJQUFJLE9BQU8sRUFBRTtnQkFDMUIsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLHFCQUFxQixDQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUM7YUFDcEQ7U0FDSjtRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ssc0JBQXNCLENBQzFCLE9BQXdDO1FBRXhDLE1BQU0sS0FBSyxHQUE4QixFQUFFLENBQUM7UUFFNUMsSUFBSSxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNwQixLQUFLLE1BQU0sTUFBTSxJQUFJLE9BQU8sRUFBRTtnQkFDMUIsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLG9CQUFvQixDQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUM7YUFDbkQ7U0FDSjtRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7SUFFRDs7O09BR0c7SUFDSyxlQUFlLENBQ25CLE1BQWtCO1FBRWxCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQ2hCLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLGdCQUFnQixFQUN0QyxFQUFFLE1BQU0sRUFBRSxDQUNiLENBQUM7SUFDTixDQUFDOztnSEExY1Esa0JBQWtCLGtCQUVmLHFCQUFxQjtvSEFGeEIsa0JBQWtCLGNBRmYsTUFBTTs0RkFFVCxrQkFBa0I7a0JBSDlCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCOzswQkFHUSxNQUFNOzJCQUFDLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwUGFyYW1zIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5cclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQgeyBFc29sdmVDb25uZWN0Q29uZmlnIH0gZnJvbSAnLi4vZXNvbHZlLWNvbm5lY3QuY29uZmlnJztcclxuaW1wb3J0IHsgRVNPTFZFX0NPTk5FQ1RfQ09ORklHIH0gZnJvbSAnLi4vZXNvbHZlLWNvbm5lY3QtY29uZmlnLmNvbnN0YW50JztcclxuXHJcbmltcG9ydCB7IEVzb2x2ZUxpc3QgfSBmcm9tICcuLi9zaGFyZWQvZXNvbHZlLWxpc3QubW9kZWwnO1xyXG5pbXBvcnQgeyBFc29sdmVHZXRSZXNwb25zZSB9IGZyb20gJy4uL3NoYXJlZC9yZXNwb25zZSc7XHJcbmltcG9ydCB7IEVzb2x2ZUN1c3RvbUZpZWxkcyB9IGZyb20gJy4uL3NoYXJlZC9jdXN0b20tZmllbGRzJztcclxuaW1wb3J0IHsgRXNvbHZlRmlsdGVyRmFjdG9yeSwgRXNvbHZlRmlsdGVyTGlzdCwgRXNvbHZlRmlsdGVyUmVjb3JkLCBFc29sdmVGaWx0ZXJSZWNvcmRMaXN0LCBFc29sdmVNdWx0aXBsZVNlbGVjdEZpbHRlciwgRXNvbHZlUmFuZ2VGaWx0ZXIsIEVzb2x2ZVNpbmdsZVNlbGVjdEZpbHRlciB9IGZyb20gJy4uL3NoYXJlZC9maWx0ZXJzJztcclxuXHJcbmltcG9ydCB7IEVzb2x2ZU1lZGlhU3RvY2tJdGVtTGlzdCB9IGZyb20gJy4vdHlwZXMnO1xyXG5pbXBvcnQge1xyXG4gICAgRXNvbHZlU3RvY2tSZWNvcmQsXHJcbiAgICBFc29sdmVTdG9ja0l0ZW1PcHRpb25zLFxyXG4gICAgRXNvbHZlUmVjaXBlSXRlbVJlY29yZCxcclxuICAgIEVzb2x2ZUxpbmtlZFN0b2NrUmVjb3JkLFxyXG4gICAgRXNvbHZlUmVjaXBlU3RvY2tPcHRpb25zLFxyXG4gICAgRXNvbHZlTWVkaWFTdG9ja0l0ZW1SZWNvcmQsXHJcbiAgICBFc29sdmVNZWRpYVN0b2NrSXRlbU9wdGlvbnMsXHJcbiAgICBFc29sdmVTdG9ja0ltYWdlQ29sbGVjdGlvblJlY29yZCxcclxufSBmcm9tICcuL2ludGVyZmFjZXMnO1xyXG5pbXBvcnQge1xyXG4gICAgRXNvbHZlU3RvY2tJdGVtLFxyXG4gICAgRXNvbHZlU3RvY2tJdGVtTGlzdCxcclxuICAgIEVzb2x2ZU1lZGlhU3RvY2tJdGVtLFxyXG4gICAgRXNvbHZlUmVjaXBlU3RvY2tJdGVtLFxyXG4gICAgRXNvbHZlTGlua2VkU3RvY2tJdGVtLFxyXG4gICAgRXNvbHZlU3RvY2tJbWFnZUNvbGxlY3Rpb24sXHJcbn0gZnJvbSAnLi9jbGFzc2VzJztcclxuaW1wb3J0IHsgRXNvbHZlU3RvY2tGaWx0ZXJPcHRpb25zIH0gZnJvbSAnLi9pbnRlcmZhY2VzL2Vzb2x2ZS1zdG9jay1maWx0ZXItb3B0aW9ucy5pbnRlcmZhY2UnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRXNvbHZlU3RvY2tTZXJ2aWNlPFQgZXh0ZW5kcyBFc29sdmVDdXN0b21GaWVsZHMgPSBFc29sdmVDdXN0b21GaWVsZHM+IHtcclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIEBJbmplY3QoRVNPTFZFX0NPTk5FQ1RfQ09ORklHKSBwcml2YXRlIGNvbmZpZzogRXNvbHZlQ29ubmVjdENvbmZpZyxcclxuICAgICAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXHJcbiAgICApIHsgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0cmlldmVzIHRoZSBzdG9jayByZWNvcmQgZnJvbSB0aGUgZVNvbHZlIGluc3RhbmNlIHVzaW5nIHRoZSBjb2RlLlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBjb2RlIGVTb2x2ZSBzdG9jayBjb2RlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXRTdG9ja0l0ZW0oY29kZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxFc29sdmVTdG9ja0l0ZW08VD4+IHtcclxuICAgICAgICBjb25zdCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcyh7XHJcbiAgICAgICAgICAgIGZyb21PYmplY3Q6IHtcclxuICAgICAgICAgICAgICAgIGNvZGUsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLmdldFN0b2NrUmVjb3JkcyhwYXJhbXMpLnBpcGUoXHJcbiAgICAgICAgICAgIG1hcChyZXNwb25zZSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgICAgICAgKHJlc3BvbnNlLnJlY29yZHMgPT09IHVuZGVmaW5lZCkgfHxcclxuICAgICAgICAgICAgICAgICAgICAocmVzcG9uc2UucmVjb3Jkcy5sZW5ndGggPD0gMClcclxuICAgICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRocm93IHJlc3BvbnNlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGNvbnN0IHN0b2NrUmVjb3JkID0gcmVzcG9uc2UucmVjb3Jkc1swXTtcclxuXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5wcm9jZXNzU3RvY2tJdGVtKHN0b2NrUmVjb3JkKTtcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldHJpZXZlcyB0aGUgc3RvY2sgcmVjb3JkIGZyb20gdGhlIGVTb2x2ZSBpbnN0YW5jZSB1c2luZyB0aGUgU0VGIG5hbWUuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHNlZl9uYW1lIFNFRiBuYW1lIG9mIHRoZSBzdG9jayBpdGVtXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXRTdG9ja0l0ZW1Gcm9tU0VGKHNlZl9uYW1lOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEVzb2x2ZVN0b2NrSXRlbTxUPj4ge1xyXG4gICAgICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKHtcclxuICAgICAgICAgICAgZnJvbU9iamVjdDoge1xyXG4gICAgICAgICAgICAgICAgc2VmX25hbWUsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLmdldFN0b2NrUmVjb3JkcyhwYXJhbXMpLnBpcGUoXHJcbiAgICAgICAgICAgIG1hcChyZXNwb25zZSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgICAgICAgKHJlc3BvbnNlLnJlY29yZHMgPT09IHVuZGVmaW5lZCkgfHxcclxuICAgICAgICAgICAgICAgICAgICAocmVzcG9uc2UucmVjb3Jkcy5sZW5ndGggPD0gMClcclxuICAgICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRocm93IHJlc3BvbnNlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGNvbnN0IHN0b2NrUmVjb3JkID0gcmVzcG9uc2UucmVjb3Jkc1swXTtcclxuXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5wcm9jZXNzU3RvY2tJdGVtKHN0b2NrUmVjb3JkKTtcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldHJpZXZlcyBsaXN0IG9mIHN0b2NrIGZyb20gdGhlIGVTb2x2ZSBpbnN0YW5jZSB1c2luZyBpbmZvIHByb3ZpZGVkXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIG9wdGlvbnMgU3RvY2sgZmlsdGVyIG9wdGlvbnNcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldFN0b2NrSXRlbXMoXHJcbiAgICAgICAgb3B0aW9uczogRXNvbHZlU3RvY2tJdGVtT3B0aW9ucyxcclxuICAgICk6IE9ic2VydmFibGU8RXNvbHZlU3RvY2tJdGVtTGlzdDxUPj4ge1xyXG4gICAgICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpO1xyXG5cclxuICAgICAgICBpZiAob3B0aW9ucy5wYWdlKSB7XHJcbiAgICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ3BhZ2UnLCBvcHRpb25zLnBhZ2UpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKG9wdGlvbnMucm93cykge1xyXG4gICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdyb3dzJywgb3B0aW9ucy5yb3dzKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChvcHRpb25zLnNvcnQpIHtcclxuICAgICAgICAgICAgY29uc3Qgc29ydCA9IG9wdGlvbnMuc29ydDtcclxuXHJcbiAgICAgICAgICAgIGlmIChzb3J0LmZpZWxkKSB7XHJcbiAgICAgICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdzb3J0Jywgc29ydC5maWVsZCk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmIChzb3J0Lm9yZGVyKSB7XHJcbiAgICAgICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdvcmRlcicsIHNvcnQub3JkZXIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAob3B0aW9ucy5zZWFyY2hfcGhyYXNlKSB7XHJcbiAgICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ3NlYXJjaF9waHJhc2UnLCBvcHRpb25zLnNlYXJjaF9waHJhc2UpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKG9wdGlvbnMuZGlzcGxheV9vbmx5KSB7XHJcbiAgICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ2Rpc3BsYXlfb25seScsIG9wdGlvbnMuZGlzcGxheV9vbmx5KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChvcHRpb25zLmlzX2FjdGl2ZSkge1xyXG4gICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdpc19hY3RpdmUnLCBvcHRpb25zLmlzX2FjdGl2ZSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAob3B0aW9ucy5jYXRlZ29yeV9pZCkge1xyXG4gICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdjYXRlZ29yeV9pZCcsIG9wdGlvbnMuY2F0ZWdvcnlfaWQpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKG9wdGlvbnMuc3ViY2F0ZWdvcnlfaWQpIHtcclxuICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgnc3ViY2F0ZWdvcnlfaWQnLCBvcHRpb25zLnN1YmNhdGVnb3J5X2lkKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChvcHRpb25zLm1hbnVmYWN0dXJlcnNfaWQpIHtcclxuICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgnbWFudWZhY3R1cmVyc19pZCcsIG9wdGlvbnMubWFudWZhY3R1cmVyc19pZCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAob3B0aW9ucy5yYW5nZXNfaWQpIHtcclxuICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgncmFuZ2VzX2lkJywgb3B0aW9ucy5yYW5nZXNfaWQpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKG9wdGlvbnMuc3BlY2lhbHNfaWQpIHtcclxuICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgnc3BlY2lhbHNfaWQnLCBvcHRpb25zLnNwZWNpYWxzX2lkKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChvcHRpb25zLnRhZ19pZF9saXN0ICYmIG9wdGlvbnMudGFnX2lkX2xpc3QubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCd0YWdfaWQnLCBvcHRpb25zLnRhZ19pZF9saXN0LmpvaW4oJywnKSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAob3B0aW9ucy50b3BpY19pZF9saXN0ICYmIG9wdGlvbnMudG9waWNfaWRfbGlzdC5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ3RvcGljX2lkJywgb3B0aW9ucy50b3BpY19pZF9saXN0LmpvaW4oJywnKSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAob3B0aW9ucy5maWx0ZXJzKSB7XHJcbiAgICAgICAgICAgIGxldCBmaWx0ZXJzID0gb3B0aW9ucy5maWx0ZXJzO1xyXG5cclxuICAgICAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGZpbHRlcnMpKSB7XHJcbiAgICAgICAgICAgICAgICBmaWx0ZXJzID0gRXNvbHZlRmlsdGVyRmFjdG9yeS5jb3ZlcnRGcm9tT2JqKGZpbHRlcnMpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBwYXJhbXMgPSBFc29sdmVGaWx0ZXJGYWN0b3J5LmNvbnZlcnRUb0h0dHBQYXJhbXMoZmlsdGVycywgcGFyYW1zKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLmdldFN0b2NrUmVjb3JkcyhwYXJhbXMpLnBpcGUoXHJcbiAgICAgICAgICAgIG1hcChyZXNwb25zZSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgICAgICAgKHJlc3BvbnNlLnJlY29yZHMgPT09IHVuZGVmaW5lZCkgfHxcclxuICAgICAgICAgICAgICAgICAgICAocmVzcG9uc2UucmVjb3Jkcy5sZW5ndGggPD0gMClcclxuICAgICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRocm93IHJlc3BvbnNlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGNvbnN0IHN0b2NrSXRlbXM6IEVzb2x2ZVN0b2NrSXRlbTxUPltdID0gW107XHJcblxyXG4gICAgICAgICAgICAgICAgcmVzcG9uc2UucmVjb3Jkcy5mb3JFYWNoKHN0b2NrUmVjb3JkID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBzdG9ja0l0ZW1zLnB1c2godGhpcy5wcm9jZXNzU3RvY2tJdGVtKHN0b2NrUmVjb3JkKSk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEVzb2x2ZVN0b2NrSXRlbUxpc3QoXHJcbiAgICAgICAgICAgICAgICAgICAgc3RvY2tJdGVtcyxcclxuICAgICAgICAgICAgICAgICAgICArcmVzcG9uc2UuYWRkaXRpb25hbF9kYXRhLnRvdGFsX3JlY29yZHMsXHJcbiAgICAgICAgICAgICAgICAgICAgb3B0aW9ucy5wYWdlID8/IDAsXHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0cmlldmUgbGlzdCBvZiBzdG9jayBpdGVtcyBsaW5rZWQgdG8gYSBzdG9jayBpdGVtIGZyb20gdGhlIGVTb2x2ZSBBUElcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gY29kZSBTdG9jayBpdGVtIGNvZGVcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldExpbmtlZEl0ZW1zKFxyXG4gICAgICAgIGNvZGU6IHN0cmluZyxcclxuICAgICk6IE9ic2VydmFibGU8RXNvbHZlTGlua2VkU3RvY2tJdGVtPFQ+W10+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgICAgICAgIC5nZXQ8RXNvbHZlR2V0UmVzcG9uc2U8RXNvbHZlTGlua2VkU3RvY2tSZWNvcmQ8VD5bXT4+KFxyXG4gICAgICAgICAgICAgICAgYCR7dGhpcy5jb25maWcuYXBpX3VybH0vZ2V0LWxpbmtlZC1pdGVtcy5waHBgLFxyXG4gICAgICAgICAgICAgICAgeyBwYXJhbXM6IHsgY29kZSB9IH0sXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAocmVzcG9uc2UucmVjb3JkcyA9PT0gdW5kZWZpbmVkKSB8fFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAocmVzcG9uc2UucmVjb3Jkcy5sZW5ndGggPD0gMClcclxuICAgICAgICAgICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgcmVzcG9uc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5wcm9jZXNzTGlua2VkSXRlbXMocmVzcG9uc2UucmVjb3Jkcyk7XHJcbiAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldHJpZXZlIGxpc3Qgb2Ygc3RvY2sgaXRlbXMgb24gYSByZWNpcGUgZnJvbSB0aGUgZVNvbHZlIEFQSVxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBjb2RlIFN0b2NrIGl0ZW0gY29kZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0UmVjaXBlSXRlbXMoXHJcbiAgICAgICAgY29kZTogc3RyaW5nLFxyXG4gICAgICAgIG9wdGlvbnM/OiBFc29sdmVSZWNpcGVTdG9ja09wdGlvbnMsXHJcbiAgICApOiBPYnNlcnZhYmxlPEVzb2x2ZVJlY2lwZVN0b2NrSXRlbTxUPltdPiB7XHJcbiAgICAgICAgbGV0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCkuc2V0KCdjb2RlJywgY29kZSk7XHJcblxyXG4gICAgICAgIGlmIChvcHRpb25zKSB7XHJcbiAgICAgICAgICAgIGlmIChvcHRpb25zLnBhZ2UpIHtcclxuICAgICAgICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ3BhZ2UnLCBvcHRpb25zLnBhZ2UpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAob3B0aW9ucy5yb3dzKSB7XHJcbiAgICAgICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdyb3dzJywgb3B0aW9ucy5yb3dzKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKG9wdGlvbnMuc29ydCkge1xyXG4gICAgICAgICAgICAgICAgY29uc3Qgc29ydCA9IG9wdGlvbnMuc29ydDtcclxuXHJcbiAgICAgICAgICAgICAgICBpZiAoc29ydC5maWVsZCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ3NvcnQnLCBzb3J0LmZpZWxkKTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBpZiAoc29ydC5vcmRlcikge1xyXG4gICAgICAgICAgICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ29yZGVyJywgc29ydC5vcmRlcik7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgICAgICAgLmdldDxFc29sdmVHZXRSZXNwb25zZTxFc29sdmVSZWNpcGVJdGVtUmVjb3JkPFQ+W10+PihcclxuICAgICAgICAgICAgICAgIGAke3RoaXMuY29uZmlnLmFwaV91cmx9L2dldC1yZWNpcGUtaXRlbXMucGhwYCxcclxuICAgICAgICAgICAgICAgIHsgcGFyYW1zIH0sXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAocmVzcG9uc2UucmVjb3JkcyA9PT0gdW5kZWZpbmVkKSB8fFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAocmVzcG9uc2UucmVjb3Jkcy5sZW5ndGggPD0gMClcclxuICAgICAgICAgICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgcmVzcG9uc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5wcm9jZXNzUmVjaXBlSXRlbXMocmVzcG9uc2UucmVjb3Jkcyk7XHJcbiAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldHJpZXZlIGxpc3Qgb2Ygc3RvY2sgaXRlbXMgbGlua2VkIHRvIGEgc3RvY2sgaXRlbSBmcm9tIHRoZSBlU29sdmUgQVBJXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIG9wdGlvbnMgRmlsdGVyIG9wdGlvbnNcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldE1lZGlhTGlua2VkSXRlbXMoXHJcbiAgICAgICAgb3B0aW9uczogRXNvbHZlTWVkaWFTdG9ja0l0ZW1PcHRpb25zLFxyXG4gICAgKTogT2JzZXJ2YWJsZTxFc29sdmVNZWRpYVN0b2NrSXRlbUxpc3Q8VD4+IHtcclxuICAgICAgICBsZXQgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoe1xyXG4gICAgICAgICAgICBmcm9tT2JqZWN0OiB7XHJcbiAgICAgICAgICAgICAgICByb3dzOiBvcHRpb25zLnJvd3MgPz8gMCxcclxuICAgICAgICAgICAgICAgIHBhZ2U6IG9wdGlvbnMucGFnZSA/PyAwLFxyXG4gICAgICAgICAgICAgICAgcmFuZ2VzX2lkOiBvcHRpb25zLnJhbmdlc19pZCA/PyAwLFxyXG4gICAgICAgICAgICAgICAgbWFudWZhY3R1cmVyc19pZDogb3B0aW9ucy5tYW51ZmFjdHVyZXJzX2lkID8/IDAsXHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5X29ubHk6IG9wdGlvbnMuZGlzcGxheV9vbmx5ID8/IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgaXNfYWN0aXZlOiBvcHRpb25zLmlzX2FjdGl2ZSA/PyB0cnVlLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICBpZiAob3B0aW9ucy5zb3J0KSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHNvcnQgPSBvcHRpb25zLnNvcnQ7XHJcblxyXG4gICAgICAgICAgICBpZiAoc29ydC5maWVsZCkge1xyXG4gICAgICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgnc29ydCcsIHNvcnQuZmllbGQpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAoc29ydC5vcmRlcikge1xyXG4gICAgICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgnb3JkZXInLCBzb3J0Lm9yZGVyKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKG9wdGlvbnMubWVkaWFfaWRlbnRpZmllcikge1xyXG4gICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuYXBwZW5kKCdtZWRpYV9pZGVudGlmaWVyJywgb3B0aW9ucy5tZWRpYV9pZGVudGlmaWVyKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChvcHRpb25zLm1lZGlhX2lkKSB7XHJcbiAgICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5hcHBlbmQoJ21lZGlhX2lkJywgb3B0aW9ucy5tZWRpYV9pZCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgICAgICAgIC5nZXQ8RXNvbHZlR2V0UmVzcG9uc2U8RXNvbHZlTWVkaWFTdG9ja0l0ZW1SZWNvcmQ8VD5bXT4+KFxyXG4gICAgICAgICAgICAgICAgYCR7dGhpcy5jb25maWcuYXBpX3VybH0vZ2V0LW1lZGlhLWxpbmtlZC1pdGVtcy5waHBgLFxyXG4gICAgICAgICAgICAgICAgeyBwYXJhbXMgfSxcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChyZXNwb25zZS5yZWNvcmRzID09PSB1bmRlZmluZWQpIHx8XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChyZXNwb25zZS5yZWNvcmRzLmxlbmd0aCA8PSAwKVxyXG4gICAgICAgICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyByZXNwb25zZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGl0ZW1zID0gdGhpcy5wcm9jZXNzTWVkaWFTdG9ja0l0ZW1zKHJlc3BvbnNlLnJlY29yZHMpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEVzb2x2ZUxpc3QoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1zLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zLnBhZ2UsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMucm93cyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgK3Jlc3BvbnNlLmFkZGl0aW9uYWxfZGF0YS50b3RhbF9yZWNvcmRzLFxyXG4gICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldHJpZXZlcyB0aGUgZnVsbCBpbWFnZSBjb2xsZWN0aW9uIG9mIGEgc3RvY2sgaXRlbVxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBjb2RlIFN0b2NrIGl0ZW0gY29kZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0U3RvY2tJbWFnZUNvbGxlY3Rpb24oY29kZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxFc29sdmVTdG9ja0ltYWdlQ29sbGVjdGlvbj4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgICAgICAgLmdldDxFc29sdmVHZXRSZXNwb25zZTxFc29sdmVTdG9ja0ltYWdlQ29sbGVjdGlvblJlY29yZD4+KFxyXG4gICAgICAgICAgICAgICAgYCR7dGhpcy5jb25maWcuYXBpX3VybH0vZ2V0LWl0ZW0taW1hZ2UtY29sbGVjdGlvbi5waHBgLFxyXG4gICAgICAgICAgICAgICAgeyBwYXJhbXM6IHsgY29kZSB9IH0sXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLnJlY29yZHMgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyByZXNwb25zZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbGxlY3Rpb24gPSBuZXcgRXNvbHZlU3RvY2tJbWFnZUNvbGxlY3Rpb24oXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlLnJlY29yZHMsXHJcbiAgICAgICAgICAgICAgICAgICAgKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbGxlY3Rpb247XHJcbiAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0U3RvY2tGaWx0ZXJzKG9wdGlvbnM6IEVzb2x2ZVN0b2NrRmlsdGVyT3B0aW9ucyk6IE9ic2VydmFibGU8RXNvbHZlRmlsdGVyTGlzdD4ge1xyXG4gICAgICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcyh7XHJcbiAgICAgICAgICAgIGZyb21PYmplY3Q6IHtcclxuICAgICAgICAgICAgICAgIGNhdGVnb3J5X2lkOiBvcHRpb25zLmNhdGVnb3J5X2lkID8/ICcnLFxyXG4gICAgICAgICAgICAgICAgc3ViY2F0ZWdvcnlfaWQ6IG9wdGlvbnMuc3ViY2F0ZWdvcnlfaWQgPz8gMCxcclxuICAgICAgICAgICAgICAgIHJhbmdlc19pZDogb3B0aW9ucy5yYW5nZXNfaWQgPz8gMCxcclxuICAgICAgICAgICAgICAgIG1hbnVmYWN0dXJlcnNfaWQ6IG9wdGlvbnMubWFudWZhY3R1cmVyc19pZCA/PyAwLFxyXG4gICAgICAgICAgICAgICAgZmllbGRzOiBvcHRpb25zLmZpZWxkcy5qb2luKCcsJyksXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgICAgICAgLmdldDxFc29sdmVHZXRSZXNwb25zZTxFc29sdmVGaWx0ZXJSZWNvcmRMaXN0Pj4oXHJcbiAgICAgICAgICAgICAgICBgJHt0aGlzLmNvbmZpZy5hcGlfdXJsfS9nZXQtaXRlbS1maWx0ZXJzLnBocGAsXHJcbiAgICAgICAgICAgICAgICB7IHBhcmFtcyB9LFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgbWFwKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5yZWNvcmRzID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgcmVzcG9uc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBmaWx0ZXJzID0gW107XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgcmVjb3JkIG9mIHJlc3BvbnNlLnJlY29yZHMpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGZpbHRlciA9IG51bGw7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVjb3JkLnR5cGUgPT09ICdyYW5nZScpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlciA9IG5ldyBFc29sdmVSYW5nZUZpbHRlcihyZWNvcmQuZmllbGQsICtyZWNvcmQubWluLCArcmVjb3JkLm1heCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocmVjb3JkLnR5cGUgPT09ICdzaW5nbGUnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXIgPSBuZXcgRXNvbHZlU2luZ2xlU2VsZWN0RmlsdGVyKHJlY29yZC5maWVsZCwgcmVjb3JkLnZhbHVlcyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocmVjb3JkLnR5cGUgPT09ICdtdWx0aXBsZScpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlciA9IG5ldyBFc29sdmVNdWx0aXBsZVNlbGVjdEZpbHRlcihyZWNvcmQuZmllbGQsIHJlY29yZC52YWx1ZXMpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZmlsdGVyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJzLnB1c2goZmlsdGVyKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZpbHRlcnM7XHJcbiAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFByb2Nlc3NlcyB0aGUgZVNvbHZlIHN0b2NrIGl0ZW0gcmVjb3JkIGFuZCBjb252ZXJ0cyBpdCB0byBhbiBvYmplY3QuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHJlY29yZCBlU29sdmUgc3RvY2sgaXRlbSByZWNvcmRcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBwcm9jZXNzU3RvY2tJdGVtKHJlY29yZDogRXNvbHZlU3RvY2tSZWNvcmQ8VD4pOiBFc29sdmVTdG9ja0l0ZW08VD4ge1xyXG4gICAgICAgIHJldHVybiBuZXcgRXNvbHZlU3RvY2tJdGVtPFQ+KHJlY29yZCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQcm9jZXNzZXMgdGhlIGxpbmtlZCBlU29sdmUgc3RvY2sgaXRlbSByZWNvcmRzIGFuZCBjb252ZXJ0cyB0aGVtIHRvIG9iamVjdHMuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHJlY29yZHMgTGlua2VkIGVTb2x2ZSBzdG9jayBpdGVtIHJlY29yZHNcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBwcm9jZXNzTGlua2VkSXRlbXMoXHJcbiAgICAgICAgcmVjb3JkczogRXNvbHZlTGlua2VkU3RvY2tSZWNvcmQ8VD5bXSxcclxuICAgICk6IEVzb2x2ZUxpbmtlZFN0b2NrSXRlbTxUPltdIHtcclxuICAgICAgICBjb25zdCBpdGVtczogRXNvbHZlTGlua2VkU3RvY2tJdGVtPFQ+W10gPSBbXTtcclxuXHJcbiAgICAgICAgaWYgKHJlY29yZHMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IHJlY29yZCBvZiByZWNvcmRzKSB7XHJcbiAgICAgICAgICAgICAgICBpdGVtcy5wdXNoKG5ldyBFc29sdmVMaW5rZWRTdG9ja0l0ZW08VD4ocmVjb3JkKSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBpdGVtcztcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFByb2Nlc3NlcyB0aGUgcmVjaXBlIGVTb2x2ZSBzdG9jayBpdGVtIHJlY29yZHMgYW5kIGNvbnZlcnRzIHRoZW0gdG8gb2JqZWN0cy5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gcmVjb3JkcyBSZWNpcGUgZVNvbHZlIHN0b2NrIGl0ZW0gcmVjb3Jkc1xyXG4gICAgICovXHJcbiAgICBwcml2YXRlIHByb2Nlc3NSZWNpcGVJdGVtcyhcclxuICAgICAgICByZWNvcmRzOiBFc29sdmVSZWNpcGVJdGVtUmVjb3JkPFQ+W10sXHJcbiAgICApOiBFc29sdmVSZWNpcGVTdG9ja0l0ZW08VD5bXSB7XHJcbiAgICAgICAgY29uc3QgaXRlbXM6IEVzb2x2ZVJlY2lwZVN0b2NrSXRlbTxUPltdID0gW107XHJcblxyXG4gICAgICAgIGlmIChyZWNvcmRzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgZm9yIChjb25zdCByZWNvcmQgb2YgcmVjb3Jkcykge1xyXG4gICAgICAgICAgICAgICAgaXRlbXMucHVzaChuZXcgRXNvbHZlUmVjaXBlU3RvY2tJdGVtPFQ+KHJlY29yZCkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gaXRlbXM7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQcm9jZXNzZXMgdGhlIGxpbmtlZCBlU29sdmUgc3RvY2sgaXRlbSByZWNvcmRzIGFuZCBjb252ZXJ0cyB0aGVtIHRvIG9iamVjdHMuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHJlY29yZHMgTGlua2VkIGVTb2x2ZSBzdG9jayBpdGVtIHJlY29yZHNcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBwcm9jZXNzTWVkaWFTdG9ja0l0ZW1zKFxyXG4gICAgICAgIHJlY29yZHM6IEVzb2x2ZU1lZGlhU3RvY2tJdGVtUmVjb3JkPFQ+W10sXHJcbiAgICApOiBFc29sdmVNZWRpYVN0b2NrSXRlbTxUPltdIHtcclxuICAgICAgICBjb25zdCBpdGVtczogRXNvbHZlTWVkaWFTdG9ja0l0ZW08VD5bXSA9IFtdO1xyXG5cclxuICAgICAgICBpZiAocmVjb3Jkcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIGZvciAoY29uc3QgcmVjb3JkIG9mIHJlY29yZHMpIHtcclxuICAgICAgICAgICAgICAgIGl0ZW1zLnB1c2gobmV3IEVzb2x2ZU1lZGlhU3RvY2tJdGVtPFQ+KHJlY29yZCkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gaXRlbXM7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXRyaWV2ZXMgc3RvY2sgcmVjb3JkcyBmcm9tIEhUVFAgcGFyYW1zLlxyXG4gICAgICogQHBhcmFtIHBhcmFtcyBIVFRQIGNsaWVudCBwYXJhbWV0ZXJzXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgZ2V0U3RvY2tSZWNvcmRzKFxyXG4gICAgICAgIHBhcmFtczogSHR0cFBhcmFtcyxcclxuICAgICk6IE9ic2VydmFibGU8RXNvbHZlR2V0UmVzcG9uc2U8RXNvbHZlU3RvY2tSZWNvcmQ8VD5bXT4+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldDxFc29sdmVHZXRSZXNwb25zZTxFc29sdmVTdG9ja1JlY29yZDxUPltdPj4oXHJcbiAgICAgICAgICAgIGAke3RoaXMuY29uZmlnLmFwaV91cmx9L2dldC1pdGVtcy5waHBgLFxyXG4gICAgICAgICAgICB7IHBhcmFtcyB9LFxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcbn1cclxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXN0b2NrLWZpbHRlci1vcHRpb25zLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvc3RvY2svaW50ZXJmYWNlcy9lc29sdmUtc3RvY2stZmlsdGVyLW9wdGlvbnMuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIEVzb2x2ZVN0b2NrRmlsdGVyT3B0aW9ucyB7XHJcbiAgICBjYXRlZ29yeV9pZD86IHN0cmluZztcclxuICAgIHN1YmNhdGVnb3J5X2lkPzogbnVtYmVyO1xyXG4gICAgbWFudWZhY3R1cmVyc19pZD86IG51bWJlcjtcclxuICAgIHJhbmdlc19pZD86IG51bWJlcjtcclxuICAgIGZpZWxkczogc3RyaW5nW107XHJcbn1cclxuIl19
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXN0b2NrLWl0ZW0tb3B0aW9ucy5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lc29sdmUtY29ubmVjdC9zcmMvbGliL3N0b2NrL2ludGVyZmFjZXMvZXNvbHZlLXN0b2NrLWl0ZW0tb3B0aW9ucy5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVzb2x2ZVNvcnQgfSBmcm9tICcuLi8uLi9zaGFyZWQvc29ydCc7XHJcblxyXG5pbXBvcnQgeyBFc29sdmVTdG9ja1NvcnRGaWVsZCB9IGZyb20gJy4uL3R5cGVzJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRXNvbHZlU3RvY2tJdGVtT3B0aW9ucyB7XHJcbiAgICByb3dzPzogbnVtYmVyO1xyXG4gICAgcGFnZT86IG51bWJlcjtcclxuICAgIGNhdGVnb3J5X2lkPzogc3RyaW5nO1xyXG4gICAgc3ViY2F0ZWdvcnlfaWQ/OiBudW1iZXI7XHJcbiAgICBtYW51ZmFjdHVyZXJzX2lkPzogbnVtYmVyO1xyXG4gICAgcmFuZ2VzX2lkPzogbnVtYmVyO1xyXG4gICAgaXNfYWN0aXZlPzogYm9vbGVhbjtcclxuICAgIGRpc3BsYXlfb25seT86IGJvb2xlYW47XHJcbiAgICB0YWdfaWRfbGlzdD86IG51bWJlcltdO1xyXG4gICAgdG9waWNfaWRfbGlzdD86IG51bWJlcltdO1xyXG4gICAgc2VhcmNoX3BocmFzZT86IHN0cmluZztcclxuICAgIHNwZWNpYWxzX2lkPzogbnVtYmVyO1xyXG4gICAgc29ydD86IEVzb2x2ZVNvcnQ8RXNvbHZlU3RvY2tTb3J0RmllbGQ+O1xyXG59XHJcbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXN0b2NrLWl0ZW0tb3B0aW9ucy5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lc29sdmUtY29ubmVjdC9zcmMvbGliL3N0b2NrL2ludGVyZmFjZXMvZXNvbHZlLXN0b2NrLWl0ZW0tb3B0aW9ucy5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVzb2x2ZUZpbHRlciwgRXNvbHZlRmlsdGVyRGVmaW5pdGlvbnMgfSBmcm9tICcuLi8uLi9zaGFyZWQvZmlsdGVycyc7XHJcbmltcG9ydCB7IEVzb2x2ZVNvcnQgfSBmcm9tICcuLi8uLi9zaGFyZWQvc29ydCc7XHJcblxyXG5pbXBvcnQgeyBFc29sdmVTdG9ja1NvcnRGaWVsZCB9IGZyb20gJy4uL3R5cGVzJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRXNvbHZlU3RvY2tJdGVtT3B0aW9ucyB7XHJcbiAgICByb3dzPzogbnVtYmVyO1xyXG4gICAgcGFnZT86IG51bWJlcjtcclxuICAgIGNhdGVnb3J5X2lkPzogc3RyaW5nO1xyXG4gICAgc3ViY2F0ZWdvcnlfaWQ/OiBudW1iZXI7XHJcbiAgICBtYW51ZmFjdHVyZXJzX2lkPzogbnVtYmVyO1xyXG4gICAgcmFuZ2VzX2lkPzogbnVtYmVyO1xyXG4gICAgaXNfYWN0aXZlPzogYm9vbGVhbjtcclxuICAgIGRpc3BsYXlfb25seT86IGJvb2xlYW47XHJcbiAgICB0YWdfaWRfbGlzdD86IG51bWJlcltdO1xyXG4gICAgdG9waWNfaWRfbGlzdD86IG51bWJlcltdO1xyXG4gICAgc2VhcmNoX3BocmFzZT86IHN0cmluZztcclxuICAgIHNwZWNpYWxzX2lkPzogbnVtYmVyO1xyXG4gICAgc29ydD86IEVzb2x2ZVNvcnQ8RXNvbHZlU3RvY2tTb3J0RmllbGQ+O1xyXG4gICAgLyoqXHJcbiAgICAgKiBVc2UgYW4gYWN0dWFsIGxpc3Qgb2YgZmlsdGVyIG9iamVjdHMgT1IgdXNpbmcgYSBmaWx0ZXIgZGVmaW5pdGlvbiBvYmplY3RcclxuICAgICAqL1xyXG4gICAgZmlsdGVycz86IEVzb2x2ZUZpbHRlcltdIHwgRXNvbHZlRmlsdGVyRGVmaW5pdGlvbnM7XHJcbn1cclxuIl19
@@ -8,6 +8,7 @@ export * from './lib/shared/esolve-list.model';
8
8
  export * from './lib/shared/esolve-result.model';
9
9
  export * from './lib/shared/esolve-url-target.type';
10
10
  export * from './lib/shared/custom-fields';
11
+ export * from './lib/shared/filters';
11
12
  export * from './lib/shared/response';
12
13
  export * from './lib/shared/errors';
13
14
  export * from './lib/shared/cookie/esolve-cookie.service';
@@ -54,4 +55,4 @@ export * from './lib/shipping';
54
55
  export * from './lib/locations';
55
56
  // Enquiry
56
57
  export * from './lib/enquiry';
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsc0NBQXNDLENBQUM7QUFFckQsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLG1CQUFtQixDQUFDO0FBRWxDLE1BQU07QUFDTixjQUFjLGtCQUFrQixDQUFDO0FBRWpDLFdBQVc7QUFDWCxjQUFjLHVCQUF1QixDQUFDO0FBRXRDLFNBQVM7QUFDVCxjQUFjLHFCQUFxQixDQUFDO0FBRXBDLFVBQVU7QUFDVixjQUFjLGVBQWUsQ0FBQztBQUU5QixPQUFPO0FBQ1AsY0FBYyxZQUFZLENBQUM7QUFFM0IsVUFBVTtBQUNWLGNBQWMsZUFBZSxDQUFDO0FBRTlCLFVBQVU7QUFDVixjQUFjLGVBQWUsQ0FBQztBQUU5QixPQUFPO0FBQ1AsY0FBYyxZQUFZLENBQUM7QUFFM0IsT0FBTztBQUNQLGNBQWMsWUFBWSxDQUFDO0FBRTNCLFNBQVM7QUFDVCxjQUFjLGNBQWMsQ0FBQztBQUU3QixPQUFPO0FBQ1AsY0FBYyxZQUFZLENBQUM7QUFFM0IsUUFBUTtBQUNSLGNBQWMsYUFBYSxDQUFDO0FBRTVCLGdCQUFnQjtBQUNoQixjQUFjLHFCQUFxQixDQUFDO0FBRXBDLGdCQUFnQjtBQUNoQixjQUFjLHFCQUFxQixDQUFDO0FBRXBDLFNBQVM7QUFDVCxjQUFjLGNBQWMsQ0FBQztBQUU3QixXQUFXO0FBQ1gsY0FBYyxnQkFBZ0IsQ0FBQztBQUUvQixPQUFPO0FBQ1AsY0FBYyxZQUFZLENBQUM7QUFFM0IsVUFBVTtBQUNWLGNBQWMsZUFBZSxDQUFDO0FBRTlCLFdBQVc7QUFDWCxjQUFjLGdCQUFnQixDQUFDO0FBRS9CLFlBQVk7QUFDWixjQUFjLGlCQUFpQixDQUFDO0FBRWhDLFVBQVU7QUFDVixjQUFjLGVBQWUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBuZy1lc29sdmUtY29ubmVjdFxyXG4gKi9cclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL25nLWVzb2x2ZS1jb25uZWN0Lm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Vzb2x2ZS1jb25uZWN0LmNvbmZpZyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Vzb2x2ZS1jb25uZWN0LWNvbmZpZy5jb25zdGFudCc7XHJcblxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQvZXNvbHZlLWxpc3QubW9kZWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQvZXNvbHZlLXJlc3VsdC5tb2RlbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NoYXJlZC9lc29sdmUtdXJsLXRhcmdldC50eXBlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmVkL2N1c3RvbS1maWVsZHMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQvcmVzcG9uc2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQvZXJyb3JzJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmVkL2Nvb2tpZS9lc29sdmUtY29va2llLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQvc29ydCc7XHJcblxyXG4vLyBTRU9cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmVkL3Nlbyc7XHJcblxyXG4vLyBHZW9jb2RlclxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQvZ2VvY29kZXInO1xyXG5cclxuLy8gQXNzZXRzXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NoYXJlZC9hc3NldHMnO1xyXG5cclxuLy8gU2Vzc2lvblxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXNzaW9uJztcclxuXHJcbi8vIEF1dGhcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvYXV0aCc7XHJcblxyXG4vLyBBY2NvdW50XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FjY291bnQnO1xyXG5cclxuLy8gQmFubmVyc1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9iYW5uZXJzJztcclxuXHJcbi8vIE1lbnVcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbWVudSc7XHJcblxyXG4vLyBOZXdzXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL25ld3MnO1xyXG5cclxuLy8gVG9waWNzXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RvcGljcyc7XHJcblxyXG4vLyBUYWdzXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhZ3MnO1xyXG5cclxuLy8gU3RvY2tcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc3RvY2snO1xyXG5cclxuLy8gQ2F0ZWdvcnkgVHJlZVxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jYXRlZ29yeS10cmVlJztcclxuXHJcbi8vIE1hbnVmYWN0dXJlcnNcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbWFudWZhY3R1cmVycyc7XHJcblxyXG4vLyBSYW5nZXNcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvcmFuZ2VzJztcclxuXHJcbi8vIFNwZWNpYWxzXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NwZWNpYWxzJztcclxuXHJcbi8vIENhcnRcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY2FydCc7XHJcblxyXG4vLyBQYXltZW50XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3BheW1lbnQnO1xyXG5cclxuLy8gU2hpcHBpbmdcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hpcHBpbmcnO1xyXG5cclxuLy8gTG9jYXRpb25zXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2xvY2F0aW9ucyc7XHJcblxyXG4vLyBFbnF1aXJ5XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2VucXVpcnknO1xyXG4iXX0=
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsc0NBQXNDLENBQUM7QUFFckQsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMsbUJBQW1CLENBQUM7QUFFbEMsTUFBTTtBQUNOLGNBQWMsa0JBQWtCLENBQUM7QUFFakMsV0FBVztBQUNYLGNBQWMsdUJBQXVCLENBQUM7QUFFdEMsU0FBUztBQUNULGNBQWMscUJBQXFCLENBQUM7QUFFcEMsVUFBVTtBQUNWLGNBQWMsZUFBZSxDQUFDO0FBRTlCLE9BQU87QUFDUCxjQUFjLFlBQVksQ0FBQztBQUUzQixVQUFVO0FBQ1YsY0FBYyxlQUFlLENBQUM7QUFFOUIsVUFBVTtBQUNWLGNBQWMsZUFBZSxDQUFDO0FBRTlCLE9BQU87QUFDUCxjQUFjLFlBQVksQ0FBQztBQUUzQixPQUFPO0FBQ1AsY0FBYyxZQUFZLENBQUM7QUFFM0IsU0FBUztBQUNULGNBQWMsY0FBYyxDQUFDO0FBRTdCLE9BQU87QUFDUCxjQUFjLFlBQVksQ0FBQztBQUUzQixRQUFRO0FBQ1IsY0FBYyxhQUFhLENBQUM7QUFFNUIsZ0JBQWdCO0FBQ2hCLGNBQWMscUJBQXFCLENBQUM7QUFFcEMsZ0JBQWdCO0FBQ2hCLGNBQWMscUJBQXFCLENBQUM7QUFFcEMsU0FBUztBQUNULGNBQWMsY0FBYyxDQUFDO0FBRTdCLFdBQVc7QUFDWCxjQUFjLGdCQUFnQixDQUFDO0FBRS9CLE9BQU87QUFDUCxjQUFjLFlBQVksQ0FBQztBQUUzQixVQUFVO0FBQ1YsY0FBYyxlQUFlLENBQUM7QUFFOUIsV0FBVztBQUNYLGNBQWMsZ0JBQWdCLENBQUM7QUFFL0IsWUFBWTtBQUNaLGNBQWMsaUJBQWlCLENBQUM7QUFFaEMsVUFBVTtBQUNWLGNBQWMsZUFBZSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIG5nLWVzb2x2ZS1jb25uZWN0XHJcbiAqL1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbmctZXNvbHZlLWNvbm5lY3QubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvZXNvbHZlLWNvbm5lY3QuY29uZmlnJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvZXNvbHZlLWNvbm5lY3QtY29uZmlnLmNvbnN0YW50JztcclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NoYXJlZC9lc29sdmUtbGlzdC5tb2RlbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NoYXJlZC9lc29sdmUtcmVzdWx0Lm1vZGVsJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmVkL2Vzb2x2ZS11cmwtdGFyZ2V0LnR5cGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQvY3VzdG9tLWZpZWxkcyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NoYXJlZC9maWx0ZXJzJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmVkL3Jlc3BvbnNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmVkL2Vycm9ycyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NoYXJlZC9jb29raWUvZXNvbHZlLWNvb2tpZS5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmVkL3NvcnQnO1xyXG5cclxuLy8gU0VPXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NoYXJlZC9zZW8nO1xyXG5cclxuLy8gR2VvY29kZXJcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmVkL2dlb2NvZGVyJztcclxuXHJcbi8vIEFzc2V0c1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQvYXNzZXRzJztcclxuXHJcbi8vIFNlc3Npb25cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2Vzc2lvbic7XHJcblxyXG4vLyBBdXRoXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2F1dGgnO1xyXG5cclxuLy8gQWNjb3VudFxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hY2NvdW50JztcclxuXHJcbi8vIEJhbm5lcnNcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvYmFubmVycyc7XHJcblxyXG4vLyBNZW51XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21lbnUnO1xyXG5cclxuLy8gTmV3c1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9uZXdzJztcclxuXHJcbi8vIFRvcGljc1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90b3BpY3MnO1xyXG5cclxuLy8gVGFnc1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWdzJztcclxuXHJcbi8vIFN0b2NrXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3N0b2NrJztcclxuXHJcbi8vIENhdGVnb3J5IFRyZWVcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY2F0ZWdvcnktdHJlZSc7XHJcblxyXG4vLyBNYW51ZmFjdHVyZXJzXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21hbnVmYWN0dXJlcnMnO1xyXG5cclxuLy8gUmFuZ2VzXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3Jhbmdlcyc7XHJcblxyXG4vLyBTcGVjaWFsc1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zcGVjaWFscyc7XHJcblxyXG4vLyBDYXJ0XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NhcnQnO1xyXG5cclxuLy8gUGF5bWVudFxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9wYXltZW50JztcclxuXHJcbi8vIFNoaXBwaW5nXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NoaXBwaW5nJztcclxuXHJcbi8vIExvY2F0aW9uc1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9sb2NhdGlvbnMnO1xyXG5cclxuLy8gRW5xdWlyeVxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9lbnF1aXJ5JztcclxuIl19