@discordeno/bot 21.0.1-next.4792ad2 → 21.0.1-next.485fd1b

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 (81) 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/MESSAGE_REACTION_ADD.cjs +2 -1
  5. package/dist/cjs/handlers/messages/MESSAGE_REACTION_REMOVE.cjs +2 -1
  6. package/dist/cjs/handlers/messages/MESSAGE_REACTION_REMOVE_EMOJI.cjs +2 -1
  7. package/dist/cjs/handlers/messages/index.cjs +3 -3
  8. package/dist/cjs/handlers/soundboard/index.cjs +3 -3
  9. package/dist/cjs/handlers/voice/index.cjs +2 -2
  10. package/dist/cjs/helpers.cjs +1 -2
  11. package/dist/cjs/index.cjs +3 -3
  12. package/dist/cjs/transformers/channel.cjs +2 -2
  13. package/dist/cjs/transformers/component.cjs +2 -2
  14. package/dist/cjs/transformers/interaction.cjs +2 -1
  15. package/dist/cjs/transformers/invite.cjs +1 -1
  16. package/dist/cjs/transformers/member.cjs +2 -2
  17. package/dist/cjs/transformers/message.cjs +2 -1
  18. package/dist/cjs/transformers/reverse/component.cjs +5 -5
  19. package/dist/cjs/transformers/reverse/emoji.cjs +3 -3
  20. package/dist/cjs/transformers/reverse/team.cjs +1 -1
  21. package/dist/cjs/transformers/role.cjs +1 -1
  22. package/dist/cjs/transformers/scheduledEvent.cjs +1 -1
  23. package/dist/cjs/transformers/team.cjs +1 -1
  24. package/dist/cjs/transformers/webhook.cjs +1 -1
  25. package/dist/cjs/transformers.cjs +1 -1
  26. package/dist/esm/bot.js +2 -2
  27. package/dist/esm/events.js +1 -1
  28. package/dist/esm/handlers/guilds/index.js +2 -2
  29. package/dist/esm/handlers/index.js +3 -3
  30. package/dist/esm/handlers/messages/MESSAGE_REACTION_ADD.js +2 -1
  31. package/dist/esm/handlers/messages/MESSAGE_REACTION_REMOVE.js +2 -1
  32. package/dist/esm/handlers/messages/MESSAGE_REACTION_REMOVE_EMOJI.js +2 -1
  33. package/dist/esm/handlers/messages/index.js +3 -3
  34. package/dist/esm/handlers/soundboard/index.js +3 -3
  35. package/dist/esm/handlers/voice/index.js +2 -2
  36. package/dist/esm/helpers.js +1 -2
  37. package/dist/esm/index.js +3 -3
  38. package/dist/esm/transformers/channel.js +2 -2
  39. package/dist/esm/transformers/component.js +2 -2
  40. package/dist/esm/transformers/interaction.js +2 -1
  41. package/dist/esm/transformers/invite.js +2 -2
  42. package/dist/esm/transformers/member.js +2 -2
  43. package/dist/esm/transformers/message.js +2 -1
  44. package/dist/esm/transformers/reverse/component.js +5 -5
  45. package/dist/esm/transformers/reverse/emoji.js +3 -3
  46. package/dist/esm/transformers/reverse/team.js +1 -1
  47. package/dist/esm/transformers/role.js +1 -1
  48. package/dist/esm/transformers/scheduledEvent.js +1 -1
  49. package/dist/esm/transformers/team.js +1 -1
  50. package/dist/esm/transformers/types.js +1 -1
  51. package/dist/esm/transformers/webhook.js +1 -1
  52. package/dist/esm/transformers.js +1 -1
  53. package/dist/types/bot.d.ts.map +1 -1
  54. package/dist/types/events.d.ts.map +1 -1
  55. package/dist/types/handlers/guilds/index.d.ts +1 -1
  56. package/dist/types/handlers/guilds/index.d.ts.map +1 -1
  57. package/dist/types/handlers/index.d.ts +2 -2
  58. package/dist/types/handlers/index.d.ts.map +1 -1
  59. package/dist/types/handlers/messages/MESSAGE_REACTION_ADD.d.ts.map +1 -1
  60. package/dist/types/handlers/messages/MESSAGE_REACTION_REMOVE.d.ts.map +1 -1
  61. package/dist/types/handlers/messages/MESSAGE_REACTION_REMOVE_EMOJI.d.ts.map +1 -1
  62. package/dist/types/handlers/messages/index.d.ts +2 -2
  63. package/dist/types/handlers/messages/index.d.ts.map +1 -1
  64. package/dist/types/handlers/soundboard/index.d.ts +2 -2
  65. package/dist/types/handlers/soundboard/index.d.ts.map +1 -1
  66. package/dist/types/handlers/voice/index.d.ts +1 -1
  67. package/dist/types/handlers/voice/index.d.ts.map +1 -1
  68. package/dist/types/helpers.d.ts +1 -1
  69. package/dist/types/helpers.d.ts.map +1 -1
  70. package/dist/types/index.d.ts +2 -2
  71. package/dist/types/index.d.ts.map +1 -1
  72. package/dist/types/transformers/channel.d.ts.map +1 -1
  73. package/dist/types/transformers/interaction.d.ts.map +1 -1
  74. package/dist/types/transformers/message.d.ts.map +1 -1
  75. package/dist/types/transformers/reverse/team.d.ts.map +1 -1
  76. package/dist/types/transformers/role.d.ts.map +1 -1
  77. package/dist/types/transformers/team.d.ts.map +1 -1
  78. package/dist/types/transformers/types.d.ts +2 -2
  79. package/dist/types/transformers/types.d.ts.map +1 -1
  80. package/dist/types/transformers.d.ts.map +1 -1
  81. package/package.json +6 -6
package/dist/esm/index.js CHANGED
@@ -5,13 +5,13 @@ export * from '@discordeno/utils';
5
5
  export * from './bot.js';
6
6
  export * from './commandOptionsParser.js';
7
7
  export * from './constants.js';
8
+ export * from './desiredProperties.js';
9
+ export * from './events.js';
8
10
  export * from './handlers/index.js';
9
11
  export * from './handlers.js';
10
12
  export * from './helpers.js';
11
13
  export * from './transformers/index.js';
12
14
  export * from './transformers.js';
13
- export * from './events.js';
14
- export * from './desiredProperties.js';
15
15
  export * from './utils.js';
16
16
 
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICdAZGlzY29yZGVuby9nYXRld2F5J1xuZXhwb3J0ICogZnJvbSAnQGRpc2NvcmRlbm8vcmVzdCdcbmV4cG9ydCAqIGZyb20gJ0BkaXNjb3JkZW5vL3R5cGVzJ1xuZXhwb3J0ICogZnJvbSAnQGRpc2NvcmRlbm8vdXRpbHMnXG5leHBvcnQgKiBmcm9tICcuL2JvdC5qcydcbmV4cG9ydCAqIGZyb20gJy4vY29tbWFuZE9wdGlvbnNQYXJzZXIuanMnXG5leHBvcnQgKiBmcm9tICcuL2NvbnN0YW50cy5qcydcbmV4cG9ydCAqIGZyb20gJy4vaGFuZGxlcnMvaW5kZXguanMnXG5leHBvcnQgKiBmcm9tICcuL2hhbmRsZXJzLmpzJ1xuZXhwb3J0ICogZnJvbSAnLi9oZWxwZXJzLmpzJ1xuZXhwb3J0ICogZnJvbSAnLi90cmFuc2Zvcm1lcnMvaW5kZXguanMnXG5leHBvcnQgKiBmcm9tICcuL3RyYW5zZm9ybWVycy5qcydcbmV4cG9ydCAqIGZyb20gJy4vZXZlbnRzLmpzJ1xuZXhwb3J0ICogZnJvbSAnLi9kZXNpcmVkUHJvcGVydGllcy5qcydcbmV4cG9ydCAqIGZyb20gJy4vdXRpbHMuanMnXG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxzQkFBcUI7QUFDbkMsY0FBYyxtQkFBa0I7QUFDaEMsY0FBYyxvQkFBbUI7QUFDakMsY0FBYyxvQkFBbUI7QUFDakMsY0FBYyxXQUFVO0FBQ3hCLGNBQWMsNEJBQTJCO0FBQ3pDLGNBQWMsaUJBQWdCO0FBQzlCLGNBQWMsc0JBQXFCO0FBQ25DLGNBQWMsZ0JBQWU7QUFDN0IsY0FBYyxlQUFjO0FBQzVCLGNBQWMsMEJBQXlCO0FBQ3ZDLGNBQWMsb0JBQW1CO0FBQ2pDLGNBQWMsY0FBYTtBQUMzQixjQUFjLHlCQUF3QjtBQUN0QyxjQUFjLGFBQVkifQ==
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICdAZGlzY29yZGVuby9nYXRld2F5J1xuZXhwb3J0ICogZnJvbSAnQGRpc2NvcmRlbm8vcmVzdCdcbmV4cG9ydCAqIGZyb20gJ0BkaXNjb3JkZW5vL3R5cGVzJ1xuZXhwb3J0ICogZnJvbSAnQGRpc2NvcmRlbm8vdXRpbHMnXG5leHBvcnQgKiBmcm9tICcuL2JvdC5qcydcbmV4cG9ydCAqIGZyb20gJy4vY29tbWFuZE9wdGlvbnNQYXJzZXIuanMnXG5leHBvcnQgKiBmcm9tICcuL2NvbnN0YW50cy5qcydcbmV4cG9ydCAqIGZyb20gJy4vZGVzaXJlZFByb3BlcnRpZXMuanMnXG5leHBvcnQgKiBmcm9tICcuL2V2ZW50cy5qcydcbmV4cG9ydCAqIGZyb20gJy4vaGFuZGxlcnMvaW5kZXguanMnXG5leHBvcnQgKiBmcm9tICcuL2hhbmRsZXJzLmpzJ1xuZXhwb3J0ICogZnJvbSAnLi9oZWxwZXJzLmpzJ1xuZXhwb3J0ICogZnJvbSAnLi90cmFuc2Zvcm1lcnMvaW5kZXguanMnXG5leHBvcnQgKiBmcm9tICcuL3RyYW5zZm9ybWVycy5qcydcbmV4cG9ydCAqIGZyb20gJy4vdXRpbHMuanMnXG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxzQkFBcUI7QUFDbkMsY0FBYyxtQkFBa0I7QUFDaEMsY0FBYyxvQkFBbUI7QUFDakMsY0FBYyxvQkFBbUI7QUFDakMsY0FBYyxXQUFVO0FBQ3hCLGNBQWMsNEJBQTJCO0FBQ3pDLGNBQWMsaUJBQWdCO0FBQzlCLGNBQWMseUJBQXdCO0FBQ3RDLGNBQWMsY0FBYTtBQUMzQixjQUFjLHNCQUFxQjtBQUNuQyxjQUFjLGdCQUFlO0FBQzdCLGNBQWMsZUFBYztBQUM1QixjQUFjLDBCQUF5QjtBQUN2QyxjQUFjLG9CQUFtQjtBQUNqQyxjQUFjLGFBQVkifQ==
@@ -1,6 +1,6 @@
1
1
  import { calculatePermissions, iconHashToBigInt } from '../index.js';
2
- import { Permissions } from './toggles/Permissions.js';
3
2
  import { ChannelToggles } from './toggles/channel.js';
3
+ import { Permissions } from './toggles/Permissions.js';
4
4
  const Mask = (1n << 64n) - 1n;
5
5
  export function packOverwrites(allow, deny, id, type) {
6
6
  return pack64(allow, 0) | pack64(deny, 1) | pack64(id, 2) | pack64(type, 3);
@@ -119,4 +119,4 @@ export function transformForumTag(bot, payload) {
119
119
  return bot.transformers.customizers.forumTag(bot, payload, forumTag);
120
120
  }
121
121
 
122
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvY2hhbm5lbC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEJpZ1N0cmluZywgRGlzY29yZENoYW5uZWwsIERpc2NvcmRGb3J1bVRhZyB9IGZyb20gJ0BkaXNjb3JkZW5vL3R5cGVzJ1xuaW1wb3J0IHsgdHlwZSBDaGFubmVsLCB0eXBlIEZvcnVtVGFnLCB0eXBlIEludGVybmFsQm90LCBjYWxjdWxhdGVQZXJtaXNzaW9ucywgaWNvbkhhc2hUb0JpZ0ludCB9IGZyb20gJy4uL2luZGV4LmpzJ1xuaW1wb3J0IHsgUGVybWlzc2lvbnMgfSBmcm9tICcuL3RvZ2dsZXMvUGVybWlzc2lvbnMuanMnXG5pbXBvcnQgeyBDaGFubmVsVG9nZ2xlcyB9IGZyb20gJy4vdG9nZ2xlcy9jaGFubmVsLmpzJ1xuXG5jb25zdCBNYXNrID0gKDFuIDw8IDY0bikgLSAxblxuXG5leHBvcnQgZnVuY3Rpb24gcGFja092ZXJ3cml0ZXMoYWxsb3c6IHN0cmluZywgZGVueTogc3RyaW5nLCBpZDogc3RyaW5nLCB0eXBlOiBudW1iZXIpOiBiaWdpbnQge1xuICByZXR1cm4gcGFjazY0KGFsbG93LCAwKSB8IHBhY2s2NChkZW55LCAxKSB8IHBhY2s2NChpZCwgMikgfCBwYWNrNjQodHlwZSwgMylcbn1cbmZ1bmN0aW9uIHVucGFjazY0KHY6IGJpZ2ludCwgc2hpZnQ6IG51bWJlcik6IGJpZ2ludCB7XG4gIHJldHVybiAodiA+PiBCaWdJbnQoc2hpZnQgKiA2NCkpICYgTWFza1xufVxuZnVuY3Rpb24gcGFjazY0KHY6IHN0cmluZyB8IG51bWJlciwgc2hpZnQ6IG51bWJlcik6IGJpZ2ludCB7XG4gIGNvbnN0IGIgPSBCaWdJbnQodilcbiAgaWYgKGIgPCAwIHx8IGIgPiBNYXNrKSB0aHJvdyBuZXcgRXJyb3IoJ3Nob3VsZCBoYXZlIGJlZW4gYSA2NCBiaXQgdW5zaWduZWQgaW50ZWdlcjogJyArIHYudG9TdHJpbmcoKSlcbiAgcmV0dXJuIGIgPDwgQmlnSW50KHNoaWZ0ICogNjQpXG59XG5leHBvcnQgZnVuY3Rpb24gc2VwYXJhdGVPdmVyd3JpdGVzKHY6IGJpZ2ludCk6IFtudW1iZXIsIGJpZ2ludCwgYmlnaW50LCBiaWdpbnRdIHtcbiAgcmV0dXJuIFtOdW1iZXIodW5wYWNrNjQodiwgMykpLCB1bnBhY2s2NCh2LCAyKSwgdW5wYWNrNjQodiwgMCksIHVucGFjazY0KHYsIDEpXSBhcyBbbnVtYmVyLCBiaWdpbnQsIGJpZ2ludCwgYmlnaW50XVxufVxuXG5leHBvcnQgY29uc3QgYmFzZUNoYW5uZWw6IEludGVybmFsQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsnY2hhbm5lbCddID0ge1xuICAvLyBUaGlzIGFsbG93cyB0eXBlc2NyaXB0IHRvIHN0aWxsIGNoZWNrIGZvciB0eXBlIGVycm9ycyBvbiBmdW5jdGlvbnMgYmVsb3dcbiAgLi4uKHVuZGVmaW5lZCBhcyB1bmtub3duIGFzIEludGVybmFsQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsnY2hhbm5lbCddKSxcblxuICBnZXQgYXJjaGl2ZWQoKSB7XG4gICAgcmV0dXJuICEhdGhpcy50b2dnbGVzPy5hcmNoaXZlZFxuICB9LFxuICBnZXQgaW52aXRhYmxlKCkge1xuICAgIHJldHVybiAhIXRoaXMudG9nZ2xlcz8uaW52aXRhYmxlXG4gIH0sXG4gIGdldCBsb2NrZWQoKSB7XG4gICAgcmV0dXJuICEhdGhpcy50b2dnbGVzPy5sb2NrZWRcbiAgfSxcbiAgZ2V0IG5zZncoKSB7XG4gICAgcmV0dXJuICEhdGhpcy50b2dnbGVzPy5uc2Z3XG4gIH0sXG4gIGdldCBuZXdseUNyZWF0ZWQoKSB7XG4gICAgcmV0dXJuICEhdGhpcy50b2dnbGVzPy5uZXdseUNyZWF0ZWRcbiAgfSxcbiAgZ2V0IG1hbmFnZWQoKSB7XG4gICAgcmV0dXJuICEhdGhpcy50b2dnbGVzPy5tYW5hZ2VkXG4gIH0sXG4gIGdldCBwZXJtaXNzaW9uT3ZlcndyaXRlcygpIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5pbnRlcm5hbE92ZXJ3cml0ZXM/Lm1hcCgob3ZlcndyaXRlKSA9PiB7XG4gICAgICAgIGNvbnN0IFt0eXBlLCBpZCwgYWxsb3csIGRlbnldID0gc2VwYXJhdGVPdmVyd3JpdGVzKG92ZXJ3cml0ZSlcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICB0eXBlLFxuICAgICAgICAgIGlkLFxuICAgICAgICAgIGFsbG93OiBjYWxjdWxhdGVQZXJtaXNzaW9ucyhhbGxvdyksXG4gICAgICAgICAgZGVueTogY2FsY3VsYXRlUGVybWlzc2lvbnMoZGVueSksXG4gICAgICAgIH1cbiAgICAgIH0pID8/IFtdXG4gICAgKVxuICB9LFxuICBnZXQgdGhyZWFkTWV0YWRhdGEoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGFyY2hpdmVUaW1lc3RhbXA6IHRoaXMuaW50ZXJuYWxUaHJlYWRNZXRhZGF0YT8uYXJjaGl2ZVRpbWVzdGFtcCxcbiAgICAgIGNyZWF0ZVRpbWVzdGFtcDogdGhpcy5pbnRlcm5hbFRocmVhZE1ldGFkYXRhPy5jcmVhdGVUaW1lc3RhbXAsXG4gICAgICBhdXRvQXJjaGl2ZUR1cmF0aW9uOiB0aGlzLmludGVybmFsVGhyZWFkTWV0YWRhdGE/LmF1dG9BcmNoaXZlRHVyYXRpb24sXG4gICAgICBsb2NrZWQ6ICEhdGhpcy50b2dnbGVzPy5sb2NrZWQsXG4gICAgICBpbnZpdGFibGU6ICEhdGhpcy50b2dnbGVzPy5pbnZpdGFibGUsXG4gICAgICBhcmNoaXZlZDogISF0aGlzLnRvZ2dsZXM/LmFyY2hpdmVkLFxuICAgIH1cbiAgfSxcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybUNoYW5uZWwoXG4gIGJvdDogSW50ZXJuYWxCb3QsXG4gIHBheWxvYWQ6IHsgY2hhbm5lbDogRGlzY29yZENoYW5uZWw7IGd1aWxkSWQ/OiBCaWdTdHJpbmcgfSxcbik6IHR5cGVvZiBib3QudHJhbnNmb3JtZXJzLiRpbmZlcnJlZFR5cGVzLmNoYW5uZWwge1xuICBjb25zdCBjaGFubmVsID0gT2JqZWN0LmNyZWF0ZShiYXNlQ2hhbm5lbCkgYXMgQ2hhbm5lbFxuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuY2hhbm5lbFxuICBjaGFubmVsLnRvZ2dsZXMgPSBuZXcgQ2hhbm5lbFRvZ2dsZXMocGF5bG9hZC5jaGFubmVsKVxuXG4gIGlmIChwcm9wcy5pZCAmJiBwYXlsb2FkLmNoYW5uZWwuaWQpIGNoYW5uZWwuaWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmNoYW5uZWwuaWQpXG4gIGlmIChwcm9wcy5ndWlsZElkICYmIChwYXlsb2FkLmd1aWxkSWQgPz8gcGF5bG9hZC5jaGFubmVsLmd1aWxkX2lkKSlcbiAgICBjaGFubmVsLmd1aWxkSWQgPSBwYXlsb2FkLmd1aWxkSWQgPyBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmd1aWxkSWQpIDogYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5jaGFubmVsLmd1aWxkX2lkISlcbiAgaWYgKHByb3BzLnR5cGUpIGNoYW5uZWwudHlwZSA9IHBheWxvYWQuY2hhbm5lbC50eXBlXG4gIGlmIChwcm9wcy5wb3NpdGlvbikgY2hhbm5lbC5wb3NpdGlvbiA9IHBheWxvYWQuY2hhbm5lbC5wb3NpdGlvblxuICBpZiAocHJvcHMubmFtZSAmJiBwYXlsb2FkLmNoYW5uZWwubmFtZSkgY2hhbm5lbC5uYW1lID0gcGF5bG9hZC5jaGFubmVsLm5hbWVcbiAgaWYgKHByb3BzLnRvcGljICYmIHBheWxvYWQuY2hhbm5lbC50b3BpYykgY2hhbm5lbC50b3BpYyA9IHBheWxvYWQuY2hhbm5lbC50b3BpY1xuICBpZiAocHJvcHMubGFzdE1lc3NhZ2VJZCAmJiBwYXlsb2FkLmNoYW5uZWwubGFzdF9tZXNzYWdlX2lkKSBjaGFubmVsLmxhc3RNZXNzYWdlSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmNoYW5uZWwubGFzdF9tZXNzYWdlX2lkKVxuICBpZiAocHJvcHMuYml0cmF0ZSAmJiBwYXlsb2FkLmNoYW5uZWwuYml0cmF0ZSkgY2hhbm5lbC5iaXRyYXRlID0gcGF5bG9hZC5jaGFubmVsLmJpdHJhdGVcbiAgaWYgKHByb3BzLnVzZXJMaW1pdCkgY2hhbm5lbC51c2VyTGltaXQgPSBwYXlsb2FkLmNoYW5uZWwudXNlcl9saW1pdFxuICBpZiAocHJvcHMucmF0ZUxpbWl0UGVyVXNlcikgY2hhbm5lbC5yYXRlTGltaXRQZXJVc2VyID0gcGF5bG9hZC5jaGFubmVsLnJhdGVfbGltaXRfcGVyX3VzZXJcbiAgaWYgKHByb3BzLm93bmVySWQgJiYgcGF5bG9hZC5jaGFubmVsLm93bmVyX2lkKSBjaGFubmVsLm93bmVySWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmNoYW5uZWwub3duZXJfaWQpXG4gIGlmIChwcm9wcy5sYXN0UGluVGltZXN0YW1wICYmIHBheWxvYWQuY2hhbm5lbC5sYXN0X3Bpbl90aW1lc3RhbXApIGNoYW5uZWwubGFzdFBpblRpbWVzdGFtcCA9IERhdGUucGFyc2UocGF5bG9hZC5jaGFubmVsLmxhc3RfcGluX3RpbWVzdGFtcClcbiAgaWYgKHByb3BzLnJ0Y1JlZ2lvbiAmJiBwYXlsb2FkLmNoYW5uZWwucnRjX3JlZ2lvbikgY2hhbm5lbC5ydGNSZWdpb24gPSBwYXlsb2FkLmNoYW5uZWwucnRjX3JlZ2lvblxuICBpZiAocHJvcHMudmlkZW9RdWFsaXR5TW9kZSAmJiBwYXlsb2FkLmNoYW5uZWwudmlkZW9fcXVhbGl0eV9tb2RlKSBjaGFubmVsLnZpZGVvUXVhbGl0eU1vZGUgPSBwYXlsb2FkLmNoYW5uZWwudmlkZW9fcXVhbGl0eV9tb2RlXG4gIGlmIChwcm9wcy5tZXNzYWdlQ291bnQpIGNoYW5uZWwubWVzc2FnZUNvdW50ID0gcGF5bG9hZC5jaGFubmVsLm1lc3NhZ2VfY291bnRcbiAgaWYgKHByb3BzLm1lbWJlckNvdW50KSBjaGFubmVsLm1lbWJlckNvdW50ID0gcGF5bG9hZC5jaGFubmVsLm1lbWJlcl9jb3VudFxuICBpZiAocHJvcHMudGhyZWFkTWV0YWRhdGEpIHtcbiAgICBjaGFubmVsLmludGVybmFsVGhyZWFkTWV0YWRhdGEgPSB7fSBhcyBOb25OdWxsYWJsZTxDaGFubmVsWydpbnRlcm5hbFRocmVhZE1ldGFkYXRhJ10+XG4gICAgaWYgKHBheWxvYWQuY2hhbm5lbC50aHJlYWRfbWV0YWRhdGE/LmFyY2hpdmVfdGltZXN0YW1wKVxuICAgICAgY2hhbm5lbC5pbnRlcm5hbFRocmVhZE1ldGFkYXRhLmFyY2hpdmVUaW1lc3RhbXAgPSBEYXRlLnBhcnNlKHBheWxvYWQuY2hhbm5lbC50aHJlYWRfbWV0YWRhdGEuYXJjaGl2ZV90aW1lc3RhbXApXG4gICAgaWYgKHBheWxvYWQuY2hhbm5lbC50aHJlYWRfbWV0YWRhdGE/LmNyZWF0ZV90aW1lc3RhbXApXG4gICAgICBjaGFubmVsLmludGVybmFsVGhyZWFkTWV0YWRhdGEuY3JlYXRlVGltZXN0YW1wID0gRGF0ZS5wYXJzZShwYXlsb2FkLmNoYW5uZWwudGhyZWFkX21ldGFkYXRhLmNyZWF0ZV90aW1lc3RhbXApXG4gICAgaWYgKHBheWxvYWQuY2hhbm5lbC50aHJlYWRfbWV0YWRhdGE/LmF1dG9fYXJjaGl2ZV9kdXJhdGlvbilcbiAgICAgIGNoYW5uZWwuaW50ZXJuYWxUaHJlYWRNZXRhZGF0YS5hdXRvQXJjaGl2ZUR1cmF0aW9uID0gcGF5bG9hZC5jaGFubmVsLnRocmVhZF9tZXRhZGF0YS5hdXRvX2FyY2hpdmVfZHVyYXRpb25cbiAgfVxuICBpZiAocHJvcHMuZGVmYXVsdEF1dG9BcmNoaXZlRHVyYXRpb24gJiYgcGF5bG9hZC5jaGFubmVsLmRlZmF1bHRfYXV0b19hcmNoaXZlX2R1cmF0aW9uKVxuICAgIGNoYW5uZWwuZGVmYXVsdEF1dG9BcmNoaXZlRHVyYXRpb24gPSBwYXlsb2FkLmNoYW5uZWwuZGVmYXVsdF9hdXRvX2FyY2hpdmVfZHVyYXRpb25cbiAgaWYgKHByb3BzLnBlcm1pc3Npb25zICYmIHBheWxvYWQuY2hhbm5lbC5wZXJtaXNzaW9ucykgY2hhbm5lbC5wZXJtaXNzaW9ucyA9IG5ldyBQZXJtaXNzaW9ucyhwYXlsb2FkLmNoYW5uZWwucGVybWlzc2lvbnMpXG4gIGlmIChwcm9wcy5mbGFncykgY2hhbm5lbC5mbGFncyA9IHBheWxvYWQuY2hhbm5lbC5mbGFnc1xuICBpZiAocHJvcHMucGVybWlzc2lvbk92ZXJ3cml0ZXMgJiYgcGF5bG9hZC5jaGFubmVsLnBlcm1pc3Npb25fb3ZlcndyaXRlcylcbiAgICBjaGFubmVsLmludGVybmFsT3ZlcndyaXRlcyA9IHBheWxvYWQuY2hhbm5lbC5wZXJtaXNzaW9uX292ZXJ3cml0ZXMubWFwKChvKSA9PiBwYWNrT3ZlcndyaXRlcyhvLmFsbG93ID8/ICcwJywgby5kZW55ID8/ICcwJywgby5pZCwgby50eXBlKSlcbiAgaWYgKHByb3BzLnBhcmVudElkICYmIHBheWxvYWQuY2hhbm5lbC5wYXJlbnRfaWQpIGNoYW5uZWwucGFyZW50SWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmNoYW5uZWwucGFyZW50X2lkKVxuICBpZiAocHJvcHMucmVjaXBpZW50cyAmJiBwYXlsb2FkLmNoYW5uZWwucmVjaXBpZW50cykgY2hhbm5lbC5yZWNpcGllbnRzID0gcGF5bG9hZC5jaGFubmVsLnJlY2lwaWVudHMubWFwKCh1KSA9PiBib3QudHJhbnNmb3JtZXJzLnVzZXIoYm90LCB1KSlcbiAgaWYgKHByb3BzLmljb24gJiYgcGF5bG9hZC5jaGFubmVsLmljb24pIGNoYW5uZWwuaWNvbiA9IGljb25IYXNoVG9CaWdJbnQocGF5bG9hZC5jaGFubmVsLmljb24pXG4gIGlmIChwcm9wcy5hcHBsaWNhdGlvbklkICYmIHBheWxvYWQuY2hhbm5lbC5hcHBsaWNhdGlvbl9pZCkgY2hhbm5lbC5hcHBsaWNhdGlvbklkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5jaGFubmVsLmFwcGxpY2F0aW9uX2lkKVxuICBpZiAocHJvcHMubWVtYmVyICYmIHBheWxvYWQuY2hhbm5lbC5tZW1iZXIpIGNoYW5uZWwubWVtYmVyID0gYm90LnRyYW5zZm9ybWVycy50aHJlYWRNZW1iZXIoYm90LCBwYXlsb2FkLmNoYW5uZWwubWVtYmVyKVxuICBpZiAocHJvcHMudG90YWxNZXNzYWdlU2VudCAmJiBwYXlsb2FkLmNoYW5uZWwudG90YWxfbWVzc2FnZV9zZW50ICE9PSB1bmRlZmluZWQpIGNoYW5uZWwudG90YWxNZXNzYWdlU2VudCA9IHBheWxvYWQuY2hhbm5lbC50b3RhbF9tZXNzYWdlX3NlbnRcbiAgaWYgKHByb3BzLmF2YWlsYWJsZVRhZ3MgJiYgcGF5bG9hZC5jaGFubmVsLmF2YWlsYWJsZV90YWdzKVxuICAgIGNoYW5uZWwuYXZhaWxhYmxlVGFncyA9IHBheWxvYWQuY2hhbm5lbC5hdmFpbGFibGVfdGFncy5tYXAoKHgpID0+IGJvdC50cmFuc2Zvcm1lcnMuZm9ydW1UYWcoYm90LCB4KSlcbiAgaWYgKHByb3BzLmFwcGxpZWRUYWdzICYmIHBheWxvYWQuY2hhbm5lbC5hcHBsaWVkX3RhZ3MpIGNoYW5uZWwuYXBwbGllZFRhZ3MgPSBwYXlsb2FkLmNoYW5uZWwuYXBwbGllZF90YWdzLm1hcCgoeCkgPT4gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UoeCkpXG4gIGlmIChwcm9wcy5kZWZhdWx0UmVhY3Rpb25FbW9qaSAmJiBwYXlsb2FkLmNoYW5uZWwuZGVmYXVsdF9yZWFjdGlvbl9lbW9qaSlcbiAgICBjaGFubmVsLmRlZmF1bHRSZWFjdGlvbkVtb2ppID0gYm90LnRyYW5zZm9ybWVycy5kZWZhdWx0UmVhY3Rpb25FbW9qaShib3QsIHBheWxvYWQuY2hhbm5lbC5kZWZhdWx0X3JlYWN0aW9uX2Vtb2ppKVxuICBpZiAocHJvcHMuZGVmYXVsdFRocmVhZFJhdGVMaW1pdFBlclVzZXIgJiYgcGF5bG9hZC5jaGFubmVsLmRlZmF1bHRfdGhyZWFkX3JhdGVfbGltaXRfcGVyX3VzZXIpXG4gICAgY2hhbm5lbC5kZWZhdWx0VGhyZWFkUmF0ZUxpbWl0UGVyVXNlciA9IHBheWxvYWQuY2hhbm5lbC5kZWZhdWx0X3RocmVhZF9yYXRlX2xpbWl0X3Blcl91c2VyXG4gIGlmIChwcm9wcy5kZWZhdWx0U29ydE9yZGVyICYmIHBheWxvYWQuY2hhbm5lbC5kZWZhdWx0X3NvcnRfb3JkZXIgIT09IHVuZGVmaW5lZCkgY2hhbm5lbC5kZWZhdWx0U29ydE9yZGVyID0gcGF5bG9hZC5jaGFubmVsLmRlZmF1bHRfc29ydF9vcmRlclxuICBpZiAocHJvcHMuZGVmYXVsdEZvcnVtTGF5b3V0ICYmIHBheWxvYWQuY2hhbm5lbC5kZWZhdWx0X2ZvcnVtX2xheW91dCAhPT0gdW5kZWZpbmVkKVxuICAgIGNoYW5uZWwuZGVmYXVsdEZvcnVtTGF5b3V0ID0gcGF5bG9hZC5jaGFubmVsLmRlZmF1bHRfZm9ydW1fbGF5b3V0XG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMuY2hhbm5lbChib3QsIHBheWxvYWQuY2hhbm5lbCwgY2hhbm5lbClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybUZvcnVtVGFnKGJvdDogSW50ZXJuYWxCb3QsIHBheWxvYWQ6IERpc2NvcmRGb3J1bVRhZyk6IHR5cGVvZiBib3QudHJhbnNmb3JtZXJzLiRpbmZlcnJlZFR5cGVzLmZvcnVtVGFnIHtcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLmZvcnVtVGFnXG4gIGNvbnN0IGZvcnVtVGFnID0ge30gYXMgRm9ydW1UYWdcblxuICBpZiAocHJvcHMuaWQgJiYgcGF5bG9hZC5pZCkgZm9ydW1UYWcuaWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmlkKVxuICBpZiAocHJvcHMubmFtZSAmJiBwYXlsb2FkLm5hbWUpIGZvcnVtVGFnLm5hbWUgPSBwYXlsb2FkLm5hbWVcbiAgaWYgKHByb3BzLm1vZGVyYXRlZCAmJiBwYXlsb2FkLm1vZGVyYXRlZCkgZm9ydW1UYWcubW9kZXJhdGVkID0gcGF5bG9hZC5tb2RlcmF0ZWRcbiAgaWYgKHByb3BzLmVtb2ppSWQgJiYgcGF5bG9hZC5lbW9qaV9pZCkgZm9ydW1UYWcuZW1vamlJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuZW1vamlfaWQpXG4gIGlmIChwcm9wcy5lbW9qaU5hbWUgJiYgcGF5bG9hZC5lbW9qaV9uYW1lKSBmb3J1bVRhZy5lbW9qaU5hbWUgPSBwYXlsb2FkLmVtb2ppX25hbWVcblxuICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jdXN0b21pemVycy5mb3J1bVRhZyhib3QsIHBheWxvYWQsIGZvcnVtVGFnKVxufVxuIl0sIm5hbWVzIjpbImNhbGN1bGF0ZVBlcm1pc3Npb25zIiwiaWNvbkhhc2hUb0JpZ0ludCIsIlBlcm1pc3Npb25zIiwiQ2hhbm5lbFRvZ2dsZXMiLCJNYXNrIiwicGFja092ZXJ3cml0ZXMiLCJhbGxvdyIsImRlbnkiLCJpZCIsInR5cGUiLCJwYWNrNjQiLCJ1bnBhY2s2NCIsInYiLCJzaGlmdCIsIkJpZ0ludCIsImIiLCJFcnJvciIsInRvU3RyaW5nIiwic2VwYXJhdGVPdmVyd3JpdGVzIiwiTnVtYmVyIiwiYmFzZUNoYW5uZWwiLCJ1bmRlZmluZWQiLCJhcmNoaXZlZCIsInRvZ2dsZXMiLCJpbnZpdGFibGUiLCJsb2NrZWQiLCJuc2Z3IiwibmV3bHlDcmVhdGVkIiwibWFuYWdlZCIsInBlcm1pc3Npb25PdmVyd3JpdGVzIiwiaW50ZXJuYWxPdmVyd3JpdGVzIiwibWFwIiwib3ZlcndyaXRlIiwidGhyZWFkTWV0YWRhdGEiLCJhcmNoaXZlVGltZXN0YW1wIiwiaW50ZXJuYWxUaHJlYWRNZXRhZGF0YSIsImNyZWF0ZVRpbWVzdGFtcCIsImF1dG9BcmNoaXZlRHVyYXRpb24iLCJ0cmFuc2Zvcm1DaGFubmVsIiwiYm90IiwicGF5bG9hZCIsImNoYW5uZWwiLCJPYmplY3QiLCJjcmVhdGUiLCJwcm9wcyIsInRyYW5zZm9ybWVycyIsImRlc2lyZWRQcm9wZXJ0aWVzIiwic25vd2ZsYWtlIiwiZ3VpbGRJZCIsImd1aWxkX2lkIiwicG9zaXRpb24iLCJuYW1lIiwidG9waWMiLCJsYXN0TWVzc2FnZUlkIiwibGFzdF9tZXNzYWdlX2lkIiwiYml0cmF0ZSIsInVzZXJMaW1pdCIsInVzZXJfbGltaXQiLCJyYXRlTGltaXRQZXJVc2VyIiwicmF0ZV9saW1pdF9wZXJfdXNlciIsIm93bmVySWQiLCJvd25lcl9pZCIsImxhc3RQaW5UaW1lc3RhbXAiLCJsYXN0X3Bpbl90aW1lc3RhbXAiLCJEYXRlIiwicGFyc2UiLCJydGNSZWdpb24iLCJydGNfcmVnaW9uIiwidmlkZW9RdWFsaXR5TW9kZSIsInZpZGVvX3F1YWxpdHlfbW9kZSIsIm1lc3NhZ2VDb3VudCIsIm1lc3NhZ2VfY291bnQiLCJtZW1iZXJDb3VudCIsIm1lbWJlcl9jb3VudCIsInRocmVhZF9tZXRhZGF0YSIsImFyY2hpdmVfdGltZXN0YW1wIiwiY3JlYXRlX3RpbWVzdGFtcCIsImF1dG9fYXJjaGl2ZV9kdXJhdGlvbiIsImRlZmF1bHRBdXRvQXJjaGl2ZUR1cmF0aW9uIiwiZGVmYXVsdF9hdXRvX2FyY2hpdmVfZHVyYXRpb24iLCJwZXJtaXNzaW9ucyIsImZsYWdzIiwicGVybWlzc2lvbl9vdmVyd3JpdGVzIiwibyIsInBhcmVudElkIiwicGFyZW50X2lkIiwicmVjaXBpZW50cyIsInUiLCJ1c2VyIiwiaWNvbiIsImFwcGxpY2F0aW9uSWQiLCJhcHBsaWNhdGlvbl9pZCIsIm1lbWJlciIsInRocmVhZE1lbWJlciIsInRvdGFsTWVzc2FnZVNlbnQiLCJ0b3RhbF9tZXNzYWdlX3NlbnQiLCJhdmFpbGFibGVUYWdzIiwiYXZhaWxhYmxlX3RhZ3MiLCJ4IiwiZm9ydW1UYWciLCJhcHBsaWVkVGFncyIsImFwcGxpZWRfdGFncyIsImRlZmF1bHRSZWFjdGlvbkVtb2ppIiwiZGVmYXVsdF9yZWFjdGlvbl9lbW9qaSIsImRlZmF1bHRUaHJlYWRSYXRlTGltaXRQZXJVc2VyIiwiZGVmYXVsdF90aHJlYWRfcmF0ZV9saW1pdF9wZXJfdXNlciIsImRlZmF1bHRTb3J0T3JkZXIiLCJkZWZhdWx0X3NvcnRfb3JkZXIiLCJkZWZhdWx0Rm9ydW1MYXlvdXQiLCJkZWZhdWx0X2ZvcnVtX2xheW91dCIsImN1c3RvbWl6ZXJzIiwidHJhbnNmb3JtRm9ydW1UYWciLCJtb2RlcmF0ZWQiLCJlbW9qaUlkIiwiZW1vamlfaWQiLCJlbW9qaU5hbWUiLCJlbW9qaV9uYW1lIl0sIm1hcHBpbmdzIjoiQUFDQSxTQUF3REEsb0JBQW9CLEVBQUVDLGdCQUFnQixRQUFRLGNBQWE7QUFDbkgsU0FBU0MsV0FBVyxRQUFRLDJCQUEwQjtBQUN0RCxTQUFTQyxjQUFjLFFBQVEsdUJBQXNCO0FBRXJELE1BQU1DLE9BQU8sQUFBQyxDQUFBLEVBQUUsSUFBSSxHQUFHLEFBQUQsSUFBSyxFQUFFO0FBRTdCLE9BQU8sU0FBU0MsZUFBZUMsS0FBYSxFQUFFQyxJQUFZLEVBQUVDLEVBQVUsRUFBRUMsSUFBWTtJQUNsRixPQUFPQyxPQUFPSixPQUFPLEtBQUtJLE9BQU9ILE1BQU0sS0FBS0csT0FBT0YsSUFBSSxLQUFLRSxPQUFPRCxNQUFNO0FBQzNFO0FBQ0EsU0FBU0UsU0FBU0MsQ0FBUyxFQUFFQyxLQUFhO0lBQ3hDLE9BQU8sQUFBQ0QsS0FBS0UsT0FBT0QsUUFBUSxNQUFPVDtBQUNyQztBQUNBLFNBQVNNLE9BQU9FLENBQWtCLEVBQUVDLEtBQWE7SUFDL0MsTUFBTUUsSUFBSUQsT0FBT0Y7SUFDakIsSUFBSUcsSUFBSSxLQUFLQSxJQUFJWCxNQUFNLE1BQU0sSUFBSVksTUFBTSxpREFBaURKLEVBQUVLLFFBQVE7SUFDbEcsT0FBT0YsS0FBS0QsT0FBT0QsUUFBUTtBQUM3QjtBQUNBLE9BQU8sU0FBU0ssbUJBQW1CTixDQUFTO0lBQzFDLE9BQU87UUFBQ08sT0FBT1IsU0FBU0MsR0FBRztRQUFLRCxTQUFTQyxHQUFHO1FBQUlELFNBQVNDLEdBQUc7UUFBSUQsU0FBU0MsR0FBRztLQUFHO0FBQ2pGO0FBRUEsT0FBTyxNQUFNUSxjQUF3RTtJQUNuRiwyRUFBMkU7SUFDM0UsR0FBSUMsU0FBUztJQUViLElB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
122
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvY2hhbm5lbC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEJpZ1N0cmluZywgRGlzY29yZENoYW5uZWwsIERpc2NvcmRGb3J1bVRhZyB9IGZyb20gJ0BkaXNjb3JkZW5vL3R5cGVzJ1xuaW1wb3J0IHsgdHlwZSBDaGFubmVsLCBjYWxjdWxhdGVQZXJtaXNzaW9ucywgdHlwZSBGb3J1bVRhZywgdHlwZSBJbnRlcm5hbEJvdCwgaWNvbkhhc2hUb0JpZ0ludCB9IGZyb20gJy4uL2luZGV4LmpzJ1xuaW1wb3J0IHsgQ2hhbm5lbFRvZ2dsZXMgfSBmcm9tICcuL3RvZ2dsZXMvY2hhbm5lbC5qcydcbmltcG9ydCB7IFBlcm1pc3Npb25zIH0gZnJvbSAnLi90b2dnbGVzL1Blcm1pc3Npb25zLmpzJ1xuXG5jb25zdCBNYXNrID0gKDFuIDw8IDY0bikgLSAxblxuXG5leHBvcnQgZnVuY3Rpb24gcGFja092ZXJ3cml0ZXMoYWxsb3c6IHN0cmluZywgZGVueTogc3RyaW5nLCBpZDogc3RyaW5nLCB0eXBlOiBudW1iZXIpOiBiaWdpbnQge1xuICByZXR1cm4gcGFjazY0KGFsbG93LCAwKSB8IHBhY2s2NChkZW55LCAxKSB8IHBhY2s2NChpZCwgMikgfCBwYWNrNjQodHlwZSwgMylcbn1cbmZ1bmN0aW9uIHVucGFjazY0KHY6IGJpZ2ludCwgc2hpZnQ6IG51bWJlcik6IGJpZ2ludCB7XG4gIHJldHVybiAodiA+PiBCaWdJbnQoc2hpZnQgKiA2NCkpICYgTWFza1xufVxuZnVuY3Rpb24gcGFjazY0KHY6IHN0cmluZyB8IG51bWJlciwgc2hpZnQ6IG51bWJlcik6IGJpZ2ludCB7XG4gIGNvbnN0IGIgPSBCaWdJbnQodilcbiAgaWYgKGIgPCAwIHx8IGIgPiBNYXNrKSB0aHJvdyBuZXcgRXJyb3IoJ3Nob3VsZCBoYXZlIGJlZW4gYSA2NCBiaXQgdW5zaWduZWQgaW50ZWdlcjogJyArIHYudG9TdHJpbmcoKSlcbiAgcmV0dXJuIGIgPDwgQmlnSW50KHNoaWZ0ICogNjQpXG59XG5leHBvcnQgZnVuY3Rpb24gc2VwYXJhdGVPdmVyd3JpdGVzKHY6IGJpZ2ludCk6IFtudW1iZXIsIGJpZ2ludCwgYmlnaW50LCBiaWdpbnRdIHtcbiAgcmV0dXJuIFtOdW1iZXIodW5wYWNrNjQodiwgMykpLCB1bnBhY2s2NCh2LCAyKSwgdW5wYWNrNjQodiwgMCksIHVucGFjazY0KHYsIDEpXSBhcyBbbnVtYmVyLCBiaWdpbnQsIGJpZ2ludCwgYmlnaW50XVxufVxuXG5leHBvcnQgY29uc3QgYmFzZUNoYW5uZWw6IEludGVybmFsQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsnY2hhbm5lbCddID0ge1xuICAvLyBUaGlzIGFsbG93cyB0eXBlc2NyaXB0IHRvIHN0aWxsIGNoZWNrIGZvciB0eXBlIGVycm9ycyBvbiBmdW5jdGlvbnMgYmVsb3dcbiAgLi4uKHVuZGVmaW5lZCBhcyB1bmtub3duIGFzIEludGVybmFsQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsnY2hhbm5lbCddKSxcblxuICBnZXQgYXJjaGl2ZWQoKSB7XG4gICAgcmV0dXJuICEhdGhpcy50b2dnbGVzPy5hcmNoaXZlZFxuICB9LFxuICBnZXQgaW52aXRhYmxlKCkge1xuICAgIHJldHVybiAhIXRoaXMudG9nZ2xlcz8uaW52aXRhYmxlXG4gIH0sXG4gIGdldCBsb2NrZWQoKSB7XG4gICAgcmV0dXJuICEhdGhpcy50b2dnbGVzPy5sb2NrZWRcbiAgfSxcbiAgZ2V0IG5zZncoKSB7XG4gICAgcmV0dXJuICEhdGhpcy50b2dnbGVzPy5uc2Z3XG4gIH0sXG4gIGdldCBuZXdseUNyZWF0ZWQoKSB7XG4gICAgcmV0dXJuICEhdGhpcy50b2dnbGVzPy5uZXdseUNyZWF0ZWRcbiAgfSxcbiAgZ2V0IG1hbmFnZWQoKSB7XG4gICAgcmV0dXJuICEhdGhpcy50b2dnbGVzPy5tYW5hZ2VkXG4gIH0sXG4gIGdldCBwZXJtaXNzaW9uT3ZlcndyaXRlcygpIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5pbnRlcm5hbE92ZXJ3cml0ZXM/Lm1hcCgob3ZlcndyaXRlKSA9PiB7XG4gICAgICAgIGNvbnN0IFt0eXBlLCBpZCwgYWxsb3csIGRlbnldID0gc2VwYXJhdGVPdmVyd3JpdGVzKG92ZXJ3cml0ZSlcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICB0eXBlLFxuICAgICAgICAgIGlkLFxuICAgICAgICAgIGFsbG93OiBjYWxjdWxhdGVQZXJtaXNzaW9ucyhhbGxvdyksXG4gICAgICAgICAgZGVueTogY2FsY3VsYXRlUGVybWlzc2lvbnMoZGVueSksXG4gICAgICAgIH1cbiAgICAgIH0pID8/IFtdXG4gICAgKVxuICB9LFxuICBnZXQgdGhyZWFkTWV0YWRhdGEoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGFyY2hpdmVUaW1lc3RhbXA6IHRoaXMuaW50ZXJuYWxUaHJlYWRNZXRhZGF0YT8uYXJjaGl2ZVRpbWVzdGFtcCxcbiAgICAgIGNyZWF0ZVRpbWVzdGFtcDogdGhpcy5pbnRlcm5hbFRocmVhZE1ldGFkYXRhPy5jcmVhdGVUaW1lc3RhbXAsXG4gICAgICBhdXRvQXJjaGl2ZUR1cmF0aW9uOiB0aGlzLmludGVybmFsVGhyZWFkTWV0YWRhdGE/LmF1dG9BcmNoaXZlRHVyYXRpb24sXG4gICAgICBsb2NrZWQ6ICEhdGhpcy50b2dnbGVzPy5sb2NrZWQsXG4gICAgICBpbnZpdGFibGU6ICEhdGhpcy50b2dnbGVzPy5pbnZpdGFibGUsXG4gICAgICBhcmNoaXZlZDogISF0aGlzLnRvZ2dsZXM/LmFyY2hpdmVkLFxuICAgIH1cbiAgfSxcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybUNoYW5uZWwoXG4gIGJvdDogSW50ZXJuYWxCb3QsXG4gIHBheWxvYWQ6IHsgY2hhbm5lbDogRGlzY29yZENoYW5uZWw7IGd1aWxkSWQ/OiBCaWdTdHJpbmcgfSxcbik6IHR5cGVvZiBib3QudHJhbnNmb3JtZXJzLiRpbmZlcnJlZFR5cGVzLmNoYW5uZWwge1xuICBjb25zdCBjaGFubmVsID0gT2JqZWN0LmNyZWF0ZShiYXNlQ2hhbm5lbCkgYXMgQ2hhbm5lbFxuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuY2hhbm5lbFxuICBjaGFubmVsLnRvZ2dsZXMgPSBuZXcgQ2hhbm5lbFRvZ2dsZXMocGF5bG9hZC5jaGFubmVsKVxuXG4gIGlmIChwcm9wcy5pZCAmJiBwYXlsb2FkLmNoYW5uZWwuaWQpIGNoYW5uZWwuaWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmNoYW5uZWwuaWQpXG4gIGlmIChwcm9wcy5ndWlsZElkICYmIChwYXlsb2FkLmd1aWxkSWQgPz8gcGF5bG9hZC5jaGFubmVsLmd1aWxkX2lkKSlcbiAgICBjaGFubmVsLmd1aWxkSWQgPSBwYXlsb2FkLmd1aWxkSWQgPyBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmd1aWxkSWQpIDogYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5jaGFubmVsLmd1aWxkX2lkISlcbiAgaWYgKHByb3BzLnR5cGUpIGNoYW5uZWwudHlwZSA9IHBheWxvYWQuY2hhbm5lbC50eXBlXG4gIGlmIChwcm9wcy5wb3NpdGlvbikgY2hhbm5lbC5wb3NpdGlvbiA9IHBheWxvYWQuY2hhbm5lbC5wb3NpdGlvblxuICBpZiAocHJvcHMubmFtZSAmJiBwYXlsb2FkLmNoYW5uZWwubmFtZSkgY2hhbm5lbC5uYW1lID0gcGF5bG9hZC5jaGFubmVsLm5hbWVcbiAgaWYgKHByb3BzLnRvcGljICYmIHBheWxvYWQuY2hhbm5lbC50b3BpYykgY2hhbm5lbC50b3BpYyA9IHBheWxvYWQuY2hhbm5lbC50b3BpY1xuICBpZiAocHJvcHMubGFzdE1lc3NhZ2VJZCAmJiBwYXlsb2FkLmNoYW5uZWwubGFzdF9tZXNzYWdlX2lkKSBjaGFubmVsLmxhc3RNZXNzYWdlSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmNoYW5uZWwubGFzdF9tZXNzYWdlX2lkKVxuICBpZiAocHJvcHMuYml0cmF0ZSAmJiBwYXlsb2FkLmNoYW5uZWwuYml0cmF0ZSkgY2hhbm5lbC5iaXRyYXRlID0gcGF5bG9hZC5jaGFubmVsLmJpdHJhdGVcbiAgaWYgKHByb3BzLnVzZXJMaW1pdCkgY2hhbm5lbC51c2VyTGltaXQgPSBwYXlsb2FkLmNoYW5uZWwudXNlcl9saW1pdFxuICBpZiAocHJvcHMucmF0ZUxpbWl0UGVyVXNlcikgY2hhbm5lbC5yYXRlTGltaXRQZXJVc2VyID0gcGF5bG9hZC5jaGFubmVsLnJhdGVfbGltaXRfcGVyX3VzZXJcbiAgaWYgKHByb3BzLm93bmVySWQgJiYgcGF5bG9hZC5jaGFubmVsLm93bmVyX2lkKSBjaGFubmVsLm93bmVySWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmNoYW5uZWwub3duZXJfaWQpXG4gIGlmIChwcm9wcy5sYXN0UGluVGltZXN0YW1wICYmIHBheWxvYWQuY2hhbm5lbC5sYXN0X3Bpbl90aW1lc3RhbXApIGNoYW5uZWwubGFzdFBpblRpbWVzdGFtcCA9IERhdGUucGFyc2UocGF5bG9hZC5jaGFubmVsLmxhc3RfcGluX3RpbWVzdGFtcClcbiAgaWYgKHByb3BzLnJ0Y1JlZ2lvbiAmJiBwYXlsb2FkLmNoYW5uZWwucnRjX3JlZ2lvbikgY2hhbm5lbC5ydGNSZWdpb24gPSBwYXlsb2FkLmNoYW5uZWwucnRjX3JlZ2lvblxuICBpZiAocHJvcHMudmlkZW9RdWFsaXR5TW9kZSAmJiBwYXlsb2FkLmNoYW5uZWwudmlkZW9fcXVhbGl0eV9tb2RlKSBjaGFubmVsLnZpZGVvUXVhbGl0eU1vZGUgPSBwYXlsb2FkLmNoYW5uZWwudmlkZW9fcXVhbGl0eV9tb2RlXG4gIGlmIChwcm9wcy5tZXNzYWdlQ291bnQpIGNoYW5uZWwubWVzc2FnZUNvdW50ID0gcGF5bG9hZC5jaGFubmVsLm1lc3NhZ2VfY291bnRcbiAgaWYgKHByb3BzLm1lbWJlckNvdW50KSBjaGFubmVsLm1lbWJlckNvdW50ID0gcGF5bG9hZC5jaGFubmVsLm1lbWJlcl9jb3VudFxuICBpZiAocHJvcHMudGhyZWFkTWV0YWRhdGEpIHtcbiAgICBjaGFubmVsLmludGVybmFsVGhyZWFkTWV0YWRhdGEgPSB7fSBhcyBOb25OdWxsYWJsZTxDaGFubmVsWydpbnRlcm5hbFRocmVhZE1ldGFkYXRhJ10+XG4gICAgaWYgKHBheWxvYWQuY2hhbm5lbC50aHJlYWRfbWV0YWRhdGE/LmFyY2hpdmVfdGltZXN0YW1wKVxuICAgICAgY2hhbm5lbC5pbnRlcm5hbFRocmVhZE1ldGFkYXRhLmFyY2hpdmVUaW1lc3RhbXAgPSBEYXRlLnBhcnNlKHBheWxvYWQuY2hhbm5lbC50aHJlYWRfbWV0YWRhdGEuYXJjaGl2ZV90aW1lc3RhbXApXG4gICAgaWYgKHBheWxvYWQuY2hhbm5lbC50aHJlYWRfbWV0YWRhdGE/LmNyZWF0ZV90aW1lc3RhbXApXG4gICAgICBjaGFubmVsLmludGVybmFsVGhyZWFkTWV0YWRhdGEuY3JlYXRlVGltZXN0YW1wID0gRGF0ZS5wYXJzZShwYXlsb2FkLmNoYW5uZWwudGhyZWFkX21ldGFkYXRhLmNyZWF0ZV90aW1lc3RhbXApXG4gICAgaWYgKHBheWxvYWQuY2hhbm5lbC50aHJlYWRfbWV0YWRhdGE/LmF1dG9fYXJjaGl2ZV9kdXJhdGlvbilcbiAgICAgIGNoYW5uZWwuaW50ZXJuYWxUaHJlYWRNZXRhZGF0YS5hdXRvQXJjaGl2ZUR1cmF0aW9uID0gcGF5bG9hZC5jaGFubmVsLnRocmVhZF9tZXRhZGF0YS5hdXRvX2FyY2hpdmVfZHVyYXRpb25cbiAgfVxuICBpZiAocHJvcHMuZGVmYXVsdEF1dG9BcmNoaXZlRHVyYXRpb24gJiYgcGF5bG9hZC5jaGFubmVsLmRlZmF1bHRfYXV0b19hcmNoaXZlX2R1cmF0aW9uKVxuICAgIGNoYW5uZWwuZGVmYXVsdEF1dG9BcmNoaXZlRHVyYXRpb24gPSBwYXlsb2FkLmNoYW5uZWwuZGVmYXVsdF9hdXRvX2FyY2hpdmVfZHVyYXRpb25cbiAgaWYgKHByb3BzLnBlcm1pc3Npb25zICYmIHBheWxvYWQuY2hhbm5lbC5wZXJtaXNzaW9ucykgY2hhbm5lbC5wZXJtaXNzaW9ucyA9IG5ldyBQZXJtaXNzaW9ucyhwYXlsb2FkLmNoYW5uZWwucGVybWlzc2lvbnMpXG4gIGlmIChwcm9wcy5mbGFncykgY2hhbm5lbC5mbGFncyA9IHBheWxvYWQuY2hhbm5lbC5mbGFnc1xuICBpZiAocHJvcHMucGVybWlzc2lvbk92ZXJ3cml0ZXMgJiYgcGF5bG9hZC5jaGFubmVsLnBlcm1pc3Npb25fb3ZlcndyaXRlcylcbiAgICBjaGFubmVsLmludGVybmFsT3ZlcndyaXRlcyA9IHBheWxvYWQuY2hhbm5lbC5wZXJtaXNzaW9uX292ZXJ3cml0ZXMubWFwKChvKSA9PiBwYWNrT3ZlcndyaXRlcyhvLmFsbG93ID8/ICcwJywgby5kZW55ID8/ICcwJywgby5pZCwgby50eXBlKSlcbiAgaWYgKHByb3BzLnBhcmVudElkICYmIHBheWxvYWQuY2hhbm5lbC5wYXJlbnRfaWQpIGNoYW5uZWwucGFyZW50SWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmNoYW5uZWwucGFyZW50X2lkKVxuICBpZiAocHJvcHMucmVjaXBpZW50cyAmJiBwYXlsb2FkLmNoYW5uZWwucmVjaXBpZW50cykgY2hhbm5lbC5yZWNpcGllbnRzID0gcGF5bG9hZC5jaGFubmVsLnJlY2lwaWVudHMubWFwKCh1KSA9PiBib3QudHJhbnNmb3JtZXJzLnVzZXIoYm90LCB1KSlcbiAgaWYgKHByb3BzLmljb24gJiYgcGF5bG9hZC5jaGFubmVsLmljb24pIGNoYW5uZWwuaWNvbiA9IGljb25IYXNoVG9CaWdJbnQocGF5bG9hZC5jaGFubmVsLmljb24pXG4gIGlmIChwcm9wcy5hcHBsaWNhdGlvbklkICYmIHBheWxvYWQuY2hhbm5lbC5hcHBsaWNhdGlvbl9pZCkgY2hhbm5lbC5hcHBsaWNhdGlvbklkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5jaGFubmVsLmFwcGxpY2F0aW9uX2lkKVxuICBpZiAocHJvcHMubWVtYmVyICYmIHBheWxvYWQuY2hhbm5lbC5tZW1iZXIpIGNoYW5uZWwubWVtYmVyID0gYm90LnRyYW5zZm9ybWVycy50aHJlYWRNZW1iZXIoYm90LCBwYXlsb2FkLmNoYW5uZWwubWVtYmVyKVxuICBpZiAocHJvcHMudG90YWxNZXNzYWdlU2VudCAmJiBwYXlsb2FkLmNoYW5uZWwudG90YWxfbWVzc2FnZV9zZW50ICE9PSB1bmRlZmluZWQpIGNoYW5uZWwudG90YWxNZXNzYWdlU2VudCA9IHBheWxvYWQuY2hhbm5lbC50b3RhbF9tZXNzYWdlX3NlbnRcbiAgaWYgKHByb3BzLmF2YWlsYWJsZVRhZ3MgJiYgcGF5bG9hZC5jaGFubmVsLmF2YWlsYWJsZV90YWdzKVxuICAgIGNoYW5uZWwuYXZhaWxhYmxlVGFncyA9IHBheWxvYWQuY2hhbm5lbC5hdmFpbGFibGVfdGFncy5tYXAoKHgpID0+IGJvdC50cmFuc2Zvcm1lcnMuZm9ydW1UYWcoYm90LCB4KSlcbiAgaWYgKHByb3BzLmFwcGxpZWRUYWdzICYmIHBheWxvYWQuY2hhbm5lbC5hcHBsaWVkX3RhZ3MpIGNoYW5uZWwuYXBwbGllZFRhZ3MgPSBwYXlsb2FkLmNoYW5uZWwuYXBwbGllZF90YWdzLm1hcCgoeCkgPT4gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UoeCkpXG4gIGlmIChwcm9wcy5kZWZhdWx0UmVhY3Rpb25FbW9qaSAmJiBwYXlsb2FkLmNoYW5uZWwuZGVmYXVsdF9yZWFjdGlvbl9lbW9qaSlcbiAgICBjaGFubmVsLmRlZmF1bHRSZWFjdGlvbkVtb2ppID0gYm90LnRyYW5zZm9ybWVycy5kZWZhdWx0UmVhY3Rpb25FbW9qaShib3QsIHBheWxvYWQuY2hhbm5lbC5kZWZhdWx0X3JlYWN0aW9uX2Vtb2ppKVxuICBpZiAocHJvcHMuZGVmYXVsdFRocmVhZFJhdGVMaW1pdFBlclVzZXIgJiYgcGF5bG9hZC5jaGFubmVsLmRlZmF1bHRfdGhyZWFkX3JhdGVfbGltaXRfcGVyX3VzZXIpXG4gICAgY2hhbm5lbC5kZWZhdWx0VGhyZWFkUmF0ZUxpbWl0UGVyVXNlciA9IHBheWxvYWQuY2hhbm5lbC5kZWZhdWx0X3RocmVhZF9yYXRlX2xpbWl0X3Blcl91c2VyXG4gIGlmIChwcm9wcy5kZWZhdWx0U29ydE9yZGVyICYmIHBheWxvYWQuY2hhbm5lbC5kZWZhdWx0X3NvcnRfb3JkZXIgIT09IHVuZGVmaW5lZCkgY2hhbm5lbC5kZWZhdWx0U29ydE9yZGVyID0gcGF5bG9hZC5jaGFubmVsLmRlZmF1bHRfc29ydF9vcmRlclxuICBpZiAocHJvcHMuZGVmYXVsdEZvcnVtTGF5b3V0ICYmIHBheWxvYWQuY2hhbm5lbC5kZWZhdWx0X2ZvcnVtX2xheW91dCAhPT0gdW5kZWZpbmVkKVxuICAgIGNoYW5uZWwuZGVmYXVsdEZvcnVtTGF5b3V0ID0gcGF5bG9hZC5jaGFubmVsLmRlZmF1bHRfZm9ydW1fbGF5b3V0XG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMuY2hhbm5lbChib3QsIHBheWxvYWQuY2hhbm5lbCwgY2hhbm5lbClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybUZvcnVtVGFnKGJvdDogSW50ZXJuYWxCb3QsIHBheWxvYWQ6IERpc2NvcmRGb3J1bVRhZyk6IHR5cGVvZiBib3QudHJhbnNmb3JtZXJzLiRpbmZlcnJlZFR5cGVzLmZvcnVtVGFnIHtcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLmZvcnVtVGFnXG4gIGNvbnN0IGZvcnVtVGFnID0ge30gYXMgRm9ydW1UYWdcblxuICBpZiAocHJvcHMuaWQgJiYgcGF5bG9hZC5pZCkgZm9ydW1UYWcuaWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmlkKVxuICBpZiAocHJvcHMubmFtZSAmJiBwYXlsb2FkLm5hbWUpIGZvcnVtVGFnLm5hbWUgPSBwYXlsb2FkLm5hbWVcbiAgaWYgKHByb3BzLm1vZGVyYXRlZCAmJiBwYXlsb2FkLm1vZGVyYXRlZCkgZm9ydW1UYWcubW9kZXJhdGVkID0gcGF5bG9hZC5tb2RlcmF0ZWRcbiAgaWYgKHByb3BzLmVtb2ppSWQgJiYgcGF5bG9hZC5lbW9qaV9pZCkgZm9ydW1UYWcuZW1vamlJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuZW1vamlfaWQpXG4gIGlmIChwcm9wcy5lbW9qaU5hbWUgJiYgcGF5bG9hZC5lbW9qaV9uYW1lKSBmb3J1bVRhZy5lbW9qaU5hbWUgPSBwYXlsb2FkLmVtb2ppX25hbWVcblxuICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jdXN0b21pemVycy5mb3J1bVRhZyhib3QsIHBheWxvYWQsIGZvcnVtVGFnKVxufVxuIl0sIm5hbWVzIjpbImNhbGN1bGF0ZVBlcm1pc3Npb25zIiwiaWNvbkhhc2hUb0JpZ0ludCIsIkNoYW5uZWxUb2dnbGVzIiwiUGVybWlzc2lvbnMiLCJNYXNrIiwicGFja092ZXJ3cml0ZXMiLCJhbGxvdyIsImRlbnkiLCJpZCIsInR5cGUiLCJwYWNrNjQiLCJ1bnBhY2s2NCIsInYiLCJzaGlmdCIsIkJpZ0ludCIsImIiLCJFcnJvciIsInRvU3RyaW5nIiwic2VwYXJhdGVPdmVyd3JpdGVzIiwiTnVtYmVyIiwiYmFzZUNoYW5uZWwiLCJ1bmRlZmluZWQiLCJhcmNoaXZlZCIsInRvZ2dsZXMiLCJpbnZpdGFibGUiLCJsb2NrZWQiLCJuc2Z3IiwibmV3bHlDcmVhdGVkIiwibWFuYWdlZCIsInBlcm1pc3Npb25PdmVyd3JpdGVzIiwiaW50ZXJuYWxPdmVyd3JpdGVzIiwibWFwIiwib3ZlcndyaXRlIiwidGhyZWFkTWV0YWRhdGEiLCJhcmNoaXZlVGltZXN0YW1wIiwiaW50ZXJuYWxUaHJlYWRNZXRhZGF0YSIsImNyZWF0ZVRpbWVzdGFtcCIsImF1dG9BcmNoaXZlRHVyYXRpb24iLCJ0cmFuc2Zvcm1DaGFubmVsIiwiYm90IiwicGF5bG9hZCIsImNoYW5uZWwiLCJPYmplY3QiLCJjcmVhdGUiLCJwcm9wcyIsInRyYW5zZm9ybWVycyIsImRlc2lyZWRQcm9wZXJ0aWVzIiwic25vd2ZsYWtlIiwiZ3VpbGRJZCIsImd1aWxkX2lkIiwicG9zaXRpb24iLCJuYW1lIiwidG9waWMiLCJsYXN0TWVzc2FnZUlkIiwibGFzdF9tZXNzYWdlX2lkIiwiYml0cmF0ZSIsInVzZXJMaW1pdCIsInVzZXJfbGltaXQiLCJyYXRlTGltaXRQZXJVc2VyIiwicmF0ZV9saW1pdF9wZXJfdXNlciIsIm93bmVySWQiLCJvd25lcl9pZCIsImxhc3RQaW5UaW1lc3RhbXAiLCJsYXN0X3Bpbl90aW1lc3RhbXAiLCJEYXRlIiwicGFyc2UiLCJydGNSZWdpb24iLCJydGNfcmVnaW9uIiwidmlkZW9RdWFsaXR5TW9kZSIsInZpZGVvX3F1YWxpdHlfbW9kZSIsIm1lc3NhZ2VDb3VudCIsIm1lc3NhZ2VfY291bnQiLCJtZW1iZXJDb3VudCIsIm1lbWJlcl9jb3VudCIsInRocmVhZF9tZXRhZGF0YSIsImFyY2hpdmVfdGltZXN0YW1wIiwiY3JlYXRlX3RpbWVzdGFtcCIsImF1dG9fYXJjaGl2ZV9kdXJhdGlvbiIsImRlZmF1bHRBdXRvQXJjaGl2ZUR1cmF0aW9uIiwiZGVmYXVsdF9hdXRvX2FyY2hpdmVfZHVyYXRpb24iLCJwZXJtaXNzaW9ucyIsImZsYWdzIiwicGVybWlzc2lvbl9vdmVyd3JpdGVzIiwibyIsInBhcmVudElkIiwicGFyZW50X2lkIiwicmVjaXBpZW50cyIsInUiLCJ1c2VyIiwiaWNvbiIsImFwcGxpY2F0aW9uSWQiLCJhcHBsaWNhdGlvbl9pZCIsIm1lbWJlciIsInRocmVhZE1lbWJlciIsInRvdGFsTWVzc2FnZVNlbnQiLCJ0b3RhbF9tZXNzYWdlX3NlbnQiLCJhdmFpbGFibGVUYWdzIiwiYXZhaWxhYmxlX3RhZ3MiLCJ4IiwiZm9ydW1UYWciLCJhcHBsaWVkVGFncyIsImFwcGxpZWRfdGFncyIsImRlZmF1bHRSZWFjdGlvbkVtb2ppIiwiZGVmYXVsdF9yZWFjdGlvbl9lbW9qaSIsImRlZmF1bHRUaHJlYWRSYXRlTGltaXRQZXJVc2VyIiwiZGVmYXVsdF90aHJlYWRfcmF0ZV9saW1pdF9wZXJfdXNlciIsImRlZmF1bHRTb3J0T3JkZXIiLCJkZWZhdWx0X3NvcnRfb3JkZXIiLCJkZWZhdWx0Rm9ydW1MYXlvdXQiLCJkZWZhdWx0X2ZvcnVtX2xheW91dCIsImN1c3RvbWl6ZXJzIiwidHJhbnNmb3JtRm9ydW1UYWciLCJtb2RlcmF0ZWQiLCJlbW9qaUlkIiwiZW1vamlfaWQiLCJlbW9qaU5hbWUiLCJlbW9qaV9uYW1lIl0sIm1hcHBpbmdzIjoiQUFDQSxTQUF1QkEsb0JBQW9CLEVBQW1DQyxnQkFBZ0IsUUFBUSxjQUFhO0FBQ25ILFNBQVNDLGNBQWMsUUFBUSx1QkFBc0I7QUFDckQsU0FBU0MsV0FBVyxRQUFRLDJCQUEwQjtBQUV0RCxNQUFNQyxPQUFPLEFBQUMsQ0FBQSxFQUFFLElBQUksR0FBRyxBQUFELElBQUssRUFBRTtBQUU3QixPQUFPLFNBQVNDLGVBQWVDLEtBQWEsRUFBRUMsSUFBWSxFQUFFQyxFQUFVLEVBQUVDLElBQVk7SUFDbEYsT0FBT0MsT0FBT0osT0FBTyxLQUFLSSxPQUFPSCxNQUFNLEtBQUtHLE9BQU9GLElBQUksS0FBS0UsT0FBT0QsTUFBTTtBQUMzRTtBQUNBLFNBQVNFLFNBQVNDLENBQVMsRUFBRUMsS0FBYTtJQUN4QyxPQUFPLEFBQUNELEtBQUtFLE9BQU9ELFFBQVEsTUFBT1Q7QUFDckM7QUFDQSxTQUFTTSxPQUFPRSxDQUFrQixFQUFFQyxLQUFhO0lBQy9DLE1BQU1FLElBQUlELE9BQU9GO0lBQ2pCLElBQUlHLElBQUksS0FBS0EsSUFBSVgsTUFBTSxNQUFNLElBQUlZLE1BQU0saURBQWlESixFQUFFSyxRQUFRO0lBQ2xHLE9BQU9GLEtBQUtELE9BQU9ELFFBQVE7QUFDN0I7QUFDQSxPQUFPLFNBQVNLLG1CQUFtQk4sQ0FBUztJQUMxQyxPQUFPO1FBQUNPLE9BQU9SLFNBQVNDLEdBQUc7UUFBS0QsU0FBU0MsR0FBRztRQUFJRCxTQUFTQyxHQUFHO1FBQUlELFNBQVNDLEdBQUc7S0FBRztBQUNqRjtBQUVBLE9BQU8sTUFBTVEsY0FBd0U7SUFDbkYsMkVBQTJFO0lBQzNFLEdBQUlDLFNBQVM7SUFFYixJ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
@@ -129,7 +129,7 @@ function transformSelectMenuComponent(bot, payload) {
129
129
  description: option.description,
130
130
  emoji: option.emoji ? {
131
131
  id: option.emoji.id ? bot.transformers.snowflake(option.emoji.id) : undefined,
132
- name: option.emoji.name,
132
+ name: option.emoji.name ?? undefined,
133
133
  animated: option.emoji.animated
134
134
  } : undefined,
135
135
  default: option.default
@@ -193,4 +193,4 @@ function transformSeparatorComponent(bot, payload) {
193
193
  return separator;
194
194
  }
195
195
 
196
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvY29tcG9uZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIHR5cGUgRGlzY29yZEFjdGlvblJvdyxcbiAgdHlwZSBEaXNjb3JkQnV0dG9uQ29tcG9uZW50LFxuICB0eXBlIERpc2NvcmRGaWxlQ29tcG9uZW50LFxuICB0eXBlIERpc2NvcmRNZWRpYUdhbGxlcnlDb21wb25lbnQsXG4gIHR5cGUgRGlzY29yZE1lc3NhZ2VDb21wb25lbnQsXG4gIHR5cGUgRGlzY29yZFNlY3Rpb25Db21wb25lbnQsXG4gIHR5cGUgRGlzY29yZFNlbGVjdE1lbnVDb21wb25lbnQsXG4gIHR5cGUgRGlzY29yZFNlcGFyYXRvckNvbXBvbmVudCxcbiAgdHlwZSBEaXNjb3JkVGV4dERpc3BsYXlDb21wb25lbnQsXG4gIHR5cGUgRGlzY29yZFRleHRJbnB1dENvbXBvbmVudCxcbiAgdHlwZSBEaXNjb3JkVGh1bWJuYWlsQ29tcG9uZW50LFxuICBNZXNzYWdlQ29tcG9uZW50VHlwZXMsXG59IGZyb20gJ0BkaXNjb3JkZW5vL3R5cGVzJ1xuaW1wb3J0IHR5cGUge1xuICBCb3QsXG4gIENvbXBvbmVudCxcbiAgRGlzY29yZENvbnRhaW5lckNvbXBvbmVudCxcbiAgRGlzY29yZE1lZGlhR2FsbGVyeUl0ZW0sXG4gIERpc2NvcmRVbmZ1cmxlZE1lZGlhSXRlbSxcbiAgTWVkaWFHYWxsZXJ5SXRlbSxcbiAgVW5mdXJsZWRNZWRpYUl0ZW0sXG59IGZyb20gJy4uL2luZGV4LmpzJ1xuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtQ29tcG9uZW50KGJvdDogQm90LCBwYXlsb2FkOiBEaXNjb3JkTWVzc2FnZUNvbXBvbmVudCk6IENvbXBvbmVudCB7XG4gIGxldCBjb21wb25lbnQ6IENvbXBvbmVudFxuXG4gIC8vIFRoaXMgc3dpdGNoIGlzIGV4aGF1c3RpdmUsIHNvIHdlIGRvbnQgbmVlZCB0aGUgZGVmYXVsdCBjYXNlIGFuZCBUUyBkb2VzIG5vdCBlcnJvciBvdXQgZm9yIHRoZSB1bi1pbml0aWFsaXplZCBjb21wb25lbnQgdmFyaWFibGVcbiAgc3dpdGNoIChwYXlsb2FkLnR5cGUpIHtcbiAgICBjYXNlIE1lc3NhZ2VDb21wb25lbnRUeXBlcy5BY3Rpb25Sb3c6XG4gICAgICBjb21wb25lbnQgPSB0cmFuc2Zvcm1BY3Rpb25Sb3coYm90LCBwYXlsb2FkKVxuICAgICAgYnJlYWtcbiAgICBjYXNlIE1lc3NhZ2VDb21wb25lbnRUeXBlcy5CdXR0b246XG4gICAgICBjb21wb25lbnQgPSB0cmFuc2Zvcm1CdXR0b25Db21wb25lbnQoYm90LCBwYXlsb2FkKVxuICAgICAgYnJlYWtcbiAgICBjYXNlIE1lc3NhZ2VDb21wb25lbnRUeXBlcy5Db250YWluZXI6XG4gICAgICBjb21wb25lbnQgPSB0cmFuc2Zvcm1Db250YWluZXJDb21wb25lbnQoYm90LCBwYXlsb2FkKVxuICAgICAgYnJlYWtcbiAgICBjYXNlIE1lc3NhZ2VDb21wb25lbnRUeXBlcy5UZXh0SW5wdXQ6XG4gICAgICBjb21wb25lbnQgPSB0cmFuc2Zvcm1JbnB1dFRleHRDb21wb25lbnQoYm90LCBwYXlsb2FkKVxuICAgICAgYnJlYWtcbiAgICBjYXNlIE1lc3NhZ2VDb21wb25lbnRUeXBlcy5TdHJpbmdTZWxlY3Q6XG4gICAgY2FzZSBNZXNzYWdlQ29tcG9uZW50VHlwZXMuVXNlclNlbGVjdDpcbiAgICBjYXNlIE1lc3NhZ2VDb21wb25lbnRUeXBlcy5Sb2xlU2VsZWN0OlxuICAgIGNhc2UgTWVzc2FnZUNvbXBvbmVudFR5cGVzLk1lbnRpb25hYmxlU2VsZWN0OlxuICAgIGNhc2UgTWVzc2FnZUNvbXBvbmVudFR5cGVzLkNoYW5uZWxTZWxlY3Q6XG4gICAgICBjb21wb25lbnQgPSB0cmFuc2Zvcm1TZWxlY3RNZW51Q29tcG9uZW50KGJvdCwgcGF5bG9hZClcbiAgICAgIGJyZWFrXG4gICAgY2FzZSBNZXNzYWdlQ29tcG9uZW50VHlwZXMuU2VjdGlvbjpcbiAgICAgIGNvbXBvbmVudCA9IHRyYW5zZm9ybVNlY3Rpb25Db21wb25lbnQoYm90LCBwYXlsb2FkKVxuICAgICAgYnJlYWtcbiAgICBjYXNlIE1lc3NhZ2VDb21wb25lbnRUeXBlcy5UaHVtYm5haWw6XG4gICAgICBjb21wb25lbnQgPSB0cmFuc2Zvcm1UaHVtYm5haWxDb21wb25lbnQoYm90LCBwYXlsb2FkKVxuICAgICAgYnJlYWtcbiAgICBjYXNlIE1lc3NhZ2VDb21wb25lbnRUeXBlcy5NZWRpYUdhbGxlcnk6XG4gICAgICBjb21wb25lbnQgPSB0cmFuc2Zvcm1NZWRpYUdhbGxlcnlDb21wb25lbnQoYm90LCBwYXlsb2FkKVxuICAgICAgYnJlYWtcbiAgICBjYXNlIE1lc3NhZ2VDb21wb25lbnRUeXBlcy5GaWxlOlxuICAgICAgY29tcG9uZW50ID0gdHJhbnNmb3JtRmlsZUNvbXBvbmVudChib3QsIHBheWxvYWQpXG4gICAgICBicmVha1xuICAgIGNhc2UgTWVzc2FnZUNvbXBvbmVudFR5cGVzLlNlcGFyYXRvcjpcbiAgICAgIGNvbXBvbmVudCA9IHRyYW5zZm9ybVNlcGFyYXRvckNvbXBvbmVudChib3QsIHBheWxvYWQpXG4gICAgICBicmVha1xuICAgIGNhc2UgTWVzc2FnZUNvbXBvbmVudFR5cGVzLlRleHREaXNwbGF5OlxuICAgICAgY29tcG9uZW50ID0gdHJhbnNmb3JtVGV4dERpc3BsYXlDb21wb25lbnQoYm90LCBwYXlsb2FkKVxuICAgICAgYnJlYWtcbiAgfVxuXG4gIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmN1c3RvbWl6ZXJzLmNvbXBvbmVudChib3QsIHBheWxvYWQsIGNvbXBvbmVudClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybVVuZnVybGVkTWVkaWFJdGVtKGJvdDogQm90LCBwYXlsb2FkOiBEaXNjb3JkVW5mdXJsZWRNZWRpYUl0ZW0pOiBVbmZ1cmxlZE1lZGlhSXRlbSB7XG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy51bmZ1cmxlZE1lZGlhSXRlbVxuICBjb25zdCBtZWRpYUl0ZW0gPSB7fSBhcyBVbmZ1cmxlZE1lZGlhSXRlbVxuXG4gIGlmIChwcm9wcy51cmwgJiYgcGF5bG9hZC51cmwpIG1lZGlhSXRlbS51cmwgPSBwYXlsb2FkLnVybFxuICBpZiAocHJvcHMucHJveHlVcmwgJiYgcGF5bG9hZC5wcm94eV91cmwpIG1lZGlhSXRlbS5wcm94eVVybCA9IHBheWxvYWQucHJveHlfdXJsXG4gIGlmIChwcm9wcy5oZWlnaHQgJiYgcGF5bG9hZC5oZWlnaHQpIG1lZGlhSXRlbS5oZWlnaHQgPSBwYXlsb2FkLmhlaWdodFxuICBpZiAocHJvcHMud2lkdGggJiYgcGF5bG9hZC53aWR0aCkgbWVkaWFJdGVtLndpZHRoID0gcGF5bG9hZC53aWR0aFxuICBpZiAocHJvcHMuY29udGVudFR5cGUgJiYgcGF5bG9hZC5jb250ZW50X3R5cGUpIG1lZGlhSXRlbS5jb250ZW50VHlwZSA9IHBheWxvYWQuY29udGVudF90eXBlXG4gIGlmIChwcm9wcy5hdHRhY2htZW50SWQgJiYgcGF5bG9hZC5hdHRhY2htZW50X2lkKSBtZWRpYUl0ZW0uYXR0YWNobWVudElkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5hdHRhY2htZW50X2lkKVxuXG4gIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmN1c3RvbWl6ZXJzLnVuZnVybGVkTWVkaWFJdGVtKGJvdCwgcGF5bG9hZCwgbWVkaWFJdGVtKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtTWVkaWFHYWxsZXJ5SXRlbShib3Q6IEJvdCwgcGF5bG9hZDogRGlzY29yZE1lZGlhR2FsbGVyeUl0ZW0pOiBNZWRpYUdhbGxlcnlJdGVtIHtcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLm1lZGlhR2FsbGVyeUl0ZW1cbiAgY29uc3QgZ2FsbGVyeUl0ZW0gPSB7fSBhcyBNZWRpYUdhbGxlcnlJdGVtXG5cbiAgaWYgKHByb3BzLm1lZGlhICYmIHBheWxvYWQubWVkaWEpIGdhbGxlcnlJdGVtLm1lZGlhID0gYm90LnRyYW5zZm9ybWVycy51bmZ1cmxlZE1lZGlhSXRlbShib3QsIHBheWxvYWQubWVkaWEpXG4gIGlmIChwcm9wcy5kZXNjcmlwdGlvbiAmJiBwYXlsb2FkLmRlc2NyaXB0aW9uKSBnYWxsZXJ5SXRlbS5kZXNjcmlwdGlvbiA9IHBheWxvYWQuZGVzY3JpcHRpb25cbiAgaWYgKHByb3BzLnNwb2lsZXIgJiYgcGF5bG9hZC5zcG9pbGVyKSBnYWxsZXJ5SXRlbS5zcG9pbGVyID0gcGF5bG9hZC5zcG9pbGVyXG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMubWVkaWFHYWxsZXJ5SXRlbShib3QsIHBheWxvYWQsIGdhbGxlcnlJdGVtKVxufVxuXG5mdW5jdGlvbiB0cmFuc2Zvcm1BY3Rpb25Sb3coYm90OiBCb3QsIHBheWxvYWQ6IERpc2NvcmRBY3Rpb25Sb3cpOiBDb21wb25lbnQge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuY29tcG9uZW50XG4gIGNvbnN0IGFjdGlvblJvdyA9IHt9IGFzIENvbXBvbmVudFxuXG4gIGlmIChwcm9wcy50eXBlICYmIHBheWxvYWQudHlwZSkgYWN0aW9uUm93LnR5cGUgPSBwYXlsb2FkLnR5cGVcbiAgaWYgKHByb3BzLmlkICYmIHBheWxvYWQuaWQpIGFjdGlvblJvdy5pZCA9IHBheWxvYWQuaWRcbiAgaWYgKHByb3BzLmNvbXBvbmVudHMgJiYgcGF5bG9hZC5jb21wb25lbnRzKSBhY3Rpb25Sb3cuY29tcG9uZW50cyA9IHBheWxvYWQuY29tcG9uZW50cy5tYXAoKGNvbXBvbmVudCkgPT4gYm90LnRyYW5zZm9ybWVycy5jb21wb25lbnQoYm90LCBjb21wb25lbnQpKVxuXG4gIHJldHVybiBhY3Rpb25Sb3dcbn1cblxuZnVuY3Rpb24gdHJhbnNmb3JtQ29udGFpbmVyQ29tcG9uZW50KGJvdDogQm90LCBwYXlsb2FkOiBEaXNjb3JkQ29udGFpbmVyQ29tcG9uZW50KTogQ29tcG9uZW50IHtcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLmNvbXBvbmVudFxuICBjb25zdCBjb250YWluZXIgPSB7fSBhcyBDb21wb25lbnRcblxuICBpZiAocHJvcHMudHlwZSAmJiBwYXlsb2FkLnR5cGUpIGNvbnRhaW5lci50eXBlID0gcGF5bG9hZC50eXBlXG4gIGlmIChwcm9wcy5pZCAmJiBwYXlsb2FkLmlkKSBjb250YWluZXIuaWQgPSBwYXlsb2FkLmlkXG4gIGlmIChwcm9wcy5hY2NlbnRDb2xvciAmJiBwYXlsb2FkLmFjY2VudF9jb2xvcikgY29udGFpbmVyLmFjY2VudENvbG9yID0gcGF5bG9hZC5hY2NlbnRfY29sb3JcbiAgaWYgKHByb3BzLnNwb2lsZXIgJiYgcGF5bG9hZC5zcG9pbGVyKSBjb250YWluZXIuc3BvaWxlciA9IHBheWxvYWQuc3BvaWxlclxuICBpZiAocHJvcHMuY29tcG9uZW50cyAmJiBwYXlsb2FkLmNvbXBvbmVudHMpIGNvbnRhaW5lci5jb21wb25lbnRzID0gcGF5bG9hZC5jb21wb25lbnRzLm1hcCgoY29tcG9uZW50KSA9PiBib3QudHJhbnNmb3JtZXJzLmNvbXBvbmVudChib3QsIGNvbXBvbmVudCkpXG5cbiAgcmV0dXJuIGNvbnRhaW5lclxufVxuXG5mdW5jdGlvbiB0cmFuc2Zvcm1CdXR0b25Db21wb25lbnQoYm90OiBCb3QsIHBheWxvYWQ6IERpc2NvcmRCdXR0b25Db21wb25lbnQpOiBDb21wb25lbnQge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuY29tcG9uZW50XG4gIGNvbnN0IGJ1dHRvbiA9IHt9IGFzIENvbXBvbmVudFxuXG4gIGlmIChwcm9wcy50eXBlICYmIHBheWxvYWQudHlwZSkgYnV0dG9uLnR5cGUgPSBwYXlsb2FkLnR5cGVcbiAgaWYgKHByb3BzLmlkICYmIHBheWxvYWQuaWQpIGJ1dHRvbi5pZCA9IHBheWxvYWQuaWRcbiAgaWYgKHByb3BzLmxhYmVsICYmIHBheWxvYWQubGFiZWwpIGJ1dHRvbi5sYWJlbCA9IHBheWxvYWQubGFiZWxcbiAgaWYgKHByb3BzLmN1c3RvbUlkICYmIHBheWxvYWQuY3VzdG9tX2lkKSBidXR0b24uY3VzdG9tSWQgPSBwYXlsb2FkLmN1c3RvbV9pZFxuICBpZiAocHJvcHMuc3R5bGUgJiYgcGF5bG9hZC5zdHlsZSkgYnV0dG9uLnN0eWxlID0gcGF5bG9hZC5zdHlsZVxuICBpZiAocHJvcHMuZW1vamkgJiYgcGF5bG9hZC5lbW9qaSkgYnV0dG9uLmVtb2ppID0gYm90LnRyYW5zZm9ybWVycy5lbW9qaShib3QsIHBheWxvYWQuZW1vamkpXG4gIGlmIChwcm9wcy51cmwgJiYgcGF5bG9hZC51cmwpIGJ1dHRvbi51cmwgPSBwYXlsb2FkLnVybFxuICBpZiAocHJvcHMuZGlzYWJsZWQgJiYgcGF5bG9hZC5kaXNhYmxlZCkgYnV0dG9uLmRpc2FibGVkID0gcGF5bG9hZC5kaXNhYmxlZFxuICBpZiAocHJvcHMuc2t1SWQgJiYgcGF5bG9hZC5za3VfaWQpIGJ1dHRvbi5za3VJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuc2t1X2lkKVxuXG4gIHJldHVybiBidXR0b25cbn1cblxuZnVuY3Rpb24gdHJhbnNmb3JtSW5wdXRUZXh0Q29tcG9uZW50KGJvdDogQm90LCBwYXlsb2FkOiBEaXNjb3JkVGV4dElucHV0Q29tcG9uZW50KTogQ29tcG9uZW50IHtcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLmNvbXBvbmVudFxuICBjb25zdCBpbnB1dCA9IHt9IGFzIENvbXBvbmVudFxuXG4gIGlmIChwcm9wcy50eXBlICYmIHBheWxvYWQudHlwZSkgaW5wdXQudHlwZSA9IHBheWxvYWQudHlwZVxuICBpZiAocHJvcHMuaWQgJiYgcGF5bG9hZC5pZCkgaW5wdXQuaWQgPSBwYXlsb2FkLmlkXG4gIGlmIChwcm9wcy5zdHlsZSAmJiBwYXlsb2FkLnN0eWxlKSBpbnB1dC5zdHlsZSA9IHBheWxvYWQuc3R5bGVcbiAgaWYgKHByb3BzLnJlcXVpcmVkICYmIHBheWxvYWQucmVxdWlyZWQpIGlucHV0LnJlcXVpcmVkID0gcGF5bG9hZC5yZXF1aXJlZFxuICBpZiAocHJvcHMuY3VzdG9tSWQgJiYgcGF5bG9hZC5jdXN0b21faWQpIGlucHV0LmN1c3RvbUlkID0gcGF5bG9hZC5jdXN0b21faWRcbiAgaWYgKHByb3BzLmxhYmVsICYmIHBheWxvYWQubGFiZWwpIGlucHV0LmxhYmVsID0gcGF5bG9hZC5sYWJlbFxuICBpZiAocHJvcHMucGxhY2Vob2xkZXIgJiYgcGF5bG9hZC5wbGFjZWhvbGRlcikgaW5wdXQucGxhY2Vob2xkZXIgPSBwYXlsb2FkLnBsYWNlaG9sZGVyXG4gIGlmIChwcm9wcy5taW5MZW5ndGggJiYgcGF5bG9hZC5taW5fbGVuZ3RoKSBpbnB1dC5taW5MZW5ndGggPSBwYXlsb2FkLm1pbl9sZW5ndGhcbiAgaWYgKHByb3BzLm1heExlbmd0aCAmJiBwYXlsb2FkLm1heF9sZW5ndGgpIGlucHV0Lm1heExlbmd0aCA9IHBheWxvYWQubWF4X2xlbmd0aFxuICBpZiAocHJvcHMudmFsdWUgJiYgcGF5bG9hZC52YWx1ZSkgaW5wdXQudmFsdWUgPSBwYXlsb2FkLnZhbHVlXG5cbiAgcmV0dXJuIGlucHV0XG59XG5cbmZ1bmN0aW9uIHRyYW5zZm9ybVNlbGVjdE1lbnVDb21wb25lbnQoYm90OiBCb3QsIHBheWxvYWQ6IERpc2NvcmRTZWxlY3RNZW51Q29tcG9uZW50KTogQ29tcG9uZW50IHtcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLmNvbXBvbmVudFxuICBjb25zdCBzZWxlY3QgPSB7fSBhcyBDb21wb25lbnRcblxuICBpZiAocHJvcHMudHlwZSAmJiBwYXlsb2FkLnR5cGUpIHNlbGVjdC50eXBlID0gcGF5bG9hZC50eXBlXG4gIGlmIChwcm9wcy5pZCAmJiBwYXlsb2FkLmlkKSBzZWxlY3QuaWQgPSBwYXlsb2FkLmlkXG4gIGlmIChwcm9wcy5jdXN0b21JZCAmJiBwYXlsb2FkLmN1c3RvbV9pZCkgc2VsZWN0LmN1c3RvbUlkID0gcGF5bG9hZC5jdXN0b21faWRcbiAgaWYgKHByb3BzLnBsYWNlaG9sZGVyICYmIHBheWxvYWQucGxhY2Vob2xkZXIpIHNlbGVjdC5wbGFjZWhvbGRlciA9IHBheWxvYWQucGxhY2Vob2xkZXJcbiAgaWYgKHByb3BzLm1pblZhbHVlcyAmJiBwYXlsb2FkLm1pbl92YWx1ZXMpIHNlbGVjdC5taW5WYWx1ZXMgPSBwYXlsb2FkLm1pbl92YWx1ZXNcbiAgaWYgKHByb3BzLm1heFZhbHVlcyAmJiBwYXlsb2FkLm1heF92YWx1ZXMpIHNlbGVjdC5tYXhWYWx1ZXMgPSBwYXlsb2FkLm1heF92YWx1ZXNcbiAgaWYgKHByb3BzLmRlZmF1bHRWYWx1ZXMgJiYgcGF5bG9hZC5kZWZhdWx0X3ZhbHVlcylcbiAgICBzZWxlY3QuZGVmYXVsdFZhbHVlcyA9IHBheWxvYWQuZGVmYXVsdF92YWx1ZXMubWFwKChkZWZhdWx0VmFsdWUpID0+ICh7XG4gICAgICBpZDogYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UoZGVmYXVsdFZhbHVlLmlkKSxcbiAgICAgIHR5cGU6IGRlZmF1bHRWYWx1ZS50eXBlLFxuICAgIH0pKVxuICBpZiAocHJvcHMuY2hhbm5lbFR5cGVzICYmIHBheWxvYWQuY2hhbm5lbF90eXBlcykgc2VsZWN0LmNoYW5uZWxUeXBlcyA9IHBheWxvYWQuY2hhbm5lbF90eXBlc1xuICBpZiAocHJvcHMub3B0aW9ucyAmJiBwYXlsb2FkLm9wdGlvbnMpXG4gICAgc2VsZWN0Lm9wdGlvbnMgPSBwYXlsb2FkLm9wdGlvbnMubWFwKChvcHRpb24pID0+ICh7XG4gICAgICBsYWJlbDogb3B0aW9uLmxhYmVsLFxuICAgICAgdmFsdWU6IG9wdGlvbi52YWx1ZSxcbiAgICAgIGRlc2NyaXB0aW9uOiBvcHRpb24uZGVzY3JpcHRpb24sXG4gICAgICBlbW9qaTogb3B0aW9uLmVtb2ppXG4gICAgICAgID8ge1xuICAgICAgICAgICAgaWQ6IG9wdGlvbi5lbW9qaS5pZCA/IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKG9wdGlvbi5lbW9qaS5pZCkgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICBuYW1lOiBvcHRpb24uZW1vamkubmFtZSxcbiAgICAgICAgICAgIGFuaW1hdGVkOiBvcHRpb24uZW1vamkuYW5pbWF0ZWQsXG4gICAgICAgICAgfVxuICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgIGRlZmF1bHQ6IG9wdGlvbi5kZWZhdWx0LFxuICAgIH0pKVxuICBpZiAocHJvcHMuZGlzYWJsZWQgJiYgcGF5bG9hZC5kaXNhYmxlZCkgc2VsZWN0LmRpc2FibGVkID0gcGF5bG9hZC5kaXNhYmxlZFxuXG4gIHJldHVybiBzZWxlY3Rcbn1cblxuZnVuY3Rpb24gdHJhbnNmb3JtU2VjdGlvbkNvbXBvbmVudChib3Q6IEJvdCwgcGF5bG9hZDogRGlzY29yZFNlY3Rpb25Db21wb25lbnQpOiBDb21wb25lbnQge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuY29tcG9uZW50XG4gIGNvbnN0IHNlY3Rpb24gPSB7fSBhcyBDb21wb25lbnRcblxuICBpZiAocHJvcHMudHlwZSAmJiBwYXlsb2FkLnR5cGUpIHNlY3Rpb24udHlwZSA9IHBheWxvYWQudHlwZVxuICBpZiAocHJvcHMuaWQgJiYgcGF5bG9hZC5pZCkgc2VjdGlvbi5pZCA9IHBheWxvYWQuaWRcbiAgaWYgKHByb3BzLmNvbXBvbmVudHMgJiYgcGF5bG9hZC5jb21wb25lbnRzKSBzZWN0aW9uLmNvbXBvbmVudHMgPSBwYXlsb2FkLmNvbXBvbmVudHMubWFwKChjb21wb25lbnQpID0+IGJvdC50cmFuc2Zvcm1lcnMuY29tcG9uZW50KGJvdCwgY29tcG9uZW50KSlcbiAgaWYgKHByb3BzLmFjY2Vzc29yeSAmJiBwYXlsb2FkLmFjY2Vzc29yeSkgc2VjdGlvbi5hY2Nlc3NvcnkgPSBib3QudHJhbnNmb3JtZXJzLmNvbXBvbmVudChib3QsIHBheWxvYWQuYWNjZXNzb3J5KVxuXG4gIHJldHVybiBzZWN0aW9uXG59XG5cbmZ1bmN0aW9uIHRyYW5zZm9ybVRodW1ibmFpbENvbXBvbmVudChib3Q6IEJvdCwgcGF5bG9hZDogRGlzY29yZFRodW1ibmFpbENvbXBvbmVudCk6IENvbXBvbmVudCB7XG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5jb21wb25lbnRcbiAgY29uc3QgdGh1bWJuYWlsID0ge30gYXMgQ29tcG9uZW50XG5cbiAgaWYgKHByb3BzLnR5cGUgJiYgcGF5bG9hZC50eXBlKSB0aHVtYm5haWwudHlwZSA9IHBheWxvYWQudHlwZVxuICBpZiAocHJvcHMuaWQgJiYgcGF5bG9hZC5pZCkgdGh1bWJuYWlsLmlkID0gcGF5bG9hZC5pZFxuICBpZiAocHJvcHMubWVkaWEgJiYgcGF5bG9hZC5tZWRpYSkgdGh1bWJuYWlsLm1lZGlhID0gYm90LnRyYW5zZm9ybWVycy51bmZ1cmxlZE1lZGlhSXRlbShib3QsIHBheWxvYWQubWVkaWEpXG4gIGlmIChwcm9wcy5kZXNjcmlwdGlvbiAmJiBwYXlsb2FkLmRlc2NyaXB0aW9uKSB0aHVtYm5haWwuZGVzY3JpcHRpb24gPSBwYXlsb2FkLmRlc2NyaXB0aW9uXG4gIGlmIChwcm9wcy5zcG9pbGVyICYmIHBheWxvYWQuc3BvaWxlcikgdGh1bWJuYWlsLnNwb2lsZXIgPSBwYXlsb2FkLnNwb2lsZXJcblxuICByZXR1cm4gdGh1bWJuYWlsXG59XG5cbmZ1bmN0aW9uIHRyYW5zZm9ybU1lZGlhR2FsbGVyeUNvbXBvbmVudChib3Q6IEJvdCwgcGF5bG9hZDogRGlzY29yZE1lZGlhR2FsbGVyeUNvbXBvbmVudCk6IENvbXBvbmVudCB7XG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5jb21wb25lbnRcbiAgY29uc3QgbWVkaWFHYWxsZXJ5ID0ge30gYXMgQ29tcG9uZW50XG5cbiAgaWYgKHByb3BzLnR5cGUgJiYgcGF5bG9hZC50eXBlKSBtZWRpYUdhbGxlcnkudHlwZSA9IHBheWxvYWQudHlwZVxuICBpZiAocHJvcHMuaWQgJiYgcGF5bG9hZC5pZCkgbWVkaWFHYWxsZXJ5LmlkID0gcGF5bG9hZC5pZFxuICBpZiAocHJvcHMuaXRlbXMgJiYgcGF5bG9hZC5pdGVtcykgbWVkaWFHYWxsZXJ5Lml0ZW1zID0gcGF5bG9hZC5pdGVtcy5tYXAoKGl0ZW0pID0+IGJvdC50cmFuc2Zvcm1lcnMubWVkaWFHYWxsZXJ5SXRlbShib3QsIGl0ZW0pKVxuXG4gIHJldHVybiBtZWRpYUdhbGxlcnlcbn1cblxuZnVuY3Rpb24gdHJhbnNmb3JtRmlsZUNvbXBvbmVudChib3Q6IEJvdCwgcGF5bG9hZDogRGlzY29yZEZpbGVDb21wb25lbnQpOiBDb21wb25lbnQge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuY29tcG9uZW50XG4gIGNvbnN0IGZpbGUgPSB7fSBhcyBDb21wb25lbnRcblxuICBpZiAocHJvcHMudHlwZSAmJiBwYXlsb2FkLnR5cGUpIGZpbGUudHlwZSA9IHBheWxvYWQudHlwZVxuICBpZiAocHJvcHMuaWQgJiYgcGF5bG9hZC5pZCkgZmlsZS5pZCA9IHBheWxvYWQuaWRcbiAgaWYgKHByb3BzLmZpbGUgJiYgcGF5bG9hZC5maWxlKSBmaWxlLmZpbGUgPSBib3QudHJhbnNmb3JtZXJzLnVuZnVybGVkTWVkaWFJdGVtKGJvdCwgcGF5bG9hZC5maWxlKVxuICBpZiAocHJvcHMuc3BvaWxlciAmJiBwYXlsb2FkLnNwb2lsZXIpIGZpbGUuc3BvaWxlciA9IHBheWxvYWQuc3BvaWxlclxuICBpZiAocHJvcHMubmFtZSAmJiBwYXlsb2FkLm5hbWUpIGZpbGUubmFtZSA9IHBheWxvYWQubmFtZVxuICBpZiAocHJvcHMuc2l6ZSAmJiBwYXlsb2FkLnNpemUpIGZpbGUuc2l6ZSA9IHBheWxvYWQuc2l6ZVxuXG4gIHJldHVybiBmaWxlXG59XG5cbmZ1bmN0aW9uIHRyYW5zZm9ybVRleHREaXNwbGF5Q29tcG9uZW50KGJvdDogQm90LCBwYXlsb2FkOiBEaXNjb3JkVGV4dERpc3BsYXlDb21wb25lbnQpOiBDb21wb25lbnQge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuY29tcG9uZW50XG4gIGNvbnN0IHRleHREaXNwbGF5ID0ge30gYXMgQ29tcG9uZW50XG5cbiAgaWYgKHByb3BzLnR5cGUgJiYgcGF5bG9hZC50eXBlKSB0ZXh0RGlzcGxheS50eXBlID0gcGF5bG9hZC50eXBlXG4gIGlmIChwcm9wcy5pZCAmJiBwYXlsb2FkLmlkKSB0ZXh0RGlzcGxheS5pZCA9IHBheWxvYWQuaWRcbiAgaWYgKHByb3BzLmNvbnRlbnQgJiYgcGF5bG9hZC5jb250ZW50KSB0ZXh0RGlzcGxheS5jb250ZW50ID0gcGF5bG9hZC5jb250ZW50XG5cbiAgcmV0dXJuIHRleHREaXNwbGF5XG59XG5cbmZ1bmN0aW9uIHRyYW5zZm9ybVNlcGFyYXRvckNvbXBvbmVudChib3Q6IEJvdCwgcGF5bG9hZDogRGlzY29yZFNlcGFyYXRvckNvbXBvbmVudCk6IENvbXBvbmVudCB7XG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5jb21wb25lbnRcbiAgY29uc3Qgc2VwYXJhdG9yID0ge30gYXMgQ29tcG9uZW50XG5cbiAgaWYgKHByb3BzLnR5cGUgJiYgcGF5bG9hZC50eXBlKSBzZXBhcmF0b3IudHlwZSA9IHBheWxvYWQudHlwZVxuICBpZiAocHJvcHMuaWQgJiYgcGF5bG9hZC5pZCkgc2VwYXJhdG9yLmlkID0gcGF5bG9hZC5pZFxuICBpZiAocHJvcHMuZGl2aWRlciAmJiBwYXlsb2FkLmRpdmlkZXIpIHNlcGFyYXRvci5kaXZpZGVyID0gcGF5bG9hZC5kaXZpZGVyXG4gIGlmIChwcm9wcy5zcGFjaW5nICYmIHBheWxvYWQuc3BhY2luZykgc2VwYXJhdG9yLnNwYWNpbmcgPSBwYXlsb2FkLnNwYWNpbmdcblxuICByZXR1cm4gc2VwYXJhdG9yXG59XG4iXSwibmFtZXMiOlsiTWVzc2FnZUNvbXBvbmVudFR5cGVzIiwidHJhbnNmb3JtQ29tcG9uZW50IiwiYm90IiwicGF5bG9hZCIsImNvbXBvbmVudCIsInR5cGUiLCJBY3Rpb25Sb3ciLCJ0cmFuc2Zvcm1BY3Rpb25Sb3ciLCJCdXR0b24iLCJ0cmFuc2Zvcm1CdXR0b25Db21wb25lbnQiLCJDb250YWluZXIiLCJ0cmFuc2Zvcm1Db250YWluZXJDb21wb25lbnQiLCJUZXh0SW5wdXQiLCJ0cmFuc2Zvcm1JbnB1dFRleHRDb21wb25lbnQiLCJTdHJpbmdTZWxlY3QiLCJVc2VyU2VsZWN0IiwiUm9sZVNlbGVjdCIsIk1lbnRpb25hYmxlU2VsZWN0IiwiQ2hhbm5lbFNlbGVjdCIsInRyYW5zZm9ybVNlbGVjdE1lbnVDb21wb25lbnQiLCJTZWN0aW9uIiwidHJhbnNmb3JtU2VjdGlvbkNvbXBvbmVudCIsIlRodW1ibmFpbCIsInRyYW5zZm9ybVRodW1ibmFpbENvbXBvbmVudCIsIk1lZGlhR2FsbGVyeSIsInRyYW5zZm9ybU1lZGlhR2FsbGVyeUNvbXBvbmVudCIsIkZpbGUiLCJ0cmFuc2Zvcm1GaWxlQ29tcG9uZW50IiwiU2VwYXJhdG9yIiwidHJhbnNmb3JtU2VwYXJhdG9yQ29tcG9uZW50IiwiVGV4dERpc3BsYXkiLCJ0cmFuc2Zvcm1UZXh0RGlzcGxheUNvbXBvbmVudCIsInRyYW5zZm9ybWVycyIsImN1c3RvbWl6ZXJzIiwidHJhbnNmb3JtVW5mdXJsZWRNZWRpYUl0ZW0iLCJwcm9wcyIsImRlc2lyZWRQcm9wZXJ0aWVzIiwidW5mdXJsZWRNZWRpYUl0ZW0iLCJtZWRpYUl0ZW0iLCJ1cmwiLCJwcm94eVVybCIsInByb3h5X3VybCIsImhlaWdodCIsIndpZHRoIiwiY29udGVudFR5cGUiLCJjb250ZW50X3R5cGUiLCJhdHRhY2htZW50SWQiLCJhdHRhY2htZW50X2lkIiwic25vd2ZsYWtlIiwidHJhbnNmb3JtTWVkaWFHYWxsZXJ5SXRlbSIsIm1lZGlhR2FsbGVyeUl0ZW0iLCJnYWxsZXJ5SXRlbSIsIm1lZGlhIiwiZGVzY3JpcHRpb24iLCJzcG9pbGVyIiwiYWN0aW9uUm93IiwiaWQiLCJjb21wb25lbnRzIiwibWFwIiwiY29udGFpbmVyIiwiYWNjZW50Q29sb3IiLCJhY2NlbnRfY29sb3IiLCJidXR0b24iLCJsYWJlbCIsImN1c3RvbUlkIiwiY3VzdG9tX2lkIiwic3R5bGUiLCJlbW9qaSIsImRpc2FibGVkIiwic2t1SWQiLCJza3VfaWQiLCJpbnB1dCIsInJlcXVpcmVkIiwicGxhY2Vob2xkZXIiLCJtaW5MZW5ndGgiLCJtaW5fbGVuZ3RoIiwibWF4TGVuZ3RoIiwibWF4X2xlbmd0aCIsInZhbHVlIiwic2VsZWN0IiwibWluVmFsdWVzIiwibWluX3ZhbHVlcyIsIm1heFZhbHVlcyIsIm1heF92YWx1ZXMiLCJkZWZhdWx0VmFsdWVzIiwiZGVmYXVsdF92YWx1ZXMiLCJkZWZhdWx0VmFsdWUiLCJjaGFubmVsVHlwZXMiLCJjaGFubmVsX3R5cGVzIiwib3B0aW9ucyIsIm9wdGlvbiIsInVuZGVmaW5lZCIsIm5hbWUiLCJhbmltYXRlZCIsImRlZmF1bHQiLCJzZWN0aW9uIiwiYWNjZXNzb3J5IiwidGh1bWJuYWlsIiwibWVkaWFHYWxsZXJ5IiwiaXRlbXMiLCJpdGVtIiwiZmlsZSIsInNpemUiLCJ0ZXh0RGlzcGxheSIsImNvbnRlbnQiLCJzZXBhcmF0b3IiLCJkaXZpZGVyIiwic3BhY2luZyJdLCJtYXBwaW5ncyI6IkFBQUEsU0FZRUEscUJBQXFCLFFBQ2hCLG9CQUFtQjtBQVcxQixPQUFPLFNBQVNDLG1CQUFtQkMsR0FBUSxFQUFFQyxPQUFnQztJQUMzRSxJQUFJQztJQUVKLGtJQUFrSTtJQUNsSSxPQUFRRCxRQUFRRSxJQUFJO1FBQ2xCLEtBQUtMLHNCQUFzQk0sU0FBUztZQUNsQ0YsWUFBWUcsbUJBQW1CTCxLQUFLQztZQUNwQztRQUNGLEtBQUtILHNCQUFzQlEsTUFBTTtZQUMvQkosWUFBWUsseUJBQXlC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
196
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvY29tcG9uZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIHR5cGUgRGlzY29yZEFjdGlvblJvdyxcbiAgdHlwZSBEaXNjb3JkQnV0dG9uQ29tcG9uZW50LFxuICB0eXBlIERpc2NvcmRGaWxlQ29tcG9uZW50LFxuICB0eXBlIERpc2NvcmRNZWRpYUdhbGxlcnlDb21wb25lbnQsXG4gIHR5cGUgRGlzY29yZE1lc3NhZ2VDb21wb25lbnQsXG4gIHR5cGUgRGlzY29yZFNlY3Rpb25Db21wb25lbnQsXG4gIHR5cGUgRGlzY29yZFNlbGVjdE1lbnVDb21wb25lbnQsXG4gIHR5cGUgRGlzY29yZFNlcGFyYXRvckNvbXBvbmVudCxcbiAgdHlwZSBEaXNjb3JkVGV4dERpc3BsYXlDb21wb25lbnQsXG4gIHR5cGUgRGlzY29yZFRleHRJbnB1dENvbXBvbmVudCxcbiAgdHlwZSBEaXNjb3JkVGh1bWJuYWlsQ29tcG9uZW50LFxuICBNZXNzYWdlQ29tcG9uZW50VHlwZXMsXG59IGZyb20gJ0BkaXNjb3JkZW5vL3R5cGVzJ1xuaW1wb3J0IHR5cGUge1xuICBCb3QsXG4gIENvbXBvbmVudCxcbiAgRGlzY29yZENvbnRhaW5lckNvbXBvbmVudCxcbiAgRGlzY29yZE1lZGlhR2FsbGVyeUl0ZW0sXG4gIERpc2NvcmRVbmZ1cmxlZE1lZGlhSXRlbSxcbiAgTWVkaWFHYWxsZXJ5SXRlbSxcbiAgVW5mdXJsZWRNZWRpYUl0ZW0sXG59IGZyb20gJy4uL2luZGV4LmpzJ1xuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtQ29tcG9uZW50KGJvdDogQm90LCBwYXlsb2FkOiBEaXNjb3JkTWVzc2FnZUNvbXBvbmVudCk6IENvbXBvbmVudCB7XG4gIGxldCBjb21wb25lbnQ6IENvbXBvbmVudFxuXG4gIC8vIFRoaXMgc3dpdGNoIGlzIGV4aGF1c3RpdmUsIHNvIHdlIGRvbnQgbmVlZCB0aGUgZGVmYXVsdCBjYXNlIGFuZCBUUyBkb2VzIG5vdCBlcnJvciBvdXQgZm9yIHRoZSB1bi1pbml0aWFsaXplZCBjb21wb25lbnQgdmFyaWFibGVcbiAgc3dpdGNoIChwYXlsb2FkLnR5cGUpIHtcbiAgICBjYXNlIE1lc3NhZ2VDb21wb25lbnRUeXBlcy5BY3Rpb25Sb3c6XG4gICAgICBjb21wb25lbnQgPSB0cmFuc2Zvcm1BY3Rpb25Sb3coYm90LCBwYXlsb2FkKVxuICAgICAgYnJlYWtcbiAgICBjYXNlIE1lc3NhZ2VDb21wb25lbnRUeXBlcy5CdXR0b246XG4gICAgICBjb21wb25lbnQgPSB0cmFuc2Zvcm1CdXR0b25Db21wb25lbnQoYm90LCBwYXlsb2FkKVxuICAgICAgYnJlYWtcbiAgICBjYXNlIE1lc3NhZ2VDb21wb25lbnRUeXBlcy5Db250YWluZXI6XG4gICAgICBjb21wb25lbnQgPSB0cmFuc2Zvcm1Db250YWluZXJDb21wb25lbnQoYm90LCBwYXlsb2FkKVxuICAgICAgYnJlYWtcbiAgICBjYXNlIE1lc3NhZ2VDb21wb25lbnRUeXBlcy5UZXh0SW5wdXQ6XG4gICAgICBjb21wb25lbnQgPSB0cmFuc2Zvcm1JbnB1dFRleHRDb21wb25lbnQoYm90LCBwYXlsb2FkKVxuICAgICAgYnJlYWtcbiAgICBjYXNlIE1lc3NhZ2VDb21wb25lbnRUeXBlcy5TdHJpbmdTZWxlY3Q6XG4gICAgY2FzZSBNZXNzYWdlQ29tcG9uZW50VHlwZXMuVXNlclNlbGVjdDpcbiAgICBjYXNlIE1lc3NhZ2VDb21wb25lbnRUeXBlcy5Sb2xlU2VsZWN0OlxuICAgIGNhc2UgTWVzc2FnZUNvbXBvbmVudFR5cGVzLk1lbnRpb25hYmxlU2VsZWN0OlxuICAgIGNhc2UgTWVzc2FnZUNvbXBvbmVudFR5cGVzLkNoYW5uZWxTZWxlY3Q6XG4gICAgICBjb21wb25lbnQgPSB0cmFuc2Zvcm1TZWxlY3RNZW51Q29tcG9uZW50KGJvdCwgcGF5bG9hZClcbiAgICAgIGJyZWFrXG4gICAgY2FzZSBNZXNzYWdlQ29tcG9uZW50VHlwZXMuU2VjdGlvbjpcbiAgICAgIGNvbXBvbmVudCA9IHRyYW5zZm9ybVNlY3Rpb25Db21wb25lbnQoYm90LCBwYXlsb2FkKVxuICAgICAgYnJlYWtcbiAgICBjYXNlIE1lc3NhZ2VDb21wb25lbnRUeXBlcy5UaHVtYm5haWw6XG4gICAgICBjb21wb25lbnQgPSB0cmFuc2Zvcm1UaHVtYm5haWxDb21wb25lbnQoYm90LCBwYXlsb2FkKVxuICAgICAgYnJlYWtcbiAgICBjYXNlIE1lc3NhZ2VDb21wb25lbnRUeXBlcy5NZWRpYUdhbGxlcnk6XG4gICAgICBjb21wb25lbnQgPSB0cmFuc2Zvcm1NZWRpYUdhbGxlcnlDb21wb25lbnQoYm90LCBwYXlsb2FkKVxuICAgICAgYnJlYWtcbiAgICBjYXNlIE1lc3NhZ2VDb21wb25lbnRUeXBlcy5GaWxlOlxuICAgICAgY29tcG9uZW50ID0gdHJhbnNmb3JtRmlsZUNvbXBvbmVudChib3QsIHBheWxvYWQpXG4gICAgICBicmVha1xuICAgIGNhc2UgTWVzc2FnZUNvbXBvbmVudFR5cGVzLlNlcGFyYXRvcjpcbiAgICAgIGNvbXBvbmVudCA9IHRyYW5zZm9ybVNlcGFyYXRvckNvbXBvbmVudChib3QsIHBheWxvYWQpXG4gICAgICBicmVha1xuICAgIGNhc2UgTWVzc2FnZUNvbXBvbmVudFR5cGVzLlRleHREaXNwbGF5OlxuICAgICAgY29tcG9uZW50ID0gdHJhbnNmb3JtVGV4dERpc3BsYXlDb21wb25lbnQoYm90LCBwYXlsb2FkKVxuICAgICAgYnJlYWtcbiAgfVxuXG4gIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmN1c3RvbWl6ZXJzLmNvbXBvbmVudChib3QsIHBheWxvYWQsIGNvbXBvbmVudClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybVVuZnVybGVkTWVkaWFJdGVtKGJvdDogQm90LCBwYXlsb2FkOiBEaXNjb3JkVW5mdXJsZWRNZWRpYUl0ZW0pOiBVbmZ1cmxlZE1lZGlhSXRlbSB7XG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy51bmZ1cmxlZE1lZGlhSXRlbVxuICBjb25zdCBtZWRpYUl0ZW0gPSB7fSBhcyBVbmZ1cmxlZE1lZGlhSXRlbVxuXG4gIGlmIChwcm9wcy51cmwgJiYgcGF5bG9hZC51cmwpIG1lZGlhSXRlbS51cmwgPSBwYXlsb2FkLnVybFxuICBpZiAocHJvcHMucHJveHlVcmwgJiYgcGF5bG9hZC5wcm94eV91cmwpIG1lZGlhSXRlbS5wcm94eVVybCA9IHBheWxvYWQucHJveHlfdXJsXG4gIGlmIChwcm9wcy5oZWlnaHQgJiYgcGF5bG9hZC5oZWlnaHQpIG1lZGlhSXRlbS5oZWlnaHQgPSBwYXlsb2FkLmhlaWdodFxuICBpZiAocHJvcHMud2lkdGggJiYgcGF5bG9hZC53aWR0aCkgbWVkaWFJdGVtLndpZHRoID0gcGF5bG9hZC53aWR0aFxuICBpZiAocHJvcHMuY29udGVudFR5cGUgJiYgcGF5bG9hZC5jb250ZW50X3R5cGUpIG1lZGlhSXRlbS5jb250ZW50VHlwZSA9IHBheWxvYWQuY29udGVudF90eXBlXG4gIGlmIChwcm9wcy5hdHRhY2htZW50SWQgJiYgcGF5bG9hZC5hdHRhY2htZW50X2lkKSBtZWRpYUl0ZW0uYXR0YWNobWVudElkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5hdHRhY2htZW50X2lkKVxuXG4gIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmN1c3RvbWl6ZXJzLnVuZnVybGVkTWVkaWFJdGVtKGJvdCwgcGF5bG9hZCwgbWVkaWFJdGVtKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtTWVkaWFHYWxsZXJ5SXRlbShib3Q6IEJvdCwgcGF5bG9hZDogRGlzY29yZE1lZGlhR2FsbGVyeUl0ZW0pOiBNZWRpYUdhbGxlcnlJdGVtIHtcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLm1lZGlhR2FsbGVyeUl0ZW1cbiAgY29uc3QgZ2FsbGVyeUl0ZW0gPSB7fSBhcyBNZWRpYUdhbGxlcnlJdGVtXG5cbiAgaWYgKHByb3BzLm1lZGlhICYmIHBheWxvYWQubWVkaWEpIGdhbGxlcnlJdGVtLm1lZGlhID0gYm90LnRyYW5zZm9ybWVycy51bmZ1cmxlZE1lZGlhSXRlbShib3QsIHBheWxvYWQubWVkaWEpXG4gIGlmIChwcm9wcy5kZXNjcmlwdGlvbiAmJiBwYXlsb2FkLmRlc2NyaXB0aW9uKSBnYWxsZXJ5SXRlbS5kZXNjcmlwdGlvbiA9IHBheWxvYWQuZGVzY3JpcHRpb25cbiAgaWYgKHByb3BzLnNwb2lsZXIgJiYgcGF5bG9hZC5zcG9pbGVyKSBnYWxsZXJ5SXRlbS5zcG9pbGVyID0gcGF5bG9hZC5zcG9pbGVyXG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMubWVkaWFHYWxsZXJ5SXRlbShib3QsIHBheWxvYWQsIGdhbGxlcnlJdGVtKVxufVxuXG5mdW5jdGlvbiB0cmFuc2Zvcm1BY3Rpb25Sb3coYm90OiBCb3QsIHBheWxvYWQ6IERpc2NvcmRBY3Rpb25Sb3cpOiBDb21wb25lbnQge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuY29tcG9uZW50XG4gIGNvbnN0IGFjdGlvblJvdyA9IHt9IGFzIENvbXBvbmVudFxuXG4gIGlmIChwcm9wcy50eXBlICYmIHBheWxvYWQudHlwZSkgYWN0aW9uUm93LnR5cGUgPSBwYXlsb2FkLnR5cGVcbiAgaWYgKHByb3BzLmlkICYmIHBheWxvYWQuaWQpIGFjdGlvblJvdy5pZCA9IHBheWxvYWQuaWRcbiAgaWYgKHByb3BzLmNvbXBvbmVudHMgJiYgcGF5bG9hZC5jb21wb25lbnRzKSBhY3Rpb25Sb3cuY29tcG9uZW50cyA9IHBheWxvYWQuY29tcG9uZW50cy5tYXAoKGNvbXBvbmVudCkgPT4gYm90LnRyYW5zZm9ybWVycy5jb21wb25lbnQoYm90LCBjb21wb25lbnQpKVxuXG4gIHJldHVybiBhY3Rpb25Sb3dcbn1cblxuZnVuY3Rpb24gdHJhbnNmb3JtQ29udGFpbmVyQ29tcG9uZW50KGJvdDogQm90LCBwYXlsb2FkOiBEaXNjb3JkQ29udGFpbmVyQ29tcG9uZW50KTogQ29tcG9uZW50IHtcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLmNvbXBvbmVudFxuICBjb25zdCBjb250YWluZXIgPSB7fSBhcyBDb21wb25lbnRcblxuICBpZiAocHJvcHMudHlwZSAmJiBwYXlsb2FkLnR5cGUpIGNvbnRhaW5lci50eXBlID0gcGF5bG9hZC50eXBlXG4gIGlmIChwcm9wcy5pZCAmJiBwYXlsb2FkLmlkKSBjb250YWluZXIuaWQgPSBwYXlsb2FkLmlkXG4gIGlmIChwcm9wcy5hY2NlbnRDb2xvciAmJiBwYXlsb2FkLmFjY2VudF9jb2xvcikgY29udGFpbmVyLmFjY2VudENvbG9yID0gcGF5bG9hZC5hY2NlbnRfY29sb3JcbiAgaWYgKHByb3BzLnNwb2lsZXIgJiYgcGF5bG9hZC5zcG9pbGVyKSBjb250YWluZXIuc3BvaWxlciA9IHBheWxvYWQuc3BvaWxlclxuICBpZiAocHJvcHMuY29tcG9uZW50cyAmJiBwYXlsb2FkLmNvbXBvbmVudHMpIGNvbnRhaW5lci5jb21wb25lbnRzID0gcGF5bG9hZC5jb21wb25lbnRzLm1hcCgoY29tcG9uZW50KSA9PiBib3QudHJhbnNmb3JtZXJzLmNvbXBvbmVudChib3QsIGNvbXBvbmVudCkpXG5cbiAgcmV0dXJuIGNvbnRhaW5lclxufVxuXG5mdW5jdGlvbiB0cmFuc2Zvcm1CdXR0b25Db21wb25lbnQoYm90OiBCb3QsIHBheWxvYWQ6IERpc2NvcmRCdXR0b25Db21wb25lbnQpOiBDb21wb25lbnQge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuY29tcG9uZW50XG4gIGNvbnN0IGJ1dHRvbiA9IHt9IGFzIENvbXBvbmVudFxuXG4gIGlmIChwcm9wcy50eXBlICYmIHBheWxvYWQudHlwZSkgYnV0dG9uLnR5cGUgPSBwYXlsb2FkLnR5cGVcbiAgaWYgKHByb3BzLmlkICYmIHBheWxvYWQuaWQpIGJ1dHRvbi5pZCA9IHBheWxvYWQuaWRcbiAgaWYgKHByb3BzLmxhYmVsICYmIHBheWxvYWQubGFiZWwpIGJ1dHRvbi5sYWJlbCA9IHBheWxvYWQubGFiZWxcbiAgaWYgKHByb3BzLmN1c3RvbUlkICYmIHBheWxvYWQuY3VzdG9tX2lkKSBidXR0b24uY3VzdG9tSWQgPSBwYXlsb2FkLmN1c3RvbV9pZFxuICBpZiAocHJvcHMuc3R5bGUgJiYgcGF5bG9hZC5zdHlsZSkgYnV0dG9uLnN0eWxlID0gcGF5bG9hZC5zdHlsZVxuICBpZiAocHJvcHMuZW1vamkgJiYgcGF5bG9hZC5lbW9qaSkgYnV0dG9uLmVtb2ppID0gYm90LnRyYW5zZm9ybWVycy5lbW9qaShib3QsIHBheWxvYWQuZW1vamkpXG4gIGlmIChwcm9wcy51cmwgJiYgcGF5bG9hZC51cmwpIGJ1dHRvbi51cmwgPSBwYXlsb2FkLnVybFxuICBpZiAocHJvcHMuZGlzYWJsZWQgJiYgcGF5bG9hZC5kaXNhYmxlZCkgYnV0dG9uLmRpc2FibGVkID0gcGF5bG9hZC5kaXNhYmxlZFxuICBpZiAocHJvcHMuc2t1SWQgJiYgcGF5bG9hZC5za3VfaWQpIGJ1dHRvbi5za3VJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuc2t1X2lkKVxuXG4gIHJldHVybiBidXR0b25cbn1cblxuZnVuY3Rpb24gdHJhbnNmb3JtSW5wdXRUZXh0Q29tcG9uZW50KGJvdDogQm90LCBwYXlsb2FkOiBEaXNjb3JkVGV4dElucHV0Q29tcG9uZW50KTogQ29tcG9uZW50IHtcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLmNvbXBvbmVudFxuICBjb25zdCBpbnB1dCA9IHt9IGFzIENvbXBvbmVudFxuXG4gIGlmIChwcm9wcy50eXBlICYmIHBheWxvYWQudHlwZSkgaW5wdXQudHlwZSA9IHBheWxvYWQudHlwZVxuICBpZiAocHJvcHMuaWQgJiYgcGF5bG9hZC5pZCkgaW5wdXQuaWQgPSBwYXlsb2FkLmlkXG4gIGlmIChwcm9wcy5zdHlsZSAmJiBwYXlsb2FkLnN0eWxlKSBpbnB1dC5zdHlsZSA9IHBheWxvYWQuc3R5bGVcbiAgaWYgKHByb3BzLnJlcXVpcmVkICYmIHBheWxvYWQucmVxdWlyZWQpIGlucHV0LnJlcXVpcmVkID0gcGF5bG9hZC5yZXF1aXJlZFxuICBpZiAocHJvcHMuY3VzdG9tSWQgJiYgcGF5bG9hZC5jdXN0b21faWQpIGlucHV0LmN1c3RvbUlkID0gcGF5bG9hZC5jdXN0b21faWRcbiAgaWYgKHByb3BzLmxhYmVsICYmIHBheWxvYWQubGFiZWwpIGlucHV0LmxhYmVsID0gcGF5bG9hZC5sYWJlbFxuICBpZiAocHJvcHMucGxhY2Vob2xkZXIgJiYgcGF5bG9hZC5wbGFjZWhvbGRlcikgaW5wdXQucGxhY2Vob2xkZXIgPSBwYXlsb2FkLnBsYWNlaG9sZGVyXG4gIGlmIChwcm9wcy5taW5MZW5ndGggJiYgcGF5bG9hZC5taW5fbGVuZ3RoKSBpbnB1dC5taW5MZW5ndGggPSBwYXlsb2FkLm1pbl9sZW5ndGhcbiAgaWYgKHByb3BzLm1heExlbmd0aCAmJiBwYXlsb2FkLm1heF9sZW5ndGgpIGlucHV0Lm1heExlbmd0aCA9IHBheWxvYWQubWF4X2xlbmd0aFxuICBpZiAocHJvcHMudmFsdWUgJiYgcGF5bG9hZC52YWx1ZSkgaW5wdXQudmFsdWUgPSBwYXlsb2FkLnZhbHVlXG5cbiAgcmV0dXJuIGlucHV0XG59XG5cbmZ1bmN0aW9uIHRyYW5zZm9ybVNlbGVjdE1lbnVDb21wb25lbnQoYm90OiBCb3QsIHBheWxvYWQ6IERpc2NvcmRTZWxlY3RNZW51Q29tcG9uZW50KTogQ29tcG9uZW50IHtcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLmNvbXBvbmVudFxuICBjb25zdCBzZWxlY3QgPSB7fSBhcyBDb21wb25lbnRcblxuICBpZiAocHJvcHMudHlwZSAmJiBwYXlsb2FkLnR5cGUpIHNlbGVjdC50eXBlID0gcGF5bG9hZC50eXBlXG4gIGlmIChwcm9wcy5pZCAmJiBwYXlsb2FkLmlkKSBzZWxlY3QuaWQgPSBwYXlsb2FkLmlkXG4gIGlmIChwcm9wcy5jdXN0b21JZCAmJiBwYXlsb2FkLmN1c3RvbV9pZCkgc2VsZWN0LmN1c3RvbUlkID0gcGF5bG9hZC5jdXN0b21faWRcbiAgaWYgKHByb3BzLnBsYWNlaG9sZGVyICYmIHBheWxvYWQucGxhY2Vob2xkZXIpIHNlbGVjdC5wbGFjZWhvbGRlciA9IHBheWxvYWQucGxhY2Vob2xkZXJcbiAgaWYgKHByb3BzLm1pblZhbHVlcyAmJiBwYXlsb2FkLm1pbl92YWx1ZXMpIHNlbGVjdC5taW5WYWx1ZXMgPSBwYXlsb2FkLm1pbl92YWx1ZXNcbiAgaWYgKHByb3BzLm1heFZhbHVlcyAmJiBwYXlsb2FkLm1heF92YWx1ZXMpIHNlbGVjdC5tYXhWYWx1ZXMgPSBwYXlsb2FkLm1heF92YWx1ZXNcbiAgaWYgKHByb3BzLmRlZmF1bHRWYWx1ZXMgJiYgcGF5bG9hZC5kZWZhdWx0X3ZhbHVlcylcbiAgICBzZWxlY3QuZGVmYXVsdFZhbHVlcyA9IHBheWxvYWQuZGVmYXVsdF92YWx1ZXMubWFwKChkZWZhdWx0VmFsdWUpID0+ICh7XG4gICAgICBpZDogYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UoZGVmYXVsdFZhbHVlLmlkKSxcbiAgICAgIHR5cGU6IGRlZmF1bHRWYWx1ZS50eXBlLFxuICAgIH0pKVxuICBpZiAocHJvcHMuY2hhbm5lbFR5cGVzICYmIHBheWxvYWQuY2hhbm5lbF90eXBlcykgc2VsZWN0LmNoYW5uZWxUeXBlcyA9IHBheWxvYWQuY2hhbm5lbF90eXBlc1xuICBpZiAocHJvcHMub3B0aW9ucyAmJiBwYXlsb2FkLm9wdGlvbnMpXG4gICAgc2VsZWN0Lm9wdGlvbnMgPSBwYXlsb2FkLm9wdGlvbnMubWFwKChvcHRpb24pID0+ICh7XG4gICAgICBsYWJlbDogb3B0aW9uLmxhYmVsLFxuICAgICAgdmFsdWU6IG9wdGlvbi52YWx1ZSxcbiAgICAgIGRlc2NyaXB0aW9uOiBvcHRpb24uZGVzY3JpcHRpb24sXG4gICAgICBlbW9qaTogb3B0aW9uLmVtb2ppXG4gICAgICAgID8ge1xuICAgICAgICAgICAgaWQ6IG9wdGlvbi5lbW9qaS5pZCA/IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKG9wdGlvbi5lbW9qaS5pZCkgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICBuYW1lOiBvcHRpb24uZW1vamkubmFtZSA/PyB1bmRlZmluZWQsXG4gICAgICAgICAgICBhbmltYXRlZDogb3B0aW9uLmVtb2ppLmFuaW1hdGVkLFxuICAgICAgICAgIH1cbiAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICBkZWZhdWx0OiBvcHRpb24uZGVmYXVsdCxcbiAgICB9KSlcbiAgaWYgKHByb3BzLmRpc2FibGVkICYmIHBheWxvYWQuZGlzYWJsZWQpIHNlbGVjdC5kaXNhYmxlZCA9IHBheWxvYWQuZGlzYWJsZWRcblxuICByZXR1cm4gc2VsZWN0XG59XG5cbmZ1bmN0aW9uIHRyYW5zZm9ybVNlY3Rpb25Db21wb25lbnQoYm90OiBCb3QsIHBheWxvYWQ6IERpc2NvcmRTZWN0aW9uQ29tcG9uZW50KTogQ29tcG9uZW50IHtcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLmNvbXBvbmVudFxuICBjb25zdCBzZWN0aW9uID0ge30gYXMgQ29tcG9uZW50XG5cbiAgaWYgKHByb3BzLnR5cGUgJiYgcGF5bG9hZC50eXBlKSBzZWN0aW9uLnR5cGUgPSBwYXlsb2FkLnR5cGVcbiAgaWYgKHByb3BzLmlkICYmIHBheWxvYWQuaWQpIHNlY3Rpb24uaWQgPSBwYXlsb2FkLmlkXG4gIGlmIChwcm9wcy5jb21wb25lbnRzICYmIHBheWxvYWQuY29tcG9uZW50cykgc2VjdGlvbi5jb21wb25lbnRzID0gcGF5bG9hZC5jb21wb25lbnRzLm1hcCgoY29tcG9uZW50KSA9PiBib3QudHJhbnNmb3JtZXJzLmNvbXBvbmVudChib3QsIGNvbXBvbmVudCkpXG4gIGlmIChwcm9wcy5hY2Nlc3NvcnkgJiYgcGF5bG9hZC5hY2Nlc3NvcnkpIHNlY3Rpb24uYWNjZXNzb3J5ID0gYm90LnRyYW5zZm9ybWVycy5jb21wb25lbnQoYm90LCBwYXlsb2FkLmFjY2Vzc29yeSlcblxuICByZXR1cm4gc2VjdGlvblxufVxuXG5mdW5jdGlvbiB0cmFuc2Zvcm1UaHVtYm5haWxDb21wb25lbnQoYm90OiBCb3QsIHBheWxvYWQ6IERpc2NvcmRUaHVtYm5haWxDb21wb25lbnQpOiBDb21wb25lbnQge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuY29tcG9uZW50XG4gIGNvbnN0IHRodW1ibmFpbCA9IHt9IGFzIENvbXBvbmVudFxuXG4gIGlmIChwcm9wcy50eXBlICYmIHBheWxvYWQudHlwZSkgdGh1bWJuYWlsLnR5cGUgPSBwYXlsb2FkLnR5cGVcbiAgaWYgKHByb3BzLmlkICYmIHBheWxvYWQuaWQpIHRodW1ibmFpbC5pZCA9IHBheWxvYWQuaWRcbiAgaWYgKHByb3BzLm1lZGlhICYmIHBheWxvYWQubWVkaWEpIHRodW1ibmFpbC5tZWRpYSA9IGJvdC50cmFuc2Zvcm1lcnMudW5mdXJsZWRNZWRpYUl0ZW0oYm90LCBwYXlsb2FkLm1lZGlhKVxuICBpZiAocHJvcHMuZGVzY3JpcHRpb24gJiYgcGF5bG9hZC5kZXNjcmlwdGlvbikgdGh1bWJuYWlsLmRlc2NyaXB0aW9uID0gcGF5bG9hZC5kZXNjcmlwdGlvblxuICBpZiAocHJvcHMuc3BvaWxlciAmJiBwYXlsb2FkLnNwb2lsZXIpIHRodW1ibmFpbC5zcG9pbGVyID0gcGF5bG9hZC5zcG9pbGVyXG5cbiAgcmV0dXJuIHRodW1ibmFpbFxufVxuXG5mdW5jdGlvbiB0cmFuc2Zvcm1NZWRpYUdhbGxlcnlDb21wb25lbnQoYm90OiBCb3QsIHBheWxvYWQ6IERpc2NvcmRNZWRpYUdhbGxlcnlDb21wb25lbnQpOiBDb21wb25lbnQge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuY29tcG9uZW50XG4gIGNvbnN0IG1lZGlhR2FsbGVyeSA9IHt9IGFzIENvbXBvbmVudFxuXG4gIGlmIChwcm9wcy50eXBlICYmIHBheWxvYWQudHlwZSkgbWVkaWFHYWxsZXJ5LnR5cGUgPSBwYXlsb2FkLnR5cGVcbiAgaWYgKHByb3BzLmlkICYmIHBheWxvYWQuaWQpIG1lZGlhR2FsbGVyeS5pZCA9IHBheWxvYWQuaWRcbiAgaWYgKHByb3BzLml0ZW1zICYmIHBheWxvYWQuaXRlbXMpIG1lZGlhR2FsbGVyeS5pdGVtcyA9IHBheWxvYWQuaXRlbXMubWFwKChpdGVtKSA9PiBib3QudHJhbnNmb3JtZXJzLm1lZGlhR2FsbGVyeUl0ZW0oYm90LCBpdGVtKSlcblxuICByZXR1cm4gbWVkaWFHYWxsZXJ5XG59XG5cbmZ1bmN0aW9uIHRyYW5zZm9ybUZpbGVDb21wb25lbnQoYm90OiBCb3QsIHBheWxvYWQ6IERpc2NvcmRGaWxlQ29tcG9uZW50KTogQ29tcG9uZW50IHtcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLmNvbXBvbmVudFxuICBjb25zdCBmaWxlID0ge30gYXMgQ29tcG9uZW50XG5cbiAgaWYgKHByb3BzLnR5cGUgJiYgcGF5bG9hZC50eXBlKSBmaWxlLnR5cGUgPSBwYXlsb2FkLnR5cGVcbiAgaWYgKHByb3BzLmlkICYmIHBheWxvYWQuaWQpIGZpbGUuaWQgPSBwYXlsb2FkLmlkXG4gIGlmIChwcm9wcy5maWxlICYmIHBheWxvYWQuZmlsZSkgZmlsZS5maWxlID0gYm90LnRyYW5zZm9ybWVycy51bmZ1cmxlZE1lZGlhSXRlbShib3QsIHBheWxvYWQuZmlsZSlcbiAgaWYgKHByb3BzLnNwb2lsZXIgJiYgcGF5bG9hZC5zcG9pbGVyKSBmaWxlLnNwb2lsZXIgPSBwYXlsb2FkLnNwb2lsZXJcbiAgaWYgKHByb3BzLm5hbWUgJiYgcGF5bG9hZC5uYW1lKSBmaWxlLm5hbWUgPSBwYXlsb2FkLm5hbWVcbiAgaWYgKHByb3BzLnNpemUgJiYgcGF5bG9hZC5zaXplKSBmaWxlLnNpemUgPSBwYXlsb2FkLnNpemVcblxuICByZXR1cm4gZmlsZVxufVxuXG5mdW5jdGlvbiB0cmFuc2Zvcm1UZXh0RGlzcGxheUNvbXBvbmVudChib3Q6IEJvdCwgcGF5bG9hZDogRGlzY29yZFRleHREaXNwbGF5Q29tcG9uZW50KTogQ29tcG9uZW50IHtcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLmNvbXBvbmVudFxuICBjb25zdCB0ZXh0RGlzcGxheSA9IHt9IGFzIENvbXBvbmVudFxuXG4gIGlmIChwcm9wcy50eXBlICYmIHBheWxvYWQudHlwZSkgdGV4dERpc3BsYXkudHlwZSA9IHBheWxvYWQudHlwZVxuICBpZiAocHJvcHMuaWQgJiYgcGF5bG9hZC5pZCkgdGV4dERpc3BsYXkuaWQgPSBwYXlsb2FkLmlkXG4gIGlmIChwcm9wcy5jb250ZW50ICYmIHBheWxvYWQuY29udGVudCkgdGV4dERpc3BsYXkuY29udGVudCA9IHBheWxvYWQuY29udGVudFxuXG4gIHJldHVybiB0ZXh0RGlzcGxheVxufVxuXG5mdW5jdGlvbiB0cmFuc2Zvcm1TZXBhcmF0b3JDb21wb25lbnQoYm90OiBCb3QsIHBheWxvYWQ6IERpc2NvcmRTZXBhcmF0b3JDb21wb25lbnQpOiBDb21wb25lbnQge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuY29tcG9uZW50XG4gIGNvbnN0IHNlcGFyYXRvciA9IHt9IGFzIENvbXBvbmVudFxuXG4gIGlmIChwcm9wcy50eXBlICYmIHBheWxvYWQudHlwZSkgc2VwYXJhdG9yLnR5cGUgPSBwYXlsb2FkLnR5cGVcbiAgaWYgKHByb3BzLmlkICYmIHBheWxvYWQuaWQpIHNlcGFyYXRvci5pZCA9IHBheWxvYWQuaWRcbiAgaWYgKHByb3BzLmRpdmlkZXIgJiYgcGF5bG9hZC5kaXZpZGVyKSBzZXBhcmF0b3IuZGl2aWRlciA9IHBheWxvYWQuZGl2aWRlclxuICBpZiAocHJvcHMuc3BhY2luZyAmJiBwYXlsb2FkLnNwYWNpbmcpIHNlcGFyYXRvci5zcGFjaW5nID0gcGF5bG9hZC5zcGFjaW5nXG5cbiAgcmV0dXJuIHNlcGFyYXRvclxufVxuIl0sIm5hbWVzIjpbIk1lc3NhZ2VDb21wb25lbnRUeXBlcyIsInRyYW5zZm9ybUNvbXBvbmVudCIsImJvdCIsInBheWxvYWQiLCJjb21wb25lbnQiLCJ0eXBlIiwiQWN0aW9uUm93IiwidHJhbnNmb3JtQWN0aW9uUm93IiwiQnV0dG9uIiwidHJhbnNmb3JtQnV0dG9uQ29tcG9uZW50IiwiQ29udGFpbmVyIiwidHJhbnNmb3JtQ29udGFpbmVyQ29tcG9uZW50IiwiVGV4dElucHV0IiwidHJhbnNmb3JtSW5wdXRUZXh0Q29tcG9uZW50IiwiU3RyaW5nU2VsZWN0IiwiVXNlclNlbGVjdCIsIlJvbGVTZWxlY3QiLCJNZW50aW9uYWJsZVNlbGVjdCIsIkNoYW5uZWxTZWxlY3QiLCJ0cmFuc2Zvcm1TZWxlY3RNZW51Q29tcG9uZW50IiwiU2VjdGlvbiIsInRyYW5zZm9ybVNlY3Rpb25Db21wb25lbnQiLCJUaHVtYm5haWwiLCJ0cmFuc2Zvcm1UaHVtYm5haWxDb21wb25lbnQiLCJNZWRpYUdhbGxlcnkiLCJ0cmFuc2Zvcm1NZWRpYUdhbGxlcnlDb21wb25lbnQiLCJGaWxlIiwidHJhbnNmb3JtRmlsZUNvbXBvbmVudCIsIlNlcGFyYXRvciIsInRyYW5zZm9ybVNlcGFyYXRvckNvbXBvbmVudCIsIlRleHREaXNwbGF5IiwidHJhbnNmb3JtVGV4dERpc3BsYXlDb21wb25lbnQiLCJ0cmFuc2Zvcm1lcnMiLCJjdXN0b21pemVycyIsInRyYW5zZm9ybVVuZnVybGVkTWVkaWFJdGVtIiwicHJvcHMiLCJkZXNpcmVkUHJvcGVydGllcyIsInVuZnVybGVkTWVkaWFJdGVtIiwibWVkaWFJdGVtIiwidXJsIiwicHJveHlVcmwiLCJwcm94eV91cmwiLCJoZWlnaHQiLCJ3aWR0aCIsImNvbnRlbnRUeXBlIiwiY29udGVudF90eXBlIiwiYXR0YWNobWVudElkIiwiYXR0YWNobWVudF9pZCIsInNub3dmbGFrZSIsInRyYW5zZm9ybU1lZGlhR2FsbGVyeUl0ZW0iLCJtZWRpYUdhbGxlcnlJdGVtIiwiZ2FsbGVyeUl0ZW0iLCJtZWRpYSIsImRlc2NyaXB0aW9uIiwic3BvaWxlciIsImFjdGlvblJvdyIsImlkIiwiY29tcG9uZW50cyIsIm1hcCIsImNvbnRhaW5lciIsImFjY2VudENvbG9yIiwiYWNjZW50X2NvbG9yIiwiYnV0dG9uIiwibGFiZWwiLCJjdXN0b21JZCIsImN1c3RvbV9pZCIsInN0eWxlIiwiZW1vamkiLCJkaXNhYmxlZCIsInNrdUlkIiwic2t1X2lkIiwiaW5wdXQiLCJyZXF1aXJlZCIsInBsYWNlaG9sZGVyIiwibWluTGVuZ3RoIiwibWluX2xlbmd0aCIsIm1heExlbmd0aCIsIm1heF9sZW5ndGgiLCJ2YWx1ZSIsInNlbGVjdCIsIm1pblZhbHVlcyIsIm1pbl92YWx1ZXMiLCJtYXhWYWx1ZXMiLCJtYXhfdmFsdWVzIiwiZGVmYXVsdFZhbHVlcyIsImRlZmF1bHRfdmFsdWVzIiwiZGVmYXVsdFZhbHVlIiwiY2hhbm5lbFR5cGVzIiwiY2hhbm5lbF90eXBlcyIsIm9wdGlvbnMiLCJvcHRpb24iLCJ1bmRlZmluZWQiLCJuYW1lIiwiYW5pbWF0ZWQiLCJkZWZhdWx0Iiwic2VjdGlvbiIsImFjY2Vzc29yeSIsInRodW1ibmFpbCIsIm1lZGlhR2FsbGVyeSIsIml0ZW1zIiwiaXRlbSIsImZpbGUiLCJzaXplIiwidGV4dERpc3BsYXkiLCJjb250ZW50Iiwic2VwYXJhdG9yIiwiZGl2aWRlciIsInNwYWNpbmciXSwibWFwcGluZ3MiOiJBQUFBLFNBWUVBLHFCQUFxQixRQUNoQixvQkFBbUI7QUFXMUIsT0FBTyxTQUFTQyxtQkFBbUJDLEdBQVEsRUFBRUMsT0FBZ0M7SUFDM0UsSUFBSUM7SUFFSixrSUFBa0k7SUFDbEksT0FBUUQsUUFBUUUsSUFBSTtRQUNsQixLQUFLTCxzQkFBc0JNLFNBQVM7WUFDbENGLFlBQVlHLG1CQUFtQkwsS0FBS0M7WUFDcEM7UUFDRixLQUFLSCxzQkFBc0JRLE1BQU07WUFDL0JK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
@@ -152,6 +152,7 @@ export function transformInteractionDataResolved(bot, payload) {
152
152
  const transformed = {};
153
153
  if (payload.resolved.messages) {
154
154
  transformed.messages = new Collection(Object.entries(payload.resolved.messages).map(([_id, value])=>{
155
+ // @ts-expect-error TODO: Deal with partials
155
156
  const message = bot.transformers.message(bot, {
156
157
  message: value,
157
158
  shardId: payload.shardId
@@ -247,4 +248,4 @@ export function transformInteractionResource(bot, payload) {
247
248
  return bot.transformers.customizers.interactionResource(bot, payload.interactionResource, resource);
248
249
  }
249
250
 
250
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvaW50ZXJhY3Rpb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRGlzY29yZEFwcGxpY2F0aW9uSW50ZWdyYXRpb25UeXBlLFxuICB0eXBlIERpc2NvcmRJbnRlcmFjdGlvbixcbiAgdHlwZSBEaXNjb3JkSW50ZXJhY3Rpb25DYWxsYmFjayxcbiAgdHlwZSBEaXNjb3JkSW50ZXJhY3Rpb25DYWxsYmFja1Jlc3BvbnNlLFxuICB0eXBlIERpc2NvcmRJbnRlcmFjdGlvbkRhdGFPcHRpb24sXG4gIHR5cGUgRGlzY29yZEludGVyYWN0aW9uRGF0YVJlc29sdmVkLFxuICB0eXBlIERpc2NvcmRJbnRlcmFjdGlvblJlc291cmNlLFxuICBJbnRlcmFjdGlvblJlc3BvbnNlVHlwZXMsXG4gIEludGVyYWN0aW9uVHlwZXMsXG4gIE1lc3NhZ2VGbGFncyxcbn0gZnJvbSAnQGRpc2NvcmRlbm8vdHlwZXMnXG5pbXBvcnQgeyBDb2xsZWN0aW9uIH0gZnJvbSAnQGRpc2NvcmRlbm8vdXRpbHMnXG5pbXBvcnQgdHlwZSB7XG4gIEJvdCxcbiAgRGlzY29yZENoYW5uZWwsXG4gIEludGVyYWN0aW9uLFxuICBJbnRlcmFjdGlvbkNhbGxiYWNrLFxuICBJbnRlcmFjdGlvbkNhbGxiYWNrUmVzcG9uc2UsXG4gIEludGVyYWN0aW9uRGF0YU9wdGlvbixcbiAgSW50ZXJhY3Rpb25EYXRhUmVzb2x2ZWQsXG4gIEludGVyYWN0aW9uUmVzb2x2ZWRDaGFubmVsLFxuICBJbnRlcmFjdGlvblJlc291cmNlLFxuICBJbnRlcm5hbEJvdCxcbiAgTWVtYmVyLFxuICBNZXNzYWdlLFxufSBmcm9tICcuLi9pbmRleC5qcydcblxuZXhwb3J0IGNvbnN0IGJhc2VJbnRlcmFjdGlvbjogSW50ZXJuYWxCb3RbJ3RyYW5zZm9ybWVycyddWyckaW5mZXJyZWRUeXBlcyddWydpbnRlcmFjdGlvbiddID0ge1xuICAvLyBUaGlzIGFsbG93cyB0eXBlc2NyaXB0IHRvIHN0aWxsIGNoZWNrIGZvciB0eXBlIGVycm9ycyBvbiBmdW5jdGlvbnMgYmVsb3dcbiAgLi4uKHVuZGVmaW5lZCBhcyB1bmtub3duIGFzIEludGVybmFsQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsnaW50ZXJhY3Rpb24nXSksXG5cbiAgYXN5bmMgcmVzcG9uZChyZXNwb25zZSwgb3B0aW9ucykge1xuICAgIGxldCB0eXBlID0gSW50ZXJhY3Rpb25SZXNwb25zZVR5cGVzLkNoYW5uZWxNZXNzYWdlV2l0aFNvdXJjZVxuXG4gICAgLy8gSWYgdXNlciBwcm92aWRlcyBhIHN0cmluZywgY2hhbmdlIGl0IHRvIGEgcmVzcG9uc2Ugb2JqZWN0XG4gICAgaWYgKHR5cGVvZiByZXNwb25zZSA9PT0gJ3N0cmluZycpIHJlc3BvbnNlID0geyBjb250ZW50OiByZXNwb25zZSB9XG5cbiAgICAvLyBJZiB1c2VyIHByb3ZpZGVzIGFuIG9iamVjdCwgZGV0ZXJtaW5lIGlmIGl0IHNob3VsZCBiZSBhbiBhdXRvY29tcGxldGUgb3IgYSBtb2RhbCByZXNwb25zZVxuICAgIGlmIChyZXNwb25zZS50aXRsZSkgdHlwZSA9IEludGVyYWN0aW9uUmVzcG9uc2VUeXBlcy5Nb2RhbFxuICAgIGlmICh0aGlzLnR5cGUgPT09IEludGVyYWN0aW9uVHlwZXMuQXBwbGljYXRpb25Db21tYW5kQXV0b2NvbXBsZXRlKSB0eXBlID0gSW50ZXJhY3Rpb25SZXNwb25zZVR5cGVzLkFwcGxpY2F0aW9uQ29tbWFuZEF1dG9jb21wbGV0ZVJlc3VsdFxuICAgIGlmICh0eXBlID09PSBJbnRlcmFjdGlvblJlc3BvbnNlVHlwZXMuQ2hhbm5lbE1lc3NhZ2VXaXRoU291cmNlICYmIG9wdGlvbnM/LmlzUHJpdmF0ZSkge1xuICAgICAgcmVzcG9uc2UuZmxhZ3MgPz89IDBcbiAgICAgIHJlc3BvbnNlLmZsYWdzIHw9IE1lc3NhZ2VGbGFncy5FcGhlbWVyYWxcbiAgICB9XG5cbiAgICAvLyBTaW5jZSB0aGlzIGhhcyBhbHJlYWR5IGJlZW4gZ2l2ZW4gYSByZXNwb25zZSwgYW55IGZ1cnRoZXIgcmVzcG9uc2VzIG11c3QgYmUgZm9sbG93dXBzLlxuICAgIGlmICh0aGlzLmFja25vd2xlZGdlZCkgcmV0dXJuIGF3YWl0IHRoaXMuYm90LmhlbHBlcnMuc2VuZEZvbGxvd3VwTWVzc2FnZSh0aGlzLnRva2VuLCByZXNwb25zZSlcblxuICAgIC8vIE1vZGFscyBjYW5ub3QgYmUgY2hhaW5lZFxuICAgIGlmICh0aGlzLnR5cGUgPT09IEludGVyYWN0aW9uVHlwZXMuTW9kYWxTdWJtaXQgJiYgdHlwZSA9PT0gSW50ZXJhY3Rpb25SZXNwb25zZVR5cGVzLk1vZGFsKVxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgcmVzcG9uZCB0byBhIG1vZGFsIGludGVyYWN0aW9uIHdpdGggYW5vdGhlciBtb2RhbC4nKVxuXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5ib3QuaGVscGVycy5zZW5kSW50ZXJhY3Rpb25SZXNwb25zZShcbiAgICAgIHRoaXMuaWQsXG4gICAgICB0aGlzLnRva2VuLFxuICAgICAgeyB0eXBlLCBkYXRhOiByZXNwb25zZSB9LFxuICAgICAgeyB3aXRoUmVzcG9uc2U6IG9wdGlvbnM/LndpdGhSZXNwb25zZSB9LFxuICAgIClcbiAgICB0aGlzLmFja25vd2xlZGdlZCA9IHRydWVcbiAgICByZXR1cm4gcmVzdWx0XG4gIH0sXG4gIGFzeW5jIGVkaXQocmVzcG9uc2UsIG1lc3NhZ2VJZCwgb3B0aW9ucykge1xuICAgIGlmICh0aGlzLnR5cGUgPT09IEludGVyYWN0aW9uVHlwZXMuQXBwbGljYXRpb25Db21tYW5kQXV0b2NvbXBsZXRlKSB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBlZGl0IGFuIGF1dG9jb21wbGV0ZSBpbnRlcmFjdGlvbi4nKVxuXG4gICAgLy8gSWYgdXNlciBwcm92aWRlcyBhIHN0cmluZywgY2hhbmdlIGl0IHRvIGEgcmVzcG9uc2Ugb2JqZWN0XG4gICAgaWYgKHR5cGVvZiByZXNwb25zZSA9PT0gJ3N0cmluZycpIHJlc3BvbnNlID0geyBjb250ZW50OiByZXNwb25zZSB9XG5cbiAgICBpZiAobWVzc2FnZUlkKSB7XG4gICAgICByZXR1cm4gYXdhaXQgdGhpcy5ib3Q/LmhlbHBlcnMuZWRpdEZvbGxvd3VwTWVzc2FnZSh0aGlzLnRva2VuLCBtZXNzYWdlSWQsIHJlc3BvbnNlKVxuICAgIH1cblxuICAgIGlmICghdGhpcy5hY2tub3dsZWRnZWQpIHtcbiAgICAgIGlmICh0aGlzLnR5cGUgIT09IEludGVyYWN0aW9uVHlwZXMuTWVzc2FnZUNvbXBvbmVudCAmJiB0aGlzLnR5cGUgIT09IEludGVyYWN0aW9uVHlwZXMuTW9kYWxTdWJtaXQpXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIlRoaXMgaW50ZXJhY3Rpb24gaGFzIG5vdCBiZWVuIHJlc3BvbmRlZCB0byB5ZXQgYW5kIHRoaXMgaXNuJ3QgYSBNZXNzYWdlQ29tcG9uZW50IG9yIE1vZGFsU3VibWl0IGludGVyYWN0aW9uLlwiKVxuXG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLmJvdC5oZWxwZXJzLnNlbmRJbnRlcmFjdGlvblJlc3BvbnNlKFxuICAgICAgICB0aGlzLmlkLFxuICAgICAgICB0aGlzLnRva2VuLFxuICAgICAgICB7IHR5cGU6IEludGVyYWN0aW9uUmVzcG9uc2VUeXBlcy5VcGRhdGVNZXNzYWdlLCBkYXRhOiByZXNwb25zZSB9LFxuICAgICAgICBvcHRpb25zLFxuICAgICAgKVxuICAgICAgdGhpcy5hY2tub3dsZWRnZWQgPSB0cnVlXG4gICAgICByZXR1cm4gcmVzdWx0XG4gICAgfVxuXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuYm90LmhlbHBlcnMuZWRpdE9yaWdpbmFsSW50ZXJhY3Rpb25SZXNwb25zZSh0aGlzLnRva2VuLCByZXNwb25zZSlcbiAgfSxcbiAgYXN5bmMgZGVmZXJFZGl0KG9wdGlvbnMpIHtcbiAgICBpZiAodGhpcy50eXBlID09PSBJbnRlcmFjdGlvblR5cGVzLkFwcGxpY2F0aW9uQ29tbWFuZEF1dG9jb21wbGV0ZSkgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgZWRpdCBhbiBhdXRvY29tcGxldGUgaW50ZXJhY3Rpb24uJylcbiAgICBpZiAodGhpcy5hY2tub3dsZWRnZWQpIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGRlZmVyIGFuIGFscmVhZHkgcmVzcG9uZGVkIGludGVyYWN0aW9uLicpXG5cbiAgICBpZiAodGhpcy50eXBlICE9PSBJbnRlcmFjdGlvblR5cGVzLk1lc3NhZ2VDb21wb25lbnQgJiYgdGhpcy50eXBlICE9PSBJbnRlcmFjdGlvblR5cGVzLk1vZGFsU3VibWl0KVxuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQ2Fubm90IGRlZmVyIHRvIHRoZW4gZWRpdCBhbiBpbnRlcmFjdGlvbiB0aGF0IGlzbid0IGEgTWVzc2FnZUNvbXBvbmVudCBvciBNb2RhbFN1Ym1pdCBpbnRlcmFjdGlvbi5cIilcblxuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuYm90LmhlbHBlcnMuc2VuZEludGVyYWN0aW9uUmVzcG9uc2UoXG4gICAgICB0aGlzLmlkLFxuICAgICAgdGhpcy50b2tlbixcbiAgICAgIHsgdHlwZTogSW50ZXJhY3Rpb25SZXNwb25zZVR5cGVzLkRlZmVycmVkVXBkYXRlTWVzc2FnZSB9LFxuICAgICAgb3B0aW9ucyxcbiAgICApXG4gICAgdGhpcy5hY2tub3dsZWRnZWQgPSB0cnVlXG4gICAgcmV0dXJuIHJlc3VsdFxuICB9LFxuICBhc3luYyBkZWZlcihpc1ByaXZhdGUsIG9wdGlvbnMpIHtcbiAgICBpZiAodGhpcy5hY2tub3dsZWRnZWQpIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGRlZmVyIGFuIGFscmVhZHkgcmVzcG9uZGVkIGludGVyYWN0aW9uLicpXG5cbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLmJvdC5oZWxwZXJzLnNlbmRJbnRlcmFjdGlvblJlc3BvbnNlKFxuICAgICAgdGhpcy5pZCxcbiAgICAgIHRoaXMudG9rZW4sXG4gICAgICB7XG4gICAgICAgIHR5cGU6IEludGVyYWN0aW9uUmVzcG9uc2VUeXBlcy5EZWZlcnJlZENoYW5uZWxNZXNzYWdlV2l0aFNvdXJjZSxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIGZsYWdzOiBpc1ByaXZhdGUgPyBNZXNzYWdlRmxhZ3MuRXBoZW1lcmFsIDogdW5kZWZpbmVkLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIG9wdGlvbnMsXG4gICAgKVxuICAgIHRoaXMuYWNrbm93bGVkZ2VkID0gdHJ1ZVxuICAgIHJldHVybiByZXN1bHRcbiAgfSxcbiAgYXN5bmMgZGVsZXRlKG1lc3NhZ2VJZCkge1xuICAgIGlmICh0aGlzLnR5cGUgPT09IEludGVyYWN0aW9uVHlwZXMuQXBwbGljYXRpb25Db21tYW5kQXV0b2NvbXBsZXRlKSB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBkZWxldGUgYW4gYXV0b2NvbXBsZXRlIGludGVyYWN0aW9uJylcblxuICAgIGlmIChtZXNzYWdlSWQpIHJldHVybiBhd2FpdCB0aGlzLmJvdD8uaGVscGVycy5kZWxldGVGb2xsb3d1cE1lc3NhZ2UodGhpcy50b2tlbiwgbWVzc2FnZUlkKVxuICAgIGVsc2UgcmV0dXJuIGF3YWl0IHRoaXMuYm90Py5oZWxwZXJzLmRlbGV0ZU9yaWdpbmFsSW50ZXJhY3Rpb25SZXNwb25zZSh0aGlzLnRva2VuKVxuICB9LFxufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtSW50ZXJhY3Rpb24oXG4gIGJvdDogSW50ZXJuYWxCb3QsXG4gIHBheWxvYWQ6IHsgaW50ZXJhY3Rpb246IERpc2NvcmRJbnRlcmFjdGlvbjsgc2hhcmRJZDogbnVtYmVyIH0sXG4pOiB0eXBlb2YgYm90LnRyYW5zZm9ybWVycy4kaW5mZXJyZWRUeXBlcy5pbnRlcmFjdGlvbiB7XG4gIGNvbnN0IGd1aWxkSWQgPSBwYXlsb2FkLmludGVyYWN0aW9uLmd1aWxkX2lkID8gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5pbnRlcmFjdGlvbi5ndWlsZF9pZCkgOiB1bmRlZmluZWRcbiAgY29uc3QgdXNlciA9IGJvdC50cmFuc2Zvcm1lcnMudXNlcihib3QsIHBheWxvYWQuaW50ZXJhY3Rpb24ubWVtYmVyPy51c2VyID8/IHBheWxvYWQuaW50ZXJhY3Rpb24udXNlciEpXG5cbiAgY29uc3QgaW50ZXJhY3Rpb246IEludGVyYWN0aW9uID0gT2JqZWN0LmNyZWF0ZShiYXNlSW50ZXJhY3Rpb24pXG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5pbnRlcmFjdGlvblxuICAvLyBUeXBlc2NyaXB0IGhhcyBhbiBoYXJkIHRpbWUgd2l0aCB0aGlzLCBzbyB3ZSBuZWVkIHRvIHRlbGwgaGltIGZvciBzdXJlIHRoaXMgaXMgYSBCb3RcbiAgaW50ZXJhY3Rpb24uYm90ID0gYm90IGFzIHVua25vd24gYXMgQm90XG4gIGludGVyYWN0aW9uLmFja25vd2xlZGdlZCA9IGZhbHNlXG5cbiAgaWYgKHByb3BzLmlkICYmIHBheWxvYWQuaW50ZXJhY3Rpb24uaWQpIGludGVyYWN0aW9uLmlkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5pbnRlcmFjdGlvbi5pZClcbiAgaWYgKHByb3BzLmFwcGxpY2F0aW9uSWQgJiYgcGF5bG9hZC5pbnRlcmFjdGlvbi5hcHBsaWNhdGlvbl9pZClcbiAgICBpbnRlcmFjdGlvbi5hcHBsaWNhdGlvbklkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5pbnRlcmFjdGlvbi5hcHBsaWNhdGlvbl9pZClcbiAgaWYgKHByb3BzLnR5cGUgJiYgcGF5bG9hZC5pbnRlcmFjdGlvbi50eXBlKSBpbnRlcmFjdGlvbi50eXBlID0gcGF5bG9hZC5pbnRlcmFjdGlvbi50eXBlXG4gIGlmIChwcm9wcy50b2tlbiAmJiBwYXlsb2FkLmludGVyYWN0aW9uLnRva2VuKSBpbnRlcmFjdGlvbi50b2tlbiA9IHBheWxvYWQuaW50ZXJhY3Rpb24udG9rZW5cbiAgaWYgKHByb3BzLnZlcnNpb24gJiYgcGF5bG9hZC5pbnRlcmFjdGlvbi52ZXJzaW9uKSBpbnRlcmFjdGlvbi52ZXJzaW9uID0gcGF5bG9hZC5pbnRlcmFjdGlvbi52ZXJzaW9uXG4gIGlmIChwcm9wcy5sb2NhbGUgJiYgcGF5bG9hZC5pbnRlcmFjdGlvbi5sb2NhbGUpIGludGVyYWN0aW9uLmxvY2FsZSA9IHBheWxvYWQuaW50ZXJhY3Rpb24ubG9jYWxlXG4gIGlmIChwcm9wcy5ndWlsZExvY2FsZSAmJiBwYXlsb2FkLmludGVyYWN0aW9uLmd1aWxkX2xvY2FsZSkgaW50ZXJhY3Rpb24uZ3VpbGRMb2NhbGUgPSBwYXlsb2FkLmludGVyYWN0aW9uLmd1aWxkX2xvY2FsZVxuICBpZiAocHJvcHMuZ3VpbGQgJiYgcGF5bG9hZC5pbnRlcmFjdGlvbi5ndWlsZClcbiAgICAvLyBAdHMtZXhwZWN0LWVycm9yIHBheWxvYWQuaW50ZXJhY3Rpb24uZ3VpbGQgaXMgYSBQYXJ0aWFsPERpc2NvcmRHdWlsZD5cbiAgICBpbnRlcmFjdGlvbi5ndWlsZCA9IGJvdC50cmFuc2Zvcm1lcnMuZ3VpbGQoYm90LCB7IGd1aWxkOiBwYXlsb2FkLmludGVyYWN0aW9uLmd1aWxkLCBzaGFyZElkOiBwYXlsb2FkLnNoYXJkSWQgfSlcbiAgaWYgKHByb3BzLmd1aWxkSWQgJiYgZ3VpbGRJZCkgaW50ZXJhY3Rpb24uZ3VpbGRJZCA9IGd1aWxkSWRcbiAgaWYgKHByb3BzLnVzZXIgJiYgdXNlcikgaW50ZXJhY3Rpb24udXNlciA9IHVzZXJcbiAgaWYgKHByb3BzLmFwcFBlcm1pc3Npb25zICYmIHBheWxvYWQuaW50ZXJhY3Rpb24uYXBwX3Blcm1pc3Npb25zKVxuICAgIGludGVyYWN0aW9uLmFwcFBlcm1pc3Npb25zID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5pbnRlcmFjdGlvbi5hcHBfcGVybWlzc2lvbnMpXG4gIGlmIChwcm9wcy5tZXNzYWdlICYmIHBheWxvYWQuaW50ZXJhY3Rpb24ubWVzc2FnZSlcbiAgICBpbnRlcmFjdGlvbi5tZXNzYWdlID0gYm90LnRyYW5zZm9ybWVycy5tZXNzYWdlKGJvdCwgeyBtZXNzYWdlOiBwYXlsb2FkLmludGVyYWN0aW9uLm1lc3NhZ2UsIHNoYXJkSWQ6IDAgfSlcbiAgaWYgKHByb3BzLmNoYW5uZWwgJiYgcGF5bG9hZC5pbnRlcmFjdGlvbi5jaGFubmVsKVxuICAgIGludGVyYWN0aW9uLmNoYW5uZWwgPSBib3QudHJhbnNmb3JtZXJzLmNoYW5uZWwoYm90LCB7IGNoYW5uZWw6IHBheWxvYWQuaW50ZXJhY3Rpb24uY2hhbm5lbCBhcyBEaXNjb3JkQ2hhbm5lbCwgZ3VpbGRJZCB9KVxuICBpZiAocHJvcHMuY2hhbm5lbElkICYmIHBheWxvYWQuaW50ZXJhY3Rpb24uY2hhbm5lbF9pZCkgaW50ZXJhY3Rpb24uY2hhbm5lbElkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5pbnRlcmFjdGlvbi5jaGFubmVsX2lkKVxuICBpZiAocHJvcHMubWVtYmVyICYmIGd1aWxkSWQgJiYgcGF5bG9hZC5pbnRlcmFjdGlvbi5tZW1iZXIpXG4gICAgaW50ZXJhY3Rpb24ubWVtYmVyID0gYm90LnRyYW5zZm9ybWVycy5tZW1iZXIoYm90LCBwYXlsb2FkLmludGVyYWN0aW9uLm1lbWJlciwgZ3VpbGRJZCwgdXNlci5pZClcbiAgaWYgKHByb3BzLmVudGl0bGVtZW50cyAmJiBwYXlsb2FkLmludGVyYWN0aW9uLmVudGl0bGVtZW50cylcbiAgICBpbnRlcmFjdGlvbi5lbnRpdGxlbWVudHMgPSBwYXlsb2FkLmludGVyYWN0aW9uLmVudGl0bGVtZW50cy5tYXAoKGUpID0+IGJvdC50cmFuc2Zvcm1lcnMuZW50aXRsZW1lbnQoYm90LCBlKSlcbiAgaWYgKHByb3BzLmF1dGhvcml6aW5nSW50ZWdyYXRpb25Pd25lcnMgJiYgcGF5bG9hZC5pbnRlcmFjdGlvbi5hdXRob3JpemluZ19pbnRlZ3JhdGlvbl9vd25lcnMpIHtcbiAgICBpbnRlcmFjdGlvbi5hdXRob3JpemluZ0ludGVncmF0aW9uT3duZXJzID0ge31cblxuICAgIGlmIChwYXlsb2FkLmludGVyYWN0aW9uLmF1dGhvcml6aW5nX2ludGVncmF0aW9uX293bmVyc1snMCddKVxuICAgICAgaW50ZXJhY3Rpb24uYXV0aG9yaXppbmdJbnRlZ3JhdGlvbk93bmVyc1tEaXNjb3JkQXBwbGljYXRpb25JbnRlZ3JhdGlvblR5cGUuR3VpbGRJbnN0YWxsXSA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKFxuICAgICAgICBwYXlsb2FkLmludGVyYWN0aW9uLmF1dGhvcml6aW5nX2ludGVncmF0aW9uX293bmVyc1snMCddLFxuICAgICAgKVxuICAgIGlmIChwYXlsb2FkLmludGVyYWN0aW9uLmF1dGhvcml6aW5nX2ludGVncmF0aW9uX293bmVyc1snMSddKVxuICAgICAgaW50ZXJhY3Rpb24uYXV0aG9yaXppbmdJbnRlZ3JhdGlvbk93bmVyc1tEaXNjb3JkQXBwbGljYXRpb25JbnRlZ3JhdGlvblR5cGUuVXNlckluc3RhbGxdID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UoXG4gICAgICAgIHBheWxvYWQuaW50ZXJhY3Rpb24uYXV0aG9yaXppbmdfaW50ZWdyYXRpb25fb3duZXJzWycxJ10sXG4gICAgICApXG4gIH1cbiAgaWYgKHByb3BzLmNvbnRleHQgJiYgcGF5bG9hZC5pbnRlcmFjdGlvbi5jb250ZXh0KSBpbnRlcmFjdGlvbi5jb250ZXh0ID0gcGF5bG9hZC5pbnRlcmFjdGlvbi5jb250ZXh0XG4gIGlmIChwcm9wcy5hdHRhY2htZW50U2l6ZUxpbWl0ICYmIHBheWxvYWQuaW50ZXJhY3Rpb24uYXR0YWNobWVudF9zaXplX2xpbWl0KVxuICAgIGludGVyYWN0aW9uLmF0dGFjaG1lbnRTaXplTGltaXQgPSBwYXlsb2FkLmludGVyYWN0aW9uLmF0dGFjaG1lbnRfc2l6ZV9saW1pdFxuICBpZiAocHJvcHMuZGF0YSAmJiBwYXlsb2FkLmludGVyYWN0aW9uLmRhdGEpIHtcbiAgICBpbnRlcmFjdGlvbi5kYXRhID0ge1xuICAgICAgdHlwZTogcGF5bG9hZC5pbnRlcmFjdGlvbi5kYXRhLnR5cGUsXG4gICAgICBjb21wb25lbnRUeXBlOiBwYXlsb2FkLmludGVyYWN0aW9uLmRhdGEuY29tcG9uZW50X3R5cGUsXG4gICAgICBjdXN0b21JZDogcGF5bG9hZC5pbnRlcmFjdGlvbi5kYXRhLmN1c3RvbV9pZCxcbiAgICAgIGNvbXBvbmVudHM6IHBheWxvYWQuaW50ZXJhY3Rpb24uZGF0YS5jb21wb25lbnRzPy5tYXAoKGNvbXBvbmVudCkgPT4gYm90LnRyYW5zZm9ybWVycy5jb21wb25lbnQoYm90LCBjb21wb25lbnQpKSxcbiAgICAgIHZhbHVlczogcGF5bG9hZC5pbnRlcmFjdGlvbi5kYXRhLnZhbHVlcyxcbiAgICAgIGlkOiBwYXlsb2FkLmludGVyYWN0aW9uLmRhdGEuaWQgPyBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmludGVyYWN0aW9uLmRhdGEuaWQpIDogdW5kZWZpbmVkLFxuICAgICAgbmFtZTogcGF5bG9hZC5pbnRlcmFjdGlvbi5kYXRhLm5hbWUsXG4gICAgICByZXNvbHZlZDogcGF5bG9hZC5pbnRlcmFjdGlvbi5kYXRhLnJlc29sdmVkXG4gICAgICAgID8gYm90LnRyYW5zZm9ybWVycy5pbnRlcmFjdGlvbkRhdGFSZXNvbHZlZChib3QsIHsgcmVzb2x2ZWQ6IHBheWxvYWQuaW50ZXJhY3Rpb24uZGF0YS5yZXNvbHZlZCwgc2hhcmRJZDogcGF5bG9hZC5zaGFyZElkLCBndWlsZElkIH0pXG4gICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgb3B0aW9uczogcGF5bG9hZC5pbnRlcmFjdGlvbi5kYXRhLm9wdGlvbnM/Lm1hcCgob3B0KSA9PiBib3QudHJhbnNmb3JtZXJzLmludGVyYWN0aW9uRGF0YU9wdGlvbnMoYm90LCBvcHQpKSxcbiAgICAgIHRhcmdldElkOiBwYXlsb2FkLmludGVyYWN0aW9uLmRhdGEudGFyZ2V0X2lkID8gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5pbnRlcmFjdGlvbi5kYXRhLnRhcmdldF9pZCkgOiB1bmRlZmluZWQsXG4gICAgfVxuICB9XG5cbiAgLy8gVHlwZXNjcmlwdCBoYXMgYW4gaGFyZCB0aW1lIHdpdGggaW50ZXJhY3Rpb24uYm90LCBzbyB3ZSBuZWVkIHRvIHRlbGwgaGltIGZvciBzdXJlIHRoaXMgaW50ZXJhY3Rpb24gaXMgdGhlIG9mIHRoZSBjb3JyZWN0IHR5cGVcbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMuaW50ZXJhY3Rpb24oYm90LCBwYXlsb2FkLCBpbnRlcmFjdGlvbiBhcyB1bmtub3duIGFzIHR5cGVvZiBib3QudHJhbnNmb3JtZXJzLiRpbmZlcnJlZFR5cGVzLmludGVyYWN0aW9uKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtSW50ZXJhY3Rpb25EYXRhT3B0aW9uKGJvdDogQm90LCBvcHRpb246IERpc2NvcmRJbnRlcmFjdGlvbkRhdGFPcHRpb24pOiBJbnRlcmFjdGlvbkRhdGFPcHRpb24ge1xuICBjb25zdCBvcHQgPSB7XG4gICAgbmFtZTogb3B0aW9uLm5hbWUsXG4gICAgdHlwZTogb3B0aW9uLnR5cGUsXG4gICAgdmFsdWU6IG9wdGlvbi52YWx1ZSxcbiAgICBvcHRpb25zOiBvcHRpb24ub3B0aW9ucyxcbiAgICBmb2N1c2VkOiBvcHRpb24uZm9jdXNlZCxcbiAgfSBhcyBJbnRlcmFjdGlvbkRhdGFPcHRpb25cblxuICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jdXN0b21pemVycy5pbnRlcmFjdGlvbkRhdGFPcHRpb25zKGJvdCwgb3B0aW9uLCBvcHQpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1JbnRlcmFjdGlvbkRhdGFSZXNvbHZlZChcbiAgYm90OiBJbnRlcm5hbEJvdCxcbiAgcGF5bG9hZDogeyByZXNvbHZlZDogRGlzY29yZEludGVyYWN0aW9uRGF0YVJlc29sdmVkOyBzaGFyZElkOiBudW1iZXI7IGd1aWxkSWQ/OiBiaWdpbnQgfSxcbik6IEludGVyYWN0aW9uRGF0YVJlc29sdmVkIHtcbiAgY29uc3QgdHJhbnNmb3JtZWQ6IEludGVyYWN0aW9uRGF0YVJlc29sdmVkID0ge31cblxuICBpZiAocGF5bG9hZC5yZXNvbHZlZC5tZXNzYWdlcykge1xuICAgIHRyYW5zZm9ybWVkLm1lc3NhZ2VzID0gbmV3IENvbGxlY3Rpb24oXG4gICAgICBPYmplY3QuZW50cmllcyhwYXlsb2FkLnJlc29sdmVkLm1lc3NhZ2VzKS5tYXAoKFtfaWQsIHZhbHVlXSkgPT4ge1xuICAgICAgICBjb25zdCBtZXNzYWdlOiBNZXNzYWdlID0gYm90LnRyYW5zZm9ybWVycy5tZXNzYWdlKGJvdCwgeyBtZXNzYWdlOiB2YWx1ZSwgc2hhcmRJZDogcGF5bG9hZC5zaGFyZElkIH0pXG4gICAgICAgIHJldHVybiBbbWVzc2FnZS5pZCwgbWVzc2FnZV1cbiAgICAgIH0pLFxuICAgIClcbiAgfVxuXG4gIGlmIChwYXlsb2FkLnJlc29sdmVkLnVzZXJzKSB7XG4gICAgdHJhbnNmb3JtZWQudXNlcnMgPSBuZXcgQ29sbGVjdGlvbihcbiAgICAgIE9iamVjdC5lbnRyaWVzKHBheWxvYWQucmVzb2x2ZWQudXNlcnMpLm1hcCgoW19pZCwgdmFsdWVdKSA9PiB7XG4gICAgICAgIGNvbnN0IHVzZXIgPSBib3QudHJhbnNmb3JtZXJzLnVzZXIoYm90LCB2YWx1ZSlcbiAgICAgICAgcmV0dXJuIFt1c2VyLmlkLCB1c2VyXVxuICAgICAgfSksXG4gICAgKVxuICB9XG5cbiAgaWYgKHBheWxvYWQuZ3VpbGRJZCAmJiBwYXlsb2FkLnJlc29sdmVkLm1lbWJlcnMpIHtcbiAgICB0cmFuc2Zvcm1lZC5tZW1iZXJzID0gbmV3IENvbGxlY3Rpb24oXG4gICAgICBPYmplY3QuZW50cmllcyhwYXlsb2FkLnJlc29sdmVkLm1lbWJlcnMpLm1hcCgoW2lkLCB2YWx1ZV0pID0+IHtcbiAgICAgICAgY29uc3QgbWVtYmVyOiBNZW1iZXIgPSBib3QudHJhbnNmb3JtZXJzLm1lbWJlcihib3QsIHZhbHVlLCBwYXlsb2FkLmd1aWxkSWQhLCBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShpZCkpXG4gICAgICAgIHJldHVybiBbbWVtYmVyLmlkLCBtZW1iZXJdXG4gICAgICB9KSxcbiAgICApXG4gIH1cblxuICBpZiAocGF5bG9hZC5ndWlsZElkICYmIHBheWxvYWQucmVzb2x2ZWQucm9sZXMpIHtcbiAgICB0cmFuc2Zvcm1lZC5yb2xlcyA9IG5ldyBDb2xsZWN0aW9uKFxuICAgICAgT2JqZWN0LmVudHJpZXMocGF5bG9hZC5yZXNvbHZlZC5yb2xlcykubWFwKChbX2lkLCB2YWx1ZV0pID0+IHtcbiAgICAgICAgY29uc3Qgcm9sZSA9IGJvdC50cmFuc2Zvcm1lcnMucm9sZShib3QsIHsgcm9sZTogdmFsdWUsIGd1aWxkSWQ6IHBheWxvYWQuZ3VpbGRJZCEgfSlcbiAgICAgICAgcmV0dXJuIFtyb2xlLmlkLCByb2xlXVxuICAgICAgfSksXG4gICAgKVxuICB9XG5cbiAgaWYgKHBheWxvYWQucmVzb2x2ZWQuY2hhbm5lbHMpIHtcbiAgICB0cmFuc2Zvcm1lZC5jaGFubmVscyA9IG5ldyBDb2xsZWN0aW9uKFxuICAgICAgT2JqZWN0LmVudHJpZXMocGF5bG9hZC5yZXNvbHZlZC5jaGFubmVscykubWFwKChbX2lkLCB2YWx1ZV0pID0+IHtcbiAgICAgICAgY29uc3QgY2hhbm5lbCA9IGJvdC50cmFuc2Zvcm1lcnMuY2hhbm5lbChib3QsIHsgY2hhbm5lbDogdmFsdWUgfSkgYXMgSW50ZXJhY3Rpb25SZXNvbHZlZENoYW5uZWxcbiAgICAgICAgcmV0dXJuIFtjaGFubmVsLmlkLCBjaGFubmVsXVxuICAgICAgfSksXG4gICAgKVxuICB9XG5cbiAgaWYgKHBheWxvYWQucmVzb2x2ZWQuYXR0YWNobWVudHMpIHtcbiAgICB0cmFuc2Zvcm1lZC5hdHRhY2htZW50cyA9IG5ldyBDb2xsZWN0aW9uKFxuICAgICAgT2JqZWN0LmVudHJpZXMocGF5bG9hZC5yZXNvbHZlZC5hdHRhY2htZW50cykubWFwKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgICAgY29uc3QgaWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShrZXkpXG4gICAgICAgIHJldHVybiBbaWQsIGJvdC50cmFuc2Zvcm1lcnMuYXR0YWNobWVudChib3QsIHZhbHVlKV1cbiAgICAgIH0pLFxuICAgIClcbiAgfVxuXG4gIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmN1c3RvbWl6ZXJzLmludGVyYWN0aW9uRGF0YVJlc29sdmVkKGJvdCwgcGF5bG9hZCwgdHJhbnNmb3JtZWQpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1JbnRlcmFjdGlvbkNhbGxiYWNrUmVzcG9uc2UoXG4gIGJvdDogSW50ZXJuYWxCb3QsXG4gIHBheWxvYWQ6IHsgaW50ZXJhY3Rpb25DYWxsYmFja1Jlc3BvbnNlOiBEaXNjb3JkSW50ZXJhY3Rpb25DYWxsYmFja1Jlc3BvbnNlOyBzaGFyZElkOiBudW1iZXIgfSxcbik6IHR5cGVvZiBib3QudHJhbnNmb3JtZXJzLiRpbmZlcnJlZFR5cGVzLmludGVyYWN0aW9uQ2FsbGJhY2tSZXNwb25zZSB7XG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5pbnRlcmFjdGlvbkNhbGxiYWNrUmVzcG9uc2VcbiAgY29uc3QgcmVzcG9uc2UgPSB7fSBhcyBJbnRlcmFjdGlvbkNhbGxiYWNrUmVzcG9uc2VcblxuICBpZiAocHJvcHMuaW50ZXJhY3Rpb24gJiYgcGF5bG9hZC5pbnRlcmFjdGlvbkNhbGxiYWNrUmVzcG9uc2UuaW50ZXJhY3Rpb24pXG4gICAgcmVzcG9uc2UuaW50ZXJhY3Rpb24gPSBib3QudHJhbnNmb3JtZXJzLmludGVyYWN0aW9uQ2FsbGJhY2soYm90LCBwYXlsb2FkLmludGVyYWN0aW9uQ2FsbGJhY2tSZXNwb25zZS5pbnRlcmFjdGlvbilcbiAgaWYgKHByb3BzLnJlc291cmNlICYmIHBheWxvYWQuaW50ZXJhY3Rpb25DYWxsYmFja1Jlc3BvbnNlLnJlc291cmNlKVxuICAgIHJlc3BvbnNlLnJlc291cmNlID0gYm90LnRyYW5zZm9ybWVycy5pbnRlcmFjdGlvblJlc291cmNlKGJvdCwge1xuICAgICAgaW50ZXJhY3Rpb25SZXNvdXJjZTogcGF5bG9hZC5pbnRlcmFjdGlvbkNhbGxiYWNrUmVzcG9uc2UucmVzb3VyY2UsXG4gICAgICBzaGFyZElkOiBwYXlsb2FkLnNoYXJkSWQsXG4gICAgfSlcblxuICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jdXN0b21pemVycy5pbnRlcmFjdGlvbkNhbGxiYWNrUmVzcG9uc2UoYm90LCBwYXlsb2FkLmludGVyYWN0aW9uQ2FsbGJhY2tSZXNwb25zZSwgcmVzcG9uc2UpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1JbnRlcmFjdGlvbkNhbGxiYWNrKFxuICBib3Q6IEludGVybmFsQm90LFxuICBwYXlsb2FkOiBEaXNjb3JkSW50ZXJhY3Rpb25DYWxsYmFjayxcbik6IHR5cGVvZiBib3QudHJhbnNmb3JtZXJzLiRpbmZlcnJlZFR5cGVzLmludGVyYWN0aW9uQ2FsbGJhY2sge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuaW50ZXJhY3Rpb25DYWxsYmFja1xuICBjb25zdCBjYWxsYmFjayA9IHt9IGFzIEludGVyYWN0aW9uQ2FsbGJhY2tcblxuICBpZiAocHJvcHMuaWQgJiYgcGF5bG9hZC5pZCkgY2FsbGJhY2suaWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmlkKVxuICBpZiAocHJvcHMudHlwZSAmJiBwYXlsb2FkLnR5cGUpIGNhbGxiYWNrLnR5cGUgPSBwYXlsb2FkLnR5cGVcbiAgaWYgKHByb3BzLmFjdGl2aXR5SW5zdGFuY2VJZCAmJiBwYXlsb2FkLmFjdGl2aXR5X2luc3RhbmNlX2lkKSBjYWxsYmFjay5hY3Rpdml0eUluc3RhbmNlSWQgPSBwYXlsb2FkLmFjdGl2aXR5X2luc3RhbmNlX2lkXG4gIGlmIChwcm9wcy5yZXNwb25zZU1lc3NhZ2VJZCAmJiBwYXlsb2FkLnJlc3BvbnNlX21lc3NhZ2VfaWQpIGNhbGxiYWNrLnJlc3BvbnNlTWVzc2FnZUlkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5yZXNwb25zZV9tZXNzYWdlX2lkKVxuICBpZiAocHJvcHMucmVzcG9uc2VNZXNzYWdlRXBoZW1lcmFsICYmIHBheWxvYWQucmVzcG9uc2VfbWVzc2FnZV9lcGhlbWVyYWwpIGNhbGxiYWNrLnJlc3BvbnNlTWVzc2FnZUVwaGVtZXJhbCA9IHBheWxvYWQucmVzcG9uc2VfbWVzc2FnZV9lcGhlbWVyYWxcbiAgaWYgKHByb3BzLnJlc3BvbnNlTWVzc2FnZUxvYWRpbmcgJiYgcGF5bG9hZC5yZXNwb25zZV9tZXNzYWdlX2xvYWRpbmcpIGNhbGxiYWNrLnJlc3BvbnNlTWVzc2FnZUxvYWRpbmcgPSBwYXlsb2FkLnJlc3BvbnNlX21lc3NhZ2VfbG9hZGluZ1xuXG4gIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmN1c3RvbWl6ZXJzLmludGVyYWN0aW9uQ2FsbGJhY2soYm90LCBwYXlsb2FkLCBjYWxsYmFjaylcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybUludGVyYWN0aW9uUmVzb3VyY2UoXG4gIGJvdDogSW50ZXJuYWxCb3QsXG4gIHBheWxvYWQ6IHsgaW50ZXJhY3Rpb25SZXNvdXJjZTogRGlzY29yZEludGVyYWN0aW9uUmVzb3VyY2U7IHNoYXJkSWQ6IG51bWJlciB9LFxuKTogdHlwZW9mIGJvdC50cmFuc2Zvcm1lcnMuJGluZmVycmVkVHlwZXMuaW50ZXJhY3Rpb25SZXNvdXJjZSB7XG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5pbnRlcmFjdGlvblJlc291cmNlXG4gIGNvbnN0IHJlc291cmNlID0ge30gYXMgSW50ZXJhY3Rpb25SZXNvdXJjZVxuXG4gIGlmIChwcm9wcy50eXBlICYmIHBheWxvYWQuaW50ZXJhY3Rpb25SZXNvdXJjZS50eXBlKSByZXNvdXJjZS50eXBlID0gcGF5bG9hZC5pbnRlcmFjdGlvblJlc291cmNlLnR5cGVcbiAgaWYgKHByb3BzLmFjdGl2aXR5SW5zdGFuY2UgJiYgcGF5bG9hZC5pbnRlcmFjdGlvblJlc291cmNlLmFjdGl2aXR5X2luc3RhbmNlKVxuICAgIHJlc291cmNlLmFjdGl2aXR5SW5zdGFuY2UgPSBwYXlsb2FkLmludGVyYWN0aW9uUmVzb3VyY2UuYWN0aXZpdHlfaW5zdGFuY2VcbiAgaWYgKHByb3BzLm1lc3NhZ2UgJiYgcGF5bG9hZC5pbnRlcmFjdGlvblJlc291cmNlLm1lc3NhZ2UpXG4gICAgcmVzb3VyY2UubWVzc2FnZSA9IGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZShib3QsIHsgbWVzc2FnZTogcGF5bG9hZC5pbnRlcmFjdGlvblJlc291cmNlLm1lc3NhZ2UsIHNoYXJkSWQ6IHBheWxvYWQuc2hhcmRJZCB9KVxuXG4gIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmN1c3RvbWl6ZXJzLmludGVyYWN0aW9uUmVzb3VyY2UoYm90LCBwYXlsb2FkLmludGVyYWN0aW9uUmVzb3VyY2UsIHJlc291cmNlKVxufVxuIl0sIm5hbWVzIjpbIkRpc2NvcmRBcHBsaWNhdGlvbkludGVncmF0aW9uVHlwZSIsIkludGVyYWN0aW9uUmVzcG9uc2VUeXBlcyIsIkludGVyYWN0aW9uVHlwZXMiLCJNZXNzYWdlRmxhZ3MiLCJDb2xsZWN0aW9uIiwiYmFzZUludGVyYWN0aW9uIiwidW5kZWZpbmVkIiwicmVzcG9uZCIsInJlc3BvbnNlIiwib3B0aW9ucyIsInR5cGUiLCJDaGFubmVsTWVzc2FnZVdpdGhTb3VyY2UiLCJjb250ZW50IiwidGl0bGUiLCJNb2RhbCIsIkFwcGxpY2F0aW9uQ29tbWFuZEF1dG9jb21wbGV0ZSIsIkFwcGxpY2F0aW9uQ29tbWFuZEF1dG9jb21wbGV0ZVJlc3VsdCIsImlzUHJpdmF0ZSIsImZsYWdzIiwiRXBoZW1lcmFsIiwiYWNrbm93bGVkZ2VkIiwiYm90IiwiaGVscGVycyIsInNlbmRGb2xsb3d1cE1lc3NhZ2UiLCJ0b2tlbiIsIk1vZGFsU3VibWl0IiwiRXJyb3IiLCJyZXN1bHQiLCJzZW5kSW50ZXJhY3Rpb25SZXNwb25zZSIsImlkIiwiZGF0YSIsIndpdGhSZXNwb25zZSIsImVkaXQiLCJtZXNzYWdlSWQiLCJlZGl0Rm9sbG93dXBNZXNzYWdlIiwiTWVzc2FnZUNvbXBvbmVudCIsIlVwZGF0ZU1lc3NhZ2UiLCJlZGl0T3JpZ2luYWxJbnRlcmFjdGlvblJlc3BvbnNlIiwiZGVmZXJFZGl0IiwiRGVmZXJyZWRVcGRhdGVNZXNzYWdlIiwiZGVmZXIiLCJEZWZlcnJlZENoYW5uZWxNZXNzYWdlV2l0aFNvdXJjZSIsImRlbGV0ZSIsImRlbGV0ZUZvbGxvd3VwTWVzc2FnZSIsImRlbGV0ZU9yaWdpbmFsSW50ZXJhY3Rpb25SZXNwb25zZSIsInRyYW5zZm9ybUludGVyYWN0aW9uIiwicGF5bG9hZCIsImd1aWxkSWQiLCJpbnRlcmFjdGlvbiIsImd1aWxkX2lkIiwidHJhbnNmb3JtZXJzIiwic25vd2ZsYWtlIiwidXNlciIsIm1lbWJlciIsIk9iamVjdCIsImNyZWF0ZSIsInByb3BzIiwiZGVzaXJlZFByb3BlcnRpZXMiLCJhcHBsaWNhdGlvbklkIiwiYXBwbGljYXRpb25faWQiLCJ2ZXJzaW9uIiwibG9jYWxlIiwiZ3VpbGRMb2NhbGUiLCJndWlsZF9sb2NhbGUiLCJndWlsZCIsInNoYXJkSWQiLCJhcHBQZXJtaXNzaW9ucyIsImFwcF9wZXJtaXNzaW9ucyIsIm1lc3NhZ2UiLCJjaGFubmVsIiwiY2hhbm5lbElkIiwiY2hhbm5lbF9pZCIsImVudGl0bGVtZW50cyIsIm1hcCIsImUiLCJlbnRpdGxlbWVudCIsImF1dGhvcml6aW5nSW50ZWdyYXRpb25Pd25lcnMiLCJhdXRob3JpemluZ19pbnRlZ3JhdGlvbl9vd25lcnMiLCJHdWlsZEluc3RhbGwiLCJVc2VySW5zdGFsbCIsImNvbnRleHQiLCJhdHRhY2htZW50U2l6ZUxpbWl0IiwiYXR0YWNobWVudF9zaXplX2xpbWl0IiwiY29tcG9uZW50VHlwZSIsImNvbXBvbmVudF90eXBlIiwiY3VzdG9tSWQiLCJjdXN0b21faWQiLCJjb21wb25lbnRzIiwiY29tcG9uZW50IiwidmFsdWVzIiwibmFtZSIsInJlc29sdmVkIiwiaW50ZXJhY3Rpb25EYXRhUmVzb2x2ZWQiLCJvcHQiLCJpbnRlcmFjdGlvbkRhdGFPcHRpb25zIiwidGFyZ2V0SWQiLCJ0YXJnZXRfaWQiLCJjdXN0b21pemVycyIsInRyYW5zZm9ybUludGVyYWN0aW9uRGF0YU9wdGlvbiIsIm9wdGlvbiIsInZhbHVlIiwiZm9jdXNlZCIsInRyYW5zZm9ybUludGVyYWN0aW9uRGF0YVJlc29sdmVkIiwidHJhbnNmb3JtZWQiLCJtZXNzYWdlcyIsImVudHJpZXMiLCJfaWQiLCJ1c2VycyIsIm1lbWJlcnMiLCJyb2xlcyIsInJvbGUiLCJjaGFubmVscyIsImF0dGFjaG1lbnRzIiwia2V5IiwiYXR0YWNobWVudCIsInRyYW5zZm9ybUludGVyYWN0aW9uQ2FsbGJhY2tSZXNwb25zZSIsImludGVyYWN0aW9uQ2FsbGJhY2tSZXNwb25zZSIsImludGVyYWN0aW9uQ2FsbGJhY2siLCJyZXNvdXJjZSIsImludGVyYWN0aW9uUmVzb3VyY2UiLCJ0cmFuc2Zvcm1JbnRlcmFjdGlvbkNhbGxiYWNrIiwiY2FsbGJhY2siLCJhY3Rpdml0eUluc3RhbmNlSWQiLCJhY3Rpdml0eV9pbnN0YW5jZV9pZCIsInJlc3BvbnNlTWVzc2FnZUlkIiwicmVzcG9uc2VfbWVzc2FnZV9pZCIsInJlc3BvbnNlTWVzc2FnZUVwaGVtZXJhbCIsInJlc3BvbnNlX21lc3NhZ2VfZXBoZW1lcmFsIiwicmVzcG9uc2VNZXNzYWdlTG9hZGluZyIsInJlc3BvbnNlX21lc3NhZ2VfbG9hZGluZyIsInRyYW5zZm9ybUludGVyYWN0aW9uUmVzb3VyY2UiLCJhY3Rpdml0eUluc3RhbmNlIiwiYWN0aXZpdHlfaW5zdGFuY2UiXSwibWFwcGluZ3MiOiJBQUFBLFNBQ0VBLGlDQUFpQyxFQU9qQ0Msd0JBQXdCLEVBQ3hCQyxnQkFBZ0IsRUFDaEJDLFlBQVksUUFDUCxvQkFBbUI7QUFDMUIsU0FBU0MsVUFBVSxRQUFR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
251
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvaW50ZXJhY3Rpb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRGlzY29yZEFwcGxpY2F0aW9uSW50ZWdyYXRpb25UeXBlLFxuICB0eXBlIERpc2NvcmRJbnRlcmFjdGlvbixcbiAgdHlwZSBEaXNjb3JkSW50ZXJhY3Rpb25DYWxsYmFjayxcbiAgdHlwZSBEaXNjb3JkSW50ZXJhY3Rpb25DYWxsYmFja1Jlc3BvbnNlLFxuICB0eXBlIERpc2NvcmRJbnRlcmFjdGlvbkRhdGFPcHRpb24sXG4gIHR5cGUgRGlzY29yZEludGVyYWN0aW9uRGF0YVJlc29sdmVkLFxuICB0eXBlIERpc2NvcmRJbnRlcmFjdGlvblJlc291cmNlLFxuICBJbnRlcmFjdGlvblJlc3BvbnNlVHlwZXMsXG4gIEludGVyYWN0aW9uVHlwZXMsXG4gIE1lc3NhZ2VGbGFncyxcbn0gZnJvbSAnQGRpc2NvcmRlbm8vdHlwZXMnXG5pbXBvcnQgeyBDb2xsZWN0aW9uIH0gZnJvbSAnQGRpc2NvcmRlbm8vdXRpbHMnXG5pbXBvcnQgdHlwZSB7XG4gIEJvdCxcbiAgRGlzY29yZENoYW5uZWwsXG4gIEludGVyYWN0aW9uLFxuICBJbnRlcmFjdGlvbkNhbGxiYWNrLFxuICBJbnRlcmFjdGlvbkNhbGxiYWNrUmVzcG9uc2UsXG4gIEludGVyYWN0aW9uRGF0YU9wdGlvbixcbiAgSW50ZXJhY3Rpb25EYXRhUmVzb2x2ZWQsXG4gIEludGVyYWN0aW9uUmVzb2x2ZWRDaGFubmVsLFxuICBJbnRlcmFjdGlvblJlc291cmNlLFxuICBJbnRlcm5hbEJvdCxcbiAgTWVtYmVyLFxuICBNZXNzYWdlLFxufSBmcm9tICcuLi9pbmRleC5qcydcblxuZXhwb3J0IGNvbnN0IGJhc2VJbnRlcmFjdGlvbjogSW50ZXJuYWxCb3RbJ3RyYW5zZm9ybWVycyddWyckaW5mZXJyZWRUeXBlcyddWydpbnRlcmFjdGlvbiddID0ge1xuICAvLyBUaGlzIGFsbG93cyB0eXBlc2NyaXB0IHRvIHN0aWxsIGNoZWNrIGZvciB0eXBlIGVycm9ycyBvbiBmdW5jdGlvbnMgYmVsb3dcbiAgLi4uKHVuZGVmaW5lZCBhcyB1bmtub3duIGFzIEludGVybmFsQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsnaW50ZXJhY3Rpb24nXSksXG5cbiAgYXN5bmMgcmVzcG9uZChyZXNwb25zZSwgb3B0aW9ucykge1xuICAgIGxldCB0eXBlID0gSW50ZXJhY3Rpb25SZXNwb25zZVR5cGVzLkNoYW5uZWxNZXNzYWdlV2l0aFNvdXJjZVxuXG4gICAgLy8gSWYgdXNlciBwcm92aWRlcyBhIHN0cmluZywgY2hhbmdlIGl0IHRvIGEgcmVzcG9uc2Ugb2JqZWN0XG4gICAgaWYgKHR5cGVvZiByZXNwb25zZSA9PT0gJ3N0cmluZycpIHJlc3BvbnNlID0geyBjb250ZW50OiByZXNwb25zZSB9XG5cbiAgICAvLyBJZiB1c2VyIHByb3ZpZGVzIGFuIG9iamVjdCwgZGV0ZXJtaW5lIGlmIGl0IHNob3VsZCBiZSBhbiBhdXRvY29tcGxldGUgb3IgYSBtb2RhbCByZXNwb25zZVxuICAgIGlmIChyZXNwb25zZS50aXRsZSkgdHlwZSA9IEludGVyYWN0aW9uUmVzcG9uc2VUeXBlcy5Nb2RhbFxuICAgIGlmICh0aGlzLnR5cGUgPT09IEludGVyYWN0aW9uVHlwZXMuQXBwbGljYXRpb25Db21tYW5kQXV0b2NvbXBsZXRlKSB0eXBlID0gSW50ZXJhY3Rpb25SZXNwb25zZVR5cGVzLkFwcGxpY2F0aW9uQ29tbWFuZEF1dG9jb21wbGV0ZVJlc3VsdFxuICAgIGlmICh0eXBlID09PSBJbnRlcmFjdGlvblJlc3BvbnNlVHlwZXMuQ2hhbm5lbE1lc3NhZ2VXaXRoU291cmNlICYmIG9wdGlvbnM/LmlzUHJpdmF0ZSkge1xuICAgICAgcmVzcG9uc2UuZmxhZ3MgPz89IDBcbiAgICAgIHJlc3BvbnNlLmZsYWdzIHw9IE1lc3NhZ2VGbGFncy5FcGhlbWVyYWxcbiAgICB9XG5cbiAgICAvLyBTaW5jZSB0aGlzIGhhcyBhbHJlYWR5IGJlZW4gZ2l2ZW4gYSByZXNwb25zZSwgYW55IGZ1cnRoZXIgcmVzcG9uc2VzIG11c3QgYmUgZm9sbG93dXBzLlxuICAgIGlmICh0aGlzLmFja25vd2xlZGdlZCkgcmV0dXJuIGF3YWl0IHRoaXMuYm90LmhlbHBlcnMuc2VuZEZvbGxvd3VwTWVzc2FnZSh0aGlzLnRva2VuLCByZXNwb25zZSlcblxuICAgIC8vIE1vZGFscyBjYW5ub3QgYmUgY2hhaW5lZFxuICAgIGlmICh0aGlzLnR5cGUgPT09IEludGVyYWN0aW9uVHlwZXMuTW9kYWxTdWJtaXQgJiYgdHlwZSA9PT0gSW50ZXJhY3Rpb25SZXNwb25zZVR5cGVzLk1vZGFsKVxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgcmVzcG9uZCB0byBhIG1vZGFsIGludGVyYWN0aW9uIHdpdGggYW5vdGhlciBtb2RhbC4nKVxuXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5ib3QuaGVscGVycy5zZW5kSW50ZXJhY3Rpb25SZXNwb25zZShcbiAgICAgIHRoaXMuaWQsXG4gICAgICB0aGlzLnRva2VuLFxuICAgICAgeyB0eXBlLCBkYXRhOiByZXNwb25zZSB9LFxuICAgICAgeyB3aXRoUmVzcG9uc2U6IG9wdGlvbnM/LndpdGhSZXNwb25zZSB9LFxuICAgIClcbiAgICB0aGlzLmFja25vd2xlZGdlZCA9IHRydWVcbiAgICByZXR1cm4gcmVzdWx0XG4gIH0sXG4gIGFzeW5jIGVkaXQocmVzcG9uc2UsIG1lc3NhZ2VJZCwgb3B0aW9ucykge1xuICAgIGlmICh0aGlzLnR5cGUgPT09IEludGVyYWN0aW9uVHlwZXMuQXBwbGljYXRpb25Db21tYW5kQXV0b2NvbXBsZXRlKSB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBlZGl0IGFuIGF1dG9jb21wbGV0ZSBpbnRlcmFjdGlvbi4nKVxuXG4gICAgLy8gSWYgdXNlciBwcm92aWRlcyBhIHN0cmluZywgY2hhbmdlIGl0IHRvIGEgcmVzcG9uc2Ugb2JqZWN0XG4gICAgaWYgKHR5cGVvZiByZXNwb25zZSA9PT0gJ3N0cmluZycpIHJlc3BvbnNlID0geyBjb250ZW50OiByZXNwb25zZSB9XG5cbiAgICBpZiAobWVzc2FnZUlkKSB7XG4gICAgICByZXR1cm4gYXdhaXQgdGhpcy5ib3Q/LmhlbHBlcnMuZWRpdEZvbGxvd3VwTWVzc2FnZSh0aGlzLnRva2VuLCBtZXNzYWdlSWQsIHJlc3BvbnNlKVxuICAgIH1cblxuICAgIGlmICghdGhpcy5hY2tub3dsZWRnZWQpIHtcbiAgICAgIGlmICh0aGlzLnR5cGUgIT09IEludGVyYWN0aW9uVHlwZXMuTWVzc2FnZUNvbXBvbmVudCAmJiB0aGlzLnR5cGUgIT09IEludGVyYWN0aW9uVHlwZXMuTW9kYWxTdWJtaXQpXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIlRoaXMgaW50ZXJhY3Rpb24gaGFzIG5vdCBiZWVuIHJlc3BvbmRlZCB0byB5ZXQgYW5kIHRoaXMgaXNuJ3QgYSBNZXNzYWdlQ29tcG9uZW50IG9yIE1vZGFsU3VibWl0IGludGVyYWN0aW9uLlwiKVxuXG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLmJvdC5oZWxwZXJzLnNlbmRJbnRlcmFjdGlvblJlc3BvbnNlKFxuICAgICAgICB0aGlzLmlkLFxuICAgICAgICB0aGlzLnRva2VuLFxuICAgICAgICB7IHR5cGU6IEludGVyYWN0aW9uUmVzcG9uc2VUeXBlcy5VcGRhdGVNZXNzYWdlLCBkYXRhOiByZXNwb25zZSB9LFxuICAgICAgICBvcHRpb25zLFxuICAgICAgKVxuICAgICAgdGhpcy5hY2tub3dsZWRnZWQgPSB0cnVlXG4gICAgICByZXR1cm4gcmVzdWx0XG4gICAgfVxuXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuYm90LmhlbHBlcnMuZWRpdE9yaWdpbmFsSW50ZXJhY3Rpb25SZXNwb25zZSh0aGlzLnRva2VuLCByZXNwb25zZSlcbiAgfSxcbiAgYXN5bmMgZGVmZXJFZGl0KG9wdGlvbnMpIHtcbiAgICBpZiAodGhpcy50eXBlID09PSBJbnRlcmFjdGlvblR5cGVzLkFwcGxpY2F0aW9uQ29tbWFuZEF1dG9jb21wbGV0ZSkgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgZWRpdCBhbiBhdXRvY29tcGxldGUgaW50ZXJhY3Rpb24uJylcbiAgICBpZiAodGhpcy5hY2tub3dsZWRnZWQpIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGRlZmVyIGFuIGFscmVhZHkgcmVzcG9uZGVkIGludGVyYWN0aW9uLicpXG5cbiAgICBpZiAodGhpcy50eXBlICE9PSBJbnRlcmFjdGlvblR5cGVzLk1lc3NhZ2VDb21wb25lbnQgJiYgdGhpcy50eXBlICE9PSBJbnRlcmFjdGlvblR5cGVzLk1vZGFsU3VibWl0KVxuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQ2Fubm90IGRlZmVyIHRvIHRoZW4gZWRpdCBhbiBpbnRlcmFjdGlvbiB0aGF0IGlzbid0IGEgTWVzc2FnZUNvbXBvbmVudCBvciBNb2RhbFN1Ym1pdCBpbnRlcmFjdGlvbi5cIilcblxuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuYm90LmhlbHBlcnMuc2VuZEludGVyYWN0aW9uUmVzcG9uc2UoXG4gICAgICB0aGlzLmlkLFxuICAgICAgdGhpcy50b2tlbixcbiAgICAgIHsgdHlwZTogSW50ZXJhY3Rpb25SZXNwb25zZVR5cGVzLkRlZmVycmVkVXBkYXRlTWVzc2FnZSB9LFxuICAgICAgb3B0aW9ucyxcbiAgICApXG4gICAgdGhpcy5hY2tub3dsZWRnZWQgPSB0cnVlXG4gICAgcmV0dXJuIHJlc3VsdFxuICB9LFxuICBhc3luYyBkZWZlcihpc1ByaXZhdGUsIG9wdGlvbnMpIHtcbiAgICBpZiAodGhpcy5hY2tub3dsZWRnZWQpIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGRlZmVyIGFuIGFscmVhZHkgcmVzcG9uZGVkIGludGVyYWN0aW9uLicpXG5cbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLmJvdC5oZWxwZXJzLnNlbmRJbnRlcmFjdGlvblJlc3BvbnNlKFxuICAgICAgdGhpcy5pZCxcbiAgICAgIHRoaXMudG9rZW4sXG4gICAgICB7XG4gICAgICAgIHR5cGU6IEludGVyYWN0aW9uUmVzcG9uc2VUeXBlcy5EZWZlcnJlZENoYW5uZWxNZXNzYWdlV2l0aFNvdXJjZSxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIGZsYWdzOiBpc1ByaXZhdGUgPyBNZXNzYWdlRmxhZ3MuRXBoZW1lcmFsIDogdW5kZWZpbmVkLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIG9wdGlvbnMsXG4gICAgKVxuICAgIHRoaXMuYWNrbm93bGVkZ2VkID0gdHJ1ZVxuICAgIHJldHVybiByZXN1bHRcbiAgfSxcbiAgYXN5bmMgZGVsZXRlKG1lc3NhZ2VJZCkge1xuICAgIGlmICh0aGlzLnR5cGUgPT09IEludGVyYWN0aW9uVHlwZXMuQXBwbGljYXRpb25Db21tYW5kQXV0b2NvbXBsZXRlKSB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBkZWxldGUgYW4gYXV0b2NvbXBsZXRlIGludGVyYWN0aW9uJylcblxuICAgIGlmIChtZXNzYWdlSWQpIHJldHVybiBhd2FpdCB0aGlzLmJvdD8uaGVscGVycy5kZWxldGVGb2xsb3d1cE1lc3NhZ2UodGhpcy50b2tlbiwgbWVzc2FnZUlkKVxuICAgIGVsc2UgcmV0dXJuIGF3YWl0IHRoaXMuYm90Py5oZWxwZXJzLmRlbGV0ZU9yaWdpbmFsSW50ZXJhY3Rpb25SZXNwb25zZSh0aGlzLnRva2VuKVxuICB9LFxufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtSW50ZXJhY3Rpb24oXG4gIGJvdDogSW50ZXJuYWxCb3QsXG4gIHBheWxvYWQ6IHsgaW50ZXJhY3Rpb246IERpc2NvcmRJbnRlcmFjdGlvbjsgc2hhcmRJZDogbnVtYmVyIH0sXG4pOiB0eXBlb2YgYm90LnRyYW5zZm9ybWVycy4kaW5mZXJyZWRUeXBlcy5pbnRlcmFjdGlvbiB7XG4gIGNvbnN0IGd1aWxkSWQgPSBwYXlsb2FkLmludGVyYWN0aW9uLmd1aWxkX2lkID8gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5pbnRlcmFjdGlvbi5ndWlsZF9pZCkgOiB1bmRlZmluZWRcbiAgY29uc3QgdXNlciA9IGJvdC50cmFuc2Zvcm1lcnMudXNlcihib3QsIHBheWxvYWQuaW50ZXJhY3Rpb24ubWVtYmVyPy51c2VyID8/IHBheWxvYWQuaW50ZXJhY3Rpb24udXNlciEpXG5cbiAgY29uc3QgaW50ZXJhY3Rpb246IEludGVyYWN0aW9uID0gT2JqZWN0LmNyZWF0ZShiYXNlSW50ZXJhY3Rpb24pXG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5pbnRlcmFjdGlvblxuICAvLyBUeXBlc2NyaXB0IGhhcyBhbiBoYXJkIHRpbWUgd2l0aCB0aGlzLCBzbyB3ZSBuZWVkIHRvIHRlbGwgaGltIGZvciBzdXJlIHRoaXMgaXMgYSBCb3RcbiAgaW50ZXJhY3Rpb24uYm90ID0gYm90IGFzIHVua25vd24gYXMgQm90XG4gIGludGVyYWN0aW9uLmFja25vd2xlZGdlZCA9IGZhbHNlXG5cbiAgaWYgKHByb3BzLmlkICYmIHBheWxvYWQuaW50ZXJhY3Rpb24uaWQpIGludGVyYWN0aW9uLmlkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5pbnRlcmFjdGlvbi5pZClcbiAgaWYgKHByb3BzLmFwcGxpY2F0aW9uSWQgJiYgcGF5bG9hZC5pbnRlcmFjdGlvbi5hcHBsaWNhdGlvbl9pZClcbiAgICBpbnRlcmFjdGlvbi5hcHBsaWNhdGlvbklkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5pbnRlcmFjdGlvbi5hcHBsaWNhdGlvbl9pZClcbiAgaWYgKHByb3BzLnR5cGUgJiYgcGF5bG9hZC5pbnRlcmFjdGlvbi50eXBlKSBpbnRlcmFjdGlvbi50eXBlID0gcGF5bG9hZC5pbnRlcmFjdGlvbi50eXBlXG4gIGlmIChwcm9wcy50b2tlbiAmJiBwYXlsb2FkLmludGVyYWN0aW9uLnRva2VuKSBpbnRlcmFjdGlvbi50b2tlbiA9IHBheWxvYWQuaW50ZXJhY3Rpb24udG9rZW5cbiAgaWYgKHByb3BzLnZlcnNpb24gJiYgcGF5bG9hZC5pbnRlcmFjdGlvbi52ZXJzaW9uKSBpbnRlcmFjdGlvbi52ZXJzaW9uID0gcGF5bG9hZC5pbnRlcmFjdGlvbi52ZXJzaW9uXG4gIGlmIChwcm9wcy5sb2NhbGUgJiYgcGF5bG9hZC5pbnRlcmFjdGlvbi5sb2NhbGUpIGludGVyYWN0aW9uLmxvY2FsZSA9IHBheWxvYWQuaW50ZXJhY3Rpb24ubG9jYWxlXG4gIGlmIChwcm9wcy5ndWlsZExvY2FsZSAmJiBwYXlsb2FkLmludGVyYWN0aW9uLmd1aWxkX2xvY2FsZSkgaW50ZXJhY3Rpb24uZ3VpbGRMb2NhbGUgPSBwYXlsb2FkLmludGVyYWN0aW9uLmd1aWxkX2xvY2FsZVxuICBpZiAocHJvcHMuZ3VpbGQgJiYgcGF5bG9hZC5pbnRlcmFjdGlvbi5ndWlsZClcbiAgICAvLyBAdHMtZXhwZWN0LWVycm9yIHBheWxvYWQuaW50ZXJhY3Rpb24uZ3VpbGQgaXMgYSBQYXJ0aWFsPERpc2NvcmRHdWlsZD5cbiAgICBpbnRlcmFjdGlvbi5ndWlsZCA9IGJvdC50cmFuc2Zvcm1lcnMuZ3VpbGQoYm90LCB7IGd1aWxkOiBwYXlsb2FkLmludGVyYWN0aW9uLmd1aWxkLCBzaGFyZElkOiBwYXlsb2FkLnNoYXJkSWQgfSlcbiAgaWYgKHByb3BzLmd1aWxkSWQgJiYgZ3VpbGRJZCkgaW50ZXJhY3Rpb24uZ3VpbGRJZCA9IGd1aWxkSWRcbiAgaWYgKHByb3BzLnVzZXIgJiYgdXNlcikgaW50ZXJhY3Rpb24udXNlciA9IHVzZXJcbiAgaWYgKHByb3BzLmFwcFBlcm1pc3Npb25zICYmIHBheWxvYWQuaW50ZXJhY3Rpb24uYXBwX3Blcm1pc3Npb25zKVxuICAgIGludGVyYWN0aW9uLmFwcFBlcm1pc3Npb25zID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5pbnRlcmFjdGlvbi5hcHBfcGVybWlzc2lvbnMpXG4gIGlmIChwcm9wcy5tZXNzYWdlICYmIHBheWxvYWQuaW50ZXJhY3Rpb24ubWVzc2FnZSlcbiAgICBpbnRlcmFjdGlvbi5tZXNzYWdlID0gYm90LnRyYW5zZm9ybWVycy5tZXNzYWdlKGJvdCwgeyBtZXNzYWdlOiBwYXlsb2FkLmludGVyYWN0aW9uLm1lc3NhZ2UsIHNoYXJkSWQ6IDAgfSlcbiAgaWYgKHByb3BzLmNoYW5uZWwgJiYgcGF5bG9hZC5pbnRlcmFjdGlvbi5jaGFubmVsKVxuICAgIGludGVyYWN0aW9uLmNoYW5uZWwgPSBib3QudHJhbnNmb3JtZXJzLmNoYW5uZWwoYm90LCB7IGNoYW5uZWw6IHBheWxvYWQuaW50ZXJhY3Rpb24uY2hhbm5lbCBhcyBEaXNjb3JkQ2hhbm5lbCwgZ3VpbGRJZCB9KVxuICBpZiAocHJvcHMuY2hhbm5lbElkICYmIHBheWxvYWQuaW50ZXJhY3Rpb24uY2hhbm5lbF9pZCkgaW50ZXJhY3Rpb24uY2hhbm5lbElkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5pbnRlcmFjdGlvbi5jaGFubmVsX2lkKVxuICBpZiAocHJvcHMubWVtYmVyICYmIGd1aWxkSWQgJiYgcGF5bG9hZC5pbnRlcmFjdGlvbi5tZW1iZXIpXG4gICAgaW50ZXJhY3Rpb24ubWVtYmVyID0gYm90LnRyYW5zZm9ybWVycy5tZW1iZXIoYm90LCBwYXlsb2FkLmludGVyYWN0aW9uLm1lbWJlciwgZ3VpbGRJZCwgdXNlci5pZClcbiAgaWYgKHByb3BzLmVudGl0bGVtZW50cyAmJiBwYXlsb2FkLmludGVyYWN0aW9uLmVudGl0bGVtZW50cylcbiAgICBpbnRlcmFjdGlvbi5lbnRpdGxlbWVudHMgPSBwYXlsb2FkLmludGVyYWN0aW9uLmVudGl0bGVtZW50cy5tYXAoKGUpID0+IGJvdC50cmFuc2Zvcm1lcnMuZW50aXRsZW1lbnQoYm90LCBlKSlcbiAgaWYgKHByb3BzLmF1dGhvcml6aW5nSW50ZWdyYXRpb25Pd25lcnMgJiYgcGF5bG9hZC5pbnRlcmFjdGlvbi5hdXRob3JpemluZ19pbnRlZ3JhdGlvbl9vd25lcnMpIHtcbiAgICBpbnRlcmFjdGlvbi5hdXRob3JpemluZ0ludGVncmF0aW9uT3duZXJzID0ge31cblxuICAgIGlmIChwYXlsb2FkLmludGVyYWN0aW9uLmF1dGhvcml6aW5nX2ludGVncmF0aW9uX293bmVyc1snMCddKVxuICAgICAgaW50ZXJhY3Rpb24uYXV0aG9yaXppbmdJbnRlZ3JhdGlvbk93bmVyc1tEaXNjb3JkQXBwbGljYXRpb25JbnRlZ3JhdGlvblR5cGUuR3VpbGRJbnN0YWxsXSA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKFxuICAgICAgICBwYXlsb2FkLmludGVyYWN0aW9uLmF1dGhvcml6aW5nX2ludGVncmF0aW9uX293bmVyc1snMCddLFxuICAgICAgKVxuICAgIGlmIChwYXlsb2FkLmludGVyYWN0aW9uLmF1dGhvcml6aW5nX2ludGVncmF0aW9uX293bmVyc1snMSddKVxuICAgICAgaW50ZXJhY3Rpb24uYXV0aG9yaXppbmdJbnRlZ3JhdGlvbk93bmVyc1tEaXNjb3JkQXBwbGljYXRpb25JbnRlZ3JhdGlvblR5cGUuVXNlckluc3RhbGxdID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UoXG4gICAgICAgIHBheWxvYWQuaW50ZXJhY3Rpb24uYXV0aG9yaXppbmdfaW50ZWdyYXRpb25fb3duZXJzWycxJ10sXG4gICAgICApXG4gIH1cbiAgaWYgKHByb3BzLmNvbnRleHQgJiYgcGF5bG9hZC5pbnRlcmFjdGlvbi5jb250ZXh0KSBpbnRlcmFjdGlvbi5jb250ZXh0ID0gcGF5bG9hZC5pbnRlcmFjdGlvbi5jb250ZXh0XG4gIGlmIChwcm9wcy5hdHRhY2htZW50U2l6ZUxpbWl0ICYmIHBheWxvYWQuaW50ZXJhY3Rpb24uYXR0YWNobWVudF9zaXplX2xpbWl0KVxuICAgIGludGVyYWN0aW9uLmF0dGFjaG1lbnRTaXplTGltaXQgPSBwYXlsb2FkLmludGVyYWN0aW9uLmF0dGFjaG1lbnRfc2l6ZV9saW1pdFxuICBpZiAocHJvcHMuZGF0YSAmJiBwYXlsb2FkLmludGVyYWN0aW9uLmRhdGEpIHtcbiAgICBpbnRlcmFjdGlvbi5kYXRhID0ge1xuICAgICAgdHlwZTogcGF5bG9hZC5pbnRlcmFjdGlvbi5kYXRhLnR5cGUsXG4gICAgICBjb21wb25lbnRUeXBlOiBwYXlsb2FkLmludGVyYWN0aW9uLmRhdGEuY29tcG9uZW50X3R5cGUsXG4gICAgICBjdXN0b21JZDogcGF5bG9hZC5pbnRlcmFjdGlvbi5kYXRhLmN1c3RvbV9pZCxcbiAgICAgIGNvbXBvbmVudHM6IHBheWxvYWQuaW50ZXJhY3Rpb24uZGF0YS5jb21wb25lbnRzPy5tYXAoKGNvbXBvbmVudCkgPT4gYm90LnRyYW5zZm9ybWVycy5jb21wb25lbnQoYm90LCBjb21wb25lbnQpKSxcbiAgICAgIHZhbHVlczogcGF5bG9hZC5pbnRlcmFjdGlvbi5kYXRhLnZhbHVlcyxcbiAgICAgIGlkOiBwYXlsb2FkLmludGVyYWN0aW9uLmRhdGEuaWQgPyBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmludGVyYWN0aW9uLmRhdGEuaWQpIDogdW5kZWZpbmVkLFxuICAgICAgbmFtZTogcGF5bG9hZC5pbnRlcmFjdGlvbi5kYXRhLm5hbWUsXG4gICAgICByZXNvbHZlZDogcGF5bG9hZC5pbnRlcmFjdGlvbi5kYXRhLnJlc29sdmVkXG4gICAgICAgID8gYm90LnRyYW5zZm9ybWVycy5pbnRlcmFjdGlvbkRhdGFSZXNvbHZlZChib3QsIHsgcmVzb2x2ZWQ6IHBheWxvYWQuaW50ZXJhY3Rpb24uZGF0YS5yZXNvbHZlZCwgc2hhcmRJZDogcGF5bG9hZC5zaGFyZElkLCBndWlsZElkIH0pXG4gICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgb3B0aW9uczogcGF5bG9hZC5pbnRlcmFjdGlvbi5kYXRhLm9wdGlvbnM/Lm1hcCgob3B0KSA9PiBib3QudHJhbnNmb3JtZXJzLmludGVyYWN0aW9uRGF0YU9wdGlvbnMoYm90LCBvcHQpKSxcbiAgICAgIHRhcmdldElkOiBwYXlsb2FkLmludGVyYWN0aW9uLmRhdGEudGFyZ2V0X2lkID8gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5pbnRlcmFjdGlvbi5kYXRhLnRhcmdldF9pZCkgOiB1bmRlZmluZWQsXG4gICAgfVxuICB9XG5cbiAgLy8gVHlwZXNjcmlwdCBoYXMgYW4gaGFyZCB0aW1lIHdpdGggaW50ZXJhY3Rpb24uYm90LCBzbyB3ZSBuZWVkIHRvIHRlbGwgaGltIGZvciBzdXJlIHRoaXMgaW50ZXJhY3Rpb24gaXMgdGhlIG9mIHRoZSBjb3JyZWN0IHR5cGVcbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMuaW50ZXJhY3Rpb24oYm90LCBwYXlsb2FkLCBpbnRlcmFjdGlvbiBhcyB1bmtub3duIGFzIHR5cGVvZiBib3QudHJhbnNmb3JtZXJzLiRpbmZlcnJlZFR5cGVzLmludGVyYWN0aW9uKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtSW50ZXJhY3Rpb25EYXRhT3B0aW9uKGJvdDogQm90LCBvcHRpb246IERpc2NvcmRJbnRlcmFjdGlvbkRhdGFPcHRpb24pOiBJbnRlcmFjdGlvbkRhdGFPcHRpb24ge1xuICBjb25zdCBvcHQgPSB7XG4gICAgbmFtZTogb3B0aW9uLm5hbWUsXG4gICAgdHlwZTogb3B0aW9uLnR5cGUsXG4gICAgdmFsdWU6IG9wdGlvbi52YWx1ZSxcbiAgICBvcHRpb25zOiBvcHRpb24ub3B0aW9ucyxcbiAgICBmb2N1c2VkOiBvcHRpb24uZm9jdXNlZCxcbiAgfSBhcyBJbnRlcmFjdGlvbkRhdGFPcHRpb25cblxuICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jdXN0b21pemVycy5pbnRlcmFjdGlvbkRhdGFPcHRpb25zKGJvdCwgb3B0aW9uLCBvcHQpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1JbnRlcmFjdGlvbkRhdGFSZXNvbHZlZChcbiAgYm90OiBJbnRlcm5hbEJvdCxcbiAgcGF5bG9hZDogeyByZXNvbHZlZDogRGlzY29yZEludGVyYWN0aW9uRGF0YVJlc29sdmVkOyBzaGFyZElkOiBudW1iZXI7IGd1aWxkSWQ/OiBiaWdpbnQgfSxcbik6IEludGVyYWN0aW9uRGF0YVJlc29sdmVkIHtcbiAgY29uc3QgdHJhbnNmb3JtZWQ6IEludGVyYWN0aW9uRGF0YVJlc29sdmVkID0ge31cblxuICBpZiAocGF5bG9hZC5yZXNvbHZlZC5tZXNzYWdlcykge1xuICAgIHRyYW5zZm9ybWVkLm1lc3NhZ2VzID0gbmV3IENvbGxlY3Rpb24oXG4gICAgICBPYmplY3QuZW50cmllcyhwYXlsb2FkLnJlc29sdmVkLm1lc3NhZ2VzKS5tYXAoKFtfaWQsIHZhbHVlXSkgPT4ge1xuICAgICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIFRPRE86IERlYWwgd2l0aCBwYXJ0aWFsc1xuICAgICAgICBjb25zdCBtZXNzYWdlOiBNZXNzYWdlID0gYm90LnRyYW5zZm9ybWVycy5tZXNzYWdlKGJvdCwgeyBtZXNzYWdlOiB2YWx1ZSwgc2hhcmRJZDogcGF5bG9hZC5zaGFyZElkIH0pXG4gICAgICAgIHJldHVybiBbbWVzc2FnZS5pZCwgbWVzc2FnZV1cbiAgICAgIH0pLFxuICAgIClcbiAgfVxuXG4gIGlmIChwYXlsb2FkLnJlc29sdmVkLnVzZXJzKSB7XG4gICAgdHJhbnNmb3JtZWQudXNlcnMgPSBuZXcgQ29sbGVjdGlvbihcbiAgICAgIE9iamVjdC5lbnRyaWVzKHBheWxvYWQucmVzb2x2ZWQudXNlcnMpLm1hcCgoW19pZCwgdmFsdWVdKSA9PiB7XG4gICAgICAgIGNvbnN0IHVzZXIgPSBib3QudHJhbnNmb3JtZXJzLnVzZXIoYm90LCB2YWx1ZSlcbiAgICAgICAgcmV0dXJuIFt1c2VyLmlkLCB1c2VyXVxuICAgICAgfSksXG4gICAgKVxuICB9XG5cbiAgaWYgKHBheWxvYWQuZ3VpbGRJZCAmJiBwYXlsb2FkLnJlc29sdmVkLm1lbWJlcnMpIHtcbiAgICB0cmFuc2Zvcm1lZC5tZW1iZXJzID0gbmV3IENvbGxlY3Rpb24oXG4gICAgICBPYmplY3QuZW50cmllcyhwYXlsb2FkLnJlc29sdmVkLm1lbWJlcnMpLm1hcCgoW2lkLCB2YWx1ZV0pID0+IHtcbiAgICAgICAgY29uc3QgbWVtYmVyOiBNZW1iZXIgPSBib3QudHJhbnNmb3JtZXJzLm1lbWJlcihib3QsIHZhbHVlLCBwYXlsb2FkLmd1aWxkSWQhLCBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShpZCkpXG4gICAgICAgIHJldHVybiBbbWVtYmVyLmlkLCBtZW1iZXJdXG4gICAgICB9KSxcbiAgICApXG4gIH1cblxuICBpZiAocGF5bG9hZC5ndWlsZElkICYmIHBheWxvYWQucmVzb2x2ZWQucm9sZXMpIHtcbiAgICB0cmFuc2Zvcm1lZC5yb2xlcyA9IG5ldyBDb2xsZWN0aW9uKFxuICAgICAgT2JqZWN0LmVudHJpZXMocGF5bG9hZC5yZXNvbHZlZC5yb2xlcykubWFwKChbX2lkLCB2YWx1ZV0pID0+IHtcbiAgICAgICAgY29uc3Qgcm9sZSA9IGJvdC50cmFuc2Zvcm1lcnMucm9sZShib3QsIHsgcm9sZTogdmFsdWUsIGd1aWxkSWQ6IHBheWxvYWQuZ3VpbGRJZCEgfSlcbiAgICAgICAgcmV0dXJuIFtyb2xlLmlkLCByb2xlXVxuICAgICAgfSksXG4gICAgKVxuICB9XG5cbiAgaWYgKHBheWxvYWQucmVzb2x2ZWQuY2hhbm5lbHMpIHtcbiAgICB0cmFuc2Zvcm1lZC5jaGFubmVscyA9IG5ldyBDb2xsZWN0aW9uKFxuICAgICAgT2JqZWN0LmVudHJpZXMocGF5bG9hZC5yZXNvbHZlZC5jaGFubmVscykubWFwKChbX2lkLCB2YWx1ZV0pID0+IHtcbiAgICAgICAgY29uc3QgY2hhbm5lbCA9IGJvdC50cmFuc2Zvcm1lcnMuY2hhbm5lbChib3QsIHsgY2hhbm5lbDogdmFsdWUgfSkgYXMgSW50ZXJhY3Rpb25SZXNvbHZlZENoYW5uZWxcbiAgICAgICAgcmV0dXJuIFtjaGFubmVsLmlkLCBjaGFubmVsXVxuICAgICAgfSksXG4gICAgKVxuICB9XG5cbiAgaWYgKHBheWxvYWQucmVzb2x2ZWQuYXR0YWNobWVudHMpIHtcbiAgICB0cmFuc2Zvcm1lZC5hdHRhY2htZW50cyA9IG5ldyBDb2xsZWN0aW9uKFxuICAgICAgT2JqZWN0LmVudHJpZXMocGF5bG9hZC5yZXNvbHZlZC5hdHRhY2htZW50cykubWFwKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgICAgY29uc3QgaWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShrZXkpXG4gICAgICAgIHJldHVybiBbaWQsIGJvdC50cmFuc2Zvcm1lcnMuYXR0YWNobWVudChib3QsIHZhbHVlKV1cbiAgICAgIH0pLFxuICAgIClcbiAgfVxuXG4gIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmN1c3RvbWl6ZXJzLmludGVyYWN0aW9uRGF0YVJlc29sdmVkKGJvdCwgcGF5bG9hZCwgdHJhbnNmb3JtZWQpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1JbnRlcmFjdGlvbkNhbGxiYWNrUmVzcG9uc2UoXG4gIGJvdDogSW50ZXJuYWxCb3QsXG4gIHBheWxvYWQ6IHsgaW50ZXJhY3Rpb25DYWxsYmFja1Jlc3BvbnNlOiBEaXNjb3JkSW50ZXJhY3Rpb25DYWxsYmFja1Jlc3BvbnNlOyBzaGFyZElkOiBudW1iZXIgfSxcbik6IHR5cGVvZiBib3QudHJhbnNmb3JtZXJzLiRpbmZlcnJlZFR5cGVzLmludGVyYWN0aW9uQ2FsbGJhY2tSZXNwb25zZSB7XG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5pbnRlcmFjdGlvbkNhbGxiYWNrUmVzcG9uc2VcbiAgY29uc3QgcmVzcG9uc2UgPSB7fSBhcyBJbnRlcmFjdGlvbkNhbGxiYWNrUmVzcG9uc2VcblxuICBpZiAocHJvcHMuaW50ZXJhY3Rpb24gJiYgcGF5bG9hZC5pbnRlcmFjdGlvbkNhbGxiYWNrUmVzcG9uc2UuaW50ZXJhY3Rpb24pXG4gICAgcmVzcG9uc2UuaW50ZXJhY3Rpb24gPSBib3QudHJhbnNmb3JtZXJzLmludGVyYWN0aW9uQ2FsbGJhY2soYm90LCBwYXlsb2FkLmludGVyYWN0aW9uQ2FsbGJhY2tSZXNwb25zZS5pbnRlcmFjdGlvbilcbiAgaWYgKHByb3BzLnJlc291cmNlICYmIHBheWxvYWQuaW50ZXJhY3Rpb25DYWxsYmFja1Jlc3BvbnNlLnJlc291cmNlKVxuICAgIHJlc3BvbnNlLnJlc291cmNlID0gYm90LnRyYW5zZm9ybWVycy5pbnRlcmFjdGlvblJlc291cmNlKGJvdCwge1xuICAgICAgaW50ZXJhY3Rpb25SZXNvdXJjZTogcGF5bG9hZC5pbnRlcmFjdGlvbkNhbGxiYWNrUmVzcG9uc2UucmVzb3VyY2UsXG4gICAgICBzaGFyZElkOiBwYXlsb2FkLnNoYXJkSWQsXG4gICAgfSlcblxuICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jdXN0b21pemVycy5pbnRlcmFjdGlvbkNhbGxiYWNrUmVzcG9uc2UoYm90LCBwYXlsb2FkLmludGVyYWN0aW9uQ2FsbGJhY2tSZXNwb25zZSwgcmVzcG9uc2UpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1JbnRlcmFjdGlvbkNhbGxiYWNrKFxuICBib3Q6IEludGVybmFsQm90LFxuICBwYXlsb2FkOiBEaXNjb3JkSW50ZXJhY3Rpb25DYWxsYmFjayxcbik6IHR5cGVvZiBib3QudHJhbnNmb3JtZXJzLiRpbmZlcnJlZFR5cGVzLmludGVyYWN0aW9uQ2FsbGJhY2sge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuaW50ZXJhY3Rpb25DYWxsYmFja1xuICBjb25zdCBjYWxsYmFjayA9IHt9IGFzIEludGVyYWN0aW9uQ2FsbGJhY2tcblxuICBpZiAocHJvcHMuaWQgJiYgcGF5bG9hZC5pZCkgY2FsbGJhY2suaWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmlkKVxuICBpZiAocHJvcHMudHlwZSAmJiBwYXlsb2FkLnR5cGUpIGNhbGxiYWNrLnR5cGUgPSBwYXlsb2FkLnR5cGVcbiAgaWYgKHByb3BzLmFjdGl2aXR5SW5zdGFuY2VJZCAmJiBwYXlsb2FkLmFjdGl2aXR5X2luc3RhbmNlX2lkKSBjYWxsYmFjay5hY3Rpdml0eUluc3RhbmNlSWQgPSBwYXlsb2FkLmFjdGl2aXR5X2luc3RhbmNlX2lkXG4gIGlmIChwcm9wcy5yZXNwb25zZU1lc3NhZ2VJZCAmJiBwYXlsb2FkLnJlc3BvbnNlX21lc3NhZ2VfaWQpIGNhbGxiYWNrLnJlc3BvbnNlTWVzc2FnZUlkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5yZXNwb25zZV9tZXNzYWdlX2lkKVxuICBpZiAocHJvcHMucmVzcG9uc2VNZXNzYWdlRXBoZW1lcmFsICYmIHBheWxvYWQucmVzcG9uc2VfbWVzc2FnZV9lcGhlbWVyYWwpIGNhbGxiYWNrLnJlc3BvbnNlTWVzc2FnZUVwaGVtZXJhbCA9IHBheWxvYWQucmVzcG9uc2VfbWVzc2FnZV9lcGhlbWVyYWxcbiAgaWYgKHByb3BzLnJlc3BvbnNlTWVzc2FnZUxvYWRpbmcgJiYgcGF5bG9hZC5yZXNwb25zZV9tZXNzYWdlX2xvYWRpbmcpIGNhbGxiYWNrLnJlc3BvbnNlTWVzc2FnZUxvYWRpbmcgPSBwYXlsb2FkLnJlc3BvbnNlX21lc3NhZ2VfbG9hZGluZ1xuXG4gIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmN1c3RvbWl6ZXJzLmludGVyYWN0aW9uQ2FsbGJhY2soYm90LCBwYXlsb2FkLCBjYWxsYmFjaylcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybUludGVyYWN0aW9uUmVzb3VyY2UoXG4gIGJvdDogSW50ZXJuYWxCb3QsXG4gIHBheWxvYWQ6IHsgaW50ZXJhY3Rpb25SZXNvdXJjZTogRGlzY29yZEludGVyYWN0aW9uUmVzb3VyY2U7IHNoYXJkSWQ6IG51bWJlciB9LFxuKTogdHlwZW9mIGJvdC50cmFuc2Zvcm1lcnMuJGluZmVycmVkVHlwZXMuaW50ZXJhY3Rpb25SZXNvdXJjZSB7XG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5pbnRlcmFjdGlvblJlc291cmNlXG4gIGNvbnN0IHJlc291cmNlID0ge30gYXMgSW50ZXJhY3Rpb25SZXNvdXJjZVxuXG4gIGlmIChwcm9wcy50eXBlICYmIHBheWxvYWQuaW50ZXJhY3Rpb25SZXNvdXJjZS50eXBlKSByZXNvdXJjZS50eXBlID0gcGF5bG9hZC5pbnRlcmFjdGlvblJlc291cmNlLnR5cGVcbiAgaWYgKHByb3BzLmFjdGl2aXR5SW5zdGFuY2UgJiYgcGF5bG9hZC5pbnRlcmFjdGlvblJlc291cmNlLmFjdGl2aXR5X2luc3RhbmNlKVxuICAgIHJlc291cmNlLmFjdGl2aXR5SW5zdGFuY2UgPSBwYXlsb2FkLmludGVyYWN0aW9uUmVzb3VyY2UuYWN0aXZpdHlfaW5zdGFuY2VcbiAgaWYgKHByb3BzLm1lc3NhZ2UgJiYgcGF5bG9hZC5pbnRlcmFjdGlvblJlc291cmNlLm1lc3NhZ2UpXG4gICAgcmVzb3VyY2UubWVzc2FnZSA9IGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZShib3QsIHsgbWVzc2FnZTogcGF5bG9hZC5pbnRlcmFjdGlvblJlc291cmNlLm1lc3NhZ2UsIHNoYXJkSWQ6IHBheWxvYWQuc2hhcmRJZCB9KVxuXG4gIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmN1c3RvbWl6ZXJzLmludGVyYWN0aW9uUmVzb3VyY2UoYm90LCBwYXlsb2FkLmludGVyYWN0aW9uUmVzb3VyY2UsIHJlc291cmNlKVxufVxuIl0sIm5hbWVzIjpbIkRpc2NvcmRBcHBsaWNhdGlvbkludGVncmF0aW9uVHlwZSIsIkludGVyYWN0aW9uUmVzcG9uc2VUeXBlcyIsIkludGVyYWN0aW9uVHlwZXMiLCJNZXNzYWdlRmxhZ3MiLCJDb2xsZWN0aW9uIiwiYmFzZUludGVyYWN0aW9uIiwidW5kZWZpbmVkIiwicmVzcG9uZCIsInJlc3BvbnNlIiwib3B0aW9ucyIsInR5cGUiLCJDaGFubmVsTWVzc2FnZVdpdGhTb3VyY2UiLCJjb250ZW50IiwidGl0bGUiLCJNb2RhbCIsIkFwcGxpY2F0aW9uQ29tbWFuZEF1dG9jb21wbGV0ZSIsIkFwcGxpY2F0aW9uQ29tbWFuZEF1dG9jb21wbGV0ZVJlc3VsdCIsImlzUHJpdmF0ZSIsImZsYWdzIiwiRXBoZW1lcmFsIiwiYWNrbm93bGVkZ2VkIiwiYm90IiwiaGVscGVycyIsInNlbmRGb2xsb3d1cE1lc3NhZ2UiLCJ0b2tlbiIsIk1vZGFsU3VibWl0IiwiRXJyb3IiLCJyZXN1bHQiLCJzZW5kSW50ZXJhY3Rpb25SZXNwb25zZSIsImlkIiwiZGF0YSIsIndpdGhSZXNwb25zZSIsImVkaXQiLCJtZXNzYWdlSWQiLCJlZGl0Rm9sbG93dXBNZXNzYWdlIiwiTWVzc2FnZUNvbXBvbmVudCIsIlVwZGF0ZU1lc3NhZ2UiLCJlZGl0T3JpZ2luYWxJbnRlcmFjdGlvblJlc3BvbnNlIiwiZGVmZXJFZGl0IiwiRGVmZXJyZWRVcGRhdGVNZXNzYWdlIiwiZGVmZXIiLCJEZWZlcnJlZENoYW5uZWxNZXNzYWdlV2l0aFNvdXJjZSIsImRlbGV0ZSIsImRlbGV0ZUZvbGxvd3VwTWVzc2FnZSIsImRlbGV0ZU9yaWdpbmFsSW50ZXJhY3Rpb25SZXNwb25zZSIsInRyYW5zZm9ybUludGVyYWN0aW9uIiwicGF5bG9hZCIsImd1aWxkSWQiLCJpbnRlcmFjdGlvbiIsImd1aWxkX2lkIiwidHJhbnNmb3JtZXJzIiwic25vd2ZsYWtlIiwidXNlciIsIm1lbWJlciIsIk9iamVjdCIsImNyZWF0ZSIsInByb3BzIiwiZGVzaXJlZFByb3BlcnRpZXMiLCJhcHBsaWNhdGlvbklkIiwiYXBwbGljYXRpb25faWQiLCJ2ZXJzaW9uIiwibG9jYWxlIiwiZ3VpbGRMb2NhbGUiLCJndWlsZF9sb2NhbGUiLCJndWlsZCIsInNoYXJkSWQiLCJhcHBQZXJtaXNzaW9ucyIsImFwcF9wZXJtaXNzaW9ucyIsIm1lc3NhZ2UiLCJjaGFubmVsIiwiY2hhbm5lbElkIiwiY2hhbm5lbF9pZCIsImVudGl0bGVtZW50cyIsIm1hcCIsImUiLCJlbnRpdGxlbWVudCIsImF1dGhvcml6aW5nSW50ZWdyYXRpb25Pd25lcnMiLCJhdXRob3JpemluZ19pbnRlZ3JhdGlvbl9vd25lcnMiLCJHdWlsZEluc3RhbGwiLCJVc2VySW5zdGFsbCIsImNvbnRleHQiLCJhdHRhY2htZW50U2l6ZUxpbWl0IiwiYXR0YWNobWVudF9zaXplX2xpbWl0IiwiY29tcG9uZW50VHlwZSIsImNvbXBvbmVudF90eXBlIiwiY3VzdG9tSWQiLCJjdXN0b21faWQiLCJjb21wb25lbnRzIiwiY29tcG9uZW50IiwidmFsdWVzIiwibmFtZSIsInJlc29sdmVkIiwiaW50ZXJhY3Rpb25EYXRhUmVzb2x2ZWQiLCJvcHQiLCJpbnRlcmFjdGlvbkRhdGFPcHRpb25zIiwidGFyZ2V0SWQiLCJ0YXJnZXRfaWQiLCJjdXN0b21pemVycyIsInRyYW5zZm9ybUludGVyYWN0aW9uRGF0YU9wdGlvbiIsIm9wdGlvbiIsInZhbHVlIiwiZm9jdXNlZCIsInRyYW5zZm9ybUludGVyYWN0aW9uRGF0YVJlc29sdmVkIiwidHJhbnNmb3JtZWQiLCJtZXNzYWdlcyIsImVudHJpZXMiLCJfaWQiLCJ1c2VycyIsIm1lbWJlcnMiLCJyb2xlcyIsInJvbGUiLCJjaGFubmVscyIsImF0dGFjaG1lbnRzIiwia2V5IiwiYXR0YWNobWVudCIsInRyYW5zZm9ybUludGVyYWN0aW9uQ2FsbGJhY2tSZXNwb25zZSIsImludGVyYWN0aW9uQ2FsbGJhY2tSZXNwb25zZSIsImludGVyYWN0aW9uQ2FsbGJhY2siLCJyZXNvdXJjZSIsImludGVyYWN0aW9uUmVzb3VyY2UiLCJ0cmFuc2Zvcm1JbnRlcmFjdGlvbkNhbGxiYWNrIiwiY2FsbGJhY2siLCJhY3Rpdml0eUluc3RhbmNlSWQiLCJhY3Rpdml0eV9pbnN0YW5jZV9pZCIsInJlc3BvbnNlTWVzc2FnZUlkIiwicmVzcG9uc2VfbWVzc2FnZV9pZCIsInJlc3BvbnNlTWVzc2FnZUVwaGVtZXJhbCIsInJlc3BvbnNlX21lc3NhZ2VfZXBoZW1lcmFsIiwicmVzcG9uc2VNZXNzYWdlTG9hZGluZyIsInJlc3BvbnNlX21lc3NhZ2VfbG9hZGluZyIsInRyYW5zZm9ybUludGVyYWN0aW9uUmVzb3VyY2UiLCJhY3Rpdml0eUluc3RhbmNlIiwiYWN0aXZpdHlfaW5zdGFuY2UiXSwibWFwcGluZ3MiOiJBQUFBLFNBQ0VBLGlDQUFpQyxFQU9qQ0Msd0JBQXdCLEVBQ3hC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
@@ -1,4 +1,4 @@
1
- import { ToggleBitfield, isInviteWithMetadata } from '../index.js';
1
+ import { isInviteWithMetadata, ToggleBitfield } from '../index.js';
2
2
  export function transformInvite(bot, payload) {
3
3
  const props = bot.transformers.desiredProperties.invite;
4
4
  const invite = {};
@@ -39,4 +39,4 @@ export function transformInvite(bot, payload) {
39
39
  return bot.transformers.customizers.invite(bot, payload.invite, invite);
40
40
  }
41
41
 
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvaW52aXRlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRGlzY29yZEFwcGxpY2F0aW9uLCBEaXNjb3JkSW52aXRlQ3JlYXRlLCBEaXNjb3JkSW52aXRlTWV0YWRhdGEgfSBmcm9tICdAZGlzY29yZGVuby90eXBlcydcbmltcG9ydCB7IHR5cGUgSW50ZXJuYWxCb3QsIHR5cGUgSW52aXRlLCBUb2dnbGVCaXRmaWVsZCwgaXNJbnZpdGVXaXRoTWV0YWRhdGEgfSBmcm9tICcuLi9pbmRleC5qcydcblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybUludml0ZShcbiAgYm90OiBJbnRlcm5hbEJvdCxcbiAgcGF5bG9hZDogeyBpbnZpdGU6IERpc2NvcmRJbnZpdGVDcmVhdGUgfCBEaXNjb3JkSW52aXRlTWV0YWRhdGE7IHNoYXJkSWQ6IG51bWJlciB9LFxuKTogdHlwZW9mIGJvdC50cmFuc2Zvcm1lcnMuJGluZmVycmVkVHlwZXMuaW52aXRlIHtcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLmludml0ZVxuICBjb25zdCBpbnZpdGUgPSB7fSBhcyBJbnZpdGVcblxuICBpZiAocHJvcHMudHlwZSAmJiAndHlwZScgaW4gcGF5bG9hZC5pbnZpdGUpIGludml0ZS50eXBlID0gcGF5bG9hZC5pbnZpdGUudHlwZVxuICBpZiAocHJvcHMuY29kZSAmJiBwYXlsb2FkLmludml0ZS5jb2RlKSBpbnZpdGUuY29kZSA9IHBheWxvYWQuaW52aXRlLmNvZGVcbiAgaWYgKHByb3BzLmNyZWF0ZWRBdCAmJiBwYXlsb2FkLmludml0ZS5jcmVhdGVkX2F0KSBpbnZpdGUuY3JlYXRlZEF0ID0gRGF0ZS5wYXJzZShwYXlsb2FkLmludml0ZS5jcmVhdGVkX2F0KVxuICBpZiAocHJvcHMuaW52aXRlciAmJiBwYXlsb2FkLmludml0ZS5pbnZpdGVyKSBpbnZpdGUuaW52aXRlciA9IGJvdC50cmFuc2Zvcm1lcnMudXNlcihib3QsIHBheWxvYWQuaW52aXRlLmludml0ZXIpXG4gIGlmIChwcm9wcy5tYXhBZ2UpIGludml0ZS5tYXhBZ2UgPSBwYXlsb2FkLmludml0ZS5tYXhfYWdlXG4gIGlmIChwcm9wcy5tYXhVc2VzKSBpbnZpdGUubWF4VXNlcyA9IHBheWxvYWQuaW52aXRlLm1heF91c2VzXG4gIGlmIChwcm9wcy50YXJnZXRUeXBlICYmIHBheWxvYWQuaW52aXRlLnRhcmdldF90eXBlKSBpbnZpdGUudGFyZ2V0VHlwZSA9IHBheWxvYWQuaW52aXRlLnRhcmdldF90eXBlXG4gIGlmIChwcm9wcy50YXJnZXRVc2VyICYmIHBheWxvYWQuaW52aXRlLnRhcmdldF91c2VyKSBpbnZpdGUudGFyZ2V0VXNlciA9IGJvdC50cmFuc2Zvcm1lcnMudXNlcihib3QsIHBheWxvYWQuaW52aXRlLnRhcmdldF91c2VyKVxuICBpZiAocHJvcHMudGFyZ2V0QXBwbGljYXRpb24gJiYgcGF5bG9hZC5pbnZpdGUudGFyZ2V0X2FwcGxpY2F0aW9uKVxuICAgIGludml0ZS50YXJnZXRBcHBsaWNhdGlvbiA9IGJvdC50cmFuc2Zvcm1lcnMuYXBwbGljYXRpb24oYm90LCB7XG4gICAgICBhcHBsaWNhdGlvbjogcGF5bG9hZC5pbnZpdGUudGFyZ2V0X2FwcGxpY2F0aW9uIGFzIERpc2NvcmRBcHBsaWNhdGlvbixcbiAgICAgIHNoYXJkSWQ6IHBheWxvYWQuc2hhcmRJZCxcbiAgICB9KVxuICBpZiAocHJvcHMudGVtcG9yYXJ5ICYmIHBheWxvYWQuaW52aXRlLnRlbXBvcmFyeSkgaW52aXRlLnRlbXBvcmFyeSA9IHBheWxvYWQuaW52aXRlLnRlbXBvcmFyeVxuICBpZiAocHJvcHMudXNlcyAmJiBwYXlsb2FkLmludml0ZS51c2VzKSBpbnZpdGUudXNlcyA9IHBheWxvYWQuaW52aXRlLnVzZXNcblxuICBpZiAoaXNJbnZpdGVXaXRoTWV0YWRhdGEocGF5bG9hZC5pbnZpdGUpKSB7XG4gICAgaWYgKHByb3BzLmNoYW5uZWxJZCAmJiBwYXlsb2FkLmludml0ZS5jaGFubmVsPy5pZCkgaW52aXRlLmNoYW5uZWxJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaW52aXRlLmNoYW5uZWwuaWQpXG4gICAgaWYgKHByb3BzLmd1aWxkSWQgJiYgcGF5bG9hZC5pbnZpdGUuZ3VpbGQ/LmlkKSBpbnZpdGUuZ3VpbGRJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaW52aXRlLmd1aWxkLmlkKVxuICAgIGlmIChwcm9wcy5hcHByb3hpbWF0ZU1lbWJlckNvdW50ICYmIHBheWxvYWQuaW52aXRlLmFwcHJveGltYXRlX21lbWJlcl9jb3VudClcbiAgICAgIGludml0ZS5hcHByb3hpbWF0ZU1lbWJlckNvdW50ID0gcGF5bG9hZC5pbnZpdGUuYXBwcm94aW1hdGVfbWVtYmVyX2NvdW50XG4gICAgaWYgKHByb3BzLmFwcHJveGltYXRlUHJlc2VuY2VDb3VudCAmJiBwYXlsb2FkLmludml0ZS5hcHByb3hpbWF0ZV9wcmVzZW5jZV9jb3VudCAhPT0gdW5kZWZpbmVkKVxuICAgICAgaW52aXRlLmFwcHJveGltYXRlUHJlc2VuY2VDb3VudCA9IHBheWxvYWQuaW52aXRlLmFwcHJveGltYXRlX3ByZXNlbmNlX2NvdW50XG4gICAgaWYgKHByb3BzLmd1aWxkU2NoZWR1bGVkRXZlbnQgJiYgcGF5bG9hZC5pbnZpdGUuZ3VpbGRfc2NoZWR1bGVkX2V2ZW50KVxuICAgICAgaW52aXRlLmd1aWxkU2NoZWR1bGVkRXZlbnQgPSBib3QudHJhbnNmb3JtZXJzLnNjaGVkdWxlZEV2ZW50KGJvdCwgcGF5bG9hZC5pbnZpdGUuZ3VpbGRfc2NoZWR1bGVkX2V2ZW50KVxuICAgIGlmIChwcm9wcy5zdGFnZUluc3RhbmNlICYmIGludml0ZS5ndWlsZElkICYmIHBheWxvYWQuaW52aXRlLnN0YWdlX2luc3RhbmNlKSB7XG4gICAgICBpbnZpdGUuc3RhZ2VJbnN0YW5jZSA9IGJvdC50cmFuc2Zvcm1lcnMuaW52aXRlU3RhZ2VJbnN0YW5jZShib3QsIHtcbiAgICAgICAgLi4ucGF5bG9hZC5pbnZpdGUuc3RhZ2VfaW5zdGFuY2UsXG4gICAgICAgIGd1aWxkSWQ6IGludml0ZS5ndWlsZElkLFxuICAgICAgfSlcbiAgICB9XG4gICAgaWYgKHByb3BzLmV4cGlyZXNBdCAmJiBwYXlsb2FkLmludml0ZS5leHBpcmVzX2F0KSB7XG4gICAgICBpbnZpdGUuZXhwaXJlc0F0ID0gRGF0ZS5wYXJzZShwYXlsb2FkLmludml0ZS5leHBpcmVzX2F0KVxuICAgIH1cbiAgICBpZiAocHJvcHMuZmxhZ3MgJiYgcGF5bG9hZC5pbnZpdGUuZmxhZ3MpIGludml0ZS5mbGFncyA9IG5ldyBUb2dnbGVCaXRmaWVsZChwYXlsb2FkLmludml0ZS5mbGFncylcbiAgfSBlbHNlIHtcbiAgICBpZiAocHJvcHMuY2hhbm5lbElkICYmIHBheWxvYWQuaW52aXRlLmNoYW5uZWxfaWQpIGludml0ZS5jaGFubmVsSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmludml0ZS5jaGFubmVsX2lkKVxuICAgIGlmIChwcm9wcy5ndWlsZElkICYmIHBheWxvYWQuaW52aXRlLmd1aWxkX2lkKSBpbnZpdGUuZ3VpbGRJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaW52aXRlLmd1aWxkX2lkKVxuICB9XG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMuaW52aXRlKGJvdCwgcGF5bG9hZC5pbnZpdGUsIGludml0ZSlcbn1cbiJdLCJuYW1lcyI6WyJUb2dnbGVCaXRmaWVsZCIsImlzSW52aXRlV2l0aE1ldGFkYXRhIiwidHJhbnNmb3JtSW52aXRlIiwiYm90IiwicGF5bG9hZCIsInByb3BzIiwidHJhbnNmb3JtZXJzIiwiZGVzaXJlZFByb3BlcnRpZXMiLCJpbnZpdGUiLCJ0eXBlIiwiY29kZSIsImNyZWF0ZWRBdCIsImNyZWF0ZWRfYXQiLCJEYXRlIiwicGFyc2UiLCJpbnZpdGVyIiwidXNlciIsIm1heEFnZSIsIm1heF9hZ2UiLCJtYXhVc2VzIiwibWF4X3VzZXMiLCJ0YXJnZXRUeXBlIiwidGFyZ2V0X3R5cGUiLCJ0YXJnZXRVc2VyIiwidGFyZ2V0X3VzZXIiLCJ0YXJnZXRBcHBsaWNhdGlvbiIsInRhcmdldF9hcHBsaWNhdGlvbiIsImFwcGxpY2F0aW9uIiwic2hhcmRJZCIsInRlbXBvcmFyeSIsInVzZXMiLCJjaGFubmVsSWQiLCJjaGFubmVsIiwiaWQiLCJzbm93Zmxha2UiLCJndWlsZElkIiwiZ3VpbGQiLCJhcHByb3hpbWF0ZU1lbWJlckNvdW50IiwiYXBwcm94aW1hdGVfbWVtYmVyX2NvdW50IiwiYXBwcm94aW1hdGVQcmVzZW5jZUNvdW50IiwiYXBwcm94aW1hdGVfcHJlc2VuY2VfY291bnQiLCJ1bmRlZmluZWQiLCJndWlsZFNjaGVkdWxlZEV2ZW50IiwiZ3VpbGRfc2NoZWR1bGVkX2V2ZW50Iiwic2NoZWR1bGVkRXZlbnQiLCJzdGFnZUluc3RhbmNlIiwic3RhZ2VfaW5zdGFuY2UiLCJpbnZpdGVTdGFnZUluc3RhbmNlIiwiZXhwaXJlc0F0IiwiZXhwaXJlc19hdCIsImZsYWdzIiwiY2hhbm5lbF9pZCIsImd1aWxkX2lkIiwiY3VzdG9taXplcnMiXSwibWFwcGluZ3MiOiJBQUNBLFNBQXdDQSxjQUFjLEVBQUVDLG9CQUFvQixRQUFRLGNBQWE7QUFFakcsT0FBTyxTQUFTQyxnQkFDZEMsR0FBZ0IsRUFDaEJDLE9BQWlGO0lBRWpGLE1BQU1DLFFBQVFGLElBQUlHLFlBQVksQ0FBQ0MsaUJBQWlCLENBQUNDLE1BQU07SUFDdkQsTUFBTUEsU0FBUyxDQUFDO0lBRWhCLElBQUlILE1BQU1JLElBQUksSUFBSSxVQUFVTCxRQUFRSSxNQUFNLEVBQUVBLE9BQU9DLElBQUksR0FBR0wsUUFBUUksTUFBTSxDQUFDQyxJQUFJO0lBQzdFLElBQUlKLE1BQU1LLElBQUksSUFBSU4sUUFBUUksTUFBTSxDQUFDRSxJQUFJLEVBQUVGLE9BQU9FLElBQUksR0FBR04sUUFBUUksTUFBTSxDQUFDRSxJQUFJO0lBQ3hFLElBQUlMLE1BQU1NLFNBQVMsSUFBSVAsUUFBUUksTUFBTSxDQUFDSSxVQUFVLEVBQUVKLE9BQU9HLFNBQVMsR0FBR0UsS0FBS0MsS0FBSyxDQUFDVixRQUFRSSxNQUFNLENBQUNJLFVBQVU7SUFDekcsSUFBSVAsTUFBTVUsT0FBTyxJQUFJWCxRQUFRSSxNQUFNLENBQUNPLE9BQU8sRUFBRVAsT0FBT08sT0FBTyxHQUFHWixJQUFJRyxZQUFZLENBQUNVLElBQUksQ0FBQ2IsS0FBS0MsUUFBUUksTUFBTSxDQUFDTyxPQUFPO0lBQy9HLElBQUlWLE1BQU1ZLE1BQU0sRUFBRVQsT0FBT1MsTUFBTSxHQUFHYixRQUFRSSxNQUFNLENBQUNVLE9BQU87SUFDeEQsSUFBSWIsTUFBTWMsT0FBTyxFQUFFWCxPQUFPVyxPQUFPLEdBQUdmLFFBQVFJLE1BQU0sQ0FBQ1ksUUFBUTtJQUMzRCxJQUFJZixNQUFNZ0IsVUFBVSxJQUFJakIsUUFBUUksTUFBTSxDQUFDYyxXQUFXLEVBQUVkLE9BQU9hLFVBQVUsR0FBR2pCLFFBQVFJLE1BQU0sQ0FBQ2MsV0FBVztJQUNsRyxJQUFJakIsTUFBTWtCLFVBQVUsSUFBSW5CLFFBQVFJLE1BQU0sQ0FBQ2dCLFdBQVcsRUFBRWhCLE9BQU9lLFVBQVUsR0FBR3BCLElBQUlHLFlBQVksQ0FBQ1UsSUFBSSxDQUFDYixLQUFLQyxRQUFRSSxNQUFNLENBQUNnQixXQUFXO0lBQzdILElBQUluQixNQUFNb0IsaUJBQWlCLElBQUlyQixRQUFRSSxNQUFNLENBQUNrQixrQkFBa0IsRUFDOURsQixPQUFPaUIsaUJBQWlCLEdBQUd0QixJQUFJRyxZQUFZLENBQUNxQixXQUFXLENBQUN4QixLQUFLO1FBQzNEd0IsYUFBYXZCLFFBQVFJLE1BQU0sQ0FBQ2tCLGtCQUFrQjtRQUM5Q0UsU0FBU3hCLFFBQVF3QixPQUFPO0lBQzFCO0lBQ0YsSUFBSXZCLE1BQU13QixTQUFTLElBQUl6QixRQUFRSSxNQUFNLENBQUNxQixTQUFTLEVBQUVyQixPQUFPcUIsU0FBUyxHQUFHekIsUUFBUUksTUFBTSxDQUFDcUIsU0FBUztJQUM1RixJQUFJeEIsTUFBTXlCLElBQUksSUFBSTFCLFFBQVFJLE1BQU0sQ0FBQ3NCLElBQUksRUFBRXRCLE9BQU9zQixJQUFJLEdBQUcxQixRQUFRSSxNQUFNLENBQUNzQixJQUFJO0lBRXhFLElBQUk3QixxQkFBcUJHLFFBQVFJLE1BQU0sR0FBRztRQUN4QyxJQUFJSCxNQUFNMEIsU0FBUyxJQUFJM0IsUUFBUUksTUFBTSxDQUFDd0IsT0FBTyxFQUFFQyxJQUFJekIsT0FBT3VCLFNBQVMsR0FBRzVCLElBQUlHLFlBQVksQ0FBQzRCLFNBQVMsQ0FBQzlCLFFBQVFJLE1BQU0sQ0FBQ3dCLE9BQU8sQ0FBQ0MsRUFBRTtRQUMxSCxJQUFJNUIsTUFBTThCLE9BQU8sSUFBSS9CLFFBQVFJLE1BQU0sQ0FBQzRCLEtBQUssRUFBRUgsSUFBSXpCLE9BQU8yQixPQUFPLEdBQUdoQyxJQUFJRyxZQUFZLENBQUM0QixTQUFTLENBQUM5QixRQUFRSSxNQUFNLENBQUM0QixLQUFLLENBQUNILEVBQUU7UUFDbEgsSUFBSTVCLE1BQU1nQyxzQkFBc0IsSUFBSWpDLFFBQVFJLE1BQU0sQ0FBQzhCLHdCQUF3QixFQUN6RTlCLE9BQU82QixzQkFBc0IsR0FBR2pDLFFBQVFJLE1BQU0sQ0FBQzhCLHdCQUF3QjtRQUN6RSxJQUFJakMsTUFBTWtDLHdCQUF3QixJQUFJbkMsUUFBUUksTUFBTSxDQUFDZ0MsMEJBQTBCLEtBQUtDLFdBQ2xGakMsT0FBTytCLHdCQUF3QixHQUFHbkMsUUFBUUksTUFBTSxDQUFDZ0MsMEJBQTBCO1FBQzdFLElBQUluQyxNQUFNcUMsbUJBQW1CLElBQUl0QyxRQUFRSSxNQUFNLENBQUNtQyxxQkFBcUIsRUFDbkVuQyxPQUFPa0MsbUJBQW1CLEdBQUd2QyxJQUFJRyxZQUFZLENBQUNzQyxjQUFjLENBQUN6QyxLQUFLQyxRQUFRSSxNQUFNLENBQUNtQyxxQkFBcUI7UUFDeEcsSUFBSXRDLE1BQU13QyxhQUFhLElBQUlyQyxPQUFPMkIsT0FBTyxJQUFJL0IsUUFBUUksTUFBTSxDQUFDc0MsY0FBYyxFQUFFO1lBQzFFdEMsT0FBT3FDLGFBQWEsR0FBRzFDLElBQUlHLFlBQVksQ0FBQ3lDLG1CQUFtQixDQUFDNUMsS0FBSztnQkFDL0QsR0FBR0MsUUFBUUksTUFBTSxDQUFDc0MsY0FBYztnQkFDaENYLFNBQVMzQixPQUFPMkIsT0FBTztZQUN6QjtRQUNGO1FBQ0EsSUFBSTlCLE1BQU0yQyxTQUFTLElBQUk1QyxRQUFRSSxNQUFNLENBQUN5QyxVQUFVLEVBQUU7WUFDaER6QyxPQUFPd0MsU0FBUyxHQUFHbkMsS0FBS0MsS0FBSyxDQUFDVixRQUFRSSxNQUFNLENBQUN5QyxVQUFVO1FBQ3pEO1FBQ0EsSUFBSTVDLE1BQU02QyxLQUFLLElBQUk5QyxRQUFRSSxNQUFNLENBQUMwQyxLQUFLLEVBQUUxQyxPQUFPMEMsS0FBSyxHQUFHLElBQUlsRCxlQUFlSSxRQUFRSSxNQUFNLENBQUMwQyxLQUFLO0lBQ2pHLE9BQU87UUFDTCxJQUFJN0MsTUFBTTBCLFNBQVMsSUFBSTNCLFFBQVFJLE1BQU0sQ0FBQzJDLFVBQVUsRUFBRTNDLE9BQU91QixTQUFTLEdBQUc1QixJQUFJRyxZQUFZLENBQUM0QixTQUFTLENBQUM5QixRQUFRSSxNQUFNLENBQUMyQyxVQUFVO1FBQ3pILElBQUk5QyxNQUFNOEIsT0FBTyxJQUFJL0IsUUFBUUksTUFBTSxDQUFDNEMsUUFBUSxFQUFFNUMsT0FBTzJCLE9BQU8sR0FBR2hDLElBQUlHLFlBQVksQ0FBQzRCLFNBQVMsQ0FBQzlCLFFBQVFJLE1BQU0sQ0FBQzRDLFFBQVE7SUFDbkg7SUFFQSxPQUFPakQsSUFBSUcsWUFBWSxDQUFDK0MsV0FBVyxDQUFDN0MsTUFBTSxDQUFDTCxLQUFLQyxRQUFRSSxNQUFNLEVBQUVBO0FBQ2xFIn0=
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvaW52aXRlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRGlzY29yZEFwcGxpY2F0aW9uLCBEaXNjb3JkSW52aXRlQ3JlYXRlLCBEaXNjb3JkSW52aXRlTWV0YWRhdGEgfSBmcm9tICdAZGlzY29yZGVuby90eXBlcydcbmltcG9ydCB7IHR5cGUgSW50ZXJuYWxCb3QsIHR5cGUgSW52aXRlLCBpc0ludml0ZVdpdGhNZXRhZGF0YSwgVG9nZ2xlQml0ZmllbGQgfSBmcm9tICcuLi9pbmRleC5qcydcblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybUludml0ZShcbiAgYm90OiBJbnRlcm5hbEJvdCxcbiAgcGF5bG9hZDogeyBpbnZpdGU6IERpc2NvcmRJbnZpdGVDcmVhdGUgfCBEaXNjb3JkSW52aXRlTWV0YWRhdGE7IHNoYXJkSWQ6IG51bWJlciB9LFxuKTogdHlwZW9mIGJvdC50cmFuc2Zvcm1lcnMuJGluZmVycmVkVHlwZXMuaW52aXRlIHtcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLmludml0ZVxuICBjb25zdCBpbnZpdGUgPSB7fSBhcyBJbnZpdGVcblxuICBpZiAocHJvcHMudHlwZSAmJiAndHlwZScgaW4gcGF5bG9hZC5pbnZpdGUpIGludml0ZS50eXBlID0gcGF5bG9hZC5pbnZpdGUudHlwZVxuICBpZiAocHJvcHMuY29kZSAmJiBwYXlsb2FkLmludml0ZS5jb2RlKSBpbnZpdGUuY29kZSA9IHBheWxvYWQuaW52aXRlLmNvZGVcbiAgaWYgKHByb3BzLmNyZWF0ZWRBdCAmJiBwYXlsb2FkLmludml0ZS5jcmVhdGVkX2F0KSBpbnZpdGUuY3JlYXRlZEF0ID0gRGF0ZS5wYXJzZShwYXlsb2FkLmludml0ZS5jcmVhdGVkX2F0KVxuICBpZiAocHJvcHMuaW52aXRlciAmJiBwYXlsb2FkLmludml0ZS5pbnZpdGVyKSBpbnZpdGUuaW52aXRlciA9IGJvdC50cmFuc2Zvcm1lcnMudXNlcihib3QsIHBheWxvYWQuaW52aXRlLmludml0ZXIpXG4gIGlmIChwcm9wcy5tYXhBZ2UpIGludml0ZS5tYXhBZ2UgPSBwYXlsb2FkLmludml0ZS5tYXhfYWdlXG4gIGlmIChwcm9wcy5tYXhVc2VzKSBpbnZpdGUubWF4VXNlcyA9IHBheWxvYWQuaW52aXRlLm1heF91c2VzXG4gIGlmIChwcm9wcy50YXJnZXRUeXBlICYmIHBheWxvYWQuaW52aXRlLnRhcmdldF90eXBlKSBpbnZpdGUudGFyZ2V0VHlwZSA9IHBheWxvYWQuaW52aXRlLnRhcmdldF90eXBlXG4gIGlmIChwcm9wcy50YXJnZXRVc2VyICYmIHBheWxvYWQuaW52aXRlLnRhcmdldF91c2VyKSBpbnZpdGUudGFyZ2V0VXNlciA9IGJvdC50cmFuc2Zvcm1lcnMudXNlcihib3QsIHBheWxvYWQuaW52aXRlLnRhcmdldF91c2VyKVxuICBpZiAocHJvcHMudGFyZ2V0QXBwbGljYXRpb24gJiYgcGF5bG9hZC5pbnZpdGUudGFyZ2V0X2FwcGxpY2F0aW9uKVxuICAgIGludml0ZS50YXJnZXRBcHBsaWNhdGlvbiA9IGJvdC50cmFuc2Zvcm1lcnMuYXBwbGljYXRpb24oYm90LCB7XG4gICAgICBhcHBsaWNhdGlvbjogcGF5bG9hZC5pbnZpdGUudGFyZ2V0X2FwcGxpY2F0aW9uIGFzIERpc2NvcmRBcHBsaWNhdGlvbixcbiAgICAgIHNoYXJkSWQ6IHBheWxvYWQuc2hhcmRJZCxcbiAgICB9KVxuICBpZiAocHJvcHMudGVtcG9yYXJ5ICYmIHBheWxvYWQuaW52aXRlLnRlbXBvcmFyeSkgaW52aXRlLnRlbXBvcmFyeSA9IHBheWxvYWQuaW52aXRlLnRlbXBvcmFyeVxuICBpZiAocHJvcHMudXNlcyAmJiBwYXlsb2FkLmludml0ZS51c2VzKSBpbnZpdGUudXNlcyA9IHBheWxvYWQuaW52aXRlLnVzZXNcblxuICBpZiAoaXNJbnZpdGVXaXRoTWV0YWRhdGEocGF5bG9hZC5pbnZpdGUpKSB7XG4gICAgaWYgKHByb3BzLmNoYW5uZWxJZCAmJiBwYXlsb2FkLmludml0ZS5jaGFubmVsPy5pZCkgaW52aXRlLmNoYW5uZWxJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaW52aXRlLmNoYW5uZWwuaWQpXG4gICAgaWYgKHByb3BzLmd1aWxkSWQgJiYgcGF5bG9hZC5pbnZpdGUuZ3VpbGQ/LmlkKSBpbnZpdGUuZ3VpbGRJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaW52aXRlLmd1aWxkLmlkKVxuICAgIGlmIChwcm9wcy5hcHByb3hpbWF0ZU1lbWJlckNvdW50ICYmIHBheWxvYWQuaW52aXRlLmFwcHJveGltYXRlX21lbWJlcl9jb3VudClcbiAgICAgIGludml0ZS5hcHByb3hpbWF0ZU1lbWJlckNvdW50ID0gcGF5bG9hZC5pbnZpdGUuYXBwcm94aW1hdGVfbWVtYmVyX2NvdW50XG4gICAgaWYgKHByb3BzLmFwcHJveGltYXRlUHJlc2VuY2VDb3VudCAmJiBwYXlsb2FkLmludml0ZS5hcHByb3hpbWF0ZV9wcmVzZW5jZV9jb3VudCAhPT0gdW5kZWZpbmVkKVxuICAgICAgaW52aXRlLmFwcHJveGltYXRlUHJlc2VuY2VDb3VudCA9IHBheWxvYWQuaW52aXRlLmFwcHJveGltYXRlX3ByZXNlbmNlX2NvdW50XG4gICAgaWYgKHByb3BzLmd1aWxkU2NoZWR1bGVkRXZlbnQgJiYgcGF5bG9hZC5pbnZpdGUuZ3VpbGRfc2NoZWR1bGVkX2V2ZW50KVxuICAgICAgaW52aXRlLmd1aWxkU2NoZWR1bGVkRXZlbnQgPSBib3QudHJhbnNmb3JtZXJzLnNjaGVkdWxlZEV2ZW50KGJvdCwgcGF5bG9hZC5pbnZpdGUuZ3VpbGRfc2NoZWR1bGVkX2V2ZW50KVxuICAgIGlmIChwcm9wcy5zdGFnZUluc3RhbmNlICYmIGludml0ZS5ndWlsZElkICYmIHBheWxvYWQuaW52aXRlLnN0YWdlX2luc3RhbmNlKSB7XG4gICAgICBpbnZpdGUuc3RhZ2VJbnN0YW5jZSA9IGJvdC50cmFuc2Zvcm1lcnMuaW52aXRlU3RhZ2VJbnN0YW5jZShib3QsIHtcbiAgICAgICAgLi4ucGF5bG9hZC5pbnZpdGUuc3RhZ2VfaW5zdGFuY2UsXG4gICAgICAgIGd1aWxkSWQ6IGludml0ZS5ndWlsZElkLFxuICAgICAgfSlcbiAgICB9XG4gICAgaWYgKHByb3BzLmV4cGlyZXNBdCAmJiBwYXlsb2FkLmludml0ZS5leHBpcmVzX2F0KSB7XG4gICAgICBpbnZpdGUuZXhwaXJlc0F0ID0gRGF0ZS5wYXJzZShwYXlsb2FkLmludml0ZS5leHBpcmVzX2F0KVxuICAgIH1cbiAgICBpZiAocHJvcHMuZmxhZ3MgJiYgcGF5bG9hZC5pbnZpdGUuZmxhZ3MpIGludml0ZS5mbGFncyA9IG5ldyBUb2dnbGVCaXRmaWVsZChwYXlsb2FkLmludml0ZS5mbGFncylcbiAgfSBlbHNlIHtcbiAgICBpZiAocHJvcHMuY2hhbm5lbElkICYmIHBheWxvYWQuaW52aXRlLmNoYW5uZWxfaWQpIGludml0ZS5jaGFubmVsSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmludml0ZS5jaGFubmVsX2lkKVxuICAgIGlmIChwcm9wcy5ndWlsZElkICYmIHBheWxvYWQuaW52aXRlLmd1aWxkX2lkKSBpbnZpdGUuZ3VpbGRJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaW52aXRlLmd1aWxkX2lkKVxuICB9XG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMuaW52aXRlKGJvdCwgcGF5bG9hZC5pbnZpdGUsIGludml0ZSlcbn1cbiJdLCJuYW1lcyI6WyJpc0ludml0ZVdpdGhNZXRhZGF0YSIsIlRvZ2dsZUJpdGZpZWxkIiwidHJhbnNmb3JtSW52aXRlIiwiYm90IiwicGF5bG9hZCIsInByb3BzIiwidHJhbnNmb3JtZXJzIiwiZGVzaXJlZFByb3BlcnRpZXMiLCJpbnZpdGUiLCJ0eXBlIiwiY29kZSIsImNyZWF0ZWRBdCIsImNyZWF0ZWRfYXQiLCJEYXRlIiwicGFyc2UiLCJpbnZpdGVyIiwidXNlciIsIm1heEFnZSIsIm1heF9hZ2UiLCJtYXhVc2VzIiwibWF4X3VzZXMiLCJ0YXJnZXRUeXBlIiwidGFyZ2V0X3R5cGUiLCJ0YXJnZXRVc2VyIiwidGFyZ2V0X3VzZXIiLCJ0YXJnZXRBcHBsaWNhdGlvbiIsInRhcmdldF9hcHBsaWNhdGlvbiIsImFwcGxpY2F0aW9uIiwic2hhcmRJZCIsInRlbXBvcmFyeSIsInVzZXMiLCJjaGFubmVsSWQiLCJjaGFubmVsIiwiaWQiLCJzbm93Zmxha2UiLCJndWlsZElkIiwiZ3VpbGQiLCJhcHByb3hpbWF0ZU1lbWJlckNvdW50IiwiYXBwcm94aW1hdGVfbWVtYmVyX2NvdW50IiwiYXBwcm94aW1hdGVQcmVzZW5jZUNvdW50IiwiYXBwcm94aW1hdGVfcHJlc2VuY2VfY291bnQiLCJ1bmRlZmluZWQiLCJndWlsZFNjaGVkdWxlZEV2ZW50IiwiZ3VpbGRfc2NoZWR1bGVkX2V2ZW50Iiwic2NoZWR1bGVkRXZlbnQiLCJzdGFnZUluc3RhbmNlIiwic3RhZ2VfaW5zdGFuY2UiLCJpbnZpdGVTdGFnZUluc3RhbmNlIiwiZXhwaXJlc0F0IiwiZXhwaXJlc19hdCIsImZsYWdzIiwiY2hhbm5lbF9pZCIsImd1aWxkX2lkIiwiY3VzdG9taXplcnMiXSwibWFwcGluZ3MiOiJBQUNBLFNBQXdDQSxvQkFBb0IsRUFBRUMsY0FBYyxRQUFRLGNBQWE7QUFFakcsT0FBTyxTQUFTQyxnQkFDZEMsR0FBZ0IsRUFDaEJDLE9BQWlGO0lBRWpGLE1BQU1DLFFBQVFGLElBQUlHLFlBQVksQ0FBQ0MsaUJBQWlCLENBQUNDLE1BQU07SUFDdkQsTUFBTUEsU0FBUyxDQUFDO0lBRWhCLElBQUlILE1BQU1JLElBQUksSUFBSSxVQUFVTCxRQUFRSSxNQUFNLEVBQUVBLE9BQU9DLElBQUksR0FBR0wsUUFBUUksTUFBTSxDQUFDQyxJQUFJO0lBQzdFLElBQUlKLE1BQU1LLElBQUksSUFBSU4sUUFBUUksTUFBTSxDQUFDRSxJQUFJLEVBQUVGLE9BQU9FLElBQUksR0FBR04sUUFBUUksTUFBTSxDQUFDRSxJ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
@@ -1,6 +1,6 @@
1
1
  import { iconHashToBigInt } from '@discordeno/utils';
2
- import { Permissions } from './toggles/Permissions.js';
3
2
  import { MemberToggles } from './toggles/member.js';
3
+ import { Permissions } from './toggles/Permissions.js';
4
4
  export const baseMember = {
5
5
  // This allows typescript to still check for type errors on functions below
6
6
  ...undefined,
@@ -48,4 +48,4 @@ export function transformMember(bot, payload, guildId, userId) {
48
48
  return bot.transformers.customizers.member(bot, payload, member);
49
49
  }
50
50
 
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvbWVtYmVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQmlnU3RyaW5nLCBEaXNjb3JkTWVtYmVyIH0gZnJvbSAnQGRpc2NvcmRlbm8vdHlwZXMnXG5pbXBvcnQgeyBpY29uSGFzaFRvQmlnSW50IH0gZnJvbSAnQGRpc2NvcmRlbm8vdXRpbHMnXG5pbXBvcnQgdHlwZSB7IEludGVybmFsQm90IH0gZnJvbSAnLi4vYm90LmpzJ1xuaW1wb3J0IHsgUGVybWlzc2lvbnMgfSBmcm9tICcuL3RvZ2dsZXMvUGVybWlzc2lvbnMuanMnXG5pbXBvcnQgeyBNZW1iZXJUb2dnbGVzIH0gZnJvbSAnLi90b2dnbGVzL21lbWJlci5qcydcbmltcG9ydCB0eXBlIHsgTWVtYmVyIH0gZnJvbSAnLi90eXBlcy5qcydcblxuZXhwb3J0IGNvbnN0IGJhc2VNZW1iZXI6IEludGVybmFsQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsnbWVtYmVyJ10gPSB7XG4gIC8vIFRoaXMgYWxsb3dzIHR5cGVzY3JpcHQgdG8gc3RpbGwgY2hlY2sgZm9yIHR5cGUgZXJyb3JzIG9uIGZ1bmN0aW9ucyBiZWxvd1xuICAuLi4odW5kZWZpbmVkIGFzIHVua25vd24gYXMgSW50ZXJuYWxCb3RbJ3RyYW5zZm9ybWVycyddWyckaW5mZXJyZWRUeXBlcyddWydtZW1iZXInXSksXG5cbiAgZ2V0IGRlYWYoKSB7XG4gICAgcmV0dXJuICEhdGhpcy50b2dnbGVzPy5oYXMoJ2RlYWYnKVxuICB9LFxuICBnZXQgbXV0ZSgpIHtcbiAgICByZXR1cm4gISF0aGlzLnRvZ2dsZXM/LmhhcygnbXV0ZScpXG4gIH0sXG4gIGdldCBwZW5kaW5nKCkge1xuICAgIHJldHVybiAhIXRoaXMudG9nZ2xlcz8uaGFzKCdwZW5kaW5nJylcbiAgfSxcbiAgZ2V0IGZsYWdzKCkge1xuICAgIHJldHVybiB0aGlzLnRvZ2dsZXM/LmZsYWdzID8/IDBcbiAgfSxcbiAgZ2V0IGRpZFJlam9pbigpIHtcbiAgICByZXR1cm4gISF0aGlzLnRvZ2dsZXM/LmRpZFJlam9pblxuICB9LFxuICBnZXQgc3RhcnRlZE9uYm9hcmRpbmcoKSB7XG4gICAgcmV0dXJuICEhdGhpcy50b2dnbGVzPy5zdGFydGVkT25ib2FyZGluZ1xuICB9LFxuICBnZXQgYnlwYXNzZXNWZXJpZmljYXRpb24oKSB7XG4gICAgcmV0dXJuICEhdGhpcy50b2dnbGVzPy5ieXBhc3Nlc1ZlcmlmaWNhdGlvblxuICB9LFxuICBnZXQgY29tcGxldGVkT25ib2FyZGluZygpIHtcbiAgICByZXR1cm4gISF0aGlzLnRvZ2dsZXM/LmNvbXBsZXRlZE9uYm9hcmRpbmdcbiAgfSxcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybU1lbWJlcihcbiAgYm90OiBJbnRlcm5hbEJvdCxcbiAgcGF5bG9hZDogRGlzY29yZE1lbWJlcixcbiAgZ3VpbGRJZDogQmlnU3RyaW5nLFxuICB1c2VySWQ6IEJpZ1N0cmluZyxcbik6IHR5cGVvZiBib3QudHJhbnNmb3JtZXJzLiRpbmZlcnJlZFR5cGVzLm1lbWJlciB7XG4gIGNvbnN0IG1lbWJlcjogTWVtYmVyID0gT2JqZWN0LmNyZWF0ZShiYXNlTWVtYmVyKVxuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMubWVtYmVyXG5cbiAgaWYgKHByb3BzLmlkICYmIHVzZXJJZCkgbWVtYmVyLmlkID0gdHlwZW9mIHVzZXJJZCA9PT0gJ3N0cmluZycgPyBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZSh1c2VySWQpIDogdXNlcklkXG4gIGlmIChwcm9wcy5ndWlsZElkICYmIGd1aWxkSWQpIG1lbWJlci5ndWlsZElkID0gdHlwZW9mIGd1aWxkSWQgPT09ICdzdHJpbmcnID8gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UoZ3VpbGRJZCkgOiBndWlsZElkXG4gIGlmIChwcm9wcy51c2VyICYmIHBheWxvYWQudXNlcikgbWVtYmVyLnVzZXIgPSBib3QudHJhbnNmb3JtZXJzLnVzZXIoYm90LCBwYXlsb2FkLnVzZXIpXG4gIGlmIChwcm9wcy5uaWNrICYmIHBheWxvYWQubmljaykgbWVtYmVyLm5pY2sgPSBwYXlsb2FkLm5pY2tcbiAgaWYgKHByb3BzLnJvbGVzICYmIHBheWxvYWQucm9sZXMpIG1lbWJlci5yb2xlcyA9IHBheWxvYWQucm9sZXMubWFwKChpZCkgPT4gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UoaWQpKVxuICBpZiAocHJvcHMuam9pbmVkQXQgJiYgcGF5bG9hZC5qb2luZWRfYXQpIG1lbWJlci5qb2luZWRBdCA9IERhdGUucGFyc2UocGF5bG9hZC5qb2luZWRfYXQpXG4gIGlmIChwcm9wcy5wcmVtaXVtU2luY2UgJiYgcGF5bG9hZC5wcmVtaXVtX3NpbmNlKSBtZW1iZXIucHJlbWl1bVNpbmNlID0gRGF0ZS5wYXJzZShwYXlsb2FkLnByZW1pdW1fc2luY2UpXG4gIGlmIChwcm9wcy5jb21tdW5pY2F0aW9uRGlzYWJsZWRVbnRpbCAmJiBwYXlsb2FkLmNvbW11bmljYXRpb25fZGlzYWJsZWRfdW50aWwpXG4gICAgbWVtYmVyLmNvbW11bmljYXRpb25EaXNhYmxlZFVudGlsID0gRGF0ZS5wYXJzZShwYXlsb2FkLmNvbW11bmljYXRpb25fZGlzYWJsZWRfdW50aWwpXG4gIGlmIChwcm9wcy5hdmF0YXIgJiYgcGF5bG9hZC5hdmF0YXIpIG1lbWJlci5hdmF0YXIgPSBpY29uSGFzaFRvQmlnSW50KHBheWxvYWQuYXZhdGFyKVxuICBpZiAocHJvcHMuYmFubmVyICYmIHBheWxvYWQuYmFubmVyKSBtZW1iZXIuYmFubmVyID0gaWNvbkhhc2hUb0JpZ0ludChwYXlsb2FkLmJhbm5lcilcbiAgaWYgKHByb3BzLnBlcm1pc3Npb25zICYmIHBheWxvYWQucGVybWlzc2lvbnMpIG1lbWJlci5wZXJtaXNzaW9ucyA9IG5ldyBQZXJtaXNzaW9ucyhwYXlsb2FkLnBlcm1pc3Npb25zKVxuICBpZiAocHJvcHMudG9nZ2xlcykgbWVtYmVyLnRvZ2dsZXMgPSBuZXcgTWVtYmVyVG9nZ2xlcyhwYXlsb2FkKVxuICBpZiAocHJvcHMuYXZhdGFyRGVjb3JhdGlvbkRhdGEgJiYgcGF5bG9hZC5hdmF0YXJfZGVjb3JhdGlvbl9kYXRhKVxuICAgIG1lbWJlci5hdmF0YXJEZWNvcmF0aW9uRGF0YSA9IGJvdC50cmFuc2Zvcm1lcnMuYXZhdGFyRGVjb3JhdGlvbkRhdGEoYm90LCBwYXlsb2FkLmF2YXRhcl9kZWNvcmF0aW9uX2RhdGEpXG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMubWVtYmVyKGJvdCwgcGF5bG9hZCwgbWVtYmVyKVxufVxuIl0sIm5hbWVzIjpbImljb25IYXNoVG9CaWdJbnQiLCJQZXJtaXNzaW9ucyIsIk1lbWJlclRvZ2dsZXMiLCJiYXNlTWVtYmVyIiwidW5kZWZpbmVkIiwiZGVhZiIsInRvZ2dsZXMiLCJoYXMiLCJtdXRlIiwicGVuZGluZyIsImZsYWdzIiwiZGlkUmVqb2luIiwic3RhcnRlZE9uYm9hcmRpbmciLCJieXBhc3Nlc1ZlcmlmaWNhdGlvbiIsImNvbXBsZXRlZE9uYm9hcmRpbmciLCJ0cmFuc2Zvcm1NZW1iZXIiLCJib3QiLCJwYXlsb2FkIiwiZ3VpbGRJZCIsInVzZXJJZCIsIm1lbWJlciIsIk9iamVjdCIsImNyZWF0ZSIsInByb3BzIiwidHJhbnNmb3JtZXJzIiwiZGVzaXJlZFByb3BlcnRpZXMiLCJpZCIsInNub3dmbGFrZSIsInVzZXIiLCJuaWNrIiwicm9sZXMiLCJtYXAiLCJqb2luZWRBdCIsImpvaW5lZF9hdCIsIkRhdGUiLCJwYXJzZSIsInByZW1pdW1TaW5jZSIsInByZW1pdW1fc2luY2UiLCJjb21tdW5pY2F0aW9uRGlzYWJsZWRVbnRpbCIsImNvbW11bmljYXRpb25fZGlzYWJsZWRfdW50aWwiLCJhdmF0YXIiLCJiYW5uZXIiLCJwZXJtaXNzaW9ucyIsImF2YXRhckRlY29yYXRpb25EYXRhIiwiYXZhdGFyX2RlY29yYXRpb25fZGF0YSIsImN1c3RvbWl6ZXJzIl0s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
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvbWVtYmVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQmlnU3RyaW5nLCBEaXNjb3JkTWVtYmVyIH0gZnJvbSAnQGRpc2NvcmRlbm8vdHlwZXMnXG5pbXBvcnQgeyBpY29uSGFzaFRvQmlnSW50IH0gZnJvbSAnQGRpc2NvcmRlbm8vdXRpbHMnXG5pbXBvcnQgdHlwZSB7IEludGVybmFsQm90IH0gZnJvbSAnLi4vYm90LmpzJ1xuaW1wb3J0IHsgTWVtYmVyVG9nZ2xlcyB9IGZyb20gJy4vdG9nZ2xlcy9tZW1iZXIuanMnXG5pbXBvcnQgeyBQZXJtaXNzaW9ucyB9IGZyb20gJy4vdG9nZ2xlcy9QZXJtaXNzaW9ucy5qcydcbmltcG9ydCB0eXBlIHsgTWVtYmVyIH0gZnJvbSAnLi90eXBlcy5qcydcblxuZXhwb3J0IGNvbnN0IGJhc2VNZW1iZXI6IEludGVybmFsQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsnbWVtYmVyJ10gPSB7XG4gIC8vIFRoaXMgYWxsb3dzIHR5cGVzY3JpcHQgdG8gc3RpbGwgY2hlY2sgZm9yIHR5cGUgZXJyb3JzIG9uIGZ1bmN0aW9ucyBiZWxvd1xuICAuLi4odW5kZWZpbmVkIGFzIHVua25vd24gYXMgSW50ZXJuYWxCb3RbJ3RyYW5zZm9ybWVycyddWyckaW5mZXJyZWRUeXBlcyddWydtZW1iZXInXSksXG5cbiAgZ2V0IGRlYWYoKSB7XG4gICAgcmV0dXJuICEhdGhpcy50b2dnbGVzPy5oYXMoJ2RlYWYnKVxuICB9LFxuICBnZXQgbXV0ZSgpIHtcbiAgICByZXR1cm4gISF0aGlzLnRvZ2dsZXM/LmhhcygnbXV0ZScpXG4gIH0sXG4gIGdldCBwZW5kaW5nKCkge1xuICAgIHJldHVybiAhIXRoaXMudG9nZ2xlcz8uaGFzKCdwZW5kaW5nJylcbiAgfSxcbiAgZ2V0IGZsYWdzKCkge1xuICAgIHJldHVybiB0aGlzLnRvZ2dsZXM/LmZsYWdzID8/IDBcbiAgfSxcbiAgZ2V0IGRpZFJlam9pbigpIHtcbiAgICByZXR1cm4gISF0aGlzLnRvZ2dsZXM/LmRpZFJlam9pblxuICB9LFxuICBnZXQgc3RhcnRlZE9uYm9hcmRpbmcoKSB7XG4gICAgcmV0dXJuICEhdGhpcy50b2dnbGVzPy5zdGFydGVkT25ib2FyZGluZ1xuICB9LFxuICBnZXQgYnlwYXNzZXNWZXJpZmljYXRpb24oKSB7XG4gICAgcmV0dXJuICEhdGhpcy50b2dnbGVzPy5ieXBhc3Nlc1ZlcmlmaWNhdGlvblxuICB9LFxuICBnZXQgY29tcGxldGVkT25ib2FyZGluZygpIHtcbiAgICByZXR1cm4gISF0aGlzLnRvZ2dsZXM/LmNvbXBsZXRlZE9uYm9hcmRpbmdcbiAgfSxcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybU1lbWJlcihcbiAgYm90OiBJbnRlcm5hbEJvdCxcbiAgcGF5bG9hZDogRGlzY29yZE1lbWJlcixcbiAgZ3VpbGRJZDogQmlnU3RyaW5nLFxuICB1c2VySWQ6IEJpZ1N0cmluZyxcbik6IHR5cGVvZiBib3QudHJhbnNmb3JtZXJzLiRpbmZlcnJlZFR5cGVzLm1lbWJlciB7XG4gIGNvbnN0IG1lbWJlcjogTWVtYmVyID0gT2JqZWN0LmNyZWF0ZShiYXNlTWVtYmVyKVxuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMubWVtYmVyXG5cbiAgaWYgKHByb3BzLmlkICYmIHVzZXJJZCkgbWVtYmVyLmlkID0gdHlwZW9mIHVzZXJJZCA9PT0gJ3N0cmluZycgPyBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZSh1c2VySWQpIDogdXNlcklkXG4gIGlmIChwcm9wcy5ndWlsZElkICYmIGd1aWxkSWQpIG1lbWJlci5ndWlsZElkID0gdHlwZW9mIGd1aWxkSWQgPT09ICdzdHJpbmcnID8gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UoZ3VpbGRJZCkgOiBndWlsZElkXG4gIGlmIChwcm9wcy51c2VyICYmIHBheWxvYWQudXNlcikgbWVtYmVyLnVzZXIgPSBib3QudHJhbnNmb3JtZXJzLnVzZXIoYm90LCBwYXlsb2FkLnVzZXIpXG4gIGlmIChwcm9wcy5uaWNrICYmIHBheWxvYWQubmljaykgbWVtYmVyLm5pY2sgPSBwYXlsb2FkLm5pY2tcbiAgaWYgKHByb3BzLnJvbGVzICYmIHBheWxvYWQucm9sZXMpIG1lbWJlci5yb2xlcyA9IHBheWxvYWQucm9sZXMubWFwKChpZCkgPT4gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UoaWQpKVxuICBpZiAocHJvcHMuam9pbmVkQXQgJiYgcGF5bG9hZC5qb2luZWRfYXQpIG1lbWJlci5qb2luZWRBdCA9IERhdGUucGFyc2UocGF5bG9hZC5qb2luZWRfYXQpXG4gIGlmIChwcm9wcy5wcmVtaXVtU2luY2UgJiYgcGF5bG9hZC5wcmVtaXVtX3NpbmNlKSBtZW1iZXIucHJlbWl1bVNpbmNlID0gRGF0ZS5wYXJzZShwYXlsb2FkLnByZW1pdW1fc2luY2UpXG4gIGlmIChwcm9wcy5jb21tdW5pY2F0aW9uRGlzYWJsZWRVbnRpbCAmJiBwYXlsb2FkLmNvbW11bmljYXRpb25fZGlzYWJsZWRfdW50aWwpXG4gICAgbWVtYmVyLmNvbW11bmljYXRpb25EaXNhYmxlZFVudGlsID0gRGF0ZS5wYXJzZShwYXlsb2FkLmNvbW11bmljYXRpb25fZGlzYWJsZWRfdW50aWwpXG4gIGlmIChwcm9wcy5hdmF0YXIgJiYgcGF5bG9hZC5hdmF0YXIpIG1lbWJlci5hdmF0YXIgPSBpY29uSGFzaFRvQmlnSW50KHBheWxvYWQuYXZhdGFyKVxuICBpZiAocHJvcHMuYmFubmVyICYmIHBheWxvYWQuYmFubmVyKSBtZW1iZXIuYmFubmVyID0gaWNvbkhhc2hUb0JpZ0ludChwYXlsb2FkLmJhbm5lcilcbiAgaWYgKHByb3BzLnBlcm1pc3Npb25zICYmIHBheWxvYWQucGVybWlzc2lvbnMpIG1lbWJlci5wZXJtaXNzaW9ucyA9IG5ldyBQZXJtaXNzaW9ucyhwYXlsb2FkLnBlcm1pc3Npb25zKVxuICBpZiAocHJvcHMudG9nZ2xlcykgbWVtYmVyLnRvZ2dsZXMgPSBuZXcgTWVtYmVyVG9nZ2xlcyhwYXlsb2FkKVxuICBpZiAocHJvcHMuYXZhdGFyRGVjb3JhdGlvbkRhdGEgJiYgcGF5bG9hZC5hdmF0YXJfZGVjb3JhdGlvbl9kYXRhKVxuICAgIG1lbWJlci5hdmF0YXJEZWNvcmF0aW9uRGF0YSA9IGJvdC50cmFuc2Zvcm1lcnMuYXZhdGFyRGVjb3JhdGlvbkRhdGEoYm90LCBwYXlsb2FkLmF2YXRhcl9kZWNvcmF0aW9uX2RhdGEpXG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMubWVtYmVyKGJvdCwgcGF5bG9hZCwgbWVtYmVyKVxufVxuIl0sIm5hbWVzIjpbImljb25IYXNoVG9CaWdJbnQiLCJNZW1iZXJUb2dnbGVzIiwiUGVybWlzc2lvbnMiLCJiYXNlTWVtYmVyIiwidW5kZWZpbmVkIiwiZGVhZiIsInRvZ2dsZXMiLCJoYXMiLCJtdXRlIiwicGVuZGluZyIsImZsYWdzIiwiZGlkUmVqb2luIiwic3RhcnRlZE9uYm9hcmRpbmciLCJieXBhc3Nlc1ZlcmlmaWNhdGlvbiIsImNvbXBsZXRlZE9uYm9hcmRpbmciLCJ0cmFuc2Zvcm1NZW1iZXIiLCJib3QiLCJwYXlsb2FkIiwiZ3VpbGRJZCIsInVzZXJJZCIsIm1lbWJlciIsIk9iamVjdCIsImNyZWF0ZSIsInByb3BzIiwidHJhbnNmb3JtZXJzIiwiZGVzaXJlZFByb3BlcnRpZXMiLCJpZCIsInNub3dmbGFrZSIsInVzZXIiLCJuaWNrIiwicm9sZXMiLCJtYXAiLCJqb2luZWRBdCIsImpvaW5lZF9hdCIsIkRhdGUiLCJwYXJzZSIsInByZW1pdW1TaW5jZSIsInByZW1pdW1fc2luY2UiLCJjb21tdW5pY2F0aW9uRGlzYWJsZWRVbnRpbCIsImNvbW11bmljYXRpb25fZGlzYWJsZWRfdW50aWwiLCJhdmF0YXIiLCJiYW5uZXIiLCJwZXJtaXNzaW9ucyIsImF2YXRhckRlY29yYXRpb25EYXRhIiwiYXZhdGFyX2RlY29yYXRpb25fZGF0YSIsImN1c3RvbWl6ZXJzIl0s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