@cloudbase/app 2.21.1 → 2.21.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -74,7 +74,7 @@ function setRegionLevelEndpoint(env, region, protocol) {
74
74
  exports.setRegionLevelEndpoint = setRegionLevelEndpoint;
75
75
  function getBaseEndPoint(env, endPointKey) {
76
76
  if (endPointKey === void 0) { endPointKey = 'CLOUD_API'; }
77
- var info = getEndPointInfo(env, endPointKey);
77
+ var info = getEndPointInfo(env, endPointKey || 'CLOUD_API');
78
78
  var PROTOCOL = info.protocol, BASE_URL = info.baseUrl;
79
79
  var webEndpoint = "".concat(PROTOCOL).concat(BASE_URL);
80
80
  return webEndpoint.match(/(http(s)?:)?\/\/([^/?#]*)/)[0];
@@ -93,4 +93,4 @@ var LOGINTYPE;
93
93
  LOGINTYPE["PHONE"] = "PHONE";
94
94
  })(LOGINTYPE = exports.LOGINTYPE || (exports.LOGINTYPE = {}));
95
95
  exports.OAUTH2_LOGINTYPE_PREFIX = 'OAUTH2';
96
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbnN0YW50cy9jb21tb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7QUFDQSxrREFBZ0Q7QUFHeEMsSUFBWSxtQkFBbUIsR0FBd0MscUJBQVMsV0FBakQsRUFBZSxvQkFBb0IsR0FBSyxxQkFBUyxZQUFkLENBQWM7QUFJeEYsSUFBSSxVQUFVLEdBQUcsRUFBRSxDQUFBO0FBQ25CLElBQUksT0FBTyxHQUFHLG1CQUFtQixDQUFBO0FBRWpDLFNBQWdCLGFBQWEsQ0FBQyxPQUFlO0lBQzNDLFVBQVUsR0FBRyxPQUFPLENBQUE7QUFDdEIsQ0FBQztBQUZELHNDQUVDO0FBQ0QsU0FBZ0IsYUFBYTtJQUMzQixPQUFPLFVBQVUsQ0FBQTtBQUNuQixDQUFDO0FBRkQsc0NBRUM7QUFDRCxTQUFnQixVQUFVLENBQUMsSUFBWTtJQUNyQyxPQUFPLEdBQUcsSUFBSSxDQUFBO0lBQ2QsbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUE7QUFDM0IsQ0FBQztBQUhELGdDQUdDO0FBQ0QsU0FBZ0IsVUFBVTtJQUN4QixPQUFPLE9BQU8sQ0FBQTtBQUNoQixDQUFDO0FBRkQsZ0NBRUM7QUFDWSxRQUFBLFlBQVksR0FBRyxZQUFZLENBQUE7QUFjeEMsSUFBTSxrQkFBa0IsR0FBd0IsRUFBRSxDQUFBO0FBR2xELElBQU0sMEJBQTBCLEdBQUcsQ0FBQyxLQUFLLEVBQUUsYUFBYSxFQUFFLFFBQVEsQ0FBQyxDQUFBO0FBRW5FLElBQU0sZ0JBQWdCLEdBQUcsUUFBUSxDQUFBO0FBRWpDLFNBQVMsZUFBZSxDQUFDLElBQWtCO0lBQ3pDLE9BQU8sa0JBQWtCLENBQUMsSUFBSSxDQUFDLFVBQUEsVUFBVSxJQUFJLE9BQUEsMEJBQTBCLENBQUMsTUFBTSxDQUFDLFVBQUEsU0FBUyxJQUFJLE9BQUEsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLElBQUksRUFBdkIsQ0FBdUIs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LEdBQUcsUUFBUSxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW5kUG9pbnRLZXkgfSBmcm9tICdAY2xvdWRiYXNlL3R5cGVzJ1xuaW1wb3J0IHsgY29uc3RhbnRzIH0gZnJvbSAnQGNsb3VkYmFzZS91dGlsaXRpZXMnXG5cbi8vIEB0cy1pZ25vcmVcbmNvbnN0IHsgc2V0U2RrTmFtZTogc2V0VXRpbGl0aWVzU2RrTmFtZSwgc2V0UHJvdG9jb2w6IHNldFV0aWxpdGllc1Byb3RvY29sIH0gPSBjb25zdGFudHNcbi8qKlxuICogU0RLXG4gKi9cbmxldCBzZGtWZXJzaW9uID0gJydcbmxldCBzZGtOYW1lID0gJ0BjbG91ZGJhc2UvanMtc2RrJ1xuXG5leHBvcnQgZnVuY3Rpb24gc2V0U2RrVmVyc2lvbih2ZXJzaW9uOiBzdHJpbmcpIHtcbiAgc2RrVmVyc2lvbiA9IHZlcnNpb25cbn1cbmV4cG9ydCBmdW5jdGlvbiBnZXRTZGtWZXJzaW9uKCkge1xuICByZXR1cm4gc2RrVmVyc2lvblxufVxuZXhwb3J0IGZ1bmN0aW9uIHNldFNka05hbWUobmFtZTogc3RyaW5nKSB7XG4gIHNka05hbWUgPSBuYW1lXG4gIHNldFV0aWxpdGllc1Nka05hbWUobmFtZSlcbn1cbmV4cG9ydCBmdW5jdGlvbiBnZXRTZGtOYW1lKCkge1xuICByZXR1cm4gc2RrTmFtZVxufVxuZXhwb3J0IGNvbnN0IERBVEFfVkVSU0lPTiA9ICcyMDIwLTAxLTEwJ1xuXG5pbnRlcmZhY2UgRW5kUG9pbnRJbmZvIHtcbiAgZW52OiBzdHJpbmdcbiAgZW5kUG9pbnRLZXk6IEVuZFBvaW50S2V5XG4gIHJlZ2lvbj86IHN0cmluZ1xuICBiYXNlVXJsPzogc3RyaW5nXG4gIHByb3RvY29sPzogc3RyaW5nXG59XG4vKipcbiAqICDmiYDmnIkgZW5kUG9pbnQg5L+h5oGvXG4gKiAg6YG/5YWN55u05o6l5pON5L2c6K+l5pWw57uEXG4gKiAg5L2/55SoIHNldEVuZFBvaW50SW5mb+OAgSBnZXRFbmRQb2ludEluZm9cbiAqL1xuY29uc3QgRU5EX1BPSU5UX0lORk9fQVJSOiBBcnJheTxFbmRQb2ludEluZm8+ID0gW11cblxuLyoqIOeUqOadpeafpeaJviBlbmRQb2ludCDnmoTlrZfmrrUgKi9cbmNvbnN0IEVORF9QT0lOVF9JTkZPX1NFQVJDSF9LRVlTID0gWydlbnYnLCAnZW5kUG9pbnRLZXknLCAncmVnaW9uJ11cblxuY29uc3QgREVGQVVMVF9QUk9UT0NPTCA9ICdodHRwczonXG5cbmZ1bmN0aW9uIGZpbmRNYXRjaGVkSW5mbyhpbmZvOiBFbmRQb2ludEluZm8pIHtcbiAgcmV0dXJuIEVORF9QT0lOVF9JTkZPX0FSUi5maW5kKHRhcmdldEluZm8gPT4gRU5EX1BPSU5UX0lORk9fU0VBUkNIX0tFWVMuZmlsdGVyKHNlYXJjaEtleSA9PiBpbmZvW3NlYXJjaEtleV0gIT0gbnVsbCkuZXZlcnkoc2VhcmNoS2V5ID0+IHRhcmdldEluZm9bc2VhcmNoS2V5XSA9PT0gaW5mb1tzZWFyY2hLZXldLCksKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0RW5kUG9pbnRJbmZvKG5ld0luZm86IEVuZFBvaW50SW5mbykge1xuICBjb25zdCBlbmRQb2ludEluZm8gPSBmaW5kTWF0Y2hlZEluZm8obmV3SW5mbylcbiAgaWYgKGVuZFBvaW50SW5mbykge1xuICAgIGlmIChuZXdJbmZvLmJhc2VVcmwgIT0gbnVsbCkge1xuICAgICAgZW5kUG9pbnRJbmZvLmJhc2VVcmwgPSBuZXdJbmZvLmJhc2VVcmxcbiAgICB9XG4gICAgaWYgKG5ld0luZm8ucHJvdG9jb2wgIT0gbnVsbCkge1xuICAgICAgZW5kUG9pbnRJbmZvLnByb3RvY29sID0gbmV3SW5mby5wcm90b2NvbFxuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBFTkRfUE9JTlRfSU5GT19BUlIucHVzaCh7IC4uLm5ld0luZm8sIHByb3RvY29sOiBuZXdJbmZvLnByb3RvY29sID8/IERFRkFVTFRfUFJPVE9DT0wgfSlcbiAgfVxuXG4gIC8vIOS/neaMgeaXp+S7o+eggemAu+i+kVxuICBpZiAobmV3SW5mby5lbmRQb2ludEtleSA9PT0gJ0NMT1VEX0FQSScpIHtcbiAgICBzZXRVdGlsaXRpZXNQcm90b2NvbCgobmV3SW5mby5wcm90b2NvbCA/PyBERUZBVUxUX1BST1RPQ09MKSBhcyAnaHR0cCcgfCAnaHR0cHMnKVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRFbmRQb2ludEluZm8oZW52OiBzdHJpbmcsIGVuZFBvaW50S2V5OiBFbmRQb2ludEtleSwgcmVnaW9uPzogc3RyaW5nKSB7XG4gIHJldHVybiBmaW5kTWF0Y2hlZEluZm8oeyBlbnYsIGVuZFBvaW50S2V5LCByZWdpb24gfSlcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJU2V0RW5kUG9pbnRXaXRoS2V5IHtcbiAga2V5OiBFbmRQb2ludEtleVxuICB1cmw/OiBzdHJpbmdcbiAgcHJvdG9jb2w/OiAnaHR0cCcgfCAnaHR0cHMnXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRHYXRld2F5RW5kUG9pbnRXaXRoRW52KGVudjogc3RyaW5nLCBwcm90b2NvbD86ICdodHRwJyB8ICdodHRwcycpIHtcbiAgc2V0RW5kUG9pbnRJbmZvKHsgZW5kUG9pbnRLZXk6ICdHQVRFV0FZJywgZW52LCBiYXNlVXJsOiBgLy8ke2Vudn0uYXBpLnRjbG91ZGJhc2VnYXRld2F5LmNvbS92MWAsIHByb3RvY29sIH0pXG59XG5leHBvcnQgZnVuY3Rpb24gc2V0UmVnaW9uTGV2ZWxFbmRwb2ludChlbnY6IHN0cmluZywgcmVnaW9uOiBzdHJpbmcsIHByb3RvY29sPzogJ2h0dHAnIHwgJ2h0dHBzJykge1xuICBjb25zdCBiYXNlVXJsID0gYC8vJHtlbnZ9LiR7cmVnaW9uIHx8ICdhcC1zaGFuZ2hhaSd9LnRjYi1hcGkudGVuY2VudGNsb3VkYXBpLmNvbS93ZWJgXG4gIHNldEVuZFBvaW50SW5mbyh7IGVudiwgcmVnaW9uLCBiYXNlVXJsLCBwcm90b2NvbCwgZW5kUG9pbnRLZXk6ICdDTE9VRF9BUEknIH0pXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRCYXNlRW5kUG9pbnQoZW52OiBzdHJpbmcsIGVuZFBvaW50S2V5OiBFbmRQb2ludEtleSA9ICdDTE9VRF9BUEknKSB7XG4gIGNvbnN0IGluZm8gPSBnZXRFbmRQb2ludEluZm8oZW52LCBlbmRQb2ludEtleSlcblxuICBjb25zdCB7IHByb3RvY29sOiBQUk9UT0NPTCwgYmFzZVVybDogQkFTRV9VUkwgfSA9IGluZm9cbiAgY29uc3Qgd2ViRW5kcG9pbnQgPSBgJHtQUk9UT0NPTH0ke0JBU0VfVVJMfWBcbiAgLy8gQHRvZG8g5Li05pe25YW85a655bCP56iL5bqPXG4gIHJldHVybiB3ZWJFbmRwb2ludC5tYXRjaCgvKGh0dHAocyk/Oik/XFwvXFwvKFteLz8jXSopLylbMF1cbiAgLy8gcmV0dXJuIGAke25ldyBVUkwod2ViRW5kcG9pbnQpLm9yaWdpbn1gXG59XG5cbmV4cG9ydCBlbnVtIExPR0lOVFlQRSB7XG4gIE5VTEwgPSAnTlVMTCcsXG4gIEFOT05ZTU9VUyA9ICdBTk9OWU1PVVMnLFxuICBXRUNIQVQgPSAnV0VDSEFUJyxcbiAgV0VDSEFUX1BVQkxJQyA9ICdXRUNIQVQtUFVCTElDJyxcbiAgV0VDSEFUX09QRU4gPSAnV0VDSEFULU9QRU4nLFxuICBDVVNUT00gPSAnQ1VTVE9NJyxcbiAgRU1BSUwgPSAnRU1BSUwnLFxuICBVU0VSTkFNRSA9ICdVU0VSTkFNRScsXG4gIFBIT05FID0gJ1BIT05FJyxcbn1cblxuZXhwb3J0IGNvbnN0IE9BVVRIMl9MT0dJTlRZUEVfUFJFRklYID0gJ09BVVRIMidcbiJdfQ==
96
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbnN0YW50cy9jb21tb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7QUFDQSxrREFBZ0Q7QUFHeEMsSUFBWSxtQkFBbUIsR0FBd0MscUJBQVMsV0FBakQsRUFBZSxvQkFBb0IsR0FBSyxxQkFBUyxZQUFkLENBQWM7QUFJeEYsSUFBSSxVQUFVLEdBQUcsRUFBRSxDQUFBO0FBQ25CLElBQUksT0FBTyxHQUFHLG1CQUFtQixDQUFBO0FBRWpDLFNBQWdCLGFBQWEsQ0FBQyxPQUFlO0lBQzNDLFVBQVUsR0FBRyxPQUFPLENBQUE7QUFDdEIsQ0FBQztBQUZELHNDQUVDO0FBQ0QsU0FBZ0IsYUFBYTtJQUMzQixPQUFPLFVBQVUsQ0FBQTtBQUNuQixDQUFDO0FBRkQsc0NBRUM7QUFDRCxTQUFnQixVQUFVLENBQUMsSUFBWTtJQUNyQyxPQUFPLEdBQUcsSUFBSSxDQUFBO0lBQ2QsbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUE7QUFDM0IsQ0FBQztBQUhELGdDQUdDO0FBQ0QsU0FBZ0IsVUFBVTtJQUN4QixPQUFPLE9BQU8sQ0FBQTtBQUNoQixDQUFDO0FBRkQsZ0NBRUM7QUFDWSxRQUFBLFlBQVksR0FBRyxZQUFZLENBQUE7QUFjeEMsSUFBTSxrQkFBa0IsR0FBd0IsRUFBRSxDQUFBO0FBR2xELElBQU0sMEJBQTBCLEdBQUcsQ0FBQyxLQUFLLEVBQUUsYUFBYSxFQUFFLFFBQVEsQ0FBQyxDQUFBO0FBRW5FLElBQU0sZ0JBQWdCLEdBQUcsUUFBUSxDQUFBO0FBRWpDLFNBQVMsZUFBZSxDQUFDLElBQWtCO0lBQ3pDLE9BQU8sa0JBQWtCLENBQUMsSUFBSSxDQUFDLFVBQUEsVUFBVSxJQUFJLE9BQUEsMEJBQTBCLENBQUMsTUFBTSxDQUFDLFVBQUEsU0FBUyxJQUFJLE9BQUEsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLElBQUksRUFBdkIsQ0FBdUIs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QUFBLHVCQUF1QixHQUFHLFFBQVEsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVuZFBvaW50S2V5IH0gZnJvbSAnQGNsb3VkYmFzZS90eXBlcydcbmltcG9ydCB7IGNvbnN0YW50cyB9IGZyb20gJ0BjbG91ZGJhc2UvdXRpbGl0aWVzJ1xuXG4vLyBAdHMtaWdub3JlXG5jb25zdCB7IHNldFNka05hbWU6IHNldFV0aWxpdGllc1Nka05hbWUsIHNldFByb3RvY29sOiBzZXRVdGlsaXRpZXNQcm90b2NvbCB9ID0gY29uc3RhbnRzXG4vKipcbiAqIFNES1xuICovXG5sZXQgc2RrVmVyc2lvbiA9ICcnXG5sZXQgc2RrTmFtZSA9ICdAY2xvdWRiYXNlL2pzLXNkaydcblxuZXhwb3J0IGZ1bmN0aW9uIHNldFNka1ZlcnNpb24odmVyc2lvbjogc3RyaW5nKSB7XG4gIHNka1ZlcnNpb24gPSB2ZXJzaW9uXG59XG5leHBvcnQgZnVuY3Rpb24gZ2V0U2RrVmVyc2lvbigpIHtcbiAgcmV0dXJuIHNka1ZlcnNpb25cbn1cbmV4cG9ydCBmdW5jdGlvbiBzZXRTZGtOYW1lKG5hbWU6IHN0cmluZykge1xuICBzZGtOYW1lID0gbmFtZVxuICBzZXRVdGlsaXRpZXNTZGtOYW1lKG5hbWUpXG59XG5leHBvcnQgZnVuY3Rpb24gZ2V0U2RrTmFtZSgpIHtcbiAgcmV0dXJuIHNka05hbWVcbn1cbmV4cG9ydCBjb25zdCBEQVRBX1ZFUlNJT04gPSAnMjAyMC0wMS0xMCdcblxuaW50ZXJmYWNlIEVuZFBvaW50SW5mbyB7XG4gIGVudjogc3RyaW5nXG4gIGVuZFBvaW50S2V5OiBFbmRQb2ludEtleVxuICByZWdpb24/OiBzdHJpbmdcbiAgYmFzZVVybD86IHN0cmluZ1xuICBwcm90b2NvbD86IHN0cmluZ1xufVxuLyoqXG4gKiAg5omA5pyJIGVuZFBvaW50IOS/oeaBr1xuICogIOmBv+WFjeebtOaOpeaTjeS9nOivpeaVsOe7hFxuICogIOS9v+eUqCBzZXRFbmRQb2ludEluZm/jgIEgZ2V0RW5kUG9pbnRJbmZvXG4gKi9cbmNvbnN0IEVORF9QT0lOVF9JTkZPX0FSUjogQXJyYXk8RW5kUG9pbnRJbmZvPiA9IFtdXG5cbi8qKiDnlKjmnaXmn6Xmib4gZW5kUG9pbnQg55qE5a2X5q61ICovXG5jb25zdCBFTkRfUE9JTlRfSU5GT19TRUFSQ0hfS0VZUyA9IFsnZW52JywgJ2VuZFBvaW50S2V5JywgJ3JlZ2lvbiddXG5cbmNvbnN0IERFRkFVTFRfUFJPVE9DT0wgPSAnaHR0cHM6J1xuXG5mdW5jdGlvbiBmaW5kTWF0Y2hlZEluZm8oaW5mbzogRW5kUG9pbnRJbmZvKSB7XG4gIHJldHVybiBFTkRfUE9JTlRfSU5GT19BUlIuZmluZCh0YXJnZXRJbmZvID0+IEVORF9QT0lOVF9JTkZPX1NFQVJDSF9LRVlTLmZpbHRlcihzZWFyY2hLZXkgPT4gaW5mb1tzZWFyY2hLZXldICE9IG51bGwpLmV2ZXJ5KHNlYXJjaEtleSA9PiB0YXJnZXRJbmZvW3NlYXJjaEtleV0gPT09IGluZm9bc2VhcmNoS2V5XSwpLClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldEVuZFBvaW50SW5mbyhuZXdJbmZvOiBFbmRQb2ludEluZm8pIHtcbiAgY29uc3QgZW5kUG9pbnRJbmZvID0gZmluZE1hdGNoZWRJbmZvKG5ld0luZm8pXG4gIGlmIChlbmRQb2ludEluZm8pIHtcbiAgICBpZiAobmV3SW5mby5iYXNlVXJsICE9IG51bGwpIHtcbiAgICAgIGVuZFBvaW50SW5mby5iYXNlVXJsID0gbmV3SW5mby5iYXNlVXJsXG4gICAgfVxuICAgIGlmIChuZXdJbmZvLnByb3RvY29sICE9IG51bGwpIHtcbiAgICAgIGVuZFBvaW50SW5mby5wcm90b2NvbCA9IG5ld0luZm8ucHJvdG9jb2xcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgRU5EX1BPSU5UX0lORk9fQVJSLnB1c2goeyAuLi5uZXdJbmZvLCBwcm90b2NvbDogbmV3SW5mby5wcm90b2NvbCA/PyBERUZBVUxUX1BST1RPQ09MIH0pXG4gIH1cblxuICAvLyDkv53mjIHml6fku6PnoIHpgLvovpFcbiAgaWYgKG5ld0luZm8uZW5kUG9pbnRLZXkgPT09ICdDTE9VRF9BUEknKSB7XG4gICAgc2V0VXRpbGl0aWVzUHJvdG9jb2woKG5ld0luZm8ucHJvdG9jb2wgPz8gREVGQVVMVF9QUk9UT0NPTCkgYXMgJ2h0dHAnIHwgJ2h0dHBzJylcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RW5kUG9pbnRJbmZvKGVudjogc3RyaW5nLCBlbmRQb2ludEtleTogRW5kUG9pbnRLZXksIHJlZ2lvbj86IHN0cmluZykge1xuICByZXR1cm4gZmluZE1hdGNoZWRJbmZvKHsgZW52LCBlbmRQb2ludEtleSwgcmVnaW9uIH0pXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVNldEVuZFBvaW50V2l0aEtleSB7XG4gIGtleTogRW5kUG9pbnRLZXlcbiAgdXJsPzogc3RyaW5nXG4gIHByb3RvY29sPzogJ2h0dHAnIHwgJ2h0dHBzJ1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0R2F0ZXdheUVuZFBvaW50V2l0aEVudihlbnY6IHN0cmluZywgcHJvdG9jb2w/OiAnaHR0cCcgfCAnaHR0cHMnKSB7XG4gIHNldEVuZFBvaW50SW5mbyh7IGVuZFBvaW50S2V5OiAnR0FURVdBWScsIGVudiwgYmFzZVVybDogYC8vJHtlbnZ9LmFwaS50Y2xvdWRiYXNlZ2F0ZXdheS5jb20vdjFgLCBwcm90b2NvbCB9KVxufVxuZXhwb3J0IGZ1bmN0aW9uIHNldFJlZ2lvbkxldmVsRW5kcG9pbnQoZW52OiBzdHJpbmcsIHJlZ2lvbjogc3RyaW5nLCBwcm90b2NvbD86ICdodHRwJyB8ICdodHRwcycpIHtcbiAgY29uc3QgYmFzZVVybCA9IGAvLyR7ZW52fS4ke3JlZ2lvbiB8fCAnYXAtc2hhbmdoYWknfS50Y2ItYXBpLnRlbmNlbnRjbG91ZGFwaS5jb20vd2ViYFxuICBzZXRFbmRQb2ludEluZm8oeyBlbnYsIHJlZ2lvbiwgYmFzZVVybCwgcHJvdG9jb2wsIGVuZFBvaW50S2V5OiAnQ0xPVURfQVBJJyB9KVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0QmFzZUVuZFBvaW50KGVudjogc3RyaW5nLCBlbmRQb2ludEtleTogRW5kUG9pbnRLZXkgPSAnQ0xPVURfQVBJJykge1xuICBjb25zdCBpbmZvID0gZ2V0RW5kUG9pbnRJbmZvKGVudiwgZW5kUG9pbnRLZXkgfHwgJ0NMT1VEX0FQSScpXG5cbiAgY29uc3QgeyBwcm90b2NvbDogUFJPVE9DT0wsIGJhc2VVcmw6IEJBU0VfVVJMIH0gPSBpbmZvXG4gIGNvbnN0IHdlYkVuZHBvaW50ID0gYCR7UFJPVE9DT0x9JHtCQVNFX1VSTH1gXG4gIC8vIEB0b2RvIOS4tOaXtuWFvOWuueWwj+eoi+W6j1xuICByZXR1cm4gd2ViRW5kcG9pbnQubWF0Y2goLyhodHRwKHMpPzopP1xcL1xcLyhbXi8/I10qKS8pWzBdXG4gIC8vIHJldHVybiBgJHtuZXcgVVJMKHdlYkVuZHBvaW50KS5vcmlnaW59YFxufVxuXG5leHBvcnQgZW51bSBMT0dJTlRZUEUge1xuICBOVUxMID0gJ05VTEwnLFxuICBBTk9OWU1PVVMgPSAnQU5PTllNT1VTJyxcbiAgV0VDSEFUID0gJ1dFQ0hBVCcsXG4gIFdFQ0hBVF9QVUJMSUMgPSAnV0VDSEFULVBVQkxJQycsXG4gIFdFQ0hBVF9PUEVOID0gJ1dFQ0hBVC1PUEVOJyxcbiAgQ1VTVE9NID0gJ0NVU1RPTScsXG4gIEVNQUlMID0gJ0VNQUlMJyxcbiAgVVNFUk5BTUUgPSAnVVNFUk5BTUUnLFxuICBQSE9ORSA9ICdQSE9ORScsXG59XG5cbmV4cG9ydCBjb25zdCBPQVVUSDJfTE9HSU5UWVBFX1BSRUZJWCA9ICdPQVVUSDInXG4iXX0=
package/dist/cjs/index.js CHANGED
@@ -168,7 +168,7 @@ var Cloudbase = (function () {
168
168
  (0, common_1.setRegionLevelEndpoint)(env, config.region || '');
169
169
  (0, common_1.setGatewayEndPointWithEnv)(env);
170
170
  var app = new Cloudbase(this.cloudbaseConfig);
171
- (0, request_1.initRequest)({ env: env, region: config.region || '', timeout: timeout, oauthClient: oauthClient, _fromApp: app, i18n: i18n });
171
+ (0, request_1.initRequest)({ env: env, region: config.region || '', timeout: timeout, oauthClient: oauthClient, _fromApp: app, i18n: i18n, endPointMode: config.endPointMode });
172
172
  app.requestClient = this.requestClient;
173
173
  (_a = this === null || this === void 0 ? void 0 : this.fire) === null || _a === void 0 ? void 0 : _a.call(this, 'cloudbase_init', app);
174
174
  this.try2InitAuth(config, app);
@@ -334,4 +334,4 @@ var Cloudbase = (function () {
334
334
  exports.cloudbase = new Cloudbase();
335
335
  exports.cloudbase.useAdapters(adapter_wx_mp_1.default);
336
336
  exports.default = exports.cloudbase;
337
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGtEQUEwRTtBQVkxRSwyRUFBcUQ7QUFDckQsOENBQWtFO0FBQ2xFLDBDQUF5QztBQUd6QyxzQ0FBd0U7QUFFeEUsMENBQStEO0FBQy9ELDZDQVUyQjtBQUMzQixvQ0FBOEM7QUFDOUMsNENBQWdFO0FBQ2hFLDZDQUFvRDtBQUEzQyx5R0FBQSxlQUFlLE9BQUE7QUFDeEIsb0NBQW1DO0FBQTFCLDZGQUFBLEtBQUssT0FBQTtBQUNOLElBQUEsV0FBVyxHQUF3QixvQkFBUSxZQUFoQyxFQUFFLGlCQUFpQixHQUFLLG9CQUFRLGtCQUFiLENBQWE7QUFDM0MsSUFBQSxNQUFNLEdBQXlCLHFCQUFTLE9BQWxDLEVBQUUsa0JBQWtCLEdBQUsscUJBQVMsbUJBQWQsQ0FBYztBQUN4QyxJQUFBLFNBQVMsR0FBSyxpQkFBSyxVQUFWLENBQVU7QUFDbkIsSUFBQSxvQkFBb0IsR0FBSyxtQkFBTyxxQkFBWixDQUFZO0FBS3hDLElBQU0sbUJBQW1CLEdBQThCO0lBQ3JELE9BQU8sRUFBRSxLQUFLO0lBQ2QsV0FBVyxFQUFFLE9BQU87Q0FDckIsQ0FBQTtBQUdELElBQU0sV0FBVyxHQUFHLElBQUksR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFBO0FBRWxDLElBQU0sV0FBVyxHQUFHLEdBQUcsQ0FBQTtBQUV2QixJQUFNLFlBQVksR0FBNEIsRUFBRSxDQUFBO0FBRWhEO0lBUUUsbUJBQVksTUFBeUI7UUFDbkMsSUFBSSxDQUFDLGVBQWUsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQTtRQUM3RCxJQUFJLENBQUMsWUFBWSxHQUFHLElB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Y0FBYyxFQUFFLDJDQUEyQyxDQUFDLENBQUE7Z0JBQzdFLE9BQU8sV0FBVyxDQUFBO1lBQ3BCO2dCQUNFLE9BQU8sT0FBTyxDQUFBO1NBQ2pCO0lBQ0gsQ0FBQztJQUVPLGdDQUFZLEdBQXBCLFVBQXFCLE1BQXdCLEVBQUUsR0FBRztRQUNoRCxJQUFJO1lBQ0YsSUFBSSxNQUFNLENBQUMsU0FBUyxFQUFFO2dCQUNwQixHQUFHLENBQUMsSUFBSSxFQUFFLENBQUE7YUFDWDtTQUNGO1FBQUMsT0FBTyxLQUFLLEVBQUU7WUFDZCxPQUFPLENBQUMsR0FBRyxDQUFDLHFCQUFxQixFQUFFLEtBQUssQ0FBQyxDQUFBO1NBQzFDO0lBQ0gsQ0FBQztJQTlMTTtRQVZOLG9CQUFvQixDQUFDO1lBQ3BCLElBQUksRUFBRSxNQUFNO1lBQ1osS0FBSyxFQUFFLGlCQUFpQjtZQUN4QixRQUFRLEVBQUU7Z0JBQ1IsVUFBVTtnQkFDVixzQ0FBc0M7Z0JBQ3RDLG1MQUFtTDtnQkFDbkwsc0tBQTZCLGtCQUFrQixDQUFFO2FBQ2xEO1NBQ0YsQ0FBQzs7O3dDQUN3RCxTQUFTO3lDQTRDbEU7SUE0Qlk7UUFUWixvQkFBb0IsQ0FBQztZQUNwQixLQUFLLEVBQUUsVUFBVTtZQUNqQixRQUFRLEVBQUU7Z0JBQ1IsVUFBVTtnQkFDVix1Q0FBdUM7Z0JBQ3ZDLGdEQUFnRDtnQkFDaEQsc0tBQTZCLGtCQUFrQixDQUFFO2FBQ2xEO1NBQ0YsQ0FBQzs7OztvREFXRDtJQTZHSCxnQkFBQztDQUFBLEFBaFBELElBZ1BDO0FBRVksUUFBQSxTQUFTLEdBQWUsSUFBSSxTQUFTLEVBQUUsQ0FBQTtBQUNwRCxpQkFBUyxDQUFDLFdBQVcsQ0FBQyx1QkFBYyxDQUFDLENBQUE7QUFFckMsa0JBQWUsaUJBQVMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFkYXB0ZXJzLCBjb25zdGFudHMsIHV0aWxzLCBoZWxwZXJzIH0gZnJvbSAnQGNsb3VkYmFzZS91dGlsaXRpZXMnXG5pbXBvcnQgeyBTREtBZGFwdGVySW50ZXJmYWNlLCBDbG91ZGJhc2VBZGFwdGVyLCBJUmVxdWVzdENvbmZpZyB9IGZyb20gJ0BjbG91ZGJhc2UvYWRhcHRlci1pbnRlcmZhY2UnXG5pbXBvcnQge1xuICBJQ2xvdWRiYXNlQ29uZmlnLFxuICBJQ2xvdWRiYXNlVXBncmFkZWRDb25maWcsXG4gIElDbG91ZGJhc2UsXG4gIElDbG91ZGJhc2VFeHRlbnNpb24sXG4gIEtWLFxuICBJQ2xvdWRiYXNlUGxhdGZvcm1JbmZvLFxuICBFbmRQb2ludEtleSxcbn0gZnJvbSAnQGNsb3VkYmFzZS90eXBlcydcbmltcG9ydCB7IElDbG91ZGJhc2VBdXRoIH0gZnJvbSAnQGNsb3VkYmFzZS90eXBlcy9hdXRoJ1xuaW1wb3J0IGFkYXB0ZXJGb3JXeE1wIGZyb20gJ0BjbG91ZGJhc2UvYWRhcHRlci13eF9tcCdcbmltcG9ydCB7IHJlZ2lzdGVyQ29tcG9uZW50LCByZWdpc3Rlckhvb2sgfSBmcm9tICcuL2xpYnMvY29tcG9uZW50J1xuaW1wb3J0IHsgUGxhdGZvcm0gfSBmcm9tICcuL2xpYnMvYWRhcHRlcidcbmltcG9ydCB7IElDbG91ZGJhc2VDb21wb25lbnQsIElDbG91ZGJhc2VIb29rIH0gZnJvbSAnQGNsb3VkYmFzZS90eXBlcy9jb21wb25lbnQnXG5pbXBvcnQgeyBJQ2xvdWRiYXNlQ2FjaGUgfSBmcm9tICdAY2xvdWRiYXNlL3R5cGVzL2NhY2hlJ1xuaW1wb3J0IHsgaW5pdENhY2hlLCBnZXRDYWNoZUJ5RW52SWQsIGdldExvY2FsQ2FjaGUgfSBmcm9tICcuL2xpYnMvY2FjaGUnXG5pbXBvcnQgeyBJQ2xvdWRiYXNlUmVxdWVzdCB9IGZyb20gJ0BjbG91ZGJhc2UvdHlwZXMvcmVxdWVzdCdcbmltcG9ydCB7IGluaXRSZXF1ZXN0LCBnZXRSZXF1ZXN0QnlFbnZJZCB9IGZyb20gJy4vbGlicy9yZXF1ZXN0J1xuaW1wb3J0IHtcbiAgZ2V0U2RrTmFtZSxcbiAgc2V0U2RrVmVyc2lvbixcbiAgc2V0UmVnaW9uTGV2ZWxFbmRwb2ludCxcbiAgc2V0U2RrTmFtZSxcbiAgc2V0R2F0ZXdheUVuZFBvaW50V2l0aEVudixcbiAgdHlwZSBJU2V0RW5kUG9pbnRXaXRoS2V5LFxuICBzZXRFbmRQb2ludEluZm8sXG4gIGdldEVuZFBvaW50SW5mbyxcbiAgZ2V0U2RrVmVyc2lvbixcbn0gZnJvbSAnLi9jb25zdGFudHMvY29tbW9uJ1xuaW1wb3J0IHsgaTE4blByb3h5LCBMQU5HUyB9IGZyb20gJy4vbGlicy9sYW5nJ1xuaW1wb3J0IHsgZ2VuZXJhdGVBcGlzLCBnZW5lcmF0ZUNhbGxBcGlzIH0gZnJvbSAnLi9saWJzL2NhbGxBcGlzJ1xuZXhwb3J0IHsgZ2V0QmFzZUVuZFBvaW50IH0gZnJvbSAnLi9jb25zdGFudHMvY29tbW9uJ1xuZXhwb3J0IHsgTEFOR1MgfSBmcm9tICcuL2xpYnMvbGFuZydcbmNvbnN0IHsgdXNlQWRhcHRlcnMsIHVzZURlZmF1bHRBZGFwdGVyIH0gPSBhZGFwdGVyc1xuY29uc3QgeyBFUlJPUlMsIENPTU1VTklUWV9TSVRFX1VSTCB9ID0gY29uc3RhbnRzXG5jb25zdCB7IHByaW50V2FybiB9ID0gdXRpbHNcbmNvbnN0IHsgY2F0Y2hFcnJvcnNEZWNvcmF0b3IgfSA9IGhlbHBlcnNcblxuLyoqXG4gKiBAY29uc3RhbnQg6buY6K6k6YWN572uXG4gKi9cbmNvbnN0IERFRkFVTFRfSU5JVF9DT05GSUc6IFBhcnRpYWw8SUNsb3VkYmFzZUNvbmZpZz4gPSB7XG4gIHRpbWVvdXQ6IDE1MDAwLFxuICBwZXJzaXN0ZW5jZTogJ2xvY2FsJywgLy8g5oyB5LmF5YyW5a2Y5YKo57G75Z6LXG59XG5cbi8vIHRpbWVvdXTkuIrpmZAxMOWIhumSn1xuY29uc3QgTUFYX1RJTUVPVVQgPSAxMDAwICogNjAgKiAxMFxuLy8gdGltZW91dOS4i+mZkDEwMG1zXG5jb25zdCBNSU5fVElNRU9VVCA9IDEwMFxuXG5jb25zdCBleHRlbnNpb25NYXA6IEtWPElDbG91ZGJhc2VFeHRlbnNpb24+ID0ge31cblxuY2xhc3MgQ2xvdWRiYXNlIGltcGxlbWVudHMgSUNsb3VkYmFzZSB7XG4gIHB1YmxpYyBhdXRoSW5zdGFuY2U6IElDbG91ZGJhc2VBdXRoXG4gIHB1YmxpYyBvYXV0aEluc3RhbmNlOiBhbnlcbiAgcHVibGljIHJlcXVlc3RDbGllbnQ6IGFueVxuICBwdWJsaWMgb2F1dGhDbGllbnQ6IGFueVxuICBwdWJsaWMgdmVyc2lvbjogc3RyaW5nXG4gIHByaXZhdGUgY2xvdWRiYXNlQ29uZmlnOiBJQ2xvdWRiYXNlQ29uZmlnXG5cbiAgY29uc3RydWN0b3IoY29uZmlnPzogSUNsb3VkYmFzZUNvbmZpZykge1xuICAgIHRoaXMuY2xvdWRiYXNlQ29uZmlnID0gY29uZmlnID8gY29uZmlnIDogdGhpcy5jbG91ZGJhc2VDb25maWdcbiAgICB0aGlzLmF1dGhJbnN0YW5jZSA9IG51bGxcbiAgICB0aGlzLm9hdXRoSW5zdGFuY2UgPSBudWxsXG4gICAgdGhpcy52ZXJzaW9uID0gZ2V0U2RrVmVyc2lvbigpXG4gIH1cblxuICBnZXQgY29uZmlnKCkge1xuICAgIHJldHVybiB0aGlzLmNsb3VkYmFzZUNvbmZpZ1xuICB9XG5cbiAgZ2V0IHBsYXRmb3JtKCk6IElDbG91ZGJhc2VQbGF0Zm9ybUluZm8ge1xuICAgIHJldHVybiBQbGF0Zm9ybVxuICB9XG5cbiAgZ2V0IGNhY2hlKCk6IElDbG91ZGJhc2VDYWNoZSB7XG4gICAgcmV0dXJuIGdldENhY2hlQnlFbnZJZCh0aGlzLmNsb3VkYmFzZUNvbmZpZy5lbnYpXG4gIH1cblxuICBnZXQgbG9jYWxDYWNoZSgpOiBJQ2xvdWRiYXNlQ2FjaGUge1xuICAgIHJldHVybiBnZXRMb2NhbENhY2hlKHRoaXMuY2xvdWRiYXNlQ29uZmlnLmVudilcbiAgfVxuXG4gIGdldCByZXF1ZXN0KCk6IElDbG91ZGJhc2VSZXF1ZXN0IHtcbiAgICByZXR1cm4gZ2V0UmVxdWVzdEJ5RW52SWQodGhpcy5jbG91ZGJhc2VDb25maWcuZW52KVxuICB9XG5cbiAgZ2V0IGFwaXMoKTogeyBba2V5OiBzdHJpbmddOiB0eXBlb2YgZ2VuZXJhdGVDYWxsQXBpcyB9IHtcbiAgICByZXR1cm4gZ2VuZXJhdGVBcGlzLmNhbGwodGhpcylcbiAgfVxuXG4gIEBjYXRjaEVycm9yc0RlY29yYXRvcih7XG4gICAgbW9kZTogJ3N5bmMnLFxuICAgIHRpdGxlOiAnQ2xvdWRiYXNlIOWIneWni+WMluWksei0pScsXG4gICAgbWVzc2FnZXM6IFtcbiAgICAgICfor7fnoa7orqTku6XkuIvlkITpobnvvJonLFxuICAgICAgJyAgMSAtIOiwg+eUqCBjbG91ZGJhc2UuaW5pdCgpIOeahOivreazleaIluWPguaVsOaYr+WQpuato+ehricsXG4gICAgICAnICAyIC0g5aaC5p6c5piv6Z2e5rWP6KeI5Zmo546v5aKD77yM5piv5ZCm6YWN572u5LqG5a6J5YWo5bqU55So5p2l5rqQ77yIaHR0cHM6Ly9kb2NzLmNsb3VkYmFzZS5uZXQvYXBpLXJlZmVyZW5jZS93ZWJ2My9hZGFwdGVyIyVFNyVBQyVBQy0yLSVFNiVBRCVBNSVFOSU4NSU4RCVFNyVCRCVBRSVFNSVBRSU4OSVFNSU4NSVBOCVFNSVCQSU5NCVFNyU5NCVBOCVFNiU5RCVBNSVFNiVCQSU5MO+8iScsXG4gICAgICBg5aaC5p6c6Zeu6aKY5L6d54S25a2Y5Zyo77yM5bu66K6u5Yiw5a6Y5pa56Zeu562U56S+5Yy65o+Q6Zeu5oiW5a+75om+5biu5Yqp77yaJHtDT01NVU5JVFlfU0lURV9VUkx9YCxcbiAgICBdLFxuICB9KVxuICBwdWJsaWMgaW5pdChjb25maWc6IElDbG91ZGJhc2VDb25maWcgJiB7IGxhbmc/OiBMQU5HUyB9KTogQ2xvdWRiYXNlIHtcbiAgICBpZiAoIWNvbmZpZy5lbnYpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgIGNvZGU6IEVSUk9SUy5JTlZBTElEX1BBUkFNUyxcbiAgICAgICAgbXNnOiAnZW52IG11c3Qgbm90IGJlIHNwZWNpZmllZCcsXG4gICAgICB9KSwpXG4gICAgfVxuICAgIC8vIOWIneWni+WMluaXtuiLpeacquWFvOWuueW5s+WPsO+8jOWImeS9v+eUqOm7mOiupGFkYXB0ZXJcbiAgICBpZiAoIVBsYXRmb3JtLmFkYXB0ZXIpIHtcbiAgICAgIHRoaXMudXNlRGVmYXVsdEFkYXB0ZXIoKVxuICAgIH1cblxuICAgIGNvbnN0IHJlcUNvbmZpZzogSVJlcXVlc3RDb25maWcgPSB7XG4gICAgICB0aW1lb3V0OiBjb25maWcudGltZW91dCB8fCA1MDAwLFxuICAgICAgdGltZW91dE1zZzogYFske2dldFNka05hbWUoKX1dW1JFUVVFU1QgVElNRU9VVF0gcmVxdWVzdCBoYWQgYmVlbiBhYm9ydCBzaW5jZSBkaWRuJ3QgZmluaXNoZWQgd2l0aGluJHtcbiAgICAgICAgY29uZmlnLnRpbWVvdXQgLyAxMDAwXG4gICAgICB9c2AsXG4gICAgfVxuXG4gICAgdGhpcy5yZXF1ZXN0Q2xpZW50ID0gbmV3IFBsYXRmb3JtLmFkYXB0ZXIucmVxQ2xhc3MocmVxQ29uZmlnKVxuXG4gICAgdGhpcy5jbG91ZGJhc2VDb25maWcgPSB7XG4gICAgICAuLi5ERUZBVUxUX0lOSVRfQ09ORklHLFxuICAgICAgLi4uY29uZmlnLFxuICAgICAgaTE4bjogaTE4blByb3h5KFBsYXRmb3JtLCBjb25maWcpLFxuICAgIH1cblxuICAgIGRlbGV0ZSAodGhpcy5jbG91ZGJhc2VDb25maWcgYXMgYW55KS5sYW5nXG4gICAgLy8g5L+u5q2jdGltZW91dOWPluWAvFxuICAgIHRoaXMuY2xvdWRiYXNlQ29uZmlnLnRpbWVvdXQgPSB0aGlzLmZvcm1hdFRpbWVvdXQodGhpcy5jbG91ZGJhc2VDb25maWcudGltZW91dClcbiAgICAvLyDliJ3lp4vljJZjYWNoZeWSjHJlcXVlc3RcbiAgICBjb25zdCB7IGVudiwgcGVyc2lzdGVuY2UsIGRlYnVnLCB0aW1lb3V0LCBvYXV0aENsaWVudCwgaTE4biB9ID0gdGhpcy5jbG91ZGJhc2VDb25maWdcbiAgICBpbml0Q2FjaGUoeyBlbnYsIHBlcnNpc3RlbmNlLCBkZWJ1ZywgcGxhdGZvcm1JbmZvOiB0aGlzLnBsYXRmb3JtIH0pXG5cbiAgICBzZXRSZWdpb25MZXZlbEVuZHBvaW50KGVudiwgY29uZmlnLnJlZ2lvbiB8fCAnJylcbiAgICBzZXRHYXRld2F5RW5kUG9pbnRXaXRoRW52KGVudilcblxuICAgIGNvbnN0IGFwcCA9IG5ldyBDbG91ZGJhc2UodGhpcy5jbG91ZGJhc2VDb25maWcpXG4gICAgaW5pdFJlcXVlc3QoeyBlbnYsIHJlZ2lvbjogY29uZmlnLnJlZ2lvbiB8fCAnJywgdGltZW91dCwgb2F1dGhDbGllbnQsIF9mcm9tQXBwOiBhcHAsIGkxOG4gfSlcbiAgICBhcHAucmVxdWVzdENsaWVudCA9IHRoaXMucmVxdWVzdENsaWVudFxuICAgIDsodGhpcyBhcyBhbnkpPy5maXJlPy4oJ2Nsb3VkYmFzZV9pbml0JywgYXBwKVxuICAgIHRoaXMudHJ5MkluaXRBdXRoKGNvbmZpZywgYXBwKVxuXG4gICAgcmV0dXJuIGFwcFxuICB9XG5cbiAgcHVibGljIHVwZGF0ZUNvbmZpZyhjb25maWc6IElDbG91ZGJhc2VVcGdyYWRlZENvbmZpZykge1xuICAgIGNvbnN0IHsgcGVyc2lzdGVuY2UsIGRlYnVnIH0gPSBjb25maWdcbiAgICB0aGlzLmNsb3VkYmFzZUNvbmZpZy5wZXJzaXN0ZW5jZSA9IHBlcnNpc3RlbmNlXG4gICAgdGhpcy5jbG91ZGJhc2VDb25maWcuZGVidWcgPSBkZWJ1Z1xuICAgIC8vIHBlcnNpc3RlbmNl5pS55Yqo5b2x5ZONY2FjaGVcbiAgICBpbml0Q2FjaGUoeyBlbnY6IHRoaXMuY2xvdWRiYXNlQ29uZmlnLmVudiwgcGVyc2lzdGVuY2UsIGRlYnVnLCBwbGF0Zm9ybUluZm86IHRoaXMucGxhdGZvcm0gfSlcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVMYW5nKGxhbmc6IExBTkdTKSB7XG4gICAgaWYgKCFsYW5nIHx8IGxhbmcgPT09IHRoaXMuY2xvdWRiYXNlQ29uZmlnLmkxOG4/LmxhbmcpIHJldHVyblxuXG4gICAgdGhpcy5jbG91ZGJhc2VDb25maWcuaTE4bi5sYW5nID0gbGFuZ1xuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyRXh0ZW5zaW9uKGV4dDogSUNsb3VkYmFzZUV4dGVuc2lvbikge1xuICAgIGV4dGVuc2lvbk1hcFtleHQubmFtZV0gPSBleHRcbiAgfVxuICBAY2F0Y2hFcnJvcnNEZWNvcmF0b3Ioe1xuICAgIHRpdGxlOiAn6LCD55So5omp5bGV6IO95Yqb5aSx6LSlJyxcbiAgICBtZXNzYWdlczogW1xuICAgICAgJ+ivt+ehruiupOS7peS4i+WQhOmhue+8micsXG4gICAgICAnICAxIC0g6LCD55SoIGludm9rZUV4dGVuc2lvbigpIOeahOivreazleaIluWPguaVsOaYr+WQpuato+ehricsXG4gICAgICAnICAyIC0g6KKr6LCD55So55qE5omp5bGV6IO95Yqb5piv5ZCm5bey57uP5a6J6KOF5bm26YCa6L+HIHJlZ2lzdGVyRXh0ZW5zaW9uKCkg5rOo5YaMJyxcbiAgICAgIGDlpoLmnpzpl67popjkvp3nhLblrZjlnKjvvIzlu7rorq7liLDlrpjmlrnpl67nrZTnpL7ljLrmj5Dpl67miJblr7vmib7luK7liqnvvJoke0NPTU1VTklUWV9TSVRFX1VSTH1gLFxuICAgIF0sXG4gIH0pXG4gIHB1YmxpYyBhc3luYyBpbnZva2VFeHRlbnNpb24obmFtZTogc3RyaW5nLCBvcHRzOiBhbnkpIHtcbiAgICBjb25zdCBleHQgPSBleHRlbnNpb25NYXBbbmFtZV1cbiAgICBpZiAoIWV4dCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgY29kZTogRVJST1JTLklOVkFMSURfUEFSQU1TLFxuICAgICAgICBtc2c6IGBleHRlbnNpb246JHtuYW1lfSBtdXN0IGJlIHJlZ2lzdGVyZWQgYmVmb3JlIGludm9rZWAsXG4gICAgICB9KSwpXG4gICAgfVxuXG4gICAgcmV0dXJuIGF3YWl0IGV4dC5pbnZva2Uob3B0cywgdGhpcylcbiAgfVxuXG4gIHB1YmxpYyB1c2VBZGFwdGVycyhhZGFwdGVyczogQ2xvdWRiYXNlQWRhcHRlciB8IENsb3VkYmFzZUFkYXB0ZXJbXSwgb3B0aW9ucz86IGFueSkge1xuICAgIGNvbnN0IHsgYWRhcHRlciwgcnVudGltZSB9ID0gdXNlQWRhcHRlcnMoYWRhcHRlcnMsIG9wdGlvbnMpIHx8IHt9XG4gICAgYWRhcHRlciAmJiAoUGxhdGZvcm0uYWRhcHRlciA9IGFkYXB0ZXIgYXMgU0RLQWRhcHRlckludGVyZmFjZSlcbiAgICBydW50aW1lICYmIChQbGF0Zm9ybS5ydW50aW1lID0gcnVudGltZSBhcyBzdHJpbmcpXG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJIb29rKGhvb2s6IElDbG91ZGJhc2VIb29rKSB7XG4gICAgcmVnaXN0ZXJIb29rKENsb3VkYmFzZSwgaG9vaylcbiAgfVxuXG4gIHB1YmxpYyByZWdpc3RlckNvbXBvbmVudChjb21wb25lbnQ6IElDbG91ZGJhc2VDb21wb25lbnQpIHtcbiAgICByZWdpc3RlckNvbXBvbmVudChDbG91ZGJhc2UsIGNvbXBvbmVudClcbiAgfVxuXG4gIHB1YmxpYyByZWdpc3RlclZlcnNpb24odmVyc2lvbjogc3RyaW5nKSB7XG4gICAgc2V0U2RrVmVyc2lvbih2ZXJzaW9uKVxuICAgIHRoaXMudmVyc2lvbiA9IHZlcnNpb25cbiAgfVxuXG4gIHB1YmxpYyByZWdpc3RlclNka05hbWUobmFtZTogc3RyaW5nKSB7XG4gICAgc2V0U2RrTmFtZShuYW1lKVxuICB9XG5cbiAgLyoqIOiuvue9riB0Y2IgYXBpIOeahCBlbmRwb2ludCAqL1xuICBwdWJsaWMgcmVnaXN0ZXJFbmRQb2ludCh1cmw6IHN0cmluZywgcHJvdG9jb2w/OiAnaHR0cCcgfCAnaHR0cHMnKSB7XG4gICAgc2V0RW5kUG9pbnRJbmZvKHsgYmFzZVVybDogdXJsLCBwcm90b2NvbCwgZW52OiB0aGlzLmNvbmZpZy5lbnYsIGVuZFBvaW50S2V5OiAnQ0xPVURfQVBJJyB9KVxuICB9XG5cbiAgLyoqIOiuvue9rue9keWFsy90Y2IgYXBp55qEIGVuZFBvaW5077yM6YCa6L+HIGtleSDmjIflrpogKi9cbiAgcHVibGljIHJlZ2lzdGVyRW5kUG9pbnRXaXRoS2V5KHByb3BzOiBJU2V0RW5kUG9pbnRXaXRoS2V5KSB7XG4gICAgc2V0RW5kUG9pbnRJbmZvKHtcbiAgICAgIGVudjogdGhpcy5jb25maWcuZW52LFxuICAgICAgZW5kUG9pbnRLZXk6IHByb3BzLmtleSxcbiAgICAgIGJhc2VVcmw6IHByb3BzLnVybCxcbiAgICAgIHByb3RvY29sOiBwcm9wcy5wcm90b2NvbCxcbiAgICB9KVxuICB9XG5cbiAgLyoqIOaLv+e9keWFsy90Y2IgYXBp55qEIGVuZFBvaW5077yM6YCa6L+HIGtleSDmjIflrpogKi9cbiAgcHVibGljIGdldEVuZFBvaW50V2l0aEtleShrZXk6IEVuZFBvaW50S2V5KSB7XG4gICAgY29uc3QgaW5mbyA9IGdldEVuZFBvaW50SW5mbyh0aGlzLmNvbmZpZy5lbnYsIGtleSlcbiAgICByZXR1cm4ge1xuICAgICAgQkFTRV9VUkw6IGluZm8uYmFzZVVybCxcbiAgICAgIFBST1RPQ09MOiBpbmZvLnByb3RvY29sLFxuICAgIH1cbiAgfVxuXG4gIC8vIOino+aekFVSTOWPguaVsFxuICBwdWJsaWMgcGFyc2VDYXB0Y2hhKHVybCkge1xuICAgIGxldCBxdWVyeU9iajogYW55ID0ge31cbiAgICBjb25zdCBtYXRjaGVkID0gdXJsLm1hdGNoKC9eKGRhdGE6Lio/KShcXD9bXiNcXHNdKik/JC8pXG4gICAgaWYgKG1hdGNoZWQpIHtcbiAgICAgIHVybCA9IG1hdGNoZWRbMV1cbiAgICAgIGNvbnN0IHNlYXJjaCA9IG1hdGNoZWRbMl1cbiAgICAgIGlmIChzZWFyY2gpIHtcbiAgICAgICAgcXVlcnlPYmogPSB1dGlscy5wYXJzZVF1ZXJ5U3RyaW5nKHNlYXJjaClcbiAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgeyB0b2tlbiwgLi4ucmVzdFF1ZXJ5T2JqIH0gPSBxdWVyeU9ialxuICAgIGlmICgvXmRhdGE6Ly50ZXN0KHVybCkgJiYgIXRva2VuKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBlcnJvcjogJ2ludmFsaWRfYXJndW1lbnQnLFxuICAgICAgICBlcnJvcl9kZXNjcmlwdGlvbjogYGludmFsaWQgY2FwdGNoYSBkYXRhOiAke3VybH1gLFxuICAgICAgfVxuICAgIH1cbiAgICBpZiAoIXRva2VuKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBlcnJvcjogJ3VuaW1wbGVtZW50ZWQnLFxuICAgICAgICBlcnJvcl9kZXNjcmlwdGlvbjogJ25lZWQgdG8gaW1wbCBjYXB0Y2hhIGRhdGEnLFxuICAgICAgfVxuICAgIH1cbiAgICAvLyDop6PmnpB1cmzlvpfliLDnmoTlj4LmlbBcbiAgICByZXR1cm4ge1xuICAgICAgc3RhdGU6IHJlc3RRdWVyeU9iai5zdGF0ZSxcbiAgICAgIHRva2VuLCAvLyDpqozor4HnoIF0b2tlblxuICAgICAgY2FwdGNoYURhdGE6IHVybCwgLy8g6aqM6K+B56CBYmFzZTY05Zu+54mHXG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB1c2VEZWZhdWx0QWRhcHRlcigpIHtcbiAgICBjb25zdCB7IGFkYXB0ZXIsIHJ1bnRpbWUgfSA9IHVzZURlZmF1bHRBZGFwdGVyKClcbiAgICBQbGF0Zm9ybS5hZGFwdGVyID0gYWRhcHRlciBhcyBTREtBZGFwdGVySW50ZXJmYWNlXG4gICAgUGxhdGZvcm0ucnVudGltZSA9IHJ1bnRpbWUgYXMgc3RyaW5nXG4gIH1cblxuICBwcml2YXRlIGZvcm1hdFRpbWVvdXQodGltZW91dDogbnVtYmVyKSB7XG4gICAgc3dpdGNoICh0cnVlKSB7XG4gICAgICBjYXNlIHRpbWVvdXQgPiBNQVhfVElNRU9VVDpcbiAgICAgICAgcHJpbnRXYXJuKEVSUk9SUy5JTlZBTElEX1BBUkFNUywgJ3RpbWVvdXQgaXMgZ3JlYXRlciB0aGFuIG1heGltdW0gdmFsdWVbMTBtaW5dJylcbiAgICAgICAgcmV0dXJuIE1BWF9USU1FT1VUXG4gICAgICBjYXNlIHRpbWVvdXQgPCBNSU5fVElNRU9VVDpcbiAgICAgICAgcHJpbnRXYXJuKEVSUk9SUy5JTlZBTElEX1BBUkFNUywgJ3RpbWVvdXQgaXMgbGVzcyB0aGFuIG1heGltdW0gdmFsdWVbMTAwbXNdJylcbiAgICAgICAgcmV0dXJuIE1JTl9USU1FT1VUXG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gdGltZW91dFxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdHJ5MkluaXRBdXRoKGNvbmZpZzogSUNsb3VkYmFzZUNvbmZpZywgYXBwKSB7XG4gICAgdHJ5IHtcbiAgICAgIGlmIChjb25maWcuYWNjZXNzS2V5KSB7XG4gICAgICAgIGFwcC5hdXRoKClcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5sb2coJ3RyeTJJbml0QXV0aCBlcnJvcjonLCBlcnJvcilcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IGNsb3VkYmFzZTogSUNsb3VkYmFzZSA9IG5ldyBDbG91ZGJhc2UoKVxuY2xvdWRiYXNlLnVzZUFkYXB0ZXJzKGFkYXB0ZXJGb3JXeE1wKVxuXG5leHBvcnQgZGVmYXVsdCBjbG91ZGJhc2VcbiJdfQ==
337
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGtEQUEwRTtBQVkxRSwyRUFBcUQ7QUFDckQsOENBQWtFO0FBQ2xFLDBDQUF5QztBQUd6QyxzQ0FBd0U7QUFFeEUsMENBQStEO0FBQy9ELDZDQVUyQjtBQUMzQixvQ0FBOEM7QUFDOUMsNENBQWdFO0FBQ2hFLDZDQUFvRDtBQUEzQyx5R0FBQSxlQUFlLE9BQUE7QUFDeEIsb0NBQW1DO0FBQTFCLDZGQUFBLEtBQUssT0FBQTtBQUNOLElBQUEsV0FBVyxHQUF3QixvQkFBUSxZQUFoQyxFQUFFLGlCQUFpQixHQUFLLG9CQUFRLGtCQUFiLENBQWE7QUFDM0MsSUFBQSxNQUFNLEdBQXlCLHFCQUFTLE9BQWxDLEVBQUUsa0JBQWtCLEdBQUsscUJBQVMsbUJBQWQsQ0FBYztBQUN4QyxJQUFBLFNBQVMsR0FBSyxpQkFBSyxVQUFWLENBQVU7QUFDbkIsSUFBQSxvQkFBb0IsR0FBSyxtQkFBTyxxQkFBWixDQUFZO0FBS3hDLElBQU0sbUJBQW1CLEdBQThCO0lBQ3JELE9BQU8sRUFBRSxLQUFLO0lBQ2QsV0FBVyxFQUFFLE9BQU87Q0FDckIsQ0FBQTtBQUdELElBQU0sV0FBVyxHQUFHLElBQUksR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFBO0FBRWxDLElBQU0sV0FBVyxHQUFHLEdBQUcsQ0FBQTtBQUV2QixJQUFNLFlBQVksR0FBNEIsRUFBRSxDQUFBO0FBRWhEO0lBUUUsbUJBQVksTUFBeUI7UUFDbkMsSUFBSSxDQUFDLGVBQWUsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQTtRQUM3RCxJQUFJLENBQUMsWUFBWSxHQUFHLElB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QVc7Z0JBQ3hCLFNBQVMsQ0FBQyxNQUFNLENBQUMsY0FBYyxFQUFFLDJDQUEyQyxDQUFDLENBQUE7Z0JBQzdFLE9BQU8sV0FBVyxDQUFBO1lBQ3BCO2dCQUNFLE9BQU8sT0FBTyxDQUFBO1NBQ2pCO0lBQ0gsQ0FBQztJQUVPLGdDQUFZLEdBQXBCLFVBQXFCLE1BQXdCLEVBQUUsR0FBRztRQUNoRCxJQUFJO1lBQ0YsSUFBSSxNQUFNLENBQUMsU0FBUyxFQUFFO2dCQUNwQixHQUFHLENBQUMsSUFBSSxFQUFFLENBQUE7YUFDWDtTQUNGO1FBQUMsT0FBTyxLQUFLLEVBQUU7WUFDZCxPQUFPLENBQUMsR0FBRyxDQUFDLHFCQUFxQixFQUFFLEtBQUssQ0FBQyxDQUFBO1NBQzFDO0lBQ0gsQ0FBQztJQTlMTTtRQVZOLG9CQUFvQixDQUFDO1lBQ3BCLElBQUksRUFBRSxNQUFNO1lBQ1osS0FBSyxFQUFFLGlCQUFpQjtZQUN4QixRQUFRLEVBQUU7Z0JBQ1IsVUFBVTtnQkFDVixzQ0FBc0M7Z0JBQ3RDLG1MQUFtTDtnQkFDbkwsc0tBQTZCLGtCQUFrQixDQUFFO2FBQ2xEO1NBQ0YsQ0FBQzs7O3dDQUN3RCxTQUFTO3lDQTRDbEU7SUE0Qlk7UUFUWixvQkFBb0IsQ0FBQztZQUNwQixLQUFLLEVBQUUsVUFBVTtZQUNqQixRQUFRLEVBQUU7Z0JBQ1IsVUFBVTtnQkFDVix1Q0FBdUM7Z0JBQ3ZDLGdEQUFnRDtnQkFDaEQsc0tBQTZCLGtCQUFrQixDQUFFO2FBQ2xEO1NBQ0YsQ0FBQzs7OztvREFXRDtJQTZHSCxnQkFBQztDQUFBLEFBaFBELElBZ1BDO0FBRVksUUFBQSxTQUFTLEdBQWUsSUFBSSxTQUFTLEVBQUUsQ0FBQTtBQUNwRCxpQkFBUyxDQUFDLFdBQVcsQ0FBQyx1QkFBYyxDQUFDLENBQUE7QUFFckMsa0JBQWUsaUJBQVMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFkYXB0ZXJzLCBjb25zdGFudHMsIHV0aWxzLCBoZWxwZXJzIH0gZnJvbSAnQGNsb3VkYmFzZS91dGlsaXRpZXMnXG5pbXBvcnQgeyBTREtBZGFwdGVySW50ZXJmYWNlLCBDbG91ZGJhc2VBZGFwdGVyLCBJUmVxdWVzdENvbmZpZyB9IGZyb20gJ0BjbG91ZGJhc2UvYWRhcHRlci1pbnRlcmZhY2UnXG5pbXBvcnQge1xuICBJQ2xvdWRiYXNlQ29uZmlnLFxuICBJQ2xvdWRiYXNlVXBncmFkZWRDb25maWcsXG4gIElDbG91ZGJhc2UsXG4gIElDbG91ZGJhc2VFeHRlbnNpb24sXG4gIEtWLFxuICBJQ2xvdWRiYXNlUGxhdGZvcm1JbmZvLFxuICBFbmRQb2ludEtleSxcbn0gZnJvbSAnQGNsb3VkYmFzZS90eXBlcydcbmltcG9ydCB7IElDbG91ZGJhc2VBdXRoIH0gZnJvbSAnQGNsb3VkYmFzZS90eXBlcy9hdXRoJ1xuaW1wb3J0IGFkYXB0ZXJGb3JXeE1wIGZyb20gJ0BjbG91ZGJhc2UvYWRhcHRlci13eF9tcCdcbmltcG9ydCB7IHJlZ2lzdGVyQ29tcG9uZW50LCByZWdpc3Rlckhvb2sgfSBmcm9tICcuL2xpYnMvY29tcG9uZW50J1xuaW1wb3J0IHsgUGxhdGZvcm0gfSBmcm9tICcuL2xpYnMvYWRhcHRlcidcbmltcG9ydCB7IElDbG91ZGJhc2VDb21wb25lbnQsIElDbG91ZGJhc2VIb29rIH0gZnJvbSAnQGNsb3VkYmFzZS90eXBlcy9jb21wb25lbnQnXG5pbXBvcnQgeyBJQ2xvdWRiYXNlQ2FjaGUgfSBmcm9tICdAY2xvdWRiYXNlL3R5cGVzL2NhY2hlJ1xuaW1wb3J0IHsgaW5pdENhY2hlLCBnZXRDYWNoZUJ5RW52SWQsIGdldExvY2FsQ2FjaGUgfSBmcm9tICcuL2xpYnMvY2FjaGUnXG5pbXBvcnQgeyBJQ2xvdWRiYXNlUmVxdWVzdCB9IGZyb20gJ0BjbG91ZGJhc2UvdHlwZXMvcmVxdWVzdCdcbmltcG9ydCB7IGluaXRSZXF1ZXN0LCBnZXRSZXF1ZXN0QnlFbnZJZCB9IGZyb20gJy4vbGlicy9yZXF1ZXN0J1xuaW1wb3J0IHtcbiAgZ2V0U2RrTmFtZSxcbiAgc2V0U2RrVmVyc2lvbixcbiAgc2V0UmVnaW9uTGV2ZWxFbmRwb2ludCxcbiAgc2V0U2RrTmFtZSxcbiAgc2V0R2F0ZXdheUVuZFBvaW50V2l0aEVudixcbiAgdHlwZSBJU2V0RW5kUG9pbnRXaXRoS2V5LFxuICBzZXRFbmRQb2ludEluZm8sXG4gIGdldEVuZFBvaW50SW5mbyxcbiAgZ2V0U2RrVmVyc2lvbixcbn0gZnJvbSAnLi9jb25zdGFudHMvY29tbW9uJ1xuaW1wb3J0IHsgaTE4blByb3h5LCBMQU5HUyB9IGZyb20gJy4vbGlicy9sYW5nJ1xuaW1wb3J0IHsgZ2VuZXJhdGVBcGlzLCBnZW5lcmF0ZUNhbGxBcGlzIH0gZnJvbSAnLi9saWJzL2NhbGxBcGlzJ1xuZXhwb3J0IHsgZ2V0QmFzZUVuZFBvaW50IH0gZnJvbSAnLi9jb25zdGFudHMvY29tbW9uJ1xuZXhwb3J0IHsgTEFOR1MgfSBmcm9tICcuL2xpYnMvbGFuZydcbmNvbnN0IHsgdXNlQWRhcHRlcnMsIHVzZURlZmF1bHRBZGFwdGVyIH0gPSBhZGFwdGVyc1xuY29uc3QgeyBFUlJPUlMsIENPTU1VTklUWV9TSVRFX1VSTCB9ID0gY29uc3RhbnRzXG5jb25zdCB7IHByaW50V2FybiB9ID0gdXRpbHNcbmNvbnN0IHsgY2F0Y2hFcnJvcnNEZWNvcmF0b3IgfSA9IGhlbHBlcnNcblxuLyoqXG4gKiBAY29uc3RhbnQg6buY6K6k6YWN572uXG4gKi9cbmNvbnN0IERFRkFVTFRfSU5JVF9DT05GSUc6IFBhcnRpYWw8SUNsb3VkYmFzZUNvbmZpZz4gPSB7XG4gIHRpbWVvdXQ6IDE1MDAwLFxuICBwZXJzaXN0ZW5jZTogJ2xvY2FsJywgLy8g5oyB5LmF5YyW5a2Y5YKo57G75Z6LXG59XG5cbi8vIHRpbWVvdXTkuIrpmZAxMOWIhumSn1xuY29uc3QgTUFYX1RJTUVPVVQgPSAxMDAwICogNjAgKiAxMFxuLy8gdGltZW91dOS4i+mZkDEwMG1zXG5jb25zdCBNSU5fVElNRU9VVCA9IDEwMFxuXG5jb25zdCBleHRlbnNpb25NYXA6IEtWPElDbG91ZGJhc2VFeHRlbnNpb24+ID0ge31cblxuY2xhc3MgQ2xvdWRiYXNlIGltcGxlbWVudHMgSUNsb3VkYmFzZSB7XG4gIHB1YmxpYyBhdXRoSW5zdGFuY2U6IElDbG91ZGJhc2VBdXRoXG4gIHB1YmxpYyBvYXV0aEluc3RhbmNlOiBhbnlcbiAgcHVibGljIHJlcXVlc3RDbGllbnQ6IGFueVxuICBwdWJsaWMgb2F1dGhDbGllbnQ6IGFueVxuICBwdWJsaWMgdmVyc2lvbjogc3RyaW5nXG4gIHByaXZhdGUgY2xvdWRiYXNlQ29uZmlnOiBJQ2xvdWRiYXNlQ29uZmlnXG5cbiAgY29uc3RydWN0b3IoY29uZmlnPzogSUNsb3VkYmFzZUNvbmZpZykge1xuICAgIHRoaXMuY2xvdWRiYXNlQ29uZmlnID0gY29uZmlnID8gY29uZmlnIDogdGhpcy5jbG91ZGJhc2VDb25maWdcbiAgICB0aGlzLmF1dGhJbnN0YW5jZSA9IG51bGxcbiAgICB0aGlzLm9hdXRoSW5zdGFuY2UgPSBudWxsXG4gICAgdGhpcy52ZXJzaW9uID0gZ2V0U2RrVmVyc2lvbigpXG4gIH1cblxuICBnZXQgY29uZmlnKCkge1xuICAgIHJldHVybiB0aGlzLmNsb3VkYmFzZUNvbmZpZ1xuICB9XG5cbiAgZ2V0IHBsYXRmb3JtKCk6IElDbG91ZGJhc2VQbGF0Zm9ybUluZm8ge1xuICAgIHJldHVybiBQbGF0Zm9ybVxuICB9XG5cbiAgZ2V0IGNhY2hlKCk6IElDbG91ZGJhc2VDYWNoZSB7XG4gICAgcmV0dXJuIGdldENhY2hlQnlFbnZJZCh0aGlzLmNsb3VkYmFzZUNvbmZpZy5lbnYpXG4gIH1cblxuICBnZXQgbG9jYWxDYWNoZSgpOiBJQ2xvdWRiYXNlQ2FjaGUge1xuICAgIHJldHVybiBnZXRMb2NhbENhY2hlKHRoaXMuY2xvdWRiYXNlQ29uZmlnLmVudilcbiAgfVxuXG4gIGdldCByZXF1ZXN0KCk6IElDbG91ZGJhc2VSZXF1ZXN0IHtcbiAgICByZXR1cm4gZ2V0UmVxdWVzdEJ5RW52SWQodGhpcy5jbG91ZGJhc2VDb25maWcuZW52KVxuICB9XG5cbiAgZ2V0IGFwaXMoKTogeyBba2V5OiBzdHJpbmddOiB0eXBlb2YgZ2VuZXJhdGVDYWxsQXBpcyB9IHtcbiAgICByZXR1cm4gZ2VuZXJhdGVBcGlzLmNhbGwodGhpcylcbiAgfVxuXG4gIEBjYXRjaEVycm9yc0RlY29yYXRvcih7XG4gICAgbW9kZTogJ3N5bmMnLFxuICAgIHRpdGxlOiAnQ2xvdWRiYXNlIOWIneWni+WMluWksei0pScsXG4gICAgbWVzc2FnZXM6IFtcbiAgICAgICfor7fnoa7orqTku6XkuIvlkITpobnvvJonLFxuICAgICAgJyAgMSAtIOiwg+eUqCBjbG91ZGJhc2UuaW5pdCgpIOeahOivreazleaIluWPguaVsOaYr+WQpuato+ehricsXG4gICAgICAnICAyIC0g5aaC5p6c5piv6Z2e5rWP6KeI5Zmo546v5aKD77yM5piv5ZCm6YWN572u5LqG5a6J5YWo5bqU55So5p2l5rqQ77yIaHR0cHM6Ly9kb2NzLmNsb3VkYmFzZS5uZXQvYXBpLXJlZmVyZW5jZS93ZWJ2My9hZGFwdGVyIyVFNyVBQyVBQy0yLSVFNiVBRCVBNSVFOSU4NSU4RCVFNyVCRCVBRSVFNSVBRSU4OSVFNSU4NSVBOCVFNSVCQSU5NCVFNyU5NCVBOCVFNiU5RCVBNSVFNiVCQSU5MO+8iScsXG4gICAgICBg5aaC5p6c6Zeu6aKY5L6d54S25a2Y5Zyo77yM5bu66K6u5Yiw5a6Y5pa56Zeu562U56S+5Yy65o+Q6Zeu5oiW5a+75om+5biu5Yqp77yaJHtDT01NVU5JVFlfU0lURV9VUkx9YCxcbiAgICBdLFxuICB9KVxuICBwdWJsaWMgaW5pdChjb25maWc6IElDbG91ZGJhc2VDb25maWcgJiB7IGxhbmc/OiBMQU5HUyB9KTogQ2xvdWRiYXNlIHtcbiAgICBpZiAoIWNvbmZpZy5lbnYpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgIGNvZGU6IEVSUk9SUy5JTlZBTElEX1BBUkFNUyxcbiAgICAgICAgbXNnOiAnZW52IG11c3Qgbm90IGJlIHNwZWNpZmllZCcsXG4gICAgICB9KSwpXG4gICAgfVxuICAgIC8vIOWIneWni+WMluaXtuiLpeacquWFvOWuueW5s+WPsO+8jOWImeS9v+eUqOm7mOiupGFkYXB0ZXJcbiAgICBpZiAoIVBsYXRmb3JtLmFkYXB0ZXIpIHtcbiAgICAgIHRoaXMudXNlRGVmYXVsdEFkYXB0ZXIoKVxuICAgIH1cblxuICAgIGNvbnN0IHJlcUNvbmZpZzogSVJlcXVlc3RDb25maWcgPSB7XG4gICAgICB0aW1lb3V0OiBjb25maWcudGltZW91dCB8fCA1MDAwLFxuICAgICAgdGltZW91dE1zZzogYFske2dldFNka05hbWUoKX1dW1JFUVVFU1QgVElNRU9VVF0gcmVxdWVzdCBoYWQgYmVlbiBhYm9ydCBzaW5jZSBkaWRuJ3QgZmluaXNoZWQgd2l0aGluJHtcbiAgICAgICAgY29uZmlnLnRpbWVvdXQgLyAxMDAwXG4gICAgICB9c2AsXG4gICAgfVxuXG4gICAgdGhpcy5yZXF1ZXN0Q2xpZW50ID0gbmV3IFBsYXRmb3JtLmFkYXB0ZXIucmVxQ2xhc3MocmVxQ29uZmlnKVxuXG4gICAgdGhpcy5jbG91ZGJhc2VDb25maWcgPSB7XG4gICAgICAuLi5ERUZBVUxUX0lOSVRfQ09ORklHLFxuICAgICAgLi4uY29uZmlnLFxuICAgICAgaTE4bjogaTE4blByb3h5KFBsYXRmb3JtLCBjb25maWcpLFxuICAgIH1cblxuICAgIGRlbGV0ZSAodGhpcy5jbG91ZGJhc2VDb25maWcgYXMgYW55KS5sYW5nXG4gICAgLy8g5L+u5q2jdGltZW91dOWPluWAvFxuICAgIHRoaXMuY2xvdWRiYXNlQ29uZmlnLnRpbWVvdXQgPSB0aGlzLmZvcm1hdFRpbWVvdXQodGhpcy5jbG91ZGJhc2VDb25maWcudGltZW91dClcbiAgICAvLyDliJ3lp4vljJZjYWNoZeWSjHJlcXVlc3RcbiAgICBjb25zdCB7IGVudiwgcGVyc2lzdGVuY2UsIGRlYnVnLCB0aW1lb3V0LCBvYXV0aENsaWVudCwgaTE4biB9ID0gdGhpcy5jbG91ZGJhc2VDb25maWdcbiAgICBpbml0Q2FjaGUoeyBlbnYsIHBlcnNpc3RlbmNlLCBkZWJ1ZywgcGxhdGZvcm1JbmZvOiB0aGlzLnBsYXRmb3JtIH0pXG5cbiAgICBzZXRSZWdpb25MZXZlbEVuZHBvaW50KGVudiwgY29uZmlnLnJlZ2lvbiB8fCAnJylcbiAgICBzZXRHYXRld2F5RW5kUG9pbnRXaXRoRW52KGVudilcblxuICAgIGNvbnN0IGFwcCA9IG5ldyBDbG91ZGJhc2UodGhpcy5jbG91ZGJhc2VDb25maWcpXG4gICAgaW5pdFJlcXVlc3QoeyBlbnYsIHJlZ2lvbjogY29uZmlnLnJlZ2lvbiB8fCAnJywgdGltZW91dCwgb2F1dGhDbGllbnQsIF9mcm9tQXBwOiBhcHAsIGkxOG4sIGVuZFBvaW50TW9kZTogY29uZmlnLmVuZFBvaW50TW9kZSB9KVxuICAgIGFwcC5yZXF1ZXN0Q2xpZW50ID0gdGhpcy5yZXF1ZXN0Q2xpZW50XG4gICAgOyh0aGlzIGFzIGFueSk/LmZpcmU/LignY2xvdWRiYXNlX2luaXQnLCBhcHApXG4gICAgdGhpcy50cnkySW5pdEF1dGgoY29uZmlnLCBhcHApXG5cbiAgICByZXR1cm4gYXBwXG4gIH1cblxuICBwdWJsaWMgdXBkYXRlQ29uZmlnKGNvbmZpZzogSUNsb3VkYmFzZVVwZ3JhZGVkQ29uZmlnKSB7XG4gICAgY29uc3QgeyBwZXJzaXN0ZW5jZSwgZGVidWcgfSA9IGNvbmZpZ1xuICAgIHRoaXMuY2xvdWRiYXNlQ29uZmlnLnBlcnNpc3RlbmNlID0gcGVyc2lzdGVuY2VcbiAgICB0aGlzLmNsb3VkYmFzZUNvbmZpZy5kZWJ1ZyA9IGRlYnVnXG4gICAgLy8gcGVyc2lzdGVuY2XmlLnliqjlvbHlk41jYWNoZVxuICAgIGluaXRDYWNoZSh7IGVudjogdGhpcy5jbG91ZGJhc2VDb25maWcuZW52LCBwZXJzaXN0ZW5jZSwgZGVidWcsIHBsYXRmb3JtSW5mbzogdGhpcy5wbGF0Zm9ybSB9KVxuICB9XG5cbiAgcHVibGljIHVwZGF0ZUxhbmcobGFuZzogTEFOR1MpIHtcbiAgICBpZiAoIWxhbmcgfHwgbGFuZyA9PT0gdGhpcy5jbG91ZGJhc2VDb25maWcuaTE4bj8ubGFuZykgcmV0dXJuXG5cbiAgICB0aGlzLmNsb3VkYmFzZUNvbmZpZy5pMThuLmxhbmcgPSBsYW5nXG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJFeHRlbnNpb24oZXh0OiBJQ2xvdWRiYXNlRXh0ZW5zaW9uKSB7XG4gICAgZXh0ZW5zaW9uTWFwW2V4dC5uYW1lXSA9IGV4dFxuICB9XG4gIEBjYXRjaEVycm9yc0RlY29yYXRvcih7XG4gICAgdGl0bGU6ICfosIPnlKjmianlsZXog73lipvlpLHotKUnLFxuICAgIG1lc3NhZ2VzOiBbXG4gICAgICAn6K+356Gu6K6k5Lul5LiL5ZCE6aG577yaJyxcbiAgICAgICcgIDEgLSDosIPnlKggaW52b2tlRXh0ZW5zaW9uKCkg55qE6K+t5rOV5oiW5Y+C5pWw5piv5ZCm5q2j56GuJyxcbiAgICAgICcgIDIgLSDooqvosIPnlKjnmoTmianlsZXog73lipvmmK/lkKblt7Lnu4/lronoo4XlubbpgJrov4cgcmVnaXN0ZXJFeHRlbnNpb24oKSDms6jlhownLFxuICAgICAgYOWmguaenOmXrumimOS+neeEtuWtmOWcqO+8jOW7uuiuruWIsOWumOaWuemXruetlOekvuWMuuaPkOmXruaIluWvu+aJvuW4ruWKqe+8miR7Q09NTVVOSVRZX1NJVEVfVVJMfWAsXG4gICAgXSxcbiAgfSlcbiAgcHVibGljIGFzeW5jIGludm9rZUV4dGVuc2lvbihuYW1lOiBzdHJpbmcsIG9wdHM6IGFueSkge1xuICAgIGNvbnN0IGV4dCA9IGV4dGVuc2lvbk1hcFtuYW1lXVxuICAgIGlmICghZXh0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICBjb2RlOiBFUlJPUlMuSU5WQUxJRF9QQVJBTVMsXG4gICAgICAgIG1zZzogYGV4dGVuc2lvbjoke25hbWV9IG11c3QgYmUgcmVnaXN0ZXJlZCBiZWZvcmUgaW52b2tlYCxcbiAgICAgIH0pLClcbiAgICB9XG5cbiAgICByZXR1cm4gYXdhaXQgZXh0Lmludm9rZShvcHRzLCB0aGlzKVxuICB9XG5cbiAgcHVibGljIHVzZUFkYXB0ZXJzKGFkYXB0ZXJzOiBDbG91ZGJhc2VBZGFwdGVyIHwgQ2xvdWRiYXNlQWRhcHRlcltdLCBvcHRpb25zPzogYW55KSB7XG4gICAgY29uc3QgeyBhZGFwdGVyLCBydW50aW1lIH0gPSB1c2VBZGFwdGVycyhhZGFwdGVycywgb3B0aW9ucykgfHwge31cbiAgICBhZGFwdGVyICYmIChQbGF0Zm9ybS5hZGFwdGVyID0gYWRhcHRlciBhcyBTREtBZGFwdGVySW50ZXJmYWNlKVxuICAgIHJ1bnRpbWUgJiYgKFBsYXRmb3JtLnJ1bnRpbWUgPSBydW50aW1lIGFzIHN0cmluZylcbiAgfVxuXG4gIHB1YmxpYyByZWdpc3Rlckhvb2soaG9vazogSUNsb3VkYmFzZUhvb2spIHtcbiAgICByZWdpc3Rlckhvb2soQ2xvdWRiYXNlLCBob29rKVxuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyQ29tcG9uZW50KGNvbXBvbmVudDogSUNsb3VkYmFzZUNvbXBvbmVudCkge1xuICAgIHJlZ2lzdGVyQ29tcG9uZW50KENsb3VkYmFzZSwgY29tcG9uZW50KVxuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyVmVyc2lvbih2ZXJzaW9uOiBzdHJpbmcpIHtcbiAgICBzZXRTZGtWZXJzaW9uKHZlcnNpb24pXG4gICAgdGhpcy52ZXJzaW9uID0gdmVyc2lvblxuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyU2RrTmFtZShuYW1lOiBzdHJpbmcpIHtcbiAgICBzZXRTZGtOYW1lKG5hbWUpXG4gIH1cblxuICAvKiog6K6+572uIHRjYiBhcGkg55qEIGVuZHBvaW50ICovXG4gIHB1YmxpYyByZWdpc3RlckVuZFBvaW50KHVybDogc3RyaW5nLCBwcm90b2NvbD86ICdodHRwJyB8ICdodHRwcycpIHtcbiAgICBzZXRFbmRQb2ludEluZm8oeyBiYXNlVXJsOiB1cmwsIHByb3RvY29sLCBlbnY6IHRoaXMuY29uZmlnLmVudiwgZW5kUG9pbnRLZXk6ICdDTE9VRF9BUEknIH0pXG4gIH1cblxuICAvKiog6K6+572u572R5YWzL3RjYiBhcGnnmoQgZW5kUG9pbnTvvIzpgJrov4cga2V5IOaMh+WumiAqL1xuICBwdWJsaWMgcmVnaXN0ZXJFbmRQb2ludFdpdGhLZXkocHJvcHM6IElTZXRFbmRQb2ludFdpdGhLZXkpIHtcbiAgICBzZXRFbmRQb2ludEluZm8oe1xuICAgICAgZW52OiB0aGlzLmNvbmZpZy5lbnYsXG4gICAgICBlbmRQb2ludEtleTogcHJvcHMua2V5LFxuICAgICAgYmFzZVVybDogcHJvcHMudXJsLFxuICAgICAgcHJvdG9jb2w6IHByb3BzLnByb3RvY29sLFxuICAgIH0pXG4gIH1cblxuICAvKiog5ou/572R5YWzL3RjYiBhcGnnmoQgZW5kUG9pbnTvvIzpgJrov4cga2V5IOaMh+WumiAqL1xuICBwdWJsaWMgZ2V0RW5kUG9pbnRXaXRoS2V5KGtleTogRW5kUG9pbnRLZXkpIHtcbiAgICBjb25zdCBpbmZvID0gZ2V0RW5kUG9pbnRJbmZvKHRoaXMuY29uZmlnLmVudiwga2V5KVxuICAgIHJldHVybiB7XG4gICAgICBCQVNFX1VSTDogaW5mby5iYXNlVXJsLFxuICAgICAgUFJPVE9DT0w6IGluZm8ucHJvdG9jb2wsXG4gICAgfVxuICB9XG5cbiAgLy8g6Kej5p6QVVJM5Y+C5pWwXG4gIHB1YmxpYyBwYXJzZUNhcHRjaGEodXJsKSB7XG4gICAgbGV0IHF1ZXJ5T2JqOiBhbnkgPSB7fVxuICAgIGNvbnN0IG1hdGNoZWQgPSB1cmwubWF0Y2goL14oZGF0YTouKj8pKFxcP1teI1xcc10qKT8kLylcbiAgICBpZiAobWF0Y2hlZCkge1xuICAgICAgdXJsID0gbWF0Y2hlZFsxXVxuICAgICAgY29uc3Qgc2VhcmNoID0gbWF0Y2hlZFsyXVxuICAgICAgaWYgKHNlYXJjaCkge1xuICAgICAgICBxdWVyeU9iaiA9IHV0aWxzLnBhcnNlUXVlcnlTdHJpbmcoc2VhcmNoKVxuICAgICAgfVxuICAgIH1cbiAgICBjb25zdCB7IHRva2VuLCAuLi5yZXN0UXVlcnlPYmogfSA9IHF1ZXJ5T2JqXG4gICAgaWYgKC9eZGF0YTovLnRlc3QodXJsKSAmJiAhdG9rZW4pIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGVycm9yOiAnaW52YWxpZF9hcmd1bWVudCcsXG4gICAgICAgIGVycm9yX2Rlc2NyaXB0aW9uOiBgaW52YWxpZCBjYXB0Y2hhIGRhdGE6ICR7dXJsfWAsXG4gICAgICB9XG4gICAgfVxuICAgIGlmICghdG9rZW4pIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGVycm9yOiAndW5pbXBsZW1lbnRlZCcsXG4gICAgICAgIGVycm9yX2Rlc2NyaXB0aW9uOiAnbmVlZCB0byBpbXBsIGNhcHRjaGEgZGF0YScsXG4gICAgICB9XG4gICAgfVxuICAgIC8vIOino+aekHVybOW+l+WIsOeahOWPguaVsFxuICAgIHJldHVybiB7XG4gICAgICBzdGF0ZTogcmVzdFF1ZXJ5T2JqLnN0YXRlLFxuICAgICAgdG9rZW4sIC8vIOmqjOivgeeggXRva2VuXG4gICAgICBjYXB0Y2hhRGF0YTogdXJsLCAvLyDpqozor4HnoIFiYXNlNjTlm77niYdcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHVzZURlZmF1bHRBZGFwdGVyKCkge1xuICAgIGNvbnN0IHsgYWRhcHRlciwgcnVudGltZSB9ID0gdXNlRGVmYXVsdEFkYXB0ZXIoKVxuICAgIFBsYXRmb3JtLmFkYXB0ZXIgPSBhZGFwdGVyIGFzIFNES0FkYXB0ZXJJbnRlcmZhY2VcbiAgICBQbGF0Zm9ybS5ydW50aW1lID0gcnVudGltZSBhcyBzdHJpbmdcbiAgfVxuXG4gIHByaXZhdGUgZm9ybWF0VGltZW91dCh0aW1lb3V0OiBudW1iZXIpIHtcbiAgICBzd2l0Y2ggKHRydWUpIHtcbiAgICAgIGNhc2UgdGltZW91dCA+IE1BWF9USU1FT1VUOlxuICAgICAgICBwcmludFdhcm4oRVJST1JTLklOVkFMSURfUEFSQU1TLCAndGltZW91dCBpcyBncmVhdGVyIHRoYW4gbWF4aW11bSB2YWx1ZVsxMG1pbl0nKVxuICAgICAgICByZXR1cm4gTUFYX1RJTUVPVVRcbiAgICAgIGNhc2UgdGltZW91dCA8IE1JTl9USU1FT1VUOlxuICAgICAgICBwcmludFdhcm4oRVJST1JTLklOVkFMSURfUEFSQU1TLCAndGltZW91dCBpcyBsZXNzIHRoYW4gbWF4aW11bSB2YWx1ZVsxMDBtc10nKVxuICAgICAgICByZXR1cm4gTUlOX1RJTUVPVVRcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiB0aW1lb3V0XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB0cnkySW5pdEF1dGgoY29uZmlnOiBJQ2xvdWRiYXNlQ29uZmlnLCBhcHApIHtcbiAgICB0cnkge1xuICAgICAgaWYgKGNvbmZpZy5hY2Nlc3NLZXkpIHtcbiAgICAgICAgYXBwLmF1dGgoKVxuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmxvZygndHJ5MkluaXRBdXRoIGVycm9yOicsIGVycm9yKVxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgY29uc3QgY2xvdWRiYXNlOiBJQ2xvdWRiYXNlID0gbmV3IENsb3VkYmFzZSgpXG5jbG91ZGJhc2UudXNlQWRhcHRlcnMoYWRhcHRlckZvcld4TXApXG5cbmV4cG9ydCBkZWZhdWx0IGNsb3VkYmFzZVxuIl19
@@ -206,9 +206,9 @@ var CloudbaseRequest = (function () {
206
206
  CloudbaseRequest.prototype.request = function (action, params, options) {
207
207
  var _a, _b;
208
208
  return __awaiter(this, void 0, void 0, function () {
209
- var tcbTraceKey, contentType, tmpObj, app, oauthInstance, oauthClient, _c, payload, opts, traceHeader, parse, inQuery, search, formatQuery, _d, BASE_URL, PROTOCOL, newUrl, res, resTraceHeader;
210
- return __generator(this, function (_e) {
211
- switch (_e.label) {
209
+ var tcbTraceKey, contentType, tmpObj, app, oauthInstance, oauthClient, _c, payload, opts, traceHeader, parse, inQuery, search, formatQuery, endPointMode, url, BASE_URL, PROTOCOL, newUrl, res, resTraceHeader;
210
+ return __generator(this, function (_d) {
211
+ switch (_d.label) {
212
212
  case 0:
213
213
  tcbTraceKey = "x-tcb-trace_".concat(this.config.env);
214
214
  contentType = 'application/x-www-form-urlencoded';
@@ -223,8 +223,8 @@ var CloudbaseRequest = (function () {
223
223
  _c = tmpObj;
224
224
  return [4, this.getOauthAccessTokenV2(oauthClient)];
225
225
  case 1:
226
- _c.access_token = (_e.sent()).accessToken;
227
- _e.label = 2;
226
+ _c.access_token = (_d.sent()).accessToken;
227
+ _d.label = 2;
228
228
  case 2:
229
229
  if (action === 'storage.uploadFile') {
230
230
  payload = new FormData();
@@ -264,9 +264,15 @@ var CloudbaseRequest = (function () {
264
264
  parse && (formatQuery.parse = true);
265
265
  inQuery
266
266
  && (formatQuery = __assign(__assign({}, inQuery), formatQuery));
267
- _d = (0, common_1.getEndPointInfo)(this.config.env, 'CLOUD_API'), BASE_URL = _d.baseUrl, PROTOCOL = _d.protocol;
267
+ endPointMode = this.config.endPointMode || 'CLOUD_API';
268
+ url = (0, common_1.getEndPointInfo)(this.config.env, endPointMode);
269
+ BASE_URL = url.baseUrl;
270
+ PROTOCOL = url.protocol;
271
+ if (action === 'functions.invokeFunction' && endPointMode === 'GATEWAY') {
272
+ BASE_URL = "".concat(BASE_URL.match(/\/\/([^/?#]*)/)[0], "/web");
273
+ }
268
274
  if (options.pathname) {
269
- newUrl = formatUrl(PROTOCOL, "".concat((_a = (0, common_1.getBaseEndPoint)(this.config.env)) === null || _a === void 0 ? void 0 : _a.replace(/^https?:/, ''), "/").concat(options.pathname), formatQuery);
275
+ newUrl = formatUrl(PROTOCOL, "".concat((_a = (0, common_1.getBaseEndPoint)(this.config.env, endPointMode)) === null || _a === void 0 ? void 0 : _a.replace(/^https?:/, ''), "/").concat(options.pathname), formatQuery);
270
276
  }
271
277
  else {
272
278
  newUrl = formatUrl(PROTOCOL, BASE_URL, formatQuery);
@@ -276,7 +282,7 @@ var CloudbaseRequest = (function () {
276
282
  }
277
283
  return [4, this.post(__assign({ url: newUrl, data: payload }, opts))];
278
284
  case 3:
279
- res = _e.sent();
285
+ res = _d.sent();
280
286
  resTraceHeader = (_b = res.header) === null || _b === void 0 ? void 0 : _b['x-tcb-trace'];
281
287
  if (resTraceHeader) {
282
288
  this.localCache.setStore(tcbTraceKey, resTraceHeader);
@@ -388,4 +394,4 @@ function getRequestByEnvId(env) {
388
394
  return requestMap[env];
389
395
  }
390
396
  exports.getRequestByEnvId = getRequestByEnvId;
391
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWJzL3JlcXVlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDhDQUFtRztBQVNuRyxrREFBa0U7QUFTbEUsaUNBQXVDO0FBQ3ZDLHFDQUFvQztBQUM1QixJQUFBLE1BQU0sR0FBSyxxQkFBUyxPQUFkLENBQWM7QUFDcEIsSUFBQSxRQUFRLEdBQTRCLGlCQUFLLFNBQWpDLEVBQUUsVUFBVSxHQUFnQixpQkFBSyxXQUFyQixFQUFFLFNBQVMsR0FBSyxpQkFBSyxVQUFWLENBQVU7QUFHakQsSUFBTSwyQkFBMkIsR0FBRztJQUNsQyxhQUFhO0lBQ2IsYUFBYTtJQUNiLHVCQUF1QjtJQUN2Qix3QkFBd0I7SUFDeEIsYUFBYTtJQUNiLHVDQUF1QztJQUN2QyxpQ0FBaUM7SUFDakMsMEJBQTBCO0lBQzFCLDZCQUE2QjtJQUM3Qiw2QkFBNkI7SUFDN0IsMkJBQTJCO0NBQzVCLENBQUE7QUFFRCxTQUFTLFNBQVMsQ0FBQyxRQUE2QixFQUFFLElBQVksRUFBRSxLQUEyQjtJQUN6RixJQUFNLFlBQVksR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDbkMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLFVBQVUsT0FBd0I7UUFDakQsSUFBTSxJQUFJLEdBQUcsRUFBRSxDQUFBO1FBQ2YsSUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFBO1FBQ2xCLEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBQyxJQUFJO1lBQ1gsSUFBQSxLQUFtRCxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsRUFBdkUsWUFBWSxVQUFBLEVBQVcsZUFBZSxhQUFpQyxDQUFBO1lBQ3JGLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLFlBQVksQ0FBQyxDQUFB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QUUsQ0FBQTtBQUUzQyxTQUFnQixXQUFXLENBQUMsTUFBK0I7SUFDekQsVUFBVSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLGdCQUFnQix1QkFDeEMsTUFBTSxLQUNULEtBQUssRUFBRSxJQUFJLElBQ1gsQ0FBQTtBQUNKLENBQUM7QUFMRCxrQ0FLQztBQUVELFNBQWdCLGlCQUFpQixDQUFDLEdBQVc7SUFDM0MsT0FBTyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUE7QUFDeEIsQ0FBQztBQUZELDhDQUVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgREFUQV9WRVJTSU9OLCBnZXRTZGtWZXJzaW9uLCBnZXRCYXNlRW5kUG9pbnQsIGdldEVuZFBvaW50SW5mbyB9IGZyb20gJy4uL2NvbnN0YW50cy9jb21tb24nXG5pbXBvcnQge1xuICBJUmVxdWVzdE9wdGlvbnMsXG4gIFNES1JlcXVlc3RJbnRlcmZhY2UsXG4gIFJlc3BvbnNlT2JqZWN0LFxuICBJVXBsb2FkUmVxdWVzdE9wdGlvbnMsXG4gIElSZXF1ZXN0Q29uZmlnLFxuICBJRmV0Y2hPcHRpb25zLFxufSBmcm9tICdAY2xvdWRiYXNlL2FkYXB0ZXItaW50ZXJmYWNlJ1xuaW1wb3J0IHsgdXRpbHMsIGNvbnN0YW50cywgbGFuZ0V2ZW50IH0gZnJvbSAnQGNsb3VkYmFzZS91dGlsaXRpZXMnXG5pbXBvcnQgeyBFbmRQb2ludEtleSwgS1YgfSBmcm9tICdAY2xvdWRiYXNlL3R5cGVzJ1xuaW1wb3J0IHtcbiAgSUdldEFjY2Vzc1Rva2VuUmVzdWx0LFxuICBJQ2xvdWRiYXNlUmVxdWVzdENvbmZpZyxcbiAgSUFwcGVuZGVkUmVxdWVzdEluZm8sXG4gIElSZXF1ZXN0QmVmb3JlSG9vayxcbn0gZnJvbSAnQGNsb3VkYmFzZS90eXBlcy9yZXF1ZXN0J1xuaW1wb3J0IHsgSUNsb3VkYmFzZUNhY2hlIH0gZnJvbSAnQGNsb3VkYmFzZS90eXBlcy9jYWNoZSdcbmltcG9ydCB7IGdldExvY2FsQ2FjaGUgfSBmcm9tICcuL2NhY2hlJ1xuaW1wb3J0IHsgUGxhdGZvcm0gfSBmcm9tICcuL2FkYXB0ZXInXG5jb25zdCB7IEVSUk9SUyB9ID0gY29uc3RhbnRzXG5jb25zdCB7IGdlblNlcUlkLCBpc0Zvcm1EYXRhLCBmb3JtYXRVcmwgfSA9IHV0aWxzXG5cbi8vIOS4i+mdouWHoOenjSBhY3Rpb24g5LiN6ZyA6KaBIGFjY2VzcyB0b2tlblxuY29uc3QgQUNUSU9OU19XSVRIT1VUX0FDQ0VTU1RPS0VOID0gW1xuICAnYXV0aC5nZXRKd3QnLFxuICAnYXV0aC5sb2dvdXQnLFxuICAnYXV0aC5zaWduSW5XaXRoVGlja2V0JyxcbiAgJ2F1dGguc2lnbkluQW5vbnltb3VzbHknLFxuICAnYXV0aC5zaWduSW4nLFxuICAnYXV0aC5mZXRjaEFjY2Vzc1Rva2VuV2l0aFJlZnJlc2hUb2tlbicsXG4gICdhdXRoLnNpZ25VcFdpdGhFbWFpbEFuZFBhc3N3b3JkJyxcbiAgJ2F1dGguYWN0aXZhdGVFbmRVc2VyTWFpbCcsXG4gICdhdXRoLnNlbmRQYXNzd29yZFJlc2V0RW1haWwnLFxuICAnYXV0aC5yZXNldFBhc3N3b3JkV2l0aFRva2VuJyxcbiAgJ2F1dGguaXNVc2VybmFtZVJlZ2lzdGVyZWQnLFxuXVxuXG5mdW5jdGlvbiBiaW5kSG9va3MoaW5zdGFuY2U6IFNES1JlcXVlc3RJbnRlcmZhY2UsIG5hbWU6IHN0cmluZywgaG9va3M6IElSZXF1ZXN0QmVmb3JlSG9va1tdKSB7XG4gIGNvbnN0IG9yaWdpbk1ldGhvZCA9IGluc3RhbmNlW25hbWVdXG4gIGluc3RhbmNlW25hbWVdID0gZnVuY3Rpb24gKG9wdGlvbnM6IElSZXF1ZXN0T3B0aW9ucykge1xuICAgIGNvbnN0IGRhdGEgPSB7fVxuICAgIGNvbnN0IGhlYWRlcnMgPSB7fVxuICAgIGhvb2tzLmZvckVhY2goKGhvb2spID0+IHtcbiAgICAgIGNvbnN0IHsgZGF0YTogYXBwZW5kZWREYXRhLCBoZWFkZXJzOiBhcHBlbmRlZEhlYWRlcnMgfSA9IGhvb2suY2FsbChpbnN0YW5jZSwgb3B0aW9ucylcbiAgICAgIE9iamVjdC5hc3NpZ24oZGF0YSwgYXBwZW5kZWREYXRhKVxuICAgICAgT2JqZWN0LmFzc2lnbihoZWFkZXJzLCBhcHBlbmRlZEhlYWRlcnMpXG4gICAgfSlcbiAgICBjb25zdCBvcmlnaW5EYXRhID0gb3B0aW9ucy5kYXRhXG4gICAgb3JpZ2luRGF0YVxuICAgICAgJiYgKCgpID0+IHtcbiAgICAgICAgaWYgKGlzRm9ybURhdGEob3JpZ2luRGF0YSkpIHtcbiAgICAgICAgICBPYmplY3Qua2V5cyhkYXRhKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgICAgIChvcmlnaW5EYXRhIGFzIEZvcm1EYXRhKS5hcHBlbmQoa2V5LCBkYXRhW2tleV0pXG4gICAgICAgICAgfSlcbiAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuICAgICAgICBvcHRpb25zLmRhdGEgPSB7XG4gICAgICAgICAgLi4ub3JpZ2luRGF0YSxcbiAgICAgICAgICAuLi5kYXRhLFxuICAgICAgICB9XG4gICAgICB9KSgpXG4gICAgb3B0aW9ucy5oZWFkZXJzID0ge1xuICAgICAgLi4uKG9wdGlvbnMuaGVhZGVycyB8fCB7fSksXG4gICAgICAuLi5oZWFkZXJzLFxuICAgIH1cbiAgICByZXR1cm4gKG9yaWdpbk1ldGhvZCBhcyBGdW5jdGlvbikuY2FsbChpbnN0YW5jZSwgb3B0aW9ucylcbiAgfVxufVxuZnVuY3Rpb24gYmVmb3JlRWFjaCgpOiBJQXBwZW5kZWRSZXF1ZXN0SW5mbyB7XG4gIGNvbnN0IHNlcUlkID0gZ2VuU2VxSWQoKVxuICByZXR1cm4ge1xuICAgIGRhdGE6IHtcbiAgICAgIHNlcUlkLFxuICAgIH0sXG4gICAgaGVhZGVyczoge1xuICAgICAgJ1gtU0RLLVZlcnNpb24nOiBgQGNsb3VkYmFzZS9qcy1zZGsvJHtnZXRTZGtWZXJzaW9uKCl9YCxcbiAgICAgICd4LXNlcWlkJzogc2VxSWQsXG4gICAgfSxcbiAgfVxufVxuZXhwb3J0IGludGVyZmFjZSBJQ2xvdWRiYXNlUmVxdWVzdCB7XG4gIHBvc3Q6IChvcHRpb25zOiBJUmVxdWVzdE9wdGlvbnMpID0+IFByb21pc2U8UmVzcG9uc2VPYmplY3Q+XG4gIHVwbG9hZDogKG9wdGlvbnM6IElVcGxvYWRSZXF1ZXN0T3B0aW9ucykgPT4gUHJvbWlzZTxSZXNwb25zZU9iamVjdD5cbiAgZG93bmxvYWQ6IChvcHRpb25zOiBJUmVxdWVzdE9wdGlvbnMpID0+IFByb21pc2U8UmVzcG9uc2VPYmplY3Q+XG4gIHJlcXVlc3Q6IChhY3Rpb246IHN0cmluZywgcGFyYW1zOiBLVjxhbnk+LCBvcHRpb25zPzogS1Y8YW55PikgPT4gUHJvbWlzZTxSZXNwb25zZU9iamVjdD5cbiAgc2VuZDogKGFjdGlvbjogc3RyaW5nLCBkYXRhOiBLVjxhbnk+KSA9PiBQcm9taXNlPGFueT5cbiAgZmV0Y2g6IChvcHRpb25zOiBJRmV0Y2hPcHRpb25zKSA9PiBQcm9taXNlPFJlc3BvbnNlT2JqZWN0PlxufVxuXG4vKipcbiAqIEBjbGFzcyBDbG91ZGJhc2VSZXF1ZXN0XG4gKi9cbmV4cG9ydCBjbGFzcyBDbG91ZGJhc2VSZXF1ZXN0IGltcGxlbWVudHMgSUNsb3VkYmFzZVJlcXVlc3Qge1xuICBjb25maWc6IElDbG91ZGJhc2VSZXF1ZXN0Q29uZmlnXG4gIHByaXZhdGUgcmVxQ2xhc3M6IFNES1JlcXVlc3RJbnRlcmZhY2VcbiAgLy8g6K+35rGC5aSx6LSl5piv5ZCm5oqb5Ye6RXJyb3JcbiAgcHJpdmF0ZSB0aHJvd1doZW5SZXF1ZXN0RmFpbCA9IGZhbHNlXG4gIC8vIOaMgeS5heWMluacrOWcsOWtmOWCqFxuICBwcml2YXRlIGxvY2FsQ2FjaGU6IElDbG91ZGJhc2VDYWNoZVxuICAvKipcbiAgICog5Yid5aeL5YyWXG4gICAqIEBwYXJhbSBjb25maWdcbiAgICovXG4gIGNvbnN0cnVjdG9yKGNvbmZpZzogSUNsb3VkYmFzZVJlcXVlc3RDb25maWcgJiB7IHRocm93PzogYm9vbGVhbiB9KSB7XG4gICAgdGhpcy5jb25maWcgPSBjb25maWdcbiAgICBjb25zdCByZXFDb25maWc6IElSZXF1ZXN0Q29uZmlnID0ge1xuICAgICAgdGltZW91dDogdGhpcy5jb25maWcudGltZW91dCxcbiAgICAgIHRpbWVvdXRNc2c6IGBbQGNsb3VkYmFzZS9qcy1zZGtdIOivt+axguWcqCR7dGhpcy5jb25maWcudGltZW91dCAvIDEwMDB9c+WGheacquWujOaIkO+8jOW3suS4reaWrWAsXG4gICAgICByZXN0cmljdGVkTWV0aG9kczogWydwb3N0JywgJ3B1dCddLFxuICAgIH1cbiAgICB0aGlzLnJlcUNsYXNzID0gbmV3IFBsYXRmb3JtLmFkYXB0ZXIucmVxQ2xhc3MocmVxQ29uZmlnKVxuICAgIHRoaXMudGhyb3dXaGVuUmVxdWVzdEZhaWwgPSBjb25maWcudGhyb3cgfHwgZmFsc2VcbiAgICB0aGlzLmxvY2FsQ2FjaGUgPSBnZXRMb2NhbENhY2hlKHRoaXMuY29uZmlnLmVudilcbiAgICBiaW5kSG9va3ModGhpcy5yZXFDbGFzcywgJ3Bvc3QnLCBbYmVmb3JlRWFjaF0pXG4gICAgYmluZEhvb2tzKHRoaXMucmVxQ2xhc3MsICd1cGxvYWQnLCBbYmVmb3JlRWFjaF0pXG4gICAgYmluZEhvb2tzKHRoaXMucmVxQ2xhc3MsICdkb3dubG9hZCcsIFtiZWZvcmVFYWNoXSlcblxuICAgIGxhbmdFdmVudC5idXMub24obGFuZ0V2ZW50LkxBTkdfQ0hBTkdFX0VWRU5ULCAocGFyYW1zKSA9PiB7XG4gICAgICB0aGlzLmNvbmZpZy5pMThuID0gcGFyYW1zLmRhdGE/LmkxOG4gfHwgdGhpcy5jb25maWcuaTE4blxuICAgIH0pXG4gIH1cblxuICBwdWJsaWMgZ2V0RGVmYXVsdEhlYWRlcnMoKSB7XG4gICAgcmV0dXJuIHsgW3RoaXMuY29uZmlnLmkxOG4/LkxBTkdfSEVBREVSX0tFWV06IHRoaXMuY29uZmlnLmkxOG4/LmxhbmcgfVxuICB9XG5cbiAgcHVibGljIGFzeW5jIHBvc3Qob3B0aW9uczogSVJlcXVlc3RPcHRpb25zKTogUHJvbWlzZTxSZXNwb25zZU9iamVjdD4ge1xuICAgIGNvbnN0IHJlcyA9IGF3YWl0IHRoaXMucmVxQ2xhc3MucG9zdCh7IC4uLm9wdGlvbnMsIGhlYWRlcnM6IHsgLi4ub3B0aW9ucy5oZWFkZXJzLCAuLi50aGlzLmdldERlZmF1bHRIZWFkZXJzKCkgfSB9KVxuICAgIHJldHVybiByZXNcbiAgfVxuICBwdWJsaWMgYXN5bmMgdXBsb2FkKG9wdGlvbnM6IElVcGxvYWRSZXF1ZXN0T3B0aW9ucyk6IFByb21pc2U8UmVzcG9uc2VPYmplY3Q+IHtcbiAgICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLnJlcUNsYXNzLnVwbG9hZCh7IC4uLm9wdGlvbnMsIGhlYWRlcnM6IHsgLi4ub3B0aW9ucy5oZWFkZXJzLCAuLi50aGlzLmdldERlZmF1bHRIZWFkZXJzKCkgfSB9KVxuICAgIHJldHVybiByZXNcbiAgfVxuICBwdWJsaWMgYXN5bmMgZG93bmxvYWQob3B0aW9uczogSVJlcXVlc3RPcHRpb25zKTogUHJvbWlzZTxSZXNwb25zZU9iamVjdD4ge1xuICAgIGNvbnN0IHJlcyA9IGF3YWl0IHRoaXMucmVxQ2xhc3MuZG93bmxvYWQoeyAuLi5vcHRpb25zLCBoZWFkZXJzOiB7IC4uLm9wdGlvbnMuaGVhZGVycywgLi4udGhpcy5nZXREZWZhdWx0SGVhZGVycygpIH0gfSlcbiAgICByZXR1cm4gcmVzXG4gIH1cblxuICBwdWJsaWMgZ2V0QmFzZUVuZFBvaW50KGVuZFBvaW50S2V5OiBFbmRQb2ludEtleSA9ICdDTE9VRF9BUEknKSB7XG4gICAgcmV0dXJuIGdldEJhc2VFbmRQb2ludCh0aGlzLmNvbmZpZy5lbnYsIGVuZFBvaW50S2V5KVxuICB9XG5cbiAgcHVibGljIGFzeW5jIGdldE9hdXRoQWNjZXNzVG9rZW5WMihvYXV0aENsaWVudDogYW55KTogUHJvbWlzZTxJR2V0QWNjZXNzVG9rZW5SZXN1bHQ+IHtcbiAgICBjb25zdCB2YWxpZEFjY2Vzc1Rva2VuID0gYXdhaXQgb2F1dGhDbGllbnQuZ2V0QWNjZXNzVG9rZW4oKVxuICAgIGNvbnN0IGNyZWRlbnRpYWxzID0gYXdhaXQgb2F1dGhDbGllbnQuZ2V0Q3JlZGVudGlhbHMoKVxuICAgIHJldHVybiB7XG4gICAgICBhY2Nlc3NUb2tlbjogdmFsaWRBY2Nlc3NUb2tlbixcbiAgICAgIGFjY2Vzc1Rva2VuRXhwaXJlOiBuZXcgRGF0ZShjcmVkZW50aWFscy5leHBpcmVzX2F0KS5nZXRUaW1lKCksXG4gICAgfVxuICB9XG5cbiAgLyogZXNsaW50LWRpc2FibGUgY29tcGxleGl0eSAqL1xuICBwdWJsaWMgYXN5bmMgcmVxdWVzdChcbiAgICBhY3Rpb246IHN0cmluZyxcbiAgICBwYXJhbXM6IEtWPGFueT4sXG4gICAgb3B0aW9ucz86IHtcbiAgICAgIG9uVXBsb2FkUHJvZ3Jlc3M/OiBGdW5jdGlvblxuICAgICAgcGF0aG5hbWU/OiBzdHJpbmdcbiAgICAgIHBhcnNlPzogYm9vbGVhblxuICAgICAgaW5RdWVyeT86IEtWPGFueT5cbiAgICAgIHNlYXJjaD86IHN0cmluZ1xuICAgICAgZGVmYXVsdFF1ZXJ5PzogS1Y8YW55PlxuICAgIH0sXG4gICk6IFByb21pc2U8UmVzcG9uc2VPYmplY3Q+IHtcbiAgICBjb25zdCB0Y2JUcmFjZUtleSA9IGB4LXRjYi10cmFjZV8ke3RoaXMuY29uZmlnLmVudn1gXG4gICAgbGV0IGNvbnRlbnRUeXBlID0gJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCdcblxuICAgIGNvbnN0IHRtcE9iajogS1Y8YW55PiA9IHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGRhdGFWZXJzaW9uOiBEQVRBX1ZFUlNJT04sXG4gICAgICBlbnY6IHRoaXMuY29uZmlnLmVudixcbiAgICAgIC4uLnBhcmFtcyxcbiAgICB9XG5cbiAgICBpZiAoQUNUSU9OU19XSVRIT1VUX0FDQ0VTU1RPS0VOLmluZGV4T2YoYWN0aW9uKSA9PT0gLTEpIHtcbiAgICAgIGNvbnN0IGFwcCA9IHRoaXMuY29uZmlnLl9mcm9tQXBwXG5cbiAgICAgIGlmICghYXBwLm9hdXRoSW5zdGFuY2UpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCd5b3UgY2FuXFwndCByZXF1ZXN0IHdpdGhvdXQgYXV0aCcpXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHsgb2F1dGhJbnN0YW5jZSB9ID0gYXBwXG4gICAgICBjb25zdCBvYXV0aENsaWVudCA9IG9hdXRoSW5zdGFuY2Uub2F1dGgyY2xpZW50XG4gICAgICB0bXBPYmouYWNjZXNzX3Rva2VuID0gKGF3YWl0IHRoaXMuZ2V0T2F1dGhBY2Nlc3NUb2tlblYyKG9hdXRoQ2xpZW50KSkuYWNjZXNzVG9rZW5cbiAgICB9XG5cbiAgICAvLyDmi7xib2R55ZKMY29udGVudC10eXBlXG4gICAgbGV0IHBheWxvYWRcbiAgICBpZiAoYWN0aW9uID09PSAnc3RvcmFnZS51cGxvYWRGaWxlJykge1xuICAgICAgcGF5bG9hZCA9IG5ldyBGb3JtRGF0YSgpXG4gICAgICBPYmplY3Qua2V5cyhwYXlsb2FkKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChwYXlsb2FkLCBrZXkpICYmIHBheWxvYWRba2V5XSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgcGF5bG9hZC5hcHBlbmQoa2V5LCB0bXBPYmpba2V5XSlcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICAgIGNvbnRlbnRUeXBlID0gJ211bHRpcGFydC9mb3JtLWRhdGEnXG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnRlbnRUeXBlID0gJ2FwcGxpY2F0aW9uL2pzb247Y2hhcnNldD1VVEYtOCdcbiAgICAgIHBheWxvYWQgPSB7fVxuICAgICAgT2JqZWN0LmtleXModG1wT2JqKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgaWYgKHRtcE9ialtrZXldICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBwYXlsb2FkW2tleV0gPSB0bXBPYmpba2V5XVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH1cbiAgICBjb25zdCBvcHRzOiBhbnkgPSB7XG4gICAgICBoZWFkZXJzOiB7XG4gICAgICAgICdjb250ZW50LXR5cGUnOiBjb250ZW50VHlwZSxcbiAgICAgICAgLi4udGhpcy5nZXREZWZhdWx0SGVhZGVycygpLFxuICAgICAgfSxcbiAgICB9XG4gICAgaWYgKG9wdGlvbnM/Lm9uVXBsb2FkUHJvZ3Jlc3MpIHtcbiAgICAgIG9wdHMub25VcGxvYWRQcm9ncmVzcyA9IG9wdGlvbnMub25VcGxvYWRQcm9ncmVzc1xuICAgIH1cblxuICAgIGlmICh0aGlzLmNvbmZpZy5yZWdpb24pIHtcbiAgICAgIG9wdHMuaGVhZGVyc1snWC1UQ0ItUmVnaW9uJ10gPSB0aGlzLmNvbmZpZy5yZWdpb25cbiAgICB9XG5cbiAgICBjb25zdCB0cmFjZUhlYWRlciA9IHRoaXMubG9jYWxDYWNoZS5nZXRTdG9yZSh0Y2JUcmFjZUtleSlcbiAgICBpZiAodHJhY2VIZWFkZXIpIHtcbiAgICAgIG9wdHMuaGVhZGVyc1snWC1UQ0ItVHJhY2UnXSA9IHRyYWNlSGVhZGVyXG4gICAgfVxuXG4gICAgLy8g5Y+R5Ye66K+35rGCXG4gICAgLy8g5paw55qEIHVybCDpnIDopoHmkLrluKYgZW52IOWPguaVsOi/m+ihjCBDT1JTIOagoemqjFxuICAgIC8vIOivt+axgumTvuaOpeaUr+aMgea3u+WKoOWKqOaAgSBxdWVyeSDlj4LmlbDvvIzmlrnkvr/nlKjmiLfosIPor5XlrprkvY3or7fmsYJcbiAgICBjb25zdCBwYXJzZSA9IG9wdGlvbnM/LnBhcnNlICE9PSB1bmRlZmluZWQgPyBvcHRpb25zLnBhcnNlIDogcGFyYW1zLnBhcnNlXG4gICAgY29uc3QgaW5RdWVyeSA9IG9wdGlvbnM/LmluUXVlcnkgIT09IHVuZGVmaW5lZCA/IG9wdGlvbnMuaW5RdWVyeSA6IHBhcmFtcy5pblF1ZXJ5XG4gICAgY29uc3Qgc2VhcmNoID0gb3B0aW9ucz8uc2VhcmNoICE9PSB1bmRlZmluZWQgPyBvcHRpb25zLnNlYXJjaCA6IHBhcmFtcy5zZWFyY2hcblxuICAgIGxldCBmb3JtYXRRdWVyeTogUmVjb3JkPHN0cmluZywgYW55PiA9IHtcbiAgICAgIC4uLihvcHRpb25zPy5kZWZhdWx0UXVlcnkgfHwge30pLFxuICAgICAgZW52OiB0aGlzLmNvbmZpZy5lbnYsXG4gICAgfVxuICAgIC8vIOWwneivleino+aekOWTjeW6lOaVsOaNruS4uiBKU09OXG4gICAgcGFyc2UgJiYgKGZvcm1hdFF1ZXJ5LnBhcnNlID0gdHJ1ZSlcbiAgICBpblF1ZXJ5XG4gICAgICAmJiAoZm9ybWF0UXVlcnkgPSB7XG4gICAgICAgIC4uLmluUXVlcnksXG4gICAgICAgIC4uLmZvcm1hdFF1ZXJ5LFxuICAgICAgfSlcblxuICAgIGNvbnN0IHsgYmFzZVVybDogQkFTRV9VUkwsIHByb3RvY29sOiBQUk9UT0NPTCB9ID0gZ2V0RW5kUG9pbnRJbmZvKHRoaXMuY29uZmlnLmVudiwgJ0NMT1VEX0FQSScpXG4gICAgLy8g55Sf5oiQ6K+35rGCIHVybFxuICAgIGxldCBuZXdVcmxcbiAgICBpZiAob3B0aW9ucy5wYXRobmFtZSkge1xuICAgICAgbmV3VXJsID0gZm9ybWF0VXJsKFxuICAgICAgICBQUk9UT0NPTCxcbiAgICAgICAgYCR7Z2V0QmFzZUVuZFBvaW50KHRoaXMuY29uZmlnLmVudik/LnJlcGxhY2UoL15odHRwcz86LywgJycpfS8ke29wdGlvbnMucGF0aG5hbWV9YCxcbiAgICAgICAgZm9ybWF0UXVlcnksXG4gICAgICApXG4gICAgfSBlbHNlIHtcbiAgICAgIG5ld1VybCA9IGZvcm1hdFVybChQUk9UT0NPTCwgQkFTRV9VUkwsIGZvcm1hdFF1ZXJ5KVxuICAgIH1cblxuICAgIGlmIChzZWFyY2gpIHtcbiAgICAgIG5ld1VybCArPSBzZWFyY2hcbiAgICB9XG5cbiAgICBjb25zdCByZXM6IFJlc3BvbnNlT2JqZWN0ID0gYXdhaXQgdGhpcy5wb3N0KHtcbiAgICAgIHVybDogbmV3VXJsLFxuICAgICAgZGF0YTogcGF5bG9hZCxcbiAgICAgIC4uLm9wdHMsXG4gICAgfSlcblxuICAgIC8vIOS/neWtmCB0cmFjZSBoZWFkZXJcbiAgICBjb25zdCByZXNUcmFjZUhlYWRlciA9IHJlcy5oZWFkZXI/LlsneC10Y2ItdHJhY2UnXVxuICAgIGlmIChyZXNUcmFjZUhlYWRlcikge1xuICAgICAgdGhpcy5sb2NhbENhY2hlLnNldFN0b3JlKHRjYlRyYWNlS2V5LCByZXNUcmFjZUhlYWRlcilcbiAgICB9XG5cbiAgICBpZiAoKE51bWJlcihyZXMuc3RhdHVzKSAhPT0gMjAwICYmIE51bWJlcihyZXMuc3RhdHVzQ29kZSkgIT09IDIwMCkgfHwgIXJlcy5kYXRhKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ25ldHdvcmsgcmVxdWVzdCBlcnJvcicpXG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGZldGNoKG9wdGlvbnM6IElGZXRjaE9wdGlvbnMgJiB7IHRva2VuPzogc3RyaW5nIH0pOiBQcm9taXNlPFJlc3BvbnNlT2JqZWN0PiB7XG4gICAgY29uc3QgeyB0b2tlbiwgaGVhZGVycyA9IHt9LCAuLi5yZXN0T3B0aW9ucyB9ID0gb3B0aW9uc1xuICAgIGNvbnN0IGdldEFjY2Vzc1Rva2VuID0gYXN5bmMgKCkgPT4ge1xuICAgICAgaWYgKHRva2VuICE9IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIHRva2VuXG4gICAgICB9XG4gICAgICBjb25zdCBhcHAgPSB0aGlzLmNvbmZpZy5fZnJvbUFwcFxuXG4gICAgICBpZiAoIWFwcC5vYXV0aEluc3RhbmNlKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcigneW91IGNhblxcJ3QgcmVxdWVzdCB3aXRob3V0IGF1dGgnKVxuICAgICAgfVxuXG4gICAgICBjb25zdCB7IG9hdXRoSW5zdGFuY2UgfSA9IGFwcFxuICAgICAgY29uc3Qgb2F1dGhDbGllbnQgPSBvYXV0aEluc3RhbmNlLm9hdXRoMmNsaWVudFxuICAgICAgcmV0dXJuIChhd2FpdCB0aGlzLmdldE9hdXRoQWNjZXNzVG9rZW5WMihvYXV0aENsaWVudCkpLmFjY2Vzc1Rva2VuXG4gICAgfVxuXG4gICAgY29uc3QgZG9GZXRjaCA9IGFzeW5jICgpID0+IHRoaXMucmVxQ2xhc3MuZmV0Y2goe1xuICAgICAgaGVhZGVyczoge1xuICAgICAgICAvLyAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICAvLyAnWC1SZXF1ZXN0LUlkJzogYCR7dXRpbHMuZ2VuZXJhdGVSZXF1ZXN0SWQoKX1gLFxuICAgICAgICAvLyAnWC1SZXF1ZXN0LVRpbWVzdGFtcCc6IGAke0RhdGUubm93KCl9YCxcbiAgICAgICAgJ1gtU0RLLVZlcnNpb24nOiBgQGNsb3VkYmFzZS9qcy1zZGsvJHtnZXRTZGtWZXJzaW9uKCl9YCxcbiAgICAgICAgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke2F3YWl0IGdldEFjY2Vzc1Rva2VuKCl9YCxcbiAgICAgICAgLi4udGhpcy5nZXREZWZhdWx0SGVhZGVycygpLFxuICAgICAgICAuLi5oZWFkZXJzLFxuICAgICAgfSxcbiAgICAgIC4uLnJlc3RPcHRpb25zLFxuICAgIH0pXG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZG9GZXRjaCgpXG4gICAgICByZXR1cm4gcmVzdWx0XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBpZiAoZXJyPy5jb2RlID09PSAnQUNDRVNTX1RPS0VOX0VYUElSRUQnKSB7XG4gICAgICAgIC8vIOWmguaenOaYr+WboOS4uiB0b2tlbiDov4fmnJ/lpLHotKXvvIzliLcgdG9rZW4g5ZCO5YaN6K+V5LiA5qyhXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5jb25maWc/Ll9mcm9tQXBwPy5vYXV0aEluc3RhbmNlPy5hdXRoQXBpPy5yZWZyZXNoVG9rZW5Gb3JjZSAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgIHRocm93IGVyclxuICAgICAgICB9XG4gICAgICAgIGF3YWl0IHRoaXMuY29uZmlnPy5fZnJvbUFwcD8ub2F1dGhJbnN0YW5jZT8uYXV0aEFwaT8ucmVmcmVzaFRva2VuRm9yY2UoKVxuICAgICAgICByZXR1cm4gZG9GZXRjaCgpXG4gICAgICB9XG4gICAgICAvLyDlhbbku5bljp/lm6DlkJHkuIrmipvlh7pcblxuICAgICAgdGhyb3cgZXJyXG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFzeW5jIHNlbmQoYWN0aW9uOiBzdHJpbmcsIGRhdGE6IEtWPGFueT4gPSB7fSwgb3B0aW9uczogS1Y8YW55PiA9IHt9KTogUHJvbWlzZTxhbnk+IHtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMucmVxdWVzdChhY3Rpb24sIGRhdGEsIHsgLi4ub3B0aW9ucywgb25VcGxvYWRQcm9ncmVzczogZGF0YS5vblVwbG9hZFByb2dyZXNzIH0pXG5cbiAgICBpZiAocmVzcG9uc2UuZGF0YS5jb2RlICYmIHRoaXMudGhyb3dXaGVuUmVxdWVzdEZhaWwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgIGNvZGU6IEVSUk9SUy5PUEVSQVRJT05fRkFJTCxcbiAgICAgICAgbXNnOiBgWyR7cmVzcG9uc2UuZGF0YS5jb2RlfV0gJHtyZXNwb25zZS5kYXRhLm1lc3NhZ2V9YCxcbiAgICAgIH0pLClcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzcG9uc2UuZGF0YVxuICB9XG59XG5cbmNvbnN0IHJlcXVlc3RNYXA6IEtWPENsb3VkYmFzZVJlcXVlc3Q+ID0ge31cblxuZXhwb3J0IGZ1bmN0aW9uIGluaXRSZXF1ZXN0KGNvbmZpZzogSUNsb3VkYmFzZVJlcXVlc3RDb25maWcpIHtcbiAgcmVxdWVzdE1hcFtjb25maWcuZW52XSA9IG5ldyBDbG91ZGJhc2VSZXF1ZXN0KHtcbiAgICAuLi5jb25maWcsXG4gICAgdGhyb3c6IHRydWUsXG4gIH0pXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRSZXF1ZXN0QnlFbnZJZChlbnY6IHN0cmluZyk6IENsb3VkYmFzZVJlcXVlc3Qge1xuICByZXR1cm4gcmVxdWVzdE1hcFtlbnZdXG59XG4iXX0=
397
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWJzL3JlcXVlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDhDQUFtRztBQVNuRyxrREFBa0U7QUFTbEUsaUNBQXVDO0FBQ3ZDLHFDQUFvQztBQUM1QixJQUFBLE1BQU0sR0FBSyxxQkFBUyxPQUFkLENBQWM7QUFDcEIsSUFBQSxRQUFRLEdBQTRCLGlCQUFLLFNBQWpDLEVBQUUsVUFBVSxHQUFnQixpQkFBSyxXQUFyQixFQUFFLFNBQVMsR0FBSyxpQkFBSyxVQUFWLENBQVU7QUFHakQsSUFBTSwyQkFBMkIsR0FBRztJQUNsQyxhQUFhO0lBQ2IsYUFBYTtJQUNiLHVCQUF1QjtJQUN2Qix3QkFBd0I7SUFDeEIsYUFBYTtJQUNiLHVDQUF1QztJQUN2QyxpQ0FBaUM7SUFDakMsMEJBQTBCO0lBQzFCLDZCQUE2QjtJQUM3Qiw2QkFBNkI7SUFDN0IsMkJBQTJCO0NBQzVCLENBQUE7QUFFRCxTQUFTLFNBQVMsQ0FBQyxRQUE2QixFQUFFLElBQVksRUFBRSxLQUEyQjtJQUN6RixJQUFNLFlBQVksR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDbkMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLFVBQVUsT0FBd0I7UUFDakQsSUFBTSxJQUFJLEdBQUcsRUFBRSxDQUFBO1FBQ2YsSUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFBO1FBQ2xCLEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBQyxJQUFJO1lBQ1gsSUFBQSxLQUFtRCxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsRUFBdkUsWUFBWSxVQUFBLEVBQVcsZUFBZSxhQUFpQyxDQUFBO1lBQ3JGLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLFlBQVksQ0FBQyxDQUFB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QzdCLElBQUksRUFBRSxNQUFNLENBQUMsY0FBYztnQ0FDM0IsR0FBRyxFQUFFLFdBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLGVBQUssUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUU7NkJBQ3hELENBQUMsQ0FBRSxDQUFBO3lCQUNMO3dCQUVELFdBQU8sUUFBUSxDQUFDLElBQUksRUFBQTs7OztLQUNyQjtJQUNILHVCQUFDO0FBQUQsQ0FBQyxBQWpRRCxJQWlRQztBQWpRWSw0Q0FBZ0I7QUFtUTdCLElBQU0sVUFBVSxHQUF5QixFQUFFLENBQUE7QUFFM0MsU0FBZ0IsV0FBVyxDQUFDLE1BQStCO0lBQ3pELFVBQVUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxnQkFBZ0IsdUJBQ3hDLE1BQU0sS0FDVCxLQUFLLEVBQUUsSUFBSSxJQUNYLENBQUE7QUFDSixDQUFDO0FBTEQsa0NBS0M7QUFFRCxTQUFnQixpQkFBaUIsQ0FBQyxHQUFXO0lBQzNDLE9BQU8sVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFBO0FBQ3hCLENBQUM7QUFGRCw4Q0FFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERBVEFfVkVSU0lPTiwgZ2V0U2RrVmVyc2lvbiwgZ2V0QmFzZUVuZFBvaW50LCBnZXRFbmRQb2ludEluZm8gfSBmcm9tICcuLi9jb25zdGFudHMvY29tbW9uJ1xuaW1wb3J0IHtcbiAgSVJlcXVlc3RPcHRpb25zLFxuICBTREtSZXF1ZXN0SW50ZXJmYWNlLFxuICBSZXNwb25zZU9iamVjdCxcbiAgSVVwbG9hZFJlcXVlc3RPcHRpb25zLFxuICBJUmVxdWVzdENvbmZpZyxcbiAgSUZldGNoT3B0aW9ucyxcbn0gZnJvbSAnQGNsb3VkYmFzZS9hZGFwdGVyLWludGVyZmFjZSdcbmltcG9ydCB7IHV0aWxzLCBjb25zdGFudHMsIGxhbmdFdmVudCB9IGZyb20gJ0BjbG91ZGJhc2UvdXRpbGl0aWVzJ1xuaW1wb3J0IHsgRW5kUG9pbnRLZXksIEtWIH0gZnJvbSAnQGNsb3VkYmFzZS90eXBlcydcbmltcG9ydCB7XG4gIElHZXRBY2Nlc3NUb2tlblJlc3VsdCxcbiAgSUNsb3VkYmFzZVJlcXVlc3RDb25maWcsXG4gIElBcHBlbmRlZFJlcXVlc3RJbmZvLFxuICBJUmVxdWVzdEJlZm9yZUhvb2ssXG59IGZyb20gJ0BjbG91ZGJhc2UvdHlwZXMvcmVxdWVzdCdcbmltcG9ydCB7IElDbG91ZGJhc2VDYWNoZSB9IGZyb20gJ0BjbG91ZGJhc2UvdHlwZXMvY2FjaGUnXG5pbXBvcnQgeyBnZXRMb2NhbENhY2hlIH0gZnJvbSAnLi9jYWNoZSdcbmltcG9ydCB7IFBsYXRmb3JtIH0gZnJvbSAnLi9hZGFwdGVyJ1xuY29uc3QgeyBFUlJPUlMgfSA9IGNvbnN0YW50c1xuY29uc3QgeyBnZW5TZXFJZCwgaXNGb3JtRGF0YSwgZm9ybWF0VXJsIH0gPSB1dGlsc1xuXG4vLyDkuIvpnaLlh6Dnp40gYWN0aW9uIOS4jemcgOimgSBhY2Nlc3MgdG9rZW5cbmNvbnN0IEFDVElPTlNfV0lUSE9VVF9BQ0NFU1NUT0tFTiA9IFtcbiAgJ2F1dGguZ2V0Snd0JyxcbiAgJ2F1dGgubG9nb3V0JyxcbiAgJ2F1dGguc2lnbkluV2l0aFRpY2tldCcsXG4gICdhdXRoLnNpZ25JbkFub255bW91c2x5JyxcbiAgJ2F1dGguc2lnbkluJyxcbiAgJ2F1dGguZmV0Y2hBY2Nlc3NUb2tlbldpdGhSZWZyZXNoVG9rZW4nLFxuICAnYXV0aC5zaWduVXBXaXRoRW1haWxBbmRQYXNzd29yZCcsXG4gICdhdXRoLmFjdGl2YXRlRW5kVXNlck1haWwnLFxuICAnYXV0aC5zZW5kUGFzc3dvcmRSZXNldEVtYWlsJyxcbiAgJ2F1dGgucmVzZXRQYXNzd29yZFdpdGhUb2tlbicsXG4gICdhdXRoLmlzVXNlcm5hbWVSZWdpc3RlcmVkJyxcbl1cblxuZnVuY3Rpb24gYmluZEhvb2tzKGluc3RhbmNlOiBTREtSZXF1ZXN0SW50ZXJmYWNlLCBuYW1lOiBzdHJpbmcsIGhvb2tzOiBJUmVxdWVzdEJlZm9yZUhvb2tbXSkge1xuICBjb25zdCBvcmlnaW5NZXRob2QgPSBpbnN0YW5jZVtuYW1lXVxuICBpbnN0YW5jZVtuYW1lXSA9IGZ1bmN0aW9uIChvcHRpb25zOiBJUmVxdWVzdE9wdGlvbnMpIHtcbiAgICBjb25zdCBkYXRhID0ge31cbiAgICBjb25zdCBoZWFkZXJzID0ge31cbiAgICBob29rcy5mb3JFYWNoKChob29rKSA9PiB7XG4gICAgICBjb25zdCB7IGRhdGE6IGFwcGVuZGVkRGF0YSwgaGVhZGVyczogYXBwZW5kZWRIZWFkZXJzIH0gPSBob29rLmNhbGwoaW5zdGFuY2UsIG9wdGlvbnMpXG4gICAgICBPYmplY3QuYXNzaWduKGRhdGEsIGFwcGVuZGVkRGF0YSlcbiAgICAgIE9iamVjdC5hc3NpZ24oaGVhZGVycywgYXBwZW5kZWRIZWFkZXJzKVxuICAgIH0pXG4gICAgY29uc3Qgb3JpZ2luRGF0YSA9IG9wdGlvbnMuZGF0YVxuICAgIG9yaWdpbkRhdGFcbiAgICAgICYmICgoKSA9PiB7XG4gICAgICAgIGlmIChpc0Zvcm1EYXRhKG9yaWdpbkRhdGEpKSB7XG4gICAgICAgICAgT2JqZWN0LmtleXMoZGF0YSkuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgICAgICAob3JpZ2luRGF0YSBhcyBGb3JtRGF0YSkuYXBwZW5kKGtleSwgZGF0YVtrZXldKVxuICAgICAgICAgIH0pXG4gICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cbiAgICAgICAgb3B0aW9ucy5kYXRhID0ge1xuICAgICAgICAgIC4uLm9yaWdpbkRhdGEsXG4gICAgICAgICAgLi4uZGF0YSxcbiAgICAgICAgfVxuICAgICAgfSkoKVxuICAgIG9wdGlvbnMuaGVhZGVycyA9IHtcbiAgICAgIC4uLihvcHRpb25zLmhlYWRlcnMgfHwge30pLFxuICAgICAgLi4uaGVhZGVycyxcbiAgICB9XG4gICAgcmV0dXJuIChvcmlnaW5NZXRob2QgYXMgRnVuY3Rpb24pLmNhbGwoaW5zdGFuY2UsIG9wdGlvbnMpXG4gIH1cbn1cbmZ1bmN0aW9uIGJlZm9yZUVhY2goKTogSUFwcGVuZGVkUmVxdWVzdEluZm8ge1xuICBjb25zdCBzZXFJZCA9IGdlblNlcUlkKClcbiAgcmV0dXJuIHtcbiAgICBkYXRhOiB7XG4gICAgICBzZXFJZCxcbiAgICB9LFxuICAgIGhlYWRlcnM6IHtcbiAgICAgICdYLVNESy1WZXJzaW9uJzogYEBjbG91ZGJhc2UvanMtc2RrLyR7Z2V0U2RrVmVyc2lvbigpfWAsXG4gICAgICAneC1zZXFpZCc6IHNlcUlkLFxuICAgIH0sXG4gIH1cbn1cbmV4cG9ydCBpbnRlcmZhY2UgSUNsb3VkYmFzZVJlcXVlc3Qge1xuICBwb3N0OiAob3B0aW9uczogSVJlcXVlc3RPcHRpb25zKSA9PiBQcm9taXNlPFJlc3BvbnNlT2JqZWN0PlxuICB1cGxvYWQ6IChvcHRpb25zOiBJVXBsb2FkUmVxdWVzdE9wdGlvbnMpID0+IFByb21pc2U8UmVzcG9uc2VPYmplY3Q+XG4gIGRvd25sb2FkOiAob3B0aW9uczogSVJlcXVlc3RPcHRpb25zKSA9PiBQcm9taXNlPFJlc3BvbnNlT2JqZWN0PlxuICByZXF1ZXN0OiAoYWN0aW9uOiBzdHJpbmcsIHBhcmFtczogS1Y8YW55Piwgb3B0aW9ucz86IEtWPGFueT4pID0+IFByb21pc2U8UmVzcG9uc2VPYmplY3Q+XG4gIHNlbmQ6IChhY3Rpb246IHN0cmluZywgZGF0YTogS1Y8YW55PikgPT4gUHJvbWlzZTxhbnk+XG4gIGZldGNoOiAob3B0aW9uczogSUZldGNoT3B0aW9ucykgPT4gUHJvbWlzZTxSZXNwb25zZU9iamVjdD5cbn1cblxuLyoqXG4gKiBAY2xhc3MgQ2xvdWRiYXNlUmVxdWVzdFxuICovXG5leHBvcnQgY2xhc3MgQ2xvdWRiYXNlUmVxdWVzdCBpbXBsZW1lbnRzIElDbG91ZGJhc2VSZXF1ZXN0IHtcbiAgY29uZmlnOiBJQ2xvdWRiYXNlUmVxdWVzdENvbmZpZ1xuICBwcml2YXRlIHJlcUNsYXNzOiBTREtSZXF1ZXN0SW50ZXJmYWNlXG4gIC8vIOivt+axguWksei0peaYr+WQpuaKm+WHukVycm9yXG4gIHByaXZhdGUgdGhyb3dXaGVuUmVxdWVzdEZhaWwgPSBmYWxzZVxuICAvLyDmjIHkuYXljJbmnKzlnLDlrZjlgqhcbiAgcHJpdmF0ZSBsb2NhbENhY2hlOiBJQ2xvdWRiYXNlQ2FjaGVcbiAgLyoqXG4gICAqIOWIneWni+WMllxuICAgKiBAcGFyYW0gY29uZmlnXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihjb25maWc6IElDbG91ZGJhc2VSZXF1ZXN0Q29uZmlnICYgeyB0aHJvdz86IGJvb2xlYW4gfSkge1xuICAgIHRoaXMuY29uZmlnID0gY29uZmlnXG4gICAgY29uc3QgcmVxQ29uZmlnOiBJUmVxdWVzdENvbmZpZyA9IHtcbiAgICAgIHRpbWVvdXQ6IHRoaXMuY29uZmlnLnRpbWVvdXQsXG4gICAgICB0aW1lb3V0TXNnOiBgW0BjbG91ZGJhc2UvanMtc2RrXSDor7fmsYLlnKgke3RoaXMuY29uZmlnLnRpbWVvdXQgLyAxMDAwfXPlhoXmnKrlrozmiJDvvIzlt7LkuK3mlq1gLFxuICAgICAgcmVzdHJpY3RlZE1ldGhvZHM6IFsncG9zdCcsICdwdXQnXSxcbiAgICB9XG4gICAgdGhpcy5yZXFDbGFzcyA9IG5ldyBQbGF0Zm9ybS5hZGFwdGVyLnJlcUNsYXNzKHJlcUNvbmZpZylcbiAgICB0aGlzLnRocm93V2hlblJlcXVlc3RGYWlsID0gY29uZmlnLnRocm93IHx8IGZhbHNlXG4gICAgdGhpcy5sb2NhbENhY2hlID0gZ2V0TG9jYWxDYWNoZSh0aGlzLmNvbmZpZy5lbnYpXG4gICAgYmluZEhvb2tzKHRoaXMucmVxQ2xhc3MsICdwb3N0JywgW2JlZm9yZUVhY2hdKVxuICAgIGJpbmRIb29rcyh0aGlzLnJlcUNsYXNzLCAndXBsb2FkJywgW2JlZm9yZUVhY2hdKVxuICAgIGJpbmRIb29rcyh0aGlzLnJlcUNsYXNzLCAnZG93bmxvYWQnLCBbYmVmb3JlRWFjaF0pXG5cbiAgICBsYW5nRXZlbnQuYnVzLm9uKGxhbmdFdmVudC5MQU5HX0NIQU5HRV9FVkVOVCwgKHBhcmFtcykgPT4ge1xuICAgICAgdGhpcy5jb25maWcuaTE4biA9IHBhcmFtcy5kYXRhPy5pMThuIHx8IHRoaXMuY29uZmlnLmkxOG5cbiAgICB9KVxuICB9XG5cbiAgcHVibGljIGdldERlZmF1bHRIZWFkZXJzKCkge1xuICAgIHJldHVybiB7IFt0aGlzLmNvbmZpZy5pMThuPy5MQU5HX0hFQURFUl9LRVldOiB0aGlzLmNvbmZpZy5pMThuPy5sYW5nIH1cbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBwb3N0KG9wdGlvbnM6IElSZXF1ZXN0T3B0aW9ucyk6IFByb21pc2U8UmVzcG9uc2VPYmplY3Q+IHtcbiAgICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLnJlcUNsYXNzLnBvc3QoeyAuLi5vcHRpb25zLCBoZWFkZXJzOiB7IC4uLm9wdGlvbnMuaGVhZGVycywgLi4udGhpcy5nZXREZWZhdWx0SGVhZGVycygpIH0gfSlcbiAgICByZXR1cm4gcmVzXG4gIH1cbiAgcHVibGljIGFzeW5jIHVwbG9hZChvcHRpb25zOiBJVXBsb2FkUmVxdWVzdE9wdGlvbnMpOiBQcm9taXNlPFJlc3BvbnNlT2JqZWN0PiB7XG4gICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy5yZXFDbGFzcy51cGxvYWQoeyAuLi5vcHRpb25zLCBoZWFkZXJzOiB7IC4uLm9wdGlvbnMuaGVhZGVycywgLi4udGhpcy5nZXREZWZhdWx0SGVhZGVycygpIH0gfSlcbiAgICByZXR1cm4gcmVzXG4gIH1cbiAgcHVibGljIGFzeW5jIGRvd25sb2FkKG9wdGlvbnM6IElSZXF1ZXN0T3B0aW9ucyk6IFByb21pc2U8UmVzcG9uc2VPYmplY3Q+IHtcbiAgICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLnJlcUNsYXNzLmRvd25sb2FkKHsgLi4ub3B0aW9ucywgaGVhZGVyczogeyAuLi5vcHRpb25zLmhlYWRlcnMsIC4uLnRoaXMuZ2V0RGVmYXVsdEhlYWRlcnMoKSB9IH0pXG4gICAgcmV0dXJuIHJlc1xuICB9XG5cbiAgcHVibGljIGdldEJhc2VFbmRQb2ludChlbmRQb2ludEtleTogRW5kUG9pbnRLZXkgPSAnQ0xPVURfQVBJJykge1xuICAgIHJldHVybiBnZXRCYXNlRW5kUG9pbnQodGhpcy5jb25maWcuZW52LCBlbmRQb2ludEtleSlcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXRPYXV0aEFjY2Vzc1Rva2VuVjIob2F1dGhDbGllbnQ6IGFueSk6IFByb21pc2U8SUdldEFjY2Vzc1Rva2VuUmVzdWx0PiB7XG4gICAgY29uc3QgdmFsaWRBY2Nlc3NUb2tlbiA9IGF3YWl0IG9hdXRoQ2xpZW50LmdldEFjY2Vzc1Rva2VuKClcbiAgICBjb25zdCBjcmVkZW50aWFscyA9IGF3YWl0IG9hdXRoQ2xpZW50LmdldENyZWRlbnRpYWxzKClcbiAgICByZXR1cm4ge1xuICAgICAgYWNjZXNzVG9rZW46IHZhbGlkQWNjZXNzVG9rZW4sXG4gICAgICBhY2Nlc3NUb2tlbkV4cGlyZTogbmV3IERhdGUoY3JlZGVudGlhbHMuZXhwaXJlc19hdCkuZ2V0VGltZSgpLFxuICAgIH1cbiAgfVxuXG4gIC8qIGVzbGludC1kaXNhYmxlIGNvbXBsZXhpdHkgKi9cbiAgcHVibGljIGFzeW5jIHJlcXVlc3QoXG4gICAgYWN0aW9uOiBzdHJpbmcsXG4gICAgcGFyYW1zOiBLVjxhbnk+LFxuICAgIG9wdGlvbnM/OiB7XG4gICAgICBvblVwbG9hZFByb2dyZXNzPzogRnVuY3Rpb25cbiAgICAgIHBhdGhuYW1lPzogc3RyaW5nXG4gICAgICBwYXJzZT86IGJvb2xlYW5cbiAgICAgIGluUXVlcnk/OiBLVjxhbnk+XG4gICAgICBzZWFyY2g/OiBzdHJpbmdcbiAgICAgIGRlZmF1bHRRdWVyeT86IEtWPGFueT5cbiAgICB9LFxuICApOiBQcm9taXNlPFJlc3BvbnNlT2JqZWN0PiB7XG4gICAgY29uc3QgdGNiVHJhY2VLZXkgPSBgeC10Y2ItdHJhY2VfJHt0aGlzLmNvbmZpZy5lbnZ9YFxuICAgIGxldCBjb250ZW50VHlwZSA9ICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnXG5cbiAgICBjb25zdCB0bXBPYmo6IEtWPGFueT4gPSB7XG4gICAgICBhY3Rpb24sXG4gICAgICBkYXRhVmVyc2lvbjogREFUQV9WRVJTSU9OLFxuICAgICAgZW52OiB0aGlzLmNvbmZpZy5lbnYsXG4gICAgICAuLi5wYXJhbXMsXG4gICAgfVxuXG4gICAgaWYgKEFDVElPTlNfV0lUSE9VVF9BQ0NFU1NUT0tFTi5pbmRleE9mKGFjdGlvbikgPT09IC0xKSB7XG4gICAgICBjb25zdCBhcHAgPSB0aGlzLmNvbmZpZy5fZnJvbUFwcFxuXG4gICAgICBpZiAoIWFwcC5vYXV0aEluc3RhbmNlKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcigneW91IGNhblxcJ3QgcmVxdWVzdCB3aXRob3V0IGF1dGgnKVxuICAgICAgfVxuXG4gICAgICBjb25zdCB7IG9hdXRoSW5zdGFuY2UgfSA9IGFwcFxuICAgICAgY29uc3Qgb2F1dGhDbGllbnQgPSBvYXV0aEluc3RhbmNlLm9hdXRoMmNsaWVudFxuICAgICAgdG1wT2JqLmFjY2Vzc190b2tlbiA9IChhd2FpdCB0aGlzLmdldE9hdXRoQWNjZXNzVG9rZW5WMihvYXV0aENsaWVudCkpLmFjY2Vzc1Rva2VuXG4gICAgfVxuXG4gICAgLy8g5ou8Ym9keeWSjGNvbnRlbnQtdHlwZVxuICAgIGxldCBwYXlsb2FkXG4gICAgaWYgKGFjdGlvbiA9PT0gJ3N0b3JhZ2UudXBsb2FkRmlsZScpIHtcbiAgICAgIHBheWxvYWQgPSBuZXcgRm9ybURhdGEoKVxuICAgICAgT2JqZWN0LmtleXMocGF5bG9hZCkuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocGF5bG9hZCwga2V5KSAmJiBwYXlsb2FkW2tleV0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHBheWxvYWQuYXBwZW5kKGtleSwgdG1wT2JqW2tleV0pXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgICBjb250ZW50VHlwZSA9ICdtdWx0aXBhcnQvZm9ybS1kYXRhJ1xuICAgIH0gZWxzZSB7XG4gICAgICBjb250ZW50VHlwZSA9ICdhcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9VVRGLTgnXG4gICAgICBwYXlsb2FkID0ge31cbiAgICAgIE9iamVjdC5rZXlzKHRtcE9iaikuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgIGlmICh0bXBPYmpba2V5XSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgcGF5bG9hZFtrZXldID0gdG1wT2JqW2tleV1cbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9XG4gICAgY29uc3Qgb3B0czogYW55ID0ge1xuICAgICAgaGVhZGVyczoge1xuICAgICAgICAnY29udGVudC10eXBlJzogY29udGVudFR5cGUsXG4gICAgICAgIC4uLnRoaXMuZ2V0RGVmYXVsdEhlYWRlcnMoKSxcbiAgICAgIH0sXG4gICAgfVxuICAgIGlmIChvcHRpb25zPy5vblVwbG9hZFByb2dyZXNzKSB7XG4gICAgICBvcHRzLm9uVXBsb2FkUHJvZ3Jlc3MgPSBvcHRpb25zLm9uVXBsb2FkUHJvZ3Jlc3NcbiAgICB9XG5cbiAgICBpZiAodGhpcy5jb25maWcucmVnaW9uKSB7XG4gICAgICBvcHRzLmhlYWRlcnNbJ1gtVENCLVJlZ2lvbiddID0gdGhpcy5jb25maWcucmVnaW9uXG4gICAgfVxuXG4gICAgY29uc3QgdHJhY2VIZWFkZXIgPSB0aGlzLmxvY2FsQ2FjaGUuZ2V0U3RvcmUodGNiVHJhY2VLZXkpXG4gICAgaWYgKHRyYWNlSGVhZGVyKSB7XG4gICAgICBvcHRzLmhlYWRlcnNbJ1gtVENCLVRyYWNlJ10gPSB0cmFjZUhlYWRlclxuICAgIH1cblxuICAgIC8vIOWPkeWHuuivt+axglxuICAgIC8vIOaWsOeahCB1cmwg6ZyA6KaB5pC65bimIGVudiDlj4LmlbDov5vooYwgQ09SUyDmoKHpqoxcbiAgICAvLyDor7fmsYLpk77mjqXmlK/mjIHmt7vliqDliqjmgIEgcXVlcnkg5Y+C5pWw77yM5pa55L6/55So5oi36LCD6K+V5a6a5L2N6K+35rGCXG4gICAgY29uc3QgcGFyc2UgPSBvcHRpb25zPy5wYXJzZSAhPT0gdW5kZWZpbmVkID8gb3B0aW9ucy5wYXJzZSA6IHBhcmFtcy5wYXJzZVxuICAgIGNvbnN0IGluUXVlcnkgPSBvcHRpb25zPy5pblF1ZXJ5ICE9PSB1bmRlZmluZWQgPyBvcHRpb25zLmluUXVlcnkgOiBwYXJhbXMuaW5RdWVyeVxuICAgIGNvbnN0IHNlYXJjaCA9IG9wdGlvbnM/LnNlYXJjaCAhPT0gdW5kZWZpbmVkID8gb3B0aW9ucy5zZWFyY2ggOiBwYXJhbXMuc2VhcmNoXG5cbiAgICBsZXQgZm9ybWF0UXVlcnk6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7XG4gICAgICAuLi4ob3B0aW9ucz8uZGVmYXVsdFF1ZXJ5IHx8IHt9KSxcbiAgICAgIGVudjogdGhpcy5jb25maWcuZW52LFxuICAgIH1cbiAgICAvLyDlsJ3or5Xop6PmnpDlk43lupTmlbDmja7kuLogSlNPTlxuICAgIHBhcnNlICYmIChmb3JtYXRRdWVyeS5wYXJzZSA9IHRydWUpXG4gICAgaW5RdWVyeVxuICAgICAgJiYgKGZvcm1hdFF1ZXJ5ID0ge1xuICAgICAgICAuLi5pblF1ZXJ5LFxuICAgICAgICAuLi5mb3JtYXRRdWVyeSxcbiAgICAgIH0pXG5cbiAgICBjb25zdCBlbmRQb2ludE1vZGUgPSB0aGlzLmNvbmZpZy5lbmRQb2ludE1vZGUgfHwgJ0NMT1VEX0FQSSdcblxuICAgIGNvbnN0IHVybCA9IGdldEVuZFBvaW50SW5mbyh0aGlzLmNvbmZpZy5lbnYsIGVuZFBvaW50TW9kZSlcbiAgICBsZXQgQkFTRV9VUkwgPSB1cmwuYmFzZVVybFxuICAgIGNvbnN0IFBST1RPQ09MID0gdXJsLnByb3RvY29sXG5cbiAgICBpZiAoYWN0aW9uID09PSAnZnVuY3Rpb25zLmludm9rZUZ1bmN0aW9uJyAmJiBlbmRQb2ludE1vZGUgPT09ICdHQVRFV0FZJykge1xuICAgICAgQkFTRV9VUkwgPSBgJHtCQVNFX1VSTC5tYXRjaCgvXFwvXFwvKFteLz8jXSopLylbMF19L3dlYmBcbiAgICB9XG5cbiAgICAvLyDnlJ/miJDor7fmsYIgdXJsXG4gICAgbGV0IG5ld1VybFxuICAgIGlmIChvcHRpb25zLnBhdGhuYW1lKSB7XG4gICAgICBuZXdVcmwgPSBmb3JtYXRVcmwoXG4gICAgICAgIFBST1RPQ09MLFxuICAgICAgICBgJHtnZXRCYXNlRW5kUG9pbnQodGhpcy5jb25maWcuZW52LCBlbmRQb2ludE1vZGUpPy5yZXBsYWNlKC9eaHR0cHM/Oi8sICcnKX0vJHtvcHRpb25zLnBhdGhuYW1lfWAsXG4gICAgICAgIGZvcm1hdFF1ZXJ5LFxuICAgICAgKVxuICAgIH0gZWxzZSB7XG4gICAgICBuZXdVcmwgPSBmb3JtYXRVcmwoUFJPVE9DT0wsIEJBU0VfVVJMLCBmb3JtYXRRdWVyeSlcbiAgICB9XG5cbiAgICBpZiAoc2VhcmNoKSB7XG4gICAgICBuZXdVcmwgKz0gc2VhcmNoXG4gICAgfVxuXG4gICAgY29uc3QgcmVzOiBSZXNwb25zZU9iamVjdCA9IGF3YWl0IHRoaXMucG9zdCh7XG4gICAgICB1cmw6IG5ld1VybCxcbiAgICAgIGRhdGE6IHBheWxvYWQsXG4gICAgICAuLi5vcHRzLFxuICAgIH0pXG5cbiAgICAvLyDkv53lrZggdHJhY2UgaGVhZGVyXG4gICAgY29uc3QgcmVzVHJhY2VIZWFkZXIgPSByZXMuaGVhZGVyPy5bJ3gtdGNiLXRyYWNlJ11cbiAgICBpZiAocmVzVHJhY2VIZWFkZXIpIHtcbiAgICAgIHRoaXMubG9jYWxDYWNoZS5zZXRTdG9yZSh0Y2JUcmFjZUtleSwgcmVzVHJhY2VIZWFkZXIpXG4gICAgfVxuXG4gICAgaWYgKChOdW1iZXIocmVzLnN0YXR1cykgIT09IDIwMCAmJiBOdW1iZXIocmVzLnN0YXR1c0NvZGUpICE9PSAyMDApIHx8ICFyZXMuZGF0YSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCduZXR3b3JrIHJlcXVlc3QgZXJyb3InKVxuICAgIH1cblxuICAgIHJldHVybiByZXNcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBmZXRjaChvcHRpb25zOiBJRmV0Y2hPcHRpb25zICYgeyB0b2tlbj86IHN0cmluZyB9KTogUHJvbWlzZTxSZXNwb25zZU9iamVjdD4ge1xuICAgIGNvbnN0IHsgdG9rZW4sIGhlYWRlcnMgPSB7fSwgLi4ucmVzdE9wdGlvbnMgfSA9IG9wdGlvbnNcbiAgICBjb25zdCBnZXRBY2Nlc3NUb2tlbiA9IGFzeW5jICgpID0+IHtcbiAgICAgIGlmICh0b2tlbiAhPSBudWxsKSB7XG4gICAgICAgIHJldHVybiB0b2tlblxuICAgICAgfVxuICAgICAgY29uc3QgYXBwID0gdGhpcy5jb25maWcuX2Zyb21BcHBcblxuICAgICAgaWYgKCFhcHAub2F1dGhJbnN0YW5jZSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ3lvdSBjYW5cXCd0IHJlcXVlc3Qgd2l0aG91dCBhdXRoJylcbiAgICAgIH1cblxuICAgICAgY29uc3QgeyBvYXV0aEluc3RhbmNlIH0gPSBhcHBcbiAgICAgIGNvbnN0IG9hdXRoQ2xpZW50ID0gb2F1dGhJbnN0YW5jZS5vYXV0aDJjbGllbnRcbiAgICAgIHJldHVybiAoYXdhaXQgdGhpcy5nZXRPYXV0aEFjY2Vzc1Rva2VuVjIob2F1dGhDbGllbnQpKS5hY2Nlc3NUb2tlblxuICAgIH1cblxuICAgIGNvbnN0IGRvRmV0Y2ggPSBhc3luYyAoKSA9PiB0aGlzLnJlcUNsYXNzLmZldGNoKHtcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgLy8gJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgLy8gJ1gtUmVxdWVzdC1JZCc6IGAke3V0aWxzLmdlbmVyYXRlUmVxdWVzdElkKCl9YCxcbiAgICAgICAgLy8gJ1gtUmVxdWVzdC1UaW1lc3RhbXAnOiBgJHtEYXRlLm5vdygpfWAsXG4gICAgICAgICdYLVNESy1WZXJzaW9uJzogYEBjbG91ZGJhc2UvanMtc2RrLyR7Z2V0U2RrVmVyc2lvbigpfWAsXG4gICAgICAgIEF1dGhvcml6YXRpb246IGBCZWFyZXIgJHthd2FpdCBnZXRBY2Nlc3NUb2tlbigpfWAsXG4gICAgICAgIC4uLnRoaXMuZ2V0RGVmYXVsdEhlYWRlcnMoKSxcbiAgICAgICAgLi4uaGVhZGVycyxcbiAgICAgIH0sXG4gICAgICAuLi5yZXN0T3B0aW9ucyxcbiAgICB9KVxuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGRvRmV0Y2goKVxuICAgICAgcmV0dXJuIHJlc3VsdFxuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgaWYgKGVycj8uY29kZSA9PT0gJ0FDQ0VTU19UT0tFTl9FWFBJUkVEJykge1xuICAgICAgICAvLyDlpoLmnpzmmK/lm6DkuLogdG9rZW4g6L+H5pyf5aSx6LSl77yM5Yi3IHRva2VuIOWQjuWGjeivleS4gOasoVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuY29uZmlnPy5fZnJvbUFwcD8ub2F1dGhJbnN0YW5jZT8uYXV0aEFwaT8ucmVmcmVzaFRva2VuRm9yY2UgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICB0aHJvdyBlcnJcbiAgICAgICAgfVxuICAgICAgICBhd2FpdCB0aGlzLmNvbmZpZz8uX2Zyb21BcHA/Lm9hdXRoSW5zdGFuY2U/LmF1dGhBcGk/LnJlZnJlc2hUb2tlbkZvcmNlKClcbiAgICAgICAgcmV0dXJuIGRvRmV0Y2goKVxuICAgICAgfVxuICAgICAgLy8g5YW25LuW5Y6f5Zug5ZCR5LiK5oqb5Ye6XG5cbiAgICAgIHRocm93IGVyclxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBzZW5kKGFjdGlvbjogc3RyaW5nLCBkYXRhOiBLVjxhbnk+ID0ge30sIG9wdGlvbnM6IEtWPGFueT4gPSB7fSk6IFByb21pc2U8YW55PiB7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLnJlcXVlc3QoYWN0aW9uLCBkYXRhLCB7IC4uLm9wdGlvbnMsIG9uVXBsb2FkUHJvZ3Jlc3M6IGRhdGEub25VcGxvYWRQcm9ncmVzcyB9KVxuXG4gICAgaWYgKHJlc3BvbnNlLmRhdGEuY29kZSAmJiB0aGlzLnRocm93V2hlblJlcXVlc3RGYWlsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICBjb2RlOiBFUlJPUlMuT1BFUkFUSU9OX0ZBSUwsXG4gICAgICAgIG1zZzogYFske3Jlc3BvbnNlLmRhdGEuY29kZX1dICR7cmVzcG9uc2UuZGF0YS5tZXNzYWdlfWAsXG4gICAgICB9KSwpXG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3BvbnNlLmRhdGFcbiAgfVxufVxuXG5jb25zdCByZXF1ZXN0TWFwOiBLVjxDbG91ZGJhc2VSZXF1ZXN0PiA9IHt9XG5cbmV4cG9ydCBmdW5jdGlvbiBpbml0UmVxdWVzdChjb25maWc6IElDbG91ZGJhc2VSZXF1ZXN0Q29uZmlnKSB7XG4gIHJlcXVlc3RNYXBbY29uZmlnLmVudl0gPSBuZXcgQ2xvdWRiYXNlUmVxdWVzdCh7XG4gICAgLi4uY29uZmlnLFxuICAgIHRocm93OiB0cnVlLFxuICB9KVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmVxdWVzdEJ5RW52SWQoZW52OiBzdHJpbmcpOiBDbG91ZGJhc2VSZXF1ZXN0IHtcbiAgcmV0dXJuIHJlcXVlc3RNYXBbZW52XVxufVxuIl19
@@ -63,7 +63,7 @@ export function setRegionLevelEndpoint(env, region, protocol) {
63
63
  }
64
64
  export function getBaseEndPoint(env, endPointKey) {
65
65
  if (endPointKey === void 0) { endPointKey = 'CLOUD_API'; }
66
- var info = getEndPointInfo(env, endPointKey);
66
+ var info = getEndPointInfo(env, endPointKey || 'CLOUD_API');
67
67
  var PROTOCOL = info.protocol, BASE_URL = info.baseUrl;
68
68
  var webEndpoint = "".concat(PROTOCOL).concat(BASE_URL);
69
69
  return webEndpoint.match(/(http(s)?:)?\/\/([^/?#]*)/)[0];
@@ -81,4 +81,4 @@ export var LOGINTYPE;
81
81
  LOGINTYPE["PHONE"] = "PHONE";
82
82
  })(LOGINTYPE || (LOGINTYPE = {}));
83
83
  export var OAUTH2_LOGINTYPE_PREFIX = 'OAUTH2';
84
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbnN0YW50cy9jb21tb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFHeEMsSUFBWSxtQkFBbUIsR0FBd0MsU0FBUyxXQUFqRCxFQUFlLG9CQUFvQixHQUFLLFNBQVMsWUFBZCxDQUFjO0FBSXhGLElBQUksVUFBVSxHQUFHLEVBQUUsQ0FBQTtBQUNuQixJQUFJLE9BQU8sR0FBRyxtQkFBbUIsQ0FBQTtBQUVqQyxNQUFNLFVBQVUsYUFBYSxDQUFDLE9BQWU7SUFDM0MsVUFBVSxHQUFHLE9BQU8sQ0FBQTtBQUN0QixDQUFDO0FBQ0QsTUFBTSxVQUFVLGFBQWE7SUFDM0IsT0FBTyxVQUFVLENBQUE7QUFDbkIsQ0FBQztBQUNELE1BQU0sVUFBVSxVQUFVLENBQUMsSUFBWTtJQUNyQyxPQUFPLEdBQUcsSUFBSSxDQUFBO0lBQ2QsbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUE7QUFDM0IsQ0FBQztBQUNELE1BQU0sVUFBVSxVQUFVO0lBQ3hCLE9BQU8sT0FBTyxDQUFBO0FBQ2hCLENBQUM7QUFDRCxNQUFNLENBQUMsSUFBTSxZQUFZLEdBQUcsWUFBWSxDQUFBO0FBY3hDLElBQU0sa0JBQWtCLEdBQXdCLEVBQUUsQ0FBQTtBQUdsRCxJQUFNLDBCQUEwQixHQUFHLENBQUMsS0FBSyxFQUFFLGFBQWEsRUFBRSxRQUFRLENBQUMsQ0FBQTtBQUVuRSxJQUFNLGdCQUFnQixHQUFHLFFBQVEsQ0FBQTtBQUVqQyxTQUFTLGVBQWUsQ0FBQyxJQUFrQjtJQUN6QyxPQUFPLGtCQUFrQixDQUFDLElBQUksQ0FBQyxVQUFBLFVBQVUsSUFBSSxPQUFBLDBCQUEwQixDQUFDLE1BQU0sQ0FBQyxVQUFBLFNBQVMsSUFBSSxPQUFBLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxJQUFJLEVBQXZC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Y2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbmRQb2ludEtleSB9IGZyb20gJ0BjbG91ZGJhc2UvdHlwZXMnXG5pbXBvcnQgeyBjb25zdGFudHMgfSBmcm9tICdAY2xvdWRiYXNlL3V0aWxpdGllcydcblxuLy8gQHRzLWlnbm9yZVxuY29uc3QgeyBzZXRTZGtOYW1lOiBzZXRVdGlsaXRpZXNTZGtOYW1lLCBzZXRQcm90b2NvbDogc2V0VXRpbGl0aWVzUHJvdG9jb2wgfSA9IGNvbnN0YW50c1xuLyoqXG4gKiBTREtcbiAqL1xubGV0IHNka1ZlcnNpb24gPSAnJ1xubGV0IHNka05hbWUgPSAnQGNsb3VkYmFzZS9qcy1zZGsnXG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRTZGtWZXJzaW9uKHZlcnNpb246IHN0cmluZykge1xuICBzZGtWZXJzaW9uID0gdmVyc2lvblxufVxuZXhwb3J0IGZ1bmN0aW9uIGdldFNka1ZlcnNpb24oKSB7XG4gIHJldHVybiBzZGtWZXJzaW9uXG59XG5leHBvcnQgZnVuY3Rpb24gc2V0U2RrTmFtZShuYW1lOiBzdHJpbmcpIHtcbiAgc2RrTmFtZSA9IG5hbWVcbiAgc2V0VXRpbGl0aWVzU2RrTmFtZShuYW1lKVxufVxuZXhwb3J0IGZ1bmN0aW9uIGdldFNka05hbWUoKSB7XG4gIHJldHVybiBzZGtOYW1lXG59XG5leHBvcnQgY29uc3QgREFUQV9WRVJTSU9OID0gJzIwMjAtMDEtMTAnXG5cbmludGVyZmFjZSBFbmRQb2ludEluZm8ge1xuICBlbnY6IHN0cmluZ1xuICBlbmRQb2ludEtleTogRW5kUG9pbnRLZXlcbiAgcmVnaW9uPzogc3RyaW5nXG4gIGJhc2VVcmw/OiBzdHJpbmdcbiAgcHJvdG9jb2w/OiBzdHJpbmdcbn1cbi8qKlxuICogIOaJgOaciSBlbmRQb2ludCDkv6Hmga9cbiAqICDpgb/lhY3nm7TmjqXmk43kvZzor6XmlbDnu4RcbiAqICDkvb/nlKggc2V0RW5kUG9pbnRJbmZv44CBIGdldEVuZFBvaW50SW5mb1xuICovXG5jb25zdCBFTkRfUE9JTlRfSU5GT19BUlI6IEFycmF5PEVuZFBvaW50SW5mbz4gPSBbXVxuXG4vKiog55So5p2l5p+l5om+IGVuZFBvaW50IOeahOWtl+autSAqL1xuY29uc3QgRU5EX1BPSU5UX0lORk9fU0VBUkNIX0tFWVMgPSBbJ2VudicsICdlbmRQb2ludEtleScsICdyZWdpb24nXVxuXG5jb25zdCBERUZBVUxUX1BST1RPQ09MID0gJ2h0dHBzOidcblxuZnVuY3Rpb24gZmluZE1hdGNoZWRJbmZvKGluZm86IEVuZFBvaW50SW5mbykge1xuICByZXR1cm4gRU5EX1BPSU5UX0lORk9fQVJSLmZpbmQodGFyZ2V0SW5mbyA9PiBFTkRfUE9JTlRfSU5GT19TRUFSQ0hfS0VZUy5maWx0ZXIoc2VhcmNoS2V5ID0+IGluZm9bc2VhcmNoS2V5XSAhPSBudWxsKS5ldmVyeShzZWFyY2hLZXkgPT4gdGFyZ2V0SW5mb1tzZWFyY2hLZXldID09PSBpbmZvW3NlYXJjaEtleV0sKSwpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRFbmRQb2ludEluZm8obmV3SW5mbzogRW5kUG9pbnRJbmZvKSB7XG4gIGNvbnN0IGVuZFBvaW50SW5mbyA9IGZpbmRNYXRjaGVkSW5mbyhuZXdJbmZvKVxuICBpZiAoZW5kUG9pbnRJbmZvKSB7XG4gICAgaWYgKG5ld0luZm8uYmFzZVVybCAhPSBudWxsKSB7XG4gICAgICBlbmRQb2ludEluZm8uYmFzZVVybCA9IG5ld0luZm8uYmFzZVVybFxuICAgIH1cbiAgICBpZiAobmV3SW5mby5wcm90b2NvbCAhPSBudWxsKSB7XG4gICAgICBlbmRQb2ludEluZm8ucHJvdG9jb2wgPSBuZXdJbmZvLnByb3RvY29sXG4gICAgfVxuICB9IGVsc2Uge1xuICAgIEVORF9QT0lOVF9JTkZPX0FSUi5wdXNoKHsgLi4ubmV3SW5mbywgcHJvdG9jb2w6IG5ld0luZm8ucHJvdG9jb2wgPz8gREVGQVVMVF9QUk9UT0NPTCB9KVxuICB9XG5cbiAgLy8g5L+d5oyB5pen5Luj56CB6YC76L6RXG4gIGlmIChuZXdJbmZvLmVuZFBvaW50S2V5ID09PSAnQ0xPVURfQVBJJykge1xuICAgIHNldFV0aWxpdGllc1Byb3RvY29sKChuZXdJbmZvLnByb3RvY29sID8/IERFRkFVTFRfUFJPVE9DT0wpIGFzICdodHRwJyB8ICdodHRwcycpXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEVuZFBvaW50SW5mbyhlbnY6IHN0cmluZywgZW5kUG9pbnRLZXk6IEVuZFBvaW50S2V5LCByZWdpb24/OiBzdHJpbmcpIHtcbiAgcmV0dXJuIGZpbmRNYXRjaGVkSW5mbyh7IGVudiwgZW5kUG9pbnRLZXksIHJlZ2lvbiB9KVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElTZXRFbmRQb2ludFdpdGhLZXkge1xuICBrZXk6IEVuZFBvaW50S2V5XG4gIHVybD86IHN0cmluZ1xuICBwcm90b2NvbD86ICdodHRwJyB8ICdodHRwcydcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldEdhdGV3YXlFbmRQb2ludFdpdGhFbnYoZW52OiBzdHJpbmcsIHByb3RvY29sPzogJ2h0dHAnIHwgJ2h0dHBzJykge1xuICBzZXRFbmRQb2ludEluZm8oeyBlbmRQb2ludEtleTogJ0dBVEVXQVknLCBlbnYsIGJhc2VVcmw6IGAvLyR7ZW52fS5hcGkudGNsb3VkYmFzZWdhdGV3YXkuY29tL3YxYCwgcHJvdG9jb2wgfSlcbn1cbmV4cG9ydCBmdW5jdGlvbiBzZXRSZWdpb25MZXZlbEVuZHBvaW50KGVudjogc3RyaW5nLCByZWdpb246IHN0cmluZywgcHJvdG9jb2w/OiAnaHR0cCcgfCAnaHR0cHMnKSB7XG4gIGNvbnN0IGJhc2VVcmwgPSBgLy8ke2Vudn0uJHtyZWdpb24gfHwgJ2FwLXNoYW5naGFpJ30udGNiLWFwaS50ZW5jZW50Y2xvdWRhcGkuY29tL3dlYmBcbiAgc2V0RW5kUG9pbnRJbmZvKHsgZW52LCByZWdpb24sIGJhc2VVcmwsIHByb3RvY29sLCBlbmRQb2ludEtleTogJ0NMT1VEX0FQSScgfSlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEJhc2VFbmRQb2ludChlbnY6IHN0cmluZywgZW5kUG9pbnRLZXk6IEVuZFBvaW50S2V5ID0gJ0NMT1VEX0FQSScpIHtcbiAgY29uc3QgaW5mbyA9IGdldEVuZFBvaW50SW5mbyhlbnYsIGVuZFBvaW50S2V5KVxuXG4gIGNvbnN0IHsgcHJvdG9jb2w6IFBST1RPQ09MLCBiYXNlVXJsOiBCQVNFX1VSTCB9ID0gaW5mb1xuICBjb25zdCB3ZWJFbmRwb2ludCA9IGAke1BST1RPQ09MfSR7QkFTRV9VUkx9YFxuICAvLyBAdG9kbyDkuLTml7blhbzlrrnlsI/nqIvluo9cbiAgcmV0dXJuIHdlYkVuZHBvaW50Lm1hdGNoKC8oaHR0cChzKT86KT9cXC9cXC8oW14vPyNdKikvKVswXVxuICAvLyByZXR1cm4gYCR7bmV3IFVSTCh3ZWJFbmRwb2ludCkub3JpZ2lufWBcbn1cblxuZXhwb3J0IGVudW0gTE9HSU5UWVBFIHtcbiAgTlVMTCA9ICdOVUxMJyxcbiAgQU5PTllNT1VTID0gJ0FOT05ZTU9VUycsXG4gIFdFQ0hBVCA9ICdXRUNIQVQnLFxuICBXRUNIQVRfUFVCTElDID0gJ1dFQ0hBVC1QVUJMSUMnLFxuICBXRUNIQVRfT1BFTiA9ICdXRUNIQVQtT1BFTicsXG4gIENVU1RPTSA9ICdDVVNUT00nLFxuICBFTUFJTCA9ICdFTUFJTCcsXG4gIFVTRVJOQU1FID0gJ1VTRVJOQU1FJyxcbiAgUEhPTkUgPSAnUEhPTkUnLFxufVxuXG5leHBvcnQgY29uc3QgT0FVVEgyX0xPR0lOVFlQRV9QUkVGSVggPSAnT0FVVEgyJ1xuIl19
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbnN0YW50cy9jb21tb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFHeEMsSUFBWSxtQkFBbUIsR0FBd0MsU0FBUyxXQUFqRCxFQUFlLG9CQUFvQixHQUFLLFNBQVMsWUFBZCxDQUFjO0FBSXhGLElBQUksVUFBVSxHQUFHLEVBQUUsQ0FBQTtBQUNuQixJQUFJLE9BQU8sR0FBRyxtQkFBbUIsQ0FBQTtBQUVqQyxNQUFNLFVBQVUsYUFBYSxDQUFDLE9BQWU7SUFDM0MsVUFBVSxHQUFHLE9BQU8sQ0FBQTtBQUN0QixDQUFDO0FBQ0QsTUFBTSxVQUFVLGFBQWE7SUFDM0IsT0FBTyxVQUFVLENBQUE7QUFDbkIsQ0FBQztBQUNELE1BQU0sVUFBVSxVQUFVLENBQUMsSUFBWTtJQUNyQyxPQUFPLEdBQUcsSUFBSSxDQUFBO0lBQ2QsbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUE7QUFDM0IsQ0FBQztBQUNELE1BQU0sVUFBVSxVQUFVO0lBQ3hCLE9BQU8sT0FBTyxDQUFBO0FBQ2hCLENBQUM7QUFDRCxNQUFNLENBQUMsSUFBTSxZQUFZLEdBQUcsWUFBWSxDQUFBO0FBY3hDLElBQU0sa0JBQWtCLEdBQXdCLEVBQUUsQ0FBQTtBQUdsRCxJQUFNLDBCQUEwQixHQUFHLENBQUMsS0FBSyxFQUFFLGFBQWEsRUFBRSxRQUFRLENBQUMsQ0FBQTtBQUVuRSxJQUFNLGdCQUFnQixHQUFHLFFBQVEsQ0FBQTtBQUVqQyxTQUFTLGVBQWUsQ0FBQyxJQUFrQjtJQUN6QyxPQUFPLGtCQUFrQixDQUFDLElBQUksQ0FBQyxVQUFBLFVBQVUsSUFBSSxPQUFBLDBCQUEwQixDQUFDLE1BQU0sQ0FBQyxVQUFBLFNBQVMsSUFBSSxPQUFBLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxJQUFJLEVBQXZC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QUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW5kUG9pbnRLZXkgfSBmcm9tICdAY2xvdWRiYXNlL3R5cGVzJ1xuaW1wb3J0IHsgY29uc3RhbnRzIH0gZnJvbSAnQGNsb3VkYmFzZS91dGlsaXRpZXMnXG5cbi8vIEB0cy1pZ25vcmVcbmNvbnN0IHsgc2V0U2RrTmFtZTogc2V0VXRpbGl0aWVzU2RrTmFtZSwgc2V0UHJvdG9jb2w6IHNldFV0aWxpdGllc1Byb3RvY29sIH0gPSBjb25zdGFudHNcbi8qKlxuICogU0RLXG4gKi9cbmxldCBzZGtWZXJzaW9uID0gJydcbmxldCBzZGtOYW1lID0gJ0BjbG91ZGJhc2UvanMtc2RrJ1xuXG5leHBvcnQgZnVuY3Rpb24gc2V0U2RrVmVyc2lvbih2ZXJzaW9uOiBzdHJpbmcpIHtcbiAgc2RrVmVyc2lvbiA9IHZlcnNpb25cbn1cbmV4cG9ydCBmdW5jdGlvbiBnZXRTZGtWZXJzaW9uKCkge1xuICByZXR1cm4gc2RrVmVyc2lvblxufVxuZXhwb3J0IGZ1bmN0aW9uIHNldFNka05hbWUobmFtZTogc3RyaW5nKSB7XG4gIHNka05hbWUgPSBuYW1lXG4gIHNldFV0aWxpdGllc1Nka05hbWUobmFtZSlcbn1cbmV4cG9ydCBmdW5jdGlvbiBnZXRTZGtOYW1lKCkge1xuICByZXR1cm4gc2RrTmFtZVxufVxuZXhwb3J0IGNvbnN0IERBVEFfVkVSU0lPTiA9ICcyMDIwLTAxLTEwJ1xuXG5pbnRlcmZhY2UgRW5kUG9pbnRJbmZvIHtcbiAgZW52OiBzdHJpbmdcbiAgZW5kUG9pbnRLZXk6IEVuZFBvaW50S2V5XG4gIHJlZ2lvbj86IHN0cmluZ1xuICBiYXNlVXJsPzogc3RyaW5nXG4gIHByb3RvY29sPzogc3RyaW5nXG59XG4vKipcbiAqICDmiYDmnIkgZW5kUG9pbnQg5L+h5oGvXG4gKiAg6YG/5YWN55u05o6l5pON5L2c6K+l5pWw57uEXG4gKiAg5L2/55SoIHNldEVuZFBvaW50SW5mb+OAgSBnZXRFbmRQb2ludEluZm9cbiAqL1xuY29uc3QgRU5EX1BPSU5UX0lORk9fQVJSOiBBcnJheTxFbmRQb2ludEluZm8+ID0gW11cblxuLyoqIOeUqOadpeafpeaJviBlbmRQb2ludCDnmoTlrZfmrrUgKi9cbmNvbnN0IEVORF9QT0lOVF9JTkZPX1NFQVJDSF9LRVlTID0gWydlbnYnLCAnZW5kUG9pbnRLZXknLCAncmVnaW9uJ11cblxuY29uc3QgREVGQVVMVF9QUk9UT0NPTCA9ICdodHRwczonXG5cbmZ1bmN0aW9uIGZpbmRNYXRjaGVkSW5mbyhpbmZvOiBFbmRQb2ludEluZm8pIHtcbiAgcmV0dXJuIEVORF9QT0lOVF9JTkZPX0FSUi5maW5kKHRhcmdldEluZm8gPT4gRU5EX1BPSU5UX0lORk9fU0VBUkNIX0tFWVMuZmlsdGVyKHNlYXJjaEtleSA9PiBpbmZvW3NlYXJjaEtleV0gIT0gbnVsbCkuZXZlcnkoc2VhcmNoS2V5ID0+IHRhcmdldEluZm9bc2VhcmNoS2V5XSA9PT0gaW5mb1tzZWFyY2hLZXldLCksKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0RW5kUG9pbnRJbmZvKG5ld0luZm86IEVuZFBvaW50SW5mbykge1xuICBjb25zdCBlbmRQb2ludEluZm8gPSBmaW5kTWF0Y2hlZEluZm8obmV3SW5mbylcbiAgaWYgKGVuZFBvaW50SW5mbykge1xuICAgIGlmIChuZXdJbmZvLmJhc2VVcmwgIT0gbnVsbCkge1xuICAgICAgZW5kUG9pbnRJbmZvLmJhc2VVcmwgPSBuZXdJbmZvLmJhc2VVcmxcbiAgICB9XG4gICAgaWYgKG5ld0luZm8ucHJvdG9jb2wgIT0gbnVsbCkge1xuICAgICAgZW5kUG9pbnRJbmZvLnByb3RvY29sID0gbmV3SW5mby5wcm90b2NvbFxuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBFTkRfUE9JTlRfSU5GT19BUlIucHVzaCh7IC4uLm5ld0luZm8sIHByb3RvY29sOiBuZXdJbmZvLnByb3RvY29sID8/IERFRkFVTFRfUFJPVE9DT0wgfSlcbiAgfVxuXG4gIC8vIOS/neaMgeaXp+S7o+eggemAu+i+kVxuICBpZiAobmV3SW5mby5lbmRQb2ludEtleSA9PT0gJ0NMT1VEX0FQSScpIHtcbiAgICBzZXRVdGlsaXRpZXNQcm90b2NvbCgobmV3SW5mby5wcm90b2NvbCA/PyBERUZBVUxUX1BST1RPQ09MKSBhcyAnaHR0cCcgfCAnaHR0cHMnKVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRFbmRQb2ludEluZm8oZW52OiBzdHJpbmcsIGVuZFBvaW50S2V5OiBFbmRQb2ludEtleSwgcmVnaW9uPzogc3RyaW5nKSB7XG4gIHJldHVybiBmaW5kTWF0Y2hlZEluZm8oeyBlbnYsIGVuZFBvaW50S2V5LCByZWdpb24gfSlcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJU2V0RW5kUG9pbnRXaXRoS2V5IHtcbiAga2V5OiBFbmRQb2ludEtleVxuICB1cmw/OiBzdHJpbmdcbiAgcHJvdG9jb2w/OiAnaHR0cCcgfCAnaHR0cHMnXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRHYXRld2F5RW5kUG9pbnRXaXRoRW52KGVudjogc3RyaW5nLCBwcm90b2NvbD86ICdodHRwJyB8ICdodHRwcycpIHtcbiAgc2V0RW5kUG9pbnRJbmZvKHsgZW5kUG9pbnRLZXk6ICdHQVRFV0FZJywgZW52LCBiYXNlVXJsOiBgLy8ke2Vudn0uYXBpLnRjbG91ZGJhc2VnYXRld2F5LmNvbS92MWAsIHByb3RvY29sIH0pXG59XG5leHBvcnQgZnVuY3Rpb24gc2V0UmVnaW9uTGV2ZWxFbmRwb2ludChlbnY6IHN0cmluZywgcmVnaW9uOiBzdHJpbmcsIHByb3RvY29sPzogJ2h0dHAnIHwgJ2h0dHBzJykge1xuICBjb25zdCBiYXNlVXJsID0gYC8vJHtlbnZ9LiR7cmVnaW9uIHx8ICdhcC1zaGFuZ2hhaSd9LnRjYi1hcGkudGVuY2VudGNsb3VkYXBpLmNvbS93ZWJgXG4gIHNldEVuZFBvaW50SW5mbyh7IGVudiwgcmVnaW9uLCBiYXNlVXJsLCBwcm90b2NvbCwgZW5kUG9pbnRLZXk6ICdDTE9VRF9BUEknIH0pXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRCYXNlRW5kUG9pbnQoZW52OiBzdHJpbmcsIGVuZFBvaW50S2V5OiBFbmRQb2ludEtleSA9ICdDTE9VRF9BUEknKSB7XG4gIGNvbnN0IGluZm8gPSBnZXRFbmRQb2ludEluZm8oZW52LCBlbmRQb2ludEtleSB8fCAnQ0xPVURfQVBJJylcblxuICBjb25zdCB7IHByb3RvY29sOiBQUk9UT0NPTCwgYmFzZVVybDogQkFTRV9VUkwgfSA9IGluZm9cbiAgY29uc3Qgd2ViRW5kcG9pbnQgPSBgJHtQUk9UT0NPTH0ke0JBU0VfVVJMfWBcbiAgLy8gQHRvZG8g5Li05pe25YW85a655bCP56iL5bqPXG4gIHJldHVybiB3ZWJFbmRwb2ludC5tYXRjaCgvKGh0dHAocyk/Oik/XFwvXFwvKFteLz8jXSopLylbMF1cbiAgLy8gcmV0dXJuIGAke25ldyBVUkwod2ViRW5kcG9pbnQpLm9yaWdpbn1gXG59XG5cbmV4cG9ydCBlbnVtIExPR0lOVFlQRSB7XG4gIE5VTEwgPSAnTlVMTCcsXG4gIEFOT05ZTU9VUyA9ICdBTk9OWU1PVVMnLFxuICBXRUNIQVQgPSAnV0VDSEFUJyxcbiAgV0VDSEFUX1BVQkxJQyA9ICdXRUNIQVQtUFVCTElDJyxcbiAgV0VDSEFUX09QRU4gPSAnV0VDSEFULU9QRU4nLFxuICBDVVNUT00gPSAnQ1VTVE9NJyxcbiAgRU1BSUwgPSAnRU1BSUwnLFxuICBVU0VSTkFNRSA9ICdVU0VSTkFNRScsXG4gIFBIT05FID0gJ1BIT05FJyxcbn1cblxuZXhwb3J0IGNvbnN0IE9BVVRIMl9MT0dJTlRZUEVfUFJFRklYID0gJ09BVVRIMidcbiJdfQ==
package/dist/esm/index.js CHANGED
@@ -160,7 +160,7 @@ var Cloudbase = (function () {
160
160
  setRegionLevelEndpoint(env, config.region || '');
161
161
  setGatewayEndPointWithEnv(env);
162
162
  var app = new Cloudbase(this.cloudbaseConfig);
163
- initRequest({ env: env, region: config.region || '', timeout: timeout, oauthClient: oauthClient, _fromApp: app, i18n: i18n });
163
+ initRequest({ env: env, region: config.region || '', timeout: timeout, oauthClient: oauthClient, _fromApp: app, i18n: i18n, endPointMode: config.endPointMode });
164
164
  app.requestClient = this.requestClient;
165
165
  (_a = this === null || this === void 0 ? void 0 : this.fire) === null || _a === void 0 ? void 0 : _a.call(this, 'cloudbase_init', app);
166
166
  this.try2InitAuth(config, app);
@@ -326,4 +326,4 @@ var Cloudbase = (function () {
326
326
  export var cloudbase = new Cloudbase();
327
327
  cloudbase.useAdapters(adapterForWxMp);
328
328
  export default cloudbase;
329
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQVkxRSxPQUFPLGNBQWMsTUFBTSwwQkFBMEIsQ0FBQTtBQUNyRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFDbEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBR3pDLE9BQU8sRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUV4RSxPQUFPLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDL0QsT0FBTyxFQUNMLFVBQVUsRUFDVixhQUFhLEVBQ2Isc0JBQXNCLEVBQ3RCLFVBQVUsRUFDVix5QkFBeUIsRUFFekIsZUFBZSxFQUNmLGVBQWUsRUFDZixhQUFhLEdBQ2QsTUFBTSxvQkFBb0IsQ0FBQTtBQUMzQixPQUFPLEVBQUUsU0FBUyxFQUFTLE1BQU0sYUFBYSxDQUFBO0FBQzlDLE9BQU8sRUFBRSxZQUFZLEVBQW9CLE1BQU0saUJBQWlCLENBQUE7QUFDaEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBQ3BELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFDM0IsSUFBQSxXQUFXLEdBQXdCLFFBQVEsWUFBaEMsRUFBRSxpQkFBaUIsR0FBSyxRQUFRLGtCQUFiLENBQWE7QUFDM0MsSUFBQSxNQUFNLEdBQXlCLFNBQVMsT0FBbEMsRUFBRSxrQkFBa0IsR0FBSyxTQUFTLG1C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LENBQUU7YUFDbEQ7U0FDRixDQUFDOzs7O29EQVdEO0lBNkdILGdCQUFDO0NBQUEsQUFoUEQsSUFnUEM7QUFFRCxNQUFNLENBQUMsSUFBTSxTQUFTLEdBQWUsSUFBSSxTQUFTLEVBQUUsQ0FBQTtBQUNwRCxTQUFTLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxDQUFBO0FBRXJDLGVBQWUsU0FBUyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYWRhcHRlcnMsIGNvbnN0YW50cywgdXRpbHMsIGhlbHBlcnMgfSBmcm9tICdAY2xvdWRiYXNlL3V0aWxpdGllcydcbmltcG9ydCB7IFNES0FkYXB0ZXJJbnRlcmZhY2UsIENsb3VkYmFzZUFkYXB0ZXIsIElSZXF1ZXN0Q29uZmlnIH0gZnJvbSAnQGNsb3VkYmFzZS9hZGFwdGVyLWludGVyZmFjZSdcbmltcG9ydCB7XG4gIElDbG91ZGJhc2VDb25maWcsXG4gIElDbG91ZGJhc2VVcGdyYWRlZENvbmZpZyxcbiAgSUNsb3VkYmFzZSxcbiAgSUNsb3VkYmFzZUV4dGVuc2lvbixcbiAgS1YsXG4gIElDbG91ZGJhc2VQbGF0Zm9ybUluZm8sXG4gIEVuZFBvaW50S2V5LFxufSBmcm9tICdAY2xvdWRiYXNlL3R5cGVzJ1xuaW1wb3J0IHsgSUNsb3VkYmFzZUF1dGggfSBmcm9tICdAY2xvdWRiYXNlL3R5cGVzL2F1dGgnXG5pbXBvcnQgYWRhcHRlckZvcld4TXAgZnJvbSAnQGNsb3VkYmFzZS9hZGFwdGVyLXd4X21wJ1xuaW1wb3J0IHsgcmVnaXN0ZXJDb21wb25lbnQsIHJlZ2lzdGVySG9vayB9IGZyb20gJy4vbGlicy9jb21wb25lbnQnXG5pbXBvcnQgeyBQbGF0Zm9ybSB9IGZyb20gJy4vbGlicy9hZGFwdGVyJ1xuaW1wb3J0IHsgSUNsb3VkYmFzZUNvbXBvbmVudCwgSUNsb3VkYmFzZUhvb2sgfSBmcm9tICdAY2xvdWRiYXNlL3R5cGVzL2NvbXBvbmVudCdcbmltcG9ydCB7IElDbG91ZGJhc2VDYWNoZSB9IGZyb20gJ0BjbG91ZGJhc2UvdHlwZXMvY2FjaGUnXG5pbXBvcnQgeyBpbml0Q2FjaGUsIGdldENhY2hlQnlFbnZJZCwgZ2V0TG9jYWxDYWNoZSB9IGZyb20gJy4vbGlicy9jYWNoZSdcbmltcG9ydCB7IElDbG91ZGJhc2VSZXF1ZXN0IH0gZnJvbSAnQGNsb3VkYmFzZS90eXBlcy9yZXF1ZXN0J1xuaW1wb3J0IHsgaW5pdFJlcXVlc3QsIGdldFJlcXVlc3RCeUVudklkIH0gZnJvbSAnLi9saWJzL3JlcXVlc3QnXG5pbXBvcnQge1xuICBnZXRTZGtOYW1lLFxuICBzZXRTZGtWZXJzaW9uLFxuICBzZXRSZWdpb25MZXZlbEVuZHBvaW50LFxuICBzZXRTZGtOYW1lLFxuICBzZXRHYXRld2F5RW5kUG9pbnRXaXRoRW52LFxuICB0eXBlIElTZXRFbmRQb2ludFdpdGhLZXksXG4gIHNldEVuZFBvaW50SW5mbyxcbiAgZ2V0RW5kUG9pbnRJbmZvLFxuICBnZXRTZGtWZXJzaW9uLFxufSBmcm9tICcuL2NvbnN0YW50cy9jb21tb24nXG5pbXBvcnQgeyBpMThuUHJveHksIExBTkdTIH0gZnJvbSAnLi9saWJzL2xhbmcnXG5pbXBvcnQgeyBnZW5lcmF0ZUFwaXMsIGdlbmVyYXRlQ2FsbEFwaXMgfSBmcm9tICcuL2xpYnMvY2FsbEFwaXMnXG5leHBvcnQgeyBnZXRCYXNlRW5kUG9pbnQgfSBmcm9tICcuL2NvbnN0YW50cy9jb21tb24nXG5leHBvcnQgeyBMQU5HUyB9IGZyb20gJy4vbGlicy9sYW5nJ1xuY29uc3QgeyB1c2VBZGFwdGVycywgdXNlRGVmYXVsdEFkYXB0ZXIgfSA9IGFkYXB0ZXJzXG5jb25zdCB7IEVSUk9SUywgQ09NTVVOSVRZX1NJVEVfVVJMIH0gPSBjb25zdGFudHNcbmNvbnN0IHsgcHJpbnRXYXJuIH0gPSB1dGlsc1xuY29uc3QgeyBjYXRjaEVycm9yc0RlY29yYXRvciB9ID0gaGVscGVyc1xuXG4vKipcbiAqIEBjb25zdGFudCDpu5jorqTphY3nva5cbiAqL1xuY29uc3QgREVGQVVMVF9JTklUX0NPTkZJRzogUGFydGlhbDxJQ2xvdWRiYXNlQ29uZmlnPiA9IHtcbiAgdGltZW91dDogMTUwMDAsXG4gIHBlcnNpc3RlbmNlOiAnbG9jYWwnLCAvLyDmjIHkuYXljJblrZjlgqjnsbvlnotcbn1cblxuLy8gdGltZW91dOS4iumZkDEw5YiG6ZKfXG5jb25zdCBNQVhfVElNRU9VVCA9IDEwMDAgKiA2MCAqIDEwXG4vLyB0aW1lb3V05LiL6ZmQMTAwbXNcbmNvbnN0IE1JTl9USU1FT1VUID0gMTAwXG5cbmNvbnN0IGV4dGVuc2lvbk1hcDogS1Y8SUNsb3VkYmFzZUV4dGVuc2lvbj4gPSB7fVxuXG5jbGFzcyBDbG91ZGJhc2UgaW1wbGVtZW50cyBJQ2xvdWRiYXNlIHtcbiAgcHVibGljIGF1dGhJbnN0YW5jZTogSUNsb3VkYmFzZUF1dGhcbiAgcHVibGljIG9hdXRoSW5zdGFuY2U6IGFueVxuICBwdWJsaWMgcmVxdWVzdENsaWVudDogYW55XG4gIHB1YmxpYyBvYXV0aENsaWVudDogYW55XG4gIHB1YmxpYyB2ZXJzaW9uOiBzdHJpbmdcbiAgcHJpdmF0ZSBjbG91ZGJhc2VDb25maWc6IElDbG91ZGJhc2VDb25maWdcblxuICBjb25zdHJ1Y3Rvcihjb25maWc/OiBJQ2xvdWRiYXNlQ29uZmlnKSB7XG4gICAgdGhpcy5jbG91ZGJhc2VDb25maWcgPSBjb25maWcgPyBjb25maWcgOiB0aGlzLmNsb3VkYmFzZUNvbmZpZ1xuICAgIHRoaXMuYXV0aEluc3RhbmNlID0gbnVsbFxuICAgIHRoaXMub2F1dGhJbnN0YW5jZSA9IG51bGxcbiAgICB0aGlzLnZlcnNpb24gPSBnZXRTZGtWZXJzaW9uKClcbiAgfVxuXG4gIGdldCBjb25maWcoKSB7XG4gICAgcmV0dXJuIHRoaXMuY2xvdWRiYXNlQ29uZmlnXG4gIH1cblxuICBnZXQgcGxhdGZvcm0oKTogSUNsb3VkYmFzZVBsYXRmb3JtSW5mbyB7XG4gICAgcmV0dXJuIFBsYXRmb3JtXG4gIH1cblxuICBnZXQgY2FjaGUoKTogSUNsb3VkYmFzZUNhY2hlIHtcbiAgICByZXR1cm4gZ2V0Q2FjaGVCeUVudklkKHRoaXMuY2xvdWRiYXNlQ29uZmlnLmVudilcbiAgfVxuXG4gIGdldCBsb2NhbENhY2hlKCk6IElDbG91ZGJhc2VDYWNoZSB7XG4gICAgcmV0dXJuIGdldExvY2FsQ2FjaGUodGhpcy5jbG91ZGJhc2VDb25maWcuZW52KVxuICB9XG5cbiAgZ2V0IHJlcXVlc3QoKTogSUNsb3VkYmFzZVJlcXVlc3Qge1xuICAgIHJldHVybiBnZXRSZXF1ZXN0QnlFbnZJZCh0aGlzLmNsb3VkYmFzZUNvbmZpZy5lbnYpXG4gIH1cblxuICBnZXQgYXBpcygpOiB7IFtrZXk6IHN0cmluZ106IHR5cGVvZiBnZW5lcmF0ZUNhbGxBcGlzIH0ge1xuICAgIHJldHVybiBnZW5lcmF0ZUFwaXMuY2FsbCh0aGlzKVxuICB9XG5cbiAgQGNhdGNoRXJyb3JzRGVjb3JhdG9yKHtcbiAgICBtb2RlOiAnc3luYycsXG4gICAgdGl0bGU6ICdDbG91ZGJhc2Ug5Yid5aeL5YyW5aSx6LSlJyxcbiAgICBtZXNzYWdlczogW1xuICAgICAgJ+ivt+ehruiupOS7peS4i+WQhOmhue+8micsXG4gICAgICAnICAxIC0g6LCD55SoIGNsb3VkYmFzZS5pbml0KCkg55qE6K+t5rOV5oiW5Y+C5pWw5piv5ZCm5q2j56GuJyxcbiAgICAgICcgIDIgLSDlpoLmnpzmmK/pnZ7mtY/op4jlmajnjq/looPvvIzmmK/lkKbphY3nva7kuoblronlhajlupTnlKjmnaXmupDvvIhodHRwczovL2RvY3MuY2xvdWRiYXNlLm5ldC9hcGktcmVmZXJlbmNlL3dlYnYzL2FkYXB0ZXIjJUU3JUFDJUFDLTItJUU2JUFEJUE1JUU5JTg1JThEJUU3JUJEJUFFJUU1JUFFJTg5JUU1JTg1JUE4JUU1JUJBJTk0JUU3JTk0JUE4JUU2JTlEJUE1JUU2JUJBJTkw77yJJyxcbiAgICAgIGDlpoLmnpzpl67popjkvp3nhLblrZjlnKjvvIzlu7rorq7liLDlrpjmlrnpl67nrZTnpL7ljLrmj5Dpl67miJblr7vmib7luK7liqnvvJoke0NPTU1VTklUWV9TSVRFX1VSTH1gLFxuICAgIF0sXG4gIH0pXG4gIHB1YmxpYyBpbml0KGNvbmZpZzogSUNsb3VkYmFzZUNvbmZpZyAmIHsgbGFuZz86IExBTkdTIH0pOiBDbG91ZGJhc2Uge1xuICAgIGlmICghY29uZmlnLmVudikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgY29kZTogRVJST1JTLklOVkFMSURfUEFSQU1TLFxuICAgICAgICBtc2c6ICdlbnYgbXVzdCBub3QgYmUgc3BlY2lmaWVkJyxcbiAgICAgIH0pLClcbiAgICB9XG4gICAgLy8g5Yid5aeL5YyW5pe26Iul5pyq5YW85a655bmz5Y+w77yM5YiZ5L2/55So6buY6K6kYWRhcHRlclxuICAgIGlmICghUGxhdGZvcm0uYWRhcHRlcikge1xuICAgICAgdGhpcy51c2VEZWZhdWx0QWRhcHRlcigpXG4gICAgfVxuXG4gICAgY29uc3QgcmVxQ29uZmlnOiBJUmVxdWVzdENvbmZpZyA9IHtcbiAgICAgIHRpbWVvdXQ6IGNvbmZpZy50aW1lb3V0IHx8IDUwMDAsXG4gICAgICB0aW1lb3V0TXNnOiBgWyR7Z2V0U2RrTmFtZSgpfV1bUkVRVUVTVCBUSU1FT1VUXSByZXF1ZXN0IGhhZCBiZWVuIGFib3J0IHNpbmNlIGRpZG4ndCBmaW5pc2hlZCB3aXRoaW4ke1xuICAgICAgICBjb25maWcudGltZW91dCAvIDEwMDBcbiAgICAgIH1zYCxcbiAgICB9XG5cbiAgICB0aGlzLnJlcXVlc3RDbGllbnQgPSBuZXcgUGxhdGZvcm0uYWRhcHRlci5yZXFDbGFzcyhyZXFDb25maWcpXG5cbiAgICB0aGlzLmNsb3VkYmFzZUNvbmZpZyA9IHtcbiAgICAgIC4uLkRFRkFVTFRfSU5JVF9DT05GSUcsXG4gICAgICAuLi5jb25maWcsXG4gICAgICBpMThuOiBpMThuUHJveHkoUGxhdGZvcm0sIGNvbmZpZyksXG4gICAgfVxuXG4gICAgZGVsZXRlICh0aGlzLmNsb3VkYmFzZUNvbmZpZyBhcyBhbnkpLmxhbmdcbiAgICAvLyDkv67mraN0aW1lb3V05Y+W5YC8XG4gICAgdGhpcy5jbG91ZGJhc2VDb25maWcudGltZW91dCA9IHRoaXMuZm9ybWF0VGltZW91dCh0aGlzLmNsb3VkYmFzZUNvbmZpZy50aW1lb3V0KVxuICAgIC8vIOWIneWni+WMlmNhY2hl5ZKMcmVxdWVzdFxuICAgIGNvbnN0IHsgZW52LCBwZXJzaXN0ZW5jZSwgZGVidWcsIHRpbWVvdXQsIG9hdXRoQ2xpZW50LCBpMThuIH0gPSB0aGlzLmNsb3VkYmFzZUNvbmZpZ1xuICAgIGluaXRDYWNoZSh7IGVudiwgcGVyc2lzdGVuY2UsIGRlYnVnLCBwbGF0Zm9ybUluZm86IHRoaXMucGxhdGZvcm0gfSlcblxuICAgIHNldFJlZ2lvbkxldmVsRW5kcG9pbnQoZW52LCBjb25maWcucmVnaW9uIHx8ICcnKVxuICAgIHNldEdhdGV3YXlFbmRQb2ludFdpdGhFbnYoZW52KVxuXG4gICAgY29uc3QgYXBwID0gbmV3IENsb3VkYmFzZSh0aGlzLmNsb3VkYmFzZUNvbmZpZylcbiAgICBpbml0UmVxdWVzdCh7IGVudiwgcmVnaW9uOiBjb25maWcucmVnaW9uIHx8ICcnLCB0aW1lb3V0LCBvYXV0aENsaWVudCwgX2Zyb21BcHA6IGFwcCwgaTE4biB9KVxuICAgIGFwcC5yZXF1ZXN0Q2xpZW50ID0gdGhpcy5yZXF1ZXN0Q2xpZW50XG4gICAgOyh0aGlzIGFzIGFueSk/LmZpcmU/LignY2xvdWRiYXNlX2luaXQnLCBhcHApXG4gICAgdGhpcy50cnkySW5pdEF1dGgoY29uZmlnLCBhcHApXG5cbiAgICByZXR1cm4gYXBwXG4gIH1cblxuICBwdWJsaWMgdXBkYXRlQ29uZmlnKGNvbmZpZzogSUNsb3VkYmFzZVVwZ3JhZGVkQ29uZmlnKSB7XG4gICAgY29uc3QgeyBwZXJzaXN0ZW5jZSwgZGVidWcgfSA9IGNvbmZpZ1xuICAgIHRoaXMuY2xvdWRiYXNlQ29uZmlnLnBlcnNpc3RlbmNlID0gcGVyc2lzdGVuY2VcbiAgICB0aGlzLmNsb3VkYmFzZUNvbmZpZy5kZWJ1ZyA9IGRlYnVnXG4gICAgLy8gcGVyc2lzdGVuY2XmlLnliqjlvbHlk41jYWNoZVxuICAgIGluaXRDYWNoZSh7IGVudjogdGhpcy5jbG91ZGJhc2VDb25maWcuZW52LCBwZXJzaXN0ZW5jZSwgZGVidWcsIHBsYXRmb3JtSW5mbzogdGhpcy5wbGF0Zm9ybSB9KVxuICB9XG5cbiAgcHVibGljIHVwZGF0ZUxhbmcobGFuZzogTEFOR1MpIHtcbiAgICBpZiAoIWxhbmcgfHwgbGFuZyA9PT0gdGhpcy5jbG91ZGJhc2VDb25maWcuaTE4bj8ubGFuZykgcmV0dXJuXG5cbiAgICB0aGlzLmNsb3VkYmFzZUNvbmZpZy5pMThuLmxhbmcgPSBsYW5nXG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJFeHRlbnNpb24oZXh0OiBJQ2xvdWRiYXNlRXh0ZW5zaW9uKSB7XG4gICAgZXh0ZW5zaW9uTWFwW2V4dC5uYW1lXSA9IGV4dFxuICB9XG4gIEBjYXRjaEVycm9yc0RlY29yYXRvcih7XG4gICAgdGl0bGU6ICfosIPnlKjmianlsZXog73lipvlpLHotKUnLFxuICAgIG1lc3NhZ2VzOiBbXG4gICAgICAn6K+356Gu6K6k5Lul5LiL5ZCE6aG577yaJyxcbiAgICAgICcgIDEgLSDosIPnlKggaW52b2tlRXh0ZW5zaW9uKCkg55qE6K+t5rOV5oiW5Y+C5pWw5piv5ZCm5q2j56GuJyxcbiAgICAgICcgIDIgLSDooqvosIPnlKjnmoTmianlsZXog73lipvmmK/lkKblt7Lnu4/lronoo4XlubbpgJrov4cgcmVnaXN0ZXJFeHRlbnNpb24oKSDms6jlhownLFxuICAgICAgYOWmguaenOmXrumimOS+neeEtuWtmOWcqO+8jOW7uuiuruWIsOWumOaWuemXruetlOekvuWMuuaPkOmXruaIluWvu+aJvuW4ruWKqe+8miR7Q09NTVVOSVRZX1NJVEVfVVJMfWAsXG4gICAgXSxcbiAgfSlcbiAgcHVibGljIGFzeW5jIGludm9rZUV4dGVuc2lvbihuYW1lOiBzdHJpbmcsIG9wdHM6IGFueSkge1xuICAgIGNvbnN0IGV4dCA9IGV4dGVuc2lvbk1hcFtuYW1lXVxuICAgIGlmICghZXh0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICBjb2RlOiBFUlJPUlMuSU5WQUxJRF9QQVJBTVMsXG4gICAgICAgIG1zZzogYGV4dGVuc2lvbjoke25hbWV9IG11c3QgYmUgcmVnaXN0ZXJlZCBiZWZvcmUgaW52b2tlYCxcbiAgICAgIH0pLClcbiAgICB9XG5cbiAgICByZXR1cm4gYXdhaXQgZXh0Lmludm9rZShvcHRzLCB0aGlzKVxuICB9XG5cbiAgcHVibGljIHVzZUFkYXB0ZXJzKGFkYXB0ZXJzOiBDbG91ZGJhc2VBZGFwdGVyIHwgQ2xvdWRiYXNlQWRhcHRlcltdLCBvcHRpb25zPzogYW55KSB7XG4gICAgY29uc3QgeyBhZGFwdGVyLCBydW50aW1lIH0gPSB1c2VBZGFwdGVycyhhZGFwdGVycywgb3B0aW9ucykgfHwge31cbiAgICBhZGFwdGVyICYmIChQbGF0Zm9ybS5hZGFwdGVyID0gYWRhcHRlciBhcyBTREtBZGFwdGVySW50ZXJmYWNlKVxuICAgIHJ1bnRpbWUgJiYgKFBsYXRmb3JtLnJ1bnRpbWUgPSBydW50aW1lIGFzIHN0cmluZylcbiAgfVxuXG4gIHB1YmxpYyByZWdpc3Rlckhvb2soaG9vazogSUNsb3VkYmFzZUhvb2spIHtcbiAgICByZWdpc3Rlckhvb2soQ2xvdWRiYXNlLCBob29rKVxuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyQ29tcG9uZW50KGNvbXBvbmVudDogSUNsb3VkYmFzZUNvbXBvbmVudCkge1xuICAgIHJlZ2lzdGVyQ29tcG9uZW50KENsb3VkYmFzZSwgY29tcG9uZW50KVxuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyVmVyc2lvbih2ZXJzaW9uOiBzdHJpbmcpIHtcbiAgICBzZXRTZGtWZXJzaW9uKHZlcnNpb24pXG4gICAgdGhpcy52ZXJzaW9uID0gdmVyc2lvblxuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyU2RrTmFtZShuYW1lOiBzdHJpbmcpIHtcbiAgICBzZXRTZGtOYW1lKG5hbWUpXG4gIH1cblxuICAvKiog6K6+572uIHRjYiBhcGkg55qEIGVuZHBvaW50ICovXG4gIHB1YmxpYyByZWdpc3RlckVuZFBvaW50KHVybDogc3RyaW5nLCBwcm90b2NvbD86ICdodHRwJyB8ICdodHRwcycpIHtcbiAgICBzZXRFbmRQb2ludEluZm8oeyBiYXNlVXJsOiB1cmwsIHByb3RvY29sLCBlbnY6IHRoaXMuY29uZmlnLmVudiwgZW5kUG9pbnRLZXk6ICdDTE9VRF9BUEknIH0pXG4gIH1cblxuICAvKiog6K6+572u572R5YWzL3RjYiBhcGnnmoQgZW5kUG9pbnTvvIzpgJrov4cga2V5IOaMh+WumiAqL1xuICBwdWJsaWMgcmVnaXN0ZXJFbmRQb2ludFdpdGhLZXkocHJvcHM6IElTZXRFbmRQb2ludFdpdGhLZXkpIHtcbiAgICBzZXRFbmRQb2ludEluZm8oe1xuICAgICAgZW52OiB0aGlzLmNvbmZpZy5lbnYsXG4gICAgICBlbmRQb2ludEtleTogcHJvcHMua2V5LFxuICAgICAgYmFzZVVybDogcHJvcHMudXJsLFxuICAgICAgcHJvdG9jb2w6IHByb3BzLnByb3RvY29sLFxuICAgIH0pXG4gIH1cblxuICAvKiog5ou/572R5YWzL3RjYiBhcGnnmoQgZW5kUG9pbnTvvIzpgJrov4cga2V5IOaMh+WumiAqL1xuICBwdWJsaWMgZ2V0RW5kUG9pbnRXaXRoS2V5KGtleTogRW5kUG9pbnRLZXkpIHtcbiAgICBjb25zdCBpbmZvID0gZ2V0RW5kUG9pbnRJbmZvKHRoaXMuY29uZmlnLmVudiwga2V5KVxuICAgIHJldHVybiB7XG4gICAgICBCQVNFX1VSTDogaW5mby5iYXNlVXJsLFxuICAgICAgUFJPVE9DT0w6IGluZm8ucHJvdG9jb2wsXG4gICAgfVxuICB9XG5cbiAgLy8g6Kej5p6QVVJM5Y+C5pWwXG4gIHB1YmxpYyBwYXJzZUNhcHRjaGEodXJsKSB7XG4gICAgbGV0IHF1ZXJ5T2JqOiBhbnkgPSB7fVxuICAgIGNvbnN0IG1hdGNoZWQgPSB1cmwubWF0Y2goL14oZGF0YTouKj8pKFxcP1teI1xcc10qKT8kLylcbiAgICBpZiAobWF0Y2hlZCkge1xuICAgICAgdXJsID0gbWF0Y2hlZFsxXVxuICAgICAgY29uc3Qgc2VhcmNoID0gbWF0Y2hlZFsyXVxuICAgICAgaWYgKHNlYXJjaCkge1xuICAgICAgICBxdWVyeU9iaiA9IHV0aWxzLnBhcnNlUXVlcnlTdHJpbmcoc2VhcmNoKVxuICAgICAgfVxuICAgIH1cbiAgICBjb25zdCB7IHRva2VuLCAuLi5yZXN0UXVlcnlPYmogfSA9IHF1ZXJ5T2JqXG4gICAgaWYgKC9eZGF0YTovLnRlc3QodXJsKSAmJiAhdG9rZW4pIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGVycm9yOiAnaW52YWxpZF9hcmd1bWVudCcsXG4gICAgICAgIGVycm9yX2Rlc2NyaXB0aW9uOiBgaW52YWxpZCBjYXB0Y2hhIGRhdGE6ICR7dXJsfWAsXG4gICAgICB9XG4gICAgfVxuICAgIGlmICghdG9rZW4pIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGVycm9yOiAndW5pbXBsZW1lbnRlZCcsXG4gICAgICAgIGVycm9yX2Rlc2NyaXB0aW9uOiAnbmVlZCB0byBpbXBsIGNhcHRjaGEgZGF0YScsXG4gICAgICB9XG4gICAgfVxuICAgIC8vIOino+aekHVybOW+l+WIsOeahOWPguaVsFxuICAgIHJldHVybiB7XG4gICAgICBzdGF0ZTogcmVzdFF1ZXJ5T2JqLnN0YXRlLFxuICAgICAgdG9rZW4sIC8vIOmqjOivgeeggXRva2VuXG4gICAgICBjYXB0Y2hhRGF0YTogdXJsLCAvLyDpqozor4HnoIFiYXNlNjTlm77niYdcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHVzZURlZmF1bHRBZGFwdGVyKCkge1xuICAgIGNvbnN0IHsgYWRhcHRlciwgcnVudGltZSB9ID0gdXNlRGVmYXVsdEFkYXB0ZXIoKVxuICAgIFBsYXRmb3JtLmFkYXB0ZXIgPSBhZGFwdGVyIGFzIFNES0FkYXB0ZXJJbnRlcmZhY2VcbiAgICBQbGF0Zm9ybS5ydW50aW1lID0gcnVudGltZSBhcyBzdHJpbmdcbiAgfVxuXG4gIHByaXZhdGUgZm9ybWF0VGltZW91dCh0aW1lb3V0OiBudW1iZXIpIHtcbiAgICBzd2l0Y2ggKHRydWUpIHtcbiAgICAgIGNhc2UgdGltZW91dCA+IE1BWF9USU1FT1VUOlxuICAgICAgICBwcmludFdhcm4oRVJST1JTLklOVkFMSURfUEFSQU1TLCAndGltZW91dCBpcyBncmVhdGVyIHRoYW4gbWF4aW11bSB2YWx1ZVsxMG1pbl0nKVxuICAgICAgICByZXR1cm4gTUFYX1RJTUVPVVRcbiAgICAgIGNhc2UgdGltZW91dCA8IE1JTl9USU1FT1VUOlxuICAgICAgICBwcmludFdhcm4oRVJST1JTLklOVkFMSURfUEFSQU1TLCAndGltZW91dCBpcyBsZXNzIHRoYW4gbWF4aW11bSB2YWx1ZVsxMDBtc10nKVxuICAgICAgICByZXR1cm4gTUlOX1RJTUVPVVRcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiB0aW1lb3V0XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB0cnkySW5pdEF1dGgoY29uZmlnOiBJQ2xvdWRiYXNlQ29uZmlnLCBhcHApIHtcbiAgICB0cnkge1xuICAgICAgaWYgKGNvbmZpZy5hY2Nlc3NLZXkpIHtcbiAgICAgICAgYXBwLmF1dGgoKVxuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmxvZygndHJ5MkluaXRBdXRoIGVycm9yOicsIGVycm9yKVxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgY29uc3QgY2xvdWRiYXNlOiBJQ2xvdWRiYXNlID0gbmV3IENsb3VkYmFzZSgpXG5jbG91ZGJhc2UudXNlQWRhcHRlcnMoYWRhcHRlckZvcld4TXApXG5cbmV4cG9ydCBkZWZhdWx0IGNsb3VkYmFzZVxuIl19
329
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQVkxRSxPQUFPLGNBQWMsTUFBTSwwQkFBMEIsQ0FBQTtBQUNyRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFDbEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBR3pDLE9BQU8sRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUV4RSxPQUFPLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDL0QsT0FBTyxFQUNMLFVBQVUsRUFDVixhQUFhLEVBQ2Isc0JBQXNCLEVBQ3RCLFVBQVUsRUFDVix5QkFBeUIsRUFFekIsZUFBZSxFQUNmLGVBQWUsRUFDZixhQUFhLEdBQ2QsTUFBTSxvQkFBb0IsQ0FBQTtBQUMzQixPQUFPLEVBQUUsU0FBUyxFQUFTLE1BQU0sYUFBYSxDQUFBO0FBQzlDLE9BQU8sRUFBRSxZQUFZLEVBQW9CLE1BQU0saUJBQWlCLENBQUE7QUFDaEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBQ3BELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFDM0IsSUFBQSxXQUFXLEdBQXdCLFFBQVEsWUFBaEMsRUFBRSxpQkFBaUIsR0FBSyxRQUFRLGtCQUFiLENBQWE7QUFDM0MsSUFBQSxNQUFNLEdBQXlCLFNBQVMsT0FBbEMsRUFBRSxrQkFBa0IsR0FBSyxTQUFTLG1C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dkMsZ0RBQWdEO2dCQUNoRCxzS0FBNkIsa0JBQWtCLENBQUU7YUFDbEQ7U0FDRixDQUFDOzs7O29EQVdEO0lBNkdILGdCQUFDO0NBQUEsQUFoUEQsSUFnUEM7QUFFRCxNQUFNLENBQUMsSUFBTSxTQUFTLEdBQWUsSUFBSSxTQUFTLEVBQUUsQ0FBQTtBQUNwRCxTQUFTLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxDQUFBO0FBRXJDLGVBQWUsU0FBUyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYWRhcHRlcnMsIGNvbnN0YW50cywgdXRpbHMsIGhlbHBlcnMgfSBmcm9tICdAY2xvdWRiYXNlL3V0aWxpdGllcydcbmltcG9ydCB7IFNES0FkYXB0ZXJJbnRlcmZhY2UsIENsb3VkYmFzZUFkYXB0ZXIsIElSZXF1ZXN0Q29uZmlnIH0gZnJvbSAnQGNsb3VkYmFzZS9hZGFwdGVyLWludGVyZmFjZSdcbmltcG9ydCB7XG4gIElDbG91ZGJhc2VDb25maWcsXG4gIElDbG91ZGJhc2VVcGdyYWRlZENvbmZpZyxcbiAgSUNsb3VkYmFzZSxcbiAgSUNsb3VkYmFzZUV4dGVuc2lvbixcbiAgS1YsXG4gIElDbG91ZGJhc2VQbGF0Zm9ybUluZm8sXG4gIEVuZFBvaW50S2V5LFxufSBmcm9tICdAY2xvdWRiYXNlL3R5cGVzJ1xuaW1wb3J0IHsgSUNsb3VkYmFzZUF1dGggfSBmcm9tICdAY2xvdWRiYXNlL3R5cGVzL2F1dGgnXG5pbXBvcnQgYWRhcHRlckZvcld4TXAgZnJvbSAnQGNsb3VkYmFzZS9hZGFwdGVyLXd4X21wJ1xuaW1wb3J0IHsgcmVnaXN0ZXJDb21wb25lbnQsIHJlZ2lzdGVySG9vayB9IGZyb20gJy4vbGlicy9jb21wb25lbnQnXG5pbXBvcnQgeyBQbGF0Zm9ybSB9IGZyb20gJy4vbGlicy9hZGFwdGVyJ1xuaW1wb3J0IHsgSUNsb3VkYmFzZUNvbXBvbmVudCwgSUNsb3VkYmFzZUhvb2sgfSBmcm9tICdAY2xvdWRiYXNlL3R5cGVzL2NvbXBvbmVudCdcbmltcG9ydCB7IElDbG91ZGJhc2VDYWNoZSB9IGZyb20gJ0BjbG91ZGJhc2UvdHlwZXMvY2FjaGUnXG5pbXBvcnQgeyBpbml0Q2FjaGUsIGdldENhY2hlQnlFbnZJZCwgZ2V0TG9jYWxDYWNoZSB9IGZyb20gJy4vbGlicy9jYWNoZSdcbmltcG9ydCB7IElDbG91ZGJhc2VSZXF1ZXN0IH0gZnJvbSAnQGNsb3VkYmFzZS90eXBlcy9yZXF1ZXN0J1xuaW1wb3J0IHsgaW5pdFJlcXVlc3QsIGdldFJlcXVlc3RCeUVudklkIH0gZnJvbSAnLi9saWJzL3JlcXVlc3QnXG5pbXBvcnQge1xuICBnZXRTZGtOYW1lLFxuICBzZXRTZGtWZXJzaW9uLFxuICBzZXRSZWdpb25MZXZlbEVuZHBvaW50LFxuICBzZXRTZGtOYW1lLFxuICBzZXRHYXRld2F5RW5kUG9pbnRXaXRoRW52LFxuICB0eXBlIElTZXRFbmRQb2ludFdpdGhLZXksXG4gIHNldEVuZFBvaW50SW5mbyxcbiAgZ2V0RW5kUG9pbnRJbmZvLFxuICBnZXRTZGtWZXJzaW9uLFxufSBmcm9tICcuL2NvbnN0YW50cy9jb21tb24nXG5pbXBvcnQgeyBpMThuUHJveHksIExBTkdTIH0gZnJvbSAnLi9saWJzL2xhbmcnXG5pbXBvcnQgeyBnZW5lcmF0ZUFwaXMsIGdlbmVyYXRlQ2FsbEFwaXMgfSBmcm9tICcuL2xpYnMvY2FsbEFwaXMnXG5leHBvcnQgeyBnZXRCYXNlRW5kUG9pbnQgfSBmcm9tICcuL2NvbnN0YW50cy9jb21tb24nXG5leHBvcnQgeyBMQU5HUyB9IGZyb20gJy4vbGlicy9sYW5nJ1xuY29uc3QgeyB1c2VBZGFwdGVycywgdXNlRGVmYXVsdEFkYXB0ZXIgfSA9IGFkYXB0ZXJzXG5jb25zdCB7IEVSUk9SUywgQ09NTVVOSVRZX1NJVEVfVVJMIH0gPSBjb25zdGFudHNcbmNvbnN0IHsgcHJpbnRXYXJuIH0gPSB1dGlsc1xuY29uc3QgeyBjYXRjaEVycm9yc0RlY29yYXRvciB9ID0gaGVscGVyc1xuXG4vKipcbiAqIEBjb25zdGFudCDpu5jorqTphY3nva5cbiAqL1xuY29uc3QgREVGQVVMVF9JTklUX0NPTkZJRzogUGFydGlhbDxJQ2xvdWRiYXNlQ29uZmlnPiA9IHtcbiAgdGltZW91dDogMTUwMDAsXG4gIHBlcnNpc3RlbmNlOiAnbG9jYWwnLCAvLyDmjIHkuYXljJblrZjlgqjnsbvlnotcbn1cblxuLy8gdGltZW91dOS4iumZkDEw5YiG6ZKfXG5jb25zdCBNQVhfVElNRU9VVCA9IDEwMDAgKiA2MCAqIDEwXG4vLyB0aW1lb3V05LiL6ZmQMTAwbXNcbmNvbnN0IE1JTl9USU1FT1VUID0gMTAwXG5cbmNvbnN0IGV4dGVuc2lvbk1hcDogS1Y8SUNsb3VkYmFzZUV4dGVuc2lvbj4gPSB7fVxuXG5jbGFzcyBDbG91ZGJhc2UgaW1wbGVtZW50cyBJQ2xvdWRiYXNlIHtcbiAgcHVibGljIGF1dGhJbnN0YW5jZTogSUNsb3VkYmFzZUF1dGhcbiAgcHVibGljIG9hdXRoSW5zdGFuY2U6IGFueVxuICBwdWJsaWMgcmVxdWVzdENsaWVudDogYW55XG4gIHB1YmxpYyBvYXV0aENsaWVudDogYW55XG4gIHB1YmxpYyB2ZXJzaW9uOiBzdHJpbmdcbiAgcHJpdmF0ZSBjbG91ZGJhc2VDb25maWc6IElDbG91ZGJhc2VDb25maWdcblxuICBjb25zdHJ1Y3Rvcihjb25maWc/OiBJQ2xvdWRiYXNlQ29uZmlnKSB7XG4gICAgdGhpcy5jbG91ZGJhc2VDb25maWcgPSBjb25maWcgPyBjb25maWcgOiB0aGlzLmNsb3VkYmFzZUNvbmZpZ1xuICAgIHRoaXMuYXV0aEluc3RhbmNlID0gbnVsbFxuICAgIHRoaXMub2F1dGhJbnN0YW5jZSA9IG51bGxcbiAgICB0aGlzLnZlcnNpb24gPSBnZXRTZGtWZXJzaW9uKClcbiAgfVxuXG4gIGdldCBjb25maWcoKSB7XG4gICAgcmV0dXJuIHRoaXMuY2xvdWRiYXNlQ29uZmlnXG4gIH1cblxuICBnZXQgcGxhdGZvcm0oKTogSUNsb3VkYmFzZVBsYXRmb3JtSW5mbyB7XG4gICAgcmV0dXJuIFBsYXRmb3JtXG4gIH1cblxuICBnZXQgY2FjaGUoKTogSUNsb3VkYmFzZUNhY2hlIHtcbiAgICByZXR1cm4gZ2V0Q2FjaGVCeUVudklkKHRoaXMuY2xvdWRiYXNlQ29uZmlnLmVudilcbiAgfVxuXG4gIGdldCBsb2NhbENhY2hlKCk6IElDbG91ZGJhc2VDYWNoZSB7XG4gICAgcmV0dXJuIGdldExvY2FsQ2FjaGUodGhpcy5jbG91ZGJhc2VDb25maWcuZW52KVxuICB9XG5cbiAgZ2V0IHJlcXVlc3QoKTogSUNsb3VkYmFzZVJlcXVlc3Qge1xuICAgIHJldHVybiBnZXRSZXF1ZXN0QnlFbnZJZCh0aGlzLmNsb3VkYmFzZUNvbmZpZy5lbnYpXG4gIH1cblxuICBnZXQgYXBpcygpOiB7IFtrZXk6IHN0cmluZ106IHR5cGVvZiBnZW5lcmF0ZUNhbGxBcGlzIH0ge1xuICAgIHJldHVybiBnZW5lcmF0ZUFwaXMuY2FsbCh0aGlzKVxuICB9XG5cbiAgQGNhdGNoRXJyb3JzRGVjb3JhdG9yKHtcbiAgICBtb2RlOiAnc3luYycsXG4gICAgdGl0bGU6ICdDbG91ZGJhc2Ug5Yid5aeL5YyW5aSx6LSlJyxcbiAgICBtZXNzYWdlczogW1xuICAgICAgJ+ivt+ehruiupOS7peS4i+WQhOmhue+8micsXG4gICAgICAnICAxIC0g6LCD55SoIGNsb3VkYmFzZS5pbml0KCkg55qE6K+t5rOV5oiW5Y+C5pWw5piv5ZCm5q2j56GuJyxcbiAgICAgICcgIDIgLSDlpoLmnpzmmK/pnZ7mtY/op4jlmajnjq/looPvvIzmmK/lkKbphY3nva7kuoblronlhajlupTnlKjmnaXmupDvvIhodHRwczovL2RvY3MuY2xvdWRiYXNlLm5ldC9hcGktcmVmZXJlbmNlL3dlYnYzL2FkYXB0ZXIjJUU3JUFDJUFDLTItJUU2JUFEJUE1JUU5JTg1JThEJUU3JUJEJUFFJUU1JUFFJTg5JUU1JTg1JUE4JUU1JUJBJTk0JUU3JTk0JUE4JUU2JTlEJUE1JUU2JUJBJTkw77yJJyxcbiAgICAgIGDlpoLmnpzpl67popjkvp3nhLblrZjlnKjvvIzlu7rorq7liLDlrpjmlrnpl67nrZTnpL7ljLrmj5Dpl67miJblr7vmib7luK7liqnvvJoke0NPTU1VTklUWV9TSVRFX1VSTH1gLFxuICAgIF0sXG4gIH0pXG4gIHB1YmxpYyBpbml0KGNvbmZpZzogSUNsb3VkYmFzZUNvbmZpZyAmIHsgbGFuZz86IExBTkdTIH0pOiBDbG91ZGJhc2Uge1xuICAgIGlmICghY29uZmlnLmVudikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgY29kZTogRVJST1JTLklOVkFMSURfUEFSQU1TLFxuICAgICAgICBtc2c6ICdlbnYgbXVzdCBub3QgYmUgc3BlY2lmaWVkJyxcbiAgICAgIH0pLClcbiAgICB9XG4gICAgLy8g5Yid5aeL5YyW5pe26Iul5pyq5YW85a655bmz5Y+w77yM5YiZ5L2/55So6buY6K6kYWRhcHRlclxuICAgIGlmICghUGxhdGZvcm0uYWRhcHRlcikge1xuICAgICAgdGhpcy51c2VEZWZhdWx0QWRhcHRlcigpXG4gICAgfVxuXG4gICAgY29uc3QgcmVxQ29uZmlnOiBJUmVxdWVzdENvbmZpZyA9IHtcbiAgICAgIHRpbWVvdXQ6IGNvbmZpZy50aW1lb3V0IHx8IDUwMDAsXG4gICAgICB0aW1lb3V0TXNnOiBgWyR7Z2V0U2RrTmFtZSgpfV1bUkVRVUVTVCBUSU1FT1VUXSByZXF1ZXN0IGhhZCBiZWVuIGFib3J0IHNpbmNlIGRpZG4ndCBmaW5pc2hlZCB3aXRoaW4ke1xuICAgICAgICBjb25maWcudGltZW91dCAvIDEwMDBcbiAgICAgIH1zYCxcbiAgICB9XG5cbiAgICB0aGlzLnJlcXVlc3RDbGllbnQgPSBuZXcgUGxhdGZvcm0uYWRhcHRlci5yZXFDbGFzcyhyZXFDb25maWcpXG5cbiAgICB0aGlzLmNsb3VkYmFzZUNvbmZpZyA9IHtcbiAgICAgIC4uLkRFRkFVTFRfSU5JVF9DT05GSUcsXG4gICAgICAuLi5jb25maWcsXG4gICAgICBpMThuOiBpMThuUHJveHkoUGxhdGZvcm0sIGNvbmZpZyksXG4gICAgfVxuXG4gICAgZGVsZXRlICh0aGlzLmNsb3VkYmFzZUNvbmZpZyBhcyBhbnkpLmxhbmdcbiAgICAvLyDkv67mraN0aW1lb3V05Y+W5YC8XG4gICAgdGhpcy5jbG91ZGJhc2VDb25maWcudGltZW91dCA9IHRoaXMuZm9ybWF0VGltZW91dCh0aGlzLmNsb3VkYmFzZUNvbmZpZy50aW1lb3V0KVxuICAgIC8vIOWIneWni+WMlmNhY2hl5ZKMcmVxdWVzdFxuICAgIGNvbnN0IHsgZW52LCBwZXJzaXN0ZW5jZSwgZGVidWcsIHRpbWVvdXQsIG9hdXRoQ2xpZW50LCBpMThuIH0gPSB0aGlzLmNsb3VkYmFzZUNvbmZpZ1xuICAgIGluaXRDYWNoZSh7IGVudiwgcGVyc2lzdGVuY2UsIGRlYnVnLCBwbGF0Zm9ybUluZm86IHRoaXMucGxhdGZvcm0gfSlcblxuICAgIHNldFJlZ2lvbkxldmVsRW5kcG9pbnQoZW52LCBjb25maWcucmVnaW9uIHx8ICcnKVxuICAgIHNldEdhdGV3YXlFbmRQb2ludFdpdGhFbnYoZW52KVxuXG4gICAgY29uc3QgYXBwID0gbmV3IENsb3VkYmFzZSh0aGlzLmNsb3VkYmFzZUNvbmZpZylcbiAgICBpbml0UmVxdWVzdCh7IGVudiwgcmVnaW9uOiBjb25maWcucmVnaW9uIHx8ICcnLCB0aW1lb3V0LCBvYXV0aENsaWVudCwgX2Zyb21BcHA6IGFwcCwgaTE4biwgZW5kUG9pbnRNb2RlOiBjb25maWcuZW5kUG9pbnRNb2RlIH0pXG4gICAgYXBwLnJlcXVlc3RDbGllbnQgPSB0aGlzLnJlcXVlc3RDbGllbnRcbiAgICA7KHRoaXMgYXMgYW55KT8uZmlyZT8uKCdjbG91ZGJhc2VfaW5pdCcsIGFwcClcbiAgICB0aGlzLnRyeTJJbml0QXV0aChjb25maWcsIGFwcClcblxuICAgIHJldHVybiBhcHBcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVDb25maWcoY29uZmlnOiBJQ2xvdWRiYXNlVXBncmFkZWRDb25maWcpIHtcbiAgICBjb25zdCB7IHBlcnNpc3RlbmNlLCBkZWJ1ZyB9ID0gY29uZmlnXG4gICAgdGhpcy5jbG91ZGJhc2VDb25maWcucGVyc2lzdGVuY2UgPSBwZXJzaXN0ZW5jZVxuICAgIHRoaXMuY2xvdWRiYXNlQ29uZmlnLmRlYnVnID0gZGVidWdcbiAgICAvLyBwZXJzaXN0ZW5jZeaUueWKqOW9seWTjWNhY2hlXG4gICAgaW5pdENhY2hlKHsgZW52OiB0aGlzLmNsb3VkYmFzZUNvbmZpZy5lbnYsIHBlcnNpc3RlbmNlLCBkZWJ1ZywgcGxhdGZvcm1JbmZvOiB0aGlzLnBsYXRmb3JtIH0pXG4gIH1cblxuICBwdWJsaWMgdXBkYXRlTGFuZyhsYW5nOiBMQU5HUykge1xuICAgIGlmICghbGFuZyB8fCBsYW5nID09PSB0aGlzLmNsb3VkYmFzZUNvbmZpZy5pMThuPy5sYW5nKSByZXR1cm5cblxuICAgIHRoaXMuY2xvdWRiYXNlQ29uZmlnLmkxOG4ubGFuZyA9IGxhbmdcbiAgfVxuXG4gIHB1YmxpYyByZWdpc3RlckV4dGVuc2lvbihleHQ6IElDbG91ZGJhc2VFeHRlbnNpb24pIHtcbiAgICBleHRlbnNpb25NYXBbZXh0Lm5hbWVdID0gZXh0XG4gIH1cbiAgQGNhdGNoRXJyb3JzRGVjb3JhdG9yKHtcbiAgICB0aXRsZTogJ+iwg+eUqOaJqeWxleiDveWKm+Wksei0pScsXG4gICAgbWVzc2FnZXM6IFtcbiAgICAgICfor7fnoa7orqTku6XkuIvlkITpobnvvJonLFxuICAgICAgJyAgMSAtIOiwg+eUqCBpbnZva2VFeHRlbnNpb24oKSDnmoTor63ms5XmiJblj4LmlbDmmK/lkKbmraPnoa4nLFxuICAgICAgJyAgMiAtIOiiq+iwg+eUqOeahOaJqeWxleiDveWKm+aYr+WQpuW3sue7j+WuieijheW5tumAmui/hyByZWdpc3RlckV4dGVuc2lvbigpIOazqOWGjCcsXG4gICAgICBg5aaC5p6c6Zeu6aKY5L6d54S25a2Y5Zyo77yM5bu66K6u5Yiw5a6Y5pa56Zeu562U56S+5Yy65o+Q6Zeu5oiW5a+75om+5biu5Yqp77yaJHtDT01NVU5JVFlfU0lURV9VUkx9YCxcbiAgICBdLFxuICB9KVxuICBwdWJsaWMgYXN5bmMgaW52b2tlRXh0ZW5zaW9uKG5hbWU6IHN0cmluZywgb3B0czogYW55KSB7XG4gICAgY29uc3QgZXh0ID0gZXh0ZW5zaW9uTWFwW25hbWVdXG4gICAgaWYgKCFleHQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgIGNvZGU6IEVSUk9SUy5JTlZBTElEX1BBUkFNUyxcbiAgICAgICAgbXNnOiBgZXh0ZW5zaW9uOiR7bmFtZX0gbXVzdCBiZSByZWdpc3RlcmVkIGJlZm9yZSBpbnZva2VgLFxuICAgICAgfSksKVxuICAgIH1cblxuICAgIHJldHVybiBhd2FpdCBleHQuaW52b2tlKG9wdHMsIHRoaXMpXG4gIH1cblxuICBwdWJsaWMgdXNlQWRhcHRlcnMoYWRhcHRlcnM6IENsb3VkYmFzZUFkYXB0ZXIgfCBDbG91ZGJhc2VBZGFwdGVyW10sIG9wdGlvbnM/OiBhbnkpIHtcbiAgICBjb25zdCB7IGFkYXB0ZXIsIHJ1bnRpbWUgfSA9IHVzZUFkYXB0ZXJzKGFkYXB0ZXJzLCBvcHRpb25zKSB8fCB7fVxuICAgIGFkYXB0ZXIgJiYgKFBsYXRmb3JtLmFkYXB0ZXIgPSBhZGFwdGVyIGFzIFNES0FkYXB0ZXJJbnRlcmZhY2UpXG4gICAgcnVudGltZSAmJiAoUGxhdGZvcm0ucnVudGltZSA9IHJ1bnRpbWUgYXMgc3RyaW5nKVxuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVySG9vayhob29rOiBJQ2xvdWRiYXNlSG9vaykge1xuICAgIHJlZ2lzdGVySG9vayhDbG91ZGJhc2UsIGhvb2spXG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJDb21wb25lbnQoY29tcG9uZW50OiBJQ2xvdWRiYXNlQ29tcG9uZW50KSB7XG4gICAgcmVnaXN0ZXJDb21wb25lbnQoQ2xvdWRiYXNlLCBjb21wb25lbnQpXG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJWZXJzaW9uKHZlcnNpb246IHN0cmluZykge1xuICAgIHNldFNka1ZlcnNpb24odmVyc2lvbilcbiAgICB0aGlzLnZlcnNpb24gPSB2ZXJzaW9uXG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJTZGtOYW1lKG5hbWU6IHN0cmluZykge1xuICAgIHNldFNka05hbWUobmFtZSlcbiAgfVxuXG4gIC8qKiDorr7nva4gdGNiIGFwaSDnmoQgZW5kcG9pbnQgKi9cbiAgcHVibGljIHJlZ2lzdGVyRW5kUG9pbnQodXJsOiBzdHJpbmcsIHByb3RvY29sPzogJ2h0dHAnIHwgJ2h0dHBzJykge1xuICAgIHNldEVuZFBvaW50SW5mbyh7IGJhc2VVcmw6IHVybCwgcHJvdG9jb2wsIGVudjogdGhpcy5jb25maWcuZW52LCBlbmRQb2ludEtleTogJ0NMT1VEX0FQSScgfSlcbiAgfVxuXG4gIC8qKiDorr7nva7nvZHlhbMvdGNiIGFwaeeahCBlbmRQb2ludO+8jOmAmui/hyBrZXkg5oyH5a6aICovXG4gIHB1YmxpYyByZWdpc3RlckVuZFBvaW50V2l0aEtleShwcm9wczogSVNldEVuZFBvaW50V2l0aEtleSkge1xuICAgIHNldEVuZFBvaW50SW5mbyh7XG4gICAgICBlbnY6IHRoaXMuY29uZmlnLmVudixcbiAgICAgIGVuZFBvaW50S2V5OiBwcm9wcy5rZXksXG4gICAgICBiYXNlVXJsOiBwcm9wcy51cmwsXG4gICAgICBwcm90b2NvbDogcHJvcHMucHJvdG9jb2wsXG4gICAgfSlcbiAgfVxuXG4gIC8qKiDmi7/nvZHlhbMvdGNiIGFwaeeahCBlbmRQb2ludO+8jOmAmui/hyBrZXkg5oyH5a6aICovXG4gIHB1YmxpYyBnZXRFbmRQb2ludFdpdGhLZXkoa2V5OiBFbmRQb2ludEtleSkge1xuICAgIGNvbnN0IGluZm8gPSBnZXRFbmRQb2ludEluZm8odGhpcy5jb25maWcuZW52LCBrZXkpXG4gICAgcmV0dXJuIHtcbiAgICAgIEJBU0VfVVJMOiBpbmZvLmJhc2VVcmwsXG4gICAgICBQUk9UT0NPTDogaW5mby5wcm90b2NvbCxcbiAgICB9XG4gIH1cblxuICAvLyDop6PmnpBVUkzlj4LmlbBcbiAgcHVibGljIHBhcnNlQ2FwdGNoYSh1cmwpIHtcbiAgICBsZXQgcXVlcnlPYmo6IGFueSA9IHt9XG4gICAgY29uc3QgbWF0Y2hlZCA9IHVybC5tYXRjaCgvXihkYXRhOi4qPykoXFw/W14jXFxzXSopPyQvKVxuICAgIGlmIChtYXRjaGVkKSB7XG4gICAgICB1cmwgPSBtYXRjaGVkWzFdXG4gICAgICBjb25zdCBzZWFyY2ggPSBtYXRjaGVkWzJdXG4gICAgICBpZiAoc2VhcmNoKSB7XG4gICAgICAgIHF1ZXJ5T2JqID0gdXRpbHMucGFyc2VRdWVyeVN0cmluZyhzZWFyY2gpXG4gICAgICB9XG4gICAgfVxuICAgIGNvbnN0IHsgdG9rZW4sIC4uLnJlc3RRdWVyeU9iaiB9ID0gcXVlcnlPYmpcbiAgICBpZiAoL15kYXRhOi8udGVzdCh1cmwpICYmICF0b2tlbikge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZXJyb3I6ICdpbnZhbGlkX2FyZ3VtZW50JyxcbiAgICAgICAgZXJyb3JfZGVzY3JpcHRpb246IGBpbnZhbGlkIGNhcHRjaGEgZGF0YTogJHt1cmx9YCxcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKCF0b2tlbikge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZXJyb3I6ICd1bmltcGxlbWVudGVkJyxcbiAgICAgICAgZXJyb3JfZGVzY3JpcHRpb246ICduZWVkIHRvIGltcGwgY2FwdGNoYSBkYXRhJyxcbiAgICAgIH1cbiAgICB9XG4gICAgLy8g6Kej5p6QdXJs5b6X5Yiw55qE5Y+C5pWwXG4gICAgcmV0dXJuIHtcbiAgICAgIHN0YXRlOiByZXN0UXVlcnlPYmouc3RhdGUsXG4gICAgICB0b2tlbiwgLy8g6aqM6K+B56CBdG9rZW5cbiAgICAgIGNhcHRjaGFEYXRhOiB1cmwsIC8vIOmqjOivgeeggWJhc2U2NOWbvueJh1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdXNlRGVmYXVsdEFkYXB0ZXIoKSB7XG4gICAgY29uc3QgeyBhZGFwdGVyLCBydW50aW1lIH0gPSB1c2VEZWZhdWx0QWRhcHRlcigpXG4gICAgUGxhdGZvcm0uYWRhcHRlciA9IGFkYXB0ZXIgYXMgU0RLQWRhcHRlckludGVyZmFjZVxuICAgIFBsYXRmb3JtLnJ1bnRpbWUgPSBydW50aW1lIGFzIHN0cmluZ1xuICB9XG5cbiAgcHJpdmF0ZSBmb3JtYXRUaW1lb3V0KHRpbWVvdXQ6IG51bWJlcikge1xuICAgIHN3aXRjaCAodHJ1ZSkge1xuICAgICAgY2FzZSB0aW1lb3V0ID4gTUFYX1RJTUVPVVQ6XG4gICAgICAgIHByaW50V2FybihFUlJPUlMuSU5WQUxJRF9QQVJBTVMsICd0aW1lb3V0IGlzIGdyZWF0ZXIgdGhhbiBtYXhpbXVtIHZhbHVlWzEwbWluXScpXG4gICAgICAgIHJldHVybiBNQVhfVElNRU9VVFxuICAgICAgY2FzZSB0aW1lb3V0IDwgTUlOX1RJTUVPVVQ6XG4gICAgICAgIHByaW50V2FybihFUlJPUlMuSU5WQUxJRF9QQVJBTVMsICd0aW1lb3V0IGlzIGxlc3MgdGhhbiBtYXhpbXVtIHZhbHVlWzEwMG1zXScpXG4gICAgICAgIHJldHVybiBNSU5fVElNRU9VVFxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIHRpbWVvdXRcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHRyeTJJbml0QXV0aChjb25maWc6IElDbG91ZGJhc2VDb25maWcsIGFwcCkge1xuICAgIHRyeSB7XG4gICAgICBpZiAoY29uZmlnLmFjY2Vzc0tleSkge1xuICAgICAgICBhcHAuYXV0aCgpXG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUubG9nKCd0cnkySW5pdEF1dGggZXJyb3I6JywgZXJyb3IpXG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBjb25zdCBjbG91ZGJhc2U6IElDbG91ZGJhc2UgPSBuZXcgQ2xvdWRiYXNlKClcbmNsb3VkYmFzZS51c2VBZGFwdGVycyhhZGFwdGVyRm9yV3hNcClcblxuZXhwb3J0IGRlZmF1bHQgY2xvdWRiYXNlXG4iXX0=