system-testing 1.0.81 → 1.0.83

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
@@ -222,9 +222,12 @@ npx system-testing browser-command \
222
222
  --command=interact \
223
223
  --selector='[data-testid="emailInput"]' \
224
224
  --method=sendKeys \
225
- --arg='user@example.com'
225
+ --arg='user@example.com' \
226
+ --with-fallback=true
226
227
  ```
227
228
 
229
+ `sendKeys` uses the driver's normal typing path by default. If you specifically need the DOM value-setter fallback for React Native Web inputs that do not update from ordinary typing in your environment, opt into it with `withFallback: true` in JS or `--with-fallback=true` in the CLI/browser-command transport.
230
+
228
231
  The browser daemon is intended for agent-style development workflows where an AI or script needs to open the app, inspect HTML, locate elements, click controls, and read logs while validating layout or behavior changes.
229
232
 
230
233
  ### Browser daemon WebSocket protocol
@@ -140,16 +140,25 @@ export default class BrowserCommandRunner {
140
140
  const selector = commandArgs.selector;
141
141
  const methodName = commandArgs.methodName ?? commandArgs.method;
142
142
  const methodArgs = Array.isArray(commandArgs.args) ? commandArgs.args : [];
143
+ const interactArgs = /** @type {{selector: string} & import("./system-test.js").InteractArgs} */ ({ selector, ...this.normalizeFindArgs(commandArgs) });
143
144
  if (!selector) {
144
145
  throw new Error("interact requires selector");
145
146
  }
146
147
  if (!methodName) {
147
148
  throw new Error("interact requires methodName");
148
149
  }
149
- const result = await this.browser.interact({ selector, ...this.normalizeFindArgs(commandArgs) }, methodName, ...methodArgs);
150
+ if ("withFallback" in commandArgs && commandArgs.withFallback !== undefined) {
151
+ if (typeof commandArgs.withFallback === "boolean") {
152
+ interactArgs.withFallback = commandArgs.withFallback;
153
+ }
154
+ else {
155
+ interactArgs.withFallback = commandArgs.withFallback === "true";
156
+ }
157
+ }
158
+ const result = await this.browser.interact(interactArgs, methodName, ...methodArgs);
150
159
  return { result };
151
160
  }
152
161
  throw new Error(`Unknown browser command: ${command}`);
153
162
  }
154
163
  }
155
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJvd3Nlci1jb21tYW5kLXJ1bm5lci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9icm93c2VyLWNvbW1hbmQtcnVubmVyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGlFQUFpRTtBQUNqRSxNQUFNLENBQUMsT0FBTyxPQUFPLG9CQUFvQjtJQUN2Qzs7O09BR0c7SUFDSCxZQUFZLEVBQUMsT0FBTyxFQUFDO1FBQ25CLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFBO0lBQ3hCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxvQkFBb0IsQ0FBQyxXQUFXO1FBQzlCLE1BQU0sY0FBYyxHQUFHLEVBQUUsQ0FBQTtRQUV6QixJQUFJLFNBQVMsSUFBSSxXQUFXLElBQUksV0FBVyxDQUFDLE9BQU8sS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNsRSxjQUFjLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUE7WUFFcEQsSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO2dCQUN6QyxNQUFNLElBQUksS0FBSyxDQUFDLG9CQUFvQixXQUFXLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQTtZQUM1RCxDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sY0FBYyxDQUFBO0lBQ3ZCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxpQkFBaUIsQ0FBQyxXQUFXO1FBQzNCLE1BQU0sUUFBUSxHQUFHLGtEQUFrRCxDQUFDLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUE7UUFFNUcsSUFBSSxTQUFTLElBQUksV0FBVyxJQUFJLFdBQVcsQ0FBQyxPQUFPLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDbEUsSUFBSSxXQUFXLENBQUMsT0FBTyxLQUFLLElBQUksSUFBSSxXQUFXLENBQUMsT0FBTyxLQUFLLE1BQU0sRUFBRSxDQUFDO2dCQUNuRSxRQUFR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IGNvbW1hbmRzIGFjcm9zcyBDTEkgYW5kIFdlYlNvY2tldCB0cmFuc3BvcnRzLiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQnJvd3NlckNvbW1hbmRSdW5uZXIge1xuICAvKipcbiAgICogQHBhcmFtIHtvYmplY3R9IGFyZ3NcbiAgICogQHBhcmFtIHtpbXBvcnQoXCIuL2Jyb3dzZXIuanNcIikuZGVmYXVsdH0gYXJncy5icm93c2VyXG4gICAqL1xuICBjb25zdHJ1Y3Rvcih7YnJvd3Nlcn0pIHtcbiAgICB0aGlzLmJyb3dzZXIgPSBicm93c2VyXG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCBhbnk+fSBjb21tYW5kQXJnc1xuICAgKiBAcmV0dXJucyB7e3RpbWVvdXQ/OiBudW1iZXJ9fVxuICAgKi9cbiAgbm9ybWFsaXplVGltZW91dEFyZ3MoY29tbWFuZEFyZ3MpIHtcbiAgICBjb25zdCBub3JtYWxpemVkQXJncyA9IHt9XG5cbiAgICBpZiAoXCJ0aW1lb3V0XCIgaW4gY29tbWFuZEFyZ3MgJiYgY29tbWFuZEFyZ3MudGltZW91dCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBub3JtYWxpemVkQXJncy50aW1lb3V0ID0gTnVtYmVyKGNvbW1hbmRBcmdzLnRpbWVvdXQpXG5cbiAgICAgIGlmIChOdW1iZXIuaXNOYU4obm9ybWFsaXplZEFyZ3MudGltZW91dCkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHRpbWVvdXQ6ICR7Y29tbWFuZEFyZ3MudGltZW91dH1gKVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBub3JtYWxpemVkQXJnc1xuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgYW55Pn0gY29tbWFuZEFyZ3NcbiAgICogQHJldHVybnMge2ltcG9ydChcIi4vc3lzdGVtLXRlc3QuanNcIikuRmluZEFyZ3N9XG4gICAqL1xuICBub3JtYWxpemVGaW5kQXJncyhjb21tYW5kQXJncykge1xuICAgIGNvbnN0IGZpbmRBcmdzID0gLyoqIEB0eXBlIHtpbXBvcnQoXCIuL3N5c3RlbS10ZXN0LmpzXCIpLkZpbmRBcmdzfSAqLyAodGhpcy5ub3JtYWxpemVUaW1lb3V0QXJncyhjb21tYW5kQXJncykpXG5cbiAgICBpZiAoXCJ2aXNpYmxlXCIgaW4gY29tbWFuZEFyZ3MgJiYgY29tbWFuZEFyZ3MudmlzaWJsZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBpZiAoY29tbWFuZEFyZ3MudmlzaWJsZSA9PT0gbnVsbCB8fCBjb21tYW5kQXJncy52aXNpYmxlID09PSBcIm51bGxcIikge1xuICAgICAgICBmaW5kQXJncy52aXNpYmxlID0gbnVsbFxuICAgICAgfSBlbHNlIGlmICh0eXBlb2YgY29tbWFuZEFyZ3MudmlzaWJsZSA9PT0gXCJib29sZWFuXCIpIHtcbiAgICAgICAgZmluZEFyZ3MudmlzaWJsZSA9IGNvbW1hbmRBcmdzLnZpc2libGVcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGZpbmRBcmdzLnZpc2libGUgPSBjb21tYW5kQXJncy52aXNpYmxlID09PSBcInRydWVcIlxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChcInVzZUJhc2VTZWxlY3RvclwiIGluIGNvbW1hbmRBcmdzICYmIGNvbW1hbmRBcmdzLnVzZUJhc2VTZWxlY3RvciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBpZiAodHlwZW9mIGNvbW1hbmRBcmdzLnVzZUJhc2VTZWxlY3RvciA9PT0gXCJib29sZWFuXCIpIHtcbiAgICAgICAgZmluZEFyZ3MudXNlQmFzZVNlbGVjdG9yID0gY29tbWFuZEFyZ3MudXNlQmFzZVNlbGVjdG9yXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBmaW5kQXJncy51c2VCYXNlU2VsZWN0b3IgPSBjb21tYW5kQXJncy51c2VCYXNlU2VsZWN0b3IgPT09IFwidHJ1ZVwiXG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGZpbmRBcmdzXG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtpbXBvcnQoXCJzZWxlbml1bS13ZWJkcml2ZXJcIikuV2ViRWxlbWVudH0gZWxlbWVudFxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBhbnk+Pn1cbiAgICovXG4gIGFzeW5jIHNlcmlhbGl6ZUVsZW1lbnQoZWxlbWVudCkge1xuICAgIGNvbnN0IHRleHQgPSBhd2FpdCBlbGVtZW50LmdldFRleHQoKVxuICAgIGNvbnN0IHRhZ05hbWUgPSBhd2FpdCBlbGVtZW50LmdldFRhZ05hbWUoKVxuICAgIGNvbnN0IGRpc3BsYXllZCA9IGF3YWl0IGVsZW1lbnQuaXNEaXNwbGF5ZWQoKVxuXG4gICAgcmV0dXJuIHtkaXNwbGF5ZWQsIHRhZ05hbWUsIHRleHR9XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtzdHJpbmd9IGNvbW1hbmRcbiAgICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCBhbnk+fSBjb21tYW5kQXJnc1xuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxhbnk+fVxuICAgKi9cbiAgYXN5bmMgcnVuKGNvbW1hbmQsIGNvbW1hbmRBcmdzID0ge30pIHtcbiAgICBpZiAoY29tbWFuZCA9PT0gXCJ2aXNpdFwiKSB7XG4gICAgICBjb25zdCBwYXRoID0gY29tbWFuZEFyZ3MucGF0aCA/PyBjb21tYW5kQXJncy51cmxcblxuICAgICAgaWYgKCFwYXRoKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcInZpc2l0IHJlcXVpcmVzIHBhdGggb3IgdXJsXCIpXG4gICAgICB9XG5cbiAgICAgIGF3YWl0IHRoaXMuYnJvd3Nlci52aXNpdChwYXRoLCB0aGlzLm5vcm1hbGl6ZVRpbWVvdXRBcmdzKGNvbW1hbmRBcmdzKSlcbiAgICAgIHJldHVybiB7b2s6IHRydWV9XG4gICAgfVxuXG4gICAgaWYgKGNvbW1hbmQgPT09IFwiZGlzbWlzc1RvXCIpIHtcbiAgICAgIGNvbnN0IHBhdGggPSBjb21tYW5kQXJncy5wYXRoID8/IGNvbW1hbmRBcmdzLnVybFxuXG4gICAgICBpZiAoIXBhdGgpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiZGlzbWlzc1RvIHJlcXVpcmVzIHBhdGggb3IgdXJsXCIpXG4gICAgICB9XG5cbiAgICAgIGF3YWl0IHRoaXMuYnJvd3Nlci5kaXNtaXNzVG8ocGF0aCwgdGhpcy5ub3JtYWxpemVUaW1lb3V0QXJncyhjb21tYW5kQXJncykpXG4gICAgICByZXR1cm4ge29rOiB0cnVlfVxuICAgIH1cblxuICAgIGlmIChjb21tYW5kID09PSBcInNldEJhc2VTZWxlY3RvclwiKSB7XG4gICAgICBpZiAoIWNvbW1hbmRBcmdzLnNlbGVjdG9yKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcInNldEJhc2VTZWxlY3RvciByZXF1aXJlcyBzZWxlY3RvclwiKVxuICAgICAgfVxuXG4gICAgICB0aGlzLmJyb3dzZXIuc2V0QmFzZVNlbGVjdG9yKGNvbW1hbmRBcmdzLnNlbGVjdG9yKVxuICAgICAgcmV0dXJuIHtvazogdHJ1ZX1cbiAgICB9XG5cbiAgICBpZiAoY29tbWFuZCA9PT0gXCJnZXRDdXJyZW50VXJsXCIpIHtcbiAgICAgIHJldHVybiB7Y3VycmVudFVybDogYXdhaXQgdGhpcy5icm93c2VyLmdldEN1cnJlbnRVcmwoKX1cbiAgICB9XG5cbiAgICBpZiAoY29tbWFuZCA9PT0gXCJnZXRIVE1MXCIpIHtcbiAgICAgIHJldHVybiB7aHRtbDogYXdhaXQgdGhpcy5icm93c2VyLmdldEhUTUwoKX1cbiAgICB9XG5cbiAgICBpZiAoY29tbWFuZCA9PT0gXCJnZXRCcm93c2VyTG9nc1wiKSB7XG4gICAgICByZXR1cm4ge2xvZ3M6IGF3YWl0IHRoaXMuYnJvd3Nlci5nZXRCcm93c2VyTG9ncygpfVxuICAgIH1cblxuICAgIGlmIChjb21tYW5kID09PSBcInRha2VTY3JlZW5zaG90XCIpIHtcbiAgICAgIHJldHVybiBhd2FpdCB0aGlzLmJyb3dzZXIudGFrZVNjcmVlbnNob3QoKVxuICAgIH1cblxuICAgIGlmIChjb21tYW5kID09PSBcImZpbmRcIikge1xuICAgICAgaWYgKCFjb21tYW5kQXJncy5zZWxlY3Rvcikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJmaW5kIHJlcXVpcmVzIHNlbGVjdG9yXCIpXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGVsZW1lbnQgPSBhd2FpdCB0aGlzLmJyb3dzZXIuZmluZChjb21tYW5kQXJncy5zZWxlY3RvciwgdGhpcy5ub3JtYWxpemVGaW5kQXJncyhjb21tYW5kQXJncykpXG5cbiAgICAgIHJldHVybiB7ZWxlbWVudDogYXdhaXQgdGhpcy5zZXJpYWxpemVFbGVtZW50KGVsZW1lbnQpfVxuICAgIH1cblxuICAgIGlmIChjb21tYW5kID09PSBcImZpbmRCeVRlc3RJRFwiKSB7XG4gICAgICBjb25zdCB0ZXN0SUQgPSBjb21tYW5kQXJncy50ZXN0SUQgPz8gY29tbWFuZEFyZ3MudGVzdElkXG5cbiAgICAgIGlmICghdGVzdElEKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcImZpbmRCeVRlc3RJRCByZXF1aXJlcyB0ZXN0SURcIilcbiAgICAgIH1cblxuICAgICAgY29uc3QgZWxlbWVudCA9IGF3YWl0IHRoaXMuYnJvd3Nlci5maW5kQnlUZXN0SUQodGVzdElELCB0aGlzLm5vcm1hbGl6ZUZpbmRBcmdzKGNvbW1hbmRBcmdzKSlcblxuICAgICAgcmV0dXJuIHtlbGVtZW50OiBhd2FpdCB0aGlzLnNlcmlhbGl6ZUVsZW1lbnQoZWxlbWVudCl9XG4gICAgfVxuXG4gICAgaWYgKGNvbW1hbmQgPT09IFwiY2xpY2tcIikge1xuICAgICAgY29uc3Qgc2VsZWN0b3IgPSBjb21tYW5kQXJncy5zZWxlY3RvclxuXG4gICAgICBpZiAoIXNlbGVjdG9yKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcImNsaWNrIHJlcXVpcmVzIHNlbGVjdG9yXCIpXG4gICAgICB9XG5cbiAgICAgIGF3YWl0IHRoaXMuYnJvd3Nlci5jbGljayhzZWxlY3RvciwgdGhpcy5ub3JtYWxpemVGaW5kQXJncyhjb21tYW5kQXJncykpXG4gICAgICByZXR1cm4ge29rOiB0cnVlfVxuICAgIH1cblxuICAgIGlmIChjb21tYW5kID09PSBcIndhaXRGb3JOb1NlbGVjdG9yXCIpIHtcbiAgICAgIGlmICghY29tbWFuZEFyZ3Muc2VsZWN0b3IpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwid2FpdEZvck5vU2VsZWN0b3IgcmVxdWlyZXMgc2VsZWN0b3JcIilcbiAgICAgIH1cblxuICAgICAgYXdhaXQgdGhpcy5icm93c2VyLndhaXRGb3JOb1NlbGVjdG9yKGNvbW1hbmRBcmdzLnNlbGVjdG9yLCB0aGlzLm5vcm1hbGl6ZUZpbmRBcmdzKGNvbW1hbmRBcmdzKSlcbiAgICAgIHJldHVybiB7b2s6IHRydWV9XG4gICAgfVxuXG4gICAgaWYgKGNvbW1hbmQgPT09IFwiZXhwZWN0Tm9FbGVtZW50XCIpIHtcbiAgICAgIGlmICghY29tbWFuZEFyZ3Muc2VsZWN0b3IpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiZXhwZWN0Tm9FbGVtZW50IHJlcXVpcmVzIHNlbGVjdG9yXCIpXG4gICAgICB9XG5cbiAgICAgIGF3YWl0IHRoaXMuYnJvd3Nlci5leHBlY3ROb0VsZW1lbnQoY29tbWFuZEFyZ3Muc2VsZWN0b3IsIHRoaXMubm9ybWFsaXplRmluZEFyZ3MoY29tbWFuZEFyZ3MpKVxuICAgICAgcmV0dXJuIHtvazogdHJ1ZX1cbiAgICB9XG5cbiAgICBpZiAoY29tbWFuZCA9PT0gXCJpbnRlcmFjdFwiKSB7XG4gICAgICBjb25zdCBzZWxlY3RvciA9IGNvbW1hbmRBcmdzLnNlbGVjdG9yXG4gICAgICBjb25zdCBtZXRob2ROYW1lID0gY29tbWFuZEFyZ3MubWV0aG9kTmFtZSA/PyBjb21tYW5kQXJncy5tZXRob2RcbiAgICAgIGNvbnN0IG1ldGhvZEFyZ3MgPSBBcnJheS5pc0FycmF5KGNvbW1hbmRBcmdzLmFyZ3MpID8gY29tbWFuZEFyZ3MuYXJncyA6IFtdXG5cbiAgICAgIGlmICghc2VsZWN0b3IpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiaW50ZXJhY3QgcmVxdWlyZXMgc2VsZWN0b3JcIilcbiAgICAgIH1cblxuICAgICAgaWYgKCFtZXRob2ROYW1lKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcImludGVyYWN0IHJlcXVpcmVzIG1ldGhvZE5hbWVcIilcbiAgICAgIH1cblxuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5icm93c2VyLmludGVyYWN0KHtzZWxlY3RvciwgLi4udGhpcy5ub3JtYWxpemVGaW5kQXJncyhjb21tYW5kQXJncyl9LCBtZXRob2ROYW1lLCAuLi5tZXRob2RBcmdzKVxuXG4gICAgICByZXR1cm4ge3Jlc3VsdH1cbiAgICB9XG5cbiAgICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gYnJvd3NlciBjb21tYW5kOiAke2NvbW1hbmR9YClcbiAgfVxufVxuIl19
164
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJvd3Nlci1jb21tYW5kLXJ1bm5lci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9icm93c2VyLWNvbW1hbmQtcnVubmVyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGlFQUFpRTtBQUNqRSxNQUFNLENBQUMsT0FBTyxPQUFPLG9CQUFvQjtJQUN2Qzs7O09BR0c7SUFDSCxZQUFZLEVBQUMsT0FBTyxFQUFDO1FBQ25CLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFBO0lBQ3hCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxvQkFBb0IsQ0FBQyxXQUFXO1FBQzlCLE1BQU0sY0FBYyxHQUFHLEVBQUUsQ0FBQTtRQUV6QixJQUFJLFNBQVMsSUFBSSxXQUFXLElBQUksV0FBVyxDQUFDLE9BQU8sS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNsRSxjQUFjLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUE7WUFFcEQsSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO2dCQUN6QyxNQUFNLElBQUksS0FBSyxDQUFDLG9CQUFvQixXQUFXLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQTtZQUM1RCxDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sY0FBYyxDQUFBO0lBQ3ZCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxpQkFBaUIsQ0FBQyxXQUFXO1FBQzNCLE1BQU0sUUFBUSxHQUFHLGtEQUFrRCxDQUFDLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUE7UUFFNUcsSUFBSSxTQUFTLElBQUksV0FBVyxJQUFJLFdBQVcsQ0FBQyxPQUFPLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDbEUsSUFBSSxXQUFXLENBQUMsT0FBTyxLQUFLLElBQUksSUFBSSxXQUFXLENBQUMsT0FBTyxLQUFLLE1BQU0sRUFBRSxDQUFDO2dCQUNuRSxRQUFRLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQTtZQUN6QixDQUFDO2lCQUFNLElBQUksT0FBTyxXQUFXLENBQUMsT0FBTyxLQUFLLFNBQVMsRUFBRSxDQUFDO2dCQUNwRCxRQUFRLENBQUMsT0FBTyxHQUFHLFdBQVcsQ0FBQyxPQUFPLENBQUE7WUFDeEMsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLFFBQVEsQ0FBQyxPQUFPLEdBQUcsV0FBVyxDQUFDLE9BQU8sS0FBSyxNQUFNLENBQUE7WUFDbkQsQ0FBQztRQUNILENBQUM7UUFFRCxJQUFJLGlCQUFpQixJQUFJLFdBQVcsSUFBSSxXQUFXLENBQUMsZUFBZSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ2xGLElBQUksT0FBTyxXQUFXLENBQUMsZUFBZSxLQUFLLFNBQVMsRUFBRSxDQUFDO2dCQUNyRCxRQUFRLENBQUMsZUFBZSxHQUFHLFdBQVcsQ0FBQyxlQUFlLENBQUE7WUFDeEQsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLFFBQVEsQ0FBQyxlQUFlLEdBQUcsV0FBVyxDQUFDLGVBQWUsS0FBSyxNQUFNLENBQUE7WUFDbkUsQ0FBQztRQUNILENBQUM7UUFFRCxPQUFPLFFBQVEsQ0FBQTtJQUNqQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsS0FBSyxDQUFDLGdCQUFnQixDQUFDLE9BQU87UUFDNUIsTUFBTSxJQUFJLEdBQUcsTUFBTSxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUE7UUFDcEMsTUFBTSxPQUFPLEdBQUcsTUFBTSxPQUFPLENBQUMsVUFBVSxFQUFFLENBQUE7UUFDMUMsTUFBTSxTQUFTLEdBQUcsTUFBTSxPQUFPLENBQUMsV0FBVyxFQUFFLENBQUE7UUFFN0MsT0FBTyxFQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFDLENBQUE7SUFDbkMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxXQUFXLEdBQUcsRUFBRTtRQUNqQyxJQUFJLE9BQU8sS0FBSyxPQUFPLEVBQUUsQ0FBQztZQUN4QixNQUFNLElBQUksR0FBRyxXQUFXLENBQUMsSUFBSSxJQUFJLFdBQVcsQ0FBQyxHQUFHLENBQUE7WUFFaEQsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUNWLE1BQU0sSUFBSSxLQUFLLENBQUMsNEJBQTRCLENBQUMsQ0FBQTtZQUMvQyxDQUFDO1lBRUQsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUE7WUFDdEUsT0FBTyxFQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUMsQ0FBQTtRQUNuQixDQUFDO1FBRUQsSUFBSSxPQUFPLEtBQUssV0FBVyxFQUFFLENBQUM7WUFDNUIsTUFBTSxJQUFJLEdBQUcsV0FBVyxDQUFDLElBQUksSUFBSSxXQUFXLENBQUMsR0FBRyxDQUFBO1lBRWhELElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDVixNQUFNLElBQUksS0FBSyxDQUFDLGdDQUFnQyxDQUFDLENBQUE7WUFDbkQsQ0FBQztZQUVELE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFBO1lBQzFFLE9BQU8sRUFBQyxFQUFFLEVBQUUsSUFBSSxFQUFDLENBQUE7UUFDbkIsQ0FBQztRQUVELElBQUksT0FBTyxLQUFLLGlCQUFpQixFQUFFLENBQUM7WUFDbEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDMUIsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFBO1lBQ3RELENBQUM7WUFFRCxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUE7WUFDbEQsT0FBTyxFQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUMsQ0FBQTtRQUNuQixDQUFDO1FBRUQsSUFBSSxPQUFPLEtBQUssZUFBZSxFQUFFLENBQUM7WUFDaEMsT0FBTyxFQUFDLFVBQVUsRUFBRSxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLEVBQUMsQ0FBQTtRQUN6RCxDQUFDO1FBRUQsSUFBSSxPQUFPLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDMUIsT0FBTyxFQUFDLElBQUksRUFBRSxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEVBQUMsQ0FBQTtRQUM3QyxDQUFDO1FBRUQsSUFBSSxPQUFPLEtBQUssZ0JBQWdCLEVBQUUsQ0FBQztZQUNqQyxPQUFPLEVBQUMsSUFBSSxFQUFFLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLEVBQUUsRUFBQyxDQUFBO1FBQ3BELENBQUM7UUFFRCxJQUFJLE9BQU8sS0FBSyxnQkFBZ0IsRUFBRSxDQUFDO1lBQ2pDLE9BQU8sTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsRUFBRSxDQUFBO1FBQzVDLENBQUM7UUFFRCxJQUFJLE9BQU8sS0FBSyxNQUFNLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUMxQixNQUFNLElBQUksS0FBSyxDQUFDLHdCQUF3QixDQUFDLENBQUE7WUFDM0MsQ0FBQztZQUVELE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQTtZQUVsRyxPQUFPLEVBQUMsT0FBTyxFQUFFLE1BQU0sSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxFQUFDLENBQUE7UUFDeEQsQ0FBQztRQUVELElBQUksT0FBTyxLQUFLLGNBQWMsRUFBRSxDQUFDO1lBQy9CLE1BQU0sTUFBTSxHQUFHLFdBQVcsQ0FBQyxNQUFNLElBQUksV0FBVyxDQUFDLE1BQU0sQ0FBQTtZQUV2RCxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ1osTUFBTSxJQUFJLEtBQUssQ0FBQyw4QkFBOEIsQ0FBQyxDQUFBO1lBQ2pELENBQUM7WUFFRCxNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQTtZQUU1RixPQUFPLEVBQUMsT0FBTyxFQUFFLE1BQU0sSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxFQUFDLENBQUE7UUFDeEQsQ0FBQztRQUVELElBQUksT0FBTyxLQUFLLE9BQU8sRUFBRSxDQUFDO1lBQ3hCLE1BQU0sUUFBUSxHQUFHLFdBQVcsQ0FBQyxRQUFRLENBQUE7WUFFckMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUNkLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQTtZQUM1QyxDQUFDO1lBRUQsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUE7WUFDdkUsT0FBTyxFQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUMsQ0FBQTtRQUNuQixDQUFDO1FBRUQsSUFBSSxPQUFPLEtBQUssbUJBQW1CLEVBQUUsQ0FBQztZQUNwQyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUMxQixNQUFNLElBQUksS0FBSyxDQUFDLHFDQUFxQyxDQUFDLENBQUE7WUFDeEQsQ0FBQztZQUVELE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFBO1lBQy9GLE9BQU8sRUFBQyxFQUFFLEVBQUUsSUFBSSxFQUFDLENBQUE7UUFDbkIsQ0FBQztRQUVELElBQUksT0FBTyxLQUFLLGlCQUFpQixFQUFFLENBQUM7WUFDbEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDMUIsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFBO1lBQ3RELENBQUM7WUFFRCxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUE7WUFDN0YsT0FBTyxFQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUMsQ0FBQTtRQUNuQixDQUFDO1FBRUQsSUFBSSxPQUFPLEtBQUssVUFBVSxFQUFFLENBQUM7WUFDM0IsTUFBTSxRQUFRLEdBQUcsV0FBVyxDQUFDLFFBQVEsQ0FBQTtZQUNyQyxNQUFNLFVBQVUsR0FBRyxXQUFXLENBQUMsVUFBVSxJQUFJLFdBQVcsQ0FBQyxNQUFNLENBQUE7WUFDL0QsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQTtZQUMxRSxNQUFNLFlBQVksR0FBRywyRUFBMkUsQ0FBQyxDQUFDLEVBQUMsUUFBUSxFQUFFLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxFQUFDLENBQUMsQ0FBQTtZQUVySixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ2QsTUFBTSxJQUFJLEtBQUssQ0FBQyw0QkFBNEIsQ0FBQyxDQUFBO1lBQy9DLENBQUM7WUFFRCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7Z0JBQ2hCLE1BQU0sSUFBSSxLQUFLLENBQUMsOEJBQThCLENBQUMsQ0FBQTtZQUNqRCxDQUFDO1lBRUQsSUFBSSxjQUFjLElBQUksV0FBVyxJQUFJLFdBQVcsQ0FBQyxZQUFZLEtBQUssU0FBUyxFQUFFLENBQUM7Z0JBQzVFLElBQUksT0FBTyxXQUFXLENBQUMsWUFBWSxLQUFLLFNBQVMsRUFBRSxDQUFDO29CQUNsRCxZQUFZLENBQUMsWUFBWSxHQUFHLFdBQVcsQ0FBQyxZQUFZLENBQUE7Z0JBQ3RELENBQUM7cUJBQU0sQ0FBQztvQkFDTixZQUFZLENBQUMsWUFBWSxHQUFHLFdBQVcsQ0FBQyxZQUFZLEtBQUssTUFBTSxDQUFBO2dCQUNqRSxDQUFDO1lBQ0gsQ0FBQztZQUVELE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsWUFBWSxFQUFFLFVBQVUsRUFBRSxHQUFHLFVBQVUsQ0FBQyxDQUFBO1lBRW5GLE9BQU8sRUFBQyxNQUFNLEVBQUMsQ0FBQTtRQUNqQixDQUFDO1FBRUQsTUFBTSxJQUFJLEtBQUssQ0FBQyw0QkFBNEIsT0FBTyxFQUFFLENBQUMsQ0FBQTtJQUN4RCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKiogUnVucyBicm93c2VyIGNvbW1hbmRzIGFjcm9zcyBDTEkgYW5kIFdlYlNvY2tldCB0cmFuc3BvcnRzLiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQnJvd3NlckNvbW1hbmRSdW5uZXIge1xuICAvKipcbiAgICogQHBhcmFtIHtvYmplY3R9IGFyZ3NcbiAgICogQHBhcmFtIHtpbXBvcnQoXCIuL2Jyb3dzZXIuanNcIikuZGVmYXVsdH0gYXJncy5icm93c2VyXG4gICAqL1xuICBjb25zdHJ1Y3Rvcih7YnJvd3Nlcn0pIHtcbiAgICB0aGlzLmJyb3dzZXIgPSBicm93c2VyXG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCBhbnk+fSBjb21tYW5kQXJnc1xuICAgKiBAcmV0dXJucyB7e3RpbWVvdXQ/OiBudW1iZXJ9fVxuICAgKi9cbiAgbm9ybWFsaXplVGltZW91dEFyZ3MoY29tbWFuZEFyZ3MpIHtcbiAgICBjb25zdCBub3JtYWxpemVkQXJncyA9IHt9XG5cbiAgICBpZiAoXCJ0aW1lb3V0XCIgaW4gY29tbWFuZEFyZ3MgJiYgY29tbWFuZEFyZ3MudGltZW91dCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBub3JtYWxpemVkQXJncy50aW1lb3V0ID0gTnVtYmVyKGNvbW1hbmRBcmdzLnRpbWVvdXQpXG5cbiAgICAgIGlmIChOdW1iZXIuaXNOYU4obm9ybWFsaXplZEFyZ3MudGltZW91dCkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHRpbWVvdXQ6ICR7Y29tbWFuZEFyZ3MudGltZW91dH1gKVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBub3JtYWxpemVkQXJnc1xuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgYW55Pn0gY29tbWFuZEFyZ3NcbiAgICogQHJldHVybnMge2ltcG9ydChcIi4vc3lzdGVtLXRlc3QuanNcIikuRmluZEFyZ3N9XG4gICAqL1xuICBub3JtYWxpemVGaW5kQXJncyhjb21tYW5kQXJncykge1xuICAgIGNvbnN0IGZpbmRBcmdzID0gLyoqIEB0eXBlIHtpbXBvcnQoXCIuL3N5c3RlbS10ZXN0LmpzXCIpLkZpbmRBcmdzfSAqLyAodGhpcy5ub3JtYWxpemVUaW1lb3V0QXJncyhjb21tYW5kQXJncykpXG5cbiAgICBpZiAoXCJ2aXNpYmxlXCIgaW4gY29tbWFuZEFyZ3MgJiYgY29tbWFuZEFyZ3MudmlzaWJsZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBpZiAoY29tbWFuZEFyZ3MudmlzaWJsZSA9PT0gbnVsbCB8fCBjb21tYW5kQXJncy52aXNpYmxlID09PSBcIm51bGxcIikge1xuICAgICAgICBmaW5kQXJncy52aXNpYmxlID0gbnVsbFxuICAgICAgfSBlbHNlIGlmICh0eXBlb2YgY29tbWFuZEFyZ3MudmlzaWJsZSA9PT0gXCJib29sZWFuXCIpIHtcbiAgICAgICAgZmluZEFyZ3MudmlzaWJsZSA9IGNvbW1hbmRBcmdzLnZpc2libGVcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGZpbmRBcmdzLnZpc2libGUgPSBjb21tYW5kQXJncy52aXNpYmxlID09PSBcInRydWVcIlxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChcInVzZUJhc2VTZWxlY3RvclwiIGluIGNvbW1hbmRBcmdzICYmIGNvbW1hbmRBcmdzLnVzZUJhc2VTZWxlY3RvciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBpZiAodHlwZW9mIGNvbW1hbmRBcmdzLnVzZUJhc2VTZWxlY3RvciA9PT0gXCJib29sZWFuXCIpIHtcbiAgICAgICAgZmluZEFyZ3MudXNlQmFzZVNlbGVjdG9yID0gY29tbWFuZEFyZ3MudXNlQmFzZVNlbGVjdG9yXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBmaW5kQXJncy51c2VCYXNlU2VsZWN0b3IgPSBjb21tYW5kQXJncy51c2VCYXNlU2VsZWN0b3IgPT09IFwidHJ1ZVwiXG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGZpbmRBcmdzXG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtpbXBvcnQoXCJzZWxlbml1bS13ZWJkcml2ZXJcIikuV2ViRWxlbWVudH0gZWxlbWVudFxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBhbnk+Pn1cbiAgICovXG4gIGFzeW5jIHNlcmlhbGl6ZUVsZW1lbnQoZWxlbWVudCkge1xuICAgIGNvbnN0IHRleHQgPSBhd2FpdCBlbGVtZW50LmdldFRleHQoKVxuICAgIGNvbnN0IHRhZ05hbWUgPSBhd2FpdCBlbGVtZW50LmdldFRhZ05hbWUoKVxuICAgIGNvbnN0IGRpc3BsYXllZCA9IGF3YWl0IGVsZW1lbnQuaXNEaXNwbGF5ZWQoKVxuXG4gICAgcmV0dXJuIHtkaXNwbGF5ZWQsIHRhZ05hbWUsIHRleHR9XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtzdHJpbmd9IGNvbW1hbmRcbiAgICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCBhbnk+fSBjb21tYW5kQXJnc1xuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxhbnk+fVxuICAgKi9cbiAgYXN5bmMgcnVuKGNvbW1hbmQsIGNvbW1hbmRBcmdzID0ge30pIHtcbiAgICBpZiAoY29tbWFuZCA9PT0gXCJ2aXNpdFwiKSB7XG4gICAgICBjb25zdCBwYXRoID0gY29tbWFuZEFyZ3MucGF0aCA/PyBjb21tYW5kQXJncy51cmxcblxuICAgICAgaWYgKCFwYXRoKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcInZpc2l0IHJlcXVpcmVzIHBhdGggb3IgdXJsXCIpXG4gICAgICB9XG5cbiAgICAgIGF3YWl0IHRoaXMuYnJvd3Nlci52aXNpdChwYXRoLCB0aGlzLm5vcm1hbGl6ZVRpbWVvdXRBcmdzKGNvbW1hbmRBcmdzKSlcbiAgICAgIHJldHVybiB7b2s6IHRydWV9XG4gICAgfVxuXG4gICAgaWYgKGNvbW1hbmQgPT09IFwiZGlzbWlzc1RvXCIpIHtcbiAgICAgIGNvbnN0IHBhdGggPSBjb21tYW5kQXJncy5wYXRoID8/IGNvbW1hbmRBcmdzLnVybFxuXG4gICAgICBpZiAoIXBhdGgpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiZGlzbWlzc1RvIHJlcXVpcmVzIHBhdGggb3IgdXJsXCIpXG4gICAgICB9XG5cbiAgICAgIGF3YWl0IHRoaXMuYnJvd3Nlci5kaXNtaXNzVG8ocGF0aCwgdGhpcy5ub3JtYWxpemVUaW1lb3V0QXJncyhjb21tYW5kQXJncykpXG4gICAgICByZXR1cm4ge29rOiB0cnVlfVxuICAgIH1cblxuICAgIGlmIChjb21tYW5kID09PSBcInNldEJhc2VTZWxlY3RvclwiKSB7XG4gICAgICBpZiAoIWNvbW1hbmRBcmdzLnNlbGVjdG9yKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcInNldEJhc2VTZWxlY3RvciByZXF1aXJlcyBzZWxlY3RvclwiKVxuICAgICAgfVxuXG4gICAgICB0aGlzLmJyb3dzZXIuc2V0QmFzZVNlbGVjdG9yKGNvbW1hbmRBcmdzLnNlbGVjdG9yKVxuICAgICAgcmV0dXJuIHtvazogdHJ1ZX1cbiAgICB9XG5cbiAgICBpZiAoY29tbWFuZCA9PT0gXCJnZXRDdXJyZW50VXJsXCIpIHtcbiAgICAgIHJldHVybiB7Y3VycmVudFVybDogYXdhaXQgdGhpcy5icm93c2VyLmdldEN1cnJlbnRVcmwoKX1cbiAgICB9XG5cbiAgICBpZiAoY29tbWFuZCA9PT0gXCJnZXRIVE1MXCIpIHtcbiAgICAgIHJldHVybiB7aHRtbDogYXdhaXQgdGhpcy5icm93c2VyLmdldEhUTUwoKX1cbiAgICB9XG5cbiAgICBpZiAoY29tbWFuZCA9PT0gXCJnZXRCcm93c2VyTG9nc1wiKSB7XG4gICAgICByZXR1cm4ge2xvZ3M6IGF3YWl0IHRoaXMuYnJvd3Nlci5nZXRCcm93c2VyTG9ncygpfVxuICAgIH1cblxuICAgIGlmIChjb21tYW5kID09PSBcInRha2VTY3JlZW5zaG90XCIpIHtcbiAgICAgIHJldHVybiBhd2FpdCB0aGlzLmJyb3dzZXIudGFrZVNjcmVlbnNob3QoKVxuICAgIH1cblxuICAgIGlmIChjb21tYW5kID09PSBcImZpbmRcIikge1xuICAgICAgaWYgKCFjb21tYW5kQXJncy5zZWxlY3Rvcikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJmaW5kIHJlcXVpcmVzIHNlbGVjdG9yXCIpXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGVsZW1lbnQgPSBhd2FpdCB0aGlzLmJyb3dzZXIuZmluZChjb21tYW5kQXJncy5zZWxlY3RvciwgdGhpcy5ub3JtYWxpemVGaW5kQXJncyhjb21tYW5kQXJncykpXG5cbiAgICAgIHJldHVybiB7ZWxlbWVudDogYXdhaXQgdGhpcy5zZXJpYWxpemVFbGVtZW50KGVsZW1lbnQpfVxuICAgIH1cblxuICAgIGlmIChjb21tYW5kID09PSBcImZpbmRCeVRlc3RJRFwiKSB7XG4gICAgICBjb25zdCB0ZXN0SUQgPSBjb21tYW5kQXJncy50ZXN0SUQgPz8gY29tbWFuZEFyZ3MudGVzdElkXG5cbiAgICAgIGlmICghdGVzdElEKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcImZpbmRCeVRlc3RJRCByZXF1aXJlcyB0ZXN0SURcIilcbiAgICAgIH1cblxuICAgICAgY29uc3QgZWxlbWVudCA9IGF3YWl0IHRoaXMuYnJvd3Nlci5maW5kQnlUZXN0SUQodGVzdElELCB0aGlzLm5vcm1hbGl6ZUZpbmRBcmdzKGNvbW1hbmRBcmdzKSlcblxuICAgICAgcmV0dXJuIHtlbGVtZW50OiBhd2FpdCB0aGlzLnNlcmlhbGl6ZUVsZW1lbnQoZWxlbWVudCl9XG4gICAgfVxuXG4gICAgaWYgKGNvbW1hbmQgPT09IFwiY2xpY2tcIikge1xuICAgICAgY29uc3Qgc2VsZWN0b3IgPSBjb21tYW5kQXJncy5zZWxlY3RvclxuXG4gICAgICBpZiAoIXNlbGVjdG9yKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcImNsaWNrIHJlcXVpcmVzIHNlbGVjdG9yXCIpXG4gICAgICB9XG5cbiAgICAgIGF3YWl0IHRoaXMuYnJvd3Nlci5jbGljayhzZWxlY3RvciwgdGhpcy5ub3JtYWxpemVGaW5kQXJncyhjb21tYW5kQXJncykpXG4gICAgICByZXR1cm4ge29rOiB0cnVlfVxuICAgIH1cblxuICAgIGlmIChjb21tYW5kID09PSBcIndhaXRGb3JOb1NlbGVjdG9yXCIpIHtcbiAgICAgIGlmICghY29tbWFuZEFyZ3Muc2VsZWN0b3IpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwid2FpdEZvck5vU2VsZWN0b3IgcmVxdWlyZXMgc2VsZWN0b3JcIilcbiAgICAgIH1cblxuICAgICAgYXdhaXQgdGhpcy5icm93c2VyLndhaXRGb3JOb1NlbGVjdG9yKGNvbW1hbmRBcmdzLnNlbGVjdG9yLCB0aGlzLm5vcm1hbGl6ZUZpbmRBcmdzKGNvbW1hbmRBcmdzKSlcbiAgICAgIHJldHVybiB7b2s6IHRydWV9XG4gICAgfVxuXG4gICAgaWYgKGNvbW1hbmQgPT09IFwiZXhwZWN0Tm9FbGVtZW50XCIpIHtcbiAgICAgIGlmICghY29tbWFuZEFyZ3Muc2VsZWN0b3IpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiZXhwZWN0Tm9FbGVtZW50IHJlcXVpcmVzIHNlbGVjdG9yXCIpXG4gICAgICB9XG5cbiAgICAgIGF3YWl0IHRoaXMuYnJvd3Nlci5leHBlY3ROb0VsZW1lbnQoY29tbWFuZEFyZ3Muc2VsZWN0b3IsIHRoaXMubm9ybWFsaXplRmluZEFyZ3MoY29tbWFuZEFyZ3MpKVxuICAgICAgcmV0dXJuIHtvazogdHJ1ZX1cbiAgICB9XG5cbiAgICBpZiAoY29tbWFuZCA9PT0gXCJpbnRlcmFjdFwiKSB7XG4gICAgICBjb25zdCBzZWxlY3RvciA9IGNvbW1hbmRBcmdzLnNlbGVjdG9yXG4gICAgICBjb25zdCBtZXRob2ROYW1lID0gY29tbWFuZEFyZ3MubWV0aG9kTmFtZSA/PyBjb21tYW5kQXJncy5tZXRob2RcbiAgICAgIGNvbnN0IG1ldGhvZEFyZ3MgPSBBcnJheS5pc0FycmF5KGNvbW1hbmRBcmdzLmFyZ3MpID8gY29tbWFuZEFyZ3MuYXJncyA6IFtdXG4gICAgICBjb25zdCBpbnRlcmFjdEFyZ3MgPSAvKiogQHR5cGUge3tzZWxlY3Rvcjogc3RyaW5nfSAmIGltcG9ydChcIi4vc3lzdGVtLXRlc3QuanNcIikuSW50ZXJhY3RBcmdzfSAqLyAoe3NlbGVjdG9yLCAuLi50aGlzLm5vcm1hbGl6ZUZpbmRBcmdzKGNvbW1hbmRBcmdzKX0pXG5cbiAgICAgIGlmICghc2VsZWN0b3IpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiaW50ZXJhY3QgcmVxdWlyZXMgc2VsZWN0b3JcIilcbiAgICAgIH1cblxuICAgICAgaWYgKCFtZXRob2ROYW1lKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcImludGVyYWN0IHJlcXVpcmVzIG1ldGhvZE5hbWVcIilcbiAgICAgIH1cblxuICAgICAgaWYgKFwid2l0aEZhbGxiYWNrXCIgaW4gY29tbWFuZEFyZ3MgJiYgY29tbWFuZEFyZ3Mud2l0aEZhbGxiYWNrICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBjb21tYW5kQXJncy53aXRoRmFsbGJhY2sgPT09IFwiYm9vbGVhblwiKSB7XG4gICAgICAgICAgaW50ZXJhY3RBcmdzLndpdGhGYWxsYmFjayA9IGNvbW1hbmRBcmdzLndpdGhGYWxsYmFja1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGludGVyYWN0QXJncy53aXRoRmFsbGJhY2sgPSBjb21tYW5kQXJncy53aXRoRmFsbGJhY2sgPT09IFwidHJ1ZVwiXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5icm93c2VyLmludGVyYWN0KGludGVyYWN0QXJncywgbWV0aG9kTmFtZSwgLi4ubWV0aG9kQXJncylcblxuICAgICAgcmV0dXJuIHtyZXN1bHR9XG4gICAgfVxuXG4gICAgdGhyb3cgbmV3IEVycm9yKGBVbmtub3duIGJyb3dzZXIgY29tbWFuZDogJHtjb21tYW5kfWApXG4gIH1cbn1cbiJdfQ==
@@ -124,14 +124,14 @@ export default class Browser {
124
124
  */
125
125
  click(elementOrIdentifier: string | import("selenium-webdriver").WebElement, args?: import("./system-test.js").FindArgs): Promise<void>;
126
126
  /**
127
- * @param {import("selenium-webdriver").WebElement|string|{selector: string} & import("./system-test.js").FindArgs} elementOrIdentifier
127
+ * @param {import("selenium-webdriver").WebElement|string|{selector: string} & import("./system-test.js").InteractArgs} elementOrIdentifier
128
128
  * @param {string} methodName
129
129
  * @param {...any} args
130
130
  * @returns {Promise<any>}
131
131
  */
132
132
  interact(elementOrIdentifier: import("selenium-webdriver").WebElement | string | ({
133
133
  selector: string;
134
- } & import("./system-test.js").FindArgs), methodName: string, ...args: any[]): Promise<any>;
134
+ } & import("./system-test.js").InteractArgs), methodName: string, ...args: any[]): Promise<any>;
135
135
  /**
136
136
  * @param {string} selector
137
137
  * @param {import("./system-test.js").WaitForNoSelectorArgs} [args]
package/build/browser.js CHANGED
@@ -198,7 +198,7 @@ export default class Browser {
198
198
  await this.getDriverAdapter().click(elementOrIdentifier, args);
199
199
  }
200
200
  /**
201
- * @param {import("selenium-webdriver").WebElement|string|{selector: string} & import("./system-test.js").FindArgs} elementOrIdentifier
201
+ * @param {import("selenium-webdriver").WebElement|string|{selector: string} & import("./system-test.js").InteractArgs} elementOrIdentifier
202
202
  * @param {string} methodName
203
203
  * @param {...any} args
204
204
  * @returns {Promise<any>}
@@ -372,4 +372,4 @@ export default class Browser {
372
372
  }
373
373
  }
374
374
  }
375
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJvd3Nlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9icm93c2VyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVk7QUFFWixPQUFPLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUNqQyxPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUE7QUFDM0IsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLFFBQVEsQ0FBQTtBQUMvQixPQUFPLE9BQU8sTUFBTSwyQkFBMkIsQ0FBQTtBQUMvQyxPQUFPLGNBQWMsTUFBTSw4QkFBOEIsQ0FBQTtBQUN6RCxPQUFPLFlBQVksTUFBTSw0QkFBNEIsQ0FBQTtBQUVyRDs7Ozs7O0dBTUc7QUFDSDs7OztHQUlHO0FBQ0g7OztHQUdHO0FBRUgsb0VBQW9FO0FBQ3BFLE1BQU0sQ0FBQyxPQUFPLE9BQU8sT0FBTztJQWExQixrQ0FBa0M7SUFDbEMsWUFBWSxFQUFDLEtBQUssR0FBRyxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxlQUFlLEdBQUcsR0FBRyxPQUFPLENBQUMsR0FBRyxFQUFFLGtCQUFrQixFQUFFLEdBQUcsUUFBUSxFQUFDLEdBQUcsRUFBRTtRQWJ6SCxpRUFBaUU7UUFDakUsV0FBTSxHQUFHLFNBQVMsQ0FBQTtRQUVsQiwwRUFBMEU7UUFDMUUsa0JBQWEsR0FBRyxTQUFTLENBQUE7UUFFekIsV0FBTSxHQUFHLEtBQUssQ0FBQTtRQUNkLDhDQUE4QztRQUM5QyxrQkFBYSxHQUFHLFNBQVMsQ0FBQTtRQUN6QixnQ0FBZ0M7UUFDaEMscUJBQWdCLEdBQUcsU0FBUyxDQUFBO1FBK0Y1Qjs7O1dBR0c7UUFDSCxzQkFBaUIsR0FBRyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQzVCLE1BQU0sWUFBWSxHQUFHLEtBQUssWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQTtZQUUzRSxJQUFJLENBQUMs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LEVBQUUsQ0FBQyxTQUFTLENBQUMsY0FBYyxFQUFFLFlBQVksRUFBRSxRQUFRLENBQUMsQ0FBQTtRQUUxRCxNQUFNLFVBQVUsR0FBRyxNQUFNLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQTtRQUU3QyxPQUFPLENBQUMsR0FBRyxDQUFDLGNBQWMsRUFBRSxVQUFVLENBQUMsQ0FBQTtRQUN2QyxPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQTtRQUM5QixPQUFPLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxjQUFjLENBQUMsQ0FBQTtRQUMxQyxPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQTtRQUU5QixPQUFPO1lBQ0wsVUFBVTtZQUNWLElBQUk7WUFDSixRQUFRO1lBQ1IsSUFBSTtZQUNKLFFBQVE7WUFDUixjQUFjO1NBQ2YsQ0FBQTtJQUNILENBQUM7SUFFRCwrQkFBK0I7SUFDL0IsS0FBSyxDQUFDLFVBQVU7UUFDZCxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUN2QixNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUE7UUFDakMsQ0FBQztJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1jaGVja1xuXG5pbXBvcnQgZnMgZnJvbSBcIm5vZGU6ZnMvcHJvbWlzZXNcIlxuaW1wb3J0IG1vbWVudCBmcm9tIFwibW9tZW50XCJcbmltcG9ydCB7cHJldHRpZnl9IGZyb20gXCJodG1sZnlcIlxuaW1wb3J0IHRpbWVvdXQgZnJvbSBcImF3YWl0ZXJ5L2J1aWxkL3RpbWVvdXQuanNcIlxuaW1wb3J0IFNlbGVuaXVtRHJpdmVyIGZyb20gXCIuL2RyaXZlcnMvc2VsZW5pdW0tZHJpdmVyLmpzXCJcbmltcG9ydCBBcHBpdW1Ecml2ZXIgZnJvbSBcIi4vZHJpdmVycy9hcHBpdW0tZHJpdmVyLmpzXCJcblxuLyoqXG4gKiBAdHlwZWRlZiB7b2JqZWN0fSBCcm93c2VyQXJnc1xuICogQHByb3BlcnR5IHtib29sZWFufSBbZGVidWddIEVuYWJsZSBkZWJ1ZyBsb2dnaW5nLlxuICogQHByb3BlcnR5IHtCcm93c2VyRHJpdmVyQ29uZmlnfSBbZHJpdmVyXSBEcml2ZXIgY29uZmlndXJhdGlvbi5cbiAqIEBwcm9wZXJ0eSB7aW1wb3J0KFwiLi9zeXN0ZW0tdGVzdC1jb21tdW5pY2F0b3IuanNcIikuZGVmYXVsdH0gW2NvbW11bmljYXRvcl0gT3B0aW9uYWwgY29tbWFuZCBjb21tdW5pY2F0b3IgZm9yIGhlbHBlci1kcml2ZW4gbmF2aWdhdGlvbi5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBbc2NyZWVuc2hvdHNQYXRoXSBEaXJlY3RvcnkgdXNlZCBmb3Igc2F2ZWQgc2NyZWVuc2hvdHMgYW5kIGJyb3dzZXIgYXJ0aWZhY3RzLlxuICovXG4vKipcbiAqIEB0eXBlZGVmIHtvYmplY3R9IEJyb3dzZXJEcml2ZXJDb25maWdcbiAqIEBwcm9wZXJ0eSB7XCJzZWxlbml1bVwifFwiYXBwaXVtXCJ9IFt0eXBlXSBEcml2ZXIgaW1wbGVtZW50YXRpb24gdG8gdXNlLlxuICogQHByb3BlcnR5IHtSZWNvcmQ8c3RyaW5nLCBhbnk+fSBbb3B0aW9uc10gRHJpdmVyLXNwZWNpZmljIG9wdGlvbnMuXG4gKi9cbi8qKlxuICogQHR5cGVkZWYge29iamVjdH0gQnJvd3Nlck5hdmlnYXRpb25BcmdzXG4gKiBAcHJvcGVydHkge251bWJlcn0gW3RpbWVvdXRdIE92ZXJyaWRlIHRoZSB0aW1lb3V0IGZvciB0aGlzIG5hdmlnYXRpb24gY29tbWFuZC5cbiAqL1xuXG4vKiogR2VuZXJpYyBicm93c2VyIHNlc3Npb24gd3JhcHBlciBhcm91bmQgdGhlIGNvbmZpZ3VyZWQgZHJpdmVyLiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQnJvd3NlciB7XG4gIC8qKiBAdHlwZSB7aW1wb3J0KFwic2VsZW5pdW0td2ViZHJpdmVyXCIpLldlYkRyaXZlciB8IHVuZGVmaW5lZH0gKi9cbiAgZHJpdmVyID0gdW5kZWZpbmVkXG5cbiAgLyoqIEB0eXBlIHtpbXBvcnQoXCIuL2RyaXZlcnMvd2ViZHJpdmVyLWRyaXZlci5qc1wiKS5kZWZhdWx0IHwgdW5kZWZpbmVkfSAqL1xuICBkcml2ZXJBZGFwdGVyID0gdW5kZWZpbmVkXG5cbiAgX2RlYnVnID0gZmFsc2VcbiAgLyoqIEB0eXBlIHtCcm93c2VyRHJpdmVyQ29uZmlnIHwgdW5kZWZpbmVkfSAqL1xuICBfZHJpdmVyQ29uZmlnID0gdW5kZWZpbmVkXG4gIC8qKiBAdHlwZSB7RXJyb3IgfCB1bmRlZmluZWR9ICovXG4gIF9odHRwU2VydmVyRXJyb3IgPSB1bmRlZmluZWRcblxuICAvKiogQHBhcmFtIHtCcm93c2VyQXJnc30gW2FyZ3NdICovXG4gIGNvbnN0cnVjdG9yKHtkZWJ1ZyA9IGZhbHNlLCBkcml2ZXIsIGNvbW11bmljYXRvciwgc2NyZWVuc2hvdHNQYXRoID0gYCR7cHJvY2Vzcy5jd2QoKX0vdG1wL3NjcmVlbnNob3RzYCwgLi4ucmVzdEFyZ3N9ID0ge30pIHtcbiAgICBjb25zdCByZXN0QXJnc0tleXMgPSBPYmplY3Qua2V5cyhyZXN0QXJncylcblxuICAgIGlmIChyZXN0QXJnc0tleXMubGVuZ3RoID4gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmtub3duIGJyb3dzZXIgYXJndW1lbnRzOiAke3Jlc3RBcmdzS2V5cy5qb2luKFwiLCBcIil9YClcbiAgICB9XG5cbiAgICB0aGlzLl9kZWJ1ZyA9IGRlYnVnXG4gICAgdGhpcy5fZHJpdmVyQ29uZmlnID0gZHJpdmVyXG4gICAgdGhpcy5fc2NyZWVuc2hvdHNQYXRoID0gc2NyZWVuc2hvdHNQYXRoXG4gICAgdGhpcy5jb21tdW5pY2F0b3IgPSBjb21tdW5pY2F0b3JcbiAgICB0aGlzLmRyaXZlckFkYXB0ZXIgPSB0aGlzLmNyZWF0ZURyaXZlcihkcml2ZXIpXG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtCcm93c2VyRHJpdmVyQ29uZmlnfSBbZHJpdmVyQ29uZmlnXVxuICAgKiBAcmV0dXJucyB7aW1wb3J0KFwiLi9kcml2ZXJzL3dlYmRyaXZlci1kcml2ZXIuanNcIikuZGVmYXVsdH1cbiAgICovXG4gIGNyZWF0ZURyaXZlcihkcml2ZXJDb25maWcgPSB7fSkge1xuICAgIGNvbnN0IHt0eXBlID0gXCJzZWxlbml1bVwiLCBvcHRpb25zLCAuLi5yZXN0QXJnc30gPSBkcml2ZXJDb25maWdcbiAgICBjb25zdCByZXN0QXJnc0tleXMgPSBPYmplY3Qua2V5cyhyZXN0QXJncylcblxuICAgIGlmIChyZXN0QXJnc0tleXMubGVuZ3RoID4gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmtub3duIGRyaXZlciBhcmdzOiAke3Jlc3RBcmdzS2V5cy5qb2luKFwiLCBcIil9YClcbiAgICB9XG5cbiAgICBpZiAodHlwZSA9PT0gXCJzZWxlbml1bVwiKSB7XG4gICAgICByZXR1cm4gbmV3IFNlbGVuaXVtRHJpdmVyKHticm93c2VyOiB0aGlzLCBvcHRpb25zfSlcbiAgICB9XG5cbiAgICBpZiAodHlwZSA9PT0gXCJhcHBpdW1cIikge1xuICAgICAgcmV0dXJuIG5ldyBBcHBpdW1Ecml2ZXIoe2Jyb3dzZXI6IHRoaXMsIG9wdGlvbnN9KVxuICAgIH1cblxuICAgIHRocm93IG5ldyBFcnJvcihgVW5zdXBwb3J0ZWQgZHJpdmVyIHR5cGU6ICR7dHlwZX1gKVxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7aW1wb3J0KFwiLi9zeXN0ZW0tdGVzdC1jb21tdW5pY2F0b3IuanNcIikuZGVmYXVsdCB8IHVuZGVmaW5lZH0gY29tbXVuaWNhdG9yXG4gICAqIEByZXR1cm5zIHt2b2lkfVxuICAgKi9cbiAgc2V0Q29tbXVuaWNhdG9yKGNvbW11bmljYXRvcikge1xuICAgIHRoaXMuY29tbXVuaWNhdG9yID0gY29tbXVuaWNhdG9yXG4gIH1cblxuICAvKiogQHJldHVybnMge2Jvb2xlYW59ICovXG4gIGNvbW11bmljYXRvckV4aXN0cygpIHtcbiAgICByZXR1cm4gQm9vbGVhbih0aGlzLmNvbW11bmljYXRvcilcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gYmFzZVNlbGVjdG9yXG4gICAqIEByZXR1cm5zIHt2b2lkfVxuICAgKi9cbiAgc2V0QmFzZVNlbGVjdG9yKGJhc2VTZWxlY3RvcikgeyB0aGlzLl9iYXNlU2VsZWN0b3IgPSBiYXNlU2VsZWN0b3IgfVxuXG4gIC8qKiBAcmV0dXJucyB7c3RyaW5nIHwgdW5kZWZpbmVkfSAqL1xuICBnZXRCYXNlU2VsZWN0b3IoKSB7IHJldHVybiB0aGlzLl9iYXNlU2VsZWN0b3IgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gc2VsZWN0b3JcbiAgICogQHJldHVybnMge3N0cmluZ31cbiAgICovXG4gIGdldFNlbGVjdG9yKHNlbGVjdG9yKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0QmFzZVNlbGVjdG9yKCkgPyBgJHt0aGlzLmdldEJhc2VTZWxlY3RvcigpfSAke3NlbGVjdG9yfWAgOiBzZWxlY3RvclxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7Li4uYW55fSBhcmdzXG4gICAqIEByZXR1cm5zIHt2b2lkfVxuICAgKi9cbiAgZGVidWdFcnJvciguLi5hcmdzKSB7XG4gICAgY29uc29sZS5lcnJvcihcIltCcm93c2VyIGVycm9yXVwiLCAuLi5hcmdzKVxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7Li4uYW55fSBhcmdzXG4gICAqIEByZXR1cm5zIHt2b2lkfVxuICAgKi9cbiAgZGVidWdMb2coLi4uYXJncykge1xuICAgIGlmICh0aGlzLl9kZWJ1Zykge1xuICAgICAgY29uc29sZS5sb2coXCJbQnJvd3NlciBkZWJ1Z11cIiwgLi4uYXJncylcbiAgICB9XG4gIH1cblxuICAvKiogQHJldHVybnMge3ZvaWR9ICovXG4gIHRocm93SWZIdHRwU2VydmVyRXJyb3IoKSB7XG4gICAgaWYgKHRoaXMuX2h0dHBTZXJ2ZXJFcnJvcikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBIVFRQIHNlcnZlciBlcnJvcjogJHt0aGlzLl9odHRwU2VydmVyRXJyb3IubWVzc2FnZX1gKVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge0Vycm9yfSBlcnJvclxuICAgKiBAcmV0dXJucyB7dm9pZH1cbiAgICovXG4gIG9uSHR0cFNlcnZlckVycm9yID0gKGVycm9yKSA9PiB7XG4gICAgY29uc3QgZXJyb3JNZXNzYWdlID0gZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiBTdHJpbmcoZXJyb3IpXG5cbiAgICB0aGlzLl9odHRwU2VydmVyRXJyb3IgPSBlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IgOiBuZXcgRXJyb3IoZXJyb3JNZXNzYWdlKVxuICAgIGNvbnNvbGUuZXJyb3IoYEhUVFAgc2VydmVyIGVycm9yOiAke2Vycm9yTWVzc2FnZX1gKVxuICB9XG5cbiAgLyoqIEByZXR1cm5zIHtpbXBvcnQoXCJzZWxlbml1bS13ZWJkcml2ZXJcIikuV2ViRHJpdmVyfSAqL1xuICBnZXREcml2ZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0RHJpdmVyQWRhcHRlcigpLmdldFdlYkRyaXZlcigpXG4gIH1cblxuICAvKiogQHJldHVybnMge2ltcG9ydChcIi4vZHJpdmVycy93ZWJkcml2ZXItZHJpdmVyLmpzXCIpLmRlZmF1bHR9ICovXG4gIGdldERyaXZlckFkYXB0ZXIoKSB7XG4gICAgaWYgKCF0aGlzLmRyaXZlckFkYXB0ZXIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIkRyaXZlciBoYXNuJ3QgYmVlbiBpbml0aWFsaXplZCB5ZXRcIilcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5kcml2ZXJBZGFwdGVyXG4gIH1cblxuICAvKiogQHJldHVybnMge251bWJlcn0gKi9cbiAgZ2V0VGltZW91dHMoKSB7IHJldHVybiB0aGlzLmdldERyaXZlckFkYXB0ZXIoKS5nZXRUaW1lb3V0cygpIH1cblxuICAvKiogQHJldHVybnMge1Byb21pc2U8dm9pZD59ICovXG4gIGFzeW5jIHJlc3RvcmVUaW1lb3V0cygpIHtcbiAgICBhd2FpdCB0aGlzLmdldERyaXZlckFkYXB0ZXIoKS5yZXN0b3JlVGltZW91dHMoKVxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBuZXdUaW1lb3V0XG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fVxuICAgKi9cbiAgYXN5bmMgZHJpdmVyU2V0VGltZW91dHMobmV3VGltZW91dCkge1xuICAgIGF3YWl0IHRoaXMuZ2V0RHJpdmVyQWRhcHRlcigpLmRyaXZlclNldFRpbWVvdXRzKG5ld1RpbWVvdXQpXG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtudW1iZXJ9IG5ld1RpbWVvdXRcbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59XG4gICAqL1xuICBhc3luYyBzZXRUaW1lb3V0cyhuZXdUaW1lb3V0KSB7XG4gICAgYXdhaXQgdGhpcy5nZXREcml2ZXJBZGFwdGVyKCkuc2V0VGltZW91dHMobmV3VGltZW91dClcbiAgfVxuXG4gIC8qKiBAcmV0dXJucyB7UHJvbWlzZTxzdHJpbmdbXT59ICovXG4gIGFzeW5jIGdldEJyb3dzZXJMb2dzKCkge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLmdldERyaXZlckFkYXB0ZXIoKS5nZXRCcm93c2VyTG9ncygpXG4gIH1cblxuICAvKiogQHJldHVybnMge1Byb21pc2U8c3RyaW5nPn0gKi9cbiAgYXN5bmMgZ2V0Q3VycmVudFVybCgpIHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5nZXREcml2ZXJBZGFwdGVyKCkuZ2V0Q3VycmVudFVybCgpXG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtzdHJpbmd9IHNlbGVjdG9yXG4gICAqIEBwYXJhbSB7aW1wb3J0KFwiLi9zeXN0ZW0tdGVzdC5qc1wiKS5GaW5kQXJnc30gW2FyZ3NdXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPGltcG9ydChcInNlbGVuaXVtLXdlYmRyaXZlclwiKS5XZWJFbGVtZW50W10+fVxuICAgKi9cbiAgYXN5bmMgYWxsKHNlbGVjdG9yLCBhcmdzID0ge30pIHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5nZXREcml2ZXJBZGFwdGVyKCkuYWxsKHNlbGVjdG9yLCBhcmdzKVxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzZWxlY3RvclxuICAgKiBAcGFyYW0ge2ltcG9ydChcIi4vc3lzdGVtLXRlc3QuanNcIikuRmluZEFyZ3N9IFthcmdzXVxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxpbXBvcnQoXCJzZWxlbml1bS13ZWJkcml2ZXJcIikuV2ViRWxlbWVudD59XG4gICAqL1xuICBhc3luYyBmaW5kKHNlbGVjdG9yLCBhcmdzID0ge30pIHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5nZXREcml2ZXJBZGFwdGVyKCkuZmluZChzZWxlY3RvciwgYXJncylcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdGVzdElEXG4gICAqIEBwYXJhbSB7aW1wb3J0KFwiLi9zeXN0ZW0tdGVzdC5qc1wiKS5GaW5kQXJnc30gW2FyZ3NdXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPGltcG9ydChcInNlbGVuaXVtLXdlYmRyaXZlclwiKS5XZWJFbGVtZW50Pn1cbiAgICovXG4gIGFzeW5jIGZpbmRCeVRlc3RJRCh0ZXN0SUQsIGFyZ3MpIHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5nZXREcml2ZXJBZGFwdGVyKCkuZmluZEJ5VGVzdElEKHRlc3RJRCwgYXJncylcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gc2VsZWN0b3JcbiAgICogQHBhcmFtIHtpbXBvcnQoXCIuL3N5c3RlbS10ZXN0LmpzXCIpLkZpbmRBcmdzfSBbYXJnc11cbiAgICogQHJldHVybnMge1Byb21pc2U8aW1wb3J0KFwic2VsZW5pdW0td2ViZHJpdmVyXCIpLldlYkVsZW1lbnQ+fVxuICAgKi9cbiAgYXN5bmMgZmluZE5vV2FpdChzZWxlY3RvciwgYXJncyA9IHt9KSB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuZ2V0RHJpdmVyQWRhcHRlcigpLmZpbmROb1dhaXQoc2VsZWN0b3IsIGFyZ3MpXG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBpbXBvcnQoXCJzZWxlbml1bS13ZWJkcml2ZXJcIikuV2ViRWxlbWVudH0gZWxlbWVudE9ySWRlbnRpZmllclxuICAgKiBAcGFyYW0ge2ltcG9ydChcIi4vc3lzdGVtLXRlc3QuanNcIikuRmluZEFyZ3N9IFthcmdzXVxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn1cbiAgICovXG4gIGFzeW5jIGNsaWNrKGVsZW1lbnRPcklkZW50aWZpZXIsIGFyZ3MpIHtcbiAgICBhd2FpdCB0aGlzLmdldERyaXZlckFkYXB0ZXIoKS5jbGljayhlbGVtZW50T3JJZGVudGlmaWVyLCBhcmdzKVxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7aW1wb3J0KFwic2VsZW5pdW0td2ViZHJpdmVyXCIpLldlYkVsZW1lbnR8c3RyaW5nfHtzZWxlY3Rvcjogc3RyaW5nfSAmIGltcG9ydChcIi4vc3lzdGVtLXRlc3QuanNcIikuRmluZEFyZ3N9IGVsZW1lbnRPcklkZW50aWZpZXJcbiAgICogQHBhcmFtIHtzdHJpbmd9IG1ldGhvZE5hbWVcbiAgICogQHBhcmFtIHsuLi5hbnl9IGFyZ3NcbiAgICogQHJldHVybnMge1Byb21pc2U8YW55Pn1cbiAgICovXG4gIGFzeW5jIGludGVyYWN0KGVsZW1lbnRPcklkZW50aWZpZXIsIG1ldGhvZE5hbWUsIC4uLmFyZ3MpIHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5nZXREcml2ZXJBZGFwdGVyKCkuaW50ZXJhY3QoZWxlbWVudE9ySWRlbnRpZmllciwgbWV0aG9kTmFtZSwgLi4uYXJncylcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gc2VsZWN0b3JcbiAgICogQHBhcmFtIHtpbXBvcnQoXCIuL3N5c3RlbS10ZXN0LmpzXCIpLldhaXRGb3JOb1NlbGVjdG9yQXJnc30gW2FyZ3NdXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fVxuICAgKi9cbiAgYXN5bmMgd2FpdEZvck5vU2VsZWN0b3Ioc2VsZWN0b3IsIGFyZ3MgPSB7fSkge1xuICAgIGF3YWl0IHRoaXMuZ2V0RHJpdmVyQWRhcHRlcigpLndhaXRGb3JOb1NlbGVjdG9yKHNlbGVjdG9yLCBhcmdzKVxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzZWxlY3RvclxuICAgKiBAcGFyYW0ge2ltcG9ydChcIi4vc3lzdGVtLXRlc3QuanNcIikuRmluZEFyZ3N9IFthcmdzXVxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn1cbiAgICovXG4gIGFzeW5jIGV4cGVjdE5vRWxlbWVudChzZWxlY3RvciwgYXJncyA9IHt9KSB7XG4gICAgbGV0IGZvdW5kID0gZmFsc2VcblxuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLmZpbmROb1dhaXQoc2VsZWN0b3IsIGFyZ3MpXG4gICAgICBmb3VuZCA9IHRydWVcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgRXJyb3IgJiYgZXJyb3IubWVzc2FnZS5zdGFydHNXaXRoKFwiRWxlbWVudCBjb3VsZG4ndCBiZSBmb3VuZCBhZnRlciBcIikpIHtcbiAgICAgICAgLy8gSWdub3JlXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBlcnJvclxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChmb3VuZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBFeHBlY3RlZCBub3QgdG8gZmluZDogJHtzZWxlY3Rvcn1gKVxuICAgIH1cbiAgfVxuXG4gIC8qKiBAcmV0dXJucyB7UHJvbWlzZTxzdHJpbmc+fSAqL1xuICBhc3luYyBnZXRIVE1MKCkge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLmdldERyaXZlckFkYXB0ZXIoKS5nZXRIVE1MKClcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge251bWJlciB8IHVuZGVmaW5lZH0gdGltZW91dE92ZXJyaWRlXG4gICAqIEByZXR1cm5zIHtudW1iZXJ9XG4gICAqL1xuICBnZXRDb21tYW5kVGltZW91dCh0aW1lb3V0T3ZlcnJpZGUpIHtcbiAgICBpZiAodGltZW91dE92ZXJyaWRlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiB0aW1lb3V0T3ZlcnJpZGVcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5nZXRUaW1lb3V0cygpXG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtzdHJpbmd9IHBhdGhcbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59XG4gICAqL1xuICBhc3luYyBkcml2ZXJWaXNpdChwYXRoKSB7XG4gICAgYXdhaXQgdGhpcy5nZXREcml2ZXJBZGFwdGVyKCkuZHJpdmVyVmlzaXQocGF0aClcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdHlwZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gcGF0aFxuICAgKiBAcGFyYW0ge0Jyb3dzZXJOYXZpZ2F0aW9uQXJnc30gW2FyZ3NdXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fVxuICAgKi9cbiAgYXN5bmMgc2VuZEJyb3dzZXJDb21tYW5kKHR5cGUsIHBhdGgsIGFyZ3MgPSB7fSkge1xuICAgIGlmICghdGhpcy5jb21tdW5pY2F0b3IpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIkNvbW11bmljYXRvciBoYXNuJ3QgYmVlbiBpbml0aWFsaXplZCB5ZXRcIilcbiAgICB9XG5cbiAgICBhd2FpdCB0aW1lb3V0KFxuICAgICAge3RpbWVvdXQ6IHRoaXMuZ2V0Q29tbWFuZFRpbWVvdXQoYXJncy50aW1lb3V0KSwgZXJyb3JNZXNzYWdlOiBgdGltZW91dCB3aGlsZSBzZW5kaW5nIGJyb3dzZXIgY29tbWFuZCAke3R5cGV9OiAke3BhdGh9YH0sXG4gICAgICBhc3luYyAoKSA9PiBhd2FpdCB0aGlzLmNvbW11bmljYXRvci5zZW5kQ29tbWFuZCh7dHlwZSwgcGF0aH0pXG4gICAgKVxuICB9XG5cbiAgLyoqXG4gICAqIFZpc2l0cyBhIHBhdGggdXNpbmcgdGhlIGluamVjdGVkIGJyb3dzZXIgaGVscGVyIHdoZW4gYXZhaWxhYmxlLCBvdGhlcndpc2UgbmF2aWdhdGVzIGRpcmVjdGx5IHdpdGggdGhlIGRyaXZlci5cbiAgICogQHBhcmFtIHtzdHJpbmd9IHBhdGhcbiAgICogQHBhcmFtIHtCcm93c2VyTmF2aWdhdGlvbkFyZ3N9IFthcmdzXVxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn1cbiAgICovXG4gIGFzeW5jIHZpc2l0KHBhdGgsIGFyZ3MgPSB7fSkge1xuICAgIGlmICh0aGlzLmNvbW11bmljYXRvckV4aXN0cygpKSB7XG4gICAgICBhd2FpdCB0aGlzLnNlbmRCcm93c2VyQ29tbWFuZChcInZpc2l0XCIsIHBhdGgsIGFyZ3MpXG4gICAgfSBlbHNlIHtcbiAgICAgIGF3YWl0IHRpbWVvdXQoXG4gICAgICAgIHt0aW1lb3V0OiB0aGlzLmdldENvbW1hbmRUaW1lb3V0KGFyZ3MudGltZW91dCksIGVycm9yTWVzc2FnZTogYHRpbWVvdXQgd2hpbGUgdmlzaXRpbmcgcGF0aDogJHtwYXRofWB9LFxuICAgICAgICBhc3luYyAoKSA9PiBhd2FpdCB0aGlzLmRyaXZlclZpc2l0KHBhdGgpXG4gICAgICApXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIERpc21pc3NlcyB0byBhIHBhdGggdmlhIHRoZSBpbmplY3RlZCBicm93c2VyIGhlbHBlciB3aGVuIGF2YWlsYWJsZSwgb3RoZXJ3aXNlIG5hdmlnYXRlcyBkaXJlY3RseSB3aXRoIHRoZSBkcml2ZXIuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBwYXRoXG4gICAqIEBwYXJhbSB7QnJvd3Nlck5hdmlnYXRpb25BcmdzfSBbYXJnc11cbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59XG4gICAqL1xuICBhc3luYyBkaXNtaXNzVG8ocGF0aCwgYXJncyA9IHt9KSB7XG4gICAgaWYgKHRoaXMuY29tbXVuaWNhdG9yRXhpc3RzKCkpIHtcbiAgICAgIGF3YWl0IHRoaXMuc2VuZEJyb3dzZXJDb21tYW5kKFwiZGlzbWlzc1RvXCIsIHBhdGgsIGFyZ3MpXG4gICAgfSBlbHNlIHtcbiAgICAgIGF3YWl0IHRpbWVvdXQoXG4gICAgICAgIHt0aW1lb3V0OiB0aGlzLmdldENvbW1hbmRUaW1lb3V0KGFyZ3MudGltZW91dCksIGVycm9yTWVzc2FnZTogYHRpbWVvdXQgd2hpbGUgZGlzbWlzc2luZyB0byBwYXRoOiAke3BhdGh9YH0sXG4gICAgICAgIGFzeW5jICgpID0+IGF3YWl0IHRoaXMuZHJpdmVyVmlzaXQocGF0aClcbiAgICAgIClcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRm9ybWF0cyBicm93c2VyIGxvZ3MgZm9yIGNvbnNvbGUgb3V0cHV0IGFuZCB0cnVuY2F0ZXMgb3Zlcmx5IGxvbmcgb3V0cHV0LlxuICAgKiBAcGFyYW0ge3N0cmluZ1tdfSBsb2dzXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBbbWF4TGluZXNdXG4gICAqIEByZXR1cm5zIHtzdHJpbmdbXX1cbiAgICovXG4gIGZvcm1hdEJyb3dzZXJMb2dzRm9yQ29uc29sZShsb2dzLCBtYXhMaW5lcyA9IDIwMCkge1xuICAgIGlmICghQXJyYXkuaXNBcnJheShsb2dzKSB8fCBsb2dzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIFtcIihubyBicm93c2VyIGxvZ3MpXCJdXG4gICAgfVxuXG4gICAgaWYgKGxvZ3MubGVuZ3RoIDw9IG1heExpbmVzKSB7XG4gICAgICByZXR1cm4gbG9nc1xuICAgIH1cblxuICAgIGNvbnN0IGtlcHRMb2dzID0gbG9ncy5zbGljZShsb2dzLmxlbmd0aCAtIG1heExpbmVzKVxuICAgIGNvbnN0IGhpZGRlbkNvdW50ID0gbG9ncy5sZW5ndGggLSBtYXhMaW5lc1xuXG4gICAgcmV0dXJuIFtgKHNob3dpbmcgbGFzdCAke21heExpbmVzfSBvZiAke2xvZ3MubGVuZ3RofSBicm93c2VyIGxvZ3MsICR7aGlkZGVuQ291bnR9IG9taXR0ZWQpYCwgLi4ua2VwdExvZ3NdXG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtzdHJpbmdbXX0gbG9nc1xuICAgKiBAcmV0dXJucyB7dm9pZH1cbiAgICovXG4gIHByaW50QnJvd3NlckxvZ3NGb3JGYWlsdXJlKGxvZ3MpIHtcbiAgICBjb25zb2xlLmxvZyhcIkJyb3dzZXIgbG9nczpcIilcblxuICAgIGZvciAoY29uc3QgbGluZSBvZiB0aGlzLmZvcm1hdEJyb3dzZXJMb2dzRm9yQ29uc29sZShsb2dzKSkge1xuICAgICAgY29uc29sZS5sb2cobGluZSlcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVGFrZXMgYSBzY3JlZW5zaG90LCB3cml0ZXMgSFRNTC9icm93c2VyIGxvZ3MgdG8gZGlzaywgYW5kIHJldHVybnMgdGhlIGNvbGxlY3RlZCBhcnRpZmFjdHMuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHtjdXJyZW50VXJsOiBzdHJpbmcsIGh0bWw6IHN0cmluZywgaHRtbFBhdGg6IHN0cmluZywgbG9nczogc3RyaW5nW10sIGxvZ3NQYXRoOiBzdHJpbmcsIHNjcmVlbnNob3RQYXRoOiBzdHJpbmd9Pn1cbiAgICovXG4gIGFzeW5jIHRha2VTY3JlZW5zaG90KCkge1xuICAgIHRoaXMuZGVidWdMb2coXCJHZXR0aW5nIHBhdGggZm9yIHNjcmVlbnNob3RzXCIpXG4gICAgY29uc3QgcGF0aCA9IHRoaXMuX3NjcmVlbnNob3RzUGF0aFxuXG4gICAgdGhpcy5kZWJ1Z0xvZyhgQ3JlYXRpbmcgZGlyIHdpdGggcmVjdXJzaXZlOiAke3BhdGh9YClcbiAgICBhd2FpdCBmcy5ta2RpcihwYXRoLCB7cmVjdXJzaXZlOiB0cnVlfSlcblxuICAgIHRoaXMuZGVidWdMb2coXCJHZXR0aW5nIHNjcmVlbnNob3QgaW1hZ2UgY29udGVudFwiKVxuICAgIGNvbnN0IGltYWdlQ29udGVudCA9IGF3YWl0IHRpbWVvdXQoe3RpbWVvdXQ6IDUwMDAsIGVycm9yTWVzc2FnZTogXCJ0aW1lb3V0IHdoaWxlIHRha2luZyBzY3JlZW5zaG90XCJ9LCBhc3luYyAoKSA9PiBhd2FpdCB0aGlzLmdldERyaXZlckFkYXB0ZXIoKS50YWtlU2NyZWVuc2hvdCgpKVxuXG4gICAgdGhpcy5kZWJ1Z0xvZyhcIkdlbmVyYXRpbmcgZGF0ZSB2YXJpYWJsZXNcIilcbiAgICBjb25zdCBub3cgPSBuZXcgRGF0ZSgpXG4gICAgY29uc3QgdGltZXN0YW1wID0gbW9tZW50KG5vdykuZm9ybWF0KFwiWVlZWS1NTS1ERC1ISC1NTS1TU1wiKVxuICAgIGNvbnN0IHNjcmVlbnNob3RQYXRoID0gYCR7cGF0aH0vJHt0aW1lc3RhbXB9LnBuZ2BcbiAgICBjb25zdCBodG1sUGF0aCA9IGAke3BhdGh9LyR7dGltZXN0YW1wfS5odG1sYFxuICAgIGNvbnN0IGxvZ3NQYXRoID0gYCR7cGF0aH0vJHt0aW1lc3RhbXB9LmxvZ3MudHh0YFxuXG4gICAgdGhpcy5kZWJ1Z0xvZyhcIkdldHRpbmcgYnJvd3NlciBsb2dzXCIpXG4gICAgY29uc3QgbG9ncyA9IGF3YWl0IHRpbWVvdXQoe3RpbWVvdXQ6IDUwMDAsIGVycm9yTWVzc2FnZTogXCJ0aW1lb3V0IHdoaWxlIHJlYWRpbmcgYnJvd3NlciBsb2dzXCJ9LCBhc3luYyAoKSA9PiBhd2FpdCB0aGlzLmdldEJyb3dzZXJMb2dzKCkpXG4gICAgY29uc3QgaHRtbCA9IGF3YWl0IHRpbWVvdXQoe3RpbWVvdXQ6IDUwMDAsIGVycm9yTWVzc2FnZTogXCJ0aW1lb3V0IHdoaWxlIHJlYWRpbmcgcGFnZSBIVE1MXCJ9LCBhc3luYyAoKSA9PiBhd2FpdCB0aGlzLmdldEhUTUwoKSlcbiAgICBjb25zdCBodG1sUHJldHR5ID0gcHJldHRpZnkoaHRtbClcbiAgICB0aGlzLnByaW50QnJvd3NlckxvZ3NGb3JGYWlsdXJlKGxvZ3MpXG5cbiAgICB0aGlzLmRlYnVnTG9nKFwiV3JpdGluZyBmaWxlc1wiKVxuICAgIGF3YWl0IGZzLndyaXRlRmlsZShodG1sUGF0aCwgaHRtbFByZXR0eSlcbiAgICBhd2FpdCBmcy53cml0ZUZpbGUobG9nc1BhdGgsIGxvZ3Muam9pbihcIlxcblwiKSlcbiAgICBhd2FpdCBmcy53cml0ZUZpbGUoc2NyZWVuc2hvdFBhdGgsIGltYWdlQ29udGVudCwgXCJiYXNlNjRcIilcblxuICAgIGNvbnN0IGN1cnJlbnRVcmwgPSBhd2FpdCB0aGlzLmdldEN1cnJlbnRVcmwoKVxuXG4gICAgY29uc29sZS5sb2coXCJDdXJyZW50IFVSTDpcIiwgY3VycmVudFVybClcbiAgICBjb25zb2xlLmxvZyhcIkxvZ3M6XCIsIGxvZ3NQYXRoKVxuICAgIGNvbnNvbGUubG9nKFwiU2NyZWVuc2hvdDpcIiwgc2NyZWVuc2hvdFBhdGgpXG4gICAgY29uc29sZS5sb2coXCJIVE1MOlwiLCBodG1sUGF0aClcblxuICAgIHJldHVybiB7XG4gICAgICBjdXJyZW50VXJsLFxuICAgICAgaHRtbCxcbiAgICAgIGh0bWxQYXRoLFxuICAgICAgbG9ncyxcbiAgICAgIGxvZ3NQYXRoLFxuICAgICAgc2NyZWVuc2hvdFBhdGhcbiAgICB9XG4gIH1cblxuICAvKiogQHJldHVybnMge1Byb21pc2U8dm9pZD59ICovXG4gIGFzeW5jIHN0b3BEcml2ZXIoKSB7XG4gICAgaWYgKHRoaXMuZHJpdmVyQWRhcHRlcikge1xuICAgICAgYXdhaXQgdGhpcy5kcml2ZXJBZGFwdGVyLnN0b3AoKVxuICAgIH1cbiAgfVxufVxuIl19
375
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJvd3Nlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9icm93c2VyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVk7QUFFWixPQUFPLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUNqQyxPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUE7QUFDM0IsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLFFBQVEsQ0FBQTtBQUMvQixPQUFPLE9BQU8sTUFBTSwyQkFBMkIsQ0FBQTtBQUMvQyxPQUFPLGNBQWMsTUFBTSw4QkFBOEIsQ0FBQTtBQUN6RCxPQUFPLFlBQVksTUFBTSw0QkFBNEIsQ0FBQTtBQUVyRDs7Ozs7O0dBTUc7QUFDSDs7OztHQUlHO0FBQ0g7OztHQUdHO0FBRUgsb0VBQW9FO0FBQ3BFLE1BQU0sQ0FBQyxPQUFPLE9BQU8sT0FBTztJQWExQixrQ0FBa0M7SUFDbEMsWUFBWSxFQUFDLEtBQUssR0FBRyxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxlQUFlLEdBQUcsR0FBRyxPQUFPLENBQUMsR0FBRyxFQUFFLGtCQUFrQixFQUFFLEdBQUcsUUFBUSxFQUFDLEdBQUcsRUFBRTtRQWJ6SCxpRUFBaUU7UUFDakUsV0FBTSxHQUFHLFNBQVMsQ0FBQTtRQUVsQiwwRUFBMEU7UUFDMUUsa0JBQWEsR0FBRyxTQUFTLENBQUE7UUFFekIsV0FBTSxHQUFHLEtBQUssQ0FBQTtRQUNkLDhDQUE4QztRQUM5QyxrQkFBYSxHQUFHLFNBQVMsQ0FBQTtRQUN6QixnQ0FBZ0M7UUFDaEMscUJBQWdCLEdBQUcsU0FBUyxDQUFBO1FBK0Y1Qjs7O1dBR0c7UUFDSCxzQkFBaUIsR0FBRyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQzVCLE1BQU0sWUFBWSxHQUFHLEtBQUssWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQTtZQUUzRSxJQUFJLENBQUMs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LEVBQUUsQ0FBQyxTQUFTLENBQUMsY0FBYyxFQUFFLFlBQVksRUFBRSxRQUFRLENBQUMsQ0FBQTtRQUUxRCxNQUFNLFVBQVUsR0FBRyxNQUFNLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQTtRQUU3QyxPQUFPLENBQUMsR0FBRyxDQUFDLGNBQWMsRUFBRSxVQUFVLENBQUMsQ0FBQTtRQUN2QyxPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQTtRQUM5QixPQUFPLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxjQUFjLENBQUMsQ0FBQTtRQUMxQyxPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQTtRQUU5QixPQUFPO1lBQ0wsVUFBVTtZQUNWLElBQUk7WUFDSixRQUFRO1lBQ1IsSUFBSTtZQUNKLFFBQVE7WUFDUixjQUFjO1NBQ2YsQ0FBQTtJQUNILENBQUM7SUFFRCwrQkFBK0I7SUFDL0IsS0FBSyxDQUFDLFVBQVU7UUFDZCxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUN2QixNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUE7UUFDakMsQ0FBQztJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1jaGVja1xuXG5pbXBvcnQgZnMgZnJvbSBcIm5vZGU6ZnMvcHJvbWlzZXNcIlxuaW1wb3J0IG1vbWVudCBmcm9tIFwibW9tZW50XCJcbmltcG9ydCB7cHJldHRpZnl9IGZyb20gXCJodG1sZnlcIlxuaW1wb3J0IHRpbWVvdXQgZnJvbSBcImF3YWl0ZXJ5L2J1aWxkL3RpbWVvdXQuanNcIlxuaW1wb3J0IFNlbGVuaXVtRHJpdmVyIGZyb20gXCIuL2RyaXZlcnMvc2VsZW5pdW0tZHJpdmVyLmpzXCJcbmltcG9ydCBBcHBpdW1Ecml2ZXIgZnJvbSBcIi4vZHJpdmVycy9hcHBpdW0tZHJpdmVyLmpzXCJcblxuLyoqXG4gKiBAdHlwZWRlZiB7b2JqZWN0fSBCcm93c2VyQXJnc1xuICogQHByb3BlcnR5IHtib29sZWFufSBbZGVidWddIEVuYWJsZSBkZWJ1ZyBsb2dnaW5nLlxuICogQHByb3BlcnR5IHtCcm93c2VyRHJpdmVyQ29uZmlnfSBbZHJpdmVyXSBEcml2ZXIgY29uZmlndXJhdGlvbi5cbiAqIEBwcm9wZXJ0eSB7aW1wb3J0KFwiLi9zeXN0ZW0tdGVzdC1jb21tdW5pY2F0b3IuanNcIikuZGVmYXVsdH0gW2NvbW11bmljYXRvcl0gT3B0aW9uYWwgY29tbWFuZCBjb21tdW5pY2F0b3IgZm9yIGhlbHBlci1kcml2ZW4gbmF2aWdhdGlvbi5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBbc2NyZWVuc2hvdHNQYXRoXSBEaXJlY3RvcnkgdXNlZCBmb3Igc2F2ZWQgc2NyZWVuc2hvdHMgYW5kIGJyb3dzZXIgYXJ0aWZhY3RzLlxuICovXG4vKipcbiAqIEB0eXBlZGVmIHtvYmplY3R9IEJyb3dzZXJEcml2ZXJDb25maWdcbiAqIEBwcm9wZXJ0eSB7XCJzZWxlbml1bVwifFwiYXBwaXVtXCJ9IFt0eXBlXSBEcml2ZXIgaW1wbGVtZW50YXRpb24gdG8gdXNlLlxuICogQHByb3BlcnR5IHtSZWNvcmQ8c3RyaW5nLCBhbnk+fSBbb3B0aW9uc10gRHJpdmVyLXNwZWNpZmljIG9wdGlvbnMuXG4gKi9cbi8qKlxuICogQHR5cGVkZWYge29iamVjdH0gQnJvd3Nlck5hdmlnYXRpb25BcmdzXG4gKiBAcHJvcGVydHkge251bWJlcn0gW3RpbWVvdXRdIE92ZXJyaWRlIHRoZSB0aW1lb3V0IGZvciB0aGlzIG5hdmlnYXRpb24gY29tbWFuZC5cbiAqL1xuXG4vKiogR2VuZXJpYyBicm93c2VyIHNlc3Npb24gd3JhcHBlciBhcm91bmQgdGhlIGNvbmZpZ3VyZWQgZHJpdmVyLiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQnJvd3NlciB7XG4gIC8qKiBAdHlwZSB7aW1wb3J0KFwic2VsZW5pdW0td2ViZHJpdmVyXCIpLldlYkRyaXZlciB8IHVuZGVmaW5lZH0gKi9cbiAgZHJpdmVyID0gdW5kZWZpbmVkXG5cbiAgLyoqIEB0eXBlIHtpbXBvcnQoXCIuL2RyaXZlcnMvd2ViZHJpdmVyLWRyaXZlci5qc1wiKS5kZWZhdWx0IHwgdW5kZWZpbmVkfSAqL1xuICBkcml2ZXJBZGFwdGVyID0gdW5kZWZpbmVkXG5cbiAgX2RlYnVnID0gZmFsc2VcbiAgLyoqIEB0eXBlIHtCcm93c2VyRHJpdmVyQ29uZmlnIHwgdW5kZWZpbmVkfSAqL1xuICBfZHJpdmVyQ29uZmlnID0gdW5kZWZpbmVkXG4gIC8qKiBAdHlwZSB7RXJyb3IgfCB1bmRlZmluZWR9ICovXG4gIF9odHRwU2VydmVyRXJyb3IgPSB1bmRlZmluZWRcblxuICAvKiogQHBhcmFtIHtCcm93c2VyQXJnc30gW2FyZ3NdICovXG4gIGNvbnN0cnVjdG9yKHtkZWJ1ZyA9IGZhbHNlLCBkcml2ZXIsIGNvbW11bmljYXRvciwgc2NyZWVuc2hvdHNQYXRoID0gYCR7cHJvY2Vzcy5jd2QoKX0vdG1wL3NjcmVlbnNob3RzYCwgLi4ucmVzdEFyZ3N9ID0ge30pIHtcbiAgICBjb25zdCByZXN0QXJnc0tleXMgPSBPYmplY3Qua2V5cyhyZXN0QXJncylcblxuICAgIGlmIChyZXN0QXJnc0tleXMubGVuZ3RoID4gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmtub3duIGJyb3dzZXIgYXJndW1lbnRzOiAke3Jlc3RBcmdzS2V5cy5qb2luKFwiLCBcIil9YClcbiAgICB9XG5cbiAgICB0aGlzLl9kZWJ1ZyA9IGRlYnVnXG4gICAgdGhpcy5fZHJpdmVyQ29uZmlnID0gZHJpdmVyXG4gICAgdGhpcy5fc2NyZWVuc2hvdHNQYXRoID0gc2NyZWVuc2hvdHNQYXRoXG4gICAgdGhpcy5jb21tdW5pY2F0b3IgPSBjb21tdW5pY2F0b3JcbiAgICB0aGlzLmRyaXZlckFkYXB0ZXIgPSB0aGlzLmNyZWF0ZURyaXZlcihkcml2ZXIpXG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtCcm93c2VyRHJpdmVyQ29uZmlnfSBbZHJpdmVyQ29uZmlnXVxuICAgKiBAcmV0dXJucyB7aW1wb3J0KFwiLi9kcml2ZXJzL3dlYmRyaXZlci1kcml2ZXIuanNcIikuZGVmYXVsdH1cbiAgICovXG4gIGNyZWF0ZURyaXZlcihkcml2ZXJDb25maWcgPSB7fSkge1xuICAgIGNvbnN0IHt0eXBlID0gXCJzZWxlbml1bVwiLCBvcHRpb25zLCAuLi5yZXN0QXJnc30gPSBkcml2ZXJDb25maWdcbiAgICBjb25zdCByZXN0QXJnc0tleXMgPSBPYmplY3Qua2V5cyhyZXN0QXJncylcblxuICAgIGlmIChyZXN0QXJnc0tleXMubGVuZ3RoID4gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmtub3duIGRyaXZlciBhcmdzOiAke3Jlc3RBcmdzS2V5cy5qb2luKFwiLCBcIil9YClcbiAgICB9XG5cbiAgICBpZiAodHlwZSA9PT0gXCJzZWxlbml1bVwiKSB7XG4gICAgICByZXR1cm4gbmV3IFNlbGVuaXVtRHJpdmVyKHticm93c2VyOiB0aGlzLCBvcHRpb25zfSlcbiAgICB9XG5cbiAgICBpZiAodHlwZSA9PT0gXCJhcHBpdW1cIikge1xuICAgICAgcmV0dXJuIG5ldyBBcHBpdW1Ecml2ZXIoe2Jyb3dzZXI6IHRoaXMsIG9wdGlvbnN9KVxuICAgIH1cblxuICAgIHRocm93IG5ldyBFcnJvcihgVW5zdXBwb3J0ZWQgZHJpdmVyIHR5cGU6ICR7dHlwZX1gKVxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7aW1wb3J0KFwiLi9zeXN0ZW0tdGVzdC1jb21tdW5pY2F0b3IuanNcIikuZGVmYXVsdCB8IHVuZGVmaW5lZH0gY29tbXVuaWNhdG9yXG4gICAqIEByZXR1cm5zIHt2b2lkfVxuICAgKi9cbiAgc2V0Q29tbXVuaWNhdG9yKGNvbW11bmljYXRvcikge1xuICAgIHRoaXMuY29tbXVuaWNhdG9yID0gY29tbXVuaWNhdG9yXG4gIH1cblxuICAvKiogQHJldHVybnMge2Jvb2xlYW59ICovXG4gIGNvbW11bmljYXRvckV4aXN0cygpIHtcbiAgICByZXR1cm4gQm9vbGVhbih0aGlzLmNvbW11bmljYXRvcilcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gYmFzZVNlbGVjdG9yXG4gICAqIEByZXR1cm5zIHt2b2lkfVxuICAgKi9cbiAgc2V0QmFzZVNlbGVjdG9yKGJhc2VTZWxlY3RvcikgeyB0aGlzLl9iYXNlU2VsZWN0b3IgPSBiYXNlU2VsZWN0b3IgfVxuXG4gIC8qKiBAcmV0dXJucyB7c3RyaW5nIHwgdW5kZWZpbmVkfSAqL1xuICBnZXRCYXNlU2VsZWN0b3IoKSB7IHJldHVybiB0aGlzLl9iYXNlU2VsZWN0b3IgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gc2VsZWN0b3JcbiAgICogQHJldHVybnMge3N0cmluZ31cbiAgICovXG4gIGdldFNlbGVjdG9yKHNlbGVjdG9yKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0QmFzZVNlbGVjdG9yKCkgPyBgJHt0aGlzLmdldEJhc2VTZWxlY3RvcigpfSAke3NlbGVjdG9yfWAgOiBzZWxlY3RvclxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7Li4uYW55fSBhcmdzXG4gICAqIEByZXR1cm5zIHt2b2lkfVxuICAgKi9cbiAgZGVidWdFcnJvciguLi5hcmdzKSB7XG4gICAgY29uc29sZS5lcnJvcihcIltCcm93c2VyIGVycm9yXVwiLCAuLi5hcmdzKVxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7Li4uYW55fSBhcmdzXG4gICAqIEByZXR1cm5zIHt2b2lkfVxuICAgKi9cbiAgZGVidWdMb2coLi4uYXJncykge1xuICAgIGlmICh0aGlzLl9kZWJ1Zykge1xuICAgICAgY29uc29sZS5sb2coXCJbQnJvd3NlciBkZWJ1Z11cIiwgLi4uYXJncylcbiAgICB9XG4gIH1cblxuICAvKiogQHJldHVybnMge3ZvaWR9ICovXG4gIHRocm93SWZIdHRwU2VydmVyRXJyb3IoKSB7XG4gICAgaWYgKHRoaXMuX2h0dHBTZXJ2ZXJFcnJvcikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBIVFRQIHNlcnZlciBlcnJvcjogJHt0aGlzLl9odHRwU2VydmVyRXJyb3IubWVzc2FnZX1gKVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge0Vycm9yfSBlcnJvclxuICAgKiBAcmV0dXJucyB7dm9pZH1cbiAgICovXG4gIG9uSHR0cFNlcnZlckVycm9yID0gKGVycm9yKSA9PiB7XG4gICAgY29uc3QgZXJyb3JNZXNzYWdlID0gZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiBTdHJpbmcoZXJyb3IpXG5cbiAgICB0aGlzLl9odHRwU2VydmVyRXJyb3IgPSBlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IgOiBuZXcgRXJyb3IoZXJyb3JNZXNzYWdlKVxuICAgIGNvbnNvbGUuZXJyb3IoYEhUVFAgc2VydmVyIGVycm9yOiAke2Vycm9yTWVzc2FnZX1gKVxuICB9XG5cbiAgLyoqIEByZXR1cm5zIHtpbXBvcnQoXCJzZWxlbml1bS13ZWJkcml2ZXJcIikuV2ViRHJpdmVyfSAqL1xuICBnZXREcml2ZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0RHJpdmVyQWRhcHRlcigpLmdldFdlYkRyaXZlcigpXG4gIH1cblxuICAvKiogQHJldHVybnMge2ltcG9ydChcIi4vZHJpdmVycy93ZWJkcml2ZXItZHJpdmVyLmpzXCIpLmRlZmF1bHR9ICovXG4gIGdldERyaXZlckFkYXB0ZXIoKSB7XG4gICAgaWYgKCF0aGlzLmRyaXZlckFkYXB0ZXIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIkRyaXZlciBoYXNuJ3QgYmVlbiBpbml0aWFsaXplZCB5ZXRcIilcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5kcml2ZXJBZGFwdGVyXG4gIH1cblxuICAvKiogQHJldHVybnMge251bWJlcn0gKi9cbiAgZ2V0VGltZW91dHMoKSB7IHJldHVybiB0aGlzLmdldERyaXZlckFkYXB0ZXIoKS5nZXRUaW1lb3V0cygpIH1cblxuICAvKiogQHJldHVybnMge1Byb21pc2U8dm9pZD59ICovXG4gIGFzeW5jIHJlc3RvcmVUaW1lb3V0cygpIHtcbiAgICBhd2FpdCB0aGlzLmdldERyaXZlckFkYXB0ZXIoKS5yZXN0b3JlVGltZW91dHMoKVxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBuZXdUaW1lb3V0XG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fVxuICAgKi9cbiAgYXN5bmMgZHJpdmVyU2V0VGltZW91dHMobmV3VGltZW91dCkge1xuICAgIGF3YWl0IHRoaXMuZ2V0RHJpdmVyQWRhcHRlcigpLmRyaXZlclNldFRpbWVvdXRzKG5ld1RpbWVvdXQpXG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtudW1iZXJ9IG5ld1RpbWVvdXRcbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59XG4gICAqL1xuICBhc3luYyBzZXRUaW1lb3V0cyhuZXdUaW1lb3V0KSB7XG4gICAgYXdhaXQgdGhpcy5nZXREcml2ZXJBZGFwdGVyKCkuc2V0VGltZW91dHMobmV3VGltZW91dClcbiAgfVxuXG4gIC8qKiBAcmV0dXJucyB7UHJvbWlzZTxzdHJpbmdbXT59ICovXG4gIGFzeW5jIGdldEJyb3dzZXJMb2dzKCkge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLmdldERyaXZlckFkYXB0ZXIoKS5nZXRCcm93c2VyTG9ncygpXG4gIH1cblxuICAvKiogQHJldHVybnMge1Byb21pc2U8c3RyaW5nPn0gKi9cbiAgYXN5bmMgZ2V0Q3VycmVudFVybCgpIHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5nZXREcml2ZXJBZGFwdGVyKCkuZ2V0Q3VycmVudFVybCgpXG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtzdHJpbmd9IHNlbGVjdG9yXG4gICAqIEBwYXJhbSB7aW1wb3J0KFwiLi9zeXN0ZW0tdGVzdC5qc1wiKS5GaW5kQXJnc30gW2FyZ3NdXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPGltcG9ydChcInNlbGVuaXVtLXdlYmRyaXZlclwiKS5XZWJFbGVtZW50W10+fVxuICAgKi9cbiAgYXN5bmMgYWxsKHNlbGVjdG9yLCBhcmdzID0ge30pIHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5nZXREcml2ZXJBZGFwdGVyKCkuYWxsKHNlbGVjdG9yLCBhcmdzKVxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzZWxlY3RvclxuICAgKiBAcGFyYW0ge2ltcG9ydChcIi4vc3lzdGVtLXRlc3QuanNcIikuRmluZEFyZ3N9IFthcmdzXVxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxpbXBvcnQoXCJzZWxlbml1bS13ZWJkcml2ZXJcIikuV2ViRWxlbWVudD59XG4gICAqL1xuICBhc3luYyBmaW5kKHNlbGVjdG9yLCBhcmdzID0ge30pIHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5nZXREcml2ZXJBZGFwdGVyKCkuZmluZChzZWxlY3RvciwgYXJncylcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdGVzdElEXG4gICAqIEBwYXJhbSB7aW1wb3J0KFwiLi9zeXN0ZW0tdGVzdC5qc1wiKS5GaW5kQXJnc30gW2FyZ3NdXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPGltcG9ydChcInNlbGVuaXVtLXdlYmRyaXZlclwiKS5XZWJFbGVtZW50Pn1cbiAgICovXG4gIGFzeW5jIGZpbmRCeVRlc3RJRCh0ZXN0SUQsIGFyZ3MpIHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5nZXREcml2ZXJBZGFwdGVyKCkuZmluZEJ5VGVzdElEKHRlc3RJRCwgYXJncylcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gc2VsZWN0b3JcbiAgICogQHBhcmFtIHtpbXBvcnQoXCIuL3N5c3RlbS10ZXN0LmpzXCIpLkZpbmRBcmdzfSBbYXJnc11cbiAgICogQHJldHVybnMge1Byb21pc2U8aW1wb3J0KFwic2VsZW5pdW0td2ViZHJpdmVyXCIpLldlYkVsZW1lbnQ+fVxuICAgKi9cbiAgYXN5bmMgZmluZE5vV2FpdChzZWxlY3RvciwgYXJncyA9IHt9KSB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuZ2V0RHJpdmVyQWRhcHRlcigpLmZpbmROb1dhaXQoc2VsZWN0b3IsIGFyZ3MpXG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBpbXBvcnQoXCJzZWxlbml1bS13ZWJkcml2ZXJcIikuV2ViRWxlbWVudH0gZWxlbWVudE9ySWRlbnRpZmllclxuICAgKiBAcGFyYW0ge2ltcG9ydChcIi4vc3lzdGVtLXRlc3QuanNcIikuRmluZEFyZ3N9IFthcmdzXVxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn1cbiAgICovXG4gIGFzeW5jIGNsaWNrKGVsZW1lbnRPcklkZW50aWZpZXIsIGFyZ3MpIHtcbiAgICBhd2FpdCB0aGlzLmdldERyaXZlckFkYXB0ZXIoKS5jbGljayhlbGVtZW50T3JJZGVudGlmaWVyLCBhcmdzKVxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7aW1wb3J0KFwic2VsZW5pdW0td2ViZHJpdmVyXCIpLldlYkVsZW1lbnR8c3RyaW5nfHtzZWxlY3Rvcjogc3RyaW5nfSAmIGltcG9ydChcIi4vc3lzdGVtLXRlc3QuanNcIikuSW50ZXJhY3RBcmdzfSBlbGVtZW50T3JJZGVudGlmaWVyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBtZXRob2ROYW1lXG4gICAqIEBwYXJhbSB7Li4uYW55fSBhcmdzXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPGFueT59XG4gICAqL1xuICBhc3luYyBpbnRlcmFjdChlbGVtZW50T3JJZGVudGlmaWVyLCBtZXRob2ROYW1lLCAuLi5hcmdzKSB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuZ2V0RHJpdmVyQWRhcHRlcigpLmludGVyYWN0KGVsZW1lbnRPcklkZW50aWZpZXIsIG1ldGhvZE5hbWUsIC4uLmFyZ3MpXG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtzdHJpbmd9IHNlbGVjdG9yXG4gICAqIEBwYXJhbSB7aW1wb3J0KFwiLi9zeXN0ZW0tdGVzdC5qc1wiKS5XYWl0Rm9yTm9TZWxlY3RvckFyZ3N9IFthcmdzXVxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn1cbiAgICovXG4gIGFzeW5jIHdhaXRGb3JOb1NlbGVjdG9yKHNlbGVjdG9yLCBhcmdzID0ge30pIHtcbiAgICBhd2FpdCB0aGlzLmdldERyaXZlckFkYXB0ZXIoKS53YWl0Rm9yTm9TZWxlY3RvcihzZWxlY3RvciwgYXJncylcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gc2VsZWN0b3JcbiAgICogQHBhcmFtIHtpbXBvcnQoXCIuL3N5c3RlbS10ZXN0LmpzXCIpLkZpbmRBcmdzfSBbYXJnc11cbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59XG4gICAqL1xuICBhc3luYyBleHBlY3ROb0VsZW1lbnQoc2VsZWN0b3IsIGFyZ3MgPSB7fSkge1xuICAgIGxldCBmb3VuZCA9IGZhbHNlXG5cbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5maW5kTm9XYWl0KHNlbGVjdG9yLCBhcmdzKVxuICAgICAgZm91bmQgPSB0cnVlXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEVycm9yICYmIGVycm9yLm1lc3NhZ2Uuc3RhcnRzV2l0aChcIkVsZW1lbnQgY291bGRuJ3QgYmUgZm91bmQgYWZ0ZXIgXCIpKSB7XG4gICAgICAgIC8vIElnbm9yZVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgZXJyb3JcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoZm91bmQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgRXhwZWN0ZWQgbm90IHRvIGZpbmQ6ICR7c2VsZWN0b3J9YClcbiAgICB9XG4gIH1cblxuICAvKiogQHJldHVybnMge1Byb21pc2U8c3RyaW5nPn0gKi9cbiAgYXN5bmMgZ2V0SFRNTCgpIHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5nZXREcml2ZXJBZGFwdGVyKCkuZ2V0SFRNTCgpXG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtudW1iZXIgfCB1bmRlZmluZWR9IHRpbWVvdXRPdmVycmlkZVxuICAgKiBAcmV0dXJucyB7bnVtYmVyfVxuICAgKi9cbiAgZ2V0Q29tbWFuZFRpbWVvdXQodGltZW91dE92ZXJyaWRlKSB7XG4gICAgaWYgKHRpbWVvdXRPdmVycmlkZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gdGltZW91dE92ZXJyaWRlXG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuZ2V0VGltZW91dHMoKVxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBwYXRoXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fVxuICAgKi9cbiAgYXN5bmMgZHJpdmVyVmlzaXQocGF0aCkge1xuICAgIGF3YWl0IHRoaXMuZ2V0RHJpdmVyQWRhcHRlcigpLmRyaXZlclZpc2l0KHBhdGgpXG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtzdHJpbmd9IHR5cGVcbiAgICogQHBhcmFtIHtzdHJpbmd9IHBhdGhcbiAgICogQHBhcmFtIHtCcm93c2VyTmF2aWdhdGlvbkFyZ3N9IFthcmdzXVxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn1cbiAgICovXG4gIGFzeW5jIHNlbmRCcm93c2VyQ29tbWFuZCh0eXBlLCBwYXRoLCBhcmdzID0ge30pIHtcbiAgICBpZiAoIXRoaXMuY29tbXVuaWNhdG9yKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJDb21tdW5pY2F0b3IgaGFzbid0IGJlZW4gaW5pdGlhbGl6ZWQgeWV0XCIpXG4gICAgfVxuXG4gICAgYXdhaXQgdGltZW91dChcbiAgICAgIHt0aW1lb3V0OiB0aGlzLmdldENvbW1hbmRUaW1lb3V0KGFyZ3MudGltZW91dCksIGVycm9yTWVzc2FnZTogYHRpbWVvdXQgd2hpbGUgc2VuZGluZyBicm93c2VyIGNvbW1hbmQgJHt0eXBlfTogJHtwYXRofWB9LFxuICAgICAgYXN5bmMgKCkgPT4gYXdhaXQgdGhpcy5jb21tdW5pY2F0b3Iuc2VuZENvbW1hbmQoe3R5cGUsIHBhdGh9KVxuICAgIClcbiAgfVxuXG4gIC8qKlxuICAgKiBWaXNpdHMgYSBwYXRoIHVzaW5nIHRoZSBpbmplY3RlZCBicm93c2VyIGhlbHBlciB3aGVuIGF2YWlsYWJsZSwgb3RoZXJ3aXNlIG5hdmlnYXRlcyBkaXJlY3RseSB3aXRoIHRoZSBkcml2ZXIuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBwYXRoXG4gICAqIEBwYXJhbSB7QnJvd3Nlck5hdmlnYXRpb25BcmdzfSBbYXJnc11cbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59XG4gICAqL1xuICBhc3luYyB2aXNpdChwYXRoLCBhcmdzID0ge30pIHtcbiAgICBpZiAodGhpcy5jb21tdW5pY2F0b3JFeGlzdHMoKSkge1xuICAgICAgYXdhaXQgdGhpcy5zZW5kQnJvd3NlckNvbW1hbmQoXCJ2aXNpdFwiLCBwYXRoLCBhcmdzKVxuICAgIH0gZWxzZSB7XG4gICAgICBhd2FpdCB0aW1lb3V0KFxuICAgICAgICB7dGltZW91dDogdGhpcy5nZXRDb21tYW5kVGltZW91dChhcmdzLnRpbWVvdXQpLCBlcnJvck1lc3NhZ2U6IGB0aW1lb3V0IHdoaWxlIHZpc2l0aW5nIHBhdGg6ICR7cGF0aH1gfSxcbiAgICAgICAgYXN5bmMgKCkgPT4gYXdhaXQgdGhpcy5kcml2ZXJWaXNpdChwYXRoKVxuICAgICAgKVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBEaXNtaXNzZXMgdG8gYSBwYXRoIHZpYSB0aGUgaW5qZWN0ZWQgYnJvd3NlciBoZWxwZXIgd2hlbiBhdmFpbGFibGUsIG90aGVyd2lzZSBuYXZpZ2F0ZXMgZGlyZWN0bHkgd2l0aCB0aGUgZHJpdmVyLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gcGF0aFxuICAgKiBAcGFyYW0ge0Jyb3dzZXJOYXZpZ2F0aW9uQXJnc30gW2FyZ3NdXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fVxuICAgKi9cbiAgYXN5bmMgZGlzbWlzc1RvKHBhdGgsIGFyZ3MgPSB7fSkge1xuICAgIGlmICh0aGlzLmNvbW11bmljYXRvckV4aXN0cygpKSB7XG4gICAgICBhd2FpdCB0aGlzLnNlbmRCcm93c2VyQ29tbWFuZChcImRpc21pc3NUb1wiLCBwYXRoLCBhcmdzKVxuICAgIH0gZWxzZSB7XG4gICAgICBhd2FpdCB0aW1lb3V0KFxuICAgICAgICB7dGltZW91dDogdGhpcy5nZXRDb21tYW5kVGltZW91dChhcmdzLnRpbWVvdXQpLCBlcnJvck1lc3NhZ2U6IGB0aW1lb3V0IHdoaWxlIGRpc21pc3NpbmcgdG8gcGF0aDogJHtwYXRofWB9LFxuICAgICAgICBhc3luYyAoKSA9PiBhd2FpdCB0aGlzLmRyaXZlclZpc2l0KHBhdGgpXG4gICAgICApXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEZvcm1hdHMgYnJvd3NlciBsb2dzIGZvciBjb25zb2xlIG91dHB1dCBhbmQgdHJ1bmNhdGVzIG92ZXJseSBsb25nIG91dHB1dC5cbiAgICogQHBhcmFtIHtzdHJpbmdbXX0gbG9nc1xuICAgKiBAcGFyYW0ge251bWJlcn0gW21heExpbmVzXVxuICAgKiBAcmV0dXJucyB7c3RyaW5nW119XG4gICAqL1xuICBmb3JtYXRCcm93c2VyTG9nc0ZvckNvbnNvbGUobG9ncywgbWF4TGluZXMgPSAyMDApIHtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkobG9ncykgfHwgbG9ncy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiBbXCIobm8gYnJvd3NlciBsb2dzKVwiXVxuICAgIH1cblxuICAgIGlmIChsb2dzLmxlbmd0aCA8PSBtYXhMaW5lcykge1xuICAgICAgcmV0dXJuIGxvZ3NcbiAgICB9XG5cbiAgICBjb25zdCBrZXB0TG9ncyA9IGxvZ3Muc2xpY2UobG9ncy5sZW5ndGggLSBtYXhMaW5lcylcbiAgICBjb25zdCBoaWRkZW5Db3VudCA9IGxvZ3MubGVuZ3RoIC0gbWF4TGluZXNcblxuICAgIHJldHVybiBbYChzaG93aW5nIGxhc3QgJHttYXhMaW5lc30gb2YgJHtsb2dzLmxlbmd0aH0gYnJvd3NlciBsb2dzLCAke2hpZGRlbkNvdW50fSBvbWl0dGVkKWAsIC4uLmtlcHRMb2dzXVxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7c3RyaW5nW119IGxvZ3NcbiAgICogQHJldHVybnMge3ZvaWR9XG4gICAqL1xuICBwcmludEJyb3dzZXJMb2dzRm9yRmFpbHVyZShsb2dzKSB7XG4gICAgY29uc29sZS5sb2coXCJCcm93c2VyIGxvZ3M6XCIpXG5cbiAgICBmb3IgKGNvbnN0IGxpbmUgb2YgdGhpcy5mb3JtYXRCcm93c2VyTG9nc0ZvckNvbnNvbGUobG9ncykpIHtcbiAgICAgIGNvbnNvbGUubG9nKGxpbmUpXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRha2VzIGEgc2NyZWVuc2hvdCwgd3JpdGVzIEhUTUwvYnJvd3NlciBsb2dzIHRvIGRpc2ssIGFuZCByZXR1cm5zIHRoZSBjb2xsZWN0ZWQgYXJ0aWZhY3RzLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx7Y3VycmVudFVybDogc3RyaW5nLCBodG1sOiBzdHJpbmcsIGh0bWxQYXRoOiBzdHJpbmcsIGxvZ3M6IHN0cmluZ1tdLCBsb2dzUGF0aDogc3RyaW5nLCBzY3JlZW5zaG90UGF0aDogc3RyaW5nfT59XG4gICAqL1xuICBhc3luYyB0YWtlU2NyZWVuc2hvdCgpIHtcbiAgICB0aGlzLmRlYnVnTG9nKFwiR2V0dGluZyBwYXRoIGZvciBzY3JlZW5zaG90c1wiKVxuICAgIGNvbnN0IHBhdGggPSB0aGlzLl9zY3JlZW5zaG90c1BhdGhcblxuICAgIHRoaXMuZGVidWdMb2coYENyZWF0aW5nIGRpciB3aXRoIHJlY3Vyc2l2ZTogJHtwYXRofWApXG4gICAgYXdhaXQgZnMubWtkaXIocGF0aCwge3JlY3Vyc2l2ZTogdHJ1ZX0pXG5cbiAgICB0aGlzLmRlYnVnTG9nKFwiR2V0dGluZyBzY3JlZW5zaG90IGltYWdlIGNvbnRlbnRcIilcbiAgICBjb25zdCBpbWFnZUNvbnRlbnQgPSBhd2FpdCB0aW1lb3V0KHt0aW1lb3V0OiA1MDAwLCBlcnJvck1lc3NhZ2U6IFwidGltZW91dCB3aGlsZSB0YWtpbmcgc2NyZWVuc2hvdFwifSwgYXN5bmMgKCkgPT4gYXdhaXQgdGhpcy5nZXREcml2ZXJBZGFwdGVyKCkudGFrZVNjcmVlbnNob3QoKSlcblxuICAgIHRoaXMuZGVidWdMb2coXCJHZW5lcmF0aW5nIGRhdGUgdmFyaWFibGVzXCIpXG4gICAgY29uc3Qgbm93ID0gbmV3IERhdGUoKVxuICAgIGNvbnN0IHRpbWVzdGFtcCA9IG1vbWVudChub3cpLmZvcm1hdChcIllZWVktTU0tREQtSEgtTU0tU1NcIilcbiAgICBjb25zdCBzY3JlZW5zaG90UGF0aCA9IGAke3BhdGh9LyR7dGltZXN0YW1wfS5wbmdgXG4gICAgY29uc3QgaHRtbFBhdGggPSBgJHtwYXRofS8ke3RpbWVzdGFtcH0uaHRtbGBcbiAgICBjb25zdCBsb2dzUGF0aCA9IGAke3BhdGh9LyR7dGltZXN0YW1wfS5sb2dzLnR4dGBcblxuICAgIHRoaXMuZGVidWdMb2coXCJHZXR0aW5nIGJyb3dzZXIgbG9nc1wiKVxuICAgIGNvbnN0IGxvZ3MgPSBhd2FpdCB0aW1lb3V0KHt0aW1lb3V0OiA1MDAwLCBlcnJvck1lc3NhZ2U6IFwidGltZW91dCB3aGlsZSByZWFkaW5nIGJyb3dzZXIgbG9nc1wifSwgYXN5bmMgKCkgPT4gYXdhaXQgdGhpcy5nZXRCcm93c2VyTG9ncygpKVxuICAgIGNvbnN0IGh0bWwgPSBhd2FpdCB0aW1lb3V0KHt0aW1lb3V0OiA1MDAwLCBlcnJvck1lc3NhZ2U6IFwidGltZW91dCB3aGlsZSByZWFkaW5nIHBhZ2UgSFRNTFwifSwgYXN5bmMgKCkgPT4gYXdhaXQgdGhpcy5nZXRIVE1MKCkpXG4gICAgY29uc3QgaHRtbFByZXR0eSA9IHByZXR0aWZ5KGh0bWwpXG4gICAgdGhpcy5wcmludEJyb3dzZXJMb2dzRm9yRmFpbHVyZShsb2dzKVxuXG4gICAgdGhpcy5kZWJ1Z0xvZyhcIldyaXRpbmcgZmlsZXNcIilcbiAgICBhd2FpdCBmcy53cml0ZUZpbGUoaHRtbFBhdGgsIGh0bWxQcmV0dHkpXG4gICAgYXdhaXQgZnMud3JpdGVGaWxlKGxvZ3NQYXRoLCBsb2dzLmpvaW4oXCJcXG5cIikpXG4gICAgYXdhaXQgZnMud3JpdGVGaWxlKHNjcmVlbnNob3RQYXRoLCBpbWFnZUNvbnRlbnQsIFwiYmFzZTY0XCIpXG5cbiAgICBjb25zdCBjdXJyZW50VXJsID0gYXdhaXQgdGhpcy5nZXRDdXJyZW50VXJsKClcblxuICAgIGNvbnNvbGUubG9nKFwiQ3VycmVudCBVUkw6XCIsIGN1cnJlbnRVcmwpXG4gICAgY29uc29sZS5sb2coXCJMb2dzOlwiLCBsb2dzUGF0aClcbiAgICBjb25zb2xlLmxvZyhcIlNjcmVlbnNob3Q6XCIsIHNjcmVlbnNob3RQYXRoKVxuICAgIGNvbnNvbGUubG9nKFwiSFRNTDpcIiwgaHRtbFBhdGgpXG5cbiAgICByZXR1cm4ge1xuICAgICAgY3VycmVudFVybCxcbiAgICAgIGh0bWwsXG4gICAgICBodG1sUGF0aCxcbiAgICAgIGxvZ3MsXG4gICAgICBsb2dzUGF0aCxcbiAgICAgIHNjcmVlbnNob3RQYXRoXG4gICAgfVxuICB9XG5cbiAgLyoqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSAqL1xuICBhc3luYyBzdG9wRHJpdmVyKCkge1xuICAgIGlmICh0aGlzLmRyaXZlckFkYXB0ZXIpIHtcbiAgICAgIGF3YWl0IHRoaXMuZHJpdmVyQWRhcHRlci5zdG9wKClcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -164,6 +164,8 @@ export function resolveBrowserCommand(flags) {
164
164
  args.methodName = flags.method;
165
165
  if (flags.arg)
166
166
  args.args = Array.isArray(flags.arg) ? flags.arg : [flags.arg];
167
+ if (flags["with-fallback"] !== undefined)
168
+ args.withFallback = flags["with-fallback"];
167
169
  if (timeout !== undefined)
168
170
  args.timeout = timeout;
169
171
  if (flags.visible !== undefined)
@@ -174,4 +176,4 @@ export function resolveBrowserCommand(flags) {
174
176
  }
175
177
  throw new Error("No browser command was given");
176
178
  }
177
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLWhlbHBlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvY2xpLWhlbHBlcnMuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLFNBQVMsQ0FBQyxJQUFJO0lBQzVCLE1BQU0sTUFBTSxHQUFHLEVBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFDLENBQUE7SUFDakMsTUFBTSxPQUFPLEdBQUcsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUU7UUFDN0IsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzNCLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFBO1lBQ3pCLE9BQU07UUFDUixDQUFDO1FBRUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDdEMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQTtRQUN6QyxDQUFDO1FBRUQsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDL0IsQ0FBQyxDQUFBO0lBRUQsS0FBSyxJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUUsS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQztRQUNqRCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7UUFFekIsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUM1QixNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMs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QUFDO0lBRUQsTUFBTSxJQUFJLEtBQUssQ0FBQyw4QkFBOEIsQ0FBQyxDQUFBO0FBQ2pELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBwYXJhbSB7c3RyaW5nW119IGFyZ3ZcbiAqIEByZXR1cm5zIHt7Xzogc3RyaW5nW10sIGZsYWdzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+fX1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlQXJndihhcmd2KSB7XG4gIGNvbnN0IHJlc3VsdCA9IHtfOiBbXSwgZmxhZ3M6IHt9fVxuICBjb25zdCBzZXRGbGFnID0gKGtleSwgdmFsdWUpID0+IHtcbiAgICBpZiAoIShrZXkgaW4gcmVzdWx0LmZsYWdzKSkge1xuICAgICAgcmVzdWx0LmZsYWdzW2tleV0gPSB2YWx1ZVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHJlc3VsdC5mbGFnc1trZXldKSkge1xuICAgICAgcmVzdWx0LmZsYWdzW2tleV0gPSBbcmVzdWx0LmZsYWdzW2tleV1dXG4gICAgfVxuXG4gICAgcmVzdWx0LmZsYWdzW2tleV0ucHVzaCh2YWx1ZSlcbiAgfVxuXG4gIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBhcmd2Lmxlbmd0aDsgaW5kZXgrKykge1xuICAgIGNvbnN0IHZhbHVlID0gYXJndltpbmRleF1cblxuICAgIGlmICghdmFsdWUuc3RhcnRzV2l0aChcIi0tXCIpKSB7XG4gICAgICByZXN1bHQuXy5wdXNoKHZhbHVlKVxuICAgICAgY29udGludWVcbiAgICB9XG5cbiAgICBjb25zdCBmbGFnID0gdmFsdWUuc2xpY2UoMilcblxuICAgIGlmIChmbGFnLmluY2x1ZGVzKFwiPVwiKSkge1xuICAgICAgY29uc3QgW2tleSwgLi4ucmVzdF0gPSBmbGFnLnNwbGl0KFwiPVwiKVxuXG4gICAgICBzZXRGbGFnKGtleSwgcmVzdC5qb2luKFwiPVwiKSlcbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuXG4gICAgY29uc3QgbmV4dFZhbHVlID0gYXJndltpbmRleCArIDFdXG5cbiAgICBpZiAobmV4dFZhbHVlICYmICFuZXh0VmFsdWUuc3RhcnRzV2l0aChcIi0tXCIpKSB7XG4gICAgICBzZXRGbGFnKGZsYWcsIG5leHRWYWx1ZSlcbiAgICAgIGluZGV4ICs9IDFcbiAgICB9IGVsc2Uge1xuICAgICAgc2V0RmxhZyhmbGFnLCB0cnVlKVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiByZXN1bHRcbn1cblxuLyoqXG4gKiBQYXJzZXMgYSBDTEkgdGltZW91dCBmbGFnIGludG8gbWlsbGlzZWNvbmRzLlxuICogQmFyZSBudW1lcmljIHZhbHVlcyBhcmUgdHJlYXRlZCBhcyBzZWNvbmRzIGZvciBDTEkgZXJnb25vbWljcy5cbiAqIEBwYXJhbSB7YW55fSB0aW1lb3V0RmxhZ1xuICogQHJldHVybnMge251bWJlciB8IHVuZGVmaW5lZH1cbiAqL1xuZnVuY3Rpb24gcmVzb2x2ZUNsaVRpbWVvdXQodGltZW91dEZsYWcpIHtcbiAgaWYgKHRpbWVvdXRGbGFnID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkXG4gIH1cblxuICBpZiAodHlwZW9mIHRpbWVvdXRGbGFnID09PSBcIm51bWJlclwiKSB7XG4gICAgcmV0dXJuIHRpbWVvdXRGbGFnICogMTAwMFxuICB9XG5cbiAgY29uc3QgdGltZW91dFN0cmluZyA9IFN0cmluZyh0aW1lb3V0RmxhZykudHJpbSgpXG5cbiAgaWYgKC9eXFxkKyhcXC5cXGQrKT9tcyQvaS50ZXN0KHRpbWVvdXRTdHJpbmcpKSB7XG4gICAgcmV0dXJuIE51bWJlcih0aW1lb3V0U3RyaW5nLnNsaWNlKDAsIC0yKSlcbiAgfVxuXG4gIGlmICgvXlxcZCsoXFwuXFxkKyk/cyQvaS50ZXN0KHRpbWVvdXRTdHJpbmcpKSB7XG4gICAgcmV0dXJuIE51bWJlcih0aW1lb3V0U3RyaW5nLnNsaWNlKDAsIC0xKSkgKiAxMDAwXG4gIH1cblxuICBpZiAoL15cXGQrKFxcLlxcZCspPyQvLnRlc3QodGltZW91dFN0cmluZykpIHtcbiAgICByZXR1cm4gTnVtYmVyKHRpbWVvdXRTdHJpbmcpICogMTAwMFxuICB9XG5cbiAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHRpbWVvdXQgZmxhZzogJHt0aW1lb3V0RmxhZ31gKVxufVxuXG4vKipcbiAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgYW55Pn0gZmxhZ3NcbiAqIEByZXR1cm5zIHt7Y29tbWFuZDogc3RyaW5nLCBhcmdzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+fX1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVCcm93c2VyQ29tbWFuZChmbGFncykge1xuICBjb25zdCB0aW1lb3V0ID0gcmVzb2x2ZUNsaVRpbWVvdXQoZmxhZ3MudGltZW91dClcblxuICBpZiAoZmxhZ3MudmlzaXQpIHtcbiAgICBjb25zdCBhcmdzID0ge3VybDogZmxhZ3MudmlzaXR9XG5cbiAgICBpZiAodGltZW91dCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBhcmdzLnRpbWVvdXQgPSB0aW1lb3V0XG4gICAgfVxuXG4gICAgcmV0dXJuIHthcmdzLCBjb21tYW5kOiBcInZpc2l0XCJ9XG4gIH1cblxuICBpZiAoZmxhZ3NbXCJkaXNtaXNzLXRvXCJdKSB7XG4gICAgY29uc3QgYXJncyA9IHtwYXRoOiBmbGFnc1tcImRpc21pc3MtdG9cIl19XG5cbiAgICBpZiAodGltZW91dCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBhcmdzLnRpbWVvdXQgPSB0aW1lb3V0XG4gICAgfVxuXG4gICAgcmV0dXJuIHthcmdzLCBjb21tYW5kOiBcImRpc21pc3NUb1wifVxuICB9XG5cbiAgaWYgKGZsYWdzW1wiZmluZC1ieS10ZXN0LWlkXCJdKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGFyZ3M6IHtcbiAgICAgICAgdGVzdElEOiBmbGFnc1tcImZpbmQtYnktdGVzdC1pZFwiXSxcbiAgICAgICAgdGltZW91dCxcbiAgICAgICAgdXNlQmFzZVNlbGVjdG9yOiBmbGFnc1tcInVzZS1iYXNlLXNlbGVjdG9yXCJdLFxuICAgICAgICB2aXNpYmxlOiBmbGFncy52aXNpYmxlXG4gICAgICB9LFxuICAgICAgY29tbWFuZDogXCJmaW5kQnlUZXN0SURcIlxuICAgIH1cbiAgfVxuXG4gIGlmIChmbGFncy5maW5kKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGFyZ3M6IHtcbiAgICAgICAgc2VsZWN0b3I6IGZsYWdzLmZpbmQsXG4gICAgICAgIHRpbWVvdXQsXG4gICAgICAgIHVzZUJhc2VTZWxlY3RvcjogZmxhZ3NbXCJ1c2UtYmFzZS1zZWxlY3RvclwiXSxcbiAgICAgICAgdmlzaWJsZTogZmxhZ3MudmlzaWJsZVxuICAgICAgfSxcbiAgICAgIGNvbW1hbmQ6IFwiZmluZFwiXG4gICAgfVxuICB9XG5cbiAgaWYgKGZsYWdzLmNsaWNrKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGFyZ3M6IHtcbiAgICAgICAgc2VsZWN0b3I6IGZsYWdzLmNsaWNrLFxuICAgICAgICB0aW1lb3V0LFxuICAgICAgICB1c2VCYXNlU2VsZWN0b3I6IGZsYWdzW1widXNlLWJhc2Utc2VsZWN0b3JcIl0sXG4gICAgICAgIHZpc2libGU6IGZsYWdzLnZpc2libGVcbiAgICAgIH0sXG4gICAgICBjb21tYW5kOiBcImNsaWNrXCJcbiAgICB9XG4gIH1cblxuICBpZiAoZmxhZ3NbXCJ3YWl0LWZvci1uby1zZWxlY3RvclwiXSkge1xuICAgIHJldHVybiB7XG4gICAgICBhcmdzOiB7XG4gICAgICAgIHNlbGVjdG9yOiBmbGFnc1tcIndhaXQtZm9yLW5vLXNlbGVjdG9yXCJdLFxuICAgICAgICB0aW1lb3V0LFxuICAgICAgICB1c2VCYXNlU2VsZWN0b3I6IGZsYWdzW1widXNlLWJhc2Utc2VsZWN0b3JcIl1cbiAgICAgIH0sXG4gICAgICBjb21tYW5kOiBcIndhaXRGb3JOb1NlbGVjdG9yXCJcbiAgICB9XG4gIH1cblxuICBpZiAoZmxhZ3NbXCJleHBlY3Qtbm8tZWxlbWVudFwiXSkge1xuICAgIHJldHVybiB7XG4gICAgICBhcmdzOiB7XG4gICAgICAgIHNlbGVjdG9yOiBmbGFnc1tcImV4cGVjdC1uby1lbGVtZW50XCJdLFxuICAgICAgICB0aW1lb3V0LFxuICAgICAgICB1c2VCYXNlU2VsZWN0b3I6IGZsYWdzW1widXNlLWJhc2Utc2VsZWN0b3JcIl1cbiAgICAgIH0sXG4gICAgICBjb21tYW5kOiBcImV4cGVjdE5vRWxlbWVudFwiXG4gICAgfVxuICB9XG5cbiAgaWYgKGZsYWdzW1wic2V0LWJhc2Utc2VsZWN0b3JcIl0pIHtcbiAgICByZXR1cm4ge2FyZ3M6IHtzZWxlY3RvcjogZmxhZ3NbXCJzZXQtYmFzZS1zZWxlY3RvclwiXX0sIGNvbW1hbmQ6IFwic2V0QmFzZVNlbGVjdG9yXCJ9XG4gIH1cblxuICBpZiAoZmxhZ3NbXCJnZXQtaHRtbFwiXSkge1xuICAgIHJldHVybiB7YXJnczoge30sIGNvbW1hbmQ6IFwiZ2V0SFRNTFwifVxuICB9XG5cbiAgaWYgKGZsYWdzW1wiZ2V0LWJyb3dzZXItbG9nc1wiXSkge1xuICAgIHJldHVybiB7YXJnczoge30sIGNvbW1hbmQ6IFwiZ2V0QnJvd3NlckxvZ3NcIn1cbiAgfVxuXG4gIGlmIChmbGFnc1tcImdldC1jdXJyZW50LXVybFwiXSkge1xuICAgIHJldHVybiB7YXJnczoge30sIGNvbW1hbmQ6IFwiZ2V0Q3VycmVudFVybFwifVxuICB9XG5cbiAgaWYgKGZsYWdzW1widGFrZS1zY3JlZW5zaG90XCJdKSB7XG4gICAgcmV0dXJuIHthcmdzOiB7fSwgY29tbWFuZDogXCJ0YWtlU2NyZWVuc2hvdFwifVxuICB9XG5cbiAgaWYgKGZsYWdzLmNvbW1hbmQpIHtcbiAgICBjb25zdCBhcmdzID0ge31cblxuICAgIGlmIChmbGFncy51cmwpIGFyZ3MudXJsID0gZmxhZ3MudXJsXG4gICAgaWYgKGZsYWdzLnBhdGgpIGFyZ3MucGF0aCA9IGZsYWdzLnBhdGhcbiAgICBpZiAoZmxhZ3Muc2VsZWN0b3IpIGFyZ3Muc2VsZWN0b3IgPSBmbGFncy5zZWxlY3RvclxuICAgIGlmIChmbGFnc1tcInRlc3QtaWRcIl0pIGFyZ3MudGVzdElEID0gZmxhZ3NbXCJ0ZXN0LWlkXCJdXG4gICAgaWYgKGZsYWdzLm1ldGhvZCkgYXJncy5tZXRob2ROYW1lID0gZmxhZ3MubWV0aG9kXG4gICAgaWYgKGZsYWdzLmFyZykgYXJncy5hcmdzID0gQXJyYXkuaXNBcnJheShmbGFncy5hcmcpID8gZmxhZ3MuYXJnIDogW2ZsYWdzLmFyZ11cbiAgICBpZiAodGltZW91dCAhPT0gdW5kZWZpbmVkKSBhcmdzLnRpbWVvdXQgPSB0aW1lb3V0XG4gICAgaWYgKGZsYWdzLnZpc2libGUgIT09IHVuZGVmaW5lZCkgYXJncy52aXNpYmxlID0gZmxhZ3MudmlzaWJsZVxuICAgIGlmIChmbGFnc1tcInVzZS1iYXNlLXNlbGVjdG9yXCJdICE9PSB1bmRlZmluZWQpIGFyZ3MudXNlQmFzZVNlbGVjdG9yID0gZmxhZ3NbXCJ1c2UtYmFzZS1zZWxlY3RvclwiXVxuXG4gICAgcmV0dXJuIHthcmdzLCBjb21tYW5kOiBmbGFncy5jb21tYW5kfVxuICB9XG5cbiAgdGhyb3cgbmV3IEVycm9yKFwiTm8gYnJvd3NlciBjb21tYW5kIHdhcyBnaXZlblwiKVxufVxuIl19
179
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLWhlbHBlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvY2xpLWhlbHBlcnMuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLFNBQVMsQ0FBQyxJQUFJO0lBQzVCLE1BQU0sTUFBTSxHQUFHLEVBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFDLENBQUE7SUFDakMsTUFBTSxPQUFPLEdBQUcsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUU7UUFDN0IsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzNCLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFBO1lBQ3pCLE9BQU07UUFDUixDQUFDO1FBRUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDdEMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQTtRQUN6QyxDQUFDO1FBRUQsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDL0IsQ0FBQyxDQUFBO0lBRUQsS0FBSyxJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUUsS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQztRQUNqRCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7UUFFekIsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUM1QixNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQTtZQUNwQixTQUFRO1FBQ1YsQ0FBQztRQUVELE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFFM0IsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDdkIsTUFBTSxDQUFDLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUE7WUFFdEMsT0FBTyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUE7WUFDNUIsU0FBUTtRQUNWLENBQUM7UUFFRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFBO1FBRWpDLElBQUksU0FBUyxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQzdDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUE7WUFDeEIsS0FBSyxJQUFJLENBQUMsQ0FBQTtRQUNaLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQTtRQUNyQixDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU8sTUFBTSxDQUFBO0FBQ2YsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsU0FBUyxpQkFBaUIsQ0FBQyxXQUFXO0lBQ3BDLElBQUksV0FBVyxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQzlCLE9BQU8sU0FBUyxDQUFBO0lBQ2xCLENBQUM7SUFFRCxJQUFJLE9BQU8sV0FBVyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQ3BDLE9BQU8sV0FBVyxHQUFHLElBQUksQ0FBQTtJQUMzQixDQUFDO0lBRUQsTUFBTSxhQUFhLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFBO0lBRWhELElBQUksa0JBQWtCLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUM7UUFDM0MsT0FBTyxNQUFNLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQzNDLENBQUM7SUFFRCxJQUFJLGlCQUFpQixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDO1FBQzFDLE9BQU8sTUFBTSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUE7SUFDbEQsQ0FBQztJQUVELElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDO1FBQ3hDLE9BQU8sTUFBTSxDQUFDLGFBQWEsQ0FBQyxHQUFHLElBQUksQ0FBQTtJQUNyQyxDQUFDO0lBRUQsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsV0FBVyxFQUFFLENBQUMsQ0FBQTtBQUN6RCxDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLHFCQUFxQixDQUFDLEtBQUs7SUFDekMsTUFBTSxPQUFPLEdBQUcsaUJBQWlCLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBRWhELElBQUksS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2hCLE1BQU0sSUFBSSxHQUFHLEVBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxLQUFLLEVBQUMsQ0FBQTtRQUUvQixJQUFJLE9BQU8sS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQTtRQUN4QixDQUFDO1FBRUQsT0FBTyxFQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFDLENBQUE7SUFDakMsQ0FBQztJQUVELElBQUksS0FBSyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUM7UUFDeEIsTUFBTSxJQUFJLEdBQUcsRUFBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLFlBQVksQ0FBQyxFQUFDLENBQUE7UUFFeEMsSUFBSSxPQUFPLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDMUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUE7UUFDeEIsQ0FBQztRQUVELE9BQU8sRUFBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBQyxDQUFBO0lBQ3JDLENBQUM7SUFFRCxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUM7UUFDN0IsT0FBTztZQUNMLElBQUksRUFBRTtnQkFDSixNQUFNLEVBQUUsS0FBSyxDQUFDLGlCQUFpQixDQUFDO2dCQUNoQyxPQUFPO2dCQUNQLGVBQWUsRUFBRSxLQUFLLENBQUMsbUJBQW1CLENBQUM7Z0JBQzNDLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTzthQUN2QjtZQUNELE9BQU8sRUFBRSxjQUFjO1NBQ3hCLENBQUE7SUFDSCxDQUFDO0lBRUQsSUFBSSxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDZixPQUFPO1lBQ0wsSUFBSSxFQUFFO2dCQUNKLFFBQVEsRUFBRSxLQUFLLENBQUMsSUFBSTtnQkFDcEIsT0FBTztnQkFDUCxlQUFlLEVBQUUsS0FBSyxDQUFDLG1CQUFtQixDQUFDO2dCQUMzQyxPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU87YUFDdkI7WUFDRCxPQUFPLEVBQUUsTUFBTTtTQUNoQixDQUFBO0lBQ0gsQ0FBQztJQUVELElBQUksS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2hCLE9BQU87WUFDTCxJQUFJLEVBQUU7Z0JBQ0osUUFBUSxFQUFFLEtBQUssQ0FBQyxLQUFLO2dCQUNyQixPQUFPO2dCQUNQLGVBQWUsRUFBRSxLQUFLLENBQUMsbUJBQW1CLENBQUM7Z0JBQzNDLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTzthQUN2QjtZQUNELE9BQU8sRUFBRSxPQUFPO1NBQ2pCLENBQUE7SUFDSCxDQUFDO0lBRUQsSUFBSSxLQUFLLENBQUMsc0JBQXNCLENBQUMsRUFBRSxDQUFDO1FBQ2xDLE9BQU87WUFDTCxJQUFJLEVBQUU7Z0JBQ0osUUFBUSxFQUFFLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQztnQkFDdkMsT0FBTztnQkFDUCxlQUFlLEVBQUUsS0FBSyxDQUFDLG1CQUFtQixDQUFDO2FBQzVDO1lBQ0QsT0FBTyxFQUFFLG1CQUFtQjtTQUM3QixDQUFBO0lBQ0gsQ0FBQztJQUVELElBQUksS0FBSyxDQUFDLG1CQUFtQixDQUFDLEVBQUUsQ0FBQztRQUMvQixPQUFPO1lBQ0wsSUFBSSxFQUFFO2dCQUNKLFFBQVEsRUFBRSxLQUFLLENBQUMsbUJBQW1CLENBQUM7Z0JBQ3BDLE9BQU87Z0JBQ1AsZUFBZSxFQUFFLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQzthQUM1QztZQUNELE9BQU8sRUFBRSxpQkFBaUI7U0FDM0IsQ0FBQTtJQUNILENBQUM7SUFFRCxJQUFJLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFLENBQUM7UUFDL0IsT0FBTyxFQUFDLElBQUksRUFBRSxFQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsbUJBQW1CLENBQUMsRUFBQyxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBQyxDQUFBO0lBQ25GLENBQUM7SUFFRCxJQUFJLEtBQUssQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1FBQ3RCLE9BQU8sRUFBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUMsQ0FBQTtJQUN2QyxDQUFDO0lBRUQsSUFBSSxLQUFLLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUFDO1FBQzlCLE9BQU8sRUFBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBQyxDQUFBO0lBQzlDLENBQUM7SUFFRCxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUM7UUFDN0IsT0FBTyxFQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBQyxDQUFBO0lBQzdDLENBQUM7SUFFRCxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUM7UUFDN0IsT0FBTyxFQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFDLENBQUE7SUFDOUMsQ0FBQztJQUVELElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2xCLE1BQU0sSUFBSSxHQUFHLEVBQUUsQ0FBQTtRQUVmLElBQUksS0FBSyxDQUFDLEdBQUc7WUFBRSxJQUFJLENBQUMsR0FBRyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUE7UUFDbkMsSUFBSSxLQUFLLENBQUMsSUFBSTtZQUFFLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQTtRQUN0QyxJQUFJLEtBQUssQ0FBQyxRQUFRO1lBQUUsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFBO1FBQ2xELElBQUksS0FBSyxDQUFDLFNBQVMsQ0FBQztZQUFFLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFBO1FBQ3BELElBQUksS0FBSyxDQUFDLE1BQU07WUFBRSxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUE7UUFDaEQsSUFBSSxLQUFLLENBQUMsR0FBRztZQUFFLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBQzdFLElBQUksS0FBSyxDQUFDLGVBQWUsQ0FBQyxLQUFLLFNBQVM7WUFBRSxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FBQTtRQUNwRixJQUFJLE9BQU8sS0FBSyxTQUFTO1lBQUUsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUE7UUFDakQsSUFBSSxLQUFLLENBQUMsT0FBTyxLQUFLLFNBQVM7WUFBRSxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUE7UUFDN0QsSUFBSSxLQUFLLENBQUMsbUJBQW1CLENBQUMsS0FBSyxTQUFTO1lBQUUsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUMsbUJBQW1CLENBQUMsQ0FBQTtRQUUvRixPQUFPLEVBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTyxFQUFDLENBQUE7SUFDdkMsQ0FBQztJQUVELE1BQU0sSUFBSSxLQUFLLENBQUMsOEJBQThCLENBQUMsQ0FBQTtBQUNqRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAcGFyYW0ge3N0cmluZ1tdfSBhcmd2XG4gKiBAcmV0dXJucyB7e186IHN0cmluZ1tdLCBmbGFnczogUmVjb3JkPHN0cmluZywgYW55Pn19XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUFyZ3YoYXJndikge1xuICBjb25zdCByZXN1bHQgPSB7XzogW10sIGZsYWdzOiB7fX1cbiAgY29uc3Qgc2V0RmxhZyA9IChrZXksIHZhbHVlKSA9PiB7XG4gICAgaWYgKCEoa2V5IGluIHJlc3VsdC5mbGFncykpIHtcbiAgICAgIHJlc3VsdC5mbGFnc1trZXldID0gdmFsdWVcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGlmICghQXJyYXkuaXNBcnJheShyZXN1bHQuZmxhZ3Nba2V5XSkpIHtcbiAgICAgIHJlc3VsdC5mbGFnc1trZXldID0gW3Jlc3VsdC5mbGFnc1trZXldXVxuICAgIH1cblxuICAgIHJlc3VsdC5mbGFnc1trZXldLnB1c2godmFsdWUpXG4gIH1cblxuICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgYXJndi5sZW5ndGg7IGluZGV4KyspIHtcbiAgICBjb25zdCB2YWx1ZSA9IGFyZ3ZbaW5kZXhdXG5cbiAgICBpZiAoIXZhbHVlLnN0YXJ0c1dpdGgoXCItLVwiKSkge1xuICAgICAgcmVzdWx0Ll8ucHVzaCh2YWx1ZSlcbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuXG4gICAgY29uc3QgZmxhZyA9IHZhbHVlLnNsaWNlKDIpXG5cbiAgICBpZiAoZmxhZy5pbmNsdWRlcyhcIj1cIikpIHtcbiAgICAgIGNvbnN0IFtrZXksIC4uLnJlc3RdID0gZmxhZy5zcGxpdChcIj1cIilcblxuICAgICAgc2V0RmxhZyhrZXksIHJlc3Quam9pbihcIj1cIikpXG4gICAgICBjb250aW51ZVxuICAgIH1cblxuICAgIGNvbnN0IG5leHRWYWx1ZSA9IGFyZ3ZbaW5kZXggKyAxXVxuXG4gICAgaWYgKG5leHRWYWx1ZSAmJiAhbmV4dFZhbHVlLnN0YXJ0c1dpdGgoXCItLVwiKSkge1xuICAgICAgc2V0RmxhZyhmbGFnLCBuZXh0VmFsdWUpXG4gICAgICBpbmRleCArPSAxXG4gICAgfSBlbHNlIHtcbiAgICAgIHNldEZsYWcoZmxhZywgdHJ1ZSlcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmVzdWx0XG59XG5cbi8qKlxuICogUGFyc2VzIGEgQ0xJIHRpbWVvdXQgZmxhZyBpbnRvIG1pbGxpc2Vjb25kcy5cbiAqIEJhcmUgbnVtZXJpYyB2YWx1ZXMgYXJlIHRyZWF0ZWQgYXMgc2Vjb25kcyBmb3IgQ0xJIGVyZ29ub21pY3MuXG4gKiBAcGFyYW0ge2FueX0gdGltZW91dEZsYWdcbiAqIEByZXR1cm5zIHtudW1iZXIgfCB1bmRlZmluZWR9XG4gKi9cbmZ1bmN0aW9uIHJlc29sdmVDbGlUaW1lb3V0KHRpbWVvdXRGbGFnKSB7XG4gIGlmICh0aW1lb3V0RmxhZyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZFxuICB9XG5cbiAgaWYgKHR5cGVvZiB0aW1lb3V0RmxhZyA9PT0gXCJudW1iZXJcIikge1xuICAgIHJldHVybiB0aW1lb3V0RmxhZyAqIDEwMDBcbiAgfVxuXG4gIGNvbnN0IHRpbWVvdXRTdHJpbmcgPSBTdHJpbmcodGltZW91dEZsYWcpLnRyaW0oKVxuXG4gIGlmICgvXlxcZCsoXFwuXFxkKyk/bXMkL2kudGVzdCh0aW1lb3V0U3RyaW5nKSkge1xuICAgIHJldHVybiBOdW1iZXIodGltZW91dFN0cmluZy5zbGljZSgwLCAtMikpXG4gIH1cblxuICBpZiAoL15cXGQrKFxcLlxcZCspP3MkL2kudGVzdCh0aW1lb3V0U3RyaW5nKSkge1xuICAgIHJldHVybiBOdW1iZXIodGltZW91dFN0cmluZy5zbGljZSgwLCAtMSkpICogMTAwMFxuICB9XG5cbiAgaWYgKC9eXFxkKyhcXC5cXGQrKT8kLy50ZXN0KHRpbWVvdXRTdHJpbmcpKSB7XG4gICAgcmV0dXJuIE51bWJlcih0aW1lb3V0U3RyaW5nKSAqIDEwMDBcbiAgfVxuXG4gIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCB0aW1lb3V0IGZsYWc6ICR7dGltZW91dEZsYWd9YClcbn1cblxuLyoqXG4gKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIGFueT59IGZsYWdzXG4gKiBAcmV0dXJucyB7e2NvbW1hbmQ6IHN0cmluZywgYXJnczogUmVjb3JkPHN0cmluZywgYW55Pn19XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlQnJvd3NlckNvbW1hbmQoZmxhZ3MpIHtcbiAgY29uc3QgdGltZW91dCA9IHJlc29sdmVDbGlUaW1lb3V0KGZsYWdzLnRpbWVvdXQpXG5cbiAgaWYgKGZsYWdzLnZpc2l0KSB7XG4gICAgY29uc3QgYXJncyA9IHt1cmw6IGZsYWdzLnZpc2l0fVxuXG4gICAgaWYgKHRpbWVvdXQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgYXJncy50aW1lb3V0ID0gdGltZW91dFxuICAgIH1cblxuICAgIHJldHVybiB7YXJncywgY29tbWFuZDogXCJ2aXNpdFwifVxuICB9XG5cbiAgaWYgKGZsYWdzW1wiZGlzbWlzcy10b1wiXSkge1xuICAgIGNvbnN0IGFyZ3MgPSB7cGF0aDogZmxhZ3NbXCJkaXNtaXNzLXRvXCJdfVxuXG4gICAgaWYgKHRpbWVvdXQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgYXJncy50aW1lb3V0ID0gdGltZW91dFxuICAgIH1cblxuICAgIHJldHVybiB7YXJncywgY29tbWFuZDogXCJkaXNtaXNzVG9cIn1cbiAgfVxuXG4gIGlmIChmbGFnc1tcImZpbmQtYnktdGVzdC1pZFwiXSkge1xuICAgIHJldHVybiB7XG4gICAgICBhcmdzOiB7XG4gICAgICAgIHRlc3RJRDogZmxhZ3NbXCJmaW5kLWJ5LXRlc3QtaWRcIl0sXG4gICAgICAgIHRpbWVvdXQsXG4gICAgICAgIHVzZUJhc2VTZWxlY3RvcjogZmxhZ3NbXCJ1c2UtYmFzZS1zZWxlY3RvclwiXSxcbiAgICAgICAgdmlzaWJsZTogZmxhZ3MudmlzaWJsZVxuICAgICAgfSxcbiAgICAgIGNvbW1hbmQ6IFwiZmluZEJ5VGVzdElEXCJcbiAgICB9XG4gIH1cblxuICBpZiAoZmxhZ3MuZmluZCkge1xuICAgIHJldHVybiB7XG4gICAgICBhcmdzOiB7XG4gICAgICAgIHNlbGVjdG9yOiBmbGFncy5maW5kLFxuICAgICAgICB0aW1lb3V0LFxuICAgICAgICB1c2VCYXNlU2VsZWN0b3I6IGZsYWdzW1widXNlLWJhc2Utc2VsZWN0b3JcIl0sXG4gICAgICAgIHZpc2libGU6IGZsYWdzLnZpc2libGVcbiAgICAgIH0sXG4gICAgICBjb21tYW5kOiBcImZpbmRcIlxuICAgIH1cbiAgfVxuXG4gIGlmIChmbGFncy5jbGljaykge1xuICAgIHJldHVybiB7XG4gICAgICBhcmdzOiB7XG4gICAgICAgIHNlbGVjdG9yOiBmbGFncy5jbGljayxcbiAgICAgICAgdGltZW91dCxcbiAgICAgICAgdXNlQmFzZVNlbGVjdG9yOiBmbGFnc1tcInVzZS1iYXNlLXNlbGVjdG9yXCJdLFxuICAgICAgICB2aXNpYmxlOiBmbGFncy52aXNpYmxlXG4gICAgICB9LFxuICAgICAgY29tbWFuZDogXCJjbGlja1wiXG4gICAgfVxuICB9XG5cbiAgaWYgKGZsYWdzW1wid2FpdC1mb3Itbm8tc2VsZWN0b3JcIl0pIHtcbiAgICByZXR1cm4ge1xuICAgICAgYXJnczoge1xuICAgICAgICBzZWxlY3RvcjogZmxhZ3NbXCJ3YWl0LWZvci1uby1zZWxlY3RvclwiXSxcbiAgICAgICAgdGltZW91dCxcbiAgICAgICAgdXNlQmFzZVNlbGVjdG9yOiBmbGFnc1tcInVzZS1iYXNlLXNlbGVjdG9yXCJdXG4gICAgICB9LFxuICAgICAgY29tbWFuZDogXCJ3YWl0Rm9yTm9TZWxlY3RvclwiXG4gICAgfVxuICB9XG5cbiAgaWYgKGZsYWdzW1wiZXhwZWN0LW5vLWVsZW1lbnRcIl0pIHtcbiAgICByZXR1cm4ge1xuICAgICAgYXJnczoge1xuICAgICAgICBzZWxlY3RvcjogZmxhZ3NbXCJleHBlY3Qtbm8tZWxlbWVudFwiXSxcbiAgICAgICAgdGltZW91dCxcbiAgICAgICAgdXNlQmFzZVNlbGVjdG9yOiBmbGFnc1tcInVzZS1iYXNlLXNlbGVjdG9yXCJdXG4gICAgICB9LFxuICAgICAgY29tbWFuZDogXCJleHBlY3ROb0VsZW1lbnRcIlxuICAgIH1cbiAgfVxuXG4gIGlmIChmbGFnc1tcInNldC1iYXNlLXNlbGVjdG9yXCJdKSB7XG4gICAgcmV0dXJuIHthcmdzOiB7c2VsZWN0b3I6IGZsYWdzW1wic2V0LWJhc2Utc2VsZWN0b3JcIl19LCBjb21tYW5kOiBcInNldEJhc2VTZWxlY3RvclwifVxuICB9XG5cbiAgaWYgKGZsYWdzW1wiZ2V0LWh0bWxcIl0pIHtcbiAgICByZXR1cm4ge2FyZ3M6IHt9LCBjb21tYW5kOiBcImdldEhUTUxcIn1cbiAgfVxuXG4gIGlmIChmbGFnc1tcImdldC1icm93c2VyLWxvZ3NcIl0pIHtcbiAgICByZXR1cm4ge2FyZ3M6IHt9LCBjb21tYW5kOiBcImdldEJyb3dzZXJMb2dzXCJ9XG4gIH1cblxuICBpZiAoZmxhZ3NbXCJnZXQtY3VycmVudC11cmxcIl0pIHtcbiAgICByZXR1cm4ge2FyZ3M6IHt9LCBjb21tYW5kOiBcImdldEN1cnJlbnRVcmxcIn1cbiAgfVxuXG4gIGlmIChmbGFnc1tcInRha2Utc2NyZWVuc2hvdFwiXSkge1xuICAgIHJldHVybiB7YXJnczoge30sIGNvbW1hbmQ6IFwidGFrZVNjcmVlbnNob3RcIn1cbiAgfVxuXG4gIGlmIChmbGFncy5jb21tYW5kKSB7XG4gICAgY29uc3QgYXJncyA9IHt9XG5cbiAgICBpZiAoZmxhZ3MudXJsKSBhcmdzLnVybCA9IGZsYWdzLnVybFxuICAgIGlmIChmbGFncy5wYXRoKSBhcmdzLnBhdGggPSBmbGFncy5wYXRoXG4gICAgaWYgKGZsYWdzLnNlbGVjdG9yKSBhcmdzLnNlbGVjdG9yID0gZmxhZ3Muc2VsZWN0b3JcbiAgICBpZiAoZmxhZ3NbXCJ0ZXN0LWlkXCJdKSBhcmdzLnRlc3RJRCA9IGZsYWdzW1widGVzdC1pZFwiXVxuICAgIGlmIChmbGFncy5tZXRob2QpIGFyZ3MubWV0aG9kTmFtZSA9IGZsYWdzLm1ldGhvZFxuICAgIGlmIChmbGFncy5hcmcpIGFyZ3MuYXJncyA9IEFycmF5LmlzQXJyYXkoZmxhZ3MuYXJnKSA/IGZsYWdzLmFyZyA6IFtmbGFncy5hcmddXG4gICAgaWYgKGZsYWdzW1wid2l0aC1mYWxsYmFja1wiXSAhPT0gdW5kZWZpbmVkKSBhcmdzLndpdGhGYWxsYmFjayA9IGZsYWdzW1wid2l0aC1mYWxsYmFja1wiXVxuICAgIGlmICh0aW1lb3V0ICE9PSB1bmRlZmluZWQpIGFyZ3MudGltZW91dCA9IHRpbWVvdXRcbiAgICBpZiAoZmxhZ3MudmlzaWJsZSAhPT0gdW5kZWZpbmVkKSBhcmdzLnZpc2libGUgPSBmbGFncy52aXNpYmxlXG4gICAgaWYgKGZsYWdzW1widXNlLWJhc2Utc2VsZWN0b3JcIl0gIT09IHVuZGVmaW5lZCkgYXJncy51c2VCYXNlU2VsZWN0b3IgPSBmbGFnc1tcInVzZS1iYXNlLXNlbGVjdG9yXCJdXG5cbiAgICByZXR1cm4ge2FyZ3MsIGNvbW1hbmQ6IGZsYWdzLmNvbW1hbmR9XG4gIH1cblxuICB0aHJvdyBuZXcgRXJyb3IoXCJObyBicm93c2VyIGNvbW1hbmQgd2FzIGdpdmVuXCIpXG59XG4iXX0=
@@ -100,13 +100,15 @@ export default class WebDriverDriver {
100
100
  */
101
101
  findByTestID(testID: string, args?: FindArgs): Promise<import("selenium-webdriver").WebElement>;
102
102
  /**
103
- * @param {string|import("selenium-webdriver").WebElement|{selector: string} & FindArgs} elementOrIdentifier
103
+ * @param {string|import("selenium-webdriver").WebElement|({selector: string} & FindArgs & {withFallback?: boolean})} elementOrIdentifier
104
104
  * @param {FindArgs} [args]
105
105
  * @returns {Promise<import("selenium-webdriver").WebElement>}
106
106
  */
107
107
  _findElement(elementOrIdentifier: string | import("selenium-webdriver").WebElement | ({
108
108
  selector: string;
109
- } & FindArgs), args?: FindArgs): Promise<import("selenium-webdriver").WebElement>;
109
+ } & FindArgs & {
110
+ withFallback?: boolean;
111
+ }), args?: FindArgs): Promise<import("selenium-webdriver").WebElement>;
110
112
  /**
111
113
  * Finds a single element by CSS selector without waiting
112
114
  * @param {string} selector
@@ -124,14 +126,30 @@ export default class WebDriverDriver {
124
126
  /**
125
127
  * Interacts with an element by calling a method on it with the given arguments.
126
128
  * Retrying on ElementNotInteractableError, ElementClickInterceptedError, or StaleElementReferenceError.
127
- * @param {import("selenium-webdriver").WebElement|string|{selector: string} & FindArgs} elementOrIdentifier The element or a CSS selector to find the element.
129
+ * @param {import("selenium-webdriver").WebElement|string|{selector: string} & InteractArgs} elementOrIdentifier The element or a CSS selector to find the element.
128
130
  * @param {string} methodName The method name to call on the element.
129
131
  * @param {...any} args Arguments to pass to the method.
130
132
  * @returns {Promise<any>}
131
133
  */
132
134
  interact(elementOrIdentifier: import("selenium-webdriver").WebElement | string | ({
133
135
  selector: string;
134
- } & FindArgs), methodName: string, ...args: any[]): Promise<any>;
136
+ } & InteractArgs), methodName: string, ...args: any[]): Promise<any>;
137
+ /**
138
+ * @param {import("selenium-webdriver").WebElement} element
139
+ * @returns {Promise<string | undefined>}
140
+ */
141
+ readInteractableValue(element: import("selenium-webdriver").WebElement): Promise<string | undefined>;
142
+ /**
143
+ * @param {import("selenium-webdriver").WebElement} element
144
+ * @param {...any} args
145
+ * @returns {Promise<unknown>}
146
+ */
147
+ interactSendKeysWithFallback(element: import("selenium-webdriver").WebElement, ...args: any[]): Promise<unknown>;
148
+ /**
149
+ * @param {import("selenium-webdriver").WebElement} element
150
+ * @returns {Promise<void>}
151
+ */
152
+ interactPress(element: import("selenium-webdriver").WebElement): Promise<void>;
135
153
  /**
136
154
  * @param {string} selector
137
155
  * @param {WaitForNoSelectorArgs} [args]
@@ -158,6 +176,9 @@ export type FindArgs = {
158
176
  */
159
177
  useBaseSelector?: boolean;
160
178
  };
179
+ export type InteractArgs = FindArgs & {
180
+ withFallback?: boolean;
181
+ };
161
182
  export type WaitForNoSelectorArgs = {
162
183
  /**
163
184
  * Whether to scope by the base selector.