@esolve/ng-esolve-connect 0.32.1 → 0.33.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.
package/esm2020/index.mjs CHANGED
@@ -7,6 +7,7 @@ export * from './lib/esolve-connect-config.constant';
7
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
+ export * from './lib/shared/esolve-hex-hash.function';
10
11
  export * from './lib/shared/custom-fields';
11
12
  export * from './lib/shared/filters';
12
13
  export * from './lib/shared/response';
@@ -61,4 +62,4 @@ export * from './lib/wishlist';
61
62
  export * from './lib/suppliers';
62
63
  // Coupons
63
64
  export * from './lib/coupons';
64
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLHNDQUFzQyxDQUFDO0FBRXJELGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLG1CQUFtQixDQUFDO0FBRWxDLE1BQU07QUFDTixjQUFjLGtCQUFrQixDQUFDO0FBRWpDLFdBQVc7QUFDWCxjQUFjLHVCQUF1QixDQUFDO0FBRXRDLFNBQVM7QUFDVCxjQUFjLHFCQUFxQixDQUFDO0FBRXBDLFVBQVU7QUFDVixjQUFjLGVBQWUsQ0FBQztBQUU5QixPQUFPO0FBQ1AsY0FBYyxZQUFZLENBQUM7QUFFM0IsVUFBVTtBQUNWLGNBQWMsZUFBZSxDQUFDO0FBRTlCLFVBQVU7QUFDVixjQUFjLGVBQWUsQ0FBQztBQUU5QixPQUFPO0FBQ1AsY0FBYyxZQUFZLENBQUM7QUFFM0IsT0FBTztBQUNQLGNBQWMsWUFBWSxDQUFDO0FBRTNCLFNBQVM7QUFDVCxjQUFjLGNBQWMsQ0FBQztBQUU3QixPQUFPO0FBQ1AsY0FBYyxZQUFZLENBQUM7QUFFM0IsUUFBUTtBQUNSLGNBQWMsYUFBYSxDQUFDO0FBRTVCLGdCQUFnQjtBQUNoQixjQUFjLHFCQUFxQixDQUFDO0FBRXBDLGdCQUFnQjtBQUNoQixjQUFjLHFCQUFxQixDQUFDO0FBRXBDLFNBQVM7QUFDVCxjQUFjLGNBQWMsQ0FBQztBQUU3QixXQUFXO0FBQ1gsY0FBYyxnQkFBZ0IsQ0FBQztBQUUvQixPQUFPO0FBQ1AsY0FBYyxZQUFZLENBQUM7QUFFM0IsVUFBVTtBQUNWLGNBQWMsZUFBZSxDQUFDO0FBRTlCLFdBQVc7QUFDWCxjQUFjLGdCQUFnQixDQUFDO0FBRS9CLFlBQVk7QUFDWixjQUFjLGlCQUFpQixDQUFDO0FBRWhDLFVBQVU7QUFDVixjQUFjLGVBQWUsQ0FBQztBQUU5QixXQUFXO0FBQ1gsY0FBYyxnQkFBZ0IsQ0FBQztBQUUvQixZQUFZO0FBQ1osY0FBYyxpQkFBaUIsQ0FBQztBQUVoQyxVQUFVO0FBQ1YsY0FBYyxlQUFlLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgbmctZXNvbHZlLWNvbm5lY3RcclxuICovXHJcblxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9uZy1lc29sdmUtY29ubmVjdC5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9lc29sdmUtY29ubmVjdC5jb25maWcnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9lc29sdmUtY29ubmVjdC1jb25maWcuY29uc3RhbnQnO1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmVkL2Vzb2x2ZS1saXN0Lm1vZGVsJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmVkL2Vzb2x2ZS1yZXN1bHQubW9kZWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQvZXNvbHZlLXVybC10YXJnZXQudHlwZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NoYXJlZC9jdXN0b20tZmllbGRzJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmVkL2ZpbHRlcnMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQvcmVzcG9uc2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQvZXJyb3JzJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmVkL2Nvb2tpZS9lc29sdmUtY29va2llLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQvc29ydCc7XHJcblxyXG4vLyBTRU9cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmVkL3Nlbyc7XHJcblxyXG4vLyBHZW9jb2RlclxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQvZ2VvY29kZXInO1xyXG5cclxuLy8gQXNzZXRzXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NoYXJlZC9hc3NldHMnO1xyXG5cclxuLy8gU2Vzc2lvblxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXNzaW9uJztcclxuXHJcbi8vIEF1dGhcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvYXV0aCc7XHJcblxyXG4vLyBBY2NvdW50XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FjY291bnQnO1xyXG5cclxuLy8gQmFubmVyc1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9iYW5uZXJzJztcclxuXHJcbi8vIE1lbnVcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbWVudSc7XHJcblxyXG4vLyBOZXdzXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL25ld3MnO1xyXG5cclxuLy8gVG9waWNzXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RvcGljcyc7XHJcblxyXG4vLyBUYWdzXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhZ3MnO1xyXG5cclxuLy8gU3RvY2tcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc3RvY2snO1xyXG5cclxuLy8gQ2F0ZWdvcnkgVHJlZVxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jYXRlZ29yeS10cmVlJztcclxuXHJcbi8vIE1hbnVmYWN0dXJlcnNcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbWFudWZhY3R1cmVycyc7XHJcblxyXG4vLyBSYW5nZXNcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvcmFuZ2VzJztcclxuXHJcbi8vIFNwZWNpYWxzXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NwZWNpYWxzJztcclxuXHJcbi8vIENhcnRcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY2FydCc7XHJcblxyXG4vLyBQYXltZW50XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3BheW1lbnQnO1xyXG5cclxuLy8gU2hpcHBpbmdcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hpcHBpbmcnO1xyXG5cclxuLy8gTG9jYXRpb25zXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2xvY2F0aW9ucyc7XHJcblxyXG4vLyBFbnF1aXJ5XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2VucXVpcnknO1xyXG5cclxuLy8gV2lzaGxpc3RcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvd2lzaGxpc3QnO1xyXG5cclxuLy8gU3VwcGxpZXJzXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3N1cHBsaWVycyc7XHJcblxyXG4vLyBDb3Vwb25zXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvdXBvbnMnO1xyXG4iXX0=
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLHNDQUFzQyxDQUFDO0FBRXJELGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMsbUJBQW1CLENBQUM7QUFFbEMsTUFBTTtBQUNOLGNBQWMsa0JBQWtCLENBQUM7QUFFakMsV0FBVztBQUNYLGNBQWMsdUJBQXVCLENBQUM7QUFFdEMsU0FBUztBQUNULGNBQWMscUJBQXFCLENBQUM7QUFFcEMsVUFBVTtBQUNWLGNBQWMsZUFBZSxDQUFDO0FBRTlCLE9BQU87QUFDUCxjQUFjLFlBQVksQ0FBQztBQUUzQixVQUFVO0FBQ1YsY0FBYyxlQUFlLENBQUM7QUFFOUIsVUFBVTtBQUNWLGNBQWMsZUFBZSxDQUFDO0FBRTlCLE9BQU87QUFDUCxjQUFjLFlBQVksQ0FBQztBQUUzQixPQUFPO0FBQ1AsY0FBYyxZQUFZLENBQUM7QUFFM0IsU0FBUztBQUNULGNBQWMsY0FBYyxDQUFDO0FBRTdCLE9BQU87QUFDUCxjQUFjLFlBQVksQ0FBQztBQUUzQixRQUFRO0FBQ1IsY0FBYyxhQUFhLENBQUM7QUFFNUIsZ0JBQWdCO0FBQ2hCLGNBQWMscUJBQXFCLENBQUM7QUFFcEMsZ0JBQWdCO0FBQ2hCLGNBQWMscUJBQXFCLENBQUM7QUFFcEMsU0FBUztBQUNULGNBQWMsY0FBYyxDQUFDO0FBRTdCLFdBQVc7QUFDWCxjQUFjLGdCQUFnQixDQUFDO0FBRS9CLE9BQU87QUFDUCxjQUFjLFlBQVksQ0FBQztBQUUzQixVQUFVO0FBQ1YsY0FBYyxlQUFlLENBQUM7QUFFOUIsV0FBVztBQUNYLGNBQWMsZ0JBQWdCLENBQUM7QUFFL0IsWUFBWTtBQUNaLGNBQWMsaUJBQWlCLENBQUM7QUFFaEMsVUFBVTtBQUNWLGNBQWMsZUFBZSxDQUFDO0FBRTlCLFdBQVc7QUFDWCxjQUFjLGdCQUFnQixDQUFDO0FBRS9CLFlBQVk7QUFDWixjQUFjLGlCQUFpQixDQUFDO0FBRWhDLFVBQVU7QUFDVixjQUFjLGVBQWUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBuZy1lc29sdmUtY29ubmVjdFxyXG4gKi9cclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL25nLWVzb2x2ZS1jb25uZWN0Lm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Vzb2x2ZS1jb25uZWN0LmNvbmZpZyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Vzb2x2ZS1jb25uZWN0LWNvbmZpZy5jb25zdGFudCc7XHJcblxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQvZXNvbHZlLWxpc3QubW9kZWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQvZXNvbHZlLXJlc3VsdC5tb2RlbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NoYXJlZC9lc29sdmUtdXJsLXRhcmdldC50eXBlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmVkL2Vzb2x2ZS1oZXgtaGFzaC5mdW5jdGlvbic7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NoYXJlZC9jdXN0b20tZmllbGRzJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmVkL2ZpbHRlcnMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQvcmVzcG9uc2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQvZXJyb3JzJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmVkL2Nvb2tpZS9lc29sdmUtY29va2llLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQvc29ydCc7XHJcblxyXG4vLyBTRU9cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmVkL3Nlbyc7XHJcblxyXG4vLyBHZW9jb2RlclxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQvZ2VvY29kZXInO1xyXG5cclxuLy8gQXNzZXRzXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NoYXJlZC9hc3NldHMnO1xyXG5cclxuLy8gU2Vzc2lvblxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXNzaW9uJztcclxuXHJcbi8vIEF1dGhcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvYXV0aCc7XHJcblxyXG4vLyBBY2NvdW50XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FjY291bnQnO1xyXG5cclxuLy8gQmFubmVyc1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9iYW5uZXJzJztcclxuXHJcbi8vIE1lbnVcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbWVudSc7XHJcblxyXG4vLyBOZXdzXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL25ld3MnO1xyXG5cclxuLy8gVG9waWNzXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RvcGljcyc7XHJcblxyXG4vLyBUYWdzXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhZ3MnO1xyXG5cclxuLy8gU3RvY2tcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc3RvY2snO1xyXG5cclxuLy8gQ2F0ZWdvcnkgVHJlZVxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jYXRlZ29yeS10cmVlJztcclxuXHJcbi8vIE1hbnVmYWN0dXJlcnNcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbWFudWZhY3R1cmVycyc7XHJcblxyXG4vLyBSYW5nZXNcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvcmFuZ2VzJztcclxuXHJcbi8vIFNwZWNpYWxzXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NwZWNpYWxzJztcclxuXHJcbi8vIENhcnRcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY2FydCc7XHJcblxyXG4vLyBQYXltZW50XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3BheW1lbnQnO1xyXG5cclxuLy8gU2hpcHBpbmdcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hpcHBpbmcnO1xyXG5cclxuLy8gTG9jYXRpb25zXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2xvY2F0aW9ucyc7XHJcblxyXG4vLyBFbnF1aXJ5XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2VucXVpcnknO1xyXG5cclxuLy8gV2lzaGxpc3RcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvd2lzaGxpc3QnO1xyXG5cclxuLy8gU3VwcGxpZXJzXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3N1cHBsaWVycyc7XHJcblxyXG4vLyBDb3Vwb25zXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvdXBvbnMnO1xyXG4iXX0=
@@ -19,6 +19,8 @@ export class EsolveAuthInterceptorService {
19
19
  if (service_identifier !== 'get-access-token.php') {
20
20
  params = params.set('key', session.key);
21
21
  }
22
+ const state_hash = session.getStateHash();
23
+ headers = headers.set('X-Esolve-State-Hash', state_hash);
22
24
  }
23
25
  params = params.set('ws_id', this.config.wsid);
