@vonage/server-sdk
Advanced tools
Comparing version 2.10.5-beta to 2.10.5-beta-2
@@ -19,3 +19,6 @@ "use strict"; | ||
var isValidUrl = s => { | ||
if (!s || s === null) return false; | ||
try { | ||
if (s === "api.nexmo.com") return s; | ||
var o = new URL(s); | ||
@@ -439,2 +442,2 @@ return o.host; | ||
module.exports = exports.default; | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9IdHRwQ2xpZW50LmpzIl0sIm5hbWVzIjpbImh0dHBzIiwicmVxdWlyZSIsImh0dHAiLCJyZXF1ZXN0IiwicXVlcnlzdHJpbmciLCJVUkwiLCJpc1ZhbGlkVXJsIiwicyIsIm8iLCJob3N0IiwiZXJyIiwiSHR0cENsaWVudCIsImNvbnN0cnVjdG9yIiwib3B0aW9ucyIsImNyZWRlbnRpYWxzIiwiaG9zdE92ZXJyaWRlIiwicG9ydCIsImhlYWRlcnMiLCJBY2NlcHQiLCJsb2dnZXIiLCJ0aW1lb3V0IiwicmVxdWVzdExpYiIsInVzZXJBZ2VudCIsImVuZHBvaW50IiwibWV0aG9kIiwiY2FsbGJhY2siLCJza2lwSnNvblBhcnNpbmciLCJjdXN0b21SZXNwb25zZVBhcnNlciIsInBhdGgiLCJPYmplY3QiLCJhc3NpZ24iLCJ1bmRlZmluZWQiLCJrZXlzIiwiZm9yRWFjaCIsImtleSIsInNpZ25hdHVyZVNlY3JldCIsInNpZ25hdHVyZU1ldGhvZCIsInNwbGl0UGF0aCIsInNwbGl0IiwicGFyYW1zIiwiZGVjb2RlIiwidGltZXN0YW1wIiwiRGF0ZSIsImdldFRpbWUiLCJ0b1N0cmluZyIsImFwaV9zZWNyZXQiLCJoYXNoIiwiZ2VuZXJhdGVTaWduYXR1cmUiLCJxdWVyeSIsInNvcnQiLCJlbmNvZGVVUkkiLCJyZXBsYWNlIiwiaW5mbyIsImJvZHkiLCJlbmQiLCJyZXNwb25zZURhdGEiLCJvbiIsInJlc3BvbnNlIiwiaXNCaW5hcnkiLCJzZXRFbmNvZGluZyIsImNodW5rIiwicHVzaCIsInN0YXR1c0NvZGUiLCJCdWZmZXIiLCJjb25jYXQiLCJfX3BhcnNlUmVzcG9uc2UiLCJlIiwiZXJyb3IiLCJodHRwUmVzcG9uc2UiLCJkYXRhIiwiaXNBcnJheU9yQnVmZmVyIiwiQXJyYXkiLCJFcnJvciIsInN0YXR1cyIsIm1lc3NhZ2UiLCJyZXRyeUFmdGVyTWlsbGlzIiwiam9pbiIsIkpTT04iLCJwYXJzZSIsInBhcnNlRXJyb3IiLCJfYWRkTGltaXRlZEFjY2Vzc01lc3NhZ2VUb0Vycm9ycyIsImxpbWl0ZWRBY2Nlc3NTdGF0dXMiLCJfSU5GT18iLCJnZXQiLCJ1c2VKd3QiLCJ1c2VCYXNpY0F1dGgiLCJhcGlLZXkiLCJhcGlTZWNyZXQiLCJzdHJpbmdpZnkiLCJnZW5lcmF0ZUp3dCIsImZyb20iLCJkZWxldGUiLCJwb3N0RmlsZSIsInFzIiwibGVuZ3RoIiwiam9pbkNoYXIiLCJpbmRleE9mIiwiZmlsZSIsImZvcm1EYXRhIiwidmFsdWUiLCJmaWxlbmFtZSIsInVybCIsInByb3RvY29sIiwicG9zdCIsIkF1dGhvcml6YXRpb24iLCJlbmNvZGVkUGFyYW1zIiwicG9zdEpzb24iLCJwb3N0VXNlUXVlcnlTdHJpbmciXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSxJQUFJQSxLQUFLLEdBQUdDLE9BQU8sQ0FBQyxPQUFELENBQW5COztBQUNBLElBQUlDLElBQUksR0FBR0QsT0FBTyxDQUFDLE1BQUQsQ0FBbEI7O0FBQ0EsSUFBSUUsT0FBTyxHQUFHRixPQUFPLENBQUMsU0FBRCxDQUFyQjs7QUFDQSxJQUFJRyxXQUFXLEdBQUdILE9BQU8sQ0FBQyxhQUFELENBQXpCOztBQUNBLElBQUlJLEdBQUcsR0FBR0osT0FBTyxDQUFDLEtBQUQsQ0FBUCxDQUFlSSxHQUF6Qjs7QUFFQSxJQUFNQyxVQUFVLEdBQUdDLENBQUMsSUFBSTtBQUN0QixNQUFJO0FBQ0YsUUFBSUMsQ0FBQyxHQUFHLElBQUlILEdBQUosQ0FBUUUsQ0FBUixDQUFSO0FBQ0EsV0FBT0MsQ0FBQyxDQUFDQyxJQUFUO0FBQ0QsR0FIRCxDQUdFLE9BQU9DLEdBQVAsRUFBWTtBQUNaLFdBQU8sS0FBUDtBQUNEO0FBQ0YsQ0FQRDs7QUFTQSxNQUFNQyxVQUFOLENBQWlCO0FBQ2ZDLEVBQUFBLFdBQVcsQ0FBQ0MsT0FBRCxFQUFVQyxXQUFWLEVBQXVCO0FBQ2hDLFFBQUlDLFlBQVksR0FBR1QsVUFBVSxDQUFDTyxPQUFPLENBQUNKLElBQVQsQ0FBN0I7QUFDQSxTQUFLSyxXQUFMLEdBQW1CQSxXQUFuQjtB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QUtFSCxRQUxGO0FBT0Q7O0FBN2JjOztlQWdjRmQsVSIsInNvdXJjZXNDb250ZW50IjpbInZhciBodHRwcyA9IHJlcXVpcmUoXCJodHRwc1wiKTtcbnZhciBodHRwID0gcmVxdWlyZShcImh0dHBcIik7XG52YXIgcmVxdWVzdCA9IHJlcXVpcmUoXCJyZXF1ZXN0XCIpO1xudmFyIHF1ZXJ5c3RyaW5nID0gcmVxdWlyZShcInF1ZXJ5c3RyaW5nXCIpO1xudmFyIFVSTCA9IHJlcXVpcmUoXCJ1cmxcIikuVVJMO1xuXG5jb25zdCBpc1ZhbGlkVXJsID0gcyA9PiB7XG4gIHRyeSB7XG4gICAgbGV0IG8gPSBuZXcgVVJMKHMpO1xuICAgIHJldHVybiBvLmhvc3Q7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufTtcblxuY2xhc3MgSHR0cENsaWVudCB7XG4gIGNvbnN0cnVjdG9yKG9wdGlvbnMsIGNyZWRlbnRpYWxzKSB7XG4gICAgbGV0IGhvc3RPdmVycmlkZSA9IGlzVmFsaWRVcmwob3B0aW9ucy5ob3N0KTtcbiAgICB0aGlzLmNyZWRlbnRpYWxzID0gY3JlZGVudGlhbHM7XG4gICAgdGhpcy5ob3N0ID0gaG9zdE92ZXJyaWRlID8gaG9zdE92ZXJyaWRlIDogYHJlc3QubmV4bW8uY29tYDtcbiAgICB0aGlzLnBvcnQgPSBvcHRpb25zLnBvcnQgfHwgNDQzO1xuICAgIHRoaXMuaHR0cHMgPSBvcHRpb25zLmh0dHBzIHx8IGh0dHBzO1xuICAgIHRoaXMuaHR0cCA9IG9wdGlvbnMuaHR0cCB8fCBodHRwO1xuICAgIHRoaXMuaGVhZGVycyA9IHtcbiAgICAgIFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkXCIsXG4gICAgICBBY2NlcHQ6IFwiYXBwbGljYXRpb24vanNvblwiXG4gICAgfTtcbiAgICB0aGlzLmxvZ2dlciA9IG9wdGlvbnMubG9nZ2VyO1xuICAgIHRoaXMudGltZW91dCA9IG9wdGlvbnMudGltZW91dDtcbiAgICB0aGlzLnJlcXVlc3RMaWIgPSByZXF1ZXN0O1xuXG4gICAgaWYgKG9wdGlvbnMudXNlckFnZW50KSB7XG4gICAgICB0aGlzLmhlYWRlcnNbXCJVc2VyLUFnZW50XCJdID0gb3B0aW9ucy51c2VyQWdlbnQ7XG4gICAgfVxuICB9XG5cbiAgcmVxdWVzdChcbiAgICBlbmRwb2ludCxcbiAgICBtZXRob2QsXG4gICAgY2FsbGJhY2ssXG4gICAgc2tpcEpzb25QYXJzaW5nID0gZmFsc2UsXG4gICAgY3VzdG9tUmVzcG9uc2VQYXJzZXJcbiAgKSB7XG4gICAgaWYgKHR5cGVvZiBtZXRob2QgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgY2FsbGJhY2sgPSBtZXRob2Q7XG4gICAgICBlbmRwb2ludC5tZXRob2QgPSBlbmRwb2ludC5tZXRob2QgfHwgXCJHRVRcIjtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBtZXRob2QgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgIGVuZHBvaW50Lm1ldGhvZCA9IG1ldGhvZDtcbiAgICB9XG5cbiAgICBpZiAoZW5kcG9pbnQubWV0aG9kID09PSBcIlBPU1RcIiB8fCBlbmRwb2ludC5tZXRob2QgPT09IFwiREVMRVRFXCIpIHtcbiAgICAgIC8vIFRPRE86IHZlcmlmeSB0aGUgZm9sbG93aW5nIGZpeCBpcyByZXF1aXJlZFxuICAgICAgLy8gRml4IGJyb2tlbiBkdWUgb3QgNDExIENvbnRlbnQtTGVuZ3RoIGVycm9yIG5vdyBzZW50IGJ5IFZvbmFnZSBBUElcbiAgICAgIC8vIFBMIDIwMTYtU2VwdC02IC0gY29tbWVudGVkIG91dCBDb250ZW50LUxlbmd0aCAwXG4gICAgICAvLyBoZWFkZXJzWydDb250ZW50LUxlbmd0aCddID0gMDtcbiAgICB9XG4gICAgdmFyIG9wdGlvbnMgPSB7XG4gICAgICBob3N0OiBlbmRwb2ludC5ob3N0ID8gZW5kcG9pbnQuaG9zdCA6IHRoaXMuaG9zdCxcbiAgICAgIHBvcnQ6IHRoaXMucG9ydCxcbiAgICAgIHBhdGg6IGVuZHBvaW50LnBhdGgsXG4gICAgICBtZXRob2Q6IGVuZHBvaW50Lm1ldGhvZCxcbiAgICAgIGhlYWRlcnM6IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuaGVhZGVycylcbiAgICB9O1xuXG4gICAgaWYgKHRoaXMudGltZW91dCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBvcHRpb25zLnRpbWVvdXQgPSB0aGlzLnRpbWVvdXQ7XG4gICAgfVxuXG4gICAgLy8gQWxsb3cgZXhpc3RpbmcgaGVhZGVycyB0byBiZSBvdmVycmlkZGVuXG4gICAgLy8gQWxsb3cgbmV3IGhlYWRlcnMgdG8gYmUgYWRkZWRcbiAgICBpZiAoZW5kcG9pbnQuaGVhZGVycykge1xuICAgICAgT2JqZWN0LmtleXMoZW5kcG9pbnQuaGVhZGVycykuZm9yRWFjaChmdW5jdGlvbihrZXkpIHtcbiAgICAgICAgb3B0aW9ucy5oZWFkZXJzW2tleV0gPSBlbmRwb2ludC5oZWFkZXJzW2tleV07XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5jcmVkZW50aWFscy5zaWduYXR1cmVTZWNyZXQgJiYgdGhpcy5jcmVkZW50aWFscy5zaWduYXR1cmVNZXRob2QpIHtcbiAgICAgIGNvbnN0IHNwbGl0UGF0aCA9IG9wdGlvbnMucGF0aC5zcGxpdCgvXFw/KC4rKS8pO1xuICAgICAgY29uc3QgcGF0aCA9IHNwbGl0UGF0aFswXTtcblxuICAgICAgdmFyIHBhcmFtcyA9IHF1ZXJ5c3RyaW5nLmRlY29kZShzcGxpdFBhdGhbMV0pO1xuXG4gICAgICAvLyBhZGQgdGltZXN0YW1wIGlmIG5vdCBhbHJlYWR5IHByZXNlbnRcbiAgICAgIGlmICghcGFyYW1zLnRpbWVzdGFtcCkge1xuICAgICAgICBwYXJhbXMudGltZXN0YW1wID0gKG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCkgfCAwOyAvLyBmbG9vciB0byBzZWNvbmRzXG4gICAgICAgIHBhcmFtcy50aW1lc3RhbXAgPSBwYXJhbXMudGltZXN0YW1wLnRvU3RyaW5nKCk7XG4gICAgICB9XG5cbiAgICAgIC8vIHN0cmlwIEFQSSBTZWNyZXRcbiAgICAgIGRlbGV0ZSBwYXJhbXMuYXBpX3NlY3JldDtcblxuICAgICAgY29uc3QgaGFzaCA9IHRoaXMuY3JlZGVudGlhbHMuZ2VuZXJhdGVTaWduYXR1cmUocGFyYW1zKTtcblxuICAgICAgdmFyIHF1ZXJ5ID0gXCJcIjtcblxuICAgICAgLy8gcmVidWlsZCBxdWVyeVxuICAgICAgT2JqZWN0LmtleXMocGFyYW1zKVxuICAgICAgICAuc29ydCgpXG4gICAgICAgIC5mb3JFYWNoKGtleSA9PiB7XG4gICAgICAgICAgcXVlcnkgKz0gXCImXCIgKyBrZXkgKyBcIj1cIiArIGVuY29kZVVSSShwYXJhbXNba2V5XSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAvLyByZXBsYWNlIHRoZSBmaXJzdCAmIHdpdGggP1xuICAgICAgcXVlcnkgPSBxdWVyeS5yZXBsYWNlKC8mL2ksIFwiP1wiKTtcblxuICAgICAgb3B0aW9ucy5wYXRoID0gYCR7cGF0aH0ke3F1ZXJ5fSZzaWc9JHtoYXNofWA7XG4gICAgfVxuXG4gICAgdGhpcy5sb2dnZXIuaW5mbyhcIlJlcXVlc3Q6XCIsIG9wdGlvbnMsIFwiXFxuQm9keTpcIiwgZW5kcG9pbnQuYm9keSk7XG4gICAgdmFyIHJlcXVlc3Q7XG5cbiAgICBpZiAob3B0aW9ucy5wb3J0ID09PSA0NDMpIHtcbiAgICAgIHJlcXVlc3QgPSB0aGlzLmh0dHBzLnJlcXVlc3Qob3B0aW9ucyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlcXVlc3QgPSB0aGlzLmh0dHAucmVxdWVzdChvcHRpb25zKTtcbiAgICB9XG5cbiAgICByZXF1ZXN0LmVuZChlbmRwb2ludC5ib2R5KTtcblxuICAgIC8vIEtlZXAgYW4gYXJyYXkgb2YgU3RyaW5nIG9yIEJ1ZmZlcnMsXG4gICAgLy8gZGVwZW5kaW5nIG9uIGNvbnRlbnQgdHlwZSAoYmluYXJ5IG9yIEpTT04pIG9mIHJlc3BvbnNlXG4gICAgdmFyIHJlc3BvbnNlRGF0YSA9IFtdO1xuXG4gICAgcmVxdWVzdC5vbihcInJlc3BvbnNlXCIsIHJlc3BvbnNlID0+IHtcbiAgICAgIHZhciBpc0JpbmFyeSA9XG4gICAgICAgIHJlc3BvbnNlLmhlYWRlcnNbXCJjb250ZW50LXR5cGVcIl0gPT09IFwiYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtXCI7XG4gICAgICBpZiAoIWlzQmluYXJ5KSB7XG4gICAgICAgIHJlc3BvbnNlLnNldEVuY29kaW5nKFwidXRmOFwiKTtcbiAgICAgIH1cblxuICAgICAgcmVzcG9uc2Uub24oXCJkYXRhXCIsIGNodW5rID0+IHtcbiAgICAgICAgcmVzcG9uc2VEYXRhLnB1c2goY2h1bmspO1xuICAgICAgfSk7XG5cbiAgICAgIHJlc3BvbnNlLm9uKFwiZW5kXCIsICgpID0+IHtcbiAgICAgICAgdGhpcy5sb2dnZXIuaW5mbyhcInJlc3BvbnNlIGVuZGVkOlwiLCByZXNwb25zZS5zdGF0dXNDb2RlKTtcbiAgICAgICAgaWYgKGNhbGxiYWNrKSB7XG4gICAgICAgICAgaWYgKGlzQmluYXJ5KSB7XG4gICAgICAgICAgICByZXNwb25zZURhdGEgPSBCdWZmZXIuY29uY2F0KHJlc3BvbnNlRGF0YSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdGhpcy5fX3BhcnNlUmVzcG9uc2UoXG4gICAgICAgICAgICByZXNwb25zZSxcbiAgICAgICAgICAgIHJlc3BvbnNlRGF0YSxcbiAgICAgICAgICAgIGVuZHBvaW50Lm1ldGhvZCxcbiAgICAgICAgICAgIGNhbGxiYWNrLFxuICAgICAgICAgICAgc2tpcEpzb25QYXJzaW5nLFxuICAgICAgICAgICAgY3VzdG9tUmVzcG9uc2VQYXJzZXJcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHJlc3BvbnNlLm9uKFwiY2xvc2VcIiwgZSA9PiB7XG4gICAgICAgIGlmIChlKSB7XG4gICAgICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoXG4gICAgICAgICAgICBcInByb2JsZW0gd2l0aCBBUEkgcmVxdWVzdCBkZXRhaWxlZCBzdGFja3RyYWNlIGJlbG93IFwiXG4gICAgICAgICAgKTtcbiAgICAgICAgICB0aGlzLmxvZ2dlci5lcnJvcihlKTtcbiAgICAgICAgICBjYWxsYmFjayhlKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gICAgcmVxdWVzdC5vbihcImVycm9yXCIsIGUgPT4ge1xuICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoXCJwcm9ibGVtIHdpdGggQVBJIHJlcXVlc3QgZGV0YWlsZWQgc3RhY2t0cmFjZSBiZWxvdyBcIik7XG4gICAgICB0aGlzLmxvZ2dlci5lcnJvcihlKTtcbiAgICAgIGNhbGxiYWNrKGUpO1xuICAgIH0pO1xuICB9XG5cbiAgX19wYXJzZVJlc3BvbnNlKFxuICAgIGh0dHBSZXNwb25zZSxcbiAgICBkYXRhLFxuICAgIG1ldGhvZCxcbiAgICBjYWxsYmFjayxcbiAgICBza2lwSnNvblBhcnNpbmcsXG4gICAgY3VzdG9tUmVzcG9uc2VQYXJzZXJcbiAgKSB7XG4gICAgY29uc3QgaXNBcnJheU9yQnVmZmVyID0gZGF0YSBpbnN0YW5jZW9mIEFycmF5IHx8IGRhdGEgaW5zdGFuY2VvZiBCdWZmZXI7XG4gICAgaWYgKCFpc0FycmF5T3JCdWZmZXIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcImRhdGEgc2hvdWxkIGJlIG9mIHR5cGUgQXJyYXkgb3IgQnVmZmVyXCIpO1xuICAgIH1cblxuICAgIGNvbnN0IHN0YXR1cyA9IGh0dHBSZXNwb25zZS5zdGF0dXNDb2RlO1xuICAgIGNvbnN0IGhlYWRlcnMgPSBodHRwUmVzcG9uc2UuaGVhZGVycztcblxuICAgIGxldCByZXNwb25zZSA9IG51bGw7XG4gICAgdmFyIGVycm9yID0gbnVsbDtcblxuICAgIHRyeSB7XG4gICAgICBpZiAoc3RhdHVzID49IDUwMCkge1xuICAgICAgICBlcnJvciA9IHtcbiAgICAgICAgICBtZXNzYWdlOiBcIlNlcnZlciBFcnJvclwiLFxuICAgICAgICAgIHN0YXR1c0NvZGU6IHN0YXR1c1xuICAgICAgICB9O1xuICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgaHR0cFJlc3BvbnNlLmhlYWRlcnNbXCJjb250ZW50LXR5cGVcIl0gPT09IFwiYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtXCJcbiAgICAgICkge1xuICAgICAgICByZXNwb25zZSA9IGRhdGE7XG4gICAgICB9IGVsc2UgaWYgKHN0YXR1cyA9PT0gNDI5KSB7XG4gICAgICAgIC8vIDQyOSBkb2VzIG5vdCByZXR1cm4gYSBwYXJzYWJsZSBib2R5XG4gICAgICAgIGlmICghaGVhZGVyc1tcInJldHJ5LWFmdGVyXCJdKSB7XG4gICAgICAgICAgLy8gcmV0cnkgYmFzZWQgb24gYWxsb3dlZCBwZXIgc2Vjb25kXG4gICAgICAgICAgY29uc3QgcmV0cnlBZnRlck1pbGxpcyA9IG1ldGhvZCA9PT0gXCJQT1NUXCIgPyAxMDAwIC8gMiA6IDEwMDAgLyA1O1xuICAgICAgICAgIGhlYWRlcnNbXCJyZXRyeS1hZnRlclwiXSA9IHJldHJ5QWZ0ZXJNaWxsaXM7XG4gICAgICAgIH1cbiAgICAgICAgZXJyb3IgPSB7XG4gICAgICAgICAgYm9keTogZGF0YS5qb2luKFwiXCIpXG4gICAgICAgIH07XG4gICAgICB9IGVsc2UgaWYgKHN0YXR1cyA9PT0gMjA0KSB7XG4gICAgICAgIHJlc3BvbnNlID0gbnVsbDtcbiAgICAgIH0gZWxzZSBpZiAoc3RhdHVzID49IDQwMCB8fCBzdGF0dXMgPCAyMDApIHtcbiAgICAgICAgZXJyb3IgPSB7XG4gICAgICAgICAgYm9keTogSlNPTi5wYXJzZShkYXRhLmpvaW4oXCJcIikpLFxuICAgICAgICAgIGhlYWRlcnNcbiAgICAgICAgfTtcbiAgICAgIH0gZWxzZSBpZiAobWV0aG9kICE9PSBcIkRFTEVURVwiKSB7XG4gICAgICAgIGlmICghIXNraXBKc29uUGFyc2luZykge1xuICAgICAgICAgIHJlc3BvbnNlID0gZGF0YS5qb2luKFwiXCIpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlc3BvbnNlID0gSlNPTi5wYXJzZShkYXRhLmpvaW4oXCJcIikpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXNwb25zZSA9IGRhdGE7XG4gICAgICB9XG4gICAgfSBjYXRjaCAocGFyc2VFcnJvcikge1xuICAgICAgdGhpcy5sb2dnZXIuZXJyb3IocGFyc2VFcnJvcik7XG4gICAgICB0aGlzLmxvZ2dlci5lcnJvcihcbiAgICAgICAgXCJjb3VsZCBub3QgY29udmVydCBBUEkgcmVzcG9uc2UgdG8gSlNPTiwgYWJvdmUgZXJyb3IgaXMgaWdub3JlZCBhbmQgcmF3IEFQSSByZXNwb25zZSBpcyByZXR1cm5lZCB0byBjbGllbnRcIlxuICAgICAgKTtcbiAgICAgIHRoaXMubG9nZ2VyLmVycm9yKFwiUmF3IEVycm9yIG1lc3NhZ2UgZnJvbSBBUEkgXCIpO1xuICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoYFwiJHtkYXRhfVwiYCk7XG5cbiAgICAgIGVycm9yID0ge1xuICAgICAgICBzdGF0dXM6IHN0YXR1cyxcbiAgICAgICAgbWVzc2FnZTogXCJUaGUgQVBJIHJlc3BvbnNlIGNvdWxkIG5vdCBiZSBwYXJzZWQuXCIsXG4gICAgICAgIGJvZHk6IGRhdGEuam9pbihcIlwiKSxcbiAgICAgICAgcGFyc2VFcnJvcjogcGFyc2VFcnJvclxuICAgICAgfTtcbiAgICB9XG5cbiAgICBpZiAoZXJyb3IpIHtcbiAgICAgIGVycm9yLnN0YXR1c0NvZGUgPSBzdGF0dXM7XG4gICAgICBlcnJvci5oZWFkZXJzID0gaGVhZGVycztcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIGNhbGxiYWNrID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgIGlmICh0eXBlb2YgY3VzdG9tUmVzcG9uc2VQYXJzZXIgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAvLyBkb24ndCB0cnkgdG8gcGFyc2UgdGhlIHJlc3BvbnNlIG9uIGVycm9yc1xuICAgICAgICBpZiAocmVzcG9uc2UpIHtcbiAgICAgICAgICByZXNwb25zZSA9IGN1c3RvbVJlc3BvbnNlUGFyc2VyKHJlc3BvbnNlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgY2FsbGJhY2soZXJyb3IsIHJlc3BvbnNlKTtcbiAgICB9XG4gIH1cblxuICBfYWRkTGltaXRlZEFjY2Vzc01lc3NhZ2VUb0Vycm9ycyhjYWxsYmFjaywgbGltaXRlZEFjY2Vzc1N0YXR1cykge1xuICAgIHJldHVybiBmdW5jdGlvbihlcnIsIGRhdGEpIHtcbiAgICAgIGlmIChlcnIgJiYgZXJyLnN0YXR1cyA9PSBsaW1pdGVkQWNjZXNzU3RhdHVzKSB7XG4gICAgICAgIGVyci5fSU5GT18gPVxuICAgICAgICAgIFwiVGhpcyBlbmRwb2ludCBtYXkgbmVlZCBhY3RpdmF0aW5nIG9uIHlvdXIgYWNjb3VudC4gUGxlYXNlIGVtYWlsIHN1cHBvcnRAbmV4bW8uY29tIGZvciBtb3JlIGluZm9ybWF0aW9uXCI7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBjYWxsYmFjayhlcnIsIGRhdGEpO1xuICAgIH07XG4gIH1cblxuICBnZXQocGF0aCwgcGFyYW1zLCBjYWxsYmFjaywgdXNlSnd0ID0gZmFsc2UsIHVzZUJhc2ljQXV0aCA9IGZhbHNlKSB7XG4gICAgaWYgKCFjYWxsYmFjaykge1xuICAgICAgaWYgKHR5cGVvZiBwYXJhbXMgPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIGNhbGxiYWNrID0gcGFyYW1zO1xuICAgICAgICBwYXJhbXMgPSB7fTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwYXJhbXMgPSBwYXJhbXMgfHwge307XG4gICAgaWYgKCF1c2VKd3QgJiYgIXVzZUJhc2ljQXV0aCkge1xuICAgICAgcGFyYW1zW1wiYXBpX2tleVwiXSA9IHRoaXMuY3JlZGVudGlhbHMuYXBpS2V5O1xuICAgICAgcGFyYW1zW1wiYXBpX3NlY3JldFwiXSA9IHRoaXMuY3JlZGVudGlhbHMuYXBpU2VjcmV0O1xuICAgIH1cblxuICAgIHBhdGggPSBwYXRoICsgXCI/XCIgKyBxdWVyeXN0cmluZy5zdHJpbmdpZnkocGFyYW1zKTtcblxuICAgIGNvbnN0IGhlYWRlcnMgPSB7XG4gICAgICBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIlxuICAgIH07XG4gICAgaWYgKHVzZUp3dCkge1xuICAgICAgaGVhZGVyc1tcIkF1dGhvcml6YXRpb25cIl0gPSBgQmVhcmVyICR7dGhpcy5jcmVkZW50aWFscy5nZW5lcmF0ZUp3dCgpfWA7XG4gICAgfVxuICAgIGlmICh1c2VCYXNpY0F1dGgpIHtcbiAgICAgIGhlYWRlcnNbXCJBdXRob3JpemF0aW9uXCJdID0gYEJhc2ljICR7QnVmZmVyLmZyb20oXG4gICAgICAgIHRoaXMuY3JlZGVudGlhbHMuYXBpS2V5ICsgXCI6XCIgKyB0aGlzLmNyZWRlbnRpYWxzLmFwaVNlY3JldFxuICAgICAgKS50b1N0cmluZyhcImJhc2U2NFwiKX1gO1xuICAgIH1cblxuICAgIHRoaXMucmVxdWVzdChcbiAgICAgIHtcbiAgICAgICAgcGF0aDogcGF0aCxcbiAgICAgICAgaGVhZGVyc1xuICAgICAgfSxcbiAgICAgIFwiR0VUXCIsXG4gICAgICBjYWxsYmFja1xuICAgICk7XG4gIH1cblxuICBkZWxldGUocGF0aCwgY2FsbGJhY2ssIHVzZUp3dCwgdXNlQmFzaWNBdXRoKSB7XG4gICAgbGV0IHBhcmFtcyA9IHt9O1xuICAgIGlmICghdXNlSnd0ICYmICF1c2VCYXNpY0F1dGgpIHtcbiAgICAgIHBhcmFtc1tcImFwaV9rZXlcIl0gPSB0aGlzLmNyZWRlbnRpYWxzLmFwaUtleTtcbiAgICAgIHBhcmFtc1tcImFwaV9zZWNyZXRcIl0gPSB0aGlzLmNyZWRlbnRpYWxzLmFwaVNlY3JldDtcbiAgICB9XG5cbiAgICBsZXQgaGVhZGVycyA9IHt9O1xuXG4gICAgaWYgKHVzZUJhc2ljQXV0aCkge1xuICAgICAgaGVhZGVyc1tcIkF1dGhvcml6YXRpb25cIl0gPSBgQmFzaWMgJHtCdWZmZXIuZnJvbShcbiAgICAgICAgdGhpcy5jcmVkZW50aWFscy5hcGlLZXkgKyBcIjpcIiArIHRoaXMuY3JlZGVudGlhbHMuYXBpU2VjcmV0XG4gICAgICApLnRvU3RyaW5nKFwiYmFzZTY0XCIpfWA7XG4gICAgfVxuICAgIHBhdGggPSBwYXRoICsgXCI/XCIgKyBxdWVyeXN0cmluZy5zdHJpbmdpZnkocGFyYW1zKTtcblxuICAgIHRoaXMucmVxdWVzdChcbiAgICAgIHtcbiAgICAgICAgcGF0aDogcGF0aCxcbiAgICAgICAgaGVhZGVyc1xuICAgICAgfSxcbiAgICAgIFwiREVMRVRFXCIsXG4gICAgICBjYWxsYmFja1xuICAgICk7XG4gIH1cblxuICBwb3N0RmlsZShwYXRoLCBvcHRpb25zLCBjYWxsYmFjaywgdXNlSnd0KSB7XG4gICAgbGV0IHFzID0ge307XG4gICAgaWYgKCF1c2VKd3QpIHtcbiAgICAgIHFzW1wiYXBpX2tleVwiXSA9IHRoaXMuY3JlZGVudGlhbHMuYXBpS2V5O1xuICAgICAgcXNbXCJhcGlfc2VjcmV0XCJdID0gdGhpcy5jcmVkZW50aWFscy5hcGlTZWNyZXQ7XG4gICAgfVxuXG4gICAgaWYgKE9iamVjdC5rZXlzKHFzKS5sZW5ndGgpIHtcbiAgICAgIGxldCBqb2luQ2hhciA9IFwiP1wiO1xuICAgICAgaWYgKHBhdGguaW5kZXhPZihqb2luQ2hhcikgIT09IC0xKSB7XG4gICAgICAgIGpvaW5DaGFyID0gXCImXCI7XG4gICAgICB9XG4gICAgICBwYXRoID0gcGF0aCArIGpvaW5DaGFyICsgcXVlcnlzdHJpbmcuc3RyaW5naWZ5KHFzKTtcbiAgICB9XG5cbiAgICBjb25zdCBmaWxlID0gb3B0aW9ucy5maWxlO1xuICAgIGRlbGV0ZSBvcHRpb25zLmZpbGU7IC8vIFdlIGRvbid0IHNlbmQgdGhpcyBhcyBtZXRhZGF0YVxuXG4gICAgY29uc3QgZm9ybURhdGEgPSB7fTtcblxuICAgIGlmIChmaWxlKSB7XG4gICAgICBmb3JtRGF0YVtcImZpbGVkYXRhXCJdID0ge1xuICAgICAgICB2YWx1ZTogZmlsZSxcbiAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgIGZpbGVuYW1lOiBvcHRpb25zLmZpbGVuYW1lIHx8IG51bGxcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9XG5cbiAgICBpZiAob3B0aW9ucy5pbmZvKSB7XG4gICAgICBmb3JtRGF0YS5pbmZvID0gSlNPTi5zdHJpbmdpZnkob3B0aW9ucy5pbmZvKTtcbiAgICB9XG5cbiAgICBpZiAob3B0aW9ucy51cmwpIHtcbiAgICAgIGZvcm1EYXRhLnVybCA9IG9wdGlvbnMudXJsO1xuICAgIH1cblxuICAgIGxldCBwcm90b2NvbCA9IHRoaXMucG9ydCA9PT0gNDQzID8gXCJodHRwczovL1wiIDogXCJodHRwOi8vXCI7XG5cbiAgICB0aGlzLnJlcXVlc3RMaWIucG9zdChcbiAgICAgIHtcbiAgICAgICAgdXJsOiBwcm90b2NvbCArIHRoaXMuaG9zdCArIHBhdGgsXG4gICAgICAgIGZvcm1EYXRhOiBmb3JtRGF0YSxcbiAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgIEF1dGhvcml6YXRpb246IGBCZWFyZXIgJHt0aGlzLmNyZWRlbnRpYWxzLmdlbmVyYXRlSnd0KCl9YFxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgY2FsbGJhY2tcbiAgICApO1xuICB9XG5cbiAgcG9zdChwYXRoLCBwYXJhbXMsIGNhbGxiYWNrLCB1c2VKd3QsIGhlYWRlcnMpIHtcbiAgICBsZXQgcXMgPSB7fTtcbiAgICBpZiAoIXVzZUp3dCkge1xuICAgICAgcXNbXCJhcGlfa2V5XCJdID0gdGhpcy5jcmVkZW50aWFscy5hcGlLZXk7XG4gICAgICBxc1tcImFwaV9zZWNyZXRcIl0gPSB0aGlzLmNyZWRlbnRpYWxzLmFwaVNlY3JldDtcbiAgICB9XG5cbiAgICBsZXQgam9pbkNoYXIgPSBcIj9cIjtcbiAgICBpZiAocGF0aC5pbmRleE9mKGpvaW5DaGFyKSAhPT0gLTEpIHtcbiAgICAgIGpvaW5DaGFyID0gXCImXCI7XG4gICAgfVxuXG4gICAgcGF0aCA9IHBhdGggKyBqb2luQ2hhciArIHF1ZXJ5c3RyaW5nLnN0cmluZ2lmeShxcyk7XG5cbiAgICBoZWFkZXJzID0gaGVhZGVycyB8fCB7fTtcbiAgICBpZiAodXNlSnd0KSB7XG4gICAgICBoZWFkZXJzW1wiQXV0aG9yaXphdGlvblwiXSA9IGBCZWFyZXIgJHt0aGlzLmNyZWRlbnRpYWxzLmdlbmVyYXRlSnd0KCl9YDtcbiAgICB9XG5cbiAgICBsZXQgZW5jb2RlZFBhcmFtcztcbiAgICBpZiAoaGVhZGVyc1tcIkNvbnRlbnQtVHlwZVwiXSA9PSBcImFwcGxpY2F0aW9uL2pzb25cIikge1xuICAgICAgZW5jb2RlZFBhcmFtcyA9IEpTT04uc3RyaW5naWZ5KHBhcmFtcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGVuY29kZWRQYXJhbXMgPSBxdWVyeXN0cmluZy5zdHJpbmdpZnkocGFyYW1zKTtcbiAgICB9XG5cbiAgICB0aGlzLnJlcXVlc3QoeyBwYXRoLCBib2R5OiBlbmNvZGVkUGFyYW1zLCBoZWFkZXJzIH0sIFwiUE9TVFwiLCBjYWxsYmFjayk7XG4gIH1cblxuICBwb3N0SnNvbihwYXRoLCBwYXJhbXMsIGNhbGxiYWNrLCB1c2VKd3QsIHVzZUJhc2ljQXV0aCkge1xuICAgIGxldCBxcyA9IHt9O1xuICAgIGlmICghdXNlSnd0ICYmICF1c2VCYXNpY0F1dGgpIHtcbiAgICAgIHFzW1wiYXBpX2tleVwiXSA9IHRoaXMuY3JlZGVudGlhbHMuYXBpS2V5O1xuICAgICAgcXNbXCJhcGlfc2VjcmV0XCJdID0gdGhpcy5jcmVkZW50aWFscy5hcGlTZWNyZXQ7XG4gICAgfVxuXG4gICAgbGV0IGpvaW5DaGFyID0gXCI/XCI7XG4gICAgaWYgKHBhdGguaW5kZXhPZihqb2luQ2hhcikgIT09IC0xKSB7XG4gICAgICBqb2luQ2hhciA9IFwiJlwiO1xuICAgIH1cblxuICAgIHBhdGggPSBwYXRoICsgam9pbkNoYXIgKyBxdWVyeXN0cmluZy5zdHJpbmdpZnkocXMpO1xuXG4gICAgbGV0IGhlYWRlcnMgPSB7XG4gICAgICBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIlxuICAgIH07XG4gICAgaWYgKHVzZUJhc2ljQXV0aCkge1xuICAgICAgaGVhZGVyc1tcIkF1dGhvcml6YXRpb25cIl0gPSBgQmFzaWMgJHtCdWZmZXIuZnJvbShcbiAgICAgICAgdGhpcy5jcmVkZW50aWFscy5hcGlLZXkgKyBcIjpcIiArIHRoaXMuY3JlZGVudGlhbHMuYXBpU2VjcmV0XG4gICAgICApLnRvU3RyaW5nKFwiYmFzZTY0XCIpfWA7XG4gICAgfVxuXG4gICAgdGhpcy5yZXF1ZXN0KFxuICAgICAge1xuICAgICAgICBwYXRoOiBwYXRoLFxuICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeShwYXJhbXMpLFxuICAgICAgICBoZWFkZXJzXG4gICAgICB9LFxuICAgICAgXCJQT1NUXCIsXG4gICAgICBjYWxsYmFja1xuICAgICk7XG4gIH1cblxuICBwb3N0VXNlUXVlcnlTdHJpbmcocGF0aCwgcGFyYW1zLCBjYWxsYmFjaywgdXNlSnd0KSB7XG4gICAgcGFyYW1zID0gcGFyYW1zIHx8IHt9O1xuICAgIGlmICghdXNlSnd0KSB7XG4gICAgICBwYXJhbXNbXCJhcGlfa2V5XCJdID0gdGhpcy5jcmVkZW50aWFscy5hcGlLZXk7XG4gICAgICBwYXJhbXNbXCJhcGlfc2VjcmV0XCJdID0gdGhpcy5jcmVkZW50aWFscy5hcGlTZWNyZXQ7XG4gICAgfVxuXG4gICAgcGF0aCA9IHBhdGggKyBcIj9cIiArIHF1ZXJ5c3RyaW5nLnN0cmluZ2lmeShwYXJhbXMpO1xuXG4gICAgdGhpcy5yZXF1ZXN0KFxuICAgICAge1xuICAgICAgICBwYXRoOiBwYXRoXG4gICAgICB9LFxuICAgICAgXCJQT1NUXCIsXG4gICAgICBjYWxsYmFja1xuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgSHR0cENsaWVudDtcbiJdfQ== | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9IdHRwQ2xpZW50LmpzIl0sIm5hbWVzIjpbImh0dHBzIiwicmVxdWlyZSIsImh0dHAiLCJyZXF1ZXN0IiwicXVlcnlzdHJpbmciLCJVUkwiLCJpc1ZhbGlkVXJsIiwicyIsIm8iLCJob3N0IiwiZXJyIiwiSHR0cENsaWVudCIsImNvbnN0cnVjdG9yIiwib3B0aW9ucyIsImNyZWRlbnRpYWxzIiwiaG9zdE92ZXJyaWRlIiwicG9ydCIsImhlYWRlcnMiLCJBY2NlcHQiLCJsb2dnZXIiLCJ0aW1lb3V0IiwicmVxdWVzdExpYiIsInVzZXJBZ2VudCIsImVuZHBvaW50IiwibWV0aG9kIiwiY2FsbGJhY2siLCJza2lwSnNvblBhcnNpbmciLCJjdXN0b21SZXNwb25zZVBhcnNlciIsInBhdGgiLCJPYmplY3QiLCJhc3NpZ24iLCJ1bmRlZmluZWQiLCJrZXlzIiwiZm9yRWFjaCIsImtleSIsInNpZ25hdHVyZVNlY3JldCIsInNpZ25hdHVyZU1ldGhvZCIsInNwbGl0UGF0aCIsInNwbGl0IiwicGFyYW1zIiwiZGVjb2RlIiwidGltZXN0YW1wIiwiRGF0ZSIsImdldFRpbWUiLCJ0b1N0cmluZyIsImFwaV9zZWNyZXQiLCJoYXNoIiwiZ2VuZXJhdGVTaWduYXR1cmUiLCJxdWVyeSIsInNvcnQiLCJlbmNvZGVVUkkiLCJyZXBsYWNlIiwiaW5mbyIsImJvZHkiLCJlbmQiLCJyZXNwb25zZURhdGEiLCJvbiIsInJlc3BvbnNlIiwiaXNCaW5hcnkiLCJzZXRFbmNvZGluZyIsImNodW5rIiwicHVzaCIsInN0YXR1c0NvZGUiLCJCdWZmZXIiLCJjb25jYXQiLCJfX3BhcnNlUmVzcG9uc2UiLCJlIiwiZXJyb3IiLCJodHRwUmVzcG9uc2UiLCJkYXRhIiwiaXNBcnJheU9yQnVmZmVyIiwiQXJyYXkiLCJFcnJvciIsInN0YXR1cyIsIm1lc3NhZ2UiLCJyZXRyeUFmdGVyTWlsbGlzIiwiam9pbiIsIkpTT04iLCJwYXJzZSIsInBhcnNlRXJyb3IiLCJfYWRkTGltaXRlZEFjY2Vzc01lc3NhZ2VUb0Vycm9ycyIsImxpbWl0ZWRBY2Nlc3NTdGF0dXMiLCJfSU5GT18iLCJnZXQiLCJ1c2VKd3QiLCJ1c2VCYXNpY0F1dGgiLCJhcGlLZXkiLCJhcGlTZWNyZXQiLCJzdHJpbmdpZnkiLCJnZW5lcmF0ZUp3dCIsImZyb20iLCJkZWxldGUiLCJwb3N0RmlsZSIsInFzIiwibGVuZ3RoIiwiam9pbkNoYXIiLCJpbmRleE9mIiwiZmlsZSIsImZvcm1EYXRhIiwidmFsdWUiLCJmaWxlbmFtZSIsInVybCIsInByb3RvY29sIiwicG9zdCIsIkF1dGhvcml6YXRpb24iLCJlbmNvZGVkUGFyYW1zIiwicG9zdEpzb24iLCJwb3N0VXNlUXVlcnlTdHJpbmciXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSxJQUFJQSxLQUFLLEdBQUdDLE9BQU8sQ0FBQyxPQUFELENBQW5COztBQUNBLElBQUlDLElBQUksR0FBR0QsT0FBTyxDQUFDLE1BQUQsQ0FBbEI7O0FBQ0EsSUFBSUUsT0FBTyxHQUFHRixPQUFPLENBQUMsU0FBRCxDQUFyQjs7QUFDQSxJQUFJRyxXQUFXLEdBQUdILE9BQU8sQ0FBQyxhQUFELENBQXpCOztBQUNBLElBQUlJLEdBQUcsR0FBR0osT0FBTyxDQUFDLEtBQUQsQ0FBUCxDQUFlSSxHQUF6Qjs7QUFFQSxJQUFNQyxVQUFVLEdBQUdDLENBQUMsSUFBSTtBQUN0QixNQUFJLENBQUNBLENBQUQsSUFBTUEsQ0FBQyxLQUFLLElBQWhCLEVBQXNCLE9BQU8sS0FBUDs7QUFFdEIsTUFBSTtBQUNGLFFBQUlBLENBQUMsS0FBSyxlQUFWLEVBQTJCLE9BQU9BLENBQVA7QUFDM0IsUUFBSUMsQ0FBQyxHQUFHLElBQUlILEdBQUosQ0FBUUUsQ0FBUixDQUFSO0FBQ0EsV0FBT0MsQ0FBQyxDQUFDQyxJQUFUO0FBQ0QsR0FKRCxDQUlFLE9BQU9DLEdBQVAsRUFBWTtBQUNaLFdBQU8sS0FBUDtBQUNEO0FBQ0YsQ0FWRDs7QUFZQSxNQUFNQyxVQUFOLENBQWlCO0FBQ2ZDLEVBQUFBLFdBQVcsQ0FBQ0MsT0FB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LFdBQVcsQ0FBQ29GLFNBQVosQ0FBc0JqRCxNQUF0QixDQUFwQjtBQUVBLFNBQUtwQyxPQUFMLENBQ0U7QUFDRXlCLE1BQUFBLElBQUksRUFBRUE7QUFEUixLQURGLEVBSUUsTUFKRixFQUtFSCxRQUxGO0FBT0Q7O0FBN2JjOztlQWdjRmQsVSIsInNvdXJjZXNDb250ZW50IjpbInZhciBodHRwcyA9IHJlcXVpcmUoXCJodHRwc1wiKTtcbnZhciBodHRwID0gcmVxdWlyZShcImh0dHBcIik7XG52YXIgcmVxdWVzdCA9IHJlcXVpcmUoXCJyZXF1ZXN0XCIpO1xudmFyIHF1ZXJ5c3RyaW5nID0gcmVxdWlyZShcInF1ZXJ5c3RyaW5nXCIpO1xudmFyIFVSTCA9IHJlcXVpcmUoXCJ1cmxcIikuVVJMO1xuXG5jb25zdCBpc1ZhbGlkVXJsID0gcyA9PiB7XG4gIGlmICghcyB8fCBzID09PSBudWxsKSByZXR1cm4gZmFsc2U7XG5cbiAgdHJ5IHtcbiAgICBpZiAocyA9PT0gXCJhcGkubmV4bW8uY29tXCIpIHJldHVybiBzO1xuICAgIGxldCBvID0gbmV3IFVSTChzKTtcbiAgICByZXR1cm4gby5ob3N0O1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn07XG5cbmNsYXNzIEh0dHBDbGllbnQge1xuICBjb25zdHJ1Y3RvcihvcHRpb25zLCBjcmVkZW50aWFscykge1xuICAgIGxldCBob3N0T3ZlcnJpZGUgPSBpc1ZhbGlkVXJsKG9wdGlvbnMuaG9zdCk7XG4gICAgdGhpcy5jcmVkZW50aWFscyA9IGNyZWRlbnRpYWxzO1xuICAgIHRoaXMuaG9zdCA9IGhvc3RPdmVycmlkZSA/IGhvc3RPdmVycmlkZSA6IGByZXN0Lm5leG1vLmNvbWA7XG4gICAgdGhpcy5wb3J0ID0gb3B0aW9ucy5wb3J0IHx8IDQ0MztcbiAgICB0aGlzLmh0dHBzID0gb3B0aW9ucy5odHRwcyB8fCBodHRwcztcbiAgICB0aGlzLmh0dHAgPSBvcHRpb25zLmh0dHAgfHwgaHR0cDtcbiAgICB0aGlzLmhlYWRlcnMgPSB7XG4gICAgICBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZFwiLFxuICAgICAgQWNjZXB0OiBcImFwcGxpY2F0aW9uL2pzb25cIlxuICAgIH07XG4gICAgdGhpcy5sb2dnZXIgPSBvcHRpb25zLmxvZ2dlcjtcbiAgICB0aGlzLnRpbWVvdXQgPSBvcHRpb25zLnRpbWVvdXQ7XG4gICAgdGhpcy5yZXF1ZXN0TGliID0gcmVxdWVzdDtcblxuICAgIGlmIChvcHRpb25zLnVzZXJBZ2VudCkge1xuICAgICAgdGhpcy5oZWFkZXJzW1wiVXNlci1BZ2VudFwiXSA9IG9wdGlvbnMudXNlckFnZW50O1xuICAgIH1cbiAgfVxuXG4gIHJlcXVlc3QoXG4gICAgZW5kcG9pbnQsXG4gICAgbWV0aG9kLFxuICAgIGNhbGxiYWNrLFxuICAgIHNraXBKc29uUGFyc2luZyA9IGZhbHNlLFxuICAgIGN1c3RvbVJlc3BvbnNlUGFyc2VyXG4gICkge1xuICAgIGlmICh0eXBlb2YgbWV0aG9kID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgIGNhbGxiYWNrID0gbWV0aG9kO1xuICAgICAgZW5kcG9pbnQubWV0aG9kID0gZW5kcG9pbnQubWV0aG9kIHx8IFwiR0VUXCI7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgbWV0aG9kICE9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICBlbmRwb2ludC5tZXRob2QgPSBtZXRob2Q7XG4gICAgfVxuXG4gICAgaWYgKGVuZHBvaW50Lm1ldGhvZCA9PT0gXCJQT1NUXCIgfHwgZW5kcG9pbnQubWV0aG9kID09PSBcIkRFTEVURVwiKSB7XG4gICAgICAvLyBUT0RPOiB2ZXJpZnkgdGhlIGZvbGxvd2luZyBmaXggaXMgcmVxdWlyZWRcbiAgICAgIC8vIEZpeCBicm9rZW4gZHVlIG90IDQxMSBDb250ZW50LUxlbmd0aCBlcnJvciBub3cgc2VudCBieSBWb25hZ2UgQVBJXG4gICAgICAvLyBQTCAyMDE2LVNlcHQtNiAtIGNvbW1lbnRlZCBvdXQgQ29udGVudC1MZW5ndGggMFxuICAgICAgLy8gaGVhZGVyc1snQ29udGVudC1MZW5ndGgnXSA9IDA7XG4gICAgfVxuICAgIHZhciBvcHRpb25zID0ge1xuICAgICAgaG9zdDogZW5kcG9pbnQuaG9zdCA/IGVuZHBvaW50Lmhvc3QgOiB0aGlzLmhvc3QsXG4gICAgICBwb3J0OiB0aGlzLnBvcnQsXG4gICAgICBwYXRoOiBlbmRwb2ludC5wYXRoLFxuICAgICAgbWV0aG9kOiBlbmRwb2ludC5tZXRob2QsXG4gICAgICBoZWFkZXJzOiBPYmplY3QuYXNzaWduKHt9LCB0aGlzLmhlYWRlcnMpXG4gICAgfTtcblxuICAgIGlmICh0aGlzLnRpbWVvdXQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgb3B0aW9ucy50aW1lb3V0ID0gdGhpcy50aW1lb3V0O1xuICAgIH1cblxuICAgIC8vIEFsbG93IGV4aXN0aW5nIGhlYWRlcnMgdG8gYmUgb3ZlcnJpZGRlblxuICAgIC8vIEFsbG93IG5ldyBoZWFkZXJzIHRvIGJlIGFkZGVkXG4gICAgaWYgKGVuZHBvaW50LmhlYWRlcnMpIHtcbiAgICAgIE9iamVjdC5rZXlzKGVuZHBvaW50LmhlYWRlcnMpLmZvckVhY2goZnVuY3Rpb24oa2V5KSB7XG4gICAgICAgIG9wdGlvbnMuaGVhZGVyc1trZXldID0gZW5kcG9pbnQuaGVhZGVyc1trZXldO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuY3JlZGVudGlhbHMuc2lnbmF0dXJlU2VjcmV0ICYmIHRoaXMuY3JlZGVudGlhbHMuc2lnbmF0dXJlTWV0aG9kKSB7XG4gICAgICBjb25zdCBzcGxpdFBhdGggPSBvcHRpb25zLnBhdGguc3BsaXQoL1xcPyguKykvKTtcbiAgICAgIGNvbnN0IHBhdGggPSBzcGxpdFBhdGhbMF07XG5cbiAgICAgIHZhciBwYXJhbXMgPSBxdWVyeXN0cmluZy5kZWNvZGUoc3BsaXRQYXRoWzFdKTtcblxuICAgICAgLy8gYWRkIHRpbWVzdGFtcCBpZiBub3QgYWxyZWFkeSBwcmVzZW50XG4gICAgICBpZiAoIXBhcmFtcy50aW1lc3RhbXApIHtcbiAgICAgICAgcGFyYW1zLnRpbWVzdGFtcCA9IChuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDApIHwgMDsgLy8gZmxvb3IgdG8gc2Vjb25kc1xuICAgICAgICBwYXJhbXMudGltZXN0YW1wID0gcGFyYW1zLnRpbWVzdGFtcC50b1N0cmluZygpO1xuICAgICAgfVxuXG4gICAgICAvLyBzdHJpcCBBUEkgU2VjcmV0XG4gICAgICBkZWxldGUgcGFyYW1zLmFwaV9zZWNyZXQ7XG5cbiAgICAgIGNvbnN0IGhhc2ggPSB0aGlzLmNyZWRlbnRpYWxzLmdlbmVyYXRlU2lnbmF0dXJlKHBhcmFtcyk7XG5cbiAgICAgIHZhciBxdWVyeSA9IFwiXCI7XG5cbiAgICAgIC8vIHJlYnVpbGQgcXVlcnlcbiAgICAgIE9iamVjdC5rZXlzKHBhcmFtcylcbiAgICAgICAgLnNvcnQoKVxuICAgICAgICAuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgICAgIHF1ZXJ5ICs9IFwiJlwiICsga2V5ICsgXCI9XCIgKyBlbmNvZGVVUkkocGFyYW1zW2tleV0pO1xuICAgICAgICB9KTtcblxuICAgICAgLy8gcmVwbGFjZSB0aGUgZmlyc3QgJiB3aXRoID9cbiAgICAgIHF1ZXJ5ID0gcXVlcnkucmVwbGFjZSgvJi9pLCBcIj9cIik7XG5cbiAgICAgIG9wdGlvbnMucGF0aCA9IGAke3BhdGh9JHtxdWVyeX0mc2lnPSR7aGFzaH1gO1xuICAgIH1cblxuICAgIHRoaXMubG9nZ2VyLmluZm8oXCJSZXF1ZXN0OlwiLCBvcHRpb25zLCBcIlxcbkJvZHk6XCIsIGVuZHBvaW50LmJvZHkpO1xuICAgIHZhciByZXF1ZXN0O1xuXG4gICAgaWYgKG9wdGlvbnMucG9ydCA9PT0gNDQzKSB7XG4gICAgICByZXF1ZXN0ID0gdGhpcy5odHRwcy5yZXF1ZXN0KG9wdGlvbnMpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXF1ZXN0ID0gdGhpcy5odHRwLnJlcXVlc3Qob3B0aW9ucyk7XG4gICAgfVxuXG4gICAgcmVxdWVzdC5lbmQoZW5kcG9pbnQuYm9keSk7XG5cbiAgICAvLyBLZWVwIGFuIGFycmF5IG9mIFN0cmluZyBvciBCdWZmZXJzLFxuICAgIC8vIGRlcGVuZGluZyBvbiBjb250ZW50IHR5cGUgKGJpbmFyeSBvciBKU09OKSBvZiByZXNwb25zZVxuICAgIHZhciByZXNwb25zZURhdGEgPSBbXTtcblxuICAgIHJlcXVlc3Qub24oXCJyZXNwb25zZVwiLCByZXNwb25zZSA9PiB7XG4gICAgICB2YXIgaXNCaW5hcnkgPVxuICAgICAgICByZXNwb25zZS5oZWFkZXJzW1wiY29udGVudC10eXBlXCJdID09PSBcImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbVwiO1xuICAgICAgaWYgKCFpc0JpbmFyeSkge1xuICAgICAgICByZXNwb25zZS5zZXRFbmNvZGluZyhcInV0ZjhcIik7XG4gICAgICB9XG5cbiAgICAgIHJlc3BvbnNlLm9uKFwiZGF0YVwiLCBjaHVuayA9PiB7XG4gICAgICAgIHJlc3BvbnNlRGF0YS5wdXNoKGNodW5rKTtcbiAgICAgIH0pO1xuXG4gICAgICByZXNwb25zZS5vbihcImVuZFwiLCAoKSA9PiB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmluZm8oXCJyZXNwb25zZSBlbmRlZDpcIiwgcmVzcG9uc2Uuc3RhdHVzQ29kZSk7XG4gICAgICAgIGlmIChjYWxsYmFjaykge1xuICAgICAgICAgIGlmIChpc0JpbmFyeSkge1xuICAgICAgICAgICAgcmVzcG9uc2VEYXRhID0gQnVmZmVyLmNvbmNhdChyZXNwb25zZURhdGEpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHRoaXMuX19wYXJzZVJlc3BvbnNlKFxuICAgICAgICAgICAgcmVzcG9uc2UsXG4gICAgICAgICAgICByZXNwb25zZURhdGEsXG4gICAgICAgICAgICBlbmRwb2ludC5tZXRob2QsXG4gICAgICAgICAgICBjYWxsYmFjayxcbiAgICAgICAgICAgIHNraXBKc29uUGFyc2luZyxcbiAgICAgICAgICAgIGN1c3RvbVJlc3BvbnNlUGFyc2VyXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICByZXNwb25zZS5vbihcImNsb3NlXCIsIGUgPT4ge1xuICAgICAgICBpZiAoZSkge1xuICAgICAgICAgIHRoaXMubG9nZ2VyLmVycm9yKFxuICAgICAgICAgICAgXCJwcm9ibGVtIHdpdGggQVBJIHJlcXVlc3QgZGV0YWlsZWQgc3RhY2t0cmFjZSBiZWxvdyBcIlxuICAgICAgICAgICk7XG4gICAgICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoZSk7XG4gICAgICAgICAgY2FsbGJhY2soZSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIHJlcXVlc3Qub24oXCJlcnJvclwiLCBlID0+IHtcbiAgICAgIHRoaXMubG9nZ2VyLmVycm9yKFwicHJvYmxlbSB3aXRoIEFQSSByZXF1ZXN0IGRldGFpbGVkIHN0YWNrdHJhY2UgYmVsb3cgXCIpO1xuICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoZSk7XG4gICAgICBjYWxsYmFjayhlKTtcbiAgICB9KTtcbiAgfVxuXG4gIF9fcGFyc2VSZXNwb25zZShcbiAgICBodHRwUmVzcG9uc2UsXG4gICAgZGF0YSxcbiAgICBtZXRob2QsXG4gICAgY2FsbGJhY2ssXG4gICAgc2tpcEpzb25QYXJzaW5nLFxuICAgIGN1c3RvbVJlc3BvbnNlUGFyc2VyXG4gICkge1xuICAgIGNvbnN0IGlzQXJyYXlPckJ1ZmZlciA9IGRhdGEgaW5zdGFuY2VvZiBBcnJheSB8fCBkYXRhIGluc3RhbmNlb2YgQnVmZmVyO1xuICAgIGlmICghaXNBcnJheU9yQnVmZmVyKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJkYXRhIHNob3VsZCBiZSBvZiB0eXBlIEFycmF5IG9yIEJ1ZmZlclwiKTtcbiAgICB9XG5cbiAgICBjb25zdCBzdGF0dXMgPSBodHRwUmVzcG9uc2Uuc3RhdHVzQ29kZTtcbiAgICBjb25zdCBoZWFkZXJzID0gaHR0cFJlc3BvbnNlLmhlYWRlcnM7XG5cbiAgICBsZXQgcmVzcG9uc2UgPSBudWxsO1xuICAgIHZhciBlcnJvciA9IG51bGw7XG5cbiAgICB0cnkge1xuICAgICAgaWYgKHN0YXR1cyA+PSA1MDApIHtcbiAgICAgICAgZXJyb3IgPSB7XG4gICAgICAgICAgbWVzc2FnZTogXCJTZXJ2ZXIgRXJyb3JcIixcbiAgICAgICAgICBzdGF0dXNDb2RlOiBzdGF0dXNcbiAgICAgICAgfTtcbiAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgIGh0dHBSZXNwb25zZS5oZWFkZXJzW1wiY29udGVudC10eXBlXCJdID09PSBcImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbVwiXG4gICAgICApIHtcbiAgICAgICAgcmVzcG9uc2UgPSBkYXRhO1xuICAgICAgfSBlbHNlIGlmIChzdGF0dXMgPT09IDQyOSkge1xuICAgICAgICAvLyA0MjkgZG9lcyBub3QgcmV0dXJuIGEgcGFyc2FibGUgYm9keVxuICAgICAgICBpZiAoIWhlYWRlcnNbXCJyZXRyeS1hZnRlclwiXSkge1xuICAgICAgICAgIC8vIHJldHJ5IGJhc2VkIG9uIGFsbG93ZWQgcGVyIHNlY29uZFxuICAgICAgICAgIGNvbnN0IHJldHJ5QWZ0ZXJNaWxsaXMgPSBtZXRob2QgPT09IFwiUE9TVFwiID8gMTAwMCAvIDIgOiAxMDAwIC8gNTtcbiAgICAgICAgICBoZWFkZXJzW1wicmV0cnktYWZ0ZXJcIl0gPSByZXRyeUFmdGVyTWlsbGlzO1xuICAgICAgICB9XG4gICAgICAgIGVycm9yID0ge1xuICAgICAgICAgIGJvZHk6IGRhdGEuam9pbihcIlwiKVxuICAgICAgICB9O1xuICAgICAgfSBlbHNlIGlmIChzdGF0dXMgPT09IDIwNCkge1xuICAgICAgICByZXNwb25zZSA9IG51bGw7XG4gICAgICB9IGVsc2UgaWYgKHN0YXR1cyA+PSA0MDAgfHwgc3RhdHVzIDwgMjAwKSB7XG4gICAgICAgIGVycm9yID0ge1xuICAgICAgICAgIGJvZHk6IEpTT04ucGFyc2UoZGF0YS5qb2luKFwiXCIpKSxcbiAgICAgICAgICBoZWFkZXJzXG4gICAgICAgIH07XG4gICAgICB9IGVsc2UgaWYgKG1ldGhvZCAhPT0gXCJERUxFVEVcIikge1xuICAgICAgICBpZiAoISFza2lwSnNvblBhcnNpbmcpIHtcbiAgICAgICAgICByZXNwb25zZSA9IGRhdGEuam9pbihcIlwiKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXNwb25zZSA9IEpTT04ucGFyc2UoZGF0YS5qb2luKFwiXCIpKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzcG9uc2UgPSBkYXRhO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKHBhcnNlRXJyb3IpIHtcbiAgICAgIHRoaXMubG9nZ2VyLmVycm9yKHBhcnNlRXJyb3IpO1xuICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoXG4gICAgICAgIFwiY291bGQgbm90IGNvbnZlcnQgQVBJIHJlc3BvbnNlIHRvIEpTT04sIGFib3ZlIGVycm9yIGlzIGlnbm9yZWQgYW5kIHJhdyBBUEkgcmVzcG9uc2UgaXMgcmV0dXJuZWQgdG8gY2xpZW50XCJcbiAgICAgICk7XG4gICAgICB0aGlzLmxvZ2dlci5lcnJvcihcIlJhdyBFcnJvciBtZXNzYWdlIGZyb20gQVBJIFwiKTtcbiAgICAgIHRoaXMubG9nZ2VyLmVycm9yKGBcIiR7ZGF0YX1cImApO1xuXG4gICAgICBlcnJvciA9IHtcbiAgICAgICAgc3RhdHVzOiBzdGF0dXMsXG4gICAgICAgIG1lc3NhZ2U6IFwiVGhlIEFQSSByZXNwb25zZSBjb3VsZCBub3QgYmUgcGFyc2VkLlwiLFxuICAgICAgICBib2R5OiBkYXRhLmpvaW4oXCJcIiksXG4gICAgICAgIHBhcnNlRXJyb3I6IHBhcnNlRXJyb3JcbiAgICAgIH07XG4gICAgfVxuXG4gICAgaWYgKGVycm9yKSB7XG4gICAgICBlcnJvci5zdGF0dXNDb2RlID0gc3RhdHVzO1xuICAgICAgZXJyb3IuaGVhZGVycyA9IGhlYWRlcnM7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBjYWxsYmFjayA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICBpZiAodHlwZW9mIGN1c3RvbVJlc3BvbnNlUGFyc2VyID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgLy8gZG9uJ3QgdHJ5IHRvIHBhcnNlIHRoZSByZXNwb25zZSBvbiBlcnJvcnNcbiAgICAgICAgaWYgKHJlc3BvbnNlKSB7XG4gICAgICAgICAgcmVzcG9uc2UgPSBjdXN0b21SZXNwb25zZVBhcnNlcihyZXNwb25zZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGNhbGxiYWNrKGVycm9yLCByZXNwb25zZSk7XG4gICAgfVxuICB9XG5cbiAgX2FkZExpbWl0ZWRBY2Nlc3NNZXNzYWdlVG9FcnJvcnMoY2FsbGJhY2ssIGxpbWl0ZWRBY2Nlc3NTdGF0dXMpIHtcbiAgICByZXR1cm4gZnVuY3Rpb24oZXJyLCBkYXRhKSB7XG4gICAgICBpZiAoZXJyICYmIGVyci5zdGF0dXMgPT0gbGltaXRlZEFjY2Vzc1N0YXR1cykge1xuICAgICAgICBlcnIuX0lORk9fID1cbiAgICAgICAgICBcIlRoaXMgZW5kcG9pbnQgbWF5IG5lZWQgYWN0aXZhdGluZyBvbiB5b3VyIGFjY291bnQuIFBsZWFzZSBlbWFpbCBzdXBwb3J0QG5leG1vLmNvbSBmb3IgbW9yZSBpbmZvcm1hdGlvblwiO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gY2FsbGJhY2soZXJyLCBkYXRhKTtcbiAgICB9O1xuICB9XG5cbiAgZ2V0KHBhdGgsIHBhcmFtcywgY2FsbGJhY2ssIHVzZUp3dCA9IGZhbHNlLCB1c2VCYXNpY0F1dGggPSBmYWxzZSkge1xuICAgIGlmICghY2FsbGJhY2spIHtcbiAgICAgIGlmICh0eXBlb2YgcGFyYW1zID09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICBjYWxsYmFjayA9IHBhcmFtcztcbiAgICAgICAgcGFyYW1zID0ge307XG4gICAgICB9XG4gICAgfVxuXG4gICAgcGFyYW1zID0gcGFyYW1zIHx8IHt9O1xuICAgIGlmICghdXNlSnd0ICYmICF1c2VCYXNpY0F1dGgpIHtcbiAgICAgIHBhcmFtc1tcImFwaV9rZXlcIl0gPSB0aGlzLmNyZWRlbnRpYWxzLmFwaUtleTtcbiAgICAgIHBhcmFtc1tcImFwaV9zZWNyZXRcIl0gPSB0aGlzLmNyZWRlbnRpYWxzLmFwaVNlY3JldDtcbiAgICB9XG5cbiAgICBwYXRoID0gcGF0aCArIFwiP1wiICsgcXVlcnlzdHJpbmcuc3RyaW5naWZ5KHBhcmFtcyk7XG5cbiAgICBjb25zdCBoZWFkZXJzID0ge1xuICAgICAgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCJcbiAgICB9O1xuICAgIGlmICh1c2VKd3QpIHtcbiAgICAgIGhlYWRlcnNbXCJBdXRob3JpemF0aW9uXCJdID0gYEJlYXJlciAke3RoaXMuY3JlZGVudGlhbHMuZ2VuZXJhdGVKd3QoKX1gO1xuICAgIH1cbiAgICBpZiAodXNlQmFzaWNBdXRoKSB7XG4gICAgICBoZWFkZXJzW1wiQXV0aG9yaXphdGlvblwiXSA9IGBCYXNpYyAke0J1ZmZlci5mcm9tKFxuICAgICAgICB0aGlzLmNyZWRlbnRpYWxzLmFwaUtleSArIFwiOlwiICsgdGhpcy5jcmVkZW50aWFscy5hcGlTZWNyZXRcbiAgICAgICkudG9TdHJpbmcoXCJiYXNlNjRcIil9YDtcbiAgICB9XG5cbiAgICB0aGlzLnJlcXVlc3QoXG4gICAgICB7XG4gICAgICAgIHBhdGg6IHBhdGgsXG4gICAgICAgIGhlYWRlcnNcbiAgICAgIH0sXG4gICAgICBcIkdFVFwiLFxuICAgICAgY2FsbGJhY2tcbiAgICApO1xuICB9XG5cbiAgZGVsZXRlKHBhdGgsIGNhbGxiYWNrLCB1c2VKd3QsIHVzZUJhc2ljQXV0aCkge1xuICAgIGxldCBwYXJhbXMgPSB7fTtcbiAgICBpZiAoIXVzZUp3dCAmJiAhdXNlQmFzaWNBdXRoKSB7XG4gICAgICBwYXJhbXNbXCJhcGlfa2V5XCJdID0gdGhpcy5jcmVkZW50aWFscy5hcGlLZXk7XG4gICAgICBwYXJhbXNbXCJhcGlfc2VjcmV0XCJdID0gdGhpcy5jcmVkZW50aWFscy5hcGlTZWNyZXQ7XG4gICAgfVxuXG4gICAgbGV0IGhlYWRlcnMgPSB7fTtcblxuICAgIGlmICh1c2VCYXNpY0F1dGgpIHtcbiAgICAgIGhlYWRlcnNbXCJBdXRob3JpemF0aW9uXCJdID0gYEJhc2ljICR7QnVmZmVyLmZyb20oXG4gICAgICAgIHRoaXMuY3JlZGVudGlhbHMuYXBpS2V5ICsgXCI6XCIgKyB0aGlzLmNyZWRlbnRpYWxzLmFwaVNlY3JldFxuICAgICAgKS50b1N0cmluZyhcImJhc2U2NFwiKX1gO1xuICAgIH1cbiAgICBwYXRoID0gcGF0aCArIFwiP1wiICsgcXVlcnlzdHJpbmcuc3RyaW5naWZ5KHBhcmFtcyk7XG5cbiAgICB0aGlzLnJlcXVlc3QoXG4gICAgICB7XG4gICAgICAgIHBhdGg6IHBhdGgsXG4gICAgICAgIGhlYWRlcnNcbiAgICAgIH0sXG4gICAgICBcIkRFTEVURVwiLFxuICAgICAgY2FsbGJhY2tcbiAgICApO1xuICB9XG5cbiAgcG9zdEZpbGUocGF0aCwgb3B0aW9ucywgY2FsbGJhY2ssIHVzZUp3dCkge1xuICAgIGxldCBxcyA9IHt9O1xuICAgIGlmICghdXNlSnd0KSB7XG4gICAgICBxc1tcImFwaV9rZXlcIl0gPSB0aGlzLmNyZWRlbnRpYWxzLmFwaUtleTtcbiAgICAgIHFzW1wiYXBpX3NlY3JldFwiXSA9IHRoaXMuY3JlZGVudGlhbHMuYXBpU2VjcmV0O1xuICAgIH1cblxuICAgIGlmIChPYmplY3Qua2V5cyhxcykubGVuZ3RoKSB7XG4gICAgICBsZXQgam9pbkNoYXIgPSBcIj9cIjtcbiAgICAgIGlmIChwYXRoLmluZGV4T2Yoam9pbkNoYXIpICE9PSAtMSkge1xuICAgICAgICBqb2luQ2hhciA9IFwiJlwiO1xuICAgICAgfVxuICAgICAgcGF0aCA9IHBhdGggKyBqb2luQ2hhciArIHF1ZXJ5c3RyaW5nLnN0cmluZ2lmeShxcyk7XG4gICAgfVxuXG4gICAgY29uc3QgZmlsZSA9IG9wdGlvbnMuZmlsZTtcbiAgICBkZWxldGUgb3B0aW9ucy5maWxlOyAvLyBXZSBkb24ndCBzZW5kIHRoaXMgYXMgbWV0YWRhdGFcblxuICAgIGNvbnN0IGZvcm1EYXRhID0ge307XG5cbiAgICBpZiAoZmlsZSkge1xuICAgICAgZm9ybURhdGFbXCJmaWxlZGF0YVwiXSA9IHtcbiAgICAgICAgdmFsdWU6IGZpbGUsXG4gICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICBmaWxlbmFtZTogb3B0aW9ucy5maWxlbmFtZSB8fCBudWxsXG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfVxuXG4gICAgaWYgKG9wdGlvbnMuaW5mbykge1xuICAgICAgZm9ybURhdGEuaW5mbyA9IEpTT04uc3RyaW5naWZ5KG9wdGlvbnMuaW5mbyk7XG4gICAgfVxuXG4gICAgaWYgKG9wdGlvbnMudXJsKSB7XG4gICAgICBmb3JtRGF0YS51cmwgPSBvcHRpb25zLnVybDtcbiAgICB9XG5cbiAgICBsZXQgcHJvdG9jb2wgPSB0aGlzLnBvcnQgPT09IDQ0MyA/IFwiaHR0cHM6Ly9cIiA6IFwiaHR0cDovL1wiO1xuXG4gICAgdGhpcy5yZXF1ZXN0TGliLnBvc3QoXG4gICAgICB7XG4gICAgICAgIHVybDogcHJvdG9jb2wgKyB0aGlzLmhvc3QgKyBwYXRoLFxuICAgICAgICBmb3JtRGF0YTogZm9ybURhdGEsXG4gICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICBBdXRob3JpemF0aW9uOiBgQmVhcmVyICR7dGhpcy5jcmVkZW50aWFscy5nZW5lcmF0ZUp3dCgpfWBcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIGNhbGxiYWNrXG4gICAgKTtcbiAgfVxuXG4gIHBvc3QocGF0aCwgcGFyYW1zLCBjYWxsYmFjaywgdXNlSnd0LCBoZWFkZXJzKSB7XG4gICAgbGV0IHFzID0ge307XG4gICAgaWYgKCF1c2VKd3QpIHtcbiAgICAgIHFzW1wiYXBpX2tleVwiXSA9IHRoaXMuY3JlZGVudGlhbHMuYXBpS2V5O1xuICAgICAgcXNbXCJhcGlfc2VjcmV0XCJdID0gdGhpcy5jcmVkZW50aWFscy5hcGlTZWNyZXQ7XG4gICAgfVxuXG4gICAgbGV0IGpvaW5DaGFyID0gXCI/XCI7XG4gICAgaWYgKHBhdGguaW5kZXhPZihqb2luQ2hhcikgIT09IC0xKSB7XG4gICAgICBqb2luQ2hhciA9IFwiJlwiO1xuICAgIH1cblxuICAgIHBhdGggPSBwYXRoICsgam9pbkNoYXIgKyBxdWVyeXN0cmluZy5zdHJpbmdpZnkocXMpO1xuXG4gICAgaGVhZGVycyA9IGhlYWRlcnMgfHwge307XG4gICAgaWYgKHVzZUp3dCkge1xuICAgICAgaGVhZGVyc1tcIkF1dGhvcml6YXRpb25cIl0gPSBgQmVhcmVyICR7dGhpcy5jcmVkZW50aWFscy5nZW5lcmF0ZUp3dCgpfWA7XG4gICAgfVxuXG4gICAgbGV0IGVuY29kZWRQYXJhbXM7XG4gICAgaWYgKGhlYWRlcnNbXCJDb250ZW50LVR5cGVcIl0gPT0gXCJhcHBsaWNhdGlvbi9qc29uXCIpIHtcbiAgICAgIGVuY29kZWRQYXJhbXMgPSBKU09OLnN0cmluZ2lmeShwYXJhbXMpO1xuICAgIH0gZWxzZSB7XG4gICAgICBlbmNvZGVkUGFyYW1zID0gcXVlcnlzdHJpbmcuc3RyaW5naWZ5KHBhcmFtcyk7XG4gICAgfVxuXG4gICAgdGhpcy5yZXF1ZXN0KHsgcGF0aCwgYm9keTogZW5jb2RlZFBhcmFtcywgaGVhZGVycyB9LCBcIlBPU1RcIiwgY2FsbGJhY2spO1xuICB9XG5cbiAgcG9zdEpzb24ocGF0aCwgcGFyYW1zLCBjYWxsYmFjaywgdXNlSnd0LCB1c2VCYXNpY0F1dGgpIHtcbiAgICBsZXQgcXMgPSB7fTtcbiAgICBpZiAoIXVzZUp3dCAmJiAhdXNlQmFzaWNBdXRoKSB7XG4gICAgICBxc1tcImFwaV9rZXlcIl0gPSB0aGlzLmNyZWRlbnRpYWxzLmFwaUtleTtcbiAgICAgIHFzW1wiYXBpX3NlY3JldFwiXSA9IHRoaXMuY3JlZGVudGlhbHMuYXBpU2VjcmV0O1xuICAgIH1cblxuICAgIGxldCBqb2luQ2hhciA9IFwiP1wiO1xuICAgIGlmIChwYXRoLmluZGV4T2Yoam9pbkNoYXIpICE9PSAtMSkge1xuICAgICAgam9pbkNoYXIgPSBcIiZcIjtcbiAgICB9XG5cbiAgICBwYXRoID0gcGF0aCArIGpvaW5DaGFyICsgcXVlcnlzdHJpbmcuc3RyaW5naWZ5KHFzKTtcblxuICAgIGxldCBoZWFkZXJzID0ge1xuICAgICAgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCJcbiAgICB9O1xuICAgIGlmICh1c2VCYXNpY0F1dGgpIHtcbiAgICAgIGhlYWRlcnNbXCJBdXRob3JpemF0aW9uXCJdID0gYEJhc2ljICR7QnVmZmVyLmZyb20oXG4gICAgICAgIHRoaXMuY3JlZGVudGlhbHMuYXBpS2V5ICsgXCI6XCIgKyB0aGlzLmNyZWRlbnRpYWxzLmFwaVNlY3JldFxuICAgICAgKS50b1N0cmluZyhcImJhc2U2NFwiKX1gO1xuICAgIH1cblxuICAgIHRoaXMucmVxdWVzdChcbiAgICAgIHtcbiAgICAgICAgcGF0aDogcGF0aCxcbiAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkocGFyYW1zKSxcbiAgICAgICAgaGVhZGVyc1xuICAgICAgfSxcbiAgICAgIFwiUE9TVFwiLFxuICAgICAgY2FsbGJhY2tcbiAgICApO1xuICB9XG5cbiAgcG9zdFVzZVF1ZXJ5U3RyaW5nKHBhdGgsIHBhcmFtcywgY2FsbGJhY2ssIHVzZUp3dCkge1xuICAgIHBhcmFtcyA9IHBhcmFtcyB8fCB7fTtcbiAgICBpZiAoIXVzZUp3dCkge1xuICAgICAgcGFyYW1zW1wiYXBpX2tleVwiXSA9IHRoaXMuY3JlZGVudGlhbHMuYXBpS2V5O1xuICAgICAgcGFyYW1zW1wiYXBpX3NlY3JldFwiXSA9IHRoaXMuY3JlZGVudGlhbHMuYXBpU2VjcmV0O1xuICAgIH1cblxuICAgIHBhdGggPSBwYXRoICsgXCI/XCIgKyBxdWVyeXN0cmluZy5zdHJpbmdpZnkocGFyYW1zKTtcblxuICAgIHRoaXMucmVxdWVzdChcbiAgICAgIHtcbiAgICAgICAgcGF0aDogcGF0aFxuICAgICAgfSxcbiAgICAgIFwiUE9TVFwiLFxuICAgICAgY2FsbGJhY2tcbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IEh0dHBDbGllbnQ7XG4iXX0= |
{ | ||
"name": "@vonage/server-sdk", | ||
"author": "vonage", | ||
"version": "2.10.5-beta", | ||
"version": "2.10.5-beta-2", | ||
"main": "lib/Vonage", | ||
@@ -6,0 +6,0 @@ "types": "./typings/index.d.ts", |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
498941
4060