@discordeno/bot 21.0.1-next.a9d4bc3 → 21.0.1-next.b30e2ff

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 (64) hide show
  1. package/dist/cjs/bot.cjs +1 -1
  2. package/dist/cjs/handlers/guilds/index.cjs +2 -2
  3. package/dist/cjs/handlers/index.cjs +3 -3
  4. package/dist/cjs/handlers/messages/index.cjs +3 -3
  5. package/dist/cjs/handlers/soundboard/index.cjs +3 -3
  6. package/dist/cjs/handlers/voice/index.cjs +2 -2
  7. package/dist/cjs/helpers.cjs +2 -21
  8. package/dist/cjs/index.cjs +3 -3
  9. package/dist/cjs/transformers/channel.cjs +2 -2
  10. package/dist/cjs/transformers/interaction.cjs +13 -9
  11. package/dist/cjs/transformers/invite.cjs +1 -1
  12. package/dist/cjs/transformers/member.cjs +2 -2
  13. package/dist/cjs/transformers/reverse/team.cjs +1 -1
  14. package/dist/cjs/transformers/role.cjs +1 -1
  15. package/dist/cjs/transformers/scheduledEvent.cjs +1 -1
  16. package/dist/cjs/transformers/team.cjs +1 -1
  17. package/dist/cjs/transformers/toggles/guild.cjs +7 -1
  18. package/dist/cjs/transformers/webhook.cjs +1 -1
  19. package/dist/cjs/transformers.cjs +1 -1
  20. package/dist/esm/bot.js +2 -2
  21. package/dist/esm/events.js +1 -1
  22. package/dist/esm/handlers/guilds/index.js +2 -2
  23. package/dist/esm/handlers/index.js +3 -3
  24. package/dist/esm/handlers/messages/index.js +3 -3
  25. package/dist/esm/handlers/soundboard/index.js +3 -3
  26. package/dist/esm/handlers/voice/index.js +2 -2
  27. package/dist/esm/helpers.js +2 -21
  28. package/dist/esm/index.js +3 -3
  29. package/dist/esm/transformers/channel.js +2 -2
  30. package/dist/esm/transformers/interaction.js +13 -9
  31. package/dist/esm/transformers/invite.js +2 -2
  32. package/dist/esm/transformers/member.js +2 -2
  33. package/dist/esm/transformers/reverse/team.js +1 -1
  34. package/dist/esm/transformers/role.js +1 -1
  35. package/dist/esm/transformers/scheduledEvent.js +1 -1
  36. package/dist/esm/transformers/team.js +1 -1
  37. package/dist/esm/transformers/toggles/guild.js +7 -1
  38. package/dist/esm/transformers/webhook.js +1 -1
  39. package/dist/esm/transformers.js +1 -1
  40. package/dist/types/bot.d.ts.map +1 -1
  41. package/dist/types/events.d.ts.map +1 -1
  42. package/dist/types/handlers/guilds/index.d.ts +1 -1
  43. package/dist/types/handlers/guilds/index.d.ts.map +1 -1
  44. package/dist/types/handlers/index.d.ts +2 -2
  45. package/dist/types/handlers/index.d.ts.map +1 -1
  46. package/dist/types/handlers/messages/index.d.ts +2 -2
  47. package/dist/types/handlers/messages/index.d.ts.map +1 -1
  48. package/dist/types/handlers/soundboard/index.d.ts +2 -2
  49. package/dist/types/handlers/soundboard/index.d.ts.map +1 -1
  50. package/dist/types/handlers/voice/index.d.ts +1 -1
  51. package/dist/types/handlers/voice/index.d.ts.map +1 -1
  52. package/dist/types/helpers.d.ts +2 -8
  53. package/dist/types/helpers.d.ts.map +1 -1
  54. package/dist/types/index.d.ts +2 -2
  55. package/dist/types/index.d.ts.map +1 -1
  56. package/dist/types/transformers/channel.d.ts.map +1 -1
  57. package/dist/types/transformers/interaction.d.ts.map +1 -1
  58. package/dist/types/transformers/reverse/team.d.ts.map +1 -1
  59. package/dist/types/transformers/role.d.ts.map +1 -1
  60. package/dist/types/transformers/team.d.ts.map +1 -1
  61. package/dist/types/transformers/toggles/guild.d.ts +5 -1
  62. package/dist/types/transformers/toggles/guild.d.ts.map +1 -1
  63. package/dist/types/transformers.d.ts.map +1 -1
  64. package/package.json +9 -9
@@ -9,13 +9,13 @@ _export_star(require("@discordeno/utils"), exports);
9
9
  _export_star(require("./bot.cjs"), exports);
10
10
  _export_star(require("./commandOptionsParser.cjs"), exports);
11
11
  _export_star(require("./constants.cjs"), exports);
12
+ _export_star(require("./desiredProperties.cjs"), exports);
13
+ _export_star(require("./events.cjs"), exports);
12
14
  _export_star(require("./handlers/index.cjs"), exports);
13
15
  _export_star(require("./handlers.cjs"), exports);
14
16
  _export_star(require("./helpers.cjs"), exports);
15
17
  _export_star(require("./transformers/index.cjs"), exports);
16
18
  _export_star(require("./transformers.cjs"), exports);
17
- _export_star(require("./events.cjs"), exports);
18
- _export_star(require("./desiredProperties.cjs"), exports);
19
19
  _export_star(require("./utils.cjs"), exports);
