appium-remote-debugger 9.0.2 → 9.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -11,7 +11,7 @@ exports.getScriptForAtom = getScriptForAtom;
11
11
 
12
12
  require("source-map-support/register");
13
13
 
14
- var _support = require("@appium/support");
14
+ var _support = require("appium/support");
15
15
 
16
16
  var _path = _interopRequireDefault(require("path"));
17
17
 
@@ -79,4 +79,4 @@ var _default = getAtom;
79
79
  exports.default = _default;require('source-map-support').install();
80
80
 
81
81
 
82
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL2F0b21zLmpzIiwibmFtZXMiOlsiYXRvbXNDYWNoZSIsImluQnVpbGREaXIiLCJfX2ZpbGVuYW1lIiwiaW5jbHVkZXMiLCJnZXRBdG9tRmlsZU5hbWUiLCJhdG9tTmFtZSIsInBhdGgiLCJyZXNvbHZlIiwiX19kaXJuYW1lIiwiZ2V0QXRvbSIsIl8iLCJoYXMiLCJhdG9tRmlsZU5hbWUiLCJmcyIsInJlYWRGaWxlIiwiZSIsIkVycm9yIiwid3JhcFNjcmlwdEZvckZyYW1lIiwic2NyaXB0IiwiZnJhbWUiLCJsb2ciLCJkZWJ1ZyIsImVsRnJvbUNhY2hlIiwidG9TdHJpbmciLCJKU09OIiwic3RyaW5naWZ5IiwiZ2V0U2NyaXB0Rm9yQXRvbSIsImF0b20iLCJhcmdzIiwiZnJhbWVzIiwiYXN5bmNDYWxsQmFjayIsImF0b21TcmMiLCJsZW5ndGgiLCJtYXAiLCJqb2luIl0sInNvdXJjZVJvb3QiOiIuLi8uLiIsInNvdXJjZXMiOlsibGliL2F0b21zLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZzIH0gZnJvbSAnQGFwcGl1bS9zdXBwb3J0JztcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCBsb2cgZnJvbSAnLi9sb2dnZXInO1xuXG5cbmNvbnN0IGF0b21zQ2FjaGUgPSB7fTtcblxuY29uc3QgaW5CdWlsZERpciA9IF9fZmlsZW5hbWUuaW5jbHVkZXMoJ2J1aWxkL2xpYi9hdG9tcycpO1xuXG5mdW5jdGlvbiBnZXRBdG9tRmlsZU5hbWUgKGF0b21OYW1lKSB7XG4gIHJldHVybiBpbkJ1aWxkRGlyXG4gICAgPyBwYXRoLnJlc29sdmUoX19kaXJuYW1lLCAnLi4nLCAnLi4nLCAnYXRvbXMnLCBgJHthdG9tTmFtZX0uanNgKVxuICAgIDogcGF0aC5yZXNvbHZlKF9fZGlybmFtZSwgJy4uJywgJ2F0b21zJywgYCR7YXRvbU5hbWV9LmpzYCk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldEF0b20gKGF0b21OYW1lKSB7XG4gIC8vIGNoZWNrIGlmIHdlIGhhdmUgYWxyZWFkeSBsb2FkZWQgYW4gY2FjaGVkIHRoaXMgYXRvbVxuICBpZiAoIV8uaGFzKGF0b21zQ2FjaGUsIGF0b21OYW1lKSkge1xuICAgIGNvbnN0IGF0b21GaWxlTmFtZSA9IGdldEF0b21GaWxlTmFtZShhdG9tTmFtZSk7XG4gICAgdHJ5IHtcbiAgICAgIGF0b21zQ2FjaGVbYXRvbU5hbWVdID0gYXdhaXQgZnMucmVhZEZpbGUoYXRvbUZpbGVOYW1lKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuYWJsZSB0byBsb2FkIEF0b20gJyR7YXRvbU5hbWV9JyBmcm9tIGZpbGUgJyR7YXRvbUZpbGVOYW1lfSdgKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gYXRvbXNDYWNoZVthdG9tTmFtZV07XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHdyYXBTY3JpcHRGb3JGcmFtZSAoc2NyaXB0LCBmcmFtZSkge1xuICBsb2cuZGVidWcoYFdyYXBwaW5nIHNjcmlwdCBmb3IgZnJhbWUgJyR7ZnJhbWV9J2ApO1xuICBjb25zdCBlbEZyb21DYWNoZSA9IGF3YWl0IGdldEF0b20oJ2dldF9lbGVtZW50X2Zyb21fY2FjaGUnKTtcbiAgcmV0dXJuIGAoZnVuY3Rpb24gKHdpbmRvdykgeyB2YXIgZG9jdW1lbnQgPSB3aW5kb3cuZG9jdW1lbnQ7IGAgK1xuICAgICAgICAgYHJldHVybiAoJHtzY3JpcHR9KTsgfSkoKCR7ZWxGcm9tQ2FjaGUudG9TdHJpbmcoJ3V0ZjgnKX0pKCR7SlNPTi5zdHJpbmdpZnkoZnJhbWUpfSkpYDtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0U2NyaXB0Rm9yQXRvbSAoYXRvbSwgYXJncywgZnJhbWVzID0gW10sIGFzeW5jQ2FsbEJhY2sgPSBudWxsKSB7XG4gIGNvbnN0IGF0b21TcmMgPSBhd2FpdCBnZXRBdG9tKGF0b20pO1xuICBsZXQgc2NyaXB0O1xuICBpZiAoZnJhbWVzLmxlbmd0aCA+IDApIHtcbiAgICBzY3JpcHQgPSBhdG9tU3JjO1xuICAgIGZvciAoY29uc3QgZnJhbWUgb2YgZnJhbWVzKSB7XG4gICAgICBzY3JpcHQgPSBhd2FpdCB3cmFwU2NyaXB0Rm9yRnJhbWUoc2NyaXB0LCBmcmFtZSk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGxvZy5kZWJ1ZyhgRXhlY3V0aW5nICcke2F0b219JyBhdG9tIGluIGRlZmF1bHQgY29udGV4dGApO1xuICAgIHNjcmlwdCA9IGAoJHthdG9tU3JjfSlgO1xuICB9XG5cbiAgLy8gYWRkIHRoZSBhcmd1bWVudHMsIGFzIHN0cmluZ3NcbiAgYXJncyA9IGFyZ3MubWFwKEpTT04uc3RyaW5naWZ5KTtcbiAgaWYgKGFzeW5jQ2FsbEJhY2spIHtcbiAgICBzY3JpcHQgKz0gYCgke2FyZ3Muam9pbignLCcpfSwgJHthc3luY0NhbGxCYWNrfSwgdHJ1ZSlgO1xuICB9IGVsc2Uge1xuICAgIHNjcmlwdCArPSBgKCR7YXJncy5qb2luKCcsJyl9KWA7XG4gIH1cblxuICByZXR1cm4gc2NyaXB0O1xufVxuXG5leHBvcnQgeyBnZXRBdG9tLCBnZXRTY3JpcHRGb3JBdG9tIH07XG5leHBvcnQgZGVmYXVsdCBnZXRBdG9tO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBR0EsTUFBTUEsVUFBVSxHQUFHLEVBQW5COztBQUVBLE1BQU1DLFVBQVUsR0FBR0MsVUFBVSxDQUFDQyxRQUFYLENBQW9CLGlCQUFwQixDQUFuQjs7QUFFQSxTQUFTQyxlQUFULENBQTBCQyxRQUExQixFQUFvQztFQUNsQyxPQUFPSixVQUFVLEdBQ2JLLGNBQUtDLE9BQUwsQ0FBYUMsU0FBYixFQUF3QixJQUF4QixFQUE4QixJQUE5QixFQUFvQyxPQUFwQyxFQUE4QyxHQUFFSCxRQUFTLEtBQXpELENBRGEsR0FFYkMsY0FBS0MsT0FBTCxDQUFhQyxTQUFiLEVBQXdCLElBQXhCLEVBQThCLE9BQTlCLEVBQXdDLEdBQUVILFFBQVMsS0FBbkQsQ0FGSjtBQUdEOztBQUVELGVBQWVJLE9BQWYsQ0FBd0JKLFFBQXhCLEVBQWtDO0VBRWhDLElBQUksQ0FBQ0ssZ0JBQUVDLEdBQUYsQ0FBTVgsVUFBTixFQUFrQkssUUFBbEIsQ0FBTCxFQUFrQztJQUNoQyxNQUFNTyxZQUFZLEdBQUdSLGVBQWUsQ0FBQ0MsUUFBRCxDQUFwQzs7SUFDQSxJQUFJO01BQ0ZMLFVBQVUsQ0FBQ0ssUUFBRCxDQUFWLEdBQXVCLE1BQU1RLFlBQUdDLFFBQUgsQ0FBWUYsWUFBWixDQUE3QjtJQUNELENBRkQsQ0FFRSxPQUFPRyxDQUFQLEVBQVU7TUFDVixNQUFNLElBQUlDLEtBQUosQ0FBVyx3QkFBdUJYLFFBQVMsZ0JBQWVPLFlBQWEsR0FBdkUsQ0FBTjtJQUNEO0VBQ0Y7O0VBRUQsT0FBT1osVUFBVSxDQUFDSyxRQUFELENBQWpCO0FBQ0Q7O0FBRUQsZUFBZVksa0JBQWYsQ0FBbUNDLE1BQW5DLEVBQTJDQyxLQUEzQyxFQUFrRDtFQUNoREMsZ0JBQUlDLEtBQUosQ0FBVyw4QkFBNkJGLEtBQU0sR0FBOUM7O0VBQ0EsTUFBTUcsV0FBVyxHQUFHLE1BQU1iLE9BQU8sQ0FBQyx3QkFBRCxDQUFqQztFQUNBLE9BQVEsdURBQUQsR0FDQyxXQUFVUyxNQUFPLFVBQVNJLFdBQVcsQ0FBQ0MsUUFBWixDQUFxQixNQUFyQixDQUE2QixLQUFJQyxJQUFJLENBQUNDLFNBQUwsQ0FBZU4sS0FBZixDQUFzQixJQUR6RjtBQUVEOztBQUVELGVBQWVPLGdCQUFmLENBQWlDQyxJQUFqQyxFQUF1Q0MsSUFBdkMsRUFBNkNDLE1BQU0sR0FBRyxFQUF0RCxFQUEwREMsYUFBYSxHQUFHLElBQTFFLEVBQWdGO0VBQzlFLE1BQU1DLE9BQU8sR0FBRyxNQUFNdEIsT0FBTyxDQUFDa0IsSUFBRCxDQUE3QjtFQUNBLElBQUlULE1BQUo7O0VBQ0EsSUFBSVcsTUFBTSxDQUFDRyxNQUFQLEdBQWdCLENBQXBCLEVBQXVCO0lBQ3JCZCxNQUFNLEdBQUdhLE9BQVQ7O0lBQ0EsS0FBSyxNQUFNWixLQUFYLElBQW9CVSxNQUFwQixFQUE0QjtNQUMxQlgsTUFBTSxHQUFHLE1BQU1ELGtCQUFrQixDQUFDQyxNQUFELEVBQVNDLEtBQVQsQ0FBakM7SUFDRDtFQUNGLENBTEQsTUFLTztJQUNMQyxnQkFBSUMsS0FBSixDQUFXLGNBQWFNLElBQUssMkJBQTdCOztJQUNBVCxNQUFNLEdBQUksSUFBR2EsT0FBUSxHQUFyQjtFQUNEOztFQUdESCxJQUFJLEdBQUdBLElBQUksQ0FBQ0ssR0FBTCxDQUFTVCxJQUFJLENBQUNDLFNBQWQsQ0FBUDs7RUFDQSxJQUFJSyxhQUFKLEVBQW1CO0lBQ2pCWixNQUFNLElBQUssSUFBR1UsSUFBSSxDQUFDTSxJQUFMLENBQVUsR0FBVixDQUFlLEtBQUlKLGFBQWMsU0FBL0M7RUFDRCxDQUZELE1BRU87SUFDTFosTUFBTSxJQUFLLElBQUdVLElBQUksQ0FBQ00sSUFBTCxDQUFVLEdBQVYsQ0FBZSxHQUE3QjtFQUNEOztFQUVELE9BQU9oQixNQUFQO0FBQ0Q7O2VBR2NULE8ifQ==
82
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL2F0b21zLmpzIiwibmFtZXMiOlsiYXRvbXNDYWNoZSIsImluQnVpbGREaXIiLCJfX2ZpbGVuYW1lIiwiaW5jbHVkZXMiLCJnZXRBdG9tRmlsZU5hbWUiLCJhdG9tTmFtZSIsInBhdGgiLCJyZXNvbHZlIiwiX19kaXJuYW1lIiwiZ2V0QXRvbSIsIl8iLCJoYXMiLCJhdG9tRmlsZU5hbWUiLCJmcyIsInJlYWRGaWxlIiwiZSIsIkVycm9yIiwid3JhcFNjcmlwdEZvckZyYW1lIiwic2NyaXB0IiwiZnJhbWUiLCJsb2ciLCJkZWJ1ZyIsImVsRnJvbUNhY2hlIiwidG9TdHJpbmciLCJKU09OIiwic3RyaW5naWZ5IiwiZ2V0U2NyaXB0Rm9yQXRvbSIsImF0b20iLCJhcmdzIiwiZnJhbWVzIiwiYXN5bmNDYWxsQmFjayIsImF0b21TcmMiLCJsZW5ndGgiLCJtYXAiLCJqb2luIl0sInNvdXJjZVJvb3QiOiIuLi8uLiIsInNvdXJjZXMiOlsibGliL2F0b21zLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZzIH0gZnJvbSAnYXBwaXVtL3N1cHBvcnQnO1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IGxvZyBmcm9tICcuL2xvZ2dlcic7XG5cblxuY29uc3QgYXRvbXNDYWNoZSA9IHt9O1xuXG5jb25zdCBpbkJ1aWxkRGlyID0gX19maWxlbmFtZS5pbmNsdWRlcygnYnVpbGQvbGliL2F0b21zJyk7XG5cbmZ1bmN0aW9uIGdldEF0b21GaWxlTmFtZSAoYXRvbU5hbWUpIHtcbiAgcmV0dXJuIGluQnVpbGREaXJcbiAgICA/IHBhdGgucmVzb2x2ZShfX2Rpcm5hbWUsICcuLicsICcuLicsICdhdG9tcycsIGAke2F0b21OYW1lfS5qc2ApXG4gICAgOiBwYXRoLnJlc29sdmUoX19kaXJuYW1lLCAnLi4nLCAnYXRvbXMnLCBgJHthdG9tTmFtZX0uanNgKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0QXRvbSAoYXRvbU5hbWUpIHtcbiAgLy8gY2hlY2sgaWYgd2UgaGF2ZSBhbHJlYWR5IGxvYWRlZCBhbiBjYWNoZWQgdGhpcyBhdG9tXG4gIGlmICghXy5oYXMoYXRvbXNDYWNoZSwgYXRvbU5hbWUpKSB7XG4gICAgY29uc3QgYXRvbUZpbGVOYW1lID0gZ2V0QXRvbUZpbGVOYW1lKGF0b21OYW1lKTtcbiAgICB0cnkge1xuICAgICAgYXRvbXNDYWNoZVthdG9tTmFtZV0gPSBhd2FpdCBmcy5yZWFkRmlsZShhdG9tRmlsZU5hbWUpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVW5hYmxlIHRvIGxvYWQgQXRvbSAnJHthdG9tTmFtZX0nIGZyb20gZmlsZSAnJHthdG9tRmlsZU5hbWV9J2ApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBhdG9tc0NhY2hlW2F0b21OYW1lXTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gd3JhcFNjcmlwdEZvckZyYW1lIChzY3JpcHQsIGZyYW1lKSB7XG4gIGxvZy5kZWJ1ZyhgV3JhcHBpbmcgc2NyaXB0IGZvciBmcmFtZSAnJHtmcmFtZX0nYCk7XG4gIGNvbnN0IGVsRnJvbUNhY2hlID0gYXdhaXQgZ2V0QXRvbSgnZ2V0X2VsZW1lbnRfZnJvbV9jYWNoZScpO1xuICByZXR1cm4gYChmdW5jdGlvbiAod2luZG93KSB7IHZhciBkb2N1bWVudCA9IHdpbmRvdy5kb2N1bWVudDsgYCArXG4gICAgICAgICBgcmV0dXJuICgke3NjcmlwdH0pOyB9KSgoJHtlbEZyb21DYWNoZS50b1N0cmluZygndXRmOCcpfSkoJHtKU09OLnN0cmluZ2lmeShmcmFtZSl9KSlgO1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRTY3JpcHRGb3JBdG9tIChhdG9tLCBhcmdzLCBmcmFtZXMgPSBbXSwgYXN5bmNDYWxsQmFjayA9IG51bGwpIHtcbiAgY29uc3QgYXRvbVNyYyA9IGF3YWl0IGdldEF0b20oYXRvbSk7XG4gIGxldCBzY3JpcHQ7XG4gIGlmIChmcmFtZXMubGVuZ3RoID4gMCkge1xuICAgIHNjcmlwdCA9IGF0b21TcmM7XG4gICAgZm9yIChjb25zdCBmcmFtZSBvZiBmcmFtZXMpIHtcbiAgICAgIHNjcmlwdCA9IGF3YWl0IHdyYXBTY3JpcHRGb3JGcmFtZShzY3JpcHQsIGZyYW1lKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgbG9nLmRlYnVnKGBFeGVjdXRpbmcgJyR7YXRvbX0nIGF0b20gaW4gZGVmYXVsdCBjb250ZXh0YCk7XG4gICAgc2NyaXB0ID0gYCgke2F0b21TcmN9KWA7XG4gIH1cblxuICAvLyBhZGQgdGhlIGFyZ3VtZW50cywgYXMgc3RyaW5nc1xuICBhcmdzID0gYXJncy5tYXAoSlNPTi5zdHJpbmdpZnkpO1xuICBpZiAoYXN5bmNDYWxsQmFjaykge1xuICAgIHNjcmlwdCArPSBgKCR7YXJncy5qb2luKCcsJyl9LCAke2FzeW5jQ2FsbEJhY2t9LCB0cnVlKWA7XG4gIH0gZWxzZSB7XG4gICAgc2NyaXB0ICs9IGAoJHthcmdzLmpvaW4oJywnKX0pYDtcbiAgfVxuXG4gIHJldHVybiBzY3JpcHQ7XG59XG5cbmV4cG9ydCB7IGdldEF0b20sIGdldFNjcmlwdEZvckF0b20gfTtcbmV4cG9ydCBkZWZhdWx0IGdldEF0b207XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFHQSxNQUFNQSxVQUFVLEdBQUcsRUFBbkI7O0FBRUEsTUFBTUMsVUFBVSxHQUFHQyxVQUFVLENBQUNDLFFBQVgsQ0FBb0IsaUJBQXBCLENBQW5COztBQUVBLFNBQVNDLGVBQVQsQ0FBMEJDLFFBQTFCLEVBQW9DO0VBQ2xDLE9BQU9KLFVBQVUsR0FDYkssYUFBQSxDQUFLQyxPQUFMLENBQWFDLFNBQWIsRUFBd0IsSUFBeEIsRUFBOEIsSUFBOUIsRUFBb0MsT0FBcEMsRUFBOEMsR0FBRUgsUUFBUyxLQUF6RCxDQURhLEdBRWJDLGFBQUEsQ0FBS0MsT0FBTCxDQUFhQyxTQUFiLEVBQXdCLElBQXhCLEVBQThCLE9BQTlCLEVBQXdDLEdBQUVILFFBQVMsS0FBbkQsQ0FGSjtBQUdEOztBQUVELGVBQWVJLE9BQWYsQ0FBd0JKLFFBQXhCLEVBQWtDO0VBRWhDLElBQUksQ0FBQ0ssZUFBQSxDQUFFQyxHQUFGLENBQU1YLFVBQU4sRUFBa0JLLFFBQWxCLENBQUwsRUFBa0M7SUFDaEMsTUFBTU8sWUFBWSxHQUFHUixlQUFlLENBQUNDLFFBQUQsQ0FBcEM7O0lBQ0EsSUFBSTtNQUNGTCxVQUFVLENBQUNLLFFBQUQsQ0FBVixHQUF1QixNQUFNUSxXQUFBLENBQUdDLFFBQUgsQ0FBWUYsWUFBWixDQUE3QjtJQUNELENBRkQsQ0FFRSxPQUFPRyxDQUFQLEVBQVU7TUFDVixNQUFNLElBQUlDLEtBQUosQ0FBVyx3QkFBdUJYLFFBQVMsZ0JBQWVPLFlBQWEsR0FBdkUsQ0FBTjtJQUNEO0VBQ0Y7O0VBRUQsT0FBT1osVUFBVSxDQUFDSyxRQUFELENBQWpCO0FBQ0Q7O0FBRUQsZUFBZVksa0JBQWYsQ0FBbUNDLE1BQW5DLEVBQTJDQyxLQUEzQyxFQUFrRDtFQUNoREMsZUFBQSxDQUFJQyxLQUFKLENBQVcsOEJBQTZCRixLQUFNLEdBQTlDOztFQUNBLE1BQU1HLFdBQVcsR0FBRyxNQUFNYixPQUFPLENBQUMsd0JBQUQsQ0FBakM7RUFDQSxPQUFRLHVEQUFELEdBQ0MsV0FBVVMsTUFBTyxVQUFTSSxXQUFXLENBQUNDLFFBQVosQ0FBcUIsTUFBckIsQ0FBNkIsS0FBSUMsSUFBSSxDQUFDQyxTQUFMLENBQWVOLEtBQWYsQ0FBc0IsSUFEekY7QUFFRDs7QUFFRCxlQUFlTyxnQkFBZixDQUFpQ0MsSUFBakMsRUFBdUNDLElBQXZDLEVBQTZDQyxNQUFNLEdBQUcsRUFBdEQsRUFBMERDLGFBQWEsR0FBRyxJQUExRSxFQUFnRjtFQUM5RSxNQUFNQyxPQUFPLEdBQUcsTUFBTXRCLE9BQU8sQ0FBQ2tCLElBQUQsQ0FBN0I7RUFDQSxJQUFJVCxNQUFKOztFQUNBLElBQUlXLE1BQU0sQ0FBQ0csTUFBUCxHQUFnQixDQUFwQixFQUF1QjtJQUNyQmQsTUFBTSxHQUFHYSxPQUFUOztJQUNBLEtBQUssTUFBTVosS0FBWCxJQUFvQlUsTUFBcEIsRUFBNEI7TUFDMUJYLE1BQU0sR0FBRyxNQUFNRCxrQkFBa0IsQ0FBQ0MsTUFBRCxFQUFTQyxLQUFULENBQWpDO0lBQ0Q7RUFDRixDQUxELE1BS087SUFDTEMsZUFBQSxDQUFJQyxLQUFKLENBQVcsY0FBYU0sSUFBSywyQkFBN0I7O0lBQ0FULE1BQU0sR0FBSSxJQUFHYSxPQUFRLEdBQXJCO0VBQ0Q7O0VBR0RILElBQUksR0FBR0EsSUFBSSxDQUFDSyxHQUFMLENBQVNULElBQUksQ0FBQ0MsU0FBZCxDQUFQOztFQUNBLElBQUlLLGFBQUosRUFBbUI7SUFDakJaLE1BQU0sSUFBSyxJQUFHVSxJQUFJLENBQUNNLElBQUwsQ0FBVSxHQUFWLENBQWUsS0FBSUosYUFBYyxTQUEvQztFQUNELENBRkQsTUFFTztJQUNMWixNQUFNLElBQUssSUFBR1UsSUFBSSxDQUFDTSxJQUFMLENBQVUsR0FBVixDQUFlLEdBQTdCO0VBQ0Q7O0VBRUQsT0FBT2hCLE1BQVA7QUFDRDs7ZUFHY1QsTyJ9
@@ -7,7 +7,7 @@ exports.default = void 0;
7
7
 
8
8
  require("source-map-support/register");
9
9
 
10
- var _support = require("@appium/support");
10
+ var _support = require("appium/support");
11
11
 
12
12
  const log = _support.logger.getLogger('RemoteDebugger');
13
13
 
@@ -15,4 +15,4 @@ var _default = log;
15
15
  exports.default = _default;require('source-map-support').install();
16
16
 
17
17
 
18
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL2xvZ2dlci5qcyIsIm5hbWVzIjpbImxvZyIsImxvZ2dlciIsImdldExvZ2dlciJdLCJzb3VyY2VSb290IjoiLi4vLi4iLCJzb3VyY2VzIjpbImxpYi9sb2dnZXIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbG9nZ2VyIH0gZnJvbSAnQGFwcGl1bS9zdXBwb3J0JztcblxuXG5jb25zdCBsb2cgPSBsb2dnZXIuZ2V0TG9nZ2VyKCdSZW1vdGVEZWJ1Z2dlcicpO1xuXG5leHBvcnQgZGVmYXVsdCBsb2c7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBOztBQUdBLE1BQU1BLEdBQUcsR0FBR0MsZ0JBQU9DLFNBQVAsQ0FBaUIsZ0JBQWpCLENBQVo7O2VBRWVGLEcifQ==
18
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL2xvZ2dlci5qcyIsIm5hbWVzIjpbImxvZyIsImxvZ2dlciIsImdldExvZ2dlciJdLCJzb3VyY2VSb290IjoiLi4vLi4iLCJzb3VyY2VzIjpbImxpYi9sb2dnZXIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbG9nZ2VyIH0gZnJvbSAnYXBwaXVtL3N1cHBvcnQnO1xuXG5cbmNvbnN0IGxvZyA9IGxvZ2dlci5nZXRMb2dnZXIoJ1JlbW90ZURlYnVnZ2VyJyk7XG5cbmV4cG9ydCBkZWZhdWx0IGxvZztcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7O0FBR0EsTUFBTUEsR0FBRyxHQUFHQyxlQUFBLENBQU9DLFNBQVAsQ0FBaUIsZ0JBQWpCLENBQVo7O2VBRWVGLEcifQ==
@@ -15,7 +15,7 @@ var _utils = require("../utils");
15
15
 
16
16
  var _events = _interopRequireDefault(require("./events"));
17
17
 
18
- var _support = require("@appium/support");
18
+ var _support = require("appium/support");
19
19
 
20
20
  var _asyncbox = require("asyncbox");
21
21
 
@@ -305,4 +305,4 @@ var _default = {
305
305
  exports.default = _default;require('source-map-support').install();
306
306
 
307
307
 
308
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL21peGlucy9jb25uZWN0LmpzIiwibmFtZXMiOlsiQVBQX0NPTk5FQ1RfVElNRU9VVF9NUyIsIkFQUF9DT05ORUNUX0lOVEVSVkFMX01TIiwiU0VMRUNUX0FQUF9SRVRSSUVTIiwiU0VMRUNUX0FQUF9SRVRSWV9TTEVFUF9NUyIsIlNBRkFSSV9CVU5ETEVfSUQiLCJCTEFOS19QQUdFX1VSTCIsInNldENvbm5lY3Rpb25LZXkiLCJsb2ciLCJkZWJ1ZyIsInJwY0NsaWVudCIsInNlbmQiLCJjb25uZWN0IiwidGltZW91dCIsInNldHVwIiwiaW5pdFJwY0NsaWVudCIsIm9uIiwiXyIsIm5vb3AiLCJvblBhZ2VDaGFuZ2UiLCJiaW5kIiwib25Db25uZWN0ZWRBcHBsaWNhdGlvbkxpc3QiLCJvbkFwcENvbm5lY3QiLCJvbkFwcERpc2Nvbm5lY3QiLCJvbkFwcFVwZGF0ZSIsIm9uQ29ubmVjdGVkRHJpdmVyTGlzdCIsIm9uQ3VycmVudFN0YXRlIiwiZnJhbWVEZXRhY2hlZCIsImlzRW1wdHkiLCJhcHBEaWN0Iiwid2FpdE1zIiwiaW50ZXJ2YWwiLCJlcnIiLCJlcnJvciIsIm1lc3NhZ2UiLCJkaXNjb25uZWN0IiwiZW1pdCIsImV2ZW50cyIsIkVWRU5UX0RJU0NPTk5FQ1QiLCJ0ZWFyZG93biIsInNlbGVjdEFwcCIsImN1cnJlbnRVcmwiLCJtYXhUcmllcyIsImlnbm9yZUFib3V0QmxhbmtVcmwiLCJzaG91bGRDaGVja0ZvclRhcmdldCIsInRpbWVyIiwidGltaW5nIiwiVGltZXIiLCJzdGFydCIsImFwcElkS2V5IiwicGFnZURpY3QiLCJzZWFyY2hGb3JBcHAiLCJlcnJvckFuZFRocm93IiwibG9nQXBwbGljYXRpb25EaWN0aW9uYXJ5IiwicGFnZUFycmF5IiwiZnVsbFBhZ2VBcnJheSIsImFwcCIsImluZm8iLCJ0b1BhaXJzIiwiaXNBcnJheSIsImlzQWN0aXZlIiwiaWQiLCJyZXBsYWNlIiwicGFnZSIsInVybCIsImNsb25lIiwiYnVuZGxlSWQiLCJwdXNoIiwiZ2V0RHVyYXRpb24iLCJhc01pbGxpU2Vjb25kcyIsInRvRml4ZWQiLCJidW5kbGVJZHMiLCJpbmNsdWRlU2FmYXJpIiwiaXNTYWZhcmkiLCJhZGRpdGlvbmFsQnVuZGxlSWRzIiwicmV0cnlDb3VudCIsInBvc3NpYmxlQXBwSWRzIiwiam9pbiIsImF0dGVtcHRlZEFwcElkS2V5IiwicmVzdWx0Iiwic2VhcmNoRm9yUGFnZSIsIkVycm9yIiwiaWduIiwiYXBwc0RpY3QiLCJ2YWx1ZXMiLCJwcm9taXNlIiwiZGljdCIsInNlbGVjdFBhZ2UiLCJwYWdlSWRLZXkiLCJza2lwUmVhZHlDaGVjayIsImNoZWNrUGFnZUlzUmVhZHkiLCJwYWdlVW5sb2FkIiwiYXBwcyIsImdldFZhbHVlU3RyaW5nIiwia2V5IiwidmFsdWUiLCJpc0Z1bmN0aW9uIiwiSlNPTiIsInN0cmluZ2lmeSIsIkFycmF5IiwibGVuZ3RoIiwicHJlZml4IiwiayIsInYiLCJ2YWx1ZVN0cmluZyIsInVwZGF0ZUFwcHNXaXRoRGljdCIsImVudHJ5IiwiaXNVbmRlZmluZWQiXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uIiwic291cmNlcyI6WyJsaWIvbWl4aW5zL2Nvbm5lY3QuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGxvZyBmcm9tICcuLi9sb2dnZXInO1xuaW1wb3J0IHsgYXBwSW5mb0Zyb21EaWN0LCBwYWdlQXJyYXlGcm9tRGljdCwgZ2V0RGVidWdnZXJBcHBLZXksXG4gICAgICAgICBnZXRQb3NzaWJsZURlYnVnZ2VyQXBwS2V5cywgc2ltcGxlU3RyaW5naWZ5LCBkZWZlcnJlZFByb21pc2UgfSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQgZXZlbnRzIGZyb20gJy4vZXZlbnRzJztcbmltcG9ydCB7IHRpbWluZyB9IGZyb20gJ0BhcHBpdW0vc3VwcG9ydCc7XG5pbXBvcnQgeyByZXRyeUludGVydmFsLCB3YWl0Rm9yQ29uZGl0aW9uIH0gZnJvbSAnYXN5bmNib3gnO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcblxuXG5jb25zdCBBUFBfQ09OTkVDVF9USU1FT1VUX01TID0gMDtcbmNvbnN0IEFQUF9DT05ORUNUX0lOVEVSVkFMX01TID0gMTAwO1xuY29uc3QgU0VMRUNUX0FQUF9SRVRSSUVTID0gMjA7XG5jb25zdCBTRUxFQ1RfQVBQX1JFVFJZX1NMRUVQX01TID0gNTAwO1xuY29uc3QgU0FGQVJJX0JVTkRMRV9JRCA9ICdjb20uYXBwbGUubW9iaWxlc2FmYXJpJztcbmNvbnN0IEJMQU5LX1BBR0VfVVJMID0gJ2Fib3V0OmJsYW5rJztcblxuXG5hc3luYyBmdW5jdGlvbiBzZXRDb25uZWN0aW9uS2V5ICgpIHtcbiAgbG9nLmRlYnVnKCdTZW5kaW5nIGNvbm5lY3Rpb24ga2V5IHJlcXVlc3QnKTtcbiAgLy8gc2VuZCBidXQgb25seSB3YWl0IHRvIG1ha2Ugc3VyZSB0aGUgc29ja2V0IHdvcmtlZFxuICAvLyBhcyByZXNwb25zZSBmcm9tIFdlYiBJbnNwZWN0b3IgY2FuIHRha2UgYSBsb25nIHRpbWVcbiAgYXdhaXQgdGhpcy5ycGNDbGllbnQuc2VuZCgnc2V0Q29ubmVjdGlvbktleScsIHt9LCBmYWxzZSk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGNvbm5lY3QgKHRpbWVvdXQgPSBBUFBfQ09OTkVDVF9USU1FT1VUX01TKSB7XG4gIHRoaXMuc2V0dXAoKTtcblxuICAvLyBpbml0aWFsaXplIHRoZSBycGMgY2xpZW50XG4gIHRoaXMuaW5pdFJwY0NsaWVudCgpO1xuXG4gIC8vIGxpc3RlbiBmb3IgYmFzaWMgZGVidWdnZXItbGV2ZWwgZXZlbnRzXG4gIHRoaXMucnBjQ2xpZW50Lm9uKCdfcnBjX3JlcG9ydFNldHVwOicsIF8ubm9vcCk7XG4gIHRoaXMucnBjQ2xpZW50Lm9uKCdfcnBjX2ZvcndhcmRHZXRMaXN0aW5nOicsIHRoaXMub25QYWdlQ2hhbmdlLmJpbmQodGhpcykpO1xuICB0aGlzLnJwY0NsaWVudC5vbignX3JwY19yZXBvcnRDb25uZWN0ZWRBcHBsaWNhdGlvbkxpc3Q6JywgdGhpcy5vbkNvbm5lY3RlZEFwcGxpY2F0aW9uTGlzdC5iaW5kKHRoaXMpKTtcbiAgdGhpcy5ycGNDbGllbnQub24oJ19ycGNfYXBwbGljYXRpb25Db25uZWN0ZWQ6JywgdGhpcy5vbkFwcENvbm5lY3QuYmluZCh0aGlzKSk7XG4gIHRoaXMucnBjQ2xpZW50Lm9uKCdfcnBjX2FwcGxpY2F0aW9uRGlzY29ubmVjdGVkOicsIHRoaXMub25BcHBEaXNjb25uZWN0LmJpbmQodGhpcykpO1xuICB0aGlzLnJwY0NsaWVudC5vbignX3JwY19hcHBsaWNhdGlvblVwZGF0ZWQ6JywgdGhpcy5vbkFwcFVwZGF0ZS5iaW5kKHRoaXMpKTtcbiAgdGhpcy5ycGNDbGllbnQub24oJ19ycGNfcmVwb3J0Q29ubmVjdGVkRHJpdmVyTGlzdDonLCB0aGlzLm9uQ29ubmVjdGVkRHJpdmVyTGlzdC5iaW5kKHRoaXMpKTtcbiAgdGhpcy5ycGNDbGllbnQub24oJ19ycGNfcmVwb3J0Q3VycmVudFN0YXRlOicsIHRoaXMub25DdXJyZW50U3RhdGUuYmluZCh0aGlzKSk7XG4gIHRoaXMucnBjQ2xpZW50Lm9uKCdQYWdlLmZyYW1lRGV0YWNoZWQnLCB0aGlzLmZyYW1lRGV0YWNoZWQuYmluZCh0aGlzKSk7XG5cbiAgYXdhaXQgdGhpcy5ycGNDbGllbnQuY29ubmVjdCgpO1xuXG4gIC8vIGdldCB0aGUgY29ubmVjdGlvbiBpbmZvcm1hdGlvbiBhYm91dCB0aGUgYXBwXG4gIHRyeSB7XG4gICAgYXdhaXQgdGhpcy5zZXRDb25uZWN0aW9uS2V5KCk7XG4gICAgaWYgKHRpbWVvdXQpIHtcbiAgICAgIGxvZy5kZWJ1ZyhgV2FpdGluZyB1cCB0byAke3RpbWVvdXR9bXMgZm9yIGFwcGxpY2F0aW9ucyB0byBiZSByZXBvcnRlZGApO1xuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgd2FpdEZvckNvbmRpdGlvbigoKSA9PiAhXy5pc0VtcHR5KHRoaXMuYXBwRGljdCksIHtcbiAgICAgICAgICB3YWl0TXM6IHRpbWVvdXQsXG4gICAgICAgICAgaW50ZXJ2YWw6IEFQUF9DT05ORUNUX0lOVEVSVkFMX01TLFxuICAgICAgICB9KTtcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICBsb2cuZGVidWcoYFRpbWVkIG91dCB3YWl0aW5nIGZvciBhcHBsaWNhdGlvbnMgdG8gYmUgcmVwb3J0ZWRgKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuYXBwRGljdCB8fCB7fTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgbG9nLmVycm9yKGBFcnJvciBzZXR0aW5nIGNvbm5lY3Rpb24ga2V5OiAke2Vyci5tZXNzYWdlfWApO1xuICAgIGF3YWl0IHRoaXMuZGlzY29ubmVjdCgpO1xuICAgIHRocm93IGVycjtcbiAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiBkaXNjb25uZWN0ICgpIHtcbiAgaWYgKHRoaXMucnBjQ2xpZW50KSB7XG4gICAgYXdhaXQgdGhpcy5ycGNDbGllbnQuZGlzY29ubmVjdCgpO1xuICB9XG4gIHRoaXMuZW1pdChldmVudHMuRVZFTlRfRElTQ09OTkVDVCwgdHJ1ZSk7XG4gIHRoaXMudGVhcmRvd24oKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gc2VsZWN0QXBwIChjdXJyZW50VXJsID0gbnVsbCwgbWF4VHJpZXMgPSBTRUxFQ1RfQVBQX1JFVFJJRVMsIGlnbm9yZUFib3V0QmxhbmtVcmwgPSBmYWxzZSkge1xuICBjb25zdCBzaG91bGRDaGVja0ZvclRhcmdldCA9IHRoaXMucnBjQ2xpZW50LnNob3VsZENoZWNrRm9yVGFyZ2V0O1xuICB0aGlzLnJwY0NsaWVudC5zaG91bGRDaGVja0ZvclRhcmdldCA9IGZhbHNlO1xuICB0cnkge1xuICAgIGNvbnN0IHRpbWVyID0gbmV3IHRpbWluZy5UaW1lcigpLnN0YXJ0KCk7XG4gICAgbG9nLmRlYnVnKCdTZWxlY3RpbmcgYXBwbGljYXRpb24nKTtcbiAgICBpZiAoIXRoaXMuYXBwRGljdCB8fCBfLmlzRW1wdHkodGhpcy5hcHBEaWN0KSkge1xuICAgICAgbG9nLmRlYnVnKCdObyBhcHBsaWNhdGlvbnMgY3VycmVudGx5IGNvbm5lY3RlZC4nKTtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICBjb25zdCB7YXBwSWRLZXksIHBhZ2VEaWN0fSA9IGF3YWl0IHRoaXMuc2VhcmNoRm9yQXBwKGN1cnJlbnRVcmwsIG1heFRyaWVzLCBpZ25vcmVBYm91dEJsYW5rVXJsKTtcblxuICAgIC8vIGlmLCBhZnRlciBhbGwgdGhpcywgd2UgaGF2ZSBubyBkaWN0aW9uYXJ5LCB3ZSBoYXZlIGZhaWxlZFxuICAgIGlmICghYXBwSWRLZXkgfHwgIXBhZ2VEaWN0KSB7XG4gICAgICBsb2cuZXJyb3JBbmRUaHJvdyhgQ291bGQgbm90IGNvbm5lY3QgdG8gYSB2YWxpZCBhcHAgYWZ0ZXIgJHttYXhUcmllc30gdHJpZXMuYCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuYXBwSWRLZXkgIT09IGFwcElkS2V5KSB7XG4gICAgICBsb2cuZGVidWcoYFJlY2VpdmVkIGFsdGVyZWQgYXBwIGlkLCB1cGRhdGluZyBmcm9tICcke3RoaXMuYXBwSWRLZXl9JyB0byAnJHthcHBJZEtleX0nYCk7XG4gICAgICB0aGlzLmFwcElkS2V5ID0gYXBwSWRLZXk7XG4gICAgfVxuXG4gICAgbG9nQXBwbGljYXRpb25EaWN0aW9uYXJ5KHRoaXMuYXBwRGljdCk7XG5cbiAgICAvLyB0cmFuc2xhdGUgdGhlIGRpY3Rpb25hcnkgaW50byBhIHVzZWZ1bCBmb3JtLCBhbmQgcmV0dXJuIHRvIHNlbmRlclxuICAgIGNvbnN0IHBhZ2VBcnJheSA9IF8uaXNFbXB0eSh0aGlzLmFwcERpY3RbYXBwSWRLZXldLnBhZ2VBcnJheSlcbiAgICAgID8gcGFnZUFycmF5RnJvbURpY3QocGFnZURpY3QpXG4gICAgICA6IHRoaXMuYXBwRGljdFthcHBJZEtleV0ucGFnZUFycmF5O1xuICAgIGxvZy5kZWJ1ZyhgRmluYWxseSBzZWxlY3RpbmcgYXBwICR7dGhpcy5hcHBJZEtleX06ICR7c2ltcGxlU3RyaW5naWZ5KHBhZ2VBcnJheSl9YCk7XG5cbiAgICBsZXQgZnVsbFBhZ2VBcnJheSA9IFtdO1xuICAgIGZvciAoY29uc3QgW2FwcCwgaW5mb10gb2YgXy50b1BhaXJzKHRoaXMuYXBwRGljdCkpIHtcbiAgICAgIGlmICghXy5pc0FycmF5KGluZm8ucGFnZUFycmF5KSB8fCAhaW5mby5pc0FjdGl2ZSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGlkID0gYXBwLnJlcGxhY2UoJ1BJRDonLCAnJyk7XG4gICAgICBmb3IgKGNvbnN0IHBhZ2Ugb2YgaW5mby5wYWdlQXJyYXkpIHtcbiAgICAgICAgaWYgKCEoaWdub3JlQWJvdXRCbGFua1VybCAmJiBwYWdlLnVybCA9PT0gQkxBTktfUEFHRV9VUkwpKSB7XG4gICAgICAgICAgbGV0IHBhZ2VEaWN0ID0gXy5jbG9uZShwYWdlKTtcbiAgICAgICAgICBwYWdlRGljdC5pZCA9IGAke2lkfS4ke3BhZ2VEaWN0LmlkfWA7XG4gICAgICAgICAgcGFnZURpY3QuYnVuZGxlSWQgPSBpbmZvLmJ1bmRsZUlkO1xuICAgICAgICAgIGZ1bGxQYWdlQXJyYXkucHVzaChwYWdlRGljdCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBsb2cuZGVidWcoYFNlbGVjdGVkIGFwcCBhZnRlciAke3RpbWVyLmdldER1cmF0aW9uKCkuYXNNaWxsaVNlY29uZHMudG9GaXhlZCgwKX1tc2ApO1xuICAgIHJldHVybiBmdWxsUGFnZUFycmF5O1xuICB9IGZpbmFsbHkge1xuICAgIHRoaXMucnBjQ2xpZW50LnNob3VsZENoZWNrRm9yVGFyZ2V0ID0gc2hvdWxkQ2hlY2tGb3JUYXJnZXQ7XG4gIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gc2VhcmNoRm9yQXBwIChjdXJyZW50VXJsLCBtYXhUcmllcywgaWdub3JlQWJvdXRCbGFua1VybCkge1xuICBjb25zdCBidW5kbGVJZHMgPSB0aGlzLmluY2x1ZGVTYWZhcmkgJiYgIXRoaXMuaXNTYWZhcmlcbiAgICA/IFt0aGlzLmJ1bmRsZUlkLCAuLi50aGlzLmFkZGl0aW9uYWxCdW5kbGVJZHMsIFNBRkFSSV9CVU5ETEVfSURdXG4gICAgOiBbdGhpcy5idW5kbGVJZCwgLi4udGhpcy5hZGRpdGlvbmFsQnVuZGxlSWRzXTtcbiAgdHJ5IHtcbiAgICByZXR1cm4gYXdhaXQgcmV0cnlJbnRlcnZhbChtYXhUcmllcywgU0VMRUNUX0FQUF9SRVRSWV9TTEVFUF9NUywgYXN5bmMgKHJldHJ5Q291bnQpID0+IHtcbiAgICAgIGxvZ0FwcGxpY2F0aW9uRGljdGlvbmFyeSh0aGlzLmFwcERpY3QpO1xuICAgICAgY29uc3QgcG9zc2libGVBcHBJZHMgPSBnZXRQb3NzaWJsZURlYnVnZ2VyQXBwS2V5cyhidW5kbGVJZHMsIHRoaXMuYXBwRGljdCk7XG4gICAgICBsb2cuZGVidWcoYFRyeWluZyBvdXQgdGhlIHBvc3NpYmxlIGFwcCBpZHM6ICR7cG9zc2libGVBcHBJZHMuam9pbignLCAnKX0gKHRyeSAjJHtyZXRyeUNvdW50ICsgMX0gb2YgJHttYXhUcmllc30pYCk7XG4gICAgICBmb3IgKGNvbnN0IGF0dGVtcHRlZEFwcElkS2V5IG9mIHBvc3NpYmxlQXBwSWRzKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgaWYgKCF0aGlzLmFwcERpY3RbYXR0ZW1wdGVkQXBwSWRLZXldLmlzQWN0aXZlKSB7XG4gICAgICAgICAgICBsb2cuZGVidWcoYFNraXBwaW5nIGFwcCAnJHthdHRlbXB0ZWRBcHBJZEtleX0nIGJlY2F1c2UgaXQgaXMgbm90IGFjdGl2ZWApO1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIGxvZy5kZWJ1ZyhgQXR0ZW1wdGluZyBhcHAgJyR7YXR0ZW1wdGVkQXBwSWRLZXl9J2ApO1xuICAgICAgICAgIGNvbnN0IFthcHBJZEtleSwgcGFnZURpY3RdID0gYXdhaXQgdGhpcy5ycGNDbGllbnQuc2VsZWN0QXBwKGF0dGVtcHRlZEFwcElkS2V5LCB0aGlzLm9uQXBwQ29ubmVjdC5iaW5kKHRoaXMpKTtcbiAgICAgICAgICAvLyBpbiBpT1MgOC4yIHRoZSBjb25uZWN0IGxvZ2ljIGhhcHBlbnMsIGJ1dCB3aXRoIGFuIGVtcHR5IGRpY3Rpb25hcnlcbiAgICAgICAgICAvLyB3aGljaCBsZWFkcyB0byB0aGUgcmVtb3RlIGRlYnVnZ2VyIGdldHRpbmcgZGlzY29ubmVjdGVkLCBhbmQgaW50byBhIGxvb3BcbiAgICAgICAgICBpZiAoXy5pc0VtcHR5KHBhZ2VEaWN0KSkge1xuICAgICAgICAgICAgbG9nLmRlYnVnKCdFbXB0eSBwYWdlIGRpY3Rpb25hcnkgcmVjZWl2ZWQuIFRyeWluZyBhZ2Fpbi4nKTtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIHNhdmUgdGhlIHBhZ2UgYXJyYXkgZm9yIHRoaXMgYXBwXG4gICAgICAgICAgdGhpcy5hcHBEaWN0W2FwcElkS2V5XS5wYWdlQXJyYXkgPSBwYWdlQXJyYXlGcm9tRGljdChwYWdlRGljdCk7XG5cbiAgICAgICAgICAvLyBpZiB3ZSBhcmUgbG9va2luZyBmb3IgYSBwYXJ0aWN1bGFyIHVybCwgbWFrZSBzdXJlIHdlXG4gICAgICAgICAgLy8gaGF2ZSB0aGUgcmlnaHQgcGFnZS4gSWdub3JlIGVtcHR5IG9yIHVuZGVmaW5lZCB1cmxzLlxuICAgICAgICAgIC8vIElnbm9yZSBhYm91dDpibGFuayBpZiByZXF1ZXN0ZWQuXG4gICAgICAgICAgY29uc3QgcmVzdWx0ID0gdGhpcy5zZWFyY2hGb3JQYWdlKHRoaXMuYXBwRGljdCwgY3VycmVudFVybCwgaWdub3JlQWJvdXRCbGFua1VybCk7XG4gICAgICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoY3VycmVudFVybCkge1xuICAgICAgICAgICAgbG9nLmRlYnVnKGBSZWNlaXZlZCBhcHAsIGJ1dCBleHBlY3RlZCB1cmwgKCcke2N1cnJlbnRVcmx9Jykgd2FzIG5vdCBmb3VuZC4gVHJ5aW5nIGFnYWluLmApO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBsb2cuZGVidWcoJ1JlY2VpdmVkIGFwcCwgYnV0IG5vIG1hdGNoIHdhcyBmb3VuZC4gVHJ5aW5nIGFnYWluLicpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgbG9nLmRlYnVnKGBFcnJvciBjaGVja2luZyBhcHBsaWNhdGlvbjogJyR7ZXJyLm1lc3NhZ2V9Jy4gUmV0cnlpbmcgY29ubmVjdGlvbmApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXRyeUNvdW50Kys7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZhaWxlZCB0byBmaW5kIGFuIGFwcCB0byBzZWxlY3QnKTtcbiAgICB9LCAwKTtcbiAgfSBjYXRjaCAoaWduKSB7XG4gICAgbG9nLmVycm9yQW5kVGhyb3coYENvdWxkIG5vdCBjb25uZWN0IHRvIGEgdmFsaWQgYXBwIGFmdGVyICR7bWF4VHJpZXN9IHRyaWVzLmApO1xuICB9XG59XG5cbmZ1bmN0aW9uIHNlYXJjaEZvclBhZ2UgKGFwcHNEaWN0LCBjdXJyZW50VXJsID0gbnVsbCwgaWdub3JlQWJvdXRCbGFua1VybCA9IGZhbHNlKSB7XG4gIGZvciAoY29uc3QgYXBwRGljdCBvZiBfLnZhbHVlcyhhcHBzRGljdCkpIHtcbiAgICBpZiAoIWFwcERpY3QgfHwgIWFwcERpY3QuaXNBY3RpdmUgfHwgIWFwcERpY3QucGFnZUFycmF5IHx8IGFwcERpY3QucGFnZUFycmF5LnByb21pc2UpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgZGljdCBvZiBhcHBEaWN0LnBhZ2VBcnJheSkge1xuICAgICAgaWYgKCghaWdub3JlQWJvdXRCbGFua1VybCB8fCBkaWN0LnVybCAhPT0gQkxBTktfUEFHRV9VUkwpICYmXG4gICAgICAgICAgKCFjdXJyZW50VXJsIHx8IGRpY3QudXJsID09PSBjdXJyZW50VXJsIHx8IGRpY3QudXJsID09PSBgJHtjdXJyZW50VXJsfS9gKSkge1xuICAgICAgICByZXR1cm4geyBhcHBJZEtleTogYXBwRGljdC5pZCwgcGFnZURpY3Q6IGRpY3QgfTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIG51bGw7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHNlbGVjdFBhZ2UgKGFwcElkS2V5LCBwYWdlSWRLZXksIHNraXBSZWFkeUNoZWNrID0gZmFsc2UpIHtcbiAgdGhpcy5hcHBJZEtleSA9IGBQSUQ6JHthcHBJZEtleX1gO1xuICB0aGlzLnBhZ2VJZEtleSA9IHBhZ2VJZEtleTtcblxuICBsb2cuZGVidWcoYFNlbGVjdGluZyBwYWdlICcke3BhZ2VJZEtleX0nIG9uIGFwcCAnJHt0aGlzLmFwcElkS2V5fScgYW5kIGZvcndhcmRpbmcgc29ja2V0IHNldHVwYCk7XG5cbiAgY29uc3QgdGltZXIgPSBuZXcgdGltaW5nLlRpbWVyKCkuc3RhcnQoKTtcblxuICBhd2FpdCB0aGlzLnJwY0NsaWVudC5zZWxlY3RQYWdlKHRoaXMuYXBwSWRLZXksIHBhZ2VJZEtleSk7XG5cbiAgLy8gbWFrZSBzdXJlIGV2ZXJ5dGhpbmcgaXMgcmVhZHkgdG8gZ29cbiAgaWYgKCFza2lwUmVhZHlDaGVjayAmJiAhYXdhaXQgdGhpcy5jaGVja1BhZ2VJc1JlYWR5KCkpIHtcbiAgICBhd2FpdCB0aGlzLnBhZ2VVbmxvYWQoKTtcbiAgfVxuXG4gIGxvZy5kZWJ1ZyhgU2VsZWN0ZWQgcGFnZSBhZnRlciAke3RpbWVyLmdldER1cmF0aW9uKCkuYXNNaWxsaVNlY29uZHMudG9GaXhlZCgwKX1tc2ApO1xufVxuXG5mdW5jdGlvbiBsb2dBcHBsaWNhdGlvbkRpY3Rpb25hcnkgKGFwcHMpIHtcbiAgZnVuY3Rpb24gZ2V0VmFsdWVTdHJpbmcgKGtleSwgdmFsdWUpIHtcbiAgICBpZiAoXy5pc0Z1bmN0aW9uKHZhbHVlKSkge1xuICAgICAgcmV0dXJuICdbRnVuY3Rpb25dJztcbiAgICB9XG4gICAgaWYgKGtleSA9PT0gJ3BhZ2VBcnJheScgJiYgIV8uaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgIHJldHVybiBgXCJXYWl0aW5nIGZvciBkYXRhXCJgO1xuICAgIH1cbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkodmFsdWUpO1xuICB9XG4gIGxvZy5kZWJ1ZygnQ3VycmVudCBhcHBsaWNhdGlvbnMgYXZhaWxhYmxlOicpO1xuICBmb3IgKGNvbnN0IFthcHAsIGluZm9dIG9mIF8udG9QYWlycyhhcHBzKSkge1xuICAgIGxvZy5kZWJ1ZyhgICAgIEFwcGxpY2F0aW9uOiBcIiR7YXBwfVwiYCk7XG4gICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgXy50b1BhaXJzKGluZm8pKSB7XG4gICAgICBpZiAoa2V5ID09PSAncGFnZUFycmF5JyAmJiBBcnJheS5pc0FycmF5KHZhbHVlKSAmJiB2YWx1ZS5sZW5ndGgpIHtcbiAgICAgICAgbG9nLmRlYnVnKGAgICAgICAgICR7a2V5fTpgKTtcbiAgICAgICAgZm9yIChjb25zdCBwYWdlIG9mIHZhbHVlKSB7XG4gICAgICAgICAgbGV0IHByZWZpeCA9ICctICc7XG4gICAgICAgICAgZm9yIChjb25zdCBbaywgdl0gb2YgXy50b1BhaXJzKHBhZ2UpKSB7XG4gICAgICAgICAgICBsb2cuZGVidWcoYCAgICAgICAgICAke3ByZWZpeH0ke2t9OiAke0pTT04uc3RyaW5naWZ5KHYpfWApO1xuICAgICAgICAgICAgcHJlZml4ID0gJyAgJztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHZhbHVlU3RyaW5nID0gZ2V0VmFsdWVTdHJpbmcoa2V5LCB2YWx1ZSk7XG4gICAgICAgIGxvZy5kZWJ1ZyhgICAgICAgICAke2tleX06ICR7dmFsdWVTdHJpbmd9YCk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZUFwcHNXaXRoRGljdCAoZGljdCkge1xuICAvLyBnZXQgdGhlIGRpY3Rpb25hcnkgZW50cnkgaW50byBhIG5pY2UgZm9ybSwgYW5kIGFkZCBpdCB0byB0aGVcbiAgLy8gYXBwbGljYXRpb24gZGljdGlvbmFyeVxuICB0aGlzLmFwcERpY3QgPSB0aGlzLmFwcERpY3QgfHwge307XG4gIGxldCBbaWQsIGVudHJ5XSA9IGFwcEluZm9Gcm9tRGljdChkaWN0KTtcbiAgaWYgKHRoaXMuYXBwRGljdFtpZF0pIHtcbiAgICAvLyBwcmVzZXJ2ZSB0aGUgcGFnZSBkaWN0aW9uYXJ5IGZvciB0aGlzIGVudHJ5XG4gICAgZW50cnkucGFnZUFycmF5ID0gdGhpcy5hcHBEaWN0W2lkXS5wYWdlQXJyYXk7XG4gIH1cbiAgdGhpcy5hcHBEaWN0W2lkXSA9IGVudHJ5O1xuXG4gIC8vIGFkZCBhIHByb21pc2UgdG8gZ2V0IHRoZSBwYWdlIGRpY3Rpb25hcnlcbiAgaWYgKF8uaXNVbmRlZmluZWQoZW50cnkucGFnZUFycmF5KSkge1xuICAgIGVudHJ5LnBhZ2VBcnJheSA9IGRlZmVycmVkUHJvbWlzZSgpO1xuICB9XG5cbiAgLy8gdHJ5IHRvIGdldCB0aGUgYXBwIGlkIGZyb20gb3VyIGNvbm5lY3RlZCBhcHBzXG4gIGlmICghdGhpcy5hcHBJZEtleSkge1xuICAgIHRoaXMuYXBwSWRLZXkgPSBnZXREZWJ1Z2dlckFwcEtleSh0aGlzLmJ1bmRsZUlkLCB0aGlzLmFwcERpY3QpO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IHsgc2V0Q29ubmVjdGlvbktleSwgY29ubmVjdCwgZGlzY29ubmVjdCwgc2VsZWN0QXBwLCBzZWFyY2hGb3JBcHAsIHNlYXJjaEZvclBhZ2UsIHNlbGVjdFBhZ2UsIHVwZGF0ZUFwcHNXaXRoRGljdCB9O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUVBOztBQUNBOztBQUNBOztBQUNBOztBQUdBLE1BQU1BLHNCQUFzQixHQUFHLENBQS9CO0FBQ0EsTUFBTUMsdUJBQXVCLEdBQUcsR0FBaEM7QUFDQSxNQUFNQyxrQkFBa0IsR0FBRyxFQUEzQjtBQUNBLE1BQU1DLHlCQUF5QixHQUFHLEdBQWxDO0FBQ0EsTUFBTUMsZ0JBQWdCLEdBQUcsd0JBQXpCO0FB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
308
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL21peGlucy9jb25uZWN0LmpzIiwibmFtZXMiOlsiQVBQX0NPTk5FQ1RfVElNRU9VVF9NUyIsIkFQUF9DT05ORUNUX0lOVEVSVkFMX01TIiwiU0VMRUNUX0FQUF9SRVRSSUVTIiwiU0VMRUNUX0FQUF9SRVRSWV9TTEVFUF9NUyIsIlNBRkFSSV9CVU5ETEVfSUQiLCJCTEFOS19QQUdFX1VSTCIsInNldENvbm5lY3Rpb25LZXkiLCJsb2ciLCJkZWJ1ZyIsInJwY0NsaWVudCIsInNlbmQiLCJjb25uZWN0IiwidGltZW91dCIsInNldHVwIiwiaW5pdFJwY0NsaWVudCIsIm9uIiwiXyIsIm5vb3AiLCJvblBhZ2VDaGFuZ2UiLCJiaW5kIiwib25Db25uZWN0ZWRBcHBsaWNhdGlvbkxpc3QiLCJvbkFwcENvbm5lY3QiLCJvbkFwcERpc2Nvbm5lY3QiLCJvbkFwcFVwZGF0ZSIsIm9uQ29ubmVjdGVkRHJpdmVyTGlzdCIsIm9uQ3VycmVudFN0YXRlIiwiZnJhbWVEZXRhY2hlZCIsIndhaXRGb3JDb25kaXRpb24iLCJpc0VtcHR5IiwiYXBwRGljdCIsIndhaXRNcyIsImludGVydmFsIiwiZXJyIiwiZXJyb3IiLCJtZXNzYWdlIiwiZGlzY29ubmVjdCIsImVtaXQiLCJldmVudHMiLCJFVkVOVF9ESVNDT05ORUNUIiwidGVhcmRvd24iLCJzZWxlY3RBcHAiLCJjdXJyZW50VXJsIiwibWF4VHJpZXMiLCJpZ25vcmVBYm91dEJsYW5rVXJsIiwic2hvdWxkQ2hlY2tGb3JUYXJnZXQiLCJ0aW1lciIsInRpbWluZyIsIlRpbWVyIiwic3RhcnQiLCJhcHBJZEtleSIsInBhZ2VEaWN0Iiwic2VhcmNoRm9yQXBwIiwiZXJyb3JBbmRUaHJvdyIsImxvZ0FwcGxpY2F0aW9uRGljdGlvbmFyeSIsInBhZ2VBcnJheSIsInBhZ2VBcnJheUZyb21EaWN0Iiwic2ltcGxlU3RyaW5naWZ5IiwiZnVsbFBhZ2VBcnJheSIsImFwcCIsImluZm8iLCJ0b1BhaXJzIiwiaXNBcnJheSIsImlzQWN0aXZlIiwiaWQiLCJyZXBsYWNlIiwicGFnZSIsInVybCIsImNsb25lIiwiYnVuZGxlSWQiLCJwdXNoIiwiZ2V0RHVyYXRpb24iLCJhc01pbGxpU2Vjb25kcyIsInRvRml4ZWQiLCJidW5kbGVJZHMiLCJpbmNsdWRlU2FmYXJpIiwiaXNTYWZhcmkiLCJhZGRpdGlvbmFsQnVuZGxlSWRzIiwicmV0cnlJbnRlcnZhbCIsInJldHJ5Q291bnQiLCJwb3NzaWJsZUFwcElkcyIsImdldFBvc3NpYmxlRGVidWdnZXJBcHBLZXlzIiwiam9pbiIsImF0dGVtcHRlZEFwcElkS2V5IiwicmVzdWx0Iiwic2VhcmNoRm9yUGFnZSIsIkVycm9yIiwiaWduIiwiYXBwc0RpY3QiLCJ2YWx1ZXMiLCJwcm9taXNlIiwiZGljdCIsInNlbGVjdFBhZ2UiLCJwYWdlSWRLZXkiLCJza2lwUmVhZHlDaGVjayIsImNoZWNrUGFnZUlzUmVhZHkiLCJwYWdlVW5sb2FkIiwiYXBwcyIsImdldFZhbHVlU3RyaW5nIiwia2V5IiwidmFsdWUiLCJpc0Z1bmN0aW9uIiwiSlNPTiIsInN0cmluZ2lmeSIsIkFycmF5IiwibGVuZ3RoIiwicHJlZml4IiwiayIsInYiLCJ2YWx1ZVN0cmluZyIsInVwZGF0ZUFwcHNXaXRoRGljdCIsImVudHJ5IiwiYXBwSW5mb0Zyb21EaWN0IiwiaXNVbmRlZmluZWQiLCJkZWZlcnJlZFByb21pc2UiLCJnZXREZWJ1Z2dlckFwcEtleSJdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4iLCJzb3VyY2VzIjpbImxpYi9taXhpbnMvY29ubmVjdC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbG9nIGZyb20gJy4uL2xvZ2dlcic7XG5pbXBvcnQgeyBhcHBJbmZvRnJvbURpY3QsIHBhZ2VBcnJheUZyb21EaWN0LCBnZXREZWJ1Z2dlckFwcEtleSxcbiAgICAgICAgIGdldFBvc3NpYmxlRGVidWdnZXJBcHBLZXlzLCBzaW1wbGVTdHJpbmdpZnksIGRlZmVycmVkUHJvbWlzZSB9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCBldmVudHMgZnJvbSAnLi9ldmVudHMnO1xuaW1wb3J0IHsgdGltaW5nIH0gZnJvbSAnYXBwaXVtL3N1cHBvcnQnO1xuaW1wb3J0IHsgcmV0cnlJbnRlcnZhbCwgd2FpdEZvckNvbmRpdGlvbiB9IGZyb20gJ2FzeW5jYm94JztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5cblxuY29uc3QgQVBQX0NPTk5FQ1RfVElNRU9VVF9NUyA9IDA7XG5jb25zdCBBUFBfQ09OTkVDVF9JTlRFUlZBTF9NUyA9IDEwMDtcbmNvbnN0IFNFTEVDVF9BUFBfUkVUUklFUyA9IDIwO1xuY29uc3QgU0VMRUNUX0FQUF9SRVRSWV9TTEVFUF9NUyA9IDUwMDtcbmNvbnN0IFNBRkFSSV9CVU5ETEVfSUQgPSAnY29tLmFwcGxlLm1vYmlsZXNhZmFyaSc7XG5jb25zdCBCTEFOS19QQUdFX1VSTCA9ICdhYm91dDpibGFuayc7XG5cblxuYXN5bmMgZnVuY3Rpb24gc2V0Q29ubmVjdGlvbktleSAoKSB7XG4gIGxvZy5kZWJ1ZygnU2VuZGluZyBjb25uZWN0aW9uIGtleSByZXF1ZXN0Jyk7XG4gIC8vIHNlbmQgYnV0IG9ubHkgd2FpdCB0byBtYWtlIHN1cmUgdGhlIHNvY2tldCB3b3JrZWRcbiAgLy8gYXMgcmVzcG9uc2UgZnJvbSBXZWIgSW5zcGVjdG9yIGNhbiB0YWtlIGEgbG9uZyB0aW1lXG4gIGF3YWl0IHRoaXMucnBjQ2xpZW50LnNlbmQoJ3NldENvbm5lY3Rpb25LZXknLCB7fSwgZmFsc2UpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBjb25uZWN0ICh0aW1lb3V0ID0gQVBQX0NPTk5FQ1RfVElNRU9VVF9NUykge1xuICB0aGlzLnNldHVwKCk7XG5cbiAgLy8gaW5pdGlhbGl6ZSB0aGUgcnBjIGNsaWVudFxuICB0aGlzLmluaXRScGNDbGllbnQoKTtcblxuICAvLyBsaXN0ZW4gZm9yIGJhc2ljIGRlYnVnZ2VyLWxldmVsIGV2ZW50c1xuICB0aGlzLnJwY0NsaWVudC5vbignX3JwY19yZXBvcnRTZXR1cDonLCBfLm5vb3ApO1xuICB0aGlzLnJwY0NsaWVudC5vbignX3JwY19mb3J3YXJkR2V0TGlzdGluZzonLCB0aGlzLm9uUGFnZUNoYW5nZS5iaW5kKHRoaXMpKTtcbiAgdGhpcy5ycGNDbGllbnQub24oJ19ycGNfcmVwb3J0Q29ubmVjdGVkQXBwbGljYXRpb25MaXN0OicsIHRoaXMub25Db25uZWN0ZWRBcHBsaWNhdGlvbkxpc3QuYmluZCh0aGlzKSk7XG4gIHRoaXMucnBjQ2xpZW50Lm9uKCdfcnBjX2FwcGxpY2F0aW9uQ29ubmVjdGVkOicsIHRoaXMub25BcHBDb25uZWN0LmJpbmQodGhpcykpO1xuICB0aGlzLnJwY0NsaWVudC5vbignX3JwY19hcHBsaWNhdGlvbkRpc2Nvbm5lY3RlZDonLCB0aGlzLm9uQXBwRGlzY29ubmVjdC5iaW5kKHRoaXMpKTtcbiAgdGhpcy5ycGNDbGllbnQub24oJ19ycGNfYXBwbGljYXRpb25VcGRhdGVkOicsIHRoaXMub25BcHBVcGRhdGUuYmluZCh0aGlzKSk7XG4gIHRoaXMucnBjQ2xpZW50Lm9uKCdfcnBjX3JlcG9ydENvbm5lY3RlZERyaXZlckxpc3Q6JywgdGhpcy5vbkNvbm5lY3RlZERyaXZlckxpc3QuYmluZCh0aGlzKSk7XG4gIHRoaXMucnBjQ2xpZW50Lm9uKCdfcnBjX3JlcG9ydEN1cnJlbnRTdGF0ZTonLCB0aGlzLm9uQ3VycmVudFN0YXRlLmJpbmQodGhpcykpO1xuICB0aGlzLnJwY0NsaWVudC5vbignUGFnZS5mcmFtZURldGFjaGVkJywgdGhpcy5mcmFtZURldGFjaGVkLmJpbmQodGhpcykpO1xuXG4gIGF3YWl0IHRoaXMucnBjQ2xpZW50LmNvbm5lY3QoKTtcblxuICAvLyBnZXQgdGhlIGNvbm5lY3Rpb24gaW5mb3JtYXRpb24gYWJvdXQgdGhlIGFwcFxuICB0cnkge1xuICAgIGF3YWl0IHRoaXMuc2V0Q29ubmVjdGlvbktleSgpO1xuICAgIGlmICh0aW1lb3V0KSB7XG4gICAgICBsb2cuZGVidWcoYFdhaXRpbmcgdXAgdG8gJHt0aW1lb3V0fW1zIGZvciBhcHBsaWNhdGlvbnMgdG8gYmUgcmVwb3J0ZWRgKTtcbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IHdhaXRGb3JDb25kaXRpb24oKCkgPT4gIV8uaXNFbXB0eSh0aGlzLmFwcERpY3QpLCB7XG4gICAgICAgICAgd2FpdE1zOiB0aW1lb3V0LFxuICAgICAgICAgIGludGVydmFsOiBBUFBfQ09OTkVDVF9JTlRFUlZBTF9NUyxcbiAgICAgICAgfSk7XG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgbG9nLmRlYnVnKGBUaW1lZCBvdXQgd2FpdGluZyBmb3IgYXBwbGljYXRpb25zIHRvIGJlIHJlcG9ydGVkYCk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmFwcERpY3QgfHwge307XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGxvZy5lcnJvcihgRXJyb3Igc2V0dGluZyBjb25uZWN0aW9uIGtleTogJHtlcnIubWVzc2FnZX1gKTtcbiAgICBhd2FpdCB0aGlzLmRpc2Nvbm5lY3QoKTtcbiAgICB0aHJvdyBlcnI7XG4gIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gZGlzY29ubmVjdCAoKSB7XG4gIGlmICh0aGlzLnJwY0NsaWVudCkge1xuICAgIGF3YWl0IHRoaXMucnBjQ2xpZW50LmRpc2Nvbm5lY3QoKTtcbiAgfVxuICB0aGlzLmVtaXQoZXZlbnRzLkVWRU5UX0RJU0NPTk5FQ1QsIHRydWUpO1xuICB0aGlzLnRlYXJkb3duKCk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHNlbGVjdEFwcCAoY3VycmVudFVybCA9IG51bGwsIG1heFRyaWVzID0gU0VMRUNUX0FQUF9SRVRSSUVTLCBpZ25vcmVBYm91dEJsYW5rVXJsID0gZmFsc2UpIHtcbiAgY29uc3Qgc2hvdWxkQ2hlY2tGb3JUYXJnZXQgPSB0aGlzLnJwY0NsaWVudC5zaG91bGRDaGVja0ZvclRhcmdldDtcbiAgdGhpcy5ycGNDbGllbnQuc2hvdWxkQ2hlY2tGb3JUYXJnZXQgPSBmYWxzZTtcbiAgdHJ5IHtcbiAgICBjb25zdCB0aW1lciA9IG5ldyB0aW1pbmcuVGltZXIoKS5zdGFydCgpO1xuICAgIGxvZy5kZWJ1ZygnU2VsZWN0aW5nIGFwcGxpY2F0aW9uJyk7XG4gICAgaWYgKCF0aGlzLmFwcERpY3QgfHwgXy5pc0VtcHR5KHRoaXMuYXBwRGljdCkpIHtcbiAgICAgIGxvZy5kZWJ1ZygnTm8gYXBwbGljYXRpb25zIGN1cnJlbnRseSBjb25uZWN0ZWQuJyk7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgY29uc3Qge2FwcElkS2V5LCBwYWdlRGljdH0gPSBhd2FpdCB0aGlzLnNlYXJjaEZvckFwcChjdXJyZW50VXJsLCBtYXhUcmllcywgaWdub3JlQWJvdXRCbGFua1VybCk7XG5cbiAgICAvLyBpZiwgYWZ0ZXIgYWxsIHRoaXMsIHdlIGhhdmUgbm8gZGljdGlvbmFyeSwgd2UgaGF2ZSBmYWlsZWRcbiAgICBpZiAoIWFwcElkS2V5IHx8ICFwYWdlRGljdCkge1xuICAgICAgbG9nLmVycm9yQW5kVGhyb3coYENvdWxkIG5vdCBjb25uZWN0IHRvIGEgdmFsaWQgYXBwIGFmdGVyICR7bWF4VHJpZXN9IHRyaWVzLmApO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmFwcElkS2V5ICE9PSBhcHBJZEtleSkge1xuICAgICAgbG9nLmRlYnVnKGBSZWNlaXZlZCBhbHRlcmVkIGFwcCBpZCwgdXBkYXRpbmcgZnJvbSAnJHt0aGlzLmFwcElkS2V5fScgdG8gJyR7YXBwSWRLZXl9J2ApO1xuICAgICAgdGhpcy5hcHBJZEtleSA9IGFwcElkS2V5O1xuICAgIH1cblxuICAgIGxvZ0FwcGxpY2F0aW9uRGljdGlvbmFyeSh0aGlzLmFwcERpY3QpO1xuXG4gICAgLy8gdHJhbnNsYXRlIHRoZSBkaWN0aW9uYXJ5IGludG8gYSB1c2VmdWwgZm9ybSwgYW5kIHJldHVybiB0byBzZW5kZXJcbiAgICBjb25zdCBwYWdlQXJyYXkgPSBfLmlzRW1wdHkodGhpcy5hcHBEaWN0W2FwcElkS2V5XS5wYWdlQXJyYXkpXG4gICAgICA/IHBhZ2VBcnJheUZyb21EaWN0KHBhZ2VEaWN0KVxuICAgICAgOiB0aGlzLmFwcERpY3RbYXBwSWRLZXldLnBhZ2VBcnJheTtcbiAgICBsb2cuZGVidWcoYEZpbmFsbHkgc2VsZWN0aW5nIGFwcCAke3RoaXMuYXBwSWRLZXl9OiAke3NpbXBsZVN0cmluZ2lmeShwYWdlQXJyYXkpfWApO1xuXG4gICAgbGV0IGZ1bGxQYWdlQXJyYXkgPSBbXTtcbiAgICBmb3IgKGNvbnN0IFthcHAsIGluZm9dIG9mIF8udG9QYWlycyh0aGlzLmFwcERpY3QpKSB7XG4gICAgICBpZiAoIV8uaXNBcnJheShpbmZvLnBhZ2VBcnJheSkgfHwgIWluZm8uaXNBY3RpdmUpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBjb25zdCBpZCA9IGFwcC5yZXBsYWNlKCdQSUQ6JywgJycpO1xuICAgICAgZm9yIChjb25zdCBwYWdlIG9mIGluZm8ucGFnZUFycmF5KSB7XG4gICAgICAgIGlmICghKGlnbm9yZUFib3V0QmxhbmtVcmwgJiYgcGFnZS51cmwgPT09IEJMQU5LX1BBR0VfVVJMKSkge1xuICAgICAgICAgIGxldCBwYWdlRGljdCA9IF8uY2xvbmUocGFnZSk7XG4gICAgICAgICAgcGFnZURpY3QuaWQgPSBgJHtpZH0uJHtwYWdlRGljdC5pZH1gO1xuICAgICAgICAgIHBhZ2VEaWN0LmJ1bmRsZUlkID0gaW5mby5idW5kbGVJZDtcbiAgICAgICAgICBmdWxsUGFnZUFycmF5LnB1c2gocGFnZURpY3QpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgbG9nLmRlYnVnKGBTZWxlY3RlZCBhcHAgYWZ0ZXIgJHt0aW1lci5nZXREdXJhdGlvbigpLmFzTWlsbGlTZWNvbmRzLnRvRml4ZWQoMCl9bXNgKTtcbiAgICByZXR1cm4gZnVsbFBhZ2VBcnJheTtcbiAgfSBmaW5hbGx5IHtcbiAgICB0aGlzLnJwY0NsaWVudC5zaG91bGRDaGVja0ZvclRhcmdldCA9IHNob3VsZENoZWNrRm9yVGFyZ2V0O1xuICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHNlYXJjaEZvckFwcCAoY3VycmVudFVybCwgbWF4VHJpZXMsIGlnbm9yZUFib3V0QmxhbmtVcmwpIHtcbiAgY29uc3QgYnVuZGxlSWRzID0gdGhpcy5pbmNsdWRlU2FmYXJpICYmICF0aGlzLmlzU2FmYXJpXG4gICAgPyBbdGhpcy5idW5kbGVJZCwgLi4udGhpcy5hZGRpdGlvbmFsQnVuZGxlSWRzLCBTQUZBUklfQlVORExFX0lEXVxuICAgIDogW3RoaXMuYnVuZGxlSWQsIC4uLnRoaXMuYWRkaXRpb25hbEJ1bmRsZUlkc107XG4gIHRyeSB7XG4gICAgcmV0dXJuIGF3YWl0IHJldHJ5SW50ZXJ2YWwobWF4VHJpZXMsIFNFTEVDVF9BUFBfUkVUUllfU0xFRVBfTVMsIGFzeW5jIChyZXRyeUNvdW50KSA9PiB7XG4gICAgICBsb2dBcHBsaWNhdGlvbkRpY3Rpb25hcnkodGhpcy5hcHBEaWN0KTtcbiAgICAgIGNvbnN0IHBvc3NpYmxlQXBwSWRzID0gZ2V0UG9zc2libGVEZWJ1Z2dlckFwcEtleXMoYnVuZGxlSWRzLCB0aGlzLmFwcERpY3QpO1xuICAgICAgbG9nLmRlYnVnKGBUcnlpbmcgb3V0IHRoZSBwb3NzaWJsZSBhcHAgaWRzOiAke3Bvc3NpYmxlQXBwSWRzLmpvaW4oJywgJyl9ICh0cnkgIyR7cmV0cnlDb3VudCArIDF9IG9mICR7bWF4VHJpZXN9KWApO1xuICAgICAgZm9yIChjb25zdCBhdHRlbXB0ZWRBcHBJZEtleSBvZiBwb3NzaWJsZUFwcElkcykge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGlmICghdGhpcy5hcHBEaWN0W2F0dGVtcHRlZEFwcElkS2V5XS5pc0FjdGl2ZSkge1xuICAgICAgICAgICAgbG9nLmRlYnVnKGBTa2lwcGluZyBhcHAgJyR7YXR0ZW1wdGVkQXBwSWRLZXl9JyBiZWNhdXNlIGl0IGlzIG5vdCBhY3RpdmVgKTtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBsb2cuZGVidWcoYEF0dGVtcHRpbmcgYXBwICcke2F0dGVtcHRlZEFwcElkS2V5fSdgKTtcbiAgICAgICAgICBjb25zdCBbYXBwSWRLZXksIHBhZ2VEaWN0XSA9IGF3YWl0IHRoaXMucnBjQ2xpZW50LnNlbGVjdEFwcChhdHRlbXB0ZWRBcHBJZEtleSwgdGhpcy5vbkFwcENvbm5lY3QuYmluZCh0aGlzKSk7XG4gICAgICAgICAgLy8gaW4gaU9TIDguMiB0aGUgY29ubmVjdCBsb2dpYyBoYXBwZW5zLCBidXQgd2l0aCBhbiBlbXB0eSBkaWN0aW9uYXJ5XG4gICAgICAgICAgLy8gd2hpY2ggbGVhZHMgdG8gdGhlIHJlbW90ZSBkZWJ1Z2dlciBnZXR0aW5nIGRpc2Nvbm5lY3RlZCwgYW5kIGludG8gYSBsb29wXG4gICAgICAgICAgaWYgKF8uaXNFbXB0eShwYWdlRGljdCkpIHtcbiAgICAgICAgICAgIGxvZy5kZWJ1ZygnRW1wdHkgcGFnZSBkaWN0aW9uYXJ5IHJlY2VpdmVkLiBUcnlpbmcgYWdhaW4uJyk7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBzYXZlIHRoZSBwYWdlIGFycmF5IGZvciB0aGlzIGFwcFxuICAgICAgICAgIHRoaXMuYXBwRGljdFthcHBJZEtleV0ucGFnZUFycmF5ID0gcGFnZUFycmF5RnJvbURpY3QocGFnZURpY3QpO1xuXG4gICAgICAgICAgLy8gaWYgd2UgYXJlIGxvb2tpbmcgZm9yIGEgcGFydGljdWxhciB1cmwsIG1ha2Ugc3VyZSB3ZVxuICAgICAgICAgIC8vIGhhdmUgdGhlIHJpZ2h0IHBhZ2UuIElnbm9yZSBlbXB0eSBvciB1bmRlZmluZWQgdXJscy5cbiAgICAgICAgICAvLyBJZ25vcmUgYWJvdXQ6YmxhbmsgaWYgcmVxdWVzdGVkLlxuICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuc2VhcmNoRm9yUGFnZSh0aGlzLmFwcERpY3QsIGN1cnJlbnRVcmwsIGlnbm9yZUFib3V0QmxhbmtVcmwpO1xuICAgICAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKGN1cnJlbnRVcmwpIHtcbiAgICAgICAgICAgIGxvZy5kZWJ1ZyhgUmVjZWl2ZWQgYXBwLCBidXQgZXhwZWN0ZWQgdXJsICgnJHtjdXJyZW50VXJsfScpIHdhcyBub3QgZm91bmQuIFRyeWluZyBhZ2Fpbi5gKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbG9nLmRlYnVnKCdSZWNlaXZlZCBhcHAsIGJ1dCBubyBtYXRjaCB3YXMgZm91bmQuIFRyeWluZyBhZ2Fpbi4nKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgIGxvZy5kZWJ1ZyhgRXJyb3IgY2hlY2tpbmcgYXBwbGljYXRpb246ICcke2Vyci5tZXNzYWdlfScuIFJldHJ5aW5nIGNvbm5lY3Rpb25gKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0cnlDb3VudCsrO1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdGYWlsZWQgdG8gZmluZCBhbiBhcHAgdG8gc2VsZWN0Jyk7XG4gICAgfSwgMCk7XG4gIH0gY2F0Y2ggKGlnbikge1xuICAgIGxvZy5lcnJvckFuZFRocm93KGBDb3VsZCBub3QgY29ubmVjdCB0byBhIHZhbGlkIGFwcCBhZnRlciAke21heFRyaWVzfSB0cmllcy5gKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBzZWFyY2hGb3JQYWdlIChhcHBzRGljdCwgY3VycmVudFVybCA9IG51bGwsIGlnbm9yZUFib3V0QmxhbmtVcmwgPSBmYWxzZSkge1xuICBmb3IgKGNvbnN0IGFwcERpY3Qgb2YgXy52YWx1ZXMoYXBwc0RpY3QpKSB7XG4gICAgaWYgKCFhcHBEaWN0IHx8ICFhcHBEaWN0LmlzQWN0aXZlIHx8ICFhcHBEaWN0LnBhZ2VBcnJheSB8fCBhcHBEaWN0LnBhZ2VBcnJheS5wcm9taXNlKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IGRpY3Qgb2YgYXBwRGljdC5wYWdlQXJyYXkpIHtcbiAgICAgIGlmICgoIWlnbm9yZUFib3V0QmxhbmtVcmwgfHwgZGljdC51cmwgIT09IEJMQU5LX1BBR0VfVVJMKSAmJlxuICAgICAgICAgICghY3VycmVudFVybCB8fCBkaWN0LnVybCA9PT0gY3VycmVudFVybCB8fCBkaWN0LnVybCA9PT0gYCR7Y3VycmVudFVybH0vYCkpIHtcbiAgICAgICAgcmV0dXJuIHsgYXBwSWRLZXk6IGFwcERpY3QuaWQsIHBhZ2VEaWN0OiBkaWN0IH07XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiBudWxsO1xufVxuXG5hc3luYyBmdW5jdGlvbiBzZWxlY3RQYWdlIChhcHBJZEtleSwgcGFnZUlkS2V5LCBza2lwUmVhZHlDaGVjayA9IGZhbHNlKSB7XG4gIHRoaXMuYXBwSWRLZXkgPSBgUElEOiR7YXBwSWRLZXl9YDtcbiAgdGhpcy5wYWdlSWRLZXkgPSBwYWdlSWRLZXk7XG5cbiAgbG9nLmRlYnVnKGBTZWxlY3RpbmcgcGFnZSAnJHtwYWdlSWRLZXl9JyBvbiBhcHAgJyR7dGhpcy5hcHBJZEtleX0nIGFuZCBmb3J3YXJkaW5nIHNvY2tldCBzZXR1cGApO1xuXG4gIGNvbnN0IHRpbWVyID0gbmV3IHRpbWluZy5UaW1lcigpLnN0YXJ0KCk7XG5cbiAgYXdhaXQgdGhpcy5ycGNDbGllbnQuc2VsZWN0UGFnZSh0aGlzLmFwcElkS2V5LCBwYWdlSWRLZXkpO1xuXG4gIC8vIG1ha2Ugc3VyZSBldmVyeXRoaW5nIGlzIHJlYWR5IHRvIGdvXG4gIGlmICghc2tpcFJlYWR5Q2hlY2sgJiYgIWF3YWl0IHRoaXMuY2hlY2tQYWdlSXNSZWFkeSgpKSB7XG4gICAgYXdhaXQgdGhpcy5wYWdlVW5sb2FkKCk7XG4gIH1cblxuICBsb2cuZGVidWcoYFNlbGVjdGVkIHBhZ2UgYWZ0ZXIgJHt0aW1lci5nZXREdXJhdGlvbigpLmFzTWlsbGlTZWNvbmRzLnRvRml4ZWQoMCl9bXNgKTtcbn1cblxuZnVuY3Rpb24gbG9nQXBwbGljYXRpb25EaWN0aW9uYXJ5IChhcHBzKSB7XG4gIGZ1bmN0aW9uIGdldFZhbHVlU3RyaW5nIChrZXksIHZhbHVlKSB7XG4gICAgaWYgKF8uaXNGdW5jdGlvbih2YWx1ZSkpIHtcbiAgICAgIHJldHVybiAnW0Z1bmN0aW9uXSc7XG4gICAgfVxuICAgIGlmIChrZXkgPT09ICdwYWdlQXJyYXknICYmICFfLmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICByZXR1cm4gYFwiV2FpdGluZyBmb3IgZGF0YVwiYDtcbiAgICB9XG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHZhbHVlKTtcbiAgfVxuICBsb2cuZGVidWcoJ0N1cnJlbnQgYXBwbGljYXRpb25zIGF2YWlsYWJsZTonKTtcbiAgZm9yIChjb25zdCBbYXBwLCBpbmZvXSBvZiBfLnRvUGFpcnMoYXBwcykpIHtcbiAgICBsb2cuZGVidWcoYCAgICBBcHBsaWNhdGlvbjogXCIke2FwcH1cImApO1xuICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIF8udG9QYWlycyhpbmZvKSkge1xuICAgICAgaWYgKGtleSA9PT0gJ3BhZ2VBcnJheScgJiYgQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgdmFsdWUubGVuZ3RoKSB7XG4gICAgICAgIGxvZy5kZWJ1ZyhgICAgICAgICAke2tleX06YCk7XG4gICAgICAgIGZvciAoY29uc3QgcGFnZSBvZiB2YWx1ZSkge1xuICAgICAgICAgIGxldCBwcmVmaXggPSAnLSAnO1xuICAgICAgICAgIGZvciAoY29uc3QgW2ssIHZdIG9mIF8udG9QYWlycyhwYWdlKSkge1xuICAgICAgICAgICAgbG9nLmRlYnVnKGAgICAgICAgICAgJHtwcmVmaXh9JHtrfTogJHtKU09OLnN0cmluZ2lmeSh2KX1gKTtcbiAgICAgICAgICAgIHByZWZpeCA9ICcgICc7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCB2YWx1ZVN0cmluZyA9IGdldFZhbHVlU3RyaW5nKGtleSwgdmFsdWUpO1xuICAgICAgICBsb2cuZGVidWcoYCAgICAgICAgJHtrZXl9OiAke3ZhbHVlU3RyaW5nfWApO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiB1cGRhdGVBcHBzV2l0aERpY3QgKGRpY3QpIHtcbiAgLy8gZ2V0IHRoZSBkaWN0aW9uYXJ5IGVudHJ5IGludG8gYSBuaWNlIGZvcm0sIGFuZCBhZGQgaXQgdG8gdGhlXG4gIC8vIGFwcGxpY2F0aW9uIGRpY3Rpb25hcnlcbiAgdGhpcy5hcHBEaWN0ID0gdGhpcy5hcHBEaWN0IHx8IHt9O1xuICBsZXQgW2lkLCBlbnRyeV0gPSBhcHBJbmZvRnJvbURpY3QoZGljdCk7XG4gIGlmICh0aGlzLmFwcERpY3RbaWRdKSB7XG4gICAgLy8gcHJlc2VydmUgdGhlIHBhZ2UgZGljdGlvbmFyeSBmb3IgdGhpcyBlbnRyeVxuICAgIGVudHJ5LnBhZ2VBcnJheSA9IHRoaXMuYXBwRGljdFtpZF0ucGFnZUFycmF5O1xuICB9XG4gIHRoaXMuYXBwRGljdFtpZF0gPSBlbnRyeTtcblxuICAvLyBhZGQgYSBwcm9taXNlIHRvIGdldCB0aGUgcGFnZSBkaWN0aW9uYXJ5XG4gIGlmIChfLmlzVW5kZWZpbmVkKGVudHJ5LnBhZ2VBcnJheSkpIHtcbiAgICBlbnRyeS5wYWdlQXJyYXkgPSBkZWZlcnJlZFByb21pc2UoKTtcbiAgfVxuXG4gIC8vIHRyeSB0byBnZXQgdGhlIGFwcCBpZCBmcm9tIG91ciBjb25uZWN0ZWQgYXBwc1xuICBpZiAoIXRoaXMuYXBwSWRLZXkpIHtcbiAgICB0aGlzLmFwcElkS2V5ID0gZ2V0RGVidWdnZXJBcHBLZXkodGhpcy5idW5kbGVJZCwgdGhpcy5hcHBEaWN0KTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCB7IHNldENvbm5lY3Rpb25LZXksIGNvbm5lY3QsIGRpc2Nvbm5lY3QsIHNlbGVjdEFwcCwgc2VhcmNoRm9yQXBwLCBzZWFyY2hGb3JQYWdlLCBzZWxlY3RQYWdlLCB1cGRhdGVBcHBzV2l0aERpY3QgfTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFFQTs7QUFDQTs7QUFD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
@@ -11,13 +11,13 @@ require("source-map-support/register");
11
11
 
12
12
  var _logger = _interopRequireDefault(require("../logger"));
13
13
 
14
- var _baseDriver = require("@appium/base-driver");
14
+ var _driver = require("appium/driver");
15
15
 
16
16
  var _utils = require("../utils");
17
17
 
18
18
  var _atoms = require("../atoms");
19
19
 
20
- var _support = require("@appium/support");
20
+ var _support = require("appium/support");
21
21
 
22
22
  var _asyncbox = require("asyncbox");
23
23
 
@@ -102,7 +102,7 @@ async function executeAtomAsync(atom, args, frames) {
102
102
  });
103
103
  }
104
104
 
105
- throw new _baseDriver.errors.TimeoutError(`Timed out waiting for asynchronous script ` + `result after ${timer.getDuration().asMilliSeconds.toFixed(0)}ms'));`);
105
+ throw new _driver.errors.TimeoutError(`Timed out waiting for asynchronous script ` + `result after ${timer.getDuration().asMilliSeconds.toFixed(0)}ms'));`);
106
106
  });
107
107
  } finally {
108
108
  try {
@@ -174,4 +174,4 @@ var _default = {
174
174
  exports.default = _default;require('source-map-support').install();
175
175
 
176
176
 
177
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL21peGlucy9leGVjdXRlLmpzIiwibmFtZXMiOlsiUlBDX1JFU1BPTlNFX1RJTUVPVVRfTVMiLCJleGVjdXRlQXRvbSIsImF0b20iLCJhcmdzIiwiZnJhbWVzIiwicnBjQ2xpZW50IiwiaXNDb25uZWN0ZWQiLCJFcnJvciIsImxvZyIsImRlYnVnIiwiSlNPTiIsInN0cmluZ2lmeSIsInNjcmlwdCIsInZhbHVlIiwiZXhlY3V0ZSIsIl8iLCJ0cnVuY2F0ZSIsImxlbmd0aCIsIlJFU1BPTlNFX0xPR19MRU5HVEgiLCJleGVjdXRlQXRvbUFzeW5jIiwiZXZhbHVhdGUiLCJtZXRob2QiLCJvcHRzIiwic2VuZCIsIk9iamVjdCIsImFzc2lnbiIsImFwcElkS2V5IiwicGFnZUlkS2V5IiwicmV0dXJuQnlWYWx1ZSIsInByb21pc2VOYW1lIiwidXRpbCIsInV1aWRWNCIsInJlcGxhY2UiLCJvYmoiLCJleHByZXNzaW9uIiwicHJvbWlzZU9iamVjdElkIiwicmVzdWx0Iiwib2JqZWN0SWQiLCJhc3luY0NhbGxCYWNrIiwicmVzIiwic3ViY29tbWFuZFRpbWVvdXQiLCJnZW5lcmF0ZVByZXZpZXciLCJzYXZlUmVzdWx0IiwiZXJyIiwibWVzc2FnZSIsImluY2x1ZGVzIiwicmV0cnlXYWl0IiwidGltZW91dCIsInJldHJpZXMiLCJwYXJzZUludCIsInRpbWVyIiwidGltaW5nIiwiVGltZXIiLCJzdGFydCIsImhhc1ZhbHVlIiwiZXJyb3JzIiwiVGltZW91dEVycm9yIiwiZ2V0RHVyYXRpb24iLCJhc01pbGxpU2Vjb25kcyIsInRvRml4ZWQiLCJpZ24iLCJjb21tYW5kIiwib3ZlcnJpZGUiLCJwYWdlTG9hZGluZyIsIndhaXRGb3JEb20iLCJnYXJiYWdlQ29sbGVjdE9uRXhlY3V0ZSIsImdhcmJhZ2VDb2xsZWN0IiwiY2FsbEZ1bmN0aW9uIiwiZm4iLCJmdW5jdGlvbkRlY2xhcmF0aW9uIiwiYXJndW1lbnRzIl0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLiIsInNvdXJjZXMiOlsibGliL21peGlucy9leGVjdXRlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBsb2cgZnJvbSAnLi4vbG9nZ2VyJztcbmltcG9ydCB7IGVycm9ycyB9IGZyb20gJ0BhcHBpdW0vYmFzZS1kcml2ZXInO1xuaW1wb3J0IHsgY2hlY2tQYXJhbXMsIHNpbXBsZVN0cmluZ2lmeSwgY29udmVydFJlc3VsdCwgUkVTUE9OU0VfTE9HX0xFTkdUSCB9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB7IGdldFNjcmlwdEZvckF0b20gfSBmcm9tICcuLi9hdG9tcyc7XG5pbXBvcnQgeyB1dGlsLCB0aW1pbmcgfSBmcm9tICdAYXBwaXVtL3N1cHBvcnQnO1xuaW1wb3J0IHsgcmV0cnlJbnRlcnZhbCB9IGZyb20gJ2FzeW5jYm94JztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5cblxuLyogSG93IG1hbnkgbWlsbGlzZWNvbmRzIHRvIHdhaXQgZm9yIHdlYmtpdCB0byByZXR1cm4gYSByZXNwb25zZSBiZWZvcmUgdGltaW5nIG91dCAqL1xuY29uc3QgUlBDX1JFU1BPTlNFX1RJTUVPVVRfTVMgPSA1MDAwO1xuXG4vKipcbiAqIEV4ZWN1dGUgYSBTZWxlbml1bSBhdG9tIGluIFNhZmFyaVxuICogQHBhcmFtIHtzdHJpbmd9IGF0b20gTmFtZSBvZiBTZWxlbml1bSBhdG9tIChzZWUgYXRvbXMvIGRpcmVjdG9yeSlcbiAqIEBwYXJhbSB7QXJyYXk8Kj59IGFyZ3MgQXJndW1lbnRzIHBhc3NlZCB0byB0aGUgYXRvbVxuICogQHBhcmFtIHtBcnJheTxzdHJpbmc+fSBmcmFtZXNcbiAqIEByZXR1cm5zIHtzdHJpbmd9IFRoZSByZXN1bHQgcmVjZWl2ZWQgZnJvbSB0aGUgYXRvbVxuICovXG5hc3luYyBmdW5jdGlvbiBleGVjdXRlQXRvbSAoYXRvbSwgYXJncywgZnJhbWVzKSB7XG4gIGlmICghdGhpcy5ycGNDbGllbnQuaXNDb25uZWN0ZWQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1JlbW90ZSBkZWJ1Z2dlciBpcyBub3QgY29ubmVjdGVkJyk7XG4gIH1cblxuICBsb2cuZGVidWcoYEV4ZWN1dGluZyBhdG9tICcke2F0b219JyB3aXRoICdhcmdzPSR7SlNPTi5zdHJpbmdpZnkoYXJncyl9OyBmcmFtZXM9JHtmcmFtZXN9J2ApO1xuICBjb25zdCBzY3JpcHQgPSBhd2FpdCBnZXRTY3JpcHRGb3JBdG9tKGF0b20sIGFyZ3MsIGZyYW1lcyk7XG4gIGNvbnN0IHZhbHVlID0gYXdhaXQgdGhpcy5leGVjdXRlKHNjcmlwdCwgdHJ1ZSk7XG4gIGxvZy5kZWJ1ZyhgUmVjZWl2ZWQgcmVzdWx0IGZvciBhdG9tICcke2F0b219JyBleGVjdXRpb246ICR7Xy50cnVuY2F0ZShzaW1wbGVTdHJpbmdpZnkodmFsdWUpLCB7bGVuZ3RoOiBSRVNQT05TRV9MT0dfTEVOR1RIfSl9YCk7XG4gIHJldHVybiB2YWx1ZTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZXhlY3V0ZUF0b21Bc3luYyAoYXRvbSwgYXJncywgZnJhbWVzKSB7XG4gIC8vIGhlbHBlciB0byBzZW5kIGRpcmVjdGx5IHRvIHRoZSB3ZWIgaW5zcGVjdG9yXG4gIGNvbnN0IGV2YWx1YXRlID0gYXN5bmMgKG1ldGhvZCwgb3B0cykgPT4gYXdhaXQgdGhpcy5ycGNDbGllbnQuc2VuZChtZXRob2QsIE9iamVjdC5hc3NpZ24oe1xuICAgIGFwcElkS2V5OiB0aGlzLmFwcElkS2V5LFxuICAgIHBhZ2VJZEtleTogdGhpcy5wYWdlSWRLZXksXG4gICAgcmV0dXJuQnlWYWx1ZTogZmFsc2UsXG4gIH0sIG9wdHMpKTtcblxuICAvLyBmaXJzdCBjcmVhdGUgYSBQcm9taXNlIG9uIHRoZSBwYWdlLCBzYXZpbmcgdGhlIHJlc29sdmUvcmVqZWN0IGZ1bmN0aW9uc1xuICAvLyBhcyBwcm9wZXJ0aWVzXG4gIGNvbnN0IHByb21pc2VOYW1lID0gYGFwcGl1bUFzeW5jRXhlY3V0ZVByb21pc2Uke3V0aWwudXVpZFY0KCkucmVwbGFjZSgvLS9nLCAnJyl9YDtcbiAgY29uc3Qgc2NyaXB0ID1cbiAgICBgdmFyIHJlcywgcmVqO1xuICAgIHdpbmRvdy4ke3Byb21pc2VOYW1lfSA9IG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgIHJlcyA9IHJlc29sdmU7XG4gICAgICByZWogPSByZWplY3Q7XG4gICAgfSk7XG4gICAgd2luZG93LiR7cHJvbWlzZU5hbWV9LnJlc29sdmUgPSByZXM7XG4gICAgd2luZG93LiR7cHJvbWlzZU5hbWV9LnJlamVjdCA9IHJlajtcbiAgICB3aW5kb3cuJHtwcm9taXNlTmFtZX07YDtcbiAgY29uc3Qgb2JqID0gYXdhaXQgZXZhbHVhdGUoJ1J1bnRpbWUuZXZhbHVhdGUnLCB7XG4gICAgZXhwcmVzc2lvbjogc2NyaXB0LFxuICB9KTtcbiAgY29uc3QgcHJvbWlzZU9iamVjdElkID0gb2JqLnJlc3VsdC5vYmplY3RJZDtcblxuICAvLyBleGVjdXRlIHRoZSBhdG9tLCBjYWxsaW5nIGJhY2sgdG8gdGhlIHJlc29sdmUgZnVuY3Rpb25cbiAgY29uc3QgYXN5bmNDYWxsQmFjayA9XG4gICAgYGZ1bmN0aW9uIChyZXMpIHtcbiAgICAgIHdpbmRvdy4ke3Byb21pc2VOYW1lfS5yZXNvbHZlKHJlcyk7XG4gICAgICB3aW5kb3cuJHtwcm9taXNlTmFtZX1WYWx1ZSA9IHJlcztcbiAgICB9YDtcbiAgYXdhaXQgdGhpcy5leGVjdXRlKGF3YWl0IGdldFNjcmlwdEZvckF0b20oYXRvbSwgYXJncywgZnJhbWVzLCBhc3luY0NhbGxCYWNrKSk7XG5cbiAgLy8gd2FpdCBmb3IgdGhlIHByb21pc2UgdG8gYmUgcmVzb2x2ZWRcbiAgbGV0IHJlcztcbiAgY29uc3Qgc3ViY29tbWFuZFRpbWVvdXQgPSAxMDAwOyAvLyB0aW1lb3V0IG9uIGluZGl2aWR1YWwgY29tbWFuZHNcbiAgdHJ5IHtcbiAgICByZXMgPSBhd2FpdCBldmFsdWF0ZSgnUnVudGltZS5hd2FpdFByb21pc2UnLCB7XG4gICAgICBwcm9taXNlT2JqZWN0SWQsXG4gICAgICByZXR1cm5CeVZhbHVlOiB0cnVlLFxuICAgICAgZ2VuZXJhdGVQcmV2aWV3OiB0cnVlLFxuICAgICAgc2F2ZVJlc3VsdDogdHJ1ZSxcbiAgICB9KTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgaWYgKCFlcnIubWVzc2FnZS5pbmNsdWRlcyhgJ1J1bnRpbWUuYXdhaXRQcm9taXNlJyB3YXMgbm90IGZvdW5kYCkpIHtcbiAgICAgIHRocm93IGVycjtcbiAgICB9XG4gICAgLy8gYXdhaXRQcm9taXNlIGlzIG5vdCBhbHdheXMgYXZhaWxhYmxlLCBzbyBzaW11bGF0ZSBpdCB3aXRoIHBvbGxcbiAgICBjb25zdCByZXRyeVdhaXQgPSAxMDA7XG4gICAgY29uc3QgdGltZW91dCA9IChhcmdzLmxlbmd0aCA+PSAzKSA/IGFyZ3NbMl0gOiBSUENfUkVTUE9OU0VfVElNRU9VVF9NUztcbiAgICAvLyBpZiB0aGUgdGltZW91dCBtYXRoIHR1cm5zIHVwIDAgcmV0cmllcywgbWFrZSBzdXJlIGl0IGhhcHBlbnMgb25jZVxuICAgIGNvbnN0IHJldHJpZXMgPSBwYXJzZUludCh0aW1lb3V0IC8gcmV0cnlXYWl0LCAxMCkgfHwgMTtcbiAgICBjb25zdCB0aW1lciA9IG5ldyB0aW1pbmcuVGltZXIoKS5zdGFydCgpO1xuICAgIGxvZy5kZWJ1ZyhgV2FpdGluZyB1cCB0byAke3RpbWVvdXR9bXMgZm9yIGFzeW5jIGV4ZWN1dGUgdG8gZmluaXNoYCk7XG4gICAgcmVzID0gYXdhaXQgcmV0cnlJbnRlcnZhbChyZXRyaWVzLCByZXRyeVdhaXQsIGFzeW5jICgpID0+IHtcbiAgICAgIC8vIHRoZSBhdG9tIF93aWxsXyByZXR1cm4sIGVpdGhlciBiZWNhdXNlIGl0IGZpbmlzaGVkIG9yIGFuIGVycm9yXG4gICAgICAvLyBpbmNsdWRpbmcgYSB0aW1lb3V0IGVycm9yXG4gICAgICBjb25zdCBoYXNWYWx1ZSA9IGF3YWl0IGV2YWx1YXRlKCdSdW50aW1lLmV2YWx1YXRlJywge1xuICAgICAgICBleHByZXNzaW9uOiBgd2luZG93Lmhhc093blByb3BlcnR5KCcke3Byb21pc2VOYW1lfVZhbHVlJyk7YCxcbiAgICAgICAgcmV0dXJuQnlWYWx1ZTogdHJ1ZSxcbiAgICAgIH0pO1xuICAgICAgaWYgKGhhc1ZhbHVlKSB7XG4gICAgICAgIC8vIHdlIG9ubHkgcHV0IHRoZSBwcm9wZXJ0eSBvbiBgd2luZG93YCB3aGVuIHRoZSBjYWxsYmFjayBpcyBjYWxsZWQsXG4gICAgICAgIC8vIHNvIGlmIGl0IGlzIHRoZXJlLCBldmVyeXRoaW5nIGlzIGRvbmVcbiAgICAgICAgcmV0dXJuIGF3YWl0IGV2YWx1YXRlKCdSdW50aW1lLmV2YWx1YXRlJywge1xuICAgICAgICAgIGV4cHJlc3Npb246IGB3aW5kb3cuJHtwcm9taXNlTmFtZX1WYWx1ZTtgLFxuICAgICAgICAgIHJldHVybkJ5VmFsdWU6IHRydWUsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgLy8gdGhyb3cgYSBUaW1lb3V0RXJyb3IsIG9yIGVsc2UgaXQgbmVlZHMgdG8gYmUgY2F1Z2h0IGFuZCByZS10aHJvd25cbiAgICAgIHRocm93IG5ldyBlcnJvcnMuVGltZW91dEVycm9yKGBUaW1lZCBvdXQgd2FpdGluZyBmb3IgYXN5bmNocm9ub3VzIHNjcmlwdCBgICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGByZXN1bHQgYWZ0ZXIgJHt0aW1lci5nZXREdXJhdGlvbigpLmFzTWlsbGlTZWNvbmRzLnRvRml4ZWQoMCl9bXMnKSk7YCk7XG4gICAgfSk7XG4gIH0gZmluYWxseSB7XG4gICAgdHJ5IHtcbiAgICAgIC8vIHRyeSB0byBnZXQgcmlkIG9mIHRoZSBwcm9taXNlXG4gICAgICBhd2FpdCB0aGlzLmV4ZWN1dGVBdG9tKCdleGVjdXRlX3NjcmlwdCcsIFtgZGVsZXRlIHdpbmRvdy4ke3Byb21pc2VOYW1lfTtgLCBbbnVsbCwgbnVsbF0sIHN1YmNvbW1hbmRUaW1lb3V0XSwgZnJhbWVzKTtcbiAgICB9IGNhdGNoIChpZ24pIHt9XG4gIH1cbiAgcmV0dXJuIGNvbnZlcnRSZXN1bHQocmVzKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZXhlY3V0ZSAoY29tbWFuZCwgb3ZlcnJpZGUpIHtcbiAgLy8gaWYgdGhlIHBhZ2UgaXMgbm90IGxvYWRlZCB5ZXQsIHdhaXQgZm9yIGl0XG4gIGlmICh0aGlzLnBhZ2VMb2FkaW5nICYmICFvdmVycmlkZSkge1xuICAgIGxvZy5kZWJ1ZygnVHJ5aW5nIHRvIGV4ZWN1dGUgYnV0IHBhZ2UgaXMgbm90IGxvYWRlZC4nKTtcbiAgICBhd2FpdCB0aGlzLndhaXRGb3JEb20oKTtcbiAgfVxuXG4gIGNoZWNrUGFyYW1zKHthcHBJZEtleTogdGhpcy5hcHBJZEtleSwgcGFnZUlkS2V5OiB0aGlzLnBhZ2VJZEtleX0pO1xuXG4gIGlmICh0aGlzLmdhcmJhZ2VDb2xsZWN0T25FeGVjdXRlKSB7XG4gICAgYXdhaXQgdGhpcy5nYXJiYWdlQ29sbGVjdCgpO1xuICB9XG5cbiAgbG9nLmRlYnVnKGBTZW5kaW5nIGphdmFzY3JpcHQgY29tbWFuZDogJyR7Xy50cnVuY2F0ZShjb21tYW5kLCB7bGVuZ3RoOiA1MH0pfSdgKTtcbiAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy5ycGNDbGllbnQuc2VuZCgnUnVudGltZS5ldmFsdWF0ZScsIHtcbiAgICBleHByZXNzaW9uOiBjb21tYW5kLFxuICAgIHJldHVybkJ5VmFsdWU6IHRydWUsXG4gICAgYXBwSWRLZXk6IHRoaXMuYXBwSWRLZXksXG4gICAgcGFnZUlkS2V5OiB0aGlzLnBhZ2VJZEtleSxcbiAgfSk7XG5cbiAgcmV0dXJuIGNvbnZlcnRSZXN1bHQocmVzKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gY2FsbEZ1bmN0aW9uIChvYmplY3RJZCwgZm4sIGFyZ3MpIHtcbiAgY2hlY2tQYXJhbXMoe2FwcElkS2V5OiB0aGlzLmFwcElkS2V5LCBwYWdlSWRLZXk6IHRoaXMucGFnZUlkS2V5fSk7XG5cbiAgaWYgKHRoaXMuZ2FyYmFnZUNvbGxlY3RPbkV4ZWN1dGUpIHtcbiAgICBhd2FpdCB0aGlzLmdhcmJhZ2VDb2xsZWN0KCk7XG4gIH1cblxuICBsb2cuZGVidWcoJ0NhbGxpbmcgamF2YXNjcmlwdCBmdW5jdGlvbicpO1xuICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLnJwY0NsaWVudC5zZW5kKCdSdW50aW1lLmNhbGxGdW5jdGlvbk9uJywge1xuICAgIG9iamVjdElkLFxuICAgIGZ1bmN0aW9uRGVjbGFyYXRpb246IGZuLFxuICAgIGFyZ3VtZW50czogYXJncyxcbiAgICByZXR1cm5CeVZhbHVlOiB0cnVlLFxuICAgIGFwcElkS2V5OiB0aGlzLmFwcElkS2V5LFxuICAgIHBhZ2VJZEtleTogdGhpcy5wYWdlSWRLZXksXG4gIH0pO1xuXG4gIHJldHVybiBjb252ZXJ0UmVzdWx0KHJlcyk7XG59XG5cblxuZXhwb3J0IGRlZmF1bHQgeyBleGVjdXRlQXRvbSwgZXhlY3V0ZUF0b21Bc3luYywgZXhlY3V0ZSwgY2FsbEZ1bmN0aW9uIH07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBSUEsTUFBTUEsdUJBQXVCLEdBQUcsSUFBaEM7O0FBU0EsZUFBZUMsV0FBZixDQUE0QkMsSUFBNUIsRUFBa0NDLElBQWxDLEVBQXdDQyxNQUF4QyxFQUFnRDtFQUM5QyxJQUFJLENBQUMsS0FBS0MsU0FBTCxDQUFlQyxXQUFwQixFQUFpQztJQUMvQixNQUFNLElBQUlDLEtBQUosQ0FBVSxrQ0FBVixDQUFOO0VBQ0Q7O0VBRURDLGdCQUFJQyxLQUFKLENBQVcsbUJBQWtCUCxJQUFLLGdCQUFlUSxJQUFJLENBQUNDLFNBQUwsQ0FBZVIsSUFBZixDQUFxQixZQUFXQyxNQUFPLEdBQXhGOztFQUNBLE1BQU1RLE1BQU0sR0FBRyxNQUFNLDZCQUFpQlYsSUFBakIsRUFBdUJDLElBQXZCLEVBQTZCQyxNQUE3QixDQUFyQjtFQUNBLE1BQU1TLEtBQUssR0FBRyxNQUFNLEtBQUtDLE9BQUwsQ0FBYUYsTUFBYixFQUFxQixJQUFyQixDQUFwQjs7RUFDQUosZ0JBQUlDLEtBQUosQ0FBVyw2QkFBNEJQLElBQUssZ0JBQWVhLGdCQUFFQyxRQUFGLENBQVcsNEJBQWdCSCxLQUFoQixDQUFYLEVBQW1DO0lBQUNJLE1BQU0sRUFBRUM7RUFBVCxDQUFuQyxDQUFrRSxFQUE3SDs7RUFDQSxPQUFPTCxLQUFQO0FBQ0Q7O0FBRUQsZUFBZU0sZ0JBQWYsQ0FBaUNqQixJQUFqQyxFQUF1Q0MsSUFBdkMsRUFBNkNDLE1BQTdDLEVBQXFEO0VBRW5ELE1BQU1nQixRQUFRLEdBQUcsT0FBT0MsTUFBUCxFQUFlQyxJQUFmLEtBQXdCLE1BQU0sS0FBS2pCLFNBQUwsQ0FBZWtCLElBQWYsQ0FBb0JGLE1BQXBCLEVBQTRCRyxNQUFNLENBQUNDLE1BQVAsQ0FBYztJQUN2RkMsUUFBUSxFQUFFLEtBQUtBLFFBRHdFO0lBRXZGQyxTQUFTLEVBQUUsS0FBS0EsU0FGdUU7SUFHdkZDLGFBQWEsRUFBRTtFQUh3RSxDQUFkLEVBSXhFTixJQUp3RSxDQUE1QixDQUEvQzs7RUFRQSxNQUFNTyxXQUFXLEdBQUksNEJBQTJCQyxjQUFLQyxNQUFMLEdBQWNDLE9BQWQsQ0FBc0IsSUFBdEIsRUFBNEIsRUFBNUIsQ0FBZ0MsRUFBaEY7RUFDQSxNQUFNcEIsTUFBTSxHQUNUO0FBQ0wsYUFBYWlCLFdBQVk7QUFDekI7QUFDQTtBQUNBO0FBQ0EsYUFBYUEsV0FBWTtBQUN6QixhQUFhQSxXQUFZO0FBQ3pCLGFBQWFBLFdBQVksR0FSdkI7RUFTQSxNQUFNSSxHQUFHLEdBQUcsTUFBTWIsUUFBUSxDQUFDLGtCQUFELEVBQXFCO0lBQzdDYyxVQUFVLEVBQUV0QjtFQURpQyxDQUFyQixDQUExQjtFQUdBLE1BQU11QixlQUFlLEdBQUdGLEdBQUcsQ0FBQ0csTUFBSixDQUFXQyxRQUFuQztFQUdBLE1BQU1DLGFBQWEsR0FDaEI7QUFDTCxlQUFlVCxXQUFZO0FBQzNCLGVBQWVBLFdBQVk7QUFDM0IsTUFKRTtFQUtBLE1BQU0sS0FBS2YsT0FBTCxDQUFhLE1BQU0sNkJBQWlCWixJQUFqQixFQUF1QkMsSUFBdkIsRUFBNkJDLE1BQTdCLEVBQXFDa0MsYUFBckMsQ0FBbkIsQ0FBTjtFQUdBLElBQUlDLEdBQUo7RUFDQSxNQUFNQyxpQkFBaUIsR0FBRyxJQUExQjs7RUFDQSxJQUFJO0lBQ0ZELEdBQUcsR0FBRyxNQUFNbkIsUUFBUSxDQUFDLHNCQUFELEVBQXlCO01BQzNDZSxlQUQyQztNQUUzQ1AsYUFBYSxFQUFFLElBRjRCO01BRzNDYSxlQUFlLEVBQUUsSUFIMEI7TUFJM0NDLFVBQVUsRUFBRTtJQUorQixDQUF6QixDQUFwQjtFQU1ELENBUEQsQ0FPRSxPQUFPQyxHQUFQLEVBQVk7SUFDWixJQUFJLENBQUNBLEdBQUcsQ0FBQ0MsT0FBSixDQUFZQyxRQUFaLENBQXNCLHNDQUF0QixDQUFMLEVBQW1FO01BQ2pFLE1BQU1GLEdBQU47SUFDRDs7SUFFRCxNQUFNRyxTQUFTLEdBQUcsR0FBbEI7SUFDQSxNQUFNQyxPQUFPLEdBQUk1QyxJQUFJLENBQUNjLE1BQUwsSUFBZSxDQUFoQixHQUFxQmQsSUFBSSxDQUFDLENBQUQsQ0FBekIsR0FBK0JILHVCQUEvQztJQUVBLE1BQU1nRCxPQUFPLEdBQUdDLFFBQVEsQ0FBQ0YsT0FBTyxHQUFHRCxTQUFYLEVBQXNCLEVBQXRCLENBQVIsSUFBcUMsQ0FBckQ7SUFDQSxNQUFNSSxLQUFLLEdBQUcsSUFBSUMsZ0JBQU9DLEtBQVgsR0FBbUJDLEtBQW5CLEVBQWQ7O0lBQ0E3QyxnQkFBSUMsS0FBSixDQUFXLGlCQUFnQnNDLE9BQVEsZ0NBQW5DOztJQUNBUixHQUFHLEdBQUcsTUFBTSw2QkFBY1MsT0FBZCxFQUF1QkYsU0FBdkIsRUFBa0MsWUFBWTtNQUd4RCxNQUFNUSxRQUFRLEdBQUcsTUFBTWxDLFFBQVEsQ0FBQyxrQkFBRCxFQUFxQjtRQUNsRGMsVUFBVSxFQUFHLDBCQUF5QkwsV0FBWSxVQURBO1FBRWxERCxhQUFhLEVBQUU7TUFGbUMsQ0FBckIsQ0FBL0I7O01BSUEsSUFBSTBCLFFBQUosRUFBYztRQUdaLE9BQU8sTUFBTWxDLFFBQVEsQ0FBQyxrQkFBRCxFQUFxQjtVQUN4Q2MsVUFBVSxFQUFHLFVBQVNMLFdBQVksUUFETTtVQUV4Q0QsYUFBYSxFQUFFO1FBRnlCLENBQXJCLENBQXJCO01BSUQ7O01BRUQsTUFBTSxJQUFJMkIsbUJBQU9DLFlBQVgsQ0FBeUIsNENBQUQsR0FDQyxnQkFBZU4sS0FBSyxDQUFDTyxXQUFOLEdBQW9CQyxjQUFwQixDQUFtQ0MsT0FBbkMsQ0FBMkMsQ0FBM0MsQ0FBOEMsUUFEdEYsQ0FBTjtJQUVELENBbEJXLENBQVo7RUFtQkQsQ0FyQ0QsU0FxQ1U7SUFDUixJQUFJO01BRUYsTUFBTSxLQUFLMUQsV0FBTCxDQUFpQixnQkFBakIsRUFBbUMsQ0FBRSxpQkFBZ0I0QixXQUFZLEdBQTlCLEVBQWtDLENBQUMsSUFBRCxFQUFPLElBQVAsQ0FBbEMsRUFBZ0RXLGlCQUFoRCxDQUFuQyxFQUF1R3BDLE1BQXZHLENBQU47SUFDRCxDQUhELENBR0UsT0FBT3dELEdBQVAsRUFBWSxDQUFFO0VBQ2pCOztFQUNELE9BQU8sMEJBQWNyQixHQUFkLENBQVA7QUFDRDs7QUFFRCxlQUFlekIsT0FBZixDQUF3QitDLE9BQXhCLEVBQWlDQyxRQUFqQyxFQUEyQztFQUV6QyxJQUFJLEtBQUtDLFdBQUwsSUFBb0IsQ0FBQ0QsUUFBekIsRUFBbUM7SUFDakN0RCxnQkFBSUMsS0FBSixDQUFVLDJDQUFWOztJQUNBLE1BQU0sS0FBS3VELFVBQUwsRUFBTjtFQUNEOztFQUVELHdCQUFZO0lBQUN0QyxRQUFRLEVBQUUsS0FBS0EsUUFBaEI7SUFBMEJDLFNBQVMsRUFBRSxLQUFLQTtFQUExQyxDQUFaOztFQUVBLElBQUksS0FBS3NDLHVCQUFULEVBQWtDO0lBQ2hDLE1BQU0sS0FBS0MsY0FBTCxFQUFOO0VBQ0Q7O0VBRUQxRCxnQkFBSUMsS0FBSixDQUFXLGdDQUErQk0sZ0JBQUVDLFFBQUYsQ0FBVzZDLE9BQVgsRUFBb0I7SUFBQzVDLE1BQU0sRUFBRTtFQUFULENBQXBCLENBQWtDLEdBQTVFOztFQUNBLE1BQU1zQixHQUFHLEdBQUcsTUFBTSxLQUFLbEMsU0FBTCxDQUFla0IsSUFBZixDQUFvQixrQkFBcEIsRUFBd0M7SUFDeERXLFVBQVUsRUFBRTJCLE9BRDRDO0lBRXhEakMsYUFBYSxFQUFFLElBRnlDO0lBR3hERixRQUFRLEVBQUUsS0FBS0EsUUFIeUM7SUFJeERDLFNBQVMsRUFBRSxLQUFLQTtFQUp3QyxDQUF4QyxDQUFsQjtFQU9BLE9BQU8sMEJBQWNZLEdBQWQsQ0FBUDtBQUNEOztBQUVELGVBQWU0QixZQUFmLENBQTZCOUIsUUFBN0IsRUFBdUMrQixFQUF2QyxFQUEyQ2pFLElBQTNDLEVBQWlEO0VBQy9DLHdCQUFZO0lBQUN1QixRQUFRLEVBQUUsS0FBS0EsUUFBaEI7SUFBMEJDLFNBQVMsRUFBRSxLQUFLQTtFQUExQyxDQUFaOztFQUVBLElBQUksS0FBS3NDLHVCQUFULEVBQWtDO0lBQ2hDLE1BQU0sS0FBS0MsY0FBTCxFQUFOO0VBQ0Q7O0VBRUQxRCxnQkFBSUMsS0FBSixDQUFVLDZCQUFWOztFQUNBLE1BQU04QixHQUFHLEdBQUcsTUFBTSxLQUFLbEMsU0FBTCxDQUFla0IsSUFBZixDQUFvQix3QkFBcEIsRUFBOEM7SUFDOURjLFFBRDhEO0lBRTlEZ0MsbUJBQW1CLEVBQUVELEVBRnlDO0lBRzlERSxTQUFTLEVBQUVuRSxJQUhtRDtJQUk5RHlCLGFBQWEsRUFBRSxJQUorQztJQUs5REYsUUFBUSxFQUFFLEtBQUtBLFFBTCtDO0lBTTlEQyxTQUFTLEVBQUUsS0FBS0E7RUFOOEMsQ0FBOUMsQ0FBbEI7RUFTQSxPQUFPLDBCQUFjWSxHQUFkLENBQVA7QUFDRDs7ZUFHYztFQUFFdEMsV0FBRjtFQUFla0IsZ0JBQWY7RUFBaUNMLE9BQWpDO0VBQTBDcUQ7QUFBMUMsQyJ9
177
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL21peGlucy9leGVjdXRlLmpzIiwibmFtZXMiOlsiUlBDX1JFU1BPTlNFX1RJTUVPVVRfTVMiLCJleGVjdXRlQXRvbSIsImF0b20iLCJhcmdzIiwiZnJhbWVzIiwicnBjQ2xpZW50IiwiaXNDb25uZWN0ZWQiLCJFcnJvciIsImxvZyIsImRlYnVnIiwiSlNPTiIsInN0cmluZ2lmeSIsInNjcmlwdCIsImdldFNjcmlwdEZvckF0b20iLCJ2YWx1ZSIsImV4ZWN1dGUiLCJfIiwidHJ1bmNhdGUiLCJzaW1wbGVTdHJpbmdpZnkiLCJsZW5ndGgiLCJSRVNQT05TRV9MT0dfTEVOR1RIIiwiZXhlY3V0ZUF0b21Bc3luYyIsImV2YWx1YXRlIiwibWV0aG9kIiwib3B0cyIsInNlbmQiLCJPYmplY3QiLCJhc3NpZ24iLCJhcHBJZEtleSIsInBhZ2VJZEtleSIsInJldHVybkJ5VmFsdWUiLCJwcm9taXNlTmFtZSIsInV0aWwiLCJ1dWlkVjQiLCJyZXBsYWNlIiwib2JqIiwiZXhwcmVzc2lvbiIsInByb21pc2VPYmplY3RJZCIsInJlc3VsdCIsIm9iamVjdElkIiwiYXN5bmNDYWxsQmFjayIsInJlcyIsInN1YmNvbW1hbmRUaW1lb3V0IiwiZ2VuZXJhdGVQcmV2aWV3Iiwic2F2ZVJlc3VsdCIsImVyciIsIm1lc3NhZ2UiLCJpbmNsdWRlcyIsInJldHJ5V2FpdCIsInRpbWVvdXQiLCJyZXRyaWVzIiwicGFyc2VJbnQiLCJ0aW1lciIsInRpbWluZyIsIlRpbWVyIiwic3RhcnQiLCJyZXRyeUludGVydmFsIiwiaGFzVmFsdWUiLCJlcnJvcnMiLCJUaW1lb3V0RXJyb3IiLCJnZXREdXJhdGlvbiIsImFzTWlsbGlTZWNvbmRzIiwidG9GaXhlZCIsImlnbiIsImNvbnZlcnRSZXN1bHQiLCJjb21tYW5kIiwib3ZlcnJpZGUiLCJwYWdlTG9hZGluZyIsIndhaXRGb3JEb20iLCJjaGVja1BhcmFtcyIsImdhcmJhZ2VDb2xsZWN0T25FeGVjdXRlIiwiZ2FyYmFnZUNvbGxlY3QiLCJjYWxsRnVuY3Rpb24iLCJmbiIsImZ1bmN0aW9uRGVjbGFyYXRpb24iLCJhcmd1bWVudHMiXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uIiwic291cmNlcyI6WyJsaWIvbWl4aW5zL2V4ZWN1dGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGxvZyBmcm9tICcuLi9sb2dnZXInO1xuaW1wb3J0IHsgZXJyb3JzIH0gZnJvbSAnYXBwaXVtL2RyaXZlcic7XG5pbXBvcnQgeyBjaGVja1BhcmFtcywgc2ltcGxlU3RyaW5naWZ5LCBjb252ZXJ0UmVzdWx0LCBSRVNQT05TRV9MT0dfTEVOR1RIIH0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHsgZ2V0U2NyaXB0Rm9yQXRvbSB9IGZyb20gJy4uL2F0b21zJztcbmltcG9ydCB7IHV0aWwsIHRpbWluZyB9IGZyb20gJ2FwcGl1bS9zdXBwb3J0JztcbmltcG9ydCB7IHJldHJ5SW50ZXJ2YWwgfSBmcm9tICdhc3luY2JveCc7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuXG5cbi8qIEhvdyBtYW55IG1pbGxpc2Vjb25kcyB0byB3YWl0IGZvciB3ZWJraXQgdG8gcmV0dXJuIGEgcmVzcG9uc2UgYmVmb3JlIHRpbWluZyBvdXQgKi9cbmNvbnN0IFJQQ19SRVNQT05TRV9USU1FT1VUX01TID0gNTAwMDtcblxuLyoqXG4gKiBFeGVjdXRlIGEgU2VsZW5pdW0gYXRvbSBpbiBTYWZhcmlcbiAqIEBwYXJhbSB7c3RyaW5nfSBhdG9tIE5hbWUgb2YgU2VsZW5pdW0gYXRvbSAoc2VlIGF0b21zLyBkaXJlY3RvcnkpXG4gKiBAcGFyYW0ge0FycmF5PCo+fSBhcmdzIEFyZ3VtZW50cyBwYXNzZWQgdG8gdGhlIGF0b21cbiAqIEBwYXJhbSB7QXJyYXk8c3RyaW5nPn0gZnJhbWVzXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBUaGUgcmVzdWx0IHJlY2VpdmVkIGZyb20gdGhlIGF0b21cbiAqL1xuYXN5bmMgZnVuY3Rpb24gZXhlY3V0ZUF0b20gKGF0b20sIGFyZ3MsIGZyYW1lcykge1xuICBpZiAoIXRoaXMucnBjQ2xpZW50LmlzQ29ubmVjdGVkKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdSZW1vdGUgZGVidWdnZXIgaXMgbm90IGNvbm5lY3RlZCcpO1xuICB9XG5cbiAgbG9nLmRlYnVnKGBFeGVjdXRpbmcgYXRvbSAnJHthdG9tfScgd2l0aCAnYXJncz0ke0pTT04uc3RyaW5naWZ5KGFyZ3MpfTsgZnJhbWVzPSR7ZnJhbWVzfSdgKTtcbiAgY29uc3Qgc2NyaXB0ID0gYXdhaXQgZ2V0U2NyaXB0Rm9yQXRvbShhdG9tLCBhcmdzLCBmcmFtZXMpO1xuICBjb25zdCB2YWx1ZSA9IGF3YWl0IHRoaXMuZXhlY3V0ZShzY3JpcHQsIHRydWUpO1xuICBsb2cuZGVidWcoYFJlY2VpdmVkIHJlc3VsdCBmb3IgYXRvbSAnJHthdG9tfScgZXhlY3V0aW9uOiAke18udHJ1bmNhdGUoc2ltcGxlU3RyaW5naWZ5KHZhbHVlKSwge2xlbmd0aDogUkVTUE9OU0VfTE9HX0xFTkdUSH0pfWApO1xuICByZXR1cm4gdmFsdWU7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGV4ZWN1dGVBdG9tQXN5bmMgKGF0b20sIGFyZ3MsIGZyYW1lcykge1xuICAvLyBoZWxwZXIgdG8gc2VuZCBkaXJlY3RseSB0byB0aGUgd2ViIGluc3BlY3RvclxuICBjb25zdCBldmFsdWF0ZSA9IGFzeW5jIChtZXRob2QsIG9wdHMpID0+IGF3YWl0IHRoaXMucnBjQ2xpZW50LnNlbmQobWV0aG9kLCBPYmplY3QuYXNzaWduKHtcbiAgICBhcHBJZEtleTogdGhpcy5hcHBJZEtleSxcbiAgICBwYWdlSWRLZXk6IHRoaXMucGFnZUlkS2V5LFxuICAgIHJldHVybkJ5VmFsdWU6IGZhbHNlLFxuICB9LCBvcHRzKSk7XG5cbiAgLy8gZmlyc3QgY3JlYXRlIGEgUHJvbWlzZSBvbiB0aGUgcGFnZSwgc2F2aW5nIHRoZSByZXNvbHZlL3JlamVjdCBmdW5jdGlvbnNcbiAgLy8gYXMgcHJvcGVydGllc1xuICBjb25zdCBwcm9taXNlTmFtZSA9IGBhcHBpdW1Bc3luY0V4ZWN1dGVQcm9taXNlJHt1dGlsLnV1aWRWNCgpLnJlcGxhY2UoLy0vZywgJycpfWA7XG4gIGNvbnN0IHNjcmlwdCA9XG4gICAgYHZhciByZXMsIHJlajtcbiAgICB3aW5kb3cuJHtwcm9taXNlTmFtZX0gPSBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICByZXMgPSByZXNvbHZlO1xuICAgICAgcmVqID0gcmVqZWN0O1xuICAgIH0pO1xuICAgIHdpbmRvdy4ke3Byb21pc2VOYW1lfS5yZXNvbHZlID0gcmVzO1xuICAgIHdpbmRvdy4ke3Byb21pc2VOYW1lfS5yZWplY3QgPSByZWo7XG4gICAgd2luZG93LiR7cHJvbWlzZU5hbWV9O2A7XG4gIGNvbnN0IG9iaiA9IGF3YWl0IGV2YWx1YXRlKCdSdW50aW1lLmV2YWx1YXRlJywge1xuICAgIGV4cHJlc3Npb246IHNjcmlwdCxcbiAgfSk7XG4gIGNvbnN0IHByb21pc2VPYmplY3RJZCA9IG9iai5yZXN1bHQub2JqZWN0SWQ7XG5cbiAgLy8gZXhlY3V0ZSB0aGUgYXRvbSwgY2FsbGluZyBiYWNrIHRvIHRoZSByZXNvbHZlIGZ1bmN0aW9uXG4gIGNvbnN0IGFzeW5jQ2FsbEJhY2sgPVxuICAgIGBmdW5jdGlvbiAocmVzKSB7XG4gICAgICB3aW5kb3cuJHtwcm9taXNlTmFtZX0ucmVzb2x2ZShyZXMpO1xuICAgICAgd2luZG93LiR7cHJvbWlzZU5hbWV9VmFsdWUgPSByZXM7XG4gICAgfWA7XG4gIGF3YWl0IHRoaXMuZXhlY3V0ZShhd2FpdCBnZXRTY3JpcHRGb3JBdG9tKGF0b20sIGFyZ3MsIGZyYW1lcywgYXN5bmNDYWxsQmFjaykpO1xuXG4gIC8vIHdhaXQgZm9yIHRoZSBwcm9taXNlIHRvIGJlIHJlc29sdmVkXG4gIGxldCByZXM7XG4gIGNvbnN0IHN1YmNvbW1hbmRUaW1lb3V0ID0gMTAwMDsgLy8gdGltZW91dCBvbiBpbmRpdmlkdWFsIGNvbW1hbmRzXG4gIHRyeSB7XG4gICAgcmVzID0gYXdhaXQgZXZhbHVhdGUoJ1J1bnRpbWUuYXdhaXRQcm9taXNlJywge1xuICAgICAgcHJvbWlzZU9iamVjdElkLFxuICAgICAgcmV0dXJuQnlWYWx1ZTogdHJ1ZSxcbiAgICAgIGdlbmVyYXRlUHJldmlldzogdHJ1ZSxcbiAgICAgIHNhdmVSZXN1bHQ6IHRydWUsXG4gICAgfSk7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGlmICghZXJyLm1lc3NhZ2UuaW5jbHVkZXMoYCdSdW50aW1lLmF3YWl0UHJvbWlzZScgd2FzIG5vdCBmb3VuZGApKSB7XG4gICAgICB0aHJvdyBlcnI7XG4gICAgfVxuICAgIC8vIGF3YWl0UHJvbWlzZSBpcyBub3QgYWx3YXlzIGF2YWlsYWJsZSwgc28gc2ltdWxhdGUgaXQgd2l0aCBwb2xsXG4gICAgY29uc3QgcmV0cnlXYWl0ID0gMTAwO1xuICAgIGNvbnN0IHRpbWVvdXQgPSAoYXJncy5sZW5ndGggPj0gMykgPyBhcmdzWzJdIDogUlBDX1JFU1BPTlNFX1RJTUVPVVRfTVM7XG4gICAgLy8gaWYgdGhlIHRpbWVvdXQgbWF0aCB0dXJucyB1cCAwIHJldHJpZXMsIG1ha2Ugc3VyZSBpdCBoYXBwZW5zIG9uY2VcbiAgICBjb25zdCByZXRyaWVzID0gcGFyc2VJbnQodGltZW91dCAvIHJldHJ5V2FpdCwgMTApIHx8IDE7XG4gICAgY29uc3QgdGltZXIgPSBuZXcgdGltaW5nLlRpbWVyKCkuc3RhcnQoKTtcbiAgICBsb2cuZGVidWcoYFdhaXRpbmcgdXAgdG8gJHt0aW1lb3V0fW1zIGZvciBhc3luYyBleGVjdXRlIHRvIGZpbmlzaGApO1xuICAgIHJlcyA9IGF3YWl0IHJldHJ5SW50ZXJ2YWwocmV0cmllcywgcmV0cnlXYWl0LCBhc3luYyAoKSA9PiB7XG4gICAgICAvLyB0aGUgYXRvbSBfd2lsbF8gcmV0dXJuLCBlaXRoZXIgYmVjYXVzZSBpdCBmaW5pc2hlZCBvciBhbiBlcnJvclxuICAgICAgLy8gaW5jbHVkaW5nIGEgdGltZW91dCBlcnJvclxuICAgICAgY29uc3QgaGFzVmFsdWUgPSBhd2FpdCBldmFsdWF0ZSgnUnVudGltZS5ldmFsdWF0ZScsIHtcbiAgICAgICAgZXhwcmVzc2lvbjogYHdpbmRvdy5oYXNPd25Qcm9wZXJ0eSgnJHtwcm9taXNlTmFtZX1WYWx1ZScpO2AsXG4gICAgICAgIHJldHVybkJ5VmFsdWU6IHRydWUsXG4gICAgICB9KTtcbiAgICAgIGlmIChoYXNWYWx1ZSkge1xuICAgICAgICAvLyB3ZSBvbmx5IHB1dCB0aGUgcHJvcGVydHkgb24gYHdpbmRvd2Agd2hlbiB0aGUgY2FsbGJhY2sgaXMgY2FsbGVkLFxuICAgICAgICAvLyBzbyBpZiBpdCBpcyB0aGVyZSwgZXZlcnl0aGluZyBpcyBkb25lXG4gICAgICAgIHJldHVybiBhd2FpdCBldmFsdWF0ZSgnUnVudGltZS5ldmFsdWF0ZScsIHtcbiAgICAgICAgICBleHByZXNzaW9uOiBgd2luZG93LiR7cHJvbWlzZU5hbWV9VmFsdWU7YCxcbiAgICAgICAgICByZXR1cm5CeVZhbHVlOiB0cnVlLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIC8vIHRocm93IGEgVGltZW91dEVycm9yLCBvciBlbHNlIGl0IG5lZWRzIHRvIGJlIGNhdWdodCBhbmQgcmUtdGhyb3duXG4gICAgICB0aHJvdyBuZXcgZXJyb3JzLlRpbWVvdXRFcnJvcihgVGltZWQgb3V0IHdhaXRpbmcgZm9yIGFzeW5jaHJvbm91cyBzY3JpcHQgYCArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgcmVzdWx0IGFmdGVyICR7dGltZXIuZ2V0RHVyYXRpb24oKS5hc01pbGxpU2Vjb25kcy50b0ZpeGVkKDApfW1zJykpO2ApO1xuICAgIH0pO1xuICB9IGZpbmFsbHkge1xuICAgIHRyeSB7XG4gICAgICAvLyB0cnkgdG8gZ2V0IHJpZCBvZiB0aGUgcHJvbWlzZVxuICAgICAgYXdhaXQgdGhpcy5leGVjdXRlQXRvbSgnZXhlY3V0ZV9zY3JpcHQnLCBbYGRlbGV0ZSB3aW5kb3cuJHtwcm9taXNlTmFtZX07YCwgW251bGwsIG51bGxdLCBzdWJjb21tYW5kVGltZW91dF0sIGZyYW1lcyk7XG4gICAgfSBjYXRjaCAoaWduKSB7fVxuICB9XG4gIHJldHVybiBjb252ZXJ0UmVzdWx0KHJlcyk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGV4ZWN1dGUgKGNvbW1hbmQsIG92ZXJyaWRlKSB7XG4gIC8vIGlmIHRoZSBwYWdlIGlzIG5vdCBsb2FkZWQgeWV0LCB3YWl0IGZvciBpdFxuICBpZiAodGhpcy5wYWdlTG9hZGluZyAmJiAhb3ZlcnJpZGUpIHtcbiAgICBsb2cuZGVidWcoJ1RyeWluZyB0byBleGVjdXRlIGJ1dCBwYWdlIGlzIG5vdCBsb2FkZWQuJyk7XG4gICAgYXdhaXQgdGhpcy53YWl0Rm9yRG9tKCk7XG4gIH1cblxuICBjaGVja1BhcmFtcyh7YXBwSWRLZXk6IHRoaXMuYXBwSWRLZXksIHBhZ2VJZEtleTogdGhpcy5wYWdlSWRLZXl9KTtcblxuICBpZiAodGhpcy5nYXJiYWdlQ29sbGVjdE9uRXhlY3V0ZSkge1xuICAgIGF3YWl0IHRoaXMuZ2FyYmFnZUNvbGxlY3QoKTtcbiAgfVxuXG4gIGxvZy5kZWJ1ZyhgU2VuZGluZyBqYXZhc2NyaXB0IGNvbW1hbmQ6ICcke18udHJ1bmNhdGUoY29tbWFuZCwge2xlbmd0aDogNTB9KX0nYCk7XG4gIGNvbnN0IHJlcyA9IGF3YWl0IHRoaXMucnBjQ2xpZW50LnNlbmQoJ1J1bnRpbWUuZXZhbHVhdGUnLCB7XG4gICAgZXhwcmVzc2lvbjogY29tbWFuZCxcbiAgICByZXR1cm5CeVZhbHVlOiB0cnVlLFxuICAgIGFwcElkS2V5OiB0aGlzLmFwcElkS2V5LFxuICAgIHBhZ2VJZEtleTogdGhpcy5wYWdlSWRLZXksXG4gIH0pO1xuXG4gIHJldHVybiBjb252ZXJ0UmVzdWx0KHJlcyk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGNhbGxGdW5jdGlvbiAob2JqZWN0SWQsIGZuLCBhcmdzKSB7XG4gIGNoZWNrUGFyYW1zKHthcHBJZEtleTogdGhpcy5hcHBJZEtleSwgcGFnZUlkS2V5OiB0aGlzLnBhZ2VJZEtleX0pO1xuXG4gIGlmICh0aGlzLmdhcmJhZ2VDb2xsZWN0T25FeGVjdXRlKSB7XG4gICAgYXdhaXQgdGhpcy5nYXJiYWdlQ29sbGVjdCgpO1xuICB9XG5cbiAgbG9nLmRlYnVnKCdDYWxsaW5nIGphdmFzY3JpcHQgZnVuY3Rpb24nKTtcbiAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy5ycGNDbGllbnQuc2VuZCgnUnVudGltZS5jYWxsRnVuY3Rpb25PbicsIHtcbiAgICBvYmplY3RJZCxcbiAgICBmdW5jdGlvbkRlY2xhcmF0aW9uOiBmbixcbiAgICBhcmd1bWVudHM6IGFyZ3MsXG4gICAgcmV0dXJuQnlWYWx1ZTogdHJ1ZSxcbiAgICBhcHBJZEtleTogdGhpcy5hcHBJZEtleSxcbiAgICBwYWdlSWRLZXk6IHRoaXMucGFnZUlkS2V5LFxuICB9KTtcblxuICByZXR1cm4gY29udmVydFJlc3VsdChyZXMpO1xufVxuXG5cbmV4cG9ydCBkZWZhdWx0IHsgZXhlY3V0ZUF0b20sIGV4ZWN1dGVBdG9tQXN5bmMsIGV4ZWN1dGUsIGNhbGxGdW5jdGlvbiB9O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUlBLE1BQU1BLHVCQUF1QixHQUFHLElBQWhDOztBQVNBLGVBQWVDLFdBQWYsQ0FBNEJDLElBQTVCLEVBQWtDQyxJQUFsQyxFQUF3Q0MsTUFBeEMsRUFBZ0Q7RUFDOUMsSUFBSSxDQUFDLEtBQUtDLFNBQUwsQ0FBZUMsV0FBcEIsRUFBaUM7SUFDL0IsTUFBTSxJQUFJQyxLQUFKLENBQVUsa0NBQVYsQ0FBTjtFQUNEOztFQUVEQyxlQUFBLENBQUlDLEtBQUosQ0FBVyxtQkFBa0JQLElBQUssZ0JBQWVRLElBQUksQ0FBQ0MsU0FBTCxDQUFlUixJQUFmLENBQXFCLFlBQVdDLE1BQU8sR0FBeEY7O0VBQ0EsTUFBTVEsTUFBTSxHQUFHLE1BQU0sSUFBQUMsdUJBQUEsRUFBaUJYLElBQWpCLEVBQXVCQyxJQUF2QixFQUE2QkMsTUFBN0IsQ0FB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
@@ -153,4 +153,4 @@ var _default = messageHandlers;
153
153
  exports.default = _default;require('source-map-support').install();
154
154
 
155
155
 
156
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL21peGlucy9tZXNzYWdlLWhhbmRsZXJzLmpzIiwibmFtZXMiOlsib25QYWdlQ2hhbmdlIiwiZXJyIiwiYXBwSWRLZXkiLCJwYWdlRGljdCIsIl8iLCJpc0VtcHR5IiwicGFnZUFycmF5IiwidXNlQXBwRGljdExvY2siLCJkb25lIiwiYXBwRGljdCIsInJlc29sdmUiLCJpc0VxdWFsIiwibG9nIiwiZGVidWciLCJfbmF2aWdhdGluZ1RvUGFnZSIsImVtaXQiLCJldmVudHMiLCJFVkVOVF9QQUdFX0NIQU5HRSIsInJlcGxhY2UiLCJvbkFwcENvbm5lY3QiLCJkaWN0IiwiV0lSQXBwbGljYXRpb25JZGVudGlmaWVyS2V5IiwidXBkYXRlQXBwc1dpdGhEaWN0Iiwib25BcHBEaXNjb25uZWN0IiwiYnVuZGxlSWQiLCJjb25uZWN0ZWQiLCJFVkVOVF9ESVNDT05ORUNUIiwib25BcHBVcGRhdGUiLCJvbkNvbm5lY3RlZERyaXZlckxpc3QiLCJkcml2ZXJzIiwiY29ubmVjdGVkRHJpdmVycyIsIldJUkRyaXZlckRpY3Rpb25hcnlLZXkiLCJKU09OIiwic3RyaW5naWZ5Iiwib25DdXJyZW50U3RhdGUiLCJzdGF0ZSIsImN1cnJlbnRTdGF0ZSIsIldJUkF1dG9tYXRpb25BdmFpbGFiaWxpdHlLZXkiLCJvbkNvbm5lY3RlZEFwcGxpY2F0aW9uTGlzdCIsImFwcHMiLCJrZXlzIiwiam9pbiIsIm5ld0RpY3QiLCJ2YWx1ZXMiLCJpZCIsImVudHJ5Iiwic2tpcHBlZEFwcHMiLCJpbmNsdWRlcyIsIm5hbWUiLCJkZWZhdWx0cyIsIm1lc3NhZ2VIYW5kbGVycyJdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4iLCJzb3VyY2VzIjpbImxpYi9taXhpbnMvbWVzc2FnZS1oYW5kbGVycy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbG9nIGZyb20gJy4uL2xvZ2dlcic7XG5pbXBvcnQgZXZlbnRzIGZyb20gJy4vZXZlbnRzJztcbmltcG9ydCB7IHBhZ2VBcnJheUZyb21EaWN0LCBnZXREZWJ1Z2dlckFwcEtleSwgc2ltcGxlU3RyaW5naWZ5LCBhcHBJbmZvRnJvbURpY3QgfSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuXG5cbi8qXG4gKiBHZW5lcmljIGNhbGxiYWNrcyB1c2VkIHRocm91Z2hvdXQgdGhlIGxpZmVjeWNsZSBvZiB0aGUgUmVtb3RlIERlYnVnZ2VyLlxuICogVGhlc2Ugd2lsbCBiZSBhZGRlZCB0byB0aGUgcHJvdG90eXBlLlxuICovXG5cbmFzeW5jIGZ1bmN0aW9uIG9uUGFnZUNoYW5nZSAoZXJyLCBhcHBJZEtleSwgcGFnZURpY3QpIHtcbiAgaWYgKF8uaXNFbXB0eShwYWdlRGljdCkpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBwYWdlQXJyYXkgPSBwYWdlQXJyYXlGcm9tRGljdChwYWdlRGljdCk7XG5cbiAgYXdhaXQgdGhpcy51c2VBcHBEaWN0TG9jaygoZG9uZSkgPT4ge1xuICAgIHRyeSB7XG4gICAgICAvLyBzYXZlIHRoZSBwYWdlIGRpY3QgZm9yIHRoaXMgYXBwXG4gICAgICBpZiAodGhpcy5hcHBEaWN0W2FwcElkS2V5XSkge1xuICAgICAgICBpZiAodGhpcy5hcHBEaWN0W2FwcElkS2V5XS5wYWdlQXJyYXkpIHtcbiAgICAgICAgICBpZiAodGhpcy5hcHBEaWN0W2FwcElkS2V5XS5wYWdlQXJyYXkucmVzb2x2ZSkge1xuICAgICAgICAgICAgLy8gcGFnZURpY3QgaXMgYSBwZW5kaW5nIHByb21pc2UsIHNvIHJlc29sdmVcbiAgICAgICAgICAgIHRoaXMuYXBwRGljdFthcHBJZEtleV0ucGFnZUFycmF5LnJlc29sdmUoKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gd2UgaGF2ZSBhIHByZS1leGlzdGluZyBwYWdlRGljdFxuICAgICAgICAgICAgaWYgKF8uaXNFcXVhbCh0aGlzLmFwcERpY3RbYXBwSWRLZXldLnBhZ2VBcnJheSwgcGFnZUFycmF5KSkge1xuICAgICAgICAgICAgICBsb2cuZGVidWcoYFJlY2VpdmVkIHBhZ2UgY2hhbmdlIG5vdGljZSBmb3IgYXBwICcke2FwcElkS2V5fScgYCArXG4gICAgICAgICAgICAgICAgICAgICAgICBgYnV0IHRoZSBsaXN0aW5nIGhhcyBub3QgY2hhbmdlZC4gSWdub3JpbmcuYCk7XG4gICAgICAgICAgICAgIHJldHVybiBkb25lKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vIGtlZXAgdHJhY2sgb2YgdGhlIHBhZ2UgZGljdGlvbmFyeVxuICAgICAgICB0aGlzLmFwcERpY3RbYXBwSWRLZXldLnBhZ2VBcnJheSA9IHBhZ2VBcnJheTtcbiAgICAgIH1cbiAgICB9IGZpbmFsbHkge1xuICAgICAgZG9uZSgpO1xuICAgIH1cbiAgfSk7XG5cbiAgaWYgKHRoaXMuX25hdmlnYXRpbmdUb1BhZ2UpIHtcbiAgICAvLyBpbiB0aGUgbWlkZGxlIG9mIG5hdmlnYXRpbmcsIHNvIHJlcG9ydGluZyBhIHBhZ2UgY2hhbmdlIHdpbGwgY2F1c2UgcHJvYmxlbXNcbiAgICByZXR1cm47XG4gIH1cblxuICBsb2cuZGVidWcoYFBhZ2UgY2hhbmdlZDogJHtzaW1wbGVTdHJpbmdpZnkocGFnZURpY3QsIHRydWUpfWApO1xuXG4gIHRoaXMuZW1pdChldmVudHMuRVZFTlRfUEFHRV9DSEFOR0UsIHtcbiAgICBhcHBJZEtleTogYXBwSWRLZXkucmVwbGFjZSgnUElEOicsICcnKSxcbiAgICBwYWdlQXJyYXksXG4gIH0pO1xufVxuXG5hc3luYyBmdW5jdGlvbiBvbkFwcENvbm5lY3QgKGVyciwgZGljdCkge1xuICBjb25zdCBhcHBJZEtleSA9IGRpY3QuV0lSQXBwbGljYXRpb25JZGVudGlmaWVyS2V5O1xuICBsb2cuZGVidWcoYE5vdGlmaWVkIHRoYXQgbmV3IGFwcGxpY2F0aW9uICcke2FwcElkS2V5fScgaGFzIGNvbm5lY3RlZGApO1xuICBhd2FpdCB0aGlzLnVzZUFwcERpY3RMb2NrKChkb25lKSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIHRoaXMudXBkYXRlQXBwc1dpdGhEaWN0KGRpY3QpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBkb25lKCk7XG4gICAgfVxuICB9KTtcbn1cblxuZnVuY3Rpb24gb25BcHBEaXNjb25uZWN0IChlcnIsIGRpY3QpIHtcbiAgY29uc3QgYXBwSWRLZXkgPSBkaWN0LldJUkFwcGxpY2F0aW9uSWRlbnRpZmllcktleTtcbiAgbG9nLmRlYnVnKGBBcHBsaWNhdGlvbiAnJHthcHBJZEtleX0nIGRpc2Nvbm5lY3RlZC4gUmVtb3ZpbmcgZnJvbSBhcHAgZGljdGlvbmFyeS5gKTtcbiAgbG9nLmRlYnVnKGBDdXJyZW50IGFwcCBpcyAnJHt0aGlzLmFwcElkS2V5fSdgKTtcblxuICAvLyBnZXQgcmlkIG9mIHRoZSBlbnRyeSBpbiBvdXIgYXBwIGRpY3Rpb25hcnksXG4gIC8vIHNpbmNlIGl0IGlzIG5vIGxvbmdlciBhdmFpbGFibGVcbiAgZGVsZXRlIHRoaXMuYXBwRGljdFthcHBJZEtleV07XG5cbiAgLy8gaWYgdGhlIGRpc2Nvbm5lY3RlZCBhcHAgaXMgdGhlIG9uZSB3ZSBhcmUgY29ubmVjdGVkIHRvLCB0cnkgdG8gZmluZCBhbm90aGVyXG4gIGlmICh0aGlzLmFwcElkS2V5ID09PSBhcHBJZEtleSkge1xuICAgIGxvZy5kZWJ1ZyhgTm8gbG9uZ2VyIGhhdmUgYXBwIGlkLiBBdHRlbXB0aW5nIHRvIGZpbmQgbmV3IG9uZS5gKTtcbiAgICB0aGlzLmFwcElkS2V5ID0gZ2V0RGVidWdnZXJBcHBLZXkodGhpcy5idW5kbGVJZCwgdGhpcy5hcHBEaWN0KTtcbiAgfVxuXG4gIGlmICghdGhpcy5hcHBEaWN0KSB7XG4gICAgLy8gdGhpcyBtZWFucyB3ZSBubyBsb25nZXIgaGF2ZSBhbnkgYXBwcy4gd2hhdCB0aGUgd2hhdD9cbiAgICBsb2cuZGVidWcoJ01haW4gYXBwIGRpc2Nvbm5lY3RlZC4gRGlzY29ubmVjdGluZyBhbHRvZ2V0aGVyLicpO1xuICAgIHRoaXMuY29ubmVjdGVkID0gZmFsc2U7XG4gICAgdGhpcy5lbWl0KGV2ZW50cy5FVkVOVF9ESVNDT05ORUNULCB0cnVlKTtcbiAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiBvbkFwcFVwZGF0ZSAoZXJyLCBkaWN0KSB7XG4gIGF3YWl0IHRoaXMudXNlQXBwRGljdExvY2soKGRvbmUpID0+IHtcbiAgICB0cnkge1xuICAgICAgdGhpcy51cGRhdGVBcHBzV2l0aERpY3QoZGljdCk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGRvbmUoKTtcbiAgICB9XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBvbkNvbm5lY3RlZERyaXZlckxpc3QgKGVyciwgZHJpdmVycykge1xuICB0aGlzLmNvbm5lY3RlZERyaXZlcnMgPSBkcml2ZXJzLldJUkRyaXZlckRpY3Rpb25hcnlLZXk7XG4gIGxvZy5kZWJ1ZyhgUmVjZWl2ZWQgY29ubmVjdGVkIGRyaXZlciBsaXN0OiAke0pTT04uc3RyaW5naWZ5KHRoaXMuY29ubmVjdGVkRHJpdmVycyl9YCk7XG59XG5cbmZ1bmN0aW9uIG9uQ3VycmVudFN0YXRlIChlcnIsIHN0YXRlKSB7XG4gIHRoaXMuY3VycmVudFN0YXRlID0gc3RhdGUuV0lSQXV0b21hdGlvbkF2YWlsYWJpbGl0eUtleTtcbiAgLy8gVGhpcyBzdGF0ZSBjaGFuZ2VzIHdoZW4gJ1JlbW90ZSBBdXRvbWF0aW9uJyBpbiAnU2V0dGluZ3MgYXBwJyA+ICdTYWZhcmknID4gJ0FkdmFuY2VkJyA+ICdSZW1vdGUgQXV0b21hdGlvbicgY2hhbmdlc1xuICAvLyBXSVJBdXRvbWF0aW9uQXZhaWxhYmlsaXR5QXZhaWxhYmxlIG9yIFdJUkF1dG9tYXRpb25BdmFpbGFiaWxpdHlOb3RBdmFpbGFibGVcbiAgbG9nLmRlYnVnKGBSZWNlaXZlZCBjb25uZWN0ZWQgYXV0b21hdGlvbiBhdmFpbGFiaWxpdHkgc3RhdGU6ICR7SlNPTi5zdHJpbmdpZnkodGhpcy5jdXJyZW50U3RhdGUpfWApO1xufVxuXG5hc3luYyBmdW5jdGlvbiBvbkNvbm5lY3RlZEFwcGxpY2F0aW9uTGlzdCAoZXJyLCBhcHBzKSB7XG4gIGxvZy5kZWJ1ZyhgUmVjZWl2ZWQgY29ubmVjdGVkIGFwcGxpY2F0aW9ucyBsaXN0OiAke18ua2V5cyhhcHBzKS5qb2luKCcsICcpfWApO1xuXG4gIC8vIHRyYW5zbGF0ZSB0aGUgcmVjZWl2ZWQgaW5mb3JtYXRpb24gaW50byBhbiBlYXNpZXItdG8tbWFuYWdlXG4gIC8vIGhhc2ggd2l0aCBhcHAgaWQgYXMga2V5LCBhbmQgYXBwIGluZm8gYXMgdmFsdWVcbiAgbGV0IG5ld0RpY3QgPSB7fTtcbiAgZm9yIChjb25zdCBkaWN0IG9mIF8udmFsdWVzKGFwcHMpKSB7XG4gICAgY29uc3QgW2lkLCBlbnRyeV0gPSBhcHBJbmZvRnJvbURpY3QoZGljdCk7XG4gICAgaWYgKHRoaXMuc2tpcHBlZEFwcHMuaW5jbHVkZXMoZW50cnkubmFtZSkpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBuZXdEaWN0W2lkXSA9IGVudHJ5O1xuICB9XG4gIC8vIHVwZGF0ZSB0aGUgb2JqZWN0J3MgbGlzdCBvZiBhcHBzXG4gIGF3YWl0IHRoaXMudXNlQXBwRGljdExvY2soKGRvbmUpID0+IHtcbiAgICB0cnkge1xuICAgICAgXy5kZWZhdWx0cyh0aGlzLmFwcERpY3QsIG5ld0RpY3QpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBkb25lKCk7XG4gICAgfVxuICB9KTtcbn1cblxuY29uc3QgbWVzc2FnZUhhbmRsZXJzID0ge1xuICBvblBhZ2VDaGFuZ2UsXG4gIG9uQXBwQ29ubmVjdCxcbiAgb25BcHBEaXNjb25uZWN0LFxuICBvbkFwcFVwZGF0ZSxcbiAgb25Db25uZWN0ZWREcml2ZXJMaXN0LFxuICBvbkN1cnJlbnRTdGF0ZSxcbiAgb25Db25uZWN0ZWRBcHBsaWNhdGlvbkxpc3QsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBtZXNzYWdlSGFuZGxlcnM7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBUUEsZUFBZUEsWUFBZixDQUE2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
156
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL21peGlucy9tZXNzYWdlLWhhbmRsZXJzLmpzIiwibmFtZXMiOlsib25QYWdlQ2hhbmdlIiwiZXJyIiwiYXBwSWRLZXkiLCJwYWdlRGljdCIsIl8iLCJpc0VtcHR5IiwicGFnZUFycmF5IiwicGFnZUFycmF5RnJvbURpY3QiLCJ1c2VBcHBEaWN0TG9jayIsImRvbmUiLCJhcHBEaWN0IiwicmVzb2x2ZSIsImlzRXF1YWwiLCJsb2ciLCJkZWJ1ZyIsIl9uYXZpZ2F0aW5nVG9QYWdlIiwic2ltcGxlU3RyaW5naWZ5IiwiZW1pdCIsImV2ZW50cyIsIkVWRU5UX1BBR0VfQ0hBTkdFIiwicmVwbGFjZSIsIm9uQXBwQ29ubmVjdCIsImRpY3QiLCJXSVJBcHBsaWNhdGlvbklkZW50aWZpZXJLZXkiLCJ1cGRhdGVBcHBzV2l0aERpY3QiLCJvbkFwcERpc2Nvbm5lY3QiLCJnZXREZWJ1Z2dlckFwcEtleSIsImJ1bmRsZUlkIiwiY29ubmVjdGVkIiwiRVZFTlRfRElTQ09OTkVDVCIsIm9uQXBwVXBkYXRlIiwib25Db25uZWN0ZWREcml2ZXJMaXN0IiwiZHJpdmVycyIsImNvbm5lY3RlZERyaXZlcnMiLCJXSVJEcml2ZXJEaWN0aW9uYXJ5S2V5IiwiSlNPTiIsInN0cmluZ2lmeSIsIm9uQ3VycmVudFN0YXRlIiwic3RhdGUiLCJjdXJyZW50U3RhdGUiLCJXSVJBdXRvbWF0aW9uQXZhaWxhYmlsaXR5S2V5Iiwib25Db25uZWN0ZWRBcHBsaWNhdGlvbkxpc3QiLCJhcHBzIiwia2V5cyIsImpvaW4iLCJuZXdEaWN0IiwidmFsdWVzIiwiaWQiLCJlbnRyeSIsImFwcEluZm9Gcm9tRGljdCIsInNraXBwZWRBcHBzIiwiaW5jbHVkZXMiLCJuYW1lIiwiZGVmYXVsdHMiLCJtZXNzYWdlSGFuZGxlcnMiXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uIiwic291cmNlcyI6WyJsaWIvbWl4aW5zL21lc3NhZ2UtaGFuZGxlcnMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGxvZyBmcm9tICcuLi9sb2dnZXInO1xuaW1wb3J0IGV2ZW50cyBmcm9tICcuL2V2ZW50cyc7XG5pbXBvcnQgeyBwYWdlQXJyYXlGcm9tRGljdCwgZ2V0RGVidWdnZXJBcHBLZXksIHNpbXBsZVN0cmluZ2lmeSwgYXBwSW5mb0Zyb21EaWN0IH0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcblxuXG4vKlxuICogR2VuZXJpYyBjYWxsYmFja3MgdXNlZCB0aHJvdWdob3V0IHRoZSBsaWZlY3ljbGUgb2YgdGhlIFJlbW90ZSBEZWJ1Z2dlci5cbiAqIFRoZXNlIHdpbGwgYmUgYWRkZWQgdG8gdGhlIHByb3RvdHlwZS5cbiAqL1xuXG5hc3luYyBmdW5jdGlvbiBvblBhZ2VDaGFuZ2UgKGVyciwgYXBwSWRLZXksIHBhZ2VEaWN0KSB7XG4gIGlmIChfLmlzRW1wdHkocGFnZURpY3QpKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgcGFnZUFycmF5ID0gcGFnZUFycmF5RnJvbURpY3QocGFnZURpY3QpO1xuXG4gIGF3YWl0IHRoaXMudXNlQXBwRGljdExvY2soKGRvbmUpID0+IHtcbiAgICB0cnkge1xuICAgICAgLy8gc2F2ZSB0aGUgcGFnZSBkaWN0IGZvciB0aGlzIGFwcFxuICAgICAgaWYgKHRoaXMuYXBwRGljdFthcHBJZEtleV0pIHtcbiAgICAgICAgaWYgKHRoaXMuYXBwRGljdFthcHBJZEtleV0ucGFnZUFycmF5KSB7XG4gICAgICAgICAgaWYgKHRoaXMuYXBwRGljdFthcHBJZEtleV0ucGFnZUFycmF5LnJlc29sdmUpIHtcbiAgICAgICAgICAgIC8vIHBhZ2VEaWN0IGlzIGEgcGVuZGluZyBwcm9taXNlLCBzbyByZXNvbHZlXG4gICAgICAgICAgICB0aGlzLmFwcERpY3RbYXBwSWRLZXldLnBhZ2VBcnJheS5yZXNvbHZlKCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIHdlIGhhdmUgYSBwcmUtZXhpc3RpbmcgcGFnZURpY3RcbiAgICAgICAgICAgIGlmIChfLmlzRXF1YWwodGhpcy5hcHBEaWN0W2FwcElkS2V5XS5wYWdlQXJyYXksIHBhZ2VBcnJheSkpIHtcbiAgICAgICAgICAgICAgbG9nLmRlYnVnKGBSZWNlaXZlZCBwYWdlIGNoYW5nZSBub3RpY2UgZm9yIGFwcCAnJHthcHBJZEtleX0nIGAgK1xuICAgICAgICAgICAgICAgICAgICAgICAgYGJ1dCB0aGUgbGlzdGluZyBoYXMgbm90IGNoYW5nZWQuIElnbm9yaW5nLmApO1xuICAgICAgICAgICAgICByZXR1cm4gZG9uZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyBrZWVwIHRyYWNrIG9mIHRoZSBwYWdlIGRpY3Rpb25hcnlcbiAgICAgICAgdGhpcy5hcHBEaWN0W2FwcElkS2V5XS5wYWdlQXJyYXkgPSBwYWdlQXJyYXk7XG4gICAgICB9XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGRvbmUoKTtcbiAgICB9XG4gIH0pO1xuXG4gIGlmICh0aGlzLl9uYXZpZ2F0aW5nVG9QYWdlKSB7XG4gICAgLy8gaW4gdGhlIG1pZGRsZSBvZiBuYXZpZ2F0aW5nLCBzbyByZXBvcnRpbmcgYSBwYWdlIGNoYW5nZSB3aWxsIGNhdXNlIHByb2JsZW1zXG4gICAgcmV0dXJuO1xuICB9XG5cbiAgbG9nLmRlYnVnKGBQYWdlIGNoYW5nZWQ6ICR7c2ltcGxlU3RyaW5naWZ5KHBhZ2VEaWN0LCB0cnVlKX1gKTtcblxuICB0aGlzLmVtaXQoZXZlbnRzLkVWRU5UX1BBR0VfQ0hBTkdFLCB7XG4gICAgYXBwSWRLZXk6IGFwcElkS2V5LnJlcGxhY2UoJ1BJRDonLCAnJyksXG4gICAgcGFnZUFycmF5LFxuICB9KTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gb25BcHBDb25uZWN0IChlcnIsIGRpY3QpIHtcbiAgY29uc3QgYXBwSWRLZXkgPSBkaWN0LldJUkFwcGxpY2F0aW9uSWRlbnRpZmllcktleTtcbiAgbG9nLmRlYnVnKGBOb3RpZmllZCB0aGF0IG5ldyBhcHBsaWNhdGlvbiAnJHthcHBJZEtleX0nIGhhcyBjb25uZWN0ZWRgKTtcbiAgYXdhaXQgdGhpcy51c2VBcHBEaWN0TG9jaygoZG9uZSkgPT4ge1xuICAgIHRyeSB7XG4gICAgICB0aGlzLnVwZGF0ZUFwcHNXaXRoRGljdChkaWN0KTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgZG9uZSgpO1xuICAgIH1cbiAgfSk7XG59XG5cbmZ1bmN0aW9uIG9uQXBwRGlzY29ubmVjdCAoZXJyLCBkaWN0KSB7XG4gIGNvbnN0IGFwcElkS2V5ID0gZGljdC5XSVJBcHBsaWNhdGlvbklkZW50aWZpZXJLZXk7XG4gIGxvZy5kZWJ1ZyhgQXBwbGljYXRpb24gJyR7YXBwSWRLZXl9JyBkaXNjb25uZWN0ZWQuIFJlbW92aW5nIGZyb20gYXBwIGRpY3Rpb25hcnkuYCk7XG4gIGxvZy5kZWJ1ZyhgQ3VycmVudCBhcHAgaXMgJyR7dGhpcy5hcHBJZEtleX0nYCk7XG5cbiAgLy8gZ2V0IHJpZCBvZiB0aGUgZW50cnkgaW4gb3VyIGFwcCBkaWN0aW9uYXJ5LFxuICAvLyBzaW5jZSBpdCBpcyBubyBsb25nZXIgYXZhaWxhYmxlXG4gIGRlbGV0ZSB0aGlzLmFwcERpY3RbYXBwSWRLZXldO1xuXG4gIC8vIGlmIHRoZSBkaXNjb25uZWN0ZWQgYXBwIGlzIHRoZSBvbmUgd2UgYXJlIGNvbm5lY3RlZCB0bywgdHJ5IHRvIGZpbmQgYW5vdGhlclxuICBpZiAodGhpcy5hcHBJZEtleSA9PT0gYXBwSWRLZXkpIHtcbiAgICBsb2cuZGVidWcoYE5vIGxvbmdlciBoYXZlIGFwcCBpZC4gQXR0ZW1wdGluZyB0byBmaW5kIG5ldyBvbmUuYCk7XG4gICAgdGhpcy5hcHBJZEtleSA9IGdldERlYnVnZ2VyQXBwS2V5KHRoaXMuYnVuZGxlSWQsIHRoaXMuYXBwRGljdCk7XG4gIH1cblxuICBpZiAoIXRoaXMuYXBwRGljdCkge1xuICAgIC8vIHRoaXMgbWVhbnMgd2Ugbm8gbG9uZ2VyIGhhdmUgYW55IGFwcHMuIHdoYXQgdGhlIHdoYXQ/XG4gICAgbG9nLmRlYnVnKCdNYWluIGFwcCBkaXNjb25uZWN0ZWQuIERpc2Nvbm5lY3RpbmcgYWx0b2dldGhlci4nKTtcbiAgICB0aGlzLmNvbm5lY3RlZCA9IGZhbHNlO1xuICAgIHRoaXMuZW1pdChldmVudHMuRVZFTlRfRElTQ09OTkVDVCwgdHJ1ZSk7XG4gIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gb25BcHBVcGRhdGUgKGVyciwgZGljdCkge1xuICBhd2FpdCB0aGlzLnVzZUFwcERpY3RMb2NrKChkb25lKSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIHRoaXMudXBkYXRlQXBwc1dpdGhEaWN0KGRpY3QpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBkb25lKCk7XG4gICAgfVxuICB9KTtcbn1cblxuZnVuY3Rpb24gb25Db25uZWN0ZWREcml2ZXJMaXN0IChlcnIsIGRyaXZlcnMpIHtcbiAgdGhpcy5jb25uZWN0ZWREcml2ZXJzID0gZHJpdmVycy5XSVJEcml2ZXJEaWN0aW9uYXJ5S2V5O1xuICBsb2cuZGVidWcoYFJlY2VpdmVkIGNvbm5lY3RlZCBkcml2ZXIgbGlzdDogJHtKU09OLnN0cmluZ2lmeSh0aGlzLmNvbm5lY3RlZERyaXZlcnMpfWApO1xufVxuXG5mdW5jdGlvbiBvbkN1cnJlbnRTdGF0ZSAoZXJyLCBzdGF0ZSkge1xuICB0aGlzLmN1cnJlbnRTdGF0ZSA9IHN0YXRlLldJUkF1dG9tYXRpb25BdmFpbGFiaWxpdHlLZXk7XG4gIC8vIFRoaXMgc3RhdGUgY2hhbmdlcyB3aGVuICdSZW1vdGUgQXV0b21hdGlvbicgaW4gJ1NldHRpbmdzIGFwcCcgPiAnU2FmYXJpJyA+ICdBZHZhbmNlZCcgPiAnUmVtb3RlIEF1dG9tYXRpb24nIGNoYW5nZXNcbiAgLy8gV0lSQXV0b21hdGlvbkF2YWlsYWJpbGl0eUF2YWlsYWJsZSBvciBXSVJBdXRvbWF0aW9uQXZhaWxhYmlsaXR5Tm90QXZhaWxhYmxlXG4gIGxvZy5kZWJ1ZyhgUmVjZWl2ZWQgY29ubmVjdGVkIGF1dG9tYXRpb24gYXZhaWxhYmlsaXR5IHN0YXRlOiAke0pTT04uc3RyaW5naWZ5KHRoaXMuY3VycmVudFN0YXRlKX1gKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gb25Db25uZWN0ZWRBcHBsaWNhdGlvbkxpc3QgKGVyciwgYXBwcykge1xuICBsb2cuZGVidWcoYFJlY2VpdmVkIGNvbm5lY3RlZCBhcHBsaWNhdGlvbnMgbGlzdDogJHtfLmtleXMoYXBwcykuam9pbignLCAnKX1gKTtcblxuICAvLyB0cmFuc2xhdGUgdGhlIHJlY2VpdmVkIGluZm9ybWF0aW9uIGludG8gYW4gZWFzaWVyLXRvLW1hbmFnZVxuICAvLyBoYXNoIHdpdGggYXBwIGlkIGFzIGtleSwgYW5kIGFwcCBpbmZvIGFzIHZhbHVlXG4gIGxldCBuZXdEaWN0ID0ge307XG4gIGZvciAoY29uc3QgZGljdCBvZiBfLnZhbHVlcyhhcHBzKSkge1xuICAgIGNvbnN0IFtpZCwgZW50cnldID0gYXBwSW5mb0Zyb21EaWN0KGRpY3QpO1xuICAgIGlmICh0aGlzLnNraXBwZWRBcHBzLmluY2x1ZGVzKGVudHJ5Lm5hbWUpKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgbmV3RGljdFtpZF0gPSBlbnRyeTtcbiAgfVxuICAvLyB1cGRhdGUgdGhlIG9iamVjdCdzIGxpc3Qgb2YgYXBwc1xuICBhd2FpdCB0aGlzLnVzZUFwcERpY3RMb2NrKChkb25lKSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIF8uZGVmYXVsdHModGhpcy5hcHBEaWN0LCBuZXdEaWN0KTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgZG9uZSgpO1xuICAgIH1cbiAgfSk7XG59XG5cbmNvbnN0IG1lc3NhZ2VIYW5kbGVycyA9IHtcbiAgb25QYWdlQ2hhbmdlLFxuICBvbkFwcENvbm5lY3QsXG4gIG9uQXBwRGlzY29ubmVjdCxcbiAgb25BcHBVcGRhdGUsXG4gIG9uQ29ubmVjdGVkRHJpdmVyTGlzdCxcbiAgb25DdXJyZW50U3RhdGUsXG4gIG9uQ29ubmVjdGVkQXBwbGljYXRpb25MaXN0LFxufTtcblxuZXhwb3J0IGRlZmF1bHQgbWVzc2FnZUhhbmRs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
@@ -15,7 +15,7 @@ var _utils = require("../utils");
15
15
 
16
16
  var _events = _interopRequireDefault(require("./events"));
17
17
 
18
- var _support = require("@appium/support");
18
+ var _support = require("appium/support");
19
19
 
20
20
  var _lodash = _interopRequireDefault(require("lodash"));
21
21
 
@@ -218,4 +218,4 @@ var _default = {
218
218
  exports.default = _default;require('source-map-support').install();
219
219
 
220
220
 
221
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL21peGlucy9uYXZpZ2F0ZS5qcyIsIm5hbWVzIjpbImZyYW1lRGV0YWNoZWQiLCJlbWl0IiwiZXZlbnRzIiwiRVZFTlRfRlJBTUVTX0RFVEFDSEVEIiwicGFnZUxvYWQiLCJzdGFydFBhZ2VMb2FkVGltZXIiLCJwYWdlTG9hZFZlcmlmeUhvb2siLCJfIiwibm9vcCIsInRpbWVvdXRNcyIsImlzRnVuY3Rpb24iLCJnZXREdXJhdGlvbiIsImxvZyIsImRlYnVnIiwidGltaW5nIiwiVGltZXIiLCJzdGFydCIsInBhZ2VMb2FkaW5nIiwidmVyaWZ5IiwicGFnZUxvYWREZWxheSIsInV0aWwiLCJjYW5jZWxsYWJsZURlbGF5IiwiZXJyIiwiQiIsIkNhbmNlbGxhdGlvbkVycm9yIiwiYXBwSWRLZXkiLCJlbGFwc2VkTXMiLCJhc01pbGxpU2Vjb25kcyIsImNoZWNrUGFnZUlzUmVhZHkiLCJwYWdlTG9hZE1zIiwidG9GaXhlZCIsImNhbmNlbFBhZ2VMb2FkIiwiY2FuY2VsIiwicGFnZVVubG9hZCIsIndhaXRGb3JEb20iLCJyZWFkeUNtZCIsInJlYWR5U3RhdGUiLCJyZXNvbHZlIiwiZXhlY3V0ZSIsInRpbWVvdXQiLCJwYWdlUmVhZHlUaW1lb3V0IiwiVGltZW91dEVycm9yIiwibmF2VG9VcmwiLCJ1cmwiLCJwYWdlSWRLZXkiLCJfbmF2aWdhdGluZ1RvUGFnZSIsIndhaXRGb3JGcmFtZVByb21pc2UiLCJ3YWl0Rm9yRnJhbWVOYXZpZ2F0ZWQiLCJycGNDbGllbnQiLCJzZW5kIiwidXNlTmV3U2FmYXJpIiwiZGVsYXkiLCJuYXZFdmVudExpc3RlbmVyIiwidmFsdWUiLCJhbGxvd05hdmlnYXRpb25XaXRob3V0UmVsb2FkIiwibmF2aWdhdGlvbkRlbGF5Iiwib25jZSIsImZpbmFsbHkiLCJvZmYiXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uIiwic291cmNlcyI6WyJsaWIvbWl4aW5zL25hdmlnYXRlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBsb2cgZnJvbSAnLi4vbG9nZ2VyJztcbmltcG9ydCB7IGNoZWNrUGFyYW1zIH0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IGV2ZW50cyBmcm9tICcuL2V2ZW50cyc7XG5pbXBvcnQgeyB0aW1pbmcsIHV0aWwgfSBmcm9tICdAYXBwaXVtL3N1cHBvcnQnO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCBCIGZyb20gJ2JsdWViaXJkJztcblxuXG5mdW5jdGlvbiBmcmFtZURldGFjaGVkICgpIHtcbiAgdGhpcy5lbWl0KGV2ZW50cy5FVkVOVF9GUkFNRVNfREVUQUNIRUQpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBwYWdlTG9hZCAoc3RhcnRQYWdlTG9hZFRpbWVyLCBwYWdlTG9hZFZlcmlmeUhvb2sgPSBfLm5vb3ApIHtcbiAgY29uc3QgdGltZW91dE1zID0gNTAwO1xuICBpZiAoIV8uaXNGdW5jdGlvbihzdGFydFBhZ2VMb2FkVGltZXI/LmdldER1cmF0aW9uKSkge1xuICAgIGxvZy5kZWJ1ZyhgUGFnZSBsb2FkIHRpbWVyIG5vdCBhIHRpbWVyLiBDcmVhdGluZyBuZXcgdGltZXJgKTtcbiAgICBzdGFydFBhZ2VMb2FkVGltZXIgPSBuZXcgdGltaW5nLlRpbWVyKCkuc3RhcnQoKTtcbiAgfVxuXG4gIGxvZy5kZWJ1ZygnUGFnZSBsb2FkZWQsIHZlcmlmeWluZyB3aGV0aGVyIHJlYWR5Jyk7XG4gIHRoaXMucGFnZUxvYWRpbmcgPSB0cnVlO1xuXG4gIGNvbnN0IHZlcmlmeSA9IGFzeW5jICgpID0+IHtcbiAgICB0aGlzLnBhZ2VMb2FkRGVsYXkgPSB1dGlsLmNhbmNlbGxhYmxlRGVsYXkodGltZW91dE1zKTtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5wYWdlTG9hZERlbGF5O1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgaWYgKGVyciBpbnN0YW5jZW9mIEIuQ2FuY2VsbGF0aW9uRXJyb3IpIHtcbiAgICAgICAgLy8gaWYgdGhlIHByb21pc2UgaGFzIGJlZW4gY2FuY2VsbGVkXG4gICAgICAgIC8vIHdlIHdhbnQgdG8gc2tpcCBjaGVja2luZyB0aGUgcmVhZGluZXNzXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyB3ZSBjYW4gZ2V0IHRoaXMgY2FsbGVkIGluIHRoZSBtaWRkbGUgb2YgdHJ5aW5nIHRvIGZpbmQgYSBuZXcgYXBwXG4gICAgaWYgKCF0aGlzLmFwcElkS2V5KSB7XG4gICAgICBsb2cuZGVidWcoJ05vdCBjb25uZWN0ZWQgdG8gYW4gYXBwbGljYXRpb24uIElnbm9yaW5nIHBhZ2UgbG9hZCcpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChfLmlzRnVuY3Rpb24ocGFnZUxvYWRWZXJpZnlIb29rKSkge1xuICAgICAgYXdhaXQgcGFnZUxvYWRWZXJpZnlIb29rKCk7XG4gICAgfVxuXG4gICAgLy8gaWYgd2UgYXJlIHJlYWR5LCBvciB3ZSd2ZSBzcGVuZCB0b28gbXVjaCB0aW1lIG9uIHRoaXNcbiAgICBjb25zdCBlbGFwc2VkTXMgPSBzdGFydFBhZ2VMb2FkVGltZXIuZ2V0RHVyYXRpb24oKS5hc01pbGxpU2Vjb25kcztcbiAgICBpZiAoYXdhaXQgdGhpcy5jaGVja1BhZ2VJc1JlYWR5KCkgfHwgKHRoaXMucGFnZUxvYWRNcyA+IDAgJiYgZWxhcHNlZE1zID4gdGhpcy5wYWdlTG9hZE1zKSkge1xuICAgICAgbG9nLmRlYnVnKCdQYWdlIGlzIHJlYWR5Jyk7XG4gICAgICB0aGlzLnBhZ2VMb2FkaW5nID0gZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIGxvZy5kZWJ1ZygnUGFnZSB3YXMgbm90IHJlYWR5LCByZXRyeWluZycpO1xuICAgICAgYXdhaXQgdmVyaWZ5KCk7XG4gICAgfVxuICB9O1xuICB0cnkge1xuICAgIGF3YWl0IHZlcmlmeSgpO1xuICB9IGZpbmFsbHkge1xuICAgIGxvZy5kZWJ1ZyhgUGFnZSBsb2FkIGNvbXBsZXRlZCBpbiAke3N0YXJ0UGFnZUxvYWRUaW1lci5nZXREdXJhdGlvbigpLmFzTWlsbGlTZWNvbmRzLnRvRml4ZWQoMCl9bXNgKTtcbiAgICB0aGlzLnBhZ2VMb2FkaW5nID0gZmFsc2U7XG4gIH1cbn1cblxuZnVuY3Rpb24gY2FuY2VsUGFnZUxvYWQgKCkge1xuICBsb2cuZGVidWcoJ1VucmVnaXN0ZXJpbmcgZnJvbSBwYWdlIHJlYWRpbmVzcyBub3RpZmljYXRpb25zJyk7XG4gIHRoaXMucGFnZUxvYWRpbmcgPSBmYWxzZTtcbiAgaWYgKHRoaXMucGFnZUxvYWREZWxheSkge1xuICAgIHRoaXMucGFnZUxvYWREZWxheS5jYW5jZWwoKTtcbiAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiBwYWdlVW5sb2FkICgpIHtcbiAgbG9nLmRlYnVnKCdQYWdlIHVubG9hZGluZycpO1xuICBhd2FpdCB0aGlzLndhaXRGb3JEb20oKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gd2FpdEZvckRvbSAoc3RhcnRQYWdlTG9hZFRpbWVyLCBwYWdlTG9hZFZlcmlmeUhvb2spIHtcbiAgbG9nLmRlYnVnKCdXYWl0aW5nIGZvciBkb20uLi4nKTtcbiAgYXdhaXQgdGhpcy5wYWdlTG9hZChzdGFydFBhZ2VMb2FkVGltZXIsIHBhZ2VMb2FkVmVyaWZ5SG9vayk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGNoZWNrUGFnZUlzUmVhZHkgKCkge1xuICBjaGVja1BhcmFtcyh7YXBwSWRLZXk6IHRoaXMuYXBwSWRLZXl9KTtcblxuICBsb2cuZGVidWcoJ0NoZWNraW5nIGRvY3VtZW50IHJlYWR5U3RhdGUnKTtcbiAgY29uc3QgcmVhZHlDbWQgPSAnZG9jdW1lbnQucmVhZHlTdGF0ZTsnO1xuICBsZXQgcmVhZHlTdGF0ZSA9ICdsb2FkaW5nJztcbiAgdHJ5IHtcbiAgICByZWFkeVN0YXRlID0gYXdhaXQgQi5yZXNvbHZlKHRoaXMuZXhlY3V0ZShyZWFkeUNtZCwgdHJ1ZSkpLnRpbWVvdXQodGhpcy5wYWdlUmVhZHlUaW1lb3V0KTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgaWYgKCEoZXJyIGluc3RhbmNlb2YgQi5UaW1lb3V0RXJyb3IpKSB7XG4gICAgICB0aHJvdyBlcnI7XG4gICAgfVxuICAgIGxvZy5kZWJ1ZyhgUGFnZSByZWFkaW5lc3MgY2hlY2sgdGltZWQgb3V0IGFmdGVyICR7dGhpcy5wYWdlUmVhZHlUaW1lb3V0fW1zYCk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIGxvZy5kZWJ1ZyhgRG9jdW1lbnQgcmVhZHlTdGF0ZSBpcyAnJHtyZWFkeVN0YXRlfSdgKTtcblxuICByZXR1cm4gcmVhZHlTdGF0ZSA9PT0gJ2NvbXBsZXRlJztcbn1cblxuYXN5bmMgZnVuY3Rpb24gbmF2VG9VcmwgKHVybCwgcGFnZUxvYWRWZXJpZnlIb29rKSB7XG4gIGNoZWNrUGFyYW1zKHthcHBJZEtleTogdGhpcy5hcHBJZEtleSwgcGFnZUlkS2V5OiB0aGlzLnBhZ2VJZEtleX0pO1xuXG4gIHRoaXMuX25hdmlnYXRpbmdUb1BhZ2UgPSB0cnVlO1xuXG4gIHRyeSB7XG4gICAgbG9nLmRlYnVnKGBOYXZpZ2F0aW5nIHRvIG5ldyBVUkw6ICcke3VybH0nYCk7XG5cbiAgICAvLyBiZWdpbiBsaXN0ZW5pbmcgZm9yIGZyYW1lIG5hdmlnYXRpb24gZXZlbnQsIHdoaWNoIHdpbGwgYmUgd2FpdGVkIGZvciBsYXRlclxuICAgIGNvbnN0IHdhaXRGb3JGcmFtZVByb21pc2UgPSB0aGlzLndhaXRGb3JGcmFtZU5hdmlnYXRlZCgpO1xuXG4gICAgYXdhaXQgdGhpcy5ycGNDbGllbnQuc2VuZCgnUGFnZS5uYXZpZ2F0ZScsIHtcbiAgICAgIHVybCxcbiAgICAgIGFwcElkS2V5OiB0aGlzLmFwcElkS2V5LFxuICAgICAgcGFnZUlkS2V5OiB0aGlzLnBhZ2VJZEtleSxcbiAgICB9KTtcblxuICAgIGlmICghdGhpcy51c2VOZXdTYWZhcmkpIHtcbiAgICAgIC8vIGEgc21hbGwgcGF1c2UgZm9yIHRoZSBicm93c2VyIHRvIGNhdGNoIHVwXG4gICAgICBhd2FpdCBCLmRlbGF5KDEwMDApO1xuICAgIH1cblxuICAgIC8vIHdhaXQgdW50aWwgdGhlIHBhZ2UgaGFzIGJlZW4gbmF2aWdhdGVkXG4gICAgYXdhaXQgd2FpdEZvckZyYW1lUHJvbWlzZTtcblxuICAgIGF3YWl0IHRoaXMud2FpdEZvckRvbShuZXcgdGltaW5nLlRpbWVyKCkuc3RhcnQoKSwgcGFnZUxvYWRWZXJpZnlIb29rKTtcblxuICAgIC8vIGVuYWJsZSBjb25zb2xlIGxvZ2dpbmcsIHNvIHdlIGdldCB0aGUgZXZlbnRzIChvdGhlcndpc2Ugd2Ugb25seVxuICAgIC8vIGdldCBub3RpZmllZCB3aGVuIG5hdmlnYXRpbmcgdG8gYSBsb2NhbCBwYWdlXG4gICAgYXdhaXQgdGhpcy5ycGNDbGllbnQuc2VuZCgnQ29uc29sZS5lbmFibGUnLCB7XG4gICAgICBhcHBJZEtleTogdGhpcy5hcHBJZEtleSxcbiAgICAgIHBhZ2VJZEtleTogdGhpcy5wYWdlSWRLZXksXG4gICAgfSk7XG4gIH0gZmluYWxseSB7XG4gICAgdGhpcy5fbmF2aWdhdGluZ1RvUGFnZSA9IGZhbHNlO1xuICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHdhaXRGb3JGcmFtZU5hdmlnYXRlZCAoKSB7XG4gIGxldCBuYXZFdmVudExpc3RlbmVyO1xuICByZXR1cm4gYXdhaXQgbmV3IEIoYXN5bmMgKHJlc29sdmUpID0+IHtcbiAgICBsb2cuZGVidWcoJ1dhaXRpbmcgZm9yIGZyYW1lIG5hdmlnYXRlZCBtZXNzYWdlLi4uJyk7XG4gICAgY29uc3Qgc3RhcnQgPSBuZXcgdGltaW5nLlRpbWVyKCkuc3RhcnQoKTtcblxuICAgIC8vIGFkZCBhIGhhbmRsZXIgZm9yIHRoZSBgUGFnZS5mcmFtZU5hdmlnYXRlZGAgbWVzc2FnZVxuICAgIC8vIGZyb20gdGhlIHJlbW90ZSBkZWJ1Z2dlclxuICAgIG5hdkV2ZW50TGlzdGVuZXIgPSAoZXJyLCB2YWx1ZSkgPT4ge1xuICAgICAgbG9nLmRlYnVnKGBGcmFtZSBuYXZpZ2F0ZWQgaW4gJHtzdGFydC5nZXREdXJhdGlvbigpLmFzTWlsbGlTZWNvbmRzLnRvRml4ZWQoMCl9bXMgZnJvbTogJHt2YWx1ZX1gKTtcbiAgICAgIGlmICghdGhpcy5hbGxvd05hdmlnYXRpb25XaXRob3V0UmVsb2FkICYmICF0aGlzLnBhZ2VMb2FkaW5nKSB7XG4gICAgICAgIHJlc29sdmUodmFsdWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbG9nLmRlYnVnKCdGcmFtZSBuYXZpZ2F0ZWQgYnV0IHdlIHdlcmUgd2FybmVkIGFib3V0IGl0LCBub3QgJyArXG4gICAgICAgICAgICAgICAgICAnY29uc2lkZXJpbmcgcGFnZSBzdGF0ZSB1bmxvYWRlZCcpO1xuICAgICAgICB0aGlzLmFsbG93TmF2aWdhdGlvbldpdGhvdXRSZWxvYWQgPSBmYWxzZTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLm5hdmlnYXRpb25EZWxheSkge1xuICAgICAgICB0aGlzLm5hdmlnYXRpb25EZWxheS5jYW5jZWwoKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgdGhpcy5ycGNDbGllbnQub25jZSgnUGFnZS5mcmFtZU5hdmlnYXRlZCcsIG5hdkV2ZW50TGlzdGVuZXIpO1xuXG4gICAgLy8gdGltZW91dCwgaW4gY2FzZSByZW1vdGUgZGVidWdnZXIgZG9lc24ndCByZXNwb25kLFxuICAgIC8vIG9yIHRha2VzIGEgbG9uZyB0aW1lXG4gICAgaWYgKCF0aGlzLnVzZU5ld1NhZmFyaSB8fCB0aGlzLnBhZ2VMb2FkTXMgPj0gMCkge1xuICAgICAgLy8gdXNlIHBhZ2VMb2FkTXMsIG9yIGEgc21hbGwgYW1vdW50IG9mIHRpbWVcbiAgICAgIGNvbnN0IHRpbWVvdXQgPSB0aGlzLnVzZU5ld1NhZmFyaSA/IHRoaXMucGFnZUxvYWRNcyA6IDUwMDtcbiAgICAgIHRoaXMubmF2aWdhdGlvbkRlbGF5ID0gdXRpbC5jYW5jZWxsYWJsZURlbGF5KHRpbWVvdXQpO1xuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgdGhpcy5uYXZpZ2F0aW9uRGVsYXk7XG4gICAgICAgIG5hdkV2ZW50TGlzdGVuZXIobnVsbCwgYCR7dGltZW91dH1tcyB0aW1lb3V0YCk7XG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgLy8gbm90aGluZyB0byBkbzogd2Ugb25seSBnZXQgaGVyZSBpZiB0aGUgcmVtb3RlIGRlYnVnZ2VyXG4gICAgICAgIC8vIGFscmVhZHkgbm90aWZpZWQgb2YgZnJhbWUgbmF2aWdhdGlvbiwgYW5kIHRoZSBkZWxheVxuICAgICAgICAvLyB3YXMgY2FuY2VsbGVkXG4gICAgICB9XG4gICAgfVxuICB9KS5maW5hbGx5KCgpID0+IHtcbiAgICBpZiAobmF2RXZlbnRMaXN0ZW5lcikge1xuICAgICAgdGhpcy5ycGNDbGllbnQub2ZmKCdQYWdlLmZyYW1lTmF2aWdhdGVkJywgbmF2RXZlbnRMaXN0ZW5lcik7XG4gICAgfVxuICB9KTtcbn1cblxuXG5leHBvcnQgZGVmYXVsdCB7IGZyYW1lRGV0YWNoZWQsIHBhZ2VMb2FkLCBjYW5jZWxQYWdlTG9hZCwgcGFnZVVubG9hZCwgd2FpdEZvckRvbSwgY2hlY2tQYWdlSXNSZWFkeSwgbmF2VG9VcmwsIHdhaXRGb3JGcmFtZU5hdmlnYXRlZCB9O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUdBLFNBQVNBLGFBQVQsR0FBMEI7RUFDeEIsS0FBS0MsSUFBTCxDQUFVQyxnQkFBT0MscUJBQWpCO0FBQ0Q7O0FBRUQsZUFBZUMsUUFBZixDQUF5QkMsa0JBQXpCLEVBQTZDQyxrQkFBa0IsR0FBR0MsZ0JBQUVDLElBQXBFLEVBQTBFO0VBQUE7O0VBQ3hFLE1BQU1DLFNBQVMsR0FBRyxHQUFsQjs7RUFDQSxJQUFJLENBQUNGLGdCQUFFRyxVQUFGLHdCQUFhTCxrQkFBYix3REFBYSxvQkFBb0JNLFdBQWpDLENBQUwsRUFBb0Q7SUFDbERDLGdCQUFJQyxLQUFKLENBQVcsaURBQVg7O0lBQ0FSLGtCQUFrQixHQUFHLElBQUlTLGdCQUFPQyxLQUFYLEdBQW1CQyxLQUFuQixFQUFyQjtFQUNEOztFQUVESixnQkFBSUMsS0FBSixDQUFVLHNDQUFWOztFQUNBLEtBQUtJLFdBQUws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
221
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL21peGlucy9uYXZpZ2F0ZS5qcyIsIm5hbWVzIjpbImZyYW1lRGV0YWNoZWQiLCJlbWl0IiwiZXZlbnRzIiwiRVZFTlRfRlJBTUVTX0RFVEFDSEVEIiwicGFnZUxvYWQiLCJzdGFydFBhZ2VMb2FkVGltZXIiLCJwYWdlTG9hZFZlcmlmeUhvb2siLCJfIiwibm9vcCIsInRpbWVvdXRNcyIsImlzRnVuY3Rpb24iLCJnZXREdXJhdGlvbiIsImxvZyIsImRlYnVnIiwidGltaW5nIiwiVGltZXIiLCJzdGFydCIsInBhZ2VMb2FkaW5nIiwidmVyaWZ5IiwicGFnZUxvYWREZWxheSIsInV0aWwiLCJjYW5jZWxsYWJsZURlbGF5IiwiZXJyIiwiQiIsIkNhbmNlbGxhdGlvbkVycm9yIiwiYXBwSWRLZXkiLCJlbGFwc2VkTXMiLCJhc01pbGxpU2Vjb25kcyIsImNoZWNrUGFnZUlzUmVhZHkiLCJwYWdlTG9hZE1zIiwidG9GaXhlZCIsImNhbmNlbFBhZ2VMb2FkIiwiY2FuY2VsIiwicGFnZVVubG9hZCIsIndhaXRGb3JEb20iLCJjaGVja1BhcmFtcyIsInJlYWR5Q21kIiwicmVhZHlTdGF0ZSIsInJlc29sdmUiLCJleGVjdXRlIiwidGltZW91dCIsInBhZ2VSZWFkeVRpbWVvdXQiLCJUaW1lb3V0RXJyb3IiLCJuYXZUb1VybCIsInVybCIsInBhZ2VJZEtleSIsIl9uYXZpZ2F0aW5nVG9QYWdlIiwid2FpdEZvckZyYW1lUHJvbWlzZSIsIndhaXRGb3JGcmFtZU5hdmlnYXRlZCIsInJwY0NsaWVudCIsInNlbmQiLCJ1c2VOZXdTYWZhcmkiLCJkZWxheSIsIm5hdkV2ZW50TGlzdGVuZXIiLCJ2YWx1ZSIsImFsbG93TmF2aWdhdGlvbldpdGhvdXRSZWxvYWQiLCJuYXZpZ2F0aW9uRGVsYXkiLCJvbmNlIiwiZmluYWxseSIsIm9mZiJdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4iLCJzb3VyY2VzIjpbImxpYi9taXhpbnMvbmF2aWdhdGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGxvZyBmcm9tICcuLi9sb2dnZXInO1xuaW1wb3J0IHsgY2hlY2tQYXJhbXMgfSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQgZXZlbnRzIGZyb20gJy4vZXZlbnRzJztcbmltcG9ydCB7IHRpbWluZywgdXRpbCB9IGZyb20gJ2FwcGl1bS9zdXBwb3J0JztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgQiBmcm9tICdibHVlYmlyZCc7XG5cblxuZnVuY3Rpb24gZnJhbWVEZXRhY2hlZCAoKSB7XG4gIHRoaXMuZW1pdChldmVudHMuRVZFTlRfRlJBTUVTX0RFVEFDSEVEKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gcGFnZUxvYWQgKHN0YXJ0UGFnZUxvYWRUaW1lciwgcGFnZUxvYWRWZXJpZnlIb29rID0gXy5ub29wKSB7XG4gIGNvbnN0IHRpbWVvdXRNcyA9IDUwMDtcbiAgaWYgKCFfLmlzRnVuY3Rpb24oc3RhcnRQYWdlTG9hZFRpbWVyPy5nZXREdXJhdGlvbikpIHtcbiAgICBsb2cuZGVidWcoYFBhZ2UgbG9hZCB0aW1lciBub3QgYSB0aW1lci4gQ3JlYXRpbmcgbmV3IHRpbWVyYCk7XG4gICAgc3RhcnRQYWdlTG9hZFRpbWVyID0gbmV3IHRpbWluZy5UaW1lcigpLnN0YXJ0KCk7XG4gIH1cblxuICBsb2cuZGVidWcoJ1BhZ2UgbG9hZGVkLCB2ZXJpZnlpbmcgd2hldGhlciByZWFkeScpO1xuICB0aGlzLnBhZ2VMb2FkaW5nID0gdHJ1ZTtcblxuICBjb25zdCB2ZXJpZnkgPSBhc3luYyAoKSA9PiB7XG4gICAgdGhpcy5wYWdlTG9hZERlbGF5ID0gdXRpbC5jYW5jZWxsYWJsZURlbGF5KHRpbWVvdXRNcyk7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMucGFnZUxvYWREZWxheTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGlmIChlcnIgaW5zdGFuY2VvZiBCLkNhbmNlbGxhdGlvbkVycm9yKSB7XG4gICAgICAgIC8vIGlmIHRoZSBwcm9taXNlIGhhcyBiZWVuIGNhbmNlbGxlZFxuICAgICAgICAvLyB3ZSB3YW50IHRvIHNraXAgY2hlY2tpbmcgdGhlIHJlYWRpbmVzc1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gd2UgY2FuIGdldCB0aGlzIGNhbGxlZCBpbiB0aGUgbWlkZGxlIG9mIHRyeWluZyB0byBmaW5kIGEgbmV3IGFwcFxuICAgIGlmICghdGhpcy5hcHBJZEtleSkge1xuICAgICAgbG9nLmRlYnVnKCdOb3QgY29ubmVjdGVkIHRvIGFuIGFwcGxpY2F0aW9uLiBJZ25vcmluZyBwYWdlIGxvYWQnKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoXy5pc0Z1bmN0aW9uKHBhZ2VMb2FkVmVyaWZ5SG9vaykpIHtcbiAgICAgIGF3YWl0IHBhZ2VMb2FkVmVyaWZ5SG9vaygpO1xuICAgIH1cblxuICAgIC8vIGlmIHdlIGFyZSByZWFkeSwgb3Igd2UndmUgc3BlbmQgdG9vIG11Y2ggdGltZSBvbiB0aGlzXG4gICAgY29uc3QgZWxhcHNlZE1zID0gc3RhcnRQYWdlTG9hZFRpbWVyLmdldER1cmF0aW9uKCkuYXNNaWxsaVNlY29uZHM7XG4gICAgaWYgKGF3YWl0IHRoaXMuY2hlY2tQYWdlSXNSZWFkeSgpIHx8ICh0aGlzLnBhZ2VMb2FkTXMgPiAwICYmIGVsYXBzZWRNcyA+IHRoaXMucGFnZUxvYWRNcykpIHtcbiAgICAgIGxvZy5kZWJ1ZygnUGFnZSBpcyByZWFkeScpO1xuICAgICAgdGhpcy5wYWdlTG9hZGluZyA9IGZhbHNlO1xuICAgIH0gZWxzZSB7XG4gICAgICBsb2cuZGVidWcoJ1BhZ2Ugd2FzIG5vdCByZWFkeSwgcmV0cnlpbmcnKTtcbiAgICAgIGF3YWl0IHZlcmlmeSgpO1xuICAgIH1cbiAgfTtcbiAgdHJ5IHtcbiAgICBhd2FpdCB2ZXJpZnkoKTtcbiAgfSBmaW5hbGx5IHtcbiAgICBsb2cuZGVidWcoYFBhZ2UgbG9hZCBjb21wbGV0ZWQgaW4gJHtzdGFydFBhZ2VMb2FkVGltZXIuZ2V0RHVyYXRpb24oKS5hc01pbGxpU2Vjb25kcy50b0ZpeGVkKDApfW1zYCk7XG4gICAgdGhpcy5wYWdlTG9hZGluZyA9IGZhbHNlO1xuICB9XG59XG5cbmZ1bmN0aW9uIGNhbmNlbFBhZ2VMb2FkICgpIHtcbiAgbG9nLmRlYnVnKCdVbnJlZ2lzdGVyaW5nIGZyb20gcGFnZSByZWFkaW5lc3Mgbm90aWZpY2F0aW9ucycpO1xuICB0aGlzLnBhZ2VMb2FkaW5nID0gZmFsc2U7XG4gIGlmICh0aGlzLnBhZ2VMb2FkRGVsYXkpIHtcbiAgICB0aGlzLnBhZ2VMb2FkRGVsYXkuY2FuY2VsKCk7XG4gIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gcGFnZVVubG9hZCAoKSB7XG4gIGxvZy5kZWJ1ZygnUGFnZSB1bmxvYWRpbmcnKTtcbiAgYXdhaXQgdGhpcy53YWl0Rm9yRG9tKCk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHdhaXRGb3JEb20gKHN0YXJ0UGFnZUxvYWRUaW1lciwgcGFnZUxvYWRWZXJpZnlIb29rKSB7XG4gIGxvZy5kZWJ1ZygnV2FpdGluZyBmb3IgZG9tLi4uJyk7XG4gIGF3YWl0IHRoaXMucGFnZUxvYWQoc3RhcnRQYWdlTG9hZFRpbWVyLCBwYWdlTG9hZFZlcmlmeUhvb2spO1xufVxuXG5hc3luYyBmdW5jdGlvbiBjaGVja1BhZ2VJc1JlYWR5ICgpIHtcbiAgY2hlY2tQYXJhbXMoe2FwcElkS2V5OiB0aGlzLmFwcElkS2V5fSk7XG5cbiAgbG9nLmRlYnVnKCdDaGVja2luZyBkb2N1bWVudCByZWFkeVN0YXRlJyk7XG4gIGNvbnN0IHJlYWR5Q21kID0gJ2RvY3VtZW50LnJlYWR5U3RhdGU7JztcbiAgbGV0IHJlYWR5U3RhdGUgPSAnbG9hZGluZyc7XG4gIHRyeSB7XG4gICAgcmVhZHlTdGF0ZSA9IGF3YWl0IEIucmVzb2x2ZSh0aGlzLmV4ZWN1dGUocmVhZHlDbWQsIHRydWUpKS50aW1lb3V0KHRoaXMucGFnZVJlYWR5VGltZW91dCk7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGlmICghKGVyciBpbnN0YW5jZW9mIEIuVGltZW91dEVycm9yKSkge1xuICAgICAgdGhyb3cgZXJyO1xuICAgIH1cbiAgICBsb2cuZGVidWcoYFBhZ2UgcmVhZGluZXNzIGNoZWNrIHRpbWVkIG91dCBhZnRlciAke3RoaXMucGFnZVJlYWR5VGltZW91dH1tc2ApO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBsb2cuZGVidWcoYERvY3VtZW50IHJlYWR5U3RhdGUgaXMgJyR7cmVhZHlTdGF0ZX0nYCk7XG5cbiAgcmV0dXJuIHJlYWR5U3RhdGUgPT09ICdjb21wbGV0ZSc7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIG5hdlRvVXJsICh1cmwsIHBhZ2VMb2FkVmVyaWZ5SG9vaykge1xuICBjaGVja1BhcmFtcyh7YXBwSWRLZXk6IHRoaXMuYXBwSWRLZXksIHBhZ2VJZEtleTogdGhpcy5wYWdlSWRLZXl9KTtcblxuICB0aGlzLl9uYXZpZ2F0aW5nVG9QYWdlID0gdHJ1ZTtcblxuICB0cnkge1xuICAgIGxvZy5kZWJ1ZyhgTmF2aWdhdGluZyB0byBuZXcgVVJMOiAnJHt1cmx9J2ApO1xuXG4gICAgLy8gYmVnaW4gbGlzdGVuaW5nIGZvciBmcmFtZSBuYXZpZ2F0aW9uIGV2ZW50LCB3aGljaCB3aWxsIGJlIHdhaXRlZCBmb3IgbGF0ZXJcbiAgICBjb25zdCB3YWl0Rm9yRnJhbWVQcm9taXNlID0gdGhpcy53YWl0Rm9yRnJhbWVOYXZpZ2F0ZWQoKTtcblxuICAgIGF3YWl0IHRoaXMucnBjQ2xpZW50LnNlbmQoJ1BhZ2UubmF2aWdhdGUnLCB7XG4gICAgICB1cmwsXG4gICAgICBhcHBJZEtleTogdGhpcy5hcHBJZEtleSxcbiAgICAgIHBhZ2VJZEtleTogdGhpcy5wYWdlSWRLZXksXG4gICAgfSk7XG5cbiAgICBpZiAoIXRoaXMudXNlTmV3U2FmYXJpKSB7XG4gICAgICAvLyBhIHNtYWxsIHBhdXNlIGZvciB0aGUgYnJvd3NlciB0byBjYXRjaCB1cFxuICAgICAgYXdhaXQgQi5kZWxheSgxMDAwKTtcbiAgICB9XG5cbiAgICAvLyB3YWl0IHVudGlsIHRoZSBwYWdlIGhhcyBiZWVuIG5hdmlnYXRlZFxuICAgIGF3YWl0IHdhaXRGb3JGcmFtZVByb21pc2U7XG5cbiAgICBhd2FpdCB0aGlzLndhaXRGb3JEb20obmV3IHRpbWluZy5UaW1lcigpLnN0YXJ0KCksIHBhZ2VMb2FkVmVyaWZ5SG9vayk7XG5cbiAgICAvLyBlbmFibGUgY29uc29sZSBsb2dnaW5nLCBzbyB3ZSBnZXQgdGhlIGV2ZW50cyAob3RoZXJ3aXNlIHdlIG9ubHlcbiAgICAvLyBnZXQgbm90aWZpZWQgd2hlbiBuYXZpZ2F0aW5nIHRvIGEgbG9jYWwgcGFnZVxuICAgIGF3YWl0IHRoaXMucnBjQ2xpZW50LnNlbmQoJ0NvbnNvbGUuZW5hYmxlJywge1xuICAgICAgYXBwSWRLZXk6IHRoaXMuYXBwSWRLZXksXG4gICAgICBwYWdlSWRLZXk6IHRoaXMucGFnZUlkS2V5LFxuICAgIH0pO1xuICB9IGZpbmFsbHkge1xuICAgIHRoaXMuX25hdmlnYXRpbmdUb1BhZ2UgPSBmYWxzZTtcbiAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiB3YWl0Rm9yRnJhbWVOYXZpZ2F0ZWQgKCkge1xuICBsZXQgbmF2RXZlbnRMaXN0ZW5lcjtcbiAgcmV0dXJuIGF3YWl0IG5ldyBCKGFzeW5jIChyZXNvbHZlKSA9PiB7XG4gICAgbG9nLmRlYnVnKCdXYWl0aW5nIGZvciBmcmFtZSBuYXZpZ2F0ZWQgbWVzc2FnZS4uLicpO1xuICAgIGNvbnN0IHN0YXJ0ID0gbmV3IHRpbWluZy5UaW1lcigpLnN0YXJ0KCk7XG5cbiAgICAvLyBhZGQgYSBoYW5kbGVyIGZvciB0aGUgYFBhZ2UuZnJhbWVOYXZpZ2F0ZWRgIG1lc3NhZ2VcbiAgICAvLyBmcm9tIHRoZSByZW1vdGUgZGVidWdnZXJcbiAgICBuYXZFdmVudExpc3RlbmVyID0gKGVyciwgdmFsdWUpID0+IHtcbiAgICAgIGxvZy5kZWJ1ZyhgRnJhbWUgbmF2aWdhdGVkIGluICR7c3RhcnQuZ2V0RHVyYXRpb24oKS5hc01pbGxpU2Vjb25kcy50b0ZpeGVkKDApfW1zIGZyb206ICR7dmFsdWV9YCk7XG4gICAgICBpZiAoIXRoaXMuYWxsb3dOYXZpZ2F0aW9uV2l0aG91dFJlbG9hZCAmJiAhdGhpcy5wYWdlTG9hZGluZykge1xuICAgICAgICByZXNvbHZlKHZhbHVlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxvZy5kZWJ1ZygnRnJhbWUgbmF2aWdhdGVkIGJ1dCB3ZSB3ZXJlIHdhcm5lZCBhYm91dCBpdCwgbm90ICcgK1xuICAgICAgICAgICAgICAgICAgJ2NvbnNpZGVyaW5nIHBhZ2Ugc3RhdGUgdW5sb2FkZWQnKTtcbiAgICAgICAgdGhpcy5hbGxvd05hdmlnYXRpb25XaXRob3V0UmVsb2FkID0gZmFsc2U7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5uYXZpZ2F0aW9uRGVsYXkpIHtcbiAgICAgICAgdGhpcy5uYXZpZ2F0aW9uRGVsYXkuY2FuY2VsKCk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIHRoaXMucnBjQ2xpZW50Lm9uY2UoJ1BhZ2UuZnJhbWVOYXZpZ2F0ZWQnLCBuYXZFdmVudExpc3RlbmVyKTtcblxuICAgIC8vIHRpbWVvdXQsIGluIGNhc2UgcmVtb3RlIGRlYnVnZ2VyIGRvZXNuJ3QgcmVzcG9uZCxcbiAgICAvLyBvciB0YWtlcyBhIGxvbmcgdGltZVxuICAgIGlmICghdGhpcy51c2VOZXdTYWZhcmkgfHwgdGhpcy5wYWdlTG9hZE1zID49IDApIHtcbiAgICAgIC8vIHVzZSBwYWdlTG9hZE1zLCBvciBhIHNtYWxsIGFtb3VudCBvZiB0aW1lXG4gICAgICBjb25zdCB0aW1lb3V0ID0gdGhpcy51c2VOZXdTYWZhcmkgPyB0aGlzLnBhZ2VMb2FkTXMgOiA1MDA7XG4gICAgICB0aGlzLm5hdmlnYXRpb25EZWxheSA9IHV0aWwuY2FuY2VsbGFibGVEZWxheSh0aW1lb3V0KTtcbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IHRoaXMubmF2aWdhdGlvbkRlbGF5O1xuICAgICAgICBuYXZFdmVudExpc3RlbmVyKG51bGwsIGAke3RpbWVvdXR9bXMgdGltZW91dGApO1xuICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIC8vIG5vdGhpbmcgdG8gZG86IHdlIG9ubHkgZ2V0IGhlcmUgaWYgdGhlIHJlbW90ZSBkZWJ1Z2dlclxuICAgICAgICAvLyBhbHJlYWR5IG5vdGlmaWVkIG9mIGZyYW1lIG5hdmlnYXRpb24sIGFuZCB0aGUgZGVsYXlcbiAgICAgICAgLy8gd2FzIGNhbmNlbGxlZFxuICAgICAgfVxuICAgIH1cbiAgfSkuZmluYWxseSgoKSA9PiB7XG4gICAgaWYgKG5hdkV2ZW50TGlzdGVuZXIpIHtcbiAgICAgIHRoaXMucnBjQ2xpZW50Lm9mZignUGFnZS5mcmFtZU5hdmlnYXRlZCcsIG5hdkV2ZW50TGlzdGVuZXIpO1xuICAgIH1cbiAgfSk7XG59XG5cblxuZXhwb3J0IGRlZmF1bHQgeyBmcmFtZURldGFjaGVkLCBwYWdlTG9hZCwgY2FuY2VsUGFnZUxvYWQsIHBhZ2VVbmxvYWQsIHdhaXRGb3JEb20sIGNoZWNrUGFnZUlzUmVhZHksIG5hdlRvVXJsLCB3YWl0Rm9yRnJhbWVOYXZpZ2F0ZWQgfTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFHQSxTQUFTQSxhQUFULEdBQTBCO0VBQ3hCLEtBQUtDLElBQUwsQ0FBVUMsZUFBQSxDQUFPQyxxQkFBakI7QUFDRDs7QUFFRCxlQUFlQyxRQUFmLENBQXlCQyxrQkFBekIsRUFBNkNDLGtCQUFrQixHQUFHQyxlQUFBLENBQUVDLElBQXBFLEVBQTBFO0VBQUE7O0VBQ3hFLE1BQU1DLFNBQVMsR0FBRyxHQUFsQjs7RUFDQSxJQUFJLENBQUNGLGVBQUEsQ0FBRUcsVUFBRix3QkFBYUwsa0JBQWIsd0RBQWEsb0JBQW9CTSxXQUFqQyxDQUFMLEVBQW9EO0lBQ2xEQyxlQUFBLENBQUlDLEtBQUosQ0FBVyxpREFBWDs7SUFDQVIsa0JBQWtCLEdBQUcsSUFBSVMsZUFBQSxDQUFPQyxLQUFYLEdBQW1CQyxLQUFuQixFQUFyQjtFQUNEOztFQUVESixlQUFBLENB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
@@ -289,4 +289,4 @@ var _default = RemoteDebugger;
289
289
  exports.default = _default;require('source-map-support').install();
290
290
 
291
291
 
292
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL3JlbW90ZS1kZWJ1Z2dlci5qcyIsIm5hbWVzIjpbIlZFUlNJT04iLCJyZXF1aXJlIiwicGF0aCIsInJlc29sdmUiLCJfX2Rpcm5hbWUiLCJ2ZXJzaW9uIiwiaWduIiwiUkVNT1RFX0RFQlVHR0VSX1BPUlQiLCJTQUZBUklfQlVORExFX0lEIiwiUlBDX1JFU1BPTlNFX1RJTUVPVVRfTVMiLCJQQUdFX1JFQURZX1RJTUVPVVQiLCJHQVJCQUdFX0NPTExFQ1RfVElNRU9VVCIsIlJlbW90ZURlYnVnZ2VyIiwiRXZlbnRFbWl0dGVyIiwiY29uc3RydWN0b3IiLCJvcHRzIiwibG9nIiwiaW5mbyIsImJ1bmRsZUlkIiwiYWRkaXRpb25hbEJ1bmRsZUlkcyIsInBsYXRmb3JtVmVyc2lvbiIsImlzU2FmYXJpIiwiaW5jbHVkZVNhZmFyaSIsInVzZU5ld1NhZmFyaSIsInBhZ2VMb2FkTXMiLCJob3N0IiwicG9ydCIsInNvY2tldFBhdGgiLCJwYWdlUmVhZHlUaW1lb3V0IiwicmVtb3RlRGVidWdQcm94eSIsImdhcmJhZ2VDb2xsZWN0T25FeGVjdXRlIiwibG9nRnVsbFJlc3BvbnNlIiwibG9nQWxsQ29tbXVuaWNhdGlvbiIsImxvZ0FsbENvbW11bmljYXRpb25IZXhEdW1wIiwid2ViSW5zcGVjdG9yTWF4RnJhbWVMZW5ndGgiLCJzb2NrZXRDaHVua1NpemUiLCJmdWxsUGFnZUluaXRpYWxpemF0aW9uIiwiZGVidWciLCJfIiwiaXNOaWwiLCJpc0ludGVnZXIiLCJfbG9jayIsIkFzeW5jTG9jayIsInNldHVwIiwiYXBwRGljdCIsImFwcElkS2V5IiwicGFnZUlkS2V5IiwicGFnZUxvYWRpbmciLCJfbmF2aWdhdGluZ1RvUGFnZSIsImFsbG93TmF2aWdhdGlvbldpdGhvdXRSZWxvYWQiLCJycGNDbGllbnQiLCJfY2xpZW50RXZlbnRMaXN0ZW5lcnMiLCJ0ZWFyZG93biIsInJlbW92ZUFsbExpc3RlbmVycyIsIkVWRU5UX1BBR0VfQ0hBTkdFIiwiRVZFTlRfRElTQ09OTkVDVCIsImluaXRScGNDbGllbnQiLCJScGNDbGllbnRTaW11bGF0b3IiLCJtZXNzYWdlUHJveHkiLCJpc0Nvbm5lY3RlZCIsImxhdW5jaFNhZmFyaSIsInNlbmQiLCJzdGFydFRpbWVsaW5lIiwiZm4iLCJvbiIsInN0b3BUaW1lbGluZSIsImFkZENsaWVudEV2ZW50TGlzdGVuZXIiLCJldmVudE5hbWUiLCJsaXN0ZW5lciIsInB1c2giLCJyZW1vdmVDbGllbnRFdmVudExpc3RlbmVyIiwib2ZmIiwic3RhcnRDb25zb2xlIiwic3RvcENvbnNvbGUiLCJzdGFydE5ldHdvcmsiLCJzdG9wTmV0d29yayIsImFsbG93IiwiX2FsbG93TmF2aWdhdGlvbldpdGhvdXRSZWxvYWQiLCJnZXRDb29raWVzIiwidXJscyIsImRlbGV0ZUNvb2tpZSIsImNvb2tpZU5hbWUiLCJ1cmwiLCJnYXJiYWdlQ29sbGVjdCIsInRpbWVvdXRNcyIsImVyciIsIkIiLCJ0aW1lb3V0IiwidGhlbiIsImdjU3VjY2VzcyIsImNhdGNoIiwiZ2NFcnJvciIsIlRpbWVvdXRFcnJvciIsIm1lc3NhZ2UiLCJ1c2VBcHBEaWN0TG9jayIsImFjcXVpcmUiLCJza2lwcGVkQXBwcyIsIl9za2lwcGVkQXBwcyIsIm5hbWUiLCJ0b1BhaXJzIiwibWl4aW5zIiwicHJvdG90eXBlIiwiZXZlbnQiLCJldmVudHMiXSwic291cmNlUm9vdCI6Ii4uLy4uIiwic291cmNlcyI6WyJsaWIvcmVtb3RlLWRlYnVnZ2VyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEV2ZW50RW1pdHRlciB9IGZyb20gJ2V2ZW50cyc7XG5pbXBvcnQgbG9nIGZyb20gJy4vbG9nZ2VyJztcbmltcG9ydCB7IFJwY0NsaWVudFNpbXVsYXRvciB9IGZyb20gJy4vcnBjJztcbmltcG9ydCB7IGNoZWNrUGFyYW1zIH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBtaXhpbnMsIGV2ZW50cyB9IGZyb20gJy4vbWl4aW5zJztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgQiBmcm9tICdibHVlYmlyZCc7XG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCBBc3luY0xvY2sgZnJvbSAnYXN5bmMtbG9jayc7XG5cblxubGV0IFZFUlNJT047XG50cnkge1xuICBWRVJTSU9OID0gcmVxdWlyZShwYXRoLnJlc29sdmUoX19kaXJuYW1lLCAnLi4nLCAnLi4nLCAncGFja2FnZS5qc29uJykpLnZlcnNpb247XG59IGNhdGNoIChpZ24pIHt9XG5cbmNvbnN0IFJFTU9URV9ERUJVR0dFUl9QT1JUID0gMjc3NTM7XG5jb25zdCBTQUZBUklfQlVORExFX0lEID0gJ2NvbS5hcHBsZS5tb2JpbGVzYWZhcmknO1xuXG4vKiBIb3cgbWFueSBtaWxsaXNlY29uZHMgdG8gd2FpdCBmb3Igd2Via2l0IHRvIHJldHVybiBhIHJlc3BvbnNlIGJlZm9yZSB0aW1pbmcgb3V0ICovXG5jb25zdCBSUENfUkVTUE9OU0VfVElNRU9VVF9NUyA9IDUwMDA7XG5cbmNvbnN0IFBBR0VfUkVBRFlfVElNRU9VVCA9IDUwMDA7XG5cbmNvbnN0IEdBUkJBR0VfQ09MTEVDVF9USU1FT1VUID0gNTAwMDtcblxuXG5jbGFzcyBSZW1vdGVEZWJ1Z2dlciBleHRlbmRzIEV2ZW50RW1pdHRlciB7XG4gIC8qXG4gICAqIFRoZSBjb25zdHJ1Y3RvciB0YWtlcyBhbiBvcHRzIGhhc2ggd2l0aCB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXM6XG4gICAqICAgLSBidW5kbGVJZCAtIGlkIG9mIHRoZSBhcHAgYmVpbmcgY29ubmVjdGVkIHRvXG4gICAqICAgLSBhZGRpdGlvbmFsQnVuZGxlSWRzIC0gYXJyYXkgb2YgcG9zc2libGUgYnVuZGxlIGlkcyB0aGF0IHRoZSBpbnNwZWN0b3JcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICBjb3VsZCByZXR1cm5cbiAgICogICAtIHBsYXRmb3JtVmVyc2lvbiAtIHZlcnNpb24gb2YgaU9TXG4gICAqICAgLSB1c2VOZXdTYWZhcmkgLSBmb3Igd2ViIGluc3BlY3Rvciwgd2hldGhlciB0aGlzIGlzIGEgbmV3IFNhZmFyaSBpbnN0YW5jZVxuICAgKiAgIC0gcGFnZUxvYWRNcyAtIHRoZSB0aW1lLCBpbiBtcywgdGhhdCBzaG91bGQgYmUgd2FpdGVkIGZvciBwYWdlIGxvYWRpbmdcbiAgICogICAtIGhvc3QgLSB0aGUgcmVtb3RlIGRlYnVnZ2VyJ3MgaG9zdCBhZGRyZXNzXG4gICAqICAgLSBwb3J0IC0gdGhlIHJlbW90ZSBkZWJ1Z2dlciBwb3J0IHRocm91Z2ggd2hpY2ggdG8gY29tbXVuaWNhdGVcbiAgICogICAtIGxvZ0FsbENvbW11bmljYXRpb24gLSBsb2cgcGxpc3RzIHNlbnQgYW5kIHJlY2VpdmVkIGZyb20gV2ViIEluc3BlY3RvclxuICAgKiAgIC0gbG9nQWxsQ29tbXVuaWNhdGlvbkhleER1bXAgLSBsb2cgY29tbXVuaWNhdGlvbiBmcm9tIFdlYiBJbnNwZWN0b3IgYXMgaGV4IGR1bXBcbiAgICogICAtIHNvY2tldENodW5rU2l6ZSAtIHNpemUsIGluIGJ5dGVzLCBvZiBjaHVua3Mgb2YgZGF0YSBzZW50IHRvIFdlYiBJbnNwZWN0b3IgKHJlYWwgZGV2aWNlIG9ubHkpXG4gICAqICAgLSB3ZWJJbnNwZWN0b3JNYXhGcmFtZUxlbmd0aCAtIFRoZSBtYXhpbXVtIHNpemUgaW4gYnl0ZXMgb2YgYSBzaW5nbGUgZGF0YSBmcmFtZVxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgZGV2aWNlIGNvbW11bmljYXRpb24gcHJvdG9jb2xcbiAgICovXG4gIGNvbnN0cnVjdG9yIChvcHRzID0ge30pIHtcbiAgICBzdXBlcigpO1xuXG4gICAgaWYgKFZFUlNJT04pIHtcbiAgICAgIGxvZy5pbmZvKGBSZW1vdGUgRGVidWdnZXIgdmVyc2lvbiAke1ZFUlNJT059YCk7XG4gICAgfVxuXG4gICAgY29uc3Qge1xuICAgICAgYnVuZGxlSWQsXG4gICAgICBhZGRpdGlvbmFsQnVuZGxlSWRzID0gW10sXG4gICAgICBwbGF0Zm9ybVZlcnNpb24sXG4gICAgICBpc1NhZmFyaSA9IHRydWUsXG4gICAgICBpbmNsdWRlU2FmYXJpID0gZmFsc2UsXG4gICAgICB1c2VOZXdTYWZhcmkgPSBmYWxzZSxcbiAgICAgIHBhZ2VMb2FkTXMsXG4gICAgICBob3N0LFxuICAgICAgcG9ydCA9IFJFTU9URV9ERUJVR0dFUl9QT1JULFxuICAgICAgc29ja2V0UGF0aCxcbiAgICAgIHBhZ2VSZWFkeVRpbWVvdXQgPSBQQUdFX1JFQURZX1RJTUVPVVQsXG4gICAgICByZW1vdGVEZWJ1Z1Byb3h5LFxuICAgICAgZ2FyYmFnZUNvbGxlY3RPbkV4ZWN1dGUgPSBmYWxzZSxcbiAgICAgIGxvZ0Z1bGxSZXNwb25zZSA9IGZhbHNlLFxuICAgICAgbG9nQWxsQ29tbXVuaWNhdGlvbiA9IGZhbHNlLFxuICAgICAgbG9nQWxsQ29tbXVuaWNhdGlvbkhleER1bXAgPSBmYWxzZSxcbiAgICAgIHdlYkluc3BlY3Rvck1heEZyYW1lTGVuZ3RoLFxuICAgICAgc29ja2V0Q2h1bmtTaXplLFxuICAgICAgZnVsbFBhZ2VJbml0aWFsaXphdGlvbixcbiAgICB9ID0gb3B0cztcblxuICAgIHRoaXMuYnVuZGxlSWQgPSBidW5kbGVJZDtcbiAgICB0aGlzLmFkZGl0aW9uYWxCdW5kbGVJZHMgPSBhZGRpdGlvbmFsQnVuZGxlSWRzO1xuICAgIHRoaXMucGxhdGZvcm1WZXJzaW9uID0gcGxhdGZvcm1WZXJzaW9uO1xuICAgIHRoaXMuaXNTYWZhcmkgPSBpc1NhZmFyaTtcbiAgICB0aGlzLmluY2x1ZGVTYWZhcmkgPSBpbmNsdWRlU2FmYXJpO1xuICAgIHRoaXMudXNlTmV3U2FmYXJpID0gdXNlTmV3U2FmYXJpO1xuICAgIHRoaXMucGFnZUxvYWRNcyA9IHBhZ2VMb2FkTXM7XG4gICAgbG9nLmRlYnVnKGB1c2VOZXdTYWZhcmkgLS0+ICR7dGhpcy51c2VOZXdTYWZhcml9YCk7XG5cbiAgICB0aGlzLmdhcmJhZ2VDb2xsZWN0T25FeGVjdXRlID0gZ2FyYmFnZUNvbGxlY3RPbkV4ZWN1dGU7XG5cbiAgICB0aGlzLmhvc3QgPSBob3N0O1xuICAgIHRoaXMucG9ydCA9IHBvcnQ7XG4gICAgdGhpcy5zb2NrZXRQYXRoID0gc29ja2V0UGF0aDtcbiAgICB0aGlzLnJlbW90ZURlYnVnUHJveHkgPSByZW1vdGVEZWJ1Z1Byb3h5O1xuICAgIHRoaXMucGFnZVJlYWR5VGltZW91dCA9IHBhZ2VSZWFkeVRpbWVvdXQ7XG5cbiAgICB0aGlzLmxvZ0FsbENvbW11bmljYXRpb24gPSBfLmlzTmlsKGxvZ0FsbENvbW11bmljYXRpb24pID8gISFsb2dGdWxsUmVzcG9uc2UgOiAhIWxvZ0FsbENvbW11bmljYXRpb247XG4gICAgdGhpcy5sb2dBbGxDb21tdW5pY2F0aW9uSGV4RHVtcCA9IGxvZ0FsbENvbW11bmljYXRpb25IZXhEdW1wO1xuICAgIHRoaXMuc29ja2V0Q2h1bmtTaXplID0gc29ja2V0Q2h1bmtTaXplO1xuXG4gICAgaWYgKF8uaXNJbnRlZ2VyKHdlYkluc3BlY3Rvck1heEZyYW1lTGVuZ3RoKSkge1xuICAgICAgdGhpcy53ZWJJbnNwZWN0b3JNYXhGcmFtZUxlbmd0aCA9IHdlYkluc3BlY3Rvck1heEZyYW1lTGVuZ3RoO1xuICAgIH1cblxuICAgIHRoaXMuZnVsbFBhZ2VJbml0aWFsaXphdGlvbiA9IGZ1bGxQYWdlSW5pdGlhbGl6YXRpb247XG5cbiAgICB0aGlzLl9sb2NrID0gbmV3IEFzeW5jTG9jaygpO1xuICB9XG5cbiAgc2V0dXAgKCkge1xuICAgIC8vIGFwcCBoYW5kbGluZyBjb25maWd1cmF0aW9uXG4gICAgdGhpcy5hcHBEaWN0ID0ge307XG4gICAgdGhpcy5hcHBJZEtleSA9IG51bGw7XG4gICAgdGhpcy5wYWdlSWRLZXkgPSBudWxsO1xuICAgIHRoaXMucGFnZUxvYWRpbmcgPSBmYWxzZTtcbiAgICB0aGlzLl9uYXZpZ2F0aW5nVG9QYWdlID0gZmFsc2U7XG4gICAgdGhpcy5hbGxvd05hdmlnYXRpb25XaXRob3V0UmVsb2FkID0gZmFsc2U7XG5cbiAgICB0aGlzLnJwY0NsaWVudCA9IG51bGw7XG4gICAgdGhpcy5fY2xpZW50RXZlbnRMaXN0ZW5lcnMgPSB7fTtcbiAgfVxuXG4gIHRlYXJkb3duICgpIHtcbiAgICBsb2cuZGVidWcoJ0NsZWFuaW5nIHVwIGxpc3RlbmVycycpO1xuXG4gICAgdGhpcy5hcHBEaWN0ID0ge307XG4gICAgdGhpcy5hcHBJZEtleSA9IG51bGw7XG4gICAgdGhpcy5wYWdlSWRLZXkgPSBudWxsO1xuICAgIHRoaXMucGFnZUxvYWRpbmcgPSBmYWxzZTtcblxuICAgIHRoaXMucnBjQ2xpZW50ID0gbnVsbDtcblxuICAgIHRoaXMucmVtb3ZlQWxsTGlzdGVuZXJzKFJlbW90ZURlYnVnZ2VyLkVWRU5UX1BBR0VfQ0hBTkdFKTtcbiAgICB0aGlzLnJlbW92ZUFsbExpc3RlbmVycyhSZW1vdGVEZWJ1Z2dlci5FVkVOVF9ESVNDT05ORUNUKTtcbiAgfVxuXG4gIGluaXRScGNDbGllbnQgKCkge1xuICAgIHRoaXMucnBjQ2xpZW50ID0gbmV3IFJwY0NsaWVudFNpbXVsYXRvcih7XG4gICAgICBidW5kbGVJZDogdGhpcy5idW5kbGVJZCxcbiAgICAgIHBsYXRmb3JtVmVyc2lvbjogdGhpcy5wbGF0Zm9ybVZlcnNpb24sXG4gICAgICBpc1NhZmFyaTogdGhpcy5pc1NhZmFyaSxcbiAgICAgIGhvc3Q6IHRoaXMuaG9zdCxcbiAgICAgIHBvcnQ6IHRoaXMucG9ydCxcbiAgICAgIHNvY2tldFBhdGg6IHRoaXMuc29ja2V0UGF0aCxcbiAgICAgIG1lc3NhZ2VQcm94eTogdGhpcy5yZW1vdGVEZWJ1Z1Byb3h5LFxuICAgICAgbG9nQWxsQ29tbXVuaWNhdGlvbjogdGhpcy5sb2dBbGxDb21tdW5pY2F0aW9uLFxuICAgICAgbG9nQWxsQ29tbXVuaWNhdGlvbkhleER1bXA6IHRoaXMubG9nQWxsQ29tbXVuaWNhdGlvbkhleER1bXAsXG4gICAgICBmdWxsUGFnZUluaXRpYWxpemF0aW9uOiB0aGlzLmZ1bGxQYWdlSW5pdGlhbGl6YXRpb24sXG4gICAgICB3ZWJJbnNwZWN0b3JNYXhGcmFtZUxlbmd0aDogdGhpcy53ZWJJbnNwZWN0b3JNYXhGcmFtZUxlbmd0aCxcbiAgICB9KTtcbiAgfVxuXG4gIGdldCBpc0Nvbm5lY3RlZCAoKSB7XG4gICAgcmV0dXJuICEhdGhpcy5ycGNDbGllbnQ/LmlzQ29ubmVjdGVkO1xuICB9XG5cbiAgYXN5bmMgbGF1bmNoU2FmYXJpICgpIHtcbiAgICBhd2FpdCB0aGlzLnJwY0NsaWVudC5zZW5kKCdsYXVuY2hBcHBsaWNhdGlvbicsIHtcbiAgICAgIGJ1bmRsZUlkOiBTQUZBUklfQlVORExFX0lEXG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBzdGFydFRpbWVsaW5lIChmbikge1xuICAgIGxvZy5kZWJ1ZygnU3RhcnRpbmcgdG8gcmVjb3JkIHRoZSB0aW1lbGluZScpO1xuICAgIHRoaXMucnBjQ2xpZW50Lm9uKCdUaW1lbGluZS5ldmVudFJlY29yZGVkJywgZm4pO1xuICAgIHJldHVybiBhd2FpdCB0aGlzLnJwY0NsaWVudC5zZW5kKCdzdGFydFRpbWVsaW5lJywge1xuICAgICAgYXBwSWRLZXk6IHRoaXMuYXBwSWRLZXksXG4gICAgICBwYWdlSWRLZXk6IHRoaXMucGFnZUlkS2V5LFxuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgc3RvcFRpbWVsaW5lICgpIHtcbiAgICBsb2cuZGVidWcoJ1N0b3BwaW5nIHRvIHJlY29yZCB0aGUgdGltZWxpbmUnKTtcbiAgICBhd2FpdCB0aGlzLnJwY0NsaWVudC5zZW5kKCdUaW1lbGluZS5zdG9wJywge1xuICAgICAgYXBwSWRLZXk6IHRoaXMuYXBwSWRLZXksXG4gICAgICBwYWdlSWRLZXk6IHRoaXMucGFnZUlkS2V5LFxuICAgIH0pO1xuICB9XG5cbiAgLypcbiAgICogS2VlcCB0cmFjayBvZiB0aGUgY2xpZW50IGV2ZW50IGxpc3RlbmVycyBzbyB0aGV5IGNhbiBiZSByZW1vdmVkXG4gICAqL1xuICBhZGRDbGllbnRFdmVudExpc3RlbmVyIChldmVudE5hbWUsIGxpc3RlbmVyKSB7XG4gICAgdGhpcy5fY2xpZW50RXZlbnRMaXN0ZW5lcnNbZXZlbnROYW1lXSA9IHRoaXMuX2NsaWVudEV2ZW50TGlzdGVuZXJzW2V2ZW50TmFtZV0gfHwgW107XG4gICAgdGhpcy5fY2xpZW50RXZlbnRMaXN0ZW5lcnNbZXZlbnROYW1lXS5wdXNoKGxpc3RlbmVyKTtcbiAgICB0aGlzLnJwY0NsaWVudC5vbihldmVudE5hbWUsIGxpc3RlbmVyKTtcbiAgfVxuXG4gIHJlbW92ZUNsaWVudEV2ZW50TGlzdGVuZXIgKGV2ZW50TmFtZSkge1xuICAgIGZvciAoY29uc3QgbGlzdGVuZXIgb2YgKHRoaXMuX2NsaWVudEV2ZW50TGlzdGVuZXJzW2V2ZW50TmFtZV0gfHwgW10pKSB7XG4gICAgICB0aGlzLnJwY0NsaWVudC5vZmYoZXZlbnROYW1lLCBsaXN0ZW5lcik7XG4gICAgfVxuICB9XG5cbiAgc3RhcnRDb25zb2xlIChsaXN0ZW5lcikge1xuICAgIGxvZy5kZWJ1ZygnU3RhcnRpbmcgdG8gbGlzdGVuIGZvciBKYXZhU2NyaXB0IGNvbnNvbGUnKTtcbiAgICB0aGlzLmFkZENsaWVudEV2ZW50TGlzdGVuZXIoJ0NvbnNvbGUubWVzc2FnZUFkZGVkJywgbGlzdGVuZXIpO1xuICAgIHRoaXMuYWRkQ2xpZW50RXZlbnRMaXN0ZW5lcignQ29uc29sZS5tZXNzYWdlUmVwZWF0Q291bnRVcGRhdGVkJywgbGlzdGVuZXIpO1xuICB9XG5cbiAgc3RvcENvbnNvbGUgKCkge1xuICAgIGxvZy5kZWJ1ZygnU3RvcHBpbmcgdG8gbGlzdGVuIGZvciBKYXZhU2NyaXB0IGNvbnNvbGUnKTtcbiAgICB0aGlzLnJlbW92ZUNsaWVudEV2ZW50TGlzdGVuZXIoJ0NvbnNvbGUubWVzc2FnZUFkZGVkJyk7XG4gICAgdGhpcy5yZW1vdmVDbGllbnRFdmVudExpc3RlbmVyKCdDb25zb2xlLm1lc3NhZ2VSZXBlYXRDb3VudFVwZGF0ZWQnKTtcbiAgfVxuXG4gIHN0YXJ0TmV0d29yayAobGlzdGVuZXIpIHtcbiAgICBsb2cuZGVidWcoJ1N0YXJ0aW5nIHRvIGxpc3RlbiBmb3IgbmV0d29yayBldmVudHMnKTtcbiAgICB0aGlzLmFkZENsaWVudEV2ZW50TGlzdGVuZXIoJ05ldHdvcmtFdmVudCcsIGxpc3RlbmVyKTtcbiAgfVxuXG4gIHN0b3BOZXR3b3JrICgpIHtcbiAgICBsb2cuZGVidWcoJ1N0b3BwaW5nIHRvIGxpc3RlbiBmb3IgbmV0d29yayBldmVudHMnKTtcbiAgICB0aGlzLnJlbW92ZUNsaWVudEV2ZW50TGlzdGVuZXIoJ05ldHdvcmtFdmVudCcpO1xuICB9XG5cbiAgc2V0IGFsbG93TmF2aWdhdGlvbldpdGhvdXRSZWxvYWQgKGFsbG93KSB7XG4gICAgdGhpcy5fYWxsb3dOYXZpZ2F0aW9uV2l0aG91dFJlbG9hZCA9IGFsbG93O1xuICB9XG5cbiAgZ2V0IGFsbG93TmF2aWdhdGlvbldpdGhvdXRSZWxvYWQgKCkge1xuICAgIHJldHVybiB0aGlzLl9hbGxvd05hdmlnYXRpb25XaXRob3V0UmVsb2FkO1xuICB9XG5cbiAgYXN5bmMgZ2V0Q29va2llcyAodXJscykge1xuICAgIGxvZy5kZWJ1ZygnR2V0dGluZyBjb29raWVzJyk7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMucnBjQ2xpZW50LnNlbmQoJ1BhZ2UuZ2V0Q29va2llcycsIHtcbiAgICAgIGFwcElkS2V5OiB0aGlzLmFwcElkS2V5LFxuICAgICAgcGFnZUlkS2V5OiB0aGlzLnBhZ2VJZEtleSxcbiAgICAgIHVybHMsXG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBkZWxldGVDb29raWUgKGNvb2tpZU5hbWUsIHVybCkge1xuICAgIGxvZy5kZWJ1ZyhgRGVsZXRpbmcgY29va2llICcke2Nvb2tpZU5hbWV9JyBvbiAnJHt1cmx9J2ApO1xuICAgIHJldHVybiBhd2FpdCB0aGlzLnJwY0NsaWVudC5zZW5kKCdQYWdlLmRlbGV0ZUNvb2tpZScsIHtcbiAgICAgIGFwcElkS2V5OiB0aGlzLmFwcElkS2V5LFxuICAgICAgcGFnZUlkS2V5OiB0aGlzLnBhZ2VJZEtleSxcbiAgICAgIGNvb2tpZU5hbWUsXG4gICAgICB1cmwsXG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBnYXJiYWdlQ29sbGVjdCAodGltZW91dE1zID0gR0FSQkFHRV9DT0xMRUNUX1RJTUVPVVQpIHtcbiAgICBsb2cuZGVidWcoYEdhcmJhZ2UgY29sbGVjdGluZyB3aXRoICR7dGltZW91dE1zfW1zIHRpbWVvdXRgKTtcbiAgICB0cnkge1xuICAgICAgY2hlY2tQYXJhbXMoe2FwcElkS2V5OiB0aGlzLmFwcElkS2V5LCBwYWdlSWRLZXk6IHRoaXMucGFnZUlkS2V5fSk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBsb2cuZGVidWcoYFVuYWJsZSB0byBjb2xsZWN0IGdhcmJhZ2UgYXQgdGhpcyB0aW1lYCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgYXdhaXQgQi5yZXNvbHZlKHRoaXMucnBjQ2xpZW50LnNlbmQoJ0hlYXAuZ2MnLCB7XG4gICAgICBhcHBJZEtleTogdGhpcy5hcHBJZEtleSxcbiAgICAgIHBhZ2VJZEtleTogdGhpcy5wYWdlSWRLZXksXG4gICAgfSkpLnRpbWVvdXQodGltZW91dE1zKVxuICAgIC50aGVuKGZ1bmN0aW9uIGdjU3VjY2VzcyAoKSB7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgcHJvbWlzZS9wcmVmZXItYXdhaXQtdG8tdGhlblxuICAgICAgbG9nLmRlYnVnKGBHYXJiYWdlIGNvbGxlY3Rpb24gc3VjY2Vzc2Z1bGApO1xuICAgIH0pLmNhdGNoKGZ1bmN0aW9uIGdjRXJyb3IgKGVycikgeyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIHByb21pc2UvcHJlZmVyLWF3YWl0LXRvLWNhbGxiYWNrc1xuICAgICAgaWYgKGVyciBpbnN0YW5jZW9mIEIuVGltZW91dEVycm9yKSB7XG4gICAgICAgIGxvZy5kZWJ1ZyhgR2FyYmFnZSBjb2xsZWN0aW9uIHRpbWVkIG91dCBhZnRlciAke3RpbWVvdXRNc31tc2ApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbG9nLmRlYnVnKGBVbmFibGUgdG8gY29sbGVjdCBnYXJiYWdlOiAke2Vyci5tZXNzYWdlfWApO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgdXNlQXBwRGljdExvY2sgKGZuKSB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuX2xvY2suYWNxdWlyZSgnYXBwRGljdCcsIGZuKTtcbiAgfVxuXG4gIGdldCBza2lwcGVkQXBwcyAoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3NraXBwZWRBcHBzIHx8IFtdO1xuICB9XG59XG5cbmZvciAoY29uc3QgW25hbWUsIGZuXSBvZiBfLnRvUGFpcnMobWl4aW5zKSkge1xuICBSZW1vdGVEZWJ1Z2dlci5wcm90b3R5cGVbbmFtZV0gPSBmbjtcbn1cblxuZm9yIChjb25zdCBbbmFtZSwgZXZlbnRdIG9mIF8udG9QYWlycyhldmVudHMpKSB7XG4gIFJlbW90ZURlYnVnZ2VyW25hbWVdID0gZXZlbnQ7XG59XG5cbmV4cG9ydCBkZWZhdWx0IFJlbW90ZURlYnVnZ2VyO1xuZXhwb3J0IHtcbiAgUmVtb3RlRGVidWdnZXIsIFJFTU9URV9ERUJVR0dFUl9QT1JULCBSUENfUkVTUE9OU0VfVElNRU9VVF9NUyxcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBR0EsSUFBSUEsT0FBSjs7QUFDQSxJQUFJO0VBQ0ZBLE9BQU8sR0FBR0MsT0FBTyxDQUFDQyxjQUFLQyxPQUFMLENBQWFDLFNBQWIsRUFBd0IsSUFBeEIsRUFBOEIsSUFBOUIsRUFBb0MsY0FBcEMsQ0FBRCxDQUFQLENBQTZEQyxPQUF2RTtBQUNELENBRkQsQ0FFRSxPQUFPQyxHQUFQLEVBQVksQ0FBRTs7QUFFaEIsTUFBTUMsb0JBQW9CLEdBQUcsS0FBN0I7O0FBQ0EsTUFBTUMsZ0JBQWdCLEdBQUcsd0JBQXpCO0FBR0EsTUFBTUMsdUJBQXVCLEdBQUcsSUFBaEM7O0FBRUEsTUFBTUMsa0JBQWtCLEdBQUcsSUFBM0I7QUFFQSxNQUFNQyx1QkFBdUIsR0FBRyxJQUFoQzs7QUFHQSxN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
292
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL3JlbW90ZS1kZWJ1Z2dlci5qcyIsIm5hbWVzIjpbIlZFUlNJT04iLCJyZXF1aXJlIiwicGF0aCIsInJlc29sdmUiLCJfX2Rpcm5hbWUiLCJ2ZXJzaW9uIiwiaWduIiwiUkVNT1RFX0RFQlVHR0VSX1BPUlQiLCJTQUZBUklfQlVORExFX0lEIiwiUlBDX1JFU1BPTlNFX1RJTUVPVVRfTVMiLCJQQUdFX1JFQURZX1RJTUVPVVQiLCJHQVJCQUdFX0NPTExFQ1RfVElNRU9VVCIsIlJlbW90ZURlYnVnZ2VyIiwiRXZlbnRFbWl0dGVyIiwiY29uc3RydWN0b3IiLCJvcHRzIiwibG9nIiwiaW5mbyIsImJ1bmRsZUlkIiwiYWRkaXRpb25hbEJ1bmRsZUlkcyIsInBsYXRmb3JtVmVyc2lvbiIsImlzU2FmYXJpIiwiaW5jbHVkZVNhZmFyaSIsInVzZU5ld1NhZmFyaSIsInBhZ2VMb2FkTXMiLCJob3N0IiwicG9ydCIsInNvY2tldFBhdGgiLCJwYWdlUmVhZHlUaW1lb3V0IiwicmVtb3RlRGVidWdQcm94eSIsImdhcmJhZ2VDb2xsZWN0T25FeGVjdXRlIiwibG9nRnVsbFJlc3BvbnNlIiwibG9nQWxsQ29tbXVuaWNhdGlvbiIsImxvZ0FsbENvbW11bmljYXRpb25IZXhEdW1wIiwid2ViSW5zcGVjdG9yTWF4RnJhbWVMZW5ndGgiLCJzb2NrZXRDaHVua1NpemUiLCJmdWxsUGFnZUluaXRpYWxpemF0aW9uIiwiZGVidWciLCJfIiwiaXNOaWwiLCJpc0ludGVnZXIiLCJfbG9jayIsIkFzeW5jTG9jayIsInNldHVwIiwiYXBwRGljdCIsImFwcElkS2V5IiwicGFnZUlkS2V5IiwicGFnZUxvYWRpbmciLCJfbmF2aWdhdGluZ1RvUGFnZSIsImFsbG93TmF2aWdhdGlvbldpdGhvdXRSZWxvYWQiLCJycGNDbGllbnQiLCJfY2xpZW50RXZlbnRMaXN0ZW5lcnMiLCJ0ZWFyZG93biIsInJlbW92ZUFsbExpc3RlbmVycyIsIkVWRU5UX1BBR0VfQ0hBTkdFIiwiRVZFTlRfRElTQ09OTkVDVCIsImluaXRScGNDbGllbnQiLCJScGNDbGllbnRTaW11bGF0b3IiLCJtZXNzYWdlUHJveHkiLCJpc0Nvbm5lY3RlZCIsImxhdW5jaFNhZmFyaSIsInNlbmQiLCJzdGFydFRpbWVsaW5lIiwiZm4iLCJvbiIsInN0b3BUaW1lbGluZSIsImFkZENsaWVudEV2ZW50TGlzdGVuZXIiLCJldmVudE5hbWUiLCJsaXN0ZW5lciIsInB1c2giLCJyZW1vdmVDbGllbnRFdmVudExpc3RlbmVyIiwib2ZmIiwic3RhcnRDb25zb2xlIiwic3RvcENvbnNvbGUiLCJzdGFydE5ldHdvcmsiLCJzdG9wTmV0d29yayIsImFsbG93IiwiX2FsbG93TmF2aWdhdGlvbldpdGhvdXRSZWxvYWQiLCJnZXRDb29raWVzIiwidXJscyIsImRlbGV0ZUNvb2tpZSIsImNvb2tpZU5hbWUiLCJ1cmwiLCJnYXJiYWdlQ29sbGVjdCIsInRpbWVvdXRNcyIsImNoZWNrUGFyYW1zIiwiZXJyIiwiQiIsInRpbWVvdXQiLCJ0aGVuIiwiZ2NTdWNjZXNzIiwiY2F0Y2giLCJnY0Vycm9yIiwiVGltZW91dEVycm9yIiwibWVzc2FnZSIsInVzZUFwcERpY3RMb2NrIiwiYWNxdWlyZSIsInNraXBwZWRBcHBzIiwiX3NraXBwZWRBcHBzIiwibmFtZSIsInRvUGFpcnMiLCJtaXhpbnMiLCJwcm90b3R5cGUiLCJldmVudCIsImV2ZW50cyJdLCJzb3VyY2VSb290IjoiLi4vLi4iLCJzb3VyY2VzIjpbImxpYi9yZW1vdGUtZGVidWdnZXIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXZlbnRFbWl0dGVyIH0gZnJvbSAnZXZlbnRzJztcbmltcG9ydCBsb2cgZnJvbSAnLi9sb2dnZXInO1xuaW1wb3J0IHsgUnBjQ2xpZW50U2ltdWxhdG9yIH0gZnJvbSAnLi9ycGMnO1xuaW1wb3J0IHsgY2hlY2tQYXJhbXMgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IG1peGlucywgZXZlbnRzIH0gZnJvbSAnLi9taXhpbnMnO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCBCIGZyb20gJ2JsdWViaXJkJztcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IEFzeW5jTG9jayBmcm9tICdhc3luYy1sb2NrJztcblxuXG5sZXQgVkVSU0lPTjtcbnRyeSB7XG4gIFZFUlNJT04gPSByZXF1aXJlKHBhdGgucmVzb2x2ZShfX2Rpcm5hbWUsICcuLicsICcuLicsICdwYWNrYWdlLmpzb24nKSkudmVyc2lvbjtcbn0gY2F0Y2ggKGlnbikge31cblxuY29uc3QgUkVNT1RFX0RFQlVHR0VSX1BPUlQgPSAyNzc1MztcbmNvbnN0IFNBRkFSSV9CVU5ETEVfSUQgPSAnY29tLmFwcGxlLm1vYmlsZXNhZmFyaSc7XG5cbi8qIEhvdyBtYW55IG1pbGxpc2Vjb25kcyB0byB3YWl0IGZvciB3ZWJraXQgdG8gcmV0dXJuIGEgcmVzcG9uc2UgYmVmb3JlIHRpbWluZyBvdXQgKi9cbmNvbnN0IFJQQ19SRVNQT05TRV9USU1FT1VUX01TID0gNTAwMDtcblxuY29uc3QgUEFHRV9SRUFEWV9USU1FT1VUID0gNTAwMDtcblxuY29uc3QgR0FSQkFHRV9DT0xMRUNUX1RJTUVPVVQgPSA1MDAwO1xuXG5cbmNsYXNzIFJlbW90ZURlYnVnZ2VyIGV4dGVuZHMgRXZlbnRFbWl0dGVyIHtcbiAgLypcbiAgICogVGhlIGNvbnN0cnVjdG9yIHRha2VzIGFuIG9wdHMgaGFzaCB3aXRoIHRoZSBmb2xsb3dpbmcgcHJvcGVydGllczpcbiAgICogICAtIGJ1bmRsZUlkIC0gaWQgb2YgdGhlIGFwcCBiZWluZyBjb25uZWN0ZWQgdG9cbiAgICogICAtIGFkZGl0aW9uYWxCdW5kbGVJZHMgLSBhcnJheSBvZiBwb3NzaWJsZSBidW5kbGUgaWRzIHRoYXQgdGhlIGluc3BlY3RvclxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdWxkIHJldHVyblxuICAgKiAgIC0gcGxhdGZvcm1WZXJzaW9uIC0gdmVyc2lvbiBvZiBpT1NcbiAgICogICAtIHVzZU5ld1NhZmFyaSAtIGZvciB3ZWIgaW5zcGVjdG9yLCB3aGV0aGVyIHRoaXMgaXMgYSBuZXcgU2FmYXJpIGluc3RhbmNlXG4gICAqICAgLSBwYWdlTG9hZE1zIC0gdGhlIHRpbWUsIGluIG1zLCB0aGF0IHNob3VsZCBiZSB3YWl0ZWQgZm9yIHBhZ2UgbG9hZGluZ1xuICAgKiAgIC0gaG9zdCAtIHRoZSByZW1vdGUgZGVidWdnZXIncyBob3N0IGFkZHJlc3NcbiAgICogICAtIHBvcnQgLSB0aGUgcmVtb3RlIGRlYnVnZ2VyIHBvcnQgdGhyb3VnaCB3aGljaCB0byBjb21tdW5pY2F0ZVxuICAgKiAgIC0gbG9nQWxsQ29tbXVuaWNhdGlvbiAtIGxvZyBwbGlzdHMgc2VudCBhbmQgcmVjZWl2ZWQgZnJvbSBXZWIgSW5zcGVjdG9yXG4gICAqICAgLSBsb2dBbGxDb21tdW5pY2F0aW9uSGV4RHVtcCAtIGxvZyBjb21tdW5pY2F0aW9uIGZyb20gV2ViIEluc3BlY3RvciBhcyBoZXggZHVtcFxuICAgKiAgIC0gc29ja2V0Q2h1bmtTaXplIC0gc2l6ZSwgaW4gYnl0ZXMsIG9mIGNodW5rcyBvZiBkYXRhIHNlbnQgdG8gV2ViIEluc3BlY3RvciAocmVhbCBkZXZpY2Ugb25seSlcbiAgICogICAtIHdlYkluc3BlY3Rvck1heEZyYW1lTGVuZ3RoIC0gVGhlIG1heGltdW0gc2l6ZSBpbiBieXRlcyBvZiBhIHNpbmdsZSBkYXRhIGZyYW1lXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBkZXZpY2UgY29tbXVuaWNhdGlvbiBwcm90b2NvbFxuICAgKi9cbiAgY29uc3RydWN0b3IgKG9wdHMgPSB7fSkge1xuICAgIHN1cGVyKCk7XG5cbiAgICBpZiAoVkVSU0lPTikge1xuICAgICAgbG9nLmluZm8oYFJlbW90ZSBEZWJ1Z2dlciB2ZXJzaW9uICR7VkVSU0lPTn1gKTtcbiAgICB9XG5cbiAgICBjb25zdCB7XG4gICAgICBidW5kbGVJZCxcbiAgICAgIGFkZGl0aW9uYWxCdW5kbGVJZHMgPSBbXSxcbiAgICAgIHBsYXRmb3JtVmVyc2lvbixcbiAgICAgIGlzU2FmYXJpID0gdHJ1ZSxcbiAgICAgIGluY2x1ZGVTYWZhcmkgPSBmYWxzZSxcbiAgICAgIHVzZU5ld1NhZmFyaSA9IGZhbHNlLFxuICAgICAgcGFnZUxvYWRNcyxcbiAgICAgIGhvc3QsXG4gICAgICBwb3J0ID0gUkVNT1RFX0RFQlVHR0VSX1BPUlQsXG4gICAgICBzb2NrZXRQYXRoLFxuICAgICAgcGFnZVJlYWR5VGltZW91dCA9IFBBR0VfUkVBRFlfVElNRU9VVCxcbiAgICAgIHJlbW90ZURlYnVnUHJveHksXG4gICAgICBnYXJiYWdlQ29sbGVjdE9uRXhlY3V0ZSA9IGZhbHNlLFxuICAgICAgbG9nRnVsbFJlc3BvbnNlID0gZmFsc2UsXG4gICAgICBsb2dBbGxDb21tdW5pY2F0aW9uID0gZmFsc2UsXG4gICAgICBsb2dBbGxDb21tdW5pY2F0aW9uSGV4RHVtcCA9IGZhbHNlLFxuICAgICAgd2ViSW5zcGVjdG9yTWF4RnJhbWVMZW5ndGgsXG4gICAgICBzb2NrZXRDaHVua1NpemUsXG4gICAgICBmdWxsUGFnZUluaXRpYWxpemF0aW9uLFxuICAgIH0gPSBvcHRzO1xuXG4gICAgdGhpcy5idW5kbGVJZCA9IGJ1bmRsZUlkO1xuICAgIHRoaXMuYWRkaXRpb25hbEJ1bmRsZUlkcyA9IGFkZGl0aW9uYWxCdW5kbGVJZHM7XG4gICAgdGhpcy5wbGF0Zm9ybVZlcnNpb24gPSBwbGF0Zm9ybVZlcnNpb247XG4gICAgdGhpcy5pc1NhZmFyaSA9IGlzU2FmYXJpO1xuICAgIHRoaXMuaW5jbHVkZVNhZmFyaSA9IGluY2x1ZGVTYWZhcmk7XG4gICAgdGhpcy51c2VOZXdTYWZhcmkgPSB1c2VOZXdTYWZhcmk7XG4gICAgdGhpcy5wYWdlTG9hZE1zID0gcGFnZUxvYWRNcztcbiAgICBsb2cuZGVidWcoYHVzZU5ld1NhZmFyaSAtLT4gJHt0aGlzLnVzZU5ld1NhZmFyaX1gKTtcblxuICAgIHRoaXMuZ2FyYmFnZUNvbGxlY3RPbkV4ZWN1dGUgPSBnYXJiYWdlQ29sbGVjdE9uRXhlY3V0ZTtcblxuICAgIHRoaXMuaG9zdCA9IGhvc3Q7XG4gICAgdGhpcy5wb3J0ID0gcG9ydDtcbiAgICB0aGlzLnNvY2tldFBhdGggPSBzb2NrZXRQYXRoO1xuICAgIHRoaXMucmVtb3RlRGVidWdQcm94eSA9IHJlbW90ZURlYnVnUHJveHk7XG4gICAgdGhpcy5wYWdlUmVhZHlUaW1lb3V0ID0gcGFnZVJlYWR5VGltZW91dDtcblxuICAgIHRoaXMubG9nQWxsQ29tbXVuaWNhdGlvbiA9IF8uaXNOaWwobG9nQWxsQ29tbXVuaWNhdGlvbikgPyAhIWxvZ0Z1bGxSZXNwb25zZSA6ICEhbG9nQWxsQ29tbXVuaWNhdGlvbjtcbiAgICB0aGlzLmxvZ0FsbENvbW11bmljYXRpb25IZXhEdW1wID0gbG9nQWxsQ29tbXVuaWNhdGlvbkhleER1bXA7XG4gICAgdGhpcy5zb2NrZXRDaHVua1NpemUgPSBzb2NrZXRDaHVua1NpemU7XG5cbiAgICBpZiAoXy5pc0ludGVnZXIod2ViSW5zcGVjdG9yTWF4RnJhbWVMZW5ndGgpKSB7XG4gICAgICB0aGlzLndlYkluc3BlY3Rvck1heEZyYW1lTGVuZ3RoID0gd2ViSW5zcGVjdG9yTWF4RnJhbWVMZW5ndGg7XG4gICAgfVxuXG4gICAgdGhpcy5mdWxsUGFnZUluaXRpYWxpemF0aW9uID0gZnVsbFBhZ2VJbml0aWFsaXphdGlvbjtcblxuICAgIHRoaXMuX2xvY2sgPSBuZXcgQXN5bmNMb2NrKCk7XG4gIH1cblxuICBzZXR1cCAoKSB7XG4gICAgLy8gYXBwIGhhbmRsaW5nIGNvbmZpZ3VyYXRpb25cbiAgICB0aGlzLmFwcERpY3QgPSB7fTtcbiAgICB0aGlzLmFwcElkS2V5ID0gbnVsbDtcbiAgICB0aGlzLnBhZ2VJZEtleSA9IG51bGw7XG4gICAgdGhpcy5wYWdlTG9hZGluZyA9IGZhbHNlO1xuICAgIHRoaXMuX25hdmlnYXRpbmdUb1BhZ2UgPSBmYWxzZTtcbiAgICB0aGlzLmFsbG93TmF2aWdhdGlvbldpdGhvdXRSZWxvYWQgPSBmYWxzZTtcblxuICAgIHRoaXMucnBjQ2xpZW50ID0gbnVsbDtcbiAgICB0aGlzLl9jbGllbnRFdmVudExpc3RlbmVycyA9IHt9O1xuICB9XG5cbiAgdGVhcmRvd24gKCkge1xuICAgIGxvZy5kZWJ1ZygnQ2xlYW5pbmcgdXAgbGlzdGVuZXJzJyk7XG5cbiAgICB0aGlzLmFwcERpY3QgPSB7fTtcbiAgICB0aGlzLmFwcElkS2V5ID0gbnVsbDtcbiAgICB0aGlzLnBhZ2VJZEtleSA9IG51bGw7XG4gICAgdGhpcy5wYWdlTG9hZGluZyA9IGZhbHNlO1xuXG4gICAgdGhpcy5ycGNDbGllbnQgPSBudWxsO1xuXG4gICAgdGhpcy5yZW1vdmVBbGxMaXN0ZW5lcnMoUmVtb3RlRGVidWdnZXIuRVZFTlRfUEFHRV9DSEFOR0UpO1xuICAgIHRoaXMucmVtb3ZlQWxsTGlzdGVuZXJzKFJlbW90ZURlYnVnZ2VyLkVWRU5UX0RJU0NPTk5FQ1QpO1xuICB9XG5cbiAgaW5pdFJwY0NsaWVudCAoKSB7XG4gICAgdGhpcy5ycGNDbGllbnQgPSBuZXcgUnBjQ2xpZW50U2ltdWxhdG9yKHtcbiAgICAgIGJ1bmRsZUlkOiB0aGlzLmJ1bmRsZUlkLFxuICAgICAgcGxhdGZvcm1WZXJzaW9uOiB0aGlzLnBsYXRmb3JtVmVyc2lvbixcbiAgICAgIGlzU2FmYXJpOiB0aGlzLmlzU2FmYXJpLFxuICAgICAgaG9zdDogdGhpcy5ob3N0LFxuICAgICAgcG9ydDogdGhpcy5wb3J0LFxuICAgICAgc29ja2V0UGF0aDogdGhpcy5zb2NrZXRQYXRoLFxuICAgICAgbWVzc2FnZVByb3h5OiB0aGlzLnJlbW90ZURlYnVnUHJveHksXG4gICAgICBsb2dBbGxDb21tdW5pY2F0aW9uOiB0aGlzLmxvZ0FsbENvbW11bmljYXRpb24sXG4gICAgICBsb2dBbGxDb21tdW5pY2F0aW9uSGV4RHVtcDogdGhpcy5sb2dBbGxDb21tdW5pY2F0aW9uSGV4RHVtcCxcbiAgICAgIGZ1bGxQYWdlSW5pdGlhbGl6YXRpb246IHRoaXMuZnVsbFBhZ2VJbml0aWFsaXphdGlvbixcbiAgICAgIHdlYkluc3BlY3Rvck1heEZyYW1lTGVuZ3RoOiB0aGlzLndlYkluc3BlY3Rvck1heEZyYW1lTGVuZ3RoLFxuICAgIH0pO1xuICB9XG5cbiAgZ2V0IGlzQ29ubmVjdGVkICgpIHtcbiAgICByZXR1cm4gISF0aGlzLnJwY0NsaWVudD8uaXNDb25uZWN0ZWQ7XG4gIH1cblxuICBhc3luYyBsYXVuY2hTYWZhcmkgKCkge1xuICAgIGF3YWl0IHRoaXMucnBjQ2xpZW50LnNlbmQoJ2xhdW5jaEFwcGxpY2F0aW9uJywge1xuICAgICAgYnVuZGxlSWQ6IFNBRkFSSV9CVU5ETEVfSURcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIHN0YXJ0VGltZWxpbmUgKGZuKSB7XG4gICAgbG9nLmRlYnVnKCdTdGFydGluZyB0byByZWNvcmQgdGhlIHRpbWVsaW5lJyk7XG4gICAgdGhpcy5ycGNDbGllbnQub24oJ1RpbWVsaW5lLmV2ZW50UmVjb3JkZWQnLCBmbik7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMucnBjQ2xpZW50LnNlbmQoJ3N0YXJ0VGltZWxpbmUnLCB7XG4gICAgICBhcHBJZEtleTogdGhpcy5hcHBJZEtleSxcbiAgICAgIHBhZ2VJZEtleTogdGhpcy5wYWdlSWRLZXksXG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBzdG9wVGltZWxpbmUgKCkge1xuICAgIGxvZy5kZWJ1ZygnU3RvcHBpbmcgdG8gcmVjb3JkIHRoZSB0aW1lbGluZScpO1xuICAgIGF3YWl0IHRoaXMucnBjQ2xpZW50LnNlbmQoJ1RpbWVsaW5lLnN0b3AnLCB7XG4gICAgICBhcHBJZEtleTogdGhpcy5hcHBJZEtleSxcbiAgICAgIHBhZ2VJZEtleTogdGhpcy5wYWdlSWRLZXksXG4gICAgfSk7XG4gIH1cblxuICAvKlxuICAgKiBLZWVwIHRyYWNrIG9mIHRoZSBjbGllbnQgZXZlbnQgbGlzdGVuZXJzIHNvIHRoZXkgY2FuIGJlIHJlbW92ZWRcbiAgICovXG4gIGFkZENsaWVudEV2ZW50TGlzdGVuZXIgKGV2ZW50TmFtZSwgbGlzdGVuZXIpIHtcbiAgICB0aGlzLl9jbGllbnRFdmVudExpc3RlbmVyc1tldmVudE5hbWVdID0gdGhpcy5fY2xpZW50RXZlbnRMaXN0ZW5lcnNbZXZlbnROYW1lXSB8fCBbXTtcbiAgICB0aGlzLl9jbGllbnRFdmVudExpc3RlbmVyc1tldmVudE5hbWVdLnB1c2gobGlzdGVuZXIpO1xuICAgIHRoaXMucnBjQ2xpZW50Lm9uKGV2ZW50TmFtZSwgbGlzdGVuZXIpO1xuICB9XG5cbiAgcmVtb3ZlQ2xpZW50RXZlbnRMaXN0ZW5lciAoZXZlbnROYW1lKSB7XG4gICAgZm9yIChjb25zdCBsaXN0ZW5lciBvZiAodGhpcy5fY2xpZW50RXZlbnRMaXN0ZW5lcnNbZXZlbnROYW1lXSB8fCBbXSkpIHtcbiAgICAgIHRoaXMucnBjQ2xpZW50Lm9mZihldmVudE5hbWUsIGxpc3RlbmVyKTtcbiAgICB9XG4gIH1cblxuICBzdGFydENvbnNvbGUgKGxpc3RlbmVyKSB7XG4gICAgbG9nLmRlYnVnKCdTdGFydGluZyB0byBsaXN0ZW4gZm9yIEphdmFTY3JpcHQgY29uc29sZScpO1xuICAgIHRoaXMuYWRkQ2xpZW50RXZlbnRMaXN0ZW5lcignQ29uc29sZS5tZXNzYWdlQWRkZWQnLCBsaXN0ZW5lcik7XG4gICAgdGhpcy5hZGRDbGllbnRFdmVudExpc3RlbmVyKCdDb25zb2xlLm1lc3NhZ2VSZXBlYXRDb3VudFVwZGF0ZWQnLCBsaXN0ZW5lcik7XG4gIH1cblxuICBzdG9wQ29uc29sZSAoKSB7XG4gICAgbG9nLmRlYnVnKCdTdG9wcGluZyB0byBsaXN0ZW4gZm9yIEphdmFTY3JpcHQgY29uc29sZScpO1xuICAgIHRoaXMucmVtb3ZlQ2xpZW50RXZlbnRMaXN0ZW5lcignQ29uc29sZS5tZXNzYWdlQWRkZWQnKTtcbiAgICB0aGlzLnJlbW92ZUNsaWVudEV2ZW50TGlzdGVuZXIoJ0NvbnNvbGUubWVzc2FnZVJlcGVhdENvdW50VXBkYXRlZCcpO1xuICB9XG5cbiAgc3RhcnROZXR3b3JrIChsaXN0ZW5lcikge1xuICAgIGxvZy5kZWJ1ZygnU3RhcnRpbmcgdG8gbGlzdGVuIGZvciBuZXR3b3JrIGV2ZW50cycpO1xuICAgIHRoaXMuYWRkQ2xpZW50RXZlbnRMaXN0ZW5lcignTmV0d29ya0V2ZW50JywgbGlzdGVuZXIpO1xuICB9XG5cbiAgc3RvcE5ldHdvcmsgKCkge1xuICAgIGxvZy5kZWJ1ZygnU3RvcHBpbmcgdG8gbGlzdGVuIGZvciBuZXR3b3JrIGV2ZW50cycpO1xuICAgIHRoaXMucmVtb3ZlQ2xpZW50RXZlbnRMaXN0ZW5lcignTmV0d29ya0V2ZW50Jyk7XG4gIH1cblxuICBzZXQgYWxsb3dOYXZpZ2F0aW9uV2l0aG91dFJlbG9hZCAoYWxsb3cpIHtcbiAgICB0aGlzLl9hbGxvd05hdmlnYXRpb25XaXRob3V0UmVsb2FkID0gYWxsb3c7XG4gIH1cblxuICBnZXQgYWxsb3dOYXZpZ2F0aW9uV2l0aG91dFJlbG9hZCAoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2FsbG93TmF2aWdhdGlvbldpdGhvdXRSZWxvYWQ7XG4gIH1cblxuICBhc3luYyBnZXRDb29raWVzICh1cmxzKSB7XG4gICAgbG9nLmRlYnVnKCdHZXR0aW5nIGNvb2tpZXMnKTtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5ycGNDbGllbnQuc2VuZCgnUGFnZS5nZXRDb29raWVzJywge1xuICAgICAgYXBwSWRLZXk6IHRoaXMuYXBwSWRLZXksXG4gICAgICBwYWdlSWRLZXk6IHRoaXMucGFnZUlkS2V5LFxuICAgICAgdXJscyxcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIGRlbGV0ZUNvb2tpZSAoY29va2llTmFtZSwgdXJsKSB7XG4gICAgbG9nLmRlYnVnKGBEZWxldGluZyBjb29raWUgJyR7Y29va2llTmFtZX0nIG9uICcke3VybH0nYCk7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMucnBjQ2xpZW50LnNlbmQoJ1BhZ2UuZGVsZXRlQ29va2llJywge1xuICAgICAgYXBwSWRLZXk6IHRoaXMuYXBwSWRLZXksXG4gICAgICBwYWdlSWRLZXk6IHRoaXMucGFnZUlkS2V5LFxuICAgICAgY29va2llTmFtZSxcbiAgICAgIHVybCxcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIGdhcmJhZ2VDb2xsZWN0ICh0aW1lb3V0TXMgPSBHQVJCQUdFX0NPTExFQ1RfVElNRU9VVCkge1xuICAgIGxvZy5kZWJ1ZyhgR2FyYmFnZSBjb2xsZWN0aW5nIHdpdGggJHt0aW1lb3V0TXN9bXMgdGltZW91dGApO1xuICAgIHRyeSB7XG4gICAgICBjaGVja1BhcmFtcyh7YXBwSWRLZXk6IHRoaXMuYXBwSWRLZXksIHBhZ2VJZEtleTogdGhpcy5wYWdlSWRLZXl9KTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGxvZy5kZWJ1ZyhgVW5hYmxlIHRvIGNvbGxlY3QgZ2FyYmFnZSBhdCB0aGlzIHRpbWVgKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBhd2FpdCBCLnJlc29sdmUodGhpcy5ycGNDbGllbnQuc2VuZCgnSGVhcC5nYycsIHtcbiAgICAgIGFwcElkS2V5OiB0aGlzLmFwcElkS2V5LFxuICAgICAgcGFnZUlkS2V5OiB0aGlzLnBhZ2VJZEtleSxcbiAgICB9KSkudGltZW91dCh0aW1lb3V0TXMpXG4gICAgLnRoZW4oZnVuY3Rpb24gZ2NTdWNjZXNzICgpIHsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBwcm9taXNlL3ByZWZlci1hd2FpdC10by10aGVuXG4gICAgICBsb2cuZGVidWcoYEdhcmJhZ2UgY29sbGVjdGlvbiBzdWNjZXNzZnVsYCk7XG4gICAgfSkuY2F0Y2goZnVuY3Rpb24gZ2NFcnJvciAoZXJyKSB7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgcHJvbWlzZS9wcmVmZXItYXdhaXQtdG8tY2FsbGJhY2tzXG4gICAgICBpZiAoZXJyIGluc3RhbmNlb2YgQi5UaW1lb3V0RXJyb3IpIHtcbiAgICAgICAgbG9nLmRlYnVnKGBHYXJiYWdlIGNvbGxlY3Rpb24gdGltZWQgb3V0IGFmdGVyICR7dGltZW91dE1zfW1zYCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBsb2cuZGVidWcoYFVuYWJsZSB0byBjb2xsZWN0IGdhcmJhZ2U6ICR7ZXJyLm1lc3NhZ2V9YCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBhc3luYyB1c2VBcHBEaWN0TG9jayAoZm4pIHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5fbG9jay5hY3F1aXJlKCdhcHBEaWN0JywgZm4pO1xuICB9XG5cbiAgZ2V0IHNraXBwZWRBcHBzICgpIHtcbiAgICByZXR1cm4gdGhpcy5fc2tpcHBlZEFwcHMgfHwgW107XG4gIH1cbn1cblxuZm9yIChjb25zdCBbbmFtZSwgZm5dIG9mIF8udG9QYWlycyhtaXhpbnMpKSB7XG4gIFJlbW90ZURlYnVnZ2VyLnByb3RvdHlwZVtuYW1lXSA9IGZuO1xufVxuXG5mb3IgKGNvbnN0IFtuYW1lLCBldmVudF0gb2YgXy50b1BhaXJzKGV2ZW50cykpIHtcbiAgUmVtb3RlRGVidWdnZXJbbmFtZV0gPSBldmVudDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgUmVtb3RlRGVidWdnZXI7XG5leHBvcnQge1xuICBSZW1vdGVEZWJ1Z2dlciwgUkVNT1RFX0RFQlVHR0VSX1BPUlQsIFJQQ19SRVNQT05TRV9USU1FT1VUX01TLFxufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFHQSxJQUFJQSxPQUFKOztBQUNBLElBQUk7RUFDRkEsT0FBTyxHQUFHQyxPQUFPLENBQUNDLGFBQUEsQ0FBS0MsT0FBTCxDQUFhQyxTQUFiLEVBQXdCLElBQXhCLEVBQThCLElBQTlCLEVBQW9DLGNBQXBDLENBQUQsQ0FBUCxDQUE2REMsT0FBdkU7QUFDRCxDQUZELENBRUUsT0FBT0MsR0FBUCxFQUFZLENBQUU7O0FBRWhCLE1BQU1DLG9CQUFvQixHQUFHLEtBQTdCOztBQUNBLE1BQU1DLGdCQUFnQixHQUFHLHdCQUF6QjtBQUdBLE1BQU1DLHVCQUF1QixHQUFHLElBQWhDOztBQUVBLE1BQU1DLGtCQUFrQixHQUFHLElBQTNCO0FBRUEsTUFBTUMsdUJBQXVC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