Comparing version 0.1.13 to 0.1.14
@@ -478,2 +478,5 @@ 'use strict'; | ||
if (!socket.recreateSocket) { | ||
console.log('!socket.recreateSocket', socket); | ||
} | ||
socket.recreateSocket(path, options); | ||
@@ -527,3 +530,3 @@ // socket.disconnect(); | ||
} | ||
var socket = (0, _socketIoUniversal2.default)(url, opts); | ||
var socket = this.io(url, opts); | ||
@@ -580,2 +583,2 @@ this.wsConnections[key] = [path, options, socket]; | ||
exports.default = ApiClient; | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9hcGlxdWVyeS5qcyJdLCJuYW1lcyI6WyJGRVRDSF9QQVJBTVMiLCJpb01vY2siLCJpbml0UGFyYW1zIiwiX19ERVZfXyIsImxvZyIsIm1vY2siLCJNYW5hZ2VyIiwiU29ja2V0IiwiY29ubmVjdGlvbiIsImV2ZW50cyIsIm9uIiwicGFyYW1zIiwicHVzaCIsInVzZSIsImRpc2Nvbm5lY3QiLCJyZWNyZWF0ZVNvY2tldCIsIm5ld0luaXRQYXJhbXMiLCJmb3JFYWNoIiwiZXZlbnQiLCJuYW1lIiwiQXBpQ2xpZW50IiwidGhyb3dFcnJvciIsImVyciIsInJlcyIsInJlcSIsInNob3dFcnJvciIsInN0ciIsIkpTT04iLCJzdHJpbmdpZnkiLCJqc29uIiwiZXJyb3IiLCJtZXNzYWdlIiwiZXJyMiIsIkVycm9yIiwiaW8iLCJyb290IiwiYmFzZSIsInVybCIsIndzQ29uZmlnIiwid3MiLCJ3c0Nvbm5lY3Rpb25zIiwiYXV0aFRva2VuIiwid3NSZWNvbm5lY3QiLCJjdHgiLCJ0eXBlIiwic3RhdHVzIiwic3RhdHVzVGV4dCIsInRleHRFcnIiLCJqc29uRXJyIiwicGF0aCIsIm9wdGlvbnMiLCJzdWJzdHIiLCJwb3J0IiwibGVuZ3RoIiwic2VhcmNoIiwicmVwbGFjZSIsImFycmF5IiwibWFwIiwiYSIsImZpbHRlciIsImkiLCJqb2luIiwicXMiLCJpbmRleE9mIiwiY29uc3RydWN0b3IiLCJPYmplY3QiLCJhc3NpZ24iLCJib2R5IiwiZGF0YSIsImhlYWRlcnMiLCJBY2NlcHQiLCJfYm9keSIsImluY2x1ZGVzIiwiZm9ybSIsImtleXMiLCJrZXkiLCJhcHBlbmQiLCJBdXRob3JpemF0aW9uIiwicXVlcnlQYXJhbXMiLCJjcmVhdGVVcmwiLCJtZXRob2QiLCJhZnRlckZldGNoIiwicGFyc2VSZXN1bHQiLCJ0aW1lb3V0IiwicmVzdWx0IiwidGV4dCIsInBhcnNlIiwiZ2V0Q3R4IiwiZmV0Y2giLCJ0cmFjZSIsInRoZW4iLCJQcm9taXNlIiwicmFjZSIsInJlc29sdmUiLCJyZWplY3QiLCJzZXRUaW1lb3V0Iiwic29ja2V0IiwiY29uc29sZSIsIm9wdHMiLCJ0b2tlbkluQ29va2llIiwicXVlcnkiLCJ0b2tlbiIsInBhcmFtczIiLCJjcmVhdGUiLCJtZXJnZSIsImdsb2JhbCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOzs7Ozs7Ozs7Ozs7Ozs4RUFOQTs7O0FBT0E7QUFDQSxJQUFNQSxlQUFlLENBQ25CLFFBRG1CLEVBRW5CLEtBRm1CLEVBR25CLFNBSG1CLEVBSW5CLFNBSm1CLEVBS25CLFVBTG1CLEVBTW5CLGdCQU5tQixFQU9uQixNQVBtQixFQVFuQixhQVJtQixFQVNuQixVQVRtQixFQVVuQixXQVZtQixFQVduQixPQVhtQixDQUFyQjs7QUFjQSxTQUFTQyxNQUFULEdBQStCO0FBQUE7O0FBQUEsb0NBQVpDLFVBQVk7QUFBWkEsY0FBWTtBQUFBOztBQUM3QkMsYUFBVyxxQkFBUUMsR0FBUixrQkFBWSxRQUFaLFNBQXlCRixVQUF6QixFQUFYO0FBQ0E7QUFDQSxNQUFNRyxPQUFPO0FBQ1hDLGFBQVMsNEJBQUdBLE9BREQ7QUFFWEMsWUFBUSw0QkFBR0EsTUFGQTtBQUdYQyxnQkFBWSxJQUhEO0FBSVhDLFlBQVEsRUFKRztBQUtYQyxNQUxXLGdCQUtHO0FBQUEseUNBQVJDLE1BQVE7QUFBUkEsY0FBUTtBQUFBOztBQUNaTixXQUFLSSxNQUFMLENBQVlHLElBQVosRUFBa0IsSUFBbEIsU0FBMkJELE1BQTNCO0FBQ0QsS0FQVTtBQVFYRSxPQVJXLGlCQVFJO0FBQUEseUNBQVJGLE1BQVE7QUFBUkEsY0FBUTtBQUFBOztBQUNiTixXQUFLSSxNQUFMLENBQVlHLElBQVosRUFBa0IsS0FBbEIsU0FBNEJELE1BQTVCO0FBQ0QsS0FWVTtBQVdYRyxjQVhXLHdCQVdXO0FBQUE7O0FBQ3BCLCtCQUFLTixVQUFMLEVBQWdCTSxVQUFoQjtBQUNELEtBYlU7QUFjWEMsa0JBZFcsNEJB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bUIsS0FBSzVELFNBQXhCO0FBQ3hEOztBQUVELFVBQU1sQixNQUFNLEtBQUtXLEVBQUwsQ0FDVixLQUFLNkMsU0FBTCxDQUFlOUIsSUFBZixFQUFxQnFELE9BQXJCLENBRFUsZUFHTCxLQUFLaEUsUUFBTCxDQUFjWSxPQUhULEVBSUx2QyxNQUpLLEVBQVo7QUFPQSxhQUFPWSxHQUFQO0FBQ0Q7Ozs4QkEvU2dCQyxHLEVBQUs7QUFDcEI7QUFDQTtBQUNBLDBCQUNLQSxHQURMO0FBRUUrRSxjQUZGLGtCQUVTNUYsTUFGVCxFQUVpQjtBQUNiLGNBQU15RixRQUFRLEtBQUt0QyxFQUFMLENBQVFsQyxTQUFSLENBQWtCakIsTUFBbEIsQ0FBZDtBQUNBLGlCQUFPLENBQUMsS0FBS3NDLElBQUwsSUFBYSxHQUFkLEtBQXNCbUQsY0FBWUEsS0FBWixHQUFzQixFQUE1QyxDQUFQO0FBQ0QsU0FMSDtBQU1FSSxhQU5GLGlCQU1RN0YsTUFOUixFQU1nQjtBQUNaLGlCQUFPLEtBQUs0RixNQUFMLGNBQ0YsS0FBS0gsS0FESCxFQUVGekYsTUFGRSxFQUFQO0FBSUQ7QUFYSDtBQWFEOzs7Ozs7QUF0Q2tCUyxTLENBQ1pvRSxLLEdBQVFpQixPQUFPakIsSztBQURIcEUsUyxDQUVaMEMsRTtrQkFGWTFDLFMiLCJmaWxlIjoiYXBpcXVlcnkuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBpbXBvcnQgZmV0Y2ggZnJvbSAnbm9kZS1mZXRjaCc7XG5pbXBvcnQgaXNQbGFpbk9iamVjdCBmcm9tICdsb2Rhc2guaXNwbGFpbm9iamVjdCc7XG5pbXBvcnQgcGljayBmcm9tICdsb2Rhc2gucGljayc7XG5pbXBvcnQgcXMgZnJvbSAncXMnO1xuaW1wb3J0IEZvcm1EYXRhIGZyb20gJ2Zvcm0tZGF0YSc7XG5pbXBvcnQgaW8gZnJvbSAnLi9zb2NrZXQtaW8tdW5pdmVyc2FsJztcbmltcG9ydCB0cmltIGZyb20gJy4vdHJpbSc7XG4vLyBpbXBvcnQgZmV0Y2ggZnJvbSAnaXNvbW9ycGhpYy1mZXRjaCc7XG5jb25zdCBGRVRDSF9QQVJBTVMgPSBbXG4gICdtZXRob2QnLFxuICAndXJsJyxcbiAgJ2hlYWRlcnMnLFxuICAnY29udGV4dCcsXG4gICdyZWZlcnJlcicsXG4gICdyZWZlcnJlclBvbGljeScsXG4gICdtb2RlJyxcbiAgJ2NyZWRlbnRpYWxzJyxcbiAgJ3JlZGlyZWN0JyxcbiAgJ2ludGVncml0eScsXG4gICdjYWNoZScsXG5dO1xuXG5mdW5jdGlvbiBpb01vY2soLi4uaW5pdFBhcmFtcykge1xuICBfX0RFVl9fICYmIGNvbnNvbGUubG9nKCdpb01vY2snLCAuLi5pbml0UGFyYW1zKTtcbiAgLy8gY29uc3Qgc29ja2V0ID0gaW8oLi4ucGFyYW1zKVxuICBjb25zdCBtb2NrID0ge1xuICAgIE1hbmFnZXI6IGlvLk1hbmFnZXIsXG4gICAgU29ja2V0OiBpby5Tb2NrZXQsXG4gICAgY29ubmVjdGlvbjogbnVsbCxcbiAgICBldmVudHM6IFtdLFxuICAgIG9uKC4uLnBhcmFtcykge1xuICAgICAgbW9jay5ldmVudHMucHVzaChbJ29uJywgLi4ucGFyYW1zXSk7XG4gICAgfSxcbiAgICB1c2UoLi4ucGFyYW1zKSB7XG4gICAgICBtb2NrLmV2ZW50cy5wdXNoKFsndXNlJywgLi4ucGFyYW1zXSk7XG4gICAgfSxcbiAgICBkaXNjb25uZWN0KC4uLnBhcmFtcykge1xuICAgICAgbW9jay5jb25uZWN0aW9uLmRpc2Nvbm5lY3QoLi4ucGFyYW1zKTtcbiAgICB9LFxuICAgIHJlY3JlYXRlU29ja2V0KC4uLm5ld0luaXRQYXJhbXMpIHtcbiAgICAgIF9fREVWX18gJiYgY29uc29sZS5sb2coJ3JlY3JlYXRlU29ja2V0JywgLi4ubmV3SW5pdFBhcmFtcyk7XG4gICAgICBpZiAobW9jay5jb25uZWN0aW9uICYmIG1vY2suY29ubmVjdGlvbi5kaXNjb25uZWN0KSB7XG4gICAgICAgIG1vY2suY29ubmVjdGlvbi5kaXNjb25uZWN0KCk7XG4gICAgICB9XG4gICAgICBtb2NrLmNvbm5lY3Rpb24gPSBpbyguLi5uZXdJbml0UGFyYW1zKTtcbiAgICAgIG1vY2suZXZlbnRzLmZvckVhY2goKGV2ZW50KSA9PiB7XG4gICAgICAgIGNvbnN0IFtuYW1lLCAuLi5wYXJhbXNdID0gZXZlbnQ7XG4gICAgICAgIG1vY2suY29ubmVjdGlvbltuYW1lXSguLi5wYXJhbXMpO1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gbW9jay5jb25uZWN0aW9uO1xuICAgIH0sXG4gIH07XG4gIHJldHVybiBtb2NrLnJlY3JlYXRlU29ja2V0KC4uLmluaXRQYXJhbXMpO1xufVxuXG4vLyBjb25zdCBERUJVRyA9IF9fREVWX187XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEFwaUNsaWVudCB7XG4gIHN0YXRpYyBmZXRjaCA9IGdsb2JhbC5mZXRjaDtcbiAgc3RhdGljIHFzID0gcXNcbiAgLy8gaW8gPSBpb1xuXG4gIGNvbnN0cnVjdG9yKHBhcmFtcyA9IHt9KSB7XG4gICAgLy8gY29uc29sZS5sb2coJ0FwaUNsaWVudCcsIHBhcmFtcyk7XG4gICAgdGhpcy5pbyA9IGlvTW9jaztcbiAgICB0aGlzLmxvZyA9IHBhcmFtcy5sb2c7XG4gICAgdGhpcy5yb290ID0gcGFyYW1zLnJvb3Q7XG4gICAgdGhpcy5iYXNlID0gcGFyYW1zLmJhc2U7XG4gICAgdGhpcy51cmwgPSBwYXJhbXMudXJsO1xuICAgIHRoaXMud3NDb25maWcgPSBwYXJhbXMud3M7XG4gICAgdGhpcy53c0Nvbm5lY3Rpb25zID0ge307XG4gICAgdGhpcy5hdXRoVG9rZW4gPSBwYXJhbXMuYXV0aFRva2VuIHx8IG51bGw7XG4gIH1cblxuICBzZXRBdXRoVG9rZW4oYXV0aFRva2VuKSB7XG4gICAgdGhpcy5hdXRoVG9rZW4gPSBhdXRoVG9rZW47XG4gICAgdGhpcy53c1JlY29ubmVjdCgpO1xuICB9XG5cbiAgc3RhdGljIGNyZWF0ZVJlcShyZXEpIHtcbiAgICAvLyByZXEucGF0aCxcbiAgICAvLyByZXEucXVlcnksXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnJlcSxcbiAgICAgIGNyZWF0ZShwYXJhbXMpIHtcbiAgICAgICAgY29uc3QgcXVlcnkgPSB0aGlzLnFzLnN0cmluZ2lmeShwYXJhbXMpO1xuICAgICAgICByZXR1cm4gKHRoaXMucGF0aCB8fCAnLycpICsgKHF1ZXJ5ID8gYD8ke3F1ZXJ5fWAgOiAnJyk7XG4gICAgICB9LFxuICAgICAgbWVyZ2UocGFyYW1zKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZSh7XG4gICAgICAgICAgLi4udGhpcy5xdWVyeSxcbiAgICAgICAgICAuLi5wYXJhbXMsXG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgdGhyb3dFcnJvciA9IGFzeW5jICh7IGVyciwgcmVzLCByZXEgfSkgPT4ge1xuICAgIGlmICh0aGlzLnNob3dFcnJvciAmJiB0aGlzLmxvZykge1xuICAgICAgY29uc3Qgc3RyID0gYFxcXG49PT09PT09PT09PT09PVxuICBmZXRjaCBlcnJvcjpcbiR7aXNQbGFpbk9iamVjdChlcnIpID8gSlNPTi5zdHJpbmdpZnkoZXJyLCBudWxsLCAyKSA6IGVycn1cbiAgcmVxOlxuJHtKU09OLnN0cmluZ2lmeShyZXEsIG51bGwsIDIpfVxuICBqc29uOlxuJHtKU09OLnN0cmluZ2lmeShyZXMuanNvbiwgbnVsbCwgMil9XG49PT09PT09PT09PT09PVxcXG5gO1xuICAgICAgdGhpcy5sb2cuZXJyb3Ioc3RyKTtcbiAgICB9XG4gICAgY29uc3QgbWVzc2FnZSA9IGVyciAmJiBlcnIubWVzc2FnZSB8fCBlcnI7XG4gICAgY29uc3QgZXJyMiA9IG5ldyBFcnJvcihpc1BsYWluT2JqZWN0KG1lc3NhZ2UpID8gSlNPTi5zdHJpbmdpZnkobWVzc2FnZSkgOiBtZXNzYWdlKTtcbiAgICBlcnIyLnJlcyA9IHJlcztcbiAgICBlcnIyLnJlcSA9IHJlcTtcbiAgICB0aHJvdyBlcnIyO1xuICB9XG5cbiAgYXN5bmMgYWZ0ZXJGZXRjaChjdHgpIHtcbiAgICBjb25zdCB7IHJlcywgdGhyb3dFcnJvciB9ID0gY3R4O1xuICAgIGlmIChyZXMuanNvbiAmJiByZXMuanNvbi5lcnIpIHtcbiAgICAgIGF3YWl0IHRocm93RXJyb3Ioe1xuICAgICAgICAuLi5jdHgsXG4gICAgICAgIGVycjoge1xuICAgICAgICAgIHR5cGU6ICdDVVNUT01fRVJST1InLFxuICAgICAgICAgIC4uLnJlcy5qc29uLmVycixcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIH1cbiAgICBpZiAocmVzLnN0YXR1cyA+PSA0MDApIHtcbiAgICAgIGNvbnN0IHR5cGUgPSAnUkVTX1NUQVRVU19FUlJPUic7XG4gICAgICBhd2FpdCB0aHJvd0Vycm9yKHtcbiAgICAgICAgLi4uY3R4LFxuICAgICAgICBlcnI6IHtcbiAgICAgICAgICB0eXBlLFxuICAgICAgICAgIHN0YXR1czogcmVzLnN0YXR1cyxcbiAgICAgICAgICBzdGF0dXNUZXh0OiByZXMuc3RhdHVzVGV4dCxcbiAgICAgICAgICBtZXNzYWdlOiBgJHt0eXBlfTogJHtyZXMuc3RhdHVzfSAke3Jlcy5zdGF0dXNUZXh0fWAsXG4gICAgICAgICAgLi4uKHJlcy5qc29uIHx8IHt9KSxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIH1cbiAgICBpZiAocmVzLnRleHRFcnIpIHtcbiAgICAgIGNvbnN0IHR5cGUgPSAnVEVYVF9QQVJTRV9FUlJPUic7XG4gICAgICBhd2FpdCBjdHgudGhyb3dFcnJvcih7XG4gICAgICAgIC4uLmN0eCxcbiAgICAgICAgcmVzLFxuICAgICAgICBlcnI6IHtcbiAgICAgICAgICB0eXBlLFxuICAgICAgICAgIG1lc3NhZ2U6ICfQntGI0LjQsdC60LAg0L/QtdGA0LXQtNCw0YfQuCDQtNCw0L3QvdGL0YUnLFxuICAgICAgICAgIGVycjogcmVzLnRleHRFcnIsXG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB9XG4gICAgaWYgKHJlcy5qc29uRXJyKSB7XG4gICAgICBjb25zdCB0eXBlID0gJ0pTT05fUEFSU0VfRVJST1InO1xuICAgICAgYXdhaXQgY3R4LnRocm93RXJyb3Ioe1xuICAgICAgICAuLi5jdHgsXG4gICAgICAgIHJlcyxcbiAgICAgICAgZXJyOiB7XG4gICAgICAgICAgdHlwZSxcbiAgICAgICAgICBtZXNzYWdlOiAn0J7RiNC40LHQutCwINGB0LXRgNCy0LXRgNCwJyxcbiAgICAgICAgICAvLyBtZXNzYWdlOiB0eXBlLFxuICAgICAgICAgIGVycjogcmVzLmpzb25FcnIsXG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHJlcy5qc29uO1xuICB9XG5cbiAgY3JlYXRlVXJsKHBhdGgsIG9wdGlvbnMgPSB7fSkge1xuICAgIGlmIChwYXRoLnN1YnN0cigwLCA1KSA9PT0gJ2h0dHA6JyB8fCBwYXRoLnN1YnN0cigwLCA2KSA9PT0gJ2h0dHBzOicpIHtcbiAgICAgIHJldHVybiBwYXRoO1xuICAgIH1cbiAgICBsZXQgdXJsID0gb3B0aW9ucy51cmwgfHwgdGhpcy51cmwgfHwgJy8nO1xuICAgIGNvbnN0IHBvcnQgPSBvcHRpb25zLnBvcnQgfHwgdGhpcy5wb3J0IHx8IG51bGw7XG5cbiAgICBpZiAodXJsICYmIHVybC5sZW5ndGggPiAxICYmIHBvcnQpIHtcbiAgICAgIGlmICh1cmwuc2VhcmNoKC86KFxcZCspLykgIT09IC0xKSB7XG4gICAgICAgIHVybCA9IHVybC5yZXBsYWNlKC86KFxcZCspLywgYDoke3BvcnR9YCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB1cmwgPSBgJHt1cmx9OiR7cG9ydH1gO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGJhc2UgPSBvcHRpb25zLmJhc2UgfHwgdGhpcy5iYXNlO1xuICAgIGNvbnN0IGFycmF5ID0gW3VybCwgcGF0aFswXSA9PT0gJy8nID8gbnVsbCA6IHRyaW0oYmFzZSksIHRyaW0ocGF0aCldO1xuICAgIHVybCA9IGFycmF5XG4gICAgICAubWFwKGEgPT4gdHJpbShhKSlcbiAgICAgIC5maWx0ZXIoKGEsIGkpID0+IChpID09PSAwIHx8IGEpKVxuICAgICAgLmpvaW4oJy8nKTtcbiAgICBpZiAob3B0aW9ucy5xcykge1xuICAgICAgdXJsICs9ICh1cmwuaW5kZXhPZignPycpID09PSAtMSA/ICc/JyA6ICcmJykgKyB0aGlzLmNvbnN0cnVjdG9yLnFzLnN0cmluZ2lmeShvcHRpb25zLnFzKTtcbiAgICB9XG4gICAgcmV0dXJuIHVybDtcbiAgfVxuXG4gIGdldEN0eCh1cmwsIHBhcmFtcyA9IHt9KSB7XG4gICAgY29uc3QgcmVxID0gT2JqZWN0LmFzc2lnbihcbiAgICAgIHsgdXJsIH0sXG4gICAgICBwaWNrKHBhcmFtcywgRkVUQ0hfUEFSQU1TKSxcbiAgICApO1xuXG4gICAgY29uc3QgYm9keSA9IHBhcmFtcy5ib2R5IHx8IHBhcmFtcy5kYXRhO1xuXG4gICAgaWYgKCFyZXEuaGVhZGVycykgcmVxLmhlYWRlcnMgPSB7fTtcbiAgICBpZiAoIXJlcS5oZWFkZXJzLkFjY2VwdCkgcmVxLmhlYWRlcnMuQWNjZXB0ID0gJ2FwcGxpY2F0aW9uL2pzb24nO1xuICAgIGlmICghcmVxLmhlYWRlcnNbJ0NvbnRlbnQtVHlwZSddKSByZXEuaGVhZGVyc1snQ29udGVudC1UeXBlJ10gPSAnYXBwbGljYXRpb24vanNvbjsgY2hhcnNldD11dGYtOCc7XG4gICAgaWYgKHJlcS5oZWFkZXJzWydDb250ZW50LVR5cGUnXSA9PT0gJyEnKSB7XG4gICAgICBkZWxldGUgcmVxLmhlYWRlcnNbJ0NvbnRlbnQtVHlwZSddO1xuICAgIH1cblxuICAgIHJlcS5fYm9keSA9IGJvZHk7XG4gICAgcmVxLmJvZHkgPSBib2R5O1xuICAgIGlmIChpc1BsYWluT2JqZWN0KGJvZHkpKSB7XG4gICAgICBpZiAocmVxLmhlYWRlcnNbJ0NvbnRlbnQtVHlwZSddICYmIHJlcS5oZWFkZXJzWydDb250ZW50LVR5cGUnXS5pbmNsdWRlcygnYXBwbGljYXRpb24vanNvbicpKSB7XG4gICAgICAgIHJlcS5ib2R5ID0gSlNPTi5zdHJpbmdpZnkoYm9keSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBmb3JtID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgICAgIE9iamVjdC5rZXlzKGJvZHkpLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgICAgIGZvcm0uYXBwZW5kKGtleSwgYm9keVtrZXldKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJlcS5ib2R5ID0gZm9ybTtcbiAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgYXV0aFRva2VuID0gKHBhcmFtcy5hdXRoVG9rZW4gfHwgdGhpcy5hdXRoVG9rZW4pO1xuICAgIGlmICghcmVxLmhlYWRlcnMuQXV0aG9yaXphdGlvbiAmJiBhdXRoVG9rZW4pIHtcbiAgICAgIHJlcS5oZWFkZXJzLkF1dGhvcml6YXRpb24gPSBgQmVhcmVyICR7YXV0aFRva2VufWA7XG4gICAgfVxuXG4gICAgcmVxLnFzID0gcGFyYW1zLnF1ZXJ5UGFyYW1zIHx8IHBhcmFtcy5xcztcbiAgICBpZiAocmVxLnFzKSB7XG4gICAgICByZXEudXJsICs9IChyZXEudXJsLmluZGV4T2YoJz8nKSA9PT0gLTEgPyAnPycgOiAnJicpICsgdGhpcy5jb25zdHJ1Y3Rvci5xcy5zdHJpbmdpZnkocmVxLnFzKTtcbiAgICB9XG4gICAgcmVxLnVybCA9IHRoaXMuY3JlYXRlVXJsKHJlcS51cmwpO1xuXG4gICAgaWYgKCFyZXEubWV0aG9kKSB7XG4gICAgICByZXEubWV0aG9kID0gJ0dFVCc7XG4gICAgfVxuICAgIGNvbnN0IHRocm93RXJyb3IgPSBwYXJhbXMudGhyb3dFcnJvciB8fCB0aGlzLnRocm93RXJyb3I7XG4gICAgY29uc3QgYWZ0ZXJGZXRjaCA9IHBhcmFtcy5hZnRlckZldGNoIHx8IHRoaXMuYWZ0ZXJGZXRjaDtcbiAgICBjb25zdCBwYXJzZVJlc3VsdCA9IHBhcmFtcy5wYXJzZVJlc3VsdCB8fCB0aGlzLnBhcnNlUmVzdWx0O1xuICAgIGNvbnN0IHRpbWVvdXQgPSBwYXJhbXMudGltZW91dDtcblxuICAgIHJldHVybiB7XG4gICAgICByZXEsXG4gICAgICB0aW1lb3V0LFxuICAgICAgYXV0aFRva2VuLFxuICAgICAgdGhyb3dFcnJvcixcbiAgICAgIGFmdGVyRmV0Y2gsXG4gICAgICBwYXJzZVJlc3VsdCxcbiAgICB9O1xuICB9XG5cbiAgYXN5bmMgcGFyc2VSZXN1bHQoY3R4LCByZXN1bHQpIHtcbiAgICBjb25zdCByZXMgPSB7XG4gICAgICByZXN1bHQsXG4gICAgICBzdGF0dXM6IHJlc3VsdC5zdGF0dXMsXG4gICAgICBzdGF0dXNUZXh0OiByZXN1bHQuc3RhdHVzVGV4dCxcbiAgICB9O1xuICAgIHRyeSB7XG4gICAgICByZXMudGV4dCA9IGF3YWl0IHJlc3VsdC50ZXh0KCk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICByZXMudGV4dEVyciA9IGVycjtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIHJlcy5qc29uID0gSlNPTi5wYXJzZShyZXMudGV4dCk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICByZXMuanNvbkVyciA9IGVycjtcbiAgICB9XG4gICAgcmV0dXJuIHJlcztcbiAgfVxuXG4gIGZldGNoKC4uLmFyZ3MpIHtcbiAgICBjb25zdCBjdHggPSB0aGlzLmdldEN0eCguLi5hcmdzKTtcbiAgICBjb25zdCB7IGZldGNoIH0gPSB0aGlzLmNvbnN0cnVjdG9yO1xuICAgIGNvbnN0IHsgcmVxLCBwYXJzZVJlc3VsdCwgYWZ0ZXJGZXRjaCB9ID0gY3R4O1xuICAgIGlmICh0aGlzLmxvZyAmJiB0aGlzLmxvZy50cmFjZSkge1xuICAgICAgdGhpcy5sb2cudHJhY2UoJ1thcGldJywgcmVxLm1ldGhvZCwgcmVxLnVybCwgcmVxLl9ib2R5KTtcbiAgICAgIC8vIHRoaXMubG9nLnRyYWNlKCdbYXBpXScsIHJlcS5tZXRob2QsIHJlcS51cmwsIHJlcS5fYm9keSwgcmVxKTtcbiAgICB9XG4gICAgY29uc3QgeyB1cmwsIC4uLnBhcmFtcyB9ID0gcmVxO1xuICAgIC8vIGNvbnNvbGUubG9nKCdAQEBmZXRjaCcsIHVybCwgcGFyYW1zKTtcbiAgICBjb25zdCByZXMgPSBmZXRjaCh1cmwsIHBhcmFtcylcbiAgICAgIC50aGVuKGFzeW5jIChyZXN1bHQpID0+IHtcbiAgICAgICAgY3R4LnJlcyA9IGF3YWl0IHBhcnNlUmVzdWx0KGN0eCwgcmVzdWx0KTtcbiAgICAgICAgcmV0dXJuIGN0eDtcbiAgICAgIH0pXG4gICAgICAudGhlbihhZnRlckZldGNoKTtcbiAgICBpZiAoIWN0eC50aW1lb3V0KSByZXR1cm4gcmVzO1xuXG4gICAgcmV0dXJuIFByb21pc2UucmFjZShbXG4gICAgICByZXMsXG4gICAgICBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4gcmVqZWN0KG5ldyBFcnJvcignZmV0Y2ggdGltZW91dCcpKSwgY3R4LnRpbWVvdXQpO1xuICAgICAgfSksXG4gICAgXSk7XG4gIH1cblxuICB3c1JlY29ubmVjdCgpIHtcbiAgICBpZiAodGhpcy5sb2cgJiYgdGhpcy5sb2cudHJhY2UpIHtcbiAgICAgIHRoaXMubG9nLnRyYWNlKCdbYXBpXSBXUy53c1JlY29ubmVjdCcsIE9iamVjdC5rZXlzKHRoaXMud3NDb25uZWN0aW9ucykpO1xuICAgIH1cblxuICAgIE9iamVjdC5rZXlzKHRoaXMud3NDb25uZWN0aW9ucykuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICBjb25zdCBbcGF0aCwgb3B0aW9ucywgc29ja2V0XSA9IHRoaXMud3NDb25uZWN0aW9uc1trZXldO1xuICAgICAgc29ja2V0LnJlY3JlYXRlU29ja2V0KHBhdGgsIG9wdGlvbnMpO1xuICAgICAgLy8gc29ja2V0LmRpc2Nvbm5lY3QoKTtcbiAgICAgIC8vIHRoaXMud3MocGF0aCwgb3B0aW9ucyk7XG4gICAgfSk7XG4gIH1cblxuICB3cyhwYXRoID0gJycsIG9wdGlvbnMgPSB7fSkge1xuICAgIC8vIGNvbnNvbGUubG9nKCdhcGkud3MnLCBwYXRoKVxuICAgIGNvbnN0IGtleSA9IHBhdGggKyBKU09OLnN0cmluZ2lmeShvcHRpb25zKTtcbiAgICBpZiAodGhpcy53c0Nvbm5lY3Rpb25zW2tleV0pIHJldHVybiB0aGlzLndzQ29ubmVjdGlvbnNba2V5XTtcbiAgICBpZiAoIXRoaXMud3NDb25maWcpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ9CS0Ysg0L3QtSDQvNC+0LbQtdGC0LUg0LjRgdC/0L7Qu9GM0LfQvtCy0LDRgtGMIGFwaS53cyDQsdC10Lcg0YHQvtC60LXRgiDQutC+0L3RhNC40LPQvtCyJyk7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgY29uc3Qgb3B0cyA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMud3NDb25maWcgJiYgdGhpcy53c0NvbmZpZy5vcHRpb25zLCBvcHRpb25zKTtcbiAgICAvLyBjb25zb2xlLmxvZygnV1MgV1MgV1MnLFxuICAgIC8vICAge1xuICAgIC8vICAgICBxOiB0aGlzLndzQ29uZmlnICYmIHRoaXMud3NDb25maWcub3B0aW9ucyxcbiAgICAvLyAgICAgdzogb3B0aW9ucyxcbiAgICAvLyAgICAgZTogb3B0cyxcbiAgICAvLyAgICAgcjogT2JqZWN0LmFzc2lnbih7fSwgdGhpcy53c0NvbmZpZyAmJiB0aGlzLndzQ29uZmlnLm9wdGlvbnMsIG9wdGlvbnMpXG4gICAgLy8gICB9XG4gICAgLy8gKTtcbiAgICAvLyBjb25zb2xlLmxvZyhvcHRzLnF1ZXJ5LCBvcHRzLnF1ZXJ5LnRva2VuLCB0aGlzLmF1dGhUb2tlbik7XG4gICAgaWYgKCEodGhpcy53c0NvbmZpZyAmJiB0aGlzLndzQ29uZmlnLnRva2VuSW5Db29raWUpKSB7XG4gICAgICBpZiAob3B0cy5xdWVyeSAmJiAhb3B0cy5xdWVyeS50b2tlbiAmJiB0aGlzLmF1dGhUb2tlbikgb3B0cy5xdWVyeS50b2tlbiA9IHRoaXMuYXV0aFRva2VuO1xuICAgIH1cbiAgICBjb25zdCBwYXJhbXMyID0ge307XG4gICAgaWYgKCF0aGlzLndzQ29uZmlnLnRva2VuSW5Db29raWUpIHtcbiAgICAgIGlmICghcGFyYW1zMi5xcykge1xuICAgICAgICBwYXJhbXMyLnFzID0ge1xuICAgICAgICAgIC4uLihvcHRzLnF1ZXJ5IHx8IHt9KSxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIGlmIChwYXJhbXMyLnFzICYmICFwYXJhbXMyLnFzLnRva2VuICYmIHRoaXMuYXV0aFRva2VuKSBwYXJhbXMyLnFzLnRva2VuID0gdGhpcy5hdXRoVG9rZW47XG4gICAgfVxuXG4gICAgLy8gY29uc29sZS5sb2coJ1dTIG9wdHMucXVlcnksIG9wdHMucXVlcnkudG9rZW4sIHRoaXMuYXV0aFRva2VuJywgb3B0cy5xdWVyeSwgb3B0cy5xdWVyeS50b2tlbiwgdGhpcy5hdXRoVG9rZW4pO1xuICAgIGNvbnN0IHVybCA9IHRoaXMuY3JlYXRlVXJsKHBhdGgsIHsgLi4udGhpcy53c0NvbmZpZywgLi4ucGFyYW1zMiB9KTtcbiAgICAvLyBjb25zb2xlLmxvZygnd3MgdXJsJywge3dzQ29uZmlnOiB0aGlzLndzQ29uZmlnLCBwYXRoLCBvcHRpb25zLCB1cmwsIG9wdHMsfSApO1xuICAgIGlmICh0aGlzLmxvZyAmJiB0aGlzLmxvZy50cmFjZSkge1xuICAgICAgdGhpcy5sb2cudHJhY2UoJ1thcGldIFdTJywgdXJsLCBvcHRpb25zKTtcbiAgICAgIC8vIHRoaXMubG9nLnRyYWNlKCdbYXBpXScsIHJlcS5tZXRob2QsIHJlcS51cmwsIHJlcS5fYm9keSwgcmVxKTtcbiAgICB9XG4gICAgY29uc3Qgc29ja2V0ID0gaW8oXG4gICAgICB1cmwsXG4gICAgICBvcHRzLFxuICAgICk7XG5cbiAgICB0aGlzLndzQ29ubmVjdGlvbnNba2V5XSA9IFtwYXRoLCBvcHRpb25zLCBzb2NrZXRdO1xuICAgIHNvY2tldC5vbignZGlzY29ubmVjdCcsICgpID0+IHtcbiAgICAgIGRlbGV0ZSB0aGlzLndzQ29ubmVjdGlvbnNba2V5XTtcbiAgICB9KTtcblxuICAgIHJldHVybiBzb2NrZXQ7XG4gIH1cbiAgd3MyKHBhdGggPSAnJywgcGFyYW1zID0ge30pIHtcbiAgICBpZiAoIXRoaXMud3NDb25maWcpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ9CS0Ysg0L3QtSDQvNC+0LbQtdGC0LUg0LjRgdC/0L7Qu9GM0LfQvtCy0LDRgtGMIGFwaS53cyDQsdC10Lcg0YHQvtC60LXRgiDQutC+0L3RhNC40LPQvtCyJyk7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgY29uc3QgcGFyYW1zMiA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMud3NDb25maWcsIHBhcmFtcyk7XG5cbiAgICBpZiAoIXRoaXMud3NDb25maWcudG9rZW5JbkNvb2tpZSkge1xuICAgICAgaWYgKCFwYXJhbXMyLnFzKSBwYXJhbXMyLnFzID0ge307XG4gICAgICBpZiAocGFyYW1zMi5xcyAmJiAhcGFyYW1zMi5xcy50b2tlbiAmJiB0aGlzLmF1dGhUb2tlbikgcGFyYW1zMi5xcy50b2tlbiA9IHRoaXMuYXV0aFRva2VuO1xuICAgIH1cblxuICAgIGNvbnN0IHJlcyA9IHRoaXMuaW8oXG4gICAgICB0aGlzLmNyZWF0ZVVybChwYXRoLCBwYXJhbXMyKSxcbiAgICAgIHtcbiAgICAgICAgLi4udGhpcy53c0NvbmZpZy5vcHRpb25zLFxuICAgICAgICAuLi5wYXJhbXMsXG4gICAgICB9LFxuICAgICk7XG4gICAgcmV0dXJuIHJlcztcbiAgfVxuXG59XG4iXX0= | ||
//# 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 |
{ | ||
"name": "apiquery", | ||
"version": "0.1.13", | ||
"version": "0.1.14", | ||
"description": "http + websockets api client for Web, Node.js and React Native", | ||
@@ -5,0 +5,0 @@ "repository": { |
162430
590