@discordeno/bot 19.0.0-next.cebe1f4 → 19.0.0-next.cf5e033

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 (1251) hide show
  1. package/README.md +30 -0
  2. package/dist/cjs/bot.cjs +82 -0
  3. package/dist/cjs/commandOptionsParser.cjs +51 -0
  4. package/dist/cjs/constants.cjs +30 -0
  5. package/dist/cjs/desiredProperties.cjs +541 -0
  6. package/dist/cjs/events.cjs +6 -0
  7. package/dist/cjs/handlers/channels/CHANNEL_CREATE.cjs +21 -0
  8. package/dist/cjs/handlers/channels/CHANNEL_DELETE.cjs +21 -0
  9. package/dist/cjs/handlers/channels/CHANNEL_PINS_UPDATE.cjs +21 -0
  10. package/dist/cjs/handlers/channels/CHANNEL_UPDATE.cjs +20 -0
  11. package/dist/cjs/handlers/channels/STAGE_INSTANCE_CREATE.cjs +22 -0
  12. package/dist/cjs/handlers/channels/STAGE_INSTANCE_DELETE.cjs +22 -0
  13. package/dist/cjs/handlers/channels/STAGE_INSTANCE_UPDATE.cjs +22 -0
  14. package/dist/cjs/handlers/channels/THREAD_CREATE.cjs +19 -0
  15. package/dist/cjs/handlers/channels/THREAD_DELETE.cjs +19 -0
  16. package/dist/cjs/handlers/channels/THREAD_LIST_SYNC.cjs +31 -0
  17. package/dist/cjs/handlers/channels/THREAD_MEMBERS_UPDATE.cjs +22 -0
  18. package/dist/cjs/handlers/channels/THREAD_MEMBER_UPDATE.cjs +22 -0
  19. package/dist/cjs/handlers/channels/THREAD_UPDATE.cjs +19 -0
  20. package/dist/cjs/handlers/channels/index.cjs +32 -0
  21. package/dist/cjs/handlers/emojis/GUILD_EMOJIS_UPDATE.cjs +24 -0
  22. package/dist/cjs/handlers/emojis/index.cjs +20 -0
  23. package/dist/cjs/handlers/entitlements/ENTITLEMENT_CREATE.cjs +17 -0
  24. package/dist/cjs/handlers/entitlements/ENTITLEMENT_DELETE.cjs +17 -0
  25. package/dist/cjs/handlers/entitlements/ENTITLEMENT_UPDATE.cjs +17 -0
  26. package/dist/cjs/handlers/entitlements/index.cjs +22 -0
  27. package/dist/cjs/handlers/guilds/GUILD_AUDIT_LOG_ENTRY_CREATE.cjs +18 -0
  28. package/dist/cjs/handlers/guilds/GUILD_BAN_ADD.cjs +17 -0
  29. package/dist/cjs/handlers/guilds/GUILD_BAN_REMOVE.cjs +17 -0
  30. package/dist/cjs/handlers/guilds/GUILD_CREATE.cjs +20 -0
  31. package/dist/cjs/handlers/guilds/GUILD_DELETE.cjs +22 -0
  32. package/dist/cjs/handlers/guilds/GUILD_INTEGRATIONS_UPDATE.cjs +19 -0
  33. package/dist/cjs/handlers/guilds/GUILD_STICKERS_UPDATE.cjs +23 -0
  34. package/dist/cjs/handlers/guilds/GUILD_UPDATE.cjs +20 -0
  35. package/dist/cjs/handlers/guilds/automod/AUTO_MODERATION_ACTION_EXECUTION.cjs +17 -0
  36. package/dist/cjs/handlers/guilds/automod/AUTO_MODERATION_RULE_CREATE.cjs +17 -0
  37. package/dist/cjs/handlers/guilds/automod/AUTO_MODERATION_RULE_DELETE.cjs +17 -0
  38. package/dist/cjs/handlers/guilds/automod/AUTO_MODERATION_RULE_UPDATE.cjs +17 -0
  39. package/dist/cjs/handlers/guilds/automod/index.cjs +23 -0
  40. package/dist/cjs/handlers/guilds/index.cjs +29 -0
  41. package/dist/cjs/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_CREATE.cjs +17 -0
  42. package/dist/cjs/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_DELETE.cjs +17 -0
  43. package/dist/cjs/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_UPDATE.cjs +17 -0
  44. package/dist/cjs/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_USER_ADD.cjs +21 -0
  45. package/dist/cjs/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_USER_REMOVE.cjs +21 -0
  46. package/dist/cjs/handlers/guilds/scheduledEvents/index.cjs +24 -0
  47. package/dist/cjs/handlers/index.cjs +35 -0
  48. package/dist/cjs/handlers/integrations/INTEGRATION_CREATE.cjs +16 -0
  49. package/dist/cjs/handlers/integrations/INTEGRATION_DELETE.cjs +21 -0
  50. package/dist/cjs/handlers/integrations/INTEGRATION_UPDATE.cjs +16 -0
  51. package/dist/cjs/handlers/integrations/index.cjs +22 -0
  52. package/dist/cjs/handlers/interactions/APPLICATION_COMMAND_PERMISSIONS_UPDATE.cjs +17 -0
  53. package/dist/cjs/handlers/interactions/INTERACTION_CREATE.cjs +19 -0
  54. package/dist/cjs/handlers/interactions/index.cjs +21 -0
  55. package/dist/cjs/handlers/invites/INVITE_CREATE.cjs +19 -0
  56. package/dist/cjs/handlers/invites/INVITE_DELETE.cjs +21 -0
  57. package/dist/cjs/handlers/invites/index.cjs +21 -0
  58. package/dist/cjs/handlers/members/GUILD_MEMBERS_CHUNK.cjs +30 -0
  59. package/dist/cjs/handlers/members/GUILD_MEMBER_ADD.cjs +20 -0
  60. package/dist/cjs/handlers/members/GUILD_MEMBER_REMOVE.cjs +19 -0
  61. package/dist/cjs/handlers/members/GUILD_MEMBER_UPDATE.cjs +19 -0
  62. package/dist/cjs/handlers/members/index.cjs +23 -0
  63. package/dist/cjs/handlers/messages/MESSAGE_CREATE.cjs +20 -0
  64. package/dist/cjs/handlers/messages/MESSAGE_DELETE.cjs +21 -0
  65. package/dist/cjs/handlers/messages/MESSAGE_DELETE_BULK.cjs +23 -0
  66. package/dist/cjs/handlers/messages/MESSAGE_REACTION_ADD.cjs +30 -0
  67. package/dist/cjs/handlers/messages/MESSAGE_REACTION_REMOVE.cjs +24 -0
  68. package/dist/cjs/handlers/messages/MESSAGE_REACTION_REMOVE_ALL.cjs +21 -0
  69. package/dist/cjs/handlers/messages/MESSAGE_REACTION_REMOVE_EMOJI.cjs +22 -0
  70. package/dist/cjs/handlers/messages/MESSAGE_UPDATE.cjs +21 -0
  71. package/dist/cjs/handlers/messages/index.cjs +27 -0
  72. package/dist/cjs/handlers/misc/PRESENCE_UPDATE.cjs +16 -0
  73. package/dist/cjs/handlers/misc/READY.cjs +28 -0
  74. package/dist/cjs/handlers/misc/TYPING_START.cjs +25 -0
  75. package/dist/cjs/handlers/misc/USER_UPDATE.cjs +17 -0
  76. package/dist/cjs/handlers/misc/index.cjs +23 -0
  77. package/dist/cjs/handlers/poll/MESSAGE_POLL_VOTE_ADD.cjs +23 -0
  78. package/dist/cjs/handlers/poll/MESSAGE_POLL_VOTE_REMOVE.cjs +23 -0
  79. package/dist/cjs/handlers/poll/index.cjs +21 -0
  80. package/dist/cjs/handlers/roles/GUILD_ROLE_CREATE.cjs +20 -0
  81. package/dist/cjs/handlers/roles/GUILD_ROLE_DELETE.cjs +20 -0
  82. package/dist/cjs/handlers/roles/GUILD_ROLE_UPDATE.cjs +20 -0
  83. package/dist/cjs/handlers/roles/index.cjs +22 -0
  84. package/dist/cjs/handlers/soundboard/GUILD_SOUNDBOARD_SOUNDS_UPDATE.cjs +20 -0
  85. package/dist/cjs/handlers/soundboard/GUILD_SOUNDBOARD_SOUND_CREATE.cjs +17 -0
  86. package/dist/cjs/handlers/soundboard/GUILD_SOUNDBOARD_SOUND_DELETE.cjs +20 -0
  87. package/dist/cjs/handlers/soundboard/GUILD_SOUNDBOARD_SOUND_UPDATE.cjs +17 -0
  88. package/dist/cjs/handlers/soundboard/SOUNDBOARD_SOUNDS.cjs +20 -0
  89. package/dist/cjs/handlers/soundboard/index.cjs +24 -0
  90. package/dist/cjs/handlers/subscriptions/SUBSCRIPTION_CREATE.cjs +17 -0
  91. package/dist/cjs/handlers/subscriptions/SUBSCRIPTION_DELETE.cjs +17 -0
  92. package/dist/cjs/handlers/subscriptions/SUBSCRIPTION_UPDATE.cjs +17 -0
  93. package/dist/cjs/handlers/subscriptions/index.cjs +22 -0
  94. package/dist/cjs/handlers/voice/VOICE_CHANNEL_EFFECT_SEND.cjs +26 -0
  95. package/dist/cjs/handlers/voice/VOICE_SERVER_UPDATE.cjs +21 -0
  96. package/dist/cjs/handlers/voice/VOICE_STATE_UPDATE.cjs +22 -0
  97. package/dist/cjs/handlers/voice/index.cjs +22 -0
  98. package/dist/cjs/handlers/webhooks/WEBHOOKS_UPDATE.cjs +20 -0
  99. package/dist/cjs/handlers/webhooks/index.cjs +20 -0
  100. package/dist/cjs/handlers.cjs +132 -0
  101. package/dist/cjs/helpers.cjs +773 -0
  102. package/dist/cjs/index.cjs +34 -0
  103. package/dist/cjs/transformers/activity.cjs +74 -0
  104. package/dist/cjs/transformers/application.cjs +69 -0
  105. package/dist/cjs/transformers/applicationCommand.cjs +29 -0
  106. package/dist/cjs/transformers/applicationCommandOption.cjs +31 -0
  107. package/dist/cjs/transformers/applicationCommandOptionChoice.cjs +20 -0
  108. package/dist/cjs/transformers/applicationCommandPermission.cjs +25 -0
  109. package/dist/cjs/transformers/attachment.cjs +31 -0
  110. package/dist/cjs/transformers/auditLogEntry.cjs +37 -0
  111. package/dist/cjs/transformers/automodActionExecution.cjs +35 -0
  112. package/dist/cjs/transformers/automodRule.cjs +41 -0
  113. package/dist/cjs/transformers/avatarDecorationData.cjs +20 -0
  114. package/dist/cjs/transformers/channel.cjs +149 -0
  115. package/dist/cjs/transformers/component.cjs +93 -0
  116. package/dist/cjs/transformers/embed.cjs +54 -0
  117. package/dist/cjs/transformers/emoji.cjs +52 -0
  118. package/dist/cjs/transformers/entitlement.cjs +27 -0
  119. package/dist/cjs/transformers/gatewayBot.cjs +25 -0
  120. package/dist/cjs/transformers/guild.cjs +149 -0
  121. package/dist/cjs/transformers/index.cjs +66 -0
  122. package/dist/cjs/transformers/integration.cjs +44 -0
  123. package/dist/cjs/transformers/interaction.cjs +271 -0
  124. package/dist/cjs/transformers/invite.cjs +51 -0
  125. package/dist/cjs/transformers/member.cjs +61 -0
  126. package/dist/cjs/transformers/message.cjs +297 -0
  127. package/dist/cjs/transformers/onboarding.cjs +56 -0
  128. package/dist/cjs/transformers/poll.cjs +50 -0
  129. package/dist/cjs/transformers/presence.cjs +25 -0
  130. package/dist/cjs/transformers/reverse/activity.cjs +53 -0
  131. package/dist/cjs/transformers/reverse/allowedMentions.cjs +20 -0
  132. package/dist/cjs/transformers/reverse/application.cjs +38 -0
  133. package/dist/cjs/transformers/reverse/applicationCommand.cjs +28 -0
  134. package/dist/cjs/transformers/reverse/applicationCommandOption.cjs +30 -0
  135. package/dist/cjs/transformers/reverse/applicationCommandOptionChoice.cjs +19 -0
  136. package/dist/cjs/transformers/reverse/applicationCommandPermission.cjs +24 -0
  137. package/dist/cjs/transformers/reverse/attachment.cjs +29 -0
  138. package/dist/cjs/transformers/reverse/auditLogEntry.cjs +37 -0
  139. package/dist/cjs/transformers/reverse/component.cjs +94 -0
  140. package/dist/cjs/transformers/reverse/createApplicationCommand.cjs +36 -0
  141. package/dist/cjs/transformers/reverse/embed.cjs +53 -0
  142. package/dist/cjs/transformers/reverse/emoji.cjs +24 -0
  143. package/dist/cjs/transformers/reverse/gatewayBot.cjs +24 -0
  144. package/dist/cjs/transformers/reverse/index.cjs +37 -0
  145. package/dist/cjs/transformers/reverse/member.cjs +59 -0
  146. package/dist/cjs/transformers/reverse/presence.cjs +41 -0
  147. package/dist/cjs/transformers/reverse/team.cjs +28 -0
  148. package/dist/cjs/transformers/reverse/widgetSettings.cjs +18 -0
  149. package/dist/cjs/transformers/role.cjs +70 -0
  150. package/dist/cjs/transformers/scheduledEvent.cjs +58 -0
  151. package/dist/cjs/transformers/sku.cjs +23 -0
  152. package/dist/cjs/transformers/soundboardSound.cjs +25 -0
  153. package/dist/cjs/transformers/stageInstance.cjs +22 -0
  154. package/dist/cjs/transformers/stageInviteInstance.cjs +23 -0
  155. package/dist/cjs/transformers/sticker.cjs +48 -0
  156. package/dist/cjs/transformers/subscription.cjs +26 -0
  157. package/dist/cjs/transformers/team.cjs +29 -0
  158. package/dist/cjs/transformers/template.cjs +28 -0
  159. package/dist/cjs/transformers/threadMember.cjs +35 -0
  160. package/dist/cjs/transformers/toggles/Permissions.cjs +28 -0
  161. package/dist/cjs/transformers/toggles/ToggleBitfield.cjs +60 -0
  162. package/dist/cjs/transformers/toggles/channel.cjs +73 -0
  163. package/dist/cjs/transformers/toggles/emoji.cjs +63 -0
  164. package/dist/cjs/transformers/toggles/guild.cjs +257 -0
  165. package/dist/cjs/transformers/toggles/index.cjs +28 -0
  166. package/dist/cjs/transformers/toggles/member.cjs +126 -0
  167. package/dist/cjs/transformers/toggles/role.cjs +73 -0
  168. package/dist/cjs/transformers/toggles/user.cjs +63 -0
  169. package/dist/cjs/transformers/toggles/voice.cjs +78 -0
  170. package/dist/cjs/transformers/types.cjs +6 -0
  171. package/dist/cjs/transformers/user.cjs +52 -0
  172. package/dist/cjs/transformers/voiceRegion.cjs +22 -0
  173. package/dist/cjs/transformers/voiceState.cjs +24 -0
  174. package/dist/cjs/transformers/webhook.cjs +37 -0
  175. package/dist/cjs/transformers/welcomeScreen.cjs +24 -0
  176. package/dist/cjs/transformers/widget.cjs +35 -0
  177. package/dist/cjs/transformers/widgetSettings.cjs +19 -0
  178. package/dist/cjs/transformers.cjs +165 -0
  179. package/dist/cjs/utils.cjs +32 -0
  180. package/dist/esm/bot.js +77 -0
  181. package/dist/esm/commandOptionsParser.js +41 -0
  182. package/dist/esm/constants.js +6 -0
  183. package/dist/esm/desiredProperties.js +523 -0
  184. package/dist/esm/events.js +3 -0
  185. package/dist/esm/handlers/channels/CHANNEL_CREATE.js +11 -0
  186. package/dist/esm/handlers/channels/CHANNEL_DELETE.js +11 -0
  187. package/dist/esm/handlers/channels/CHANNEL_PINS_UPDATE.js +11 -0
  188. package/dist/esm/handlers/channels/CHANNEL_UPDATE.js +10 -0
  189. package/dist/esm/handlers/channels/STAGE_INSTANCE_CREATE.js +12 -0
  190. package/dist/esm/handlers/channels/STAGE_INSTANCE_DELETE.js +12 -0
  191. package/dist/esm/handlers/channels/STAGE_INSTANCE_UPDATE.js +12 -0
  192. package/dist/esm/handlers/channels/THREAD_CREATE.js +9 -0
  193. package/dist/esm/handlers/channels/THREAD_DELETE.js +9 -0
  194. package/dist/esm/handlers/channels/THREAD_LIST_SYNC.js +21 -0
  195. package/dist/esm/handlers/channels/THREAD_MEMBERS_UPDATE.js +12 -0
  196. package/dist/esm/handlers/channels/THREAD_MEMBER_UPDATE.js +12 -0
  197. package/dist/esm/handlers/channels/THREAD_UPDATE.js +9 -0
  198. package/dist/esm/handlers/channels/index.js +15 -0
  199. package/dist/esm/handlers/emojis/GUILD_EMOJIS_UPDATE.js +14 -0
  200. package/dist/esm/handlers/emojis/index.js +3 -0
  201. package/dist/esm/handlers/entitlements/ENTITLEMENT_CREATE.js +7 -0
  202. package/dist/esm/handlers/entitlements/ENTITLEMENT_DELETE.js +7 -0
  203. package/dist/esm/handlers/entitlements/ENTITLEMENT_UPDATE.js +7 -0
  204. package/dist/esm/handlers/entitlements/index.js +5 -0
  205. package/dist/esm/handlers/guilds/GUILD_AUDIT_LOG_ENTRY_CREATE.js +8 -0
  206. package/dist/esm/handlers/guilds/GUILD_BAN_ADD.js +7 -0
  207. package/dist/esm/handlers/guilds/GUILD_BAN_REMOVE.js +7 -0
  208. package/dist/esm/handlers/guilds/GUILD_CREATE.js +10 -0
  209. package/dist/esm/handlers/guilds/GUILD_DELETE.js +12 -0
  210. package/dist/esm/handlers/guilds/GUILD_INTEGRATIONS_UPDATE.js +9 -0
  211. package/dist/esm/handlers/guilds/GUILD_STICKERS_UPDATE.js +13 -0
  212. package/dist/esm/handlers/guilds/GUILD_UPDATE.js +10 -0
  213. package/dist/esm/handlers/guilds/automod/AUTO_MODERATION_ACTION_EXECUTION.js +7 -0
  214. package/dist/esm/handlers/guilds/automod/AUTO_MODERATION_RULE_CREATE.js +7 -0
  215. package/dist/esm/handlers/guilds/automod/AUTO_MODERATION_RULE_DELETE.js +7 -0
  216. package/dist/esm/handlers/guilds/automod/AUTO_MODERATION_RULE_UPDATE.js +7 -0
  217. package/dist/esm/handlers/guilds/automod/index.js +6 -0
  218. package/dist/esm/handlers/guilds/index.js +12 -0
  219. package/dist/esm/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_CREATE.js +7 -0
  220. package/dist/esm/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_DELETE.js +7 -0
  221. package/dist/esm/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_UPDATE.js +7 -0
  222. package/dist/esm/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_USER_ADD.js +11 -0
  223. package/dist/esm/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_USER_REMOVE.js +11 -0
  224. package/dist/esm/handlers/guilds/scheduledEvents/index.js +7 -0
  225. package/dist/esm/handlers/index.js +18 -0
  226. package/dist/esm/handlers/integrations/INTEGRATION_CREATE.js +6 -0
  227. package/dist/esm/handlers/integrations/INTEGRATION_DELETE.js +11 -0
  228. package/dist/esm/handlers/integrations/INTEGRATION_UPDATE.js +6 -0
  229. package/dist/esm/handlers/integrations/index.js +5 -0
  230. package/dist/esm/handlers/interactions/APPLICATION_COMMAND_PERMISSIONS_UPDATE.js +7 -0
  231. package/dist/esm/handlers/interactions/INTERACTION_CREATE.js +9 -0
  232. package/dist/esm/handlers/interactions/index.js +4 -0
  233. package/dist/esm/handlers/invites/INVITE_CREATE.js +9 -0
  234. package/dist/esm/handlers/invites/INVITE_DELETE.js +11 -0
  235. package/dist/esm/handlers/invites/index.js +4 -0
  236. package/dist/esm/handlers/members/GUILD_MEMBERS_CHUNK.js +20 -0
  237. package/dist/esm/handlers/members/GUILD_MEMBER_ADD.js +10 -0
  238. package/dist/esm/handlers/members/GUILD_MEMBER_REMOVE.js +9 -0
  239. package/dist/esm/handlers/members/GUILD_MEMBER_UPDATE.js +9 -0
  240. package/dist/esm/handlers/members/index.js +6 -0
  241. package/dist/esm/handlers/messages/MESSAGE_CREATE.js +10 -0
  242. package/dist/esm/handlers/messages/MESSAGE_DELETE.js +11 -0
  243. package/dist/esm/handlers/messages/MESSAGE_DELETE_BULK.js +13 -0
  244. package/dist/esm/handlers/messages/MESSAGE_REACTION_ADD.js +20 -0
  245. package/dist/esm/handlers/messages/MESSAGE_REACTION_REMOVE.js +14 -0
  246. package/dist/esm/handlers/messages/MESSAGE_REACTION_REMOVE_ALL.js +11 -0
  247. package/dist/esm/handlers/messages/MESSAGE_REACTION_REMOVE_EMOJI.js +12 -0
  248. package/dist/esm/handlers/messages/MESSAGE_UPDATE.js +11 -0
  249. package/dist/esm/handlers/messages/index.js +10 -0
  250. package/dist/esm/handlers/misc/PRESENCE_UPDATE.js +6 -0
  251. package/dist/esm/handlers/misc/READY.js +18 -0
  252. package/dist/esm/handlers/misc/TYPING_START.js +15 -0
  253. package/dist/esm/handlers/misc/USER_UPDATE.js +7 -0
  254. package/dist/esm/handlers/misc/index.js +6 -0
  255. package/dist/esm/handlers/poll/MESSAGE_POLL_VOTE_ADD.js +13 -0
  256. package/dist/esm/handlers/poll/MESSAGE_POLL_VOTE_REMOVE.js +13 -0
  257. package/dist/esm/handlers/poll/index.js +4 -0
  258. package/dist/esm/handlers/roles/GUILD_ROLE_CREATE.js +10 -0
  259. package/dist/esm/handlers/roles/GUILD_ROLE_DELETE.js +10 -0
  260. package/dist/esm/handlers/roles/GUILD_ROLE_UPDATE.js +10 -0
  261. package/dist/esm/handlers/roles/index.js +5 -0
  262. package/dist/esm/handlers/soundboard/GUILD_SOUNDBOARD_SOUNDS_UPDATE.js +10 -0
  263. package/dist/esm/handlers/soundboard/GUILD_SOUNDBOARD_SOUND_CREATE.js +7 -0
  264. package/dist/esm/handlers/soundboard/GUILD_SOUNDBOARD_SOUND_DELETE.js +10 -0
  265. package/dist/esm/handlers/soundboard/GUILD_SOUNDBOARD_SOUND_UPDATE.js +7 -0
  266. package/dist/esm/handlers/soundboard/SOUNDBOARD_SOUNDS.js +10 -0
  267. package/dist/esm/handlers/soundboard/index.js +7 -0
  268. package/dist/esm/handlers/subscriptions/SUBSCRIPTION_CREATE.js +7 -0
  269. package/dist/esm/handlers/subscriptions/SUBSCRIPTION_DELETE.js +7 -0
  270. package/dist/esm/handlers/subscriptions/SUBSCRIPTION_UPDATE.js +7 -0
  271. package/dist/esm/handlers/subscriptions/index.js +5 -0
  272. package/dist/esm/handlers/voice/VOICE_CHANNEL_EFFECT_SEND.js +16 -0
  273. package/dist/esm/handlers/voice/VOICE_SERVER_UPDATE.js +11 -0
  274. package/dist/esm/handlers/voice/VOICE_STATE_UPDATE.js +12 -0
  275. package/dist/esm/handlers/voice/index.js +5 -0
  276. package/dist/esm/handlers/webhooks/WEBHOOKS_UPDATE.js +10 -0
  277. package/dist/esm/handlers/webhooks/index.js +3 -0
  278. package/dist/esm/handlers.js +81 -0
  279. package/dist/esm/helpers.js +763 -0
  280. package/dist/esm/index.js +17 -0
  281. package/dist/esm/transformers/activity.js +53 -0
  282. package/dist/esm/transformers/application.js +59 -0
  283. package/dist/esm/transformers/applicationCommand.js +19 -0
  284. package/dist/esm/transformers/applicationCommandOption.js +21 -0
  285. package/dist/esm/transformers/applicationCommandOptionChoice.js +10 -0
  286. package/dist/esm/transformers/applicationCommandPermission.js +15 -0
  287. package/dist/esm/transformers/attachment.js +21 -0
  288. package/dist/esm/transformers/auditLogEntry.js +27 -0
  289. package/dist/esm/transformers/automodActionExecution.js +25 -0
  290. package/dist/esm/transformers/automodRule.js +31 -0
  291. package/dist/esm/transformers/avatarDecorationData.js +10 -0
  292. package/dist/esm/transformers/channel.js +122 -0
  293. package/dist/esm/transformers/component.js +83 -0
  294. package/dist/esm/transformers/embed.js +44 -0
  295. package/dist/esm/transformers/emoji.js +34 -0
  296. package/dist/esm/transformers/entitlement.js +17 -0
  297. package/dist/esm/transformers/gatewayBot.js +15 -0
  298. package/dist/esm/transformers/guild.js +139 -0
  299. package/dist/esm/transformers/index.js +50 -0
  300. package/dist/esm/transformers/integration.js +34 -0
  301. package/dist/esm/transformers/interaction.js +241 -0
  302. package/dist/esm/transformers/invite.js +41 -0
  303. package/dist/esm/transformers/member.js +51 -0
  304. package/dist/esm/transformers/message.js +273 -0
  305. package/dist/esm/transformers/onboarding.js +35 -0
  306. package/dist/esm/transformers/poll.js +32 -0
  307. package/dist/esm/transformers/presence.js +15 -0
  308. package/dist/esm/transformers/reverse/activity.js +43 -0
  309. package/dist/esm/transformers/reverse/allowedMentions.js +10 -0
  310. package/dist/esm/transformers/reverse/application.js +28 -0
  311. package/dist/esm/transformers/reverse/applicationCommand.js +18 -0
  312. package/dist/esm/transformers/reverse/applicationCommandOption.js +20 -0
  313. package/dist/esm/transformers/reverse/applicationCommandOptionChoice.js +9 -0
  314. package/dist/esm/transformers/reverse/applicationCommandPermission.js +14 -0
  315. package/dist/esm/transformers/reverse/attachment.js +19 -0
  316. package/dist/esm/transformers/reverse/auditLogEntry.js +27 -0
  317. package/dist/esm/transformers/reverse/component.js +84 -0
  318. package/dist/esm/transformers/reverse/createApplicationCommand.js +26 -0
  319. package/dist/esm/transformers/reverse/embed.js +43 -0
  320. package/dist/esm/transformers/reverse/emoji.js +14 -0
  321. package/dist/esm/transformers/reverse/gatewayBot.js +14 -0
  322. package/dist/esm/transformers/reverse/index.js +20 -0
  323. package/dist/esm/transformers/reverse/member.js +41 -0
  324. package/dist/esm/transformers/reverse/presence.js +23 -0
  325. package/dist/esm/transformers/reverse/team.js +18 -0
  326. package/dist/esm/transformers/reverse/widgetSettings.js +8 -0
  327. package/dist/esm/transformers/role.js +60 -0
  328. package/dist/esm/transformers/scheduledEvent.js +40 -0
  329. package/dist/esm/transformers/sku.js +13 -0
  330. package/dist/esm/transformers/soundboardSound.js +15 -0
  331. package/dist/esm/transformers/stageInstance.js +12 -0
  332. package/dist/esm/transformers/stageInviteInstance.js +13 -0
  333. package/dist/esm/transformers/sticker.js +30 -0
  334. package/dist/esm/transformers/subscription.js +16 -0
  335. package/dist/esm/transformers/team.js +19 -0
  336. package/dist/esm/transformers/template.js +18 -0
  337. package/dist/esm/transformers/threadMember.js +17 -0
  338. package/dist/esm/transformers/toggles/Permissions.js +18 -0
  339. package/dist/esm/transformers/toggles/ToggleBitfield.js +42 -0
  340. package/dist/esm/transformers/toggles/channel.js +55 -0
  341. package/dist/esm/transformers/toggles/emoji.js +45 -0
  342. package/dist/esm/transformers/toggles/guild.js +239 -0
  343. package/dist/esm/transformers/toggles/index.js +11 -0
  344. package/dist/esm/transformers/toggles/member.js +108 -0
  345. package/dist/esm/transformers/toggles/role.js +55 -0
  346. package/dist/esm/transformers/toggles/user.js +45 -0
  347. package/dist/esm/transformers/toggles/voice.js +60 -0
  348. package/dist/esm/transformers/types.js +3 -0
  349. package/dist/esm/transformers/user.js +42 -0
  350. package/dist/esm/transformers/voiceRegion.js +12 -0
  351. package/dist/esm/transformers/voiceState.js +14 -0
  352. package/dist/esm/transformers/webhook.js +27 -0
  353. package/dist/esm/transformers/welcomeScreen.js +14 -0
  354. package/dist/esm/transformers/widget.js +25 -0
  355. package/dist/esm/transformers/widgetSettings.js +9 -0
  356. package/dist/esm/transformers.js +155 -0
  357. package/dist/esm/utils.js +11 -0
  358. package/dist/types/bot.d.ts +85 -0
  359. package/dist/types/bot.d.ts.map +1 -0
  360. package/dist/types/commandOptionsParser.d.ts +12 -0
  361. package/dist/types/commandOptionsParser.d.ts.map +1 -0
  362. package/dist/types/constants.d.ts.map +1 -0
  363. package/dist/types/desiredProperties.d.ts +194 -0
  364. package/dist/types/desiredProperties.d.ts.map +1 -0
  365. package/dist/types/events.d.ts +231 -0
  366. package/dist/types/events.d.ts.map +1 -0
  367. package/dist/types/handlers/channels/CHANNEL_CREATE.d.ts +3 -0
  368. package/dist/types/handlers/channels/CHANNEL_CREATE.d.ts.map +1 -0
  369. package/dist/types/handlers/channels/CHANNEL_DELETE.d.ts.map +1 -0
  370. package/dist/types/handlers/channels/CHANNEL_PINS_UPDATE.d.ts.map +1 -0
  371. package/dist/types/handlers/channels/CHANNEL_UPDATE.d.ts.map +1 -0
  372. package/dist/types/handlers/channels/STAGE_INSTANCE_CREATE.d.ts.map +1 -0
  373. package/dist/types/handlers/channels/STAGE_INSTANCE_DELETE.d.ts.map +1 -0
  374. package/dist/types/handlers/channels/STAGE_INSTANCE_UPDATE.d.ts.map +1 -0
  375. package/dist/types/handlers/channels/THREAD_CREATE.d.ts.map +1 -0
  376. package/dist/types/handlers/channels/THREAD_DELETE.d.ts.map +1 -0
  377. package/dist/types/handlers/channels/THREAD_LIST_SYNC.d.ts.map +1 -0
  378. package/dist/types/handlers/channels/THREAD_MEMBERS_UPDATE.d.ts +4 -0
  379. package/dist/types/handlers/channels/THREAD_MEMBERS_UPDATE.d.ts.map +1 -0
  380. package/dist/types/handlers/channels/THREAD_MEMBER_UPDATE.d.ts +4 -0
  381. package/dist/types/handlers/channels/THREAD_MEMBER_UPDATE.d.ts.map +1 -0
  382. package/dist/types/handlers/channels/THREAD_UPDATE.d.ts.map +1 -0
  383. package/dist/types/handlers/channels/index.d.ts +14 -0
  384. package/dist/types/handlers/channels/index.d.ts.map +1 -0
  385. package/dist/types/handlers/emojis/GUILD_EMOJIS_UPDATE.d.ts.map +1 -0
  386. package/dist/types/handlers/emojis/index.d.ts.map +1 -0
  387. package/dist/types/handlers/entitlements/ENTITLEMENT_CREATE.d.ts +4 -0
  388. package/dist/types/handlers/entitlements/ENTITLEMENT_CREATE.d.ts.map +1 -0
  389. package/dist/types/handlers/entitlements/ENTITLEMENT_DELETE.d.ts +4 -0
  390. package/dist/types/handlers/entitlements/ENTITLEMENT_DELETE.d.ts.map +1 -0
  391. package/dist/types/handlers/entitlements/ENTITLEMENT_UPDATE.d.ts +4 -0
  392. package/dist/types/handlers/entitlements/ENTITLEMENT_UPDATE.d.ts.map +1 -0
  393. package/dist/types/handlers/entitlements/index.d.ts +4 -0
  394. package/dist/types/handlers/entitlements/index.d.ts.map +1 -0
  395. package/dist/types/handlers/guilds/GUILD_AUDIT_LOG_ENTRY_CREATE.d.ts.map +1 -0
  396. package/dist/types/handlers/guilds/GUILD_BAN_ADD.d.ts.map +1 -0
  397. package/dist/types/handlers/guilds/GUILD_BAN_REMOVE.d.ts.map +1 -0
  398. package/dist/types/handlers/guilds/GUILD_CREATE.d.ts.map +1 -0
  399. package/dist/types/handlers/guilds/GUILD_DELETE.d.ts.map +1 -0
  400. package/dist/types/handlers/guilds/GUILD_INTEGRATIONS_UPDATE.d.ts.map +1 -0
  401. package/dist/types/handlers/guilds/GUILD_STICKERS_UPDATE.d.ts +3 -0
  402. package/dist/types/handlers/guilds/GUILD_STICKERS_UPDATE.d.ts.map +1 -0
  403. package/dist/types/handlers/guilds/GUILD_UPDATE.d.ts.map +1 -0
  404. package/dist/types/handlers/guilds/automod/AUTO_MODERATION_ACTION_EXECUTION.d.ts +5 -0
  405. package/dist/types/handlers/guilds/automod/AUTO_MODERATION_ACTION_EXECUTION.d.ts.map +1 -0
  406. package/dist/types/handlers/guilds/automod/AUTO_MODERATION_RULE_CREATE.d.ts +5 -0
  407. package/dist/types/handlers/guilds/automod/AUTO_MODERATION_RULE_CREATE.d.ts.map +1 -0
  408. package/dist/types/handlers/guilds/automod/AUTO_MODERATION_RULE_DELETE.d.ts +5 -0
  409. package/dist/types/handlers/guilds/automod/AUTO_MODERATION_RULE_DELETE.d.ts.map +1 -0
  410. package/dist/types/handlers/guilds/automod/AUTO_MODERATION_RULE_UPDATE.d.ts +5 -0
  411. package/dist/types/handlers/guilds/automod/AUTO_MODERATION_RULE_UPDATE.d.ts.map +1 -0
  412. package/dist/types/handlers/guilds/automod/index.d.ts.map +1 -0
  413. package/dist/types/handlers/guilds/index.d.ts.map +1 -0
  414. package/dist/types/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_CREATE.d.ts +4 -0
  415. package/dist/types/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_CREATE.d.ts.map +1 -0
  416. package/dist/types/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_DELETE.d.ts.map +1 -0
  417. package/dist/types/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_UPDATE.d.ts.map +1 -0
  418. package/dist/types/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_USER_ADD.d.ts.map +1 -0
  419. package/dist/types/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_USER_REMOVE.d.ts.map +1 -0
  420. package/dist/types/handlers/guilds/scheduledEvents/index.d.ts.map +1 -0
  421. package/dist/types/handlers/index.d.ts +17 -0
  422. package/dist/types/handlers/index.d.ts.map +1 -0
  423. package/dist/types/handlers/integrations/INTEGRATION_CREATE.d.ts.map +1 -0
  424. package/dist/types/handlers/integrations/INTEGRATION_DELETE.d.ts.map +1 -0
  425. package/dist/types/handlers/integrations/INTEGRATION_UPDATE.d.ts.map +1 -0
  426. package/dist/types/handlers/integrations/index.d.ts.map +1 -0
  427. package/dist/types/handlers/interactions/APPLICATION_COMMAND_PERMISSIONS_UPDATE.d.ts +3 -0
  428. package/dist/types/handlers/interactions/APPLICATION_COMMAND_PERMISSIONS_UPDATE.d.ts.map +1 -0
  429. package/dist/types/handlers/interactions/INTERACTION_CREATE.d.ts +4 -0
  430. package/dist/types/handlers/interactions/INTERACTION_CREATE.d.ts.map +1 -0
  431. package/dist/types/handlers/interactions/index.d.ts.map +1 -0
  432. package/dist/types/handlers/invites/INVITE_CREATE.d.ts +4 -0
  433. package/dist/types/handlers/invites/INVITE_CREATE.d.ts.map +1 -0
  434. package/dist/types/handlers/invites/INVITE_DELETE.d.ts.map +1 -0
  435. package/dist/types/handlers/invites/index.d.ts.map +1 -0
  436. package/dist/types/handlers/members/GUILD_MEMBERS_CHUNK.d.ts +4 -0
  437. package/dist/types/handlers/members/GUILD_MEMBERS_CHUNK.d.ts.map +1 -0
  438. package/dist/types/handlers/members/GUILD_MEMBER_ADD.d.ts +4 -0
  439. package/dist/types/handlers/members/GUILD_MEMBER_ADD.d.ts.map +1 -0
  440. package/dist/types/handlers/members/GUILD_MEMBER_REMOVE.d.ts.map +1 -0
  441. package/dist/types/handlers/members/GUILD_MEMBER_UPDATE.d.ts.map +1 -0
  442. package/dist/types/handlers/members/index.d.ts.map +1 -0
  443. package/dist/types/handlers/messages/MESSAGE_CREATE.d.ts +4 -0
  444. package/dist/types/handlers/messages/MESSAGE_CREATE.d.ts.map +1 -0
  445. package/dist/types/handlers/messages/MESSAGE_DELETE.d.ts.map +1 -0
  446. package/dist/types/handlers/messages/MESSAGE_DELETE_BULK.d.ts.map +1 -0
  447. package/dist/types/handlers/messages/MESSAGE_REACTION_ADD.d.ts.map +1 -0
  448. package/dist/types/handlers/messages/MESSAGE_REACTION_REMOVE.d.ts.map +1 -0
  449. package/dist/types/handlers/messages/MESSAGE_REACTION_REMOVE_ALL.d.ts.map +1 -0
  450. package/dist/types/handlers/messages/MESSAGE_REACTION_REMOVE_EMOJI.d.ts.map +1 -0
  451. package/dist/types/handlers/messages/MESSAGE_UPDATE.d.ts +4 -0
  452. package/dist/types/handlers/messages/MESSAGE_UPDATE.d.ts.map +1 -0
  453. package/dist/types/handlers/messages/index.d.ts.map +1 -0
  454. package/dist/types/handlers/misc/PRESENCE_UPDATE.d.ts.map +1 -0
  455. package/dist/types/handlers/misc/READY.d.ts.map +1 -0
  456. package/dist/types/handlers/misc/TYPING_START.d.ts.map +1 -0
  457. package/dist/types/handlers/misc/USER_UPDATE.d.ts.map +1 -0
  458. package/dist/types/handlers/misc/index.d.ts.map +1 -0
  459. package/dist/types/handlers/poll/MESSAGE_POLL_VOTE_ADD.d.ts +4 -0
  460. package/dist/types/handlers/poll/MESSAGE_POLL_VOTE_ADD.d.ts.map +1 -0
  461. package/dist/types/handlers/poll/MESSAGE_POLL_VOTE_REMOVE.d.ts +4 -0
  462. package/dist/types/handlers/poll/MESSAGE_POLL_VOTE_REMOVE.d.ts.map +1 -0
  463. package/dist/types/handlers/poll/index.d.ts +3 -0
  464. package/dist/types/handlers/poll/index.d.ts.map +1 -0
  465. package/dist/types/handlers/roles/GUILD_ROLE_CREATE.d.ts.map +1 -0
  466. package/dist/types/handlers/roles/GUILD_ROLE_DELETE.d.ts.map +1 -0
  467. package/dist/types/handlers/roles/GUILD_ROLE_UPDATE.d.ts.map +1 -0
  468. package/dist/types/handlers/roles/index.d.ts.map +1 -0
  469. package/dist/types/handlers/soundboard/GUILD_SOUNDBOARD_SOUNDS_UPDATE.d.ts +4 -0
  470. package/dist/types/handlers/soundboard/GUILD_SOUNDBOARD_SOUNDS_UPDATE.d.ts.map +1 -0
  471. package/dist/types/handlers/soundboard/GUILD_SOUNDBOARD_SOUND_CREATE.d.ts +4 -0
  472. package/dist/types/handlers/soundboard/GUILD_SOUNDBOARD_SOUND_CREATE.d.ts.map +1 -0
  473. package/dist/types/handlers/soundboard/GUILD_SOUNDBOARD_SOUND_DELETE.d.ts +4 -0
  474. package/dist/types/handlers/soundboard/GUILD_SOUNDBOARD_SOUND_DELETE.d.ts.map +1 -0
  475. package/dist/types/handlers/soundboard/GUILD_SOUNDBOARD_SOUND_UPDATE.d.ts +4 -0
  476. package/dist/types/handlers/soundboard/GUILD_SOUNDBOARD_SOUND_UPDATE.d.ts.map +1 -0
  477. package/dist/types/handlers/soundboard/SOUNDBOARD_SOUNDS.d.ts +4 -0
  478. package/dist/types/handlers/soundboard/SOUNDBOARD_SOUNDS.d.ts.map +1 -0
  479. package/dist/types/handlers/soundboard/index.d.ts +6 -0
  480. package/dist/types/handlers/soundboard/index.d.ts.map +1 -0
  481. package/dist/types/handlers/subscriptions/SUBSCRIPTION_CREATE.d.ts +4 -0
  482. package/dist/types/handlers/subscriptions/SUBSCRIPTION_CREATE.d.ts.map +1 -0
  483. package/dist/types/handlers/subscriptions/SUBSCRIPTION_DELETE.d.ts +4 -0
  484. package/dist/types/handlers/subscriptions/SUBSCRIPTION_DELETE.d.ts.map +1 -0
  485. package/dist/types/handlers/subscriptions/SUBSCRIPTION_UPDATE.d.ts +4 -0
  486. package/dist/types/handlers/subscriptions/SUBSCRIPTION_UPDATE.d.ts.map +1 -0
  487. package/dist/types/handlers/subscriptions/index.d.ts +4 -0
  488. package/dist/types/handlers/subscriptions/index.d.ts.map +1 -0
  489. package/dist/types/handlers/voice/VOICE_CHANNEL_EFFECT_SEND.d.ts +4 -0
  490. package/dist/types/handlers/voice/VOICE_CHANNEL_EFFECT_SEND.d.ts.map +1 -0
  491. package/dist/types/handlers/voice/VOICE_SERVER_UPDATE.d.ts.map +1 -0
  492. package/dist/types/handlers/voice/VOICE_STATE_UPDATE.d.ts.map +1 -0
  493. package/dist/types/handlers/voice/index.d.ts +4 -0
  494. package/dist/types/handlers/voice/index.d.ts.map +1 -0
  495. package/dist/types/handlers/webhooks/WEBHOOKS_UPDATE.d.ts +4 -0
  496. package/dist/types/handlers/webhooks/WEBHOOKS_UPDATE.d.ts.map +1 -0
  497. package/dist/types/handlers/webhooks/index.d.ts.map +1 -0
  498. package/dist/types/handlers.d.ts +5 -0
  499. package/dist/types/handlers.d.ts.map +1 -0
  500. package/dist/types/helpers.d.ts +235 -0
  501. package/dist/types/helpers.d.ts.map +1 -0
  502. package/dist/types/index.d.ts +16 -0
  503. package/dist/types/index.d.ts.map +1 -0
  504. package/dist/types/transformers/activity.d.ts +5 -0
  505. package/dist/types/transformers/activity.d.ts.map +1 -0
  506. package/dist/types/transformers/application.d.ts +6 -0
  507. package/dist/types/transformers/application.d.ts.map +1 -0
  508. package/dist/types/transformers/applicationCommand.d.ts +4 -0
  509. package/dist/types/transformers/applicationCommand.d.ts.map +1 -0
  510. package/dist/types/transformers/applicationCommandOption.d.ts +4 -0
  511. package/dist/types/transformers/applicationCommandOption.d.ts.map +1 -0
  512. package/dist/types/transformers/applicationCommandOptionChoice.d.ts +4 -0
  513. package/dist/types/transformers/applicationCommandOptionChoice.d.ts.map +1 -0
  514. package/dist/types/transformers/applicationCommandPermission.d.ts +4 -0
  515. package/dist/types/transformers/applicationCommandPermission.d.ts.map +1 -0
  516. package/dist/types/transformers/attachment.d.ts +4 -0
  517. package/dist/types/transformers/attachment.d.ts.map +1 -0
  518. package/dist/types/transformers/auditLogEntry.d.ts +4 -0
  519. package/dist/types/transformers/auditLogEntry.d.ts.map +1 -0
  520. package/dist/types/transformers/automodActionExecution.d.ts +4 -0
  521. package/dist/types/transformers/automodActionExecution.d.ts.map +1 -0
  522. package/dist/types/transformers/automodRule.d.ts +4 -0
  523. package/dist/types/transformers/automodRule.d.ts.map +1 -0
  524. package/dist/types/transformers/avatarDecorationData.d.ts +3 -0
  525. package/dist/types/transformers/avatarDecorationData.d.ts.map +1 -0
  526. package/dist/types/transformers/channel.d.ts +11 -0
  527. package/dist/types/transformers/channel.d.ts.map +1 -0
  528. package/dist/types/transformers/component.d.ts +4 -0
  529. package/dist/types/transformers/component.d.ts.map +1 -0
  530. package/dist/types/transformers/embed.d.ts +4 -0
  531. package/dist/types/transformers/embed.d.ts.map +1 -0
  532. package/dist/types/transformers/emoji.d.ts +5 -0
  533. package/dist/types/transformers/emoji.d.ts.map +1 -0
  534. package/dist/types/transformers/entitlement.d.ts +4 -0
  535. package/dist/types/transformers/entitlement.d.ts.map +1 -0
  536. package/dist/types/transformers/gatewayBot.d.ts +4 -0
  537. package/dist/types/transformers/gatewayBot.d.ts.map +1 -0
  538. package/dist/types/transformers/guild.d.ts +7 -0
  539. package/dist/types/transformers/guild.d.ts.map +1 -0
  540. package/dist/types/transformers/index.d.ts +49 -0
  541. package/dist/types/transformers/index.d.ts.map +1 -0
  542. package/dist/types/transformers/integration.d.ts +4 -0
  543. package/dist/types/transformers/integration.d.ts.map +1 -0
  544. package/dist/types/transformers/interaction.d.ts +22 -0
  545. package/dist/types/transformers/interaction.d.ts.map +1 -0
  546. package/dist/types/transformers/invite.d.ts +7 -0
  547. package/dist/types/transformers/invite.d.ts.map +1 -0
  548. package/dist/types/transformers/member.d.ts +4 -0
  549. package/dist/types/transformers/member.d.ts.map +1 -0
  550. package/dist/types/transformers/message.d.ts +13 -0
  551. package/dist/types/transformers/message.d.ts.map +1 -0
  552. package/dist/types/transformers/onboarding.d.ts +6 -0
  553. package/dist/types/transformers/onboarding.d.ts.map +1 -0
  554. package/dist/types/transformers/poll.d.ts +5 -0
  555. package/dist/types/transformers/poll.d.ts.map +1 -0
  556. package/dist/types/transformers/presence.d.ts +4 -0
  557. package/dist/types/transformers/presence.d.ts.map +1 -0
  558. package/dist/types/transformers/reverse/activity.d.ts +3 -0
  559. package/dist/types/transformers/reverse/activity.d.ts.map +1 -0
  560. package/dist/types/transformers/reverse/allowedMentions.d.ts +3 -0
  561. package/dist/types/transformers/reverse/allowedMentions.d.ts.map +1 -0
  562. package/dist/types/transformers/reverse/application.d.ts +3 -0
  563. package/dist/types/transformers/reverse/application.d.ts.map +1 -0
  564. package/dist/types/transformers/reverse/applicationCommand.d.ts +3 -0
  565. package/dist/types/transformers/reverse/applicationCommand.d.ts.map +1 -0
  566. package/dist/types/transformers/reverse/applicationCommandOption.d.ts +3 -0
  567. package/dist/types/transformers/reverse/applicationCommandOption.d.ts.map +1 -0
  568. package/dist/types/transformers/reverse/applicationCommandOptionChoice.d.ts +3 -0
  569. package/dist/types/transformers/reverse/applicationCommandOptionChoice.d.ts.map +1 -0
  570. package/dist/types/transformers/reverse/applicationCommandPermission.d.ts +3 -0
  571. package/dist/types/transformers/reverse/applicationCommandPermission.d.ts.map +1 -0
  572. package/dist/types/transformers/reverse/attachment.d.ts +3 -0
  573. package/dist/types/transformers/reverse/attachment.d.ts.map +1 -0
  574. package/dist/types/transformers/reverse/auditLogEntry.d.ts +4 -0
  575. package/dist/types/transformers/reverse/auditLogEntry.d.ts.map +1 -0
  576. package/dist/types/transformers/reverse/component.d.ts +4 -0
  577. package/dist/types/transformers/reverse/component.d.ts.map +1 -0
  578. package/dist/types/transformers/reverse/createApplicationCommand.d.ts.map +1 -0
  579. package/dist/types/transformers/reverse/embed.d.ts +4 -0
  580. package/dist/types/transformers/reverse/embed.d.ts.map +1 -0
  581. package/dist/types/transformers/reverse/emoji.d.ts +4 -0
  582. package/dist/types/transformers/reverse/emoji.d.ts.map +1 -0
  583. package/dist/types/transformers/reverse/gatewayBot.d.ts +4 -0
  584. package/dist/types/transformers/reverse/gatewayBot.d.ts.map +1 -0
  585. package/dist/types/transformers/reverse/index.d.ts +19 -0
  586. package/dist/types/transformers/reverse/index.d.ts.map +1 -0
  587. package/dist/types/transformers/reverse/member.d.ts +6 -0
  588. package/dist/types/transformers/reverse/member.d.ts.map +1 -0
  589. package/dist/types/transformers/reverse/presence.d.ts +10 -0
  590. package/dist/types/transformers/reverse/presence.d.ts.map +1 -0
  591. package/dist/types/transformers/reverse/team.d.ts +4 -0
  592. package/dist/types/transformers/reverse/team.d.ts.map +1 -0
  593. package/dist/types/transformers/reverse/widgetSettings.d.ts +4 -0
  594. package/dist/types/transformers/reverse/widgetSettings.d.ts.map +1 -0
  595. package/dist/types/transformers/role.d.ts +7 -0
  596. package/dist/types/transformers/role.d.ts.map +1 -0
  597. package/dist/types/transformers/scheduledEvent.d.ts +5 -0
  598. package/dist/types/transformers/scheduledEvent.d.ts.map +1 -0
  599. package/dist/types/transformers/sku.d.ts +4 -0
  600. package/dist/types/transformers/sku.d.ts.map +1 -0
  601. package/dist/types/transformers/soundboardSound.d.ts +4 -0
  602. package/dist/types/transformers/soundboardSound.d.ts.map +1 -0
  603. package/dist/types/transformers/stageInstance.d.ts +4 -0
  604. package/dist/types/transformers/stageInstance.d.ts.map +1 -0
  605. package/dist/types/transformers/stageInviteInstance.d.ts +6 -0
  606. package/dist/types/transformers/stageInviteInstance.d.ts.map +1 -0
  607. package/dist/types/transformers/sticker.d.ts +5 -0
  608. package/dist/types/transformers/sticker.d.ts.map +1 -0
  609. package/dist/types/transformers/subscription.d.ts +4 -0
  610. package/dist/types/transformers/subscription.d.ts.map +1 -0
  611. package/dist/types/transformers/team.d.ts +4 -0
  612. package/dist/types/transformers/team.d.ts.map +1 -0
  613. package/dist/types/transformers/template.d.ts +4 -0
  614. package/dist/types/transformers/template.d.ts.map +1 -0
  615. package/dist/types/transformers/threadMember.d.ts +5 -0
  616. package/dist/types/transformers/threadMember.d.ts.map +1 -0
  617. package/dist/types/transformers/toggles/Permissions.d.ts +9 -0
  618. package/dist/types/transformers/toggles/Permissions.d.ts.map +1 -0
  619. package/dist/types/transformers/toggles/ToggleBitfield.d.ts.map +1 -0
  620. package/dist/types/transformers/toggles/channel.d.ts +36 -0
  621. package/dist/types/transformers/toggles/channel.d.ts.map +1 -0
  622. package/dist/types/transformers/toggles/emoji.d.ts.map +1 -0
  623. package/dist/types/transformers/toggles/guild.d.ts +153 -0
  624. package/dist/types/transformers/toggles/guild.d.ts.map +1 -0
  625. package/dist/types/transformers/toggles/index.d.ts +10 -0
  626. package/dist/types/transformers/toggles/index.d.ts.map +1 -0
  627. package/dist/types/transformers/toggles/member.d.ts +65 -0
  628. package/dist/types/transformers/toggles/member.d.ts.map +1 -0
  629. package/dist/types/transformers/toggles/role.d.ts.map +1 -0
  630. package/dist/types/transformers/toggles/user.d.ts.map +1 -0
  631. package/dist/types/transformers/toggles/voice.d.ts.map +1 -0
  632. package/dist/types/transformers/types.d.ts +1603 -0
  633. package/dist/types/transformers/types.d.ts.map +1 -0
  634. package/dist/types/transformers/user.d.ts +4 -0
  635. package/dist/types/transformers/user.d.ts.map +1 -0
  636. package/dist/types/transformers/voiceRegion.d.ts +4 -0
  637. package/dist/types/transformers/voiceRegion.d.ts.map +1 -0
  638. package/dist/types/transformers/voiceState.d.ts +7 -0
  639. package/dist/types/transformers/voiceState.d.ts.map +1 -0
  640. package/dist/types/transformers/webhook.d.ts +4 -0
  641. package/dist/types/transformers/webhook.d.ts.map +1 -0
  642. package/dist/types/transformers/welcomeScreen.d.ts +4 -0
  643. package/dist/types/transformers/welcomeScreen.d.ts.map +1 -0
  644. package/dist/types/transformers/widget.d.ts +4 -0
  645. package/dist/types/transformers/widget.d.ts.map +1 -0
  646. package/dist/types/transformers/widgetSettings.d.ts +4 -0
  647. package/dist/types/transformers/widgetSettings.d.ts.map +1 -0
  648. package/dist/types/transformers.d.ts +197 -0
  649. package/dist/types/transformers.d.ts.map +1 -0
  650. package/dist/types/utils.d.ts.map +1 -0
  651. package/package.json +31 -27
  652. package/dist/bot.d.ts +0 -238
  653. package/dist/bot.d.ts.map +0 -1
  654. package/dist/bot.js +0 -57
  655. package/dist/bot.js.map +0 -1
  656. package/dist/constants.d.ts.map +0 -1
  657. package/dist/constants.js +0 -6
  658. package/dist/constants.js.map +0 -1
  659. package/dist/handlers/channels/CHANNEL_CREATE.d.ts +0 -3
  660. package/dist/handlers/channels/CHANNEL_CREATE.d.ts.map +0 -1
  661. package/dist/handlers/channels/CHANNEL_CREATE.js +0 -10
  662. package/dist/handlers/channels/CHANNEL_CREATE.js.map +0 -1
  663. package/dist/handlers/channels/CHANNEL_DELETE.d.ts.map +0 -1
  664. package/dist/handlers/channels/CHANNEL_DELETE.js +0 -10
  665. package/dist/handlers/channels/CHANNEL_DELETE.js.map +0 -1
  666. package/dist/handlers/channels/CHANNEL_PINS_UPDATE.d.ts.map +0 -1
  667. package/dist/handlers/channels/CHANNEL_PINS_UPDATE.js +0 -10
  668. package/dist/handlers/channels/CHANNEL_PINS_UPDATE.js.map +0 -1
  669. package/dist/handlers/channels/CHANNEL_UPDATE.d.ts.map +0 -1
  670. package/dist/handlers/channels/CHANNEL_UPDATE.js +0 -9
  671. package/dist/handlers/channels/CHANNEL_UPDATE.js.map +0 -1
  672. package/dist/handlers/channels/STAGE_INSTANCE_CREATE.d.ts.map +0 -1
  673. package/dist/handlers/channels/STAGE_INSTANCE_CREATE.js +0 -11
  674. package/dist/handlers/channels/STAGE_INSTANCE_CREATE.js.map +0 -1
  675. package/dist/handlers/channels/STAGE_INSTANCE_DELETE.d.ts.map +0 -1
  676. package/dist/handlers/channels/STAGE_INSTANCE_DELETE.js +0 -11
  677. package/dist/handlers/channels/STAGE_INSTANCE_DELETE.js.map +0 -1
  678. package/dist/handlers/channels/STAGE_INSTANCE_UPDATE.d.ts.map +0 -1
  679. package/dist/handlers/channels/STAGE_INSTANCE_UPDATE.js +0 -11
  680. package/dist/handlers/channels/STAGE_INSTANCE_UPDATE.js.map +0 -1
  681. package/dist/handlers/channels/THREAD_CREATE.d.ts.map +0 -1
  682. package/dist/handlers/channels/THREAD_CREATE.js +0 -8
  683. package/dist/handlers/channels/THREAD_CREATE.js.map +0 -1
  684. package/dist/handlers/channels/THREAD_DELETE.d.ts.map +0 -1
  685. package/dist/handlers/channels/THREAD_DELETE.js +0 -8
  686. package/dist/handlers/channels/THREAD_DELETE.js.map +0 -1
  687. package/dist/handlers/channels/THREAD_LIST_SYNC.d.ts.map +0 -1
  688. package/dist/handlers/channels/THREAD_LIST_SYNC.js +0 -19
  689. package/dist/handlers/channels/THREAD_LIST_SYNC.js.map +0 -1
  690. package/dist/handlers/channels/THREAD_MEMBERS_UPDATE.d.ts +0 -4
  691. package/dist/handlers/channels/THREAD_MEMBERS_UPDATE.d.ts.map +0 -1
  692. package/dist/handlers/channels/THREAD_MEMBERS_UPDATE.js +0 -11
  693. package/dist/handlers/channels/THREAD_MEMBERS_UPDATE.js.map +0 -1
  694. package/dist/handlers/channels/THREAD_MEMBER_UPDATE.d.ts +0 -4
  695. package/dist/handlers/channels/THREAD_MEMBER_UPDATE.d.ts.map +0 -1
  696. package/dist/handlers/channels/THREAD_MEMBER_UPDATE.js +0 -11
  697. package/dist/handlers/channels/THREAD_MEMBER_UPDATE.js.map +0 -1
  698. package/dist/handlers/channels/THREAD_UPDATE.d.ts.map +0 -1
  699. package/dist/handlers/channels/THREAD_UPDATE.js +0 -8
  700. package/dist/handlers/channels/THREAD_UPDATE.js.map +0 -1
  701. package/dist/handlers/channels/index.d.ts +0 -13
  702. package/dist/handlers/channels/index.d.ts.map +0 -1
  703. package/dist/handlers/channels/index.js +0 -14
  704. package/dist/handlers/channels/index.js.map +0 -1
  705. package/dist/handlers/emojis/GUILD_EMOJIS_UPDATE.d.ts.map +0 -1
  706. package/dist/handlers/emojis/GUILD_EMOJIS_UPDATE.js +0 -13
  707. package/dist/handlers/emojis/GUILD_EMOJIS_UPDATE.js.map +0 -1
  708. package/dist/handlers/emojis/index.d.ts.map +0 -1
  709. package/dist/handlers/emojis/index.js +0 -3
  710. package/dist/handlers/emojis/index.js.map +0 -1
  711. package/dist/handlers/guilds/GUILD_AUDIT_LOG_ENTRY_CREATE.d.ts.map +0 -1
  712. package/dist/handlers/guilds/GUILD_AUDIT_LOG_ENTRY_CREATE.js +0 -7
  713. package/dist/handlers/guilds/GUILD_AUDIT_LOG_ENTRY_CREATE.js.map +0 -1
  714. package/dist/handlers/guilds/GUILD_BAN_ADD.d.ts.map +0 -1
  715. package/dist/handlers/guilds/GUILD_BAN_ADD.js +0 -6
  716. package/dist/handlers/guilds/GUILD_BAN_ADD.js.map +0 -1
  717. package/dist/handlers/guilds/GUILD_BAN_REMOVE.d.ts.map +0 -1
  718. package/dist/handlers/guilds/GUILD_BAN_REMOVE.js +0 -6
  719. package/dist/handlers/guilds/GUILD_BAN_REMOVE.js.map +0 -1
  720. package/dist/handlers/guilds/GUILD_CREATE.d.ts.map +0 -1
  721. package/dist/handlers/guilds/GUILD_CREATE.js +0 -9
  722. package/dist/handlers/guilds/GUILD_CREATE.js.map +0 -1
  723. package/dist/handlers/guilds/GUILD_DELETE.d.ts.map +0 -1
  724. package/dist/handlers/guilds/GUILD_DELETE.js +0 -6
  725. package/dist/handlers/guilds/GUILD_DELETE.js.map +0 -1
  726. package/dist/handlers/guilds/GUILD_INTEGRATIONS_UPDATE.d.ts.map +0 -1
  727. package/dist/handlers/guilds/GUILD_INTEGRATIONS_UPDATE.js +0 -8
  728. package/dist/handlers/guilds/GUILD_INTEGRATIONS_UPDATE.js.map +0 -1
  729. package/dist/handlers/guilds/GUILD_STICKERS_UPDATE.d.ts +0 -3
  730. package/dist/handlers/guilds/GUILD_STICKERS_UPDATE.d.ts.map +0 -1
  731. package/dist/handlers/guilds/GUILD_STICKERS_UPDATE.js +0 -9
  732. package/dist/handlers/guilds/GUILD_STICKERS_UPDATE.js.map +0 -1
  733. package/dist/handlers/guilds/GUILD_UPDATE.d.ts.map +0 -1
  734. package/dist/handlers/guilds/GUILD_UPDATE.js +0 -9
  735. package/dist/handlers/guilds/GUILD_UPDATE.js.map +0 -1
  736. package/dist/handlers/guilds/automod/AUTO_MODERATION_ACTION_EXECUTION.d.ts +0 -5
  737. package/dist/handlers/guilds/automod/AUTO_MODERATION_ACTION_EXECUTION.d.ts.map +0 -1
  738. package/dist/handlers/guilds/automod/AUTO_MODERATION_ACTION_EXECUTION.js +0 -6
  739. package/dist/handlers/guilds/automod/AUTO_MODERATION_ACTION_EXECUTION.js.map +0 -1
  740. package/dist/handlers/guilds/automod/AUTO_MODERATION_RULE_CREATE.d.ts +0 -5
  741. package/dist/handlers/guilds/automod/AUTO_MODERATION_RULE_CREATE.d.ts.map +0 -1
  742. package/dist/handlers/guilds/automod/AUTO_MODERATION_RULE_CREATE.js +0 -6
  743. package/dist/handlers/guilds/automod/AUTO_MODERATION_RULE_CREATE.js.map +0 -1
  744. package/dist/handlers/guilds/automod/AUTO_MODERATION_RULE_DELETE.d.ts +0 -5
  745. package/dist/handlers/guilds/automod/AUTO_MODERATION_RULE_DELETE.d.ts.map +0 -1
  746. package/dist/handlers/guilds/automod/AUTO_MODERATION_RULE_DELETE.js +0 -6
  747. package/dist/handlers/guilds/automod/AUTO_MODERATION_RULE_DELETE.js.map +0 -1
  748. package/dist/handlers/guilds/automod/AUTO_MODERATION_RULE_UPDATE.d.ts +0 -5
  749. package/dist/handlers/guilds/automod/AUTO_MODERATION_RULE_UPDATE.d.ts.map +0 -1
  750. package/dist/handlers/guilds/automod/AUTO_MODERATION_RULE_UPDATE.js +0 -6
  751. package/dist/handlers/guilds/automod/AUTO_MODERATION_RULE_UPDATE.js.map +0 -1
  752. package/dist/handlers/guilds/automod/index.d.ts.map +0 -1
  753. package/dist/handlers/guilds/automod/index.js +0 -6
  754. package/dist/handlers/guilds/automod/index.js.map +0 -1
  755. package/dist/handlers/guilds/index.d.ts.map +0 -1
  756. package/dist/handlers/guilds/index.js +0 -12
  757. package/dist/handlers/guilds/index.js.map +0 -1
  758. package/dist/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_CREATE.d.ts +0 -4
  759. package/dist/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_CREATE.d.ts.map +0 -1
  760. package/dist/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_CREATE.js +0 -6
  761. package/dist/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_CREATE.js.map +0 -1
  762. package/dist/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_DELETE.d.ts.map +0 -1
  763. package/dist/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_DELETE.js +0 -6
  764. package/dist/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_DELETE.js.map +0 -1
  765. package/dist/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_UPDATE.d.ts.map +0 -1
  766. package/dist/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_UPDATE.js +0 -6
  767. package/dist/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_UPDATE.js.map +0 -1
  768. package/dist/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_USER_ADD.d.ts.map +0 -1
  769. package/dist/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_USER_ADD.js +0 -10
  770. package/dist/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_USER_ADD.js.map +0 -1
  771. package/dist/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_USER_REMOVE.d.ts.map +0 -1
  772. package/dist/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_USER_REMOVE.js +0 -10
  773. package/dist/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_USER_REMOVE.js.map +0 -1
  774. package/dist/handlers/guilds/scheduledEvents/index.d.ts.map +0 -1
  775. package/dist/handlers/guilds/scheduledEvents/index.js +0 -7
  776. package/dist/handlers/guilds/scheduledEvents/index.js.map +0 -1
  777. package/dist/handlers/index.d.ts +0 -13
  778. package/dist/handlers/index.d.ts.map +0 -1
  779. package/dist/handlers/index.js +0 -14
  780. package/dist/handlers/index.js.map +0 -1
  781. package/dist/handlers/integrations/INTEGRATION_CREATE.d.ts.map +0 -1
  782. package/dist/handlers/integrations/INTEGRATION_CREATE.js +0 -5
  783. package/dist/handlers/integrations/INTEGRATION_CREATE.js.map +0 -1
  784. package/dist/handlers/integrations/INTEGRATION_DELETE.d.ts.map +0 -1
  785. package/dist/handlers/integrations/INTEGRATION_DELETE.js +0 -10
  786. package/dist/handlers/integrations/INTEGRATION_DELETE.js.map +0 -1
  787. package/dist/handlers/integrations/INTEGRATION_UPDATE.d.ts.map +0 -1
  788. package/dist/handlers/integrations/INTEGRATION_UPDATE.js +0 -5
  789. package/dist/handlers/integrations/INTEGRATION_UPDATE.js.map +0 -1
  790. package/dist/handlers/integrations/index.d.ts.map +0 -1
  791. package/dist/handlers/integrations/index.js +0 -5
  792. package/dist/handlers/integrations/index.js.map +0 -1
  793. package/dist/handlers/interactions/APPLICATION_COMMAND_PERMISSIONS_UPDATE.d.ts +0 -3
  794. package/dist/handlers/interactions/APPLICATION_COMMAND_PERMISSIONS_UPDATE.d.ts.map +0 -1
  795. package/dist/handlers/interactions/APPLICATION_COMMAND_PERMISSIONS_UPDATE.js +0 -6
  796. package/dist/handlers/interactions/APPLICATION_COMMAND_PERMISSIONS_UPDATE.js.map +0 -1
  797. package/dist/handlers/interactions/INTERACTION_CREATE.d.ts +0 -4
  798. package/dist/handlers/interactions/INTERACTION_CREATE.d.ts.map +0 -1
  799. package/dist/handlers/interactions/INTERACTION_CREATE.js +0 -5
  800. package/dist/handlers/interactions/INTERACTION_CREATE.js.map +0 -1
  801. package/dist/handlers/interactions/index.d.ts.map +0 -1
  802. package/dist/handlers/interactions/index.js +0 -4
  803. package/dist/handlers/interactions/index.js.map +0 -1
  804. package/dist/handlers/invites/INVITE_CREATE.d.ts +0 -4
  805. package/dist/handlers/invites/INVITE_CREATE.d.ts.map +0 -1
  806. package/dist/handlers/invites/INVITE_CREATE.js +0 -5
  807. package/dist/handlers/invites/INVITE_CREATE.js.map +0 -1
  808. package/dist/handlers/invites/INVITE_DELETE.d.ts.map +0 -1
  809. package/dist/handlers/invites/INVITE_DELETE.js +0 -10
  810. package/dist/handlers/invites/INVITE_DELETE.js.map +0 -1
  811. package/dist/handlers/invites/index.d.ts.map +0 -1
  812. package/dist/handlers/invites/index.js +0 -4
  813. package/dist/handlers/invites/index.js.map +0 -1
  814. package/dist/handlers/members/GUILD_MEMBERS_CHUNK.d.ts +0 -4
  815. package/dist/handlers/members/GUILD_MEMBERS_CHUNK.d.ts.map +0 -1
  816. package/dist/handlers/members/GUILD_MEMBERS_CHUNK.js +0 -26
  817. package/dist/handlers/members/GUILD_MEMBERS_CHUNK.js.map +0 -1
  818. package/dist/handlers/members/GUILD_MEMBER_ADD.d.ts +0 -4
  819. package/dist/handlers/members/GUILD_MEMBER_ADD.d.ts.map +0 -1
  820. package/dist/handlers/members/GUILD_MEMBER_ADD.js +0 -9
  821. package/dist/handlers/members/GUILD_MEMBER_ADD.js.map +0 -1
  822. package/dist/handlers/members/GUILD_MEMBER_REMOVE.d.ts.map +0 -1
  823. package/dist/handlers/members/GUILD_MEMBER_REMOVE.js +0 -8
  824. package/dist/handlers/members/GUILD_MEMBER_REMOVE.js.map +0 -1
  825. package/dist/handlers/members/GUILD_MEMBER_UPDATE.d.ts.map +0 -1
  826. package/dist/handlers/members/GUILD_MEMBER_UPDATE.js +0 -7
  827. package/dist/handlers/members/GUILD_MEMBER_UPDATE.js.map +0 -1
  828. package/dist/handlers/members/index.d.ts.map +0 -1
  829. package/dist/handlers/members/index.js +0 -6
  830. package/dist/handlers/members/index.js.map +0 -1
  831. package/dist/handlers/messages/MESSAGE_CREATE.d.ts +0 -4
  832. package/dist/handlers/messages/MESSAGE_CREATE.d.ts.map +0 -1
  833. package/dist/handlers/messages/MESSAGE_CREATE.js +0 -6
  834. package/dist/handlers/messages/MESSAGE_CREATE.js.map +0 -1
  835. package/dist/handlers/messages/MESSAGE_DELETE.d.ts.map +0 -1
  836. package/dist/handlers/messages/MESSAGE_DELETE.js +0 -10
  837. package/dist/handlers/messages/MESSAGE_DELETE.js.map +0 -1
  838. package/dist/handlers/messages/MESSAGE_DELETE_BULK.d.ts.map +0 -1
  839. package/dist/handlers/messages/MESSAGE_DELETE_BULK.js +0 -12
  840. package/dist/handlers/messages/MESSAGE_DELETE_BULK.js.map +0 -1
  841. package/dist/handlers/messages/MESSAGE_REACTION_ADD.d.ts.map +0 -1
  842. package/dist/handlers/messages/MESSAGE_REACTION_ADD.js +0 -16
  843. package/dist/handlers/messages/MESSAGE_REACTION_ADD.js.map +0 -1
  844. package/dist/handlers/messages/MESSAGE_REACTION_REMOVE.d.ts.map +0 -1
  845. package/dist/handlers/messages/MESSAGE_REACTION_REMOVE.js +0 -12
  846. package/dist/handlers/messages/MESSAGE_REACTION_REMOVE.js.map +0 -1
  847. package/dist/handlers/messages/MESSAGE_REACTION_REMOVE_ALL.d.ts.map +0 -1
  848. package/dist/handlers/messages/MESSAGE_REACTION_REMOVE_ALL.js +0 -10
  849. package/dist/handlers/messages/MESSAGE_REACTION_REMOVE_ALL.js.map +0 -1
  850. package/dist/handlers/messages/MESSAGE_REACTION_REMOVE_EMOJI.d.ts.map +0 -1
  851. package/dist/handlers/messages/MESSAGE_REACTION_REMOVE_EMOJI.js +0 -11
  852. package/dist/handlers/messages/MESSAGE_REACTION_REMOVE_EMOJI.js.map +0 -1
  853. package/dist/handlers/messages/MESSAGE_UPDATE.d.ts +0 -4
  854. package/dist/handlers/messages/MESSAGE_UPDATE.d.ts.map +0 -1
  855. package/dist/handlers/messages/MESSAGE_UPDATE.js +0 -7
  856. package/dist/handlers/messages/MESSAGE_UPDATE.js.map +0 -1
  857. package/dist/handlers/messages/index.d.ts.map +0 -1
  858. package/dist/handlers/messages/index.js +0 -10
  859. package/dist/handlers/messages/index.js.map +0 -1
  860. package/dist/handlers/misc/PRESENCE_UPDATE.d.ts.map +0 -1
  861. package/dist/handlers/misc/PRESENCE_UPDATE.js +0 -5
  862. package/dist/handlers/misc/PRESENCE_UPDATE.js.map +0 -1
  863. package/dist/handlers/misc/READY.d.ts.map +0 -1
  864. package/dist/handlers/misc/READY.js +0 -17
  865. package/dist/handlers/misc/READY.js.map +0 -1
  866. package/dist/handlers/misc/TYPING_START.d.ts.map +0 -1
  867. package/dist/handlers/misc/TYPING_START.js +0 -14
  868. package/dist/handlers/misc/TYPING_START.js.map +0 -1
  869. package/dist/handlers/misc/USER_UPDATE.d.ts.map +0 -1
  870. package/dist/handlers/misc/USER_UPDATE.js +0 -6
  871. package/dist/handlers/misc/USER_UPDATE.js.map +0 -1
  872. package/dist/handlers/misc/index.d.ts.map +0 -1
  873. package/dist/handlers/misc/index.js +0 -6
  874. package/dist/handlers/misc/index.js.map +0 -1
  875. package/dist/handlers/roles/GUILD_ROLE_CREATE.d.ts.map +0 -1
  876. package/dist/handlers/roles/GUILD_ROLE_CREATE.js +0 -9
  877. package/dist/handlers/roles/GUILD_ROLE_CREATE.js.map +0 -1
  878. package/dist/handlers/roles/GUILD_ROLE_DELETE.d.ts.map +0 -1
  879. package/dist/handlers/roles/GUILD_ROLE_DELETE.js +0 -9
  880. package/dist/handlers/roles/GUILD_ROLE_DELETE.js.map +0 -1
  881. package/dist/handlers/roles/GUILD_ROLE_UPDATE.d.ts.map +0 -1
  882. package/dist/handlers/roles/GUILD_ROLE_UPDATE.js +0 -9
  883. package/dist/handlers/roles/GUILD_ROLE_UPDATE.js.map +0 -1
  884. package/dist/handlers/roles/index.d.ts.map +0 -1
  885. package/dist/handlers/roles/index.js +0 -5
  886. package/dist/handlers/roles/index.js.map +0 -1
  887. package/dist/handlers/voice/VOICE_SERVER_UPDATE.d.ts.map +0 -1
  888. package/dist/handlers/voice/VOICE_SERVER_UPDATE.js +0 -10
  889. package/dist/handlers/voice/VOICE_SERVER_UPDATE.js.map +0 -1
  890. package/dist/handlers/voice/VOICE_STATE_UPDATE.d.ts.map +0 -1
  891. package/dist/handlers/voice/VOICE_STATE_UPDATE.js +0 -11
  892. package/dist/handlers/voice/VOICE_STATE_UPDATE.js.map +0 -1
  893. package/dist/handlers/voice/index.d.ts +0 -3
  894. package/dist/handlers/voice/index.d.ts.map +0 -1
  895. package/dist/handlers/voice/index.js +0 -4
  896. package/dist/handlers/voice/index.js.map +0 -1
  897. package/dist/handlers/webhooks/WEBHOOKS_UPDATE.d.ts +0 -4
  898. package/dist/handlers/webhooks/WEBHOOKS_UPDATE.d.ts.map +0 -1
  899. package/dist/handlers/webhooks/WEBHOOKS_UPDATE.js +0 -9
  900. package/dist/handlers/webhooks/WEBHOOKS_UPDATE.js.map +0 -1
  901. package/dist/handlers/webhooks/index.d.ts.map +0 -1
  902. package/dist/handlers/webhooks/index.js +0 -3
  903. package/dist/handlers/webhooks/index.js.map +0 -1
  904. package/dist/handlers.d.ts +0 -6
  905. package/dist/handlers.d.ts.map +0 -1
  906. package/dist/handlers.js +0 -67
  907. package/dist/handlers.js.map +0 -1
  908. package/dist/index.d.ts +0 -11
  909. package/dist/index.d.ts.map +0 -1
  910. package/dist/index.js +0 -12
  911. package/dist/index.js.map +0 -1
  912. package/dist/optionalize.d.ts +0 -47
  913. package/dist/optionalize.d.ts.map +0 -1
  914. package/dist/optionalize.js +0 -3
  915. package/dist/optionalize.js.map +0 -1
  916. package/dist/transformers/activity.d.ts +0 -36
  917. package/dist/transformers/activity.d.ts.map +0 -1
  918. package/dist/transformers/activity.js +0 -35
  919. package/dist/transformers/activity.js.map +0 -1
  920. package/dist/transformers/application.d.ts +0 -76
  921. package/dist/transformers/application.d.ts.map +0 -1
  922. package/dist/transformers/application.js +0 -26
  923. package/dist/transformers/application.js.map +0 -1
  924. package/dist/transformers/applicationCommand.d.ts +0 -193
  925. package/dist/transformers/applicationCommand.d.ts.map +0 -1
  926. package/dist/transformers/applicationCommand.js +0 -20
  927. package/dist/transformers/applicationCommand.js.map +0 -1
  928. package/dist/transformers/applicationCommandOption.d.ts +0 -35
  929. package/dist/transformers/applicationCommandOption.d.ts.map +0 -1
  930. package/dist/transformers/applicationCommandOption.js +0 -20
  931. package/dist/transformers/applicationCommandOption.js.map +0 -1
  932. package/dist/transformers/applicationCommandOptionChoice.d.ts +0 -41
  933. package/dist/transformers/applicationCommandOptionChoice.d.ts.map +0 -1
  934. package/dist/transformers/applicationCommandOptionChoice.js +0 -11
  935. package/dist/transformers/applicationCommandOptionChoice.js.map +0 -1
  936. package/dist/transformers/applicationCommandPermission.d.ts +0 -15
  937. package/dist/transformers/applicationCommandPermission.d.ts.map +0 -1
  938. package/dist/transformers/applicationCommandPermission.js +0 -16
  939. package/dist/transformers/applicationCommandPermission.js.map +0 -1
  940. package/dist/transformers/attachment.d.ts +0 -17
  941. package/dist/transformers/attachment.d.ts.map +0 -1
  942. package/dist/transformers/attachment.js +0 -18
  943. package/dist/transformers/attachment.js.map +0 -1
  944. package/dist/transformers/auditLogEntry.d.ts +0 -45
  945. package/dist/transformers/auditLogEntry.d.ts.map +0 -1
  946. package/dist/transformers/auditLogEntry.js +0 -129
  947. package/dist/transformers/auditLogEntry.js.map +0 -1
  948. package/dist/transformers/automodActionExecution.d.ts +0 -25
  949. package/dist/transformers/automodActionExecution.d.ts.map +0 -1
  950. package/dist/transformers/automodActionExecution.js +0 -26
  951. package/dist/transformers/automodActionExecution.js.map +0 -1
  952. package/dist/transformers/automodRule.d.ts +0 -31
  953. package/dist/transformers/automodRule.d.ts.map +0 -1
  954. package/dist/transformers/automodRule.js +0 -32
  955. package/dist/transformers/automodRule.js.map +0 -1
  956. package/dist/transformers/channel.d.ts +0 -107
  957. package/dist/transformers/channel.d.ts.map +0 -1
  958. package/dist/transformers/channel.js +0 -97
  959. package/dist/transformers/channel.js.map +0 -1
  960. package/dist/transformers/component.d.ts +0 -46
  961. package/dist/transformers/component.d.ts.map +0 -1
  962. package/dist/transformers/component.js +0 -35
  963. package/dist/transformers/component.js.map +0 -1
  964. package/dist/transformers/embed.d.ts +0 -51
  965. package/dist/transformers/embed.d.ts.map +0 -1
  966. package/dist/transformers/embed.js +0 -45
  967. package/dist/transformers/embed.js.map +0 -1
  968. package/dist/transformers/emoji.d.ts +0 -55
  969. package/dist/transformers/emoji.d.ts.map +0 -1
  970. package/dist/transformers/emoji.js +0 -14
  971. package/dist/transformers/emoji.js.map +0 -1
  972. package/dist/transformers/gatewayBot.d.ts +0 -14
  973. package/dist/transformers/gatewayBot.d.ts.map +0 -1
  974. package/dist/transformers/gatewayBot.js +0 -16
  975. package/dist/transformers/gatewayBot.js.map +0 -1
  976. package/dist/transformers/guild.d.ts +0 -71
  977. package/dist/transformers/guild.d.ts.map +0 -1
  978. package/dist/transformers/guild.js +0 -105
  979. package/dist/transformers/guild.js.map +0 -1
  980. package/dist/transformers/index.d.ts +0 -37
  981. package/dist/transformers/index.d.ts.map +0 -1
  982. package/dist/transformers/index.js +0 -38
  983. package/dist/transformers/index.js.map +0 -1
  984. package/dist/transformers/integration.d.ts +0 -117
  985. package/dist/transformers/integration.d.ts.map +0 -1
  986. package/dist/transformers/integration.js +0 -35
  987. package/dist/transformers/integration.js.map +0 -1
  988. package/dist/transformers/interaction.d.ts +0 -74
  989. package/dist/transformers/interaction.d.ts.map +0 -1
  990. package/dist/transformers/interaction.js +0 -114
  991. package/dist/transformers/interaction.js.map +0 -1
  992. package/dist/transformers/invite.d.ts +0 -174
  993. package/dist/transformers/invite.d.ts.map +0 -1
  994. package/dist/transformers/invite.js +0 -20
  995. package/dist/transformers/invite.js.map +0 -1
  996. package/dist/transformers/member.d.ts +0 -39
  997. package/dist/transformers/member.d.ts.map +0 -1
  998. package/dist/transformers/member.js +0 -34
  999. package/dist/transformers/member.js.map +0 -1
  1000. package/dist/transformers/message.d.ts +0 -133
  1001. package/dist/transformers/message.d.ts.map +0 -1
  1002. package/dist/transformers/message.js +0 -222
  1003. package/dist/transformers/message.js.map +0 -1
  1004. package/dist/transformers/presence.d.ts +0 -14
  1005. package/dist/transformers/presence.d.ts.map +0 -1
  1006. package/dist/transformers/presence.js +0 -16
  1007. package/dist/transformers/presence.js.map +0 -1
  1008. package/dist/transformers/reverse/activity.d.ts +0 -4
  1009. package/dist/transformers/reverse/activity.d.ts.map +0 -1
  1010. package/dist/transformers/reverse/activity.js +0 -43
  1011. package/dist/transformers/reverse/activity.js.map +0 -1
  1012. package/dist/transformers/reverse/allowedMentions.d.ts +0 -3
  1013. package/dist/transformers/reverse/allowedMentions.d.ts.map +0 -1
  1014. package/dist/transformers/reverse/allowedMentions.js +0 -10
  1015. package/dist/transformers/reverse/allowedMentions.js.map +0 -1
  1016. package/dist/transformers/reverse/application.d.ts +0 -4
  1017. package/dist/transformers/reverse/application.d.ts.map +0 -1
  1018. package/dist/transformers/reverse/application.js +0 -24
  1019. package/dist/transformers/reverse/application.js.map +0 -1
  1020. package/dist/transformers/reverse/applicationCommand.d.ts +0 -4
  1021. package/dist/transformers/reverse/applicationCommand.d.ts.map +0 -1
  1022. package/dist/transformers/reverse/applicationCommand.js +0 -18
  1023. package/dist/transformers/reverse/applicationCommand.js.map +0 -1
  1024. package/dist/transformers/reverse/applicationCommandOption.d.ts +0 -4
  1025. package/dist/transformers/reverse/applicationCommandOption.d.ts.map +0 -1
  1026. package/dist/transformers/reverse/applicationCommandOption.js +0 -20
  1027. package/dist/transformers/reverse/applicationCommandOption.js.map +0 -1
  1028. package/dist/transformers/reverse/applicationCommandOptionChoice.d.ts +0 -4
  1029. package/dist/transformers/reverse/applicationCommandOptionChoice.d.ts.map +0 -1
  1030. package/dist/transformers/reverse/applicationCommandOptionChoice.js +0 -9
  1031. package/dist/transformers/reverse/applicationCommandOptionChoice.js.map +0 -1
  1032. package/dist/transformers/reverse/applicationCommandPermission.d.ts +0 -4
  1033. package/dist/transformers/reverse/applicationCommandPermission.d.ts.map +0 -1
  1034. package/dist/transformers/reverse/applicationCommandPermission.js +0 -14
  1035. package/dist/transformers/reverse/applicationCommandPermission.js.map +0 -1
  1036. package/dist/transformers/reverse/attachment.d.ts +0 -4
  1037. package/dist/transformers/reverse/attachment.d.ts.map +0 -1
  1038. package/dist/transformers/reverse/attachment.js +0 -16
  1039. package/dist/transformers/reverse/attachment.js.map +0 -1
  1040. package/dist/transformers/reverse/auditLogEntry.d.ts +0 -5
  1041. package/dist/transformers/reverse/auditLogEntry.d.ts.map +0 -1
  1042. package/dist/transformers/reverse/auditLogEntry.js +0 -131
  1043. package/dist/transformers/reverse/auditLogEntry.js.map +0 -1
  1044. package/dist/transformers/reverse/component.d.ts +0 -5
  1045. package/dist/transformers/reverse/component.d.ts.map +0 -1
  1046. package/dist/transformers/reverse/component.js +0 -36
  1047. package/dist/transformers/reverse/component.js.map +0 -1
  1048. package/dist/transformers/reverse/createApplicationCommand.d.ts.map +0 -1
  1049. package/dist/transformers/reverse/createApplicationCommand.js +0 -27
  1050. package/dist/transformers/reverse/createApplicationCommand.js.map +0 -1
  1051. package/dist/transformers/reverse/embed.d.ts +0 -5
  1052. package/dist/transformers/reverse/embed.d.ts.map +0 -1
  1053. package/dist/transformers/reverse/embed.js +0 -43
  1054. package/dist/transformers/reverse/embed.js.map +0 -1
  1055. package/dist/transformers/reverse/emoji.d.ts +0 -5
  1056. package/dist/transformers/reverse/emoji.d.ts.map +0 -1
  1057. package/dist/transformers/reverse/emoji.js +0 -14
  1058. package/dist/transformers/reverse/emoji.js.map +0 -1
  1059. package/dist/transformers/reverse/gatewayBot.d.ts +0 -4
  1060. package/dist/transformers/reverse/gatewayBot.d.ts.map +0 -1
  1061. package/dist/transformers/reverse/gatewayBot.js +0 -14
  1062. package/dist/transformers/reverse/gatewayBot.js.map +0 -1
  1063. package/dist/transformers/reverse/index.d.ts +0 -17
  1064. package/dist/transformers/reverse/index.d.ts.map +0 -1
  1065. package/dist/transformers/reverse/index.js +0 -18
  1066. package/dist/transformers/reverse/index.js.map +0 -1
  1067. package/dist/transformers/reverse/interactionResponse.d.ts +0 -4
  1068. package/dist/transformers/reverse/interactionResponse.d.ts.map +0 -1
  1069. package/dist/transformers/reverse/interactionResponse.js +0 -24
  1070. package/dist/transformers/reverse/interactionResponse.js.map +0 -1
  1071. package/dist/transformers/reverse/member.d.ts +0 -7
  1072. package/dist/transformers/reverse/member.d.ts.map +0 -1
  1073. package/dist/transformers/reverse/member.js +0 -34
  1074. package/dist/transformers/reverse/member.js.map +0 -1
  1075. package/dist/transformers/reverse/presence.d.ts +0 -11
  1076. package/dist/transformers/reverse/presence.d.ts.map +0 -1
  1077. package/dist/transformers/reverse/presence.js +0 -23
  1078. package/dist/transformers/reverse/presence.js.map +0 -1
  1079. package/dist/transformers/reverse/team.d.ts +0 -5
  1080. package/dist/transformers/reverse/team.d.ts.map +0 -1
  1081. package/dist/transformers/reverse/team.js +0 -18
  1082. package/dist/transformers/reverse/team.js.map +0 -1
  1083. package/dist/transformers/reverse/widgetSettings.d.ts +0 -5
  1084. package/dist/transformers/reverse/widgetSettings.d.ts.map +0 -1
  1085. package/dist/transformers/reverse/widgetSettings.js +0 -8
  1086. package/dist/transformers/reverse/widgetSettings.js.map +0 -1
  1087. package/dist/transformers/role.d.ts +0 -77
  1088. package/dist/transformers/role.d.ts.map +0 -1
  1089. package/dist/transformers/role.js +0 -57
  1090. package/dist/transformers/role.js.map +0 -1
  1091. package/dist/transformers/scheduledEvent.d.ts +0 -65
  1092. package/dist/transformers/scheduledEvent.d.ts.map +0 -1
  1093. package/dist/transformers/scheduledEvent.js +0 -25
  1094. package/dist/transformers/scheduledEvent.js.map +0 -1
  1095. package/dist/transformers/stageInstance.d.ts +0 -12
  1096. package/dist/transformers/stageInstance.d.ts.map +0 -1
  1097. package/dist/transformers/stageInstance.js +0 -13
  1098. package/dist/transformers/stageInstance.js.map +0 -1
  1099. package/dist/transformers/sticker.d.ts +0 -71
  1100. package/dist/transformers/sticker.d.ts.map +0 -1
  1101. package/dist/transformers/sticker.js +0 -32
  1102. package/dist/transformers/sticker.js.map +0 -1
  1103. package/dist/transformers/team.d.ts +0 -17
  1104. package/dist/transformers/team.d.ts.map +0 -1
  1105. package/dist/transformers/team.js +0 -20
  1106. package/dist/transformers/team.js.map +0 -1
  1107. package/dist/transformers/template.d.ts +0 -410
  1108. package/dist/transformers/template.d.ts.map +0 -1
  1109. package/dist/transformers/template.js +0 -19
  1110. package/dist/transformers/template.js.map +0 -1
  1111. package/dist/transformers/threadMember.d.ts +0 -17
  1112. package/dist/transformers/threadMember.d.ts.map +0 -1
  1113. package/dist/transformers/threadMember.js +0 -19
  1114. package/dist/transformers/threadMember.js.map +0 -1
  1115. package/dist/transformers/toggles/Permissions.d.ts +0 -9
  1116. package/dist/transformers/toggles/Permissions.d.ts.map +0 -1
  1117. package/dist/transformers/toggles/Permissions.js +0 -18
  1118. package/dist/transformers/toggles/Permissions.js.map +0 -1
  1119. package/dist/transformers/toggles/ToggleBitfield.d.ts.map +0 -1
  1120. package/dist/transformers/toggles/ToggleBitfield.js +0 -42
  1121. package/dist/transformers/toggles/ToggleBitfield.js.map +0 -1
  1122. package/dist/transformers/toggles/channel.d.ts +0 -33
  1123. package/dist/transformers/toggles/channel.d.ts.map +0 -1
  1124. package/dist/transformers/toggles/channel.js +0 -50
  1125. package/dist/transformers/toggles/channel.js.map +0 -1
  1126. package/dist/transformers/toggles/emoji.d.ts.map +0 -1
  1127. package/dist/transformers/toggles/emoji.js +0 -45
  1128. package/dist/transformers/toggles/emoji.js.map +0 -1
  1129. package/dist/transformers/toggles/guild.d.ts +0 -130
  1130. package/dist/transformers/toggles/guild.d.ts.map +0 -1
  1131. package/dist/transformers/toggles/guild.js +0 -206
  1132. package/dist/transformers/toggles/guild.js.map +0 -1
  1133. package/dist/transformers/toggles/index.d.ts +0 -8
  1134. package/dist/transformers/toggles/index.d.ts.map +0 -1
  1135. package/dist/transformers/toggles/index.js +0 -9
  1136. package/dist/transformers/toggles/index.js.map +0 -1
  1137. package/dist/transformers/toggles/member.d.ts +0 -25
  1138. package/dist/transformers/toggles/member.d.ts.map +0 -1
  1139. package/dist/transformers/toggles/member.js +0 -40
  1140. package/dist/transformers/toggles/member.js.map +0 -1
  1141. package/dist/transformers/toggles/role.d.ts.map +0 -1
  1142. package/dist/transformers/toggles/role.js +0 -55
  1143. package/dist/transformers/toggles/role.js.map +0 -1
  1144. package/dist/transformers/toggles/user.d.ts.map +0 -1
  1145. package/dist/transformers/toggles/user.js +0 -45
  1146. package/dist/transformers/toggles/user.js.map +0 -1
  1147. package/dist/transformers/toggles/voice.d.ts.map +0 -1
  1148. package/dist/transformers/toggles/voice.js +0 -60
  1149. package/dist/transformers/toggles/voice.js.map +0 -1
  1150. package/dist/transformers/user.d.ts +0 -42
  1151. package/dist/transformers/user.d.ts.map +0 -1
  1152. package/dist/transformers/user.js +0 -41
  1153. package/dist/transformers/user.js.map +0 -1
  1154. package/dist/transformers/voiceRegion.d.ts +0 -12
  1155. package/dist/transformers/voiceRegion.d.ts.map +0 -1
  1156. package/dist/transformers/voiceRegion.js +0 -14
  1157. package/dist/transformers/voiceRegion.js.map +0 -1
  1158. package/dist/transformers/voiceState.d.ts +0 -18
  1159. package/dist/transformers/voiceState.d.ts.map +0 -1
  1160. package/dist/transformers/voiceState.js +0 -15
  1161. package/dist/transformers/voiceState.js.map +0 -1
  1162. package/dist/transformers/webhook.d.ts +0 -68
  1163. package/dist/transformers/webhook.d.ts.map +0 -1
  1164. package/dist/transformers/webhook.js +0 -28
  1165. package/dist/transformers/webhook.js.map +0 -1
  1166. package/dist/transformers/welcomeScreen.d.ts +0 -14
  1167. package/dist/transformers/welcomeScreen.d.ts.map +0 -1
  1168. package/dist/transformers/welcomeScreen.js +0 -15
  1169. package/dist/transformers/welcomeScreen.js.map +0 -1
  1170. package/dist/transformers/widget.d.ts +0 -24
  1171. package/dist/transformers/widget.d.ts.map +0 -1
  1172. package/dist/transformers/widget.js +0 -26
  1173. package/dist/transformers/widget.js.map +0 -1
  1174. package/dist/transformers/widgetSettings.d.ts +0 -9
  1175. package/dist/transformers/widgetSettings.d.ts.map +0 -1
  1176. package/dist/transformers/widgetSettings.js +0 -10
  1177. package/dist/transformers/widgetSettings.js.map +0 -1
  1178. package/dist/transformers.d.ts +0 -377
  1179. package/dist/transformers.d.ts.map +0 -1
  1180. package/dist/transformers.js +0 -369
  1181. package/dist/transformers.js.map +0 -1
  1182. package/dist/typings.d.ts +0 -194
  1183. package/dist/typings.d.ts.map +0 -1
  1184. package/dist/typings.js +0 -19
  1185. package/dist/typings.js.map +0 -1
  1186. package/dist/utils.d.ts.map +0 -1
  1187. package/dist/utils.js +0 -11
  1188. package/dist/utils.js.map +0 -1
  1189. /package/dist/{constants.d.ts → types/constants.d.ts} +0 -0
  1190. /package/dist/{handlers → types/handlers}/channels/CHANNEL_DELETE.d.ts +0 -0
  1191. /package/dist/{handlers → types/handlers}/channels/CHANNEL_PINS_UPDATE.d.ts +0 -0
  1192. /package/dist/{handlers → types/handlers}/channels/CHANNEL_UPDATE.d.ts +0 -0
  1193. /package/dist/{handlers → types/handlers}/channels/STAGE_INSTANCE_CREATE.d.ts +0 -0
  1194. /package/dist/{handlers → types/handlers}/channels/STAGE_INSTANCE_DELETE.d.ts +0 -0
  1195. /package/dist/{handlers → types/handlers}/channels/STAGE_INSTANCE_UPDATE.d.ts +0 -0
  1196. /package/dist/{handlers → types/handlers}/channels/THREAD_CREATE.d.ts +0 -0
  1197. /package/dist/{handlers → types/handlers}/channels/THREAD_DELETE.d.ts +0 -0
  1198. /package/dist/{handlers → types/handlers}/channels/THREAD_LIST_SYNC.d.ts +0 -0
  1199. /package/dist/{handlers → types/handlers}/channels/THREAD_UPDATE.d.ts +0 -0
  1200. /package/dist/{handlers → types/handlers}/emojis/GUILD_EMOJIS_UPDATE.d.ts +0 -0
  1201. /package/dist/{handlers → types/handlers}/emojis/index.d.ts +0 -0
  1202. /package/dist/{handlers → types/handlers}/guilds/GUILD_AUDIT_LOG_ENTRY_CREATE.d.ts +0 -0
  1203. /package/dist/{handlers → types/handlers}/guilds/GUILD_BAN_ADD.d.ts +0 -0
  1204. /package/dist/{handlers → types/handlers}/guilds/GUILD_BAN_REMOVE.d.ts +0 -0
  1205. /package/dist/{handlers → types/handlers}/guilds/GUILD_CREATE.d.ts +0 -0
  1206. /package/dist/{handlers → types/handlers}/guilds/GUILD_DELETE.d.ts +0 -0
  1207. /package/dist/{handlers → types/handlers}/guilds/GUILD_INTEGRATIONS_UPDATE.d.ts +0 -0
  1208. /package/dist/{handlers → types/handlers}/guilds/GUILD_UPDATE.d.ts +0 -0
  1209. /package/dist/{handlers → types/handlers}/guilds/automod/index.d.ts +0 -0
  1210. /package/dist/{handlers → types/handlers}/guilds/index.d.ts +0 -0
  1211. /package/dist/{handlers → types/handlers}/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_DELETE.d.ts +0 -0
  1212. /package/dist/{handlers → types/handlers}/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_UPDATE.d.ts +0 -0
  1213. /package/dist/{handlers → types/handlers}/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_USER_ADD.d.ts +0 -0
  1214. /package/dist/{handlers → types/handlers}/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_USER_REMOVE.d.ts +0 -0
  1215. /package/dist/{handlers → types/handlers}/guilds/scheduledEvents/index.d.ts +0 -0
  1216. /package/dist/{handlers → types/handlers}/integrations/INTEGRATION_CREATE.d.ts +0 -0
  1217. /package/dist/{handlers → types/handlers}/integrations/INTEGRATION_DELETE.d.ts +0 -0
  1218. /package/dist/{handlers → types/handlers}/integrations/INTEGRATION_UPDATE.d.ts +0 -0
  1219. /package/dist/{handlers → types/handlers}/integrations/index.d.ts +0 -0
  1220. /package/dist/{handlers → types/handlers}/interactions/index.d.ts +0 -0
  1221. /package/dist/{handlers → types/handlers}/invites/INVITE_DELETE.d.ts +0 -0
  1222. /package/dist/{handlers → types/handlers}/invites/index.d.ts +0 -0
  1223. /package/dist/{handlers → types/handlers}/members/GUILD_MEMBER_REMOVE.d.ts +0 -0
  1224. /package/dist/{handlers → types/handlers}/members/GUILD_MEMBER_UPDATE.d.ts +0 -0
  1225. /package/dist/{handlers → types/handlers}/members/index.d.ts +0 -0
  1226. /package/dist/{handlers → types/handlers}/messages/MESSAGE_DELETE.d.ts +0 -0
  1227. /package/dist/{handlers → types/handlers}/messages/MESSAGE_DELETE_BULK.d.ts +0 -0
  1228. /package/dist/{handlers → types/handlers}/messages/MESSAGE_REACTION_ADD.d.ts +0 -0
  1229. /package/dist/{handlers → types/handlers}/messages/MESSAGE_REACTION_REMOVE.d.ts +0 -0
  1230. /package/dist/{handlers → types/handlers}/messages/MESSAGE_REACTION_REMOVE_ALL.d.ts +0 -0
  1231. /package/dist/{handlers → types/handlers}/messages/MESSAGE_REACTION_REMOVE_EMOJI.d.ts +0 -0
  1232. /package/dist/{handlers → types/handlers}/messages/index.d.ts +0 -0
  1233. /package/dist/{handlers → types/handlers}/misc/PRESENCE_UPDATE.d.ts +0 -0
  1234. /package/dist/{handlers → types/handlers}/misc/READY.d.ts +0 -0
  1235. /package/dist/{handlers → types/handlers}/misc/TYPING_START.d.ts +0 -0
  1236. /package/dist/{handlers → types/handlers}/misc/USER_UPDATE.d.ts +0 -0
  1237. /package/dist/{handlers → types/handlers}/misc/index.d.ts +0 -0
  1238. /package/dist/{handlers → types/handlers}/roles/GUILD_ROLE_CREATE.d.ts +0 -0
  1239. /package/dist/{handlers → types/handlers}/roles/GUILD_ROLE_DELETE.d.ts +0 -0
  1240. /package/dist/{handlers → types/handlers}/roles/GUILD_ROLE_UPDATE.d.ts +0 -0
  1241. /package/dist/{handlers → types/handlers}/roles/index.d.ts +0 -0
  1242. /package/dist/{handlers → types/handlers}/voice/VOICE_SERVER_UPDATE.d.ts +0 -0
  1243. /package/dist/{handlers → types/handlers}/voice/VOICE_STATE_UPDATE.d.ts +0 -0
  1244. /package/dist/{handlers → types/handlers}/webhooks/index.d.ts +0 -0
  1245. /package/dist/{transformers → types/transformers}/reverse/createApplicationCommand.d.ts +0 -0
  1246. /package/dist/{transformers → types/transformers}/toggles/ToggleBitfield.d.ts +0 -0
  1247. /package/dist/{transformers → types/transformers}/toggles/emoji.d.ts +0 -0
  1248. /package/dist/{transformers → types/transformers}/toggles/role.d.ts +0 -0
  1249. /package/dist/{transformers → types/transformers}/toggles/user.d.ts +0 -0
  1250. /package/dist/{transformers → types/transformers}/toggles/voice.d.ts +0 -0
  1251. /package/dist/{utils.d.ts → types/utils.d.ts} +0 -0
@@ -0,0 +1,773 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "createBotHelpers", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return createBotHelpers;
9
+ }
10
+ });
11
+ const _utils = require("@discordeno/utils");
12
+ function createBotHelpers(bot) {
13
+ return {
14
+ createAutomodRule: async (guildId, options, reason)=>{
15
+ return bot.transformers.automodRule(bot, (0, _utils.snakelize)(await bot.rest.createAutomodRule(guildId, options, reason)));
16
+ },
17
+ createChannel: async (guildId, options, reason)=>{
18
+ return bot.transformers.channel(bot, {
19
+ channel: (0, _utils.snakelize)(await bot.rest.createChannel(guildId, options, reason)),
20
+ guildId
21
+ });
22
+ },
23
+ createEmoji: async (guildId, options, reason)=>{
24
+ return bot.transformers.emoji(bot, (0, _utils.snakelize)(await bot.rest.createEmoji(guildId, options, reason)));
25
+ },
26
+ createApplicationEmoji: async (options)=>{
27
+ return bot.transformers.emoji(bot, (0, _utils.snakelize)(await bot.rest.createApplicationEmoji(options)));
28
+ },
29
+ createForumThread: async (channelId, options, reason)=>{
30
+ return bot.transformers.channel(bot, {
31
+ channel: (0, _utils.snakelize)(await bot.rest.createForumThread(channelId, options, reason))
32
+ });
33
+ },
34
+ createGlobalApplicationCommand: async (command, options)=>{
35
+ return bot.transformers.applicationCommand(bot, (0, _utils.snakelize)(await bot.rest.createGlobalApplicationCommand(command, options)));
36
+ },
37
+ createGuild: async (options)=>{
38
+ return bot.transformers.guild(bot, {
39
+ guild: (0, _utils.snakelize)(await bot.rest.createGuild(options)),
40
+ shardId: 0
41
+ });
42
+ },
43
+ createGuildApplicationCommand: async (command, guildId, options)=>{
44
+ return bot.transformers.applicationCommand(bot, (0, _utils.snakelize)(await bot.rest.createGuildApplicationCommand(command, guildId, options)));
45
+ },
46
+ createGuildFromTemplate: async (templateCode, options)=>{
47
+ return bot.transformers.guild(bot, {
48
+ guild: (0, _utils.snakelize)(await bot.rest.createGuildFromTemplate(templateCode, options)),
49
+ shardId: 0
50
+ });
51
+ },
52
+ createGuildSticker: async (guildId, options, reason)=>{
53
+ return bot.transformers.sticker(bot, (0, _utils.snakelize)(await bot.rest.createGuildSticker(guildId, options, reason)));
54
+ },
55
+ createGuildTemplate: async (guildId, options)=>{
56
+ return bot.transformers.template(bot, (0, _utils.snakelize)(await bot.rest.createGuildTemplate(guildId, options)));
57
+ },
58
+ createInvite: async (channelId, options, reason)=>{
59
+ return await bot.rest.createInvite(channelId, options, reason);
60
+ },
61
+ createRole: async (guildId, options, reason)=>{
62
+ return bot.transformers.role(bot, {
63
+ role: (0, _utils.snakelize)(await bot.rest.createRole(guildId, options, reason)),
64
+ guildId
65
+ });
66
+ },
67
+ createScheduledEvent: async (guildId, options, reason)=>{
68
+ return bot.transformers.scheduledEvent(bot, (0, _utils.snakelize)(await bot.rest.createScheduledEvent(guildId, options, reason)));
69
+ },
70
+ createStageInstance: async (options, reason)=>{
71
+ return bot.transformers.stageInstance(bot, (0, _utils.snakelize)(await bot.rest.createStageInstance(options, reason)));
72
+ },
73
+ createWebhook: async (channelId, options, reason)=>{
74
+ return bot.transformers.webhook(bot, (0, _utils.snakelize)(await bot.rest.createWebhook(channelId, options, reason)));
75
+ },
76
+ editApplicationCommandPermissions: async (guildId, commandId, bearerToken, options)=>{
77
+ return bot.transformers.applicationCommandPermission(bot, (0, _utils.snakelize)(await bot.rest.editApplicationCommandPermissions(guildId, commandId, bearerToken, options)));
78
+ },
79
+ editAutomodRule: async (guildId, ruleId, options, reason)=>{
80
+ return bot.transformers.automodRule(bot, (0, _utils.snakelize)(await bot.rest.editAutomodRule(guildId, ruleId, options, reason)));
81
+ },
82
+ editBotProfile: async (options)=>{
83
+ return bot.transformers.user(bot, (0, _utils.snakelize)(await bot.rest.editBotProfile(options)));
84
+ },
85
+ editChannel: async (channelId, options, reason)=>{
86
+ return bot.transformers.channel(bot, {
87
+ channel: (0, _utils.snakelize)(await bot.rest.editChannel(channelId, options, reason))
88
+ });
89
+ },
90
+ editEmoji: async (guildId, id, options, reason)=>{
91
+ return bot.transformers.emoji(bot, (0, _utils.snakelize)(await bot.rest.editEmoji(guildId, id, options, reason)));
92
+ },
93
+ editApplicationEmoji: async (id, options)=>{
94
+ return bot.transformers.emoji(bot, (0, _utils.snakelize)(await bot.rest.editApplicationEmoji(id, options)));
95
+ },
96
+ editFollowupMessage: async (token, messageId, options)=>{
97
+ return bot.transformers.message(bot, {
98
+ message: (0, _utils.snakelize)(await bot.rest.editFollowupMessage(token, messageId, options)),
99
+ shardId: 0
100
+ });
101
+ },
102
+ editGlobalApplicationCommand: async (commandId, options)=>{
103
+ return bot.transformers.applicationCommand(bot, (0, _utils.snakelize)(await bot.rest.editGlobalApplicationCommand(commandId, options)));
104
+ },
105
+ editGuild: async (guildId, options, reason)=>{
106
+ return bot.transformers.guild(bot, {
107
+ guild: (0, _utils.snakelize)(await bot.rest.editGuild(guildId, options, reason)),
108
+ shardId: 0
109
+ });
110
+ },
111
+ editGuildApplicationCommand: async (commandId, guildId, options)=>{
112
+ return bot.transformers.applicationCommand(bot, (0, _utils.snakelize)(await bot.rest.editGuildApplicationCommand(commandId, guildId, options)));
113
+ },
114
+ editGuildSticker: async (guildId, stickerId, options, reason)=>{
115
+ return bot.transformers.sticker(bot, (0, _utils.snakelize)(await bot.rest.editGuildSticker(guildId, stickerId, options, reason)));
116
+ },
117
+ editGuildTemplate: async (guildId, templateCode, options)=>{
118
+ return bot.transformers.template(bot, (0, _utils.snakelize)(await bot.rest.editGuildTemplate(guildId, templateCode, options)));
119
+ },
120
+ editMessage: async (channelId, messageId, options)=>{
121
+ return bot.transformers.message(bot, {
122
+ message: (0, _utils.snakelize)(await bot.rest.editMessage(channelId, messageId, options)),
123
+ shardId: 0
124
+ });
125
+ },
126
+ editOriginalInteractionResponse: async (token, options)=>{
127
+ return bot.transformers.message(bot, {
128
+ message: (0, _utils.snakelize)(await bot.rest.editOriginalInteractionResponse(token, options)),
129
+ shardId: 0
130
+ });
131
+ },
132
+ editOriginalWebhookMessage: async (webhookId, token, options)=>{
133
+ return bot.transformers.message(bot, {
134
+ message: (0, _utils.snakelize)(await bot.rest.editOriginalWebhookMessage(webhookId, token, options)),
135
+ shardId: 0
136
+ });
137
+ },
138
+ editRole: async (guildId, roleId, options, reason)=>{
139
+ return bot.transformers.role(bot, {
140
+ role: (0, _utils.snakelize)(await bot.rest.editRole(guildId, roleId, options, reason)),
141
+ guildId
142
+ });
143
+ },
144
+ editRolePositions: async (guildId, options, reason)=>{
145
+ return (0, _utils.snakelize)(await bot.rest.editRolePositions(guildId, options, reason)).map((role)=>bot.transformers.role(bot, {
146
+ role,
147
+ guildId
148
+ }));
149
+ },
150
+ editScheduledEvent: async (guildId, eventId, options, reason)=>{
151
+ return bot.transformers.scheduledEvent(bot, (0, _utils.snakelize)(await bot.rest.editScheduledEvent(guildId, eventId, options, reason)));
152
+ },
153
+ editStageInstance: async (channelId, topic, reason)=>{
154
+ return bot.transformers.stageInstance(bot, (0, _utils.snakelize)(await bot.rest.editStageInstance(channelId, topic, reason)));
155
+ },
156
+ editWebhook: async (webhookId, options, reason)=>{
157
+ return bot.transformers.webhook(bot, (0, _utils.snakelize)(await bot.rest.editWebhook(webhookId, options, reason)));
158
+ },
159
+ editWebhookMessage: async (webhookId, token, messageId, options)=>{
160
+ return bot.transformers.message(bot, {
161
+ message: (0, _utils.snakelize)(await bot.rest.editWebhookMessage(webhookId, token, messageId, options)),
162
+ shardId: 0
163
+ });
164
+ },
165
+ editWebhookWithToken: async (webhookId, token, options)=>{
166
+ return bot.transformers.webhook(bot, (0, _utils.snakelize)(await bot.rest.editWebhookWithToken(webhookId, token, options)));
167
+ },
168
+ editWelcomeScreen: async (guildId, options, reason)=>{
169
+ return bot.transformers.welcomeScreen(bot, (0, _utils.snakelize)(await bot.rest.editWelcomeScreen(guildId, options, reason)));
170
+ },
171
+ editWidgetSettings: async (guildId, options, reason)=>{
172
+ return bot.transformers.widgetSettings(bot, (0, _utils.snakelize)(await bot.rest.editWidgetSettings(guildId, options, reason)));
173
+ },
174
+ executeWebhook: async (webhookId, token, options)=>{
175
+ const result = await bot.rest.executeWebhook(webhookId, token, options);
176
+ if (!result) return;
177
+ return bot.transformers.message(bot, {
178
+ message: (0, _utils.snakelize)(result),
179
+ shardId: 0
180
+ });
181
+ },
182
+ followAnnouncement: async (sourceChannelId, targetChannelId)=>{
183
+ return await bot.rest.followAnnouncement(sourceChannelId, targetChannelId);
184
+ },
185
+ getActiveThreads: async (guildId)=>{
186
+ const result = await bot.rest.getActiveThreads(guildId);
187
+ return {
188
+ threads: result.threads.map((thread)=>bot.transformers.channel(bot, {
189
+ guildId,
190
+ channel: (0, _utils.snakelize)(thread)
191
+ })),
192
+ members: result.members.map((member)=>bot.transformers.threadMember(bot, (0, _utils.snakelize)(member)))
193
+ };
194
+ },
195
+ getApplicationInfo: async ()=>{
196
+ return bot.transformers.application(bot, {
197
+ application: (0, _utils.snakelize)(await bot.rest.getApplicationInfo()),
198
+ shardId: 0
199
+ });
200
+ },
201
+ editApplicationInfo: async (body)=>{
202
+ return bot.transformers.application(bot, {
203
+ application: (0, _utils.snakelize)(await bot.rest.editApplicationInfo(body)),
204
+ shardId: 0
205
+ });
206
+ },
207
+ getCurrentAuthenticationInfo: async (bearerToken)=>{
208
+ return await bot.rest.getCurrentAuthenticationInfo(bearerToken);
209
+ },
210
+ exchangeToken: async (clientId, clientSecret, options)=>{
211
+ return await bot.rest.exchangeToken(clientId, clientSecret, options);
212
+ },
213
+ revokeToken: async (clientId, clientSecret, options)=>{
214
+ return await bot.rest.revokeToken(clientId, clientSecret, options);
215
+ },
216
+ getApplicationCommandPermission: async (guildId, commandId, options)=>{
217
+ const res = await bot.rest.getApplicationCommandPermission(guildId, commandId, options);
218
+ const snakedRes = (0, _utils.snakelize)(res);
219
+ return bot.transformers.applicationCommandPermission(bot, snakedRes);
220
+ },
221
+ getApplicationCommandPermissions: async (guildId, options)=>{
222
+ return (await bot.rest.getApplicationCommandPermissions(guildId, options)).map((res)=>bot.transformers.applicationCommandPermission(bot, (0, _utils.snakelize)(res)));
223
+ },
224
+ getAuditLog: async (guildId, options)=>{
225
+ return await bot.rest.getAuditLog(guildId, options);
226
+ },
227
+ getAutomodRule: async (guildId, ruleId)=>{
228
+ return bot.transformers.automodRule(bot, (0, _utils.snakelize)(await bot.rest.getAutomodRule(guildId, ruleId)));
229
+ },
230
+ getAutomodRules: async (guildId)=>{
231
+ return (await bot.rest.getAutomodRules(guildId)).map((res)=>bot.transformers.automodRule(bot, (0, _utils.snakelize)(res)));
232
+ },
233
+ getAvailableVoiceRegions: async ()=>{
234
+ return (await bot.rest.getAvailableVoiceRegions()).map((res)=>bot.transformers.voiceRegion(bot, (0, _utils.snakelize)(res)));
235
+ },
236
+ getBan: async (guildId, userId)=>{
237
+ return await bot.rest.getBan(guildId, userId);
238
+ },
239
+ getBans: async (guildId, options)=>{
240
+ return await bot.rest.getBans(guildId, options);
241
+ },
242
+ getChannel: async (channelId)=>{
243
+ return bot.transformers.channel(bot, {
244
+ channel: (0, _utils.snakelize)(await bot.rest.getChannel(channelId))
245
+ });
246
+ },
247
+ getChannelInvites: async (channelId)=>{
248
+ return await bot.rest.getChannelInvites(channelId);
249
+ // return (await bot.rest.getChannelInvites(channelId)).map((res) => bot.transformers.invite(bot, snakelize(res)))
250
+ },
251
+ getChannels: async (guildId)=>{
252
+ return (await bot.rest.getChannels(guildId)).map((res)=>bot.transformers.channel(bot, {
253
+ channel: (0, _utils.snakelize)(res),
254
+ guildId
255
+ }));
256
+ },
257
+ getChannelWebhooks: async (channelId)=>{
258
+ return (await bot.rest.getChannelWebhooks(channelId)).map((res)=>bot.transformers.webhook(bot, (0, _utils.snakelize)(res)));
259
+ },
260
+ getDmChannel: async (userId)=>{
261
+ return bot.transformers.channel(bot, {
262
+ channel: (0, _utils.snakelize)(await bot.rest.getDmChannel(userId))
263
+ });
264
+ },
265
+ getGroupDmChannel: async (options)=>{
266
+ return bot.transformers.channel(bot, {
267
+ channel: (0, _utils.snakelize)(await bot.rest.getGroupDmChannel(options))
268
+ });
269
+ },
270
+ getEmoji: async (guildId, emojiId)=>{
271
+ return bot.transformers.emoji(bot, (0, _utils.snakelize)(await bot.rest.getEmoji(guildId, emojiId)));
272
+ },
273
+ getApplicationEmoji: async (emojiId)=>{
274
+ return bot.transformers.emoji(bot, (0, _utils.snakelize)(await bot.rest.getApplicationEmoji(emojiId)));
275
+ },
276
+ getEmojis: async (guildId)=>{
277
+ return (await bot.rest.getEmojis(guildId)).map((res)=>bot.transformers.emoji(bot, (0, _utils.snakelize)(res)));
278
+ },
279
+ getApplicationEmojis: async ()=>{
280
+ const res = await bot.rest.getApplicationEmojis();
281
+ return {
282
+ items: res.items.map((item)=>bot.transformers.emoji(bot, (0, _utils.snakelize)(item)))
283
+ };
284
+ },
285
+ getFollowupMessage: async (token, messageId)=>{
286
+ return bot.transformers.message(bot, {
287
+ message: (0, _utils.snakelize)(await bot.rest.getFollowupMessage(token, messageId)),
288
+ shardId: 0
289
+ });
290
+ },
291
+ getGatewayBot: async ()=>{
292
+ return bot.transformers.gatewayBot(bot, (0, _utils.snakelize)(await bot.rest.getGatewayBot()));
293
+ },
294
+ getGlobalApplicationCommand: async (commandId)=>{
295
+ return bot.transformers.applicationCommand(bot, (0, _utils.snakelize)(await bot.rest.getGlobalApplicationCommand(commandId)));
296
+ },
297
+ getGlobalApplicationCommands: async ()=>{
298
+ return (await bot.rest.getGlobalApplicationCommands()).map((res)=>bot.transformers.applicationCommand(bot, (0, _utils.snakelize)(res)));
299
+ },
300
+ getGuild: async (guildId, options)=>{
301
+ return bot.transformers.guild(bot, {
302
+ guild: (0, _utils.snakelize)(await bot.rest.getGuild(guildId, options)),
303
+ shardId: 0
304
+ });
305
+ },
306
+ getGuilds: async (bearerToken, options)=>{
307
+ return (await bot.rest.getGuilds(bearerToken, options)).map((res)=>// @ts-expect-error getGuilds returns partial guilds
308
+ bot.transformers.guild(bot, {
309
+ guild: (0, _utils.snakelize)(res),
310
+ shardId: 0
311
+ }));
312
+ },
313
+ getGuildApplicationCommand: async (commandId, guildId)=>{
314
+ return bot.transformers.applicationCommand(bot, (0, _utils.snakelize)(await bot.rest.getGuildApplicationCommand(commandId, guildId)));
315
+ },
316
+ getGuildApplicationCommands: async (guildId)=>{
317
+ return (await bot.rest.getGuildApplicationCommands(guildId)).map((res)=>bot.transformers.applicationCommand(bot, (0, _utils.snakelize)(res)));
318
+ },
319
+ getGuildPreview: async (guildId)=>{
320
+ return await bot.rest.getGuildPreview(guildId);
321
+ // return bot.transformers.xxx(bot, snakelize(await bot.rest.getGuildPreview(guildId)))
322
+ },
323
+ getGuildSticker: async (guildId, stickerId)=>{
324
+ return bot.transformers.sticker(bot, (0, _utils.snakelize)(await bot.rest.getGuildSticker(guildId, stickerId)));
325
+ },
326
+ getGuildStickers: async (guildId)=>{
327
+ return (await bot.rest.getGuildStickers(guildId)).map((res)=>bot.transformers.sticker(bot, (0, _utils.snakelize)(res)));
328
+ },
329
+ getGuildTemplate: async (templateCode)=>{
330
+ return bot.transformers.template(bot, (0, _utils.snakelize)(await bot.rest.getGuildTemplate(templateCode)));
331
+ },
332
+ getGuildTemplates: async (guildId)=>{
333
+ return (await bot.rest.getGuildTemplates(guildId)).map((res)=>bot.transformers.template(bot, (0, _utils.snakelize)(res)));
334
+ },
335
+ getGuildWebhooks: async (guildId)=>{
336
+ return (await bot.rest.getGuildWebhooks(guildId)).map((res)=>bot.transformers.webhook(bot, (0, _utils.snakelize)(res)));
337
+ },
338
+ getIntegrations: async (guildId)=>{
339
+ return (await bot.rest.getIntegrations(guildId)).map((res)=>bot.transformers.integration(bot, (0, _utils.snakelize)({
340
+ ...res,
341
+ guildId: guildId.toString()
342
+ })));
343
+ },
344
+ getInvite: async (inviteCode, options)=>{
345
+ return bot.transformers.invite(bot, {
346
+ invite: (0, _utils.snakelize)(await bot.rest.getInvite(inviteCode, options)),
347
+ shardId: 0
348
+ });
349
+ },
350
+ getInvites: async (guildId)=>{
351
+ return (await bot.rest.getInvites(guildId)).map((res)=>bot.transformers.invite(bot, {
352
+ invite: (0, _utils.snakelize)(res),
353
+ shardId: 0
354
+ }));
355
+ },
356
+ getMessage: async (channelId, messageId)=>{
357
+ return bot.transformers.message(bot, {
358
+ message: (0, _utils.snakelize)(await bot.rest.getMessage(channelId, messageId)),
359
+ shardId: 0
360
+ });
361
+ },
362
+ getMessages: async (channelId, options)=>{
363
+ return (await bot.rest.getMessages(channelId, options)).map((res)=>bot.transformers.message(bot, {
364
+ message: (0, _utils.snakelize)(res),
365
+ shardId: 0
366
+ }));
367
+ },
368
+ getStickerPack: async (stickerPackId)=>{
369
+ return bot.transformers.stickerPack(bot, (0, _utils.snakelize)(await bot.rest.getStickerPack(stickerPackId)));
370
+ },
371
+ getStickerPacks: async ()=>{
372
+ return (await bot.rest.getStickerPacks()).map((res)=>bot.transformers.stickerPack(bot, (0, _utils.snakelize)(res)));
373
+ },
374
+ getOriginalInteractionResponse: async (token)=>{
375
+ return bot.transformers.message(bot, {
376
+ message: (0, _utils.snakelize)(await bot.rest.getOriginalInteractionResponse(token)),
377
+ shardId: 0
378
+ });
379
+ },
380
+ getPinnedMessages: async (channelId)=>{
381
+ return (await bot.rest.getPinnedMessages(channelId)).map((res)=>bot.transformers.message(bot, {
382
+ message: (0, _utils.snakelize)(res),
383
+ shardId: 0
384
+ }));
385
+ },
386
+ getPrivateArchivedThreads: async (channelId, options)=>{
387
+ return await bot.rest.getPrivateArchivedThreads(channelId, options);
388
+ },
389
+ getPrivateJoinedArchivedThreads: async (channelId, options)=>{
390
+ return await bot.rest.getPrivateJoinedArchivedThreads(channelId, options);
391
+ },
392
+ getPruneCount: async (guildId, options)=>{
393
+ return await bot.rest.getPruneCount(guildId, options);
394
+ },
395
+ getPublicArchivedThreads: async (channelId, options)=>{
396
+ return await bot.rest.getPublicArchivedThreads(channelId, options);
397
+ },
398
+ getRoles: async (guildId)=>{
399
+ return (0, _utils.snakelize)(await bot.rest.getRoles(guildId)).map((role)=>bot.transformers.role(bot, {
400
+ role,
401
+ guildId
402
+ }));
403
+ },
404
+ getRole: async (guildId, roleId)=>{
405
+ return bot.transformers.role(bot, {
406
+ role: (0, _utils.snakelize)(await bot.rest.getRole(guildId, roleId)),
407
+ guildId
408
+ });
409
+ },
410
+ getScheduledEvent: async (guildId, eventId, options)=>{
411
+ return bot.transformers.scheduledEvent(bot, (0, _utils.snakelize)(await bot.rest.getScheduledEvent(guildId, eventId, options)));
412
+ },
413
+ getScheduledEvents: async (guildId, options)=>{
414
+ return (await bot.rest.getScheduledEvents(guildId, options)).map((res)=>bot.transformers.scheduledEvent(bot, (0, _utils.snakelize)(res)));
415
+ },
416
+ getScheduledEventUsers: async (guildId, eventId, options)=>{
417
+ return (await bot.rest.getScheduledEventUsers(guildId, eventId, options)).map((u)=>{
418
+ return {
419
+ user: bot.transformers.user(bot, (0, _utils.snakelize)(u.user)),
420
+ member: u.member && bot.transformers.member(bot, (0, _utils.snakelize)(u.member), guildId, bot.transformers.snowflake(u.user.id))
421
+ };
422
+ });
423
+ },
424
+ getSessionInfo: async ()=>{
425
+ return bot.transformers.gatewayBot(bot, (0, _utils.snakelize)(await bot.rest.getSessionInfo()));
426
+ },
427
+ getStageInstance: async (channelId)=>{
428
+ return bot.transformers.stageInstance(bot, (0, _utils.snakelize)(await bot.rest.getStageInstance(channelId)));
429
+ },
430
+ getOwnVoiceState: async (guildId)=>{
431
+ return bot.transformers.voiceState(bot, {
432
+ guildId,
433
+ voiceState: (0, _utils.snakelize)(await bot.rest.getOwnVoiceState(guildId))
434
+ });
435
+ },
436
+ getUserVoiceState: async (guildId, userId)=>{
437
+ return bot.transformers.voiceState(bot, {
438
+ guildId,
439
+ voiceState: (0, _utils.snakelize)(await bot.rest.getUserVoiceState(guildId, userId))
440
+ });
441
+ },
442
+ getSticker: async (stickerId)=>{
443
+ return bot.transformers.sticker(bot, (0, _utils.snakelize)(await bot.rest.getSticker(stickerId)));
444
+ },
445
+ getThreadMember: async (channelId, userId)=>{
446
+ return bot.transformers.threadMember(bot, (0, _utils.snakelize)(await bot.rest.getThreadMember(channelId, userId)));
447
+ },
448
+ getThreadMembers: async (channelId)=>{
449
+ return (await bot.rest.getThreadMembers(channelId)).map((res)=>bot.transformers.threadMember(bot, (0, _utils.snakelize)(res)));
450
+ },
451
+ getReactions: async (channelId, messageId, reaction, options)=>{
452
+ return (await bot.rest.getReactions(channelId, messageId, reaction, options)).map((res)=>bot.transformers.user(bot, (0, _utils.snakelize)(res)));
453
+ },
454
+ getUser: async (id)=>{
455
+ return bot.transformers.user(bot, (0, _utils.snakelize)(await bot.rest.getUser(id)));
456
+ },
457
+ getCurrentUser: async (bearerToken)=>{
458
+ return bot.transformers.user(bot, (0, _utils.snakelize)(await bot.rest.getCurrentUser(bearerToken)));
459
+ },
460
+ getUserConnections: async (bearerToken)=>{
461
+ return await bot.rest.getUserConnections(bearerToken);
462
+ },
463
+ getUserApplicationRoleConnection: async (bearerToken, applicationId)=>{
464
+ return await bot.rest.getUserApplicationRoleConnection(bearerToken, applicationId);
465
+ },
466
+ getVanityUrl: async (guildId)=>{
467
+ return await bot.rest.getVanityUrl(guildId);
468
+ },
469
+ getVoiceRegions: async (guildId)=>{
470
+ return (await bot.rest.getVoiceRegions(guildId)).map((res)=>bot.transformers.voiceRegion(bot, (0, _utils.snakelize)(res)));
471
+ },
472
+ getWebhook: async (webhookId)=>{
473
+ return bot.transformers.webhook(bot, (0, _utils.snakelize)(await bot.rest.getWebhook(webhookId)));
474
+ },
475
+ getWebhookMessage: async (webhookId, token, messageId, options)=>{
476
+ return bot.transformers.message(bot, {
477
+ message: (0, _utils.snakelize)(await bot.rest.getWebhookMessage(webhookId, token, messageId, options)),
478
+ shardId: 0
479
+ });
480
+ },
481
+ getWebhookWithToken: async (webhookId, token)=>{
482
+ return bot.transformers.webhook(bot, (0, _utils.snakelize)(await bot.rest.getWebhookWithToken(webhookId, token)));
483
+ },
484
+ getWelcomeScreen: async (guildId)=>{
485
+ return bot.transformers.welcomeScreen(bot, (0, _utils.snakelize)(await bot.rest.getWelcomeScreen(guildId)));
486
+ },
487
+ getWidget: async (guildId)=>{
488
+ return bot.transformers.widget(bot, (0, _utils.snakelize)(await bot.rest.getWidget(guildId)));
489
+ },
490
+ getWidgetSettings: async (guildId)=>{
491
+ return bot.transformers.widgetSettings(bot, (0, _utils.snakelize)(await bot.rest.getWidgetSettings(guildId)));
492
+ },
493
+ publishMessage: async (channelId, messageId)=>{
494
+ return bot.transformers.message(bot, {
495
+ message: (0, _utils.snakelize)(await bot.rest.publishMessage(channelId, messageId)),
496
+ shardId: 0
497
+ });
498
+ },
499
+ sendMessage: async (channelId, options)=>{
500
+ return bot.transformers.message(bot, {
501
+ message: (0, _utils.snakelize)(await bot.rest.sendMessage(channelId, options)),
502
+ shardId: 0
503
+ });
504
+ },
505
+ sendFollowupMessage: async (token, options)=>{
506
+ return bot.transformers.message(bot, {
507
+ message: (0, _utils.snakelize)(await bot.rest.sendFollowupMessage(token, options)),
508
+ shardId: 0
509
+ });
510
+ },
511
+ startThreadWithMessage: async (channelId, messageId, options, reason)=>{
512
+ return bot.transformers.channel(bot, {
513
+ channel: (0, _utils.snakelize)(await bot.rest.startThreadWithMessage(channelId, messageId, options, reason))
514
+ });
515
+ },
516
+ startThreadWithoutMessage: async (channelId, options, reason)=>{
517
+ return bot.transformers.channel(bot, {
518
+ channel: (0, _utils.snakelize)(await bot.rest.startThreadWithoutMessage(channelId, options, reason))
519
+ });
520
+ },
521
+ syncGuildTemplate: async (guildId)=>{
522
+ return bot.transformers.template(bot, (0, _utils.snakelize)(await bot.rest.syncGuildTemplate(guildId)));
523
+ },
524
+ upsertGlobalApplicationCommands: async (commands, options)=>{
525
+ return (await bot.rest.upsertGlobalApplicationCommands(commands, options)).map((res)=>bot.transformers.applicationCommand(bot, (0, _utils.snakelize)(res)));
526
+ },
527
+ upsertGuildApplicationCommands: async (guildId, commands, options)=>{
528
+ return (await bot.rest.upsertGuildApplicationCommands(guildId, commands, options)).map((res)=>bot.transformers.applicationCommand(bot, (0, _utils.snakelize)(res)));
529
+ },
530
+ editBotMember: async (guildId, options, reason)=>{
531
+ return bot.transformers.member(bot, (0, _utils.snakelize)(await bot.rest.editBotMember(guildId, options, reason)), guildId, bot.id);
532
+ },
533
+ editMember: async (guildId, userId, options, reason)=>{
534
+ return bot.transformers.member(bot, (0, _utils.snakelize)(await bot.rest.editMember(guildId, userId, options, reason)), guildId, userId);
535
+ },
536
+ getMember: async (guildId, userId)=>{
537
+ return bot.transformers.member(bot, (0, _utils.snakelize)(await bot.rest.getMember(guildId, userId)), guildId, userId);
538
+ },
539
+ getCurrentMember: async (guildId, bearerToken)=>{
540
+ const res = await bot.rest.getCurrentMember(guildId, bearerToken);
541
+ return bot.transformers.member(bot, (0, _utils.snakelize)(res), guildId, bot.transformers.snowflake(res.user.id));
542
+ },
543
+ getMembers: async (guildId, options)=>{
544
+ return (await bot.rest.getMembers(guildId, options)).map((res)=>bot.transformers.member(bot, (0, _utils.snakelize)(res), guildId, bot.transformers.snowflake(res.user.id)));
545
+ },
546
+ pruneMembers: async (guildId, options, reason)=>{
547
+ return await bot.rest.pruneMembers(guildId, options, reason);
548
+ },
549
+ searchMembers: async (guildId, query, options)=>{
550
+ return (await bot.rest.searchMembers(guildId, query, options)).map((res)=>bot.transformers.member(bot, (0, _utils.snakelize)(res), guildId, bot.transformers.snowflake(res.user.id)));
551
+ },
552
+ bulkBanMembers: async (guildId, options, reason)=>{
553
+ const res = await bot.rest.bulkBanMembers(guildId, options, reason);
554
+ return {
555
+ bannedUsers: res.bannedUsers.map((x)=>bot.transformers.snowflake(x)),
556
+ failedUsers: res.failedUsers.map((x)=>bot.transformers.snowflake(x))
557
+ };
558
+ },
559
+ getApplicationActivityInstance: async (applicationId, instanceId)=>{
560
+ return await bot.rest.getApplicationActivityInstance(applicationId, instanceId);
561
+ },
562
+ // All useless void return functions here
563
+ addReaction: async (channelId, messageId, reaction)=>{
564
+ return await bot.rest.addReaction(channelId, messageId, reaction);
565
+ },
566
+ addReactions: async (channelId, messageId, reactions, ordered)=>{
567
+ return await bot.rest.addReactions(channelId, messageId, reactions, ordered);
568
+ },
569
+ addRole: async (guildId, userId, roleId, reason)=>{
570
+ return await bot.rest.addRole(guildId, userId, roleId, reason);
571
+ },
572
+ addThreadMember: async (channelId, userId)=>{
573
+ return await bot.rest.addThreadMember(channelId, userId);
574
+ },
575
+ addDmRecipient: async (channelId, userId, options)=>{
576
+ return await bot.rest.addDmRecipient(channelId, userId, options);
577
+ },
578
+ addGuildMember: async (guildId, userId, options)=>{
579
+ return await bot.rest.addGuildMember(guildId, userId, options);
580
+ },
581
+ deleteAutomodRule: async (guildId, ruleId, reason)=>{
582
+ return await bot.rest.deleteAutomodRule(guildId, ruleId, reason);
583
+ },
584
+ deleteChannel: async (channelId, reason)=>{
585
+ return await bot.rest.deleteChannel(channelId, reason);
586
+ },
587
+ deleteChannelPermissionOverride: async (channelId, overwriteId, reason)=>{
588
+ return await bot.rest.deleteChannelPermissionOverride(channelId, overwriteId, reason);
589
+ },
590
+ deleteEmoji: async (guildId, id, reason)=>{
591
+ return await bot.rest.deleteEmoji(guildId, id, reason);
592
+ },
593
+ deleteApplicationEmoji: async (id)=>{
594
+ return await bot.rest.deleteApplicationEmoji(id);
595
+ },
596
+ deleteFollowupMessage: async (token, messageId)=>{
597
+ return await bot.rest.deleteFollowupMessage(token, messageId);
598
+ },
599
+ deleteGlobalApplicationCommand: async (commandId)=>{
600
+ return await bot.rest.deleteGlobalApplicationCommand(commandId);
601
+ },
602
+ deleteGuild: async (guildId)=>{
603
+ return await bot.rest.deleteGuild(guildId);
604
+ },
605
+ deleteGuildApplicationCommand: async (commandId, guildId)=>{
606
+ return await bot.rest.deleteGuildApplicationCommand(commandId, guildId);
607
+ },
608
+ deleteGuildSticker: async (guildId, stickerId, reason)=>{
609
+ return await bot.rest.deleteGuildSticker(guildId, stickerId, reason);
610
+ },
611
+ deleteGuildTemplate: async (guildId, templateCode)=>{
612
+ return await bot.rest.deleteGuildTemplate(guildId, templateCode);
613
+ },
614
+ deleteIntegration: async (guildId, integrationId, reason)=>{
615
+ return await bot.rest.deleteIntegration(guildId, integrationId, reason);
616
+ },
617
+ deleteInvite: async (inviteCode, reason)=>{
618
+ return await bot.rest.deleteInvite(inviteCode, reason);
619
+ },
620
+ deleteMessage: async (channelId, messageId, reason)=>{
621
+ return await bot.rest.deleteMessage(channelId, messageId, reason);
622
+ },
623
+ deleteMessages: async (channelId, messageIds, reason)=>{
624
+ return await bot.rest.deleteMessages(channelId, messageIds, reason);
625
+ },
626
+ deleteOriginalInteractionResponse: async (token)=>{
627
+ return await bot.rest.deleteOriginalInteractionResponse(token);
628
+ },
629
+ deleteOwnReaction: async (channelId, messageId, reaction)=>{
630
+ return await bot.rest.deleteOwnReaction(channelId, messageId, reaction);
631
+ },
632
+ deleteReactionsAll: async (channelId, messageId)=>{
633
+ return await bot.rest.deleteReactionsAll(channelId, messageId);
634
+ },
635
+ deleteReactionsEmoji: async (channelId, messageId, reaction)=>{
636
+ return await bot.rest.deleteReactionsEmoji(channelId, messageId, reaction);
637
+ },
638
+ deleteRole: async (guildId, roleId, reason)=>{
639
+ return await bot.rest.deleteRole(guildId, roleId, reason);
640
+ },
641
+ deleteScheduledEvent: async (guildId, eventId)=>{
642
+ return await bot.rest.deleteScheduledEvent(guildId, eventId);
643
+ },
644
+ deleteStageInstance: async (channelId, reason)=>{
645
+ return await bot.rest.deleteStageInstance(channelId, reason);
646
+ },
647
+ deleteUserReaction: async (channelId, messageId, userId, reaction)=>{
648
+ return await bot.rest.deleteUserReaction(channelId, messageId, userId, reaction);
649
+ },
650
+ deleteWebhook: async (webhookId, reason)=>{
651
+ return await bot.rest.deleteWebhook(webhookId, reason);
652
+ },
653
+ deleteWebhookMessage: async (webhookId, token, messageId, options)=>{
654
+ return await bot.rest.deleteWebhookMessage(webhookId, token, messageId, options);
655
+ },
656
+ deleteWebhookWithToken: async (webhookId, token)=>{
657
+ return await bot.rest.deleteWebhookWithToken(webhookId, token);
658
+ },
659
+ editChannelPermissionOverrides: async (channelId, options, reason)=>{
660
+ return await bot.rest.editChannelPermissionOverrides(channelId, options, reason);
661
+ },
662
+ editChannelPositions: async (guildId, channelPositions)=>{
663
+ return await bot.rest.editChannelPositions(guildId, channelPositions);
664
+ },
665
+ editGuildMfaLevel: async (guildId, mfaLevel, reason)=>{
666
+ return await bot.rest.editGuildMfaLevel(guildId, mfaLevel, reason);
667
+ },
668
+ editOwnVoiceState: async (guildId, options)=>{
669
+ return await bot.rest.editOwnVoiceState(guildId, options);
670
+ },
671
+ editUserVoiceState: async (guildId, options)=>{
672
+ return await bot.rest.editUserVoiceState(guildId, options);
673
+ },
674
+ editUserApplicationRoleConnection: async (bearerToken, applicationId, options)=>{
675
+ return await bot.rest.editUserApplicationRoleConnection(bearerToken, applicationId, options);
676
+ },
677
+ joinThread: async (channelId)=>{
678
+ return await bot.rest.joinThread(channelId);
679
+ },
680
+ leaveGuild: async (guildId)=>{
681
+ return await bot.rest.leaveGuild(guildId);
682
+ },
683
+ leaveThread: async (channelId)=>{
684
+ return await bot.rest.leaveThread(channelId);
685
+ },
686
+ removeRole: async (guildId, userId, roleId, reason)=>{
687
+ return await bot.rest.removeRole(guildId, userId, roleId, reason);
688
+ },
689
+ removeThreadMember: async (channelId, userId)=>{
690
+ return await bot.rest.removeThreadMember(channelId, userId);
691
+ },
692
+ removeDmRecipient: async (channelId, userId)=>{
693
+ return await bot.rest.removeDmRecipient(channelId, userId);
694
+ },
695
+ sendInteractionResponse: async (interactionId, token, options, params)=>{
696
+ const response = await bot.rest.sendInteractionResponse(interactionId, token, options, params);
697
+ if (!response) return;
698
+ return bot.transformers.interactionCallbackResponse(bot, {
699
+ interactionCallbackResponse: (0, _utils.snakelize)(response),
700
+ shardId: 0
701
+ });
702
+ },
703
+ triggerTypingIndicator: async (channelId)=>{
704
+ return await bot.rest.triggerTypingIndicator(channelId);
705
+ },
706
+ banMember: async (guildId, userId, options, reason)=>{
707
+ return await bot.rest.banMember(guildId, userId, options, reason);
708
+ },
709
+ kickMember: async (guildId, userId, reason)=>{
710
+ return await bot.rest.kickMember(guildId, userId, reason);
711
+ },
712
+ pinMessage: async (channelId, messageId, reason)=>{
713
+ return await bot.rest.pinMessage(channelId, messageId, reason);
714
+ },
715
+ unbanMember: async (guildId, userId, reason)=>{
716
+ return await bot.rest.unbanMember(guildId, userId, reason);
717
+ },
718
+ unpinMessage: async (channelId, messageId, reason)=>{
719
+ return await bot.rest.unpinMessage(channelId, messageId, reason);
720
+ },
721
+ getGuildOnboarding: async (guildId)=>{
722
+ return bot.transformers.guildOnboarding(bot, (0, _utils.snakelize)(await bot.rest.getGuildOnboarding(guildId)));
723
+ },
724
+ editGuildOnboarding: async (guildId, options, reason)=>{
725
+ return bot.transformers.guildOnboarding(bot, (0, _utils.snakelize)(await bot.rest.editGuildOnboarding(guildId, options, reason)));
726
+ },
727
+ listEntitlements: async (applicationId, options)=>{
728
+ return (await bot.rest.listEntitlements(applicationId, options)).map((entitlement)=>bot.transformers.entitlement(bot, (0, _utils.snakelize)(entitlement)));
729
+ },
730
+ createTestEntitlement: async (applicationId, body)=>{
731
+ // @ts-expect-error createTestEntitlement gives a partial, and this method returns a partial
732
+ return bot.transformers.entitlement(bot, (0, _utils.snakelize)(await bot.rest.createTestEntitlement(applicationId, body)));
733
+ },
734
+ deleteTestEntitlement: async (applicationId, entitlementId)=>{
735
+ await bot.rest.deleteTestEntitlement(applicationId, entitlementId);
736
+ },
737
+ listSkus: async (applicationId)=>{
738
+ return (await bot.rest.listSkus(applicationId)).map((sku)=>bot.transformers.sku(bot, (0, _utils.snakelize)(sku)));
739
+ },
740
+ getSubscription: async (skuId, subscriptionId)=>{
741
+ return bot.transformers.subscription(bot, (0, _utils.snakelize)(await bot.rest.getSubscription(skuId, subscriptionId)));
742
+ },
743
+ listSubscriptions: async (skuId, options)=>{
744
+ return (await bot.rest.listSubscriptions(skuId, options)).map((subscription)=>bot.transformers.subscription(bot, (0, _utils.snakelize)(subscription)));
745
+ },
746
+ sendSoundboardSound: async (channelId, options)=>{
747
+ await bot.rest.sendSoundboardSound(channelId, options);
748
+ },
749
+ listDefaultSoundboardSounds: async ()=>{
750
+ return (await bot.rest.listDefaultSoundboardSounds()).map((sound)=>bot.transformers.soundboardSound(bot, (0, _utils.snakelize)(sound)));
751
+ },
752
+ listGuildSoundboardSounds: async (guildId)=>{
753
+ const res = await bot.rest.listGuildSoundboardSounds(guildId);
754
+ return {
755
+ items: res.items.map((sound)=>bot.transformers.soundboardSound(bot, (0, _utils.snakelize)(sound)))
756
+ };
757
+ },
758
+ getGuildSoundboardSound: async (guildId, soundId)=>{
759
+ return bot.transformers.soundboardSound(bot, (0, _utils.snakelize)(await bot.rest.getGuildSoundboardSound(guildId, soundId)));
760
+ },
761
+ createGuildSoundboardSound: async (guildId, options, reason)=>{
762
+ return bot.transformers.soundboardSound(bot, (0, _utils.snakelize)(await bot.rest.createGuildSoundboardSound(guildId, options, reason)));
763
+ },
764
+ modifyGuildSoundboardSound: async (guildId, soundId, options, reason)=>{
765
+ return bot.transformers.soundboardSound(bot, (0, _utils.snakelize)(await bot.rest.modifyGuildSoundboardSound(guildId, soundId, options, reason)));
766
+ },
767
+ deleteGuildSoundboardSound: async (guildId, soundId, reason)=>{
768
+ await bot.rest.deleteGuildSoundboardSound(guildId, soundId, reason);
769
+ }
770
+ };
771
+ }
772
+
773
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtcbiAgQWRkRG1SZWNpcGllbnRPcHRpb25zLFxuICBBZGRHdWlsZE1lbWJlck9wdGlvbnMsXG4gIEF0TGVhc3RPbmUsXG4gIEJlZ2luR3VpbGRQcnVuZSxcbiAgQmlnU3RyaW5nLFxuICBDYW1lbGl6ZSxcbiAgQ3JlYXRlQXBwbGljYXRpb25Db21tYW5kLFxuICBDcmVhdGVBcHBsaWNhdGlvbkVtb2ppLFxuICBDcmVhdGVBdXRvTW9kZXJhdGlvblJ1bGVPcHRpb25zLFxuICBDcmVhdGVDaGFubmVsSW52aXRlLFxuICBDcmVhdGVFbnRpdGxlbWVudCxcbiAgQ3JlYXRlRm9ydW1Qb3N0V2l0aE1lc3NhZ2UsXG4gIENyZWF0ZUdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZE9wdGlvbnMsXG4gIENyZWF0ZUd1aWxkLFxuICBDcmVhdGVHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZE9wdGlvbnMsXG4gIENyZWF0ZUd1aWxkQmFuLFxuICBDcmVhdGVHdWlsZEJ1bGtCYW4sXG4gIENyZWF0ZUd1aWxkQ2hhbm5lbCxcbiAgQ3JlYXRlR3VpbGRFbW9qaSxcbiAgQ3JlYXRlR3VpbGRGcm9tVGVtcGxhdGUsXG4gIENyZWF0ZUd1aWxkUm9sZSxcbiAgQ3JlYXRlR3VpbGRTb3VuZGJvYXJkU291bmQsXG4gIENyZWF0ZUd1aWxkU3RpY2tlck9wdGlvbnMsXG4gIENyZWF0ZU1lc3NhZ2VPcHRpb25zLFxuICBDcmVhdGVTY2hlZHVsZWRFdmVudCxcbiAgQ3JlYXRlU3RhZ2VJbnN0YW5jZSxcbiAgQ3JlYXRlVGVtcGxhdGUsXG4gIENyZWF0ZVdlYmhvb2ssXG4gIERlbGV0ZVdlYmhvb2tNZXNzYWdlT3B0aW9ucyxcbiAgRGlzY29yZEFjY2Vzc1Rva2VuUmVzcG9uc2UsXG4gIERpc2NvcmRBY3Rpdml0eUluc3RhbmNlLFxuICBEaXNjb3JkQXBwbGljYXRpb25Db21tYW5kUGVybWlzc2lvbnMsXG4gIERpc2NvcmRBcHBsaWNhdGlvblJvbGVDb25uZWN0aW9uLFxuICBEaXNjb3JkQXJjaGl2ZWRUaHJlYWRzLFxuICBEaXNjb3JkQXVkaXRMb2csXG4gIERpc2NvcmRCYW4sXG4gIERpc2NvcmRDb25uZWN0aW9uLFxuICBEaXNjb3JkQ3VycmVudEF1dGhvcml6YXRpb24sXG4gIERpc2NvcmRGb2xsb3dlZENoYW5uZWwsXG4gIERpc2NvcmRHZXRHYXRld2F5Qm90LFxuICBEaXNjb3JkR3VpbGRQcmV2aWV3LFxuICBEaXNjb3JkR3VpbGRXaWRnZXRTZXR0aW5ncyxcbiAgRGlzY29yZEludml0ZSxcbiAgRGlzY29yZEludml0ZU1ldGFkYXRhLFxuICBEaXNjb3JkTWVzc2FnZSxcbiAgRGlzY29yZE1vZGlmeUd1aWxkV2VsY29tZVNjcmVlbixcbiAgRGlzY29yZFBydW5lZENvdW50LFxuICBEaXNjb3JkVG9rZW5FeGNoYW5nZSxcbiAgRGlzY29yZFRva2VuUmV2b2NhdGlvbixcbiAgRGlzY29yZFZhbml0eVVybCxcbiAgRGlzY29yZFZvaWNlUmVnaW9uLFxuICBFZGl0QXBwbGljYXRpb24sXG4gIEVkaXRBdXRvTW9kZXJhdGlvblJ1bGVPcHRpb25zLFxuICBFZGl0Qm90TWVtYmVyT3B0aW9ucyxcbiAgRWRpdENoYW5uZWxQZXJtaXNzaW9uT3ZlcnJpZGVzT3B0aW9ucyxcbiAgRWRpdEd1aWxkT25ib2FyZGluZyxcbiAgRWRpdEd1aWxkUm9sZSxcbiAgRWRpdEd1aWxkU3RpY2tlck9wdGlvbnMsXG4gIEVkaXRNZXNzYWdlLFxuICBFZGl0T3duVm9pY2VTdGF0ZSxcbiAgRWRpdFNjaGVkdWxlZEV2ZW50LFxuICBFZGl0VXNlclZvaWNlU3RhdGUsXG4gIEV4ZWN1dGVXZWJob29rLFxuICBHZXRBcHBsaWNhdGlvbkNvbW1hbmRQZXJtaXNzaW9uT3B0aW9ucyxcbiAgR2V0QmFucyxcbiAgR2V0RW50aXRsZW1lbnRzLFxuICBHZXRHcm91cERtT3B0aW9ucyxcbiAgR2V0R3VpbGRBdWRpdExvZyxcbiAgR2V0R3VpbGRQcnVuZUNvdW50UXVlcnksXG4gIEdldEludml0ZSxcbiAgR2V0TWVzc2FnZXNPcHRpb25zLFxuICBHZXRSZWFjdGlvbnMsXG4gIEdldFNjaGVkdWxlZEV2ZW50VXNlcnMsXG4gIEdldFNjaGVkdWxlZEV2ZW50cyxcbiAgR2V0VXNlckd1aWxkcyxcbiAgR2V0V2ViaG9va01lc3NhZ2VPcHRpb25zLFxuICBJbnRlcmFjdGlvbkNhbGxiYWNrRGF0YSxcbiAgSW50ZXJhY3Rpb25DYWxsYmFja09wdGlvbnMsXG4gIEludGVyYWN0aW9uUmVzcG9uc2UsXG4gIExpc3RBcmNoaXZlZFRocmVhZHMsXG4gIExpc3RHdWlsZE1lbWJlcnMsXG4gIExpc3RTa3VTdWJzY3JpcHRpb25zT3B0aW9ucyxcbiAgTWZhTGV2ZWxzLFxuICBNb2RpZnlBcHBsaWNhdGlvbkVtb2ppLFxuICBNb2RpZnlDaGFubmVsLFxuICBNb2RpZnlHdWlsZCxcbiAgTW9kaWZ5R3VpbGRDaGFubmVsUG9zaXRpb25zLFxuICBNb2RpZnlHdWlsZEVtb2ppLFxuICBNb2RpZnlHdWlsZE1lbWJlcixcbiAgTW9kaWZ5R3VpbGRTb3VuZGJvYXJkU291bmQsXG4gIE1vZGlmeUd1aWxkVGVtcGxhdGUsXG4gIE1vZGlmeVJvbGVQb3NpdGlvbnMsXG4gIE1vZGlmeVdlYmhvb2ssXG4gIFNlYXJjaE1lbWJlcnMsXG4gIFNlbmRTb3VuZGJvYXJkU291bmQsXG4gIFN0YXJ0VGhyZWFkV2l0aE1lc3NhZ2UsXG4gIFN0YXJ0VGhyZWFkV2l0aG91dE1lc3NhZ2UsXG4gIFVwc2VydEdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZE9wdGlvbnMsXG4gIFVwc2VydEd1aWxkQXBwbGljYXRpb25Db21tYW5kT3B0aW9ucyxcbn0gZnJvbSAnQGRpc2NvcmRlbm8vdHlwZXMnXG5pbXBvcnQgeyBzbmFrZWxpemUgfSBmcm9tICdAZGlzY29yZGVuby91dGlscydcbmltcG9ydCB0eXBlIHsgQm90IH0gZnJvbSAnLi9ib3QuanMnXG5pbXBvcnQgdHlwZSB7IERlc2lyZWRQcm9wZXJ0aWVzQmVoYXZpb3IsIFRyYW5zZm9ybWVyc0Rlc2lyZWRQcm9wZXJ0aWVzIH0gZnJvbSAnLi9kZXNpcmVkUHJvcGVydGllcy5qcydcbmltcG9ydCB0eXBlIHtcbiAgQXBwbGljYXRpb24sXG4gIEFwcGxpY2F0aW9uQ29tbWFuZCxcbiAgQXV0b01vZGVyYXRpb25SdWxlLFxuICBHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZFBlcm1pc3Npb25zLFxuICBHdWlsZFdpZGdldCxcbiAgR3VpbGRXaWRnZXRTZXR0aW5ncyxcbiAgSW50ZWdyYXRpb24sXG4gIFN0aWNrZXJQYWNrLFxuICBUZW1wbGF0ZSxcbiAgVGhyZWFkTWVtYmVyLFxuICBXZWxjb21lU2NyZWVuLFxufSBmcm9tICcuL3RyYW5zZm9ybWVycy9pbmRleC5qcydcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUJvdEhlbHBlcnM8VFByb3BzIGV4dGVuZHMgVHJhbnNmb3JtZXJzRGVzaXJlZFByb3BlcnRpZXMsIFRCZWhhdmlvciBleHRlbmRzIERlc2lyZWRQcm9wZXJ0aWVzQmVoYXZpb3I+KFxuICBib3Q6IEJvdDxUUHJvcHMsIFRCZWhhdmlvcj4sXG4pOiBCb3RIZWxwZXJzPFRQcm9wcywgVEJlaGF2aW9yPiB7XG4gIHJldHVybiB7XG4gICAgY3JlYXRlQXV0b21vZFJ1bGU6IGFzeW5jIChndWlsZElkLCBvcHRpb25zLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmF1dG9tb2RSdWxlKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmNyZWF0ZUF1dG9tb2RSdWxlKGd1aWxkSWQsIG9wdGlvbnMsIHJlYXNvbikpKVxuICAgIH0sXG4gICAgY3JlYXRlQ2hhbm5lbDogYXN5bmMgKGd1aWxkSWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY2hhbm5lbChib3QsIHsgY2hhbm5lbDogc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmNyZWF0ZUNoYW5uZWwoZ3VpbGRJZCwgb3B0aW9ucywgcmVhc29uKSksIGd1aWxkSWQgfSlcbiAgICB9LFxuICAgIGNyZWF0ZUVtb2ppOiBhc3luYyAoZ3VpbGRJZCwgb3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5lbW9qaShib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5jcmVhdGVFbW9qaShndWlsZElkLCBvcHRpb25zLCByZWFzb24pKSlcbiAgICB9LFxuICAgIGNyZWF0ZUFwcGxpY2F0aW9uRW1vamk6IGFzeW5jIChvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5lbW9qaShib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5jcmVhdGVBcHBsaWNhdGlvbkVtb2ppKG9wdGlvbnMpKSlcbiAgICB9LFxuICAgIGNyZWF0ZUZvcnVtVGhyZWFkOiBhc3luYyAoY2hhbm5lbElkLCBvcHRpb25zLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmNoYW5uZWwoYm90LCB7IGNoYW5uZWw6IHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5jcmVhdGVGb3J1bVRocmVhZChjaGFubmVsSWQsIG9wdGlvbnMsIHJlYXNvbikpIH0pXG4gICAgfSxcbiAgICBjcmVhdGVHbG9iYWxBcHBsaWNhdGlvbkNvbW1hbmQ6IGFzeW5jIChjb21tYW5kLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5hcHBsaWNhdGlvbkNvbW1hbmQoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuY3JlYXRlR2xvYmFsQXBwbGljYXRpb25Db21tYW5kKGNvbW1hbmQsIG9wdGlvbnMpKSlcbiAgICB9LFxuICAgIGNyZWF0ZUd1aWxkOiBhc3luYyAob3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuZ3VpbGQoYm90LCB7IGd1aWxkOiBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuY3JlYXRlR3VpbGQob3B0aW9ucykpLCBzaGFyZElkOiAwIH0pXG4gICAgfSxcbiAgICBjcmVhdGVHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZDogYXN5bmMgKGNvbW1hbmQsIGd1aWxkSWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmFwcGxpY2F0aW9uQ29tbWFuZChib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5jcmVhdGVHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZChjb21tYW5kLCBndWlsZElkLCBvcHRpb25zKSkpXG4gICAgfSxcbiAgICBjcmVhdGVHdWlsZEZyb21UZW1wbGF0ZTogYXN5bmMgKHRlbXBsYXRlQ29kZSwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuZ3VpbGQoYm90LCB7IGd1aWxkOiBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuY3JlYXRlR3VpbGRGcm9tVGVtcGxhdGUodGVtcGxhdGVDb2RlLCBvcHRpb25zKSksIHNoYXJkSWQ6IDAgfSlcbiAgICB9LFxuICAgIGNyZWF0ZUd1aWxkU3RpY2tlcjogYXN5bmMgKGd1aWxkSWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuc3RpY2tlcihib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5jcmVhdGVHdWlsZFN0aWNrZXIoZ3VpbGRJZCwgb3B0aW9ucywgcmVhc29uKSkpXG4gICAgfSxcbiAgICBjcmVhdGVHdWlsZFRlbXBsYXRlOiBhc3luYyAoZ3VpbGRJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMudGVtcGxhdGUoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuY3JlYXRlR3VpbGRUZW1wbGF0ZShndWlsZElkLCBvcHRpb25zKSkpXG4gICAgfSxcbiAgICBjcmVhdGVJbnZpdGU6IGFzeW5jIChjaGFubmVsSWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmNyZWF0ZUludml0ZShjaGFubmVsSWQsIG9wdGlvbnMsIHJlYXNvbilcbiAgICB9LFxuICAgIGNyZWF0ZVJvbGU6IGFzeW5jIChndWlsZElkLCBvcHRpb25zLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLnJvbGUoYm90LCB7IHJvbGU6IHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5jcmVhdGVSb2xlKGd1aWxkSWQsIG9wdGlvbnMsIHJlYXNvbikpLCBndWlsZElkIH0pXG4gICAgfSxcbiAgICBjcmVhdGVTY2hlZHVsZWRFdmVudDogYXN5bmMgKGd1aWxkSWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuc2NoZWR1bGVkRXZlbnQoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuY3JlYXRlU2NoZWR1bGVkRXZlbnQoZ3VpbGRJZCwgb3B0aW9ucywgcmVhc29uKSkpXG4gICAgfSxcbiAgICBjcmVhdGVTdGFnZUluc3RhbmNlOiBhc3luYyAob3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5zdGFnZUluc3RhbmNlKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmNyZWF0ZVN0YWdlSW5zdGFuY2Uob3B0aW9ucywgcmVhc29uKSkpXG4gICAgfSxcbiAgICBjcmVhdGVXZWJob29rOiBhc3luYyAoY2hhbm5lbElkLCBvcHRpb25zLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLndlYmhvb2soYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuY3JlYXRlV2ViaG9vayhjaGFubmVsSWQsIG9wdGlvbnMsIHJlYXNvbikpKVxuICAgIH0sXG4gICAgZWRpdEFwcGxpY2F0aW9uQ29tbWFuZFBlcm1pc3Npb25zOiBhc3luYyAoZ3VpbGRJZCwgY29tbWFuZElkLCBiZWFyZXJUb2tlbiwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuYXBwbGljYXRpb25Db21tYW5kUGVybWlzc2lvbihcbiAgICAgICAgYm90LFxuICAgICAgICBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZWRpdEFwcGxpY2F0aW9uQ29tbWFuZFBlcm1pc3Npb25zKGd1aWxkSWQsIGNvbW1hbmRJZCwgYmVhcmVyVG9rZW4sIG9wdGlvbnMpKSxcbiAgICAgIClcbiAgICB9LFxuICAgIGVkaXRBdXRvbW9kUnVsZTogYXN5bmMgKGd1aWxkSWQsIHJ1bGVJZCwgb3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5hdXRvbW9kUnVsZShib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5lZGl0QXV0b21vZFJ1bGUoZ3VpbGRJZCwgcnVsZUlkLCBvcHRpb25zLCByZWFzb24pKSlcbiAgICB9LFxuICAgIGVkaXRCb3RQcm9maWxlOiBhc3luYyAob3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMudXNlcihib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5lZGl0Qm90UHJvZmlsZShvcHRpb25zKSkpXG4gICAgfSxcbiAgICBlZGl0Q2hhbm5lbDogYXN5bmMgKGNoYW5uZWxJZCwgb3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jaGFubmVsKGJvdCwgeyBjaGFubmVsOiBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZWRpdENoYW5uZWwoY2hhbm5lbElkLCBvcHRpb25zLCByZWFzb24pKSB9KVxuICAgIH0sXG4gICAgZWRpdEVtb2ppOiBhc3luYyAoZ3VpbGRJZCwgaWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuZW1vamkoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZWRpdEVtb2ppKGd1aWxkSWQsIGlkLCBvcHRpb25zLCByZWFzb24pKSlcbiAgICB9LFxuICAgIGVkaXRBcHBsaWNhdGlvbkVtb2ppOiBhc3luYyAoaWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmVtb2ppKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmVkaXRBcHBsaWNhdGlvbkVtb2ppKGlkLCBvcHRpb25zKSkpXG4gICAgfSxcbiAgICBlZGl0Rm9sbG93dXBNZXNzYWdlOiBhc3luYyAodG9rZW4sIG1lc3NhZ2VJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZShib3QsIHsgbWVzc2FnZTogc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmVkaXRGb2xsb3d1cE1lc3NhZ2UodG9rZW4sIG1lc3NhZ2VJZCwgb3B0aW9ucykpLCBzaGFyZElkOiAwIH0pXG4gICAgfSxcbiAgICBlZGl0R2xvYmFsQXBwbGljYXRpb25Db21tYW5kOiBhc3luYyAoY29tbWFuZElkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5hcHBsaWNhdGlvbkNvbW1hbmQoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZWRpdEdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZChjb21tYW5kSWQsIG9wdGlvbnMpKSlcbiAgICB9LFxuICAgIGVkaXRHdWlsZDogYXN5bmMgKGd1aWxkSWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuZ3VpbGQoYm90LCB7IGd1aWxkOiBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZWRpdEd1aWxkKGd1aWxkSWQsIG9wdGlvbnMsIHJlYXNvbikpLCBzaGFyZElkOiAwIH0pXG4gICAgfSxcbiAgICBlZGl0R3VpbGRBcHBsaWNhdGlvbkNvbW1hbmQ6IGFzeW5jIChjb21tYW5kSWQsIGd1aWxkSWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmFwcGxpY2F0aW9uQ29tbWFuZChib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5lZGl0R3VpbGRBcHBsaWNhdGlvbkNvbW1hbmQoY29tbWFuZElkLCBndWlsZElkLCBvcHRpb25zKSkpXG4gICAgfSxcbiAgICBlZGl0R3VpbGRTdGlja2VyOiBhc3luYyAoZ3VpbGRJZCwgc3RpY2tlcklkLCBvcHRpb25zLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLnN0aWNrZXIoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZWRpdEd1aWxkU3RpY2tlcihndWlsZElkLCBzdGlja2VySWQsIG9wdGlvbnMsIHJlYXNvbikpKVxuICAgIH0sXG4gICAgZWRpdEd1aWxkVGVtcGxhdGU6IGFzeW5jIChndWlsZElkLCB0ZW1wbGF0ZUNvZGUsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLnRlbXBsYXRlKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmVkaXRHdWlsZFRlbXBsYXRlKGd1aWxkSWQsIHRlbXBsYXRlQ29kZSwgb3B0aW9ucykpKVxuICAgIH0sXG4gICAgZWRpdE1lc3NhZ2U6IGFzeW5jIChjaGFubmVsSWQsIG1lc3NhZ2VJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZShib3QsIHtcbiAgICAgICAgbWVzc2FnZTogc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmVkaXRNZXNzYWdlKGNoYW5uZWxJZCwgbWVzc2FnZUlkLCBvcHRpb25zKSkgYXMgRGlzY29yZE1lc3NhZ2UsXG4gICAgICAgIHNoYXJkSWQ6IDAsXG4gICAgICB9KVxuICAgIH0sXG4gICAgZWRpdE9yaWdpbmFsSW50ZXJhY3Rpb25SZXNwb25zZTogYXN5bmMgKHRva2VuLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5tZXNzYWdlKGJvdCwgeyBtZXNzYWdlOiBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZWRpdE9yaWdpbmFsSW50ZXJhY3Rpb25SZXNwb25zZSh0b2tlbiwgb3B0aW9ucykpLCBzaGFyZElkOiAwIH0pXG4gICAgfSxcbiAgICBlZGl0T3JpZ2luYWxXZWJob29rTWVzc2FnZTogYXN5bmMgKHdlYmhvb2tJZCwgdG9rZW4sIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLm1lc3NhZ2UoYm90LCB7XG4gICAgICAgIG1lc3NhZ2U6IHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5lZGl0T3JpZ2luYWxXZWJob29rTWVzc2FnZSh3ZWJob29rSWQsIHRva2VuLCBvcHRpb25zKSkgYXMgRGlzY29yZE1lc3NhZ2UsXG4gICAgICAgIHNoYXJkSWQ6IDAsXG4gICAgICB9KVxuICAgIH0sXG4gICAgZWRpdFJvbGU6IGFzeW5jIChndWlsZElkLCByb2xlSWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMucm9sZShib3QsIHsgcm9sZTogc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmVkaXRSb2xlKGd1aWxkSWQsIHJvbGVJZCwgb3B0aW9ucywgcmVhc29uKSksIGd1aWxkSWQgfSlcbiAgICB9LFxuICAgIGVkaXRSb2xlUG9zaXRpb25zOiBhc3luYyAoZ3VpbGRJZCwgb3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmVkaXRSb2xlUG9zaXRpb25zKGd1aWxkSWQsIG9wdGlvbnMsIHJlYXNvbikpLm1hcCgocm9sZSkgPT4gYm90LnRyYW5zZm9ybWVycy5yb2xlKGJvdCwgeyByb2xlLCBndWlsZElkIH0pKVxuICAgIH0sXG4gICAgZWRpdFNjaGVkdWxlZEV2ZW50OiBhc3luYyAoZ3VpbGRJZCwgZXZlbnRJZCwgb3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5zY2hlZHVsZWRFdmVudChib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5lZGl0U2NoZWR1bGVkRXZlbnQoZ3VpbGRJZCwgZXZlbnRJZCwgb3B0aW9ucywgcmVhc29uKSkpXG4gICAgfSxcbiAgICBlZGl0U3RhZ2VJbnN0YW5jZTogYXN5bmMgKGNoYW5uZWxJZCwgdG9waWMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuc3RhZ2VJbnN0YW5jZShib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5lZGl0U3RhZ2VJbnN0YW5jZShjaGFubmVsSWQsIHRvcGljLCByZWFzb24pKSlcbiAgICB9LFxuICAgIGVkaXRXZWJob29rOiBhc3luYyAod2ViaG9va0lkLCBvcHRpb25zLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLndlYmhvb2soYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZWRpdFdlYmhvb2sod2ViaG9va0lkLCBvcHRpb25zLCByZWFzb24pKSlcbiAgICB9LFxuICAgIGVkaXRXZWJob29rTWVzc2FnZTogYXN5bmMgKHdlYmhvb2tJZCwgdG9rZW4sIG1lc3NhZ2VJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZShib3QsIHtcbiAgICAgICAgbWVzc2FnZTogc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmVkaXRXZWJob29rTWVzc2FnZSh3ZWJob29rSWQsIHRva2VuLCBtZXNzYWdlSWQsIG9wdGlvbnMpKSBhcyBEaXNjb3JkTWVzc2FnZSxcbiAgICAgICAgc2hhcmRJZDogMCxcbiAgICAgIH0pXG4gICAgfSxcbiAgICBlZGl0V2ViaG9va1dpdGhUb2tlbjogYXN5bmMgKHdlYmhvb2tJZCwgdG9rZW4sIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLndlYmhvb2soYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZWRpdFdlYmhvb2tXaXRoVG9rZW4od2ViaG9va0lkLCB0b2tlbiwgb3B0aW9ucykpKVxuICAgIH0sXG4gICAgZWRpdFdlbGNvbWVTY3JlZW46IGFzeW5jIChndWlsZElkLCBvcHRpb25zLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLndlbGNvbWVTY3JlZW4oYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZWRpdFdlbGNvbWVTY3JlZW4oZ3VpbGRJZCwgb3B0aW9ucywgcmVhc29uKSkpXG4gICAgfSxcbiAgICBlZGl0V2lkZ2V0U2V0dGluZ3M6IGFzeW5jIChndWlsZElkLCBvcHRpb25zLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLndpZGdldFNldHRpbmdzKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmVkaXRXaWRnZXRTZXR0aW5ncyhndWlsZElkLCBvcHRpb25zLCByZWFzb24pKSlcbiAgICB9LFxuICAgIGV4ZWN1dGVXZWJob29rOiBhc3luYyAod2ViaG9va0lkLCB0b2tlbiwgb3B0aW9ucykgPT4ge1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgYm90LnJlc3QuZXhlY3V0ZVdlYmhvb2sod2ViaG9va0lkLCB0b2tlbiwgb3B0aW9ucylcbiAgICAgIGlmICghcmVzdWx0KSByZXR1cm5cblxuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZShib3QsIHsgbWVzc2FnZTogc25ha2VsaXplKHJlc3VsdCkgYXMgRGlzY29yZE1lc3NhZ2UsIHNoYXJkSWQ6IDAgfSlcbiAgICB9LFxuICAgIGZvbGxvd0Fubm91bmNlbWVudDogYXN5bmMgKHNvdXJjZUNoYW5uZWxJZCwgdGFyZ2V0Q2hhbm5lbElkKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZm9sbG93QW5ub3VuY2VtZW50KHNvdXJjZUNoYW5uZWxJZCwgdGFyZ2V0Q2hhbm5lbElkKVxuICAgIH0sXG4gICAgZ2V0QWN0aXZlVGhyZWFkczogYXN5bmMgKGd1aWxkSWQpID0+IHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGJvdC5yZXN0LmdldEFjdGl2ZVRocmVhZHMoZ3VpbGRJZClcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHRocmVhZHM6IHJlc3VsdC50aHJlYWRzLm1hcCgodGhyZWFkKSA9PiBib3QudHJhbnNmb3JtZXJzLmNoYW5uZWwoYm90LCB7IGd1aWxkSWQsIGNoYW5uZWw6IHNuYWtlbGl6ZSh0aHJlYWQpIH0pKSxcbiAgICAgICAgbWVtYmVyczogcmVzdWx0Lm1lbWJlcnMubWFwKChtZW1iZXIpID0+IGJvdC50cmFuc2Zvcm1lcnMudGhyZWFkTWVtYmVyKGJvdCwgc25ha2VsaXplKG1lbWJlcikpKSxcbiAgICAgIH1cbiAgICB9LFxuICAgIGdldEFwcGxpY2F0aW9uSW5mbzogYXN5bmMgKCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuYXBwbGljYXRpb24oYm90LCB7IGFwcGxpY2F0aW9uOiBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0QXBwbGljYXRpb25JbmZvKCkpLCBzaGFyZElkOiAwIH0pXG4gICAgfSxcbiAgICBlZGl0QXBwbGljYXRpb25JbmZvOiBhc3luYyAoYm9keSkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuYXBwbGljYXRpb24oYm90LCB7IGFwcGxpY2F0aW9uOiBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZWRpdEFwcGxpY2F0aW9uSW5mbyhib2R5KSksIHNoYXJkSWQ6IDAgfSlcbiAgICB9LFxuICAgIGdldEN1cnJlbnRBdXRoZW50aWNhdGlvbkluZm86IGFzeW5jIChiZWFyZXJUb2tlbikgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmdldEN1cnJlbnRBdXRoZW50aWNhdGlvbkluZm8oYmVhcmVyVG9rZW4pXG4gICAgfSxcbiAgICBleGNoYW5nZVRva2VuOiBhc3luYyAoY2xpZW50SWQsIGNsaWVudFNlY3JldCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmV4Y2hhbmdlVG9rZW4oY2xpZW50SWQsIGNsaWVudFNlY3JldCwgb3B0aW9ucylcbiAgICB9LFxuICAgIHJldm9rZVRva2VuOiBhc3luYyAoY2xpZW50SWQsIGNsaWVudFNlY3JldCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LnJldm9rZVRva2VuKGNsaWVudElkLCBjbGllbnRTZWNyZXQsIG9wdGlvbnMpXG4gICAgfSxcbiAgICBnZXRBcHBsaWNhdGlvbkNvbW1hbmRQZXJtaXNzaW9uOiBhc3luYyAoZ3VpbGRJZCwgY29tbWFuZElkLCBvcHRpb25zKSA9PiB7XG4gICAgICBjb25zdCByZXMgPSBhd2FpdCBib3QucmVzdC5nZXRBcHBsaWNhdGlvbkNvbW1hbmRQZXJtaXNzaW9uKGd1aWxkSWQsIGNvbW1hbmRJZCwgb3B0aW9ucylcbiAgICAgIGNvbnN0IHNuYWtlZFJlcyA9IHNuYWtlbGl6ZShyZXMpXG5cbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmFwcGxpY2F0aW9uQ29tbWFuZFBlcm1pc3Npb24oYm90LCBzbmFrZWRSZXMpXG4gICAgfSxcbiAgICBnZXRBcHBsaWNhdGlvbkNvbW1hbmRQZXJtaXNzaW9uczogYXN5bmMgKGd1aWxkSWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiAoYXdhaXQgYm90LnJlc3QuZ2V0QXBwbGljYXRpb25Db21tYW5kUGVybWlzc2lvbnMoZ3VpbGRJZCwgb3B0aW9ucykpLm1hcCgocmVzKSA9PlxuICAgICAgICBib3QudHJhbnNmb3JtZXJzLmFwcGxpY2F0aW9uQ29tbWFuZFBlcm1pc3Npb24oYm90LCBzbmFrZWxpemUocmVzKSksXG4gICAgICApXG4gICAgfSxcbiAgICBnZXRBdWRpdExvZzogYXN5bmMgKGd1aWxkSWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5nZXRBdWRpdExvZyhndWlsZElkLCBvcHRpb25zKVxuICAgIH0sXG4gICAgZ2V0QXV0b21vZFJ1bGU6IGFzeW5jIChndWlsZElkLCBydWxlSWQpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmF1dG9tb2RSdWxlKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldEF1dG9tb2RSdWxlKGd1aWxkSWQsIHJ1bGVJZCkpKVxuICAgIH0sXG4gICAgZ2V0QXV0b21vZFJ1bGVzOiBhc3luYyAoZ3VpbGRJZCkgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC5nZXRBdXRvbW9kUnVsZXMoZ3VpbGRJZCkpLm1hcCgocmVzKSA9PiBib3QudHJhbnNmb3JtZXJzLmF1dG9tb2RSdWxlKGJvdCwgc25ha2VsaXplKHJlcykpKVxuICAgIH0sXG4gICAgZ2V0QXZhaWxhYmxlVm9pY2VSZWdpb25zOiBhc3luYyAoKSA9PiB7XG4gICAgICByZXR1cm4gKGF3YWl0IGJvdC5yZXN0LmdldEF2YWlsYWJsZVZvaWNlUmVnaW9ucygpKS5tYXAoKHJlcykgPT4gYm90LnRyYW5zZm9ybWVycy52b2ljZVJlZ2lvbihib3QsIHNuYWtlbGl6ZShyZXMpKSlcbiAgICB9LFxuICAgIGdldEJhbjogYXN5bmMgKGd1aWxkSWQsIHVzZXJJZCkgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmdldEJhbihndWlsZElkLCB1c2VySWQpXG4gICAgfSxcbiAgICBnZXRCYW5zOiBhc3luYyAoZ3VpbGRJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmdldEJhbnMoZ3VpbGRJZCwgb3B0aW9ucylcbiAgICB9LFxuICAgIGdldENoYW5uZWw6IGFzeW5jIChjaGFubmVsSWQpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmNoYW5uZWwoYm90LCB7IGNoYW5uZWw6IHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRDaGFubmVsKGNoYW5uZWxJZCkpIH0pXG4gICAgfSxcbiAgICBnZXRDaGFubmVsSW52aXRlczogYXN5bmMgKGNoYW5uZWxJZCkgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmdldENoYW5uZWxJbnZpdGVzKGNoYW5uZWxJZClcbiAgICAgIC8vIHJldHVybiAoYXdhaXQgYm90LnJlc3QuZ2V0Q2hhbm5lbEludml0ZXMoY2hhbm5lbElkKSkubWFwKChyZXMpID0+IGJvdC50cmFuc2Zvcm1lcnMuaW52aXRlKGJvdCwgc25ha2VsaXplKHJlcykpKVxuICAgIH0sXG4gICAgZ2V0Q2hhbm5lbHM6IGFzeW5jIChndWlsZElkKSA9PiB7XG4gICAgICByZXR1cm4gKGF3YWl0IGJvdC5yZXN0LmdldENoYW5uZWxzKGd1aWxkSWQpKS5tYXAoKHJlcykgPT4gYm90LnRyYW5zZm9ybWVycy5jaGFubmVsKGJvdCwgeyBjaGFubmVsOiBzbmFrZWxpemUocmVzKSwgZ3VpbGRJZCB9KSlcbiAgICB9LFxuICAgIGdldENoYW5uZWxXZWJob29rczogYXN5bmMgKGNoYW5uZWxJZCkgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC5nZXRDaGFubmVsV2ViaG9va3MoY2hhbm5lbElkKSkubWFwKChyZXMpID0+IGJvdC50cmFuc2Zvcm1lcnMud2ViaG9vayhib3QsIHNuYWtlbGl6ZShyZXMpKSlcbiAgICB9LFxuICAgIGdldERtQ2hhbm5lbDogYXN5bmMgKHVzZXJJZCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY2hhbm5lbChib3QsIHsgY2hhbm5lbDogc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldERtQ2hhbm5lbCh1c2VySWQpKSB9KVxuICAgIH0sXG4gICAgZ2V0R3JvdXBEbUNoYW5uZWw6IGFzeW5jIChvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jaGFubmVsKGJvdCwgeyBjaGFubmVsOiBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0R3JvdXBEbUNoYW5uZWwob3B0aW9ucykpIH0pXG4gICAgfSxcbiAgICBnZXRFbW9qaTogYXN5bmMgKGd1aWxkSWQsIGVtb2ppSWQpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmVtb2ppKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldEVtb2ppKGd1aWxkSWQsIGVtb2ppSWQpKSlcbiAgICB9LFxuICAgIGdldEFwcGxpY2F0aW9uRW1vamk6IGFzeW5jIChlbW9qaUlkKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5lbW9qaShib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRBcHBsaWNhdGlvbkVtb2ppKGVtb2ppSWQpKSlcbiAgICB9LFxuICAgIGdldEVtb2ppczogYXN5bmMgKGd1aWxkSWQpID0+IHtcbiAgICAgIHJldHVybiAoYXdhaXQgYm90LnJlc3QuZ2V0RW1vamlzKGd1aWxkSWQpKS5tYXAoKHJlcykgPT4gYm90LnRyYW5zZm9ybWVycy5lbW9qaShib3QsIHNuYWtlbGl6ZShyZXMpKSlcbiAgICB9LFxuICAgIGdldEFwcGxpY2F0aW9uRW1vamlzOiBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCByZXMgPSBhd2FpdCBib3QucmVzdC5nZXRBcHBsaWNhdGlvbkVtb2ppcygpXG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGl0ZW1zOiByZXMuaXRlbXMubWFwKChpdGVtKSA9PiBib3QudHJhbnNmb3JtZXJzLmVtb2ppKGJvdCwgc25ha2VsaXplKGl0ZW0pKSksXG4gICAgICB9XG4gICAgfSxcbiAgICBnZXRGb2xsb3d1cE1lc3NhZ2U6IGFzeW5jICh0b2tlbiwgbWVzc2FnZUlkKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5tZXNzYWdlKGJvdCwgeyBtZXNzYWdlOiBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0Rm9sbG93dXBNZXNzYWdlKHRva2VuLCBtZXNzYWdlSWQpKSwgc2hhcmRJZDogMCB9KVxuICAgIH0sXG4gICAgZ2V0R2F0ZXdheUJvdDogYXN5bmMgKCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuZ2F0ZXdheUJvdChib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRHYXRld2F5Qm90KCkpKVxuICAgIH0sXG4gICAgZ2V0R2xvYmFsQXBwbGljYXRpb25Db21tYW5kOiBhc3luYyAoY29tbWFuZElkKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5hcHBsaWNhdGlvbkNvbW1hbmQoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0R2xvYmFsQXBwbGljYXRpb25Db21tYW5kKGNvbW1hbmRJZCkpKVxuICAgIH0sXG4gICAgZ2V0R2xvYmFsQXBwbGljYXRpb25Db21tYW5kczogYXN5bmMgKCkgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC5nZXRHbG9iYWxBcHBsaWNhdGlvbkNvbW1hbmRzKCkpLm1hcCgocmVzKSA9PiBib3QudHJhbnNmb3JtZXJzLmFwcGxpY2F0aW9uQ29tbWFuZChib3QsIHNuYWtlbGl6ZShyZXMpKSlcbiAgICB9LFxuICAgIGdldEd1aWxkOiBhc3luYyAoZ3VpbGRJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuZ3VpbGQoYm90LCB7IGd1aWxkOiBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0R3VpbGQoZ3VpbGRJZCwgb3B0aW9ucykpLCBzaGFyZElkOiAwIH0pXG4gICAgfSxcbiAgICBnZXRHdWlsZHM6IGFzeW5jIChiZWFyZXJUb2tlbiwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC5nZXRHdWlsZHMoYmVhcmVyVG9rZW4sIG9wdGlvbnMpKS5tYXA8UGFydGlhbDx0eXBlb2YgYm90LnRyYW5zZm9ybWVycy4kaW5mZXJyZWRUeXBlcy5ndWlsZD4+KChyZXMpID0+XG4gICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgZ2V0R3VpbGRzIHJldHVybnMgcGFydGlhbCBndWlsZHNcbiAgICAgICAgYm90LnRyYW5zZm9ybWVycy5ndWlsZChib3QsIHsgZ3VpbGQ6IHNuYWtlbGl6ZShyZXMpLCBzaGFyZElkOiAwIH0pLFxuICAgICAgKVxuICAgIH0sXG4gICAgZ2V0R3VpbGRBcHBsaWNhdGlvbkNvbW1hbmQ6IGFzeW5jIChjb21tYW5kSWQsIGd1aWxkSWQpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmFwcGxpY2F0aW9uQ29tbWFuZChib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZChjb21tYW5kSWQsIGd1aWxkSWQpKSlcbiAgICB9LFxuICAgIGdldEd1aWxkQXBwbGljYXRpb25Db21tYW5kczogYXN5bmMgKGd1aWxkSWQpID0+IHtcbiAgICAgIHJldHVybiAoYXdhaXQgYm90LnJlc3QuZ2V0R3VpbGRBcHBsaWNhdGlvbkNvbW1hbmRzKGd1aWxkSWQpKS5tYXAoKHJlcykgPT4gYm90LnRyYW5zZm9ybWVycy5hcHBsaWNhdGlvbkNvbW1hbmQoYm90LCBzbmFrZWxpemUocmVzKSkpXG4gICAgfSxcbiAgICBnZXRHdWlsZFByZXZpZXc6IGFzeW5jIChndWlsZElkKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZ2V0R3VpbGRQcmV2aWV3KGd1aWxkSWQpXG4gICAgICAvLyByZXR1cm4gYm90LnRyYW5zZm9ybWVycy54eHgoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0R3VpbGRQcmV2aWV3KGd1aWxkSWQpKSlcbiAgICB9LFxuICAgIGdldEd1aWxkU3RpY2tlcjogYXN5bmMgKGd1aWxkSWQsIHN0aWNrZXJJZCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuc3RpY2tlcihib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRHdWlsZFN0aWNrZXIoZ3VpbGRJZCwgc3RpY2tlcklkKSkpXG4gICAgfSxcbiAgICBnZXRHdWlsZFN0aWNrZXJzOiBhc3luYyAoZ3VpbGRJZCkgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC5nZXRHdWlsZFN0aWNrZXJzKGd1aWxkSWQpKS5tYXAoKHJlcykgPT4gYm90LnRyYW5zZm9ybWVycy5zdGlja2VyKGJvdCwgc25ha2VsaXplKHJlcykpKVxuICAgIH0sXG4gICAgZ2V0R3VpbGRUZW1wbGF0ZTogYXN5bmMgKHRlbXBsYXRlQ29kZSkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMudGVtcGxhdGUoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0R3VpbGRUZW1wbGF0ZSh0ZW1wbGF0ZUNvZGUpKSlcbiAgICB9LFxuICAgIGdldEd1aWxkVGVtcGxhdGVzOiBhc3luYyAoZ3VpbGRJZCkgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC5nZXRHdWlsZFRlbXBsYXRlcyhndWlsZElkKSkubWFwKChyZXMpID0+IGJvdC50cmFuc2Zvcm1lcnMudGVtcGxhdGUoYm90LCBzbmFrZWxpemUocmVzKSkpXG4gICAgfSxcbiAgICBnZXRHdWlsZFdlYmhvb2tzOiBhc3luYyAoZ3VpbGRJZCkgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC5nZXRHdWlsZFdlYmhvb2tzKGd1aWxkSWQpKS5tYXAoKHJlcykgPT4gYm90LnRyYW5zZm9ybWVycy53ZWJob29rKGJvdCwgc25ha2VsaXplKHJlcykpKVxuICAgIH0sXG4gICAgZ2V0SW50ZWdyYXRpb25zOiBhc3luYyAoZ3VpbGRJZCkgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC5nZXRJbnRlZ3JhdGlvbnMoZ3VpbGRJZCkpLm1hcCgocmVzKSA9PlxuICAgICAgICBib3QudHJhbnNmb3JtZXJzLmludGVncmF0aW9uKGJvdCwgc25ha2VsaXplKHsgLi4ucmVzLCBndWlsZElkOiBndWlsZElkLnRvU3RyaW5nKCkgfSkpLFxuICAgICAgKVxuICAgIH0sXG4gICAgZ2V0SW52aXRlOiBhc3luYyAoaW52aXRlQ29kZSwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuaW52aXRlKGJvdCwgeyBpbnZpdGU6IHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRJbnZpdGUoaW52aXRlQ29kZSwgb3B0aW9ucykpLCBzaGFyZElkOiAwIH0pXG4gICAgfSxcbiAgICBnZXRJbnZpdGVzOiBhc3luYyAoZ3VpbGRJZCkgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC5nZXRJbnZpdGVzKGd1aWxkSWQpKS5tYXAoKHJlcykgPT4gYm90LnRyYW5zZm9ybWVycy5pbnZpdGUoYm90LCB7IGludml0ZTogc25ha2VsaXplKHJlcyksIHNoYXJkSWQ6IDAgfSkpXG4gICAgfSxcbiAgICBnZXRNZXNzYWdlOiBhc3luYyAoY2hhbm5lbElkLCBtZXNzYWdlSWQpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLm1lc3NhZ2UoYm90LCB7IG1lc3NhZ2U6IHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRNZXNzYWdlKGNoYW5uZWxJZCwgbWVzc2FnZUlkKSksIHNoYXJkSWQ6IDAgfSlcbiAgICB9LFxuICAgIGdldE1lc3NhZ2VzOiBhc3luYyAoY2hhbm5lbElkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gKGF3YWl0IGJvdC5yZXN0LmdldE1lc3NhZ2VzKGNoYW5uZWxJZCwgb3B0aW9ucykpLm1hcCgocmVzKSA9PiBib3QudHJhbnNmb3JtZXJzLm1lc3NhZ2UoYm90LCB7IG1lc3NhZ2U6IHNuYWtlbGl6ZShyZXMpLCBzaGFyZElkOiAwIH0pKVxuICAgIH0sXG4gICAgZ2V0U3RpY2tlclBhY2s6IGFzeW5jIChzdGlja2VyUGFja0lkKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5zdGlja2VyUGFjayhib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRTdGlja2VyUGFjayhzdGlja2VyUGFja0lkKSkpXG4gICAgfSxcbiAgICBnZXRTdGlja2VyUGFja3M6IGFzeW5jICgpID0+IHtcbiAgICAgIHJldHVybiAoYXdhaXQgYm90LnJlc3QuZ2V0U3RpY2tlclBhY2tzKCkpLm1hcCgocmVzKSA9PiBib3QudHJhbnNmb3JtZXJzLnN0aWNrZXJQYWNrKGJvdCwgc25ha2VsaXplKHJlcykpKVxuICAgIH0sXG4gICAgZ2V0T3JpZ2luYWxJbnRlcmFjdGlvblJlc3BvbnNlOiBhc3luYyAodG9rZW4pID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLm1lc3NhZ2UoYm90LCB7IG1lc3NhZ2U6IHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRPcmlnaW5hbEludGVyYWN0aW9uUmVzcG9uc2UodG9rZW4pKSwgc2hhcmRJZDogMCB9KVxuICAgIH0sXG4gICAgZ2V0UGlubmVkTWVzc2FnZXM6IGFzeW5jIChjaGFubmVsSWQpID0+IHtcbiAgICAgIHJldHVybiAoYXdhaXQgYm90LnJlc3QuZ2V0UGlubmVkTWVzc2FnZXMoY2hhbm5lbElkKSkubWFwKChyZXMpID0+IGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZShib3QsIHsgbWVzc2FnZTogc25ha2VsaXplKHJlcyksIHNoYXJkSWQ6IDAgfSkpXG4gICAgfSxcbiAgICBnZXRQcml2YXRlQXJjaGl2ZWRUaHJlYWRzOiBhc3luYyAoY2hhbm5lbElkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZ2V0UHJpdmF0ZUFyY2hpdmVkVGhyZWFkcyhjaGFubmVsSWQsIG9wdGlvbnMpXG4gICAgfSxcbiAgICBnZXRQcml2YXRlSm9pbmVkQXJjaGl2ZWRUaHJlYWRzOiBhc3luYyAoY2hhbm5lbElkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZ2V0UHJpdmF0ZUpvaW5lZEFyY2hpdmVkVGhyZWFkcyhjaGFubmVsSWQsIG9wdGlvbnMpXG4gICAgfSxcbiAgICBnZXRQcnVuZUNvdW50OiBhc3luYyAoZ3VpbGRJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmdldFBydW5lQ291bnQoZ3VpbGRJZCwgb3B0aW9ucylcbiAgICB9LFxuICAgIGdldFB1YmxpY0FyY2hpdmVkVGhyZWFkczogYXN5bmMgKGNoYW5uZWxJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmdldFB1YmxpY0FyY2hpdmVkVGhyZWFkcyhjaGFubmVsSWQsIG9wdGlvbnMpXG4gICAgfSxcbiAgICBnZXRSb2xlczogYXN5bmMgKGd1aWxkSWQpID0+IHtcbiAgICAgIHJldHVybiBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0Um9sZXMoZ3VpbGRJZCkpLm1hcCgocm9sZSkgPT4gYm90LnRyYW5zZm9ybWVycy5yb2xlKGJvdCwgeyByb2xlLCBndWlsZElkIH0pKVxuICAgIH0sXG4gICAgZ2V0Um9sZTogYXN5bmMgKGd1aWxkSWQsIHJvbGVJZCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMucm9sZShib3QsIHsgcm9sZTogc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldFJvbGUoZ3VpbGRJZCwgcm9sZUlkKSksIGd1aWxkSWQgfSlcbiAgICB9LFxuICAgIGdldFNjaGVkdWxlZEV2ZW50OiBhc3luYyAoZ3VpbGRJZCwgZXZlbnRJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuc2NoZWR1bGVkRXZlbnQoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0U2NoZWR1bGVkRXZlbnQoZ3VpbGRJZCwgZXZlbnRJZCwgb3B0aW9ucykpKVxuICAgIH0sXG4gICAgZ2V0U2NoZWR1bGVkRXZlbnRzOiBhc3luYyAoZ3VpbGRJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC5nZXRTY2hlZHVsZWRFdmVudHMoZ3VpbGRJZCwgb3B0aW9ucykpLm1hcCgocmVzKSA9PiBib3QudHJhbnNmb3JtZXJzLnNjaGVkdWxlZEV2ZW50KGJvdCwgc25ha2VsaXplKHJlcykpKVxuICAgIH0sXG4gICAgZ2V0U2NoZWR1bGVkRXZlbnRVc2VyczogYXN5bmMgKGd1aWxkSWQsIGV2ZW50SWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiAoYXdhaXQgYm90LnJlc3QuZ2V0U2NoZWR1bGVkRXZlbnRVc2VycyhndWlsZElkLCBldmVudElkLCBvcHRpb25zKSkubWFwKCh1KSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgdXNlcjogYm90LnRyYW5zZm9ybWVycy51c2VyKGJvdCwgc25ha2VsaXplKHUudXNlcikpLFxuICAgICAgICAgIG1lbWJlcjogdS5tZW1iZXIgJiYgYm90LnRyYW5zZm9ybWVycy5tZW1iZXIoYm90LCBzbmFrZWxpemUodS5tZW1iZXIpLCBndWlsZElkLCBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZSh1LnVzZXIuaWQpKSxcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9LFxuICAgIGdldFNlc3Npb25JbmZvOiBhc3luYyAoKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5nYXRld2F5Qm90KGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldFNlc3Npb25JbmZvKCkpKVxuICAgIH0sXG4gICAgZ2V0U3RhZ2VJbnN0YW5jZTogYXN5bmMgKGNoYW5uZWxJZCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuc3RhZ2VJbnN0YW5jZShib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRTdGFnZUluc3RhbmNlKGNoYW5uZWxJZCkpKVxuICAgIH0sXG4gICAgZ2V0T3duVm9pY2VTdGF0ZTogYXN5bmMgKGd1aWxkSWQpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLnZvaWNlU3RhdGUoYm90LCB7IGd1aWxkSWQsIHZvaWNlU3RhdGU6IHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRPd25Wb2ljZVN0YXRlKGd1aWxkSWQpKSB9KVxuICAgIH0sXG4gICAgZ2V0VXNlclZvaWNlU3RhdGU6IGFzeW5jIChndWlsZElkLCB1c2VySWQpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLnZvaWNlU3RhdGUoYm90LCB7IGd1aWxkSWQsIHZvaWNlU3RhdGU6IHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRVc2VyVm9pY2VTdGF0ZShndWlsZElkLCB1c2VySWQpKSB9KVxuICAgIH0sXG4gICAgZ2V0U3RpY2tlcjogYXN5bmMgKHN0aWNrZXJJZCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuc3RpY2tlcihib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRTdGlja2VyKHN0aWNrZXJJZCkpKVxuICAgIH0sXG4gICAgZ2V0VGhyZWFkTWVtYmVyOiBhc3luYyAoY2hhbm5lbElkLCB1c2VySWQpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLnRocmVhZE1lbWJlcihib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRUaHJlYWRNZW1iZXIoY2hhbm5lbElkLCB1c2VySWQpKSlcbiAgICB9LFxuICAgIGdldFRocmVhZE1lbWJlcnM6IGFzeW5jIChjaGFubmVsSWQpID0+IHtcbiAgICAgIHJldHVybiAoYXdhaXQgYm90LnJlc3QuZ2V0VGhyZWFkTWVtYmVycyhjaGFubmVsSWQpKS5tYXAoKHJlcykgPT4gYm90LnRyYW5zZm9ybWVycy50aHJlYWRNZW1iZXIoYm90LCBzbmFrZWxpemUocmVzKSkpXG4gICAgfSxcbiAgICBnZXRSZWFjdGlvbnM6IGFzeW5jIChjaGFubmVsSWQsIG1lc3NhZ2VJZCwgcmVhY3Rpb24sIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiAoYXdhaXQgYm90LnJlc3QuZ2V0UmVhY3Rpb25zKGNoYW5uZWxJZCwgbWVzc2FnZUlkLCByZWFjdGlvbiwgb3B0aW9ucykpLm1hcCgocmVzKSA9PiBib3QudHJhbnNmb3JtZXJzLnVzZXIoYm90LCBzbmFrZWxpemUocmVzKSkpXG4gICAgfSxcbiAgICBnZXRVc2VyOiBhc3luYyAoaWQpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLnVzZXIoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0VXNlcihpZCkpKVxuICAgIH0sXG4gICAgZ2V0Q3VycmVudFVzZXI6IGFzeW5jIChiZWFyZXJUb2tlbikgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMudXNlcihib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRDdXJyZW50VXNlcihiZWFyZXJUb2tlbikpKVxuICAgIH0sXG4gICAgZ2V0VXNlckNvbm5lY3Rpb25zOiBhc3luYyAoYmVhcmVyVG9rZW4pID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5nZXRVc2VyQ29ubmVjdGlvbnMoYmVhcmVyVG9rZW4pXG4gICAgfSxcbiAgICBnZXRVc2VyQXBwbGljYXRpb25Sb2xlQ29ubmVjdGlvbjogYXN5bmMgKGJlYXJlclRva2VuLCBhcHBsaWNhdGlvbklkKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZ2V0VXNlckFwcGxpY2F0aW9uUm9sZUNvbm5lY3Rpb24oYmVhcmVyVG9rZW4sIGFwcGxpY2F0aW9uSWQpXG4gICAgfSxcbiAgICBnZXRWYW5pdHlVcmw6IGFzeW5jIChndWlsZElkKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZ2V0VmFuaXR5VXJsKGd1aWxkSWQpXG4gICAgfSxcbiAgICBnZXRWb2ljZVJlZ2lvbnM6IGFzeW5jIChndWlsZElkKSA9PiB7XG4gICAgICByZXR1cm4gKGF3YWl0IGJvdC5yZXN0LmdldFZvaWNlUmVnaW9ucyhndWlsZElkKSkubWFwKChyZXMpID0+IGJvdC50cmFuc2Zvcm1lcnMudm9pY2VSZWdpb24oYm90LCBzbmFrZWxpemUocmVzKSkpXG4gICAgfSxcbiAgICBnZXRXZWJob29rOiBhc3luYyAod2ViaG9va0lkKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy53ZWJob29rKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldFdlYmhvb2sod2ViaG9va0lkKSkpXG4gICAgfSxcbiAgICBnZXRXZWJob29rTWVzc2FnZTogYXN5bmMgKHdlYmhvb2tJZCwgdG9rZW4sIG1lc3NhZ2VJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZShib3QsIHsgbWVzc2FnZTogc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldFdlYmhvb2tNZXNzYWdlKHdlYmhvb2tJZCwgdG9rZW4sIG1lc3NhZ2VJZCwgb3B0aW9ucykpLCBzaGFyZElkOiAwIH0pXG4gICAgfSxcbiAgICBnZXRXZWJob29rV2l0aFRva2VuOiBhc3luYyAod2ViaG9va0lkLCB0b2tlbikgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMud2ViaG9vayhib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRXZWJob29rV2l0aFRva2VuKHdlYmhvb2tJZCwgdG9rZW4pKSlcbiAgICB9LFxuICAgIGdldFdlbGNvbWVTY3JlZW46IGFzeW5jIChndWlsZElkKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy53ZWxjb21lU2NyZWVuKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldFdlbGNvbWVTY3JlZW4oZ3VpbGRJZCkpKVxuICAgIH0sXG4gICAgZ2V0V2lkZ2V0OiBhc3luYyAoZ3VpbGRJZCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMud2lkZ2V0KGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldFdpZGdldChndWlsZElkKSkpXG4gICAgfSxcbiAgICBnZXRXaWRnZXRTZXR0aW5nczogYXN5bmMgKGd1aWxkSWQpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLndpZGdldFNldHRpbmdzKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldFdpZGdldFNldHRpbmdzKGd1aWxkSWQpKSlcbiAgICB9LFxuICAgIHB1Ymxpc2hNZXNzYWdlOiBhc3luYyAoY2hhbm5lbElkLCBtZXNzYWdlSWQpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLm1lc3NhZ2UoYm90LCB7IG1lc3NhZ2U6IHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5wdWJsaXNoTWVzc2FnZShjaGFubmVsSWQsIG1lc3NhZ2VJZCkpLCBzaGFyZElkOiAwIH0pXG4gICAgfSxcbiAgICBzZW5kTWVzc2FnZTogYXN5bmMgKGNoYW5uZWxJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZShib3QsIHsgbWVzc2FnZTogc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LnNlbmRNZXNzYWdlKGNoYW5uZWxJZCwgb3B0aW9ucykpLCBzaGFyZElkOiAwIH0pXG4gICAgfSxcbiAgICBzZW5kRm9sbG93dXBNZXNzYWdlOiBhc3luYyAodG9rZW4sIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLm1lc3NhZ2UoYm90LCB7IG1lc3NhZ2U6IHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5zZW5kRm9sbG93dXBNZXNzYWdlKHRva2VuLCBvcHRpb25zKSksIHNoYXJkSWQ6IDAgfSlcbiAgICB9LFxuICAgIHN0YXJ0VGhyZWFkV2l0aE1lc3NhZ2U6IGFzeW5jIChjaGFubmVsSWQsIG1lc3NhZ2VJZCwgb3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jaGFubmVsKGJvdCwge1xuICAgICAgICBjaGFubmVsOiBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3Quc3RhcnRUaHJlYWRXaXRoTWVzc2FnZShjaGFubmVsSWQsIG1lc3NhZ2VJZCwgb3B0aW9ucywgcmVhc29uKSksXG4gICAgICB9KVxuICAgIH0sXG4gICAgc3RhcnRUaHJlYWRXaXRob3V0TWVzc2FnZTogYXN5bmMgKGNoYW5uZWxJZCwgb3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jaGFubmVsKGJvdCwgeyBjaGFubmVsOiBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3Quc3RhcnRUaHJlYWRXaXRob3V0TWVzc2FnZShjaGFubmVsSWQsIG9wdGlvbnMsIHJlYXNvbikpIH0pXG4gICAgfSxcbiAgICBzeW5jR3VpbGRUZW1wbGF0ZTogYXN5bmMgKGd1aWxkSWQpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLnRlbXBsYXRlKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LnN5bmNHdWlsZFRlbXBsYXRlKGd1aWxkSWQpKSlcbiAgICB9LFxuICAgIHVwc2VydEdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZHM6IGFzeW5jIChjb21tYW5kcywgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC51cHNlcnRHbG9iYWxBcHBsaWNhdGlvbkNvbW1hbmRzKGNvbW1hbmRzLCBvcHRpb25zKSkubWFwKChyZXMpID0+XG4gICAgICAgIGJvdC50cmFuc2Zvcm1lcnMuYXBwbGljYXRpb25Db21tYW5kKGJvdCwgc25ha2VsaXplKHJlcykpLFxuICAgICAgKVxuICAgIH0sXG4gICAgdXBzZXJ0R3VpbGRBcHBsaWNhdGlvbkNvbW1hbmRzOiBhc3luYyAoZ3VpbGRJZCwgY29tbWFuZHMsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiAoYXdhaXQgYm90LnJlc3QudXBzZXJ0R3VpbGRBcHBsaWNhdGlvbkNvbW1hbmRzKGd1aWxkSWQsIGNvbW1hbmRzLCBvcHRpb25zKSkubWFwKChyZXMpID0+XG4gICAgICAgIGJvdC50cmFuc2Zvcm1lcnMuYXBwbGljYXRpb25Db21tYW5kKGJvdCwgc25ha2VsaXplKHJlcykpLFxuICAgICAgKVxuICAgIH0sXG4gICAgZWRpdEJvdE1lbWJlcjogYXN5bmMgKGd1aWxkSWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMubWVtYmVyKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmVkaXRCb3RNZW1iZXIoZ3VpbGRJZCwgb3B0aW9ucywgcmVhc29uKSksIGd1aWxkSWQsIGJvdC5pZClcbiAgICB9LFxuICAgIGVkaXRNZW1iZXI6IGFzeW5jIChndWlsZElkLCB1c2VySWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMubWVtYmVyKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmVkaXRNZW1iZXIoZ3VpbGRJZCwgdXNlcklkLCBvcHRpb25zLCByZWFzb24pKSwgZ3VpbGRJZCwgdXNlcklkKVxuICAgIH0sXG4gICAgZ2V0TWVtYmVyOiBhc3luYyAoZ3VpbGRJZCwgdXNlcklkKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5tZW1iZXIoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0TWVtYmVyKGd1aWxkSWQsIHVzZXJJZCkpLCBndWlsZElkLCB1c2VySWQpXG4gICAgfSxcbiAgICBnZXRDdXJyZW50TWVtYmVyOiBhc3luYyAoZ3VpbGRJZCwgYmVhcmVyVG9rZW4pID0+IHtcbiAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IGJvdC5yZXN0LmdldEN1cnJlbnRNZW1iZXIoZ3VpbGRJZCwgYmVhcmVyVG9rZW4pXG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5tZW1iZXIoYm90LCBzbmFrZWxpemUocmVzKSwgZ3VpbGRJZCwgYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocmVzLnVzZXIuaWQpKVxuICAgIH0sXG4gICAgZ2V0TWVtYmVyczogYXN5bmMgKGd1aWxkSWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiAoYXdhaXQgYm90LnJlc3QuZ2V0TWVtYmVycyhndWlsZElkLCBvcHRpb25zKSkubWFwKChyZXMpID0+XG4gICAgICAgIGJvdC50cmFuc2Zvcm1lcnMubWVtYmVyKGJvdCwgc25ha2VsaXplKHJlcyksIGd1aWxkSWQsIGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHJlcy51c2VyLmlkKSksXG4gICAgICApXG4gICAgfSxcbiAgICBwcnVuZU1lbWJlcnM6IGFzeW5jIChndWlsZElkLCBvcHRpb25zLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5wcnVuZU1lbWJlcnMoZ3VpbGRJZCwgb3B0aW9ucywgcmVhc29uKVxuICAgIH0sXG4gICAgc2VhcmNoTWVtYmVyczogYXN5bmMgKGd1aWxkSWQsIHF1ZXJ5LCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gKGF3YWl0IGJvdC5yZXN0LnNlYXJjaE1lbWJlcnMoZ3VpbGRJZCwgcXVlcnksIG9wdGlvbnMpKS5tYXAoKHJlcykgPT5cbiAgICAgICAgYm90LnRyYW5zZm9ybWVycy5tZW1iZXIoYm90LCBzbmFrZWxpemUocmVzKSwgZ3VpbGRJZCwgYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocmVzLnVzZXIuaWQpKSxcbiAgICAgIClcbiAgICB9LFxuICAgIGJ1bGtCYW5NZW1iZXJzOiBhc3luYyAoZ3VpbGRJZCwgb3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICBjb25zdCByZXMgPSBhd2FpdCBib3QucmVzdC5idWxrQmFuTWVtYmVycyhndWlsZElkLCBvcHRpb25zLCByZWFzb24pXG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGJhbm5lZFVzZXJzOiByZXMuYmFubmVkVXNlcnMubWFwKCh4KSA9PiBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZSh4KSksXG4gICAgICAgIGZhaWxlZFVzZXJzOiByZXMuZmFpbGVkVXNlcnMubWFwKCh4KSA9PiBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZSh4KSksXG4gICAgICB9XG4gICAgfSxcbiAgICBnZXRBcHBsaWNhdGlvbkFjdGl2aXR5SW5zdGFuY2U6IGFzeW5jIChhcHBsaWNhdGlvbklkLCBpbnN0YW5jZUlkKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZ2V0QXBwbGljYXRpb25BY3Rpdml0eUluc3RhbmNlKGFwcGxpY2F0aW9uSWQsIGluc3RhbmNlSWQpXG4gICAgfSxcbiAgICAvLyBBbGwgdXNlbGVzcyB2b2lkIHJldHVybiBmdW5jdGlvbnMgaGVyZVxuICAgIGFkZFJlYWN0aW9uOiBhc3luYyAoY2hhbm5lbElkLCBtZXNzYWdlSWQsIHJlYWN0aW9uKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuYWRkUmVhY3Rpb24oY2hhbm5lbElkLCBtZXNzYWdlSWQsIHJlYWN0aW9uKVxuICAgIH0sXG4gICAgYWRkUmVhY3Rpb25zOiBhc3luYyAoY2hhbm5lbElkLCBtZXNzYWdlSWQsIHJlYWN0aW9ucywgb3JkZXJlZCkgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmFkZFJlYWN0aW9ucyhjaGFubmVsSWQsIG1lc3NhZ2VJZCwgcmVhY3Rpb25zLCBvcmRlcmVkKVxuICAgIH0sXG4gICAgYWRkUm9sZTogYXN5bmMgKGd1aWxkSWQsIHVzZXJJZCwgcm9sZUlkLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5hZGRSb2xlKGd1aWxkSWQsIHVzZXJJZCwgcm9sZUlkLCByZWFzb24pXG4gICAgfSxcbiAgICBhZGRUaHJlYWRNZW1iZXI6IGFzeW5jIChjaGFubmVsSWQsIHVzZXJJZCkgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmFkZFRocmVhZE1lbWJlcihjaGFubmVsSWQsIHVzZXJJZClcbiAgICB9LFxuICAgIGFkZERtUmVjaXBpZW50OiBhc3luYyAoY2hhbm5lbElkLCB1c2VySWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5hZGREbVJlY2lwaWVudChjaGFubmVsSWQsIHVzZXJJZCwgb3B0aW9ucylcbiAgICB9LFxuICAgIGFkZEd1aWxkTWVtYmVyOiBhc3luYyAoZ3VpbGRJZCwgdXNlcklkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuYWRkR3VpbGRNZW1iZXIoZ3VpbGRJZCwgdXNlcklkLCBvcHRpb25zKVxuICAgIH0sXG4gICAgZGVsZXRlQXV0b21vZFJ1bGU6IGFzeW5jIChndWlsZElkLCBydWxlSWQsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmRlbGV0ZUF1dG9tb2RSdWxlKGd1aWxkSWQsIHJ1bGVJZCwgcmVhc29uKVxuICAgIH0sXG4gICAgZGVsZXRlQ2hhbm5lbDogYXN5bmMgKGNoYW5uZWxJZCwgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZGVsZXRlQ2hhbm5lbChjaGFubmVsSWQsIHJlYXNvbilcbiAgICB9LFxuICAgIGRlbGV0ZUNoYW5uZWxQZXJtaXNzaW9uT3ZlcnJpZGU6IGFzeW5jIChjaGFubmVsSWQsIG92ZXJ3cml0ZUlkLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5kZWxldGVDaGFubmVsUGVybWlzc2lvbk92ZXJyaWRlKGNoYW5uZWxJZCwgb3ZlcndyaXRlSWQsIHJlYXNvbilcbiAgICB9LFxuICAgIGRlbGV0ZUVtb2ppOiBhc3luYyAoZ3VpbGRJZCwgaWQsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmRlbGV0ZUVtb2ppKGd1aWxkSWQsIGlkLCByZWFzb24pXG4gICAgfSxcbiAgICBkZWxldGVBcHBsaWNhdGlvbkVtb2ppOiBhc3luYyAoaWQpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5kZWxldGVBcHBsaWNhdGlvbkVtb2ppKGlkKVxuICAgIH0sXG4gICAgZGVsZXRlRm9sbG93dXBNZXNzYWdlOiBhc3luYyAodG9rZW4sIG1lc3NhZ2VJZCkgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmRlbGV0ZUZvbGxvd3VwTWVzc2FnZSh0b2tlbiwgbWVzc2FnZUlkKVxuICAgIH0sXG4gICAgZGVsZXRlR2xvYmFsQXBwbGljYXRpb25Db21tYW5kOiBhc3luYyAoY29tbWFuZElkKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZGVsZXRlR2xvYmFsQXBwbGljYXRpb25Db21tYW5kKGNvbW1hbmRJZClcbiAgICB9LFxuICAgIGRlbGV0ZUd1aWxkOiBhc3luYyAoZ3VpbGRJZCkgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmRlbGV0ZUd1aWxkKGd1aWxkSWQpXG4gICAgfSxcbiAgICBkZWxldGVHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZDogYXN5bmMgKGNvbW1hbmRJZCwgZ3VpbGRJZCkgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmRlbGV0ZUd1aWxkQXBwbGljYXRpb25Db21tYW5kKGNvbW1hbmRJZCwgZ3VpbGRJZClcbiAgICB9LFxuICAgIGRlbGV0ZUd1aWxkU3RpY2tlcjogYXN5bmMgKGd1aWxkSWQsIHN0aWNrZXJJZCwgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZGVsZXRlR3VpbGRTdGlja2VyKGd1aWxkSWQsIHN0aWNrZXJJZCwgcmVhc29uKVxuICAgIH0sXG4gICAgZGVsZXRlR3VpbGRUZW1wbGF0ZTogYXN5bmMgKGd1aWxkSWQsIHRlbXBsYXRlQ29kZSkgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmRlbGV0ZUd1aWxkVGVtcGxhdGUoZ3VpbGRJZCwgdGVtcGxhdGVDb2RlKVxuICAgIH0sXG4gICAgZGVsZXRlSW50ZWdyYXRpb246IGFzeW5jIChndWlsZElkLCBpbnRlZ3JhdGlvbklkLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5kZWxldGVJbnRlZ3JhdGlvbihndWlsZElkLCBpbnRlZ3JhdGlvbklkLCByZWFzb24pXG4gICAgfSxcbiAgICBkZWxldGVJbnZpdGU6IGFzeW5jIChpbnZpdGVDb2RlLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5kZWxldGVJbnZpdGUoaW52aXRlQ29kZSwgcmVhc29uKVxuICAgIH0sXG4gICAgZGVsZXRlTWVzc2FnZTogYXN5bmMgKGNoYW5uZWxJZCwgbWVzc2FnZUlkLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5kZWxldGVNZXNzYWdlKGNoYW5uZWxJZCwgbWVzc2FnZUlkLCByZWFzb24pXG4gICAgfSxcbiAgICBkZWxldGVNZXNzYWdlczogYXN5bmMgKGNoYW5uZWxJZCwgbWVzc2FnZUlkcywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZGVsZXRlTWVzc2FnZXMoY2hhbm5lbElkLCBtZXNzYWdlSWRzLCByZWFzb24pXG4gICAgfSxcbiAgICBkZWxldGVPcmlnaW5hbEludGVyYWN0aW9uUmVzcG9uc2U6IGFzeW5jICh0b2tlbikgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmRlbGV0ZU9yaWdpbmFsSW50ZXJhY3Rpb25SZXNwb25zZSh0b2tlbilcbiAgICB9LFxuICAgIGRlbGV0ZU93blJlYWN0aW9uOiBhc3luYyAoY2hhbm5lbElkLCBtZXNzYWdlSWQsIHJlYWN0aW9uKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZGVsZXRlT3duUmVhY3Rpb24oY2hhbm5lbElkLCBtZXNzYWdlSWQsIHJlYWN0aW9uKVxuICAgIH0sXG4gICAgZGVsZXRlUmVhY3Rpb25zQWxsOiBhc3luYyAoY2hhbm5lbElkLCBtZXNzYWdlSWQpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5kZWxldGVSZWFjdGlvbnNBbGwoY2hhbm5lbElkLCBtZXNzYWdlSWQpXG4gICAgfSxcbiAgICBkZWxldGVSZWFjdGlvbnNFbW9qaTogYXN5bmMgKGNoYW5uZWxJZCwgbWVzc2FnZUlkLCByZWFjdGlvbikgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmRlbGV0ZVJlYWN0aW9uc0Vtb2ppKGNoYW5uZWxJZCwgbWVzc2FnZUlkLCByZWFjdGlvbilcbiAgICB9LFxuICAgIGRlbGV0ZVJvbGU6IGFzeW5jIChndWlsZElkLCByb2xlSWQsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmRlbGV0ZVJvbGUoZ3VpbGRJZCwgcm9sZUlkLCByZWFzb24pXG4gICAgfSxcbiAgICBkZWxldGVTY2hlZHVsZWRFdmVudDogYXN5bmMgKGd1aWxkSWQsIGV2ZW50SWQpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5kZWxldGVTY2hlZHVsZWRFdmVudChndWlsZElkLCBldmVudElkKVxuICAgIH0sXG4gICAgZGVsZXRlU3RhZ2VJbnN0YW5jZTogYXN5bmMgKGNoYW5uZWxJZCwgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZGVsZXRlU3RhZ2VJbnN0YW5jZShjaGFubmVsSWQsIHJlYXNvbilcbiAgICB9LFxuICAgIGRlbGV0ZVVzZXJSZWFjdGlvbjogYXN5bmMgKGNoYW5uZWxJZCwgbWVzc2FnZUlkLCB1c2VySWQsIHJlYWN0aW9uKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZGVsZXRlVXNlclJlYWN0aW9uKGNoYW5uZWxJZCwgbWVzc2FnZUlkLCB1c2VySWQsIHJlYWN0aW9uKVxuICAgIH0sXG4gICAgZGVsZXRlV2ViaG9vazogYXN5bmMgKHdlYmhvb2tJZCwgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZGVsZXRlV2ViaG9vayh3ZWJob29rSWQsIHJlYXNvbilcbiAgICB9LFxuICAgIGRlbGV0ZVdlYmhvb2tNZXNzYWdlOiBhc3luYyAod2ViaG9va0lkLCB0b2tlbiwgbWVzc2FnZUlkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZGVsZXRlV2ViaG9va01lc3NhZ2Uod2ViaG9va0lkLCB0b2tlbiwgbWVzc2FnZUlkLCBvcHRpb25zKVxuICAgIH0sXG4gICAgZGVsZXRlV2ViaG9va1dpdGhUb2tlbjogYXN5bmMgKHdlYmhvb2tJZCwgdG9rZW4pID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5kZWxldGVXZWJob29rV2l0aFRva2VuKHdlYmhvb2tJZCwgdG9rZW4pXG4gICAgfSxcbiAgICBlZGl0Q2hhbm5lbFBlcm1pc3Npb25PdmVycmlkZXM6IGFzeW5jIChjaGFubmVsSWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmVkaXRDaGFubmVsUGVybWlzc2lvbk92ZXJyaWRlcyhjaGFubmVsSWQsIG9wdGlvbnMsIHJlYXNvbilcbiAgICB9LFxuICAgIGVkaXRDaGFubmVsUG9zaXRpb25zOiBhc3luYyAoZ3VpbGRJZCwgY2hhbm5lbFBvc2l0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmVkaXRDaGFubmVsUG9zaXRpb25zKGd1aWxkSWQsIGNoYW5uZWxQb3NpdGlvbnMpXG4gICAgfSxcbiAgICBlZGl0R3VpbGRNZmFMZXZlbDogYXN5bmMgKGd1aWxkSWQsIG1mYUxldmVsLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5lZGl0R3VpbGRNZmFMZXZlbChndWlsZElkLCBtZmFMZXZlbCwgcmVhc29uKVxuICAgIH0sXG4gICAgZWRpdE93blZvaWNlU3RhdGU6IGFzeW5jIChndWlsZElkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZWRpdE93blZvaWNlU3RhdGUoZ3VpbGRJZCwgb3B0aW9ucylcbiAgICB9LFxuICAgIGVkaXRVc2VyVm9pY2VTdGF0ZTogYXN5bmMgKGd1aWxkSWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5lZGl0VXNlclZvaWNlU3RhdGUoZ3VpbGRJZCwgb3B0aW9ucylcbiAgICB9LFxuICAgIGVkaXRVc2VyQXBwbGljYXRpb25Sb2xlQ29ubmVjdGlvbjogYXN5bmMgKGJlYXJlclRva2VuLCBhcHBsaWNhdGlvbklkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZWRpdFVzZXJBcHBsaWNhdGlvblJvbGVDb25uZWN0aW9uKGJlYXJlclRva2VuLCBhcHBsaWNhdGlvbklkLCBvcHRpb25zKVxuICAgIH0sXG4gICAgam9pblRocmVhZDogYXN5bmMgKGNoYW5uZWxJZCkgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmpvaW5UaHJlYWQoY2hhbm5lbElkKVxuICAgIH0sXG4gICAgbGVhdmVHdWlsZDogYXN5bmMgKGd1aWxkSWQpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5sZWF2ZUd1aWxkKGd1aWxkSWQpXG4gICAgfSxcbiAgICBsZWF2ZVRocmVhZDogYXN5bmMgKGNoYW5uZWxJZCkgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmxlYXZlVGhyZWFkKGNoYW5uZWxJZClcbiAgICB9LFxuICAgIHJlbW92ZVJvbGU6IGFzeW5jIChndWlsZElkLCB1c2VySWQsIHJvbGVJZCwgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QucmVtb3ZlUm9sZShndWlsZElkLCB1c2VySWQsIHJvbGVJZCwgcmVhc29uKVxuICAgIH0sXG4gICAgcmVtb3ZlVGhyZWFkTWVtYmVyOiBhc3luYyAoY2hhbm5lbElkLCB1c2VySWQpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5yZW1vdmVUaHJlYWRNZW1iZXIoY2hhbm5lbElkLCB1c2VySWQpXG4gICAgfSxcbiAgICByZW1vdmVEbVJlY2lwaWVudDogYXN5bmMgKGNoYW5uZWxJZCwgdXNlcklkKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QucmVtb3ZlRG1SZWNpcGllbnQoY2hhbm5lbElkLCB1c2VySWQpXG4gICAgfSxcbiAgICBzZW5kSW50ZXJhY3Rpb25SZXNwb25zZTogYXN5bmMgKGludGVyYWN0aW9uSWQsIHRva2VuLCBvcHRpb25zLCBwYXJhbXMpID0+IHtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgYm90LnJlc3Quc2VuZEludGVyYWN0aW9uUmVzcG9uc2UoaW50ZXJhY3Rpb25JZCwgdG9rZW4sIG9wdGlvbnMsIHBhcmFtcylcblxuICAgICAgaWYgKCFyZXNwb25zZSkgcmV0dXJuXG5cbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmludGVyYWN0aW9uQ2FsbGJhY2tSZXNwb25zZShib3QsIHsgaW50ZXJhY3Rpb25DYWxsYmFja1Jlc3BvbnNlOiBzbmFrZWxpemUocmVzcG9uc2UpLCBzaGFyZElkOiAwIH0pXG4gICAgfSxcbiAgICB0cmlnZ2VyVHlwaW5nSW5kaWNhdG9yOiBhc3luYyAoY2hhbm5lbElkKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QudHJpZ2dlclR5cGluZ0luZGljYXRvcihjaGFubmVsSWQpXG4gICAgfSxcbiAgICBiYW5NZW1iZXI6IGFzeW5jIChndWlsZElkLCB1c2VySWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmJhbk1lbWJlcihndWlsZElkLCB1c2VySWQsIG9wdGlvbnMsIHJlYXNvbilcbiAgICB9LFxuXG4gICAga2lja01lbWJlcjogYXN5bmMgKGd1aWxkSWQsIHVzZXJJZCwgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3Qua2lja01lbWJlcihndWlsZElkLCB1c2VySWQsIHJlYXNvbilcbiAgICB9LFxuICAgIHBpbk1lc3NhZ2U6IGFzeW5jIChjaGFubmVsSWQsIG1lc3NhZ2VJZCwgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QucGluTWVzc2FnZShjaGFubmVsSWQsIG1lc3NhZ2VJZCwgcmVhc29uKVxuICAgIH0sXG4gICAgdW5iYW5NZW1iZXI6IGFzeW5jIChndWlsZElkLCB1c2VySWQsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LnVuYmFuTWVtYmVyKGd1aWxkSWQsIHVzZXJJZCwgcmVhc29uKVxuICAgIH0sXG4gICAgdW5waW5NZXNzYWdlOiBhc3luYyAoY2hhbm5lbElkLCBtZXNzYWdlSWQsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LnVucGluTWVzc2FnZShjaGFubmVsSWQsIG1lc3NhZ2VJZCwgcmVhc29uKVxuICAgIH0sXG4gICAgZ2V0R3VpbGRPbmJvYXJkaW5nOiBhc3luYyAoZ3VpbGRJZCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuZ3VpbGRPbmJvYXJkaW5nKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldEd1aWxkT25ib2FyZGluZyhndWlsZElkKSkpXG4gICAgfSxcbiAgICBlZGl0R3VpbGRPbmJvYXJkaW5nOiBhc3luYyAoZ3VpbGRJZCwgb3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5ndWlsZE9uYm9hcmRpbmcoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZWRpdEd1aWxkT25ib2FyZGluZyhndWlsZElkLCBvcHRpb25zLCByZWFzb24pKSlcbiAgICB9LFxuICAgIGxpc3RFbnRpdGxlbWVudHM6IGFzeW5jIChhcHBsaWNhdGlvbklkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gKGF3YWl0IGJvdC5yZXN0Lmxpc3RFbnRpdGxlbWVudHMoYXBwbGljYXRpb25JZCwgb3B0aW9ucykpLm1hcCgoZW50aXRsZW1lbnQpID0+IGJvdC50cmFuc2Zvcm1lcnMuZW50aXRsZW1lbnQoYm90LCBzbmFrZWxpemUoZW50aXRsZW1lbnQpKSlcbiAgICB9LFxuICAgIGNyZWF0ZVRlc3RFbnRpdGxlbWVudDogYXN5bmMgKGFwcGxpY2F0aW9uSWQsIGJvZHkpID0+IHtcbiAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgY3JlYXRlVGVzdEVudGl0bGVtZW50IGdpdmVzIGEgcGFydGlhbCwgYW5kIHRoaXMgbWV0aG9kIHJldHVybnMgYSBwYXJ0aWFsXG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5lbnRpdGxlbWVudChib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5jcmVhdGVUZXN0RW50aXRsZW1lbnQoYXBwbGljYXRpb25JZCwgYm9keSkpKSBhcyBQYXJ0aWFsPFxuICAgICAgICB0eXBlb2YgYm90LnRyYW5zZm9ybWVycy4kaW5mZXJyZWRUeXBlcy5lbnRpdGxlbWVudFxuICAgICAgPlxuICAgIH0sXG4gICAgZGVsZXRlVGVzdEVudGl0bGVtZW50OiBhc3luYyAoYXBwbGljYXRpb25JZCwgZW50aXRsZW1lbnRJZCkgPT4ge1xuICAgICAgYXdhaXQgYm90LnJlc3QuZGVsZXRlVGVzdEVudGl0bGVtZW50KGFwcGxpY2F0aW9uSWQsIGVudGl0bGVtZW50SWQpXG4gICAgfSxcbiAgICBsaXN0U2t1czogYXN5bmMgKGFwcGxpY2F0aW9uSWQpID0+IHtcbiAgICAgIHJldHVybiAoYXdhaXQgYm90LnJlc3QubGlzdFNrdXMoYXBwbGljYXRpb25JZCkpLm1hcCgoc2t1KSA9PiBib3QudHJhbnNmb3JtZXJzLnNrdShib3QsIHNuYWtlbGl6ZShza3UpKSlcbiAgICB9LFxuICAgIGdldFN1YnNjcmlwdGlvbjogYXN5bmMgKHNrdUlkLCBzdWJzY3JpcHRpb25JZCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuc3Vic2NyaXB0aW9uKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldFN1YnNjcmlwdGlvbihza3VJZCwgc3Vic2NyaXB0aW9uSWQpKSlcbiAgICB9LFxuICAgIGxpc3RTdWJzY3JpcHRpb25zOiBhc3luYyAoc2t1SWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiAoYXdhaXQgYm90LnJlc3QubGlzdFN1YnNjcmlwdGlvbnMoc2t1SWQsIG9wdGlvbnMpKS5tYXAoKHN1YnNjcmlwdGlvbikgPT4gYm90LnRyYW5zZm9ybWVycy5zdWJzY3JpcHRpb24oYm90LCBzbmFrZWxpemUoc3Vic2NyaXB0aW9uKSkpXG4gICAgfSxcbiAgICBzZW5kU291bmRib2FyZFNvdW5kOiBhc3luYyAoY2hhbm5lbElkLCBvcHRpb25zKSA9PiB7XG4gICAgICBhd2FpdCBib3QucmVzdC5zZW5kU291bmRib2FyZFNvdW5kKGNoYW5uZWxJZCwgb3B0aW9ucylcbiAgICB9LFxuICAgIGxpc3REZWZhdWx0U291bmRib2FyZFNvdW5kczogYXN5bmMgKCkgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC5saXN0RGVmYXVsdFNvdW5kYm9hcmRTb3VuZHMoKSkubWFwKChzb3VuZCkgPT4gYm90LnRyYW5zZm9ybWVycy5zb3VuZGJvYXJkU291bmQoYm90LCBzbmFrZWxpemUoc291bmQpKSlcbiAgICB9LFxuICAgIGxpc3RHdWlsZFNvdW5kYm9hcmRTb3VuZHM6IGFzeW5jIChndWlsZElkKSA9PiB7XG4gICAgICBjb25zdCByZXMgPSBhd2FpdCBib3QucmVzdC5saXN0R3VpbGRTb3VuZGJvYXJkU291bmRzKGd1aWxkSWQpXG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGl0ZW1zOiByZXMuaXRlbXMubWFwKChzb3VuZCkgPT4gYm90LnRyYW5zZm9ybWVycy5zb3VuZGJvYXJkU291bmQoYm90LCBzbmFrZWxpemUoc291bmQpKSksXG4gICAgICB9XG4gICAgfSxcbiAgICBnZXRHdWlsZFNvdW5kYm9hcmRTb3VuZDogYXN5bmMgKGd1aWxkSWQsIHNvdW5kSWQpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLnNvdW5kYm9hcmRTb3VuZChib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRHdWlsZFNvdW5kYm9hcmRTb3VuZChndWlsZElkLCBzb3VuZElkKSkpXG4gICAgfSxcbiAgICBjcmVhdGVHdWlsZFNvdW5kYm9hcmRTb3VuZDogYXN5bmMgKGd1aWxkSWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuc291bmRib2FyZFNvdW5kKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmNyZWF0ZUd1aWxkU291bmRib2FyZFNvdW5kKGd1aWxkSWQsIG9wdGlvbnMsIHJlYXNvbikpKVxuICAgIH0sXG4gICAgbW9kaWZ5R3VpbGRTb3VuZGJvYXJkU291bmQ6IGFzeW5jIChndWlsZElkLCBzb3VuZElkLCBvcHRpb25zLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLnNvdW5kYm9hcmRTb3VuZChib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5tb2RpZnlHdWlsZFNvdW5kYm9hcmRTb3VuZChndWlsZElkLCBzb3VuZElkLCBvcHRpb25zLCByZWFzb24pKSlcbiAgICB9LFxuICAgIGRlbGV0ZUd1aWxkU291bmRib2FyZFNvdW5kOiBhc3luYyAoZ3VpbGRJZCwgc291bmRJZCwgcmVhc29uKSA9PiB7XG4gICAgICBhd2FpdCBib3QucmVzdC5kZWxldGVHdWlsZFNvdW5kYm9hcmRTb3VuZChndWlsZElkLCBzb3VuZElkLCByZWFzb24pXG4gICAgfSxcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJvdEhlbHBlcnM8XG4gIFRQcm9wcyBleHRlbmRzIFRyYW5zZm9ybWVyc0Rlc2lyZWRQcm9wZXJ0aWVzLFxuICBUQmVoYXZpb3IgZXh0ZW5kcyBEZXNpcmVkUHJvcGVydGllc0JlaGF2aW9yLFxuICAvLyBUaGlzIGlzIGp1c3QgYW4gYWxpYXMsIG5vdCBhbiBhY3R1YWwgcGFyYW1ldGVyXG4gIFRCb3QgZXh0ZW5kcyBCb3Q8VFByb3BzLCBUQmVoYXZpb3I+ID0gQm90PFRQcm9wcywgVEJlaGF2aW9yPixcbj4ge1xuICBjcmVhdGVBdXRvbW9kUnVsZTogKGd1aWxkSWQ6IEJpZ1N0cmluZywgb3B0aW9uczogQ3JlYXRlQXV0b01vZGVyYXRpb25SdWxlT3B0aW9ucywgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPEF1dG9Nb2RlcmF0aW9uUnVsZT5cbiAgY3JlYXRlQ2hhbm5lbDogKGd1aWxkSWQ6IEJpZ1N0cmluZywgb3B0aW9uczogQ3JlYXRlR3VpbGRDaGFubmVsLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8VEJvdFsndHJhbnNmb3JtZXJzJ11bJyRpbmZlcnJlZFR5cGVzJ11bJ2NoYW5uZWwnXT5cbiAgY3JlYXRlRW1vamk6IChndWlsZElkOiBCaWdTdHJpbmcsIG9wdGlvbnM6IENyZWF0ZUd1aWxkRW1vamksIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTxUQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsnZW1vamknXT5cbiAgY3JlYXRlQXBwbGljYXRpb25FbW9qaTogKG9wdGlvbnM6IENyZWF0ZUFwcGxpY2F0aW9uRW1vamkpID0+IFByb21pc2U8VEJvdFsndHJhbnNmb3JtZXJzJ11bJyRpbmZlcnJlZFR5cGVzJ11bJ2Vtb2ppJ10+XG4gIGNyZWF0ZUZvcnVtVGhyZWFkOiAoXG4gICAgY2hhbm5lbElkOiBCaWdTdHJpbmcsXG4gICAgb3B0aW9uczogQ3JlYXRlRm9ydW1Qb3N0V2l0aE1lc3NhZ2UsXG4gICAgcmVhc29uPzogc3RyaW5nLFxuICApID0+IFByb21pc2U8VEJvdFsndHJhbnNmb3JtZXJzJ11bJyRpbmZlcnJlZFR5cGVzJ11bJ2NoYW5uZWwnXT5cbiAgY3JlYXRlR2xvYmFsQXBwbGljYXRpb25Db21tYW5kOiAoY29tbWFuZDogQ3JlYXRlQXBwbGljYXRpb25Db21tYW5kLCBvcHRpb25zPzogQ3JlYXRlR2xvYmFsQXBwbGljYXRpb25Db21tYW5kT3B0aW9ucykgPT4gUHJvbWlzZTxBcHBsaWNhdGlvbkNvbW1hbmQ+XG4gIGNyZWF0ZUd1aWxkOiAob3B0aW9uczogQ3JlYXRlR3VpbGQpID0+IFByb21pc2U8VEJvdFsndHJhbnNmb3JtZXJzJ11bJyRpbmZlcnJlZFR5cGVzJ11bJ2d1aWxkJ10+XG4gIGNyZWF0ZUd1aWxkQXBwbGljYXRpb25Db21tYW5kOiAoXG4gICAgY29tbWFuZDogQ3JlYXRlQXBwbGljYXRpb25Db21tYW5kLFxuICAgIGd1aWxkSWQ6IEJpZ1N0cmluZyxcbiAgICBvcHRpb25zPzogQ3JlYXRlR3VpbGRBcHBsaWNhdGlvbkNvbW1hbmRPcHRpb25zLFxuICApID0+IFByb21pc2U8QXBwbGljYXRpb25Db21tYW5kPlxuICBjcmVhdGVHdWlsZEZyb21UZW1wbGF0ZTogKHRlbXBsYXRlQ29kZTogc3RyaW5nLCBvcHRpb25zOiBDcmVhdGVHdWlsZEZyb21UZW1wbGF0ZSkgPT4gUHJvbWlzZTxUQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsnZ3VpbGQnXT5cbiAgY3JlYXRlR3VpbGRTdGlja2VyOiAoXG4gICAgZ3VpbGRJZDogQmlnU3RyaW5nLFxuICAgIG9wdGlvbnM6IENyZWF0ZUd1aWxkU3RpY2tlck9wdGlvbnMsXG4gICAgcmVhc29uPzogc3RyaW5nLFxuICApID0+IFByb21pc2U8VEJvdFsndHJhbnNmb3JtZXJzJ11bJyRpbmZlcnJlZFR5cGVzJ11bJ3N0aWNrZXInXT5cbiAgY3JlYXRlR3VpbGRUZW1wbGF0ZTogKGd1aWxkSWQ6IEJpZ1N0cmluZywgb3B0aW9uczogQ3JlYXRlVGVtcGxhdGUpID0+IFByb21pc2U8VGVtcGxhdGU+XG4gIGNyZWF0ZUludml0ZTogKGNoYW5uZWxJZDogQmlnU3RyaW5nLCBvcHRpb25zPzogQ3JlYXRlQ2hhbm5lbEludml0ZSwgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPENhbWVsaXplPERpc2NvcmRJbnZpdGU+PlxuICBjcmVhdGVSb2xlOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBvcHRpb25zOiBDcmVhdGVHdWlsZFJvbGUsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTxUQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsncm9sZSddPlxuICBjcmVhdGVTY2hlZHVsZWRFdmVudDogKFxuICAgIGd1aWxkSWQ6IEJpZ1N0cmluZyxcbiAgICBvcHRpb25zOiBDcmVhdGVTY2hlZHVsZWRFdmVudCxcbiAgICByZWFzb24/OiBzdHJpbmcsXG4gICkgPT4gUHJvbWlzZTxUQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsnc2NoZWR1bGVkRXZlbnQnXT5cbiAgY3JlYXRlU3RhZ2VJbnN0YW5jZTogKG9wdGlvbnM6IENyZWF0ZVN0YWdlSW5zdGFuY2UsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTxUQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsnc3RhZ2VJbnN0YW5jZSddPlxuICBjcmVhdGVXZWJob29rOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIG9wdGlvbnM6IENyZWF0ZVdlYmhvb2ssIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTxUQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsnd2ViaG9vayddPlxuICBlZGl0QXBwbGljYXRpb25Db21tYW5kUGVybWlzc2lvbnM6IChcbiAgICBndWlsZElkOiBCaWdTdHJpbmcsXG4gICAgY29tbWFuZElkOiBCaWdTdHJpbmcsXG4gICAgYmVhcmVyVG9rZW46IHN0cmluZyxcbiAgICBvcHRpb25zOiBDYW1lbGl6ZTxEaXNjb3JkQXBwbGljYXRpb25Db21tYW5kUGVybWlzc2lvbnM+W10sXG4gICkgPT4gUHJvbWlzZTxHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZFBlcm1pc3Npb25zPlxuICBlZGl0QXV0b21vZFJ1bGU6IChcbiAgICBndWlsZElkOiBCaWdTdHJpbmcsXG4gICAgcnVsZUlkOiBCaWdTdHJpbmcsXG4gICAgb3B0aW9uczogUGFydGlhbDxFZGl0QXV0b01vZGVyYXRpb25SdWxlT3B0aW9ucz4sXG4gICAgcmVhc29uPzogc3RyaW5nLFxuICApID0+IFByb21pc2U8QXV0b01vZGVyYXRpb25SdWxlPlxuICBlZGl0Qm90UHJvZmlsZTogKG9wdGlvbnM6IHsgdXNlcm5hbWU/OiBzdHJpbmc7IGJvdEF2YXRhclVSTD86IHN0cmluZyB8IG51bGwgfSkgPT4gUHJvbWlzZTxUQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsndXNlciddPlxuICBlZGl0Q2hhbm5lbDogKGNoYW5uZWxJZDogQmlnU3RyaW5nLCBvcHRpb25zOiBNb2RpZnlDaGFubmVsLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8VEJvdFsndHJhbnNmb3JtZXJzJ11bJyRpbmZlcnJlZFR5cGVzJ11bJ2NoYW5uZWwnXT5cbiAgZWRpdEVtb2ppOiAoXG4gICAgZ3VpbGRJZDogQmlnU3RyaW5nLFxuICAgIGlkOiBCaWdTdHJpbmcsXG4gICAgb3B0aW9uczogTW9kaWZ5R3VpbGRFbW9qaSxcbiAgICByZWFzb24/OiBzdHJpbmcsXG4gICkgPT4gUHJvbWlzZTxUQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsnZW1vamknXT5cbiAgZWRpdEFwcGxpY2F0aW9uRW1vamk6IChpZDogQmlnU3RyaW5nLCBvcHRpb25zOiBNb2RpZnlBcHBsaWNhdGlvbkVtb2ppKSA9PiBQcm9taXNlPFRCb3RbJ3RyYW5zZm9ybWVycyddWyckaW5mZXJyZWRUeXBlcyddWydlbW9qaSddPlxuICBlZGl0Rm9sbG93dXBNZXNzYWdlOiAoXG4gICAgdG9rZW46IHN0cmluZyxcbiAgICBtZXNzYWdlSWQ6IEJpZ1N0cmluZyxcbiAgICBvcHRpb25zOiBJbnRlcmFjdGlvbkNhbGxiYWNrRGF0YSxcbiAgKSA9PiBQcm9taXNlPFRCb3RbJ3RyYW5zZm9ybWVycyddWyckaW5mZXJyZWRUeXBlcyddWydtZXNzYWdlJ10+XG4gIGVkaXRHbG9iYWxBcHBsaWNhdGlvbkNvbW1hbmQ6IChjb21tYW5kSWQ6IEJpZ1N0cmluZywgb3B0aW9uczogQ3JlYXRlQXBwbGljYXRpb25Db21tYW5kKSA9PiBQcm9taXNlPEFwcGxpY2F0aW9uQ29tbWFuZD5cbiAgZWRpdEd1aWxkOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBvcHRpb25zOiBNb2RpZnlHdWlsZCwgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPFRCb3RbJ3RyYW5zZm9ybWVycyddWyckaW5mZXJyZWRUeXBlcyddWydndWlsZCddPlxuICBlZGl0R3VpbGRBcHBsaWNhdGlvbkNvbW1hbmQ6IChjb21tYW5kSWQ6IEJpZ1N0cmluZywgZ3VpbGRJZDogQmlnU3RyaW5nLCBvcHRpb25zOiBDcmVhdGVBcHBsaWNhdGlvbkNvbW1hbmQpID0+IFByb21pc2U8QXBwbGljYXRpb25Db21tYW5kPlxuICBlZGl0R3VpbGRTdGlja2VyOiAoXG4gICAgZ3VpbGRJZDogQmlnU3RyaW5nLFxuICAgIHN0aWNrZXJJZDogQmlnU3RyaW5nLFxuICAgIG9wdGlvbnM6IEF0TGVhc3RPbmU8RWRpdEd1aWxkU3RpY2tlck9wdGlvbnM+LFxuICAgIHJlYXNvbj86IHN0cmluZyxcbiAgKSA9PiBQcm9taXNlPFRCb3RbJ3RyYW5zZm9ybWVycyddWyckaW5mZXJyZWRUeXBlcyddWydzdGlja2VyJ10+XG4gIGVkaXRHdWlsZFRlbXBsYXRlOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCB0ZW1wbGF0ZUNvZGU6IHN0cmluZywgb3B0aW9uczogTW9kaWZ5R3VpbGRUZW1wbGF0ZSkgPT4gUHJvbWlzZTxUZW1wbGF0ZT5cbiAgZWRpdE1lc3NhZ2U6IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgbWVzc2FnZUlkOiBCaWdTdHJpbmcsIG9wdGlvbnM6IEVkaXRNZXNzYWdlKSA9PiBQcm9taXNlPFRCb3RbJ3RyYW5zZm9ybWVycyddWyckaW5mZXJyZWRUeXBlcyddWydtZXNzYWdlJ10+XG4gIGVkaXRPcmlnaW5hbEludGVyYWN0aW9uUmVzcG9uc2U6ICh0b2tlbjogc3RyaW5nLCBvcHRpb25zOiBJbnRlcmFjdGlvbkNhbGxiYWNrRGF0YSkgPT4gUHJvbWlzZTxUQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsnbWVzc2FnZSddPlxuICBlZGl0T3JpZ2luYWxXZWJob29rTWVzc2FnZTogKFxuICAgIHdlYmhvb2tJZDogQmlnU3RyaW5nLFxuICAgIHRva2VuOiBzdHJpbmcsXG4gICAgb3B0aW9uczogSW50ZXJhY3Rpb25DYWxsYmFja0RhdGEgJiB7IHRocmVhZElkPzogQmlnU3RyaW5nIH0sXG4gICkgPT4gUHJvbWlzZTxUQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsnbWVzc2FnZSddPlxuICBlZGl0Um9sZTogKFxuICAgIGd1aWxkSWQ6IEJpZ1N0cmluZyxcbiAgICByb2xlSWQ6IEJpZ1N0cmluZyxcbiAgICBvcHRpb25zOiBFZGl0R3VpbGRSb2xlLFxuICAgIHJlYXNvbj86IHN0cmluZyxcbiAgKSA9PiBQcm9taXNlPFRCb3RbJ3RyYW5zZm9ybWVycyddWyckaW5mZXJyZWRUeXBlcyddWydyb2xlJ10+XG4gIGVkaXRSb2xlUG9zaXRpb25zOiAoXG4gICAgZ3VpbGRJZDogQmlnU3RyaW5nLFxuICAgIG9wdGlvbnM6IE1vZGlmeVJvbGVQb3NpdGlvbnNbXSxcbiAgICByZWFzb24/OiBzdHJpbmcsXG4gICkgPT4gUHJvbWlzZTxUQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsncm9sZSddW10+XG4gIGVkaXRTY2hlZHVsZWRFdmVudDogKFxuICAgIGd1aWxkSWQ6IEJpZ1N0cmluZyxcbiAgICBldmVudElkOiBCaWdTdHJpbmcsXG4gICAgb3B0aW9uczogUGFydGlhbDxFZGl0U2NoZWR1bGVkRXZlbnQ+LFxuICAgIHJlYXNvbj86IHN0cmluZyxcbiAgKSA9PiBQcm9taXNlPFRCb3RbJ3RyYW5zZm9ybWVycyddWyckaW5mZXJyZWRUeXBlcyddWydzY2hlZHVsZWRFdmVudCddPlxuICBlZGl0U3RhZ2VJbnN0YW5jZTogKGNoYW5uZWxJZDogQmlnU3RyaW5nLCB0b3BpYzogc3RyaW5nLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8VEJvdFsndHJhbnNmb3JtZXJzJ11bJyRpbmZlcnJlZFR5cGVzJ11bJ3N0YWdlSW5zdGFuY2UnXT5cbiAgZWRpdFdlYmhvb2s6ICh3ZWJob29rSWQ6IEJpZ1N0cmluZywgb3B0aW9uczogTW9kaWZ5V2ViaG9vaywgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPFRCb3RbJ3RyYW5zZm9ybWVycyddWyckaW5mZXJyZWRUeXBlcyddWyd3ZWJob29rJ10+XG4gIGVkaXRXZWJob29rTWVzc2FnZTogKFxuICAgIHdlYmhvb2tJZDogQmlnU3RyaW5nLFxuICAgIHRva2VuOiBzdHJpbmcsXG4gICAgbWVzc2FnZUlkOiBCaWdTdHJpbmcsXG4gICAgb3B0aW9uczogSW50ZXJhY3Rpb25DYWxsYmFja0RhdGEgJiB7IHRocmVhZElkPzogQmlnU3RyaW5nIH0sXG4gICkgPT4gUHJvbWlzZTxUQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsnbWVzc2FnZSddPlxuICBlZGl0V2ViaG9va1dpdGhUb2tlbjogKFxuICAgIHdlYmhvb2tJZDogQmlnU3RyaW5nLFxuICAgIHRva2VuOiBzdHJpbmcsXG4gICAgb3B0aW9uczogT21pdDxNb2RpZnlXZWJob29rLCAnY2hhbm5lbElkJz4sXG4gICkgPT4gUHJvbWlzZTxUQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsnd2ViaG9vayddPlxuICBlZGl0V2VsY29tZVNjcmVlbjogKGd1aWxkSWQ6IEJpZ1N0cmluZywgb3B0aW9uczogQ2FtZWxpemU8RGlzY29yZE1vZGlmeUd1aWxkV2VsY29tZVNjcmVlbj4sIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTxXZWxjb21lU2NyZWVuPlxuICBlZGl0V2lkZ2V0U2V0dGluZ3M6IChndWlsZElkOiBCaWdTdHJpbmcsIG9wdGlvbnM6IENhbWVsaXplPERpc2NvcmRHdWlsZFdpZGdldFNldHRpbmdzPiwgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPEd1aWxkV2lkZ2V0U2V0dGluZ3M+XG4gIGVkaXRVc2VyQXBwbGljYXRpb25Sb2xlQ29ubmVjdGlvbjogKFxuICAgIGJlYXJlclRva2VuOiBzdHJpbmcsXG4gICAgYXBwbGljYXRpb25JZDogQmlnU3RyaW5nLFxuICAgIG9wdGlvbnM6IENhbWVsaXplPERpc2NvcmRBcHBsaWNhdGlvblJvbGVDb25uZWN0aW9uPixcbiAgKSA9PiBQcm9taXNlPENhbWVsaXplPERpc2NvcmRBcHBsaWNhdGlvblJvbGVDb25uZWN0aW9uPj5cbiAgZXhlY3V0ZVdlYmhvb2s6IChcbiAgICB3ZWJob29rSWQ6IEJpZ1N0cmluZyxcbiAgICB0b2tlbjogc3RyaW5nLFxuICAgIG9wdGlvbnM6IEV4ZWN1dGVXZWJob29rLFxuICApID0+IFByb21pc2U8VEJvdFsndHJhbnNmb3JtZXJzJ11bJyRpbmZlcnJlZFR5cGVzJ11bJ21lc3NhZ2UnXSB8IHVuZGVmaW5lZD5cbiAgZm9sbG93QW5ub3VuY2VtZW50OiAoc291cmNlQ2hhbm5lbElkOiBCaWdTdHJpbmcsIHRhcmdldENoYW5uZWxJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPENhbWVsaXplPERpc2NvcmRGb2xsb3dlZENoYW5uZWw+PlxuICBnZXRBY3RpdmVUaHJlYWRzOiAoZ3VpbGRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPHsgdGhyZWFkczogVEJvdFsndHJhbnNmb3JtZXJzJ11bJyRpbmZlcnJlZFR5cGVzJ11bJ2NoYW5uZWwnXVtdOyBtZW1iZXJzOiBUaHJlYWRNZW1iZXJbXSB9PlxuICBnZXRBcHBsaWNhdGlvbkluZm86ICgpID0+IFByb21pc2U8QXBwbGljYXRpb24+XG4gIGVkaXRBcHBsaWNhdGlvbkluZm86IChib2R5OiBFZGl0QXBwbGljYXRpb24pID0+IFByb21pc2U8QXBwbGljYXRpb24+XG4gIGdldEN1cnJlbnRBdXRoZW50aWNhdGlvbkluZm86IChiZWFyZXJUb2tlbjogc3RyaW5nKSA9PiBQcm9taXNlPENhbWVsaXplPERpc2NvcmRDdXJyZW50QXV0aG9yaXphdGlvbj4+XG4gIGV4Y2hhbmdlVG9rZW46IChjbGllbnRJZDogQmlnU3RyaW5nLCBjbGllbnRTZWNyZXQ6IHN0cmluZywgb3B0aW9uczogQ2FtZWxpemU8RGlzY29yZFRva2VuRXhjaGFuZ2U+KSA9PiBQcm9taXNlPENhbWVsaXplPERpc2NvcmRBY2Nlc3NUb2tlblJlc3BvbnNlPj5cbiAgcmV2b2tlVG9rZW46IChjbGllbnRJZDogQmlnU3RyaW5nLCBjbGllbnRTZWNyZXQ6IHN0cmluZywgb3B0aW9uczogQ2FtZWxpemU8RGlzY29yZFRva2VuUmV2b2NhdGlvbj4pID0+IFByb21pc2U8dm9pZD5cbiAgZ2V0QXBwbGljYXRpb25Db21tYW5kUGVybWlzc2lvbjogKFxuICAgIGd1aWxkSWQ6IEJpZ1N0cmluZyxcbiAgICBjb21tYW5kSWQ6IEJpZ1N0cmluZyxcbiAgICBvcHRpb25zPzogR2V0QXBwbGljYXRpb25Db21tYW5kUGVybWlzc2lvbk9wdGlvbnMsXG4gICkgPT4gUHJvbWlzZTxHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZFBlcm1pc3Npb25zPlxuICBnZXRBcHBsaWNhdGlvbkNvbW1hbmRQZXJtaXNzaW9uczogKFxuICAgIGd1aWxkSWQ6IEJpZ1N0cmluZyxcbiAgICBvcHRpb25zPzogR2V0QXBwbGljYXRpb25Db21tYW5kUGVybWlzc2lvbk9wdGlvbnMsXG4gICkgPT4gUHJvbWlzZTxHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZFBlcm1pc3Npb25zW10+XG4gIGdldEF1ZGl0TG9nOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBvcHRpb25zPzogR2V0R3VpbGRBdWRpdExvZykgPT4gUHJvbWlzZTxDYW1lbGl6ZTxEaXNjb3JkQXVkaXRMb2c+PlxuICBnZXRBdXRvbW9kUnVsZTogKGd1aWxkSWQ6IEJpZ1N0cmluZywgcnVsZUlkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8QXV0b01vZGVyYXRpb25SdWxlPlxuICBnZXRBdXRvbW9kUnVsZXM6IChndWlsZElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8QXV0b01vZGVyYXRpb25SdWxlW10+XG4gIGdldEF2YWlsYWJsZVZvaWNlUmVnaW9uczogKCkgPT4gUHJvbWlzZTxDYW1lbGl6ZTxEaXNjb3JkVm9pY2VSZWdpb24+W10+XG4gIGdldEJhbjogKGd1aWxkSWQ6IEJpZ1N0cmluZywgdXNlcklkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8Q2FtZWxpemU8RGlzY29yZEJhbj4+XG4gIGdldEJhbnM6IChndWlsZElkOiBCaWdTdHJpbmcsIG9wdGlvbnM/OiBHZXRCYW5zKSA9PiBQcm9taXNlPENhbWVsaXplPERpc2NvcmRCYW4+W10+XG4gIGdldENoYW5uZWw6IChjaGFubmVsSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxUQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsnY2hhbm5lbCddPlxuICBnZXRDaGFubmVsSW52aXRlczogKGNoYW5uZWxJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPENhbWVsaXplPERpc2NvcmRJbnZpdGVNZXRhZGF0YT5bXT5cbiAgZ2V0Q2hhbm5lbHM6IChndWlsZElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8VEJvdFsndHJhbnNmb3JtZXJzJ11bJyRpbmZlcnJlZFR5cGVzJ11bJ2NoYW5uZWwnXVtdPlxuICBnZXRDaGFubmVsV2ViaG9va3M6IChjaGFubmVsSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxUQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsnd2ViaG9vayddW10+XG4gIGdldERtQ2hhbm5lbDogKHVzZXJJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFRCb3RbJ3RyYW5zZm9ybWVycyddWyckaW5mZXJyZWRUeXBlcyddWydjaGFubmVsJ10+XG4gIGdldEdyb3VwRG1DaGFubmVsOiAob3B0aW9uczogR2V0R3JvdXBEbU9wdGlvbnMpID0+IFByb21pc2U8VEJvdFsndHJhbnNmb3JtZXJzJ11bJyRpbmZlcnJlZFR5cGVzJ11bJ2NoYW5uZWwnXT5cbiAgZ2V0RW1vamk6IChndWlsZElkOiBCaWdTdHJpbmcsIGVtb2ppSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxUQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsnZW1vamknXT5cbiAgZ2V0QXBwbGljYXRpb25FbW9qaTogKGVtb2ppSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxUQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsnZW1vamknXT5cbiAgZ2V0RW1vamlzOiAoZ3VpbGRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFRCb3RbJ3RyYW5zZm9ybWVycyddWyckaW5mZXJyZWRUeXBlcyddWydlbW9qaSddW10+XG4gIGdldEFwcGxpY2F0aW9uRW1vamlzOiAoKSA9PiBQcm9taXNlPHsgaXRlbXM6IFRCb3RbJ3RyYW5zZm9ybWVycyddWyckaW5mZXJyZWRUeXBlcyddWydlbW9qaSddW10gfT5cbiAgZ2V0Rm9sbG93dXBNZXNzYWdlOiAodG9rZW46IHN0cmluZywgbWVzc2FnZUlkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8VEJvdFsndHJhbnNmb3JtZXJzJ11bJyRpbmZlcnJlZFR5cGVzJ11bJ21lc3NhZ2UnXT5cbiAgZ2V0R2F0ZXdheUJvdDogKCkgPT4gUHJvbWlzZTxDYW1lbGl6ZTxEaXNjb3JkR2V0R2F0ZXdheUJvdD4+XG4gIGdldEdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZDogKGNvbW1hbmRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPEFwcGxpY2F0aW9uQ29tbWFuZD5cbiAgZ2V0R2xvYmFsQXBwbGljYXRpb25Db21tYW5kczogKCkgPT4gUHJvbWlzZTxBcHBsaWNhdGlvbkNvbW1hbmRbXT5cbiAgZ2V0R3VpbGQ6IChndWlsZElkOiBCaWdTdHJpbmcsIG9wdGlvbnM/OiB7IGNvdW50cz86IGJvb2xlYW4gfSkgPT4gUHJvbWlzZTxUQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsnZ3VpbGQnXT5cbiAgZ2V0R3VpbGRzOiAoYmVhcmVyVG9rZW46IHN0cmluZywgb3B0aW9ucz86IEdldFVzZXJHdWlsZHMpID0+IFByb21pc2U8UGFydGlhbDxUQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsnZ3VpbGQnXT5bXT5cbiAgZ2V0R3VpbGRBcHBsaWNhdGlvbkNvbW1hbmQ6IChjb21tYW5kSWQ6IEJpZ1N0cmluZywgZ3VpbGRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPEFwcGxpY2F0aW9uQ29tbWFuZD5cbiAgZ2V0R3VpbGRBcHBsaWNhdGlvbkNvbW1hbmRzOiAoZ3VpbGRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPEFwcGxpY2F0aW9uQ29tbWFuZFtdPlxuICBnZXRHdWlsZFByZXZpZXc6IChndWlsZElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8Q2FtZWxpemU8RGlzY29yZEd1aWxkUHJldmlldz4+XG4gIGdldEd1aWxkU3RpY2tlcjogKGd1aWxkSWQ6IEJpZ1N0cmluZywgc3RpY2tlcklkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8VEJvdFsndHJhbnNmb3JtZXJzJ11bJyRpbmZlcnJlZFR5cGVzJ11bJ3N0aWNrZXInXT5cbiAgZ2V0R3VpbGRTdGlja2VyczogKGd1aWxkSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxUQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsnc3RpY2tlciddW10+XG4gIGdldEd1aWxkVGVtcGxhdGU6ICh0ZW1wbGF0ZUNvZGU6IHN0cmluZykgPT4gUHJvbWlzZTxUZW1wbGF0ZT5cbiAgZ2V0R3VpbGRUZW1wbGF0ZXM6IChndWlsZElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8VGVtcGxhdGVbXT5cbiAgZ2V0R3VpbGRXZWJob29rczogKGd1aWxkSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxUQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsnd2ViaG9vayddW10+XG4gIGdldEludGVncmF0aW9uczogKGd1aWxkSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxJbnRlZ3JhdGlvbltdPlxuICBnZXRJbnZpdGU6IChpbnZpdGVDb2RlOiBzdHJpbmcsIG9wdGlvbnM/OiBHZXRJbnZpdGUpID0+IFByb21pc2U8VEJvdFsndHJhbnNmb3JtZXJzJ11bJyRpbmZlcnJlZFR5cGVzJ11bJ2ludml0ZSddPlxuICBnZXRJbnZpdGVzOiAoZ3VpbGRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFRCb3RbJ3RyYW5zZm9ybWVycyddWyckaW5mZXJyZWRUeXBlcyddWydpbnZpdGUnXVtdPlxuICBnZXRNZXNzYWdlOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIG1lc3NhZ2VJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFRCb3RbJ3RyYW5zZm9ybWVycyddWyckaW5mZXJyZWRUeXBlcyddWydtZXNzYWdlJ10+XG4gIGdldE1lc3NhZ2VzOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIG9wdGlvbnM/OiBHZXRNZXNzYWdlc09wdGlvbnMpID0+IFByb21pc2U8VEJvdFsndHJhbnNmb3JtZXJzJ11bJyRpbmZlcnJlZFR5cGVzJ11bJ21lc3NhZ2UnXVtdPlxuICBnZXRTdGlja2VyUGFjazogKHN0aWNrZXJQYWNrSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxTdGlja2VyUGFjaz5cbiAgZ2V0U3RpY2tlclBhY2tzOiAoKSA9PiBQcm9taXNlPFN0aWNrZXJQYWNrW10+XG4gIGdldE9yaWdpbmFsSW50ZXJhY3Rpb25SZXNwb25zZTogKHRva2VuOiBzdHJpbmcpID0+IFByb21pc2U8VEJvdFsndHJhbnNmb3JtZXJzJ11bJyRpbmZlcnJlZFR5cGVzJ11bJ21lc3NhZ2UnXT5cbiAgZ2V0UGlubmVkTWVzc2FnZXM6IChjaGFubmVsSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxUQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsnbWVzc2FnZSddW10+XG4gIGdldFByaXZhdGVBcmNoaXZlZFRocmVhZHM6IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgb3B0aW9ucz86IExpc3RBcmNoaXZlZFRocmVhZHMpID0+IFByb21pc2U8Q2FtZWxpemU8RGlzY29yZEFyY2hpdmVkVGhyZWFkcz4+XG4gIGdldFByaXZhdGVKb2luZWRBcmNoaXZlZFRocmVhZHM6IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgb3B0aW9ucz86IExpc3RBcmNoaXZlZFRocmVhZHMpID0+IFByb21pc2U8Q2FtZWxpemU8RGlzY29yZEFyY2hpdmVkVGhyZWFkcz4+XG4gIGdldFBydW5lQ291bnQ6IChndWlsZElkOiBCaWdTdHJpbmcsIG9wdGlvbnM/OiBHZXRHdWlsZFBydW5lQ291bnRRdWVyeSkgPT4gUHJvbWlzZTxDYW1lbGl6ZTxEaXNjb3JkUHJ1bmVkQ291bnQ+PlxuICBnZXRQdWJsaWNBcmNoaXZlZFRocmVhZHM6IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgb3B0aW9ucz86IExpc3RBcmNoaXZlZFRocmVhZHMpID0+IFByb21pc2U8Q2FtZWxpemU8RGlzY29yZEFyY2hpdmVkVGhyZWFkcz4+XG4gIGdldFJvbGVzOiAoZ3VpbGRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFRCb3RbJ3RyYW5zZm9ybWVycyddWyckaW5mZXJyZWRUeXBlcyddWydyb2xlJ11bXT5cbiAgZ2V0Um9sZTogKGd1aWxkSWQ6IEJpZ1N0cmluZywgcm9sZUlkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8VEJvdFsndHJhbnNmb3JtZXJzJ11bJyRpbmZlcnJlZFR5cGVzJ11bJ3JvbGUnXT5cbiAgZ2V0U2NoZWR1bGVkRXZlbnQ6IChcbiAgICBndWlsZElkOiBCaWdTdHJpbmcsXG4gICAgZXZlbnRJZDogQmlnU3RyaW5nLFxuICAgIG9wdGlvbnM/OiB7IHdpdGhVc2VyQ291bnQ/OiBib29sZWFuIH0sXG4gICkgPT4gUHJvbWlzZTxUQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsnc2NoZWR1bGVkRXZlbnQnXT5cbiAgZ2V0U2NoZWR1bGVkRXZlbnRzOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBvcHRpb25zPzogR2V0U2NoZWR1bGVkRXZlbnRzKSA9PiBQcm9taXNlPFRCb3RbJ3RyYW5zZm9ybWVycyddWyckaW5mZXJyZWRUeXBlcyddWydzY2hlZHVsZWRFdmVudCddW10+XG4gIGdldFNjaGVkdWxlZEV2ZW50VXNlcnM6IChcbiAgICBndWlsZElkOiBCaWdTdHJpbmcsXG4gICAgZXZlbnRJZDogQmlnU3RyaW5nLFxuICAgIG9wdGlvbnM/OiBHZXRTY2hlZHVsZWRFdmVudFVzZXJzLFxuICApID0+IFByb21pc2U8QXJyYXk8eyB1c2VyOiBUQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsndXNlciddOyBtZW1iZXI/OiBUQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsnbWVtYmVyJ10gfT4+XG4gIGdldFNlc3Npb25JbmZvOiAoKSA9PiBQcm9taXNlPENhbWVsaXplPERpc2NvcmRHZXRHYXRld2F5Qm90Pj5cbiAgZ2V0U3RhZ2VJbnN0YW5jZTogKGNoYW5uZWxJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFRCb3RbJ3RyYW5zZm9ybWVycyddWyckaW5mZXJyZWRUeXBlcyddWydzdGFnZUluc3RhbmNlJ10+XG4gIGdldE93blZvaWNlU3RhdGU6IChndWlsZElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8VEJvdFsndHJhbnNmb3JtZXJzJ11bJyRpbmZlcnJlZFR5cGVzJ11bJ3ZvaWNlU3RhdGUnXT5cbiAgZ2V0VXNlclZvaWNlU3RhdGU6IChndWlsZElkOiBCaWdTdHJpbmcsIHVzZXJJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFRCb3RbJ3RyYW5zZm9ybWVycyddWyckaW5mZXJyZWRUeXBlcyddWyd2b2ljZVN0YXRlJ10+XG4gIGdldFN0aWNrZXI6IChzdGlja2VySWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxUQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsnc3RpY2tlciddPlxuICBnZXRUaHJlYWRNZW1iZXI6IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgdXNlcklkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8VGhyZWFkTWVtYmVyPlxuICBnZXRUaHJlYWRNZW1iZXJzOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8VGhyZWFkTWVtYmVyW10+XG4gIGdldFJlYWN0aW9uczogKFxuICAgIGNoYW5uZWxJZDogQmlnU3RyaW5nLFxuICAgIG1lc3NhZ2VJZDogQmlnU3RyaW5nLFxuICAgIHJlYWN0aW9uOiBzdHJpbmcsXG4gICAgb3B0aW9ucz86IEdldFJlYWN0aW9ucyxcbiAgKSA9PiBQcm9taXNlPFRCb3RbJ3RyYW5zZm9ybWVycyddWyckaW5mZXJyZWRUeXBlcyddWyd1c2VyJ11bXT5cbiAgZ2V0VXNlcjogKGlkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8VEJvdFsndHJhbnNmb3JtZXJzJ11bJyRpbmZlcnJlZFR5cGVzJ11bJ3VzZXInXT5cbiAgZ2V0Q3VycmVudFVzZXI6IChiZWFyZXJUb2tlbjogc3RyaW5nKSA9PiBQcm9taXNlPFRCb3RbJ3RyYW5zZm9ybWVycyddWyckaW5mZXJyZWRUeXBlcyddWyd1c2VyJ10+XG4gIGdldFVzZXJDb25uZWN0aW9uczogKGJlYXJlclRva2VuOiBzdHJpbmcpID0+IFByb21pc2U8Q2FtZWxpemU8RGlzY29yZENvbm5lY3Rpb24+W10+XG4gIGdldFVzZXJBcHBsaWNhdGlvblJvbGVDb25uZWN0aW9uOiAoYmVhcmVyVG9rZW46IHN0cmluZywgYXBwbGljYXRpb25JZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPENhbWVsaXplPERpc2NvcmRBcHBsaWNhdGlvblJvbGVDb25uZWN0aW9uPj5cbiAgZ2V0VmFuaXR5VXJsOiAoZ3VpbGRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPENhbWVsaXplPERpc2NvcmRWYW5pdHlVcmw+PlxuICBnZXRWb2ljZVJlZ2lvbnM6IChndWlsZElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8Q2FtZWxpemU8RGlzY29yZFZvaWNlUmVnaW9uPltdPlxuICBnZXRXZWJob29rOiAod2ViaG9va0lkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8VEJvdFsndHJhbnNmb3JtZXJzJ11bJyRpbmZlcnJlZFR5cGVzJ11bJ3dlYmhvb2snXT5cbiAgZ2V0V2ViaG9va01lc3NhZ2U6IChcbiAgICB3ZWJob29rSWQ6IEJpZ1N0cmluZyxcbiAgICB0b2tlbjogc3RyaW5nLFxuICAgIG1lc3NhZ2VJZDogQmlnU3RyaW5nLFxuICAgIG9wdGlvbnM/OiBHZXRXZWJob29rTWVzc2FnZU9wdGlvbnMsXG4gICkgPT4gUHJvbWlzZTxUQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsnbWVzc2FnZSddPlxuICBnZXRXZWJob29rV2l0aFRva2VuOiAod2ViaG9va0lkOiBCaWdTdHJpbmcsIHRva2VuOiBzdHJpbmcpID0+IFByb21pc2U8VEJvdFsndHJhbnNmb3JtZXJzJ11bJyRpbmZlcnJlZFR5cGVzJ11bJ3dlYmhvb2snXT5cbiAgZ2V0V2VsY29tZVNjcmVlbjogKGd1aWxkSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxXZWxjb21lU2NyZWVuPlxuICBnZXRXaWRnZXQ6IChndWlsZElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8R3VpbGRXaWRnZXQ+XG4gIGdldFdpZGdldFNldHRpbmdzOiAoZ3VpbGRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPEd1aWxkV2lkZ2V0U2V0dGluZ3M+XG4gIHB1Ymxpc2hNZXNzYWdlOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIG1lc3NhZ2VJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFRCb3RbJ3RyYW5zZm9ybWVycyddWyckaW5mZXJyZWRUeXBlcyddWydtZXNzYWdlJ10+XG4gIHNlbmRNZXNzYWdlOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIG9wdGlvbnM6IENyZWF0ZU1lc3NhZ2VPcHRpb25zKSA9PiBQcm9taXNlPFRCb3RbJ3RyYW5zZm9ybWVycyddWyckaW5mZXJyZWRUeXBlcyddWydtZXNzYWdlJ10+XG4gIHNlbmRGb2xsb3d1cE1lc3NhZ2U6ICh0b2tlbjogc3RyaW5nLCBvcHRpb25zOiBJbnRlcmFjdGlvbkNhbGxiYWNrRGF0YSkgPT4gUHJvbWlzZTxUQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsnbWVzc2FnZSddPlxuICBzdGFydFRocmVhZFdpdGhNZXNzYWdlOiAoXG4gICAgY2hhbm5lbElkOiBCaWdTdHJpbmcsXG4gICAgbWVzc2FnZUlkOiBCaWdTdHJpbmcsXG4gICAgb3B0aW9uczogU3RhcnRUaHJlYWRXaXRoTWVzc2FnZSxcbiAgICByZWFzb24/OiBzdHJpbmcsXG4gICkgPT4gUHJvbWlzZTxUQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsnY2hhbm5lbCddPlxuICBzdGFydFRocmVhZFdpdGhvdXRNZXNzYWdlOiAoXG4gICAgY2hhbm5lbElkOiBCaWdTdHJpbmcsXG4gICAgb3B0aW9uczogU3RhcnRUaHJlYWRXaXRob3V0TWVzc2FnZSxcbiAgICByZWFzb24/OiBzdHJpbmcsXG4gICkgPT4gUHJvbWlzZTxUQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsnY2hhbm5lbCddPlxuICBzeW5jR3VpbGRUZW1wbGF0ZTogKGd1aWxkSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxUZW1wbGF0ZT5cbiAgdXBzZXJ0R2xvYmFsQXBwbGljYXRpb25Db21tYW5kczogKFxuICAgIGNvbW1hbmRzOiBDcmVhdGVBcHBsaWNhdGlvbkNvbW1hbmRbXSxcbiAgICBvcHRpb25zPzogVXBzZXJ0R2xvYmFsQXBwbGljYXRpb25Db21tYW5kT3B0aW9ucyxcbiAgKSA9PiBQcm9taXNlPEFwcGxpY2F0aW9uQ29tbWFuZFtdPlxuICB1cHNlcnRHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZHM6IChcbiAgICBndWlsZElkOiBCaWdTdHJpbmcsXG4gICAgY29tbWFuZHM6IENyZWF0ZUFwcGxpY2F0aW9uQ29tbWFuZFtdLFxuICAgIG9wdGlvbnM/OiBVcHNlcnRHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZE9wdGlvbnMsXG4gICkgPT4gUHJvbWlzZTxBcHBsaWNhdGlvbkNvbW1hbmRbXT5cbiAgZWRpdEJvdE1lbWJlcjogKGd1aWxkSWQ6IEJpZ1N0cmluZywgb3B0aW9uczogRWRpdEJvdE1lbWJlck9wdGlvbnMsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTxUQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsnbWVtYmVyJ10+XG4gIGVkaXRNZW1iZXI6IChcbiAgICBndWlsZElkOiBCaWdTdHJpbmcsXG4gICAgdXNlcklkOiBCaWdTdHJpbmcsXG4gICAgb3B0aW9uczogTW9kaWZ5R3VpbGRNZW1iZXIsXG4gICAgcmVhc29uPzogc3RyaW5nLFxuICApID0+IFByb21pc2U8VEJvdFsndHJhbnNmb3JtZXJzJ11bJyRpbmZlcnJlZFR5cGVzJ11bJ21lbWJlciddPlxuICBnZXRNZW1iZXI6IChndWlsZElkOiBCaWdTdHJpbmcsIHVzZXJJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFRCb3RbJ3RyYW5zZm9ybWVycyddWyckaW5mZXJyZWRUeXBlcyddWydtZW1iZXInXT5cbiAgZ2V0Q3VycmVudE1lbWJlcjogKGd1aWxkSWQ6IEJpZ1N0cmluZywgYmVhcmVyVG9rZW46IHN0cmluZykgPT4gUHJvbWlzZTxUQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsnbWVtYmVyJ10+XG4gIGdldE1lbWJlcnM6IChndWlsZElkOiBCaWdTdHJpbmcsIG9wdGlvbnM6IExpc3RHdWlsZE1lbWJlcnMpID0+IFByb21pc2U8VEJvdFsndHJhbnNmb3JtZXJzJ11bJyRpbmZlcnJlZFR5cGVzJ11bJ21lbWJlciddW10+XG4gIHBydW5lTWVtYmVyczogKGd1aWxkSWQ6IEJpZ1N0cmluZywgb3B0aW9uczogQmVnaW5HdWlsZFBydW5lLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8eyBwcnVuZWQ6IG51bWJlciB8IG51bGwgfT5cbiAgc2VhcmNoTWVtYmVyczogKFxuICAgIGd1aWxkSWQ6IEJpZ1N0cmluZyxcbiAgICBxdWVyeTogc3RyaW5nLFxuICAgIG9wdGlvbnM/OiBPbWl0PFNlYXJjaE1lbWJlcnMsICdxdWVyeSc+LFxuICApID0+IFByb21pc2U8VEJvdFsndHJhbnNmb3JtZXJzJ11bJyRpbmZlcnJlZFR5cGVzJ11bJ21lbWJlciddW10+XG4gIGJ1bGtCYW5NZW1iZXJzOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBvcHRpb25zOiBDcmVhdGVHdWlsZEJ1bGtCYW4sIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTx7IGJhbm5lZFVzZXJzOiBiaWdpbnRbXTsgZmFpbGVkVXNlcnM6IGJpZ2ludFtdIH0+XG4gIGdldEFwcGxpY2F0aW9uQWN0aXZpdHlJbnN0YW5jZTogKGFwcGxpY2F0aW9uSWQ6IEJpZ1N0cmluZywgaW5zdGFuY2VJZDogc3RyaW5nKSA9PiBQcm9taXNlPENhbWVsaXplPERpc2NvcmRBY3Rpdml0eUluc3RhbmNlPj5cbiAgLy8gZnVuY3Rpb25zIHJldHVybiBWb2lkIHNvIGRvbnQgbmVlZCBhbnkgc3BlY2lhbCBoYW5kbGluZ1xuICBhZGRSZWFjdGlvbjogKGNoYW5uZWxJZDogQmlnU3RyaW5nLCBtZXNzYWdlSWQ6IEJpZ1N0cmluZywgcmVhY3Rpb246IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICBhZGRSZWFjdGlvbnM6IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgbWVzc2FnZUlkOiBCaWdTdHJpbmcsIHJlYWN0aW9uczogc3RyaW5nW10sIG9yZGVyZWQ/OiBib29sZWFuKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGFkZFJvbGU6IChndWlsZElkOiBCaWdTdHJpbmcsIHVzZXJJZDogQmlnU3RyaW5nLCByb2xlSWQ6IEJpZ1N0cmluZywgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGFkZFRocmVhZE1lbWJlcjogKGNoYW5uZWxJZDogQmlnU3RyaW5nLCB1c2VySWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICBhZGREbVJlY2lwaWVudDogKGNoYW5uZWxJZDogQmlnU3RyaW5nLCB1c2VySWQ6IEJpZ1N0cmluZywgb3B0aW9uczogQWRkRG1SZWNpcGllbnRPcHRpb25zKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGFkZEd1aWxkTWVtYmVyOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCB1c2VySWQ6IEJpZ1N0cmluZywgb3B0aW9uczogQWRkR3VpbGRNZW1iZXJPcHRpb25zKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGRlbGV0ZUF1dG9tb2RSdWxlOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBydWxlSWQ6IEJpZ1N0cmluZywgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGRlbGV0ZUNoYW5uZWw6IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGRlbGV0ZUNoYW5uZWxQZXJtaXNzaW9uT3ZlcnJpZGU6IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgb3ZlcndyaXRlSWQ6IEJpZ1N0cmluZywgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGRlbGV0ZUVtb2ppOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBpZDogQmlnU3RyaW5nLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgZGVsZXRlQXBwbGljYXRpb25FbW9qaTogKGlkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgZGVsZXRlRm9sbG93dXBNZXNzYWdlOiAodG9rZW46IHN0cmluZywgbWVzc2FnZUlkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgZGVsZXRlR2xvYmFsQXBwbGljYXRpb25Db21tYW5kOiAoY29tbWFuZElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgZGVsZXRlR3VpbGQ6IChndWlsZElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgZGVsZXRlR3VpbGRBcHBsaWNhdGlvbkNvbW1hbmQ6IChjb21tYW5kSWQ6IEJpZ1N0cmluZywgZ3VpbGRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGRlbGV0ZUd1aWxkU3RpY2tlcjogKGd1aWxkSWQ6IEJpZ1N0cmluZywgc3RpY2tlcklkOiBCaWdTdHJpbmcsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICBkZWxldGVHdWlsZFRlbXBsYXRlOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCB0ZW1wbGF0ZUNvZGU6IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICBkZWxldGVJbnRlZ3JhdGlvbjogKGd1aWxkSWQ6IEJpZ1N0cmluZywgaW50ZWdyYXRpb25JZDogQmlnU3RyaW5nLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgZGVsZXRlSW52aXRlOiAoaW52aXRlQ29kZTogc3RyaW5nLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgZGVsZXRlTWVzc2FnZTogKGNoYW5uZWxJZDogQmlnU3RyaW5nLCBtZXNzYWdlSWQ6IEJpZ1N0cmluZywgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGRlbGV0ZU1lc3NhZ2VzOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIG1lc3NhZ2VJZHM6IEJpZ1N0cmluZ1tdLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgZGVsZXRlT3JpZ2luYWxJbnRlcmFjdGlvblJlc3BvbnNlOiAodG9rZW46IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICBkZWxldGVPd25SZWFjdGlvbjogKGNoYW5uZWxJZDogQmlnU3RyaW5nLCBtZXNzYWdlSWQ6IEJpZ1N0cmluZywgcmVhY3Rpb246IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICBkZWxldGVSZWFjdGlvbnNBbGw6IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgbWVzc2FnZUlkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgZGVsZXRlUmVhY3Rpb25zRW1vamk6IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgbWVzc2FnZUlkOiBCaWdTdHJpbmcsIHJlYWN0aW9uOiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgZGVsZXRlUm9sZTogKGd1aWxkSWQ6IEJpZ1N0cmluZywgcm9sZUlkOiBCaWdTdHJpbmcsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICBkZWxldGVTY2hlZHVsZWRFdmVudDogKGd1aWxkSWQ6IEJpZ1N0cmluZywgZXZlbnRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGRlbGV0ZVN0YWdlSW5zdGFuY2U6IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGRlbGV0ZVVzZXJSZWFjdGlvbjogKGNoYW5uZWxJZDogQmlnU3RyaW5nLCBtZXNzYWdlSWQ6IEJpZ1N0cmluZywgdXNlcklkOiBCaWdTdHJpbmcsIHJlYWN0aW9uOiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgZGVsZXRlV2ViaG9vazogKHdlYmhvb2tJZDogQmlnU3RyaW5nLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgZGVsZXRlV2ViaG9va01lc3NhZ2U6ICh3ZWJob29rSWQ6IEJpZ1N0cmluZywgdG9rZW46IHN0cmluZywgbWVzc2FnZUlkOiBCaWdTdHJpbmcsIG9wdGlvbnM/OiBEZWxldGVXZWJob29rTWVzc2FnZU9wdGlvbnMpID0+IFByb21pc2U8dm9pZD5cbiAgZGVsZXRlV2ViaG9va1dpdGhUb2tlbjogKHdlYmhvb2tJZDogQmlnU3RyaW5nLCB0b2tlbjogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGVkaXRDaGFubmVsUGVybWlzc2lvbk92ZXJyaWRlczogKGNoYW5uZWxJZDogQmlnU3RyaW5nLCBvcHRpb25zOiBFZGl0Q2hhbm5lbFBlcm1pc3Npb25PdmVycmlkZXNPcHRpb25zLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgZWRpdENoYW5uZWxQb3NpdGlvbnM6IChndWlsZElkOiBCaWdTdHJpbmcsIGNoYW5uZWxQb3NpdGlvbnM6IE1vZGlmeUd1aWxkQ2hhbm5lbFBvc2l0aW9uc1tdKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGVkaXRHdWlsZE1mYUxldmVsOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBtZmFMZXZlbDogTWZhTGV2ZWxzLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgZWRpdE93blZvaWNlU3RhdGU6IChndWlsZElkOiBCaWdTdHJpbmcsIG9wdGlvbnM6IEVkaXRPd25Wb2ljZVN0YXRlKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGVkaXRVc2VyVm9pY2VTdGF0ZTogKGd1aWxkSWQ6IEJpZ1N0cmluZywgb3B0aW9uczogRWRpdFVzZXJWb2ljZVN0YXRlKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGpvaW5UaHJlYWQ6IChjaGFubmVsSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICBsZWF2ZUd1aWxkOiAoZ3VpbGRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGxlYXZlVGhyZWFkOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgcmVtb3ZlUm9sZTogKGd1aWxkSWQ6IEJpZ1N0cmluZywgdXNlcklkOiBCaWdTdHJpbmcsIHJvbGVJZDogQmlnU3RyaW5nLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgcmVtb3ZlVGhyZWFkTWVtYmVyOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIHVzZXJJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIHJlbW92ZURtUmVjaXBpZW50OiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIHVzZXJJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIHNlbmRJbnRlcmFjdGlvblJlc3BvbnNlOiAoXG4gICAgaW50ZXJhY3Rpb25JZDogQmlnU3RyaW5nLFxuICAgIHRva2VuOiBzdHJpbmcsXG4gICAgb3B0aW9uczogSW50ZXJhY3Rpb25SZXNwb25zZSxcbiAgICBwYXJhbXM/OiBJbnRlcmFjdGlvbkNhbGxiYWNrT3B0aW9ucyxcbiAgKSA9PiBQcm9taXNlPHZvaWQgfCBUQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsnaW50ZXJhY3Rpb25DYWxsYmFja1Jlc3BvbnNlJ10+XG4gIHRyaWdnZXJUeXBpbmdJbmRpY2F0b3I6IChjaGFubmVsSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICBiYW5NZW1iZXI6IChndWlsZElkOiBCaWdTdHJpbmcsIHVzZXJJZDogQmlnU3RyaW5nLCBvcHRpb25zPzogQ3JlYXRlR3VpbGRCYW4sIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICBraWNrTWVtYmVyOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCB1c2VySWQ6IEJpZ1N0cmluZywgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIHBpbk1lc3NhZ2U6IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgbWVzc2FnZUlkOiBCaWdTdHJpbmcsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICB1bmJhbk1lbWJlcjogKGd1aWxkSWQ6IEJpZ1N0cmluZywgdXNlcklkOiBCaWdTdHJpbmcsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICB1bnBpbk1lc3NhZ2U6IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgbWVzc2FnZUlkOiBCaWdTdHJpbmcsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICBnZXRHdWlsZE9uYm9hcmRpbmc6IChndWlsZElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8VEJvdFsndHJhbnNmb3JtZXJzJ11bJyRpbmZlcnJlZFR5cGVzJ11bJ2d1aWxkT25ib2FyZGluZyddPlxuICBlZGl0R3VpbGRPbmJvYXJkaW5nOiAoXG4gICAgZ3VpbGRJZDogQmlnU3RyaW5nLFxuICAgIG9wdGlvbnM6IEVkaXRHdWlsZE9uYm9hcmRpbmcsXG4gICAgcmVhc29uPzogc3RyaW5nLFxuICApID0+IFByb21pc2U8VEJvdFsndHJhbnNmb3JtZXJzJ11bJyRpbmZlcnJlZFR5cGVzJ11bJ2d1aWxkT25ib2FyZGluZyddPlxuICBsaXN0RW50aXRsZW1lbnRzOiAoYXBwbGljYXRpb25JZDogQmlnU3RyaW5nLCBvcHRpb25zPzogR2V0RW50aXRsZW1lbnRzKSA9PiBQcm9taXNlPFRCb3RbJ3RyYW5zZm9ybWVycyddWyckaW5mZXJyZWRUeXBlcyddWydlbnRpdGxlbWVudCddW10+XG4gIGNyZWF0ZVRlc3RFbnRpdGxlbWVudDogKFxuICAgIGFwcGxpY2F0aW9uSWQ6IEJpZ1N0cmluZyxcbiAgICBib2R5OiBDcmVhdGVFbnRpdGxlbWVudCxcbiAgKSA9PiBQcm9taXNlPFBhcnRpYWw8VEJvdFsndHJhbnNmb3JtZXJzJ11bJyRpbmZlcnJlZFR5cGVzJ11bJ2VudGl0bGVtZW50J10+PlxuICBkZWxldGVUZXN0RW50aXRsZW1lbnQ6IChhcHBsaWNhdGlvbklkOiBCaWdTdHJpbmcsIGVudGl0bGVtZW50SWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICBsaXN0U2t1czogKGFwcGxpY2F0aW9uSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxUQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsnc2t1J11bXT5cbiAgbGlzdFN1YnNjcmlwdGlvbnM6IChza3VJZDogQmlnU3RyaW5nLCBvcHRpb25zPzogTGlzdFNrdVN1YnNjcmlwdGlvbnNPcHRpb25zKSA9PiBQcm9taXNlPFRCb3RbJ3RyYW5zZm9ybWVycyddWyckaW5mZXJyZWRUeXBlcyddWydzdWJzY3JpcHRpb24nXVtdPlxuICBnZXRTdWJzY3JpcHRpb246IChza3VJZDogQmlnU3RyaW5nLCBzdWJzY3JpcHRpb25JZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFRCb3RbJ3RyYW5zZm9ybWVycyddWyckaW5mZXJyZWRUeXBlcyddWydzdWJzY3JpcHRpb24nXT5cbiAgc2VuZFNvdW5kYm9hcmRTb3VuZDogKGNoYW5uZWxJZDogQmlnU3RyaW5nLCBvcHRpb25zOiBTZW5kU291bmRib2FyZFNvdW5kKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGxpc3REZWZhdWx0U291bmRib2FyZFNvdW5kczogKCkgPT4gUHJvbWlzZTxUQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsnc291bmRib2FyZFNvdW5kJ11bXT5cbiAgbGlzdEd1aWxkU291bmRib2FyZFNvdW5kczogKGd1aWxkSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTx7IGl0ZW1zOiBUQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsnc291bmRib2FyZFNvdW5kJ11bXSB9PlxuICBnZXRHdWlsZFNvdW5kYm9hcmRTb3VuZDogKGd1aWxkSWQ6IEJpZ1N0cmluZywgc291bmRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFRCb3RbJ3RyYW5zZm9ybWVycyddWyckaW5mZXJyZWRUeXBlcyddWydzb3VuZGJvYXJkU291bmQnXT5cbiAgY3JlYXRlR3VpbGRTb3VuZGJvYXJkU291bmQ6IChcbiAgICBndWlsZElkOiBCaWdTdHJpbmcsXG4gICAgb3B0aW9uczogQ3JlYXRlR3VpbGRTb3VuZGJvYXJkU291bmQsXG4gICAgcmVhc29uPzogc3RyaW5nLFxuICApID0+IFByb21pc2U8VEJvdFsndHJhbnNmb3JtZXJzJ11bJyRpbmZlcnJlZFR5cGVzJ11bJ3NvdW5kYm9hcmRTb3VuZCddPlxuICBtb2RpZnlHdWlsZFNvdW5kYm9hcmRTb3VuZDogKFxuICAgIGd1aWxkSWQ6IEJpZ1N0cmluZyxcbiAgICBzb3VuZElkOiBCaWdTdHJpbmcsXG4gICAgb3B0aW9uczogTW9kaWZ5R3VpbGRTb3VuZGJvYXJkU291bmQsXG4gICAgcmVhc29uPzogc3RyaW5nLFxuICApID0+IFByb21pc2U8VEJvdFsndHJhbnNmb3JtZXJzJ11bJyRpbmZlcnJlZFR5cGVzJ11bJ3NvdW5kYm9hcmRTb3VuZCddPlxuICBkZWxldGVHdWlsZFNvdW5kYm9hcmRTb3VuZDogKGd1aWxkSWQ6IEJpZ1N0cmluZywgc291bmRJZDogQmlnU3RyaW5nLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbn1cbiJdLCJuYW1lcyI6WyJjcmVhdGVCb3RIZWxwZXJzIiwiYm90IiwiY3JlYXRlQXV0b21vZFJ1bGUiLCJndWlsZElkIiwib3B0aW9ucyIsInJlYXNvbiIsInRyYW5zZm9ybWVycyIsImF1dG9tb2RSdWxlIiwic25ha2VsaXplIiwicmVzdCIsImNyZWF0ZUNoYW5uZWwiLCJjaGFubmVsIiwiY3JlYXRlRW1vamkiLCJlbW9qaSIsImNyZWF0ZUFwcGxpY2F0aW9uRW1vamkiLCJjcmVhdGVGb3J1bVRocmVhZCIsImNoYW5uZWxJZCIsImNyZWF0ZUdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZCIsImNvbW1hbmQiLCJhcHBsaWNhdGlvbkNvbW1hbmQiLCJjcmVhdGVHdWlsZCIsImd1aWxkIiwic2hhcmRJZCIsImNyZWF0ZUd1aWxkQXBwbGljYXRpb25Db21tYW5kIiwiY3JlYXRlR3VpbGRGcm9tVGVtcGxhdGUiLCJ0ZW1wbGF0ZUNvZGUiLCJjcmVhdGVHdWlsZFN0aWNrZXIiLCJzdGlja2VyIiwiY3JlYXRlR3VpbGRUZW1wbGF0ZSIsInRlbXBsYXRlIiwiY3JlYXRlSW52aXRlIiwiY3JlYXRlUm9sZSIsInJvbGUiLCJjcmVhdGVTY2hlZHVsZWRFdmVudCIsInNjaGVkdWxlZEV2ZW50IiwiY3JlYXRlU3RhZ2VJbnN0YW5jZSIsInN0YWdlSW5zdGFuY2UiLCJjcmVhdGVXZWJob29rIiwid2ViaG9vayIsImVkaXRBcHBsaWNhdGlvbkNvbW1hbmRQZXJtaXNzaW9ucyIsImNvbW1hbmRJZCIsImJlYXJlclRva2VuIiwiYXBwbGljYXRpb25Db21tYW5kUGVybWlzc2lvbiIsImVkaXRBdXRvbW9kUnVsZSIsInJ1bGVJZCIsImVkaXRCb3RQcm9maWxlIiwidXNlciIsImVkaXRDaGFubmVsIiwiZWRpdEVtb2ppIiwiaWQiLCJlZGl0QXBwbGljYXRpb25FbW9qaSIsImVkaXRGb2xsb3d1cE1lc3NhZ2UiLCJ0b2tlbiIsIm1lc3NhZ2VJZCIsIm1lc3NhZ2UiLCJlZGl0R2xvYmFsQXBwbGljYXRpb25Db21tYW5kIiwiZWRpdEd1aWxkIiwiZWRpdEd1aWxkQXBwbGljYXRpb25Db21tYW5kIiwiZWRpdEd1aWxkU3RpY2tlciIsInN0aWNrZXJJZCIsImVkaXRHdWlsZFRlbXBsYXRlIiwiZWRpdE1lc3NhZ2UiLCJlZGl0T3JpZ2luYWxJbnRlcmFjdGlvblJlc3BvbnNlIiwiZWRpdE9yaWdpbmFsV2ViaG9va01lc3NhZ2UiLCJ3ZWJob29rSWQiLCJlZGl0Um9sZSIsInJvbGVJZCIsImVkaXRSb2xlUG9zaXRpb25zIiwibWFwIiwiZWRpdFNjaGVkdWxlZEV2ZW50IiwiZXZlbnRJZCIsImVkaXRTdGFnZUluc3RhbmNlIiwidG9waWMiLCJlZGl0V2ViaG9vayIsImVkaXRXZWJob29rTWVzc2FnZSIsImVkaXRXZWJob29rV2l0aFRva2VuIiwiZWRpdFdlbGNvbWVTY3JlZW4iLCJ3ZWxjb21lU2NyZWVuIiwiZWRpdFdpZGdldFNldHRpbmdzIiwid2lkZ2V0U2V0dGluZ3MiLCJleGVjdXRlV2ViaG9vayIsInJlc3VsdCIsImZvbGxvd0Fubm91bmNlbWVudCIsInNvdXJjZUNoYW5uZWxJZCIsInRhcmdldENoYW5uZWxJZCIsImdldEFjdGl2ZVRocmVhZHMiLCJ0aHJlYWRzIiwidGhyZWFkIiwibWVtYmVycyIsIm1lbWJlciIsInRocmVhZE1lbWJlciIsImdldEFwcGxpY2F0aW9uSW5mbyIsImFwcGxpY2F0aW9uIiwiZWRpdEFwcGxpY2F0aW9uSW5mbyIsImJvZHkiLCJnZXRDdXJyZW50QXV0aGVudGljYXRpb25JbmZvIiwiZXhjaGFuZ2VUb2tlbiIsImNsaWVudElkIiwiY2xpZW50U2VjcmV0IiwicmV2b2tlVG9rZW4iLCJnZXRBcHBsaWNhdGlvbkNvbW1hbmRQZXJtaXNzaW9uIiwicmVzIiwic25ha2VkUmVzIiwiZ2V0QXBwbGljYXRpb25Db21tYW5kUGVybWlzc2lvbnMiLCJnZXRBdWRpdExvZyIsImdldEF1dG9tb2RSdWxlIiwiZ2V0QXV0b21vZFJ1bGVzIiwiZ2V0QXZhaWxhYmxlVm9pY2VSZWdpb25zIiwidm9pY2VSZWdpb24iLCJnZXRCYW4iLCJ1c2VySWQiLCJnZXRCYW5zIiwiZ2V0Q2hhbm5lbCIsImdldENoYW5uZWxJbnZpdGVzIiwiZ2V0Q2hhbm5lbHMiLCJnZXRDaGFubmVsV2ViaG9va3MiLCJnZXREbUNoYW5uZWwiLCJnZXRHcm91cERtQ2hhbm5lbCIsImdldEVtb2ppIiwiZW1vamlJZCIsImdldEFwcGxpY2F0aW9uRW1vamkiLCJnZXRFbW9qaXMiLCJnZXRBcHBsaWNhdGlvbkVtb2ppcyIsIml0ZW1zIiwiaXRlbSIsImdldEZvbGxvd3VwTWVzc2FnZSIsImdldEdhdGV3YXlCb3QiLCJnYXRld2F5Qm90IiwiZ2V0R2xvYmFsQXBwbGljYXRpb25Db21tYW5kIiwiZ2V0R2xvYmFsQXBwbGljYXRpb25Db21tYW5kcyIsImdldEd1aWxkIiwiZ2V0R3VpbGRzIiwiZ2V0R3VpbGRBcHBsaWNhdGlvbkNvbW1hbmQiLCJnZXRHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZHMiLCJnZXRHdWlsZFByZXZpZXciLCJnZXRHdWlsZFN0aWNrZXIiLCJnZXRHdWlsZFN0aWNrZXJzIiwiZ2V0R3VpbGRUZW1wbGF0ZSIsImdldEd1aWxkVGVtcGxhdGVzIiwiZ2V0R3VpbGRXZWJob29rcyIsImdldEludGVncmF0aW9ucyIsImludGVncmF0aW9uIiwidG9TdHJpbmciLCJnZXRJbnZpdGUiLCJpbnZpdGVDb2RlIiwiaW52aXRlIiwiZ2V0SW52aXRlcyIsImdldE1lc3NhZ2UiLCJnZXRNZXNzYWdlcyIsImdldFN0aWNrZXJQYWNrIiwic3RpY2tlclBhY2tJZCIsInN0aWNrZXJQYWNrIiwiZ2V0U3RpY2tlclBhY2tzIiwiZ2V0T3JpZ2luYWxJbnRlcmFjdGlvblJlc3BvbnNlIiwiZ2V0UGlubmVkTWVzc2FnZXMiLCJnZXRQcml2YXRlQXJjaGl2ZWRUaHJlYWRzIiwiZ2V0UHJpdmF0ZUpvaW5lZEFyY2hpdmVkVGhyZWFkcyIsImdldFBydW5lQ291bnQiLCJnZXRQdWJsaWNBcmNoaXZlZFRocmVhZHMiLCJnZXRSb2xlcyIsImdldFJvbGUiLCJnZXRTY2hlZHVsZWRFdmVudCIsImdldFNjaGVkdWxlZEV2ZW50cyIsImdldFNjaGVkdWxlZEV2ZW50VXNlcnMiLCJ1Iiwic25vd2ZsYWtlIiwiZ2V0U2Vzc2lvbkluZm8iLCJnZXRTdGFnZUluc3RhbmNlIiwiZ2V0T3duVm9pY2VTdGF0ZSIsInZvaWNlU3RhdGUiLCJnZXRVc2VyVm9pY2VTdGF0ZSIsImdldFN0aWNrZXIiLCJnZXRUaHJlYWRNZW1iZXIiLCJnZXRUaHJlYWRNZW1iZXJzIiwiZ2V0UmVhY3Rpb25zIiwicmVhY3Rpb24iLCJnZXRVc2VyIiwiZ2V0Q3VycmVudFVzZXIiLCJnZXRVc2VyQ29ubmVjdGlvbnMiLCJnZXRVc2VyQXBwbGljYXRpb25Sb2xlQ29ubmVjdGlvbiIsImFwcGxpY2F0aW9uSWQiLCJnZXRWYW5pdHlVcmwiLCJnZXRWb2ljZVJlZ2lvbnMiLCJnZXRXZWJob29rIiwiZ2V0V2ViaG9va01lc3NhZ2UiLCJnZXRXZWJob29rV2l0aFRva2VuIiwiZ2V0V2VsY29tZVNjcmVlbiIsImdldFdpZGdldCIsIndpZGdldCIsImdldFdpZGdldFNldHRpbmdzIiwicHVibGlzaE1lc3NhZ2UiLCJzZW5kTWVzc2FnZSIsInNlbmRGb2xsb3d1cE1lc3NhZ2UiLCJzdGFydFRocmVhZFdpdGhNZXNzYWdlIiwic3RhcnRUaHJlYWRXaXRob3V0TWVzc2FnZSIsInN5bmNHdWlsZFRlbXBsYXRlIiwidXBzZXJ0R2xvYmFsQXBwbGljYXRpb25Db21tYW5kcyIsImNvbW1hbmRzIiwidXBzZXJ0R3VpbGRBcHBsaWNhdGlvbkNvbW1hbmRzIiwiZWRpdEJvdE1lbWJlciIsImVkaXRNZW1iZXIiLCJnZXRNZW1iZXIiLCJnZXRDdXJyZW50TWVtYmVyIiwiZ2V0TWVtYmVycyIsInBydW5lTWVtYmVycyIsInNlYXJjaE1lbWJlcnMiLCJxdWVyeSIsImJ1bGtCYW5NZW1iZXJzIiwiYmFubmVkVXNlcnMiLCJ4IiwiZmFpbGVkVXNlcnMiLCJnZXRBcHBsaWNhdGlvbkFjdGl2aXR5SW5zdGFuY2UiLCJpbnN0YW5jZUlkIiwiYWRkUmVhY3Rpb24iLCJhZGRSZWFjdGlvbnMiLCJyZWFjdGlvbnMiLCJvcmRlcmVkIiwiYWRkUm9sZSIsImFkZFRocmVhZE1lbWJlciIsImFkZERtUmVjaXBpZW50IiwiYWRkR3VpbGRNZW1iZXIiLCJkZWxldGVBdXRvbW9kUnVsZSIsImRlbGV0ZUNoYW5uZWwiLCJkZWxldGVDaGFubmVsUGVybWlzc2lvbk92ZXJyaWRlIiwib3ZlcndyaXRlSWQiLCJkZWxldGVFbW9qaSIsImRlbGV0ZUFwcGxpY2F0aW9uRW1vamkiLCJkZWxldGVGb2xsb3d1cE1lc3NhZ2UiLCJkZWxldGVHbG9iYWxBcHBsaWNhdGlvbkNvbW1hbmQiLCJkZWxldGVHdWlsZCIsImRlbGV0ZUd1aWxkQXBwbGljYXRpb25Db21tYW5kIiwiZGVsZXRlR3VpbGRTdGlja2VyIiwiZGVsZXRlR3VpbGRUZW1wbGF0ZSIsImRlbGV0ZUludGVncmF0aW9uIiwiaW50ZWdyYXRpb25JZCIsImRlbGV0ZUludml0ZSIsImRlbGV0ZU1lc3NhZ2UiLCJkZWxldGVNZXNzYWdlcyIsIm1lc3NhZ2VJZHMiLCJkZWxldGVPcmlnaW5hbEludGVyYWN0aW9uUmVzcG9uc2UiLCJkZWxldGVPd25SZWFjdGlvbiIsImRlbGV0ZVJlYWN0aW9uc0FsbCIsImRlbGV0ZVJlYWN0aW9uc0Vtb2ppIiwiZGVsZXRlUm9sZSIsImRlbGV0ZVNjaGVkdWxlZEV2ZW50IiwiZGVsZXRlU3RhZ2VJbnN0YW5jZSIsImRlbGV0ZVVzZXJSZWFjdGlvbiIsImRlbGV0ZVdlYmhvb2siLCJkZWxldGVXZWJob29rTWVzc2FnZSIsImRlbGV0ZVdlYmhvb2tXaXRoVG9rZW4iLCJlZGl0Q2hhbm5lbFBlcm1pc3Npb25PdmVycmlkZXMiLCJlZGl0Q2hhbm5lbFBvc2l0aW9ucyIsImNoYW5uZWxQb3NpdGlvbnMiLCJlZGl0R3VpbGRNZmFMZXZlbCIsIm1mYUxldmVsIiwiZWRpdE93blZvaWNlU3RhdGUiLCJlZGl0VXNlclZvaWNlU3RhdGUiLCJlZGl0VXNlckFwcGxpY2F0aW9uUm9sZUNvbm5lY3Rpb24iLCJqb2luVGhyZWFkIiwibGVhdmVHdWlsZCIsImxlYXZlVGhyZWFkIiwicmVtb3ZlUm9sZSIsInJlbW92ZVRocmVhZE1lbWJlciIsInJlbW92ZURtUmVjaXBpZW50Iiwic2VuZEludGVyYWN0aW9uUmVzcG9uc2UiLCJpbnRlcmFjdGlvbklkIiwicGFyYW1zIiwicmVzcG9uc2UiLCJpbnRlcmFjdGlvbkNhbGxiYWNrUmVzcG9uc2UiLCJ0cmlnZ2VyVHlwaW5nSW5kaWNhdG9yIiwiYmFuTWVtYmVyIiwia2lja01lbWJlciIsInBpbk1lc3NhZ2UiLCJ1bmJhbk1lbWJlciIsInVucGluTWVzc2FnZSIsImdldEd1aWxkT25ib2FyZGluZyIsImd1aWxkT25ib2FyZGluZyIsImVkaXRHdWlsZE9uYm9hcmRpbmciLCJsaXN0RW50aXRsZW1lbnRzIiwiZW50aXRsZW1lbnQiLCJjcmVhdGVUZXN0RW50aXRsZW1lbnQiLCJkZWxldGVUZXN0RW50aXRsZW1lbnQiLCJlbnRpdGxlbWVudElkIiwibGlzdFNrdXMiLCJza3UiLCJnZXRTdWJzY3JpcHRpb24iLCJza3VJZCIsInN1YnNjcmlwdGlvbklkIiwic3Vic2NyaXB0aW9uIiwibGlzdFN1YnNjcmlwdGlvbnMiLCJzZW5kU291bmRib2FyZFNvdW5kIiwibGlzdERlZmF1bHRTb3VuZGJvYXJkU291bmRzIiwic291bmQiLCJzb3VuZGJvYXJkU291bmQiLCJsaXN0R3VpbGRTb3VuZGJvYXJkU291bmRzIiwiZ2V0R3VpbGRTb3VuZGJvYXJkU291bmQiLCJzb3VuZElkIiwiY3JlYXRlR3VpbGRTb3VuZGJvYXJkU291bmQiLCJtb2RpZnlHdWlsZFNvdW5kYm9hcmRTb3VuZCIsImRlbGV0ZUd1aWxkU291bmRib2FyZFNvdW5kIl0sIm1hcHBpbmdzIjoiOzs7OytCQXNIZ0JBOzs7ZUFBQUE7Ozt1QkFqQlU7QUFpQm5CLFNBQVNBLGlCQUNkQyxHQUEyQjtJQUUzQixPQUFPO1FBQ0xDLG1CQUFtQixPQUFPQyxTQUFTQyxTQUFTQztZQUMxQyxPQUFPSixJQUFJSyxZQUFZLENBQUNDLFdBQVcsQ0FBQ04sS0FBS08sSUFBQUEsZ0JBQVMsRUFBQyxNQUFNUCxJQUFJUSxJQUFJLENBQUNQLGlCQUFpQixDQUFDQyxTQUFTQyxTQUFTQztRQUN4RztRQUNBSyxlQUFlLE9BQU9QLFNBQVNDLFNBQVNDO1lBQ3RDLE9BQU9KLElBQUlLLFlBQVksQ0FBQ0ssT0FBTyxD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