Comparing version 0.1.14 to 0.1.15
@@ -107,2 +107,13 @@ 'use strict'; | ||
}); | ||
mock.connection.recreateSocket = function () { | ||
var _console3; | ||
for (var _len5 = arguments.length, newInitParams2 = Array(_len5), _key5 = 0; _key5 < _len5; _key5++) { | ||
newInitParams2[_key5] = arguments[_key5]; | ||
} | ||
__DEV__ && (_console3 = console).log.apply(_console3, ['recreateSocket2'].concat(newInitParams2)); | ||
return mock.recreateSocket.apply(mock, newInitParams2); | ||
}; | ||
return mock.connection; | ||
@@ -582,2 +593,2 @@ } | ||
exports.default = ApiClient; | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9hcGlxdWVyeS5qcyJdLCJuYW1lcyI6WyJGRVRDSF9QQVJBTVMiLCJpb01vY2siLCJpbml0UGFyYW1zIiwiX19ERVZfXyIsImxvZyIsIm1vY2siLCJNYW5hZ2VyIiwiU29ja2V0IiwiY29ubmVjdGlvbiIsImV2ZW50cyIsIm9uIiwicGFyYW1zIiwicHVzaCIsInVzZSIsImRpc2Nvbm5lY3QiLCJyZWNyZWF0ZVNvY2tldCIsIm5ld0luaXRQYXJhbXMiLCJmb3JFYWNoIiwiZXZlbnQiLCJuYW1lIiwiQXBpQ2xpZW50IiwidGhyb3dFcnJvciIsImVyciIsInJlcyIsInJlcSIsInNob3dFcnJvciIsInN0ciIsIkpTT04iLCJzdHJpbmdpZnkiLCJqc29uIiwiZXJyb3IiLCJtZXNzYWdlIiwiZXJyMiIsIkVycm9yIiwiaW8iLCJyb290IiwiYmFzZSIsInVybCIsIndzQ29uZmlnIiwid3MiLCJ3c0Nvbm5lY3Rpb25zIiwiYXV0aFRva2VuIiwid3NSZWNvbm5lY3QiLCJjdHgiLCJ0eXBlIiwic3RhdHVzIiwic3RhdHVzVGV4dCIsInRleHRFcnIiLCJqc29uRXJyIiwicGF0aCIsIm9wdGlvbnMiLCJzdWJzdHIiLCJwb3J0IiwibGVuZ3RoIiwic2VhcmNoIiwicmVwbGFjZSIsImFycmF5IiwibWFwIiwiYSIsImZpbHRlciIsImkiLCJqb2luIiwicXMiLCJpbmRleE9mIiwiY29uc3RydWN0b3IiLCJPYmplY3QiLCJhc3NpZ24iLCJib2R5IiwiZGF0YSIsImhlYWRlcnMiLCJBY2NlcHQiLCJfYm9keSIsImluY2x1ZGVzIiwiZm9ybSIsImtleXMiLCJrZXkiLCJhcHBlbmQiLCJBdXRob3JpemF0aW9uIiwicXVlcnlQYXJhbXMiLCJjcmVhdGVVcmwiLCJtZXRob2QiLCJhZnRlckZldGNoIiwicGFyc2VSZXN1bHQiLCJ0aW1lb3V0IiwicmVzdWx0IiwidGV4dCIsInBhcnNlIiwiZ2V0Q3R4IiwiZmV0Y2giLCJ0cmFjZSIsInRoZW4iLCJQcm9taXNlIiwicmFjZSIsInJlc29sdmUiLCJyZWplY3QiLCJzZXRUaW1lb3V0Iiwic29ja2V0IiwiY29uc29sZSIsIm9wdHMiLCJ0b2tlbkluQ29va2llIiwicXVlcnkiLCJ0b2tlbiIsInBhcmFtczIiLCJjcmVhdGUiLCJtZXJnZSIsImdsb2JhbCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOzs7Ozs7Ozs7Ozs7Ozs4RUFOQTs7O0FBT0E7QUFDQSxJQUFNQSxlQUFlLENBQ25CLFFBRG1CLEVBRW5CLEtBRm1CLEVBR25CLFNBSG1CLEVBSW5CLFNBSm1CLEVBS25CLFVBTG1CLEVBTW5CLGdCQU5tQixFQU9uQixNQVBtQixFQVFuQixhQVJtQixFQVNuQixVQVRtQixFQVVuQixXQVZtQixFQVduQixPQVhtQixDQUFyQjs7QUFjQSxTQUFTQyxNQUFULEdBQStCO0FBQUE7O0FBQUEsb0NBQVpDLFVBQVk7QUFBWkEsY0FBWTtBQUFBOztBQUM3QkMsYUFBVyxxQkFBUUMsR0FBUixrQkFBWSxRQUFaLFNBQXlCRixVQUF6QixFQUFYO0FBQ0E7QUFDQSxNQUFNRyxPQUFPO0FBQ1hDLGFBQVMsNEJBQUdBLE9BREQ7QUFFWEMsWUFBUSw0QkFBR0EsTUFGQTtBQUdYQyxnQkFBWSxJQUhEO0FBSVhDLFlBQVEsRUFKRztBQUtYQyxNQUxXLGdCQUtHO0FBQUEseUNBQVJDLE1BQVE7QUFBUkEsY0FBUTtBQUFBOztBQUNaTixXQUFLSSxNQUFMLENBQVlHLElBQVosRUFBa0IsSUFBbEIsU0FBMkJELE1BQTNCO0FBQ0QsS0FQVTtBQVFYRSxPQVJXLGlCQVFJO0FBQUEseUNBQVJGLE1BQVE7QUFBUkEsY0FBUTtBQUFBOztBQUNiTixXQUFLSSxNQUFMLENBQVlHLElBQVosRUFBa0IsS0FBbEIsU0FBNEJELE1BQTVCO0FBQ0QsS0FWVTtBQVdYRyxjQVhXLHdCQVdXO0FBQUE7O0FBQ3BCLCtCQUFLTixVQUFMLEVBQWdCTSxVQUFoQjtBQUNELEtBYlU7QUFjWEMsa0JBZFcsNEJB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QUFSLElBQWMsQ0FBQ3dDLFFBQVF4QyxFQUFSLENBQVd1QyxLQUExQixJQUFtQyxLQUFLNUQsU0FBNUMsRUFBdUQ2RCxRQUFReEMsRUFBUixDQUFXdUMsS0FBWCxHQUFtQixLQUFLNUQsU0FBeEI7QUFDeEQ7O0FBRUQsVUFBTWxCLE1BQU0sS0FBS1csRUFBTCxDQUNWLEtBQUs2QyxTQUFMLENBQWU5QixJQUFmLEVBQXFCcUQsT0FBckIsQ0FEVSxlQUdMLEtBQUtoRSxRQUFMLENBQWNZLE9BSFQsRUFJTHZDLE1BSkssRUFBWjtBQU9BLGFBQU9ZLEdBQVA7QUFDRDs7OzhCQWxUZ0JDLEcsRUFBSztBQUNwQjtBQUNBO0FBQ0EsMEJBQ0tBLEdBREw7QUFFRStFLGNBRkYsa0JBRVM1RixNQUZULEVBRWlCO0FBQ2IsY0FBTXlGLFFBQVEsS0FBS3RDLEVBQUwsQ0FBUWxDLFNBQVIsQ0FBa0JqQixNQUFsQixDQUFkO0FBQ0EsaUJBQU8sQ0FBQyxLQUFLc0MsSUFBTCxJQUFhLEdBQWQsS0FBc0JtRCxjQUFZQSxLQUFaLEdBQXNCLEVBQTVDLENBQVA7QUFDRCxTQUxIO0FBTUVJLGFBTkYsaUJBTVE3RixNQU5SLEVBTWdCO0FBQ1osaUJBQU8sS0FBSzRGLE1BQUwsY0FDRixLQUFLSCxLQURILEVBRUZ6RixNQUZFLEVBQVA7QUFJRDtBQVhIO0FBYUQ7Ozs7OztBQXRDa0JTLFMsQ0FDWm9FLEssR0FBUWlCLE9BQU9qQixLO0FBREhwRSxTLENBRVowQyxFO2tCQUZZMUMsUyIsImZpbGUiOiJhcGlxdWVyeS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGltcG9ydCBmZXRjaCBmcm9tICdub2RlLWZldGNoJztcbmltcG9ydCBpc1BsYWluT2JqZWN0IGZyb20gJ2xvZGFzaC5pc3BsYWlub2JqZWN0JztcbmltcG9ydCBwaWNrIGZyb20gJ2xvZGFzaC5waWNrJztcbmltcG9ydCBxcyBmcm9tICdxcyc7XG5pbXBvcnQgRm9ybURhdGEgZnJvbSAnZm9ybS1kYXRhJztcbmltcG9ydCBpbyBmcm9tICcuL3NvY2tldC1pby11bml2ZXJzYWwnO1xuaW1wb3J0IHRyaW0gZnJvbSAnLi90cmltJztcbi8vIGltcG9ydCBmZXRjaCBmcm9tICdpc29tb3JwaGljLWZldGNoJztcbmNvbnN0IEZFVENIX1BBUkFNUyA9IFtcbiAgJ21ldGhvZCcsXG4gICd1cmwnLFxuICAnaGVhZGVycycsXG4gICdjb250ZXh0JyxcbiAgJ3JlZmVycmVyJyxcbiAgJ3JlZmVycmVyUG9saWN5JyxcbiAgJ21vZGUnLFxuICAnY3JlZGVudGlhbHMnLFxuICAncmVkaXJlY3QnLFxuICAnaW50ZWdyaXR5JyxcbiAgJ2NhY2hlJyxcbl07XG5cbmZ1bmN0aW9uIGlvTW9jayguLi5pbml0UGFyYW1zKSB7XG4gIF9fREVWX18gJiYgY29uc29sZS5sb2coJ2lvTW9jaycsIC4uLmluaXRQYXJhbXMpO1xuICAvLyBjb25zdCBzb2NrZXQgPSBpbyguLi5wYXJhbXMpXG4gIGNvbnN0IG1vY2sgPSB7XG4gICAgTWFuYWdlcjogaW8uTWFuYWdlcixcbiAgICBTb2NrZXQ6IGlvLlNvY2tldCxcbiAgICBjb25uZWN0aW9uOiBudWxsLFxuICAgIGV2ZW50czogW10sXG4gICAgb24oLi4ucGFyYW1zKSB7XG4gICAgICBtb2NrLmV2ZW50cy5wdXNoKFsnb24nLCAuLi5wYXJhbXNdKTtcbiAgICB9LFxuICAgIHVzZSguLi5wYXJhbXMpIHtcbiAgICAgIG1vY2suZXZlbnRzLnB1c2goWyd1c2UnLCAuLi5wYXJhbXNdKTtcbiAgICB9LFxuICAgIGRpc2Nvbm5lY3QoLi4ucGFyYW1zKSB7XG4gICAgICBtb2NrLmNvbm5lY3Rpb24uZGlzY29ubmVjdCguLi5wYXJhbXMpO1xuICAgIH0sXG4gICAgcmVjcmVhdGVTb2NrZXQoLi4ubmV3SW5pdFBhcmFtcykge1xuICAgICAgX19ERVZfXyAmJiBjb25zb2xlLmxvZygncmVjcmVhdGVTb2NrZXQnLCAuLi5uZXdJbml0UGFyYW1zKTtcbiAgICAgIGlmIChtb2NrLmNvbm5lY3Rpb24gJiYgbW9jay5jb25uZWN0aW9uLmRpc2Nvbm5lY3QpIHtcbiAgICAgICAgbW9jay5jb25uZWN0aW9uLmRpc2Nvbm5lY3QoKTtcbiAgICAgIH1cbiAgICAgIG1vY2suY29ubmVjdGlvbiA9IGlvKC4uLm5ld0luaXRQYXJhbXMpO1xuICAgICAgbW9jay5ldmVudHMuZm9yRWFjaCgoZXZlbnQpID0+IHtcbiAgICAgICAgY29uc3QgW25hbWUsIC4uLnBhcmFtc10gPSBldmVudDtcbiAgICAgICAgbW9jay5jb25uZWN0aW9uW25hbWVdKC4uLnBhcmFtcyk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBtb2NrLmNvbm5lY3Rpb247XG4gICAgfSxcbiAgfTtcbiAgcmV0dXJuIG1vY2sucmVjcmVhdGVTb2NrZXQoLi4uaW5pdFBhcmFtcyk7XG59XG5cbi8vIGNvbnN0IERFQlVHID0gX19ERVZfXztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQXBpQ2xpZW50IHtcbiAgc3RhdGljIGZldGNoID0gZ2xvYmFsLmZldGNoO1xuICBzdGF0aWMgcXMgPSBxc1xuICAvLyBpbyA9IGlvXG5cbiAgY29uc3RydWN0b3IocGFyYW1zID0ge30pIHtcbiAgICAvLyBjb25zb2xlLmxvZygnQXBpQ2xpZW50JywgcGFyYW1zKTtcbiAgICB0aGlzLmlvID0gaW9Nb2NrO1xuICAgIHRoaXMubG9nID0gcGFyYW1zLmxvZztcbiAgICB0aGlzLnJvb3QgPSBwYXJhbXMucm9vdDtcbiAgICB0aGlzLmJhc2UgPSBwYXJhbXMuYmFzZTtcbiAgICB0aGlzLnVybCA9IHBhcmFtcy51cmw7XG4gICAgdGhpcy53c0NvbmZpZyA9IHBhcmFtcy53cztcbiAgICB0aGlzLndzQ29ubmVjdGlvbnMgPSB7fTtcbiAgICB0aGlzLmF1dGhUb2tlbiA9IHBhcmFtcy5hdXRoVG9rZW4gfHwgbnVsbDtcbiAgfVxuXG4gIHNldEF1dGhUb2tlbihhdXRoVG9rZW4pIHtcbiAgICB0aGlzLmF1dGhUb2tlbiA9IGF1dGhUb2tlbjtcbiAgICB0aGlzLndzUmVjb25uZWN0KCk7XG4gIH1cblxuICBzdGF0aWMgY3JlYXRlUmVxKHJlcSkge1xuICAgIC8vIHJlcS5wYXRoLFxuICAgIC8vIHJlcS5xdWVyeSxcbiAgICByZXR1cm4ge1xuICAgICAgLi4ucmVxLFxuICAgICAgY3JlYXRlKHBhcmFtcykge1xuICAgICAgICBjb25zdCBxdWVyeSA9IHRoaXMucXMuc3RyaW5naWZ5KHBhcmFtcyk7XG4gICAgICAgIHJldHVybiAodGhpcy5wYXRoIHx8ICcvJykgKyAocXVlcnkgPyBgPyR7cXVlcnl9YCA6ICcnKTtcbiAgICAgIH0sXG4gICAgICBtZXJnZShwYXJhbXMpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlKHtcbiAgICAgICAgICAuLi50aGlzLnF1ZXJ5LFxuICAgICAgICAgIC4uLnBhcmFtcyxcbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICB0aHJvd0Vycm9yID0gYXN5bmMgKHsgZXJyLCByZXMsIHJlcSB9KSA9PiB7XG4gICAgaWYgKHRoaXMuc2hvd0Vycm9yICYmIHRoaXMubG9nKSB7XG4gICAgICBjb25zdCBzdHIgPSBgXFxcbj09PT09PT09PT09PT09XG4gIGZldGNoIGVycm9yOlxuJHtpc1BsYWluT2JqZWN0KGVycikgPyBKU09OLnN0cmluZ2lmeShlcnIsIG51bGwsIDIpIDogZXJyfVxuICByZXE6XG4ke0pTT04uc3RyaW5naWZ5KHJlcSwgbnVsbCwgMil9XG4gIGpzb246XG4ke0pTT04uc3RyaW5naWZ5KHJlcy5qc29uLCBudWxsLCAyKX1cbj09PT09PT09PT09PT09XFxcbmA7XG4gICAgICB0aGlzLmxvZy5lcnJvcihzdHIpO1xuICAgIH1cbiAgICBjb25zdCBtZXNzYWdlID0gZXJyICYmIGVyci5tZXNzYWdlIHx8IGVycjtcbiAgICBjb25zdCBlcnIyID0gbmV3IEVycm9yKGlzUGxhaW5PYmplY3QobWVzc2FnZSkgPyBKU09OLnN0cmluZ2lmeShtZXNzYWdlKSA6IG1lc3NhZ2UpO1xuICAgIGVycjIucmVzID0gcmVzO1xuICAgIGVycjIucmVxID0gcmVxO1xuICAgIHRocm93IGVycjI7XG4gIH1cblxuICBhc3luYyBhZnRlckZldGNoKGN0eCkge1xuICAgIGNvbnN0IHsgcmVzLCB0aHJvd0Vycm9yIH0gPSBjdHg7XG4gICAgaWYgKHJlcy5qc29uICYmIHJlcy5qc29uLmVycikge1xuICAgICAgYXdhaXQgdGhyb3dFcnJvcih7XG4gICAgICAgIC4uLmN0eCxcbiAgICAgICAgZXJyOiB7XG4gICAgICAgICAgdHlwZTogJ0NVU1RPTV9FUlJPUicsXG4gICAgICAgICAgLi4ucmVzLmpzb24uZXJyLFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfVxuICAgIGlmIChyZXMuc3RhdHVzID49IDQwMCkge1xuICAgICAgY29uc3QgdHlwZSA9ICdSRVNfU1RBVFVTX0VSUk9SJztcbiAgICAgIGF3YWl0IHRocm93RXJyb3Ioe1xuICAgICAgICAuLi5jdHgsXG4gICAgICAgIGVycjoge1xuICAgICAgICAgIHR5cGUsXG4gICAgICAgICAgc3RhdHVzOiByZXMuc3RhdHVzLFxuICAgICAgICAgIHN0YXR1c1RleHQ6IHJlcy5zdGF0dXNUZXh0LFxuICAgICAgICAgIG1lc3NhZ2U6IGAke3R5cGV9OiAke3Jlcy5zdGF0dXN9ICR7cmVzLnN0YXR1c1RleHR9YCxcbiAgICAgICAgICAuLi4ocmVzLmpzb24gfHwge30pLFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfVxuICAgIGlmIChyZXMudGV4dEVycikge1xuICAgICAgY29uc3QgdHlwZSA9ICdURVhUX1BBUlNFX0VSUk9SJztcbiAgICAgIGF3YWl0IGN0eC50aHJvd0Vycm9yKHtcbiAgICAgICAgLi4uY3R4LFxuICAgICAgICByZXMsXG4gICAgICAgIGVycjoge1xuICAgICAgICAgIHR5cGUsXG4gICAgICAgICAgbWVzc2FnZTogJ9Ce0YjQuNCx0LrQsCDQv9C10YDQtdC00LDRh9C4INC00LDQvdC90YvRhScsXG4gICAgICAgICAgZXJyOiByZXMudGV4dEVycixcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIH1cbiAgICBpZiAocmVzLmpzb25FcnIpIHtcbiAgICAgIGNvbnN0IHR5cGUgPSAnSlNPTl9QQVJTRV9FUlJPUic7XG4gICAgICBhd2FpdCBjdHgudGhyb3dFcnJvcih7XG4gICAgICAgIC4uLmN0eCxcbiAgICAgICAgcmVzLFxuICAgICAgICBlcnI6IHtcbiAgICAgICAgICB0eXBlLFxuICAgICAgICAgIG1lc3NhZ2U6ICfQntGI0LjQsdC60LAg0YHQtdGA0LLQtdGA0LAnLFxuICAgICAgICAgIC8vIG1lc3NhZ2U6IHR5cGUsXG4gICAgICAgICAgZXJyOiByZXMuanNvbkVycixcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gcmVzLmpzb247XG4gIH1cblxuICBjcmVhdGVVcmwocGF0aCwgb3B0aW9ucyA9IHt9KSB7XG4gICAgaWYgKHBhdGguc3Vic3RyKDAsIDUpID09PSAnaHR0cDonIHx8IHBhdGguc3Vic3RyKDAsIDYpID09PSAnaHR0cHM6Jykge1xuICAgICAgcmV0dXJuIHBhdGg7XG4gICAgfVxuICAgIGxldCB1cmwgPSBvcHRpb25zLnVybCB8fCB0aGlzLnVybCB8fCAnLyc7XG4gICAgY29uc3QgcG9ydCA9IG9wdGlvbnMucG9ydCB8fCB0aGlzLnBvcnQgfHwgbnVsbDtcblxuICAgIGlmICh1cmwgJiYgdXJsLmxlbmd0aCA+IDEgJiYgcG9ydCkge1xuICAgICAgaWYgKHVybC5zZWFyY2goLzooXFxkKykvKSAhPT0gLTEpIHtcbiAgICAgICAgdXJsID0gdXJsLnJlcGxhY2UoLzooXFxkKykvLCBgOiR7cG9ydH1gKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHVybCA9IGAke3VybH06JHtwb3J0fWA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgYmFzZSA9IG9wdGlvbnMuYmFzZSB8fCB0aGlzLmJhc2U7XG4gICAgY29uc3QgYXJyYXkgPSBbdXJsLCBwYXRoWzBdID09PSAnLycgPyBudWxsIDogdHJpbShiYXNlKSwgdHJpbShwYXRoKV07XG4gICAgdXJsID0gYXJyYXlcbiAgICAgIC5tYXAoYSA9PiB0cmltKGEpKVxuICAgICAgLmZpbHRlcigoYSwgaSkgPT4gKGkgPT09IDAgfHwgYSkpXG4gICAgICAuam9pbignLycpO1xuICAgIGlmIChvcHRpb25zLnFzKSB7XG4gICAgICB1cmwgKz0gKHVybC5pbmRleE9mKCc/JykgPT09IC0xID8gJz8nIDogJyYnKSArIHRoaXMuY29uc3RydWN0b3IucXMuc3RyaW5naWZ5KG9wdGlvbnMucXMpO1xuICAgIH1cbiAgICByZXR1cm4gdXJsO1xuICB9XG5cbiAgZ2V0Q3R4KHVybCwgcGFyYW1zID0ge30pIHtcbiAgICBjb25zdCByZXEgPSBPYmplY3QuYXNzaWduKFxuICAgICAgeyB1cmwgfSxcbiAgICAgIHBpY2socGFyYW1zLCBGRVRDSF9QQVJBTVMpLFxuICAgICk7XG5cbiAgICBjb25zdCBib2R5ID0gcGFyYW1zLmJvZHkgfHwgcGFyYW1zLmRhdGE7XG5cbiAgICBpZiAoIXJlcS5oZWFkZXJzKSByZXEuaGVhZGVycyA9IHt9O1xuICAgIGlmICghcmVxLmhlYWRlcnMuQWNjZXB0KSByZXEuaGVhZGVycy5BY2NlcHQgPSAnYXBwbGljYXRpb24vanNvbic7XG4gICAgaWYgKCFyZXEuaGVhZGVyc1snQ29udGVudC1UeXBlJ10pIHJlcS5oZWFkZXJzWydDb250ZW50LVR5cGUnXSA9ICdhcHBsaWNhdGlvbi9qc29uOyBjaGFyc2V0PXV0Zi04JztcbiAgICBpZiAocmVxLmhlYWRlcnNbJ0NvbnRlbnQtVHlwZSddID09PSAnIScpIHtcbiAgICAgIGRlbGV0ZSByZXEuaGVhZGVyc1snQ29udGVudC1UeXBlJ107XG4gICAgfVxuXG4gICAgcmVxLl9ib2R5ID0gYm9keTtcbiAgICByZXEuYm9keSA9IGJvZHk7XG4gICAgaWYgKGlzUGxhaW5PYmplY3QoYm9keSkpIHtcbiAgICAgIGlmIChyZXEuaGVhZGVyc1snQ29udGVudC1UeXBlJ10gJiYgcmVxLmhlYWRlcnNbJ0NvbnRlbnQtVHlwZSddLmluY2x1ZGVzKCdhcHBsaWNhdGlvbi9qc29uJykpIHtcbiAgICAgICAgcmVxLmJvZHkgPSBKU09OLnN0cmluZ2lmeShib2R5KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGZvcm0gPSBuZXcgRm9ybURhdGEoKTtcbiAgICAgICAgT2JqZWN0LmtleXMoYm9keSkuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgICAgZm9ybS5hcHBlbmQoa2V5LCBib2R5W2tleV0pO1xuICAgICAgICB9KTtcbiAgICAgICAgcmVxLmJvZHkgPSBmb3JtO1xuICAgICAgfVxuICAgIH1cbiAgICBjb25zdCBhdXRoVG9rZW4gPSAocGFyYW1zLmF1dGhUb2tlbiB8fCB0aGlzLmF1dGhUb2tlbik7XG4gICAgaWYgKCFyZXEuaGVhZGVycy5BdXRob3JpemF0aW9uICYmIGF1dGhUb2tlbikge1xuICAgICAgcmVxLmhlYWRlcnMuQXV0aG9yaXphdGlvbiA9IGBCZWFyZXIgJHthdXRoVG9rZW59YDtcbiAgICB9XG5cbiAgICByZXEucXMgPSBwYXJhbXMucXVlcnlQYXJhbXMgfHwgcGFyYW1zLnFzO1xuICAgIGlmIChyZXEucXMpIHtcbiAgICAgIHJlcS51cmwgKz0gKHJlcS51cmwuaW5kZXhPZignPycpID09PSAtMSA/ICc/JyA6ICcmJykgKyB0aGlzLmNvbnN0cnVjdG9yLnFzLnN0cmluZ2lmeShyZXEucXMpO1xuICAgIH1cbiAgICByZXEudXJsID0gdGhpcy5jcmVhdGVVcmwocmVxLnVybCk7XG5cbiAgICBpZiAoIXJlcS5tZXRob2QpIHtcbiAgICAgIHJlcS5tZXRob2QgPSAnR0VUJztcbiAgICB9XG4gICAgY29uc3QgdGhyb3dFcnJvciA9IHBhcmFtcy50aHJvd0Vycm9yIHx8IHRoaXMudGhyb3dFcnJvcjtcbiAgICBjb25zdCBhZnRlckZldGNoID0gcGFyYW1zLmFmdGVyRmV0Y2ggfHwgdGhpcy5hZnRlckZldGNoO1xuICAgIGNvbnN0IHBhcnNlUmVzdWx0ID0gcGFyYW1zLnBhcnNlUmVzdWx0IHx8IHRoaXMucGFyc2VSZXN1bHQ7XG4gICAgY29uc3QgdGltZW91dCA9IHBhcmFtcy50aW1lb3V0O1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHJlcSxcbiAgICAgIHRpbWVvdXQsXG4gICAgICBhdXRoVG9rZW4sXG4gICAgICB0aHJvd0Vycm9yLFxuICAgICAgYWZ0ZXJGZXRjaCxcbiAgICAgIHBhcnNlUmVzdWx0LFxuICAgIH07XG4gIH1cblxuICBhc3luYyBwYXJzZVJlc3VsdChjdHgsIHJlc3VsdCkge1xuICAgIGNvbnN0IHJlcyA9IHtcbiAgICAgIHJlc3VsdCxcbiAgICAgIHN0YXR1czogcmVzdWx0LnN0YXR1cyxcbiAgICAgIHN0YXR1c1RleHQ6IHJlc3VsdC5zdGF0dXNUZXh0LFxuICAgIH07XG4gICAgdHJ5IHtcbiAgICAgIHJlcy50ZXh0ID0gYXdhaXQgcmVzdWx0LnRleHQoKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIHJlcy50ZXh0RXJyID0gZXJyO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgcmVzLmpzb24gPSBKU09OLnBhcnNlKHJlcy50ZXh0KTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIHJlcy5qc29uRXJyID0gZXJyO1xuICAgIH1cbiAgICByZXR1cm4gcmVzO1xuICB9XG5cbiAgZmV0Y2goLi4uYXJncykge1xuICAgIGNvbnN0IGN0eCA9IHRoaXMuZ2V0Q3R4KC4uLmFyZ3MpO1xuICAgIGNvbnN0IHsgZmV0Y2ggfSA9IHRoaXMuY29uc3RydWN0b3I7XG4gICAgY29uc3QgeyByZXEsIHBhcnNlUmVzdWx0LCBhZnRlckZldGNoIH0gPSBjdHg7XG4gICAgaWYgKHRoaXMubG9nICYmIHRoaXMubG9nLnRyYWNlKSB7XG4gICAgICB0aGlzLmxvZy50cmFjZSgnW2FwaV0nLCByZXEubWV0aG9kLCByZXEudXJsLCByZXEuX2JvZHkpO1xuICAgICAgLy8gdGhpcy5sb2cudHJhY2UoJ1thcGldJywgcmVxLm1ldGhvZCwgcmVxLnVybCwgcmVxLl9ib2R5LCByZXEpO1xuICAgIH1cbiAgICBjb25zdCB7IHVybCwgLi4ucGFyYW1zIH0gPSByZXE7XG4gICAgLy8gY29uc29sZS5sb2coJ0BAQGZldGNoJywgdXJsLCBwYXJhbXMpO1xuICAgIGNvbnN0IHJlcyA9IGZldGNoKHVybCwgcGFyYW1zKVxuICAgICAgLnRoZW4oYXN5bmMgKHJlc3VsdCkgPT4ge1xuICAgICAgICBjdHgucmVzID0gYXdhaXQgcGFyc2VSZXN1bHQoY3R4LCByZXN1bHQpO1xuICAgICAgICByZXR1cm4gY3R4O1xuICAgICAgfSlcbiAgICAgIC50aGVuKGFmdGVyRmV0Y2gpO1xuICAgIGlmICghY3R4LnRpbWVvdXQpIHJldHVybiByZXM7XG5cbiAgICByZXR1cm4gUHJvbWlzZS5yYWNlKFtcbiAgICAgIHJlcyxcbiAgICAgIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiByZWplY3QobmV3IEVycm9yKCdmZXRjaCB0aW1lb3V0JykpLCBjdHgudGltZW91dCk7XG4gICAgICB9KSxcbiAgICBdKTtcbiAgfVxuXG4gIHdzUmVjb25uZWN0KCkge1xuICAgIGlmICh0aGlzLmxvZyAmJiB0aGlzLmxvZy50cmFjZSkge1xuICAgICAgdGhpcy5sb2cudHJhY2UoJ1thcGldIFdTLndzUmVjb25uZWN0JywgT2JqZWN0LmtleXModGhpcy53c0Nvbm5lY3Rpb25zKSk7XG4gICAgfVxuXG4gICAgT2JqZWN0LmtleXModGhpcy53c0Nvbm5lY3Rpb25zKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgIGNvbnN0IFtwYXRoLCBvcHRpb25zLCBzb2NrZXRdID0gdGhpcy53c0Nvbm5lY3Rpb25zW2tleV07XG4gICAgICBpZiAoIXNvY2tldC5yZWNyZWF0ZVNvY2tldCkge1xuICAgICAgICBjb25zb2xlLmxvZygnIXNvY2tldC5yZWNyZWF0ZVNvY2tldCcsIHNvY2tldCk7XG4gICAgICB9XG4gICAgICBzb2NrZXQucmVjcmVhdGVTb2NrZXQocGF0aCwgb3B0aW9ucyk7XG4gICAgICAvLyBzb2NrZXQuZGlzY29ubmVjdCgpO1xuICAgICAgLy8gdGhpcy53cyhwYXRoLCBvcHRpb25zKTtcbiAgICB9KTtcbiAgfVxuXG4gIHdzKHBhdGggPSAnJywgb3B0aW9ucyA9IHt9KSB7XG4gICAgLy8gY29uc29sZS5sb2coJ2FwaS53cycsIHBhdGgpXG4gICAgY29uc3Qga2V5ID0gcGF0aCArIEpTT04uc3RyaW5naWZ5KG9wdGlvbnMpO1xuICAgIGlmICh0aGlzLndzQ29ubmVjdGlvbnNba2V5XSkgcmV0dXJuIHRoaXMud3NDb25uZWN0aW9uc1trZXldO1xuICAgIGlmICghdGhpcy53c0NvbmZpZykge1xuICAgICAgY29uc29sZS5lcnJvcign0JLRiyDQvdC1INC80L7QttC10YLQtSDQuNGB0L/QvtC70YzQt9C+0LLQsNGC0YwgYXBpLndzINCx0LXQtyDRgdC+0LrQtdGCINC60L7QvdGE0LjQs9C+0LInKTtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBjb25zdCBvcHRzID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy53c0NvbmZpZyAmJiB0aGlzLndzQ29uZmlnLm9wdGlvbnMsIG9wdGlvbnMpO1xuICAgIC8vIGNvbnNvbGUubG9nKCdXUyBXUyBXUycsXG4gICAgLy8gICB7XG4gICAgLy8gICAgIHE6IHRoaXMud3NDb25maWcgJiYgdGhpcy53c0NvbmZpZy5vcHRpb25zLFxuICAgIC8vICAgICB3OiBvcHRpb25zLFxuICAgIC8vICAgICBlOiBvcHRzLFxuICAgIC8vICAgICByOiBPYmplY3QuYXNzaWduKHt9LCB0aGlzLndzQ29uZmlnICYmIHRoaXMud3NDb25maWcub3B0aW9ucywgb3B0aW9ucylcbiAgICAvLyAgIH1cbiAgICAvLyApO1xuICAgIC8vIGNvbnNvbGUubG9nKG9wdHMucXVlcnksIG9wdHMucXVlcnkudG9rZW4sIHRoaXMuYXV0aFRva2VuKTtcbiAgICBpZiAoISh0aGlzLndzQ29uZmlnICYmIHRoaXMud3NDb25maWcudG9rZW5JbkNvb2tpZSkpIHtcbiAgICAgIGlmIChvcHRzLnF1ZXJ5ICYmICFvcHRzLnF1ZXJ5LnRva2VuICYmIHRoaXMuYXV0aFRva2VuKSBvcHRzLnF1ZXJ5LnRva2VuID0gdGhpcy5hdXRoVG9rZW47XG4gICAgfVxuICAgIGNvbnN0IHBhcmFtczIgPSB7fTtcbiAgICBpZiAoIXRoaXMud3NDb25maWcudG9rZW5JbkNvb2tpZSkge1xuICAgICAgaWYgKCFwYXJhbXMyLnFzKSB7XG4gICAgICAgIHBhcmFtczIucXMgPSB7XG4gICAgICAgICAgLi4uKG9wdHMucXVlcnkgfHwge30pLFxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgaWYgKHBhcmFtczIucXMgJiYgIXBhcmFtczIucXMudG9rZW4gJiYgdGhpcy5hdXRoVG9rZW4pIHBhcmFtczIucXMudG9rZW4gPSB0aGlzLmF1dGhUb2tlbjtcbiAgICB9XG5cbiAgICAvLyBjb25zb2xlLmxvZygnV1Mgb3B0cy5xdWVyeSwgb3B0cy5xdWVyeS50b2tlbiwgdGhpcy5hdXRoVG9rZW4nLCBvcHRzLnF1ZXJ5LCBvcHRzLnF1ZXJ5LnRva2VuLCB0aGlzLmF1dGhUb2tlbik7XG4gICAgY29uc3QgdXJsID0gdGhpcy5jcmVhdGVVcmwocGF0aCwgeyAuLi50aGlzLndzQ29uZmlnLCAuLi5wYXJhbXMyIH0pO1xuICAgIC8vIGNvbnNvbGUubG9nKCd3cyB1cmwnLCB7d3NDb25maWc6IHRoaXMud3NDb25maWcsIHBhdGgsIG9wdGlvbnMsIHVybCwgb3B0cyx9ICk7XG4gICAgaWYgKHRoaXMubG9nICYmIHRoaXMubG9nLnRyYWNlKSB7XG4gICAgICB0aGlzLmxvZy50cmFjZSgnW2FwaV0gV1MnLCB1cmwsIG9wdGlvbnMpO1xuICAgICAgLy8gdGhpcy5sb2cudHJhY2UoJ1thcGldJywgcmVxLm1ldGhvZCwgcmVxLnVybCwgcmVxLl9ib2R5LCByZXEpO1xuICAgIH1cbiAgICBjb25zdCBzb2NrZXQgPSB0aGlzLmlvKFxuICAgICAgdXJsLFxuICAgICAgb3B0cyxcbiAgICApO1xuXG4gICAgdGhpcy53c0Nvbm5lY3Rpb25zW2tleV0gPSBbcGF0aCwgb3B0aW9ucywgc29ja2V0XTtcbiAgICBzb2NrZXQub24oJ2Rpc2Nvbm5lY3QnLCAoKSA9PiB7XG4gICAgICBkZWxldGUgdGhpcy53c0Nvbm5lY3Rpb25zW2tleV07XG4gICAgfSk7XG5cbiAgICByZXR1cm4gc29ja2V0O1xuICB9XG4gIHdzMihwYXRoID0gJycsIHBhcmFtcyA9IHt9KSB7XG4gICAgaWYgKCF0aGlzLndzQ29uZmlnKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCfQktGLINC90LUg0LzQvtC20LXRgtC1INC40YHQv9C+0LvRjNC30L7QstCw0YLRjCBhcGkud3Mg0LHQtdC3INGB0L7QutC10YIg0LrQvtC90YTQuNCz0L7QsicpO1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGNvbnN0IHBhcmFtczIgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLndzQ29uZmlnLCBwYXJhbXMpO1xuXG4gICAgaWYgKCF0aGlzLndzQ29uZmlnLnRva2VuSW5Db29raWUpIHtcbiAgICAgIGlmICghcGFyYW1zMi5xcykgcGFyYW1zMi5xcyA9IHt9O1xuICAgICAgaWYgKHBhcmFtczIucXMgJiYgIXBhcmFtczIucXMudG9rZW4gJiYgdGhpcy5hdXRoVG9rZW4pIHBhcmFtczIucXMudG9rZW4gPSB0aGlzLmF1dGhUb2tlbjtcbiAgICB9XG5cbiAgICBjb25zdCByZXMgPSB0aGlzLmlvKFxuICAgICAgdGhpcy5jcmVhdGVVcmwocGF0aCwgcGFyYW1zMiksXG4gICAgICB7XG4gICAgICAgIC4uLnRoaXMud3NDb25maWcub3B0aW9ucyxcbiAgICAgICAgLi4ucGFyYW1zLFxuICAgICAgfSxcbiAgICApO1xuICAgIHJldHVybiByZXM7XG4gIH1cblxufVxuIl19 | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9hcGlxdWVyeS5qcyJdLCJuYW1lcyI6WyJGRVRDSF9QQVJBTVMiLCJpb01vY2siLCJpbml0UGFyYW1zIiwiX19ERVZfXyIsImxvZyIsIm1vY2siLCJNYW5hZ2VyIiwiU29ja2V0IiwiY29ubmVjdGlvbiIsImV2ZW50cyIsIm9uIiwicGFyYW1zIiwicHVzaCIsInVzZSIsImRpc2Nvbm5lY3QiLCJyZWNyZWF0ZVNvY2tldCIsIm5ld0luaXRQYXJhbXMiLCJmb3JFYWNoIiwiZXZlbnQiLCJuYW1lIiwibmV3SW5pdFBhcmFtczIiLCJBcGlDbGllbnQiLCJ0aHJvd0Vycm9yIiwiZXJyIiwicmVzIiwicmVxIiwic2hvd0Vycm9yIiwic3RyIiwiSlNPTiIsInN0cmluZ2lmeSIsImpzb24iLCJlcnJvciIsIm1lc3NhZ2UiLCJlcnIyIiwiRXJyb3IiLCJpbyIsInJvb3QiLCJiYXNlIiwidXJsIiwid3NDb25maWciLCJ3cyIsIndzQ29ubmVjdGlvbnMiLCJhdXRoVG9rZW4iLCJ3c1JlY29ubmVjdCIsImN0eCIsInR5cGUiLCJzdGF0dXMiLCJzdGF0dXNUZXh0IiwidGV4dEVyciIsImpzb25FcnIiLCJwYXRoIiwib3B0aW9ucyIsInN1YnN0ciIsInBvcnQiLCJsZW5ndGgiLCJzZWFyY2giLCJyZXBsYWNlIiwiYXJyYXkiLCJtYXAiLCJhIiwiZmlsdGVyIiwiaSIsImpvaW4iLCJxcyIsImluZGV4T2YiLCJjb25zdHJ1Y3RvciIsIk9iamVjdCIsImFzc2lnbiIsImJvZHkiLCJkYXRhIiwiaGVhZGVycyIsIkFjY2VwdCIsIl9ib2R5IiwiaW5jbHVkZXMiLCJmb3JtIiwia2V5cyIsImtleSIsImFwcGVuZCIsIkF1dGhvcml6YXRpb24iLCJxdWVyeVBhcmFtcyIsImNyZWF0ZVVybCIsIm1ldGhvZCIsImFmdGVyRmV0Y2giLCJwYXJzZVJlc3VsdCIsInRpbWVvdXQiLCJyZXN1bHQiLCJ0ZXh0IiwicGFyc2UiLCJnZXRDdHgiLCJmZXRjaCIsInRyYWNlIiwidGhlbiIsIlByb21pc2UiLCJyYWNlIiwicmVzb2x2ZSIsInJlamVjdCIsInNldFRpbWVvdXQiLCJzb2NrZXQiLCJjb25zb2xlIiwib3B0cyIsInRva2VuSW5Db29raWUiLCJxdWVyeSIsInRva2VuIiwicGFyYW1zMiIsImNyZWF0ZSIsIm1lcmdlIiwiZ2xvYmFsIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7Ozs7Ozs7Ozs7OzhFQU5BOzs7QUFPQTtBQUNBLElBQU1BLGVBQWUsQ0FDbkIsUUFEbUIsRUFFbkIsS0FGbUIsRUFHbkIsU0FIbUIsRUFJbkIsU0FKbUIsRUFLbkIsVUFMbUIsRUFNbkIsZ0JBTm1CLEVBT25CLE1BUG1CLEVBUW5CLGFBUm1CLEVBU25CLFVBVG1CLEVBVW5CLFdBVm1CLEVBV25CLE9BWG1CLENBQXJCOztBQWNBLFNBQVNDLE1BQVQsR0FBK0I7QUFBQTs7QUFBQSxvQ0FBWkMsVUFBWTtBQUFaQSxjQUFZO0FBQUE7O0FBQzdCQyxhQUFXLHFCQUFRQyxHQUFSLGtCQUFZLFFBQVosU0FBeUJGLFVBQXpCLEVBQVg7QUFDQTtBQUNBLE1BQU1HLE9BQU87QUFDWEMsYUFBUyw0QkFBR0EsT0FERDtBQUVYQyxZQUFRLDRCQUFHQSxNQUZBO0FBR1hDLGdCQUFZLElBSEQ7QUFJWEMsWUFBUSxFQUpHO0FBS1hDLE1BTFcsZ0JBS0c7QUFBQSx5Q0FBUkMsTUFBUTtBQUFSQSxjQUFRO0FBQUE7O0FBQ1pOLFdBQUtJLE1BQUwsQ0FBWUcsSUFBWixFQUFrQixJQUFsQixTQUEyQkQsTUFBM0I7QUFDRCxLQVBVO0FBUVhFLE9BUlcsaUJBUUk7QUFBQSx5Q0FBUkYsTUFBUTtBQUFSQSxjQUFRO0FBQUE7O0FBQ2JOLFdBQUtJLE1BQUwsQ0FBWUcsSUFBWixFQUFrQixLQUFsQixTQUE0QkQsTUFBNUI7QUFDRCxLQVZVO0FBV1hHLGNBWFcsd0JBV1c7QUFBQTs7QUFDcEIsK0JBQUtOLFVBQUwsRUFBZ0JNLFVBQWhCO0FBQ0QsS0Fi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OlsiLy8gaW1wb3J0IGZldGNoIGZyb20gJ25vZGUtZmV0Y2gnO1xuaW1wb3J0IGlzUGxhaW5PYmplY3QgZnJvbSAnbG9kYXNoLmlzcGxhaW5vYmplY3QnO1xuaW1wb3J0IHBpY2sgZnJvbSAnbG9kYXNoLnBpY2snO1xuaW1wb3J0IHFzIGZyb20gJ3FzJztcbmltcG9ydCBGb3JtRGF0YSBmcm9tICdmb3JtLWRhdGEnO1xuaW1wb3J0IGlvIGZyb20gJy4vc29ja2V0LWlvLXVuaXZlcnNhbCc7XG5pbXBvcnQgdHJpbSBmcm9tICcuL3RyaW0nO1xuLy8gaW1wb3J0IGZldGNoIGZyb20gJ2lzb21vcnBoaWMtZmV0Y2gnO1xuY29uc3QgRkVUQ0hfUEFSQU1TID0gW1xuICAnbWV0aG9kJyxcbiAgJ3VybCcsXG4gICdoZWFkZXJzJyxcbiAgJ2NvbnRleHQnLFxuICAncmVmZXJyZXInLFxuICAncmVmZXJyZXJQb2xpY3knLFxuICAnbW9kZScsXG4gICdjcmVkZW50aWFscycsXG4gICdyZWRpcmVjdCcsXG4gICdpbnRlZ3JpdHknLFxuICAnY2FjaGUnLFxuXTtcblxuZnVuY3Rpb24gaW9Nb2NrKC4uLmluaXRQYXJhbXMpIHtcbiAgX19ERVZfXyAmJiBjb25zb2xlLmxvZygnaW9Nb2NrJywgLi4uaW5pdFBhcmFtcyk7XG4gIC8vIGNvbnN0IHNvY2tldCA9IGlvKC4uLnBhcmFtcylcbiAgY29uc3QgbW9jayA9IHtcbiAgICBNYW5hZ2VyOiBpby5NYW5hZ2VyLFxuICAgIFNvY2tldDogaW8uU29ja2V0LFxuICAgIGNvbm5lY3Rpb246IG51bGwsXG4gICAgZXZlbnRzOiBbXSxcbiAgICBvbiguLi5wYXJhbXMpIHtcbiAgICAgIG1vY2suZXZlbnRzLnB1c2goWydvbicsIC4uLnBhcmFtc10pO1xuICAgIH0sXG4gICAgdXNlKC4uLnBhcmFtcykge1xuICAgICAgbW9jay5ldmVudHMucHVzaChbJ3VzZScsIC4uLnBhcmFtc10pO1xuICAgIH0sXG4gICAgZGlzY29ubmVjdCguLi5wYXJhbXMpIHtcbiAgICAgIG1vY2suY29ubmVjdGlvbi5kaXNjb25uZWN0KC4uLnBhcmFtcyk7XG4gICAgfSxcbiAgICByZWNyZWF0ZVNvY2tldCguLi5uZXdJbml0UGFyYW1zKSB7XG4gICAgICBfX0RFVl9fICYmIGNvbnNvbGUubG9nKCdyZWNyZWF0ZVNvY2tldCcsIC4uLm5ld0luaXRQYXJhbXMpO1xuICAgICAgaWYgKG1vY2suY29ubmVjdGlvbiAmJiBtb2NrLmNvbm5lY3Rpb24uZGlzY29ubmVjdCkge1xuICAgICAgICBtb2NrLmNvbm5lY3Rpb24uZGlzY29ubmVjdCgpO1xuICAgICAgfVxuICAgICAgbW9jay5jb25uZWN0aW9uID0gaW8oLi4ubmV3SW5pdFBhcmFtcyk7XG4gICAgICBtb2NrLmV2ZW50cy5mb3JFYWNoKChldmVudCkgPT4ge1xuICAgICAgICBjb25zdCBbbmFtZSwgLi4ucGFyYW1zXSA9IGV2ZW50O1xuICAgICAgICBtb2NrLmNvbm5lY3Rpb25bbmFtZV0oLi4ucGFyYW1zKTtcbiAgICAgIH0pO1xuXG4gICAgICBtb2NrLmNvbm5lY3Rpb24ucmVjcmVhdGVTb2NrZXQgPSAoLi4ubmV3SW5pdFBhcmFtczIpID0+IHtcbiAgICAgICAgX19ERVZfXyAmJiBjb25zb2xlLmxvZygncmVjcmVhdGVTb2NrZXQyJywgLi4ubmV3SW5pdFBhcmFtczIpO1xuICAgICAgICByZXR1cm4gbW9jay5yZWNyZWF0ZVNvY2tldCguLi5uZXdJbml0UGFyYW1zMik7XG4gICAgICB9XG4gICAgICByZXR1cm4gbW9jay5jb25uZWN0aW9uO1xuICAgIH0sXG4gIH07XG4gIHJldHVybiBtb2NrLnJlY3JlYXRlU29ja2V0KC4uLmluaXRQYXJhbXMpO1xufVxuXG4vLyBjb25zdCBERUJVRyA9IF9fREVWX187XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEFwaUNsaWVudCB7XG4gIHN0YXRpYyBmZXRjaCA9IGdsb2JhbC5mZXRjaDtcbiAgc3RhdGljIHFzID0gcXNcbiAgLy8gaW8gPSBpb1xuXG4gIGNvbnN0cnVjdG9yKHBhcmFtcyA9IHt9KSB7XG4gICAgLy8gY29uc29sZS5sb2coJ0FwaUNsaWVudCcsIHBhcmFtcyk7XG4gICAgdGhpcy5pbyA9IGlvTW9jaztcbiAgICB0aGlzLmxvZyA9IHBhcmFtcy5sb2c7XG4gICAgdGhpcy5yb290ID0gcGFyYW1zLnJvb3Q7XG4gICAgdGhpcy5iYXNlID0gcGFyYW1zLmJhc2U7XG4gICAgdGhpcy51cmwgPSBwYXJhbXMudXJsO1xuICAgIHRoaXMud3NDb25maWcgPSBwYXJhbXMud3M7XG4gICAgdGhpcy53c0Nvbm5lY3Rpb25zID0ge307XG4gICAgdGhpcy5hdXRoVG9rZW4gPSBwYXJhbXMuYXV0aFRva2VuIHx8IG51bGw7XG4gIH1cblxuICBzZXRBdXRoVG9rZW4oYXV0aFRva2VuKSB7XG4gICAgdGhpcy5hdXRoVG9rZW4gPSBhdXRoVG9rZW47XG4gICAgdGhpcy53c1JlY29ubmVjdCgpO1xuICB9XG5cbiAgc3RhdGljIGNyZWF0ZVJlcShyZXEpIHtcbiAgICAvLyByZXEucGF0aCxcbiAgICAvLyByZXEucXVlcnksXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnJlcSxcbiAgICAgIGNyZWF0ZShwYXJhbXMpIHtcbiAgICAgICAgY29uc3QgcXVlcnkgPSB0aGlzLnFzLnN0cmluZ2lmeShwYXJhbXMpO1xuICAgICAgICByZXR1cm4gKHRoaXMucGF0aCB8fCAnLycpICsgKHF1ZXJ5ID8gYD8ke3F1ZXJ5fWAgOiAnJyk7XG4gICAgICB9LFxuICAgICAgbWVyZ2UocGFyYW1zKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZSh7XG4gICAgICAgICAgLi4udGhpcy5xdWVyeSxcbiAgICAgICAgICAuLi5wYXJhbXMsXG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgdGhyb3dFcnJvciA9IGFzeW5jICh7IGVyciwgcmVzLCByZXEgfSkgPT4ge1xuICAgIGlmICh0aGlzLnNob3dFcnJvciAmJiB0aGlzLmxvZykge1xuICAgICAgY29uc3Qgc3RyID0gYFxcXG49PT09PT09PT09PT09PVxuICBmZXRjaCBlcnJvcjpcbiR7aXNQbGFpbk9iamVjdChlcnIpID8gSlNPTi5zdHJpbmdpZnkoZXJyLCBudWxsLCAyKSA6IGVycn1cbiAgcmVxOlxuJHtKU09OLnN0cmluZ2lmeShyZXEsIG51bGwsIDIpfVxuICBqc29uOlxuJHtKU09OLnN0cmluZ2lmeShyZXMuanNvbiwgbnVsbCwgMil9XG49PT09PT09PT09PT09PVxcXG5gO1xuICAgICAgdGhpcy5sb2cuZXJyb3Ioc3RyKTtcbiAgICB9XG4gICAgY29uc3QgbWVzc2FnZSA9IGVyciAmJiBlcnIubWVzc2FnZSB8fCBlcnI7XG4gICAgY29uc3QgZXJyMiA9IG5ldyBFcnJvcihpc1BsYWluT2JqZWN0KG1lc3NhZ2UpID8gSlNPTi5zdHJpbmdpZnkobWVzc2FnZSkgOiBtZXNzYWdlKTtcbiAgICBlcnIyLnJlcyA9IHJlcztcbiAgICBlcnIyLnJlcSA9IHJlcTtcbiAgICB0aHJvdyBlcnIyO1xuICB9XG5cbiAgYXN5bmMgYWZ0ZXJGZXRjaChjdHgpIHtcbiAgICBjb25zdCB7IHJlcywgdGhyb3dFcnJvciB9ID0gY3R4O1xuICAgIGlmIChyZXMuanNvbiAmJiByZXMuanNvbi5lcnIpIHtcbiAgICAgIGF3YWl0IHRocm93RXJyb3Ioe1xuICAgICAgICAuLi5jdHgsXG4gICAgICAgIGVycjoge1xuICAgICAgICAgIHR5cGU6ICdDVVNUT01fRVJST1InLFxuICAgICAgICAgIC4uLnJlcy5qc29uLmVycixcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIH1cbiAgICBpZiAocmVzLnN0YXR1cyA+PSA0MDApIHtcbiAgICAgIGNvbnN0IHR5cGUgPSAnUkVTX1NUQVRVU19FUlJPUic7XG4gICAgICBhd2FpdCB0aHJvd0Vycm9yKHtcbiAgICAgICAgLi4uY3R4LFxuICAgICAgICBlcnI6IHtcbiAgICAgICAgICB0eXBlLFxuICAgICAgICAgIHN0YXR1czogcmVzLnN0YXR1cyxcbiAgICAgICAgICBzdGF0dXNUZXh0OiByZXMuc3RhdHVzVGV4dCxcbiAgICAgICAgICBtZXNzYWdlOiBgJHt0eXBlfTogJHtyZXMuc3RhdHVzfSAke3Jlcy5zdGF0dXNUZXh0fWAsXG4gICAgICAgICAgLi4uKHJlcy5qc29uIHx8IHt9KSxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIH1cbiAgICBpZiAocmVzLnRleHRFcnIpIHtcbiAgICAgIGNvbnN0IHR5cGUgPSAnVEVYVF9QQVJTRV9FUlJPUic7XG4gICAgICBhd2FpdCBjdHgudGhyb3dFcnJvcih7XG4gICAgICAgIC4uLmN0eCxcbiAgICAgICAgcmVzLFxuICAgICAgICBlcnI6IHtcbiAgICAgICAgICB0eXBlLFxuICAgICAgICAgIG1lc3NhZ2U6ICfQntGI0LjQsdC60LAg0L/QtdGA0LXQtNCw0YfQuCDQtNCw0L3QvdGL0YUnLFxuICAgICAgICAgIGVycjogcmVzLnRleHRFcnIsXG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB9XG4gICAgaWYgKHJlcy5qc29uRXJyKSB7XG4gICAgICBjb25zdCB0eXBlID0gJ0pTT05fUEFSU0VfRVJST1InO1xuICAgICAgYXdhaXQgY3R4LnRocm93RXJyb3Ioe1xuICAgICAgICAuLi5jdHgsXG4gICAgICAgIHJlcyxcbiAgICAgICAgZXJyOiB7XG4gICAgICAgICAgdHlwZSxcbiAgICAgICAgICBtZXNzYWdlOiAn0J7RiNC40LHQutCwINGB0LXRgNCy0LXRgNCwJyxcbiAgICAgICAgICAvLyBtZXNzYWdlOiB0eXBlLFxuICAgICAgICAgIGVycjogcmVzLmpzb25FcnIsXG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHJlcy5qc29uO1xuICB9XG5cbiAgY3JlYXRlVXJsKHBhdGgsIG9wdGlvbnMgPSB7fSkge1xuICAgIGlmIChwYXRoLnN1YnN0cigwLCA1KSA9PT0gJ2h0dHA6JyB8fCBwYXRoLnN1YnN0cigwLCA2KSA9PT0gJ2h0dHBzOicpIHtcbiAgICAgIHJldHVybiBwYXRoO1xuICAgIH1cbiAgICBsZXQgdXJsID0gb3B0aW9ucy51cmwgfHwgdGhpcy51cmwgfHwgJy8nO1xuICAgIGNvbnN0IHBvcnQgPSBvcHRpb25zLnBvcnQgfHwgdGhpcy5wb3J0IHx8IG51bGw7XG5cbiAgICBpZiAodXJsICYmIHVybC5sZW5ndGggPiAxICYmIHBvcnQpIHtcbiAgICAgIGlmICh1cmwuc2VhcmNoKC86KFxcZCspLykgIT09IC0xKSB7XG4gICAgICAgIHVybCA9IHVybC5yZXBsYWNlKC86KFxcZCspLywgYDoke3BvcnR9YCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB1cmwgPSBgJHt1cmx9OiR7cG9ydH1gO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGJhc2UgPSBvcHRpb25zLmJhc2UgfHwgdGhpcy5iYXNlO1xuICAgIGNvbnN0IGFycmF5ID0gW3VybCwgcGF0aFswXSA9PT0gJy8nID8gbnVsbCA6IHRyaW0oYmFzZSksIHRyaW0ocGF0aCldO1xuICAgIHVybCA9IGFycmF5XG4gICAgICAubWFwKGEgPT4gdHJpbShhKSlcbiAgICAgIC5maWx0ZXIoKGEsIGkpID0+IChpID09PSAwIHx8IGEpKVxuICAgICAgLmpvaW4oJy8nKTtcbiAgICBpZiAob3B0aW9ucy5xcykge1xuICAgICAgdXJsICs9ICh1cmwuaW5kZXhPZignPycpID09PSAtMSA/ICc/JyA6ICcmJykgKyB0aGlzLmNvbnN0cnVjdG9yLnFzLnN0cmluZ2lmeShvcHRpb25zLnFzKTtcbiAgICB9XG4gICAgcmV0dXJuIHVybDtcbiAgfVxuXG4gIGdldEN0eCh1cmwsIHBhcmFtcyA9IHt9KSB7XG4gICAgY29uc3QgcmVxID0gT2JqZWN0LmFzc2lnbihcbiAgICAgIHsgdXJsIH0sXG4gICAgICBwaWNrKHBhcmFtcywgRkVUQ0hfUEFSQU1TKSxcbiAgICApO1xuXG4gICAgY29uc3QgYm9keSA9IHBhcmFtcy5ib2R5IHx8IHBhcmFtcy5kYXRhO1xuXG4gICAgaWYgKCFyZXEuaGVhZGVycykgcmVxLmhlYWRlcnMgPSB7fTtcbiAgICBpZiAoIXJlcS5oZWFkZXJzLkFjY2VwdCkgcmVxLmhlYWRlcnMuQWNjZXB0ID0gJ2FwcGxpY2F0aW9uL2pzb24nO1xuICAgIGlmICghcmVxLmhlYWRlcnNbJ0NvbnRlbnQtVHlwZSddKSByZXEuaGVhZGVyc1snQ29udGVudC1UeXBlJ10gPSAnYXBwbGljYXRpb24vanNvbjsgY2hhcnNldD11dGYtOCc7XG4gICAgaWYgKHJlcS5oZWFkZXJzWydDb250ZW50LVR5cGUnXSA9PT0gJyEnKSB7XG4gICAgICBkZWxldGUgcmVxLmhlYWRlcnNbJ0NvbnRlbnQtVHlwZSddO1xuICAgIH1cblxuICAgIHJlcS5fYm9keSA9IGJvZHk7XG4gICAgcmVxLmJvZHkgPSBib2R5O1xuICAgIGlmIChpc1BsYWluT2JqZWN0KGJvZHkpKSB7XG4gICAgICBpZiAocmVxLmhlYWRlcnNbJ0NvbnRlbnQtVHlwZSddICYmIHJlcS5oZWFkZXJzWydDb250ZW50LVR5cGUnXS5pbmNsdWRlcygnYXBwbGljYXRpb24vanNvbicpKSB7XG4gICAgICAgIHJlcS5ib2R5ID0gSlNPTi5zdHJpbmdpZnkoYm9keSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBmb3JtID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgICAgIE9iamVjdC5rZXlzKGJvZHkpLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgICAgIGZvcm0uYXBwZW5kKGtleSwgYm9keVtrZXldKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJlcS5ib2R5ID0gZm9ybTtcbiAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgYXV0aFRva2VuID0gKHBhcmFtcy5hdXRoVG9rZW4gfHwgdGhpcy5hdXRoVG9rZW4pO1xuICAgIGlmICghcmVxLmhlYWRlcnMuQXV0aG9yaXphdGlvbiAmJiBhdXRoVG9rZW4pIHtcbiAgICAgIHJlcS5oZWFkZXJzLkF1dGhvcml6YXRpb24gPSBgQmVhcmVyICR7YXV0aFRva2VufWA7XG4gICAgfVxuXG4gICAgcmVxLnFzID0gcGFyYW1zLnF1ZXJ5UGFyYW1zIHx8IHBhcmFtcy5xcztcbiAgICBpZiAocmVxLnFzKSB7XG4gICAgICByZXEudXJsICs9IChyZXEudXJsLmluZGV4T2YoJz8nKSA9PT0gLTEgPyAnPycgOiAnJicpICsgdGhpcy5jb25zdHJ1Y3Rvci5xcy5zdHJpbmdpZnkocmVxLnFzKTtcbiAgICB9XG4gICAgcmVxLnVybCA9IHRoaXMuY3JlYXRlVXJsKHJlcS51cmwpO1xuXG4gICAgaWYgKCFyZXEubWV0aG9kKSB7XG4gICAgICByZXEubWV0aG9kID0gJ0dFVCc7XG4gICAgfVxuICAgIGNvbnN0IHRocm93RXJyb3IgPSBwYXJhbXMudGhyb3dFcnJvciB8fCB0aGlzLnRocm93RXJyb3I7XG4gICAgY29uc3QgYWZ0ZXJGZXRjaCA9IHBhcmFtcy5hZnRlckZldGNoIHx8IHRoaXMuYWZ0ZXJGZXRjaDtcbiAgICBjb25zdCBwYXJzZVJlc3VsdCA9IHBhcmFtcy5wYXJzZVJlc3VsdCB8fCB0aGlzLnBhcnNlUmVzdWx0O1xuICAgIGNvbnN0IHRpbWVvdXQgPSBwYXJhbXMudGltZW91dDtcblxuICAgIHJldHVybiB7XG4gICAgICByZXEsXG4gICAgICB0aW1lb3V0LFxuICAgICAgYXV0aFRva2VuLFxuICAgICAgdGhyb3dFcnJvcixcbiAgICAgIGFmdGVyRmV0Y2gsXG4gICAgICBwYXJzZVJlc3VsdCxcbiAgICB9O1xuICB9XG5cbiAgYXN5bmMgcGFyc2VSZXN1bHQoY3R4LCByZXN1bHQpIHtcbiAgICBjb25zdCByZXMgPSB7XG4gICAgICByZXN1bHQsXG4gICAgICBzdGF0dXM6IHJlc3VsdC5zdGF0dXMsXG4gICAgICBzdGF0dXNUZXh0OiByZXN1bHQuc3RhdHVzVGV4dCxcbiAgICB9O1xuICAgIHRyeSB7XG4gICAgICByZXMudGV4dCA9IGF3YWl0IHJlc3VsdC50ZXh0KCk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICByZXMudGV4dEVyciA9IGVycjtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIHJlcy5qc29uID0gSlNPTi5wYXJzZShyZXMudGV4dCk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICByZXMuanNvbkVyciA9IGVycjtcbiAgICB9XG4gICAgcmV0dXJuIHJlcztcbiAgfVxuXG4gIGZldGNoKC4uLmFyZ3MpIHtcbiAgICBjb25zdCBjdHggPSB0aGlzLmdldEN0eCguLi5hcmdzKTtcbiAgICBjb25zdCB7IGZldGNoIH0gPSB0aGlzLmNvbnN0cnVjdG9yO1xuICAgIGNvbnN0IHsgcmVxLCBwYXJzZVJlc3VsdCwgYWZ0ZXJGZXRjaCB9ID0gY3R4O1xuICAgIGlmICh0aGlzLmxvZyAmJiB0aGlzLmxvZy50cmFjZSkge1xuICAgICAgdGhpcy5sb2cudHJhY2UoJ1thcGldJywgcmVxLm1ldGhvZCwgcmVxLnVybCwgcmVxLl9ib2R5KTtcbiAgICAgIC8vIHRoaXMubG9nLnRyYWNlKCdbYXBpXScsIHJlcS5tZXRob2QsIHJlcS51cmwsIHJlcS5fYm9keSwgcmVxKTtcbiAgICB9XG4gICAgY29uc3QgeyB1cmwsIC4uLnBhcmFtcyB9ID0gcmVxO1xuICAgIC8vIGNvbnNvbGUubG9nKCdAQEBmZXRjaCcsIHVybCwgcGFyYW1zKTtcbiAgICBjb25zdCByZXMgPSBmZXRjaCh1cmwsIHBhcmFtcylcbiAgICAgIC50aGVuKGFzeW5jIChyZXN1bHQpID0+IHtcbiAgICAgICAgY3R4LnJlcyA9IGF3YWl0IHBhcnNlUmVzdWx0KGN0eCwgcmVzdWx0KTtcbiAgICAgICAgcmV0dXJuIGN0eDtcbiAgICAgIH0pXG4gICAgICAudGhlbihhZnRlckZldGNoKTtcbiAgICBpZiAoIWN0eC50aW1lb3V0KSByZXR1cm4gcmVzO1xuXG4gICAgcmV0dXJuIFByb21pc2UucmFjZShbXG4gICAgICByZXMsXG4gICAgICBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4gcmVqZWN0KG5ldyBFcnJvcignZmV0Y2ggdGltZW91dCcpKSwgY3R4LnRpbWVvdXQpO1xuICAgICAgfSksXG4gICAgXSk7XG4gIH1cblxuICB3c1JlY29ubmVjdCgpIHtcbiAgICBpZiAodGhpcy5sb2cgJiYgdGhpcy5sb2cudHJhY2UpIHtcbiAgICAgIHRoaXMubG9nLnRyYWNlKCdbYXBpXSBXUy53c1JlY29ubmVjdCcsIE9iamVjdC5rZXlzKHRoaXMud3NDb25uZWN0aW9ucykpO1xuICAgIH1cblxuICAgIE9iamVjdC5rZXlzKHRoaXMud3NDb25uZWN0aW9ucykuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICBjb25zdCBbcGF0aCwgb3B0aW9ucywgc29ja2V0XSA9IHRoaXMud3NDb25uZWN0aW9uc1trZXldO1xuICAgICAgaWYgKCFzb2NrZXQucmVjcmVhdGVTb2NrZXQpIHtcbiAgICAgICAgY29uc29sZS5sb2coJyFzb2NrZXQucmVjcmVhdGVTb2NrZXQnLCBzb2NrZXQpO1xuICAgICAgfVxuICAgICAgc29ja2V0LnJlY3JlYXRlU29ja2V0KHBhdGgsIG9wdGlvbnMpO1xuICAgICAgLy8gc29ja2V0LmRpc2Nvbm5lY3QoKTtcbiAgICAgIC8vIHRoaXMud3MocGF0aCwgb3B0aW9ucyk7XG4gICAgfSk7XG4gIH1cblxuICB3cyhwYXRoID0gJycsIG9wdGlvbnMgPSB7fSkge1xuICAgIC8vIGNvbnNvbGUubG9nKCdhcGkud3MnLCBwYXRoKVxuICAgIGNvbnN0IGtleSA9IHBhdGggKyBKU09OLnN0cmluZ2lmeShvcHRpb25zKTtcbiAgICBpZiAodGhpcy53c0Nvbm5lY3Rpb25zW2tleV0pIHJldHVybiB0aGlzLndzQ29ubmVjdGlvbnNba2V5XTtcbiAgICBpZiAoIXRoaXMud3NDb25maWcpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ9CS0Ysg0L3QtSDQvNC+0LbQtdGC0LUg0LjRgdC/0L7Qu9GM0LfQvtCy0LDRgtGMIGFwaS53cyDQsdC10Lcg0YHQvtC60LXRgiDQutC+0L3RhNC40LPQvtCyJyk7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgY29uc3Qgb3B0cyA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMud3NDb25maWcgJiYgdGhpcy53c0NvbmZpZy5vcHRpb25zLCBvcHRpb25zKTtcbiAgICAvLyBjb25zb2xlLmxvZygnV1MgV1MgV1MnLFxuICAgIC8vICAge1xuICAgIC8vICAgICBxOiB0aGlzLndzQ29uZmlnICYmIHRoaXMud3NDb25maWcub3B0aW9ucyxcbiAgICAvLyAgICAgdzogb3B0aW9ucyxcbiAgICAvLyAgICAgZTogb3B0cyxcbiAgICAvLyAgICAgcjogT2JqZWN0LmFzc2lnbih7fSwgdGhpcy53c0NvbmZpZyAmJiB0aGlzLndzQ29uZmlnLm9wdGlvbnMsIG9wdGlvbnMpXG4gICAgLy8gICB9XG4gICAgLy8gKTtcbiAgICAvLyBjb25zb2xlLmxvZyhvcHRzLnF1ZXJ5LCBvcHRzLnF1ZXJ5LnRva2VuLCB0aGlzLmF1dGhUb2tlbik7XG4gICAgaWYgKCEodGhpcy53c0NvbmZpZyAmJiB0aGlzLndzQ29uZmlnLnRva2VuSW5Db29raWUpKSB7XG4gICAgICBpZiAob3B0cy5xdWVyeSAmJiAhb3B0cy5xdWVyeS50b2tlbiAmJiB0aGlzLmF1dGhUb2tlbikgb3B0cy5xdWVyeS50b2tlbiA9IHRoaXMuYXV0aFRva2VuO1xuICAgIH1cbiAgICBjb25zdCBwYXJhbXMyID0ge307XG4gICAgaWYgKCF0aGlzLndzQ29uZmlnLnRva2VuSW5Db29raWUpIHtcbiAgICAgIGlmICghcGFyYW1zMi5xcykge1xuICAgICAgICBwYXJhbXMyLnFzID0ge1xuICAgICAgICAgIC4uLihvcHRzLnF1ZXJ5IHx8IHt9KSxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIGlmIChwYXJhbXMyLnFzICYmICFwYXJhbXMyLnFzLnRva2VuICYmIHRoaXMuYXV0aFRva2VuKSBwYXJhbXMyLnFzLnRva2VuID0gdGhpcy5hdXRoVG9rZW47XG4gICAgfVxuXG4gICAgLy8gY29uc29sZS5sb2coJ1dTIG9wdHMucXVlcnksIG9wdHMucXVlcnkudG9rZW4sIHRoaXMuYXV0aFRva2VuJywgb3B0cy5xdWVyeSwgb3B0cy5xdWVyeS50b2tlbiwgdGhpcy5hdXRoVG9rZW4pO1xuICAgIGNvbnN0IHVybCA9IHRoaXMuY3JlYXRlVXJsKHBhdGgsIHsgLi4udGhpcy53c0NvbmZpZywgLi4ucGFyYW1zMiB9KTtcbiAgICAvLyBjb25zb2xlLmxvZygnd3MgdXJsJywge3dzQ29uZmlnOiB0aGlzLndzQ29uZmlnLCBwYXRoLCBvcHRpb25zLCB1cmwsIG9wdHMsfSApO1xuICAgIGlmICh0aGlzLmxvZyAmJiB0aGlzLmxvZy50cmFjZSkge1xuICAgICAgdGhpcy5sb2cudHJhY2UoJ1thcGldIFdTJywgdXJsLCBvcHRpb25zKTtcbiAgICAgIC8vIHRoaXMubG9nLnRyYWNlKCdbYXBpXScsIHJlcS5tZXRob2QsIHJlcS51cmwsIHJlcS5fYm9keSwgcmVxKTtcbiAgICB9XG4gICAgY29uc3Qgc29ja2V0ID0gdGhpcy5pbyhcbiAgICAgIHVybCxcbiAgICAgIG9wdHMsXG4gICAgKTtcblxuICAgIHRoaXMud3NDb25uZWN0aW9uc1trZXldID0gW3BhdGgsIG9wdGlvbnMsIHNvY2tldF07XG4gICAgc29ja2V0Lm9uKCdkaXNjb25uZWN0JywgKCkgPT4ge1xuICAgICAgZGVsZXRlIHRoaXMud3NDb25uZWN0aW9uc1trZXldO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHNvY2tldDtcbiAgfVxuICB3czIocGF0aCA9ICcnLCBwYXJhbXMgPSB7fSkge1xuICAgIGlmICghdGhpcy53c0NvbmZpZykge1xuICAgICAgY29uc29sZS5lcnJvcign0JLRiyDQvdC1INC80L7QttC10YLQtSDQuNGB0L/QvtC70YzQt9C+0LLQsNGC0YwgYXBpLndzINCx0LXQtyDRgdC+0LrQtdGCINC60L7QvdGE0LjQs9C+0LInKTtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBjb25zdCBwYXJhbXMyID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy53c0NvbmZpZywgcGFyYW1zKTtcblxuICAgIGlmICghdGhpcy53c0NvbmZpZy50b2tlbkluQ29va2llKSB7XG4gICAgICBpZiAoIXBhcmFtczIucXMpIHBhcmFtczIucXMgPSB7fTtcbiAgICAgIGlmIChwYXJhbXMyLnFzICYmICFwYXJhbXMyLnFzLnRva2VuICYmIHRoaXMuYXV0aFRva2VuKSBwYXJhbXMyLnFzLnRva2VuID0gdGhpcy5hdXRoVG9rZW47XG4gICAgfVxuXG4gICAgY29uc3QgcmVzID0gdGhpcy5pbyhcbiAgICAgIHRoaXMuY3JlYXRlVXJsKHBhdGgsIHBhcmFtczIpLFxuICAgICAge1xuICAgICAgICAuLi50aGlzLndzQ29uZmlnLm9wdGlvbnMsXG4gICAgICAgIC4uLnBhcmFtcyxcbiAgICAgIH0sXG4gICAgKTtcbiAgICByZXR1cm4gcmVzO1xuICB9XG5cbn1cbiJdfQ== |
{ | ||
"name": "apiquery", | ||
"version": "0.1.14", | ||
"version": "0.1.15", | ||
"description": "http + websockets api client for Web, Node.js and React Native", | ||
@@ -5,0 +5,0 @@ "repository": { |
163418
598