20
20
  function _export_star(from, to) {
21
21
  Object.keys(from).forEach(function(k) {
@@ -31,4 +31,4 @@ function _export_star(from, to) {
31
31
  return from;
32
32
  }
33
33
 
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICdAZGlzY29yZGVuby9nYXRld2F5J1xuZXhwb3J0ICogZnJvbSAnQGRpc2NvcmRlbm8vcmVzdCdcbmV4cG9ydCAqIGZyb20gJ0BkaXNjb3JkZW5vL3R5cGVzJ1xuZXhwb3J0ICogZnJvbSAnQGRpc2NvcmRlbm8vdXRpbHMnXG5leHBvcnQgKiBmcm9tICcuL2JvdC5qcydcbmV4cG9ydCAqIGZyb20gJy4vY29tbWFuZE9wdGlvbnNQYXJzZXIuanMnXG5leHBvcnQgKiBmcm9tICcuL2NvbnN0YW50cy5qcydcbmV4cG9ydCAqIGZyb20gJy4vaGFuZGxlcnMvaW5kZXguanMnXG5leHBvcnQgKiBmcm9tICcuL2hhbmRsZXJzLmpzJ1xuZXhwb3J0ICogZnJvbSAnLi9oZWxwZXJzLmpzJ1xuZXhwb3J0ICogZnJvbSAnLi90cmFuc2Zvcm1lcnMvaW5kZXguanMnXG5leHBvcnQgKiBmcm9tICcuL3RyYW5zZm9ybWVycy5qcydcbmV4cG9ydCAqIGZyb20gJy4vZXZlbnRzLmpzJ1xuZXhwb3J0ICogZnJvbSAnLi9kZXNpcmVkUHJvcGVydGllcy5qcydcbmV4cG9ydCAqIGZyb20gJy4vdXRpbHMuanMnXG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztxQkFBYztxQkFDQTtxQkFDQTtxQkFDQTtxQkFDQTtxQkFDQTtxQkFDQTtxQkFDQTtxQkFDQTtxQkFDQTtxQkFDQTtxQkFDQTtxQkFDQTtxQkFDQTtxQkFDQSJ9
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICdAZGlzY29yZGVuby9nYXRld2F5J1xuZXhwb3J0ICogZnJvbSAnQGRpc2NvcmRlbm8vcmVzdCdcbmV4cG9ydCAqIGZyb20gJ0BkaXNjb3JkZW5vL3R5cGVzJ1xuZXhwb3J0ICogZnJvbSAnQGRpc2NvcmRlbm8vdXRpbHMnXG5leHBvcnQgKiBmcm9tICcuL2JvdC5qcydcbmV4cG9ydCAqIGZyb20gJy4vY29tbWFuZE9wdGlvbnNQYXJzZXIuanMnXG5leHBvcnQgKiBmcm9tICcuL2NvbnN0YW50cy5qcydcbmV4cG9ydCAqIGZyb20gJy4vZGVzaXJlZFByb3BlcnRpZXMuanMnXG5leHBvcnQgKiBmcm9tICcuL2V2ZW50cy5qcydcbmV4cG9ydCAqIGZyb20gJy4vaGFuZGxlcnMvaW5kZXguanMnXG5leHBvcnQgKiBmcm9tICcuL2hhbmRsZXJzLmpzJ1xuZXhwb3J0ICogZnJvbSAnLi9oZWxwZXJzLmpzJ1xuZXhwb3J0ICogZnJvbSAnLi90cmFuc2Zvcm1lcnMvaW5kZXguanMnXG5leHBvcnQgKiBmcm9tICcuL3RyYW5zZm9ybWVycy5qcydcbmV4cG9ydCAqIGZyb20gJy4vdXRpbHMuanMnXG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztxQkFBYztxQkFDQTtxQkFDQTtxQkFDQTtxQkFDQTtxQkFDQTtxQkFDQTtxQkFDQTtxQkFDQTtxQkFDQTtxQkFDQTtxQkFDQTtxQkFDQTtxQkFDQTtxQkFDQSJ9
@@ -26,8 +26,8 @@ _export(exports, {
26
26
  }
27
27
  });
28
28
  const _index = require("../index.cjs");
29
- const _Permissions = require("./toggles/Permissions.cjs");
30
29
  const _channel = require("./toggles/channel.cjs");
30
+ const _Permissions = require("./toggles/Permissions.cjs");
31
31
  const Mask = (1n << 64n) - 1n;
32
32
  function packOverwrites(allow, deny, id, type) {
33
33
  return pack64(allow, 0) | pack64(deny, 1) | pack64(id, 2) | pack64(type, 3);
@@ -146,4 +146,4 @@ function transformForumTag(bot, payload) {
146
146
  return bot.transformers.customizers.forumTag(bot, payload, forumTag);
147
147
  }
148
148
 
149
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvY2hhbm5lbC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEJpZ1N0cmluZywgRGlzY29yZENoYW5uZWwsIERpc2NvcmRGb3J1bVRhZyB9IGZyb20gJ0BkaXNjb3JkZW5vL3R5cGVzJ1xuaW1wb3J0IHsgdHlwZSBDaGFubmVsLCB0eXBlIEZvcnVtVGFnLCB0eXBlIEludGVybmFsQm90LCBjYWxjdWxhdGVQZXJtaXNzaW9ucywgaWNvbkhhc2hUb0JpZ0ludCB9IGZyb20gJy4uL2luZGV4LmpzJ1xuaW1wb3J0IHsgUGVybWlzc2lvbnMgfSBmcm9tICcuL3RvZ2dsZXMvUGVybWlzc2lvbnMuanMnXG5pbXBvcnQgeyBDaGFubmVsVG9nZ2xlcyB9IGZyb20gJy4vdG9nZ2xlcy9jaGFubmVsLmpzJ1xuXG5jb25zdCBNYXNrID0gKDFuIDw8IDY0bikgLSAxblxuXG5leHBvcnQgZnVuY3Rpb24gcGFja092ZXJ3cml0ZXMoYWxsb3c6IHN0cmluZywgZGVueTogc3RyaW5nLCBpZDogc3RyaW5nLCB0eXBlOiBudW1iZXIpOiBiaWdpbnQge1xuICByZXR1cm4gcGFjazY0KGFsbG93LCAwKSB8IHBhY2s2NChkZW55LCAxKSB8IHBhY2s2NChpZCwgMikgfCBwYWNrNjQodHlwZSwgMylcbn1cbmZ1bmN0aW9uIHVucGFjazY0KHY6IGJpZ2ludCwgc2hpZnQ6IG51bWJlcik6IGJpZ2ludCB7XG4gIHJldHVybiAodiA+PiBCaWdJbnQoc2hpZnQgKiA2NCkpICYgTWFza1xufVxuZnVuY3Rpb24gcGFjazY0KHY6IHN0cmluZyB8IG51bWJlciwgc2hpZnQ6IG51bWJlcik6IGJpZ2ludCB7XG4gIGNvbnN0IGIgPSBCaWdJbnQodilcbiAgaWYgKGIgPCAwIHx8IGIgPiBNYXNrKSB0aHJvdyBuZXcgRXJyb3IoJ3Nob3VsZCBoYXZlIGJlZW4gYSA2NCBiaXQgdW5zaWduZWQgaW50ZWdlcjogJyArIHYudG9TdHJpbmcoKSlcbiAgcmV0dXJuIGIgPDwgQmlnSW50KHNoaWZ0ICogNjQpXG59XG5leHBvcnQgZnVuY3Rpb24gc2VwYXJhdGVPdmVyd3JpdGVzKHY6IGJpZ2ludCk6IFtudW1iZXIsIGJpZ2ludCwgYmlnaW50LCBiaWdpbnRdIHtcbiAgcmV0dXJuIFtOdW1iZXIodW5wYWNrNjQodiwgMykpLCB1bnBhY2s2NCh2LCAyKSwgdW5wYWNrNjQodiwgMCksIHVucGFjazY0KHYsIDEpXSBhcyBbbnVtYmVyLCBiaWdpbnQsIGJpZ2ludCwgYmlnaW50XVxufVxuXG5leHBvcnQgY29uc3QgYmFzZUNoYW5uZWw6IEludGVybmFsQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsnY2hhbm5lbCddID0ge1xuICAvLyBUaGlzIGFsbG93cyB0eXBlc2NyaXB0IHRvIHN0aWxsIGNoZWNrIGZvciB0eXBlIGVycm9ycyBvbiBmdW5jdGlvbnMgYmVsb3dcbiAgLi4uKHVuZGVmaW5lZCBhcyB1bmtub3duIGFzIEludGVybmFsQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsnY2hhbm5lbCddKSxcblxuICBnZXQgYXJjaGl2ZWQoKSB7XG4gICAgcmV0dXJuICEhdGhpcy50b2dnbGVzPy5hcmNoaXZlZFxuICB9LFxuICBnZXQgaW52aXRhYmxlKCkge1xuICAgIHJldHVybiAhIXRoaXMudG9nZ2xlcz8uaW52aXRhYmxlXG4gIH0sXG4gIGdldCBsb2NrZWQoKSB7XG4gICAgcmV0dXJuICEhdGhpcy50b2dnbGVzPy5sb2NrZWRcbiAgfSxcbiAgZ2V0IG5zZncoKSB7XG4gICAgcmV0dXJuICEhdGhpcy50b2dnbGVzPy5uc2Z3XG4gIH0sXG4gIGdldCBuZXdseUNyZWF0ZWQoKSB7XG4gICAgcmV0dXJuICEhdGhpcy50b2dnbGVzPy5uZXdseUNyZWF0ZWRcbiAgfSxcbiAgZ2V0IG1hbmFnZWQoKSB7XG4gICAgcmV0dXJuICEhdGhpcy50b2dnbGVzPy5tYW5hZ2VkXG4gIH0sXG4gIGdldCBwZXJtaXNzaW9uT3ZlcndyaXRlcygpIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5pbnRlcm5hbE92ZXJ3cml0ZXM/Lm1hcCgob3ZlcndyaXRlKSA9PiB7XG4gICAgICAgIGNvbnN0IFt0eXBlLCBpZCwgYWxsb3csIGRlbnldID0gc2VwYXJhdGVPdmVyd3JpdGVzKG92ZXJ3cml0ZSlcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICB0eXBlLFxuICAgICAgICAgIGlkLFxuICAgICAgICAgIGFsbG93OiBjYWxjdWxhdGVQZXJtaXNzaW9ucyhhbGxvdyksXG4gICAgICAgICAgZGVueTogY2FsY3VsYXRlUGVybWlzc2lvbnMoZGVueSksXG4gICAgICAgIH1cbiAgICAgIH0pID8/IFtdXG4gICAgKVxuICB9LFxuICBnZXQgdGhyZWFkTWV0YWRhdGEoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGFyY2hpdmVUaW1lc3RhbXA6IHRoaXMuaW50ZXJuYWxUaHJlYWRNZXRhZGF0YT8uYXJjaGl2ZVRpbWVzdGFtcCxcbiAgICAgIGNyZWF0ZVRpbWVzdGFtcDogdGhpcy5pbnRlcm5hbFRocmVhZE1ldGFkYXRhPy5jcmVhdGVUaW1lc3RhbXAsXG4gICAgICBhdXRvQXJjaGl2ZUR1cmF0aW9uOiB0aGlzLmludGVybmFsVGhyZWFkTWV0YWRhdGE/LmF1dG9BcmNoaXZlRHVyYXRpb24sXG4gICAgICBsb2NrZWQ6ICEhdGhpcy50b2dnbGVzPy5sb2NrZWQsXG4gICAgICBpbnZpdGFibGU6ICEhdGhpcy50b2dnbGVzPy5pbnZpdGFibGUsXG4gICAgICBhcmNoaXZlZDogISF0aGlzLnRvZ2dsZXM/LmFyY2hpdmVkLFxuICAgIH1cbiAgfSxcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybUNoYW5uZWwoXG4gIGJvdDogSW50ZXJuYWxCb3QsXG4gIHBheWxvYWQ6IHsgY2hhbm5lbDogRGlzY29yZENoYW5uZWw7IGd1aWxkSWQ/OiBCaWdTdHJpbmcgfSxcbik6IHR5cGVvZiBib3QudHJhbnNmb3JtZXJzLiRpbmZlcnJlZFR5cGVzLmNoYW5uZWwge1xuICBjb25zdCBjaGFubmVsID0gT2JqZWN0LmNyZWF0ZShiYXNlQ2hhbm5lbCkgYXMgQ2hhbm5lbFxuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuY2hhbm5lbFxuICBjaGFubmVsLnRvZ2dsZXMgPSBuZXcgQ2hhbm5lbFRvZ2dsZXMocGF5bG9hZC5jaGFubmVsKVxuXG4gIGlmIChwcm9wcy5pZCAmJiBwYXlsb2FkLmNoYW5uZWwuaWQpIGNoYW5uZWwuaWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmNoYW5uZWwuaWQpXG4gIGlmIChwcm9wcy5ndWlsZElkICYmIChwYXlsb2FkLmd1aWxkSWQgPz8gcGF5bG9hZC5jaGFubmVsLmd1aWxkX2lkKSlcbiAgICBjaGFubmVsLmd1aWxkSWQgPSBwYXlsb2FkLmd1aWxkSWQgPyBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmd1aWxkSWQpIDogYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5jaGFubmVsLmd1aWxkX2lkISlcbiAgaWYgKHByb3BzLnR5cGUpIGNoYW5uZWwudHlwZSA9IHBheWxvYWQuY2hhbm5lbC50eXBlXG4gIGlmIChwcm9wcy5wb3NpdGlvbikgY2hhbm5lbC5wb3NpdGlvbiA9IHBheWxvYWQuY2hhbm5lbC5wb3NpdGlvblxuICBpZiAocHJvcHMubmFtZSAmJiBwYXlsb2FkLmNoYW5uZWwubmFtZSkgY2hhbm5lbC5uYW1lID0gcGF5bG9hZC5jaGFubmVsLm5hbWVcbiAgaWYgKHByb3BzLnRvcGljICYmIHBheWxvYWQuY2hhbm5lbC50b3BpYykgY2hhbm5lbC50b3BpYyA9IHBheWxvYWQuY2hhbm5lbC50b3BpY1xuICBpZiAocHJvcHMubGFzdE1lc3NhZ2VJZCAmJiBwYXlsb2FkLmNoYW5uZWwubGFzdF9tZXNzYWdlX2lkKSBjaGFubmVsLmxhc3RNZXNzYWdlSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmNoYW5uZWwubGFzdF9tZXNzYWdlX2lkKVxuICBpZiAocHJvcHMuYml0cmF0ZSAmJiBwYXlsb2FkLmNoYW5uZWwuYml0cmF0ZSkgY2hhbm5lbC5iaXRyYXRlID0gcGF5bG9hZC5jaGFubmVsLmJpdHJhdGVcbiAgaWYgKHByb3BzLnVzZXJMaW1pdCkgY2hhbm5lbC51c2VyTGltaXQgPSBwYXlsb2FkLmNoYW5uZWwudXNlcl9saW1pdFxuICBpZiAocHJvcHMucmF0ZUxpbWl0UGVyVXNlcikgY2hhbm5lbC5yYXRlTGltaXRQZXJVc2VyID0gcGF5bG9hZC5jaGFubmVsLnJhdGVfbGltaXRfcGVyX3VzZXJcbiAgaWYgKHByb3BzLm93bmVySWQgJiYgcGF5bG9hZC5jaGFubmVsLm93bmVyX2lkKSBjaGFubmVsLm93bmVySWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmNoYW5uZWwub3duZXJfaWQpXG4gIGlmIChwcm9wcy5sYXN0UGluVGltZXN0YW1wICYmIHBheWxvYWQuY2hhbm5lbC5sYXN0X3Bpbl90aW1lc3RhbXApIGNoYW5uZWwubGFzdFBpblRpbWVzdGFtcCA9IERhdGUucGFyc2UocGF5bG9hZC5jaGFubmVsLmxhc3RfcGluX3RpbWVzdGFtcClcbiAgaWYgKHByb3BzLnJ0Y1JlZ2lvbiAmJiBwYXlsb2FkLmNoYW5uZWwucnRjX3JlZ2lvbikgY2hhbm5lbC5ydGNSZWdpb24gPSBwYXlsb2FkLmNoYW5uZWwucnRjX3JlZ2lvblxuICBpZiAocHJvcHMudmlkZW9RdWFsaXR5TW9kZSAmJiBwYXlsb2FkLmNoYW5uZWwudmlkZW9fcXVhbGl0eV9tb2RlKSBjaGFubmVsLnZpZGVvUXVhbGl0eU1vZGUgPSBwYXlsb2FkLmNoYW5uZWwudmlkZW9fcXVhbGl0eV9tb2RlXG4gIGlmIChwcm9wcy5tZXNzYWdlQ291bnQpIGNoYW5uZWwubWVzc2FnZUNvdW50ID0gcGF5bG9hZC5jaGFubmVsLm1lc3NhZ2VfY291bnRcbiAgaWYgKHByb3BzLm1lbWJlckNvdW50KSBjaGFubmVsLm1lbWJlckNvdW50ID0gcGF5bG9hZC5jaGFubmVsLm1lbWJlcl9jb3VudFxuICBpZiAocHJvcHMudGhyZWFkTWV0YWRhdGEpIHtcbiAgICBjaGFubmVsLmludGVybmFsVGhyZWFkTWV0YWRhdGEgPSB7fSBhcyBOb25OdWxsYWJsZTxDaGFubmVsWydpbnRlcm5hbFRocmVhZE1ldGFkYXRhJ10+XG4gICAgaWYgKHBheWxvYWQuY2hhbm5lbC50aHJlYWRfbWV0YWRhdGE/LmFyY2hpdmVfdGltZXN0YW1wKVxuICAgICAgY2hhbm5lbC5pbnRlcm5hbFRocmVhZE1ldGFkYXRhLmFyY2hpdmVUaW1lc3RhbXAgPSBEYXRlLnBhcnNlKHBheWxvYWQuY2hhbm5lbC50aHJlYWRfbWV0YWRhdGEuYXJjaGl2ZV90aW1lc3RhbXApXG4gICAgaWYgKHBheWxvYWQuY2hhbm5lbC50aHJlYWRfbWV0YWRhdGE/LmNyZWF0ZV90aW1lc3RhbXApXG4gICAgICBjaGFubmVsLmludGVybmFsVGhyZWFkTWV0YWRhdGEuY3JlYXRlVGltZXN0YW1wID0gRGF0ZS5wYXJzZShwYXlsb2FkLmNoYW5uZWwudGhyZWFkX21ldGFkYXRhLmNyZWF0ZV90aW1lc3RhbXApXG4gICAgaWYgKHBheWxvYWQuY2hhbm5lbC50aHJlYWRfbWV0YWRhdGE/LmF1dG9fYXJjaGl2ZV9kdXJhdGlvbilcbiAgICAgIGNoYW5uZWwuaW50ZXJuYWxUaHJlYWRNZXRhZGF0YS5hdXRvQXJjaGl2ZUR1cmF0aW9uID0gcGF5bG9hZC5jaGFubmVsLnRocmVhZF9tZXRhZGF0YS5hdXRvX2FyY2hpdmVfZHVyYXRpb25cbiAgfVxuICBpZiAocHJvcHMuZGVmYXVsdEF1dG9BcmNoaXZlRHVyYXRpb24gJiYgcGF5bG9hZC5jaGFubmVsLmRlZmF1bHRfYXV0b19hcmNoaXZlX2R1cmF0aW9uKVxuICAgIGNoYW5uZWwuZGVmYXVsdEF1dG9BcmNoaXZlRHVyYXRpb24gPSBwYXlsb2FkLmNoYW5uZWwuZGVmYXVsdF9hdXRvX2FyY2hpdmVfZHVyYXRpb25cbiAgaWYgKHByb3BzLnBlcm1pc3Npb25zICYmIHBheWxvYWQuY2hhbm5lbC5wZXJtaXNzaW9ucykgY2hhbm5lbC5wZXJtaXNzaW9ucyA9IG5ldyBQZXJtaXNzaW9ucyhwYXlsb2FkLmNoYW5uZWwucGVybWlzc2lvbnMpXG4gIGlmIChwcm9wcy5mbGFncykgY2hhbm5lbC5mbGFncyA9IHBheWxvYWQuY2hhbm5lbC5mbGFnc1xuICBpZiAocHJvcHMucGVybWlzc2lvbk92ZXJ3cml0ZXMgJiYgcGF5bG9hZC5jaGFubmVsLnBlcm1pc3Npb25fb3ZlcndyaXRlcylcbiAgICBjaGFubmVsLmludGVybmFsT3ZlcndyaXRlcyA9IHBheWxvYWQuY2hhbm5lbC5wZXJtaXNzaW9uX292ZXJ3cml0ZXMubWFwKChvKSA9PiBwYWNrT3ZlcndyaXRlcyhvLmFsbG93ID8/ICcwJywgby5kZW55ID8/ICcwJywgby5pZCwgby50eXBlKSlcbiAgaWYgKHByb3BzLnBhcmVudElkICYmIHBheWxvYWQuY2hhbm5lbC5wYXJlbnRfaWQpIGNoYW5uZWwucGFyZW50SWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmNoYW5uZWwucGFyZW50X2lkKVxuICBpZiAocHJvcHMucmVjaXBpZW50cyAmJiBwYXlsb2FkLmNoYW5uZWwucmVjaXBpZW50cykgY2hhbm5lbC5yZWNpcGllbnRzID0gcGF5bG9hZC5jaGFubmVsLnJlY2lwaWVudHMubWFwKCh1KSA9PiBib3QudHJhbnNmb3JtZXJzLnVzZXIoYm90LCB1KSlcbiAgaWYgKHByb3BzLmljb24gJiYgcGF5bG9hZC5jaGFubmVsLmljb24pIGNoYW5uZWwuaWNvbiA9IGljb25IYXNoVG9CaWdJbnQocGF5bG9hZC5jaGFubmVsLmljb24pXG4gIGlmIChwcm9wcy5hcHBsaWNhdGlvbklkICYmIHBheWxvYWQuY2hhbm5lbC5hcHBsaWNhdGlvbl9pZCkgY2hhbm5lbC5hcHBsaWNhdGlvbklkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5jaGFubmVsLmFwcGxpY2F0aW9uX2lkKVxuICBpZiAocHJvcHMubWVtYmVyICYmIHBheWxvYWQuY2hhbm5lbC5tZW1iZXIpIGNoYW5uZWwubWVtYmVyID0gYm90LnRyYW5zZm9ybWVycy50aHJlYWRNZW1iZXIoYm90LCBwYXlsb2FkLmNoYW5uZWwubWVtYmVyKVxuICBpZiAocHJvcHMudG90YWxNZXNzYWdlU2VudCAmJiBwYXlsb2FkLmNoYW5uZWwudG90YWxfbWVzc2FnZV9zZW50ICE9PSB1bmRlZmluZWQpIGNoYW5uZWwudG90YWxNZXNzYWdlU2VudCA9IHBheWxvYWQuY2hhbm5lbC50b3RhbF9tZXNzYWdlX3NlbnRcbiAgaWYgKHByb3BzLmF2YWlsYWJsZVRhZ3MgJiYgcGF5bG9hZC5jaGFubmVsLmF2YWlsYWJsZV90YWdzKVxuICAgIGNoYW5uZWwuYXZhaWxhYmxlVGFncyA9IHBheWxvYWQuY2hhbm5lbC5hdmFpbGFibGVfdGFncy5tYXAoKHgpID0+IGJvdC50cmFuc2Zvcm1lcnMuZm9ydW1UYWcoYm90LCB4KSlcbiAgaWYgKHByb3BzLmFwcGxpZWRUYWdzICYmIHBheWxvYWQuY2hhbm5lbC5hcHBsaWVkX3RhZ3MpIGNoYW5uZWwuYXBwbGllZFRhZ3MgPSBwYXlsb2FkLmNoYW5uZWwuYXBwbGllZF90YWdzLm1hcCgoeCkgPT4gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UoeCkpXG4gIGlmIChwcm9wcy5kZWZhdWx0UmVhY3Rpb25FbW9qaSAmJiBwYXlsb2FkLmNoYW5uZWwuZGVmYXVsdF9yZWFjdGlvbl9lbW9qaSlcbiAgICBjaGFubmVsLmRlZmF1bHRSZWFjdGlvbkVtb2ppID0gYm90LnRyYW5zZm9ybWVycy5kZWZhdWx0UmVhY3Rpb25FbW9qaShib3QsIHBheWxvYWQuY2hhbm5lbC5kZWZhdWx0X3JlYWN0aW9uX2Vtb2ppKVxuICBpZiAocHJvcHMuZGVmYXVsdFRocmVhZFJhdGVMaW1pdFBlclVzZXIgJiYgcGF5bG9hZC5jaGFubmVsLmRlZmF1bHRfdGhyZWFkX3JhdGVfbGltaXRfcGVyX3VzZXIpXG4gICAgY2hhbm5lbC5kZWZhdWx0VGhyZWFkUmF0ZUxpbWl0UGVyVXNlciA9IHBheWxvYWQuY2hhbm5lbC5kZWZhdWx0X3RocmVhZF9yYXRlX2xpbWl0X3Blcl91c2VyXG4gIGlmIChwcm9wcy5kZWZhdWx0U29ydE9yZGVyICYmIHBheWxvYWQuY2hhbm5lbC5kZWZhdWx0X3NvcnRfb3JkZXIgIT09IHVuZGVmaW5lZCkgY2hhbm5lbC5kZWZhdWx0U29ydE9yZGVyID0gcGF5bG9hZC5jaGFubmVsLmRlZmF1bHRfc29ydF9vcmRlclxuICBpZiAocHJvcHMuZGVmYXVsdEZvcnVtTGF5b3V0ICYmIHBheWxvYWQuY2hhbm5lbC5kZWZhdWx0X2ZvcnVtX2xheW91dCAhPT0gdW5kZWZpbmVkKVxuICAgIGNoYW5uZWwuZGVmYXVsdEZvcnVtTGF5b3V0ID0gcGF5bG9hZC5jaGFubmVsLmRlZmF1bHRfZm9ydW1fbGF5b3V0XG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMuY2hhbm5lbChib3QsIHBheWxvYWQuY2hhbm5lbCwgY2hhbm5lbClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybUZvcnVtVGFnKGJvdDogSW50ZXJuYWxCb3QsIHBheWxvYWQ6IERpc2NvcmRGb3J1bVRhZyk6IHR5cGVvZiBib3QudHJhbnNmb3JtZXJzLiRpbmZlcnJlZFR5cGVzLmZvcnVtVGFnIHtcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLmZvcnVtVGFnXG4gIGNvbnN0IGZvcnVtVGFnID0ge30gYXMgRm9ydW1UYWdcblxuICBpZiAocHJvcHMuaWQgJiYgcGF5bG9hZC5pZCkgZm9ydW1UYWcuaWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmlkKVxuICBpZiAocHJvcHMubmFtZSAmJiBwYXlsb2FkLm5hbWUpIGZvcnVtVGFnLm5hbWUgPSBwYXlsb2FkLm5hbWVcbiAgaWYgKHByb3BzLm1vZGVyYXRlZCAmJiBwYXlsb2FkLm1vZGVyYXRlZCkgZm9ydW1UYWcubW9kZXJhdGVkID0gcGF5bG9hZC5tb2RlcmF0ZWRcbiAgaWYgKHByb3BzLmVtb2ppSWQgJiYgcGF5bG9hZC5lbW9qaV9pZCkgZm9ydW1UYWcuZW1vamlJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuZW1vamlfaWQpXG4gIGlmIChwcm9wcy5lbW9qaU5hbWUgJiYgcGF5bG9hZC5lbW9qaV9uYW1lKSBmb3J1bVRhZy5lbW9qaU5hbWUgPSBwYXlsb2FkLmVtb2ppX25hbWVcblxuICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jdXN0b21pemVycy5mb3J1bVRhZyhib3QsIHBheWxvYWQsIGZvcnVtVGFnKVxufVxuIl0sIm5hbWVzIjpbImJhc2VDaGFubmVsIiwicGFja092ZXJ3cml0ZXMiLCJzZXBhcmF0ZU92ZXJ3cml0ZXMiLCJ0cmFuc2Zvcm1DaGFubmVsIiwidHJhbnNmb3JtRm9ydW1UYWciLCJNYXNrIiwiYWxsb3ciLCJkZW55IiwiaWQiLCJ0eXBlIiwicGFjazY0IiwidW5wYWNrNjQiLCJ2Iiwic2hpZnQiLCJCaWdJbnQiLCJiIiwiRXJyb3IiLCJ0b1N0cmluZyIsIk51bWJlciIsInVuZGVmaW5lZCIsImFyY2hpdmVkIiwidG9nZ2xlcyIsImludml0YWJsZSIsImxvY2tlZCIsIm5zZnciLCJuZXdseUNyZWF0ZWQiLCJtYW5hZ2VkIiwicGVybWlzc2lvbk92ZXJ3cml0ZXMiLCJpbnRlcm5hbE92ZXJ3cml0ZXMiLCJtYXAiLCJvdmVyd3JpdGUiLCJjYWxjdWxhdGVQZXJtaXNzaW9ucyIsInRocmVhZE1ldGFkYXRhIiwiYXJjaGl2ZVRpbWVzdGFtcCIsImludGVybmFsVGhyZWFkTWV0YWRhdGEiLCJjcmVhdGVUaW1lc3RhbXAiLCJhdXRvQXJjaGl2ZUR1cmF0aW9uIiwiYm90IiwicGF5bG9hZCIsImNoYW5uZWwiLCJPYmplY3QiLCJjcmVhdGUiLCJwcm9wcyIsInRyYW5zZm9ybWVycyIsImRlc2lyZWRQcm9wZXJ0aWVzIiwiQ2hhbm5lbFRvZ2dsZXMiLCJzbm93Zmxha2UiLCJndWlsZElkIiwiZ3VpbGRfaWQiLCJwb3NpdGlvbiIsIm5hbWUiLCJ0b3BpYyIsImxhc3RNZXNzYWdlSWQiLCJsYXN0X21lc3NhZ2VfaWQiLCJiaXRyYXRlIiwidXNlckxpbWl0IiwidXNlcl9saW1pdCIsInJhdGVMaW1pdFBlclVzZXIiLCJyYXRlX2xpbWl0X3Blcl91c2VyIiwib3duZXJJZCIsIm93bmVyX2lkIiwibGFzdFBpblRpbWVzdGFtcCIsImxhc3RfcGluX3RpbWVzdGFtcCIsIkRhdGUiLCJwYXJzZSIsInJ0Y1JlZ2lvbiIsInJ0Y19yZWdpb24iLCJ2aWRlb1F1YWxpdHlNb2RlIiwidmlkZW9fcXVhbGl0eV9tb2RlIiwibWVzc2FnZUNvdW50IiwibWVzc2FnZV9jb3VudCIsIm1lbWJlckNvdW50IiwibWVtYmVyX2NvdW50IiwidGhyZWFkX21ldGFkYXRhIiwiYXJjaGl2ZV90aW1lc3RhbXAiLCJjcmVhdGVfdGltZXN0YW1wIiwiYXV0b19hcmNoaXZlX2R1cmF0aW9uIiwiZGVmYXVsdEF1dG9BcmNoaXZlRHVyYXRpb24iLCJkZWZhdWx0X2F1dG9fYXJjaGl2ZV9kdXJhdGlvbiIsInBlcm1pc3Npb25zIiwiUGVybWlzc2lvbnMiLCJmbGFncyIsInBlcm1pc3Npb25fb3ZlcndyaXRlcyIsIm8iLCJwYXJlbnRJZCIsInBhcmVudF9pZCIsInJlY2lwaWVudHMiLCJ1IiwidXNlciIsImljb24iLCJpY29uSGFzaFRvQmlnSW50IiwiYXBwbGljYXRpb25JZCIsImFwcGxpY2F0aW9uX2lkIiwibWVtYmVyIiwidGhyZWFkTWVtYmVyIiwidG90YWxNZXNzYWdlU2VudCIsInRvdGFsX21lc3NhZ2Vfc2VudCIsImF2YWlsYWJsZVRhZ3MiLCJhdmFpbGFibGVfdGFncyIsIngiLCJmb3J1bVRhZyIsImFwcGxpZWRUYWdzIiwiYXBwbGllZF90YWdzIiwiZGVmYXVsdFJlYWN0aW9uRW1vamkiLCJkZWZhdWx0X3JlYWN0aW9uX2Vtb2ppIiwiZGVmYXVsdFRocmVhZFJhdGVMaW1pdFBlclVzZXIiLCJkZWZhdWx0X3RocmVhZF9yYXRlX2xpbWl0X3Blcl91c2VyIiwiZGVmYXVsdFNvcnRPcmRlciIsImRlZmF1bHRfc29ydF9vcmRlciIsImRlZmF1bHRGb3J1bUxheW91dCIsImRlZmF1bHRfZm9ydW1fbGF5b3V0IiwiY3VzdG9taXplcnMiLCJtb2RlcmF0ZWQiLCJlbW9qaUlkIiwiZW1vamlfaWQiLCJlbW9qaU5hbWUiLCJlbW9qaV9uYW1lIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztRQXNCYUE7ZUFBQUE7O1FBZkdDO2VBQUFBOztRQVdBQztlQUFBQTs7UUFtREFDO2VBQUFBOztRQTREQUM7ZUFBQUE7Ozt1QkFoSXNGOzZCQUMxRTt5QkFDRztBQUUvQixNQUFNQyxPQUFPLEFBQUMsQ0FBQSxFQUFFLElBQUksR0FBRyxBQUFELElBQUssRUFBRTtBQUV0QixTQUFTSixlQUFlSyxLQUFhLEVBQUVDLElBQVksRUFBRUMsRUFBVSxFQUFFQyxJQUFZO0lBQ2xGLE9BQU9DLE9BQU9KLE9BQU8sS0FBS0ksT0FBT0gsTUFBTSxLQUFLRyxPQUFPRixJQUFJLEtBQUtFLE9BQU9ELE1BQU07QUFDM0U7QUFDQSxTQUFTRSxTQUFTQyxDQUFTLEVBQUVDLEtBQWE7SUFDeEMsT0FBTyxBQUFDRCxLQUFLRSxPQUFPRCxRQUFRLE1BQU9SO0FBQ3JDO0FBQ0EsU0FBU0ssT0FBT0UsQ0FBa0IsRUFBRUMsS0FBYTtJQUMvQyxNQUFNRSxJQUFJRCxPQUFPRjtJQUNqQixJQUFJRyxJQUFJLEtBQUtBLElBQUlWLE1BQU0sTUFBTSxJQUFJVyxNQUFNLGlEQUFpREosRUFBRUssUUFBUTtJQUNsRyxPQUFPRixLQUFLRCxPQUFPRCxRQUFRO0FBQzdCO0FBQ08sU0FBU1gsbUJBQW1CVSxDQUFTO0lBQzFDLE9BQU87UUFBQ00sT0FBT1AsU0FBU0MsR0FBRztRQUFLRCxTQUFTQyxHQUFHO1FBQUlELFNBQVNDLEdBQUc7UUFBSUQsU0FBU0MsR0FBRztLQUFHO0FBQ2pGO0FBRU8sTUFBTVosY0FBd0U7SUFDbkYsMkVBQTJFO0lBQzNFLEdBQUltQixTQUFTO0lBRWIsSUFBSUMsWUFBVztRQUNi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
149
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvY2hhbm5lbC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEJpZ1N0cmluZywgRGlzY29yZENoYW5uZWwsIERpc2NvcmRGb3J1bVRhZyB9IGZyb20gJ0BkaXNjb3JkZW5vL3R5cGVzJ1xuaW1wb3J0IHsgdHlwZSBDaGFubmVsLCBjYWxjdWxhdGVQZXJtaXNzaW9ucywgdHlwZSBGb3J1bVRhZywgdHlwZSBJbnRlcm5hbEJvdCwgaWNvbkhhc2hUb0JpZ0ludCB9IGZyb20gJy4uL2luZGV4LmpzJ1xuaW1wb3J0IHsgQ2hhbm5lbFRvZ2dsZXMgfSBmcm9tICcuL3RvZ2dsZXMvY2hhbm5lbC5qcydcbmltcG9ydCB7IFBlcm1pc3Npb25zIH0gZnJvbSAnLi90b2dnbGVzL1Blcm1pc3Npb25zLmpzJ1xuXG5jb25zdCBNYXNrID0gKDFuIDw8IDY0bikgLSAxblxuXG5leHBvcnQgZnVuY3Rpb24gcGFja092ZXJ3cml0ZXMoYWxsb3c6IHN0cmluZywgZGVueTogc3RyaW5nLCBpZDogc3RyaW5nLCB0eXBlOiBudW1iZXIpOiBiaWdpbnQge1xuICByZXR1cm4gcGFjazY0KGFsbG93LCAwKSB8IHBhY2s2NChkZW55LCAxKSB8IHBhY2s2NChpZCwgMikgfCBwYWNrNjQodHlwZSwgMylcbn1cbmZ1bmN0aW9uIHVucGFjazY0KHY6IGJpZ2ludCwgc2hpZnQ6IG51bWJlcik6IGJpZ2ludCB7XG4gIHJldHVybiAodiA+PiBCaWdJbnQoc2hpZnQgKiA2NCkpICYgTWFza1xufVxuZnVuY3Rpb24gcGFjazY0KHY6IHN0cmluZyB8IG51bWJlciwgc2hpZnQ6IG51bWJlcik6IGJpZ2ludCB7XG4gIGNvbnN0IGIgPSBCaWdJbnQodilcbiAgaWYgKGIgPCAwIHx8IGIgPiBNYXNrKSB0aHJvdyBuZXcgRXJyb3IoJ3Nob3VsZCBoYXZlIGJlZW4gYSA2NCBiaXQgdW5zaWduZWQgaW50ZWdlcjogJyArIHYudG9TdHJpbmcoKSlcbiAgcmV0dXJuIGIgPDwgQmlnSW50KHNoaWZ0ICogNjQpXG59XG5leHBvcnQgZnVuY3Rpb24gc2VwYXJhdGVPdmVyd3JpdGVzKHY6IGJpZ2ludCk6IFtudW1iZXIsIGJpZ2ludCwgYmlnaW50LCBiaWdpbnRdIHtcbiAgcmV0dXJuIFtOdW1iZXIodW5wYWNrNjQodiwgMykpLCB1bnBhY2s2NCh2LCAyKSwgdW5wYWNrNjQodiwgMCksIHVucGFjazY0KHYsIDEpXSBhcyBbbnVtYmVyLCBiaWdpbnQsIGJpZ2ludCwgYmlnaW50XVxufVxuXG5leHBvcnQgY29uc3QgYmFzZUNoYW5uZWw6IEludGVybmFsQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsnY2hhbm5lbCddID0ge1xuICAvLyBUaGlzIGFsbG93cyB0eXBlc2NyaXB0IHRvIHN0aWxsIGNoZWNrIGZvciB0eXBlIGVycm9ycyBvbiBmdW5jdGlvbnMgYmVsb3dcbiAgLi4uKHVuZGVmaW5lZCBhcyB1bmtub3duIGFzIEludGVybmFsQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsnY2hhbm5lbCddKSxcblxuICBnZXQgYXJjaGl2ZWQoKSB7XG4gICAgcmV0dXJuICEhdGhpcy50b2dnbGVzPy5hcmNoaXZlZFxuICB9LFxuICBnZXQgaW52aXRhYmxlKCkge1xuICAgIHJldHVybiAhIXRoaXMudG9nZ2xlcz8uaW52aXRhYmxlXG4gIH0sXG4gIGdldCBsb2NrZWQoKSB7XG4gICAgcmV0dXJuICEhdGhpcy50b2dnbGVzPy5sb2NrZWRcbiAgfSxcbiAgZ2V0IG5zZncoKSB7XG4gICAgcmV0dXJuICEhdGhpcy50b2dnbGVzPy5uc2Z3XG4gIH0sXG4gIGdldCBuZXdseUNyZWF0ZWQoKSB7XG4gICAgcmV0dXJuICEhdGhpcy50b2dnbGVzPy5uZXdseUNyZWF0ZWRcbiAgfSxcbiAgZ2V0IG1hbmFnZWQoKSB7XG4gICAgcmV0dXJuICEhdGhpcy50b2dnbGVzPy5tYW5hZ2VkXG4gIH0sXG4gIGdldCBwZXJtaXNzaW9uT3ZlcndyaXRlcygpIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5pbnRlcm5hbE92ZXJ3cml0ZXM/Lm1hcCgob3ZlcndyaXRlKSA9PiB7XG4gICAgICAgIGNvbnN0IFt0eXBlLCBpZCwgYWxsb3csIGRlbnldID0gc2VwYXJhdGVPdmVyd3JpdGVzKG92ZXJ3cml0ZSlcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICB0eXBlLFxuICAgICAgICAgIGlkLFxuICAgICAgICAgIGFsbG93OiBjYWxjdWxhdGVQZXJtaXNzaW9ucyhhbGxvdyksXG4gICAgICAgICAgZGVueTogY2FsY3VsYXRlUGVybWlzc2lvbnMoZGVueSksXG4gICAgICAgIH1cbiAgICAgIH0pID8/IFtdXG4gICAgKVxuICB9LFxuICBnZXQgdGhyZWFkTWV0YWRhdGEoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGFyY2hpdmVUaW1lc3RhbXA6IHRoaXMuaW50ZXJuYWxUaHJlYWRNZXRhZGF0YT8uYXJjaGl2ZVRpbWVzdGFtcCxcbiAgICAgIGNyZWF0ZVRpbWVzdGFtcDogdGhpcy5pbnRlcm5hbFRocmVhZE1ldGFkYXRhPy5jcmVhdGVUaW1lc3RhbXAsXG4gICAgICBhdXRvQXJjaGl2ZUR1cmF0aW9uOiB0aGlzLmludGVybmFsVGhyZWFkTWV0YWRhdGE/LmF1dG9BcmNoaXZlRHVyYXRpb24sXG4gICAgICBsb2NrZWQ6ICEhdGhpcy50b2dnbGVzPy5sb2NrZWQsXG4gICAgICBpbnZpdGFibGU6ICEhdGhpcy50b2dnbGVzPy5pbnZpdGFibGUsXG4gICAgICBhcmNoaXZlZDogISF0aGlzLnRvZ2dsZXM/LmFyY2hpdmVkLFxuICAgIH1cbiAgfSxcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybUNoYW5uZWwoXG4gIGJvdDogSW50ZXJuYWxCb3QsXG4gIHBheWxvYWQ6IHsgY2hhbm5lbDogRGlzY29yZENoYW5uZWw7IGd1aWxkSWQ/OiBCaWdTdHJpbmcgfSxcbik6IHR5cGVvZiBib3QudHJhbnNmb3JtZXJzLiRpbmZlcnJlZFR5cGVzLmNoYW5uZWwge1xuICBjb25zdCBjaGFubmVsID0gT2JqZWN0LmNyZWF0ZShiYXNlQ2hhbm5lbCkgYXMgQ2hhbm5lbFxuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuY2hhbm5lbFxuICBjaGFubmVsLnRvZ2dsZXMgPSBuZXcgQ2hhbm5lbFRvZ2dsZXMocGF5bG9hZC5jaGFubmVsKVxuXG4gIGlmIChwcm9wcy5pZCAmJiBwYXlsb2FkLmNoYW5uZWwuaWQpIGNoYW5uZWwuaWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmNoYW5uZWwuaWQpXG4gIGlmIChwcm9wcy5ndWlsZElkICYmIChwYXlsb2FkLmd1aWxkSWQgPz8gcGF5bG9hZC5jaGFubmVsLmd1aWxkX2lkKSlcbiAgICBjaGFubmVsLmd1aWxkSWQgPSBwYXlsb2FkLmd1aWxkSWQgPyBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmd1aWxkSWQpIDogYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5jaGFubmVsLmd1aWxkX2lkISlcbiAgaWYgKHByb3BzLnR5cGUpIGNoYW5uZWwudHlwZSA9IHBheWxvYWQuY2hhbm5lbC50eXBlXG4gIGlmIChwcm9wcy5wb3NpdGlvbikgY2hhbm5lbC5wb3NpdGlvbiA9IHBheWxvYWQuY2hhbm5lbC5wb3NpdGlvblxuICBpZiAocHJvcHMubmFtZSAmJiBwYXlsb2FkLmNoYW5uZWwubmFtZSkgY2hhbm5lbC5uYW1lID0gcGF5bG9hZC5jaGFubmVsLm5hbWVcbiAgaWYgKHByb3BzLnRvcGljICYmIHBheWxvYWQuY2hhbm5lbC50b3BpYykgY2hhbm5lbC50b3BpYyA9IHBheWxvYWQuY2hhbm5lbC50b3BpY1xuICBpZiAocHJvcHMubGFzdE1lc3NhZ2VJZCAmJiBwYXlsb2FkLmNoYW5uZWwubGFzdF9tZXNzYWdlX2lkKSBjaGFubmVsLmxhc3RNZXNzYWdlSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmNoYW5uZWwubGFzdF9tZXNzYWdlX2lkKVxuICBpZiAocHJvcHMuYml0cmF0ZSAmJiBwYXlsb2FkLmNoYW5uZWwuYml0cmF0ZSkgY2hhbm5lbC5iaXRyYXRlID0gcGF5bG9hZC5jaGFubmVsLmJpdHJhdGVcbiAgaWYgKHByb3BzLnVzZXJMaW1pdCkgY2hhbm5lbC51c2VyTGltaXQgPSBwYXlsb2FkLmNoYW5uZWwudXNlcl9saW1pdFxuICBpZiAocHJvcHMucmF0ZUxpbWl0UGVyVXNlcikgY2hhbm5lbC5yYXRlTGltaXRQZXJVc2VyID0gcGF5bG9hZC5jaGFubmVsLnJhdGVfbGltaXRfcGVyX3VzZXJcbiAgaWYgKHByb3BzLm93bmVySWQgJiYgcGF5bG9hZC5jaGFubmVsLm93bmVyX2lkKSBjaGFubmVsLm93bmVySWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmNoYW5uZWwub3duZXJfaWQpXG4gIGlmIChwcm9wcy5sYXN0UGluVGltZXN0YW1wICYmIHBheWxvYWQuY2hhbm5lbC5sYXN0X3Bpbl90aW1lc3RhbXApIGNoYW5uZWwubGFzdFBpblRpbWVzdGFtcCA9IERhdGUucGFyc2UocGF5bG9hZC5jaGFubmVsLmxhc3RfcGluX3RpbWVzdGFtcClcbiAgaWYgKHByb3BzLnJ0Y1JlZ2lvbiAmJiBwYXlsb2FkLmNoYW5uZWwucnRjX3JlZ2lvbikgY2hhbm5lbC5ydGNSZWdpb24gPSBwYXlsb2FkLmNoYW5uZWwucnRjX3JlZ2lvblxuICBpZiAocHJvcHMudmlkZW9RdWFsaXR5TW9kZSAmJiBwYXlsb2FkLmNoYW5uZWwudmlkZW9fcXVhbGl0eV9tb2RlKSBjaGFubmVsLnZpZGVvUXVhbGl0eU1vZGUgPSBwYXlsb2FkLmNoYW5uZWwudmlkZW9fcXVhbGl0eV9tb2RlXG4gIGlmIChwcm9wcy5tZXNzYWdlQ291bnQpIGNoYW5uZWwubWVzc2FnZUNvdW50ID0gcGF5bG9hZC5jaGFubmVsLm1lc3NhZ2VfY291bnRcbiAgaWYgKHByb3BzLm1lbWJlckNvdW50KSBjaGFubmVsLm1lbWJlckNvdW50ID0gcGF5bG9hZC5jaGFubmVsLm1lbWJlcl9jb3VudFxuICBpZiAocHJvcHMudGhyZWFkTWV0YWRhdGEpIHtcbiAgICBjaGFubmVsLmludGVybmFsVGhyZWFkTWV0YWRhdGEgPSB7fSBhcyBOb25OdWxsYWJsZTxDaGFubmVsWydpbnRlcm5hbFRocmVhZE1ldGFkYXRhJ10+XG4gICAgaWYgKHBheWxvYWQuY2hhbm5lbC50aHJlYWRfbWV0YWRhdGE/LmFyY2hpdmVfdGltZXN0YW1wKVxuICAgICAgY2hhbm5lbC5pbnRlcm5hbFRocmVhZE1ldGFkYXRhLmFyY2hpdmVUaW1lc3RhbXAgPSBEYXRlLnBhcnNlKHBheWxvYWQuY2hhbm5lbC50aHJlYWRfbWV0YWRhdGEuYXJjaGl2ZV90aW1lc3RhbXApXG4gICAgaWYgKHBheWxvYWQuY2hhbm5lbC50aHJlYWRfbWV0YWRhdGE/LmNyZWF0ZV90aW1lc3RhbXApXG4gICAgICBjaGFubmVsLmludGVybmFsVGhyZWFkTWV0YWRhdGEuY3JlYXRlVGltZXN0YW1wID0gRGF0ZS5wYXJzZShwYXlsb2FkLmNoYW5uZWwudGhyZWFkX21ldGFkYXRhLmNyZWF0ZV90aW1lc3RhbXApXG4gICAgaWYgKHBheWxvYWQuY2hhbm5lbC50aHJlYWRfbWV0YWRhdGE/LmF1dG9fYXJjaGl2ZV9kdXJhdGlvbilcbiAgICAgIGNoYW5uZWwuaW50ZXJuYWxUaHJlYWRNZXRhZGF0YS5hdXRvQXJjaGl2ZUR1cmF0aW9uID0gcGF5bG9hZC5jaGFubmVsLnRocmVhZF9tZXRhZGF0YS5hdXRvX2FyY2hpdmVfZHVyYXRpb25cbiAgfVxuICBpZiAocHJvcHMuZGVmYXVsdEF1dG9BcmNoaXZlRHVyYXRpb24gJiYgcGF5bG9hZC5jaGFubmVsLmRlZmF1bHRfYXV0b19hcmNoaXZlX2R1cmF0aW9uKVxuICAgIGNoYW5uZWwuZGVmYXVsdEF1dG9BcmNoaXZlRHVyYXRpb24gPSBwYXlsb2FkLmNoYW5uZWwuZGVmYXVsdF9hdXRvX2FyY2hpdmVfZHVyYXRpb25cbiAgaWYgKHByb3BzLnBlcm1pc3Npb25zICYmIHBheWxvYWQuY2hhbm5lbC5wZXJtaXNzaW9ucykgY2hhbm5lbC5wZXJtaXNzaW9ucyA9IG5ldyBQZXJtaXNzaW9ucyhwYXlsb2FkLmNoYW5uZWwucGVybWlzc2lvbnMpXG4gIGlmIChwcm9wcy5mbGFncykgY2hhbm5lbC5mbGFncyA9IHBheWxvYWQuY2hhbm5lbC5mbGFnc1xuICBpZiAocHJvcHMucGVybWlzc2lvbk92ZXJ3cml0ZXMgJiYgcGF5bG9hZC5jaGFubmVsLnBlcm1pc3Npb25fb3ZlcndyaXRlcylcbiAgICBjaGFubmVsLmludGVybmFsT3ZlcndyaXRlcyA9IHBheWxvYWQuY2hhbm5lbC5wZXJtaXNzaW9uX292ZXJ3cml0ZXMubWFwKChvKSA9PiBwYWNrT3ZlcndyaXRlcyhvLmFsbG93ID8/ICcwJywgby5kZW55ID8/ICcwJywgby5pZCwgby50eXBlKSlcbiAgaWYgKHByb3BzLnBhcmVudElkICYmIHBheWxvYWQuY2hhbm5lbC5wYXJlbnRfaWQpIGNoYW5uZWwucGFyZW50SWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmNoYW5uZWwucGFyZW50X2lkKVxuICBpZiAocHJvcHMucmVjaXBpZW50cyAmJiBwYXlsb2FkLmNoYW5uZWwucmVjaXBpZW50cykgY2hhbm5lbC5yZWNpcGllbnRzID0gcGF5bG9hZC5jaGFubmVsLnJlY2lwaWVudHMubWFwKCh1KSA9PiBib3QudHJhbnNmb3JtZXJzLnVzZXIoYm90LCB1KSlcbiAgaWYgKHByb3BzLmljb24gJiYgcGF5bG9hZC5jaGFubmVsLmljb24pIGNoYW5uZWwuaWNvbiA9IGljb25IYXNoVG9CaWdJbnQocGF5bG9hZC5jaGFubmVsLmljb24pXG4gIGlmIChwcm9wcy5hcHBsaWNhdGlvbklkICYmIHBheWxvYWQuY2hhbm5lbC5hcHBsaWNhdGlvbl9pZCkgY2hhbm5lbC5hcHBsaWNhdGlvbklkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5jaGFubmVsLmFwcGxpY2F0aW9uX2lkKVxuICBpZiAocHJvcHMubWVtYmVyICYmIHBheWxvYWQuY2hhbm5lbC5tZW1iZXIpIGNoYW5uZWwubWVtYmVyID0gYm90LnRyYW5zZm9ybWVycy50aHJlYWRNZW1iZXIoYm90LCBwYXlsb2FkLmNoYW5uZWwubWVtYmVyKVxuICBpZiAocHJvcHMudG90YWxNZXNzYWdlU2VudCAmJiBwYXlsb2FkLmNoYW5uZWwudG90YWxfbWVzc2FnZV9zZW50ICE9PSB1bmRlZmluZWQpIGNoYW5uZWwudG90YWxNZXNzYWdlU2VudCA9IHBheWxvYWQuY2hhbm5lbC50b3RhbF9tZXNzYWdlX3NlbnRcbiAgaWYgKHByb3BzLmF2YWlsYWJsZVRhZ3MgJiYgcGF5bG9hZC5jaGFubmVsLmF2YWlsYWJsZV90YWdzKVxuICAgIGNoYW5uZWwuYXZhaWxhYmxlVGFncyA9IHBheWxvYWQuY2hhbm5lbC5hdmFpbGFibGVfdGFncy5tYXAoKHgpID0+IGJvdC50cmFuc2Zvcm1lcnMuZm9ydW1UYWcoYm90LCB4KSlcbiAgaWYgKHByb3BzLmFwcGxpZWRUYWdzICYmIHBheWxvYWQuY2hhbm5lbC5hcHBsaWVkX3RhZ3MpIGNoYW5uZWwuYXBwbGllZFRhZ3MgPSBwYXlsb2FkLmNoYW5uZWwuYXBwbGllZF90YWdzLm1hcCgoeCkgPT4gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UoeCkpXG4gIGlmIChwcm9wcy5kZWZhdWx0UmVhY3Rpb25FbW9qaSAmJiBwYXlsb2FkLmNoYW5uZWwuZGVmYXVsdF9yZWFjdGlvbl9lbW9qaSlcbiAgICBjaGFubmVsLmRlZmF1bHRSZWFjdGlvbkVtb2ppID0gYm90LnRyYW5zZm9ybWVycy5kZWZhdWx0UmVhY3Rpb25FbW9qaShib3QsIHBheWxvYWQuY2hhbm5lbC5kZWZhdWx0X3JlYWN0aW9uX2Vtb2ppKVxuICBpZiAocHJvcHMuZGVmYXVsdFRocmVhZFJhdGVMaW1pdFBlclVzZXIgJiYgcGF5bG9hZC5jaGFubmVsLmRlZmF1bHRfdGhyZWFkX3JhdGVfbGltaXRfcGVyX3VzZXIpXG4gICAgY2hhbm5lbC5kZWZhdWx0VGhyZWFkUmF0ZUxpbWl0UGVyVXNlciA9IHBheWxvYWQuY2hhbm5lbC5kZWZhdWx0X3RocmVhZF9yYXRlX2xpbWl0X3Blcl91c2VyXG4gIGlmIChwcm9wcy5kZWZhdWx0U29ydE9yZGVyICYmIHBheWxvYWQuY2hhbm5lbC5kZWZhdWx0X3NvcnRfb3JkZXIgIT09IHVuZGVmaW5lZCkgY2hhbm5lbC5kZWZhdWx0U29ydE9yZGVyID0gcGF5bG9hZC5jaGFubmVsLmRlZmF1bHRfc29ydF9vcmRlclxuICBpZiAocHJvcHMuZGVmYXVsdEZvcnVtTGF5b3V0ICYmIHBheWxvYWQuY2hhbm5lbC5kZWZhdWx0X2ZvcnVtX2xheW91dCAhPT0gdW5kZWZpbmVkKVxuICAgIGNoYW5uZWwuZGVmYXVsdEZvcnVtTGF5b3V0ID0gcGF5bG9hZC5jaGFubmVsLmRlZmF1bHRfZm9ydW1fbGF5b3V0XG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMuY2hhbm5lbChib3QsIHBheWxvYWQuY2hhbm5lbCwgY2hhbm5lbClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybUZvcnVtVGFnKGJvdDogSW50ZXJuYWxCb3QsIHBheWxvYWQ6IERpc2NvcmRGb3J1bVRhZyk6IHR5cGVvZiBib3QudHJhbnNmb3JtZXJzLiRpbmZlcnJlZFR5cGVzLmZvcnVtVGFnIHtcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLmZvcnVtVGFnXG4gIGNvbnN0IGZvcnVtVGFnID0ge30gYXMgRm9ydW1UYWdcblxuICBpZiAocHJvcHMuaWQgJiYgcGF5bG9hZC5pZCkgZm9ydW1UYWcuaWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmlkKVxuICBpZiAocHJvcHMubmFtZSAmJiBwYXlsb2FkLm5hbWUpIGZvcnVtVGFnLm5hbWUgPSBwYXlsb2FkLm5hbWVcbiAgaWYgKHByb3BzLm1vZGVyYXRlZCAmJiBwYXlsb2FkLm1vZGVyYXRlZCkgZm9ydW1UYWcubW9kZXJhdGVkID0gcGF5bG9hZC5tb2RlcmF0ZWRcbiAgaWYgKHByb3BzLmVtb2ppSWQgJiYgcGF5bG9hZC5lbW9qaV9pZCkgZm9ydW1UYWcuZW1vamlJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuZW1vamlfaWQpXG4gIGlmIChwcm9wcy5lbW9qaU5hbWUgJiYgcGF5bG9hZC5lbW9qaV9uYW1lKSBmb3J1bVRhZy5lbW9qaU5hbWUgPSBwYXlsb2FkLmVtb2ppX25hbWVcblxuICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jdXN0b21pemVycy5mb3J1bVRhZyhib3QsIHBheWxvYWQsIGZvcnVtVGFnKVxufVxuIl0sIm5hbWVzIjpbImJhc2VDaGFubmVsIiwicGFja092ZXJ3cml0ZXMiLCJzZXBhcmF0ZU92ZXJ3cml0ZXMiLCJ0cmFuc2Zvcm1DaGFubmVsIiwidHJhbnNmb3JtRm9ydW1UYWciLCJNYXNrIiwiYWxsb3ciLCJkZW55IiwiaWQiLCJ0eXBlIiwicGFjazY0IiwidW5wYWNrNjQiLCJ2Iiwic2hpZnQiLCJCaWdJbnQiLCJiIiwiRXJyb3IiLCJ0b1N0cmluZyIsIk51bWJlciIsInVuZGVmaW5lZCIsImFyY2hpdmVkIiwidG9nZ2xlcyIsImludml0YWJsZSIsImxvY2tlZCIsIm5zZnciLCJuZXdseUNyZWF0ZWQiLCJtYW5hZ2VkIiwicGVybWlzc2lvbk92ZXJ3cml0ZXMiLCJpbnRlcm5hbE92ZXJ3cml0ZXMiLCJtYXAiLCJvdmVyd3JpdGUiLCJjYWxjdWxhdGVQZXJtaXNzaW9ucyIsInRocmVhZE1ldGFkYXRhIiwiYXJjaGl2ZVRpbWVzdGFtcCIsImludGVybmFsVGhyZWFkTWV0YWRhdGEiLCJjcmVhdGVUaW1lc3RhbXAiLCJhdXRvQXJjaGl2ZUR1cmF0aW9uIiwiYm90IiwicGF5bG9hZCIsImNoYW5uZWwiLCJPYmplY3QiLCJjcmVhdGUiLCJwcm9wcyIsInRyYW5zZm9ybWVycyIsImRlc2lyZWRQcm9wZXJ0aWVzIiwiQ2hhbm5lbFRvZ2dsZXMiLCJzbm93Zmxha2UiLCJndWlsZElkIiwiZ3VpbGRfaWQiLCJwb3NpdGlvbiIsIm5hbWUiLCJ0b3BpYyIsImxhc3RNZXNzYWdlSWQiLCJsYXN0X21lc3NhZ2VfaWQiLCJiaXRyYXRlIiwidXNlckxpbWl0IiwidXNlcl9saW1pdCIsInJhdGVMaW1pdFBlclVzZXIiLCJyYXRlX2xpbWl0X3Blcl91c2VyIiwib3duZXJJZCIsIm93bmVyX2lkIiwibGFzdFBpblRpbWVzdGFtcCIsImxhc3RfcGluX3RpbWVzdGFtcCIsIkRhdGUiLCJwYXJzZSIsInJ0Y1JlZ2lvbiIsInJ0Y19yZWdpb24iLCJ2aWRlb1F1YWxpdHlNb2RlIiwidmlkZW9fcXVhbGl0eV9tb2RlIiwibWVzc2FnZUNvdW50IiwibWVzc2FnZV9jb3VudCIsIm1lbWJlckNvdW50IiwibWVtYmVyX2NvdW50IiwidGhyZWFkX21ldGFkYXRhIiwiYXJjaGl2ZV90aW1lc3RhbXAiLCJjcmVhdGVfdGltZXN0YW1wIiwiYXV0b19hcmNoaXZlX2R1cmF0aW9uIiwiZGVmYXVsdEF1dG9BcmNoaXZlRHVyYXRpb24iLCJkZWZhdWx0X2F1dG9fYXJjaGl2ZV9kdXJhdGlvbiIsInBlcm1pc3Npb25zIiwiUGVybWlzc2lvbnMiLCJmbGFncyIsInBlcm1pc3Npb25fb3ZlcndyaXRlcyIsIm8iLCJwYXJlbnRJZCIsInBhcmVudF9pZCIsInJlY2lwaWVudHMiLCJ1IiwidXNlciIsImljb24iLCJpY29uSGFzaFRvQmlnSW50IiwiYXBwbGljYXRpb25JZCIsImFwcGxpY2F0aW9uX2lkIiwibWVtYmVyIiwidGhyZWFkTWVtYmVyIiwidG90YWxNZXNzYWdlU2VudCIsInRvdGFsX21lc3NhZ2Vfc2VudCIsImF2YWlsYWJsZVRhZ3MiLCJhdmFpbGFibGVfdGFncyIsIngiLCJmb3J1bVRhZyIsImFwcGxpZWRUYWdzIiwiYXBwbGllZF90YWdzIiwiZGVmYXVsdFJlYWN0aW9uRW1vamkiLCJkZWZhdWx0X3JlYWN0aW9uX2Vtb2ppIiwiZGVmYXVsdFRocmVhZFJhdGVMaW1pdFBlclVzZXIiLCJkZWZhdWx0X3RocmVhZF9yYXRlX2xpbWl0X3Blcl91c2VyIiwiZGVmYXVsdFNvcnRPcmRlciIsImRlZmF1bHRfc29ydF9vcmRlciIsImRlZmF1bHRGb3J1bUxheW91dCIsImRlZmF1bHRfZm9ydW1fbGF5b3V0IiwiY3VzdG9taXplcnMiLCJtb2RlcmF0ZWQiLCJlbW9qaUlkIiwiZW1vamlfaWQiLCJlbW9qaU5hbWUiLCJlbW9qaV9uYW1lIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztRQXNCYUE7ZUFBQUE7O1FBZkdDO2VBQUFBOztRQVdBQztlQUFBQTs7UUFtREFDO2VBQUFBOztRQTREQUM7ZUFBQUE7Ozt1QkFoSXNGO3lCQUN2RTs2QkFDSDtBQUU1QixNQUFNQyxPQUFPLEFBQUMsQ0FBQSxFQUFFLElBQUksR0FBRyxBQUFELElBQUssRUFBRTtBQUV0QixTQUFTSixlQUFlSyxLQUFhLEVBQUVDLElBQVksRUFBRUMsRUFBVSxFQUFFQyxJQUFZO0lBQ2xGLE9BQU9DLE9BQU9KLE9BQU8sS0FBS0ksT0FBT0gsTUFBTSxLQUFLRyxPQUFPRixJQUFJLEtBQUtFLE9BQU9ELE1BQU07QUFDM0U7QUFDQSxTQUFTRSxTQUFTQyxDQUFTLEVBQUVDLEtBQWE7SUFDeEMsT0FBTyxBQUFDRCxLQUFLRSxPQUFPRCxRQUFRLE1BQU9SO0FBQ3JDO0FBQ0EsU0FBU0ssT0FBT0UsQ0FBa0IsRUFBRUMsS0FBYTtJQUMvQyxNQUFNRSxJQUFJRCxPQUFPRjtJQUNqQixJQUFJRyxJQUFJLEtBQUtBLElBQUlWLE1BQU0sTUFBTSxJQUFJVyxNQUFNLGlEQUFpREosRUFBRUssUUFBUTtJQUNsRyxPQUFPRixLQUFLRCxPQUFPRCxRQUFRO0FBQzdCO0FBQ08sU0FBU1gsbUJBQW1CVSxDQUFTO0lBQzFDLE9BQU87UUFBQ00sT0FBT1AsU0FBU0MsR0FBRztRQUFLRCxTQUFTQyxHQUFHO1FBQUlELFNBQVNDLEdBQUc7UUFBSUQsU0FBU0MsR0FBRztLQUFHO0FBQ2pGO0FBRU8sTUFBTVosY0FBd0U7SUFDbkYsMkVBQTJFO0lBQzNFLEdBQUltQixTQUFTO0lBRWIsSUFBSUMsWUFBVztRQUNi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
@@ -53,13 +53,14 @@ const baseInteraction = {
53
53
  if (this.acknowledged) return await this.bot.helpers.sendFollowupMessage(this.token, response);
54
54
  // Modals cannot be chained
55
55
  if (this.type === _types.InteractionTypes.ModalSubmit && type === _types.InteractionResponseTypes.Modal) throw new Error('Cannot respond to a modal interaction with another modal.');
56
- this.acknowledged = true;
57
- return await this.bot.helpers.sendInteractionResponse(this.id, this.token, {
56
+ const result = await this.bot.helpers.sendInteractionResponse(this.id, this.token, {
58
57
  type,
59
58
  data: response
60
59
  }, {
61
60
  withResponse: options?.withResponse
62
61
  });
62
+ this.acknowledged = true;
63
+ return result;
63
64
  },
64
65
  async edit (response, messageId, options) {
65
66
  if (this.type === _types.InteractionTypes.ApplicationCommandAutocomplete) throw new Error('Cannot edit an autocomplete interaction.');
@@ -72,11 +73,12 @@ const baseInteraction = {
72
73
  }
73
74
  if (!this.acknowledged) {
74
75
  if (this.type !== _types.InteractionTypes.MessageComponent && this.type !== _types.InteractionTypes.ModalSubmit) throw new Error("This interaction has not been responded to yet and this isn't a MessageComponent or ModalSubmit interaction.");
75
- this.acknowledged = true;
76
- return await this.bot.helpers.sendInteractionResponse(this.id, this.token, {
76
+ const result = await this.bot.helpers.sendInteractionResponse(this.id, this.token, {
77
77
  type: _types.InteractionResponseTypes.UpdateMessage,
78
78
  data: response
79
79
  }, options);
80
+ this.acknowledged = true;
81
+ return result;
80
82
  }
81
83
  return await this.bot.helpers.editOriginalInteractionResponse(this.token, response);
82
84
  },
@@ -84,20 +86,22 @@ const baseInteraction = {
84
86
  if (this.type === _types.InteractionTypes.ApplicationCommandAutocomplete) throw new Error('Cannot edit an autocomplete interaction.');
85
87
  if (this.acknowledged) throw new Error('Cannot defer an already responded interaction.');
86
88
  if (this.type !== _types.InteractionTypes.MessageComponent && this.type !== _types.InteractionTypes.ModalSubmit) throw new Error("Cannot defer to then edit an interaction that isn't a MessageComponent or ModalSubmit interaction.");
87
- this.acknowledged = true;
88
- return await this.bot.helpers.sendInteractionResponse(this.id, this.token, {
89
+ const result = await this.bot.helpers.sendInteractionResponse(this.id, this.token, {
89
90
  type: _types.InteractionResponseTypes.DeferredUpdateMessage
90
91
  }, options);
92
+ this.acknowledged = true;
93
+ return result;
91
94
  },
92
95
  async defer (isPrivate, options) {
93
96
  if (this.acknowledged) throw new Error('Cannot defer an already responded interaction.');
94
- this.acknowledged = true;
95
- return await this.bot.helpers.sendInteractionResponse(this.id, this.token, {
97
+ const result = await this.bot.helpers.sendInteractionResponse(this.id, this.token, {
96
98
  type: _types.InteractionResponseTypes.DeferredChannelMessageWithSource,
97
99
  data: {
98
100
  flags: isPrivate ? _types.MessageFlags.Ephemeral : undefined
99
101
  }
100
102
  }, options);
103
+ this.acknowledged = true;
104
+ return result;
101
105
  },
102
106
  async delete (messageId) {
103
107
  if (this.type === _types.InteractionTypes.ApplicationCommandAutocomplete) throw new Error('Cannot delete an autocomplete interaction');
@@ -276,4 +280,4 @@ function transformInteractionResource(bot, payload) {
276
280
  return bot.transformers.customizers.interactionResource(bot, payload.interactionResource, resource);
277
281
  }
278
282
 
279
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvaW50ZXJhY3Rpb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRGlzY29yZEFwcGxpY2F0aW9uSW50ZWdyYXRpb25UeXBlLFxuICB0eXBlIERpc2NvcmRJbnRlcmFjdGlvbixcbiAgdHlwZSBEaXNjb3JkSW50ZXJhY3Rpb25DYWxsYmFjayxcbiAgdHlwZSBEaXNjb3JkSW50ZXJhY3Rpb25DYWxsYmFja1Jlc3BvbnNlLFxuICB0eXBlIERpc2NvcmRJbnRlcmFjdGlvbkRhdGFPcHRpb24sXG4gIHR5cGUgRGlzY29yZEludGVyYWN0aW9uRGF0YVJlc29sdmVkLFxuICB0eXBlIERpc2NvcmRJbnRlcmFjdGlvblJlc291cmNlLFxuICBJbnRlcmFjdGlvblJlc3BvbnNlVHlwZXMsXG4gIEludGVyYWN0aW9uVHlwZXMsXG4gIE1lc3NhZ2VGbGFncyxcbn0gZnJvbSAnQGRpc2NvcmRlbm8vdHlwZXMnXG5pbXBvcnQgeyBDb2xsZWN0aW9uIH0gZnJvbSAnQGRpc2NvcmRlbm8vdXRpbHMnXG5pbXBvcnQgdHlwZSB7XG4gIEJvdCxcbiAgRGlzY29yZENoYW5uZWwsXG4gIEludGVyYWN0aW9uLFxuICBJbnRlcmFjdGlvbkNhbGxiYWNrLFxuICBJbnRlcmFjdGlvbkNhbGxiYWNrUmVzcG9uc2UsXG4gIEludGVyYWN0aW9uRGF0YU9wdGlvbixcbiAgSW50ZXJhY3Rpb25EYXRhUmVzb2x2ZWQsXG4gIEludGVyYWN0aW9uUmVzb2x2ZWRDaGFubmVsLFxuICBJbnRlcmFjdGlvblJlc291cmNlLFxuICBJbnRlcm5hbEJvdCxcbiAgTWVtYmVyLFxuICBNZXNzYWdlLFxufSBmcm9tICcuLi9pbmRleC5qcydcblxuZXhwb3J0IGNvbnN0IGJhc2VJbnRlcmFjdGlvbjogSW50ZXJuYWxCb3RbJ3RyYW5zZm9ybWVycyddWyckaW5mZXJyZWRUeXBlcyddWydpbnRlcmFjdGlvbiddID0ge1xuICAvLyBUaGlzIGFsbG93cyB0eXBlc2NyaXB0IHRvIHN0aWxsIGNoZWNrIGZvciB0eXBlIGVycm9ycyBvbiBmdW5jdGlvbnMgYmVsb3dcbiAgLi4uKHVuZGVmaW5lZCBhcyB1bmtub3duIGFzIEludGVybmFsQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsnaW50ZXJhY3Rpb24nXSksXG5cbiAgYXN5bmMgcmVzcG9uZChyZXNwb25zZSwgb3B0aW9ucykge1xuICAgIGxldCB0eXBlID0gSW50ZXJhY3Rpb25SZXNwb25zZVR5cGVzLkNoYW5uZWxNZXNzYWdlV2l0aFNvdXJjZVxuXG4gICAgLy8gSWYgdXNlciBwcm92aWRlcyBhIHN0cmluZywgY2hhbmdlIGl0IHRvIGEgcmVzcG9uc2Ugb2JqZWN0XG4gICAgaWYgKHR5cGVvZiByZXNwb25zZSA9PT0gJ3N0cmluZycpIHJlc3BvbnNlID0geyBjb250ZW50OiByZXNwb25zZSB9XG5cbiAgICAvLyBJZiB1c2VyIHByb3ZpZGVzIGFuIG9iamVjdCwgZGV0ZXJtaW5lIGlmIGl0IHNob3VsZCBiZSBhbiBhdXRvY29tcGxldGUgb3IgYSBtb2RhbCByZXNwb25zZVxuICAgIGlmIChyZXNwb25zZS50aXRsZSkgdHlwZSA9IEludGVyYWN0aW9uUmVzcG9uc2VUeXBlcy5Nb2RhbFxuICAgIGlmICh0aGlzLnR5cGUgPT09IEludGVyYWN0aW9uVHlwZXMuQXBwbGljYXRpb25Db21tYW5kQXV0b2NvbXBsZXRlKSB0eXBlID0gSW50ZXJhY3Rpb25SZXNwb25zZVR5cGVzLkFwcGxpY2F0aW9uQ29tbWFuZEF1dG9jb21wbGV0ZVJlc3VsdFxuICAgIGlmICh0eXBlID09PSBJbnRlcmFjdGlvblJlc3BvbnNlVHlwZXMuQ2hhbm5lbE1lc3NhZ2VXaXRoU291cmNlICYmIG9wdGlvbnM/LmlzUHJpdmF0ZSkge1xuICAgICAgcmVzcG9uc2UuZmxhZ3MgPz89IDBcbiAgICAgIHJlc3BvbnNlLmZsYWdzIHw9IE1lc3NhZ2VGbGFncy5FcGhlbWVyYWxcbiAgICB9XG5cbiAgICAvLyBTaW5jZSB0aGlzIGhhcyBhbHJlYWR5IGJlZW4gZ2l2ZW4gYSByZXNwb25zZSwgYW55IGZ1cnRoZXIgcmVzcG9uc2VzIG11c3QgYmUgZm9sbG93dXBzLlxuICAgIGlmICh0aGlzLmFja25vd2xlZGdlZCkgcmV0dXJuIGF3YWl0IHRoaXMuYm90LmhlbHBlcnMuc2VuZEZvbGxvd3VwTWVzc2FnZSh0aGlzLnRva2VuLCByZXNwb25zZSlcblxuICAgIC8vIE1vZGFscyBjYW5ub3QgYmUgY2hhaW5lZFxuICAgIGlmICh0aGlzLnR5cGUgPT09IEludGVyYWN0aW9uVHlwZXMuTW9kYWxTdWJtaXQgJiYgdHlwZSA9PT0gSW50ZXJhY3Rpb25SZXNwb25zZVR5cGVzLk1vZGFsKVxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgcmVzcG9uZCB0byBhIG1vZGFsIGludGVyYWN0aW9uIHdpdGggYW5vdGhlciBtb2RhbC4nKVxuXG4gICAgdGhpcy5hY2tub3dsZWRnZWQgPSB0cnVlXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuYm90LmhlbHBlcnMuc2VuZEludGVyYWN0aW9uUmVzcG9uc2UodGhpcy5pZCwgdGhpcy50b2tlbiwgeyB0eXBlLCBkYXRhOiByZXNwb25zZSB9LCB7IHdpdGhSZXNwb25zZTogb3B0aW9ucz8ud2l0aFJlc3BvbnNlIH0pXG4gIH0sXG4gIGFzeW5jIGVkaXQocmVzcG9uc2UsIG1lc3NhZ2VJZCwgb3B0aW9ucykge1xuICAgIGlmICh0aGlzLnR5cGUgPT09IEludGVyYWN0aW9uVHlwZXMuQXBwbGljYXRpb25Db21tYW5kQXV0b2NvbXBsZXRlKSB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBlZGl0IGFuIGF1dG9jb21wbGV0ZSBpbnRlcmFjdGlvbi4nKVxuXG4gICAgLy8gSWYgdXNlciBwcm92aWRlcyBhIHN0cmluZywgY2hhbmdlIGl0IHRvIGEgcmVzcG9uc2Ugb2JqZWN0XG4gICAgaWYgKHR5cGVvZiByZXNwb25zZSA9PT0gJ3N0cmluZycpIHJlc3BvbnNlID0geyBjb250ZW50OiByZXNwb25zZSB9XG5cbiAgICBpZiAobWVzc2FnZUlkKSB7XG4gICAgICByZXR1cm4gYXdhaXQgdGhpcy5ib3Q/LmhlbHBlcnMuZWRpdEZvbGxvd3VwTWVzc2FnZSh0aGlzLnRva2VuLCBtZXNzYWdlSWQsIHJlc3BvbnNlKVxuICAgIH1cblxuICAgIGlmICghdGhpcy5hY2tub3dsZWRnZWQpIHtcbiAgICAgIGlmICh0aGlzLnR5cGUgIT09IEludGVyYWN0aW9uVHlwZXMuTWVzc2FnZUNvbXBvbmVudCAmJiB0aGlzLnR5cGUgIT09IEludGVyYWN0aW9uVHlwZXMuTW9kYWxTdWJtaXQpXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIlRoaXMgaW50ZXJhY3Rpb24gaGFzIG5vdCBiZWVuIHJlc3BvbmRlZCB0byB5ZXQgYW5kIHRoaXMgaXNuJ3QgYSBNZXNzYWdlQ29tcG9uZW50IG9yIE1vZGFsU3VibWl0IGludGVyYWN0aW9uLlwiKVxuXG4gICAgICB0aGlzLmFja25vd2xlZGdlZCA9IHRydWVcbiAgICAgIHJldHVybiBhd2FpdCB0aGlzLmJvdC5oZWxwZXJzLnNlbmRJbnRlcmFjdGlvblJlc3BvbnNlKFxuICAgICAgICB0aGlzLmlkLFxuICAgICAgICB0aGlzLnRva2VuLFxuICAgICAgICB7IHR5cGU6IEludGVyYWN0aW9uUmVzcG9uc2VUeXBlcy5VcGRhdGVNZXNzYWdlLCBkYXRhOiByZXNwb25zZSB9LFxuICAgICAgICBvcHRpb25zLFxuICAgICAgKVxuICAgIH1cblxuICAgIHJldHVybiBhd2FpdCB0aGlzLmJvdC5oZWxwZXJzLmVkaXRPcmlnaW5hbEludGVyYWN0aW9uUmVzcG9uc2UodGhpcy50b2tlbiwgcmVzcG9uc2UpXG4gIH0sXG4gIGFzeW5jIGRlZmVyRWRpdChvcHRpb25zKSB7XG4gICAgaWYgKHRoaXMudHlwZSA9PT0gSW50ZXJhY3Rpb25UeXBlcy5BcHBsaWNhdGlvbkNvbW1hbmRBdXRvY29tcGxldGUpIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGVkaXQgYW4gYXV0b2NvbXBsZXRlIGludGVyYWN0aW9uLicpXG4gICAgaWYgKHRoaXMuYWNrbm93bGVkZ2VkKSB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBkZWZlciBhbiBhbHJlYWR5IHJlc3BvbmRlZCBpbnRlcmFjdGlvbi4nKVxuXG4gICAgaWYgKHRoaXMudHlwZSAhPT0gSW50ZXJhY3Rpb25UeXBlcy5NZXNzYWdlQ29tcG9uZW50ICYmIHRoaXMudHlwZSAhPT0gSW50ZXJhY3Rpb25UeXBlcy5Nb2RhbFN1Ym1pdClcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIkNhbm5vdCBkZWZlciB0byB0aGVuIGVkaXQgYW4gaW50ZXJhY3Rpb24gdGhhdCBpc24ndCBhIE1lc3NhZ2VDb21wb25lbnQgb3IgTW9kYWxTdWJtaXQgaW50ZXJhY3Rpb24uXCIpXG5cbiAgICB0aGlzLmFja25vd2xlZGdlZCA9IHRydWVcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5ib3QuaGVscGVycy5zZW5kSW50ZXJhY3Rpb25SZXNwb25zZSh0aGlzLmlkLCB0aGlzLnRva2VuLCB7IHR5cGU6IEludGVyYWN0aW9uUmVzcG9uc2VUeXBlcy5EZWZlcnJlZFVwZGF0ZU1lc3NhZ2UgfSwgb3B0aW9ucylcbiAgfSxcbiAgYXN5bmMgZGVmZXIoaXNQcml2YXRlLCBvcHRpb25zKSB7XG4gICAgaWYgKHRoaXMuYWNrbm93bGVkZ2VkKSB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBkZWZlciBhbiBhbHJlYWR5IHJlc3BvbmRlZCBpbnRlcmFjdGlvbi4nKVxuXG4gICAgdGhpcy5hY2tub3dsZWRnZWQgPSB0cnVlXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuYm90LmhlbHBlcnMuc2VuZEludGVyYWN0aW9uUmVzcG9uc2UoXG4gICAgICB0aGlzLmlkLFxuICAgICAgdGhpcy50b2tlbixcbiAgICAgIHtcbiAgICAgICAgdHlwZTogSW50ZXJhY3Rpb25SZXNwb25zZVR5cGVzLkRlZmVycmVkQ2hhbm5lbE1lc3NhZ2VXaXRoU291cmNlLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgZmxhZ3M6IGlzUHJpdmF0ZSA/IE1lc3NhZ2VGbGFncy5FcGhlbWVyYWwgOiB1bmRlZmluZWQsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgb3B0aW9ucyxcbiAgICApXG4gIH0sXG4gIGFzeW5jIGRlbGV0ZShtZXNzYWdlSWQpIHtcbiAgICBpZiAodGhpcy50eXBlID09PSBJbnRlcmFjdGlvblR5cGVzLkFwcGxpY2F0aW9uQ29tbWFuZEF1dG9jb21wbGV0ZSkgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgZGVsZXRlIGFuIGF1dG9jb21wbGV0ZSBpbnRlcmFjdGlvbicpXG5cbiAgICBpZiAobWVzc2FnZUlkKSByZXR1cm4gYXdhaXQgdGhpcy5ib3Q/LmhlbHBlcnMuZGVsZXRlRm9sbG93dXBNZXNzYWdlKHRoaXMudG9rZW4sIG1lc3NhZ2VJZClcbiAgICBlbHNlIHJldHVybiBhd2FpdCB0aGlzLmJvdD8uaGVscGVycy5kZWxldGVPcmlnaW5hbEludGVyYWN0aW9uUmVzcG9uc2UodGhpcy50b2tlbilcbiAgfSxcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybUludGVyYWN0aW9uKFxuICBib3Q6IEludGVybmFsQm90LFxuICBwYXlsb2FkOiB7IGludGVyYWN0aW9uOiBEaXNjb3JkSW50ZXJhY3Rpb247IHNoYXJkSWQ6IG51bWJlciB9LFxuKTogdHlwZW9mIGJvdC50cmFuc2Zvcm1lcnMuJGluZmVycmVkVHlwZXMuaW50ZXJhY3Rpb24ge1xuICBjb25zdCBndWlsZElkID0gcGF5bG9hZC5pbnRlcmFjdGlvbi5ndWlsZF9pZCA/IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaW50ZXJhY3Rpb24uZ3VpbGRfaWQpIDogdW5kZWZpbmVkXG4gIGNvbnN0IHVzZXIgPSBib3QudHJhbnNmb3JtZXJzLnVzZXIoYm90LCBwYXlsb2FkLmludGVyYWN0aW9uLm1lbWJlcj8udXNlciA/PyBwYXlsb2FkLmludGVyYWN0aW9uLnVzZXIhKVxuXG4gIGNvbnN0IGludGVyYWN0aW9uOiBJbnRlcmFjdGlvbiA9IE9iamVjdC5jcmVhdGUoYmFzZUludGVyYWN0aW9uKVxuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuaW50ZXJhY3Rpb25cbiAgLy8gVHlwZXNjcmlwdCBoYXMgYW4gaGFyZCB0aW1lIHdpdGggdGhpcywgc28gd2UgbmVlZCB0byB0ZWxsIGhpbSBmb3Igc3VyZSB0aGlzIGlzIGEgQm90XG4gIGludGVyYWN0aW9uLmJvdCA9IGJvdCBhcyB1bmtub3duIGFzIEJvdFxuICBpbnRlcmFjdGlvbi5hY2tub3dsZWRnZWQgPSBmYWxzZVxuXG4gIGlmIChwcm9wcy5pZCAmJiBwYXlsb2FkLmludGVyYWN0aW9uLmlkKSBpbnRlcmFjdGlvbi5pZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaW50ZXJhY3Rpb24uaWQpXG4gIGlmIChwcm9wcy5hcHBsaWNhdGlvbklkICYmIHBheWxvYWQuaW50ZXJhY3Rpb24uYXBwbGljYXRpb25faWQpXG4gICAgaW50ZXJhY3Rpb24uYXBwbGljYXRpb25JZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaW50ZXJhY3Rpb24uYXBwbGljYXRpb25faWQpXG4gIGlmIChwcm9wcy50eXBlICYmIHBheWxvYWQuaW50ZXJhY3Rpb24udHlwZSkgaW50ZXJhY3Rpb24udHlwZSA9IHBheWxvYWQuaW50ZXJhY3Rpb24udHlwZVxuICBpZiAocHJvcHMudG9rZW4gJiYgcGF5bG9hZC5pbnRlcmFjdGlvbi50b2tlbikgaW50ZXJhY3Rpb24udG9rZW4gPSBwYXlsb2FkLmludGVyYWN0aW9uLnRva2VuXG4gIGlmIChwcm9wcy52ZXJzaW9uICYmIHBheWxvYWQuaW50ZXJhY3Rpb24udmVyc2lvbikgaW50ZXJhY3Rpb24udmVyc2lvbiA9IHBheWxvYWQuaW50ZXJhY3Rpb24udmVyc2lvblxuICBpZiAocHJvcHMubG9jYWxlICYmIHBheWxvYWQuaW50ZXJhY3Rpb24ubG9jYWxlKSBpbnRlcmFjdGlvbi5sb2NhbGUgPSBwYXlsb2FkLmludGVyYWN0aW9uLmxvY2FsZVxuICBpZiAocHJvcHMuZ3VpbGRMb2NhbGUgJiYgcGF5bG9hZC5pbnRlcmFjdGlvbi5ndWlsZF9sb2NhbGUpIGludGVyYWN0aW9uLmd1aWxkTG9jYWxlID0gcGF5bG9hZC5pbnRlcmFjdGlvbi5ndWlsZF9sb2NhbGVcbiAgaWYgKHByb3BzLmd1aWxkICYmIHBheWxvYWQuaW50ZXJhY3Rpb24uZ3VpbGQpXG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvciBwYXlsb2FkLmludGVyYWN0aW9uLmd1aWxkIGlzIGEgUGFydGlhbDxEaXNjb3JkR3VpbGQ+XG4gICAgaW50ZXJhY3Rpb24uZ3VpbGQgPSBib3QudHJhbnNmb3JtZXJzLmd1aWxkKGJvdCwgeyBndWlsZDogcGF5bG9hZC5pbnRlcmFjdGlvbi5ndWlsZCwgc2hhcmRJZDogcGF5bG9hZC5zaGFyZElkIH0pXG4gIGlmIChwcm9wcy5ndWlsZElkICYmIGd1aWxkSWQpIGludGVyYWN0aW9uLmd1aWxkSWQgPSBndWlsZElkXG4gIGlmIChwcm9wcy51c2VyICYmIHVzZXIpIGludGVyYWN0aW9uLnVzZXIgPSB1c2VyXG4gIGlmIChwcm9wcy5hcHBQZXJtaXNzaW9ucyAmJiBwYXlsb2FkLmludGVyYWN0aW9uLmFwcF9wZXJtaXNzaW9ucylcbiAgICBpbnRlcmFjdGlvbi5hcHBQZXJtaXNzaW9ucyA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaW50ZXJhY3Rpb24uYXBwX3Blcm1pc3Npb25zKVxuICBpZiAocHJvcHMubWVzc2FnZSAmJiBwYXlsb2FkLmludGVyYWN0aW9uLm1lc3NhZ2UpXG4gICAgaW50ZXJhY3Rpb24ubWVzc2FnZSA9IGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZShib3QsIHsgbWVzc2FnZTogcGF5bG9hZC5pbnRlcmFjdGlvbi5tZXNzYWdlLCBzaGFyZElkOiAwIH0pXG4gIGlmIChwcm9wcy5jaGFubmVsICYmIHBheWxvYWQuaW50ZXJhY3Rpb24uY2hhbm5lbClcbiAgICBpbnRlcmFjdGlvbi5jaGFubmVsID0gYm90LnRyYW5zZm9ybWVycy5jaGFubmVsKGJvdCwgeyBjaGFubmVsOiBwYXlsb2FkLmludGVyYWN0aW9uLmNoYW5uZWwgYXMgRGlzY29yZENoYW5uZWwsIGd1aWxkSWQgfSlcbiAgaWYgKHByb3BzLmNoYW5uZWxJZCAmJiBwYXlsb2FkLmludGVyYWN0aW9uLmNoYW5uZWxfaWQpIGludGVyYWN0aW9uLmNoYW5uZWxJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaW50ZXJhY3Rpb24uY2hhbm5lbF9pZClcbiAgaWYgKHByb3BzLm1lbWJlciAmJiBndWlsZElkICYmIHBheWxvYWQuaW50ZXJhY3Rpb24ubWVtYmVyKVxuICAgIGludGVyYWN0aW9uLm1lbWJlciA9IGJvdC50cmFuc2Zvcm1lcnMubWVtYmVyKGJvdCwgcGF5bG9hZC5pbnRlcmFjdGlvbi5tZW1iZXIsIGd1aWxkSWQsIHVzZXIuaWQpXG4gIGlmIChwcm9wcy5lbnRpdGxlbWVudHMgJiYgcGF5bG9hZC5pbnRlcmFjdGlvbi5lbnRpdGxlbWVudHMpXG4gICAgaW50ZXJhY3Rpb24uZW50aXRsZW1lbnRzID0gcGF5bG9hZC5pbnRlcmFjdGlvbi5lbnRpdGxlbWVudHMubWFwKChlKSA9PiBib3QudHJhbnNmb3JtZXJzLmVudGl0bGVtZW50KGJvdCwgZSkpXG4gIGlmIChwcm9wcy5hdXRob3JpemluZ0ludGVncmF0aW9uT3duZXJzICYmIHBheWxvYWQuaW50ZXJhY3Rpb24uYXV0aG9yaXppbmdfaW50ZWdyYXRpb25fb3duZXJzKSB7XG4gICAgaW50ZXJhY3Rpb24uYXV0aG9yaXppbmdJbnRlZ3JhdGlvbk93bmVycyA9IHt9XG5cbiAgICBpZiAocGF5bG9hZC5pbnRlcmFjdGlvbi5hdXRob3JpemluZ19pbnRlZ3JhdGlvbl9vd25lcnNbJzAnXSlcbiAgICAgIGludGVyYWN0aW9uLmF1dGhvcml6aW5nSW50ZWdyYXRpb25Pd25lcnNbRGlzY29yZEFwcGxpY2F0aW9uSW50ZWdyYXRpb25UeXBlLkd1aWxkSW5zdGFsbF0gPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShcbiAgICAgICAgcGF5bG9hZC5pbnRlcmFjdGlvbi5hdXRob3JpemluZ19pbnRlZ3JhdGlvbl9vd25lcnNbJzAnXSxcbiAgICAgIClcbiAgICBpZiAocGF5bG9hZC5pbnRlcmFjdGlvbi5hdXRob3JpemluZ19pbnRlZ3JhdGlvbl9vd25lcnNbJzEnXSlcbiAgICAgIGludGVyYWN0aW9uLmF1dGhvcml6aW5nSW50ZWdyYXRpb25Pd25lcnNbRGlzY29yZEFwcGxpY2F0aW9uSW50ZWdyYXRpb25UeXBlLlVzZXJJbnN0YWxsXSA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKFxuICAgICAgICBwYXlsb2FkLmludGVyYWN0aW9uLmF1dGhvcml6aW5nX2ludGVncmF0aW9uX293bmVyc1snMSddLFxuICAgICAgKVxuICB9XG4gIGlmIChwcm9wcy5jb250ZXh0ICYmIHBheWxvYWQuaW50ZXJhY3Rpb24uY29udGV4dCkgaW50ZXJhY3Rpb24uY29udGV4dCA9IHBheWxvYWQuaW50ZXJhY3Rpb24uY29udGV4dFxuICBpZiAocHJvcHMuYXR0YWNobWVudFNpemVMaW1pdCAmJiBwYXlsb2FkLmludGVyYWN0aW9uLmF0dGFjaG1lbnRfc2l6ZV9saW1pdClcbiAgICBpbnRlcmFjdGlvbi5hdHRhY2htZW50U2l6ZUxpbWl0ID0gcGF5bG9hZC5pbnRlcmFjdGlvbi5hdHRhY2htZW50X3NpemVfbGltaXRcbiAgaWYgKHByb3BzLmRhdGEgJiYgcGF5bG9hZC5pbnRlcmFjdGlvbi5kYXRhKSB7XG4gICAgaW50ZXJhY3Rpb24uZGF0YSA9IHtcbiAgICAgIHR5cGU6IHBheWxvYWQuaW50ZXJhY3Rpb24uZGF0YS50eXBlLFxuICAgICAgY29tcG9uZW50VHlwZTogcGF5bG9hZC5pbnRlcmFjdGlvbi5kYXRhLmNvbXBvbmVudF90eXBlLFxuICAgICAgY3VzdG9tSWQ6IHBheWxvYWQuaW50ZXJhY3Rpb24uZGF0YS5jdXN0b21faWQsXG4gICAgICBjb21wb25lbnRzOiBwYXlsb2FkLmludGVyYWN0aW9uLmRhdGEuY29tcG9uZW50cz8ubWFwKChjb21wb25lbnQpID0+IGJvdC50cmFuc2Zvcm1lcnMuY29tcG9uZW50KGJvdCwgY29tcG9uZW50KSksXG4gICAgICB2YWx1ZXM6IHBheWxvYWQuaW50ZXJhY3Rpb24uZGF0YS52YWx1ZXMsXG4gICAgICBpZDogcGF5bG9hZC5pbnRlcmFjdGlvbi5kYXRhLmlkID8gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5pbnRlcmFjdGlvbi5kYXRhLmlkKSA6IHVuZGVmaW5lZCxcbiAgICAgIG5hbWU6IHBheWxvYWQuaW50ZXJhY3Rpb24uZGF0YS5uYW1lLFxuICAgICAgcmVzb2x2ZWQ6IHBheWxvYWQuaW50ZXJhY3Rpb24uZGF0YS5yZXNvbHZlZFxuICAgICAgICA/IGJvdC50cmFuc2Zvcm1lcnMuaW50ZXJhY3Rpb25EYXRhUmVzb2x2ZWQoYm90LCB7IHJlc29sdmVkOiBwYXlsb2FkLmludGVyYWN0aW9uLmRhdGEucmVzb2x2ZWQsIHNoYXJkSWQ6IHBheWxvYWQuc2hhcmRJZCwgZ3VpbGRJZCB9KVxuICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgIG9wdGlvbnM6IHBheWxvYWQuaW50ZXJhY3Rpb24uZGF0YS5vcHRpb25zPy5tYXAoKG9wdCkgPT4gYm90LnRyYW5zZm9ybWVycy5pbnRlcmFjdGlvbkRhdGFPcHRpb25zKGJvdCwgb3B0KSksXG4gICAgICB0YXJnZXRJZDogcGF5bG9hZC5pbnRlcmFjdGlvbi5kYXRhLnRhcmdldF9pZCA/IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaW50ZXJhY3Rpb24uZGF0YS50YXJnZXRfaWQpIDogdW5kZWZpbmVkLFxuICAgIH1cbiAgfVxuXG4gIC8vIFR5cGVzY3JpcHQgaGFzIGFuIGhhcmQgdGltZSB3aXRoIGludGVyYWN0aW9uLmJvdCwgc28gd2UgbmVlZCB0byB0ZWxsIGhpbSBmb3Igc3VyZSB0aGlzIGludGVyYWN0aW9uIGlzIHRoZSBvZiB0aGUgY29ycmVjdCB0eXBlXG4gIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmN1c3RvbWl6ZXJzLmludGVyYWN0aW9uKGJvdCwgcGF5bG9hZCwgaW50ZXJhY3Rpb24gYXMgdW5rbm93biBhcyB0eXBlb2YgYm90LnRyYW5zZm9ybWVycy4kaW5mZXJyZWRUeXBlcy5pbnRlcmFjdGlvbilcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybUludGVyYWN0aW9uRGF0YU9wdGlvbihib3Q6IEJvdCwgb3B0aW9uOiBEaXNjb3JkSW50ZXJhY3Rpb25EYXRhT3B0aW9uKTogSW50ZXJhY3Rpb25EYXRhT3B0aW9uIHtcbiAgY29uc3Qgb3B0ID0ge1xuICAgIG5hbWU6IG9wdGlvbi5uYW1lLFxuICAgIHR5cGU6IG9wdGlvbi50eXBlLFxuICAgIHZhbHVlOiBvcHRpb24udmFsdWUsXG4gICAgb3B0aW9uczogb3B0aW9uLm9wdGlvbnMsXG4gICAgZm9jdXNlZDogb3B0aW9uLmZvY3VzZWQsXG4gIH0gYXMgSW50ZXJhY3Rpb25EYXRhT3B0aW9uXG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMuaW50ZXJhY3Rpb25EYXRhT3B0aW9ucyhib3QsIG9wdGlvbiwgb3B0KVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtSW50ZXJhY3Rpb25EYXRhUmVzb2x2ZWQoXG4gIGJvdDogSW50ZXJuYWxCb3QsXG4gIHBheWxvYWQ6IHsgcmVzb2x2ZWQ6IERpc2NvcmRJbnRlcmFjdGlvbkRhdGFSZXNvbHZlZDsgc2hhcmRJZDogbnVtYmVyOyBndWlsZElkPzogYmlnaW50IH0sXG4pOiBJbnRlcmFjdGlvbkRhdGFSZXNvbHZlZCB7XG4gIGNvbnN0IHRyYW5zZm9ybWVkOiBJbnRlcmFjdGlvbkRhdGFSZXNvbHZlZCA9IHt9XG5cbiAgaWYgKHBheWxvYWQucmVzb2x2ZWQubWVzc2FnZXMpIHtcbiAgICB0cmFuc2Zvcm1lZC5tZXNzYWdlcyA9IG5ldyBDb2xsZWN0aW9uKFxuICAgICAgT2JqZWN0LmVudHJpZXMocGF5bG9hZC5yZXNvbHZlZC5tZXNzYWdlcykubWFwKChbX2lkLCB2YWx1ZV0pID0+IHtcbiAgICAgICAgY29uc3QgbWVzc2FnZTogTWVzc2FnZSA9IGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZShib3QsIHsgbWVzc2FnZTogdmFsdWUsIHNoYXJkSWQ6IHBheWxvYWQuc2hhcmRJZCB9KVxuICAgICAgICByZXR1cm4gW21lc3NhZ2UuaWQsIG1lc3NhZ2VdXG4gICAgICB9KSxcbiAgICApXG4gIH1cblxuICBpZiAocGF5bG9hZC5yZXNvbHZlZC51c2Vycykge1xuICAgIHRyYW5zZm9ybWVkLnVzZXJzID0gbmV3IENvbGxlY3Rpb24oXG4gICAgICBPYmplY3QuZW50cmllcyhwYXlsb2FkLnJlc29sdmVkLnVzZXJzKS5tYXAoKFtfaWQsIHZhbHVlXSkgPT4ge1xuICAgICAgICBjb25zdCB1c2VyID0gYm90LnRyYW5zZm9ybWVycy51c2VyKGJvdCwgdmFsdWUpXG4gICAgICAgIHJldHVybiBbdXNlci5pZCwgdXNlcl1cbiAgICAgIH0pLFxuICAgIClcbiAgfVxuXG4gIGlmIChwYXlsb2FkLmd1aWxkSWQgJiYgcGF5bG9hZC5yZXNvbHZlZC5tZW1iZXJzKSB7XG4gICAgdHJhbnNmb3JtZWQubWVtYmVycyA9IG5ldyBDb2xsZWN0aW9uKFxuICAgICAgT2JqZWN0LmVudHJpZXMocGF5bG9hZC5yZXNvbHZlZC5tZW1iZXJzKS5tYXAoKFtpZCwgdmFsdWVdKSA9PiB7XG4gICAgICAgIGNvbnN0IG1lbWJlcjogTWVtYmVyID0gYm90LnRyYW5zZm9ybWVycy5tZW1iZXIoYm90LCB2YWx1ZSwgcGF5bG9hZC5ndWlsZElkISwgYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UoaWQpKVxuICAgICAgICByZXR1cm4gW21lbWJlci5pZCwgbWVtYmVyXVxuICAgICAgfSksXG4gICAgKVxuICB9XG5cbiAgaWYgKHBheWxvYWQuZ3VpbGRJZCAmJiBwYXlsb2FkLnJlc29sdmVkLnJvbGVzKSB7XG4gICAgdHJhbnNmb3JtZWQucm9sZXMgPSBuZXcgQ29sbGVjdGlvbihcbiAgICAgIE9iamVjdC5lbnRyaWVzKHBheWxvYWQucmVzb2x2ZWQucm9sZXMpLm1hcCgoW19pZCwgdmFsdWVdKSA9PiB7XG4gICAgICAgIGNvbnN0IHJvbGUgPSBib3QudHJhbnNmb3JtZXJzLnJvbGUoYm90LCB7IHJvbGU6IHZhbHVlLCBndWlsZElkOiBwYXlsb2FkLmd1aWxkSWQhIH0pXG4gICAgICAgIHJldHVybiBbcm9sZS5pZCwgcm9sZV1cbiAgICAgIH0pLFxuICAgIClcbiAgfVxuXG4gIGlmIChwYXlsb2FkLnJlc29sdmVkLmNoYW5uZWxzKSB7XG4gICAgdHJhbnNmb3JtZWQuY2hhbm5lbHMgPSBuZXcgQ29sbGVjdGlvbihcbiAgICAgIE9iamVjdC5lbnRyaWVzKHBheWxvYWQucmVzb2x2ZWQuY2hhbm5lbHMpLm1hcCgoW19pZCwgdmFsdWVdKSA9PiB7XG4gICAgICAgIGNvbnN0IGNoYW5uZWwgPSBib3QudHJhbnNmb3JtZXJzLmNoYW5uZWwoYm90LCB7IGNoYW5uZWw6IHZhbHVlIH0pIGFzIEludGVyYWN0aW9uUmVzb2x2ZWRDaGFubmVsXG4gICAgICAgIHJldHVybiBbY2hhbm5lbC5pZCwgY2hhbm5lbF1cbiAgICAgIH0pLFxuICAgIClcbiAgfVxuXG4gIGlmIChwYXlsb2FkLnJlc29sdmVkLmF0dGFjaG1lbnRzKSB7XG4gICAgdHJhbnNmb3JtZWQuYXR0YWNobWVudHMgPSBuZXcgQ29sbGVjdGlvbihcbiAgICAgIE9iamVjdC5lbnRyaWVzKHBheWxvYWQucmVzb2x2ZWQuYXR0YWNobWVudHMpLm1hcCgoW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICAgIGNvbnN0IGlkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2Uoa2V5KVxuICAgICAgICByZXR1cm4gW2lkLCBib3QudHJhbnNmb3JtZXJzLmF0dGFjaG1lbnQoYm90LCB2YWx1ZSldXG4gICAgICB9KSxcbiAgICApXG4gIH1cblxuICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jdXN0b21pemVycy5pbnRlcmFjdGlvbkRhdGFSZXNvbHZlZChib3QsIHBheWxvYWQsIHRyYW5zZm9ybWVkKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtSW50ZXJhY3Rpb25DYWxsYmFja1Jlc3BvbnNlKFxuICBib3Q6IEludGVybmFsQm90LFxuICBwYXlsb2FkOiB7IGludGVyYWN0aW9uQ2FsbGJhY2tSZXNwb25zZTogRGlzY29yZEludGVyYWN0aW9uQ2FsbGJhY2tSZXNwb25zZTsgc2hhcmRJZDogbnVtYmVyIH0sXG4pOiB0eXBlb2YgYm90LnRyYW5zZm9ybWVycy4kaW5mZXJyZWRUeXBlcy5pbnRlcmFjdGlvbkNhbGxiYWNrUmVzcG9uc2Uge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuaW50ZXJhY3Rpb25DYWxsYmFja1Jlc3BvbnNlXG4gIGNvbnN0IHJlc3BvbnNlID0ge30gYXMgSW50ZXJhY3Rpb25DYWxsYmFja1Jlc3BvbnNlXG5cbiAgaWYgKHByb3BzLmludGVyYWN0aW9uICYmIHBheWxvYWQuaW50ZXJhY3Rpb25DYWxsYmFja1Jlc3BvbnNlLmludGVyYWN0aW9uKVxuICAgIHJlc3BvbnNlLmludGVyYWN0aW9uID0gYm90LnRyYW5zZm9ybWVycy5pbnRlcmFjdGlvbkNhbGxiYWNrKGJvdCwgcGF5bG9hZC5pbnRlcmFjdGlvbkNhbGxiYWNrUmVzcG9uc2UuaW50ZXJhY3Rpb24pXG4gIGlmIChwcm9wcy5yZXNvdXJjZSAmJiBwYXlsb2FkLmludGVyYWN0aW9uQ2FsbGJhY2tSZXNwb25zZS5yZXNvdXJjZSlcbiAgICByZXNwb25zZS5yZXNvdXJjZSA9IGJvdC50cmFuc2Zvcm1lcnMuaW50ZXJhY3Rpb25SZXNvdXJjZShib3QsIHtcbiAgICAgIGludGVyYWN0aW9uUmVzb3VyY2U6IHBheWxvYWQuaW50ZXJhY3Rpb25DYWxsYmFja1Jlc3BvbnNlLnJlc291cmNlLFxuICAgICAgc2hhcmRJZDogcGF5bG9hZC5zaGFyZElkLFxuICAgIH0pXG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMuaW50ZXJhY3Rpb25DYWxsYmFja1Jlc3BvbnNlKGJvdCwgcGF5bG9hZC5pbnRlcmFjdGlvbkNhbGxiYWNrUmVzcG9uc2UsIHJlc3BvbnNlKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtSW50ZXJhY3Rpb25DYWxsYmFjayhcbiAgYm90OiBJbnRlcm5hbEJvdCxcbiAgcGF5bG9hZDogRGlzY29yZEludGVyYWN0aW9uQ2FsbGJhY2ssXG4pOiB0eXBlb2YgYm90LnRyYW5zZm9ybWVycy4kaW5mZXJyZWRUeXBlcy5pbnRlcmFjdGlvbkNhbGxiYWNrIHtcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLmludGVyYWN0aW9uQ2FsbGJhY2tcbiAgY29uc3QgY2FsbGJhY2sgPSB7fSBhcyBJbnRlcmFjdGlvbkNhbGxiYWNrXG5cbiAgaWYgKHByb3BzLmlkICYmIHBheWxvYWQuaWQpIGNhbGxiYWNrLmlkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5pZClcbiAgaWYgKHByb3BzLnR5cGUgJiYgcGF5bG9hZC50eXBlKSBjYWxsYmFjay50eXBlID0gcGF5bG9hZC50eXBlXG4gIGlmIChwcm9wcy5hY3Rpdml0eUluc3RhbmNlSWQgJiYgcGF5bG9hZC5hY3Rpdml0eV9pbnN0YW5jZV9pZCkgY2FsbGJhY2suYWN0aXZpdHlJbnN0YW5jZUlkID0gcGF5bG9hZC5hY3Rpdml0eV9pbnN0YW5jZV9pZFxuICBpZiAocHJvcHMucmVzcG9uc2VNZXNzYWdlSWQgJiYgcGF5bG9hZC5yZXNwb25zZV9tZXNzYWdlX2lkKSBjYWxsYmFjay5yZXNwb25zZU1lc3NhZ2VJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQucmVzcG9uc2VfbWVzc2FnZV9pZClcbiAgaWYgKHByb3BzLnJlc3BvbnNlTWVzc2FnZUVwaGVtZXJhbCAmJiBwYXlsb2FkLnJlc3BvbnNlX21lc3NhZ2VfZXBoZW1lcmFsKSBjYWxsYmFjay5yZXNwb25zZU1lc3NhZ2VFcGhlbWVyYWwgPSBwYXlsb2FkLnJlc3BvbnNlX21lc3NhZ2VfZXBoZW1lcmFsXG4gIGlmIChwcm9wcy5yZXNwb25zZU1lc3NhZ2VMb2FkaW5nICYmIHBheWxvYWQucmVzcG9uc2VfbWVzc2FnZV9sb2FkaW5nKSBjYWxsYmFjay5yZXNwb25zZU1lc3NhZ2VMb2FkaW5nID0gcGF5bG9hZC5yZXNwb25zZV9tZXNzYWdlX2xvYWRpbmdcblxuICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jdXN0b21pemVycy5pbnRlcmFjdGlvbkNhbGxiYWNrKGJvdCwgcGF5bG9hZCwgY2FsbGJhY2spXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1JbnRlcmFjdGlvblJlc291cmNlKFxuICBib3Q6IEludGVybmFsQm90LFxuICBwYXlsb2FkOiB7IGludGVyYWN0aW9uUmVzb3VyY2U6IERpc2NvcmRJbnRlcmFjdGlvblJlc291cmNlOyBzaGFyZElkOiBudW1iZXIgfSxcbik6IHR5cGVvZiBib3QudHJhbnNmb3JtZXJzLiRpbmZlcnJlZFR5cGVzLmludGVyYWN0aW9uUmVzb3VyY2Uge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuaW50ZXJhY3Rpb25SZXNvdXJjZVxuICBjb25zdCByZXNvdXJjZSA9IHt9IGFzIEludGVyYWN0aW9uUmVzb3VyY2VcblxuICBpZiAocHJvcHMudHlwZSAmJiBwYXlsb2FkLmludGVyYWN0aW9uUmVzb3VyY2UudHlwZSkgcmVzb3VyY2UudHlwZSA9IHBheWxvYWQuaW50ZXJhY3Rpb25SZXNvdXJjZS50eXBlXG4gIGlmIChwcm9wcy5hY3Rpdml0eUluc3RhbmNlICYmIHBheWxvYWQuaW50ZXJhY3Rpb25SZXNvdXJjZS5hY3Rpdml0eV9pbnN0YW5jZSlcbiAgICByZXNvdXJjZS5hY3Rpdml0eUluc3RhbmNlID0gcGF5bG9hZC5pbnRlcmFjdGlvblJlc291cmNlLmFjdGl2aXR5X2luc3RhbmNlXG4gIGlmIChwcm9wcy5tZXNzYWdlICYmIHBheWxvYWQuaW50ZXJhY3Rpb25SZXNvdXJjZS5tZXNzYWdlKVxuICAgIHJlc291cmNlLm1lc3NhZ2UgPSBib3QudHJhbnNmb3JtZXJzLm1lc3NhZ2UoYm90LCB7IG1lc3NhZ2U6IHBheWxvYWQuaW50ZXJhY3Rpb25SZXNvdXJjZS5tZXNzYWdlLCBzaGFyZElkOiBwYXlsb2FkLnNoYXJkSWQgfSlcblxuICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jdXN0b21pemVycy5pbnRlcmFjdGlvblJlc291cmNlKGJvdCwgcGF5bG9hZC5pbnRlcmFjdGlvblJlc291cmNlLCByZXNvdXJjZSlcbn1cbiJdLCJuYW1lcyI6WyJiYXNlSW50ZXJhY3Rpb24iLCJ0cmFuc2Zvcm1JbnRlcmFjdGlvbiIsInRyYW5zZm9ybUludGVyYWN0aW9uQ2FsbGJhY2siLCJ0cmFuc2Zvcm1JbnRlcmFjdGlvbkNhbGxiYWNrUmVzcG9uc2UiLCJ0cmFuc2Zvcm1JbnRlcmFjdGlvbkRhdGFPcHRpb24iLCJ0cmFuc2Zvcm1JbnRlcmFjdGlvbkRhdGFSZXNvbHZlZCIsInRyYW5zZm9ybUludGVyYWN0aW9uUmVzb3VyY2UiLCJ1bmRlZmluZWQiLCJyZXNwb25kIiwicmVzcG9uc2UiLCJvcHRpb25zIiwidHlwZSIsIkludGVyYWN0aW9uUmVzcG9uc2VUeXBlcyIsIkNoYW5uZWxNZXNzYWdlV2l0aFNvdXJjZSIsImNvbnRlbnQiLCJ0aXRsZSIsIk1vZGFsIiwiSW50ZXJhY3Rpb25UeXBlcyIsIkFwcGxpY2F0aW9uQ29tbWFuZEF1dG9jb21wbGV0ZSIsIkFwcGxpY2F0aW9uQ29tbWFuZEF1dG9jb21wbGV0ZVJlc3VsdCIsImlzUHJpdmF0ZSIsImZsYWdzIiwiTWVzc2FnZUZsYWdzIiwiRXBoZW1lcmFsIiwiYWNrbm93bGVkZ2VkIiwiYm90IiwiaGVscGVycyIsInNlbmRGb2xsb3d1cE1lc3NhZ2UiLCJ0b2tlbiIsIk1vZGFsU3VibWl0IiwiRXJyb3IiLCJzZW5kSW50ZXJhY3Rpb25SZXNwb25zZSIsImlkIiwiZGF0YSIsIndpdGhSZXNwb25zZSIsImVkaXQiLCJtZXNzYWdlSWQiLCJlZGl0Rm9sbG93dXBNZXNzYWdlIiwiTWVzc2FnZUNvbXBvbmVudCIsIlVwZGF0ZU1lc3NhZ2UiLCJlZGl0T3JpZ2luYWxJbnRlcmFjdGlvblJlc3BvbnNlIiwiZGVmZXJFZGl0IiwiRGVmZXJyZWRVcGRhdGVNZXNzYWdlIiwiZGVmZXIiLCJEZWZlcnJlZENoYW5uZWxNZXNzYWdlV2l0aFNvdXJjZSIsImRlbGV0ZSIsImRlbGV0ZUZvbGxvd3VwTWVzc2FnZSIsImRlbGV0ZU9yaWdpbmFsSW50ZXJhY3Rpb25SZXNwb25zZSIsInBheWxvYWQiLCJndWlsZElkIiwiaW50ZXJhY3Rpb24iLCJndWlsZF9pZCIsInRyYW5zZm9ybWVycyIsInNub3dmbGFrZSIsInVzZXIiLCJtZW1iZXIiLCJPYmplY3QiLCJjcmVhdGUiLCJwcm9wcyIsImRlc2lyZWRQcm9wZXJ0aWVzIiwiYXBwbGljYXRpb25JZCIsImFwcGxpY2F0aW9uX2lkIiwidmVyc2lvbiIsImxvY2FsZSIsImd1aWxkTG9jYWxlIiwiZ3VpbGRfbG9jYWxlIiwiZ3VpbGQiLCJzaGFyZElkIiwiYXBwUGVybWlzc2lvbnMiLCJhcHBfcGVybWlzc2lvbnMiLCJtZXNzYWdlIiwiY2hhbm5lbCIsImNoYW5uZWxJZCIsImNoYW5uZWxfaWQiLCJlbnRpdGxlbWVudHMiLCJtYXAiLCJlIiwiZW50aXRsZW1lbnQiLCJhdXRob3JpemluZ0ludGVncmF0aW9uT3duZXJzIiwiYXV0aG9yaXppbmdfaW50ZWdyYXRpb25fb3duZXJzIiwiRGlzY29yZEFwcGxpY2F0aW9uSW50ZWdyYXRpb25UeXBlIiwiR3VpbGRJbnN0YWxsIiwiVXNlckluc3RhbGwiLCJjb250ZXh0IiwiYXR0YWNobWVudFNpemVMaW1pdCIsImF0dGFjaG1lbnRfc2l6ZV9saW1pdCIsImNvbXBvbmVudFR5cGUiLCJjb21wb25lbnRfdHlwZSIsImN1c3RvbUlkIiwiY3VzdG9tX2lkIiwiY29tcG9uZW50cyIsImNvbXBvbmVudCIsInZhbHVlcyIsIm5hbWUiLCJyZXNvbHZlZCIsImludGVyYWN0aW9uRGF0YVJlc29sdmVkIiwib3B0IiwiaW50ZXJhY3Rpb25EYXRhT3B0aW9ucyIsInRhcmdldElkIiwidGFyZ2V0X2lkIiwiY3VzdG9taXplcnMiLCJvcHRpb24iLCJ2YWx1ZSIsImZvY3VzZWQiLCJ0cmFuc2Zvcm1lZCIsIm1lc3NhZ2VzIiwiQ29sbGVjdGlvbiIsImVudHJpZXMiLCJfaWQiLCJ1c2VycyIsIm1lbWJlcnMiLCJyb2xlcyIsInJvbGUiLCJjaGFubmVscyIsImF0dGFjaG1lbnRzIiwia2V5IiwiYXR0YWNobWVudCIsImludGVyYWN0aW9uQ2FsbGJhY2tSZXNwb25zZSIsImludGVyYWN0aW9uQ2FsbGJhY2siLCJyZXNvdXJjZSIsImludGVyYWN0aW9uUmVzb3VyY2UiLCJjYWxsYmFjayIsImFjdGl2aXR5SW5zdGFuY2VJZCIsImFjdGl2aXR5X2luc3RhbmNlX2lkIiwicmVzcG9uc2VNZXNzYWdlSWQiLCJyZXNwb25zZV9tZXNzYWdlX2lkIiwicmVzcG9uc2VNZXNzYWdlRXBoZW1lcmFsIiwicmVzcG9uc2VfbWVzc2FnZV9lcGhlbWVyYWwiLCJyZXNwb25zZU1lc3NhZ2VMb2FkaW5nIiwicmVzcG9uc2VfbWVzc2FnZV9sb2FkaW5nIiwiYWN0aXZpdHlJbnN0YW5jZSIsImFjdGl2aXR5X2luc3RhbmNlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztRQTRCYUE7ZUFBQUE7O1FBdUZHQztlQUFBQTs7UUFzS0FDO2VBQUFBOztRQWxCQUM7ZUFBQUE7O1FBM0VBQztlQUFBQTs7UUFZQUM7ZUFBQUE7O1FBa0dBQztlQUFBQTs7O3VCQS9SVDt1QkFDb0I7QUFnQnBCLE1BQU1OLGtCQUFnRjtJQUMzRiwyRUFBMkU7SUFDM0UsR0FBSU8sU0FBUztJQUViLE1BQU1DLFNBQVFDLFFBQVEsRUFBRUMsT0FBTztRQUM3QixJQUFJQyxPQUFPQywrQkFBd0IsQ0FBQ0Msd0JBQXdCO1FBRTVELDREQUE0RDtRQUM1RCxJQUFJLE9BQU9KLGFBQWEsVUFB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
283
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvaW50ZXJhY3Rpb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRGlzY29yZEFwcGxpY2F0aW9uSW50ZWdyYXRpb25UeXBlLFxuICB0eXBlIERpc2NvcmRJbnRlcmFjdGlvbixcbiAgdHlwZSBEaXNjb3JkSW50ZXJhY3Rpb25DYWxsYmFjayxcbiAgdHlwZSBEaXNjb3JkSW50ZXJhY3Rpb25DYWxsYmFja1Jlc3BvbnNlLFxuICB0eXBlIERpc2NvcmRJbnRlcmFjdGlvbkRhdGFPcHRpb24sXG4gIHR5cGUgRGlzY29yZEludGVyYWN0aW9uRGF0YVJlc29sdmVkLFxuICB0eXBlIERpc2NvcmRJbnRlcmFjdGlvblJlc291cmNlLFxuICBJbnRlcmFjdGlvblJlc3BvbnNlVHlwZXMsXG4gIEludGVyYWN0aW9uVHlwZXMsXG4gIE1lc3NhZ2VGbGFncyxcbn0gZnJvbSAnQGRpc2NvcmRlbm8vdHlwZXMnXG5pbXBvcnQgeyBDb2xsZWN0aW9uIH0gZnJvbSAnQGRpc2NvcmRlbm8vdXRpbHMnXG5pbXBvcnQgdHlwZSB7XG4gIEJvdCxcbiAgRGlzY29yZENoYW5uZWwsXG4gIEludGVyYWN0aW9uLFxuICBJbnRlcmFjdGlvbkNhbGxiYWNrLFxuICBJbnRlcmFjdGlvbkNhbGxiYWNrUmVzcG9uc2UsXG4gIEludGVyYWN0aW9uRGF0YU9wdGlvbixcbiAgSW50ZXJhY3Rpb25EYXRhUmVzb2x2ZWQsXG4gIEludGVyYWN0aW9uUmVzb2x2ZWRDaGFubmVsLFxuICBJbnRlcmFjdGlvblJlc291cmNlLFxuICBJbnRlcm5hbEJvdCxcbiAgTWVtYmVyLFxuICBNZXNzYWdlLFxufSBmcm9tICcuLi9pbmRleC5qcydcblxuZXhwb3J0IGNvbnN0IGJhc2VJbnRlcmFjdGlvbjogSW50ZXJuYWxCb3RbJ3RyYW5zZm9ybWVycyddWyckaW5mZXJyZWRUeXBlcyddWydpbnRlcmFjdGlvbiddID0ge1xuICAvLyBUaGlzIGFsbG93cyB0eXBlc2NyaXB0IHRvIHN0aWxsIGNoZWNrIGZvciB0eXBlIGVycm9ycyBvbiBmdW5jdGlvbnMgYmVsb3dcbiAgLi4uKHVuZGVmaW5lZCBhcyB1bmtub3duIGFzIEludGVybmFsQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsnaW50ZXJhY3Rpb24nXSksXG5cbiAgYXN5bmMgcmVzcG9uZChyZXNwb25zZSwgb3B0aW9ucykge1xuICAgIGxldCB0eXBlID0gSW50ZXJhY3Rpb25SZXNwb25zZVR5cGVzLkNoYW5uZWxNZXNzYWdlV2l0aFNvdXJjZVxuXG4gICAgLy8gSWYgdXNlciBwcm92aWRlcyBhIHN0cmluZywgY2hhbmdlIGl0IHRvIGEgcmVzcG9uc2Ugb2JqZWN0XG4gICAgaWYgKHR5cGVvZiByZXNwb25zZSA9PT0gJ3N0cmluZycpIHJlc3BvbnNlID0geyBjb250ZW50OiByZXNwb25zZSB9XG5cbiAgICAvLyBJZiB1c2VyIHByb3ZpZGVzIGFuIG9iamVjdCwgZGV0ZXJtaW5lIGlmIGl0IHNob3VsZCBiZSBhbiBhdXRvY29tcGxldGUgb3IgYSBtb2RhbCByZXNwb25zZVxuICAgIGlmIChyZXNwb25zZS50aXRsZSkgdHlwZSA9IEludGVyYWN0aW9uUmVzcG9uc2VUeXBlcy5Nb2RhbFxuICAgIGlmICh0aGlzLnR5cGUgPT09IEludGVyYWN0aW9uVHlwZXMuQXBwbGljYXRpb25Db21tYW5kQXV0b2NvbXBsZXRlKSB0eXBlID0gSW50ZXJhY3Rpb25SZXNwb25zZVR5cGVzLkFwcGxpY2F0aW9uQ29tbWFuZEF1dG9jb21wbGV0ZVJlc3VsdFxuICAgIGlmICh0eXBlID09PSBJbnRlcmFjdGlvblJlc3BvbnNlVHlwZXMuQ2hhbm5lbE1lc3NhZ2VXaXRoU291cmNlICYmIG9wdGlvbnM/LmlzUHJpdmF0ZSkge1xuICAgICAgcmVzcG9uc2UuZmxhZ3MgPz89IDBcbiAgICAgIHJlc3BvbnNlLmZsYWdzIHw9IE1lc3NhZ2VGbGFncy5FcGhlbWVyYWxcbiAgICB9XG5cbiAgICAvLyBTaW5jZSB0aGlzIGhhcyBhbHJlYWR5IGJlZW4gZ2l2ZW4gYSByZXNwb25zZSwgYW55IGZ1cnRoZXIgcmVzcG9uc2VzIG11c3QgYmUgZm9sbG93dXBzLlxuICAgIGlmICh0aGlzLmFja25vd2xlZGdlZCkgcmV0dXJuIGF3YWl0IHRoaXMuYm90LmhlbHBlcnMuc2VuZEZvbGxvd3VwTWVzc2FnZSh0aGlzLnRva2VuLCByZXNwb25zZSlcblxuICAgIC8vIE1vZGFscyBjYW5ub3QgYmUgY2hhaW5lZFxuICAgIGlmICh0aGlzLnR5cGUgPT09IEludGVyYWN0aW9uVHlwZXMuTW9kYWxTdWJtaXQgJiYgdHlwZSA9PT0gSW50ZXJhY3Rpb25SZXNwb25zZVR5cGVzLk1vZGFsKVxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgcmVzcG9uZCB0byBhIG1vZGFsIGludGVyYWN0aW9uIHdpdGggYW5vdGhlciBtb2RhbC4nKVxuXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5ib3QuaGVscGVycy5zZW5kSW50ZXJhY3Rpb25SZXNwb25zZShcbiAgICAgIHRoaXMuaWQsXG4gICAgICB0aGlzLnRva2VuLFxuICAgICAgeyB0eXBlLCBkYXRhOiByZXNwb25zZSB9LFxuICAgICAgeyB3aXRoUmVzcG9uc2U6IG9wdGlvbnM/LndpdGhSZXNwb25zZSB9LFxuICAgIClcbiAgICB0aGlzLmFja25vd2xlZGdlZCA9IHRydWVcbiAgICByZXR1cm4gcmVzdWx0XG4gIH0sXG4gIGFzeW5jIGVkaXQocmVzcG9uc2UsIG1lc3NhZ2VJZCwgb3B0aW9ucykge1xuICAgIGlmICh0aGlzLnR5cGUgPT09IEludGVyYWN0aW9uVHlwZXMuQXBwbGljYXRpb25Db21tYW5kQXV0b2NvbXBsZXRlKSB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBlZGl0IGFuIGF1dG9jb21wbGV0ZSBpbnRlcmFjdGlvbi4nKVxuXG4gICAgLy8gSWYgdXNlciBwcm92aWRlcyBhIHN0cmluZywgY2hhbmdlIGl0IHRvIGEgcmVzcG9uc2Ugb2JqZWN0XG4gICAgaWYgKHR5cGVvZiByZXNwb25zZSA9PT0gJ3N0cmluZycpIHJlc3BvbnNlID0geyBjb250ZW50OiByZXNwb25zZSB9XG5cbiAgICBpZiAobWVzc2FnZUlkKSB7XG4gICAgICByZXR1cm4gYXdhaXQgdGhpcy5ib3Q/LmhlbHBlcnMuZWRpdEZvbGxvd3VwTWVzc2FnZSh0aGlzLnRva2VuLCBtZXNzYWdlSWQsIHJlc3BvbnNlKVxuICAgIH1cblxuICAgIGlmICghdGhpcy5hY2tub3dsZWRnZWQpIHtcbiAgICAgIGlmICh0aGlzLnR5cGUgIT09IEludGVyYWN0aW9uVHlwZXMuTWVzc2FnZUNvbXBvbmVudCAmJiB0aGlzLnR5cGUgIT09IEludGVyYWN0aW9uVHlwZXMuTW9kYWxTdWJtaXQpXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIlRoaXMgaW50ZXJhY3Rpb24gaGFzIG5vdCBiZWVuIHJlc3BvbmRlZCB0byB5ZXQgYW5kIHRoaXMgaXNuJ3QgYSBNZXNzYWdlQ29tcG9uZW50IG9yIE1vZGFsU3VibWl0IGludGVyYWN0aW9uLlwiKVxuXG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLmJvdC5oZWxwZXJzLnNlbmRJbnRlcmFjdGlvblJlc3BvbnNlKFxuICAgICAgICB0aGlzLmlkLFxuICAgICAgICB0aGlzLnRva2VuLFxuICAgICAgICB7IHR5cGU6IEludGVyYWN0aW9uUmVzcG9uc2VUeXBlcy5VcGRhdGVNZXNzYWdlLCBkYXRhOiByZXNwb25zZSB9LFxuICAgICAgICBvcHRpb25zLFxuICAgICAgKVxuICAgICAgdGhpcy5hY2tub3dsZWRnZWQgPSB0cnVlXG4gICAgICByZXR1cm4gcmVzdWx0XG4gICAgfVxuXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuYm90LmhlbHBlcnMuZWRpdE9yaWdpbmFsSW50ZXJhY3Rpb25SZXNwb25zZSh0aGlzLnRva2VuLCByZXNwb25zZSlcbiAgfSxcbiAgYXN5bmMgZGVmZXJFZGl0KG9wdGlvbnMpIHtcbiAgICBpZiAodGhpcy50eXBlID09PSBJbnRlcmFjdGlvblR5cGVzLkFwcGxpY2F0aW9uQ29tbWFuZEF1dG9jb21wbGV0ZSkgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgZWRpdCBhbiBhdXRvY29tcGxldGUgaW50ZXJhY3Rpb24uJylcbiAgICBpZiAodGhpcy5hY2tub3dsZWRnZWQpIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGRlZmVyIGFuIGFscmVhZHkgcmVzcG9uZGVkIGludGVyYWN0aW9uLicpXG5cbiAgICBpZiAodGhpcy50eXBlICE9PSBJbnRlcmFjdGlvblR5cGVzLk1lc3NhZ2VDb21wb25lbnQgJiYgdGhpcy50eXBlICE9PSBJbnRlcmFjdGlvblR5cGVzLk1vZGFsU3VibWl0KVxuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQ2Fubm90IGRlZmVyIHRvIHRoZW4gZWRpdCBhbiBpbnRlcmFjdGlvbiB0aGF0IGlzbid0IGEgTWVzc2FnZUNvbXBvbmVudCBvciBNb2RhbFN1Ym1pdCBpbnRlcmFjdGlvbi5cIilcblxuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuYm90LmhlbHBlcnMuc2VuZEludGVyYWN0aW9uUmVzcG9uc2UoXG4gICAgICB0aGlzLmlkLFxuICAgICAgdGhpcy50b2tlbixcbiAgICAgIHsgdHlwZTogSW50ZXJhY3Rpb25SZXNwb25zZVR5cGVzLkRlZmVycmVkVXBkYXRlTWVzc2FnZSB9LFxuICAgICAgb3B0aW9ucyxcbiAgICApXG4gICAgdGhpcy5hY2tub3dsZWRnZWQgPSB0cnVlXG4gICAgcmV0dXJuIHJlc3VsdFxuICB9LFxuICBhc3luYyBkZWZlcihpc1ByaXZhdGUsIG9wdGlvbnMpIHtcbiAgICBpZiAodGhpcy5hY2tub3dsZWRnZWQpIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGRlZmVyIGFuIGFscmVhZHkgcmVzcG9uZGVkIGludGVyYWN0aW9uLicpXG5cbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLmJvdC5oZWxwZXJzLnNlbmRJbnRlcmFjdGlvblJlc3BvbnNlKFxuICAgICAgdGhpcy5pZCxcbiAgICAgIHRoaXMudG9rZW4sXG4gICAgICB7XG4gICAgICAgIHR5cGU6IEludGVyYWN0aW9uUmVzcG9uc2VUeXBlcy5EZWZlcnJlZENoYW5uZWxNZXNzYWdlV2l0aFNvdXJjZSxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIGZsYWdzOiBpc1ByaXZhdGUgPyBNZXNzYWdlRmxhZ3MuRXBoZW1lcmFsIDogdW5kZWZpbmVkLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIG9wdGlvbnMsXG4gICAgKVxuICAgIHRoaXMuYWNrbm93bGVkZ2VkID0gdHJ1ZVxuICAgIHJldHVybiByZXN1bHRcbiAgfSxcbiAgYXN5bmMgZGVsZXRlKG1lc3NhZ2VJZCkge1xuICAgIGlmICh0aGlzLnR5cGUgPT09IEludGVyYWN0aW9uVHlwZXMuQXBwbGljYXRpb25Db21tYW5kQXV0b2NvbXBsZXRlKSB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBkZWxldGUgYW4gYXV0b2NvbXBsZXRlIGludGVyYWN0aW9uJylcblxuICAgIGlmIChtZXNzYWdlSWQpIHJldHVybiBhd2FpdCB0aGlzLmJvdD8uaGVscGVycy5kZWxldGVGb2xsb3d1cE1lc3NhZ2UodGhpcy50b2tlbiwgbWVzc2FnZUlkKVxuICAgIGVsc2UgcmV0dXJuIGF3YWl0IHRoaXMuYm90Py5oZWxwZXJzLmRlbGV0ZU9yaWdpbmFsSW50ZXJhY3Rpb25SZXNwb25zZSh0aGlzLnRva2VuKVxuICB9LFxufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtSW50ZXJhY3Rpb24oXG4gIGJvdDogSW50ZXJuYWxCb3QsXG4gIHBheWxvYWQ6IHsgaW50ZXJhY3Rpb246IERpc2NvcmRJbnRlcmFjdGlvbjsgc2hhcmRJZDogbnVtYmVyIH0sXG4pOiB0eXBlb2YgYm90LnRyYW5zZm9ybWVycy4kaW5mZXJyZWRUeXBlcy5pbnRlcmFjdGlvbiB7XG4gIGNvbnN0IGd1aWxkSWQgPSBwYXlsb2FkLmludGVyYWN0aW9uLmd1aWxkX2lkID8gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5pbnRlcmFjdGlvbi5ndWlsZF9pZCkgOiB1bmRlZmluZWRcbiAgY29uc3QgdXNlciA9IGJvdC50cmFuc2Zvcm1lcnMudXNlcihib3QsIHBheWxvYWQuaW50ZXJhY3Rpb24ubWVtYmVyPy51c2VyID8/IHBheWxvYWQuaW50ZXJhY3Rpb24udXNlciEpXG5cbiAgY29uc3QgaW50ZXJhY3Rpb246IEludGVyYWN0aW9uID0gT2JqZWN0LmNyZWF0ZShiYXNlSW50ZXJhY3Rpb24pXG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5pbnRlcmFjdGlvblxuICAvLyBUeXBlc2NyaXB0IGhhcyBhbiBoYXJkIHRpbWUgd2l0aCB0aGlzLCBzbyB3ZSBuZWVkIHRvIHRlbGwgaGltIGZvciBzdXJlIHRoaXMgaXMgYSBCb3RcbiAgaW50ZXJhY3Rpb24uYm90ID0gYm90IGFzIHVua25vd24gYXMgQm90XG4gIGludGVyYWN0aW9uLmFja25vd2xlZGdlZCA9IGZhbHNlXG5cbiAgaWYgKHByb3BzLmlkICYmIHBheWxvYWQuaW50ZXJhY3Rpb24uaWQpIGludGVyYWN0aW9uLmlkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5pbnRlcmFjdGlvbi5pZClcbiAgaWYgKHByb3BzLmFwcGxpY2F0aW9uSWQgJiYgcGF5bG9hZC5pbnRlcmFjdGlvbi5hcHBsaWNhdGlvbl9pZClcbiAgICBpbnRlcmFjdGlvbi5hcHBsaWNhdGlvbklkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5pbnRlcmFjdGlvbi5hcHBsaWNhdGlvbl9pZClcbiAgaWYgKHByb3BzLnR5cGUgJiYgcGF5bG9hZC5pbnRlcmFjdGlvbi50eXBlKSBpbnRlcmFjdGlvbi50eXBlID0gcGF5bG9hZC5pbnRlcmFjdGlvbi50eXBlXG4gIGlmIChwcm9wcy50b2tlbiAmJiBwYXlsb2FkLmludGVyYWN0aW9uLnRva2VuKSBpbnRlcmFjdGlvbi50b2tlbiA9IHBheWxvYWQuaW50ZXJhY3Rpb24udG9rZW5cbiAgaWYgKHByb3BzLnZlcnNpb24gJiYgcGF5bG9hZC5pbnRlcmFjdGlvbi52ZXJzaW9uKSBpbnRlcmFjdGlvbi52ZXJzaW9uID0gcGF5bG9hZC5pbnRlcmFjdGlvbi52ZXJzaW9uXG4gIGlmIChwcm9wcy5sb2NhbGUgJiYgcGF5bG9hZC5pbnRlcmFjdGlvbi5sb2NhbGUpIGludGVyYWN0aW9uLmxvY2FsZSA9IHBheWxvYWQuaW50ZXJhY3Rpb24ubG9jYWxlXG4gIGlmIChwcm9wcy5ndWlsZExvY2FsZSAmJiBwYXlsb2FkLmludGVyYWN0aW9uLmd1aWxkX2xvY2FsZSkgaW50ZXJhY3Rpb24uZ3VpbGRMb2NhbGUgPSBwYXlsb2FkLmludGVyYWN0aW9uLmd1aWxkX2xvY2FsZVxuICBpZiAocHJvcHMuZ3VpbGQgJiYgcGF5bG9hZC5pbnRlcmFjdGlvbi5ndWlsZClcbiAgICAvLyBAdHMtZXhwZWN0LWVycm9yIHBheWxvYWQuaW50ZXJhY3Rpb24uZ3VpbGQgaXMgYSBQYXJ0aWFsPERpc2NvcmRHdWlsZD5cbiAgICBpbnRlcmFjdGlvbi5ndWlsZCA9IGJvdC50cmFuc2Zvcm1lcnMuZ3VpbGQoYm90LCB7IGd1aWxkOiBwYXlsb2FkLmludGVyYWN0aW9uLmd1aWxkLCBzaGFyZElkOiBwYXlsb2FkLnNoYXJkSWQgfSlcbiAgaWYgKHByb3BzLmd1aWxkSWQgJiYgZ3VpbGRJZCkgaW50ZXJhY3Rpb24uZ3VpbGRJZCA9IGd1aWxkSWRcbiAgaWYgKHByb3BzLnVzZXIgJiYgdXNlcikgaW50ZXJhY3Rpb24udXNlciA9IHVzZXJcbiAgaWYgKHByb3BzLmFwcFBlcm1pc3Npb25zICYmIHBheWxvYWQuaW50ZXJhY3Rpb24uYXBwX3Blcm1pc3Npb25zKVxuICAgIGludGVyYWN0aW9uLmFwcFBlcm1pc3Npb25zID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5pbnRlcmFjdGlvbi5hcHBfcGVybWlzc2lvbnMpXG4gIGlmIChwcm9wcy5tZXNzYWdlICYmIHBheWxvYWQuaW50ZXJhY3Rpb24ubWVzc2FnZSlcbiAgICBpbnRlcmFjdGlvbi5tZXNzYWdlID0gYm90LnRyYW5zZm9ybWVycy5tZXNzYWdlKGJvdCwgeyBtZXNzYWdlOiBwYXlsb2FkLmludGVyYWN0aW9uLm1lc3NhZ2UsIHNoYXJkSWQ6IDAgfSlcbiAgaWYgKHByb3BzLmNoYW5uZWwgJiYgcGF5bG9hZC5pbnRlcmFjdGlvbi5jaGFubmVsKVxuICAgIGludGVyYWN0aW9uLmNoYW5uZWwgPSBib3QudHJhbnNmb3JtZXJzLmNoYW5uZWwoYm90LCB7IGNoYW5uZWw6IHBheWxvYWQuaW50ZXJhY3Rpb24uY2hhbm5lbCBhcyBEaXNjb3JkQ2hhbm5lbCwgZ3VpbGRJZCB9KVxuICBpZiAocHJvcHMuY2hhbm5lbElkICYmIHBheWxvYWQuaW50ZXJhY3Rpb24uY2hhbm5lbF9pZCkgaW50ZXJhY3Rpb24uY2hhbm5lbElkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5pbnRlcmFjdGlvbi5jaGFubmVsX2lkKVxuICBpZiAocHJvcHMubWVtYmVyICYmIGd1aWxkSWQgJiYgcGF5bG9hZC5pbnRlcmFjdGlvbi5tZW1iZXIpXG4gICAgaW50ZXJhY3Rpb24ubWVtYmVyID0gYm90LnRyYW5zZm9ybWVycy5tZW1iZXIoYm90LCBwYXlsb2FkLmludGVyYWN0aW9uLm1lbWJlciwgZ3VpbGRJZCwgdXNlci5pZClcbiAgaWYgKHByb3BzLmVudGl0bGVtZW50cyAmJiBwYXlsb2FkLmludGVyYWN0aW9uLmVudGl0bGVtZW50cylcbiAgICBpbnRlcmFjdGlvbi5lbnRpdGxlbWVudHMgPSBwYXlsb2FkLmludGVyYWN0aW9uLmVudGl0bGVtZW50cy5tYXAoKGUpID0+IGJvdC50cmFuc2Zvcm1lcnMuZW50aXRsZW1lbnQoYm90LCBlKSlcbiAgaWYgKHByb3BzLmF1dGhvcml6aW5nSW50ZWdyYXRpb25Pd25lcnMgJiYgcGF5bG9hZC5pbnRlcmFjdGlvbi5hdXRob3JpemluZ19pbnRlZ3JhdGlvbl9vd25lcnMpIHtcbiAgICBpbnRlcmFjdGlvbi5hdXRob3JpemluZ0ludGVncmF0aW9uT3duZXJzID0ge31cblxuICAgIGlmIChwYXlsb2FkLmludGVyYWN0aW9uLmF1dGhvcml6aW5nX2ludGVncmF0aW9uX293bmVyc1snMCddKVxuICAgICAgaW50ZXJhY3Rpb24uYXV0aG9yaXppbmdJbnRlZ3JhdGlvbk93bmVyc1tEaXNjb3JkQXBwbGljYXRpb25JbnRlZ3JhdGlvblR5cGUuR3VpbGRJbnN0YWxsXSA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKFxuICAgICAgICBwYXlsb2FkLmludGVyYWN0aW9uLmF1dGhvcml6aW5nX2ludGVncmF0aW9uX293bmVyc1snMCddLFxuICAgICAgKVxuICAgIGlmIChwYXlsb2FkLmludGVyYWN0aW9uLmF1dGhvcml6aW5nX2ludGVncmF0aW9uX293bmVyc1snMSddKVxuICAgICAgaW50ZXJhY3Rpb24uYXV0aG9yaXppbmdJbnRlZ3JhdGlvbk93bmVyc1tEaXNjb3JkQXBwbGljYXRpb25JbnRlZ3JhdGlvblR5cGUuVXNlckluc3RhbGxdID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UoXG4gICAgICAgIHBheWxvYWQuaW50ZXJhY3Rpb24uYXV0aG9yaXppbmdfaW50ZWdyYXRpb25fb3duZXJzWycxJ10sXG4gICAgICApXG4gIH1cbiAgaWYgKHByb3BzLmNvbnRleHQgJiYgcGF5bG9hZC5pbnRlcmFjdGlvbi5jb250ZXh0KSBpbnRlcmFjdGlvbi5jb250ZXh0ID0gcGF5bG9hZC5pbnRlcmFjdGlvbi5jb250ZXh0XG4gIGlmIChwcm9wcy5hdHRhY2htZW50U2l6ZUxpbWl0ICYmIHBheWxvYWQuaW50ZXJhY3Rpb24uYXR0YWNobWVudF9zaXplX2xpbWl0KVxuICAgIGludGVyYWN0aW9uLmF0dGFjaG1lbnRTaXplTGltaXQgPSBwYXlsb2FkLmludGVyYWN0aW9uLmF0dGFjaG1lbnRfc2l6ZV9saW1pdFxuICBpZiAocHJvcHMuZGF0YSAmJiBwYXlsb2FkLmludGVyYWN0aW9uLmRhdGEpIHtcbiAgICBpbnRlcmFjdGlvbi5kYXRhID0ge1xuICAgICAgdHlwZTogcGF5bG9hZC5pbnRlcmFjdGlvbi5kYXRhLnR5cGUsXG4gICAgICBjb21wb25lbnRUeXBlOiBwYXlsb2FkLmludGVyYWN0aW9uLmRhdGEuY29tcG9uZW50X3R5cGUsXG4gICAgICBjdXN0b21JZDogcGF5bG9hZC5pbnRlcmFjdGlvbi5kYXRhLmN1c3RvbV9pZCxcbiAgICAgIGNvbXBvbmVudHM6IHBheWxvYWQuaW50ZXJhY3Rpb24uZGF0YS5jb21wb25lbnRzPy5tYXAoKGNvbXBvbmVudCkgPT4gYm90LnRyYW5zZm9ybWVycy5jb21wb25lbnQoYm90LCBjb21wb25lbnQpKSxcbiAgICAgIHZhbHVlczogcGF5bG9hZC5pbnRlcmFjdGlvbi5kYXRhLnZhbHVlcyxcbiAgICAgIGlkOiBwYXlsb2FkLmludGVyYWN0aW9uLmRhdGEuaWQgPyBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmludGVyYWN0aW9uLmRhdGEuaWQpIDogdW5kZWZpbmVkLFxuICAgICAgbmFtZTogcGF5bG9hZC5pbnRlcmFjdGlvbi5kYXRhLm5hbWUsXG4gICAgICByZXNvbHZlZDogcGF5bG9hZC5pbnRlcmFjdGlvbi5kYXRhLnJlc29sdmVkXG4gICAgICAgID8gYm90LnRyYW5zZm9ybWVycy5pbnRlcmFjdGlvbkRhdGFSZXNvbHZlZChib3QsIHsgcmVzb2x2ZWQ6IHBheWxvYWQuaW50ZXJhY3Rpb24uZGF0YS5yZXNvbHZlZCwgc2hhcmRJZDogcGF5bG9hZC5zaGFyZElkLCBndWlsZElkIH0pXG4gICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgb3B0aW9uczogcGF5bG9hZC5pbnRlcmFjdGlvbi5kYXRhLm9wdGlvbnM/Lm1hcCgob3B0KSA9PiBib3QudHJhbnNmb3JtZXJzLmludGVyYWN0aW9uRGF0YU9wdGlvbnMoYm90LCBvcHQpKSxcbiAgICAgIHRhcmdldElkOiBwYXlsb2FkLmludGVyYWN0aW9uLmRhdGEudGFyZ2V0X2lkID8gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5pbnRlcmFjdGlvbi5kYXRhLnRhcmdldF9pZCkgOiB1bmRlZmluZWQsXG4gICAgfVxuICB9XG5cbiAgLy8gVHlwZXNjcmlwdCBoYXMgYW4gaGFyZCB0aW1lIHdpdGggaW50ZXJhY3Rpb24uYm90LCBzbyB3ZSBuZWVkIHRvIHRlbGwgaGltIGZvciBzdXJlIHRoaXMgaW50ZXJhY3Rpb24gaXMgdGhlIG9mIHRoZSBjb3JyZWN0IHR5cGVcbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMuaW50ZXJhY3Rpb24oYm90LCBwYXlsb2FkLCBpbnRlcmFjdGlvbiBhcyB1bmtub3duIGFzIHR5cGVvZiBib3QudHJhbnNmb3JtZXJzLiRpbmZlcnJlZFR5cGVzLmludGVyYWN0aW9uKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtSW50ZXJhY3Rpb25EYXRhT3B0aW9uKGJvdDogQm90LCBvcHRpb246IERpc2NvcmRJbnRlcmFjdGlvbkRhdGFPcHRpb24pOiBJbnRlcmFjdGlvbkRhdGFPcHRpb24ge1xuICBjb25zdCBvcHQgPSB7XG4gICAgbmFtZTogb3B0aW9uLm5hbWUsXG4gICAgdHlwZTogb3B0aW9uLnR5cGUsXG4gICAgdmFsdWU6IG9wdGlvbi52YWx1ZSxcbiAgICBvcHRpb25zOiBvcHRpb24ub3B0aW9ucyxcbiAgICBmb2N1c2VkOiBvcHRpb24uZm9jdXNlZCxcbiAgfSBhcyBJbnRlcmFjdGlvbkRhdGFPcHRpb25cblxuICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jdXN0b21pemVycy5pbnRlcmFjdGlvbkRhdGFPcHRpb25zKGJvdCwgb3B0aW9uLCBvcHQpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1JbnRlcmFjdGlvbkRhdGFSZXNvbHZlZChcbiAgYm90OiBJbnRlcm5hbEJvdCxcbiAgcGF5bG9hZDogeyByZXNvbHZlZDogRGlzY29yZEludGVyYWN0aW9uRGF0YVJlc29sdmVkOyBzaGFyZElkOiBudW1iZXI7IGd1aWxkSWQ/OiBiaWdpbnQgfSxcbik6IEludGVyYWN0aW9uRGF0YVJlc29sdmVkIHtcbiAgY29uc3QgdHJhbnNmb3JtZWQ6IEludGVyYWN0aW9uRGF0YVJlc29sdmVkID0ge31cblxuICBpZiAocGF5bG9hZC5yZXNvbHZlZC5tZXNzYWdlcykge1xuICAgIHRyYW5zZm9ybWVkLm1lc3NhZ2VzID0gbmV3IENvbGxlY3Rpb24oXG4gICAgICBPYmplY3QuZW50cmllcyhwYXlsb2FkLnJlc29sdmVkLm1lc3NhZ2VzKS5tYXAoKFtfaWQsIHZhbHVlXSkgPT4ge1xuICAgICAgICBjb25zdCBtZXNzYWdlOiBNZXNzYWdlID0gYm90LnRyYW5zZm9ybWVycy5tZXNzYWdlKGJvdCwgeyBtZXNzYWdlOiB2YWx1ZSwgc2hhcmRJZDogcGF5bG9hZC5zaGFyZElkIH0pXG4gICAgICAgIHJldHVybiBbbWVzc2FnZS5pZCwgbWVzc2FnZV1cbiAgICAgIH0pLFxuICAgIClcbiAgfVxuXG4gIGlmIChwYXlsb2FkLnJlc29sdmVkLnVzZXJzKSB7XG4gICAgdHJhbnNmb3JtZWQudXNlcnMgPSBuZXcgQ29sbGVjdGlvbihcbiAgICAgIE9iamVjdC5lbnRyaWVzKHBheWxvYWQucmVzb2x2ZWQudXNlcnMpLm1hcCgoW19pZCwgdmFsdWVdKSA9PiB7XG4gICAgICAgIGNvbnN0IHVzZXIgPSBib3QudHJhbnNmb3JtZXJzLnVzZXIoYm90LCB2YWx1ZSlcbiAgICAgICAgcmV0dXJuIFt1c2VyLmlkLCB1c2VyXVxuICAgICAgfSksXG4gICAgKVxuICB9XG5cbiAgaWYgKHBheWxvYWQuZ3VpbGRJZCAmJiBwYXlsb2FkLnJlc29sdmVkLm1lbWJlcnMpIHtcbiAgICB0cmFuc2Zvcm1lZC5tZW1iZXJzID0gbmV3IENvbGxlY3Rpb24oXG4gICAgICBPYmplY3QuZW50cmllcyhwYXlsb2FkLnJlc29sdmVkLm1lbWJlcnMpLm1hcCgoW2lkLCB2YWx1ZV0pID0+IHtcbiAgICAgICAgY29uc3QgbWVtYmVyOiBNZW1iZXIgPSBib3QudHJhbnNmb3JtZXJzLm1lbWJlcihib3QsIHZhbHVlLCBwYXlsb2FkLmd1aWxkSWQhLCBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShpZCkpXG4gICAgICAgIHJldHVybiBbbWVtYmVyLmlkLCBtZW1iZXJdXG4gICAgICB9KSxcbiAgICApXG4gIH1cblxuICBpZiAocGF5bG9hZC5ndWlsZElkICYmIHBheWxvYWQucmVzb2x2ZWQucm9sZXMpIHtcbiAgICB0cmFuc2Zvcm1lZC5yb2xlcyA9IG5ldyBDb2xsZWN0aW9uKFxuICAgICAgT2JqZWN0LmVudHJpZXMocGF5bG9hZC5yZXNvbHZlZC5yb2xlcykubWFwKChbX2lkLCB2YWx1ZV0pID0+IHtcbiAgICAgICAgY29uc3Qgcm9sZSA9IGJvdC50cmFuc2Zvcm1lcnMucm9sZShib3QsIHsgcm9sZTogdmFsdWUsIGd1aWxkSWQ6IHBheWxvYWQuZ3VpbGRJZCEgfSlcbiAgICAgICAgcmV0dXJuIFtyb2xlLmlkLCByb2xlXVxuICAgICAgfSksXG4gICAgKVxuICB9XG5cbiAgaWYgKHBheWxvYWQucmVzb2x2ZWQuY2hhbm5lbHMpIHtcbiAgICB0cmFuc2Zvcm1lZC5jaGFubmVscyA9IG5ldyBDb2xsZWN0aW9uKFxuICAgICAgT2JqZWN0LmVudHJpZXMocGF5bG9hZC5yZXNvbHZlZC5jaGFubmVscykubWFwKChbX2lkLCB2YWx1ZV0pID0+IHtcbiAgICAgICAgY29uc3QgY2hhbm5lbCA9IGJvdC50cmFuc2Zvcm1lcnMuY2hhbm5lbChib3QsIHsgY2hhbm5lbDogdmFsdWUgfSkgYXMgSW50ZXJhY3Rpb25SZXNvbHZlZENoYW5uZWxcbiAgICAgICAgcmV0dXJuIFtjaGFubmVsLmlkLCBjaGFubmVsXVxuICAgICAgfSksXG4gICAgKVxuICB9XG5cbiAgaWYgKHBheWxvYWQucmVzb2x2ZWQuYXR0YWNobWVudHMpIHtcbiAgICB0cmFuc2Zvcm1lZC5hdHRhY2htZW50cyA9IG5ldyBDb2xsZWN0aW9uKFxuICAgICAgT2JqZWN0LmVudHJpZXMocGF5bG9hZC5yZXNvbHZlZC5hdHRhY2htZW50cykubWFwKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgICAgY29uc3QgaWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShrZXkpXG4gICAgICAgIHJldHVybiBbaWQsIGJvdC50cmFuc2Zvcm1lcnMuYXR0YWNobWVudChib3QsIHZhbHVlKV1cbiAgICAgIH0pLFxuICAgIClcbiAgfVxuXG4gIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmN1c3RvbWl6ZXJzLmludGVyYWN0aW9uRGF0YVJlc29sdmVkKGJvdCwgcGF5bG9hZCwgdHJhbnNmb3JtZWQpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1JbnRlcmFjdGlvbkNhbGxiYWNrUmVzcG9uc2UoXG4gIGJvdDogSW50ZXJuYWxCb3QsXG4gIHBheWxvYWQ6IHsgaW50ZXJhY3Rpb25DYWxsYmFja1Jlc3BvbnNlOiBEaXNjb3JkSW50ZXJhY3Rpb25DYWxsYmFja1Jlc3BvbnNlOyBzaGFyZElkOiBudW1iZXIgfSxcbik6IHR5cGVvZiBib3QudHJhbnNmb3JtZXJzLiRpbmZlcnJlZFR5cGVzLmludGVyYWN0aW9uQ2FsbGJhY2tSZXNwb25zZSB7XG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5pbnRlcmFjdGlvbkNhbGxiYWNrUmVzcG9uc2VcbiAgY29uc3QgcmVzcG9uc2UgPSB7fSBhcyBJbnRlcmFjdGlvbkNhbGxiYWNrUmVzcG9uc2VcblxuICBpZiAocHJvcHMuaW50ZXJhY3Rpb24gJiYgcGF5bG9hZC5pbnRlcmFjdGlvbkNhbGxiYWNrUmVzcG9uc2UuaW50ZXJhY3Rpb24pXG4gICAgcmVzcG9uc2UuaW50ZXJhY3Rpb24gPSBib3QudHJhbnNmb3JtZXJzLmludGVyYWN0aW9uQ2FsbGJhY2soYm90LCBwYXlsb2FkLmludGVyYWN0aW9uQ2FsbGJhY2tSZXNwb25zZS5pbnRlcmFjdGlvbilcbiAgaWYgKHByb3BzLnJlc291cmNlICYmIHBheWxvYWQuaW50ZXJhY3Rpb25DYWxsYmFja1Jlc3BvbnNlLnJlc291cmNlKVxuICAgIHJlc3BvbnNlLnJlc291cmNlID0gYm90LnRyYW5zZm9ybWVycy5pbnRlcmFjdGlvblJlc291cmNlKGJvdCwge1xuICAgICAgaW50ZXJhY3Rpb25SZXNvdXJjZTogcGF5bG9hZC5pbnRlcmFjdGlvbkNhbGxiYWNrUmVzcG9uc2UucmVzb3VyY2UsXG4gICAgICBzaGFyZElkOiBwYXlsb2FkLnNoYXJkSWQsXG4gICAgfSlcblxuICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jdXN0b21pemVycy5pbnRlcmFjdGlvbkNhbGxiYWNrUmVzcG9uc2UoYm90LCBwYXlsb2FkLmludGVyYWN0aW9uQ2FsbGJhY2tSZXNwb25zZSwgcmVzcG9uc2UpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1JbnRlcmFjdGlvbkNhbGxiYWNrKFxuICBib3Q6IEludGVybmFsQm90LFxuICBwYXlsb2FkOiBEaXNjb3JkSW50ZXJhY3Rpb25DYWxsYmFjayxcbik6IHR5cGVvZiBib3QudHJhbnNmb3JtZXJzLiRpbmZlcnJlZFR5cGVzLmludGVyYWN0aW9uQ2FsbGJhY2sge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuaW50ZXJhY3Rpb25DYWxsYmFja1xuICBjb25zdCBjYWxsYmFjayA9IHt9IGFzIEludGVyYWN0aW9uQ2FsbGJhY2tcblxuICBpZiAocHJvcHMuaWQgJiYgcGF5bG9hZC5pZCkgY2FsbGJhY2suaWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmlkKVxuICBpZiAocHJvcHMudHlwZSAmJiBwYXlsb2FkLnR5cGUpIGNhbGxiYWNrLnR5cGUgPSBwYXlsb2FkLnR5cGVcbiAgaWYgKHByb3BzLmFjdGl2aXR5SW5zdGFuY2VJZCAmJiBwYXlsb2FkLmFjdGl2aXR5X2luc3RhbmNlX2lkKSBjYWxsYmFjay5hY3Rpdml0eUluc3RhbmNlSWQgPSBwYXlsb2FkLmFjdGl2aXR5X2luc3RhbmNlX2lkXG4gIGlmIChwcm9wcy5yZXNwb25zZU1lc3NhZ2VJZCAmJiBwYXlsb2FkLnJlc3BvbnNlX21lc3NhZ2VfaWQpIGNhbGxiYWNrLnJlc3BvbnNlTWVzc2FnZUlkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5yZXNwb25zZV9tZXNzYWdlX2lkKVxuICBpZiAocHJvcHMucmVzcG9uc2VNZXNzYWdlRXBoZW1lcmFsICYmIHBheWxvYWQucmVzcG9uc2VfbWVzc2FnZV9lcGhlbWVyYWwpIGNhbGxiYWNrLnJlc3BvbnNlTWVzc2FnZUVwaGVtZXJhbCA9IHBheWxvYWQucmVzcG9uc2VfbWVzc2FnZV9lcGhlbWVyYWxcbiAgaWYgKHByb3BzLnJlc3BvbnNlTWVzc2FnZUxvYWRpbmcgJiYgcGF5bG9hZC5yZXNwb25zZV9tZXNzYWdlX2xvYWRpbmcpIGNhbGxiYWNrLnJlc3BvbnNlTWVzc2FnZUxvYWRpbmcgPSBwYXlsb2FkLnJlc3BvbnNlX21lc3NhZ2VfbG9hZGluZ1xuXG4gIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmN1c3RvbWl6ZXJzLmludGVyYWN0aW9uQ2FsbGJhY2soYm90LCBwYXlsb2FkLCBjYWxsYmFjaylcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybUludGVyYWN0aW9uUmVzb3VyY2UoXG4gIGJvdDogSW50ZXJuYWxCb3QsXG4gIHBheWxvYWQ6IHsgaW50ZXJhY3Rpb25SZXNvdXJjZTogRGlzY29yZEludGVyYWN0aW9uUmVzb3VyY2U7IHNoYXJkSWQ6IG51bWJlciB9LFxuKTogdHlwZW9mIGJvdC50cmFuc2Zvcm1lcnMuJGluZmVycmVkVHlwZXMuaW50ZXJhY3Rpb25SZXNvdXJjZSB7XG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5pbnRlcmFjdGlvblJlc291cmNlXG4gIGNvbnN0IHJlc291cmNlID0ge30gYXMgSW50ZXJhY3Rpb25SZXNvdXJjZVxuXG4gIGlmIChwcm9wcy50eXBlICYmIHBheWxvYWQuaW50ZXJhY3Rpb25SZXNvdXJjZS50eXBlKSByZXNvdXJjZS50eXBlID0gcGF5bG9hZC5pbnRlcmFjdGlvblJlc291cmNlLnR5cGVcbiAgaWYgKHByb3BzLmFjdGl2aXR5SW5zdGFuY2UgJiYgcGF5bG9hZC5pbnRlcmFjdGlvblJlc291cmNlLmFjdGl2aXR5X2luc3RhbmNlKVxuICAgIHJlc291cmNlLmFjdGl2aXR5SW5zdGFuY2UgPSBwYXlsb2FkLmludGVyYWN0aW9uUmVzb3VyY2UuYWN0aXZpdHlfaW5zdGFuY2VcbiAgaWYgKHByb3BzLm1lc3NhZ2UgJiYgcGF5bG9hZC5pbnRlcmFjdGlvblJlc291cmNlLm1lc3NhZ2UpXG4gICAgcmVzb3VyY2UubWVzc2FnZSA9IGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZShib3QsIHsgbWVzc2FnZTogcGF5bG9hZC5pbnRlcmFjdGlvblJlc291cmNlLm1lc3NhZ2UsIHNoYXJkSWQ6IHBheWxvYWQuc2hhcmRJZCB9KVxuXG4gIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmN1c3RvbWl6ZXJzLmludGVyYWN0aW9uUmVzb3VyY2UoYm90LCBwYXlsb2FkLmludGVyYWN0aW9uUmVzb3VyY2UsIHJlc291cmNlKVxufVxuIl0sIm5hbWVzIjpbImJhc2VJbnRlcmFjdGlvbiIsInRyYW5zZm9ybUludGVyYWN0aW9uIiwidHJhbnNmb3JtSW50ZXJhY3Rpb25DYWxsYmFjayIsInRyYW5zZm9ybUludGVyYWN0aW9uQ2FsbGJhY2tSZXNwb25zZSIsInRyYW5zZm9ybUludGVyYWN0aW9uRGF0YU9wdGlvbiIsInRyYW5zZm9ybUludGVyYWN0aW9uRGF0YVJlc29sdmVkIiwidHJhbnNmb3JtSW50ZXJhY3Rpb25SZXNvdXJjZSIsInVuZGVmaW5lZCIsInJlc3BvbmQiLCJyZXNwb25zZSIsIm9wdGlvbnMiLCJ0eXBlIiwiSW50ZXJhY3Rpb25SZXNwb25zZVR5cGVzIiwiQ2hhbm5lbE1lc3NhZ2VXaXRoU291cmNlIiwiY29udGVudCIsInRpdGxlIiwiTW9kYWwiLCJJbnRlcmFjdGlvblR5cGVzIiwiQXBwbGljYXRpb25Db21tYW5kQXV0b2NvbXBsZXRlIiwiQXBwbGljYXRpb25Db21tYW5kQXV0b2NvbXBsZXRlUmVzdWx0IiwiaXNQcml2YXRlIiwiZmxhZ3MiLCJNZXNzYWdlRmxhZ3MiLCJFcGhlbWVyYWwiLCJhY2tub3dsZWRnZWQiLCJib3QiLCJoZWxwZXJzIiwic2VuZEZvbGxvd3VwTWVzc2FnZSIsInRva2VuIiwiTW9kYWxTdWJtaXQiLCJFcnJvciIsInJlc3VsdCIsInNlbmRJbnRlcmFjdGlvblJlc3BvbnNlIiwiaWQiLCJkYXRhIiwid2l0aFJlc3BvbnNlIiwiZWRpdCIsIm1lc3NhZ2VJZCIsImVkaXRGb2xsb3d1cE1lc3NhZ2UiLCJNZXNzYWdlQ29tcG9uZW50IiwiVXBkYXRlTWVzc2FnZSIsImVkaXRPcmlnaW5hbEludGVyYWN0aW9uUmVzcG9uc2UiLCJkZWZlckVkaXQiLCJEZWZlcnJlZFVwZGF0ZU1lc3NhZ2UiLCJkZWZlciIsIkRlZmVycmVkQ2hhbm5lbE1lc3NhZ2VXaXRoU291cmNlIiwiZGVsZXRlIiwiZGVsZXRlRm9sbG93dXBNZXNzYWdlIiwiZGVsZXRlT3JpZ2luYWxJbnRlcmFjdGlvblJlc3BvbnNlIiwicGF5bG9hZCIsImd1aWxkSWQiLCJpbnRlcmFjdGlvbiIsImd1aWxkX2lkIiwidHJhbnNmb3JtZXJzIiwic25vd2ZsYWtlIiwidXNlciIsIm1lbWJlciIsIk9iamVjdCIsImNyZWF0ZSIsInByb3BzIiwiZGVzaXJlZFByb3BlcnRpZXMiLCJhcHBsaWNhdGlvbklkIiwiYXBwbGljYXRpb25faWQiLCJ2ZXJzaW9uIiwibG9jYWxlIiwiZ3VpbGRMb2NhbGUiLCJndWlsZF9sb2NhbGUiLCJndWlsZCIsInNoYXJkSWQiLCJhcHBQZXJtaXNzaW9ucyIsImFwcF9wZXJtaXNzaW9ucyIsIm1lc3NhZ2UiLCJjaGFubmVsIiwiY2hhbm5lbElkIiwiY2hhbm5lbF9pZCIsImVudGl0bGVtZW50cyIsIm1hcCIsImUiLCJlbnRpdGxlbWVudCIsImF1dGhvcml6aW5nSW50ZWdyYXRpb25Pd25lcnMiLCJhdXRob3JpemluZ19pbnRlZ3JhdGlvbl9vd25lcnMiLCJEaXNjb3JkQXBwbGljYXRpb25JbnRlZ3JhdGlvblR5cGUiLCJHdWlsZEluc3RhbGwiLCJVc2VySW5zdGFsbCIsImNvbnRleHQiLCJhdHRhY2htZW50U2l6ZUxpbWl0IiwiYXR0YWNobWVudF9zaXplX2xpbWl0IiwiY29tcG9uZW50VHlwZSIsImNvbXBvbmVudF90eXBlIiwiY3VzdG9tSWQiLCJjdXN0b21faWQiLCJjb21wb25lbnRzIiwiY29tcG9uZW50IiwidmFsdWVzIiwibmFtZSIsInJlc29sdmVkIiwiaW50ZXJhY3Rpb25EYXRhUmVzb2x2ZWQiLCJvcHQiLCJpbnRlcmFjdGlvbkRhdGFPcHRpb25zIiwidGFyZ2V0SWQiLCJ0YXJnZXRfaWQiLCJjdXN0b21pemVycyIsIm9wdGlvbiIsInZhbHVlIiwiZm9jdXNlZCIsInRyYW5zZm9ybWVkIiwibWVzc2FnZXMiLCJDb2xsZWN0aW9uIiwiZW50cmllcyIsIl9pZCIsInVzZXJzIiwibWVtYmVycyIsInJvbGVzIiwicm9sZSIsImNoYW5uZWxzIiwiYXR0YWNobWVudHMiLCJrZXkiLCJhdHRhY2htZW50IiwiaW50ZXJhY3Rpb25DYWxsYmFja1Jlc3BvbnNlIiwiaW50ZXJhY3Rpb25DYWxsYmFjayIsInJlc291cmNlIiwiaW50ZXJhY3Rpb25SZXNvdXJjZSIsImNhbGxiYWNrIiwiYWN0aXZpdHlJbnN0YW5jZUlkIiwiYWN0aXZpdHlfaW5zdGFuY2VfaWQiLCJyZXNwb25zZU1lc3NhZ2VJZCIsInJlc3BvbnNlX21lc3NhZ2VfaWQiLCJyZXNwb25zZU1lc3NhZ2VFcGhlbWVyYWwiLCJyZXNwb25zZV9tZXNzYWdlX2VwaGVtZXJhbCIsInJlc3BvbnNlTWVzc2FnZUxvYWRpbmciLCJyZXNwb25zZV9tZXNzYWdlX2xvYWRpbmciLCJhY3Rpdml0eUluc3RhbmNlIiwiYWN0aXZpdHlfaW5zdGFuY2UiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O1FBNEJhQTtlQUFBQTs7UUFxR0dDO2VBQUFBOztRQXNLQUM7ZUFBQUE7O1FBbEJBQztlQUFBQTs7UUEzRUFDO2VBQUFBOztRQVlBQztlQUFBQTs7UUFrR0FDO2VBQUFBOzs7dUJBN1NUO3VCQUNvQjtBQWdCcEIsTUFBTU4sa0JBQWdGO0lBQzNGLDJFQUEyRTtJQUMzRSxHQUFJTyxTQUFTO0lBRWIsTUFBTUMsU0FBUUMsUUFBUSxFQUFFQyxPQUFPO1FBQzdCLElBQUlDLE9BQU9DLCtCQUF3QixDQUFDQyx3QkFBd0I7UUFFNUQsNERBQTREO1FBQzVELElBQUksT0FBT0osYUFBYSxVQUFVQSxXQUFXO1lBQUVLLFNBQVNMO1FBQVM7UUFFakUsNEZBQTRGO1FBQzVGLElBQUlBLFNBQVNNLEtBQUssRUFBRUosT0FBT0MsK0JBQXdCLENBQUNJLEtBQUs7UUFDekQsSUFBSSxJQUFJLENBQUNMLElBQUksS0FBS00sdUJBQWdCLENBQUNDLDhCQUE4QixFQUFFUCxPQUFPQywrQkFBd0IsQ0FBQ08sb0NBQW9DO1FBQ3ZJLElBQUlSLFNBQVNDLCtCQUF3QixDQUFDQyx3QkFBd0IsSUFBSUgsU0FBU1UsV0FBVztZQUNwRlgsU0FBU1ksS0FBSyxLQUFLO1lBQ25CWixTQUFTWSxLQUFLLElBQUlDLG1CQUFZLENBQUNDLFNBQVM7UUFDMUM7UUFFQSx5RkFBeUY7UUFDekYsSUFBSSxJQUFJLENBQUNDLFlBQVksRUFBRSxPQUFPLE1BQU0sSUFBSSxDQUFDQyxHQUFHLENBQUNDLE9BQU8sQ0FBQ0MsbUJBQW1CLENBQUMsSUFBSSxDQUFDQyxLQUFLLEVBQUVuQjtRQUVyRiwyQkFBMkI7UUFDM0IsSUFBSSxJQUFJLENBQUNFLElBQUksS0FBS00sdUJBQWdCLENBQUNZLFdBQVcsSUFBSWxCLFNBQVNDLCtCQUF3QixDQUFDSSxLQUFLLEVBQ3ZGLE1BQU0sSUFBSWMsTUFBTTtRQUVsQixNQUFNQyxTQUFTLE1BQU0sSUFBSSxDQUFDTixHQUFHLENBQUNDLE9BQU8sQ0FBQ00sdUJBQXVCLENBQzNELElBQUksQ0FBQ0MsRUFBRSxFQUNQLElBQUksQ0FBQ0wsS0FBSyxFQUNWO1lBQUVqQjtZQUFNdUIsTUFBTXpCO1FBQVMsR0FDdkI7WUFBRTBCLGNBQWN6QixTQUFTeUI7UUFBYTtRQUV4QyxJQUFJLENBQUNYLFlBQVksR0FBRztRQUNwQixPQUFPTztJQUNUO0lBQ0EsTUFBTUssTUFBSzNCLFFBQVEsRUFBRTRCLFNBQVMsRUFBRTNCLE9BQU87UUFDckMsSUFBSSxJQUFJLENBQUNDLElBQUksS0FBS00sdUJBQWdCLENBQUNDLDhCQUE4QixFQUFFLE1BQU0sSUFBSVksTUFBTTtRQUVuRiw0REFBNEQ7UUFDNUQsSUFBSSxPQUFPckIsYUFBYSxVQUFVQSxXQUFXO1lBQUVLLFNBQVNMO1FBQVM7UUFFakUsSUFBSTRCLFdBQVc7WUFDYixPQUFPLE1BQU0sSUFBSSxDQUFDWixHQUFHLEVBQUVDLFFBQVFZLG9CQUFvQixJQUFJLENBQUNWLEtBQUssRUFBRVMsV0FBVzVCO1FBQzVFO1FBRUEsSUFBSSxDQUFDLElBQUksQ0FBQ2UsWUFBWSxFQUFFO1lBQ3RCLElBQUksSUFBSSxDQUFDYixJQUFJLEtBQUtNLHVCQUFnQixDQUFDc0IsZ0JBQWdCLElBQUksSUFBSSxDQUFDNUIsSUFBSSxLQUFLTSx1QkFBZ0IsQ0FBQ1ksV0FBVyxFQUMvRixNQUFNLElBQUlDLE1BQU07WUFFbEIsTUFBTUMsU0FBUyxNQUFNLElBQUksQ0FBQ04sR0FBRyxDQUFDQyxPQUFPLENBQUNNLHVCQUF1QixDQUMzRCxJQUFJLENBQUNDLEVBQUUsRUFDUCxJQUFJLENBQUNMLEtBQUssRUFDVjtnQkFBRWpCLE1BQU1DLCtCQUF3QixDQUFDNEIsYUFBYTtnQkFBRU4sTUFBTXpCO1lBQVMsR0FDL0RDO1lBRUYsSUFBSSxDQUFDYyxZQUFZLEdBQUc7WUFDcEIsT0FBT087UUFDVDtRQUVBLE9BQU8sTUFBTSxJQUFJLENBQUNOLEdBQUcsQ0FBQ0MsT0FBTyxDQUFDZSwrQkFBK0IsQ0FBQyxJQUFJLENBQUNiLEtBQUssRUFBRW5CO0lBQzVFO0lBQ0EsTUFBTWlDLFdBQVVoQyxPQUFPO1FBQ3JCLElBQUksSUFBSSxDQUFDQyxJQUFJLEtBQUtNLHVCQUFnQixDQUFDQyw4QkFBOEIsRUFBRSxNQUFNLElBQUlZLE1BQU07UUFDbkYsSUFBSSxJQUFJLENBQUNOLFlBQVksRUFBRSxNQUFNLElBQUlNLE1BQU07UUFFdkMsSUFBSSxJQUFJLENBQUNuQixJQUFJLEtBQUtNLHVCQUFnQixDQUFDc0IsZ0JBQWdCLElBQUksSUFBSSxDQUFDNUIsSUFBSSxLQUFLTSx1QkFBZ0IsQ0FBQ1ksV0FBVyxFQUMvRixNQUFNLElBQUlDLE1BQU07UUFFbEIsTUFBTUMsU0FBUyxNQUFNLElBQUksQ0FBQ04sR0FBRyxDQUFDQyxPQUFPLENBQUNNLHVCQUF1QixDQUMzRCxJQUFJLENBQUNDLEVBQUUsRUFDUCxJQUFJLENBQUNMLEtBQUssRUFDVjtZQUFFakIsTUFBTUMsK0JBQXdCLENBQUMrQixxQkFBcUI7UUFBQyxHQUN2RGpDO1FBRUYsSUFBSSxDQUFDYyxZQUFZLEdBQUc7UUFDcEIsT0FBT087SUFDVDtJQUNBLE1BQU1hLE9BQU14QixTQUFTLEVBQUVWLE9BQU87UUFDNUIsSUFBSSxJQUFJLENBQUNjLFlBQVksRUFBRSxNQUFNLElBQUlNLE1BQU07UUFFdkMsTUFBTUMsU0FBUyxNQUFNLElBQUksQ0FBQ04sR0FBRyxDQUFDQyxPQUFPLENBQUNNLHVCQUF1QixDQUMzRCxJQUFJLENBQUNDLEVBQUUsRUFDUCxJQUFJLENBQUNMLEtBQUssRUFDVjtZQUNFakIsTUFBTUMsK0JBQXdCLENBQUNpQyxnQ0FBZ0M7WUFDL0RYLE1BQU07Z0JBQ0piLE9BQU9ELFlBQVlFLG1CQUFZLENBQUNDLFNBQVMsR0FBR2hCO1lBQzlDO1FBQ0YsR0FDQUc7UUFFRixJQUFJLENBQUNjLFlBQVksR0FBRztRQUNwQixPQUFPTztJQUNUO0lBQ0EsTUFBTWUsUUFBT1QsU0FBUztRQUNwQixJQUFJLElBQUksQ0FBQzFCLElBQUksS0FBS00sdUJBQWdCLENBQUNDLDhCQUE4QixFQUFFLE1BQU0sSUFBSVksTUFBTTtRQUVuRixJQUFJTyxXQUFXLE9BQU8sTUFBTSxJQUFJLENBQUNaLEdBQUcsRUFBRUMsUUFBUXFCLHNCQUFzQixJQUFJLENBQUNuQixLQUFLLEVBQUVTO2FBQzNFLE9BQU8sTUFBTSxJQUFJLENBQUNaLEdBQUcsRUFBRUMsUUFBUXNCLGtDQUFrQyxJQUFJLENBQUNwQixLQUFLO0lBQ2xGO0FBQ0Y7QUFFTyxTQUFTM0IscUJBQ2R3QixHQUFnQixFQUNoQndCLE9BQTZEO0lBRTdELE1BQU1DLFVBQVVELFFBQVFFLFdBQVcsQ0FBQ0MsUUFBUSxHQUFHM0IsSUFBSTRCLFlBQVksQ0FBQ0MsU0FBUyxDQUFDTCxRQUFRRSxXQUFXLENBQUNDLFFBQVEsSUFBSTdDO0lBQzFHLE1BQU1nRCxPQUFPOUIsSUFBSTRCLFlBQVksQ0FBQ0UsSUFBSSxDQUFDOUIsS0FBS3dCLFFBQVFFLFdBQVcsQ0FBQ0ssTUFBTSxFQUFFRCxRQUFRTixRQUFRRSxXQUFXLENBQUNJLElBQUk7SUFFcEcsTUFBTUosY0FBMkJNLE9BQU9DLE1BQU0sQ0FBQzFEO0lBQy9DLE1BQU0yRCxRQUFRbEMsSUFBSTRCLFlBQVksQ0FBQ08saUJBQWlCLENBQUNULFdBQVc7SUFDNUQsdUZBQXVGO0lBQ3ZGQSxZQUFZMUIsR0FBRyxHQUFHQTtJQUNsQjBCLFlBQVkzQixZQUFZLEdBQUc7SUFFM0IsSUFBSW1DLE1BQU0xQixFQUFFLElBQUlnQixRQUFRRSxXQUFXLENBQUNsQixFQUFFLEVBQUVrQixZQUFZbEIsRUFBRSxHQUFHUixJQUFJNEIsWUFBWSxDQUFDQyxTQUFTLENBQUNMLFFBQVFFLFdBQVcsQ0FBQ2xCLEVBQUU7SUFDMUcsSUFBSTBCLE1BQU1FLGFBQWEsSUFBSVosUUFBUUUsV0FBVyxDQUFDVyxjQUFjLEVBQzNEWCxZQUFZVSxhQUFhLEdBQUdwQyxJQUFJNEIsWUFBWSxDQUFDQyxTQUFTLENBQUNMLFFBQVFFLFdBQVcsQ0FBQ1csY0FBYztJQUMzRixJQUFJSCxNQUFNaEQsSUFBSSxJQUFJc0MsUUFBUUUsV0FBVyxDQUFDeEMsSUFBSSxFQUFFd0MsWUFBWXhDLElBQUksR0FBR3NDLFFBQVFFLFdBQVcsQ0FBQ3hDLElBQUk7SUFDdkYsSUFBSWdELE1BQU0vQixLQUFLLElBQUlxQixRQUFRRSxXQUFXLENBQUN2QixLQUFLLEVBQUV1QixZQUFZdkIsS0FBSyxHQUFHcUIsUUFBUUUsV0FBVyxDQUFDdkIsS0FBSztJQUMzRixJQUFJK0IsTUFBTUksT0FBTyxJQUFJZCxRQUFRRSxXQUFXLENBQUNZLE9BQU8sRUFBRVosWUFBWVksT0FBTyxHQUFHZCxRQUFRRSxXQUFXLENBQUNZLE9BQU87SUFDbkcsSUFBSUosTUFBTUssTUFBTSxJQUFJZixRQUFRRSxXQUFXLENBQUNhLE1BQU0sRUFBRWIsWUFBWWEsTUFBTSxHQUFHZixRQUFRRSxXQUFXLENBQUNhLE1BQU07SUFDL0YsSUFBSUwsTUFBTU0sV0FBVyxJQUFJaEIsUUFBUUUsV0FBVyxDQUFDZSxZQUFZLEVBQUVmLFlBQVljLFdBQVcsR0FBR2hCLFFBQVFFLFdBQVcsQ0FBQ2UsWUFBWTtJQUNySCxJQUFJUCxNQUFNUSxLQUFLLElBQUlsQixRQUFRRSxXQUFXLENBQUNnQixLQUFLLEVBQzFDLHdFQUF3RTtJQUN4RWhCLFlBQVlnQixLQUFLLEdBQUcxQyxJQUFJNEIsWUFBWSxDQUFDYyxLQUFLLENBQUMxQyxLQUFLO1FBQUUwQyxPQUFPbEIsUUFBUUUsV0FBVyxDQUFDZ0IsS0FBSztRQUFFQyxTQUFTbkIsUUFBUW1CLE9BQU87SUFBQztJQUMvRyxJQUFJVCxNQUFNVCxPQUFPLElBQUlBLFNBQVNDLFlBQVlELE9BQU8sR0FBR0E7SUFDcEQsSUFBSVMsTUFBTUosSUFBSSxJQUFJQSxNQUFNSixZQUFZSSxJQUFJLEdBQUdBO0lBQzNDLElBQUlJLE1BQU1VLGNBQWMsSUFBSXBCLFFBQVFFLFdBQVcsQ0FBQ21CLGVBQWUsRUFDN0RuQixZQUFZa0IsY0FBYyxHQUFHNUMsSUFBSTRCLFlBQVksQ0FBQ0MsU0FBUyxDQUFDTCxRQUFRRSxXQUFXLENBQUNtQixlQUFlO0lBQzdGLElBQUlYLE1BQU1ZLE9BQU8sSUFBSXRCLFFBQVFFLFdBQVcsQ0FBQ29CLE9BQU8sRUFDOUNwQixZQUFZb0IsT0FBTyxHQUFHOUMsSUFBSTRCLFlBQVksQ0FBQ2tCLE9BQU8sQ0FBQzlDLEtBQUs7UUFBRThDLFNBQVN0QixRQUFRRSxXQUFXLENBQUNvQixPQUFPO1FBQUVILFNBQVM7SUFBRTtJQUN6RyxJQUFJVCxNQUFNYSxPQUFPLElBQUl2QixRQUFRRSxXQUFXLENBQUNxQixPQUFPLEVBQzlDckIsWUFBWXFCLE9BQU8sR0FBRy9DLElBQUk0QixZQUFZLENBQUNtQixPQUFPLENBQUMvQyxLQUFLO1FBQUUrQyxTQUFTdkIsUUFBUUUsV0FBVyxDQUFDcUIsT0FBTztRQUFvQnRCO0lBQVE7SUFDeEgsSUFBSVMsTUFBTWMsU0FBUyxJQUFJeEIsUUFBUUUsV0FBVyxDQUFDdUIsVUFBVSxFQUFFdkIsWUFBWXNCLFNBQVMsR0FBR2hELElBQUk0QixZQUFZLENBQUNDLFNBQVMsQ0FBQ0wsUUFBUUUsV0FBVyxDQUFDdUIsVUFBVTtJQUN4SSxJQUFJZixNQUFNSCxNQUFNLElBQUlOLFdBQVdELFFBQVFFLFdBQVcsQ0FBQ0ssTUFBTSxFQUN2REwsWUFBWUssTUFBTSxHQUFHL0IsSUFBSTRCLFlBQVksQ0FBQ0csTUFBTSxDQUFDL0IsS0FBS3dCLFFBQVFFLFdBQVcsQ0FBQ0ssTUFBTSxFQUFFTixTQUFTSyxLQUFLdEIsRUFBRTtJQUNoRyxJQUFJMEIsTUFBTWdCLFlBQVksSUFBSTFCLFFBQVFFLFdBQVcsQ0FBQ3dCLFlBQVksRUFDeER4QixZQUFZd0IsWUFBWSxHQUFHMUIsUUFBUUUsV0FBVyxDQUFDd0IsWUFBWSxDQUFDQyxHQUFHLENBQUMsQ0FBQ0MsSUFBTXBELElBQUk0QixZQUFZLENBQUN5QixXQUFXLENBQUNyRCxLQUFLb0Q7SUFDM0csSUFBSWxCLE1BQU1vQiw0QkFBNEIsSUFBSTlCLFFBQVFFLFdBQVcsQ0FBQzZCLDhCQUE4QixFQUFFO1FBQzVGN0IsWUFBWTRCLDRCQUE0QixHQUFHLENBQUM7UUFFNUMsSUFBSTlCLFFBQVFFLFdBQVcsQ0FBQzZCLDhCQUE4QixDQUFDLElBQUksRUFDekQ3QixZQUFZNEIsNEJBQTRCLENBQUNFLHdDQUFpQyxDQUFDQyxZQUFZLENBQUMsR0FBR3pELElBQUk0QixZQUFZLENBQUNDLFNBQVMsQ0FDbkhMLFFBQVFFLFdBQVcsQ0FBQzZCLDhCQUE4QixDQUFDLElBQUk7UUFFM0QsSUFBSS9CLFFBQVFFLFdBQVcsQ0FBQzZCLDhCQUE4QixDQUFDLElBQUksRUFDekQ3QixZQUFZNEIsNEJBQTRCLENBQUNFLHdDQUFpQyxDQUFDRSxXQUFXLENBQUMsR0FBRzFELElBQUk0QixZQUFZLENBQUNDLFNBQVMsQ0FDbEhMLFFBQVFFLFdBQVcsQ0FBQzZCLDhCQUE4QixDQUFDLElBQUk7SUFFN0Q7SUFDQSxJQUFJckIsTUFBTXlCLE9BQU8sSUFBSW5DLFFBQVFFLFdBQVcsQ0FBQ2lDLE9BQU8sRUFBRWpDLFlBQVlpQyxPQUFPLEdBQUduQyxRQUFRRSxXQUFXLENBQUNpQyxPQUFPO0lBQ25HLElBQUl6QixNQUFNMEIsbUJBQW1CLElBQUlwQyxRQUFRRSxXQUFXLENBQUNtQyxxQkFBcUIsRUFDeEVuQyxZQUFZa0MsbUJBQW1CLEdBQUdwQyxRQUFRRSxXQUFXLENBQUNtQyxxQkFBcUI7SUFDN0UsSUFBSTNCLE1BQU16QixJQUFJLElBQUllLFFBQVFFLFdBQVcsQ0FBQ2pCLElBQUksRUFBRTtRQUMxQ2lCLFlBQVlqQixJQUFJLEdBQUc7WUFDakJ2QixNQUFNc0MsUUFBUUUsV0FBVyxDQUFDakIsSUFBSSxDQUFDdkIsSUFBSTtZQUNuQzRFLGVBQWV0QyxRQUFRRSxXQUFXLENBQUNqQixJQUFJLENBQUNzRCxjQUFjO1lBQ3REQyxVQUFVeEMsUUFBUUUsV0FBVyxDQUFDakIsSUFBSSxDQUFDd0QsU0FBUztZQUM1Q0MsWUFBWTFDLFFBQVFFLFdBQVcsQ0FBQ2pCLElBQUksQ0FBQ3lELFVBQVUsRUFBRWYsSUFBSSxDQUFDZ0IsWUFBY25FLElBQUk0QixZQUFZLENBQUN1QyxTQUFTLENBQUNuRSxLQUFLbUU7WUFDcEdDLFFBQVE1QyxRQUFRRSxXQUFXLENBQUNqQixJQUFJLENBQUMyRCxNQUFNO1lBQ3ZDNUQsSUFBSWdCLFFBQVFFLFdBQVcsQ0FBQ2pCLElBQUksQ0FBQ0QsRUFBRSxHQUFHUixJQUFJNEIsWUFBWSxDQUFDQyxTQUFTLENBQUNMLFFBQVFFLFdBQVcsQ0FBQ2pCLElBQUksQ0FBQ0QsRUFBRSxJQUFJMUI7WUFDNUZ1RixNQUFNN0MsUUFBUUUsV0FBVyxDQUFDakIsSUFBSSxDQUFDNEQsSUFBSTtZQUNuQ0MsVUFBVTlDLFFBQVFFLFdBQVcsQ0FBQ2pCLElBQUksQ0FBQzZELFFBQVEsR0FDdkN0RSxJQUFJNEIsWUFBWSxDQUFDMkMsdUJBQXVCLENBQUN2RSxLQUFLO2dCQUFFc0UsVUFBVTlDLFFBQVFFLFdBQVcsQ0FBQ2pCLElBQUksQ0FBQzZELFFBQVE7Z0JBQUUzQixTQUFTbkIsUUFBUW1CLE9BQU87Z0JBQUVsQjtZQUFRLEtBQy9IM0M7WUFDSkcsU0FBU3VDLFFBQVFFLFdBQVcsQ0FBQ2pCLElBQUksQ0FBQ3hCLE9BQU8sRUFBRWtFLElBQUksQ0FBQ3FCLE1BQVF4RSxJQUFJNEIsWUFBWSxDQUFDNkMsc0JBQXNCLENBQUN6RSxLQUFLd0U7WUFDckdFLFVBQVVsRCxRQUFRRSxXQUFXLENBQUNqQixJQUFJLENBQUNrRSxTQUFTLEdBQUczRSxJQUFJNEIsWUFBWSxDQUFDQyxTQUFTLENBQUNMLFFBQVFFLFdBQVcsQ0FBQ2pCLElBQUksQ0FBQ2tFLFNBQVMsSUFBSTdGO1FBQ2xIO0lBQ0Y7SUFFQSxnSUFBZ0k7SUFDaEksT0FBT2tCLElBQUk0QixZQUFZLENBQUNnRCxXQUFXLENBQUNsRCxXQUFXLENBQUMxQixLQUFLd0IsU0FBU0U7QUFDaEU7QUFFTyxTQUFTL0MsK0JBQStCcUIsR0FBUSxFQUFFNkUsTUFBb0M7SUFDM0YsTUFBTUwsTUFBTTtRQUNWSCxNQUFNUSxPQUFPUixJQUFJO1FBQ2pCbkYsTUFBTTJGLE9BQU8zRixJQUFJO1FBQ2pCNEYsT0FBT0QsT0FBT0MsS0FBSztRQUNuQjdGLFNBQVM0RixPQUFPNUYsT0FBTztRQUN2QjhGLFNBQVNGLE9BQU9FLE9BQU87SUFDekI7SUFFQSxPQUFPL0UsSUFBSTRCLFlBQVksQ0FBQ2dELFdBQVcsQ0FBQ0gsc0JBQXNCLENBQUN6RSxLQUFLNkUsUUFBUUw7QUFDMUU7QUFFTyxTQUFTNUYsaUNBQ2RvQixHQUFnQixFQUNoQndCLE9BQXdGO0lBRXhGLE1BQU13RCxjQUF1QyxDQUFDO0lBRTlDLElBQUl4RCxRQUFROEMsUUFBUSxDQUFDVyxRQUFRLEVBQUU7UUFDN0JELFlBQVlDLFFBQVEsR0FBRyxJQUFJQyxpQkFBVSxDQUNuQ2xELE9BQU9tRCxPQUFPLENBQUMzRCxRQUFROEMsUUFBUSxDQUFDVyxRQUFRLEVBQUU5QixHQUFHLENBQUMsQ0FBQyxDQUFDaUMsS0FBS04sTUFBTTtZQUN6RCxNQUFNaEMsVUFBbUI5QyxJQUFJNEIsWUFBWSxDQUFDa0IsT0FBTyxDQUFDOUMsS0FBSztnQkFBRThDLFNBQVNnQztnQkFBT25DLFNBQVNuQixRQUFRbUIsT0FBTztZQUFDO1lBQ2xHLE9BQU87Z0JBQUNHLFFBQVF0QyxFQUFFO2dCQUFFc0M7YUFBUTtRQUM5QjtJQUVKO0lBRUEsSUFBSXRCLFFBQVE4QyxRQUFRLENBQUNlLEtBQUssRUFBRTtRQUMxQkwsWUFBWUssS0FBSyxHQUFHLElBQUlILGlCQUFVLENBQ2hDbEQsT0FBT21ELE9BQU8sQ0FBQzNELFFBQVE4QyxRQUFRLENBQUNlLEtBQUssRUFBRWxDLEdBQUcsQ0FBQyxDQUFDLENBQUNpQyxLQUFLTixNQUFNO1lBQ3RELE1BQU1oRCxPQUFPOUIsSUFBSTRCLFlBQVksQ0FBQ0UsSUFBSSxDQUFDOUIsS0FBSzhFO1lBQ3hDLE9BQU87Z0JBQUNoRCxLQUFLdEIsRUFBRTtnQkFBRXNCO2FBQUs7UUFDeEI7SUFFSjtJQUVBLElBQUlOLFFBQVFDLE9BQU8sSUFBSUQsUUFBUThDLFFBQVEsQ0FBQ2dCLE9BQU8sRUFBRTtRQUMvQ04sWUFBWU0sT0FBTyxHQUFHLElBQUlKLGlCQUFVLENBQ2xDbEQsT0FBT21ELE9BQU8sQ0FBQzNELFFBQVE4QyxRQUFRLENBQUNnQixPQUFPLEVBQUVuQyxHQUFHLENBQUMsQ0FBQyxDQUFDM0MsSUFBSXNFLE1BQU07WUFDdkQsTUFBTS9DLFNBQWlCL0IsSUFBSTRCLFlBQVksQ0FBQ0csTUFBTSxDQUFDL0IsS0FBSzhFLE9BQU90RCxRQUFRQyxPQUFPLEVBQUd6QixJQUFJNEIsWUFBWSxDQUFDQyxTQUFTLENBQUNyQjtZQUN4RyxPQUFPO2dCQUFDdUIsT0FBT3ZCLEVBQUU7Z0JBQUV1QjthQUFPO1FBQzVCO0lBRUo7SUFFQSxJQUFJUCxRQUFRQyxPQUFPLElBQUlELFFBQVE4QyxRQUFRLENBQUNpQixLQUFLLEVBQUU7UUFDN0NQLFlBQVlPLEtBQUssR0FBRyxJQUFJTCxpQkFBVSxDQUNoQ2xELE9BQU9tRCxPQUFPLENBQUMzRCxRQUFROEMsUUFBUSxDQUFDaUIsS0FBSyxFQUFFcEMsR0FBRyxDQUFDLENBQUMsQ0FBQ2lDLEtBQUtOLE1BQU07WUFDdEQsTUFBTVUsT0FBT3hGLElBQUk0QixZQUFZLENBQUM0RCxJQUFJLENBQUN4RixLQUFLO2dCQUFFd0YsTUFBTVY7Z0JBQU9yRCxTQUFTRCxRQUFRQyxPQUFPO1lBQUU7WUFDakYsT0FBTztnQkFBQytELEtBQUtoRixFQUFFO2dCQUFFZ0Y7YUFBSztRQUN4QjtJQUVKO0lBRUEsSUFBSWhFLFFBQVE4QyxRQUFRLENBQUNtQixRQUFRLEVBQUU7UUFDN0JULFlBQVlTLFFBQVEsR0FBRyxJQUFJUCxpQkFBVSxDQUNuQ2xELE9BQU9tRCxPQUFPLENBQUMzRCxRQUFROEMsUUFBUSxDQUFDbUIsUUFBUSxFQUFFdEMsR0FBRyxDQUFDLENBQUMsQ0FBQ2lDLEtBQUtOLE1BQU07WUFDekQsTUFBTS9CLFVBQVUvQyxJQUFJNEIsWUFBWSxDQUFDbUIsT0FBTyxDQUFDL0MsS0FBSztnQkFBRStDLFNBQVMrQjtZQUFNO1lBQy9ELE9BQU87Z0JBQUMvQixRQUFRdkMsRUFBRTtnQkFBRXVDO2FBQVE7UUFDOUI7SUFFSjtJQUVBLElBQUl2QixRQUFROEMsUUFBUSxDQUFDb0IsV0FBVyxFQUFFO1FBQ2hDVixZQUFZVSxXQUFXLEdBQUcsSUFBSVIsaUJBQVUsQ0FDdENsRCxPQUFPbUQsT0FBTyxDQUFDM0QsUUFBUThDLFFBQVEsQ0FBQ29CLFdBQVcsRUFBRXZDLEdBQUcsQ0FBQyxDQUFDLENBQUN3QyxLQUFLYixNQUFNO1lBQzVELE1BQU10RSxLQUFLUixJQUFJNEIsWUFBWSxDQUFDQyxTQUFTLENBQUM4RDtZQUN0QyxPQUFPO2dCQUFDbkY7Z0JBQUlSLElBQUk0QixZQUFZLENBQUNnRSxVQUFVLENBQUM1RixLQUFLOEU7YUFBTztRQUN0RDtJQUVKO0lBRUEsT0FBTzlFLElBQUk0QixZQUFZLENBQUNnRCxXQUFXLENBQUNMLHVCQUF1QixDQUFDdkUsS0FBS3dCLFNBQVN3RDtBQUM1RTtBQUVPLFNBQVN0RyxxQ0FDZHNCLEdBQWdCLEVBQ2hCd0IsT0FBNkY7SUFFN0YsTUFBTVUsUUFBUWxDLElBQUk0QixZQUFZLENBQUNPLGlCQUFpQixDQUFDMEQsMkJBQTJCO0lBQzVFLE1BQU03RyxXQUFXLENBQUM7SUFFbEIsSUFBSWtELE1BQU1SLFdBQVcsSUFBSUYsUUFBUXFFLDJCQUEyQixDQUFDbkUsV0FBVyxFQUN0RTFDLFNBQVMwQyxXQUFXLEdBQUcxQixJQUFJNEIsWUFBWSxDQUFDa0UsbUJBQW1CLENBQUM5RixLQUFLd0IsUUFBUXFFLDJCQUEyQixDQUFDbkUsV0FBVztJQUNsSCxJQUFJUSxNQUFNNkQsUUFBUSxJQUFJdkUsUUFBUXFFLDJCQUEyQixDQUFDRSxRQUFRLEVBQ2hFL0csU0FBUytHLFFBQVEsR0FBRy9GLElBQUk0QixZQUFZLENBQUNvRSxtQkFBbUIsQ0FBQ2hHLEtBQUs7UUFDNURnRyxxQkFBcUJ4RSxRQUFRcUUsMkJBQTJCLENBQUNFLFFBQVE7UUFDakVwRCxTQUFTbkIsUUFBUW1CLE9BQU87SUFDMUI7SUFFRixPQUFPM0MsSUFBSTRCLFlBQVksQ0FBQ2dELFdBQVcsQ0FBQ2lCLDJCQUEyQixDQUFDN0YsS0FBS3dCLFFBQVFxRSwyQkFBMkIsRUFBRTdHO0FBQzVHO0FBRU8sU0FBU1AsNkJBQ2R1QixHQUFnQixFQUNoQndCLE9BQW1DO0lBRW5DLE1BQU1VLFFBQVFsQyxJQUFJNEIsWUFBWSxDQUFDTyxpQkFBaUIsQ0FBQzJELG1CQUFtQjtJQUNwRSxNQUFNRyxXQUFXLENBQUM7SUFFbEIsSUFBSS9ELE1BQU0xQixFQUFFLElBQUlnQixRQUFRaEIsRUFBRSxFQUFFeUYsU0FBU3pGLEVBQUUsR0FBR1IsSUFBSTRCLFlBQVksQ0FBQ0MsU0FBUyxDQUFDTCxRQUFRaEIsRUFBRTtJQUMvRSxJQUFJMEIsTUFBTWhELElBQUksSUFBSXNDLFFBQVF0QyxJQUFJLEVBQUUrRyxTQUFTL0csSUFBSSxHQUFHc0MsUUFBUXRDLElBQUk7SUFDNUQsSUFBSWdELE1BQU1nRSxrQkFBa0IsSUFBSTFFLFFBQVEyRSxvQkFBb0IsRUFBRUYsU0FBU0Msa0JBQWtCLEdBQUcxRSxRQUFRMkUsb0JBQW9CO0lBQ3hILElBQUlqRSxNQUFNa0UsaUJBQWlCLElBQUk1RSxRQUFRNkUsbUJBQW1CLEVBQUVKLFNBQVNHLGlCQUFpQixHQUFHcEcsSUFBSTRCLFlBQVksQ0FBQ0MsU0FBUyxDQUFDTCxRQUFRNkUsbUJBQW1CO0lBQy9JLElBQUluRSxNQUFNb0Usd0JBQXdCLElBQUk5RSxRQUFRK0UsMEJBQTBCLEVBQUVOLFNBQVNLLHdCQUF3QixHQUFHOUUsUUFBUStFLDBCQUEwQjtJQUNoSixJQUFJckUsTUFBTXNFLHNCQUFzQixJQUFJaEYsUUFBUWlGLHdCQUF3QixFQUFFUixTQUFTTyxzQkFBc0IsR0FBR2hGLFFBQVFpRix3QkFBd0I7SUFFeEksT0FBT3pHLElBQUk0QixZQUFZLENBQUNnRCxXQUFXLENBQUNrQixtQkFBbUIsQ0FBQzlGLEtBQUt3QixTQUFTeUU7QUFDeEU7QUFFTyxTQUFTcEgsNkJBQ2RtQixHQUFnQixFQUNoQndCLE9BQTZFO0lBRTdFLE1BQU1VLFFBQVFsQyxJQUFJNEIsWUFBWSxDQUFDTyxpQkFBaUIsQ0FBQzZELG1CQUFtQjtJQUNwRSxNQUFNRCxXQUFXLENBQUM7SUFFbEIsSUFBSTdELE1BQU1oRCxJQUFJLElBQUlzQyxRQUFRd0UsbUJBQW1CLENBQUM5RyxJQUFJLEVBQUU2RyxTQUFTN0csSUFBSSxHQUFHc0MsUUFBUXdFLG1CQUFtQixDQUFDOUcsSUFBSTtJQUNwRyxJQUFJZ0QsTUFBTXdFLGdCQUFnQixJQUFJbEYsUUFBUXdFLG1CQUFtQixDQUFDVyxpQkFBaUIsRUFDekVaLFNBQVNXLGdCQUFnQixHQUFHbEYsUUFBUXdFLG1CQUFtQixDQUFDVyxpQkFBaUI7SUFDM0UsSUFBSXpFLE1BQU1ZLE9BQU8sSUFBSXRCLFFBQVF3RSxtQkFBbUIsQ0FBQ2xELE9BQU8sRUFDdERpRCxTQUFTakQsT0FBTyxHQUFHOUMsSUFBSTRCLFlBQVksQ0FBQ2tCLE9BQU8sQ0FBQzlDLEtBQUs7UUFBRThDLFNBQVN0QixRQUFRd0UsbUJBQW1CLENBQUNsRCxPQUFPO1FBQUVILFNBQVNuQixRQUFRbUIsT0FBTztJQUFDO0lBRTVILE9BQU8zQyxJQUFJNEIsWUFBWSxDQUFDZ0QsV0FBVyxDQUFDb0IsbUJBQW1CLENBQUNoRyxLQUFLd0IsUUFBUXdFLG1CQUFtQixFQUFFRDtBQUM1RiJ9
@@ -49,4 +49,4 @@ function transformInvite(bot, payload) {
49
49
  return bot.transformers.customizers.invite(bot, payload.invite, invite);
50
50
  }
51
51
 
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvaW52aXRlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRGlzY29yZEFwcGxpY2F0aW9uLCBEaXNjb3JkSW52aXRlQ3JlYXRlLCBEaXNjb3JkSW52aXRlTWV0YWRhdGEgfSBmcm9tICdAZGlzY29yZGVuby90eXBlcydcbmltcG9ydCB7IHR5cGUgSW50ZXJuYWxCb3QsIHR5cGUgSW52aXRlLCBUb2dnbGVCaXRmaWVsZCwgaXNJbnZpdGVXaXRoTWV0YWRhdGEgfSBmcm9tICcuLi9pbmRleC5qcydcblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybUludml0ZShcbiAgYm90OiBJbnRlcm5hbEJvdCxcbiAgcGF5bG9hZDogeyBpbnZpdGU6IERpc2NvcmRJbnZpdGVDcmVhdGUgfCBEaXNjb3JkSW52aXRlTWV0YWRhdGE7IHNoYXJkSWQ6IG51bWJlciB9LFxuKTogdHlwZW9mIGJvdC50cmFuc2Zvcm1lcnMuJGluZmVycmVkVHlwZXMuaW52aXRlIHtcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLmludml0ZVxuICBjb25zdCBpbnZpdGUgPSB7fSBhcyBJbnZpdGVcblxuICBpZiAocHJvcHMudHlwZSAmJiAndHlwZScgaW4gcGF5bG9hZC5pbnZpdGUpIGludml0ZS50eXBlID0gcGF5bG9hZC5pbnZpdGUudHlwZVxuICBpZiAocHJvcHMuY29kZSAmJiBwYXlsb2FkLmludml0ZS5jb2RlKSBpbnZpdGUuY29kZSA9IHBheWxvYWQuaW52aXRlLmNvZGVcbiAgaWYgKHByb3BzLmNyZWF0ZWRBdCAmJiBwYXlsb2FkLmludml0ZS5jcmVhdGVkX2F0KSBpbnZpdGUuY3JlYXRlZEF0ID0gRGF0ZS5wYXJzZShwYXlsb2FkLmludml0ZS5jcmVhdGVkX2F0KVxuICBpZiAocHJvcHMuaW52aXRlciAmJiBwYXlsb2FkLmludml0ZS5pbnZpdGVyKSBpbnZpdGUuaW52aXRlciA9IGJvdC50cmFuc2Zvcm1lcnMudXNlcihib3QsIHBheWxvYWQuaW52aXRlLmludml0ZXIpXG4gIGlmIChwcm9wcy5tYXhBZ2UpIGludml0ZS5tYXhBZ2UgPSBwYXlsb2FkLmludml0ZS5tYXhfYWdlXG4gIGlmIChwcm9wcy5tYXhVc2VzKSBpbnZpdGUubWF4VXNlcyA9IHBheWxvYWQuaW52aXRlLm1heF91c2VzXG4gIGlmIChwcm9wcy50YXJnZXRUeXBlICYmIHBheWxvYWQuaW52aXRlLnRhcmdldF90eXBlKSBpbnZpdGUudGFyZ2V0VHlwZSA9IHBheWxvYWQuaW52aXRlLnRhcmdldF90eXBlXG4gIGlmIChwcm9wcy50YXJnZXRVc2VyICYmIHBheWxvYWQuaW52aXRlLnRhcmdldF91c2VyKSBpbnZpdGUudGFyZ2V0VXNlciA9IGJvdC50cmFuc2Zvcm1lcnMudXNlcihib3QsIHBheWxvYWQuaW52aXRlLnRhcmdldF91c2VyKVxuICBpZiAocHJvcHMudGFyZ2V0QXBwbGljYXRpb24gJiYgcGF5bG9hZC5pbnZpdGUudGFyZ2V0X2FwcGxpY2F0aW9uKVxuICAgIGludml0ZS50YXJnZXRBcHBsaWNhdGlvbiA9IGJvdC50cmFuc2Zvcm1lcnMuYXBwbGljYXRpb24oYm90LCB7XG4gICAgICBhcHBsaWNhdGlvbjogcGF5bG9hZC5pbnZpdGUudGFyZ2V0X2FwcGxpY2F0aW9uIGFzIERpc2NvcmRBcHBsaWNhdGlvbixcbiAgICAgIHNoYXJkSWQ6IHBheWxvYWQuc2hhcmRJZCxcbiAgICB9KVxuICBpZiAocHJvcHMudGVtcG9yYXJ5ICYmIHBheWxvYWQuaW52aXRlLnRlbXBvcmFyeSkgaW52aXRlLnRlbXBvcmFyeSA9IHBheWxvYWQuaW52aXRlLnRlbXBvcmFyeVxuICBpZiAocHJvcHMudXNlcyAmJiBwYXlsb2FkLmludml0ZS51c2VzKSBpbnZpdGUudXNlcyA9IHBheWxvYWQuaW52aXRlLnVzZXNcblxuICBpZiAoaXNJbnZpdGVXaXRoTWV0YWRhdGEocGF5bG9hZC5pbnZpdGUpKSB7XG4gICAgaWYgKHByb3BzLmNoYW5uZWxJZCAmJiBwYXlsb2FkLmludml0ZS5jaGFubmVsPy5pZCkgaW52aXRlLmNoYW5uZWxJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaW52aXRlLmNoYW5uZWwuaWQpXG4gICAgaWYgKHByb3BzLmd1aWxkSWQgJiYgcGF5bG9hZC5pbnZpdGUuZ3VpbGQ/LmlkKSBpbnZpdGUuZ3VpbGRJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaW52aXRlLmd1aWxkLmlkKVxuICAgIGlmIChwcm9wcy5hcHByb3hpbWF0ZU1lbWJlckNvdW50ICYmIHBheWxvYWQuaW52aXRlLmFwcHJveGltYXRlX21lbWJlcl9jb3VudClcbiAgICAgIGludml0ZS5hcHByb3hpbWF0ZU1lbWJlckNvdW50ID0gcGF5bG9hZC5pbnZpdGUuYXBwcm94aW1hdGVfbWVtYmVyX2NvdW50XG4gICAgaWYgKHByb3BzLmFwcHJveGltYXRlUHJlc2VuY2VDb3VudCAmJiBwYXlsb2FkLmludml0ZS5hcHByb3hpbWF0ZV9wcmVzZW5jZV9jb3VudCAhPT0gdW5kZWZpbmVkKVxuICAgICAgaW52aXRlLmFwcHJveGltYXRlUHJlc2VuY2VDb3VudCA9IHBheWxvYWQuaW52aXRlLmFwcHJveGltYXRlX3ByZXNlbmNlX2NvdW50XG4gICAgaWYgKHByb3BzLmd1aWxkU2NoZWR1bGVkRXZlbnQgJiYgcGF5bG9hZC5pbnZpdGUuZ3VpbGRfc2NoZWR1bGVkX2V2ZW50KVxuICAgICAgaW52aXRlLmd1aWxkU2NoZWR1bGVkRXZlbnQgPSBib3QudHJhbnNmb3JtZXJzLnNjaGVkdWxlZEV2ZW50KGJvdCwgcGF5bG9hZC5pbnZpdGUuZ3VpbGRfc2NoZWR1bGVkX2V2ZW50KVxuICAgIGlmIChwcm9wcy5zdGFnZUluc3RhbmNlICYmIGludml0ZS5ndWlsZElkICYmIHBheWxvYWQuaW52aXRlLnN0YWdlX2luc3RhbmNlKSB7XG4gICAgICBpbnZpdGUuc3RhZ2VJbnN0YW5jZSA9IGJvdC50cmFuc2Zvcm1lcnMuaW52aXRlU3RhZ2VJbnN0YW5jZShib3QsIHtcbiAgICAgICAgLi4ucGF5bG9hZC5pbnZpdGUuc3RhZ2VfaW5zdGFuY2UsXG4gICAgICAgIGd1aWxkSWQ6IGludml0ZS5ndWlsZElkLFxuICAgICAgfSlcbiAgICB9XG4gICAgaWYgKHByb3BzLmV4cGlyZXNBdCAmJiBwYXlsb2FkLmludml0ZS5leHBpcmVzX2F0KSB7XG4gICAgICBpbnZpdGUuZXhwaXJlc0F0ID0gRGF0ZS5wYXJzZShwYXlsb2FkLmludml0ZS5leHBpcmVzX2F0KVxuICAgIH1cbiAgICBpZiAocHJvcHMuZmxhZ3MgJiYgcGF5bG9hZC5pbnZpdGUuZmxhZ3MpIGludml0ZS5mbGFncyA9IG5ldyBUb2dnbGVCaXRmaWVsZChwYXlsb2FkLmludml0ZS5mbGFncylcbiAgfSBlbHNlIHtcbiAgICBpZiAocHJvcHMuY2hhbm5lbElkICYmIHBheWxvYWQuaW52aXRlLmNoYW5uZWxfaWQpIGludml0ZS5jaGFubmVsSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmludml0ZS5jaGFubmVsX2lkKVxuICAgIGlmIChwcm9wcy5ndWlsZElkICYmIHBheWxvYWQuaW52aXRlLmd1aWxkX2lkKSBpbnZpdGUuZ3VpbGRJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaW52aXRlLmd1aWxkX2lkKVxuICB9XG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMuaW52aXRlKGJvdCwgcGF5bG9hZC5pbnZpdGUsIGludml0ZSlcbn1cbiJdLCJuYW1lcyI6WyJ0cmFuc2Zvcm1JbnZpdGUiLCJib3QiLCJwYXlsb2FkIiwicHJvcHMiLCJ0cmFuc2Zvcm1lcnMiLCJkZXNpcmVkUHJvcGVydGllcyIsImludml0ZSIsInR5cGUiLCJjb2RlIiwiY3JlYXRlZEF0IiwiY3JlYXRlZF9hdCIsIkRhdGUiLCJwYXJzZSIsImludml0ZXIiLCJ1c2VyIiwibWF4QWdlIiwibWF4X2FnZSIsIm1heFVzZXMiLCJtYXhfdXNlcyIsInRhcmdldFR5cGUiLCJ0YXJnZXRfdHlwZSIsInRhcmdldFVzZXIiLCJ0YXJnZXRfdXNlciIsInRhcmdldEFwcGxpY2F0aW9uIiwidGFyZ2V0X2FwcGxpY2F0aW9uIiwiYXBwbGljYXRpb24iLCJzaGFyZElkIiwidGVtcG9yYXJ5IiwidXNlcyIsImlzSW52aXRlV2l0aE1ldGFkYXRhIiwiY2hhbm5lbElkIiwiY2hhbm5lbCIsImlkIiwic25vd2ZsYWtlIiwiZ3VpbGRJZCIsImd1aWxkIiwiYXBwcm94aW1hdGVNZW1iZXJDb3VudCIsImFwcHJveGltYXRlX21lbWJlcl9jb3VudCIsImFwcHJveGltYXRlUHJlc2VuY2VDb3VudCIsImFwcHJveGltYXRlX3ByZXNlbmNlX2NvdW50IiwidW5kZWZpbmVkIiwiZ3VpbGRTY2hlZHVsZWRFdmVudCIsImd1aWxkX3NjaGVkdWxlZF9ldmVudCIsInNjaGVkdWxlZEV2ZW50Iiwic3RhZ2VJbnN0YW5jZSIsInN0YWdlX2luc3RhbmNlIiwiaW52aXRlU3RhZ2VJbnN0YW5jZSIsImV4cGlyZXNBdCIsImV4cGlyZXNfYXQiLCJmbGFncyIsIlRvZ2dsZUJpdGZpZWxkIiwiY2hhbm5lbF9pZCIsImd1aWxkX2lkIiwiY3VzdG9taXplcnMiXSwibWFwcGluZ3MiOiI7Ozs7K0JBR2dCQTs7O2VBQUFBOzs7dUJBRm9FO0FBRTdFLFNBQVNBLGdCQUNkQyxHQUFnQixFQUNoQkMsT0FBaUY7SUFFakYsTUFBTUMsUUFBUUYsSUFBSUcsWUFBWSxDQUFDQyxpQkFBaUIsQ0FBQ0MsTUFBTTtJQUN2RCxNQUFNQSxTQUFTLENBQUM7SUFFaEIsSUFBSUgsTUFBTUksSUFBSSxJQUFJLFVBQVVMLFFBQVFJLE1BQU0sRUFBRUEsT0FBT0MsSUFBSSxHQUFHTCxRQUFRSSxNQUFNLENBQUNDLElBQUk7SUFDN0UsSUFBSUosTUFBTUssSUFBSSxJQUFJTixRQUFRSSxNQUFNLENBQUNFLElBQUksRUFBRUYsT0FBT0UsSUFBSSxHQUFHTixRQUFRSSxNQUFNLENBQUNFLElBQUk7SUFDeEUsSUFBSUws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
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvaW52aXRlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRGlzY29yZEFwcGxpY2F0aW9uLCBEaXNjb3JkSW52aXRlQ3JlYXRlLCBEaXNjb3JkSW52aXRlTWV0YWRhdGEgfSBmcm9tICdAZGlzY29yZGVuby90eXBlcydcbmltcG9ydCB7IHR5cGUgSW50ZXJuYWxCb3QsIHR5cGUgSW52aXRlLCBpc0ludml0ZVdpdGhNZXRhZGF0YSwgVG9nZ2xlQml0ZmllbGQgfSBmcm9tICcuLi9pbmRleC5qcydcblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybUludml0ZShcbiAgYm90OiBJbnRlcm5hbEJvdCxcbiAgcGF5bG9hZDogeyBpbnZpdGU6IERpc2NvcmRJbnZpdGVDcmVhdGUgfCBEaXNjb3JkSW52aXRlTWV0YWRhdGE7IHNoYXJkSWQ6IG51bWJlciB9LFxuKTogdHlwZW9mIGJvdC50cmFuc2Zvcm1lcnMuJGluZmVycmVkVHlwZXMuaW52aXRlIHtcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLmludml0ZVxuICBjb25zdCBpbnZpdGUgPSB7fSBhcyBJbnZpdGVcblxuICBpZiAocHJvcHMudHlwZSAmJiAndHlwZScgaW4gcGF5bG9hZC5pbnZpdGUpIGludml0ZS50eXBlID0gcGF5bG9hZC5pbnZpdGUudHlwZVxuICBpZiAocHJvcHMuY29kZSAmJiBwYXlsb2FkLmludml0ZS5jb2RlKSBpbnZpdGUuY29kZSA9IHBheWxvYWQuaW52aXRlLmNvZGVcbiAgaWYgKHByb3BzLmNyZWF0ZWRBdCAmJiBwYXlsb2FkLmludml0ZS5jcmVhdGVkX2F0KSBpbnZpdGUuY3JlYXRlZEF0ID0gRGF0ZS5wYXJzZShwYXlsb2FkLmludml0ZS5jcmVhdGVkX2F0KVxuICBpZiAocHJvcHMuaW52aXRlciAmJiBwYXlsb2FkLmludml0ZS5pbnZpdGVyKSBpbnZpdGUuaW52aXRlciA9IGJvdC50cmFuc2Zvcm1lcnMudXNlcihib3QsIHBheWxvYWQuaW52aXRlLmludml0ZXIpXG4gIGlmIChwcm9wcy5tYXhBZ2UpIGludml0ZS5tYXhBZ2UgPSBwYXlsb2FkLmludml0ZS5tYXhfYWdlXG4gIGlmIChwcm9wcy5tYXhVc2VzKSBpbnZpdGUubWF4VXNlcyA9IHBheWxvYWQuaW52aXRlLm1heF91c2VzXG4gIGlmIChwcm9wcy50YXJnZXRUeXBlICYmIHBheWxvYWQuaW52aXRlLnRhcmdldF90eXBlKSBpbnZpdGUudGFyZ2V0VHlwZSA9IHBheWxvYWQuaW52aXRlLnRhcmdldF90eXBlXG4gIGlmIChwcm9wcy50YXJnZXRVc2VyICYmIHBheWxvYWQuaW52aXRlLnRhcmdldF91c2VyKSBpbnZpdGUudGFyZ2V0VXNlciA9IGJvdC50cmFuc2Zvcm1lcnMudXNlcihib3QsIHBheWxvYWQuaW52aXRlLnRhcmdldF91c2VyKVxuICBpZiAocHJvcHMudGFyZ2V0QXBwbGljYXRpb24gJiYgcGF5bG9hZC5pbnZpdGUudGFyZ2V0X2FwcGxpY2F0aW9uKVxuICAgIGludml0ZS50YXJnZXRBcHBsaWNhdGlvbiA9IGJvdC50cmFuc2Zvcm1lcnMuYXBwbGljYXRpb24oYm90LCB7XG4gICAgICBhcHBsaWNhdGlvbjogcGF5bG9hZC5pbnZpdGUudGFyZ2V0X2FwcGxpY2F0aW9uIGFzIERpc2NvcmRBcHBsaWNhdGlvbixcbiAgICAgIHNoYXJkSWQ6IHBheWxvYWQuc2hhcmRJZCxcbiAgICB9KVxuICBpZiAocHJvcHMudGVtcG9yYXJ5ICYmIHBheWxvYWQuaW52aXRlLnRlbXBvcmFyeSkgaW52aXRlLnRlbXBvcmFyeSA9IHBheWxvYWQuaW52aXRlLnRlbXBvcmFyeVxuICBpZiAocHJvcHMudXNlcyAmJiBwYXlsb2FkLmludml0ZS51c2VzKSBpbnZpdGUudXNlcyA9IHBheWxvYWQuaW52aXRlLnVzZXNcblxuICBpZiAoaXNJbnZpdGVXaXRoTWV0YWRhdGEocGF5bG9hZC5pbnZpdGUpKSB7XG4gICAgaWYgKHByb3BzLmNoYW5uZWxJZCAmJiBwYXlsb2FkLmludml0ZS5jaGFubmVsPy5pZCkgaW52aXRlLmNoYW5uZWxJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaW52aXRlLmNoYW5uZWwuaWQpXG4gICAgaWYgKHByb3BzLmd1aWxkSWQgJiYgcGF5bG9hZC5pbnZpdGUuZ3VpbGQ/LmlkKSBpbnZpdGUuZ3VpbGRJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaW52aXRlLmd1aWxkLmlkKVxuICAgIGlmIChwcm9wcy5hcHByb3hpbWF0ZU1lbWJlckNvdW50ICYmIHBheWxvYWQuaW52aXRlLmFwcHJveGltYXRlX21lbWJlcl9jb3VudClcbiAgICAgIGludml0ZS5hcHByb3hpbWF0ZU1lbWJlckNvdW50ID0gcGF5bG9hZC5pbnZpdGUuYXBwcm94aW1hdGVfbWVtYmVyX2NvdW50XG4gICAgaWYgKHByb3BzLmFwcHJveGltYXRlUHJlc2VuY2VDb3VudCAmJiBwYXlsb2FkLmludml0ZS5hcHByb3hpbWF0ZV9wcmVzZW5jZV9jb3VudCAhPT0gdW5kZWZpbmVkKVxuICAgICAgaW52aXRlLmFwcHJveGltYXRlUHJlc2VuY2VDb3VudCA9IHBheWxvYWQuaW52aXRlLmFwcHJveGltYXRlX3ByZXNlbmNlX2NvdW50XG4gICAgaWYgKHByb3BzLmd1aWxkU2NoZWR1bGVkRXZlbnQgJiYgcGF5bG9hZC5pbnZpdGUuZ3VpbGRfc2NoZWR1bGVkX2V2ZW50KVxuICAgICAgaW52aXRlLmd1aWxkU2NoZWR1bGVkRXZlbnQgPSBib3QudHJhbnNmb3JtZXJzLnNjaGVkdWxlZEV2ZW50KGJvdCwgcGF5bG9hZC5pbnZpdGUuZ3VpbGRfc2NoZWR1bGVkX2V2ZW50KVxuICAgIGlmIChwcm9wcy5zdGFnZUluc3RhbmNlICYmIGludml0ZS5ndWlsZElkICYmIHBheWxvYWQuaW52aXRlLnN0YWdlX2luc3RhbmNlKSB7XG4gICAgICBpbnZpdGUuc3RhZ2VJbnN0YW5jZSA9IGJvdC50cmFuc2Zvcm1lcnMuaW52aXRlU3RhZ2VJbnN0YW5jZShib3QsIHtcbiAgICAgICAgLi4ucGF5bG9hZC5pbnZpdGUuc3RhZ2VfaW5zdGFuY2UsXG4gICAgICAgIGd1aWxkSWQ6IGludml0ZS5ndWlsZElkLFxuICAgICAgfSlcbiAgICB9XG4gICAgaWYgKHByb3BzLmV4cGlyZXNBdCAmJiBwYXlsb2FkLmludml0ZS5leHBpcmVzX2F0KSB7XG4gICAgICBpbnZpdGUuZXhwaXJlc0F0ID0gRGF0ZS5wYXJzZShwYXlsb2FkLmludml0ZS5leHBpcmVzX2F0KVxuICAgIH1cbiAgICBpZiAocHJvcHMuZmxhZ3MgJiYgcGF5bG9hZC5pbnZpdGUuZmxhZ3MpIGludml0ZS5mbGFncyA9IG5ldyBUb2dnbGVCaXRmaWVsZChwYXlsb2FkLmludml0ZS5mbGFncylcbiAgfSBlbHNlIHtcbiAgICBpZiAocHJvcHMuY2hhbm5lbElkICYmIHBheWxvYWQuaW52aXRlLmNoYW5uZWxfaWQpIGludml0ZS5jaGFubmVsSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmludml0ZS5jaGFubmVsX2lkKVxuICAgIGlmIChwcm9wcy5ndWlsZElkICYmIHBheWxvYWQuaW52aXRlLmd1aWxkX2lkKSBpbnZpdGUuZ3VpbGRJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaW52aXRlLmd1aWxkX2lkKVxuICB9XG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMuaW52aXRlKGJvdCwgcGF5bG9hZC5pbnZpdGUsIGludml0ZSlcbn1cbiJdLCJuYW1lcyI6WyJ0cmFuc2Zvcm1JbnZpdGUiLCJib3QiLCJwYXlsb2FkIiwicHJvcHMiLCJ0cmFuc2Zvcm1lcnMiLCJkZXNpcmVkUHJvcGVydGllcyIsImludml0ZSIsInR5cGUiLCJjb2RlIiwiY3JlYXRlZEF0IiwiY3JlYXRlZF9hdCIsIkRhdGUiLCJwYXJzZSIsImludml0ZXIiLCJ1c2VyIiwibWF4QWdlIiwibWF4X2FnZSIsIm1heFVzZXMiLCJtYXhfdXNlcyIsInRhcmdldFR5cGUiLCJ0YXJnZXRfdHlwZSIsInRhcmdldFVzZXIiLCJ0YXJnZXRfdXNlciIsInRhcmdldEFwcGxpY2F0aW9uIiwidGFyZ2V0X2FwcGxpY2F0aW9uIiwiYXBwbGljYXRpb24iLCJzaGFyZElkIiwidGVtcG9yYXJ5IiwidXNlcyIsImlzSW52aXRlV2l0aE1ldGFkYXRhIiwiY2hhbm5lbElkIiwiY2hhbm5lbCIsImlkIiwic25vd2ZsYWtlIiwiZ3VpbGRJZCIsImd1aWxkIiwiYXBwcm94aW1hdGVNZW1iZXJDb3VudCIsImFwcHJveGltYXRlX21lbWJlcl9jb3VudCIsImFwcHJveGltYXRlUHJlc2VuY2VDb3VudCIsImFwcHJveGltYXRlX3ByZXNlbmNlX2NvdW50IiwidW5kZWZpbmVkIiwiZ3VpbGRTY2hlZHVsZWRFdmVudCIsImd1aWxkX3NjaGVkdWxlZF9ldmVudCIsInNjaGVkdWxlZEV2ZW50Iiwic3RhZ2VJbnN0YW5jZSIsInN0YWdlX2luc3RhbmNlIiwiaW52aXRlU3RhZ2VJbnN0YW5jZSIsImV4cGlyZXNBdCIsImV4cGlyZXNfYXQiLCJmbGFncyIsIlRvZ2dsZUJpdGZpZWxkIiwiY2hhbm5lbF9pZCIsImd1aWxkX2lkIiwiY3VzdG9taXplcnMiXSwibWFwcGluZ3MiOiI7Ozs7K0JBR2dCQTs7O2VBQUFBOzs7dUJBRm9FO0FBRTdFLFNBQVNBLGdCQUNkQyxHQUFnQixFQUNoQkMsT0FBaUY7SUFFakYsTUFBTUMsUUFBUUYsSUFBSUcsWUFBWSxDQUFDQyxpQkFBaUIsQ0FBQ0MsTUFBTTtJQUN2RCxNQUFNQSxTQUFTLENBQUM7SUFFaEIsSUFBSUgsTUFBTUksSUFBSSxJQUFJLFVBQVVMLFFBQVFJLE1BQU0sRUFBRUEsT0FBT0MsSUFBSSxHQUFHTCxRQUFRSSxNQUFNLENBQUNDLElBQUk7SUFDN0UsSUFBSUosTUFBTUssSUFBSSxJQUFJTixRQUFRSSxNQUFNLENBQUNFLElBQUksRUFBRUYsT0FBT0UsSUFBSSxHQUFHTixRQUFRSSxNQUFNLENBQUNFLElBQUk7SUFDeEUsSUFBSUws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
@@ -17,8 +17,8 @@ _export(exports, {
17
17
  }
18
18
  });
19
19
  const _utils = require("@discordeno/utils");
20
- const _Permissions = require("./toggles/Permissions.cjs");
21
20
  const _member = require("./toggles/member.cjs");
21
+ const _Permissions = require("./toggles/Permissions.cjs");
22
22
  const baseMember = {
23
23
  // This allows typescript to still check for type errors on functions below
24
24
  ...undefined,
@@ -66,4 +66,4 @@ function transformMember(bot, payload, guildId, userId) {
66
66
  return bot.transformers.customizers.member(bot, payload, member);
67
67
  }
68
68
 
69
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvbWVtYmVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQmlnU3RyaW5nLCBEaXNjb3JkTWVtYmVyIH0gZnJvbSAnQGRpc2NvcmRlbm8vdHlwZXMnXG5pbXBvcnQgeyBpY29uSGFzaFRvQmlnSW50IH0gZnJvbSAnQGRpc2NvcmRlbm8vdXRpbHMnXG5pbXBvcnQgdHlwZSB7IEludGVybmFsQm90IH0gZnJvbSAnLi4vYm90LmpzJ1xuaW1wb3J0IHsgUGVybWlzc2lvbnMgfSBmcm9tICcuL3RvZ2dsZXMvUGVybWlzc2lvbnMuanMnXG5pbXBvcnQgeyBNZW1iZXJUb2dnbGVzIH0gZnJvbSAnLi90b2dnbGVzL21lbWJlci5qcydcbmltcG9ydCB0eXBlIHsgTWVtYmVyIH0gZnJvbSAnLi90eXBlcy5qcydcblxuZXhwb3J0IGNvbnN0IGJhc2VNZW1iZXI6IEludGVybmFsQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsnbWVtYmVyJ10gPSB7XG4gIC8vIFRoaXMgYWxsb3dzIHR5cGVzY3JpcHQgdG8gc3RpbGwgY2hlY2sgZm9yIHR5cGUgZXJyb3JzIG9uIGZ1bmN0aW9ucyBiZWxvd1xuICAuLi4odW5kZWZpbmVkIGFzIHVua25vd24gYXMgSW50ZXJuYWxCb3RbJ3RyYW5zZm9ybWVycyddWyckaW5mZXJyZWRUeXBlcyddWydtZW1iZXInXSksXG5cbiAgZ2V0IGRlYWYoKSB7XG4gICAgcmV0dXJuICEhdGhpcy50b2dnbGVzPy5oYXMoJ2RlYWYnKVxuICB9LFxuICBnZXQgbXV0ZSgpIHtcbiAgICByZXR1cm4gISF0aGlzLnRvZ2dsZXM/LmhhcygnbXV0ZScpXG4gIH0sXG4gIGdldCBwZW5kaW5nKCkge1xuICAgIHJldHVybiAhIXRoaXMudG9nZ2xlcz8uaGFzKCdwZW5kaW5nJylcbiAgfSxcbiAgZ2V0IGZsYWdzKCkge1xuICAgIHJldHVybiB0aGlzLnRvZ2dsZXM/LmZsYWdzID8/IDBcbiAgfSxcbiAgZ2V0IGRpZFJlam9pbigpIHtcbiAgICByZXR1cm4gISF0aGlzLnRvZ2dsZXM/LmRpZFJlam9pblxuICB9LFxuICBnZXQgc3RhcnRlZE9uYm9hcmRpbmcoKSB7XG4gICAgcmV0dXJuICEhdGhpcy50b2dnbGVzPy5zdGFydGVkT25ib2FyZGluZ1xuICB9LFxuICBnZXQgYnlwYXNzZXNWZXJpZmljYXRpb24oKSB7XG4gICAgcmV0dXJuICEhdGhpcy50b2dnbGVzPy5ieXBhc3Nlc1ZlcmlmaWNhdGlvblxuICB9LFxuICBnZXQgY29tcGxldGVkT25ib2FyZGluZygpIHtcbiAgICByZXR1cm4gISF0aGlzLnRvZ2dsZXM/LmNvbXBsZXRlZE9uYm9hcmRpbmdcbiAgfSxcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybU1lbWJlcihcbiAgYm90OiBJbnRlcm5hbEJvdCxcbiAgcGF5bG9hZDogRGlzY29yZE1lbWJlcixcbiAgZ3VpbGRJZDogQmlnU3RyaW5nLFxuICB1c2VySWQ6IEJpZ1N0cmluZyxcbik6IHR5cGVvZiBib3QudHJhbnNmb3JtZXJzLiRpbmZlcnJlZFR5cGVzLm1lbWJlciB7XG4gIGNvbnN0IG1lbWJlcjogTWVtYmVyID0gT2JqZWN0LmNyZWF0ZShiYXNlTWVtYmVyKVxuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMubWVtYmVyXG5cbiAgaWYgKHByb3BzLmlkICYmIHVzZXJJZCkgbWVtYmVyLmlkID0gdHlwZW9mIHVzZXJJZCA9PT0gJ3N0cmluZycgPyBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZSh1c2VySWQpIDogdXNlcklkXG4gIGlmIChwcm9wcy5ndWlsZElkICYmIGd1aWxkSWQpIG1lbWJlci5ndWlsZElkID0gdHlwZW9mIGd1aWxkSWQgPT09ICdzdHJpbmcnID8gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UoZ3VpbGRJZCkgOiBndWlsZElkXG4gIGlmIChwcm9wcy51c2VyICYmIHBheWxvYWQudXNlcikgbWVtYmVyLnVzZXIgPSBib3QudHJhbnNmb3JtZXJzLnVzZXIoYm90LCBwYXlsb2FkLnVzZXIpXG4gIGlmIChwcm9wcy5uaWNrICYmIHBheWxvYWQubmljaykgbWVtYmVyLm5pY2sgPSBwYXlsb2FkLm5pY2tcbiAgaWYgKHByb3BzLnJvbGVzICYmIHBheWxvYWQucm9sZXMpIG1lbWJlci5yb2xlcyA9IHBheWxvYWQucm9sZXMubWFwKChpZCkgPT4gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UoaWQpKVxuICBpZiAocHJvcHMuam9pbmVkQXQgJiYgcGF5bG9hZC5qb2luZWRfYXQpIG1lbWJlci5qb2luZWRBdCA9IERhdGUucGFyc2UocGF5bG9hZC5qb2luZWRfYXQpXG4gIGlmIChwcm9wcy5wcmVtaXVtU2luY2UgJiYgcGF5bG9hZC5wcmVtaXVtX3NpbmNlKSBtZW1iZXIucHJlbWl1bVNpbmNlID0gRGF0ZS5wYXJzZShwYXlsb2FkLnByZW1pdW1fc2luY2UpXG4gIGlmIChwcm9wcy5jb21tdW5pY2F0aW9uRGlzYWJsZWRVbnRpbCAmJiBwYXlsb2FkLmNvbW11bmljYXRpb25fZGlzYWJsZWRfdW50aWwpXG4gICAgbWVtYmVyLmNvbW11bmljYXRpb25EaXNhYmxlZFVudGlsID0gRGF0ZS5wYXJzZShwYXlsb2FkLmNvbW11bmljYXRpb25fZGlzYWJsZWRfdW50aWwpXG4gIGlmIChwcm9wcy5hdmF0YXIgJiYgcGF5bG9hZC5hdmF0YXIpIG1lbWJlci5hdmF0YXIgPSBpY29uSGFzaFRvQmlnSW50KHBheWxvYWQuYXZhdGFyKVxuICBpZiAocHJvcHMuYmFubmVyICYmIHBheWxvYWQuYmFubmVyKSBtZW1iZXIuYmFubmVyID0gaWNvbkhhc2hUb0JpZ0ludChwYXlsb2FkLmJhbm5lcilcbiAgaWYgKHByb3BzLnBlcm1pc3Npb25zICYmIHBheWxvYWQucGVybWlzc2lvbnMpIG1lbWJlci5wZXJtaXNzaW9ucyA9IG5ldyBQZXJtaXNzaW9ucyhwYXlsb2FkLnBlcm1pc3Npb25zKVxuICBpZiAocHJvcHMudG9nZ2xlcykgbWVtYmVyLnRvZ2dsZXMgPSBuZXcgTWVtYmVyVG9nZ2xlcyhwYXlsb2FkKVxuICBpZiAocHJvcHMuYXZhdGFyRGVjb3JhdGlvbkRhdGEgJiYgcGF5bG9hZC5hdmF0YXJfZGVjb3JhdGlvbl9kYXRhKVxuICAgIG1lbWJlci5hdmF0YXJEZWNvcmF0aW9uRGF0YSA9IGJvdC50cmFuc2Zvcm1lcnMuYXZhdGFyRGVjb3JhdGlvbkRhdGEoYm90LCBwYXlsb2FkLmF2YXRhcl9kZWNvcmF0aW9uX2RhdGEpXG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMubWVtYmVyKGJvdCwgcGF5bG9hZCwgbWVtYmVyKVxufVxuIl0sIm5hbWVzIjpbImJhc2VNZW1iZXIiLCJ0cmFuc2Zvcm1NZW1iZXIiLCJ1bmRlZmluZWQiLCJkZWFmIiwidG9nZ2xlcyIsImhhcyIsIm11dGUiLCJwZW5kaW5nIiwiZmxhZ3MiLCJkaWRSZWpvaW4iLCJzdGFydGVkT25ib2FyZGluZyIsImJ5cGFzc2VzVmVyaWZpY2F0aW9uIiwiY29tcGxldGVkT25ib2FyZGluZyIsImJvdCIsInBheWxvYWQiLCJndWlsZElkIiwidXNlcklkIiwibWVtYmVyIiwiT2JqZWN0IiwiY3JlYXRlIiwicHJvcHMiLCJ0cmFuc2Zvcm1lcnMiLCJkZXNpcmVkUHJvcGVydGllcyIsImlkIiwic25vd2ZsYWtlIiwidXNlciIsIm5pY2siLCJyb2xlcyIsIm1hcCIsImpvaW5lZEF0Iiwiam9pbmVkX2F0IiwiRGF0ZSIsInBhcnNlIiwicHJlbWl1bVNpbmNlIiwicHJlbWl1bV9zaW5jZSIsImNvbW11bmljYXRpb25EaXNhYmxlZFVudGlsIiwiY29tbXVuaWNhdGlvbl9kaXNhYmxlZF91bnRpbCIsImF2YXRhciIsImljb25IYXNoVG9CaWdJbnQiLCJiYW5uZXIiLCJwZXJtaXNzaW9ucyIsIlBlcm1pc3Npb25zIiwiTWVtYmVyVG9nZ2xlcyIsImF2YXRhckRlY29yYXRpb25EYXRhIiwiYXZhdGFyX2RlY29yYXRpb25fZGF0YSIsImN1c3RvbWl6ZXJzIl0s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
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvbWVtYmVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQmlnU3RyaW5nLCBEaXNjb3JkTWVtYmVyIH0gZnJvbSAnQGRpc2NvcmRlbm8vdHlwZXMnXG5pbXBvcnQgeyBpY29uSGFzaFRvQmlnSW50IH0gZnJvbSAnQGRpc2NvcmRlbm8vdXRpbHMnXG5pbXBvcnQgdHlwZSB7IEludGVybmFsQm90IH0gZnJvbSAnLi4vYm90LmpzJ1xuaW1wb3J0IHsgTWVtYmVyVG9nZ2xlcyB9IGZyb20gJy4vdG9nZ2xlcy9tZW1iZXIuanMnXG5pbXBvcnQgeyBQZXJtaXNzaW9ucyB9IGZyb20gJy4vdG9nZ2xlcy9QZXJtaXNzaW9ucy5qcydcbmltcG9ydCB0eXBlIHsgTWVtYmVyIH0gZnJvbSAnLi90eXBlcy5qcydcblxuZXhwb3J0IGNvbnN0IGJhc2VNZW1iZXI6IEludGVybmFsQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsnbWVtYmVyJ10gPSB7XG4gIC8vIFRoaXMgYWxsb3dzIHR5cGVzY3JpcHQgdG8gc3RpbGwgY2hlY2sgZm9yIHR5cGUgZXJyb3JzIG9uIGZ1bmN0aW9ucyBiZWxvd1xuICAuLi4odW5kZWZpbmVkIGFzIHVua25vd24gYXMgSW50ZXJuYWxCb3RbJ3RyYW5zZm9ybWVycyddWyckaW5mZXJyZWRUeXBlcyddWydtZW1iZXInXSksXG5cbiAgZ2V0IGRlYWYoKSB7XG4gICAgcmV0dXJuICEhdGhpcy50b2dnbGVzPy5oYXMoJ2RlYWYnKVxuICB9LFxuICBnZXQgbXV0ZSgpIHtcbiAgICByZXR1cm4gISF0aGlzLnRvZ2dsZXM/LmhhcygnbXV0ZScpXG4gIH0sXG4gIGdldCBwZW5kaW5nKCkge1xuICAgIHJldHVybiAhIXRoaXMudG9nZ2xlcz8uaGFzKCdwZW5kaW5nJylcbiAgfSxcbiAgZ2V0IGZsYWdzKCkge1xuICAgIHJldHVybiB0aGlzLnRvZ2dsZXM/LmZsYWdzID8/IDBcbiAgfSxcbiAgZ2V0IGRpZFJlam9pbigpIHtcbiAgICByZXR1cm4gISF0aGlzLnRvZ2dsZXM/LmRpZFJlam9pblxuICB9LFxuICBnZXQgc3RhcnRlZE9uYm9hcmRpbmcoKSB7XG4gICAgcmV0dXJuICEhdGhpcy50b2dnbGVzPy5zdGFydGVkT25ib2FyZGluZ1xuICB9LFxuICBnZXQgYnlwYXNzZXNWZXJpZmljYXRpb24oKSB7XG4gICAgcmV0dXJuICEhdGhpcy50b2dnbGVzPy5ieXBhc3Nlc1ZlcmlmaWNhdGlvblxuICB9LFxuICBnZXQgY29tcGxldGVkT25ib2FyZGluZygpIHtcbiAgICByZXR1cm4gISF0aGlzLnRvZ2dsZXM/LmNvbXBsZXRlZE9uYm9hcmRpbmdcbiAgfSxcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybU1lbWJlcihcbiAgYm90OiBJbnRlcm5hbEJvdCxcbiAgcGF5bG9hZDogRGlzY29yZE1lbWJlcixcbiAgZ3VpbGRJZDogQmlnU3RyaW5nLFxuICB1c2VySWQ6IEJpZ1N0cmluZyxcbik6IHR5cGVvZiBib3QudHJhbnNmb3JtZXJzLiRpbmZlcnJlZFR5cGVzLm1lbWJlciB7XG4gIGNvbnN0IG1lbWJlcjogTWVtYmVyID0gT2JqZWN0LmNyZWF0ZShiYXNlTWVtYmVyKVxuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMubWVtYmVyXG5cbiAgaWYgKHByb3BzLmlkICYmIHVzZXJJZCkgbWVtYmVyLmlkID0gdHlwZW9mIHVzZXJJZCA9PT0gJ3N0cmluZycgPyBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZSh1c2VySWQpIDogdXNlcklkXG4gIGlmIChwcm9wcy5ndWlsZElkICYmIGd1aWxkSWQpIG1lbWJlci5ndWlsZElkID0gdHlwZW9mIGd1aWxkSWQgPT09ICdzdHJpbmcnID8gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UoZ3VpbGRJZCkgOiBndWlsZElkXG4gIGlmIChwcm9wcy51c2VyICYmIHBheWxvYWQudXNlcikgbWVtYmVyLnVzZXIgPSBib3QudHJhbnNmb3JtZXJzLnVzZXIoYm90LCBwYXlsb2FkLnVzZXIpXG4gIGlmIChwcm9wcy5uaWNrICYmIHBheWxvYWQubmljaykgbWVtYmVyLm5pY2sgPSBwYXlsb2FkLm5pY2tcbiAgaWYgKHByb3BzLnJvbGVzICYmIHBheWxvYWQucm9sZXMpIG1lbWJlci5yb2xlcyA9IHBheWxvYWQucm9sZXMubWFwKChpZCkgPT4gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UoaWQpKVxuICBpZiAocHJvcHMuam9pbmVkQXQgJiYgcGF5bG9hZC5qb2luZWRfYXQpIG1lbWJlci5qb2luZWRBdCA9IERhdGUucGFyc2UocGF5bG9hZC5qb2luZWRfYXQpXG4gIGlmIChwcm9wcy5wcmVtaXVtU2luY2UgJiYgcGF5bG9hZC5wcmVtaXVtX3NpbmNlKSBtZW1iZXIucHJlbWl1bVNpbmNlID0gRGF0ZS5wYXJzZShwYXlsb2FkLnByZW1pdW1fc2luY2UpXG4gIGlmIChwcm9wcy5jb21tdW5pY2F0aW9uRGlzYWJsZWRVbnRpbCAmJiBwYXlsb2FkLmNvbW11bmljYXRpb25fZGlzYWJsZWRfdW50aWwpXG4gICAgbWVtYmVyLmNvbW11bmljYXRpb25EaXNhYmxlZFVudGlsID0gRGF0ZS5wYXJzZShwYXlsb2FkLmNvbW11bmljYXRpb25fZGlzYWJsZWRfdW50aWwpXG4gIGlmIChwcm9wcy5hdmF0YXIgJiYgcGF5bG9hZC5hdmF0YXIpIG1lbWJlci5hdmF0YXIgPSBpY29uSGFzaFRvQmlnSW50KHBheWxvYWQuYXZhdGFyKVxuICBpZiAocHJvcHMuYmFubmVyICYmIHBheWxvYWQuYmFubmVyKSBtZW1iZXIuYmFubmVyID0gaWNvbkhhc2hUb0JpZ0ludChwYXlsb2FkLmJhbm5lcilcbiAgaWYgKHByb3BzLnBlcm1pc3Npb25zICYmIHBheWxvYWQucGVybWlzc2lvbnMpIG1lbWJlci5wZXJtaXNzaW9ucyA9IG5ldyBQZXJtaXNzaW9ucyhwYXlsb2FkLnBlcm1pc3Npb25zKVxuICBpZiAocHJvcHMudG9nZ2xlcykgbWVtYmVyLnRvZ2dsZXMgPSBuZXcgTWVtYmVyVG9nZ2xlcyhwYXlsb2FkKVxuICBpZiAocHJvcHMuYXZhdGFyRGVjb3JhdGlvbkRhdGEgJiYgcGF5bG9hZC5hdmF0YXJfZGVjb3JhdGlvbl9kYXRhKVxuICAgIG1lbWJlci5hdmF0YXJEZWNvcmF0aW9uRGF0YSA9IGJvdC50cmFuc2Zvcm1lcnMuYXZhdGFyRGVjb3JhdGlvbkRhdGEoYm90LCBwYXlsb2FkLmF2YXRhcl9kZWNvcmF0aW9uX2RhdGEpXG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMubWVtYmVyKGJvdCwgcGF5bG9hZCwgbWVtYmVyKVxufVxuIl0sIm5hbWVzIjpbImJhc2VNZW1iZXIiLCJ0cmFuc2Zvcm1NZW1iZXIiLCJ1bmRlZmluZWQiLCJkZWFmIiwidG9nZ2xlcyIsImhhcyIsIm11dGUiLCJwZW5kaW5nIiwiZmxhZ3MiLCJkaWRSZWpvaW4iLCJzdGFydGVkT25ib2FyZGluZyIsImJ5cGFzc2VzVmVyaWZpY2F0aW9uIiwiY29tcGxldGVkT25ib2FyZGluZyIsImJvdCIsInBheWxvYWQiLCJndWlsZElkIiwidXNlcklkIiwibWVtYmVyIiwiT2JqZWN0IiwiY3JlYXRlIiwicHJvcHMiLCJ0cmFuc2Zvcm1lcnMiLCJkZXNpcmVkUHJvcGVydGllcyIsImlkIiwic25vd2ZsYWtlIiwidXNlciIsIm5pY2siLCJyb2xlcyIsIm1hcCIsImpvaW5lZEF0Iiwiam9pbmVkX2F0IiwiRGF0ZSIsInBhcnNlIiwicHJlbWl1bVNpbmNlIiwicHJlbWl1bV9zaW5jZSIsImNvbW11bmljYXRpb25EaXNhYmxlZFVudGlsIiwiY29tbXVuaWNhdGlvbl9kaXNhYmxlZF91bnRpbCIsImF2YXRhciIsImljb25IYXNoVG9CaWdJbnQiLCJiYW5uZXIiLCJwZXJtaXNzaW9ucyIsIlBlcm1pc3Npb25zIiwiTWVtYmVyVG9nZ2xlcyIsImF2YXRhckRlY29yYXRpb25EYXRhIiwiYXZhdGFyX2RlY29yYXRpb25fZGF0YSIsImN1c3RvbWl6ZXJzIl0s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
@@ -25,4 +25,4 @@ function transformTeamToDiscordTeam(bot, payload) {
25
25
  };
26
26
  }
27
27
 
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvcmV2ZXJzZS90ZWFtLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRGlzY29yZFRlYW0gfSBmcm9tICdAZGlzY29yZGVuby90eXBlcydcbmltcG9ydCB7IHR5cGUgSW50ZXJuYWxCb3QsIHR5cGUgVGVhbSwgaWNvbkJpZ2ludFRvSGFzaCB9IGZyb20gJy4uLy4uL2luZGV4LmpzJ1xuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtVGVhbVRvRGlzY29yZFRlYW0oYm90OiBJbnRlcm5hbEJvdCwgcGF5bG9hZDogVGVhbSk6IERpc2NvcmRUZWFtIHtcbiAgY29uc3QgaWQgPSBwYXlsb2FkLmlkLnRvU3RyaW5nKClcblxuICByZXR1cm4ge1xuICAgIG5hbWU6IHBheWxvYWQubmFtZSxcblxuICAgIGlkLFxuICAgIGljb246IHBheWxvYWQuaWNvbiA/IGljb25CaWdpbnRUb0hhc2gocGF5bG9hZC5pY29uKSA6IG51bGwsXG4gICAgb3duZXJfdXNlcl9pZDogcGF5bG9hZC5vd25lclVzZXJJZC50b1N0cmluZygpLFxuICAgIG1lbWJlcnM6IHBheWxvYWQubWVtYmVycy5tYXAoKG1lbWJlcikgPT4gKHtcbiAgICAgIG1lbWJlcnNoaXBfc3RhdGU6IG1lbWJlci5tZW1iZXJzaGlwU3RhdGUsXG4gICAgICB0ZWFtX2lkOiBpZCxcbiAgICAgIHVzZXI6IGJvdC50cmFuc2Zvcm1lcnMucmV2ZXJzZS51c2VyKGJvdCwgbWVtYmVyLnVzZXIpLFxuICAgICAgcm9sZTogbWVtYmVyLnJvbGUsXG4gICAgfSkpLFxuICB9XG59XG4iXSwibmFtZXMiOlsidHJhbnNmb3JtVGVhbVRvRGlzY29yZFRlYW0iLCJib3QiLCJwYXlsb2FkIiwiaWQiLCJ0b1N0cmluZyIsIm5hbWUiLCJpY29uIiwiaWNvbkJpZ2ludFRvSGFzaCIsIm93bmVyX3VzZXJfaWQiLCJvd25lclVzZXJJZCIsIm1lbWJlcnMiLCJtYXAiLCJtZW1iZXIiLCJtZW1iZXJzaGlwX3N0YXRlIiwibWVtYmVyc2hpcFN0YXRlIiwidGVhbV9pZCIsInVzZXIiLCJ0cmFuc2Zvcm1lcnMiLCJyZXZlcnNlIiwicm9sZSJdLCJtYXBwaW5ncyI6Ijs7OzsrQkFHZ0JBOzs7ZUFBQUE7Ozt1QkFGOEM7QUFFdkQsU0FBU0EsMkJBQTJCQyxHQUFnQixFQUFFQyxPQUFhO0lBQ3hFLE1BQU1DLEtBQUtELFFBQVFDLEVBQUUsQ0FBQ0MsUUFBUTtJQUU5QixPQUFPO1FBQ0xDLE1BQU1ILFFBQVFHLElBQUk7UUFFbEJGO1FBQ0FHLE1BQU1KLFFBQVFJLElBQUksR0FBR0MsSUFBQUEsdUJBQWdCLEVBQUNMLFFBQVFJLElBQUksSUFBSTtRQUN0REUsZUFBZU4sUUFBUU8sV0FBVyxDQUFDTCxRQUFRO1FBQzNDTSxTQUFTUixRQUFRUSxPQUFPLENBQUNDLEdBQUcsQ0FBQyxDQUFDQyxTQUFZLENBQUE7Z0JBQ3hDQyxrQkFBa0JELE9BQU9FLGVBQWU7Z0JBQ3hDQyxTQUFTWjtnQkFDVGEsTUFBTWYsSUFBSWdCLFlBQVksQ0FBQ0MsT0FBTyxDQUFDRixJQUFJLENBQUNmLEtBQUtXLE9BQU9JLElBQUk7Z0JBQ3BERyxNQUFNUCxPQUFPTyxJQUFJO1lBQ25CLENBQUE7SUFDRjtBQUNGIn0=
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvcmV2ZXJzZS90ZWFtLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRGlzY29yZFRlYW0gfSBmcm9tICdAZGlzY29yZGVuby90eXBlcydcbmltcG9ydCB7IHR5cGUgSW50ZXJuYWxCb3QsIGljb25CaWdpbnRUb0hhc2gsIHR5cGUgVGVhbSB9IGZyb20gJy4uLy4uL2luZGV4LmpzJ1xuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtVGVhbVRvRGlzY29yZFRlYW0oYm90OiBJbnRlcm5hbEJvdCwgcGF5bG9hZDogVGVhbSk6IERpc2NvcmRUZWFtIHtcbiAgY29uc3QgaWQgPSBwYXlsb2FkLmlkLnRvU3RyaW5nKClcblxuICByZXR1cm4ge1xuICAgIG5hbWU6IHBheWxvYWQubmFtZSxcblxuICAgIGlkLFxuICAgIGljb246IHBheWxvYWQuaWNvbiA/IGljb25CaWdpbnRUb0hhc2gocGF5bG9hZC5pY29uKSA6IG51bGwsXG4gICAgb3duZXJfdXNlcl9pZDogcGF5bG9hZC5vd25lclVzZXJJZC50b1N0cmluZygpLFxuICAgIG1lbWJlcnM6IHBheWxvYWQubWVtYmVycy5tYXAoKG1lbWJlcikgPT4gKHtcbiAgICAgIG1lbWJlcnNoaXBfc3RhdGU6IG1lbWJlci5tZW1iZXJzaGlwU3RhdGUsXG4gICAgICB0ZWFtX2lkOiBpZCxcbiAgICAgIHVzZXI6IGJvdC50cmFuc2Zvcm1lcnMucmV2ZXJzZS51c2VyKGJvdCwgbWVtYmVyLnVzZXIpLFxuICAgICAgcm9sZTogbWVtYmVyLnJvbGUsXG4gICAgfSkpLFxuICB9XG59XG4iXSwibmFtZXMiOlsidHJhbnNmb3JtVGVhbVRvRGlzY29yZFRlYW0iLCJib3QiLCJwYXlsb2FkIiwiaWQiLCJ0b1N0cmluZyIsIm5hbWUiLCJpY29uIiwiaWNvbkJpZ2ludFRvSGFzaCIsIm93bmVyX3VzZXJfaWQiLCJvd25lclVzZXJJZCIsIm1lbWJlcnMiLCJtYXAiLCJtZW1iZXIiLCJtZW1iZXJzaGlwX3N0YXRlIiwibWVtYmVyc2hpcFN0YXRlIiwidGVhbV9pZCIsInVzZXIiLCJ0cmFuc2Zvcm1lcnMiLCJyZXZlcnNlIiwicm9sZSJdLCJtYXBwaW5ncyI6Ijs7OzsrQkFHZ0JBOzs7ZUFBQUE7Ozt1QkFGOEM7QUFFdkQsU0FBU0EsMkJBQTJCQyxHQUFnQixFQUFFQyxPQUFhO0lBQ3hFLE1BQU1DLEtBQUtELFFBQVFDLEVBQUUsQ0FBQ0MsUUFBUTtJQUU5QixPQUFPO1FBQ0xDLE1BQU1ILFFBQVFHLElBQUk7UUFFbEJGO1FBQ0FHLE1BQU1KLFFBQVFJLElBQUksR0FBR0MsSUFBQUEsdUJBQWdCLEVBQUNMLFFBQVFJLElBQUksSUFBSTtRQUN0REUsZUFBZU4sUUFBUU8sV0FBVyxDQUFDTCxRQUFRO1FBQzNDTSxTQUFTUixRQUFRUSxPQUFPLENBQUNDLEdBQUcsQ0FBQyxDQUFDQyxTQUFZLENBQUE7Z0JBQ3hDQyxrQkFBa0JELE9BQU9FLGVBQWU7Z0JBQ3hDQyxTQUFTWjtnQkFDVGEsTUFBTWYsSUFBSWdCLFlBQVksQ0FBQ0MsT0FBTyxDQUFDRixJQUFJLENBQUNmLEtBQUtXLE9BQU9JLElBQUk7Z0JBQ3BERyxNQUFNUCxPQUFPTyxJQUFJO1lBQ25CLENBQUE7SUFDRjtBQUNGIn0=
@@ -87,4 +87,4 @@ function transformRoleColors(bot, payload) {
87
87
  return bot.transformers.customizers.roleColors(bot, payload, roleColors);
88
88
  }
89
89
 
90
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvcm9sZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEJpZ1N0cmluZywgRGlzY29yZFJvbGUsIERpc2NvcmRSb2xlQ29sb3JzIH0gZnJvbSAnQGRpc2NvcmRlbm8vdHlwZXMnXG5pbXBvcnQgeyB0eXBlIEludGVybmFsQm90LCB0eXBlIFJvbGUsIHR5cGUgUm9sZUNvbG9ycywgaWNvbkhhc2hUb0JpZ0ludCB9IGZyb20gJy4uL2luZGV4LmpzJ1xuaW1wb3J0IHsgUGVybWlzc2lvbnMgfSBmcm9tICcuL3RvZ2dsZXMvUGVybWlzc2lvbnMuanMnXG5pbXBvcnQgeyBSb2xlVG9nZ2xlcyB9IGZyb20gJy4vdG9nZ2xlcy9yb2xlLmpzJ1xuXG5leHBvcnQgY29uc3QgYmFzZVJvbGU6IEludGVybmFsQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsncm9sZSddID0ge1xuICAvLyBUaGlzIGFsbG93cyB0eXBlc2NyaXB0IHRvIHN0aWxsIGNoZWNrIGZvciB0eXBlIGVycm9ycyBvbiBmdW5jdGlvbnMgYmVsb3dcbiAgLi4uKHVuZGVmaW5lZCBhcyB1bmtub3duIGFzIEludGVybmFsQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsncm9sZSddKSxcblxuICBnZXQgdGFncygpIHtcbiAgICByZXR1cm4ge1xuICAgICAgYm90SWQ6IHRoaXMuaW50ZXJuYWxUYWdzPy5ib3RJZCxcbiAgICAgIGludGVncmF0aW9uSWQ6IHRoaXMuaW50ZXJuYWxUYWdzPy5pbnRlZ3JhdGlvbklkLFxuICAgICAgc3Vic2NyaXB0aW9uTGlzdGluZ0lkOiB0aGlzLmludGVybmFsVGFncz8uc3Vic2NyaXB0aW9uTGlzdGluZ0lkLFxuICAgICAgYXZhaWxhYmxlRm9yUHVyY2hhc2U6IHRoaXMudG9nZ2xlcz8uYXZhaWxhYmxlRm9yUHVyY2hhc2UsXG4gICAgICBndWlsZENvbm5lY3Rpb25zOiB0aGlzLnRvZ2dsZXM/Lmd1aWxkQ29ubmVjdGlvbnMsXG4gICAgICBwcmVtaXVtU3Vic2NyaWJlcjogdGhpcy50b2dnbGVzPy5wcmVtaXVtU3Vic2NyaWJlcixcbiAgICB9XG4gIH0sXG4gIC8qKiBJZiB0aGlzIHJvbGUgaXMgc2hvd2VkIHNlcGFyYXRlbHkgaW4gdGhlIHVzZXIgbGlzdGluZyAqL1xuICBnZXQgaG9pc3QoKSB7XG4gICAgcmV0dXJuICEhdGhpcy50b2dnbGVzPy5oYXMoJ2hvaXN0JylcbiAgfSxcbiAgLyoqIFdoZXRoZXIgdGhpcyByb2xlIGlzIG1hbmFnZWQgYnkgYW4gaW50ZWdyYXRpb24gKi9cbiAgZ2V0IG1hbmFnZWQoKSB7XG4gICAgcmV0dXJuICEhdGhpcy50b2dnbGVzPy5oYXMoJ21hbmFnZWQnKVxuICB9LFxuICAvKiogV2hldGhlciB0aGlzIHJvbGUgaXMgbWVudGlvbmFibGUgKi9cbiAgZ2V0IG1lbnRpb25hYmxlKCkge1xuICAgIHJldHVybiAhIXRoaXMudG9nZ2xlcz8uaGFzKCdtZW50aW9uYWJsZScpXG4gIH0sXG4gIC8qKiBXaGV0aGVyIHRoaXMgaXMgdGhlIGd1aWxkcyBwcmVtaXVtIHN1YnNjcmliZXIgcm9sZSAqL1xuICBnZXQgcHJlbWl1bVN1YnNjcmliZXIoKSB7XG4gICAgcmV0dXJuICEhdGhpcy50b2dnbGVzPy5oYXMoJ3ByZW1pdW1TdWJzY3JpYmVyJylcbiAgfSxcbiAgLyoqIFdoZXRoZXIgdGhpcyByb2xlIGlzIGF2YWlsYWJsZSBmb3IgcHVyY2hhc2UuICovXG4gIGdldCBhdmFpbGFibGVGb3JQdXJjaGFzZSgpIHtcbiAgICByZXR1cm4gISF0aGlzLnRvZ2dsZXM/LmhhcygnYXZhaWxhYmxlRm9yUHVyY2hhc2UnKVxuICB9LFxuICAvKiogV2hldGhlciB0aGlzIGlzIGEgZ3VpbGQncyBsaW5rZWQgcm9sZS4gKi9cbiAgZ2V0IGd1aWxkQ29ubmVjdGlvbnMoKSB7XG4gICAgcmV0dXJuICEhdGhpcy50b2dnbGVzPy5oYXMoJ2d1aWxkQ29ubmVjdGlvbnMnKVxuICB9LFxufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtUm9sZShib3Q6IEludGVybmFsQm90LCBwYXlsb2FkOiB7IHJvbGU6IERpc2NvcmRSb2xlOyBndWlsZElkOiBCaWdTdHJpbmcgfSk6IHR5cGVvZiBib3QudHJhbnNmb3JtZXJzLiRpbmZlcnJlZFR5cGVzLnJvbGUge1xuICBjb25zdCByb2xlOiBSb2xlID0gT2JqZWN0LmNyZWF0ZShiYXNlUm9sZSlcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLnJvbGVcbiAgaWYgKHByb3BzLmlkICYmIHBheWxvYWQucm9sZS5pZCkgcm9sZS5pZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQucm9sZS5pZClcbiAgLy8gUm9sZSBuYW1lIGNhbiBiZSBhbiBlbXB0eSBzdHJpbmdcbiAgaWYgKHByb3BzLm5hbWUgJiYgcGF5bG9hZC5yb2xlLm5hbWUgIT09IHVuZGVmaW5lZCkgcm9sZS5uYW1lID0gcGF5bG9hZC5yb2xlLm5hbWVcbiAgaWYgKHByb3BzLnBvc2l0aW9uKSByb2xlLnBvc2l0aW9uID0gcGF5bG9hZC5yb2xlLnBvc2l0aW9uXG4gIGlmIChwcm9wcy5ndWlsZElkICYmIHBheWxvYWQuZ3VpbGRJZCkgcm9sZS5ndWlsZElkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5ndWlsZElkKVxuICBpZiAocHJvcHMuY29sb3IgJiYgcGF5bG9hZC5yb2xlLmNvbG9yICE9PSB1bmRlZmluZWQpIHJvbGUuY29sb3IgPSBwYXlsb2FkLnJvbGUuY29sb3JcbiAgaWYgKHByb3BzLnBlcm1pc3Npb25zICYmIHBheWxvYWQucm9sZS5wZXJtaXNzaW9ucykgcm9sZS5wZXJtaXNzaW9ucyA9IG5ldyBQZXJtaXNzaW9ucyhwYXlsb2FkLnJvbGUucGVybWlzc2lvbnMpXG4gIGlmIChwcm9wcy5pY29uICYmIHBheWxvYWQucm9sZS5pY29uKSByb2xlLmljb24gPSBpY29uSGFzaFRvQmlnSW50KHBheWxvYWQucm9sZS5pY29uKVxuICBpZiAocHJvcHMudW5pY29kZUVtb2ppICYmIHBheWxvYWQucm9sZS51bmljb2RlX2Vtb2ppKSByb2xlLnVuaWNvZGVFbW9qaSA9IHBheWxvYWQucm9sZS51bmljb2RlX2Vtb2ppXG4gIGlmIChwcm9wcy5mbGFncykgcm9sZS5mbGFncyA9IHBheWxvYWQucm9sZS5mbGFnc1xuICBpZiAocHJvcHMudGFncyAmJiBwYXlsb2FkLnJvbGUudGFncykge1xuICAgIHJvbGUuaW50ZXJuYWxUYWdzID0ge31cbiAgICBpZiAocGF5bG9hZC5yb2xlLnRhZ3MuYm90X2lkKSByb2xlLmludGVybmFsVGFncy5ib3RJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQucm9sZS50YWdzLmJvdF9pZClcbiAgICBpZiAocGF5bG9hZC5yb2xlLnRhZ3MuaW50ZWdyYXRpb25faWQpIHJvbGUuaW50ZXJuYWxUYWdzLmludGVncmF0aW9uSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLnJvbGUudGFncy5pbnRlZ3JhdGlvbl9pZClcbiAgICBpZiAocGF5bG9hZC5yb2xlLnRhZ3Muc3Vic2NyaXB0aW9uX2xpc3RpbmdfaWQpXG4gICAgICByb2xlLmludGVybmFsVGFncy5zdWJzY3JpcHRpb25MaXN0aW5nSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLnJvbGUudGFncy5zdWJzY3JpcHRpb25fbGlzdGluZ19pZClcbiAgfVxuICBpZiAocHJvcHMudG9nZ2xlcykge1xuICAgIHJvbGUudG9nZ2xlcyA9IG5ldyBSb2xlVG9nZ2xlcyhwYXlsb2FkLnJvbGUpXG4gIH1cblxuICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jdXN0b21pemVycy5yb2xlKGJvdCwgcGF5bG9hZC5yb2xlLCByb2xlKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtUm9sZUNvbG9ycyhib3Q6IEludGVybmFsQm90LCBwYXlsb2FkOiBEaXNjb3JkUm9sZUNvbG9ycyk6IFJvbGVDb2xvcnMge1xuICBjb25zdCByb2xlQ29sb3JzID0ge30gYXMgUm9sZUNvbG9yc1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMucm9sZUNvbG9yc1xuXG4gIGlmIChwcm9wcy5wcmltYXJ5Q29sb3IgJiYgcGF5bG9hZC5wcmltYXJ5X2NvbG9yICE9PSB1bmRlZmluZWQpIHJvbGVDb2xvcnMucHJpbWFyeUNvbG9yID0gcGF5bG9hZC5wcmltYXJ5X2NvbG9yXG4gIGlmIChwcm9wcy5zZWNvbmRhcnlDb2xvciAmJiBwYXlsb2FkLnNlY29uZGFyeV9jb2xvciAhPT0gdW5kZWZpbmVkICYmIHBheWxvYWQuc2Vjb25kYXJ5X2NvbG9yICE9PSBudWxsKVxuICAgIHJvbGVDb2xvcnMuc2Vjb25kYXJ5Q29sb3IgPSBwYXlsb2FkLnNlY29uZGFyeV9jb2xvclxuICBpZiAocHJvcHMudGVydGlhcnlDb2xvciAmJiBwYXlsb2FkLnRlcnRpYXJ5X2NvbG9yICE9PSB1bmRlZmluZWQgJiYgcGF5bG9hZC50ZXJ0aWFyeV9jb2xvciAhPT0gbnVsbClcbiAgICByb2xlQ29sb3JzLnRlcnRpYXJ5Q29sb3IgPSBwYXlsb2FkLnRlcnRpYXJ5X2NvbG9yXG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMucm9sZUNvbG9ycyhib3QsIHBheWxvYWQsIHJvbGVDb2xvcnMpXG59XG4iXSwibmFtZXMiOlsiYmFzZVJvbGUiLCJ0cmFuc2Zvcm1Sb2xlIiwidHJhbnNmb3JtUm9sZUNvbG9ycyIsInVuZGVmaW5lZCIsInRhZ3MiLCJib3RJZCIsImludGVybmFsVGFncyIsImludGVncmF0aW9uSWQiLCJzdWJzY3JpcHRpb25MaXN0aW5nSWQiLCJhdmFpbGFibGVGb3JQdXJjaGFzZSIsInRvZ2dsZXMiLCJndWlsZENvbm5lY3Rpb25zIiwicHJlbWl1bVN1YnNjcmliZXIiLCJob2lzdCIsImhhcyIsIm1hbmFnZWQiLCJtZW50aW9uYWJsZSIsImJvdCIsInBheWxvYWQiLCJyb2xlIiwiT2JqZWN0IiwiY3JlYXRlIiwicHJvcHMiLCJ0cmFuc2Zvcm1lcnMiLCJkZXNpcmVkUHJvcGVydGllcyIsImlkIiwic25vd2ZsYWtlIiwibmFtZSIsInBvc2l0aW9uIiwiZ3VpbGRJZCIsImNvbG9yIiwicGVybWlzc2lvbnMiLCJQZXJtaXNzaW9ucyIsImljb24iLCJpY29uSGFzaFRvQmlnSW50IiwidW5pY29kZUVtb2ppIiwidW5pY29kZV9lbW9qaSIsImZsYWdzIiwiYm90X2lkIiwiaW50ZWdyYXRpb25faWQiLCJzdWJzY3JpcHRpb25fbGlzdGluZ19pZCIsIlJvbGVUb2dnbGVzIiwiY3VzdG9taXplcnMiLCJyb2xlQ29sb3JzIiwicHJpbWFyeUNvbG9yIiwicHJpbWFyeV9jb2xvciIsInNlY29uZGFyeUNvbG9yIiwic2Vjb25kYXJ5X2NvbG9yIiwidGVydGlhcnlDb2xvciIsInRlcnRpYXJ5X2NvbG9yIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztRQUthQTtlQUFBQTs7UUF3Q0dDO2VBQUFBOztRQTJCQUM7ZUFBQUE7Ozt1QkF2RStEOzZCQUNuRDtzQkFDQTtBQUVyQixNQUFNRixXQUFrRTtJQUM3RSwyRUFBMkU7SUFDM0UsR0FBSUcsU0FBUztJQUViLElBQUlDLFFBQU87UUFDVCxPQUFPO1lBQ0xDLE9BQU8sSUFBSSxDQUFDQyxZQUFZLEVBQUVEO1lBQzFCRSxlQUFlLElBQUksQ0FBQ0QsWUFBWSxFQUFFQztZQUNsQ0MsdUJBQXVCLElBQUksQ0FBQ0YsWUFBWSxFQUFFRTtZQUMxQ0Msc0JBQXNCLElBQUksQ0FBQ0MsT0FBTyxFQUFFRDtZQUNwQ0Usa0JBQWtCLElBQUksQ0FBQ0QsT0FBTyxFQUFFQztZQUNoQ0MsbUJBQW1CLElBQUksQ0FBQ0YsT0FBTyxFQUFFRTtRQUNuQztJQUNGO0lBQ0EsMERBQTBELEdBQzFELElBQUlDLFNBQVE7UUFDVixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUNILE9BQU8sRUFBRUksSUFBSTtJQUM3QjtJ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
90
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvcm9sZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEJpZ1N0cmluZywgRGlzY29yZFJvbGUsIERpc2NvcmRSb2xlQ29sb3JzIH0gZnJvbSAnQGRpc2NvcmRlbm8vdHlwZXMnXG5pbXBvcnQgeyB0eXBlIEludGVybmFsQm90LCBpY29uSGFzaFRvQmlnSW50LCB0eXBlIFJvbGUsIHR5cGUgUm9sZUNvbG9ycyB9IGZyb20gJy4uL2luZGV4LmpzJ1xuaW1wb3J0IHsgUGVybWlzc2lvbnMgfSBmcm9tICcuL3RvZ2dsZXMvUGVybWlzc2lvbnMuanMnXG5pbXBvcnQgeyBSb2xlVG9nZ2xlcyB9IGZyb20gJy4vdG9nZ2xlcy9yb2xlLmpzJ1xuXG5leHBvcnQgY29uc3QgYmFzZVJvbGU6IEludGVybmFsQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsncm9sZSddID0ge1xuICAvLyBUaGlzIGFsbG93cyB0eXBlc2NyaXB0IHRvIHN0aWxsIGNoZWNrIGZvciB0eXBlIGVycm9ycyBvbiBmdW5jdGlvbnMgYmVsb3dcbiAgLi4uKHVuZGVmaW5lZCBhcyB1bmtub3duIGFzIEludGVybmFsQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsncm9sZSddKSxcblxuICBnZXQgdGFncygpIHtcbiAgICByZXR1cm4ge1xuICAgICAgYm90SWQ6IHRoaXMuaW50ZXJuYWxUYWdzPy5ib3RJZCxcbiAgICAgIGludGVncmF0aW9uSWQ6IHRoaXMuaW50ZXJuYWxUYWdzPy5pbnRlZ3JhdGlvbklkLFxuICAgICAgc3Vic2NyaXB0aW9uTGlzdGluZ0lkOiB0aGlzLmludGVybmFsVGFncz8uc3Vic2NyaXB0aW9uTGlzdGluZ0lkLFxuICAgICAgYXZhaWxhYmxlRm9yUHVyY2hhc2U6IHRoaXMudG9nZ2xlcz8uYXZhaWxhYmxlRm9yUHVyY2hhc2UsXG4gICAgICBndWlsZENvbm5lY3Rpb25zOiB0aGlzLnRvZ2dsZXM/Lmd1aWxkQ29ubmVjdGlvbnMsXG4gICAgICBwcmVtaXVtU3Vic2NyaWJlcjogdGhpcy50b2dnbGVzPy5wcmVtaXVtU3Vic2NyaWJlcixcbiAgICB9XG4gIH0sXG4gIC8qKiBJZiB0aGlzIHJvbGUgaXMgc2hvd2VkIHNlcGFyYXRlbHkgaW4gdGhlIHVzZXIgbGlzdGluZyAqL1xuICBnZXQgaG9pc3QoKSB7XG4gICAgcmV0dXJuICEhdGhpcy50b2dnbGVzPy5oYXMoJ2hvaXN0JylcbiAgfSxcbiAgLyoqIFdoZXRoZXIgdGhpcyByb2xlIGlzIG1hbmFnZWQgYnkgYW4gaW50ZWdyYXRpb24gKi9cbiAgZ2V0IG1hbmFnZWQoKSB7XG4gICAgcmV0dXJuICEhdGhpcy50b2dnbGVzPy5oYXMoJ21hbmFnZWQnKVxuICB9LFxuICAvKiogV2hldGhlciB0aGlzIHJvbGUgaXMgbWVudGlvbmFibGUgKi9cbiAgZ2V0IG1lbnRpb25hYmxlKCkge1xuICAgIHJldHVybiAhIXRoaXMudG9nZ2xlcz8uaGFzKCdtZW50aW9uYWJsZScpXG4gIH0sXG4gIC8qKiBXaGV0aGVyIHRoaXMgaXMgdGhlIGd1aWxkcyBwcmVtaXVtIHN1YnNjcmliZXIgcm9sZSAqL1xuICBnZXQgcHJlbWl1bVN1YnNjcmliZXIoKSB7XG4gICAgcmV0dXJuICEhdGhpcy50b2dnbGVzPy5oYXMoJ3ByZW1pdW1TdWJzY3JpYmVyJylcbiAgfSxcbiAgLyoqIFdoZXRoZXIgdGhpcyByb2xlIGlzIGF2YWlsYWJsZSBmb3IgcHVyY2hhc2UuICovXG4gIGdldCBhdmFpbGFibGVGb3JQdXJjaGFzZSgpIHtcbiAgICByZXR1cm4gISF0aGlzLnRvZ2dsZXM/LmhhcygnYXZhaWxhYmxlRm9yUHVyY2hhc2UnKVxuICB9LFxuICAvKiogV2hldGhlciB0aGlzIGlzIGEgZ3VpbGQncyBsaW5rZWQgcm9sZS4gKi9cbiAgZ2V0IGd1aWxkQ29ubmVjdGlvbnMoKSB7XG4gICAgcmV0dXJuICEhdGhpcy50b2dnbGVzPy5oYXMoJ2d1aWxkQ29ubmVjdGlvbnMnKVxuICB9LFxufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtUm9sZShib3Q6IEludGVybmFsQm90LCBwYXlsb2FkOiB7IHJvbGU6IERpc2NvcmRSb2xlOyBndWlsZElkOiBCaWdTdHJpbmcgfSk6IHR5cGVvZiBib3QudHJhbnNmb3JtZXJzLiRpbmZlcnJlZFR5cGVzLnJvbGUge1xuICBjb25zdCByb2xlOiBSb2xlID0gT2JqZWN0LmNyZWF0ZShiYXNlUm9sZSlcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLnJvbGVcbiAgaWYgKHByb3BzLmlkICYmIHBheWxvYWQucm9sZS5pZCkgcm9sZS5pZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQucm9sZS5pZClcbiAgLy8gUm9sZSBuYW1lIGNhbiBiZSBhbiBlbXB0eSBzdHJpbmdcbiAgaWYgKHByb3BzLm5hbWUgJiYgcGF5bG9hZC5yb2xlLm5hbWUgIT09IHVuZGVmaW5lZCkgcm9sZS5uYW1lID0gcGF5bG9hZC5yb2xlLm5hbWVcbiAgaWYgKHByb3BzLnBvc2l0aW9uKSByb2xlLnBvc2l0aW9uID0gcGF5bG9hZC5yb2xlLnBvc2l0aW9uXG4gIGlmIChwcm9wcy5ndWlsZElkICYmIHBheWxvYWQuZ3VpbGRJZCkgcm9sZS5ndWlsZElkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5ndWlsZElkKVxuICBpZiAocHJvcHMuY29sb3IgJiYgcGF5bG9hZC5yb2xlLmNvbG9yICE9PSB1bmRlZmluZWQpIHJvbGUuY29sb3IgPSBwYXlsb2FkLnJvbGUuY29sb3JcbiAgaWYgKHByb3BzLnBlcm1pc3Npb25zICYmIHBheWxvYWQucm9sZS5wZXJtaXNzaW9ucykgcm9sZS5wZXJtaXNzaW9ucyA9IG5ldyBQZXJtaXNzaW9ucyhwYXlsb2FkLnJvbGUucGVybWlzc2lvbnMpXG4gIGlmIChwcm9wcy5pY29uICYmIHBheWxvYWQucm9sZS5pY29uKSByb2xlLmljb24gPSBpY29uSGFzaFRvQmlnSW50KHBheWxvYWQucm9sZS5pY29uKVxuICBpZiAocHJvcHMudW5pY29kZUVtb2ppICYmIHBheWxvYWQucm9sZS51bmljb2RlX2Vtb2ppKSByb2xlLnVuaWNvZGVFbW9qaSA9IHBheWxvYWQucm9sZS51bmljb2RlX2Vtb2ppXG4gIGlmIChwcm9wcy5mbGFncykgcm9sZS5mbGFncyA9IHBheWxvYWQucm9sZS5mbGFnc1xuICBpZiAocHJvcHMudGFncyAmJiBwYXlsb2FkLnJvbGUudGFncykge1xuICAgIHJvbGUuaW50ZXJuYWxUYWdzID0ge31cbiAgICBpZiAocGF5bG9hZC5yb2xlLnRhZ3MuYm90X2lkKSByb2xlLmludGVybmFsVGFncy5ib3RJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQucm9sZS50YWdzLmJvdF9pZClcbiAgICBpZiAocGF5bG9hZC5yb2xlLnRhZ3MuaW50ZWdyYXRpb25faWQpIHJvbGUuaW50ZXJuYWxUYWdzLmludGVncmF0aW9uSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLnJvbGUudGFncy5pbnRlZ3JhdGlvbl9pZClcbiAgICBpZiAocGF5bG9hZC5yb2xlLnRhZ3Muc3Vic2NyaXB0aW9uX2xpc3RpbmdfaWQpXG4gICAgICByb2xlLmludGVybmFsVGFncy5zdWJzY3JpcHRpb25MaXN0aW5nSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLnJvbGUudGFncy5zdWJzY3JpcHRpb25fbGlzdGluZ19pZClcbiAgfVxuICBpZiAocHJvcHMudG9nZ2xlcykge1xuICAgIHJvbGUudG9nZ2xlcyA9IG5ldyBSb2xlVG9nZ2xlcyhwYXlsb2FkLnJvbGUpXG4gIH1cblxuICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jdXN0b21pemVycy5yb2xlKGJvdCwgcGF5bG9hZC5yb2xlLCByb2xlKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtUm9sZUNvbG9ycyhib3Q6IEludGVybmFsQm90LCBwYXlsb2FkOiBEaXNjb3JkUm9sZUNvbG9ycyk6IFJvbGVDb2xvcnMge1xuICBjb25zdCByb2xlQ29sb3JzID0ge30gYXMgUm9sZUNvbG9yc1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMucm9sZUNvbG9yc1xuXG4gIGlmIChwcm9wcy5wcmltYXJ5Q29sb3IgJiYgcGF5bG9hZC5wcmltYXJ5X2NvbG9yICE9PSB1bmRlZmluZWQpIHJvbGVDb2xvcnMucHJpbWFyeUNvbG9yID0gcGF5bG9hZC5wcmltYXJ5X2NvbG9yXG4gIGlmIChwcm9wcy5zZWNvbmRhcnlDb2xvciAmJiBwYXlsb2FkLnNlY29uZGFyeV9jb2xvciAhPT0gdW5kZWZpbmVkICYmIHBheWxvYWQuc2Vjb25kYXJ5X2NvbG9yICE9PSBudWxsKVxuICAgIHJvbGVDb2xvcnMuc2Vjb25kYXJ5Q29sb3IgPSBwYXlsb2FkLnNlY29uZGFyeV9jb2xvclxuICBpZiAocHJvcHMudGVydGlhcnlDb2xvciAmJiBwYXlsb2FkLnRlcnRpYXJ5X2NvbG9yICE9PSB1bmRlZmluZWQgJiYgcGF5bG9hZC50ZXJ0aWFyeV9jb2xvciAhPT0gbnVsbClcbiAgICByb2xlQ29sb3JzLnRlcnRpYXJ5Q29sb3IgPSBwYXlsb2FkLnRlcnRpYXJ5X2NvbG9yXG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMucm9sZUNvbG9ycyhib3QsIHBheWxvYWQsIHJvbGVDb2xvcnMpXG59XG4iXSwibmFtZXMiOlsiYmFzZVJvbGUiLCJ0cmFuc2Zvcm1Sb2xlIiwidHJhbnNmb3JtUm9sZUNvbG9ycyIsInVuZGVmaW5lZCIsInRhZ3MiLCJib3RJZCIsImludGVybmFsVGFncyIsImludGVncmF0aW9uSWQiLCJzdWJzY3JpcHRpb25MaXN0aW5nSWQiLCJhdmFpbGFibGVGb3JQdXJjaGFzZSIsInRvZ2dsZXMiLCJndWlsZENvbm5lY3Rpb25zIiwicHJlbWl1bVN1YnNjcmliZXIiLCJob2lzdCIsImhhcyIsIm1hbmFnZWQiLCJtZW50aW9uYWJsZSIsImJvdCIsInBheWxvYWQiLCJyb2xlIiwiT2JqZWN0IiwiY3JlYXRlIiwicHJvcHMiLCJ0cmFuc2Zvcm1lcnMiLCJkZXNpcmVkUHJvcGVydGllcyIsImlkIiwic25vd2ZsYWtlIiwibmFtZSIsInBvc2l0aW9uIiwiZ3VpbGRJZCIsImNvbG9yIiwicGVybWlzc2lvbnMiLCJQZXJtaXNzaW9ucyIsImljb24iLCJpY29uSGFzaFRvQmlnSW50IiwidW5pY29kZUVtb2ppIiwidW5pY29kZV9lbW9qaSIsImZsYWdzIiwiYm90X2lkIiwiaW50ZWdyYXRpb25faWQiLCJzdWJzY3JpcHRpb25fbGlzdGluZ19pZCIsIlJvbGVUb2dnbGVzIiwiY3VzdG9taXplcnMiLCJyb2xlQ29sb3JzIiwicHJpbWFyeUNvbG9yIiwicHJpbWFyeV9jb2xvciIsInNlY29uZGFyeUNvbG9yIiwic2Vjb25kYXJ5X2NvbG9yIiwidGVydGlhcnlDb2xvciIsInRlcnRpYXJ5X2NvbG9yIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztRQUthQTtlQUFBQTs7UUF3Q0dDO2VBQUFBOztRQTJCQUM7ZUFBQUE7Ozt1QkF2RStEOzZCQUNuRDtzQkFDQTtBQUVyQixNQUFNRixXQUFrRTtJQUM3RSwyRUFBMkU7SUFDM0UsR0FBSUcsU0FBUztJQUViLElBQUlDLFFBQU87UUFDVCxPQUFPO1lBQ0xDLE9BQU8sSUFBSSxDQUFDQyxZQUFZLEVBQUVEO1lBQzFCRSxlQUFlLElBQUksQ0FBQ0QsWUFBWSxFQUFFQztZQUNsQ0MsdUJBQXVCLElBQUksQ0FBQ0YsWUFBWSxFQUFFRTtZQUMxQ0Msc0JBQXNCLElBQUksQ0FBQ0MsT0FBTyxFQUFFRDtZQUNwQ0Usa0JBQWtCLElBQUksQ0FBQ0QsT0FBTyxFQUFFQztZQUNoQ0MsbUJBQW1CLElBQUksQ0FBQ0YsT0FBTyxFQUFFRTtRQUNuQztJQUNGO0lBQ0EsMERBQTBELEdBQzFELElBQUlDLFNBQVE7UUFDVixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUNILE9BQU8sRUFBRUksSUFBSTtJQUM3QjtJ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