israeli-bank-scrapers 1.15.0 → 2.1.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/README.md
CHANGED
|
@@ -8,6 +8,10 @@ Israeli Bank Scrapers - Get closer to your own data
|
|
|
8
8
|
[](https://david-dm.org/eshaham/israeli-bank-scrapers)
|
|
9
9
|
[](https://david-dm.org/eshaham/israeli-bank-scrapers?type=dev)
|
|
10
10
|
|
|
11
|
+
> Important!
|
|
12
|
+
>
|
|
13
|
+
> The scrapers are set to use timezone `Asia/Jerusalem` to avoid conflicts in case you're running the scrapers outside Israel.
|
|
14
|
+
|
|
11
15
|
# What's here?
|
|
12
16
|
What you can find here is scrapers for all major Israeli banks and credit card companies. That's the plan at least.
|
|
13
17
|
Currently only the following banks are supported:
|
package/lib/helpers/waiting.d.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
export declare class TimeoutError extends Error {
|
|
2
2
|
}
|
|
3
|
+
export declare const SECOND = 1000;
|
|
3
4
|
export declare function waitUntil(asyncTest: () => Promise<any>, description?: string, timeout?: number, interval?: number): Promise<any>;
|
|
5
|
+
export declare function raceTimeout(ms: number, promise: Promise<any>): Promise<any>;
|
package/lib/helpers/waiting.js
CHANGED
|
@@ -8,11 +8,14 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
8
8
|
value: true
|
|
9
9
|
});
|
|
10
10
|
exports.waitUntil = waitUntil;
|
|
11
|
-
exports.
|
|
11
|
+
exports.raceTimeout = raceTimeout;
|
|
12
|
+
exports.SECOND = exports.TimeoutError = void 0;
|
|
12
13
|
|
|
13
14
|
class TimeoutError extends Error {}
|
|
14
15
|
|
|
15
16
|
exports.TimeoutError = TimeoutError;
|
|
17
|
+
const SECOND = 1000;
|
|
18
|
+
exports.SECOND = SECOND;
|
|
16
19
|
|
|
17
20
|
function timeoutPromise(ms, promise, description) {
|
|
18
21
|
const timeout = new Promise((_, reject) => {
|
|
@@ -43,4 +46,10 @@ function waitUntil(asyncTest, description = '', timeout = 10000, interval = 100)
|
|
|
43
46
|
});
|
|
44
47
|
return timeoutPromise(timeout, promise, description);
|
|
45
48
|
}
|
|
46
|
-
|
|
49
|
+
|
|
50
|
+
function raceTimeout(ms, promise) {
|
|
51
|
+
return timeoutPromise(ms, promise, 'timeout').catch(err => {
|
|
52
|
+
if (!(err instanceof TimeoutError)) throw err;
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL3dhaXRpbmcudHMiXSwibmFtZXMiOlsiVGltZW91dEVycm9yIiwiRXJyb3IiLCJTRUNPTkQiLCJ0aW1lb3V0UHJvbWlzZSIsIm1zIiwicHJvbWlzZSIsImRlc2NyaXB0aW9uIiwidGltZW91dCIsIlByb21pc2UiLCJfIiwicmVqZWN0IiwiaWQiLCJzZXRUaW1lb3V0IiwiY2xlYXJUaW1lb3V0IiwiZXJyb3IiLCJyYWNlIiwid2FpdFVudGlsIiwiYXN5bmNUZXN0IiwiaW50ZXJ2YWwiLCJyZXNvbHZlIiwid2FpdCIsInRoZW4iLCJ2YWx1ZSIsImNhdGNoIiwicmFjZVRpbWVvdXQiLCJlcnIiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFDTyxNQUFNQSxZQUFOLFNBQTJCQyxLQUEzQixDQUFpQzs7O0FBSWpDLE1BQU1DLE1BQU0sR0FBRyxJQUFmOzs7QUFFUCxTQUFTQyxjQUFULENBQXdCQyxFQUF4QixFQUFvQ0MsT0FBcEMsRUFBMkRDLFdBQTNELEVBQWdGO0FBQzlFLFFBQU1DLE9BQU8sR0FBRyxJQUFJQyxPQUFKLENBQVksQ0FBQ0MsQ0FBRCxFQUFJQyxNQUFKLEtBQWU7QUFDekMsVUFBTUMsRUFBRSxHQUFHQyxVQUFVLENBQUMsTUFBTTtBQUMxQkMsTUFBQUEsWUFBWSxDQUFDRixFQUFELENBQVo7QUFDQSxZQUFNRyxLQUFLLEdBQUcsSUFBSWQsWUFBSixDQUFpQk0sV0FBakIsQ0FBZDtBQUNBSSxNQUFBQSxNQUFNLENBQUNJLEtBQUQsQ0FBTjtBQUNELEtBSm9CLEVBSWxCVixFQUprQixDQUFyQjtBQUtELEdBTmUsQ0FBaEI7QUFRQSxTQUFPSSxPQUFPLENBQUNPLElBQVIsQ0FBYSxDQUNsQlYsT0FEa0IsRUFFbEJFLE9BRmtCLENBQWIsQ0FBUDtBQUlEOztBQUVNLFNBQVNTLFNBQVQsQ0FBbUJDLFNBQW5CLEVBQWtEWCxXQUFXLEdBQUcsRUFBaEUsRUFBb0VDLE9BQU8sR0FBRyxLQUE5RSxFQUFxRlcsUUFBUSxHQUFHLEdBQWhHLEVBQXFHO0FBQzFHLFFBQU1iLE9BQU8sR0FBRyxJQUFJRyxPQUFKLENBQVksQ0FBQ1csT0FBRCxFQUFVVCxNQUFWLEtBQXFCO0FBQy9DLGFBQVNVLElBQVQsR0FBZ0I7QUFDZEgsTUFBQUEsU0FBUyxHQUFHSSxJQUFaLENBQWtCQyxLQUFELElBQVc7QUFDMUIsWUFBSUEsS0FBSyxLQUFLLElBQWQsRUFBb0I7QUFDbEJILFVBQUFBLE9BQU87QUFDUixTQUZELE1BRU87QUFDTFAsVUFBQUEsVUFBVSxDQUFDUSxJQUFELEVBQU9GLFFBQVAsQ0FBVjtBQUNEO0FBQ0YsT0FORCxFQU1HSyxLQU5ILENBTVMsTUFBTTtBQUNiYixRQUFBQSxNQUFNO0FBQ1AsT0FSRDtBQVNEOztBQUNEVSxJQUFBQSxJQUFJO0FBQ0wsR0FiZSxDQUFoQjtBQWNBLFNBQU9qQixjQUFjLENBQUNJLE9BQUQsRUFBVUYsT0FBVixFQUFtQkMsV0FBbkIsQ0FBckI7QUFDRDs7QUFFTSxTQUFTa0IsV0FBVCxDQUFxQnBCLEVBQXJCLEVBQWlDQyxPQUFqQyxFQUF3RDtBQUM3RCxTQUFPRixjQUFjLENBQUNDLEVBQUQsRUFBS0MsT0FBTCxFQUFjLFNBQWQsQ0FBZCxDQUF1Q2tCLEtBQXZDLENBQThDRSxHQUFELElBQVM7QUFDM0QsUUFBSSxFQUFFQSxHQUFHLFlBQVl6QixZQUFqQixDQUFKLEVBQW9DLE1BQU15QixHQUFOO0FBQ3JDLEdBRk0sQ0FBUDtBQUdEIiwic291cmNlc0NvbnRlbnQiOlsiXG5leHBvcnQgY2xhc3MgVGltZW91dEVycm9yIGV4dGVuZHMgRXJyb3Ige1xuXG59XG5cbmV4cG9ydCBjb25zdCBTRUNPTkQgPSAxMDAwO1xuXG5mdW5jdGlvbiB0aW1lb3V0UHJvbWlzZShtczogbnVtYmVyLCBwcm9taXNlOiBQcm9taXNlPGFueT4sIGRlc2NyaXB0aW9uOiBzdHJpbmcpIHtcbiAgY29uc3QgdGltZW91dCA9IG5ldyBQcm9taXNlKChfLCByZWplY3QpID0+IHtcbiAgICBjb25zdCBpZCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgY2xlYXJUaW1lb3V0KGlkKTtcbiAgICAgIGNvbnN0IGVycm9yID0gbmV3IFRpbWVvdXRFcnJvcihkZXNjcmlwdGlvbik7XG4gICAgICByZWplY3QoZXJyb3IpO1xuICAgIH0sIG1zKTtcbiAgfSk7XG5cbiAgcmV0dXJuIFByb21pc2UucmFjZShbXG4gICAgcHJvbWlzZSxcbiAgICB0aW1lb3V0LFxuICBdKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHdhaXRVbnRpbChhc3luY1Rlc3Q6ICgpID0+IFByb21pc2U8YW55PiwgZGVzY3JpcHRpb24gPSAnJywgdGltZW91dCA9IDEwMDAwLCBpbnRlcnZhbCA9IDEwMCkge1xuICBjb25zdCBwcm9taXNlID0gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGZ1bmN0aW9uIHdhaXQoKSB7XG4gICAgICBhc3luY1Rlc3QoKS50aGVuKCh2YWx1ZSkgPT4ge1xuICAgICAgICBpZiAodmFsdWUgPT09IHRydWUpIHtcbiAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgc2V0VGltZW91dCh3YWl0LCBpbnRlcnZhbCk7XG4gICAgICAgIH1cbiAgICAgIH0pLmNhdGNoKCgpID0+IHtcbiAgICAgICAgcmVqZWN0KCk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgd2FpdCgpO1xuICB9KTtcbiAgcmV0dXJuIHRpbWVvdXRQcm9taXNlKHRpbWVvdXQsIHByb21pc2UsIGRlc2NyaXB0aW9uKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJhY2VUaW1lb3V0KG1zOiBudW1iZXIsIHByb21pc2U6IFByb21pc2U8YW55Pikge1xuICByZXR1cm4gdGltZW91dFByb21pc2UobXMsIHByb21pc2UsICd0aW1lb3V0JykuY2F0Y2goKGVycikgPT4ge1xuICAgIGlmICghKGVyciBpbnN0YW5jZW9mIFRpbWVvdXRFcnJvcikpIHRocm93IGVycjtcbiAgfSk7XG59XG4iXX0=
|
|
@@ -137,8 +137,8 @@ class BaseScraperWithBrowser extends _baseScraper.BaseScraper {
|
|
|
137
137
|
}
|
|
138
138
|
|
|
139
139
|
async initialize() {
|
|
140
|
+
await super.initialize();
|
|
140
141
|
debug('initialize scraper');
|
|
141
|
-
this.emitProgress(_baseScraper.ScaperProgressTypes.Initializing);
|
|
142
142
|
let env;
|
|
143
143
|
|
|
144
144
|
if (this.options.verbose) {
|
|
@@ -323,4 +323,4 @@ class BaseScraperWithBrowser extends _baseScraper.BaseScraper {
|
|
|
323
323
|
}
|
|
324
324
|
|
|
325
325
|
exports.BaseScraperWithBrowser = BaseScraperWithBrowser;
|
|
326
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JhcGVycy9iYXNlLXNjcmFwZXItd2l0aC1icm93c2VyLnRzIl0sIm5hbWVzIjpbIlZJRVdQT1JUX1dJRFRIIiwiVklFV1BPUlRfSEVJR0hUIiwiT0tfU1RBVFVTIiwiZGVidWciLCJMb2dpbkJhc2VSZXN1bHRzIiwiVGltZW91dCIsIkdlbmVyaWMiLCJHZW5lcmFsIiwiU2NyYXBlckVycm9yVHlwZXMiLCJyZXN0IiwiTG9naW5SZXN1bHRzIiwiZ2V0S2V5QnlWYWx1ZSIsIm9iamVjdCIsInZhbHVlIiwicGFnZSIsImtleXMiLCJPYmplY3QiLCJrZXkiLCJjb25kaXRpb25zIiwiY29uZGl0aW9uIiwicmVzdWx0IiwiUmVnRXhwIiwidGVzdCIsInRvTG93ZXJDYXNlIiwiUHJvbWlzZSIsInJlc29sdmUiLCJVbmtub3duRXJyb3IiLCJoYW5kbGVMb2dpblJlc3VsdCIsInNjcmFwZXIiLCJsb2dpblJlc3VsdCIsIlN1Y2Nlc3MiLCJlbWl0UHJvZ3Jlc3MiLCJTY2FwZXJQcm9ncmVzc1R5cGVzIiwiTG9naW5TdWNjZXNzIiwic3VjY2VzcyIsIkludmFsaWRQYXNzd29yZCIsIkxvZ2luRmFpbGVkIiwiZXJyb3JUeXBlIiwiZXJyb3JNZXNzYWdlIiwiQ2hhbmdlUGFzc3dvcmQiLCJFcnJvciIsImNyZWF0ZUdlbmVyYWxFcnJvciIsIkJhc2VTY3JhcGVyV2l0aEJyb3dzZXIiLCJCYXNlU2NyYXBlciIsImdldFZpZXdQb3J0Iiwid2lkdGgiLCJoZWlnaHQiLCJpbml0aWFsaXplIiwiSW5pdGlhbGl6aW5nIiwiZW52Iiwib3B0aW9ucyIsInZlcmJvc2UiLCJERUJVRyIsInByb2Nlc3MiLCJicm93c2VyIiwiZXhlY3V0YWJsZVBhdGgiLCJ1bmRlZmluZWQiLCJhcmdzIiwiaGVhZGxlc3MiLCJzaG93QnJvd3NlciIsInB1cHBldGVlciIsImxhdW5jaCIsInByZXBhcmVCcm93c2VyIiwicGFnZXMiLCJsZW5ndGgiLCJuZXdQYWdlIiwiZGVmYXVsdFRpbWVvdXQiLCJzZXREZWZhdWx0VGltZW91dCIsInByZXBhcmVQYWdlIiwidmlld3BvcnQiLCJzZXRWaWV3cG9ydCIsIm9uIiwicmVxdWVzdCIsImZhaWx1cmUiLCJlcnJvclRleHQiLCJ1cmwiLCJuYXZpZ2F0ZVRvIiwidGltZW91dCIsInBhZ2VUb1VzZSIsInJlc3BvbnNlIiwiZ290byIsInN0YXR1cyIsImdldExvZ2luT3B0aW9ucyIsIl9jcmVkZW50aWFscyIsImNvbXBhbnlJZCIsImZpbGxJbnB1dHMiLCJwYWdlT3JGcmFtZSIsImZpZWxkcyIsIm1vZGlmaWVkIiwiaW5wdXQiLCJzaGlmdCIsInNlbGVjdG9yIiwibG9naW4iLCJjcmVkZW50aWFscyIsImxvZ2luT3B0aW9ucyIsInVzZXJBZ2VudCIsInNldFVzZXJBZ2VudCIsImxvZ2luVXJsIiwiY2hlY2tSZWFkaW5lc3MiLCJzdWJtaXRCdXR0b25TZWxlY3RvciIsImxvZ2luRnJhbWVPclBhZ2UiLCJwcmVBY3Rpb24iLCJMb2dnaW5nSW4iLCJwb3N0QWN0aW9uIiwiY3VycmVudCIsInBvc3NpYmxlUmVzdWx0cyIsInRlcm1pbmF0ZSIsIl9zdWNjZXNzIiwiVGVybWluYXRpbmciLCJzdG9yZUZhaWx1cmVTY3JlZW5TaG90UGF0aCIsInNjcmVlbnNob3QiLCJwYXRoIiwiZnVsbFBhZ2UiLCJjbG9zZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTs7QUFFQTs7QUFLQTs7QUFDQTs7QUFDQTs7Ozs7Ozs7Ozs7Ozs7QUFFQSxNQUFNQSxjQUFjLEdBQUcsSUFBdkI7QUFDQSxNQUFNQyxlQUFlLEdBQUcsR0FBeEI7QUFDQSxNQUFNQyxTQUFTLEdBQUcsR0FBbEI7QUFFQSxNQUFNQyxLQUFLLEdBQUcscUJBQVMsMkJBQVQsQ0FBZDtJQUVLQyxnQjs7V0FBQUEsZ0I7QUFBQUEsRUFBQUEsZ0I7QUFBQUEsRUFBQUEsZ0I7R0FBQUEsZ0IsS0FBQUEsZ0I7O0FBS0wsTUFBTTtBQUNKQyxFQUFBQSxPQURJO0FBQ0tDLEVBQUFBLE9BREw7QUFDY0MsRUFB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ZCxFQUErQkQsT0FBL0IsRUFBd0MsS0FBSzFGLElBQTdDLENBQXZDO0FBQ0FYLElBQUFBLEtBQUssQ0FBRSx3QkFBdUIwQixXQUFZLEVBQXJDLENBQUw7QUFDQSxXQUFPRixpQkFBaUIsQ0FBQyxJQUFELEVBQU9FLFdBQVAsQ0FBeEI7QUFDRDs7QUFFRCxRQUFNNkUsU0FBTixDQUFnQkMsUUFBaEIsRUFBbUM7QUFDakN4RyxJQUFBQSxLQUFLLENBQUUsc0NBQXFDd0csUUFBUyxFQUFoRCxDQUFMO0FBQ0EsU0FBSzVFLFlBQUwsQ0FBa0JDLGlDQUFvQjRFLFdBQXRDOztBQUVBLFFBQUksQ0FBQ0QsUUFBRCxJQUFhLENBQUMsQ0FBQyxLQUFLekQsT0FBTCxDQUFhMkQsMEJBQWhDLEVBQTREO0FBQzFEMUcsTUFBQUEsS0FBSyxDQUFFLDBDQUF5QyxLQUFLK0MsT0FBTCxDQUFhMkQsMEJBQTJCLEVBQW5GLENBQUw7QUFDQSxZQUFNLEtBQUsvRixJQUFMLENBQVVnRyxVQUFWLENBQXFCO0FBQ3pCQyxRQUFBQSxJQUFJLEVBQUUsS0FBSzdELE9BQUwsQ0FBYTJELDBCQURNO0FBRXpCRyxRQUFBQSxRQUFRLEVBQUU7QUFGZSxPQUFyQixDQUFOO0FBSUQ7O0FBRUQsUUFBSSxDQUFDLEtBQUsxRCxPQUFWLEVBQW1CO0FBQ2pCO0FBQ0Q7O0FBRUQsVUFBTSxLQUFLQSxPQUFMLENBQWEyRCxLQUFiLEVBQU47QUFDRDs7QUEzTDhDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHB1cHBldGVlciwgeyBCcm93c2VyLCBGcmFtZSwgUGFnZSB9IGZyb20gJ3B1cHBldGVlcic7XG5cbmltcG9ydCB7XG4gIFNjcmFwZXJFcnJvclR5cGVzLFxuICBCYXNlU2NyYXBlciwgU2NhcGVyU2NyYXBpbmdSZXN1bHQsIFNjYXBlclByb2dyZXNzVHlwZXMsXG4gIFNjcmFwZXJDcmVkZW50aWFscyxcbn0gZnJvbSAnLi9iYXNlLXNjcmFwZXInO1xuaW1wb3J0IHsgZ2V0Q3VycmVudFVybCwgd2FpdEZvck5hdmlnYXRpb24gfSBmcm9tICcuLi9oZWxwZXJzL25hdmlnYXRpb24nO1xuaW1wb3J0IHsgY2xpY2tCdXR0b24sIGZpbGxJbnB1dCwgd2FpdFVudGlsRWxlbWVudEZvdW5kIH0gZnJvbSAnLi4vaGVscGVycy9lbGVtZW50cy1pbnRlcmFjdGlvbnMnO1xuaW1wb3J0IHsgZ2V0RGVidWcgfSBmcm9tICcuLi9oZWxwZXJzL2RlYnVnJztcblxuY29uc3QgVklFV1BPUlRfV0lEVEggPSAxMDI0O1xuY29uc3QgVklFV1BPUlRfSEVJR0hUID0gNzY4O1xuY29uc3QgT0tfU1RBVFVTID0gMjAwO1xuXG5jb25zdCBkZWJ1ZyA9IGdldERlYnVnKCdiYXNlLXNjcmFwZXItd2l0aC1icm93c2VyJyk7XG5cbmVudW0gTG9naW5CYXNlUmVzdWx0cyB7XG4gIFN1Y2Nlc3MgPSAnU1VDQ0VTUycsXG4gIFVua25vd25FcnJvciA9ICdVTktOT1dOX0VSUk9SJ1xufVxuXG5jb25zdCB7XG4gIFRpbWVvdXQsIEdlbmVyaWMsIEdlbmVyYWwsIC4uLnJlc3Rcbn0gPSBTY3JhcGVyRXJyb3JUeXBlcztcbmV4cG9ydCBjb25zdCBMb2dpblJlc3VsdHMgPSB7XG4gIC4uLnJlc3QsXG4gIC4uLkxvZ2luQmFzZVJlc3VsdHMsXG59O1xuXG5leHBvcnQgdHlwZSBMb2dpblJlc3VsdHMgPSBFeGNsdWRlPFNjcmFwZXJFcnJvclR5cGVzLFxuU2NyYXBlckVycm9yVHlwZXMuVGltZW91dFxufCBTY3JhcGVyRXJyb3JUeXBlcy5HZW5lcmljXG58IFNjcmFwZXJFcnJvclR5cGVzLkdlbmVyYWw+IHwgTG9naW5CYXNlUmVzdWx0cztcblxuZXhwb3J0IHR5cGUgUG9zc2libGVMb2dpblJlc3VsdHMgPSB7XG4gIFtrZXkgaW4gTG9naW5SZXN1bHRzXT86IChzdHJpbmcgfCBSZWdFeHAgfCAoKG9wdGlvbnM/OiB7IHBhZ2U/OiBQYWdlfSkgPT4gUHJvbWlzZTxib29sZWFuPikpW11cbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgTG9naW5PcHRpb25zIHtcbiAgbG9naW5Vcmw6IHN0cmluZztcbiAgY2hlY2tSZWFkaW5lc3M/OiAoKSA9PiBQcm9taXNlPHZvaWQ+O1xuICBmaWVsZHM6IHtzZWxlY3Rvcjogc3RyaW5nLCB2YWx1ZTogc3RyaW5nfVtdO1xuICBzdWJtaXRCdXR0b25TZWxlY3Rvcjogc3RyaW5nIHwgKCgpID0+IFByb21pc2U8dm9pZD4pO1xuICBwcmVBY3Rpb24/OiAoKSA9PiBQcm9taXNlPEZyYW1lIHwgdm9pZD47XG4gIHBvc3RBY3Rpb24/OiAoKSA9PiBQcm9taXNlPHZvaWQ+O1xuICBwb3NzaWJsZVJlc3VsdHM6IFBvc3NpYmxlTG9naW5SZXN1bHRzO1xuICB1c2VyQWdlbnQ/OiBzdHJpbmc7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldEtleUJ5VmFsdWUob2JqZWN0OiBQb3NzaWJsZUxvZ2luUmVzdWx0cywgdmFsdWU6IHN0cmluZywgcGFnZTogUGFnZSk6IFByb21pc2U8TG9naW5SZXN1bHRzPiB7XG4gIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhvYmplY3QpO1xuICBmb3IgKGNvbnN0IGtleSBvZiBrZXlzKSB7XG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGNvbnN0IGNvbmRpdGlvbnMgPSBvYmplY3Rba2V5XTtcblxuICAgIGZvciAoY29uc3QgY29uZGl0aW9uIG9mIGNvbmRpdGlvbnMpIHtcbiAgICAgIGxldCByZXN1bHQgPSBmYWxzZTtcblxuICAgICAgaWYgKGNvbmRpdGlvbiBpbnN0YW5jZW9mIFJlZ0V4cCkge1xuICAgICAgICByZXN1bHQgPSBjb25kaXRpb24udGVzdCh2YWx1ZSk7XG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiBjb25kaXRpb24gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgcmVzdWx0ID0gYXdhaXQgY29uZGl0aW9uKHsgcGFnZSwgdmFsdWUgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXN1bHQgPSB2YWx1ZS50b0xvd2VyQ2FzZSgpID09PSBjb25kaXRpb24udG9Mb3dlckNhc2UoKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoa2V5KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKExvZ2luUmVzdWx0cy5Vbmtub3duRXJyb3IpO1xufVxuXG5mdW5jdGlvbiBoYW5kbGVMb2dpblJlc3VsdChzY3JhcGVyOiBCYXNlU2NyYXBlcldpdGhCcm93c2VyLCBsb2dpblJlc3VsdDogTG9naW5SZXN1bHRzKSB7XG4gIHN3aXRjaCAobG9naW5SZXN1bHQpIHtcbiAgICBjYXNlIExvZ2luUmVzdWx0cy5TdWNjZXNzOlxuICAgICAgc2NyYXBlci5lbWl0UHJvZ3Jlc3MoU2NhcGVyUHJvZ3Jlc3NUeXBlcy5Mb2dpblN1Y2Nlc3MpO1xuICAgICAgcmV0dXJuIHsgc3VjY2VzczogdHJ1ZSB9O1xuICAgIGNhc2UgTG9naW5SZXN1bHRzLkludmFsaWRQYXNzd29yZDpcbiAgICBjYXNlIExvZ2luUmVzdWx0cy5Vbmtub3duRXJyb3I6XG4gICAgICBzY3JhcGVyLmVtaXRQcm9ncmVzcyhTY2FwZXJQcm9ncmVzc1R5cGVzLkxvZ2luRmFpbGVkKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHN1Y2Nlc3M6IGZhbHNlLFxuICAgICAgICBlcnJvclR5cGU6IGxvZ2luUmVzdWx0ID09PSBMb2dpblJlc3VsdHMuSW52YWxpZFBhc3N3b3JkID8gU2NyYXBlckVycm9yVHlwZXMuSW52YWxpZFBhc3N3b3JkIDpcbiAgICAgICAgICBTY3JhcGVyRXJyb3JUeXBlcy5HZW5lcmFsLFxuICAgICAgICBlcnJvck1lc3NhZ2U6IGBMb2dpbiBmYWlsZWQgd2l0aCAke2xvZ2luUmVzdWx0fSBlcnJvcmAsXG4gICAgICB9O1xuICAgIGNhc2UgTG9naW5SZXN1bHRzLkNoYW5nZVBhc3N3b3JkOlxuICAgICAgc2NyYXBlci5lbWl0UHJvZ3Jlc3MoU2NhcGVyUHJvZ3Jlc3NUeXBlcy5DaGFuZ2VQYXNzd29yZCk7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBzdWNjZXNzOiBmYWxzZSxcbiAgICAgICAgZXJyb3JUeXBlOiBTY3JhcGVyRXJyb3JUeXBlcy5DaGFuZ2VQYXNzd29yZCxcbiAgICAgIH07XG4gICAgZGVmYXVsdDpcbiAgICAgIHRocm93IG5ldyBFcnJvcihgdW5leHBlY3RlZCBsb2dpbiByZXN1bHQgXCIke2xvZ2luUmVzdWx0fVwiYCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gY3JlYXRlR2VuZXJhbEVycm9yKCk6IFNjYXBlclNjcmFwaW5nUmVzdWx0IHtcbiAgcmV0dXJuIHtcbiAgICBzdWNjZXNzOiBmYWxzZSxcbiAgICBlcnJvclR5cGU6IFNjcmFwZXJFcnJvclR5cGVzLkdlbmVyYWwsXG4gIH07XG59XG5cbmNsYXNzIEJhc2VTY3JhcGVyV2l0aEJyb3dzZXIgZXh0ZW5kcyBCYXNlU2NyYXBlciB7XG4gIC8vIE5PVElDRSAtIGl0IGlzIGRpc2NvdXJhZ2UgdG8gdXNlIGJhbmcgKCEpIGluIGdlbmVyYWwuIEl0IGlzIHVzZWQgaGVyZSBiZWNhdXNlXG4gIC8vIGFsbCB0aGUgY2xhc3NlcyB0aGF0IGluaGVyaXQgZnJvbSB0aGlzIGJhc2UgYXNzdW1lIGlzIGl0IG1hbmRhdG9yeS5cbiAgcHJvdGVjdGVkIGJyb3dzZXIhOiBCcm93c2VyO1xuXG4gIC8vIE5PVElDRSAtIGl0IGlzIGRpc2NvdXJhZ2UgdG8gdXNlIGJhbmcgKCEpIGluIGdlbmVyYWwuIEl0IGlzIHVzZWQgaGVyZSBiZWNhdXNlXG4gIC8vIGFsbCB0aGUgY2xhc3NlcyB0aGF0IGluaGVyaXQgZnJvbSB0aGlzIGJhc2UgYXNzdW1lIGlzIGl0IG1hbmRhdG9yeS5cbiAgcHJvdGVjdGVkIHBhZ2UhOiBQYWdlO1xuXG4gIHByb3RlY3RlZCBnZXRWaWV3UG9ydCgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgd2lkdGg6IFZJRVdQT1JUX1dJRFRILFxuICAgICAgaGVpZ2h0OiBWSUVXUE9SVF9IRUlHSFQsXG4gICAgfTtcbiAgfVxuXG4gIGFzeW5jIGluaXRpYWxpemUoKSB7XG4gICAgZGVidWcoJ2luaXRpYWxpemUgc2NyYXBlcicpO1xuICAgIHRoaXMuZW1pdFByb2dyZXNzKFNjYXBlclByb2dyZXNzVHlwZXMuSW5pdGlhbGl6aW5nKTtcblxuICAgIGxldCBlbnY6IFJlY29yZDxzdHJpbmcsIGFueT4gfCB1bmRlZmluZWQ7XG4gICAgaWYgKHRoaXMub3B0aW9ucy52ZXJib3NlKSB7XG4gICAgICBlbnYgPSB7IERFQlVHOiAnKicsIC4uLnByb2Nlc3MuZW52IH07XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiB0aGlzLm9wdGlvbnMuYnJvd3NlciAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5vcHRpb25zLmJyb3dzZXIgIT09IG51bGwpIHtcbiAgICAgIGRlYnVnKCd1c2UgY3VzdG9tIGJyb3dzZXIgaW5zdGFuY2UgcHJvdmlkZWQgaW4gb3B0aW9ucycpO1xuICAgICAgdGhpcy5icm93c2VyID0gdGhpcy5vcHRpb25zLmJyb3dzZXI7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGV4ZWN1dGFibGVQYXRoID0gdGhpcy5vcHRpb25zLmV4ZWN1dGFibGVQYXRoIHx8IHVuZGVmaW5lZDtcbiAgICAgIGNvbnN0IGFyZ3MgPSB0aGlzLm9wdGlvbnMuYXJncyB8fCBbXTtcblxuICAgICAgY29uc3QgaGVhZGxlc3MgPSAhdGhpcy5vcHRpb25zLnNob3dCcm93c2VyO1xuICAgICAgZGVidWcoYGxhdW5jaCBhIGJyb3dzZXIgd2l0aCBoZWFkbGVzcyBtb2RlID0gJHtoZWFkbGVzc31gKTtcbiAgICAgIHRoaXMuYnJvd3NlciA9IGF3YWl0IHB1cHBldGVlci5sYXVuY2goe1xuICAgICAgICBlbnYsXG4gICAgICAgIGhlYWRsZXNzLFxuICAgICAgICBleGVjdXRhYmxlUGF0aCxcbiAgICAgICAgYXJncyxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmICh0aGlzLm9wdGlvbnMucHJlcGFyZUJyb3dzZXIpIHtcbiAgICAgIGRlYnVnKCdleGVjdXRlIFxcJ3ByZXBhcmVCcm93c2VyXFwnIGludGVyY2VwdG9yIHByb3ZpZGVkIGluIG9wdGlvbnMnKTtcbiAgICAgIGF3YWl0IHRoaXMub3B0aW9ucy5wcmVwYXJlQnJvd3Nlcih0aGlzLmJyb3dzZXIpO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5icm93c2VyKSB7XG4gICAgICBkZWJ1ZygnZmFpbGVkIHRvIGluaXRpYXRlIGEgYnJvd3NlciwgZXhpdCcpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHBhZ2VzID0gYXdhaXQgdGhpcy5icm93c2VyLnBhZ2VzKCk7XG4gICAgaWYgKHBhZ2VzLmxlbmd0aCkge1xuICAgICAgZGVidWcoJ2Jyb3dzZXIgaGFzIGFscmVhZHkgcGFnZXMgb3BlbiwgdXNlIHRoZSBmaXJzdCBvbmUnKTtcbiAgICAgIFt0aGlzLnBhZ2VdID0gcGFnZXM7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRlYnVnKCdjcmVhdGUgYSBuZXcgYnJvd3NlciBwYWdlJyk7XG4gICAgICB0aGlzLnBhZ2UgPSBhd2FpdCB0aGlzLmJyb3dzZXIubmV3UGFnZSgpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLm9wdGlvbnMuZGVmYXVsdFRpbWVvdXQpIHtcbiAgICAgIHRoaXMucGFnZS5zZXREZWZhdWx0VGltZW91dCh0aGlzLm9wdGlvbnMuZGVmYXVsdFRpbWVvdXQpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLm9wdGlvbnMucHJlcGFyZVBhZ2UpIHtcbiAgICAgIGRlYnVnKCdleGVjdXRlIFxcJ3ByZXBhcmVQYWdlXFwnIGludGVyY2VwdG9yIHByb3ZpZGVkIGluIG9wdGlvbnMnKTtcbiAgICAgIGF3YWl0IHRoaXMub3B0aW9ucy5wcmVwYXJlUGFnZSh0aGlzLnBhZ2UpO1xuICAgIH1cblxuICAgIGNvbnN0IHZpZXdwb3J0ID0gdGhpcy5nZXRWaWV3UG9ydCgpO1xuICAgIGRlYnVnKGBzZXQgdmlld3BvcnQgdG8gd2lkdGggJHt2aWV3cG9ydC53aWR0aH0sIGhlaWdodCAke3ZpZXdwb3J0LmhlaWdodH1gKTtcbiAgICBhd2FpdCB0aGlzLnBhZ2Uuc2V0Vmlld3BvcnQoe1xuICAgICAgd2lkdGg6IHZpZXdwb3J0LndpZHRoLFxuICAgICAgaGVpZ2h0OiB2aWV3cG9ydC5oZWlnaHQsXG4gICAgfSk7XG5cbiAgICB0aGlzLnBhZ2Uub24oJ3JlcXVlc3RmYWlsZWQnLCAocmVxdWVzdCkgPT4ge1xuICAgICAgZGVidWcoJ1JlcXVlc3QgZmFpbGVkOiAlcyAlcycsIHJlcXVlc3QuZmFpbHVyZSgpPy5lcnJvclRleHQsIHJlcXVlc3QudXJsKCkpO1xuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgbmF2aWdhdGVUbyh1cmw6IHN0cmluZywgcGFnZT86IFBhZ2UsIHRpbWVvdXQ/OiBudW1iZXIpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBwYWdlVG9Vc2UgPSBwYWdlIHx8IHRoaXMucGFnZTtcblxuICAgIGlmICghcGFnZVRvVXNlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgb3B0aW9ucyA9IHsgLi4uKHRpbWVvdXQgPT09IG51bGwgPyBudWxsIDogeyB0aW1lb3V0IH0pIH07XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBwYWdlVG9Vc2UuZ290byh1cmwsIG9wdGlvbnMpO1xuXG4gICAgLy8gbm90ZTogcmVzcG9uc2Ugd2lsbCBiZSBudWxsIHdoZW4gbmF2aWdhdGluZyB0byBzYW1lIHVybCB3aGlsZSBjaGFuZ2luZyB0aGUgaGFzaCBwYXJ0LiB0aGUgY29uZGl0aW9uIGJlbG93IHdpbGwgYWx3YXlzIGFjY2VwdCBudWxsIGFzIHZhbGlkIHJlc3VsdC5cbiAgICBpZiAocmVzcG9uc2UgIT09IG51bGwgJiYgKHJlc3BvbnNlID09PSB1bmRlZmluZWQgfHwgcmVzcG9uc2Uuc3RhdHVzKCkgIT09IE9LX1NUQVRVUykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgRXJyb3Igd2hpbGUgdHJ5aW5nIHRvIG5hdmlnYXRlIHRvIHVybCAke3VybH1gKTtcbiAgICB9XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gIGdldExvZ2luT3B0aW9ucyhfY3JlZGVudGlhbHM6IFNjcmFwZXJDcmVkZW50aWFscyk6IExvZ2luT3B0aW9ucyB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBnZXRMb2dpbk9wdGlvbnMoKSBpcyBub3QgY3JlYXRlZCBpbiAke3RoaXMub3B0aW9ucy5jb21wYW55SWR9YCk7XG4gIH1cblxuICBhc3luYyBmaWxsSW5wdXRzKHBhZ2VPckZyYW1lOiBQYWdlIHwgRnJhbWUsIGZpZWxkczogeyBzZWxlY3Rvcjogc3RyaW5nLCB2YWx1ZTogc3RyaW5nfVtdKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgbW9kaWZpZWQgPSBbLi4uZmllbGRzXTtcbiAgICBjb25zdCBpbnB1dCA9IG1vZGlmaWVkLnNoaWZ0KCk7XG5cbiAgICBpZiAoIWlucHV0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGF3YWl0IGZpbGxJbnB1dChwYWdlT3JGcmFtZSwgaW5wdXQuc2VsZWN0b3IsIGlucHV0LnZhbHVlKTtcbiAgICBpZiAobW9kaWZpZWQubGVuZ3RoKSB7XG4gICAgICBhd2FpdCB0aGlzLmZpbGxJbnB1dHMocGFnZU9yRnJhbWUsIG1vZGlmaWVkKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBsb2dpbihjcmVkZW50aWFsczogUmVjb3JkPHN0cmluZywgc3RyaW5nPik6IFByb21pc2U8U2NhcGVyU2NyYXBpbmdSZXN1bHQ+IHtcbiAgICBpZiAoIWNyZWRlbnRpYWxzIHx8ICF0aGlzLnBhZ2UpIHtcbiAgICAgIHJldHVybiBjcmVhdGVHZW5lcmFsRXJyb3IoKTtcbiAgICB9XG5cbiAgICBkZWJ1ZygnZXhlY3V0ZSBsb2dpbiBwcm9jZXNzJyk7XG4gICAgY29uc3QgbG9naW5PcHRpb25zID0gdGhpcy5nZXRMb2dpbk9wdGlvbnMoY3JlZGVudGlhbHMpO1xuXG4gICAgaWYgKGxvZ2luT3B0aW9ucy51c2VyQWdlbnQpIHtcbiAgICAgIGRlYnVnKCdzZXQgY3VzdG9tIHVzZXIgYWdlbnQgcHJvdmlkZWQgaW4gb3B0aW9ucycpO1xuICAgICAgYXdhaXQgdGhpcy5wYWdlLnNldFVzZXJBZ2VudChsb2dpbk9wdGlvbnMudXNlckFnZW50KTtcbiAgICB9XG5cbiAgICBkZWJ1ZygnbmF2aWdhdGUgdG8gbG9naW4gdXJsJyk7XG4gICAgYXdhaXQgdGhpcy5uYXZpZ2F0ZVRvKGxvZ2luT3B0aW9ucy5sb2dpblVybCk7XG4gICAgaWYgKGxvZ2luT3B0aW9ucy5jaGVja1JlYWRpbmVzcykge1xuICAgICAgZGVidWcoJ2V4ZWN1dGUgXFwnY2hlY2tSZWFkaW5lc3NcXCcgaW50ZXJjZXB0b3IgcHJvdmlkZWQgaW4gbG9naW4gb3B0aW9ucycpO1xuICAgICAgYXdhaXQgbG9naW5PcHRpb25zLmNoZWNrUmVhZGluZXNzKCk7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgbG9naW5PcHRpb25zLnN1Ym1pdEJ1dHRvblNlbGVjdG9yID09PSAnc3RyaW5nJykge1xuICAgICAgZGVidWcoJ3dhaXQgdW50aWwgc3VibWl0IGJ1dHRvbiBpcyBhdmFpbGFibGUnKTtcbiAgICAgIGF3YWl0IHdhaXRVbnRpbEVsZW1lbnRGb3VuZCh0aGlzLnBhZ2UsIGxvZ2luT3B0aW9ucy5zdWJtaXRCdXR0b25TZWxlY3Rvcik7XG4gICAgfVxuXG4gICAgbGV0IGxvZ2luRnJhbWVPclBhZ2U6IChQYWdlIHwgRnJhbWUgfCBudWxsKSA9IHRoaXMucGFnZTtcbiAgICBpZiAobG9naW5PcHRpb25zLnByZUFjdGlvbikge1xuICAgICAgZGVidWcoJ2V4ZWN1dGUgXFwncHJlQWN0aW9uXFwnIGludGVyY2VwdG9yIHByb3ZpZGVkIGluIGxvZ2luIG9wdGlvbnMnKTtcbiAgICAgIGxvZ2luRnJhbWVPclBhZ2UgPSBhd2FpdCBsb2dpbk9wdGlvbnMucHJlQWN0aW9uKCkgfHwgdGhpcy5wYWdlO1xuICAgIH1cblxuICAgIGRlYnVnKCdmaWxsIGxvZ2luIGNvbXBvbmVudHMgaW5wdXQgd2l0aCByZWxldmFudCB2YWx1ZXMnKTtcbiAgICBhd2FpdCB0aGlzLmZpbGxJbnB1dHMobG9naW5GcmFtZU9yUGFnZSwgbG9naW5PcHRpb25zLmZpZWxkcyk7XG4gICAgZGVidWcoJ2NsaWNrIG9uIGxvZ2luIHN1Ym1pdCBidXR0b24nKTtcbiAgICBpZiAodHlwZW9mIGxvZ2luT3B0aW9ucy5zdWJtaXRCdXR0b25TZWxlY3RvciA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGF3YWl0IGNsaWNrQnV0dG9uKGxvZ2luRnJhbWVPclBhZ2UsIGxvZ2luT3B0aW9ucy5zdWJtaXRCdXR0b25TZWxlY3Rvcik7XG4gICAgfSBlbHNlIHtcbiAgICAgIGF3YWl0IGxvZ2luT3B0aW9ucy5zdWJtaXRCdXR0b25TZWxlY3RvcigpO1xuICAgIH1cbiAgICB0aGlzLmVtaXRQcm9ncmVzcyhTY2FwZXJQcm9ncmVzc1R5cGVzLkxvZ2dpbmdJbik7XG5cbiAgICBpZiAobG9naW5PcHRpb25zLnBvc3RBY3Rpb24pIHtcbiAgICAgIGRlYnVnKCdleGVjdXRlIFxcJ3Bvc3RBY3Rpb25cXCcgaW50ZXJjZXB0b3IgcHJvdmlkZWQgaW4gbG9naW4gb3B0aW9ucycpO1xuICAgICAgYXdhaXQgbG9naW5PcHRpb25zLnBvc3RBY3Rpb24oKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZGVidWcoJ3dhaXQgZm9yIHBhZ2UgbmF2aWdhdGlvbicpO1xuICAgICAgYXdhaXQgd2FpdEZvck5hdmlnYXRpb24odGhpcy5wYWdlKTtcbiAgICB9XG5cbiAgICBkZWJ1ZygnY2hlY2sgbG9naW4gcmVzdWx0Jyk7XG4gICAgY29uc3QgY3VycmVudCA9IGF3YWl0IGdldEN1cnJlbnRVcmwodGhpcy5wYWdlLCB0cnVlKTtcbiAgICBjb25zdCBsb2dpblJlc3VsdCA9IGF3YWl0IGdldEtleUJ5VmFsdWUobG9naW5PcHRpb25zLnBvc3NpYmxlUmVzdWx0cywgY3VycmVudCwgdGhpcy5wYWdlKTtcbiAgICBkZWJ1ZyhgaGFuZGxlIGxvZ2luIHJlc3VsdHMgJHtsb2dpblJlc3VsdH1gKTtcbiAgICByZXR1cm4gaGFuZGxlTG9naW5SZXN1bHQodGhpcywgbG9naW5SZXN1bHQpO1xuICB9XG5cbiAgYXN5bmMgdGVybWluYXRlKF9zdWNjZXNzOiBib29sZWFuKSB7XG4gICAgZGVidWcoYHRlcm1pbmF0aW5nIGJyb3dzZXIgd2l0aCBzdWNjZXNzID0gJHtfc3VjY2Vzc31gKTtcbiAgICB0aGlzLmVtaXRQcm9ncmVzcyhTY2FwZXJQcm9ncmVzc1R5cGVzLlRlcm1pbmF0aW5nKTtcblxuICAgIGlmICghX3N1Y2Nlc3MgJiYgISF0aGlzLm9wdGlvbnMuc3RvcmVGYWlsdXJlU2NyZWVuU2hvdFBhdGgpIHtcbiAgICAgIGRlYnVnKGBjcmVhdGUgYSBzbmFwc2hvdCBiZWZvcmUgdGVybWluYXRlZCBpbiAke3RoaXMub3B0aW9ucy5zdG9yZUZhaWx1cmVTY3JlZW5TaG90UGF0aH1gKTtcbiAgICAgIGF3YWl0IHRoaXMucGFnZS5zY3JlZW5zaG90KHtcbiAgICAgICAgcGF0aDogdGhpcy5vcHRpb25zLnN0b3JlRmFpbHVyZVNjcmVlblNob3RQYXRoLFxuICAgICAgICBmdWxsUGFnZTogdHJ1ZSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5icm93c2VyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgYXdhaXQgdGhpcy5icm93c2VyLmNsb3NlKCk7XG4gIH1cbn1cblxuZXhwb3J0IHsgQmFzZVNjcmFwZXJXaXRoQnJvd3NlciB9O1xuIl19
|
|
326
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JhcGVycy9iYXNlLXNjcmFwZXItd2l0aC1icm93c2VyLnRzIl0sIm5hbWVzIjpbIlZJRVdQT1JUX1dJRFRIIiwiVklFV1BPUlRfSEVJR0hUIiwiT0tfU1RBVFVTIiwiZGVidWciLCJMb2dpbkJhc2VSZXN1bHRzIiwiVGltZW91dCIsIkdlbmVyaWMiLCJHZW5lcmFsIiwiU2NyYXBlckVycm9yVHlwZXMiLCJyZXN0IiwiTG9naW5SZXN1bHRzIiwiZ2V0S2V5QnlWYWx1ZSIsIm9iamVjdCIsInZhbHVlIiwicGFnZSIsImtleXMiLCJPYmplY3QiLCJrZXkiLCJjb25kaXRpb25zIiwiY29uZGl0aW9uIiwicmVzdWx0IiwiUmVnRXhwIiwidGVzdCIsInRvTG93ZXJDYXNlIiwiUHJvbWlzZSIsInJlc29sdmUiLCJVbmtub3duRXJyb3IiLCJoYW5kbGVMb2dpblJlc3VsdCIsInNjcmFwZXIiLCJsb2dpblJlc3VsdCIsIlN1Y2Nlc3MiLCJlbWl0UHJvZ3Jlc3MiLCJTY2FwZXJQcm9ncmVzc1R5cGVzIiwiTG9naW5TdWNjZXNzIiwic3VjY2VzcyIsIkludmFsaWRQYXNzd29yZCIsIkxvZ2luRmFpbGVkIiwiZXJyb3JUeXBlIiwiZXJyb3JNZXNzYWdlIiwiQ2hhbmdlUGFzc3dvcmQiLCJFcnJvciIsImNyZWF0ZUdlbmVyYWxFcnJvciIsIkJhc2VTY3JhcGVyV2l0aEJyb3dzZXIiLCJCYXNlU2NyYXBlciIsImdldFZpZXdQb3J0Iiwid2lkdGgiLCJoZWlnaHQiLCJpbml0aWFsaXplIiwiZW52Iiwib3B0aW9ucyIsInZlcmJvc2UiLCJERUJVRyIsInByb2Nlc3MiLCJicm93c2VyIiwiZXhlY3V0YWJsZVBhdGgiLCJ1bmRlZmluZWQiLCJhcmdzIiwiaGVhZGxlc3MiLCJzaG93QnJvd3NlciIsInB1cHBldGVlciIsImxhdW5jaCIsInByZXBhcmVCcm93c2VyIiwicGFnZXMiLCJsZW5ndGgiLCJuZXdQYWdlIiwiZGVmYXVsdFRpbWVvdXQiLCJzZXREZWZhdWx0VGltZW91dCIsInByZXBhcmVQYWdlIiwidmlld3BvcnQiLCJzZXRWaWV3cG9ydCIsIm9uIiwicmVxdWVzdCIsImZhaWx1cmUiLCJlcnJvclRleHQiLCJ1cmwiLCJuYXZpZ2F0ZVRvIiwidGltZW91dCIsInBhZ2VUb1VzZSIsInJlc3BvbnNlIiwiZ290byIsInN0YXR1cyIsImdldExvZ2luT3B0aW9ucyIsIl9jcmVkZW50aWFscyIsImNvbXBhbnlJZCIsImZpbGxJbnB1dHMiLCJwYWdlT3JGcmFtZSIsImZpZWxkcyIsIm1vZGlmaWVkIiwiaW5wdXQiLCJzaGlmdCIsInNlbGVjdG9yIiwibG9naW4iLCJjcmVkZW50aWFscyIsImxvZ2luT3B0aW9ucyIsInVzZXJBZ2VudCIsInNldFVzZXJBZ2VudCIsImxvZ2luVXJsIiwiY2hlY2tSZWFkaW5lc3MiLCJzdWJtaXRCdXR0b25TZWxlY3RvciIsImxvZ2luRnJhbWVPclBhZ2UiLCJwcmVBY3Rpb24iLCJMb2dnaW5nSW4iLCJwb3N0QWN0aW9uIiwiY3VycmVudCIsInBvc3NpYmxlUmVzdWx0cyIsInRlcm1pbmF0ZSIsIl9zdWNjZXNzIiwiVGVybWluYXRpbmciLCJzdG9yZUZhaWx1cmVTY3JlZW5TaG90UGF0aCIsInNjcmVlbnNob3QiLCJwYXRoIiwiZnVsbFBhZ2UiLCJjbG9zZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTs7QUFFQTs7QUFLQTs7QUFDQTs7QUFDQTs7Ozs7Ozs7Ozs7Ozs7QUFFQSxNQUFNQSxjQUFjLEdBQUcsSUFBdkI7QUFDQSxNQUFNQyxlQUFlLEdBQUcsR0FBeEI7QUFDQSxNQUFNQyxTQUFTLEdBQUcsR0FBbEI7QUFFQSxNQUFNQyxLQUFLLEdBQUcscUJBQVMsMkJBQVQsQ0FBZDtJQUVLQyxnQjs7V0FBQUEsZ0I7QUFBQUEsRUFBQUEsZ0I7QUFBQUEsRUFBQUEsZ0I7R0FBQUEsZ0IsS0FBQUEsZ0I7O0FBS0wsTUFBTTtBQUNKQyxFQUFBQSxPQURJO0FBQ0tDLEVBQUFBLE9BREw7QUFDY0MsRUFBQUE7QUFEZCxJQUVGQyw4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LElBQTdDLENBQXZDO0FBQ0FYLElBQUFBLEtBQUssQ0FBRSx3QkFBdUIwQixXQUFZLEVBQXJDLENBQUw7QUFDQSxXQUFPRixpQkFBaUIsQ0FBQyxJQUFELEVBQU9FLFdBQVAsQ0FBeEI7QUFDRDs7QUFFRCxRQUFNNEUsU0FBTixDQUFnQkMsUUFBaEIsRUFBbUM7QUFDakN2RyxJQUFBQSxLQUFLLENBQUUsc0NBQXFDdUcsUUFBUyxFQUFoRCxDQUFMO0FBQ0EsU0FBSzNFLFlBQUwsQ0FBa0JDLGlDQUFvQjJFLFdBQXRDOztBQUVBLFFBQUksQ0FBQ0QsUUFBRCxJQUFhLENBQUMsQ0FBQyxLQUFLekQsT0FBTCxDQUFhMkQsMEJBQWhDLEVBQTREO0FBQzFEekcsTUFBQUEsS0FBSyxDQUFFLDBDQUF5QyxLQUFLOEMsT0FBTCxDQUFhMkQsMEJBQTJCLEVBQW5GLENBQUw7QUFDQSxZQUFNLEtBQUs5RixJQUFMLENBQVUrRixVQUFWLENBQXFCO0FBQ3pCQyxRQUFBQSxJQUFJLEVBQUUsS0FBSzdELE9BQUwsQ0FBYTJELDBCQURNO0FBRXpCRyxRQUFBQSxRQUFRLEVBQUU7QUFGZSxPQUFyQixDQUFOO0FBSUQ7O0FBRUQsUUFBSSxDQUFDLEtBQUsxRCxPQUFWLEVBQW1CO0FBQ2pCO0FBQ0Q7O0FBRUQsVUFBTSxLQUFLQSxPQUFMLENBQWEyRCxLQUFiLEVBQU47QUFDRDs7QUEzTDhDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHB1cHBldGVlciwgeyBCcm93c2VyLCBGcmFtZSwgUGFnZSB9IGZyb20gJ3B1cHBldGVlcic7XG5cbmltcG9ydCB7XG4gIFNjcmFwZXJFcnJvclR5cGVzLFxuICBCYXNlU2NyYXBlciwgU2NhcGVyU2NyYXBpbmdSZXN1bHQsIFNjYXBlclByb2dyZXNzVHlwZXMsXG4gIFNjcmFwZXJDcmVkZW50aWFscyxcbn0gZnJvbSAnLi9iYXNlLXNjcmFwZXInO1xuaW1wb3J0IHsgZ2V0Q3VycmVudFVybCwgd2FpdEZvck5hdmlnYXRpb24gfSBmcm9tICcuLi9oZWxwZXJzL25hdmlnYXRpb24nO1xuaW1wb3J0IHsgY2xpY2tCdXR0b24sIGZpbGxJbnB1dCwgd2FpdFVudGlsRWxlbWVudEZvdW5kIH0gZnJvbSAnLi4vaGVscGVycy9lbGVtZW50cy1pbnRlcmFjdGlvbnMnO1xuaW1wb3J0IHsgZ2V0RGVidWcgfSBmcm9tICcuLi9oZWxwZXJzL2RlYnVnJztcblxuY29uc3QgVklFV1BPUlRfV0lEVEggPSAxMDI0O1xuY29uc3QgVklFV1BPUlRfSEVJR0hUID0gNzY4O1xuY29uc3QgT0tfU1RBVFVTID0gMjAwO1xuXG5jb25zdCBkZWJ1ZyA9IGdldERlYnVnKCdiYXNlLXNjcmFwZXItd2l0aC1icm93c2VyJyk7XG5cbmVudW0gTG9naW5CYXNlUmVzdWx0cyB7XG4gIFN1Y2Nlc3MgPSAnU1VDQ0VTUycsXG4gIFVua25vd25FcnJvciA9ICdVTktOT1dOX0VSUk9SJ1xufVxuXG5jb25zdCB7XG4gIFRpbWVvdXQsIEdlbmVyaWMsIEdlbmVyYWwsIC4uLnJlc3Rcbn0gPSBTY3JhcGVyRXJyb3JUeXBlcztcbmV4cG9ydCBjb25zdCBMb2dpblJlc3VsdHMgPSB7XG4gIC4uLnJlc3QsXG4gIC4uLkxvZ2luQmFzZVJlc3VsdHMsXG59O1xuXG5leHBvcnQgdHlwZSBMb2dpblJlc3VsdHMgPSBFeGNsdWRlPFNjcmFwZXJFcnJvclR5cGVzLFxuU2NyYXBlckVycm9yVHlwZXMuVGltZW91dFxufCBTY3JhcGVyRXJyb3JUeXBlcy5HZW5lcmljXG58IFNjcmFwZXJFcnJvclR5cGVzLkdlbmVyYWw+IHwgTG9naW5CYXNlUmVzdWx0cztcblxuZXhwb3J0IHR5cGUgUG9zc2libGVMb2dpblJlc3VsdHMgPSB7XG4gIFtrZXkgaW4gTG9naW5SZXN1bHRzXT86IChzdHJpbmcgfCBSZWdFeHAgfCAoKG9wdGlvbnM/OiB7IHBhZ2U/OiBQYWdlfSkgPT4gUHJvbWlzZTxib29sZWFuPikpW11cbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgTG9naW5PcHRpb25zIHtcbiAgbG9naW5Vcmw6IHN0cmluZztcbiAgY2hlY2tSZWFkaW5lc3M/OiAoKSA9PiBQcm9taXNlPHZvaWQ+O1xuICBmaWVsZHM6IHtzZWxlY3Rvcjogc3RyaW5nLCB2YWx1ZTogc3RyaW5nfVtdO1xuICBzdWJtaXRCdXR0b25TZWxlY3Rvcjogc3RyaW5nIHwgKCgpID0+IFByb21pc2U8dm9pZD4pO1xuICBwcmVBY3Rpb24/OiAoKSA9PiBQcm9taXNlPEZyYW1lIHwgdm9pZD47XG4gIHBvc3RBY3Rpb24/OiAoKSA9PiBQcm9taXNlPHZvaWQ+O1xuICBwb3NzaWJsZVJlc3VsdHM6IFBvc3NpYmxlTG9naW5SZXN1bHRzO1xuICB1c2VyQWdlbnQ/OiBzdHJpbmc7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldEtleUJ5VmFsdWUob2JqZWN0OiBQb3NzaWJsZUxvZ2luUmVzdWx0cywgdmFsdWU6IHN0cmluZywgcGFnZTogUGFnZSk6IFByb21pc2U8TG9naW5SZXN1bHRzPiB7XG4gIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhvYmplY3QpO1xuICBmb3IgKGNvbnN0IGtleSBvZiBrZXlzKSB7XG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGNvbnN0IGNvbmRpdGlvbnMgPSBvYmplY3Rba2V5XTtcblxuICAgIGZvciAoY29uc3QgY29uZGl0aW9uIG9mIGNvbmRpdGlvbnMpIHtcbiAgICAgIGxldCByZXN1bHQgPSBmYWxzZTtcblxuICAgICAgaWYgKGNvbmRpdGlvbiBpbnN0YW5jZW9mIFJlZ0V4cCkge1xuICAgICAgICByZXN1bHQgPSBjb25kaXRpb24udGVzdCh2YWx1ZSk7XG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiBjb25kaXRpb24gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgcmVzdWx0ID0gYXdhaXQgY29uZGl0aW9uKHsgcGFnZSwgdmFsdWUgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXN1bHQgPSB2YWx1ZS50b0xvd2VyQ2FzZSgpID09PSBjb25kaXRpb24udG9Mb3dlckNhc2UoKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoa2V5KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKExvZ2luUmVzdWx0cy5Vbmtub3duRXJyb3IpO1xufVxuXG5mdW5jdGlvbiBoYW5kbGVMb2dpblJlc3VsdChzY3JhcGVyOiBCYXNlU2NyYXBlcldpdGhCcm93c2VyLCBsb2dpblJlc3VsdDogTG9naW5SZXN1bHRzKSB7XG4gIHN3aXRjaCAobG9naW5SZXN1bHQpIHtcbiAgICBjYXNlIExvZ2luUmVzdWx0cy5TdWNjZXNzOlxuICAgICAgc2NyYXBlci5lbWl0UHJvZ3Jlc3MoU2NhcGVyUHJvZ3Jlc3NUeXBlcy5Mb2dpblN1Y2Nlc3MpO1xuICAgICAgcmV0dXJuIHsgc3VjY2VzczogdHJ1ZSB9O1xuICAgIGNhc2UgTG9naW5SZXN1bHRzLkludmFsaWRQYXNzd29yZDpcbiAgICBjYXNlIExvZ2luUmVzdWx0cy5Vbmtub3duRXJyb3I6XG4gICAgICBzY3JhcGVyLmVtaXRQcm9ncmVzcyhTY2FwZXJQcm9ncmVzc1R5cGVzLkxvZ2luRmFpbGVkKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHN1Y2Nlc3M6IGZhbHNlLFxuICAgICAgICBlcnJvclR5cGU6IGxvZ2luUmVzdWx0ID09PSBMb2dpblJlc3VsdHMuSW52YWxpZFBhc3N3b3JkID8gU2NyYXBlckVycm9yVHlwZXMuSW52YWxpZFBhc3N3b3JkIDpcbiAgICAgICAgICBTY3JhcGVyRXJyb3JUeXBlcy5HZW5lcmFsLFxuICAgICAgICBlcnJvck1lc3NhZ2U6IGBMb2dpbiBmYWlsZWQgd2l0aCAke2xvZ2luUmVzdWx0fSBlcnJvcmAsXG4gICAgICB9O1xuICAgIGNhc2UgTG9naW5SZXN1bHRzLkNoYW5nZVBhc3N3b3JkOlxuICAgICAgc2NyYXBlci5lbWl0UHJvZ3Jlc3MoU2NhcGVyUHJvZ3Jlc3NUeXBlcy5DaGFuZ2VQYXNzd29yZCk7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBzdWNjZXNzOiBmYWxzZSxcbiAgICAgICAgZXJyb3JUeXBlOiBTY3JhcGVyRXJyb3JUeXBlcy5DaGFuZ2VQYXNzd29yZCxcbiAgICAgIH07XG4gICAgZGVmYXVsdDpcbiAgICAgIHRocm93IG5ldyBFcnJvcihgdW5leHBlY3RlZCBsb2dpbiByZXN1bHQgXCIke2xvZ2luUmVzdWx0fVwiYCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gY3JlYXRlR2VuZXJhbEVycm9yKCk6IFNjYXBlclNjcmFwaW5nUmVzdWx0IHtcbiAgcmV0dXJuIHtcbiAgICBzdWNjZXNzOiBmYWxzZSxcbiAgICBlcnJvclR5cGU6IFNjcmFwZXJFcnJvclR5cGVzLkdlbmVyYWwsXG4gIH07XG59XG5cbmNsYXNzIEJhc2VTY3JhcGVyV2l0aEJyb3dzZXIgZXh0ZW5kcyBCYXNlU2NyYXBlciB7XG4gIC8vIE5PVElDRSAtIGl0IGlzIGRpc2NvdXJhZ2UgdG8gdXNlIGJhbmcgKCEpIGluIGdlbmVyYWwuIEl0IGlzIHVzZWQgaGVyZSBiZWNhdXNlXG4gIC8vIGFsbCB0aGUgY2xhc3NlcyB0aGF0IGluaGVyaXQgZnJvbSB0aGlzIGJhc2UgYXNzdW1lIGlzIGl0IG1hbmRhdG9yeS5cbiAgcHJvdGVjdGVkIGJyb3dzZXIhOiBCcm93c2VyO1xuXG4gIC8vIE5PVElDRSAtIGl0IGlzIGRpc2NvdXJhZ2UgdG8gdXNlIGJhbmcgKCEpIGluIGdlbmVyYWwuIEl0IGlzIHVzZWQgaGVyZSBiZWNhdXNlXG4gIC8vIGFsbCB0aGUgY2xhc3NlcyB0aGF0IGluaGVyaXQgZnJvbSB0aGlzIGJhc2UgYXNzdW1lIGlzIGl0IG1hbmRhdG9yeS5cbiAgcHJvdGVjdGVkIHBhZ2UhOiBQYWdlO1xuXG4gIHByb3RlY3RlZCBnZXRWaWV3UG9ydCgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgd2lkdGg6IFZJRVdQT1JUX1dJRFRILFxuICAgICAgaGVpZ2h0OiBWSUVXUE9SVF9IRUlHSFQsXG4gICAgfTtcbiAgfVxuXG4gIGFzeW5jIGluaXRpYWxpemUoKSB7XG4gICAgYXdhaXQgc3VwZXIuaW5pdGlhbGl6ZSgpO1xuICAgIGRlYnVnKCdpbml0aWFsaXplIHNjcmFwZXInKTtcblxuICAgIGxldCBlbnY6IFJlY29yZDxzdHJpbmcsIGFueT4gfCB1bmRlZmluZWQ7XG4gICAgaWYgKHRoaXMub3B0aW9ucy52ZXJib3NlKSB7XG4gICAgICBlbnYgPSB7IERFQlVHOiAnKicsIC4uLnByb2Nlc3MuZW52IH07XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiB0aGlzLm9wdGlvbnMuYnJvd3NlciAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5vcHRpb25zLmJyb3dzZXIgIT09IG51bGwpIHtcbiAgICAgIGRlYnVnKCd1c2UgY3VzdG9tIGJyb3dzZXIgaW5zdGFuY2UgcHJvdmlkZWQgaW4gb3B0aW9ucycpO1xuICAgICAgdGhpcy5icm93c2VyID0gdGhpcy5vcHRpb25zLmJyb3dzZXI7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGV4ZWN1dGFibGVQYXRoID0gdGhpcy5vcHRpb25zLmV4ZWN1dGFibGVQYXRoIHx8IHVuZGVmaW5lZDtcbiAgICAgIGNvbnN0IGFyZ3MgPSB0aGlzLm9wdGlvbnMuYXJncyB8fCBbXTtcblxuICAgICAgY29uc3QgaGVhZGxlc3MgPSAhdGhpcy5vcHRpb25zLnNob3dCcm93c2VyO1xuICAgICAgZGVidWcoYGxhdW5jaCBhIGJyb3dzZXIgd2l0aCBoZWFkbGVzcyBtb2RlID0gJHtoZWFkbGVzc31gKTtcbiAgICAgIHRoaXMuYnJvd3NlciA9IGF3YWl0IHB1cHBldGVlci5sYXVuY2goe1xuICAgICAgICBlbnYsXG4gICAgICAgIGhlYWRsZXNzLFxuICAgICAgICBleGVjdXRhYmxlUGF0aCxcbiAgICAgICAgYXJncyxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmICh0aGlzLm9wdGlvbnMucHJlcGFyZUJyb3dzZXIpIHtcbiAgICAgIGRlYnVnKCdleGVjdXRlIFxcJ3ByZXBhcmVCcm93c2VyXFwnIGludGVyY2VwdG9yIHByb3ZpZGVkIGluIG9wdGlvbnMnKTtcbiAgICAgIGF3YWl0IHRoaXMub3B0aW9ucy5wcmVwYXJlQnJvd3Nlcih0aGlzLmJyb3dzZXIpO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5icm93c2VyKSB7XG4gICAgICBkZWJ1ZygnZmFpbGVkIHRvIGluaXRpYXRlIGEgYnJvd3NlciwgZXhpdCcpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHBhZ2VzID0gYXdhaXQgdGhpcy5icm93c2VyLnBhZ2VzKCk7XG4gICAgaWYgKHBhZ2VzLmxlbmd0aCkge1xuICAgICAgZGVidWcoJ2Jyb3dzZXIgaGFzIGFscmVhZHkgcGFnZXMgb3BlbiwgdXNlIHRoZSBmaXJzdCBvbmUnKTtcbiAgICAgIFt0aGlzLnBhZ2VdID0gcGFnZXM7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRlYnVnKCdjcmVhdGUgYSBuZXcgYnJvd3NlciBwYWdlJyk7XG4gICAgICB0aGlzLnBhZ2UgPSBhd2FpdCB0aGlzLmJyb3dzZXIubmV3UGFnZSgpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLm9wdGlvbnMuZGVmYXVsdFRpbWVvdXQpIHtcbiAgICAgIHRoaXMucGFnZS5zZXREZWZhdWx0VGltZW91dCh0aGlzLm9wdGlvbnMuZGVmYXVsdFRpbWVvdXQpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLm9wdGlvbnMucHJlcGFyZVBhZ2UpIHtcbiAgICAgIGRlYnVnKCdleGVjdXRlIFxcJ3ByZXBhcmVQYWdlXFwnIGludGVyY2VwdG9yIHByb3ZpZGVkIGluIG9wdGlvbnMnKTtcbiAgICAgIGF3YWl0IHRoaXMub3B0aW9ucy5wcmVwYXJlUGFnZSh0aGlzLnBhZ2UpO1xuICAgIH1cblxuICAgIGNvbnN0IHZpZXdwb3J0ID0gdGhpcy5nZXRWaWV3UG9ydCgpO1xuICAgIGRlYnVnKGBzZXQgdmlld3BvcnQgdG8gd2lkdGggJHt2aWV3cG9ydC53aWR0aH0sIGhlaWdodCAke3ZpZXdwb3J0LmhlaWdodH1gKTtcbiAgICBhd2FpdCB0aGlzLnBhZ2Uuc2V0Vmlld3BvcnQoe1xuICAgICAgd2lkdGg6IHZpZXdwb3J0LndpZHRoLFxuICAgICAgaGVpZ2h0OiB2aWV3cG9ydC5oZWlnaHQsXG4gICAgfSk7XG5cbiAgICB0aGlzLnBhZ2Uub24oJ3JlcXVlc3RmYWlsZWQnLCAocmVxdWVzdCkgPT4ge1xuICAgICAgZGVidWcoJ1JlcXVlc3QgZmFpbGVkOiAlcyAlcycsIHJlcXVlc3QuZmFpbHVyZSgpPy5lcnJvclRleHQsIHJlcXVlc3QudXJsKCkpO1xuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgbmF2aWdhdGVUbyh1cmw6IHN0cmluZywgcGFnZT86IFBhZ2UsIHRpbWVvdXQ/OiBudW1iZXIpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBwYWdlVG9Vc2UgPSBwYWdlIHx8IHRoaXMucGFnZTtcblxuICAgIGlmICghcGFnZVRvVXNlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgb3B0aW9ucyA9IHsgLi4uKHRpbWVvdXQgPT09IG51bGwgPyBudWxsIDogeyB0aW1lb3V0IH0pIH07XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBwYWdlVG9Vc2UuZ290byh1cmwsIG9wdGlvbnMpO1xuXG4gICAgLy8gbm90ZTogcmVzcG9uc2Ugd2lsbCBiZSBudWxsIHdoZW4gbmF2aWdhdGluZyB0byBzYW1lIHVybCB3aGlsZSBjaGFuZ2luZyB0aGUgaGFzaCBwYXJ0LiB0aGUgY29uZGl0aW9uIGJlbG93IHdpbGwgYWx3YXlzIGFjY2VwdCBudWxsIGFzIHZhbGlkIHJlc3VsdC5cbiAgICBpZiAocmVzcG9uc2UgIT09IG51bGwgJiYgKHJlc3BvbnNlID09PSB1bmRlZmluZWQgfHwgcmVzcG9uc2Uuc3RhdHVzKCkgIT09IE9LX1NUQVRVUykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgRXJyb3Igd2hpbGUgdHJ5aW5nIHRvIG5hdmlnYXRlIHRvIHVybCAke3VybH1gKTtcbiAgICB9XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gIGdldExvZ2luT3B0aW9ucyhfY3JlZGVudGlhbHM6IFNjcmFwZXJDcmVkZW50aWFscyk6IExvZ2luT3B0aW9ucyB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBnZXRMb2dpbk9wdGlvbnMoKSBpcyBub3QgY3JlYXRlZCBpbiAke3RoaXMub3B0aW9ucy5jb21wYW55SWR9YCk7XG4gIH1cblxuICBhc3luYyBmaWxsSW5wdXRzKHBhZ2VPckZyYW1lOiBQYWdlIHwgRnJhbWUsIGZpZWxkczogeyBzZWxlY3Rvcjogc3RyaW5nLCB2YWx1ZTogc3RyaW5nfVtdKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgbW9kaWZpZWQgPSBbLi4uZmllbGRzXTtcbiAgICBjb25zdCBpbnB1dCA9IG1vZGlmaWVkLnNoaWZ0KCk7XG5cbiAgICBpZiAoIWlucHV0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGF3YWl0IGZpbGxJbnB1dChwYWdlT3JGcmFtZSwgaW5wdXQuc2VsZWN0b3IsIGlucHV0LnZhbHVlKTtcbiAgICBpZiAobW9kaWZpZWQubGVuZ3RoKSB7XG4gICAgICBhd2FpdCB0aGlzLmZpbGxJbnB1dHMocGFnZU9yRnJhbWUsIG1vZGlmaWVkKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBsb2dpbihjcmVkZW50aWFsczogUmVjb3JkPHN0cmluZywgc3RyaW5nPik6IFByb21pc2U8U2NhcGVyU2NyYXBpbmdSZXN1bHQ+IHtcbiAgICBpZiAoIWNyZWRlbnRpYWxzIHx8ICF0aGlzLnBhZ2UpIHtcbiAgICAgIHJldHVybiBjcmVhdGVHZW5lcmFsRXJyb3IoKTtcbiAgICB9XG5cbiAgICBkZWJ1ZygnZXhlY3V0ZSBsb2dpbiBwcm9jZXNzJyk7XG4gICAgY29uc3QgbG9naW5PcHRpb25zID0gdGhpcy5nZXRMb2dpbk9wdGlvbnMoY3JlZGVudGlhbHMpO1xuXG4gICAgaWYgKGxvZ2luT3B0aW9ucy51c2VyQWdlbnQpIHtcbiAgICAgIGRlYnVnKCdzZXQgY3VzdG9tIHVzZXIgYWdlbnQgcHJvdmlkZWQgaW4gb3B0aW9ucycpO1xuICAgICAgYXdhaXQgdGhpcy5wYWdlLnNldFVzZXJBZ2VudChsb2dpbk9wdGlvbnMudXNlckFnZW50KTtcbiAgICB9XG5cbiAgICBkZWJ1ZygnbmF2aWdhdGUgdG8gbG9naW4gdXJsJyk7XG4gICAgYXdhaXQgdGhpcy5uYXZpZ2F0ZVRvKGxvZ2luT3B0aW9ucy5sb2dpblVybCk7XG4gICAgaWYgKGxvZ2luT3B0aW9ucy5jaGVja1JlYWRpbmVzcykge1xuICAgICAgZGVidWcoJ2V4ZWN1dGUgXFwnY2hlY2tSZWFkaW5lc3NcXCcgaW50ZXJjZXB0b3IgcHJvdmlkZWQgaW4gbG9naW4gb3B0aW9ucycpO1xuICAgICAgYXdhaXQgbG9naW5PcHRpb25zLmNoZWNrUmVhZGluZXNzKCk7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgbG9naW5PcHRpb25zLnN1Ym1pdEJ1dHRvblNlbGVjdG9yID09PSAnc3RyaW5nJykge1xuICAgICAgZGVidWcoJ3dhaXQgdW50aWwgc3VibWl0IGJ1dHRvbiBpcyBhdmFpbGFibGUnKTtcbiAgICAgIGF3YWl0IHdhaXRVbnRpbEVsZW1lbnRGb3VuZCh0aGlzLnBhZ2UsIGxvZ2luT3B0aW9ucy5zdWJtaXRCdXR0b25TZWxlY3Rvcik7XG4gICAgfVxuXG4gICAgbGV0IGxvZ2luRnJhbWVPclBhZ2U6IChQYWdlIHwgRnJhbWUgfCBudWxsKSA9IHRoaXMucGFnZTtcbiAgICBpZiAobG9naW5PcHRpb25zLnByZUFjdGlvbikge1xuICAgICAgZGVidWcoJ2V4ZWN1dGUgXFwncHJlQWN0aW9uXFwnIGludGVyY2VwdG9yIHByb3ZpZGVkIGluIGxvZ2luIG9wdGlvbnMnKTtcbiAgICAgIGxvZ2luRnJhbWVPclBhZ2UgPSBhd2FpdCBsb2dpbk9wdGlvbnMucHJlQWN0aW9uKCkgfHwgdGhpcy5wYWdlO1xuICAgIH1cblxuICAgIGRlYnVnKCdmaWxsIGxvZ2luIGNvbXBvbmVudHMgaW5wdXQgd2l0aCByZWxldmFudCB2YWx1ZXMnKTtcbiAgICBhd2FpdCB0aGlzLmZpbGxJbnB1dHMobG9naW5GcmFtZU9yUGFnZSwgbG9naW5PcHRpb25zLmZpZWxkcyk7XG4gICAgZGVidWcoJ2NsaWNrIG9uIGxvZ2luIHN1Ym1pdCBidXR0b24nKTtcbiAgICBpZiAodHlwZW9mIGxvZ2luT3B0aW9ucy5zdWJtaXRCdXR0b25TZWxlY3RvciA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGF3YWl0IGNsaWNrQnV0dG9uKGxvZ2luRnJhbWVPclBhZ2UsIGxvZ2luT3B0aW9ucy5zdWJtaXRCdXR0b25TZWxlY3Rvcik7XG4gICAgfSBlbHNlIHtcbiAgICAgIGF3YWl0IGxvZ2luT3B0aW9ucy5zdWJtaXRCdXR0b25TZWxlY3RvcigpO1xuICAgIH1cbiAgICB0aGlzLmVtaXRQcm9ncmVzcyhTY2FwZXJQcm9ncmVzc1R5cGVzLkxvZ2dpbmdJbik7XG5cbiAgICBpZiAobG9naW5PcHRpb25zLnBvc3RBY3Rpb24pIHtcbiAgICAgIGRlYnVnKCdleGVjdXRlIFxcJ3Bvc3RBY3Rpb25cXCcgaW50ZXJjZXB0b3IgcHJvdmlkZWQgaW4gbG9naW4gb3B0aW9ucycpO1xuICAgICAgYXdhaXQgbG9naW5PcHRpb25zLnBvc3RBY3Rpb24oKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZGVidWcoJ3dhaXQgZm9yIHBhZ2UgbmF2aWdhdGlvbicpO1xuICAgICAgYXdhaXQgd2FpdEZvck5hdmlnYXRpb24odGhpcy5wYWdlKTtcbiAgICB9XG5cbiAgICBkZWJ1ZygnY2hlY2sgbG9naW4gcmVzdWx0Jyk7XG4gICAgY29uc3QgY3VycmVudCA9IGF3YWl0IGdldEN1cnJlbnRVcmwodGhpcy5wYWdlLCB0cnVlKTtcbiAgICBjb25zdCBsb2dpblJlc3VsdCA9IGF3YWl0IGdldEtleUJ5VmFsdWUobG9naW5PcHRpb25zLnBvc3NpYmxlUmVzdWx0cywgY3VycmVudCwgdGhpcy5wYWdlKTtcbiAgICBkZWJ1ZyhgaGFuZGxlIGxvZ2luIHJlc3VsdHMgJHtsb2dpblJlc3VsdH1gKTtcbiAgICByZXR1cm4gaGFuZGxlTG9naW5SZXN1bHQodGhpcywgbG9naW5SZXN1bHQpO1xuICB9XG5cbiAgYXN5bmMgdGVybWluYXRlKF9zdWNjZXNzOiBib29sZWFuKSB7XG4gICAgZGVidWcoYHRlcm1pbmF0aW5nIGJyb3dzZXIgd2l0aCBzdWNjZXNzID0gJHtfc3VjY2Vzc31gKTtcbiAgICB0aGlzLmVtaXRQcm9ncmVzcyhTY2FwZXJQcm9ncmVzc1R5cGVzLlRlcm1pbmF0aW5nKTtcblxuICAgIGlmICghX3N1Y2Nlc3MgJiYgISF0aGlzLm9wdGlvbnMuc3RvcmVGYWlsdXJlU2NyZWVuU2hvdFBhdGgpIHtcbiAgICAgIGRlYnVnKGBjcmVhdGUgYSBzbmFwc2hvdCBiZWZvcmUgdGVybWluYXRlZCBpbiAke3RoaXMub3B0aW9ucy5zdG9yZUZhaWx1cmVTY3JlZW5TaG90UGF0aH1gKTtcbiAgICAgIGF3YWl0IHRoaXMucGFnZS5zY3JlZW5zaG90KHtcbiAgICAgICAgcGF0aDogdGhpcy5vcHRpb25zLnN0b3JlRmFpbHVyZVNjcmVlblNob3RQYXRoLFxuICAgICAgICBmdWxsUGFnZTogdHJ1ZSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5icm93c2VyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgYXdhaXQgdGhpcy5icm93c2VyLmNsb3NlKCk7XG4gIH1cbn1cblxuZXhwb3J0IHsgQmFzZVNjcmFwZXJXaXRoQnJvd3NlciB9O1xuIl19
|
|
@@ -9,8 +9,12 @@ exports.BaseScraper = exports.ScaperProgressTypes = exports.ScraperErrorTypes =
|
|
|
9
9
|
|
|
10
10
|
var _events = require("events");
|
|
11
11
|
|
|
12
|
+
var _momentTimezone = _interopRequireDefault(require("moment-timezone"));
|
|
13
|
+
|
|
12
14
|
var _waiting = require("../helpers/waiting");
|
|
13
15
|
|
|
16
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
17
|
+
|
|
14
18
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
15
19
|
|
|
16
20
|
const SCRAPE_PROGRESS = 'SCRAPE_PROGRESS';
|
|
@@ -66,6 +70,8 @@ class BaseScraper {
|
|
|
66
70
|
|
|
67
71
|
async initialize() {
|
|
68
72
|
this.emitProgress(ScaperProgressTypes.Initializing);
|
|
73
|
+
|
|
74
|
+
_momentTimezone.default.tz.setDefault('Asia/Jerusalem');
|
|
69
75
|
}
|
|
70
76
|
|
|
71
77
|
async scrape(credentials) {
|
|
@@ -134,4 +140,4 @@ class BaseScraper {
|
|
|
134
140
|
}
|
|
135
141
|
|
|
136
142
|
exports.BaseScraper = BaseScraper;
|
|
137
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JhcGVycy9iYXNlLXNjcmFwZXIudHMiXSwibmFtZXMiOlsiU0NSQVBFX1BST0dSRVNTIiwiU2NyYXBlckVycm9yVHlwZXMiLCJTY2FwZXJQcm9ncmVzc1R5cGVzIiwiY3JlYXRlRXJyb3JSZXN1bHQiLCJlcnJvclR5cGUiLCJlcnJvck1lc3NhZ2UiLCJzdWNjZXNzIiwiY3JlYXRlVGltZW91dEVycm9yIiwiVGltZW91dCIsImNyZWF0ZUdlbmVyaWNFcnJvciIsIkdlbmVyaWMiLCJCYXNlU2NyYXBlciIsImNvbnN0cnVjdG9yIiwib3B0aW9ucyIsIkV2ZW50RW1pdHRlciIsImluaXRpYWxpemUiLCJlbWl0UHJvZ3Jlc3MiLCJJbml0aWFsaXppbmciLCJzY3JhcGUiLCJjcmVkZW50aWFscyIsIlN0YXJ0U2NyYXBpbmciLCJsb2dpblJlc3VsdCIsImxvZ2luIiwiZSIsIlRpbWVvdXRFcnJvciIsIm1lc3NhZ2UiLCJzY3JhcGVSZXN1bHQiLCJmZXRjaERhdGEiLCJ0ZXJtaW5hdGUiLCJFbmRTY3JhcGluZyIsIl9jcmVkZW50aWFscyIsIkVycm9yIiwiY29tcGFueUlkIiwiX3N1Y2Nlc3MiLCJUZXJtaW5hdGluZyIsInR5cGUiLCJlbWl0IiwiZXZlbnROYW1lIiwicGF5bG9hZCIsImV2ZW50RW1pdHRlciIsIm9uUHJvZ3Jlc3MiLCJmdW5jIiwib24iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBOztBQUVBOzs7O0FBSUEsTUFBTUEsZUFBZSxHQUFHLGlCQUF4QjtJQUVZQyxpQjs7O1dBQUFBLGlCO0FBQUFBLEVBQUFBLGlCO0FBQUFBLEVBQUFBLGlCO0FBQUFBLEVBQUFBLGlCO0FBQUFBLEVBQUFBLGlCO0FBQUFBLEVBQUFBLGlCO0FBQUFBLEVBQUFBLGlCO0dBQUFBLGlCLGlDQUFBQSxpQjs7SUE2R0FDLG1COzs7V0FBQUEsbUI7QUFBQUEsRUFBQUEsbUI7QUFBQUEsRUFBQUEsbUI7QUFBQUEsRUFBQUEsbUI7QUFBQUEsRUFBQUEsbUI7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Q0QsR0F6RHNCLENBMkR2Qjs7O0FBQ0EsUUFBTUosU0FBTixDQUFnQkssUUFBaEIsRUFBbUM7QUFDakMsU0FBS2pCLFlBQUwsQ0FBa0JkLG1CQUFtQixDQUFDZ0MsV0FBdEM7QUFDRDs7QUFFRGxCLEVBQUFBLFlBQVksQ0FBQ21CLElBQUQsRUFBNEI7QUFDdEMsU0FBS0MsSUFBTCxDQUFVcEMsZUFBVixFQUEyQjtBQUFFbUMsTUFBQUE7QUFBRixLQUEzQjtBQUNEOztBQUVEQyxFQUFBQSxJQUFJLENBQUNDLFNBQUQsRUFBb0JDLE9BQXBCLEVBQWtEO0FBQ3BELFNBQUtDLFlBQUwsQ0FBa0JILElBQWxCLENBQXVCQyxTQUF2QixFQUFrQyxLQUFLeEIsT0FBTCxDQUFhbUIsU0FBL0MsRUFBMERNLE9BQTFEO0FBQ0Q7O0FBRURFLEVBQUFBLFVBQVUsQ0FBQ0MsSUFBRCxFQUFpQztBQUN6QyxTQUFLRixZQUFMLENBQWtCRyxFQUFsQixDQUFxQjFDLGVBQXJCLEVBQXNDeUMsSUFBdEM7QUFDRDs7QUExRXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXZlbnRFbWl0dGVyIH0gZnJvbSAnZXZlbnRzJztcbmltcG9ydCB7IEJyb3dzZXIsIFBhZ2UgfSBmcm9tICdwdXBwZXRlZXInO1xuaW1wb3J0IHsgVGltZW91dEVycm9yIH0gZnJvbSAnLi4vaGVscGVycy93YWl0aW5nJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uc0FjY291bnQgfSBmcm9tICcuLi90cmFuc2FjdGlvbnMnO1xuaW1wb3J0IHsgQ29tcGFueVR5cGVzIH0gZnJvbSAnLi4vZGVmaW5pdGlvbnMnO1xuXG5jb25zdCBTQ1JBUEVfUFJPR1JFU1MgPSAnU0NSQVBFX1BST0dSRVNTJztcblxuZXhwb3J0IGVudW0gU2NyYXBlckVycm9yVHlwZXMge1xuICBJbnZhbGlkUGFzc3dvcmQgPSdJTlZBTElEX1BBU1NXT1JEJyxcbiAgQ2hhbmdlUGFzc3dvcmQgPSAnQ0hBTkdFX1BBU1NXT1JEJyxcbiAgVGltZW91dCA9ICdUSU1FT1VUJyxcbiAgQWNjb3VudEJsb2NrZWQgPSAnQUNDT1VOVF9CTE9DS0VEJyxcbiAgR2VuZXJpYyA9ICdHRU5FUklDJyxcbiAgR2VuZXJhbCA9ICdHRU5FUkFMX0VSUk9SJ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNjYXBlckxvZ2luUmVzdWx0IHtcbiAgc3VjY2VzczogYm9vbGVhbjtcbiAgZXJyb3JUeXBlPzogU2NyYXBlckVycm9yVHlwZXM7XG4gIGVycm9yTWVzc2FnZT86IHN0cmluZzsgLy8gb25seSBvbiBzdWNjZXNzPWZhbHNlXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRnV0dXJlRGViaXQge1xuICBhbW91bnQ6IG51bWJlcjtcbiAgYW1vdW50Q3VycmVuY3k6IHN0cmluZztcbiAgY2hhcmdlRGF0ZT86IHN0cmluZztcbiAgYmFua0FjY291bnROdW1iZXI/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2NhcGVyU2NyYXBpbmdSZXN1bHQge1xuICBzdWNjZXNzOiBib29sZWFuO1xuICBhY2NvdW50cz86IFRyYW5zYWN0aW9uc0FjY291bnRbXTtcbiAgZnV0dXJlRGViaXRzPzogRnV0dXJlRGViaXRbXTtcbiAgZXJyb3JUeXBlPzogU2NyYXBlckVycm9yVHlwZXM7XG4gIGVycm9yTWVzc2FnZT86IHN0cmluZzsgLy8gb25seSBvbiBzdWNjZXNzPWZhbHNlXG59XG5cbmV4cG9ydCB0eXBlIFNjcmFwZXJDcmVkZW50aWFscyA9IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2NyYXBlck9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIGNvbXBhbnkgeW91IHdhbnQgdG8gc2NyYXBlXG4gICAqL1xuICBjb21wYW55SWQ6IENvbXBhbnlUeXBlcztcblxuICAvKipcbiAgICogaW5jbHVkZSBtb3JlIGRlYnVnIGluZm8gYWJvdXQgaW4gdGhlIG91dHB1dFxuICAgKi9cbiAgdmVyYm9zZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIHRoZSBkYXRlIHRvIGZldGNoIHRyYW5zYWN0aW9ucyBmcm9tIChjYW4ndCBiZSBiZWZvcmUgdGhlIG1pbmltdW0gYWxsb3dlZCB0aW1lIGRpZmZlcmVuY2UgZm9yIHRoZSBzY3JhcGVyKVxuICAgKi9cbiAgc3RhcnREYXRlOiBEYXRlO1xuXG4gIC8qKlxuICAgKiBzaG93cyB0aGUgYnJvd3NlciB3aGlsZSBzY3JhcGluZywgZ29vZCBmb3IgZGVidWdnaW5nIChkZWZhdWx0IGZhbHNlKVxuICAgKi9cbiAgc2hvd0Jyb3dzZXI/OiBib29sZWFuO1xuXG5cbiAgLyoqXG4gICAqIHNjcmFwZSB0cmFuc2FjdGlvbnMgdG8gYmUgcHJvY2Vzc2VkIFggbW9udGhzIGluIHRoZSBmdXR1cmVcbiAgICovXG4gIGZ1dHVyZU1vbnRoc1RvU2NyYXBlPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBvcHRpb24gZnJvbSBpbml0IHB1cHBldGVlciBicm93c2VyIGluc3RhbmNlIG91dHNpZGUgdGhlIGxpYmFyeSBzY29wZS4geW91IGNhbiBnZXRcbiAgICogYnJvd3NlciBkaXJldGx5IGZyb20gcHVwcGV0ZWVyIHZpYSBgcHVwcGV0ZWVyLmxhdW5jaCgpYFxuICAgKi9cbiAgYnJvd3Nlcj86IGFueTtcblxuICAvKipcbiAgICogcHJvdmlkZSBhIHBhdGNoIHRvIGxvY2FsIGNocm9taXVtIHRvIGJlIHVzZWQgYnkgcHVwcGV0ZWVyLiBSZWxldmFudCB3aGVuIHVzaW5nXG4gICAqIGBpc3JhZWxpLWJhbmstc2NyYXBlcnMtY29yZWAgbGlicmFyeVxuICAgKi9cbiAgZXhlY3V0YWJsZVBhdGg/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIGlmIHNldCB0byB0cnVlLCBhbGwgaW5zdGFsbG1lbnQgdHJhbnNhY3Rpb25zIHdpbGwgYmUgY29tYmluZSBpbnRvIHRoZSBmaXJzdCBvbmVcbiAgICovXG4gIGNvbWJpbmVJbnN0YWxsbWVudHM/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBhZGRpdGlvbmFsIGFyZ3VtZW50cyB0byBwYXNzIHRvIHRoZSBicm93c2VyIGluc3RhbmNlLiBUaGUgbGlzdCBvZiBmbGFncyBjYW4gYmUgZm91bmQgaW5cbiAgICpcbiAgICogaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9Nb3ppbGxhL0NvbW1hbmRfTGluZV9PcHRpb25zXG4gICAqIGh0dHBzOi8vcGV0ZXIuc2gvZXhwZXJpbWVudHMvY2hyb21pdW0tY29tbWFuZC1saW5lLXN3aXRjaGVzL1xuICAgKi9cbiAgYXJncz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBhZGp1c3QgdGhlIGJyb3dzZXIgaW5zdGFuY2UgYmVmb3JlIGl0IGlzIGJlaW5nIHVzZWRcbiAgICpcbiAgICogQHBhcmFtIGJyb3dzZXJcbiAgICovXG4gIHByZXBhcmVCcm93c2VyPzogKGJyb3dzZXI6IEJyb3dzZXIpID0+IFByb21pc2U8dm9pZD47XG5cbiAgLyoqXG4gICAqIGFkanVzdCB0aGUgcGFnZSBpbnN0YW5jZSBiZWZvcmUgaXQgaXMgYmVpbmcgdXNlZC5cbiAgICpcbiAgICogQHBhcmFtIHBhZ2VcbiAgICovXG4gIHByZXBhcmVQYWdlPzogKHBhZ2U6IFBhZ2UpID0+IFByb21pc2U8dm9pZD47XG5cbiAgLyoqXG4gICAqIGlmIHNldCwgc3RvcmUgYSBzY3JlZW5zaG90IGlmIGZhaWxlZCB0byBzY3JhcGUuIFVzZWQgZm9yIGRlYnVnIHB1cnBvc2VzXG4gICAqL1xuICBzdG9yZUZhaWx1cmVTY3JlZW5TaG90UGF0aD86IHN0cmluZztcblxuICAvKipcbiAgICogaWYgc2V0LCB3aWxsIHNldCB0aGUgdGltZW91dCBpbiBtaWxsaXNlY29uZHMgb2YgcHVwcGV0ZWVyJ3MgYHBhZ2Uuc2V0RGVmYXVsdFRpbWVvdXRgLlxuICAgKi9cbiAgZGVmYXVsdFRpbWVvdXQ/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBlbnVtIFNjYXBlclByb2dyZXNzVHlwZXMge1xuICBJbml0aWFsaXppbmcgPSAnSU5JVElBTElaSU5HJyxcbiAgU3RhcnRTY3JhcGluZyA9ICdTVEFSVF9TQ1JBUElORycsXG4gIExvZ2dpbmdJbiA9ICdMT0dHSU5HX0lOJyxcbiAgTG9naW5TdWNjZXNzID0gJ0xPR0lOX1NVQ0NFU1MnLFxuICBMb2dpbkZhaWxlZCA9ICdMT0dJTl9GQUlMRUQnLFxuICBDaGFuZ2VQYXNzd29yZCA9ICdDSEFOR0VfUEFTU1dPUkQnLFxuICBFbmRTY3JhcGluZyA9ICdFTkRfU0NSQVBJTkcnLFxuICBUZXJtaW5hdGluZyA9ICdURVJNSU5BVElORycsXG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUVycm9yUmVzdWx0KGVycm9yVHlwZTogU2NyYXBlckVycm9yVHlwZXMsIGVycm9yTWVzc2FnZTogc3RyaW5nKSB7XG4gIHJldHVybiB7XG4gICAgc3VjY2VzczogZmFsc2UsXG4gICAgZXJyb3JUeXBlLFxuICAgIGVycm9yTWVzc2FnZSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlVGltZW91dEVycm9yKGVycm9yTWVzc2FnZTogc3RyaW5nKSB7XG4gIHJldHVybiBjcmVhdGVFcnJvclJlc3VsdChTY3JhcGVyRXJyb3JUeXBlcy5UaW1lb3V0LCBlcnJvck1lc3NhZ2UpO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVHZW5lcmljRXJyb3IoZXJyb3JNZXNzYWdlOiBzdHJpbmcpIHtcbiAgcmV0dXJuIGNyZWF0ZUVycm9yUmVzdWx0KFNjcmFwZXJFcnJvclR5cGVzLkdlbmVyaWMsIGVycm9yTWVzc2FnZSk7XG59XG5cbmV4cG9ydCBjbGFzcyBCYXNlU2NyYXBlciB7XG4gIHByaXZhdGUgZXZlbnRFbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBvcHRpb25zOiBTY3JhcGVyT3B0aW9ucykge1xuICB9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lICBAdHlwZXNjcmlwdC1lc2xpbnQvcmVxdWlyZS1hd2FpdFxuICBhc3luYyBpbml0aWFsaXplKCkge1xuICAgIHRoaXMuZW1pdFByb2dyZXNzKFNjYXBlclByb2dyZXNzVHlwZXMuSW5pdGlhbGl6aW5nKTtcbiAgfVxuXG4gIGFzeW5jIHNjcmFwZShjcmVkZW50aWFsczogU2NyYXBlckNyZWRlbnRpYWxzKTogUHJvbWlzZTxTY2FwZXJTY3JhcGluZ1Jlc3VsdD4ge1xuICAgIHRoaXMuZW1pdFByb2dyZXNzKFNjYXBlclByb2dyZXNzVHlwZXMuU3RhcnRTY3JhcGluZyk7XG4gICAgYXdhaXQgdGhpcy5pbml0aWFsaXplKCk7XG5cbiAgICBsZXQgbG9naW5SZXN1bHQ7XG4gICAgdHJ5IHtcbiAgICAgIGxvZ2luUmVzdWx0ID0gYXdhaXQgdGhpcy5sb2dpbihjcmVkZW50aWFscyk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgbG9naW5SZXN1bHQgPSBlIGluc3RhbmNlb2YgVGltZW91dEVycm9yID9cbiAgICAgICAgY3JlYXRlVGltZW91dEVycm9yKGUubWVzc2FnZSkgOlxuICAgICAgICBjcmVhdGVHZW5lcmljRXJyb3IoZS5tZXNzYWdlKTtcbiAgICB9XG5cbiAgICBsZXQgc2NyYXBlUmVzdWx0O1xuICAgIGlmIChsb2dpblJlc3VsdC5zdWNjZXNzKSB7XG4gICAgICB0cnkge1xuICAgICAgICBzY3JhcGVSZXN1bHQgPSBhd2FpdCB0aGlzLmZldGNoRGF0YSgpO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBzY3JhcGVSZXN1bHQgPVxuICAgICAgICAgIGUgaW5zdGFuY2VvZiBUaW1lb3V0RXJyb3IgP1xuICAgICAgICAgICAgY3JlYXRlVGltZW91dEVycm9yKGUubWVzc2FnZSkgOlxuICAgICAgICAgICAgY3JlYXRlR2VuZXJpY0Vycm9yKGUubWVzc2FnZSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHNjcmFwZVJlc3VsdCA9IGxvZ2luUmVzdWx0O1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICBjb25zdCBzdWNjZXNzID0gc2NyYXBlUmVzdWx0ICYmIHNjcmFwZVJlc3VsdC5zdWNjZXNzID09PSB0cnVlO1xuICAgICAgYXdhaXQgdGhpcy50ZXJtaW5hdGUoc3VjY2Vzcyk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgc2NyYXBlUmVzdWx0ID0gY3JlYXRlR2VuZXJpY0Vycm9yKGUubWVzc2FnZSk7XG4gICAgfVxuICAgIHRoaXMuZW1pdFByb2dyZXNzKFNjYXBlclByb2dyZXNzVHlwZXMuRW5kU2NyYXBpbmcpO1xuXG4gICAgcmV0dXJuIHNjcmFwZVJlc3VsdDtcbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnMsIEB0eXBlc2NyaXB0LWVzbGludC9yZXF1aXJlLWF3YWl0XG4gIGFzeW5jIGxvZ2luKF9jcmVkZW50aWFsczogUmVjb3JkPHN0cmluZywgc3RyaW5nPik6IFByb21pc2U8U2NhcGVyTG9naW5SZXN1bHQ+IHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYGxvZ2luKCkgaXMgbm90IGNyZWF0ZWQgaW4gJHt0aGlzLm9wdGlvbnMuY29tcGFueUlkfWApO1xuICB9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lICBAdHlwZXNjcmlwdC1lc2xpbnQvcmVxdWlyZS1hd2FpdFxuICBhc3luYyBmZXRjaERhdGEoKTogUHJvbWlzZTxTY2FwZXJTY3JhcGluZ1Jlc3VsdD4ge1xuICAgIHRocm93IG5ldyBFcnJvcihgZmV0Y2hEYXRhKCkgaXMgbm90IGNyZWF0ZWQgaW4gJHt0aGlzLm9wdGlvbnMuY29tcGFueUlkfWApO1xuICB9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFycywgQHR5cGVzY3JpcHQtZXNsaW50L3JlcXVpcmUtYXdhaXRcbiAgYXN5bmMgdGVybWluYXRlKF9zdWNjZXNzOiBib29sZWFuKSB7XG4gICAgdGhpcy5lbWl0UHJvZ3Jlc3MoU2NhcGVyUHJvZ3Jlc3NUeXBlcy5UZXJtaW5hdGluZyk7XG4gIH1cblxuICBlbWl0UHJvZ3Jlc3ModHlwZTogU2NhcGVyUHJvZ3Jlc3NUeXBlcykge1xuICAgIHRoaXMuZW1pdChTQ1JBUEVfUFJPR1JFU1MsIHsgdHlwZSB9KTtcbiAgfVxuXG4gIGVtaXQoZXZlbnROYW1lOiBzdHJpbmcsIHBheWxvYWQ6IFJlY29yZDxzdHJpbmcsIGFueT4pIHtcbiAgICB0aGlzLmV2ZW50RW1pdHRlci5lbWl0KGV2ZW50TmFtZSwgdGhpcy5vcHRpb25zLmNvbXBhbnlJZCwgcGF5bG9hZCk7XG4gIH1cblxuICBvblByb2dyZXNzKGZ1bmM6ICguLi5hcmdzOiBhbnlbXSkgPT4gdm9pZCkge1xuICAgIHRoaXMuZXZlbnRFbWl0dGVyLm9uKFNDUkFQRV9QUk9HUkVTUywgZnVuYyk7XG4gIH1cbn1cbiJdfQ==
|
|
143
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JhcGVycy9iYXNlLXNjcmFwZXIudHMiXSwibmFtZXMiOlsiU0NSQVBFX1BST0dSRVNTIiwiU2NyYXBlckVycm9yVHlwZXMiLCJTY2FwZXJQcm9ncmVzc1R5cGVzIiwiY3JlYXRlRXJyb3JSZXN1bHQiLCJlcnJvclR5cGUiLCJlcnJvck1lc3NhZ2UiLCJzdWNjZXNzIiwiY3JlYXRlVGltZW91dEVycm9yIiwiVGltZW91dCIsImNyZWF0ZUdlbmVyaWNFcnJvciIsIkdlbmVyaWMiLCJCYXNlU2NyYXBlciIsImNvbnN0cnVjdG9yIiwib3B0aW9ucyIsIkV2ZW50RW1pdHRlciIsImluaXRpYWxpemUiLCJlbWl0UHJvZ3Jlc3MiLCJJbml0aWFsaXppbmciLCJtb21lbnQiLCJ0eiIsInNldERlZmF1bHQiLCJzY3JhcGUiLCJjcmVkZW50aWFscyIsIlN0YXJ0U2NyYXBpbmciLCJsb2dpblJlc3VsdCIsImxvZ2luIiwiZSIsIlRpbWVvdXRFcnJvciIsIm1lc3NhZ2UiLCJzY3JhcGVSZXN1bHQiLCJmZXRjaERhdGEiLCJ0ZXJtaW5hdGUiLCJFbmRTY3JhcGluZyIsIl9jcmVkZW50aWFscyIsIkVycm9yIiwiY29tcGFueUlkIiwiX3N1Y2Nlc3MiLCJUZXJtaW5hdGluZyIsInR5cGUiLCJlbWl0IiwiZXZlbnROYW1lIiwicGF5bG9hZCIsImV2ZW50RW1pdHRlciIsIm9uUHJvZ3Jlc3MiLCJmdW5jIiwib24iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBOztBQUVBOztBQUNBOzs7Ozs7QUFJQSxNQUFNQSxlQUFlLEdBQUcsaUJBQXhCO0lBRVlDLGlCOzs7V0FBQUEsaUI7QUFBQUEsRUFBQUEsaUI7QUFBQUEsRUFBQUEsaUI7QUFBQUEsRUFBQUEsaUI7QUFBQUEsRUFBQUEsaUI7QUFBQUEsRUFBQUEsaUI7QUFBQUEsRUFBQUEsaUI7R0FBQUEsaUIsaUNBQUFBLGlCOztJQTZHQUMsbUI7OztXQUFBQSxtQjtBQUFBQSxFQUFBQSxtQjtBQUFBQSxFQUFB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LFNBQU4sR0FBaUQ7QUFDL0MsVUFBTSxJQUFJSSxLQUFKLENBQVcsaUNBQWdDLEtBQUtyQixPQUFMLENBQWFzQixTQUFVLEVBQWxFLENBQU47QUFDRCxHQTFEc0IsQ0E0RHZCOzs7QUFDQSxRQUFNSixTQUFOLENBQWdCSyxRQUFoQixFQUFtQztBQUNqQyxTQUFLcEIsWUFBTCxDQUFrQmQsbUJBQW1CLENBQUNtQyxXQUF0QztBQUNEOztBQUVEckIsRUFBQUEsWUFBWSxDQUFDc0IsSUFBRCxFQUE0QjtBQUN0QyxTQUFLQyxJQUFMLENBQVV2QyxlQUFWLEVBQTJCO0FBQUVzQyxNQUFBQTtBQUFGLEtBQTNCO0FBQ0Q7O0FBRURDLEVBQUFBLElBQUksQ0FBQ0MsU0FBRCxFQUFvQkMsT0FBcEIsRUFBa0Q7QUFDcEQsU0FBS0MsWUFBTCxDQUFrQkgsSUFBbEIsQ0FBdUJDLFNBQXZCLEVBQWtDLEtBQUszQixPQUFMLENBQWFzQixTQUEvQyxFQUEwRE0sT0FBMUQ7QUFDRDs7QUFFREUsRUFBQUEsVUFBVSxDQUFDQyxJQUFELEVBQWlDO0FBQ3pDLFNBQUtGLFlBQUwsQ0FBa0JHLEVBQWxCLENBQXFCN0MsZUFBckIsRUFBc0M0QyxJQUF0QztBQUNEOztBQTNFc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudEVtaXR0ZXIgfSBmcm9tICdldmVudHMnO1xuaW1wb3J0IHsgQnJvd3NlciwgUGFnZSB9IGZyb20gJ3B1cHBldGVlcic7XG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudC10aW1lem9uZSc7XG5pbXBvcnQgeyBUaW1lb3V0RXJyb3IgfSBmcm9tICcuLi9oZWxwZXJzL3dhaXRpbmcnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25zQWNjb3VudCB9IGZyb20gJy4uL3RyYW5zYWN0aW9ucyc7XG5pbXBvcnQgeyBDb21wYW55VHlwZXMgfSBmcm9tICcuLi9kZWZpbml0aW9ucyc7XG5cbmNvbnN0IFNDUkFQRV9QUk9HUkVTUyA9ICdTQ1JBUEVfUFJPR1JFU1MnO1xuXG5leHBvcnQgZW51bSBTY3JhcGVyRXJyb3JUeXBlcyB7XG4gIEludmFsaWRQYXNzd29yZCA9J0lOVkFMSURfUEFTU1dPUkQnLFxuICBDaGFuZ2VQYXNzd29yZCA9ICdDSEFOR0VfUEFTU1dPUkQnLFxuICBUaW1lb3V0ID0gJ1RJTUVPVVQnLFxuICBBY2NvdW50QmxvY2tlZCA9ICdBQ0NPVU5UX0JMT0NLRUQnLFxuICBHZW5lcmljID0gJ0dFTkVSSUMnLFxuICBHZW5lcmFsID0gJ0dFTkVSQUxfRVJST1InXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2NhcGVyTG9naW5SZXN1bHQge1xuICBzdWNjZXNzOiBib29sZWFuO1xuICBlcnJvclR5cGU/OiBTY3JhcGVyRXJyb3JUeXBlcztcbiAgZXJyb3JNZXNzYWdlPzogc3RyaW5nOyAvLyBvbmx5IG9uIHN1Y2Nlc3M9ZmFsc2Vcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGdXR1cmVEZWJpdCB7XG4gIGFtb3VudDogbnVtYmVyO1xuICBhbW91bnRDdXJyZW5jeTogc3RyaW5nO1xuICBjaGFyZ2VEYXRlPzogc3RyaW5nO1xuICBiYW5rQWNjb3VudE51bWJlcj86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTY2FwZXJTY3JhcGluZ1Jlc3VsdCB7XG4gIHN1Y2Nlc3M6IGJvb2xlYW47XG4gIGFjY291bnRzPzogVHJhbnNhY3Rpb25zQWNjb3VudFtdO1xuICBmdXR1cmVEZWJpdHM/OiBGdXR1cmVEZWJpdFtdO1xuICBlcnJvclR5cGU/OiBTY3JhcGVyRXJyb3JUeXBlcztcbiAgZXJyb3JNZXNzYWdlPzogc3RyaW5nOyAvLyBvbmx5IG9uIHN1Y2Nlc3M9ZmFsc2Vcbn1cblxuZXhwb3J0IHR5cGUgU2NyYXBlckNyZWRlbnRpYWxzID0gUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcblxuZXhwb3J0IGludGVyZmFjZSBTY3JhcGVyT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgY29tcGFueSB5b3Ugd2FudCB0byBzY3JhcGVcbiAgICovXG4gIGNvbXBhbnlJZDogQ29tcGFueVR5cGVzO1xuXG4gIC8qKlxuICAgKiBpbmNsdWRlIG1vcmUgZGVidWcgaW5mbyBhYm91dCBpbiB0aGUgb3V0cHV0XG4gICAqL1xuICB2ZXJib3NlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogdGhlIGRhdGUgdG8gZmV0Y2ggdHJhbnNhY3Rpb25zIGZyb20gKGNhbid0IGJlIGJlZm9yZSB0aGUgbWluaW11bSBhbGxvd2VkIHRpbWUgZGlmZmVyZW5jZSBmb3IgdGhlIHNjcmFwZXIpXG4gICAqL1xuICBzdGFydERhdGU6IERhdGU7XG5cbiAgLyoqXG4gICAqIHNob3dzIHRoZSBicm93c2VyIHdoaWxlIHNjcmFwaW5nLCBnb29kIGZvciBkZWJ1Z2dpbmcgKGRlZmF1bHQgZmFsc2UpXG4gICAqL1xuICBzaG93QnJvd3Nlcj86IGJvb2xlYW47XG5cblxuICAvKipcbiAgICogc2NyYXBlIHRyYW5zYWN0aW9ucyB0byBiZSBwcm9jZXNzZWQgWCBtb250aHMgaW4gdGhlIGZ1dHVyZVxuICAgKi9cbiAgZnV0dXJlTW9udGhzVG9TY3JhcGU/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIG9wdGlvbiBmcm9tIGluaXQgcHVwcGV0ZWVyIGJyb3dzZXIgaW5zdGFuY2Ugb3V0c2lkZSB0aGUgbGliYXJ5IHNjb3BlLiB5b3UgY2FuIGdldFxuICAgKiBicm93c2VyIGRpcmV0bHkgZnJvbSBwdXBwZXRlZXIgdmlhIGBwdXBwZXRlZXIubGF1bmNoKClgXG4gICAqL1xuICBicm93c2VyPzogYW55O1xuXG4gIC8qKlxuICAgKiBwcm92aWRlIGEgcGF0Y2ggdG8gbG9jYWwgY2hyb21pdW0gdG8gYmUgdXNlZCBieSBwdXBwZXRlZXIuIFJlbGV2YW50IHdoZW4gdXNpbmdcbiAgICogYGlzcmFlbGktYmFuay1zY3JhcGVycy1jb3JlYCBsaWJyYXJ5XG4gICAqL1xuICBleGVjdXRhYmxlUGF0aD86IHN0cmluZztcblxuICAvKipcbiAgICogaWYgc2V0IHRvIHRydWUsIGFsbCBpbnN0YWxsbWVudCB0cmFuc2FjdGlvbnMgd2lsbCBiZSBjb21iaW5lIGludG8gdGhlIGZpcnN0IG9uZVxuICAgKi9cbiAgY29tYmluZUluc3RhbGxtZW50cz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIGFkZGl0aW9uYWwgYXJndW1lbnRzIHRvIHBhc3MgdG8gdGhlIGJyb3dzZXIgaW5zdGFuY2UuIFRoZSBsaXN0IG9mIGZsYWdzIGNhbiBiZSBmb3VuZCBpblxuICAgKlxuICAgKiBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL01vemlsbGEvQ29tbWFuZF9MaW5lX09wdGlvbnNcbiAgICogaHR0cHM6Ly9wZXRlci5zaC9leHBlcmltZW50cy9jaHJvbWl1bS1jb21tYW5kLWxpbmUtc3dpdGNoZXMvXG4gICAqL1xuICBhcmdzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIGFkanVzdCB0aGUgYnJvd3NlciBpbnN0YW5jZSBiZWZvcmUgaXQgaXMgYmVpbmcgdXNlZFxuICAgKlxuICAgKiBAcGFyYW0gYnJvd3NlclxuICAgKi9cbiAgcHJlcGFyZUJyb3dzZXI/OiAoYnJvd3NlcjogQnJvd3NlcikgPT4gUHJvbWlzZTx2b2lkPjtcblxuICAvKipcbiAgICogYWRqdXN0IHRoZSBwYWdlIGluc3RhbmNlIGJlZm9yZSBpdCBpcyBiZWluZyB1c2VkLlxuICAgKlxuICAgKiBAcGFyYW0gcGFnZVxuICAgKi9cbiAgcHJlcGFyZVBhZ2U/OiAocGFnZTogUGFnZSkgPT4gUHJvbWlzZTx2b2lkPjtcblxuICAvKipcbiAgICogaWYgc2V0LCBzdG9yZSBhIHNjcmVlbnNob3QgaWYgZmFpbGVkIHRvIHNjcmFwZS4gVXNlZCBmb3IgZGVidWcgcHVycG9zZXNcbiAgICovXG4gIHN0b3JlRmFpbHVyZVNjcmVlblNob3RQYXRoPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBpZiBzZXQsIHdpbGwgc2V0IHRoZSB0aW1lb3V0IGluIG1pbGxpc2Vjb25kcyBvZiBwdXBwZXRlZXIncyBgcGFnZS5zZXREZWZhdWx0VGltZW91dGAuXG4gICAqL1xuICBkZWZhdWx0VGltZW91dD86IG51bWJlcjtcbn1cblxuZXhwb3J0IGVudW0gU2NhcGVyUHJvZ3Jlc3NUeXBlcyB7XG4gIEluaXRpYWxpemluZyA9ICdJTklUSUFMSVpJTkcnLFxuICBTdGFydFNjcmFwaW5nID0gJ1NUQVJUX1NDUkFQSU5HJyxcbiAgTG9nZ2luZ0luID0gJ0xPR0dJTkdfSU4nLFxuICBMb2dpblN1Y2Nlc3MgPSAnTE9HSU5fU1VDQ0VTUycsXG4gIExvZ2luRmFpbGVkID0gJ0xPR0lOX0ZBSUxFRCcsXG4gIENoYW5nZVBhc3N3b3JkID0gJ0NIQU5HRV9QQVNTV09SRCcsXG4gIEVuZFNjcmFwaW5nID0gJ0VORF9TQ1JBUElORycsXG4gIFRlcm1pbmF0aW5nID0gJ1RFUk1JTkFUSU5HJyxcbn1cblxuZnVuY3Rpb24gY3JlYXRlRXJyb3JSZXN1bHQoZXJyb3JUeXBlOiBTY3JhcGVyRXJyb3JUeXBlcywgZXJyb3JNZXNzYWdlOiBzdHJpbmcpIHtcbiAgcmV0dXJuIHtcbiAgICBzdWNjZXNzOiBmYWxzZSxcbiAgICBlcnJvclR5cGUsXG4gICAgZXJyb3JNZXNzYWdlLFxuICB9O1xufVxuXG5mdW5jdGlvbiBjcmVhdGVUaW1lb3V0RXJyb3IoZXJyb3JNZXNzYWdlOiBzdHJpbmcpIHtcbiAgcmV0dXJuIGNyZWF0ZUVycm9yUmVzdWx0KFNjcmFwZXJFcnJvclR5cGVzLlRpbWVvdXQsIGVycm9yTWVzc2FnZSk7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUdlbmVyaWNFcnJvcihlcnJvck1lc3NhZ2U6IHN0cmluZykge1xuICByZXR1cm4gY3JlYXRlRXJyb3JSZXN1bHQoU2NyYXBlckVycm9yVHlwZXMuR2VuZXJpYywgZXJyb3JNZXNzYWdlKTtcbn1cblxuZXhwb3J0IGNsYXNzIEJhc2VTY3JhcGVyIHtcbiAgcHJpdmF0ZSBldmVudEVtaXR0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgY29uc3RydWN0b3IocHVibGljIG9wdGlvbnM6IFNjcmFwZXJPcHRpb25zKSB7XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgIEB0eXBlc2NyaXB0LWVzbGludC9yZXF1aXJlLWF3YWl0XG4gIGFzeW5jIGluaXRpYWxpemUoKSB7XG4gICAgdGhpcy5lbWl0UHJvZ3Jlc3MoU2NhcGVyUHJvZ3Jlc3NUeXBlcy5Jbml0aWFsaXppbmcpO1xuICAgIG1vbWVudC50ei5zZXREZWZhdWx0KCdBc2lhL0plcnVzYWxlbScpO1xuICB9XG5cbiAgYXN5bmMgc2NyYXBlKGNyZWRlbnRpYWxzOiBTY3JhcGVyQ3JlZGVudGlhbHMpOiBQcm9taXNlPFNjYXBlclNjcmFwaW5nUmVzdWx0PiB7XG4gICAgdGhpcy5lbWl0UHJvZ3Jlc3MoU2NhcGVyUHJvZ3Jlc3NUeXBlcy5TdGFydFNjcmFwaW5nKTtcbiAgICBhd2FpdCB0aGlzLmluaXRpYWxpemUoKTtcblxuICAgIGxldCBsb2dpblJlc3VsdDtcbiAgICB0cnkge1xuICAgICAgbG9naW5SZXN1bHQgPSBhd2FpdCB0aGlzLmxvZ2luKGNyZWRlbnRpYWxzKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBsb2dpblJlc3VsdCA9IGUgaW5zdGFuY2VvZiBUaW1lb3V0RXJyb3IgP1xuICAgICAgICBjcmVhdGVUaW1lb3V0RXJyb3IoZS5tZXNzYWdlKSA6XG4gICAgICAgIGNyZWF0ZUdlbmVyaWNFcnJvcihlLm1lc3NhZ2UpO1xuICAgIH1cblxuICAgIGxldCBzY3JhcGVSZXN1bHQ7XG4gICAgaWYgKGxvZ2luUmVzdWx0LnN1Y2Nlc3MpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHNjcmFwZVJlc3VsdCA9IGF3YWl0IHRoaXMuZmV0Y2hEYXRhKCk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHNjcmFwZVJlc3VsdCA9XG4gICAgICAgICAgZSBpbnN0YW5jZW9mIFRpbWVvdXRFcnJvciA/XG4gICAgICAgICAgICBjcmVhdGVUaW1lb3V0RXJyb3IoZS5tZXNzYWdlKSA6XG4gICAgICAgICAgICBjcmVhdGVHZW5lcmljRXJyb3IoZS5tZXNzYWdlKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgc2NyYXBlUmVzdWx0ID0gbG9naW5SZXN1bHQ7XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHN1Y2Nlc3MgPSBzY3JhcGVSZXN1bHQgJiYgc2NyYXBlUmVzdWx0LnN1Y2Nlc3MgPT09IHRydWU7XG4gICAgICBhd2FpdCB0aGlzLnRlcm1pbmF0ZShzdWNjZXNzKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBzY3JhcGVSZXN1bHQgPSBjcmVhdGVHZW5lcmljRXJyb3IoZS5tZXNzYWdlKTtcbiAgICB9XG4gICAgdGhpcy5lbWl0UHJvZ3Jlc3MoU2NhcGVyUHJvZ3Jlc3NUeXBlcy5FbmRTY3JhcGluZyk7XG5cbiAgICByZXR1cm4gc2NyYXBlUmVzdWx0O1xuICB9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFycywgQHR5cGVzY3JpcHQtZXNsaW50L3JlcXVpcmUtYXdhaXRcbiAgYXN5bmMgbG9naW4oX2NyZWRlbnRpYWxzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+KTogUHJvbWlzZTxTY2FwZXJMb2dpblJlc3VsdD4ge1xuICAgIHRocm93IG5ldyBFcnJvcihgbG9naW4oKSBpcyBub3QgY3JlYXRlZCBpbiAke3RoaXMub3B0aW9ucy5jb21wYW55SWR9YCk7XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgIEB0eXBlc2NyaXB0LWVzbGludC9yZXF1aXJlLWF3YWl0XG4gIGFzeW5jIGZldGNoRGF0YSgpOiBQcm9taXNlPFNjYXBlclNjcmFwaW5nUmVzdWx0PiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBmZXRjaERhdGEoKSBpcyBub3QgY3JlYXRlZCBpbiAke3RoaXMub3B0aW9ucy5jb21wYW55SWR9YCk7XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzLCBAdHlwZXNjcmlwdC1lc2xpbnQvcmVxdWlyZS1hd2FpdFxuICBhc3luYyB0ZXJtaW5hdGUoX3N1Y2Nlc3M6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmVtaXRQcm9ncmVzcyhTY2FwZXJQcm9ncmVzc1R5cGVzLlRlcm1pbmF0aW5nKTtcbiAgfVxuXG4gIGVtaXRQcm9ncmVzcyh0eXBlOiBTY2FwZXJQcm9ncmVzc1R5cGVzKSB7XG4gICAgdGhpcy5lbWl0KFNDUkFQRV9QUk9HUkVTUywgeyB0eXBlIH0pO1xuICB9XG5cbiAgZW1pdChldmVudE5hbWU6IHN0cmluZywgcGF5bG9hZDogUmVjb3JkPHN0cmluZywgYW55Pikge1xuICAgIHRoaXMuZXZlbnRFbWl0dGVyLmVtaXQoZXZlbnROYW1lLCB0aGlzLm9wdGlvbnMuY29tcGFueUlkLCBwYXlsb2FkKTtcbiAgfVxuXG4gIG9uUHJvZ3Jlc3MoZnVuYzogKC4uLmFyZ3M6IGFueVtdKSA9PiB2b2lkKSB7XG4gICAgdGhpcy5ldmVudEVtaXR0ZXIub24oU0NSQVBFX1BST0dSRVNTLCBmdW5jKTtcbiAgfVxufVxuIl19
|
package/lib/scrapers/mizrahi.js
CHANGED
|
@@ -19,6 +19,8 @@ var _fetch = require("../helpers/fetch");
|
|
|
19
19
|
|
|
20
20
|
var _navigation = require("../helpers/navigation");
|
|
21
21
|
|
|
22
|
+
var _waiting = require("../helpers/waiting");
|
|
23
|
+
|
|
22
24
|
var _transactions = require("../transactions");
|
|
23
25
|
|
|
24
26
|
var _baseScraper = require("./base-scraper");
|
|
@@ -173,9 +175,9 @@ class MizrahiScraper extends _baseScraperWithBrowser.BaseScraperWithBrowser {
|
|
|
173
175
|
|
|
174
176
|
async fetchAccount() {
|
|
175
177
|
// workaround for situations where Mizrahi pops up pages (e.g. email update page)
|
|
176
|
-
await this.page.waitForNavigation({
|
|
178
|
+
await (0, _waiting.raceTimeout)(30 * _waiting.SECOND, this.page.waitForNavigation({
|
|
177
179
|
waitUntil: 'networkidle2'
|
|
178
|
-
});
|
|
180
|
+
}));
|
|
179
181
|
await this.page.$eval(`a[href="${OSH_PAGE}"]`, el => el.click());
|
|
180
182
|
await (0, _elementsInteractions.waitUntilElementFound)(this.page, `a[href="${TRANSACTIONS_PAGE}"]`);
|
|
181
183
|
await this.page.$eval(`a[href="${TRANSACTIONS_PAGE}"]`, el => el.click());
|
|
@@ -209,4 +211,4 @@ class MizrahiScraper extends _baseScraperWithBrowser.BaseScraperWithBrowser {
|
|
|
209
211
|
|
|
210
212
|
var _default = MizrahiScraper;
|
|
211
213
|
exports.default = _default;
|
|
212
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JhcGVycy9taXpyYWhpLnRzIl0sIm5hbWVzIjpbIkJBU0VfV0VCU0lURV9VUkwiLCJMT0dJTl9VUkwiLCJCQVNFX0FQUF9VUkwiLCJBRlRFUl9MT0dJTl9CQVNFX1VSTCIsIk9TSF9QQUdFIiwiVFJBTlNBQ1RJT05TX1BBR0UiLCJUUkFOU0FDVElPTlNfUkVRVUVTVF9VUkwiLCJQRU5ESU5HX1RSQU5TQUNUSU9OU19QQUdFIiwiUEVORElOR19UUkFOU0FDVElPTlNfSUZSQU1FIiwiQ0hBTkdFX1BBU1NXT1JEX1VSTCIsIkRBVEVfRk9STUFUIiwiTUFYX1JPV1NfUEVSX1JFUVVFU1QiLCJ1c2VybmFtZVNlbGVjdG9yIiwicGFzc3dvcmRTZWxlY3RvciIsInN1Ym1pdEJ1dHRvblNlbGVjdG9yIiwiaW52YWxpZFBhc3N3b3JkU2VsZWN0b3IiLCJhZnRlckxvZ2luU2VsZWN0b3IiLCJsb2dpblNwaW5uZXJTZWxlY3RvciIsImFjY291bnREcm9wRG93bkl0ZW1TZWxlY3RvciIsInBlbmRpbmdUcnhJZGVudGlmaWVySWQiLCJjaGVja2luZ0FjY291bnRUYWJIZWJyZXdOYW1lIiwiY2hlY2tpbmdBY2NvdW50VGFiRW5nbGlzaE5hbWUiLCJjcmVhdGVMb2dpbkZpZWxkcyIsImNyZWRlbnRpYWxzIiwic2VsZWN0b3IiLCJ2YWx1ZSIsInVzZXJuYW1lIiwicGFzc3dvcmQiLCJnZXRQb3NzaWJsZUxvZ2luUmVzdWx0cyIsInBhZ2UiLCJMb2dpblJlc3VsdHMiLCJTdWNjZXNzIiwiJHgiLCJJbnZhbGlkUGFzc3dvcmQiLCIkIiwiQ2hhbmdlUGFzc3dvcmQiLCJnZXRTdGFydE1vbWVudCIsIm9wdGlvbnNTdGFydERhdGUiLCJkZWZhdWx0U3RhcnRNb21lbnQiLCJzdWJ0cmFjdCIsInN0YXJ0RGF0ZSIsInRvRGF0ZSIsIm1vbWVudCIsIm1heCIsImNyZWF0ZURhdGFGcm9tUmVxdWVzdCIsInJlcXVlc3QiLCJkYXRhIiwiSlNPTiIsInBhcnNlIiwicG9zdERhdGEiLCJpbkZyb21EYXRlIiwiZm9ybWF0IiwiaW5Ub0RhdGUiLCJ0YWJsZSIsIm1heFJvdyIsImNyZWF0ZUhlYWRlcnNGcm9tUmVxdWVzdCIsIm1penJhaGl4c3JmdG9rZW4iLCJoZWFkZXJzIiwiY29udmVydFRyYW5zYWN0aW9ucyIsInR4bnMiLCJtYXAiLCJyb3ciLCJ0eG5EYXRlIiwiTUMwMlBldWxhVGFhRVoiLCJIVE1MNV9GTVQiLCJEQVRFVElNRV9MT0NBTF9TRUNPTkRTIiwidG9JU09TdHJpbmciLCJ0eXBlIiwiVHJhbnNhY3Rpb25UeXBlcyIsIk5vcm1hbCIsImlkZW50aWZpZXIiLCJNQzAyQXNtYWh0YU1la29yaXRFWiIsInBhcnNlSW50IiwidW5kZWZpbmVkIiwiZGF0ZSIsInByb2Nlc3NlZERhdGUiLCJvcmlnaW5hbEFtb3VudCIsIk1DMDJTY2h1bUVaIiwib3JpZ2luYWxDdXJyZW5jeSIsIlNIRUtFTF9DVVJSRU5DWSIsImNoYXJnZWRBbW91bnQiLCJkZXNjcmlwdGlvbiIsIk1DMDJUbnVhVGV1ckVaIiwic3RhdHVzIiwiVHJhbnNhY3Rpb25TdGF0dXNlcyIsIkNvbXBsZXRlZCIsImV4dHJhY3RQZW5kaW5nVHJhbnNhY3Rpb25zIiwicGVuZGluZ1R4biIsInRycyIsInRyIiwiQXJyYXkiLCJmcm9tIiwicXVlcnlTZWxlY3RvckFsbCIsInRkIiwidGV4dENvbnRlbnQiLCJ0eG4iLCJhbW91bnQiLCJQZW5kaW5nIiwicG9zdExvZ2luIiwiUHJvbWlzZSIsInJhY2UiLCJNaXpyYWhpU2NyYXBlciIsIkJhc2VTY3JhcGVyV2l0aEJyb3dzZXIiLCJnZXRMb2dpbk9wdGlvbnMiLCJsb2dpblVybCIsImZpZWxkcyIsImNoZWNrUmVhZGluZXNzIiwicG9zdEFjdGlvbiIsInBvc3NpYmxlUmVzdWx0cyIsImZldGNoRGF0YSIsIiRldmFsIiwiZWwiLCJjbGljayIsIm51bU9mQWNjb3VudHMiLCIkJCIsImxlbmd0aCIsInJlc3VsdHMiLCJpIiwicHVzaCIsImZldGNoQWNjb3VudCIsInN1Y2Nlc3MiLCJhY2NvdW50cyIsImUiLCJlcnJvclR5cGUiLCJTY3JhcGVyRXJyb3JUeXBlcyIsIkdlbmVyaWMiLCJlcnJvck1lc3NhZ2UiLCJtZXNzYWdlIiwid2FpdEZvck5hdmlnYXRpb24iLCJ3YWl0VW50aWwiLCJ3YWl0Rm9yUmVxdWVzdCIsIm9wdGlvbnMiLCJyZXNwb25zZSIsImhlYWRlciIsIkVycm9yIiwibWVzc2FnZXMiLCJ0ZXh0IiwicmVsZXZhbnRSb3dzIiwiYm9keSIsInJvd3MiLCJmaWx0ZXIiLCJSZWNUeXBlU3BlY2lmaWVkIiwib3NoVHhuIiwic3RhcnRNb21lbnQiLCJvc2hUeG5BZnRlclN0YXJ0RGF0ZSIsImlzU2FtZU9yQWZ0ZXIiLCJmcmFtZSIsImYiLCJ1cmwiLCJpbmNsdWRlcyIsImFsbFR4biIsImNvbmNhdCIsImFjY291bnROdW1iZXIiLCJBY2NvdW50TnVtYmVyIiwiYmFsYW5jZSIsIllpdHJhTGVsb0NoZWtpbSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTs7QUFFQTs7QUFDQTs7QUFHQTs7QUFDQTs7QUFDQTs7QUFHQTs7QUFDQTs7OztBQTBCQSxNQUFNQSxnQkFBZ0IsR0FBRyxtQ0FBekI7QUFDQSxNQUFNQyxTQUFTLEdBQUksR0FBRUQsZ0JBQWlCLGlDQUF0QztBQUNBLE1BQU1FLFlBQVksR0FBRyxtQ0FBckI7QUFDQSxNQUFNQyxvQkFBb0IsR0FBRyx1REFBN0I7QUFDQSxNQUFNQyxRQUFRLEdBQUcsdUNBQWpCO0FBQ0EsTUFBTUMsaUJBQWlCLEdBQUcsNkNBQTFCO0FBQ0EsTUFBTUMsd0JBQXdCLEdBQUksR0FBRUosWUFBYSxnQ0FBakQ7QUFDQSxNQUFNSyx5QkFBeUIsR0FBRyx1Q0FBbEM7QUFDQSxNQUFNQywyQkFBMkIsR0FBRyxXQUFwQztBQUNBLE1BQU1DLG1CQUFtQixHQUFHLCtFQUE1QjtBQUNBLE1BQU1DLFdBQVcsR0FBRyxZQUFwQjtBQUNBLE1BQU1DLG9CQUFvQixHQUFHLFdBQTdCO0FBRUEsTUFBTUMsZ0JBQWdCLEdBQUcsa0JBQXpCO0FBQ0Es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b21lbnQgZnJvbSAnbW9tZW50JztcbmltcG9ydCB7IEZyYW1lLCBQYWdlLCBSZXF1ZXN0IH0gZnJvbSAncHVwcGV0ZWVyJztcbmltcG9ydCB7IFNIRUtFTF9DVVJSRU5DWSB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQge1xuICBwYWdlRXZhbEFsbCwgd2FpdFVudGlsRWxlbWVudERpc2FwcGVhciwgd2FpdFVudGlsRWxlbWVudEZvdW5kLCB3YWl0VW50aWxJZnJhbWVGb3VuZCxcbn0gZnJvbSAnLi4vaGVscGVycy9lbGVtZW50cy1pbnRlcmFjdGlvbnMnO1xuaW1wb3J0IHsgZmV0Y2hQb3N0V2l0aGluUGFnZSB9IGZyb20gJy4uL2hlbHBlcnMvZmV0Y2gnO1xuaW1wb3J0IHsgd2FpdEZvclVybCB9IGZyb20gJy4uL2hlbHBlcnMvbmF2aWdhdGlvbic7XG5pbXBvcnQge1xuICBUcmFuc2FjdGlvbiwgVHJhbnNhY3Rpb25zQWNjb3VudCwgVHJhbnNhY3Rpb25TdGF0dXNlcywgVHJhbnNhY3Rpb25UeXBlcyxcbn0gZnJvbSAnLi4vdHJhbnNhY3Rpb25zJztcbmltcG9ydCB7IFNjcmFwZXJDcmVkZW50aWFscywgU2NyYXBlckVycm9yVHlwZXMgfSBmcm9tICcuL2Jhc2Utc2NyYXBlcic7XG5pbXBvcnQgeyBCYXNlU2NyYXBlcldpdGhCcm93c2VyLCBMb2dpblJlc3VsdHMsIFBvc3NpYmxlTG9naW5SZXN1bHRzIH0gZnJvbSAnLi9iYXNlLXNjcmFwZXItd2l0aC1icm93c2VyJztcblxuaW50ZXJmYWNlIFNjcmFwZWRUcmFuc2FjdGlvbiB7XG4gIFJlY1R5cGVTcGVjaWZpZWQ6IGJvb2xlYW47XG4gIE1DMDJQZXVsYVRhYUVaOiBzdHJpbmc7XG4gIE1DMDJTY2h1bUVaOiBudW1iZXI7XG4gIE1DMDJBc21haHRhTWVrb3JpdEVaOiBzdHJpbmc7XG4gIE1DMDJUbnVhVGV1ckVaOiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBTY3JhcGVkVHJhbnNhY3Rpb25zUmVzdWx0IHtcbiAgaGVhZGVyOiB7XG4gICAgc3VjY2VzczogYm9vbGVhbjtcbiAgICBtZXNzYWdlczogeyB0ZXh0OiBzdHJpbmcgfVtdO1xuICB9O1xuICBib2R5OiB7XG4gICAgZmllbGRzOiB7XG4gICAgICBBY2NvdW50TnVtYmVyOiBzdHJpbmc7XG4gICAgICBZaXRyYUxlbG9DaGVraW06IHN0cmluZztcbiAgICB9O1xuICAgIHRhYmxlOiB7XG4gICAgICByb3dzOiBTY3JhcGVkVHJhbnNhY3Rpb25bXTtcbiAgICB9O1xuICB9O1xufVxuXG5jb25zdCBCQVNFX1dFQlNJVEVfVVJMID0gJ2h0dHBzOi8vd3d3Lm1penJhaGktdGVmYWhvdC5jby5pbCc7XG5jb25zdCBMT0dJTl9VUkwgPSBgJHtCQVNFX1dFQlNJVEVfVVJMfS9sb2dpbi9pbmRleC5odG1sIy9hdXRoLXBhZ2UtaGVgO1xuY29uc3QgQkFTRV9BUFBfVVJMID0gJ2h0dHBzOi8vbXRvLm1penJhaGktdGVmYWhvdC5jby5pbCc7XG5jb25zdCBBRlRFUl9MT0dJTl9CQVNFX1VSTCA9IC9odHRwczpcXC9cXC9tdG9cXC5taXpyYWhpLXRlZmFob3RcXC5jb1xcLmlsXFwvT25saW5lQXBwXFwvLiovO1xuY29uc3QgT1NIX1BBR0UgPSAnL09ubGluZUFwcC9vc2gvbGVnYWN5L2xlZ2FjeS1Pc2gtTWFpbic7XG5jb25zdCBUUkFOU0FDVElPTlNfUEFHRSA9ICcvT25saW5lQXBwL29zaC9sZWdhY3kvcm9vdC1tYWluLW9zaC1wNDI4TmV3JztcbmNvbnN0IFRSQU5TQUNUSU9OU19SRVFVRVNUX1VSTCA9IGAke0JBU0VfQVBQX1VSTH0vT25saW5lL2FwaS9Ta3lPU0gvZ2V0NDI4SW5kZXhgO1xuY29uc3QgUEVORElOR19UUkFOU0FDVElPTlNfUEFHRSA9ICcvT25saW5lQXBwL29zaC9sZWdhY3kvbGVnYWN5LU9zaC1wNDIwJztcbmNvbnN0IFBFTkRJTkdfVFJBTlNBQ1RJT05TX0lGUkFNRSA9ICdwNDIwLmFzcHgnO1xuY29uc3QgQ0hBTkdFX1BBU1NXT1JEX1VSTCA9IC9odHRwczpcXC9cXC93d3dcXC5taXpyYWhpLXRlZmFob3RcXC5jb1xcLmlsXFwvbG9naW5cXC9cXHcrXFwvaW5kZXhcXC5odG1sI1xcL2NoYW5nZS1wYXNzLztcbmNvbnN0IERBVEVfRk9STUFUID0gJ0REL01NL1lZWVknO1xuY29uc3QgTUFYX1JPV1NfUEVSX1JFUVVFU1QgPSAxMDAwMDAwMDAwMDtcblxuY29uc3QgdXNlcm5hbWVTZWxlY3RvciA9ICcjZW1haWxEZXNrdG9wSGViJztcbmNvbnN0IHBhc3N3b3JkU2VsZWN0b3IgPSAnI3Bhc3N3b3JkSUREZXNrdG9wSEVCJztcbmNvbnN0IHN1Ym1pdEJ1dHRvblNlbGVjdG9yID0gJy5mb3JtLWRlc2t0b3AgYnV0dG9uJztcbmNvbnN0IGludmFsaWRQYXNzd29yZFNlbGVjdG9yID0gJ2FbaHJlZio9XCJodHRwczovL3NjLm1penJhaGktdGVmYWhvdC5jby5pbC9TQ1NlcnZpY2VzL1NDL1AwMTAuYXNweFwiXSc7XG5jb25zdCBhZnRlckxvZ2luU2VsZWN0b3IgPSAnI2Ryb3Bkb3duQmFzaWMnO1xuY29uc3QgbG9naW5TcGlubmVyU2VsZWN0b3IgPSAnZGl2Lm5neC1vdmVybGF5LmxvYWRpbmctZm9yZWdyb3VuZCc7XG5jb25zdCBhY2NvdW50RHJvcERvd25JdGVtU2VsZWN0b3IgPSAnI0FjY291bnRQaWNrZXIgLml0ZW0nO1xuY29uc3QgcGVuZGluZ1RyeElkZW50aWZpZXJJZCA9ICcjY3RsMDBfQ29udGVudFBsYWNlSG9sZGVyMl9wYW5lbDEnO1xuY29uc3QgY2hlY2tpbmdBY2NvdW50VGFiSGVicmV3TmFtZSA9ICfXoteV15HXqCDXldep15EnO1xuY29uc3QgY2hlY2tpbmdBY2NvdW50VGFiRW5nbGlzaE5hbWUgPSAnQ2hlY2tpbmcgQWNjb3VudCc7XG5cblxuZnVuY3Rpb24gY3JlYXRlTG9naW5GaWVsZHMoY3JlZGVudGlhbHM6IFNjcmFwZXJDcmVkZW50aWFscykge1xuICByZXR1cm4gW1xuICAgIHsgc2VsZWN0b3I6IHVzZXJuYW1lU2VsZWN0b3IsIHZhbHVlOiBjcmVkZW50aWFscy51c2VybmFtZSB9LFxuICAgIHsgc2VsZWN0b3I6IHBhc3N3b3JkU2VsZWN0b3IsIHZhbHVlOiBjcmVkZW50aWFscy5wYXNzd29yZCB9LFxuICBdO1xufVxuXG5mdW5jdGlvbiBnZXRQb3NzaWJsZUxvZ2luUmVzdWx0cyhwYWdlOiBQYWdlKTogUG9zc2libGVMb2dpblJlc3VsdHMge1xuICByZXR1cm4ge1xuICAgIFtMb2dpblJlc3VsdHMuU3VjY2Vzc106IFtBRlRFUl9MT0dJTl9CQVNFX1VSTCwgYXN5bmMgKCkgPT4gISEoYXdhaXQgcGFnZS4keChgLy9hLy9zcGFuW2NvbnRhaW5zKC4sIFwiJHtjaGVja2luZ0FjY291bnRUYWJIZWJyZXdOYW1lfVwiKSBvciBjb250YWlucyguLCBcIiR7Y2hlY2tpbmdBY2NvdW50VGFiRW5nbGlzaE5hbWV9XCIpXWApKV0sXG4gICAgW0xvZ2luUmVzdWx0cy5JbnZhbGlkUGFzc3dvcmRdOiBbYXN5bmMgKCkgPT4gISEoYXdhaXQgcGFnZS4kKGludmFsaWRQYXNzd29yZFNlbGVjdG9yKSldLFxuICAgIFtMb2dpblJlc3VsdHMuQ2hhbmdlUGFzc3dvcmRdOiBbQ0hBTkdFX1BBU1NXT1JEX1VSTF0sXG4gIH07XG59XG5cbmZ1bmN0aW9uIGdldFN0YXJ0TW9tZW50KG9wdGlvbnNTdGFydERhdGU6IERhdGUpIHtcbiAgY29uc3QgZGVmYXVsdFN0YXJ0TW9tZW50ID0gbW9tZW50KCkuc3VidHJhY3QoMSwgJ3llYXJzJyk7XG4gIGNvbnN0IHN0YXJ0RGF0ZSA9IG9wdGlvbnNTdGFydERhdGUgfHwgZGVmYXVsdFN0YXJ0TW9tZW50LnRvRGF0ZSgpO1xuICByZXR1cm4gbW9tZW50Lm1heChkZWZhdWx0U3RhcnRNb21lbnQsIG1vbWVudChzdGFydERhdGUpKTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlRGF0YUZyb21SZXF1ZXN0KHJlcXVlc3Q6IFJlcXVlc3QsIG9wdGlvbnNTdGFydERhdGU6IERhdGUpIHtcbiAgY29uc3QgZGF0YSA9IEpTT04ucGFyc2UocmVxdWVzdC5wb3N0RGF0YSgpIHx8ICd7fScpO1xuXG4gIGRhdGEuaW5Gcm9tRGF0ZSA9IGdldFN0YXJ0TW9tZW50KG9wdGlvbnNTdGFydERhdGUpLmZvcm1hdChEQVRFX0ZPUk1BVCk7XG4gIGRhdGEuaW5Ub0RhdGUgPSBtb21lbnQoKS5mb3JtYXQoREFURV9GT1JNQVQpO1xuICBkYXRhLnRhYmxlLm1heFJvdyA9IE1BWF9ST1dTX1BFUl9SRVFVRVNUO1xuXG4gIHJldHVybiBkYXRhO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVIZWFkZXJzRnJvbVJlcXVlc3QocmVxdWVzdDogUmVxdWVzdCkge1xuICByZXR1cm4ge1xuICAgIG1penJhaGl4c3JmdG9rZW46IHJlcXVlc3QuaGVhZGVycygpLm1penJhaGl4c3JmdG9rZW4sXG4gICAgJ0NvbnRlbnQtVHlwZSc6IHJlcXVlc3QuaGVhZGVycygpWydjb250ZW50LXR5cGUnXSxcbiAgfTtcbn1cblxuXG5mdW5jdGlvbiBjb252ZXJ0VHJhbnNhY3Rpb25zKHR4bnM6IFNjcmFwZWRUcmFuc2FjdGlvbltdKTogVHJhbnNhY3Rpb25bXSB7XG4gIHJldHVybiB0eG5zLm1hcCgocm93KSA9PiB7XG4gICAgY29uc3QgdHhuRGF0ZSA9IG1vbWVudChyb3cuTUMwMlBldWxhVGFhRVosIG1vbWVudC5IVE1MNV9GTVQuREFURVRJTUVfTE9DQUxfU0VDT05EUylcbiAgICAgIC50b0lTT1N0cmluZygpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6IFRyYW5zYWN0aW9uVHlwZXMuTm9ybWFsLFxuICAgICAgaWRlbnRpZmllcjogcm93Lk1DMDJBc21haHRhTWVrb3JpdEVaID8gcGFyc2VJbnQocm93Lk1DMDJBc21haHRhTWVrb3JpdEVaLCAxMCkgOiB1bmRlZmluZWQsXG4gICAgICBkYXRlOiB0eG5EYXRlLFxuICAgICAgcHJvY2Vzc2VkRGF0ZTogdHhuRGF0ZSxcbiAgICAgIG9yaWdpbmFsQW1vdW50OiByb3cuTUMwMlNjaHVtRVosXG4gICAgICBvcmlnaW5hbEN1cnJlbmN5OiBTSEVLRUxfQ1VSUkVOQ1ksXG4gICAgICBjaGFyZ2VkQW1vdW50OiByb3cuTUMwMlNjaHVtRVosXG4gICAgICBkZXNjcmlwdGlvbjogcm93Lk1DMDJUbnVhVGV1ckVaLFxuICAgICAgc3RhdHVzOiBUcmFuc2FjdGlvblN0YXR1c2VzLkNvbXBsZXRlZCxcbiAgICB9O1xuICB9KTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZXh0cmFjdFBlbmRpbmdUcmFuc2FjdGlvbnMocGFnZTogRnJhbWUpOiBQcm9taXNlPFRyYW5zYWN0aW9uW10+IHtcbiAgY29uc3QgcGVuZGluZ1R4biA9IGF3YWl0IHBhZ2VFdmFsQWxsKHBhZ2UsICd0ci5yZ1JvdycsIFtdLCAodHJzKSA9PiB7XG4gICAgcmV0dXJuIHRycy5tYXAoKHRyKSA9PiBBcnJheS5mcm9tKHRyLnF1ZXJ5U2VsZWN0b3JBbGwoJ3RkJyksICh0ZDogSFRNTFRhYmxlRGF0YUNlbGxFbGVtZW50KSA9PiB0ZC50ZXh0Q29udGVudCB8fCAnJykpO1xuICB9KTtcblxuICByZXR1cm4gcGVuZGluZ1R4bi5tYXAoKHR4bikgPT4ge1xuICAgIGNvbnN0IGRhdGUgPSBtb21lbnQodHhuWzBdLCAnREQvTU0vWVknKS50b0lTT1N0cmluZygpO1xuICAgIGNvbnN0IGFtb3VudCA9IHBhcnNlSW50KHR4blszXSwgMTApO1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiBUcmFuc2FjdGlvblR5cGVzLk5vcm1hbCxcbiAgICAgIGRhdGUsXG4gICAgICBwcm9jZXNzZWREYXRlOiBkYXRlLFxuICAgICAgb3JpZ2luYWxBbW91bnQ6IGFtb3VudCxcbiAgICAgIG9yaWdpbmFsQ3VycmVuY3k6IFNIRUtFTF9DVVJSRU5DWSxcbiAgICAgIGNoYXJnZWRBbW91bnQ6IGFtb3VudCxcbiAgICAgIGRlc2NyaXB0aW9uOiB0eG5bMV0sXG4gICAgICBzdGF0dXM6IFRyYW5zYWN0aW9uU3RhdHVzZXMuUGVuZGluZyxcbiAgICB9O1xuICB9KTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gcG9zdExvZ2luKHBhZ2U6IFBhZ2UpIHtcbiAgYXdhaXQgUHJvbWlzZS5yYWNlKFtcbiAgICB3YWl0VW50aWxFbGVtZW50Rm91bmQocGFnZSwgYWZ0ZXJMb2dpblNlbGVjdG9yKSxcbiAgICB3YWl0VW50aWxFbGVtZW50Rm91bmQocGFnZSwgaW52YWxpZFBhc3N3b3JkU2VsZWN0b3IpLFxuICAgIHdhaXRGb3JVcmwocGFnZSwgQ0hBTkdFX1BBU1NXT1JEX1VSTCksXG4gIF0pO1xufVxuXG5jbGFzcyBNaXpyYWhpU2NyYXBlciBleHRlbmRzIEJhc2VTY3JhcGVyV2l0aEJyb3dzZXIge1xuICBnZXRMb2dpbk9wdGlvbnMoY3JlZGVudGlhbHM6IFNjcmFwZXJDcmVkZW50aWFscykge1xuICAgIHJldHVybiB7XG4gICAgICBsb2dpblVybDogTE9HSU5fVVJMLFxuICAgICAgZmllbGRzOiBjcmVhdGVMb2dpbkZpZWxkcyhjcmVkZW50aWFscyksXG4gICAgICBzdWJtaXRCdXR0b25TZWxlY3RvcixcbiAgICAgIGNoZWNrUmVhZGluZXNzOiBhc3luYyAoKSA9PiB3YWl0VW50aWxFbGVtZW50RGlzYXBwZWFyKHRoaXMucGFnZSwgbG9naW5TcGlubmVyU2VsZWN0b3IpLFxuICAgICAgcG9zdEFjdGlvbjogYXN5bmMgKCkgPT4gcG9zdExvZ2luKHRoaXMucGFnZSksXG4gICAgICBwb3NzaWJsZVJlc3VsdHM6IGdldFBvc3NpYmxlTG9naW5SZXN1bHRzKHRoaXMucGFnZSksXG4gICAgfTtcbiAgfVxuXG4gIGFzeW5jIGZldGNoRGF0YSgpIHtcbiAgICBhd2FpdCB0aGlzLnBhZ2UuJGV2YWwoJyNkcm9wZG93bkJhc2ljLCAuaXRlbScsIChlbCkgPT4gKGVsIGFzIEhUTUxFbGVtZW50KS5jbGljaygpKTtcblxuICAgIGNvbnN0IG51bU9mQWNjb3VudHMgPSAoYXdhaXQgdGhpcy5wYWdlLiQkKGFjY291bnREcm9wRG93bkl0ZW1TZWxlY3RvcikpLmxlbmd0aDtcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXN1bHRzOiBUcmFuc2FjdGlvbnNBY2NvdW50W10gPSBbXTtcblxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBudW1PZkFjY291bnRzOyBpICs9IDEpIHtcbiAgICAgICAgaWYgKGkgPiAwKSB7XG4gICAgICAgICAgYXdhaXQgdGhpcy5wYWdlLiRldmFsKCcjZHJvcGRvd25CYXNpYywgLml0ZW0nLCAoZWwpID0+IChlbCBhcyBIVE1MRWxlbWVudCkuY2xpY2soKSk7XG4gICAgICAgIH1cblxuICAgICAgICBhd2FpdCB0aGlzLnBhZ2UuJGV2YWwoYCR7YWNjb3VudERyb3BEb3duSXRlbVNlbGVjdG9yfTpudGgtY2hpbGQoJHtpICsgMX0pYCwgKGVsKSA9PiAoZWwgYXMgSFRNTEVsZW1lbnQpLmNsaWNrKCkpO1xuICAgICAgICByZXN1bHRzLnB1c2goKGF3YWl0IHRoaXMuZmV0Y2hBY2NvdW50KCkpKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgc3VjY2VzczogdHJ1ZSxcbiAgICAgICAgYWNjb3VudHM6IHJlc3VsdHMsXG4gICAgICB9O1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHN1Y2Nlc3M6IGZhbHNlLFxuICAgICAgICBlcnJvclR5cGU6IFNjcmFwZXJFcnJvclR5cGVzLkdlbmVyaWMsXG4gICAgICAgIGVycm9yTWVzc2FnZTogZS5tZXNzYWdlLFxuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGZldGNoQWNjb3VudCgpIHtcbiAgICAvLyB3b3JrYXJvdW5kIGZvciBzaXR1YXRpb25zIHdoZXJlIE1penJhaGkgcG9wcyB1cCBwYWdlcyAoZS5nLiBlbWFpbCB1cGRhdGUgcGFnZSlcbiAgICBhd2FpdCB0aGlzLnBhZ2Uud2FpdEZvck5hdmlnYXRpb24oeyB3YWl0VW50aWw6ICduZXR3b3JraWRsZTInIH0pO1xuICAgIGF3YWl0IHRoaXMucGFnZS4kZXZhbChgYVtocmVmPVwiJHtPU0hfUEFHRX1cIl1gLCAoZWwpID0+IChlbCBhcyBIVE1MRWxlbWVudCkuY2xpY2soKSk7XG4gICAgYXdhaXQgd2FpdFVudGlsRWxlbWVudEZvdW5kKHRoaXMucGFnZSwgYGFbaHJlZj1cIiR7VFJBTlNBQ1RJT05TX1BBR0V9XCJdYCk7XG4gICAgYXdhaXQgdGhpcy5wYWdlLiRldmFsKGBhW2hyZWY9XCIke1RSQU5TQUNUSU9OU19QQUdFfVwiXWAsIChlbCkgPT4gKGVsIGFzIEhUTUxFbGVtZW50KS5jbGljaygpKTtcblxuICAgIGNvbnN0IHJlcXVlc3QgPSBhd2FpdCB0aGlzLnBhZ2Uud2FpdEZvclJlcXVlc3QoVFJBTlNBQ1RJT05TX1JFUVVFU1RfVVJMKTtcbiAgICBjb25zdCBkYXRhID0gY3JlYXRlRGF0YUZyb21SZXF1ZXN0KHJlcXVlc3QsIHRoaXMub3B0aW9ucy5zdGFydERhdGUpO1xuICAgIGNvbnN0IGhlYWRlcnMgPSBjcmVhdGVIZWFkZXJzRnJvbVJlcXVlc3QocmVxdWVzdCk7XG5cbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoUG9zdFdpdGhpblBhZ2U8U2NyYXBlZFRyYW5zYWN0aW9uc1Jlc3VsdD4odGhpcy5wYWdlLFxuICAgICAgVFJBTlNBQ1RJT05TX1JFUVVFU1RfVVJMLCBkYXRhLCBoZWFkZXJzKTtcblxuICAgIGlmICghcmVzcG9uc2UgfHwgcmVzcG9uc2UuaGVhZGVyLnN1Y2Nlc3MgPT09IGZhbHNlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEVycm9yIGZldGNoaW5nIHRyYW5zYWN0aW9uLiBSZXNwb25zZSBtZXNzYWdlOiAke3Jlc3BvbnNlID8gcmVzcG9uc2UuaGVhZGVyLm1lc3NhZ2VzWzBdLnRleHQgOiAnJ31gKTtcbiAgICB9XG5cbiAgICBjb25zdCByZWxldmFudFJvd3MgPSByZXNwb25zZS5ib2R5LnRhYmxlLnJvd3MuZmlsdGVyKChyb3cpID0+IHJvdy5SZWNUeXBlU3BlY2lmaWVkKTtcbiAgICBjb25zdCBvc2hUeG4gPSBjb252ZXJ0VHJhbnNhY3Rpb25zKHJlbGV2YW50Um93cyk7XG5cbiAgICAvLyB3b3JrYXJvdW5kIGZvciBhIGJ1ZyB3aGljaCB0aGUgYmFuaydzIEFQSSByZXR1cm5zIHRyYW5zYWN0aW9ucyBiZWZvcmUgdGhlIHJlcXVlc3RlZCBzdGFydCBkYXRlXG4gICAgY29uc3Qgc3RhcnRNb21lbnQgPSBnZXRTdGFydE1vbWVudCh0aGlzLm9wdGlvbnMuc3RhcnREYXRlKTtcbiAgICBjb25zdCBvc2hUeG5BZnRlclN0YXJ0RGF0ZSA9IG9zaFR4bi5maWx0ZXIoKHR4bikgPT4gbW9tZW50KHR4bi5kYXRlKS5pc1NhbWVPckFmdGVyKHN0YXJ0TW9tZW50KSk7XG5cbiAgICBhd2FpdCB0aGlzLnBhZ2UuJGV2YWwoYGFbaHJlZj1cIiR7UEVORElOR19UUkFOU0FDVElPTlNfUEFHRX1cIl1gLCAoZWwpID0+IChlbCBhcyBIVE1MRWxlbWVudCkuY2xpY2soKSk7XG4gICAgY29uc3QgZnJhbWUgPSBhd2FpdCB3YWl0VW50aWxJZnJhbWVGb3VuZCh0aGlzLnBhZ2UsIChmKSA9PiBmLnVybCgpLmluY2x1ZGVzKFBFTkRJTkdfVFJBTlNBQ1RJT05TX0lGUkFNRSkpO1xuICAgIGF3YWl0IHdhaXRVbnRpbEVsZW1lbnRGb3VuZChmcmFtZSwgcGVuZGluZ1RyeElkZW50aWZpZXJJZCk7XG4gICAgY29uc3QgcGVuZGluZ1R4biA9IGF3YWl0IGV4dHJhY3RQZW5kaW5nVHJhbnNhY3Rpb25zKGZyYW1lKTtcblxuICAgIGNvbnN0IGFsbFR4biA9IG9zaFR4bkFmdGVyU3RhcnREYXRlLmNvbmNhdChwZW5kaW5nVHhuKTtcblxuICAgIHJldHVybiB7XG4gICAgICBhY2NvdW50TnVtYmVyOiByZXNwb25zZS5ib2R5LmZpZWxkcy5BY2NvdW50TnVtYmVyLFxuICAgICAgdHhuczogYWxsVHhuLFxuICAgICAgYmFsYW5jZTogK3Jlc3BvbnNlLmJvZHkuZmllbGRzLllpdHJhTGVsb0NoZWtpbSxcbiAgICB9O1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IE1penJhaGlTY3JhcGVyO1xuIl19
|
|
214
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JhcGVycy9taXpyYWhpLnRzIl0sIm5hbWVzIjpbIkJBU0VfV0VCU0lURV9VUkwiLCJMT0dJTl9VUkwiLCJCQVNFX0FQUF9VUkwiLCJBRlRFUl9MT0dJTl9CQVNFX1VSTCIsIk9TSF9QQUdFIiwiVFJBTlNBQ1RJT05TX1BBR0UiLCJUUkFOU0FDVElPTlNfUkVRVUVTVF9VUkwiLCJQRU5ESU5HX1RSQU5TQUNUSU9OU19QQUdFIiwiUEVORElOR19UUkFOU0FDVElPTlNfSUZSQU1FIiwiQ0hBTkdFX1BBU1NXT1JEX1VSTCIsIkRBVEVfRk9STUFUIiwiTUFYX1JPV1NfUEVSX1JFUVVFU1QiLCJ1c2VybmFtZVNlbGVjdG9yIiwicGFzc3dvcmRTZWxlY3RvciIsInN1Ym1pdEJ1dHRvblNlbGVjdG9yIiwiaW52YWxpZFBhc3N3b3JkU2VsZWN0b3IiLCJhZnRlckxvZ2luU2VsZWN0b3IiLCJsb2dpblNwaW5uZXJTZWxlY3RvciIsImFjY291bnREcm9wRG93bkl0ZW1TZWxlY3RvciIsInBlbmRpbmdUcnhJZGVudGlmaWVySWQiLCJjaGVja2luZ0FjY291bnRUYWJIZWJyZXdOYW1lIiwiY2hlY2tpbmdBY2NvdW50VGFiRW5nbGlzaE5hbWUiLCJjcmVhdGVMb2dpbkZpZWxkcyIsImNyZWRlbnRpYWxzIiwic2VsZWN0b3IiLCJ2YWx1ZSIsInVzZXJuYW1lIiwicGFzc3dvcmQiLCJnZXRQb3NzaWJsZUxvZ2luUmVzdWx0cyIsInBhZ2UiLCJMb2dpblJlc3VsdHMiLCJTdWNjZXNzIiwiJHgiLCJJbnZhbGlkUGFzc3dvcmQiLCIkIiwiQ2hhbmdlUGFzc3dvcmQiLCJnZXRTdGFydE1vbWVudCIsIm9wdGlvbnNTdGFydERhdGUiLCJkZWZhdWx0U3RhcnRNb21lbnQiLCJzdWJ0cmFjdCIsInN0YXJ0RGF0ZSIsInRvRGF0ZSIsIm1vbWVudCIsIm1heCIsImNyZWF0ZURhdGFGcm9tUmVxdWVzdCIsInJlcXVlc3QiLCJkYXRhIiwiSlNPTiIsInBhcnNlIiwicG9zdERhdGEiLCJpbkZyb21EYXRlIiwiZm9ybWF0IiwiaW5Ub0RhdGUiLCJ0YWJsZSIsIm1heFJvdyIsImNyZWF0ZUhlYWRlcnNGcm9tUmVxdWVzdCIsIm1penJhaGl4c3JmdG9rZW4iLCJoZWFkZXJzIiwiY29udmVydFRyYW5zYWN0aW9ucyIsInR4bnMiLCJtYXAiLCJyb3ciLCJ0eG5EYXRlIiwiTUMwMlBldWxhVGFhRVoiLCJIVE1MNV9GTVQiLCJEQVRFVElNRV9MT0NBTF9TRUNPTkRTIiwidG9JU09TdHJpbmciLCJ0eXBlIiwiVHJhbnNhY3Rpb25UeXBlcyIsIk5vcm1hbCIsImlkZW50aWZpZXIiLCJNQzAyQXNtYWh0YU1la29yaXRFWiIsInBhcnNlSW50IiwidW5kZWZpbmVkIiwiZGF0ZSIsInByb2Nlc3NlZERhdGUiLCJvcmlnaW5hbEFtb3VudCIsIk1DMDJTY2h1bUVaIiwib3JpZ2luYWxDdXJyZW5jeSIsIlNIRUtFTF9DVVJSRU5DWSIsImNoYXJnZWRBbW91bnQiLCJkZXNjcmlwdGlvbiIsIk1DMDJUbnVhVGV1ckVaIiwic3RhdHVzIiwiVHJhbnNhY3Rpb25TdGF0dXNlcyIsIkNvbXBsZXRlZCIsImV4dHJhY3RQZW5kaW5nVHJhbnNhY3Rpb25zIiwicGVuZGluZ1R4biIsInRycyIsInRyIiwiQXJyYXkiLCJmcm9tIiwicXVlcnlTZWxlY3RvckFsbCIsInRkIiwidGV4dENvbnRlbnQiLCJ0eG4iLCJhbW91bnQiLCJQZW5kaW5nIiwicG9zdExvZ2luIiwiUHJvbWlzZSIsInJhY2UiLCJNaXpyYWhpU2NyYXBlciIsIkJhc2VTY3JhcGVyV2l0aEJyb3dzZXIiLCJnZXRMb2dpbk9wdGlvbnMiLCJsb2dpblVybCIsImZpZWxkcyIsImNoZWNrUmVhZGluZXNzIiwicG9zdEFjdGlvbiIsInBvc3NpYmxlUmVzdWx0cyIsImZldGNoRGF0YSIsIiRldmFsIiwiZWwiLCJjbGljayIsIm51bU9mQWNjb3VudHMiLCIkJCIsImxlbmd0aCIsInJlc3VsdHMiLCJpIiwicHVzaCIsImZldGNoQWNjb3VudCIsInN1Y2Nlc3MiLCJhY2NvdW50cyIsImUiLCJlcnJvclR5cGUiLCJTY3JhcGVyRXJyb3JUeXBlcyIsIkdlbmVyaWMiLCJlcnJvck1lc3NhZ2UiLCJtZXNzYWdlIiwiU0VDT05EIiwid2FpdEZvck5hdmlnYXRpb24iLCJ3YWl0VW50aWwiLCJ3YWl0Rm9yUmVxdWVzdCIsIm9wdGlvbnMiLCJyZXNwb25zZSIsImhlYWRlciIsIkVycm9yIiwibWVzc2FnZXMiLCJ0ZXh0IiwicmVsZXZhbnRSb3dzIiwiYm9keSIsInJvd3MiLCJmaWx0ZXIiLCJSZWNUeXBlU3BlY2lmaWVkIiwib3NoVHhuIiwic3RhcnRNb21lbnQiLCJvc2hUeG5BZnRlclN0YXJ0RGF0ZSIsImlzU2FtZU9yQWZ0ZXIiLCJmcmFtZSIsImYiLCJ1cmwiLCJpbmNsdWRlcyIsImFsbFR4biIsImNvbmNhdCIsImFjY291bnROdW1iZXIiLCJBY2NvdW50TnVtYmVyIiwiYmFsYW5jZSIsIllpdHJhTGVsb0NoZWtpbSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTs7QUFFQTs7QUFDQTs7QUFHQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFHQTs7QUFDQTs7OztBQTBCQSxNQUFNQSxnQkFBZ0IsR0FBRyxtQ0FBekI7QUFDQSxNQUFNQyxTQUFTLEdBQUksR0FBRUQsZ0JBQWlCLGlDQUF0QztBQUNBLE1BQU1FLFlBQVksR0FBRyxtQ0FBckI7QUFDQSxNQUFNQyxvQkFBb0IsR0FBRyx1REFBN0I7QUFDQSxNQUFNQyxRQUFRLEdBQUcsdUNBQWpCO0FBQ0EsTUFBTUMsaUJBQWlCLEdBQUcsNkNBQTFCO0FBQ0EsTUFBTUMsd0JBQXdCLEdBQUksR0FBRUosWUFBYSxnQ0FBakQ7QUFDQSxNQUFNSyx5QkFBeUIsR0FBRyx1Q0FBbEM7QUFDQSxNQUFNQywyQkFBMkIsR0FBRyxXQUFwQztBQUNBLE1BQU1DLG1CQUFtQixHQUFHLCtFQUE1QjtBQUNBLE1BQU1DLFdBQVcsR0FBRyxZQUFwQjtBQUNBLE1BQU1DLG9CQUFvQixHQUFHLFdBQTdCO0FBRUEsTUFBTUMsZ0JBQWdCLEdB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L0VpRDs7ZUFrRnJDdkQsYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JztcbmltcG9ydCB7IEZyYW1lLCBQYWdlLCBSZXF1ZXN0IH0gZnJvbSAncHVwcGV0ZWVyJztcbmltcG9ydCB7IFNIRUtFTF9DVVJSRU5DWSB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQge1xuICBwYWdlRXZhbEFsbCwgd2FpdFVudGlsRWxlbWVudERpc2FwcGVhciwgd2FpdFVudGlsRWxlbWVudEZvdW5kLCB3YWl0VW50aWxJZnJhbWVGb3VuZCxcbn0gZnJvbSAnLi4vaGVscGVycy9lbGVtZW50cy1pbnRlcmFjdGlvbnMnO1xuaW1wb3J0IHsgZmV0Y2hQb3N0V2l0aGluUGFnZSB9IGZyb20gJy4uL2hlbHBlcnMvZmV0Y2gnO1xuaW1wb3J0IHsgd2FpdEZvclVybCB9IGZyb20gJy4uL2hlbHBlcnMvbmF2aWdhdGlvbic7XG5pbXBvcnQgeyByYWNlVGltZW91dCwgU0VDT05EIH0gZnJvbSAnLi4vaGVscGVycy93YWl0aW5nJztcbmltcG9ydCB7XG4gIFRyYW5zYWN0aW9uLCBUcmFuc2FjdGlvbnNBY2NvdW50LCBUcmFuc2FjdGlvblN0YXR1c2VzLCBUcmFuc2FjdGlvblR5cGVzLFxufSBmcm9tICcuLi90cmFuc2FjdGlvbnMnO1xuaW1wb3J0IHsgU2NyYXBlckNyZWRlbnRpYWxzLCBTY3JhcGVyRXJyb3JUeXBlcyB9IGZyb20gJy4vYmFzZS1zY3JhcGVyJztcbmltcG9ydCB7IEJhc2VTY3JhcGVyV2l0aEJyb3dzZXIsIExvZ2luUmVzdWx0cywgUG9zc2libGVMb2dpblJlc3VsdHMgfSBmcm9tICcuL2Jhc2Utc2NyYXBlci13aXRoLWJyb3dzZXInO1xuXG5pbnRlcmZhY2UgU2NyYXBlZFRyYW5zYWN0aW9uIHtcbiAgUmVjVHlwZVNwZWNpZmllZDogYm9vbGVhbjtcbiAgTUMwMlBldWxhVGFhRVo6IHN0cmluZztcbiAgTUMwMlNjaHVtRVo6IG51bWJlcjtcbiAgTUMwMkFzbWFodGFNZWtvcml0RVo6IHN0cmluZztcbiAgTUMwMlRudWFUZXVyRVo6IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIFNjcmFwZWRUcmFuc2FjdGlvbnNSZXN1bHQge1xuICBoZWFkZXI6IHtcbiAgICBzdWNjZXNzOiBib29sZWFuO1xuICAgIG1lc3NhZ2VzOiB7IHRleHQ6IHN0cmluZyB9W107XG4gIH07XG4gIGJvZHk6IHtcbiAgICBmaWVsZHM6IHtcbiAgICAgIEFjY291bnROdW1iZXI6IHN0cmluZztcbiAgICAgIFlpdHJhTGVsb0NoZWtpbTogc3RyaW5nO1xuICAgIH07XG4gICAgdGFibGU6IHtcbiAgICAgIHJvd3M6IFNjcmFwZWRUcmFuc2FjdGlvbltdO1xuICAgIH07XG4gIH07XG59XG5cbmNvbnN0IEJBU0VfV0VCU0lURV9VUkwgPSAnaHR0cHM6Ly93d3cubWl6cmFoaS10ZWZhaG90LmNvLmlsJztcbmNvbnN0IExPR0lOX1VSTCA9IGAke0JBU0VfV0VCU0lURV9VUkx9L2xvZ2luL2luZGV4Lmh0bWwjL2F1dGgtcGFnZS1oZWA7XG5jb25zdCBCQVNFX0FQUF9VUkwgPSAnaHR0cHM6Ly9tdG8ubWl6cmFoaS10ZWZhaG90LmNvLmlsJztcbmNvbnN0IEFGVEVSX0xPR0lOX0JBU0VfVVJMID0gL2h0dHBzOlxcL1xcL210b1xcLm1penJhaGktdGVmYWhvdFxcLmNvXFwuaWxcXC9PbmxpbmVBcHBcXC8uKi87XG5jb25zdCBPU0hfUEFHRSA9ICcvT25saW5lQXBwL29zaC9sZWdhY3kvbGVnYWN5LU9zaC1NYWluJztcbmNvbnN0IFRSQU5TQUNUSU9OU19QQUdFID0gJy9PbmxpbmVBcHAvb3NoL2xlZ2FjeS9yb290LW1haW4tb3NoLXA0MjhOZXcnO1xuY29uc3QgVFJBTlNBQ1RJT05TX1JFUVVFU1RfVVJMID0gYCR7QkFTRV9BUFBfVVJMfS9PbmxpbmUvYXBpL1NreU9TSC9nZXQ0MjhJbmRleGA7XG5jb25zdCBQRU5ESU5HX1RSQU5TQUNUSU9OU19QQUdFID0gJy9PbmxpbmVBcHAvb3NoL2xlZ2FjeS9sZWdhY3ktT3NoLXA0MjAnO1xuY29uc3QgUEVORElOR19UUkFOU0FDVElPTlNfSUZSQU1FID0gJ3A0MjAuYXNweCc7XG5jb25zdCBDSEFOR0VfUEFTU1dPUkRfVVJMID0gL2h0dHBzOlxcL1xcL3d3d1xcLm1penJhaGktdGVmYWhvdFxcLmNvXFwuaWxcXC9sb2dpblxcL1xcdytcXC9pbmRleFxcLmh0bWwjXFwvY2hhbmdlLXBhc3MvO1xuY29uc3QgREFURV9GT1JNQVQgPSAnREQvTU0vWVlZWSc7XG5jb25zdCBNQVhfUk9XU19QRVJfUkVRVUVTVCA9IDEwMDAwMDAwMDAwO1xuXG5jb25zdCB1c2VybmFtZVNlbGVjdG9yID0gJyNlbWFpbERlc2t0b3BIZWInO1xuY29uc3QgcGFzc3dvcmRTZWxlY3RvciA9ICcjcGFzc3dvcmRJRERlc2t0b3BIRUInO1xuY29uc3Qgc3VibWl0QnV0dG9uU2VsZWN0b3IgPSAnLmZvcm0tZGVza3RvcCBidXR0b24nO1xuY29uc3QgaW52YWxpZFBhc3N3b3JkU2VsZWN0b3IgPSAnYVtocmVmKj1cImh0dHBzOi8vc2MubWl6cmFoaS10ZWZhaG90LmNvLmlsL1NDU2VydmljZXMvU0MvUDAxMC5hc3B4XCJdJztcbmNvbnN0IGFmdGVyTG9naW5TZWxlY3RvciA9ICcjZHJvcGRvd25CYXNpYyc7XG5jb25zdCBsb2dpblNwaW5uZXJTZWxlY3RvciA9ICdkaXYubmd4LW92ZXJsYXkubG9hZGluZy1mb3JlZ3JvdW5kJztcbmNvbnN0IGFjY291bnREcm9wRG93bkl0ZW1TZWxlY3RvciA9ICcjQWNjb3VudFBpY2tlciAuaXRlbSc7XG5jb25zdCBwZW5kaW5nVHJ4SWRlbnRpZmllcklkID0gJyNjdGwwMF9Db250ZW50UGxhY2VIb2xkZXIyX3BhbmVsMSc7XG5jb25zdCBjaGVja2luZ0FjY291bnRUYWJIZWJyZXdOYW1lID0gJ9ei15XXkdeoINeV16nXkSc7XG5jb25zdCBjaGVja2luZ0FjY291bnRUYWJFbmdsaXNoTmFtZSA9ICdDaGVja2luZyBBY2NvdW50JztcblxuXG5mdW5jdGlvbiBjcmVhdGVMb2dpbkZpZWxkcyhjcmVkZW50aWFsczogU2NyYXBlckNyZWRlbnRpYWxzKSB7XG4gIHJldHVybiBbXG4gICAgeyBzZWxlY3RvcjogdXNlcm5hbWVTZWxlY3RvciwgdmFsdWU6IGNyZWRlbnRpYWxzLnVzZXJuYW1lIH0sXG4gICAgeyBzZWxlY3RvcjogcGFzc3dvcmRTZWxlY3RvciwgdmFsdWU6IGNyZWRlbnRpYWxzLnBhc3N3b3JkIH0sXG4gIF07XG59XG5cbmZ1bmN0aW9uIGdldFBvc3NpYmxlTG9naW5SZXN1bHRzKHBhZ2U6IFBhZ2UpOiBQb3NzaWJsZUxvZ2luUmVzdWx0cyB7XG4gIHJldHVybiB7XG4gICAgW0xvZ2luUmVzdWx0cy5TdWNjZXNzXTogW0FGVEVSX0xPR0lOX0JBU0VfVVJMLCBhc3luYyAoKSA9PiAhIShhd2FpdCBwYWdlLiR4KGAvL2EvL3NwYW5bY29udGFpbnMoLiwgXCIke2NoZWNraW5nQWNjb3VudFRhYkhlYnJld05hbWV9XCIpIG9yIGNvbnRhaW5zKC4sIFwiJHtjaGVja2luZ0FjY291bnRUYWJFbmdsaXNoTmFtZX1cIildYCkpXSxcbiAgICBbTG9naW5SZXN1bHRzLkludmFsaWRQYXNzd29yZF06IFthc3luYyAoKSA9PiAhIShhd2FpdCBwYWdlLiQoaW52YWxpZFBhc3N3b3JkU2VsZWN0b3IpKV0sXG4gICAgW0xvZ2luUmVzdWx0cy5DaGFuZ2VQYXNzd29yZF06IFtDSEFOR0VfUEFTU1dPUkRfVVJMXSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gZ2V0U3RhcnRNb21lbnQob3B0aW9uc1N0YXJ0RGF0ZTogRGF0ZSkge1xuICBjb25zdCBkZWZhdWx0U3RhcnRNb21lbnQgPSBtb21lbnQoKS5zdWJ0cmFjdCgxLCAneWVhcnMnKTtcbiAgY29uc3Qgc3RhcnREYXRlID0gb3B0aW9uc1N0YXJ0RGF0ZSB8fCBkZWZhdWx0U3RhcnRNb21lbnQudG9EYXRlKCk7XG4gIHJldHVybiBtb21lbnQubWF4KGRlZmF1bHRTdGFydE1vbWVudCwgbW9tZW50KHN0YXJ0RGF0ZSkpO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVEYXRhRnJvbVJlcXVlc3QocmVxdWVzdDogUmVxdWVzdCwgb3B0aW9uc1N0YXJ0RGF0ZTogRGF0ZSkge1xuICBjb25zdCBkYXRhID0gSlNPTi5wYXJzZShyZXF1ZXN0LnBvc3REYXRhKCkgfHwgJ3t9Jyk7XG5cbiAgZGF0YS5pbkZyb21EYXRlID0gZ2V0U3RhcnRNb21lbnQob3B0aW9uc1N0YXJ0RGF0ZSkuZm9ybWF0KERBVEVfRk9STUFUKTtcbiAgZGF0YS5pblRvRGF0ZSA9IG1vbWVudCgpLmZvcm1hdChEQVRFX0ZPUk1BVCk7XG4gIGRhdGEudGFibGUubWF4Um93ID0gTUFYX1JPV1NfUEVSX1JFUVVFU1Q7XG5cbiAgcmV0dXJuIGRhdGE7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUhlYWRlcnNGcm9tUmVxdWVzdChyZXF1ZXN0OiBSZXF1ZXN0KSB7XG4gIHJldHVybiB7XG4gICAgbWl6cmFoaXhzcmZ0b2tlbjogcmVxdWVzdC5oZWFkZXJzKCkubWl6cmFoaXhzcmZ0b2tlbixcbiAgICAnQ29udGVudC1UeXBlJzogcmVxdWVzdC5oZWFkZXJzKClbJ2NvbnRlbnQtdHlwZSddLFxuICB9O1xufVxuXG5cbmZ1bmN0aW9uIGNvbnZlcnRUcmFuc2FjdGlvbnModHhuczogU2NyYXBlZFRyYW5zYWN0aW9uW10pOiBUcmFuc2FjdGlvbltdIHtcbiAgcmV0dXJuIHR4bnMubWFwKChyb3cpID0+IHtcbiAgICBjb25zdCB0eG5EYXRlID0gbW9tZW50KHJvdy5NQzAyUGV1bGFUYWFFWiwgbW9tZW50LkhUTUw1X0ZNVC5EQVRFVElNRV9MT0NBTF9TRUNPTkRTKVxuICAgICAgLnRvSVNPU3RyaW5nKCk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogVHJhbnNhY3Rpb25UeXBlcy5Ob3JtYWwsXG4gICAgICBpZGVudGlmaWVyOiByb3cuTUMwMkFzbWFodGFNZWtvcml0RVogPyBwYXJzZUludChyb3cuTUMwMkFzbWFodGFNZWtvcml0RVosIDEwKSA6IHVuZGVmaW5lZCxcbiAgICAgIGRhdGU6IHR4bkRhdGUsXG4gICAgICBwcm9jZXNzZWREYXRlOiB0eG5EYXRlLFxuICAgICAgb3JpZ2luYWxBbW91bnQ6IHJvdy5NQzAyU2NodW1FWixcbiAgICAgIG9yaWdpbmFsQ3VycmVuY3k6IFNIRUtFTF9DVVJSRU5DWSxcbiAgICAgIGNoYXJnZWRBbW91bnQ6IHJvdy5NQzAyU2NodW1FWixcbiAgICAgIGRlc2NyaXB0aW9uOiByb3cuTUMwMlRudWFUZXVyRVosXG4gICAgICBzdGF0dXM6IFRyYW5zYWN0aW9uU3RhdHVzZXMuQ29tcGxldGVkLFxuICAgIH07XG4gIH0pO1xufVxuXG5hc3luYyBmdW5jdGlvbiBleHRyYWN0UGVuZGluZ1RyYW5zYWN0aW9ucyhwYWdlOiBGcmFtZSk6IFByb21pc2U8VHJhbnNhY3Rpb25bXT4ge1xuICBjb25zdCBwZW5kaW5nVHhuID0gYXdhaXQgcGFnZUV2YWxBbGwocGFnZSwgJ3RyLnJnUm93JywgW10sICh0cnMpID0+IHtcbiAgICByZXR1cm4gdHJzLm1hcCgodHIpID0+IEFycmF5LmZyb20odHIucXVlcnlTZWxlY3RvckFsbCgndGQnKSwgKHRkOiBIVE1MVGFibGVEYXRhQ2VsbEVsZW1lbnQpID0+IHRkLnRleHRDb250ZW50IHx8ICcnKSk7XG4gIH0pO1xuXG4gIHJldHVybiBwZW5kaW5nVHhuLm1hcCgodHhuKSA9PiB7XG4gICAgY29uc3QgZGF0ZSA9IG1vbWVudCh0eG5bMF0sICdERC9NTS9ZWScpLnRvSVNPU3RyaW5nKCk7XG4gICAgY29uc3QgYW1vdW50ID0gcGFyc2VJbnQodHhuWzNdLCAxMCk7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6IFRyYW5zYWN0aW9uVHlwZXMuTm9ybWFsLFxuICAgICAgZGF0ZSxcbiAgICAgIHByb2Nlc3NlZERhdGU6IGRhdGUsXG4gICAgICBvcmlnaW5hbEFtb3VudDogYW1vdW50LFxuICAgICAgb3JpZ2luYWxDdXJyZW5jeTogU0hFS0VMX0NVUlJFTkNZLFxuICAgICAgY2hhcmdlZEFtb3VudDogYW1vdW50LFxuICAgICAgZGVzY3JpcHRpb246IHR4blsxXSxcbiAgICAgIHN0YXR1czogVHJhbnNhY3Rpb25TdGF0dXNlcy5QZW5kaW5nLFxuICAgIH07XG4gIH0pO1xufVxuXG5hc3luYyBmdW5jdGlvbiBwb3N0TG9naW4ocGFnZTogUGFnZSkge1xuICBhd2FpdCBQcm9taXNlLnJhY2UoW1xuICAgIHdhaXRVbnRpbEVsZW1lbnRGb3VuZChwYWdlLCBhZnRlckxvZ2luU2VsZWN0b3IpLFxuICAgIHdhaXRVbnRpbEVsZW1lbnRGb3VuZChwYWdlLCBpbnZhbGlkUGFzc3dvcmRTZWxlY3RvciksXG4gICAgd2FpdEZvclVybChwYWdlLCBDSEFOR0VfUEFTU1dPUkRfVVJMKSxcbiAgXSk7XG59XG5cbmNsYXNzIE1penJhaGlTY3JhcGVyIGV4dGVuZHMgQmFzZVNjcmFwZXJXaXRoQnJvd3NlciB7XG4gIGdldExvZ2luT3B0aW9ucyhjcmVkZW50aWFsczogU2NyYXBlckNyZWRlbnRpYWxzKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGxvZ2luVXJsOiBMT0dJTl9VUkwsXG4gICAgICBmaWVsZHM6IGNyZWF0ZUxvZ2luRmllbGRzKGNyZWRlbnRpYWxzKSxcbiAgICAgIHN1Ym1pdEJ1dHRvblNlbGVjdG9yLFxuICAgICAgY2hlY2tSZWFkaW5lc3M6IGFzeW5jICgpID0+IHdhaXRVbnRpbEVsZW1lbnREaXNhcHBlYXIodGhpcy5wYWdlLCBsb2dpblNwaW5uZXJTZWxlY3RvciksXG4gICAgICBwb3N0QWN0aW9uOiBhc3luYyAoKSA9PiBwb3N0TG9naW4odGhpcy5wYWdlKSxcbiAgICAgIHBvc3NpYmxlUmVzdWx0czogZ2V0UG9zc2libGVMb2dpblJlc3VsdHModGhpcy5wYWdlKSxcbiAgICB9O1xuICB9XG5cbiAgYXN5bmMgZmV0Y2hEYXRhKCkge1xuICAgIGF3YWl0IHRoaXMucGFnZS4kZXZhbCgnI2Ryb3Bkb3duQmFzaWMsIC5pdGVtJywgKGVsKSA9PiAoZWwgYXMgSFRNTEVsZW1lbnQpLmNsaWNrKCkpO1xuXG4gICAgY29uc3QgbnVtT2ZBY2NvdW50cyA9IChhd2FpdCB0aGlzLnBhZ2UuJCQoYWNjb3VudERyb3BEb3duSXRlbVNlbGVjdG9yKSkubGVuZ3RoO1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlc3VsdHM6IFRyYW5zYWN0aW9uc0FjY291bnRbXSA9IFtdO1xuXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG51bU9mQWNjb3VudHM7IGkgKz0gMSkge1xuICAgICAgICBpZiAoaSA+IDApIHtcbiAgICAgICAgICBhd2FpdCB0aGlzLnBhZ2UuJGV2YWwoJyNkcm9wZG93bkJhc2ljLCAuaXRlbScsIChlbCkgPT4gKGVsIGFzIEhUTUxFbGVtZW50KS5jbGljaygpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGF3YWl0IHRoaXMucGFnZS4kZXZhbChgJHthY2NvdW50RHJvcERvd25JdGVtU2VsZWN0b3J9Om50aC1jaGlsZCgke2kgKyAxfSlgLCAoZWwpID0+IChlbCBhcyBIVE1MRWxlbWVudCkuY2xpY2soKSk7XG4gICAgICAgIHJlc3VsdHMucHVzaCgoYXdhaXQgdGhpcy5mZXRjaEFjY291bnQoKSkpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBzdWNjZXNzOiB0cnVlLFxuICAgICAgICBhY2NvdW50czogcmVzdWx0cyxcbiAgICAgIH07XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgc3VjY2VzczogZmFsc2UsXG4gICAgICAgIGVycm9yVHlwZTogU2NyYXBlckVycm9yVHlwZXMuR2VuZXJpYyxcbiAgICAgICAgZXJyb3JNZXNzYWdlOiBlLm1lc3NhZ2UsXG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZmV0Y2hBY2NvdW50KCkge1xuICAgIC8vIHdvcmthcm91bmQgZm9yIHNpdHVhdGlvbnMgd2hlcmUgTWl6cmFoaSBwb3BzIHVwIHBhZ2VzIChlLmcuIGVtYWlsIHVwZGF0ZSBwYWdlKVxuICAgIGF3YWl0IHJhY2VUaW1lb3V0KDMwICogU0VDT05ELCB0aGlzLnBhZ2Uud2FpdEZvck5hdmlnYXRpb24oeyB3YWl0VW50aWw6ICduZXR3b3JraWRsZTInIH0pKTtcbiAgICBhd2FpdCB0aGlzLnBhZ2UuJGV2YWwoYGFbaHJlZj1cIiR7T1NIX1BBR0V9XCJdYCwgKGVsKSA9PiAoZWwgYXMgSFRNTEVsZW1lbnQpLmNsaWNrKCkpO1xuICAgIGF3YWl0IHdhaXRVbnRpbEVsZW1lbnRGb3VuZCh0aGlzLnBhZ2UsIGBhW2hyZWY9XCIke1RSQU5TQUNUSU9OU19QQUdFfVwiXWApO1xuICAgIGF3YWl0IHRoaXMucGFnZS4kZXZhbChgYVtocmVmPVwiJHtUUkFOU0FDVElPTlNfUEFHRX1cIl1gLCAoZWwpID0+IChlbCBhcyBIVE1MRWxlbWVudCkuY2xpY2soKSk7XG5cbiAgICBjb25zdCByZXF1ZXN0ID0gYXdhaXQgdGhpcy5wYWdlLndhaXRGb3JSZXF1ZXN0KFRSQU5TQUNUSU9OU19SRVFVRVNUX1VSTCk7XG4gICAgY29uc3QgZGF0YSA9IGNyZWF0ZURhdGFGcm9tUmVxdWVzdChyZXF1ZXN0LCB0aGlzLm9wdGlvbnMuc3RhcnREYXRlKTtcbiAgICBjb25zdCBoZWFkZXJzID0gY3JlYXRlSGVhZGVyc0Zyb21SZXF1ZXN0KHJlcXVlc3QpO1xuXG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaFBvc3RXaXRoaW5QYWdlPFNjcmFwZWRUcmFuc2FjdGlvbnNSZXN1bHQ+KHRoaXMucGFnZSxcbiAgICAgIFRSQU5TQUNUSU9OU19SRVFVRVNUX1VSTCwgZGF0YSwgaGVhZGVycyk7XG5cbiAgICBpZiAoIXJlc3BvbnNlIHx8IHJlc3BvbnNlLmhlYWRlci5zdWNjZXNzID09PSBmYWxzZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBFcnJvciBmZXRjaGluZyB0cmFuc2FjdGlvbi4gUmVzcG9uc2UgbWVzc2FnZTogJHtyZXNwb25zZSA/IHJlc3BvbnNlLmhlYWRlci5tZXNzYWdlc1swXS50ZXh0IDogJyd9YCk7XG4gICAgfVxuXG4gICAgY29uc3QgcmVsZXZhbnRSb3dzID0gcmVzcG9uc2UuYm9keS50YWJsZS5yb3dzLmZpbHRlcigocm93KSA9PiByb3cuUmVjVHlwZVNwZWNpZmllZCk7XG4gICAgY29uc3Qgb3NoVHhuID0gY29udmVydFRyYW5zYWN0aW9ucyhyZWxldmFudFJvd3MpO1xuXG4gICAgLy8gd29ya2Fyb3VuZCBmb3IgYSBidWcgd2hpY2ggdGhlIGJhbmsncyBBUEkgcmV0dXJucyB0cmFuc2FjdGlvbnMgYmVmb3JlIHRoZSByZXF1ZXN0ZWQgc3RhcnQgZGF0ZVxuICAgIGNvbnN0IHN0YXJ0TW9tZW50ID0gZ2V0U3RhcnRNb21lbnQodGhpcy5vcHRpb25zLnN0YXJ0RGF0ZSk7XG4gICAgY29uc3Qgb3NoVHhuQWZ0ZXJTdGFydERhdGUgPSBvc2hUeG4uZmlsdGVyKCh0eG4pID0+IG1vbWVudCh0eG4uZGF0ZSkuaXNTYW1lT3JBZnRlcihzdGFydE1vbWVudCkpO1xuXG4gICAgYXdhaXQgdGhpcy5wYWdlLiRldmFsKGBhW2hyZWY9XCIke1BFTkRJTkdfVFJBTlNBQ1RJT05TX1BBR0V9XCJdYCwgKGVsKSA9PiAoZWwgYXMgSFRNTEVsZW1lbnQpLmNsaWNrKCkpO1xuICAgIGNvbnN0IGZyYW1lID0gYXdhaXQgd2FpdFVudGlsSWZyYW1lRm91bmQodGhpcy5wYWdlLCAoZikgPT4gZi51cmwoKS5pbmNsdWRlcyhQRU5ESU5HX1RSQU5TQUNUSU9OU19JRlJBTUUpKTtcbiAgICBhd2FpdCB3YWl0VW50aWxFbGVtZW50Rm91bmQoZnJhbWUsIHBlbmRpbmdUcnhJZGVudGlmaWVySWQpO1xuICAgIGNvbnN0IHBlbmRpbmdUeG4gPSBhd2FpdCBleHRyYWN0UGVuZGluZ1RyYW5zYWN0aW9ucyhmcmFtZSk7XG5cbiAgICBjb25zdCBhbGxUeG4gPSBvc2hUeG5BZnRlclN0YXJ0RGF0ZS5jb25jYXQocGVuZGluZ1R4bik7XG5cbiAgICByZXR1cm4ge1xuICAgICAgYWNjb3VudE51bWJlcjogcmVzcG9uc2UuYm9keS5maWVsZHMuQWNjb3VudE51bWJlcixcbiAgICAgIHR4bnM6IGFsbFR4bixcbiAgICAgIGJhbGFuY2U6ICtyZXNwb25zZS5ib2R5LmZpZWxkcy5ZaXRyYUxlbG9DaGVraW0sXG4gICAgfTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBNaXpyYWhpU2NyYXBlcjtcbiJdfQ==
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "israeli-bank-scrapers",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "2.1.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "Provide scrapers for all major Israeli banks and credit card companies",
|
|
6
6
|
"engines": {
|
|
@@ -86,6 +86,7 @@
|
|
|
86
86
|
"json2csv": "^4.5.4",
|
|
87
87
|
"lodash": "^4.17.10",
|
|
88
88
|
"moment": "^2.22.2",
|
|
89
|
+
"moment-timezone": "^0.5.37",
|
|
89
90
|
"node-fetch": "^2.2.0",
|
|
90
91
|
"puppeteer": "^6.0.0",
|
|
91
92
|
"uuid": "^3.3.2"
|