24
26
  if (this.config.native && this.config.device_designation) {
@@ -42,4 +44,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.3", ngImpor
42
44
  type: Inject,
43
45
  args: [ESOLVE_CONNECT_CONFIG]
44
46
  }] }, { type: i1.EsolveSessionService }]; } });
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWF1dGgtaW50ZXJjZXB0b3Iuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmctZXNvbHZlLWNvbm5lY3Qvc3JjL2xpYi9hdXRoL2Vzb2x2ZS1hdXRoLWludGVyY2VwdG9yLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFXbkQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDMUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7OztBQUd6RSxNQUFNLE9BQU8sNEJBQTRCO0lBQ3JDLFlBQzJDLE1BQTJCLEVBQzFELE9BQTZCO1FBREUsV0FBTSxHQUFOLE1BQU0sQ0FBcUI7UUFDMUQsWUFBTyxHQUFQLE9BQU8sQ0FBc0I7SUFDckMsQ0FBQztJQUVFLFNBQVMsQ0FBQyxHQUFxQixFQUFFLElBQWlCO1FBQ3JELElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxDQUFDLEVBQUU7WUFDL0MsTUFBTSxrQkFBa0IsR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFFMUUsTUFBTSxZQUFZLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQztZQUM3QixJQUFJLE1BQU0sR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDO1lBQ3hCLElBQUksT0FBTyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUM7WUFFMUIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUM7WUFFNUMsSUFBSSxPQUFPLENBQUMsS0FBSyxFQUFFO2dCQUNmLElBQUksa0JBQWtCLEtBQUssc0JBQXNCLEVBQUU7b0JBQy9DLE1BQU0sR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7aUJBQzNDO2FBQ0o7WUFFRCxNQUFNLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUUvQyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsa0JBQWtCLEVBQUU7Z0JBQ3RELE9BQU8sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLHNCQUFzQixFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQzthQUNqRjtZQUVELE1BQU0sWUFBWSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUM7Z0JBQzNCLEdBQUcsRUFBRSxZQUFZO2dCQUNqQixNQUFNO2dCQUNOLE9BQU87YUFDVixDQUFDLENBQUM7WUFFSCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDcEM7UUFFRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDNUIsQ0FBQzs7eUhBdENRLDRCQUE0QixrQkFFekIscUJBQXFCOzZIQUZ4Qiw0QkFBNEI7MkZBQTVCLDRCQUE0QjtrQkFEeEMsVUFBVTs7MEJBR0YsTUFBTTsyQkFBQyxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICAgIEh0dHBJbnRlcmNlcHRvcixcclxuICAgIEh0dHBSZXF1ZXN0LFxyXG4gICAgSHR0cEhhbmRsZXIsXHJcbiAgICBIdHRwRXZlbnQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5cclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHsgRXNvbHZlQ29ubmVjdENvbmZpZyB9IGZyb20gJy4uL2Vzb2x2ZS1jb25uZWN0LmNvbmZpZyc7XHJcbmltcG9ydCB7IEVTT0xWRV9DT05ORUNUX0NPTkZJRyB9IGZyb20gJy4uL2Vzb2x2ZS1jb25uZWN0LWNvbmZpZy5jb25zdGFudCc7XHJcbmltcG9ydCB7IEVzb2x2ZVNlc3Npb25TZXJ2aWNlIH0gZnJvbSAnLi4vc2Vzc2lvbi9lc29sdmUtc2Vzc2lvbi5zZXJ2aWNlJztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIEVzb2x2ZUF1dGhJbnRlcmNlcHRvclNlcnZpY2UgaW1wbGVtZW50cyBIdHRwSW50ZXJjZXB0b3Ige1xyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgQEluamVjdChFU09MVkVfQ09OTkVDVF9DT05GSUcpIHByaXZhdGUgY29uZmlnOiBFc29sdmVDb25uZWN0Q29uZmlnLFxyXG4gICAgICAgIHByaXZhdGUgc2Vzc2lvbjogRXNvbHZlU2Vzc2lvblNlcnZpY2UsXHJcbiAgICApIHsgfVxyXG5cclxuICAgIHB1YmxpYyBpbnRlcmNlcHQocmVxOiBIdHRwUmVxdWVzdDxhbnk+LCBuZXh0OiBIdHRwSGFuZGxlcik6IE9ic2VydmFibGU8SHR0cEV2ZW50PGFueT4+IHtcclxuICAgICAgICBpZiAocmVxLnVybC5zdGFydHNXaXRoKGAke3RoaXMuY29uZmlnLmFwaV91cmx9L2ApKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHNlcnZpY2VfaWRlbnRpZmllciA9IHJlcS51cmwucmVwbGFjZShgJHt0aGlzLmNvbmZpZy5hcGlfdXJsfS9gLCAnJyk7XHJcblxyXG4gICAgICAgICAgICBjb25zdCBtb2RpZmllZF91cmwgPSByZXEudXJsO1xyXG4gICAgICAgICAgICBsZXQgcGFyYW1zID0gcmVxLnBhcmFtcztcclxuICAgICAgICAgICAgbGV0IGhlYWRlcnMgPSByZXEuaGVhZGVycztcclxuXHJcbiAgICAgICAgICAgIGNvbnN0IHNlc3Npb24gPSB0aGlzLnNlc3Npb24uY3VycmVudFNlc3Npb247XHJcblxyXG4gICAgICAgICAgICBpZiAoc2Vzc2lvbi52YWxpZCkge1xyXG4gICAgICAgICAgICAgICAgaWYgKHNlcnZpY2VfaWRlbnRpZmllciAhPT0gJ2dldC1hY2Nlc3MtdG9rZW4ucGhwJykge1xyXG4gICAgICAgICAgICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ2tleScsIHNlc3Npb24ua2V5KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgnd3NfaWQnLCB0aGlzLmNvbmZpZy53c2lkKTtcclxuXHJcbiAgICAgICAgICAgIGlmICh0aGlzLmNvbmZpZy5uYXRpdmUgJiYgdGhpcy5jb25maWcuZGV2aWNlX2Rlc2lnbmF0aW9uKSB7XHJcbiAgICAgICAgICAgICAgICBoZWFkZXJzID0gaGVhZGVycy5zZXQoJ1gtRGV2aWNlLURlc2lnbmF0aW9uJywgdGhpcy5jb25maWcuZGV2aWNlX2Rlc2lnbmF0aW9uKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgY29uc3QgbW9kaWZpZWRfcmVxID0gcmVxLmNsb25lKHtcclxuICAgICAgICAgICAgICAgIHVybDogbW9kaWZpZWRfdXJsLFxyXG4gICAgICAgICAgICAgICAgcGFyYW1zLFxyXG4gICAgICAgICAgICAgICAgaGVhZGVycyxcclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICByZXR1cm4gbmV4dC5oYW5kbGUobW9kaWZpZWRfcmVxKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBuZXh0LmhhbmRsZShyZXEpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWF1dGgtaW50ZXJjZXB0b3Iuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmctZXNvbHZlLWNvbm5lY3Qvc3JjL2xpYi9hdXRoL2Vzb2x2ZS1hdXRoLWludGVyY2VwdG9yLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFXbkQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDMUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7OztBQUd6RSxNQUFNLE9BQU8sNEJBQTRCO0lBQ3JDLFlBQzJDLE1BQTJCLEVBQzFELE9BQTZCO1FBREUsV0FBTSxHQUFOLE1BQU0sQ0FBcUI7UUFDMUQsWUFBTyxHQUFQLE9BQU8sQ0FBc0I7SUFDdEMsQ0FBQztJQUVHLFNBQVMsQ0FDWixHQUFxQixFQUNyQixJQUFpQjtRQUVqQixJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsQ0FBQyxFQUFFO1lBQy9DLE1BQU0sa0JBQWtCLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQ3RDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsRUFDekIsRUFBRSxDQUNMLENBQUM7WUFFRixNQUFNLFlBQVksR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDO1lBQzdCLElBQUksTUFBTSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUM7WUFDeEIsSUFBSSxPQUFPLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQztZQUUxQixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQztZQUU1QyxJQUFJLE9BQU8sQ0FBQyxLQUFLLEVBQUU7Z0JBQ2YsSUFBSSxrQkFBa0IsS0FBSyxzQkFBc0IsRUFBRTtvQkFDL0MsTUFBTSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztpQkFDM0M7Z0JBRUQsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDO2dCQUMxQyxPQUFPLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxxQkFBcUIsRUFBRSxVQUFVLENBQUMsQ0FBQzthQUM1RDtZQUVELE1BQU0sR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBRS9DLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsRUFBRTtnQkFDdEQsT0FBTyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQ2pCLHNCQUFzQixFQUN0QixJQUFJLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUNqQyxDQUFDO2FBQ0w7WUFFRCxNQUFNLFlBQVksR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDO2dCQUMzQixHQUFHLEVBQUUsWUFBWTtnQkFDakIsTUFBTTtnQkFDTixPQUFPO2FBQ1YsQ0FBQyxDQUFDO1lBRUgsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1NBQ3BDO1FBRUQsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzVCLENBQUM7O3lIQWxEUSw0QkFBNEIsa0JBRXpCLHFCQUFxQjs2SEFGeEIsNEJBQTRCOzJGQUE1Qiw0QkFBNEI7a0JBRHhDLFVBQVU7OzBCQUdGLE1BQU07MkJBQUMscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgICBIdHRwSW50ZXJjZXB0b3IsXHJcbiAgICBIdHRwUmVxdWVzdCxcclxuICAgIEh0dHBIYW5kbGVyLFxyXG4gICAgSHR0cEV2ZW50LFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuXHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuXHJcbmltcG9ydCB7IEVzb2x2ZUNvbm5lY3RDb25maWcgfSBmcm9tICcuLi9lc29sdmUtY29ubmVjdC5jb25maWcnO1xyXG5pbXBvcnQgeyBFU09MVkVfQ09OTkVDVF9DT05GSUcgfSBmcm9tICcuLi9lc29sdmUtY29ubmVjdC1jb25maWcuY29uc3RhbnQnO1xyXG5pbXBvcnQgeyBFc29sdmVTZXNzaW9uU2VydmljZSB9IGZyb20gJy4uL3Nlc3Npb24vZXNvbHZlLXNlc3Npb24uc2VydmljZSc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBFc29sdmVBdXRoSW50ZXJjZXB0b3JTZXJ2aWNlIGltcGxlbWVudHMgSHR0cEludGVyY2VwdG9yIHtcclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIEBJbmplY3QoRVNPTFZFX0NPTk5FQ1RfQ09ORklHKSBwcml2YXRlIGNvbmZpZzogRXNvbHZlQ29ubmVjdENvbmZpZyxcclxuICAgICAgICBwcml2YXRlIHNlc3Npb246IEVzb2x2ZVNlc3Npb25TZXJ2aWNlLFxyXG4gICAgKSB7fVxyXG5cclxuICAgIHB1YmxpYyBpbnRlcmNlcHQoXHJcbiAgICAgICAgcmVxOiBIdHRwUmVxdWVzdDxhbnk+LFxyXG4gICAgICAgIG5leHQ6IEh0dHBIYW5kbGVyLFxyXG4gICAgKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8YW55Pj4ge1xyXG4gICAgICAgIGlmIChyZXEudXJsLnN0YXJ0c1dpdGgoYCR7dGhpcy5jb25maWcuYXBpX3VybH0vYCkpIHtcclxuICAgICAgICAgICAgY29uc3Qgc2VydmljZV9pZGVudGlmaWVyID0gcmVxLnVybC5yZXBsYWNlKFxyXG4gICAgICAgICAgICAgICAgYCR7dGhpcy5jb25maWcuYXBpX3VybH0vYCxcclxuICAgICAgICAgICAgICAgICcnLFxyXG4gICAgICAgICAgICApO1xyXG5cclxuICAgICAgICAgICAgY29uc3QgbW9kaWZpZWRfdXJsID0gcmVxLnVybDtcclxuICAgICAgICAgICAgbGV0IHBhcmFtcyA9IHJlcS5wYXJhbXM7XHJcbiAgICAgICAgICAgIGxldCBoZWFkZXJzID0gcmVxLmhlYWRlcnM7XHJcblxyXG4gICAgICAgICAgICBjb25zdCBzZXNzaW9uID0gdGhpcy5zZXNzaW9uLmN1cnJlbnRTZXNzaW9uO1xyXG5cclxuICAgICAgICAgICAgaWYgKHNlc3Npb24udmFsaWQpIHtcclxuICAgICAgICAgICAgICAgIGlmIChzZXJ2aWNlX2lkZW50aWZpZXIgIT09ICdnZXQtYWNjZXNzLXRva2VuLnBocCcpIHtcclxuICAgICAgICAgICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdrZXknLCBzZXNzaW9uLmtleSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgY29uc3Qgc3RhdGVfaGFzaCA9IHNlc3Npb24uZ2V0U3RhdGVIYXNoKCk7XHJcbiAgICAgICAgICAgICAgICBoZWFkZXJzID0gaGVhZGVycy5zZXQoJ1gtRXNvbHZlLVN0YXRlLUhhc2gnLCBzdGF0ZV9oYXNoKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgnd3NfaWQnLCB0aGlzLmNvbmZpZy53c2lkKTtcclxuXHJcbiAgICAgICAgICAgIGlmICh0aGlzLmNvbmZpZy5uYXRpdmUgJiYgdGhpcy5jb25maWcuZGV2aWNlX2Rlc2lnbmF0aW9uKSB7XHJcbiAgICAgICAgICAgICAgICBoZWFkZXJzID0gaGVhZGVycy5zZXQoXHJcbiAgICAgICAgICAgICAgICAgICAgJ1gtRGV2aWNlLURlc2lnbmF0aW9uJyxcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZy5kZXZpY2VfZGVzaWduYXRpb24sXHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBjb25zdCBtb2RpZmllZF9yZXEgPSByZXEuY2xvbmUoe1xyXG4gICAgICAgICAgICAgICAgdXJsOiBtb2RpZmllZF91cmwsXHJcbiAgICAgICAgICAgICAgICBwYXJhbXMsXHJcbiAgICAgICAgICAgICAgICBoZWFkZXJzLFxyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgIHJldHVybiBuZXh0LmhhbmRsZShtb2RpZmllZF9yZXEpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIG5leHQuaGFuZGxlKHJlcSk7XHJcbiAgICB9XHJcbn1cclxuIl19
@@ -1,3 +1,4 @@
1
+ import { esolveHexHash } from '../shared/esolve-hex-hash.function';
1
2
  export class EsolveSession {
2
3
  constructor(id = -1, location_id = 0, key = '', expiration_date) {
3
4
  this.id = id;
@@ -7,22 +8,30 @@ export class EsolveSession {
7
8
  }
8
9
  get expired() {
9
10
  const current_date = new Date();
10
- return ((this.expiration_date === undefined) ||
11
- (current_date >= this.expiration_date));
11
+ return (this.expiration_date === undefined ||
12
+ current_date >= this.expiration_date);
12
13
  }
13
14
  get authenticated() {
14
- return (this.id > 0);
15
+ return this.id > 0;
15
16
  }
16
17
  get valid() {
17
- return ((this.key !== '') &&
18
- (this.expiration_date !== undefined) &&
19
- (this.id >= 0));
18
+ return (this.key !== '' &&
19
+ this.expiration_date !== undefined &&
20
+ this.id >= 0);
20
21
  }
21
22
  updateUser(user_id) {
22
23
  this.id = user_id;
24
+ this.state_hash = undefined;
23
25
  }
24
26
  updateLocation(location_id) {
25
27
  this.location_id = location_id;
28
+ this.state_hash = undefined;
29
+ }
30
+ getStateHash() {
31
+ if (!this.state_hash) {
32
+ this.state_hash = esolveHexHash(this.id, this.location_id, this.key);
33
+ }
34
+ return this.state_hash;
26
35
  }
27
36
  }
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXNlc3Npb24ubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvc2Vzc2lvbi9lc29sdmUtc2Vzc2lvbi5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQU8sYUFBYTtJQUN0QixZQUNXLEtBQWEsQ0FBQyxDQUFDLEVBQ2YsY0FBc0IsQ0FBQyxFQUNkLE1BQWMsRUFBRSxFQUNoQixlQUFzQjtRQUgvQixPQUFFLEdBQUYsRUFBRSxDQUFhO1FBQ2YsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFDZCxRQUFHLEdBQUgsR0FBRyxDQUFhO1FBQ2hCLG9CQUFlLEdBQWYsZUFBZSxDQUFPO0lBQ3RDLENBQUM7SUFFTCxJQUFXLE9BQU87UUFDZCxNQUFNLFlBQVksR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1FBRWhDLE9BQU8sQ0FDSCxDQUFDLElBQUksQ0FBQyxlQUFlLEtBQUssU0FBUyxDQUFDO1lBQ3BDLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FDekMsQ0FBQztJQUNOLENBQUM7SUFFRCxJQUFXLGFBQWE7UUFDcEIsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUVELElBQVcsS0FBSztRQUNaLE9BQU8sQ0FDSCxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssRUFBRSxDQUFDO1lBQ2pCLENBQUMsSUFBSSxDQUFDLGVBQWUsS0FBSyxTQUFTLENBQUM7WUFDcEMsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUNqQixDQUFDO0lBQ04sQ0FBQztJQUVNLFVBQVUsQ0FBQyxPQUFlO1FBQzdCLElBQUksQ0FBQyxFQUFFLEdBQUcsT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFFTSxjQUFjLENBQUMsV0FBbUI7UUFDckMsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7SUFDbkMsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXNvbHZlU2Vzc2lvbkRhdGEgfSBmcm9tICcuL2Vzb2x2ZS1zZXNzaW9uLWRhdGEuaW50ZXJmYWNlJztcclxuXHJcbmV4cG9ydCBjbGFzcyBFc29sdmVTZXNzaW9uIGltcGxlbWVudHMgRXNvbHZlU2Vzc2lvbkRhdGEge1xyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHVibGljIGlkOiBudW1iZXIgPSAtMSxcclxuICAgICAgICBwdWJsaWMgbG9jYXRpb25faWQ6IG51bWJlciA9IDAsXHJcbiAgICAgICAgcHVibGljIHJlYWRvbmx5IGtleTogc3RyaW5nID0gJycsXHJcbiAgICAgICAgcHVibGljIHJlYWRvbmx5IGV4cGlyYXRpb25fZGF0ZT86IERhdGUsXHJcbiAgICApIHsgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgZXhwaXJlZCgpOiBib29sZWFuIHtcclxuICAgICAgICBjb25zdCBjdXJyZW50X2RhdGUgPSBuZXcgRGF0ZSgpO1xyXG5cclxuICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICAodGhpcy5leHBpcmF0aW9uX2RhdGUgPT09IHVuZGVmaW5lZCkgfHxcclxuICAgICAgICAgICAgKGN1cnJlbnRfZGF0ZSA+PSB0aGlzLmV4cGlyYXRpb25fZGF0ZSlcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgYXV0aGVudGljYXRlZCgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gKHRoaXMuaWQgPiAwKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IHZhbGlkKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgICh0aGlzLmtleSAhPT0gJycpICYmXHJcbiAgICAgICAgICAgICh0aGlzLmV4cGlyYXRpb25fZGF0ZSAhPT0gdW5kZWZpbmVkKSAmJlxyXG4gICAgICAgICAgICAodGhpcy5pZCA+PSAwKVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHVwZGF0ZVVzZXIodXNlcl9pZDogbnVtYmVyKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5pZCA9IHVzZXJfaWQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHVwZGF0ZUxvY2F0aW9uKGxvY2F0aW9uX2lkOiBudW1iZXIpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmxvY2F0aW9uX2lkID0gbG9jYXRpb25faWQ7XHJcbiAgICB9XHJcbn1cclxuIl19
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXNlc3Npb24ubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvc2Vzc2lvbi9lc29sdmUtc2Vzc2lvbi5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFFbkUsTUFBTSxPQUFPLGFBQWE7SUFHdEIsWUFDVyxLQUFhLENBQUMsQ0FBQyxFQUNmLGNBQXNCLENBQUMsRUFDZCxNQUFjLEVBQUUsRUFDaEIsZUFBc0I7UUFIL0IsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQUNmLGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBQ2QsUUFBRyxHQUFILEdBQUcsQ0FBYTtRQUNoQixvQkFBZSxHQUFmLGVBQWUsQ0FBTztJQUN2QyxDQUFDO0lBRUosSUFBVyxPQUFPO1FBQ2QsTUFBTSxZQUFZLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUVoQyxPQUFPLENBQ0gsSUFBSSxDQUFDLGVBQWUsS0FBSyxTQUFTO1lBQ2xDLFlBQVksSUFBSSxJQUFJLENBQUMsZUFBZSxDQUN2QyxDQUFDO0lBQ04sQ0FBQztJQUVELElBQVcsYUFBYTtRQUNwQixPQUFPLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxJQUFXLEtBQUs7UUFDWixPQUFPLENBQ0gsSUFBSSxDQUFDLEdBQUcsS0FBSyxFQUFFO1lBQ2YsSUFBSSxDQUFDLGVBQWUsS0FBSyxTQUFTO1lBQ2xDLElBQUksQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUNmLENBQUM7SUFDTixDQUFDO0lBRU0sVUFBVSxDQUFDLE9BQWU7UUFDN0IsSUFBSSxDQUFDLEVBQUUsR0FBRyxPQUFPLENBQUM7UUFDbEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7SUFDaEMsQ0FBQztJQUVNLGNBQWMsQ0FBQyxXQUFtQjtRQUNyQyxJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztRQUMvQixJQUFJLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQztJQUNoQyxDQUFDO0lBRU0sWUFBWTtRQUNmLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ2xCLElBQUksQ0FBQyxVQUFVLEdBQUcsYUFBYSxDQUMzQixJQUFJLENBQUMsRUFBRSxFQUNQLElBQUksQ0FBQyxXQUFXLEVBQ2hCLElBQUksQ0FBQyxHQUFHLENBQ1gsQ0FBQztTQUNMO1FBRUQsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQzNCLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVzb2x2ZVNlc3Npb25EYXRhIH0gZnJvbSAnLi9lc29sdmUtc2Vzc2lvbi1kYXRhLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IGVzb2x2ZUhleEhhc2ggfSBmcm9tICcuLi9zaGFyZWQvZXNvbHZlLWhleC1oYXNoLmZ1bmN0aW9uJztcclxuXHJcbmV4cG9ydCBjbGFzcyBFc29sdmVTZXNzaW9uIGltcGxlbWVudHMgRXNvbHZlU2Vzc2lvbkRhdGEge1xyXG4gICAgcHJpdmF0ZSBzdGF0ZV9oYXNoPzogc3RyaW5nO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHB1YmxpYyBpZDogbnVtYmVyID0gLTEsXHJcbiAgICAgICAgcHVibGljIGxvY2F0aW9uX2lkOiBudW1iZXIgPSAwLFxyXG4gICAgICAgIHB1YmxpYyByZWFkb25seSBrZXk6IHN0cmluZyA9ICcnLFxyXG4gICAgICAgIHB1YmxpYyByZWFkb25seSBleHBpcmF0aW9uX2RhdGU/OiBEYXRlLFxyXG4gICAgKSB7fVxyXG5cclxuICAgIHB1YmxpYyBnZXQgZXhwaXJlZCgpOiBib29sZWFuIHtcclxuICAgICAgICBjb25zdCBjdXJyZW50X2RhdGUgPSBuZXcgRGF0ZSgpO1xyXG5cclxuICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICB0aGlzLmV4cGlyYXRpb25fZGF0ZSA9PT0gdW5kZWZpbmVkIHx8XHJcbiAgICAgICAgICAgIGN1cnJlbnRfZGF0ZSA+PSB0aGlzLmV4cGlyYXRpb25fZGF0ZVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBhdXRoZW50aWNhdGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmlkID4gMDtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IHZhbGlkKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgIHRoaXMua2V5ICE9PSAnJyAmJlxyXG4gICAgICAgICAgICB0aGlzLmV4cGlyYXRpb25fZGF0ZSAhPT0gdW5kZWZpbmVkICYmXHJcbiAgICAgICAgICAgIHRoaXMuaWQgPj0gMFxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHVwZGF0ZVVzZXIodXNlcl9pZDogbnVtYmVyKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5pZCA9IHVzZXJfaWQ7XHJcbiAgICAgICAgdGhpcy5zdGF0ZV9oYXNoID0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyB1cGRhdGVMb2NhdGlvbihsb2NhdGlvbl9pZDogbnVtYmVyKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5sb2NhdGlvbl9pZCA9IGxvY2F0aW9uX2lkO1xyXG4gICAgICAgIHRoaXMuc3RhdGVfaGFzaCA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0U3RhdGVIYXNoKCk6IHN0cmluZyB7XHJcbiAgICAgICAgaWYgKCF0aGlzLnN0YXRlX2hhc2gpIHtcclxuICAgICAgICAgICAgdGhpcy5zdGF0ZV9oYXNoID0gZXNvbHZlSGV4SGFzaChcclxuICAgICAgICAgICAgICAgIHRoaXMuaWQsXHJcbiAgICAgICAgICAgICAgICB0aGlzLmxvY2F0aW9uX2lkLFxyXG4gICAgICAgICAgICAgICAgdGhpcy5rZXksXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5zdGF0ZV9oYXNoO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Generates a short hexadecimal hash that will be used to indicate a change in
3
+ * state.
4
+ *
5
+ * NOTE: Not to be confused with an actual hash checksum, like MD5 or SHA256.
6
+ * It should only be used to indicate that a state has changed. It should not be
7
+ * used for encryption.
8
+ *
9
+ * @param values Raw strings and numbers to hash
10
+ *
11
+ * @returns Hexadecimal hash value
12
+ */
13
+ export function esolveHexHash(...values) {
14
+ // Add an extra value to pad out hash
15
+ values.push('esolve_eurus');
16
+ // Create a string from the values
17
+ const string = values.join('::');
18
+ let hash = 0;
19
+ for (let x = 0; x < string.length; x++) {
20
+ const ch = string.charCodeAt(x);
21
+ hash = (hash << 5) - hash + ch;
22
+ hash = hash & hash;
23
+ }
24
+ return Math.abs(hash).toString(16);
25
+ }
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWhleC1oYXNoLmZ1bmN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy1lc29sdmUtY29ubmVjdC9zcmMvbGliL3NoYXJlZC9lc29sdmUtaGV4LWhhc2guZnVuY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0dBV0c7QUFDSCxNQUFNLFVBQVUsYUFBYSxDQUFDLEdBQUcsTUFBMkI7SUFDeEQscUNBQXFDO0lBQ3JDLE1BQU0sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7SUFFNUIsa0NBQWtDO0lBQ2xDLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFakMsSUFBSSxJQUFJLEdBQUcsQ0FBQyxDQUFDO0lBRWIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7UUFDcEMsTUFBTSxFQUFFLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNoQyxJQUFJLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUMvQixJQUFJLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQztLQUN0QjtJQUVELE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDdkMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBHZW5lcmF0ZXMgYSBzaG9ydCBoZXhhZGVjaW1hbCBoYXNoIHRoYXQgd2lsbCBiZSB1c2VkIHRvIGluZGljYXRlIGEgY2hhbmdlIGluXHJcbiAqIHN0YXRlLlxyXG4gKlxyXG4gKiBOT1RFOiBOb3QgdG8gYmUgY29uZnVzZWQgd2l0aCBhbiBhY3R1YWwgaGFzaCBjaGVja3N1bSwgbGlrZSBNRDUgb3IgU0hBMjU2LlxyXG4gKiBJdCBzaG91bGQgb25seSBiZSB1c2VkIHRvIGluZGljYXRlIHRoYXQgYSBzdGF0ZSBoYXMgY2hhbmdlZC4gSXQgc2hvdWxkIG5vdCBiZVxyXG4gKiB1c2VkIGZvciBlbmNyeXB0aW9uLlxyXG4gKlxyXG4gKiBAcGFyYW0gdmFsdWVzIFJhdyBzdHJpbmdzIGFuZCBudW1iZXJzIHRvIGhhc2hcclxuICpcclxuICogQHJldHVybnMgSGV4YWRlY2ltYWwgaGFzaCB2YWx1ZVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGVzb2x2ZUhleEhhc2goLi4udmFsdWVzOiAoc3RyaW5nIHwgbnVtYmVyKVtdKTogc3RyaW5nIHtcclxuICAgIC8vIEFkZCBhbiBleHRyYSB2YWx1ZSB0byBwYWQgb3V0IGhhc2hcclxuICAgIHZhbHVlcy5wdXNoKCdlc29sdmVfZXVydXMnKTtcclxuXHJcbiAgICAvLyBDcmVhdGUgYSBzdHJpbmcgZnJvbSB0aGUgdmFsdWVzXHJcbiAgICBjb25zdCBzdHJpbmcgPSB2YWx1ZXMuam9pbignOjonKTtcclxuXHJcbiAgICBsZXQgaGFzaCA9IDA7XHJcblxyXG4gICAgZm9yIChsZXQgeCA9IDA7IHggPCBzdHJpbmcubGVuZ3RoOyB4KyspIHtcclxuICAgICAgICBjb25zdCBjaCA9IHN0cmluZy5jaGFyQ29kZUF0KHgpO1xyXG4gICAgICAgIGhhc2ggPSAoaGFzaCA8PCA1KSAtIGhhc2ggKyBjaDtcclxuICAgICAgICBoYXNoID0gaGFzaCAmIGhhc2g7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIE1hdGguYWJzKGhhc2gpLnRvU3RyaW5nKDE2KTtcclxufVxyXG4iXX0=
@@ -27,6 +27,18 @@ export class EsolveStockItemBase {
27
27
  * Search engine friendly name
28
28
  */
29
29
  this.sef_name = '';
30
+ /**
31
+ * Search composite field made up of key phrases
32
+ */
33
+ this.search_composite = '';
34
+ /**
35
+ * Type field. General high grouping
36
+ */
37
+ this.type = '';
38
+ /**
39
+ * Sub type field. General high grouping
40
+ */
41
+ this.sub_type = '';
30
42
  /**
31
43
  * Short description of stock item
32
44
  */
@@ -162,6 +174,9 @@ export class EsolveStockItemBase {
162
174
  this.code = record.code ?? '';
163
175
  this.name = record.name ?? '';
164
176
  this.sef_name = record.sef_name ?? '';
177
+ this.search_composite = record.search_composite ?? '';
178
+ this.type = record.type ?? '';
179
+ this.sub_type = record.sub_type ?? '';
165
180
  this.description = record.description ?? '';
166
181
  this.extended_description = record.extended_description ?? '';
167
182
  this.image_name = record.image_name ?? '';
@@ -289,4 +304,4 @@ export class EsolveStockItemBase {
289
304
  return '';
290
305
  }
291
306
  }
292
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXN0b2NrLWl0ZW0tYmFzZS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmctZXNvbHZlLWNvbm5lY3Qvc3JjL2xpYi9zdG9jay9jbGFzc2VzL2Vzb2x2ZS1zdG9jay1pdGVtLWJhc2UubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFvQixhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVuRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzNDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDdkMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUkzQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDdkUsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFFekYsTUFBTSxPQUFPLG1CQUFtQjtJQThONUIsWUFBWSxTQUE0QyxFQUFFO1FBMU4xRDs7V0FFRztRQUNJLE9BQUUsR0FBRyxDQUFDLENBQUM7UUFDZDs7V0FFRztRQUNJLFNBQUksR0FBRyxFQUFFLENBQUM7UUFDakI7O1dBRUc7UUFDSSxTQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ2pCOztXQUVHO1FBQ0ksYUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNyQjs7V0FFRztRQUNJLGdCQUFX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QUcsS0FBSyxFQUFFLENBQUM7U0FDbkU7UUFFRCxPQUFPLEVBQUUsQ0FBQztJQUNkLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVzb2x2ZUN1c3RvbUZpZWxkcyB9IGZyb20gJy4uLy4uL3NoYXJlZC9jdXN0b20tZmllbGRzJztcclxuaW1wb3J0IHsgRXNvbHZlU2VvRGV0YWlscywgRXNvbHZlU2VvSW5mbyB9IGZyb20gJy4uLy4uL3NoYXJlZC9zZW8nO1xyXG5cclxuaW1wb3J0IHsgRXNvbHZlQ2F0ZWdvcnlUcmVlSXRlbSB9IGZyb20gJy4uLy4uL2NhdGVnb3J5LXRyZWUnO1xyXG5pbXBvcnQgeyBFc29sdmVNYW51ZmFjdHVyZXIgfSBmcm9tICcuLi8uLi9tYW51ZmFjdHVyZXJzJztcclxuaW1wb3J0IHsgRXNvbHZlUmFuZ2UgfSBmcm9tICcuLi8uLi9yYW5nZXMnO1xyXG5pbXBvcnQgeyBFc29sdmVUYWcgfSBmcm9tICcuLi8uLi90YWdzJztcclxuaW1wb3J0IHsgRXNvbHZlVG9waWMgfSBmcm9tICcuLi8uLi90b3BpY3MnO1xyXG5cclxuaW1wb3J0IHsgRXNvbHZlU3RvY2tJbWFnZVNpemUsIEVzb2x2ZVN0b2NrVW5pdE9mTWVhc3VyZSB9IGZyb20gJy4uL3R5cGVzJztcclxuaW1wb3J0IHsgRXNvbHZlU3RvY2tCYXNlUmVjb3JkIH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7IEVzb2x2ZVN0b2NrQmFkZ2UgfSBmcm9tICcuL2Vzb2x2ZS1zdG9jay1iYWRnZS5tb2RlbCc7XHJcbmltcG9ydCB7IEVzb2x2ZVN0b2NrUHJpY2UgfSBmcm9tICcuL2Vzb2x2ZS1zdG9jay1wcmljZS5tb2RlbCc7XHJcbmltcG9ydCB7IEVzb2x2ZUNvbG91ciB9IGZyb20gJy4vZXNvbHZlLWNvbG91ci5tb2RlbCc7XHJcbmltcG9ydCB7IEVzb2x2ZVN0b2NrTGVhZFRpbWVzIH0gZnJvbSAnLi9lc29sdmUtc3RvY2stbGVhZC10aW1lcy5tb2RlbCc7XHJcbmltcG9ydCB7IEVzb2x2ZVN0b2NrVHJhbnNhY3Rpb25IaXN0b3J5IH0gZnJvbSAnLi9lc29sdmUtc3RvY2stdHJhbnNhY3Rpb24taGlzdG9yeS5tb2RlbCc7XHJcblxyXG5leHBvcnQgY2xhc3MgRXNvbHZlU3RvY2tJdGVtQmFzZTxcclxuICAgIFQgZXh0ZW5kcyBFc29sdmVDdXN0b21GaWVsZHMgPSBFc29sdmVDdXN0b21GaWVsZHMsXHJcbj4gaW1wbGVtZW50cyBFc29sdmVTZW9EZXRhaWxzXHJcbntcclxuICAgIC8qKlxyXG4gICAgICogZVNvbHZlIEdlbmVyYXRlZCBJRFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgaWQgPSAwO1xyXG4gICAgLyoqXHJcbiAgICAgKiBDb2RlIGlkZW50aWZ5aW5nIHRoZSBzdG9jayBpdGVtXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBjb2RlID0gJyc7XHJcbiAgICAvKipcclxuICAgICAqIE5hbWUgb2YgdGhlIHN0b2NrIGl0ZW1cclxuICAgICAqL1xyXG4gICAgcHVibGljIG5hbWUgPSAnJztcclxuICAgIC8qKlxyXG4gICAgICogU2VhcmNoIGVuZ2luZSBmcmllbmRseSBuYW1lXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzZWZfbmFtZSA9ICcnO1xyXG4gICAgLyoqXHJcbiAgICAgKiBTaG9ydCBkZXNjcmlwdGlvbiBvZiBzdG9jayBpdGVtXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBkZXNjcmlwdGlvbiA9ICcnO1xyXG4gICAgLyoqXHJcbiAgICAgKiBGdWxsIGRlc2NyaXB0aW9uIG9mIHN0b2NrIGl0ZW1cclxuICAgICAqL1xyXG4gICAgcHVibGljIGV4dGVuZGVkX2Rlc2NyaXB0aW9uID0gJyc7XHJcbiAgICAvKipcclxuICAgICAqIEFjdGl2ZSBzdGF0ZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgYWN0aXZlID0gZmFsc2U7XHJcbiAgICAvKipcclxuICAgICAqIEZlYXR1cmVkIHN0YXRlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBmZWF0dXJlZCA9IGZhbHNlO1xyXG4gICAgLyoqXHJcbiAgICAgKiBRdW90YWJsZSBzdGF0ZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgYWxsb3dfcXVvdGVzID0gdHJ1ZTtcclxuICAgIC8qKlxyXG4gICAgICogT3JkZXJhYmxlIHN0YXRlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBhbGxvd19vcmRlcnMgPSB0cnVlO1xyXG4gICAgLyoqXHJcbiAgICAgKiBJdGVtIG11c3QgYmUgY29sbGVjdGVkLCBub3QgZGVsaXZlcnkgcG9zc2libGVcclxuICAgICAqL1xyXG4gICAgcHVibGljIG11c3RfY29sbGVjdCA9IGZhbHNlO1xyXG4gICAgLyoqXHJcbiAgICAgKiBJdGVtIG5lZWRzIHRvIGJlIGFzc2VtYmxlZCBhZnRlciBwdXJjaGFzZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgcmVxdWlyZXNfYXNzZW1ibHkgPSBmYWxzZTtcclxuICAgIC8qKlxyXG4gICAgICogVGhlIHR5cGUgb2YgZGVsaXZlcnkgY2F0ZWdvcnkgYXNzb2NpYXRlZCB3aXRoIHRoZSBpdGVtXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBkZWxpdmVyeV9jYXRlZ29yeSA9ICdyZWd1bGFyX2l0ZW0nO1xyXG4gICAgLyoqXHJcbiAgICAgKiBDdXN0b20gc3RvY2sgbGFiZWwgYWRkZWQgb24gdG8gaXRlbSB0byBkaXNwbGF5IGZvciB1c2VyXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBjdXN0b21fbGFiZWwgPSAnJztcclxuICAgIC8qKlxyXG4gICAgICogTnVtYmVyIG9mIHN0b2NrIGF2YWlsYWJsZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgYW1vdW50X2luX3N0b2NrID0gMDtcclxuICAgIC8qKlxyXG4gICAgICogVG90YWwgaXRlbXMgbGlua2VkIHRvIHRoZSBpdGVtIGFzIGEgcmVjaXBlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyB0b3RhbF9yZWNpcGVfaXRlbXMgPSAwO1xyXG4gICAgLyoqXHJcbiAgICAgKiBIZWlnaHQgbWVhc3VyZWQgaW4gbWV0ZXJzIChtKVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgaGVpZ2h0ID0gMDtcclxuICAgIC8qKlxyXG4gICAgICogV2lkdGggbWVhc3VyZWQgaW4gbWV0ZXJzIChtKVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgd2lkdGggPSAwO1xyXG4gICAgLyoqXHJcbiAgICAgKiBMZW5ndGggLyBkZXB0aCBtZWFzdXJlZCBpbiBtZXRlcnMgKG0pXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBsZW5ndGggPSAwO1xyXG4gICAgLyoqXHJcbiAgICAgKiBXZWlnaHQgbWVhc3VyZWQgaW4ga2lsb2dyYW1zIChrZylcclxuICAgICAqL1xyXG4gICAgcHVibGljIHdlaWdodCA9IDA7XHJcbiAgICAvKipcclxuICAgICAqIE51bWJlciBvZiBpdGVtcyBpbiBhIHBhY2tcclxuICAgICAqL1xyXG4gICAgcHVibGljIHBhY2tfc2l6ZSA9IDA7XHJcbiAgICAvKipcclxuICAgICAqIERlc2NyaXB0aW9uIG9mIHRoZSBwYWNrXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBwYWNrX2Rlc2NyaXB0aW9uID0gJyc7XHJcbiAgICAvKipcclxuICAgICAqIFVuaXRzIHVzZWQgdG8gbWVhc3VyZSB0aGUgcXVhbnRpdHlcclxuICAgICAqL1xyXG4gICAgcHVibGljIHVuaXRfb2ZfbWVhc3VyZTogRXNvbHZlU3RvY2tVbml0T2ZNZWFzdXJlID0gJ3VuaXQnO1xyXG4gICAgLyoqXHJcbiAgICAgKiBJRCBvZiBkZWZhdWx0IGNhdGVnb3J5IGxpbmtlZCB0byB0aGUgc3RvY2sgaXRlbVxyXG4gICAgICpcclxuICAgICAqIEBkZXByZWNhdGVkIFVzZSBgY2F0ZWdvcnkuZXNvbHZlX2lkYCBmaWVsZCBpbnN0ZWFkXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBjYXRlZ29yeV9pZCA9ICcnO1xyXG4gICAgLyoqXHJcbiAgICAgKiBEZWZhdWx0IGxpbmtlZCBjYXRlZ29yeVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgY2F0ZWdvcnk/OiBFc29sdmVDYXRlZ29yeVRyZWVJdGVtO1xyXG4gICAgLyoqXHJcbiAgICAgKiBJRCBvZiBkZWZhdWx0IHN1YmNhdGVnb3J5IGxpbmtlZCB0byB0aGUgc3RvY2sgaXRlbVxyXG4gICAgICpcclxuICAgICAqIEBkZXByZWNhdGVkIFVzZSBgc3ViY2F0ZWdvcnkuZXNvbHZlX2lkYCBmaWVsZCBpbnN0ZWFkXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdWJjYXRlZ29yeV9pZCA9IDA7XHJcbiAgICAvKipcclxuICAgICAqIERlZmF1bHQgbGlua2VkIHN1YmNhdGVnb3J5XHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdWJjYXRlZ29yeT86IEVzb2x2ZUNhdGVnb3J5VHJlZUl0ZW07XHJcbiAgICAvKipcclxuICAgICAqIElEIG9mIGxpbmtlZCBtYW51ZmFjdHVyZXJcclxuICAgICAqXHJcbiAgICAgKiBAZGVwcmVjYXRlZCBVc2UgYG1hbnVmYWN0dXJlci5pZGAgZmllbGQgaW5zdGVhZFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgbWFudWZhY3R1cmVyc19pZCA9IDA7XHJcbiAgICAvKipcclxuICAgICAqIExpbmtlZCBtYW51ZmFjdHVyZXJcclxuICAgICAqL1xyXG4gICAgcHVibGljIG1hbnVmYWN0dXJlcj86IEVzb2x2ZU1hbnVmYWN0dXJlcjtcclxuICAgIC8qKlxyXG4gICAgICogSUQgb2YgbGlua2VkIHJhbmdlXHJcbiAgICAgKlxyXG4gICAgICogQGRlcHJlY2F0ZWQgVXNlIGByYW5nZS5pZGAgZmllbGQgaW5zdGVhZFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgcmFuZ2VzX2lkID0gMDtcclxuICAgIC8qKlxyXG4gICAgICogTGlua2VkIHJhbmdlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyByYW5nZT86IEVzb2x2ZVJhbmdlO1xyXG4gICAgLyoqXHJcbiAgICAgKiBEZWZhdWx0IHByaWNlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBwcmljZTogRXNvbHZlU3RvY2tQcmljZTtcclxuICAgIC8qKlxyXG4gICAgICogU0VPIHBhZ2UgZGV0YWlsc1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc2VvX2RldGFpbHM6IEVzb2x2ZVNlb0luZm87XHJcbiAgICAvKipcclxuICAgICAqIExpbmtlZCB0YWdzXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyB0YWdzOiBFc29sdmVUYWdbXSA9IFtdO1xyXG4gICAgLyoqXHJcbiAgICAgKiBMaW5rZWQgdG9waWNzXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyB0b3BpY3M6IEVzb2x2ZVRvcGljW10gPSBbXTtcclxuICAgIC8qKlxyXG4gICAgICogU3RvY2sgYmFkZ2VzXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBiYWRnZXM6IEVzb2x2ZVN0b2NrQmFkZ2VbXSA9IFtdO1xyXG4gICAgLyoqXHJcbiAgICAgKiBTdG9jayBpdGVtIGN1c3RvbSBmaWVsZHMuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBjdXN0b21fZmllbGRzPzogVDtcclxuICAgIC8qKlxyXG4gICAgICogQ29sb3Vyc1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgY29sb3VyczogRXNvbHZlQ29sb3VyW10gPSBbXTtcclxuICAgIC8qKlxyXG4gICAgICogU3RvY2sgSXRlbSBMZWFkIFRpbWVzIGZvciBzdXBwbHlcclxuICAgICAqL1xyXG4gICAgcHVibGljIGxlYWRfdGltZXM/OiBFc29sdmVTdG9ja0xlYWRUaW1lcztcclxuICAgIC8qKlxyXG4gICAgICogTGlua2VkIG1hbnVmYWN0dXJlclxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgaGlzdG9yeT86IEVzb2x2ZVN0b2NrVHJhbnNhY3Rpb25IaXN0b3J5O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW1hZ2UgZmlsZW5hbWVcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBpbWFnZV9uYW1lID0gJyc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbWFnZSBMYXN0IG1vZGlmaWVkXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgaW1hZ2VfbGFzdF9tb2RpZmllZCA9ICcnO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogUGF0aCB0byB0aW55IHN0b2NrIGltYWdlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXQgdGlueV9pbWFnZV9zcmMoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5nZXRJbWFnZVBhdGgoJ3RpbnknKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFBhdGggdG8gdGh1bWJuYWlsIHN0b2NrIGltYWdlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXQgdGh1bWJuYWlsX2ltYWdlX3NyYygpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmdldEltYWdlUGF0aCgndGh1bWInKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFBhdGggdG8gc21hbGwgc3RvY2sgaW1hZ2VcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldCBzbWFsbF9pbWFnZV9zcmMoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5nZXRJbWFnZVBhdGgoJ3NtYWxsJyk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQYXRoIHRvIGJpZyBzdG9jayBpbWFnZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0IGJpZ19pbWFnZV9zcmMoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5nZXRJbWFnZVBhdGgoJ2JpZycpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUGF0aCB0byBvcmlnaW5hbCBzdG9jayBpbWFnZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0IG9yaWdpbmFsX2ltYWdlX3NyYygpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmdldEltYWdlUGF0aCgnb3JpZ2luYWwnKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IGF2YWlsYWJsZSgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5hbW91bnRfaW5fc3RvY2sgPiAwO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0cnVjdG9yKHJlY29yZDogUGFydGlhbDxFc29sdmVTdG9ja0Jhc2VSZWNvcmQ8VD4+ID0ge30pIHtcclxuICAgICAgICBsZXQgc2VvX3RpdGxlID0gJyc7XHJcbiAgICAgICAgbGV0IHNlb19rZXl3b3JkcyA9ICcnO1xyXG4gICAgICAgIGxldCBiYXNlX3ByaWNlID0gMDtcclxuICAgICAgICBsZXQgYmFzZV9wcmljZV93aXRoX3RheCA9IDA7XHJcbiAgICAgICAgbGV0IHNlbGxfcHJpY2UgPSAwO1xyXG4gICAgICAgIGxldCBzZWxsX3ByaWNlX3dpdGhfdGF4ID0gMDtcclxuXHJcbiAgICAgICAgaWYgKHJlY29yZCkge1xyXG4gICAgICAgICAgICB0aGlzLmlkID0gKyhyZWNvcmQuaWQgPz8gMCk7XHJcbiAgICAgICAgICAgIHRoaXMuY29kZSA9IHJlY29yZC5jb2RlID8/ICcnO1xyXG4gICAgICAgICAgICB0aGlzLm5hbWUgPSByZWNvcmQubmFtZSA/PyAnJztcclxuICAgICAgICAgICAgdGhpcy5zZWZfbmFtZSA9IHJlY29yZC5zZWZfbmFtZSA/PyAnJztcclxuICAgICAgICAgICAgdGhpcy5kZXNjcmlwdGlvbiA9IHJlY29yZC5kZXNjcmlwdGlvbiA/PyAnJztcclxuICAgICAgICAgICAgdGhpcy5leHRlbmRlZF9kZXNjcmlwdGlvbiA9IHJlY29yZC5leHRlbmRlZF9kZXNjcmlwdGlvbiA/PyAnJztcclxuICAgICAgICAgICAgdGhpcy5pbWFnZV9uYW1lID0gcmVjb3JkLmltYWdlX25hbWUgPz8gJyc7XHJcbiAgICAgICAgICAgIHRoaXMuaW1hZ2VfbGFzdF9tb2RpZmllZCA9IHJlY29yZC5pbWFnZV9sYXN0X21vZGlmaWVkID8/ICcnO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5jYXRlZ29yeV9pZCA9IHJlY29yZC5jYXRlZ29yeV9pZCA/PyAnJztcclxuICAgICAgICAgICAgdGhpcy5zdWJjYXRlZ29yeV9pZCA9ICsocmVjb3JkLnN1YmNhdGVnb3J5X2lkID8/IDApO1xyXG4gICAgICAgICAgICB0aGlzLm1hbnVmYWN0dXJlcnNfaWQgPSArKHJlY29yZC5tYW51ZmFjdHVyZXJzX2lkID8/IDApO1xyXG4gICAgICAgICAgICB0aGlzLnJhbmdlc19pZCA9ICsocmVjb3JkLnJhbmdlc19pZCA/PyAwKTtcclxuICAgICAgICAgICAgdGhpcy5kZWxpdmVyeV9jYXRlZ29yeSA9IHJlY29yZC5kZWxpdmVyeV9jYXRlZ29yeSA/PyAncmVndWxhcl9pdGVtJztcclxuICAgICAgICAgICAgdGhpcy5jdXN0b21fbGFiZWwgPSByZWNvcmQuY3VzdG9tX2xhYmVsID8/ICcnO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5tdXN0X2NvbGxlY3QgPSAhISsocmVjb3JkLm11c3RfY29sbGVjdCA/PyBmYWxzZSk7XHJcbiAgICAgICAgICAgIHRoaXMucmVxdWlyZXNfYXNzZW1ibHkgPSAhISsocmVjb3JkLnJlcXVpcmVzX2Fzc2VtYmx5ID8/IGZhbHNlKTtcclxuICAgICAgICAgICAgdGhpcy5hY3RpdmUgPSAhISsocmVjb3JkLmlzX2FjdGl2ZSA/PyBmYWxzZSk7XHJcbiAgICAgICAgICAgIHRoaXMuZmVhdHVyZWQgPSAhISsocmVjb3JkLmlzX2ZlYXR1cmVkID8/IGZhbHNlKTtcclxuICAgICAgICAgICAgdGhpcy5hbGxvd19xdW90ZXMgPSByZWNvcmQuYWxsb3dfcXVvdGVzID8/IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuYWxsb3dfb3JkZXJzID0gcmVjb3JkLmFsbG93X29yZGVycyA/PyB0cnVlO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5hbW91bnRfaW5fc3RvY2sgPSArKHJlY29yZC5vbmhhbmQgPz8gMCk7XHJcbiAgICAgICAgICAgIHRoaXMudG90YWxfcmVjaXBlX2l0ZW1zID0gKyhyZWNvcmQudG90YWxfcmVjaXBlX2l0ZW1zID8/IDApO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5wYWNrX3NpemUgPSArKHJlY29yZC5pdGVtc19pbl9wYWNrID8/IDApO1xyXG4gICAgICAgICAgICB0aGlzLnBhY2tfZGVzY3JpcHRpb24gPSByZWNvcmQucGFja19kZXNjcmlwdGlvbiA/PyAnJztcclxuXHJcbiAgICAgICAgICAgIHRoaXMuaGVpZ2h0ID0gKyhyZWNvcmQuaGVpZ2h0ID8/IDApO1xyXG4gICAgICAgICAgICB0aGlzLndpZHRoID0gKyhyZWNvcmQud2lkdGggPz8gMCk7XHJcbiAgICAgICAgICAgIHRoaXMubGVuZ3RoID0gKyhyZWNvcmQubGVuZ3RoID8/IDApO1xyXG4gICAgICAgICAgICB0aGlzLndlaWdodCA9ICsocmVjb3JkLndlaWdodCA/PyAwKTtcclxuXHJcbiAgICAgICAgICAgIGlmIChyZWNvcmQudW5pdF9vZl9tZWFzdXJlKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnVuaXRfb2ZfbWVhc3VyZSA9IHJlY29yZC51bml0X29mX21lYXN1cmU7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGJhc2VfcHJpY2UgPSArKHJlY29yZC5yZWd1bGFyX3NlbGxwcmljZSA/PyAwKTtcclxuICAgICAgICAgICAgYmFzZV9wcmljZV93aXRoX3RheCA9ICsocmVjb3JkLnJlZ3VsYXJfc2VsbHByaWNlX2luY2x1c2l2ZSA/PyAwKTtcclxuICAgICAgICAgICAgc2VsbF9wcmljZSA9ICsocmVjb3JkLnNlbGxwcmljZSA/PyAwKTtcclxuICAgICAgICAgICAgc2VsbF9wcmljZV93aXRoX3RheCA9ICsocmVjb3JkLnNlbGxwcmljZV9pbmNsdXNpdmUgPz8gMCk7XHJcblxyXG4gICAgICAgICAgICBpZiAocmVjb3JkLnRhZ3MgJiYgcmVjb3JkLnRhZ3MubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCB0YWcgb2YgcmVjb3JkLnRhZ3MpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRhZ3MucHVzaChuZXcgRXNvbHZlVGFnKHRhZykpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAocmVjb3JkLnRvcGljcyAmJiByZWNvcmQudG9waWNzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgdG9waWMgb2YgcmVjb3JkLnRvcGljcykge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudG9waWNzLnB1c2gobmV3IEVzb2x2ZVRvcGljKHRvcGljKSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmIChyZWNvcmQuYmFkZ2VzICYmIHJlY29yZC5iYWRnZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBiYWRnZSBvZiByZWNvcmQuYmFkZ2VzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5iYWRnZXMucHVzaChcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmV3IEVzb2x2ZVN0b2NrQmFkZ2UoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICArYmFkZ2UuaWQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWRnZS50ZXh0LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFkZ2UuaWRlbnRpZmllcixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhZGdlLmZvbnRfY29sb3VyLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFkZ2UuYmFkZ2VfY29sb3VyLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgK2JhZGdlLnNvcnRfcHJpb3JpdHksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKHJlY29yZC5jYXRlZ29yeSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jYXRlZ29yeSA9IG5ldyBFc29sdmVDYXRlZ29yeVRyZWVJdGVtKFxyXG4gICAgICAgICAgICAgICAgICAgIHJlY29yZC5jYXRlZ29yeS50eXBlLFxyXG4gICAgICAgICAgICAgICAgICAgIHJlY29yZC5jYXRlZ29yeS5pZCxcclxuICAgICAgICAgICAgICAgICAgICByZWNvcmQuY2F0ZWdvcnkucGFyZW50X2lkLFxyXG4gICAgICAgICAgICAgICAgICAgIHJlY29yZC5jYXRlZ29yeS5kZXNjcmlwdGlvbixcclxuICAgICAgICAgICAgICAgICAgICByZWNvcmQuY2F0ZWdvcnkuc2VmX2Rlc2NyaXB0aW9uLFxyXG4gICAgICAgICAgICAgICAgICAgIHJlY29yZC5jYXRlZ29yeS5zaG9ydF9kZXNjcmlwdGlvbixcclxuICAgICAgICAgICAgICAgICAgICByZWNvcmQuY2F0ZWdvcnkuc29ydF9wcmlvcml0eSxcclxuICAgICAgICAgICAgICAgICAgICByZWNvcmQuY2F0ZWdvcnkuYWN0aXZlLFxyXG4gICAgICAgICAgICAgICAgICAgIHJlY29yZC5jYXRlZ29yeS5kaXNwbGF5X29ubHksXHJcbiAgICAgICAgICAgICAgICAgICAgcmVjb3JkLmNhdGVnb3J5LmltYWdlLFxyXG4gICAgICAgICAgICAgICAgICAgIHJlY29yZC5jYXRlZ29yeS5zZW9fcGFnZV90aXRsZSxcclxuICAgICAgICAgICAgICAgICAgICByZWNvcmQuY2F0ZWdvcnkuc2VvX2tleXdvcmRzLFxyXG4gICAgICAgICAgICAgICAgICAgIHJlY29yZC5jYXRlZ29yeS5zZW9fZGVzY3JpcHRpb24sXHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAocmVjb3JkLnN1YmNhdGVnb3J5KSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnN1YmNhdGVnb3J5ID0gbmV3IEVzb2x2ZUNhdGVnb3J5VHJlZUl0ZW0oXHJcbiAgICAgICAgICAgICAgICAgICAgcmVjb3JkLnN1YmNhdGVnb3J5LnR5cGUsXHJcbiAgICAgICAgICAgICAgICAgICAgcmVjb3JkLnN1YmNhdGVnb3J5LmlkLFxyXG4gICAgICAgICAgICAgICAgICAgIHJlY29yZC5zdWJjYXRlZ29yeS5wYXJlbnRfaWQsXHJcbiAgICAgICAgICAgICAgICAgICAgcmVjb3JkLnN1YmNhdGVnb3J5LmRlc2NyaXB0aW9uLFxyXG4gICAgICAgICAgICAgICAgICAgIHJlY29yZC5zdWJjYXRlZ29yeS5zZWZfZGVzY3JpcHRpb24sXHJcbiAgICAgICAgICAgICAgICAgICAgcmVjb3JkLnN1YmNhdGVnb3J5LnNob3J0X2Rlc2NyaXB0aW9uLFxyXG4gICAgICAgICAgICAgICAgICAgIHJlY29yZC5zdWJjYXRlZ29yeS5zb3J0X3ByaW9yaXR5LFxyXG4gICAgICAgICAgICAgICAgICAgIHJlY29yZC5zdWJjYXRlZ29yeS5hY3RpdmUsXHJcbiAgICAgICAgICAgICAgICAgICAgcmVjb3JkLnN1YmNhdGVnb3J5LmRpc3BsYXlfb25seSxcclxuICAgICAgICAgICAgICAgICAgICByZWNvcmQuc3ViY2F0ZWdvcnkuaW1hZ2UsXHJcbiAgICAgICAgICAgICAgICAgICAgcmVjb3JkLnN1YmNhdGVnb3J5LnNlb19wYWdlX3RpdGxlLFxyXG4gICAgICAgICAgICAgICAgICAgIHJlY29yZC5zdWJjYXRlZ29yeS5zZW9fa2V5d29yZHMsXHJcbiAgICAgICAgICAgICAgICAgICAgcmVjb3JkLnN1YmNhdGVnb3J5LnNlb19kZXNjcmlwdGlvbixcclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmIChyZWNvcmQubWFudWZhY3R1cmVyKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm1hbnVmYWN0dXJlciA9IG5ldyBFc29sdmVNYW51ZmFjdHVyZXIocmVjb3JkLm1hbnVmYWN0dXJlcik7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmIChyZWNvcmQucmFuZ2UpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMucmFuZ2UgPSBuZXcgRXNvbHZlUmFuZ2UocmVjb3JkLnJhbmdlKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKHJlY29yZC5jb2xvdXJzICYmIHJlY29yZC5jb2xvdXJzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgY29sb3VyIG9mIHJlY29yZC5jb2xvdXJzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb2xvdXJzLnB1c2gobmV3IEVzb2x2ZUNvbG91cihjb2xvdXIpKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKHJlY29yZC5sZWFkX3RpbWVzKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxlYWRfdGltZXMgPSBuZXcgRXNvbHZlU3RvY2tMZWFkVGltZXMocmVjb3JkLmxlYWRfdGltZXMpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAocmVjb3JkLmN1c3RvbV9maWVsZHMpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuY3VzdG9tX2ZpZWxkcyA9IHJlY29yZC5jdXN0b21fZmllbGRzO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAocmVjb3JkLnRvdGFsX29yZGVyX3F0eSB8fCByZWNvcmQudG90YWxfcXVvdGVfcXR5KSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCB0b3RhbF9vcmRlcl9xdHkgPSArKHJlY29yZC50b3RhbF9vcmRlcl9xdHkgPz8gMCk7XHJcbiAgICAgICAgICAgICAgICBjb25zdCB0b3RhbF9xdW90ZV9xdHkgPSArKHJlY29yZC50b3RhbF9xdW90ZV9xdHkgPz8gMCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmhpc3RvcnkgPSBuZXcgRXNvbHZlU3RvY2tUcmFuc2FjdGlvbkhpc3RvcnkoXHJcbiAgICAgICAgICAgICAgICAgICAgdG90YWxfb3JkZXJfcXR5LFxyXG4gICAgICAgICAgICAgICAgICAgIHRvdGFsX3F1b3RlX3F0eSxcclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHNlb190aXRsZSA9IHJlY29yZC5zZW9fcGFnZV90aXRsZSA/PyAnJztcclxuICAgICAgICAgICAgc2VvX2tleXdvcmRzID0gcmVjb3JkLnNlb19rZXl3b3JkcyA/PyAnJztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMucHJpY2UgPSBuZXcgRXNvbHZlU3RvY2tQcmljZShcclxuICAgICAgICAgICAgYmFzZV9wcmljZSxcclxuICAgICAgICAgICAgYmFzZV9wcmljZV93aXRoX3RheCxcclxuICAgICAgICAgICAgc2VsbF9wcmljZSxcclxuICAgICAgICAgICAgc2VsbF9wcmljZV93aXRoX3RheCxcclxuICAgICAgICAgICAgcmVjb3JkLnZhdF9yYXRlLFxyXG4gICAgICAgICAgICByZWNvcmQudmF0X2l0ZW0sXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgaWYgKHNlb190aXRsZS50cmltKCkgPT09ICcnKSB7XHJcbiAgICAgICAgICAgIHNlb190aXRsZSA9IHRoaXMubmFtZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuc2VvX2RldGFpbHMgPSBuZXcgRXNvbHZlU2VvSW5mbyhcclxuICAgICAgICAgICAgc2VvX3RpdGxlLFxyXG4gICAgICAgICAgICB0aGlzLmRlc2NyaXB0aW9uLFxyXG4gICAgICAgICAgICBzZW9fa2V5d29yZHMsXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0SW1hZ2VQYXRoKGltYWdlX3NpemU6IEVzb2x2ZVN0b2NrSW1hZ2VTaXplKTogc3RyaW5nIHtcclxuICAgICAgICBpZiAodGhpcy5pbWFnZV9uYW1lICE9PSAnJykge1xyXG4gICAgICAgICAgICBsZXQgcGFyYW0gPSAnJztcclxuXHJcbiAgICAgICAgICAgIGlmICh0aGlzLmltYWdlX2xhc3RfbW9kaWZpZWQgIT09ICcnKSB7XHJcbiAgICAgICAgICAgICAgICBwYXJhbSA9IGA/dD0ke3RoaXMuaW1hZ2VfbGFzdF9tb2RpZmllZH1gO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICByZXR1cm4gYC9pbWFnZXMvc3RvY2svJHtpbWFnZV9zaXplfS8ke3RoaXMuaW1hZ2VfbmFtZX0ke3BhcmFtfWA7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gJyc7XHJcbiAgICB9XHJcbn1cclxuIl19
307
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXN0b2NrLWl0ZW0tYmFzZS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmctZXNvbHZlLWNvbm5lY3Qvc3JjL2xpYi9zdG9jay9jbGFzc2VzL2Vzb2x2ZS1zdG9jay1pdGVtLWJhc2UubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFvQixhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVuRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzNDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDdkMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUkzQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDdkUsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFFekYsTUFBTSxPQUFPLG1CQUFtQjtJQTBPNUIsWUFBWSxTQUE0QyxFQUFFO1FBdE8xRDs7V0FFRztRQUNJLE9BQUUsR0FBRyxDQUFDLENBQUM7UUFDZDs7V0FFRztRQUNJLFNBQUksR0FBRyxFQUFFLENBQUM7UUFDakI7O1dBRUc7UUFDSSxTQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ2pCOztXQUVHO1FBQ0ksYUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNyQjs7V0FFRztRQUNLLHFCQUFn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Q2hCLE9BQU8sSUFBSSxDQUFDLGVBQWUsR0FBRyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQStLTSxZQUFZLENBQUMsVUFBZ0M7UUFDaEQsSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLEVBQUUsRUFBRTtZQUN4QixJQUFJLEtBQUssR0FBRyxFQUFFLENBQUM7WUFFZixJQUFJLElBQUksQ0FBQyxtQkFBbUIsS0FBSyxFQUFFLEVBQUU7Z0JBQ2pDLEtBQUssR0FBRyxNQUFNLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO2FBQzVDO1lBRUQsT0FBTyxpQkFBaUIsVUFBVSxJQUFJLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxFQUFFLENBQUM7U0FDbkU7UUFFRCxPQUFPLEVBQUUsQ0FBQztJQUNkLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVzb2x2ZUN1c3RvbUZpZWxkcyB9IGZyb20gJy4uLy4uL3NoYXJlZC9jdXN0b20tZmllbGRzJztcclxuaW1wb3J0IHsgRXNvbHZlU2VvRGV0YWlscywgRXNvbHZlU2VvSW5mbyB9IGZyb20gJy4uLy4uL3NoYXJlZC9zZW8nO1xyXG5cclxuaW1wb3J0IHsgRXNvbHZlQ2F0ZWdvcnlUcmVlSXRlbSB9IGZyb20gJy4uLy4uL2NhdGVnb3J5LXRyZWUnO1xyXG5pbXBvcnQgeyBFc29sdmVNYW51ZmFjdHVyZXIgfSBmcm9tICcuLi8uLi9tYW51ZmFjdHVyZXJzJztcclxuaW1wb3J0IHsgRXNvbHZlUmFuZ2UgfSBmcm9tICcuLi8uLi9yYW5nZXMnO1xyXG5pbXBvcnQgeyBFc29sdmVUYWcgfSBmcm9tICcuLi8uLi90YWdzJztcclxuaW1wb3J0IHsgRXNvbHZlVG9waWMgfSBmcm9tICcuLi8uLi90b3BpY3MnO1xyXG5cclxuaW1wb3J0IHsgRXNvbHZlU3RvY2tJbWFnZVNpemUsIEVzb2x2ZVN0b2NrVW5pdE9mTWVhc3VyZSB9IGZyb20gJy4uL3R5cGVzJztcclxuaW1wb3J0IHsgRXNvbHZlU3RvY2tCYXNlUmVjb3JkIH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7IEVzb2x2ZVN0b2NrQmFkZ2UgfSBmcm9tICcuL2Vzb2x2ZS1zdG9jay1iYWRnZS5tb2RlbCc7XHJcbmltcG9ydCB7IEVzb2x2ZVN0b2NrUHJpY2UgfSBmcm9tICcuL2Vzb2x2ZS1zdG9jay1wcmljZS5tb2RlbCc7XHJcbmltcG9ydCB7IEVzb2x2ZUNvbG91ciB9IGZyb20gJy4vZXNvbHZlLWNvbG91ci5tb2RlbCc7XHJcbmltcG9ydCB7IEVzb2x2ZVN0b2NrTGVhZFRpbWVzIH0gZnJvbSAnLi9lc29sdmUtc3RvY2stbGVhZC10aW1lcy5tb2RlbCc7XHJcbmltcG9ydCB7IEVzb2x2ZVN0b2NrVHJhbnNhY3Rpb25IaXN0b3J5IH0gZnJvbSAnLi9lc29sdmUtc3RvY2stdHJhbnNhY3Rpb24taGlzdG9yeS5tb2RlbCc7XHJcblxyXG5leHBvcnQgY2xhc3MgRXNvbHZlU3RvY2tJdGVtQmFzZTxcclxuICAgIFQgZXh0ZW5kcyBFc29sdmVDdXN0b21GaWVsZHMgPSBFc29sdmVDdXN0b21GaWVsZHMsXHJcbj4gaW1wbGVtZW50cyBFc29sdmVTZW9EZXRhaWxzXHJcbntcclxuICAgIC8qKlxyXG4gICAgICogZVNvbHZlIEdlbmVyYXRlZCBJRFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgaWQgPSAwO1xyXG4gICAgLyoqXHJcbiAgICAgKiBDb2RlIGlkZW50aWZ5aW5nIHRoZSBzdG9jayBpdGVtXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBjb2RlID0gJyc7XHJcbiAgICAvKipcclxuICAgICAqIE5hbWUgb2YgdGhlIHN0b2NrIGl0ZW1cclxuICAgICAqL1xyXG4gICAgcHVibGljIG5hbWUgPSAnJztcclxuICAgIC8qKlxyXG4gICAgICogU2VhcmNoIGVuZ2luZSBmcmllbmRseSBuYW1lXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzZWZfbmFtZSA9ICcnO1xyXG4gICAgLyoqXHJcbiAgICAgKiBTZWFyY2ggY29tcG9zaXRlIGZpZWxkIG1hZGUgdXAgb2Yga2V5IHBocmFzZXNcclxuICAgICAqL1xyXG4gICAgIHB1YmxpYyBzZWFyY2hfY29tcG9zaXRlID0gJyc7XHJcbiAgICAvKipcclxuICAgICAqIFR5cGUgZmllbGQuIEdlbmVyYWwgaGlnaCBncm91cGluZ1xyXG4gICAgICovXHJcbiAgICAgcHVibGljIHR5cGUgPSAnJztcclxuICAgIC8qKlxyXG4gICAgICogU3ViIHR5cGUgZmllbGQuIEdlbmVyYWwgaGlnaCBncm91cGluZ1xyXG4gICAgICovXHJcbiAgICAgcHVibGljIHN1Yl90eXBlID0gJyc7XHJcbiAgICAvKipcclxuICAgICAqIFNob3J0IGRlc2NyaXB0aW9uIG9mIHN0b2NrIGl0ZW1cclxuICAgICAqL1xyXG4gICAgcHVibGljIGRlc2NyaXB0aW9uID0gJyc7XHJcbiAgICAvKipcclxuICAgICAqIEZ1bGwgZGVzY3JpcHRpb24gb2Ygc3RvY2sgaXRlbVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZXh0ZW5kZWRfZGVzY3JpcHRpb24gPSAnJztcclxuICAgIC8qKlxyXG4gICAgICogQWN0aXZlIHN0YXRlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBhY3RpdmUgPSBmYWxzZTtcclxuICAgIC8qKlxyXG4gICAgICogRmVhdHVyZWQgc3RhdGVcclxuICAgICAqL1xyXG4gICAgcHVibGljIGZlYXR1cmVkID0gZmFsc2U7XHJcbiAgICAvKipcclxuICAgICAqIFF1b3RhYmxlIHN0YXRlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBhbGxvd19xdW90ZXMgPSB0cnVlO1xyXG4gICAgLyoqXHJcbiAgICAgKiBPcmRlcmFibGUgc3RhdGVcclxuICAgICAqL1xyXG4gICAgcHVibGljIGFsbG93X29yZGVycyA9IHRydWU7XHJcbiAgICAvKipcclxuICAgICAqIEl0ZW0gbXVzdCBiZSBjb2xsZWN0ZWQsIG5vdCBkZWxpdmVyeSBwb3NzaWJsZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgbXVzdF9jb2xsZWN0ID0gZmFsc2U7XHJcbiAgICAvKipcclxuICAgICAqIEl0ZW0gbmVlZHMgdG8gYmUgYXNzZW1ibGVkIGFmdGVyIHB1cmNoYXNlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyByZXF1aXJlc19hc3NlbWJseSA9IGZhbHNlO1xyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgdHlwZSBvZiBkZWxpdmVyeSBjYXRlZ29yeSBhc3NvY2lhdGVkIHdpdGggdGhlIGl0ZW1cclxuICAgICAqL1xyXG4gICAgcHVibGljIGRlbGl2ZXJ5X2NhdGVnb3J5ID0gJ3JlZ3VsYXJfaXRlbSc7XHJcbiAgICAvKipcclxuICAgICAqIEN1c3RvbSBzdG9jayBsYWJlbCBhZGRlZCBvbiB0byBpdGVtIHRvIGRpc3BsYXkgZm9yIHVzZXJcclxuICAgICAqL1xyXG4gICAgcHVibGljIGN1c3RvbV9sYWJlbCA9ICcnO1xyXG4gICAgLyoqXHJcbiAgICAgKiBOdW1iZXIgb2Ygc3RvY2sgYXZhaWxhYmxlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBhbW91bnRfaW5fc3RvY2sgPSAwO1xyXG4gICAgLyoqXHJcbiAgICAgKiBUb3RhbCBpdGVtcyBsaW5rZWQgdG8gdGhlIGl0ZW0gYXMgYSByZWNpcGVcclxuICAgICAqL1xyXG4gICAgcHVibGljIHRvdGFsX3JlY2lwZV9pdGVtcyA9IDA7XHJcbiAgICAvKipcclxuICAgICAqIEhlaWdodCBtZWFzdXJlZCBpbiBtZXRlcnMgKG0pXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBoZWlnaHQgPSAwO1xyXG4gICAgLyoqXHJcbiAgICAgKiBXaWR0aCBtZWFzdXJlZCBpbiBtZXRlcnMgKG0pXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyB3aWR0aCA9IDA7XHJcbiAgICAvKipcclxuICAgICAqIExlbmd0aCAvIGRlcHRoIG1lYXN1cmVkIGluIG1ldGVycyAobSlcclxuICAgICAqL1xyXG4gICAgcHVibGljIGxlbmd0aCA9IDA7XHJcbiAgICAvKipcclxuICAgICAqIFdlaWdodCBtZWFzdXJlZCBpbiBraWxvZ3JhbXMgKGtnKVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgd2VpZ2h0ID0gMDtcclxuICAgIC8qKlxyXG4gICAgICogTnVtYmVyIG9mIGl0ZW1zIGluIGEgcGFja1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgcGFja19zaXplID0gMDtcclxuICAgIC8qKlxyXG4gICAgICogRGVzY3JpcHRpb24gb2YgdGhlIHBhY2tcclxuICAgICAqL1xyXG4gICAgcHVibGljIHBhY2tfZGVzY3JpcHRpb24gPSAnJztcclxuICAgIC8qKlxyXG4gICAgICogVW5pdHMgdXNlZCB0byBtZWFzdXJlIHRoZSBxdWFudGl0eVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgdW5pdF9vZl9tZWFzdXJlOiBFc29sdmVTdG9ja1VuaXRPZk1lYXN1cmUgPSAndW5pdCc7XHJcbiAgICAvKipcclxuICAgICAqIElEIG9mIGRlZmF1bHQgY2F0ZWdvcnkgbGlua2VkIHRvIHRoZSBzdG9jayBpdGVtXHJcbiAgICAgKlxyXG4gICAgICogQGRlcHJlY2F0ZWQgVXNlIGBjYXRlZ29yeS5lc29sdmVfaWRgIGZpZWxkIGluc3RlYWRcclxuICAgICAqL1xyXG4gICAgcHVibGljIGNhdGVnb3J5X2lkID0gJyc7XHJcbiAgICAvKipcclxuICAgICAqIERlZmF1bHQgbGlua2VkIGNhdGVnb3J5XHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBjYXRlZ29yeT86IEVzb2x2ZUNhdGVnb3J5VHJlZUl0ZW07XHJcbiAgICAvKipcclxuICAgICAqIElEIG9mIGRlZmF1bHQgc3ViY2F0ZWdvcnkgbGlua2VkIHRvIHRoZSBzdG9jayBpdGVtXHJcbiAgICAgKlxyXG4gICAgICogQGRlcHJlY2F0ZWQgVXNlIGBzdWJjYXRlZ29yeS5lc29sdmVfaWRgIGZpZWxkIGluc3RlYWRcclxuICAgICAqL1xyXG4gICAgcHVibGljIHN1YmNhdGVnb3J5X2lkID0gMDtcclxuICAgIC8qKlxyXG4gICAgICogRGVmYXVsdCBsaW5rZWQgc3ViY2F0ZWdvcnlcclxuICAgICAqL1xyXG4gICAgcHVibGljIHN1YmNhdGVnb3J5PzogRXNvbHZlQ2F0ZWdvcnlUcmVlSXRlbTtcclxuICAgIC8qKlxyXG4gICAgICogSUQgb2YgbGlua2VkIG1hbnVmYWN0dXJlclxyXG4gICAgICpcclxuICAgICAqIEBkZXByZWNhdGVkIFVzZSBgbWFudWZhY3R1cmVyLmlkYCBmaWVsZCBpbnN0ZWFkXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBtYW51ZmFjdHVyZXJzX2lkID0gMDtcclxuICAgIC8qKlxyXG4gICAgICogTGlua2VkIG1hbnVmYWN0dXJlclxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgbWFudWZhY3R1cmVyPzogRXNvbHZlTWFudWZhY3R1cmVyO1xyXG4gICAgLyoqXHJcbiAgICAgKiBJRCBvZiBsaW5rZWQgcmFuZ2VcclxuICAgICAqXHJcbiAgICAgKiBAZGVwcmVjYXRlZCBVc2UgYHJhbmdlLmlkYCBmaWVsZCBpbnN0ZWFkXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyByYW5nZXNfaWQgPSAwO1xyXG4gICAgLyoqXHJcbiAgICAgKiBMaW5rZWQgcmFuZ2VcclxuICAgICAqL1xyXG4gICAgcHVibGljIHJhbmdlPzogRXNvbHZlUmFuZ2U7XHJcbiAgICAvKipcclxuICAgICAqIERlZmF1bHQgcHJpY2VcclxuICAgICAqL1xyXG4gICAgcHVibGljIHByaWNlOiBFc29sdmVTdG9ja1ByaWNlO1xyXG4gICAgLyoqXHJcbiAgICAgKiBTRU8gcGFnZSBkZXRhaWxzXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzZW9fZGV0YWlsczogRXNvbHZlU2VvSW5mbztcclxuICAgIC8qKlxyXG4gICAgICogTGlua2VkIHRhZ3NcclxuICAgICAqL1xyXG4gICAgcHVibGljIHRhZ3M6IEVzb2x2ZVRhZ1tdID0gW107XHJcbiAgICAvKipcclxuICAgICAqIExpbmtlZCB0b3BpY3NcclxuICAgICAqL1xyXG4gICAgcHVibGljIHRvcGljczogRXNvbHZlVG9waWNbXSA9IFtdO1xyXG4gICAgLyoqXHJcbiAgICAgKiBTdG9jayBiYWRnZXNcclxuICAgICAqL1xyXG4gICAgcHVibGljIGJhZGdlczogRXNvbHZlU3RvY2tCYWRnZVtdID0gW107XHJcbiAgICAvKipcclxuICAgICAqIFN0b2NrIGl0ZW0gY3VzdG9tIGZpZWxkcy5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGN1c3RvbV9maWVsZHM/OiBUO1xyXG4gICAgLyoqXHJcbiAgICAgKiBDb2xvdXJzXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBjb2xvdXJzOiBFc29sdmVDb2xvdXJbXSA9IFtdO1xyXG4gICAgLyoqXHJcbiAgICAgKiBTdG9jayBJdGVtIExlYWQgVGltZXMgZm9yIHN1cHBseVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgbGVhZF90aW1lcz86IEVzb2x2ZVN0b2NrTGVhZFRpbWVzO1xyXG4gICAgLyoqXHJcbiAgICAgKiBMaW5rZWQgbWFudWZhY3R1cmVyXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBoaXN0b3J5PzogRXNvbHZlU3RvY2tUcmFuc2FjdGlvbkhpc3Rvcnk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbWFnZSBmaWxlbmFtZVxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGltYWdlX25hbWUgPSAnJztcclxuXHJcbiAgICAvKipcclxuICAgICAqIEltYWdlIExhc3QgbW9kaWZpZWRcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBpbWFnZV9sYXN0X21vZGlmaWVkID0gJyc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQYXRoIHRvIHRpbnkgc3RvY2sgaW1hZ2VcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldCB0aW55X2ltYWdlX3NyYygpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmdldEltYWdlUGF0aCgndGlueScpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUGF0aCB0byB0aHVtYm5haWwgc3RvY2sgaW1hZ2VcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldCB0aHVtYm5haWxfaW1hZ2Vfc3JjKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0SW1hZ2VQYXRoKCd0aHVtYicpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUGF0aCB0byBzbWFsbCBzdG9jayBpbWFnZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0IHNtYWxsX2ltYWdlX3NyYygpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmdldEltYWdlUGF0aCgnc21hbGwnKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFBhdGggdG8gYmlnIHN0b2NrIGltYWdlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXQgYmlnX2ltYWdlX3NyYygpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmdldEltYWdlUGF0aCgnYmlnJyk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQYXRoIHRvIG9yaWdpbmFsIHN0b2NrIGltYWdlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXQgb3JpZ2luYWxfaW1hZ2Vfc3JjKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0SW1hZ2VQYXRoKCdvcmlnaW5hbCcpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgYXZhaWxhYmxlKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmFtb3VudF9pbl9zdG9jayA+IDA7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3RydWN0b3IocmVjb3JkOiBQYXJ0aWFsPEVzb2x2ZVN0b2NrQmFzZVJlY29yZDxUPj4gPSB7fSkge1xyXG4gICAgICAgIGxldCBzZW9fdGl0bGUgPSAnJztcclxuICAgICAgICBsZXQgc2VvX2tleXdvcmRzID0gJyc7XHJcbiAgICAgICAgbGV0IGJhc2VfcHJpY2UgPSAwO1xyXG4gICAgICAgIGxldCBiYXNlX3ByaWNlX3dpdGhfdGF4ID0gMDtcclxuICAgICAgICBsZXQgc2VsbF9wcmljZSA9IDA7XHJcbiAgICAgICAgbGV0IHNlbGxfcHJpY2Vfd2l0aF90YXggPSAwO1xyXG5cclxuICAgICAgICBpZiAocmVjb3JkKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaWQgPSArKHJlY29yZC5pZCA/PyAwKTtcclxuICAgICAgICAgICAgdGhpcy5jb2RlID0gcmVjb3JkLmNvZGUgPz8gJyc7XHJcbiAgICAgICAgICAgIHRoaXMubmFtZSA9IHJlY29yZC5uYW1lID8/ICcnO1xyXG4gICAgICAgICAgICB0aGlzLnNlZl9uYW1lID0gcmVjb3JkLnNlZl9uYW1lID8/ICcnO1xyXG4gICAgICAgICAgICB0aGlzLnNlYXJjaF9jb21wb3NpdGUgPSByZWNvcmQuc2VhcmNoX2NvbXBvc2l0ZSA/PyAnJztcclxuICAgICAgICAgICAgdGhpcy50eXBlID0gcmVjb3JkLnR5cGUgPz8gJyc7XHJcbiAgICAgICAgICAgIHRoaXMuc3ViX3R5cGUgPSByZWNvcmQuc3ViX3R5cGUgPz8gJyc7XHJcbiAgICAgICAgICAgIHRoaXMuZGVzY3JpcHRpb24gPSByZWNvcmQuZGVzY3JpcHRpb24gPz8gJyc7XHJcbiAgICAgICAgICAgIHRoaXMuZXh0ZW5kZWRfZGVzY3JpcHRpb24gPSByZWNvcmQuZXh0ZW5kZWRfZGVzY3JpcHRpb24gPz8gJyc7XHJcbiAgICAgICAgICAgIHRoaXMuaW1hZ2VfbmFtZSA9IHJlY29yZC5pbWFnZV9uYW1lID8/ICcnO1xyXG4gICAgICAgICAgICB0aGlzLmltYWdlX2xhc3RfbW9kaWZpZWQgPSByZWNvcmQuaW1hZ2VfbGFzdF9tb2RpZmllZCA/PyAnJztcclxuXHJcbiAgICAgICAgICAgIHRoaXMuY2F0ZWdvcnlfaWQgPSByZWNvcmQuY2F0ZWdvcnlfaWQgPz8gJyc7XHJcbiAgICAgICAgICAgIHRoaXMuc3ViY2F0ZWdvcnlfaWQgPSArKHJlY29yZC5zdWJjYXRlZ29yeV9pZCA/PyAwKTtcclxuICAgICAgICAgICAgdGhpcy5tYW51ZmFjdHVyZXJzX2lkID0gKyhyZWNvcmQubWFudWZhY3R1cmVyc19pZCA/PyAwKTtcclxuICAgICAgICAgICAgdGhpcy5yYW5nZXNfaWQgPSArKHJlY29yZC5yYW5nZXNfaWQgPz8gMCk7XHJcbiAgICAgICAgICAgIHRoaXMuZGVsaXZlcnlfY2F0ZWdvcnkgPSByZWNvcmQuZGVsaXZlcnlfY2F0ZWdvcnkgPz8gJ3JlZ3VsYXJfaXRlbSc7XHJcbiAgICAgICAgICAgIHRoaXMuY3VzdG9tX2xhYmVsID0gcmVjb3JkLmN1c3RvbV9sYWJlbCA/PyAnJztcclxuXHJcbiAgICAgICAgICAgIHRoaXMubXVzdF9jb2xsZWN0ID0gISErKHJlY29yZC5tdXN0X2NvbGxlY3QgPz8gZmFsc2UpO1xyXG4gICAgICAgICAgICB0aGlzLnJlcXVpcmVzX2Fzc2VtYmx5ID0gISErKHJlY29yZC5yZXF1aXJlc19hc3NlbWJseSA/PyBmYWxzZSk7XHJcbiAgICAgICAgICAgIHRoaXMuYWN0aXZlID0gISErKHJlY29yZC5pc19hY3RpdmUgPz8gZmFsc2UpO1xyXG4gICAgICAgICAgICB0aGlzLmZlYXR1cmVkID0gISErKHJlY29yZC5pc19mZWF0dXJlZCA/PyBmYWxzZSk7XHJcbiAgICAgICAgICAgIHRoaXMuYWxsb3dfcXVvdGVzID0gcmVjb3JkLmFsbG93X3F1b3RlcyA/PyB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLmFsbG93X29yZGVycyA9IHJlY29yZC5hbGxvd19vcmRlcnMgPz8gdHJ1ZTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuYW1vdW50X2luX3N0b2NrID0gKyhyZWNvcmQub25oYW5kID8/IDApO1xyXG4gICAgICAgICAgICB0aGlzLnRvdGFsX3JlY2lwZV9pdGVtcyA9ICsocmVjb3JkLnRvdGFsX3JlY2lwZV9pdGVtcyA/PyAwKTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMucGFja19zaXplID0gKyhyZWNvcmQuaXRlbXNfaW5fcGFjayA/PyAwKTtcclxuICAgICAgICAgICAgdGhpcy5wYWNrX2Rlc2NyaXB0aW9uID0gcmVjb3JkLnBhY2tfZGVzY3JpcHRpb24gPz8gJyc7XHJcblxyXG4gICAgICAgICAgICB0aGlzLmhlaWdodCA9ICsocmVjb3JkLmhlaWdodCA/PyAwKTtcclxuICAgICAgICAgICAgdGhpcy53aWR0aCA9ICsocmVjb3JkLndpZHRoID8/IDApO1xyXG4gICAgICAgICAgICB0aGlzLmxlbmd0aCA9ICsocmVjb3JkLmxlbmd0aCA/PyAwKTtcclxuICAgICAgICAgICAgdGhpcy53ZWlnaHQgPSArKHJlY29yZC53ZWlnaHQgPz8gMCk7XHJcblxyXG4gICAgICAgICAgICBpZiAocmVjb3JkLnVuaXRfb2ZfbWVhc3VyZSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy51bml0X29mX21lYXN1cmUgPSByZWNvcmQudW5pdF9vZl9tZWFzdXJlO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBiYXNlX3ByaWNlID0gKyhyZWNvcmQucmVndWxhcl9zZWxscHJpY2UgPz8gMCk7XHJcbiAgICAgICAgICAgIGJhc2VfcHJpY2Vfd2l0aF90YXggPSArKHJlY29yZC5yZWd1bGFyX3NlbGxwcmljZV9pbmNsdXNpdmUgPz8gMCk7XHJcbiAgICAgICAgICAgIHNlbGxfcHJpY2UgPSArKHJlY29yZC5zZWxscHJpY2UgPz8gMCk7XHJcbiAgICAgICAgICAgIHNlbGxfcHJpY2Vfd2l0aF90YXggPSArKHJlY29yZC5zZWxscHJpY2VfaW5jbHVzaXZlID8/IDApO1xyXG5cclxuICAgICAgICAgICAgaWYgKHJlY29yZC50YWdzICYmIHJlY29yZC50YWdzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgdGFnIG9mIHJlY29yZC50YWdzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50YWdzLnB1c2gobmV3IEVzb2x2ZVRhZyh0YWcpKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKHJlY29yZC50b3BpY3MgJiYgcmVjb3JkLnRvcGljcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHRvcGljIG9mIHJlY29yZC50b3BpY3MpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRvcGljcy5wdXNoKG5ldyBFc29sdmVUb3BpYyh0b3BpYykpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAocmVjb3JkLmJhZGdlcyAmJiByZWNvcmQuYmFkZ2VzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgYmFkZ2Ugb2YgcmVjb3JkLmJhZGdlcykge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYmFkZ2VzLnB1c2goXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBFc29sdmVTdG9ja0JhZGdlKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgK2JhZGdlLmlkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFkZ2UudGV4dCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhZGdlLmlkZW50aWZpZXIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWRnZS5mb250X2NvbG91cixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhZGdlLmJhZGdlX2NvbG91cixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICtiYWRnZS5zb3J0X3ByaW9yaXR5LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICApLFxyXG4gICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmIChyZWNvcmQuY2F0ZWdvcnkpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuY2F0ZWdvcnkgPSBuZXcgRXNvbHZlQ2F0ZWdvcnlUcmVlSXRlbShcclxuICAgICAgICAgICAgICAgICAgICByZWNvcmQuY2F0ZWdvcnkudHlwZSxcclxuICAgICAgICAgICAgICAgICAgICByZWNvcmQuY2F0ZWdvcnkuaWQsXHJcbiAgICAgICAgICAgICAgICAgICAgcmVjb3JkLmNhdGVnb3J5LnBhcmVudF9pZCxcclxuICAgICAgICAgICAgICAgICAgICByZWNvcmQuY2F0ZWdvcnkuZGVzY3JpcHRpb24sXHJcbiAgICAgICAgICAgICAgICAgICAgcmVjb3JkLmNhdGVnb3J5LnNlZl9kZXNjcmlwdGlvbixcclxuICAgICAgICAgICAgICAgICAgICByZWNvcmQuY2F0ZWdvcnkuc2hvcnRfZGVzY3JpcHRpb24sXHJcbiAgICAgICAgICAgICAgICAgICAgcmVjb3JkLmNhdGVnb3J5LnNvcnRfcHJpb3JpdHksXHJcbiAgICAgICAgICAgICAgICAgICAgcmVjb3JkLmNhdGVnb3J5LmFjdGl2ZSxcclxuICAgICAgICAgICAgICAgICAgICByZWNvcmQuY2F0ZWdvcnkuZGlzcGxheV9vbmx5LFxyXG4gICAgICAgICAgICAgICAgICAgIHJlY29yZC5jYXRlZ29yeS5pbWFnZSxcclxuICAgICAgICAgICAgICAgICAgICByZWNvcmQuY2F0ZWdvcnkuc2VvX3BhZ2VfdGl0bGUsXHJcbiAgICAgICAgICAgICAgICAgICAgcmVjb3JkLmNhdGVnb3J5LnNlb19rZXl3b3JkcyxcclxuICAgICAgICAgICAgICAgICAgICByZWNvcmQuY2F0ZWdvcnkuc2VvX2Rlc2NyaXB0aW9uLFxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKHJlY29yZC5zdWJjYXRlZ29yeSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zdWJjYXRlZ29yeSA9IG5ldyBFc29sdmVDYXRlZ29yeVRyZWVJdGVtKFxyXG4gICAgICAgICAgICAgICAgICAgIHJlY29yZC5zdWJjYXRlZ29yeS50eXBlLFxyXG4gICAgICAgICAgICAgICAgICAgIHJlY29yZC5zdWJjYXRlZ29yeS5pZCxcclxuICAgICAgICAgICAgICAgICAgICByZWNvcmQuc3ViY2F0ZWdvcnkucGFyZW50X2lkLFxyXG4gICAgICAgICAgICAgICAgICAgIHJlY29yZC5zdWJjYXRlZ29yeS5kZXNjcmlwdGlvbixcclxuICAgICAgICAgICAgICAgICAgICByZWNvcmQuc3ViY2F0ZWdvcnkuc2VmX2Rlc2NyaXB0aW9uLFxyXG4gICAgICAgICAgICAgICAgICAgIHJlY29yZC5zdWJjYXRlZ29yeS5zaG9ydF9kZXNjcmlwdGlvbixcclxuICAgICAgICAgICAgICAgICAgICByZWNvcmQuc3ViY2F0ZWdvcnkuc29ydF9wcmlvcml0eSxcclxuICAgICAgICAgICAgICAgICAgICByZWNvcmQuc3ViY2F0ZWdvcnkuYWN0aXZlLFxyXG4gICAgICAgICAgICAgICAgICAgIHJlY29yZC5zdWJjYXRlZ29yeS5kaXNwbGF5X29ubHksXHJcbiAgICAgICAgICAgICAgICAgICAgcmVjb3JkLnN1YmNhdGVnb3J5LmltYWdlLFxyXG4gICAgICAgICAgICAgICAgICAgIHJlY29yZC5zdWJjYXRlZ29yeS5zZW9fcGFnZV90aXRsZSxcclxuICAgICAgICAgICAgICAgICAgICByZWNvcmQuc3ViY2F0ZWdvcnkuc2VvX2tleXdvcmRzLFxyXG4gICAgICAgICAgICAgICAgICAgIHJlY29yZC5zdWJjYXRlZ29yeS5zZW9fZGVzY3JpcHRpb24sXHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAocmVjb3JkLm1hbnVmYWN0dXJlcikge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5tYW51ZmFjdHVyZXIgPSBuZXcgRXNvbHZlTWFudWZhY3R1cmVyKHJlY29yZC5tYW51ZmFjdHVyZXIpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAocmVjb3JkLnJhbmdlKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJhbmdlID0gbmV3IEVzb2x2ZVJhbmdlKHJlY29yZC5yYW5nZSk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmIChyZWNvcmQuY29sb3VycyAmJiByZWNvcmQuY29sb3Vycy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGNvbG91ciBvZiByZWNvcmQuY29sb3Vycykge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29sb3Vycy5wdXNoKG5ldyBFc29sdmVDb2xvdXIoY29sb3VyKSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmIChyZWNvcmQubGVhZF90aW1lcykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5sZWFkX3RpbWVzID0gbmV3IEVzb2x2ZVN0b2NrTGVhZFRpbWVzKHJlY29yZC5sZWFkX3RpbWVzKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKHJlY29yZC5jdXN0b21fZmllbGRzKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmN1c3RvbV9maWVsZHMgPSByZWNvcmQuY3VzdG9tX2ZpZWxkcztcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKHJlY29yZC50b3RhbF9vcmRlcl9xdHkgfHwgcmVjb3JkLnRvdGFsX3F1b3RlX3F0eSkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgdG90YWxfb3JkZXJfcXR5ID0gKyhyZWNvcmQudG90YWxfb3JkZXJfcXR5ID8/IDApO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgdG90YWxfcXVvdGVfcXR5ID0gKyhyZWNvcmQudG90YWxfcXVvdGVfcXR5ID8/IDApO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5oaXN0b3J5ID0gbmV3IEVzb2x2ZVN0b2NrVHJhbnNhY3Rpb25IaXN0b3J5KFxyXG4gICAgICAgICAgICAgICAgICAgIHRvdGFsX29yZGVyX3F0eSxcclxuICAgICAgICAgICAgICAgICAgICB0b3RhbF9xdW90ZV9xdHksXHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBzZW9fdGl0bGUgPSByZWNvcmQuc2VvX3BhZ2VfdGl0bGUgPz8gJyc7XHJcbiAgICAgICAgICAgIHNlb19rZXl3b3JkcyA9IHJlY29yZC5zZW9fa2V5d29yZHMgPz8gJyc7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnByaWNlID0gbmV3IEVzb2x2ZVN0b2NrUHJpY2UoXHJcbiAgICAgICAgICAgIGJhc2VfcHJpY2UsXHJcbiAgICAgICAgICAgIGJhc2VfcHJpY2Vfd2l0aF90YXgsXHJcbiAgICAgICAgICAgIHNlbGxfcHJpY2UsXHJcbiAgICAgICAgICAgIHNlbGxfcHJpY2Vfd2l0aF90YXgsXHJcbiAgICAgICAgICAgIHJlY29yZC52YXRfcmF0ZSxcclxuICAgICAgICAgICAgcmVjb3JkLnZhdF9pdGVtLFxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIGlmIChzZW9fdGl0bGUudHJpbSgpID09PSAnJykge1xyXG4gICAgICAgICAgICBzZW9fdGl0bGUgPSB0aGlzLm5hbWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnNlb19kZXRhaWxzID0gbmV3IEVzb2x2ZVNlb0luZm8oXHJcbiAgICAgICAgICAgIHNlb190aXRsZSxcclxuICAgICAgICAgICAgdGhpcy5kZXNjcmlwdGlvbixcclxuICAgICAgICAgICAgc2VvX2tleXdvcmRzLFxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldEltYWdlUGF0aChpbWFnZV9zaXplOiBFc29sdmVTdG9ja0ltYWdlU2l6ZSk6IHN0cmluZyB7XHJcbiAgICAgICAgaWYgKHRoaXMuaW1hZ2VfbmFtZSAhPT0gJycpIHtcclxuICAgICAgICAgICAgbGV0IHBhcmFtID0gJyc7XHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy5pbWFnZV9sYXN0X21vZGlmaWVkICE9PSAnJykge1xyXG4gICAgICAgICAgICAgICAgcGFyYW0gPSBgP3Q9JHt0aGlzLmltYWdlX2xhc3RfbW9kaWZpZWR9YDtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgcmV0dXJuIGAvaW1hZ2VzL3N0b2NrLyR7aW1hZ2Vfc2l6ZX0vJHt0aGlzLmltYWdlX25hbWV9JHtwYXJhbX1gO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuICcnO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXN0b2NrLWJhc2UtcmVjb3JkLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmctZXNvbHZlLWNvbm5lY3Qvc3JjL2xpYi9zdG9jay9pbnRlcmZhY2VzL2Vzb2x2ZS1zdG9jay1iYXNlLXJlY29yZC5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVzb2x2ZUN1c3RvbUZpZWxkcyB9IGZyb20gJy4uLy4uL3NoYXJlZC9jdXN0b20tZmllbGRzJztcclxuXHJcbmltcG9ydCB7IEVzb2x2ZUNhdGVnb3J5VHJlZUl0ZW1SZWNvcmQgfSBmcm9tICcuLi8uLi9jYXRlZ29yeS10cmVlJztcclxuaW1wb3J0IHsgRXNvbHZlTWFudWZhY3R1cmVyUmVjb3JkIH0gZnJvbSAnLi4vLi4vbWFudWZhY3R1cmVycyc7XHJcbmltcG9ydCB7IEVzb2x2ZVJhbmdlUmVjb3JkIH0gZnJvbSAnLi4vLi4vcmFuZ2VzJztcclxuaW1wb3J0IHsgRXNvbHZlVGFnUmVjb3JkIH0gZnJvbSAnLi4vLi4vdGFncyc7XHJcbmltcG9ydCB7IEVzb2x2ZVRvcGljUmVjb3JkIH0gZnJvbSAnLi4vLi4vdG9waWNzJztcclxuXHJcbmltcG9ydCB7IEVzb2x2ZVN0b2NrVW5pdE9mTWVhc3VyZSB9IGZyb20gJy4uL3R5cGVzJztcclxuaW1wb3J0IHsgRXNvbHZlU3RvY2tCYWRnZVJlY29yZCB9IGZyb20gJy4vZXNvbHZlLXN0b2NrLWJhZGdlLXJlY29yZC5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBFc29sdmVDb2xvdXJSZWNvcmQgfSBmcm9tICcuL2Vzb2x2ZS1jb2xvdXItcmVjb3JkLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IEVzb2x2ZVN0b2NrTGVhZFRpbWVzUmVjb3JkIH0gZnJvbSAnLi9lc29sdmUtc3RvY2stbGVhZC10aW1lcy1yZWNvcmQuaW50ZXJmYWNlJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRXNvbHZlU3RvY2tCYXNlUmVjb3JkPFQgZXh0ZW5kcyBFc29sdmVDdXN0b21GaWVsZHMgPSBFc29sdmVDdXN0b21GaWVsZHM+IHtcclxuICAgIGlkOiBudW1iZXI7XHJcbiAgICBjb2RlOiBzdHJpbmc7XHJcbiAgICBzdXBwbGllcl9jb2RlOiBzdHJpbmc7XHJcbiAgICBleHRlcm5hbF9zeXN0ZW1fY29kZTogc3RyaW5nO1xyXG4gICAgYmFyY29kZTogc3RyaW5nO1xyXG4gICAgbmFtZTogc3RyaW5nO1xyXG4gICAgc2VmX25hbWU6IHN0cmluZztcclxuICAgIHNlb19wYWdlX3RpdGxlOiBzdHJpbmc7XHJcbiAgICBzZW9fa2V5d29yZHM6IHN0cmluZztcclxuICAgIGRlc2NyaXB0aW9uOiBzdHJpbmc7XHJcbiAgICBleHRlbmRlZF9kZXNjcmlwdGlvbjogc3RyaW5nO1xyXG4gICAgY2F0ZWdvcnlfaWQ6IHN0cmluZztcclxuICAgIGNhdGVnb3J5X2Rlc2NyaXB0aW9uOiBzdHJpbmc7XHJcbiAgICBjYXRlZ29yeTogRXNvbHZlQ2F0ZWdvcnlUcmVlSXRlbVJlY29yZDtcclxuICAgIHN1YmNhdGVnb3J5X2lkOiBudW1iZXI7XHJcbiAgICBzdWJjYXRlZ29yeV9kZXNjcmlwdGlvbjogc3RyaW5nO1xyXG4gICAgc3ViY2F0ZWdvcnk6IEVzb2x2ZUNhdGVnb3J5VHJlZUl0ZW1SZWNvcmQ7XHJcbiAgICBtYW51ZmFjdHVyZXJzX2lkOiBudW1iZXI7XHJcbiAgICBtYW51ZmFjdHVyZXI6IEVzb2x2ZU1hbnVmYWN0dXJlclJlY29yZDtcclxuICAgIHJhbmdlc19pZDogbnVtYmVyO1xyXG4gICAgcmFuZ2U6IEVzb2x2ZVJhbmdlUmVjb3JkO1xyXG4gICAgaW1hZ2VfbmFtZTogc3RyaW5nO1xyXG4gICAgaW1hZ2VfY2hlY2tzdW0/OiBzdHJpbmc7XHJcbiAgICBpbWFnZV9sYXN0X21vZGlmaWVkPzogc3RyaW5nO1xyXG4gICAgbXVzdF9jb2xsZWN0OiBib29sZWFuO1xyXG4gICAgZGVsaXZlcnlfY2F0ZWdvcnk6IHN0cmluZztcclxuICAgIGN1c3RvbV9sYWJlbDogc3RyaW5nO1xyXG4gICAgcmVxdWlyZXNfYXNzZW1ibHk6IGJvb2xlYW47XHJcbiAgICBpc19hY3RpdmU6IGJvb2xlYW47XHJcbiAgICBpc19mZWF0dXJlZDogYm9vbGVhbjtcclxuICAgIHZhdF9pdGVtOiBib29sZWFuO1xyXG4gICAgdmF0X3JhdGU6IG51bWJlcjtcclxuICAgIHZhdF9wZXJjZW50YWdlOiBudW1iZXI7XHJcbiAgICBpdGVtc19pbl9wYWNrOiBudW1iZXI7XHJcbiAgICBwYWNrX2Rlc2NyaXB0aW9uOiBzdHJpbmc7XHJcbiAgICByZWd1bGFyX3NlbGxwcmljZTogbnVtYmVyO1xyXG4gICAgcmVndWxhcl9zZWxscHJpY2VfaW5jbHVzaXZlOiBudW1iZXI7XHJcbiAgICBzZWxscHJpY2U6IG51bWJlcjtcclxuICAgIHNlbGxwcmljZV9pbmNsdXNpdmU6IG51bWJlcjtcclxuICAgIGRpc2NvdW50c19vbl9jb2RlOiBhbnlbXTtcclxuICAgIHRhZ3M6IEVzb2x2ZVRhZ1JlY29yZFtdO1xyXG4gICAgdG9waWNzOiBFc29sdmVUb3BpY1JlY29yZFtdO1xyXG4gICAgYmFkZ2VzOiBFc29sdmVTdG9ja0JhZGdlUmVjb3JkW107XHJcbiAgICBsZWFkX3RpbWVzOiBFc29sdmVTdG9ja0xlYWRUaW1lc1JlY29yZDtcclxuICAgIGNvbG91cnM6IEVzb2x2ZUNvbG91clJlY29yZFtdO1xyXG4gICAgY3VzdG9tX2ZpZWxkczogVDtcclxuICAgIGhlaWdodDogbnVtYmVyO1xyXG4gICAgd2lkdGg6IG51bWJlcjtcclxuICAgIGxlbmd0aDogbnVtYmVyO1xyXG4gICAgd2VpZ2h0OiBudW1iZXI7XHJcbiAgICB1bml0X29mX21lYXN1cmU6IEVzb2x2ZVN0b2NrVW5pdE9mTWVhc3VyZTtcclxuICAgIG9uaGFuZDogbnVtYmVyO1xyXG4gICAgdG90YWxfcmVjaXBlX2l0ZW1zOiBudW1iZXI7XHJcbiAgICBhbGxvd19xdW90ZXM6IGJvb2xlYW47XHJcbiAgICBhbGxvd19vcmRlcnM6IGJvb2xlYW47XHJcbiAgICB0b3RhbF9vcmRlcl9xdHk/OiBudW1iZXI7XHJcbiAgICB0b3RhbF9xdW90ZV9xdHk/OiBudW1iZXI7XHJcbn1cclxuIl19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXN0b2NrLWJhc2UtcmVjb3JkLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmctZXNvbHZlLWNvbm5lY3Qvc3JjL2xpYi9zdG9jay9pbnRlcmZhY2VzL2Vzb2x2ZS1zdG9jay1iYXNlLXJlY29yZC5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVzb2x2ZUN1c3RvbUZpZWxkcyB9IGZyb20gJy4uLy4uL3NoYXJlZC9jdXN0b20tZmllbGRzJztcclxuXHJcbmltcG9ydCB7IEVzb2x2ZUNhdGVnb3J5VHJlZUl0ZW1SZWNvcmQgfSBmcm9tICcuLi8uLi9jYXRlZ29yeS10cmVlJztcclxuaW1wb3J0IHsgRXNvbHZlTWFudWZhY3R1cmVyUmVjb3JkIH0gZnJvbSAnLi4vLi4vbWFudWZhY3R1cmVycyc7XHJcbmltcG9ydCB7IEVzb2x2ZVJhbmdlUmVjb3JkIH0gZnJvbSAnLi4vLi4vcmFuZ2VzJztcclxuaW1wb3J0IHsgRXNvbHZlVGFnUmVjb3JkIH0gZnJvbSAnLi4vLi4vdGFncyc7XHJcbmltcG9ydCB7IEVzb2x2ZVRvcGljUmVjb3JkIH0gZnJvbSAnLi4vLi4vdG9waWNzJztcclxuXHJcbmltcG9ydCB7IEVzb2x2ZVN0b2NrVW5pdE9mTWVhc3VyZSB9IGZyb20gJy4uL3R5cGVzJztcclxuaW1wb3J0IHsgRXNvbHZlU3RvY2tCYWRnZVJlY29yZCB9IGZyb20gJy4vZXNvbHZlLXN0b2NrLWJhZGdlLXJlY29yZC5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBFc29sdmVDb2xvdXJSZWNvcmQgfSBmcm9tICcuL2Vzb2x2ZS1jb2xvdXItcmVjb3JkLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IEVzb2x2ZVN0b2NrTGVhZFRpbWVzUmVjb3JkIH0gZnJvbSAnLi9lc29sdmUtc3RvY2stbGVhZC10aW1lcy1yZWNvcmQuaW50ZXJmYWNlJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRXNvbHZlU3RvY2tCYXNlUmVjb3JkPFQgZXh0ZW5kcyBFc29sdmVDdXN0b21GaWVsZHMgPSBFc29sdmVDdXN0b21GaWVsZHM+IHtcclxuICAgIGlkOiBudW1iZXI7XHJcbiAgICBjb2RlOiBzdHJpbmc7XHJcbiAgICBzdXBwbGllcl9jb2RlOiBzdHJpbmc7XHJcbiAgICBleHRlcm5hbF9zeXN0ZW1fY29kZTogc3RyaW5nO1xyXG4gICAgYmFyY29kZTogc3RyaW5nO1xyXG4gICAgbmFtZTogc3RyaW5nO1xyXG4gICAgc2VmX25hbWU6IHN0cmluZztcclxuICAgIHNlYXJjaF9jb21wb3NpdGU6IHN0cmluZztcclxuICAgIHR5cGU6IHN0cmluZztcclxuICAgIHN1Yl90eXBlOiBzdHJpbmc7XHJcbiAgICBzZW9fcGFnZV90aXRsZTogc3RyaW5nO1xyXG4gICAgc2VvX2tleXdvcmRzOiBzdHJpbmc7XHJcbiAgICBkZXNjcmlwdGlvbjogc3RyaW5nO1xyXG4gICAgZXh0ZW5kZWRfZGVzY3JpcHRpb246IHN0cmluZztcclxuICAgIGNhdGVnb3J5X2lkOiBzdHJpbmc7XHJcbiAgICBjYXRlZ29yeV9kZXNjcmlwdGlvbjogc3RyaW5nO1xyXG4gICAgY2F0ZWdvcnk6IEVzb2x2ZUNhdGVnb3J5VHJlZUl0ZW1SZWNvcmQ7XHJcbiAgICBzdWJjYXRlZ29yeV9pZDogbnVtYmVyO1xyXG4gICAgc3ViY2F0ZWdvcnlfZGVzY3JpcHRpb246IHN0cmluZztcclxuICAgIHN1YmNhdGVnb3J5OiBFc29sdmVDYXRlZ29yeVRyZWVJdGVtUmVjb3JkO1xyXG4gICAgbWFudWZhY3R1cmVyc19pZDogbnVtYmVyO1xyXG4gICAgbWFudWZhY3R1cmVyOiBFc29sdmVNYW51ZmFjdHVyZXJSZWNvcmQ7XHJcbiAgICByYW5nZXNfaWQ6IG51bWJlcjtcclxuICAgIHJhbmdlOiBFc29sdmVSYW5nZVJlY29yZDtcclxuICAgIGltYWdlX25hbWU6IHN0cmluZztcclxuICAgIGltYWdlX2NoZWNrc3VtPzogc3RyaW5nO1xyXG4gICAgaW1hZ2VfbGFzdF9tb2RpZmllZD86IHN0cmluZztcclxuICAgIG11c3RfY29sbGVjdDogYm9vbGVhbjtcclxuICAgIGRlbGl2ZXJ5X2NhdGVnb3J5OiBzdHJpbmc7XHJcbiAgICBjdXN0b21fbGFiZWw6IHN0cmluZztcclxuICAgIHJlcXVpcmVzX2Fzc2VtYmx5OiBib29sZWFuO1xyXG4gICAgaXNfYWN0aXZlOiBib29sZWFuO1xyXG4gICAgaXNfZmVhdHVyZWQ6IGJvb2xlYW47XHJcbiAgICB2YXRfaXRlbTogYm9vbGVhbjtcclxuICAgIHZhdF9yYXRlOiBudW1iZXI7XHJcbiAgICB2YXRfcGVyY2VudGFnZTogbnVtYmVyO1xyXG4gICAgaXRlbXNfaW5fcGFjazogbnVtYmVyO1xyXG4gICAgcGFja19kZXNjcmlwdGlvbjogc3RyaW5nO1xyXG4gICAgcmVndWxhcl9zZWxscHJpY2U6IG51bWJlcjtcclxuICAgIHJlZ3VsYXJfc2VsbHByaWNlX2luY2x1c2l2ZTogbnVtYmVyO1xyXG4gICAgc2VsbHByaWNlOiBudW1iZXI7XHJcbiAgICBzZWxscHJpY2VfaW5jbHVzaXZlOiBudW1iZXI7XHJcbiAgICBkaXNjb3VudHNfb25fY29kZTogYW55W107XHJcbiAgICB0YWdzOiBFc29sdmVUYWdSZWNvcmRbXTtcclxuICAgIHRvcGljczogRXNvbHZlVG9waWNSZWNvcmRbXTtcclxuICAgIGJhZGdlczogRXNvbHZlU3RvY2tCYWRnZVJlY29yZFtdO1xyXG4gICAgbGVhZF90aW1lczogRXNvbHZlU3RvY2tMZWFkVGltZXNSZWNvcmQ7XHJcbiAgICBjb2xvdXJzOiBFc29sdmVDb2xvdXJSZWNvcmRbXTtcclxuICAgIGN1c3RvbV9maWVsZHM6IFQ7XHJcbiAgICBoZWlnaHQ6IG51bWJlcjtcclxuICAgIHdpZHRoOiBudW1iZXI7XHJcbiAgICBsZW5ndGg6IG51bWJlcjtcclxuICAgIHdlaWdodDogbnVtYmVyO1xyXG4gICAgdW5pdF9vZl9tZWFzdXJlOiBFc29sdmVTdG9ja1VuaXRPZk1lYXN1cmU7XHJcbiAgICBvbmhhbmQ6IG51bWJlcjtcclxuICAgIHRvdGFsX3JlY2lwZV9pdGVtczogbnVtYmVyO1xyXG4gICAgYWxsb3dfcXVvdGVzOiBib29sZWFuO1xyXG4gICAgYWxsb3dfb3JkZXJzOiBib29sZWFuO1xyXG4gICAgdG90YWxfb3JkZXJfcXR5PzogbnVtYmVyO1xyXG4gICAgdG90YWxfcXVvdGVfcXR5PzogbnVtYmVyO1xyXG59XHJcbiJdfQ==
@@ -12,6 +12,32 @@ import { __awaiter } from 'tslib';
12
12
 
13
13
  const ESOLVE_CONNECT_CONFIG = new InjectionToken('esolve.connect.config');
14
14
 
15
+ /**
16
+ * Generates a short hexadecimal hash that will be used to indicate a change in
17
+ * state.
18
+ *
19
+ * NOTE: Not to be confused with an actual hash checksum, like MD5 or SHA256.
20
+ * It should only be used to indicate that a state has changed. It should not be
21
+ * used for encryption.
22
+ *
23
+ * @param values Raw strings and numbers to hash
24
+ *
25
+ * @returns Hexadecimal hash value
26
+ */
27
+ function esolveHexHash(...values) {
28
+ // Add an extra value to pad out hash
29
+ values.push('esolve_eurus');
30
+ // Create a string from the values
31
+ const string = values.join('::');
32
+ let hash = 0;
33
+ for (let x = 0; x < string.length; x++) {
34
+ const ch = string.charCodeAt(x);
35
+ hash = (hash << 5) - hash + ch;
36
+ hash = hash & hash;
37
+ }
38
+ return Math.abs(hash).toString(16);
39
+ }
40
+
15
41
  class EsolveSession {
16
42
  constructor(id = -1, location_id = 0, key = '', expiration_date) {
17
43
  this.id = id;
@@ -21,22 +47,30 @@ class EsolveSession {
21
47
  }
22
48
  get expired() {
23
49
  const current_date = new Date();
24
- return ((this.expiration_date === undefined) ||
25
- (current_date >= this.expiration_date));
50
+ return (this.expiration_date === undefined ||
51
+ current_date >= this.expiration_date);
26
52
  }
27
53
  get authenticated() {
28
- return (this.id > 0);
54
+ return this.id > 0;
29
55
  }
30
56
  get valid() {
31
- return ((this.key !== '') &&
32
- (this.expiration_date !== undefined) &&
33
- (this.id >= 0));
57
+ return (this.key !== '' &&
58
+ this.expiration_date !== undefined &&
59
+ this.id >= 0);
34
60
  }
35
61
  updateUser(user_id) {
36
62
  this.id = user_id;
63
+ this.state_hash = undefined;
37
64
  }
38
65
  updateLocation(location_id) {
39
66
  this.location_id = location_id;
67
+ this.state_hash = undefined;
68
+ }
69
+ getStateHash() {
70
+ if (!this.state_hash) {
71
+ this.state_hash = esolveHexHash(this.id, this.location_id, this.key);
72
+ }
73
+ return this.state_hash;
40
74
  }
41
75
  }
42
76
 
@@ -312,6 +346,8 @@ class EsolveAuthInterceptorService {
312
346
  if (service_identifier !== 'get-access-token.php') {
313
347
  params = params.set('key', session.key);
314
348
  }
349
+ const state_hash = session.getStateHash();
350
+ headers = headers.set('X-Esolve-State-Hash', state_hash);
315
351
  }
316
352
  params = params.set('ws_id', this.config.wsid);
317
353
  if (this.config.native && this.config.device_designation) {
@@ -4132,7 +4168,7 @@ class EsolveStockTransactionHistory {
4132
4168
 
4133
4169
  class EsolveStockItemBase {
4134
4170
  constructor(record = {}) {
4135
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11;
4171
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14;
4136
4172
  /**
4137
4173
  * eSolve Generated ID
4138
4174
  */
@@ -4149,6 +4185,18 @@ class EsolveStockItemBase {
4149
4185
  * Search engine friendly name
4150
4186
  */
4151
4187
  this.sef_name = '';
4188
+ /**
4189
+ * Search composite field made up of key phrases
4190
+ */
4191
+ this.search_composite = '';
4192
+ /**
4193
+ * Type field. General high grouping
4194
+ */
4195
+ this.type = '';
4196
+ /**
4197
+ * Sub type field. General high grouping
4198
+ */
4199
+ this.sub_type = '';
4152
4200
  /**
4153
4201
  * Short description of stock item
4154
4202
  */
@@ -4284,37 +4332,40 @@ class EsolveStockItemBase {
4284
4332
  this.code = (_b = record.code) !== null && _b !== void 0 ? _b : '';
4285
4333
  this.name = (_c = record.name) !== null && _c !== void 0 ? _c : '';
4286
4334
  this.sef_name = (_d = record.sef_name) !== null && _d !== void 0 ? _d : '';
4287
- this.description = (_e = record.description) !== null && _e !== void 0 ? _e : '';
4288
- this.extended_description = (_f = record.extended_description) !== null && _f !== void 0 ? _f : '';
4289
- this.image_name = (_g = record.image_name) !== null && _g !== void 0 ? _g : '';
4290
- this.image_last_modified = (_h = record.image_last_modified) !== null && _h !== void 0 ? _h : '';
4291
- this.category_id = (_j = record.category_id) !== null && _j !== void 0 ? _j : '';
4292
- this.subcategory_id = +((_k = record.subcategory_id) !== null && _k !== void 0 ? _k : 0);
4293
- this.manufacturers_id = +((_l = record.manufacturers_id) !== null && _l !== void 0 ? _l : 0);
4294
- this.ranges_id = +((_m = record.ranges_id) !== null && _m !== void 0 ? _m : 0);
4295
- this.delivery_category = (_o = record.delivery_category) !== null && _o !== void 0 ? _o : 'regular_item';
4296
- this.custom_label = (_p = record.custom_label) !== null && _p !== void 0 ? _p : '';
4297
- this.must_collect = !!+((_q = record.must_collect) !== null && _q !== void 0 ? _q : false);
4298
- this.requires_assembly = !!+((_r = record.requires_assembly) !== null && _r !== void 0 ? _r : false);
4299
- this.active = !!+((_s = record.is_active) !== null && _s !== void 0 ? _s : false);
4300
- this.featured = !!+((_t = record.is_featured) !== null && _t !== void 0 ? _t : false);
4301
- this.allow_quotes = (_u = record.allow_quotes) !== null && _u !== void 0 ? _u : true;
4302
- this.allow_orders = (_v = record.allow_orders) !== null && _v !== void 0 ? _v : true;
4303
- this.amount_in_stock = +((_w = record.onhand) !== null && _w !== void 0 ? _w : 0);
4304
- this.total_recipe_items = +((_x = record.total_recipe_items) !== null && _x !== void 0 ? _x : 0);
4305
- this.pack_size = +((_y = record.items_in_pack) !== null && _y !== void 0 ? _y : 0);
4306
- this.pack_description = (_z = record.pack_description) !== null && _z !== void 0 ? _z : '';
4307
- this.height = +((_0 = record.height) !== null && _0 !== void 0 ? _0 : 0);
4308
- this.width = +((_1 = record.width) !== null && _1 !== void 0 ? _1 : 0);
4309
- this.length = +((_2 = record.length) !== null && _2 !== void 0 ? _2 : 0);
4310
- this.weight = +((_3 = record.weight) !== null && _3 !== void 0 ? _3 : 0);
4335
+ this.search_composite = (_e = record.search_composite) !== null && _e !== void 0 ? _e : '';
4336
+ this.type = (_f = record.type) !== null && _f !== void 0 ? _f : '';
4337
+ this.sub_type = (_g = record.sub_type) !== null && _g !== void 0 ? _g : '';
4338
+ this.description = (_h = record.description) !== null && _h !== void 0 ? _h : '';
4339
+ this.extended_description = (_j = record.extended_description) !== null && _j !== void 0 ? _j : '';
4340
+ this.image_name = (_k = record.image_name) !== null && _k !== void 0 ? _k : '';
4341
+ this.image_last_modified = (_l = record.image_last_modified) !== null && _l !== void 0 ? _l : '';
4342
+ this.category_id = (_m = record.category_id) !== null && _m !== void 0 ? _m : '';
4343
+ this.subcategory_id = +((_o = record.subcategory_id) !== null && _o !== void 0 ? _o : 0);
4344
+ this.manufacturers_id = +((_p = record.manufacturers_id) !== null && _p !== void 0 ? _p : 0);
4345
+ this.ranges_id = +((_q = record.ranges_id) !== null && _q !== void 0 ? _q : 0);
4346
+ this.delivery_category = (_r = record.delivery_category) !== null && _r !== void 0 ? _r : 'regular_item';
4347
+ this.custom_label = (_s = record.custom_label) !== null && _s !== void 0 ? _s : '';
4348
+ this.must_collect = !!+((_t = record.must_collect) !== null && _t !== void 0 ? _t : false);
4349
+ this.requires_assembly = !!+((_u = record.requires_assembly) !== null && _u !== void 0 ? _u : false);
4350
+ this.active = !!+((_v = record.is_active) !== null && _v !== void 0 ? _v : false);
4351
+ this.featured = !!+((_w = record.is_featured) !== null && _w !== void 0 ? _w : false);
4352
+ this.allow_quotes = (_x = record.allow_quotes) !== null && _x !== void 0 ? _x : true;
4353
+ this.allow_orders = (_y = record.allow_orders) !== null && _y !== void 0 ? _y : true;
4354
+ this.amount_in_stock = +((_z = record.onhand) !== null && _z !== void 0 ? _z : 0);
4355
+ this.total_recipe_items = +((_0 = record.total_recipe_items) !== null && _0 !== void 0 ? _0 : 0);
4356
+ this.pack_size = +((_1 = record.items_in_pack) !== null && _1 !== void 0 ? _1 : 0);
4357
+ this.pack_description = (_2 = record.pack_description) !== null && _2 !== void 0 ? _2 : '';
4358
+ this.height = +((_3 = record.height) !== null && _3 !== void 0 ? _3 : 0);
4359
+ this.width = +((_4 = record.width) !== null && _4 !== void 0 ? _4 : 0);
4360
+ this.length = +((_5 = record.length) !== null && _5 !== void 0 ? _5 : 0);
4361
+ this.weight = +((_6 = record.weight) !== null && _6 !== void 0 ? _6 : 0);
4311
4362
  if (record.unit_of_measure) {
4312
4363
  this.unit_of_measure = record.unit_of_measure;
4313
4364
  }
4314
- base_price = +((_4 = record.regular_sellprice) !== null && _4 !== void 0 ? _4 : 0);
4315
- base_price_with_tax = +((_5 = record.regular_sellprice_inclusive) !== null && _5 !== void 0 ? _5 : 0);
4316
- sell_price = +((_6 = record.sellprice) !== null && _6 !== void 0 ? _6 : 0);
4317
- sell_price_with_tax = +((_7 = record.sellprice_inclusive) !== null && _7 !== void 0 ? _7 : 0);
4365
+ base_price = +((_7 = record.regular_sellprice) !== null && _7 !== void 0 ? _7 : 0);
4366
+ base_price_with_tax = +((_8 = record.regular_sellprice_inclusive) !== null && _8 !== void 0 ? _8 : 0);
4367
+ sell_price = +((_9 = record.sellprice) !== null && _9 !== void 0 ? _9 : 0);
4368
+ sell_price_with_tax = +((_10 = record.sellprice_inclusive) !== null && _10 !== void 0 ? _10 : 0);
4318
4369
  if (record.tags && record.tags.length > 0) {
4319
4370
  for (const tag of record.tags) {
4320
4371
  this.tags.push(new EsolveTag(tag));
@@ -4354,12 +4405,12 @@ class EsolveStockItemBase {
4354
4405
  this.custom_fields = record.custom_fields;
4355
4406
  }
4356
4407
  if (record.total_order_qty || record.total_quote_qty) {
4357
- const total_order_qty = +((_8 = record.total_order_qty) !== null && _8 !== void 0 ? _8 : 0);
4358
- const total_quote_qty = +((_9 = record.total_quote_qty) !== null && _9 !== void 0 ? _9 : 0);
4408
+ const total_order_qty = +((_11 = record.total_order_qty) !== null && _11 !== void 0 ? _11 : 0);
4409
+ const total_quote_qty = +((_12 = record.total_quote_qty) !== null && _12 !== void 0 ? _12 : 0);
4359
4410
  this.history = new EsolveStockTransactionHistory(total_order_qty, total_quote_qty);
4360
4411
  }
4361
- seo_title = (_10 = record.seo_page_title) !== null && _10 !== void 0 ? _10 : '';
4362
- seo_keywords = (_11 = record.seo_keywords) !== null && _11 !== void 0 ? _11 : '';
4412
+ seo_title = (_13 = record.seo_page_title) !== null && _13 !== void 0 ? _13 : '';
4413
+ seo_keywords = (_14 = record.seo_keywords) !== null && _14 !== void 0 ? _14 : '';
4363
4414
  }
4364
4415
  this.price = new EsolveStockPrice(base_price, base_price_with_tax, sell_price, sell_price_with_tax, record.vat_rate, record.vat_item);
4365
4416
  if (seo_title.trim() === '') {
@@ -6049,5 +6100,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.3", ngImpor
6049
6100
  * Generated bundle index. Do not edit.
6050
6101
  */
6051
6102
 
6052
- export { ESOLVE_CONNECT_CONFIG, EsolveAccountConfirmationResult, EsolveAccountService, EsolveAdditionalStockImage, EsolveAddress, EsolveAddressResult, EsolveAsset, EsolveAssetsService, EsolveAuthService, EsolveBankingDetails, EsolveBanner, EsolveBannerImage, EsolveBannerImageHotspot, EsolveBannerService, EsolveCartItem, EsolveCartService, EsolveCartStockItem, EsolveCartTotals, EsolveCategoryTreeItem, EsolveCategoryTreeService, EsolveChangePasswordResult, EsolveCheckoutResult, EsolveColour, EsolveCookieService, EsolveCoupon, EsolveCouponsService, EsolveDependantItem, EsolveEmptyCartResult, EsolveEmptyWishlistResult, EsolveEnquiryResult, EsolveEnquiryService, EsolveErrorHandlerService, esolveFilterFactory as EsolveFilterFactory, EsolveGeocodeAddressResult, EsolveGeocodeCoordsResult, EsolveGeocodeResult, EsolveGeocoderService, EsolveHttpError, EsolveLinkedAsset, EsolveLinkedStockItem, EsolveList, EsolveLocation, EsolveLocationAddress, EsolveLocationContactInfo, EsolveLocationGEO, EsolveLocationPOBoxAddress, EsolveLocationTradingDay, EsolveLocationTradingTimes, EsolveLocationsService, EsolveManufacturer, EsolveManufacturersService, EsolveMediaStockItem, EsolveMenuItem, EsolveMenuService, EsolveMultipleSelectFilter, EsolveNewsArticle, EsolveNewsArticleAuthor, EsolveNewsArticleList, EsolveNewsGroup, EsolveNewsService, EsolvePaymentMethod, EsolvePaymentResult, EsolvePaymentService, EsolveRange, EsolveRangeFilter, EsolveRangesService, EsolveRecipeStockItem, EsolveRegistrationResult, EsolveResetPasswordResult, EsolveResponseHandlerService, EsolveResponseResult, EsolveResult, EsolveSeoInfo, EsolveSeoService, EsolveSession, EsolveSessionMetadataService, EsolveSessionService, EsolveShippingCost, EsolveShippingMethod, EsolveShippingService, EsolveShippingTotals, EsolveSingleSelectFilter, EsolveSpecial, EsolveSpecialDates, EsolveSpecialImage, EsolveSpecialImageCollection, EsolveSpecialsService, EsolveStatement, EsolveStatementAgeing, EsolveStatementBalances, EsolveStatementTransaction, EsolveStockBadge, EsolveStockGroup, EsolveStockGroupItem, EsolveStockImage, EsolveStockImageCollection, EsolveStockItem, EsolveStockItemBase, EsolveStockItemList, EsolveStockLeadTimes, EsolveStockPrice, EsolveStockService, EsolveSupplier, EsolveSuppliersService, EsolveTag, EsolveTagsService, EsolveTimeSlot, EsolveTimeSlotConfig, EsolveTimeSlotDate, EsolveTimeSlotDays, EsolveTimeSlotTimes, EsolveTopic, EsolveTopicService, EsolveTransaction, EsolveTransactionAddress, EsolveTransactionAnalyticsData, EsolveTransactionClient, EsolveTransactionItem, EsolveTransactionItemPrice, EsolveTransactionList, EsolveTransactionLocation, EsolveTransactionPaymentMethod, EsolveTransactionShippingMethod, EsolveTransactionUser, EsolveUserAccount, EsolveUserAccountBusiness, EsolveUserAccountContact, EsolveUserAccountResult, EsolveUserClientAccount, EsolveUserClientAccountBalances, EsolveVaultItem, EsolveVaultItemResult, EsolveWishlistItem, EsolveWishlistService, NgEsolveConnectModule };
6103
+ export { ESOLVE_CONNECT_CONFIG, EsolveAccountConfirmationResult, EsolveAccountService, EsolveAdditionalStockImage, EsolveAddress, EsolveAddressResult, EsolveAsset, EsolveAssetsService, EsolveAuthService, EsolveBankingDetails, EsolveBanner, EsolveBannerImage, EsolveBannerImageHotspot, EsolveBannerService, EsolveCartItem, EsolveCartService, EsolveCartStockItem, EsolveCartTotals, EsolveCategoryTreeItem, EsolveCategoryTreeService, EsolveChangePasswordResult, EsolveCheckoutResult, EsolveColour, EsolveCookieService, EsolveCoupon, EsolveCouponsService, EsolveDependantItem, EsolveEmptyCartResult, EsolveEmptyWishlistResult, EsolveEnquiryResult, EsolveEnquiryService, EsolveErrorHandlerService, esolveFilterFactory as EsolveFilterFactory, EsolveGeocodeAddressResult, EsolveGeocodeCoordsResult, EsolveGeocodeResult, EsolveGeocoderService, EsolveHttpError, EsolveLinkedAsset, EsolveLinkedStockItem, EsolveList, EsolveLocation, EsolveLocationAddress, EsolveLocationContactInfo, EsolveLocationGEO, EsolveLocationPOBoxAddress, EsolveLocationTradingDay, EsolveLocationTradingTimes, EsolveLocationsService, EsolveManufacturer, EsolveManufacturersService, EsolveMediaStockItem, EsolveMenuItem, EsolveMenuService, EsolveMultipleSelectFilter, EsolveNewsArticle, EsolveNewsArticleAuthor, EsolveNewsArticleList, EsolveNewsGroup, EsolveNewsService, EsolvePaymentMethod, EsolvePaymentResult, EsolvePaymentService, EsolveRange, EsolveRangeFilter, EsolveRangesService, EsolveRecipeStockItem, EsolveRegistrationResult, EsolveResetPasswordResult, EsolveResponseHandlerService, EsolveResponseResult, EsolveResult, EsolveSeoInfo, EsolveSeoService, EsolveSession, EsolveSessionMetadataService, EsolveSessionService, EsolveShippingCost, EsolveShippingMethod, EsolveShippingService, EsolveShippingTotals, EsolveSingleSelectFilter, EsolveSpecial, EsolveSpecialDates, EsolveSpecialImage, EsolveSpecialImageCollection, EsolveSpecialsService, EsolveStatement, EsolveStatementAgeing, EsolveStatementBalances, EsolveStatementTransaction, EsolveStockBadge, EsolveStockGroup, EsolveStockGroupItem, EsolveStockImage, EsolveStockImageCollection, EsolveStockItem, EsolveStockItemBase, EsolveStockItemList, EsolveStockLeadTimes, EsolveStockPrice, EsolveStockService, EsolveSupplier, EsolveSuppliersService, EsolveTag, EsolveTagsService, EsolveTimeSlot, EsolveTimeSlotConfig, EsolveTimeSlotDate, EsolveTimeSlotDays, EsolveTimeSlotTimes, EsolveTopic, EsolveTopicService, EsolveTransaction, EsolveTransactionAddress, EsolveTransactionAnalyticsData, EsolveTransactionClient, EsolveTransactionItem, EsolveTransactionItemPrice, EsolveTransactionList, EsolveTransactionLocation, EsolveTransactionPaymentMethod, EsolveTransactionShippingMethod, EsolveTransactionUser, EsolveUserAccount, EsolveUserAccountBusiness, EsolveUserAccountContact, EsolveUserAccountResult, EsolveUserClientAccount, EsolveUserClientAccountBalances, EsolveVaultItem, EsolveVaultItemResult, EsolveWishlistItem, EsolveWishlistService, NgEsolveConnectModule, esolveHexHash };
6053
6104
  //# sourceMappingURL=esolve-ng-esolve-connect.mjs.map