@guajiritos/general-autocomplete 0.1.7 → 0.1.9

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 (29) hide show
  1. package/esm2022/lib/guachos-general-autocomplete.component.mjs +29 -32
  2. package/esm2022/utils/interfaces/interfaces.mjs +2 -12
  3. package/esm2022/utils/pipes/i18n-field.pipe.mjs +8 -1
  4. package/esm2022/utils/pipes/pipes.module.mjs +10 -62
  5. package/esm2022/utils/pipes/resolve-property-path.pipe.mjs +11 -58
  6. package/esm2022/utils/services/autocomplete.service.mjs +39 -1
  7. package/esm2022/utils/services/utils.service.mjs +5 -28
  8. package/fesm2022/guajiritos-general-autocomplete.mjs +95 -281
  9. package/fesm2022/guajiritos-general-autocomplete.mjs.map +1 -1
  10. package/lib/guachos-general-autocomplete.component.d.ts +6 -11
  11. package/package.json +1 -1
  12. package/utils/interfaces/interfaces.d.ts +0 -11
  13. package/utils/pipes/i18n-field.pipe.d.ts +7 -0
  14. package/utils/pipes/pipes.module.d.ts +3 -10
  15. package/utils/pipes/resolve-property-path.pipe.d.ts +8 -17
  16. package/utils/services/autocomplete.service.d.ts +38 -0
  17. package/utils/services/utils.service.d.ts +4 -16
  18. package/esm2022/utils/pipes/duration.pipe.mjs +0 -18
  19. package/esm2022/utils/pipes/humanize-duration.pipe.mjs +0 -17
  20. package/esm2022/utils/pipes/ida-return.pipe.mjs +0 -23
  21. package/esm2022/utils/pipes/show-roles.pipe.mjs +0 -24
  22. package/esm2022/utils/pipes/show-segments.pipe.mjs +0 -24
  23. package/esm2022/utils/pipes/show-transport-types.pipe.mjs +0 -24
  24. package/utils/pipes/duration.pipe.d.ts +0 -8
  25. package/utils/pipes/humanize-duration.pipe.d.ts +0 -7
  26. package/utils/pipes/ida-return.pipe.d.ts +0 -8
  27. package/utils/pipes/show-roles.pipe.d.ts +0 -8
  28. package/utils/pipes/show-segments.pipe.d.ts +0 -8
  29. package/utils/pipes/show-transport-types.pipe.d.ts +0 -8
@@ -5,10 +5,22 @@ import merge from 'lodash.merge';
5
5
  import * as i0 from "@angular/core";
6
6
  import * as i1 from "@angular/common/http";
7
7
  export class AutocompleteService {
8
+ /**
9
+ * Constructor function for the class.
10
+ *
11
+ * @param {HttpClient} _httpClient - The HttpClient instance to be used by the class.
12
+ */
8
13
  constructor(_httpClient) {
9
14
  this._httpClient = _httpClient;
10
15
  this.httpOptions = {};
11
16
  }
17
+ /**
18
+ * Processes the parameters and returns a Promise that resolves with the filter object.
19
+ *
20
+ * @param {string[] | string | undefined} filters - The filters to process.
21
+ * @param {string} value - The value to process the filters with.
22
+ * @return {Promise<any>} A Promise that resolves with the filter object.
23
+ */
12
24
  processParams(filters, value) {
13
25
  return new Promise((resolve, reject) => {
14
26
  setTimeout(async () => {
@@ -46,6 +58,13 @@ export class AutocompleteService {
46
58
  }, 100);
47
59
  });
48
60
  }
61
+ /**
62
+ * Processes the filter string and returns the result.
63
+ *
64
+ * @param {string} filter - The filter string to process.
65
+ * @param {string} value - The value to use in the processing.
66
+ * @return {Promise<any>} - A promise that resolves to the processed result.
67
+ */
49
68
  async processFilterString(filter, value) {
50
69
  let f = {};
51
70
  const arrayFilters = filter?.split('[');
@@ -57,6 +76,13 @@ export class AutocompleteService {
57
76
  });
58
77
  return f;
59
78
  }
79
+ /**
80
+ * Creates object filters based on the given array and value.
81
+ *
82
+ * @param {string[]} array - The array of filters.
83
+ * @param {string} value - The value to be filtered.
84
+ * @return {Promise<any>} - A promise that resolves to the filtered object.
85
+ */
60
86
  async createObjectFilters(array, value) {
61
87
  for (let filter of array) {
62
88
  filter = filter?.replace(']', '');
@@ -74,6 +100,18 @@ export class AutocompleteService {
74
100
  }
75
101
  }
76
102
  }
103
+ /**
104
+ * Retrieves autocomplete suggestions based on the provided text and other optional parameters.
105
+ *
106
+ * @param {string} url - The URL to send the request to.
107
+ * @param {string} [text] - The text to use for autocomplete suggestions. Defaults to an empty string.
108
+ * @param {string[] | string} [field] - The field(s) to filter the autocomplete suggestions by.
109
+ * @param {RestrictionFilter[]} [restrictions] - The restriction filters to apply to the autocomplete suggestions.
110
+ * @param {string[]} [removeProperties] - The properties to remove from the autocomplete suggestions.
111
+ * @param {string} [order] - The order in which to retrieve the autocomplete suggestions.
112
+ * @param {ApiFormData} [bodyRequest] - The request body for the autocomplete suggestions.
113
+ * @return {Promise<Observable<any>>} - A promise that resolves to an observable containing the autocomplete suggestions.
114
+ */
77
115
  async getAutocompleteByText(url, text, field, restrictions, removeProperties, order, bodyRequest) {
78
116
  let httpParams = new HttpParams().set('offset', '0');
79
117
  httpParams = httpParams.append('limit', '20');
@@ -158,4 +196,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.1", ngImpor
158
196
  providedIn: 'root'
159
197
  }]
160
198
  }], ctorParameters: function () { return [{ type: i1.HttpClient }]; } });
161
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ndWFjaG9zLWdlbmVyYWwtYXV0b2NvbXBsZXRlL3NyYy91dGlscy9zZXJ2aWNlcy9hdXRvY29tcGxldGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFFLFVBQVUsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQzVELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ25DLE9BQU8sS0FBSyxNQUFNLGNBQWMsQ0FBQzs7O0FBUWpDLE1BQU0sT0FBTyxtQkFBbUI7SUFDNUIsWUFDWSxXQUF1QjtRQUF2QixnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQUkzQixnQkFBVyxHQUFHLEVBQUUsQ0FBQztJQUZ6QixDQUFDO0lBSU8sYUFBYSxDQUFDLE9BQXNDLEVBQUUsS0FBYTtRQUN2RSxPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQ25DLFVBQVUsQ0FBQyxLQUFLLElBQUksRUFBRTtnQkFDbEIsSUFBSSxNQUFNLEdBQUcsRUFBRSxDQUFDO2dCQUVoQixJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUU7b0JBQ3hCLEtBQUssTUFBTSxDQUFDLElBQUksT0FBTyxFQUFFO3dCQUNyQixNQUFNLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUU7NEJBQ3hELElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxNQUFNLEVBQUU7Z0NBQzdCLEtBQUssQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7NkJBQ3ZCO2lD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LEdBQUcsQ0FBTSxHQUFHLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQzthQUMvQixJQUFJLENBQ0QsR0FBRyxDQUFDLENBQUMsTUFBVyxFQUFFLEVBQUU7WUFDaEIsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRTtnQkFDNUIsZ0JBQWdCLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBZ0IsRUFBRSxFQUFFO29CQUMzQyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDMUIsQ0FBQyxDQUFDLENBQUM7WUFDUCxDQUFDLENBQUMsQ0FBQztZQUNILE9BQU8sTUFBTSxDQUFDO1FBQ2xCLENBQUMsQ0FBQyxDQUNMLENBQUM7SUFDVixDQUFDOzhHQS9KUSxtQkFBbUI7a0hBQW5CLG1CQUFtQixjQUZoQixNQUFNOzsyRkFFVCxtQkFBbUI7a0JBSC9CLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtIdHRwQ2xpZW50LCBIdHRwUGFyYW1zfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7bWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCBtZXJnZSBmcm9tICdsb2Rhc2gubWVyZ2UnO1xyXG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHtBcGlGb3JtRGF0YSwgUmVzdHJpY3Rpb25GaWx0ZXJ9IGZyb20gJy4uL2ludGVyZmFjZXMvaW50ZXJmYWNlcyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEF1dG9jb21wbGV0ZVNlcnZpY2Uge1xyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJpdmF0ZSBfaHR0cENsaWVudDogSHR0cENsaWVudFxyXG4gICAgKSB7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBodHRwT3B0aW9ucyA9IHt9O1xyXG5cclxuICAgIHByaXZhdGUgcHJvY2Vzc1BhcmFtcyhmaWx0ZXJzOiBzdHJpbmdbXSB8IHN0cmluZyB8IHVuZGVmaW5lZCwgdmFsdWU6IHN0cmluZyk6IFByb21pc2U8YW55PiB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgICAgICAgICAgc2V0VGltZW91dChhc3luYyAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBsZXQgZmlsdGVyID0ge307XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZmlsdGVycykpIHtcclxuICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGYgb2YgZmlsdGVycykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLnByb2Nlc3NGaWx0ZXJTdHJpbmcoZiwgdmFsdWUpLnRoZW4oKHJlc3A6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKE9iamVjdC5rZXlzKGZpbHRlcik/Lmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lcmdlKGZpbHRlciwgcmVzcCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlciA9IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uZmlsdGVyLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5yZXNwXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZiA9PT0gZmlsdGVyc1tmaWx0ZXJzPy5sZW5ndGggLSAxXSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoZmlsdGVyKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgZmlsdGVycyA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLnByb2Nlc3NGaWx0ZXJTdHJpbmcoZmlsdGVycywgdmFsdWUpLnRoZW4oKHJlc3A6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXIgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5maWx0ZXIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5yZXNwXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKGZpbHRlcik7XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHJlamVjdChudWxsKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSwgMTAwKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGFzeW5jIHByb2Nlc3NGaWx0ZXJTdHJpbmcoZmlsdGVyOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpOiBQcm9taXNlPGFueT4ge1xyXG4gICAgICAgIGxldCBmOiBhbnkgPSB7fTtcclxuXHJcbiAgICAgICAgY29uc3QgYXJyYXlGaWx0ZXJzOiBzdHJpbmdbXSA9IGZpbHRlcj8uc3BsaXQoJ1snKTtcclxuXHJcbiAgICAgICAgaWYgKGFycmF5RmlsdGVycz8uZmluZEluZGV4KChhOiBzdHJpbmcpID0+IGEgPT09ICdmaWx0ZXInKSA+PSAwKSB7XHJcbiAgICAgICAgICAgIGFycmF5RmlsdGVycz8uc3BsaWNlKDAsIDEpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgYXdhaXQgdGhpcy5jcmVhdGVPYmplY3RGaWx0ZXJzKGFycmF5RmlsdGVycywgdmFsdWUpLnRoZW4oKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICBmID0gZGF0YTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgcmV0dXJuIGY7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBhc3luYyBjcmVhdGVPYmplY3RGaWx0ZXJzKGFycmF5OiBzdHJpbmdbXSwgdmFsdWU6IHN0cmluZyk6IFByb21pc2U8YW55PiB7XHJcbiAgICAgICAgZm9yIChsZXQgZmlsdGVyIG9mIGFycmF5KSB7XHJcbiAgICAgICAgICAgIGZpbHRlciA9IGZpbHRlcj8ucmVwbGFjZSgnXScsICcnKTtcclxuXHJcbiAgICAgICAgICAgIGlmIChhcnJheS5sZW5ndGggPiAxKSB7XHJcbiAgICAgICAgICAgICAgICBhcnJheS5zcGxpY2UoMCwgMSk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4ge1tmaWx0ZXJdOiBhd2FpdCB0aGlzLmNyZWF0ZU9iamVjdEZpbHRlcnMoYXJyYXksIHZhbHVlKX07XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZmlsdGVyID09PSAnJGxpa2UnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtbZmlsdGVyXTogJyUnICsgdmFsdWUgKyAnJSd9O1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1tmaWx0ZXJdOiB2YWx1ZX07XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFzeW5jIGdldEF1dG9jb21wbGV0ZUJ5VGV4dCh1cmw6IHN0cmluZywgdGV4dD86IHN0cmluZywgZmllbGQ/OiBzdHJpbmdbXSB8IHN0cmluZywgcmVzdHJpY3Rpb25zPzogUmVzdHJpY3Rpb25GaWx0ZXJbXSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVtb3ZlUHJvcGVydGllcz86IHN0cmluZ1tdLCBvcmRlcj86IHN0cmluZywgYm9keVJlcXVlc3Q/OiBBcGlGb3JtRGF0YSk6IFByb21pc2U8T2JzZXJ2YWJsZTxhbnk+PiB7XHJcblxyXG4gICAgICAgIGxldCBodHRwUGFyYW1zOiBIdHRwUGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKS5zZXQoJ29mZnNldCcsICcwJyk7XHJcbiAgICAgICAgaHR0cFBhcmFtcyA9IGh0dHBQYXJhbXMuYXBwZW5kKCdsaW1pdCcsICcyMCcpO1xyXG5cclxuICAgICAgICBpZiAob3JkZXIpIHtcclxuICAgICAgICAgICAgaHR0cFBhcmFtcyA9IGh0dHBQYXJhbXMuYXBwZW5kKCdvcmRlcicsIG9yZGVyKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICghdGV4dCkge1xyXG4gICAgICAgICAgICB0ZXh0ID0gJyc7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoYm9keVJlcXVlc3QpIHtcclxuICAgICAgICAgICAgbGV0IGJvZHk6IEFwaUZvcm1EYXRhID0ge307XHJcbiAgICAgICAgICAgIGlmICh0ZXh0ICYmIHRleHQgIT09ICcnKSB7XHJcbiAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLnByb2Nlc3NQYXJhbXMoZmllbGQsIHRleHQpXHJcbiAgICAgICAgICAgICAgICAgICAgLnRoZW4oKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBib2R5ID0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uYm9keVJlcXVlc3QsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXI6IGRhdGFcclxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGJvZHkgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGJvZHlSZXF1ZXN0KSk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmIChyZXN0cmljdGlvbnM/Lmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgZm9yIChsZXQgciBvZiByZXN0cmljdGlvbnMpIHtcclxuICAgICAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLnByb2Nlc3NQYXJhbXMocj8uZmlsdGVyLCByPy52YWx1ZT8udG9TdHJpbmcoKSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgLnRoZW4oKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGZpbHRlcnNBdXggPSB7Li4uYm9keT8uZmlsdGVyfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVyZ2UoZmlsdGVyc0F1eCwgZGF0YSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib2R5ID0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLmJvZHksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyOiBmaWx0ZXJzQXV4XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaHR0cFBhcmFtcyA9IGh0dHBQYXJhbXMuc2V0KCdmb3JtJywgSlNPTi5zdHJpbmdpZnkoYm9keSkpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGh0dHBQYXJhbXMgPSBodHRwUGFyYW1zLmFwcGVuZCgnZm9ybScsIEpTT04uc3RyaW5naWZ5KGJvZHkpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGlmICh0ZXh0ICYmIHRleHQgIT09ICcnKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShmaWVsZCkpIHtcclxuICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGYgb2YgZmllbGQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaHR0cFBhcmFtcyA9IGh0dHBQYXJhbXMuYXBwZW5kKGYsICclJyArIHRleHQgKyAnJScpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGZpZWxkPy5pbmNsdWRlcygnJGxpa2UnKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBodHRwUGFyYW1zID0gaHR0cFBhcmFtcy5hcHBlbmQoZmllbGQsICclJyArIHRleHQgKyAnJScpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZmllbGQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaHR0cFBhcmFtcyA9IGh0dHBQYXJhbXMuYXBwZW5kKGZpZWxkLCB0ZXh0KTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHJlc3RyaWN0aW9ucz8uZm9yRWFjaCgocmVzdHJpY3Rpb246IFJlc3RyaWN0aW9uRmlsdGVyKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAocmVzdHJpY3Rpb24/LnZhbHVlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaHR0cFBhcmFtcyA9IGh0dHBQYXJhbXMuYXBwZW5kKHJlc3RyaWN0aW9uPy5maWx0ZXIsIHJlc3RyaWN0aW9uLnZhbHVlPy50b1N0cmluZygpKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmh0dHBPcHRpb25zID0ge3BhcmFtczogaHR0cFBhcmFtc307XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLl9odHRwQ2xpZW50XHJcbiAgICAgICAgICAgIC5nZXQ8YW55Pih1cmwsIHRoaXMuaHR0cE9wdGlvbnMpXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgbWFwKChyZXN1bHQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdD8uZGF0YT8ubWFwKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVtb3ZlUHJvcGVydGllcz8uZm9yRWFjaCgocHJvcGVydHk6IHN0cmluZykgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVsZXRlIGl0ZW1bcHJvcGVydHldO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgKTtcclxuICAgIH1cclxufVxyXG4iXX0=
199
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ndWFjaG9zLWdlbmVyYWwtYXV0b2NvbXBsZXRlL3NyYy91dGlscy9zZXJ2aWNlcy9hdXRvY29tcGxldGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFFLFVBQVUsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQzVELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ25DLE9BQU8sS0FBSyxNQUFNLGNBQWMsQ0FBQzs7O0FBUWpDLE1BQU0sT0FBTyxtQkFBbUI7SUFDNUI7Ozs7T0FJRztJQUNILFlBQ1ksV0FBdUI7UUFBdkIsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFJM0IsZ0JBQVcsR0FBRyxFQUFFLENBQUM7SUFGekIsQ0FBQztJQUlEOzs7Ozs7T0FNRztJQUNLLGFBQWEsQ0FBQyxPQUFzQyxFQUFFLEtBQWE7UUFDdkUsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUNuQyxVQUFVLENBQUMsS0FBSyxJQUFJLEVBQUU7Z0JBQ2xCLElBQUksTUFBTSxHQUFHLEVBQUUsQ0FBQztnQkFFaEIsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFO29CQUN4QixLQUFLLE1BQU0sQ0FBQyxJQUFJLE9BQU8sRUFBRTt3QkFDckIsTUFBTSxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFOzRCQUN4RCxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxFQUFFO2dDQUM3QixLQUFLLENBQUMsTUFBTSxF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SSxDQUFDLFdBQVcsR0FBRyxFQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUMsQ0FBQztRQUV4QyxPQUFPLElBQUksQ0FBQyxXQUFXO2FBQ2xCLEdBQUcsQ0FBTSxHQUFHLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQzthQUMvQixJQUFJLENBQ0QsR0FBRyxDQUFDLENBQUMsTUFBVyxFQUFFLEVBQUU7WUFDaEIsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRTtnQkFDNUIsZ0JBQWdCLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBZ0IsRUFBRSxFQUFFO29CQUMzQyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDMUIsQ0FBQyxDQUFDLENBQUM7WUFDUCxDQUFDLENBQUMsQ0FBQztZQUNILE9BQU8sTUFBTSxDQUFDO1FBQ2xCLENBQUMsQ0FBQyxDQUNMLENBQUM7SUFDVixDQUFDOzhHQXJNUSxtQkFBbUI7a0hBQW5CLG1CQUFtQixjQUZoQixNQUFNOzsyRkFFVCxtQkFBbUI7a0JBSC9CLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtIdHRwQ2xpZW50LCBIdHRwUGFyYW1zfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7bWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCBtZXJnZSBmcm9tICdsb2Rhc2gubWVyZ2UnO1xyXG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHtBcGlGb3JtRGF0YSwgUmVzdHJpY3Rpb25GaWx0ZXJ9IGZyb20gJy4uL2ludGVyZmFjZXMvaW50ZXJmYWNlcyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEF1dG9jb21wbGV0ZVNlcnZpY2Uge1xyXG4gICAgLyoqXHJcbiAgICAgKiBDb25zdHJ1Y3RvciBmdW5jdGlvbiBmb3IgdGhlIGNsYXNzLlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7SHR0cENsaWVudH0gX2h0dHBDbGllbnQgLSBUaGUgSHR0cENsaWVudCBpbnN0YW5jZSB0byBiZSB1c2VkIGJ5IHRoZSBjbGFzcy5cclxuICAgICAqL1xyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJpdmF0ZSBfaHR0cENsaWVudDogSHR0cENsaWVudFxyXG4gICAgKSB7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBodHRwT3B0aW9ucyA9IHt9O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogUHJvY2Vzc2VzIHRoZSBwYXJhbWV0ZXJzIGFuZCByZXR1cm5zIGEgUHJvbWlzZSB0aGF0IHJlc29sdmVzIHdpdGggdGhlIGZpbHRlciBvYmplY3QuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtzdHJpbmdbXSB8IHN0cmluZyB8IHVuZGVmaW5lZH0gZmlsdGVycyAtIFRoZSBmaWx0ZXJzIHRvIHByb2Nlc3MuXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gdmFsdWUgLSBUaGUgdmFsdWUgdG8gcHJvY2VzcyB0aGUgZmlsdGVycyB3aXRoLlxyXG4gICAgICogQHJldHVybiB7UHJvbWlzZTxhbnk+fSBBIFByb21pc2UgdGhhdCByZXNvbHZlcyB3aXRoIHRoZSBmaWx0ZXIgb2JqZWN0LlxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIHByb2Nlc3NQYXJhbXMoZmlsdGVyczogc3RyaW5nW10gfCBzdHJpbmcgfCB1bmRlZmluZWQsIHZhbHVlOiBzdHJpbmcpOiBQcm9taXNlPGFueT4ge1xyXG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoYXN5bmMgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgbGV0IGZpbHRlciA9IHt9O1xyXG5cclxuICAgICAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGZpbHRlcnMpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBmIG9mIGZpbHRlcnMpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5wcm9jZXNzRmlsdGVyU3RyaW5nKGYsIHZhbHVlKS50aGVuKChyZXNwOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChPYmplY3Qua2V5cyhmaWx0ZXIpPy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXJnZShmaWx0ZXIsIHJlc3ApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXIgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLmZpbHRlcixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4ucmVzcFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGYgPT09IGZpbHRlcnNbZmlsdGVycz8ubGVuZ3RoIC0gMV0pIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKGZpbHRlcik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGZpbHRlcnMgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5wcm9jZXNzRmlsdGVyU3RyaW5nKGZpbHRlcnMsIHZhbHVlKS50aGVuKChyZXNwOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyID0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uZmlsdGVyLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4ucmVzcFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShmaWx0ZXIpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICByZWplY3QobnVsbCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0sIDEwMCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQcm9jZXNzZXMgdGhlIGZpbHRlciBzdHJpbmcgYW5kIHJldHVybnMgdGhlIHJlc3VsdC5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gZmlsdGVyIC0gVGhlIGZpbHRlciBzdHJpbmcgdG8gcHJvY2Vzcy5cclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZSAtIFRoZSB2YWx1ZSB0byB1c2UgaW4gdGhlIHByb2Nlc3NpbmcuXHJcbiAgICAgKiBAcmV0dXJuIHtQcm9taXNlPGFueT59IC0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgdG8gdGhlIHByb2Nlc3NlZCByZXN1bHQuXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgYXN5bmMgcHJvY2Vzc0ZpbHRlclN0cmluZyhmaWx0ZXI6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IFByb21pc2U8YW55PiB7XHJcbiAgICAgICAgbGV0IGY6IGFueSA9IHt9O1xyXG5cclxuICAgICAgICBjb25zdCBhcnJheUZpbHRlcnM6IHN0cmluZ1tdID0gZmlsdGVyPy5zcGxpdCgnWycpO1xyXG5cclxuICAgICAgICBpZiAoYXJyYXlGaWx0ZXJzPy5maW5kSW5kZXgoKGE6IHN0cmluZykgPT4gYSA9PT0gJ2ZpbHRlcicpID49IDApIHtcclxuICAgICAgICAgICAgYXJyYXlGaWx0ZXJzPy5zcGxpY2UoMCwgMSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBhd2FpdCB0aGlzLmNyZWF0ZU9iamVjdEZpbHRlcnMoYXJyYXlGaWx0ZXJzLCB2YWx1ZSkudGhlbigoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIGYgPSBkYXRhO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICByZXR1cm4gZjtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIENyZWF0ZXMgb2JqZWN0IGZpbHRlcnMgYmFzZWQgb24gdGhlIGdpdmVuIGFycmF5IGFuZCB2YWx1ZS5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ1tdfSBhcnJheSAtIFRoZSBhcnJheSBvZiBmaWx0ZXJzLlxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlIC0gVGhlIHZhbHVlIHRvIGJlIGZpbHRlcmVkLlxyXG4gICAgICogQHJldHVybiB7UHJvbWlzZTxhbnk+fSAtIEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHRvIHRoZSBmaWx0ZXJlZCBvYmplY3QuXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgYXN5bmMgY3JlYXRlT2JqZWN0RmlsdGVycyhhcnJheTogc3RyaW5nW10sIHZhbHVlOiBzdHJpbmcpOiBQcm9taXNlPGFueT4ge1xyXG4gICAgICAgIGZvciAobGV0IGZpbHRlciBvZiBhcnJheSkge1xyXG4gICAgICAgICAgICBmaWx0ZXIgPSBmaWx0ZXI/LnJlcGxhY2UoJ10nLCAnJyk7XHJcblxyXG4gICAgICAgICAgICBpZiAoYXJyYXkubGVuZ3RoID4gMSkge1xyXG4gICAgICAgICAgICAgICAgYXJyYXkuc3BsaWNlKDAsIDEpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHtbZmlsdGVyXTogYXdhaXQgdGhpcy5jcmVhdGVPYmplY3RGaWx0ZXJzKGFycmF5LCB2YWx1ZSl9O1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgaWYgKGZpbHRlciA9PT0gJyRsaWtlJykge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7W2ZpbHRlcl06ICclJyArIHZhbHVlICsgJyUnfTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtbZmlsdGVyXTogdmFsdWV9O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0cmlldmVzIGF1dG9jb21wbGV0ZSBzdWdnZXN0aW9ucyBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgdGV4dCBhbmQgb3RoZXIgb3B0aW9uYWwgcGFyYW1ldGVycy5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gdXJsIC0gVGhlIFVSTCB0byBzZW5kIHRoZSByZXF1ZXN0IHRvLlxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFt0ZXh0XSAtIFRoZSB0ZXh0IHRvIHVzZSBmb3IgYXV0b2NvbXBsZXRlIHN1Z2dlc3Rpb25zLiBEZWZhdWx0cyB0byBhbiBlbXB0eSBzdHJpbmcuXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ1tdIHwgc3RyaW5nfSBbZmllbGRdIC0gVGhlIGZpZWxkKHMpIHRvIGZpbHRlciB0aGUgYXV0b2NvbXBsZXRlIHN1Z2dlc3Rpb25zIGJ5LlxyXG4gICAgICogQHBhcmFtIHtSZXN0cmljdGlvbkZpbHRlcltdfSBbcmVzdHJpY3Rpb25zXSAtIFRoZSByZXN0cmljdGlvbiBmaWx0ZXJzIHRvIGFwcGx5IHRvIHRoZSBhdXRvY29tcGxldGUgc3VnZ2VzdGlvbnMuXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ1tdfSBbcmVtb3ZlUHJvcGVydGllc10gLSBUaGUgcHJvcGVydGllcyB0byByZW1vdmUgZnJvbSB0aGUgYXV0b2NvbXBsZXRlIHN1Z2dlc3Rpb25zLlxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtvcmRlcl0gLSBUaGUgb3JkZXIgaW4gd2hpY2ggdG8gcmV0cmlldmUgdGhlIGF1dG9jb21wbGV0ZSBzdWdnZXN0aW9ucy5cclxuICAgICAqIEBwYXJhbSB7QXBpRm9ybURhdGF9IFtib2R5UmVxdWVzdF0gLSBUaGUgcmVxdWVzdCBib2R5IGZvciB0aGUgYXV0b2NvbXBsZXRlIHN1Z2dlc3Rpb25zLlxyXG4gICAgICogQHJldHVybiB7UHJvbWlzZTxPYnNlcnZhYmxlPGFueT4+fSAtIEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHRvIGFuIG9ic2VydmFibGUgY29udGFpbmluZyB0aGUgYXV0b2NvbXBsZXRlIHN1Z2dlc3Rpb25zLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgYXN5bmMgZ2V0QXV0b2NvbXBsZXRlQnlUZXh0KHVybDogc3RyaW5nLCB0ZXh0Pzogc3RyaW5nLCBmaWVsZD86IHN0cmluZ1tdIHwgc3RyaW5nLCByZXN0cmljdGlvbnM/OiBSZXN0cmljdGlvbkZpbHRlcltdLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZW1vdmVQcm9wZXJ0aWVzPzogc3RyaW5nW10sIG9yZGVyPzogc3RyaW5nLCBib2R5UmVxdWVzdD86IEFwaUZvcm1EYXRhKTogUHJvbWlzZTxPYnNlcnZhYmxlPGFueT4+IHtcclxuXHJcbiAgICAgICAgbGV0IGh0dHBQYXJhbXM6IEh0dHBQYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpLnNldCgnb2Zmc2V0JywgJzAnKTtcclxuICAgICAgICBodHRwUGFyYW1zID0gaHR0cFBhcmFtcy5hcHBlbmQoJ2xpbWl0JywgJzIwJyk7XHJcblxyXG4gICAgICAgIGlmIChvcmRlcikge1xyXG4gICAgICAgICAgICBodHRwUGFyYW1zID0gaHR0cFBhcmFtcy5hcHBlbmQoJ29yZGVyJywgb3JkZXIpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKCF0ZXh0KSB7XHJcbiAgICAgICAgICAgIHRleHQgPSAnJztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChib2R5UmVxdWVzdCkge1xyXG4gICAgICAgICAgICBsZXQgYm9keTogQXBpRm9ybURhdGEgPSB7fTtcclxuICAgICAgICAgICAgaWYgKHRleHQgJiYgdGV4dCAhPT0gJycpIHtcclxuICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMucHJvY2Vzc1BhcmFtcyhmaWVsZCwgdGV4dClcclxuICAgICAgICAgICAgICAgICAgICAudGhlbigoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvZHkgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5ib2R5UmVxdWVzdCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcjogZGF0YVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgYm9keSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoYm9keVJlcXVlc3QpKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKHJlc3RyaWN0aW9ucz8ubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICBmb3IgKGxldCByIG9mIHJlc3RyaWN0aW9ucykge1xyXG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMucHJvY2Vzc1BhcmFtcyhyPy5maWx0ZXIsIHI/LnZhbHVlPy50b1N0cmluZygpKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAudGhlbigoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZmlsdGVyc0F1eCA9IHsuLi5ib2R5Py5maWx0ZXJ9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXJnZShmaWx0ZXJzQXV4LCBkYXRhKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvZHkgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uYm9keSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXI6IGZpbHRlcnNBdXhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBodHRwUGFyYW1zID0gaHR0cFBhcmFtcy5zZXQoJ2Zvcm0nLCBKU09OLnN0cmluZ2lmeShib2R5KSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgaHR0cFBhcmFtcyA9IGh0dHBQYXJhbXMuYXBwZW5kKCdmb3JtJywgSlNPTi5zdHJpbmdpZnkoYm9keSkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKHRleHQgJiYgdGV4dCAhPT0gJycpIHtcclxuICAgICAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGZpZWxkKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgZiBvZiBmaWVsZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBodHRwUGFyYW1zID0gaHR0cFBhcmFtcy5hcHBlbmQoZiwgJyUnICsgdGV4dCArICclJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoZmllbGQ/LmluY2x1ZGVzKCckbGlrZScpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGh0dHBQYXJhbXMgPSBodHRwUGFyYW1zLmFwcGVuZChmaWVsZCwgJyUnICsgdGV4dCArICclJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChmaWVsZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBodHRwUGFyYW1zID0gaHR0cFBhcmFtcy5hcHBlbmQoZmllbGQsIHRleHQpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgcmVzdHJpY3Rpb25zPy5mb3JFYWNoKChyZXN0cmljdGlvbjogUmVzdHJpY3Rpb25GaWx0ZXIpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChyZXN0cmljdGlvbj8udmFsdWUpIHtcclxuICAgICAgICAgICAgICAgICAgICBodHRwUGFyYW1zID0gaHR0cFBhcmFtcy5hcHBlbmQocmVzdHJpY3Rpb24/LmZpbHRlciwgcmVzdHJpY3Rpb24udmFsdWU/LnRvU3RyaW5nKCkpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuaHR0cE9wdGlvbnMgPSB7cGFyYW1zOiBodHRwUGFyYW1zfTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2h0dHBDbGllbnRcclxuICAgICAgICAgICAgLmdldDxhbnk+KHVybCwgdGhpcy5odHRwT3B0aW9ucylcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICBtYXAoKHJlc3VsdDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0Py5kYXRhPy5tYXAoKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZW1vdmVQcm9wZXJ0aWVzPy5mb3JFYWNoKChwcm9wZXJ0eTogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWxldGUgaXRlbVtwcm9wZXJ0eV07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICApO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -2,35 +2,12 @@ import { Injectable } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  export class UtilsService {
4
4
  /**
5
- * Convierte el tiempo pasado por parámetro en horas y minutos
5
+ * Resolves the value of a property in an object by providing a path.
6
6
  *
7
- * @param time - Tiempo
8
- * @returns Devuelve las horas y minutos
7
+ * @param {any} obj - The object to traverse.
8
+ * @param {string[]} path - An array of strings representing the path to the desired property.
9
+ * @return {any} The value of the property at the given path, or null if the path is invalid.
9
10
  */
10
- static getTime(time) {
11
- const hours = parseInt(Number(time) / 3600 + '', 10);
12
- time = Number(time) - (hours * 3600);
13
- const minutes = parseInt(Number(time) / 60 + '', 10);
14
- return { hours, minutes };
15
- }
16
- /**
17
- * Devuelve el tiempo en formato 'hh:mm'
18
- *
19
- * @param time - Tiempo
20
- */
21
- static getTimePretty(time) {
22
- const { hours, minutes } = UtilsService.getTime(time);
23
- return (hours < 10 ? '0' + hours : hours) + ':' + (minutes < 10 ? '0' + minutes : minutes);
24
- }
25
- /**
26
- * Devuelve el tiempo en formato 'hhh : mmm'
27
- *
28
- * @param time - Tiempo
29
- */
30
- static humanizeDuration(time) {
31
- const { hours, minutes } = UtilsService.getTime(time);
32
- return (hours < 10 ? '0' + hours : hours) + 'h : ' + (minutes < 10 ? '0' + minutes : minutes) + 'm';
33
- }
34
11
  static resolvePropertyByPath(obj, path) {
35
12
  return path.reduce((prev, curr) => {
36
13
  return prev ? prev[curr] : null;
@@ -45,4 +22,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.1", ngImpor
45
22
  providedIn: 'root'
46
23
  }]
47
24
  }] });
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2d1YWNob3MtZ2VuZXJhbC1hdXRvY29tcGxldGUvc3JjL3V0aWxzL3NlcnZpY2VzL3V0aWxzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQzs7QUFLekMsTUFBTSxPQUFPLFlBQVk7SUFDckI7Ozs7O09BS0c7SUFDSyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQXFCO1FBQ3hDLE1BQU0sS0FBSyxHQUFXLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUM3RCxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxDQUFDO1FBQ3JDLE1BQU0sT0FBTyxHQUFXLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUU3RCxPQUFPLEVBQUMsS0FBSyxFQUFFLE9BQU8sRUFBQyxDQUFBO0lBQzNCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFZO1FBQ3BDLE1BQU0sRUFBQyxLQUFLLEVBQUUsT0FBTyxFQUFDLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVwRCxPQUFPLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDL0YsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsSUFBcUI7UUFDaEQsTUFBTSxFQUFDLEtBQUssRUFBRSxPQUFPLEVBQUMsR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXBELE9BQU8sQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxNQUFNLEdBQUcsQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxHQUFHLENBQUM7SUFDeEcsQ0FBQztJQUVNLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxHQUFRLEVBQUUsSUFBYztRQUN4RCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBWSxFQUFFLEVBQUU7WUFDdEMsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ3BDLENBQUMsRUFBRSxHQUFHLElBQUksSUFBSSxDQUFDLENBQUM7SUFDcEIsQ0FBQzs4R0F6Q1EsWUFBWTtrSEFBWixZQUFZLGNBRlQsTUFBTTs7MkZBRVQsWUFBWTtrQkFIeEIsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBVdGlsc1NlcnZpY2Uge1xyXG4gICAgLyoqXHJcbiAgICAgKiBDb252aWVydGUgZWwgdGllbXBvIHBhc2FkbyBwb3IgcGFyw6FtZXRybyBlbiBob3JhcyB5IG1pbnV0b3NcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gdGltZSAtIFRpZW1wb1xyXG4gICAgICogQHJldHVybnMgRGV2dWVsdmUgbGFzIGhvcmFzIHkgbWludXRvc1xyXG4gICAgICovXHJcbiAgICBwcml2YXRlIHN0YXRpYyBnZXRUaW1lKHRpbWU6IG51bWJlciB8IHN0cmluZyk6IHsgaG91cnM6IG51bWJlcjsgbWludXRlczogbnVtYmVyIH0ge1xyXG4gICAgICAgIGNvbnN0IGhvdXJzOiBudW1iZXIgPSBwYXJzZUludChOdW1iZXIodGltZSkgLyAzNjAwICsgJycsIDEwKTtcclxuICAgICAgICB0aW1lID0gTnVtYmVyKHRpbWUpIC0gKGhvdXJzICogMzYwMCk7XHJcbiAgICAgICAgY29uc3QgbWludXRlczogbnVtYmVyID0gcGFyc2VJbnQoTnVtYmVyKHRpbWUpIC8gNjAgKyAnJywgMTApO1xyXG5cclxuICAgICAgICByZXR1cm4ge2hvdXJzLCBtaW51dGVzfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRGV2dWVsdmUgZWwgdGllbXBvIGVuIGZvcm1hdG8gJ2hoOm1tJ1xyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB0aW1lIC0gVGllbXBvXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgZ2V0VGltZVByZXR0eSh0aW1lOiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgICAgIGNvbnN0IHtob3VycywgbWludXRlc30gPSBVdGlsc1NlcnZpY2UuZ2V0VGltZSh0aW1lKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIChob3VycyA8IDEwID8gJzAnICsgaG91cnMgOiBob3VycykgKyAnOicgKyAobWludXRlcyA8IDEwID8gJzAnICsgbWludXRlcyA6IG1pbnV0ZXMpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRGV2dWVsdmUgZWwgdGllbXBvIGVuIGZvcm1hdG8gJ2hoaCA6IG1tbSdcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gdGltZSAtIFRpZW1wb1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc3RhdGljIGh1bWFuaXplRHVyYXRpb24odGltZTogbnVtYmVyIHwgc3RyaW5nKTogc3RyaW5nIHtcclxuICAgICAgICBjb25zdCB7aG91cnMsIG1pbnV0ZXN9ID0gVXRpbHNTZXJ2aWNlLmdldFRpbWUodGltZSk7XHJcblxyXG4gICAgICAgIHJldHVybiAoaG91cnMgPCAxMCA/ICcwJyArIGhvdXJzIDogaG91cnMpICsgJ2ggOiAnICsgKG1pbnV0ZXMgPCAxMCA/ICcwJyArIG1pbnV0ZXMgOiBtaW51dGVzKSArICdtJztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIHJlc29sdmVQcm9wZXJ0eUJ5UGF0aChvYmo6IGFueSwgcGF0aDogc3RyaW5nW10pOiBhbnkge1xyXG4gICAgICAgIHJldHVybiBwYXRoLnJlZHVjZSgocHJldiwgY3Vycjogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiBwcmV2ID8gcHJldltjdXJyXSA6IG51bGw7XHJcbiAgICAgICAgfSwgb2JqIHx8IHNlbGYpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2d1YWNob3MtZ2VuZXJhbC1hdXRvY29tcGxldGUvc3JjL3V0aWxzL3NlcnZpY2VzL3V0aWxzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQzs7QUFLekMsTUFBTSxPQUFPLFlBQVk7SUFDckI7Ozs7OztPQU1HO0lBQ0ksTUFBTSxDQUFDLHFCQUFxQixDQUFDLEdBQVEsRUFBRSxJQUFjO1FBQ3hELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxJQUFZLEVBQUUsRUFBRTtZQUN0QyxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDcEMsQ0FBQyxFQUFFLEdBQUcsSUFBSSxJQUFJLENBQUMsQ0FBQztJQUNwQixDQUFDOzhHQVpRLFlBQVk7a0hBQVosWUFBWSxjQUZULE1BQU07OzJGQUVULFlBQVk7a0JBSHhCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgVXRpbHNTZXJ2aWNlIHtcclxuICAgIC8qKlxyXG4gICAgICogUmVzb2x2ZXMgdGhlIHZhbHVlIG9mIGEgcHJvcGVydHkgaW4gYW4gb2JqZWN0IGJ5IHByb3ZpZGluZyBhIHBhdGguXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHthbnl9IG9iaiAtIFRoZSBvYmplY3QgdG8gdHJhdmVyc2UuXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ1tdfSBwYXRoIC0gQW4gYXJyYXkgb2Ygc3RyaW5ncyByZXByZXNlbnRpbmcgdGhlIHBhdGggdG8gdGhlIGRlc2lyZWQgcHJvcGVydHkuXHJcbiAgICAgKiBAcmV0dXJuIHthbnl9IFRoZSB2YWx1ZSBvZiB0aGUgcHJvcGVydHkgYXQgdGhlIGdpdmVuIHBhdGgsIG9yIG51bGwgaWYgdGhlIHBhdGggaXMgaW52YWxpZC5cclxuICAgICAqL1xyXG4gICAgcHVibGljIHN0YXRpYyByZXNvbHZlUHJvcGVydHlCeVBhdGgob2JqOiBhbnksIHBhdGg6IHN0cmluZ1tdKTogYW55IHtcclxuICAgICAgICByZXR1cm4gcGF0aC5yZWR1Y2UoKHByZXYsIGN1cnI6IHN0cmluZykgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gcHJldiA/IHByZXZbY3Vycl0gOiBudWxsO1xyXG4gICAgICAgIH0sIG9iaiB8fCBzZWxmKTtcclxuICAgIH1cclxufVxyXG4iXX0=