New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

apiquery

Package Overview
Dependencies
Maintainers
1
Versions
24
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

apiquery - npm Package Compare versions

Comparing version 0.1.16 to 0.1.17

10

apiquery.js

@@ -118,3 +118,3 @@ 'use strict';

};
console.log('recreateConnection');
__DEV__ && console.log('recreateConnection');
return mock.connection;

@@ -491,6 +491,6 @@ }

_this3.log.trace('[api] prepare reconnect @@', socket);
console.log('prepare reconnect @@', socket);
__DEV__ && _this3.log.trace('[api] prepare reconnect @@', socket);
__DEV__ && console.log('prepare reconnect @@', socket);
if (!socket.recreateSocket) {
console.log('!socket.recreateSocket', socket);
__DEV__ && console.log('!socket.recreateSocket', socket);
}

@@ -597,2 +597,2 @@ socket.recreateSocket(path, options);

exports.default = ApiClient;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9hcGlxdWVyeS5qcyJdLCJuYW1lcyI6WyJGRVRDSF9QQVJBTVMiLCJpb01vY2siLCJpbml0UGFyYW1zIiwiX19ERVZfXyIsImxvZyIsIm1vY2siLCJNYW5hZ2VyIiwiU29ja2V0IiwiY29ubmVjdGlvbiIsImV2ZW50cyIsIm9uIiwicGFyYW1zIiwicHVzaCIsInVzZSIsImRpc2Nvbm5lY3QiLCJyZWNyZWF0ZVNvY2tldCIsIm5ld0luaXRQYXJhbXMiLCJmb3JFYWNoIiwiZXZlbnQiLCJuYW1lIiwibmV3SW5pdFBhcmFtczIiLCJjb25zb2xlIiwiQXBpQ2xpZW50IiwidGhyb3dFcnJvciIsImVyciIsInJlcyIsInJlcSIsInNob3dFcnJvciIsInN0ciIsIkpTT04iLCJzdHJpbmdpZnkiLCJqc29uIiwiZXJyb3IiLCJtZXNzYWdlIiwiZXJyMiIsIkVycm9yIiwiaW8iLCJyb290IiwiYmFzZSIsInVybCIsIndzQ29uZmlnIiwid3MiLCJ3c0Nvbm5lY3Rpb25zIiwiYXV0aFRva2VuIiwid3NSZWNvbm5lY3QiLCJjdHgiLCJ0eXBlIiwic3RhdHVzIiwic3RhdHVzVGV4dCIsInRleHRFcnIiLCJqc29uRXJyIiwicGF0aCIsIm9wdGlvbnMiLCJzdWJzdHIiLCJwb3J0IiwibGVuZ3RoIiwic2VhcmNoIiwicmVwbGFjZSIsImFycmF5IiwibWFwIiwiYSIsImZpbHRlciIsImkiLCJqb2luIiwicXMiLCJpbmRleE9mIiwiY29uc3RydWN0b3IiLCJPYmplY3QiLCJhc3NpZ24iLCJib2R5IiwiZGF0YSIsImhlYWRlcnMiLCJBY2NlcHQiLCJfYm9keSIsImluY2x1ZGVzIiwiZm9ybSIsImtleXMiLCJrZXkiLCJhcHBlbmQiLCJBdXRob3JpemF0aW9uIiwicXVlcnlQYXJhbXMiLCJjcmVhdGVVcmwiLCJtZXRob2QiLCJhZnRlckZldGNoIiwicGFyc2VSZXN1bHQiLCJ0aW1lb3V0IiwicmVzdWx0IiwidGV4dCIsInBhcnNlIiwiZ2V0Q3R4IiwiZmV0Y2giLCJ0cmFjZSIsInRoZW4iLCJQcm9taXNlIiwicmFjZSIsInJlc29sdmUiLCJyZWplY3QiLCJzZXRUaW1lb3V0Iiwic29ja2V0Iiwib3B0cyIsInRva2VuSW5Db29raWUiLCJxdWVyeSIsInRva2VuIiwicGFyYW1zMiIsImNyZWF0ZSIsIm1lcmdlIiwiZ2xvYmFsIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7Ozs7Ozs7Ozs7OzhFQU5BOzs7QUFPQTtBQUNBLElBQU1BLGVBQWUsQ0FDbkIsUUFEbUIsRUFFbkIsS0FGbUIsRUFHbkIsU0FIbUIsRUFJbkIsU0FKbUIsRUFLbkIsVUFMbUIsRUFNbkIsZ0JBTm1CLEVBT25CLE1BUG1CLEVBUW5CLGFBUm1CLEVBU25CLFVBVG1CLEVBVW5CLFdBVm1CLEVBV25CLE9BWG1CLENBQXJCOztBQWNBLFNBQVNDLE1BQVQsR0FBK0I7QUFBQTs7QUFBQSxvQ0FBWkMsVUFBWTtBQUFaQSxjQUFZO0FBQUE7O0FBQzdCQyxhQUFXLHFCQUFRQyxHQUFSLGtCQUFZLFFBQVosU0FBeUJGLFVBQXpCLEVBQVg7QUFDQTtBQUNBLE1BQU1HLE9BQU87QUFDWEMsYUFBUyw0QkFBR0EsT0FERDtBQUVYQyxZQUFRLDRCQUFHQSxNQUZBO0FBR1hDLGdCQUFZLElBSEQ7QUFJWEMsWUFBUSxFQUpHO0FBS1hDLE1BTFcsZ0JBS0c7QUFBQSx5Q0FBUkMsTUFBUTtBQUFSQSxjQUFRO0FBQUE7O0FBQ1pOLFdBQUtJLE1BQUwsQ0FBWUcsSUFBWixFQUFrQixJQUFsQixTQUEyQkQsTUFBM0I7QUFDRCxLQVBVO0FBUVhFLE9BUlcsaUJBUUk7QUFBQSx5Q0FBUkYsTUFBUTtBQUFSQSxjQUFRO0FBQUE7O0FBQ2JOLFdBQUtJLE1BQUwsQ0FBWUcsSUFBWixFQUFrQixLQUFsQixTQUE0QkQsTUFBNUI7QUFDRCxLQVZVO0FBV1hHLGNBWFcsd0JBV1c7QUFBQTs7QUFDcEIsK0JBQUtOLFVBQUwsRUFBZ0JNLFVBQWhCO0FBQ0QsS0Fi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QVA7QUFJRDtBQVhIO0FBYUQ7Ozs7OztBQXRDa0JXLFMsQ0FDWm9FLEssR0FBUWdCLE9BQU9oQixLO0FBREhwRSxTLENBRVowQyxFO2tCQUZZMUMsUyIsImZpbGUiOiJhcGlxdWVyeS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGltcG9ydCBmZXRjaCBmcm9tICdub2RlLWZldGNoJztcbmltcG9ydCBpc1BsYWluT2JqZWN0IGZyb20gJ2xvZGFzaC5pc3BsYWlub2JqZWN0JztcbmltcG9ydCBwaWNrIGZyb20gJ2xvZGFzaC5waWNrJztcbmltcG9ydCBxcyBmcm9tICdxcyc7XG5pbXBvcnQgRm9ybURhdGEgZnJvbSAnZm9ybS1kYXRhJztcbmltcG9ydCBpbyBmcm9tICcuL3NvY2tldC1pby11bml2ZXJzYWwnO1xuaW1wb3J0IHRyaW0gZnJvbSAnLi90cmltJztcbi8vIGltcG9ydCBmZXRjaCBmcm9tICdpc29tb3JwaGljLWZldGNoJztcbmNvbnN0IEZFVENIX1BBUkFNUyA9IFtcbiAgJ21ldGhvZCcsXG4gICd1cmwnLFxuICAnaGVhZGVycycsXG4gICdjb250ZXh0JyxcbiAgJ3JlZmVycmVyJyxcbiAgJ3JlZmVycmVyUG9saWN5JyxcbiAgJ21vZGUnLFxuICAnY3JlZGVudGlhbHMnLFxuICAncmVkaXJlY3QnLFxuICAnaW50ZWdyaXR5JyxcbiAgJ2NhY2hlJyxcbl07XG5cbmZ1bmN0aW9uIGlvTW9jayguLi5pbml0UGFyYW1zKSB7XG4gIF9fREVWX18gJiYgY29uc29sZS5sb2coJ2lvTW9jaycsIC4uLmluaXRQYXJhbXMpO1xuICAvLyBjb25zdCBzb2NrZXQgPSBpbyguLi5wYXJhbXMpXG4gIGNvbnN0IG1vY2sgPSB7XG4gICAgTWFuYWdlcjogaW8uTWFuYWdlcixcbiAgICBTb2NrZXQ6IGlvLlNvY2tldCxcbiAgICBjb25uZWN0aW9uOiBudWxsLFxuICAgIGV2ZW50czogW10sXG4gICAgb24oLi4ucGFyYW1zKSB7XG4gICAgICBtb2NrLmV2ZW50cy5wdXNoKFsnb24nLCAuLi5wYXJhbXNdKTtcbiAgICB9LFxuICAgIHVzZSguLi5wYXJhbXMpIHtcbiAgICAgIG1vY2suZXZlbnRzLnB1c2goWyd1c2UnLCAuLi5wYXJhbXNdKTtcbiAgICB9LFxuICAgIGRpc2Nvbm5lY3QoLi4ucGFyYW1zKSB7XG4gICAgICBtb2NrLmNvbm5lY3Rpb24uZGlzY29ubmVjdCguLi5wYXJhbXMpO1xuICAgIH0sXG4gICAgcmVjcmVhdGVTb2NrZXQoLi4ubmV3SW5pdFBhcmFtcykge1xuICAgICAgX19ERVZfXyAmJiBjb25zb2xlLmxvZygncmVjcmVhdGVTb2NrZXQnLCAuLi5uZXdJbml0UGFyYW1zKTtcbiAgICAgIGlmIChtb2NrLmNvbm5lY3Rpb24gJiYgbW9jay5jb25uZWN0aW9uLmRpc2Nvbm5lY3QpIHtcbiAgICAgICAgbW9jay5jb25uZWN0aW9uLmRpc2Nvbm5lY3QoKTtcbiAgICAgIH1cbiAgICAgIG1vY2suY29ubmVjdGlvbiA9IGlvKC4uLm5ld0luaXRQYXJhbXMpO1xuICAgICAgbW9jay5ldmVudHMuZm9yRWFjaCgoZXZlbnQpID0+IHtcbiAgICAgICAgY29uc3QgW25hbWUsIC4uLnBhcmFtc10gPSBldmVudDtcbiAgICAgICAgbW9jay5jb25uZWN0aW9uW25hbWVdKC4uLnBhcmFtcyk7XG4gICAgICB9KTtcblxuICAgICAgbW9jay5jb25uZWN0aW9uLnJlY3JlYXRlU29ja2V0ID0gKC4uLm5ld0luaXRQYXJhbXMyKSA9PiB7XG4gICAgICAgIF9fREVWX18gJiYgY29uc29sZS5sb2coJ3JlY3JlYXRlU29ja2V0MicsIC4uLm5ld0luaXRQYXJhbXMyKTtcbiAgICAgICAgcmV0dXJuIG1vY2sucmVjcmVhdGVTb2NrZXQoLi4ubmV3SW5pdFBhcmFtczIpO1xuICAgICAgfVxuICAgICAgY29uc29sZS5sb2coJ3JlY3JlYXRlQ29ubmVjdGlvbicpO1xuICAgICAgcmV0dXJuIG1vY2suY29ubmVjdGlvbjtcbiAgICB9LFxuICB9O1xuICByZXR1cm4gbW9jay5yZWNyZWF0ZVNvY2tldCguLi5pbml0UGFyYW1zKTtcbn1cblxuLy8gY29uc3QgREVCVUcgPSBfX0RFVl9fO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBBcGlDbGllbnQge1xuICBzdGF0aWMgZmV0Y2ggPSBnbG9iYWwuZmV0Y2g7XG4gIHN0YXRpYyBxcyA9IHFzXG4gIC8vIGlvID0gaW9cblxuICBjb25zdHJ1Y3RvcihwYXJhbXMgPSB7fSkge1xuICAgIC8vIGNvbnNvbGUubG9nKCdBcGlDbGllbnQnLCBwYXJhbXMpO1xuICAgIHRoaXMuaW8gPSBpb01vY2s7XG4gICAgdGhpcy5sb2cgPSBwYXJhbXMubG9nO1xuICAgIHRoaXMucm9vdCA9IHBhcmFtcy5yb290O1xuICAgIHRoaXMuYmFzZSA9IHBhcmFtcy5iYXNlO1xuICAgIHRoaXMudXJsID0gcGFyYW1zLnVybDtcbiAgICB0aGlzLndzQ29uZmlnID0gcGFyYW1zLndzO1xuICAgIHRoaXMud3NDb25uZWN0aW9ucyA9IHt9O1xuICAgIHRoaXMuYXV0aFRva2VuID0gcGFyYW1zLmF1dGhUb2tlbiB8fCBudWxsO1xuICB9XG5cbiAgc2V0QXV0aFRva2VuKGF1dGhUb2tlbikge1xuICAgIHRoaXMuYXV0aFRva2VuID0gYXV0aFRva2VuO1xuICAgIHRoaXMud3NSZWNvbm5lY3QoKTtcbiAgfVxuXG4gIHN0YXRpYyBjcmVhdGVSZXEocmVxKSB7XG4gICAgLy8gcmVxLnBhdGgsXG4gICAgLy8gcmVxLnF1ZXJ5LFxuICAgIHJldHVybiB7XG4gICAgICAuLi5yZXEsXG4gICAgICBjcmVhdGUocGFyYW1zKSB7XG4gICAgICAgIGNvbnN0IHF1ZXJ5ID0gdGhpcy5xcy5zdHJpbmdpZnkocGFyYW1zKTtcbiAgICAgICAgcmV0dXJuICh0aGlzLnBhdGggfHwgJy8nKSArIChxdWVyeSA/IGA/JHtxdWVyeX1gIDogJycpO1xuICAgICAgfSxcbiAgICAgIG1lcmdlKHBhcmFtcykge1xuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGUoe1xuICAgICAgICAgIC4uLnRoaXMucXVlcnksXG4gICAgICAgICAgLi4ucGFyYW1zLFxuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIHRocm93RXJyb3IgPSBhc3luYyAoeyBlcnIsIHJlcywgcmVxIH0pID0+IHtcbiAgICBpZiAodGhpcy5zaG93RXJyb3IgJiYgdGhpcy5sb2cpIHtcbiAgICAgIGNvbnN0IHN0ciA9IGBcXFxuPT09PT09PT09PT09PT1cbiAgZmV0Y2ggZXJyb3I6XG4ke2lzUGxhaW5PYmplY3QoZXJyKSA/IEpTT04uc3RyaW5naWZ5KGVyciwgbnVsbCwgMikgOiBlcnJ9XG4gIHJlcTpcbiR7SlNPTi5zdHJpbmdpZnkocmVxLCBudWxsLCAyKX1cbiAganNvbjpcbiR7SlNPTi5zdHJpbmdpZnkocmVzLmpzb24sIG51bGwsIDIpfVxuPT09PT09PT09PT09PT1cXFxuYDtcbiAgICAgIHRoaXMubG9nLmVycm9yKHN0cik7XG4gICAgfVxuICAgIGNvbnN0IG1lc3NhZ2UgPSBlcnIgJiYgZXJyLm1lc3NhZ2UgfHwgZXJyO1xuICAgIGNvbnN0IGVycjIgPSBuZXcgRXJyb3IoaXNQbGFpbk9iamVjdChtZXNzYWdlKSA/IEpTT04uc3RyaW5naWZ5KG1lc3NhZ2UpIDogbWVzc2FnZSk7XG4gICAgZXJyMi5yZXMgPSByZXM7XG4gICAgZXJyMi5yZXEgPSByZXE7XG4gICAgdGhyb3cgZXJyMjtcbiAgfVxuXG4gIGFzeW5jIGFmdGVyRmV0Y2goY3R4KSB7XG4gICAgY29uc3QgeyByZXMsIHRocm93RXJyb3IgfSA9IGN0eDtcbiAgICBpZiAocmVzLmpzb24gJiYgcmVzLmpzb24uZXJyKSB7XG4gICAgICBhd2FpdCB0aHJvd0Vycm9yKHtcbiAgICAgICAgLi4uY3R4LFxuICAgICAgICBlcnI6IHtcbiAgICAgICAgICB0eXBlOiAnQ1VTVE9NX0VSUk9SJyxcbiAgICAgICAgICAuLi5yZXMuanNvbi5lcnIsXG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB9XG4gICAgaWYgKHJlcy5zdGF0dXMgPj0gNDAwKSB7XG4gICAgICBjb25zdCB0eXBlID0gJ1JFU19TVEFUVVNfRVJST1InO1xuICAgICAgYXdhaXQgdGhyb3dFcnJvcih7XG4gICAgICAgIC4uLmN0eCxcbiAgICAgICAgZXJyOiB7XG4gICAgICAgICAgdHlwZSxcbiAgICAgICAgICBzdGF0dXM6IHJlcy5zdGF0dXMsXG4gICAgICAgICAgc3RhdHVzVGV4dDogcmVzLnN0YXR1c1RleHQsXG4gICAgICAgICAgbWVzc2FnZTogYCR7dHlwZX06ICR7cmVzLnN0YXR1c30gJHtyZXMuc3RhdHVzVGV4dH1gLFxuICAgICAgICAgIC4uLihyZXMuanNvbiB8fCB7fSksXG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB9XG4gICAgaWYgKHJlcy50ZXh0RXJyKSB7XG4gICAgICBjb25zdCB0eXBlID0gJ1RFWFRfUEFSU0VfRVJST1InO1xuICAgICAgYXdhaXQgY3R4LnRocm93RXJyb3Ioe1xuICAgICAgICAuLi5jdHgsXG4gICAgICAgIHJlcyxcbiAgICAgICAgZXJyOiB7XG4gICAgICAgICAgdHlwZSxcbiAgICAgICAgICBtZXNzYWdlOiAn0J7RiNC40LHQutCwINC/0LXRgNC10LTQsNGH0Lgg0LTQsNC90L3Ri9GFJyxcbiAgICAgICAgICBlcnI6IHJlcy50ZXh0RXJyLFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfVxuICAgIGlmIChyZXMuanNvbkVycikge1xuICAgICAgY29uc3QgdHlwZSA9ICdKU09OX1BBUlNFX0VSUk9SJztcbiAgICAgIGF3YWl0IGN0eC50aHJvd0Vycm9yKHtcbiAgICAgICAgLi4uY3R4LFxuICAgICAgICByZXMsXG4gICAgICAgIGVycjoge1xuICAgICAgICAgIHR5cGUsXG4gICAgICAgICAgbWVzc2FnZTogJ9Ce0YjQuNCx0LrQsCDRgdC10YDQstC10YDQsCcsXG4gICAgICAgICAgLy8gbWVzc2FnZTogdHlwZSxcbiAgICAgICAgICBlcnI6IHJlcy5qc29uRXJyLFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiByZXMuanNvbjtcbiAgfVxuXG4gIGNyZWF0ZVVybChwYXRoLCBvcHRpb25zID0ge30pIHtcbiAgICBpZiAocGF0aC5zdWJzdHIoMCwgNSkgPT09ICdodHRwOicgfHwgcGF0aC5zdWJzdHIoMCwgNikgPT09ICdodHRwczonKSB7XG4gICAgICByZXR1cm4gcGF0aDtcbiAgICB9XG4gICAgbGV0IHVybCA9IG9wdGlvbnMudXJsIHx8IHRoaXMudXJsIHx8ICcvJztcbiAgICBjb25zdCBwb3J0ID0gb3B0aW9ucy5wb3J0IHx8IHRoaXMucG9ydCB8fCBudWxsO1xuXG4gICAgaWYgKHVybCAmJiB1cmwubGVuZ3RoID4gMSAmJiBwb3J0KSB7XG4gICAgICBpZiAodXJsLnNlYXJjaCgvOihcXGQrKS8pICE9PSAtMSkge1xuICAgICAgICB1cmwgPSB1cmwucmVwbGFjZSgvOihcXGQrKS8sIGA6JHtwb3J0fWApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdXJsID0gYCR7dXJsfToke3BvcnR9YDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBiYXNlID0gb3B0aW9ucy5iYXNlIHx8IHRoaXMuYmFzZTtcbiAgICBjb25zdCBhcnJheSA9IFt1cmwsIHBhdGhbMF0gPT09ICcvJyA/IG51bGwgOiB0cmltKGJhc2UpLCB0cmltKHBhdGgpXTtcbiAgICB1cmwgPSBhcnJheVxuICAgICAgLm1hcChhID0+IHRyaW0oYSkpXG4gICAgICAuZmlsdGVyKChhLCBpKSA9PiAoaSA9PT0gMCB8fCBhKSlcbiAgICAgIC5qb2luKCcvJyk7XG4gICAgaWYgKG9wdGlvbnMucXMpIHtcbiAgICAgIHVybCArPSAodXJsLmluZGV4T2YoJz8nKSA9PT0gLTEgPyAnPycgOiAnJicpICsgdGhpcy5jb25zdHJ1Y3Rvci5xcy5zdHJpbmdpZnkob3B0aW9ucy5xcyk7XG4gICAgfVxuICAgIHJldHVybiB1cmw7XG4gIH1cblxuICBnZXRDdHgodXJsLCBwYXJhbXMgPSB7fSkge1xuICAgIGNvbnN0IHJlcSA9IE9iamVjdC5hc3NpZ24oXG4gICAgICB7IHVybCB9LFxuICAgICAgcGljayhwYXJhbXMsIEZFVENIX1BBUkFNUyksXG4gICAgKTtcblxuICAgIGNvbnN0IGJvZHkgPSBwYXJhbXMuYm9keSB8fCBwYXJhbXMuZGF0YTtcblxuICAgIGlmICghcmVxLmhlYWRlcnMpIHJlcS5oZWFkZXJzID0ge307XG4gICAgaWYgKCFyZXEuaGVhZGVycy5BY2NlcHQpIHJlcS5oZWFkZXJzLkFjY2VwdCA9ICdhcHBsaWNhdGlvbi9qc29uJztcbiAgICBpZiAoIXJlcS5oZWFkZXJzWydDb250ZW50LVR5cGUnXSkgcmVxLmhlYWRlcnNbJ0NvbnRlbnQtVHlwZSddID0gJ2FwcGxpY2F0aW9uL2pzb247IGNoYXJzZXQ9dXRmLTgnO1xuICAgIGlmIChyZXEuaGVhZGVyc1snQ29udGVudC1UeXBlJ10gPT09ICchJykge1xuICAgICAgZGVsZXRlIHJlcS5oZWFkZXJzWydDb250ZW50LVR5cGUnXTtcbiAgICB9XG5cbiAgICByZXEuX2JvZHkgPSBib2R5O1xuICAgIHJlcS5ib2R5ID0gYm9keTtcbiAgICBpZiAoaXNQbGFpbk9iamVjdChib2R5KSkge1xuICAgICAgaWYgKHJlcS5oZWFkZXJzWydDb250ZW50LVR5cGUnXSAmJiByZXEuaGVhZGVyc1snQ29udGVudC1UeXBlJ10uaW5jbHVkZXMoJ2FwcGxpY2F0aW9uL2pzb24nKSkge1xuICAgICAgICByZXEuYm9keSA9IEpTT04uc3RyaW5naWZ5KGJvZHkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgZm9ybSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgICAgICBPYmplY3Qua2V5cyhib2R5KS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgICBmb3JtLmFwcGVuZChrZXksIGJvZHlba2V5XSk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXEuYm9keSA9IGZvcm07XG4gICAgICB9XG4gICAgfVxuICAgIGNvbnN0IGF1dGhUb2tlbiA9IChwYXJhbXMuYXV0aFRva2VuIHx8IHRoaXMuYXV0aFRva2VuKTtcbiAgICBpZiAoIXJlcS5oZWFkZXJzLkF1dGhvcml6YXRpb24gJiYgYXV0aFRva2VuKSB7XG4gICAgICByZXEuaGVhZGVycy5BdXRob3JpemF0aW9uID0gYEJlYXJlciAke2F1dGhUb2tlbn1gO1xuICAgIH1cblxuICAgIHJlcS5xcyA9IHBhcmFtcy5xdWVyeVBhcmFtcyB8fCBwYXJhbXMucXM7XG4gICAgaWYgKHJlcS5xcykge1xuICAgICAgcmVxLnVybCArPSAocmVxLnVybC5pbmRleE9mKCc/JykgPT09IC0xID8gJz8nIDogJyYnKSArIHRoaXMuY29uc3RydWN0b3IucXMuc3RyaW5naWZ5KHJlcS5xcyk7XG4gICAgfVxuICAgIHJlcS51cmwgPSB0aGlzLmNyZWF0ZVVybChyZXEudXJsKTtcblxuICAgIGlmICghcmVxLm1ldGhvZCkge1xuICAgICAgcmVxLm1ldGhvZCA9ICdHRVQnO1xuICAgIH1cbiAgICBjb25zdCB0aHJvd0Vycm9yID0gcGFyYW1zLnRocm93RXJyb3IgfHwgdGhpcy50aHJvd0Vycm9yO1xuICAgIGNvbnN0IGFmdGVyRmV0Y2ggPSBwYXJhbXMuYWZ0ZXJGZXRjaCB8fCB0aGlzLmFmdGVyRmV0Y2g7XG4gICAgY29uc3QgcGFyc2VSZXN1bHQgPSBwYXJhbXMucGFyc2VSZXN1bHQgfHwgdGhpcy5wYXJzZVJlc3VsdDtcbiAgICBjb25zdCB0aW1lb3V0ID0gcGFyYW1zLnRpbWVvdXQ7XG5cbiAgICByZXR1cm4ge1xuICAgICAgcmVxLFxuICAgICAgdGltZW91dCxcbiAgICAgIGF1dGhUb2tlbixcbiAgICAgIHRocm93RXJyb3IsXG4gICAgICBhZnRlckZldGNoLFxuICAgICAgcGFyc2VSZXN1bHQsXG4gICAgfTtcbiAgfVxuXG4gIGFzeW5jIHBhcnNlUmVzdWx0KGN0eCwgcmVzdWx0KSB7XG4gICAgY29uc3QgcmVzID0ge1xuICAgICAgcmVzdWx0LFxuICAgICAgc3RhdHVzOiByZXN1bHQuc3RhdHVzLFxuICAgICAgc3RhdHVzVGV4dDogcmVzdWx0LnN0YXR1c1RleHQsXG4gICAgfTtcbiAgICB0cnkge1xuICAgICAgcmVzLnRleHQgPSBhd2FpdCByZXN1bHQudGV4dCgpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgcmVzLnRleHRFcnIgPSBlcnI7XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICByZXMuanNvbiA9IEpTT04ucGFyc2UocmVzLnRleHQpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgcmVzLmpzb25FcnIgPSBlcnI7XG4gICAgfVxuICAgIHJldHVybiByZXM7XG4gIH1cblxuICBmZXRjaCguLi5hcmdzKSB7XG4gICAgY29uc3QgY3R4ID0gdGhpcy5nZXRDdHgoLi4uYXJncyk7XG4gICAgY29uc3QgeyBmZXRjaCB9ID0gdGhpcy5jb25zdHJ1Y3RvcjtcbiAgICBjb25zdCB7IHJlcSwgcGFyc2VSZXN1bHQsIGFmdGVyRmV0Y2ggfSA9IGN0eDtcbiAgICBpZiAodGhpcy5sb2cgJiYgdGhpcy5sb2cudHJhY2UpIHtcbiAgICAgIHRoaXMubG9nLnRyYWNlKCdbYXBpXScsIHJlcS5tZXRob2QsIHJlcS51cmwsIHJlcS5fYm9keSk7XG4gICAgICAvLyB0aGlzLmxvZy50cmFjZSgnW2FwaV0nLCByZXEubWV0aG9kLCByZXEudXJsLCByZXEuX2JvZHksIHJlcSk7XG4gICAgfVxuICAgIGNvbnN0IHsgdXJsLCAuLi5wYXJhbXMgfSA9IHJlcTtcbiAgICAvLyBjb25zb2xlLmxvZygnQEBAZmV0Y2gnLCB1cmwsIHBhcmFtcyk7XG4gICAgY29uc3QgcmVzID0gZmV0Y2godXJsLCBwYXJhbXMpXG4gICAgICAudGhlbihhc3luYyAocmVzdWx0KSA9PiB7XG4gICAgICAgIGN0eC5yZXMgPSBhd2FpdCBwYXJzZVJlc3VsdChjdHgsIHJlc3VsdCk7XG4gICAgICAgIHJldHVybiBjdHg7XG4gICAgICB9KVxuICAgICAgLnRoZW4oYWZ0ZXJGZXRjaCk7XG4gICAgaWYgKCFjdHgudGltZW91dCkgcmV0dXJuIHJlcztcblxuICAgIHJldHVybiBQcm9taXNlLnJhY2UoW1xuICAgICAgcmVzLFxuICAgICAgbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHJlamVjdChuZXcgRXJyb3IoJ2ZldGNoIHRpbWVvdXQnKSksIGN0eC50aW1lb3V0KTtcbiAgICAgIH0pLFxuICAgIF0pO1xuICB9XG5cbiAgd3NSZWNvbm5lY3QoKSB7XG4gICAgaWYgKHRoaXMubG9nICYmIHRoaXMubG9nLnRyYWNlKSB7XG4gICAgICB0aGlzLmxvZy50cmFjZSgnW2FwaV0gV1Mud3NSZWNvbm5lY3QgIyMjJywgT2JqZWN0LmtleXModGhpcy53c0Nvbm5lY3Rpb25zKSk7XG4gICAgfVxuXG4gICAgT2JqZWN0LmtleXModGhpcy53c0Nvbm5lY3Rpb25zKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgIGNvbnN0IFtwYXRoLCBvcHRpb25zLCBzb2NrZXRdID0gdGhpcy53c0Nvbm5lY3Rpb25zW2tleV07XG4gICAgICB0aGlzLmxvZy50cmFjZSgnW2FwaV0gcHJlcGFyZSByZWNvbm5lY3QgQEAnLCBzb2NrZXQpO1xuICAgICAgY29uc29sZS5sb2coJ3ByZXBhcmUgcmVjb25uZWN0IEBAJywgc29ja2V0KTtcbiAgICAgIGlmICghc29ja2V0LnJlY3JlYXRlU29ja2V0KSB7XG4gICAgICAgIGNvbnNvbGUubG9nKCchc29ja2V0LnJlY3JlYXRlU29ja2V0Jywgc29ja2V0KTtcbiAgICAgIH1cbiAgICAgIHNvY2tldC5yZWNyZWF0ZVNvY2tldChwYXRoLCBvcHRpb25zKTtcbiAgICAgIC8vIHNvY2tldC5kaXNjb25uZWN0KCk7XG4gICAgICAvLyB0aGlzLndzKHBhdGgsIG9wdGlvbnMpO1xuICAgIH0pO1xuICB9XG5cbiAgd3MocGF0aCA9ICcnLCBvcHRpb25zID0ge30pIHtcbiAgICAvLyBjb25zb2xlLmxvZygnYXBpLndzJywgcGF0aClcbiAgICBjb25zdCBrZXkgPSBwYXRoICsgSlNPTi5zdHJpbmdpZnkob3B0aW9ucyk7XG4gICAgaWYgKHRoaXMud3NDb25uZWN0aW9uc1trZXldKSByZXR1cm4gdGhpcy53c0Nvbm5lY3Rpb25zW2tleV07XG4gICAgaWYgKCF0aGlzLndzQ29uZmlnKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCfQktGLINC90LUg0LzQvtC20LXRgtC1INC40YHQv9C+0LvRjNC30L7QstCw0YLRjCBhcGkud3Mg0LHQtdC3INGB0L7QutC10YIg0LrQvtC90YTQuNCz0L7QsicpO1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGNvbnN0IG9wdHMgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLndzQ29uZmlnICYmIHRoaXMud3NDb25maWcub3B0aW9ucywgb3B0aW9ucyk7XG4gICAgLy8gY29uc29sZS5sb2coJ1dTIFdTIFdTJyxcbiAgICAvLyAgIHtcbiAgICAvLyAgICAgcTogdGhpcy53c0NvbmZpZyAmJiB0aGlzLndzQ29uZmlnLm9wdGlvbnMsXG4gICAgLy8gICAgIHc6IG9wdGlvbnMsXG4gICAgLy8gICAgIGU6IG9wdHMsXG4gICAgLy8gICAgIHI6IE9iamVjdC5hc3NpZ24oe30sIHRoaXMud3NDb25maWcgJiYgdGhpcy53c0NvbmZpZy5vcHRpb25zLCBvcHRpb25zKVxuICAgIC8vICAgfVxuICAgIC8vICk7XG4gICAgLy8gY29uc29sZS5sb2cob3B0cy5xdWVyeSwgb3B0cy5xdWVyeS50b2tlbiwgdGhpcy5hdXRoVG9rZW4pO1xuICAgIGlmICghKHRoaXMud3NDb25maWcgJiYgdGhpcy53c0NvbmZpZy50b2tlbkluQ29va2llKSkge1xuICAgICAgaWYgKG9wdHMucXVlcnkgJiYgIW9wdHMucXVlcnkudG9rZW4gJiYgdGhpcy5hdXRoVG9rZW4pIG9wdHMucXVlcnkudG9rZW4gPSB0aGlzLmF1dGhUb2tlbjtcbiAgICB9XG4gICAgY29uc3QgcGFyYW1zMiA9IHt9O1xuICAgIGlmICghdGhpcy53c0NvbmZpZy50b2tlbkluQ29va2llKSB7XG4gICAgICBpZiAoIXBhcmFtczIucXMpIHtcbiAgICAgICAgcGFyYW1zMi5xcyA9IHtcbiAgICAgICAgICAuLi4ob3B0cy5xdWVyeSB8fCB7fSksXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICBpZiAocGFyYW1zMi5xcyAmJiAhcGFyYW1zMi5xcy50b2tlbiAmJiB0aGlzLmF1dGhUb2tlbikgcGFyYW1zMi5xcy50b2tlbiA9IHRoaXMuYXV0aFRva2VuO1xuICAgIH1cblxuICAgIC8vIGNvbnNvbGUubG9nKCdXUyBvcHRzLnF1ZXJ5LCBvcHRzLnF1ZXJ5LnRva2VuLCB0aGlzLmF1dGhUb2tlbicsIG9wdHMucXVlcnksIG9wdHMucXVlcnkudG9rZW4sIHRoaXMuYXV0aFRva2VuKTtcbiAgICBjb25zdCB1cmwgPSB0aGlzLmNyZWF0ZVVybChwYXRoLCB7IC4uLnRoaXMud3NDb25maWcsIC4uLnBhcmFtczIgfSk7XG4gICAgLy8gY29uc29sZS5sb2coJ3dzIHVybCcsIHt3c0NvbmZpZzogdGhpcy53c0NvbmZpZywgcGF0aCwgb3B0aW9ucywgdXJsLCBvcHRzLH0gKTtcbiAgICBpZiAodGhpcy5sb2cgJiYgdGhpcy5sb2cudHJhY2UpIHtcbiAgICAgIHRoaXMubG9nLnRyYWNlKCdbYXBpXSBXUycsIHVybCwgb3B0aW9ucyk7XG4gICAgICAvLyB0aGlzLmxvZy50cmFjZSgnW2FwaV0nLCByZXEubWV0aG9kLCByZXEudXJsLCByZXEuX2JvZHksIHJlcSk7XG4gICAgfVxuICAgIGNvbnN0IHNvY2tldCA9IHRoaXMuaW8oXG4gICAgICB1cmwsXG4gICAgICBvcHRzLFxuICAgICk7XG5cbiAgICB0aGlzLndzQ29ubmVjdGlvbnNba2V5XSA9IFtwYXRoLCBvcHRpb25zLCBzb2NrZXRdO1xuICAgIHNvY2tldC5vbignZGlzY29ubmVjdCcsICgpID0+IHtcbiAgICAgIGRlbGV0ZSB0aGlzLndzQ29ubmVjdGlvbnNba2V5XTtcbiAgICB9KTtcblxuICAgIHJldHVybiBzb2NrZXQ7XG4gIH1cbiAgd3MyKHBhdGggPSAnJywgcGFyYW1zID0ge30pIHtcbiAgICBpZiAoIXRoaXMud3NDb25maWcpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ9CS0Ysg0L3QtSDQvNC+0LbQtdGC0LUg0LjRgdC/0L7Qu9GM0LfQvtCy0LDRgtGMIGFwaS53cyDQsdC10Lcg0YHQvtC60LXRgiDQutC+0L3RhNC40LPQvtCyJyk7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgY29uc3QgcGFyYW1zMiA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMud3NDb25maWcsIHBhcmFtcyk7XG5cbiAgICBpZiAoIXRoaXMud3NDb25maWcudG9rZW5JbkNvb2tpZSkge1xuICAgICAgaWYgKCFwYXJhbXMyLnFzKSBwYXJhbXMyLnFzID0ge307XG4gICAgICBpZiAocGFyYW1zMi5xcyAmJiAhcGFyYW1zMi5xcy50b2tlbiAmJiB0aGlzLmF1dGhUb2tlbikgcGFyYW1zMi5xcy50b2tlbiA9IHRoaXMuYXV0aFRva2VuO1xuICAgIH1cblxuICAgIGNvbnN0IHJlcyA9IHRoaXMuaW8oXG4gICAgICB0aGlzLmNyZWF0ZVVybChwYXRoLCBwYXJhbXMyKSxcbiAgICAgIHtcbiAgICAgICAgLi4udGhpcy53c0NvbmZpZy5vcHRpb25zLFxuICAgICAgICAuLi5wYXJhbXMsXG4gICAgICB9LFxuICAgICk7XG4gICAgcmV0dXJuIHJlcztcbiAgfVxuXG59XG4iXX0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9hcGlxdWVyeS5qcyJdLCJuYW1lcyI6WyJGRVRDSF9QQVJBTVMiLCJpb01vY2siLCJpbml0UGFyYW1zIiwiX19ERVZfXyIsImxvZyIsIm1vY2siLCJNYW5hZ2VyIiwiU29ja2V0IiwiY29ubmVjdGlvbiIsImV2ZW50cyIsIm9uIiwicGFyYW1zIiwicHVzaCIsInVzZSIsImRpc2Nvbm5lY3QiLCJyZWNyZWF0ZVNvY2tldCIsIm5ld0luaXRQYXJhbXMiLCJmb3JFYWNoIiwiZXZlbnQiLCJuYW1lIiwibmV3SW5pdFBhcmFtczIiLCJjb25zb2xlIiwiQXBpQ2xpZW50IiwidGhyb3dFcnJvciIsImVyciIsInJlcyIsInJlcSIsInNob3dFcnJvciIsInN0ciIsIkpTT04iLCJzdHJpbmdpZnkiLCJqc29uIiwiZXJyb3IiLCJtZXNzYWdlIiwiZXJyMiIsIkVycm9yIiwiaW8iLCJyb290IiwiYmFzZSIsInVybCIsIndzQ29uZmlnIiwid3MiLCJ3c0Nvbm5lY3Rpb25zIiwiYXV0aFRva2VuIiwid3NSZWNvbm5lY3QiLCJjdHgiLCJ0eXBlIiwic3RhdHVzIiwic3RhdHVzVGV4dCIsInRleHRFcnIiLCJqc29uRXJyIiwicGF0aCIsIm9wdGlvbnMiLCJzdWJzdHIiLCJwb3J0IiwibGVuZ3RoIiwic2VhcmNoIiwicmVwbGFjZSIsImFycmF5IiwibWFwIiwiYSIsImZpbHRlciIsImkiLCJqb2luIiwicXMiLCJpbmRleE9mIiwiY29uc3RydWN0b3IiLCJPYmplY3QiLCJhc3NpZ24iLCJib2R5IiwiZGF0YSIsImhlYWRlcnMiLCJBY2NlcHQiLCJfYm9keSIsImluY2x1ZGVzIiwiZm9ybSIsImtleXMiLCJrZXkiLCJhcHBlbmQiLCJBdXRob3JpemF0aW9uIiwicXVlcnlQYXJhbXMiLCJjcmVhdGVVcmwiLCJtZXRob2QiLCJhZnRlckZldGNoIiwicGFyc2VSZXN1bHQiLCJ0aW1lb3V0IiwicmVzdWx0IiwidGV4dCIsInBhcnNlIiwiZ2V0Q3R4IiwiZmV0Y2giLCJ0cmFjZSIsInRoZW4iLCJQcm9taXNlIiwicmFjZSIsInJlc29sdmUiLCJyZWplY3QiLCJzZXRUaW1lb3V0Iiwic29ja2V0Iiwib3B0cyIsInRva2VuSW5Db29raWUiLCJxdWVyeSIsInRva2VuIiwicGFyYW1zMiIsImNyZWF0ZSIsIm1lcmdlIiwiZ2xvYmFsIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7Ozs7Ozs7Ozs7OzhFQU5BOzs7QUFPQTtBQUNBLElBQU1BLGVBQWUsQ0FDbkIsUUFEbUIsRUFFbkIsS0FGbUIsRUFHbkIsU0FIbUIsRUFJbkIsU0FKbUIsRUFLbkIsVUFMbUIsRUFNbkIsZ0JBTm1CLEVBT25CLE1BUG1CLEVBUW5CLGFBUm1CLEVBU25CLFVBVG1CLEVBVW5CLFdBVm1CLEVBV25CLE9BWG1CLENBQXJCOztBQWNBLFNBQVNDLE1BQVQsR0FBK0I7QUFBQTs7QUFBQSxvQ0FBWkMsVUFBWTtBQUFaQSxjQUFZO0FBQUE7O0FBQzdCQyxhQUFXLHFCQUFRQyxHQUFSLGtCQUFZLFFBQVosU0FBeUJGLFVBQXpCLEVBQVg7QUFDQTtBQUNBLE1BQU1HLE9BQU87QUFDWEMsYUFBUyw0QkFBR0EsT0FERDtBQUVYQyxZQUFRLDRCQUFHQSxNQUZBO0FBR1hDLGdCQUFZLElBSEQ7QUFJWEMsWUFBUSxFQUpHO0FBS1hDLE1BTFcsZ0JBS0c7QUFBQSx5Q0FBUkMsTUFBUTtBQUFSQSxjQUFRO0FBQUE7O0FBQ1pOLFdBQUtJLE1BQUwsQ0FBWUcsSUFBWixFQUFrQixJQUFsQixTQUEyQkQsTUFBM0I7QUFDRCxLQVBVO0FBUVhFLE9BUlcsaUJBUUk7QUFBQSx5Q0FBUkYsTUFBUTtBQUFSQSxjQUFRO0FBQUE7O0FBQ2JOLFdBQUtJLE1BQUwsQ0FBWUcsSUFBWixFQUFrQixLQUFsQixTQUE0QkQsTUFBNUI7QUFDRCxLQVZVO0FBV1hHLGNBWFcsd0JBV1c7QUFBQTs7QUFDcEIsK0JBQUtOLFVBQUwsRUFBZ0JNLFVBQWhCO0FBQ0QsS0Fi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WixpQkFBTyxLQUFLNkYsTUFBTCxjQUNGLEtBQUtILEtBREgsRUFFRjFGLE1BRkUsRUFBUDtBQUlEO0FBWEg7QUFhRDs7Ozs7O0FBdENrQlcsUyxDQUNab0UsSyxHQUFRZ0IsT0FBT2hCLEs7QUFESHBFLFMsQ0FFWjBDLEU7a0JBRlkxQyxTIiwiZmlsZSI6ImFwaXF1ZXJ5LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gaW1wb3J0IGZldGNoIGZyb20gJ25vZGUtZmV0Y2gnO1xuaW1wb3J0IGlzUGxhaW5PYmplY3QgZnJvbSAnbG9kYXNoLmlzcGxhaW5vYmplY3QnO1xuaW1wb3J0IHBpY2sgZnJvbSAnbG9kYXNoLnBpY2snO1xuaW1wb3J0IHFzIGZyb20gJ3FzJztcbmltcG9ydCBGb3JtRGF0YSBmcm9tICdmb3JtLWRhdGEnO1xuaW1wb3J0IGlvIGZyb20gJy4vc29ja2V0LWlvLXVuaXZlcnNhbCc7XG5pbXBvcnQgdHJpbSBmcm9tICcuL3RyaW0nO1xuLy8gaW1wb3J0IGZldGNoIGZyb20gJ2lzb21vcnBoaWMtZmV0Y2gnO1xuY29uc3QgRkVUQ0hfUEFSQU1TID0gW1xuICAnbWV0aG9kJyxcbiAgJ3VybCcsXG4gICdoZWFkZXJzJyxcbiAgJ2NvbnRleHQnLFxuICAncmVmZXJyZXInLFxuICAncmVmZXJyZXJQb2xpY3knLFxuICAnbW9kZScsXG4gICdjcmVkZW50aWFscycsXG4gICdyZWRpcmVjdCcsXG4gICdpbnRlZ3JpdHknLFxuICAnY2FjaGUnLFxuXTtcblxuZnVuY3Rpb24gaW9Nb2NrKC4uLmluaXRQYXJhbXMpIHtcbiAgX19ERVZfXyAmJiBjb25zb2xlLmxvZygnaW9Nb2NrJywgLi4uaW5pdFBhcmFtcyk7XG4gIC8vIGNvbnN0IHNvY2tldCA9IGlvKC4uLnBhcmFtcylcbiAgY29uc3QgbW9jayA9IHtcbiAgICBNYW5hZ2VyOiBpby5NYW5hZ2VyLFxuICAgIFNvY2tldDogaW8uU29ja2V0LFxuICAgIGNvbm5lY3Rpb246IG51bGwsXG4gICAgZXZlbnRzOiBbXSxcbiAgICBvbiguLi5wYXJhbXMpIHtcbiAgICAgIG1vY2suZXZlbnRzLnB1c2goWydvbicsIC4uLnBhcmFtc10pO1xuICAgIH0sXG4gICAgdXNlKC4uLnBhcmFtcykge1xuICAgICAgbW9jay5ldmVudHMucHVzaChbJ3VzZScsIC4uLnBhcmFtc10pO1xuICAgIH0sXG4gICAgZGlzY29ubmVjdCguLi5wYXJhbXMpIHtcbiAgICAgIG1vY2suY29ubmVjdGlvbi5kaXNjb25uZWN0KC4uLnBhcmFtcyk7XG4gICAgfSxcbiAgICByZWNyZWF0ZVNvY2tldCguLi5uZXdJbml0UGFyYW1zKSB7XG4gICAgICBfX0RFVl9fICYmIGNvbnNvbGUubG9nKCdyZWNyZWF0ZVNvY2tldCcsIC4uLm5ld0luaXRQYXJhbXMpO1xuICAgICAgaWYgKG1vY2suY29ubmVjdGlvbiAmJiBtb2NrLmNvbm5lY3Rpb24uZGlzY29ubmVjdCkge1xuICAgICAgICBtb2NrLmNvbm5lY3Rpb24uZGlzY29ubmVjdCgpO1xuICAgICAgfVxuICAgICAgbW9jay5jb25uZWN0aW9uID0gaW8oLi4ubmV3SW5pdFBhcmFtcyk7XG4gICAgICBtb2NrLmV2ZW50cy5mb3JFYWNoKChldmVudCkgPT4ge1xuICAgICAgICBjb25zdCBbbmFtZSwgLi4ucGFyYW1zXSA9IGV2ZW50O1xuICAgICAgICBtb2NrLmNvbm5lY3Rpb25bbmFtZV0oLi4ucGFyYW1zKTtcbiAgICAgIH0pO1xuXG4gICAgICBtb2NrLmNvbm5lY3Rpb24ucmVjcmVhdGVTb2NrZXQgPSAoLi4ubmV3SW5pdFBhcmFtczIpID0+IHtcbiAgICAgICAgX19ERVZfXyAmJiBjb25zb2xlLmxvZygncmVjcmVhdGVTb2NrZXQyJywgLi4ubmV3SW5pdFBhcmFtczIpO1xuICAgICAgICByZXR1cm4gbW9jay5yZWNyZWF0ZVNvY2tldCguLi5uZXdJbml0UGFyYW1zMik7XG4gICAgICB9XG4gICAgICBfX0RFVl9fICYmIGNvbnNvbGUubG9nKCdyZWNyZWF0ZUNvbm5lY3Rpb24nKTtcbiAgICAgIHJldHVybiBtb2NrLmNvbm5lY3Rpb247XG4gICAgfSxcbiAgfTtcbiAgcmV0dXJuIG1vY2sucmVjcmVhdGVTb2NrZXQoLi4uaW5pdFBhcmFtcyk7XG59XG5cbi8vIGNvbnN0IERFQlVHID0gX19ERVZfXztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQXBpQ2xpZW50IHtcbiAgc3RhdGljIGZldGNoID0gZ2xvYmFsLmZldGNoO1xuICBzdGF0aWMgcXMgPSBxc1xuICAvLyBpbyA9IGlvXG5cbiAgY29uc3RydWN0b3IocGFyYW1zID0ge30pIHtcbiAgICAvLyBjb25zb2xlLmxvZygnQXBpQ2xpZW50JywgcGFyYW1zKTtcbiAgICB0aGlzLmlvID0gaW9Nb2NrO1xuICAgIHRoaXMubG9nID0gcGFyYW1zLmxvZztcbiAgICB0aGlzLnJvb3QgPSBwYXJhbXMucm9vdDtcbiAgICB0aGlzLmJhc2UgPSBwYXJhbXMuYmFzZTtcbiAgICB0aGlzLnVybCA9IHBhcmFtcy51cmw7XG4gICAgdGhpcy53c0NvbmZpZyA9IHBhcmFtcy53cztcbiAgICB0aGlzLndzQ29ubmVjdGlvbnMgPSB7fTtcbiAgICB0aGlzLmF1dGhUb2tlbiA9IHBhcmFtcy5hdXRoVG9rZW4gfHwgbnVsbDtcbiAgfVxuXG4gIHNldEF1dGhUb2tlbihhdXRoVG9rZW4pIHtcbiAgICB0aGlzLmF1dGhUb2tlbiA9IGF1dGhUb2tlbjtcbiAgICB0aGlzLndzUmVjb25uZWN0KCk7XG4gIH1cblxuICBzdGF0aWMgY3JlYXRlUmVxKHJlcSkge1xuICAgIC8vIHJlcS5wYXRoLFxuICAgIC8vIHJlcS5xdWVyeSxcbiAgICByZXR1cm4ge1xuICAgICAgLi4ucmVxLFxuICAgICAgY3JlYXRlKHBhcmFtcykge1xuICAgICAgICBjb25zdCBxdWVyeSA9IHRoaXMucXMuc3RyaW5naWZ5KHBhcmFtcyk7XG4gICAgICAgIHJldHVybiAodGhpcy5wYXRoIHx8ICcvJykgKyAocXVlcnkgPyBgPyR7cXVlcnl9YCA6ICcnKTtcbiAgICAgIH0sXG4gICAgICBtZXJnZShwYXJhbXMpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlKHtcbiAgICAgICAgICAuLi50aGlzLnF1ZXJ5LFxuICAgICAgICAgIC4uLnBhcmFtcyxcbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICB0aHJvd0Vycm9yID0gYXN5bmMgKHsgZXJyLCByZXMsIHJlcSB9KSA9PiB7XG4gICAgaWYgKHRoaXMuc2hvd0Vycm9yICYmIHRoaXMubG9nKSB7XG4gICAgICBjb25zdCBzdHIgPSBgXFxcbj09PT09PT09PT09PT09XG4gIGZldGNoIGVycm9yOlxuJHtpc1BsYWluT2JqZWN0KGVycikgPyBKU09OLnN0cmluZ2lmeShlcnIsIG51bGwsIDIpIDogZXJyfVxuICByZXE6XG4ke0pTT04uc3RyaW5naWZ5KHJlcSwgbnVsbCwgMil9XG4gIGpzb246XG4ke0pTT04uc3RyaW5naWZ5KHJlcy5qc29uLCBudWxsLCAyKX1cbj09PT09PT09PT09PT09XFxcbmA7XG4gICAgICB0aGlzLmxvZy5lcnJvcihzdHIpO1xuICAgIH1cbiAgICBjb25zdCBtZXNzYWdlID0gZXJyICYmIGVyci5tZXNzYWdlIHx8IGVycjtcbiAgICBjb25zdCBlcnIyID0gbmV3IEVycm9yKGlzUGxhaW5PYmplY3QobWVzc2FnZSkgPyBKU09OLnN0cmluZ2lmeShtZXNzYWdlKSA6IG1lc3NhZ2UpO1xuICAgIGVycjIucmVzID0gcmVzO1xuICAgIGVycjIucmVxID0gcmVxO1xuICAgIHRocm93IGVycjI7XG4gIH1cblxuICBhc3luYyBhZnRlckZldGNoKGN0eCkge1xuICAgIGNvbnN0IHsgcmVzLCB0aHJvd0Vycm9yIH0gPSBjdHg7XG4gICAgaWYgKHJlcy5qc29uICYmIHJlcy5qc29uLmVycikge1xuICAgICAgYXdhaXQgdGhyb3dFcnJvcih7XG4gICAgICAgIC4uLmN0eCxcbiAgICAgICAgZXJyOiB7XG4gICAgICAgICAgdHlwZTogJ0NVU1RPTV9FUlJPUicsXG4gICAgICAgICAgLi4ucmVzLmpzb24uZXJyLFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfVxuICAgIGlmIChyZXMuc3RhdHVzID49IDQwMCkge1xuICAgICAgY29uc3QgdHlwZSA9ICdSRVNfU1RBVFVTX0VSUk9SJztcbiAgICAgIGF3YWl0IHRocm93RXJyb3Ioe1xuICAgICAgICAuLi5jdHgsXG4gICAgICAgIGVycjoge1xuICAgICAgICAgIHR5cGUsXG4gICAgICAgICAgc3RhdHVzOiByZXMuc3RhdHVzLFxuICAgICAgICAgIHN0YXR1c1RleHQ6IHJlcy5zdGF0dXNUZXh0LFxuICAgICAgICAgIG1lc3NhZ2U6IGAke3R5cGV9OiAke3Jlcy5zdGF0dXN9ICR7cmVzLnN0YXR1c1RleHR9YCxcbiAgICAgICAgICAuLi4ocmVzLmpzb24gfHwge30pLFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfVxuICAgIGlmIChyZXMudGV4dEVycikge1xuICAgICAgY29uc3QgdHlwZSA9ICdURVhUX1BBUlNFX0VSUk9SJztcbiAgICAgIGF3YWl0IGN0eC50aHJvd0Vycm9yKHtcbiAgICAgICAgLi4uY3R4LFxuICAgICAgICByZXMsXG4gICAgICAgIGVycjoge1xuICAgICAgICAgIHR5cGUsXG4gICAgICAgICAgbWVzc2FnZTogJ9Ce0YjQuNCx0LrQsCDQv9C10YDQtdC00LDRh9C4INC00LDQvdC90YvRhScsXG4gICAgICAgICAgZXJyOiByZXMudGV4dEVycixcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIH1cbiAgICBpZiAocmVzLmpzb25FcnIpIHtcbiAgICAgIGNvbnN0IHR5cGUgPSAnSlNPTl9QQVJTRV9FUlJPUic7XG4gICAgICBhd2FpdCBjdHgudGhyb3dFcnJvcih7XG4gICAgICAgIC4uLmN0eCxcbiAgICAgICAgcmVzLFxuICAgICAgICBlcnI6IHtcbiAgICAgICAgICB0eXBlLFxuICAgICAgICAgIG1lc3NhZ2U6ICfQntGI0LjQsdC60LAg0YHQtdGA0LLQtdGA0LAnLFxuICAgICAgICAgIC8vIG1lc3NhZ2U6IHR5cGUsXG4gICAgICAgICAgZXJyOiByZXMuanNvbkVycixcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gcmVzLmpzb247XG4gIH1cblxuICBjcmVhdGVVcmwocGF0aCwgb3B0aW9ucyA9IHt9KSB7XG4gICAgaWYgKHBhdGguc3Vic3RyKDAsIDUpID09PSAnaHR0cDonIHx8IHBhdGguc3Vic3RyKDAsIDYpID09PSAnaHR0cHM6Jykge1xuICAgICAgcmV0dXJuIHBhdGg7XG4gICAgfVxuICAgIGxldCB1cmwgPSBvcHRpb25zLnVybCB8fCB0aGlzLnVybCB8fCAnLyc7XG4gICAgY29uc3QgcG9ydCA9IG9wdGlvbnMucG9ydCB8fCB0aGlzLnBvcnQgfHwgbnVsbDtcblxuICAgIGlmICh1cmwgJiYgdXJsLmxlbmd0aCA+IDEgJiYgcG9ydCkge1xuICAgICAgaWYgKHVybC5zZWFyY2goLzooXFxkKykvKSAhPT0gLTEpIHtcbiAgICAgICAgdXJsID0gdXJsLnJlcGxhY2UoLzooXFxkKykvLCBgOiR7cG9ydH1gKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHVybCA9IGAke3VybH06JHtwb3J0fWA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgYmFzZSA9IG9wdGlvbnMuYmFzZSB8fCB0aGlzLmJhc2U7XG4gICAgY29uc3QgYXJyYXkgPSBbdXJsLCBwYXRoWzBdID09PSAnLycgPyBudWxsIDogdHJpbShiYXNlKSwgdHJpbShwYXRoKV07XG4gICAgdXJsID0gYXJyYXlcbiAgICAgIC5tYXAoYSA9PiB0cmltKGEpKVxuICAgICAgLmZpbHRlcigoYSwgaSkgPT4gKGkgPT09IDAgfHwgYSkpXG4gICAgICAuam9pbignLycpO1xuICAgIGlmIChvcHRpb25zLnFzKSB7XG4gICAgICB1cmwgKz0gKHVybC5pbmRleE9mKCc/JykgPT09IC0xID8gJz8nIDogJyYnKSArIHRoaXMuY29uc3RydWN0b3IucXMuc3RyaW5naWZ5KG9wdGlvbnMucXMpO1xuICAgIH1cbiAgICByZXR1cm4gdXJsO1xuICB9XG5cbiAgZ2V0Q3R4KHVybCwgcGFyYW1zID0ge30pIHtcbiAgICBjb25zdCByZXEgPSBPYmplY3QuYXNzaWduKFxuICAgICAgeyB1cmwgfSxcbiAgICAgIHBpY2socGFyYW1zLCBGRVRDSF9QQVJBTVMpLFxuICAgICk7XG5cbiAgICBjb25zdCBib2R5ID0gcGFyYW1zLmJvZHkgfHwgcGFyYW1zLmRhdGE7XG5cbiAgICBpZiAoIXJlcS5oZWFkZXJzKSByZXEuaGVhZGVycyA9IHt9O1xuICAgIGlmICghcmVxLmhlYWRlcnMuQWNjZXB0KSByZXEuaGVhZGVycy5BY2NlcHQgPSAnYXBwbGljYXRpb24vanNvbic7XG4gICAgaWYgKCFyZXEuaGVhZGVyc1snQ29udGVudC1UeXBlJ10pIHJlcS5oZWFkZXJzWydDb250ZW50LVR5cGUnXSA9ICdhcHBsaWNhdGlvbi9qc29uOyBjaGFyc2V0PXV0Zi04JztcbiAgICBpZiAocmVxLmhlYWRlcnNbJ0NvbnRlbnQtVHlwZSddID09PSAnIScpIHtcbiAgICAgIGRlbGV0ZSByZXEuaGVhZGVyc1snQ29udGVudC1UeXBlJ107XG4gICAgfVxuXG4gICAgcmVxLl9ib2R5ID0gYm9keTtcbiAgICByZXEuYm9keSA9IGJvZHk7XG4gICAgaWYgKGlzUGxhaW5PYmplY3QoYm9keSkpIHtcbiAgICAgIGlmIChyZXEuaGVhZGVyc1snQ29udGVudC1UeXBlJ10gJiYgcmVxLmhlYWRlcnNbJ0NvbnRlbnQtVHlwZSddLmluY2x1ZGVzKCdhcHBsaWNhdGlvbi9qc29uJykpIHtcbiAgICAgICAgcmVxLmJvZHkgPSBKU09OLnN0cmluZ2lmeShib2R5KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGZvcm0gPSBuZXcgRm9ybURhdGEoKTtcbiAgICAgICAgT2JqZWN0LmtleXMoYm9keSkuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgICAgZm9ybS5hcHBlbmQoa2V5LCBib2R5W2tleV0pO1xuICAgICAgICB9KTtcbiAgICAgICAgcmVxLmJvZHkgPSBmb3JtO1xuICAgICAgfVxuICAgIH1cbiAgICBjb25zdCBhdXRoVG9rZW4gPSAocGFyYW1zLmF1dGhUb2tlbiB8fCB0aGlzLmF1dGhUb2tlbik7XG4gICAgaWYgKCFyZXEuaGVhZGVycy5BdXRob3JpemF0aW9uICYmIGF1dGhUb2tlbikge1xuICAgICAgcmVxLmhlYWRlcnMuQXV0aG9yaXphdGlvbiA9IGBCZWFyZXIgJHthdXRoVG9rZW59YDtcbiAgICB9XG5cbiAgICByZXEucXMgPSBwYXJhbXMucXVlcnlQYXJhbXMgfHwgcGFyYW1zLnFzO1xuICAgIGlmIChyZXEucXMpIHtcbiAgICAgIHJlcS51cmwgKz0gKHJlcS51cmwuaW5kZXhPZignPycpID09PSAtMSA/ICc/JyA6ICcmJykgKyB0aGlzLmNvbnN0cnVjdG9yLnFzLnN0cmluZ2lmeShyZXEucXMpO1xuICAgIH1cbiAgICByZXEudXJsID0gdGhpcy5jcmVhdGVVcmwocmVxLnVybCk7XG5cbiAgICBpZiAoIXJlcS5tZXRob2QpIHtcbiAgICAgIHJlcS5tZXRob2QgPSAnR0VUJztcbiAgICB9XG4gICAgY29uc3QgdGhyb3dFcnJvciA9IHBhcmFtcy50aHJvd0Vycm9yIHx8IHRoaXMudGhyb3dFcnJvcjtcbiAgICBjb25zdCBhZnRlckZldGNoID0gcGFyYW1zLmFmdGVyRmV0Y2ggfHwgdGhpcy5hZnRlckZldGNoO1xuICAgIGNvbnN0IHBhcnNlUmVzdWx0ID0gcGFyYW1zLnBhcnNlUmVzdWx0IHx8IHRoaXMucGFyc2VSZXN1bHQ7XG4gICAgY29uc3QgdGltZW91dCA9IHBhcmFtcy50aW1lb3V0O1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHJlcSxcbiAgICAgIHRpbWVvdXQsXG4gICAgICBhdXRoVG9rZW4sXG4gICAgICB0aHJvd0Vycm9yLFxuICAgICAgYWZ0ZXJGZXRjaCxcbiAgICAgIHBhcnNlUmVzdWx0LFxuICAgIH07XG4gIH1cblxuICBhc3luYyBwYXJzZVJlc3VsdChjdHgsIHJlc3VsdCkge1xuICAgIGNvbnN0IHJlcyA9IHtcbiAgICAgIHJlc3VsdCxcbiAgICAgIHN0YXR1czogcmVzdWx0LnN0YXR1cyxcbiAgICAgIHN0YXR1c1RleHQ6IHJlc3VsdC5zdGF0dXNUZXh0LFxuICAgIH07XG4gICAgdHJ5IHtcbiAgICAgIHJlcy50ZXh0ID0gYXdhaXQgcmVzdWx0LnRleHQoKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIHJlcy50ZXh0RXJyID0gZXJyO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgcmVzLmpzb24gPSBKU09OLnBhcnNlKHJlcy50ZXh0KTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIHJlcy5qc29uRXJyID0gZXJyO1xuICAgIH1cbiAgICByZXR1cm4gcmVzO1xuICB9XG5cbiAgZmV0Y2goLi4uYXJncykge1xuICAgIGNvbnN0IGN0eCA9IHRoaXMuZ2V0Q3R4KC4uLmFyZ3MpO1xuICAgIGNvbnN0IHsgZmV0Y2ggfSA9IHRoaXMuY29uc3RydWN0b3I7XG4gICAgY29uc3QgeyByZXEsIHBhcnNlUmVzdWx0LCBhZnRlckZldGNoIH0gPSBjdHg7XG4gICAgaWYgKHRoaXMubG9nICYmIHRoaXMubG9nLnRyYWNlKSB7XG4gICAgICB0aGlzLmxvZy50cmFjZSgnW2FwaV0nLCByZXEubWV0aG9kLCByZXEudXJsLCByZXEuX2JvZHkpO1xuICAgICAgLy8gdGhpcy5sb2cudHJhY2UoJ1thcGldJywgcmVxLm1ldGhvZCwgcmVxLnVybCwgcmVxLl9ib2R5LCByZXEpO1xuICAgIH1cbiAgICBjb25zdCB7IHVybCwgLi4ucGFyYW1zIH0gPSByZXE7XG4gICAgLy8gY29uc29sZS5sb2coJ0BAQGZldGNoJywgdXJsLCBwYXJhbXMpO1xuICAgIGNvbnN0IHJlcyA9IGZldGNoKHVybCwgcGFyYW1zKVxuICAgICAgLnRoZW4oYXN5bmMgKHJlc3VsdCkgPT4ge1xuICAgICAgICBjdHgucmVzID0gYXdhaXQgcGFyc2VSZXN1bHQoY3R4LCByZXN1bHQpO1xuICAgICAgICByZXR1cm4gY3R4O1xuICAgICAgfSlcbiAgICAgIC50aGVuKGFmdGVyRmV0Y2gpO1xuICAgIGlmICghY3R4LnRpbWVvdXQpIHJldHVybiByZXM7XG5cbiAgICByZXR1cm4gUHJvbWlzZS5yYWNlKFtcbiAgICAgIHJlcyxcbiAgICAgIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiByZWplY3QobmV3IEVycm9yKCdmZXRjaCB0aW1lb3V0JykpLCBjdHgudGltZW91dCk7XG4gICAgICB9KSxcbiAgICBdKTtcbiAgfVxuXG4gIHdzUmVjb25uZWN0KCkge1xuICAgIGlmICh0aGlzLmxvZyAmJiB0aGlzLmxvZy50cmFjZSkge1xuICAgICAgdGhpcy5sb2cudHJhY2UoJ1thcGldIFdTLndzUmVjb25uZWN0ICMjIycsIE9iamVjdC5rZXlzKHRoaXMud3NDb25uZWN0aW9ucykpO1xuICAgIH1cblxuICAgIE9iamVjdC5rZXlzKHRoaXMud3NDb25uZWN0aW9ucykuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICBjb25zdCBbcGF0aCwgb3B0aW9ucywgc29ja2V0XSA9IHRoaXMud3NDb25uZWN0aW9uc1trZXldO1xuICAgICAgX19ERVZfXyAmJiB0aGlzLmxvZy50cmFjZSgnW2FwaV0gcHJlcGFyZSByZWNvbm5lY3QgQEAnLCBzb2NrZXQpO1xuICAgICAgX19ERVZfXyAmJiBjb25zb2xlLmxvZygncHJlcGFyZSByZWNvbm5lY3QgQEAnLCBzb2NrZXQpO1xuICAgICAgaWYgKCFzb2NrZXQucmVjcmVhdGVTb2NrZXQpIHtcbiAgICAgICAgX19ERVZfXyAmJiBjb25zb2xlLmxvZygnIXNvY2tldC5yZWNyZWF0ZVNvY2tldCcsIHNvY2tldCk7XG4gICAgICB9XG4gICAgICBzb2NrZXQucmVjcmVhdGVTb2NrZXQocGF0aCwgb3B0aW9ucyk7XG4gICAgICAvLyBzb2NrZXQuZGlzY29ubmVjdCgpO1xuICAgICAgLy8gdGhpcy53cyhwYXRoLCBvcHRpb25zKTtcbiAgICB9KTtcbiAgfVxuXG4gIHdzKHBhdGggPSAnJywgb3B0aW9ucyA9IHt9KSB7XG4gICAgLy8gY29uc29sZS5sb2coJ2FwaS53cycsIHBhdGgpXG4gICAgY29uc3Qga2V5ID0gcGF0aCArIEpTT04uc3RyaW5naWZ5KG9wdGlvbnMpO1xuICAgIGlmICh0aGlzLndzQ29ubmVjdGlvbnNba2V5XSkgcmV0dXJuIHRoaXMud3NDb25uZWN0aW9uc1trZXldO1xuICAgIGlmICghdGhpcy53c0NvbmZpZykge1xuICAgICAgY29uc29sZS5lcnJvcign0JLRiyDQvdC1INC80L7QttC10YLQtSDQuNGB0L/QvtC70YzQt9C+0LLQsNGC0YwgYXBpLndzINCx0LXQtyDRgdC+0LrQtdGCINC60L7QvdGE0LjQs9C+0LInKTtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBjb25zdCBvcHRzID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy53c0NvbmZpZyAmJiB0aGlzLndzQ29uZmlnLm9wdGlvbnMsIG9wdGlvbnMpO1xuICAgIC8vIGNvbnNvbGUubG9nKCdXUyBXUyBXUycsXG4gICAgLy8gICB7XG4gICAgLy8gICAgIHE6IHRoaXMud3NDb25maWcgJiYgdGhpcy53c0NvbmZpZy5vcHRpb25zLFxuICAgIC8vICAgICB3OiBvcHRpb25zLFxuICAgIC8vICAgICBlOiBvcHRzLFxuICAgIC8vICAgICByOiBPYmplY3QuYXNzaWduKHt9LCB0aGlzLndzQ29uZmlnICYmIHRoaXMud3NDb25maWcub3B0aW9ucywgb3B0aW9ucylcbiAgICAvLyAgIH1cbiAgICAvLyApO1xuICAgIC8vIGNvbnNvbGUubG9nKG9wdHMucXVlcnksIG9wdHMucXVlcnkudG9rZW4sIHRoaXMuYXV0aFRva2VuKTtcbiAgICBpZiAoISh0aGlzLndzQ29uZmlnICYmIHRoaXMud3NDb25maWcudG9rZW5JbkNvb2tpZSkpIHtcbiAgICAgIGlmIChvcHRzLnF1ZXJ5ICYmICFvcHRzLnF1ZXJ5LnRva2VuICYmIHRoaXMuYXV0aFRva2VuKSBvcHRzLnF1ZXJ5LnRva2VuID0gdGhpcy5hdXRoVG9rZW47XG4gICAgfVxuICAgIGNvbnN0IHBhcmFtczIgPSB7fTtcbiAgICBpZiAoIXRoaXMud3NDb25maWcudG9rZW5JbkNvb2tpZSkge1xuICAgICAgaWYgKCFwYXJhbXMyLnFzKSB7XG4gICAgICAgIHBhcmFtczIucXMgPSB7XG4gICAgICAgICAgLi4uKG9wdHMucXVlcnkgfHwge30pLFxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgaWYgKHBhcmFtczIucXMgJiYgIXBhcmFtczIucXMudG9rZW4gJiYgdGhpcy5hdXRoVG9rZW4pIHBhcmFtczIucXMudG9rZW4gPSB0aGlzLmF1dGhUb2tlbjtcbiAgICB9XG5cbiAgICAvLyBjb25zb2xlLmxvZygnV1Mgb3B0cy5xdWVyeSwgb3B0cy5xdWVyeS50b2tlbiwgdGhpcy5hdXRoVG9rZW4nLCBvcHRzLnF1ZXJ5LCBvcHRzLnF1ZXJ5LnRva2VuLCB0aGlzLmF1dGhUb2tlbik7XG4gICAgY29uc3QgdXJsID0gdGhpcy5jcmVhdGVVcmwocGF0aCwgeyAuLi50aGlzLndzQ29uZmlnLCAuLi5wYXJhbXMyIH0pO1xuICAgIC8vIGNvbnNvbGUubG9nKCd3cyB1cmwnLCB7d3NDb25maWc6IHRoaXMud3NDb25maWcsIHBhdGgsIG9wdGlvbnMsIHVybCwgb3B0cyx9ICk7XG4gICAgaWYgKHRoaXMubG9nICYmIHRoaXMubG9nLnRyYWNlKSB7XG4gICAgICB0aGlzLmxvZy50cmFjZSgnW2FwaV0gV1MnLCB1cmwsIG9wdGlvbnMpO1xuICAgICAgLy8gdGhpcy5sb2cudHJhY2UoJ1thcGldJywgcmVxLm1ldGhvZCwgcmVxLnVybCwgcmVxLl9ib2R5LCByZXEpO1xuICAgIH1cbiAgICBjb25zdCBzb2NrZXQgPSB0aGlzLmlvKFxuICAgICAgdXJsLFxuICAgICAgb3B0cyxcbiAgICApO1xuXG4gICAgdGhpcy53c0Nvbm5lY3Rpb25zW2tleV0gPSBbcGF0aCwgb3B0aW9ucywgc29ja2V0XTtcbiAgICBzb2NrZXQub24oJ2Rpc2Nvbm5lY3QnLCAoKSA9PiB7XG4gICAgICBkZWxldGUgdGhpcy53c0Nvbm5lY3Rpb25zW2tleV07XG4gICAgfSk7XG5cbiAgICByZXR1cm4gc29ja2V0O1xuICB9XG4gIHdzMihwYXRoID0gJycsIHBhcmFtcyA9IHt9KSB7XG4gICAgaWYgKCF0aGlzLndzQ29uZmlnKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCfQktGLINC90LUg0LzQvtC20LXRgtC1INC40YHQv9C+0LvRjNC30L7QstCw0YLRjCBhcGkud3Mg0LHQtdC3INGB0L7QutC10YIg0LrQvtC90YTQuNCz0L7QsicpO1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGNvbnN0IHBhcmFtczIgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLndzQ29uZmlnLCBwYXJhbXMpO1xuXG4gICAgaWYgKCF0aGlzLndzQ29uZmlnLnRva2VuSW5Db29raWUpIHtcbiAgICAgIGlmICghcGFyYW1zMi5xcykgcGFyYW1zMi5xcyA9IHt9O1xuICAgICAgaWYgKHBhcmFtczIucXMgJiYgIXBhcmFtczIucXMudG9rZW4gJiYgdGhpcy5hdXRoVG9rZW4pIHBhcmFtczIucXMudG9rZW4gPSB0aGlzLmF1dGhUb2tlbjtcbiAgICB9XG5cbiAgICBjb25zdCByZXMgPSB0aGlzLmlvKFxuICAgICAgdGhpcy5jcmVhdGVVcmwocGF0aCwgcGFyYW1zMiksXG4gICAgICB7XG4gICAgICAgIC4uLnRoaXMud3NDb25maWcub3B0aW9ucyxcbiAgICAgICAgLi4ucGFyYW1zLFxuICAgICAgfSxcbiAgICApO1xuICAgIHJldHVybiByZXM7XG4gIH1cblxufVxuIl19
{
"name": "apiquery",
"version": "0.1.16",
"version": "0.1.17",
"description": "http + websockets api client for Web, Node.js and React Native",

@@ -5,0 +5,0 @@ "repository": {

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc