Comparing version 2.0.0-beta.14 to 2.0.0-beta.15
@@ -9,2 +9,3 @@ import jsforce from './jsforce'; | ||
export * from './oauth2'; | ||
export * from './jwtOAuth2'; | ||
export * from './connection'; | ||
@@ -17,2 +18,2 @@ export * from './query'; | ||
export default jsforce; | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb3JlLnRzIl0sIm5hbWVzIjpbImpzZm9yY2UiLCJTZkRhdGUiLCJyZWdpc3RyeSIsIlJlZ2lzdHJ5IiwiYnJvd3NlciIsIkJyb3dzZXJDbGllbnQiLCJWRVJTSU9OIiwiUmVjb3JkUmVmZXJlbmNlIiwiUmVjb3JkU3RyZWFtIiwiRGF0ZSJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsT0FBUCxNQUFvQixXQUFwQjtBQUNBLE9BQU9DLE1BQVAsTUFBbUIsUUFBbkI7QUFDQSxPQUFPQyxRQUFQLElBQW1CQyxRQUFuQixRQUFtQyxZQUFuQztBQUNBLE9BQU9DLE9BQVAsSUFBa0JDLGFBQWxCLFFBQXVDLGtCQUF2QztBQUNBLE9BQU9DLE9BQVAsTUFBb0IsV0FBcEI7QUFFQSxPQUFPQyxlQUFQLE1BQTRCLG9CQUE1QjtBQUNBLE9BQU9DLFlBQVAsTUFBeUIsaUJBQXpCO0FBRUEsY0FBYyxVQUFkO0FBQ0EsY0FBYyxjQUFkO0FBQ0EsY0FBYyxTQUFkO0FBQ0EsY0FBYyxnQkFBZDtBQUNBLGNBQWMsV0FBZDtBQUVBLGNBQWMsU0FBZDtBQUNBLFNBQ0VGLE9BREYsRUFFRUwsTUFBTSxJQUFJUSxJQUZaLEVBR0VSLE1BSEYsRUFJRUUsUUFKRixFQUtFRSxhQUxGLEVBTUVFLGVBTkYsRUFPRUMsWUFQRixFQVFFTixRQVJGLEVBU0VFLE9BVEY7QUFXQSxlQUFlSixPQUFmIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGpzZm9yY2UgZnJvbSAnLi9qc2ZvcmNlJztcbmltcG9ydCBTZkRhdGUgZnJvbSAnLi9kYXRlJztcbmltcG9ydCByZWdpc3RyeSwgeyBSZWdpc3RyeSB9IGZyb20gJy4vcmVnaXN0cnknO1xuaW1wb3J0IGJyb3dzZXIsIHsgQnJvd3NlckNsaWVudCB9IGZyb20gJy4vYnJvd3Nlci9jbGllbnQnO1xuaW1wb3J0IFZFUlNJT04gZnJvbSAnLi9WRVJTSU9OJztcblxuaW1wb3J0IFJlY29yZFJlZmVyZW5jZSBmcm9tICcuL3JlY29yZC1yZWZlcmVuY2UnO1xuaW1wb3J0IFJlY29yZFN0cmVhbSBmcm9tICcuL3JlY29yZC1zdHJlYW0nO1xuXG5leHBvcnQgKiBmcm9tICcuL29hdXRoMic7XG5leHBvcnQgKiBmcm9tICcuL2Nvbm5lY3Rpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9xdWVyeSc7XG5leHBvcnQgKiBmcm9tICcuL3F1aWNrLWFjdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL3NvYmplY3QnO1xuXG5leHBvcnQgKiBmcm9tICcuL3R5cGVzJztcbmV4cG9ydCB7XG4gIFZFUlNJT04sXG4gIFNmRGF0ZSBhcyBEYXRlLFxuICBTZkRhdGUsXG4gIFJlZ2lzdHJ5LFxuICBCcm93c2VyQ2xpZW50LFxuICBSZWNvcmRSZWZlcmVuY2UsXG4gIFJlY29yZFN0cmVhbSxcbiAgcmVnaXN0cnksXG4gIGJyb3dzZXIsXG59O1xuZXhwb3J0IGRlZmF1bHQganNmb3JjZTtcbiJdfQ== | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb3JlLnRzIl0sIm5hbWVzIjpbImpzZm9yY2UiLCJTZkRhdGUiLCJyZWdpc3RyeSIsIlJlZ2lzdHJ5IiwiYnJvd3NlciIsIkJyb3dzZXJDbGllbnQiLCJWRVJTSU9OIiwiUmVjb3JkUmVmZXJlbmNlIiwiUmVjb3JkU3RyZWFtIiwiRGF0ZSJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsT0FBUCxNQUFvQixXQUFwQjtBQUNBLE9BQU9DLE1BQVAsTUFBbUIsUUFBbkI7QUFDQSxPQUFPQyxRQUFQLElBQW1CQyxRQUFuQixRQUFtQyxZQUFuQztBQUNBLE9BQU9DLE9BQVAsSUFBa0JDLGFBQWxCLFFBQXVDLGtCQUF2QztBQUNBLE9BQU9DLE9BQVAsTUFBb0IsV0FBcEI7QUFFQSxPQUFPQyxlQUFQLE1BQTRCLG9CQUE1QjtBQUNBLE9BQU9DLFlBQVAsTUFBeUIsaUJBQXpCO0FBRUEsY0FBYyxVQUFkO0FBQ0EsY0FBYyxhQUFkO0FBQ0EsY0FBYyxjQUFkO0FBQ0EsY0FBYyxTQUFkO0FBQ0EsY0FBYyxnQkFBZDtBQUNBLGNBQWMsV0FBZDtBQUVBLGNBQWMsU0FBZDtBQUNBLFNBQ0VGLE9BREYsRUFFRUwsTUFBTSxJQUFJUSxJQUZaLEVBR0VSLE1BSEYsRUFJRUUsUUFKRixFQUtFRSxhQUxGLEVBTUVFLGVBTkYsRUFPRUMsWUFQRixFQVFFTixRQVJGLEVBU0VFLE9BVEY7QUFXQSxlQUFlSixPQUFmIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGpzZm9yY2UgZnJvbSAnLi9qc2ZvcmNlJztcbmltcG9ydCBTZkRhdGUgZnJvbSAnLi9kYXRlJztcbmltcG9ydCByZWdpc3RyeSwgeyBSZWdpc3RyeSB9IGZyb20gJy4vcmVnaXN0cnknO1xuaW1wb3J0IGJyb3dzZXIsIHsgQnJvd3NlckNsaWVudCB9IGZyb20gJy4vYnJvd3Nlci9jbGllbnQnO1xuaW1wb3J0IFZFUlNJT04gZnJvbSAnLi9WRVJTSU9OJztcblxuaW1wb3J0IFJlY29yZFJlZmVyZW5jZSBmcm9tICcuL3JlY29yZC1yZWZlcmVuY2UnO1xuaW1wb3J0IFJlY29yZFN0cmVhbSBmcm9tICcuL3JlY29yZC1zdHJlYW0nO1xuXG5leHBvcnQgKiBmcm9tICcuL29hdXRoMic7XG5leHBvcnQgKiBmcm9tICcuL2p3dE9BdXRoMic7XG5leHBvcnQgKiBmcm9tICcuL2Nvbm5lY3Rpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9xdWVyeSc7XG5leHBvcnQgKiBmcm9tICcuL3F1aWNrLWFjdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL3NvYmplY3QnO1xuXG5leHBvcnQgKiBmcm9tICcuL3R5cGVzJztcbmV4cG9ydCB7XG4gIFZFUlNJT04sXG4gIFNmRGF0ZSBhcyBEYXRlLFxuICBTZkRhdGUsXG4gIFJlZ2lzdHJ5LFxuICBCcm93c2VyQ2xpZW50LFxuICBSZWNvcmRSZWZlcmVuY2UsXG4gIFJlY29yZFN0cmVhbSxcbiAgcmVnaXN0cnksXG4gIGJyb3dzZXIsXG59O1xuZXhwb3J0IGRlZmF1bHQganNmb3JjZTtcbiJdfQ== |
@@ -22,2 +22,3 @@ import _Reflect$construct from "@babel/runtime-corejs3/core-js-stable/reflect/construct"; | ||
import client, { BrowserClient } from './browser/client'; | ||
import { JwtOAuth2 } from './jwtOAuth2'; | ||
/** | ||
@@ -51,2 +52,4 @@ * | ||
_defineProperty(_assertThisInitialized(_this), "JwtOAuth2", JwtOAuth2); | ||
_defineProperty(_assertThisInitialized(_this), "SfDate", SfDate); | ||
@@ -86,2 +89,2 @@ | ||
export default jsforce; | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9qc2ZvcmNlLnRzIl0sIm5hbWVzIjpbIkV2ZW50RW1pdHRlciIsIlZFUlNJT04iLCJDb25uZWN0aW9uIiwiT0F1dGgyIiwiU2ZEYXRlIiwicmVnaXN0cnkiLCJjbGllbnQiLCJCcm93c2VyQ2xpZW50IiwiSlNmb3JjZSIsInJlZ2lzdGVyTW9kdWxlIiwibmFtZSIsImZhY3RvcnkiLCJqc2ZvcmNlIiwib24iLCJjb25uIiwib2JqIiwidW5kZWZpbmVkIiwiZ2V0IiwiZW51bWVyYWJsZSIsImNvbmZpZ3VyYWJsZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7QUFBQSxTQUFTQSxZQUFULFFBQTZCLFFBQTdCO0FBQ0EsT0FBT0MsT0FBUCxNQUFvQixXQUFwQjtBQUNBLE9BQU9DLFVBQVAsTUFBdUIsY0FBdkI7QUFDQSxPQUFPQyxNQUFQLE1BQW1CLFVBQW5CO0FBQ0EsT0FBT0MsTUFBUCxNQUFtQixRQUFuQjtBQUNBLE9BQU9DLFFBQVAsTUFBbUMsWUFBbkM7QUFDQSxPQUFPQyxNQUFQLElBQWlCQyxhQUFqQixRQUFzQyxrQkFBdEM7QUFFQTtBQUNBO0FBQ0E7O0lBQ01DLE87Ozs7Ozs7Ozs7Ozs7Ozs7Ozs4REFDc0JQLE87O2lFQUNNQyxVOzs2REFDUkMsTTs7NkRBQ0FDLE07OzJEQUNGQSxNOztvRUFDZ0JHLGE7OytEQUNqQkYsUTs7OERBQ0lDLE07Ozs7OztFQVJMTixZOztBQVd0QixPQUFPLFNBQVNTLGNBQVQsQ0FDTEMsSUFESyxFQUVMQyxPQUZLLEVBR0w7QUFDQUMsRUFBQUEsT0FBTyxDQUFDQyxFQUFSLENBQVcsZ0JBQVgsRUFBNkIsVUFBQ0MsSUFBRCxFQUFzQjtBQUNqRCxRQUFJQyxHQUFRLEdBQUdDLFNBQWY7O0FBQ0EsMkJBQXNCRixJQUF0QixFQUE0QkosSUFBNUIsRUFBa0M7QUFDaENPLE1BQUFBLEdBRGdDLGlCQUMxQjtBQUFBOztBQUNKRixRQUFBQSxHQUFHLFdBQUdBLEdBQUgsdUNBQVVKLE9BQU8sQ0FBQ0csSUFBRCxDQUFwQjtBQUNBLGVBQU9DLEdBQVA7QUFDRCxPQUorQjtBQUtoQ0csTUFBQUEsVUFBVSxFQUFFLElBTG9CO0FBTWhDQyxNQUFBQSxZQUFZLEVBQUU7QUFOa0IsS0FBbEM7QUFRRCxHQVZEO0FBV0Q7QUFFRCxJQUFNUCxPQUFPLEdBQUcsSUFBSUosT0FBSixFQUFoQjtBQUNBLGVBQWVJLE9BQWYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudEVtaXR0ZXIgfSBmcm9tICdldmVudHMnO1xuaW1wb3J0IFZFUlNJT04gZnJvbSAnLi9WRVJTSU9OJztcbmltcG9ydCBDb25uZWN0aW9uIGZyb20gJy4vY29ubmVjdGlvbic7XG5pbXBvcnQgT0F1dGgyIGZyb20gJy4vb2F1dGgyJztcbmltcG9ydCBTZkRhdGUgZnJvbSAnLi9kYXRlJztcbmltcG9ydCByZWdpc3RyeSwgeyBSZWdpc3RyeSB9IGZyb20gJy4vcmVnaXN0cnknO1xuaW1wb3J0IGNsaWVudCwgeyBCcm93c2VyQ2xpZW50IH0gZnJvbSAnLi9icm93c2VyL2NsaWVudCc7XG5cbi8qKlxuICpcbiAqL1xuY2xhc3MgSlNmb3JjZSBleHRlbmRzIEV2ZW50RW1pdHRlciB7XG4gIFZFUlNJT046IHR5cGVvZiBWRVJTSU9OID0gVkVSU0lPTjtcbiAgQ29ubmVjdGlvbjogdHlwZW9mIENvbm5lY3Rpb24gPSBDb25uZWN0aW9uO1xuICBPQXV0aDI6IHR5cGVvZiBPQXV0aDIgPSBPQXV0aDI7XG4gIFNmRGF0ZTogdHlwZW9mIFNmRGF0ZSA9IFNmRGF0ZTtcbiAgRGF0ZTogdHlwZW9mIFNmRGF0ZSA9IFNmRGF0ZTtcbiAgQnJvd3NlckNsaWVudDogdHlwZW9mIEJyb3dzZXJDbGllbnQgPSBCcm93c2VyQ2xpZW50O1xuICByZWdpc3RyeTogUmVnaXN0cnkgPSByZWdpc3RyeTtcbiAgYnJvd3NlcjogQnJvd3NlckNsaWVudCA9IGNsaWVudDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlZ2lzdGVyTW9kdWxlKFxuICBuYW1lOiBzdHJpbmcsXG4gIGZhY3Rvcnk6IChjb25uOiBDb25uZWN0aW9uKSA9PiBhbnksXG4pIHtcbiAganNmb3JjZS5vbignY29ubmVjdGlvbjpuZXcnLCAoY29ubjogQ29ubmVjdGlvbikgPT4ge1xuICAgIGxldCBvYmo6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoY29ubiwgbmFtZSwge1xuICAgICAgZ2V0KCkge1xuICAgICAgICBvYmogPSBvYmogPz8gZmFjdG9yeShjb25uKTtcbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICAgIH0sXG4gICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgIH0pO1xuICB9KTtcbn1cblxuY29uc3QganNmb3JjZSA9IG5ldyBKU2ZvcmNlKCk7XG5leHBvcnQgZGVmYXVsdCBqc2ZvcmNlO1xuIl19 | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9qc2ZvcmNlLnRzIl0sIm5hbWVzIjpbIkV2ZW50RW1pdHRlciIsIlZFUlNJT04iLCJDb25uZWN0aW9uIiwiT0F1dGgyIiwiU2ZEYXRlIiwicmVnaXN0cnkiLCJjbGllbnQiLCJCcm93c2VyQ2xpZW50IiwiSnd0T0F1dGgyIiwiSlNmb3JjZSIsInJlZ2lzdGVyTW9kdWxlIiwibmFtZSIsImZhY3RvcnkiLCJqc2ZvcmNlIiwib24iLCJjb25uIiwib2JqIiwidW5kZWZpbmVkIiwiZ2V0IiwiZW51bWVyYWJsZSIsImNvbmZpZ3VyYWJsZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7QUFBQSxTQUFTQSxZQUFULFFBQTZCLFFBQTdCO0FBQ0EsT0FBT0MsT0FBUCxNQUFvQixXQUFwQjtBQUNBLE9BQU9DLFVBQVAsTUFBdUIsY0FBdkI7QUFDQSxPQUFPQyxNQUFQLE1BQW1CLFVBQW5CO0FBQ0EsT0FBT0MsTUFBUCxNQUFtQixRQUFuQjtBQUNBLE9BQU9DLFFBQVAsTUFBbUMsWUFBbkM7QUFDQSxPQUFPQyxNQUFQLElBQWlCQyxhQUFqQixRQUFzQyxrQkFBdEM7QUFDQSxTQUFTQyxTQUFULFFBQTBCLGFBQTFCO0FBRUE7QUFDQTtBQUNBOztJQUNNQyxPOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OERBQ3NCUixPOztpRUFDTUMsVTs7NkRBQ1JDLE07O2dFQUNNSyxTOzs2REFDTkosTTs7MkRBQ0ZBLE07O29FQUNnQkcsYTs7K0RBQ2pCRixROzs4REFDSUMsTTs7Ozs7O0VBVExOLFk7O0FBWXRCLE9BQU8sU0FBU1UsY0FBVCxDQUNMQyxJQURLLEVBRUxDLE9BRkssRUFHTDtBQUNBQyxFQUFBQSxPQUFPLENBQUNDLEVBQVIsQ0FBVyxnQkFBWCxFQUE2QixVQUFDQyxJQUFELEVBQXNCO0FBQ2pELFFBQUlDLEdBQVEsR0FBR0MsU0FBZjs7QUFDQSwyQkFBc0JGLElBQXRCLEVBQTRCSixJQUE1QixFQUFrQztBQUNoQ08sTUFBQUEsR0FEZ0MsaUJBQzFCO0FBQUE7O0FBQ0pGLFFBQUFBLEdBQUcsV0FBR0EsR0FBSCx1Q0FBVUosT0FBTyxDQUFDRyxJQUFELENBQXBCO0FBQ0EsZUFBT0MsR0FBUDtBQUNELE9BSitCO0FBS2hDRyxNQUFBQSxVQUFVLEVBQUUsSUFMb0I7QUFNaENDLE1BQUFBLFlBQVksRUFBRTtBQU5rQixLQUFsQztBQVFELEdBVkQ7QUFXRDtBQUVELElBQU1QLE9BQU8sR0FBRyxJQUFJSixPQUFKLEVBQWhCO0FBQ0EsZUFBZUksT0FBZiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEV2ZW50RW1pdHRlciB9IGZyb20gJ2V2ZW50cyc7XG5pbXBvcnQgVkVSU0lPTiBmcm9tICcuL1ZFUlNJT04nO1xuaW1wb3J0IENvbm5lY3Rpb24gZnJvbSAnLi9jb25uZWN0aW9uJztcbmltcG9ydCBPQXV0aDIgZnJvbSAnLi9vYXV0aDInO1xuaW1wb3J0IFNmRGF0ZSBmcm9tICcuL2RhdGUnO1xuaW1wb3J0IHJlZ2lzdHJ5LCB7IFJlZ2lzdHJ5IH0gZnJvbSAnLi9yZWdpc3RyeSc7XG5pbXBvcnQgY2xpZW50LCB7IEJyb3dzZXJDbGllbnQgfSBmcm9tICcuL2Jyb3dzZXIvY2xpZW50JztcbmltcG9ydCB7IEp3dE9BdXRoMiB9IGZyb20gJy4vand0T0F1dGgyJztcblxuLyoqXG4gKlxuICovXG5jbGFzcyBKU2ZvcmNlIGV4dGVuZHMgRXZlbnRFbWl0dGVyIHtcbiAgVkVSU0lPTjogdHlwZW9mIFZFUlNJT04gPSBWRVJTSU9OO1xuICBDb25uZWN0aW9uOiB0eXBlb2YgQ29ubmVjdGlvbiA9IENvbm5lY3Rpb247XG4gIE9BdXRoMjogdHlwZW9mIE9BdXRoMiA9IE9BdXRoMjtcbiAgSnd0T0F1dGgyOiB0eXBlb2YgSnd0T0F1dGgyID0gSnd0T0F1dGgyO1xuICBTZkRhdGU6IHR5cGVvZiBTZkRhdGUgPSBTZkRhdGU7XG4gIERhdGU6IHR5cGVvZiBTZkRhdGUgPSBTZkRhdGU7XG4gIEJyb3dzZXJDbGllbnQ6IHR5cGVvZiBCcm93c2VyQ2xpZW50ID0gQnJvd3NlckNsaWVudDtcbiAgcmVnaXN0cnk6IFJlZ2lzdHJ5ID0gcmVnaXN0cnk7XG4gIGJyb3dzZXI6IEJyb3dzZXJDbGllbnQgPSBjbGllbnQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZWdpc3Rlck1vZHVsZShcbiAgbmFtZTogc3RyaW5nLFxuICBmYWN0b3J5OiAoY29ubjogQ29ubmVjdGlvbikgPT4gYW55LFxuKSB7XG4gIGpzZm9yY2Uub24oJ2Nvbm5lY3Rpb246bmV3JywgKGNvbm46IENvbm5lY3Rpb24pID0+IHtcbiAgICBsZXQgb2JqOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGNvbm4sIG5hbWUsIHtcbiAgICAgIGdldCgpIHtcbiAgICAgICAgb2JqID0gb2JqID8/IGZhY3RvcnkoY29ubik7XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgICB9LFxuICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICB9KTtcbiAgfSk7XG59XG5cbmNvbnN0IGpzZm9yY2UgPSBuZXcgSlNmb3JjZSgpO1xuZXhwb3J0IGRlZmF1bHQganNmb3JjZTtcbiJdfQ== |
@@ -102,2 +102,13 @@ /// <reference types="node" /> | ||
/** | ||
* Will deploy a recently validated deploy request | ||
* | ||
* @param options.id = the deploy ID that's been validated already from a previous checkOnly deploy request | ||
* @param options.rest = a boolean whether or not to use the REST API | ||
* @returns the deploy ID of the recent validation request | ||
*/ | ||
deployRecentValidation(options: { | ||
id: string; | ||
rest?: boolean; | ||
}): Promise<string>; | ||
/** | ||
* Deploy components into an organization using zipped file representations | ||
@@ -104,0 +115,0 @@ * using the REST Metadata API instead of SOAP |
@@ -292,2 +292,45 @@ "use strict"; | ||
/** | ||
* Will deploy a recently validated deploy request | ||
* | ||
* @param options.id = the deploy ID that's been validated already from a previous checkOnly deploy request | ||
* @param options.rest = a boolean whether or not to use the REST API | ||
* @returns the deploy ID of the recent validation request | ||
*/ | ||
async deployRecentValidation(options) { | ||
const { | ||
id, | ||
rest | ||
} = options; | ||
let response; | ||
if (rest) { | ||
const messageBody = (0, _stringify.default)({ | ||
validatedDeployRequestId: id | ||
}); | ||
const requestInfo = { | ||
method: 'POST', | ||
url: `${this._conn._baseUrl()}/metadata/deployRequest`, | ||
body: messageBody, | ||
headers: { | ||
'content-type': 'application/json' | ||
} | ||
}; | ||
const requestOptions = { | ||
headers: 'json' | ||
}; // This is the deploy ID of the deployRecentValidation response, not | ||
// the already validated deploy ID (i.e., validateddeployrequestid). | ||
// REST returns an object with an id property, SOAP returns the id as a string directly. | ||
response = (await this._conn.request(requestInfo, requestOptions)).id; | ||
} else { | ||
response = await this._invoke('deployRecentValidation', { | ||
validationId: id | ||
}); | ||
} | ||
return response; | ||
} | ||
/** | ||
* Deploy components into an organization using zipped file representations | ||
@@ -543,2 +586,2 @@ * using the REST Metadata API instead of SOAP | ||
exports.default = _default; | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hcGkvbWV0YWRhdGEudHMiXSwibmFtZXMiOlsiZGVhbGxvY2F0ZVR5cGVXaXRoTWV0YWRhdGEiLCJtZXRhZGF0YSIsIiQiLCJtZCIsImFzc2lnblR5cGVXaXRoTWV0YWRhdGEiLCJ0eXBlIiwiY29udmVydCIsIk1ldGFkYXRhQXBpIiwiY29uc3RydWN0b3IiLCJjb25uIiwiX2Nvbm4iLCJfaW52b2tlIiwibWV0aG9kIiwibWVzc2FnZSIsInNjaGVtYSIsInNvYXBFbmRwb2ludCIsIlNPQVAiLCJ4bWxucyIsImVuZHBvaW50VXJsIiwiaW5zdGFuY2VVcmwiLCJ2ZXJzaW9uIiwicmVzIiwiaW52b2tlIiwicmVzdWx0IiwidW5kZWZpbmVkIiwiQXBpU2NoZW1hcyIsImNyZWF0ZSIsImlzQXJyYXkiLCJTYXZlUmVzdWx0IiwicmVhZCIsImZ1bGxOYW1lcyIsIlJlYWRSZXN1bHRTY2hlbWEiLCJSZWFkUmVzdWx0IiwicHJvcHMiLCJyZWNvcmRzIiwidXBkYXRlIiwidXBzZXJ0IiwiVXBzZXJ0UmVzdWx0IiwiZGVsZXRlIiwicmVuYW1lIiwib2xkRnVsbE5hbWUiLCJuZXdGdWxsTmFtZSIsImRlc2NyaWJlIiwiYXNPZlZlcnNpb24iLCJEZXNjcmliZU1ldGFkYXRhUmVzdWx0IiwibGlzdCIsInF1ZXJpZXMiLCJGaWxlUHJvcGVydGllcyIsImNoZWNrU3RhdHVzIiwiYXN5bmNQcm9jZXNzSWQiLCJBc3luY1Jlc3VsdCIsIkFzeW5jUmVzdWx0TG9jYXRvciIsInJldHJpZXZlIiwicmVxdWVzdCIsIlJldHJpZXZlUmVzdWx0IiwiUmV0cmlldmVSZXN1bHRMb2NhdG9yIiwiY2hlY2tSZXRyaWV2ZVN0YXR1cyIsImRlcGxveVJlc3QiLCJ6aXBJbnB1dCIsIm9wdGlvbnMiLCJmb3JtIiwiRm9ybURhdGEiLCJhcHBlbmQiLCJjb250ZW50VHlwZSIsImZpbGVuYW1lIiwiZGVwbG95T3B0aW9ucyIsInVybCIsImhlYWRlcnMiLCJnZXRIZWFkZXJzIiwiYm9keSIsImdldEJ1ZmZlciIsIkRlcGxveVJlc3VsdExvY2F0b3IiLCJkZXBsb3kiLCJ6aXBDb250ZW50QjY0IiwicmVzb2x2ZSIsInJlamVjdCIsInBpcGUiLCJidWZzIiwib24iLCJkIiwicHVzaCIsIkJ1ZmZlciIsInRvU3RyaW5nIiwiU3RyaW5nIiwiWmlwRmlsZSIsIkRlcGxveU9wdGlvbnMiLCJEZXBsb3lSZXN1bHQiLCJjaGVja0RlcGxveVN0YXR1cyIsImluY2x1ZGVEZXRhaWxzIiwiRXZlbnRFbWl0dGVyIiwibWV0YSIsInByb21pc2UiLCJfbWV0YSIsIl9wcm9taXNlIiwidGhlbiIsIm9uUmVzb2x2ZSIsIm9uUmVqZWN0IiwiY2hlY2siLCJfaWQiLCJpZCIsInBvbGwiLCJpbnRlcnZhbCIsInRpbWVvdXQiLCJzdGFydFRpbWUiLCJEYXRlIiwiZ2V0VGltZSIsIm5vdyIsImVyck1zZyIsImVtaXQiLCJFcnJvciIsImRvbmUiLCJlcnIiLCJjb21wbGV0ZSIsInBvbGxJbnRlcnZhbCIsInBvbGxUaW1lb3V0Iiwic3RyZWFtIiwicmVzdWx0U3RyZWFtIiwiUmVhZGFibGUiLCJyZWFkaW5nIiwiX3JlYWQiLCJmcm9tIiwiemlwRmlsZSIsImUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFJQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQTs7QUFDQTs7QUFFQTs7QUFnQkE7QUFBQTtBQUFBO0FBQUE7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7OztBQXFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTQSwwQkFBVCxDQUF3REMsUUFBeEQsRUFBd0U7QUFDdEUsZUFBcUJBLFFBQXJCO0FBQUEsUUFBTTtBQUFFQyxJQUFBQTtBQUFGLEdBQU47QUFBQSxRQUFjQyxFQUFkO0FBQ0EsU0FBT0EsRUFBUDtBQUNEOztBQUVELFNBQVNDLHNCQUFULENBQWdDSCxRQUFoQyxFQUFpRUksSUFBakUsRUFBK0U7QUFDN0UsUUFB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Q0Q7O0FBOUJEO0FBaUNGOztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7QUFDTyxNQUFNN0MsbUJBQU4sU0FBb0RwQixrQkFBcEQsQ0FHTDtBQUNBO0FBQ0Y7QUFDQTtBQUNBO0FBQ0UsUUFBTTZELFFBQU4sQ0FBZXhCLGNBQWYsRUFBeUM7QUFDdkMsVUFBTWpFLE1BQU0sR0FBRyxNQUFNLE1BQU15RixRQUFOLEVBQXJCO0FBQ0EsV0FBTyxLQUFLcEIsS0FBTCxDQUFXTCxpQkFBWCxDQUE2QmhFLE1BQU0sQ0FBQzRFLEVBQXBDLEVBQXdDWCxjQUF4QyxDQUFQO0FBQ0Q7O0FBUkQ7QUFXRjs7QUFDQTtBQUNBO0FBQ0E7Ozs7QUFDQSw2QkFBZSxVQUFmLEVBQTRCL0UsSUFBRCxJQUFVLElBQUlGLFdBQUosQ0FBZ0JFLElBQWhCLENBQXJDO2VBRWVGLFciLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBmaWxlIE1hbmFnZXMgU2FsZXNmb3JjZSBNZXRhZGF0YSBBUElcbiAqIEBhdXRob3IgU2hpbmljaGkgVG9taXRhIDxzaGluaWNoaS50b21pdGFAZ21haWwuY29tPlxuICovXG5pbXBvcnQgeyBFdmVudEVtaXR0ZXIgfSBmcm9tICdldmVudHMnO1xuaW1wb3J0IHsgUmVhZGFibGUgfSBmcm9tICdzdHJlYW0nO1xuaW1wb3J0IEZvcm1EYXRhIGZyb20gJ2Zvcm0tZGF0YSc7XG5pbXBvcnQgeyByZWdpc3Rlck1vZHVsZSB9IGZyb20gJy4uL2pzZm9yY2UnO1xuaW1wb3J0IENvbm5lY3Rpb24gZnJvbSAnLi4vY29ubmVjdGlvbic7XG5pbXBvcnQgU09BUCBmcm9tICcuLi9zb2FwJztcbmltcG9ydCB7IGlzT2JqZWN0IH0gZnJvbSAnLi4vdXRpbC9mdW5jdGlvbic7XG5pbXBvcnQgeyBTY2hlbWEsIFNvYXBTY2hlbWFEZWYsIFNvYXBTY2hlbWEsIEh0dHBSZXF1ZXN0IH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHtcbiAgQXBpU2NoZW1hcyxcbiAgTWV0YWRhdGEsXG4gIFJlYWRSZXN1bHQsXG4gIFNhdmVSZXN1bHQsXG4gIFVwc2VydFJlc3VsdCxcbiAgTGlzdE1ldGFkYXRhUXVlcnksXG4gIEZpbGVQcm9wZXJ0aWVzLFxuICBEZXNjcmliZU1ldGFkYXRhUmVzdWx0LFxuICBSZXRyaWV2ZVJlcXVlc3QsXG4gIERlcGxveU9wdGlvbnMsXG4gIFJldHJpZXZlUmVzdWx0LFxuICBEZXBsb3lSZXN1bHQsXG4gIEFzeW5jUmVzdWx0LFxuICBBcGlTY2hlbWFUeXBlcyxcbn0gZnJvbSAnLi9tZXRhZGF0YS9zY2hlbWEnO1xuZXhwb3J0ICogZnJvbSAnLi9tZXRhZGF0YS9zY2hlbWEnO1xuXG4vKipcbiAqXG4gKi9cbnR5cGUgTWV0YWRhdGFUeXBlXzxcbiAgSyBleHRlbmRzIGtleW9mIEFwaVNjaGVtYVR5cGVzID0ga2V5b2YgQXBpU2NoZW1hVHlwZXNcbj4gPSBLIGV4dGVuZHMga2V5b2YgQXBpU2NoZW1hVHlwZXNcbiAgPyBBcGlTY2hlbWFUeXBlc1tLXSBleHRlbmRzIE1ldGFkYXRhXG4gICAgPyBLXG4gICAgOiBuZXZlclxuICA6IG5ldmVyO1xuXG5leHBvcnQgdHlwZSBNZXRhZGF0YVR5cGUgPSBNZXRhZGF0YVR5cGVfO1xuXG5leHBvcnQgdHlwZSBNZXRhZGF0YURlZmluaXRpb248XG4gIFQgZXh0ZW5kcyBzdHJpbmcsXG4gIE0gZXh0ZW5kcyBNZXRhZGF0YSA9IE1ldGFkYXRhXG4+ID0gTWV0YWRhdGEgZXh0ZW5kcyBNXG4gID8gVCBleHRlbmRzIGtleW9mIEFwaVNjaGVtYVR5cGVzICYgTWV0YWRhdGFUeXBlXG4gICAgPyBBcGlTY2hlbWFUeXBlc1tUXSBleHRlbmRzIE1ldGFkYXRhXG4gICAgICA/IEFwaVNjaGVtYVR5cGVzW1RdXG4gICAgICA6IE1ldGFkYXRhXG4gICAgOiBNZXRhZGF0YVxuICA6IE07XG5cbnR5cGUgRGVlcFBhcnRpYWw8VD4gPSBUIGV4dGVuZHMgYW55W11cbiAgPyBEZWVwUGFydGlhbDxUW251bWJlcl0+W11cbiAgOiBUIGV4dGVuZHMgb2JqZWN0XG4gID8geyBbSyBpbiBrZXlvZiBUXT86IERlZXBQYXJ0aWFsPFRbS10+IH1cbiAgOiBUO1xuXG5leHBvcnQgdHlwZSBJbnB1dE1ldGFkYXRhRGVmaW5pdGlvbjxcbiAgVCBleHRlbmRzIHN0cmluZyxcbiAgTSBleHRlbmRzIE1ldGFkYXRhID0gTWV0YWRhdGFcbj4gPSBEZWVwUGFydGlhbDxNZXRhZGF0YURlZmluaXRpb248VCwgTT4+O1xuXG4vKipcbiAqXG4gKi9cbmZ1bmN0aW9uIGRlYWxsb2NhdGVUeXBlV2l0aE1ldGFkYXRhPE0gZXh0ZW5kcyBNZXRhZGF0YT4obWV0YWRhdGE6IE0pOiBNIHtcbiAgY29uc3QgeyAkLCAuLi5tZCB9ID0gbWV0YWRhdGEgYXMgYW55O1xuICByZXR1cm4gbWQ7XG59XG5cbmZ1bmN0aW9uIGFzc2lnblR5cGVXaXRoTWV0YWRhdGEobWV0YWRhdGE6IE1ldGFkYXRhIHwgTWV0YWRhdGFbXSwgdHlwZTogc3RyaW5nKSB7XG4gIGNvbnN0IGNvbnZlcnQgPSAobWQ6IE1ldGFkYXRhKSA9PiAoeyBbJ0B4c2k6dHlwZSddOiB0eXBlLCAuLi5tZCB9KTtcbiAgcmV0dXJuIEFycmF5LmlzQXJyYXkobWV0YWRhdGEpID8gbWV0YWRhdGEubWFwKGNvbnZlcnQpIDogY29udmVydChtZXRhZGF0YSk7XG59XG5cbi8qKlxuICogQ2xhc3MgZm9yIFNhbGVzZm9yY2UgTWV0YWRhdGEgQVBJXG4gKi9cbmV4cG9ydCBjbGFzcyBNZXRhZGF0YUFwaTxTIGV4dGVuZHMgU2NoZW1hPiB7XG4gIF9jb25uOiBDb25uZWN0aW9uPFM+O1xuXG4gIC8qKlxuICAgKiBQb2xsaW5nIGludGVydmFsIGluIG1pbGxpc2Vjb25kc1xuICAgKi9cbiAgcG9sbEludGVydmFsOiBudW1iZXIgPSAxMDAwO1xuXG4gIC8qKlxuICAgKiBQb2xsaW5nIHRpbWVvdXQgaW4gbWlsbGlzZWNvbmRzXG4gICAqL1xuICBwb2xsVGltZW91dDogbnVtYmVyID0gMTAwMDA7XG5cbiAgLyoqXG4gICAqXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihjb25uOiBDb25uZWN0aW9uPFM+KSB7XG4gICAgdGhpcy5fY29ubiA9IGNvbm47XG4gIH1cblxuICAvKipcbiAgICogQ2FsbCBNZXRhZGF0YSBBUEkgU09BUCBlbmRwb2ludFxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgYXN5bmMgX2ludm9rZShcbiAgICBtZXRob2Q6IHN0cmluZyxcbiAgICBtZXNzYWdlOiBvYmplY3QsXG4gICAgc2NoZW1hPzogU29hcFNjaGVtYSB8IFNvYXBTY2hlbWFEZWYsXG4gICkge1xuICAgIGNvbnN0IHNvYXBFbmRwb2ludCA9IG5ldyBTT0FQKHRoaXMuX2Nvbm4sIHtcbiAgICAgIHhtbG5zOiAnaHR0cDovL3NvYXAuc2ZvcmNlLmNvbS8yMDA2LzA0L21ldGFkYXRhJyxcbiAgICAgIGVuZHBvaW50VXJsOiBgJHt0aGlzLl9jb25uLmluc3RhbmNlVXJsfS9zZXJ2aWNlcy9Tb2FwL20vJHt0aGlzLl9jb25uLnZlcnNpb259YCxcbiAgICB9KTtcbiAgICBjb25zdCByZXMgPSBhd2FpdCBzb2FwRW5kcG9pbnQuaW52b2tlKFxuICAgICAgbWV0aG9kLFxuICAgICAgbWVzc2FnZSxcbiAgICAgIHNjaGVtYSA/ICh7IHJlc3VsdDogc2NoZW1hIH0gYXMgU29hcFNjaGVtYSkgOiB1bmRlZmluZWQsXG4gICAgICBBcGlTY2hlbWFzLFxuICAgICk7XG4gICAgcmV0dXJuIHJlcy5yZXN1bHQ7XG4gIH1cblxuICAvKipcbiAgICogQWRkIG9uZSBvciBtb3JlIG5ldyBtZXRhZGF0YSBjb21wb25lbnRzIHRvIHRoZSBvcmdhbml6YXRpb24uXG4gICAqL1xuICBjcmVhdGU8XG4gICAgTSBleHRlbmRzIE1ldGFkYXRhID0gTWV0YWRhdGEsXG4gICAgVCBleHRlbmRzIE1ldGFkYXRhVHlwZSA9IE1ldGFkYXRhVHlwZSxcbiAgICBNRCBleHRlbmRzIElucHV0TWV0YWRhdGFEZWZpbml0aW9uPFQsIE0+ID0gSW5wdXRNZXRhZGF0YURlZmluaXRpb248VCwgTT5cbiAgPih0eXBlOiBULCBtZXRhZGF0YTogTURbXSk6IFByb21pc2U8U2F2ZVJlc3VsdFtdPjtcbiAgY3JlYXRlPFxuICAgIE0gZXh0ZW5kcyBNZXRhZGF0YSA9IE1ldGFkYXRhLFxuICAgIFQgZXh0ZW5kcyBNZXRhZGF0YVR5cGUgPSBNZXRhZGF0YVR5cGUsXG4gICAgTUQgZXh0ZW5kcyBJbnB1dE1ldGFkYXRhRGVmaW5pdGlvbjxULCBNPiA9IElucHV0TWV0YWRhdGFEZWZpbml0aW9uPFQsIE0+XG4gID4odHlwZTogVCwgbWV0YWRhdGE6IE1EKTogUHJvbWlzZTxTYXZlUmVzdWx0PjtcbiAgY3JlYXRlPFxuICAgIE0gZXh0ZW5kcyBNZXRhZGF0YSA9IE1ldGFkYXRhLFxuICAgIFQgZXh0ZW5kcyBNZXRhZGF0YVR5cGUgPSBNZXRhZGF0YVR5cGUsXG4gICAgTUQgZXh0ZW5kcyBJbnB1dE1ldGFkYXRhRGVmaW5pdGlvbjxULCBNPiA9IElucHV0TWV0YWRhdGFEZWZpbml0aW9uPFQsIE0+XG4gID4odHlwZTogVCwgbWV0YWRhdGE6IE1EIHwgTURbXSk6IFByb21pc2U8U2F2ZVJlc3VsdCB8IFNhdmVSZXN1bHRbXT47XG4gIGNyZWF0ZSh0eXBlOiBzdHJpbmcsIG1ldGFkYXRhOiBNZXRhZGF0YSB8IE1ldGFkYXRhW10pIHtcbiAgICBjb25zdCBpc0FycmF5ID0gQXJyYXkuaXNBcnJheShtZXRhZGF0YSk7XG4gICAgbWV0YWRhdGEgPSBhc3NpZ25UeXBlV2l0aE1ldGFkYXRhKG1ldGFkYXRhLCB0eXBlKTtcbiAgICBjb25zdCBzY2hlbWEgPSBpc0FycmF5ID8gW0FwaVNjaGVtYXMuU2F2ZVJlc3VsdF0gOiBBcGlTY2hlbWFzLlNhdmVSZXN1bHQ7XG4gICAgcmV0dXJuIHRoaXMuX2ludm9rZSgnY3JlYXRlTWV0YWRhdGEnLCB7IG1ldGFkYXRhIH0sIHNjaGVtYSk7XG4gIH1cblxuICAvKipcbiAgICogUmVhZCBzcGVjaWZpZWQgbWV0YWRhdGEgY29tcG9uZW50cyBpbiB0aGUgb3JnYW5pemF0aW9uLlxuICAgKi9cbiAgcmVhZDxcbiAgICBNIGV4dGVuZHMgTWV0YWRhdGEgPSBNZXRhZGF0YSxcbiAgICBUIGV4dGVuZHMgTWV0YWRhdGFUeXBlID0gTWV0YWRhdGFUeXBlLFxuICAgIE1EIGV4dGVuZHMgTWV0YWRhdGFEZWZpbml0aW9uPFQsIE0+ID0gTWV0YWRhdGFEZWZpbml0aW9uPFQsIE0+XG4gID4odHlwZTogVCwgZnVsbE5hbWVzOiBzdHJpbmdbXSk6IFByb21pc2U8TURbXT47XG4gIHJlYWQ8XG4gICAgTSBleHRlbmRzIE1ldGFkYXRhID0gTWV0YWRhdGEsXG4gICAgVCBleHRlbmRzIE1ldGFkYXRhVHlwZSA9IE1ldGFkYXRhVHlwZSxcbiAgICBNRCBleHRlbmRzIE1ldGFkYXRhRGVmaW5pdGlvbjxULCBNPiA9IE1ldGFkYXRhRGVmaW5pdGlvbjxULCBNPlxuICA+KHR5cGU6IFQsIGZ1bGxOYW1lczogc3RyaW5nKTogUHJvbWlzZTxNRD47XG4gIHJlYWQ8XG4gICAgTSBleHRlbmRzIE1ldGFkYXRhID0gTWV0YWRhdGEsXG4gICAgVCBleHRlbmRzIE1ldGFkYXRhVHlwZSA9IE1ldGFkYXRhVHlwZSxcbiAgICBNRCBleHRlbmRzIE1ldGFkYXRhRGVmaW5pdGlvbjxULCBNPiA9IE1ldGFkYXRhRGVmaW5pdGlvbjxULCBNPlxuICA+KHR5cGU6IFQsIGZ1bGxOYW1lczogc3RyaW5nIHwgc3RyaW5nW10pOiBQcm9taXNlPE1EIHwgTURbXT47XG4gIGFzeW5jIHJlYWQodHlwZTogc3RyaW5nLCBmdWxsTmFtZXM6IHN0cmluZyB8IHN0cmluZ1tdKSB7XG4gICAgY29uc3QgUmVhZFJlc3VsdFNjaGVtYSA9XG4gICAgICB0eXBlIGluIEFwaVNjaGVtYXNcbiAgICAgICAgPyAoe1xuICAgICAgICAgICAgdHlwZTogQXBpU2NoZW1hcy5SZWFkUmVzdWx0LnR5cGUsXG4gICAgICAgICAgICBwcm9wczoge1xuICAgICAgICAgICAgICByZWNvcmRzOiBbdHlwZV0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0gYXMgY29uc3QpXG4gICAgICAgIDogQXBpU2NoZW1hcy5SZWFkUmVzdWx0O1xuICAgIGNvbnN0IHJlczogUmVhZFJlc3VsdCA9IGF3YWl0IHRoaXMuX2ludm9rZShcbiAgICAgICdyZWFkTWV0YWRhdGEnLFxuICAgICAgeyB0eXBlLCBmdWxsTmFtZXMgfSxcbiAgICAgIFJlYWRSZXN1bHRTY2hlbWEsXG4gICAgKTtcbiAgICByZXR1cm4gQXJyYXkuaXNBcnJheShmdWxsTmFtZXMpXG4gICAgICA/IHJlcy5yZWNvcmRzLm1hcChkZWFsbG9jYXRlVHlwZVdpdGhNZXRhZGF0YSlcbiAgICAgIDogZGVhbGxvY2F0ZVR5cGVXaXRoTWV0YWRhdGEocmVzLnJlY29yZHNbMF0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSBvbmUgb3IgbW9yZSBtZXRhZGF0YSBjb21wb25lbnRzIGluIHRoZSBvcmdhbml6YXRpb24uXG4gICAqL1xuICB1cGRhdGU8XG4gICAgTSBleHRlbmRzIE1ldGFkYXRhID0gTWV0YWRhdGEsXG4gICAgVCBleHRlbmRzIHN0cmluZyA9IHN0cmluZyxcbiAgICBNRCBleHRlbmRzIElucHV0TWV0YWRhdGFEZWZpbml0aW9uPFQsIE0+ID0gSW5wdXRNZXRhZGF0YURlZmluaXRpb248VCwgTT5cbiAgPih0eXBlOiBULCBtZXRhZGF0YTogUGFydGlhbDxNRD5bXSk6IFByb21pc2U8U2F2ZVJlc3VsdFtdPjtcbiAgdXBkYXRlPFxuICAgIE0gZXh0ZW5kcyBNZXRhZGF0YSA9IE1ldGFkYXRhLFxuICAgIFQgZXh0ZW5kcyBzdHJpbmcgPSBzdHJpbmcsXG4gICAgTUQgZXh0ZW5kcyBJbnB1dE1ldGFkYXRhRGVmaW5pdGlvbjxULCBNPiA9IElucHV0TWV0YWRhdGFEZWZpbml0aW9uPFQsIE0+XG4gID4odHlwZTogVCwgbWV0YWRhdGE6IFBhcnRpYWw8TUQ+KTogUHJvbWlzZTxTYXZlUmVzdWx0PjtcbiAgdXBkYXRlPFxuICAgIE0gZXh0ZW5kcyBNZXRhZGF0YSA9IE1ldGFkYXRhLFxuICAgIFQgZXh0ZW5kcyBzdHJpbmcgPSBzdHJpbmcsXG4gICAgTUQgZXh0ZW5kcyBJbnB1dE1ldGFkYXRhRGVmaW5pdGlvbjxULCBNPiA9IElucHV0TWV0YWRhdGFEZWZpbml0aW9uPFQsIE0+XG4gID4oXG4gICAgdHlwZTogVCxcbiAgICBtZXRhZGF0YTogUGFydGlhbDxNRD4gfCBQYXJ0aWFsPE1EPltdLFxuICApOiBQcm9taXNlPFNhdmVSZXN1bHQgfCBTYXZlUmVzdWx0W10+O1xuICB1cGRhdGUodHlwZTogc3RyaW5nLCBtZXRhZGF0YTogTWV0YWRhdGEgfCBNZXRhZGF0YVtdKSB7XG4gICAgY29uc3QgaXNBcnJheSA9IEFycmF5LmlzQXJyYXkobWV0YWRhdGEpO1xuICAgIG1ldGFkYXRhID0gYXNzaWduVHlwZVdpdGhNZXRhZGF0YShtZXRhZGF0YSwgdHlwZSk7XG4gICAgY29uc3Qgc2NoZW1hID0gaXNBcnJheSA/IFtBcGlTY2hlbWFzLlNhdmVSZXN1bHRdIDogQXBpU2NoZW1hcy5TYXZlUmVzdWx0O1xuICAgIHJldHVybiB0aGlzLl9pbnZva2UoJ3VwZGF0ZU1ldGFkYXRhJywgeyBtZXRhZGF0YSB9LCBzY2hlbWEpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwc2VydCBvbmUgb3IgbW9yZSBjb21wb25lbnRzIGluIHlvdXIgb3JnYW5pemF0aW9uJ3MgZGF0YS5cbiAgICovXG4gIHVwc2VydDxcbiAgICBNIGV4dGVuZHMgTWV0YWRhdGEgPSBNZXRhZGF0YSxcbiAgICBUIGV4dGVuZHMgc3RyaW5nID0gc3RyaW5nLFxuICAgIE1EIGV4dGVuZHMgSW5wdXRNZXRhZGF0YURlZmluaXRpb248VCwgTT4gPSBJbnB1dE1ldGFkYXRhRGVmaW5pdGlvbjxULCBNPlxuICA+KHR5cGU6IFQsIG1ldGFkYXRhOiBNRFtdKTogUHJvbWlzZTxVcHNlcnRSZXN1bHRbXT47XG4gIHVwc2VydDxcbiAgICBNIGV4dGVuZHMgTWV0YWRhdGEgPSBNZXRhZGF0YSxcbiAgICBUIGV4dGVuZHMgc3RyaW5nID0gc3RyaW5nLFxuICAgIE1EIGV4dGVuZHMgSW5wdXRNZXRhZGF0YURlZmluaXRpb248VCwgTT4gPSBJbnB1dE1ldGFkYXRhRGVmaW5pdGlvbjxULCBNPlxuICA+KHR5cGU6IFQsIG1ldGFkYXRhOiBNRCk6IFByb21pc2U8VXBzZXJ0UmVzdWx0PjtcbiAgdXBzZXJ0PFxuICAgIE0gZXh0ZW5kcyBNZXRhZGF0YSA9IE1ldGFkYXRhLFxuICAgIFQgZXh0ZW5kcyBzdHJpbmcgPSBzdHJpbmcsXG4gICAgTUQgZXh0ZW5kcyBJbnB1dE1ldGFkYXRhRGVmaW5pdGlvbjxULCBNPiA9IElucHV0TWV0YWRhdGFEZWZpbml0aW9uPFQsIE0+XG4gID4odHlwZTogVCwgbWV0YWRhdGE6IE1EIHwgTURbXSk6IFByb21pc2U8VXBzZXJ0UmVzdWx0IHwgVXBzZXJ0UmVzdWx0W10+O1xuICB1cHNlcnQodHlwZTogc3RyaW5nLCBtZXRhZGF0YTogTWV0YWRhdGEgfCBNZXRhZGF0YVtdKSB7XG4gICAgY29uc3QgaXNBcnJheSA9IEFycmF5LmlzQXJyYXkobWV0YWRhdGEpO1xuICAgIG1ldGFkYXRhID0gYXNzaWduVHlwZVdpdGhNZXRhZGF0YShtZXRhZGF0YSwgdHlwZSk7XG4gICAgY29uc3Qgc2NoZW1hID0gaXNBcnJheVxuICAgICAgPyBbQXBpU2NoZW1hcy5VcHNlcnRSZXN1bHRdXG4gICAgICA6IEFwaVNjaGVtYXMuVXBzZXJ0UmVzdWx0O1xuICAgIHJldHVybiB0aGlzLl9pbnZva2UoJ3Vwc2VydE1ldGFkYXRhJywgeyBtZXRhZGF0YSB9LCBzY2hlbWEpO1xuICB9XG5cbiAgLyoqXG4gICAqIERlbGV0ZXMgc3BlY2lmaWVkIG1ldGFkYXRhIGNvbXBvbmVudHMgaW4gdGhlIG9yZ2FuaXphdGlvbi5cbiAgICovXG4gIGRlbGV0ZSh0eXBlOiBzdHJpbmcsIGZ1bGxOYW1lczogc3RyaW5nW10pOiBQcm9taXNlPFNhdmVSZXN1bHRbXT47XG4gIGRlbGV0ZSh0eXBlOiBzdHJpbmcsIGZ1bGxOYW1lczogc3RyaW5nKTogUHJvbWlzZTxTYXZlUmVzdWx0PjtcbiAgZGVsZXRlKFxuICAgIHR5cGU6IHN0cmluZyxcbiAgICBmdWxsTmFtZXM6IHN0cmluZyB8IHN0cmluZ1tdLFxuICApOiBQcm9taXNlPFNhdmVSZXN1bHQgfCBTYXZlUmVzdWx0W10+O1xuICBkZWxldGUodHlwZTogc3RyaW5nLCBmdWxsTmFtZXM6IHN0cmluZyB8IHN0cmluZ1tdKSB7XG4gICAgY29uc3Qgc2NoZW1hID0gQXJyYXkuaXNBcnJheShmdWxsTmFtZXMpXG4gICAgICA/IFtBcGlTY2hlbWFzLlNhdmVSZXN1bHRdXG4gICAgICA6IEFwaVNjaGVtYXMuU2F2ZVJlc3VsdDtcbiAgICByZXR1cm4gdGhpcy5faW52b2tlKCdkZWxldGVNZXRhZGF0YScsIHsgdHlwZSwgZnVsbE5hbWVzIH0sIHNjaGVtYSk7XG4gIH1cblxuICAvKipcbiAgICogUmVuYW1lIGZ1bGxuYW1lIG9mIGEgbWV0YWRhdGEgY29tcG9uZW50IGluIHRoZSBvcmdhbml6YXRpb25cbiAgICovXG4gIHJlbmFtZShcbiAgICB0eXBlOiBzdHJpbmcsXG4gICAgb2xkRnVsbE5hbWU6IHN0cmluZyxcbiAgICBuZXdGdWxsTmFtZTogc3RyaW5nLFxuICApOiBQcm9taXNlPFNhdmVSZXN1bHQ+IHtcbiAgICByZXR1cm4gdGhpcy5faW52b2tlKFxuICAgICAgJ3JlbmFtZU1ldGFkYXRhJyxcbiAgICAgIHsgdHlwZSwgb2xkRnVsbE5hbWUsIG5ld0Z1bGxOYW1lIH0sXG4gICAgICBBcGlTY2hlbWFzLlNhdmVSZXN1bHQsXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZXMgdGhlIG1ldGFkYXRhIHdoaWNoIGRlc2NyaWJlcyB5b3VyIG9yZ2FuaXphdGlvbiwgaW5jbHVkaW5nIEFwZXggY2xhc3NlcyBhbmQgdHJpZ2dlcnMsXG4gICAqIGN1c3RvbSBvYmplY3RzLCBjdXN0b20gZmllbGRzIG9uIHN0YW5kYXJkIG9iamVjdHMsIHRhYiBzZXRzIHRoYXQgZGVmaW5lIGFuIGFwcCxcbiAgICogYW5kIG1hbnkgb3RoZXIgY29tcG9uZW50cy5cbiAgICovXG4gIGRlc2NyaWJlKGFzT2ZWZXJzaW9uPzogc3RyaW5nKTogUHJvbWlzZTxEZXNjcmliZU1ldGFkYXRhUmVzdWx0PiB7XG4gICAgaWYgKCFhc09mVmVyc2lvbikge1xuICAgICAgYXNPZlZlcnNpb24gPSB0aGlzLl9jb25uLnZlcnNpb247XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9pbnZva2UoXG4gICAgICAnZGVzY3JpYmVNZXRhZGF0YScsXG4gICAgICB7IGFzT2ZWZXJzaW9uIH0sXG4gICAgICBBcGlTY2hlbWFzLkRlc2NyaWJlTWV0YWRhdGFSZXN1bHQsXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZXMgcHJvcGVydHkgaW5mb3JtYXRpb24gYWJvdXQgbWV0YWRhdGEgY29tcG9uZW50cyBpbiB5b3VyIG9yZ2FuaXphdGlvblxuICAgKi9cbiAgbGlzdChcbiAgICBxdWVyaWVzOiBMaXN0TWV0YWRhdGFRdWVyeSB8IExpc3RNZXRhZGF0YVF1ZXJ5W10sXG4gICAgYXNPZlZlcnNpb24/OiBzdHJpbmcsXG4gICk6IFByb21pc2U8RmlsZVByb3BlcnRpZXNbXT4ge1xuICAgIGlmICghYXNPZlZlcnNpb24pIHtcbiAgICAgIGFzT2ZWZXJzaW9uID0gdGhpcy5fY29ubi52ZXJzaW9uO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5faW52b2tlKCdsaXN0TWV0YWRhdGEnLCB7IHF1ZXJpZXMsIGFzT2ZWZXJzaW9uIH0sIFtcbiAgICAgIEFwaVNjaGVtYXMuRmlsZVByb3BlcnRpZXMsXG4gICAgXSk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIHRoZSBzdGF0dXMgb2YgYXN5bmNocm9ub3VzIG1ldGFkYXRhIGNhbGxzXG4gICAqL1xuICBjaGVja1N0YXR1cyhhc3luY1Byb2Nlc3NJZDogc3RyaW5nKSB7XG4gICAgY29uc3QgcmVzID0gdGhpcy5faW52b2tlKFxuICAgICAgJ2NoZWNrU3RhdHVzJyxcbiAgICAgIHsgYXN5bmNQcm9jZXNzSWQgfSxcbiAgICAgIEFwaVNjaGVtYXMuQXN5bmNSZXN1bHQsXG4gICAgKTtcbiAgICByZXR1cm4gbmV3IEFzeW5jUmVzdWx0TG9jYXRvcih0aGlzLCByZXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlcyBYTUwgZmlsZSByZXByZXNlbnRhdGlvbnMgb2YgY29tcG9uZW50cyBpbiBhbiBvcmdhbml6YXRpb25cbiAgICovXG4gIHJldHJpZXZlKHJlcXVlc3Q6IFBhcnRpYWw8UmV0cmlldmVSZXF1ZXN0Pikge1xuICAgIGNvbnN0IHJlcyA9IHRoaXMuX2ludm9rZShcbiAgICAgICdyZXRyaWV2ZScsXG4gICAgICB7IHJlcXVlc3QgfSxcbiAgICAgIEFwaVNjaGVtYXMuUmV0cmlldmVSZXN1bHQsXG4gICAgKTtcbiAgICByZXR1cm4gbmV3IFJldHJpZXZlUmVzdWx0TG9jYXRvcih0aGlzLCByZXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyB0aGUgc3RhdHVzIG9mIGRlY2xhcmF0aXZlIG1ldGFkYXRhIGNhbGwgcmV0cmlldmUoKSBhbmQgcmV0dXJucyB0aGUgemlwIGZpbGUgY29udGVudHNcbiAgICovXG4gIGNoZWNrUmV0cmlldmVTdGF0dXMoYXN5bmNQcm9jZXNzSWQ6IHN0cmluZyk6IFByb21pc2U8UmV0cmlldmVSZXN1bHQ+IHtcbiAgICByZXR1cm4gdGhpcy5faW52b2tlKFxuICAgICAgJ2NoZWNrUmV0cmlldmVTdGF0dXMnLFxuICAgICAgeyBhc3luY1Byb2Nlc3NJZCB9LFxuICAgICAgQXBpU2NoZW1hcy5SZXRyaWV2ZVJlc3VsdCxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIERlcGxveSBjb21wb25lbnRzIGludG8gYW4gb3JnYW5pemF0aW9uIHVzaW5nIHppcHBlZCBmaWxlIHJlcHJlc2VudGF0aW9uc1xuICAgKiB1c2luZyB0aGUgUkVTVCBNZXRhZGF0YSBBUEkgaW5zdGVhZCBvZiBTT0FQXG4gICAqL1xuICBkZXBsb3lSZXN0KFxuICAgIHppcElucHV0OiBCdWZmZXIsXG4gICAgb3B0aW9uczogUGFydGlhbDxEZXBsb3lPcHRpb25zPiA9IHt9LFxuICApOiBEZXBsb3lSZXN1bHRMb2NhdG9yPFM+IHtcbiAgICBjb25zdCBmb3JtID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgZm9ybS5hcHBlbmQoJ2ZpbGUnLCB6aXBJbnB1dCwge1xuICAgICAgY29udGVudFR5cGU6ICdhcHBsaWNhdGlvbi96aXAnLFxuICAgICAgZmlsZW5hbWU6ICdwYWNrYWdlLnhtbCcsXG4gICAgfSk7XG5cbiAgICAvLyBBZGQgdGhlIGRlcGxveSBvcHRpb25zXG4gICAgZm9ybS5hcHBlbmQoJ2VudGl0eV9jb250ZW50JywgSlNPTi5zdHJpbmdpZnkoeyBkZXBsb3lPcHRpb25zOiBvcHRpb25zIH0pLCB7XG4gICAgICBjb250ZW50VHlwZTogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgIH0pO1xuXG4gICAgY29uc3QgcmVxdWVzdDogSHR0cFJlcXVlc3QgPSB7XG4gICAgICB1cmw6ICcvbWV0YWRhdGEvZGVwbG95UmVxdWVzdCcsXG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIGhlYWRlcnM6IHsgLi4uZm9ybS5nZXRIZWFkZXJzKCkgfSxcbiAgICAgIGJvZHk6IGZvcm0uZ2V0QnVmZmVyKCksXG4gICAgfTtcbiAgICBjb25zdCByZXMgPSB0aGlzLl9jb25uLnJlcXVlc3Q8QXN5bmNSZXN1bHQ+KHJlcXVlc3QpO1xuXG4gICAgcmV0dXJuIG5ldyBEZXBsb3lSZXN1bHRMb2NhdG9yKHRoaXMsIHJlcyk7XG4gIH1cblxuICAvKipcbiAgICogRGVwbG95IGNvbXBvbmVudHMgaW50byBhbiBvcmdhbml6YXRpb24gdXNpbmcgemlwcGVkIGZpbGUgcmVwcmVzZW50YXRpb25zXG4gICAqL1xuICBkZXBsb3koXG4gICAgemlwSW5wdXQ6IFJlYWRhYmxlIHwgQnVmZmVyIHwgc3RyaW5nLFxuICAgIG9wdGlvbnM6IFBhcnRpYWw8RGVwbG95T3B0aW9ucz4gPSB7fSxcbiAgKTogRGVwbG95UmVzdWx0TG9jYXRvcjxTPiB7XG4gICAgY29uc3QgcmVzID0gKGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHppcENvbnRlbnRCNjQgPSBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBpc09iamVjdCh6aXBJbnB1dCkgJiZcbiAgICAgICAgICAncGlwZScgaW4gemlwSW5wdXQgJiZcbiAgICAgICAgICB0eXBlb2YgemlwSW5wdXQucGlwZSA9PT0gJ2Z1bmN0aW9uJ1xuICAgICAgICApIHtcbiAgICAgICAgICBjb25zdCBidWZzOiBCdWZmZXJbXSA9IFtdO1xuICAgICAgICAgIHppcElucHV0Lm9uKCdkYXRhJywgKGQpID0+IGJ1ZnMucHVzaChkKSk7XG4gICAgICAgICAgemlwSW5wdXQub24oJ2Vycm9yJywgcmVqZWN0KTtcbiAgICAgICAgICB6aXBJbnB1dC5vbignZW5kJywgKCkgPT4ge1xuICAgICAgICAgICAgcmVzb2x2ZShCdWZmZXIuY29uY2F0KGJ1ZnMpLnRvU3RyaW5nKCdiYXNlNjQnKSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgLy8gemlwSW5wdXQucmVzdW1lKCk7XG4gICAgICAgIH0gZWxzZSBpZiAoemlwSW5wdXQgaW5zdGFuY2VvZiBCdWZmZXIpIHtcbiAgICAgICAgICByZXNvbHZlKHppcElucHV0LnRvU3RyaW5nKCdiYXNlNjQnKSk7XG4gICAgICAgIH0gZWxzZSBpZiAoemlwSW5wdXQgaW5zdGFuY2VvZiBTdHJpbmcgfHwgdHlwZW9mIHppcElucHV0ID09PSAnc3RyaW5nJykge1xuICAgICAgICAgIHJlc29sdmUoemlwSW5wdXQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRocm93ICdVbmV4cGVjdGVkIHppcElucHV0IHR5cGUnO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgcmV0dXJuIHRoaXMuX2ludm9rZShcbiAgICAgICAgJ2RlcGxveScsXG4gICAgICAgIHtcbiAgICAgICAgICBaaXBGaWxlOiB6aXBDb250ZW50QjY0LFxuICAgICAgICAgIERlcGxveU9wdGlvbnM6IG9wdGlvbnMsXG4gICAgICAgIH0sXG4gICAgICAgIEFwaVNjaGVtYXMuRGVwbG95UmVzdWx0LFxuICAgICAgKTtcbiAgICB9KSgpO1xuXG4gICAgcmV0dXJuIG5ldyBEZXBsb3lSZXN1bHRMb2NhdG9yKHRoaXMsIHJlcyk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIHRoZSBzdGF0dXMgb2YgZGVjbGFyYXRpdmUgbWV0YWRhdGEgY2FsbCBkZXBsb3koKVxuICAgKi9cbiAgY2hlY2tEZXBsb3lTdGF0dXMoXG4gICAgYXN5bmNQcm9jZXNzSWQ6IHN0cmluZyxcbiAgICBpbmNsdWRlRGV0YWlsczogYm9vbGVhbiA9IGZhbHNlLFxuICApOiBQcm9taXNlPERlcGxveVJlc3VsdD4ge1xuICAgIHJldHVybiB0aGlzLl9pbnZva2UoXG4gICAgICAnY2hlY2tEZXBsb3lTdGF0dXMnLFxuICAgICAge1xuICAgICAgICBhc3luY1Byb2Nlc3NJZCxcbiAgICAgICAgaW5jbHVkZURldGFpbHMsXG4gICAgICB9LFxuICAgICAgQXBpU2NoZW1hcy5EZXBsb3lSZXN1bHQsXG4gICAgKTtcbiAgfVxufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLyoqXG4gKiBUaGUgbG9jYXRvciBjbGFzcyBmb3IgTWV0YWRhdGEgQVBJIGFzeW5jaHJvbm91cyBjYWxsIHJlc3VsdFxuICovXG5leHBvcnQgY2xhc3MgQXN5bmNSZXN1bHRMb2NhdG9yPFxuICBTIGV4dGVuZHMgU2NoZW1hLFxuICBSIGV4dGVuZHMge30gPSBBc3luY1Jlc3VsdFxuPiBleHRlbmRzIEV2ZW50RW1pdHRlciB7XG4gIF9tZXRhOiBNZXRhZGF0YUFwaTxTPjtcbiAgX3Byb21pc2U6IFByb21pc2U8QXN5bmNSZXN1bHQ+O1xuICBfaWQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICpcbiAgICovXG4gIGNvbnN0cnVjdG9yKG1ldGE6IE1ldGFkYXRhQXBpPFM+LCBwcm9taXNlOiBQcm9taXNlPEFzeW5jUmVzdWx0Pikge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5fbWV0YSA9IG1ldGE7XG4gICAgdGhpcy5fcHJvbWlzZSA9IHByb21pc2U7XG4gIH1cblxuICAvKipcbiAgICogUHJvbWlzZS9BKyBpbnRlcmZhY2VcbiAgICogaHR0cDovL3Byb21pc2VzLWFwbHVzLmdpdGh1Yi5pby9wcm9taXNlcy1zcGVjL1xuICAgKlxuICAgKiBAbWV0aG9kIE1ldGFkYXRhfkFzeW5jUmVzdWx0TG9jYXRvciN0aGVuXG4gICAqL1xuICB0aGVuPFUsIFY+KFxuICAgIG9uUmVzb2x2ZT86ICgocmVzdWx0OiBBc3luY1Jlc3VsdCkgPT4gVSB8IFByb21pc2U8VT4pIHwgbnVsbCB8IHVuZGVmaW5lZCxcbiAgICBvblJlamVjdD86ICgoZXJyOiBFcnJvcikgPT4gViB8IFByb21pc2U8Vj4pIHwgbnVsbCB8IHVuZGVmaW5lZCxcbiAgKTogUHJvbWlzZTxVIHwgVj4ge1xuICAgIHJldHVybiB0aGlzLl9wcm9taXNlLnRoZW4ob25SZXNvbHZlLCBvblJlamVjdCk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgdGhlIHN0YXR1cyBvZiBhc3luYyByZXF1ZXN0XG4gICAqL1xuICBhc3luYyBjaGVjaygpIHtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLl9wcm9taXNlO1xuICAgIHRoaXMuX2lkID0gcmVzdWx0LmlkO1xuICAgIHJldHVybiBhd2FpdCB0aGlzLl9tZXRhLmNoZWNrU3RhdHVzKHJlc3VsdC5pZCk7XG4gIH1cblxuICAvKipcbiAgICogUG9sbGluZyB1bnRpbCBhc3luYyBjYWxsIHN0YXR1cyBiZWNvbWVzIGNvbXBsZXRlIG9yIGVycm9yXG4gICAqL1xuICBwb2xsKGludGVydmFsOiBudW1iZXIsIHRpbWVvdXQ6IG51bWJlcikge1xuICAgIGNvbnN0IHN0YXJ0VGltZSA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xuICAgIGNvbnN0IHBvbGwgPSBhc3luYyAoKSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcbiAgICAgICAgaWYgKHN0YXJ0VGltZSArIHRpbWVvdXQgPCBub3cpIHtcbiAgICAgICAgICBsZXQgZXJyTXNnID0gJ1BvbGxpbmcgdGltZSBvdXQuJztcbiAgICAgICAgICBpZiAodGhpcy5faWQpIHtcbiAgICAgICAgICAgIGVyck1zZyArPSAnIFByb2Nlc3MgSWQgPSAnICsgdGhpcy5faWQ7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuZW1pdCgnZXJyb3InLCBuZXcgRXJyb3IoZXJyTXNnKSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuY2hlY2soKTtcbiAgICAgICAgaWYgKHJlc3VsdC5kb25lKSB7XG4gICAgICAgICAgdGhpcy5lbWl0KCdjb21wbGV0ZScsIHJlc3VsdCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5lbWl0KCdwcm9ncmVzcycsIHJlc3VsdCk7XG4gICAgICAgICAgc2V0VGltZW91dChwb2xsLCBpbnRlcnZhbCk7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICB0aGlzLmVtaXQoJ2Vycm9yJywgZXJyKTtcbiAgICAgIH1cbiAgICB9O1xuICAgIHNldFRpbWVvdXQocG9sbCwgaW50ZXJ2YWwpO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGFuZCB3YWl0IHVudGlsIHRoZSBhc3luYyByZXF1ZXN0cyBiZWNvbWUgaW4gY29tcGxldGVkIHN0YXR1c1xuICAgKi9cbiAgY29tcGxldGUoKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPFI+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHRoaXMub24oJ2NvbXBsZXRlJywgcmVzb2x2ZSk7XG4gICAgICB0aGlzLm9uKCdlcnJvcicsIHJlamVjdCk7XG4gICAgICB0aGlzLnBvbGwodGhpcy5fbWV0YS5wb2xsSW50ZXJ2YWwsIHRoaXMuX21ldGEucG9sbFRpbWVvdXQpO1xuICAgIH0pO1xuICB9XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyoqXG4gKiBUaGUgbG9jYXRvciBjbGFzcyB0byB0cmFjayByZXRyZWl2ZSgpIE1ldGFkYXRhIEFQSSBjYWxsIHJlc3VsdFxuICovXG5leHBvcnQgY2xhc3MgUmV0cmlldmVSZXN1bHRMb2NhdG9yPFMgZXh0ZW5kcyBTY2hlbWE+IGV4dGVuZHMgQXN5bmNSZXN1bHRMb2NhdG9yPFxuICBTLFxuICBSZXRyaWV2ZVJlc3VsdFxuPiB7XG4gIC8qKlxuICAgKiBDaGVjayBhbmQgd2FpdCB1bnRpbCB0aGUgYXN5bmMgcmVxdWVzdCBiZWNvbWVzIGluIGNvbXBsZXRlZCBzdGF0dXMsXG4gICAqIGFuZCByZXRyaWV2ZSB0aGUgcmVzdWx0IGRhdGEuXG4gICAqL1xuICBhc3luYyBjb21wbGV0ZSgpIHtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBzdXBlci5jb21wbGV0ZSgpO1xuICAgIHJldHVybiB0aGlzLl9tZXRhLmNoZWNrUmV0cmlldmVTdGF0dXMocmVzdWx0LmlkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGFuZ2UgdGhlIHJldHJpZXZlZCByZXN1bHQgdG8gTm9kZS5qcyByZWFkYWJsZSBzdHJlYW1cbiAgICovXG4gIHN0cmVhbSgpIHtcbiAgICBjb25zdCByZXN1bHRTdHJlYW0gPSBuZXcgUmVhZGFibGUoKTtcbiAgICBsZXQgcmVhZGluZyA9IGZhbHNlO1xuICAgIHJlc3VsdFN0cmVhbS5fcmVhZCA9IGFzeW5jICgpID0+IHtcbiAgICAgIGlmIChyZWFkaW5nKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHJlYWRpbmcgPSB0cnVlO1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5jb21wbGV0ZSgpO1xuICAgICAgICByZXN1bHRTdHJlYW0ucHVzaChCdWZmZXIuZnJvbShyZXN1bHQuemlwRmlsZSwgJ2Jhc2U2NCcpKTtcbiAgICAgICAgcmVzdWx0U3RyZWFtLnB1c2gobnVsbCk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHJlc3VsdFN0cmVhbS5lbWl0KCdlcnJvcicsIGUpO1xuICAgICAgfVxuICAgIH07XG4gICAgcmV0dXJuIHJlc3VsdFN0cmVhbTtcbiAgfVxufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qKlxuICogVGhlIGxvY2F0b3IgY2xhc3MgdG8gdHJhY2sgZGVwbG95KCkgTWV0YWRhdGEgQVBJIGNhbGwgcmVzdWx0XG4gKlxuICogQHByb3RlY3RlZFxuICogQGNsYXNzIE1ldGFkYXRhfkRlcGxveVJlc3VsdExvY2F0b3JcbiAqIEBleHRlbmRzIE1ldGFkYXRhfkFzeW5jUmVzdWx0TG9jYXRvclxuICogQHBhcmFtIHtNZXRhZGF0YX0gbWV0YSAtIE1ldGFkYXRhIEFQSSBvYmplY3RcbiAqIEBwYXJhbSB7UHJvbWlzZS48TWV0YWRhdGF+QXN5bmNSZXN1bHQ+fSByZXN1bHQgLSBQcm9taXNlIG9iamVjdCBmb3IgYXN5bmMgcmVzdWx0IG9mIGRlcGxveSgpIGNhbGxcbiAqL1xuZXhwb3J0IGNsYXNzIERlcGxveVJlc3VsdExvY2F0b3I8UyBleHRlbmRzIFNjaGVtYT4gZXh0ZW5kcyBBc3luY1Jlc3VsdExvY2F0b3I8XG4gIFMsXG4gIERlcGxveVJlc3VsdFxuPiB7XG4gIC8qKlxuICAgKiBDaGVjayBhbmQgd2FpdCB1bnRpbCB0aGUgYXN5bmMgcmVxdWVzdCBiZWNvbWVzIGluIGNvbXBsZXRlZCBzdGF0dXMsXG4gICAqIGFuZCByZXRyaWV2ZSB0aGUgcmVzdWx0IGRhdGEuXG4gICAqL1xuICBhc3luYyBjb21wbGV0ZShpbmNsdWRlRGV0YWlscz86IGJvb2xlYW4pIHtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBzdXBlci5jb21wbGV0ZSgpO1xuICAgIHJldHVybiB0aGlzLl9tZXRhLmNoZWNrRGVwbG95U3RhdHVzKHJlc3VsdC5pZCwgaW5jbHVkZURldGFpbHMpO1xuICB9XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAqIFJlZ2lzdGVyIGhvb2sgaW4gY29ubmVjdGlvbiBpbnN0YW50aWF0aW9uIGZvciBkeW5hbWljYWxseSBhZGRpbmcgdGhpcyBBUEkgbW9kdWxlIGZlYXR1cmVzXG4gKi9cbnJlZ2lzdGVyTW9kdWxlKCdtZXRhZGF0YScsIChjb25uKSA9PiBuZXcgTWV0YWRhdGFBcGkoY29ubikpO1xuXG5leHBvcnQgZGVmYXVsdCBNZXRhZGF0YUFwaTtcbiJdfQ== | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hcGkvbWV0YWRhdGEudHMiXSwibmFtZXMiOlsiZGVhbGxvY2F0ZVR5cGVXaXRoTWV0YWRhdGEiLCJtZXRhZGF0YSIsIiQiLCJtZCIsImFzc2lnblR5cGVXaXRoTWV0YWRhdGEiLCJ0eXBlIiwiY29udmVydCIsIk1ldGFkYXRhQXBpIiwiY29uc3RydWN0b3IiLCJjb25uIiwiX2Nvbm4iLCJfaW52b2tlIiwibWV0aG9kIiwibWVzc2FnZSIsInNjaGVtYSIsInNvYXBFbmRwb2ludCIsIlNPQVAiLCJ4bWxucyIsImVuZHBvaW50VXJsIiwiaW5zdGFuY2VVcmwiLCJ2ZXJzaW9uIiwicmVzIiwiaW52b2tlIiwicmVzdWx0IiwidW5kZWZpbmVkIiwiQXBpU2NoZW1hcyIsImNyZWF0ZSIsImlzQXJyYXkiLCJTYXZlUmVzdWx0IiwicmVhZCIsImZ1bGxOYW1lcyIsIlJlYWRSZXN1bHRTY2hlbWEiLCJSZWFkUmVzdWx0IiwicHJvcHMiLCJyZWNvcmRzIiwidXBkYXRlIiwidXBzZXJ0IiwiVXBzZXJ0UmVzdWx0IiwiZGVsZXRlIiwicmVuYW1lIiwib2xkRnVsbE5hbWUiLCJuZXdGdWxsTmFtZSIsImRlc2NyaWJlIiwiYXNPZlZlcnNpb24iLCJEZXNjcmliZU1ldGFkYXRhUmVzdWx0IiwibGlzdCIsInF1ZXJpZXMiLCJGaWxlUHJvcGVydGllcyIsImNoZWNrU3RhdHVzIiwiYXN5bmNQcm9jZXNzSWQiLCJBc3luY1Jlc3VsdCIsIkFzeW5jUmVzdWx0TG9jYXRvciIsInJldHJpZXZlIiwicmVxdWVzdCIsIlJldHJpZXZlUmVzdWx0IiwiUmV0cmlldmVSZXN1bHRMb2NhdG9yIiwiY2hlY2tSZXRyaWV2ZVN0YXR1cyIsImRlcGxveVJlY2VudFZhbGlkYXRpb24iLCJvcHRpb25zIiwiaWQiLCJyZXN0IiwicmVzcG9uc2UiLCJtZXNzYWdlQm9keSIsInZhbGlkYXRlZERlcGxveVJlcXVlc3RJZCIsInJlcXVlc3RJbmZvIiwidXJsIiwiX2Jhc2VVcmwiLCJib2R5IiwiaGVhZGVycyIsInJlcXVlc3RPcHRpb25zIiwidmFsaWRhdGlvbklkIiwiZGVwbG95UmVzdCIsInppcElucHV0IiwiZm9ybSIsIkZvcm1EYXRhIiwiYXBwZW5kIiwiY29udGVudFR5cGUiLCJmaWxlbmFtZSIsImRlcGxveU9wdGlvbnMiLCJnZXRIZWFkZXJzIiwiZ2V0QnVmZmVyIiwiRGVwbG95UmVzdWx0TG9jYXRvciIsImRlcGxveSIsInppcENvbnRlbnRCNjQiLCJyZXNvbHZlIiwicmVqZWN0IiwicGlwZSIsImJ1ZnMiLCJvbiIsImQiLCJwdXNoIiwiQnVmZmVyIiwidG9TdHJpbmciLCJTdHJpbmciLCJaaXBGaWxlIiwiRGVwbG95T3B0aW9ucyIsIkRlcGxveVJlc3VsdCIsImNoZWNrRGVwbG95U3RhdHVzIiwiaW5jbHVkZURldGFpbHMiLCJFdmVudEVtaXR0ZXIiLCJtZXRhIiwicHJvbWlzZSIsIl9tZXRhIiwiX3Byb21pc2UiLCJ0aGVuIiwib25SZXNvbHZlIiwib25SZWplY3QiLCJjaGVjayIsIl9pZCIsInBvbGwiLCJpbnRlcnZhbCIsInRpbWVvdXQiLCJzdGFydFRpbWUiLCJEYXRlIiwiZ2V0VGltZSIsIm5vdyIsImVyck1zZyIsImVtaXQiLCJFcnJvciIsImRvbmUiLCJlcnIiLCJjb21wbGV0ZSIsInBvbGxJbnRlcnZhbCIsInBvbGxUaW1lb3V0Iiwic3RyZWFtIiwicmVzdWx0U3RyZWFtIiwiUmVhZGFibGUiLCJyZWFkaW5nIiwiX3JlYWQiLCJmcm9tIiwiemlwRmlsZSIsImUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFJQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQTs7QUFDQTs7QUFFQTs7QUFnQkE7QUFBQTtBQUFBO0FBQUE7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7OztBQXFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTQSwwQkFBVCxDQUF3REMsUUFBeEQsRUFBd0U7QUFDdEUs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O0FBaUNGOztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7QUFDTyxNQUFNNUMsbUJBQU4sU0FBb0Q5QixrQkFBcEQsQ0FHTDtBQUNBO0FBQ0Y7QUFDQTtBQUNBO0FBQ0UsUUFBTXNFLFFBQU4sQ0FBZXZCLGNBQWYsRUFBeUM7QUFDdkMsVUFBTTNFLE1BQU0sR0FBRyxNQUFNLE1BQU1rRyxRQUFOLEVBQXJCO0FBQ0EsV0FBTyxLQUFLbkIsS0FBTCxDQUFXTCxpQkFBWCxDQUE2QjFFLE1BQU0sQ0FBQ29DLEVBQXBDLEVBQXdDdUMsY0FBeEMsQ0FBUDtBQUNEOztBQVJEO0FBV0Y7O0FBQ0E7QUFDQTtBQUNBOzs7O0FBQ0EsNkJBQWUsVUFBZixFQUE0QnpGLElBQUQsSUFBVSxJQUFJRixXQUFKLENBQWdCRSxJQUFoQixDQUFyQztlQUVlRixXIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZmlsZSBNYW5hZ2VzIFNhbGVzZm9yY2UgTWV0YWRhdGEgQVBJXG4gKiBAYXV0aG9yIFNoaW5pY2hpIFRvbWl0YSA8c2hpbmljaGkudG9taXRhQGdtYWlsLmNvbT5cbiAqL1xuaW1wb3J0IHsgRXZlbnRFbWl0dGVyIH0gZnJvbSAnZXZlbnRzJztcbmltcG9ydCB7IFJlYWRhYmxlIH0gZnJvbSAnc3RyZWFtJztcbmltcG9ydCBGb3JtRGF0YSBmcm9tICdmb3JtLWRhdGEnO1xuaW1wb3J0IHsgcmVnaXN0ZXJNb2R1bGUgfSBmcm9tICcuLi9qc2ZvcmNlJztcbmltcG9ydCBDb25uZWN0aW9uIGZyb20gJy4uL2Nvbm5lY3Rpb24nO1xuaW1wb3J0IFNPQVAgZnJvbSAnLi4vc29hcCc7XG5pbXBvcnQgeyBpc09iamVjdCB9IGZyb20gJy4uL3V0aWwvZnVuY3Rpb24nO1xuaW1wb3J0IHsgU2NoZW1hLCBTb2FwU2NoZW1hRGVmLCBTb2FwU2NoZW1hLCBIdHRwUmVxdWVzdCB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7XG4gIEFwaVNjaGVtYXMsXG4gIE1ldGFkYXRhLFxuICBSZWFkUmVzdWx0LFxuICBTYXZlUmVzdWx0LFxuICBVcHNlcnRSZXN1bHQsXG4gIExpc3RNZXRhZGF0YVF1ZXJ5LFxuICBGaWxlUHJvcGVydGllcyxcbiAgRGVzY3JpYmVNZXRhZGF0YVJlc3VsdCxcbiAgUmV0cmlldmVSZXF1ZXN0LFxuICBEZXBsb3lPcHRpb25zLFxuICBSZXRyaWV2ZVJlc3VsdCxcbiAgRGVwbG95UmVzdWx0LFxuICBBc3luY1Jlc3VsdCxcbiAgQXBpU2NoZW1hVHlwZXMsXG59IGZyb20gJy4vbWV0YWRhdGEvc2NoZW1hJztcbmV4cG9ydCAqIGZyb20gJy4vbWV0YWRhdGEvc2NoZW1hJztcblxuLyoqXG4gKlxuICovXG50eXBlIE1ldGFkYXRhVHlwZV88XG4gIEsgZXh0ZW5kcyBrZXlvZiBBcGlTY2hlbWFUeXBlcyA9IGtleW9mIEFwaVNjaGVtYVR5cGVzXG4+ID0gSyBleHRlbmRzIGtleW9mIEFwaVNjaGVtYVR5cGVzXG4gID8gQXBpU2NoZW1hVHlwZXNbS10gZXh0ZW5kcyBNZXRhZGF0YVxuICAgID8gS1xuICAgIDogbmV2ZXJcbiAgOiBuZXZlcjtcblxuZXhwb3J0IHR5cGUgTWV0YWRhdGFUeXBlID0gTWV0YWRhdGFUeXBlXztcblxuZXhwb3J0IHR5cGUgTWV0YWRhdGFEZWZpbml0aW9uPFxuICBUIGV4dGVuZHMgc3RyaW5nLFxuICBNIGV4dGVuZHMgTWV0YWRhdGEgPSBNZXRhZGF0YVxuPiA9IE1ldGFkYXRhIGV4dGVuZHMgTVxuICA/IFQgZXh0ZW5kcyBrZXlvZiBBcGlTY2hlbWFUeXBlcyAmIE1ldGFkYXRhVHlwZVxuICAgID8gQXBpU2NoZW1hVHlwZXNbVF0gZXh0ZW5kcyBNZXRhZGF0YVxuICAgICAgPyBBcGlTY2hlbWFUeXBlc1tUXVxuICAgICAgOiBNZXRhZGF0YVxuICAgIDogTWV0YWRhdGFcbiAgOiBNO1xuXG50eXBlIERlZXBQYXJ0aWFsPFQ+ID0gVCBleHRlbmRzIGFueVtdXG4gID8gRGVlcFBhcnRpYWw8VFtudW1iZXJdPltdXG4gIDogVCBleHRlbmRzIG9iamVjdFxuICA/IHsgW0sgaW4ga2V5b2YgVF0/OiBEZWVwUGFydGlhbDxUW0tdPiB9XG4gIDogVDtcblxuZXhwb3J0IHR5cGUgSW5wdXRNZXRhZGF0YURlZmluaXRpb248XG4gIFQgZXh0ZW5kcyBzdHJpbmcsXG4gIE0gZXh0ZW5kcyBNZXRhZGF0YSA9IE1ldGFkYXRhXG4+ID0gRGVlcFBhcnRpYWw8TWV0YWRhdGFEZWZpbml0aW9uPFQsIE0+PjtcblxuLyoqXG4gKlxuICovXG5mdW5jdGlvbiBkZWFsbG9jYXRlVHlwZVdpdGhNZXRhZGF0YTxNIGV4dGVuZHMgTWV0YWRhdGE+KG1ldGFkYXRhOiBNKTogTSB7XG4gIGNvbnN0IHsgJCwgLi4ubWQgfSA9IG1ldGFkYXRhIGFzIGFueTtcbiAgcmV0dXJuIG1kO1xufVxuXG5mdW5jdGlvbiBhc3NpZ25UeXBlV2l0aE1ldGFkYXRhKG1ldGFkYXRhOiBNZXRhZGF0YSB8IE1ldGFkYXRhW10sIHR5cGU6IHN0cmluZykge1xuICBjb25zdCBjb252ZXJ0ID0gKG1kOiBNZXRhZGF0YSkgPT4gKHsgWydAeHNpOnR5cGUnXTogdHlwZSwgLi4ubWQgfSk7XG4gIHJldHVybiBBcnJheS5pc0FycmF5KG1ldGFkYXRhKSA/IG1ldGFkYXRhLm1hcChjb252ZXJ0KSA6IGNvbnZlcnQobWV0YWRhdGEpO1xufVxuXG4vKipcbiAqIENsYXNzIGZvciBTYWxlc2ZvcmNlIE1ldGFkYXRhIEFQSVxuICovXG5leHBvcnQgY2xhc3MgTWV0YWRhdGFBcGk8UyBleHRlbmRzIFNjaGVtYT4ge1xuICBfY29ubjogQ29ubmVjdGlvbjxTPjtcblxuICAvKipcbiAgICogUG9sbGluZyBpbnRlcnZhbCBpbiBtaWxsaXNlY29uZHNcbiAgICovXG4gIHBvbGxJbnRlcnZhbDogbnVtYmVyID0gMTAwMDtcblxuICAvKipcbiAgICogUG9sbGluZyB0aW1lb3V0IGluIG1pbGxpc2Vjb25kc1xuICAgKi9cbiAgcG9sbFRpbWVvdXQ6IG51bWJlciA9IDEwMDAwO1xuXG4gIC8qKlxuICAgKlxuICAgKi9cbiAgY29uc3RydWN0b3IoY29ubjogQ29ubmVjdGlvbjxTPikge1xuICAgIHRoaXMuX2Nvbm4gPSBjb25uO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGwgTWV0YWRhdGEgQVBJIFNPQVAgZW5kcG9pbnRcbiAgICpcbiAgICogQHByaXZhdGVcbiAgICovXG4gIGFzeW5jIF9pbnZva2UoXG4gICAgbWV0aG9kOiBzdHJpbmcsXG4gICAgbWVzc2FnZTogb2JqZWN0LFxuICAgIHNjaGVtYT86IFNvYXBTY2hlbWEgfCBTb2FwU2NoZW1hRGVmLFxuICApIHtcbiAgICBjb25zdCBzb2FwRW5kcG9pbnQgPSBuZXcgU09BUCh0aGlzLl9jb25uLCB7XG4gICAgICB4bWxuczogJ2h0dHA6Ly9zb2FwLnNmb3JjZS5jb20vMjAwNi8wNC9tZXRhZGF0YScsXG4gICAgICBlbmRwb2ludFVybDogYCR7dGhpcy5fY29ubi5pbnN0YW5jZVVybH0vc2VydmljZXMvU29hcC9tLyR7dGhpcy5fY29ubi52ZXJzaW9ufWAsXG4gICAgfSk7XG4gICAgY29uc3QgcmVzID0gYXdhaXQgc29hcEVuZHBvaW50Lmludm9rZShcbiAgICAgIG1ldGhvZCxcbiAgICAgIG1lc3NhZ2UsXG4gICAgICBzY2hlbWEgPyAoeyByZXN1bHQ6IHNjaGVtYSB9IGFzIFNvYXBTY2hlbWEpIDogdW5kZWZpbmVkLFxuICAgICAgQXBpU2NoZW1hcyxcbiAgICApO1xuICAgIHJldHVybiByZXMucmVzdWx0O1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBvbmUgb3IgbW9yZSBuZXcgbWV0YWRhdGEgY29tcG9uZW50cyB0byB0aGUgb3JnYW5pemF0aW9uLlxuICAgKi9cbiAgY3JlYXRlPFxuICAgIE0gZXh0ZW5kcyBNZXRhZGF0YSA9IE1ldGFkYXRhLFxuICAgIFQgZXh0ZW5kcyBNZXRhZGF0YVR5cGUgPSBNZXRhZGF0YVR5cGUsXG4gICAgTUQgZXh0ZW5kcyBJbnB1dE1ldGFkYXRhRGVmaW5pdGlvbjxULCBNPiA9IElucHV0TWV0YWRhdGFEZWZpbml0aW9uPFQsIE0+XG4gID4odHlwZTogVCwgbWV0YWRhdGE6IE1EW10pOiBQcm9taXNlPFNhdmVSZXN1bHRbXT47XG4gIGNyZWF0ZTxcbiAgICBNIGV4dGVuZHMgTWV0YWRhdGEgPSBNZXRhZGF0YSxcbiAgICBUIGV4dGVuZHMgTWV0YWRhdGFUeXBlID0gTWV0YWRhdGFUeXBlLFxuICAgIE1EIGV4dGVuZHMgSW5wdXRNZXRhZGF0YURlZmluaXRpb248VCwgTT4gPSBJbnB1dE1ldGFkYXRhRGVmaW5pdGlvbjxULCBNPlxuICA+KHR5cGU6IFQsIG1ldGFkYXRhOiBNRCk6IFByb21pc2U8U2F2ZVJlc3VsdD47XG4gIGNyZWF0ZTxcbiAgICBNIGV4dGVuZHMgTWV0YWRhdGEgPSBNZXRhZGF0YSxcbiAgICBUIGV4dGVuZHMgTWV0YWRhdGFUeXBlID0gTWV0YWRhdGFUeXBlLFxuICAgIE1EIGV4dGVuZHMgSW5wdXRNZXRhZGF0YURlZmluaXRpb248VCwgTT4gPSBJbnB1dE1ldGFkYXRhRGVmaW5pdGlvbjxULCBNPlxuICA+KHR5cGU6IFQsIG1ldGFkYXRhOiBNRCB8IE1EW10pOiBQcm9taXNlPFNhdmVSZXN1bHQgfCBTYXZlUmVzdWx0W10+O1xuICBjcmVhdGUodHlwZTogc3RyaW5nLCBtZXRhZGF0YTogTWV0YWRhdGEgfCBNZXRhZGF0YVtdKSB7XG4gICAgY29uc3QgaXNBcnJheSA9IEFycmF5LmlzQXJyYXkobWV0YWRhdGEpO1xuICAgIG1ldGFkYXRhID0gYXNzaWduVHlwZVdpdGhNZXRhZGF0YShtZXRhZGF0YSwgdHlwZSk7XG4gICAgY29uc3Qgc2NoZW1hID0gaXNBcnJheSA/IFtBcGlTY2hlbWFzLlNhdmVSZXN1bHRdIDogQXBpU2NoZW1hcy5TYXZlUmVzdWx0O1xuICAgIHJldHVybiB0aGlzLl9pbnZva2UoJ2NyZWF0ZU1ldGFkYXRhJywgeyBtZXRhZGF0YSB9LCBzY2hlbWEpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlYWQgc3BlY2lmaWVkIG1ldGFkYXRhIGNvbXBvbmVudHMgaW4gdGhlIG9yZ2FuaXphdGlvbi5cbiAgICovXG4gIHJlYWQ8XG4gICAgTSBleHRlbmRzIE1ldGFkYXRhID0gTWV0YWRhdGEsXG4gICAgVCBleHRlbmRzIE1ldGFkYXRhVHlwZSA9IE1ldGFkYXRhVHlwZSxcbiAgICBNRCBleHRlbmRzIE1ldGFkYXRhRGVmaW5pdGlvbjxULCBNPiA9IE1ldGFkYXRhRGVmaW5pdGlvbjxULCBNPlxuICA+KHR5cGU6IFQsIGZ1bGxOYW1lczogc3RyaW5nW10pOiBQcm9taXNlPE1EW10+O1xuICByZWFkPFxuICAgIE0gZXh0ZW5kcyBNZXRhZGF0YSA9IE1ldGFkYXRhLFxuICAgIFQgZXh0ZW5kcyBNZXRhZGF0YVR5cGUgPSBNZXRhZGF0YVR5cGUsXG4gICAgTUQgZXh0ZW5kcyBNZXRhZGF0YURlZmluaXRpb248VCwgTT4gPSBNZXRhZGF0YURlZmluaXRpb248VCwgTT5cbiAgPih0eXBlOiBULCBmdWxsTmFtZXM6IHN0cmluZyk6IFByb21pc2U8TUQ+O1xuICByZWFkPFxuICAgIE0gZXh0ZW5kcyBNZXRhZGF0YSA9IE1ldGFkYXRhLFxuICAgIFQgZXh0ZW5kcyBNZXRhZGF0YVR5cGUgPSBNZXRhZGF0YVR5cGUsXG4gICAgTUQgZXh0ZW5kcyBNZXRhZGF0YURlZmluaXRpb248VCwgTT4gPSBNZXRhZGF0YURlZmluaXRpb248VCwgTT5cbiAgPih0eXBlOiBULCBmdWxsTmFtZXM6IHN0cmluZyB8IHN0cmluZ1tdKTogUHJvbWlzZTxNRCB8IE1EW10+O1xuICBhc3luYyByZWFkKHR5cGU6IHN0cmluZywgZnVsbE5hbWVzOiBzdHJpbmcgfCBzdHJpbmdbXSkge1xuICAgIGNvbnN0IFJlYWRSZXN1bHRTY2hlbWEgPVxuICAgICAgdHlwZSBpbiBBcGlTY2hlbWFzXG4gICAgICAgID8gKHtcbiAgICAgICAgICAgIHR5cGU6IEFwaVNjaGVtYXMuUmVhZFJlc3VsdC50eXBlLFxuICAgICAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICAgICAgcmVjb3JkczogW3R5cGVdLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9IGFzIGNvbnN0KVxuICAgICAgICA6IEFwaVNjaGVtYXMuUmVhZFJlc3VsdDtcbiAgICBjb25zdCByZXM6IFJlYWRSZXN1bHQgPSBhd2FpdCB0aGlzLl9pbnZva2UoXG4gICAgICAncmVhZE1ldGFkYXRhJyxcbiAgICAgIHsgdHlwZSwgZnVsbE5hbWVzIH0sXG4gICAgICBSZWFkUmVzdWx0U2NoZW1hLFxuICAgICk7XG4gICAgcmV0dXJuIEFycmF5LmlzQXJyYXkoZnVsbE5hbWVzKVxuICAgICAgPyByZXMucmVjb3Jkcy5tYXAoZGVhbGxvY2F0ZVR5cGVXaXRoTWV0YWRhdGEpXG4gICAgICA6IGRlYWxsb2NhdGVUeXBlV2l0aE1ldGFkYXRhKHJlcy5yZWNvcmRzWzBdKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgb25lIG9yIG1vcmUgbWV0YWRhdGEgY29tcG9uZW50cyBpbiB0aGUgb3JnYW5pemF0aW9uLlxuICAgKi9cbiAgdXBkYXRlPFxuICAgIE0gZXh0ZW5kcyBNZXRhZGF0YSA9IE1ldGFkYXRhLFxuICAgIFQgZXh0ZW5kcyBzdHJpbmcgPSBzdHJpbmcsXG4gICAgTUQgZXh0ZW5kcyBJbnB1dE1ldGFkYXRhRGVmaW5pdGlvbjxULCBNPiA9IElucHV0TWV0YWRhdGFEZWZpbml0aW9uPFQsIE0+XG4gID4odHlwZTogVCwgbWV0YWRhdGE6IFBhcnRpYWw8TUQ+W10pOiBQcm9taXNlPFNhdmVSZXN1bHRbXT47XG4gIHVwZGF0ZTxcbiAgICBNIGV4dGVuZHMgTWV0YWRhdGEgPSBNZXRhZGF0YSxcbiAgICBUIGV4dGVuZHMgc3RyaW5nID0gc3RyaW5nLFxuICAgIE1EIGV4dGVuZHMgSW5wdXRNZXRhZGF0YURlZmluaXRpb248VCwgTT4gPSBJbnB1dE1ldGFkYXRhRGVmaW5pdGlvbjxULCBNPlxuICA+KHR5cGU6IFQsIG1ldGFkYXRhOiBQYXJ0aWFsPE1EPik6IFByb21pc2U8U2F2ZVJlc3VsdD47XG4gIHVwZGF0ZTxcbiAgICBNIGV4dGVuZHMgTWV0YWRhdGEgPSBNZXRhZGF0YSxcbiAgICBUIGV4dGVuZHMgc3RyaW5nID0gc3RyaW5nLFxuICAgIE1EIGV4dGVuZHMgSW5wdXRNZXRhZGF0YURlZmluaXRpb248VCwgTT4gPSBJbnB1dE1ldGFkYXRhRGVmaW5pdGlvbjxULCBNPlxuICA+KFxuICAgIHR5cGU6IFQsXG4gICAgbWV0YWRhdGE6IFBhcnRpYWw8TUQ+IHwgUGFydGlhbDxNRD5bXSxcbiAgKTogUHJvbWlzZTxTYXZlUmVzdWx0IHwgU2F2ZVJlc3VsdFtdPjtcbiAgdXBkYXRlKHR5cGU6IHN0cmluZywgbWV0YWRhdGE6IE1ldGFkYXRhIHwgTWV0YWRhdGFbXSkge1xuICAgIGNvbnN0IGlzQXJyYXkgPSBBcnJheS5pc0FycmF5KG1ldGFkYXRhKTtcbiAgICBtZXRhZGF0YSA9IGFzc2lnblR5cGVXaXRoTWV0YWRhdGEobWV0YWRhdGEsIHR5cGUpO1xuICAgIGNvbnN0IHNjaGVtYSA9IGlzQXJyYXkgPyBbQXBpU2NoZW1hcy5TYXZlUmVzdWx0XSA6IEFwaVNjaGVtYXMuU2F2ZVJlc3VsdDtcbiAgICByZXR1cm4gdGhpcy5faW52b2tlKCd1cGRhdGVNZXRhZGF0YScsIHsgbWV0YWRhdGEgfSwgc2NoZW1hKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcHNlcnQgb25lIG9yIG1vcmUgY29tcG9uZW50cyBpbiB5b3VyIG9yZ2FuaXphdGlvbidzIGRhdGEuXG4gICAqL1xuICB1cHNlcnQ8XG4gICAgTSBleHRlbmRzIE1ldGFkYXRhID0gTWV0YWRhdGEsXG4gICAgVCBleHRlbmRzIHN0cmluZyA9IHN0cmluZyxcbiAgICBNRCBleHRlbmRzIElucHV0TWV0YWRhdGFEZWZpbml0aW9uPFQsIE0+ID0gSW5wdXRNZXRhZGF0YURlZmluaXRpb248VCwgTT5cbiAgPih0eXBlOiBULCBtZXRhZGF0YTogTURbXSk6IFByb21pc2U8VXBzZXJ0UmVzdWx0W10+O1xuICB1cHNlcnQ8XG4gICAgTSBleHRlbmRzIE1ldGFkYXRhID0gTWV0YWRhdGEsXG4gICAgVCBleHRlbmRzIHN0cmluZyA9IHN0cmluZyxcbiAgICBNRCBleHRlbmRzIElucHV0TWV0YWRhdGFEZWZpbml0aW9uPFQsIE0+ID0gSW5wdXRNZXRhZGF0YURlZmluaXRpb248VCwgTT5cbiAgPih0eXBlOiBULCBtZXRhZGF0YTogTUQpOiBQcm9taXNlPFVwc2VydFJlc3VsdD47XG4gIHVwc2VydDxcbiAgICBNIGV4dGVuZHMgTWV0YWRhdGEgPSBNZXRhZGF0YSxcbiAgICBUIGV4dGVuZHMgc3RyaW5nID0gc3RyaW5nLFxuICAgIE1EIGV4dGVuZHMgSW5wdXRNZXRhZGF0YURlZmluaXRpb248VCwgTT4gPSBJbnB1dE1ldGFkYXRhRGVmaW5pdGlvbjxULCBNPlxuICA+KHR5cGU6IFQsIG1ldGFkYXRhOiBNRCB8IE1EW10pOiBQcm9taXNlPFVwc2VydFJlc3VsdCB8IFVwc2VydFJlc3VsdFtdPjtcbiAgdXBzZXJ0KHR5cGU6IHN0cmluZywgbWV0YWRhdGE6IE1ldGFkYXRhIHwgTWV0YWRhdGFbXSkge1xuICAgIGNvbnN0IGlzQXJyYXkgPSBBcnJheS5pc0FycmF5KG1ldGFkYXRhKTtcbiAgICBtZXRhZGF0YSA9IGFzc2lnblR5cGVXaXRoTWV0YWRhdGEobWV0YWRhdGEsIHR5cGUpO1xuICAgIGNvbnN0IHNjaGVtYSA9IGlzQXJyYXlcbiAgICAgID8gW0FwaVNjaGVtYXMuVXBzZXJ0UmVzdWx0XVxuICAgICAgOiBBcGlTY2hlbWFzLlVwc2VydFJlc3VsdDtcbiAgICByZXR1cm4gdGhpcy5faW52b2tlKCd1cHNlcnRNZXRhZGF0YScsIHsgbWV0YWRhdGEgfSwgc2NoZW1hKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWxldGVzIHNwZWNpZmllZCBtZXRhZGF0YSBjb21wb25lbnRzIGluIHRoZSBvcmdhbml6YXRpb24uXG4gICAqL1xuICBkZWxldGUodHlwZTogc3RyaW5nLCBmdWxsTmFtZXM6IHN0cmluZ1tdKTogUHJvbWlzZTxTYXZlUmVzdWx0W10+O1xuICBkZWxldGUodHlwZTogc3RyaW5nLCBmdWxsTmFtZXM6IHN0cmluZyk6IFByb21pc2U8U2F2ZVJlc3VsdD47XG4gIGRlbGV0ZShcbiAgICB0eXBlOiBzdHJpbmcsXG4gICAgZnVsbE5hbWVzOiBzdHJpbmcgfCBzdHJpbmdbXSxcbiAgKTogUHJvbWlzZTxTYXZlUmVzdWx0IHwgU2F2ZVJlc3VsdFtdPjtcbiAgZGVsZXRlKHR5cGU6IHN0cmluZywgZnVsbE5hbWVzOiBzdHJpbmcgfCBzdHJpbmdbXSkge1xuICAgIGNvbnN0IHNjaGVtYSA9IEFycmF5LmlzQXJyYXkoZnVsbE5hbWVzKVxuICAgICAgPyBbQXBpU2NoZW1hcy5TYXZlUmVzdWx0XVxuICAgICAgOiBBcGlTY2hlbWFzLlNhdmVSZXN1bHQ7XG4gICAgcmV0dXJuIHRoaXMuX2ludm9rZSgnZGVsZXRlTWV0YWRhdGEnLCB7IHR5cGUsIGZ1bGxOYW1lcyB9LCBzY2hlbWEpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbmFtZSBmdWxsbmFtZSBvZiBhIG1ldGFkYXRhIGNvbXBvbmVudCBpbiB0aGUgb3JnYW5pemF0aW9uXG4gICAqL1xuICByZW5hbWUoXG4gICAgdHlwZTogc3RyaW5nLFxuICAgIG9sZEZ1bGxOYW1lOiBzdHJpbmcsXG4gICAgbmV3RnVsbE5hbWU6IHN0cmluZyxcbiAgKTogUHJvbWlzZTxTYXZlUmVzdWx0PiB7XG4gICAgcmV0dXJuIHRoaXMuX2ludm9rZShcbiAgICAgICdyZW5hbWVNZXRhZGF0YScsXG4gICAgICB7IHR5cGUsIG9sZEZ1bGxOYW1lLCBuZXdGdWxsTmFtZSB9LFxuICAgICAgQXBpU2NoZW1hcy5TYXZlUmVzdWx0LFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogUmV0cmlldmVzIHRoZSBtZXRhZGF0YSB3aGljaCBkZXNjcmliZXMgeW91ciBvcmdhbml6YXRpb24sIGluY2x1ZGluZyBBcGV4IGNsYXNzZXMgYW5kIHRyaWdnZXJzLFxuICAgKiBjdXN0b20gb2JqZWN0cywgY3VzdG9tIGZpZWxkcyBvbiBzdGFuZGFyZCBvYmplY3RzLCB0YWIgc2V0cyB0aGF0IGRlZmluZSBhbiBhcHAsXG4gICAqIGFuZCBtYW55IG90aGVyIGNvbXBvbmVudHMuXG4gICAqL1xuICBkZXNjcmliZShhc09mVmVyc2lvbj86IHN0cmluZyk6IFByb21pc2U8RGVzY3JpYmVNZXRhZGF0YVJlc3VsdD4ge1xuICAgIGlmICghYXNPZlZlcnNpb24pIHtcbiAgICAgIGFzT2ZWZXJzaW9uID0gdGhpcy5fY29ubi52ZXJzaW9uO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5faW52b2tlKFxuICAgICAgJ2Rlc2NyaWJlTWV0YWRhdGEnLFxuICAgICAgeyBhc09mVmVyc2lvbiB9LFxuICAgICAgQXBpU2NoZW1hcy5EZXNjcmliZU1ldGFkYXRhUmVzdWx0LFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogUmV0cmlldmVzIHByb3BlcnR5IGluZm9ybWF0aW9uIGFib3V0IG1ldGFkYXRhIGNvbXBvbmVudHMgaW4geW91ciBvcmdhbml6YXRpb25cbiAgICovXG4gIGxpc3QoXG4gICAgcXVlcmllczogTGlzdE1ldGFkYXRhUXVlcnkgfCBMaXN0TWV0YWRhdGFRdWVyeVtdLFxuICAgIGFzT2ZWZXJzaW9uPzogc3RyaW5nLFxuICApOiBQcm9taXNlPEZpbGVQcm9wZXJ0aWVzW10+IHtcbiAgICBpZiAoIWFzT2ZWZXJzaW9uKSB7XG4gICAgICBhc09mVmVyc2lvbiA9IHRoaXMuX2Nvbm4udmVyc2lvbjtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX2ludm9rZSgnbGlzdE1ldGFkYXRhJywgeyBxdWVyaWVzLCBhc09mVmVyc2lvbiB9LCBbXG4gICAgICBBcGlTY2hlbWFzLkZpbGVQcm9wZXJ0aWVzLFxuICAgIF0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyB0aGUgc3RhdHVzIG9mIGFzeW5jaHJvbm91cyBtZXRhZGF0YSBjYWxsc1xuICAgKi9cbiAgY2hlY2tTdGF0dXMoYXN5bmNQcm9jZXNzSWQ6IHN0cmluZykge1xuICAgIGNvbnN0IHJlcyA9IHRoaXMuX2ludm9rZShcbiAgICAgICdjaGVja1N0YXR1cycsXG4gICAgICB7IGFzeW5jUHJvY2Vzc0lkIH0sXG4gICAgICBBcGlTY2hlbWFzLkFzeW5jUmVzdWx0LFxuICAgICk7XG4gICAgcmV0dXJuIG5ldyBBc3luY1Jlc3VsdExvY2F0b3IodGhpcywgcmVzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZXMgWE1MIGZpbGUgcmVwcmVzZW50YXRpb25zIG9mIGNvbXBvbmVudHMgaW4gYW4gb3JnYW5pemF0aW9uXG4gICAqL1xuICByZXRyaWV2ZShyZXF1ZXN0OiBQYXJ0aWFsPFJldHJpZXZlUmVxdWVzdD4pIHtcbiAgICBjb25zdCByZXMgPSB0aGlzLl9pbnZva2UoXG4gICAgICAncmV0cmlldmUnLFxuICAgICAgeyByZXF1ZXN0IH0sXG4gICAgICBBcGlTY2hlbWFzLlJldHJpZXZlUmVzdWx0LFxuICAgICk7XG4gICAgcmV0dXJuIG5ldyBSZXRyaWV2ZVJlc3VsdExvY2F0b3IodGhpcywgcmVzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgdGhlIHN0YXR1cyBvZiBkZWNsYXJhdGl2ZSBtZXRhZGF0YSBjYWxsIHJldHJpZXZlKCkgYW5kIHJldHVybnMgdGhlIHppcCBmaWxlIGNvbnRlbnRzXG4gICAqL1xuICBjaGVja1JldHJpZXZlU3RhdHVzKGFzeW5jUHJvY2Vzc0lkOiBzdHJpbmcpOiBQcm9taXNlPFJldHJpZXZlUmVzdWx0PiB7XG4gICAgcmV0dXJuIHRoaXMuX2ludm9rZShcbiAgICAgICdjaGVja1JldHJpZXZlU3RhdHVzJyxcbiAgICAgIHsgYXN5bmNQcm9jZXNzSWQgfSxcbiAgICAgIEFwaVNjaGVtYXMuUmV0cmlldmVSZXN1bHQsXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaWxsIGRlcGxveSBhIHJlY2VudGx5IHZhbGlkYXRlZCBkZXBsb3kgcmVxdWVzdFxuICAgKlxuICAgKiBAcGFyYW0gb3B0aW9ucy5pZCA9IHRoZSBkZXBsb3kgSUQgdGhhdCdzIGJlZW4gdmFsaWRhdGVkIGFscmVhZHkgZnJvbSBhIHByZXZpb3VzIGNoZWNrT25seSBkZXBsb3kgcmVxdWVzdFxuICAgKiBAcGFyYW0gb3B0aW9ucy5yZXN0ID0gYSBib29sZWFuIHdoZXRoZXIgb3Igbm90IHRvIHVzZSB0aGUgUkVTVCBBUElcbiAgICogQHJldHVybnMgdGhlIGRlcGxveSBJRCBvZiB0aGUgcmVjZW50IHZhbGlkYXRpb24gcmVxdWVzdFxuICAgKi9cbiAgcHVibGljIGFzeW5jIGRlcGxveVJlY2VudFZhbGlkYXRpb24ob3B0aW9uczoge1xuICAgIGlkOiBzdHJpbmc7XG4gICAgcmVzdD86IGJvb2xlYW47XG4gIH0pOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IHsgaWQsIHJlc3QgfSA9IG9wdGlvbnM7XG4gICAgbGV0IHJlc3BvbnNlOiBzdHJpbmc7XG4gICAgaWYgKHJlc3QpIHtcbiAgICAgIGNvbnN0IG1lc3NhZ2VCb2R5ID0gSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICB2YWxpZGF0ZWREZXBsb3lSZXF1ZXN0SWQ6IGlkLFxuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IHJlcXVlc3RJbmZvOiBIdHRwUmVxdWVzdCA9IHtcbiAgICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICAgIHVybDogYCR7dGhpcy5fY29ubi5fYmFzZVVybCgpfS9tZXRhZGF0YS9kZXBsb3lSZXF1ZXN0YCxcbiAgICAgICAgYm9keTogbWVzc2FnZUJvZHksXG4gICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAnY29udGVudC10eXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICAgIGNvbnN0IHJlcXVlc3RPcHRpb25zID0geyBoZWFkZXJzOiAnanNvbicgfTtcbiAgICAgIC8vIFRoaXMgaXMgdGhlIGRlcGxveSBJRCBvZiB0aGUgZGVwbG95UmVjZW50VmFsaWRhdGlvbiByZXNwb25zZSwgbm90XG4gICAgICAvLyB0aGUgYWxyZWFkeSB2YWxpZGF0ZWQgZGVwbG95IElEIChpLmUuLCB2YWxpZGF0ZWRkZXBsb3lyZXF1ZXN0aWQpLlxuICAgICAgLy8gUkVTVCByZXR1cm5zIGFuIG9iamVjdCB3aXRoIGFuIGlkIHByb3BlcnR5LCBTT0FQIHJldHVybnMgdGhlIGlkIGFzIGEgc3RyaW5nIGRpcmVjdGx5LlxuICAgICAgcmVzcG9uc2UgPSAoXG4gICAgICAgIGF3YWl0IHRoaXMuX2Nvbm4ucmVxdWVzdDx7IGlkOiBzdHJpbmcgfT4ocmVxdWVzdEluZm8sIHJlcXVlc3RPcHRpb25zKVxuICAgICAgKS5pZDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLl9pbnZva2UoJ2RlcGxveVJlY2VudFZhbGlkYXRpb24nLCB7XG4gICAgICAgIHZhbGlkYXRpb25JZDogaWQsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzcG9uc2U7XG4gIH1cblxuICAvKipcbiAgICogRGVwbG95IGNvbXBvbmVudHMgaW50byBhbiBvcmdhbml6YXRpb24gdXNpbmcgemlwcGVkIGZpbGUgcmVwcmVzZW50YXRpb25zXG4gICAqIHVzaW5nIHRoZSBSRVNUIE1ldGFkYXRhIEFQSSBpbnN0ZWFkIG9mIFNPQVBcbiAgICovXG4gIGRlcGxveVJlc3QoXG4gICAgemlwSW5wdXQ6IEJ1ZmZlcixcbiAgICBvcHRpb25zOiBQYXJ0aWFsPERlcGxveU9wdGlvbnM+ID0ge30sXG4gICk6IERlcGxveVJlc3VsdExvY2F0b3I8Uz4ge1xuICAgIGNvbnN0IGZvcm0gPSBuZXcgRm9ybURhdGEoKTtcbiAgICBmb3JtLmFwcGVuZCgnZmlsZScsIHppcElucHV0LCB7XG4gICAgICBjb250ZW50VHlwZTogJ2FwcGxpY2F0aW9uL3ppcCcsXG4gICAgICBmaWxlbmFtZTogJ3BhY2thZ2UueG1sJyxcbiAgICB9KTtcblxuICAgIC8vIEFkZCB0aGUgZGVwbG95IG9wdGlvbnNcbiAgICBmb3JtLmFwcGVuZCgnZW50aXR5X2NvbnRlbnQnLCBKU09OLnN0cmluZ2lmeSh7IGRlcGxveU9wdGlvbnM6IG9wdGlvbnMgfSksIHtcbiAgICAgIGNvbnRlbnRUeXBlOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgfSk7XG5cbiAgICBjb25zdCByZXF1ZXN0OiBIdHRwUmVxdWVzdCA9IHtcbiAgICAgIHVybDogJy9tZXRhZGF0YS9kZXBsb3lSZXF1ZXN0JyxcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgaGVhZGVyczogeyAuLi5mb3JtLmdldEhlYWRlcnMoKSB9LFxuICAgICAgYm9keTogZm9ybS5nZXRCdWZmZXIoKSxcbiAgICB9O1xuICAgIGNvbnN0IHJlcyA9IHRoaXMuX2Nvbm4ucmVxdWVzdDxBc3luY1Jlc3VsdD4ocmVxdWVzdCk7XG5cbiAgICByZXR1cm4gbmV3IERlcGxveVJlc3VsdExvY2F0b3IodGhpcywgcmVzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXBsb3kgY29tcG9uZW50cyBpbnRvIGFuIG9yZ2FuaXphdGlvbiB1c2luZyB6aXBwZWQgZmlsZSByZXByZXNlbnRhdGlvbnNcbiAgICovXG4gIGRlcGxveShcbiAgICB6aXBJbnB1dDogUmVhZGFibGUgfCBCdWZmZXIgfCBzdHJpbmcsXG4gICAgb3B0aW9uczogUGFydGlhbDxEZXBsb3lPcHRpb25zPiA9IHt9LFxuICApOiBEZXBsb3lSZXN1bHRMb2NhdG9yPFM+IHtcbiAgICBjb25zdCByZXMgPSAoYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgemlwQ29udGVudEI2NCA9IGF3YWl0IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIGlzT2JqZWN0KHppcElucHV0KSAmJlxuICAgICAgICAgICdwaXBlJyBpbiB6aXBJbnB1dCAmJlxuICAgICAgICAgIHR5cGVvZiB6aXBJbnB1dC5waXBlID09PSAnZnVuY3Rpb24nXG4gICAgICAgICkge1xuICAgICAgICAgIGNvbnN0IGJ1ZnM6IEJ1ZmZlcltdID0gW107XG4gICAgICAgICAgemlwSW5wdXQub24oJ2RhdGEnLCAoZCkgPT4gYnVmcy5wdXNoKGQpKTtcbiAgICAgICAgICB6aXBJbnB1dC5vbignZXJyb3InLCByZWplY3QpO1xuICAgICAgICAgIHppcElucHV0Lm9uKCdlbmQnLCAoKSA9PiB7XG4gICAgICAgICAgICByZXNvbHZlKEJ1ZmZlci5jb25jYXQoYnVmcykudG9TdHJpbmcoJ2Jhc2U2NCcpKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICAvLyB6aXBJbnB1dC5yZXN1bWUoKTtcbiAgICAgICAgfSBlbHNlIGlmICh6aXBJbnB1dCBpbnN0YW5jZW9mIEJ1ZmZlcikge1xuICAgICAgICAgIHJlc29sdmUoemlwSW5wdXQudG9TdHJpbmcoJ2Jhc2U2NCcpKTtcbiAgICAgICAgfSBlbHNlIGlmICh6aXBJbnB1dCBpbnN0YW5jZW9mIFN0cmluZyB8fCB0eXBlb2YgemlwSW5wdXQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgcmVzb2x2ZSh6aXBJbnB1dCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhyb3cgJ1VuZXhwZWN0ZWQgemlwSW5wdXQgdHlwZSc7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICByZXR1cm4gdGhpcy5faW52b2tlKFxuICAgICAgICAnZGVwbG95JyxcbiAgICAgICAge1xuICAgICAgICAgIFppcEZpbGU6IHppcENvbnRlbnRCNjQsXG4gICAgICAgICAgRGVwbG95T3B0aW9uczogb3B0aW9ucyxcbiAgICAgICAgfSxcbiAgICAgICAgQXBpU2NoZW1hcy5EZXBsb3lSZXN1bHQsXG4gICAgICApO1xuICAgIH0pKCk7XG5cbiAgICByZXR1cm4gbmV3IERlcGxveVJlc3VsdExvY2F0b3IodGhpcywgcmVzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgdGhlIHN0YXR1cyBvZiBkZWNsYXJhdGl2ZSBtZXRhZGF0YSBjYWxsIGRlcGxveSgpXG4gICAqL1xuICBjaGVja0RlcGxveVN0YXR1cyhcbiAgICBhc3luY1Byb2Nlc3NJZDogc3RyaW5nLFxuICAgIGluY2x1ZGVEZXRhaWxzOiBib29sZWFuID0gZmFsc2UsXG4gICk6IFByb21pc2U8RGVwbG95UmVzdWx0PiB7XG4gICAgcmV0dXJuIHRoaXMuX2ludm9rZShcbiAgICAgICdjaGVja0RlcGxveVN0YXR1cycsXG4gICAgICB7XG4gICAgICAgIGFzeW5jUHJvY2Vzc0lkLFxuICAgICAgICBpbmNsdWRlRGV0YWlscyxcbiAgICAgIH0sXG4gICAgICBBcGlTY2hlbWFzLkRlcGxveVJlc3VsdCxcbiAgICApO1xuICB9XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKipcbiAqIFRoZSBsb2NhdG9yIGNsYXNzIGZvciBNZXRhZGF0YSBBUEkgYXN5bmNocm9ub3VzIGNhbGwgcmVzdWx0XG4gKi9cbmV4cG9ydCBjbGFzcyBBc3luY1Jlc3VsdExvY2F0b3I8XG4gIFMgZXh0ZW5kcyBTY2hlbWEsXG4gIFIgZXh0ZW5kcyB7fSA9IEFzeW5jUmVzdWx0XG4+IGV4dGVuZHMgRXZlbnRFbWl0dGVyIHtcbiAgX21ldGE6IE1ldGFkYXRhQXBpPFM+O1xuICBfcHJvbWlzZTogUHJvbWlzZTxBc3luY1Jlc3VsdD47XG4gIF9pZDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKlxuICAgKi9cbiAgY29uc3RydWN0b3IobWV0YTogTWV0YWRhdGFBcGk8Uz4sIHByb21pc2U6IFByb21pc2U8QXN5bmNSZXN1bHQ+KSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLl9tZXRhID0gbWV0YTtcbiAgICB0aGlzLl9wcm9taXNlID0gcHJvbWlzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcm9taXNlL0ErIGludGVyZmFjZVxuICAgKiBodHRwOi8vcHJvbWlzZXMtYXBsdXMuZ2l0aHViLmlvL3Byb21pc2VzLXNwZWMvXG4gICAqXG4gICAqIEBtZXRob2QgTWV0YWRhdGF+QXN5bmNSZXN1bHRMb2NhdG9yI3RoZW5cbiAgICovXG4gIHRoZW48VSwgVj4oXG4gICAgb25SZXNvbHZlPzogKChyZXN1bHQ6IEFzeW5jUmVzdWx0KSA9PiBVIHwgUHJvbWlzZTxVPikgfCBudWxsIHwgdW5kZWZpbmVkLFxuICAgIG9uUmVqZWN0PzogKChlcnI6IEVycm9yKSA9PiBWIHwgUHJvbWlzZTxWPikgfCBudWxsIHwgdW5kZWZpbmVkLFxuICApOiBQcm9taXNlPFUgfCBWPiB7XG4gICAgcmV0dXJuIHRoaXMuX3Byb21pc2UudGhlbihvblJlc29sdmUsIG9uUmVqZWN0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayB0aGUgc3RhdHVzIG9mIGFzeW5jIHJlcXVlc3RcbiAgICovXG4gIGFzeW5jIGNoZWNrKCkge1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuX3Byb21pc2U7XG4gICAgdGhpcy5faWQgPSByZXN1bHQuaWQ7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuX21ldGEuY2hlY2tTdGF0dXMocmVzdWx0LmlkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQb2xsaW5nIHVudGlsIGFzeW5jIGNhbGwgc3RhdHVzIGJlY29tZXMgY29tcGxldGUgb3IgZXJyb3JcbiAgICovXG4gIHBvbGwoaW50ZXJ2YWw6IG51bWJlciwgdGltZW91dDogbnVtYmVyKSB7XG4gICAgY29uc3Qgc3RhcnRUaW1lID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XG4gICAgY29uc3QgcG9sbCA9IGFzeW5jICgpID0+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IG5vdyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xuICAgICAgICBpZiAoc3RhcnRUaW1lICsgdGltZW91dCA8IG5vdykge1xuICAgICAgICAgIGxldCBlcnJNc2cgPSAnUG9sbGluZyB0aW1lIG91dC4nO1xuICAgICAgICAgIGlmICh0aGlzLl9pZCkge1xuICAgICAgICAgICAgZXJyTXNnICs9ICcgUHJvY2VzcyBJZCA9ICcgKyB0aGlzLl9pZDtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5lbWl0KCdlcnJvcicsIG5ldyBFcnJvcihlcnJNc2cpKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5jaGVjaygpO1xuICAgICAgICBpZiAocmVzdWx0LmRvbmUpIHtcbiAgICAgICAgICB0aGlzLmVtaXQoJ2NvbXBsZXRlJywgcmVzdWx0KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmVtaXQoJ3Byb2dyZXNzJywgcmVzdWx0KTtcbiAgICAgICAgICBzZXRUaW1lb3V0KHBvbGwsIGludGVydmFsKTtcbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIHRoaXMuZW1pdCgnZXJyb3InLCBlcnIpO1xuICAgICAgfVxuICAgIH07XG4gICAgc2V0VGltZW91dChwb2xsLCBpbnRlcnZhbCk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgYW5kIHdhaXQgdW50aWwgdGhlIGFzeW5jIHJlcXVlc3RzIGJlY29tZSBpbiBjb21wbGV0ZWQgc3RhdHVzXG4gICAqL1xuICBjb21wbGV0ZSgpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2U8Uj4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgdGhpcy5vbignY29tcGxldGUnLCByZXNvbHZlKTtcbiAgICAgIHRoaXMub24oJ2Vycm9yJywgcmVqZWN0KTtcbiAgICAgIHRoaXMucG9sbCh0aGlzLl9tZXRhLnBvbGxJbnRlcnZhbCwgdGhpcy5fbWV0YS5wb2xsVGltZW91dCk7XG4gICAgfSk7XG4gIH1cbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKipcbiAqIFRoZSBsb2NhdG9yIGNsYXNzIHRvIHRyYWNrIHJldHJlaXZlKCkgTWV0YWRhdGEgQVBJIGNhbGwgcmVzdWx0XG4gKi9cbmV4cG9ydCBjbGFzcyBSZXRyaWV2ZVJlc3VsdExvY2F0b3I8UyBleHRlbmRzIFNjaGVtYT4gZXh0ZW5kcyBBc3luY1Jlc3VsdExvY2F0b3I8XG4gIFMsXG4gIFJldHJpZXZlUmVzdWx0XG4+IHtcbiAgLyoqXG4gICAqIENoZWNrIGFuZCB3YWl0IHVudGlsIHRoZSBhc3luYyByZXF1ZXN0IGJlY29tZXMgaW4gY29tcGxldGVkIHN0YXR1cyxcbiAgICogYW5kIHJldHJpZXZlIHRoZSByZXN1bHQgZGF0YS5cbiAgICovXG4gIGFzeW5jIGNvbXBsZXRlKCkge1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHN1cGVyLmNvbXBsZXRlKCk7XG4gICAgcmV0dXJuIHRoaXMuX21ldGEuY2hlY2tSZXRyaWV2ZVN0YXR1cyhyZXN1bHQuaWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIENoYW5nZSB0aGUgcmV0cmlldmVkIHJlc3VsdCB0byBOb2RlLmpzIHJlYWRhYmxlIHN0cmVhbVxuICAgKi9cbiAgc3RyZWFtKCkge1xuICAgIGNvbnN0IHJlc3VsdFN0cmVhbSA9IG5ldyBSZWFkYWJsZSgpO1xuICAgIGxldCByZWFkaW5nID0gZmFsc2U7XG4gICAgcmVzdWx0U3RyZWFtLl9yZWFkID0gYXN5bmMgKCkgPT4ge1xuICAgICAgaWYgKHJlYWRpbmcpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgcmVhZGluZyA9IHRydWU7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLmNvbXBsZXRlKCk7XG4gICAgICAgIHJlc3VsdFN0cmVhbS5wdXNoKEJ1ZmZlci5mcm9tKHJlc3VsdC56aXBGaWxlLCAnYmFzZTY0JykpO1xuICAgICAgICByZXN1bHRTdHJlYW0ucHVzaChudWxsKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgcmVzdWx0U3RyZWFtLmVtaXQoJ2Vycm9yJywgZSk7XG4gICAgICB9XG4gICAgfTtcbiAgICByZXR1cm4gcmVzdWx0U3RyZWFtO1xuICB9XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyoqXG4gKiBUaGUgbG9jYXRvciBjbGFzcyB0byB0cmFjayBkZXBsb3koKSBNZXRhZGF0YSBBUEkgY2FsbCByZXN1bHRcbiAqXG4gKiBAcHJvdGVjdGVkXG4gKiBAY2xhc3MgTWV0YWRhdGF+RGVwbG95UmVzdWx0TG9jYXRvclxuICogQGV4dGVuZHMgTWV0YWRhdGF+QXN5bmNSZXN1bHRMb2NhdG9yXG4gKiBAcGFyYW0ge01ldGFkYXRhfSBtZXRhIC0gTWV0YWRhdGEgQVBJIG9iamVjdFxuICogQHBhcmFtIHtQcm9taXNlLjxNZXRhZGF0YX5Bc3luY1Jlc3VsdD59IHJlc3VsdCAtIFByb21pc2Ugb2JqZWN0IGZvciBhc3luYyByZXN1bHQgb2YgZGVwbG95KCkgY2FsbFxuICovXG5leHBvcnQgY2xhc3MgRGVwbG95UmVzdWx0TG9jYXRvcjxTIGV4dGVuZHMgU2NoZW1hPiBleHRlbmRzIEFzeW5jUmVzdWx0TG9jYXRvcjxcbiAgUyxcbiAgRGVwbG95UmVzdWx0XG4+IHtcbiAgLyoqXG4gICAqIENoZWNrIGFuZCB3YWl0IHVudGlsIHRoZSBhc3luYyByZXF1ZXN0IGJlY29tZXMgaW4gY29tcGxldGVkIHN0YXR1cyxcbiAgICogYW5kIHJldHJpZXZlIHRoZSByZXN1bHQgZGF0YS5cbiAgICovXG4gIGFzeW5jIGNvbXBsZXRlKGluY2x1ZGVEZXRhaWxzPzogYm9vbGVhbikge1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHN1cGVyLmNvbXBsZXRlKCk7XG4gICAgcmV0dXJuIHRoaXMuX21ldGEuY2hlY2tEZXBsb3lTdGF0dXMocmVzdWx0LmlkLCBpbmNsdWRlRGV0YWlscyk7XG4gIH1cbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICogUmVnaXN0ZXIgaG9vayBpbiBjb25uZWN0aW9uIGluc3RhbnRpYXRpb24gZm9yIGR5bmFtaWNhbGx5IGFkZGluZyB0aGlzIEFQSSBtb2R1bGUgZmVhdHVyZXNcbiAqL1xucmVnaXN0ZXJNb2R1bGUoJ21ldGFkYXRhJywgKGNvbm4pID0+IG5ldyBNZXRhZGF0YUFwaShjb25uKSk7XG5cbmV4cG9ydCBkZWZhdWx0IE1ldGFkYXRhQXBpO1xuIl19 |
@@ -28,2 +28,3 @@ /// <reference types="node" /> | ||
import Tooling from './api/tooling'; | ||
import { JwtOAuth2Config, JwtOAuth2 } from './jwtOAuth2'; | ||
/** | ||
@@ -42,2 +43,3 @@ * type definitions | ||
oauth2?: OAuth2 | OAuth2Config; | ||
jwtOAuth2?: JwtOAuth2 | JwtOAuth2Config; | ||
maxRequest?: number; | ||
@@ -44,0 +46,0 @@ proxyUrl?: string; |
@@ -9,2 +9,3 @@ import jsforce from './jsforce'; | ||
export * from './oauth2'; | ||
export * from './jwtOAuth2'; | ||
export * from './connection'; | ||
@@ -11,0 +12,0 @@ export * from './query'; |
@@ -7,3 +7,3 @@ "use strict"; | ||
var _context, _context2, _context3, _context4, _context5, _context6; | ||
var _context, _context2, _context3, _context4, _context5, _context6, _context7; | ||
@@ -126,5 +126,20 @@ var _interopRequireWildcard = require("@babel/runtime-corejs3/helpers/interopRequireWildcard"); | ||
var _jwtOAuth = require("./jwtOAuth2"); | ||
_forEachInstanceProperty(_context2 = _Object$keys(_jwtOAuth)).call(_context2, function (key) { | ||
if (key === "default" || key === "__esModule") return; | ||
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; | ||
if (key in exports && exports[key] === _jwtOAuth[key]) return; | ||
_Object$defineProperty(exports, key, { | ||
enumerable: true, | ||
get: function () { | ||
return _jwtOAuth[key]; | ||
} | ||
}); | ||
}); | ||
var _connection = require("./connection"); | ||
_forEachInstanceProperty(_context2 = _Object$keys(_connection)).call(_context2, function (key) { | ||
_forEachInstanceProperty(_context3 = _Object$keys(_connection)).call(_context3, function (key) { | ||
if (key === "default" || key === "__esModule") return; | ||
@@ -144,3 +159,3 @@ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; | ||
_forEachInstanceProperty(_context3 = _Object$keys(_query)).call(_context3, function (key) { | ||
_forEachInstanceProperty(_context4 = _Object$keys(_query)).call(_context4, function (key) { | ||
if (key === "default" || key === "__esModule") return; | ||
@@ -160,3 +175,3 @@ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; | ||
_forEachInstanceProperty(_context4 = _Object$keys(_quickAction)).call(_context4, function (key) { | ||
_forEachInstanceProperty(_context5 = _Object$keys(_quickAction)).call(_context5, function (key) { | ||
if (key === "default" || key === "__esModule") return; | ||
@@ -176,3 +191,3 @@ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; | ||
_forEachInstanceProperty(_context5 = _Object$keys(_sobject)).call(_context5, function (key) { | ||
_forEachInstanceProperty(_context6 = _Object$keys(_sobject)).call(_context6, function (key) { | ||
if (key === "default" || key === "__esModule") return; | ||
@@ -192,3 +207,3 @@ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; | ||
_forEachInstanceProperty(_context6 = _Object$keys(_types)).call(_context6, function (key) { | ||
_forEachInstanceProperty(_context7 = _Object$keys(_types)).call(_context7, function (key) { | ||
if (key === "default" || key === "__esModule") return; | ||
@@ -208,2 +223,2 @@ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; | ||
exports.default = _default; | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb3JlLnRzIl0sIm5hbWVzIjpbImpzZm9yY2UiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUE7O0FBQ0E7O0FBRUE7O0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBQ0E7O0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBQ0E7O0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBQ0E7O0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBQ0E7O0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBRUE7O0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O2VBWWVBLGdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGpzZm9yY2UgZnJvbSAnLi9qc2ZvcmNlJztcbmltcG9ydCBTZkRhdGUgZnJvbSAnLi9kYXRlJztcbmltcG9ydCByZWdpc3RyeSwgeyBSZWdpc3RyeSB9IGZyb20gJy4vcmVnaXN0cnknO1xuaW1wb3J0IGJyb3dzZXIsIHsgQnJvd3NlckNsaWVudCB9IGZyb20gJy4vYnJvd3Nlci9jbGllbnQnO1xuaW1wb3J0IFZFUlNJT04gZnJvbSAnLi9WRVJTSU9OJztcblxuaW1wb3J0IFJlY29yZFJlZmVyZW5jZSBmcm9tICcuL3JlY29yZC1yZWZlcmVuY2UnO1xuaW1wb3J0IFJlY29yZFN0cmVhbSBmcm9tICcuL3JlY29yZC1zdHJlYW0nO1xuXG5leHBvcnQgKiBmcm9tICcuL29hdXRoMic7XG5leHBvcnQgKiBmcm9tICcuL2Nvbm5lY3Rpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9xdWVyeSc7XG5leHBvcnQgKiBmcm9tICcuL3F1aWNrLWFjdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL3NvYmplY3QnO1xuXG5leHBvcnQgKiBmcm9tICcuL3R5cGVzJztcbmV4cG9ydCB7XG4gIFZFUlNJT04sXG4gIFNmRGF0ZSBhcyBEYXRlLFxuICBTZkRhdGUsXG4gIFJlZ2lzdHJ5LFxuICBCcm93c2VyQ2xpZW50LFxuICBSZWNvcmRSZWZlcmVuY2UsXG4gIFJlY29yZFN0cmVhbSxcbiAgcmVnaXN0cnksXG4gIGJyb3dzZXIsXG59O1xuZXhwb3J0IGRlZmF1bHQganNmb3JjZTtcbiJdfQ== | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb3JlLnRzIl0sIm5hbWVzIjpbImpzZm9yY2UiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUE7O0FBQ0E7O0FBRUE7O0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBQ0E7O0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBQ0E7O0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBQ0E7O0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBQ0E7O0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBQ0E7O0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBRUE7O0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O2VBWWVBLGdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGpzZm9yY2UgZnJvbSAnLi9qc2ZvcmNlJztcbmltcG9ydCBTZkRhdGUgZnJvbSAnLi9kYXRlJztcbmltcG9ydCByZWdpc3RyeSwgeyBSZWdpc3RyeSB9IGZyb20gJy4vcmVnaXN0cnknO1xuaW1wb3J0IGJyb3dzZXIsIHsgQnJvd3NlckNsaWVudCB9IGZyb20gJy4vYnJvd3Nlci9jbGllbnQnO1xuaW1wb3J0IFZFUlNJT04gZnJvbSAnLi9WRVJTSU9OJztcblxuaW1wb3J0IFJlY29yZFJlZmVyZW5jZSBmcm9tICcuL3JlY29yZC1yZWZlcmVuY2UnO1xuaW1wb3J0IFJlY29yZFN0cmVhbSBmcm9tICcuL3JlY29yZC1zdHJlYW0nO1xuXG5leHBvcnQgKiBmcm9tICcuL29hdXRoMic7XG5leHBvcnQgKiBmcm9tICcuL2p3dE9BdXRoMic7XG5leHBvcnQgKiBmcm9tICcuL2Nvbm5lY3Rpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9xdWVyeSc7XG5leHBvcnQgKiBmcm9tICcuL3F1aWNrLWFjdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL3NvYmplY3QnO1xuXG5leHBvcnQgKiBmcm9tICcuL3R5cGVzJztcbmV4cG9ydCB7XG4gIFZFUlNJT04sXG4gIFNmRGF0ZSBhcyBEYXRlLFxuICBTZkRhdGUsXG4gIFJlZ2lzdHJ5LFxuICBCcm93c2VyQ2xpZW50LFxuICBSZWNvcmRSZWZlcmVuY2UsXG4gIFJlY29yZFN0cmVhbSxcbiAgcmVnaXN0cnksXG4gIGJyb3dzZXIsXG59O1xuZXhwb3J0IGRlZmF1bHQganNmb3JjZTtcbiJdfQ== |
@@ -9,2 +9,3 @@ /// <reference types="node" /> | ||
import { BrowserClient } from './browser/client'; | ||
import { JwtOAuth2 } from './jwtOAuth2'; | ||
/** | ||
@@ -17,2 +18,3 @@ * | ||
OAuth2: typeof OAuth2; | ||
JwtOAuth2: typeof JwtOAuth2; | ||
SfDate: typeof SfDate; | ||
@@ -19,0 +21,0 @@ Date: typeof SfDate; |
@@ -36,2 +36,4 @@ "use strict"; | ||
var _jwtOAuth = require("./jwtOAuth2"); | ||
/** | ||
@@ -46,2 +48,3 @@ * | ||
(0, _defineProperty3.default)(this, "OAuth2", _oauth.default); | ||
(0, _defineProperty3.default)(this, "JwtOAuth2", _jwtOAuth.JwtOAuth2); | ||
(0, _defineProperty3.default)(this, "SfDate", _date.default); | ||
@@ -76,2 +79,2 @@ (0, _defineProperty3.default)(this, "Date", _date.default); | ||
exports.default = _default; | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9qc2ZvcmNlLnRzIl0sIm5hbWVzIjpbIkpTZm9yY2UiLCJFdmVudEVtaXR0ZXIiLCJWRVJTSU9OIiwiQ29ubmVjdGlvbiIsIk9BdXRoMiIsIlNmRGF0ZSIsIkJyb3dzZXJDbGllbnQiLCJyZWdpc3RyeSIsImNsaWVudCIsInJlZ2lzdGVyTW9kdWxlIiwibmFtZSIsImZhY3RvcnkiLCJqc2ZvcmNlIiwib24iLCJjb25uIiwib2JqIiwidW5kZWZpbmVkIiwiZ2V0IiwiZW51bWVyYWJsZSIsImNvbmZpZ3VyYWJsZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsTUFBTUEsT0FBTixTQUFzQkMsb0JBQXRCLENBQW1DO0FBQUE7QUFBQTtBQUFBLG1EQUNQQyxnQkFETztBQUFBLHNEQUVEQyxtQkFGQztBQUFBLGtEQUdUQyxjQUhTO0FBQUEsa0RBSVRDLGFBSlM7QUFBQSxnREFLWEEsYUFMVztBQUFBLHlEQU1LQyxxQkFOTDtBQUFBLG9EQU9aQyxpQkFQWTtBQUFBLG1EQVFSQyxlQVJRO0FBQUE7O0FBQUE7O0FBVzVCLFNBQVNDLGNBQVQsQ0FDTEMsSUFESyxFQUVMQyxPQUZLLEVBR0w7QUFDQUMsRUFBQUEsT0FBTyxDQUFDQyxFQUFSLENBQVcsZ0JBQVgsRUFBOEJDLElBQUQsSUFBc0I7QUFDakQsUUFBSUMsR0FBUSxHQUFHQyxTQUFmO0FBQ0Esa0NBQXNCRixJQUF0QixFQUE0QkosSUFBNUIsRUFBa0M7QUFDaENPLE1BQUFBLEdBQUcsR0FBRztBQUFBOztBQUNKRixRQUFBQSxHQUFHLFdBQUdBLEdBQUgsdUNBQVVKLE9BQU8sQ0FBQ0csSUFBRCxDQUFwQjtBQUNBLGVBQU9DLEdBQVA7QUFDRCxPQUorQjs7QUFLaENHLE1BQUFBLFVBQVUsRUFBRSxJQUxvQjtBQU1oQ0MsTUFBQUEsWUFBWSxFQUFFO0FBTmtCLEtBQWxDO0FBUUQsR0FWRDtBQVdEOztBQUVELE1BQU1QLE9BQU8sR0FBRyxJQUFJWixPQUFKLEVBQWhCO2VBQ2VZLE8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudEVtaXR0ZXIgfSBmcm9tICdldmVudHMnO1xuaW1wb3J0IFZFUlNJT04gZnJvbSAnLi9WRVJTSU9OJztcbmltcG9ydCBDb25uZWN0aW9uIGZyb20gJy4vY29ubmVjdGlvbic7XG5pbXBvcnQgT0F1dGgyIGZyb20gJy4vb2F1dGgyJztcbmltcG9ydCBTZkRhdGUgZnJvbSAnLi9kYXRlJztcbmltcG9ydCByZWdpc3RyeSwgeyBSZWdpc3RyeSB9IGZyb20gJy4vcmVnaXN0cnknO1xuaW1wb3J0IGNsaWVudCwgeyBCcm93c2VyQ2xpZW50IH0gZnJvbSAnLi9icm93c2VyL2NsaWVudCc7XG5cbi8qKlxuICpcbiAqL1xuY2xhc3MgSlNmb3JjZSBleHRlbmRzIEV2ZW50RW1pdHRlciB7XG4gIFZFUlNJT046IHR5cGVvZiBWRVJTSU9OID0gVkVSU0lPTjtcbiAgQ29ubmVjdGlvbjogdHlwZW9mIENvbm5lY3Rpb24gPSBDb25uZWN0aW9uO1xuICBPQXV0aDI6IHR5cGVvZiBPQXV0aDIgPSBPQXV0aDI7XG4gIFNmRGF0ZTogdHlwZW9mIFNmRGF0ZSA9IFNmRGF0ZTtcbiAgRGF0ZTogdHlwZW9mIFNmRGF0ZSA9IFNmRGF0ZTtcbiAgQnJvd3NlckNsaWVudDogdHlwZW9mIEJyb3dzZXJDbGllbnQgPSBCcm93c2VyQ2xpZW50O1xuICByZWdpc3RyeTogUmVnaXN0cnkgPSByZWdpc3RyeTtcbiAgYnJvd3NlcjogQnJvd3NlckNsaWVudCA9IGNsaWVudDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlZ2lzdGVyTW9kdWxlKFxuICBuYW1lOiBzdHJpbmcsXG4gIGZhY3Rvcnk6IChjb25uOiBDb25uZWN0aW9uKSA9PiBhbnksXG4pIHtcbiAganNmb3JjZS5vbignY29ubmVjdGlvbjpuZXcnLCAoY29ubjogQ29ubmVjdGlvbikgPT4ge1xuICAgIGxldCBvYmo6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoY29ubiwgbmFtZSwge1xuICAgICAgZ2V0KCkge1xuICAgICAgICBvYmogPSBvYmogPz8gZmFjdG9yeShjb25uKTtcbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICAgIH0sXG4gICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgIH0pO1xuICB9KTtcbn1cblxuY29uc3QganNmb3JjZSA9IG5ldyBKU2ZvcmNlKCk7XG5leHBvcnQgZGVmYXVsdCBqc2ZvcmNlO1xuIl19 | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9qc2ZvcmNlLnRzIl0sIm5hbWVzIjpbIkpTZm9yY2UiLCJFdmVudEVtaXR0ZXIiLCJWRVJTSU9OIiwiQ29ubmVjdGlvbiIsIk9BdXRoMiIsIkp3dE9BdXRoMiIsIlNmRGF0ZSIsIkJyb3dzZXJDbGllbnQiLCJyZWdpc3RyeSIsImNsaWVudCIsInJlZ2lzdGVyTW9kdWxlIiwibmFtZSIsImZhY3RvcnkiLCJqc2ZvcmNlIiwib24iLCJjb25uIiwib2JqIiwidW5kZWZpbmVkIiwiZ2V0IiwiZW51bWVyYWJsZSIsImNvbmZpZ3VyYWJsZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsTUFBTUEsT0FBTixTQUFzQkMsb0JBQXRCLENBQW1DO0FBQUE7QUFBQTtBQUFBLG1EQUNQQyxnQkFETztBQUFBLHNEQUVEQyxtQkFGQztBQUFBLGtEQUdUQyxjQUhTO0FBQUEscURBSUhDLG1CQUpHO0FBQUEsa0RBS1RDLGFBTFM7QUFBQSxnREFNWEEsYUFOVztBQUFBLHlEQU9LQyxxQkFQTDtBQUFBLG9EQVFaQyxpQkFSWTtBQUFBLG1EQVNSQyxlQVRRO0FBQUE7O0FBQUE7O0FBWTVCLFNBQVNDLGNBQVQsQ0FDTEMsSUFESyxFQUVMQyxPQUZLLEVBR0w7QUFDQUMsRUFBQUEsT0FBTyxDQUFDQyxFQUFSLENBQVcsZ0JBQVgsRUFBOEJDLElBQUQsSUFBc0I7QUFDakQsUUFBSUMsR0FBUSxHQUFHQyxTQUFmO0FBQ0Esa0NBQXNCRixJQUF0QixFQUE0QkosSUFBNUIsRUFBa0M7QUFDaENPLE1BQUFBLEdBQUcsR0FBRztBQUFBOztBQUNKRixRQUFBQSxHQUFHLFdBQUdBLEdBQUgsdUNBQVVKLE9BQU8sQ0FBQ0csSUFBRCxDQUFwQjtBQUNBLGVBQU9DLEdBQVA7QUFDRCxPQUorQjs7QUFLaENHLE1BQUFBLFVBQVUsRUFBRSxJQUxvQjtBQU1oQ0MsTUFBQUEsWUFBWSxFQUFFO0FBTmtCLEtBQWxDO0FBUUQsR0FWRDtBQVdEOztBQUVELE1BQU1QLE9BQU8sR0FBRyxJQUFJYixPQUFKLEVBQWhCO2VBQ2VhLE8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudEVtaXR0ZXIgfSBmcm9tICdldmVudHMnO1xuaW1wb3J0IFZFUlNJT04gZnJvbSAnLi9WRVJTSU9OJztcbmltcG9ydCBDb25uZWN0aW9uIGZyb20gJy4vY29ubmVjdGlvbic7XG5pbXBvcnQgT0F1dGgyIGZyb20gJy4vb2F1dGgyJztcbmltcG9ydCBTZkRhdGUgZnJvbSAnLi9kYXRlJztcbmltcG9ydCByZWdpc3RyeSwgeyBSZWdpc3RyeSB9IGZyb20gJy4vcmVnaXN0cnknO1xuaW1wb3J0IGNsaWVudCwgeyBCcm93c2VyQ2xpZW50IH0gZnJvbSAnLi9icm93c2VyL2NsaWVudCc7XG5pbXBvcnQgeyBKd3RPQXV0aDIgfSBmcm9tICcuL2p3dE9BdXRoMic7XG5cbi8qKlxuICpcbiAqL1xuY2xhc3MgSlNmb3JjZSBleHRlbmRzIEV2ZW50RW1pdHRlciB7XG4gIFZFUlNJT046IHR5cGVvZiBWRVJTSU9OID0gVkVSU0lPTjtcbiAgQ29ubmVjdGlvbjogdHlwZW9mIENvbm5lY3Rpb24gPSBDb25uZWN0aW9uO1xuICBPQXV0aDI6IHR5cGVvZiBPQXV0aDIgPSBPQXV0aDI7XG4gIEp3dE9BdXRoMjogdHlwZW9mIEp3dE9BdXRoMiA9IEp3dE9BdXRoMjtcbiAgU2ZEYXRlOiB0eXBlb2YgU2ZEYXRlID0gU2ZEYXRlO1xuICBEYXRlOiB0eXBlb2YgU2ZEYXRlID0gU2ZEYXRlO1xuICBCcm93c2VyQ2xpZW50OiB0eXBlb2YgQnJvd3NlckNsaWVudCA9IEJyb3dzZXJDbGllbnQ7XG4gIHJlZ2lzdHJ5OiBSZWdpc3RyeSA9IHJlZ2lzdHJ5O1xuICBicm93c2VyOiBCcm93c2VyQ2xpZW50ID0gY2xpZW50O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVnaXN0ZXJNb2R1bGUoXG4gIG5hbWU6IHN0cmluZyxcbiAgZmFjdG9yeTogKGNvbm46IENvbm5lY3Rpb24pID0+IGFueSxcbikge1xuICBqc2ZvcmNlLm9uKCdjb25uZWN0aW9uOm5ldycsIChjb25uOiBDb25uZWN0aW9uKSA9PiB7XG4gICAgbGV0IG9iajogYW55ID0gdW5kZWZpbmVkO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShjb25uLCBuYW1lLCB7XG4gICAgICBnZXQoKSB7XG4gICAgICAgIG9iaiA9IG9iaiA/PyBmYWN0b3J5KGNvbm4pO1xuICAgICAgICByZXR1cm4gb2JqO1xuICAgICAgfSxcbiAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgfSk7XG4gIH0pO1xufVxuXG5jb25zdCBqc2ZvcmNlID0gbmV3IEpTZm9yY2UoKTtcbmV4cG9ydCBkZWZhdWx0IGpzZm9yY2U7XG4iXX0= |
@@ -254,2 +254,46 @@ import _Object$defineProperty from "@babel/runtime-corejs3/core-js-stable/object/define-property"; | ||
/** | ||
* Will deploy a recently validated deploy request | ||
* | ||
* @param options.id = the deploy ID that's been validated already from a previous checkOnly deploy request | ||
* @param options.rest = a boolean whether or not to use the REST API | ||
* @returns the deploy ID of the recent validation request | ||
*/ | ||
async deployRecentValidation(options) { | ||
const { | ||
id, | ||
rest | ||
} = options; | ||
let response; | ||
if (rest) { | ||
const messageBody = _JSON$stringify({ | ||
validatedDeployRequestId: id | ||
}); | ||
const requestInfo = { | ||
method: 'POST', | ||
url: `${this._conn._baseUrl()}/metadata/deployRequest`, | ||
body: messageBody, | ||
headers: { | ||
'content-type': 'application/json' | ||
} | ||
}; | ||
const requestOptions = { | ||
headers: 'json' | ||
}; // This is the deploy ID of the deployRecentValidation response, not | ||
// the already validated deploy ID (i.e., validateddeployrequestid). | ||
// REST returns an object with an id property, SOAP returns the id as a string directly. | ||
response = (await this._conn.request(requestInfo, requestOptions)).id; | ||
} else { | ||
response = await this._invoke('deployRecentValidation', { | ||
validationId: id | ||
}); | ||
} | ||
return response; | ||
} | ||
/** | ||
* Deploy components into an organization using zipped file representations | ||
@@ -498,2 +542,2 @@ * using the REST Metadata API instead of SOAP | ||
export default MetadataApi; | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hcGkvbWV0YWRhdGEudHMiXSwibmFtZXMiOlsiRXZlbnRFbWl0dGVyIiwiUmVhZGFibGUiLCJGb3JtRGF0YSIsInJlZ2lzdGVyTW9kdWxlIiwiU09BUCIsImlzT2JqZWN0IiwiQXBpU2NoZW1hcyIsImRlYWxsb2NhdGVUeXBlV2l0aE1ldGFkYXRhIiwibWV0YWRhdGEiLCIkIiwibWQiLCJhc3NpZ25UeXBlV2l0aE1ldGFkYXRhIiwidHlwZSIsImNvbnZlcnQiLCJNZXRhZGF0YUFwaSIsImNvbnN0cnVjdG9yIiwiY29ubiIsIl9jb25uIiwiX2ludm9rZSIsIm1ldGhvZCIsIm1lc3NhZ2UiLCJzY2hlbWEiLCJzb2FwRW5kcG9pbnQiLCJ4bWxucyIsImVuZHBvaW50VXJsIiwiaW5zdGFuY2VVcmwiLCJ2ZXJzaW9uIiwicmVzIiwiaW52b2tlIiwicmVzdWx0IiwidW5kZWZpbmVkIiwiY3JlYXRlIiwiaXNBcnJheSIsIlNhdmVSZXN1bHQiLCJyZWFkIiwiZnVsbE5hbWVzIiwiUmVhZFJlc3VsdFNjaGVtYSIsIlJlYWRSZXN1bHQiLCJwcm9wcyIsInJlY29yZHMiLCJ1cGRhdGUiLCJ1cHNlcnQiLCJVcHNlcnRSZXN1bHQiLCJkZWxldGUiLCJyZW5hbWUiLCJvbGRGdWxsTmFtZSIsIm5ld0Z1bGxOYW1lIiwiZGVzY3JpYmUiLCJhc09mVmVyc2lvbiIsIkRlc2NyaWJlTWV0YWRhdGFSZXN1bHQiLCJsaXN0IiwicXVlcmllcyIsIkZpbGVQcm9wZXJ0aWVzIiwiY2hlY2tTdGF0dXMiLCJhc3luY1Byb2Nlc3NJZCIsIkFzeW5jUmVzdWx0IiwiQXN5bmNSZXN1bHRMb2NhdG9yIiwicmV0cmlldmUiLCJyZXF1ZXN0IiwiUmV0cmlldmVSZXN1bHQiLCJSZXRyaWV2ZVJlc3VsdExvY2F0b3IiLCJjaGVja1JldHJpZXZlU3RhdHVzIiwiZGVwbG95UmVzdCIsInppcElucHV0Iiwib3B0aW9ucyIsImZvcm0iLCJhcHBlbmQiLCJjb250ZW50VHlwZSIsImZpbGVuYW1lIiwiZGVwbG95T3B0aW9ucyIsInVybCIsImhlYWRlcnMiLCJnZXRIZWFkZXJzIiwiYm9keSIsImdldEJ1ZmZlciIsIkRlcGxveVJlc3VsdExvY2F0b3IiLCJkZXBsb3kiLCJ6aXBDb250ZW50QjY0IiwicmVzb2x2ZSIsInJlamVjdCIsInBpcGUiLCJidWZzIiwib24iLCJkIiwicHVzaCIsIkJ1ZmZlciIsInRvU3RyaW5nIiwiU3RyaW5nIiwiWmlwRmlsZSIsIkRlcGxveU9wdGlvbnMiLCJEZXBsb3lSZXN1bHQiLCJjaGVja0RlcGxveVN0YXR1cyIsImluY2x1ZGVEZXRhaWxzIiwibWV0YSIsInByb21pc2UiLCJfbWV0YSIsIl9wcm9taXNlIiwidGhlbiIsIm9uUmVzb2x2ZSIsIm9uUmVqZWN0IiwiY2hlY2siLCJfaWQiLCJpZCIsInBvbGwiLCJpbnRlcnZhbCIsInRpbWVvdXQiLCJzdGFydFRpbWUiLCJEYXRlIiwiZ2V0VGltZSIsIm5vdyIsImVyck1zZyIsImVtaXQiLCJFcnJvciIsImRvbmUiLCJlcnIiLCJjb21wbGV0ZSIsInBvbGxJbnRlcnZhbCIsInBvbGxUaW1lb3V0Iiwic3RyZWFtIiwicmVzdWx0U3RyZWFtIiwicmVhZGluZyIsIl9yZWFkIiwiZnJvbSIsInppcEZpbGUiLCJlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTQSxZQUFULFFBQTZCLFFBQTdCO0FBQ0EsU0FBU0MsUUFBVCxRQUF5QixRQUF6QjtBQUNBLE9BQU9DLFFBQVAsTUFBcUIsV0FBckI7QUFDQSxTQUFTQyxjQUFULFFBQStCLFlBQS9CO0FBRUEsT0FBT0MsSUFBUCxNQUFpQixTQUFqQjtBQUNBLFNBQVNDLFFBQVQsUUFBeUIsa0JBQXpCO0FBRUEsU0FDRUMsVUFERixRQWVPLG1CQWZQO0FBZ0JBLGNBQWMsbUJBQWQ7QUFFQTtBQUNBO0FBQ0E7O0FBaUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVNDLDBCQUFULENBQXdEQyxRQUF4RCxFQUF3RTtBQUN0RSxlQUFxQkEsUUFBckI7QUFBQSxRQUFNO0FBQUVDLElBQUFBO0FBQUYsR0FBTjtBQUFBLFFBQWNDLEVBQWQ7O0FBQ0EsU0FBT0EsRUFBUDtBQUNEOztBQUVELFNBQVNDLHNCQUFULENBQWdDSCxRQUFoQyxFQUFpRUksSUFBakUsRUFBK0U7QUFDN0UsUUFBTUMsT0FBTyxHQUFJSCxFQUFEO0FBQXFCLEtBQUMsV0FBRCxHQUFlRTtBQUFwQyxLQUE2Q0YsRUFBN0MsQ0FBaEI7O0FBQ0EsU0FBTyxlQUFjRixRQUFkLElBQTBCLHFCQUFBQSxRQUFRLE1BQVIsQ0FBQUEsUUFBUSxFQUFLSyxPQUFMLENBQWxDLEdBQWtEQSxPQUFPLENBQUNMLFFBQUQsQ0FBaEU7QUFDRDtBQUVEO0FBQ0E7QUFDQTs7O0FBQ0EsT0FBTyxNQUFNTSxXQUFOLENBQW9DO0FBR3pDO0FBQ0Y7QUFDQTs7QUFHRTtBQUNGO0FBQ0E7O0FBR0U7QUFDRjtBQUNBO0FBQ0VDLEVBQUFBLFdBQVcsQ0FBQ0MsSUFBRCxFQUFzQjtBQUFBOztBQUFBLDBDQVZWLElBVVU7O0FBQUEseUNBTFgsS0FLVzs7QUFDL0IsU0FBS0MsS0FBTCxHQUFhRCxJQUFiO0FBQ0Q7QUFFRDtBQUNGO0FBQ0E7QUFDQTtBQUNBOzs7QUFDRSxRQUFNRSxPQUFOLENBQ0VDLE1BREYsRUFFRUMsT0FGRixFQUdFQyxNQUhGLEVBSUU7QUFDQSxVQUFNQyxZQUFZLEdBQUcsSUFBSWxCLElBQUosQ0FBUyxLQUFLYSxLQUFkLEVBQXFCO0FBQ3hDTSxNQUFBQSxLQUFLLEVBQUUseUNBRGlDO0FBRXhDQyxNQUFBQSxXQUFXLEVBQUcsR0FBRSxLQUFLUCxLQUFMLENBQVdRLFdBQVksb0JBQW1CLEtBQUtSLEtBQUwsQ0FBV1MsT0FBUTtBQUZyQyxLQUFyQixDQUFyQjtBQUlBLFVBQU1DLEdBQUcsR0FBRyxNQUFNTCxZQUFZLENBQUNNLE1BQWIsQ0FDaEJULE1BRGdCLEVBRWhCQyxPQUZnQixFQUdoQkMsTUFBTSxHQUFJO0FBQUVRLE1BQUFBLE1BQU0sRUFBRVI7QUFBVixLQUFKLEdBQXdDUyxTQUg5QixFQUloQnhCLFVBSmdCLENBQWxCO0FBTUEsV0FBT3FCLEdBQUcsQ0FBQ0UsTUFBWDtBQUNEO0FBRUQ7QUFDRjtBQUNBOzs7QUFnQkVFLEVBQUFBLE1BQU0sQ0FBQ25CLElBQUQsRUFBZUosUUFBZixFQUFnRDtBQUNwRCxVQUFNd0IsT0FBTyxHQUFHLGVBQWN4QixRQUFkLENBQWhCOztBQUNBQSxJQUFBQSxRQUFRLEdBQUdHLHNCQUFzQixDQUFDSCxRQUFELEVBQVdJLElBQVgsQ0FBakM7QUFDQSxVQUFNUyxNQUFNLEdBQUdXLE9BQU8sR0FBRyxDQUFDMUIsVUFBVSxDQUFDMkIsVUFBWixDQUFILEdBQTZCM0IsVUFBVSxDQUFDMkIsVUFBOUQ7QUFDQSxXQUFPLEtBQUtmLE9BQUwsQ0FBYSxnQkFBYixFQUErQjtBQUFFVixNQUFBQTtBQUFGLEtBQS9CLEVBQTZDYSxNQUE3QyxDQUFQO0FBQ0Q7QUFFRDtBQUNGO0FBQ0E7OztBQWdCRSxRQUFNYSxJQUFOLENBQVd0QixJQUFYLEVBQXlCdUIsU0FBekIsRUFBdUQ7QUFBQTs7QUFDckQsVUFBTUMsZ0JBQWdCLEdBQ3BCeEIsSUFBSSxJQUFJTixVQUFSLEdBQ0s7QUFDQ00sTUFBQUEsSUFBSSxFQUFFTixVQUFVLENBQUMrQixVQUFYLENBQXNCekIsSUFEN0I7QUFFQzBCLE1BQUFBLEtBQUssRUFBRTtBQUNMQyxRQUFBQSxPQUFPLEVBQUUsQ0FBQzNCLElBQUQ7QUFESjtBQUZSLEtBREwsR0FPSU4sVUFBVSxDQUFDK0IsVUFSakI7QUFTQSxVQUFNVixHQUFlLEdBQUcsTUFBTSxLQUFLVCxPQUFMLENBQzVCLGNBRDRCLEVBRTVCO0FBQUVOLE1BQUFBLElBQUY7QUFBUXVCLE1BQUFBO0FBQVIsS0FGNEIsRUFHNUJDLGdCQUg0QixDQUE5QjtBQUtBLFdBQU8sZUFBY0QsU0FBZCxJQUNILGdDQUFBUixHQUFHLENBQUNZLE9BQUosaUJBQWdCaEMsMEJBQWhCLENBREcsR0FFSEEsMEJBQTBCLENBQUNvQixHQUFHLENBQUNZLE9BQUosQ0FBWSxDQUFaLENBQUQsQ0FGOUI7QUFHRDtBQUVEO0FBQ0Y7QUFDQTs7O0FBbUJFQyxFQUFBQSxNQUFNLENBQUM1QixJQUFELEVBQWVKLFFBQWYsRUFBZ0Q7QUFDcEQsVUFBTXdCLE9BQU8sR0FBRyxlQUFjeEIsUUFBZCxDQUFoQjs7QUFDQUEsSUFBQUEsUUFBUSxHQUFHRyxzQkFBc0IsQ0FBQ0gsUUFBRCxFQUFXSSxJQUFYLENBQWpDO0FBQ0EsVUFBTVMsTUFBTSxHQUFHVyxPQUFPLEdBQUcsQ0FBQzFCLFVBQVUsQ0FBQzJCLFVBQVosQ0FBSCxHQUE2QjNCLFVBQVUsQ0FBQzJCLFVBQTlEO0FBQ0EsV0FBTyxLQUFLZixPQUFMLENBQWEsZ0JBQWIsRUFBK0I7QUFBRVYsTUFBQUE7QUFBRixLQUEvQixFQUE2Q2EsTUFBN0MsQ0FBUDtBQUNEO0FBRUQ7QUFDRjtBQUNBOzs7QUFnQkVvQixFQUFBQSxNQUFNLENBQUM3QixJQUFELEVBQWVKLFFBQWYsRUFBZ0Q7QUFDcEQsVUFBTXdCLE9BQU8sR0FBRyxlQUFjeEIsUUFBZCxDQUFoQjs7QUFDQUEsSUFBQUEsUUFBUSxHQUFHRyxzQkFBc0IsQ0FBQ0gsUUFBRCxFQUFXSSxJQUFYLENBQWpDO0FBQ0EsVUFBTVMsTUFBTSxHQUFHVyxPQUFPLEdBQ2xCLENBQUMxQixVQUFVLENBQUNvQyxZQUFaLENBRGtCLEdBRWxCcEMsVUFBVSxDQUFDb0MsWUFGZjtBQUdBLFdBQU8sS0FBS3hCLE9BQUwsQ0FBYSxnQkFBYixFQUErQjtBQUFFVixNQUFBQTtBQUFGLEtBQS9CLEVBQTZDYSxNQUE3QyxDQUFQO0FBQ0Q7QUFFRDtBQUNGO0FBQ0E7OztBQU9Fc0IsRUFBQUEsTUFBTSxDQUFDL0IsSUFBRCxFQUFldUIsU0FBZixFQUE2QztBQUNqRCxVQUFNZCxNQUFNLEdBQUcsZUFBY2MsU0FBZCxJQUNYLENBQUM3QixVQUFVLENBQUMyQixVQUFaLENBRFcsR0FFWDNCLFVBQVUsQ0FBQzJCLFVBRmY7QUFHQSxXQUFPLEtBQUtmLE9BQUwsQ0FBYSxnQkFBYixFQUErQjtBQUFFTixNQUFBQSxJQUFGO0FBQVF1QixNQUFBQTtBQUFSLEtBQS9CLEVBQW9EZCxNQUFwRCxDQUFQO0FBQ0Q7QUFFRDtBQUNGO0FBQ0E7OztBQUNFdUIsRUFBQUEsTUFBTSxDQUNKaEMsSUFESSxFQUVKaUMsV0FGSSxFQUdKQyxXQUhJLEVBSWlCO0FBQ3JCLFdBQU8sS0FBSzVCLE9BQUwsQ0FDTCxnQkFESyxFQUVMO0FBQUVOLE1BQUFBLElBQUY7QUFBUWlDLE1BQUFBLFdBQVI7QUFBcUJDLE1BQUFBO0FBQXJCLEtBRkssRUFHTHhDLFVBQVUsQ0FBQzJCLFVBSE4sQ0FBUDtBQUtEO0FBRUQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0VjLEVBQUFBLFFBQVEsQ0FBQ0MsV0FBRCxFQUF3RDtBQUM5RCxRQUFJLENBQUNBLFdBQUwsRUFBa0I7QUFDaEJBLE1BQUFBLFdBQVcsR0FBRyxLQUFLL0IsS0FBTCxDQUFXUyxPQUF6QjtBQUNEOztBQUNELFdBQU8sS0FBS1IsT0FBTCxDQUNMLGtCQURLLEVBRUw7QUFBRThCLE1BQUFBO0FBQUYsS0FGSyxFQUdMMUMsVUFBVSxDQUFDMkMsc0JBSE4sQ0FBUDtBQUtEO0FBRUQ7QUFDRjtBQUNBOzs7QUFDRUMsRUFBQUEsSUFBSSxDQUNGQyxPQURFLEVBRUZILFdBRkUsRUFHeUI7QUFDM0IsUUFBSSxDQUFDQSxXQUFMLEVBQWtCO0FBQ2hCQSxNQUFBQSxXQUFXLEdBQUcsS0FBSy9CLEtBQUwsQ0FBV1MsT0FBekI7QUFDRDs7QUFDRCxXQUFPLEtBQUtSLE9BQUwsQ0FBYSxjQUFiLEVBQTZCO0FBQUVpQyxNQUFBQSxPQUFGO0FBQVdILE1BQUFBO0FBQVgsS0FBN0IsRUFBdUQsQ0FDNUQxQyxVQUFVLENBQUM4QyxjQURpRCxDQUF2RCxDQUFQO0FBR0Q7QUFFRDtBQUNGO0FBQ0E7OztBQUNFQyxFQUFBQSxXQUFXLENBQUNDLGNBQUQsRUFBeUI7QUFDbEMsVUFBTTNCLEdBQUcsR0FBRyxLQUFLVCxPQUFMLENBQ1YsYUFEVSxFQUVWO0FBQUVvQyxNQUFBQTtBQUFGLEtBRlUsRUFHVmhELFVBQVUsQ0FBQ2lELFdBSEQsQ0FBWjs7QUFLQSxXQUFPLElBQUlDLGtCQUFKLENBQXVCLElBQXZCLEVBQTZCN0IsR0FBN0IsQ0FBUDtBQUNEO0FBRUQ7QUFDRjtBQUNBOzs7QUFDRThCLEVBQUFBLFFBQVEsQ0FBQ0MsT0FBRCxFQUFvQztBQUMxQyxVQUFNL0IsR0FBRyxHQUFHLEtBQUtULE9BQUwsQ0FDVixVQURVLEVBRVY7QUFBRXdDLE1BQUFBO0FBQUYsS0FGVSxFQUdWcEQsVUFBVSxDQUFDcUQsY0FIRCxDQUFaOztBQUtBLFdBQU8sSUFBSUMscUJBQUosQ0FBMEIsSUFBMUIsRUFBZ0NqQyxHQUFoQyxDQUFQO0FBQ0Q7QUFFRDtBQUNGO0FBQ0E7OztBQUNFa0MsRUFBQUEsbUJBQW1CLENBQUNQLGNBQUQsRUFBa0Q7QUFDbkUsV0FBTyxLQUFLcEMsT0FBTCxDQUNMLHFCQURLLEVBRUw7QUFBRW9DLE1BQUFBO0FBQUYsS0FGSyxFQUdMaEQsVUFBVSxDQUFDcUQsY0FITixDQUFQO0FBS0Q7QUFFRDtBQUNGO0FBQ0E7QUFDQTs7O0FBQ0VHLEVBQUFBLFVBQVUsQ0FDUkMsUUFEUSxFQUVSQyxPQUErQixHQUFHLEVBRjFCLEVBR2dCO0FBQ3hCLFVBQU1DLElBQUksR0FBRyxJQUFJL0QsUUFBSixFQUFiO0FBQ0ErRCxJQUFBQSxJQUFJLENBQUNDLE1BQUwsQ0FBWSxNQUFaLEVBQW9CSCxRQUFwQixFQUE4QjtBQUM1QkksTUFBQUEsV0FBVyxFQUFFLGlCQURlO0FBRTVCQyxNQUFBQSxRQUFRLEVBQUU7QUFGa0IsS0FBOUIsRUFGd0IsQ0FPeEI7O0FBQ0FILElBQUFBLElBQUksQ0FBQ0MsTUFBTCxDQUFZLGdCQUFaLEVBQThCLGdCQUFlO0FBQUVHLE1BQUFBLGFBQWEsRUFBRUw7QUFBakIsS0FBZixDQUE5QixFQUEwRTtBQUN4RUcsTUFBQUEsV0FBVyxFQUFFO0FBRDJELEtBQTFFO0FBSUEsVUFBTVQsT0FBb0IsR0FBRztBQUMzQlksTUFBQUEsR0FBRyxFQUFFLHlCQURzQjtBQUUzQm5ELE1BQUFBLE1BQU0sRUFBRSxNQUZtQjtBQUczQm9ELE1BQUFBLE9BQU8sb0JBQU9OLElBQUksQ0FBQ08sVUFBTCxFQUFQLENBSG9CO0FBSTNCQyxNQUFBQSxJQUFJLEVBQUVSLElBQUksQ0FBQ1MsU0FBTDtBQUpxQixLQUE3Qjs7QUFNQSxVQUFNL0MsR0FBRyxHQUFHLEtBQUtWLEtBQUwsQ0FBV3lDLE9BQVgsQ0FBZ0NBLE9BQWhDLENBQVo7O0FBRUEsV0FBTyxJQUFJaUIsbUJBQUosQ0FBd0IsSUFBeEIsRUFBOEJoRCxHQUE5QixDQUFQO0FBQ0Q7QUFFRDtBQUNGO0FBQ0E7OztBQUNFaUQsRUFBQUEsTUFBTSxDQUNKYixRQURJLEVBRUpDLE9BQStCLEdBQUcsRUFGOUIsRUFHb0I7QUFDeEIsVUFBTXJDLEdBQUcsR0FBRyxDQUFDLFlBQVk7QUFDdkIsWUFBTWtELGFBQWEsR0FBRyxNQUFNLGFBQVksQ0FBQ0MsT0FBRCxFQUFVQyxNQUFWLEtBQXFCO0FBQzNELFlBQ0UxRSxRQUFRLENBQUMwRCxRQUFELENBQVIsSUFDQSxVQUFVQSxRQURWLElBRUEsT0FBT0EsUUFBUSxDQUFDaUIsSUFBaEIsS0FBeUIsVUFIM0IsRUFJRTtBQUNBLGdCQUFNQyxJQUFjLEdBQUcsRUFBdkI7QUFDQWxCLFVBQUFBLFFBQVEsQ0FBQ21CLEVBQVQsQ0FBWSxNQUFaLEVBQXFCQyxDQUFELElBQU9GLElBQUksQ0FBQ0csSUFBTCxDQUFVRCxDQUFWLENBQTNCO0FBQ0FwQixVQUFBQSxRQUFRLENBQUNtQixFQUFULENBQVksT0FBWixFQUFxQkgsTUFBckI7QUFDQWhCLFVBQUFBLFFBQVEsQ0FBQ21CLEVBQVQsQ0FBWSxLQUFaLEVBQW1CLE1BQU07QUFDdkJKLFlBQUFBLE9BQU8sQ0FBQyx3QkFBQU8sTUFBTSxNQUFOLENBQUFBLE1BQU0sRUFBUUosSUFBUixDQUFOLENBQW9CSyxRQUFwQixDQUE2QixRQUE3QixDQUFELENBQVA7QUFDRCxXQUZELEVBSkEsQ0FPQTtBQUNELFNBWkQsTUFZTyxJQUFJdkIsUUFBUSxZQUFZc0IsTUFBeEIsRUFBZ0M7QUFDckNQLFVBQUFBLE9BQU8sQ0FBQ2YsUUFBUSxDQUFDdUIsUUFBVCxDQUFrQixRQUFsQixDQUFELENBQVA7QUFDRCxTQUZNLE1BRUEsSUFBSXZCLFFBQVEsWUFBWXdCLE1BQXBCLElBQThCLE9BQU94QixRQUFQLEtBQW9CLFFBQXRELEVBQWdFO0FBQ3JFZSxVQUFBQSxPQUFPLENBQUNmLFFBQUQsQ0FBUDtBQUNELFNBRk0sTUFFQTtBQUNMLGdCQUFNLDBCQUFOO0FBQ0Q7QUFDRixPQXBCMkIsQ0FBNUI7QUFzQkEsYUFBTyxLQUFLN0MsT0FBTCxDQUNMLFFBREssRUFFTDtBQUNFc0UsUUFBQUEsT0FBTyxFQUFFWCxhQURYO0FBRUVZLFFBQUFBLGFBQWEsRUFBRXpCO0FBRmpCLE9BRkssRUFNTDFELFVBQVUsQ0FBQ29GLFlBTk4sQ0FBUDtBQVFELEtBL0JXLEdBQVo7O0FBaUNBLFdBQU8sSUFBSWYsbUJBQUosQ0FBd0IsSUFBeEIsRUFBOEJoRCxHQUE5QixDQUFQO0FBQ0Q7QUFFRDtBQUNGO0FBQ0E7OztBQUNFZ0UsRUFBQUEsaUJBQWlCLENBQ2ZyQyxjQURlLEVBRWZzQyxjQUF1QixHQUFHLEtBRlgsRUFHUTtBQUN2QixXQUFPLEtBQUsxRSxPQUFMLENBQ0wsbUJBREssRUFFTDtBQUNFb0MsTUFBQUEsY0FERjtBQUVFc0MsTUFBQUE7QUFGRixLQUZLLEVBTUx0RixVQUFVLENBQUNvRixZQU5OLENBQVA7QUFRRDs7QUExVndDO0FBNlYzQzs7QUFFQTtBQUNBO0FBQ0E7O0FBQ0EsT0FBTyxNQUFNbEMsa0JBQU4sU0FHR3hELFlBSEgsQ0FHZ0I7QUFLckI7QUFDRjtBQUNBO0FBQ0VlLEVBQUFBLFdBQVcsQ0FBQzhFLElBQUQsRUFBdUJDLE9BQXZCLEVBQXNEO0FBQy9EOztBQUQrRDs7QUFBQTs7QUFBQTs7QUFFL0QsU0FBS0MsS0FBTCxHQUFhRixJQUFiO0FBQ0EsU0FBS0csUUFBTCxHQUFnQkYsT0FBaEI7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0VHLEVBQUFBLElBQUksQ0FDRkMsU0FERSxFQUVGQyxRQUZFLEVBR2M7QUFDaEIsV0FBTyxLQUFLSCxRQUFMLENBQWNDLElBQWQsQ0FBbUJDLFNBQW5CLEVBQThCQyxRQUE5QixDQUFQO0FBQ0Q7QUFFRDtBQUNGO0FBQ0E7OztBQUNFLFFBQU1DLEtBQU4sR0FBYztBQUNaLFVBQU12RSxNQUFNLEdBQUcsTUFBTSxLQUFLbUUsUUFBMUI7QUFDQSxTQUFLSyxHQUFMLEdBQVd4RSxNQUFNLENBQUN5RSxFQUFsQjtBQUNBLFdBQU8sTUFBTSxLQUFLUCxLQUFMLENBQVcxQyxXQUFYLENBQXVCeEIsTUFBTSxDQUFDeUUsRUFBOUIsQ0FBYjtBQUNEO0FBRUQ7QUFDRjtBQUNBOzs7QUFDRUMsRUFBQUEsSUFBSSxDQUFDQyxRQUFELEVBQW1CQyxPQUFuQixFQUFvQztBQUN0QyxVQUFNQyxTQUFTLEdBQUcsSUFBSUMsSUFBSixHQUFXQyxPQUFYLEVBQWxCOztBQUNBLFVBQU1MLElBQUksR0FBRyxZQUFZO0FBQ3ZCLFVBQUk7QUFDRixjQUFNTSxHQUFHLEdBQUcsSUFBSUYsSUFBSixHQUFXQyxPQUFYLEVBQVo7O0FBQ0EsWUFBSUYsU0FBUyxHQUFHRCxPQUFaLEdBQXNCSSxHQUExQixFQUErQjtBQUM3QixjQUFJQyxNQUFNLEdBQUcsbUJBQWI7O0FBQ0EsY0FBSSxLQUFLVCxHQUFULEVBQWM7QUFDWlMsWUFBQUEsTUFBTSxJQUFJLG1CQUFtQixLQUFLVCxHQUFsQztBQUNEOztBQUNELGVBQUtVLElBQUwsQ0FBVSxPQUFWLEVBQW1CLElBQUlDLEtBQUosQ0FBVUYsTUFBVixDQUFuQjtBQUNBO0FBQ0Q7O0FBQ0QsY0FBTWpGLE1BQU0sR0FBRyxNQUFNLEtBQUt1RSxLQUFMLEVBQXJCOztBQUNBLFlBQUl2RSxNQUFNLENBQUNvRixJQUFYLEVBQWlCO0FBQ2YsZUFBS0YsSUFBTCxDQUFVLFVBQVYsRUFBc0JsRixNQUF0QjtBQUNELFNBRkQsTUFFTztBQUNMLGVBQUtrRixJQUFMLENBQVUsVUFBVixFQUFzQmxGLE1BQXRCOztBQUNBLHNCQUFXMEUsSUFBWCxFQUFpQkMsUUFBakI7QUFDRDtBQUNGLE9BakJELENBaUJFLE9BQU9VLEdBQVAsRUFBWTtBQUNaLGFBQUtILElBQUwsQ0FBVSxPQUFWLEVBQW1CRyxHQUFuQjtBQUNEO0FBQ0YsS0FyQkQ7O0FBc0JBLGdCQUFXWCxJQUFYLEVBQWlCQyxRQUFqQjtBQUNEO0FBRUQ7QUFDRjtBQUNBOzs7QUFDRVcsRUFBQUEsUUFBUSxHQUFHO0FBQ1QsV0FBTyxhQUFlLENBQUNyQyxPQUFELEVBQVVDLE1BQVYsS0FBcUI7QUFDekMsV0FBS0csRUFBTCxDQUFRLFVBQVIsRUFBb0JKLE9BQXBCO0FBQ0EsV0FBS0ksRUFBTCxDQUFRLE9BQVIsRUFBaUJILE1BQWpCO0FBQ0EsV0FBS3dCLElBQUwsQ0FBVSxLQUFLUixLQUFMLENBQVdxQixZQUFyQixFQUFtQyxLQUFLckIsS0FBTCxDQUFXc0IsV0FBOUM7QUFDRCxLQUpNLENBQVA7QUFLRDs7QUEzRW9CO0FBOEV2Qjs7QUFDQTtBQUNBO0FBQ0E7O0FBQ0EsT0FBTyxNQUFNekQscUJBQU4sU0FBc0RKLGtCQUF0RCxDQUdMO0FBQ0E7QUFDRjtBQUNBO0FBQ0E7QUFDRSxRQUFNMkQsUUFBTixHQUFpQjtBQUNmLFVBQU10RixNQUFNLEdBQUcsTUFBTSxNQUFNc0YsUUFBTixFQUFyQjtBQUNBLFdBQU8sS0FBS3BCLEtBQUwsQ0FBV2xDLG1CQUFYLENBQStCaEMsTUFBTSxDQUFDeUUsRUFBdEMsQ0FBUDtBQUNEO0FBRUQ7QUFDRjtBQUNBOzs7QUFDRWdCLEVBQUFBLE1BQU0sR0FBRztBQUNQLFVBQU1DLFlBQVksR0FBRyxJQUFJdEgsUUFBSixFQUFyQjtBQUNBLFFBQUl1SCxPQUFPLEdBQUcsS0FBZDs7QUFDQUQsSUFBQUEsWUFBWSxDQUFDRSxLQUFiLEdBQXFCLFlBQVk7QUFDL0IsVUFBSUQsT0FBSixFQUFhO0FBQ1g7QUFDRDs7QUFDREEsTUFBQUEsT0FBTyxHQUFHLElBQVY7O0FBQ0EsVUFBSTtBQUNGLGNBQU0zRixNQUFNLEdBQUcsTUFBTSxLQUFLc0YsUUFBTCxFQUFyQjtBQUNBSSxRQUFBQSxZQUFZLENBQUNuQyxJQUFiLENBQWtCQyxNQUFNLENBQUNxQyxJQUFQLENBQVk3RixNQUFNLENBQUM4RixPQUFuQixFQUE0QixRQUE1QixDQUFsQjtBQUNBSixRQUFBQSxZQUFZLENBQUNuQyxJQUFiLENBQWtCLElBQWxCO0FBQ0QsT0FKRCxDQUlFLE9BQU93QyxDQUFQLEVBQVU7QUFDVkwsUUFBQUEsWUFBWSxDQUFDUixJQUFiLENBQWtCLE9BQWxCLEVBQTJCYSxDQUEzQjtBQUNEO0FBQ0YsS0FaRDs7QUFhQSxXQUFPTCxZQUFQO0FBQ0Q7O0FBOUJEO0FBaUNGOztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFDQSxPQUFPLE1BQU01QyxtQkFBTixTQUFvRG5CLGtCQUFwRCxDQUdMO0FBQ0E7QUFDRjtBQUNBO0FBQ0E7QUFDRSxRQUFNMkQsUUFBTixDQUFldkIsY0FBZixFQUF5QztBQUN2QyxVQUFNL0QsTUFBTSxHQUFHLE1BQU0sTUFBTXNGLFFBQU4sRUFBckI7QUFDQSxXQUFPLEtBQUtwQixLQUFMLENBQVdKLGlCQUFYLENBQTZCOUQsTUFBTSxDQUFDeUUsRUFBcEMsRUFBd0NWLGNBQXhDLENBQVA7QUFDRDs7QUFSRDtBQVdGOztBQUNBO0FBQ0E7QUFDQTs7QUFDQXpGLGNBQWMsQ0FBQyxVQUFELEVBQWNhLElBQUQsSUFBVSxJQUFJRixXQUFKLENBQWdCRSxJQUFoQixDQUF2QixDQUFkO0FBRUEsZUFBZUYsV0FBZiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGUgTWFuYWdlcyBTYWxlc2ZvcmNlIE1ldGFkYXRhIEFQSVxuICogQGF1dGhvciBTaGluaWNoaSBUb21pdGEgPHNoaW5pY2hpLnRvbWl0YUBnbWFpbC5jb20+XG4gKi9cbmltcG9ydCB7IEV2ZW50RW1pdHRlciB9IGZyb20gJ2V2ZW50cyc7XG5pbXBvcnQgeyBSZWFkYWJsZSB9IGZyb20gJ3N0cmVhbSc7XG5pbXBvcnQgRm9ybURhdGEgZnJvbSAnZm9ybS1kYXRhJztcbmltcG9ydCB7IHJlZ2lzdGVyTW9kdWxlIH0gZnJvbSAnLi4vanNmb3JjZSc7XG5pbXBvcnQgQ29ubmVjdGlvbiBmcm9tICcuLi9jb25uZWN0aW9uJztcbmltcG9ydCBTT0FQIGZyb20gJy4uL3NvYXAnO1xuaW1wb3J0IHsgaXNPYmplY3QgfSBmcm9tICcuLi91dGlsL2Z1bmN0aW9uJztcbmltcG9ydCB7IFNjaGVtYSwgU29hcFNjaGVtYURlZiwgU29hcFNjaGVtYSwgSHR0cFJlcXVlc3QgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQge1xuICBBcGlTY2hlbWFzLFxuICBNZXRhZGF0YSxcbiAgUmVhZFJlc3VsdCxcbiAgU2F2ZVJlc3VsdCxcbiAgVXBzZXJ0UmVzdWx0LFxuICBMaXN0TWV0YWRhdGFRdWVyeSxcbiAgRmlsZVByb3BlcnRpZXMsXG4gIERlc2NyaWJlTWV0YWRhdGFSZXN1bHQsXG4gIFJldHJpZXZlUmVxdWVzdCxcbiAgRGVwbG95T3B0aW9ucyxcbiAgUmV0cmlldmVSZXN1bHQsXG4gIERlcGxveVJlc3VsdCxcbiAgQXN5bmNSZXN1bHQsXG4gIEFwaVNjaGVtYVR5cGVzLFxufSBmcm9tICcuL21ldGFkYXRhL3NjaGVtYSc7XG5leHBvcnQgKiBmcm9tICcuL21ldGFkYXRhL3NjaGVtYSc7XG5cbi8qKlxuICpcbiAqL1xudHlwZSBNZXRhZGF0YVR5cGVfPFxuICBLIGV4dGVuZHMga2V5b2YgQXBpU2NoZW1hVHlwZXMgPSBrZXlvZiBBcGlTY2hlbWFUeXBlc1xuPiA9IEsgZXh0ZW5kcyBrZXlvZiBBcGlTY2hlbWFUeXBlc1xuICA/IEFwaVNjaGVtYVR5cGVzW0tdIGV4dGVuZHMgTWV0YWRhdGFcbiAgICA/IEtcbiAgICA6IG5ldmVyXG4gIDogbmV2ZXI7XG5cbmV4cG9ydCB0eXBlIE1ldGFkYXRhVHlwZSA9IE1ldGFkYXRhVHlwZV87XG5cbmV4cG9ydCB0eXBlIE1ldGFkYXRhRGVmaW5pdGlvbjxcbiAgVCBleHRlbmRzIHN0cmluZyxcbiAgTSBleHRlbmRzIE1ldGFkYXRhID0gTWV0YWRhdGFcbj4gPSBNZXRhZGF0YSBleHRlbmRzIE1cbiAgPyBUIGV4dGVuZHMga2V5b2YgQXBpU2NoZW1hVHlwZXMgJiBNZXRhZGF0YVR5cGVcbiAgICA/IEFwaVNjaGVtYVR5cGVzW1RdIGV4dGVuZHMgTWV0YWRhdGFcbiAgICAgID8gQXBpU2NoZW1hVHlwZXNbVF1cbiAgICAgIDogTWV0YWRhdGFcbiAgICA6IE1ldGFkYXRhXG4gIDogTTtcblxudHlwZSBEZWVwUGFydGlhbDxUPiA9IFQgZXh0ZW5kcyBhbnlbXVxuICA/IERlZXBQYXJ0aWFsPFRbbnVtYmVyXT5bXVxuICA6IFQgZXh0ZW5kcyBvYmplY3RcbiAgPyB7IFtLIGluIGtleW9mIFRdPzogRGVlcFBhcnRpYWw8VFtLXT4gfVxuICA6IFQ7XG5cbmV4cG9ydCB0eXBlIElucHV0TWV0YWRhdGFEZWZpbml0aW9uPFxuICBUIGV4dGVuZHMgc3RyaW5nLFxuICBNIGV4dGVuZHMgTWV0YWRhdGEgPSBNZXRhZGF0YVxuPiA9IERlZXBQYXJ0aWFsPE1ldGFkYXRhRGVmaW5pdGlvbjxULCBNPj47XG5cbi8qKlxuICpcbiAqL1xuZnVuY3Rpb24gZGVhbGxvY2F0ZVR5cGVXaXRoTWV0YWRhdGE8TSBleHRlbmRzIE1ldGFkYXRhPihtZXRhZGF0YTogTSk6IE0ge1xuICBjb25zdCB7ICQsIC4uLm1kIH0gPSBtZXRhZGF0YSBhcyBhbnk7XG4gIHJldHVybiBtZDtcbn1cblxuZnVuY3Rpb24gYXNzaWduVHlwZVdpdGhNZXRhZGF0YShtZXRhZGF0YTogTWV0YWRhdGEgfCBNZXRhZGF0YVtdLCB0eXBlOiBzdHJpbmcpIHtcbiAgY29uc3QgY29udmVydCA9IChtZDogTWV0YWRhdGEpID0+ICh7IFsnQHhzaTp0eXBlJ106IHR5cGUsIC4uLm1kIH0pO1xuICByZXR1cm4gQXJyYXkuaXNBcnJheShtZXRhZGF0YSkgPyBtZXRhZGF0YS5tYXAoY29udmVydCkgOiBjb252ZXJ0KG1ldGFkYXRhKTtcbn1cblxuLyoqXG4gKiBDbGFzcyBmb3IgU2FsZXNmb3JjZSBNZXRhZGF0YSBBUElcbiAqL1xuZXhwb3J0IGNsYXNzIE1ldGFkYXRhQXBpPFMgZXh0ZW5kcyBTY2hlbWE+IHtcbiAgX2Nvbm46IENvbm5lY3Rpb248Uz47XG5cbiAgLyoqXG4gICAqIFBvbGxpbmcgaW50ZXJ2YWwgaW4gbWlsbGlzZWNvbmRzXG4gICAqL1xuICBwb2xsSW50ZXJ2YWw6IG51bWJlciA9IDEwMDA7XG5cbiAgLyoqXG4gICAqIFBvbGxpbmcgdGltZW91dCBpbiBtaWxsaXNlY29uZHNcbiAgICovXG4gIHBvbGxUaW1lb3V0OiBudW1iZXIgPSAxMDAwMDtcblxuICAvKipcbiAgICpcbiAgICovXG4gIGNvbnN0cnVjdG9yKGNvbm46IENvbm5lY3Rpb248Uz4pIHtcbiAgICB0aGlzLl9jb25uID0gY29ubjtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxsIE1ldGFkYXRhIEFQSSBTT0FQIGVuZHBvaW50XG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBhc3luYyBfaW52b2tlKFxuICAgIG1ldGhvZDogc3RyaW5nLFxuICAgIG1lc3NhZ2U6IG9iamVjdCxcbiAgICBzY2hlbWE/OiBTb2FwU2NoZW1hIHwgU29hcFNjaGVtYURlZixcbiAgKSB7XG4gICAgY29uc3Qgc29hcEVuZHBvaW50ID0gbmV3IFNPQVAodGhpcy5fY29ubiwge1xuICAgICAgeG1sbnM6ICdodHRwOi8vc29hcC5zZm9yY2UuY29tLzIwMDYvMDQvbWV0YWRhdGEnLFxuICAgICAgZW5kcG9pbnRVcmw6IGAke3RoaXMuX2Nvbm4uaW5zdGFuY2VVcmx9L3NlcnZpY2VzL1NvYXAvbS8ke3RoaXMuX2Nvbm4udmVyc2lvbn1gLFxuICAgIH0pO1xuICAgIGNvbnN0IHJlcyA9IGF3YWl0IHNvYXBFbmRwb2ludC5pbnZva2UoXG4gICAgICBtZXRob2QsXG4gICAgICBtZXNzYWdlLFxuICAgICAgc2NoZW1hID8gKHsgcmVzdWx0OiBzY2hlbWEgfSBhcyBTb2FwU2NoZW1hKSA6IHVuZGVmaW5lZCxcbiAgICAgIEFwaVNjaGVtYXMsXG4gICAgKTtcbiAgICByZXR1cm4gcmVzLnJlc3VsdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgb25lIG9yIG1vcmUgbmV3IG1ldGFkYXRhIGNvbXBvbmVudHMgdG8gdGhlIG9yZ2FuaXphdGlvbi5cbiAgICovXG4gIGNyZWF0ZTxcbiAgICBNIGV4dGVuZHMgTWV0YWRhdGEgPSBNZXRhZGF0YSxcbiAgICBUIGV4dGVuZHMgTWV0YWRhdGFUeXBlID0gTWV0YWRhdGFUeXBlLFxuICAgIE1EIGV4dGVuZHMgSW5wdXRNZXRhZGF0YURlZmluaXRpb248VCwgTT4gPSBJbnB1dE1ldGFkYXRhRGVmaW5pdGlvbjxULCBNPlxuICA+KHR5cGU6IFQsIG1ldGFkYXRhOiBNRFtdKTogUHJvbWlzZTxTYXZlUmVzdWx0W10+O1xuICBjcmVhdGU8XG4gICAgTSBleHRlbmRzIE1ldGFkYXRhID0gTWV0YWRhdGEsXG4gICAgVCBleHRlbmRzIE1ldGFkYXRhVHlwZSA9IE1ldGFkYXRhVHlwZSxcbiAgICBNRCBleHRlbmRzIElucHV0TWV0YWRhdGFEZWZpbml0aW9uPFQsIE0+ID0gSW5wdXRNZXRhZGF0YURlZmluaXRpb248VCwgTT5cbiAgPih0eXBlOiBULCBtZXRhZGF0YTogTUQpOiBQcm9taXNlPFNhdmVSZXN1bHQ+O1xuICBjcmVhdGU8XG4gICAgTSBleHRlbmRzIE1ldGFkYXRhID0gTWV0YWRhdGEsXG4gICAgVCBleHRlbmRzIE1ldGFkYXRhVHlwZSA9IE1ldGFkYXRhVHlwZSxcbiAgICBNRCBleHRlbmRzIElucHV0TWV0YWRhdGFEZWZpbml0aW9uPFQsIE0+ID0gSW5wdXRNZXRhZGF0YURlZmluaXRpb248VCwgTT5cbiAgPih0eXBlOiBULCBtZXRhZGF0YTogTUQgfCBNRFtdKTogUHJvbWlzZTxTYXZlUmVzdWx0IHwgU2F2ZVJlc3VsdFtdPjtcbiAgY3JlYXRlKHR5cGU6IHN0cmluZywgbWV0YWRhdGE6IE1ldGFkYXRhIHwgTWV0YWRhdGFbXSkge1xuICAgIGNvbnN0IGlzQXJyYXkgPSBBcnJheS5pc0FycmF5KG1ldGFkYXRhKTtcbiAgICBtZXRhZGF0YSA9IGFzc2lnblR5cGVXaXRoTWV0YWRhdGEobWV0YWRhdGEsIHR5cGUpO1xuICAgIGNvbnN0IHNjaGVtYSA9IGlzQXJyYXkgPyBbQXBpU2NoZW1hcy5TYXZlUmVzdWx0XSA6IEFwaVNjaGVtYXMuU2F2ZVJlc3VsdDtcbiAgICByZXR1cm4gdGhpcy5faW52b2tlKCdjcmVhdGVNZXRhZGF0YScsIHsgbWV0YWRhdGEgfSwgc2NoZW1hKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWFkIHNwZWNpZmllZCBtZXRhZGF0YSBjb21wb25lbnRzIGluIHRoZSBvcmdhbml6YXRpb24uXG4gICAqL1xuICByZWFkPFxuICAgIE0gZXh0ZW5kcyBNZXRhZGF0YSA9IE1ldGFkYXRhLFxuICAgIFQgZXh0ZW5kcyBNZXRhZGF0YVR5cGUgPSBNZXRhZGF0YVR5cGUsXG4gICAgTUQgZXh0ZW5kcyBNZXRhZGF0YURlZmluaXRpb248VCwgTT4gPSBNZXRhZGF0YURlZmluaXRpb248VCwgTT5cbiAgPih0eXBlOiBULCBmdWxsTmFtZXM6IHN0cmluZ1tdKTogUHJvbWlzZTxNRFtdPjtcbiAgcmVhZDxcbiAgICBNIGV4dGVuZHMgTWV0YWRhdGEgPSBNZXRhZGF0YSxcbiAgICBUIGV4dGVuZHMgTWV0YWRhdGFUeXBlID0gTWV0YWRhdGFUeXBlLFxuICAgIE1EIGV4dGVuZHMgTWV0YWRhdGFEZWZpbml0aW9uPFQsIE0+ID0gTWV0YWRhdGFEZWZpbml0aW9uPFQsIE0+XG4gID4odHlwZTogVCwgZnVsbE5hbWVzOiBzdHJpbmcpOiBQcm9taXNlPE1EPjtcbiAgcmVhZDxcbiAgICBNIGV4dGVuZHMgTWV0YWRhdGEgPSBNZXRhZGF0YSxcbiAgICBUIGV4dGVuZHMgTWV0YWRhdGFUeXBlID0gTWV0YWRhdGFUeXBlLFxuICAgIE1EIGV4dGVuZHMgTWV0YWRhdGFEZWZpbml0aW9uPFQsIE0+ID0gTWV0YWRhdGFEZWZpbml0aW9uPFQsIE0+XG4gID4odHlwZTogVCwgZnVsbE5hbWVzOiBzdHJpbmcgfCBzdHJpbmdbXSk6IFByb21pc2U8TUQgfCBNRFtdPjtcbiAgYXN5bmMgcmVhZCh0eXBlOiBzdHJpbmcsIGZ1bGxOYW1lczogc3RyaW5nIHwgc3RyaW5nW10pIHtcbiAgICBjb25zdCBSZWFkUmVzdWx0U2NoZW1hID1cbiAgICAgIHR5cGUgaW4gQXBpU2NoZW1hc1xuICAgICAgICA/ICh7XG4gICAgICAgICAgICB0eXBlOiBBcGlTY2hlbWFzLlJlYWRSZXN1bHQudHlwZSxcbiAgICAgICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgICAgIHJlY29yZHM6IFt0eXBlXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSBhcyBjb25zdClcbiAgICAgICAgOiBBcGlTY2hlbWFzLlJlYWRSZXN1bHQ7XG4gICAgY29uc3QgcmVzOiBSZWFkUmVzdWx0ID0gYXdhaXQgdGhpcy5faW52b2tlKFxuICAgICAgJ3JlYWRNZXRhZGF0YScsXG4gICAgICB7IHR5cGUsIGZ1bGxOYW1lcyB9LFxuICAgICAgUmVhZFJlc3VsdFNjaGVtYSxcbiAgICApO1xuICAgIHJldHVybiBBcnJheS5pc0FycmF5KGZ1bGxOYW1lcylcbiAgICAgID8gcmVzLnJlY29yZHMubWFwKGRlYWxsb2NhdGVUeXBlV2l0aE1ldGFkYXRhKVxuICAgICAgOiBkZWFsbG9jYXRlVHlwZVdpdGhNZXRhZGF0YShyZXMucmVjb3Jkc1swXSk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIG9uZSBvciBtb3JlIG1ldGFkYXRhIGNvbXBvbmVudHMgaW4gdGhlIG9yZ2FuaXphdGlvbi5cbiAgICovXG4gIHVwZGF0ZTxcbiAgICBNIGV4dGVuZHMgTWV0YWRhdGEgPSBNZXRhZGF0YSxcbiAgICBUIGV4dGVuZHMgc3RyaW5nID0gc3RyaW5nLFxuICAgIE1EIGV4dGVuZHMgSW5wdXRNZXRhZGF0YURlZmluaXRpb248VCwgTT4gPSBJbnB1dE1ldGFkYXRhRGVmaW5pdGlvbjxULCBNPlxuICA+KHR5cGU6IFQsIG1ldGFkYXRhOiBQYXJ0aWFsPE1EPltdKTogUHJvbWlzZTxTYXZlUmVzdWx0W10+O1xuICB1cGRhdGU8XG4gICAgTSBleHRlbmRzIE1ldGFkYXRhID0gTWV0YWRhdGEsXG4gICAgVCBleHRlbmRzIHN0cmluZyA9IHN0cmluZyxcbiAgICBNRCBleHRlbmRzIElucHV0TWV0YWRhdGFEZWZpbml0aW9uPFQsIE0+ID0gSW5wdXRNZXRhZGF0YURlZmluaXRpb248VCwgTT5cbiAgPih0eXBlOiBULCBtZXRhZGF0YTogUGFydGlhbDxNRD4pOiBQcm9taXNlPFNhdmVSZXN1bHQ+O1xuICB1cGRhdGU8XG4gICAgTSBleHRlbmRzIE1ldGFkYXRhID0gTWV0YWRhdGEsXG4gICAgVCBleHRlbmRzIHN0cmluZyA9IHN0cmluZyxcbiAgICBNRCBleHRlbmRzIElucHV0TWV0YWRhdGFEZWZpbml0aW9uPFQsIE0+ID0gSW5wdXRNZXRhZGF0YURlZmluaXRpb248VCwgTT5cbiAgPihcbiAgICB0eXBlOiBULFxuICAgIG1ldGFkYXRhOiBQYXJ0aWFsPE1EPiB8IFBhcnRpYWw8TUQ+W10sXG4gICk6IFByb21pc2U8U2F2ZVJlc3VsdCB8IFNhdmVSZXN1bHRbXT47XG4gIHVwZGF0ZSh0eXBlOiBzdHJpbmcsIG1ldGFkYXRhOiBNZXRhZGF0YSB8IE1ldGFkYXRhW10pIHtcbiAgICBjb25zdCBpc0FycmF5ID0gQXJyYXkuaXNBcnJheShtZXRhZGF0YSk7XG4gICAgbWV0YWRhdGEgPSBhc3NpZ25UeXBlV2l0aE1ldGFkYXRhKG1ldGFkYXRhLCB0eXBlKTtcbiAgICBjb25zdCBzY2hlbWEgPSBpc0FycmF5ID8gW0FwaVNjaGVtYXMuU2F2ZVJlc3VsdF0gOiBBcGlTY2hlbWFzLlNhdmVSZXN1bHQ7XG4gICAgcmV0dXJuIHRoaXMuX2ludm9rZSgndXBkYXRlTWV0YWRhdGEnLCB7IG1ldGFkYXRhIH0sIHNjaGVtYSk7XG4gIH1cblxuICAvKipcbiAgICogVXBzZXJ0IG9uZSBvciBtb3JlIGNvbXBvbmVudHMgaW4geW91ciBvcmdhbml6YXRpb24ncyBkYXRhLlxuICAgKi9cbiAgdXBzZXJ0PFxuICAgIE0gZXh0ZW5kcyBNZXRhZGF0YSA9IE1ldGFkYXRhLFxuICAgIFQgZXh0ZW5kcyBzdHJpbmcgPSBzdHJpbmcsXG4gICAgTUQgZXh0ZW5kcyBJbnB1dE1ldGFkYXRhRGVmaW5pdGlvbjxULCBNPiA9IElucHV0TWV0YWRhdGFEZWZpbml0aW9uPFQsIE0+XG4gID4odHlwZTogVCwgbWV0YWRhdGE6IE1EW10pOiBQcm9taXNlPFVwc2VydFJlc3VsdFtdPjtcbiAgdXBzZXJ0PFxuICAgIE0gZXh0ZW5kcyBNZXRhZGF0YSA9IE1ldGFkYXRhLFxuICAgIFQgZXh0ZW5kcyBzdHJpbmcgPSBzdHJpbmcsXG4gICAgTUQgZXh0ZW5kcyBJbnB1dE1ldGFkYXRhRGVmaW5pdGlvbjxULCBNPiA9IElucHV0TWV0YWRhdGFEZWZpbml0aW9uPFQsIE0+XG4gID4odHlwZTogVCwgbWV0YWRhdGE6IE1EKTogUHJvbWlzZTxVcHNlcnRSZXN1bHQ+O1xuICB1cHNlcnQ8XG4gICAgTSBleHRlbmRzIE1ldGFkYXRhID0gTWV0YWRhdGEsXG4gICAgVCBleHRlbmRzIHN0cmluZyA9IHN0cmluZyxcbiAgICBNRCBleHRlbmRzIElucHV0TWV0YWRhdGFEZWZpbml0aW9uPFQsIE0+ID0gSW5wdXRNZXRhZGF0YURlZmluaXRpb248VCwgTT5cbiAgPih0eXBlOiBULCBtZXRhZGF0YTogTUQgfCBNRFtdKTogUHJvbWlzZTxVcHNlcnRSZXN1bHQgfCBVcHNlcnRSZXN1bHRbXT47XG4gIHVwc2VydCh0eXBlOiBzdHJpbmcsIG1ldGFkYXRhOiBNZXRhZGF0YSB8IE1ldGFkYXRhW10pIHtcbiAgICBjb25zdCBpc0FycmF5ID0gQXJyYXkuaXNBcnJheShtZXRhZGF0YSk7XG4gICAgbWV0YWRhdGEgPSBhc3NpZ25UeXBlV2l0aE1ldGFkYXRhKG1ldGFkYXRhLCB0eXBlKTtcbiAgICBjb25zdCBzY2hlbWEgPSBpc0FycmF5XG4gICAgICA/IFtBcGlTY2hlbWFzLlVwc2VydFJlc3VsdF1cbiAgICAgIDogQXBpU2NoZW1hcy5VcHNlcnRSZXN1bHQ7XG4gICAgcmV0dXJuIHRoaXMuX2ludm9rZSgndXBzZXJ0TWV0YWRhdGEnLCB7IG1ldGFkYXRhIH0sIHNjaGVtYSk7XG4gIH1cblxuICAvKipcbiAgICogRGVsZXRlcyBzcGVjaWZpZWQgbWV0YWRhdGEgY29tcG9uZW50cyBpbiB0aGUgb3JnYW5pemF0aW9uLlxuICAgKi9cbiAgZGVsZXRlKHR5cGU6IHN0cmluZywgZnVsbE5hbWVzOiBzdHJpbmdbXSk6IFByb21pc2U8U2F2ZVJlc3VsdFtdPjtcbiAgZGVsZXRlKHR5cGU6IHN0cmluZywgZnVsbE5hbWVzOiBzdHJpbmcpOiBQcm9taXNlPFNhdmVSZXN1bHQ+O1xuICBkZWxldGUoXG4gICAgdHlwZTogc3RyaW5nLFxuICAgIGZ1bGxOYW1lczogc3RyaW5nIHwgc3RyaW5nW10sXG4gICk6IFByb21pc2U8U2F2ZVJlc3VsdCB8IFNhdmVSZXN1bHRbXT47XG4gIGRlbGV0ZSh0eXBlOiBzdHJpbmcsIGZ1bGxOYW1lczogc3RyaW5nIHwgc3RyaW5nW10pIHtcbiAgICBjb25zdCBzY2hlbWEgPSBBcnJheS5pc0FycmF5KGZ1bGxOYW1lcylcbiAgICAgID8gW0FwaVNjaGVtYXMuU2F2ZVJlc3VsdF1cbiAgICAgIDogQXBpU2NoZW1hcy5TYXZlUmVzdWx0O1xuICAgIHJldHVybiB0aGlzLl9pbnZva2UoJ2RlbGV0ZU1ldGFkYXRhJywgeyB0eXBlLCBmdWxsTmFtZXMgfSwgc2NoZW1hKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW5hbWUgZnVsbG5hbWUgb2YgYSBtZXRhZGF0YSBjb21wb25lbnQgaW4gdGhlIG9yZ2FuaXphdGlvblxuICAgKi9cbiAgcmVuYW1lKFxuICAgIHR5cGU6IHN0cmluZyxcbiAgICBvbGRGdWxsTmFtZTogc3RyaW5nLFxuICAgIG5ld0Z1bGxOYW1lOiBzdHJpbmcsXG4gICk6IFByb21pc2U8U2F2ZVJlc3VsdD4ge1xuICAgIHJldHVybiB0aGlzLl9pbnZva2UoXG4gICAgICAncmVuYW1lTWV0YWRhdGEnLFxuICAgICAgeyB0eXBlLCBvbGRGdWxsTmFtZSwgbmV3RnVsbE5hbWUgfSxcbiAgICAgIEFwaVNjaGVtYXMuU2F2ZVJlc3VsdCxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlcyB0aGUgbWV0YWRhdGEgd2hpY2ggZGVzY3JpYmVzIHlvdXIgb3JnYW5pemF0aW9uLCBpbmNsdWRpbmcgQXBleCBjbGFzc2VzIGFuZCB0cmlnZ2VycyxcbiAgICogY3VzdG9tIG9iamVjdHMsIGN1c3RvbSBmaWVsZHMgb24gc3RhbmRhcmQgb2JqZWN0cywgdGFiIHNldHMgdGhhdCBkZWZpbmUgYW4gYXBwLFxuICAgKiBhbmQgbWFueSBvdGhlciBjb21wb25lbnRzLlxuICAgKi9cbiAgZGVzY3JpYmUoYXNPZlZlcnNpb24/OiBzdHJpbmcpOiBQcm9taXNlPERlc2NyaWJlTWV0YWRhdGFSZXN1bHQ+IHtcbiAgICBpZiAoIWFzT2ZWZXJzaW9uKSB7XG4gICAgICBhc09mVmVyc2lvbiA9IHRoaXMuX2Nvbm4udmVyc2lvbjtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX2ludm9rZShcbiAgICAgICdkZXNjcmliZU1ldGFkYXRhJyxcbiAgICAgIHsgYXNPZlZlcnNpb24gfSxcbiAgICAgIEFwaVNjaGVtYXMuRGVzY3JpYmVNZXRhZGF0YVJlc3VsdCxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlcyBwcm9wZXJ0eSBpbmZvcm1hdGlvbiBhYm91dCBtZXRhZGF0YSBjb21wb25lbnRzIGluIHlvdXIgb3JnYW5pemF0aW9uXG4gICAqL1xuICBsaXN0KFxuICAgIHF1ZXJpZXM6IExpc3RNZXRhZGF0YVF1ZXJ5IHwgTGlzdE1ldGFkYXRhUXVlcnlbXSxcbiAgICBhc09mVmVyc2lvbj86IHN0cmluZyxcbiAgKTogUHJvbWlzZTxGaWxlUHJvcGVydGllc1tdPiB7XG4gICAgaWYgKCFhc09mVmVyc2lvbikge1xuICAgICAgYXNPZlZlcnNpb24gPSB0aGlzLl9jb25uLnZlcnNpb247XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9pbnZva2UoJ2xpc3RNZXRhZGF0YScsIHsgcXVlcmllcywgYXNPZlZlcnNpb24gfSwgW1xuICAgICAgQXBpU2NoZW1hcy5GaWxlUHJvcGVydGllcyxcbiAgICBdKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgdGhlIHN0YXR1cyBvZiBhc3luY2hyb25vdXMgbWV0YWRhdGEgY2FsbHNcbiAgICovXG4gIGNoZWNrU3RhdHVzKGFzeW5jUHJvY2Vzc0lkOiBzdHJpbmcpIHtcbiAgICBjb25zdCByZXMgPSB0aGlzLl9pbnZva2UoXG4gICAgICAnY2hlY2tTdGF0dXMnLFxuICAgICAgeyBhc3luY1Byb2Nlc3NJZCB9LFxuICAgICAgQXBpU2NoZW1hcy5Bc3luY1Jlc3VsdCxcbiAgICApO1xuICAgIHJldHVybiBuZXcgQXN5bmNSZXN1bHRMb2NhdG9yKHRoaXMsIHJlcyk7XG4gIH1cblxuICAvKipcbiAgICogUmV0cmlldmVzIFhNTCBmaWxlIHJlcHJlc2VudGF0aW9ucyBvZiBjb21wb25lbnRzIGluIGFuIG9yZ2FuaXphdGlvblxuICAgKi9cbiAgcmV0cmlldmUocmVxdWVzdDogUGFydGlhbDxSZXRyaWV2ZVJlcXVlc3Q+KSB7XG4gICAgY29uc3QgcmVzID0gdGhpcy5faW52b2tlKFxuICAgICAgJ3JldHJpZXZlJyxcbiAgICAgIHsgcmVxdWVzdCB9LFxuICAgICAgQXBpU2NoZW1hcy5SZXRyaWV2ZVJlc3VsdCxcbiAgICApO1xuICAgIHJldHVybiBuZXcgUmV0cmlldmVSZXN1bHRMb2NhdG9yKHRoaXMsIHJlcyk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIHRoZSBzdGF0dXMgb2YgZGVjbGFyYXRpdmUgbWV0YWRhdGEgY2FsbCByZXRyaWV2ZSgpIGFuZCByZXR1cm5zIHRoZSB6aXAgZmlsZSBjb250ZW50c1xuICAgKi9cbiAgY2hlY2tSZXRyaWV2ZVN0YXR1cyhhc3luY1Byb2Nlc3NJZDogc3RyaW5nKTogUHJvbWlzZTxSZXRyaWV2ZVJlc3VsdD4ge1xuICAgIHJldHVybiB0aGlzLl9pbnZva2UoXG4gICAgICAnY2hlY2tSZXRyaWV2ZVN0YXR1cycsXG4gICAgICB7IGFzeW5jUHJvY2Vzc0lkIH0sXG4gICAgICBBcGlTY2hlbWFzLlJldHJpZXZlUmVzdWx0LFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogRGVwbG95IGNvbXBvbmVudHMgaW50byBhbiBvcmdhbml6YXRpb24gdXNpbmcgemlwcGVkIGZpbGUgcmVwcmVzZW50YXRpb25zXG4gICAqIHVzaW5nIHRoZSBSRVNUIE1ldGFkYXRhIEFQSSBpbnN0ZWFkIG9mIFNPQVBcbiAgICovXG4gIGRlcGxveVJlc3QoXG4gICAgemlwSW5wdXQ6IEJ1ZmZlcixcbiAgICBvcHRpb25zOiBQYXJ0aWFsPERlcGxveU9wdGlvbnM+ID0ge30sXG4gICk6IERlcGxveVJlc3VsdExvY2F0b3I8Uz4ge1xuICAgIGNvbnN0IGZvcm0gPSBuZXcgRm9ybURhdGEoKTtcbiAgICBmb3JtLmFwcGVuZCgnZmlsZScsIHppcElucHV0LCB7XG4gICAgICBjb250ZW50VHlwZTogJ2FwcGxpY2F0aW9uL3ppcCcsXG4gICAgICBmaWxlbmFtZTogJ3BhY2thZ2UueG1sJyxcbiAgICB9KTtcblxuICAgIC8vIEFkZCB0aGUgZGVwbG95IG9wdGlvbnNcbiAgICBmb3JtLmFwcGVuZCgnZW50aXR5X2NvbnRlbnQnLCBKU09OLnN0cmluZ2lmeSh7IGRlcGxveU9wdGlvbnM6IG9wdGlvbnMgfSksIHtcbiAgICAgIGNvbnRlbnRUeXBlOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgfSk7XG5cbiAgICBjb25zdCByZXF1ZXN0OiBIdHRwUmVxdWVzdCA9IHtcbiAgICAgIHVybDogJy9tZXRhZGF0YS9kZXBsb3lSZXF1ZXN0JyxcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgaGVhZGVyczogeyAuLi5mb3JtLmdldEhlYWRlcnMoKSB9LFxuICAgICAgYm9keTogZm9ybS5nZXRCdWZmZXIoKSxcbiAgICB9O1xuICAgIGNvbnN0IHJlcyA9IHRoaXMuX2Nvbm4ucmVxdWVzdDxBc3luY1Jlc3VsdD4ocmVxdWVzdCk7XG5cbiAgICByZXR1cm4gbmV3IERlcGxveVJlc3VsdExvY2F0b3IodGhpcywgcmVzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXBsb3kgY29tcG9uZW50cyBpbnRvIGFuIG9yZ2FuaXphdGlvbiB1c2luZyB6aXBwZWQgZmlsZSByZXByZXNlbnRhdGlvbnNcbiAgICovXG4gIGRlcGxveShcbiAgICB6aXBJbnB1dDogUmVhZGFibGUgfCBCdWZmZXIgfCBzdHJpbmcsXG4gICAgb3B0aW9uczogUGFydGlhbDxEZXBsb3lPcHRpb25zPiA9IHt9LFxuICApOiBEZXBsb3lSZXN1bHRMb2NhdG9yPFM+IHtcbiAgICBjb25zdCByZXMgPSAoYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgemlwQ29udGVudEI2NCA9IGF3YWl0IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIGlzT2JqZWN0KHppcElucHV0KSAmJlxuICAgICAgICAgICdwaXBlJyBpbiB6aXBJbnB1dCAmJlxuICAgICAgICAgIHR5cGVvZiB6aXBJbnB1dC5waXBlID09PSAnZnVuY3Rpb24nXG4gICAgICAgICkge1xuICAgICAgICAgIGNvbnN0IGJ1ZnM6IEJ1ZmZlcltdID0gW107XG4gICAgICAgICAgemlwSW5wdXQub24oJ2RhdGEnLCAoZCkgPT4gYnVmcy5wdXNoKGQpKTtcbiAgICAgICAgICB6aXBJbnB1dC5vbignZXJyb3InLCByZWplY3QpO1xuICAgICAgICAgIHppcElucHV0Lm9uKCdlbmQnLCAoKSA9PiB7XG4gICAgICAgICAgICByZXNvbHZlKEJ1ZmZlci5jb25jYXQoYnVmcykudG9TdHJpbmcoJ2Jhc2U2NCcpKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICAvLyB6aXBJbnB1dC5yZXN1bWUoKTtcbiAgICAgICAgfSBlbHNlIGlmICh6aXBJbnB1dCBpbnN0YW5jZW9mIEJ1ZmZlcikge1xuICAgICAgICAgIHJlc29sdmUoemlwSW5wdXQudG9TdHJpbmcoJ2Jhc2U2NCcpKTtcbiAgICAgICAgfSBlbHNlIGlmICh6aXBJbnB1dCBpbnN0YW5jZW9mIFN0cmluZyB8fCB0eXBlb2YgemlwSW5wdXQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgcmVzb2x2ZSh6aXBJbnB1dCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhyb3cgJ1VuZXhwZWN0ZWQgemlwSW5wdXQgdHlwZSc7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICByZXR1cm4gdGhpcy5faW52b2tlKFxuICAgICAgICAnZGVwbG95JyxcbiAgICAgICAge1xuICAgICAgICAgIFppcEZpbGU6IHppcENvbnRlbnRCNjQsXG4gICAgICAgICAgRGVwbG95T3B0aW9uczogb3B0aW9ucyxcbiAgICAgICAgfSxcbiAgICAgICAgQXBpU2NoZW1hcy5EZXBsb3lSZXN1bHQsXG4gICAgICApO1xuICAgIH0pKCk7XG5cbiAgICByZXR1cm4gbmV3IERlcGxveVJlc3VsdExvY2F0b3IodGhpcywgcmVzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgdGhlIHN0YXR1cyBvZiBkZWNsYXJhdGl2ZSBtZXRhZGF0YSBjYWxsIGRlcGxveSgpXG4gICAqL1xuICBjaGVja0RlcGxveVN0YXR1cyhcbiAgICBhc3luY1Byb2Nlc3NJZDogc3RyaW5nLFxuICAgIGluY2x1ZGVEZXRhaWxzOiBib29sZWFuID0gZmFsc2UsXG4gICk6IFByb21pc2U8RGVwbG95UmVzdWx0PiB7XG4gICAgcmV0dXJuIHRoaXMuX2ludm9rZShcbiAgICAgICdjaGVja0RlcGxveVN0YXR1cycsXG4gICAgICB7XG4gICAgICAgIGFzeW5jUHJvY2Vzc0lkLFxuICAgICAgICBpbmNsdWRlRGV0YWlscyxcbiAgICAgIH0sXG4gICAgICBBcGlTY2hlbWFzLkRlcGxveVJlc3VsdCxcbiAgICApO1xuICB9XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKipcbiAqIFRoZSBsb2NhdG9yIGNsYXNzIGZvciBNZXRhZGF0YSBBUEkgYXN5bmNocm9ub3VzIGNhbGwgcmVzdWx0XG4gKi9cbmV4cG9ydCBjbGFzcyBBc3luY1Jlc3VsdExvY2F0b3I8XG4gIFMgZXh0ZW5kcyBTY2hlbWEsXG4gIFIgZXh0ZW5kcyB7fSA9IEFzeW5jUmVzdWx0XG4+IGV4dGVuZHMgRXZlbnRFbWl0dGVyIHtcbiAgX21ldGE6IE1ldGFkYXRhQXBpPFM+O1xuICBfcHJvbWlzZTogUHJvbWlzZTxBc3luY1Jlc3VsdD47XG4gIF9pZDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKlxuICAgKi9cbiAgY29uc3RydWN0b3IobWV0YTogTWV0YWRhdGFBcGk8Uz4sIHByb21pc2U6IFByb21pc2U8QXN5bmNSZXN1bHQ+KSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLl9tZXRhID0gbWV0YTtcbiAgICB0aGlzLl9wcm9taXNlID0gcHJvbWlzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcm9taXNlL0ErIGludGVyZmFjZVxuICAgKiBodHRwOi8vcHJvbWlzZXMtYXBsdXMuZ2l0aHViLmlvL3Byb21pc2VzLXNwZWMvXG4gICAqXG4gICAqIEBtZXRob2QgTWV0YWRhdGF+QXN5bmNSZXN1bHRMb2NhdG9yI3RoZW5cbiAgICovXG4gIHRoZW48VSwgVj4oXG4gICAgb25SZXNvbHZlPzogKChyZXN1bHQ6IEFzeW5jUmVzdWx0KSA9PiBVIHwgUHJvbWlzZTxVPikgfCBudWxsIHwgdW5kZWZpbmVkLFxuICAgIG9uUmVqZWN0PzogKChlcnI6IEVycm9yKSA9PiBWIHwgUHJvbWlzZTxWPikgfCBudWxsIHwgdW5kZWZpbmVkLFxuICApOiBQcm9taXNlPFUgfCBWPiB7XG4gICAgcmV0dXJuIHRoaXMuX3Byb21pc2UudGhlbihvblJlc29sdmUsIG9uUmVqZWN0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayB0aGUgc3RhdHVzIG9mIGFzeW5jIHJlcXVlc3RcbiAgICovXG4gIGFzeW5jIGNoZWNrKCkge1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuX3Byb21pc2U7XG4gICAgdGhpcy5faWQgPSByZXN1bHQuaWQ7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuX21ldGEuY2hlY2tTdGF0dXMocmVzdWx0LmlkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQb2xsaW5nIHVudGlsIGFzeW5jIGNhbGwgc3RhdHVzIGJlY29tZXMgY29tcGxldGUgb3IgZXJyb3JcbiAgICovXG4gIHBvbGwoaW50ZXJ2YWw6IG51bWJlciwgdGltZW91dDogbnVtYmVyKSB7XG4gICAgY29uc3Qgc3RhcnRUaW1lID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XG4gICAgY29uc3QgcG9sbCA9IGFzeW5jICgpID0+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IG5vdyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xuICAgICAgICBpZiAoc3RhcnRUaW1lICsgdGltZW91dCA8IG5vdykge1xuICAgICAgICAgIGxldCBlcnJNc2cgPSAnUG9sbGluZyB0aW1lIG91dC4nO1xuICAgICAgICAgIGlmICh0aGlzLl9pZCkge1xuICAgICAgICAgICAgZXJyTXNnICs9ICcgUHJvY2VzcyBJZCA9ICcgKyB0aGlzLl9pZDtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5lbWl0KCdlcnJvcicsIG5ldyBFcnJvcihlcnJNc2cpKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5jaGVjaygpO1xuICAgICAgICBpZiAocmVzdWx0LmRvbmUpIHtcbiAgICAgICAgICB0aGlzLmVtaXQoJ2NvbXBsZXRlJywgcmVzdWx0KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmVtaXQoJ3Byb2dyZXNzJywgcmVzdWx0KTtcbiAgICAgICAgICBzZXRUaW1lb3V0KHBvbGwsIGludGVydmFsKTtcbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIHRoaXMuZW1pdCgnZXJyb3InLCBlcnIpO1xuICAgICAgfVxuICAgIH07XG4gICAgc2V0VGltZW91dChwb2xsLCBpbnRlcnZhbCk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgYW5kIHdhaXQgdW50aWwgdGhlIGFzeW5jIHJlcXVlc3RzIGJlY29tZSBpbiBjb21wbGV0ZWQgc3RhdHVzXG4gICAqL1xuICBjb21wbGV0ZSgpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2U8Uj4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgdGhpcy5vbignY29tcGxldGUnLCByZXNvbHZlKTtcbiAgICAgIHRoaXMub24oJ2Vycm9yJywgcmVqZWN0KTtcbiAgICAgIHRoaXMucG9sbCh0aGlzLl9tZXRhLnBvbGxJbnRlcnZhbCwgdGhpcy5fbWV0YS5wb2xsVGltZW91dCk7XG4gICAgfSk7XG4gIH1cbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKipcbiAqIFRoZSBsb2NhdG9yIGNsYXNzIHRvIHRyYWNrIHJldHJlaXZlKCkgTWV0YWRhdGEgQVBJIGNhbGwgcmVzdWx0XG4gKi9cbmV4cG9ydCBjbGFzcyBSZXRyaWV2ZVJlc3VsdExvY2F0b3I8UyBleHRlbmRzIFNjaGVtYT4gZXh0ZW5kcyBBc3luY1Jlc3VsdExvY2F0b3I8XG4gIFMsXG4gIFJldHJpZXZlUmVzdWx0XG4+IHtcbiAgLyoqXG4gICAqIENoZWNrIGFuZCB3YWl0IHVudGlsIHRoZSBhc3luYyByZXF1ZXN0IGJlY29tZXMgaW4gY29tcGxldGVkIHN0YXR1cyxcbiAgICogYW5kIHJldHJpZXZlIHRoZSByZXN1bHQgZGF0YS5cbiAgICovXG4gIGFzeW5jIGNvbXBsZXRlKCkge1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHN1cGVyLmNvbXBsZXRlKCk7XG4gICAgcmV0dXJuIHRoaXMuX21ldGEuY2hlY2tSZXRyaWV2ZVN0YXR1cyhyZXN1bHQuaWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIENoYW5nZSB0aGUgcmV0cmlldmVkIHJlc3VsdCB0byBOb2RlLmpzIHJlYWRhYmxlIHN0cmVhbVxuICAgKi9cbiAgc3RyZWFtKCkge1xuICAgIGNvbnN0IHJlc3VsdFN0cmVhbSA9IG5ldyBSZWFkYWJsZSgpO1xuICAgIGxldCByZWFkaW5nID0gZmFsc2U7XG4gICAgcmVzdWx0U3RyZWFtLl9yZWFkID0gYXN5bmMgKCkgPT4ge1xuICAgICAgaWYgKHJlYWRpbmcpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgcmVhZGluZyA9IHRydWU7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLmNvbXBsZXRlKCk7XG4gICAgICAgIHJlc3VsdFN0cmVhbS5wdXNoKEJ1ZmZlci5mcm9tKHJlc3VsdC56aXBGaWxlLCAnYmFzZTY0JykpO1xuICAgICAgICByZXN1bHRTdHJlYW0ucHVzaChudWxsKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgcmVzdWx0U3RyZWFtLmVtaXQoJ2Vycm9yJywgZSk7XG4gICAgICB9XG4gICAgfTtcbiAgICByZXR1cm4gcmVzdWx0U3RyZWFtO1xuICB9XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyoqXG4gKiBUaGUgbG9jYXRvciBjbGFzcyB0byB0cmFjayBkZXBsb3koKSBNZXRhZGF0YSBBUEkgY2FsbCByZXN1bHRcbiAqXG4gKiBAcHJvdGVjdGVkXG4gKiBAY2xhc3MgTWV0YWRhdGF+RGVwbG95UmVzdWx0TG9jYXRvclxuICogQGV4dGVuZHMgTWV0YWRhdGF+QXN5bmNSZXN1bHRMb2NhdG9yXG4gKiBAcGFyYW0ge01ldGFkYXRhfSBtZXRhIC0gTWV0YWRhdGEgQVBJIG9iamVjdFxuICogQHBhcmFtIHtQcm9taXNlLjxNZXRhZGF0YX5Bc3luY1Jlc3VsdD59IHJlc3VsdCAtIFByb21pc2Ugb2JqZWN0IGZvciBhc3luYyByZXN1bHQgb2YgZGVwbG95KCkgY2FsbFxuICovXG5leHBvcnQgY2xhc3MgRGVwbG95UmVzdWx0TG9jYXRvcjxTIGV4dGVuZHMgU2NoZW1hPiBleHRlbmRzIEFzeW5jUmVzdWx0TG9jYXRvcjxcbiAgUyxcbiAgRGVwbG95UmVzdWx0XG4+IHtcbiAgLyoqXG4gICAqIENoZWNrIGFuZCB3YWl0IHVudGlsIHRoZSBhc3luYyByZXF1ZXN0IGJlY29tZXMgaW4gY29tcGxldGVkIHN0YXR1cyxcbiAgICogYW5kIHJldHJpZXZlIHRoZSByZXN1bHQgZGF0YS5cbiAgICovXG4gIGFzeW5jIGNvbXBsZXRlKGluY2x1ZGVEZXRhaWxzPzogYm9vbGVhbikge1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHN1cGVyLmNvbXBsZXRlKCk7XG4gICAgcmV0dXJuIHRoaXMuX21ldGEuY2hlY2tEZXBsb3lTdGF0dXMocmVzdWx0LmlkLCBpbmNsdWRlRGV0YWlscyk7XG4gIH1cbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICogUmVnaXN0ZXIgaG9vayBpbiBjb25uZWN0aW9uIGluc3RhbnRpYXRpb24gZm9yIGR5bmFtaWNhbGx5IGFkZGluZyB0aGlzIEFQSSBtb2R1bGUgZmVhdHVyZXNcbiAqL1xucmVnaXN0ZXJNb2R1bGUoJ21ldGFkYXRhJywgKGNvbm4pID0+IG5ldyBNZXRhZGF0YUFwaShjb25uKSk7XG5cbmV4cG9ydCBkZWZhdWx0IE1ldGFkYXRhQXBpO1xuIl19 | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hcGkvbWV0YWRhdGEudHMiXSwibmFtZXMiOlsiRXZlbnRFbWl0dGVyIiwiUmVhZGFibGUiLCJGb3JtRGF0YSIsInJlZ2lzdGVyTW9kdWxlIiwiU09BUCIsImlzT2JqZWN0IiwiQXBpU2NoZW1hcyIsImRlYWxsb2NhdGVUeXBlV2l0aE1ldGFkYXRhIiwibWV0YWRhdGEiLCIkIiwibWQiLCJhc3NpZ25UeXBlV2l0aE1ldGFkYXRhIiwidHlwZSIsImNvbnZlcnQiLCJNZXRhZGF0YUFwaSIsImNvbnN0cnVjdG9yIiwiY29ubiIsIl9jb25uIiwiX2ludm9rZSIsIm1ldGhvZCIsIm1lc3NhZ2UiLCJzY2hlbWEiLCJzb2FwRW5kcG9pbnQiLCJ4bWxucyIsImVuZHBvaW50VXJsIiwiaW5zdGFuY2VVcmwiLCJ2ZXJzaW9uIiwicmVzIiwiaW52b2tlIiwicmVzdWx0IiwidW5kZWZpbmVkIiwiY3JlYXRlIiwiaXNBcnJheSIsIlNhdmVSZXN1bHQiLCJyZWFkIiwiZnVsbE5hbWVzIiwiUmVhZFJlc3VsdFNjaGVtYSIsIlJlYWRSZXN1bHQiLCJwcm9wcyIsInJlY29yZHMiLCJ1cGRhdGUiLCJ1cHNlcnQiLCJVcHNlcnRSZXN1bHQiLCJkZWxldGUiLCJyZW5hbWUiLCJvbGRGdWxsTmFtZSIsIm5ld0Z1bGxOYW1lIiwiZGVzY3JpYmUiLCJhc09mVmVyc2lvbiIsIkRlc2NyaWJlTWV0YWRhdGFSZXN1bHQiLCJsaXN0IiwicXVlcmllcyIsIkZpbGVQcm9wZXJ0aWVzIiwiY2hlY2tTdGF0dXMiLCJhc3luY1Byb2Nlc3NJZCIsIkFzeW5jUmVzdWx0IiwiQXN5bmNSZXN1bHRMb2NhdG9yIiwicmV0cmlldmUiLCJyZXF1ZXN0IiwiUmV0cmlldmVSZXN1bHQiLCJSZXRyaWV2ZVJlc3VsdExvY2F0b3IiLCJjaGVja1JldHJpZXZlU3RhdHVzIiwiZGVwbG95UmVjZW50VmFsaWRhdGlvbiIsIm9wdGlvbnMiLCJpZCIsInJlc3QiLCJyZXNwb25zZSIsIm1lc3NhZ2VCb2R5IiwidmFsaWRhdGVkRGVwbG95UmVxdWVzdElkIiwicmVxdWVzdEluZm8iLCJ1cmwiLCJfYmFzZVVybCIsImJvZHkiLCJoZWFkZXJzIiwicmVxdWVzdE9wdGlvbnMiLCJ2YWxpZGF0aW9uSWQiLCJkZXBsb3lSZXN0IiwiemlwSW5wdXQiLCJmb3JtIiwiYXBwZW5kIiwiY29udGVudFR5cGUiLCJmaWxlbmFtZSIsImRlcGxveU9wdGlvbnMiLCJnZXRIZWFkZXJzIiwiZ2V0QnVmZmVyIiwiRGVwbG95UmVzdWx0TG9jYXRvciIsImRlcGxveSIsInppcENvbnRlbnRCNjQiLCJyZXNvbHZlIiwicmVqZWN0IiwicGlwZSIsImJ1ZnMiLCJvbiIsImQiLCJwdXNoIiwiQnVmZmVyIiwidG9TdHJpbmciLCJTdHJpbmciLCJaaXBGaWxlIiwiRGVwbG95T3B0aW9ucyIsIkRlcGxveVJlc3VsdCIsImNoZWNrRGVwbG95U3RhdHVzIiwiaW5jbHVkZURldGFpbHMiLCJtZXRhIiwicHJvbWlzZSIsIl9tZXRhIiwiX3Byb21pc2UiLCJ0aGVuIiwib25SZXNvbHZlIiwib25SZWplY3QiLCJjaGVjayIsIl9pZCIsInBvbGwiLCJpbnRlcnZhbCIsInRpbWVvdXQiLCJzdGFydFRpbWUiLCJEYXRlIiwiZ2V0VGltZSIsIm5vdyIsImVyck1zZyIsImVtaXQiLCJFcnJvciIsImRvbmUiLCJlcnIiLCJjb21wbGV0ZSIsInBvbGxJbnRlcnZhbCIsInBvbGxUaW1lb3V0Iiwic3RyZWFtIiwicmVzdWx0U3RyZWFtIiwicmVhZGluZyIsIl9yZWFkIiwiZnJvbSIsInppcEZpbGUiLCJlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTQSxZQUFULFFBQTZCLFFBQTdCO0FBQ0EsU0FBU0MsUUFBVCxRQUF5QixRQUF6QjtBQUNBLE9BQU9DLFFBQVAsTUFBcUIsV0FBckI7QUFDQSxTQUFTQyxjQUFULFFBQStCLFlBQS9CO0FBRUEsT0FBT0MsSUFBUCxNQUFpQixTQUFqQjtBQUNB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Q0FBQ2xDLElBQWIsQ0FBa0JDLE1BQU0sQ0FBQ29DLElBQVAsQ0FBWXRHLE1BQU0sQ0FBQ3VHLE9BQW5CLEVBQTRCLFFBQTVCLENBQWxCO0FBQ0FKLFFBQUFBLFlBQVksQ0FBQ2xDLElBQWIsQ0FBa0IsSUFBbEI7QUFDRCxPQUpELENBSUUsT0FBT3VDLENBQVAsRUFBVTtBQUNWTCxRQUFBQSxZQUFZLENBQUNSLElBQWIsQ0FBa0IsT0FBbEIsRUFBMkJhLENBQTNCO0FBQ0Q7QUFDRixLQVpEOztBQWFBLFdBQU9MLFlBQVA7QUFDRDs7QUE5QkQ7QUFpQ0Y7O0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUNBLE9BQU8sTUFBTTNDLG1CQUFOLFNBQW9EN0Isa0JBQXBELENBR0w7QUFDQTtBQUNGO0FBQ0E7QUFDQTtBQUNFLFFBQU1vRSxRQUFOLENBQWV0QixjQUFmLEVBQXlDO0FBQ3ZDLFVBQU16RSxNQUFNLEdBQUcsTUFBTSxNQUFNK0YsUUFBTixFQUFyQjtBQUNBLFdBQU8sS0FBS25CLEtBQUwsQ0FBV0osaUJBQVgsQ0FBNkJ4RSxNQUFNLENBQUNtQyxFQUFwQyxFQUF3Q3NDLGNBQXhDLENBQVA7QUFDRDs7QUFSRDtBQVdGOztBQUNBO0FBQ0E7QUFDQTs7QUFDQW5HLGNBQWMsQ0FBQyxVQUFELEVBQWNhLElBQUQsSUFBVSxJQUFJRixXQUFKLENBQWdCRSxJQUFoQixDQUF2QixDQUFkO0FBRUEsZUFBZUYsV0FBZiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGUgTWFuYWdlcyBTYWxlc2ZvcmNlIE1ldGFkYXRhIEFQSVxuICogQGF1dGhvciBTaGluaWNoaSBUb21pdGEgPHNoaW5pY2hpLnRvbWl0YUBnbWFpbC5jb20+XG4gKi9cbmltcG9ydCB7IEV2ZW50RW1pdHRlciB9IGZyb20gJ2V2ZW50cyc7XG5pbXBvcnQgeyBSZWFkYWJsZSB9IGZyb20gJ3N0cmVhbSc7XG5pbXBvcnQgRm9ybURhdGEgZnJvbSAnZm9ybS1kYXRhJztcbmltcG9ydCB7IHJlZ2lzdGVyTW9kdWxlIH0gZnJvbSAnLi4vanNmb3JjZSc7XG5pbXBvcnQgQ29ubmVjdGlvbiBmcm9tICcuLi9jb25uZWN0aW9uJztcbmltcG9ydCBTT0FQIGZyb20gJy4uL3NvYXAnO1xuaW1wb3J0IHsgaXNPYmplY3QgfSBmcm9tICcuLi91dGlsL2Z1bmN0aW9uJztcbmltcG9ydCB7IFNjaGVtYSwgU29hcFNjaGVtYURlZiwgU29hcFNjaGVtYSwgSHR0cFJlcXVlc3QgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQge1xuICBBcGlTY2hlbWFzLFxuICBNZXRhZGF0YSxcbiAgUmVhZFJlc3VsdCxcbiAgU2F2ZVJlc3VsdCxcbiAgVXBzZXJ0UmVzdWx0LFxuICBMaXN0TWV0YWRhdGFRdWVyeSxcbiAgRmlsZVByb3BlcnRpZXMsXG4gIERlc2NyaWJlTWV0YWRhdGFSZXN1bHQsXG4gIFJldHJpZXZlUmVxdWVzdCxcbiAgRGVwbG95T3B0aW9ucyxcbiAgUmV0cmlldmVSZXN1bHQsXG4gIERlcGxveVJlc3VsdCxcbiAgQXN5bmNSZXN1bHQsXG4gIEFwaVNjaGVtYVR5cGVzLFxufSBmcm9tICcuL21ldGFkYXRhL3NjaGVtYSc7XG5leHBvcnQgKiBmcm9tICcuL21ldGFkYXRhL3NjaGVtYSc7XG5cbi8qKlxuICpcbiAqL1xudHlwZSBNZXRhZGF0YVR5cGVfPFxuICBLIGV4dGVuZHMga2V5b2YgQXBpU2NoZW1hVHlwZXMgPSBrZXlvZiBBcGlTY2hlbWFUeXBlc1xuPiA9IEsgZXh0ZW5kcyBrZXlvZiBBcGlTY2hlbWFUeXBlc1xuICA/IEFwaVNjaGVtYVR5cGVzW0tdIGV4dGVuZHMgTWV0YWRhdGFcbiAgICA/IEtcbiAgICA6IG5ldmVyXG4gIDogbmV2ZXI7XG5cbmV4cG9ydCB0eXBlIE1ldGFkYXRhVHlwZSA9IE1ldGFkYXRhVHlwZV87XG5cbmV4cG9ydCB0eXBlIE1ldGFkYXRhRGVmaW5pdGlvbjxcbiAgVCBleHRlbmRzIHN0cmluZyxcbiAgTSBleHRlbmRzIE1ldGFkYXRhID0gTWV0YWRhdGFcbj4gPSBNZXRhZGF0YSBleHRlbmRzIE1cbiAgPyBUIGV4dGVuZHMga2V5b2YgQXBpU2NoZW1hVHlwZXMgJiBNZXRhZGF0YVR5cGVcbiAgICA/IEFwaVNjaGVtYVR5cGVzW1RdIGV4dGVuZHMgTWV0YWRhdGFcbiAgICAgID8gQXBpU2NoZW1hVHlwZXNbVF1cbiAgICAgIDogTWV0YWRhdGFcbiAgICA6IE1ldGFkYXRhXG4gIDogTTtcblxudHlwZSBEZWVwUGFydGlhbDxUPiA9IFQgZXh0ZW5kcyBhbnlbXVxuICA/IERlZXBQYXJ0aWFsPFRbbnVtYmVyXT5bXVxuICA6IFQgZXh0ZW5kcyBvYmplY3RcbiAgPyB7IFtLIGluIGtleW9mIFRdPzogRGVlcFBhcnRpYWw8VFtLXT4gfVxuICA6IFQ7XG5cbmV4cG9ydCB0eXBlIElucHV0TWV0YWRhdGFEZWZpbml0aW9uPFxuICBUIGV4dGVuZHMgc3RyaW5nLFxuICBNIGV4dGVuZHMgTWV0YWRhdGEgPSBNZXRhZGF0YVxuPiA9IERlZXBQYXJ0aWFsPE1ldGFkYXRhRGVmaW5pdGlvbjxULCBNPj47XG5cbi8qKlxuICpcbiAqL1xuZnVuY3Rpb24gZGVhbGxvY2F0ZVR5cGVXaXRoTWV0YWRhdGE8TSBleHRlbmRzIE1ldGFkYXRhPihtZXRhZGF0YTogTSk6IE0ge1xuICBjb25zdCB7ICQsIC4uLm1kIH0gPSBtZXRhZGF0YSBhcyBhbnk7XG4gIHJldHVybiBtZDtcbn1cblxuZnVuY3Rpb24gYXNzaWduVHlwZVdpdGhNZXRhZGF0YShtZXRhZGF0YTogTWV0YWRhdGEgfCBNZXRhZGF0YVtdLCB0eXBlOiBzdHJpbmcpIHtcbiAgY29uc3QgY29udmVydCA9IChtZDogTWV0YWRhdGEpID0+ICh7IFsnQHhzaTp0eXBlJ106IHR5cGUsIC4uLm1kIH0pO1xuICByZXR1cm4gQXJyYXkuaXNBcnJheShtZXRhZGF0YSkgPyBtZXRhZGF0YS5tYXAoY29udmVydCkgOiBjb252ZXJ0KG1ldGFkYXRhKTtcbn1cblxuLyoqXG4gKiBDbGFzcyBmb3IgU2FsZXNmb3JjZSBNZXRhZGF0YSBBUElcbiAqL1xuZXhwb3J0IGNsYXNzIE1ldGFkYXRhQXBpPFMgZXh0ZW5kcyBTY2hlbWE+IHtcbiAgX2Nvbm46IENvbm5lY3Rpb248Uz47XG5cbiAgLyoqXG4gICAqIFBvbGxpbmcgaW50ZXJ2YWwgaW4gbWlsbGlzZWNvbmRzXG4gICAqL1xuICBwb2xsSW50ZXJ2YWw6IG51bWJlciA9IDEwMDA7XG5cbiAgLyoqXG4gICAqIFBvbGxpbmcgdGltZW91dCBpbiBtaWxsaXNlY29uZHNcbiAgICovXG4gIHBvbGxUaW1lb3V0OiBudW1iZXIgPSAxMDAwMDtcblxuICAvKipcbiAgICpcbiAgICovXG4gIGNvbnN0cnVjdG9yKGNvbm46IENvbm5lY3Rpb248Uz4pIHtcbiAgICB0aGlzLl9jb25uID0gY29ubjtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxsIE1ldGFkYXRhIEFQSSBTT0FQIGVuZHBvaW50XG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBhc3luYyBfaW52b2tlKFxuICAgIG1ldGhvZDogc3RyaW5nLFxuICAgIG1lc3NhZ2U6IG9iamVjdCxcbiAgICBzY2hlbWE/OiBTb2FwU2NoZW1hIHwgU29hcFNjaGVtYURlZixcbiAgKSB7XG4gICAgY29uc3Qgc29hcEVuZHBvaW50ID0gbmV3IFNPQVAodGhpcy5fY29ubiwge1xuICAgICAgeG1sbnM6ICdodHRwOi8vc29hcC5zZm9yY2UuY29tLzIwMDYvMDQvbWV0YWRhdGEnLFxuICAgICAgZW5kcG9pbnRVcmw6IGAke3RoaXMuX2Nvbm4uaW5zdGFuY2VVcmx9L3NlcnZpY2VzL1NvYXAvbS8ke3RoaXMuX2Nvbm4udmVyc2lvbn1gLFxuICAgIH0pO1xuICAgIGNvbnN0IHJlcyA9IGF3YWl0IHNvYXBFbmRwb2ludC5pbnZva2UoXG4gICAgICBtZXRob2QsXG4gICAgICBtZXNzYWdlLFxuICAgICAgc2NoZW1hID8gKHsgcmVzdWx0OiBzY2hlbWEgfSBhcyBTb2FwU2NoZW1hKSA6IHVuZGVmaW5lZCxcbiAgICAgIEFwaVNjaGVtYXMsXG4gICAgKTtcbiAgICByZXR1cm4gcmVzLnJlc3VsdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgb25lIG9yIG1vcmUgbmV3IG1ldGFkYXRhIGNvbXBvbmVudHMgdG8gdGhlIG9yZ2FuaXphdGlvbi5cbiAgICovXG4gIGNyZWF0ZTxcbiAgICBNIGV4dGVuZHMgTWV0YWRhdGEgPSBNZXRhZGF0YSxcbiAgICBUIGV4dGVuZHMgTWV0YWRhdGFUeXBlID0gTWV0YWRhdGFUeXBlLFxuICAgIE1EIGV4dGVuZHMgSW5wdXRNZXRhZGF0YURlZmluaXRpb248VCwgTT4gPSBJbnB1dE1ldGFkYXRhRGVmaW5pdGlvbjxULCBNPlxuICA+KHR5cGU6IFQsIG1ldGFkYXRhOiBNRFtdKTogUHJvbWlzZTxTYXZlUmVzdWx0W10+O1xuICBjcmVhdGU8XG4gICAgTSBleHRlbmRzIE1ldGFkYXRhID0gTWV0YWRhdGEsXG4gICAgVCBleHRlbmRzIE1ldGFkYXRhVHlwZSA9IE1ldGFkYXRhVHlwZSxcbiAgICBNRCBleHRlbmRzIElucHV0TWV0YWRhdGFEZWZpbml0aW9uPFQsIE0+ID0gSW5wdXRNZXRhZGF0YURlZmluaXRpb248VCwgTT5cbiAgPih0eXBlOiBULCBtZXRhZGF0YTogTUQpOiBQcm9taXNlPFNhdmVSZXN1bHQ+O1xuICBjcmVhdGU8XG4gICAgTSBleHRlbmRzIE1ldGFkYXRhID0gTWV0YWRhdGEsXG4gICAgVCBleHRlbmRzIE1ldGFkYXRhVHlwZSA9IE1ldGFkYXRhVHlwZSxcbiAgICBNRCBleHRlbmRzIElucHV0TWV0YWRhdGFEZWZpbml0aW9uPFQsIE0+ID0gSW5wdXRNZXRhZGF0YURlZmluaXRpb248VCwgTT5cbiAgPih0eXBlOiBULCBtZXRhZGF0YTogTUQgfCBNRFtdKTogUHJvbWlzZTxTYXZlUmVzdWx0IHwgU2F2ZVJlc3VsdFtdPjtcbiAgY3JlYXRlKHR5cGU6IHN0cmluZywgbWV0YWRhdGE6IE1ldGFkYXRhIHwgTWV0YWRhdGFbXSkge1xuICAgIGNvbnN0IGlzQXJyYXkgPSBBcnJheS5pc0FycmF5KG1ldGFkYXRhKTtcbiAgICBtZXRhZGF0YSA9IGFzc2lnblR5cGVXaXRoTWV0YWRhdGEobWV0YWRhdGEsIHR5cGUpO1xuICAgIGNvbnN0IHNjaGVtYSA9IGlzQXJyYXkgPyBbQXBpU2NoZW1hcy5TYXZlUmVzdWx0XSA6IEFwaVNjaGVtYXMuU2F2ZVJlc3VsdDtcbiAgICByZXR1cm4gdGhpcy5faW52b2tlKCdjcmVhdGVNZXRhZGF0YScsIHsgbWV0YWRhdGEgfSwgc2NoZW1hKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWFkIHNwZWNpZmllZCBtZXRhZGF0YSBjb21wb25lbnRzIGluIHRoZSBvcmdhbml6YXRpb24uXG4gICAqL1xuICByZWFkPFxuICAgIE0gZXh0ZW5kcyBNZXRhZGF0YSA9IE1ldGFkYXRhLFxuICAgIFQgZXh0ZW5kcyBNZXRhZGF0YVR5cGUgPSBNZXRhZGF0YVR5cGUsXG4gICAgTUQgZXh0ZW5kcyBNZXRhZGF0YURlZmluaXRpb248VCwgTT4gPSBNZXRhZGF0YURlZmluaXRpb248VCwgTT5cbiAgPih0eXBlOiBULCBmdWxsTmFtZXM6IHN0cmluZ1tdKTogUHJvbWlzZTxNRFtdPjtcbiAgcmVhZDxcbiAgICBNIGV4dGVuZHMgTWV0YWRhdGEgPSBNZXRhZGF0YSxcbiAgICBUIGV4dGVuZHMgTWV0YWRhdGFUeXBlID0gTWV0YWRhdGFUeXBlLFxuICAgIE1EIGV4dGVuZHMgTWV0YWRhdGFEZWZpbml0aW9uPFQsIE0+ID0gTWV0YWRhdGFEZWZpbml0aW9uPFQsIE0+XG4gID4odHlwZTogVCwgZnVsbE5hbWVzOiBzdHJpbmcpOiBQcm9taXNlPE1EPjtcbiAgcmVhZDxcbiAgICBNIGV4dGVuZHMgTWV0YWRhdGEgPSBNZXRhZGF0YSxcbiAgICBUIGV4dGVuZHMgTWV0YWRhdGFUeXBlID0gTWV0YWRhdGFUeXBlLFxuICAgIE1EIGV4dGVuZHMgTWV0YWRhdGFEZWZpbml0aW9uPFQsIE0+ID0gTWV0YWRhdGFEZWZpbml0aW9uPFQsIE0+XG4gID4odHlwZTogVCwgZnVsbE5hbWVzOiBzdHJpbmcgfCBzdHJpbmdbXSk6IFByb21pc2U8TUQgfCBNRFtdPjtcbiAgYXN5bmMgcmVhZCh0eXBlOiBzdHJpbmcsIGZ1bGxOYW1lczogc3RyaW5nIHwgc3RyaW5nW10pIHtcbiAgICBjb25zdCBSZWFkUmVzdWx0U2NoZW1hID1cbiAgICAgIHR5cGUgaW4gQXBpU2NoZW1hc1xuICAgICAgICA/ICh7XG4gICAgICAgICAgICB0eXBlOiBBcGlTY2hlbWFzLlJlYWRSZXN1bHQudHlwZSxcbiAgICAgICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgICAgIHJlY29yZHM6IFt0eXBlXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSBhcyBjb25zdClcbiAgICAgICAgOiBBcGlTY2hlbWFzLlJlYWRSZXN1bHQ7XG4gICAgY29uc3QgcmVzOiBSZWFkUmVzdWx0ID0gYXdhaXQgdGhpcy5faW52b2tlKFxuICAgICAgJ3JlYWRNZXRhZGF0YScsXG4gICAgICB7IHR5cGUsIGZ1bGxOYW1lcyB9LFxuICAgICAgUmVhZFJlc3VsdFNjaGVtYSxcbiAgICApO1xuICAgIHJldHVybiBBcnJheS5pc0FycmF5KGZ1bGxOYW1lcylcbiAgICAgID8gcmVzLnJlY29yZHMubWFwKGRlYWxsb2NhdGVUeXBlV2l0aE1ldGFkYXRhKVxuICAgICAgOiBkZWFsbG9jYXRlVHlwZVdpdGhNZXRhZGF0YShyZXMucmVjb3Jkc1swXSk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIG9uZSBvciBtb3JlIG1ldGFkYXRhIGNvbXBvbmVudHMgaW4gdGhlIG9yZ2FuaXphdGlvbi5cbiAgICovXG4gIHVwZGF0ZTxcbiAgICBNIGV4dGVuZHMgTWV0YWRhdGEgPSBNZXRhZGF0YSxcbiAgICBUIGV4dGVuZHMgc3RyaW5nID0gc3RyaW5nLFxuICAgIE1EIGV4dGVuZHMgSW5wdXRNZXRhZGF0YURlZmluaXRpb248VCwgTT4gPSBJbnB1dE1ldGFkYXRhRGVmaW5pdGlvbjxULCBNPlxuICA+KHR5cGU6IFQsIG1ldGFkYXRhOiBQYXJ0aWFsPE1EPltdKTogUHJvbWlzZTxTYXZlUmVzdWx0W10+O1xuICB1cGRhdGU8XG4gICAgTSBleHRlbmRzIE1ldGFkYXRhID0gTWV0YWRhdGEsXG4gICAgVCBleHRlbmRzIHN0cmluZyA9IHN0cmluZyxcbiAgICBNRCBleHRlbmRzIElucHV0TWV0YWRhdGFEZWZpbml0aW9uPFQsIE0+ID0gSW5wdXRNZXRhZGF0YURlZmluaXRpb248VCwgTT5cbiAgPih0eXBlOiBULCBtZXRhZGF0YTogUGFydGlhbDxNRD4pOiBQcm9taXNlPFNhdmVSZXN1bHQ+O1xuICB1cGRhdGU8XG4gICAgTSBleHRlbmRzIE1ldGFkYXRhID0gTWV0YWRhdGEsXG4gICAgVCBleHRlbmRzIHN0cmluZyA9IHN0cmluZyxcbiAgICBNRCBleHRlbmRzIElucHV0TWV0YWRhdGFEZWZpbml0aW9uPFQsIE0+ID0gSW5wdXRNZXRhZGF0YURlZmluaXRpb248VCwgTT5cbiAgPihcbiAgICB0eXBlOiBULFxuICAgIG1ldGFkYXRhOiBQYXJ0aWFsPE1EPiB8IFBhcnRpYWw8TUQ+W10sXG4gICk6IFByb21pc2U8U2F2ZVJlc3VsdCB8IFNhdmVSZXN1bHRbXT47XG4gIHVwZGF0ZSh0eXBlOiBzdHJpbmcsIG1ldGFkYXRhOiBNZXRhZGF0YSB8IE1ldGFkYXRhW10pIHtcbiAgICBjb25zdCBpc0FycmF5ID0gQXJyYXkuaXNBcnJheShtZXRhZGF0YSk7XG4gICAgbWV0YWRhdGEgPSBhc3NpZ25UeXBlV2l0aE1ldGFkYXRhKG1ldGFkYXRhLCB0eXBlKTtcbiAgICBjb25zdCBzY2hlbWEgPSBpc0FycmF5ID8gW0FwaVNjaGVtYXMuU2F2ZVJlc3VsdF0gOiBBcGlTY2hlbWFzLlNhdmVSZXN1bHQ7XG4gICAgcmV0dXJuIHRoaXMuX2ludm9rZSgndXBkYXRlTWV0YWRhdGEnLCB7IG1ldGFkYXRhIH0sIHNjaGVtYSk7XG4gIH1cblxuICAvKipcbiAgICogVXBzZXJ0IG9uZSBvciBtb3JlIGNvbXBvbmVudHMgaW4geW91ciBvcmdhbml6YXRpb24ncyBkYXRhLlxuICAgKi9cbiAgdXBzZXJ0PFxuICAgIE0gZXh0ZW5kcyBNZXRhZGF0YSA9IE1ldGFkYXRhLFxuICAgIFQgZXh0ZW5kcyBzdHJpbmcgPSBzdHJpbmcsXG4gICAgTUQgZXh0ZW5kcyBJbnB1dE1ldGFkYXRhRGVmaW5pdGlvbjxULCBNPiA9IElucHV0TWV0YWRhdGFEZWZpbml0aW9uPFQsIE0+XG4gID4odHlwZTogVCwgbWV0YWRhdGE6IE1EW10pOiBQcm9taXNlPFVwc2VydFJlc3VsdFtdPjtcbiAgdXBzZXJ0PFxuICAgIE0gZXh0ZW5kcyBNZXRhZGF0YSA9IE1ldGFkYXRhLFxuICAgIFQgZXh0ZW5kcyBzdHJpbmcgPSBzdHJpbmcsXG4gICAgTUQgZXh0ZW5kcyBJbnB1dE1ldGFkYXRhRGVmaW5pdGlvbjxULCBNPiA9IElucHV0TWV0YWRhdGFEZWZpbml0aW9uPFQsIE0+XG4gID4odHlwZTogVCwgbWV0YWRhdGE6IE1EKTogUHJvbWlzZTxVcHNlcnRSZXN1bHQ+O1xuICB1cHNlcnQ8XG4gICAgTSBleHRlbmRzIE1ldGFkYXRhID0gTWV0YWRhdGEsXG4gICAgVCBleHRlbmRzIHN0cmluZyA9IHN0cmluZyxcbiAgICBNRCBleHRlbmRzIElucHV0TWV0YWRhdGFEZWZpbml0aW9uPFQsIE0+ID0gSW5wdXRNZXRhZGF0YURlZmluaXRpb248VCwgTT5cbiAgPih0eXBlOiBULCBtZXRhZGF0YTogTUQgfCBNRFtdKTogUHJvbWlzZTxVcHNlcnRSZXN1bHQgfCBVcHNlcnRSZXN1bHRbXT47XG4gIHVwc2VydCh0eXBlOiBzdHJpbmcsIG1ldGFkYXRhOiBNZXRhZGF0YSB8IE1ldGFkYXRhW10pIHtcbiAgICBjb25zdCBpc0FycmF5ID0gQXJyYXkuaXNBcnJheShtZXRhZGF0YSk7XG4gICAgbWV0YWRhdGEgPSBhc3NpZ25UeXBlV2l0aE1ldGFkYXRhKG1ldGFkYXRhLCB0eXBlKTtcbiAgICBjb25zdCBzY2hlbWEgPSBpc0FycmF5XG4gICAgICA/IFtBcGlTY2hlbWFzLlVwc2VydFJlc3VsdF1cbiAgICAgIDogQXBpU2NoZW1hcy5VcHNlcnRSZXN1bHQ7XG4gICAgcmV0dXJuIHRoaXMuX2ludm9rZSgndXBzZXJ0TWV0YWRhdGEnLCB7IG1ldGFkYXRhIH0sIHNjaGVtYSk7XG4gIH1cblxuICAvKipcbiAgICogRGVsZXRlcyBzcGVjaWZpZWQgbWV0YWRhdGEgY29tcG9uZW50cyBpbiB0aGUgb3JnYW5pemF0aW9uLlxuICAgKi9cbiAgZGVsZXRlKHR5cGU6IHN0cmluZywgZnVsbE5hbWVzOiBzdHJpbmdbXSk6IFByb21pc2U8U2F2ZVJlc3VsdFtdPjtcbiAgZGVsZXRlKHR5cGU6IHN0cmluZywgZnVsbE5hbWVzOiBzdHJpbmcpOiBQcm9taXNlPFNhdmVSZXN1bHQ+O1xuICBkZWxldGUoXG4gICAgdHlwZTogc3RyaW5nLFxuICAgIGZ1bGxOYW1lczogc3RyaW5nIHwgc3RyaW5nW10sXG4gICk6IFByb21pc2U8U2F2ZVJlc3VsdCB8IFNhdmVSZXN1bHRbXT47XG4gIGRlbGV0ZSh0eXBlOiBzdHJpbmcsIGZ1bGxOYW1lczogc3RyaW5nIHwgc3RyaW5nW10pIHtcbiAgICBjb25zdCBzY2hlbWEgPSBBcnJheS5pc0FycmF5KGZ1bGxOYW1lcylcbiAgICAgID8gW0FwaVNjaGVtYXMuU2F2ZVJlc3VsdF1cbiAgICAgIDogQXBpU2NoZW1hcy5TYXZlUmVzdWx0O1xuICAgIHJldHVybiB0aGlzLl9pbnZva2UoJ2RlbGV0ZU1ldGFkYXRhJywgeyB0eXBlLCBmdWxsTmFtZXMgfSwgc2NoZW1hKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW5hbWUgZnVsbG5hbWUgb2YgYSBtZXRhZGF0YSBjb21wb25lbnQgaW4gdGhlIG9yZ2FuaXphdGlvblxuICAgKi9cbiAgcmVuYW1lKFxuICAgIHR5cGU6IHN0cmluZyxcbiAgICBvbGRGdWxsTmFtZTogc3RyaW5nLFxuICAgIG5ld0Z1bGxOYW1lOiBzdHJpbmcsXG4gICk6IFByb21pc2U8U2F2ZVJlc3VsdD4ge1xuICAgIHJldHVybiB0aGlzLl9pbnZva2UoXG4gICAgICAncmVuYW1lTWV0YWRhdGEnLFxuICAgICAgeyB0eXBlLCBvbGRGdWxsTmFtZSwgbmV3RnVsbE5hbWUgfSxcbiAgICAgIEFwaVNjaGVtYXMuU2F2ZVJlc3VsdCxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlcyB0aGUgbWV0YWRhdGEgd2hpY2ggZGVzY3JpYmVzIHlvdXIgb3JnYW5pemF0aW9uLCBpbmNsdWRpbmcgQXBleCBjbGFzc2VzIGFuZCB0cmlnZ2VycyxcbiAgICogY3VzdG9tIG9iamVjdHMsIGN1c3RvbSBmaWVsZHMgb24gc3RhbmRhcmQgb2JqZWN0cywgdGFiIHNldHMgdGhhdCBkZWZpbmUgYW4gYXBwLFxuICAgKiBhbmQgbWFueSBvdGhlciBjb21wb25lbnRzLlxuICAgKi9cbiAgZGVzY3JpYmUoYXNPZlZlcnNpb24/OiBzdHJpbmcpOiBQcm9taXNlPERlc2NyaWJlTWV0YWRhdGFSZXN1bHQ+IHtcbiAgICBpZiAoIWFzT2ZWZXJzaW9uKSB7XG4gICAgICBhc09mVmVyc2lvbiA9IHRoaXMuX2Nvbm4udmVyc2lvbjtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX2ludm9rZShcbiAgICAgICdkZXNjcmliZU1ldGFkYXRhJyxcbiAgICAgIHsgYXNPZlZlcnNpb24gfSxcbiAgICAgIEFwaVNjaGVtYXMuRGVzY3JpYmVNZXRhZGF0YVJlc3VsdCxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlcyBwcm9wZXJ0eSBpbmZvcm1hdGlvbiBhYm91dCBtZXRhZGF0YSBjb21wb25lbnRzIGluIHlvdXIgb3JnYW5pemF0aW9uXG4gICAqL1xuICBsaXN0KFxuICAgIHF1ZXJpZXM6IExpc3RNZXRhZGF0YVF1ZXJ5IHwgTGlzdE1ldGFkYXRhUXVlcnlbXSxcbiAgICBhc09mVmVyc2lvbj86IHN0cmluZyxcbiAgKTogUHJvbWlzZTxGaWxlUHJvcGVydGllc1tdPiB7XG4gICAgaWYgKCFhc09mVmVyc2lvbikge1xuICAgICAgYXNPZlZlcnNpb24gPSB0aGlzLl9jb25uLnZlcnNpb247XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9pbnZva2UoJ2xpc3RNZXRhZGF0YScsIHsgcXVlcmllcywgYXNPZlZlcnNpb24gfSwgW1xuICAgICAgQXBpU2NoZW1hcy5GaWxlUHJvcGVydGllcyxcbiAgICBdKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgdGhlIHN0YXR1cyBvZiBhc3luY2hyb25vdXMgbWV0YWRhdGEgY2FsbHNcbiAgICovXG4gIGNoZWNrU3RhdHVzKGFzeW5jUHJvY2Vzc0lkOiBzdHJpbmcpIHtcbiAgICBjb25zdCByZXMgPSB0aGlzLl9pbnZva2UoXG4gICAgICAnY2hlY2tTdGF0dXMnLFxuICAgICAgeyBhc3luY1Byb2Nlc3NJZCB9LFxuICAgICAgQXBpU2NoZW1hcy5Bc3luY1Jlc3VsdCxcbiAgICApO1xuICAgIHJldHVybiBuZXcgQXN5bmNSZXN1bHRMb2NhdG9yKHRoaXMsIHJlcyk7XG4gIH1cblxuICAvKipcbiAgICogUmV0cmlldmVzIFhNTCBmaWxlIHJlcHJlc2VudGF0aW9ucyBvZiBjb21wb25lbnRzIGluIGFuIG9yZ2FuaXphdGlvblxuICAgKi9cbiAgcmV0cmlldmUocmVxdWVzdDogUGFydGlhbDxSZXRyaWV2ZVJlcXVlc3Q+KSB7XG4gICAgY29uc3QgcmVzID0gdGhpcy5faW52b2tlKFxuICAgICAgJ3JldHJpZXZlJyxcbiAgICAgIHsgcmVxdWVzdCB9LFxuICAgICAgQXBpU2NoZW1hcy5SZXRyaWV2ZVJlc3VsdCxcbiAgICApO1xuICAgIHJldHVybiBuZXcgUmV0cmlldmVSZXN1bHRMb2NhdG9yKHRoaXMsIHJlcyk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIHRoZSBzdGF0dXMgb2YgZGVjbGFyYXRpdmUgbWV0YWRhdGEgY2FsbCByZXRyaWV2ZSgpIGFuZCByZXR1cm5zIHRoZSB6aXAgZmlsZSBjb250ZW50c1xuICAgKi9cbiAgY2hlY2tSZXRyaWV2ZVN0YXR1cyhhc3luY1Byb2Nlc3NJZDogc3RyaW5nKTogUHJvbWlzZTxSZXRyaWV2ZVJlc3VsdD4ge1xuICAgIHJldHVybiB0aGlzLl9pbnZva2UoXG4gICAgICAnY2hlY2tSZXRyaWV2ZVN0YXR1cycsXG4gICAgICB7IGFzeW5jUHJvY2Vzc0lkIH0sXG4gICAgICBBcGlTY2hlbWFzLlJldHJpZXZlUmVzdWx0LFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogV2lsbCBkZXBsb3kgYSByZWNlbnRseSB2YWxpZGF0ZWQgZGVwbG95IHJlcXVlc3RcbiAgICpcbiAgICogQHBhcmFtIG9wdGlvbnMuaWQgPSB0aGUgZGVwbG95IElEIHRoYXQncyBiZWVuIHZhbGlkYXRlZCBhbHJlYWR5IGZyb20gYSBwcmV2aW91cyBjaGVja09ubHkgZGVwbG95IHJlcXVlc3RcbiAgICogQHBhcmFtIG9wdGlvbnMucmVzdCA9IGEgYm9vbGVhbiB3aGV0aGVyIG9yIG5vdCB0byB1c2UgdGhlIFJFU1QgQVBJXG4gICAqIEByZXR1cm5zIHRoZSBkZXBsb3kgSUQgb2YgdGhlIHJlY2VudCB2YWxpZGF0aW9uIHJlcXVlc3RcbiAgICovXG4gIHB1YmxpYyBhc3luYyBkZXBsb3lSZWNlbnRWYWxpZGF0aW9uKG9wdGlvbnM6IHtcbiAgICBpZDogc3RyaW5nO1xuICAgIHJlc3Q/OiBib29sZWFuO1xuICB9KTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBjb25zdCB7IGlkLCByZXN0IH0gPSBvcHRpb25zO1xuICAgIGxldCByZXNwb25zZTogc3RyaW5nO1xuICAgIGlmIChyZXN0KSB7XG4gICAgICBjb25zdCBtZXNzYWdlQm9keSA9IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgdmFsaWRhdGVkRGVwbG95UmVxdWVzdElkOiBpZCxcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCByZXF1ZXN0SW5mbzogSHR0cFJlcXVlc3QgPSB7XG4gICAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgICB1cmw6IGAke3RoaXMuX2Nvbm4uX2Jhc2VVcmwoKX0vbWV0YWRhdGEvZGVwbG95UmVxdWVzdGAsXG4gICAgICAgIGJvZHk6IG1lc3NhZ2VCb2R5LFxuICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgJ2NvbnRlbnQtdHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgICBjb25zdCByZXF1ZXN0T3B0aW9ucyA9IHsgaGVhZGVyczogJ2pzb24nIH07XG4gICAgICAvLyBUaGlzIGlzIHRoZSBkZXBsb3kgSUQgb2YgdGhlIGRlcGxveVJlY2VudFZhbGlkYXRpb24gcmVzcG9uc2UsIG5vdFxuICAgICAgLy8gdGhlIGFscmVhZHkgdmFsaWRhdGVkIGRlcGxveSBJRCAoaS5lLiwgdmFsaWRhdGVkZGVwbG95cmVxdWVzdGlkKS5cbiAgICAgIC8vIFJFU1QgcmV0dXJucyBhbiBvYmplY3Qgd2l0aCBhbiBpZCBwcm9wZXJ0eSwgU09BUCByZXR1cm5zIHRoZSBpZCBhcyBhIHN0cmluZyBkaXJlY3RseS5cbiAgICAgIHJlc3BvbnNlID0gKFxuICAgICAgICBhd2FpdCB0aGlzLl9jb25uLnJlcXVlc3Q8eyBpZDogc3RyaW5nIH0+KHJlcXVlc3RJbmZvLCByZXF1ZXN0T3B0aW9ucylcbiAgICAgICkuaWQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlc3BvbnNlID0gYXdhaXQgdGhpcy5faW52b2tlKCdkZXBsb3lSZWNlbnRWYWxpZGF0aW9uJywge1xuICAgICAgICB2YWxpZGF0aW9uSWQ6IGlkLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3BvbnNlO1xuICB9XG5cbiAgLyoqXG4gICAqIERlcGxveSBjb21wb25lbnRzIGludG8gYW4gb3JnYW5pemF0aW9uIHVzaW5nIHppcHBlZCBmaWxlIHJlcHJlc2VudGF0aW9uc1xuICAgKiB1c2luZyB0aGUgUkVTVCBNZXRhZGF0YSBBUEkgaW5zdGVhZCBvZiBTT0FQXG4gICAqL1xuICBkZXBsb3lSZXN0KFxuICAgIHppcElucHV0OiBCdWZmZXIsXG4gICAgb3B0aW9uczogUGFydGlhbDxEZXBsb3lPcHRpb25zPiA9IHt9LFxuICApOiBEZXBsb3lSZXN1bHRMb2NhdG9yPFM+IHtcbiAgICBjb25zdCBmb3JtID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgZm9ybS5hcHBlbmQoJ2ZpbGUnLCB6aXBJbnB1dCwge1xuICAgICAgY29udGVudFR5cGU6ICdhcHBsaWNhdGlvbi96aXAnLFxuICAgICAgZmlsZW5hbWU6ICdwYWNrYWdlLnhtbCcsXG4gICAgfSk7XG5cbiAgICAvLyBBZGQgdGhlIGRlcGxveSBvcHRpb25zXG4gICAgZm9ybS5hcHBlbmQoJ2VudGl0eV9jb250ZW50JywgSlNPTi5zdHJpbmdpZnkoeyBkZXBsb3lPcHRpb25zOiBvcHRpb25zIH0pLCB7XG4gICAgICBjb250ZW50VHlwZTogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgIH0pO1xuXG4gICAgY29uc3QgcmVxdWVzdDogSHR0cFJlcXVlc3QgPSB7XG4gICAgICB1cmw6ICcvbWV0YWRhdGEvZGVwbG95UmVxdWVzdCcsXG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIGhlYWRlcnM6IHsgLi4uZm9ybS5nZXRIZWFkZXJzKCkgfSxcbiAgICAgIGJvZHk6IGZvcm0uZ2V0QnVmZmVyKCksXG4gICAgfTtcbiAgICBjb25zdCByZXMgPSB0aGlzLl9jb25uLnJlcXVlc3Q8QXN5bmNSZXN1bHQ+KHJlcXVlc3QpO1xuXG4gICAgcmV0dXJuIG5ldyBEZXBsb3lSZXN1bHRMb2NhdG9yKHRoaXMsIHJlcyk7XG4gIH1cblxuICAvKipcbiAgICogRGVwbG95IGNvbXBvbmVudHMgaW50byBhbiBvcmdhbml6YXRpb24gdXNpbmcgemlwcGVkIGZpbGUgcmVwcmVzZW50YXRpb25zXG4gICAqL1xuICBkZXBsb3koXG4gICAgemlwSW5wdXQ6IFJlYWRhYmxlIHwgQnVmZmVyIHwgc3RyaW5nLFxuICAgIG9wdGlvbnM6IFBhcnRpYWw8RGVwbG95T3B0aW9ucz4gPSB7fSxcbiAgKTogRGVwbG95UmVzdWx0TG9jYXRvcjxTPiB7XG4gICAgY29uc3QgcmVzID0gKGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHppcENvbnRlbnRCNjQgPSBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBpc09iamVjdCh6aXBJbnB1dCkgJiZcbiAgICAgICAgICAncGlwZScgaW4gemlwSW5wdXQgJiZcbiAgICAgICAgICB0eXBlb2YgemlwSW5wdXQucGlwZSA9PT0gJ2Z1bmN0aW9uJ1xuICAgICAgICApIHtcbiAgICAgICAgICBjb25zdCBidWZzOiBCdWZmZXJbXSA9IFtdO1xuICAgICAgICAgIHppcElucHV0Lm9uKCdkYXRhJywgKGQpID0+IGJ1ZnMucHVzaChkKSk7XG4gICAgICAgICAgemlwSW5wdXQub24oJ2Vycm9yJywgcmVqZWN0KTtcbiAgICAgICAgICB6aXBJbnB1dC5vbignZW5kJywgKCkgPT4ge1xuICAgICAgICAgICAgcmVzb2x2ZShCdWZmZXIuY29uY2F0KGJ1ZnMpLnRvU3RyaW5nKCdiYXNlNjQnKSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgLy8gemlwSW5wdXQucmVzdW1lKCk7XG4gICAgICAgIH0gZWxzZSBpZiAoemlwSW5wdXQgaW5zdGFuY2VvZiBCdWZmZXIpIHtcbiAgICAgICAgICByZXNvbHZlKHppcElucHV0LnRvU3RyaW5nKCdiYXNlNjQnKSk7XG4gICAgICAgIH0gZWxzZSBpZiAoemlwSW5wdXQgaW5zdGFuY2VvZiBTdHJpbmcgfHwgdHlwZW9mIHppcElucHV0ID09PSAnc3RyaW5nJykge1xuICAgICAgICAgIHJlc29sdmUoemlwSW5wdXQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRocm93ICdVbmV4cGVjdGVkIHppcElucHV0IHR5cGUnO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgcmV0dXJuIHRoaXMuX2ludm9rZShcbiAgICAgICAgJ2RlcGxveScsXG4gICAgICAgIHtcbiAgICAgICAgICBaaXBGaWxlOiB6aXBDb250ZW50QjY0LFxuICAgICAgICAgIERlcGxveU9wdGlvbnM6IG9wdGlvbnMsXG4gICAgICAgIH0sXG4gICAgICAgIEFwaVNjaGVtYXMuRGVwbG95UmVzdWx0LFxuICAgICAgKTtcbiAgICB9KSgpO1xuXG4gICAgcmV0dXJuIG5ldyBEZXBsb3lSZXN1bHRMb2NhdG9yKHRoaXMsIHJlcyk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIHRoZSBzdGF0dXMgb2YgZGVjbGFyYXRpdmUgbWV0YWRhdGEgY2FsbCBkZXBsb3koKVxuICAgKi9cbiAgY2hlY2tEZXBsb3lTdGF0dXMoXG4gICAgYXN5bmNQcm9jZXNzSWQ6IHN0cmluZyxcbiAgICBpbmNsdWRlRGV0YWlsczogYm9vbGVhbiA9IGZhbHNlLFxuICApOiBQcm9taXNlPERlcGxveVJlc3VsdD4ge1xuICAgIHJldHVybiB0aGlzLl9pbnZva2UoXG4gICAgICAnY2hlY2tEZXBsb3lTdGF0dXMnLFxuICAgICAge1xuICAgICAgICBhc3luY1Byb2Nlc3NJZCxcbiAgICAgICAgaW5jbHVkZURldGFpbHMsXG4gICAgICB9LFxuICAgICAgQXBpU2NoZW1hcy5EZXBsb3lSZXN1bHQsXG4gICAgKTtcbiAgfVxufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLyoqXG4gKiBUaGUgbG9jYXRvciBjbGFzcyBmb3IgTWV0YWRhdGEgQVBJIGFzeW5jaHJvbm91cyBjYWxsIHJlc3VsdFxuICovXG5leHBvcnQgY2xhc3MgQXN5bmNSZXN1bHRMb2NhdG9yPFxuICBTIGV4dGVuZHMgU2NoZW1hLFxuICBSIGV4dGVuZHMge30gPSBBc3luY1Jlc3VsdFxuPiBleHRlbmRzIEV2ZW50RW1pdHRlciB7XG4gIF9tZXRhOiBNZXRhZGF0YUFwaTxTPjtcbiAgX3Byb21pc2U6IFByb21pc2U8QXN5bmNSZXN1bHQ+O1xuICBfaWQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICpcbiAgICovXG4gIGNvbnN0cnVjdG9yKG1ldGE6IE1ldGFkYXRhQXBpPFM+LCBwcm9taXNlOiBQcm9taXNlPEFzeW5jUmVzdWx0Pikge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5fbWV0YSA9IG1ldGE7XG4gICAgdGhpcy5fcHJvbWlzZSA9IHByb21pc2U7XG4gIH1cblxuICAvKipcbiAgICogUHJvbWlzZS9BKyBpbnRlcmZhY2VcbiAgICogaHR0cDovL3Byb21pc2VzLWFwbHVzLmdpdGh1Yi5pby9wcm9taXNlcy1zcGVjL1xuICAgKlxuICAgKiBAbWV0aG9kIE1ldGFkYXRhfkFzeW5jUmVzdWx0TG9jYXRvciN0aGVuXG4gICAqL1xuICB0aGVuPFUsIFY+KFxuICAgIG9uUmVzb2x2ZT86ICgocmVzdWx0OiBBc3luY1Jlc3VsdCkgPT4gVSB8IFByb21pc2U8VT4pIHwgbnVsbCB8IHVuZGVmaW5lZCxcbiAgICBvblJlamVjdD86ICgoZXJyOiBFcnJvcikgPT4gViB8IFByb21pc2U8Vj4pIHwgbnVsbCB8IHVuZGVmaW5lZCxcbiAgKTogUHJvbWlzZTxVIHwgVj4ge1xuICAgIHJldHVybiB0aGlzLl9wcm9taXNlLnRoZW4ob25SZXNvbHZlLCBvblJlamVjdCk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgdGhlIHN0YXR1cyBvZiBhc3luYyByZXF1ZXN0XG4gICAqL1xuICBhc3luYyBjaGVjaygpIHtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLl9wcm9taXNlO1xuICAgIHRoaXMuX2lkID0gcmVzdWx0LmlkO1xuICAgIHJldHVybiBhd2FpdCB0aGlzLl9tZXRhLmNoZWNrU3RhdHVzKHJlc3VsdC5pZCk7XG4gIH1cblxuICAvKipcbiAgICogUG9sbGluZyB1bnRpbCBhc3luYyBjYWxsIHN0YXR1cyBiZWNvbWVzIGNvbXBsZXRlIG9yIGVycm9yXG4gICAqL1xuICBwb2xsKGludGVydmFsOiBudW1iZXIsIHRpbWVvdXQ6IG51bWJlcikge1xuICAgIGNvbnN0IHN0YXJ0VGltZSA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xuICAgIGNvbnN0IHBvbGwgPSBhc3luYyAoKSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcbiAgICAgICAgaWYgKHN0YXJ0VGltZSArIHRpbWVvdXQgPCBub3cpIHtcbiAgICAgICAgICBsZXQgZXJyTXNnID0gJ1BvbGxpbmcgdGltZSBvdXQuJztcbiAgICAgICAgICBpZiAodGhpcy5faWQpIHtcbiAgICAgICAgICAgIGVyck1zZyArPSAnIFByb2Nlc3MgSWQgPSAnICsgdGhpcy5faWQ7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuZW1pdCgnZXJyb3InLCBuZXcgRXJyb3IoZXJyTXNnKSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuY2hlY2soKTtcbiAgICAgICAgaWYgKHJlc3VsdC5kb25lKSB7XG4gICAgICAgICAgdGhpcy5lbWl0KCdjb21wbGV0ZScsIHJlc3VsdCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5lbWl0KCdwcm9ncmVzcycsIHJlc3VsdCk7XG4gICAgICAgICAgc2V0VGltZW91dChwb2xsLCBpbnRlcnZhbCk7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICB0aGlzLmVtaXQoJ2Vycm9yJywgZXJyKTtcbiAgICAgIH1cbiAgICB9O1xuICAgIHNldFRpbWVvdXQocG9sbCwgaW50ZXJ2YWwpO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGFuZCB3YWl0IHVudGlsIHRoZSBhc3luYyByZXF1ZXN0cyBiZWNvbWUgaW4gY29tcGxldGVkIHN0YXR1c1xuICAgKi9cbiAgY29tcGxldGUoKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPFI+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHRoaXMub24oJ2NvbXBsZXRlJywgcmVzb2x2ZSk7XG4gICAgICB0aGlzLm9uKCdlcnJvcicsIHJlamVjdCk7XG4gICAgICB0aGlzLnBvbGwodGhpcy5fbWV0YS5wb2xsSW50ZXJ2YWwsIHRoaXMuX21ldGEucG9sbFRpbWVvdXQpO1xuICAgIH0pO1xuICB9XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyoqXG4gKiBUaGUgbG9jYXRvciBjbGFzcyB0byB0cmFjayByZXRyZWl2ZSgpIE1ldGFkYXRhIEFQSSBjYWxsIHJlc3VsdFxuICovXG5leHBvcnQgY2xhc3MgUmV0cmlldmVSZXN1bHRMb2NhdG9yPFMgZXh0ZW5kcyBTY2hlbWE+IGV4dGVuZHMgQXN5bmNSZXN1bHRMb2NhdG9yPFxuICBTLFxuICBSZXRyaWV2ZVJlc3VsdFxuPiB7XG4gIC8qKlxuICAgKiBDaGVjayBhbmQgd2FpdCB1bnRpbCB0aGUgYXN5bmMgcmVxdWVzdCBiZWNvbWVzIGluIGNvbXBsZXRlZCBzdGF0dXMsXG4gICAqIGFuZCByZXRyaWV2ZSB0aGUgcmVzdWx0IGRhdGEuXG4gICAqL1xuICBhc3luYyBjb21wbGV0ZSgpIHtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBzdXBlci5jb21wbGV0ZSgpO1xuICAgIHJldHVybiB0aGlzLl9tZXRhLmNoZWNrUmV0cmlldmVTdGF0dXMocmVzdWx0LmlkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGFuZ2UgdGhlIHJldHJpZXZlZCByZXN1bHQgdG8gTm9kZS5qcyByZWFkYWJsZSBzdHJlYW1cbiAgICovXG4gIHN0cmVhbSgpIHtcbiAgICBjb25zdCByZXN1bHRTdHJlYW0gPSBuZXcgUmVhZGFibGUoKTtcbiAgICBsZXQgcmVhZGluZyA9IGZhbHNlO1xuICAgIHJlc3VsdFN0cmVhbS5fcmVhZCA9IGFzeW5jICgpID0+IHtcbiAgICAgIGlmIChyZWFkaW5nKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHJlYWRpbmcgPSB0cnVlO1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5jb21wbGV0ZSgpO1xuICAgICAgICByZXN1bHRTdHJlYW0ucHVzaChCdWZmZXIuZnJvbShyZXN1bHQuemlwRmlsZSwgJ2Jhc2U2NCcpKTtcbiAgICAgICAgcmVzdWx0U3RyZWFtLnB1c2gobnVsbCk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHJlc3VsdFN0cmVhbS5lbWl0KCdlcnJvcicsIGUpO1xuICAgICAgfVxuICAgIH07XG4gICAgcmV0dXJuIHJlc3VsdFN0cmVhbTtcbiAgfVxufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qKlxuICogVGhlIGxvY2F0b3IgY2xhc3MgdG8gdHJhY2sgZGVwbG95KCkgTWV0YWRhdGEgQVBJIGNhbGwgcmVzdWx0XG4gKlxuICogQHByb3RlY3RlZFxuICogQGNsYXNzIE1ldGFkYXRhfkRlcGxveVJlc3VsdExvY2F0b3JcbiAqIEBleHRlbmRzIE1ldGFkYXRhfkFzeW5jUmVzdWx0TG9jYXRvclxuICogQHBhcmFtIHtNZXRhZGF0YX0gbWV0YSAtIE1ldGFkYXRhIEFQSSBvYmplY3RcbiAqIEBwYXJhbSB7UHJvbWlzZS48TWV0YWRhdGF+QXN5bmNSZXN1bHQ+fSByZXN1bHQgLSBQcm9taXNlIG9iamVjdCBmb3IgYXN5bmMgcmVzdWx0IG9mIGRlcGxveSgpIGNhbGxcbiAqL1xuZXhwb3J0IGNsYXNzIERlcGxveVJlc3VsdExvY2F0b3I8UyBleHRlbmRzIFNjaGVtYT4gZXh0ZW5kcyBBc3luY1Jlc3VsdExvY2F0b3I8XG4gIFMsXG4gIERlcGxveVJlc3VsdFxuPiB7XG4gIC8qKlxuICAgKiBDaGVjayBhbmQgd2FpdCB1bnRpbCB0aGUgYXN5bmMgcmVxdWVzdCBiZWNvbWVzIGluIGNvbXBsZXRlZCBzdGF0dXMsXG4gICAqIGFuZCByZXRyaWV2ZSB0aGUgcmVzdWx0IGRhdGEuXG4gICAqL1xuICBhc3luYyBjb21wbGV0ZShpbmNsdWRlRGV0YWlscz86IGJvb2xlYW4pIHtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBzdXBlci5jb21wbGV0ZSgpO1xuICAgIHJldHVybiB0aGlzLl9tZXRhLmNoZWNrRGVwbG95U3RhdHVzKHJlc3VsdC5pZCwgaW5jbHVkZURldGFpbHMpO1xuICB9XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAqIFJlZ2lzdGVyIGhvb2sgaW4gY29ubmVjdGlvbiBpbnN0YW50aWF0aW9uIGZvciBkeW5hbWljYWxseSBhZGRpbmcgdGhpcyBBUEkgbW9kdWxlIGZlYXR1cmVzXG4gKi9cbnJlZ2lzdGVyTW9kdWxlKCdtZXRhZGF0YScsIChjb25uKSA9PiBuZXcgTWV0YWRhdGFBcGkoY29ubikpO1xuXG5leHBvcnQgZGVmYXVsdCBNZXRhZGF0YUFwaTtcbiJdfQ== |
@@ -9,2 +9,3 @@ import jsforce from './jsforce'; | ||
export * from './oauth2'; | ||
export * from './jwtOAuth2'; | ||
export * from './connection'; | ||
@@ -17,2 +18,2 @@ export * from './query'; | ||
export default jsforce; | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb3JlLnRzIl0sIm5hbWVzIjpbImpzZm9yY2UiLCJTZkRhdGUiLCJyZWdpc3RyeSIsIlJlZ2lzdHJ5IiwiYnJvd3NlciIsIkJyb3dzZXJDbGllbnQiLCJWRVJTSU9OIiwiUmVjb3JkUmVmZXJlbmNlIiwiUmVjb3JkU3RyZWFtIiwiRGF0ZSJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsT0FBUCxNQUFvQixXQUFwQjtBQUNBLE9BQU9DLE1BQVAsTUFBbUIsUUFBbkI7QUFDQSxPQUFPQyxRQUFQLElBQW1CQyxRQUFuQixRQUFtQyxZQUFuQztBQUNBLE9BQU9DLE9BQVAsSUFBa0JDLGFBQWxCLFFBQXVDLGtCQUF2QztBQUNBLE9BQU9DLE9BQVAsTUFBb0IsV0FBcEI7QUFFQSxPQUFPQyxlQUFQLE1BQTRCLG9CQUE1QjtBQUNBLE9BQU9DLFlBQVAsTUFBeUIsaUJBQXpCO0FBRUEsY0FBYyxVQUFkO0FBQ0EsY0FBYyxjQUFkO0FBQ0EsY0FBYyxTQUFkO0FBQ0EsY0FBYyxnQkFBZDtBQUNBLGNBQWMsV0FBZDtBQUVBLGNBQWMsU0FBZDtBQUNBLFNBQ0VGLE9BREYsRUFFRUwsTUFBTSxJQUFJUSxJQUZaLEVBR0VSLE1BSEYsRUFJRUUsUUFKRixFQUtFRSxhQUxGLEVBTUVFLGVBTkYsRUFPRUMsWUFQRixFQVFFTixRQVJGLEVBU0VFLE9BVEY7QUFXQSxlQUFlSixPQUFmIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGpzZm9yY2UgZnJvbSAnLi9qc2ZvcmNlJztcbmltcG9ydCBTZkRhdGUgZnJvbSAnLi9kYXRlJztcbmltcG9ydCByZWdpc3RyeSwgeyBSZWdpc3RyeSB9IGZyb20gJy4vcmVnaXN0cnknO1xuaW1wb3J0IGJyb3dzZXIsIHsgQnJvd3NlckNsaWVudCB9IGZyb20gJy4vYnJvd3Nlci9jbGllbnQnO1xuaW1wb3J0IFZFUlNJT04gZnJvbSAnLi9WRVJTSU9OJztcblxuaW1wb3J0IFJlY29yZFJlZmVyZW5jZSBmcm9tICcuL3JlY29yZC1yZWZlcmVuY2UnO1xuaW1wb3J0IFJlY29yZFN0cmVhbSBmcm9tICcuL3JlY29yZC1zdHJlYW0nO1xuXG5leHBvcnQgKiBmcm9tICcuL29hdXRoMic7XG5leHBvcnQgKiBmcm9tICcuL2Nvbm5lY3Rpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9xdWVyeSc7XG5leHBvcnQgKiBmcm9tICcuL3F1aWNrLWFjdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL3NvYmplY3QnO1xuXG5leHBvcnQgKiBmcm9tICcuL3R5cGVzJztcbmV4cG9ydCB7XG4gIFZFUlNJT04sXG4gIFNmRGF0ZSBhcyBEYXRlLFxuICBTZkRhdGUsXG4gIFJlZ2lzdHJ5LFxuICBCcm93c2VyQ2xpZW50LFxuICBSZWNvcmRSZWZlcmVuY2UsXG4gIFJlY29yZFN0cmVhbSxcbiAgcmVnaXN0cnksXG4gIGJyb3dzZXIsXG59O1xuZXhwb3J0IGRlZmF1bHQganNmb3JjZTtcbiJdfQ== | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb3JlLnRzIl0sIm5hbWVzIjpbImpzZm9yY2UiLCJTZkRhdGUiLCJyZWdpc3RyeSIsIlJlZ2lzdHJ5IiwiYnJvd3NlciIsIkJyb3dzZXJDbGllbnQiLCJWRVJTSU9OIiwiUmVjb3JkUmVmZXJlbmNlIiwiUmVjb3JkU3RyZWFtIiwiRGF0ZSJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsT0FBUCxNQUFvQixXQUFwQjtBQUNBLE9BQU9DLE1BQVAsTUFBbUIsUUFBbkI7QUFDQSxPQUFPQyxRQUFQLElBQW1CQyxRQUFuQixRQUFtQyxZQUFuQztBQUNBLE9BQU9DLE9BQVAsSUFBa0JDLGFBQWxCLFFBQXVDLGtCQUF2QztBQUNBLE9BQU9DLE9BQVAsTUFBb0IsV0FBcEI7QUFFQSxPQUFPQyxlQUFQLE1BQTRCLG9CQUE1QjtBQUNBLE9BQU9DLFlBQVAsTUFBeUIsaUJBQXpCO0FBRUEsY0FBYyxVQUFkO0FBQ0EsY0FBYyxhQUFkO0FBQ0EsY0FBYyxjQUFkO0FBQ0EsY0FBYyxTQUFkO0FBQ0EsY0FBYyxnQkFBZDtBQUNBLGNBQWMsV0FBZDtBQUVBLGNBQWMsU0FBZDtBQUNBLFNBQ0VGLE9BREYsRUFFRUwsTUFBTSxJQUFJUSxJQUZaLEVBR0VSLE1BSEYsRUFJRUUsUUFKRixFQUtFRSxhQUxGLEVBTUVFLGVBTkYsRUFPRUMsWUFQRixFQVFFTixRQVJGLEVBU0VFLE9BVEY7QUFXQSxlQUFlSixPQUFmIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGpzZm9yY2UgZnJvbSAnLi9qc2ZvcmNlJztcbmltcG9ydCBTZkRhdGUgZnJvbSAnLi9kYXRlJztcbmltcG9ydCByZWdpc3RyeSwgeyBSZWdpc3RyeSB9IGZyb20gJy4vcmVnaXN0cnknO1xuaW1wb3J0IGJyb3dzZXIsIHsgQnJvd3NlckNsaWVudCB9IGZyb20gJy4vYnJvd3Nlci9jbGllbnQnO1xuaW1wb3J0IFZFUlNJT04gZnJvbSAnLi9WRVJTSU9OJztcblxuaW1wb3J0IFJlY29yZFJlZmVyZW5jZSBmcm9tICcuL3JlY29yZC1yZWZlcmVuY2UnO1xuaW1wb3J0IFJlY29yZFN0cmVhbSBmcm9tICcuL3JlY29yZC1zdHJlYW0nO1xuXG5leHBvcnQgKiBmcm9tICcuL29hdXRoMic7XG5leHBvcnQgKiBmcm9tICcuL2p3dE9BdXRoMic7XG5leHBvcnQgKiBmcm9tICcuL2Nvbm5lY3Rpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9xdWVyeSc7XG5leHBvcnQgKiBmcm9tICcuL3F1aWNrLWFjdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL3NvYmplY3QnO1xuXG5leHBvcnQgKiBmcm9tICcuL3R5cGVzJztcbmV4cG9ydCB7XG4gIFZFUlNJT04sXG4gIFNmRGF0ZSBhcyBEYXRlLFxuICBTZkRhdGUsXG4gIFJlZ2lzdHJ5LFxuICBCcm93c2VyQ2xpZW50LFxuICBSZWNvcmRSZWZlcmVuY2UsXG4gIFJlY29yZFN0cmVhbSxcbiAgcmVnaXN0cnksXG4gIGJyb3dzZXIsXG59O1xuZXhwb3J0IGRlZmF1bHQganNmb3JjZTtcbiJdfQ== |
@@ -11,2 +11,3 @@ import "core-js/modules/es.array.iterator"; | ||
import client, { BrowserClient } from './browser/client'; | ||
import { JwtOAuth2 } from './jwtOAuth2'; | ||
/** | ||
@@ -26,2 +27,4 @@ * | ||
_defineProperty(this, "JwtOAuth2", JwtOAuth2); | ||
_defineProperty(this, "SfDate", SfDate); | ||
@@ -59,2 +62,2 @@ | ||
export default jsforce; | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9qc2ZvcmNlLnRzIl0sIm5hbWVzIjpbIkV2ZW50RW1pdHRlciIsIlZFUlNJT04iLCJDb25uZWN0aW9uIiwiT0F1dGgyIiwiU2ZEYXRlIiwicmVnaXN0cnkiLCJjbGllbnQiLCJCcm93c2VyQ2xpZW50IiwiSlNmb3JjZSIsInJlZ2lzdGVyTW9kdWxlIiwibmFtZSIsImZhY3RvcnkiLCJqc2ZvcmNlIiwib24iLCJjb25uIiwib2JqIiwidW5kZWZpbmVkIiwiZ2V0IiwiZW51bWVyYWJsZSIsImNvbmZpZ3VyYWJsZSJdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsU0FBU0EsWUFBVCxRQUE2QixRQUE3QjtBQUNBLE9BQU9DLE9BQVAsTUFBb0IsV0FBcEI7QUFDQSxPQUFPQyxVQUFQLE1BQXVCLGNBQXZCO0FBQ0EsT0FBT0MsTUFBUCxNQUFtQixVQUFuQjtBQUNBLE9BQU9DLE1BQVAsTUFBbUIsUUFBbkI7QUFDQSxPQUFPQyxRQUFQLE1BQW1DLFlBQW5DO0FBQ0EsT0FBT0MsTUFBUCxJQUFpQkMsYUFBakIsUUFBc0Msa0JBQXRDO0FBRUE7QUFDQTtBQUNBOztBQUNBLE1BQU1DLE9BQU4sU0FBc0JSLFlBQXRCLENBQW1DO0FBQUE7QUFBQTs7QUFBQSxxQ0FDUEMsT0FETzs7QUFBQSx3Q0FFREMsVUFGQzs7QUFBQSxvQ0FHVEMsTUFIUzs7QUFBQSxvQ0FJVEMsTUFKUzs7QUFBQSxrQ0FLWEEsTUFMVzs7QUFBQSwyQ0FNS0csYUFOTDs7QUFBQSxzQ0FPWkYsUUFQWTs7QUFBQSxxQ0FRUkMsTUFSUTtBQUFBOztBQUFBOztBQVduQyxPQUFPLFNBQVNHLGNBQVQsQ0FDTEMsSUFESyxFQUVMQyxPQUZLLEVBR0w7QUFDQUMsRUFBQUEsT0FBTyxDQUFDQyxFQUFSLENBQVcsZ0JBQVgsRUFBOEJDLElBQUQsSUFBc0I7QUFDakQsUUFBSUMsR0FBUSxHQUFHQyxTQUFmOztBQUNBLDJCQUFzQkYsSUFBdEIsRUFBNEJKLElBQTVCLEVBQWtDO0FBQ2hDTyxNQUFBQSxHQUFHLEdBQUc7QUFBQTs7QUFDSkYsUUFBQUEsR0FBRyxXQUFHQSxHQUFILHVDQUFVSixPQUFPLENBQUNHLElBQUQsQ0FBcEI7QUFDQSxlQUFPQyxHQUFQO0FBQ0QsT0FKK0I7O0FBS2hDRyxNQUFBQSxVQUFVLEVBQUUsSUFMb0I7QUFNaENDLE1BQUFBLFlBQVksRUFBRTtBQU5rQixLQUFsQztBQVFELEdBVkQ7QUFXRDtBQUVELE1BQU1QLE9BQU8sR0FBRyxJQUFJSixPQUFKLEVBQWhCO0FBQ0EsZUFBZUksT0FBZiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEV2ZW50RW1pdHRlciB9IGZyb20gJ2V2ZW50cyc7XG5pbXBvcnQgVkVSU0lPTiBmcm9tICcuL1ZFUlNJT04nO1xuaW1wb3J0IENvbm5lY3Rpb24gZnJvbSAnLi9jb25uZWN0aW9uJztcbmltcG9ydCBPQXV0aDIgZnJvbSAnLi9vYXV0aDInO1xuaW1wb3J0IFNmRGF0ZSBmcm9tICcuL2RhdGUnO1xuaW1wb3J0IHJlZ2lzdHJ5LCB7IFJlZ2lzdHJ5IH0gZnJvbSAnLi9yZWdpc3RyeSc7XG5pbXBvcnQgY2xpZW50LCB7IEJyb3dzZXJDbGllbnQgfSBmcm9tICcuL2Jyb3dzZXIvY2xpZW50JztcblxuLyoqXG4gKlxuICovXG5jbGFzcyBKU2ZvcmNlIGV4dGVuZHMgRXZlbnRFbWl0dGVyIHtcbiAgVkVSU0lPTjogdHlwZW9mIFZFUlNJT04gPSBWRVJTSU9OO1xuICBDb25uZWN0aW9uOiB0eXBlb2YgQ29ubmVjdGlvbiA9IENvbm5lY3Rpb247XG4gIE9BdXRoMjogdHlwZW9mIE9BdXRoMiA9IE9BdXRoMjtcbiAgU2ZEYXRlOiB0eXBlb2YgU2ZEYXRlID0gU2ZEYXRlO1xuICBEYXRlOiB0eXBlb2YgU2ZEYXRlID0gU2ZEYXRlO1xuICBCcm93c2VyQ2xpZW50OiB0eXBlb2YgQnJvd3NlckNsaWVudCA9IEJyb3dzZXJDbGllbnQ7XG4gIHJlZ2lzdHJ5OiBSZWdpc3RyeSA9IHJlZ2lzdHJ5O1xuICBicm93c2VyOiBCcm93c2VyQ2xpZW50ID0gY2xpZW50O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVnaXN0ZXJNb2R1bGUoXG4gIG5hbWU6IHN0cmluZyxcbiAgZmFjdG9yeTogKGNvbm46IENvbm5lY3Rpb24pID0+IGFueSxcbikge1xuICBqc2ZvcmNlLm9uKCdjb25uZWN0aW9uOm5ldycsIChjb25uOiBDb25uZWN0aW9uKSA9PiB7XG4gICAgbGV0IG9iajogYW55ID0gdW5kZWZpbmVkO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShjb25uLCBuYW1lLCB7XG4gICAgICBnZXQoKSB7XG4gICAgICAgIG9iaiA9IG9iaiA/PyBmYWN0b3J5KGNvbm4pO1xuICAgICAgICByZXR1cm4gb2JqO1xuICAgICAgfSxcbiAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgfSk7XG4gIH0pO1xufVxuXG5jb25zdCBqc2ZvcmNlID0gbmV3IEpTZm9yY2UoKTtcbmV4cG9ydCBkZWZhdWx0IGpzZm9yY2U7XG4iXX0= | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9qc2ZvcmNlLnRzIl0sIm5hbWVzIjpbIkV2ZW50RW1pdHRlciIsIlZFUlNJT04iLCJDb25uZWN0aW9uIiwiT0F1dGgyIiwiU2ZEYXRlIiwicmVnaXN0cnkiLCJjbGllbnQiLCJCcm93c2VyQ2xpZW50IiwiSnd0T0F1dGgyIiwiSlNmb3JjZSIsInJlZ2lzdGVyTW9kdWxlIiwibmFtZSIsImZhY3RvcnkiLCJqc2ZvcmNlIiwib24iLCJjb25uIiwib2JqIiwidW5kZWZpbmVkIiwiZ2V0IiwiZW51bWVyYWJsZSIsImNvbmZpZ3VyYWJsZSJdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsU0FBU0EsWUFBVCxRQUE2QixRQUE3QjtBQUNBLE9BQU9DLE9BQVAsTUFBb0IsV0FBcEI7QUFDQSxPQUFPQyxVQUFQLE1BQXVCLGNBQXZCO0FBQ0EsT0FBT0MsTUFBUCxNQUFtQixVQUFuQjtBQUNBLE9BQU9DLE1BQVAsTUFBbUIsUUFBbkI7QUFDQSxPQUFPQyxRQUFQLE1BQW1DLFlBQW5DO0FBQ0EsT0FBT0MsTUFBUCxJQUFpQkMsYUFBakIsUUFBc0Msa0JBQXRDO0FBQ0EsU0FBU0MsU0FBVCxRQUEwQixhQUExQjtBQUVBO0FBQ0E7QUFDQTs7QUFDQSxNQUFNQyxPQUFOLFNBQXNCVCxZQUF0QixDQUFtQztBQUFBO0FBQUE7O0FBQUEscUNBQ1BDLE9BRE87O0FBQUEsd0NBRURDLFVBRkM7O0FBQUEsb0NBR1RDLE1BSFM7O0FBQUEsdUNBSUhLLFNBSkc7O0FBQUEsb0NBS1RKLE1BTFM7O0FBQUEsa0NBTVhBLE1BTlc7O0FBQUEsMkNBT0tHLGFBUEw7O0FBQUEsc0NBUVpGLFFBUlk7O0FBQUEscUNBU1JDLE1BVFE7QUFBQTs7QUFBQTs7QUFZbkMsT0FBTyxTQUFTSSxjQUFULENBQ0xDLElBREssRUFFTEMsT0FGSyxFQUdMO0FBQ0FDLEVBQUFBLE9BQU8sQ0FBQ0MsRUFBUixDQUFXLGdCQUFYLEVBQThCQyxJQUFELElBQXNCO0FBQ2pELFFBQUlDLEdBQVEsR0FBR0MsU0FBZjs7QUFDQSwyQkFBc0JGLElBQXRCLEVBQTRCSixJQUE1QixFQUFrQztBQUNoQ08sTUFBQUEsR0FBRyxHQUFHO0FBQUE7O0FBQ0pGLFFBQUFBLEdBQUcsV0FBR0EsR0FBSCx1Q0FBVUosT0FBTyxDQUFDRyxJQUFELENBQXBCO0FBQ0EsZUFBT0MsR0FBUDtBQUNELE9BSitCOztBQUtoQ0csTUFBQUEsVUFBVSxFQUFFLElBTG9CO0FBTWhDQyxNQUFBQSxZQUFZLEVBQUU7QUFOa0IsS0FBbEM7QUFRRCxHQVZEO0FBV0Q7QUFFRCxNQUFNUCxPQUFPLEdBQUcsSUFBSUosT0FBSixFQUFoQjtBQUNBLGVBQWVJLE9BQWYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudEVtaXR0ZXIgfSBmcm9tICdldmVudHMnO1xuaW1wb3J0IFZFUlNJT04gZnJvbSAnLi9WRVJTSU9OJztcbmltcG9ydCBDb25uZWN0aW9uIGZyb20gJy4vY29ubmVjdGlvbic7XG5pbXBvcnQgT0F1dGgyIGZyb20gJy4vb2F1dGgyJztcbmltcG9ydCBTZkRhdGUgZnJvbSAnLi9kYXRlJztcbmltcG9ydCByZWdpc3RyeSwgeyBSZWdpc3RyeSB9IGZyb20gJy4vcmVnaXN0cnknO1xuaW1wb3J0IGNsaWVudCwgeyBCcm93c2VyQ2xpZW50IH0gZnJvbSAnLi9icm93c2VyL2NsaWVudCc7XG5pbXBvcnQgeyBKd3RPQXV0aDIgfSBmcm9tICcuL2p3dE9BdXRoMic7XG5cbi8qKlxuICpcbiAqL1xuY2xhc3MgSlNmb3JjZSBleHRlbmRzIEV2ZW50RW1pdHRlciB7XG4gIFZFUlNJT046IHR5cGVvZiBWRVJTSU9OID0gVkVSU0lPTjtcbiAgQ29ubmVjdGlvbjogdHlwZW9mIENvbm5lY3Rpb24gPSBDb25uZWN0aW9uO1xuICBPQXV0aDI6IHR5cGVvZiBPQXV0aDIgPSBPQXV0aDI7XG4gIEp3dE9BdXRoMjogdHlwZW9mIEp3dE9BdXRoMiA9IEp3dE9BdXRoMjtcbiAgU2ZEYXRlOiB0eXBlb2YgU2ZEYXRlID0gU2ZEYXRlO1xuICBEYXRlOiB0eXBlb2YgU2ZEYXRlID0gU2ZEYXRlO1xuICBCcm93c2VyQ2xpZW50OiB0eXBlb2YgQnJvd3NlckNsaWVudCA9IEJyb3dzZXJDbGllbnQ7XG4gIHJlZ2lzdHJ5OiBSZWdpc3RyeSA9IHJlZ2lzdHJ5O1xuICBicm93c2VyOiBCcm93c2VyQ2xpZW50ID0gY2xpZW50O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVnaXN0ZXJNb2R1bGUoXG4gIG5hbWU6IHN0cmluZyxcbiAgZmFjdG9yeTogKGNvbm46IENvbm5lY3Rpb24pID0+IGFueSxcbikge1xuICBqc2ZvcmNlLm9uKCdjb25uZWN0aW9uOm5ldycsIChjb25uOiBDb25uZWN0aW9uKSA9PiB7XG4gICAgbGV0IG9iajogYW55ID0gdW5kZWZpbmVkO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShjb25uLCBuYW1lLCB7XG4gICAgICBnZXQoKSB7XG4gICAgICAgIG9iaiA9IG9iaiA/PyBmYWN0b3J5KGNvbm4pO1xuICAgICAgICByZXR1cm4gb2JqO1xuICAgICAgfSxcbiAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgfSk7XG4gIH0pO1xufVxuXG5jb25zdCBqc2ZvcmNlID0gbmV3IEpTZm9yY2UoKTtcbmV4cG9ydCBkZWZhdWx0IGpzZm9yY2U7XG4iXX0= |
@@ -13,3 +13,3 @@ { | ||
"homepage": "http://github.com/jsforce/jsforce", | ||
"version": "2.0.0-beta.14", | ||
"version": "2.0.0-beta.15", | ||
"repository": { | ||
@@ -16,0 +16,0 @@ "type": "git", |
@@ -341,2 +341,44 @@ /** | ||
/** | ||
* Will deploy a recently validated deploy request | ||
* | ||
* @param options.id = the deploy ID that's been validated already from a previous checkOnly deploy request | ||
* @param options.rest = a boolean whether or not to use the REST API | ||
* @returns the deploy ID of the recent validation request | ||
*/ | ||
public async deployRecentValidation(options: { | ||
id: string; | ||
rest?: boolean; | ||
}): Promise<string> { | ||
const { id, rest } = options; | ||
let response: string; | ||
if (rest) { | ||
const messageBody = JSON.stringify({ | ||
validatedDeployRequestId: id, | ||
}); | ||
const requestInfo: HttpRequest = { | ||
method: 'POST', | ||
url: `${this._conn._baseUrl()}/metadata/deployRequest`, | ||
body: messageBody, | ||
headers: { | ||
'content-type': 'application/json', | ||
}, | ||
}; | ||
const requestOptions = { headers: 'json' }; | ||
// This is the deploy ID of the deployRecentValidation response, not | ||
// the already validated deploy ID (i.e., validateddeployrequestid). | ||
// REST returns an object with an id property, SOAP returns the id as a string directly. | ||
response = ( | ||
await this._conn.request<{ id: string }>(requestInfo, requestOptions) | ||
).id; | ||
} else { | ||
response = await this._invoke('deployRecentValidation', { | ||
validationId: id, | ||
}); | ||
} | ||
return response; | ||
} | ||
/** | ||
* Deploy components into an organization using zipped file representations | ||
@@ -343,0 +385,0 @@ * using the REST Metadata API instead of SOAP |
@@ -65,2 +65,3 @@ /** | ||
import Tooling from './api/tooling'; | ||
import { JwtOAuth2Config, JwtOAuth2 } from './jwtOAuth2'; | ||
@@ -80,2 +81,3 @@ /** | ||
oauth2?: OAuth2 | OAuth2Config; | ||
jwtOAuth2?: JwtOAuth2 | JwtOAuth2Config; | ||
maxRequest?: number; | ||
@@ -82,0 +84,0 @@ proxyUrl?: string; |
@@ -11,2 +11,3 @@ import jsforce from './jsforce'; | ||
export * from './oauth2'; | ||
export * from './jwtOAuth2'; | ||
export * from './connection'; | ||
@@ -13,0 +14,0 @@ export * from './query'; |
@@ -8,2 +8,3 @@ import { EventEmitter } from 'events'; | ||
import client, { BrowserClient } from './browser/client'; | ||
import { JwtOAuth2 } from './jwtOAuth2'; | ||
@@ -17,2 +18,3 @@ /** | ||
OAuth2: typeof OAuth2 = OAuth2; | ||
JwtOAuth2: typeof JwtOAuth2 = JwtOAuth2; | ||
SfDate: typeof SfDate = SfDate; | ||
@@ -19,0 +21,0 @@ Date: typeof SfDate = SfDate; |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Unidentified License
License(Experimental) Something that seems like a license was found, but its contents could not be matched with a known license.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
39291511
347
344474
2