@discordeno/bot 21.0.1-next.fca0b40 → 22.0.1-next.f274ec6

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 (1081) hide show
  1. package/dist/bot.d.ts.map +1 -0
  2. package/dist/bot.js +72 -0
  3. package/dist/commandOptionsParser.d.ts.map +1 -0
  4. package/dist/commandOptionsParser.js +43 -0
  5. package/dist/constants.d.ts.map +1 -0
  6. package/dist/constants.js +6 -0
  7. package/dist/desiredProperties.d.ts.map +1 -0
  8. package/dist/desiredProperties.js +631 -0
  9. package/dist/events.d.ts.map +1 -0
  10. package/dist/events.js +3 -0
  11. package/dist/handlers/channels/CHANNEL_CREATE.d.ts.map +1 -0
  12. package/dist/handlers/channels/CHANNEL_CREATE.js +10 -0
  13. package/dist/handlers/channels/CHANNEL_DELETE.d.ts.map +1 -0
  14. package/dist/handlers/channels/CHANNEL_DELETE.js +9 -0
  15. package/dist/handlers/channels/CHANNEL_PINS_UPDATE.d.ts.map +1 -0
  16. package/dist/handlers/channels/CHANNEL_PINS_UPDATE.js +11 -0
  17. package/dist/handlers/channels/CHANNEL_UPDATE.d.ts.map +1 -0
  18. package/dist/handlers/channels/CHANNEL_UPDATE.js +8 -0
  19. package/dist/handlers/channels/STAGE_INSTANCE_CREATE.d.ts.map +1 -0
  20. package/dist/handlers/channels/STAGE_INSTANCE_CREATE.js +12 -0
  21. package/dist/handlers/channels/STAGE_INSTANCE_DELETE.d.ts.map +1 -0
  22. package/dist/handlers/channels/STAGE_INSTANCE_DELETE.js +12 -0
  23. package/dist/handlers/channels/STAGE_INSTANCE_UPDATE.d.ts.map +1 -0
  24. package/dist/handlers/channels/STAGE_INSTANCE_UPDATE.js +12 -0
  25. package/dist/handlers/channels/THREAD_CREATE.d.ts.map +1 -0
  26. package/dist/handlers/channels/THREAD_CREATE.js +7 -0
  27. package/dist/handlers/channels/THREAD_DELETE.d.ts.map +1 -0
  28. package/dist/handlers/channels/THREAD_DELETE.js +7 -0
  29. package/dist/handlers/channels/THREAD_LIST_SYNC.d.ts.map +1 -0
  30. package/dist/handlers/channels/THREAD_LIST_SYNC.js +20 -0
  31. package/dist/handlers/channels/THREAD_MEMBERS_UPDATE.d.ts.map +1 -0
  32. package/dist/handlers/channels/THREAD_MEMBERS_UPDATE.js +14 -0
  33. package/dist/handlers/channels/THREAD_MEMBER_UPDATE.d.ts.map +1 -0
  34. package/dist/handlers/channels/THREAD_MEMBER_UPDATE.js +12 -0
  35. package/dist/handlers/channels/THREAD_UPDATE.d.ts.map +1 -0
  36. package/dist/handlers/channels/THREAD_UPDATE.js +7 -0
  37. package/dist/handlers/channels/index.d.ts.map +1 -0
  38. package/dist/handlers/channels/index.js +15 -0
  39. package/dist/handlers/emojis/GUILD_EMOJIS_UPDATE.d.ts.map +1 -0
  40. package/dist/handlers/emojis/GUILD_EMOJIS_UPDATE.js +14 -0
  41. package/dist/handlers/emojis/index.d.ts.map +1 -0
  42. package/dist/handlers/emojis/index.js +3 -0
  43. package/dist/handlers/entitlements/ENTITLEMENT_CREATE.d.ts.map +1 -0
  44. package/dist/handlers/entitlements/ENTITLEMENT_CREATE.js +7 -0
  45. package/dist/handlers/entitlements/ENTITLEMENT_DELETE.d.ts.map +1 -0
  46. package/dist/handlers/entitlements/ENTITLEMENT_DELETE.js +7 -0
  47. package/dist/handlers/entitlements/ENTITLEMENT_UPDATE.d.ts.map +1 -0
  48. package/dist/handlers/entitlements/ENTITLEMENT_UPDATE.js +7 -0
  49. package/dist/handlers/entitlements/index.d.ts.map +1 -0
  50. package/dist/handlers/entitlements/index.js +5 -0
  51. package/dist/handlers/guilds/GUILD_AUDIT_LOG_ENTRY_CREATE.d.ts.map +1 -0
  52. package/dist/handlers/guilds/GUILD_AUDIT_LOG_ENTRY_CREATE.js +8 -0
  53. package/dist/handlers/guilds/GUILD_BAN_ADD.d.ts.map +1 -0
  54. package/dist/handlers/guilds/GUILD_BAN_ADD.js +7 -0
  55. package/dist/handlers/guilds/GUILD_BAN_REMOVE.d.ts.map +1 -0
  56. package/dist/handlers/guilds/GUILD_BAN_REMOVE.js +7 -0
  57. package/dist/handlers/guilds/GUILD_CREATE.d.ts.map +1 -0
  58. package/dist/handlers/guilds/GUILD_CREATE.js +9 -0
  59. package/dist/handlers/guilds/GUILD_DELETE.d.ts.map +1 -0
  60. package/dist/handlers/guilds/GUILD_DELETE.js +10 -0
  61. package/dist/handlers/guilds/GUILD_INTEGRATIONS_UPDATE.d.ts.map +1 -0
  62. package/dist/handlers/guilds/GUILD_INTEGRATIONS_UPDATE.js +9 -0
  63. package/dist/handlers/guilds/GUILD_STICKERS_UPDATE.d.ts.map +1 -0
  64. package/dist/handlers/guilds/GUILD_STICKERS_UPDATE.js +13 -0
  65. package/dist/handlers/guilds/GUILD_UPDATE.d.ts.map +1 -0
  66. package/dist/handlers/guilds/GUILD_UPDATE.js +9 -0
  67. package/dist/handlers/guilds/automod/AUTO_MODERATION_ACTION_EXECUTION.d.ts.map +1 -0
  68. package/dist/handlers/guilds/automod/AUTO_MODERATION_ACTION_EXECUTION.js +7 -0
  69. package/dist/handlers/guilds/automod/AUTO_MODERATION_RULE_CREATE.d.ts.map +1 -0
  70. package/dist/handlers/guilds/automod/AUTO_MODERATION_RULE_CREATE.js +7 -0
  71. package/dist/handlers/guilds/automod/AUTO_MODERATION_RULE_DELETE.d.ts.map +1 -0
  72. package/dist/handlers/guilds/automod/AUTO_MODERATION_RULE_DELETE.js +7 -0
  73. package/dist/handlers/guilds/automod/AUTO_MODERATION_RULE_UPDATE.d.ts.map +1 -0
  74. package/dist/handlers/guilds/automod/AUTO_MODERATION_RULE_UPDATE.js +7 -0
  75. package/dist/handlers/guilds/automod/index.d.ts.map +1 -0
  76. package/dist/handlers/guilds/automod/index.js +6 -0
  77. package/dist/handlers/guilds/index.d.ts.map +1 -0
  78. package/dist/handlers/guilds/index.js +12 -0
  79. package/dist/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_CREATE.d.ts.map +1 -0
  80. package/dist/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_CREATE.js +7 -0
  81. package/dist/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_DELETE.d.ts.map +1 -0
  82. package/dist/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_DELETE.js +7 -0
  83. package/dist/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_UPDATE.d.ts.map +1 -0
  84. package/dist/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_UPDATE.js +7 -0
  85. package/dist/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_USER_ADD.d.ts.map +1 -0
  86. package/dist/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_USER_ADD.js +11 -0
  87. package/dist/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_USER_REMOVE.d.ts.map +1 -0
  88. package/dist/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_USER_REMOVE.js +11 -0
  89. package/dist/handlers/guilds/scheduledEvents/index.d.ts.map +1 -0
  90. package/dist/handlers/guilds/scheduledEvents/index.js +7 -0
  91. package/dist/handlers/index.d.ts.map +1 -0
  92. package/dist/handlers/index.js +18 -0
  93. package/dist/handlers/integrations/INTEGRATION_CREATE.d.ts.map +1 -0
  94. package/dist/handlers/integrations/INTEGRATION_CREATE.js +6 -0
  95. package/dist/handlers/integrations/INTEGRATION_DELETE.d.ts.map +1 -0
  96. package/dist/handlers/integrations/INTEGRATION_DELETE.js +11 -0
  97. package/dist/handlers/integrations/INTEGRATION_UPDATE.d.ts.map +1 -0
  98. package/dist/handlers/integrations/INTEGRATION_UPDATE.js +6 -0
  99. package/dist/handlers/integrations/index.d.ts.map +1 -0
  100. package/dist/handlers/integrations/index.js +5 -0
  101. package/dist/handlers/interactions/APPLICATION_COMMAND_PERMISSIONS_UPDATE.d.ts.map +1 -0
  102. package/dist/handlers/interactions/APPLICATION_COMMAND_PERMISSIONS_UPDATE.js +7 -0
  103. package/dist/handlers/interactions/INTERACTION_CREATE.d.ts.map +1 -0
  104. package/dist/handlers/interactions/INTERACTION_CREATE.js +9 -0
  105. package/dist/handlers/interactions/index.d.ts.map +1 -0
  106. package/dist/handlers/interactions/index.js +4 -0
  107. package/dist/handlers/invites/INVITE_CREATE.d.ts.map +1 -0
  108. package/dist/handlers/invites/INVITE_CREATE.js +9 -0
  109. package/dist/handlers/invites/INVITE_DELETE.d.ts.map +1 -0
  110. package/dist/handlers/invites/INVITE_DELETE.js +11 -0
  111. package/dist/handlers/invites/index.d.ts.map +1 -0
  112. package/dist/handlers/invites/index.js +4 -0
  113. package/dist/handlers/members/GUILD_MEMBERS_CHUNK.d.ts.map +1 -0
  114. package/dist/handlers/members/GUILD_MEMBERS_CHUNK.js +20 -0
  115. package/dist/handlers/members/GUILD_MEMBER_ADD.d.ts.map +1 -0
  116. package/dist/handlers/members/GUILD_MEMBER_ADD.js +13 -0
  117. package/dist/handlers/members/GUILD_MEMBER_REMOVE.d.ts.map +1 -0
  118. package/dist/handlers/members/GUILD_MEMBER_REMOVE.js +9 -0
  119. package/dist/handlers/members/GUILD_MEMBER_UPDATE.d.ts.map +1 -0
  120. package/dist/handlers/members/GUILD_MEMBER_UPDATE.js +12 -0
  121. package/dist/handlers/members/index.d.ts.map +1 -0
  122. package/dist/handlers/members/index.js +6 -0
  123. package/dist/handlers/messages/MESSAGE_CREATE.d.ts.map +1 -0
  124. package/dist/handlers/messages/MESSAGE_CREATE.js +9 -0
  125. package/dist/handlers/messages/MESSAGE_DELETE.d.ts.map +1 -0
  126. package/dist/handlers/messages/MESSAGE_DELETE.js +11 -0
  127. package/dist/handlers/messages/MESSAGE_DELETE_BULK.d.ts.map +1 -0
  128. package/dist/handlers/messages/MESSAGE_DELETE_BULK.js +13 -0
  129. package/dist/handlers/messages/MESSAGE_REACTION_ADD.d.ts.map +1 -0
  130. package/dist/handlers/messages/MESSAGE_REACTION_ADD.js +24 -0
  131. package/dist/handlers/messages/MESSAGE_REACTION_REMOVE.d.ts.map +1 -0
  132. package/dist/handlers/messages/MESSAGE_REACTION_REMOVE.js +15 -0
  133. package/dist/handlers/messages/MESSAGE_REACTION_REMOVE_ALL.d.ts.map +1 -0
  134. package/dist/handlers/messages/MESSAGE_REACTION_REMOVE_ALL.js +11 -0
  135. package/dist/handlers/messages/MESSAGE_REACTION_REMOVE_EMOJI.d.ts.map +1 -0
  136. package/dist/handlers/messages/MESSAGE_REACTION_REMOVE_EMOJI.js +13 -0
  137. package/dist/handlers/messages/MESSAGE_UPDATE.d.ts.map +1 -0
  138. package/dist/handlers/messages/MESSAGE_UPDATE.js +10 -0
  139. package/dist/handlers/messages/index.d.ts.map +1 -0
  140. package/dist/handlers/messages/index.js +10 -0
  141. package/dist/handlers/misc/PRESENCE_UPDATE.d.ts.map +1 -0
  142. package/dist/handlers/misc/PRESENCE_UPDATE.js +6 -0
  143. package/dist/handlers/misc/READY.d.ts.map +1 -0
  144. package/dist/handlers/misc/READY.js +18 -0
  145. package/dist/handlers/misc/TYPING_START.d.ts.map +1 -0
  146. package/dist/handlers/misc/TYPING_START.js +18 -0
  147. package/dist/handlers/misc/USER_UPDATE.d.ts.map +1 -0
  148. package/dist/handlers/misc/USER_UPDATE.js +7 -0
  149. package/dist/handlers/misc/index.d.ts.map +1 -0
  150. package/dist/handlers/misc/index.js +6 -0
  151. package/dist/handlers/poll/MESSAGE_POLL_VOTE_ADD.d.ts.map +1 -0
  152. package/dist/handlers/poll/MESSAGE_POLL_VOTE_ADD.js +13 -0
  153. package/dist/handlers/poll/MESSAGE_POLL_VOTE_REMOVE.d.ts.map +1 -0
  154. package/dist/handlers/poll/MESSAGE_POLL_VOTE_REMOVE.js +13 -0
  155. package/dist/handlers/poll/index.d.ts.map +1 -0
  156. package/dist/handlers/poll/index.js +4 -0
  157. package/dist/handlers/roles/GUILD_ROLE_CREATE.d.ts.map +1 -0
  158. package/dist/handlers/roles/GUILD_ROLE_CREATE.js +9 -0
  159. package/dist/handlers/roles/GUILD_ROLE_DELETE.d.ts.map +1 -0
  160. package/dist/handlers/roles/GUILD_ROLE_DELETE.js +10 -0
  161. package/dist/handlers/roles/GUILD_ROLE_UPDATE.d.ts.map +1 -0
  162. package/dist/handlers/roles/GUILD_ROLE_UPDATE.js +9 -0
  163. package/dist/handlers/roles/index.d.ts.map +1 -0
  164. package/dist/handlers/roles/index.js +5 -0
  165. package/dist/handlers/soundboard/GUILD_SOUNDBOARD_SOUNDS_UPDATE.d.ts.map +1 -0
  166. package/dist/handlers/soundboard/GUILD_SOUNDBOARD_SOUNDS_UPDATE.js +10 -0
  167. package/dist/handlers/soundboard/GUILD_SOUNDBOARD_SOUND_CREATE.d.ts.map +1 -0
  168. package/dist/handlers/soundboard/GUILD_SOUNDBOARD_SOUND_CREATE.js +7 -0
  169. package/dist/handlers/soundboard/GUILD_SOUNDBOARD_SOUND_DELETE.d.ts.map +1 -0
  170. package/dist/handlers/soundboard/GUILD_SOUNDBOARD_SOUND_DELETE.js +10 -0
  171. package/dist/handlers/soundboard/GUILD_SOUNDBOARD_SOUND_UPDATE.d.ts.map +1 -0
  172. package/dist/handlers/soundboard/GUILD_SOUNDBOARD_SOUND_UPDATE.js +7 -0
  173. package/dist/handlers/soundboard/SOUNDBOARD_SOUNDS.d.ts.map +1 -0
  174. package/dist/handlers/soundboard/SOUNDBOARD_SOUNDS.js +10 -0
  175. package/dist/handlers/soundboard/index.d.ts.map +1 -0
  176. package/dist/handlers/soundboard/index.js +7 -0
  177. package/dist/handlers/subscriptions/SUBSCRIPTION_CREATE.d.ts.map +1 -0
  178. package/dist/handlers/subscriptions/SUBSCRIPTION_CREATE.js +7 -0
  179. package/dist/handlers/subscriptions/SUBSCRIPTION_DELETE.d.ts.map +1 -0
  180. package/dist/handlers/subscriptions/SUBSCRIPTION_DELETE.js +7 -0
  181. package/dist/handlers/subscriptions/SUBSCRIPTION_UPDATE.d.ts.map +1 -0
  182. package/dist/handlers/subscriptions/SUBSCRIPTION_UPDATE.js +7 -0
  183. package/dist/handlers/subscriptions/index.d.ts.map +1 -0
  184. package/dist/handlers/subscriptions/index.js +5 -0
  185. package/dist/handlers/voice/VOICE_CHANNEL_EFFECT_SEND.d.ts.map +1 -0
  186. package/dist/handlers/voice/VOICE_CHANNEL_EFFECT_SEND.js +16 -0
  187. package/dist/handlers/voice/VOICE_SERVER_UPDATE.d.ts.map +1 -0
  188. package/dist/handlers/voice/VOICE_SERVER_UPDATE.js +11 -0
  189. package/dist/handlers/voice/VOICE_STATE_UPDATE.d.ts.map +1 -0
  190. package/dist/handlers/voice/VOICE_STATE_UPDATE.js +12 -0
  191. package/dist/handlers/voice/index.d.ts.map +1 -0
  192. package/dist/handlers/voice/index.js +5 -0
  193. package/dist/handlers/webhooks/WEBHOOKS_UPDATE.d.ts.map +1 -0
  194. package/dist/handlers/webhooks/WEBHOOKS_UPDATE.js +10 -0
  195. package/dist/handlers/webhooks/index.d.ts.map +1 -0
  196. package/dist/handlers/webhooks/index.js +3 -0
  197. package/dist/handlers.d.ts.map +1 -0
  198. package/dist/handlers.js +81 -0
  199. package/dist/helpers.d.ts +244 -0
  200. package/dist/helpers.d.ts.map +1 -0
  201. package/dist/helpers.js +715 -0
  202. package/dist/index.d.ts.map +1 -0
  203. package/dist/index.js +16 -0
  204. package/dist/transformers/activity.d.ts.map +1 -0
  205. package/dist/transformers/activity.js +53 -0
  206. package/dist/transformers/application.d.ts +5 -0
  207. package/dist/transformers/application.d.ts.map +1 -0
  208. package/dist/transformers/application.js +59 -0
  209. package/dist/transformers/applicationCommand.d.ts.map +1 -0
  210. package/dist/transformers/applicationCommand.js +19 -0
  211. package/dist/transformers/applicationCommandOption.d.ts.map +1 -0
  212. package/dist/transformers/applicationCommandOption.js +21 -0
  213. package/dist/transformers/applicationCommandOptionChoice.d.ts.map +1 -0
  214. package/dist/transformers/applicationCommandOptionChoice.js +10 -0
  215. package/dist/transformers/applicationCommandPermission.d.ts.map +1 -0
  216. package/dist/transformers/applicationCommandPermission.js +15 -0
  217. package/dist/transformers/attachment.d.ts.map +1 -0
  218. package/dist/transformers/attachment.js +21 -0
  219. package/dist/transformers/auditLogEntry.d.ts.map +1 -0
  220. package/dist/transformers/auditLogEntry.js +27 -0
  221. package/dist/transformers/automodActionExecution.d.ts.map +1 -0
  222. package/dist/transformers/automodActionExecution.js +25 -0
  223. package/dist/transformers/automodRule.d.ts.map +1 -0
  224. package/dist/transformers/automodRule.js +31 -0
  225. package/dist/transformers/avatarDecorationData.d.ts.map +1 -0
  226. package/dist/transformers/avatarDecorationData.js +10 -0
  227. package/dist/transformers/channel.d.ts +10 -0
  228. package/dist/transformers/channel.d.ts.map +1 -0
  229. package/dist/transformers/channel.js +126 -0
  230. package/dist/transformers/component.d.ts.map +1 -0
  231. package/dist/transformers/component.js +196 -0
  232. package/dist/transformers/embed.d.ts.map +1 -0
  233. package/dist/transformers/embed.js +44 -0
  234. package/dist/transformers/emoji.d.ts.map +1 -0
  235. package/dist/transformers/emoji.js +36 -0
  236. package/dist/transformers/entitlement.d.ts.map +1 -0
  237. package/dist/transformers/entitlement.js +17 -0
  238. package/dist/transformers/gatewayBot.d.ts.map +1 -0
  239. package/dist/transformers/gatewayBot.js +15 -0
  240. package/dist/transformers/guild.d.ts +7 -0
  241. package/dist/transformers/guild.d.ts.map +1 -0
  242. package/dist/transformers/guild.js +147 -0
  243. package/dist/transformers/incidentsData.d.ts.map +1 -0
  244. package/dist/transformers/incidentsData.js +11 -0
  245. package/dist/transformers/index.d.ts.map +1 -0
  246. package/dist/transformers/index.js +52 -0
  247. package/dist/transformers/integration.d.ts.map +1 -0
  248. package/dist/transformers/integration.js +34 -0
  249. package/dist/transformers/interaction.d.ts +19 -0
  250. package/dist/transformers/interaction.d.ts.map +1 -0
  251. package/dist/transformers/interaction.js +258 -0
  252. package/dist/transformers/invite.d.ts +6 -0
  253. package/dist/transformers/invite.d.ts.map +1 -0
  254. package/dist/transformers/invite.js +41 -0
  255. package/dist/transformers/lobby.d.ts.map +1 -0
  256. package/dist/transformers/lobby.js +21 -0
  257. package/dist/transformers/member.d.ts +9 -0
  258. package/dist/transformers/member.d.ts.map +1 -0
  259. package/dist/transformers/member.js +54 -0
  260. package/dist/transformers/message.d.ts +15 -0
  261. package/dist/transformers/message.d.ts.map +1 -0
  262. package/dist/transformers/message.js +287 -0
  263. package/dist/transformers/onboarding.d.ts.map +1 -0
  264. package/dist/transformers/onboarding.js +35 -0
  265. package/dist/transformers/poll.d.ts.map +1 -0
  266. package/dist/transformers/poll.js +33 -0
  267. package/dist/transformers/presence.d.ts.map +1 -0
  268. package/dist/transformers/presence.js +14 -0
  269. package/dist/transformers/reverse/activity.d.ts.map +1 -0
  270. package/dist/transformers/reverse/activity.js +43 -0
  271. package/dist/transformers/reverse/allowedMentions.d.ts.map +1 -0
  272. package/dist/transformers/reverse/allowedMentions.js +10 -0
  273. package/dist/transformers/reverse/application.d.ts.map +1 -0
  274. package/dist/transformers/reverse/application.js +28 -0
  275. package/dist/transformers/reverse/applicationCommand.d.ts.map +1 -0
  276. package/dist/transformers/reverse/applicationCommand.js +18 -0
  277. package/dist/transformers/reverse/applicationCommandOption.d.ts.map +1 -0
  278. package/dist/transformers/reverse/applicationCommandOption.js +20 -0
  279. package/dist/transformers/reverse/applicationCommandOptionChoice.d.ts.map +1 -0
  280. package/dist/transformers/reverse/applicationCommandOptionChoice.js +9 -0
  281. package/dist/transformers/reverse/applicationCommandPermission.d.ts.map +1 -0
  282. package/dist/transformers/reverse/applicationCommandPermission.js +14 -0
  283. package/dist/transformers/reverse/attachment.d.ts.map +1 -0
  284. package/dist/transformers/reverse/attachment.js +20 -0
  285. package/dist/transformers/reverse/auditLogEntry.d.ts.map +1 -0
  286. package/dist/transformers/reverse/auditLogEntry.js +27 -0
  287. package/dist/transformers/reverse/component.d.ts.map +1 -0
  288. package/dist/transformers/reverse/component.js +162 -0
  289. package/dist/transformers/reverse/embed.d.ts.map +1 -0
  290. package/dist/transformers/reverse/embed.js +43 -0
  291. package/dist/transformers/reverse/emoji.d.ts.map +1 -0
  292. package/dist/transformers/reverse/emoji.js +14 -0
  293. package/dist/transformers/reverse/gatewayBot.d.ts.map +1 -0
  294. package/dist/transformers/reverse/gatewayBot.js +14 -0
  295. package/dist/transformers/reverse/index.d.ts.map +1 -0
  296. package/dist/transformers/reverse/index.js +19 -0
  297. package/dist/transformers/reverse/member.d.ts.map +1 -0
  298. package/dist/transformers/reverse/member.js +43 -0
  299. package/dist/transformers/reverse/presence.d.ts.map +1 -0
  300. package/dist/transformers/reverse/presence.js +23 -0
  301. package/dist/transformers/reverse/team.d.ts.map +1 -0
  302. package/dist/transformers/reverse/team.js +18 -0
  303. package/dist/transformers/reverse/widgetSettings.d.ts.map +1 -0
  304. package/dist/transformers/reverse/widgetSettings.js +8 -0
  305. package/dist/transformers/role.d.ts +8 -0
  306. package/dist/transformers/role.d.ts.map +1 -0
  307. package/dist/transformers/role.js +69 -0
  308. package/dist/transformers/scheduledEvent.d.ts.map +1 -0
  309. package/dist/transformers/scheduledEvent.js +40 -0
  310. package/dist/transformers/sku.d.ts.map +1 -0
  311. package/dist/transformers/sku.js +13 -0
  312. package/dist/transformers/soundboardSound.d.ts.map +1 -0
  313. package/dist/transformers/soundboardSound.js +15 -0
  314. package/dist/transformers/stageInstance.d.ts.map +1 -0
  315. package/dist/transformers/stageInstance.js +12 -0
  316. package/dist/transformers/stageInviteInstance.d.ts +6 -0
  317. package/dist/transformers/stageInviteInstance.d.ts.map +1 -0
  318. package/dist/transformers/stageInviteInstance.js +19 -0
  319. package/dist/transformers/sticker.d.ts.map +1 -0
  320. package/dist/transformers/sticker.js +30 -0
  321. package/dist/transformers/subscription.d.ts.map +1 -0
  322. package/dist/transformers/subscription.js +17 -0
  323. package/dist/transformers/team.d.ts.map +1 -0
  324. package/dist/transformers/team.js +19 -0
  325. package/dist/transformers/template.d.ts.map +1 -0
  326. package/dist/transformers/template.js +18 -0
  327. package/dist/transformers/threadMember.d.ts.map +1 -0
  328. package/dist/transformers/threadMember.js +21 -0
  329. package/dist/transformers/toggles/Permissions.d.ts.map +1 -0
  330. package/dist/transformers/toggles/Permissions.js +18 -0
  331. package/dist/transformers/toggles/ToggleBitfield.d.ts.map +1 -0
  332. package/dist/transformers/toggles/ToggleBitfield.js +42 -0
  333. package/dist/transformers/toggles/channel.d.ts.map +1 -0
  334. package/dist/transformers/toggles/channel.js +55 -0
  335. package/dist/transformers/toggles/emoji.d.ts.map +1 -0
  336. package/dist/transformers/toggles/emoji.js +45 -0
  337. package/dist/transformers/toggles/guild.d.ts.map +1 -0
  338. package/dist/transformers/toggles/guild.js +256 -0
  339. package/dist/transformers/toggles/index.d.ts.map +1 -0
  340. package/dist/transformers/toggles/index.js +11 -0
  341. package/dist/transformers/toggles/member.d.ts.map +1 -0
  342. package/dist/transformers/toggles/member.js +114 -0
  343. package/dist/transformers/toggles/role.d.ts.map +1 -0
  344. package/dist/transformers/toggles/role.js +55 -0
  345. package/dist/transformers/toggles/user.d.ts.map +1 -0
  346. package/dist/transformers/toggles/user.js +45 -0
  347. package/dist/transformers/toggles/voice.d.ts.map +1 -0
  348. package/dist/transformers/toggles/voice.js +60 -0
  349. package/dist/transformers/types.d.ts.map +1 -0
  350. package/dist/transformers/types.js +3 -0
  351. package/dist/transformers/user.d.ts.map +1 -0
  352. package/dist/transformers/user.js +68 -0
  353. package/dist/transformers/voiceRegion.d.ts.map +1 -0
  354. package/dist/transformers/voiceRegion.js +12 -0
  355. package/dist/transformers/voiceState.d.ts +6 -0
  356. package/dist/transformers/voiceState.d.ts.map +1 -0
  357. package/dist/transformers/voiceState.js +16 -0
  358. package/dist/transformers/webhook.d.ts.map +1 -0
  359. package/dist/transformers/webhook.js +27 -0
  360. package/dist/transformers/welcomeScreen.d.ts.map +1 -0
  361. package/dist/transformers/welcomeScreen.js +14 -0
  362. package/dist/transformers/widget.d.ts.map +1 -0
  363. package/dist/transformers/widget.js +15 -0
  364. package/dist/transformers/widgetSettings.d.ts.map +1 -0
  365. package/dist/transformers/widgetSettings.js +9 -0
  366. package/dist/transformers.d.ts +237 -0
  367. package/dist/transformers.d.ts.map +1 -0
  368. package/dist/transformers.js +178 -0
  369. package/package.json +14 -21
  370. package/dist/cjs/bot.cjs +0 -82
  371. package/dist/cjs/commandOptionsParser.cjs +0 -53
  372. package/dist/cjs/constants.cjs +0 -30
  373. package/dist/cjs/desiredProperties.cjs +0 -649
  374. package/dist/cjs/events.cjs +0 -6
  375. package/dist/cjs/handlers/channels/CHANNEL_CREATE.cjs +0 -21
  376. package/dist/cjs/handlers/channels/CHANNEL_DELETE.cjs +0 -20
  377. package/dist/cjs/handlers/channels/CHANNEL_PINS_UPDATE.cjs +0 -21
  378. package/dist/cjs/handlers/channels/CHANNEL_UPDATE.cjs +0 -20
  379. package/dist/cjs/handlers/channels/STAGE_INSTANCE_CREATE.cjs +0 -22
  380. package/dist/cjs/handlers/channels/STAGE_INSTANCE_DELETE.cjs +0 -22
  381. package/dist/cjs/handlers/channels/STAGE_INSTANCE_UPDATE.cjs +0 -22
  382. package/dist/cjs/handlers/channels/THREAD_CREATE.cjs +0 -19
  383. package/dist/cjs/handlers/channels/THREAD_DELETE.cjs +0 -19
  384. package/dist/cjs/handlers/channels/THREAD_LIST_SYNC.cjs +0 -31
  385. package/dist/cjs/handlers/channels/THREAD_MEMBERS_UPDATE.cjs +0 -24
  386. package/dist/cjs/handlers/channels/THREAD_MEMBER_UPDATE.cjs +0 -22
  387. package/dist/cjs/handlers/channels/THREAD_UPDATE.cjs +0 -19
  388. package/dist/cjs/handlers/channels/index.cjs +0 -32
  389. package/dist/cjs/handlers/emojis/GUILD_EMOJIS_UPDATE.cjs +0 -24
  390. package/dist/cjs/handlers/emojis/index.cjs +0 -20
  391. package/dist/cjs/handlers/entitlements/ENTITLEMENT_CREATE.cjs +0 -17
  392. package/dist/cjs/handlers/entitlements/ENTITLEMENT_DELETE.cjs +0 -17
  393. package/dist/cjs/handlers/entitlements/ENTITLEMENT_UPDATE.cjs +0 -17
  394. package/dist/cjs/handlers/entitlements/index.cjs +0 -22
  395. package/dist/cjs/handlers/guilds/GUILD_AUDIT_LOG_ENTRY_CREATE.cjs +0 -18
  396. package/dist/cjs/handlers/guilds/GUILD_BAN_ADD.cjs +0 -17
  397. package/dist/cjs/handlers/guilds/GUILD_BAN_REMOVE.cjs +0 -17
  398. package/dist/cjs/handlers/guilds/GUILD_CREATE.cjs +0 -20
  399. package/dist/cjs/handlers/guilds/GUILD_DELETE.cjs +0 -20
  400. package/dist/cjs/handlers/guilds/GUILD_INTEGRATIONS_UPDATE.cjs +0 -19
  401. package/dist/cjs/handlers/guilds/GUILD_STICKERS_UPDATE.cjs +0 -23
  402. package/dist/cjs/handlers/guilds/GUILD_UPDATE.cjs +0 -20
  403. package/dist/cjs/handlers/guilds/automod/AUTO_MODERATION_ACTION_EXECUTION.cjs +0 -17
  404. package/dist/cjs/handlers/guilds/automod/AUTO_MODERATION_RULE_CREATE.cjs +0 -17
  405. package/dist/cjs/handlers/guilds/automod/AUTO_MODERATION_RULE_DELETE.cjs +0 -17
  406. package/dist/cjs/handlers/guilds/automod/AUTO_MODERATION_RULE_UPDATE.cjs +0 -17
  407. package/dist/cjs/handlers/guilds/automod/index.cjs +0 -23
  408. package/dist/cjs/handlers/guilds/index.cjs +0 -29
  409. package/dist/cjs/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_CREATE.cjs +0 -17
  410. package/dist/cjs/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_DELETE.cjs +0 -17
  411. package/dist/cjs/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_UPDATE.cjs +0 -17
  412. package/dist/cjs/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_USER_ADD.cjs +0 -21
  413. package/dist/cjs/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_USER_REMOVE.cjs +0 -21
  414. package/dist/cjs/handlers/guilds/scheduledEvents/index.cjs +0 -24
  415. package/dist/cjs/handlers/index.cjs +0 -35
  416. package/dist/cjs/handlers/integrations/INTEGRATION_CREATE.cjs +0 -16
  417. package/dist/cjs/handlers/integrations/INTEGRATION_DELETE.cjs +0 -21
  418. package/dist/cjs/handlers/integrations/INTEGRATION_UPDATE.cjs +0 -16
  419. package/dist/cjs/handlers/integrations/index.cjs +0 -22
  420. package/dist/cjs/handlers/interactions/APPLICATION_COMMAND_PERMISSIONS_UPDATE.cjs +0 -17
  421. package/dist/cjs/handlers/interactions/INTERACTION_CREATE.cjs +0 -19
  422. package/dist/cjs/handlers/interactions/index.cjs +0 -21
  423. package/dist/cjs/handlers/invites/INVITE_CREATE.cjs +0 -19
  424. package/dist/cjs/handlers/invites/INVITE_DELETE.cjs +0 -21
  425. package/dist/cjs/handlers/invites/index.cjs +0 -21
  426. package/dist/cjs/handlers/members/GUILD_MEMBERS_CHUNK.cjs +0 -30
  427. package/dist/cjs/handlers/members/GUILD_MEMBER_ADD.cjs +0 -20
  428. package/dist/cjs/handlers/members/GUILD_MEMBER_REMOVE.cjs +0 -19
  429. package/dist/cjs/handlers/members/GUILD_MEMBER_UPDATE.cjs +0 -19
  430. package/dist/cjs/handlers/members/index.cjs +0 -23
  431. package/dist/cjs/handlers/messages/MESSAGE_CREATE.cjs +0 -20
  432. package/dist/cjs/handlers/messages/MESSAGE_DELETE.cjs +0 -21
  433. package/dist/cjs/handlers/messages/MESSAGE_DELETE_BULK.cjs +0 -23
  434. package/dist/cjs/handlers/messages/MESSAGE_REACTION_ADD.cjs +0 -31
  435. package/dist/cjs/handlers/messages/MESSAGE_REACTION_REMOVE.cjs +0 -25
  436. package/dist/cjs/handlers/messages/MESSAGE_REACTION_REMOVE_ALL.cjs +0 -21
  437. package/dist/cjs/handlers/messages/MESSAGE_REACTION_REMOVE_EMOJI.cjs +0 -23
  438. package/dist/cjs/handlers/messages/MESSAGE_UPDATE.cjs +0 -21
  439. package/dist/cjs/handlers/messages/index.cjs +0 -27
  440. package/dist/cjs/handlers/misc/PRESENCE_UPDATE.cjs +0 -16
  441. package/dist/cjs/handlers/misc/READY.cjs +0 -28
  442. package/dist/cjs/handlers/misc/TYPING_START.cjs +0 -25
  443. package/dist/cjs/handlers/misc/USER_UPDATE.cjs +0 -17
  444. package/dist/cjs/handlers/misc/index.cjs +0 -23
  445. package/dist/cjs/handlers/poll/MESSAGE_POLL_VOTE_ADD.cjs +0 -23
  446. package/dist/cjs/handlers/poll/MESSAGE_POLL_VOTE_REMOVE.cjs +0 -23
  447. package/dist/cjs/handlers/poll/index.cjs +0 -21
  448. package/dist/cjs/handlers/roles/GUILD_ROLE_CREATE.cjs +0 -20
  449. package/dist/cjs/handlers/roles/GUILD_ROLE_DELETE.cjs +0 -20
  450. package/dist/cjs/handlers/roles/GUILD_ROLE_UPDATE.cjs +0 -20
  451. package/dist/cjs/handlers/roles/index.cjs +0 -22
  452. package/dist/cjs/handlers/soundboard/GUILD_SOUNDBOARD_SOUNDS_UPDATE.cjs +0 -20
  453. package/dist/cjs/handlers/soundboard/GUILD_SOUNDBOARD_SOUND_CREATE.cjs +0 -17
  454. package/dist/cjs/handlers/soundboard/GUILD_SOUNDBOARD_SOUND_DELETE.cjs +0 -20
  455. package/dist/cjs/handlers/soundboard/GUILD_SOUNDBOARD_SOUND_UPDATE.cjs +0 -17
  456. package/dist/cjs/handlers/soundboard/SOUNDBOARD_SOUNDS.cjs +0 -20
  457. package/dist/cjs/handlers/soundboard/index.cjs +0 -24
  458. package/dist/cjs/handlers/subscriptions/SUBSCRIPTION_CREATE.cjs +0 -17
  459. package/dist/cjs/handlers/subscriptions/SUBSCRIPTION_DELETE.cjs +0 -17
  460. package/dist/cjs/handlers/subscriptions/SUBSCRIPTION_UPDATE.cjs +0 -17
  461. package/dist/cjs/handlers/subscriptions/index.cjs +0 -22
  462. package/dist/cjs/handlers/voice/VOICE_CHANNEL_EFFECT_SEND.cjs +0 -26
  463. package/dist/cjs/handlers/voice/VOICE_SERVER_UPDATE.cjs +0 -21
  464. package/dist/cjs/handlers/voice/VOICE_STATE_UPDATE.cjs +0 -23
  465. package/dist/cjs/handlers/voice/index.cjs +0 -22
  466. package/dist/cjs/handlers/webhooks/WEBHOOKS_UPDATE.cjs +0 -20
  467. package/dist/cjs/handlers/webhooks/index.cjs +0 -20
  468. package/dist/cjs/handlers.cjs +0 -132
  469. package/dist/cjs/helpers.cjs +0 -794
  470. package/dist/cjs/index.cjs +0 -33
  471. package/dist/cjs/transformers/activity.cjs +0 -74
  472. package/dist/cjs/transformers/application.cjs +0 -70
  473. package/dist/cjs/transformers/applicationCommand.cjs +0 -29
  474. package/dist/cjs/transformers/applicationCommandOption.cjs +0 -31
  475. package/dist/cjs/transformers/applicationCommandOptionChoice.cjs +0 -20
  476. package/dist/cjs/transformers/applicationCommandPermission.cjs +0 -25
  477. package/dist/cjs/transformers/attachment.cjs +0 -31
  478. package/dist/cjs/transformers/auditLogEntry.cjs +0 -37
  479. package/dist/cjs/transformers/automodActionExecution.cjs +0 -35
  480. package/dist/cjs/transformers/automodRule.cjs +0 -41
  481. package/dist/cjs/transformers/avatarDecorationData.cjs +0 -20
  482. package/dist/cjs/transformers/channel.cjs +0 -151
  483. package/dist/cjs/transformers/component.cjs +0 -217
  484. package/dist/cjs/transformers/embed.cjs +0 -54
  485. package/dist/cjs/transformers/emoji.cjs +0 -57
  486. package/dist/cjs/transformers/entitlement.cjs +0 -27
  487. package/dist/cjs/transformers/gatewayBot.cjs +0 -25
  488. package/dist/cjs/transformers/guild.cjs +0 -165
  489. package/dist/cjs/transformers/incidentsData.cjs +0 -21
  490. package/dist/cjs/transformers/index.cjs +0 -68
  491. package/dist/cjs/transformers/integration.cjs +0 -44
  492. package/dist/cjs/transformers/interaction.cjs +0 -290
  493. package/dist/cjs/transformers/invite.cjs +0 -52
  494. package/dist/cjs/transformers/lobby.cjs +0 -41
  495. package/dist/cjs/transformers/member.cjs +0 -69
  496. package/dist/cjs/transformers/message.cjs +0 -315
  497. package/dist/cjs/transformers/onboarding.cjs +0 -56
  498. package/dist/cjs/transformers/poll.cjs +0 -51
  499. package/dist/cjs/transformers/presence.cjs +0 -24
  500. package/dist/cjs/transformers/reverse/activity.cjs +0 -53
  501. package/dist/cjs/transformers/reverse/allowedMentions.cjs +0 -20
  502. package/dist/cjs/transformers/reverse/application.cjs +0 -38
  503. package/dist/cjs/transformers/reverse/applicationCommand.cjs +0 -28
  504. package/dist/cjs/transformers/reverse/applicationCommandOption.cjs +0 -30
  505. package/dist/cjs/transformers/reverse/applicationCommandOptionChoice.cjs +0 -19
  506. package/dist/cjs/transformers/reverse/applicationCommandPermission.cjs +0 -24
  507. package/dist/cjs/transformers/reverse/attachment.cjs +0 -30
  508. package/dist/cjs/transformers/reverse/auditLogEntry.cjs +0 -37
  509. package/dist/cjs/transformers/reverse/component.cjs +0 -183
  510. package/dist/cjs/transformers/reverse/embed.cjs +0 -53
  511. package/dist/cjs/transformers/reverse/emoji.cjs +0 -24
  512. package/dist/cjs/transformers/reverse/gatewayBot.cjs +0 -24
  513. package/dist/cjs/transformers/reverse/index.cjs +0 -36
  514. package/dist/cjs/transformers/reverse/member.cjs +0 -61
  515. package/dist/cjs/transformers/reverse/presence.cjs +0 -41
  516. package/dist/cjs/transformers/reverse/team.cjs +0 -28
  517. package/dist/cjs/transformers/reverse/widgetSettings.cjs +0 -18
  518. package/dist/cjs/transformers/role.cjs +0 -90
  519. package/dist/cjs/transformers/scheduledEvent.cjs +0 -58
  520. package/dist/cjs/transformers/sku.cjs +0 -23
  521. package/dist/cjs/transformers/soundboardSound.cjs +0 -25
  522. package/dist/cjs/transformers/stageInstance.cjs +0 -22
  523. package/dist/cjs/transformers/stageInviteInstance.cjs +0 -23
  524. package/dist/cjs/transformers/sticker.cjs +0 -48
  525. package/dist/cjs/transformers/subscription.cjs +0 -27
  526. package/dist/cjs/transformers/team.cjs +0 -29
  527. package/dist/cjs/transformers/template.cjs +0 -28
  528. package/dist/cjs/transformers/threadMember.cjs +0 -36
  529. package/dist/cjs/transformers/toggles/Permissions.cjs +0 -28
  530. package/dist/cjs/transformers/toggles/ToggleBitfield.cjs +0 -60
  531. package/dist/cjs/transformers/toggles/channel.cjs +0 -73
  532. package/dist/cjs/transformers/toggles/emoji.cjs +0 -63
  533. package/dist/cjs/transformers/toggles/guild.cjs +0 -274
  534. package/dist/cjs/transformers/toggles/index.cjs +0 -28
  535. package/dist/cjs/transformers/toggles/member.cjs +0 -132
  536. package/dist/cjs/transformers/toggles/role.cjs +0 -73
  537. package/dist/cjs/transformers/toggles/user.cjs +0 -63
  538. package/dist/cjs/transformers/toggles/voice.cjs +0 -78
  539. package/dist/cjs/transformers/types.cjs +0 -6
  540. package/dist/cjs/transformers/user.cjs +0 -95
  541. package/dist/cjs/transformers/voiceRegion.cjs +0 -22
  542. package/dist/cjs/transformers/voiceState.cjs +0 -24
  543. package/dist/cjs/transformers/webhook.cjs +0 -37
  544. package/dist/cjs/transformers/welcomeScreen.cjs +0 -24
  545. package/dist/cjs/transformers/widget.cjs +0 -27
  546. package/dist/cjs/transformers/widgetSettings.cjs +0 -19
  547. package/dist/cjs/transformers.cjs +0 -188
  548. package/dist/esm/bot.js +0 -72
  549. package/dist/esm/commandOptionsParser.js +0 -43
  550. package/dist/esm/constants.js +0 -6
  551. package/dist/esm/desiredProperties.js +0 -631
  552. package/dist/esm/events.js +0 -3
  553. package/dist/esm/handlers/channels/CHANNEL_CREATE.js +0 -11
  554. package/dist/esm/handlers/channels/CHANNEL_DELETE.js +0 -10
  555. package/dist/esm/handlers/channels/CHANNEL_PINS_UPDATE.js +0 -11
  556. package/dist/esm/handlers/channels/CHANNEL_UPDATE.js +0 -10
  557. package/dist/esm/handlers/channels/STAGE_INSTANCE_CREATE.js +0 -12
  558. package/dist/esm/handlers/channels/STAGE_INSTANCE_DELETE.js +0 -12
  559. package/dist/esm/handlers/channels/STAGE_INSTANCE_UPDATE.js +0 -12
  560. package/dist/esm/handlers/channels/THREAD_CREATE.js +0 -9
  561. package/dist/esm/handlers/channels/THREAD_DELETE.js +0 -9
  562. package/dist/esm/handlers/channels/THREAD_LIST_SYNC.js +0 -21
  563. package/dist/esm/handlers/channels/THREAD_MEMBERS_UPDATE.js +0 -14
  564. package/dist/esm/handlers/channels/THREAD_MEMBER_UPDATE.js +0 -12
  565. package/dist/esm/handlers/channels/THREAD_UPDATE.js +0 -9
  566. package/dist/esm/handlers/channels/index.js +0 -15
  567. package/dist/esm/handlers/emojis/GUILD_EMOJIS_UPDATE.js +0 -14
  568. package/dist/esm/handlers/emojis/index.js +0 -3
  569. package/dist/esm/handlers/entitlements/ENTITLEMENT_CREATE.js +0 -7
  570. package/dist/esm/handlers/entitlements/ENTITLEMENT_DELETE.js +0 -7
  571. package/dist/esm/handlers/entitlements/ENTITLEMENT_UPDATE.js +0 -7
  572. package/dist/esm/handlers/entitlements/index.js +0 -5
  573. package/dist/esm/handlers/guilds/GUILD_AUDIT_LOG_ENTRY_CREATE.js +0 -8
  574. package/dist/esm/handlers/guilds/GUILD_BAN_ADD.js +0 -7
  575. package/dist/esm/handlers/guilds/GUILD_BAN_REMOVE.js +0 -7
  576. package/dist/esm/handlers/guilds/GUILD_CREATE.js +0 -10
  577. package/dist/esm/handlers/guilds/GUILD_DELETE.js +0 -10
  578. package/dist/esm/handlers/guilds/GUILD_INTEGRATIONS_UPDATE.js +0 -9
  579. package/dist/esm/handlers/guilds/GUILD_STICKERS_UPDATE.js +0 -13
  580. package/dist/esm/handlers/guilds/GUILD_UPDATE.js +0 -10
  581. package/dist/esm/handlers/guilds/automod/AUTO_MODERATION_ACTION_EXECUTION.js +0 -7
  582. package/dist/esm/handlers/guilds/automod/AUTO_MODERATION_RULE_CREATE.js +0 -7
  583. package/dist/esm/handlers/guilds/automod/AUTO_MODERATION_RULE_DELETE.js +0 -7
  584. package/dist/esm/handlers/guilds/automod/AUTO_MODERATION_RULE_UPDATE.js +0 -7
  585. package/dist/esm/handlers/guilds/automod/index.js +0 -6
  586. package/dist/esm/handlers/guilds/index.js +0 -12
  587. package/dist/esm/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_CREATE.js +0 -7
  588. package/dist/esm/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_DELETE.js +0 -7
  589. package/dist/esm/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_UPDATE.js +0 -7
  590. package/dist/esm/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_USER_ADD.js +0 -11
  591. package/dist/esm/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_USER_REMOVE.js +0 -11
  592. package/dist/esm/handlers/guilds/scheduledEvents/index.js +0 -7
  593. package/dist/esm/handlers/index.js +0 -18
  594. package/dist/esm/handlers/integrations/INTEGRATION_CREATE.js +0 -6
  595. package/dist/esm/handlers/integrations/INTEGRATION_DELETE.js +0 -11
  596. package/dist/esm/handlers/integrations/INTEGRATION_UPDATE.js +0 -6
  597. package/dist/esm/handlers/integrations/index.js +0 -5
  598. package/dist/esm/handlers/interactions/APPLICATION_COMMAND_PERMISSIONS_UPDATE.js +0 -7
  599. package/dist/esm/handlers/interactions/INTERACTION_CREATE.js +0 -9
  600. package/dist/esm/handlers/interactions/index.js +0 -4
  601. package/dist/esm/handlers/invites/INVITE_CREATE.js +0 -9
  602. package/dist/esm/handlers/invites/INVITE_DELETE.js +0 -11
  603. package/dist/esm/handlers/invites/index.js +0 -4
  604. package/dist/esm/handlers/members/GUILD_MEMBERS_CHUNK.js +0 -20
  605. package/dist/esm/handlers/members/GUILD_MEMBER_ADD.js +0 -10
  606. package/dist/esm/handlers/members/GUILD_MEMBER_REMOVE.js +0 -9
  607. package/dist/esm/handlers/members/GUILD_MEMBER_UPDATE.js +0 -9
  608. package/dist/esm/handlers/members/index.js +0 -6
  609. package/dist/esm/handlers/messages/MESSAGE_CREATE.js +0 -10
  610. package/dist/esm/handlers/messages/MESSAGE_DELETE.js +0 -11
  611. package/dist/esm/handlers/messages/MESSAGE_DELETE_BULK.js +0 -13
  612. package/dist/esm/handlers/messages/MESSAGE_REACTION_ADD.js +0 -21
  613. package/dist/esm/handlers/messages/MESSAGE_REACTION_REMOVE.js +0 -15
  614. package/dist/esm/handlers/messages/MESSAGE_REACTION_REMOVE_ALL.js +0 -11
  615. package/dist/esm/handlers/messages/MESSAGE_REACTION_REMOVE_EMOJI.js +0 -13
  616. package/dist/esm/handlers/messages/MESSAGE_UPDATE.js +0 -11
  617. package/dist/esm/handlers/messages/index.js +0 -10
  618. package/dist/esm/handlers/misc/PRESENCE_UPDATE.js +0 -6
  619. package/dist/esm/handlers/misc/READY.js +0 -18
  620. package/dist/esm/handlers/misc/TYPING_START.js +0 -15
  621. package/dist/esm/handlers/misc/USER_UPDATE.js +0 -7
  622. package/dist/esm/handlers/misc/index.js +0 -6
  623. package/dist/esm/handlers/poll/MESSAGE_POLL_VOTE_ADD.js +0 -13
  624. package/dist/esm/handlers/poll/MESSAGE_POLL_VOTE_REMOVE.js +0 -13
  625. package/dist/esm/handlers/poll/index.js +0 -4
  626. package/dist/esm/handlers/roles/GUILD_ROLE_CREATE.js +0 -10
  627. package/dist/esm/handlers/roles/GUILD_ROLE_DELETE.js +0 -10
  628. package/dist/esm/handlers/roles/GUILD_ROLE_UPDATE.js +0 -10
  629. package/dist/esm/handlers/roles/index.js +0 -5
  630. package/dist/esm/handlers/soundboard/GUILD_SOUNDBOARD_SOUNDS_UPDATE.js +0 -10
  631. package/dist/esm/handlers/soundboard/GUILD_SOUNDBOARD_SOUND_CREATE.js +0 -7
  632. package/dist/esm/handlers/soundboard/GUILD_SOUNDBOARD_SOUND_DELETE.js +0 -10
  633. package/dist/esm/handlers/soundboard/GUILD_SOUNDBOARD_SOUND_UPDATE.js +0 -7
  634. package/dist/esm/handlers/soundboard/SOUNDBOARD_SOUNDS.js +0 -10
  635. package/dist/esm/handlers/soundboard/index.js +0 -7
  636. package/dist/esm/handlers/subscriptions/SUBSCRIPTION_CREATE.js +0 -7
  637. package/dist/esm/handlers/subscriptions/SUBSCRIPTION_DELETE.js +0 -7
  638. package/dist/esm/handlers/subscriptions/SUBSCRIPTION_UPDATE.js +0 -7
  639. package/dist/esm/handlers/subscriptions/index.js +0 -5
  640. package/dist/esm/handlers/voice/VOICE_CHANNEL_EFFECT_SEND.js +0 -16
  641. package/dist/esm/handlers/voice/VOICE_SERVER_UPDATE.js +0 -11
  642. package/dist/esm/handlers/voice/VOICE_STATE_UPDATE.js +0 -13
  643. package/dist/esm/handlers/voice/index.js +0 -5
  644. package/dist/esm/handlers/webhooks/WEBHOOKS_UPDATE.js +0 -10
  645. package/dist/esm/handlers/webhooks/index.js +0 -3
  646. package/dist/esm/handlers.js +0 -81
  647. package/dist/esm/helpers.js +0 -784
  648. package/dist/esm/index.js +0 -16
  649. package/dist/esm/transformers/activity.js +0 -53
  650. package/dist/esm/transformers/application.js +0 -60
  651. package/dist/esm/transformers/applicationCommand.js +0 -19
  652. package/dist/esm/transformers/applicationCommandOption.js +0 -21
  653. package/dist/esm/transformers/applicationCommandOptionChoice.js +0 -10
  654. package/dist/esm/transformers/applicationCommandPermission.js +0 -15
  655. package/dist/esm/transformers/attachment.js +0 -21
  656. package/dist/esm/transformers/auditLogEntry.js +0 -27
  657. package/dist/esm/transformers/automodActionExecution.js +0 -25
  658. package/dist/esm/transformers/automodRule.js +0 -31
  659. package/dist/esm/transformers/avatarDecorationData.js +0 -10
  660. package/dist/esm/transformers/channel.js +0 -124
  661. package/dist/esm/transformers/component.js +0 -196
  662. package/dist/esm/transformers/embed.js +0 -44
  663. package/dist/esm/transformers/emoji.js +0 -36
  664. package/dist/esm/transformers/entitlement.js +0 -17
  665. package/dist/esm/transformers/gatewayBot.js +0 -15
  666. package/dist/esm/transformers/guild.js +0 -147
  667. package/dist/esm/transformers/incidentsData.js +0 -11
  668. package/dist/esm/transformers/index.js +0 -52
  669. package/dist/esm/transformers/integration.js +0 -34
  670. package/dist/esm/transformers/interaction.js +0 -259
  671. package/dist/esm/transformers/invite.js +0 -42
  672. package/dist/esm/transformers/lobby.js +0 -23
  673. package/dist/esm/transformers/member.js +0 -51
  674. package/dist/esm/transformers/message.js +0 -285
  675. package/dist/esm/transformers/onboarding.js +0 -35
  676. package/dist/esm/transformers/poll.js +0 -33
  677. package/dist/esm/transformers/presence.js +0 -14
  678. package/dist/esm/transformers/reverse/activity.js +0 -43
  679. package/dist/esm/transformers/reverse/allowedMentions.js +0 -10
  680. package/dist/esm/transformers/reverse/application.js +0 -28
  681. package/dist/esm/transformers/reverse/applicationCommand.js +0 -18
  682. package/dist/esm/transformers/reverse/applicationCommandOption.js +0 -20
  683. package/dist/esm/transformers/reverse/applicationCommandOptionChoice.js +0 -9
  684. package/dist/esm/transformers/reverse/applicationCommandPermission.js +0 -14
  685. package/dist/esm/transformers/reverse/attachment.js +0 -20
  686. package/dist/esm/transformers/reverse/auditLogEntry.js +0 -27
  687. package/dist/esm/transformers/reverse/component.js +0 -162
  688. package/dist/esm/transformers/reverse/embed.js +0 -43
  689. package/dist/esm/transformers/reverse/emoji.js +0 -14
  690. package/dist/esm/transformers/reverse/gatewayBot.js +0 -14
  691. package/dist/esm/transformers/reverse/index.js +0 -19
  692. package/dist/esm/transformers/reverse/member.js +0 -43
  693. package/dist/esm/transformers/reverse/presence.js +0 -23
  694. package/dist/esm/transformers/reverse/team.js +0 -18
  695. package/dist/esm/transformers/reverse/widgetSettings.js +0 -8
  696. package/dist/esm/transformers/role.js +0 -69
  697. package/dist/esm/transformers/scheduledEvent.js +0 -40
  698. package/dist/esm/transformers/sku.js +0 -13
  699. package/dist/esm/transformers/soundboardSound.js +0 -15
  700. package/dist/esm/transformers/stageInstance.js +0 -12
  701. package/dist/esm/transformers/stageInviteInstance.js +0 -13
  702. package/dist/esm/transformers/sticker.js +0 -30
  703. package/dist/esm/transformers/subscription.js +0 -17
  704. package/dist/esm/transformers/team.js +0 -19
  705. package/dist/esm/transformers/template.js +0 -18
  706. package/dist/esm/transformers/threadMember.js +0 -18
  707. package/dist/esm/transformers/toggles/Permissions.js +0 -18
  708. package/dist/esm/transformers/toggles/ToggleBitfield.js +0 -42
  709. package/dist/esm/transformers/toggles/channel.js +0 -55
  710. package/dist/esm/transformers/toggles/emoji.js +0 -45
  711. package/dist/esm/transformers/toggles/guild.js +0 -256
  712. package/dist/esm/transformers/toggles/index.js +0 -11
  713. package/dist/esm/transformers/toggles/member.js +0 -114
  714. package/dist/esm/transformers/toggles/role.js +0 -55
  715. package/dist/esm/transformers/toggles/user.js +0 -45
  716. package/dist/esm/transformers/toggles/voice.js +0 -60
  717. package/dist/esm/transformers/types.js +0 -3
  718. package/dist/esm/transformers/user.js +0 -68
  719. package/dist/esm/transformers/voiceRegion.js +0 -12
  720. package/dist/esm/transformers/voiceState.js +0 -14
  721. package/dist/esm/transformers/webhook.js +0 -27
  722. package/dist/esm/transformers/welcomeScreen.js +0 -14
  723. package/dist/esm/transformers/widget.js +0 -17
  724. package/dist/esm/transformers/widgetSettings.js +0 -9
  725. package/dist/esm/transformers.js +0 -178
  726. package/dist/types/bot.d.ts.map +0 -1
  727. package/dist/types/commandOptionsParser.d.ts.map +0 -1
  728. package/dist/types/constants.d.ts.map +0 -1
  729. package/dist/types/desiredProperties.d.ts.map +0 -1
  730. package/dist/types/events.d.ts.map +0 -1
  731. package/dist/types/handlers/channels/CHANNEL_CREATE.d.ts.map +0 -1
  732. package/dist/types/handlers/channels/CHANNEL_DELETE.d.ts.map +0 -1
  733. package/dist/types/handlers/channels/CHANNEL_PINS_UPDATE.d.ts.map +0 -1
  734. package/dist/types/handlers/channels/CHANNEL_UPDATE.d.ts.map +0 -1
  735. package/dist/types/handlers/channels/STAGE_INSTANCE_CREATE.d.ts.map +0 -1
  736. package/dist/types/handlers/channels/STAGE_INSTANCE_DELETE.d.ts.map +0 -1
  737. package/dist/types/handlers/channels/STAGE_INSTANCE_UPDATE.d.ts.map +0 -1
  738. package/dist/types/handlers/channels/THREAD_CREATE.d.ts.map +0 -1
  739. package/dist/types/handlers/channels/THREAD_DELETE.d.ts.map +0 -1
  740. package/dist/types/handlers/channels/THREAD_LIST_SYNC.d.ts.map +0 -1
  741. package/dist/types/handlers/channels/THREAD_MEMBERS_UPDATE.d.ts.map +0 -1
  742. package/dist/types/handlers/channels/THREAD_MEMBER_UPDATE.d.ts.map +0 -1
  743. package/dist/types/handlers/channels/THREAD_UPDATE.d.ts.map +0 -1
  744. package/dist/types/handlers/channels/index.d.ts.map +0 -1
  745. package/dist/types/handlers/emojis/GUILD_EMOJIS_UPDATE.d.ts.map +0 -1
  746. package/dist/types/handlers/emojis/index.d.ts.map +0 -1
  747. package/dist/types/handlers/entitlements/ENTITLEMENT_CREATE.d.ts.map +0 -1
  748. package/dist/types/handlers/entitlements/ENTITLEMENT_DELETE.d.ts.map +0 -1
  749. package/dist/types/handlers/entitlements/ENTITLEMENT_UPDATE.d.ts.map +0 -1
  750. package/dist/types/handlers/entitlements/index.d.ts.map +0 -1
  751. package/dist/types/handlers/guilds/GUILD_AUDIT_LOG_ENTRY_CREATE.d.ts.map +0 -1
  752. package/dist/types/handlers/guilds/GUILD_BAN_ADD.d.ts.map +0 -1
  753. package/dist/types/handlers/guilds/GUILD_BAN_REMOVE.d.ts.map +0 -1
  754. package/dist/types/handlers/guilds/GUILD_CREATE.d.ts.map +0 -1
  755. package/dist/types/handlers/guilds/GUILD_DELETE.d.ts.map +0 -1
  756. package/dist/types/handlers/guilds/GUILD_INTEGRATIONS_UPDATE.d.ts.map +0 -1
  757. package/dist/types/handlers/guilds/GUILD_STICKERS_UPDATE.d.ts.map +0 -1
  758. package/dist/types/handlers/guilds/GUILD_UPDATE.d.ts.map +0 -1
  759. package/dist/types/handlers/guilds/automod/AUTO_MODERATION_ACTION_EXECUTION.d.ts.map +0 -1
  760. package/dist/types/handlers/guilds/automod/AUTO_MODERATION_RULE_CREATE.d.ts.map +0 -1
  761. package/dist/types/handlers/guilds/automod/AUTO_MODERATION_RULE_DELETE.d.ts.map +0 -1
  762. package/dist/types/handlers/guilds/automod/AUTO_MODERATION_RULE_UPDATE.d.ts.map +0 -1
  763. package/dist/types/handlers/guilds/automod/index.d.ts.map +0 -1
  764. package/dist/types/handlers/guilds/index.d.ts.map +0 -1
  765. package/dist/types/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_CREATE.d.ts.map +0 -1
  766. package/dist/types/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_DELETE.d.ts.map +0 -1
  767. package/dist/types/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_UPDATE.d.ts.map +0 -1
  768. package/dist/types/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_USER_ADD.d.ts.map +0 -1
  769. package/dist/types/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_USER_REMOVE.d.ts.map +0 -1
  770. package/dist/types/handlers/guilds/scheduledEvents/index.d.ts.map +0 -1
  771. package/dist/types/handlers/index.d.ts.map +0 -1
  772. package/dist/types/handlers/integrations/INTEGRATION_CREATE.d.ts.map +0 -1
  773. package/dist/types/handlers/integrations/INTEGRATION_DELETE.d.ts.map +0 -1
  774. package/dist/types/handlers/integrations/INTEGRATION_UPDATE.d.ts.map +0 -1
  775. package/dist/types/handlers/integrations/index.d.ts.map +0 -1
  776. package/dist/types/handlers/interactions/APPLICATION_COMMAND_PERMISSIONS_UPDATE.d.ts.map +0 -1
  777. package/dist/types/handlers/interactions/INTERACTION_CREATE.d.ts.map +0 -1
  778. package/dist/types/handlers/interactions/index.d.ts.map +0 -1
  779. package/dist/types/handlers/invites/INVITE_CREATE.d.ts.map +0 -1
  780. package/dist/types/handlers/invites/INVITE_DELETE.d.ts.map +0 -1
  781. package/dist/types/handlers/invites/index.d.ts.map +0 -1
  782. package/dist/types/handlers/members/GUILD_MEMBERS_CHUNK.d.ts.map +0 -1
  783. package/dist/types/handlers/members/GUILD_MEMBER_ADD.d.ts.map +0 -1
  784. package/dist/types/handlers/members/GUILD_MEMBER_REMOVE.d.ts.map +0 -1
  785. package/dist/types/handlers/members/GUILD_MEMBER_UPDATE.d.ts.map +0 -1
  786. package/dist/types/handlers/members/index.d.ts.map +0 -1
  787. package/dist/types/handlers/messages/MESSAGE_CREATE.d.ts.map +0 -1
  788. package/dist/types/handlers/messages/MESSAGE_DELETE.d.ts.map +0 -1
  789. package/dist/types/handlers/messages/MESSAGE_DELETE_BULK.d.ts.map +0 -1
  790. package/dist/types/handlers/messages/MESSAGE_REACTION_ADD.d.ts.map +0 -1
  791. package/dist/types/handlers/messages/MESSAGE_REACTION_REMOVE.d.ts.map +0 -1
  792. package/dist/types/handlers/messages/MESSAGE_REACTION_REMOVE_ALL.d.ts.map +0 -1
  793. package/dist/types/handlers/messages/MESSAGE_REACTION_REMOVE_EMOJI.d.ts.map +0 -1
  794. package/dist/types/handlers/messages/MESSAGE_UPDATE.d.ts.map +0 -1
  795. package/dist/types/handlers/messages/index.d.ts.map +0 -1
  796. package/dist/types/handlers/misc/PRESENCE_UPDATE.d.ts.map +0 -1
  797. package/dist/types/handlers/misc/READY.d.ts.map +0 -1
  798. package/dist/types/handlers/misc/TYPING_START.d.ts.map +0 -1
  799. package/dist/types/handlers/misc/USER_UPDATE.d.ts.map +0 -1
  800. package/dist/types/handlers/misc/index.d.ts.map +0 -1
  801. package/dist/types/handlers/poll/MESSAGE_POLL_VOTE_ADD.d.ts.map +0 -1
  802. package/dist/types/handlers/poll/MESSAGE_POLL_VOTE_REMOVE.d.ts.map +0 -1
  803. package/dist/types/handlers/poll/index.d.ts.map +0 -1
  804. package/dist/types/handlers/roles/GUILD_ROLE_CREATE.d.ts.map +0 -1
  805. package/dist/types/handlers/roles/GUILD_ROLE_DELETE.d.ts.map +0 -1
  806. package/dist/types/handlers/roles/GUILD_ROLE_UPDATE.d.ts.map +0 -1
  807. package/dist/types/handlers/roles/index.d.ts.map +0 -1
  808. package/dist/types/handlers/soundboard/GUILD_SOUNDBOARD_SOUNDS_UPDATE.d.ts.map +0 -1
  809. package/dist/types/handlers/soundboard/GUILD_SOUNDBOARD_SOUND_CREATE.d.ts.map +0 -1
  810. package/dist/types/handlers/soundboard/GUILD_SOUNDBOARD_SOUND_DELETE.d.ts.map +0 -1
  811. package/dist/types/handlers/soundboard/GUILD_SOUNDBOARD_SOUND_UPDATE.d.ts.map +0 -1
  812. package/dist/types/handlers/soundboard/SOUNDBOARD_SOUNDS.d.ts.map +0 -1
  813. package/dist/types/handlers/soundboard/index.d.ts.map +0 -1
  814. package/dist/types/handlers/subscriptions/SUBSCRIPTION_CREATE.d.ts.map +0 -1
  815. package/dist/types/handlers/subscriptions/SUBSCRIPTION_DELETE.d.ts.map +0 -1
  816. package/dist/types/handlers/subscriptions/SUBSCRIPTION_UPDATE.d.ts.map +0 -1
  817. package/dist/types/handlers/subscriptions/index.d.ts.map +0 -1
  818. package/dist/types/handlers/voice/VOICE_CHANNEL_EFFECT_SEND.d.ts.map +0 -1
  819. package/dist/types/handlers/voice/VOICE_SERVER_UPDATE.d.ts.map +0 -1
  820. package/dist/types/handlers/voice/VOICE_STATE_UPDATE.d.ts.map +0 -1
  821. package/dist/types/handlers/voice/index.d.ts.map +0 -1
  822. package/dist/types/handlers/webhooks/WEBHOOKS_UPDATE.d.ts.map +0 -1
  823. package/dist/types/handlers/webhooks/index.d.ts.map +0 -1
  824. package/dist/types/handlers.d.ts.map +0 -1
  825. package/dist/types/helpers.d.ts +0 -244
  826. package/dist/types/helpers.d.ts.map +0 -1
  827. package/dist/types/index.d.ts.map +0 -1
  828. package/dist/types/transformers/activity.d.ts.map +0 -1
  829. package/dist/types/transformers/application.d.ts +0 -6
  830. package/dist/types/transformers/application.d.ts.map +0 -1
  831. package/dist/types/transformers/applicationCommand.d.ts.map +0 -1
  832. package/dist/types/transformers/applicationCommandOption.d.ts.map +0 -1
  833. package/dist/types/transformers/applicationCommandOptionChoice.d.ts.map +0 -1
  834. package/dist/types/transformers/applicationCommandPermission.d.ts.map +0 -1
  835. package/dist/types/transformers/attachment.d.ts.map +0 -1
  836. package/dist/types/transformers/auditLogEntry.d.ts.map +0 -1
  837. package/dist/types/transformers/automodActionExecution.d.ts.map +0 -1
  838. package/dist/types/transformers/automodRule.d.ts.map +0 -1
  839. package/dist/types/transformers/avatarDecorationData.d.ts.map +0 -1
  840. package/dist/types/transformers/channel.d.ts +0 -11
  841. package/dist/types/transformers/channel.d.ts.map +0 -1
  842. package/dist/types/transformers/component.d.ts.map +0 -1
  843. package/dist/types/transformers/embed.d.ts.map +0 -1
  844. package/dist/types/transformers/emoji.d.ts.map +0 -1
  845. package/dist/types/transformers/entitlement.d.ts.map +0 -1
  846. package/dist/types/transformers/gatewayBot.d.ts.map +0 -1
  847. package/dist/types/transformers/guild.d.ts +0 -8
  848. package/dist/types/transformers/guild.d.ts.map +0 -1
  849. package/dist/types/transformers/incidentsData.d.ts.map +0 -1
  850. package/dist/types/transformers/index.d.ts.map +0 -1
  851. package/dist/types/transformers/integration.d.ts.map +0 -1
  852. package/dist/types/transformers/interaction.d.ts +0 -23
  853. package/dist/types/transformers/interaction.d.ts.map +0 -1
  854. package/dist/types/transformers/invite.d.ts +0 -7
  855. package/dist/types/transformers/invite.d.ts.map +0 -1
  856. package/dist/types/transformers/lobby.d.ts.map +0 -1
  857. package/dist/types/transformers/member.d.ts +0 -6
  858. package/dist/types/transformers/member.d.ts.map +0 -1
  859. package/dist/types/transformers/message.d.ts +0 -15
  860. package/dist/types/transformers/message.d.ts.map +0 -1
  861. package/dist/types/transformers/onboarding.d.ts.map +0 -1
  862. package/dist/types/transformers/poll.d.ts.map +0 -1
  863. package/dist/types/transformers/presence.d.ts.map +0 -1
  864. package/dist/types/transformers/reverse/activity.d.ts.map +0 -1
  865. package/dist/types/transformers/reverse/allowedMentions.d.ts.map +0 -1
  866. package/dist/types/transformers/reverse/application.d.ts.map +0 -1
  867. package/dist/types/transformers/reverse/applicationCommand.d.ts.map +0 -1
  868. package/dist/types/transformers/reverse/applicationCommandOption.d.ts.map +0 -1
  869. package/dist/types/transformers/reverse/applicationCommandOptionChoice.d.ts.map +0 -1
  870. package/dist/types/transformers/reverse/applicationCommandPermission.d.ts.map +0 -1
  871. package/dist/types/transformers/reverse/attachment.d.ts.map +0 -1
  872. package/dist/types/transformers/reverse/auditLogEntry.d.ts.map +0 -1
  873. package/dist/types/transformers/reverse/component.d.ts.map +0 -1
  874. package/dist/types/transformers/reverse/embed.d.ts.map +0 -1
  875. package/dist/types/transformers/reverse/emoji.d.ts.map +0 -1
  876. package/dist/types/transformers/reverse/gatewayBot.d.ts.map +0 -1
  877. package/dist/types/transformers/reverse/index.d.ts.map +0 -1
  878. package/dist/types/transformers/reverse/member.d.ts.map +0 -1
  879. package/dist/types/transformers/reverse/presence.d.ts.map +0 -1
  880. package/dist/types/transformers/reverse/team.d.ts.map +0 -1
  881. package/dist/types/transformers/reverse/widgetSettings.d.ts.map +0 -1
  882. package/dist/types/transformers/role.d.ts +0 -9
  883. package/dist/types/transformers/role.d.ts.map +0 -1
  884. package/dist/types/transformers/scheduledEvent.d.ts.map +0 -1
  885. package/dist/types/transformers/sku.d.ts.map +0 -1
  886. package/dist/types/transformers/soundboardSound.d.ts.map +0 -1
  887. package/dist/types/transformers/stageInstance.d.ts.map +0 -1
  888. package/dist/types/transformers/stageInviteInstance.d.ts +0 -6
  889. package/dist/types/transformers/stageInviteInstance.d.ts.map +0 -1
  890. package/dist/types/transformers/sticker.d.ts.map +0 -1
  891. package/dist/types/transformers/subscription.d.ts.map +0 -1
  892. package/dist/types/transformers/team.d.ts.map +0 -1
  893. package/dist/types/transformers/template.d.ts.map +0 -1
  894. package/dist/types/transformers/threadMember.d.ts.map +0 -1
  895. package/dist/types/transformers/toggles/Permissions.d.ts.map +0 -1
  896. package/dist/types/transformers/toggles/ToggleBitfield.d.ts.map +0 -1
  897. package/dist/types/transformers/toggles/channel.d.ts.map +0 -1
  898. package/dist/types/transformers/toggles/emoji.d.ts.map +0 -1
  899. package/dist/types/transformers/toggles/guild.d.ts.map +0 -1
  900. package/dist/types/transformers/toggles/index.d.ts.map +0 -1
  901. package/dist/types/transformers/toggles/member.d.ts.map +0 -1
  902. package/dist/types/transformers/toggles/role.d.ts.map +0 -1
  903. package/dist/types/transformers/toggles/user.d.ts.map +0 -1
  904. package/dist/types/transformers/toggles/voice.d.ts.map +0 -1
  905. package/dist/types/transformers/types.d.ts.map +0 -1
  906. package/dist/types/transformers/user.d.ts.map +0 -1
  907. package/dist/types/transformers/voiceRegion.d.ts.map +0 -1
  908. package/dist/types/transformers/voiceState.d.ts +0 -7
  909. package/dist/types/transformers/voiceState.d.ts.map +0 -1
  910. package/dist/types/transformers/webhook.d.ts.map +0 -1
  911. package/dist/types/transformers/welcomeScreen.d.ts.map +0 -1
  912. package/dist/types/transformers/widget.d.ts.map +0 -1
  913. package/dist/types/transformers/widgetSettings.d.ts.map +0 -1
  914. package/dist/types/transformers.d.ts +0 -218
  915. package/dist/types/transformers.d.ts.map +0 -1
  916. /package/dist/{types/bot.d.ts → bot.d.ts} +0 -0
  917. /package/dist/{types/commandOptionsParser.d.ts → commandOptionsParser.d.ts} +0 -0
  918. /package/dist/{types/constants.d.ts → constants.d.ts} +0 -0
  919. /package/dist/{types/desiredProperties.d.ts → desiredProperties.d.ts} +0 -0
  920. /package/dist/{types/events.d.ts → events.d.ts} +0 -0
  921. /package/dist/{types/handlers → handlers}/channels/CHANNEL_CREATE.d.ts +0 -0
  922. /package/dist/{types/handlers → handlers}/channels/CHANNEL_DELETE.d.ts +0 -0
  923. /package/dist/{types/handlers → handlers}/channels/CHANNEL_PINS_UPDATE.d.ts +0 -0
  924. /package/dist/{types/handlers → handlers}/channels/CHANNEL_UPDATE.d.ts +0 -0
  925. /package/dist/{types/handlers → handlers}/channels/STAGE_INSTANCE_CREATE.d.ts +0 -0
  926. /package/dist/{types/handlers → handlers}/channels/STAGE_INSTANCE_DELETE.d.ts +0 -0
  927. /package/dist/{types/handlers → handlers}/channels/STAGE_INSTANCE_UPDATE.d.ts +0 -0
  928. /package/dist/{types/handlers → handlers}/channels/THREAD_CREATE.d.ts +0 -0
  929. /package/dist/{types/handlers → handlers}/channels/THREAD_DELETE.d.ts +0 -0
  930. /package/dist/{types/handlers → handlers}/channels/THREAD_LIST_SYNC.d.ts +0 -0
  931. /package/dist/{types/handlers → handlers}/channels/THREAD_MEMBERS_UPDATE.d.ts +0 -0
  932. /package/dist/{types/handlers → handlers}/channels/THREAD_MEMBER_UPDATE.d.ts +0 -0
  933. /package/dist/{types/handlers → handlers}/channels/THREAD_UPDATE.d.ts +0 -0
  934. /package/dist/{types/handlers → handlers}/channels/index.d.ts +0 -0
  935. /package/dist/{types/handlers → handlers}/emojis/GUILD_EMOJIS_UPDATE.d.ts +0 -0
  936. /package/dist/{types/handlers → handlers}/emojis/index.d.ts +0 -0
  937. /package/dist/{types/handlers → handlers}/entitlements/ENTITLEMENT_CREATE.d.ts +0 -0
  938. /package/dist/{types/handlers → handlers}/entitlements/ENTITLEMENT_DELETE.d.ts +0 -0
  939. /package/dist/{types/handlers → handlers}/entitlements/ENTITLEMENT_UPDATE.d.ts +0 -0
  940. /package/dist/{types/handlers → handlers}/entitlements/index.d.ts +0 -0
  941. /package/dist/{types/handlers → handlers}/guilds/GUILD_AUDIT_LOG_ENTRY_CREATE.d.ts +0 -0
  942. /package/dist/{types/handlers → handlers}/guilds/GUILD_BAN_ADD.d.ts +0 -0
  943. /package/dist/{types/handlers → handlers}/guilds/GUILD_BAN_REMOVE.d.ts +0 -0
  944. /package/dist/{types/handlers → handlers}/guilds/GUILD_CREATE.d.ts +0 -0
  945. /package/dist/{types/handlers → handlers}/guilds/GUILD_DELETE.d.ts +0 -0
  946. /package/dist/{types/handlers → handlers}/guilds/GUILD_INTEGRATIONS_UPDATE.d.ts +0 -0
  947. /package/dist/{types/handlers → handlers}/guilds/GUILD_STICKERS_UPDATE.d.ts +0 -0
  948. /package/dist/{types/handlers → handlers}/guilds/GUILD_UPDATE.d.ts +0 -0
  949. /package/dist/{types/handlers → handlers}/guilds/automod/AUTO_MODERATION_ACTION_EXECUTION.d.ts +0 -0
  950. /package/dist/{types/handlers → handlers}/guilds/automod/AUTO_MODERATION_RULE_CREATE.d.ts +0 -0
  951. /package/dist/{types/handlers → handlers}/guilds/automod/AUTO_MODERATION_RULE_DELETE.d.ts +0 -0
  952. /package/dist/{types/handlers → handlers}/guilds/automod/AUTO_MODERATION_RULE_UPDATE.d.ts +0 -0
  953. /package/dist/{types/handlers → handlers}/guilds/automod/index.d.ts +0 -0
  954. /package/dist/{types/handlers → handlers}/guilds/index.d.ts +0 -0
  955. /package/dist/{types/handlers → handlers}/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_CREATE.d.ts +0 -0
  956. /package/dist/{types/handlers → handlers}/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_DELETE.d.ts +0 -0
  957. /package/dist/{types/handlers → handlers}/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_UPDATE.d.ts +0 -0
  958. /package/dist/{types/handlers → handlers}/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_USER_ADD.d.ts +0 -0
  959. /package/dist/{types/handlers → handlers}/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_USER_REMOVE.d.ts +0 -0
  960. /package/dist/{types/handlers → handlers}/guilds/scheduledEvents/index.d.ts +0 -0
  961. /package/dist/{types/handlers → handlers}/index.d.ts +0 -0
  962. /package/dist/{types/handlers → handlers}/integrations/INTEGRATION_CREATE.d.ts +0 -0
  963. /package/dist/{types/handlers → handlers}/integrations/INTEGRATION_DELETE.d.ts +0 -0
  964. /package/dist/{types/handlers → handlers}/integrations/INTEGRATION_UPDATE.d.ts +0 -0
  965. /package/dist/{types/handlers → handlers}/integrations/index.d.ts +0 -0
  966. /package/dist/{types/handlers → handlers}/interactions/APPLICATION_COMMAND_PERMISSIONS_UPDATE.d.ts +0 -0
  967. /package/dist/{types/handlers → handlers}/interactions/INTERACTION_CREATE.d.ts +0 -0
  968. /package/dist/{types/handlers → handlers}/interactions/index.d.ts +0 -0
  969. /package/dist/{types/handlers → handlers}/invites/INVITE_CREATE.d.ts +0 -0
  970. /package/dist/{types/handlers → handlers}/invites/INVITE_DELETE.d.ts +0 -0
  971. /package/dist/{types/handlers → handlers}/invites/index.d.ts +0 -0
  972. /package/dist/{types/handlers → handlers}/members/GUILD_MEMBERS_CHUNK.d.ts +0 -0
  973. /package/dist/{types/handlers → handlers}/members/GUILD_MEMBER_ADD.d.ts +0 -0
  974. /package/dist/{types/handlers → handlers}/members/GUILD_MEMBER_REMOVE.d.ts +0 -0
  975. /package/dist/{types/handlers → handlers}/members/GUILD_MEMBER_UPDATE.d.ts +0 -0
  976. /package/dist/{types/handlers → handlers}/members/index.d.ts +0 -0
  977. /package/dist/{types/handlers → handlers}/messages/MESSAGE_CREATE.d.ts +0 -0
  978. /package/dist/{types/handlers → handlers}/messages/MESSAGE_DELETE.d.ts +0 -0
  979. /package/dist/{types/handlers → handlers}/messages/MESSAGE_DELETE_BULK.d.ts +0 -0
  980. /package/dist/{types/handlers → handlers}/messages/MESSAGE_REACTION_ADD.d.ts +0 -0
  981. /package/dist/{types/handlers → handlers}/messages/MESSAGE_REACTION_REMOVE.d.ts +0 -0
  982. /package/dist/{types/handlers → handlers}/messages/MESSAGE_REACTION_REMOVE_ALL.d.ts +0 -0
  983. /package/dist/{types/handlers → handlers}/messages/MESSAGE_REACTION_REMOVE_EMOJI.d.ts +0 -0
  984. /package/dist/{types/handlers → handlers}/messages/MESSAGE_UPDATE.d.ts +0 -0
  985. /package/dist/{types/handlers → handlers}/messages/index.d.ts +0 -0
  986. /package/dist/{types/handlers → handlers}/misc/PRESENCE_UPDATE.d.ts +0 -0
  987. /package/dist/{types/handlers → handlers}/misc/READY.d.ts +0 -0
  988. /package/dist/{types/handlers → handlers}/misc/TYPING_START.d.ts +0 -0
  989. /package/dist/{types/handlers → handlers}/misc/USER_UPDATE.d.ts +0 -0
  990. /package/dist/{types/handlers → handlers}/misc/index.d.ts +0 -0
  991. /package/dist/{types/handlers → handlers}/poll/MESSAGE_POLL_VOTE_ADD.d.ts +0 -0
  992. /package/dist/{types/handlers → handlers}/poll/MESSAGE_POLL_VOTE_REMOVE.d.ts +0 -0
  993. /package/dist/{types/handlers → handlers}/poll/index.d.ts +0 -0
  994. /package/dist/{types/handlers → handlers}/roles/GUILD_ROLE_CREATE.d.ts +0 -0
  995. /package/dist/{types/handlers → handlers}/roles/GUILD_ROLE_DELETE.d.ts +0 -0
  996. /package/dist/{types/handlers → handlers}/roles/GUILD_ROLE_UPDATE.d.ts +0 -0
  997. /package/dist/{types/handlers → handlers}/roles/index.d.ts +0 -0
  998. /package/dist/{types/handlers → handlers}/soundboard/GUILD_SOUNDBOARD_SOUNDS_UPDATE.d.ts +0 -0
  999. /package/dist/{types/handlers → handlers}/soundboard/GUILD_SOUNDBOARD_SOUND_CREATE.d.ts +0 -0
  1000. /package/dist/{types/handlers → handlers}/soundboard/GUILD_SOUNDBOARD_SOUND_DELETE.d.ts +0 -0
  1001. /package/dist/{types/handlers → handlers}/soundboard/GUILD_SOUNDBOARD_SOUND_UPDATE.d.ts +0 -0
  1002. /package/dist/{types/handlers → handlers}/soundboard/SOUNDBOARD_SOUNDS.d.ts +0 -0
  1003. /package/dist/{types/handlers → handlers}/soundboard/index.d.ts +0 -0
  1004. /package/dist/{types/handlers → handlers}/subscriptions/SUBSCRIPTION_CREATE.d.ts +0 -0
  1005. /package/dist/{types/handlers → handlers}/subscriptions/SUBSCRIPTION_DELETE.d.ts +0 -0
  1006. /package/dist/{types/handlers → handlers}/subscriptions/SUBSCRIPTION_UPDATE.d.ts +0 -0
  1007. /package/dist/{types/handlers → handlers}/subscriptions/index.d.ts +0 -0
  1008. /package/dist/{types/handlers → handlers}/voice/VOICE_CHANNEL_EFFECT_SEND.d.ts +0 -0
  1009. /package/dist/{types/handlers → handlers}/voice/VOICE_SERVER_UPDATE.d.ts +0 -0
  1010. /package/dist/{types/handlers → handlers}/voice/VOICE_STATE_UPDATE.d.ts +0 -0
  1011. /package/dist/{types/handlers → handlers}/voice/index.d.ts +0 -0
  1012. /package/dist/{types/handlers → handlers}/webhooks/WEBHOOKS_UPDATE.d.ts +0 -0
  1013. /package/dist/{types/handlers → handlers}/webhooks/index.d.ts +0 -0
  1014. /package/dist/{types/handlers.d.ts → handlers.d.ts} +0 -0
  1015. /package/dist/{types/index.d.ts → index.d.ts} +0 -0
  1016. /package/dist/{types/transformers → transformers}/activity.d.ts +0 -0
  1017. /package/dist/{types/transformers → transformers}/applicationCommand.d.ts +0 -0
  1018. /package/dist/{types/transformers → transformers}/applicationCommandOption.d.ts +0 -0
  1019. /package/dist/{types/transformers → transformers}/applicationCommandOptionChoice.d.ts +0 -0
  1020. /package/dist/{types/transformers → transformers}/applicationCommandPermission.d.ts +0 -0
  1021. /package/dist/{types/transformers → transformers}/attachment.d.ts +0 -0
  1022. /package/dist/{types/transformers → transformers}/auditLogEntry.d.ts +0 -0
  1023. /package/dist/{types/transformers → transformers}/automodActionExecution.d.ts +0 -0
  1024. /package/dist/{types/transformers → transformers}/automodRule.d.ts +0 -0
  1025. /package/dist/{types/transformers → transformers}/avatarDecorationData.d.ts +0 -0
  1026. /package/dist/{types/transformers → transformers}/component.d.ts +0 -0
  1027. /package/dist/{types/transformers → transformers}/embed.d.ts +0 -0
  1028. /package/dist/{types/transformers → transformers}/emoji.d.ts +0 -0
  1029. /package/dist/{types/transformers → transformers}/entitlement.d.ts +0 -0
  1030. /package/dist/{types/transformers → transformers}/gatewayBot.d.ts +0 -0
  1031. /package/dist/{types/transformers → transformers}/incidentsData.d.ts +0 -0
  1032. /package/dist/{types/transformers → transformers}/index.d.ts +0 -0
  1033. /package/dist/{types/transformers → transformers}/integration.d.ts +0 -0
  1034. /package/dist/{types/transformers → transformers}/lobby.d.ts +0 -0
  1035. /package/dist/{types/transformers → transformers}/onboarding.d.ts +0 -0
  1036. /package/dist/{types/transformers → transformers}/poll.d.ts +0 -0
  1037. /package/dist/{types/transformers → transformers}/presence.d.ts +0 -0
  1038. /package/dist/{types/transformers → transformers}/reverse/activity.d.ts +0 -0
  1039. /package/dist/{types/transformers → transformers}/reverse/allowedMentions.d.ts +0 -0
  1040. /package/dist/{types/transformers → transformers}/reverse/application.d.ts +0 -0
  1041. /package/dist/{types/transformers → transformers}/reverse/applicationCommand.d.ts +0 -0
  1042. /package/dist/{types/transformers → transformers}/reverse/applicationCommandOption.d.ts +0 -0
  1043. /package/dist/{types/transformers → transformers}/reverse/applicationCommandOptionChoice.d.ts +0 -0
  1044. /package/dist/{types/transformers → transformers}/reverse/applicationCommandPermission.d.ts +0 -0
  1045. /package/dist/{types/transformers → transformers}/reverse/attachment.d.ts +0 -0
  1046. /package/dist/{types/transformers → transformers}/reverse/auditLogEntry.d.ts +0 -0
  1047. /package/dist/{types/transformers → transformers}/reverse/component.d.ts +0 -0
  1048. /package/dist/{types/transformers → transformers}/reverse/embed.d.ts +0 -0
  1049. /package/dist/{types/transformers → transformers}/reverse/emoji.d.ts +0 -0
  1050. /package/dist/{types/transformers → transformers}/reverse/gatewayBot.d.ts +0 -0
  1051. /package/dist/{types/transformers → transformers}/reverse/index.d.ts +0 -0
  1052. /package/dist/{types/transformers → transformers}/reverse/member.d.ts +0 -0
  1053. /package/dist/{types/transformers → transformers}/reverse/presence.d.ts +0 -0
  1054. /package/dist/{types/transformers → transformers}/reverse/team.d.ts +0 -0
  1055. /package/dist/{types/transformers → transformers}/reverse/widgetSettings.d.ts +0 -0
  1056. /package/dist/{types/transformers → transformers}/scheduledEvent.d.ts +0 -0
  1057. /package/dist/{types/transformers → transformers}/sku.d.ts +0 -0
  1058. /package/dist/{types/transformers → transformers}/soundboardSound.d.ts +0 -0
  1059. /package/dist/{types/transformers → transformers}/stageInstance.d.ts +0 -0
  1060. /package/dist/{types/transformers → transformers}/sticker.d.ts +0 -0
  1061. /package/dist/{types/transformers → transformers}/subscription.d.ts +0 -0
  1062. /package/dist/{types/transformers → transformers}/team.d.ts +0 -0
  1063. /package/dist/{types/transformers → transformers}/template.d.ts +0 -0
  1064. /package/dist/{types/transformers → transformers}/threadMember.d.ts +0 -0
  1065. /package/dist/{types/transformers → transformers}/toggles/Permissions.d.ts +0 -0
  1066. /package/dist/{types/transformers → transformers}/toggles/ToggleBitfield.d.ts +0 -0
  1067. /package/dist/{types/transformers → transformers}/toggles/channel.d.ts +0 -0
  1068. /package/dist/{types/transformers → transformers}/toggles/emoji.d.ts +0 -0
  1069. /package/dist/{types/transformers → transformers}/toggles/guild.d.ts +0 -0
  1070. /package/dist/{types/transformers → transformers}/toggles/index.d.ts +0 -0
  1071. /package/dist/{types/transformers → transformers}/toggles/member.d.ts +0 -0
  1072. /package/dist/{types/transformers → transformers}/toggles/role.d.ts +0 -0
  1073. /package/dist/{types/transformers → transformers}/toggles/user.d.ts +0 -0
  1074. /package/dist/{types/transformers → transformers}/toggles/voice.d.ts +0 -0
  1075. /package/dist/{types/transformers → transformers}/types.d.ts +0 -0
  1076. /package/dist/{types/transformers → transformers}/user.d.ts +0 -0
  1077. /package/dist/{types/transformers → transformers}/voiceRegion.d.ts +0 -0
  1078. /package/dist/{types/transformers → transformers}/webhook.d.ts +0 -0
  1079. /package/dist/{types/transformers → transformers}/welcomeScreen.d.ts +0 -0
  1080. /package/dist/{types/transformers → transformers}/widget.d.ts +0 -0
  1081. /package/dist/{types/transformers → transformers}/widgetSettings.d.ts +0 -0
@@ -1,784 +0,0 @@
1
- import { snakelize } from '@discordeno/utils';
2
- export function createBotHelpers(bot) {
3
- return {
4
- createAutomodRule: async (guildId, options, reason)=>{
5
- return bot.transformers.automodRule(bot, snakelize(await bot.rest.createAutomodRule(guildId, options, reason)));
6
- },
7
- createChannel: async (guildId, options, reason)=>{
8
- return bot.transformers.channel(bot, {
9
- channel: snakelize(await bot.rest.createChannel(guildId, options, reason)),
10
- guildId
11
- });
12
- },
13
- createEmoji: async (guildId, options, reason)=>{
14
- return bot.transformers.emoji(bot, snakelize(await bot.rest.createEmoji(guildId, options, reason)));
15
- },
16
- createApplicationEmoji: async (options)=>{
17
- return bot.transformers.emoji(bot, snakelize(await bot.rest.createApplicationEmoji(options)));
18
- },
19
- createForumThread: async (channelId, options, reason)=>{
20
- return bot.transformers.channel(bot, {
21
- channel: snakelize(await bot.rest.createForumThread(channelId, options, reason))
22
- });
23
- },
24
- createGlobalApplicationCommand: async (command, options)=>{
25
- return bot.transformers.applicationCommand(bot, snakelize(await bot.rest.createGlobalApplicationCommand(command, options)));
26
- },
27
- createGuildApplicationCommand: async (command, guildId, options)=>{
28
- return bot.transformers.applicationCommand(bot, snakelize(await bot.rest.createGuildApplicationCommand(command, guildId, options)));
29
- },
30
- createGuildSticker: async (guildId, options, reason)=>{
31
- return bot.transformers.sticker(bot, snakelize(await bot.rest.createGuildSticker(guildId, options, reason)));
32
- },
33
- createGuildTemplate: async (guildId, options)=>{
34
- return bot.transformers.template(bot, snakelize(await bot.rest.createGuildTemplate(guildId, options)));
35
- },
36
- createInvite: async (channelId, options, reason)=>{
37
- return await bot.rest.createInvite(channelId, options, reason);
38
- },
39
- createRole: async (guildId, options, reason)=>{
40
- return bot.transformers.role(bot, {
41
- role: snakelize(await bot.rest.createRole(guildId, options, reason)),
42
- guildId
43
- });
44
- },
45
- createScheduledEvent: async (guildId, options, reason)=>{
46
- return bot.transformers.scheduledEvent(bot, snakelize(await bot.rest.createScheduledEvent(guildId, options, reason)));
47
- },
48
- createStageInstance: async (options, reason)=>{
49
- return bot.transformers.stageInstance(bot, snakelize(await bot.rest.createStageInstance(options, reason)));
50
- },
51
- createWebhook: async (channelId, options, reason)=>{
52
- return bot.transformers.webhook(bot, snakelize(await bot.rest.createWebhook(channelId, options, reason)));
53
- },
54
- editApplicationCommandPermissions: async (guildId, commandId, bearerToken, options)=>{
55
- return bot.transformers.applicationCommandPermission(bot, snakelize(await bot.rest.editApplicationCommandPermissions(guildId, commandId, bearerToken, options)));
56
- },
57
- editAutomodRule: async (guildId, ruleId, options, reason)=>{
58
- return bot.transformers.automodRule(bot, snakelize(await bot.rest.editAutomodRule(guildId, ruleId, options, reason)));
59
- },
60
- editBotProfile: async (options)=>{
61
- return bot.transformers.user(bot, snakelize(await bot.rest.editBotProfile(options)));
62
- },
63
- editChannel: async (channelId, options, reason)=>{
64
- return bot.transformers.channel(bot, {
65
- channel: snakelize(await bot.rest.editChannel(channelId, options, reason))
66
- });
67
- },
68
- editEmoji: async (guildId, id, options, reason)=>{
69
- return bot.transformers.emoji(bot, snakelize(await bot.rest.editEmoji(guildId, id, options, reason)));
70
- },
71
- editApplicationEmoji: async (id, options)=>{
72
- return bot.transformers.emoji(bot, snakelize(await bot.rest.editApplicationEmoji(id, options)));
73
- },
74
- editFollowupMessage: async (token, messageId, options)=>{
75
- return bot.transformers.message(bot, {
76
- message: snakelize(await bot.rest.editFollowupMessage(token, messageId, options)),
77
- shardId: 0
78
- });
79
- },
80
- editGlobalApplicationCommand: async (commandId, options)=>{
81
- return bot.transformers.applicationCommand(bot, snakelize(await bot.rest.editGlobalApplicationCommand(commandId, options)));
82
- },
83
- editGuild: async (guildId, options, reason)=>{
84
- return bot.transformers.guild(bot, {
85
- guild: snakelize(await bot.rest.editGuild(guildId, options, reason)),
86
- shardId: 0
87
- });
88
- },
89
- editGuildApplicationCommand: async (commandId, guildId, options)=>{
90
- return bot.transformers.applicationCommand(bot, snakelize(await bot.rest.editGuildApplicationCommand(commandId, guildId, options)));
91
- },
92
- editGuildSticker: async (guildId, stickerId, options, reason)=>{
93
- return bot.transformers.sticker(bot, snakelize(await bot.rest.editGuildSticker(guildId, stickerId, options, reason)));
94
- },
95
- editGuildTemplate: async (guildId, templateCode, options)=>{
96
- return bot.transformers.template(bot, snakelize(await bot.rest.editGuildTemplate(guildId, templateCode, options)));
97
- },
98
- editMessage: async (channelId, messageId, options)=>{
99
- return bot.transformers.message(bot, {
100
- message: snakelize(await bot.rest.editMessage(channelId, messageId, options)),
101
- shardId: 0
102
- });
103
- },
104
- editOriginalInteractionResponse: async (token, options)=>{
105
- return bot.transformers.message(bot, {
106
- message: snakelize(await bot.rest.editOriginalInteractionResponse(token, options)),
107
- shardId: 0
108
- });
109
- },
110
- editRole: async (guildId, roleId, options, reason)=>{
111
- return bot.transformers.role(bot, {
112
- role: snakelize(await bot.rest.editRole(guildId, roleId, options, reason)),
113
- guildId
114
- });
115
- },
116
- editRolePositions: async (guildId, options, reason)=>{
117
- return snakelize(await bot.rest.editRolePositions(guildId, options, reason)).map((role)=>bot.transformers.role(bot, {
118
- role,
119
- guildId
120
- }));
121
- },
122
- editScheduledEvent: async (guildId, eventId, options, reason)=>{
123
- return bot.transformers.scheduledEvent(bot, snakelize(await bot.rest.editScheduledEvent(guildId, eventId, options, reason)));
124
- },
125
- editStageInstance: async (channelId, topic, reason)=>{
126
- return bot.transformers.stageInstance(bot, snakelize(await bot.rest.editStageInstance(channelId, topic, reason)));
127
- },
128
- editWebhook: async (webhookId, options, reason)=>{
129
- return bot.transformers.webhook(bot, snakelize(await bot.rest.editWebhook(webhookId, options, reason)));
130
- },
131
- editWebhookMessage: async (webhookId, token, messageId, options)=>{
132
- return bot.transformers.message(bot, {
133
- message: snakelize(await bot.rest.editWebhookMessage(webhookId, token, messageId, options)),
134
- shardId: 0
135
- });
136
- },
137
- editWebhookWithToken: async (webhookId, token, options)=>{
138
- return bot.transformers.webhook(bot, snakelize(await bot.rest.editWebhookWithToken(webhookId, token, options)));
139
- },
140
- editWelcomeScreen: async (guildId, options, reason)=>{
141
- return bot.transformers.welcomeScreen(bot, snakelize(await bot.rest.editWelcomeScreen(guildId, options, reason)));
142
- },
143
- editWidgetSettings: async (guildId, options, reason)=>{
144
- return bot.transformers.widgetSettings(bot, snakelize(await bot.rest.editWidgetSettings(guildId, options, reason)));
145
- },
146
- executeWebhook: async (webhookId, token, options)=>{
147
- const result = await bot.rest.executeWebhook(webhookId, token, options);
148
- if (!result) return;
149
- return bot.transformers.message(bot, {
150
- message: snakelize(result),
151
- shardId: 0
152
- });
153
- },
154
- followAnnouncement: async (sourceChannelId, targetChannelId)=>{
155
- return await bot.rest.followAnnouncement(sourceChannelId, targetChannelId);
156
- },
157
- getActiveThreads: async (guildId)=>{
158
- const result = await bot.rest.getActiveThreads(guildId);
159
- return {
160
- threads: result.threads.map((thread)=>bot.transformers.channel(bot, {
161
- guildId,
162
- channel: snakelize(thread)
163
- })),
164
- members: result.members.map((member)=>bot.transformers.threadMember(bot, snakelize(member), {
165
- guildId
166
- }))
167
- };
168
- },
169
- getApplicationInfo: async ()=>{
170
- return bot.transformers.application(bot, {
171
- application: snakelize(await bot.rest.getApplicationInfo()),
172
- shardId: 0
173
- });
174
- },
175
- editApplicationInfo: async (body)=>{
176
- return bot.transformers.application(bot, {
177
- application: snakelize(await bot.rest.editApplicationInfo(body)),
178
- shardId: 0
179
- });
180
- },
181
- getCurrentAuthenticationInfo: async (bearerToken)=>{
182
- return await bot.rest.getCurrentAuthenticationInfo(bearerToken);
183
- },
184
- exchangeToken: async (clientId, clientSecret, options)=>{
185
- return await bot.rest.exchangeToken(clientId, clientSecret, options);
186
- },
187
- revokeToken: async (clientId, clientSecret, options)=>{
188
- return await bot.rest.revokeToken(clientId, clientSecret, options);
189
- },
190
- getApplicationCommandPermission: async (guildId, commandId, options)=>{
191
- const res = await bot.rest.getApplicationCommandPermission(guildId, commandId, options);
192
- const snakedRes = snakelize(res);
193
- return bot.transformers.applicationCommandPermission(bot, snakedRes);
194
- },
195
- getApplicationCommandPermissions: async (guildId, options)=>{
196
- return (await bot.rest.getApplicationCommandPermissions(guildId, options)).map((res)=>bot.transformers.applicationCommandPermission(bot, snakelize(res)));
197
- },
198
- getAuditLog: async (guildId, options)=>{
199
- return await bot.rest.getAuditLog(guildId, options);
200
- },
201
- getAutomodRule: async (guildId, ruleId)=>{
202
- return bot.transformers.automodRule(bot, snakelize(await bot.rest.getAutomodRule(guildId, ruleId)));
203
- },
204
- getAutomodRules: async (guildId)=>{
205
- return (await bot.rest.getAutomodRules(guildId)).map((res)=>bot.transformers.automodRule(bot, snakelize(res)));
206
- },
207
- getAvailableVoiceRegions: async ()=>{
208
- return (await bot.rest.getAvailableVoiceRegions()).map((res)=>bot.transformers.voiceRegion(bot, snakelize(res)));
209
- },
210
- getBan: async (guildId, userId)=>{
211
- return await bot.rest.getBan(guildId, userId);
212
- },
213
- getBans: async (guildId, options)=>{
214
- return await bot.rest.getBans(guildId, options);
215
- },
216
- getChannel: async (channelId)=>{
217
- return bot.transformers.channel(bot, {
218
- channel: snakelize(await bot.rest.getChannel(channelId))
219
- });
220
- },
221
- getChannelInvites: async (channelId)=>{
222
- return await bot.rest.getChannelInvites(channelId);
223
- // return (await bot.rest.getChannelInvites(channelId)).map((res) => bot.transformers.invite(bot, snakelize(res)))
224
- },
225
- getChannels: async (guildId)=>{
226
- return (await bot.rest.getChannels(guildId)).map((res)=>bot.transformers.channel(bot, {
227
- channel: snakelize(res),
228
- guildId
229
- }));
230
- },
231
- getChannelWebhooks: async (channelId)=>{
232
- return (await bot.rest.getChannelWebhooks(channelId)).map((res)=>bot.transformers.webhook(bot, snakelize(res)));
233
- },
234
- getDmChannel: async (userId)=>{
235
- return bot.transformers.channel(bot, {
236
- channel: snakelize(await bot.rest.getDmChannel(userId))
237
- });
238
- },
239
- getGroupDmChannel: async (options)=>{
240
- return bot.transformers.channel(bot, {
241
- channel: snakelize(await bot.rest.getGroupDmChannel(options))
242
- });
243
- },
244
- getEmoji: async (guildId, emojiId)=>{
245
- return bot.transformers.emoji(bot, snakelize(await bot.rest.getEmoji(guildId, emojiId)));
246
- },
247
- getApplicationEmoji: async (emojiId)=>{
248
- return bot.transformers.emoji(bot, snakelize(await bot.rest.getApplicationEmoji(emojiId)));
249
- },
250
- getEmojis: async (guildId)=>{
251
- return (await bot.rest.getEmojis(guildId)).map((res)=>bot.transformers.emoji(bot, snakelize(res)));
252
- },
253
- getApplicationEmojis: async ()=>{
254
- const res = await bot.rest.getApplicationEmojis();
255
- return {
256
- items: res.items.map((item)=>bot.transformers.emoji(bot, snakelize(item)))
257
- };
258
- },
259
- getFollowupMessage: async (token, messageId)=>{
260
- return bot.transformers.message(bot, {
261
- message: snakelize(await bot.rest.getFollowupMessage(token, messageId)),
262
- shardId: 0
263
- });
264
- },
265
- getGatewayBot: async ()=>{
266
- return bot.transformers.gatewayBot(bot, snakelize(await bot.rest.getGatewayBot()));
267
- },
268
- getGlobalApplicationCommand: async (commandId)=>{
269
- return bot.transformers.applicationCommand(bot, snakelize(await bot.rest.getGlobalApplicationCommand(commandId)));
270
- },
271
- getGlobalApplicationCommands: async (options)=>{
272
- return (await bot.rest.getGlobalApplicationCommands(options)).map((res)=>bot.transformers.applicationCommand(bot, snakelize(res)));
273
- },
274
- getGuild: async (guildId, options)=>{
275
- return bot.transformers.guild(bot, {
276
- guild: snakelize(await bot.rest.getGuild(guildId, options)),
277
- shardId: 0
278
- });
279
- },
280
- getGuilds: async (bearerToken, options)=>{
281
- return (await bot.rest.getGuilds(bearerToken, options)).map((res)=>// @ts-expect-error getGuilds returns partial guilds
282
- bot.transformers.guild(bot, {
283
- guild: snakelize(res),
284
- shardId: 0
285
- }));
286
- },
287
- getGuildApplicationCommand: async (commandId, guildId)=>{
288
- return bot.transformers.applicationCommand(bot, snakelize(await bot.rest.getGuildApplicationCommand(commandId, guildId)));
289
- },
290
- getGuildApplicationCommands: async (guildId, options)=>{
291
- return (await bot.rest.getGuildApplicationCommands(guildId, options)).map((res)=>bot.transformers.applicationCommand(bot, snakelize(res)));
292
- },
293
- getGuildPreview: async (guildId)=>{
294
- return await bot.rest.getGuildPreview(guildId);
295
- // return bot.transformers.xxx(bot, snakelize(await bot.rest.getGuildPreview(guildId)))
296
- },
297
- getGuildSticker: async (guildId, stickerId)=>{
298
- return bot.transformers.sticker(bot, snakelize(await bot.rest.getGuildSticker(guildId, stickerId)));
299
- },
300
- getGuildStickers: async (guildId)=>{
301
- return (await bot.rest.getGuildStickers(guildId)).map((res)=>bot.transformers.sticker(bot, snakelize(res)));
302
- },
303
- getGuildTemplate: async (templateCode)=>{
304
- return bot.transformers.template(bot, snakelize(await bot.rest.getGuildTemplate(templateCode)));
305
- },
306
- getGuildTemplates: async (guildId)=>{
307
- return (await bot.rest.getGuildTemplates(guildId)).map((res)=>bot.transformers.template(bot, snakelize(res)));
308
- },
309
- getGuildWebhooks: async (guildId)=>{
310
- return (await bot.rest.getGuildWebhooks(guildId)).map((res)=>bot.transformers.webhook(bot, snakelize(res)));
311
- },
312
- getIntegrations: async (guildId)=>{
313
- return (await bot.rest.getIntegrations(guildId)).map((res)=>bot.transformers.integration(bot, snakelize({
314
- ...res,
315
- guildId: guildId.toString()
316
- })));
317
- },
318
- getInvite: async (inviteCode, options)=>{
319
- return bot.transformers.invite(bot, {
320
- invite: snakelize(await bot.rest.getInvite(inviteCode, options)),
321
- shardId: 0
322
- });
323
- },
324
- getInvites: async (guildId)=>{
325
- return (await bot.rest.getInvites(guildId)).map((res)=>bot.transformers.invite(bot, {
326
- invite: snakelize(res),
327
- shardId: 0
328
- }));
329
- },
330
- getMessage: async (channelId, messageId)=>{
331
- return bot.transformers.message(bot, {
332
- message: snakelize(await bot.rest.getMessage(channelId, messageId)),
333
- shardId: 0
334
- });
335
- },
336
- getMessages: async (channelId, options)=>{
337
- return (await bot.rest.getMessages(channelId, options)).map((res)=>bot.transformers.message(bot, {
338
- message: snakelize(res),
339
- shardId: 0
340
- }));
341
- },
342
- getStickerPack: async (stickerPackId)=>{
343
- return bot.transformers.stickerPack(bot, snakelize(await bot.rest.getStickerPack(stickerPackId)));
344
- },
345
- getStickerPacks: async ()=>{
346
- return (await bot.rest.getStickerPacks()).map((res)=>bot.transformers.stickerPack(bot, snakelize(res)));
347
- },
348
- getOriginalInteractionResponse: async (token)=>{
349
- return bot.transformers.message(bot, {
350
- message: snakelize(await bot.rest.getOriginalInteractionResponse(token)),
351
- shardId: 0
352
- });
353
- },
354
- getChannelPins: async (channelId, options)=>{
355
- const res = snakelize(await bot.rest.getChannelPins(channelId, options));
356
- return {
357
- hasMore: res.has_more,
358
- items: res.items.map((item)=>bot.transformers.messagePin(bot, item))
359
- };
360
- },
361
- getPinnedMessages: async (channelId)=>{
362
- return (await bot.rest.getPinnedMessages(channelId)).map((res)=>bot.transformers.message(bot, {
363
- message: snakelize(res),
364
- shardId: 0
365
- }));
366
- },
367
- getPrivateArchivedThreads: async (channelId, options)=>{
368
- return await bot.rest.getPrivateArchivedThreads(channelId, options);
369
- },
370
- getPrivateJoinedArchivedThreads: async (channelId, options)=>{
371
- return await bot.rest.getPrivateJoinedArchivedThreads(channelId, options);
372
- },
373
- getPruneCount: async (guildId, options)=>{
374
- return await bot.rest.getPruneCount(guildId, options);
375
- },
376
- getPublicArchivedThreads: async (channelId, options)=>{
377
- return await bot.rest.getPublicArchivedThreads(channelId, options);
378
- },
379
- getRoles: async (guildId)=>{
380
- return snakelize(await bot.rest.getRoles(guildId)).map((role)=>bot.transformers.role(bot, {
381
- role,
382
- guildId
383
- }));
384
- },
385
- getRole: async (guildId, roleId)=>{
386
- return bot.transformers.role(bot, {
387
- role: snakelize(await bot.rest.getRole(guildId, roleId)),
388
- guildId
389
- });
390
- },
391
- getScheduledEvent: async (guildId, eventId, options)=>{
392
- return bot.transformers.scheduledEvent(bot, snakelize(await bot.rest.getScheduledEvent(guildId, eventId, options)));
393
- },
394
- getScheduledEvents: async (guildId, options)=>{
395
- return (await bot.rest.getScheduledEvents(guildId, options)).map((res)=>bot.transformers.scheduledEvent(bot, snakelize(res)));
396
- },
397
- getScheduledEventUsers: async (guildId, eventId, options)=>{
398
- return (await bot.rest.getScheduledEventUsers(guildId, eventId, options)).map((u)=>{
399
- return {
400
- user: bot.transformers.user(bot, snakelize(u.user)),
401
- member: u.member && bot.transformers.member(bot, snakelize(u.member), guildId, bot.transformers.snowflake(u.user.id))
402
- };
403
- });
404
- },
405
- getSessionInfo: async ()=>{
406
- return bot.transformers.gatewayBot(bot, snakelize(await bot.rest.getSessionInfo()));
407
- },
408
- getStageInstance: async (channelId)=>{
409
- return bot.transformers.stageInstance(bot, snakelize(await bot.rest.getStageInstance(channelId)));
410
- },
411
- getOwnVoiceState: async (guildId)=>{
412
- return bot.transformers.voiceState(bot, {
413
- guildId,
414
- voiceState: snakelize(await bot.rest.getOwnVoiceState(guildId))
415
- });
416
- },
417
- getUserVoiceState: async (guildId, userId)=>{
418
- return bot.transformers.voiceState(bot, {
419
- guildId,
420
- voiceState: snakelize(await bot.rest.getUserVoiceState(guildId, userId))
421
- });
422
- },
423
- getSticker: async (stickerId)=>{
424
- return bot.transformers.sticker(bot, snakelize(await bot.rest.getSticker(stickerId)));
425
- },
426
- getThreadMember: async (channelId, userId, options, extra)=>{
427
- return bot.transformers.threadMember(bot, snakelize(await bot.rest.getThreadMember(channelId, userId, options)), extra);
428
- },
429
- getThreadMembers: async (channelId, options, extra)=>{
430
- return (await bot.rest.getThreadMembers(channelId, options)).map((res)=>bot.transformers.threadMember(bot, snakelize(res), extra));
431
- },
432
- getReactions: async (channelId, messageId, reaction, options)=>{
433
- return (await bot.rest.getReactions(channelId, messageId, reaction, options)).map((res)=>bot.transformers.user(bot, snakelize(res)));
434
- },
435
- getUser: async (id)=>{
436
- return bot.transformers.user(bot, snakelize(await bot.rest.getUser(id)));
437
- },
438
- getCurrentUser: async (bearerToken)=>{
439
- return bot.transformers.user(bot, snakelize(await bot.rest.getCurrentUser(bearerToken)));
440
- },
441
- getUserConnections: async (bearerToken)=>{
442
- return await bot.rest.getUserConnections(bearerToken);
443
- },
444
- getUserApplicationRoleConnection: async (bearerToken, applicationId)=>{
445
- return await bot.rest.getUserApplicationRoleConnection(bearerToken, applicationId);
446
- },
447
- getVanityUrl: async (guildId)=>{
448
- return await bot.rest.getVanityUrl(guildId);
449
- },
450
- getVoiceRegions: async (guildId)=>{
451
- return (await bot.rest.getVoiceRegions(guildId)).map((res)=>bot.transformers.voiceRegion(bot, snakelize(res)));
452
- },
453
- getWebhook: async (webhookId)=>{
454
- return bot.transformers.webhook(bot, snakelize(await bot.rest.getWebhook(webhookId)));
455
- },
456
- getWebhookMessage: async (webhookId, token, messageId, options)=>{
457
- return bot.transformers.message(bot, {
458
- message: snakelize(await bot.rest.getWebhookMessage(webhookId, token, messageId, options)),
459
- shardId: 0
460
- });
461
- },
462
- getWebhookWithToken: async (webhookId, token)=>{
463
- return bot.transformers.webhook(bot, snakelize(await bot.rest.getWebhookWithToken(webhookId, token)));
464
- },
465
- getWelcomeScreen: async (guildId)=>{
466
- return bot.transformers.welcomeScreen(bot, snakelize(await bot.rest.getWelcomeScreen(guildId)));
467
- },
468
- getWidget: async (guildId)=>{
469
- return bot.transformers.widget(bot, snakelize(await bot.rest.getWidget(guildId)));
470
- },
471
- getWidgetSettings: async (guildId)=>{
472
- return bot.transformers.widgetSettings(bot, snakelize(await bot.rest.getWidgetSettings(guildId)));
473
- },
474
- publishMessage: async (channelId, messageId)=>{
475
- return bot.transformers.message(bot, {
476
- message: snakelize(await bot.rest.publishMessage(channelId, messageId)),
477
- shardId: 0
478
- });
479
- },
480
- sendMessage: async (channelId, options)=>{
481
- return bot.transformers.message(bot, {
482
- message: snakelize(await bot.rest.sendMessage(channelId, options)),
483
- shardId: 0
484
- });
485
- },
486
- sendFollowupMessage: async (token, options)=>{
487
- return bot.transformers.message(bot, {
488
- message: snakelize(await bot.rest.sendFollowupMessage(token, options)),
489
- shardId: 0
490
- });
491
- },
492
- startThreadWithMessage: async (channelId, messageId, options, reason)=>{
493
- return bot.transformers.channel(bot, {
494
- channel: snakelize(await bot.rest.startThreadWithMessage(channelId, messageId, options, reason))
495
- });
496
- },
497
- startThreadWithoutMessage: async (channelId, options, reason)=>{
498
- return bot.transformers.channel(bot, {
499
- channel: snakelize(await bot.rest.startThreadWithoutMessage(channelId, options, reason))
500
- });
501
- },
502
- syncGuildTemplate: async (guildId)=>{
503
- return bot.transformers.template(bot, snakelize(await bot.rest.syncGuildTemplate(guildId)));
504
- },
505
- upsertGlobalApplicationCommands: async (commands, options)=>{
506
- return (await bot.rest.upsertGlobalApplicationCommands(commands, options)).map((res)=>bot.transformers.applicationCommand(bot, snakelize(res)));
507
- },
508
- upsertGuildApplicationCommands: async (guildId, commands, options)=>{
509
- return (await bot.rest.upsertGuildApplicationCommands(guildId, commands, options)).map((res)=>bot.transformers.applicationCommand(bot, snakelize(res)));
510
- },
511
- editBotMember: async (guildId, options, reason)=>{
512
- return bot.transformers.member(bot, snakelize(await bot.rest.editBotMember(guildId, options, reason)), guildId, bot.id);
513
- },
514
- editMember: async (guildId, userId, options, reason)=>{
515
- return bot.transformers.member(bot, snakelize(await bot.rest.editMember(guildId, userId, options, reason)), guildId, userId);
516
- },
517
- getMember: async (guildId, userId)=>{
518
- return bot.transformers.member(bot, snakelize(await bot.rest.getMember(guildId, userId)), guildId, userId);
519
- },
520
- getCurrentMember: async (guildId, bearerToken)=>{
521
- const res = await bot.rest.getCurrentMember(guildId, bearerToken);
522
- return bot.transformers.member(bot, snakelize(res), guildId, bot.transformers.snowflake(res.user.id));
523
- },
524
- getMembers: async (guildId, options)=>{
525
- return (await bot.rest.getMembers(guildId, options)).map((res)=>bot.transformers.member(bot, snakelize(res), guildId, bot.transformers.snowflake(res.user.id)));
526
- },
527
- pruneMembers: async (guildId, options, reason)=>{
528
- return await bot.rest.pruneMembers(guildId, options, reason);
529
- },
530
- searchMembers: async (guildId, query, options)=>{
531
- return (await bot.rest.searchMembers(guildId, query, options)).map((res)=>bot.transformers.member(bot, snakelize(res), guildId, bot.transformers.snowflake(res.user.id)));
532
- },
533
- bulkBanMembers: async (guildId, options, reason)=>{
534
- const res = await bot.rest.bulkBanMembers(guildId, options, reason);
535
- return {
536
- bannedUsers: res.bannedUsers.map((x)=>bot.transformers.snowflake(x)),
537
- failedUsers: res.failedUsers.map((x)=>bot.transformers.snowflake(x))
538
- };
539
- },
540
- getApplicationActivityInstance: async (applicationId, instanceId)=>{
541
- return await bot.rest.getApplicationActivityInstance(applicationId, instanceId);
542
- },
543
- listApplicationRoleConnectionsMetadataRecords: async (applicationId)=>{
544
- return await bot.rest.listApplicationRoleConnectionsMetadataRecords(applicationId);
545
- },
546
- updateApplicationRoleConnectionsMetadataRecords: async (applicationId, options)=>{
547
- return await bot.rest.updateApplicationRoleConnectionsMetadataRecords(applicationId, options);
548
- },
549
- createLobby: async (options)=>{
550
- return bot.transformers.lobby(bot, snakelize(await bot.rest.createLobby(options)));
551
- },
552
- getLobby: async (lobbyId)=>{
553
- return bot.transformers.lobby(bot, snakelize(await bot.rest.getLobby(lobbyId)));
554
- },
555
- modifyLobby: async (lobbyId, options)=>{
556
- return bot.transformers.lobby(bot, snakelize(await bot.rest.modifyLobby(lobbyId, options)));
557
- },
558
- addMemberToLobby: async (lobbyId, userId, options)=>{
559
- return bot.transformers.lobbyMember(bot, snakelize(await bot.rest.addMemberToLobby(lobbyId, userId, options)));
560
- },
561
- linkChannelToLobby: async (lobbyId, bearerToken, options)=>{
562
- return bot.transformers.lobby(bot, snakelize(await bot.rest.linkChannelToLobby(lobbyId, bearerToken, options)));
563
- },
564
- unlinkChannelToLobby: async (lobbyId, bearerToken)=>{
565
- return bot.transformers.lobby(bot, snakelize(await bot.rest.unlinkChannelToLobby(lobbyId, bearerToken)));
566
- },
567
- // All useless void return functions here
568
- addReaction: async (channelId, messageId, reaction)=>{
569
- return await bot.rest.addReaction(channelId, messageId, reaction);
570
- },
571
- addReactions: async (channelId, messageId, reactions, ordered)=>{
572
- return await bot.rest.addReactions(channelId, messageId, reactions, ordered);
573
- },
574
- addRole: async (guildId, userId, roleId, reason)=>{
575
- return await bot.rest.addRole(guildId, userId, roleId, reason);
576
- },
577
- addThreadMember: async (channelId, userId)=>{
578
- return await bot.rest.addThreadMember(channelId, userId);
579
- },
580
- addDmRecipient: async (channelId, userId, options)=>{
581
- return await bot.rest.addDmRecipient(channelId, userId, options);
582
- },
583
- addGuildMember: async (guildId, userId, options)=>{
584
- return await bot.rest.addGuildMember(guildId, userId, options);
585
- },
586
- deleteAutomodRule: async (guildId, ruleId, reason)=>{
587
- return await bot.rest.deleteAutomodRule(guildId, ruleId, reason);
588
- },
589
- deleteChannel: async (channelId, reason)=>{
590
- return await bot.rest.deleteChannel(channelId, reason);
591
- },
592
- deleteChannelPermissionOverride: async (channelId, overwriteId, reason)=>{
593
- return await bot.rest.deleteChannelPermissionOverride(channelId, overwriteId, reason);
594
- },
595
- deleteEmoji: async (guildId, id, reason)=>{
596
- return await bot.rest.deleteEmoji(guildId, id, reason);
597
- },
598
- deleteApplicationEmoji: async (id)=>{
599
- return await bot.rest.deleteApplicationEmoji(id);
600
- },
601
- deleteFollowupMessage: async (token, messageId)=>{
602
- return await bot.rest.deleteFollowupMessage(token, messageId);
603
- },
604
- deleteGlobalApplicationCommand: async (commandId)=>{
605
- return await bot.rest.deleteGlobalApplicationCommand(commandId);
606
- },
607
- deleteGuildApplicationCommand: async (commandId, guildId)=>{
608
- return await bot.rest.deleteGuildApplicationCommand(commandId, guildId);
609
- },
610
- deleteGuildSticker: async (guildId, stickerId, reason)=>{
611
- return await bot.rest.deleteGuildSticker(guildId, stickerId, reason);
612
- },
613
- deleteGuildTemplate: async (guildId, templateCode)=>{
614
- return await bot.rest.deleteGuildTemplate(guildId, templateCode);
615
- },
616
- deleteIntegration: async (guildId, integrationId, reason)=>{
617
- return await bot.rest.deleteIntegration(guildId, integrationId, reason);
618
- },
619
- deleteInvite: async (inviteCode, reason)=>{
620
- return await bot.rest.deleteInvite(inviteCode, reason);
621
- },
622
- deleteMessage: async (channelId, messageId, reason)=>{
623
- return await bot.rest.deleteMessage(channelId, messageId, reason);
624
- },
625
- deleteMessages: async (channelId, messageIds, reason)=>{
626
- return await bot.rest.deleteMessages(channelId, messageIds, reason);
627
- },
628
- deleteOriginalInteractionResponse: async (token)=>{
629
- return await bot.rest.deleteOriginalInteractionResponse(token);
630
- },
631
- deleteOwnReaction: async (channelId, messageId, reaction)=>{
632
- return await bot.rest.deleteOwnReaction(channelId, messageId, reaction);
633
- },
634
- deleteReactionsAll: async (channelId, messageId)=>{
635
- return await bot.rest.deleteReactionsAll(channelId, messageId);
636
- },
637
- deleteReactionsEmoji: async (channelId, messageId, reaction)=>{
638
- return await bot.rest.deleteReactionsEmoji(channelId, messageId, reaction);
639
- },
640
- deleteRole: async (guildId, roleId, reason)=>{
641
- return await bot.rest.deleteRole(guildId, roleId, reason);
642
- },
643
- deleteScheduledEvent: async (guildId, eventId)=>{
644
- return await bot.rest.deleteScheduledEvent(guildId, eventId);
645
- },
646
- deleteStageInstance: async (channelId, reason)=>{
647
- return await bot.rest.deleteStageInstance(channelId, reason);
648
- },
649
- deleteUserReaction: async (channelId, messageId, userId, reaction)=>{
650
- return await bot.rest.deleteUserReaction(channelId, messageId, userId, reaction);
651
- },
652
- deleteWebhook: async (webhookId, reason)=>{
653
- return await bot.rest.deleteWebhook(webhookId, reason);
654
- },
655
- deleteWebhookMessage: async (webhookId, token, messageId, options)=>{
656
- return await bot.rest.deleteWebhookMessage(webhookId, token, messageId, options);
657
- },
658
- deleteWebhookWithToken: async (webhookId, token)=>{
659
- return await bot.rest.deleteWebhookWithToken(webhookId, token);
660
- },
661
- editChannelPermissionOverrides: async (channelId, options, reason)=>{
662
- return await bot.rest.editChannelPermissionOverrides(channelId, options, reason);
663
- },
664
- editChannelPositions: async (guildId, channelPositions)=>{
665
- return await bot.rest.editChannelPositions(guildId, channelPositions);
666
- },
667
- editOwnVoiceState: async (guildId, options)=>{
668
- return await bot.rest.editOwnVoiceState(guildId, options);
669
- },
670
- editUserVoiceState: async (guildId, options)=>{
671
- return await bot.rest.editUserVoiceState(guildId, options);
672
- },
673
- editUserApplicationRoleConnection: async (bearerToken, applicationId, options)=>{
674
- return await bot.rest.editUserApplicationRoleConnection(bearerToken, applicationId, options);
675
- },
676
- joinThread: async (channelId)=>{
677
- return await bot.rest.joinThread(channelId);
678
- },
679
- leaveGuild: async (guildId)=>{
680
- return await bot.rest.leaveGuild(guildId);
681
- },
682
- leaveThread: async (channelId)=>{
683
- return await bot.rest.leaveThread(channelId);
684
- },
685
- removeRole: async (guildId, userId, roleId, reason)=>{
686
- return await bot.rest.removeRole(guildId, userId, roleId, reason);
687
- },
688
- removeThreadMember: async (channelId, userId)=>{
689
- return await bot.rest.removeThreadMember(channelId, userId);
690
- },
691
- removeDmRecipient: async (channelId, userId)=>{
692
- return await bot.rest.removeDmRecipient(channelId, userId);
693
- },
694
- sendInteractionResponse: async (interactionId, token, options, params)=>{
695
- const response = await bot.rest.sendInteractionResponse(interactionId, token, options, params);
696
- if (!response) return;
697
- return bot.transformers.interactionCallbackResponse(bot, {
698
- interactionCallbackResponse: snakelize(response),
699
- shardId: 0
700
- });
701
- },
702
- triggerTypingIndicator: async (channelId)=>{
703
- return await bot.rest.triggerTypingIndicator(channelId);
704
- },
705
- banMember: async (guildId, userId, options, reason)=>{
706
- return await bot.rest.banMember(guildId, userId, options, reason);
707
- },
708
- kickMember: async (guildId, userId, reason)=>{
709
- return await bot.rest.kickMember(guildId, userId, reason);
710
- },
711
- pinMessage: async (channelId, messageId, reason)=>{
712
- return await bot.rest.pinMessage(channelId, messageId, reason);
713
- },
714
- unbanMember: async (guildId, userId, reason)=>{
715
- return await bot.rest.unbanMember(guildId, userId, reason);
716
- },
717
- unpinMessage: async (channelId, messageId, reason)=>{
718
- return await bot.rest.unpinMessage(channelId, messageId, reason);
719
- },
720
- getGuildOnboarding: async (guildId)=>{
721
- return bot.transformers.guildOnboarding(bot, snakelize(await bot.rest.getGuildOnboarding(guildId)));
722
- },
723
- editGuildOnboarding: async (guildId, options, reason)=>{
724
- return bot.transformers.guildOnboarding(bot, snakelize(await bot.rest.editGuildOnboarding(guildId, options, reason)));
725
- },
726
- listEntitlements: async (applicationId, options)=>{
727
- return (await bot.rest.listEntitlements(applicationId, options)).map((entitlement)=>bot.transformers.entitlement(bot, snakelize(entitlement)));
728
- },
729
- getEntitlement: async (applicationId, entitlementId)=>{
730
- return bot.transformers.entitlement(bot, snakelize(await bot.rest.getEntitlement(applicationId, entitlementId)));
731
- },
732
- createTestEntitlement: async (applicationId, body)=>{
733
- // @ts-expect-error createTestEntitlement gives a partial, and this method returns a partial
734
- return bot.transformers.entitlement(bot, snakelize(await bot.rest.createTestEntitlement(applicationId, body)));
735
- },
736
- deleteTestEntitlement: async (applicationId, entitlementId)=>{
737
- await bot.rest.deleteTestEntitlement(applicationId, entitlementId);
738
- },
739
- listSkus: async (applicationId)=>{
740
- return (await bot.rest.listSkus(applicationId)).map((sku)=>bot.transformers.sku(bot, snakelize(sku)));
741
- },
742
- getSubscription: async (skuId, subscriptionId)=>{
743
- return bot.transformers.subscription(bot, snakelize(await bot.rest.getSubscription(skuId, subscriptionId)));
744
- },
745
- listSubscriptions: async (skuId, options)=>{
746
- return (await bot.rest.listSubscriptions(skuId, options)).map((subscription)=>bot.transformers.subscription(bot, snakelize(subscription)));
747
- },
748
- sendSoundboardSound: async (channelId, options)=>{
749
- await bot.rest.sendSoundboardSound(channelId, options);
750
- },
751
- listDefaultSoundboardSounds: async ()=>{
752
- return (await bot.rest.listDefaultSoundboardSounds()).map((sound)=>bot.transformers.soundboardSound(bot, snakelize(sound)));
753
- },
754
- listGuildSoundboardSounds: async (guildId)=>{
755
- const res = await bot.rest.listGuildSoundboardSounds(guildId);
756
- return {
757
- items: res.items.map((sound)=>bot.transformers.soundboardSound(bot, snakelize(sound)))
758
- };
759
- },
760
- getGuildSoundboardSound: async (guildId, soundId)=>{
761
- return bot.transformers.soundboardSound(bot, snakelize(await bot.rest.getGuildSoundboardSound(guildId, soundId)));
762
- },
763
- createGuildSoundboardSound: async (guildId, options, reason)=>{
764
- return bot.transformers.soundboardSound(bot, snakelize(await bot.rest.createGuildSoundboardSound(guildId, options, reason)));
765
- },
766
- modifyGuildSoundboardSound: async (guildId, soundId, options, reason)=>{
767
- return bot.transformers.soundboardSound(bot, snakelize(await bot.rest.modifyGuildSoundboardSound(guildId, soundId, options, reason)));
768
- },
769
- deleteGuildSoundboardSound: async (guildId, soundId, reason)=>{
770
- await bot.rest.deleteGuildSoundboardSound(guildId, soundId, reason);
771
- },
772
- deleteLobby: async (lobbyId)=>{
773
- await bot.rest.deleteLobby(lobbyId);
774
- },
775
- removeMemberFromLobby: async (lobbyId, userId)=>{
776
- await bot.rest.removeMemberFromLobby(lobbyId, userId);
777
- },
778
- leaveLobby: async (lobbyId, bearerToken)=>{
779
- await bot.rest.leaveLobby(lobbyId, bearerToken);
780
- }
781
- };
782
- }
783
-
784
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtcbiAgQWRkRG1SZWNpcGllbnRPcHRpb25zLFxuICBBZGRHdWlsZE1lbWJlck9wdGlvbnMsXG4gIEFkZExvYmJ5TWVtYmVyLFxuICBBdExlYXN0T25lLFxuICBCZWdpbkd1aWxkUHJ1bmUsXG4gIEJpZ1N0cmluZyxcbiAgQ2FtZWxpemUsXG4gIENyZWF0ZUFwcGxpY2F0aW9uQ29tbWFuZCxcbiAgQ3JlYXRlQXBwbGljYXRpb25FbW9qaSxcbiAgQ3JlYXRlQXV0b01vZGVyYXRpb25SdWxlT3B0aW9ucyxcbiAgQ3JlYXRlQ2hhbm5lbEludml0ZSxcbiAgQ3JlYXRlRm9ydW1Qb3N0V2l0aE1lc3NhZ2UsXG4gIENyZWF0ZUdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZE9wdGlvbnMsXG4gIENyZWF0ZUd1aWxkQXBwbGljYXRpb25Db21tYW5kT3B0aW9ucyxcbiAgQ3JlYXRlR3VpbGRCYW4sXG4gIENyZWF0ZUd1aWxkQnVsa0JhbixcbiAgQ3JlYXRlR3VpbGRDaGFubmVsLFxuICBDcmVhdGVHdWlsZEVtb2ppLFxuICBDcmVhdGVHdWlsZFJvbGUsXG4gIENyZWF0ZUd1aWxkU291bmRib2FyZFNvdW5kLFxuICBDcmVhdGVHdWlsZFN0aWNrZXJPcHRpb25zLFxuICBDcmVhdGVMb2JieSxcbiAgQ3JlYXRlTWVzc2FnZU9wdGlvbnMsXG4gIENyZWF0ZVNjaGVkdWxlZEV2ZW50LFxuICBDcmVhdGVTdGFnZUluc3RhbmNlLFxuICBDcmVhdGVUZW1wbGF0ZSxcbiAgQ3JlYXRlVGVzdEVudGl0bGVtZW50LFxuICBDcmVhdGVXZWJob29rLFxuICBEZWxldGVXZWJob29rTWVzc2FnZU9wdGlvbnMsXG4gIERpc2NvcmRBY2Nlc3NUb2tlblJlc3BvbnNlLFxuICBEaXNjb3JkQWN0aXZpdHlJbnN0YW5jZSxcbiAgRGlzY29yZEFwcGxpY2F0aW9uQ29tbWFuZFBlcm1pc3Npb25zLFxuICBEaXNjb3JkQXBwbGljYXRpb25Sb2xlQ29ubmVjdGlvbixcbiAgRGlzY29yZEFwcGxpY2F0aW9uUm9sZUNvbm5lY3Rpb25NZXRhZGF0YSxcbiAgRGlzY29yZEF1ZGl0TG9nLFxuICBEaXNjb3JkQmFuLFxuICBEaXNjb3JkQ29ubmVjdGlvbixcbiAgRGlzY29yZEN1cnJlbnRBdXRob3JpemF0aW9uLFxuICBEaXNjb3JkRm9sbG93ZWRDaGFubmVsLFxuICBEaXNjb3JkR2V0R2F0ZXdheUJvdCxcbiAgRGlzY29yZEd1aWxkUHJldmlldyxcbiAgRGlzY29yZEd1aWxkV2lkZ2V0U2V0dGluZ3MsXG4gIERpc2NvcmRJbnZpdGUsXG4gIERpc2NvcmRJbnZpdGVNZXRhZGF0YSxcbiAgRGlzY29yZExpc3RBcmNoaXZlZFRocmVhZHMsXG4gIERpc2NvcmRNZXNzYWdlLFxuICBEaXNjb3JkUHJ1bmVkQ291bnQsXG4gIERpc2NvcmRUb2tlbkV4Y2hhbmdlLFxuICBEaXNjb3JkVG9rZW5SZXZvY2F0aW9uLFxuICBEaXNjb3JkVmFuaXR5VXJsLFxuICBEaXNjb3JkVm9pY2VSZWdpb24sXG4gIEVkaXRBcHBsaWNhdGlvbixcbiAgRWRpdEF1dG9Nb2RlcmF0aW9uUnVsZU9wdGlvbnMsXG4gIEVkaXRCb3RNZW1iZXJPcHRpb25zLFxuICBFZGl0Q2hhbm5lbFBlcm1pc3Npb25PdmVycmlkZXNPcHRpb25zLFxuICBFZGl0R3VpbGRPbmJvYXJkaW5nLFxuICBFZGl0R3VpbGRSb2xlLFxuICBFZGl0R3VpbGRTdGlja2VyT3B0aW9ucyxcbiAgRWRpdE1lc3NhZ2UsXG4gIEVkaXRPd25Wb2ljZVN0YXRlLFxuICBFZGl0U2NoZWR1bGVkRXZlbnQsXG4gIEVkaXRVc2VyVm9pY2VTdGF0ZSxcbiAgRWRpdFdlYmhvb2tNZXNzYWdlT3B0aW9ucyxcbiAgRXhlY3V0ZVdlYmhvb2ssXG4gIEdldEFwcGxpY2F0aW9uQ29tbWFuZFBlcm1pc3Npb25PcHRpb25zLFxuICBHZXRCYW5zLFxuICBHZXRDaGFubmVsUGluc09wdGlvbnMsXG4gIEdldEVudGl0bGVtZW50cyxcbiAgR2V0R2xvYmFsQXBwbGljYXRpb25Db21tYW5kc09wdGlvbnMsXG4gIEdldEdyb3VwRG1PcHRpb25zLFxuICBHZXRHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZHNPcHRpb25zLFxuICBHZXRHdWlsZEF1ZGl0TG9nLFxuICBHZXRHdWlsZFBydW5lQ291bnRRdWVyeSxcbiAgR2V0SW52aXRlLFxuICBHZXRNZXNzYWdlc09wdGlvbnMsXG4gIEdldFJlYWN0aW9ucyxcbiAgR2V0U2NoZWR1bGVkRXZlbnRzLFxuICBHZXRTY2hlZHVsZWRFdmVudFVzZXJzLFxuICBHZXRUaHJlYWRNZW1iZXIsXG4gIEdldFVzZXJHdWlsZHMsXG4gIEdldFdlYmhvb2tNZXNzYWdlT3B0aW9ucyxcbiAgSW50ZXJhY3Rpb25DYWxsYmFja0RhdGEsXG4gIEludGVyYWN0aW9uQ2FsbGJhY2tPcHRpb25zLFxuICBJbnRlcmFjdGlvblJlc3BvbnNlLFxuICBMaW5rQ2hhbm5lbFRvTG9iYnksXG4gIExpc3RBcmNoaXZlZFRocmVhZHMsXG4gIExpc3RHdWlsZE1lbWJlcnMsXG4gIExpc3RTa3VTdWJzY3JpcHRpb25zT3B0aW9ucyxcbiAgTGlzdFRocmVhZE1lbWJlcnMsXG4gIE1vZGlmeUFwcGxpY2F0aW9uRW1vamksXG4gIE1vZGlmeUNoYW5uZWwsXG4gIE1vZGlmeUd1aWxkLFxuICBNb2RpZnlHdWlsZENoYW5uZWxQb3NpdGlvbnMsXG4gIE1vZGlmeUd1aWxkRW1vamksXG4gIE1vZGlmeUd1aWxkTWVtYmVyLFxuICBNb2RpZnlHdWlsZFNvdW5kYm9hcmRTb3VuZCxcbiAgTW9kaWZ5R3VpbGRUZW1wbGF0ZSxcbiAgTW9kaWZ5R3VpbGRXZWxjb21lU2NyZWVuLFxuICBNb2RpZnlMb2JieSxcbiAgTW9kaWZ5Um9sZVBvc2l0aW9ucyxcbiAgTW9kaWZ5V2ViaG9vayxcbiAgU2VhcmNoTWVtYmVycyxcbiAgU2VuZFNvdW5kYm9hcmRTb3VuZCxcbiAgU3RhcnRUaHJlYWRXaXRoTWVzc2FnZSxcbiAgU3RhcnRUaHJlYWRXaXRob3V0TWVzc2FnZSxcbiAgVXBzZXJ0R2xvYmFsQXBwbGljYXRpb25Db21tYW5kT3B0aW9ucyxcbiAgVXBzZXJ0R3VpbGRBcHBsaWNhdGlvbkNvbW1hbmRPcHRpb25zLFxufSBmcm9tICdAZGlzY29yZGVuby90eXBlcydcbmltcG9ydCB7IHNuYWtlbGl6ZSB9IGZyb20gJ0BkaXNjb3JkZW5vL3V0aWxzJ1xuaW1wb3J0IHR5cGUgeyBCb3QgfSBmcm9tICcuL2JvdC5qcydcbmltcG9ydCB0eXBlIHsgRGVzaXJlZFByb3BlcnRpZXNCZWhhdmlvciwgU2V0dXBEZXNpcmVkUHJvcHMsIFRyYW5zZm9ybWVyc0Rlc2lyZWRQcm9wZXJ0aWVzIH0gZnJvbSAnLi9kZXNpcmVkUHJvcGVydGllcy5qcydcbmltcG9ydCB0eXBlIHtcbiAgQXBwbGljYXRpb24sXG4gIEFwcGxpY2F0aW9uQ29tbWFuZCxcbiAgQXV0b01vZGVyYXRpb25SdWxlLFxuICBDaGFubmVsLFxuICBFbW9qaSxcbiAgRW50aXRsZW1lbnQsXG4gIEd1aWxkLFxuICBHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZFBlcm1pc3Npb25zLFxuICBHdWlsZE9uYm9hcmRpbmcsXG4gIEd1aWxkV2lkZ2V0LFxuICBHdWlsZFdpZGdldFNldHRpbmdzLFxuICBJbnRlZ3JhdGlvbixcbiAgSW50ZXJhY3Rpb25DYWxsYmFja1Jlc3BvbnNlLFxuICBJbnZpdGUsXG4gIExvYmJ5LFxuICBMb2JieU1lbWJlcixcbiAgTWVtYmVyLFxuICBNZXNzYWdlLFxuICBNZXNzYWdlUGluLFxuICBSb2xlLFxuICBTY2hlZHVsZWRFdmVudCxcbiAgU2t1LFxuICBTb3VuZGJvYXJkU291bmQsXG4gIFN0YWdlSW5zdGFuY2UsXG4gIFN0aWNrZXIsXG4gIFN0aWNrZXJQYWNrLFxuICBTdWJzY3JpcHRpb24sXG4gIFRlbXBsYXRlLFxuICBUaHJlYWRNZW1iZXIsXG4gIFRocmVhZE1lbWJlclRyYW5zZm9ybWVyRXh0cmEsXG4gIFVzZXIsXG4gIFZvaWNlU3RhdGUsXG4gIFdlYmhvb2ssXG4gIFdlbGNvbWVTY3JlZW4sXG59IGZyb20gJy4vdHJhbnNmb3JtZXJzL2luZGV4LmpzJ1xuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQm90SGVscGVyczxUUHJvcHMgZXh0ZW5kcyBUcmFuc2Zvcm1lcnNEZXNpcmVkUHJvcGVydGllcywgVEJlaGF2aW9yIGV4dGVuZHMgRGVzaXJlZFByb3BlcnRpZXNCZWhhdmlvcj4oXG4gIGJvdDogQm90PFRQcm9wcywgVEJlaGF2aW9yPixcbik6IEJvdEhlbHBlcnM8VFByb3BzLCBUQmVoYXZpb3I+IHtcbiAgcmV0dXJuIHtcbiAgICBjcmVhdGVBdXRvbW9kUnVsZTogYXN5bmMgKGd1aWxkSWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuYXV0b21vZFJ1bGUoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuY3JlYXRlQXV0b21vZFJ1bGUoZ3VpbGRJZCwgb3B0aW9ucywgcmVhc29uKSkpXG4gICAgfSxcbiAgICBjcmVhdGVDaGFubmVsOiBhc3luYyAoZ3VpbGRJZCwgb3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jaGFubmVsKGJvdCwgeyBjaGFubmVsOiBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuY3JlYXRlQ2hhbm5lbChndWlsZElkLCBvcHRpb25zLCByZWFzb24pKSwgZ3VpbGRJZCB9KVxuICAgIH0sXG4gICAgY3JlYXRlRW1vamk6IGFzeW5jIChndWlsZElkLCBvcHRpb25zLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmVtb2ppKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmNyZWF0ZUVtb2ppKGd1aWxkSWQsIG9wdGlvbnMsIHJlYXNvbikpKVxuICAgIH0sXG4gICAgY3JlYXRlQXBwbGljYXRpb25FbW9qaTogYXN5bmMgKG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmVtb2ppKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmNyZWF0ZUFwcGxpY2F0aW9uRW1vamkob3B0aW9ucykpKVxuICAgIH0sXG4gICAgY3JlYXRlRm9ydW1UaHJlYWQ6IGFzeW5jIChjaGFubmVsSWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY2hhbm5lbChib3QsIHsgY2hhbm5lbDogc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmNyZWF0ZUZvcnVtVGhyZWFkKGNoYW5uZWxJZCwgb3B0aW9ucywgcmVhc29uKSkgfSlcbiAgICB9LFxuICAgIGNyZWF0ZUdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZDogYXN5bmMgKGNvbW1hbmQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmFwcGxpY2F0aW9uQ29tbWFuZChib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5jcmVhdGVHbG9iYWxBcHBsaWNhdGlvbkNvbW1hbmQoY29tbWFuZCwgb3B0aW9ucykpKVxuICAgIH0sXG4gICAgY3JlYXRlR3VpbGRBcHBsaWNhdGlvbkNvbW1hbmQ6IGFzeW5jIChjb21tYW5kLCBndWlsZElkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5hcHBsaWNhdGlvbkNvbW1hbmQoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuY3JlYXRlR3VpbGRBcHBsaWNhdGlvbkNvbW1hbmQoY29tbWFuZCwgZ3VpbGRJZCwgb3B0aW9ucykpKVxuICAgIH0sXG4gICAgY3JlYXRlR3VpbGRTdGlja2VyOiBhc3luYyAoZ3VpbGRJZCwgb3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5zdGlja2VyKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmNyZWF0ZUd1aWxkU3RpY2tlcihndWlsZElkLCBvcHRpb25zLCByZWFzb24pKSlcbiAgICB9LFxuICAgIGNyZWF0ZUd1aWxkVGVtcGxhdGU6IGFzeW5jIChndWlsZElkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy50ZW1wbGF0ZShib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5jcmVhdGVHdWlsZFRlbXBsYXRlKGd1aWxkSWQsIG9wdGlvbnMpKSlcbiAgICB9LFxuICAgIGNyZWF0ZUludml0ZTogYXN5bmMgKGNoYW5uZWxJZCwgb3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuY3JlYXRlSW52aXRlKGNoYW5uZWxJZCwgb3B0aW9ucywgcmVhc29uKVxuICAgIH0sXG4gICAgY3JlYXRlUm9sZTogYXN5bmMgKGd1aWxkSWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMucm9sZShib3QsIHsgcm9sZTogc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmNyZWF0ZVJvbGUoZ3VpbGRJZCwgb3B0aW9ucywgcmVhc29uKSksIGd1aWxkSWQgfSlcbiAgICB9LFxuICAgIGNyZWF0ZVNjaGVkdWxlZEV2ZW50OiBhc3luYyAoZ3VpbGRJZCwgb3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5zY2hlZHVsZWRFdmVudChib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5jcmVhdGVTY2hlZHVsZWRFdmVudChndWlsZElkLCBvcHRpb25zLCByZWFzb24pKSlcbiAgICB9LFxuICAgIGNyZWF0ZVN0YWdlSW5zdGFuY2U6IGFzeW5jIChvcHRpb25zLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLnN0YWdlSW5zdGFuY2UoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuY3JlYXRlU3RhZ2VJbnN0YW5jZShvcHRpb25zLCByZWFzb24pKSlcbiAgICB9LFxuICAgIGNyZWF0ZVdlYmhvb2s6IGFzeW5jIChjaGFubmVsSWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMud2ViaG9vayhib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5jcmVhdGVXZWJob29rKGNoYW5uZWxJZCwgb3B0aW9ucywgcmVhc29uKSkpXG4gICAgfSxcbiAgICBlZGl0QXBwbGljYXRpb25Db21tYW5kUGVybWlzc2lvbnM6IGFzeW5jIChndWlsZElkLCBjb21tYW5kSWQsIGJlYXJlclRva2VuLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5hcHBsaWNhdGlvbkNvbW1hbmRQZXJtaXNzaW9uKFxuICAgICAgICBib3QsXG4gICAgICAgIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5lZGl0QXBwbGljYXRpb25Db21tYW5kUGVybWlzc2lvbnMoZ3VpbGRJZCwgY29tbWFuZElkLCBiZWFyZXJUb2tlbiwgb3B0aW9ucykpLFxuICAgICAgKVxuICAgIH0sXG4gICAgZWRpdEF1dG9tb2RSdWxlOiBhc3luYyAoZ3VpbGRJZCwgcnVsZUlkLCBvcHRpb25zLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmF1dG9tb2RSdWxlKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmVkaXRBdXRvbW9kUnVsZShndWlsZElkLCBydWxlSWQsIG9wdGlvbnMsIHJlYXNvbikpKVxuICAgIH0sXG4gICAgZWRpdEJvdFByb2ZpbGU6IGFzeW5jIChvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy51c2VyKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmVkaXRCb3RQcm9maWxlKG9wdGlvbnMpKSlcbiAgICB9LFxuICAgIGVkaXRDaGFubmVsOiBhc3luYyAoY2hhbm5lbElkLCBvcHRpb25zLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmNoYW5uZWwoYm90LCB7IGNoYW5uZWw6IHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5lZGl0Q2hhbm5lbChjaGFubmVsSWQsIG9wdGlvbnMsIHJlYXNvbikpIH0pXG4gICAgfSxcbiAgICBlZGl0RW1vamk6IGFzeW5jIChndWlsZElkLCBpZCwgb3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5lbW9qaShib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5lZGl0RW1vamkoZ3VpbGRJZCwgaWQsIG9wdGlvbnMsIHJlYXNvbikpKVxuICAgIH0sXG4gICAgZWRpdEFwcGxpY2F0aW9uRW1vamk6IGFzeW5jIChpZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuZW1vamkoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZWRpdEFwcGxpY2F0aW9uRW1vamkoaWQsIG9wdGlvbnMpKSlcbiAgICB9LFxuICAgIGVkaXRGb2xsb3d1cE1lc3NhZ2U6IGFzeW5jICh0b2tlbiwgbWVzc2FnZUlkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5tZXNzYWdlKGJvdCwgeyBtZXNzYWdlOiBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZWRpdEZvbGxvd3VwTWVzc2FnZSh0b2tlbiwgbWVzc2FnZUlkLCBvcHRpb25zKSksIHNoYXJkSWQ6IDAgfSlcbiAgICB9LFxuICAgIGVkaXRHbG9iYWxBcHBsaWNhdGlvbkNvbW1hbmQ6IGFzeW5jIChjb21tYW5kSWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmFwcGxpY2F0aW9uQ29tbWFuZChib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5lZGl0R2xvYmFsQXBwbGljYXRpb25Db21tYW5kKGNvbW1hbmRJZCwgb3B0aW9ucykpKVxuICAgIH0sXG4gICAgZWRpdEd1aWxkOiBhc3luYyAoZ3VpbGRJZCwgb3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5ndWlsZChib3QsIHsgZ3VpbGQ6IHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5lZGl0R3VpbGQoZ3VpbGRJZCwgb3B0aW9ucywgcmVhc29uKSksIHNoYXJkSWQ6IDAgfSlcbiAgICB9LFxuICAgIGVkaXRHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZDogYXN5bmMgKGNvbW1hbmRJZCwgZ3VpbGRJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuYXBwbGljYXRpb25Db21tYW5kKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmVkaXRHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZChjb21tYW5kSWQsIGd1aWxkSWQsIG9wdGlvbnMpKSlcbiAgICB9LFxuICAgIGVkaXRHdWlsZFN0aWNrZXI6IGFzeW5jIChndWlsZElkLCBzdGlja2VySWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuc3RpY2tlcihib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5lZGl0R3VpbGRTdGlja2VyKGd1aWxkSWQsIHN0aWNrZXJJZCwgb3B0aW9ucywgcmVhc29uKSkpXG4gICAgfSxcbiAgICBlZGl0R3VpbGRUZW1wbGF0ZTogYXN5bmMgKGd1aWxkSWQsIHRlbXBsYXRlQ29kZSwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMudGVtcGxhdGUoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZWRpdEd1aWxkVGVtcGxhdGUoZ3VpbGRJZCwgdGVtcGxhdGVDb2RlLCBvcHRpb25zKSkpXG4gICAgfSxcbiAgICBlZGl0TWVzc2FnZTogYXN5bmMgKGNoYW5uZWxJZCwgbWVzc2FnZUlkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5tZXNzYWdlKGJvdCwge1xuICAgICAgICBtZXNzYWdlOiBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZWRpdE1lc3NhZ2UoY2hhbm5lbElkLCBtZXNzYWdlSWQsIG9wdGlvbnMpKSBhcyBEaXNjb3JkTWVzc2FnZSxcbiAgICAgICAgc2hhcmRJZDogMCxcbiAgICAgIH0pXG4gICAgfSxcbiAgICBlZGl0T3JpZ2luYWxJbnRlcmFjdGlvblJlc3BvbnNlOiBhc3luYyAodG9rZW4sIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLm1lc3NhZ2UoYm90LCB7IG1lc3NhZ2U6IHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5lZGl0T3JpZ2luYWxJbnRlcmFjdGlvblJlc3BvbnNlKHRva2VuLCBvcHRpb25zKSksIHNoYXJkSWQ6IDAgfSlcbiAgICB9LFxuICAgIGVkaXRSb2xlOiBhc3luYyAoZ3VpbGRJZCwgcm9sZUlkLCBvcHRpb25zLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLnJvbGUoYm90LCB7IHJvbGU6IHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5lZGl0Um9sZShndWlsZElkLCByb2xlSWQsIG9wdGlvbnMsIHJlYXNvbikpLCBndWlsZElkIH0pXG4gICAgfSxcbiAgICBlZGl0Um9sZVBvc2l0aW9uczogYXN5bmMgKGd1aWxkSWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5lZGl0Um9sZVBvc2l0aW9ucyhndWlsZElkLCBvcHRpb25zLCByZWFzb24pKS5tYXAoKHJvbGUpID0+IGJvdC50cmFuc2Zvcm1lcnMucm9sZShib3QsIHsgcm9sZSwgZ3VpbGRJZCB9KSlcbiAgICB9LFxuICAgIGVkaXRTY2hlZHVsZWRFdmVudDogYXN5bmMgKGd1aWxkSWQsIGV2ZW50SWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuc2NoZWR1bGVkRXZlbnQoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZWRpdFNjaGVkdWxlZEV2ZW50KGd1aWxkSWQsIGV2ZW50SWQsIG9wdGlvbnMsIHJlYXNvbikpKVxuICAgIH0sXG4gICAgZWRpdFN0YWdlSW5zdGFuY2U6IGFzeW5jIChjaGFubmVsSWQsIHRvcGljLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLnN0YWdlSW5zdGFuY2UoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZWRpdFN0YWdlSW5zdGFuY2UoY2hhbm5lbElkLCB0b3BpYywgcmVhc29uKSkpXG4gICAgfSxcbiAgICBlZGl0V2ViaG9vazogYXN5bmMgKHdlYmhvb2tJZCwgb3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy53ZWJob29rKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmVkaXRXZWJob29rKHdlYmhvb2tJZCwgb3B0aW9ucywgcmVhc29uKSkpXG4gICAgfSxcbiAgICBlZGl0V2ViaG9va01lc3NhZ2U6IGFzeW5jICh3ZWJob29rSWQsIHRva2VuLCBtZXNzYWdlSWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLm1lc3NhZ2UoYm90LCB7XG4gICAgICAgIG1lc3NhZ2U6IHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5lZGl0V2ViaG9va01lc3NhZ2Uod2ViaG9va0lkLCB0b2tlbiwgbWVzc2FnZUlkLCBvcHRpb25zKSkgYXMgRGlzY29yZE1lc3NhZ2UsXG4gICAgICAgIHNoYXJkSWQ6IDAsXG4gICAgICB9KVxuICAgIH0sXG4gICAgZWRpdFdlYmhvb2tXaXRoVG9rZW46IGFzeW5jICh3ZWJob29rSWQsIHRva2VuLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy53ZWJob29rKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmVkaXRXZWJob29rV2l0aFRva2VuKHdlYmhvb2tJZCwgdG9rZW4sIG9wdGlvbnMpKSlcbiAgICB9LFxuICAgIGVkaXRXZWxjb21lU2NyZWVuOiBhc3luYyAoZ3VpbGRJZCwgb3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy53ZWxjb21lU2NyZWVuKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmVkaXRXZWxjb21lU2NyZWVuKGd1aWxkSWQsIG9wdGlvbnMsIHJlYXNvbikpKVxuICAgIH0sXG4gICAgZWRpdFdpZGdldFNldHRpbmdzOiBhc3luYyAoZ3VpbGRJZCwgb3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy53aWRnZXRTZXR0aW5ncyhib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5lZGl0V2lkZ2V0U2V0dGluZ3MoZ3VpbGRJZCwgb3B0aW9ucywgcmVhc29uKSkpXG4gICAgfSxcbiAgICBleGVjdXRlV2ViaG9vazogYXN5bmMgKHdlYmhvb2tJZCwgdG9rZW4sIG9wdGlvbnMpID0+IHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGJvdC5yZXN0LmV4ZWN1dGVXZWJob29rKHdlYmhvb2tJZCwgdG9rZW4sIG9wdGlvbnMpXG4gICAgICBpZiAoIXJlc3VsdCkgcmV0dXJuXG5cbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLm1lc3NhZ2UoYm90LCB7IG1lc3NhZ2U6IHNuYWtlbGl6ZShyZXN1bHQpIGFzIERpc2NvcmRNZXNzYWdlLCBzaGFyZElkOiAwIH0pXG4gICAgfSxcbiAgICBmb2xsb3dBbm5vdW5jZW1lbnQ6IGFzeW5jIChzb3VyY2VDaGFubmVsSWQsIHRhcmdldENoYW5uZWxJZCkgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmZvbGxvd0Fubm91bmNlbWVudChzb3VyY2VDaGFubmVsSWQsIHRhcmdldENoYW5uZWxJZClcbiAgICB9LFxuICAgIGdldEFjdGl2ZVRocmVhZHM6IGFzeW5jIChndWlsZElkKSA9PiB7XG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBib3QucmVzdC5nZXRBY3RpdmVUaHJlYWRzKGd1aWxkSWQpXG4gICAgICByZXR1cm4ge1xuICAgICAgICB0aHJlYWRzOiByZXN1bHQudGhyZWFkcy5tYXAoKHRocmVhZCkgPT4gYm90LnRyYW5zZm9ybWVycy5jaGFubmVsKGJvdCwgeyBndWlsZElkLCBjaGFubmVsOiBzbmFrZWxpemUodGhyZWFkKSB9KSksXG4gICAgICAgIG1lbWJlcnM6IHJlc3VsdC5tZW1iZXJzLm1hcCgobWVtYmVyKSA9PiBib3QudHJhbnNmb3JtZXJzLnRocmVhZE1lbWJlcihib3QsIHNuYWtlbGl6ZShtZW1iZXIpLCB7IGd1aWxkSWQgfSkpLFxuICAgICAgfVxuICAgIH0sXG4gICAgZ2V0QXBwbGljYXRpb25JbmZvOiBhc3luYyAoKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5hcHBsaWNhdGlvbihib3QsIHsgYXBwbGljYXRpb246IHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRBcHBsaWNhdGlvbkluZm8oKSksIHNoYXJkSWQ6IDAgfSlcbiAgICB9LFxuICAgIGVkaXRBcHBsaWNhdGlvbkluZm86IGFzeW5jIChib2R5KSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5hcHBsaWNhdGlvbihib3QsIHsgYXBwbGljYXRpb246IHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5lZGl0QXBwbGljYXRpb25JbmZvKGJvZHkpKSwgc2hhcmRJZDogMCB9KVxuICAgIH0sXG4gICAgZ2V0Q3VycmVudEF1dGhlbnRpY2F0aW9uSW5mbzogYXN5bmMgKGJlYXJlclRva2VuKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZ2V0Q3VycmVudEF1dGhlbnRpY2F0aW9uSW5mbyhiZWFyZXJUb2tlbilcbiAgICB9LFxuICAgIGV4Y2hhbmdlVG9rZW46IGFzeW5jIChjbGllbnRJZCwgY2xpZW50U2VjcmV0LCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZXhjaGFuZ2VUb2tlbihjbGllbnRJZCwgY2xpZW50U2VjcmV0LCBvcHRpb25zKVxuICAgIH0sXG4gICAgcmV2b2tlVG9rZW46IGFzeW5jIChjbGllbnRJZCwgY2xpZW50U2VjcmV0LCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QucmV2b2tlVG9rZW4oY2xpZW50SWQsIGNsaWVudFNlY3JldCwgb3B0aW9ucylcbiAgICB9LFxuICAgIGdldEFwcGxpY2F0aW9uQ29tbWFuZFBlcm1pc3Npb246IGFzeW5jIChndWlsZElkLCBjb21tYW5kSWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IGJvdC5yZXN0LmdldEFwcGxpY2F0aW9uQ29tbWFuZFBlcm1pc3Npb24oZ3VpbGRJZCwgY29tbWFuZElkLCBvcHRpb25zKVxuICAgICAgY29uc3Qgc25ha2VkUmVzID0gc25ha2VsaXplKHJlcylcblxuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuYXBwbGljYXRpb25Db21tYW5kUGVybWlzc2lvbihib3QsIHNuYWtlZFJlcylcbiAgICB9LFxuICAgIGdldEFwcGxpY2F0aW9uQ29tbWFuZFBlcm1pc3Npb25zOiBhc3luYyAoZ3VpbGRJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC5nZXRBcHBsaWNhdGlvbkNvbW1hbmRQZXJtaXNzaW9ucyhndWlsZElkLCBvcHRpb25zKSkubWFwKChyZXMpID0+XG4gICAgICAgIGJvdC50cmFuc2Zvcm1lcnMuYXBwbGljYXRpb25Db21tYW5kUGVybWlzc2lvbihib3QsIHNuYWtlbGl6ZShyZXMpKSxcbiAgICAgIClcbiAgICB9LFxuICAgIGdldEF1ZGl0TG9nOiBhc3luYyAoZ3VpbGRJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmdldEF1ZGl0TG9nKGd1aWxkSWQsIG9wdGlvbnMpXG4gICAgfSxcbiAgICBnZXRBdXRvbW9kUnVsZTogYXN5bmMgKGd1aWxkSWQsIHJ1bGVJZCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuYXV0b21vZFJ1bGUoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0QXV0b21vZFJ1bGUoZ3VpbGRJZCwgcnVsZUlkKSkpXG4gICAgfSxcbiAgICBnZXRBdXRvbW9kUnVsZXM6IGFzeW5jIChndWlsZElkKSA9PiB7XG4gICAgICByZXR1cm4gKGF3YWl0IGJvdC5yZXN0LmdldEF1dG9tb2RSdWxlcyhndWlsZElkKSkubWFwKChyZXMpID0+IGJvdC50cmFuc2Zvcm1lcnMuYXV0b21vZFJ1bGUoYm90LCBzbmFrZWxpemUocmVzKSkpXG4gICAgfSxcbiAgICBnZXRBdmFpbGFibGVWb2ljZVJlZ2lvbnM6IGFzeW5jICgpID0+IHtcbiAgICAgIHJldHVybiAoYXdhaXQgYm90LnJlc3QuZ2V0QXZhaWxhYmxlVm9pY2VSZWdpb25zKCkpLm1hcCgocmVzKSA9PiBib3QudHJhbnNmb3JtZXJzLnZvaWNlUmVnaW9uKGJvdCwgc25ha2VsaXplKHJlcykpKVxuICAgIH0sXG4gICAgZ2V0QmFuOiBhc3luYyAoZ3VpbGRJZCwgdXNlcklkKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZ2V0QmFuKGd1aWxkSWQsIHVzZXJJZClcbiAgICB9LFxuICAgIGdldEJhbnM6IGFzeW5jIChndWlsZElkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZ2V0QmFucyhndWlsZElkLCBvcHRpb25zKVxuICAgIH0sXG4gICAgZ2V0Q2hhbm5lbDogYXN5bmMgKGNoYW5uZWxJZCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY2hhbm5lbChib3QsIHsgY2hhbm5lbDogc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldENoYW5uZWwoY2hhbm5lbElkKSkgfSlcbiAgICB9LFxuICAgIGdldENoYW5uZWxJbnZpdGVzOiBhc3luYyAoY2hhbm5lbElkKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZ2V0Q2hhbm5lbEludml0ZXMoY2hhbm5lbElkKVxuICAgICAgLy8gcmV0dXJuIChhd2FpdCBib3QucmVzdC5nZXRDaGFubmVsSW52aXRlcyhjaGFubmVsSWQpKS5tYXAoKHJlcykgPT4gYm90LnRyYW5zZm9ybWVycy5pbnZpdGUoYm90LCBzbmFrZWxpemUocmVzKSkpXG4gICAgfSxcbiAgICBnZXRDaGFubmVsczogYXN5bmMgKGd1aWxkSWQpID0+IHtcbiAgICAgIHJldHVybiAoYXdhaXQgYm90LnJlc3QuZ2V0Q2hhbm5lbHMoZ3VpbGRJZCkpLm1hcCgocmVzKSA9PiBib3QudHJhbnNmb3JtZXJzLmNoYW5uZWwoYm90LCB7IGNoYW5uZWw6IHNuYWtlbGl6ZShyZXMpLCBndWlsZElkIH0pKVxuICAgIH0sXG4gICAgZ2V0Q2hhbm5lbFdlYmhvb2tzOiBhc3luYyAoY2hhbm5lbElkKSA9PiB7XG4gICAgICByZXR1cm4gKGF3YWl0IGJvdC5yZXN0LmdldENoYW5uZWxXZWJob29rcyhjaGFubmVsSWQpKS5tYXAoKHJlcykgPT4gYm90LnRyYW5zZm9ybWVycy53ZWJob29rKGJvdCwgc25ha2VsaXplKHJlcykpKVxuICAgIH0sXG4gICAgZ2V0RG1DaGFubmVsOiBhc3luYyAodXNlcklkKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jaGFubmVsKGJvdCwgeyBjaGFubmVsOiBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0RG1DaGFubmVsKHVzZXJJZCkpIH0pXG4gICAgfSxcbiAgICBnZXRHcm91cERtQ2hhbm5lbDogYXN5bmMgKG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmNoYW5uZWwoYm90LCB7IGNoYW5uZWw6IHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRHcm91cERtQ2hhbm5lbChvcHRpb25zKSkgfSlcbiAgICB9LFxuICAgIGdldEVtb2ppOiBhc3luYyAoZ3VpbGRJZCwgZW1vamlJZCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuZW1vamkoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0RW1vamkoZ3VpbGRJZCwgZW1vamlJZCkpKVxuICAgIH0sXG4gICAgZ2V0QXBwbGljYXRpb25FbW9qaTogYXN5bmMgKGVtb2ppSWQpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmVtb2ppKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldEFwcGxpY2F0aW9uRW1vamkoZW1vamlJZCkpKVxuICAgIH0sXG4gICAgZ2V0RW1vamlzOiBhc3luYyAoZ3VpbGRJZCkgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC5nZXRFbW9qaXMoZ3VpbGRJZCkpLm1hcCgocmVzKSA9PiBib3QudHJhbnNmb3JtZXJzLmVtb2ppKGJvdCwgc25ha2VsaXplKHJlcykpKVxuICAgIH0sXG4gICAgZ2V0QXBwbGljYXRpb25FbW9qaXM6IGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IGJvdC5yZXN0LmdldEFwcGxpY2F0aW9uRW1vamlzKClcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgaXRlbXM6IHJlcy5pdGVtcy5tYXAoKGl0ZW0pID0+IGJvdC50cmFuc2Zvcm1lcnMuZW1vamkoYm90LCBzbmFrZWxpemUoaXRlbSkpKSxcbiAgICAgIH1cbiAgICB9LFxuICAgIGdldEZvbGxvd3VwTWVzc2FnZTogYXN5bmMgKHRva2VuLCBtZXNzYWdlSWQpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLm1lc3NhZ2UoYm90LCB7IG1lc3NhZ2U6IHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRGb2xsb3d1cE1lc3NhZ2UodG9rZW4sIG1lc3NhZ2VJZCkpLCBzaGFyZElkOiAwIH0pXG4gICAgfSxcbiAgICBnZXRHYXRld2F5Qm90OiBhc3luYyAoKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5nYXRld2F5Qm90KGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldEdhdGV3YXlCb3QoKSkpXG4gICAgfSxcbiAgICBnZXRHbG9iYWxBcHBsaWNhdGlvbkNvbW1hbmQ6IGFzeW5jIChjb21tYW5kSWQpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmFwcGxpY2F0aW9uQ29tbWFuZChib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRHbG9iYWxBcHBsaWNhdGlvbkNvbW1hbmQoY29tbWFuZElkKSkpXG4gICAgfSxcbiAgICBnZXRHbG9iYWxBcHBsaWNhdGlvbkNvbW1hbmRzOiBhc3luYyAob3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC5nZXRHbG9iYWxBcHBsaWNhdGlvbkNvbW1hbmRzKG9wdGlvbnMpKS5tYXAoKHJlcykgPT4gYm90LnRyYW5zZm9ybWVycy5hcHBsaWNhdGlvbkNvbW1hbmQoYm90LCBzbmFrZWxpemUocmVzKSkpXG4gICAgfSxcbiAgICBnZXRHdWlsZDogYXN5bmMgKGd1aWxkSWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmd1aWxkKGJvdCwgeyBndWlsZDogc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldEd1aWxkKGd1aWxkSWQsIG9wdGlvbnMpKSwgc2hhcmRJZDogMCB9KVxuICAgIH0sXG4gICAgZ2V0R3VpbGRzOiBhc3luYyAoYmVhcmVyVG9rZW4sIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiAoYXdhaXQgYm90LnJlc3QuZ2V0R3VpbGRzKGJlYXJlclRva2VuLCBvcHRpb25zKSkubWFwPFBhcnRpYWw8dHlwZW9mIGJvdC50cmFuc2Zvcm1lcnMuJGluZmVycmVkVHlwZXMuZ3VpbGQ+PigocmVzKSA9PlxuICAgICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIGdldEd1aWxkcyByZXR1cm5zIHBhcnRpYWwgZ3VpbGRzXG4gICAgICAgIGJvdC50cmFuc2Zvcm1lcnMuZ3VpbGQoYm90LCB7IGd1aWxkOiBzbmFrZWxpemUocmVzKSwgc2hhcmRJZDogMCB9KSxcbiAgICAgIClcbiAgICB9LFxuICAgIGdldEd1aWxkQXBwbGljYXRpb25Db21tYW5kOiBhc3luYyAoY29tbWFuZElkLCBndWlsZElkKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5hcHBsaWNhdGlvbkNvbW1hbmQoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0R3VpbGRBcHBsaWNhdGlvbkNvbW1hbmQoY29tbWFuZElkLCBndWlsZElkKSkpXG4gICAgfSxcbiAgICBnZXRHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZHM6IGFzeW5jIChndWlsZElkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gKGF3YWl0IGJvdC5yZXN0LmdldEd1aWxkQXBwbGljYXRpb25Db21tYW5kcyhndWlsZElkLCBvcHRpb25zKSkubWFwKChyZXMpID0+IGJvdC50cmFuc2Zvcm1lcnMuYXBwbGljYXRpb25Db21tYW5kKGJvdCwgc25ha2VsaXplKHJlcykpKVxuICAgIH0sXG4gICAgZ2V0R3VpbGRQcmV2aWV3OiBhc3luYyAoZ3VpbGRJZCkgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmdldEd1aWxkUHJldmlldyhndWlsZElkKVxuICAgICAgLy8gcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMueHh4KGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldEd1aWxkUHJldmlldyhndWlsZElkKSkpXG4gICAgfSxcbiAgICBnZXRHdWlsZFN0aWNrZXI6IGFzeW5jIChndWlsZElkLCBzdGlja2VySWQpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLnN0aWNrZXIoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0R3VpbGRTdGlja2VyKGd1aWxkSWQsIHN0aWNrZXJJZCkpKVxuICAgIH0sXG4gICAgZ2V0R3VpbGRTdGlja2VyczogYXN5bmMgKGd1aWxkSWQpID0+IHtcbiAgICAgIHJldHVybiAoYXdhaXQgYm90LnJlc3QuZ2V0R3VpbGRTdGlja2VycyhndWlsZElkKSkubWFwKChyZXMpID0+IGJvdC50cmFuc2Zvcm1lcnMuc3RpY2tlcihib3QsIHNuYWtlbGl6ZShyZXMpKSlcbiAgICB9LFxuICAgIGdldEd1aWxkVGVtcGxhdGU6IGFzeW5jICh0ZW1wbGF0ZUNvZGUpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLnRlbXBsYXRlKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldEd1aWxkVGVtcGxhdGUodGVtcGxhdGVDb2RlKSkpXG4gICAgfSxcbiAgICBnZXRHdWlsZFRlbXBsYXRlczogYXN5bmMgKGd1aWxkSWQpID0+IHtcbiAgICAgIHJldHVybiAoYXdhaXQgYm90LnJlc3QuZ2V0R3VpbGRUZW1wbGF0ZXMoZ3VpbGRJZCkpLm1hcCgocmVzKSA9PiBib3QudHJhbnNmb3JtZXJzLnRlbXBsYXRlKGJvdCwgc25ha2VsaXplKHJlcykpKVxuICAgIH0sXG4gICAgZ2V0R3VpbGRXZWJob29rczogYXN5bmMgKGd1aWxkSWQpID0+IHtcbiAgICAgIHJldHVybiAoYXdhaXQgYm90LnJlc3QuZ2V0R3VpbGRXZWJob29rcyhndWlsZElkKSkubWFwKChyZXMpID0+IGJvdC50cmFuc2Zvcm1lcnMud2ViaG9vayhib3QsIHNuYWtlbGl6ZShyZXMpKSlcbiAgICB9LFxuICAgIGdldEludGVncmF0aW9uczogYXN5bmMgKGd1aWxkSWQpID0+IHtcbiAgICAgIHJldHVybiAoYXdhaXQgYm90LnJlc3QuZ2V0SW50ZWdyYXRpb25zKGd1aWxkSWQpKS5tYXAoKHJlcykgPT5cbiAgICAgICAgYm90LnRyYW5zZm9ybWVycy5pbnRlZ3JhdGlvbihib3QsIHNuYWtlbGl6ZSh7IC4uLnJlcywgZ3VpbGRJZDogZ3VpbGRJZC50b1N0cmluZygpIH0pKSxcbiAgICAgIClcbiAgICB9LFxuICAgIGdldEludml0ZTogYXN5bmMgKGludml0ZUNvZGUsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmludml0ZShib3QsIHsgaW52aXRlOiBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0SW52aXRlKGludml0ZUNvZGUsIG9wdGlvbnMpKSwgc2hhcmRJZDogMCB9KVxuICAgIH0sXG4gICAgZ2V0SW52aXRlczogYXN5bmMgKGd1aWxkSWQpID0+IHtcbiAgICAgIHJldHVybiAoYXdhaXQgYm90LnJlc3QuZ2V0SW52aXRlcyhndWlsZElkKSkubWFwKChyZXMpID0+IGJvdC50cmFuc2Zvcm1lcnMuaW52aXRlKGJvdCwgeyBpbnZpdGU6IHNuYWtlbGl6ZShyZXMpLCBzaGFyZElkOiAwIH0pKVxuICAgIH0sXG4gICAgZ2V0TWVzc2FnZTogYXN5bmMgKGNoYW5uZWxJZCwgbWVzc2FnZUlkKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5tZXNzYWdlKGJvdCwgeyBtZXNzYWdlOiBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0TWVzc2FnZShjaGFubmVsSWQsIG1lc3NhZ2VJZCkpLCBzaGFyZElkOiAwIH0pXG4gICAgfSxcbiAgICBnZXRNZXNzYWdlczogYXN5bmMgKGNoYW5uZWxJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC5nZXRNZXNzYWdlcyhjaGFubmVsSWQsIG9wdGlvbnMpKS5tYXAoKHJlcykgPT4gYm90LnRyYW5zZm9ybWVycy5tZXNzYWdlKGJvdCwgeyBtZXNzYWdlOiBzbmFrZWxpemUocmVzKSwgc2hhcmRJZDogMCB9KSlcbiAgICB9LFxuICAgIGdldFN0aWNrZXJQYWNrOiBhc3luYyAoc3RpY2tlclBhY2tJZCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuc3RpY2tlclBhY2soYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0U3RpY2tlclBhY2soc3RpY2tlclBhY2tJZCkpKVxuICAgIH0sXG4gICAgZ2V0U3RpY2tlclBhY2tzOiBhc3luYyAoKSA9PiB7XG4gICAgICByZXR1cm4gKGF3YWl0IGJvdC5yZXN0LmdldFN0aWNrZXJQYWNrcygpKS5tYXAoKHJlcykgPT4gYm90LnRyYW5zZm9ybWVycy5zdGlja2VyUGFjayhib3QsIHNuYWtlbGl6ZShyZXMpKSlcbiAgICB9LFxuICAgIGdldE9yaWdpbmFsSW50ZXJhY3Rpb25SZXNwb25zZTogYXN5bmMgKHRva2VuKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5tZXNzYWdlKGJvdCwgeyBtZXNzYWdlOiBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0T3JpZ2luYWxJbnRlcmFjdGlvblJlc3BvbnNlKHRva2VuKSksIHNoYXJkSWQ6IDAgfSlcbiAgICB9LFxuICAgIGdldENoYW5uZWxQaW5zOiBhc3luYyAoY2hhbm5lbElkLCBvcHRpb25zKSA9PiB7XG4gICAgICBjb25zdCByZXMgPSBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0Q2hhbm5lbFBpbnMoY2hhbm5lbElkLCBvcHRpb25zKSlcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgaGFzTW9yZTogcmVzLmhhc19tb3JlLFxuICAgICAgICBpdGVtczogcmVzLml0ZW1zLm1hcCgoaXRlbSkgPT4gYm90LnRyYW5zZm9ybWVycy5tZXNzYWdlUGluKGJvdCwgaXRlbSkpLFxuICAgICAgfVxuICAgIH0sXG4gICAgZ2V0UGlubmVkTWVzc2FnZXM6IGFzeW5jIChjaGFubmVsSWQpID0+IHtcbiAgICAgIHJldHVybiAoYXdhaXQgYm90LnJlc3QuZ2V0UGlubmVkTWVzc2FnZXMoY2hhbm5lbElkKSkubWFwKChyZXMpID0+IGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZShib3QsIHsgbWVzc2FnZTogc25ha2VsaXplKHJlcyksIHNoYXJkSWQ6IDAgfSkpXG4gICAgfSxcbiAgICBnZXRQcml2YXRlQXJjaGl2ZWRUaHJlYWRzOiBhc3luYyAoY2hhbm5lbElkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZ2V0UHJpdmF0ZUFyY2hpdmVkVGhyZWFkcyhjaGFubmVsSWQsIG9wdGlvbnMpXG4gICAgfSxcbiAgICBnZXRQcml2YXRlSm9pbmVkQXJjaGl2ZWRUaHJlYWRzOiBhc3luYyAoY2hhbm5lbElkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZ2V0UHJpdmF0ZUpvaW5lZEFyY2hpdmVkVGhyZWFkcyhjaGFubmVsSWQsIG9wdGlvbnMpXG4gICAgfSxcbiAgICBnZXRQcnVuZUNvdW50OiBhc3luYyAoZ3VpbGRJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmdldFBydW5lQ291bnQoZ3VpbGRJZCwgb3B0aW9ucylcbiAgICB9LFxuICAgIGdldFB1YmxpY0FyY2hpdmVkVGhyZWFkczogYXN5bmMgKGNoYW5uZWxJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmdldFB1YmxpY0FyY2hpdmVkVGhyZWFkcyhjaGFubmVsSWQsIG9wdGlvbnMpXG4gICAgfSxcbiAgICBnZXRSb2xlczogYXN5bmMgKGd1aWxkSWQpID0+IHtcbiAgICAgIHJldHVybiBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0Um9sZXMoZ3VpbGRJZCkpLm1hcCgocm9sZSkgPT4gYm90LnRyYW5zZm9ybWVycy5yb2xlKGJvdCwgeyByb2xlLCBndWlsZElkIH0pKVxuICAgIH0sXG4gICAgZ2V0Um9sZTogYXN5bmMgKGd1aWxkSWQsIHJvbGVJZCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMucm9sZShib3QsIHsgcm9sZTogc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldFJvbGUoZ3VpbGRJZCwgcm9sZUlkKSksIGd1aWxkSWQgfSlcbiAgICB9LFxuICAgIGdldFNjaGVkdWxlZEV2ZW50OiBhc3luYyAoZ3VpbGRJZCwgZXZlbnRJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuc2NoZWR1bGVkRXZlbnQoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0U2NoZWR1bGVkRXZlbnQoZ3VpbGRJZCwgZXZlbnRJZCwgb3B0aW9ucykpKVxuICAgIH0sXG4gICAgZ2V0U2NoZWR1bGVkRXZlbnRzOiBhc3luYyAoZ3VpbGRJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC5nZXRTY2hlZHVsZWRFdmVudHMoZ3VpbGRJZCwgb3B0aW9ucykpLm1hcCgocmVzKSA9PiBib3QudHJhbnNmb3JtZXJzLnNjaGVkdWxlZEV2ZW50KGJvdCwgc25ha2VsaXplKHJlcykpKVxuICAgIH0sXG4gICAgZ2V0U2NoZWR1bGVkRXZlbnRVc2VyczogYXN5bmMgKGd1aWxkSWQsIGV2ZW50SWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiAoYXdhaXQgYm90LnJlc3QuZ2V0U2NoZWR1bGVkRXZlbnRVc2VycyhndWlsZElkLCBldmVudElkLCBvcHRpb25zKSkubWFwKCh1KSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgdXNlcjogYm90LnRyYW5zZm9ybWVycy51c2VyKGJvdCwgc25ha2VsaXplKHUudXNlcikpLFxuICAgICAgICAgIG1lbWJlcjogdS5tZW1iZXIgJiYgYm90LnRyYW5zZm9ybWVycy5tZW1iZXIoYm90LCBzbmFrZWxpemUodS5tZW1iZXIpLCBndWlsZElkLCBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZSh1LnVzZXIuaWQpKSxcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9LFxuICAgIGdldFNlc3Npb25JbmZvOiBhc3luYyAoKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5nYXRld2F5Qm90KGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldFNlc3Npb25JbmZvKCkpKVxuICAgIH0sXG4gICAgZ2V0U3RhZ2VJbnN0YW5jZTogYXN5bmMgKGNoYW5uZWxJZCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuc3RhZ2VJbnN0YW5jZShib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRTdGFnZUluc3RhbmNlKGNoYW5uZWxJZCkpKVxuICAgIH0sXG4gICAgZ2V0T3duVm9pY2VTdGF0ZTogYXN5bmMgKGd1aWxkSWQpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLnZvaWNlU3RhdGUoYm90LCB7IGd1aWxkSWQsIHZvaWNlU3RhdGU6IHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRPd25Wb2ljZVN0YXRlKGd1aWxkSWQpKSB9KVxuICAgIH0sXG4gICAgZ2V0VXNlclZvaWNlU3RhdGU6IGFzeW5jIChndWlsZElkLCB1c2VySWQpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLnZvaWNlU3RhdGUoYm90LCB7IGd1aWxkSWQsIHZvaWNlU3RhdGU6IHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRVc2VyVm9pY2VTdGF0ZShndWlsZElkLCB1c2VySWQpKSB9KVxuICAgIH0sXG4gICAgZ2V0U3RpY2tlcjogYXN5bmMgKHN0aWNrZXJJZCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuc3RpY2tlcihib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRTdGlja2VyKHN0aWNrZXJJZCkpKVxuICAgIH0sXG4gICAgZ2V0VGhyZWFkTWVtYmVyOiBhc3luYyAoY2hhbm5lbElkLCB1c2VySWQsIG9wdGlvbnMsIGV4dHJhKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy50aHJlYWRNZW1iZXIoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0VGhyZWFkTWVtYmVyKGNoYW5uZWxJZCwgdXNlcklkLCBvcHRpb25zKSksIGV4dHJhKVxuICAgIH0sXG4gICAgZ2V0VGhyZWFkTWVtYmVyczogYXN5bmMgKGNoYW5uZWxJZCwgb3B0aW9ucywgZXh0cmEpID0+IHtcbiAgICAgIHJldHVybiAoYXdhaXQgYm90LnJlc3QuZ2V0VGhyZWFkTWVtYmVycyhjaGFubmVsSWQsIG9wdGlvbnMpKS5tYXAoKHJlcykgPT4gYm90LnRyYW5zZm9ybWVycy50aHJlYWRNZW1iZXIoYm90LCBzbmFrZWxpemUocmVzKSwgZXh0cmEpKVxuICAgIH0sXG4gICAgZ2V0UmVhY3Rpb25zOiBhc3luYyAoY2hhbm5lbElkLCBtZXNzYWdlSWQsIHJlYWN0aW9uLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gKGF3YWl0IGJvdC5yZXN0LmdldFJlYWN0aW9ucyhjaGFubmVsSWQsIG1lc3NhZ2VJZCwgcmVhY3Rpb24sIG9wdGlvbnMpKS5tYXAoKHJlcykgPT4gYm90LnRyYW5zZm9ybWVycy51c2VyKGJvdCwgc25ha2VsaXplKHJlcykpKVxuICAgIH0sXG4gICAgZ2V0VXNlcjogYXN5bmMgKGlkKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy51c2VyKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldFVzZXIoaWQpKSlcbiAgICB9LFxuICAgIGdldEN1cnJlbnRVc2VyOiBhc3luYyAoYmVhcmVyVG9rZW4pID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLnVzZXIoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0Q3VycmVudFVzZXIoYmVhcmVyVG9rZW4pKSlcbiAgICB9LFxuICAgIGdldFVzZXJDb25uZWN0aW9uczogYXN5bmMgKGJlYXJlclRva2VuKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZ2V0VXNlckNvbm5lY3Rpb25zKGJlYXJlclRva2VuKVxuICAgIH0sXG4gICAgZ2V0VXNlckFwcGxpY2F0aW9uUm9sZUNvbm5lY3Rpb246IGFzeW5jIChiZWFyZXJUb2tlbiwgYXBwbGljYXRpb25JZCkgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmdldFVzZXJBcHBsaWNhdGlvblJvbGVDb25uZWN0aW9uKGJlYXJlclRva2VuLCBhcHBsaWNhdGlvbklkKVxuICAgIH0sXG4gICAgZ2V0VmFuaXR5VXJsOiBhc3luYyAoZ3VpbGRJZCkgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmdldFZhbml0eVVybChndWlsZElkKVxuICAgIH0sXG4gICAgZ2V0Vm9pY2VSZWdpb25zOiBhc3luYyAoZ3VpbGRJZCkgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC5nZXRWb2ljZVJlZ2lvbnMoZ3VpbGRJZCkpLm1hcCgocmVzKSA9PiBib3QudHJhbnNmb3JtZXJzLnZvaWNlUmVnaW9uKGJvdCwgc25ha2VsaXplKHJlcykpKVxuICAgIH0sXG4gICAgZ2V0V2ViaG9vazogYXN5bmMgKHdlYmhvb2tJZCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMud2ViaG9vayhib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRXZWJob29rKHdlYmhvb2tJZCkpKVxuICAgIH0sXG4gICAgZ2V0V2ViaG9va01lc3NhZ2U6IGFzeW5jICh3ZWJob29rSWQsIHRva2VuLCBtZXNzYWdlSWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLm1lc3NhZ2UoYm90LCB7IG1lc3NhZ2U6IHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRXZWJob29rTWVzc2FnZSh3ZWJob29rSWQsIHRva2VuLCBtZXNzYWdlSWQsIG9wdGlvbnMpKSwgc2hhcmRJZDogMCB9KVxuICAgIH0sXG4gICAgZ2V0V2ViaG9va1dpdGhUb2tlbjogYXN5bmMgKHdlYmhvb2tJZCwgdG9rZW4pID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLndlYmhvb2soYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0V2ViaG9va1dpdGhUb2tlbih3ZWJob29rSWQsIHRva2VuKSkpXG4gICAgfSxcbiAgICBnZXRXZWxjb21lU2NyZWVuOiBhc3luYyAoZ3VpbGRJZCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMud2VsY29tZVNjcmVlbihib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRXZWxjb21lU2NyZWVuKGd1aWxkSWQpKSlcbiAgICB9LFxuICAgIGdldFdpZGdldDogYXN5bmMgKGd1aWxkSWQpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLndpZGdldChib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRXaWRnZXQoZ3VpbGRJZCkpKVxuICAgIH0sXG4gICAgZ2V0V2lkZ2V0U2V0dGluZ3M6IGFzeW5jIChndWlsZElkKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy53aWRnZXRTZXR0aW5ncyhib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRXaWRnZXRTZXR0aW5ncyhndWlsZElkKSkpXG4gICAgfSxcbiAgICBwdWJsaXNoTWVzc2FnZTogYXN5bmMgKGNoYW5uZWxJZCwgbWVzc2FnZUlkKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5tZXNzYWdlKGJvdCwgeyBtZXNzYWdlOiBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QucHVibGlzaE1lc3NhZ2UoY2hhbm5lbElkLCBtZXNzYWdlSWQpKSwgc2hhcmRJZDogMCB9KVxuICAgIH0sXG4gICAgc2VuZE1lc3NhZ2U6IGFzeW5jIChjaGFubmVsSWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLm1lc3NhZ2UoYm90LCB7IG1lc3NhZ2U6IHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5zZW5kTWVzc2FnZShjaGFubmVsSWQsIG9wdGlvbnMpKSwgc2hhcmRJZDogMCB9KVxuICAgIH0sXG4gICAgc2VuZEZvbGxvd3VwTWVzc2FnZTogYXN5bmMgKHRva2VuLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5tZXNzYWdlKGJvdCwgeyBtZXNzYWdlOiBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3Quc2VuZEZvbGxvd3VwTWVzc2FnZSh0b2tlbiwgb3B0aW9ucykpLCBzaGFyZElkOiAwIH0pXG4gICAgfSxcbiAgICBzdGFydFRocmVhZFdpdGhNZXNzYWdlOiBhc3luYyAoY2hhbm5lbElkLCBtZXNzYWdlSWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY2hhbm5lbChib3QsIHtcbiAgICAgICAgY2hhbm5lbDogc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LnN0YXJ0VGhyZWFkV2l0aE1lc3NhZ2UoY2hhbm5lbElkLCBtZXNzYWdlSWQsIG9wdGlvbnMsIHJlYXNvbikpLFxuICAgICAgfSlcbiAgICB9LFxuICAgIHN0YXJ0VGhyZWFkV2l0aG91dE1lc3NhZ2U6IGFzeW5jIChjaGFubmVsSWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY2hhbm5lbChib3QsIHsgY2hhbm5lbDogc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LnN0YXJ0VGhyZWFkV2l0aG91dE1lc3NhZ2UoY2hhbm5lbElkLCBvcHRpb25zLCByZWFzb24pKSB9KVxuICAgIH0sXG4gICAgc3luY0d1aWxkVGVtcGxhdGU6IGFzeW5jIChndWlsZElkKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy50ZW1wbGF0ZShib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5zeW5jR3VpbGRUZW1wbGF0ZShndWlsZElkKSkpXG4gICAgfSxcbiAgICB1cHNlcnRHbG9iYWxBcHBsaWNhdGlvbkNvbW1hbmRzOiBhc3luYyAoY29tbWFuZHMsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiAoYXdhaXQgYm90LnJlc3QudXBzZXJ0R2xvYmFsQXBwbGljYXRpb25Db21tYW5kcyhjb21tYW5kcywgb3B0aW9ucykpLm1hcCgocmVzKSA9PlxuICAgICAgICBib3QudHJhbnNmb3JtZXJzLmFwcGxpY2F0aW9uQ29tbWFuZChib3QsIHNuYWtlbGl6ZShyZXMpKSxcbiAgICAgIClcbiAgICB9LFxuICAgIHVwc2VydEd1aWxkQXBwbGljYXRpb25Db21tYW5kczogYXN5bmMgKGd1aWxkSWQsIGNvbW1hbmRzLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gKGF3YWl0IGJvdC5yZXN0LnVwc2VydEd1aWxkQXBwbGljYXRpb25Db21tYW5kcyhndWlsZElkLCBjb21tYW5kcywgb3B0aW9ucykpLm1hcCgocmVzKSA9PlxuICAgICAgICBib3QudHJhbnNmb3JtZXJzLmFwcGxpY2F0aW9uQ29tbWFuZChib3QsIHNuYWtlbGl6ZShyZXMpKSxcbiAgICAgIClcbiAgICB9LFxuICAgIGVkaXRCb3RNZW1iZXI6IGFzeW5jIChndWlsZElkLCBvcHRpb25zLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLm1lbWJlcihib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5lZGl0Qm90TWVtYmVyKGd1aWxkSWQsIG9wdGlvbnMsIHJlYXNvbikpLCBndWlsZElkLCBib3QuaWQpXG4gICAgfSxcbiAgICBlZGl0TWVtYmVyOiBhc3luYyAoZ3VpbGRJZCwgdXNlcklkLCBvcHRpb25zLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLm1lbWJlcihib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5lZGl0TWVtYmVyKGd1aWxkSWQsIHVzZXJJZCwgb3B0aW9ucywgcmVhc29uKSksIGd1aWxkSWQsIHVzZXJJZClcbiAgICB9LFxuICAgIGdldE1lbWJlcjogYXN5bmMgKGd1aWxkSWQsIHVzZXJJZCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMubWVtYmVyKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldE1lbWJlcihndWlsZElkLCB1c2VySWQpKSwgZ3VpbGRJZCwgdXNlcklkKVxuICAgIH0sXG4gICAgZ2V0Q3VycmVudE1lbWJlcjogYXN5bmMgKGd1aWxkSWQsIGJlYXJlclRva2VuKSA9PiB7XG4gICAgICBjb25zdCByZXMgPSBhd2FpdCBib3QucmVzdC5nZXRDdXJyZW50TWVtYmVyKGd1aWxkSWQsIGJlYXJlclRva2VuKVxuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMubWVtYmVyKGJvdCwgc25ha2VsaXplKHJlcyksIGd1aWxkSWQsIGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHJlcy51c2VyLmlkKSlcbiAgICB9LFxuICAgIGdldE1lbWJlcnM6IGFzeW5jIChndWlsZElkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gKGF3YWl0IGJvdC5yZXN0LmdldE1lbWJlcnMoZ3VpbGRJZCwgb3B0aW9ucykpLm1hcCgocmVzKSA9PlxuICAgICAgICBib3QudHJhbnNmb3JtZXJzLm1lbWJlcihib3QsIHNuYWtlbGl6ZShyZXMpLCBndWlsZElkLCBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShyZXMudXNlci5pZCkpLFxuICAgICAgKVxuICAgIH0sXG4gICAgcHJ1bmVNZW1iZXJzOiBhc3luYyAoZ3VpbGRJZCwgb3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QucHJ1bmVNZW1iZXJzKGd1aWxkSWQsIG9wdGlvbnMsIHJlYXNvbilcbiAgICB9LFxuICAgIHNlYXJjaE1lbWJlcnM6IGFzeW5jIChndWlsZElkLCBxdWVyeSwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC5zZWFyY2hNZW1iZXJzKGd1aWxkSWQsIHF1ZXJ5LCBvcHRpb25zKSkubWFwKChyZXMpID0+XG4gICAgICAgIGJvdC50cmFuc2Zvcm1lcnMubWVtYmVyKGJvdCwgc25ha2VsaXplKHJlcyksIGd1aWxkSWQsIGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHJlcy51c2VyLmlkKSksXG4gICAgICApXG4gICAgfSxcbiAgICBidWxrQmFuTWVtYmVyczogYXN5bmMgKGd1aWxkSWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgY29uc3QgcmVzID0gYXdhaXQgYm90LnJlc3QuYnVsa0Jhbk1lbWJlcnMoZ3VpbGRJZCwgb3B0aW9ucywgcmVhc29uKVxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBiYW5uZWRVc2VyczogcmVzLmJhbm5lZFVzZXJzLm1hcCgoeCkgPT4gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UoeCkpLFxuICAgICAgICBmYWlsZWRVc2VyczogcmVzLmZhaWxlZFVzZXJzLm1hcCgoeCkgPT4gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UoeCkpLFxuICAgICAgfVxuICAgIH0sXG4gICAgZ2V0QXBwbGljYXRpb25BY3Rpdml0eUluc3RhbmNlOiBhc3luYyAoYXBwbGljYXRpb25JZCwgaW5zdGFuY2VJZCkgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmdldEFwcGxpY2F0aW9uQWN0aXZpdHlJbnN0YW5jZShhcHBsaWNhdGlvbklkLCBpbnN0YW5jZUlkKVxuICAgIH0sXG4gICAgbGlzdEFwcGxpY2F0aW9uUm9sZUNvbm5lY3Rpb25zTWV0YWRhdGFSZWNvcmRzOiBhc3luYyAoYXBwbGljYXRpb25JZCkgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0Lmxpc3RBcHBsaWNhdGlvblJvbGVDb25uZWN0aW9uc01ldGFkYXRhUmVjb3JkcyhhcHBsaWNhdGlvbklkKVxuICAgIH0sXG4gICAgdXBkYXRlQXBwbGljYXRpb25Sb2xlQ29ubmVjdGlvbnNNZXRhZGF0YVJlY29yZHM6IGFzeW5jIChhcHBsaWNhdGlvbklkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QudXBkYXRlQXBwbGljYXRpb25Sb2xlQ29ubmVjdGlvbnNNZXRhZGF0YVJlY29yZHMoYXBwbGljYXRpb25JZCwgb3B0aW9ucylcbiAgICB9LFxuICAgIGNyZWF0ZUxvYmJ5OiBhc3luYyAob3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMubG9iYnkoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuY3JlYXRlTG9iYnkob3B0aW9ucykpKVxuICAgIH0sXG4gICAgZ2V0TG9iYnk6IGFzeW5jIChsb2JieUlkKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5sb2JieShib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRMb2JieShsb2JieUlkKSkpXG4gICAgfSxcbiAgICBtb2RpZnlMb2JieTogYXN5bmMgKGxvYmJ5SWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmxvYmJ5KGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0Lm1vZGlmeUxvYmJ5KGxvYmJ5SWQsIG9wdGlvbnMpKSlcbiAgICB9LFxuICAgIGFkZE1lbWJlclRvTG9iYnk6IGFzeW5jIChsb2JieUlkLCB1c2VySWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmxvYmJ5TWVtYmVyKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmFkZE1lbWJlclRvTG9iYnkobG9iYnlJZCwgdXNlcklkLCBvcHRpb25zKSkpXG4gICAgfSxcbiAgICBsaW5rQ2hhbm5lbFRvTG9iYnk6IGFzeW5jIChsb2JieUlkLCBiZWFyZXJUb2tlbiwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMubG9iYnkoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QubGlua0NoYW5uZWxUb0xvYmJ5KGxvYmJ5SWQsIGJlYXJlclRva2VuLCBvcHRpb25zKSkpXG4gICAgfSxcbiAgICB1bmxpbmtDaGFubmVsVG9Mb2JieTogYXN5bmMgKGxvYmJ5SWQsIGJlYXJlclRva2VuKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5sb2JieShib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC51bmxpbmtDaGFubmVsVG9Mb2JieShsb2JieUlkLCBiZWFyZXJUb2tlbikpKVxuICAgIH0sXG4gICAgLy8gQWxsIHVzZWxlc3Mgdm9pZCByZXR1cm4gZnVuY3Rpb25zIGhlcmVcbiAgICBhZGRSZWFjdGlvbjogYXN5bmMgKGNoYW5uZWxJZCwgbWVzc2FnZUlkLCByZWFjdGlvbikgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmFkZFJlYWN0aW9uKGNoYW5uZWxJZCwgbWVzc2FnZUlkLCByZWFjdGlvbilcbiAgICB9LFxuICAgIGFkZFJlYWN0aW9uczogYXN5bmMgKGNoYW5uZWxJZCwgbWVzc2FnZUlkLCByZWFjdGlvbnMsIG9yZGVyZWQpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5hZGRSZWFjdGlvbnMoY2hhbm5lbElkLCBtZXNzYWdlSWQsIHJlYWN0aW9ucywgb3JkZXJlZClcbiAgICB9LFxuICAgIGFkZFJvbGU6IGFzeW5jIChndWlsZElkLCB1c2VySWQsIHJvbGVJZCwgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuYWRkUm9sZShndWlsZElkLCB1c2VySWQsIHJvbGVJZCwgcmVhc29uKVxuICAgIH0sXG4gICAgYWRkVGhyZWFkTWVtYmVyOiBhc3luYyAoY2hhbm5lbElkLCB1c2VySWQpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5hZGRUaHJlYWRNZW1iZXIoY2hhbm5lbElkLCB1c2VySWQpXG4gICAgfSxcbiAgICBhZGREbVJlY2lwaWVudDogYXN5bmMgKGNoYW5uZWxJZCwgdXNlcklkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuYWRkRG1SZWNpcGllbnQoY2hhbm5lbElkLCB1c2VySWQsIG9wdGlvbnMpXG4gICAgfSxcbiAgICBhZGRHdWlsZE1lbWJlcjogYXN5bmMgKGd1aWxkSWQsIHVzZXJJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmFkZEd1aWxkTWVtYmVyKGd1aWxkSWQsIHVzZXJJZCwgb3B0aW9ucylcbiAgICB9LFxuICAgIGRlbGV0ZUF1dG9tb2RSdWxlOiBhc3luYyAoZ3VpbGRJZCwgcnVsZUlkLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5kZWxldGVBdXRvbW9kUnVsZShndWlsZElkLCBydWxlSWQsIHJlYXNvbilcbiAgICB9LFxuICAgIGRlbGV0ZUNoYW5uZWw6IGFzeW5jIChjaGFubmVsSWQsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmRlbGV0ZUNoYW5uZWwoY2hhbm5lbElkLCByZWFzb24pXG4gICAgfSxcbiAgICBkZWxldGVDaGFubmVsUGVybWlzc2lvbk92ZXJyaWRlOiBhc3luYyAoY2hhbm5lbElkLCBvdmVyd3JpdGVJZCwgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZGVsZXRlQ2hhbm5lbFBlcm1pc3Npb25PdmVycmlkZShjaGFubmVsSWQsIG92ZXJ3cml0ZUlkLCByZWFzb24pXG4gICAgfSxcbiAgICBkZWxldGVFbW9qaTogYXN5bmMgKGd1aWxkSWQsIGlkLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5kZWxldGVFbW9qaShndWlsZElkLCBpZCwgcmVhc29uKVxuICAgIH0sXG4gICAgZGVsZXRlQXBwbGljYXRpb25FbW9qaTogYXN5bmMgKGlkKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZGVsZXRlQXBwbGljYXRpb25FbW9qaShpZClcbiAgICB9LFxuICAgIGRlbGV0ZUZvbGxvd3VwTWVzc2FnZTogYXN5bmMgKHRva2VuLCBtZXNzYWdlSWQpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5kZWxldGVGb2xsb3d1cE1lc3NhZ2UodG9rZW4sIG1lc3NhZ2VJZClcbiAgICB9LFxuICAgIGRlbGV0ZUdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZDogYXN5bmMgKGNvbW1hbmRJZCkgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmRlbGV0ZUdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZChjb21tYW5kSWQpXG4gICAgfSxcbiAgICBkZWxldGVHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZDogYXN5bmMgKGNvbW1hbmRJZCwgZ3VpbGRJZCkgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmRlbGV0ZUd1aWxkQXBwbGljYXRpb25Db21tYW5kKGNvbW1hbmRJZCwgZ3VpbGRJZClcbiAgICB9LFxuICAgIGRlbGV0ZUd1aWxkU3RpY2tlcjogYXN5bmMgKGd1aWxkSWQsIHN0aWNrZXJJZCwgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZGVsZXRlR3VpbGRTdGlja2VyKGd1aWxkSWQsIHN0aWNrZXJJZCwgcmVhc29uKVxuICAgIH0sXG4gICAgZGVsZXRlR3VpbGRUZW1wbGF0ZTogYXN5bmMgKGd1aWxkSWQsIHRlbXBsYXRlQ29kZSkgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmRlbGV0ZUd1aWxkVGVtcGxhdGUoZ3VpbGRJZCwgdGVtcGxhdGVDb2RlKVxuICAgIH0sXG4gICAgZGVsZXRlSW50ZWdyYXRpb246IGFzeW5jIChndWlsZElkLCBpbnRlZ3JhdGlvbklkLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5kZWxldGVJbnRlZ3JhdGlvbihndWlsZElkLCBpbnRlZ3JhdGlvbklkLCByZWFzb24pXG4gICAgfSxcbiAgICBkZWxldGVJbnZpdGU6IGFzeW5jIChpbnZpdGVDb2RlLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5kZWxldGVJbnZpdGUoaW52aXRlQ29kZSwgcmVhc29uKVxuICAgIH0sXG4gICAgZGVsZXRlTWVzc2FnZTogYXN5bmMgKGNoYW5uZWxJZCwgbWVzc2FnZUlkLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5kZWxldGVNZXNzYWdlKGNoYW5uZWxJZCwgbWVzc2FnZUlkLCByZWFzb24pXG4gICAgfSxcbiAgICBkZWxldGVNZXNzYWdlczogYXN5bmMgKGNoYW5uZWxJZCwgbWVzc2FnZUlkcywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZGVsZXRlTWVzc2FnZXMoY2hhbm5lbElkLCBtZXNzYWdlSWRzLCByZWFzb24pXG4gICAgfSxcbiAgICBkZWxldGVPcmlnaW5hbEludGVyYWN0aW9uUmVzcG9uc2U6IGFzeW5jICh0b2tlbikgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmRlbGV0ZU9yaWdpbmFsSW50ZXJhY3Rpb25SZXNwb25zZSh0b2tlbilcbiAgICB9LFxuICAgIGRlbGV0ZU93blJlYWN0aW9uOiBhc3luYyAoY2hhbm5lbElkLCBtZXNzYWdlSWQsIHJlYWN0aW9uKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZGVsZXRlT3duUmVhY3Rpb24oY2hhbm5lbElkLCBtZXNzYWdlSWQsIHJlYWN0aW9uKVxuICAgIH0sXG4gICAgZGVsZXRlUmVhY3Rpb25zQWxsOiBhc3luYyAoY2hhbm5lbElkLCBtZXNzYWdlSWQpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5kZWxldGVSZWFjdGlvbnNBbGwoY2hhbm5lbElkLCBtZXNzYWdlSWQpXG4gICAgfSxcbiAgICBkZWxldGVSZWFjdGlvbnNFbW9qaTogYXN5bmMgKGNoYW5uZWxJZCwgbWVzc2FnZUlkLCByZWFjdGlvbikgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmRlbGV0ZVJlYWN0aW9uc0Vtb2ppKGNoYW5uZWxJZCwgbWVzc2FnZUlkLCByZWFjdGlvbilcbiAgICB9LFxuICAgIGRlbGV0ZVJvbGU6IGFzeW5jIChndWlsZElkLCByb2xlSWQsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmRlbGV0ZVJvbGUoZ3VpbGRJZCwgcm9sZUlkLCByZWFzb24pXG4gICAgfSxcbiAgICBkZWxldGVTY2hlZHVsZWRFdmVudDogYXN5bmMgKGd1aWxkSWQsIGV2ZW50SWQpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5kZWxldGVTY2hlZHVsZWRFdmVudChndWlsZElkLCBldmVudElkKVxuICAgIH0sXG4gICAgZGVsZXRlU3RhZ2VJbnN0YW5jZTogYXN5bmMgKGNoYW5uZWxJZCwgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZGVsZXRlU3RhZ2VJbnN0YW5jZShjaGFubmVsSWQsIHJlYXNvbilcbiAgICB9LFxuICAgIGRlbGV0ZVVzZXJSZWFjdGlvbjogYXN5bmMgKGNoYW5uZWxJZCwgbWVzc2FnZUlkLCB1c2VySWQsIHJlYWN0aW9uKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZGVsZXRlVXNlclJlYWN0aW9uKGNoYW5uZWxJZCwgbWVzc2FnZUlkLCB1c2VySWQsIHJlYWN0aW9uKVxuICAgIH0sXG4gICAgZGVsZXRlV2ViaG9vazogYXN5bmMgKHdlYmhvb2tJZCwgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZGVsZXRlV2ViaG9vayh3ZWJob29rSWQsIHJlYXNvbilcbiAgICB9LFxuICAgIGRlbGV0ZVdlYmhvb2tNZXNzYWdlOiBhc3luYyAod2ViaG9va0lkLCB0b2tlbiwgbWVzc2FnZUlkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZGVsZXRlV2ViaG9va01lc3NhZ2Uod2ViaG9va0lkLCB0b2tlbiwgbWVzc2FnZUlkLCBvcHRpb25zKVxuICAgIH0sXG4gICAgZGVsZXRlV2ViaG9va1dpdGhUb2tlbjogYXN5bmMgKHdlYmhvb2tJZCwgdG9rZW4pID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5kZWxldGVXZWJob29rV2l0aFRva2VuKHdlYmhvb2tJZCwgdG9rZW4pXG4gICAgfSxcbiAgICBlZGl0Q2hhbm5lbFBlcm1pc3Npb25PdmVycmlkZXM6IGFzeW5jIChjaGFubmVsSWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmVkaXRDaGFubmVsUGVybWlzc2lvbk92ZXJyaWRlcyhjaGFubmVsSWQsIG9wdGlvbnMsIHJlYXNvbilcbiAgICB9LFxuICAgIGVkaXRDaGFubmVsUG9zaXRpb25zOiBhc3luYyAoZ3VpbGRJZCwgY2hhbm5lbFBvc2l0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmVkaXRDaGFubmVsUG9zaXRpb25zKGd1aWxkSWQsIGNoYW5uZWxQb3NpdGlvbnMpXG4gICAgfSxcbiAgICBlZGl0T3duVm9pY2VTdGF0ZTogYXN5bmMgKGd1aWxkSWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5lZGl0T3duVm9pY2VTdGF0ZShndWlsZElkLCBvcHRpb25zKVxuICAgIH0sXG4gICAgZWRpdFVzZXJWb2ljZVN0YXRlOiBhc3luYyAoZ3VpbGRJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmVkaXRVc2VyVm9pY2VTdGF0ZShndWlsZElkLCBvcHRpb25zKVxuICAgIH0sXG4gICAgZWRpdFVzZXJBcHBsaWNhdGlvblJvbGVDb25uZWN0aW9uOiBhc3luYyAoYmVhcmVyVG9rZW4sIGFwcGxpY2F0aW9uSWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5lZGl0VXNlckFwcGxpY2F0aW9uUm9sZUNvbm5lY3Rpb24oYmVhcmVyVG9rZW4sIGFwcGxpY2F0aW9uSWQsIG9wdGlvbnMpXG4gICAgfSxcbiAgICBqb2luVGhyZWFkOiBhc3luYyAoY2hhbm5lbElkKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3Quam9pblRocmVhZChjaGFubmVsSWQpXG4gICAgfSxcbiAgICBsZWF2ZUd1aWxkOiBhc3luYyAoZ3VpbGRJZCkgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmxlYXZlR3VpbGQoZ3VpbGRJZClcbiAgICB9LFxuICAgIGxlYXZlVGhyZWFkOiBhc3luYyAoY2hhbm5lbElkKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QubGVhdmVUaHJlYWQoY2hhbm5lbElkKVxuICAgIH0sXG4gICAgcmVtb3ZlUm9sZTogYXN5bmMgKGd1aWxkSWQsIHVzZXJJZCwgcm9sZUlkLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5yZW1vdmVSb2xlKGd1aWxkSWQsIHVzZXJJZCwgcm9sZUlkLCByZWFzb24pXG4gICAgfSxcbiAgICByZW1vdmVUaHJlYWRNZW1iZXI6IGFzeW5jIChjaGFubmVsSWQsIHVzZXJJZCkgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LnJlbW92ZVRocmVhZE1lbWJlcihjaGFubmVsSWQsIHVzZXJJZClcbiAgICB9LFxuICAgIHJlbW92ZURtUmVjaXBpZW50OiBhc3luYyAoY2hhbm5lbElkLCB1c2VySWQpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5yZW1vdmVEbVJlY2lwaWVudChjaGFubmVsSWQsIHVzZXJJZClcbiAgICB9LFxuICAgIHNlbmRJbnRlcmFjdGlvblJlc3BvbnNlOiBhc3luYyAoaW50ZXJhY3Rpb25JZCwgdG9rZW4sIG9wdGlvbnMsIHBhcmFtcykgPT4ge1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBib3QucmVzdC5zZW5kSW50ZXJhY3Rpb25SZXNwb25zZShpbnRlcmFjdGlvbklkLCB0b2tlbiwgb3B0aW9ucywgcGFyYW1zKVxuXG4gICAgICBpZiAoIXJlc3BvbnNlKSByZXR1cm5cblxuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuaW50ZXJhY3Rpb25DYWxsYmFja1Jlc3BvbnNlKGJvdCwgeyBpbnRlcmFjdGlvbkNhbGxiYWNrUmVzcG9uc2U6IHNuYWtlbGl6ZShyZXNwb25zZSksIHNoYXJkSWQ6IDAgfSlcbiAgICB9LFxuICAgIHRyaWdnZXJUeXBpbmdJbmRpY2F0b3I6IGFzeW5jIChjaGFubmVsSWQpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC50cmlnZ2VyVHlwaW5nSW5kaWNhdG9yKGNoYW5uZWxJZClcbiAgICB9LFxuICAgIGJhbk1lbWJlcjogYXN5bmMgKGd1aWxkSWQsIHVzZXJJZCwgb3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuYmFuTWVtYmVyKGd1aWxkSWQsIHVzZXJJZCwgb3B0aW9ucywgcmVhc29uKVxuICAgIH0sXG5cbiAgICBraWNrTWVtYmVyOiBhc3luYyAoZ3VpbGRJZCwgdXNlcklkLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5raWNrTWVtYmVyKGd1aWxkSWQsIHVzZXJJZCwgcmVhc29uKVxuICAgIH0sXG4gICAgcGluTWVzc2FnZTogYXN5bmMgKGNoYW5uZWxJZCwgbWVzc2FnZUlkLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5waW5NZXNzYWdlKGNoYW5uZWxJZCwgbWVzc2FnZUlkLCByZWFzb24pXG4gICAgfSxcbiAgICB1bmJhbk1lbWJlcjogYXN5bmMgKGd1aWxkSWQsIHVzZXJJZCwgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QudW5iYW5NZW1iZXIoZ3VpbGRJZCwgdXNlcklkLCByZWFzb24pXG4gICAgfSxcbiAgICB1bnBpbk1lc3NhZ2U6IGFzeW5jIChjaGFubmVsSWQsIG1lc3NhZ2VJZCwgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QudW5waW5NZXNzYWdlKGNoYW5uZWxJZCwgbWVzc2FnZUlkLCByZWFzb24pXG4gICAgfSxcbiAgICBnZXRHdWlsZE9uYm9hcmRpbmc6IGFzeW5jIChndWlsZElkKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5ndWlsZE9uYm9hcmRpbmcoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0R3VpbGRPbmJvYXJkaW5nKGd1aWxkSWQpKSlcbiAgICB9LFxuICAgIGVkaXRHdWlsZE9uYm9hcmRpbmc6IGFzeW5jIChndWlsZElkLCBvcHRpb25zLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmd1aWxkT25ib2FyZGluZyhib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5lZGl0R3VpbGRPbmJvYXJkaW5nKGd1aWxkSWQsIG9wdGlvbnMsIHJlYXNvbikpKVxuICAgIH0sXG4gICAgbGlzdEVudGl0bGVtZW50czogYXN5bmMgKGFwcGxpY2F0aW9uSWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiAoYXdhaXQgYm90LnJlc3QubGlzdEVudGl0bGVtZW50cyhhcHBsaWNhdGlvbklkLCBvcHRpb25zKSkubWFwKChlbnRpdGxlbWVudCkgPT4gYm90LnRyYW5zZm9ybWVycy5lbnRpdGxlbWVudChib3QsIHNuYWtlbGl6ZShlbnRpdGxlbWVudCkpKVxuICAgIH0sXG4gICAgZ2V0RW50aXRsZW1lbnQ6IGFzeW5jIChhcHBsaWNhdGlvbklkLCBlbnRpdGxlbWVudElkKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5lbnRpdGxlbWVudChib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRFbnRpdGxlbWVudChhcHBsaWNhdGlvbklkLCBlbnRpdGxlbWVudElkKSkpXG4gICAgfSxcbiAgICBjcmVhdGVUZXN0RW50aXRsZW1lbnQ6IGFzeW5jIChhcHBsaWNhdGlvbklkLCBib2R5KSA9PiB7XG4gICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIGNyZWF0ZVRlc3RFbnRpdGxlbWVudCBnaXZlcyBhIHBhcnRpYWwsIGFuZCB0aGlzIG1ldGhvZCByZXR1cm5zIGEgcGFydGlhbFxuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuZW50aXRsZW1lbnQoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuY3JlYXRlVGVzdEVudGl0bGVtZW50KGFwcGxpY2F0aW9uSWQsIGJvZHkpKSkgYXMgUGFydGlhbDxcbiAgICAgICAgdHlwZW9mIGJvdC50cmFuc2Zvcm1lcnMuJGluZmVycmVkVHlwZXMuZW50aXRsZW1lbnRcbiAgICAgID5cbiAgICB9LFxuICAgIGRlbGV0ZVRlc3RFbnRpdGxlbWVudDogYXN5bmMgKGFwcGxpY2F0aW9uSWQsIGVudGl0bGVtZW50SWQpID0+IHtcbiAgICAgIGF3YWl0IGJvdC5yZXN0LmRlbGV0ZVRlc3RFbnRpdGxlbWVudChhcHBsaWNhdGlvbklkLCBlbnRpdGxlbWVudElkKVxuICAgIH0sXG4gICAgbGlzdFNrdXM6IGFzeW5jIChhcHBsaWNhdGlvbklkKSA9PiB7XG4gICAgICByZXR1cm4gKGF3YWl0IGJvdC5yZXN0Lmxpc3RTa3VzKGFwcGxpY2F0aW9uSWQpKS5tYXAoKHNrdSkgPT4gYm90LnRyYW5zZm9ybWVycy5za3UoYm90LCBzbmFrZWxpemUoc2t1KSkpXG4gICAgfSxcbiAgICBnZXRTdWJzY3JpcHRpb246IGFzeW5jIChza3VJZCwgc3Vic2NyaXB0aW9uSWQpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLnN1YnNjcmlwdGlvbihib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRTdWJzY3JpcHRpb24oc2t1SWQsIHN1YnNjcmlwdGlvbklkKSkpXG4gICAgfSxcbiAgICBsaXN0U3Vic2NyaXB0aW9uczogYXN5bmMgKHNrdUlkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gKGF3YWl0IGJvdC5yZXN0Lmxpc3RTdWJzY3JpcHRpb25zKHNrdUlkLCBvcHRpb25zKSkubWFwKChzdWJzY3JpcHRpb24pID0+IGJvdC50cmFuc2Zvcm1lcnMuc3Vic2NyaXB0aW9uKGJvdCwgc25ha2VsaXplKHN1YnNjcmlwdGlvbikpKVxuICAgIH0sXG4gICAgc2VuZFNvdW5kYm9hcmRTb3VuZDogYXN5bmMgKGNoYW5uZWxJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgYXdhaXQgYm90LnJlc3Quc2VuZFNvdW5kYm9hcmRTb3VuZChjaGFubmVsSWQsIG9wdGlvbnMpXG4gICAgfSxcbiAgICBsaXN0RGVmYXVsdFNvdW5kYm9hcmRTb3VuZHM6IGFzeW5jICgpID0+IHtcbiAgICAgIHJldHVybiAoYXdhaXQgYm90LnJlc3QubGlzdERlZmF1bHRTb3VuZGJvYXJkU291bmRzKCkpLm1hcCgoc291bmQpID0+IGJvdC50cmFuc2Zvcm1lcnMuc291bmRib2FyZFNvdW5kKGJvdCwgc25ha2VsaXplKHNvdW5kKSkpXG4gICAgfSxcbiAgICBsaXN0R3VpbGRTb3VuZGJvYXJkU291bmRzOiBhc3luYyAoZ3VpbGRJZCkgPT4ge1xuICAgICAgY29uc3QgcmVzID0gYXdhaXQgYm90LnJlc3QubGlzdEd1aWxkU291bmRib2FyZFNvdW5kcyhndWlsZElkKVxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBpdGVtczogcmVzLml0ZW1zLm1hcCgoc291bmQpID0+IGJvdC50cmFuc2Zvcm1lcnMuc291bmRib2FyZFNvdW5kKGJvdCwgc25ha2VsaXplKHNvdW5kKSkpLFxuICAgICAgfVxuICAgIH0sXG4gICAgZ2V0R3VpbGRTb3VuZGJvYXJkU291bmQ6IGFzeW5jIChndWlsZElkLCBzb3VuZElkKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5zb3VuZGJvYXJkU291bmQoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0R3VpbGRTb3VuZGJvYXJkU291bmQoZ3VpbGRJZCwgc291bmRJZCkpKVxuICAgIH0sXG4gICAgY3JlYXRlR3VpbGRTb3VuZGJvYXJkU291bmQ6IGFzeW5jIChndWlsZElkLCBvcHRpb25zLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLnNvdW5kYm9hcmRTb3VuZChib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5jcmVhdGVHdWlsZFNvdW5kYm9hcmRTb3VuZChndWlsZElkLCBvcHRpb25zLCByZWFzb24pKSlcbiAgICB9LFxuICAgIG1vZGlmeUd1aWxkU291bmRib2FyZFNvdW5kOiBhc3luYyAoZ3VpbGRJZCwgc291bmRJZCwgb3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5zb3VuZGJvYXJkU291bmQoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QubW9kaWZ5R3VpbGRTb3VuZGJvYXJkU291bmQoZ3VpbGRJZCwgc291bmRJZCwgb3B0aW9ucywgcmVhc29uKSkpXG4gICAgfSxcbiAgICBkZWxldGVHdWlsZFNvdW5kYm9hcmRTb3VuZDogYXN5bmMgKGd1aWxkSWQsIHNvdW5kSWQsIHJlYXNvbikgPT4ge1xuICAgICAgYXdhaXQgYm90LnJlc3QuZGVsZXRlR3VpbGRTb3VuZGJvYXJkU291bmQoZ3VpbGRJZCwgc291bmRJZCwgcmVhc29uKVxuICAgIH0sXG4gICAgZGVsZXRlTG9iYnk6IGFzeW5jIChsb2JieUlkKSA9PiB7XG4gICAgICBhd2FpdCBib3QucmVzdC5kZWxldGVMb2JieShsb2JieUlkKVxuICAgIH0sXG4gICAgcmVtb3ZlTWVtYmVyRnJvbUxvYmJ5OiBhc3luYyAobG9iYnlJZCwgdXNlcklkKSA9PiB7XG4gICAgICBhd2FpdCBib3QucmVzdC5yZW1vdmVNZW1iZXJGcm9tTG9iYnkobG9iYnlJZCwgdXNlcklkKVxuICAgIH0sXG4gICAgbGVhdmVMb2JieTogYXN5bmMgKGxvYmJ5SWQsIGJlYXJlclRva2VuKSA9PiB7XG4gICAgICBhd2FpdCBib3QucmVzdC5sZWF2ZUxvYmJ5KGxvYmJ5SWQsIGJlYXJlclRva2VuKVxuICAgIH0sXG4gIH1cbn1cblxuZXhwb3J0IHR5cGUgQm90SGVscGVyczxUUHJvcHMgZXh0ZW5kcyBUcmFuc2Zvcm1lcnNEZXNpcmVkUHJvcGVydGllcywgVEJlaGF2aW9yIGV4dGVuZHMgRGVzaXJlZFByb3BlcnRpZXNCZWhhdmlvcj4gPSB7XG4gIGNyZWF0ZUF1dG9tb2RSdWxlOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBvcHRpb25zOiBDcmVhdGVBdXRvTW9kZXJhdGlvblJ1bGVPcHRpb25zLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8QXV0b01vZGVyYXRpb25SdWxlPlxuICBjcmVhdGVDaGFubmVsOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBvcHRpb25zOiBDcmVhdGVHdWlsZENoYW5uZWwsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxDaGFubmVsLCBUUHJvcHMsIFRCZWhhdmlvcj4+XG4gIGNyZWF0ZUVtb2ppOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBvcHRpb25zOiBDcmVhdGVHdWlsZEVtb2ppLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8RW1vamksIFRQcm9wcywgVEJlaGF2aW9yPj5cbiAgY3JlYXRlQXBwbGljYXRpb25FbW9qaTogKG9wdGlvbnM6IENyZWF0ZUFwcGxpY2F0aW9uRW1vamkpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8RW1vamksIFRQcm9wcywgVEJlaGF2aW9yPj5cbiAgY3JlYXRlRm9ydW1UaHJlYWQ6IChcbiAgICBjaGFubmVsSWQ6IEJpZ1N0cmluZyxcbiAgICBvcHRpb25zOiBDcmVhdGVGb3J1bVBvc3RXaXRoTWVzc2FnZSxcbiAgICByZWFzb24/OiBzdHJpbmcsXG4gICkgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxDaGFubmVsLCBUUHJvcHMsIFRCZWhhdmlvcj4+XG4gIGNyZWF0ZUdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZDogKGNvbW1hbmQ6IENyZWF0ZUFwcGxpY2F0aW9uQ29tbWFuZCwgb3B0aW9ucz86IENyZWF0ZUdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZE9wdGlvbnMpID0+IFByb21pc2U8QXBwbGljYXRpb25Db21tYW5kPlxuICBjcmVhdGVHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZDogKFxuICAgIGNvbW1hbmQ6IENyZWF0ZUFwcGxpY2F0aW9uQ29tbWFuZCxcbiAgICBndWlsZElkOiBCaWdTdHJpbmcsXG4gICAgb3B0aW9ucz86IENyZWF0ZUd1aWxkQXBwbGljYXRpb25Db21tYW5kT3B0aW9ucyxcbiAgKSA9PiBQcm9taXNlPEFwcGxpY2F0aW9uQ29tbWFuZD5cbiAgY3JlYXRlR3VpbGRTdGlja2VyOiAoXG4gICAgZ3VpbGRJZDogQmlnU3RyaW5nLFxuICAgIG9wdGlvbnM6IENyZWF0ZUd1aWxkU3RpY2tlck9wdGlvbnMsXG4gICAgcmVhc29uPzogc3RyaW5nLFxuICApID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8U3RpY2tlciwgVFByb3BzLCBUQmVoYXZpb3I+PlxuICBjcmVhdGVHdWlsZFRlbXBsYXRlOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBvcHRpb25zOiBDcmVhdGVUZW1wbGF0ZSkgPT4gUHJvbWlzZTxUZW1wbGF0ZT5cbiAgY3JlYXRlSW52aXRlOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIG9wdGlvbnM/OiBDcmVhdGVDaGFubmVsSW52aXRlLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8Q2FtZWxpemU8RGlzY29yZEludml0ZT4+XG4gIGNyZWF0ZVJvbGU6IChndWlsZElkOiBCaWdTdHJpbmcsIG9wdGlvbnM6IENyZWF0ZUd1aWxkUm9sZSwgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPFJvbGUsIFRQcm9wcywgVEJlaGF2aW9yPj5cbiAgY3JlYXRlU2NoZWR1bGVkRXZlbnQ6IChcbiAgICBndWlsZElkOiBCaWdTdHJpbmcsXG4gICAgb3B0aW9uczogQ3JlYXRlU2NoZWR1bGVkRXZlbnQsXG4gICAgcmVhc29uPzogc3RyaW5nLFxuICApID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8U2NoZWR1bGVkRXZlbnQsIFRQcm9wcywgVEJlaGF2aW9yPj5cbiAgY3JlYXRlU3RhZ2VJbnN0YW5jZTogKG9wdGlvbnM6IENyZWF0ZVN0YWdlSW5zdGFuY2UsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxTdGFnZUluc3RhbmNlLCBUUHJvcHMsIFRCZWhhdmlvcj4+XG4gIGNyZWF0ZVdlYmhvb2s6IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgb3B0aW9uczogQ3JlYXRlV2ViaG9vaywgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPFdlYmhvb2ssIFRQcm9wcywgVEJlaGF2aW9yPj5cbiAgZWRpdEFwcGxpY2F0aW9uQ29tbWFuZFBlcm1pc3Npb25zOiAoXG4gICAgZ3VpbGRJZDogQmlnU3RyaW5nLFxuICAgIGNvbW1hbmRJZDogQmlnU3RyaW5nLFxuICAgIGJlYXJlclRva2VuOiBzdHJpbmcsXG4gICAgb3B0aW9uczogQ2FtZWxpemU8RGlzY29yZEFwcGxpY2F0aW9uQ29tbWFuZFBlcm1pc3Npb25zPltdLFxuICApID0+IFByb21pc2U8R3VpbGRBcHBsaWNhdGlvbkNvbW1hbmRQZXJtaXNzaW9ucz5cbiAgZWRpdEF1dG9tb2RSdWxlOiAoXG4gICAgZ3VpbGRJZDogQmlnU3RyaW5nLFxuICAgIHJ1bGVJZDogQmlnU3RyaW5nLFxuICAgIG9wdGlvbnM6IFBhcnRpYWw8RWRpdEF1dG9Nb2RlcmF0aW9uUnVsZU9wdGlvbnM+LFxuICAgIHJlYXNvbj86IHN0cmluZyxcbiAgKSA9PiBQcm9taXNlPEF1dG9Nb2RlcmF0aW9uUnVsZT5cbiAgZWRpdEJvdFByb2ZpbGU6IChvcHRpb25zOiB7XG4gICAgdXNlcm5hbWU/OiBzdHJpbmdcbiAgICBib3RBdmF0YXJVUkw/OiBzdHJpbmcgfCBudWxsXG4gICAgYm90QmFubmVyVVJMPzogc3RyaW5nIHwgbnVsbFxuICB9KSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPFVzZXIsIFRQcm9wcywgVEJlaGF2aW9yPj5cbiAgZWRpdENoYW5uZWw6IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgb3B0aW9uczogTW9kaWZ5Q2hhbm5lbCwgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPENoYW5uZWwsIFRQcm9wcywgVEJlaGF2aW9yPj5cbiAgZWRpdEVtb2ppOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBpZDogQmlnU3RyaW5nLCBvcHRpb25zOiBNb2RpZnlHdWlsZEVtb2ppLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8RW1vamksIFRQcm9wcywgVEJlaGF2aW9yPj5cbiAgZWRpdEFwcGxpY2F0aW9uRW1vamk6IChpZDogQmlnU3RyaW5nLCBvcHRpb25zOiBNb2RpZnlBcHBsaWNhdGlvbkVtb2ppKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPEVtb2ppLCBUUHJvcHMsIFRCZWhhdmlvcj4+XG4gIGVkaXRGb2xsb3d1cE1lc3NhZ2U6IChcbiAgICB0b2tlbjogc3RyaW5nLFxuICAgIG1lc3NhZ2VJZDogQmlnU3RyaW5nLFxuICAgIG9wdGlvbnM6IEludGVyYWN0aW9uQ2FsbGJhY2tEYXRhLFxuICApID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8TWVzc2FnZSwgVFByb3BzLCBUQmVoYXZpb3I+PlxuICBlZGl0R2xvYmFsQXBwbGljYXRpb25Db21tYW5kOiAoY29tbWFuZElkOiBCaWdTdHJpbmcsIG9wdGlvbnM6IENyZWF0ZUFwcGxpY2F0aW9uQ29tbWFuZCkgPT4gUHJvbWlzZTxBcHBsaWNhdGlvbkNvbW1hbmQ+XG4gIGVkaXRHdWlsZDogKGd1aWxkSWQ6IEJpZ1N0cmluZywgb3B0aW9uczogTW9kaWZ5R3VpbGQsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxHdWlsZCwgVFByb3BzLCBUQmVoYXZpb3I+PlxuICBlZGl0R3VpbGRBcHBsaWNhdGlvbkNvbW1hbmQ6IChjb21tYW5kSWQ6IEJpZ1N0cmluZywgZ3VpbGRJZDogQmlnU3RyaW5nLCBvcHRpb25zOiBDcmVhdGVBcHBsaWNhdGlvbkNvbW1hbmQpID0+IFByb21pc2U8QXBwbGljYXRpb25Db21tYW5kPlxuICBlZGl0R3VpbGRTdGlja2VyOiAoXG4gICAgZ3VpbGRJZDogQmlnU3RyaW5nLFxuICAgIHN0aWNrZXJJZDogQmlnU3RyaW5nLFxuICAgIG9wdGlvbnM6IEF0TGVhc3RPbmU8RWRpdEd1aWxkU3RpY2tlck9wdGlvbnM+LFxuICAgIHJlYXNvbj86IHN0cmluZyxcbiAgKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPFN0aWNrZXIsIFRQcm9wcywgVEJlaGF2aW9yPj5cbiAgZWRpdEd1aWxkVGVtcGxhdGU6IChndWlsZElkOiBCaWdTdHJpbmcsIHRlbXBsYXRlQ29kZTogc3RyaW5nLCBvcHRpb25zOiBNb2RpZnlHdWlsZFRlbXBsYXRlKSA9PiBQcm9taXNlPFRlbXBsYXRlPlxuICBlZGl0TWVzc2FnZTogKGNoYW5uZWxJZDogQmlnU3RyaW5nLCBtZXNzYWdlSWQ6IEJpZ1N0cmluZywgb3B0aW9uczogRWRpdE1lc3NhZ2UpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8TWVzc2FnZSwgVFByb3BzLCBUQmVoYXZpb3I+PlxuICBlZGl0T3JpZ2luYWxJbnRlcmFjdGlvblJlc3BvbnNlOiAodG9rZW46IHN0cmluZywgb3B0aW9uczogSW50ZXJhY3Rpb25DYWxsYmFja0RhdGEpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8TWVzc2FnZSwgVFByb3BzLCBUQmVoYXZpb3I+PlxuICBlZGl0Um9sZTogKGd1aWxkSWQ6IEJpZ1N0cmluZywgcm9sZUlkOiBCaWdTdHJpbmcsIG9wdGlvbnM6IEVkaXRHdWlsZFJvbGUsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxSb2xlLCBUUHJvcHMsIFRCZWhhdmlvcj4+XG4gIGVkaXRSb2xlUG9zaXRpb25zOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBvcHRpb25zOiBNb2RpZnlSb2xlUG9zaXRpb25zW10sIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxSb2xlLCBUUHJvcHMsIFRCZWhhdmlvcj5bXT5cbiAgZWRpdFNjaGVkdWxlZEV2ZW50OiAoXG4gICAgZ3VpbGRJZDogQmlnU3RyaW5nLFxuICAgIGV2ZW50SWQ6IEJpZ1N0cmluZyxcbiAgICBvcHRpb25zOiBQYXJ0aWFsPEVkaXRTY2hlZHVsZWRFdmVudD4sXG4gICAgcmVhc29uPzogc3RyaW5nLFxuICApID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8U2NoZWR1bGVkRXZlbnQsIFRQcm9wcywgVEJlaGF2aW9yPj5cbiAgZWRpdFN0YWdlSW5zdGFuY2U6IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgdG9waWM6IHN0cmluZywgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPFN0YWdlSW5zdGFuY2UsIFRQcm9wcywgVEJlaGF2aW9yPj5cbiAgZWRpdFdlYmhvb2s6ICh3ZWJob29rSWQ6IEJpZ1N0cmluZywgb3B0aW9uczogTW9kaWZ5V2ViaG9vaywgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPFdlYmhvb2ssIFRQcm9wcywgVEJlaGF2aW9yPj5cbiAgZWRpdFdlYmhvb2tNZXNzYWdlOiAoXG4gICAgd2ViaG9va0lkOiBCaWdTdHJpbmcsXG4gICAgdG9rZW46IHN0cmluZyxcbiAgICBtZXNzYWdlSWQ6IEJpZ1N0cmluZyxcbiAgICBvcHRpb25zOiBFZGl0V2ViaG9va01lc3NhZ2VPcHRpb25zLFxuICApID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8TWVzc2FnZSwgVFByb3BzLCBUQmVoYXZpb3I+PlxuICBlZGl0V2ViaG9va1dpdGhUb2tlbjogKFxuICAgIHdlYmhvb2tJZDogQmlnU3RyaW5nLFxuICAgIHRva2VuOiBzdHJpbmcsXG4gICAgb3B0aW9uczogT21pdDxNb2RpZnlXZWJob29rLCAnY2hhbm5lbElkJz4sXG4gICkgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxXZWJob29rLCBUUHJvcHMsIFRCZWhhdmlvcj4+XG4gIGVkaXRXZWxjb21lU2NyZWVuOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBvcHRpb25zOiBNb2RpZnlHdWlsZFdlbGNvbWVTY3JlZW4sIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTxXZWxjb21lU2NyZWVuPlxuICBlZGl0V2lkZ2V0U2V0dGluZ3M6IChndWlsZElkOiBCaWdTdHJpbmcsIG9wdGlvbnM6IENhbWVsaXplPERpc2NvcmRHdWlsZFdpZGdldFNldHRpbmdzPiwgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPEd1aWxkV2lkZ2V0U2V0dGluZ3M+XG4gIGVkaXRVc2VyQXBwbGljYXRpb25Sb2xlQ29ubmVjdGlvbjogKFxuICAgIGJlYXJlclRva2VuOiBzdHJpbmcsXG4gICAgYXBwbGljYXRpb25JZDogQmlnU3RyaW5nLFxuICAgIG9wdGlvbnM6IENhbWVsaXplPERpc2NvcmRBcHBsaWNhdGlvblJvbGVDb25uZWN0aW9uPixcbiAgKSA9PiBQcm9taXNlPENhbWVsaXplPERpc2NvcmRBcHBsaWNhdGlvblJvbGVDb25uZWN0aW9uPj5cbiAgZXhlY3V0ZVdlYmhvb2s6ICh3ZWJob29rSWQ6IEJpZ1N0cmluZywgdG9rZW46IHN0cmluZywgb3B0aW9uczogRXhlY3V0ZVdlYmhvb2spID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8TWVzc2FnZSwgVFByb3BzLCBUQmVoYXZpb3I+IHwgdW5kZWZpbmVkPlxuICBmb2xsb3dBbm5vdW5jZW1lbnQ6IChzb3VyY2VDaGFubmVsSWQ6IEJpZ1N0cmluZywgdGFyZ2V0Q2hhbm5lbElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8Q2FtZWxpemU8RGlzY29yZEZvbGxvd2VkQ2hhbm5lbD4+XG4gIGdldEFjdGl2ZVRocmVhZHM6IChndWlsZElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8eyB0aHJlYWRzOiBTZXR1cERlc2lyZWRQcm9wczxDaGFubmVsLCBUUHJvcHMsIFRCZWhhdmlvcj5bXTsgbWVtYmVyczogVGhyZWFkTWVtYmVyW10gfT5cbiAgZ2V0QXBwbGljYXRpb25JbmZvOiAoKSA9PiBQcm9taXNlPEFwcGxpY2F0aW9uPlxuICBlZGl0QXBwbGljYXRpb25JbmZvOiAoYm9keTogRWRpdEFwcGxpY2F0aW9uKSA9PiBQcm9taXNlPEFwcGxpY2F0aW9uPlxuICBnZXRDdXJyZW50QXV0aGVudGljYXRpb25JbmZvOiAoYmVhcmVyVG9rZW46IHN0cmluZykgPT4gUHJvbWlzZTxDYW1lbGl6ZTxEaXNjb3JkQ3VycmVudEF1dGhvcml6YXRpb24+PlxuICBleGNoYW5nZVRva2VuOiAoY2xpZW50SWQ6IEJpZ1N0cmluZywgY2xpZW50U2VjcmV0OiBzdHJpbmcsIG9wdGlvbnM6IENhbWVsaXplPERpc2NvcmRUb2tlbkV4Y2hhbmdlPikgPT4gUHJvbWlzZTxDYW1lbGl6ZTxEaXNjb3JkQWNjZXNzVG9rZW5SZXNwb25zZT4+XG4gIHJldm9rZVRva2VuOiAoY2xpZW50SWQ6IEJpZ1N0cmluZywgY2xpZW50U2VjcmV0OiBzdHJpbmcsIG9wdGlvbnM6IENhbWVsaXplPERpc2NvcmRUb2tlblJldm9jYXRpb24+KSA9PiBQcm9taXNlPHZvaWQ+XG4gIGdldEFwcGxpY2F0aW9uQ29tbWFuZFBlcm1pc3Npb246IChcbiAgICBndWlsZElkOiBCaWdTdHJpbmcsXG4gICAgY29tbWFuZElkOiBCaWdTdHJpbmcsXG4gICAgb3B0aW9ucz86IEdldEFwcGxpY2F0aW9uQ29tbWFuZFBlcm1pc3Npb25PcHRpb25zLFxuICApID0+IFByb21pc2U8R3VpbGRBcHBsaWNhdGlvbkNvbW1hbmRQZXJtaXNzaW9ucz5cbiAgZ2V0QXBwbGljYXRpb25Db21tYW5kUGVybWlzc2lvbnM6IChcbiAgICBndWlsZElkOiBCaWdTdHJpbmcsXG4gICAgb3B0aW9ucz86IEdldEFwcGxpY2F0aW9uQ29tbWFuZFBlcm1pc3Npb25PcHRpb25zLFxuICApID0+IFByb21pc2U8R3VpbGRBcHBsaWNhdGlvbkNvbW1hbmRQZXJtaXNzaW9uc1tdPlxuICBnZXRBdWRpdExvZzogKGd1aWxkSWQ6IEJpZ1N0cmluZywgb3B0aW9ucz86IEdldEd1aWxkQXVkaXRMb2cpID0+IFByb21pc2U8Q2FtZWxpemU8RGlzY29yZEF1ZGl0TG9nPj5cbiAgZ2V0QXV0b21vZFJ1bGU6IChndWlsZElkOiBCaWdTdHJpbmcsIHJ1bGVJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPEF1dG9Nb2RlcmF0aW9uUnVsZT5cbiAgZ2V0QXV0b21vZFJ1bGVzOiAoZ3VpbGRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPEF1dG9Nb2RlcmF0aW9uUnVsZVtdPlxuICBnZXRBdmFpbGFibGVWb2ljZVJlZ2lvbnM6ICgpID0+IFByb21pc2U8Q2FtZWxpemU8RGlzY29yZFZvaWNlUmVnaW9uPltdPlxuICBnZXRCYW46IChndWlsZElkOiBCaWdTdHJpbmcsIHVzZXJJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPENhbWVsaXplPERpc2NvcmRCYW4+PlxuICBnZXRCYW5zOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBvcHRpb25zPzogR2V0QmFucykgPT4gUHJvbWlzZTxDYW1lbGl6ZTxEaXNjb3JkQmFuPltdPlxuICBnZXRDaGFubmVsOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8Q2hhbm5lbCwgVFByb3BzLCBUQmVoYXZpb3I+PlxuICBnZXRDaGFubmVsSW52aXRlczogKGNoYW5uZWxJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPENhbWVsaXplPERpc2NvcmRJbnZpdGVNZXRhZGF0YT5bXT5cbiAgZ2V0Q2hhbm5lbHM6IChndWlsZElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8Q2hhbm5lbCwgVFByb3BzLCBUQmVoYXZpb3I+W10+XG4gIGdldENoYW5uZWxXZWJob29rczogKGNoYW5uZWxJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPFdlYmhvb2ssIFRQcm9wcywgVEJlaGF2aW9yPltdPlxuICBnZXREbUNoYW5uZWw6ICh1c2VySWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxDaGFubmVsLCBUUHJvcHMsIFRCZWhhdmlvcj4+XG4gIGdldEdyb3VwRG1DaGFubmVsOiAob3B0aW9uczogR2V0R3JvdXBEbU9wdGlvbnMpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8Q2hhbm5lbCwgVFByb3BzLCBUQmVoYXZpb3I+PlxuICBnZXRFbW9qaTogKGd1aWxkSWQ6IEJpZ1N0cmluZywgZW1vamlJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPEVtb2ppLCBUUHJvcHMsIFRCZWhhdmlvcj4+XG4gIGdldEFwcGxpY2F0aW9uRW1vamk6IChlbW9qaUlkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8RW1vamksIFRQcm9wcywgVEJlaGF2aW9yPj5cbiAgZ2V0RW1vamlzOiAoZ3VpbGRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPEVtb2ppLCBUUHJvcHMsIFRCZWhhdmlvcj5bXT5cbiAgZ2V0QXBwbGljYXRpb25FbW9qaXM6ICgpID0+IFByb21pc2U8eyBpdGVtczogU2V0dXBEZXNpcmVkUHJvcHM8RW1vamksIFRQcm9wcywgVEJlaGF2aW9yPltdIH0+XG4gIGdldEZvbGxvd3VwTWVzc2FnZTogKHRva2VuOiBzdHJpbmcsIG1lc3NhZ2VJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPE1lc3NhZ2UsIFRQcm9wcywgVEJlaGF2aW9yPj5cbiAgZ2V0R2F0ZXdheUJvdDogKCkgPT4gUHJvbWlzZTxDYW1lbGl6ZTxEaXNjb3JkR2V0R2F0ZXdheUJvdD4+XG4gIGdldEdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZDogKGNvbW1hbmRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPEFwcGxpY2F0aW9uQ29tbWFuZD5cbiAgZ2V0R2xvYmFsQXBwbGljYXRpb25Db21tYW5kczogKG9wdGlvbnM/OiBHZXRHbG9iYWxBcHBsaWNhdGlvbkNvbW1hbmRzT3B0aW9ucykgPT4gUHJvbWlzZTxBcHBsaWNhdGlvbkNvbW1hbmRbXT5cbiAgZ2V0R3VpbGQ6IChndWlsZElkOiBCaWdTdHJpbmcsIG9wdGlvbnM/OiB7IGNvdW50cz86IGJvb2xlYW4gfSkgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxHdWlsZCwgVFByb3BzLCBUQmVoYXZpb3I+PlxuICBnZXRHdWlsZHM6IChiZWFyZXJUb2tlbjogc3RyaW5nLCBvcHRpb25zPzogR2V0VXNlckd1aWxkcykgPT4gUHJvbWlzZTxQYXJ0aWFsPFNldHVwRGVzaXJlZFByb3BzPEd1aWxkLCBUUHJvcHMsIFRCZWhhdmlvcj4+W10+XG4gIGdldEd1aWxkQXBwbGljYXRpb25Db21tYW5kOiAoY29tbWFuZElkOiBCaWdTdHJpbmcsIGd1aWxkSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxBcHBsaWNhdGlvbkNvbW1hbmQ+XG4gIGdldEd1aWxkQXBwbGljYXRpb25Db21tYW5kczogKGd1aWxkSWQ6IEJpZ1N0cmluZywgb3B0aW9ucz86IEdldEd1aWxkQXBwbGljYXRpb25Db21tYW5kc09wdGlvbnMpID0+IFByb21pc2U8QXBwbGljYXRpb25Db21tYW5kW10+XG4gIGdldEd1aWxkUHJldmlldzogKGd1aWxkSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxDYW1lbGl6ZTxEaXNjb3JkR3VpbGRQcmV2aWV3Pj5cbiAgZ2V0R3VpbGRTdGlja2VyOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBzdGlja2VySWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxTdGlja2VyLCBUUHJvcHMsIFRCZWhhdmlvcj4+XG4gIGdldEd1aWxkU3RpY2tlcnM6IChndWlsZElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8U3RpY2tlciwgVFByb3BzLCBUQmVoYXZpb3I+W10+XG4gIGdldEd1aWxkVGVtcGxhdGU6ICh0ZW1wbGF0ZUNvZGU6IHN0cmluZykgPT4gUHJvbWlzZTxUZW1wbGF0ZT5cbiAgZ2V0R3VpbGRUZW1wbGF0ZXM6IChndWlsZElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8VGVtcGxhdGVbXT5cbiAgZ2V0R3VpbGRXZWJob29rczogKGd1aWxkSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxXZWJob29rLCBUUHJvcHMsIFRCZWhhdmlvcj5bXT5cbiAgZ2V0SW50ZWdyYXRpb25zOiAoZ3VpbGRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPEludGVncmF0aW9uW10+XG4gIGdldEludml0ZTogKGludml0ZUNvZGU6IHN0cmluZywgb3B0aW9ucz86IEdldEludml0ZSkgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxJbnZpdGUsIFRQcm9wcywgVEJlaGF2aW9yPj5cbiAgZ2V0SW52aXRlczogKGd1aWxkSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxJbnZpdGUsIFRQcm9wcywgVEJlaGF2aW9yPltdPlxuICBnZXRNZXNzYWdlOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIG1lc3NhZ2VJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPE1lc3NhZ2UsIFRQcm9wcywgVEJlaGF2aW9yPj5cbiAgZ2V0TWVzc2FnZXM6IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgb3B0aW9ucz86IEdldE1lc3NhZ2VzT3B0aW9ucykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxNZXNzYWdlLCBUUHJvcHMsIFRCZWhhdmlvcj5bXT5cbiAgZ2V0U3RpY2tlclBhY2s6IChzdGlja2VyUGFja0lkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8U3RpY2tlclBhY2s+XG4gIGdldFN0aWNrZXJQYWNrczogKCkgPT4gUHJvbWlzZTxTdGlja2VyUGFja1tdPlxuICBnZXRPcmlnaW5hbEludGVyYWN0aW9uUmVzcG9uc2U6ICh0b2tlbjogc3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPE1lc3NhZ2UsIFRQcm9wcywgVEJlaGF2aW9yPj5cbiAgZ2V0Q2hhbm5lbFBpbnM6IChcbiAgICBjaGFubmVsSWQ6IEJpZ1N0cmluZyxcbiAgICBvcHRpb25zPzogR2V0Q2hhbm5lbFBpbnNPcHRpb25zLFxuICApID0+IFByb21pc2U8eyBpdGVtczogU2V0dXBEZXNpcmVkUHJvcHM8TWVzc2FnZVBpbiwgVFByb3BzLCBUQmVoYXZpb3I+W107IGhhc01vcmU6IGJvb2xlYW4gfT5cbiAgLyoqIEBkZXByZWNhdGVkIFVzZSB7QGxpbmsgQm90SGVscGVycy5nZXRDaGFubmVsUGluc30gaW5zdGVhZCAqL1xuICBnZXRQaW5uZWRNZXNzYWdlczogKGNoYW5uZWxJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPE1lc3NhZ2UsIFRQcm9wcywgVEJlaGF2aW9yPltdPlxuICBnZXRQcml2YXRlQXJjaGl2ZWRUaHJlYWRzOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIG9wdGlvbnM/OiBMaXN0QXJjaGl2ZWRUaHJlYWRzKSA9PiBQcm9taXNlPENhbWVsaXplPERpc2NvcmRMaXN0QXJjaGl2ZWRUaHJlYWRzPj5cbiAgZ2V0UHJpdmF0ZUpvaW5lZEFyY2hpdmVkVGhyZWFkczogKGNoYW5uZWxJZDogQmlnU3RyaW5nLCBvcHRpb25zPzogTGlzdEFyY2hpdmVkVGhyZWFkcykgPT4gUHJvbWlzZTxDYW1lbGl6ZTxEaXNjb3JkTGlzdEFyY2hpdmVkVGhyZWFkcz4+XG4gIGdldFBydW5lQ291bnQ6IChndWlsZElkOiBCaWdTdHJpbmcsIG9wdGlvbnM/OiBHZXRHdWlsZFBydW5lQ291bnRRdWVyeSkgPT4gUHJvbWlzZTxDYW1lbGl6ZTxEaXNjb3JkUHJ1bmVkQ291bnQ+PlxuICBnZXRQdWJsaWNBcmNoaXZlZFRocmVhZHM6IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgb3B0aW9ucz86IExpc3RBcmNoaXZlZFRocmVhZHMpID0+IFByb21pc2U8Q2FtZWxpemU8RGlzY29yZExpc3RBcmNoaXZlZFRocmVhZHM+PlxuICBnZXRSb2xlczogKGd1aWxkSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxSb2xlLCBUUHJvcHMsIFRCZWhhdmlvcj5bXT5cbiAgZ2V0Um9sZTogKGd1aWxkSWQ6IEJpZ1N0cmluZywgcm9sZUlkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8Um9sZSwgVFByb3BzLCBUQmVoYXZpb3I+PlxuICBnZXRTY2hlZHVsZWRFdmVudDogKFxuICAgIGd1aWxkSWQ6IEJpZ1N0cmluZyxcbiAgICBldmVudElkOiBCaWdTdHJpbmcsXG4gICAgb3B0aW9ucz86IHsgd2l0aFVzZXJDb3VudD86IGJvb2xlYW4gfSxcbiAgKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPFNjaGVkdWxlZEV2ZW50LCBUUHJvcHMsIFRCZWhhdmlvcj4+XG4gIGdldFNjaGVkdWxlZEV2ZW50czogKGd1aWxkSWQ6IEJpZ1N0cmluZywgb3B0aW9ucz86IEdldFNjaGVkdWxlZEV2ZW50cykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxTY2hlZHVsZWRFdmVudCwgVFByb3BzLCBUQmVoYXZpb3I+W10+XG4gIGdldFNjaGVkdWxlZEV2ZW50VXNlcnM6IChcbiAgICBndWlsZElkOiBCaWdTdHJpbmcsXG4gICAgZXZlbnRJZDogQmlnU3RyaW5nLFxuICAgIG9wdGlvbnM/OiBHZXRTY2hlZHVsZWRFdmVudFVzZXJzLFxuICApID0+IFByb21pc2U8QXJyYXk8eyB1c2VyOiBTZXR1cERlc2lyZWRQcm9wczxVc2VyLCBUUHJvcHMsIFRCZWhhdmlvcj47IG1lbWJlcj86IFNldHVwRGVzaXJlZFByb3BzPE1lbWJlciwgVFByb3BzLCBUQmVoYXZpb3I+IH0+PlxuICBnZXRTZXNzaW9uSW5mbzogKCkgPT4gUHJvbWlzZTxDYW1lbGl6ZTxEaXNjb3JkR2V0R2F0ZXdheUJvdD4+XG4gIGdldFN0YWdlSW5zdGFuY2U6IChjaGFubmVsSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxTdGFnZUluc3RhbmNlLCBUUHJvcHMsIFRCZWhhdmlvcj4+XG4gIGdldE93blZvaWNlU3RhdGU6IChndWlsZElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8Vm9pY2VTdGF0ZSwgVFByb3BzLCBUQmVoYXZpb3I+PlxuICBnZXRVc2VyVm9pY2VTdGF0ZTogKGd1aWxkSWQ6IEJpZ1N0cmluZywgdXNlcklkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8Vm9pY2VTdGF0ZSwgVFByb3BzLCBUQmVoYXZpb3I+PlxuICBnZXRTdGlja2VyOiAoc3RpY2tlcklkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8U3RpY2tlciwgVFByb3BzLCBUQmVoYXZpb3I+PlxuICBnZXRUaHJlYWRNZW1iZXI6IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgdXNlcklkOiBCaWdTdHJpbmcsIG9wdGlvbnM/OiBHZXRUaHJlYWRNZW1iZXIsIGV4dHJhPzogVGhyZWFkTWVtYmVyVHJhbnNmb3JtZXJFeHRyYSkgPT4gUHJvbWlzZTxUaHJlYWRNZW1iZXI+XG4gIGdldFRocmVhZE1lbWJlcnM6IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgb3B0aW9ucz86IExpc3RUaHJlYWRNZW1iZXJzLCBleHRyYT86IFRocmVhZE1lbWJlclRyYW5zZm9ybWVyRXh0cmEpID0+IFByb21pc2U8VGhyZWFkTWVtYmVyW10+XG4gIGdldFJlYWN0aW9uczogKFxuICAgIGNoYW5uZWxJZDogQmlnU3RyaW5nLFxuICAgIG1lc3NhZ2VJZDogQmlnU3RyaW5nLFxuICAgIHJlYWN0aW9uOiBzdHJpbmcsXG4gICAgb3B0aW9ucz86IEdldFJlYWN0aW9ucyxcbiAgKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPFVzZXIsIFRQcm9wcywgVEJlaGF2aW9yPltdPlxuICBnZXRVc2VyOiAoaWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxVc2VyLCBUUHJvcHMsIFRCZWhhdmlvcj4+XG4gIGdldEN1cnJlbnRVc2VyOiAoYmVhcmVyVG9rZW46IHN0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxVc2VyLCBUUHJvcHMsIFRCZWhhdmlvcj4+XG4gIGdldFVzZXJDb25uZWN0aW9uczogKGJlYXJlclRva2VuOiBzdHJpbmcpID0+IFByb21pc2U8Q2FtZWxpemU8RGlzY29yZENvbm5lY3Rpb24+W10+XG4gIGdldFVzZXJBcHBsaWNhdGlvblJvbGVDb25uZWN0aW9uOiAoYmVhcmVyVG9rZW46IHN0cmluZywgYXBwbGljYXRpb25JZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPENhbWVsaXplPERpc2NvcmRBcHBsaWNhdGlvblJvbGVDb25uZWN0aW9uPj5cbiAgZ2V0VmFuaXR5VXJsOiAoZ3VpbGRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPENhbWVsaXplPERpc2NvcmRWYW5pdHlVcmw+PlxuICBnZXRWb2ljZVJlZ2lvbnM6IChndWlsZElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8Q2FtZWxpemU8RGlzY29yZFZvaWNlUmVnaW9uPltdPlxuICBnZXRXZWJob29rOiAod2ViaG9va0lkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8V2ViaG9vaywgVFByb3BzLCBUQmVoYXZpb3I+PlxuICBnZXRXZWJob29rTWVzc2FnZTogKFxuICAgIHdlYmhvb2tJZDogQmlnU3RyaW5nLFxuICAgIHRva2VuOiBzdHJpbmcsXG4gICAgbWVzc2FnZUlkOiBCaWdTdHJpbmcsXG4gICAgb3B0aW9ucz86IEdldFdlYmhvb2tNZXNzYWdlT3B0aW9ucyxcbiAgKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPE1lc3NhZ2UsIFRQcm9wcywgVEJlaGF2aW9yPj5cbiAgZ2V0V2ViaG9va1dpdGhUb2tlbjogKHdlYmhvb2tJZDogQmlnU3RyaW5nLCB0b2tlbjogc3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPFdlYmhvb2ssIFRQcm9wcywgVEJlaGF2aW9yPj5cbiAgZ2V0V2VsY29tZVNjcmVlbjogKGd1aWxkSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxXZWxjb21lU2NyZWVuPlxuICBnZXRXaWRnZXQ6IChndWlsZElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8R3VpbGRXaWRnZXQ+XG4gIGdldFdpZGdldFNldHRpbmdzOiAoZ3VpbGRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPEd1aWxkV2lkZ2V0U2V0dGluZ3M+XG4gIHB1Ymxpc2hNZXNzYWdlOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIG1lc3NhZ2VJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPE1lc3NhZ2UsIFRQcm9wcywgVEJlaGF2aW9yPj5cbiAgc2VuZE1lc3NhZ2U6IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgb3B0aW9uczogQ3JlYXRlTWVzc2FnZU9wdGlvbnMpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8TWVzc2FnZSwgVFByb3BzLCBUQmVoYXZpb3I+PlxuICBzZW5kRm9sbG93dXBNZXNzYWdlOiAodG9rZW46IHN0cmluZywgb3B0aW9uczogSW50ZXJhY3Rpb25DYWxsYmFja0RhdGEpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8TWVzc2FnZSwgVFByb3BzLCBUQmVoYXZpb3I+PlxuICBzdGFydFRocmVhZFdpdGhNZXNzYWdlOiAoXG4gICAgY2hhbm5lbElkOiBCaWdTdHJpbmcsXG4gICAgbWVzc2FnZUlkOiBCaWdTdHJpbmcsXG4gICAgb3B0aW9uczogU3RhcnRUaHJlYWRXaXRoTWVzc2FnZSxcbiAgICByZWFzb24/OiBzdHJpbmcsXG4gICkgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxDaGFubmVsLCBUUHJvcHMsIFRCZWhhdmlvcj4+XG4gIHN0YXJ0VGhyZWFkV2l0aG91dE1lc3NhZ2U6IChcbiAgICBjaGFubmVsSWQ6IEJpZ1N0cmluZyxcbiAgICBvcHRpb25zOiBTdGFydFRocmVhZFdpdGhvdXRNZXNzYWdlLFxuICAgIHJlYXNvbj86IHN0cmluZyxcbiAgKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPENoYW5uZWwsIFRQcm9wcywgVEJlaGF2aW9yPj5cbiAgc3luY0d1aWxkVGVtcGxhdGU6IChndWlsZElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8VGVtcGxhdGU+XG4gIHVwc2VydEdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZHM6IChcbiAgICBjb21tYW5kczogQ3JlYXRlQXBwbGljYXRpb25Db21tYW5kW10sXG4gICAgb3B0aW9ucz86IFVwc2VydEdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZE9wdGlvbnMsXG4gICkgPT4gUHJvbWlzZTxBcHBsaWNhdGlvbkNvbW1hbmRbXT5cbiAgdXBzZXJ0R3VpbGRBcHBsaWNhdGlvbkNvbW1hbmRzOiAoXG4gICAgZ3VpbGRJZDogQmlnU3RyaW5nLFxuICAgIGNvbW1hbmRzOiBDcmVhdGVBcHBsaWNhdGlvbkNvbW1hbmRbXSxcbiAgICBvcHRpb25zPzogVXBzZXJ0R3VpbGRBcHBsaWNhdGlvbkNvbW1hbmRPcHRpb25zLFxuICApID0+IFByb21pc2U8QXBwbGljYXRpb25Db21tYW5kW10+XG4gIGVkaXRCb3RNZW1iZXI6IChndWlsZElkOiBCaWdTdHJpbmcsIG9wdGlvbnM6IEVkaXRCb3RNZW1iZXJPcHRpb25zLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8TWVtYmVyLCBUUHJvcHMsIFRCZWhhdmlvcj4+XG4gIGVkaXRNZW1iZXI6IChcbiAgICBndWlsZElkOiBCaWdTdHJpbmcsXG4gICAgdXNlcklkOiBCaWdTdHJpbmcsXG4gICAgb3B0aW9uczogTW9kaWZ5R3VpbGRNZW1iZXIsXG4gICAgcmVhc29uPzogc3RyaW5nLFxuICApID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8TWVtYmVyLCBUUHJvcHMsIFRCZWhhdmlvcj4+XG4gIGdldE1lbWJlcjogKGd1aWxkSWQ6IEJpZ1N0cmluZywgdXNlcklkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8TWVtYmVyLCBUUHJvcHMsIFRCZWhhdmlvcj4+XG4gIGdldEN1cnJlbnRNZW1iZXI6IChndWlsZElkOiBCaWdTdHJpbmcsIGJlYXJlclRva2VuOiBzdHJpbmcpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8TWVtYmVyLCBUUHJvcHMsIFRCZWhhdmlvcj4+XG4gIGdldE1lbWJlcnM6IChndWlsZElkOiBCaWdTdHJpbmcsIG9wdGlvbnM6IExpc3RHdWlsZE1lbWJlcnMpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8TWVtYmVyLCBUUHJvcHMsIFRCZWhhdmlvcj5bXT5cbiAgcHJ1bmVNZW1iZXJzOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBvcHRpb25zOiBCZWdpbkd1aWxkUHJ1bmUsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTx7IHBydW5lZDogbnVtYmVyIHwgbnVsbCB9PlxuICBzZWFyY2hNZW1iZXJzOiAoXG4gICAgZ3VpbGRJZDogQmlnU3RyaW5nLFxuICAgIHF1ZXJ5OiBzdHJpbmcsXG4gICAgb3B0aW9ucz86IE9taXQ8U2VhcmNoTWVtYmVycywgJ3F1ZXJ5Jz4sXG4gICkgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxNZW1iZXIsIFRQcm9wcywgVEJlaGF2aW9yPltdPlxuICBidWxrQmFuTWVtYmVyczogKGd1aWxkSWQ6IEJpZ1N0cmluZywgb3B0aW9uczogQ3JlYXRlR3VpbGRCdWxrQmFuLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8eyBiYW5uZWRVc2VyczogYmlnaW50W107IGZhaWxlZFVzZXJzOiBiaWdpbnRbXSB9PlxuICBnZXRBcHBsaWNhdGlvbkFjdGl2aXR5SW5zdGFuY2U6IChhcHBsaWNhdGlvbklkOiBCaWdTdHJpbmcsIGluc3RhbmNlSWQ6IHN0cmluZykgPT4gUHJvbWlzZTxDYW1lbGl6ZTxEaXNjb3JkQWN0aXZpdHlJbnN0YW5jZT4+XG4gIGxpc3RBcHBsaWNhdGlvblJvbGVDb25uZWN0aW9uc01ldGFkYXRhUmVjb3JkczogKGFwcGxpY2F0aW9uSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxDYW1lbGl6ZTxEaXNjb3JkQXBwbGljYXRpb25Sb2xlQ29ubmVjdGlvbk1ldGFkYXRhPltdPlxuICB1cGRhdGVBcHBsaWNhdGlvblJvbGVDb25uZWN0aW9uc01ldGFkYXRhUmVjb3JkczogKFxuICAgIGFwcGxpY2F0aW9uSWQ6IEJpZ1N0cmluZyxcbiAgICBvcHRpb25zOiBDYW1lbGl6ZTxEaXNjb3JkQXBwbGljYXRpb25Sb2xlQ29ubmVjdGlvbk1ldGFkYXRhPltdLFxuICApID0+IFByb21pc2U8Q2FtZWxpemU8RGlzY29yZEFwcGxpY2F0aW9uUm9sZUNvbm5lY3Rpb25NZXRhZGF0YT5bXT5cbiAgY3JlYXRlTG9iYnk6IChvcHRpb25zOiBDcmVhdGVMb2JieSkgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxMb2JieSwgVFByb3BzLCBUQmVoYXZpb3I+PlxuICBnZXRMb2JieTogKGxvYmJ5SWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxMb2JieSwgVFByb3BzLCBUQmVoYXZpb3I+PlxuICBtb2RpZnlMb2JieTogKGxvYmJ5SWQ6IEJpZ1N0cmluZywgb3B0aW9uczogTW9kaWZ5TG9iYnkpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8TG9iYnksIFRQcm9wcywgVEJlaGF2aW9yPj5cbiAgYWRkTWVtYmVyVG9Mb2JieTogKGxvYmJ5SWQ6IEJpZ1N0cmluZywgdXNlcklkOiBCaWdTdHJpbmcsIG9wdGlvbnM6IEFkZExvYmJ5TWVtYmVyKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPExvYmJ5TWVtYmVyLCBUUHJvcHMsIFRCZWhhdmlvcj4+XG4gIGxpbmtDaGFubmVsVG9Mb2JieTogKGxvYmJ5SWQ6IEJpZ1N0cmluZywgYmVhcmVyVG9rZW46IHN0cmluZywgb3B0aW9uczogTGlua0NoYW5uZWxUb0xvYmJ5KSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPExvYmJ5LCBUUHJvcHMsIFRCZWhhdmlvcj4+XG4gIHVubGlua0NoYW5uZWxUb0xvYmJ5OiAobG9iYnlJZDogQmlnU3RyaW5nLCBiZWFyZXJUb2tlbjogc3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPExvYmJ5LCBUUHJvcHMsIFRCZWhhdmlvcj4+XG4gIC8vIGZ1bmN0aW9ucyByZXR1cm4gVm9pZCBzbyBkb250IG5lZWQgYW55IHNwZWNpYWwgaGFuZGxpbmdcbiAgYWRkUmVhY3Rpb246IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgbWVzc2FnZUlkOiBCaWdTdHJpbmcsIHJlYWN0aW9uOiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgYWRkUmVhY3Rpb25zOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIG1lc3NhZ2VJZDogQmlnU3RyaW5nLCByZWFjdGlvbnM6IHN0cmluZ1tdLCBvcmRlcmVkPzogYm9vbGVhbikgPT4gUHJvbWlzZTx2b2lkPlxuICBhZGRSb2xlOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCB1c2VySWQ6IEJpZ1N0cmluZywgcm9sZUlkOiBCaWdTdHJpbmcsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICBhZGRUaHJlYWRNZW1iZXI6IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgdXNlcklkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgYWRkRG1SZWNpcGllbnQ6IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgdXNlcklkOiBCaWdTdHJpbmcsIG9wdGlvbnM6IEFkZERtUmVjaXBpZW50T3B0aW9ucykgPT4gUHJvbWlzZTx2b2lkPlxuICBhZGRHdWlsZE1lbWJlcjogKGd1aWxkSWQ6IEJpZ1N0cmluZywgdXNlcklkOiBCaWdTdHJpbmcsIG9wdGlvbnM6IEFkZEd1aWxkTWVtYmVyT3B0aW9ucykgPT4gUHJvbWlzZTx2b2lkPlxuICBkZWxldGVBdXRvbW9kUnVsZTogKGd1aWxkSWQ6IEJpZ1N0cmluZywgcnVsZUlkOiBCaWdTdHJpbmcsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICBkZWxldGVDaGFubmVsOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICBkZWxldGVDaGFubmVsUGVybWlzc2lvbk92ZXJyaWRlOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIG92ZXJ3cml0ZUlkOiBCaWdTdHJpbmcsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICBkZWxldGVFbW9qaTogKGd1aWxkSWQ6IEJpZ1N0cmluZywgaWQ6IEJpZ1N0cmluZywgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGRlbGV0ZUFwcGxpY2F0aW9uRW1vamk6IChpZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGRlbGV0ZUZvbGxvd3VwTWVzc2FnZTogKHRva2VuOiBzdHJpbmcsIG1lc3NhZ2VJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGRlbGV0ZUdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZDogKGNvbW1hbmRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGRlbGV0ZUd1aWxkQXBwbGljYXRpb25Db21tYW5kOiAoY29tbWFuZElkOiBCaWdTdHJpbmcsIGd1aWxkSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICBkZWxldGVHdWlsZFN0aWNrZXI6IChndWlsZElkOiBCaWdTdHJpbmcsIHN0aWNrZXJJZDogQmlnU3RyaW5nLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgZGVsZXRlR3VpbGRUZW1wbGF0ZTogKGd1aWxkSWQ6IEJpZ1N0cmluZywgdGVtcGxhdGVDb2RlOiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgZGVsZXRlSW50ZWdyYXRpb246IChndWlsZElkOiBCaWdTdHJpbmcsIGludGVncmF0aW9uSWQ6IEJpZ1N0cmluZywgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGRlbGV0ZUludml0ZTogKGludml0ZUNvZGU6IHN0cmluZywgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGRlbGV0ZU1lc3NhZ2U6IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgbWVzc2FnZUlkOiBCaWdTdHJpbmcsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICBkZWxldGVNZXNzYWdlczogKGNoYW5uZWxJZDogQmlnU3RyaW5nLCBtZXNzYWdlSWRzOiBCaWdTdHJpbmdbXSwgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGRlbGV0ZU9yaWdpbmFsSW50ZXJhY3Rpb25SZXNwb25zZTogKHRva2VuOiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgZGVsZXRlT3duUmVhY3Rpb246IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgbWVzc2FnZUlkOiBCaWdTdHJpbmcsIHJlYWN0aW9uOiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgZGVsZXRlUmVhY3Rpb25zQWxsOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIG1lc3NhZ2VJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGRlbGV0ZVJlYWN0aW9uc0Vtb2ppOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIG1lc3NhZ2VJZDogQmlnU3RyaW5nLCByZWFjdGlvbjogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGRlbGV0ZVJvbGU6IChndWlsZElkOiBCaWdTdHJpbmcsIHJvbGVJZDogQmlnU3RyaW5nLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgZGVsZXRlU2NoZWR1bGVkRXZlbnQ6IChndWlsZElkOiBCaWdTdHJpbmcsIGV2ZW50SWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICBkZWxldGVTdGFnZUluc3RhbmNlOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICBkZWxldGVVc2VyUmVhY3Rpb246IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgbWVzc2FnZUlkOiBCaWdTdHJpbmcsIHVzZXJJZDogQmlnU3RyaW5nLCByZWFjdGlvbjogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGRlbGV0ZVdlYmhvb2s6ICh3ZWJob29rSWQ6IEJpZ1N0cmluZywgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGRlbGV0ZVdlYmhvb2tNZXNzYWdlOiAod2ViaG9va0lkOiBCaWdTdHJpbmcsIHRva2VuOiBzdHJpbmcsIG1lc3NhZ2VJZDogQmlnU3RyaW5nLCBvcHRpb25zPzogRGVsZXRlV2ViaG9va01lc3NhZ2VPcHRpb25zKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGRlbGV0ZVdlYmhvb2tXaXRoVG9rZW46ICh3ZWJob29rSWQ6IEJpZ1N0cmluZywgdG9rZW46IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICBlZGl0Q2hhbm5lbFBlcm1pc3Npb25PdmVycmlkZXM6IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgb3B0aW9uczogRWRpdENoYW5uZWxQZXJtaXNzaW9uT3ZlcnJpZGVzT3B0aW9ucywgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGVkaXRDaGFubmVsUG9zaXRpb25zOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBjaGFubmVsUG9zaXRpb25zOiBNb2RpZnlHdWlsZENoYW5uZWxQb3NpdGlvbnNbXSkgPT4gUHJvbWlzZTx2b2lkPlxuICBlZGl0T3duVm9pY2VTdGF0ZTogKGd1aWxkSWQ6IEJpZ1N0cmluZywgb3B0aW9uczogRWRpdE93blZvaWNlU3RhdGUpID0+IFByb21pc2U8dm9pZD5cbiAgZWRpdFVzZXJWb2ljZVN0YXRlOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBvcHRpb25zOiBFZGl0VXNlclZvaWNlU3RhdGUpID0+IFByb21pc2U8dm9pZD5cbiAgam9pblRocmVhZDogKGNoYW5uZWxJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGxlYXZlR3VpbGQ6IChndWlsZElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgbGVhdmVUaHJlYWQ6IChjaGFubmVsSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICByZW1vdmVSb2xlOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCB1c2VySWQ6IEJpZ1N0cmluZywgcm9sZUlkOiBCaWdTdHJpbmcsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICByZW1vdmVUaHJlYWRNZW1iZXI6IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgdXNlcklkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgcmVtb3ZlRG1SZWNpcGllbnQ6IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgdXNlcklkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgc2VuZEludGVyYWN0aW9uUmVzcG9uc2U6IChcbiAgICBpbnRlcmFjdGlvbklkOiBCaWdTdHJpbmcsXG4gICAgdG9rZW46IHN0cmluZyxcbiAgICBvcHRpb25zOiBJbnRlcmFjdGlvblJlc3BvbnNlLFxuICAgIHBhcmFtcz86IEludGVyYWN0aW9uQ2FsbGJhY2tPcHRpb25zLFxuICApID0+IFByb21pc2U8dm9pZCB8IFNldHVwRGVzaXJlZFByb3BzPEludGVyYWN0aW9uQ2FsbGJhY2tSZXNwb25zZSwgVFByb3BzLCBUQmVoYXZpb3I+PlxuICB0cmlnZ2VyVHlwaW5nSW5kaWNhdG9yOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgYmFuTWVtYmVyOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCB1c2VySWQ6IEJpZ1N0cmluZywgb3B0aW9ucz86IENyZWF0ZUd1aWxkQmFuLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAga2lja01lbWJlcjogKGd1aWxkSWQ6IEJpZ1N0cmluZywgdXNlcklkOiBCaWdTdHJpbmcsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICBwaW5NZXNzYWdlOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIG1lc3NhZ2VJZDogQmlnU3RyaW5nLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgdW5iYW5NZW1iZXI6IChndWlsZElkOiBCaWdTdHJpbmcsIHVzZXJJZDogQmlnU3RyaW5nLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgdW5waW5NZXNzYWdlOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIG1lc3NhZ2VJZDogQmlnU3RyaW5nLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgZ2V0R3VpbGRPbmJvYXJkaW5nOiAoZ3VpbGRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPEd1aWxkT25ib2FyZGluZywgVFByb3BzLCBUQmVoYXZpb3I+PlxuICBlZGl0R3VpbGRPbmJvYXJkaW5nOiAoXG4gICAgZ3VpbGRJZDogQmlnU3RyaW5nLFxuICAgIG9wdGlvbnM6IEVkaXRHdWlsZE9uYm9hcmRpbmcsXG4gICAgcmVhc29uPzogc3RyaW5nLFxuICApID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8R3VpbGRPbmJvYXJkaW5nLCBUUHJvcHMsIFRCZWhhdmlvcj4+XG4gIGxpc3RFbnRpdGxlbWVudHM6IChhcHBsaWNhdGlvbklkOiBCaWdTdHJpbmcsIG9wdGlvbnM/OiBHZXRFbnRpdGxlbWVudHMpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8RW50aXRsZW1lbnQsIFRQcm9wcywgVEJlaGF2aW9yPltdPlxuICBnZXRFbnRpdGxlbWVudDogKGFwcGxpY2F0aW9uSWQ6IEJpZ1N0cmluZywgZW50aXRsZW1lbnRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPEVudGl0bGVtZW50LCBUUHJvcHMsIFRCZWhhdmlvcj4+XG4gIGNyZWF0ZVRlc3RFbnRpdGxlbWVudDogKFxuICAgIGFwcGxpY2F0aW9uSWQ6IEJpZ1N0cmluZyxcbiAgICBib2R5OiBDcmVhdGVUZXN0RW50aXRsZW1lbnQsXG4gICkgPT4gUHJvbWlzZTxQYXJ0aWFsPFNldHVwRGVzaXJlZFByb3BzPEVudGl0bGVtZW50LCBUUHJvcHMsIFRCZWhhdmlvcj4+PlxuICBkZWxldGVUZXN0RW50aXRsZW1lbnQ6IChhcHBsaWNhdGlvbklkOiBCaWdTdHJpbmcsIGVudGl0bGVtZW50SWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICBsaXN0U2t1czogKGFwcGxpY2F0aW9uSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxTa3UsIFRQcm9wcywgVEJlaGF2aW9yPltdPlxuICBsaXN0U3Vic2NyaXB0aW9uczogKHNrdUlkOiBCaWdTdHJpbmcsIG9wdGlvbnM/OiBMaXN0U2t1U3Vic2NyaXB0aW9uc09wdGlvbnMpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8U3Vic2NyaXB0aW9uLCBUUHJvcHMsIFRCZWhhdmlvcj5bXT5cbiAgZ2V0U3Vic2NyaXB0aW9uOiAoc2t1SWQ6IEJpZ1N0cmluZywgc3Vic2NyaXB0aW9uSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxTdWJzY3JpcHRpb24sIFRQcm9wcywgVEJlaGF2aW9yPj5cbiAgc2VuZFNvdW5kYm9hcmRTb3VuZDogKGNoYW5uZWxJZDogQmlnU3RyaW5nLCBvcHRpb25zOiBTZW5kU291bmRib2FyZFNvdW5kKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGxpc3REZWZhdWx0U291bmRib2FyZFNvdW5kczogKCkgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxTb3VuZGJvYXJkU291bmQsIFRQcm9wcywgVEJlaGF2aW9yPltdPlxuICBsaXN0R3VpbGRTb3VuZGJvYXJkU291bmRzOiAoZ3VpbGRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPHsgaXRlbXM6IFNldHVwRGVzaXJlZFByb3BzPFNvdW5kYm9hcmRTb3VuZCwgVFByb3BzLCBUQmVoYXZpb3I+W10gfT5cbiAgZ2V0R3VpbGRTb3VuZGJvYXJkU291bmQ6IChndWlsZElkOiBCaWdTdHJpbmcsIHNvdW5kSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxTb3VuZGJvYXJkU291bmQsIFRQcm9wcywgVEJlaGF2aW9yPj5cbiAgY3JlYXRlR3VpbGRTb3VuZGJvYXJkU291bmQ6IChcbiAgICBndWlsZElkOiBCaWdTdHJpbmcsXG4gICAgb3B0aW9uczogQ3JlYXRlR3VpbGRTb3VuZGJvYXJkU291bmQsXG4gICAgcmVhc29uPzogc3RyaW5nLFxuICApID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8U291bmRib2FyZFNvdW5kLCBUUHJvcHMsIFRCZWhhdmlvcj4+XG4gIG1vZGlmeUd1aWxkU291bmRib2FyZFNvdW5kOiAoXG4gICAgZ3VpbGRJZDogQmlnU3RyaW5nLFxuICAgIHNvdW5kSWQ6IEJpZ1N0cmluZyxcbiAgICBvcHRpb25zOiBNb2RpZnlHdWlsZFNvdW5kYm9hcmRTb3VuZCxcbiAgICByZWFzb24/OiBzdHJpbmcsXG4gICkgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxTb3VuZGJvYXJkU291bmQsIFRQcm9wcywgVEJlaGF2aW9yPj5cbiAgZGVsZXRlR3VpbGRTb3VuZGJvYXJkU291bmQ6IChndWlsZElkOiBCaWdTdHJpbmcsIHNvdW5kSWQ6IEJpZ1N0cmluZywgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGRlbGV0ZUxvYmJ5OiAobG9iYnlJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIHJlbW92ZU1lbWJlckZyb21Mb2JieTogKGxvYmJ5SWQ6IEJpZ1N0cmluZywgdXNlcklkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgbGVhdmVMb2JieTogKGxvYmJ5SWQ6IEJpZ1N0cmluZywgYmVhcmVyVG9rZW46IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxufVxuIl0sIm5hbWVzIjpbInNuYWtlbGl6ZSIsImNyZWF0ZUJvdEhlbHBlcnMiLCJib3QiLCJjcmVhdGVBdXRvbW9kUnVsZSIsImd1aWxkSWQiLCJvcHRpb25zIiwicmVhc29uIiwidHJhbnNmb3JtZXJzIiwiYXV0b21vZFJ1bGUiLCJyZXN0IiwiY3JlYXRlQ2hhbm5lbCIsImNoYW5uZWwiLCJjcmVhdGVFbW9qaSIsImVtb2ppIiwiY3JlYXRlQXBwbGljYXRpb25FbW9qaSIsImNyZWF0ZUZvcnVtVGhyZWFkIiwiY2hhbm5lbElkIiwiY3JlYXRlR2xvYmFsQXBwbGljYXRpb25Db21tYW5kIiwiY29tbWFuZCIsImFwcGxpY2F0aW9uQ29tbWFuZCIsImNyZWF0ZUd1aWxkQXBwbGljYXRpb25Db21tYW5kIiwiY3JlYXRlR3VpbGRTdGlja2VyIiwic3RpY2tlciIsImNyZWF0ZUd1aWxkVGVtcGxhdGUiLCJ0ZW1wbGF0ZSIsImNyZWF0ZUludml0ZSIsImNyZWF0ZVJvbGUiLCJyb2xlIiwiY3JlYXRlU2NoZWR1bGVkRXZlbnQiLCJzY2hlZHVsZWRFdmVudCIsImNyZWF0ZVN0YWdlSW5zdGFuY2UiLCJzdGFnZUluc3RhbmNlIiwiY3JlYXRlV2ViaG9vayIsIndlYmhvb2siLCJlZGl0QXBwbGljYXRpb25Db21tYW5kUGVybWlzc2lvbnMiLCJjb21tYW5kSWQiLCJiZWFyZXJUb2tlbiIsImFwcGxpY2F0aW9uQ29tbWFuZFBlcm1pc3Npb24iLCJlZGl0QXV0b21vZFJ1bGUiLCJydWxlSWQiLCJlZGl0Qm90UHJvZmlsZSIsInVzZXIiLCJlZGl0Q2hhbm5lbCIsImVkaXRFbW9qaSIsImlkIiwiZWRpdEFwcGxpY2F0aW9uRW1vamkiLCJlZGl0Rm9sbG93dXBNZXNzYWdlIiwidG9rZW4iLCJtZXNzYWdlSWQiLCJtZXNzYWdlIiwic2hhcmRJZCIsImVkaXRHbG9iYWxBcHBsaWNhdGlvbkNvbW1hbmQiLCJlZGl0R3VpbGQiLCJndWlsZCIsImVkaXRHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZCIsImVkaXRHdWlsZFN0aWNrZXIiLCJzdGlja2VySWQiLCJlZGl0R3VpbGRUZW1wbGF0ZSIsInRlbXBsYXRlQ29kZSIsImVkaXRNZXNzYWdlIiwiZWRpdE9yaWdpbmFsSW50ZXJhY3Rpb25SZXNwb25zZSIsImVkaXRSb2xlIiwicm9sZUlkIiwiZWRpdFJvbGVQb3NpdGlvbnMiLCJtYXAiLCJlZGl0U2NoZWR1bGVkRXZlbnQiLCJldmVudElkIiwiZWRpdFN0YWdlSW5zdGFuY2UiLCJ0b3BpYyIsImVkaXRXZWJob29rIiwid2ViaG9va0lkIiwiZWRpdFdlYmhvb2tNZXNzYWdlIiwiZWRpdFdlYmhvb2tXaXRoVG9rZW4iLCJlZGl0V2VsY29tZVNjcmVlbiIsIndlbGNvbWVTY3JlZW4iLCJlZGl0V2lkZ2V0U2V0dGluZ3MiLCJ3aWRnZXRTZXR0aW5ncyIsImV4ZWN1dGVXZWJob29rIiwicmVzdWx0IiwiZm9sbG93QW5ub3VuY2VtZW50Iiwic291cmNlQ2hhbm5lbElkIiwidGFyZ2V0Q2hhbm5lbElkIiwiZ2V0QWN0aXZlVGhyZWFkcyIsInRocmVhZHMiLCJ0aHJlYWQiLCJtZW1iZXJzIiwibWVtYmVyIiwidGhyZWFkTWVtYmVyIiwiZ2V0QXBwbGljYXRpb25JbmZvIiwiYXBwbGljYXRpb24iLCJlZGl0QXBwbGljYXRpb25JbmZvIiwiYm9keSIsImdldEN1cnJlbnRBdXRoZW50aWNhdGlvbkluZm8iLCJleGNoYW5nZVRva2VuIiwiY2xpZW50SWQiLCJjbGllbnRTZWNyZXQiLCJyZXZva2VUb2tlbiIsImdldEFwcGxpY2F0aW9uQ29tbWFuZFBlcm1pc3Npb24iLCJyZXMiLCJzbmFrZWRSZXMiLCJnZXRBcHBsaWNhdGlvbkNvbW1hbmRQZXJtaXNzaW9ucyIsImdldEF1ZGl0TG9nIiwiZ2V0QXV0b21vZFJ1bGUiLCJnZXRBdXRvbW9kUnVsZXMiLCJnZXRBdmFpbGFibGVWb2ljZVJlZ2lvbnMiLCJ2b2ljZVJlZ2lvbiIsImdldEJhbiIsInVzZXJJZCIsImdldEJhbnMiLCJnZXRDaGFubmVsIiwiZ2V0Q2hhbm5lbEludml0ZXMiLCJnZXRDaGFubmVscyIsImdldENoYW5uZWxXZWJob29rcyIsImdldERtQ2hhbm5lbCIsImdldEdyb3VwRG1DaGFubmVsIiwiZ2V0RW1vamkiLCJlbW9qaUlkIiwiZ2V0QXBwbGljYXRpb25FbW9qaSIsImdldEVtb2ppcyIsImdldEFwcGxpY2F0aW9uRW1vamlzIiwiaXRlbXMiLCJpdGVtIiwiZ2V0Rm9sbG93dXBNZXNzYWdlIiwiZ2V0R2F0ZXdheUJvdCIsImdhdGV3YXlCb3QiLCJnZXRHbG9iYWxBcHBsaWNhdGlvbkNvbW1hbmQiLCJnZXRHbG9iYWxBcHBsaWNhdGlvbkNvbW1hbmRzIiwiZ2V0R3VpbGQiLCJnZXRHdWlsZHMiLCJnZXRHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZCIsImdldEd1aWxkQXBwbGljYXRpb25Db21tYW5kcyIsImdldEd1aWxkUHJldmlldyIsImdldEd1aWxkU3RpY2tlciIsImdldEd1aWxkU3RpY2tlcnMiLCJnZXRHdWlsZFRlbXBsYXRlIiwiZ2V0R3VpbGRUZW1wbGF0ZXMiLCJnZXRHdWlsZFdlYmhvb2tzIiwiZ2V0SW50ZWdyYXRpb25zIiwiaW50ZWdyYXRpb24iLCJ0b1N0cmluZyIsImdldEludml0ZSIsImludml0ZUNvZGUiLCJpbnZpdGUiLCJnZXRJbnZpdGVzIiwiZ2V0TWVzc2FnZSIsImdldE1lc3NhZ2VzIiwiZ2V0U3RpY2tlclBhY2siLCJzdGlja2VyUGFja0lkIiwic3RpY2tlclBhY2siLCJnZXRTdGlja2VyUGFja3MiLCJnZXRPcmlnaW5hbEludGVyYWN0aW9uUmVzcG9uc2UiLCJnZXRDaGFubmVsUGlucyIsImhhc01vcmUiLCJoYXNfbW9yZSIsIm1lc3NhZ2VQaW4iLCJnZXRQaW5uZWRNZXNzYWdlcyIsImdldFByaXZhdGVBcmNoaXZlZFRocmVhZHMiLCJnZXRQcml2YXRlSm9pbmVkQXJjaGl2ZWRUaHJlYWRzIiwiZ2V0UHJ1bmVDb3VudCIsImdldFB1YmxpY0FyY2hpdmVkVGhyZWFkcyIsImdldFJvbGVzIiwiZ2V0Um9sZSIsImdldFNjaGVkdWxlZEV2ZW50IiwiZ2V0U2NoZWR1bGVkRXZlbnRzIiwiZ2V0U2NoZWR1bGVkRXZlbnRVc2VycyIsInUiLCJzbm93Zmxha2UiLCJnZXRTZXNzaW9uSW5mbyIsImdldFN0YWdlSW5zdGFuY2UiLCJnZXRPd25Wb2ljZVN0YXRlIiwidm9pY2VTdGF0ZSIsImdldFVzZXJWb2ljZVN0YXRlIiwiZ2V0U3RpY2tlciIsImdldFRocmVhZE1lbWJlciIsImV4dHJhIiwiZ2V0VGhyZWFkTWVtYmVycyIsImdldFJlYWN0aW9ucyIsInJlYWN0aW9uIiwiZ2V0VXNlciIsImdldEN1cnJlbnRVc2VyIiwiZ2V0VXNlckNvbm5lY3Rpb25zIiwiZ2V0VXNlckFwcGxpY2F0aW9uUm9sZUNvbm5lY3Rpb24iLCJhcHBsaWNhdGlvbklkIiwiZ2V0VmFuaXR5VXJsIiwiZ2V0Vm9pY2VSZWdpb25zIiwiZ2V0V2ViaG9vayIsImdldFdlYmhvb2tNZXNzYWdlIiwiZ2V0V2ViaG9va1dpdGhUb2tlbiIsImdldFdlbGNvbWVTY3JlZW4iLCJnZXRXaWRnZXQiLCJ3aWRnZXQiLCJnZXRXaWRnZXRTZXR0aW5ncyIsInB1Ymxpc2hNZXNzYWdlIiwic2VuZE1lc3NhZ2UiLCJzZW5kRm9sbG93dXBNZXNzYWdlIiwic3RhcnRUaHJlYWRXaXRoTWVzc2FnZSIsInN0YXJ0VGhyZWFkV2l0aG91dE1lc3NhZ2UiLCJzeW5jR3VpbGRUZW1wbGF0ZSIsInVwc2VydEdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZHMiLCJjb21tYW5kcyIsInVwc2VydEd1aWxkQXBwbGljYXRpb25Db21tYW5kcyIsImVkaXRCb3RNZW1iZXIiLCJlZGl0TWVtYmVyIiwiZ2V0TWVtYmVyIiwiZ2V0Q3VycmVudE1lbWJlciIsImdldE1lbWJlcnMiLCJwcnVuZU1lbWJlcnMiLCJzZWFyY2hNZW1iZXJzIiwicXVlcnkiLCJidWxrQmFuTWVtYmVycyIsImJhbm5lZFVzZXJzIiwieCIsImZhaWxlZFVzZXJzIiwiZ2V0QXBwbGljYXRpb25BY3Rpdml0eUluc3RhbmNlIiwiaW5zdGFuY2VJZCIsImxpc3RBcHBsaWNhdGlvblJvbGVDb25uZWN0aW9uc01ldGFkYXRhUmVjb3JkcyIsInVwZGF0ZUFwcGxpY2F0aW9uUm9sZUNvbm5lY3Rpb25zTWV0YWRhdGFSZWNvcmRzIiwiY3JlYXRlTG9iYnkiLCJsb2JieSIsImdldExvYmJ5IiwibG9iYnlJZCIsIm1vZGlmeUxvYmJ5IiwiYWRkTWVtYmVyVG9Mb2JieSIsImxvYmJ5TWVtYmVyIiwibGlua0NoYW5uZWxUb0xvYmJ5IiwidW5saW5rQ2hhbm5lbFRvTG9iYnkiLCJhZGRSZWFjdGlvbiIsImFkZFJlYWN0aW9ucyIsInJlYWN0aW9ucyIsIm9yZGVyZWQiLCJhZGRSb2xlIiwiYWRkVGhyZWFkTWVtYmVyIiwiYWRkRG1SZWNpcGllbnQiLCJhZGRHdWlsZE1lbWJlciIsImRlbGV0ZUF1dG9tb2RSdWxlIiwiZGVsZXRlQ2hhbm5lbCIsImRlbGV0ZUNoYW5uZWxQZXJtaXNzaW9uT3ZlcnJpZGUiLCJvdmVyd3JpdGVJZCIsImRlbGV0ZUVtb2ppIiwiZGVsZXRlQXBwbGljYXRpb25FbW9qaSIsImRlbGV0ZUZvbGxvd3VwTWVzc2FnZSIsImRlbGV0ZUdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZCIsImRlbGV0ZUd1aWxkQXBwbGljYXRpb25Db21tYW5kIiwiZGVsZXRlR3VpbGRTdGlja2VyIiwiZGVsZXRlR3VpbGRUZW1wbGF0ZSIsImRlbGV0ZUludGVncmF0aW9uIiwiaW50ZWdyYXRpb25JZCIsImRlbGV0ZUludml0ZSIsImRlbGV0ZU1lc3NhZ2UiLCJkZWxldGVNZXNzYWdlcyIsIm1lc3NhZ2VJZHMiLCJkZWxldGVPcmlnaW5hbEludGVyYWN0aW9uUmVzcG9uc2UiLCJkZWxldGVPd25SZWFjdGlvbiIsImRlbGV0ZVJlYWN0aW9uc0FsbCIsImRlbGV0ZVJlYWN0aW9uc0Vtb2ppIiwiZGVsZXRlUm9sZSIsImRlbGV0ZVNjaGVkdWxlZEV2ZW50IiwiZGVsZXRlU3RhZ2VJbnN0YW5jZSIsImRlbGV0ZVVzZXJSZWFjdGlvbiIsImRlbGV0ZVdlYmhvb2siLCJkZWxldGVXZWJob29rTWVzc2FnZSIsImRlbGV0ZVdlYmhvb2tXaXRoVG9rZW4iLCJlZGl0Q2hhbm5lbFBlcm1pc3Npb25PdmVycmlkZXMiLCJlZGl0Q2hhbm5lbFBvc2l0aW9ucyIsImNoYW5uZWxQb3NpdGlvbnMiLCJlZGl0T3duVm9pY2VTdGF0ZSIsImVkaXRVc2VyVm9pY2VTdGF0ZSIsImVkaXRVc2VyQXBwbGljYXRpb25Sb2xlQ29ubmVjdGlvbiIsImpvaW5UaHJlYWQiLCJsZWF2ZUd1aWxkIiwibGVhdmVUaHJlYWQiLCJyZW1vdmVSb2xlIiwicmVtb3ZlVGhyZWFkTWVtYmVyIiwicmVtb3ZlRG1SZWNpcGllbnQiLCJzZW5kSW50ZXJhY3Rpb25SZXNwb25zZSIsImludGVyYWN0aW9uSWQiLCJwYXJhbXMiLCJyZXNwb25zZSIsImludGVyYWN0aW9uQ2FsbGJhY2tSZXNwb25zZSIsInRyaWdnZXJUeXBpbmdJbmRpY2F0b3IiLCJiYW5NZW1iZXIiLCJraWNrTWVtYmVyIiwicGluTWVzc2FnZSIsInVuYmFuTWVtYmVyIiwidW5waW5NZXNzYWdlIiwiZ2V0R3VpbGRPbmJvYXJkaW5nIiwiZ3VpbGRPbmJvYXJkaW5nIiwiZWRpdEd1aWxkT25ib2FyZGluZyIsImxpc3RFbnRpdGxlbWVudHMiLCJlbnRpdGxlbWVudCIsImdldEVudGl0bGVtZW50IiwiZW50aXRsZW1lbnRJZCIsImNyZWF0ZVRlc3RFbnRpdGxlbWVudCIsImRlbGV0ZVRlc3RFbnRpdGxlbWVudCIsImxpc3RTa3VzIiwic2t1IiwiZ2V0U3Vic2NyaXB0aW9uIiwic2t1SWQiLCJzdWJzY3JpcHRpb25JZCIsInN1YnNjcmlwdGlvbiIsImxpc3RTdWJzY3JpcHRpb25zIiwic2VuZFNvdW5kYm9hcmRTb3VuZCIsImxpc3REZWZhdWx0U291bmRib2FyZFNvdW5kcyIsInNvdW5kIiwic291bmRib2FyZFNvdW5kIiwibGlzdEd1aWxkU291bmRib2FyZFNvdW5kcyIsImdldEd1aWxkU291bmRib2FyZFNvdW5kIiwic291bmRJZCIsImNyZWF0ZUd1aWxkU291bmRib2FyZFNvdW5kIiwibW9kaWZ5R3VpbGRTb3VuZGJvYXJkU291bmQiLCJkZWxldGVHdWlsZFNvdW5kYm9hcmRTb3VuZCIsImRlbGV0ZUxvYmJ5IiwicmVtb3ZlTWVtYmVyRnJvbUxvYmJ5IiwibGVhdmVMb2JieSJdLCJtYXBwaW5ncyI6IkFBNkdB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