oxygen-cli 1.24.1 → 1.24.4

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.
@@ -13,7 +13,7 @@ require("source-map-support/register");
13
13
 
14
14
  /**
15
15
  * @summary Waits for inner text of the given element to stop matching the specified pattern.
16
- * @description Text pattern can be any of the supported
16
+ * @description Text pattern can be any of the supported
17
17
  * string matching patterns(on the top of page).
18
18
  * @function waitForNotText
19
19
  * @param {String|Element} locator - An element locator.
@@ -38,8 +38,8 @@ module.exports = async function (locator, pattern, timeout) {
38
38
  timeout: timeout ? timeout : this.waitForTimeout
39
39
  });
40
40
  } catch (e) {
41
- text = text.replace(/\n/g, '\\n');
41
+ if (text) text = text.replace(/\n/g, '\\n');
42
42
  throw new this.OxError(this.errHelper.errorCode.TIMEOUT, `Expected not: "${pattern}". Got: "${text}"`);
43
43
  }
44
44
  };
45
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9veF9tb2R1bGVzL21vZHVsZS13ZWIvY29tbWFuZHMvd2FpdEZvck5vdFRleHQuanMiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsImxvY2F0b3IiLCJwYXR0ZXJuIiwidGltZW91dCIsImhlbHBlcnMiLCJhc3NlcnRBcmd1bWVudCIsImFzc2VydEFyZ3VtZW50VGltZW91dCIsImVsIiwiZ2V0RWxlbWVudCIsInRleHQiLCJkcml2ZXIiLCJ3YWl0VW50aWwiLCJnZXRUZXh0IiwibWF0Y2hQYXR0ZXJuIiwid2FpdEZvclRpbWVvdXQiLCJlIiwicmVwbGFjZSIsIk94RXJyb3IiLCJlcnJIZWxwZXIiLCJlcnJvckNvZGUiLCJUSU1FT1VUIl0sIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBQSxNQUFNLENBQUNDLE9BQVAsR0FBaUIsZ0JBQWVDLE9BQWYsRUFBd0JDLE9BQXhCLEVBQWlDQyxPQUFqQyxFQUEwQztBQUN2RCxPQUFLQyxPQUFMLENBQWFDLGNBQWIsQ0FBNEJILE9BQTVCLEVBQXFDLFNBQXJDO0FBQ0EsT0FBS0UsT0FBTCxDQUFhRSxxQkFBYixDQUFtQ0gsT0FBbkMsRUFBNEMsU0FBNUM7QUFFQSxNQUFJSSxFQUFFLEdBQUcsTUFBTSxLQUFLSCxPQUFMLENBQWFJLFVBQWIsQ0FBd0JQLE9BQXhCLEVBQWlDLEtBQWpDLEVBQXdDRSxPQUF4QyxDQUFmO0FBRUEsTUFBSU0sSUFBSjs7QUFDQSxNQUFJO0FBQ0EsVUFBTSxLQUFLQyxNQUFMLENBQVlDLFNBQVosQ0FBc0IsWUFBVztBQUNuQ0YsTUFBQUEsSUFBSSxHQUFHLE1BQU1GLEVBQUUsQ0FBQ0ssT0FBSCxFQUFiO0FBQ0EsYUFBTyxDQUFDLEtBQUtSLE9BQUwsQ0FBYVMsWUFBYixDQUEwQkosSUFBMUIsRUFBZ0NQLE9BQWhDLENBQVI7QUFDSCxLQUhLLEVBSU47QUFBRUMsTUFBQUEsT0FBTyxFQUFHQSxPQUFPLEdBQUdBLE9BQUgsR0FBYSxLQUFLVztBQUFyQyxLQUpNLENBQU47QUFLSCxHQU5ELENBTUUsT0FBT0MsQ0FBUCxFQUFVO0FBQ1JOLElBQUFBLElBQUksR0FBR0EsSUFBSSxDQUFDTyxPQUFMLENBQWEsS0FBYixFQUFvQixLQUFwQixDQUFQO0FBQ0EsVUFBTSxJQUFJLEtBQUtDLE9BQVQsQ0FBaUIsS0FBS0MsU0FBTCxDQUFlQyxTQUFmLENBQXlCQyxPQUExQyxFQUFvRCxrQkFBaUJsQixPQUFRLFlBQVdPLElBQUssR0FBN0YsQ0FBTjtBQUNIO0FBQ0osQ0FqQkQiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTUtcHJlc2VudCBDbG91ZEJlYXQgTGltaXRlZFxyXG4gKlxyXG4gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxyXG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxyXG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxyXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBAc3VtbWFyeSBXYWl0cyBmb3IgaW5uZXIgdGV4dCBvZiB0aGUgZ2l2ZW4gZWxlbWVudCB0byBzdG9wIG1hdGNoaW5nIHRoZSBzcGVjaWZpZWQgcGF0dGVybi5cclxuICogQGRlc2NyaXB0aW9uIFRleHQgcGF0dGVybiBjYW4gYmUgYW55IG9mIHRoZSBzdXBwb3J0ZWQgXHJcbiAqICBzdHJpbmcgbWF0Y2hpbmcgcGF0dGVybnMob24gdGhlIHRvcCBvZiBwYWdlKS5cclxuICogQGZ1bmN0aW9uIHdhaXRGb3JOb3RUZXh0XHJcbiAqIEBwYXJhbSB7U3RyaW5nfEVsZW1lbnR9IGxvY2F0b3IgLSBBbiBlbGVtZW50IGxvY2F0b3IuXHJcbiAqIEBwYXJhbSB7U3RyaW5nfSBwYXR0ZXJuIC0gVGV4dCBwYXR0ZXJuLlxyXG4gKiBAcGFyYW0ge051bWJlcj19IHRpbWVvdXQgLSBUaW1lb3V0IGluIG1pbGxpc2Vjb25kcy4gRGVmYXVsdCBpcyA2MCBzZWNvbmRzLlxyXG4gKiBAZXhhbXBsZSA8Y2FwdGlvbj5bamF2YXNjcmlwdF0gVXNhZ2UgZXhhbXBsZTwvY2FwdGlvbj5cclxuICogd2ViLmluaXQoKTsvL09wZW5zIGJyb3dzZXIgc2Vzc2lvbi5cclxuICogd2ViLm9wZW4oXCJ3d3cueW91cndlYnNpdGUuY29tXCIpOy8vIE9wZW5zIGEgd2Vic2l0ZS5cclxuICogd2ViLndhaXRGb3JOb3RUZXh0KFwiaWQ9VGl0bGVcIixcIldlYnNpdGVcIik7Ly9XYWl0cyBmb3IgYW4gZWxlbWVudOKAmXMgdGV4dCB0byBub3QgbWF0Y2ggdG8gZXhwZWN0ZWQgc3RyaW5nLlxyXG4gKi9cclxubW9kdWxlLmV4cG9ydHMgPSBhc3luYyBmdW5jdGlvbihsb2NhdG9yLCBwYXR0ZXJuLCB0aW1lb3V0KSB7XHJcbiAgICB0aGlzLmhlbHBlcnMuYXNzZXJ0QXJndW1lbnQocGF0dGVybiwgJ3BhdHRlcm4nKTtcclxuICAgIHRoaXMuaGVscGVycy5hc3NlcnRBcmd1bWVudFRpbWVvdXQodGltZW91dCwgJ3RpbWVvdXQnKTtcclxuXHJcbiAgICB2YXIgZWwgPSBhd2FpdCB0aGlzLmhlbHBlcnMuZ2V0RWxlbWVudChsb2NhdG9yLCBmYWxzZSwgdGltZW91dCk7XHJcblxyXG4gICAgdmFyIHRleHQ7XHJcbiAgICB0cnkge1xyXG4gICAgICAgIGF3YWl0IHRoaXMuZHJpdmVyLndhaXRVbnRpbChhc3luYygpID0+IHtcclxuICAgICAgICAgICAgdGV4dCA9IGF3YWl0IGVsLmdldFRleHQoKTtcclxuICAgICAgICAgICAgcmV0dXJuICF0aGlzLmhlbHBlcnMubWF0Y2hQYXR0ZXJuKHRleHQsIHBhdHRlcm4pO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgeyB0aW1lb3V0OiAodGltZW91dCA/IHRpbWVvdXQgOiB0aGlzLndhaXRGb3JUaW1lb3V0KSB9KTtcclxuICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICB0ZXh0ID0gdGV4dC5yZXBsYWNlKC9cXG4vZywgJ1xcXFxuJyk7XHJcbiAgICAgICAgdGhyb3cgbmV3IHRoaXMuT3hFcnJvcih0aGlzLmVyckhlbHBlci5lcnJvckNvZGUuVElNRU9VVCwgYEV4cGVjdGVkIG5vdDogXCIke3BhdHRlcm59XCIuIEdvdDogXCIke3RleHR9XCJgKTtcclxuICAgIH1cclxufTtcclxuIl19
45
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9veF9tb2R1bGVzL21vZHVsZS13ZWIvY29tbWFuZHMvd2FpdEZvck5vdFRleHQuanMiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsImxvY2F0b3IiLCJwYXR0ZXJuIiwidGltZW91dCIsImhlbHBlcnMiLCJhc3NlcnRBcmd1bWVudCIsImFzc2VydEFyZ3VtZW50VGltZW91dCIsImVsIiwiZ2V0RWxlbWVudCIsInRleHQiLCJkcml2ZXIiLCJ3YWl0VW50aWwiLCJnZXRUZXh0IiwibWF0Y2hQYXR0ZXJuIiwid2FpdEZvclRpbWVvdXQiLCJlIiwicmVwbGFjZSIsIk94RXJyb3IiLCJlcnJIZWxwZXIiLCJlcnJvckNvZGUiLCJUSU1FT1VUIl0sIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBQSxNQUFNLENBQUNDLE9BQVAsR0FBaUIsZ0JBQWVDLE9BQWYsRUFBd0JDLE9BQXhCLEVBQWlDQyxPQUFqQyxFQUEwQztBQUN2RCxPQUFLQyxPQUFMLENBQWFDLGNBQWIsQ0FBNEJILE9BQTVCLEVBQXFDLFNBQXJDO0FBQ0EsT0FBS0UsT0FBTCxDQUFhRSxxQkFBYixDQUFtQ0gsT0FBbkMsRUFBNEMsU0FBNUM7QUFFQSxNQUFJSSxFQUFFLEdBQUcsTUFBTSxLQUFLSCxPQUFMLENBQWFJLFVBQWIsQ0FBd0JQLE9BQXhCLEVBQWlDLEtBQWpDLEVBQXdDRSxPQUF4QyxDQUFmO0FBRUEsTUFBSU0sSUFBSjs7QUFDQSxNQUFJO0FBQ0EsVUFBTSxLQUFLQyxNQUFMLENBQVlDLFNBQVosQ0FBc0IsWUFBVztBQUNuQ0YsTUFBQUEsSUFBSSxHQUFHLE1BQU1GLEVBQUUsQ0FBQ0ssT0FBSCxFQUFiO0FBQ0EsYUFBTyxDQUFDLEtBQUtSLE9BQUwsQ0FBYVMsWUFBYixDQUEwQkosSUFBMUIsRUFBZ0NQLE9BQWhDLENBQVI7QUFDSCxLQUhLLEVBSU47QUFBRUMsTUFBQUEsT0FBTyxFQUFHQSxPQUFPLEdBQUdBLE9BQUgsR0FBYSxLQUFLVztBQUFyQyxLQUpNLENBQU47QUFLSCxHQU5ELENBTUUsT0FBT0MsQ0FBUCxFQUFVO0FBQ1IsUUFBSU4sSUFBSixFQUNJQSxJQUFJLEdBQUdBLElBQUksQ0FBQ08sT0FBTCxDQUFhLEtBQWIsRUFBb0IsS0FBcEIsQ0FBUDtBQUNKLFVBQU0sSUFBSSxLQUFLQyxPQUFULENBQWlCLEtBQUtDLFNBQUwsQ0FBZUMsU0FBZixDQUF5QkMsT0FBMUMsRUFBb0Qsa0JBQWlCbEIsT0FBUSxZQUFXTyxJQUFLLEdBQTdGLENBQU47QUFDSDtBQUNKLENBbEJEIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogQ29weXJpZ2h0IChDKSAyMDE1LXByZXNlbnQgQ2xvdWRCZWF0IExpbWl0ZWRcclxuICpcclxuICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcclxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcclxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cclxuICovXHJcblxyXG4vKipcclxuICogQHN1bW1hcnkgV2FpdHMgZm9yIGlubmVyIHRleHQgb2YgdGhlIGdpdmVuIGVsZW1lbnQgdG8gc3RvcCBtYXRjaGluZyB0aGUgc3BlY2lmaWVkIHBhdHRlcm4uXHJcbiAqIEBkZXNjcmlwdGlvbiBUZXh0IHBhdHRlcm4gY2FuIGJlIGFueSBvZiB0aGUgc3VwcG9ydGVkXHJcbiAqICBzdHJpbmcgbWF0Y2hpbmcgcGF0dGVybnMob24gdGhlIHRvcCBvZiBwYWdlKS5cclxuICogQGZ1bmN0aW9uIHdhaXRGb3JOb3RUZXh0XHJcbiAqIEBwYXJhbSB7U3RyaW5nfEVsZW1lbnR9IGxvY2F0b3IgLSBBbiBlbGVtZW50IGxvY2F0b3IuXHJcbiAqIEBwYXJhbSB7U3RyaW5nfSBwYXR0ZXJuIC0gVGV4dCBwYXR0ZXJuLlxyXG4gKiBAcGFyYW0ge051bWJlcj19IHRpbWVvdXQgLSBUaW1lb3V0IGluIG1pbGxpc2Vjb25kcy4gRGVmYXVsdCBpcyA2MCBzZWNvbmRzLlxyXG4gKiBAZXhhbXBsZSA8Y2FwdGlvbj5bamF2YXNjcmlwdF0gVXNhZ2UgZXhhbXBsZTwvY2FwdGlvbj5cclxuICogd2ViLmluaXQoKTsvL09wZW5zIGJyb3dzZXIgc2Vzc2lvbi5cclxuICogd2ViLm9wZW4oXCJ3d3cueW91cndlYnNpdGUuY29tXCIpOy8vIE9wZW5zIGEgd2Vic2l0ZS5cclxuICogd2ViLndhaXRGb3JOb3RUZXh0KFwiaWQ9VGl0bGVcIixcIldlYnNpdGVcIik7Ly9XYWl0cyBmb3IgYW4gZWxlbWVudOKAmXMgdGV4dCB0byBub3QgbWF0Y2ggdG8gZXhwZWN0ZWQgc3RyaW5nLlxyXG4gKi9cclxubW9kdWxlLmV4cG9ydHMgPSBhc3luYyBmdW5jdGlvbihsb2NhdG9yLCBwYXR0ZXJuLCB0aW1lb3V0KSB7XHJcbiAgICB0aGlzLmhlbHBlcnMuYXNzZXJ0QXJndW1lbnQocGF0dGVybiwgJ3BhdHRlcm4nKTtcclxuICAgIHRoaXMuaGVscGVycy5hc3NlcnRBcmd1bWVudFRpbWVvdXQodGltZW91dCwgJ3RpbWVvdXQnKTtcclxuXHJcbiAgICB2YXIgZWwgPSBhd2FpdCB0aGlzLmhlbHBlcnMuZ2V0RWxlbWVudChsb2NhdG9yLCBmYWxzZSwgdGltZW91dCk7XHJcblxyXG4gICAgdmFyIHRleHQ7XHJcbiAgICB0cnkge1xyXG4gICAgICAgIGF3YWl0IHRoaXMuZHJpdmVyLndhaXRVbnRpbChhc3luYygpID0+IHtcclxuICAgICAgICAgICAgdGV4dCA9IGF3YWl0IGVsLmdldFRleHQoKTtcclxuICAgICAgICAgICAgcmV0dXJuICF0aGlzLmhlbHBlcnMubWF0Y2hQYXR0ZXJuKHRleHQsIHBhdHRlcm4pO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgeyB0aW1lb3V0OiAodGltZW91dCA/IHRpbWVvdXQgOiB0aGlzLndhaXRGb3JUaW1lb3V0KSB9KTtcclxuICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICBpZiAodGV4dClcclxuICAgICAgICAgICAgdGV4dCA9IHRleHQucmVwbGFjZSgvXFxuL2csICdcXFxcbicpO1xyXG4gICAgICAgIHRocm93IG5ldyB0aGlzLk94RXJyb3IodGhpcy5lcnJIZWxwZXIuZXJyb3JDb2RlLlRJTUVPVVQsIGBFeHBlY3RlZCBub3Q6IFwiJHtwYXR0ZXJufVwiLiBHb3Q6IFwiJHt0ZXh0fVwiYCk7XHJcbiAgICB9XHJcbn07XHJcbiJdfQ==
@@ -13,7 +13,7 @@ require("source-map-support/register");
13
13
 
14
14
  /**
15
15
  * @summary Waits for input element's value to stop matching the specified pattern.
16
- * @description Value pattern can be any of the supported
16
+ * @description Value pattern can be any of the supported
17
17
  * string matching patterns(on the top of page).
18
18
  * @function waitForNotValue
19
19
  * @param {String|Element} locator - An element locator.
@@ -38,8 +38,8 @@ module.exports = async function (locator, pattern, timeout) {
38
38
  timeout: timeout ? timeout : this.waitForTimeout
39
39
  });
40
40
  } catch (e) {
41
- text = text.replace(/\n/g, '\\n');
41
+ if (text) text = text.replace(/\n/g, '\\n');
42
42
  throw new this.OxError(this.errHelper.errorCode.TIMEOUT, `Expected not: "${pattern}". Got: "${text}"`);
43
43
  }
44
44
  };
45
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9veF9tb2R1bGVzL21vZHVsZS13ZWIvY29tbWFuZHMvd2FpdEZvck5vdFZhbHVlLmpzIl0sIm5hbWVzIjpbIm1vZHVsZSIsImV4cG9ydHMiLCJsb2NhdG9yIiwicGF0dGVybiIsInRpbWVvdXQiLCJoZWxwZXJzIiwiYXNzZXJ0QXJndW1lbnQiLCJhc3NlcnRBcmd1bWVudFRpbWVvdXQiLCJlbCIsImdldEVsZW1lbnQiLCJ0ZXh0IiwiZHJpdmVyIiwid2FpdFVudGlsIiwiZ2V0VmFsdWUiLCJtYXRjaFBhdHRlcm4iLCJ3YWl0Rm9yVGltZW91dCIsImUiLCJyZXBsYWNlIiwiT3hFcnJvciIsImVyckhlbHBlciIsImVycm9yQ29kZSIsIlRJTUVPVVQiXSwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0FBLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQixnQkFBZUMsT0FBZixFQUF3QkMsT0FBeEIsRUFBaUNDLE9BQWpDLEVBQTBDO0FBQ3ZELE9BQUtDLE9BQUwsQ0FBYUMsY0FBYixDQUE0QkgsT0FBNUIsRUFBcUMsU0FBckM7QUFDQSxPQUFLRSxPQUFMLENBQWFFLHFCQUFiLENBQW1DSCxPQUFuQyxFQUE0QyxTQUE1QztBQUVBLE1BQUlJLEVBQUUsR0FBRyxNQUFNLEtBQUtILE9BQUwsQ0FBYUksVUFBYixDQUF3QlAsT0FBeEIsRUFBaUMsS0FBakMsRUFBd0NFLE9BQXhDLENBQWY7QUFFQSxNQUFJTSxJQUFKOztBQUNBLE1BQUk7QUFDQSxVQUFNLEtBQUtDLE1BQUwsQ0FBWUMsU0FBWixDQUFzQixZQUFXO0FBQ25DRixNQUFBQSxJQUFJLEdBQUcsTUFBTUYsRUFBRSxDQUFDSyxRQUFILEVBQWI7QUFDQSxhQUFPLENBQUMsS0FBS1IsT0FBTCxDQUFhUyxZQUFiLENBQTBCSixJQUExQixFQUFnQ1AsT0FBaEMsQ0FBUjtBQUNILEtBSEssRUFJTjtBQUFFQyxNQUFBQSxPQUFPLEVBQUdBLE9BQU8sR0FBR0EsT0FBSCxHQUFhLEtBQUtXO0FBQXJDLEtBSk0sQ0FBTjtBQUtILEdBTkQsQ0FNRSxPQUFPQyxDQUFQLEVBQVU7QUFDUk4sSUFBQUEsSUFBSSxHQUFHQSxJQUFJLENBQUNPLE9BQUwsQ0FBYSxLQUFiLEVBQW9CLEtBQXBCLENBQVA7QUFDQSxVQUFNLElBQUksS0FBS0MsT0FBVCxDQUFpQixLQUFLQyxTQUFMLENBQWVDLFNBQWYsQ0FBeUJDLE9BQTFDLEVBQW9ELGtCQUFpQmxCLE9BQVEsWUFBV08sSUFBSyxHQUE3RixDQUFOO0FBQ0g7QUFDSixDQWpCRCIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIENvcHlyaWdodCAoQykgMjAxNS1wcmVzZW50IENsb3VkQmVhdCBMaW1pdGVkXHJcbiAqXHJcbiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XHJcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XHJcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXHJcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIEBzdW1tYXJ5IFdhaXRzIGZvciBpbnB1dCBlbGVtZW50J3MgdmFsdWUgdG8gc3RvcCBtYXRjaGluZyB0aGUgc3BlY2lmaWVkIHBhdHRlcm4uXHJcbiAqIEBkZXNjcmlwdGlvbiBWYWx1ZSBwYXR0ZXJuIGNhbiBiZSBhbnkgb2YgdGhlIHN1cHBvcnRlZCBcclxuICogIHN0cmluZyBtYXRjaGluZyBwYXR0ZXJucyhvbiB0aGUgdG9wIG9mIHBhZ2UpLlxyXG4gKiBAZnVuY3Rpb24gd2FpdEZvck5vdFZhbHVlXHJcbiAqIEBwYXJhbSB7U3RyaW5nfEVsZW1lbnR9IGxvY2F0b3IgLSBBbiBlbGVtZW50IGxvY2F0b3IuXHJcbiAqIEBwYXJhbSB7U3RyaW5nfSBwYXR0ZXJuIC0gVmFsdWUgcGF0dGVybi5cclxuICogQHBhcmFtIHtOdW1iZXI9fSB0aW1lb3V0IC0gVGltZW91dCBpbiBtaWxsaXNlY29uZHMuIERlZmF1bHQgaXMgNjAgc2Vjb25kcy5cclxuICogQGV4YW1wbGUgPGNhcHRpb24+W2phdmFzY3JpcHRdIFVzYWdlIGV4YW1wbGU8L2NhcHRpb24+XHJcbiAqIHdlYi5pbml0KCk7Ly9PcGVucyBicm93c2VyIHNlc3Npb24uXHJcbiAqIHdlYi5vcGVuKFwid3d3LnlvdXJ3ZWJzaXRlLmNvbVwiKTsvLyBPcGVucyBhIHdlYnNpdGUuXHJcbiAqIHdlYi53YWl0Rm9yTm90VmFsdWUoXCJpZD1Vc2VyTmFtZVwiLFwiVXNlclwiKTsvL1dhaXRzIGZvciBhbiBlbGVtZW504oCZcyB2YWx1ZSB0byBub3QgbWF0Y2ggdG8gZXhwZWN0ZWQgc3RyaW5nLlxyXG4gKi9cclxubW9kdWxlLmV4cG9ydHMgPSBhc3luYyBmdW5jdGlvbihsb2NhdG9yLCBwYXR0ZXJuLCB0aW1lb3V0KSB7XHJcbiAgICB0aGlzLmhlbHBlcnMuYXNzZXJ0QXJndW1lbnQocGF0dGVybiwgJ3BhdHRlcm4nKTtcclxuICAgIHRoaXMuaGVscGVycy5hc3NlcnRBcmd1bWVudFRpbWVvdXQodGltZW91dCwgJ3RpbWVvdXQnKTtcclxuXHJcbiAgICB2YXIgZWwgPSBhd2FpdCB0aGlzLmhlbHBlcnMuZ2V0RWxlbWVudChsb2NhdG9yLCBmYWxzZSwgdGltZW91dCk7XHJcblxyXG4gICAgdmFyIHRleHQ7XHJcbiAgICB0cnkge1xyXG4gICAgICAgIGF3YWl0IHRoaXMuZHJpdmVyLndhaXRVbnRpbChhc3luYygpID0+IHtcclxuICAgICAgICAgICAgdGV4dCA9IGF3YWl0IGVsLmdldFZhbHVlKCk7XHJcbiAgICAgICAgICAgIHJldHVybiAhdGhpcy5oZWxwZXJzLm1hdGNoUGF0dGVybih0ZXh0LCBwYXR0ZXJuKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIHsgdGltZW91dDogKHRpbWVvdXQgPyB0aW1lb3V0IDogdGhpcy53YWl0Rm9yVGltZW91dCkgfSk7XHJcbiAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgdGV4dCA9IHRleHQucmVwbGFjZSgvXFxuL2csICdcXFxcbicpO1xyXG4gICAgICAgIHRocm93IG5ldyB0aGlzLk94RXJyb3IodGhpcy5lcnJIZWxwZXIuZXJyb3JDb2RlLlRJTUVPVVQsIGBFeHBlY3RlZCBub3Q6IFwiJHtwYXR0ZXJufVwiLiBHb3Q6IFwiJHt0ZXh0fVwiYCk7XHJcbiAgICB9XHJcbn07XHJcbiJdfQ==
45
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9veF9tb2R1bGVzL21vZHVsZS13ZWIvY29tbWFuZHMvd2FpdEZvck5vdFZhbHVlLmpzIl0sIm5hbWVzIjpbIm1vZHVsZSIsImV4cG9ydHMiLCJsb2NhdG9yIiwicGF0dGVybiIsInRpbWVvdXQiLCJoZWxwZXJzIiwiYXNzZXJ0QXJndW1lbnQiLCJhc3NlcnRBcmd1bWVudFRpbWVvdXQiLCJlbCIsImdldEVsZW1lbnQiLCJ0ZXh0IiwiZHJpdmVyIiwid2FpdFVudGlsIiwiZ2V0VmFsdWUiLCJtYXRjaFBhdHRlcm4iLCJ3YWl0Rm9yVGltZW91dCIsImUiLCJyZXBsYWNlIiwiT3hFcnJvciIsImVyckhlbHBlciIsImVycm9yQ29kZSIsIlRJTUVPVVQiXSwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0FBLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQixnQkFBZUMsT0FBZixFQUF3QkMsT0FBeEIsRUFBaUNDLE9BQWpDLEVBQTBDO0FBQ3ZELE9BQUtDLE9BQUwsQ0FBYUMsY0FBYixDQUE0QkgsT0FBNUIsRUFBcUMsU0FBckM7QUFDQSxPQUFLRSxPQUFMLENBQWFFLHFCQUFiLENBQW1DSCxPQUFuQyxFQUE0QyxTQUE1QztBQUVBLE1BQUlJLEVBQUUsR0FBRyxNQUFNLEtBQUtILE9BQUwsQ0FBYUksVUFBYixDQUF3QlAsT0FBeEIsRUFBaUMsS0FBakMsRUFBd0NFLE9BQXhDLENBQWY7QUFFQSxNQUFJTSxJQUFKOztBQUNBLE1BQUk7QUFDQSxVQUFNLEtBQUtDLE1BQUwsQ0FBWUMsU0FBWixDQUFzQixZQUFXO0FBQ25DRixNQUFBQSxJQUFJLEdBQUcsTUFBTUYsRUFBRSxDQUFDSyxRQUFILEVBQWI7QUFDQSxhQUFPLENBQUMsS0FBS1IsT0FBTCxDQUFhUyxZQUFiLENBQTBCSixJQUExQixFQUFnQ1AsT0FBaEMsQ0FBUjtBQUNILEtBSEssRUFJTjtBQUFFQyxNQUFBQSxPQUFPLEVBQUdBLE9BQU8sR0FBR0EsT0FBSCxHQUFhLEtBQUtXO0FBQXJDLEtBSk0sQ0FBTjtBQUtILEdBTkQsQ0FNRSxPQUFPQyxDQUFQLEVBQVU7QUFDUixRQUFJTixJQUFKLEVBQ0lBLElBQUksR0FBR0EsSUFBSSxDQUFDTyxPQUFMLENBQWEsS0FBYixFQUFvQixLQUFwQixDQUFQO0FBQ0osVUFBTSxJQUFJLEtBQUtDLE9BQVQsQ0FBaUIsS0FBS0MsU0FBTCxDQUFlQyxTQUFmLENBQXlCQyxPQUExQyxFQUFvRCxrQkFBaUJsQixPQUFRLFlBQVdPLElBQUssR0FBN0YsQ0FBTjtBQUNIO0FBQ0osQ0FsQkQiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTUtcHJlc2VudCBDbG91ZEJlYXQgTGltaXRlZFxyXG4gKlxyXG4gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxyXG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxyXG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxyXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBAc3VtbWFyeSBXYWl0cyBmb3IgaW5wdXQgZWxlbWVudCdzIHZhbHVlIHRvIHN0b3AgbWF0Y2hpbmcgdGhlIHNwZWNpZmllZCBwYXR0ZXJuLlxyXG4gKiBAZGVzY3JpcHRpb24gVmFsdWUgcGF0dGVybiBjYW4gYmUgYW55IG9mIHRoZSBzdXBwb3J0ZWRcclxuICogIHN0cmluZyBtYXRjaGluZyBwYXR0ZXJucyhvbiB0aGUgdG9wIG9mIHBhZ2UpLlxyXG4gKiBAZnVuY3Rpb24gd2FpdEZvck5vdFZhbHVlXHJcbiAqIEBwYXJhbSB7U3RyaW5nfEVsZW1lbnR9IGxvY2F0b3IgLSBBbiBlbGVtZW50IGxvY2F0b3IuXHJcbiAqIEBwYXJhbSB7U3RyaW5nfSBwYXR0ZXJuIC0gVmFsdWUgcGF0dGVybi5cclxuICogQHBhcmFtIHtOdW1iZXI9fSB0aW1lb3V0IC0gVGltZW91dCBpbiBtaWxsaXNlY29uZHMuIERlZmF1bHQgaXMgNjAgc2Vjb25kcy5cclxuICogQGV4YW1wbGUgPGNhcHRpb24+W2phdmFzY3JpcHRdIFVzYWdlIGV4YW1wbGU8L2NhcHRpb24+XHJcbiAqIHdlYi5pbml0KCk7Ly9PcGVucyBicm93c2VyIHNlc3Npb24uXHJcbiAqIHdlYi5vcGVuKFwid3d3LnlvdXJ3ZWJzaXRlLmNvbVwiKTsvLyBPcGVucyBhIHdlYnNpdGUuXHJcbiAqIHdlYi53YWl0Rm9yTm90VmFsdWUoXCJpZD1Vc2VyTmFtZVwiLFwiVXNlclwiKTsvL1dhaXRzIGZvciBhbiBlbGVtZW504oCZcyB2YWx1ZSB0byBub3QgbWF0Y2ggdG8gZXhwZWN0ZWQgc3RyaW5nLlxyXG4gKi9cclxubW9kdWxlLmV4cG9ydHMgPSBhc3luYyBmdW5jdGlvbihsb2NhdG9yLCBwYXR0ZXJuLCB0aW1lb3V0KSB7XHJcbiAgICB0aGlzLmhlbHBlcnMuYXNzZXJ0QXJndW1lbnQocGF0dGVybiwgJ3BhdHRlcm4nKTtcclxuICAgIHRoaXMuaGVscGVycy5hc3NlcnRBcmd1bWVudFRpbWVvdXQodGltZW91dCwgJ3RpbWVvdXQnKTtcclxuXHJcbiAgICB2YXIgZWwgPSBhd2FpdCB0aGlzLmhlbHBlcnMuZ2V0RWxlbWVudChsb2NhdG9yLCBmYWxzZSwgdGltZW91dCk7XHJcblxyXG4gICAgdmFyIHRleHQ7XHJcbiAgICB0cnkge1xyXG4gICAgICAgIGF3YWl0IHRoaXMuZHJpdmVyLndhaXRVbnRpbChhc3luYygpID0+IHtcclxuICAgICAgICAgICAgdGV4dCA9IGF3YWl0IGVsLmdldFZhbHVlKCk7XHJcbiAgICAgICAgICAgIHJldHVybiAhdGhpcy5oZWxwZXJzLm1hdGNoUGF0dGVybih0ZXh0LCBwYXR0ZXJuKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIHsgdGltZW91dDogKHRpbWVvdXQgPyB0aW1lb3V0IDogdGhpcy53YWl0Rm9yVGltZW91dCkgfSk7XHJcbiAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgaWYgKHRleHQpXHJcbiAgICAgICAgICAgIHRleHQgPSB0ZXh0LnJlcGxhY2UoL1xcbi9nLCAnXFxcXG4nKTtcclxuICAgICAgICB0aHJvdyBuZXcgdGhpcy5PeEVycm9yKHRoaXMuZXJySGVscGVyLmVycm9yQ29kZS5USU1FT1VULCBgRXhwZWN0ZWQgbm90OiBcIiR7cGF0dGVybn1cIi4gR290OiBcIiR7dGV4dH1cImApO1xyXG4gICAgfVxyXG59O1xyXG4iXX0=
@@ -13,7 +13,7 @@ require("source-map-support/register");
13
13
 
14
14
  /**
15
15
  * @summary Waits for inner text of the given element to match the specified pattern.
16
- * @description Text pattern can be any of the supported
16
+ * @description Text pattern can be any of the supported
17
17
  * string matching patterns(on the top of page).
18
18
  * @function waitForText
19
19
  * @param {String|Element} locator - An element locator.
@@ -38,8 +38,8 @@ module.exports = async function (locator, pattern, timeout) {
38
38
  timeout: timeout ? timeout : this.waitForTimeout
39
39
  });
40
40
  } catch (e) {
41
- text = text.replace(/\n/g, '\\n');
41
+ if (text) text = text.replace(/\n/g, '\\n');
42
42
  throw new this.OxError(this.errHelper.errorCode.TIMEOUT, `Expected: "${pattern}". Got: "${text}"`);
43
43
  }
44
44
  };
45
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9veF9tb2R1bGVzL21vZHVsZS13ZWIvY29tbWFuZHMvd2FpdEZvclRleHQuanMiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsImxvY2F0b3IiLCJwYXR0ZXJuIiwidGltZW91dCIsImhlbHBlcnMiLCJhc3NlcnRBcmd1bWVudCIsImFzc2VydEFyZ3VtZW50VGltZW91dCIsImVsIiwiZ2V0RWxlbWVudCIsInRleHQiLCJkcml2ZXIiLCJ3YWl0VW50aWwiLCJnZXRUZXh0IiwibWF0Y2hQYXR0ZXJuIiwid2FpdEZvclRpbWVvdXQiLCJlIiwicmVwbGFjZSIsIk94RXJyb3IiLCJlcnJIZWxwZXIiLCJlcnJvckNvZGUiLCJUSU1FT1VUIl0sIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBQSxNQUFNLENBQUNDLE9BQVAsR0FBaUIsZ0JBQWVDLE9BQWYsRUFBd0JDLE9BQXhCLEVBQWlDQyxPQUFqQyxFQUEwQztBQUN2RCxPQUFLQyxPQUFMLENBQWFDLGNBQWIsQ0FBNEJILE9BQTVCLEVBQXFDLFNBQXJDO0FBQ0EsT0FBS0UsT0FBTCxDQUFhRSxxQkFBYixDQUFtQ0gsT0FBbkMsRUFBNEMsU0FBNUM7QUFFQSxNQUFJSSxFQUFFLEdBQUcsTUFBTSxLQUFLSCxPQUFMLENBQWFJLFVBQWIsQ0FBd0JQLE9BQXhCLEVBQWlDLEtBQWpDLEVBQXdDRSxPQUF4QyxDQUFmO0FBRUEsTUFBSU0sSUFBSjs7QUFDQSxNQUFJO0FBQ0EsVUFBTSxLQUFLQyxNQUFMLENBQVlDLFNBQVosQ0FBc0IsWUFBVztBQUNuQ0YsTUFBQUEsSUFBSSxHQUFHLE1BQU1GLEVBQUUsQ0FBQ0ssT0FBSCxFQUFiO0FBQ0EsYUFBTyxLQUFLUixPQUFMLENBQWFTLFlBQWIsQ0FBMEJKLElBQTFCLEVBQWdDUCxPQUFoQyxDQUFQO0FBQ0gsS0FISyxFQUlOO0FBQUVDLE1BQUFBLE9BQU8sRUFBR0EsT0FBTyxHQUFHQSxPQUFILEdBQWEsS0FBS1c7QUFBckMsS0FKTSxDQUFOO0FBS0gsR0FORCxDQU1FLE9BQU9DLENBQVAsRUFBVTtBQUNSTixJQUFBQSxJQUFJLEdBQUdBLElBQUksQ0FBQ08sT0FBTCxDQUFhLEtBQWIsRUFBb0IsS0FBcEIsQ0FBUDtBQUNBLFVBQU0sSUFBSSxLQUFLQyxPQUFULENBQWlCLEtBQUtDLFNBQUwsQ0FBZUMsU0FBZixDQUF5QkMsT0FBMUMsRUFBb0QsY0FBYWxCLE9BQVEsWUFBV08sSUFBSyxHQUF6RixDQUFOO0FBQ0g7QUFDSixDQWpCRCIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIENvcHlyaWdodCAoQykgMjAxNS1wcmVzZW50IENsb3VkQmVhdCBMaW1pdGVkXHJcbiAqXHJcbiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XHJcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XHJcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXHJcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIEBzdW1tYXJ5IFdhaXRzIGZvciBpbm5lciB0ZXh0IG9mIHRoZSBnaXZlbiBlbGVtZW50IHRvIG1hdGNoIHRoZSBzcGVjaWZpZWQgcGF0dGVybi5cclxuICogQGRlc2NyaXB0aW9uIFRleHQgcGF0dGVybiBjYW4gYmUgYW55IG9mIHRoZSBzdXBwb3J0ZWQgXHJcbiAqICBzdHJpbmcgbWF0Y2hpbmcgcGF0dGVybnMob24gdGhlIHRvcCBvZiBwYWdlKS5cclxuICogQGZ1bmN0aW9uIHdhaXRGb3JUZXh0XHJcbiAqIEBwYXJhbSB7U3RyaW5nfEVsZW1lbnR9IGxvY2F0b3IgLSBBbiBlbGVtZW50IGxvY2F0b3IuXHJcbiAqIEBwYXJhbSB7U3RyaW5nfSBwYXR0ZXJuIC0gVGV4dCBwYXR0ZXJuLlxyXG4gKiBAcGFyYW0ge051bWJlcj19IHRpbWVvdXQgLSBUaW1lb3V0IGluIG1pbGxpc2Vjb25kcy4gRGVmYXVsdCBpcyA2MCBzZWNvbmRzLlxyXG4gKiBAZXhhbXBsZSA8Y2FwdGlvbj5bamF2YXNjcmlwdF0gVXNhZ2UgZXhhbXBsZTwvY2FwdGlvbj5cclxuICogd2ViLmluaXQoKTsvL09wZW5zIGJyb3dzZXIgc2Vzc2lvbi5cclxuICogd2ViLm9wZW4oXCJ3d3cueW91cndlYnNpdGUuY29tXCIpOy8vIE9wZW5zIGEgd2Vic2l0ZS5cclxuICogd2ViLndhaXRGb3JUZXh0KFwiaWQ9VGl0bGVcIixcIldlYnNpdGVcIik7Ly9XYWl0cyBmb3IgYW4gZWxlbWVudOKAmXMgdGV4dCB0byAgbWF0Y2ggdG8gZXhwZWN0ZWQgc3RyaW5nLlxyXG4gKi9cclxubW9kdWxlLmV4cG9ydHMgPSBhc3luYyBmdW5jdGlvbihsb2NhdG9yLCBwYXR0ZXJuLCB0aW1lb3V0KSB7XHJcbiAgICB0aGlzLmhlbHBlcnMuYXNzZXJ0QXJndW1lbnQocGF0dGVybiwgJ3BhdHRlcm4nKTtcclxuICAgIHRoaXMuaGVscGVycy5hc3NlcnRBcmd1bWVudFRpbWVvdXQodGltZW91dCwgJ3RpbWVvdXQnKTtcclxuXHJcbiAgICB2YXIgZWwgPSBhd2FpdCB0aGlzLmhlbHBlcnMuZ2V0RWxlbWVudChsb2NhdG9yLCBmYWxzZSwgdGltZW91dCk7XHJcblxyXG4gICAgdmFyIHRleHQ7XHJcbiAgICB0cnkge1xyXG4gICAgICAgIGF3YWl0IHRoaXMuZHJpdmVyLndhaXRVbnRpbChhc3luYygpID0+IHtcclxuICAgICAgICAgICAgdGV4dCA9IGF3YWl0IGVsLmdldFRleHQoKTtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaGVscGVycy5tYXRjaFBhdHRlcm4odGV4dCwgcGF0dGVybik7XHJcbiAgICAgICAgfSxcclxuICAgICAgICB7IHRpbWVvdXQ6ICh0aW1lb3V0ID8gdGltZW91dCA6IHRoaXMud2FpdEZvclRpbWVvdXQpIH0pO1xyXG4gICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgIHRleHQgPSB0ZXh0LnJlcGxhY2UoL1xcbi9nLCAnXFxcXG4nKTtcclxuICAgICAgICB0aHJvdyBuZXcgdGhpcy5PeEVycm9yKHRoaXMuZXJySGVscGVyLmVycm9yQ29kZS5USU1FT1VULCBgRXhwZWN0ZWQ6IFwiJHtwYXR0ZXJufVwiLiBHb3Q6IFwiJHt0ZXh0fVwiYCk7XHJcbiAgICB9XHJcbn07XHJcbiJdfQ==
45
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9veF9tb2R1bGVzL21vZHVsZS13ZWIvY29tbWFuZHMvd2FpdEZvclRleHQuanMiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsImxvY2F0b3IiLCJwYXR0ZXJuIiwidGltZW91dCIsImhlbHBlcnMiLCJhc3NlcnRBcmd1bWVudCIsImFzc2VydEFyZ3VtZW50VGltZW91dCIsImVsIiwiZ2V0RWxlbWVudCIsInRleHQiLCJkcml2ZXIiLCJ3YWl0VW50aWwiLCJnZXRUZXh0IiwibWF0Y2hQYXR0ZXJuIiwid2FpdEZvclRpbWVvdXQiLCJlIiwicmVwbGFjZSIsIk94RXJyb3IiLCJlcnJIZWxwZXIiLCJlcnJvckNvZGUiLCJUSU1FT1VUIl0sIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBQSxNQUFNLENBQUNDLE9BQVAsR0FBaUIsZ0JBQWVDLE9BQWYsRUFBd0JDLE9BQXhCLEVBQWlDQyxPQUFqQyxFQUEwQztBQUN2RCxPQUFLQyxPQUFMLENBQWFDLGNBQWIsQ0FBNEJILE9BQTVCLEVBQXFDLFNBQXJDO0FBQ0EsT0FBS0UsT0FBTCxDQUFhRSxxQkFBYixDQUFtQ0gsT0FBbkMsRUFBNEMsU0FBNUM7QUFFQSxNQUFJSSxFQUFFLEdBQUcsTUFBTSxLQUFLSCxPQUFMLENBQWFJLFVBQWIsQ0FBd0JQLE9BQXhCLEVBQWlDLEtBQWpDLEVBQXdDRSxPQUF4QyxDQUFmO0FBRUEsTUFBSU0sSUFBSjs7QUFDQSxNQUFJO0FBQ0EsVUFBTSxLQUFLQyxNQUFMLENBQVlDLFNBQVosQ0FBc0IsWUFBVztBQUNuQ0YsTUFBQUEsSUFBSSxHQUFHLE1BQU1GLEVBQUUsQ0FBQ0ssT0FBSCxFQUFiO0FBQ0EsYUFBTyxLQUFLUixPQUFMLENBQWFTLFlBQWIsQ0FBMEJKLElBQTFCLEVBQWdDUCxPQUFoQyxDQUFQO0FBQ0gsS0FISyxFQUlOO0FBQUVDLE1BQUFBLE9BQU8sRUFBR0EsT0FBTyxHQUFHQSxPQUFILEdBQWEsS0FBS1c7QUFBckMsS0FKTSxDQUFOO0FBS0gsR0FORCxDQU1FLE9BQU9DLENBQVAsRUFBVTtBQUNSLFFBQUlOLElBQUosRUFDSUEsSUFBSSxHQUFHQSxJQUFJLENBQUNPLE9BQUwsQ0FBYSxLQUFiLEVBQW9CLEtBQXBCLENBQVA7QUFDSixVQUFNLElBQUksS0FBS0MsT0FBVCxDQUFpQixLQUFLQyxTQUFMLENBQWVDLFNBQWYsQ0FBeUJDLE9BQTFDLEVBQW9ELGNBQWFsQixPQUFRLFlBQVdPLElBQUssR0FBekYsQ0FBTjtBQUNIO0FBQ0osQ0FsQkQiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTUtcHJlc2VudCBDbG91ZEJlYXQgTGltaXRlZFxyXG4gKlxyXG4gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxyXG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxyXG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxyXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBAc3VtbWFyeSBXYWl0cyBmb3IgaW5uZXIgdGV4dCBvZiB0aGUgZ2l2ZW4gZWxlbWVudCB0byBtYXRjaCB0aGUgc3BlY2lmaWVkIHBhdHRlcm4uXHJcbiAqIEBkZXNjcmlwdGlvbiBUZXh0IHBhdHRlcm4gY2FuIGJlIGFueSBvZiB0aGUgc3VwcG9ydGVkXHJcbiAqICBzdHJpbmcgbWF0Y2hpbmcgcGF0dGVybnMob24gdGhlIHRvcCBvZiBwYWdlKS5cclxuICogQGZ1bmN0aW9uIHdhaXRGb3JUZXh0XHJcbiAqIEBwYXJhbSB7U3RyaW5nfEVsZW1lbnR9IGxvY2F0b3IgLSBBbiBlbGVtZW50IGxvY2F0b3IuXHJcbiAqIEBwYXJhbSB7U3RyaW5nfSBwYXR0ZXJuIC0gVGV4dCBwYXR0ZXJuLlxyXG4gKiBAcGFyYW0ge051bWJlcj19IHRpbWVvdXQgLSBUaW1lb3V0IGluIG1pbGxpc2Vjb25kcy4gRGVmYXVsdCBpcyA2MCBzZWNvbmRzLlxyXG4gKiBAZXhhbXBsZSA8Y2FwdGlvbj5bamF2YXNjcmlwdF0gVXNhZ2UgZXhhbXBsZTwvY2FwdGlvbj5cclxuICogd2ViLmluaXQoKTsvL09wZW5zIGJyb3dzZXIgc2Vzc2lvbi5cclxuICogd2ViLm9wZW4oXCJ3d3cueW91cndlYnNpdGUuY29tXCIpOy8vIE9wZW5zIGEgd2Vic2l0ZS5cclxuICogd2ViLndhaXRGb3JUZXh0KFwiaWQ9VGl0bGVcIixcIldlYnNpdGVcIik7Ly9XYWl0cyBmb3IgYW4gZWxlbWVudOKAmXMgdGV4dCB0byAgbWF0Y2ggdG8gZXhwZWN0ZWQgc3RyaW5nLlxyXG4gKi9cclxubW9kdWxlLmV4cG9ydHMgPSBhc3luYyBmdW5jdGlvbihsb2NhdG9yLCBwYXR0ZXJuLCB0aW1lb3V0KSB7XHJcbiAgICB0aGlzLmhlbHBlcnMuYXNzZXJ0QXJndW1lbnQocGF0dGVybiwgJ3BhdHRlcm4nKTtcclxuICAgIHRoaXMuaGVscGVycy5hc3NlcnRBcmd1bWVudFRpbWVvdXQodGltZW91dCwgJ3RpbWVvdXQnKTtcclxuXHJcbiAgICB2YXIgZWwgPSBhd2FpdCB0aGlzLmhlbHBlcnMuZ2V0RWxlbWVudChsb2NhdG9yLCBmYWxzZSwgdGltZW91dCk7XHJcblxyXG4gICAgdmFyIHRleHQ7XHJcbiAgICB0cnkge1xyXG4gICAgICAgIGF3YWl0IHRoaXMuZHJpdmVyLndhaXRVbnRpbChhc3luYygpID0+IHtcclxuICAgICAgICAgICAgdGV4dCA9IGF3YWl0IGVsLmdldFRleHQoKTtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaGVscGVycy5tYXRjaFBhdHRlcm4odGV4dCwgcGF0dGVybik7XHJcbiAgICAgICAgfSxcclxuICAgICAgICB7IHRpbWVvdXQ6ICh0aW1lb3V0ID8gdGltZW91dCA6IHRoaXMud2FpdEZvclRpbWVvdXQpIH0pO1xyXG4gICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgIGlmICh0ZXh0KVxyXG4gICAgICAgICAgICB0ZXh0ID0gdGV4dC5yZXBsYWNlKC9cXG4vZywgJ1xcXFxuJyk7XHJcbiAgICAgICAgdGhyb3cgbmV3IHRoaXMuT3hFcnJvcih0aGlzLmVyckhlbHBlci5lcnJvckNvZGUuVElNRU9VVCwgYEV4cGVjdGVkOiBcIiR7cGF0dGVybn1cIi4gR290OiBcIiR7dGV4dH1cImApO1xyXG4gICAgfVxyXG59O1xyXG4iXX0=
@@ -13,7 +13,7 @@ require("source-map-support/register");
13
13
 
14
14
  /**
15
15
  * @summary Waits for input element's value to match the specified pattern.
16
- * @description Value pattern can be any of the supported
16
+ * @description Value pattern can be any of the supported
17
17
  * string matching patterns(on the top of page).
18
18
  * @function waitForValue
19
19
  * @param {String|Element} locator - An element locator.
@@ -38,8 +38,8 @@ module.exports = async function (locator, pattern, timeout) {
38
38
  timeout: timeout ? timeout : this.waitForTimeout
39
39
  });
40
40
  } catch (e) {
41
- text = text.replace(/\n/g, '\\n');
41
+ if (text) text = text.replace(/\n/g, '\\n');
42
42
  throw new this.OxError(this.errHelper.errorCode.TIMEOUT, `Expected: "${pattern}". Got: "${text}"`);
43
43
  }
44
44
  };
45
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9veF9tb2R1bGVzL21vZHVsZS13ZWIvY29tbWFuZHMvd2FpdEZvclZhbHVlLmpzIl0sIm5hbWVzIjpbIm1vZHVsZSIsImV4cG9ydHMiLCJsb2NhdG9yIiwicGF0dGVybiIsInRpbWVvdXQiLCJoZWxwZXJzIiwiYXNzZXJ0QXJndW1lbnQiLCJhc3NlcnRBcmd1bWVudFRpbWVvdXQiLCJlbCIsImdldEVsZW1lbnQiLCJ0ZXh0IiwiZHJpdmVyIiwid2FpdFVudGlsIiwiZ2V0VmFsdWUiLCJtYXRjaFBhdHRlcm4iLCJ3YWl0Rm9yVGltZW91dCIsImUiLCJyZXBsYWNlIiwiT3hFcnJvciIsImVyckhlbHBlciIsImVycm9yQ29kZSIsIlRJTUVPVVQiXSwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0FBLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQixnQkFBZUMsT0FBZixFQUF3QkMsT0FBeEIsRUFBaUNDLE9BQWpDLEVBQTBDO0FBQ3ZELE9BQUtDLE9BQUwsQ0FBYUMsY0FBYixDQUE0QkgsT0FBNUIsRUFBcUMsU0FBckM7QUFDQSxPQUFLRSxPQUFMLENBQWFFLHFCQUFiLENBQW1DSCxPQUFuQyxFQUE0QyxTQUE1QztBQUVBLE1BQUlJLEVBQUUsR0FBRyxNQUFNLEtBQUtILE9BQUwsQ0FBYUksVUFBYixDQUF3QlAsT0FBeEIsRUFBaUMsS0FBakMsRUFBd0NFLE9BQXhDLENBQWY7QUFFQSxNQUFJTSxJQUFKOztBQUNBLE1BQUk7QUFDQSxVQUFNLEtBQUtDLE1BQUwsQ0FBWUMsU0FBWixDQUFzQixZQUFXO0FBQ25DRixNQUFBQSxJQUFJLEdBQUcsTUFBTUYsRUFBRSxDQUFDSyxRQUFILEVBQWI7QUFDQSxhQUFPLEtBQUtSLE9BQUwsQ0FBYVMsWUFBYixDQUEwQkosSUFBMUIsRUFBZ0NQLE9BQWhDLENBQVA7QUFDSCxLQUhLLEVBSU47QUFBRUMsTUFBQUEsT0FBTyxFQUFHQSxPQUFPLEdBQUdBLE9BQUgsR0FBYSxLQUFLVztBQUFyQyxLQUpNLENBQU47QUFLSCxHQU5ELENBTUUsT0FBT0MsQ0FBUCxFQUFVO0FBQ1JOLElBQUFBLElBQUksR0FBR0EsSUFBSSxDQUFDTyxPQUFMLENBQWEsS0FBYixFQUFvQixLQUFwQixDQUFQO0FBQ0EsVUFBTSxJQUFJLEtBQUtDLE9BQVQsQ0FBaUIsS0FBS0MsU0FBTCxDQUFlQyxTQUFmLENBQXlCQyxPQUExQyxFQUFvRCxjQUFhbEIsT0FBUSxZQUFXTyxJQUFLLEdBQXpGLENBQU47QUFDSDtBQUNKLENBakJEIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogQ29weXJpZ2h0IChDKSAyMDE1LXByZXNlbnQgQ2xvdWRCZWF0IExpbWl0ZWRcclxuICpcclxuICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcclxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcclxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cclxuICovXHJcblxyXG4vKipcclxuICogQHN1bW1hcnkgV2FpdHMgZm9yIGlucHV0IGVsZW1lbnQncyB2YWx1ZSB0byBtYXRjaCB0aGUgc3BlY2lmaWVkIHBhdHRlcm4uXHJcbiAqIEBkZXNjcmlwdGlvbiBWYWx1ZSBwYXR0ZXJuIGNhbiBiZSBhbnkgb2YgdGhlIHN1cHBvcnRlZCBcclxuICogIHN0cmluZyBtYXRjaGluZyBwYXR0ZXJucyhvbiB0aGUgdG9wIG9mIHBhZ2UpLlxyXG4gKiBAZnVuY3Rpb24gd2FpdEZvclZhbHVlXHJcbiAqIEBwYXJhbSB7U3RyaW5nfEVsZW1lbnR9IGxvY2F0b3IgLSBBbiBlbGVtZW50IGxvY2F0b3IuXHJcbiAqIEBwYXJhbSB7U3RyaW5nfSBwYXR0ZXJuIC0gVmFsdWUgcGF0dGVybi5cclxuICogQHBhcmFtIHtOdW1iZXI9fSB0aW1lb3V0IC0gVGltZW91dCBpbiBtaWxsaXNlY29uZHMuIERlZmF1bHQgaXMgNjAgc2Vjb25kcy5cclxuICogQGV4YW1wbGUgPGNhcHRpb24+W2phdmFzY3JpcHRdIFVzYWdlIGV4YW1wbGU8L2NhcHRpb24+XHJcbiAqIHdlYi5pbml0KCk7Ly9PcGVucyBicm93c2VyIHNlc3Npb24uXHJcbiAqIHdlYi5vcGVuKFwid3d3LnlvdXJ3ZWJzaXRlLmNvbVwiKTsvLyBPcGVucyBhIHdlYnNpdGUuXHJcbiAqIHdlYi53YWl0Rm9yVmFsdWUoXCJpZD1UaXRsZVwiLFwiV2Vic2l0ZVwiKTsvL1dhaXRzIGZvciBhbiBlbGVtZW504oCZcyB2YWx1ZSB0byAgbWF0Y2ggdG8gZXhwZWN0ZWQgc3RyaW5nLlxyXG4gKi9cclxubW9kdWxlLmV4cG9ydHMgPSBhc3luYyBmdW5jdGlvbihsb2NhdG9yLCBwYXR0ZXJuLCB0aW1lb3V0KSB7XHJcbiAgICB0aGlzLmhlbHBlcnMuYXNzZXJ0QXJndW1lbnQocGF0dGVybiwgJ3BhdHRlcm4nKTtcclxuICAgIHRoaXMuaGVscGVycy5hc3NlcnRBcmd1bWVudFRpbWVvdXQodGltZW91dCwgJ3RpbWVvdXQnKTtcclxuXHJcbiAgICB2YXIgZWwgPSBhd2FpdCB0aGlzLmhlbHBlcnMuZ2V0RWxlbWVudChsb2NhdG9yLCBmYWxzZSwgdGltZW91dCk7XHJcblxyXG4gICAgdmFyIHRleHQ7XHJcbiAgICB0cnkge1xyXG4gICAgICAgIGF3YWl0IHRoaXMuZHJpdmVyLndhaXRVbnRpbChhc3luYygpID0+IHtcclxuICAgICAgICAgICAgdGV4dCA9IGF3YWl0IGVsLmdldFZhbHVlKCk7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmhlbHBlcnMubWF0Y2hQYXR0ZXJuKHRleHQsIHBhdHRlcm4pO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgeyB0aW1lb3V0OiAodGltZW91dCA/IHRpbWVvdXQgOiB0aGlzLndhaXRGb3JUaW1lb3V0KSB9KTtcclxuICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICB0ZXh0ID0gdGV4dC5yZXBsYWNlKC9cXG4vZywgJ1xcXFxuJyk7XHJcbiAgICAgICAgdGhyb3cgbmV3IHRoaXMuT3hFcnJvcih0aGlzLmVyckhlbHBlci5lcnJvckNvZGUuVElNRU9VVCwgYEV4cGVjdGVkOiBcIiR7cGF0dGVybn1cIi4gR290OiBcIiR7dGV4dH1cImApO1xyXG4gICAgfVxyXG59O1xyXG4iXX0=
45
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9veF9tb2R1bGVzL21vZHVsZS13ZWIvY29tbWFuZHMvd2FpdEZvclZhbHVlLmpzIl0sIm5hbWVzIjpbIm1vZHVsZSIsImV4cG9ydHMiLCJsb2NhdG9yIiwicGF0dGVybiIsInRpbWVvdXQiLCJoZWxwZXJzIiwiYXNzZXJ0QXJndW1lbnQiLCJhc3NlcnRBcmd1bWVudFRpbWVvdXQiLCJlbCIsImdldEVsZW1lbnQiLCJ0ZXh0IiwiZHJpdmVyIiwid2FpdFVudGlsIiwiZ2V0VmFsdWUiLCJtYXRjaFBhdHRlcm4iLCJ3YWl0Rm9yVGltZW91dCIsImUiLCJyZXBsYWNlIiwiT3hFcnJvciIsImVyckhlbHBlciIsImVycm9yQ29kZSIsIlRJTUVPVVQiXSwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0FBLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQixnQkFBZUMsT0FBZixFQUF3QkMsT0FBeEIsRUFBaUNDLE9BQWpDLEVBQTBDO0FBQ3ZELE9BQUtDLE9BQUwsQ0FBYUMsY0FBYixDQUE0QkgsT0FBNUIsRUFBcUMsU0FBckM7QUFDQSxPQUFLRSxPQUFMLENBQWFFLHFCQUFiLENBQW1DSCxPQUFuQyxFQUE0QyxTQUE1QztBQUVBLE1BQUlJLEVBQUUsR0FBRyxNQUFNLEtBQUtILE9BQUwsQ0FBYUksVUFBYixDQUF3QlAsT0FBeEIsRUFBaUMsS0FBakMsRUFBd0NFLE9BQXhDLENBQWY7QUFFQSxNQUFJTSxJQUFKOztBQUNBLE1BQUk7QUFDQSxVQUFNLEtBQUtDLE1BQUwsQ0FBWUMsU0FBWixDQUFzQixZQUFXO0FBQ25DRixNQUFBQSxJQUFJLEdBQUcsTUFBTUYsRUFBRSxDQUFDSyxRQUFILEVBQWI7QUFDQSxhQUFPLEtBQUtSLE9BQUwsQ0FBYVMsWUFBYixDQUEwQkosSUFBMUIsRUFBZ0NQLE9BQWhDLENBQVA7QUFDSCxLQUhLLEVBSU47QUFBRUMsTUFBQUEsT0FBTyxFQUFHQSxPQUFPLEdBQUdBLE9BQUgsR0FBYSxLQUFLVztBQUFyQyxLQUpNLENBQU47QUFLSCxHQU5ELENBTUUsT0FBT0MsQ0FBUCxFQUFVO0FBQ1IsUUFBSU4sSUFBSixFQUNJQSxJQUFJLEdBQUdBLElBQUksQ0FBQ08sT0FBTCxDQUFhLEtBQWIsRUFBb0IsS0FBcEIsQ0FBUDtBQUNKLFVBQU0sSUFBSSxLQUFLQyxPQUFULENBQWlCLEtBQUtDLFNBQUwsQ0FBZUMsU0FBZixDQUF5QkMsT0FBMUMsRUFBb0QsY0FBYWxCLE9BQVEsWUFBV08sSUFBSyxHQUF6RixDQUFOO0FBQ0g7QUFDSixDQWxCRCIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIENvcHlyaWdodCAoQykgMjAxNS1wcmVzZW50IENsb3VkQmVhdCBMaW1pdGVkXHJcbiAqXHJcbiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XHJcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XHJcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXHJcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIEBzdW1tYXJ5IFdhaXRzIGZvciBpbnB1dCBlbGVtZW50J3MgdmFsdWUgdG8gbWF0Y2ggdGhlIHNwZWNpZmllZCBwYXR0ZXJuLlxyXG4gKiBAZGVzY3JpcHRpb24gVmFsdWUgcGF0dGVybiBjYW4gYmUgYW55IG9mIHRoZSBzdXBwb3J0ZWRcclxuICogIHN0cmluZyBtYXRjaGluZyBwYXR0ZXJucyhvbiB0aGUgdG9wIG9mIHBhZ2UpLlxyXG4gKiBAZnVuY3Rpb24gd2FpdEZvclZhbHVlXHJcbiAqIEBwYXJhbSB7U3RyaW5nfEVsZW1lbnR9IGxvY2F0b3IgLSBBbiBlbGVtZW50IGxvY2F0b3IuXHJcbiAqIEBwYXJhbSB7U3RyaW5nfSBwYXR0ZXJuIC0gVmFsdWUgcGF0dGVybi5cclxuICogQHBhcmFtIHtOdW1iZXI9fSB0aW1lb3V0IC0gVGltZW91dCBpbiBtaWxsaXNlY29uZHMuIERlZmF1bHQgaXMgNjAgc2Vjb25kcy5cclxuICogQGV4YW1wbGUgPGNhcHRpb24+W2phdmFzY3JpcHRdIFVzYWdlIGV4YW1wbGU8L2NhcHRpb24+XHJcbiAqIHdlYi5pbml0KCk7Ly9PcGVucyBicm93c2VyIHNlc3Npb24uXHJcbiAqIHdlYi5vcGVuKFwid3d3LnlvdXJ3ZWJzaXRlLmNvbVwiKTsvLyBPcGVucyBhIHdlYnNpdGUuXHJcbiAqIHdlYi53YWl0Rm9yVmFsdWUoXCJpZD1UaXRsZVwiLFwiV2Vic2l0ZVwiKTsvL1dhaXRzIGZvciBhbiBlbGVtZW504oCZcyB2YWx1ZSB0byAgbWF0Y2ggdG8gZXhwZWN0ZWQgc3RyaW5nLlxyXG4gKi9cclxubW9kdWxlLmV4cG9ydHMgPSBhc3luYyBmdW5jdGlvbihsb2NhdG9yLCBwYXR0ZXJuLCB0aW1lb3V0KSB7XHJcbiAgICB0aGlzLmhlbHBlcnMuYXNzZXJ0QXJndW1lbnQocGF0dGVybiwgJ3BhdHRlcm4nKTtcclxuICAgIHRoaXMuaGVscGVycy5hc3NlcnRBcmd1bWVudFRpbWVvdXQodGltZW91dCwgJ3RpbWVvdXQnKTtcclxuXHJcbiAgICB2YXIgZWwgPSBhd2FpdCB0aGlzLmhlbHBlcnMuZ2V0RWxlbWVudChsb2NhdG9yLCBmYWxzZSwgdGltZW91dCk7XHJcblxyXG4gICAgdmFyIHRleHQ7XHJcbiAgICB0cnkge1xyXG4gICAgICAgIGF3YWl0IHRoaXMuZHJpdmVyLndhaXRVbnRpbChhc3luYygpID0+IHtcclxuICAgICAgICAgICAgdGV4dCA9IGF3YWl0IGVsLmdldFZhbHVlKCk7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmhlbHBlcnMubWF0Y2hQYXR0ZXJuKHRleHQsIHBhdHRlcm4pO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgeyB0aW1lb3V0OiAodGltZW91dCA/IHRpbWVvdXQgOiB0aGlzLndhaXRGb3JUaW1lb3V0KSB9KTtcclxuICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICBpZiAodGV4dClcclxuICAgICAgICAgICAgdGV4dCA9IHRleHQucmVwbGFjZSgvXFxuL2csICdcXFxcbicpO1xyXG4gICAgICAgIHRocm93IG5ldyB0aGlzLk94RXJyb3IodGhpcy5lcnJIZWxwZXIuZXJyb3JDb2RlLlRJTUVPVVQsIGBFeHBlY3RlZDogXCIke3BhdHRlcm59XCIuIEdvdDogXCIke3RleHR9XCJgKTtcclxuICAgIH1cclxufTtcclxuIl19
@@ -89,6 +89,26 @@ class OxygenWorker extends EventEmitter {
89
89
  try {
90
90
  require.cache[require.resolve(scriptPath)] && delete require.cache[require.resolve(scriptPath)];
91
91
 
92
+ const Module = require('module');
93
+
94
+ const originalRequire = Module.prototype.require;
95
+
96
+ Module.prototype.require = function () {
97
+ const script = arguments['0'];
98
+
99
+ try {
100
+ if (script && script.startsWith('.')) {
101
+ var resolvedPath = require.resolve(path.resolve(path.dirname(scriptPath), script));
102
+
103
+ if (require.cache[resolvedPath]) {
104
+ delete require.cache[resolvedPath];
105
+ }
106
+ }
107
+ } catch (ex) {}
108
+
109
+ return originalRequire.apply(this, arguments);
110
+ };
111
+
92
112
  require(scriptPath);
93
113
  } catch (e) {
94
114
  if (e && e.type && e.type === errorHelper.errorCode.ASSERT_PASSED) {} else {
@@ -243,4 +263,4 @@ class OxygenWorker extends EventEmitter {
243
263
  }
244
264
 
245
265
  exports.default = OxygenWorker;
246
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ydW5uZXJzL294eWdlbi9PeHlnZW5Xb3JrZXIuanMiXSwibmFtZXMiOlsiRmliZXIiLCJyZXF1aXJlIiwicGF0aCIsIkV2ZW50RW1pdHRlciIsIk94eWdlbiIsImRlZmF1bHQiLCJveHV0aWwiLCJlcnJvckhlbHBlciIsIm1vZHVsZSIsImdsb2JhbCIsImJyb3dzZXIiLCJPeHlnZW5Xb3JrZXIiLCJjb25zdHJ1Y3RvciIsInJlcG9ydGVyIiwibG9nZ2VyIiwiX294eWdlbiIsIl9vcHRzIiwiX2xvZ2dlciIsIl90ZXN0SG9va3MiLCJfcmVwb3J0ZXIiLCJfcnVuSWQiLCJpbml0IiwicnVuSWQiLCJvcHRpb25zIiwiY2FwcyIsIl9jd2QiLCJjd2QiLCJwcm9jZXNzIiwib24iLCJfaGFuZGxlQmVmb3JlQ29tbWFuZCIsImJpbmQiLCJfaGFuZGxlQWZ0ZXJDb21tYW5kIiwiX2hhbmRsZUxvZ0VudHJ5IiwibG9hZFRlc3RIb29rcyIsImRlYnVnIiwiZSIsInRvU3RyaW5nIiwicnVuIiwic2NyaXB0UGF0aCIsImNvbnRleHQiLCJwb0ZpbGUiLCJFcnJvciIsImxvYWRQYWdlT2JqZWN0RmlsZSIsIl9zdGVwcyIsImlzQWJzb2x1dGUiLCJyZXNvbHZlIiwiZXJyb3IiLCJvbkJlZm9yZUNhc2UiLCJfcnVuRm5JbkZpYmVyQ29udGV4dCIsImNhY2hlIiwidHlwZSIsImVycm9yQ29kZSIsIkFTU0VSVF9QQVNTRUQiLCJfd2FpdFN0ZXBSZXN1bHQiLCJnZXRGYWlsdXJlRnJvbUVycm9yIiwibW9kdWxlQ2FwcyIsImdldE1vZHVsZXNDYXBhYmlsaXRpZXMiLCJvbkFmdGVyQ2FzZSIsInJlc3VsdFN0b3JlIiwicmVzdWx0cyIsInJlc2V0UmVzdWx0cyIsIm94Q29udGV4dCIsInZhcnMiLCJkaXNwb3NlIiwic3RhdHVzIiwiZGlzcG9zZU1vZHVsZXMiLCJjYWxsVGVzdEhvb2siLCJob29rTmFtZSIsImhvb2tBcmdzIiwiZXhlY3V0ZVRlc3RIb29rIiwiZm4iLCJQcm9taXNlIiwicmVqZWN0IiwicmVzdWx0IiwiYXBwbHkiLCJlcnIiLCJyZXBsU3RhcnQiLCJjb21tYW5kUmVzb2x2ZSIsInNldFRpbWVvdXQiLCJtb2R1bGVzIiwia2V5cyIsIk9iamVjdCIsIm1hcCIsIml0ZW0iLCJkcml2ZXIiLCJlbWl0IiwicHVzaCIsImxldmVsIiwibWVzc2FnZSIsInNyYyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBWUEsTUFBTUEsS0FBSyxHQUFHQyxPQUFPLENBQUMsUUFBRCxDQUFyQjs7QUFDQSxNQUFNQyxJQUFJLEdBQUdELE9BQU8sQ0FBQyxNQUFELENBQXBCOztBQUNBLE1BQU07QUFBRUUsRUFBQUE7QUFBRixJQUFtQkYsT0FBTyxDQUFDLFFBQUQsQ0FBaEM7O0FBRUEsTUFBTUcsTUFBTSxHQUFHSCxPQUFPLENBQUMsdUJBQUQsQ0FBUCxDQUFpQ0ksT0FBaEQ7O0FBQ0EsTUFBTUMsTUFBTSxHQUFHTCxPQUFPLENBQUMsZ0JBQUQsQ0FBdEI7O0FBQ0EsTUFBTU0sV0FBVyxHQUFHTixPQUFPLENBQUMscUJBQUQsQ0FBM0I7O0FBR0FBLE9BQU8sR0FBR0EsT0FBTyxDQUFDLEtBQUQsQ0FBUCxDQUFlTyxNQUFmLENBQVY7QUFHQUMsTUFBTSxDQUFDQyxPQUFQLEdBQWlCLEVBQWpCOztBQUVlLE1BQU1DLFlBQU4sU0FBMkJSLFlBQTNCLENBQXdDO0FBQ25EUyxFQUFBQSxXQUFXLENBQUVDLFFBQUYsRUFBWUMsTUFBWixFQUFvQjtBQUMzQjtBQUNBLFNBQUtDLE9BQUwsR0FBZSxJQUFmO0FBQ0EsU0FBS0MsS0FBTCxHQUFhLElBQWI7QUFDQSxTQUFLQyxPQUFMLEdBQWVILE1BQWY7QUFDQSxTQUFLSSxVQUFMLEdBQWtCLEVBQWxCO0FBQ0EsU0FBS0MsU0FBTCxHQUFpQk4sUUFBakI7QUFDQSxTQUFLTyxNQUFMLEdBQWMsSUFBZDtBQUNIOztBQUVTLFFBQUpDLElBQUksQ0FBQ0MsS0FBRCxFQUFRQyxPQUFSLEVBQWlCQyxJQUFqQixFQUF1QjtBQUM3QixTQUFLSixN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RCxDQUFDLENBQUNxRCxPQUF4QixFQUFpQ3JELENBQUMsQ0FBQ3NELEdBQW5DLEVBQXdDdEQsQ0FBQyxDQUFDd0MsR0FBMUM7QUFDSCxLQUZELE1BRU87QUFDSCxXQUFLMUQsT0FBTCxDQUFha0IsQ0FBQyxDQUFDb0QsS0FBZixFQUFzQnBELENBQUMsQ0FBQ3FELE9BQXhCLEVBQWlDckQsQ0FBQyxDQUFDc0QsR0FBbkM7QUFDSDtBQUNKOztBQTlNa0QiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTktcHJlc2VudCBDbG91ZEJlYXQgTGltaXRlZFxyXG4gKlxyXG4gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxyXG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxyXG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxyXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxyXG4gKlxyXG4gKiBCYXNlZCBvbjpcclxuICogQ29weXJpZ2h0IChjKSBPcGVuSlMgRm91bmRhdGlvbiBhbmQgb3RoZXIgY29udHJpYnV0b3JzLiBMaWNlbnNlZCB1bmRlciBNSVQuXHJcbiAqL1xyXG5cclxuY29uc3QgRmliZXIgPSByZXF1aXJlKCdmaWJlcnMnKTtcclxuY29uc3QgcGF0aCA9IHJlcXVpcmUoJ3BhdGgnKTtcclxuY29uc3QgeyBFdmVudEVtaXR0ZXIgfSA9IHJlcXVpcmUoJ2V2ZW50cycpO1xyXG5cclxuY29uc3QgT3h5Z2VuID0gcmVxdWlyZSgnLi4vLi4vY29yZS9PeHlnZW5Db3JlJykuZGVmYXVsdDtcclxuY29uc3Qgb3h1dGlsID0gcmVxdWlyZSgnLi4vLi4vbGliL3V0aWwnKTtcclxuY29uc3QgZXJyb3JIZWxwZXIgPSByZXF1aXJlKCcuLi8uLi9lcnJvcnMvaGVscGVyJyk7XHJcblxyXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tZ2xvYmFsLWFzc2lnblxyXG5yZXF1aXJlID0gcmVxdWlyZSgnZXNtJykobW9kdWxlKTtcclxuXHJcbi8vIG1vY2t1cCBnbG9iYmFsLmJyb3dzZXIgb2JqZWN0IGZvciBpbnRlcm5hbCBXRElPIGZ1bmN0aW9ucyB0byB3b3JrIHByb3Blcmx5XHJcbmdsb2JhbC5icm93c2VyID0ge307XHJcblxyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBPeHlnZW5Xb3JrZXIgZXh0ZW5kcyBFdmVudEVtaXR0ZXIge1xyXG4gICAgY29uc3RydWN0b3IgKHJlcG9ydGVyLCBsb2dnZXIpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIHRoaXMuX294eWdlbiA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5fb3B0cyA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5fbG9nZ2VyID0gbG9nZ2VyO1xyXG4gICAgICAgIHRoaXMuX3Rlc3RIb29rcyA9IHt9O1xyXG4gICAgICAgIHRoaXMuX3JlcG9ydGVyID0gcmVwb3J0ZXI7XHJcbiAgICAgICAgdGhpcy5fcnVuSWQgPSBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIGluaXQocnVuSWQsIG9wdGlvbnMsIGNhcHMpIHtcclxuICAgICAgICB0aGlzLl9ydW5JZCA9IHJ1bklkO1xyXG4gICAgICAgIHRoaXMuX29wdHMgPSBvcHRpb25zO1xyXG4gICAgICAgIHRoaXMuX2N3ZCA9IHRoaXMuX29wdHMuY3dkIHx8IHByb2Nlc3MuY3dkKCk7XHJcblxyXG4gICAgICAgIGlmICghdGhpcy5fb3h5Z2VuKSB7XHJcbiAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9veHlnZW4gPSBuZXcgT3h5Z2VuKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9veHlnZW4ub24oJ2NvbW1hbmQ6YmVmb3JlJywgdGhpcy5faGFuZGxlQmVmb3JlQ29tbWFuZC5iaW5kKHRoaXMpKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuX294eWdlbi5vbignY29tbWFuZDphZnRlcicsIHRoaXMuX2hhbmRsZUFmdGVyQ29tbWFuZC5iaW5kKHRoaXMpKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuX294eWdlbi5vbignbG9nJywgdGhpcy5faGFuZGxlTG9nRW50cnkuYmluZCh0aGlzKSk7XHJcbiAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLl9veHlnZW4uaW5pdChvcHRpb25zLCBjYXBzKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuX3Rlc3RIb29rcyA9IG94dXRpbC5sb2FkVGVzdEhvb2tzKG9wdGlvbnMpO1xyXG4gICAgICAgICAgICAgICAgLy9tYWtlTW9kdWxlc0dsb2JhbChvcHRpb25zKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2xvZ2dlci5kZWJ1ZygnT3h5Z2VuIGluaXRpYWxpemF0aW9uIGNvbXBsZXRlZCcpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9sb2dnZXIuZGVidWcoYE94eWdlbiBpbml0aWFsaXphdGlvbiBmYWlsZWQ6ICR7ZS50b1N0cmluZygpfWApO1xyXG4gICAgICAgICAgICAgICAgdGhyb3cgZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBydW4oeyBzY3JpcHRQYXRoLCBjb250ZXh0LCBwb0ZpbGUgPSBudWxsIH0pIHtcclxuICAgICAgICAvLyBhc3NpZ24gdXAgdG8gZGF0ZSBjb250ZXh0IHRvIE94eWdlbiBDb3JlIHRvIHJlZmxlY3QgbmV3IHBhcmFtZXRlcnMgYW5kIG90aGVyIGNvbnRleHQgZGF0YVxyXG4gICAgICAgIGlmICghdGhpcy5fb3h5Z2VuKSB7XHJcbiAgICAgICAgICAgIHRocm93IEVycm9yICgnT3h5Z2VuIGlzIG5vdCBpbml0aWFsaXplZCcpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLl9veHlnZW4uY29udGV4dCA9IGNvbnRleHQ7XHJcbiAgICAgICAgdGhpcy5fb3h5Z2VuLmxvYWRQYWdlT2JqZWN0RmlsZShwb0ZpbGUpO1xyXG4gICAgICAgIHRoaXMuX3N0ZXBzID0gW107XHJcbiAgICAgICAgaWYgKHRoaXMuX2N3ZCAmJiAhcGF0aC5pc0Fic29sdXRlKHNjcmlwdFBhdGgpKSB7XHJcbiAgICAgICAgICAgIHNjcmlwdFBhdGggPSBwYXRoLnJlc29sdmUodGhpcy5fY3dkLCBzY3JpcHRQYXRoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgbGV0IGVycm9yID0gbnVsbDtcclxuICAgICAgICAvLyBsb2FkIGFuZCBydW4gdGhlIHRlc3Qgc2NyaXB0XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgdGhpcy5fb3h5Z2VuICYmIHRoaXMuX294eWdlbi5vbkJlZm9yZUNhc2UgJiYgYXdhaXQgdGhpcy5fb3h5Z2VuLm9uQmVmb3JlQ2FzZShjb250ZXh0KTtcclxuICAgICAgICAgICAgYXdhaXQgdGhpcy5fcnVuRm5JbkZpYmVyQ29udGV4dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIG1ha2Ugc3VyZSB0byBjbGVhciByZXF1aXJlIGNhY2hlIHNvIHRoZSBzY3JpcHQgd2lsbCBiZSBleGVjdXRlZCBvbiBlYWNoIGl0ZXJhdGlvblxyXG4gICAgICAgICAgICAgICAgICAgIHJlcXVpcmUuY2FjaGVbcmVxdWlyZS5yZXNvbHZlKHNjcmlwdFBhdGgpXSAmJiBkZWxldGUgcmVxdWlyZS5jYWNoZVtyZXF1aXJlLnJlc29sdmUoc2NyaXB0UGF0aCldO1xyXG4gICAgICAgICAgICAgICAgICAgIHJlcXVpcmUoc2NyaXB0UGF0aCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIGVycm9yID0gZS5jb2RlICYmIGUuY29kZSA9PT0gJ01PRFVMRV9OT1RfRk9VTkQnID8gbmV3IFNjcmlwdE5vdEZvdW5kRXJyb3Ioc2NyaXB0UGF0aCkgOiBlO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBpZiAoZSAmJiBlLnR5cGUgJiYgZS50eXBlID09PSBlcnJvckhlbHBlci5lcnJvckNvZGUuQVNTRVJUX1BBU1NFRCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvL2lnbm9yZVxyXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yID0gZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICAgICAgZXJyb3IgPSBlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gSW4gc29tZSBjYXNlcyBzdGVwIHJlc3VsdCBnZW5lcmF0aW9uIHRha2VzIHNvbWUgdGltZSB0byBtYWtlIHNjcmVlbnNob3RcclxuICAgICAgICBhd2FpdCB0aGlzLl9veHlnZW4uX3dhaXRTdGVwUmVzdWx0KCk7XHJcblxyXG4gICAgICAgIGlmIChlcnJvcikge1xyXG4gICAgICAgICAgICBlcnJvciA9IGVycm9ySGVscGVyLmdldEZhaWx1cmVGcm9tRXJyb3IoZXJyb3IpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGV0IG1vZHVsZUNhcHMgPSB7fTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuX294eWdlbiAmJiB0aGlzLl9veHlnZW4uZ2V0TW9kdWxlc0NhcGFiaWxpdGllcykge1xyXG4gICAgICAgICAgICBtb2R1bGVDYXBzID0gdGhpcy5fb3h5Z2VuLmdldE1vZHVsZXNDYXBhYmlsaXRpZXMoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuX294eWdlbiAmJiB0aGlzLl9veHlnZW4ub25BZnRlckNhc2UgJiYgYXdhaXQgdGhpcy5fb3h5Z2VuLm9uQWZ0ZXJDYXNlKGVycm9yKTtcclxuXHJcbiAgICAgICAgLy8gY2xvbmUgdGhlIHJlc3VsdHMsIG90aGVyd2lzZSByZXN1bHRTdG9yZSB3aWxsIGJlIGVtcHR5IGFmdGVyIHRoZSBmb2xsb3dpbmcgdGhpcy5fb3h5Z2VuLnJlc2V0UmVzdWx0cygpIGNhbGxcclxuXHJcbiAgICAgICAgbGV0IHJlc3VsdFN0b3JlID0ge307XHJcblxyXG4gICAgICAgIGlmICh0aGlzLl9veHlnZW4gJiYgdGhpcy5fb3h5Z2VuLnJlc3VsdHMpIHtcclxuICAgICAgICAgICAgcmVzdWx0U3RvcmUgPSB7IC4uLnRoaXMuX294eWdlbi5yZXN1bHRzIH07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5fb3h5Z2VuICYmIHRoaXMuX294eWdlbi5yZXNldFJlc3VsdHMpIHtcclxuICAgICAgICAgICAgLy8gcmVzZXQgc3RlcHMgYW5kIG90aGVyIHJlc3VsdCBkYXRhXHJcbiAgICAgICAgICAgIHRoaXMuX294eWdlbi5yZXNldFJlc3VsdHMoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5fc3RlcHMgPSBudWxsO1xyXG5cclxuICAgICAgICBsZXQgb3hDb250ZXh0ID0ge307XHJcbiAgICAgICAgaWYgKHRoaXMuX294eWdlbiAmJiB0aGlzLl9veHlnZW4uY29udGV4dCkge1xyXG4gICAgICAgICAgICBveENvbnRleHQgPSB0aGlzLl9veHlnZW4uY29udGV4dDtcclxuICAgICAgICB9XHJcbiAgICAgICAgb3hDb250ZXh0LnZhcnMgPSBnbG9iYWwudmFycztcclxuXHJcbiAgICAgICAgcmV0dXJuIHsgZXJyb3IsIG1vZHVsZUNhcHMsIHJlc3VsdFN0b3JlLCBjb250ZXh0OiBveENvbnRleHQgfTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBkaXNwb3NlKHN0YXR1cyA9IG51bGwpIHtcclxuICAgICAgICBpZiAodGhpcy5fb3h5Z2VuKSB7XHJcbiAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLl9veHlnZW4uZGlzcG9zZShzdGF0dXMpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9sb2dnZXIuZXJyb3IoJ0ZhaWxlZCB0byBkaXNwb3NlIE94eWdlbicsIG51bGwsIGUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGZpbmFsbHkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fc3RlcHMgPSBudWxsO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIGRpc3Bvc2VNb2R1bGVzKHN0YXR1cyA9IG51bGwpIHtcclxuICAgICAgICBpZiAodGhpcy5fb3h5Z2VuKSB7XHJcbiAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLl9veHlnZW4uZGlzcG9zZU1vZHVsZXMoc3RhdHVzKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fbG9nZ2VyLmVycm9yKCdGYWlsZWQgdG8gZGlzcG9zZSBPeHlnZW4gbW9kdWxlcycsIG51bGwsIGUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGZpbmFsbHkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fb3h5Z2VuLnJlc2V0UmVzdWx0cygpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIGNhbGxUZXN0SG9vayhob29rTmFtZSwgaG9va0FyZ3MpIHtcclxuICAgICAgICBpZiAoIXRoaXMuX3Rlc3RIb29rcyB8fCAhdGhpcy5fdGVzdEhvb2tzW2hvb2tOYW1lXSB8fCB0eXBlb2YgdGhpcy5fdGVzdEhvb2tzW2hvb2tOYW1lXSAhPT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEhvb2sgZG9lcyBub3QgZXhpc3Q6ICR7aG9va05hbWV9YCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGF3YWl0IG94dXRpbC5leGVjdXRlVGVzdEhvb2sodGhpcy5fdGVzdEhvb2tzLCBob29rTmFtZSwgaG9va0FyZ3MpO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIF9ydW5GbkluRmliZXJDb250ZXh0IChmbikge1xyXG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiBGaWJlcigoKSA9PiB7XHJcbiAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSBmbi5hcHBseSh0aGlzKTtcclxuICAgICAgICAgICAgICAgIHJldHVybiByZXNvbHZlKHJlc3VsdCk7XHJcbiAgICAgICAgICAgIH0gY2F0Y2ggKGVycikge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlamVjdChlcnIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSkucnVuKCkpO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIHJlcGxTdGFydCgpIHtcclxuICAgICAgICBsZXQgY29tbWFuZFJlc29sdmUgPSAoKSA9PiB7IH07XHJcblxyXG4gICAgICAgIHNldFRpbWVvdXQoYXN5bmMoKSA9PiB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLl9veHlnZW4gJiYgdGhpcy5fb3h5Z2VuLm1vZHVsZXMpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyh0aGlzLl9veHlnZW4ubW9kdWxlcyk7XHJcbiAgICAgICAgICAgICAgICBsZXQgZGVidWc7XHJcbiAgICAgICAgICAgICAgICBrZXlzLm1hcCgoaXRlbSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGRyaXZlciA9IHRoaXMuX294eWdlbi5tb2R1bGVzW2l0ZW1dWydnZXREcml2ZXInXSAmJiB0aGlzLl9veHlnZW4ubW9kdWxlc1tpdGVtXVsnZ2V0RHJpdmVyJ10oKTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoZHJpdmVyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlYnVnID0gdGhpcy5fb3h5Z2VuLm1vZHVsZXNbaXRlbV1bJ2RlYnVnJ107XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKGRlYnVnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgZGVidWcoKTtcclxuICAgICAgICAgICAgICAgICAgICBjb21tYW5kUmVzb2x2ZSgpO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBjb21tYW5kUmVzb2x2ZSgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgY29tbWFuZFJlc29sdmUoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0sIDEwKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiAoY29tbWFuZFJlc29sdmUgPSByZXNvbHZlKSk7XHJcbiAgICB9XHJcblxyXG4gICAgX2hhbmRsZUJlZm9yZUNvbW1hbmQoZSkge1xyXG4gICAgICAgIGlmICghZSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuZW1pdCgnY29tbWFuZDpiZWZvcmUnLCBlKTtcclxuICAgIH1cclxuXHJcbiAgICBfaGFuZGxlQWZ0ZXJDb21tYW5kKGUpIHtcclxuICAgICAgICBpZiAoIWUgfHwgIWUucmVzdWx0KSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuX3N0ZXBzICYmIHRoaXMuX3N0ZXBzLnB1c2goZS5yZXN1bHQpO1xyXG4gICAgICAgIHRoaXMuZW1pdCgnY29tbWFuZDphZnRlcicsIGUpO1xyXG4gICAgfVxyXG5cclxuICAgIF9oYW5kbGVMb2dFbnRyeShlKSB7XHJcbiAgICAgICAgaWYgKCFlIHx8ICFlLmxldmVsIHx8ICFlLm1lc3NhZ2UpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoZSAmJiBlLmxldmVsICYmIGUubGV2ZWwgPT09ICdlcnJvcicpIHtcclxuICAgICAgICAgICAgdGhpcy5fbG9nZ2VyW2UubGV2ZWxdKGUubWVzc2FnZSwgZS5zcmMsIGUuZXJyKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLl9sb2dnZXJbZS5sZXZlbF0oZS5tZXNzYWdlLCBlLnNyYyk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiJdfQ==
266
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ydW5uZXJzL294eWdlbi9PeHlnZW5Xb3JrZXIuanMiXSwibmFtZXMiOlsiRmliZXIiLCJyZXF1aXJlIiwicGF0aCIsIkV2ZW50RW1pdHRlciIsIk94eWdlbiIsImRlZmF1bHQiLCJveHV0aWwiLCJlcnJvckhlbHBlciIsIm1vZHVsZSIsImdsb2JhbCIsImJyb3dzZXIiLCJPeHlnZW5Xb3JrZXIiLCJjb25zdHJ1Y3RvciIsInJlcG9ydGVyIiwibG9nZ2VyIiwiX294eWdlbiIsIl9vcHRzIiwiX2xvZ2dlciIsIl90ZXN0SG9va3MiLCJfcmVwb3J0ZXIiLCJfcnVuSWQiLCJpbml0IiwicnVuSWQiLCJvcHRpb25zIiwiY2FwcyIsIl9jd2QiLCJjd2QiLCJwcm9jZXNzIiwib24iLCJfaGFuZGxlQmVmb3JlQ29tbWFuZCIsImJpbmQiLCJfaGFuZGxlQWZ0ZXJDb21tYW5kIiwiX2hhbmRsZUxvZ0VudHJ5IiwibG9hZFRlc3RIb29rcyIsImRlYnVnIiwiZSIsInRvU3RyaW5nIiwicnVuIiwic2NyaXB0UGF0aCIsImNvbnRleHQiLCJwb0ZpbGUiLCJFcnJvciIsImxvYWRQYWdlT2JqZWN0RmlsZSIsIl9zdGVwcyIsImlzQWJzb2x1dGUiLCJyZXNvbHZlIiwiZXJyb3IiLCJvbkJlZm9yZUNhc2UiLCJfcnVuRm5JbkZpYmVyQ29udGV4dCIsImNhY2hlIiwiTW9kdWxlIiwib3JpZ2luYWxSZXF1aXJlIiwicHJvdG90eXBlIiwic2NyaXB0IiwiYXJndW1lbnRzIiwic3RhcnRzV2l0aCIsInJlc29sdmVkUGF0aCIsImRpcm5hbWUiLCJleCIsImFwcGx5IiwidHlwZSIsImVycm9yQ29kZSIsIkFTU0VSVF9QQVNTRUQiLCJfd2FpdFN0ZXBSZXN1bHQiLCJnZXRGYWlsdXJlRnJvbUVycm9yIiwibW9kdWxlQ2FwcyIsImdldE1vZHVsZXNDYXBhYmlsaXRpZXMiLCJvbkFmdGVyQ2FzZSIsInJlc3VsdFN0b3JlIiwicmVzdWx0cyIsInJlc2V0UmVzdWx0cyIsIm94Q29udGV4dCIsInZhcnMiLCJkaXNwb3NlIiwic3RhdHVzIiwiZGlzcG9zZU1vZHVsZXMiLCJjYWxsVGVzdEhvb2siLCJob29rTmFtZSIsImhvb2tBcmdzIiwiZXhlY3V0ZVRlc3RIb29rIiwiZm4iLCJQcm9taXNlIiwicmVqZWN0IiwicmVzdWx0IiwiZXJyIiwicmVwbFN0YXJ0IiwiY29tbWFuZFJlc29sdmUiLCJzZXRUaW1lb3V0IiwibW9kdWxlcyIsImtleXMiLCJPYmplY3QiLCJtYXAiLCJpdGVtIiwiZHJpdmVyIiwiZW1pdCIsInB1c2giLCJsZXZlbCIsIm1lc3NhZ2UiLCJzcmMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQVlBLE1BQU1BLEtBQUssR0FBR0MsT0FBTyxDQUFDLFFBQUQsQ0FBckI7O0FBQ0EsTUFBTUMsSUFBSSxHQUFHRCxPQUFPLENBQUMsTUFBRCxDQUFwQjs7QUFDQSxNQUFNO0FBQUVFLEVBQUFBO0FBQUYsSUFBbUJGLE9BQU8sQ0FBQyxRQUFELENBQWhDOztBQUVBLE1BQU1HLE1BQU0sR0FBR0gsT0FBTyxDQUFDLHVCQUFELENBQVAsQ0FBaUNJLE9BQWhEOztBQUNBLE1BQU1DLE1BQU0sR0FBR0wsT0FBTyxDQUFDLGdCQUFELENBQXRCOztBQUNBLE1BQU1NLFdBQVcsR0FBR04sT0FBTyxDQUFDLHFCQUFELENBQTNCOztBQUdBQSxPQUFPLEdBQUdBLE9BQU8sQ0FBQyxLQUFELENBQVAsQ0FBZU8sTUFBZixDQUFWO0FBR0FDLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQixFQUFqQjs7QUFFZSxNQUFNQyxZQUFOLFNBQTJCUixZQUEzQixDQUF3QztBQUNuRFMsRUFBQUEsV0FBVyxDQUFFQyxRQUFGLEVBQVlDLE1BQVosRUFBb0I7QUFDM0I7QUFDQSxTQUFLQyxPQUFMLEdBQWUsSUFBZjtBQUNBLFNBQUtDLEtBQUwsR0FBYSxJQUFiO0FBQ0EsU0FBS0MsT0FBTCxHQUFlSCxNQUFmO0FBQ0EsU0FBS0ksVUFBTCxHQUFrQixFQUFsQjtBQUNBLFNBQUtDLFNBQUwsR0FBaUJOLFFBQWpC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OUQsQ0FBQyxDQUFDK0QsR0FBbkM7QUFDSDtBQUNKOztBQXZPa0QiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTktcHJlc2VudCBDbG91ZEJlYXQgTGltaXRlZFxyXG4gKlxyXG4gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxyXG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxyXG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxyXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxyXG4gKlxyXG4gKiBCYXNlZCBvbjpcclxuICogQ29weXJpZ2h0IChjKSBPcGVuSlMgRm91bmRhdGlvbiBhbmQgb3RoZXIgY29udHJpYnV0b3JzLiBMaWNlbnNlZCB1bmRlciBNSVQuXHJcbiAqL1xyXG5cclxuY29uc3QgRmliZXIgPSByZXF1aXJlKCdmaWJlcnMnKTtcclxuY29uc3QgcGF0aCA9IHJlcXVpcmUoJ3BhdGgnKTtcclxuY29uc3QgeyBFdmVudEVtaXR0ZXIgfSA9IHJlcXVpcmUoJ2V2ZW50cycpO1xyXG5cclxuY29uc3QgT3h5Z2VuID0gcmVxdWlyZSgnLi4vLi4vY29yZS9PeHlnZW5Db3JlJykuZGVmYXVsdDtcclxuY29uc3Qgb3h1dGlsID0gcmVxdWlyZSgnLi4vLi4vbGliL3V0aWwnKTtcclxuY29uc3QgZXJyb3JIZWxwZXIgPSByZXF1aXJlKCcuLi8uLi9lcnJvcnMvaGVscGVyJyk7XHJcblxyXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tZ2xvYmFsLWFzc2lnblxyXG5yZXF1aXJlID0gcmVxdWlyZSgnZXNtJykobW9kdWxlKTtcclxuXHJcbi8vIG1vY2t1cCBnbG9iYmFsLmJyb3dzZXIgb2JqZWN0IGZvciBpbnRlcm5hbCBXRElPIGZ1bmN0aW9ucyB0byB3b3JrIHByb3Blcmx5XHJcbmdsb2JhbC5icm93c2VyID0ge307XHJcblxyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBPeHlnZW5Xb3JrZXIgZXh0ZW5kcyBFdmVudEVtaXR0ZXIge1xyXG4gICAgY29uc3RydWN0b3IgKHJlcG9ydGVyLCBsb2dnZXIpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIHRoaXMuX294eWdlbiA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5fb3B0cyA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5fbG9nZ2VyID0gbG9nZ2VyO1xyXG4gICAgICAgIHRoaXMuX3Rlc3RIb29rcyA9IHt9O1xyXG4gICAgICAgIHRoaXMuX3JlcG9ydGVyID0gcmVwb3J0ZXI7XHJcbiAgICAgICAgdGhpcy5fcnVuSWQgPSBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIGluaXQocnVuSWQsIG9wdGlvbnMsIGNhcHMpIHtcclxuICAgICAgICB0aGlzLl9ydW5JZCA9IHJ1bklkO1xyXG4gICAgICAgIHRoaXMuX29wdHMgPSBvcHRpb25zO1xyXG4gICAgICAgIHRoaXMuX2N3ZCA9IHRoaXMuX29wdHMuY3dkIHx8IHByb2Nlc3MuY3dkKCk7XHJcblxyXG4gICAgICAgIGlmICghdGhpcy5fb3h5Z2VuKSB7XHJcbiAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9veHlnZW4gPSBuZXcgT3h5Z2VuKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9veHlnZW4ub24oJ2NvbW1hbmQ6YmVmb3JlJywgdGhpcy5faGFuZGxlQmVmb3JlQ29tbWFuZC5iaW5kKHRoaXMpKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuX294eWdlbi5vbignY29tbWFuZDphZnRlcicsIHRoaXMuX2hhbmRsZUFmdGVyQ29tbWFuZC5iaW5kKHRoaXMpKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuX294eWdlbi5vbignbG9nJywgdGhpcy5faGFuZGxlTG9nRW50cnkuYmluZCh0aGlzKSk7XHJcbiAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLl9veHlnZW4uaW5pdChvcHRpb25zLCBjYXBzKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuX3Rlc3RIb29rcyA9IG94dXRpbC5sb2FkVGVzdEhvb2tzKG9wdGlvbnMpO1xyXG4gICAgICAgICAgICAgICAgLy9tYWtlTW9kdWxlc0dsb2JhbChvcHRpb25zKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2xvZ2dlci5kZWJ1ZygnT3h5Z2VuIGluaXRpYWxpemF0aW9uIGNvbXBsZXRlZCcpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9sb2dnZXIuZGVidWcoYE94eWdlbiBpbml0aWFsaXphdGlvbiBmYWlsZWQ6ICR7ZS50b1N0cmluZygpfWApO1xyXG4gICAgICAgICAgICAgICAgdGhyb3cgZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBydW4oeyBzY3JpcHRQYXRoLCBjb250ZXh0LCBwb0ZpbGUgPSBudWxsIH0pIHtcclxuICAgICAgICAvLyBhc3NpZ24gdXAgdG8gZGF0ZSBjb250ZXh0IHRvIE94eWdlbiBDb3JlIHRvIHJlZmxlY3QgbmV3IHBhcmFtZXRlcnMgYW5kIG90aGVyIGNvbnRleHQgZGF0YVxyXG4gICAgICAgIGlmICghdGhpcy5fb3h5Z2VuKSB7XHJcbiAgICAgICAgICAgIHRocm93IEVycm9yICgnT3h5Z2VuIGlzIG5vdCBpbml0aWFsaXplZCcpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLl9veHlnZW4uY29udGV4dCA9IGNvbnRleHQ7XHJcbiAgICAgICAgdGhpcy5fb3h5Z2VuLmxvYWRQYWdlT2JqZWN0RmlsZShwb0ZpbGUpO1xyXG4gICAgICAgIHRoaXMuX3N0ZXBzID0gW107XHJcbiAgICAgICAgaWYgKHRoaXMuX2N3ZCAmJiAhcGF0aC5pc0Fic29sdXRlKHNjcmlwdFBhdGgpKSB7XHJcbiAgICAgICAgICAgIHNjcmlwdFBhdGggPSBwYXRoLnJlc29sdmUodGhpcy5fY3dkLCBzY3JpcHRQYXRoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgbGV0IGVycm9yID0gbnVsbDtcclxuICAgICAgICAvLyBsb2FkIGFuZCBydW4gdGhlIHRlc3Qgc2NyaXB0XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgdGhpcy5fb3h5Z2VuICYmIHRoaXMuX294eWdlbi5vbkJlZm9yZUNhc2UgJiYgYXdhaXQgdGhpcy5fb3h5Z2VuLm9uQmVmb3JlQ2FzZShjb250ZXh0KTtcclxuICAgICAgICAgICAgYXdhaXQgdGhpcy5fcnVuRm5JbkZpYmVyQ29udGV4dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIG1ha2Ugc3VyZSB0byBjbGVhciByZXF1aXJlIGNhY2hlIHNvIHRoZSBzY3JpcHQgd2lsbCBiZSBleGVjdXRlZCBvbiBlYWNoIGl0ZXJhdGlvblxyXG4gICAgICAgICAgICAgICAgICAgIHJlcXVpcmUuY2FjaGVbcmVxdWlyZS5yZXNvbHZlKHNjcmlwdFBhdGgpXSAmJiBkZWxldGUgcmVxdWlyZS5jYWNoZVtyZXF1aXJlLnJlc29sdmUoc2NyaXB0UGF0aCldO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAvLyBpZiB1c2VyIHVzZXMgcmVxdWlyZSgnLi9zb21lc2NyaXB0LmpzJykgaW4gbXVsdGlwbGUgdGVzdCBzY3JpcHRzIChjYXNlcyksIGFuZCBzb21lc2NyaXB0LmpzIGNvbnRhaW5zIHdlYi9tb2IuaW5pdFxyXG4gICAgICAgICAgICAgICAgICAgIC8vIHRoZW4sIHdoZW4gdGhvc2Ugc2NyaXB0cyBhcmUgZXhlY3V0ZWQgaW4gYSBzdWl0ZSwgb25seSBmaXJzdCBjYXNlIHdpbGwgcGFzcywgdGhlIHJlc3Qgd2lsbCBmYWlsIHdpdGggTU9EVUxFX05PVF9JTklUSUFMSVpFRCBlcnJvci5cclxuICAgICAgICAgICAgICAgICAgICAvLyB0aGlzIGlzIGJlY2F1c2UgJ3JlcXVpcmUnIGlzIGNhY2hlZCwgYW5kIHdoZW4gdGhlIGZpcnN0IGNhc2UgaXMgZmluaXNoZWQsIHRoZSBtb2R1bGUgaXMgbWFya2VkIGFzIGlzSW5pdGlhbGl6ZWQgPSBmYWxzZVxyXG4gICAgICAgICAgICAgICAgICAgIC8vIGFuZCBub3QgcmUtaW5pdGlhbGl6ZWQgYmFjayBvbiBuZXh0IGNhc2UuXHJcbiAgICAgICAgICAgICAgICAgICAgLy8gdGh1cyB3ZSBjbGVhbiB1c2VyIGxldmVsIHNjcmlwdHMgZnJvbSAncmVxdWlyZScgY2FjaGUuXHJcbiAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IHRoaXMgc2hvdWxkIGJlIHByb2JhYmx5IGZpeGVkIGluIGEgZGlmZmVyZW50IHdheS5cclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBNb2R1bGUgPSByZXF1aXJlKCdtb2R1bGUnKTtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBvcmlnaW5hbFJlcXVpcmUgPSBNb2R1bGUucHJvdG90eXBlLnJlcXVpcmU7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIE1vZHVsZS5wcm90b3R5cGUucmVxdWlyZSA9IGZ1bmN0aW9uKCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzY3JpcHQgPSBhcmd1bWVudHNbJzAnXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGludmFsaWRhdGUgY2FjaGUgb25seSBmb3IgdXNlciBsZXZlbCBzY3JpcHRzICh0aG9zZSBzdGFydGluZyB3aXRoICcuLycpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc2NyaXB0ICYmIHNjcmlwdC5zdGFydHNXaXRoKCcuJykpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgcmVzb2x2ZWRQYXRoID0gcmVxdWlyZS5yZXNvbHZlKHBhdGgucmVzb2x2ZShwYXRoLmRpcm5hbWUoc2NyaXB0UGF0aCksIHNjcmlwdCkpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXF1aXJlLmNhY2hlW3Jlc29sdmVkUGF0aF0pIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVsZXRlIHJlcXVpcmUuY2FjaGVbcmVzb2x2ZWRQYXRoXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGV4KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBpZ25vcmVkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9yaWdpbmFsUmVxdWlyZS5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xyXG4gICAgICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICAgICAgcmVxdWlyZShzY3JpcHRQYXRoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gZXJyb3IgPSBlLmNvZGUgJiYgZS5jb2RlID09PSAnTU9EVUxFX05PVF9GT1VORCcgPyBuZXcgU2NyaXB0Tm90Rm91bmRFcnJvcihzY3JpcHRQYXRoKSA6IGU7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGlmIChlICYmIGUudHlwZSAmJiBlLnR5cGUgPT09IGVycm9ySGVscGVyLmVycm9yQ29kZS5BU1NFUlRfUEFTU0VEKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vaWdub3JlXHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3IgPSBlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICBlcnJvciA9IGU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBJbiBzb21lIGNhc2VzIHN0ZXAgcmVzdWx0IGdlbmVyYXRpb24gdGFrZXMgc29tZSB0aW1lIHRvIG1ha2Ugc2NyZWVuc2hvdFxyXG4gICAgICAgIGF3YWl0IHRoaXMuX294eWdlbi5fd2FpdFN0ZXBSZXN1bHQoKTtcclxuXHJcbiAgICAgICAgaWYgKGVycm9yKSB7XHJcbiAgICAgICAgICAgIGVycm9yID0gZXJyb3JIZWxwZXIuZ2V0RmFpbHVyZUZyb21FcnJvcihlcnJvcik7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBsZXQgbW9kdWxlQ2FwcyA9IHt9O1xyXG5cclxuICAgICAgICBpZiAodGhpcy5fb3h5Z2VuICYmIHRoaXMuX294eWdlbi5nZXRNb2R1bGVzQ2FwYWJpbGl0aWVzKSB7XHJcbiAgICAgICAgICAgIG1vZHVsZUNhcHMgPSB0aGlzLl9veHlnZW4uZ2V0TW9kdWxlc0NhcGFiaWxpdGllcygpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5fb3h5Z2VuICYmIHRoaXMuX294eWdlbi5vbkFmdGVyQ2FzZSAmJiBhd2FpdCB0aGlzLl9veHlnZW4ub25BZnRlckNhc2UoZXJyb3IpO1xyXG5cclxuICAgICAgICAvLyBjbG9uZSB0aGUgcmVzdWx0cywgb3RoZXJ3aXNlIHJlc3VsdFN0b3JlIHdpbGwgYmUgZW1wdHkgYWZ0ZXIgdGhlIGZvbGxvd2luZyB0aGlzLl9veHlnZW4ucmVzZXRSZXN1bHRzKCkgY2FsbFxyXG5cclxuICAgICAgICBsZXQgcmVzdWx0U3RvcmUgPSB7fTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuX294eWdlbiAmJiB0aGlzLl9veHlnZW4ucmVzdWx0cykge1xyXG4gICAgICAgICAgICByZXN1bHRTdG9yZSA9IHsgLi4udGhpcy5fb3h5Z2VuLnJlc3VsdHMgfTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLl9veHlnZW4gJiYgdGhpcy5fb3h5Z2VuLnJlc2V0UmVzdWx0cykge1xyXG4gICAgICAgICAgICAvLyByZXNldCBzdGVwcyBhbmQgb3RoZXIgcmVzdWx0IGRhdGFcclxuICAgICAgICAgICAgdGhpcy5fb3h5Z2VuLnJlc2V0UmVzdWx0cygpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLl9zdGVwcyA9IG51bGw7XHJcblxyXG4gICAgICAgIGxldCBveENvbnRleHQgPSB7fTtcclxuICAgICAgICBpZiAodGhpcy5fb3h5Z2VuICYmIHRoaXMuX294eWdlbi5jb250ZXh0KSB7XHJcbiAgICAgICAgICAgIG94Q29udGV4dCA9IHRoaXMuX294eWdlbi5jb250ZXh0O1xyXG4gICAgICAgIH1cclxuICAgICAgICBveENvbnRleHQudmFycyA9IGdsb2JhbC52YXJzO1xyXG5cclxuICAgICAgICByZXR1cm4geyBlcnJvciwgbW9kdWxlQ2FwcywgcmVzdWx0U3RvcmUsIGNvbnRleHQ6IG94Q29udGV4dCB9O1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIGRpc3Bvc2Uoc3RhdHVzID0gbnVsbCkge1xyXG4gICAgICAgIGlmICh0aGlzLl9veHlnZW4pIHtcclxuICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuX294eWdlbi5kaXNwb3NlKHN0YXR1cyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY2F0Y2ggKGUpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2xvZ2dlci5lcnJvcignRmFpbGVkIHRvIGRpc3Bvc2UgT3h5Z2VuJywgbnVsbCwgZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZmluYWxseSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGVwcyA9IG51bGw7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgZGlzcG9zZU1vZHVsZXMoc3RhdHVzID0gbnVsbCkge1xyXG4gICAgICAgIGlmICh0aGlzLl9veHlnZW4pIHtcclxuICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuX294eWdlbi5kaXNwb3NlTW9kdWxlcyhzdGF0dXMpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9sb2dnZXIuZXJyb3IoJ0ZhaWxlZCB0byBkaXNwb3NlIE94eWdlbiBtb2R1bGVzJywgbnVsbCwgZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZmluYWxseSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9veHlnZW4ucmVzZXRSZXN1bHRzKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgY2FsbFRlc3RIb29rKGhvb2tOYW1lLCBob29rQXJncykge1xyXG4gICAgICAgIGlmICghdGhpcy5fdGVzdEhvb2tzIHx8ICF0aGlzLl90ZXN0SG9va3NbaG9va05hbWVdIHx8IHR5cGVvZiB0aGlzLl90ZXN0SG9va3NbaG9va05hbWVdICE9PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgSG9vayBkb2VzIG5vdCBleGlzdDogJHtob29rTmFtZX1gKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYXdhaXQgb3h1dGlsLmV4ZWN1dGVUZXN0SG9vayh0aGlzLl90ZXN0SG9va3MsIGhvb2tOYW1lLCBob29rQXJncyk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgX3J1bkZuSW5GaWJlckNvbnRleHQgKGZuKSB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IEZpYmVyKCgpID0+IHtcclxuICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGZuLmFwcGx5KHRoaXMpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc29sdmUocmVzdWx0KTtcclxuICAgICAgICAgICAgfSBjYXRjaCAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVqZWN0KGVycik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KS5ydW4oKSk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgcmVwbFN0YXJ0KCkge1xyXG4gICAgICAgIGxldCBjb21tYW5kUmVzb2x2ZSA9ICgpID0+IHsgfTtcclxuXHJcbiAgICAgICAgc2V0VGltZW91dChhc3luYygpID0+IHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuX294eWdlbiAmJiB0aGlzLl9veHlnZW4ubW9kdWxlcykge1xyXG4gICAgICAgICAgICAgICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKHRoaXMuX294eWdlbi5tb2R1bGVzKTtcclxuICAgICAgICAgICAgICAgIGxldCBkZWJ1ZztcclxuICAgICAgICAgICAgICAgIGtleXMubWFwKChpdGVtKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZHJpdmVyID0gdGhpcy5fb3h5Z2VuLm1vZHVsZXNbaXRlbV1bJ2dldERyaXZlciddICYmIHRoaXMuX294eWdlbi5tb2R1bGVzW2l0ZW1dWydnZXREcml2ZXInXSgpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChkcml2ZXIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGVidWcgPSB0aGlzLl9veHlnZW4ubW9kdWxlc1tpdGVtXVsnZGVidWcnXTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgICAgICBpZiAoZGVidWcpIHtcclxuICAgICAgICAgICAgICAgICAgICBhd2FpdCBkZWJ1ZygpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbW1hbmRSZXNvbHZlKCk7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbW1hbmRSZXNvbHZlKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBjb21tYW5kUmVzb2x2ZSgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSwgMTApO1xyXG5cclxuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IChjb21tYW5kUmVzb2x2ZSA9IHJlc29sdmUpKTtcclxuICAgIH1cclxuXHJcbiAgICBfaGFuZGxlQmVmb3JlQ29tbWFuZChlKSB7XHJcbiAgICAgICAgaWYgKCFlKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5lbWl0KCdjb21tYW5kOmJlZm9yZScsIGUpO1xyXG4gICAgfVxyXG5cclxuICAgIF9oYW5kbGVBZnRlckNvbW1hbmQoZSkge1xyXG4gICAgICAgIGlmICghZSB8fCAhZS5yZXN1bHQpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5fc3RlcHMgJiYgdGhpcy5fc3RlcHMucHVzaChlLnJlc3VsdCk7XHJcbiAgICAgICAgdGhpcy5lbWl0KCdjb21tYW5kOmFmdGVyJywgZSk7XHJcbiAgICB9XHJcblxyXG4gICAgX2hhbmRsZUxvZ0VudHJ5KGUpIHtcclxuICAgICAgICBpZiAoIWUgfHwgIWUubGV2ZWwgfHwgIWUubWVzc2FnZSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChlICYmIGUubGV2ZWwgJiYgZS5sZXZlbCA9PT0gJ2Vycm9yJykge1xyXG4gICAgICAgICAgICB0aGlzLl9sb2dnZXJbZS5sZXZlbF0oZS5tZXNzYWdlLCBlLnNyYywgZS5lcnIpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2xvZ2dlcltlLmxldmVsXShlLm1lc3NhZ2UsIGUuc3JjKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIl19