@wppconnect/server 2.3.0 → 2.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/README.md +12 -2
  3. package/dist/config/upload.js +1 -1
  4. package/dist/config.js +1 -1
  5. package/dist/controller/catalogController.js +1 -1
  6. package/dist/controller/communityController.js +1 -1
  7. package/dist/controller/deviceController.js +23 -11
  8. package/dist/controller/encryptController.js +1 -1
  9. package/dist/controller/groupController.js +1 -22
  10. package/dist/controller/labelsController.js +1 -1
  11. package/dist/controller/messageController.js +5 -1
  12. package/dist/controller/miscController.js +1 -1
  13. package/dist/controller/newsletterController.js +1 -1
  14. package/dist/controller/orderController.js +3 -5
  15. package/dist/controller/sessionController.js +1 -1
  16. package/dist/controller/statusController.js +1 -1
  17. package/dist/index.js +1 -1
  18. package/dist/mapper/index.js +1 -1
  19. package/dist/mapper/tagone-chat.js +1 -1
  20. package/dist/mapper/tagone-device.js +1 -1
  21. package/dist/mapper/tagone-message-document.js +1 -1
  22. package/dist/mapper/tagone-message-image.js +1 -1
  23. package/dist/mapper/tagone-message-location.js +1 -1
  24. package/dist/mapper/tagone-message-video.js +1 -1
  25. package/dist/mapper/tagone-message.js +1 -1
  26. package/dist/mapper/tagone-onack.js +1 -1
  27. package/dist/mapper/tagone-return.js +1 -1
  28. package/dist/middleware/auth.js +1 -1
  29. package/dist/middleware/healthCheck.js +1 -1
  30. package/dist/middleware/instrumentation.js +1 -1
  31. package/dist/middleware/statusConnection.js +7 -3
  32. package/dist/routes/index.js +1 -1
  33. package/dist/server.js +1 -1
  34. package/dist/swagger.js +1 -1
  35. package/dist/swagger.json +28 -26
  36. package/dist/tests/util/bufferUtils.test.js +1 -1
  37. package/dist/types/ServerOptions.js +1 -1
  38. package/dist/types/WhatsAppServer.js +1 -1
  39. package/dist/types/express/index.d.js +1 -1
  40. package/dist/util/bucketAlreadyExists.js +1 -1
  41. package/dist/util/bufferutils.js +1 -1
  42. package/dist/util/chatWootClient.js +1 -1
  43. package/dist/util/createSessionUtil.js +5 -2
  44. package/dist/util/db/mongodb/db.js +1 -1
  45. package/dist/util/db/redis/db.js +1 -1
  46. package/dist/util/functions.js +10 -4
  47. package/dist/util/getAllTokens.js +1 -1
  48. package/dist/util/logger.js +1 -1
  49. package/dist/util/manageSession.js +1 -1
  50. package/dist/util/sessionUtil.js +1 -1
  51. package/dist/util/tokenStore/FileTokenStore/FileTokenStore.js +1 -1
  52. package/dist/util/tokenStore/factory.js +1 -1
  53. package/dist/util/tokenStore/fileTokenStory.js +1 -1
  54. package/dist/util/tokenStore/firebaseTokenStory.js +1 -1
  55. package/dist/util/tokenStore/model/token.js +1 -1
  56. package/dist/util/tokenStore/mongodbTokenStory.js +1 -1
  57. package/dist/util/tokenStore/redisTokenStory.js +1 -1
  58. package/dist/util/tokenStore/types.js +1 -1
  59. package/package.json +45 -45
@@ -325,4 +325,4 @@ class chatWootClient {constructor(config, session) {this.config = config;this.mo
325
325
  }
326
326
  }
327
327
  }exports.default = chatWootClient;
328
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYXhpb3MiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9mb3JtRGF0YSIsIl9taW1lVHlwZXMiLCJfYnVmZmVydXRpbHMiLCJfc2Vzc2lvblV0aWwiLCJjaGF0V29vdENsaWVudCIsImNvbnN0cnVjdG9yIiwiY29uZmlnIiwic2Vzc2lvbiIsIm1vYmlsZV9uYW1lIiwibW9iaWxlX251bWJlciIsInNlbmRlciIsInB1c2huYW1lIiwiaWQiLCJhY2NvdW50X2lkIiwiaW5ib3hfaWQiLCJhcGkiLCJheGlvcyIsImNyZWF0ZSIsImJhc2VVUkwiLCJoZWFkZXJzIiwiYXBpX2FjY2Vzc190b2tlbiIsInRva2VuIiwiZXZlbnRFbWl0dGVyIiwib24iLCJxckNvZGUiLCJ1cmxDb2RlIiwiY2xpZW50Iiwic2V0VGltZW91dCIsImNoYXR3b290Iiwic2VuZFFyQ29kZSIsInNlbmRNZXNzYWdlIiwiY2hhdElkIiwidHlwZSIsInRpbWVzdGFtcCIsIm1pbWV0eXBlIiwiY2FwdGlvbiIsInJlcGxhY2UiLCJzdGF0dXMiLCJzZW5kU3RhdHVzIiwiYm9keSIsIm1lc3NhZ2UiLCJpc0dyb3VwTXNnIiwiaW5kZXhPZiIsImNvbnRhY3QiLCJjcmVhdGVDb250YWN0IiwiY29udmVyc2F0aW9uIiwiY3JlYXRlQ29udmVyc2F0aW9uIiwic3BsaXQiLCJpbmNsdWRlcyIsImV4dGVuc2lvbiIsIm1pbWUiLCJmaWxlbmFtZSIsImI2NCIsImJ1ZmZlciIsImRlY3J5cHRGaWxlIiwidG9TdHJpbmciLCJtZWRpYURhdGEiLCJCdWZmZXIiLCJmcm9tIiwic3RyZWFtIiwiYnVmZmVydXRpbHMiLCJidWZmZXJUb1JlYWRhYmxlU3RyZWFtIiwiZGF0YSIsIkZvcm1EYXRhIiwiYXBwZW5kIiwiY29udGVudFR5cGUiLCJjb25maWdQb3N0IiwiZ2V0SGVhZGVycyIsImVuZHBvaW50IiwicmVzdWx0IiwicG9zdCIsImNvbnRlbnQiLCJtZXNzYWdlX3R5cGUiLCJlIiwiY29uc29sZSIsImVycm9yIiwiZmluZENvbnRhY3QiLCJxdWVyeSIsImdldCIsImxvZyIsIm5hbWUiLCJpc015Q29udGFjdCIsImZvcm1hdHRlZE5hbWUiLCJwaG9uZV9udW1iZXIiLCJ1c2VyIiwibWV0YSIsImNvdW50IiwicGF5bG9hZCIsImZpbmRDb252ZXJzYXRpb24iLCJmaW5kIiwic291cmNlX2lkIiwiY29udGFjdF9pZCIsImV4cG9ydHMiLCJkZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWwvY2hhdFdvb3RDbGllbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDIxIFdQUENvbm5lY3QgVGVhbVxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IGF4aW9zLCB7IEF4aW9zSW5zdGFuY2UsIEF4aW9zUmVxdWVzdENvbmZpZyB9IGZyb20gJ2F4aW9zJztcbmltcG9ydCB7IGRlZmF1bHQgYXMgRm9ybURhdGEgfSBmcm9tICdmb3JtLWRhdGEnO1xuaW1wb3J0IG1pbWUgZnJvbSAnbWltZS10eXBlcyc7XG5cbmltcG9ydCBidWZmZXJ1dGlscyBmcm9tICcuL2J1ZmZlcnV0aWxzJztcbi8vIGltcG9ydCBidWZmZXJVdGlscyBmcm9tICcuL2J1ZmZlcnV0aWxzJztcbmltcG9ydCB7IGV2ZW50RW1pdHRlciB9IGZyb20gJy4vc2Vzc2lvblV0aWwnO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBjaGF0V29vdENsaWVudCB7XG4gIGRlY2xhcmUgY29uZmlnOiBhbnk7XG4gIGRlY2xhcmUgc2Vzc2lvbjogYW55O1xuICBkZWNsYXJlIG1vYmlsZV9uYW1lOiBhbnk7XG4gIGRlY2xhcmUgbW9iaWxlX251bWJlcjogYW55O1xuICBkZWNsYXJlIHNlbmRlcjogYW55O1xuICBkZWNsYXJlIGFjY291bnRfaWQ6IGFueTtcbiAgZGVjbGFyZSBpbmJveF9pZDogYW55O1xuICBkZWNsYXJlIGFwaTogQXhpb3NJbnN0YW5jZTtcblxuICBjb25zdHJ1Y3Rvcihjb25maWc6IGFueSwgc2Vzc2lvbjogc3RyaW5nKSB7XG4gICAgdGhpcy5jb25maWcgPSBjb25maWc7XG4gICAgdGhpcy5tb2JpbGVfbmFtZSA9IHRoaXMuY29uZmlnLm1vYmlsZV9uYW1lXG4gICAgICA/IHRoaXMuY29uZmlnLm1vYmlsZV9uYW1lXG4gICAgICA6IGBXUFBDb25uZWN0YDtcbiAgICB0aGlzLm1vYmlsZV9udW1iZXIgPSB0aGlzLmNvbmZpZy5tb2JpbGVfbnVtYmVyXG4gICAgICA/IHRoaXMuY29uZmlnLm1vYmlsZV9udW1iZXJcbiAgICAgIDogJzU1MTE5OTk5OTk5OTknO1xuICAgIHRoaXMuc2VuZGVyID0ge1xuICAgICAgcHVzaG5hbWU6IHRoaXMubW9iaWxlX25hbWUsXG4gICAgICBpZDogdGhpcy5tb2JpbGVfbnVtYmVyLFxuICAgIH07XG4gICAgdGhpcy5hY2NvdW50X2lkID0gdGhpcy5jb25maWcuYWNjb3VudF9pZDtcbiAgICB0aGlzLmluYm94X2lkID0gdGhpcy5jb25maWcuaW5ib3hfaWQ7XG4gICAgdGhpcy5hcGkgPSBheGlvcy5jcmVhdGUoe1xuICAgICAgYmFzZVVSTDogdGhpcy5jb25maWcuYmFzZVVSTCxcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTgnLFxuICAgICAgICBhcGlfYWNjZXNzX3Rva2VuOiB0aGlzLmNvbmZpZy50b2tlbixcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICAvL2Fzc2luYSBvIGV2ZW50byBkbyBxcmNvZGVcbiAgICBldmVudEVtaXR0ZXIub24oYHFyY29kZS0ke3Nlc3Npb259YCwgKHFyQ29kZSwgdXJsQ29kZSwgY2xpZW50KSA9PiB7XG4gICAgICBzZXRUaW1lb3V0KGFzeW5jICgpID0+IHtcbiAgICAgICAgaWYgKGNvbmZpZz8uY2hhdHdvb3Q/LnNlbmRRckNvZGUgIT09IGZhbHNlKSB7XG4gICAgICAgICAgdGhpcy5zZW5kTWVzc2FnZShjbGllbnQsIHtcbiAgICAgICAgICAgIHNlbmRlcjogdGhpcy5zZW5kZXIsXG4gICAgICAgICAgICBjaGF0SWQ6IHRoaXMubW9iaWxlX251bWJlciArICdAYy51cycsXG4gICAgICAgICAgICB0eXBlOiAnaW1hZ2UnLFxuICAgICAgICAgICAgdGltZXN0YW1wOiAncXJjb2RlJyxcbiAgICAgICAgICAgIG1pbWV0eXBlOiAnaW1hZ2UvcG5nJyxcbiAgICAgICAgICAgIGNhcHRpb246ICdsZWlhIG8gcXJDb2RlJyxcbiAgICAgICAgICAgIHFyQ29kZTogcXJDb2RlLnJlcGxhY2UoJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCwnLCAnJyksXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0sIDEwMDApO1xuICAgIH0pO1xuXG4gICAgLy9hc3Npb25hIG8gZXZlbnRvIGRvIHN0YXR1c1xuICAgIGV2ZW50RW1pdHRlci5vbihgc3RhdHVzLSR7c2Vzc2lvbn1gLCAoY2xpZW50LCBzdGF0dXMpID0+IHtcbiAgICAgIGlmIChjb25maWc/LmNoYXR3b290Py5zZW5kU3RhdHVzICE9PSBmYWxzZSkge1xuICAgICAgICB0aGlzLnNlbmRNZXNzYWdlKGNsaWVudCwge1xuICAgICAgICAgIHNlbmRlcjogdGhpcy5zZW5kZXIsXG4gICAgICAgICAgY2hhdElkOiB0aGlzLm1vYmlsZV9udW1iZXIgKyAnQGMudXMnLFxuICAgICAgICAgIGJvZHk6IGB3cHBjb25uZWN0IHN0YXR1czogJHtzdGF0dXN9IGAsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgLy9hc3NpbmEgbyBldmVudG8gZGUgbWVuc2FnZW1cbiAgICBldmVudEVtaXR0ZXIub24oYG1lbnNhZ2VtLSR7c2Vzc2lvbn1gLCAoY2xpZW50LCBtZXNzYWdlKSA9PiB7XG4gICAgICB0aGlzLnNlbmRNZXNzYWdlKGNsaWVudCwgbWVzc2FnZSk7XG4gICAgfSk7XG4gIH1cblxuICAvLyBhc3luYyBzZW5kTWVzc2FnZShjbGllbnQ6IGFueSwgbWVzc2FnZTogYW55KSB7XG4gIC8vICAgaWYgKG1lc3NhZ2UuaXNHcm91cE1zZyB8fCBtZXNzYWdlLmNoYXRJZC5pbmRleE9mKCdAYnJvYWRjYXN0JykgPiAwKSByZXR1cm47XG4gIC8vICAgY29uc3QgY29udGFjdCA9IGF3YWl0IHRoaXMuY3JlYXRlQ29udGFjdChtZXNzYWdlKTtcbiAgLy8gICBjb25zdCBjb252ZXJzYXRpb24gPSBhd2FpdCB0aGlzLmNyZWF0ZUNvbnZlcnNhdGlvbihcbiAgLy8gICAgIGNvbnRhY3QsXG4gIC8vICAgICBtZXNzYWdlLmNoYXRJZC5zcGxpdCgnQCcpWzBdXG4gIC8vICAgKTtcblxuICAvLyAgIHRyeSB7XG4gIC8vICAgICBpZiAoXG4gIC8vICAgICAgIG1lc3NhZ2UudHlwZSA9PSAnaW1hZ2UnIHx8XG4gIC8vICAgICAgIG1lc3NhZ2UudHlwZSA9PSAndmlkZW8nIHx8XG4gIC8vICAgICAgIG1lc3NhZ2UudHlwZSA9PSAnaW4nIHx8XG4gIC8vICAgICAgIG1lc3NhZ2UudHlwZSA9PSAnZG9jdW1lbnQnIHx8XG4gIC8vICAgICAgIG1lc3NhZ2UudHlwZSA9PSAncHR0JyB8fFxuICAvLyAgICAgICBtZXNzYWdlLnR5cGUgPT0gJ2F1ZGlvJyB8fFxuICAvLyAgICAgICBtZXNzYWdlLnR5cGUgPT0gJ3N0aWNrZXInXG4gIC8vICAgICApIHtcbiAgLy8gICAgICAgaWYgKG1lc3NhZ2UubWltZXR5cGUgPT0gJ2ltYWdlL3dlYnAnKSBtZXNzYWdlLm1pbWV0eXBlID0gJ2ltYWdlL2pwZWcnO1xuICAvLyAgICAgICBjb25zdCBleHRlbnNpb24gPSBtaW1lLmV4dGVuc2lvbihtZXNzYWdlLm1pbWV0eXBlKTtcbiAgLy8gICAgICAgY29uc3QgZmlsZW5hbWUgPSBgJHttZXNzYWdlLnRpbWVzdGFtcH0uJHtleHRlbnNpb259YDtcbiAgLy8gICAgICAgbGV0IGI2NDtcblxuICAvLyAgICAgICBpZiAobWVzc2FnZS5xckNvZGUpIGI2NCA9IG1lc3NhZ2UucXJDb2RlO1xuICAvLyAgICAgICBlbHNlIHtcbiAgLy8gICAgICAgICBjb25zdCBidWZmZXIgPSBhd2FpdCBjbGllbnQuZGVjcnlwdEZpbGUobWVzc2FnZSk7XG4gIC8vICAgICAgICAgYjY0ID0gYXdhaXQgYnVmZmVyLnRvU3RyaW5nKCdiYXNlNjQnKTtcbiAgLy8gICAgICAgfVxuXG4gIC8vICAgICAgIGNvbnN0IG1lZGlhRGF0YSA9IEJ1ZmZlci5mcm9tKGI2NCwgJ2Jhc2U2NCcpO1xuXG4gIC8vICAgICAgIC8vIENyZWF0ZSBhIHJlYWRhYmxlIHN0cmVhbSBmcm9tIHRoZSBCdWZmZXJcbiAgLy8gICAgICAgY29uc3Qgc3RyZWFtID0gbmV3IFJlYWRhYmxlKCk7XG4gIC8vICAgICAgIHN0cmVhbS5wdXNoKG1lZGlhRGF0YSk7XG4gIC8vICAgICAgIHN0cmVhbS5wdXNoKG51bGwpOyAvLyBTaWduYWxpbmcgdGhlIGVuZCBvZiB0aGUgc3RyZWFtXG5cbiAgLy8gICAgICAgY29uc3QgZGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuICAvLyAgICAgICBpZiAobWVzc2FnZS5jYXB0aW9uKSB7XG4gIC8vICAgICAgICAgZGF0YS5hcHBlbmQoJ2NvbnRlbnQnLCBtZXNzYWdlLmNhcHRpb24pO1xuICAvLyAgICAgICB9XG5cbiAgLy8gICAgICAgZGF0YS5hcHBlbmQoJ2F0dGFjaG1lbnRzW10nLCBzdHJlYW0sIHtcbiAgLy8gICAgICAgICBmaWxlbmFtZTogZmlsZW5hbWUsXG4gIC8vICAgICAgICAgY29udGVudFR5cGU6IG1lc3NhZ2UubWltZXR5cGUsXG4gIC8vICAgICAgIH0pO1xuXG4gIC8vICAgICAgIGRhdGEuYXBwZW5kKCdtZXNzYWdlX3R5cGUnLCAnaW5jb21pbmcnKTtcbiAgLy8gICAgICAgZGF0YS5hcHBlbmQoJ3ByaXZhdGUnLCAnZmFsc2UnKTtcblxuICAvLyAgICAgICBjb25zdCBjb25maWdQb3N0ID0gT2JqZWN0LmFzc2lnbihcbiAgLy8gICAgICAgICB7fSxcbiAgLy8gICAgICAgICB7XG4gIC8vICAgICAgICAgICBiYXNlVVJMOiB0aGlzLmNvbmZpZy5iYXNlVVJMLFxuICAvLyAgICAgICAgICAgaGVhZGVyczoge1xuICAvLyAgICAgICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtOCcsXG4gIC8vICAgICAgICAgICAgIGFwaV9hY2Nlc3NfdG9rZW46IHRoaXMuY29uZmlnLnRva2VuLFxuICAvLyAgICAgICAgICAgfSxcbiAgLy8gICAgICAgICB9XG4gIC8vICAgICAgICk7XG5cbiAgLy8gICAgICAgY29uZmlnUG9zdC5oZWFkZXJzID0geyAuLi5jb25maWdQb3N0LmhlYWRlcnMsIC4uLmRhdGEuZ2V0SGVhZGVycygpIH07XG4gIC8vICAgICAgIGNvbnNvbGUubG9nKCdQUsOJLVJFUVVFU1QnKTtcbiAgLy8gICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgYXhpb3MucG9zdChcbiAgLy8gICAgICAgICBgYXBpL3YxL2FjY291bnRzLyR7dGhpcy5hY2NvdW50X2lkfS9jb252ZXJzYXRpb25zLyR7Y29udmVyc2F0aW9uLmlkfS9tZXNzYWdlc2AsXG4gIC8vICAgICAgICAgZGF0YSxcbiAgLy8gICAgICAgICBjb25maWdQb3N0XG4gIC8vICAgICAgICk7XG4gIC8vICAgICAgIGNvbnNvbGUubG9nKCdQT1MtUkVRVUVTVCcpO1xuICAvLyAgICAgICByZXR1cm4gcmVzdWx0O1xuICAvLyAgICAgfSBlbHNlIHtcbiAgLy8gICAgICAgY29uc3QgYm9keSA9IHtcbiAgLy8gICAgICAgICBjb250ZW50OiBtZXNzYWdlLmJvZHksXG4gIC8vICAgICAgICAgbWVzc2FnZV90eXBlOiAnaW5jb21pbmcnLFxuICAvLyAgICAgICB9O1xuICAvLyAgICAgICBjb25zdCB7IGRhdGEgfSA9IGF3YWl0IHRoaXMuYXBpLnBvc3QoXG4gIC8vICAgICAgICAgYGFwaS92MS9hY2NvdW50cy8ke3RoaXMuYWNjb3VudF9pZH0vY29udmVyc2F0aW9ucy8ke2NvbnZlcnNhdGlvbi5pZH0vbWVzc2FnZXNgLFxuICAvLyAgICAgICAgIGJvZHlcbiAgLy8gICAgICAgKTtcbiAgLy8gICAgICAgcmV0dXJuIGRhdGE7XG4gIC8vICAgICB9XG4gIC8vICAgfSBjYXRjaCAoZSkge1xuICAvLyAgICAgcmV0dXJuIG51bGw7XG4gIC8vICAgfVxuICAvLyB9XG5cbiAgYXN5bmMgc2VuZE1lc3NhZ2UoY2xpZW50OiBhbnksIG1lc3NhZ2U6IGFueSkge1xuICAgIGlmIChtZXNzYWdlLmlzR3JvdXBNc2cgfHwgbWVzc2FnZS5jaGF0SWQuaW5kZXhPZignQGJyb2FkY2FzdCcpID4gMCkgcmV0dXJuO1xuXG4gICAgY29uc3QgY29udGFjdCA9IGF3YWl0IHRoaXMuY3JlYXRlQ29udGFjdChtZXNzYWdlKTtcbiAgICBjb25zdCBjb252ZXJzYXRpb24gPSBhd2FpdCB0aGlzLmNyZWF0ZUNvbnZlcnNhdGlvbihcbiAgICAgIGNvbnRhY3QsXG4gICAgICBtZXNzYWdlLmNoYXRJZC5zcGxpdCgnQCcpWzBdXG4gICAgKTtcblxuICAgIHRyeSB7XG4gICAgICBpZiAoXG4gICAgICAgIFtcbiAgICAgICAgICAnaW1hZ2UnLFxuICAgICAgICAgICd2aWRlbycsXG4gICAgICAgICAgJ2luJyxcbiAgICAgICAgICAnZG9jdW1lbnQnLFxuICAgICAgICAgICdwdHQnLFxuICAgICAgICAgICdhdWRpbycsXG4gICAgICAgICAgJ3N0aWNrZXInLFxuICAgICAgICBdLmluY2x1ZGVzKG1lc3NhZ2UudHlwZSlcbiAgICAgICkge1xuICAgICAgICBpZiAobWVzc2FnZS5taW1ldHlwZSA9PT0gJ2ltYWdlL3dlYnAnKSBtZXNzYWdlLm1pbWV0eXBlID0gJ2ltYWdlL2pwZWcnO1xuICAgICAgICBjb25zdCBleHRlbnNpb24gPSBtaW1lLmV4dGVuc2lvbihtZXNzYWdlLm1pbWV0eXBlKTtcbiAgICAgICAgY29uc3QgZmlsZW5hbWUgPSBgJHttZXNzYWdlLnRpbWVzdGFtcH0uJHtleHRlbnNpb259YDtcbiAgICAgICAgbGV0IGI2NDtcblxuICAgICAgICBpZiAobWVzc2FnZS5xckNvZGUpIHtcbiAgICAgICAgICBiNjQgPSBtZXNzYWdlLnFyQ29kZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCBidWZmZXIgPSBhd2FpdCBjbGllbnQuZGVjcnlwdEZpbGUobWVzc2FnZSk7XG4gICAgICAgICAgYjY0ID0gYnVmZmVyLnRvU3RyaW5nKCdiYXNlNjQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG1lZGlhRGF0YSA9IEJ1ZmZlci5mcm9tKGI2NCwgJ2Jhc2U2NCcpO1xuICAgICAgICBjb25zdCBzdHJlYW0gPSBidWZmZXJ1dGlscy5idWZmZXJUb1JlYWRhYmxlU3RyZWFtKG1lZGlhRGF0YSk7XG5cbiAgICAgICAgY29uc3QgZGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgICAgICBpZiAobWVzc2FnZS5jYXB0aW9uKSB7XG4gICAgICAgICAgZGF0YS5hcHBlbmQoJ2NvbnRlbnQnLCBtZXNzYWdlLmNhcHRpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgZGF0YS5hcHBlbmQoJ2F0dGFjaG1lbnRzW10nLCBzdHJlYW0sIHtcbiAgICAgICAgICBmaWxlbmFtZTogZmlsZW5hbWUsXG4gICAgICAgICAgY29udGVudFR5cGU6IG1lc3NhZ2UubWltZXR5cGUsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGRhdGEuYXBwZW5kKCdtZXNzYWdlX3R5cGUnLCAnaW5jb21pbmcnKTtcbiAgICAgICAgZGF0YS5hcHBlbmQoJ3ByaXZhdGUnLCAnZmFsc2UnKTtcblxuICAgICAgICBjb25zdCBjb25maWdQb3N0OiBBeGlvc1JlcXVlc3RDb25maWcgPSB7XG4gICAgICAgICAgYmFzZVVSTDogdGhpcy5jb25maWcuYmFzZVVSTCxcbiAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICBhcGlfYWNjZXNzX3Rva2VuOiB0aGlzLmNvbmZpZy50b2tlbixcbiAgICAgICAgICAgIC4uLmRhdGEuZ2V0SGVhZGVycygpLFxuICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGVuZHBvaW50ID0gYGFwaS92MS9hY2NvdW50cy8ke3RoaXMuYWNjb3VudF9pZH0vY29udmVyc2F0aW9ucy8ke2NvbnZlcnNhdGlvbi5pZH0vbWVzc2FnZXNgO1xuXG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGF4aW9zLnBvc3QoZW5kcG9pbnQsIGRhdGEsIGNvbmZpZ1Bvc3QpO1xuXG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBib2R5ID0ge1xuICAgICAgICAgIGNvbnRlbnQ6IG1lc3NhZ2UuYm9keSxcbiAgICAgICAgICBtZXNzYWdlX3R5cGU6ICdpbmNvbWluZycsXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGVuZHBvaW50ID0gYGFwaS92MS9hY2NvdW50cy8ke3RoaXMuYWNjb3VudF9pZH0vY29udmVyc2F0aW9ucy8ke2NvbnZlcnNhdGlvbi5pZH0vbWVzc2FnZXNgO1xuXG4gICAgICAgIGNvbnN0IHsgZGF0YSB9ID0gYXdhaXQgdGhpcy5hcGkucG9zdChlbmRwb2ludCwgYm9keSk7XG4gICAgICAgIHJldHVybiBkYXRhO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIHNlbmRpbmcgbWVzc2FnZTonLCBlKTtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGZpbmRDb250YWN0KHF1ZXJ5OiBzdHJpbmcpIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgeyBkYXRhIH0gPSBhd2FpdCB0aGlzLmFwaS5nZXQoXG4gICAgICAgIGBhcGkvdjEvYWNjb3VudHMvJHt0aGlzLmFjY291bnRfaWR9L2NvbnRhY3RzL3NlYXJjaC8/cT0ke3F1ZXJ5fWBcbiAgICAgICk7XG4gICAgICByZXR1cm4gZGF0YTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjb25zb2xlLmxvZyhlKTtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGNyZWF0ZUNvbnRhY3QobWVzc2FnZTogYW55KSB7XG4gICAgY29uc3QgYm9keSA9IHtcbiAgICAgIGluYm94X2lkOiB0aGlzLmluYm94X2lkLFxuICAgICAgbmFtZTogbWVzc2FnZS5zZW5kZXIuaXNNeUNvbnRhY3RcbiAgICAgICAgPyBtZXNzYWdlLnNlbmRlci5mb3JtYXR0ZWROYW1lXG4gICAgICAgIDogbWVzc2FnZS5zZW5kZXIucHVzaG5hbWUgfHwgbWVzc2FnZS5zZW5kZXIuZm9ybWF0dGVkTmFtZSxcbiAgICAgIHBob25lX251bWJlcjpcbiAgICAgICAgdHlwZW9mIG1lc3NhZ2Uuc2VuZGVyLmlkID09ICdvYmplY3QnXG4gICAgICAgICAgPyBtZXNzYWdlLnNlbmRlci5pZC51c2VyXG4gICAgICAgICAgOiBtZXNzYWdlLnNlbmRlci5pZC5zcGxpdCgnQCcpWzBdLFxuICAgIH07XG4gICAgYm9keS5waG9uZV9udW1iZXIgPSBgKyR7Ym9keS5waG9uZV9udW1iZXJ9YDtcbiAgICBjb25zdCBjb250YWN0ID0gYXdhaXQgdGhpcy5maW5kQ29udGFjdChib2R5LnBob25lX251bWJlci5yZXBsYWNlKCcrJywgJycpKTtcbiAgICBpZiAoY29udGFjdCAmJiBjb250YWN0Lm1ldGEuY291bnQgPiAwKSByZXR1cm4gY29udGFjdC5wYXlsb2FkWzBdO1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCB0aGlzLmFwaS5wb3N0KFxuICAgICAgICBgYXBpL3YxL2FjY291bnRzLyR7dGhpcy5hY2NvdW50X2lkfS9jb250YWN0c2AsXG4gICAgICAgIGJvZHlcbiAgICAgICk7XG4gICAgICByZXR1cm4gZGF0YS5kYXRhLnBheWxvYWQuY29udGFjdDtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjb25zb2xlLmxvZyhlKTtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGZpbmRDb252ZXJzYXRpb24oY29udGFjdDogYW55KSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHsgZGF0YSB9ID0gYXdhaXQgdGhpcy5hcGkuZ2V0KFxuICAgICAgICBgYXBpL3YxL2FjY291bnRzLyR7dGhpcy5hY2NvdW50X2lkfS9jb250YWN0cy8ke2NvbnRhY3QuaWR9L2NvbnZlcnNhdGlvbnNgXG4gICAgICApO1xuICAgICAgcmV0dXJuIGRhdGEucGF5bG9hZC5maW5kKFxuICAgICAgICAoZTogYW55KSA9PiBlLmluYm94X2lkID09IHRoaXMuaW5ib3hfaWQgJiYgZS5zdGF0dXMgIT0gJ3Jlc29sdmVkJ1xuICAgICAgKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjb25zb2xlLmxvZyhlKTtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGNyZWF0ZUNvbnZlcnNhdGlvbihjb250YWN0OiBhbnksIHNvdXJjZV9pZDogYW55KSB7XG4gICAgY29uc3QgY29udmVyc2F0aW9uID0gYXdhaXQgdGhpcy5maW5kQ29udmVyc2F0aW9uKGNvbnRhY3QpO1xuICAgIGlmIChjb252ZXJzYXRpb24pIHJldHVybiBjb252ZXJzYXRpb247XG5cbiAgICBjb25zdCBib2R5ID0ge1xuICAgICAgc291cmNlX2lkOiBzb3VyY2VfaWQsXG4gICAgICBpbmJveF9pZDogdGhpcy5pbmJveF9pZCxcbiAgICAgIGNvbnRhY3RfaWQ6IGNvbnRhY3QuaWQsXG4gICAgICBzdGF0dXM6ICdvcGVuJyxcbiAgICB9O1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHsgZGF0YSB9ID0gYXdhaXQgdGhpcy5hcGkucG9zdChcbiAgICAgICAgYGFwaS92MS9hY2NvdW50cy8ke3RoaXMuYWNjb3VudF9pZH0vY29udmVyc2F0aW9uc2AsXG4gICAgICAgIGJvZHlcbiAgICAgICk7XG4gICAgICByZXR1cm4gZGF0YTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjb25zb2xlLmxvZyhlKTtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFlQSxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxTQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRSxVQUFBLEdBQUFILHNCQUFBLENBQUFDLE9BQUE7O0FBRUEsSUFBQUcsWUFBQSxHQUFBSixzQkFBQSxDQUFBQyxPQUFBOztBQUVBLElBQUFJLFlBQUEsR0FBQUosT0FBQSxrQkFBNkMsQ0FyQjdDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQWRBLENBb0JBO0FBR2UsTUFBTUssY0FBYyxDQUFDLENBVWxDQyxXQUFXQSxDQUFDQyxNQUFXLEVBQUVDLE9B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
328
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYXhpb3MiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9mb3JtRGF0YSIsIl9taW1lVHlwZXMiLCJfYnVmZmVydXRpbHMiLCJfc2Vzc2lvblV0aWwiLCJjaGF0V29vdENsaWVudCIsImNvbnN0cnVjdG9yIiwiY29uZmlnIiwic2Vzc2lvbiIsIm1vYmlsZV9uYW1lIiwibW9iaWxlX251bWJlciIsInNlbmRlciIsInB1c2huYW1lIiwiaWQiLCJhY2NvdW50X2lkIiwiaW5ib3hfaWQiLCJhcGkiLCJheGlvcyIsImNyZWF0ZSIsImJhc2VVUkwiLCJoZWFkZXJzIiwiYXBpX2FjY2Vzc190b2tlbiIsInRva2VuIiwiZXZlbnRFbWl0dGVyIiwib24iLCJxckNvZGUiLCJ1cmxDb2RlIiwiY2xpZW50Iiwic2V0VGltZW91dCIsImNoYXR3b290Iiwic2VuZFFyQ29kZSIsInNlbmRNZXNzYWdlIiwiY2hhdElkIiwidHlwZSIsInRpbWVzdGFtcCIsIm1pbWV0eXBlIiwiY2FwdGlvbiIsInJlcGxhY2UiLCJzdGF0dXMiLCJzZW5kU3RhdHVzIiwiYm9keSIsIm1lc3NhZ2UiLCJpc0dyb3VwTXNnIiwiaW5kZXhPZiIsImNvbnRhY3QiLCJjcmVhdGVDb250YWN0IiwiY29udmVyc2F0aW9uIiwiY3JlYXRlQ29udmVyc2F0aW9uIiwic3BsaXQiLCJpbmNsdWRlcyIsImV4dGVuc2lvbiIsIm1pbWUiLCJmaWxlbmFtZSIsImI2NCIsImJ1ZmZlciIsImRlY3J5cHRGaWxlIiwidG9TdHJpbmciLCJtZWRpYURhdGEiLCJCdWZmZXIiLCJmcm9tIiwic3RyZWFtIiwiYnVmZmVydXRpbHMiLCJidWZmZXJUb1JlYWRhYmxlU3RyZWFtIiwiZGF0YSIsIkZvcm1EYXRhIiwiYXBwZW5kIiwiY29udGVudFR5cGUiLCJjb25maWdQb3N0IiwiZ2V0SGVhZGVycyIsImVuZHBvaW50IiwicmVzdWx0IiwicG9zdCIsImNvbnRlbnQiLCJtZXNzYWdlX3R5cGUiLCJlIiwiY29uc29sZSIsImVycm9yIiwiZmluZENvbnRhY3QiLCJxdWVyeSIsImdldCIsImxvZyIsIm5hbWUiLCJpc015Q29udGFjdCIsImZvcm1hdHRlZE5hbWUiLCJwaG9uZV9udW1iZXIiLCJ1c2VyIiwibWV0YSIsImNvdW50IiwicGF5bG9hZCIsImZpbmRDb252ZXJzYXRpb24iLCJmaW5kIiwic291cmNlX2lkIiwiY29udGFjdF9pZCIsImV4cG9ydHMiLCJkZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWwvY2hhdFdvb3RDbGllbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDIxIFdQUENvbm5lY3QgVGVhbVxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IGF4aW9zLCB7IEF4aW9zSW5zdGFuY2UsIEF4aW9zUmVxdWVzdENvbmZpZyB9IGZyb20gJ2F4aW9zJztcbmltcG9ydCB7IGRlZmF1bHQgYXMgRm9ybURhdGEgfSBmcm9tICdmb3JtLWRhdGEnO1xuaW1wb3J0IG1pbWUgZnJvbSAnbWltZS10eXBlcyc7XG5cbmltcG9ydCBidWZmZXJ1dGlscyBmcm9tICcuL2J1ZmZlcnV0aWxzJztcbi8vIGltcG9ydCBidWZmZXJVdGlscyBmcm9tICcuL2J1ZmZlcnV0aWxzJztcbmltcG9ydCB7IGV2ZW50RW1pdHRlciB9IGZyb20gJy4vc2Vzc2lvblV0aWwnO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBjaGF0V29vdENsaWVudCB7XG4gIGRlY2xhcmUgY29uZmlnOiBhbnk7XG4gIGRlY2xhcmUgc2Vzc2lvbjogYW55O1xuICBkZWNsYXJlIG1vYmlsZV9uYW1lOiBhbnk7XG4gIGRlY2xhcmUgbW9iaWxlX251bWJlcjogYW55O1xuICBkZWNsYXJlIHNlbmRlcjogYW55O1xuICBkZWNsYXJlIGFjY291bnRfaWQ6IGFueTtcbiAgZGVjbGFyZSBpbmJveF9pZDogYW55O1xuICBkZWNsYXJlIGFwaTogQXhpb3NJbnN0YW5jZTtcblxuICBjb25zdHJ1Y3Rvcihjb25maWc6IGFueSwgc2Vzc2lvbjogc3RyaW5nKSB7XG4gICAgdGhpcy5jb25maWcgPSBjb25maWc7XG4gICAgdGhpcy5tb2JpbGVfbmFtZSA9IHRoaXMuY29uZmlnLm1vYmlsZV9uYW1lXG4gICAgICA/IHRoaXMuY29uZmlnLm1vYmlsZV9uYW1lXG4gICAgICA6IGBXUFBDb25uZWN0YDtcbiAgICB0aGlzLm1vYmlsZV9udW1iZXIgPSB0aGlzLmNvbmZpZy5tb2JpbGVfbnVtYmVyXG4gICAgICA/IHRoaXMuY29uZmlnLm1vYmlsZV9udW1iZXJcbiAgICAgIDogJzU1MTE5OTk5OTk5OTknO1xuICAgIHRoaXMuc2VuZGVyID0ge1xuICAgICAgcHVzaG5hbWU6IHRoaXMubW9iaWxlX25hbWUsXG4gICAgICBpZDogdGhpcy5tb2JpbGVfbnVtYmVyLFxuICAgIH07XG4gICAgdGhpcy5hY2NvdW50X2lkID0gdGhpcy5jb25maWcuYWNjb3VudF9pZDtcbiAgICB0aGlzLmluYm94X2lkID0gdGhpcy5jb25maWcuaW5ib3hfaWQ7XG4gICAgdGhpcy5hcGkgPSBheGlvcy5jcmVhdGUoe1xuICAgICAgYmFzZVVSTDogdGhpcy5jb25maWcuYmFzZVVSTCxcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTgnLFxuICAgICAgICBhcGlfYWNjZXNzX3Rva2VuOiB0aGlzLmNvbmZpZy50b2tlbixcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICAvL2Fzc2luYSBvIGV2ZW50byBkbyBxcmNvZGVcbiAgICBldmVudEVtaXR0ZXIub24oYHFyY29kZS0ke3Nlc3Npb259YCwgKHFyQ29kZSwgdXJsQ29kZSwgY2xpZW50KSA9PiB7XG4gICAgICBzZXRUaW1lb3V0KGFzeW5jICgpID0+IHtcbiAgICAgICAgaWYgKGNvbmZpZz8uY2hhdHdvb3Q/LnNlbmRRckNvZGUgIT09IGZhbHNlKSB7XG4gICAgICAgICAgdGhpcy5zZW5kTWVzc2FnZShjbGllbnQsIHtcbiAgICAgICAgICAgIHNlbmRlcjogdGhpcy5zZW5kZXIsXG4gICAgICAgICAgICBjaGF0SWQ6IHRoaXMubW9iaWxlX251bWJlciArICdAYy51cycsXG4gICAgICAgICAgICB0eXBlOiAnaW1hZ2UnLFxuICAgICAgICAgICAgdGltZXN0YW1wOiAncXJjb2RlJyxcbiAgICAgICAgICAgIG1pbWV0eXBlOiAnaW1hZ2UvcG5nJyxcbiAgICAgICAgICAgIGNhcHRpb246ICdsZWlhIG8gcXJDb2RlJyxcbiAgICAgICAgICAgIHFyQ29kZTogcXJDb2RlLnJlcGxhY2UoJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCwnLCAnJyksXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0sIDEwMDApO1xuICAgIH0pO1xuXG4gICAgLy9hc3Npb25hIG8gZXZlbnRvIGRvIHN0YXR1c1xuICAgIGV2ZW50RW1pdHRlci5vbihgc3RhdHVzLSR7c2Vzc2lvbn1gLCAoY2xpZW50LCBzdGF0dXMpID0+IHtcbiAgICAgIGlmIChjb25maWc/LmNoYXR3b290Py5zZW5kU3RhdHVzICE9PSBmYWxzZSkge1xuICAgICAgICB0aGlzLnNlbmRNZXNzYWdlKGNsaWVudCwge1xuICAgICAgICAgIHNlbmRlcjogdGhpcy5zZW5kZXIsXG4gICAgICAgICAgY2hhdElkOiB0aGlzLm1vYmlsZV9udW1iZXIgKyAnQGMudXMnLFxuICAgICAgICAgIGJvZHk6IGB3cHBjb25uZWN0IHN0YXR1czogJHtzdGF0dXN9IGAsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgLy9hc3NpbmEgbyBldmVudG8gZGUgbWVuc2FnZW1cbiAgICBldmVudEVtaXR0ZXIub24oYG1lbnNhZ2VtLSR7c2Vzc2lvbn1gLCAoY2xpZW50LCBtZXNzYWdlKSA9PiB7XG4gICAgICB0aGlzLnNlbmRNZXNzYWdlKGNsaWVudCwgbWVzc2FnZSk7XG4gICAgfSk7XG4gIH1cblxuICAvLyBhc3luYyBzZW5kTWVzc2FnZShjbGllbnQ6IGFueSwgbWVzc2FnZTogYW55KSB7XG4gIC8vICAgaWYgKG1lc3NhZ2UuaXNHcm91cE1zZyB8fCBtZXNzYWdlLmNoYXRJZC5pbmRleE9mKCdAYnJvYWRjYXN0JykgPiAwKSByZXR1cm47XG4gIC8vICAgY29uc3QgY29udGFjdCA9IGF3YWl0IHRoaXMuY3JlYXRlQ29udGFjdChtZXNzYWdlKTtcbiAgLy8gICBjb25zdCBjb252ZXJzYXRpb24gPSBhd2FpdCB0aGlzLmNyZWF0ZUNvbnZlcnNhdGlvbihcbiAgLy8gICAgIGNvbnRhY3QsXG4gIC8vICAgICBtZXNzYWdlLmNoYXRJZC5zcGxpdCgnQCcpWzBdXG4gIC8vICAgKTtcblxuICAvLyAgIHRyeSB7XG4gIC8vICAgICBpZiAoXG4gIC8vICAgICAgIG1lc3NhZ2UudHlwZSA9PSAnaW1hZ2UnIHx8XG4gIC8vICAgICAgIG1lc3NhZ2UudHlwZSA9PSAndmlkZW8nIHx8XG4gIC8vICAgICAgIG1lc3NhZ2UudHlwZSA9PSAnaW4nIHx8XG4gIC8vICAgICAgIG1lc3NhZ2UudHlwZSA9PSAnZG9jdW1lbnQnIHx8XG4gIC8vICAgICAgIG1lc3NhZ2UudHlwZSA9PSAncHR0JyB8fFxuICAvLyAgICAgICBtZXNzYWdlLnR5cGUgPT0gJ2F1ZGlvJyB8fFxuICAvLyAgICAgICBtZXNzYWdlLnR5cGUgPT0gJ3N0aWNrZXInXG4gIC8vICAgICApIHtcbiAgLy8gICAgICAgaWYgKG1lc3NhZ2UubWltZXR5cGUgPT0gJ2ltYWdlL3dlYnAnKSBtZXNzYWdlLm1pbWV0eXBlID0gJ2ltYWdlL2pwZWcnO1xuICAvLyAgICAgICBjb25zdCBleHRlbnNpb24gPSBtaW1lLmV4dGVuc2lvbihtZXNzYWdlLm1pbWV0eXBlKTtcbiAgLy8gICAgICAgY29uc3QgZmlsZW5hbWUgPSBgJHttZXNzYWdlLnRpbWVzdGFtcH0uJHtleHRlbnNpb259YDtcbiAgLy8gICAgICAgbGV0IGI2NDtcblxuICAvLyAgICAgICBpZiAobWVzc2FnZS5xckNvZGUpIGI2NCA9IG1lc3NhZ2UucXJDb2RlO1xuICAvLyAgICAgICBlbHNlIHtcbiAgLy8gICAgICAgICBjb25zdCBidWZmZXIgPSBhd2FpdCBjbGllbnQuZGVjcnlwdEZpbGUobWVzc2FnZSk7XG4gIC8vICAgICAgICAgYjY0ID0gYXdhaXQgYnVmZmVyLnRvU3RyaW5nKCdiYXNlNjQnKTtcbiAgLy8gICAgICAgfVxuXG4gIC8vICAgICAgIGNvbnN0IG1lZGlhRGF0YSA9IEJ1ZmZlci5mcm9tKGI2NCwgJ2Jhc2U2NCcpO1xuXG4gIC8vICAgICAgIC8vIENyZWF0ZSBhIHJlYWRhYmxlIHN0cmVhbSBmcm9tIHRoZSBCdWZmZXJcbiAgLy8gICAgICAgY29uc3Qgc3RyZWFtID0gbmV3IFJlYWRhYmxlKCk7XG4gIC8vICAgICAgIHN0cmVhbS5wdXNoKG1lZGlhRGF0YSk7XG4gIC8vICAgICAgIHN0cmVhbS5wdXNoKG51bGwpOyAvLyBTaWduYWxpbmcgdGhlIGVuZCBvZiB0aGUgc3RyZWFtXG5cbiAgLy8gICAgICAgY29uc3QgZGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuICAvLyAgICAgICBpZiAobWVzc2FnZS5jYXB0aW9uKSB7XG4gIC8vICAgICAgICAgZGF0YS5hcHBlbmQoJ2NvbnRlbnQnLCBtZXNzYWdlLmNhcHRpb24pO1xuICAvLyAgICAgICB9XG5cbiAgLy8gICAgICAgZGF0YS5hcHBlbmQoJ2F0dGFjaG1lbnRzW10nLCBzdHJlYW0sIHtcbiAgLy8gICAgICAgICBmaWxlbmFtZTogZmlsZW5hbWUsXG4gIC8vICAgICAgICAgY29udGVudFR5cGU6IG1lc3NhZ2UubWltZXR5cGUsXG4gIC8vICAgICAgIH0pO1xuXG4gIC8vICAgICAgIGRhdGEuYXBwZW5kKCdtZXNzYWdlX3R5cGUnLCAnaW5jb21pbmcnKTtcbiAgLy8gICAgICAgZGF0YS5hcHBlbmQoJ3ByaXZhdGUnLCAnZmFsc2UnKTtcblxuICAvLyAgICAgICBjb25zdCBjb25maWdQb3N0ID0gT2JqZWN0LmFzc2lnbihcbiAgLy8gICAgICAgICB7fSxcbiAgLy8gICAgICAgICB7XG4gIC8vICAgICAgICAgICBiYXNlVVJMOiB0aGlzLmNvbmZpZy5iYXNlVVJMLFxuICAvLyAgICAgICAgICAgaGVhZGVyczoge1xuICAvLyAgICAgICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtOCcsXG4gIC8vICAgICAgICAgICAgIGFwaV9hY2Nlc3NfdG9rZW46IHRoaXMuY29uZmlnLnRva2VuLFxuICAvLyAgICAgICAgICAgfSxcbiAgLy8gICAgICAgICB9XG4gIC8vICAgICAgICk7XG5cbiAgLy8gICAgICAgY29uZmlnUG9zdC5oZWFkZXJzID0geyAuLi5jb25maWdQb3N0LmhlYWRlcnMsIC4uLmRhdGEuZ2V0SGVhZGVycygpIH07XG4gIC8vICAgICAgIGNvbnNvbGUubG9nKCdQUsOJLVJFUVVFU1QnKTtcbiAgLy8gICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgYXhpb3MucG9zdChcbiAgLy8gICAgICAgICBgYXBpL3YxL2FjY291bnRzLyR7dGhpcy5hY2NvdW50X2lkfS9jb252ZXJzYXRpb25zLyR7Y29udmVyc2F0aW9uLmlkfS9tZXNzYWdlc2AsXG4gIC8vICAgICAgICAgZGF0YSxcbiAgLy8gICAgICAgICBjb25maWdQb3N0XG4gIC8vICAgICAgICk7XG4gIC8vICAgICAgIGNvbnNvbGUubG9nKCdQT1MtUkVRVUVTVCcpO1xuICAvLyAgICAgICByZXR1cm4gcmVzdWx0O1xuICAvLyAgICAgfSBlbHNlIHtcbiAgLy8gICAgICAgY29uc3QgYm9keSA9IHtcbiAgLy8gICAgICAgICBjb250ZW50OiBtZXNzYWdlLmJvZHksXG4gIC8vICAgICAgICAgbWVzc2FnZV90eXBlOiAnaW5jb21pbmcnLFxuICAvLyAgICAgICB9O1xuICAvLyAgICAgICBjb25zdCB7IGRhdGEgfSA9IGF3YWl0IHRoaXMuYXBpLnBvc3QoXG4gIC8vICAgICAgICAgYGFwaS92MS9hY2NvdW50cy8ke3RoaXMuYWNjb3VudF9pZH0vY29udmVyc2F0aW9ucy8ke2NvbnZlcnNhdGlvbi5pZH0vbWVzc2FnZXNgLFxuICAvLyAgICAgICAgIGJvZHlcbiAgLy8gICAgICAgKTtcbiAgLy8gICAgICAgcmV0dXJuIGRhdGE7XG4gIC8vICAgICB9XG4gIC8vICAgfSBjYXRjaCAoZSkge1xuICAvLyAgICAgcmV0dXJuIG51bGw7XG4gIC8vICAgfVxuICAvLyB9XG5cbiAgYXN5bmMgc2VuZE1lc3NhZ2UoY2xpZW50OiBhbnksIG1lc3NhZ2U6IGFueSkge1xuICAgIGlmIChtZXNzYWdlLmlzR3JvdXBNc2cgfHwgbWVzc2FnZS5jaGF0SWQuaW5kZXhPZignQGJyb2FkY2FzdCcpID4gMCkgcmV0dXJuO1xuXG4gICAgY29uc3QgY29udGFjdCA9IGF3YWl0IHRoaXMuY3JlYXRlQ29udGFjdChtZXNzYWdlKTtcbiAgICBjb25zdCBjb252ZXJzYXRpb24gPSBhd2FpdCB0aGlzLmNyZWF0ZUNvbnZlcnNhdGlvbihcbiAgICAgIGNvbnRhY3QsXG4gICAgICBtZXNzYWdlLmNoYXRJZC5zcGxpdCgnQCcpWzBdXG4gICAgKTtcblxuICAgIHRyeSB7XG4gICAgICBpZiAoXG4gICAgICAgIFtcbiAgICAgICAgICAnaW1hZ2UnLFxuICAgICAgICAgICd2aWRlbycsXG4gICAgICAgICAgJ2luJyxcbiAgICAgICAgICAnZG9jdW1lbnQnLFxuICAgICAgICAgICdwdHQnLFxuICAgICAgICAgICdhdWRpbycsXG4gICAgICAgICAgJ3N0aWNrZXInLFxuICAgICAgICBdLmluY2x1ZGVzKG1lc3NhZ2UudHlwZSlcbiAgICAgICkge1xuICAgICAgICBpZiAobWVzc2FnZS5taW1ldHlwZSA9PT0gJ2ltYWdlL3dlYnAnKSBtZXNzYWdlLm1pbWV0eXBlID0gJ2ltYWdlL2pwZWcnO1xuICAgICAgICBjb25zdCBleHRlbnNpb24gPSBtaW1lLmV4dGVuc2lvbihtZXNzYWdlLm1pbWV0eXBlKTtcbiAgICAgICAgY29uc3QgZmlsZW5hbWUgPSBgJHttZXNzYWdlLnRpbWVzdGFtcH0uJHtleHRlbnNpb259YDtcbiAgICAgICAgbGV0IGI2NDtcblxuICAgICAgICBpZiAobWVzc2FnZS5xckNvZGUpIHtcbiAgICAgICAgICBiNjQgPSBtZXNzYWdlLnFyQ29kZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCBidWZmZXIgPSBhd2FpdCBjbGllbnQuZGVjcnlwdEZpbGUobWVzc2FnZSk7XG4gICAgICAgICAgYjY0ID0gYnVmZmVyLnRvU3RyaW5nKCdiYXNlNjQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG1lZGlhRGF0YSA9IEJ1ZmZlci5mcm9tKGI2NCwgJ2Jhc2U2NCcpO1xuICAgICAgICBjb25zdCBzdHJlYW0gPSBidWZmZXJ1dGlscy5idWZmZXJUb1JlYWRhYmxlU3RyZWFtKG1lZGlhRGF0YSk7XG5cbiAgICAgICAgY29uc3QgZGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgICAgICBpZiAobWVzc2FnZS5jYXB0aW9uKSB7XG4gICAgICAgICAgZGF0YS5hcHBlbmQoJ2NvbnRlbnQnLCBtZXNzYWdlLmNhcHRpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgZGF0YS5hcHBlbmQoJ2F0dGFjaG1lbnRzW10nLCBzdHJlYW0sIHtcbiAgICAgICAgICBmaWxlbmFtZTogZmlsZW5hbWUsXG4gICAgICAgICAgY29udGVudFR5cGU6IG1lc3NhZ2UubWltZXR5cGUsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGRhdGEuYXBwZW5kKCdtZXNzYWdlX3R5cGUnLCAnaW5jb21pbmcnKTtcbiAgICAgICAgZGF0YS5hcHBlbmQoJ3ByaXZhdGUnLCAnZmFsc2UnKTtcblxuICAgICAgICBjb25zdCBjb25maWdQb3N0OiBBeGlvc1JlcXVlc3RDb25maWcgPSB7XG4gICAgICAgICAgYmFzZVVSTDogdGhpcy5jb25maWcuYmFzZVVSTCxcbiAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICBhcGlfYWNjZXNzX3Rva2VuOiB0aGlzLmNvbmZpZy50b2tlbixcbiAgICAgICAgICAgIC4uLmRhdGEuZ2V0SGVhZGVycygpLFxuICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGVuZHBvaW50ID0gYGFwaS92MS9hY2NvdW50cy8ke3RoaXMuYWNjb3VudF9pZH0vY29udmVyc2F0aW9ucy8ke2NvbnZlcnNhdGlvbi5pZH0vbWVzc2FnZXNgO1xuXG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGF4aW9zLnBvc3QoZW5kcG9pbnQsIGRhdGEsIGNvbmZpZ1Bvc3QpO1xuXG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBib2R5ID0ge1xuICAgICAgICAgIGNvbnRlbnQ6IG1lc3NhZ2UuYm9keSxcbiAgICAgICAgICBtZXNzYWdlX3R5cGU6ICdpbmNvbWluZycsXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGVuZHBvaW50ID0gYGFwaS92MS9hY2NvdW50cy8ke3RoaXMuYWNjb3VudF9pZH0vY29udmVyc2F0aW9ucy8ke2NvbnZlcnNhdGlvbi5pZH0vbWVzc2FnZXNgO1xuXG4gICAgICAgIGNvbnN0IHsgZGF0YSB9ID0gYXdhaXQgdGhpcy5hcGkucG9zdChlbmRwb2ludCwgYm9keSk7XG4gICAgICAgIHJldHVybiBkYXRhO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIHNlbmRpbmcgbWVzc2FnZTonLCBlKTtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGZpbmRDb250YWN0KHF1ZXJ5OiBzdHJpbmcpIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgeyBkYXRhIH0gPSBhd2FpdCB0aGlzLmFwaS5nZXQoXG4gICAgICAgIGBhcGkvdjEvYWNjb3VudHMvJHt0aGlzLmFjY291bnRfaWR9L2NvbnRhY3RzL3NlYXJjaC8/cT0ke3F1ZXJ5fWBcbiAgICAgICk7XG4gICAgICByZXR1cm4gZGF0YTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjb25zb2xlLmxvZyhlKTtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGNyZWF0ZUNvbnRhY3QobWVzc2FnZTogYW55KSB7XG4gICAgY29uc3QgYm9keSA9IHtcbiAgICAgIGluYm94X2lkOiB0aGlzLmluYm94X2lkLFxuICAgICAgbmFtZTogbWVzc2FnZS5zZW5kZXIuaXNNeUNvbnRhY3RcbiAgICAgICAgPyBtZXNzYWdlLnNlbmRlci5mb3JtYXR0ZWROYW1lXG4gICAgICAgIDogbWVzc2FnZS5zZW5kZXIucHVzaG5hbWUgfHwgbWVzc2FnZS5zZW5kZXIuZm9ybWF0dGVkTmFtZSxcbiAgICAgIHBob25lX251bWJlcjpcbiAgICAgICAgdHlwZW9mIG1lc3NhZ2Uuc2VuZGVyLmlkID09ICdvYmplY3QnXG4gICAgICAgICAgPyBtZXNzYWdlLnNlbmRlci5pZC51c2VyXG4gICAgICAgICAgOiBtZXNzYWdlLnNlbmRlci5pZC5zcGxpdCgnQCcpWzBdLFxuICAgIH07XG4gICAgYm9keS5waG9uZV9udW1iZXIgPSBgKyR7Ym9keS5waG9uZV9udW1iZXJ9YDtcbiAgICBjb25zdCBjb250YWN0ID0gYXdhaXQgdGhpcy5maW5kQ29udGFjdChib2R5LnBob25lX251bWJlci5yZXBsYWNlKCcrJywgJycpKTtcbiAgICBpZiAoY29udGFjdCAmJiBjb250YWN0Lm1ldGEuY291bnQgPiAwKSByZXR1cm4gY29udGFjdC5wYXlsb2FkWzBdO1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCB0aGlzLmFwaS5wb3N0KFxuICAgICAgICBgYXBpL3YxL2FjY291bnRzLyR7dGhpcy5hY2NvdW50X2lkfS9jb250YWN0c2AsXG4gICAgICAgIGJvZHlcbiAgICAgICk7XG4gICAgICByZXR1cm4gZGF0YS5kYXRhLnBheWxvYWQuY29udGFjdDtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjb25zb2xlLmxvZyhlKTtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGZpbmRDb252ZXJzYXRpb24oY29udGFjdDogYW55KSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHsgZGF0YSB9ID0gYXdhaXQgdGhpcy5hcGkuZ2V0KFxuICAgICAgICBgYXBpL3YxL2FjY291bnRzLyR7dGhpcy5hY2NvdW50X2lkfS9jb250YWN0cy8ke2NvbnRhY3QuaWR9L2NvbnZlcnNhdGlvbnNgXG4gICAgICApO1xuICAgICAgcmV0dXJuIGRhdGEucGF5bG9hZC5maW5kKFxuICAgICAgICAoZTogYW55KSA9PiBlLmluYm94X2lkID09IHRoaXMuaW5ib3hfaWQgJiYgZS5zdGF0dXMgIT0gJ3Jlc29sdmVkJ1xuICAgICAgKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjb25zb2xlLmxvZyhlKTtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGNyZWF0ZUNvbnZlcnNhdGlvbihjb250YWN0OiBhbnksIHNvdXJjZV9pZDogYW55KSB7XG4gICAgY29uc3QgY29udmVyc2F0aW9uID0gYXdhaXQgdGhpcy5maW5kQ29udmVyc2F0aW9uKGNvbnRhY3QpO1xuICAgIGlmIChjb252ZXJzYXRpb24pIHJldHVybiBjb252ZXJzYXRpb247XG5cbiAgICBjb25zdCBib2R5ID0ge1xuICAgICAgc291cmNlX2lkOiBzb3VyY2VfaWQsXG4gICAgICBpbmJveF9pZDogdGhpcy5pbmJveF9pZCxcbiAgICAgIGNvbnRhY3RfaWQ6IGNvbnRhY3QuaWQsXG4gICAgICBzdGF0dXM6ICdvcGVuJyxcbiAgICB9O1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHsgZGF0YSB9ID0gYXdhaXQgdGhpcy5hcGkucG9zdChcbiAgICAgICAgYGFwaS92MS9hY2NvdW50cy8ke3RoaXMuYWNjb3VudF9pZH0vY29udmVyc2F0aW9uc2AsXG4gICAgICAgIGJvZHlcbiAgICAgICk7XG4gICAgICByZXR1cm4gZGF0YTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjb25zb2xlLmxvZyhlKTtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFlQSxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxTQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRSxVQUFBLEdBQUFILHNCQUFBLENBQUFDLE9BQUE7O0FBRUEsSUFBQUcsWUFBQSxHQUFBSixzQkFBQSxDQUFBQyxPQUFBOztBQUVBLElBQUFJLFlBQUEsR0FBQUosT0FBQSxrQkFBNkMsQ0FyQjdDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQWRBLENBb0JBO0FBR2UsTUFBTUssY0FBYyxDQUFDLENBVWxDQyxXQUFXQSxDQUFDQyxNQUFXLEVBQUVDLE9B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
@@ -239,7 +239,10 @@ var _factory = _interopRequireDefault(require("./tokenStore/factory")); /*
239
239
  (0, _sessionController.download)(message, client, req.logger);
240
240
  }
241
241
 
242
- if (req.serverOptions?.websocket?.autoDownload) {
242
+ if (
243
+ req.serverOptions?.websocket?.autoDownload ||
244
+ req.serverOptions?.webhook?.autoDownload)
245
+ {
243
246
  await (0, _functions.autoDownload)(client, req, message);
244
247
  }
245
248
 
@@ -321,4 +324,4 @@ var _factory = _interopRequireDefault(require("./tokenStore/factory")); /*
321
324
  return client;
322
325
  }
323
326
  }exports.default = CreateSessionUtil;
324
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfd3BwY29ubmVjdCIsInJlcXVpcmUiLCJfc2Vzc2lvbkNvbnRyb2xsZXIiLCJfY2hhdFdvb3RDbGllbnQiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2Z1bmN0aW9ucyIsIl9zZXNzaW9uVXRpbCIsIl9mYWN0b3J5IiwiQ3JlYXRlU2Vzc2lvblV0aWwiLCJzdGFydENoYXRXb290Q2xpZW50IiwiY2xpZW50IiwiY29uZmlnIiwiY2hhdFdvb3QiLCJjaGF0V29vdENsaWVudCIsInNlc3Npb24iLCJjcmVhdGVTZXNzaW9uVXRpbCIsInJlcSIsImNsaWVudHNBcnJheSIsInJlcyIsImdldENsaWVudCIsInN0YXR1cyIsImJvZHkiLCJ0b2tlblN0b3JlIiwiRmFjdG9yeSIsIm15VG9rZW5TdG9yZSIsImNyZWF0ZVRva2VuU3RvcnkiLCJ0b2tlbkRhdGEiLCJnZXRUb2tlbiIsInNldFRva2VuIiwic2VydmVyT3B0aW9ucyIsImN1c3RvbVVzZXJEYXRhRGlyIiwiY3JlYXRlT3B0aW9ucyIsInB1cHBldGVlck9wdGlvbnMiLCJ1c2VyRGF0YURpciIsIndwcENsaWVudCIsImNyZWF0ZSIsIk9iamVjdCIsImFzc2lnbiIsImRldmljZU5hbWUiLCJwb3dlcmVkQnkiLCJjYXRjaFFSIiwiYmFzZTY0UXIiLCJhc2NpaVFSIiwiYXR0ZW1wdCIsInVybENvZGUiLCJleHBvcnRRUiIsIm9uTG9hZGluZ1NjcmVlbiIsInBlcmNlbnQiLCJtZXNzYWdlIiwibG9nZ2VyIiwiaW5mbyIsInN0YXR1c0ZpbmQiLCJldmVudEVtaXR0ZXIiLCJlbWl0IiwicXJjb2RlIiwiY2xvc2UiLCJ1bmRlZmluZWQiLCJjYWxsV2ViSG9vayIsImVycm9yIiwic3RhcnQiLCJ3ZWJob29rIiwib25QYXJ0aWNpcGFudHNDaGFuZ2VkIiwib25SZWFjdGlvbk1lc3NhZ2UiLCJvblJldm9rZWRNZXNzYWdlIiwib25Qb2xsUmVzcG9uc2UiLCJvbkxhYmVsVXBkYXRlZCIsImUiLCJvcGVuZGF0YSIsInFyQ29kZSIsInVybGNvZGUiLCJyZXBsYWNlIiwiaW1hZ2VCdWZmZXIiLCJCdWZmZXIiLCJmcm9tIiwiaW8iLCJkYXRhIiwidG9TdHJpbmciLCJfaGVhZGVyU2VudCIsImpzb24iLCJpc0Nvbm5lY3RlZCIsInN0YXJ0SGVscGVyIiwiY2hlY2tTdGF0ZVNlc3Npb24iLCJsaXN0ZW5NZXNzYWdlcyIsImxpc3RlbkFja3MiLCJvblByZXNlbmNlQ2hhbmdlZCIsIm9uU3RhdGVDaGFuZ2UiLCJzdGF0ZSIsImNvbmZsaXRzIiwiU29ja2V0U3RhdGUiLCJDT05GTElDVCIsImluY2x1ZGVzIiwidXNlSGVyZSIsIm9uTWVzc2FnZSIsInR5cGUiLCJvbkxpdmVMb2NhdGlvbiIsInNlbmRlciIsImlkIiwibG9jYXRpb24iLCJvbkFueU1lc3NhZ2UiLCJkb3dubG9hZCIsIndlYnNvY2tldCIsImF1dG9Eb3dubG9hZCIsInJlc3BvbnNlIiwib25TZWxmTWVzc2FnZSIsImZyb21NZSIsIm9uSW5jb21pbmdDYWxsIiwiY2FsbCIsIm9uQWNrIiwiYWNrIiwicHJlc2VuY2VDaGFuZ2VkRXZlbnQiLCJyZWFjdGlvbiIsIm9uVXBkYXRlTGFiZWwiLCJlbmNvZGVGdW5jdGlvbiIsIkpTT04iLCJzdHJpbmdpZnkiLCJkZWNvZGVGdW5jdGlvbiIsInRleHQiLCJvYmplY3QiLCJwYXJzZSIsImV4cG9ydHMiLCJkZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWwvY3JlYXRlU2Vzc2lvblV0aWwudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDIxIFdQUENvbm5lY3QgVGVhbVxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHsgY3JlYXRlLCBTb2NrZXRTdGF0ZSB9IGZyb20gJ0B3cHBjb25uZWN0LXRlYW0vd3BwY29ubmVjdCc7XG5pbXBvcnQgeyBSZXF1ZXN0IH0gZnJvbSAnZXhwcmVzcyc7XG5cbmltcG9ydCB7IGRvd25sb2FkIH0gZnJvbSAnLi4vY29udHJvbGxlci9zZXNzaW9uQ29udHJvbGxlcic7XG5pbXBvcnQgeyBXaGF0c0FwcFNlcnZlciB9IGZyb20gJy4uL3R5cGVzL1doYXRzQXBwU2VydmVyJztcbmltcG9ydCBjaGF0V29vdENsaWVudCBmcm9tICcuL2NoYXRXb290Q2xpZW50JztcbmltcG9ydCB7IGF1dG9Eb3dubG9hZCwgY2FsbFdlYkhvb2ssIHN0YXJ0SGVscGVyIH0gZnJvbSAnLi9mdW5jdGlvbnMnO1xuaW1wb3J0IHsgY2xpZW50c0FycmF5LCBldmVudEVtaXR0ZXIgfSBmcm9tICcuL3Nlc3Npb25VdGlsJztcbmltcG9ydCBGYWN0b3J5IGZyb20gJy4vdG9rZW5TdG9yZS9mYWN0b3J5JztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ3JlYXRlU2Vzc2lvblV0aWwge1xuICBzdGFydENoYXRXb290Q2xpZW50KGNsaWVudDogYW55KSB7XG4gICAgaWYgKGNsaWVudC5jb25maWcuY2hhdFdvb3QgJiYgIWNsaWVudC5fY2hhdFdvb3RDbGllbnQpXG4gICAgICBjbGllbnQuX2NoYXRXb290Q2xpZW50ID0gbmV3IGNoYXRXb290Q2xpZW50KFxuICAgICAgICBjbGllbnQuY29uZmlnLmNoYXRXb290LFxuICAgICAgICBjbGllbnQuc2Vzc2lvblxuICAgICAgKTtcbiAgICByZXR1cm4gY2xpZW50Ll9jaGF0V29vdENsaWVudDtcbiAgfVxuXG4gIGFzeW5jIGNyZWF0ZVNlc3Npb25VdGlsKFxuICAgIHJlcTogYW55LFxuICAgIGNsaWVudHNBcnJheTogYW55LFxuICAgIHNlc3Npb246IHN0cmluZyxcbiAgICByZXM/OiBhbnlcbiAgKSB7XG4gICAgdHJ5IHtcbiAgICAgIGxldCBjbGllbnQgPSB0aGlzLmdldENsaWVudChzZXNzaW9uKSBhcyBhbnk7XG4gICAgICBpZiAoY2xpZW50LnN0YXR1cyAhPSBudWxsICYmIGNsaWVudC5zdGF0dXMgIT09ICdDTE9TRUQnKSByZXR1cm47XG4gICAgICBjbGllbnQuc3RhdHVzID0gJ0lOSVRJQUxJWklORyc7XG4gICAgICBjbGllbnQuY29uZmlnID0gcmVxLmJvZHk7XG5cbiAgICAgIGNvbnN0IHRva2VuU3RvcmUgPSBuZXcgRmFjdG9yeSgpO1xuICAgICAgY29uc3QgbXlUb2tlblN0b3JlID0gdG9rZW5TdG9yZS5jcmVhdGVUb2tlblN0b3J5KGNsaWVudCk7XG4gICAgICBjb25zdCB0b2tlbkRhdGEgPSBhd2FpdCBteVRva2VuU3RvcmUuZ2V0VG9rZW4oc2Vzc2lvbik7XG5cbiAgICAgIGlmICghdG9rZW5EYXRhKSB7XG4gICAgICAgIG15VG9rZW5TdG9yZS5zZXRUb2tlbihzZXNzaW9uLCB7fSk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuc3RhcnRDaGF0V29vdENsaWVudChjbGllbnQpO1xuXG4gICAgICBpZiAocmVxLnNlcnZlck9wdGlvbnMuY3VzdG9tVXNlckRhdGFEaXIpIHtcbiAgICAgICAgcmVxLnNlcnZlck9wdGlvbnMuY3JlYXRlT3B0aW9ucy5wdXBwZXRlZXJPcHRpb25zID0ge1xuICAgICAgICAgIHVzZXJEYXRhRGlyOiByZXEuc2VydmVyT3B0aW9ucy5jdXN0b21Vc2VyRGF0YURpciArIHNlc3Npb24sXG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHdwcENsaWVudCA9IGF3YWl0IGNyZWF0ZShcbiAgICAgICAgT2JqZWN0LmFzc2lnbihcbiAgICAgICAgICB7fSxcbiAgICAgICAgICB7IHRva2VuU3RvcmU6IG15VG9rZW5TdG9yZSB9LFxuICAgICAgICAgIHJlcS5zZXJ2ZXJPcHRpb25zLmNyZWF0ZU9wdGlvbnMsXG4gICAgICAgICAge1xuICAgICAgICAgICAgc2Vzc2lvbjogc2Vzc2lvbixcbiAgICAgICAgICAgIGRldmljZU5hbWU6XG4gICAgICAgICAgICAgIGNsaWVudC5jb25maWc/LmRldmljZU5hbWUgfHwgcmVxLnNlcnZlck9wdGlvbnMuZGV2aWNlTmFtZSxcbiAgICAgICAgICAgIHBvd2VyZWRCeTpcbiAgICAgICAgICAgICAgY2xpZW50LmNvbmZpZz8ucG93ZXJlZEJ5IHx8XG4gICAgICAgICAgICAgIHJlcS5zZXJ2ZXJPcHRpb25zLnBvd2VyZWRCeSB8fFxuICAgICAgICAgICAgICAnV1BQQ29ubmVjdC1TZXJ2ZXInLFxuICAgICAgICAgICAgY2F0Y2hRUjogKFxuICAgICAgICAgICAgICBiYXNlNjRRcjogYW55LFxuICAgICAgICAgICAgICBhc2NpaVFSOiBhbnksXG4gICAgICAgICAgICAgIGF0dGVtcHQ6IGFueSxcbiAgICAgICAgICAgICAgdXJsQ29kZTogc3RyaW5nXG4gICAgICAgICAgICApID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5leHBvcnRRUihyZXEsIGJhc2U2NFFyLCB1cmxDb2RlLCBjbGllbnQsIHJlcyk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgb25Mb2FkaW5nU2NyZWVuOiAocGVyY2VudDogc3RyaW5nLCBtZXNzYWdlOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgICAgcmVxLmxvZ2dlci5pbmZvKGBbJHtzZXNzaW9ufV0gJHtwZXJjZW50fSUgLSAke21lc3NhZ2V9YCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc3RhdHVzRmluZDogKHN0YXR1c0ZpbmQ6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGV2ZW50RW1pdHRlci5lbWl0KFxuICAgICAgICAgICAgICAgICAgYHN0YXR1cy0ke2NsaWVudC5zZXNzaW9ufWAsXG4gICAgICAgICAgICAgICAgICBjbGllbnQsXG4gICAgICAgICAgICAgICAgICBzdGF0dXNGaW5kXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICBzdGF0dXNGaW5kID09PSAnYXV0b2Nsb3NlQ2FsbGVkJyB8fFxuICAgICAgICAgICAgICAgICAgc3RhdHVzRmluZCA9PT0gJ2Rlc2Nvbm5lY3RlZE1vYmlsZSdcbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgIGNsaWVudC5zdGF0dXMgPSAnQ0xPU0VEJztcbiAgICAgICAgICAgICAgICAgIGNsaWVudC5xcmNvZGUgPSBudWxsO1xuICAgICAgICAgICAgICAgICAgY2xpZW50LmNsb3NlKCk7XG4gICAgICAgICAgICAgICAgICBjbGllbnRzQXJyYXlbc2Vzc2lvbl0gPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhbGxXZWJIb29rKGNsaWVudCwgcmVxLCAnc3RhdHVzLWZpbmQnLCB7XG4gICAgICAgICAgICAgICAgICBzdGF0dXM6IHN0YXR1c0ZpbmQsXG4gICAgICAgICAgICAgICAgICBzZXNzaW9uOiBjbGllbnQuc2Vzc2lvbixcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICByZXEubG9nZ2VyLmluZm8oc3RhdHVzRmluZCArICdcXG5cXG4nKTtcbiAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHt9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH1cbiAgICAgICAgKVxuICAgICAgKTtcblxuICAgICAgY2xpZW50ID0gY2xpZW50c0FycmF5W3Nlc3Npb25dID0gT2JqZWN0LmFzc2lnbih3cHBDbGllbnQsIGNsaWVudCk7XG4gICAgICBhd2FpdCB0aGlzLnN0YXJ0KHJlcSwgY2xpZW50KTtcblxuICAgICAgaWYgKHJlcS5zZXJ2ZXJPcHRpb25zLndlYmhvb2sub25QYXJ0aWNpcGFudHNDaGFuZ2VkKSB7XG4gICAgICAgIGF3YWl0IHRoaXMub25QYXJ0aWNpcGFudHNDaGFuZ2VkKHJlcSwgY2xpZW50KTtcbiAgICAgIH1cblxuICAgICAgaWYgKHJlcS5zZXJ2ZXJPcHRpb25zLndlYmhvb2sub25SZWFjdGlvbk1lc3NhZ2UpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5vblJlYWN0aW9uTWVzc2FnZShjbGllbnQsIHJlcSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChyZXEuc2VydmVyT3B0aW9ucy53ZWJob29rLm9uUmV2b2tlZE1lc3NhZ2UpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5vblJldm9rZWRNZXNzYWdlKGNsaWVudCwgcmVxKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHJlcS5zZXJ2ZXJPcHRpb25zLndlYmhvb2sub25Qb2xsUmVzcG9uc2UpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5vblBvbGxSZXNwb25zZShjbGllbnQsIHJlcSk7XG4gICAgICB9XG4gICAgICBpZiAocmVxLnNlcnZlck9wdGlvbnMud2ViaG9vay5vbkxhYmVsVXBkYXRlZCkge1xuICAgICAgICBhd2FpdCB0aGlzLm9uTGFiZWxVcGRhdGVkKGNsaWVudCwgcmVxKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICByZXEubG9nZ2VyLmVycm9yKGUpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIG9wZW5kYXRhKHJlcTogUmVxdWVzdCwgc2Vzc2lvbjogc3RyaW5nLCByZXM/OiBhbnkpIHtcbiAgICBhd2FpdCB0aGlzLmNyZWF0ZVNlc3Npb25VdGlsKHJlcSwgY2xpZW50c0FycmF5LCBzZXNzaW9uLCByZXMpO1xuICB9XG5cbiAgZXhwb3J0UVIoXG4gICAgcmVxOiBhbnksXG4gICAgcXJDb2RlOiBhbnksXG4gICAgdXJsQ29kZTogYW55LFxuICAgIGNsaWVudDogV2hhdHNBcHBTZXJ2ZXIsXG4gICAgcmVzPzogYW55XG4gICkge1xuICAgIGV2ZW50RW1pdHRlci5lbWl0KGBxcmNvZGUtJHtjbGllbnQuc2Vzc2lvbn1gLCBxckNvZGUsIHVybENvZGUsIGNsaWVudCk7XG4gICAgT2JqZWN0LmFzc2lnbihjbGllbnQsIHtcbiAgICAgIHN0YXR1czogJ1FSQ09ERScsXG4gICAgICBxcmNvZGU6IHFyQ29kZSxcbiAgICAgIHVybGNvZGU6IHVybENvZGUsXG4gICAgfSk7XG5cbiAgICBxckNvZGUgPSBxckNvZGUucmVwbGFjZSgnZGF0YTppbWFnZS9wbmc7YmFzZTY0LCcsICcnKTtcbiAgICBjb25zdCBpbWFnZUJ1ZmZlciA9IEJ1ZmZlci5mcm9tKHFyQ29kZSwgJ2Jhc2U2NCcpO1xuXG4gICAgcmVxLmlvLmVtaXQoJ3FyQ29kZScsIHtcbiAgICAgIGRhdGE6ICdkYXRhOmltYWdlL3BuZztiYXNlNjQsJyArIGltYWdlQnVmZmVyLnRvU3RyaW5nKCdiYXNlNjQnKSxcbiAgICAgIHNlc3Npb246IGNsaWVudC5zZXNzaW9uLFxuICAgIH0pO1xuXG4gICAgY2FsbFdlYkhvb2soY2xpZW50LCByZXEsICdxcmNvZGUnLCB7XG4gICAgICBxcmNvZGU6IHFyQ29kZSxcbiAgICAgIHVybGNvZGU6IHVybENvZGUsXG4gICAgICBzZXNzaW9uOiBjbGllbnQuc2Vzc2lvbixcbiAgICB9KTtcbiAgICBpZiAocmVzICYmICFyZXMuX2hlYWRlclNlbnQpXG4gICAgICByZXMuc3RhdHVzKDIwMCkuanNvbih7XG4gICAgICAgIHN0YXR1czogJ3FyY29kZScsXG4gICAgICAgIHFyY29kZTogcXJDb2RlLFxuICAgICAgICB1cmxjb2RlOiB1cmxDb2RlLFxuICAgICAgICBzZXNzaW9uOiBjbGllbnQuc2Vzc2lvbixcbiAgICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgb25QYXJ0aWNpcGFudHNDaGFuZ2VkKHJlcTogYW55LCBjbGllbnQ6IGFueSkge1xuICAgIGF3YWl0IGNsaWVudC5pc0Nvbm5lY3RlZCgpO1xuICAgIGF3YWl0IGNsaWVudC5vblBhcnRpY2lwYW50c0NoYW5nZWQoKG1lc3NhZ2U6IGFueSkgPT4ge1xuICAgICAgY2FsbFdlYkhvb2soY2xpZW50LCByZXEsICdvbnBhcnRpY2lwYW50c2NoYW5nZWQnLCBtZXNzYWdlKTtcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIHN0YXJ0KHJlcTogUmVxdWVzdCwgY2xpZW50OiBXaGF0c0FwcFNlcnZlcikge1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCBjbGllbnQuaXNDb25uZWN0ZWQoKTtcbiAgICAgIE9iamVjdC5hc3NpZ24oY2xpZW50LCB7IHN0YXR1czogJ0NPTk5FQ1RFRCcsIHFyY29kZTogbnVsbCB9KTtcblxuICAgICAgcmVxLmxvZ2dlci5pbmZvKGBTdGFydGVkIFNlc3Npb246ICR7Y2xpZW50LnNlc3Npb259YCk7XG4gICAgICAvL2NhbGxXZWJIb29rKGNsaWVudCwgcmVxLCAnc2Vzc2lvbi1sb2dnZWQnLCB7IHN0YXR1czogJ0NPTk5FQ1RFRCd9KTtcbiAgICAgIHJlcS5pby5lbWl0KCdzZXNzaW9uLWxvZ2dlZCcsIHsgc3RhdHVzOiB0cnVlLCBzZXNzaW9uOiBjbGllbnQuc2Vzc2lvbiB9KTtcbiAgICAgIHN0YXJ0SGVscGVyKGNsaWVudCwgcmVxKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgcmVxLmxvZ2dlci5lcnJvcihlcnJvcik7XG4gICAgICByZXEuaW8uZW1pdCgnc2Vzc2lvbi1lcnJvcicsIGNsaWVudC5zZXNzaW9uKTtcbiAgICB9XG5cbiAgICBhd2FpdCB0aGlzLmNoZWNrU3RhdGVTZXNzaW9uKGNsaWVudCwgcmVxKTtcbiAgICBhd2FpdCB0aGlzLmxpc3Rlbk1lc3NhZ2VzKGNsaWVudCwgcmVxKTtcblxuICAgIGlmIChyZXEuc2VydmVyT3B0aW9ucy53ZWJob29rLmxpc3RlbkFja3MpIHtcbiAgICAgIGF3YWl0IHRoaXMubGlzdGVuQWNrcyhjbGllbnQsIHJlcSk7XG4gICAgfVxuXG4gICAgaWYgKHJlcS5zZXJ2ZXJPcHRpb25zLndlYmhvb2sub25QcmVzZW5jZUNoYW5nZWQpIHtcbiAgICAgIGF3YWl0IHRoaXMub25QcmVzZW5jZUNoYW5nZWQoY2xpZW50LCByZXEpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGNoZWNrU3RhdGVTZXNzaW9uKGNsaWVudDogV2hhdHNBcHBTZXJ2ZXIsIHJlcTogUmVxdWVzdCkge1xuICAgIGF3YWl0IGNsaWVudC5vblN0YXRlQ2hhbmdlKChzdGF0ZSkgPT4ge1xuICAgICAgcmVxLmxvZ2dlci5pbmZvKGBTdGF0ZSBDaGFuZ2UgJHtzdGF0ZX06ICR7Y2xpZW50LnNlc3Npb259YCk7XG4gICAgICBjb25zdCBjb25mbGl0cyA9IFtTb2NrZXRTdGF0ZS5DT05GTElDVF07XG5cbiAgICAgIGlmIChjb25mbGl0cy5pbmNsdWRlcyhzdGF0ZSkpIHtcbiAgICAgICAgY2xpZW50LnVzZUhlcmUoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIGxpc3Rlbk1lc3NhZ2VzKGNsaWVudDogV2hhdHNBcHBTZXJ2ZXIsIHJlcTogUmVxdWVzdCkge1xuICAgIGF3YWl0IGNsaWVudC5vbk1lc3NhZ2UoYXN5bmMgKG1lc3NhZ2U6IGFueSkgPT4ge1xuICAgICAgZXZlbnRFbWl0dGVyLmVtaXQoYG1lbnNhZ2VtLSR7Y2xpZW50LnNlc3Npb259YCwgY2xpZW50LCBtZXNzYWdlKTtcbiAgICAgIGNhbGxXZWJIb29rKGNsaWVudCwgcmVxLCAnb25tZXNzYWdlJywgbWVzc2FnZSk7XG4gICAgICBpZiAobWVzc2FnZS50eXBlID09PSAnbG9jYXRpb24nKVxuICAgICAgICBjbGllbnQub25MaXZlTG9jYXRpb24obWVzc2FnZS5zZW5kZXIuaWQsIChsb2NhdGlvbikgPT4ge1xuICAgICAgICAgIGNhbGxXZWJIb29rKGNsaWVudCwgcmVxLCAnbG9jYXRpb24nLCBsb2NhdGlvbik7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgYXdhaXQgY2xpZW50Lm9uQW55TWVzc2FnZShhc3luYyAobWVzc2FnZTogYW55KSA9PiB7XG4gICAgICBtZXNzYWdlLnNlc3Npb24gPSBjbGllbnQuc2Vzc2lvbjtcblxuICAgICAgaWYgKG1lc3NhZ2UudHlwZSA9PT0gJ3N0aWNrZXInKSB7XG4gICAgICAgIGRvd25sb2FkKG1lc3NhZ2UsIGNsaWVudCwgcmVxLmxvZ2dlcik7XG4gICAgICB9XG5cbiAgICAgIGlmIChyZXEuc2VydmVyT3B0aW9ucz8ud2Vic29ja2V0Py5hdXRvRG93bmxvYWQpIHtcbiAgICAgICAgYXdhaXQgYXV0b0Rvd25sb2FkKGNsaWVudCwgcmVxLCBtZXNzYWdlKTtcbiAgICAgIH1cblxuICAgICAgcmVxLmlvLmVtaXQoJ3JlY2VpdmVkLW1lc3NhZ2UnLCB7IHJlc3BvbnNlOiBtZXNzYWdlIH0pO1xuICAgICAgaWYgKHJlcS5zZXJ2ZXJPcHRpb25zLndlYmhvb2sub25TZWxmTWVzc2FnZSAmJiBtZXNzYWdlLmZyb21NZSlcbiAgICAgICAgY2FsbFdlYkhvb2soY2xpZW50LCByZXEsICdvbnNlbGZtZXNzYWdlJywgbWVzc2FnZSk7XG4gICAgfSk7XG5cbiAgICBhd2FpdCBjbGllbnQub25JbmNvbWluZ0NhbGwoYXN5bmMgKGNhbGwpID0+IHtcbiAgICAgIHJlcS5pby5lbWl0KCdpbmNvbWluZ2NhbGwnLCBjYWxsKTtcbiAgICAgIGNhbGxXZWJIb29rKGNsaWVudCwgcmVxLCAnaW5jb21pbmdjYWxsJywgY2FsbCk7XG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBsaXN0ZW5BY2tzKGNsaWVudDogV2hhdHNBcHBTZXJ2ZXIsIHJlcTogUmVxdWVzdCkge1xuICAgIGF3YWl0IGNsaWVudC5vbkFjayhhc3luYyAoYWNrKSA9PiB7XG4gICAgICByZXEuaW8uZW1pdCgnb25hY2snLCBhY2spO1xuICAgICAgY2FsbFdlYkhvb2soY2xpZW50LCByZXEsICdvbmFjaycsIGFjayk7XG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBvblByZXNlbmNlQ2hhbmdlZChjbGllbnQ6IFdoYXRzQXBwU2VydmVyLCByZXE6IFJlcXVlc3QpIHtcbiAgICBhd2FpdCBjbGllbnQub25QcmVzZW5jZUNoYW5nZWQoYXN5bmMgKHByZXNlbmNlQ2hhbmdlZEV2ZW50KSA9PiB7XG4gICAgICByZXEuaW8uZW1pdCgnb25wcmVzZW5jZWNoYW5nZWQnLCBwcmVzZW5jZUNoYW5nZWRFdmVudCk7XG4gICAgICBjYWxsV2ViSG9vayhjbGllbnQsIHJlcSwgJ29ucHJlc2VuY2VjaGFuZ2VkJywgcHJlc2VuY2VDaGFuZ2VkRXZlbnQpO1xuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgb25SZWFjdGlvbk1lc3NhZ2UoY2xpZW50OiBXaGF0c0FwcFNlcnZlciwgcmVxOiBSZXF1ZXN0KSB7XG4gICAgYXdhaXQgY2xpZW50LmlzQ29ubmVjdGVkKCk7XG4gICAgYXdhaXQgY2xpZW50Lm9uUmVhY3Rpb25NZXNzYWdlKGFzeW5jIChyZWFjdGlvbjogYW55KSA9PiB7XG4gICAgICByZXEuaW8uZW1pdCgnb25yZWFjdGlvbm1lc3NhZ2UnLCByZWFjdGlvbik7XG4gICAgICBjYWxsV2ViSG9vayhjbGllbnQsIHJlcSwgJ29ucmVhY3Rpb25tZXNzYWdlJywgcmVhY3Rpb24pO1xuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgb25SZXZva2VkTWVzc2FnZShjbGllbnQ6IFdoYXRzQXBwU2VydmVyLCByZXE6IFJlcXVlc3QpIHtcbiAgICBhd2FpdCBjbGllbnQuaXNDb25uZWN0ZWQoKTtcbiAgICBhd2FpdCBjbGllbnQub25SZXZva2VkTWVzc2FnZShhc3luYyAocmVzcG9uc2U6IGFueSkgPT4ge1xuICAgICAgcmVxLmlvLmVtaXQoJ29ucmV2b2tlZG1lc3NhZ2UnLCByZXNwb25zZSk7XG4gICAgICBjYWxsV2ViSG9vayhjbGllbnQsIHJlcSwgJ29ucmV2b2tlZG1lc3NhZ2UnLCByZXNwb25zZSk7XG4gICAgfSk7XG4gIH1cbiAgYXN5bmMgb25Qb2xsUmVzcG9uc2UoY2xpZW50OiBXaGF0c0FwcFNlcnZlciwgcmVxOiBSZXF1ZXN0KSB7XG4gICAgYXdhaXQgY2xpZW50LmlzQ29ubmVjdGVkKCk7XG4gICAgYXdhaXQgY2xpZW50Lm9uUG9sbFJlc3BvbnNlKGFzeW5jIChyZXNwb25zZTogYW55KSA9PiB7XG4gICAgICByZXEuaW8uZW1pdCgnb25wb2xscmVzcG9uc2UnLCByZXNwb25zZSk7XG4gICAgICBjYWxsV2ViSG9vayhjbGllbnQsIHJlcSwgJ29ucG9sbHJlc3BvbnNlJywgcmVzcG9uc2UpO1xuICAgIH0pO1xuICB9XG4gIGFzeW5jIG9uTGFiZWxVcGRhdGVkKGNsaWVudDogV2hhdHNBcHBTZXJ2ZXIsIHJlcTogUmVxdWVzdCkge1xuICAgIGF3YWl0IGNsaWVudC5pc0Nvbm5lY3RlZCgpO1xuICAgIGF3YWl0IGNsaWVudC5vblVwZGF0ZUxhYmVsKGFzeW5jIChyZXNwb25zZTogYW55KSA9PiB7XG4gICAgICByZXEuaW8uZW1pdCgnb251cGRhdGVsYWJlbCcsIHJlc3BvbnNlKTtcbiAgICAgIGNhbGxXZWJIb29rKGNsaWVudCwgcmVxLCAnb251cGRhdGVsYWJlbCcsIHJlc3BvbnNlKTtcbiAgICB9KTtcbiAgfVxuXG4gIGVuY29kZUZ1bmN0aW9uKGRhdGE6IGFueSwgd2ViaG9vazogYW55KSB7XG4gICAgZGF0YS53ZWJob29rID0gd2ViaG9vaztcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoZGF0YSk7XG4gIH1cblxuICBkZWNvZGVGdW5jdGlvbih0ZXh0OiBhbnksIGNsaWVudDogYW55KSB7XG4gICAgY29uc3Qgb2JqZWN0ID0gSlNPTi5wYXJzZSh0ZXh0KTtcbiAgICBpZiAob2JqZWN0LndlYmhvb2sgJiYgIWNsaWVudC53ZWJob29rKSBjbGllbnQud2ViaG9vayA9IG9iamVjdC53ZWJob29rO1xuICAgIGRlbGV0ZSBvYmplY3Qud2ViaG9vaztcbiAgICByZXR1cm4gb2JqZWN0O1xuICB9XG5cbiAgZ2V0Q2xpZW50KHNlc3Npb246IGFueSkge1xuICAgIGxldCBjbGllbnQgPSBjbGllbnRzQXJyYXlbc2Vzc2lvbl07XG5cbiAgICBpZiAoIWNsaWVudClcbiAgICAgIGNsaWVudCA9IGNsaWVudHNBcnJheVtzZXNzaW9uXSA9IHtcbiAgICAgICAgc3RhdHVzOiBudWxsLFxuICAgICAgICBzZXNzaW9uOiBzZXNzaW9uLFxuICAgICAgfSBhcyBhbnk7XG4gICAgcmV0dXJuIGNsaWVudDtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFlQSxJQUFBQSxXQUFBLEdBQUFDLE9BQUE7OztBQUdBLElBQUFDLGtCQUFBLEdBQUFELE9BQUE7O0FBRUEsSUFBQUUsZUFBQSxHQUFBQyxzQkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQUksVUFBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssWUFBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sUUFBQSxHQUFBSCxzQkFBQSxDQUFBSCxPQUFBLDBCQUEyQyxDQXZCM0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBV2UsTUFBTU8saUJBQWlCLENBQUMsQ0FDckNDLG1CQUFtQkEsQ0FBQ0MsTUFBVyxFQUFFLENBQy9CLElBQUlBLE1BQU0sQ0FBQ0MsTUFBTSxDQUFDQyxRQUFRLElBQUksQ0FBQ0YsTUFBTSxDQUFDUCxlQUFlLEVBQ25ETyxNQUFNLENBQUNQLGVBQWUsR0FBRyxJQUFJVSx1QkFBYyxDQUN6Q0gsTUFBTSxDQUFDQyxNQUFNLENBQUNDLFFBQVEsRUFDdEJGLE1BQU0sQ0FBQ0ksT0FDVCxDQUFDLENBQ0gsT0FBT0osTUFBTSxDQUFDUCxlQUFlLENBQy9C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
327
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfd3BwY29ubmVjdCIsInJlcXVpcmUiLCJfc2Vzc2lvbkNvbnRyb2xsZXIiLCJfY2hhdFdvb3RDbGllbnQiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2Z1bmN0aW9ucyIsIl9zZXNzaW9uVXRpbCIsIl9mYWN0b3J5IiwiQ3JlYXRlU2Vzc2lvblV0aWwiLCJzdGFydENoYXRXb290Q2xpZW50IiwiY2xpZW50IiwiY29uZmlnIiwiY2hhdFdvb3QiLCJjaGF0V29vdENsaWVudCIsInNlc3Npb24iLCJjcmVhdGVTZXNzaW9uVXRpbCIsInJlcSIsImNsaWVudHNBcnJheSIsInJlcyIsImdldENsaWVudCIsInN0YXR1cyIsImJvZHkiLCJ0b2tlblN0b3JlIiwiRmFjdG9yeSIsIm15VG9rZW5TdG9yZSIsImNyZWF0ZVRva2VuU3RvcnkiLCJ0b2tlbkRhdGEiLCJnZXRUb2tlbiIsInNldFRva2VuIiwic2VydmVyT3B0aW9ucyIsImN1c3RvbVVzZXJEYXRhRGlyIiwiY3JlYXRlT3B0aW9ucyIsInB1cHBldGVlck9wdGlvbnMiLCJ1c2VyRGF0YURpciIsIndwcENsaWVudCIsImNyZWF0ZSIsIk9iamVjdCIsImFzc2lnbiIsImRldmljZU5hbWUiLCJwb3dlcmVkQnkiLCJjYXRjaFFSIiwiYmFzZTY0UXIiLCJhc2NpaVFSIiwiYXR0ZW1wdCIsInVybENvZGUiLCJleHBvcnRRUiIsIm9uTG9hZGluZ1NjcmVlbiIsInBlcmNlbnQiLCJtZXNzYWdlIiwibG9nZ2VyIiwiaW5mbyIsInN0YXR1c0ZpbmQiLCJldmVudEVtaXR0ZXIiLCJlbWl0IiwicXJjb2RlIiwiY2xvc2UiLCJ1bmRlZmluZWQiLCJjYWxsV2ViSG9vayIsImVycm9yIiwic3RhcnQiLCJ3ZWJob29rIiwib25QYXJ0aWNpcGFudHNDaGFuZ2VkIiwib25SZWFjdGlvbk1lc3NhZ2UiLCJvblJldm9rZWRNZXNzYWdlIiwib25Qb2xsUmVzcG9uc2UiLCJvbkxhYmVsVXBkYXRlZCIsImUiLCJvcGVuZGF0YSIsInFyQ29kZSIsInVybGNvZGUiLCJyZXBsYWNlIiwiaW1hZ2VCdWZmZXIiLCJCdWZmZXIiLCJmcm9tIiwiaW8iLCJkYXRhIiwidG9TdHJpbmciLCJfaGVhZGVyU2VudCIsImpzb24iLCJpc0Nvbm5lY3RlZCIsInN0YXJ0SGVscGVyIiwiY2hlY2tTdGF0ZVNlc3Npb24iLCJsaXN0ZW5NZXNzYWdlcyIsImxpc3RlbkFja3MiLCJvblByZXNlbmNlQ2hhbmdlZCIsIm9uU3RhdGVDaGFuZ2UiLCJzdGF0ZSIsImNvbmZsaXRzIiwiU29ja2V0U3RhdGUiLCJDT05GTElDVCIsImluY2x1ZGVzIiwidXNlSGVyZSIsIm9uTWVzc2FnZSIsInR5cGUiLCJvbkxpdmVMb2NhdGlvbiIsInNlbmRlciIsImlkIiwibG9jYXRpb24iLCJvbkFueU1lc3NhZ2UiLCJkb3dubG9hZCIsIndlYnNvY2tldCIsImF1dG9Eb3dubG9hZCIsInJlc3BvbnNlIiwib25TZWxmTWVzc2FnZSIsImZyb21NZSIsIm9uSW5jb21pbmdDYWxsIiwiY2FsbCIsIm9uQWNrIiwiYWNrIiwicHJlc2VuY2VDaGFuZ2VkRXZlbnQiLCJyZWFjdGlvbiIsIm9uVXBkYXRlTGFiZWwiLCJlbmNvZGVGdW5jdGlvbiIsIkpTT04iLCJzdHJpbmdpZnkiLCJkZWNvZGVGdW5jdGlvbiIsInRleHQiLCJvYmplY3QiLCJwYXJzZSIsImV4cG9ydHMiLCJkZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWwvY3JlYXRlU2Vzc2lvblV0aWwudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDIxIFdQUENvbm5lY3QgVGVhbVxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHsgY3JlYXRlLCBTb2NrZXRTdGF0ZSB9IGZyb20gJ0B3cHBjb25uZWN0LXRlYW0vd3BwY29ubmVjdCc7XG5pbXBvcnQgeyBSZXF1ZXN0IH0gZnJvbSAnZXhwcmVzcyc7XG5cbmltcG9ydCB7IGRvd25sb2FkIH0gZnJvbSAnLi4vY29udHJvbGxlci9zZXNzaW9uQ29udHJvbGxlcic7XG5pbXBvcnQgeyBXaGF0c0FwcFNlcnZlciB9IGZyb20gJy4uL3R5cGVzL1doYXRzQXBwU2VydmVyJztcbmltcG9ydCBjaGF0V29vdENsaWVudCBmcm9tICcuL2NoYXRXb290Q2xpZW50JztcbmltcG9ydCB7IGF1dG9Eb3dubG9hZCwgY2FsbFdlYkhvb2ssIHN0YXJ0SGVscGVyIH0gZnJvbSAnLi9mdW5jdGlvbnMnO1xuaW1wb3J0IHsgY2xpZW50c0FycmF5LCBldmVudEVtaXR0ZXIgfSBmcm9tICcuL3Nlc3Npb25VdGlsJztcbmltcG9ydCBGYWN0b3J5IGZyb20gJy4vdG9rZW5TdG9yZS9mYWN0b3J5JztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ3JlYXRlU2Vzc2lvblV0aWwge1xuICBzdGFydENoYXRXb290Q2xpZW50KGNsaWVudDogYW55KSB7XG4gICAgaWYgKGNsaWVudC5jb25maWcuY2hhdFdvb3QgJiYgIWNsaWVudC5fY2hhdFdvb3RDbGllbnQpXG4gICAgICBjbGllbnQuX2NoYXRXb290Q2xpZW50ID0gbmV3IGNoYXRXb290Q2xpZW50KFxuICAgICAgICBjbGllbnQuY29uZmlnLmNoYXRXb290LFxuICAgICAgICBjbGllbnQuc2Vzc2lvblxuICAgICAgKTtcbiAgICByZXR1cm4gY2xpZW50Ll9jaGF0V29vdENsaWVudDtcbiAgfVxuXG4gIGFzeW5jIGNyZWF0ZVNlc3Npb25VdGlsKFxuICAgIHJlcTogYW55LFxuICAgIGNsaWVudHNBcnJheTogYW55LFxuICAgIHNlc3Npb246IHN0cmluZyxcbiAgICByZXM/OiBhbnlcbiAgKSB7XG4gICAgdHJ5IHtcbiAgICAgIGxldCBjbGllbnQgPSB0aGlzLmdldENsaWVudChzZXNzaW9uKSBhcyBhbnk7XG4gICAgICBpZiAoY2xpZW50LnN0YXR1cyAhPSBudWxsICYmIGNsaWVudC5zdGF0dXMgIT09ICdDTE9TRUQnKSByZXR1cm47XG4gICAgICBjbGllbnQuc3RhdHVzID0gJ0lOSVRJQUxJWklORyc7XG4gICAgICBjbGllbnQuY29uZmlnID0gcmVxLmJvZHk7XG5cbiAgICAgIGNvbnN0IHRva2VuU3RvcmUgPSBuZXcgRmFjdG9yeSgpO1xuICAgICAgY29uc3QgbXlUb2tlblN0b3JlID0gdG9rZW5TdG9yZS5jcmVhdGVUb2tlblN0b3J5KGNsaWVudCk7XG4gICAgICBjb25zdCB0b2tlbkRhdGEgPSBhd2FpdCBteVRva2VuU3RvcmUuZ2V0VG9rZW4oc2Vzc2lvbik7XG5cbiAgICAgIGlmICghdG9rZW5EYXRhKSB7XG4gICAgICAgIG15VG9rZW5TdG9yZS5zZXRUb2tlbihzZXNzaW9uLCB7fSk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuc3RhcnRDaGF0V29vdENsaWVudChjbGllbnQpO1xuXG4gICAgICBpZiAocmVxLnNlcnZlck9wdGlvbnMuY3VzdG9tVXNlckRhdGFEaXIpIHtcbiAgICAgICAgcmVxLnNlcnZlck9wdGlvbnMuY3JlYXRlT3B0aW9ucy5wdXBwZXRlZXJPcHRpb25zID0ge1xuICAgICAgICAgIHVzZXJEYXRhRGlyOiByZXEuc2VydmVyT3B0aW9ucy5jdXN0b21Vc2VyRGF0YURpciArIHNlc3Npb24sXG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHdwcENsaWVudCA9IGF3YWl0IGNyZWF0ZShcbiAgICAgICAgT2JqZWN0LmFzc2lnbihcbiAgICAgICAgICB7fSxcbiAgICAgICAgICB7IHRva2VuU3RvcmU6IG15VG9rZW5TdG9yZSB9LFxuICAgICAgICAgIHJlcS5zZXJ2ZXJPcHRpb25zLmNyZWF0ZU9wdGlvbnMsXG4gICAgICAgICAge1xuICAgICAgICAgICAgc2Vzc2lvbjogc2Vzc2lvbixcbiAgICAgICAgICAgIGRldmljZU5hbWU6XG4gICAgICAgICAgICAgIGNsaWVudC5jb25maWc/LmRldmljZU5hbWUgfHwgcmVxLnNlcnZlck9wdGlvbnMuZGV2aWNlTmFtZSxcbiAgICAgICAgICAgIHBvd2VyZWRCeTpcbiAgICAgICAgICAgICAgY2xpZW50LmNvbmZpZz8ucG93ZXJlZEJ5IHx8XG4gICAgICAgICAgICAgIHJlcS5zZXJ2ZXJPcHRpb25zLnBvd2VyZWRCeSB8fFxuICAgICAgICAgICAgICAnV1BQQ29ubmVjdC1TZXJ2ZXInLFxuICAgICAgICAgICAgY2F0Y2hRUjogKFxuICAgICAgICAgICAgICBiYXNlNjRRcjogYW55LFxuICAgICAgICAgICAgICBhc2NpaVFSOiBhbnksXG4gICAgICAgICAgICAgIGF0dGVtcHQ6IGFueSxcbiAgICAgICAgICAgICAgdXJsQ29kZTogc3RyaW5nXG4gICAgICAgICAgICApID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5leHBvcnRRUihyZXEsIGJhc2U2NFFyLCB1cmxDb2RlLCBjbGllbnQsIHJlcyk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgb25Mb2FkaW5nU2NyZWVuOiAocGVyY2VudDogc3RyaW5nLCBtZXNzYWdlOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgICAgcmVxLmxvZ2dlci5pbmZvKGBbJHtzZXNzaW9ufV0gJHtwZXJjZW50fSUgLSAke21lc3NhZ2V9YCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc3RhdHVzRmluZDogKHN0YXR1c0ZpbmQ6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGV2ZW50RW1pdHRlci5lbWl0KFxuICAgICAgICAgICAgICAgICAgYHN0YXR1cy0ke2NsaWVudC5zZXNzaW9ufWAsXG4gICAgICAgICAgICAgICAgICBjbGllbnQsXG4gICAgICAgICAgICAgICAgICBzdGF0dXNGaW5kXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICBzdGF0dXNGaW5kID09PSAnYXV0b2Nsb3NlQ2FsbGVkJyB8fFxuICAgICAgICAgICAgICAgICAgc3RhdHVzRmluZCA9PT0gJ2Rlc2Nvbm5lY3RlZE1vYmlsZSdcbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgIGNsaWVudC5zdGF0dXMgPSAnQ0xPU0VEJztcbiAgICAgICAgICAgICAgICAgIGNsaWVudC5xcmNvZGUgPSBudWxsO1xuICAgICAgICAgICAgICAgICAgY2xpZW50LmNsb3NlKCk7XG4gICAgICAgICAgICAgICAgICBjbGllbnRzQXJyYXlbc2Vzc2lvbl0gPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhbGxXZWJIb29rKGNsaWVudCwgcmVxLCAnc3RhdHVzLWZpbmQnLCB7XG4gICAgICAgICAgICAgICAgICBzdGF0dXM6IHN0YXR1c0ZpbmQsXG4gICAgICAgICAgICAgICAgICBzZXNzaW9uOiBjbGllbnQuc2Vzc2lvbixcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICByZXEubG9nZ2VyLmluZm8oc3RhdHVzRmluZCArICdcXG5cXG4nKTtcbiAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHt9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH1cbiAgICAgICAgKVxuICAgICAgKTtcblxuICAgICAgY2xpZW50ID0gY2xpZW50c0FycmF5W3Nlc3Npb25dID0gT2JqZWN0LmFzc2lnbih3cHBDbGllbnQsIGNsaWVudCk7XG4gICAgICBhd2FpdCB0aGlzLnN0YXJ0KHJlcSwgY2xpZW50KTtcblxuICAgICAgaWYgKHJlcS5zZXJ2ZXJPcHRpb25zLndlYmhvb2sub25QYXJ0aWNpcGFudHNDaGFuZ2VkKSB7XG4gICAgICAgIGF3YWl0IHRoaXMub25QYXJ0aWNpcGFudHNDaGFuZ2VkKHJlcSwgY2xpZW50KTtcbiAgICAgIH1cblxuICAgICAgaWYgKHJlcS5zZXJ2ZXJPcHRpb25zLndlYmhvb2sub25SZWFjdGlvbk1lc3NhZ2UpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5vblJlYWN0aW9uTWVzc2FnZShjbGllbnQsIHJlcSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChyZXEuc2VydmVyT3B0aW9ucy53ZWJob29rLm9uUmV2b2tlZE1lc3NhZ2UpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5vblJldm9rZWRNZXNzYWdlKGNsaWVudCwgcmVxKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHJlcS5zZXJ2ZXJPcHRpb25zLndlYmhvb2sub25Qb2xsUmVzcG9uc2UpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5vblBvbGxSZXNwb25zZShjbGllbnQsIHJlcSk7XG4gICAgICB9XG4gICAgICBpZiAocmVxLnNlcnZlck9wdGlvbnMud2ViaG9vay5vbkxhYmVsVXBkYXRlZCkge1xuICAgICAgICBhd2FpdCB0aGlzLm9uTGFiZWxVcGRhdGVkKGNsaWVudCwgcmVxKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICByZXEubG9nZ2VyLmVycm9yKGUpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIG9wZW5kYXRhKHJlcTogUmVxdWVzdCwgc2Vzc2lvbjogc3RyaW5nLCByZXM/OiBhbnkpIHtcbiAgICBhd2FpdCB0aGlzLmNyZWF0ZVNlc3Npb25VdGlsKHJlcSwgY2xpZW50c0FycmF5LCBzZXNzaW9uLCByZXMpO1xuICB9XG5cbiAgZXhwb3J0UVIoXG4gICAgcmVxOiBhbnksXG4gICAgcXJDb2RlOiBhbnksXG4gICAgdXJsQ29kZTogYW55LFxuICAgIGNsaWVudDogV2hhdHNBcHBTZXJ2ZXIsXG4gICAgcmVzPzogYW55XG4gICkge1xuICAgIGV2ZW50RW1pdHRlci5lbWl0KGBxcmNvZGUtJHtjbGllbnQuc2Vzc2lvbn1gLCBxckNvZGUsIHVybENvZGUsIGNsaWVudCk7XG4gICAgT2JqZWN0LmFzc2lnbihjbGllbnQsIHtcbiAgICAgIHN0YXR1czogJ1FSQ09ERScsXG4gICAgICBxcmNvZGU6IHFyQ29kZSxcbiAgICAgIHVybGNvZGU6IHVybENvZGUsXG4gICAgfSk7XG5cbiAgICBxckNvZGUgPSBxckNvZGUucmVwbGFjZSgnZGF0YTppbWFnZS9wbmc7YmFzZTY0LCcsICcnKTtcbiAgICBjb25zdCBpbWFnZUJ1ZmZlciA9IEJ1ZmZlci5mcm9tKHFyQ29kZSwgJ2Jhc2U2NCcpO1xuXG4gICAgcmVxLmlvLmVtaXQoJ3FyQ29kZScsIHtcbiAgICAgIGRhdGE6ICdkYXRhOmltYWdlL3BuZztiYXNlNjQsJyArIGltYWdlQnVmZmVyLnRvU3RyaW5nKCdiYXNlNjQnKSxcbiAgICAgIHNlc3Npb246IGNsaWVudC5zZXNzaW9uLFxuICAgIH0pO1xuXG4gICAgY2FsbFdlYkhvb2soY2xpZW50LCByZXEsICdxcmNvZGUnLCB7XG4gICAgICBxcmNvZGU6IHFyQ29kZSxcbiAgICAgIHVybGNvZGU6IHVybENvZGUsXG4gICAgICBzZXNzaW9uOiBjbGllbnQuc2Vzc2lvbixcbiAgICB9KTtcbiAgICBpZiAocmVzICYmICFyZXMuX2hlYWRlclNlbnQpXG4gICAgICByZXMuc3RhdHVzKDIwMCkuanNvbih7XG4gICAgICAgIHN0YXR1czogJ3FyY29kZScsXG4gICAgICAgIHFyY29kZTogcXJDb2RlLFxuICAgICAgICB1cmxjb2RlOiB1cmxDb2RlLFxuICAgICAgICBzZXNzaW9uOiBjbGllbnQuc2Vzc2lvbixcbiAgICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgb25QYXJ0aWNpcGFudHNDaGFuZ2VkKHJlcTogYW55LCBjbGllbnQ6IGFueSkge1xuICAgIGF3YWl0IGNsaWVudC5pc0Nvbm5lY3RlZCgpO1xuICAgIGF3YWl0IGNsaWVudC5vblBhcnRpY2lwYW50c0NoYW5nZWQoKG1lc3NhZ2U6IGFueSkgPT4ge1xuICAgICAgY2FsbFdlYkhvb2soY2xpZW50LCByZXEsICdvbnBhcnRpY2lwYW50c2NoYW5nZWQnLCBtZXNzYWdlKTtcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIHN0YXJ0KHJlcTogUmVxdWVzdCwgY2xpZW50OiBXaGF0c0FwcFNlcnZlcikge1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCBjbGllbnQuaXNDb25uZWN0ZWQoKTtcbiAgICAgIE9iamVjdC5hc3NpZ24oY2xpZW50LCB7IHN0YXR1czogJ0NPTk5FQ1RFRCcsIHFyY29kZTogbnVsbCB9KTtcblxuICAgICAgcmVxLmxvZ2dlci5pbmZvKGBTdGFydGVkIFNlc3Npb246ICR7Y2xpZW50LnNlc3Npb259YCk7XG4gICAgICAvL2NhbGxXZWJIb29rKGNsaWVudCwgcmVxLCAnc2Vzc2lvbi1sb2dnZWQnLCB7IHN0YXR1czogJ0NPTk5FQ1RFRCd9KTtcbiAgICAgIHJlcS5pby5lbWl0KCdzZXNzaW9uLWxvZ2dlZCcsIHsgc3RhdHVzOiB0cnVlLCBzZXNzaW9uOiBjbGllbnQuc2Vzc2lvbiB9KTtcbiAgICAgIHN0YXJ0SGVscGVyKGNsaWVudCwgcmVxKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgcmVxLmxvZ2dlci5lcnJvcihlcnJvcik7XG4gICAgICByZXEuaW8uZW1pdCgnc2Vzc2lvbi1lcnJvcicsIGNsaWVudC5zZXNzaW9uKTtcbiAgICB9XG5cbiAgICBhd2FpdCB0aGlzLmNoZWNrU3RhdGVTZXNzaW9uKGNsaWVudCwgcmVxKTtcbiAgICBhd2FpdCB0aGlzLmxpc3Rlbk1lc3NhZ2VzKGNsaWVudCwgcmVxKTtcblxuICAgIGlmIChyZXEuc2VydmVyT3B0aW9ucy53ZWJob29rLmxpc3RlbkFja3MpIHtcbiAgICAgIGF3YWl0IHRoaXMubGlzdGVuQWNrcyhjbGllbnQsIHJlcSk7XG4gICAgfVxuXG4gICAgaWYgKHJlcS5zZXJ2ZXJPcHRpb25zLndlYmhvb2sub25QcmVzZW5jZUNoYW5nZWQpIHtcbiAgICAgIGF3YWl0IHRoaXMub25QcmVzZW5jZUNoYW5nZWQoY2xpZW50LCByZXEpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGNoZWNrU3RhdGVTZXNzaW9uKGNsaWVudDogV2hhdHNBcHBTZXJ2ZXIsIHJlcTogUmVxdWVzdCkge1xuICAgIGF3YWl0IGNsaWVudC5vblN0YXRlQ2hhbmdlKChzdGF0ZSkgPT4ge1xuICAgICAgcmVxLmxvZ2dlci5pbmZvKGBTdGF0ZSBDaGFuZ2UgJHtzdGF0ZX06ICR7Y2xpZW50LnNlc3Npb259YCk7XG4gICAgICBjb25zdCBjb25mbGl0cyA9IFtTb2NrZXRTdGF0ZS5DT05GTElDVF07XG5cbiAgICAgIGlmIChjb25mbGl0cy5pbmNsdWRlcyhzdGF0ZSkpIHtcbiAgICAgICAgY2xpZW50LnVzZUhlcmUoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIGxpc3Rlbk1lc3NhZ2VzKGNsaWVudDogV2hhdHNBcHBTZXJ2ZXIsIHJlcTogUmVxdWVzdCkge1xuICAgIGF3YWl0IGNsaWVudC5vbk1lc3NhZ2UoYXN5bmMgKG1lc3NhZ2U6IGFueSkgPT4ge1xuICAgICAgZXZlbnRFbWl0dGVyLmVtaXQoYG1lbnNhZ2VtLSR7Y2xpZW50LnNlc3Npb259YCwgY2xpZW50LCBtZXNzYWdlKTtcbiAgICAgIGNhbGxXZWJIb29rKGNsaWVudCwgcmVxLCAnb25tZXNzYWdlJywgbWVzc2FnZSk7XG4gICAgICBpZiAobWVzc2FnZS50eXBlID09PSAnbG9jYXRpb24nKVxuICAgICAgICBjbGllbnQub25MaXZlTG9jYXRpb24obWVzc2FnZS5zZW5kZXIuaWQsIChsb2NhdGlvbikgPT4ge1xuICAgICAgICAgIGNhbGxXZWJIb29rKGNsaWVudCwgcmVxLCAnbG9jYXRpb24nLCBsb2NhdGlvbik7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgYXdhaXQgY2xpZW50Lm9uQW55TWVzc2FnZShhc3luYyAobWVzc2FnZTogYW55KSA9PiB7XG4gICAgICBtZXNzYWdlLnNlc3Npb24gPSBjbGllbnQuc2Vzc2lvbjtcblxuICAgICAgaWYgKG1lc3NhZ2UudHlwZSA9PT0gJ3N0aWNrZXInKSB7XG4gICAgICAgIGRvd25sb2FkKG1lc3NhZ2UsIGNsaWVudCwgcmVxLmxvZ2dlcik7XG4gICAgICB9XG5cbiAgICAgIGlmIChcbiAgICAgICAgcmVxLnNlcnZlck9wdGlvbnM/LndlYnNvY2tldD8uYXV0b0Rvd25sb2FkIHx8XG4gICAgICAgIHJlcS5zZXJ2ZXJPcHRpb25zPy53ZWJob29rPy5hdXRvRG93bmxvYWRcbiAgICAgICkge1xuICAgICAgICBhd2FpdCBhdXRvRG93bmxvYWQoY2xpZW50LCByZXEsIG1lc3NhZ2UpO1xuICAgICAgfVxuXG4gICAgICByZXEuaW8uZW1pdCgncmVjZWl2ZWQtbWVzc2FnZScsIHsgcmVzcG9uc2U6IG1lc3NhZ2UgfSk7XG4gICAgICBpZiAocmVxLnNlcnZlck9wdGlvbnMud2ViaG9vay5vblNlbGZNZXNzYWdlICYmIG1lc3NhZ2UuZnJvbU1lKVxuICAgICAgICBjYWxsV2ViSG9vayhjbGllbnQsIHJlcSwgJ29uc2VsZm1lc3NhZ2UnLCBtZXNzYWdlKTtcbiAgICB9KTtcblxuICAgIGF3YWl0IGNsaWVudC5vbkluY29taW5nQ2FsbChhc3luYyAoY2FsbCkgPT4ge1xuICAgICAgcmVxLmlvLmVtaXQoJ2luY29taW5nY2FsbCcsIGNhbGwpO1xuICAgICAgY2FsbFdlYkhvb2soY2xpZW50LCByZXEsICdpbmNvbWluZ2NhbGwnLCBjYWxsKTtcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIGxpc3RlbkFja3MoY2xpZW50OiBXaGF0c0FwcFNlcnZlciwgcmVxOiBSZXF1ZXN0KSB7XG4gICAgYXdhaXQgY2xpZW50Lm9uQWNrKGFzeW5jIChhY2spID0+IHtcbiAgICAgIHJlcS5pby5lbWl0KCdvbmFjaycsIGFjayk7XG4gICAgICBjYWxsV2ViSG9vayhjbGllbnQsIHJlcSwgJ29uYWNrJywgYWNrKTtcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIG9uUHJlc2VuY2VDaGFuZ2VkKGNsaWVudDogV2hhdHNBcHBTZXJ2ZXIsIHJlcTogUmVxdWVzdCkge1xuICAgIGF3YWl0IGNsaWVudC5vblByZXNlbmNlQ2hhbmdlZChhc3luYyAocHJlc2VuY2VDaGFuZ2VkRXZlbnQpID0+IHtcbiAgICAgIHJlcS5pby5lbWl0KCdvbnByZXNlbmNlY2hhbmdlZCcsIHByZXNlbmNlQ2hhbmdlZEV2ZW50KTtcbiAgICAgIGNhbGxXZWJIb29rKGNsaWVudCwgcmVxLCAnb25wcmVzZW5jZWNoYW5nZWQnLCBwcmVzZW5jZUNoYW5nZWRFdmVudCk7XG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBvblJlYWN0aW9uTWVzc2FnZShjbGllbnQ6IFdoYXRzQXBwU2VydmVyLCByZXE6IFJlcXVlc3QpIHtcbiAgICBhd2FpdCBjbGllbnQuaXNDb25uZWN0ZWQoKTtcbiAgICBhd2FpdCBjbGllbnQub25SZWFjdGlvbk1lc3NhZ2UoYXN5bmMgKHJlYWN0aW9uOiBhbnkpID0+IHtcbiAgICAgIHJlcS5pby5lbWl0KCdvbnJlYWN0aW9ubWVzc2FnZScsIHJlYWN0aW9uKTtcbiAgICAgIGNhbGxXZWJIb29rKGNsaWVudCwgcmVxLCAnb25yZWFjdGlvbm1lc3NhZ2UnLCByZWFjdGlvbik7XG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBvblJldm9rZWRNZXNzYWdlKGNsaWVudDogV2hhdHNBcHBTZXJ2ZXIsIHJlcTogUmVxdWVzdCkge1xuICAgIGF3YWl0IGNsaWVudC5pc0Nvbm5lY3RlZCgpO1xuICAgIGF3YWl0IGNsaWVudC5vblJldm9rZWRNZXNzYWdlKGFzeW5jIChyZXNwb25zZTogYW55KSA9PiB7XG4gICAgICByZXEuaW8uZW1pdCgnb25yZXZva2VkbWVzc2FnZScsIHJlc3BvbnNlKTtcbiAgICAgIGNhbGxXZWJIb29rKGNsaWVudCwgcmVxLCAnb25yZXZva2VkbWVzc2FnZScsIHJlc3BvbnNlKTtcbiAgICB9KTtcbiAgfVxuICBhc3luYyBvblBvbGxSZXNwb25zZShjbGllbnQ6IFdoYXRzQXBwU2VydmVyLCByZXE6IFJlcXVlc3QpIHtcbiAgICBhd2FpdCBjbGllbnQuaXNDb25uZWN0ZWQoKTtcbiAgICBhd2FpdCBjbGllbnQub25Qb2xsUmVzcG9uc2UoYXN5bmMgKHJlc3BvbnNlOiBhbnkpID0+IHtcbiAgICAgIHJlcS5pby5lbWl0KCdvbnBvbGxyZXNwb25zZScsIHJlc3BvbnNlKTtcbiAgICAgIGNhbGxXZWJIb29rKGNsaWVudCwgcmVxLCAnb25wb2xscmVzcG9uc2UnLCByZXNwb25zZSk7XG4gICAgfSk7XG4gIH1cbiAgYXN5bmMgb25MYWJlbFVwZGF0ZWQoY2xpZW50OiBXaGF0c0FwcFNlcnZlciwgcmVxOiBSZXF1ZXN0KSB7XG4gICAgYXdhaXQgY2xpZW50LmlzQ29ubmVjdGVkKCk7XG4gICAgYXdhaXQgY2xpZW50Lm9uVXBkYXRlTGFiZWwoYXN5bmMgKHJlc3BvbnNlOiBhbnkpID0+IHtcbiAgICAgIHJlcS5pby5lbWl0KCdvbnVwZGF0ZWxhYmVsJywgcmVzcG9uc2UpO1xuICAgICAgY2FsbFdlYkhvb2soY2xpZW50LCByZXEsICdvbnVwZGF0ZWxhYmVsJywgcmVzcG9uc2UpO1xuICAgIH0pO1xuICB9XG5cbiAgZW5jb2RlRnVuY3Rpb24oZGF0YTogYW55LCB3ZWJob29rOiBhbnkpIHtcbiAgICBkYXRhLndlYmhvb2sgPSB3ZWJob29rO1xuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShkYXRhKTtcbiAgfVxuXG4gIGRlY29kZUZ1bmN0aW9uKHRleHQ6IGFueSwgY2xpZW50OiBhbnkpIHtcbiAgICBjb25zdCBvYmplY3QgPSBKU09OLnBhcnNlKHRleHQpO1xuICAgIGlmIChvYmplY3Qud2ViaG9vayAmJiAhY2xpZW50LndlYmhvb2spIGNsaWVudC53ZWJob29rID0gb2JqZWN0LndlYmhvb2s7XG4gICAgZGVsZXRlIG9iamVjdC53ZWJob29rO1xuICAgIHJldHVybiBvYmplY3Q7XG4gIH1cblxuICBnZXRDbGllbnQoc2Vzc2lvbjogYW55KSB7XG4gICAgbGV0IGNsaWVudCA9IGNsaWVudHNBcnJheVtzZXNzaW9uXTtcblxuICAgIGlmICghY2xpZW50KVxuICAgICAgY2xpZW50ID0gY2xpZW50c0FycmF5W3Nlc3Npb25dID0ge1xuICAgICAgICBzdGF0dXM6IG51bGwsXG4gICAgICAgIHNlc3Npb246IHNlc3Npb24sXG4gICAgICB9IGFzIGFueTtcbiAgICByZXR1cm4gY2xpZW50O1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQWVBLElBQUFBLFdBQUEsR0FBQUMsT0FBQTs7O0FBR0EsSUFBQUMsa0JBQUEsR0FBQUQsT0FBQTs7QUFFQSxJQUFBRSxlQUFBLEdBQUFDLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBSSxVQUFBLEdBQUFKLE9BQUE7QUFDQSxJQUFBSyxZQUFBLEdBQUFMLE9BQUE7QUFDQSxJQUFBTSxRQUFBLEdBQUFILHNCQUFBLENBQUFILE9BQUEsMEJBQTJDLENBdkIzQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FXZSxNQUFNTyxpQkFBaUIsQ0FBQyxDQUNyQ0MsbUJBQW1CQSxDQUFDQyxNQUFXLEVBQUUsQ0FDL0IsSUFBSUEsTUFBTSxDQUFDQyxNQUFNLENBQUNDLFFBQVEsSUFBSSxDQUFDRixNQUFNLENBQUNQLGVBQWUsRUFDbkRPLE1BQU0sQ0FBQ1AsZUFBZSxHQUFHLElBQUlVLHVCQUFjLENBQ3pDSCxNQUFNLENBQUNDLE1BQU0s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QUM7SUFDMUIsTUFBTXJFLE1BQU0sQ0FBQ3NELGNBQWMsQ0FBQyxPQUFPc0MsUUFBYSxLQUFLO01BQ25EdEYsR0FBRyxDQUFDMEQsRUFBRSxDQUFDckIsSUFBSSxDQUFDLGdCQUFnQixFQUFFaUQsUUFBUSxDQUFDO01BQ3ZDLElBQUE3QyxzQkFBVyxFQUFDL0MsTUFBTSxFQUFFTSxHQUFHLEVBQUUsZ0JBQWdCLEVBQUVzRixRQUFRLENBQUM7SUFDdEQsQ0FBQyxDQUFDO0VBQ0o7RUFDQSxNQUFNckMsY0FBY0EsQ0FBQ3ZELE1BQXNCLEVBQUVNLEdBQVksRUFBRTtJQUN6RCxNQUFNTixNQUFNLENBQUNxRSxXQUFXLENBQUMsQ0FBQztJQUMxQixNQUFNckUsTUFBTSxDQUFDcUcsYUFBYSxDQUFDLE9BQU9ULFFBQWEsS0FBSztNQUNsRHRGLEdBQUcsQ0FBQzBELEVBQUUsQ0FBQ3JCLElBQUksQ0FBQyxlQUFlLEVBQUVpRCxRQUFRLENBQUM7TUFDdEMsSUFBQTdDLHNCQUFXLEVBQUMvQyxNQUFNLEVBQUVNLEdBQUcsRUFBRSxlQUFlLEVBQUVzRixRQUFRLENBQUM7SUFDckQsQ0FBQyxDQUFDO0VBQ0o7O0VBRUFVLGNBQWNBLENBQUNyQyxJQUFTLEVBQUVmLE9BQVksRUFBRTtJQUN0Q2UsSUFBSSxDQUFDZixPQUFPLEdBQUdBLE9BQU87SUFDdEIsT0FBT3FELElBQUksQ0FBQ0MsU0FBUyxDQUFDdkMsSUFBSSxDQUFDO0VBQzdCOztFQUVBd0MsY0FBY0EsQ0FBQ0MsSUFBUyxFQUFFMUcsTUFBVyxFQUFFO0lBQ3JDLE1BQU0yRyxNQUFNLEdBQUdKLElBQUksQ0FBQ0ssS0FBSyxDQUFDRixJQUFJLENBQUM7SUFDL0IsSUFBSUMsTUFBTSxDQUFDekQsT0FBTyxJQUFJLENBQUNsRCxNQUFNLENBQUNrRCxPQUFPLEVBQUVsRCxNQUFNLENBQUNrRCxPQUFPLEdBQUd5RCxNQUFNLENBQUN6RCxPQUFPO0lBQ3RFLE9BQU95RCxNQUFNLENBQUN6RCxPQUFPO0lBQ3JCLE9BQU95RCxNQUFNO0VBQ2Y7O0VBRUFsRyxTQUFTQSxDQUFDTCxPQUFZLEVBQUU7SUFDdEIsSUFBSUosTUFBTSxHQUFHTyx5QkFBWSxDQUFDSCxPQUFPLENBQUM7O0lBRWxDLElBQUksQ0FBQ0osTUFBTTtJQUNUQSxNQUFNLEdBQUdPLHlCQUFZLENBQUNILE9BQU8sQ0FBQyxHQUFHO01BQy9CTSxNQUFNLEVBQUUsSUFBSTtNQUNaTixPQUFPLEVBQUVBO0lBQ1gsQ0FBUTtJQUNWLE9BQU9KLE1BQU07RUFDZjtBQUNGLENBQUM2RyxPQUFBLENBQUFDLE9BQUEsR0FBQWhILGlCQUFBIiwiaWdub3JlTGlzdCI6W119
@@ -28,4 +28,4 @@ if (_config.default.tokenStoreType === 'mongodb') {
28
28
  }var _default = exports.default =
29
29
 
30
30
  mongoose;
31
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29uZmlnIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJtb25nb29zZSIsImNvbmZpZyIsInRva2VuU3RvcmVUeXBlIiwiUHJvbWlzZSIsImdsb2JhbCIsInVzZXJBbmRQYXNzd29yZCIsImRiIiwibW9uZ29kYlVzZXIiLCJtb25nb2RiUGFzc3dvcmQiLCJtb25nb0lzUmVtb3RlIiwiY29ubmVjdCIsIm1vbmdvZGJIb3N0IiwibW9uZ29kYlBvcnQiLCJtb25nb2RiRGF0YWJhc2UiLCJ1c2VOZXdVcmxQYXJzZXIiLCJ1c2VVbmlmaWVkVG9wb2xvZ3kiLCJtb25nb1VSTFJlbW90ZSIsIl9kZWZhdWx0IiwiZXhwb3J0cyIsImRlZmF1bHQiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdXRpbC9kYi9tb25nb2RiL2RiLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vaW1wb3J0IG1vbmdvb3NlIGZyb20gJ21vbmdvb3NlJztcbmltcG9ydCBjb25maWcgZnJvbSAnLi4vLi4vLi4vY29uZmlnJztcblxuY29uc3QgbW9uZ29vc2UgPVxuICBjb25maWcudG9rZW5TdG9yZVR5cGUgPT09ICdtb25nb2RiJyA/IHJlcXVpcmUoJ21vbmdvb3NlJykgOiBudWxsO1xuXG5pZiAoY29uZmlnLnRva2VuU3RvcmVUeXBlID09PSAnbW9uZ29kYicpIHtcbiAgbW9uZ29vc2UuUHJvbWlzZSA9IGdsb2JhbC5Qcm9taXNlO1xuICBjb25zdCB1c2VyQW5kUGFzc3dvcmQgPVxuICAgIGNvbmZpZy5kYi5tb25nb2RiVXNlciAmJiBjb25maWcuZGIubW9uZ29kYlBhc3N3b3JkXG4gICAgICA/IGAke2NvbmZpZy5kYi5tb25nb2RiVXNlcn06JHtjb25maWcuZGIubW9uZ29kYlBhc3N3b3JkfUBgXG4gICAgICA6ICcnO1xuXG4gIGlmICghY29uZmlnLmRiLm1vbmdvSXNSZW1vdGUpIHtcbiAgICBtb25nb29zZS5jb25uZWN0KFxuICAgICAgYG1vbmdvZGI6Ly8ke3VzZXJBbmRQYXNzd29yZH0ke2NvbmZpZy5kYi5tb25nb2RiSG9zdH06JHtjb25maWcuZGIubW9uZ29kYlBvcnR9LyR7Y29uZmlnLmRiLm1vbmdvZGJEYXRhYmFzZX1gLFxuICAgICAge1xuICAgICAgICB1c2VOZXdVcmxQYXJzZXI6IHRydWUsXG4gICAgICAgIHVzZVVuaWZpZWRUb3BvbG9neTogdHJ1ZSxcbiAgICAgIH1cbiAgICApO1xuICB9IGVsc2Uge1xuICAgIG1vbmdvb3NlLmNvbm5lY3QoY29uZmlnLmRiLm1vbmdvVVJMUmVtb3RlLCB7XG4gICAgICB1c2VOZXdVcmxQYXJzZXI6IHRydWUsXG4gICAgICB1c2VVbmlmaWVkVG9wb2xvZ3k6IHRydWUsXG4gICAgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgbW9uZ29vc2U7XG4iXSwibWFwcGluZ3MiOiI7QUFDQSxJQUFBQSxPQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUEscUJBQXFDLENBRHJDOztBQUdBLE1BQU1DLFFBQVE7QUFDWkMsZUFBTSxDQUFDQyxjQUFjLEtBQUssU0FBUyxHQUFHSCxPQUFPLENBQUMsVUFBVSxDQUFDLEdBQUcsSUFBSTs7QUFFbEUsSUFBSUUsZUFBTSxDQUFDQyxjQUFjLEtBQUssU0FBUyxFQUFFO0VBQ3ZDRixRQUFRLENBQUNHLE9BQU8sR0FBR0MsTUFBTSxDQUFDRCxPQUFPO0VBQ2pDLE1BQU1FLGVBQWU7RUFDbkJKLGVBQU0sQ0FBQ0ssRUFBRSxDQUFDQyxXQUFXLElBQUlOLGVBQU0sQ0FBQ0ssRUFBRSxDQUFDRSxlQUFlO0VBQzdDLEdBQUVQLGVBQU0sQ0FBQ0ssRUFBRSxDQUFDQyxXQUFZLElBQUdOLGVBQU0sQ0FBQ0ssRUFBRSxDQUFDRSxlQUFnQixHQUFFO0VBQ3hELEVBQUU7O0VBRVIsSUFBSSxDQUFDUCxlQUFNLENBQUNLLEVBQUUsQ0FBQ0csYUFBYSxFQUFFO0lBQzVCVCxRQUFRLENBQUNVLE9BQU87TUFDYixhQUFZTCxlQUFnQixHQUFFSixlQUFNLENBQUNLLEVBQUUsQ0FBQ0ssV0FBWSxJQUFHVixlQUFNLENBQUNLLEVBQUUsQ0FBQ00sV0FBWSxJQUFHWCxlQUFNLENBQUNLLEVBQUUsQ0FBQ08sZUFBZ0IsRUFBQztNQUM1RztRQUNFQyxlQUFlLEVBQUUsSUFBSTtRQUNyQkMsa0JBQWtCLEVBQUU7TUFDdEI7SUFDRixDQUFDO0VBQ0gsQ0FBQyxNQUFNO0lBQ0xmLFFBQVEsQ0FBQ1UsT0FBTyxDQUFDVCxlQUFNLENBQUNLLEVBQUUsQ0FBQ1UsY0FBYyxFQUFFO01BQ3pDRixlQUFlLEVBQUUsSUFBSTtNQUNyQkMsa0JBQWtCLEVBQUU7SUFDdEIsQ0FBQyxDQUFDO0VBQ0o7QUFDRixDQUFDLElBQUFFLFFBQUEsR0FBQUMsT0FBQSxDQUFBQyxPQUFBOztBQUVjbkIsUUFBUSJ9
31
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29uZmlnIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJtb25nb29zZSIsImNvbmZpZyIsInRva2VuU3RvcmVUeXBlIiwiUHJvbWlzZSIsImdsb2JhbCIsInVzZXJBbmRQYXNzd29yZCIsImRiIiwibW9uZ29kYlVzZXIiLCJtb25nb2RiUGFzc3dvcmQiLCJtb25nb0lzUmVtb3RlIiwiY29ubmVjdCIsIm1vbmdvZGJIb3N0IiwibW9uZ29kYlBvcnQiLCJtb25nb2RiRGF0YWJhc2UiLCJ1c2VOZXdVcmxQYXJzZXIiLCJ1c2VVbmlmaWVkVG9wb2xvZ3kiLCJtb25nb1VSTFJlbW90ZSIsIl9kZWZhdWx0IiwiZXhwb3J0cyIsImRlZmF1bHQiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdXRpbC9kYi9tb25nb2RiL2RiLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vaW1wb3J0IG1vbmdvb3NlIGZyb20gJ21vbmdvb3NlJztcbmltcG9ydCBjb25maWcgZnJvbSAnLi4vLi4vLi4vY29uZmlnJztcblxuY29uc3QgbW9uZ29vc2UgPVxuICBjb25maWcudG9rZW5TdG9yZVR5cGUgPT09ICdtb25nb2RiJyA/IHJlcXVpcmUoJ21vbmdvb3NlJykgOiBudWxsO1xuXG5pZiAoY29uZmlnLnRva2VuU3RvcmVUeXBlID09PSAnbW9uZ29kYicpIHtcbiAgbW9uZ29vc2UuUHJvbWlzZSA9IGdsb2JhbC5Qcm9taXNlO1xuICBjb25zdCB1c2VyQW5kUGFzc3dvcmQgPVxuICAgIGNvbmZpZy5kYi5tb25nb2RiVXNlciAmJiBjb25maWcuZGIubW9uZ29kYlBhc3N3b3JkXG4gICAgICA/IGAke2NvbmZpZy5kYi5tb25nb2RiVXNlcn06JHtjb25maWcuZGIubW9uZ29kYlBhc3N3b3JkfUBgXG4gICAgICA6ICcnO1xuXG4gIGlmICghY29uZmlnLmRiLm1vbmdvSXNSZW1vdGUpIHtcbiAgICBtb25nb29zZS5jb25uZWN0KFxuICAgICAgYG1vbmdvZGI6Ly8ke3VzZXJBbmRQYXNzd29yZH0ke2NvbmZpZy5kYi5tb25nb2RiSG9zdH06JHtjb25maWcuZGIubW9uZ29kYlBvcnR9LyR7Y29uZmlnLmRiLm1vbmdvZGJEYXRhYmFzZX1gLFxuICAgICAge1xuICAgICAgICB1c2VOZXdVcmxQYXJzZXI6IHRydWUsXG4gICAgICAgIHVzZVVuaWZpZWRUb3BvbG9neTogdHJ1ZSxcbiAgICAgIH1cbiAgICApO1xuICB9IGVsc2Uge1xuICAgIG1vbmdvb3NlLmNvbm5lY3QoY29uZmlnLmRiLm1vbmdvVVJMUmVtb3RlLCB7XG4gICAgICB1c2VOZXdVcmxQYXJzZXI6IHRydWUsXG4gICAgICB1c2VVbmlmaWVkVG9wb2xvZ3k6IHRydWUsXG4gICAgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgbW9uZ29vc2U7XG4iXSwibWFwcGluZ3MiOiI7QUFDQSxJQUFBQSxPQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUEscUJBQXFDLENBRHJDOztBQUdBLE1BQU1DLFFBQVE7QUFDWkMsZUFBTSxDQUFDQyxjQUFjLEtBQUssU0FBUyxHQUFHSCxPQUFPLENBQUMsVUFBVSxDQUFDLEdBQUcsSUFBSTs7QUFFbEUsSUFBSUUsZUFBTSxDQUFDQyxjQUFjLEtBQUssU0FBUyxFQUFFO0VBQ3ZDRixRQUFRLENBQUNHLE9BQU8sR0FBR0MsTUFBTSxDQUFDRCxPQUFPO0VBQ2pDLE1BQU1FLGVBQWU7RUFDbkJKLGVBQU0sQ0FBQ0ssRUFBRSxDQUFDQyxXQUFXLElBQUlOLGVBQU0sQ0FBQ0ssRUFBRSxDQUFDRSxlQUFlO0VBQzdDLEdBQUVQLGVBQU0sQ0FBQ0ssRUFBRSxDQUFDQyxXQUFZLElBQUdOLGVBQU0sQ0FBQ0ssRUFBRSxDQUFDRSxlQUFnQixHQUFFO0VBQ3hELEVBQUU7O0VBRVIsSUFBSSxDQUFDUCxlQUFNLENBQUNLLEVBQUUsQ0FBQ0csYUFBYSxFQUFFO0lBQzVCVCxRQUFRLENBQUNVLE9BQU87TUFDYixhQUFZTCxlQUFnQixHQUFFSixlQUFNLENBQUNLLEVBQUUsQ0FBQ0ssV0FBWSxJQUFHVixlQUFNLENBQUNLLEVBQUUsQ0FBQ00sV0FBWSxJQUFHWCxlQUFNLENBQUNLLEVBQUUsQ0FBQ08sZUFBZ0IsRUFBQztNQUM1RztRQUNFQyxlQUFlLEVBQUUsSUFBSTtRQUNyQkMsa0JBQWtCLEVBQUU7TUFDdEI7SUFDRixDQUFDO0VBQ0gsQ0FBQyxNQUFNO0lBQ0xmLFFBQVEsQ0FBQ1UsT0FBTyxDQUFDVCxlQUFNLENBQUNLLEVBQUUsQ0FBQ1UsY0FBYyxFQUFFO01BQ3pDRixlQUFlLEVBQUUsSUFBSTtNQUNyQkMsa0JBQWtCLEVBQUU7SUFDdEIsQ0FBQyxDQUFDO0VBQ0o7QUFDRixDQUFDLElBQUFFLFFBQUEsR0FBQUMsT0FBQSxDQUFBQyxPQUFBOztBQUVjbkIsUUFBUSIsImlnbm9yZUxpc3QiOltdfQ==
@@ -12,4 +12,4 @@ if (_config.default.tokenStoreType === 'redis') {
12
12
  }var _default = exports.default =
13
13
 
14
14
  RedisClient;
15
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29uZmlnIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJyZWRpcyIsImNvbmZpZyIsInRva2VuU3RvcmVUeXBlIiwiUmVkaXNDbGllbnQiLCJjcmVhdGVDbGllbnQiLCJkYiIsInJlZGlzUG9ydCIsInJlZGlzSG9zdCIsInBhc3N3b3JkIiwicmVkaXNQYXNzd29yZCIsInJlZGlzRGIiLCJfZGVmYXVsdCIsImV4cG9ydHMiLCJkZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3V0aWwvZGIvcmVkaXMvZGIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNvbmZpZyBmcm9tICcuLi8uLi8uLi9jb25maWcnO1xuXG5jb25zdCByZWRpcyA9IGNvbmZpZy50b2tlblN0b3JlVHlwZSA9PT0gJ3JlZGlzJyA/IHJlcXVpcmUoJ3JlZGlzJykgOiBudWxsO1xuXG5sZXQgUmVkaXNDbGllbnQ6IGFueSA9IG51bGw7XG5cbmlmIChjb25maWcudG9rZW5TdG9yZVR5cGUgPT09ICdyZWRpcycpIHtcbiAgUmVkaXNDbGllbnQgPSByZWRpcy5jcmVhdGVDbGllbnQoY29uZmlnLmRiLnJlZGlzUG9ydCwgY29uZmlnLmRiLnJlZGlzSG9zdCwge1xuICAgIHBhc3N3b3JkOiBjb25maWcuZGIucmVkaXNQYXNzd29yZCxcbiAgICBkYjogY29uZmlnLmRiLnJlZGlzRGIsXG4gIH0pO1xufVxuXG5leHBvcnQgZGVmYXVsdCBSZWRpc0NsaWVudDtcbiJdLCJtYXBwaW5ncyI6InlMQUFBLElBQUFBLE9BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTs7QUFFQSxNQUFNQyxLQUFLLEdBQUdDLGVBQU0sQ0FBQ0MsY0FBYyxLQUFLLE9BQU8sR0FBR0gsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLElBQUk7O0FBRXpFLElBQUlJLFdBQWdCLEdBQUcsSUFBSTs7QUFFM0IsSUFBSUYsZUFBTSxDQUFDQyxjQUFjLEtBQUssT0FBTyxFQUFFO0VBQ3JDQyxXQUFXLEdBQUdILEtBQUssQ0FBQ0ksWUFBWSxDQUFDSCxlQUFNLENBQUNJLEVBQUUsQ0FBQ0MsU0FBUyxFQUFFTCxlQUFNLENBQUNJLEVBQUUsQ0FBQ0UsU0FBUyxFQUFFO0lBQ3pFQyxRQUFRLEVBQUVQLGVBQU0sQ0FBQ0ksRUFBRSxDQUFDSSxhQUFhO0lBQ2pDSixFQUFFLEVBQUVKLGVBQU0sQ0FBQ0ksRUFBRSxDQUFDSztFQUNoQixDQUFDLENBQUM7QUFDSixDQUFDLElBQUFDLFFBQUEsR0FBQUMsT0FBQSxDQUFBQyxPQUFBOztBQUVjVixXQUFXIn0=
15
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29uZmlnIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJyZWRpcyIsImNvbmZpZyIsInRva2VuU3RvcmVUeXBlIiwiUmVkaXNDbGllbnQiLCJjcmVhdGVDbGllbnQiLCJkYiIsInJlZGlzUG9ydCIsInJlZGlzSG9zdCIsInBhc3N3b3JkIiwicmVkaXNQYXNzd29yZCIsInJlZGlzRGIiLCJfZGVmYXVsdCIsImV4cG9ydHMiLCJkZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3V0aWwvZGIvcmVkaXMvZGIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNvbmZpZyBmcm9tICcuLi8uLi8uLi9jb25maWcnO1xuXG5jb25zdCByZWRpcyA9IGNvbmZpZy50b2tlblN0b3JlVHlwZSA9PT0gJ3JlZGlzJyA/IHJlcXVpcmUoJ3JlZGlzJykgOiBudWxsO1xuXG5sZXQgUmVkaXNDbGllbnQ6IGFueSA9IG51bGw7XG5cbmlmIChjb25maWcudG9rZW5TdG9yZVR5cGUgPT09ICdyZWRpcycpIHtcbiAgUmVkaXNDbGllbnQgPSByZWRpcy5jcmVhdGVDbGllbnQoY29uZmlnLmRiLnJlZGlzUG9ydCwgY29uZmlnLmRiLnJlZGlzSG9zdCwge1xuICAgIHBhc3N3b3JkOiBjb25maWcuZGIucmVkaXNQYXNzd29yZCxcbiAgICBkYjogY29uZmlnLmRiLnJlZGlzRGIsXG4gIH0pO1xufVxuXG5leHBvcnQgZGVmYXVsdCBSZWRpc0NsaWVudDtcbiJdLCJtYXBwaW5ncyI6InlMQUFBLElBQUFBLE9BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTs7QUFFQSxNQUFNQyxLQUFLLEdBQUdDLGVBQU0sQ0FBQ0MsY0FBYyxLQUFLLE9BQU8sR0FBR0gsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLElBQUk7O0FBRXpFLElBQUlJLFdBQWdCLEdBQUcsSUFBSTs7QUFFM0IsSUFBSUYsZUFBTSxDQUFDQyxjQUFjLEtBQUssT0FBTyxFQUFFO0VBQ3JDQyxXQUFXLEdBQUdILEtBQUssQ0FBQ0ksWUFBWSxDQUFDSCxlQUFNLENBQUNJLEVBQUUsQ0FBQ0MsU0FBUyxFQUFFTCxlQUFNLENBQUNJLEVBQUUsQ0FBQ0UsU0FBUyxFQUFFO0lBQ3pFQyxRQUFRLEVBQUVQLGVBQU0sQ0FBQ0ksRUFBRSxDQUFDSSxhQUFhO0lBQ2pDSixFQUFFLEVBQUVKLGVBQU0sQ0FBQ0ksRUFBRSxDQUFDSztFQUNoQixDQUFDLENBQUM7QUFDSixDQUFDLElBQUFDLFFBQUEsR0FBQUMsT0FBQSxDQUFBQyxPQUFBOztBQUVjVixXQUFXIiwiaWdub3JlTGlzdCI6W119
@@ -46,22 +46,28 @@ var _bucketAlreadyExists = require("./bucketAlreadyExists"); /*
46
46
  * See the License for the specific language governing permissions and
47
47
  * limitations under the License.
48
48
  */let mime, crypto; //, aws: any;
49
- if (_config.default.webhook.uploadS3) {mime = _config.default.webhook.uploadS3 ? _mimeTypes.default : null;crypto = _config.default.webhook.uploadS3 ? _crypto.default : null;}if (_config.default?.websocket?.uploadS3) {mime = _config.default.websocket.uploadS3 ? _mimeTypes.default : null;crypto = _config.default.websocket.uploadS3 ? _crypto.default : null;}function contactToArray(number, isGroup) {const localArr = [];if (Array.isArray(number)) {for (let contact of number) {
50
- isGroup ?
49
+ if (_config.default.webhook.uploadS3) {mime = _config.default.webhook.uploadS3 ? _mimeTypes.default : null;crypto = _config.default.webhook.uploadS3 ? _crypto.default : null;}if (_config.default?.websocket?.uploadS3) {mime = _config.default.websocket.uploadS3 ? _mimeTypes.default : null;crypto = _config.default.websocket.uploadS3 ? _crypto.default : null;}function contactToArray(number, isGroup, isNewsletter)
50
+ {
51
+ const localArr = [];
52
+ if (Array.isArray(number)) {
53
+ for (let contact of number) {
54
+ isGroup || isNewsletter ?
51
55
  contact = contact.split('@')[0] :
52
56
  contact = contact.split('@')[0]?.replace(/[^\w ]/g, '');
53
57
  if (contact !== '')
54
58
  if (isGroup) localArr.push(`${contact}@g.us`);else
59
+ if (isNewsletter) localArr.push(`${contact}@newsletter`);else
55
60
  localArr.push(`${contact}@c.us`);
56
61
  }
57
62
  } else {
58
63
  const arrContacts = number.split(/\s*[,;]\s*/g);
59
64
  for (let contact of arrContacts) {
60
- isGroup ?
65
+ isGroup || isNewsletter ?
61
66
  contact = contact.split('@')[0] :
62
67
  contact = contact.split('@')[0]?.replace(/[^\w ]/g, '');
63
68
  if (contact !== '')
64
69
  if (isGroup) localArr.push(`${contact}@g.us`);else
70
+ if (isNewsletter) localArr.push(`${contact}@newsletter`);else
65
71
  localArr.push(`${contact}@c.us`);
66
72
  }
67
73
  }
@@ -361,4 +367,4 @@ function createCatalogLink(session) {
361
367
  const [wid] = session.split('@');
362
368
  return `https://wa.me/c/${wid}`;
363
369
  }
364
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY2xpZW50UyIsInJlcXVpcmUiLCJfYXhpb3MiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2NyeXB0byIsIl9mcyIsIl9taW1lVHlwZXMiLCJfb3MiLCJfcGF0aCIsIl91dGlsIiwiX2NvbmZpZyIsIl9pbmRleCIsIl9idWNrZXRBbHJlYWR5RXhpc3RzIiwibWltZSIsImNyeXB0byIsImNvbmZpZyIsIndlYmhvb2siLCJ1cGxvYWRTMyIsIm1pbWV0eXBlcyIsIkNyeXB0byIsIndlYnNvY2tldCIsImNvbnRhY3RUb0FycmF5IiwibnVtYmVyIiwiaXNHcm91cCIsImxvY2FsQXJyIiwiQXJyYXkiLCJpc0FycmF5IiwiY29udGFjdCIsInNwbGl0IiwicmVwbGFjZSIsInB1c2giLCJhcnJDb250YWN0cyIsImdyb3VwVG9BcnJheSIsImdyb3VwIiwiZ3JvdXBOYW1lVG9BcnJheSIsImNhbGxXZWJIb29rIiwiY2xpZW50IiwicmVxIiwiZXZlbnQiLCJkYXRhIiwic2VydmVyT3B0aW9ucyIsInVybCIsImlnbm9yZSIsImluY2x1ZGVzIiwiZnJvbSIsInR5cGUiLCJhdXRvRG93bmxvYWQiLCJjaGF0SWQiLCJfc2VyaWFsaXplZCIsIk9iamVjdCIsImFzc2lnbiIsInNlc3Npb24iLCJtYXBwZXIiLCJlbmFibGUiLCJjb252ZXJ0IiwicHJlZml4IiwiYXBpIiwicG9zdCIsInRoZW4iLCJldmVudHMiLCJyZWFkTWVzc2FnZSIsInNlbmRTZWVuIiwiZSIsImNhdGNoIiwibG9nZ2VyIiwid2FybiIsImVycm9yIiwibWVzc2FnZSIsImlzTWVkaWEiLCJpc01NUyIsImJ1ZmZlciIsImRlY3J5cHRGaWxlIiwiaGFzaE5hbWUiLCJyYW5kb21CeXRlcyIsInRvU3RyaW5nIiwiYXdzX3MzIiwicmVnaW9uIiwiYWNjZXNzX2tleV9pZCIsInNlY3JldF9rZXkiLCJFcnJvciIsInMzQ2xpZW50IiwiUzNDbGllbnQiLCJlbmRwb2ludCIsInVuZGVmaW5lZCIsImZvcmNlUGF0aFN0eWxlIiwiYnVja2V0TmFtZSIsImRlZmF1bHRCdWNrZXROYW1lIiwibm9ybWFsaXplIiwidG9Mb3dlckNhc2UiLCJsZW5ndGgiLCJNYXRoIiwiZmxvb3IiLCJyYW5kb20iLCJmaWxlTmFtZSIsImV4dGVuc2lvbiIsIm1pbWV0eXBlIiwiYnVja2V0QWxyZWFkeUV4aXN0cyIsInNlbmQiLCJDcmVhdGVCdWNrZXRDb21tYW5kIiwiQnVja2V0IiwiT2JqZWN0T3duZXJzaGlwIiwiUHV0UHVibGljQWNjZXNzQmxvY2tDb21tYW5kIiwiUHVibGljQWNjZXNzQmxvY2tDb25maWd1cmF0aW9uIiwiQmxvY2tQdWJsaWNBY2xzIiwiSWdub3JlUHVibGljQWNscyIsIkJsb2NrUHVibGljUG9saWN5IiwiUHV0T2JqZWN0Q29tbWFuZCIsIktleSIsIkJvZHkiLCJDb250ZW50VHlwZSIsIkFDTCIsImZpbGVVcmwiLCJib2R5Iiwic3RhcnRBbGxTZXNzaW9ucyIsImhvc3QiLCJwb3J0Iiwic2VjcmV0S2V5Iiwic3RhcnRIZWxwZXIiLCJhbGxVbnJlYWRPblN0YXJ0Iiwic2VuZFVucmVhZCIsImFyY2hpdmUiLCJpbmZvIiwiY2hhdHMiLCJnZXRBbGxDaGF0c1dpdGhNZXNzYWdlcyIsImkiLCJqIiwibXNncyIsImV4Iiwic2xlZXAiLCJ0aW1lIiwiUHJvbWlzZSIsInJlc29sdmUiLCJzZXRUaW1lb3V0IiwiZ2V0QWxsQ2hhdHMiLCJmaWx0ZXIiLCJjIiwiZGF0ZSIsIkRhdGUiLCJ0IiwiRGF5c0JldHdlZW4iLCJkYXlzVG9BcmNoaXZlIiwiYXJjaGl2ZUNoYXQiLCJpZCIsIndhaXRUaW1lIiwiU3RhcnREYXRlIiwiZW5kRGF0ZSIsIm9uZURheSIsInN0YXJ0IiwiVVRDIiwiZ2V0RnVsbFllYXIiLCJnZXRNb250aCIsImdldERhdGUiLCJlbmQiLCJjcmVhdGVGb2xkZXJzIiwiX19kaXJuYW1lIiwicGF0aCIsImRpcm5hbWUiLCJkaXJGaWxlcyIsImZzIiwiZXhpc3RzU3luYyIsIm1rZGlyU3luYyIsImRpclVwbG9hZCIsInN0clRvQm9vbCIsInMiLCJ0ZXN0IiwiZ2V0SVBBZGRyZXNzIiwiaW50ZXJmYWNlcyIsIm9zIiwibmV0d29ya0ludGVyZmFjZXMiLCJkZXZOYW1lIiwiaWZhY2UiLCJhbGlhcyIsImZhbWlseSIsImFkZHJlc3MiLCJpbnRlcm5hbCIsInNldE1heExpc3RuZXJzIiwiTnVtYmVyIiwiaXNJbnRlZ2VyIiwibWF4TGlzdGVuZXJzIiwicHJvY2VzcyIsInNldE1heExpc3RlbmVycyIsInVubGlua0FzeW5jIiwiZXhwb3J0cyIsInByb21pc2lmeSIsInVubGluayIsImNyZWF0ZUNhdGFsb2dMaW5rIiwid2lkIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWwvZnVuY3Rpb25zLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAyMyBXUFBDb25uZWN0IFRlYW1cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbmltcG9ydCB7XG4gIENyZWF0ZUJ1Y2tldENvbW1hbmQsXG4gIFB1dE9iamVjdENvbW1hbmQsXG4gIFB1dFB1YmxpY0FjY2Vzc0Jsb2NrQ29tbWFuZCxcbiAgUzNDbGllbnQsXG59IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1zMyc7XG5pbXBvcnQgYXBpIGZyb20gJ2F4aW9zJztcbmltcG9ydCBDcnlwdG8gZnJvbSAnY3J5cHRvJztcbmltcG9ydCB7IFJlcXVlc3QgfSBmcm9tICdleHByZXNzJztcbmltcG9ydCBmcyBmcm9tICdmcyc7XG5pbXBvcnQgbWltZXR5cGVzIGZyb20gJ21pbWUtdHlwZXMnO1xuaW1wb3J0IG9zIGZyb20gJ29zJztcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgcHJvbWlzaWZ5IH0gZnJvbSAndXRpbCc7XG5cbmltcG9ydCBjb25maWcgZnJvbSAnLi4vY29uZmlnJztcbmltcG9ydCB7IGNvbnZlcnQgfSBmcm9tICcuLi9tYXBwZXIvaW5kZXgnO1xuaW1wb3J0IHsgU2VydmVyT3B0aW9ucyB9IGZyb20gJy4uL3R5cGVzL1NlcnZlck9wdGlvbnMnO1xuaW1wb3J0IHsgYnVja2V0QWxyZWFkeUV4aXN0cyB9IGZyb20gJy4vYnVja2V0QWxyZWFkeUV4aXN0cyc7XG5cbmxldCBtaW1lOiBhbnksIGNyeXB0bzogYW55OyAvLywgYXdzOiBhbnk7XG5pZiAoY29uZmlnLndlYmhvb2sudXBsb2FkUzMpIHtcbiAgbWltZSA9IGNvbmZpZy53ZWJob29rLnVwbG9hZFMzID8gbWltZXR5cGVzIDogbnVsbDtcbiAgY3J5cHRvID0gY29uZmlnLndlYmhvb2sudXBsb2FkUzMgPyBDcnlwdG8gOiBudWxsO1xufVxuaWYgKGNvbmZpZz8ud2Vic29ja2V0Py51cGxvYWRTMykge1xuICBtaW1lID0gY29uZmlnLndlYnNvY2tldC51cGxvYWRTMyA/IG1pbWV0eXBlcyA6IG51bGw7XG4gIGNyeXB0byA9IGNvbmZpZy53ZWJzb2NrZXQudXBsb2FkUzMgPyBDcnlwdG8gOiBudWxsO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29udGFjdFRvQXJyYXkobnVtYmVyOiBhbnksIGlzR3JvdXA/OiBib29sZWFuKSB7XG4gIGNvbnN0IGxvY2FsQXJyOiBhbnkgPSBbXTtcbiAgaWYgKEFycmF5LmlzQXJyYXkobnVtYmVyKSkge1xuICAgIGZvciAobGV0IGNvbnRhY3Qgb2YgbnVtYmVyKSB7XG4gICAgICBpc0dyb3VwXG4gICAgICAgID8gKGNvbnRhY3QgPSBjb250YWN0LnNwbGl0KCdAJylbMF0pXG4gICAgICAgIDogKGNvbnRhY3QgPSBjb250YWN0LnNwbGl0KCdAJylbMF0/LnJlcGxhY2UoL1teXFx3IF0vZywgJycpKTtcbiAgICAgIGlmIChjb250YWN0ICE9PSAnJylcbiAgICAgICAgaWYgKGlzR3JvdXApIChsb2NhbEFyciBhcyBhbnkpLnB1c2goYCR7Y29udGFjdH1AZy51c2ApO1xuICAgICAgICBlbHNlIChsb2NhbEFyciBhcyBhbnkpLnB1c2goYCR7Y29udGFjdH1AYy51c2ApO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBjb25zdCBhcnJDb250YWN0cyA9IG51bWJlci5zcGxpdCgvXFxzKlssO11cXHMqL2cpO1xuICAgIGZvciAobGV0IGNvbnRhY3Qgb2YgYXJyQ29udGFjdHMpIHtcbiAgICAgIGlzR3JvdXBcbiAgICAgICAgPyAoY29udGFjdCA9IGNvbnRhY3Quc3BsaXQoJ0AnKVswXSlcbiAgICAgICAgOiAoY29udGFjdCA9IGNvbnRhY3Quc3BsaXQoJ0AnKVswXT8ucmVwbGFjZSgvW15cXHcgXS9nLCAnJykpO1xuICAgICAgaWYgKGNvbnRhY3QgIT09ICcnKVxuICAgICAgICBpZiAoaXNHcm91cCkgKGxvY2FsQXJyIGFzIGFueSkucHVzaChgJHtjb250YWN0fUBnLnVzYCk7XG4gICAgICAgIGVsc2UgKGxvY2FsQXJyIGFzIGFueSkucHVzaChgJHtjb250YWN0fUBjLnVzYCk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGxvY2FsQXJyO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ3JvdXBUb0FycmF5KGdyb3VwOiBhbnkpIHtcbiAgY29uc3QgbG9jYWxBcnI6IGFueSA9IFtdO1xuICBpZiAoQXJyYXkuaXNBcnJheShncm91cCkpIHtcbiAgICBmb3IgKGxldCBjb250YWN0IG9mIGdyb3VwKSB7XG4gICAgICBjb250YWN0ID0gY29udGFjdC5zcGxpdCgnQCcpWzBdO1xuICAgICAgaWYgKGNvbnRhY3QgIT09ICcnKSAobG9jYWxBcnIgYXMgYW55KS5wdXNoKGAke2NvbnRhY3R9QGcudXNgKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgYXJyQ29udGFjdHMgPSBncm91cC5zcGxpdCgvXFxzKlssO11cXHMqL2cpO1xuICAgIGZvciAobGV0IGNvbnRhY3Qgb2YgYXJyQ29udGFjdHMpIHtcbiAgICAgIGNvbnRhY3QgPSBjb250YWN0LnNwbGl0KCdAJylbMF07XG4gICAgICBpZiAoY29udGFjdCAhPT0gJycpIChsb2NhbEFyciBhcyBhbnkpLnB1c2goYCR7Y29udGFjdH1AZy51c2ApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBsb2NhbEFycjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdyb3VwTmFtZVRvQXJyYXkoZ3JvdXA6IGFueSkge1xuICBjb25zdCBsb2NhbEFycjogYW55ID0gW107XG4gIGlmIChBcnJheS5pc0FycmF5KGdyb3VwKSkge1xuICAgIGZvciAoY29uc3QgY29udGFjdCBvZiBncm91cCkge1xuICAgICAgaWYgKGNvbnRhY3QgIT09ICcnKSAobG9jYWxBcnIgYXMgYW55KS5wdXNoKGAke2NvbnRhY3R9YCk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGNvbnN0IGFyckNvbnRhY3RzID0gZ3JvdXAuc3BsaXQoL1xccypbLDtdXFxzKi9nKTtcbiAgICBmb3IgKGNvbnN0IGNvbnRhY3Qgb2YgYXJyQ29udGFjdHMpIHtcbiAgICAgIGlmIChjb250YWN0ICE9PSAnJykgKGxvY2FsQXJyIGFzIGFueSkucHVzaChgJHtjb250YWN0fWApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBsb2NhbEFycjtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNhbGxXZWJIb29rKFxuICBjbGllbnQ6IGFueSxcbiAgcmVxOiBSZXF1ZXN0LFxuICBldmVudDogYW55LFxuICBkYXRhOiBhbnlcbikge1xuICBjb25zdCB3ZWJob29rID1cbiAgICBjbGllbnQ/LmNvbmZpZy53ZWJob29rIHx8IHJlcS5zZXJ2ZXJPcHRpb25zLndlYmhvb2sudXJsIHx8IGZhbHNlO1xuICBpZiAod2ViaG9vaykge1xuICAgIGlmIChcbiAgICAgIHJlcS5zZXJ2ZXJPcHRpb25zLndlYmhvb2s/Lmlnbm9yZSAmJlxuICAgICAgKHJlcS5zZXJ2ZXJPcHRpb25zLndlYmhvb2suaWdub3JlLmluY2x1ZGVzKGV2ZW50KSB8fFxuICAgICAgICByZXEuc2VydmVyT3B0aW9ucy53ZWJob29rLmlnbm9yZS5pbmNsdWRlcyhkYXRhPy5mcm9tKSB8fFxuICAgICAgICByZXEuc2VydmVyT3B0aW9ucy53ZWJob29rLmlnbm9yZS5pbmNsdWRlcyhkYXRhPy50eXBlKSlcbiAgICApXG4gICAgICByZXR1cm47XG4gICAgaWYgKHJlcS5zZXJ2ZXJPcHRpb25zLndlYmhvb2suYXV0b0Rvd25sb2FkKVxuICAgICAgYXdhaXQgYXV0b0Rvd25sb2FkKGNsaWVudCwgcmVxLCBkYXRhKTtcbiAgICB0cnkge1xuICAgICAgY29uc3QgY2hhdElkID1cbiAgICAgICAgZGF0YS5mcm9tIHx8XG4gICAgICAgIGRhdGEuY2hhdElkIHx8XG4gICAgICAgIChkYXRhLmNoYXRJZCA/IGRhdGEuY2hhdElkLl9zZXJpYWxpemVkIDogbnVsbCk7XG4gICAgICBkYXRhID0gT2JqZWN0LmFzc2lnbih7IGV2ZW50OiBldmVudCwgc2Vzc2lvbjogY2xpZW50LnNlc3Npb24gfSwgZGF0YSk7XG4gICAgICBpZiAocmVxLnNlcnZlck9wdGlvbnMubWFwcGVyLmVuYWJsZSlcbiAgICAgICAgZGF0YSA9IGF3YWl0IGNvbnZlcnQocmVxLnNlcnZlck9wdGlvbnMubWFwcGVyLnByZWZpeCwgZGF0YSk7XG4gICAgICBhcGlcbiAgICAgICAgLnBvc3Qod2ViaG9vaywgZGF0YSlcbiAgICAgICAgLnRoZW4oKCkgPT4ge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCBldmVudHMgPSBbJ3VucmVhZG1lc3NhZ2VzJywgJ29ubWVzc2FnZSddO1xuICAgICAgICAgICAgaWYgKGV2ZW50cy5pbmNsdWRlcyhldmVudCkgJiYgcmVxLnNlcnZlck9wdGlvbnMud2ViaG9vay5yZWFkTWVzc2FnZSlcbiAgICAgICAgICAgICAgY2xpZW50LnNlbmRTZWVuKGNoYXRJZCk7XG4gICAgICAgICAgfSBjYXRjaCAoZSkge31cbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKChlKSA9PiB7XG4gICAgICAgICAgcmVxLmxvZ2dlci53YXJuKCdFcnJvciBjYWxsaW5nIFdlYmhvb2suJywgZSk7XG4gICAgICAgIH0pO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHJlcS5sb2dnZXIuZXJyb3IoZSk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBhdXRvRG93bmxvYWQoY2xpZW50OiBhbnksIHJlcTogYW55LCBtZXNzYWdlOiBhbnkpIHtcbiAgdHJ5IHtcbiAgICBpZiAobWVzc2FnZSAmJiAobWVzc2FnZVsnbWltZXR5cGUnXSB8fCBtZXNzYWdlLmlzTWVkaWEgfHwgbWVzc2FnZS5pc01NUykpIHtcbiAgICAgIGNvbnN0IGJ1ZmZlciA9IGF3YWl0IGNsaWVudC5kZWNyeXB0RmlsZShtZXNzYWdlKTtcbiAgICAgIGlmIChcbiAgICAgICAgcmVxLnNlcnZlck9wdGlvbnMud2ViaG9vay51cGxvYWRTMyB8fFxuICAgICAgICByZXEuc2VydmVyT3B0aW9ucz8ud2Vic29ja2V0Py51cGxvYWRTM1xuICAgICAgKSB7XG4gICAgICAgIGNvbnN0IGhhc2hOYW1lID0gY3J5cHRvLnJhbmRvbUJ5dGVzKDI0KS50b1N0cmluZygnaGV4Jyk7XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgICFjb25maWc/LmF3c19zMz8ucmVnaW9uIHx8XG4gICAgICAgICAgIWNvbmZpZz8uYXdzX3MzPy5hY2Nlc3Nfa2V5X2lkIHx8XG4gICAgICAgICAgIWNvbmZpZz8uYXdzX3MzPy5zZWNyZXRfa2V5XG4gICAgICAgIClcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1BsZWFzZSwgY29uZmlndXJlIHlvdXIgYXdzIGNvbmZpZ3MnKTtcbiAgICAgICAgY29uc3QgczNDbGllbnQgPSBuZXcgUzNDbGllbnQoe1xuICAgICAgICAgIHJlZ2lvbjogY29uZmlnPy5hd3NfczM/LnJlZ2lvbixcbiAgICAgICAgICBlbmRwb2ludDogY29uZmlnPy5hd3NfczM/LmVuZHBvaW50IHx8IHVuZGVmaW5lZCxcbiAgICAgICAgICBmb3JjZVBhdGhTdHlsZTogY29uZmlnPy5hd3NfczM/LmZvcmNlUGF0aFN0eWxlIHx8IHVuZGVmaW5lZCxcbiAgICAgICAgfSk7XG4gICAgICAgIGxldCBidWNrZXROYW1lID0gY29uZmlnPy5hd3NfczM/LmRlZmF1bHRCdWNrZXROYW1lXG4gICAgICAgICAgPyBjb25maWc/LmF3c19zMz8uZGVmYXVsdEJ1Y2tldE5hbWVcbiAgICAgICAgICA6IGNsaWVudC5zZXNzaW9uO1xuICAgICAgICBidWNrZXROYW1lID0gYnVja2V0TmFtZVxuICAgICAgICAgIC5ub3JtYWxpemUoJ05GRCcpXG4gICAgICAgICAgLnJlcGxhY2UoL1tcXHUwMzAwLVxcdTAzNmZdfFvigJQgXy4sPyFdL2csICcnKVxuICAgICAgICAgIC50b0xvd2VyQ2FzZSgpO1xuICAgICAgICBidWNrZXROYW1lID1cbiAgICAgICAgICBidWNrZXROYW1lLmxlbmd0aCA8IDNcbiAgICAgICAgICAgID8gYnVja2V0TmFtZSArXG4gICAgICAgICAgICAgIGAke01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqICg5OTkgLSAxMDAgKyAxKSkgKyAxMDB9YFxuICAgICAgICAgICAgOiBidWNrZXROYW1lO1xuICAgICAgICBjb25zdCBmaWxlTmFtZSA9IGAke1xuICAgICAgICAgIGNvbmZpZy5hd3NfczMuZGVmYXVsdEJ1Y2tldE5hbWUgPyBjbGllbnQuc2Vzc2lvbiArICcvJyA6ICcnXG4gICAgICAgIH0ke2hhc2hOYW1lfS4ke21pbWUuZXh0ZW5zaW9uKG1lc3NhZ2UubWltZXR5cGUpfWA7XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgICFjb25maWcuYXdzX3MzLmRlZmF1bHRCdWNrZXROYW1lICYmXG4gICAgICAgICAgIShhd2FpdCBidWNrZXRBbHJlYWR5RXhpc3RzKGJ1Y2tldE5hbWUpKVxuICAgICAgICApIHtcbiAgICAgICAgICBhd2FpdCBzM0NsaWVudC5zZW5kKFxuICAgICAgICAgICAgbmV3IENyZWF0ZUJ1Y2tldENvbW1hbmQoe1xuICAgICAgICAgICAgICBCdWNrZXQ6IGJ1Y2tldE5hbWUsXG4gICAgICAgICAgICAgIE9iamVjdE93bmVyc2hpcDogJ09iamVjdFdyaXRlcicsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICk7XG4gICAgICAgICAgYXdhaXQgczNDbGllbnQuc2VuZChcbiAgICAgICAgICAgIG5ldyBQdXRQdWJsaWNBY2Nlc3NCbG9ja0NvbW1hbmQoe1xuICAgICAgICAgICAgICBCdWNrZXQ6IGJ1Y2tldE5hbWUsXG4gICAgICAgICAgICAgIFB1YmxpY0FjY2Vzc0Jsb2NrQ29uZmlndXJhdGlvbjoge1xuICAgICAgICAgICAgICAgIEJsb2NrUHVibGljQWNsczogZmFsc2UsXG4gICAgICAgICAgICAgICAgSWdub3JlUHVibGljQWNsczogZmFsc2UsXG4gICAgICAgICAgICAgICAgQmxvY2tQdWJsaWNQb2xpY3k6IGZhbHNlLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgYXdhaXQgczNDbGllbnQuc2VuZChcbiAgICAgICAgICBuZXcgUHV0T2JqZWN0Q29tbWFuZCh7XG4gICAgICAgICAgICBCdWNrZXQ6IGJ1Y2tldE5hbWUsXG4gICAgICAgICAgICBLZXk6IGZpbGVOYW1lLFxuICAgICAgICAgICAgQm9keTogYnVmZmVyLFxuICAgICAgICAgICAgQ29udGVudFR5cGU6IG1lc3NhZ2UubWltZXR5cGUsXG4gICAgICAgICAgICBBQ0w6ICdwdWJsaWMtcmVhZCcsXG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcblxuICAgICAgICBtZXNzYWdlLmZpbGVVcmwgPSBgaHR0cHM6Ly8ke2J1Y2tldE5hbWV9LnMzLmFtYXpvbmF3cy5jb20vJHtmaWxlTmFtZX1gO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbWVzc2FnZS5ib2R5ID0gYXdhaXQgYnVmZmVyLnRvU3RyaW5nKCdiYXNlNjQnKTtcbiAgICAgIH1cbiAgICB9XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXEubG9nZ2VyLmVycm9yKGUpO1xuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzdGFydEFsbFNlc3Npb25zKGNvbmZpZzogYW55LCBsb2dnZXI6IGFueSkge1xuICB0cnkge1xuICAgIGF3YWl0IGFwaS5wb3N0KFxuICAgICAgYCR7Y29uZmlnLmhvc3R9OiR7Y29uZmlnLnBvcnR9L2FwaS8ke2NvbmZpZy5zZWNyZXRLZXl9L3N0YXJ0LWFsbGBcbiAgICApO1xuICB9IGNhdGNoIChlKSB7XG4gICAgbG9nZ2VyLmVycm9yKGUpO1xuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzdGFydEhlbHBlcihjbGllbnQ6IGFueSwgcmVxOiBhbnkpIHtcbiAgaWYgKHJlcS5zZXJ2ZXJPcHRpb25zLndlYmhvb2suYWxsVW5yZWFkT25TdGFydCkgYXdhaXQgc2VuZFVucmVhZChjbGllbnQsIHJlcSk7XG5cbiAgaWYgKHJlcS5zZXJ2ZXJPcHRpb25zLmFyY2hpdmUuZW5hYmxlKSBhd2FpdCBhcmNoaXZlKGNsaWVudCwgcmVxKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gc2VuZFVucmVhZChjbGllbnQ6IGFueSwgcmVxOiBhbnkpIHtcbiAgcmVxLmxvZ2dlci5pbmZvKGAke2NsaWVudC5zZXNzaW9ufSA6IEluaWNpbyBlbnZpYXIgbWVuc2FnZW5zIG7Do28gbGlkYXNgKTtcblxuICB0cnkge1xuICAgIGNvbnN0IGNoYXRzID0gYXdhaXQgY2xpZW50LmdldEFsbENoYXRzV2l0aE1lc3NhZ2VzKHRydWUpO1xuXG4gICAgaWYgKGNoYXRzICYmIGNoYXRzLmxlbmd0aCA+IDApIHtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY2hhdHMubGVuZ3RoOyBpKyspXG4gICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgY2hhdHNbaV0ubXNncy5sZW5ndGg7IGorKykge1xuICAgICAgICAgIGNhbGxXZWJIb29rKGNsaWVudCwgcmVxLCAndW5yZWFkbWVzc2FnZXMnLCBjaGF0c1tpXS5tc2dzW2pdKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJlcS5sb2dnZXIuaW5mbyhgJHtjbGllbnQuc2Vzc2lvbn0gOiBGaW0gZW52aWFyIG1lbnNhZ2VucyBuw6NvIGxpZGFzYCk7XG4gIH0gY2F0Y2ggKGV4KSB7XG4gICAgcmVxLmxvZ2dlci5lcnJvcihleCk7XG4gIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gYXJjaGl2ZShjbGllbnQ6IGFueSwgcmVxOiBhbnkpIHtcbiAgYXN5bmMgZnVuY3Rpb24gc2xlZXAodGltZTogbnVtYmVyKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIHRpbWUgKiAxMCkpO1xuICB9XG5cbiAgcmVxLmxvZ2dlci5pbmZvKGAke2NsaWVudC5zZXNzaW9ufSA6IEluaWNpbyBhcnF1aXZhbmRvIGNoYXRzYCk7XG5cbiAgdHJ5IHtcbiAgICBsZXQgY2hhdHMgPSBhd2FpdCBjbGllbnQuZ2V0QWxsQ2hhdHMoKTtcbiAgICBpZiAoY2hhdHMgJiYgQXJyYXkuaXNBcnJheShjaGF0cykgJiYgY2hhdHMubGVuZ3RoID4gMCkge1xuICAgICAgY2hhdHMgPSBjaGF0cy5maWx0ZXIoKGMpID0+ICFjLmFyY2hpdmUpO1xuICAgIH1cbiAgICBpZiAoY2hhdHMgJiYgQXJyYXkuaXNBcnJheShjaGF0cykgJiYgY2hhdHMubGVuZ3RoID4gMCkge1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjaGF0cy5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb25zdCBkYXRlID0gbmV3IERhdGUoY2hhdHNbaV0udCAqIDEwMDApO1xuXG4gICAgICAgIGlmIChEYXlzQmV0d2VlbihkYXRlKSA+IHJlcS5zZXJ2ZXJPcHRpb25zLmFyY2hpdmUuZGF5c1RvQXJjaGl2ZSkge1xuICAgICAgICAgIGF3YWl0IGNsaWVudC5hcmNoaXZlQ2hhdChcbiAgICAgICAgICAgIGNoYXRzW2ldLmlkLmlkIHx8IGNoYXRzW2ldLmlkLl9zZXJpYWxpemVkLFxuICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICk7XG4gICAgICAgICAgYXdhaXQgc2xlZXAoXG4gICAgICAgICAgICBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiByZXEuc2VydmVyT3B0aW9ucy5hcmNoaXZlLndhaXRUaW1lICsgMSlcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJlcS5sb2dnZXIuaW5mbyhgJHtjbGllbnQuc2Vzc2lvbn0gOiBGaW0gYXJxdWl2YW5kbyBjaGF0c2ApO1xuICB9IGNhdGNoIChleCkge1xuICAgIHJlcS5sb2dnZXIuZXJyb3IoZXgpO1xuICB9XG59XG5cbmZ1bmN0aW9uIERheXNCZXR3ZWVuKFN0YXJ0RGF0ZTogRGF0ZSkge1xuICBjb25zdCBlbmREYXRlID0gbmV3IERhdGUoKTtcbiAgLy8gVGhlIG51bWJlciBvZiBtaWxsaXNlY29uZHMgaW4gYWxsIFVUQyBkYXlzIChubyBEU1QpXG4gIGNvbnN0IG9uZURheSA9IDEwMDAgKiA2MCAqIDYwICogMjQ7XG5cbiAgLy8gQSBkYXkgaW4gVVRDIGFsd2F5cyBsYXN0cyAyNCBob3VycyAodW5saWtlIGluIG90aGVyIHRpbWUgZm9ybWF0cylcbiAgY29uc3Qgc3RhcnQgPSBEYXRlLlVUQyhcbiAgICBlbmREYXRlLmdldEZ1bGxZZWFyKCksXG4gICAgZW5kRGF0ZS5nZXRNb250aCgpLFxuICAgIGVuZERhdGUuZ2V0RGF0ZSgpXG4gICk7XG4gIGNvbnN0IGVuZCA9IERhdGUuVVRDKFxuICAgIFN0YXJ0RGF0ZS5nZXRGdWxsWWVhcigpLFxuICAgIFN0YXJ0RGF0ZS5nZXRNb250aCgpLFxuICAgIFN0YXJ0RGF0ZS5nZXREYXRlKClcbiAgKTtcblxuICAvLyBzbyBpdCdzIHNhZmUgdG8gZGl2aWRlIGJ5IDI0IGhvdXJzXG4gIHJldHVybiAoc3RhcnQgLSBlbmQpIC8gb25lRGF5O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRm9sZGVycygpIHtcbiAgY29uc3QgX19kaXJuYW1lID0gcGF0aC5yZXNvbHZlKHBhdGguZGlybmFtZSgnJykpO1xuICBjb25zdCBkaXJGaWxlcyA9IHBhdGgucmVzb2x2ZShfX2Rpcm5hbWUsICdXaGF0c0FwcEltYWdlcycpO1xuICBpZiAoIWZzLmV4aXN0c1N5bmMoZGlyRmlsZXMpKSB7XG4gICAgZnMubWtkaXJTeW5jKGRpckZpbGVzKTtcbiAgfVxuXG4gIGNvbnN0IGRpclVwbG9hZCA9IHBhdGgucmVzb2x2ZShfX2Rpcm5hbWUsICd1cGxvYWRzJyk7XG4gIGlmICghZnMuZXhpc3RzU3luYyhkaXJVcGxvYWQpKSB7XG4gICAgZnMubWtkaXJTeW5jKGRpclVwbG9hZCk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHN0clRvQm9vbChzOiBzdHJpbmcpIHtcbiAgcmV0dXJuIC9eKHRydWV8MSkkL2kudGVzdChzKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldElQQWRkcmVzcygpIHtcbiAgY29uc3QgaW50ZXJmYWNlcyA9IG9zLm5ldHdvcmtJbnRlcmZhY2VzKCk7XG4gIGZvciAoY29uc3QgZGV2TmFtZSBpbiBpbnRlcmZhY2VzKSB7XG4gICAgY29uc3QgaWZhY2U6IGFueSA9IGludGVyZmFjZXNbZGV2TmFtZV07XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpZmFjZS5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3QgYWxpYXMgPSBpZmFjZVtpXTtcbiAgICAgIGlmIChcbiAgICAgICAgYWxpYXMuZmFtaWx5ID09PSAnSVB2NCcgJiZcbiAgICAgICAgYWxpYXMuYWRkcmVzcyAhPT0gJzEyNy4wLjAuMScgJiZcbiAgICAgICAgIWFsaWFzLmludGVybmFsXG4gICAgICApXG4gICAgICAgIHJldHVybiBhbGlhcy5hZGRyZXNzO1xuICAgIH1cbiAgfVxuICByZXR1cm4gJzAuMC4wLjAnO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0TWF4TGlzdG5lcnMoc2VydmVyT3B0aW9uczogU2VydmVyT3B0aW9ucykge1xuICBpZiAoc2VydmVyT3B0aW9ucyAmJiBOdW1iZXIuaXNJbnRlZ2VyKHNlcnZlck9wdGlvbnMubWF4TGlzdGVuZXJzKSkge1xuICAgIHByb2Nlc3Muc2V0TWF4TGlzdGVuZXJzKHNlcnZlck9wdGlvbnMubWF4TGlzdGVuZXJzKTtcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgdW5saW5rQXN5bmMgPSBwcm9taXNpZnkoZnMudW5saW5rKTtcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUNhdGFsb2dMaW5rKHNlc3Npb246IGFueSkge1xuICBjb25zdCBbd2lkXSA9IHNlc3Npb24uc3BsaXQoJ0AnKTtcbiAgcmV0dXJuIGBodHRwczovL3dhLm1lL2MvJHt3aWR9YDtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBZUEsSUFBQUEsUUFBQSxHQUFBQyxPQUFBOzs7Ozs7QUFNQSxJQUFBQyxNQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBRyxPQUFBLEdBQUFELHNCQUFBLENBQUFGLE9BQUE7O0FBRUEsSUFBQUksR0FBQSxHQUFBRixzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUssVUFBQSxH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
370
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY2xpZW50UyIsInJlcXVpcmUiLCJfYXhpb3MiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2NyeXB0byIsIl9mcyIsIl9taW1lVHlwZXMiLCJfb3MiLCJfcGF0aCIsIl91dGlsIiwiX2NvbmZpZyIsIl9pbmRleCIsIl9idWNrZXRBbHJlYWR5RXhpc3RzIiwibWltZSIsImNyeXB0byIsImNvbmZpZyIsIndlYmhvb2siLCJ1cGxvYWRTMyIsIm1pbWV0eXBlcyIsIkNyeXB0byIsIndlYnNvY2tldCIsImNvbnRhY3RUb0FycmF5IiwibnVtYmVyIiwiaXNHcm91cCIsImlzTmV3c2xldHRlciIsImxvY2FsQXJyIiwiQXJyYXkiLCJpc0FycmF5IiwiY29udGFjdCIsInNwbGl0IiwicmVwbGFjZSIsInB1c2giLCJhcnJDb250YWN0cyIsImdyb3VwVG9BcnJheSIsImdyb3VwIiwiZ3JvdXBOYW1lVG9BcnJheSIsImNhbGxXZWJIb29rIiwiY2xpZW50IiwicmVxIiwiZXZlbnQiLCJkYXRhIiwic2VydmVyT3B0aW9ucyIsInVybCIsImlnbm9yZSIsImluY2x1ZGVzIiwiZnJvbSIsInR5cGUiLCJhdXRvRG93bmxvYWQiLCJjaGF0SWQiLCJfc2VyaWFsaXplZCIsIk9iamVjdCIsImFzc2lnbiIsInNlc3Npb24iLCJtYXBwZXIiLCJlbmFibGUiLCJjb252ZXJ0IiwicHJlZml4IiwiYXBpIiwicG9zdCIsInRoZW4iLCJldmVudHMiLCJyZWFkTWVzc2FnZSIsInNlbmRTZWVuIiwiZSIsImNhdGNoIiwibG9nZ2VyIiwid2FybiIsImVycm9yIiwibWVzc2FnZSIsImlzTWVkaWEiLCJpc01NUyIsImJ1ZmZlciIsImRlY3J5cHRGaWxlIiwiaGFzaE5hbWUiLCJyYW5kb21CeXRlcyIsInRvU3RyaW5nIiwiYXdzX3MzIiwicmVnaW9uIiwiYWNjZXNzX2tleV9pZCIsInNlY3JldF9rZXkiLCJFcnJvciIsInMzQ2xpZW50IiwiUzNDbGllbnQiLCJlbmRwb2ludCIsInVuZGVmaW5lZCIsImZvcmNlUGF0aFN0eWxlIiwiYnVja2V0TmFtZSIsImRlZmF1bHRCdWNrZXROYW1lIiwibm9ybWFsaXplIiwidG9Mb3dlckNhc2UiLCJsZW5ndGgiLCJNYXRoIiwiZmxvb3IiLCJyYW5kb20iLCJmaWxlTmFtZSIsImV4dGVuc2lvbiIsIm1pbWV0eXBlIiwiYnVja2V0QWxyZWFkeUV4aXN0cyIsInNlbmQiLCJDcmVhdGVCdWNrZXRDb21tYW5kIiwiQnVja2V0IiwiT2JqZWN0T3duZXJzaGlwIiwiUHV0UHVibGljQWNjZXNzQmxvY2tDb21tYW5kIiwiUHVibGljQWNjZXNzQmxvY2tDb25maWd1cmF0aW9uIiwiQmxvY2tQdWJsaWNBY2xzIiwiSWdub3JlUHVibGljQWNscyIsIkJsb2NrUHVibGljUG9saWN5IiwiUHV0T2JqZWN0Q29tbWFuZCIsIktleSIsIkJvZHkiLCJDb250ZW50VHlwZSIsIkFDTCIsImZpbGVVcmwiLCJib2R5Iiwic3RhcnRBbGxTZXNzaW9ucyIsImhvc3QiLCJwb3J0Iiwic2VjcmV0S2V5Iiwic3RhcnRIZWxwZXIiLCJhbGxVbnJlYWRPblN0YXJ0Iiwic2VuZFVucmVhZCIsImFyY2hpdmUiLCJpbmZvIiwiY2hhdHMiLCJnZXRBbGxDaGF0c1dpdGhNZXNzYWdlcyIsImkiLCJqIiwibXNncyIsImV4Iiwic2xlZXAiLCJ0aW1lIiwiUHJvbWlzZSIsInJlc29sdmUiLCJzZXRUaW1lb3V0IiwiZ2V0QWxsQ2hhdHMiLCJmaWx0ZXIiLCJjIiwiZGF0ZSIsIkRhdGUiLCJ0IiwiRGF5c0JldHdlZW4iLCJkYXlzVG9BcmNoaXZlIiwiYXJjaGl2ZUNoYXQiLCJpZCIsIndhaXRUaW1lIiwiU3RhcnREYXRlIiwiZW5kRGF0ZSIsIm9uZURheSIsInN0YXJ0IiwiVVRDIiwiZ2V0RnVsbFllYXIiLCJnZXRNb250aCIsImdldERhdGUiLCJlbmQiLCJjcmVhdGVGb2xkZXJzIiwiX19kaXJuYW1lIiwicGF0aCIsImRpcm5hbWUiLCJkaXJGaWxlcyIsImZzIiwiZXhpc3RzU3luYyIsIm1rZGlyU3luYyIsImRpclVwbG9hZCIsInN0clRvQm9vbCIsInMiLCJ0ZXN0IiwiZ2V0SVBBZGRyZXNzIiwiaW50ZXJmYWNlcyIsIm9zIiwibmV0d29ya0ludGVyZmFjZXMiLCJkZXZOYW1lIiwiaWZhY2UiLCJhbGlhcyIsImZhbWlseSIsImFkZHJlc3MiLCJpbnRlcm5hbCIsInNldE1heExpc3RuZXJzIiwiTnVtYmVyIiwiaXNJbnRlZ2VyIiwibWF4TGlzdGVuZXJzIiwicHJvY2VzcyIsInNldE1heExpc3RlbmVycyIsInVubGlua0FzeW5jIiwiZXhwb3J0cyIsInByb21pc2lmeSIsInVubGluayIsImNyZWF0ZUNhdGFsb2dMaW5rIiwid2lkIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWwvZnVuY3Rpb25zLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAyMyBXUFBDb25uZWN0IFRlYW1cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbmltcG9ydCB7XG4gIENyZWF0ZUJ1Y2tldENvbW1hbmQsXG4gIFB1dE9iamVjdENvbW1hbmQsXG4gIFB1dFB1YmxpY0FjY2Vzc0Jsb2NrQ29tbWFuZCxcbiAgUzNDbGllbnQsXG59IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1zMyc7XG5pbXBvcnQgYXBpIGZyb20gJ2F4aW9zJztcbmltcG9ydCBDcnlwdG8gZnJvbSAnY3J5cHRvJztcbmltcG9ydCB7IFJlcXVlc3QgfSBmcm9tICdleHByZXNzJztcbmltcG9ydCBmcyBmcm9tICdmcyc7XG5pbXBvcnQgbWltZXR5cGVzIGZyb20gJ21pbWUtdHlwZXMnO1xuaW1wb3J0IG9zIGZyb20gJ29zJztcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgcHJvbWlzaWZ5IH0gZnJvbSAndXRpbCc7XG5cbmltcG9ydCBjb25maWcgZnJvbSAnLi4vY29uZmlnJztcbmltcG9ydCB7IGNvbnZlcnQgfSBmcm9tICcuLi9tYXBwZXIvaW5kZXgnO1xuaW1wb3J0IHsgU2VydmVyT3B0aW9ucyB9IGZyb20gJy4uL3R5cGVzL1NlcnZlck9wdGlvbnMnO1xuaW1wb3J0IHsgYnVja2V0QWxyZWFkeUV4aXN0cyB9IGZyb20gJy4vYnVja2V0QWxyZWFkeUV4aXN0cyc7XG5cbmxldCBtaW1lOiBhbnksIGNyeXB0bzogYW55OyAvLywgYXdzOiBhbnk7XG5pZiAoY29uZmlnLndlYmhvb2sudXBsb2FkUzMpIHtcbiAgbWltZSA9IGNvbmZpZy53ZWJob29rLnVwbG9hZFMzID8gbWltZXR5cGVzIDogbnVsbDtcbiAgY3J5cHRvID0gY29uZmlnLndlYmhvb2sudXBsb2FkUzMgPyBDcnlwdG8gOiBudWxsO1xufVxuaWYgKGNvbmZpZz8ud2Vic29ja2V0Py51cGxvYWRTMykge1xuICBtaW1lID0gY29uZmlnLndlYnNvY2tldC51cGxvYWRTMyA/IG1pbWV0eXBlcyA6IG51bGw7XG4gIGNyeXB0byA9IGNvbmZpZy53ZWJzb2NrZXQudXBsb2FkUzMgPyBDcnlwdG8gOiBudWxsO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29udGFjdFRvQXJyYXkoXG4gIG51bWJlcjogYW55LFxuICBpc0dyb3VwPzogYm9vbGVhbixcbiAgaXNOZXdzbGV0dGVyPzogYm9vbGVhblxuKSB7XG4gIGNvbnN0IGxvY2FsQXJyOiBhbnkgPSBbXTtcbiAgaWYgKEFycmF5LmlzQXJyYXkobnVtYmVyKSkge1xuICAgIGZvciAobGV0IGNvbnRhY3Qgb2YgbnVtYmVyKSB7XG4gICAgICBpc0dyb3VwIHx8IGlzTmV3c2xldHRlclxuICAgICAgICA/IChjb250YWN0ID0gY29udGFjdC5zcGxpdCgnQCcpWzBdKVxuICAgICAgICA6IChjb250YWN0ID0gY29udGFjdC5zcGxpdCgnQCcpWzBdPy5yZXBsYWNlKC9bXlxcdyBdL2csICcnKSk7XG4gICAgICBpZiAoY29udGFjdCAhPT0gJycpXG4gICAgICAgIGlmIChpc0dyb3VwKSAobG9jYWxBcnIgYXMgYW55KS5wdXNoKGAke2NvbnRhY3R9QGcudXNgKTtcbiAgICAgICAgZWxzZSBpZiAoaXNOZXdzbGV0dGVyKSAobG9jYWxBcnIgYXMgYW55KS5wdXNoKGAke2NvbnRhY3R9QG5ld3NsZXR0ZXJgKTtcbiAgICAgICAgZWxzZSAobG9jYWxBcnIgYXMgYW55KS5wdXNoKGAke2NvbnRhY3R9QGMudXNgKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgYXJyQ29udGFjdHMgPSBudW1iZXIuc3BsaXQoL1xccypbLDtdXFxzKi9nKTtcbiAgICBmb3IgKGxldCBjb250YWN0IG9mIGFyckNvbnRhY3RzKSB7XG4gICAgICBpc0dyb3VwIHx8IGlzTmV3c2xldHRlclxuICAgICAgICA/IChjb250YWN0ID0gY29udGFjdC5zcGxpdCgnQCcpWzBdKVxuICAgICAgICA6IChjb250YWN0ID0gY29udGFjdC5zcGxpdCgnQCcpWzBdPy5yZXBsYWNlKC9bXlxcdyBdL2csICcnKSk7XG4gICAgICBpZiAoY29udGFjdCAhPT0gJycpXG4gICAgICAgIGlmIChpc0dyb3VwKSAobG9jYWxBcnIgYXMgYW55KS5wdXNoKGAke2NvbnRhY3R9QGcudXNgKTtcbiAgICAgICAgZWxzZSBpZiAoaXNOZXdzbGV0dGVyKSAobG9jYWxBcnIgYXMgYW55KS5wdXNoKGAke2NvbnRhY3R9QG5ld3NsZXR0ZXJgKTtcbiAgICAgICAgZWxzZSAobG9jYWxBcnIgYXMgYW55KS5wdXNoKGAke2NvbnRhY3R9QGMudXNgKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gbG9jYWxBcnI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBncm91cFRvQXJyYXkoZ3JvdXA6IGFueSkge1xuICBjb25zdCBsb2NhbEFycjogYW55ID0gW107XG4gIGlmIChBcnJheS5pc0FycmF5KGdyb3VwKSkge1xuICAgIGZvciAobGV0IGNvbnRhY3Qgb2YgZ3JvdXApIHtcbiAgICAgIGNvbnRhY3QgPSBjb250YWN0LnNwbGl0KCdAJylbMF07XG4gICAgICBpZiAoY29udGFjdCAhPT0gJycpIChsb2NhbEFyciBhcyBhbnkpLnB1c2goYCR7Y29udGFjdH1AZy51c2ApO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBjb25zdCBhcnJDb250YWN0cyA9IGdyb3VwLnNwbGl0KC9cXHMqWyw7XVxccyovZyk7XG4gICAgZm9yIChsZXQgY29udGFjdCBvZiBhcnJDb250YWN0cykge1xuICAgICAgY29udGFjdCA9IGNvbnRhY3Quc3BsaXQoJ0AnKVswXTtcbiAgICAgIGlmIChjb250YWN0ICE9PSAnJykgKGxvY2FsQXJyIGFzIGFueSkucHVzaChgJHtjb250YWN0fUBnLnVzYCk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGxvY2FsQXJyO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ3JvdXBOYW1lVG9BcnJheShncm91cDogYW55KSB7XG4gIGNvbnN0IGxvY2FsQXJyOiBhbnkgPSBbXTtcbiAgaWYgKEFycmF5LmlzQXJyYXkoZ3JvdXApKSB7XG4gICAgZm9yIChjb25zdCBjb250YWN0IG9mIGdyb3VwKSB7XG4gICAgICBpZiAoY29udGFjdCAhPT0gJycpIChsb2NhbEFyciBhcyBhbnkpLnB1c2goYCR7Y29udGFjdH1gKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgYXJyQ29udGFjdHMgPSBncm91cC5zcGxpdCgvXFxzKlssO11cXHMqL2cpO1xuICAgIGZvciAoY29uc3QgY29udGFjdCBvZiBhcnJDb250YWN0cykge1xuICAgICAgaWYgKGNvbnRhY3QgIT09ICcnKSAobG9jYWxBcnIgYXMgYW55KS5wdXNoKGAke2NvbnRhY3R9YCk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGxvY2FsQXJyO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY2FsbFdlYkhvb2soXG4gIGNsaWVudDogYW55LFxuICByZXE6IFJlcXVlc3QsXG4gIGV2ZW50OiBhbnksXG4gIGRhdGE6IGFueVxuKSB7XG4gIGNvbnN0IHdlYmhvb2sgPVxuICAgIGNsaWVudD8uY29uZmlnLndlYmhvb2sgfHwgcmVxLnNlcnZlck9wdGlvbnMud2ViaG9vay51cmwgfHwgZmFsc2U7XG4gIGlmICh3ZWJob29rKSB7XG4gICAgaWYgKFxuICAgICAgcmVxLnNlcnZlck9wdGlvbnMud2ViaG9vaz8uaWdub3JlICYmXG4gICAgICAocmVxLnNlcnZlck9wdGlvbnMud2ViaG9vay5pZ25vcmUuaW5jbHVkZXMoZXZlbnQpIHx8XG4gICAgICAgIHJlcS5zZXJ2ZXJPcHRpb25zLndlYmhvb2suaWdub3JlLmluY2x1ZGVzKGRhdGE/LmZyb20pIHx8XG4gICAgICAgIHJlcS5zZXJ2ZXJPcHRpb25zLndlYmhvb2suaWdub3JlLmluY2x1ZGVzKGRhdGE/LnR5cGUpKVxuICAgIClcbiAgICAgIHJldHVybjtcbiAgICBpZiAocmVxLnNlcnZlck9wdGlvbnMud2ViaG9vay5hdXRvRG93bmxvYWQpXG4gICAgICBhd2FpdCBhdXRvRG93bmxvYWQoY2xpZW50LCByZXEsIGRhdGEpO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBjaGF0SWQgPVxuICAgICAgICBkYXRhLmZyb20gfHxcbiAgICAgICAgZGF0YS5jaGF0SWQgfHxcbiAgICAgICAgKGRhdGEuY2hhdElkID8gZGF0YS5jaGF0SWQuX3NlcmlhbGl6ZWQgOiBudWxsKTtcbiAgICAgIGRhdGEgPSBPYmplY3QuYXNzaWduKHsgZXZlbnQ6IGV2ZW50LCBzZXNzaW9uOiBjbGllbnQuc2Vzc2lvbiB9LCBkYXRhKTtcbiAgICAgIGlmIChyZXEuc2VydmVyT3B0aW9ucy5tYXBwZXIuZW5hYmxlKVxuICAgICAgICBkYXRhID0gYXdhaXQgY29udmVydChyZXEuc2VydmVyT3B0aW9ucy5tYXBwZXIucHJlZml4LCBkYXRhKTtcbiAgICAgIGFwaVxuICAgICAgICAucG9zdCh3ZWJob29rLCBkYXRhKVxuICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IGV2ZW50cyA9IFsndW5yZWFkbWVzc2FnZXMnLCAnb25tZXNzYWdlJ107XG4gICAgICAgICAgICBpZiAoZXZlbnRzLmluY2x1ZGVzKGV2ZW50KSAmJiByZXEuc2VydmVyT3B0aW9ucy53ZWJob29rLnJlYWRNZXNzYWdlKVxuICAgICAgICAgICAgICBjbGllbnQuc2VuZFNlZW4oY2hhdElkKTtcbiAgICAgICAgICB9IGNhdGNoIChlKSB7fVxuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2goKGUpID0+IHtcbiAgICAgICAgICByZXEubG9nZ2VyLndhcm4oJ0Vycm9yIGNhbGxpbmcgV2ViaG9vay4nLCBlKTtcbiAgICAgICAgfSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmVxLmxvZ2dlci5lcnJvcihlKTtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGF1dG9Eb3dubG9hZChjbGllbnQ6IGFueSwgcmVxOiBhbnksIG1lc3NhZ2U6IGFueSkge1xuICB0cnkge1xuICAgIGlmIChtZXNzYWdlICYmIChtZXNzYWdlWydtaW1ldHlwZSddIHx8IG1lc3NhZ2UuaXNNZWRpYSB8fCBtZXNzYWdlLmlzTU1TKSkge1xuICAgICAgY29uc3QgYnVmZmVyID0gYXdhaXQgY2xpZW50LmRlY3J5cHRGaWxlKG1lc3NhZ2UpO1xuICAgICAgaWYgKFxuICAgICAgICByZXEuc2VydmVyT3B0aW9ucy53ZWJob29rLnVwbG9hZFMzIHx8XG4gICAgICAgIHJlcS5zZXJ2ZXJPcHRpb25zPy53ZWJzb2NrZXQ/LnVwbG9hZFMzXG4gICAgICApIHtcbiAgICAgICAgY29uc3QgaGFzaE5hbWUgPSBjcnlwdG8ucmFuZG9tQnl0ZXMoMjQpLnRvU3RyaW5nKCdoZXgnKTtcblxuICAgICAgICBpZiAoXG4gICAgICAgICAgIWNvbmZpZz8uYXdzX3MzPy5yZWdpb24gfHxcbiAgICAgICAgICAhY29uZmlnPy5hd3NfczM/LmFjY2Vzc19rZXlfaWQgfHxcbiAgICAgICAgICAhY29uZmlnPy5hd3NfczM/LnNlY3JldF9rZXlcbiAgICAgICAgKVxuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignUGxlYXNlLCBjb25maWd1cmUgeW91ciBhd3MgY29uZmlncycpO1xuICAgICAgICBjb25zdCBzM0NsaWVudCA9IG5ldyBTM0NsaWVudCh7XG4gICAgICAgICAgcmVnaW9uOiBjb25maWc/LmF3c19zMz8ucmVnaW9uLFxuICAgICAgICAgIGVuZHBvaW50OiBjb25maWc/LmF3c19zMz8uZW5kcG9pbnQgfHwgdW5kZWZpbmVkLFxuICAgICAgICAgIGZvcmNlUGF0aFN0eWxlOiBjb25maWc/LmF3c19zMz8uZm9yY2VQYXRoU3R5bGUgfHwgdW5kZWZpbmVkLFxuICAgICAgICB9KTtcbiAgICAgICAgbGV0IGJ1Y2tldE5hbWUgPSBjb25maWc/LmF3c19zMz8uZGVmYXVsdEJ1Y2tldE5hbWVcbiAgICAgICAgICA/IGNvbmZpZz8uYXdzX3MzPy5kZWZhdWx0QnVja2V0TmFtZVxuICAgICAgICAgIDogY2xpZW50LnNlc3Npb247XG4gICAgICAgIGJ1Y2tldE5hbWUgPSBidWNrZXROYW1lXG4gICAgICAgICAgLm5vcm1hbGl6ZSgnTkZEJylcbiAgICAgICAgICAucmVwbGFjZSgvW1xcdTAzMDAtXFx1MDM2Zl18W+KAlCBfLiw/IV0vZywgJycpXG4gICAgICAgICAgLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIGJ1Y2tldE5hbWUgPVxuICAgICAgICAgIGJ1Y2tldE5hbWUubGVuZ3RoIDwgM1xuICAgICAgICAgICAgPyBidWNrZXROYW1lICtcbiAgICAgICAgICAgICAgYCR7TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogKDk5OSAtIDEwMCArIDEpKSArIDEwMH1gXG4gICAgICAgICAgICA6IGJ1Y2tldE5hbWU7XG4gICAgICAgIGNvbnN0IGZpbGVOYW1lID0gYCR7XG4gICAgICAgICAgY29uZmlnLmF3c19zMy5kZWZhdWx0QnVja2V0TmFtZSA/IGNsaWVudC5zZXNzaW9uICsgJy8nIDogJydcbiAgICAgICAgfSR7aGFzaE5hbWV9LiR7bWltZS5leHRlbnNpb24obWVzc2FnZS5taW1ldHlwZSl9YDtcblxuICAgICAgICBpZiAoXG4gICAgICAgICAgIWNvbmZpZy5hd3NfczMuZGVmYXVsdEJ1Y2tldE5hbWUgJiZcbiAgICAgICAgICAhKGF3YWl0IGJ1Y2tldEFscmVhZHlFeGlzdHMoYnVja2V0TmFtZSkpXG4gICAgICAgICkge1xuICAgICAgICAgIGF3YWl0IHMzQ2xpZW50LnNlbmQoXG4gICAgICAgICAgICBuZXcgQ3JlYXRlQnVja2V0Q29tbWFuZCh7XG4gICAgICAgICAgICAgIEJ1Y2tldDogYnVja2V0TmFtZSxcbiAgICAgICAgICAgICAgT2JqZWN0T3duZXJzaGlwOiAnT2JqZWN0V3JpdGVyJyxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKTtcbiAgICAgICAgICBhd2FpdCBzM0NsaWVudC5zZW5kKFxuICAgICAgICAgICAgbmV3IFB1dFB1YmxpY0FjY2Vzc0Jsb2NrQ29tbWFuZCh7XG4gICAgICAgICAgICAgIEJ1Y2tldDogYnVja2V0TmFtZSxcbiAgICAgICAgICAgICAgUHVibGljQWNjZXNzQmxvY2tDb25maWd1cmF0aW9uOiB7XG4gICAgICAgICAgICAgICAgQmxvY2tQdWJsaWNBY2xzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBJZ25vcmVQdWJsaWNBY2xzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBCbG9ja1B1YmxpY1BvbGljeTogZmFsc2UsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICBhd2FpdCBzM0NsaWVudC5zZW5kKFxuICAgICAgICAgIG5ldyBQdXRPYmplY3RDb21tYW5kKHtcbiAgICAgICAgICAgIEJ1Y2tldDogYnVja2V0TmFtZSxcbiAgICAgICAgICAgIEtleTogZmlsZU5hbWUsXG4gICAgICAgICAgICBCb2R5OiBidWZmZXIsXG4gICAgICAgICAgICBDb250ZW50VHlwZTogbWVzc2FnZS5taW1ldHlwZSxcbiAgICAgICAgICAgIEFDTDogJ3B1YmxpYy1yZWFkJyxcbiAgICAgICAgICB9KVxuICAgICAgICApO1xuXG4gICAgICAgIG1lc3NhZ2UuZmlsZVVybCA9IGBodHRwczovLyR7YnVja2V0TmFtZX0uczMuYW1hem9uYXdzLmNvbS8ke2ZpbGVOYW1lfWA7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBtZXNzYWdlLmJvZHkgPSBhd2FpdCBidWZmZXIudG9TdHJpbmcoJ2Jhc2U2NCcpO1xuICAgICAgfVxuICAgIH1cbiAgfSBjYXRjaCAoZSkge1xuICAgIHJlcS5sb2dnZXIuZXJyb3IoZSk7XG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHN0YXJ0QWxsU2Vzc2lvbnMoY29uZmlnOiBhbnksIGxvZ2dlcjogYW55KSB7XG4gIHRyeSB7XG4gICAgYXdhaXQgYXBpLnBvc3QoXG4gICAgICBgJHtjb25maWcuaG9zdH06JHtjb25maWcucG9ydH0vYXBpLyR7Y29uZmlnLnNlY3JldEtleX0vc3RhcnQtYWxsYFxuICAgICk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBsb2dnZXIuZXJyb3IoZSk7XG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHN0YXJ0SGVscGVyKGNsaWVudDogYW55LCByZXE6IGFueSkge1xuICBpZiAocmVxLnNlcnZlck9wdGlvbnMud2ViaG9vay5hbGxVbnJlYWRPblN0YXJ0KSBhd2FpdCBzZW5kVW5yZWFkKGNsaWVudCwgcmVxKTtcblxuICBpZiAocmVxLnNlcnZlck9wdGlvbnMuYXJjaGl2ZS5lbmFibGUpIGF3YWl0IGFyY2hpdmUoY2xpZW50LCByZXEpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBzZW5kVW5yZWFkKGNsaWVudDogYW55LCByZXE6IGFueSkge1xuICByZXEubG9nZ2VyLmluZm8oYCR7Y2xpZW50LnNlc3Npb259IDogSW5pY2lvIGVudmlhciBtZW5zYWdlbnMgbsOjbyBsaWRhc2ApO1xuXG4gIHRyeSB7XG4gICAgY29uc3QgY2hhdHMgPSBhd2FpdCBjbGllbnQuZ2V0QWxsQ2hhdHNXaXRoTWVzc2FnZXModHJ1ZSk7XG5cbiAgICBpZiAoY2hhdHMgJiYgY2hhdHMubGVuZ3RoID4gMCkge1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjaGF0cy5sZW5ndGg7IGkrKylcbiAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBjaGF0c1tpXS5tc2dzLmxlbmd0aDsgaisrKSB7XG4gICAgICAgICAgY2FsbFdlYkhvb2soY2xpZW50LCByZXEsICd1bnJlYWRtZXNzYWdlcycsIGNoYXRzW2ldLm1zZ3Nbal0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmVxLmxvZ2dlci5pbmZvKGAke2NsaWVudC5zZXNzaW9ufSA6IEZpbSBlbnZpYXIgbWVuc2FnZW5zIG7Do28gbGlkYXNgKTtcbiAgfSBjYXRjaCAoZXgpIHtcbiAgICByZXEubG9nZ2VyLmVycm9yKGV4KTtcbiAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiBhcmNoaXZlKGNsaWVudDogYW55LCByZXE6IGFueSkge1xuICBhc3luYyBmdW5jdGlvbiBzbGVlcCh0aW1lOiBudW1iZXIpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgdGltZSAqIDEwKSk7XG4gIH1cblxuICByZXEubG9nZ2VyLmluZm8oYCR7Y2xpZW50LnNlc3Npb259IDogSW5pY2lvIGFycXVpdmFuZG8gY2hhdHNgKTtcblxuICB0cnkge1xuICAgIGxldCBjaGF0cyA9IGF3YWl0IGNsaWVudC5nZXRBbGxDaGF0cygpO1xuICAgIGlmIChjaGF0cyAmJiBBcnJheS5pc0FycmF5KGNoYXRzKSAmJiBjaGF0cy5sZW5ndGggPiAwKSB7XG4gICAgICBjaGF0cyA9IGNoYXRzLmZpbHRlcigoYykgPT4gIWMuYXJjaGl2ZSk7XG4gICAgfVxuICAgIGlmIChjaGF0cyAmJiBBcnJheS5pc0FycmF5KGNoYXRzKSAmJiBjaGF0cy5sZW5ndGggPiAwKSB7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNoYXRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZShjaGF0c1tpXS50ICogMTAwMCk7XG5cbiAgICAgICAgaWYgKERheXNCZXR3ZWVuKGRhdGUpID4gcmVxLnNlcnZlck9wdGlvbnMuYXJjaGl2ZS5kYXlzVG9BcmNoaXZlKSB7XG4gICAgICAgICAgYXdhaXQgY2xpZW50LmFyY2hpdmVDaGF0KFxuICAgICAgICAgICAgY2hhdHNbaV0uaWQuaWQgfHwgY2hhdHNbaV0uaWQuX3NlcmlhbGl6ZWQsXG4gICAgICAgICAgICB0cnVlXG4gICAgICAgICAgKTtcbiAgICAgICAgICBhd2FpdCBzbGVlcChcbiAgICAgICAgICAgIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIHJlcS5zZXJ2ZXJPcHRpb25zLmFyY2hpdmUud2FpdFRpbWUgKyAxKVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmVxLmxvZ2dlci5pbmZvKGAke2NsaWVudC5zZXNzaW9ufSA6IEZpbSBhcnF1aXZhbmRvIGNoYXRzYCk7XG4gIH0gY2F0Y2ggKGV4KSB7XG4gICAgcmVxLmxvZ2dlci5lcnJvcihleCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gRGF5c0JldHdlZW4oU3RhcnREYXRlOiBEYXRlKSB7XG4gIGNvbnN0IGVuZERhdGUgPSBuZXcgRGF0ZSgpO1xuICAvLyBUaGUgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyBpbiBhbGwgVVRDIGRheXMgKG5vIERTVClcbiAgY29uc3Qgb25lRGF5ID0gMTAwMCAqIDYwICogNjAgKiAyNDtcblxuICAvLyBBIGRheSBpbiBVVEMgYWx3YXlzIGxhc3RzIDI0IGhvdXJzICh1bmxpa2UgaW4gb3RoZXIgdGltZSBmb3JtYXRzKVxuICBjb25zdCBzdGFydCA9IERhdGUuVVRDKFxuICAgIGVuZERhdGUuZ2V0RnVsbFllYXIoKSxcbiAgICBlbmREYXRlLmdldE1vbnRoKCksXG4gICAgZW5kRGF0ZS5nZXREYXRlKClcbiAgKTtcbiAgY29uc3QgZW5kID0gRGF0ZS5VVEMoXG4gICAgU3RhcnREYXRlLmdldEZ1bGxZZWFyKCksXG4gICAgU3RhcnREYXRlLmdldE1vbnRoKCksXG4gICAgU3RhcnREYXRlLmdldERhdGUoKVxuICApO1xuXG4gIC8vIHNvIGl0J3Mgc2FmZSB0byBkaXZpZGUgYnkgMjQgaG91cnNcbiAgcmV0dXJuIChzdGFydCAtIGVuZCkgLyBvbmVEYXk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVGb2xkZXJzKCkge1xuICBjb25zdCBfX2Rpcm5hbWUgPSBwYXRoLnJlc29sdmUocGF0aC5kaXJuYW1lKCcnKSk7XG4gIGNvbnN0IGRpckZpbGVzID0gcGF0aC5yZXNvbHZlKF9fZGlybmFtZSwgJ1doYXRzQXBwSW1hZ2VzJyk7XG4gIGlmICghZnMuZXhpc3RzU3luYyhkaXJGaWxlcykpIHtcbiAgICBmcy5ta2RpclN5bmMoZGlyRmlsZXMpO1xuICB9XG5cbiAgY29uc3QgZGlyVXBsb2FkID0gcGF0aC5yZXNvbHZlKF9fZGlybmFtZSwgJ3VwbG9hZHMnKTtcbiAgaWYgKCFmcy5leGlzdHNTeW5jKGRpclVwbG9hZCkpIHtcbiAgICBmcy5ta2RpclN5bmMoZGlyVXBsb2FkKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gc3RyVG9Cb29sKHM6IHN0cmluZykge1xuICByZXR1cm4gL14odHJ1ZXwxKSQvaS50ZXN0KHMpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0SVBBZGRyZXNzKCkge1xuICBjb25zdCBpbnRlcmZhY2VzID0gb3MubmV0d29ya0ludGVyZmFjZXMoKTtcbiAgZm9yIChjb25zdCBkZXZOYW1lIGluIGludGVyZmFjZXMpIHtcbiAgICBjb25zdCBpZmFjZTogYW55ID0gaW50ZXJmYWNlc1tkZXZOYW1lXTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGlmYWNlLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCBhbGlhcyA9IGlmYWNlW2ldO1xuICAgICAgaWYgKFxuICAgICAgICBhbGlhcy5mYW1pbHkgPT09ICdJUHY0JyAmJlxuICAgICAgICBhbGlhcy5hZGRyZXNzICE9PSAnMTI3LjAuMC4xJyAmJlxuICAgICAgICAhYWxpYXMuaW50ZXJuYWxcbiAgICAgIClcbiAgICAgICAgcmV0dXJuIGFsaWFzLmFkZHJlc3M7XG4gICAgfVxuICB9XG4gIHJldHVybiAnMC4wLjAuMCc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRNYXhMaXN0bmVycyhzZXJ2ZXJPcHRpb25zOiBTZXJ2ZXJPcHRpb25zKSB7XG4gIGlmIChzZXJ2ZXJPcHRpb25zICYmIE51bWJlci5pc0ludGVnZXIoc2VydmVyT3B0aW9ucy5tYXhMaXN0ZW5lcnMpKSB7XG4gICAgcHJvY2Vzcy5zZXRNYXhMaXN0ZW5lcnMoc2VydmVyT3B0aW9ucy5tYXhMaXN0ZW5lcnMpO1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCB1bmxpbmtBc3luYyA9IHByb21pc2lmeShmcy51bmxpbmspO1xuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQ2F0YWxvZ0xpbmsoc2Vzc2lvbjogYW55KSB7XG4gIGNvbnN0IFt3aWRdID0gc2Vzc2lvbi5zcGxp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
@@ -28,4 +28,4 @@ var _factory = _interopRequireDefault(require("./tokenStore/factory")); /*
28
28
  * See the License for the specific language governing permissions and
29
29
  * limitations under the License.
30
30
  */async function getAllTokens(req) {const tokenStore = new _factory.default();const myTokenStore = tokenStore.createTokenStory(null);try {return await myTokenStore.listTokens();} catch (e) {req.logger.error(e);}}
31
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZmFjdG9yeSIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiZ2V0QWxsVG9rZW5zIiwicmVxIiwidG9rZW5TdG9yZSIsIkZhY3RvcnkiLCJteVRva2VuU3RvcmUiLCJjcmVhdGVUb2tlblN0b3J5IiwibGlzdFRva2VucyIsImUiLCJsb2dnZXIiLCJlcnJvciJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsL2dldEFsbFRva2Vucy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMjEgV1BQQ29ubmVjdCBUZWFtXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQgRmFjdG9yeSBmcm9tICcuL3Rva2VuU3RvcmUvZmFjdG9yeSc7XG5cbmV4cG9ydCBkZWZhdWx0IGFzeW5jIGZ1bmN0aW9uIGdldEFsbFRva2VucyhyZXE6IGFueSkge1xuICBjb25zdCB0b2tlblN0b3JlID0gbmV3IEZhY3RvcnkoKTtcbiAgY29uc3QgbXlUb2tlblN0b3JlID0gdG9rZW5TdG9yZS5jcmVhdGVUb2tlblN0b3J5KG51bGwpO1xuICB0cnkge1xuICAgIHJldHVybiBhd2FpdCBteVRva2VuU3RvcmUubGlzdFRva2VucygpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmVxLmxvZ2dlci5lcnJvcihlKTtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFlQSxJQUFBQSxRQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUEsMEJBQTJDLENBZjNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUdlLGVBQWVDLFlBQVlBLENBQUNDLEdBQVEsRUFBRSxDQUNuRCxNQUFNQyxVQUFVLEdBQUcsSUFBSUMsZ0JBQU8sQ0FBQyxDQUFDLENBQ2hDLE1BQU1DLFlBQVksR0FBR0YsVUFBVSxDQUFDRyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FDdEQsSUFBSSxDQUNGLE9BQU8sTUFBTUQsWUFBWSxDQUFDRSxVQUFVLENBQUMsQ0FBQyxDQUN4QyxDQUFDLENBQUMsT0FBT0MsQ0FBQyxFQUFFLENBQ1ZOLEdBQUcsQ0FBQ08sTUFBTSxDQUFDQyxLQUFLLENBQUNGLENBQUMsQ0FBQyxDQUNyQixDQUNGIn0=
31
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZmFjdG9yeSIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiZ2V0QWxsVG9rZW5zIiwicmVxIiwidG9rZW5TdG9yZSIsIkZhY3RvcnkiLCJteVRva2VuU3RvcmUiLCJjcmVhdGVUb2tlblN0b3J5IiwibGlzdFRva2VucyIsImUiLCJsb2dnZXIiLCJlcnJvciJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsL2dldEFsbFRva2Vucy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMjEgV1BQQ29ubmVjdCBUZWFtXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQgRmFjdG9yeSBmcm9tICcuL3Rva2VuU3RvcmUvZmFjdG9yeSc7XG5cbmV4cG9ydCBkZWZhdWx0IGFzeW5jIGZ1bmN0aW9uIGdldEFsbFRva2VucyhyZXE6IGFueSkge1xuICBjb25zdCB0b2tlblN0b3JlID0gbmV3IEZhY3RvcnkoKTtcbiAgY29uc3QgbXlUb2tlblN0b3JlID0gdG9rZW5TdG9yZS5jcmVhdGVUb2tlblN0b3J5KG51bGwpO1xuICB0cnkge1xuICAgIHJldHVybiBhd2FpdCBteVRva2VuU3RvcmUubGlzdFRva2VucygpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmVxLmxvZ2dlci5lcnJvcihlKTtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFlQSxJQUFBQSxRQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUEsMEJBQTJDLENBZjNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUdlLGVBQWVDLFlBQVlBLENBQUNDLEdBQVEsRUFBRSxDQUNuRCxNQUFNQyxVQUFVLEdBQUcsSUFBSUMsZ0JBQU8sQ0FBQyxDQUFDLENBQ2hDLE1BQU1DLFlBQVksR0FBR0YsVUFBVSxDQUFDRyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FDdEQsSUFBSSxDQUNGLE9BQU8sTUFBTUQsWUFBWSxDQUFDRSxVQUFVLENBQUMsQ0FBQyxDQUN4QyxDQUFDLENBQUMsT0FBT0MsQ0FBQyxFQUFFLENBQ1ZOLEdBQUcsQ0FBQ08sTUFBTSxDQUFDQyxLQUFLLENBQUNGLENBQUMsQ0FBQyxDQUNyQixDQUNGIiwiaWdub3JlTGlzdCI6W119
@@ -64,4 +64,4 @@ const jsonLogFileFormat = _winston.default.format.combine(_winston.default.forma
64
64
 
65
65
  return logger;
66
66
  }
67
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfd2luc3RvbiIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwianNvbkxvZ0ZpbGVGb3JtYXQiLCJ3aW5zdG9uIiwiZm9ybWF0IiwiY29tYmluZSIsImVycm9ycyIsInN0YWNrIiwidGltZXN0YW1wIiwicHJldHR5UHJpbnQiLCJjcmVhdGVMb2dnZXIiLCJvcHRpb25zIiwibG9nX2xldmVsIiwibGV2ZWwiLCJsb2dnZXIiLCJpbmRleE9mIiwiYWRkIiwidHJhbnNwb3J0cyIsIkNvbnNvbGUiLCJjb2xvcml6ZSIsInByaW50ZiIsIm1lc3NhZ2UiLCJGaWxlIiwiZmlsZW5hbWUiLCJtYXhzaXplIiwibWF4RmlsZXMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbC9sb2dnZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDIxIFdQUENvbm5lY3QgVGVhbVxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHdpbnN0b24gZnJvbSAnd2luc3Rvbic7XG5cbi8vIFVzZSBKU09OIGxvZ2dpbmcgZm9yIGxvZyBmaWxlc1xuLy8gSGVyZSB3aW5zdG9uLmZvcm1hdC5lcnJvcnMoKSBqdXN0IHNlZW0gdG8gd29ya1xuLy8gYmVjYXVzZSB0aGVyZSBpcyBubyB3aW5zdG9uLmZvcm1hdC5zaW1wbGUoKVxuY29uc3QganNvbkxvZ0ZpbGVGb3JtYXQgPSB3aW5zdG9uLmZvcm1hdC5jb21iaW5lKFxuICB3aW5zdG9uLmZvcm1hdC5lcnJvcnMoeyBzdGFjazogdHJ1ZSB9KSxcbiAgd2luc3Rvbi5mb3JtYXQudGltZXN0YW1wKCksXG4gIHdpbnN0b24uZm9ybWF0LnByZXR0eVByaW50KClcbik7XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVMb2dnZXIob3B0aW9uczogYW55KSB7XG4gIGNvbnN0IGxvZ19sZXZlbCA9IG9wdGlvbnMubGV2ZWw7XG4gIC8vIENyZWF0ZSBmaWxlIGxvZ2dlcnNcbiAgY29uc3QgbG9nZ2VyID0gd2luc3Rvbi5jcmVhdGVMb2dnZXIoe1xuICAgIGxldmVsOiAnZGVidWcnLFxuICAgIGZvcm1hdDoganNvbkxvZ0ZpbGVGb3JtYXQsXG4gIH0pO1xuXG4gIC8vIFdoZW4gcnVubmluZyBsb2NhbGx5LCB3cml0ZSBldmVyeXRoaW5nIHRvIHRoZSBjb25zb2xlXG4gIC8vIHdpdGggcHJvcGVyIHN0YWNrdHJhY2VzIGVuYWJsZWRcbiAgaWYgKG9wdGlvbnMubG9nZ2VyLmluZGV4T2YoJ2NvbnNvbGUnKSA+IC0xKSB7XG4gICAgbG9nZ2VyLmFkZChcbiAgICAgIG5ldyB3aW5zdG9uLnRyYW5zcG9ydHMuQ29uc29sZSh7XG4gICAgICAgIGZvcm1hdDogd2luc3Rvbi5mb3JtYXQuY29tYmluZShcbiAgICAgICAgICB3aW5zdG9uLmZvcm1hdC5lcnJvcnMoeyBzdGFjazogdHJ1ZSB9KSxcbiAgICAgICAgICB3aW5zdG9uLmZvcm1hdC5jb2xvcml6ZSgpLFxuICAgICAgICAgIHdpbnN0b24uZm9ybWF0LnByaW50ZigoeyBsZXZlbCwgbWVzc2FnZSwgdGltZXN0YW1wLCBzdGFjayB9KSA9PiB7XG4gICAgICAgICAgICBpZiAoc3RhY2spIHtcbiAgICAgICAgICAgICAgLy8gcHJpbnQgbG9nIHRyYWNlXG4gICAgICAgICAgICAgIHJldHVybiBgJHtsZXZlbH06ICR7dGltZXN0YW1wfSAke21lc3NhZ2V9IC0gJHtzdGFja31gO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGAke2xldmVsfTogJHt0aW1lc3RhbXB9ICR7bWVzc2FnZX1gO1xuICAgICAgICAgIH0pXG4gICAgICAgICksXG4gICAgICB9KVxuICAgICk7XG4gIH1cbiAgaWYgKG9wdGlvbnMubG9nZ2VyLmluZGV4T2YoJ2ZpbGUnKSA+IC0xKSB7XG4gICAgbG9nZ2VyLmFkZChcbiAgICAgIG5ldyB3aW5zdG9uLnRyYW5zcG9ydHMuRmlsZSh7XG4gICAgICAgIGZpbGVuYW1lOiAnLi9sb2cvYXBwLmxvZ2cnLFxuICAgICAgICBsZXZlbDogbG9nX2xldmVsLFxuICAgICAgICBtYXhzaXplOiAxMDQ4NTc2MCxcbiAgICAgICAgbWF4RmlsZXM6IDMsXG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICByZXR1cm4gbG9nZ2VyO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFlQSxJQUFBQSxRQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUEsYUFBOEIsQ0FmOUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBZEEsQ0FpQkE7QUFDQTtBQUNBO0FBQ0EsTUFBTUMsaUJBQWlCLEdBQUdDLGdCQUFPLENBQUNDLE1BQU0sQ0FBQ0MsT0FBTyxDQUM5Q0YsZ0JBQU8sQ0FBQ0MsTUFBTSxDQUFDRSxNQUFNLENBQUMsRUFBRUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFDdENKLGdCQUFPLENBQUNDLE1BQU0sQ0FBQ0ksU0FBUyxDQUFDLENBQUMsRUFDMUJMLGdCQUFPLENBQUNDLE1BQU0sQ0FBQ0ssV0FBVyxDQUFDLENBQzdCLENBQUMsQ0FFTSxTQUFTQyxZQUFZQSxDQUFDQyxPQUFZLEVBQUUsQ0FDekMsTUFBTUMsU0FBUyxHQUFHRCxPQUFPLENBQUNFLEtBQUssQ0FBQyxDQUNoQztFQUNBLE1BQU1DLE1BQU0sR0FBR1gsZ0JBQU8sQ0FBQ08sWUFBWSxDQUFDLEVBQ2xDRyxLQUFLLEVBQUUsT0FBTyxFQUNkVCxNQUFNLEVBQUVGLGlCQUFpQixDQUMzQixDQUFDLENBQUM7RUFFRjtFQUNBO0VBQ0EsSUFBSVMsT0FBTyxDQUFDRyxNQUFNLENBQUNDLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRTtJQUMxQ0QsTUFBTSxDQUFDRSxHQUFHO01BQ1IsSUFBSWIsZ0JBQU8sQ0FBQ2MsVUFBVSxDQUFDQyxPQUFPLENBQUM7UUFDN0JkLE1BQU0sRUFBRUQsZ0JBQU8sQ0FBQ0MsTUFBTSxDQUFDQyxPQUFPO1VBQzVCRixnQkFBTyxDQUFDQyxNQUFNLENBQUNFLE1BQU0sQ0FBQyxFQUFFQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztVQUN0Q0osZ0JBQU8sQ0FBQ0MsTUFBTSxDQUFDZSxRQUFRLENBQUMsQ0FBQztVQUN6QmhCLGdCQUFPLENBQUNDLE1BQU0sQ0FBQ2dCLE1BQU0sQ0FBQyxDQUFDLEVBQUVQLEtBQUssRUFBRVEsT0FBTyxFQUFFYixTQUFTLEVBQUVELEtBQUssQ0FBQyxDQUFDLEtBQUs7WUFDOUQsSUFBSUEsS0FBSyxFQUFFO2NBQ1Q7Y0FDQSxPQUFRLEdBQUVNLEtBQU0sS0FBSUwsU0FBVSxJQUFHYSxPQUFRLE1BQUtkLEtBQU0sRUFBQztZQUN2RDtZQUNBLE9BQVEsR0FBRU0sS0FBTSxLQUFJTCxTQUFVLElBQUdhLE9BQVEsRUFBQztVQUM1QyxDQUFDO1FBQ0g7TUFDRixDQUFDO0lBQ0gsQ0FBQztFQUNIO0VBQ0EsSUFBSVYsT0FBTyxDQUFDRyxNQUFNLENBQUNDLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRTtJQUN2Q0QsTUFBTSxDQUFDRSxHQUFHO01BQ1IsSUFBSWIsZ0JBQU8sQ0FBQ2MsVUFBVSxDQUFDSyxJQUFJLENBQUM7UUFDMUJDLFFBQVEsRUFBRSxnQkFBZ0I7UUFDMUJWLEtBQUssRUFBRUQsU0FBUztRQUNoQlksT0FBTyxFQUFFLFFBQVE7UUFDakJDLFFBQVEsRUFBRTtNQUNaLENBQUM7SUFDSCxDQUFDO0VBQ0g7O0VBRUEsT0FBT1gsTUFBTTtBQUNmIn0=
67
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfd2luc3RvbiIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwianNvbkxvZ0ZpbGVGb3JtYXQiLCJ3aW5zdG9uIiwiZm9ybWF0IiwiY29tYmluZSIsImVycm9ycyIsInN0YWNrIiwidGltZXN0YW1wIiwicHJldHR5UHJpbnQiLCJjcmVhdGVMb2dnZXIiLCJvcHRpb25zIiwibG9nX2xldmVsIiwibGV2ZWwiLCJsb2dnZXIiLCJpbmRleE9mIiwiYWRkIiwidHJhbnNwb3J0cyIsIkNvbnNvbGUiLCJjb2xvcml6ZSIsInByaW50ZiIsIm1lc3NhZ2UiLCJGaWxlIiwiZmlsZW5hbWUiLCJtYXhzaXplIiwibWF4RmlsZXMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbC9sb2dnZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDIxIFdQUENvbm5lY3QgVGVhbVxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHdpbnN0b24gZnJvbSAnd2luc3Rvbic7XG5cbi8vIFVzZSBKU09OIGxvZ2dpbmcgZm9yIGxvZyBmaWxlc1xuLy8gSGVyZSB3aW5zdG9uLmZvcm1hdC5lcnJvcnMoKSBqdXN0IHNlZW0gdG8gd29ya1xuLy8gYmVjYXVzZSB0aGVyZSBpcyBubyB3aW5zdG9uLmZvcm1hdC5zaW1wbGUoKVxuY29uc3QganNvbkxvZ0ZpbGVGb3JtYXQgPSB3aW5zdG9uLmZvcm1hdC5jb21iaW5lKFxuICB3aW5zdG9uLmZvcm1hdC5lcnJvcnMoeyBzdGFjazogdHJ1ZSB9KSxcbiAgd2luc3Rvbi5mb3JtYXQudGltZXN0YW1wKCksXG4gIHdpbnN0b24uZm9ybWF0LnByZXR0eVByaW50KClcbik7XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVMb2dnZXIob3B0aW9uczogYW55KSB7XG4gIGNvbnN0IGxvZ19sZXZlbCA9IG9wdGlvbnMubGV2ZWw7XG4gIC8vIENyZWF0ZSBmaWxlIGxvZ2dlcnNcbiAgY29uc3QgbG9nZ2VyID0gd2luc3Rvbi5jcmVhdGVMb2dnZXIoe1xuICAgIGxldmVsOiAnZGVidWcnLFxuICAgIGZvcm1hdDoganNvbkxvZ0ZpbGVGb3JtYXQsXG4gIH0pO1xuXG4gIC8vIFdoZW4gcnVubmluZyBsb2NhbGx5LCB3cml0ZSBldmVyeXRoaW5nIHRvIHRoZSBjb25zb2xlXG4gIC8vIHdpdGggcHJvcGVyIHN0YWNrdHJhY2VzIGVuYWJsZWRcbiAgaWYgKG9wdGlvbnMubG9nZ2VyLmluZGV4T2YoJ2NvbnNvbGUnKSA+IC0xKSB7XG4gICAgbG9nZ2VyLmFkZChcbiAgICAgIG5ldyB3aW5zdG9uLnRyYW5zcG9ydHMuQ29uc29sZSh7XG4gICAgICAgIGZvcm1hdDogd2luc3Rvbi5mb3JtYXQuY29tYmluZShcbiAgICAgICAgICB3aW5zdG9uLmZvcm1hdC5lcnJvcnMoeyBzdGFjazogdHJ1ZSB9KSxcbiAgICAgICAgICB3aW5zdG9uLmZvcm1hdC5jb2xvcml6ZSgpLFxuICAgICAgICAgIHdpbnN0b24uZm9ybWF0LnByaW50ZigoeyBsZXZlbCwgbWVzc2FnZSwgdGltZXN0YW1wLCBzdGFjayB9KSA9PiB7XG4gICAgICAgICAgICBpZiAoc3RhY2spIHtcbiAgICAgICAgICAgICAgLy8gcHJpbnQgbG9nIHRyYWNlXG4gICAgICAgICAgICAgIHJldHVybiBgJHtsZXZlbH06ICR7dGltZXN0YW1wfSAke21lc3NhZ2V9IC0gJHtzdGFja31gO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGAke2xldmVsfTogJHt0aW1lc3RhbXB9ICR7bWVzc2FnZX1gO1xuICAgICAgICAgIH0pXG4gICAgICAgICksXG4gICAgICB9KVxuICAgICk7XG4gIH1cbiAgaWYgKG9wdGlvbnMubG9nZ2VyLmluZGV4T2YoJ2ZpbGUnKSA+IC0xKSB7XG4gICAgbG9nZ2VyLmFkZChcbiAgICAgIG5ldyB3aW5zdG9uLnRyYW5zcG9ydHMuRmlsZSh7XG4gICAgICAgIGZpbGVuYW1lOiAnLi9sb2cvYXBwLmxvZ2cnLFxuICAgICAgICBsZXZlbDogbG9nX2xldmVsLFxuICAgICAgICBtYXhzaXplOiAxMDQ4NTc2MCxcbiAgICAgICAgbWF4RmlsZXM6IDMsXG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICByZXR1cm4gbG9nZ2VyO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFlQSxJQUFBQSxRQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUEsYUFBOEIsQ0FmOUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBZEEsQ0FpQkE7QUFDQTtBQUNBO0FBQ0EsTUFBTUMsaUJBQWlCLEdBQUdDLGdCQUFPLENBQUNDLE1BQU0sQ0FBQ0MsT0FBTyxDQUM5Q0YsZ0JBQU8sQ0FBQ0MsTUFBTSxDQUFDRSxNQUFNLENBQUMsRUFBRUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFDdENKLGdCQUFPLENBQUNDLE1BQU0sQ0FBQ0ksU0FBUyxDQUFDLENBQUMsRUFDMUJMLGdCQUFPLENBQUNDLE1BQU0sQ0FBQ0ssV0FBVyxDQUFDLENBQzdCLENBQUMsQ0FFTSxTQUFTQyxZQUFZQSxDQUFDQyxPQUFZLEVBQUUsQ0FDekMsTUFBTUMsU0FBUyxHQUFHRCxPQUFPLENBQUNFLEtBQUssQ0FBQyxDQUNoQztFQUNBLE1BQU1DLE1BQU0sR0FBR1gsZ0JBQU8sQ0FBQ08sWUFBWSxDQUFDLEVBQ2xDRyxLQUFLLEVBQUUsT0FBTyxFQUNkVCxNQUFNLEVBQUVGLGlCQUFpQixDQUMzQixDQUFDLENBQUM7RUFFRjtFQUNBO0VBQ0EsSUFBSVMsT0FBTyxDQUFDRyxNQUFNLENBQUNDLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRTtJQUMxQ0QsTUFBTSxDQUFDRSxHQUFHO01BQ1IsSUFBSWIsZ0JBQU8sQ0FBQ2MsVUFBVSxDQUFDQyxPQUFPLENBQUM7UUFDN0JkLE1BQU0sRUFBRUQsZ0JBQU8sQ0FBQ0MsTUFBTSxDQUFDQyxPQUFPO1VBQzVCRixnQkFBTyxDQUFDQyxNQUFNLENBQUNFLE1BQU0sQ0FBQyxFQUFFQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztVQUN0Q0osZ0JBQU8sQ0FBQ0MsTUFBTSxDQUFDZSxRQUFRLENBQUMsQ0FBQztVQUN6QmhCLGdCQUFPLENBQUNDLE1BQU0sQ0FBQ2dCLE1BQU0sQ0FBQyxDQUFDLEVBQUVQLEtBQUssRUFBRVEsT0FBTyxFQUFFYixTQUFTLEVBQUVELEtBQUssQ0FBQyxDQUFDLEtBQUs7WUFDOUQsSUFBSUEsS0FBSyxFQUFFO2NBQ1Q7Y0FDQSxPQUFRLEdBQUVNLEtBQU0sS0FBSUwsU0FBVSxJQUFHYSxPQUFRLE1BQUtkLEtBQU0sRUFBQztZQUN2RDtZQUNBLE9BQVEsR0FBRU0sS0FBTSxLQUFJTCxTQUFVLElBQUdhLE9BQVEsRUFBQztVQUM1QyxDQUFDO1FBQ0g7TUFDRixDQUFDO0lBQ0gsQ0FBQztFQUNIO0VBQ0EsSUFBSVYsT0FBTyxDQUFDRyxNQUFNLENBQUNDLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRTtJQUN2Q0QsTUFBTSxDQUFDRSxHQUFHO01BQ1IsSUFBSWIsZ0JBQU8sQ0FBQ2MsVUFBVSxDQUFDSyxJQUFJLENBQUM7UUFDMUJDLFFBQVEsRUFBRSxnQkFBZ0I7UUFDMUJWLEtBQUssRUFBRUQsU0FBUztRQUNoQlksT0FBTyxFQUFFLFFBQVE7UUFDakJDLFFBQVEsRUFBRTtNQUNaLENBQUM7SUFDSCxDQUFDO0VBQ0g7O0VBRUEsT0FBT1gsTUFBTTtBQUNmIiwiaWdub3JlTGlzdCI6W119
@@ -127,4 +127,4 @@ async function closeAllSessions(req) {
127
127
  }
128
128
  });
129
129
  }
130
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYXJjaGl2ZXIiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9mcyIsIl91bnppcHBlciIsIl8iLCJfY29uZmlnIiwiX2Z1bmN0aW9ucyIsIl9nZXRBbGxUb2tlbnMiLCJfc2Vzc2lvblV0aWwiLCJiYWNrdXBTZXNzaW9ucyIsInJlcSIsIlByb21pc2UiLCJyZXNvbHZlIiwicmVqZWN0IiwiY2xvc2VBbGxTZXNzaW9ucyIsIm91dHB1dCIsImZpbGVTeXN0ZW0iLCJjcmVhdGVXcml0ZVN0cmVhbSIsIl9fZGlybmFtZSIsImFyY2hpdmUiLCJhcmNoaXZlciIsInpsaWIiLCJsZXZlbCIsIm9uIiwiZXJyIiwibG9nZ2VyIiwiZXJyb3IiLCJwaXBlIiwiZGlyZWN0b3J5IiwiY3BTeW5jIiwiY29uZmlnIiwiY3VzdG9tVXNlckRhdGFEaXIiLCJmb3JjZSIsInJlY3Vyc2l2ZSIsImZpbmFsaXplIiwicm1TeW5jIiwibXlTdHJlYW0iLCJjcmVhdGVSZWFkU3RyZWFtIiwicmVzIiwiaW5mbyIsInN0YXJ0QWxsU2Vzc2lvbnMiLCJlbmQiLCJjb25zb2xlIiwibG9nIiwicmVzdG9yZVNlc3Npb25zIiwiZmlsZSIsIm1pbWV0eXBlIiwiaW5jbHVkZXMiLCJFcnJvciIsInBhdGgiLCJleHRyYWN0IiwidW56aXBwZXIiLCJFeHRyYWN0Iiwic3VjY2VzcyIsIm5hbWVzIiwiZ2V0QWxsVG9rZW5zIiwiZm9yRWFjaCIsInNlc3Npb24iLCJjbGllbnQiLCJjbGllbnRzQXJyYXkiLCJzdGF0dXMiLCJwYWdlIiwiYnJvd3NlciIsImNsb3NlIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWwvbWFuYWdlU2Vzc2lvbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMjMgV1BQQ29ubmVjdCBUZWFtXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCBhcmNoaXZlciBmcm9tICdhcmNoaXZlcic7XG5pbXBvcnQgeyBSZXF1ZXN0IH0gZnJvbSAnZXhwcmVzcyc7XG5pbXBvcnQgZmlsZVN5c3RlbSBmcm9tICdmcyc7XG5pbXBvcnQgdW56aXBwZXIgZnJvbSAndW56aXBwZXInO1xuXG5pbXBvcnQgeyBsb2dnZXIgfSBmcm9tICcuLic7XG5pbXBvcnQgY29uZmlnIGZyb20gJy4uL2NvbmZpZyc7XG5pbXBvcnQgeyBzdGFydEFsbFNlc3Npb25zIH0gZnJvbSAnLi9mdW5jdGlvbnMnO1xuaW1wb3J0IGdldEFsbFRva2VucyBmcm9tICcuL2dldEFsbFRva2Vucyc7XG5pbXBvcnQgeyBjbGllbnRzQXJyYXkgfSBmcm9tICcuL3Nlc3Npb25VdGlsJztcblxuZXhwb3J0IGZ1bmN0aW9uIGJhY2t1cFNlc3Npb25zKHJlcTogUmVxdWVzdCk6IFByb21pc2U8YW55PiB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1hc3luYy1wcm9taXNlLWV4ZWN1dG9yXG4gIHJldHVybiBuZXcgUHJvbWlzZShhc3luYyAocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgYXdhaXQgY2xvc2VBbGxTZXNzaW9ucyhyZXEpO1xuICAgIGNvbnN0IG91dHB1dCA9IGZpbGVTeXN0ZW0uY3JlYXRlV3JpdGVTdHJlYW0oXG4gICAgICBfX2Rpcm5hbWUgKyAnLy4uL2JhY2t1cFNlc3Npb25zLnppcCdcbiAgICApO1xuICAgIGNvbnN0IGFyY2hpdmUgPSBhcmNoaXZlcignemlwJywge1xuICAgICAgemxpYjogeyBsZXZlbDogOSB9LCAvLyBTZXRzIHRoZSBjb21wcmVzc2lvbiBsZXZlbC5cbiAgICB9KTtcbiAgICBhcmNoaXZlLm9uKCdlcnJvcicsIGZ1bmN0aW9uIChlcnIpIHtcbiAgICAgIHJlamVjdChlcnIpO1xuICAgICAgcmVxLmxvZ2dlci5lcnJvcihlcnIpO1xuICAgIH0pO1xuICAgIGFyY2hpdmUucGlwZShvdXRwdXQpO1xuICAgIGFyY2hpdmUuZGlyZWN0b3J5KF9fZGlybmFtZSArICcvLi4vLi4vdG9rZW5zJywgJ3Rva2VucycpO1xuICAgIGZpbGVTeXN0ZW0uY3BTeW5jKFxuICAgICAgY29uZmlnLmN1c3RvbVVzZXJEYXRhRGlyLFxuICAgICAgX19kaXJuYW1lICsgJy8uLi8uLi9iYWNrdXBGb2xkZXInLFxuICAgICAgeyBmb3JjZTogdHJ1ZSwgcmVjdXJzaXZlOiB0cnVlIH1cbiAgICApO1xuXG4gICAgYXJjaGl2ZS5kaXJlY3RvcnkoX19kaXJuYW1lICsgJy8uLi8uLi9iYWNrdXBGb2xkZXInLCAndXNlckRhdGFEaXInKTtcbiAgICBhcmNoaXZlLmZpbmFsaXplKCk7XG5cbiAgICBvdXRwdXQub24oJ2Nsb3NlJywgKCkgPT4ge1xuICAgICAgZmlsZVN5c3RlbS5ybVN5bmMoX19kaXJuYW1lICsgJy8uLi8uLi9iYWNrdXBGb2xkZXInLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgICAgIGNvbnN0IG15U3RyZWFtID0gZmlsZVN5c3RlbS5jcmVhdGVSZWFkU3RyZWFtKFxuICAgICAgICBfX2Rpcm5hbWUgKyAnLy4uL2JhY2t1cFNlc3Npb25zLnppcCdcbiAgICAgICk7XG4gICAgICBteVN0cmVhbS5waXBlKHJlcS5yZXMgYXMgYW55KTtcbiAgICAgIG15U3RyZWFtLm9uKCdlbmQnLCAoKSA9PiB7XG4gICAgICAgIGxvZ2dlci5pbmZvKCdTZXNzaW9ucyBzdWNjZXNzZnVsbHkgYmFja3VwZWQuIFJlc3RhcnRpbmcgc2Vzc2lvbnMuLi4nKTtcbiAgICAgICAgc3RhcnRBbGxTZXNzaW9ucyhjb25maWcsIGxvZ2dlcik7XG4gICAgICAgIHJlcS5yZXM/LmVuZCgpO1xuICAgICAgfSk7XG4gICAgICBteVN0cmVhbS5vbignZXJyb3InLCBmdW5jdGlvbiAoZXJyOiBhbnkpIHtcbiAgICAgICAgY29uc29sZS5sb2coZXJyKTtcbiAgICAgICAgcmVqZWN0KGVycik7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZXN0b3JlU2Vzc2lvbnMoXG4gIHJlcTogUmVxdWVzdCxcbiAgZmlsZTogRXhwcmVzcy5NdWx0ZXIuRmlsZVxuKTogUHJvbWlzZTxhbnk+IHtcbiAgaWYgKCFmaWxlPy5taW1ldHlwZT8uaW5jbHVkZXMoJ3ppcCcpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdQbGVhc2UsIHNlbmQgemlwcGVkIGZpbGUnKTtcbiAgfVxuICBjb25zdCBwYXRoID0gZmlsZS5wYXRoO1xuICBsb2dnZXIuaW5mbygnU3RhcnRpbmcgcmVzdG9yZSBzZXNzaW9ucy4uLicpO1xuICBhd2FpdCBjbG9zZUFsbFNlc3Npb25zKHJlcSk7XG5cbiAgY29uc3QgZXh0cmFjdCA9IGZpbGVTeXN0ZW1cbiAgICAuY3JlYXRlUmVhZFN0cmVhbShwYXRoKVxuICAgIC5waXBlKHVuemlwcGVyLkV4dHJhY3QoeyBwYXRoOiAnLi9yZXN0b3JlJyB9KSk7XG4gIGV4dHJhY3Qub24oJ2Nsb3NlJywgKCkgPT4ge1xuICAgIHRyeSB7XG4gICAgICBmaWxlU3lzdGVtLmNwU3luYyhfX2Rpcm5hbWUgKyAnLy4uLy4uL3Jlc3RvcmUvdG9rZW5zJywgJ3Rva2VucycsIHtcbiAgICAgICAgZm9yY2U6IHRydWUsXG4gICAgICAgIHJlY3Vyc2l2ZTogdHJ1ZSxcbiAgICAgIH0pO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBsb2dnZXIuaW5mbyhcIkZvbGRlciAndG9rZW5zJyBub3QgZm91bmQuXCIpO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgZmlsZVN5c3RlbS5jcFN5bmMoXG4gICAgICAgIF9fZGlybmFtZSArICcvLi4vLi4vcmVzdG9yZS91c2VyRGF0YURpcicsXG4gICAgICAgIGNvbmZpZy5jdXN0b21Vc2VyRGF0YURpcixcbiAgICAgICAge1xuICAgICAgICAgIGZvcmNlOiBmYWxzZSxcbiAgICAgICAgICByZWN1cnNpdmU6IHRydWUsXG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGxvZ2dlci5pbmZvKFwiRm9sZGVyICd1c2VyRGF0YURpcicgbm90IGZvdW5kLlwiKTtcbiAgICB9XG4gICAgbG9nZ2VyLmluZm8oJ1Nlc3Npb25zIHN1Y2Nlc3NmdWxseSByZXN0b3JlZC4gU3RhcnRpbmcuLi4nKTtcbiAgICBzdGFydEFsbFNlc3Npb25zKGNvbmZpZywgbG9nZ2VyKTtcbiAgfSk7XG5cbiAgcmV0dXJuIHsgc3VjY2VzczogdHJ1ZSB9O1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY2xvc2VBbGxTZXNzaW9ucyhyZXE6IFJlcXVlc3QpIHtcbiAgY29uc3QgbmFtZXMgPSBhd2FpdCBnZXRBbGxUb2tlbnMocmVxKTtcbiAgbmFtZXMuZm9yRWFjaChhc3luYyAoc2Vzc2lvbjogc3RyaW5nKSA9PiB7XG4gICAgY29uc3QgY2xpZW50ID0gY2xpZW50c0FycmF5W3Nlc3Npb25dO1xuICAgIHRyeSB7XG4gICAgICBkZWxldGUgY2xpZW50c0FycmF5W3Nlc3Npb25dO1xuICAgICAgaWYgKGNsaWVudD8uc3RhdHVzKSB7XG4gICAgICAgIGxvZ2dlci5pbmZvKCdTdG9wcGluZyBzZXNzaW9uOiAnICsgc2Vzc2lvbik7XG4gICAgICAgIGF3YWl0IGNsaWVudC5wYWdlLmJyb3dzZXIoKS5jbG9zZSgpO1xuICAgICAgfVxuICAgICAgZGVsZXRlIGNsaWVudHNBcnJheVtzZXNzaW9uXTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgbG9nZ2VyLmVycm9yKCdOb3Qgd2FzIHBvc3NpYmxlIHN0b3Agc2Vzc2lvbjogJyArIHNlc3Npb24pO1xuICAgIH1cbiAgfSk7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFnQkEsSUFBQUEsU0FBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBOztBQUVBLElBQUFDLEdBQUEsR0FBQUYsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFFLFNBQUEsR0FBQUgsc0JBQUEsQ0FBQUMsT0FBQTs7QUFFQSxJQUFBRyxDQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxPQUFBLEdBQUFMLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBSyxVQUFBLEdBQUFMLE9BQUE7QUFDQSxJQUFBTSxhQUFBLEdBQUFQLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBTyxZQUFBLEdBQUFQLE9BQUEsa0JBQTZDLENBekI3QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FhTyxTQUFTUSxjQUFjQSxDQUFDQyxHQUFZLEVBQWdCLENBQ3pEO0VBQ0EsT0FBTyxJQUFJQyxPQUFPLENBQUMsT0FBT0MsT0FBTyxFQUFFQyxNQUFNLEtBQUssQ0FDNUMsTUFBTUMsZ0JBQWdCLENBQUNKLEdBQUcsQ0FBQyxDQUMzQixNQUFNSyxNQUFNLEdBQUdDLFdBQVUsQ0FBQ0MsaUJBQWlCLENBQ3pDQyxTQUFTLEdBQUcsd0JBQ2QsQ0FBQyxDQUNELE1BQU1DLE9BQU8sR0FBRyxJQUFBQyxpQkFBUSxFQUFDLEtBQUssRUFBRSxFQUM5QkMsSUFBSSxFQUFFLEVBQUVDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFFO1FBQ3RCLENBQUMsQ0FBQyxDQUNGSCxPQUFPLENBQUNJLEVBQUUsQ0FBQyxPQUFPLEVBQUUsVUFBVUMsR0FBRyxFQUFFLENBQ2pDWCxNQUFNLENBQUNXLEdBQUcsQ0FBQyxDQUNYZCxHQUFHLENBQUNlLE1BQU0sQ0FBQ0MsS0FBSyxDQUFDRixHQUFHLENBQUMsQ0FDdkIsQ0FBQyxDQUFDLENBQ0ZMLE9BQU8sQ0FBQ1EsSUFBSSxDQUFDWixNQUFNLENBQUM7TUFDcEJJLE9BQU8sQ0FBQ1MsU0FBUyxDQUFDVixTQUFTLEdBQUcsZUFBZSxFQUFFLFFBQVEsQ0FBQztNQUN4REYsV0FBVSxDQUFDYSxNQUFNO1FBQ2ZDLGVBQU0sQ0FBQ0MsaUJBQWlCO1FBQ3hCYixTQUFTLEdBQUcscUJBQXFCO1FBQ2pDLEVBQUVjLEtBQUssRUFBRSxJQUFJLEVBQUVDLFNBQVMsRUFBRSxJQUFJLENBQUM7TUFDakMsQ0FBQzs7TUFFRGQsT0FBTyxDQUFDUyxTQUFTLENBQUNWLFNBQVMsR0FBRyxxQkFBcUIsRUFBRSxhQUFhLENBQUM7TUFDbkVDLE9BQU8sQ0FBQ2UsUUFBUSxDQUFDLENBQUM7O01BRWxCbkIsTUFBTSxDQUFDUSxFQUFFLENBQUMsT0FBTyxFQUFFLE1BQU07UUFDdkJQLFdBQVUsQ0FBQ21CLE1BQU0sQ0FBQ2pCLFNBQVMsR0FBRyxxQkFBcUIsRUFBRSxFQUFFZSxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUN6RSxNQUFNRyxRQUFRLEdBQUdwQixXQUFVLENBQUNxQixnQkFBZ0I7VUFDMUNuQixTQUFTLEdBQUc7UUFDZCxDQUFDO1FBQ0RrQixRQUFRLENBQUNULElBQUksQ0FBQ2pCLEdBQUcsQ0FBQzRCLEdBQVUsQ0FBQztRQUM3QkYsUUFBUSxDQUFDYixFQUFFLENBQUMsS0FBSyxFQUFFLE1BQU07VUFDdkJFLFFBQU0sQ0FBQ2MsSUFBSSxDQUFDLHdEQUF3RCxDQUFDO1VBQ3JFLElBQUFDLDJCQUFnQixFQUFDVixlQUFNLEVBQUVMLFFBQU0sQ0FBQztVQUNoQ2YsR0FBRyxDQUFDNEIsR0FBRyxFQUFFRyxHQUFHLENBQUMsQ0FBQztRQUNoQixDQUFDLENBQUM7UUFDRkwsUUFBUSxDQUFDYixFQUFFLENBQUMsT0FBTyxFQUFFLFVBQVVDLEdBQVEsRUFBRTtVQUN2Q2tCLE9BQU8sQ0FBQ0MsR0FBRyxDQUFDbkIsR0FBRyxDQUFDO1VBQ2hCWCxNQUFNLENBQUNXLEdBQUcsQ0FBQztRQUNiLENBQUMsQ0FBQztNQUNKLENBQUMsQ0FBQztJQUNKLENBQUMsQ0FBQztBQUNKOztBQUVPLGVBQWVvQixlQUFlQTtBQUNuQ2xDLEdBQVk7QUFDWm1DLElBQXlCO0FBQ1g7RUFDZCxJQUFJLENBQUNBLElBQUksRUFBRUMsUUFBUSxFQUFFQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUU7SUFDcEMsTUFBTSxJQUFJQyxLQUFLLENBQUMsMEJBQTBCLENBQUM7RUFDN0M7RUFDQSxNQUFNQyxJQUFJLEdBQUdKLElBQUksQ0FBQ0ksSUFBSTtFQUN0QnhCLFFBQU0sQ0FBQ2MsSUFBSSxDQUFDLDhCQUE4QixDQUFDO0VBQzNDLE1BQU16QixnQkFBZ0IsQ0FBQ0osR0FBRyxDQUFDOztFQUUzQixNQUFNd0MsT0FBTyxHQUFHbEMsV0FBVTtFQUN2QnFCLGdCQUFnQixDQUFDWSxJQUFJLENBQUM7RUFDdEJ0QixJQUFJLENBQUN3QixpQkFBUSxDQUFDQyxPQUFPLENBQUMsRUFBRUgsSUFBSSxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztFQUNoREMsT0FBTyxDQUFDM0IsRUFBRSxDQUFDLE9BQU8sRUFBRSxNQUFNO0lBQ3hCLElBQUk7TUFDRlAsV0FBVSxDQUFDYSxNQUFNLENBQUNYLFNBQVMsR0FBRyx1QkFBdUIsRUFBRSxRQUFRLEVBQUU7UUFDL0RjLEtBQUssRUFBRSxJQUFJO1FBQ1hDLFNBQVMsRUFBRTtNQUNiLENBQUMsQ0FBQztJQUNKLENBQUMsQ0FBQyxPQUFPUCxLQUFLLEVBQUU7TUFDZEQsUUFBTSxDQUFDYyxJQUFJLENBQUMsNEJBQTRCLENBQUM7SUFDM0M7SUFDQSxJQUFJO01BQ0Z2QixXQUFVLENBQUNhLE1BQU07UUFDZlgsU0FBUyxHQUFHLDRCQUE0QjtRQUN4Q1ksZUFBTSxDQUFDQyxpQkFBaUI7UUFDeEI7VUFDRUMsS0FBSyxFQUFFLEtBQUs7VUFDWkMsU0FBUyxFQUFFO1FBQ2I7TUFDRixDQUFDO0lBQ0gsQ0FBQyxDQUFDLE9BQU9QLEtBQUssRUFBRTtNQUNkRCxRQUFNLENBQUNjLElBQUksQ0FBQyxpQ0FBaUMsQ0FBQztJQUNoRDtJQUNBZCxRQUFNLENBQUNjLElBQUksQ0FBQyw2Q0FBNkMsQ0FBQztJQUMxRCxJQUFBQywyQkFBZ0IsRUFBQ1YsZUFBTSxFQUFFTCxRQUFNLENBQUM7RUFDbEMsQ0FBQyxDQUFDOztFQUVGLE9BQU8sRUFBRTRCLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztBQUMxQjs7QUFFTyxlQUFldkMsZ0JBQWdCQSxDQUFDSixHQUFZLEVBQUU7RUFDbkQsTUFBTTRDLEtBQUssR0FBRyxNQUFNLElBQUFDLHFCQUFZLEVBQUM3QyxHQUFHLENBQUM7RUFDckM0QyxLQUFLLENBQUNFLE9BQU8sQ0FBQyxPQUFPQyxPQUFlLEtBQUs7SUFDdkMsTUFBTUMsTUFBTSxHQUFHQyx5QkFBWSxDQUFDRixPQUFPLENBQUM7SUFDcEMsSUFBSTtNQUNGLE9BQU9FLHlCQUFZLENBQUNGLE9BQU8sQ0FBQztNQUM1QixJQUFJQyxNQUFNLEVBQUVFLE1BQU0sRUFBRTtRQUNsQm5DLFFBQU0sQ0FBQ2MsSUFBSSxDQUFDLG9CQUFvQixHQUFHa0IsT0FBTyxDQUFDO1FBQzNDLE1BQU1DLE1BQU0sQ0FBQ0csSUFBSSxDQUFDQyxPQUFPLENBQUMsQ0FBQyxDQUFDQyxLQUFLLENBQUMsQ0FBQztNQUNyQztNQUNBLE9BQU9KLHlCQUFZLENBQUNGLE9BQU8sQ0FBQztJQUM5QixDQUFDLENBQUMsT0FBTy9CLEtBQUssRUFBRTtNQUNkRCxRQUFNLENBQUNDLEtBQUssQ0FBQyxpQ0FBaUMsR0FBRytCLE9BQU8sQ0FBQztJQUMzRDtFQUNGLENBQUMsQ0FBQztBQUNKIn0=
130
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYXJjaGl2ZXIiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9mcyIsIl91bnppcHBlciIsIl8iLCJfY29uZmlnIiwiX2Z1bmN0aW9ucyIsIl9nZXRBbGxUb2tlbnMiLCJfc2Vzc2lvblV0aWwiLCJiYWNrdXBTZXNzaW9ucyIsInJlcSIsIlByb21pc2UiLCJyZXNvbHZlIiwicmVqZWN0IiwiY2xvc2VBbGxTZXNzaW9ucyIsIm91dHB1dCIsImZpbGVTeXN0ZW0iLCJjcmVhdGVXcml0ZVN0cmVhbSIsIl9fZGlybmFtZSIsImFyY2hpdmUiLCJhcmNoaXZlciIsInpsaWIiLCJsZXZlbCIsIm9uIiwiZXJyIiwibG9nZ2VyIiwiZXJyb3IiLCJwaXBlIiwiZGlyZWN0b3J5IiwiY3BTeW5jIiwiY29uZmlnIiwiY3VzdG9tVXNlckRhdGFEaXIiLCJmb3JjZSIsInJlY3Vyc2l2ZSIsImZpbmFsaXplIiwicm1TeW5jIiwibXlTdHJlYW0iLCJjcmVhdGVSZWFkU3RyZWFtIiwicmVzIiwiaW5mbyIsInN0YXJ0QWxsU2Vzc2lvbnMiLCJlbmQiLCJjb25zb2xlIiwibG9nIiwicmVzdG9yZVNlc3Npb25zIiwiZmlsZSIsIm1pbWV0eXBlIiwiaW5jbHVkZXMiLCJFcnJvciIsInBhdGgiLCJleHRyYWN0IiwidW56aXBwZXIiLCJFeHRyYWN0Iiwic3VjY2VzcyIsIm5hbWVzIiwiZ2V0QWxsVG9rZW5zIiwiZm9yRWFjaCIsInNlc3Npb24iLCJjbGllbnQiLCJjbGllbnRzQXJyYXkiLCJzdGF0dXMiLCJwYWdlIiwiYnJvd3NlciIsImNsb3NlIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWwvbWFuYWdlU2Vzc2lvbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMjMgV1BQQ29ubmVjdCBUZWFtXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCBhcmNoaXZlciBmcm9tICdhcmNoaXZlcic7XG5pbXBvcnQgeyBSZXF1ZXN0IH0gZnJvbSAnZXhwcmVzcyc7XG5pbXBvcnQgZmlsZVN5c3RlbSBmcm9tICdmcyc7XG5pbXBvcnQgdW56aXBwZXIgZnJvbSAndW56aXBwZXInO1xuXG5pbXBvcnQgeyBsb2dnZXIgfSBmcm9tICcuLic7XG5pbXBvcnQgY29uZmlnIGZyb20gJy4uL2NvbmZpZyc7XG5pbXBvcnQgeyBzdGFydEFsbFNlc3Npb25zIH0gZnJvbSAnLi9mdW5jdGlvbnMnO1xuaW1wb3J0IGdldEFsbFRva2VucyBmcm9tICcuL2dldEFsbFRva2Vucyc7XG5pbXBvcnQgeyBjbGllbnRzQXJyYXkgfSBmcm9tICcuL3Nlc3Npb25VdGlsJztcblxuZXhwb3J0IGZ1bmN0aW9uIGJhY2t1cFNlc3Npb25zKHJlcTogUmVxdWVzdCk6IFByb21pc2U8YW55PiB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1hc3luYy1wcm9taXNlLWV4ZWN1dG9yXG4gIHJldHVybiBuZXcgUHJvbWlzZShhc3luYyAocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgYXdhaXQgY2xvc2VBbGxTZXNzaW9ucyhyZXEpO1xuICAgIGNvbnN0IG91dHB1dCA9IGZpbGVTeXN0ZW0uY3JlYXRlV3JpdGVTdHJlYW0oXG4gICAgICBfX2Rpcm5hbWUgKyAnLy4uL2JhY2t1cFNlc3Npb25zLnppcCdcbiAgICApO1xuICAgIGNvbnN0IGFyY2hpdmUgPSBhcmNoaXZlcignemlwJywge1xuICAgICAgemxpYjogeyBsZXZlbDogOSB9LCAvLyBTZXRzIHRoZSBjb21wcmVzc2lvbiBsZXZlbC5cbiAgICB9KTtcbiAgICBhcmNoaXZlLm9uKCdlcnJvcicsIGZ1bmN0aW9uIChlcnIpIHtcbiAgICAgIHJlamVjdChlcnIpO1xuICAgICAgcmVxLmxvZ2dlci5lcnJvcihlcnIpO1xuICAgIH0pO1xuICAgIGFyY2hpdmUucGlwZShvdXRwdXQpO1xuICAgIGFyY2hpdmUuZGlyZWN0b3J5KF9fZGlybmFtZSArICcvLi4vLi4vdG9rZW5zJywgJ3Rva2VucycpO1xuICAgIGZpbGVTeXN0ZW0uY3BTeW5jKFxuICAgICAgY29uZmlnLmN1c3RvbVVzZXJEYXRhRGlyLFxuICAgICAgX19kaXJuYW1lICsgJy8uLi8uLi9iYWNrdXBGb2xkZXInLFxuICAgICAgeyBmb3JjZTogdHJ1ZSwgcmVjdXJzaXZlOiB0cnVlIH1cbiAgICApO1xuXG4gICAgYXJjaGl2ZS5kaXJlY3RvcnkoX19kaXJuYW1lICsgJy8uLi8uLi9iYWNrdXBGb2xkZXInLCAndXNlckRhdGFEaXInKTtcbiAgICBhcmNoaXZlLmZpbmFsaXplKCk7XG5cbiAgICBvdXRwdXQub24oJ2Nsb3NlJywgKCkgPT4ge1xuICAgICAgZmlsZVN5c3RlbS5ybVN5bmMoX19kaXJuYW1lICsgJy8uLi8uLi9iYWNrdXBGb2xkZXInLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgICAgIGNvbnN0IG15U3RyZWFtID0gZmlsZVN5c3RlbS5jcmVhdGVSZWFkU3RyZWFtKFxuICAgICAgICBfX2Rpcm5hbWUgKyAnLy4uL2JhY2t1cFNlc3Npb25zLnppcCdcbiAgICAgICk7XG4gICAgICBteVN0cmVhbS5waXBlKHJlcS5yZXMgYXMgYW55KTtcbiAgICAgIG15U3RyZWFtLm9uKCdlbmQnLCAoKSA9PiB7XG4gICAgICAgIGxvZ2dlci5pbmZvKCdTZXNzaW9ucyBzdWNjZXNzZnVsbHkgYmFja3VwZWQuIFJlc3RhcnRpbmcgc2Vzc2lvbnMuLi4nKTtcbiAgICAgICAgc3RhcnRBbGxTZXNzaW9ucyhjb25maWcsIGxvZ2dlcik7XG4gICAgICAgIHJlcS5yZXM/LmVuZCgpO1xuICAgICAgfSk7XG4gICAgICBteVN0cmVhbS5vbignZXJyb3InLCBmdW5jdGlvbiAoZXJyOiBhbnkpIHtcbiAgICAgICAgY29uc29sZS5sb2coZXJyKTtcbiAgICAgICAgcmVqZWN0KGVycik7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZXN0b3JlU2Vzc2lvbnMoXG4gIHJlcTogUmVxdWVzdCxcbiAgZmlsZTogRXhwcmVzcy5NdWx0ZXIuRmlsZVxuKTogUHJvbWlzZTxhbnk+IHtcbiAgaWYgKCFmaWxlPy5taW1ldHlwZT8uaW5jbHVkZXMoJ3ppcCcpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdQbGVhc2UsIHNlbmQgemlwcGVkIGZpbGUnKTtcbiAgfVxuICBjb25zdCBwYXRoID0gZmlsZS5wYXRoO1xuICBsb2dnZXIuaW5mbygnU3RhcnRpbmcgcmVzdG9yZSBzZXNzaW9ucy4uLicpO1xuICBhd2FpdCBjbG9zZUFsbFNlc3Npb25zKHJlcSk7XG5cbiAgY29uc3QgZXh0cmFjdCA9IGZpbGVTeXN0ZW1cbiAgICAuY3JlYXRlUmVhZFN0cmVhbShwYXRoKVxuICAgIC5waXBlKHVuemlwcGVyLkV4dHJhY3QoeyBwYXRoOiAnLi9yZXN0b3JlJyB9KSk7XG4gIGV4dHJhY3Qub24oJ2Nsb3NlJywgKCkgPT4ge1xuICAgIHRyeSB7XG4gICAgICBmaWxlU3lzdGVtLmNwU3luYyhfX2Rpcm5hbWUgKyAnLy4uLy4uL3Jlc3RvcmUvdG9rZW5zJywgJ3Rva2VucycsIHtcbiAgICAgICAgZm9yY2U6IHRydWUsXG4gICAgICAgIHJlY3Vyc2l2ZTogdHJ1ZSxcbiAgICAgIH0pO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBsb2dnZXIuaW5mbyhcIkZvbGRlciAndG9rZW5zJyBub3QgZm91bmQuXCIpO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgZmlsZVN5c3RlbS5jcFN5bmMoXG4gICAgICAgIF9fZGlybmFtZSArICcvLi4vLi4vcmVzdG9yZS91c2VyRGF0YURpcicsXG4gICAgICAgIGNvbmZpZy5jdXN0b21Vc2VyRGF0YURpcixcbiAgICAgICAge1xuICAgICAgICAgIGZvcmNlOiBmYWxzZSxcbiAgICAgICAgICByZWN1cnNpdmU6IHRydWUsXG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGxvZ2dlci5pbmZvKFwiRm9sZGVyICd1c2VyRGF0YURpcicgbm90IGZvdW5kLlwiKTtcbiAgICB9XG4gICAgbG9nZ2VyLmluZm8oJ1Nlc3Npb25zIHN1Y2Nlc3NmdWxseSByZXN0b3JlZC4gU3RhcnRpbmcuLi4nKTtcbiAgICBzdGFydEFsbFNlc3Npb25zKGNvbmZpZywgbG9nZ2VyKTtcbiAgfSk7XG5cbiAgcmV0dXJuIHsgc3VjY2VzczogdHJ1ZSB9O1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY2xvc2VBbGxTZXNzaW9ucyhyZXE6IFJlcXVlc3QpIHtcbiAgY29uc3QgbmFtZXMgPSBhd2FpdCBnZXRBbGxUb2tlbnMocmVxKTtcbiAgbmFtZXMuZm9yRWFjaChhc3luYyAoc2Vzc2lvbjogc3RyaW5nKSA9PiB7XG4gICAgY29uc3QgY2xpZW50ID0gY2xpZW50c0FycmF5W3Nlc3Npb25dO1xuICAgIHRyeSB7XG4gICAgICBkZWxldGUgY2xpZW50c0FycmF5W3Nlc3Npb25dO1xuICAgICAgaWYgKGNsaWVudD8uc3RhdHVzKSB7XG4gICAgICAgIGxvZ2dlci5pbmZvKCdTdG9wcGluZyBzZXNzaW9uOiAnICsgc2Vzc2lvbik7XG4gICAgICAgIGF3YWl0IGNsaWVudC5wYWdlLmJyb3dzZXIoKS5jbG9zZSgpO1xuICAgICAgfVxuICAgICAgZGVsZXRlIGNsaWVudHNBcnJheVtzZXNzaW9uXTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgbG9nZ2VyLmVycm9yKCdOb3Qgd2FzIHBvc3NpYmxlIHN0b3Agc2Vzc2lvbjogJyArIHNlc3Npb24pO1xuICAgIH1cbiAgfSk7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFnQkEsSUFBQUEsU0FBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBOztBQUVBLElBQUFDLEdBQUEsR0FBQUYsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFFLFNBQUEsR0FBQUgsc0JBQUEsQ0FBQUMsT0FBQTs7QUFFQSxJQUFBRyxDQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxPQUFBLEdBQUFMLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBSyxVQUFBLEdBQUFMLE9BQUE7QUFDQSxJQUFBTSxhQUFBLEdBQUFQLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBTyxZQUFBLEdBQUFQLE9BQUEsa0JBQTZDLENBekI3QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FhTyxTQUFTUSxjQUFjQSxDQUFDQyxHQUFZLEVBQWdCLENBQ3pEO0VBQ0EsT0FBTyxJQUFJQyxPQUFPLENBQUMsT0FBT0MsT0FBTyxFQUFFQyxNQUFNLEtBQUssQ0FDNUMsTUFBTUMsZ0JBQWdCLENBQUNKLEdBQUcsQ0FBQyxDQUMzQixNQUFNSyxNQUFNLEdBQUdDLFdBQVUsQ0FBQ0MsaUJBQWlCLENBQ3pDQyxTQUFTLEdB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