@discordeno/bot 21.0.1-next.4792ad2 → 21.0.1-next.49a8cd1

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 (276) hide show
  1. package/dist/cjs/bot.cjs +1 -1
  2. package/dist/cjs/desiredProperties.cjs +1 -1
  3. package/dist/cjs/handlers/channels/CHANNEL_CREATE.cjs +3 -4
  4. package/dist/cjs/handlers/channels/CHANNEL_DELETE.cjs +3 -5
  5. package/dist/cjs/handlers/channels/CHANNEL_UPDATE.cjs +2 -4
  6. package/dist/cjs/handlers/channels/THREAD_CREATE.cjs +2 -4
  7. package/dist/cjs/handlers/channels/THREAD_DELETE.cjs +2 -4
  8. package/dist/cjs/handlers/channels/THREAD_LIST_SYNC.cjs +2 -3
  9. package/dist/cjs/handlers/channels/THREAD_MEMBERS_UPDATE.cjs +4 -2
  10. package/dist/cjs/handlers/channels/THREAD_MEMBER_UPDATE.cjs +1 -3
  11. package/dist/cjs/handlers/channels/THREAD_UPDATE.cjs +2 -4
  12. package/dist/cjs/handlers/guilds/GUILD_CREATE.cjs +2 -3
  13. package/dist/cjs/handlers/guilds/GUILD_DELETE.cjs +6 -8
  14. package/dist/cjs/handlers/guilds/GUILD_UPDATE.cjs +2 -3
  15. package/dist/cjs/handlers/guilds/index.cjs +2 -2
  16. package/dist/cjs/handlers/index.cjs +3 -3
  17. package/dist/cjs/handlers/interactions/INTERACTION_CREATE.cjs +3 -3
  18. package/dist/cjs/handlers/invites/INVITE_CREATE.cjs +3 -3
  19. package/dist/cjs/handlers/members/GUILD_MEMBER_ADD.cjs +5 -2
  20. package/dist/cjs/handlers/members/GUILD_MEMBER_UPDATE.cjs +6 -3
  21. package/dist/cjs/handlers/messages/MESSAGE_CREATE.cjs +2 -3
  22. package/dist/cjs/handlers/messages/MESSAGE_REACTION_ADD.cjs +6 -2
  23. package/dist/cjs/handlers/messages/MESSAGE_REACTION_REMOVE.cjs +2 -1
  24. package/dist/cjs/handlers/messages/MESSAGE_REACTION_REMOVE_EMOJI.cjs +2 -1
  25. package/dist/cjs/handlers/messages/MESSAGE_UPDATE.cjs +2 -3
  26. package/dist/cjs/handlers/messages/index.cjs +3 -3
  27. package/dist/cjs/handlers/misc/TYPING_START.cjs +5 -2
  28. package/dist/cjs/handlers/roles/GUILD_ROLE_CREATE.cjs +2 -3
  29. package/dist/cjs/handlers/roles/GUILD_ROLE_UPDATE.cjs +2 -3
  30. package/dist/cjs/handlers/soundboard/index.cjs +3 -3
  31. package/dist/cjs/handlers/voice/VOICE_STATE_UPDATE.cjs +3 -3
  32. package/dist/cjs/handlers/voice/index.cjs +2 -2
  33. package/dist/cjs/helpers.cjs +82 -150
  34. package/dist/cjs/index.cjs +3 -4
  35. package/dist/cjs/transformers/activity.cjs +1 -1
  36. package/dist/cjs/transformers/application.cjs +44 -45
  37. package/dist/cjs/transformers/attachment.cjs +1 -1
  38. package/dist/cjs/transformers/channel.cjs +44 -40
  39. package/dist/cjs/transformers/component.cjs +2 -2
  40. package/dist/cjs/transformers/emoji.cjs +1 -1
  41. package/dist/cjs/transformers/entitlement.cjs +1 -1
  42. package/dist/cjs/transformers/guild.cjs +75 -68
  43. package/dist/cjs/transformers/incidentsData.cjs +1 -1
  44. package/dist/cjs/transformers/interaction.cjs +89 -83
  45. package/dist/cjs/transformers/invite.cjs +30 -31
  46. package/dist/cjs/transformers/lobby.cjs +2 -4
  47. package/dist/cjs/transformers/member.cjs +9 -6
  48. package/dist/cjs/transformers/message.cjs +72 -69
  49. package/dist/cjs/transformers/onboarding.cjs +2 -2
  50. package/dist/cjs/transformers/poll.cjs +5 -4
  51. package/dist/cjs/transformers/presence.cjs +9 -10
  52. package/dist/cjs/transformers/reverse/application.cjs +1 -1
  53. package/dist/cjs/transformers/reverse/attachment.cjs +15 -14
  54. package/dist/cjs/transformers/reverse/component.cjs +5 -5
  55. package/dist/cjs/transformers/reverse/emoji.cjs +3 -3
  56. package/dist/cjs/transformers/reverse/index.cjs +1 -2
  57. package/dist/cjs/transformers/reverse/member.cjs +34 -32
  58. package/dist/cjs/transformers/reverse/presence.cjs +1 -1
  59. package/dist/cjs/transformers/reverse/team.cjs +1 -1
  60. package/dist/cjs/transformers/role.cjs +19 -19
  61. package/dist/cjs/transformers/scheduledEvent.cjs +1 -1
  62. package/dist/cjs/transformers/sku.cjs +1 -1
  63. package/dist/cjs/transformers/soundboardSound.cjs +1 -1
  64. package/dist/cjs/transformers/stageInstance.cjs +1 -1
  65. package/dist/cjs/transformers/stageInviteInstance.cjs +10 -4
  66. package/dist/cjs/transformers/sticker.cjs +1 -1
  67. package/dist/cjs/transformers/subscription.cjs +1 -1
  68. package/dist/cjs/transformers/team.cjs +1 -1
  69. package/dist/cjs/transformers/template.cjs +1 -1
  70. package/dist/cjs/transformers/threadMember.cjs +7 -4
  71. package/dist/cjs/transformers/user.cjs +1 -1
  72. package/dist/cjs/transformers/voiceState.cjs +11 -9
  73. package/dist/cjs/transformers/webhook.cjs +1 -1
  74. package/dist/cjs/transformers/widget.cjs +6 -16
  75. package/dist/cjs/transformers.cjs +164 -162
  76. package/dist/esm/bot.js +2 -2
  77. package/dist/esm/desiredProperties.js +1 -1
  78. package/dist/esm/events.js +1 -1
  79. package/dist/esm/handlers/channels/CHANNEL_CREATE.js +3 -4
  80. package/dist/esm/handlers/channels/CHANNEL_DELETE.js +3 -5
  81. package/dist/esm/handlers/channels/CHANNEL_UPDATE.js +2 -4
  82. package/dist/esm/handlers/channels/THREAD_CREATE.js +2 -4
  83. package/dist/esm/handlers/channels/THREAD_DELETE.js +2 -4
  84. package/dist/esm/handlers/channels/THREAD_LIST_SYNC.js +2 -3
  85. package/dist/esm/handlers/channels/THREAD_MEMBERS_UPDATE.js +4 -2
  86. package/dist/esm/handlers/channels/THREAD_MEMBER_UPDATE.js +1 -3
  87. package/dist/esm/handlers/channels/THREAD_UPDATE.js +2 -4
  88. package/dist/esm/handlers/guilds/GUILD_CREATE.js +2 -3
  89. package/dist/esm/handlers/guilds/GUILD_DELETE.js +6 -8
  90. package/dist/esm/handlers/guilds/GUILD_UPDATE.js +2 -3
  91. package/dist/esm/handlers/guilds/index.js +2 -2
  92. package/dist/esm/handlers/index.js +3 -3
  93. package/dist/esm/handlers/interactions/INTERACTION_CREATE.js +3 -3
  94. package/dist/esm/handlers/invites/INVITE_CREATE.js +3 -3
  95. package/dist/esm/handlers/members/GUILD_MEMBER_ADD.js +5 -2
  96. package/dist/esm/handlers/members/GUILD_MEMBER_UPDATE.js +6 -3
  97. package/dist/esm/handlers/messages/MESSAGE_CREATE.js +2 -3
  98. package/dist/esm/handlers/messages/MESSAGE_REACTION_ADD.js +6 -2
  99. package/dist/esm/handlers/messages/MESSAGE_REACTION_REMOVE.js +2 -1
  100. package/dist/esm/handlers/messages/MESSAGE_REACTION_REMOVE_EMOJI.js +2 -1
  101. package/dist/esm/handlers/messages/MESSAGE_UPDATE.js +2 -3
  102. package/dist/esm/handlers/messages/index.js +3 -3
  103. package/dist/esm/handlers/misc/TYPING_START.js +5 -2
  104. package/dist/esm/handlers/roles/GUILD_ROLE_CREATE.js +2 -3
  105. package/dist/esm/handlers/roles/GUILD_ROLE_UPDATE.js +2 -3
  106. package/dist/esm/handlers/soundboard/index.js +3 -3
  107. package/dist/esm/handlers/voice/VOICE_STATE_UPDATE.js +3 -3
  108. package/dist/esm/handlers/voice/index.js +2 -2
  109. package/dist/esm/helpers.js +82 -150
  110. package/dist/esm/index.js +3 -4
  111. package/dist/esm/transformers/activity.js +1 -1
  112. package/dist/esm/transformers/application.js +44 -45
  113. package/dist/esm/transformers/attachment.js +1 -1
  114. package/dist/esm/transformers/channel.js +44 -40
  115. package/dist/esm/transformers/component.js +2 -2
  116. package/dist/esm/transformers/emoji.js +1 -1
  117. package/dist/esm/transformers/entitlement.js +1 -1
  118. package/dist/esm/transformers/guild.js +75 -68
  119. package/dist/esm/transformers/incidentsData.js +1 -1
  120. package/dist/esm/transformers/interaction.js +91 -83
  121. package/dist/esm/transformers/invite.js +31 -32
  122. package/dist/esm/transformers/lobby.js +2 -4
  123. package/dist/esm/transformers/member.js +9 -6
  124. package/dist/esm/transformers/message.js +72 -69
  125. package/dist/esm/transformers/onboarding.js +2 -2
  126. package/dist/esm/transformers/poll.js +5 -4
  127. package/dist/esm/transformers/presence.js +9 -10
  128. package/dist/esm/transformers/reverse/application.js +1 -1
  129. package/dist/esm/transformers/reverse/attachment.js +15 -14
  130. package/dist/esm/transformers/reverse/component.js +5 -5
  131. package/dist/esm/transformers/reverse/emoji.js +3 -3
  132. package/dist/esm/transformers/reverse/index.js +1 -2
  133. package/dist/esm/transformers/reverse/member.js +34 -32
  134. package/dist/esm/transformers/reverse/presence.js +1 -1
  135. package/dist/esm/transformers/reverse/team.js +1 -1
  136. package/dist/esm/transformers/role.js +19 -19
  137. package/dist/esm/transformers/scheduledEvent.js +1 -1
  138. package/dist/esm/transformers/sku.js +1 -1
  139. package/dist/esm/transformers/soundboardSound.js +1 -1
  140. package/dist/esm/transformers/stageInstance.js +1 -1
  141. package/dist/esm/transformers/stageInviteInstance.js +10 -4
  142. package/dist/esm/transformers/sticker.js +1 -1
  143. package/dist/esm/transformers/subscription.js +1 -1
  144. package/dist/esm/transformers/team.js +1 -1
  145. package/dist/esm/transformers/template.js +1 -1
  146. package/dist/esm/transformers/threadMember.js +7 -4
  147. package/dist/esm/transformers/types.js +1 -1
  148. package/dist/esm/transformers/user.js +1 -1
  149. package/dist/esm/transformers/voiceState.js +11 -9
  150. package/dist/esm/transformers/webhook.js +1 -1
  151. package/dist/esm/transformers/widget.js +6 -16
  152. package/dist/esm/transformers.js +166 -164
  153. package/dist/types/bot.d.ts +1 -5
  154. package/dist/types/bot.d.ts.map +1 -1
  155. package/dist/types/desiredProperties.d.ts +2 -1
  156. package/dist/types/desiredProperties.d.ts.map +1 -1
  157. package/dist/types/events.d.ts +4 -4
  158. package/dist/types/events.d.ts.map +1 -1
  159. package/dist/types/handlers/channels/CHANNEL_CREATE.d.ts.map +1 -1
  160. package/dist/types/handlers/channels/CHANNEL_DELETE.d.ts.map +1 -1
  161. package/dist/types/handlers/channels/THREAD_MEMBER_UPDATE.d.ts.map +1 -1
  162. package/dist/types/handlers/guilds/GUILD_DELETE.d.ts.map +1 -1
  163. package/dist/types/handlers/guilds/index.d.ts +1 -1
  164. package/dist/types/handlers/guilds/index.d.ts.map +1 -1
  165. package/dist/types/handlers/index.d.ts +2 -2
  166. package/dist/types/handlers/index.d.ts.map +1 -1
  167. package/dist/types/handlers/interactions/INTERACTION_CREATE.d.ts.map +1 -1
  168. package/dist/types/handlers/invites/INVITE_CREATE.d.ts.map +1 -1
  169. package/dist/types/handlers/members/GUILD_MEMBER_ADD.d.ts +2 -2
  170. package/dist/types/handlers/members/GUILD_MEMBER_ADD.d.ts.map +1 -1
  171. package/dist/types/handlers/members/GUILD_MEMBER_UPDATE.d.ts.map +1 -1
  172. package/dist/types/handlers/messages/MESSAGE_REACTION_ADD.d.ts.map +1 -1
  173. package/dist/types/handlers/messages/MESSAGE_REACTION_REMOVE.d.ts.map +1 -1
  174. package/dist/types/handlers/messages/MESSAGE_REACTION_REMOVE_EMOJI.d.ts.map +1 -1
  175. package/dist/types/handlers/messages/index.d.ts +2 -2
  176. package/dist/types/handlers/messages/index.d.ts.map +1 -1
  177. package/dist/types/handlers/roles/GUILD_ROLE_CREATE.d.ts.map +1 -1
  178. package/dist/types/handlers/roles/GUILD_ROLE_UPDATE.d.ts.map +1 -1
  179. package/dist/types/handlers/soundboard/index.d.ts +2 -2
  180. package/dist/types/handlers/soundboard/index.d.ts.map +1 -1
  181. package/dist/types/handlers/voice/VOICE_STATE_UPDATE.d.ts.map +1 -1
  182. package/dist/types/handlers/voice/index.d.ts +1 -1
  183. package/dist/types/handlers/voice/index.d.ts.map +1 -1
  184. package/dist/types/helpers.d.ts +9 -9
  185. package/dist/types/helpers.d.ts.map +1 -1
  186. package/dist/types/index.d.ts +2 -3
  187. package/dist/types/index.d.ts.map +1 -1
  188. package/dist/types/transformers/activity.d.ts +3 -3
  189. package/dist/types/transformers/activity.d.ts.map +1 -1
  190. package/dist/types/transformers/application.d.ts +2 -3
  191. package/dist/types/transformers/application.d.ts.map +1 -1
  192. package/dist/types/transformers/attachment.d.ts +2 -2
  193. package/dist/types/transformers/attachment.d.ts.map +1 -1
  194. package/dist/types/transformers/channel.d.ts +5 -6
  195. package/dist/types/transformers/channel.d.ts.map +1 -1
  196. package/dist/types/transformers/emoji.d.ts +4 -4
  197. package/dist/types/transformers/emoji.d.ts.map +1 -1
  198. package/dist/types/transformers/entitlement.d.ts +2 -2
  199. package/dist/types/transformers/entitlement.d.ts.map +1 -1
  200. package/dist/types/transformers/guild.d.ts +5 -6
  201. package/dist/types/transformers/guild.d.ts.map +1 -1
  202. package/dist/types/transformers/incidentsData.d.ts +2 -2
  203. package/dist/types/transformers/incidentsData.d.ts.map +1 -1
  204. package/dist/types/transformers/interaction.d.ts +16 -20
  205. package/dist/types/transformers/interaction.d.ts.map +1 -1
  206. package/dist/types/transformers/invite.d.ts +4 -5
  207. package/dist/types/transformers/invite.d.ts.map +1 -1
  208. package/dist/types/transformers/lobby.d.ts +3 -3
  209. package/dist/types/transformers/lobby.d.ts.map +1 -1
  210. package/dist/types/transformers/member.d.ts +7 -3
  211. package/dist/types/transformers/member.d.ts.map +1 -1
  212. package/dist/types/transformers/message.d.ts +13 -13
  213. package/dist/types/transformers/message.d.ts.map +1 -1
  214. package/dist/types/transformers/onboarding.d.ts +4 -4
  215. package/dist/types/transformers/onboarding.d.ts.map +1 -1
  216. package/dist/types/transformers/poll.d.ts +3 -3
  217. package/dist/types/transformers/poll.d.ts.map +1 -1
  218. package/dist/types/transformers/presence.d.ts +2 -2
  219. package/dist/types/transformers/presence.d.ts.map +1 -1
  220. package/dist/types/transformers/reverse/application.d.ts +2 -2
  221. package/dist/types/transformers/reverse/application.d.ts.map +1 -1
  222. package/dist/types/transformers/reverse/attachment.d.ts +2 -2
  223. package/dist/types/transformers/reverse/attachment.d.ts.map +1 -1
  224. package/dist/types/transformers/reverse/emoji.d.ts +2 -2
  225. package/dist/types/transformers/reverse/emoji.d.ts.map +1 -1
  226. package/dist/types/transformers/reverse/index.d.ts +0 -1
  227. package/dist/types/transformers/reverse/index.d.ts.map +1 -1
  228. package/dist/types/transformers/reverse/member.d.ts +3 -4
  229. package/dist/types/transformers/reverse/member.d.ts.map +1 -1
  230. package/dist/types/transformers/reverse/presence.d.ts +2 -2
  231. package/dist/types/transformers/reverse/presence.d.ts.map +1 -1
  232. package/dist/types/transformers/reverse/team.d.ts +2 -2
  233. package/dist/types/transformers/reverse/team.d.ts.map +1 -1
  234. package/dist/types/transformers/role.d.ts +6 -7
  235. package/dist/types/transformers/role.d.ts.map +1 -1
  236. package/dist/types/transformers/scheduledEvent.d.ts +3 -3
  237. package/dist/types/transformers/scheduledEvent.d.ts.map +1 -1
  238. package/dist/types/transformers/sku.d.ts +2 -2
  239. package/dist/types/transformers/sku.d.ts.map +1 -1
  240. package/dist/types/transformers/soundboardSound.d.ts +2 -2
  241. package/dist/types/transformers/soundboardSound.d.ts.map +1 -1
  242. package/dist/types/transformers/stageInstance.d.ts +2 -2
  243. package/dist/types/transformers/stageInstance.d.ts.map +1 -1
  244. package/dist/types/transformers/stageInviteInstance.d.ts +4 -4
  245. package/dist/types/transformers/stageInviteInstance.d.ts.map +1 -1
  246. package/dist/types/transformers/sticker.d.ts +3 -3
  247. package/dist/types/transformers/sticker.d.ts.map +1 -1
  248. package/dist/types/transformers/subscription.d.ts +2 -2
  249. package/dist/types/transformers/subscription.d.ts.map +1 -1
  250. package/dist/types/transformers/team.d.ts +2 -2
  251. package/dist/types/transformers/team.d.ts.map +1 -1
  252. package/dist/types/transformers/template.d.ts +2 -2
  253. package/dist/types/transformers/template.d.ts.map +1 -1
  254. package/dist/types/transformers/threadMember.d.ts +11 -2
  255. package/dist/types/transformers/threadMember.d.ts.map +1 -1
  256. package/dist/types/transformers/types.d.ts +8 -8
  257. package/dist/types/transformers/types.d.ts.map +1 -1
  258. package/dist/types/transformers/user.d.ts +6 -6
  259. package/dist/types/transformers/user.d.ts.map +1 -1
  260. package/dist/types/transformers/voiceState.d.ts +4 -5
  261. package/dist/types/transformers/voiceState.d.ts.map +1 -1
  262. package/dist/types/transformers/webhook.d.ts +2 -2
  263. package/dist/types/transformers/webhook.d.ts.map +1 -1
  264. package/dist/types/transformers/widget.d.ts +1 -1
  265. package/dist/types/transformers/widget.d.ts.map +1 -1
  266. package/dist/types/transformers.d.ts +86 -68
  267. package/dist/types/transformers.d.ts.map +1 -1
  268. package/package.json +6 -6
  269. package/dist/cjs/transformers/reverse/createApplicationCommand.cjs +0 -36
  270. package/dist/cjs/utils.cjs +0 -32
  271. package/dist/esm/transformers/reverse/createApplicationCommand.js +0 -26
  272. package/dist/esm/utils.js +0 -11
  273. package/dist/types/transformers/reverse/createApplicationCommand.d.ts +0 -3
  274. package/dist/types/transformers/reverse/createApplicationCommand.d.ts.map +0 -1
  275. package/dist/types/utils.d.ts +0 -5
  276. package/dist/types/utils.d.ts.map +0 -1
@@ -17,8 +17,8 @@ _export(exports, {
17
17
  }
18
18
  });
19
19
  const _utils = require("@discordeno/utils");
20
- const _Permissions = require("./toggles/Permissions.cjs");
21
20
  const _member = require("./toggles/member.cjs");
21
+ const _Permissions = require("./toggles/Permissions.cjs");
22
22
  const baseMember = {
23
23
  // This allows typescript to still check for type errors on functions below
24
24
  ...undefined,
@@ -47,11 +47,11 @@ const baseMember = {
47
47
  return !!this.toggles?.completedOnboarding;
48
48
  }
49
49
  };
50
- function transformMember(bot, payload, guildId, userId) {
50
+ function transformMember(bot, payload, extra) {
51
51
  const member = Object.create(baseMember);
52
52
  const props = bot.transformers.desiredProperties.member;
53
- if (props.id && userId) member.id = typeof userId === 'string' ? bot.transformers.snowflake(userId) : userId;
54
- if (props.guildId && guildId) member.guildId = typeof guildId === 'string' ? bot.transformers.snowflake(guildId) : guildId;
53
+ if (props.id && extra?.userId) member.id = typeof extra.userId === 'string' ? bot.transformers.snowflake(extra.userId) : extra.userId;
54
+ if (props.guildId && extra?.guildId) member.guildId = typeof extra.guildId === 'string' ? bot.transformers.snowflake(extra.guildId) : extra.guildId;
55
55
  if (props.user && payload.user) member.user = bot.transformers.user(bot, payload.user);
56
56
  if (props.nick && payload.nick) member.nick = payload.nick;
57
57
  if (props.roles && payload.roles) member.roles = payload.roles.map((id)=>bot.transformers.snowflake(id));
@@ -63,7 +63,10 @@ function transformMember(bot, payload, guildId, userId) {
63
63
  if (props.permissions && payload.permissions) member.permissions = new _Permissions.Permissions(payload.permissions);
64
64
  if (props.toggles) member.toggles = new _member.MemberToggles(payload);
65
65
  if (props.avatarDecorationData && payload.avatar_decoration_data) member.avatarDecorationData = bot.transformers.avatarDecorationData(bot, payload.avatar_decoration_data);
66
- return bot.transformers.customizers.member(bot, payload, member);
66
+ return bot.transformers.customizers.member(bot, payload, member, {
67
+ guildId: extra?.guildId ? bot.transformers.snowflake(extra.guildId) : undefined,
68
+ userId: extra?.userId ? bot.transformers.snowflake(extra.userId) : undefined
69
+ });
67
70
  }
68
71
 
69
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvbWVtYmVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQmlnU3RyaW5nLCBEaXNjb3JkTWVtYmVyIH0gZnJvbSAnQGRpc2NvcmRlbm8vdHlwZXMnXG5pbXBvcnQgeyBpY29uSGFzaFRvQmlnSW50IH0gZnJvbSAnQGRpc2NvcmRlbm8vdXRpbHMnXG5pbXBvcnQgdHlwZSB7IEludGVybmFsQm90IH0gZnJvbSAnLi4vYm90LmpzJ1xuaW1wb3J0IHsgUGVybWlzc2lvbnMgfSBmcm9tICcuL3RvZ2dsZXMvUGVybWlzc2lvbnMuanMnXG5pbXBvcnQgeyBNZW1iZXJUb2dnbGVzIH0gZnJvbSAnLi90b2dnbGVzL21lbWJlci5qcydcbmltcG9ydCB0eXBlIHsgTWVtYmVyIH0gZnJvbSAnLi90eXBlcy5qcydcblxuZXhwb3J0IGNvbnN0IGJhc2VNZW1iZXI6IEludGVybmFsQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsnbWVtYmVyJ10gPSB7XG4gIC8vIFRoaXMgYWxsb3dzIHR5cGVzY3JpcHQgdG8gc3RpbGwgY2hlY2sgZm9yIHR5cGUgZXJyb3JzIG9uIGZ1bmN0aW9ucyBiZWxvd1xuICAuLi4odW5kZWZpbmVkIGFzIHVua25vd24gYXMgSW50ZXJuYWxCb3RbJ3RyYW5zZm9ybWVycyddWyckaW5mZXJyZWRUeXBlcyddWydtZW1iZXInXSksXG5cbiAgZ2V0IGRlYWYoKSB7XG4gICAgcmV0dXJuICEhdGhpcy50b2dnbGVzPy5oYXMoJ2RlYWYnKVxuICB9LFxuICBnZXQgbXV0ZSgpIHtcbiAgICByZXR1cm4gISF0aGlzLnRvZ2dsZXM/LmhhcygnbXV0ZScpXG4gIH0sXG4gIGdldCBwZW5kaW5nKCkge1xuICAgIHJldHVybiAhIXRoaXMudG9nZ2xlcz8uaGFzKCdwZW5kaW5nJylcbiAgfSxcbiAgZ2V0IGZsYWdzKCkge1xuICAgIHJldHVybiB0aGlzLnRvZ2dsZXM/LmZsYWdzID8/IDBcbiAgfSxcbiAgZ2V0IGRpZFJlam9pbigpIHtcbiAgICByZXR1cm4gISF0aGlzLnRvZ2dsZXM/LmRpZFJlam9pblxuICB9LFxuICBnZXQgc3RhcnRlZE9uYm9hcmRpbmcoKSB7XG4gICAgcmV0dXJuICEhdGhpcy50b2dnbGVzPy5zdGFydGVkT25ib2FyZGluZ1xuICB9LFxuICBnZXQgYnlwYXNzZXNWZXJpZmljYXRpb24oKSB7XG4gICAgcmV0dXJuICEhdGhpcy50b2dnbGVzPy5ieXBhc3Nlc1ZlcmlmaWNhdGlvblxuICB9LFxuICBnZXQgY29tcGxldGVkT25ib2FyZGluZygpIHtcbiAgICByZXR1cm4gISF0aGlzLnRvZ2dsZXM/LmNvbXBsZXRlZE9uYm9hcmRpbmdcbiAgfSxcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybU1lbWJlcihcbiAgYm90OiBJbnRlcm5hbEJvdCxcbiAgcGF5bG9hZDogRGlzY29yZE1lbWJlcixcbiAgZ3VpbGRJZDogQmlnU3RyaW5nLFxuICB1c2VySWQ6IEJpZ1N0cmluZyxcbik6IHR5cGVvZiBib3QudHJhbnNmb3JtZXJzLiRpbmZlcnJlZFR5cGVzLm1lbWJlciB7XG4gIGNvbnN0IG1lbWJlcjogTWVtYmVyID0gT2JqZWN0LmNyZWF0ZShiYXNlTWVtYmVyKVxuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMubWVtYmVyXG5cbiAgaWYgKHByb3BzLmlkICYmIHVzZXJJZCkgbWVtYmVyLmlkID0gdHlwZW9mIHVzZXJJZCA9PT0gJ3N0cmluZycgPyBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZSh1c2VySWQpIDogdXNlcklkXG4gIGlmIChwcm9wcy5ndWlsZElkICYmIGd1aWxkSWQpIG1lbWJlci5ndWlsZElkID0gdHlwZW9mIGd1aWxkSWQgPT09ICdzdHJpbmcnID8gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UoZ3VpbGRJZCkgOiBndWlsZElkXG4gIGlmIChwcm9wcy51c2VyICYmIHBheWxvYWQudXNlcikgbWVtYmVyLnVzZXIgPSBib3QudHJhbnNmb3JtZXJzLnVzZXIoYm90LCBwYXlsb2FkLnVzZXIpXG4gIGlmIChwcm9wcy5uaWNrICYmIHBheWxvYWQubmljaykgbWVtYmVyLm5pY2sgPSBwYXlsb2FkLm5pY2tcbiAgaWYgKHByb3BzLnJvbGVzICYmIHBheWxvYWQucm9sZXMpIG1lbWJlci5yb2xlcyA9IHBheWxvYWQucm9sZXMubWFwKChpZCkgPT4gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UoaWQpKVxuICBpZiAocHJvcHMuam9pbmVkQXQgJiYgcGF5bG9hZC5qb2luZWRfYXQpIG1lbWJlci5qb2luZWRBdCA9IERhdGUucGFyc2UocGF5bG9hZC5qb2luZWRfYXQpXG4gIGlmIChwcm9wcy5wcmVtaXVtU2luY2UgJiYgcGF5bG9hZC5wcmVtaXVtX3NpbmNlKSBtZW1iZXIucHJlbWl1bVNpbmNlID0gRGF0ZS5wYXJzZShwYXlsb2FkLnByZW1pdW1fc2luY2UpXG4gIGlmIChwcm9wcy5jb21tdW5pY2F0aW9uRGlzYWJsZWRVbnRpbCAmJiBwYXlsb2FkLmNvbW11bmljYXRpb25fZGlzYWJsZWRfdW50aWwpXG4gICAgbWVtYmVyLmNvbW11bmljYXRpb25EaXNhYmxlZFVudGlsID0gRGF0ZS5wYXJzZShwYXlsb2FkLmNvbW11bmljYXRpb25fZGlzYWJsZWRfdW50aWwpXG4gIGlmIChwcm9wcy5hdmF0YXIgJiYgcGF5bG9hZC5hdmF0YXIpIG1lbWJlci5hdmF0YXIgPSBpY29uSGFzaFRvQmlnSW50KHBheWxvYWQuYXZhdGFyKVxuICBpZiAocHJvcHMuYmFubmVyICYmIHBheWxvYWQuYmFubmVyKSBtZW1iZXIuYmFubmVyID0gaWNvbkhhc2hUb0JpZ0ludChwYXlsb2FkLmJhbm5lcilcbiAgaWYgKHByb3BzLnBlcm1pc3Npb25zICYmIHBheWxvYWQucGVybWlzc2lvbnMpIG1lbWJlci5wZXJtaXNzaW9ucyA9IG5ldyBQZXJtaXNzaW9ucyhwYXlsb2FkLnBlcm1pc3Npb25zKVxuICBpZiAocHJvcHMudG9nZ2xlcykgbWVtYmVyLnRvZ2dsZXMgPSBuZXcgTWVtYmVyVG9nZ2xlcyhwYXlsb2FkKVxuICBpZiAocHJvcHMuYXZhdGFyRGVjb3JhdGlvbkRhdGEgJiYgcGF5bG9hZC5hdmF0YXJfZGVjb3JhdGlvbl9kYXRhKVxuICAgIG1lbWJlci5hdmF0YXJEZWNvcmF0aW9uRGF0YSA9IGJvdC50cmFuc2Zvcm1lcnMuYXZhdGFyRGVjb3JhdGlvbkRhdGEoYm90LCBwYXlsb2FkLmF2YXRhcl9kZWNvcmF0aW9uX2RhdGEpXG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMubWVtYmVyKGJvdCwgcGF5bG9hZCwgbWVtYmVyKVxufVxuIl0sIm5hbWVzIjpbImJhc2VNZW1iZXIiLCJ0cmFuc2Zvcm1NZW1iZXIiLCJ1bmRlZmluZWQiLCJkZWFmIiwidG9nZ2xlcyIsImhhcyIsIm11dGUiLCJwZW5kaW5nIiwiZmxhZ3MiLCJkaWRSZWpvaW4iLCJzdGFydGVkT25ib2FyZGluZyIsImJ5cGFzc2VzVmVyaWZpY2F0aW9uIiwiY29tcGxldGVkT25ib2FyZGluZyIsImJvdCIsInBheWxvYWQiLCJndWlsZElkIiwidXNlcklkIiwibWVtYmVyIiwiT2JqZWN0IiwiY3JlYXRlIiwicHJvcHMiLCJ0cmFuc2Zvcm1lcnMiLCJkZXNpcmVkUHJvcGVydGllcyIsImlkIiwic25vd2ZsYWtlIiwidXNlciIsIm5pY2siLCJyb2xlcyIsIm1hcCIsImpvaW5lZEF0Iiwiam9pbmVkX2F0IiwiRGF0ZSIsInBhcnNlIiwicHJlbWl1bVNpbmNlIiwicHJlbWl1bV9zaW5jZSIsImNvbW11bmljYXRpb25EaXNhYmxlZFVudGlsIiwiY29tbXVuaWNhdGlvbl9kaXNhYmxlZF91bnRpbCIsImF2YXRhciIsImljb25IYXNoVG9CaWdJbnQiLCJiYW5uZXIiLCJwZXJtaXNzaW9ucyIsIlBlcm1pc3Npb25zIiwiTWVtYmVyVG9nZ2xlcyIsImF2YXRhckRlY29yYXRpb25EYXRhIiwiYXZhdGFyX2RlY29yYXRpb25fZGF0YSIsImN1c3RvbWl6ZXJzIl0s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
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvbWVtYmVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQmlnU3RyaW5nLCBEaXNjb3JkTWVtYmVyIH0gZnJvbSAnQGRpc2NvcmRlbm8vdHlwZXMnXG5pbXBvcnQgeyBpY29uSGFzaFRvQmlnSW50IH0gZnJvbSAnQGRpc2NvcmRlbm8vdXRpbHMnXG5pbXBvcnQgdHlwZSB7IEJvdCB9IGZyb20gJy4uL2JvdC5qcydcbmltcG9ydCB0eXBlIHsgRGVzaXJlZFByb3BlcnRpZXNCZWhhdmlvciwgU2V0dXBEZXNpcmVkUHJvcHMsIFRyYW5zZm9ybWVyc0Rlc2lyZWRQcm9wZXJ0aWVzIH0gZnJvbSAnLi4vaW5kZXguanMnXG5pbXBvcnQgeyBNZW1iZXJUb2dnbGVzIH0gZnJvbSAnLi90b2dnbGVzL21lbWJlci5qcydcbmltcG9ydCB7IFBlcm1pc3Npb25zIH0gZnJvbSAnLi90b2dnbGVzL1Blcm1pc3Npb25zLmpzJ1xuaW1wb3J0IHR5cGUgeyBNZW1iZXIgfSBmcm9tICcuL3R5cGVzLmpzJ1xuXG5leHBvcnQgY29uc3QgYmFzZU1lbWJlcjogTWVtYmVyID0ge1xuICAvLyBUaGlzIGFsbG93cyB0eXBlc2NyaXB0IHRvIHN0aWxsIGNoZWNrIGZvciB0eXBlIGVycm9ycyBvbiBmdW5jdGlvbnMgYmVsb3dcbiAgLi4uKHVuZGVmaW5lZCBhcyB1bmtub3duIGFzIE1lbWJlciksXG5cbiAgZ2V0IGRlYWYoKSB7XG4gICAgcmV0dXJuICEhdGhpcy50b2dnbGVzPy5oYXMoJ2RlYWYnKVxuICB9LFxuICBnZXQgbXV0ZSgpIHtcbiAgICByZXR1cm4gISF0aGlzLnRvZ2dsZXM/LmhhcygnbXV0ZScpXG4gIH0sXG4gIGdldCBwZW5kaW5nKCkge1xuICAgIHJldHVybiAhIXRoaXMudG9nZ2xlcz8uaGFzKCdwZW5kaW5nJylcbiAgfSxcbiAgZ2V0IGZsYWdzKCkge1xuICAgIHJldHVybiB0aGlzLnRvZ2dsZXM/LmZsYWdzID8/IDBcbiAgfSxcbiAgZ2V0IGRpZFJlam9pbigpIHtcbiAgICByZXR1cm4gISF0aGlzLnRvZ2dsZXM/LmRpZFJlam9pblxuICB9LFxuICBnZXQgc3RhcnRlZE9uYm9hcmRpbmcoKSB7XG4gICAgcmV0dXJuICEhdGhpcy50b2dnbGVzPy5zdGFydGVkT25ib2FyZGluZ1xuICB9LFxuICBnZXQgYnlwYXNzZXNWZXJpZmljYXRpb24oKSB7XG4gICAgcmV0dXJuICEhdGhpcy50b2dnbGVzPy5ieXBhc3Nlc1ZlcmlmaWNhdGlvblxuICB9LFxuICBnZXQgY29tcGxldGVkT25ib2FyZGluZygpIHtcbiAgICByZXR1cm4gISF0aGlzLnRvZ2dsZXM/LmNvbXBsZXRlZE9uYm9hcmRpbmdcbiAgfSxcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybU1lbWJlcihib3Q6IEJvdCwgcGF5bG9hZDogRGlzY29yZE1lbWJlciwgZXh0cmE/OiB7IGd1aWxkSWQ/OiBCaWdTdHJpbmc7IHVzZXJJZD86IEJpZ1N0cmluZyB9KTogTWVtYmVyIHtcbiAgY29uc3QgbWVtYmVyOiBTZXR1cERlc2lyZWRQcm9wczxNZW1iZXIsIFRyYW5zZm9ybWVyc0Rlc2lyZWRQcm9wZXJ0aWVzLCBEZXNpcmVkUHJvcGVydGllc0JlaGF2aW9yPiA9IE9iamVjdC5jcmVhdGUoYmFzZU1lbWJlcilcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLm1lbWJlclxuXG4gIGlmIChwcm9wcy5pZCAmJiBleHRyYT8udXNlcklkKSBtZW1iZXIuaWQgPSB0eXBlb2YgZXh0cmEudXNlcklkID09PSAnc3RyaW5nJyA/IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKGV4dHJhLnVzZXJJZCkgOiBleHRyYS51c2VySWRcbiAgaWYgKHByb3BzLmd1aWxkSWQgJiYgZXh0cmE/Lmd1aWxkSWQpIG1lbWJlci5ndWlsZElkID0gdHlwZW9mIGV4dHJhLmd1aWxkSWQgPT09ICdzdHJpbmcnID8gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UoZXh0cmEuZ3VpbGRJZCkgOiBleHRyYS5ndWlsZElkXG4gIGlmIChwcm9wcy51c2VyICYmIHBheWxvYWQudXNlcikgbWVtYmVyLnVzZXIgPSBib3QudHJhbnNmb3JtZXJzLnVzZXIoYm90LCBwYXlsb2FkLnVzZXIpXG4gIGlmIChwcm9wcy5uaWNrICYmIHBheWxvYWQubmljaykgbWVtYmVyLm5pY2sgPSBwYXlsb2FkLm5pY2tcbiAgaWYgKHByb3BzLnJvbGVzICYmIHBheWxvYWQucm9sZXMpIG1lbWJlci5yb2xlcyA9IHBheWxvYWQucm9sZXMubWFwKChpZCkgPT4gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UoaWQpKVxuICBpZiAocHJvcHMuam9pbmVkQXQgJiYgcGF5bG9hZC5qb2luZWRfYXQpIG1lbWJlci5qb2luZWRBdCA9IERhdGUucGFyc2UocGF5bG9hZC5qb2luZWRfYXQpXG4gIGlmIChwcm9wcy5wcmVtaXVtU2luY2UgJiYgcGF5bG9hZC5wcmVtaXVtX3NpbmNlKSBtZW1iZXIucHJlbWl1bVNpbmNlID0gRGF0ZS5wYXJzZShwYXlsb2FkLnByZW1pdW1fc2luY2UpXG4gIGlmIChwcm9wcy5jb21tdW5pY2F0aW9uRGlzYWJsZWRVbnRpbCAmJiBwYXlsb2FkLmNvbW11bmljYXRpb25fZGlzYWJsZWRfdW50aWwpXG4gICAgbWVtYmVyLmNvbW11bmljYXRpb25EaXNhYmxlZFVudGlsID0gRGF0ZS5wYXJzZShwYXlsb2FkLmNvbW11bmljYXRpb25fZGlzYWJsZWRfdW50aWwpXG4gIGlmIChwcm9wcy5hdmF0YXIgJiYgcGF5bG9hZC5hdmF0YXIpIG1lbWJlci5hdmF0YXIgPSBpY29uSGFzaFRvQmlnSW50KHBheWxvYWQuYXZhdGFyKVxuICBpZiAocHJvcHMuYmFubmVyICYmIHBheWxvYWQuYmFubmVyKSBtZW1iZXIuYmFubmVyID0gaWNvbkhhc2hUb0JpZ0ludChwYXlsb2FkLmJhbm5lcilcbiAgaWYgKHByb3BzLnBlcm1pc3Npb25zICYmIHBheWxvYWQucGVybWlzc2lvbnMpIG1lbWJlci5wZXJtaXNzaW9ucyA9IG5ldyBQZXJtaXNzaW9ucyhwYXlsb2FkLnBlcm1pc3Npb25zKVxuICBpZiAocHJvcHMudG9nZ2xlcykgbWVtYmVyLnRvZ2dsZXMgPSBuZXcgTWVtYmVyVG9nZ2xlcyhwYXlsb2FkKVxuICBpZiAocHJvcHMuYXZhdGFyRGVjb3JhdGlvbkRhdGEgJiYgcGF5bG9hZC5hdmF0YXJfZGVjb3JhdGlvbl9kYXRhKVxuICAgIG1lbWJlci5hdmF0YXJEZWNvcmF0aW9uRGF0YSA9IGJvdC50cmFuc2Zvcm1lcnMuYXZhdGFyRGVjb3JhdGlvbkRhdGEoYm90LCBwYXlsb2FkLmF2YXRhcl9kZWNvcmF0aW9uX2RhdGEpXG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMubWVtYmVyKGJvdCwgcGF5bG9hZCwgbWVtYmVyLCB7XG4gICAgZ3VpbGRJZDogZXh0cmE/Lmd1aWxkSWQgPyBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShleHRyYS5ndWlsZElkKSA6IHVuZGVmaW5lZCxcbiAgICB1c2VySWQ6IGV4dHJhPy51c2VySWQgPyBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShleHRyYS51c2VySWQpIDogdW5kZWZpbmVkLFxuICB9KVxufVxuIl0sIm5hbWVzIjpbImJhc2VNZW1iZXIiLCJ0cmFuc2Zvcm1NZW1iZXIiLCJ1bmRlZmluZWQiLCJkZWFmIiwidG9nZ2xlcyIsImhhcyIsIm11dGUiLCJwZW5kaW5nIiwiZmxhZ3MiLCJkaWRSZWpvaW4iLCJzdGFydGVkT25ib2FyZGluZyIsImJ5cGFzc2VzVmVyaWZpY2F0aW9uIiwiY29tcGxldGVkT25ib2FyZGluZyIsImJvdCIsInBheWxvYWQiLCJleHRyYSIsIm1lbWJlciIsIk9iamVjdCIsImNyZWF0ZSIsInByb3BzIiwidHJhbnNmb3JtZXJzIiwiZGVzaXJlZFByb3BlcnRpZXMiLCJpZCIsInVzZXJJZCIsInNub3dmbGFrZSIsImd1aWxkSWQiLCJ1c2VyIiwibmljayIsInJvbGVzIiwibWFwIiwiam9pbmVkQXQiLCJqb2luZWRfYXQiLCJEYXRlIiwicGFyc2UiLCJwcmVtaXVtU2luY2UiLCJwcmVtaXVtX3NpbmNlIiwiY29tbXVuaWNhdGlvbkRpc2FibGVkVW50aWwiLCJjb21tdW5pY2F0aW9uX2Rpc2FibGVkX3VudGlsIiwiYXZhdGFyIiwiaWNvbkhhc2hUb0JpZ0ludCIsImJhbm5lciIsInBlcm1pc3Npb25zIiwiUGVybWlzc2lvbnMiLCJNZW1iZXJUb2dnbGVzIiwiYXZhdGFyRGVjb3JhdGlvbkRhdGEiLCJhdmF0YXJfZGVjb3JhdGlvbl9kYXRhIiwiY3VzdG9taXplcnMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O1FBUWFBO2VBQUFBOztRQThCR0M7ZUFBQUE7Ozt1QkFyQ2lCO3dCQUdIOzZCQUNGO0FBR3JCLE1BQU1ELGFBQXFCO0lBQ2hDLDJFQUEyRTtJQUMzRSxHQUFJRSxTQUFTO0lBRWIsSUFBSUMsUUFBTztRQUNULE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQ0MsT0FBTyxFQUFFQyxJQUFJO0lBQzdCO0lBQ0EsSUFBSUMsUUFBTztRQUNULE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQ0YsT0FBTyxFQUFFQyxJQUFJO0lBQzdCO0lBQ0EsSUFBSUUsV0FBVTtRQUNaLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQ0gsT0FBTyxFQUFFQyxJQUFJO0lBQzdCO0lBQ0EsSUFBSUcsU0FBUTtRQUNWLE9BQU8sSUFBSSxDQUFDSixPQUFPLEVBQUVJLFNBQVM7SUFDaEM7SUFDQSxJQUFJQyxhQUFZO1FBQ2QsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDTCxPQUFPLEVBQUVLO0lBQ3pCO0lBQ0EsSUFBSUMscUJBQW9CO1FBQ3RCLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQ04sT0FBTyxFQUFFTTtJQUN6QjtJQUNBLElBQUlDLHdCQUF1QjtRQUN6QixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUNQLE9BQU8sRUFBRU87SUFDekI7SUFDQSxJQUFJQyx1QkFBc0I7UUFDeEIsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDUixPQUFPLEVBQUVRO0lBQ3pCO0FBQ0Y7QUFFTyxTQUFTWCxnQkFBZ0JZLEdBQVEsRUFBRUMsT0FBc0IsRUFBRUMsS0FBbUQ7SUFDbkgsTUFBTUMsU0FBOEZDLE9BQU9DLE1BQU0sQ0FBQ2xCO0lBQ2xILE1BQU1tQixRQUFRTixJQUFJTyxZQUFZLENBQUNDLGlCQUFpQixDQUFDTCxNQUFNO0lBRXZELElBQUlHLE1BQU1HLEVBQUUsSUFBSVAsT0FBT1EsUUFBUVAsT0FBT00sRUFBRSxHQUFHLE9BQU9QLE1BQU1RLE1BQU0sS0FBSyxXQUFXVixJQUFJTyxZQUFZLENBQUNJLFNBQVMsQ0FBQ1QsTUFBTVEsTUFBTSxJQUFJUixNQUFNUSxNQUFNO0lBQ3JJLElBQUlKLE1BQU1NLE9BQU8sSUFBSVYsT0FBT1UsU0FBU1QsT0FBT1MsT0FBTyxHQUFHLE9BQU9WLE1BQU1VLE9BQU8sS0FBSyxXQUFXWixJQUFJTyxZQUFZLENBQUNJLFNBQVMsQ0FBQ1QsTUFBTVUsT0FBTyxJQUFJVixNQUFNVSxPQUFPO0lBQ25KLElBQUlOLE1BQU1PLElBQUksSUFBSVosUUFBUVksSUFBSSxFQUFFVixPQUFPVSxJQUFJLEdBQUdiLElBQUlPLFlBQVksQ0FBQ00sSUFBSSxDQUFDYixLQUFLQyxRQUFRWSxJQUFJO0lBQ3JGLElBQUlQLE1BQU1RLElBQUksSUFBSWIsUUFBUWEsSUFBSSxFQUFFWCxPQUFPVyxJQUFJLEdBQUdiLFFBQVFhLElBQUk7SUFDMUQsSUFBSVIsTUFBTVMsS0FBSyxJQUFJZCxRQUFRYyxLQUFLLEVBQUVaLE9BQU9ZLEtBQUssR0FBR2QsUUFBUWMsS0FBSyxDQUFDQyxHQUFHLENBQUMsQ0FBQ1AsS0FBT1QsSUFBSU8sWUFBWSxDQUFDSSxTQUFTLENBQUNGO0lBQ3RHLElBQUlILE1BQU1XLFFBQVEsSUFBSWhCLFFBQVFpQixTQUFTLEVBQUVmLE9BQU9jLFFBQVEsR0FBR0UsS0FBS0MsS0FBSyxDQUFDbkIsUUFBUWlCLFNBQVM7SUFDdkYsSUFBSVosTUFBTWUsWUFBWSxJQUFJcEIsUUFBUXFCLGFBQWEsRUFBRW5CLE9BQU9rQixZQUFZLEdBQUdGLEtBQUtDLEtBQUssQ0FBQ25CLFFBQVFxQixhQUFhO0lBQ3ZHLElBQUloQixNQUFNaUIsMEJBQTBCLElBQUl0QixRQUFRdUIsNEJBQTRCLEVBQzFFckIsT0FBT29CLDBCQUEwQixHQUFHSixLQUFLQyxLQUFLLENBQUNuQixRQUFRdUIsNEJBQTRCO0lBQ3JGLElBQUlsQixNQUFNbUIsTUFBTSxJQUFJeEIsUUFBUXdCLE1BQU0sRUFBRXRCLE9BQU9zQixNQUFNLEdBQUdDLElBQUFBLHVCQUFnQixFQUFDekIsUUFBUXdCLE1BQU07SUFDbkYsSUFBSW5CLE1BQU1xQixNQUFNLElBQUkxQixRQUFRMEIsTUFBTSxFQUFFeEIsT0FBT3dCLE1BQU0sR0FBR0QsSUFBQUEsdUJBQWdCLEVBQUN6QixRQUFRMEIsTUFBTTtJQUNuRixJQUFJckIsTUFBTXNCLFdBQVcsSUFBSTNCLFFBQVEyQixXQUFXLEVBQUV6QixPQUFPeUIsV0FBVyxHQUFHLElBQUlDLHdCQUFXLENBQUM1QixRQUFRMkIsV0FBVztJQUN0RyxJQUFJdEIsTUFBTWYsT0FBTyxFQUFFWSxPQUFPWixPQUFPLEdBQUcsSUFBSXVDLHFCQUFhLENBQUM3QjtJQUN0RCxJQUFJSyxNQUFNeUIsb0JBQW9CLElBQUk5QixRQUFRK0Isc0JBQXNCLEVBQzlEN0IsT0FBTzRCLG9CQUFvQixHQUFHL0IsSUFBSU8sWUFBWSxDQUFDd0Isb0JBQW9CLENBQUMvQixLQUFLQyxRQUFRK0Isc0JBQXNCO0lBRXpHLE9BQU9oQyxJQUFJTyxZQUFZLENBQUMwQixXQUFXLENBQUM5QixNQUFNLENBQUNILEtBQUtDLFNBQVNFLFFBQVE7UUFDL0RTLFNBQVNWLE9BQU9VLFVBQVVaLElBQUlPLFlBQVksQ0FBQ0ksU0FBUyxDQUFDVCxNQUFNVSxPQUFPLElBQUl2QjtRQUN0RXFCLFFBQVFSLE9BQU9RLFNBQVNWLElBQUlPLFlBQVksQ0FBQ0ksU0FBUyxDQUFDVCxNQUFNUSxNQUFNLElBQUlyQjtJQUNyRTtBQUNGIn0=
@@ -147,89 +147,93 @@ const baseMessage = {
147
147
  else this.flags.remove(_types.MessageFlags.Urgent);
148
148
  }
149
149
  };
150
- function transformMessage(bot, payload) {
151
- const guildId = payload.message.guild_id ? bot.transformers.snowflake(payload.message.guild_id) : undefined;
152
- const userId = payload.message.author?.id ? bot.transformers.snowflake(payload.message.author.id) : undefined;
150
+ function transformMessage(bot, payload, extra) {
151
+ const guildId = payload.guild_id ? bot.transformers.snowflake(payload.guild_id) : undefined;
152
+ const userId = payload.author?.id ? bot.transformers.snowflake(payload.author.id) : undefined;
153
153
  const message = Object.create(baseMessage);
154
154
  message.bitfield = new _ToggleBitfield.ToggleBitfield();
155
- message.flags = new _ToggleBitfield.ToggleBitfield(payload.message.flags);
155
+ message.flags = new _ToggleBitfield.ToggleBitfield(payload.flags);
156
156
  const props = bot.transformers.desiredProperties.message;
157
- if (props.author && payload.message.author) message.author = bot.transformers.user(bot, payload.message.author);
158
- if (props.application && payload.message.application) message.application = bot.transformers.application(bot, {
159
- application: payload.message.application,
160
- shardId: payload.shardId
157
+ if (props.author && payload.author) message.author = bot.transformers.user(bot, payload.author);
158
+ if (props.application && payload.application) // @ts-expect-error TODO: Partials
159
+ message.application = bot.transformers.application(bot, payload.application, {
160
+ shardId: extra?.shardId
161
161
  });
162
- if (props.applicationId && payload.message.application_id) message.applicationId = bot.transformers.snowflake(payload.message.application_id);
163
- if (props.attachments && payload.message.attachments?.length) message.attachments = payload.message.attachments.map((attachment)=>bot.transformers.attachment(bot, attachment));
164
- if (props.channelId && payload.message.channel_id) message.channelId = bot.transformers.snowflake(payload.message.channel_id);
165
- if (props.components && payload.message.components?.length) message.components = payload.message.components.map((comp)=>bot.transformers.component(bot, comp));
166
- if (props.content) message.content = payload.message.content ?? EMPTY_STRING;
167
- if (props.editedTimestamp && payload.message.edited_timestamp) message.editedTimestamp = Date.parse(payload.message.edited_timestamp);
168
- if (props.embeds && payload.message.embeds?.length) message.embeds = payload.message.embeds.map((embed)=>bot.transformers.embed(bot, embed));
162
+ if (props.applicationId && payload.application_id) message.applicationId = bot.transformers.snowflake(payload.application_id);
163
+ if (props.attachments && payload.attachments?.length) message.attachments = payload.attachments.map((attachment)=>bot.transformers.attachment(bot, attachment));
164
+ if (props.channelId && payload.channel_id) message.channelId = bot.transformers.snowflake(payload.channel_id);
165
+ if (props.components && payload.components?.length) message.components = payload.components.map((comp)=>bot.transformers.component(bot, comp));
166
+ if (props.content) message.content = payload.content ?? EMPTY_STRING;
167
+ if (props.editedTimestamp && payload.edited_timestamp) message.editedTimestamp = Date.parse(payload.edited_timestamp);
168
+ if (props.embeds && payload.embeds?.length) message.embeds = payload.embeds.map((embed)=>bot.transformers.embed(bot, embed));
169
169
  if (props.guildId && guildId) message.guildId = guildId;
170
- if (props.id && payload.message.id) message.id = bot.transformers.snowflake(payload.message.id);
171
- if (props.interactionMetadata && payload.message.interaction_metadata) message.interactionMetadata = bot.transformers.messageInteractionMetadata(bot, payload.message.interaction_metadata);
172
- if (props.interaction && payload.message.interaction) {
170
+ if (props.id && payload.id) message.id = bot.transformers.snowflake(payload.id);
171
+ if (props.interactionMetadata && payload.interaction_metadata) message.interactionMetadata = bot.transformers.messageInteractionMetadata(bot, payload.interaction_metadata);
172
+ if (props.interaction && payload.interaction) {
173
173
  const interaction = {};
174
174
  const messageInteractionProps = bot.transformers.desiredProperties.messageInteraction;
175
175
  if (messageInteractionProps.id) {
176
- interaction.id = bot.transformers.snowflake(payload.message.interaction.id);
176
+ interaction.id = bot.transformers.snowflake(payload.interaction.id);
177
177
  }
178
- if (messageInteractionProps.member && payload.message.interaction.member) {
178
+ if (messageInteractionProps.member && payload.interaction.member) {
179
179
  // @ts-expect-error TODO: partial - check why this is partial and handle as needed
180
- interaction.member = bot.transformers.member(bot, payload.message.interaction.member, guildId, payload.message.interaction.user.id);
180
+ interaction.member = bot.transformers.member(bot, payload.interaction.member, {
181
+ guildId,
182
+ userId: payload.interaction.user.id
183
+ });
181
184
  }
182
185
  if (messageInteractionProps.name) {
183
- interaction.name = payload.message.interaction.name;
186
+ interaction.name = payload.interaction.name;
184
187
  }
185
188
  if (messageInteractionProps.type) {
186
- interaction.type = payload.message.interaction.type;
189
+ interaction.type = payload.interaction.type;
187
190
  }
188
191
  if (messageInteractionProps.user) {
189
- interaction.user = bot.transformers.user(bot, payload.message.interaction.user);
192
+ interaction.user = bot.transformers.user(bot, payload.interaction.user);
190
193
  }
191
194
  message.interaction = interaction;
192
195
  }
193
- if (props.member && guildId && userId && payload.message.member) // @ts-expect-error TODO: partial
194
- message.member = bot.transformers.member(bot, payload.message.member, guildId, userId);
195
- if (payload.message.mention_everyone) message.mentionEveryone = true;
196
- if (props.mentionedChannelIds && payload.message.mention_channels?.length) {
196
+ if (props.member && guildId && userId && payload.member) // @ts-expect-error TODO: partial
197
+ message.member = bot.transformers.member(bot, payload.member, {
198
+ guildId,
199
+ userId
200
+ });
201
+ if (payload.mention_everyone) message.mentionEveryone = true;
202
+ if (props.mentionedChannelIds && payload.mention_channels?.length) {
197
203
  message.mentionedChannelIds = [
198
204
  // Keep any ids tht discord sends
199
- ...(payload.message.mention_channels ?? []).map((m)=>bot.transformers.snowflake(m.id)),
205
+ ...(payload.mention_channels ?? []).map((m)=>bot.transformers.snowflake(m.id)),
200
206
  // Add any other ids that can be validated in a channel mention format
201
- ...(payload.message.content?.match(_constants.CHANNEL_MENTION_REGEX) ?? []).map((text)=>// converts the <#123> into 123
207
+ ...(payload.content?.match(_constants.CHANNEL_MENTION_REGEX) ?? []).map((text)=>// converts the <#123> into 123
202
208
  bot.transformers.snowflake(text.substring(2, text.length - 1)))
203
209
  ];
204
210
  }
205
- if (props.mentionedRoleIds && payload.message.mention_roles?.length) message.mentionedRoleIds = payload.message.mention_roles.map((id)=>bot.transformers.snowflake(id));
206
- if (props.mentions && payload.message.mentions?.length) message.mentions = payload.message.mentions.map((user)=>bot.transformers.user(bot, user));
207
- if (props.messageReference && payload.message.message_reference) {
211
+ if (props.mentionedRoleIds && payload.mention_roles?.length) message.mentionedRoleIds = payload.mention_roles.map((id)=>bot.transformers.snowflake(id));
212
+ if (props.mentions && payload.mentions?.length) message.mentions = payload.mentions.map((user)=>bot.transformers.user(bot, user));
213
+ if (props.messageReference && payload.message_reference) {
208
214
  const reference = {};
209
215
  const messageReferenceProps = bot.transformers.desiredProperties.messageReference;
210
- if (messageReferenceProps.channelId && payload.message.message_reference.channel_id) {
211
- reference.channelId = bot.transformers.snowflake(payload.message.message_reference.channel_id);
216
+ if (messageReferenceProps.channelId && payload.message_reference.channel_id) {
217
+ reference.channelId = bot.transformers.snowflake(payload.message_reference.channel_id);
212
218
  }
213
- if (messageReferenceProps.guildId && payload.message.message_reference.guild_id) {
214
- reference.guildId = bot.transformers.snowflake(payload.message.message_reference.guild_id);
219
+ if (messageReferenceProps.guildId && payload.message_reference.guild_id) {
220
+ reference.guildId = bot.transformers.snowflake(payload.message_reference.guild_id);
215
221
  }
216
- if (messageReferenceProps.messageId && payload.message.message_reference.message_id) {
217
- reference.messageId = bot.transformers.snowflake(payload.message.message_reference.message_id);
222
+ if (messageReferenceProps.messageId && payload.message_reference.message_id) {
223
+ reference.messageId = bot.transformers.snowflake(payload.message_reference.message_id);
218
224
  }
219
225
  message.messageReference = reference;
220
226
  }
221
- if (props.referencedMessage && payload.message.referenced_message) message.referencedMessage = bot.transformers.message(bot, {
222
- message: payload.message.referenced_message,
223
- shardId: payload.shardId
227
+ if (props.referencedMessage && payload.referenced_message) message.referencedMessage = bot.transformers.message(bot, payload.referenced_message, {
228
+ shardId: extra?.shardId
224
229
  });
225
- if (props.messageSnapshots && payload.message.message_snapshots) message.messageSnapshots = payload.message.message_snapshots.map((snap)=>bot.transformers.messageSnapshot(bot, {
226
- messageSnapshot: snap,
227
- shardId: payload.shardId
230
+ if (props.messageSnapshots && payload.message_snapshots) message.messageSnapshots = payload.message_snapshots.map((snap)=>bot.transformers.messageSnapshot(bot, snap, {
231
+ shardId: extra?.shardId
228
232
  }));
229
- if (props.nonce && payload.message.nonce) message.nonce = payload.message.nonce;
230
- if (payload.message.pinned) message.pinned = true;
231
- if (props.reactions && payload.message.reactions?.length) {
232
- message.reactions = payload.message.reactions.map((reaction)=>({
233
+ if (props.nonce && payload.nonce) message.nonce = payload.nonce;
234
+ if (payload.pinned) message.pinned = true;
235
+ if (props.reactions && payload.reactions?.length) {
236
+ message.reactions = payload.reactions.map((reaction)=>({
233
237
  me: reaction.me,
234
238
  meBurst: reaction.me_burst,
235
239
  count: reaction.count,
@@ -237,44 +241,43 @@ function transformMessage(bot, payload) {
237
241
  burst: reaction.count_details.burst,
238
242
  normal: reaction.count_details.normal
239
243
  },
244
+ // @ts-expect-error TODO: Deal with partials
240
245
  emoji: bot.transformers.emoji(bot, reaction.emoji),
241
246
  burstColors: reaction.burst_colors
242
247
  }));
243
248
  }
244
- if (props.stickerItems && payload.message.sticker_items?.length) message.stickerItems = payload.message.sticker_items.map((item)=>({
249
+ if (props.stickerItems && payload.sticker_items?.length) message.stickerItems = payload.sticker_items.map((item)=>({
245
250
  id: bot.transformers.snowflake(item.id),
246
251
  name: item.name,
247
252
  formatType: item.format_type
248
253
  }));
249
- if (payload.message.tts) message.tts = true;
250
- if (props.thread && payload.message.thread) message.thread = bot.transformers.channel(bot, {
251
- channel: payload.message.thread,
254
+ if (payload.tts) message.tts = true;
255
+ if (props.thread && payload.thread) message.thread = bot.transformers.channel(bot, payload.thread, {
252
256
  guildId
253
257
  });
254
- if (props.type) message.type = payload.message.type;
255
- if (props.webhookId && payload.message.webhook_id) message.webhookId = bot.transformers.snowflake(payload.message.webhook_id);
256
- if (props.poll && payload.message.poll) message.poll = bot.transformers.poll(bot, payload.message.poll);
257
- if (props.call && payload.message.call) message.call = bot.transformers.messageCall(bot, payload.message.call);
258
- return bot.transformers.customizers.message(bot, payload.message, message);
258
+ if (props.type) message.type = payload.type;
259
+ if (props.webhookId && payload.webhook_id) message.webhookId = bot.transformers.snowflake(payload.webhook_id);
260
+ if (props.poll && payload.poll) message.poll = bot.transformers.poll(bot, payload.poll);
261
+ if (props.call && payload.call) message.call = bot.transformers.messageCall(bot, payload.call);
262
+ return bot.transformers.customizers.message(bot, payload, message, extra);
259
263
  }
260
- function transformMessagePin(bot, payload) {
264
+ function transformMessagePin(bot, payload, extra) {
261
265
  const props = bot.transformers.desiredProperties.messagePin;
262
266
  const messagePin = {};
263
267
  if (props.pinnedAt && payload.pinned_at) messagePin.pinnedAt = Date.parse(payload.pinned_at);
264
- if (props.message && payload.message) messagePin.message = bot.transformers.message(bot, {
265
- message: payload.message,
266
- shardId: 0
268
+ if (props.message && payload.message) messagePin.message = bot.transformers.message(bot, payload.message, {
269
+ shardId: extra?.shardId
267
270
  });
268
- return bot.transformers.customizers.messagePin(bot, payload, messagePin);
271
+ return bot.transformers.customizers.messagePin(bot, payload, messagePin, extra);
269
272
  }
270
- function transformMessageSnapshot(bot, payload) {
273
+ function transformMessageSnapshot(bot, payload, extra) {
271
274
  const props = bot.transformers.desiredProperties.messageSnapshot;
272
275
  const messageSnapshot = {};
273
- if (props.message && payload.messageSnapshot.message) messageSnapshot.message = bot.transformers.message(bot, {
274
- message: payload.messageSnapshot.message,
275
- shardId: payload.shardId
276
+ if (props.message && payload.message) // @ts-expect-error TODO: Partials
277
+ messageSnapshot.message = bot.transformers.message(bot, payload.message, {
278
+ shardId: extra?.shardId
276
279
  });
277
- return bot.transformers.customizers.messageSnapshot(bot, payload.messageSnapshot, messageSnapshot);
280
+ return bot.transformers.customizers.messageSnapshot(bot, payload, messageSnapshot, extra);
278
281
  }
279
282
  function transformMessageInteractionMetadata(bot, payload) {
280
283
  const props = bot.transformers.desiredProperties.messageInteractionMetadata;
@@ -311,4 +314,4 @@ function transformMessageCall(bot, payload) {
311
314
  return bot.transformers.customizers.messageCall(bot, payload, call);
312
315
  }
313
316
 
314
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvbWVzc2FnZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICB0eXBlIERpc2NvcmRBcHBsaWNhdGlvbixcbiAgRGlzY29yZEFwcGxpY2F0aW9uSW50ZWdyYXRpb25UeXBlLFxuICB0eXBlIERpc2NvcmRNZXNzYWdlLFxuICB0eXBlIERpc2NvcmRNZXNzYWdlQ2FsbCxcbiAgdHlwZSBEaXNjb3JkTWVzc2FnZUludGVyYWN0aW9uTWV0YWRhdGEsXG4gIHR5cGUgRGlzY29yZE1lc3NhZ2VQaW4sXG4gIHR5cGUgRGlzY29yZE1lc3NhZ2VTbmFwc2hvdCxcbiAgTWVzc2FnZUZsYWdzLFxufSBmcm9tICdAZGlzY29yZGVuby90eXBlcydcbmltcG9ydCB7IENIQU5ORUxfTUVOVElPTl9SRUdFWCB9IGZyb20gJy4uL2NvbnN0YW50cy5qcydcbmltcG9ydCB7XG4gIHR5cGUgSW50ZXJuYWxCb3QsXG4gIHR5cGUgTWVzc2FnZSxcbiAgdHlwZSBNZXNzYWdlQ2FsbCxcbiAgdHlwZSBNZXNzYWdlSW50ZXJhY3Rpb25NZXRhZGF0YSxcbiAgdHlwZSBNZXNzYWdlUGluLFxuICB0eXBlIE1lc3NhZ2VTbmFwc2hvdCxcbiAgc25vd2ZsYWtlVG9UaW1lc3RhbXAsXG59IGZyb20gJy4uL2luZGV4LmpzJ1xuaW1wb3J0IHsgVG9nZ2xlQml0ZmllbGQgfSBmcm9tICcuL3RvZ2dsZXMvVG9nZ2xlQml0ZmllbGQuanMnXG5cbmNvbnN0IEVNUFRZX1NUUklORyA9ICcnXG5cbmV4cG9ydCBjb25zdCBiYXNlTWVzc2FnZTogSW50ZXJuYWxCb3RbJ3RyYW5zZm9ybWVycyddWyckaW5mZXJyZWRUeXBlcyddWydtZXNzYWdlJ10gPSB7XG4gIC8vIFRoaXMgYWxsb3dzIHR5cGVzY3JpcHQgdG8gc3RpbGwgY2hlY2sgZm9yIHR5cGUgZXJyb3JzIG9uIGZ1bmN0aW9ucyBiZWxvd1xuICAuLi4odW5kZWZpbmVkIGFzIHVua25vd24gYXMgSW50ZXJuYWxCb3RbJ3RyYW5zZm9ybWVycyddWyckaW5mZXJyZWRUeXBlcyddWydtZXNzYWdlJ10pLFxuXG4gIGdldCBjcm9zc3Bvc3RlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5mbGFncz8uY29udGFpbnMoTWVzc2FnZUZsYWdzLkNyb3NzcG9zdGVkKSA/PyBmYWxzZVxuICB9LFxuICBzZXQgY3Jvc3Nwb3N0ZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuZmxhZ3MpIHJldHVyblxuICAgIGlmICh2YWx1ZSkgdGhpcy5mbGFncy5hZGQoTWVzc2FnZUZsYWdzLkNyb3NzcG9zdGVkKVxuICAgIGVsc2UgdGhpcy5mbGFncy5yZW1vdmUoTWVzc2FnZUZsYWdzLkNyb3NzcG9zdGVkKVxuICB9LFxuICBnZXQgZXBoZW1lcmFsKCkge1xuICAgIHJldHVybiB0aGlzLmZsYWdzPy5jb250YWlucyhNZXNzYWdlRmxhZ3MuRXBoZW1lcmFsKSA/PyBmYWxzZVxuICB9LFxuICBzZXQgZXBoZW1lcmFsKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKCF0aGlzLmZsYWdzKSByZXR1cm5cbiAgICBpZiAodmFsdWUpIHRoaXMuZmxhZ3MuYWRkKE1lc3NhZ2VGbGFncy5FcGhlbWVyYWwpXG4gICAgZWxzZSB0aGlzLmZsYWdzLnJlbW92ZShNZXNzYWdlRmxhZ3MuRXBoZW1lcmFsKVxuICB9LFxuICBnZXQgZmFpbGVkVG9NZW50aW9uU29tZVJvbGVzSW5UaHJlYWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmxhZ3M/LmNvbnRhaW5zKE1lc3NhZ2VGbGFncy5GYWlsZWRUb01lbnRpb25Tb21lUm9sZXNJblRocmVhZCkgPz8gZmFsc2VcbiAgfSxcbiAgc2V0IGZhaWxlZFRvTWVudGlvblNvbWVSb2xlc0luVGhyZWFkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKCF0aGlzLmZsYWdzKSByZXR1cm5cbiAgICBpZiAodmFsdWUpIHRoaXMuZmxhZ3MuYWRkKE1lc3NhZ2VGbGFncy5GYWlsZWRUb01lbnRpb25Tb21lUm9sZXNJblRocmVhZClcbiAgICBlbHNlIHRoaXMuZmxhZ3MucmVtb3ZlKE1lc3NhZ2VGbGFncy5GYWlsZWRUb01lbnRpb25Tb21lUm9sZXNJblRocmVhZClcbiAgfSxcbiAgZ2V0IGhhc1RocmVhZCgpIHtcbiAgICByZXR1cm4gdGhpcy5mbGFncz8uY29udGFpbnMoTWVzc2FnZUZsYWdzLkhhc1RocmVhZCkgPz8gZmFsc2VcbiAgfSxcbiAgc2V0IGhhc1RocmVhZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICghdGhpcy5mbGFncykgcmV0dXJuXG4gICAgaWYgKHZhbHVlKSB0aGlzLmZsYWdzLmFkZChNZXNzYWdlRmxhZ3MuSGFzVGhyZWFkKVxuICAgIGVsc2UgdGhpcy5mbGFncy5yZW1vdmUoTWVzc2FnZUZsYWdzLkhhc1RocmVhZClcbiAgfSxcbiAgZ2V0IGlzQ3Jvc3Nwb3N0KCkge1xuICAgIHJldHVybiB0aGlzLmZsYWdzPy5jb250YWlucyhNZXNzYWdlRmxhZ3MuSXNDcm9zc3Bvc3QpID8/IGZhbHNlXG4gIH0sXG4gIHNldCBpc0Nyb3NzcG9zdCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICghdGhpcy5mbGFncykgcmV0dXJuXG4gICAgaWYgKHZhbHVlKSB0aGlzLmZsYWdzLmFkZChNZXNzYWdlRmxhZ3MuSXNDcm9zc3Bvc3QpXG4gICAgZWxzZSB0aGlzLmZsYWdzLnJlbW92ZShNZXNzYWdlRmxhZ3MuSXNDcm9zc3Bvc3QpXG4gIH0sXG4gIGdldCBsb2FkaW5nKCkge1xuICAgIHJldHVybiB0aGlzLmZsYWdzPy5jb250YWlucyhNZXNzYWdlRmxhZ3MuTG9hZGluZykgPz8gZmFsc2VcbiAgfSxcbiAgc2V0IGxvYWRpbmcodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuZmxhZ3MpIHJldHVyblxuICAgIGlmICh2YWx1ZSkgdGhpcy5mbGFncy5hZGQoTWVzc2FnZUZsYWdzLkxvYWRpbmcpXG4gICAgZWxzZSB0aGlzLmZsYWdzLnJlbW92ZShNZXNzYWdlRmxhZ3MuTG9hZGluZylcbiAgfSxcbiAgZ2V0IG1lbnRpb25lZFVzZXJJZHMoKSB7XG4gICAgcmV0dXJuIHRoaXMubWVudGlvbnM/Lm1hcCgodXNlcikgPT4gdXNlci5pZCkgPz8gW11cbiAgfSxcbiAgZ2V0IG1lbnRpb25FdmVyeW9uZSgpIHtcbiAgICByZXR1cm4gdGhpcy5iaXRmaWVsZD8uY29udGFpbnMoMikgPz8gZmFsc2VcbiAgfSxcbiAgc2V0IG1lbnRpb25FdmVyeW9uZSh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICghdGhpcy5iaXRmaWVsZCkgcmV0dXJuXG4gICAgaWYgKHZhbHVlKSB0aGlzLmJpdGZpZWxkLmFkZCgyKVxuICAgIGVsc2UgdGhpcy5iaXRmaWVsZC5yZW1vdmUoMilcbiAgfSxcbiAgZ2V0IHBpbm5lZCgpIHtcbiAgICByZXR1cm4gdGhpcy5iaXRmaWVsZD8uY29udGFpbnMoMykgPz8gZmFsc2VcbiAgfSxcbiAgc2V0IHBpbm5lZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICghdGhpcy5iaXRmaWVsZCkgcmV0dXJuXG4gICAgaWYgKHZhbHVlKSB0aGlzLmJpdGZpZWxkLmFkZCgzKVxuICAgIGVsc2UgdGhpcy5iaXRmaWVsZC5yZW1vdmUoMylcbiAgfSxcbiAgZ2V0IHNvdXJjZU1lc3NhZ2VEZWxldGVkKCkge1xuICAgIHJldHVybiB0aGlzLmZsYWdzPy5jb250YWlucyhNZXNzYWdlRmxhZ3MuU291cmNlTWVzc2FnZURlbGV0ZWQpID8/IGZhbHNlXG4gIH0sXG4gIHNldCBzb3VyY2VNZXNzYWdlRGVsZXRlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICghdGhpcy5mbGFncykgcmV0dXJuXG4gICAgaWYgKHZhbHVlKSB0aGlzLmZsYWdzLmFkZChNZXNzYWdlRmxhZ3MuU291cmNlTWVzc2FnZURlbGV0ZWQpXG4gICAgZWxzZSB0aGlzLmZsYWdzLnJlbW92ZShNZXNzYWdlRmxhZ3MuU291cmNlTWVzc2FnZURlbGV0ZWQpXG4gIH0sXG4gIGdldCBzdXBwcmVzc0VtYmVkcygpIHtcbiAgICByZXR1cm4gdGhpcy5mbGFncz8uY29udGFpbnMoTWVzc2FnZUZsYWdzLlN1cHByZXNzRW1iZWRzKSA/PyBmYWxzZVxuICB9LFxuICBzZXQgc3VwcHJlc3NFbWJlZHModmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuZmxhZ3MpIHJldHVyblxuICAgIGlmICh2YWx1ZSkgdGhpcy5mbGFncy5hZGQoTWVzc2FnZUZsYWdzLlN1cHByZXNzRW1iZWRzKVxuICAgIGVsc2UgdGhpcy5mbGFncy5yZW1vdmUoTWVzc2FnZUZsYWdzLlN1cHByZXNzRW1iZWRzKVxuICB9LFxuICBnZXQgc3VwcHJlc3NOb3RpZmljYXRpb25zKCkge1xuICAgIHJldHVybiB0aGlzLmZsYWdzPy5jb250YWlucyhNZXNzYWdlRmxhZ3MuU3VwcHJlc3NOb3RpZmljYXRpb25zKSA/PyBmYWxzZVxuICB9LFxuICBzZXQgc3VwcHJlc3NOb3RpZmljYXRpb25zKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKCF0aGlzLmZsYWdzKSByZXR1cm5cbiAgICBpZiAodmFsdWUpIHRoaXMuZmxhZ3MuYWRkKE1lc3NhZ2VGbGFncy5TdXBwcmVzc05vdGlmaWNhdGlvbnMpXG4gICAgZWxzZSB0aGlzLmZsYWdzLnJlbW92ZShNZXNzYWdlRmxhZ3MuU3VwcHJlc3NOb3RpZmljYXRpb25zKVxuICB9LFxuICBnZXQgdGltZXN0YW1wKCkge1xuICAgIHJldHVybiB0aGlzLmlkID8gc25vd2ZsYWtlVG9UaW1lc3RhbXAodGhpcy5pZCkgOiAwXG4gIH0sXG4gIGdldCB0dHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuYml0ZmllbGQ/LmNvbnRhaW5zKDEpID8/IGZhbHNlXG4gIH0sXG4gIHNldCB0dHModmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuYml0ZmllbGQpIHJldHVyblxuICAgIGlmICh2YWx1ZSkgdGhpcy5iaXRmaWVsZC5hZGQoMSlcbiAgICBlbHNlIHRoaXMuYml0ZmllbGQucmVtb3ZlKDEpXG4gIH0sXG4gIGdldCB1cmdlbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmxhZ3M/LmNvbnRhaW5zKE1lc3NhZ2VGbGFncy5VcmdlbnQpID8/IGZhbHNlXG4gIH0sXG4gIHNldCB1cmdlbnQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuZmxhZ3MpIHJldHVyblxuICAgIGlmICh2YWx1ZSkgdGhpcy5mbGFncy5hZGQoTWVzc2FnZUZsYWdzLlVyZ2VudClcbiAgICBlbHNlIHRoaXMuZmxhZ3MucmVtb3ZlKE1lc3NhZ2VGbGFncy5VcmdlbnQpXG4gIH0sXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1NZXNzYWdlKFxuICBib3Q6IEludGVybmFsQm90LFxuICBwYXlsb2FkOiB7IG1lc3NhZ2U6IERpc2NvcmRNZXNzYWdlOyBzaGFyZElkOiBudW1iZXIgfSxcbik6IHR5cGVvZiBib3QudHJhbnNmb3JtZXJzLiRpbmZlcnJlZFR5cGVzLm1lc3NhZ2Uge1xuICBjb25zdCBndWlsZElkID0gcGF5bG9hZC5tZXNzYWdlLmd1aWxkX2lkID8gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5tZXNzYWdlLmd1aWxkX2lkKSA6IHVuZGVmaW5lZFxuICBjb25zdCB1c2VySWQgPSBwYXlsb2FkLm1lc3NhZ2UuYXV0aG9yPy5pZCA/IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQubWVzc2FnZS5hdXRob3IuaWQpIDogdW5kZWZpbmVkXG5cbiAgY29uc3QgbWVzc2FnZTogTWVzc2FnZSA9IE9iamVjdC5jcmVhdGUoYmFzZU1lc3NhZ2UpXG4gIG1lc3NhZ2UuYml0ZmllbGQgPSBuZXcgVG9nZ2xlQml0ZmllbGQoKVxuICBtZXNzYWdlLmZsYWdzID0gbmV3IFRvZ2dsZUJpdGZpZWxkKHBheWxvYWQubWVzc2FnZS5mbGFncylcblxuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMubWVzc2FnZVxuXG4gIGlmIChwcm9wcy5hdXRob3IgJiYgcGF5bG9hZC5tZXNzYWdlLmF1dGhvcikgbWVzc2FnZS5hdXRob3IgPSBib3QudHJhbnNmb3JtZXJzLnVzZXIoYm90LCBwYXlsb2FkLm1lc3NhZ2UuYXV0aG9yKVxuICBpZiAocHJvcHMuYXBwbGljYXRpb24gJiYgcGF5bG9hZC5tZXNzYWdlLmFwcGxpY2F0aW9uKVxuICAgIG1lc3NhZ2UuYXBwbGljYXRpb24gPSBib3QudHJhbnNmb3JtZXJzLmFwcGxpY2F0aW9uKGJvdCwge1xuICAgICAgYXBwbGljYXRpb246IHBheWxvYWQubWVzc2FnZS5hcHBsaWNhdGlvbiBhcyBEaXNjb3JkQXBwbGljYXRpb24sXG4gICAgICBzaGFyZElkOiBwYXlsb2FkLnNoYXJkSWQsXG4gICAgfSlcbiAgaWYgKHByb3BzLmFwcGxpY2F0aW9uSWQgJiYgcGF5bG9hZC5tZXNzYWdlLmFwcGxpY2F0aW9uX2lkKSBtZXNzYWdlLmFwcGxpY2F0aW9uSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLm1lc3NhZ2UuYXBwbGljYXRpb25faWQpXG4gIGlmIChwcm9wcy5hdHRhY2htZW50cyAmJiBwYXlsb2FkLm1lc3NhZ2UuYXR0YWNobWVudHM/Lmxlbmd0aClcbiAgICBtZXNzYWdlLmF0dGFjaG1lbnRzID0gcGF5bG9hZC5tZXNzYWdlLmF0dGFjaG1lbnRzLm1hcCgoYXR0YWNobWVudCkgPT4gYm90LnRyYW5zZm9ybWVycy5hdHRhY2htZW50KGJvdCwgYXR0YWNobWVudCkpXG4gIGlmIChwcm9wcy5jaGFubmVsSWQgJiYgcGF5bG9hZC5tZXNzYWdlLmNoYW5uZWxfaWQpIG1lc3NhZ2UuY2hhbm5lbElkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5tZXNzYWdlLmNoYW5uZWxfaWQpXG4gIGlmIChwcm9wcy5jb21wb25lbnRzICYmIHBheWxvYWQubWVzc2FnZS5jb21wb25lbnRzPy5sZW5ndGgpXG4gICAgbWVzc2FnZS5jb21wb25lbnRzID0gcGF5bG9hZC5tZXNzYWdlLmNvbXBvbmVudHMubWFwKChjb21wKSA9PiBib3QudHJhbnNmb3JtZXJzLmNvbXBvbmVudChib3QsIGNvbXApKVxuICBpZiAocHJvcHMuY29udGVudCkgbWVzc2FnZS5jb250ZW50ID0gcGF5bG9hZC5tZXNzYWdlLmNvbnRlbnQgPz8gRU1QVFlfU1RSSU5HXG4gIGlmIChwcm9wcy5lZGl0ZWRUaW1lc3RhbXAgJiYgcGF5bG9hZC5tZXNzYWdlLmVkaXRlZF90aW1lc3RhbXApIG1lc3NhZ2UuZWRpdGVkVGltZXN0YW1wID0gRGF0ZS5wYXJzZShwYXlsb2FkLm1lc3NhZ2UuZWRpdGVkX3RpbWVzdGFtcClcbiAgaWYgKHByb3BzLmVtYmVkcyAmJiBwYXlsb2FkLm1lc3NhZ2UuZW1iZWRzPy5sZW5ndGgpIG1lc3NhZ2UuZW1iZWRzID0gcGF5bG9hZC5tZXNzYWdlLmVtYmVkcy5tYXAoKGVtYmVkKSA9PiBib3QudHJhbnNmb3JtZXJzLmVtYmVkKGJvdCwgZW1iZWQpKVxuICBpZiAocHJvcHMuZ3VpbGRJZCAmJiBndWlsZElkKSBtZXNzYWdlLmd1aWxkSWQgPSBndWlsZElkXG4gIGlmIChwcm9wcy5pZCAmJiBwYXlsb2FkLm1lc3NhZ2UuaWQpIG1lc3NhZ2UuaWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLm1lc3NhZ2UuaWQpXG4gIGlmIChwcm9wcy5pbnRlcmFjdGlvbk1ldGFkYXRhICYmIHBheWxvYWQubWVzc2FnZS5pbnRlcmFjdGlvbl9tZXRhZGF0YSlcbiAgICBtZXNzYWdlLmludGVyYWN0aW9uTWV0YWRhdGEgPSBib3QudHJhbnNmb3JtZXJzLm1lc3NhZ2VJbnRlcmFjdGlvbk1ldGFkYXRhKGJvdCwgcGF5bG9hZC5tZXNzYWdlLmludGVyYWN0aW9uX21ldGFkYXRhKVxuICBpZiAocHJvcHMuaW50ZXJhY3Rpb24gJiYgcGF5bG9hZC5tZXNzYWdlLmludGVyYWN0aW9uKSB7XG4gICAgY29uc3QgaW50ZXJhY3Rpb24gPSB7fSBhcyBOb25OdWxsYWJsZTxNZXNzYWdlWydpbnRlcmFjdGlvbiddPlxuICAgIGNvbnN0IG1lc3NhZ2VJbnRlcmFjdGlvblByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5tZXNzYWdlSW50ZXJhY3Rpb25cblxuICAgIGlmIChtZXNzYWdlSW50ZXJhY3Rpb25Qcm9wcy5pZCkge1xuICAgICAgaW50ZXJhY3Rpb24uaWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLm1lc3NhZ2UuaW50ZXJhY3Rpb24uaWQpXG4gICAgfVxuICAgIGlmIChtZXNzYWdlSW50ZXJhY3Rpb25Qcm9wcy5tZW1iZXIgJiYgcGF5bG9hZC5tZXNzYWdlLmludGVyYWN0aW9uLm1lbWJlcikge1xuICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciBUT0RPOiBwYXJ0aWFsIC0gY2hlY2sgd2h5IHRoaXMgaXMgcGFydGlhbCBhbmQgaGFuZGxlIGFzIG5lZWRlZFxuICAgICAgaW50ZXJhY3Rpb24ubWVtYmVyID0gYm90LnRyYW5zZm9ybWVycy5tZW1iZXIoYm90LCBwYXlsb2FkLm1lc3NhZ2UuaW50ZXJhY3Rpb24ubWVtYmVyLCBndWlsZElkLCBwYXlsb2FkLm1lc3NhZ2UuaW50ZXJhY3Rpb24udXNlci5pZClcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2VJbnRlcmFjdGlvblByb3BzLm5hbWUpIHtcbiAgICAgIGludGVyYWN0aW9uLm5hbWUgPSBwYXlsb2FkLm1lc3NhZ2UuaW50ZXJhY3Rpb24ubmFtZVxuICAgIH1cbiAgICBpZiAobWVzc2FnZUludGVyYWN0aW9uUHJvcHMudHlwZSkge1xuICAgICAgaW50ZXJhY3Rpb24udHlwZSA9IHBheWxvYWQubWVzc2FnZS5pbnRlcmFjdGlvbi50eXBlXG4gICAgfVxuICAgIGlmIChtZXNzYWdlSW50ZXJhY3Rpb25Qcm9wcy51c2VyKSB7XG4gICAgICBpbnRlcmFjdGlvbi51c2VyID0gYm90LnRyYW5zZm9ybWVycy51c2VyKGJvdCwgcGF5bG9hZC5tZXNzYWdlLmludGVyYWN0aW9uLnVzZXIpXG4gICAgfVxuXG4gICAgbWVzc2FnZS5pbnRlcmFjdGlvbiA9IGludGVyYWN0aW9uXG4gIH1cbiAgaWYgKHByb3BzLm1lbWJlciAmJiBndWlsZElkICYmIHVzZXJJZCAmJiBwYXlsb2FkLm1lc3NhZ2UubWVtYmVyKVxuICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgVE9ETzogcGFydGlhbFxuICAgIG1lc3NhZ2UubWVtYmVyID0gYm90LnRyYW5zZm9ybWVycy5tZW1iZXIoYm90LCBwYXlsb2FkLm1lc3NhZ2UubWVtYmVyLCBndWlsZElkLCB1c2VySWQpXG4gIGlmIChwYXlsb2FkLm1lc3NhZ2UubWVudGlvbl9ldmVyeW9uZSkgbWVzc2FnZS5tZW50aW9uRXZlcnlvbmUgPSB0cnVlXG4gIGlmIChwcm9wcy5tZW50aW9uZWRDaGFubmVsSWRzICYmIHBheWxvYWQubWVzc2FnZS5tZW50aW9uX2NoYW5uZWxzPy5sZW5ndGgpIHtcbiAgICBtZXNzYWdlLm1lbnRpb25lZENoYW5uZWxJZHMgPSBbXG4gICAgICAvLyBLZWVwIGFueSBpZHMgdGh0IGRpc2NvcmQgc2VuZHNcbiAgICAgIC4uLihwYXlsb2FkLm1lc3NhZ2UubWVudGlvbl9jaGFubmVscyA/PyBbXSkubWFwKChtKSA9PiBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShtLmlkKSksXG4gICAgICAvLyBBZGQgYW55IG90aGVyIGlkcyB0aGF0IGNhbiBiZSB2YWxpZGF0ZWQgaW4gYSBjaGFubmVsIG1lbnRpb24gZm9ybWF0XG4gICAgICAuLi4ocGF5bG9hZC5tZXNzYWdlLmNvbnRlbnQ/Lm1hdGNoKENIQU5ORUxfTUVOVElPTl9SRUdFWCkgPz8gW10pLm1hcCgodGV4dCkgPT5cbiAgICAgICAgLy8gY29udmVydHMgdGhlIDwjMTIzPiBpbnRvIDEyM1xuICAgICAgICBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZSh0ZXh0LnN1YnN0cmluZygyLCB0ZXh0Lmxlbmd0aCAtIDEpKSxcbiAgICAgICksXG4gICAgXVxuICB9XG4gIGlmIChwcm9wcy5tZW50aW9uZWRSb2xlSWRzICYmIHBheWxvYWQubWVzc2FnZS5tZW50aW9uX3JvbGVzPy5sZW5ndGgpXG4gICAgbWVzc2FnZS5tZW50aW9uZWRSb2xlSWRzID0gcGF5bG9hZC5tZXNzYWdlLm1lbnRpb25fcm9sZXMubWFwKChpZCkgPT4gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UoaWQpKVxuICBpZiAocHJvcHMubWVudGlvbnMgJiYgcGF5bG9hZC5tZXNzYWdlLm1lbnRpb25zPy5sZW5ndGgpIG1lc3NhZ2UubWVudGlvbnMgPSBwYXlsb2FkLm1lc3NhZ2UubWVudGlvbnMubWFwKCh1c2VyKSA9PiBib3QudHJhbnNmb3JtZXJzLnVzZXIoYm90LCB1c2VyKSlcbiAgaWYgKHByb3BzLm1lc3NhZ2VSZWZlcmVuY2UgJiYgcGF5bG9hZC5tZXNzYWdlLm1lc3NhZ2VfcmVmZXJlbmNlKSB7XG4gICAgY29uc3QgcmVmZXJlbmNlID0ge30gYXMgTm9uTnVsbGFibGU8TWVzc2FnZVsnbWVzc2FnZVJlZmVyZW5jZSddPlxuICAgIGNvbnN0IG1lc3NhZ2VSZWZlcmVuY2VQcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMubWVzc2FnZVJlZmVyZW5jZVxuXG4gICAgaWYgKG1lc3NhZ2VSZWZlcmVuY2VQcm9wcy5jaGFubmVsSWQgJiYgcGF5bG9hZC5tZXNzYWdlLm1lc3NhZ2VfcmVmZXJlbmNlLmNoYW5uZWxfaWQpIHtcbiAgICAgIHJlZmVyZW5jZS5jaGFubmVsSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLm1lc3NhZ2UubWVzc2FnZV9yZWZlcmVuY2UuY2hhbm5lbF9pZClcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2VSZWZlcmVuY2VQcm9wcy5ndWlsZElkICYmIHBheWxvYWQubWVzc2FnZS5tZXNzYWdlX3JlZmVyZW5jZS5ndWlsZF9pZCkge1xuICAgICAgcmVmZXJlbmNlLmd1aWxkSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLm1lc3NhZ2UubWVzc2FnZV9yZWZlcmVuY2UuZ3VpbGRfaWQpXG4gICAgfVxuICAgIGlmIChtZXNzYWdlUmVmZXJlbmNlUHJvcHMubWVzc2FnZUlkICYmIHBheWxvYWQubWVzc2FnZS5tZXNzYWdlX3JlZmVyZW5jZS5tZXNzYWdlX2lkKSB7XG4gICAgICByZWZlcmVuY2UubWVzc2FnZUlkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5tZXNzYWdlLm1lc3NhZ2VfcmVmZXJlbmNlLm1lc3NhZ2VfaWQpXG4gICAgfVxuXG4gICAgbWVzc2FnZS5tZXNzYWdlUmVmZXJlbmNlID0gcmVmZXJlbmNlXG4gIH1cbiAgaWYgKHByb3BzLnJlZmVyZW5jZWRNZXNzYWdlICYmIHBheWxvYWQubWVzc2FnZS5yZWZlcmVuY2VkX21lc3NhZ2UpXG4gICAgbWVzc2FnZS5yZWZlcmVuY2VkTWVzc2FnZSA9IGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZShib3QsIHsgbWVzc2FnZTogcGF5bG9hZC5tZXNzYWdlLnJlZmVyZW5jZWRfbWVzc2FnZSwgc2hhcmRJZDogcGF5bG9hZC5zaGFyZElkIH0pXG4gIGlmIChwcm9wcy5tZXNzYWdlU25hcHNob3RzICYmIHBheWxvYWQubWVzc2FnZS5tZXNzYWdlX3NuYXBzaG90cylcbiAgICBtZXNzYWdlLm1lc3NhZ2VTbmFwc2hvdHMgPSBwYXlsb2FkLm1lc3NhZ2UubWVzc2FnZV9zbmFwc2hvdHMubWFwKChzbmFwKSA9PlxuICAgICAgYm90LnRyYW5zZm9ybWVycy5tZXNzYWdlU25hcHNob3QoYm90LCB7IG1lc3NhZ2VTbmFwc2hvdDogc25hcCwgc2hhcmRJZDogcGF5bG9hZC5zaGFyZElkIH0pLFxuICAgIClcbiAgaWYgKHByb3BzLm5vbmNlICYmIHBheWxvYWQubWVzc2FnZS5ub25jZSkgbWVzc2FnZS5ub25jZSA9IHBheWxvYWQubWVzc2FnZS5ub25jZVxuICBpZiAocGF5bG9hZC5tZXNzYWdlLnBpbm5lZCkgbWVzc2FnZS5waW5uZWQgPSB0cnVlXG4gIGlmIChwcm9wcy5yZWFjdGlvbnMgJiYgcGF5bG9hZC5tZXNzYWdlLnJlYWN0aW9ucz8ubGVuZ3RoKSB7XG4gICAgbWVzc2FnZS5yZWFjdGlvbnMgPSBwYXlsb2FkLm1lc3NhZ2UucmVhY3Rpb25zLm1hcCgocmVhY3Rpb24pID0+ICh7XG4gICAgICBtZTogcmVhY3Rpb24ubWUsXG4gICAgICBtZUJ1cnN0OiByZWFjdGlvbi5tZV9idXJzdCxcbiAgICAgIGNvdW50OiByZWFjdGlvbi5jb3VudCxcbiAgICAgIGNvdW50RGV0YWlsczoge1xuICAgICAgICBidXJzdDogcmVhY3Rpb24uY291bnRfZGV0YWlscy5idXJzdCxcbiAgICAgICAgbm9ybWFsOiByZWFjdGlvbi5jb3VudF9kZXRhaWxzLm5vcm1hbCxcbiAgICAgIH0sXG4gICAgICBlbW9qaTogYm90LnRyYW5zZm9ybWVycy5lbW9qaShib3QsIHJlYWN0aW9uLmVtb2ppKSxcbiAgICAgIGJ1cnN0Q29sb3JzOiByZWFjdGlvbi5idXJzdF9jb2xvcnMsXG4gICAgfSkpXG4gIH1cbiAgaWYgKHByb3BzLnN0aWNrZXJJdGVtcyAmJiBwYXlsb2FkLm1lc3NhZ2Uuc3RpY2tlcl9pdGVtcz8ubGVuZ3RoKVxuICAgIG1lc3NhZ2Uuc3RpY2tlckl0ZW1zID0gcGF5bG9hZC5tZXNzYWdlLnN0aWNrZXJfaXRlbXMubWFwKChpdGVtKSA9PiAoe1xuICAgICAgaWQ6IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKGl0ZW0uaWQpLFxuICAgICAgbmFtZTogaXRlbS5uYW1lLFxuICAgICAgZm9ybWF0VHlwZTogaXRlbS5mb3JtYXRfdHlwZSxcbiAgICB9KSlcbiAgaWYgKHBheWxvYWQubWVzc2FnZS50dHMpIG1lc3NhZ2UudHRzID0gdHJ1ZVxuICBpZiAocHJvcHMudGhyZWFkICYmIHBheWxvYWQubWVzc2FnZS50aHJlYWQpIG1lc3NhZ2UudGhyZWFkID0gYm90LnRyYW5zZm9ybWVycy5jaGFubmVsKGJvdCwgeyBjaGFubmVsOiBwYXlsb2FkLm1lc3NhZ2UudGhyZWFkLCBndWlsZElkIH0pXG4gIGlmIChwcm9wcy50eXBlKSBtZXNzYWdlLnR5cGUgPSBwYXlsb2FkLm1lc3NhZ2UudHlwZVxuICBpZiAocHJvcHMud2ViaG9va0lkICYmIHBheWxvYWQubWVzc2FnZS53ZWJob29rX2lkKSBtZXNzYWdlLndlYmhvb2tJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQubWVzc2FnZS53ZWJob29rX2lkKVxuICBpZiAocHJvcHMucG9sbCAmJiBwYXlsb2FkLm1lc3NhZ2UucG9sbCkgbWVzc2FnZS5wb2xsID0gYm90LnRyYW5zZm9ybWVycy5wb2xsKGJvdCwgcGF5bG9hZC5tZXNzYWdlLnBvbGwpXG4gIGlmIChwcm9wcy5jYWxsICYmIHBheWxvYWQubWVzc2FnZS5jYWxsKSBtZXNzYWdlLmNhbGwgPSBib3QudHJhbnNmb3JtZXJzLm1lc3NhZ2VDYWxsKGJvdCwgcGF5bG9hZC5tZXNzYWdlLmNhbGwpXG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMubWVzc2FnZShib3QsIHBheWxvYWQubWVzc2FnZSwgbWVzc2FnZSlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybU1lc3NhZ2VQaW4oYm90OiBJbnRlcm5hbEJvdCwgcGF5bG9hZDogRGlzY29yZE1lc3NhZ2VQaW4pOiBNZXNzYWdlUGluIHtcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLm1lc3NhZ2VQaW5cbiAgY29uc3QgbWVzc2FnZVBpbiA9IHt9IGFzIE1lc3NhZ2VQaW5cblxuICBpZiAocHJvcHMucGlubmVkQXQgJiYgcGF5bG9hZC5waW5uZWRfYXQpIG1lc3NhZ2VQaW4ucGlubmVkQXQgPSBEYXRlLnBhcnNlKHBheWxvYWQucGlubmVkX2F0KVxuICBpZiAocHJvcHMubWVzc2FnZSAmJiBwYXlsb2FkLm1lc3NhZ2UpIG1lc3NhZ2VQaW4ubWVzc2FnZSA9IGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZShib3QsIHsgbWVzc2FnZTogcGF5bG9hZC5tZXNzYWdlLCBzaGFyZElkOiAwIH0pXG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMubWVzc2FnZVBpbihib3QsIHBheWxvYWQsIG1lc3NhZ2VQaW4pXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1NZXNzYWdlU25hcHNob3QoXG4gIGJvdDogSW50ZXJuYWxCb3QsXG4gIHBheWxvYWQ6IHsgbWVzc2FnZVNuYXBzaG90OiBEaXNjb3JkTWVzc2FnZVNuYXBzaG90OyBzaGFyZElkOiBudW1iZXIgfSxcbik6IHR5cGVvZiBib3QudHJhbnNmb3JtZXJzLiRpbmZlcnJlZFR5cGVzLm1lc3NhZ2VTbmFwc2hvdCB7XG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5tZXNzYWdlU25hcHNob3RcbiAgY29uc3QgbWVzc2FnZVNuYXBzaG90ID0ge30gYXMgTWVzc2FnZVNuYXBzaG90XG5cbiAgaWYgKHByb3BzLm1lc3NhZ2UgJiYgcGF5bG9hZC5tZXNzYWdlU25hcHNob3QubWVzc2FnZSlcbiAgICBtZXNzYWdlU25hcHNob3QubWVzc2FnZSA9IGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZShib3QsIHsgbWVzc2FnZTogcGF5bG9hZC5tZXNzYWdlU25hcHNob3QubWVzc2FnZSBhcyBEaXNjb3JkTWVzc2FnZSwgc2hhcmRJZDogcGF5bG9hZC5zaGFyZElkIH0pXG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMubWVzc2FnZVNuYXBzaG90KGJvdCwgcGF5bG9hZC5tZXNzYWdlU25hcHNob3QsIG1lc3NhZ2VTbmFwc2hvdClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybU1lc3NhZ2VJbnRlcmFjdGlvbk1ldGFkYXRhKFxuICBib3Q6IEludGVybmFsQm90LFxuICBwYXlsb2FkOiBEaXNjb3JkTWVzc2FnZUludGVyYWN0aW9uTWV0YWRhdGEsXG4pOiB0eXBlb2YgYm90LnRyYW5zZm9ybWVycy4kaW5mZXJyZWRUeXBlcy5tZXNzYWdlSW50ZXJhY3Rpb25NZXRhZGF0YSB7XG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5tZXNzYWdlSW50ZXJhY3Rpb25NZXRhZGF0YVxuICBjb25zdCBtZXRhZGF0YSA9IHt9IGFzIE1lc3NhZ2VJbnRlcmFjdGlvbk1ldGFkYXRhXG5cbiAgaWYgKHByb3BzLmlkKSBtZXRhZGF0YS5pZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaWQpXG4gIGlmIChwcm9wcy5hdXRob3JpemluZ0ludGVncmF0aW9uT3duZXJzKSB7XG4gICAgbWV0YWRhdGEuYXV0aG9yaXppbmdJbnRlZ3JhdGlvbk93bmVycyA9IHt9XG4gICAgaWYgKHBheWxvYWQuYXV0aG9yaXppbmdfaW50ZWdyYXRpb25fb3duZXJzWycwJ10pXG4gICAgICBtZXRhZGF0YS5hdXRob3JpemluZ0ludGVncmF0aW9uT3duZXJzW0Rpc2NvcmRBcHBsaWNhdGlvbkludGVncmF0aW9uVHlwZS5HdWlsZEluc3RhbGxdID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UoXG4gICAgICAgIHBheWxvYWQuYXV0aG9yaXppbmdfaW50ZWdyYXRpb25fb3duZXJzWycwJ10sXG4gICAgICApXG4gICAgaWYgKHBheWxvYWQuYXV0aG9yaXppbmdfaW50ZWdyYXRpb25fb3duZXJzWycxJ10pXG4gICAgICBtZXRhZGF0YS5hdXRob3JpemluZ0ludGVncmF0aW9uT3duZXJzW0Rpc2NvcmRBcHBsaWNhdGlvbkludGVncmF0aW9uVHlwZS5Vc2VySW5zdGFsbF0gPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShcbiAgICAgICAgcGF5bG9hZC5hdXRob3JpemluZ19pbnRlZ3JhdGlvbl9vd25lcnNbJzEnXSxcbiAgICAgIClcbiAgfVxuICBpZiAocHJvcHMub3JpZ2luYWxSZXNwb25zZU1lc3NhZ2VJZCAmJiBwYXlsb2FkLm9yaWdpbmFsX3Jlc3BvbnNlX21lc3NhZ2VfaWQpXG4gICAgbWV0YWRhdGEub3JpZ2luYWxSZXNwb25zZU1lc3NhZ2VJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQub3JpZ2luYWxfcmVzcG9uc2VfbWVzc2FnZV9pZClcbiAgaWYgKHByb3BzLnR5cGUpIG1ldGFkYXRhLnR5cGUgPSBwYXlsb2FkLnR5cGVcbiAgaWYgKHByb3BzLnVzZXIgJiYgcGF5bG9hZC51c2VyKSBtZXRhZGF0YS51c2VyID0gYm90LnRyYW5zZm9ybWVycy51c2VyKGJvdCwgcGF5bG9hZC51c2VyKVxuICAvLyBBcHBsaWNhdGlvbiBjb21tYW5kIG1ldGFkYXRhXG4gIGlmICgndGFyZ2V0X3VzZXInIGluIHBheWxvYWQpIHtcbiAgICBpZiAocHJvcHMudGFyZ2V0VXNlciAmJiBwYXlsb2FkLnRhcmdldF91c2VyKSBtZXRhZGF0YS50YXJnZXRVc2VyID0gYm90LnRyYW5zZm9ybWVycy51c2VyKGJvdCwgcGF5bG9hZC50YXJnZXRfdXNlcilcbiAgICBpZiAocHJvcHMudGFyZ2V0TWVzc2FnZUlkICYmIHBheWxvYWQudGFyZ2V0X21lc3NhZ2VfaWQpIG1ldGFkYXRhLnRhcmdldE1lc3NhZ2VJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQudGFyZ2V0X21lc3NhZ2VfaWQpXG4gIH1cbiAgLy8gTWVzc2FnZSBjb21wb25lbnQgbWV0YWRhdGFcbiAgaWYgKCdpbnRlcmFjdGVkX21lc3NhZ2VfaWQnIGluIHBheWxvYWQpIHtcbiAgICBpZiAocHJvcHMuaW50ZXJhY3RlZE1lc3NhZ2VJZCAmJiBwYXlsb2FkLmludGVyYWN0ZWRfbWVzc2FnZV9pZClcbiAgICAgIG1ldGFkYXRhLmludGVyYWN0ZWRNZXNzYWdlSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmludGVyYWN0ZWRfbWVzc2FnZV9pZClcbiAgfVxuICAvLyBNb2RhbCBzdWJtaXQgbWV0YWRhdGFcbiAgaWYgKCd0cmlnZ2VyaW5nX2ludGVyYWN0aW9uX21ldGFkYXRhJyBpbiBwYXlsb2FkKSB7XG4gICAgaWYgKHByb3BzLnRyaWdnZXJpbmdJbnRlcmFjdGlvbk1ldGFkYXRhICYmIHBheWxvYWQudHJpZ2dlcmluZ19pbnRlcmFjdGlvbl9tZXRhZGF0YSlcbiAgICAgIG1ldGFkYXRhLnRyaWdnZXJpbmdJbnRlcmFjdGlvbk1ldGFkYXRhID0gYm90LnRyYW5zZm9ybWVycy5tZXNzYWdlSW50ZXJhY3Rpb25NZXRhZGF0YShib3QsIHBheWxvYWQudHJpZ2dlcmluZ19pbnRlcmFjdGlvbl9tZXRhZGF0YSlcbiAgfVxuXG4gIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmN1c3RvbWl6ZXJzLm1lc3NhZ2VJbnRlcmFjdGlvbk1ldGFkYXRhKGJvdCwgcGF5bG9hZCwgbWV0YWRhdGEpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1NZXNzYWdlQ2FsbChib3Q6IEludGVybmFsQm90LCBwYXlsb2FkOiBEaXNjb3JkTWVzc2FnZUNhbGwpOiB0eXBlb2YgYm90LnRyYW5zZm9ybWVycy4kaW5mZXJyZWRUeXBlcy5tZXNzYWdlQ2FsbCB7XG4gIGNvbnN0IGNhbGwgPSB7fSBhcyBNZXNzYWdlQ2FsbFxuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMubWVzc2FnZUNhbGxcblxuICBpZiAocHJvcHMucGFydGljaXBhbnRzICYmIHBheWxvYWQucGFydGljaXBhbnRzKSBjYWxsLnBhcnRpY2lwYW50cyA9IHBheWxvYWQucGFydGljaXBhbnRzLm1hcCgoeCkgPT4gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UoeCkpXG4gIGlmIChwcm9wcy5lbmRlZFRpbWVzdGFtcCAmJiBwYXlsb2FkLmVuZGVkX3RpbWVzdGFtcCkgY2FsbC5lbmRlZFRpbWVzdGFtcCA9IERhdGUucGFyc2UocGF5bG9hZC5lbmRlZF90aW1lc3RhbXApXG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMubWVzc2FnZUNhbGwoYm90LCBwYXlsb2FkLCBjYWxsKVxufVxuIl0sIm5hbWVzIjpbImJhc2VNZXNzYWdlIiwidHJhbnNmb3JtTWVzc2FnZSIsInRyYW5zZm9ybU1lc3NhZ2VDYWxsIiwidHJhbnNmb3JtTWVzc2FnZUludGVyYWN0aW9uTWV0YWRhdGEiLCJ0cmFuc2Zvcm1NZXNzYWdlUGluIiwidHJhbnNmb3JtTWVzc2FnZVNuYXBzaG90IiwiRU1QVFlfU1RSSU5HIiwidW5kZWZpbmVkIiwiY3Jvc3Nwb3N0ZWQiLCJmbGFncyIsImNvbnRhaW5zIiwiTWVzc2FnZUZsYWdzIiwiQ3Jvc3Nwb3N0ZWQiLCJ2YWx1ZSIsImFkZCIsInJlbW92ZSIsImVwaGVtZXJhbCIsIkVwaGVtZXJhbCIsImZhaWxlZFRvTWVudGlvblNvbWVSb2xlc0luVGhyZWFkIiwiRmFpbGVkVG9NZW50aW9uU29tZVJvbGVzSW5UaHJlYWQiLCJoYXNUaHJlYWQiLCJIYXNUaHJlYWQiLCJpc0Nyb3NzcG9zdCIsIklzQ3Jvc3Nwb3N0IiwibG9hZGluZyIsIkxvYWRpbmciLCJtZW50aW9uZWRVc2VySWRzIiwibWVudGlvbnMiLCJtYXAiLCJ1c2VyIiwiaWQiLCJtZW50aW9uRXZlcnlvbmUiLCJiaXRmaWVsZCIsInBpbm5lZCIsInNvdXJjZU1lc3NhZ2VEZWxldGVkIiwiU291cmNlTWVzc2FnZURlbGV0ZWQiLCJzdXBwcmVzc0VtYmVkcyIsIlN1cHByZXNzRW1iZWRzIiwic3VwcHJlc3NOb3RpZmljYXRpb25zIiwiU3VwcHJlc3NOb3RpZmljYXRpb25zIiwidGltZXN0YW1wIiwic25vd2ZsYWtlVG9UaW1lc3RhbXAiLCJ0dHMiLCJ1cmdlbnQiLCJVcmdlbnQiLCJib3QiLCJwYXlsb2FkIiwiZ3VpbGRJZCIsIm1lc3NhZ2UiLCJndWlsZF9pZCIsInRyYW5zZm9ybWVycyIsInNub3dmbGFrZSIsInVzZXJJZCIsImF1dGhvciIsIk9iamVjdCIsImNyZWF0ZSIsIlRvZ2dsZUJpdGZpZWxkIiwicHJvcHMiLCJkZXNpcmVkUHJvcGVydGllcyIsImFwcGxpY2F0aW9uIiwic2hhcmRJZCIsImFwcGxpY2F0aW9uSWQiLCJhcHBsaWNhdGlvbl9pZCIsImF0dGFjaG1lbnRzIiwibGVuZ3RoIiwiYXR0YWNobWVudCIsImNoYW5uZWxJZCIsImNoYW5uZWxfaWQiLCJjb21wb25lbnRzIiwiY29tcCIsImNvbXBvbmVudCIsImNvbnRlbnQiLCJlZGl0ZWRUaW1lc3RhbXAiLCJlZGl0ZWRfdGltZXN0YW1wIiwiRGF0ZSIsInBhcnNlIiwiZW1iZWRzIiwiZW1iZWQiLCJpbnRlcmFjdGlvbk1ldGFkYXRhIiwiaW50ZXJhY3Rpb25fbWV0YWRhdGEiLCJtZXNzYWdlSW50ZXJhY3Rpb25NZXRhZGF0YSIsImludGVyYWN0aW9uIiwibWVzc2FnZUludGVyYWN0aW9uUHJvcHMiLCJtZXNzYWdlSW50ZXJhY3Rpb24iLCJtZW1iZXIiLCJuYW1lIiwidHlwZSIsIm1lbnRpb25fZXZlcnlvbmUiLCJtZW50aW9uZWRDaGFubmVsSWRzIiwibWVudGlvbl9jaGFubmVscyIsIm0iLCJtYXRjaCIsIkNIQU5ORUxfTUVOVElPTl9SRUdFWCIsInRleHQiLCJzdWJzdHJpbmciLCJtZW50aW9uZWRSb2xlSWRzIiwibWVudGlvbl9yb2xlcyIsIm1lc3NhZ2VSZWZlcmVuY2UiLCJtZXNzYWdlX3JlZmVyZW5jZSIsInJlZmVyZW5jZSIsIm1lc3NhZ2VSZWZlcmVuY2VQcm9wcyIsIm1lc3NhZ2VJZCIsIm1lc3NhZ2VfaWQiLCJyZWZlcmVuY2VkTWVzc2FnZSIsInJlZmVyZW5jZWRfbWVzc2FnZSIsIm1lc3NhZ2VTbmFwc2hvdHMiLCJtZXNzYWdlX3NuYXBzaG90cyIsInNuYXAiLCJtZXNzYWdlU25hcHNob3QiLCJub25jZSIsInJlYWN0aW9ucyIsInJlYWN0aW9uIiwibWUiLCJtZUJ1cnN0IiwibWVfYnVyc3QiLCJjb3VudCIsImNvdW50RGV0YWlscyIsImJ1cnN0IiwiY291bnRfZGV0YWlscyIsIm5vcm1hbCIsImVtb2ppIiwiYnVyc3RDb2xvcnMiLCJidXJzdF9jb2xvcnMiLCJzdGlja2VySXRlbXMiLCJzdGlja2VyX2l0ZW1zIiwiaXRlbSIsImZvcm1hdFR5cGUiLCJmb3JtYXRfdHlwZSIsInRocmVhZCIsImNoYW5uZWwiLCJ3ZWJob29rSWQiLCJ3ZWJob29rX2lkIiwicG9sbCIsImNhbGwiLCJtZXNzYWdlQ2FsbCIsImN1c3RvbWl6ZXJzIiwibWVzc2FnZVBpbiIsInBpbm5lZEF0IiwicGlubmVkX2F0IiwibWV0YWRhdGEiLCJhdXRob3JpemluZ0ludGVncmF0aW9uT3duZXJzIiwiYXV0aG9yaXppbmdfaW50ZWdyYXRpb25fb3duZXJzIiwiRGlzY29yZEFwcGxpY2F0aW9uSW50ZWdyYXRpb25UeXBlIiwiR3VpbGRJbnN0YWxsIiwiVXNlckluc3RhbGwiLCJvcmlnaW5hbFJlc3BvbnNlTWVzc2FnZUlkIiwib3JpZ2luYWxfcmVzcG9uc2VfbWVzc2FnZV9pZCIsInRhcmdldFVzZXIiLCJ0YXJnZXRfdXNlciIsInRhcmdldE1lc3NhZ2VJZCIsInRhcmdldF9tZXNzYWdlX2lkIiwiaW50ZXJhY3RlZE1lc3NhZ2VJZCIsImludGVyYWN0ZWRfbWVzc2FnZV9pZCIsInRyaWdnZXJpbmdJbnRlcmFjdGlvbk1ldGFkYXRhIiwidHJpZ2dlcmluZ19pbnRlcmFjdGlvbl9tZXRhZGF0YSIsInBhcnRpY2lwYW50cyIsIngiLCJlbmRlZFRpbWVzdGFtcCIsImVuZGVkX3RpbWVzdGFtcCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7UUF3QmFBO2VBQUFBOztRQW9IR0M7ZUFBQUE7O1FBK0xBQztlQUFBQTs7UUExQ0FDO2VBQUFBOztRQXZCQUM7ZUFBQUE7O1FBVUFDO2VBQUFBOzs7dUJBM1FUOzJCQUMrQjt1QkFTL0I7Z0NBQ3dCO0FBRS9CLE1BQU1DLGVBQWU7QUFFZCxNQUFNTixjQUF3RTtJQUNuRiwyRUFBMkU7SUFDM0UsR0FBSU8sU0FBUztJQUViLElBQUlDLGVBQWM7UUFDaEIsT0FBTyxJQUFJLENBQUNDLEtBQUssRUFBRUMsU0FBU0MsbUJBQVksQ0FBQ0MsV0FBVyxLQUFLO0lBQzNEO0lBQ0EsSUFBSUosYUFBWUssTUFBZ0I7UUFDOUIsSUFBSSxDQUFDLElBQUksQ0FBQ0osS0FBSyxFQUFFO1FBQ2pCLElBQUlJLE9BQU8sSUFBSSxDQUFDSixLQUFLLENB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
317
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvbWVzc2FnZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEaXNjb3JkQXBwbGljYXRpb25JbnRlZ3JhdGlvblR5cGUsXG4gIHR5cGUgRGlzY29yZE1lc3NhZ2UsXG4gIHR5cGUgRGlzY29yZE1lc3NhZ2VDYWxsLFxuICB0eXBlIERpc2NvcmRNZXNzYWdlSW50ZXJhY3Rpb25NZXRhZGF0YSxcbiAgdHlwZSBEaXNjb3JkTWVzc2FnZVBpbixcbiAgdHlwZSBEaXNjb3JkTWVzc2FnZVNuYXBzaG90LFxuICBNZXNzYWdlRmxhZ3MsXG59IGZyb20gJ0BkaXNjb3JkZW5vL3R5cGVzJ1xuaW1wb3J0IHsgQ0hBTk5FTF9NRU5USU9OX1JFR0VYIH0gZnJvbSAnLi4vY29uc3RhbnRzLmpzJ1xuaW1wb3J0IHtcbiAgdHlwZSBCb3QsXG4gIHR5cGUgRGVzaXJlZFByb3BlcnRpZXNCZWhhdmlvcixcbiAgdHlwZSBNZXNzYWdlLFxuICB0eXBlIE1lc3NhZ2VDYWxsLFxuICB0eXBlIE1lc3NhZ2VJbnRlcmFjdGlvbixcbiAgdHlwZSBNZXNzYWdlSW50ZXJhY3Rpb25NZXRhZGF0YSxcbiAgdHlwZSBNZXNzYWdlUGluLFxuICB0eXBlIE1lc3NhZ2VTbmFwc2hvdCxcbiAgdHlwZSBTZXR1cERlc2lyZWRQcm9wcyxcbiAgc25vd2ZsYWtlVG9UaW1lc3RhbXAsXG4gIHR5cGUgVHJhbnNmb3JtZXJzRGVzaXJlZFByb3BlcnRpZXMsXG59IGZyb20gJy4uL2luZGV4LmpzJ1xuaW1wb3J0IHsgVG9nZ2xlQml0ZmllbGQgfSBmcm9tICcuL3RvZ2dsZXMvVG9nZ2xlQml0ZmllbGQuanMnXG5cbmNvbnN0IEVNUFRZX1NUUklORyA9ICcnXG5cbmV4cG9ydCBjb25zdCBiYXNlTWVzc2FnZTogTWVzc2FnZSA9IHtcbiAgLy8gVGhpcyBhbGxvd3MgdHlwZXNjcmlwdCB0byBzdGlsbCBjaGVjayBmb3IgdHlwZSBlcnJvcnMgb24gZnVuY3Rpb25zIGJlbG93XG4gIC4uLih1bmRlZmluZWQgYXMgdW5rbm93biBhcyBNZXNzYWdlKSxcblxuICBnZXQgY3Jvc3Nwb3N0ZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmxhZ3M/LmNvbnRhaW5zKE1lc3NhZ2VGbGFncy5Dcm9zc3Bvc3RlZCkgPz8gZmFsc2VcbiAgfSxcbiAgc2V0IGNyb3NzcG9zdGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKCF0aGlzLmZsYWdzKSByZXR1cm5cbiAgICBpZiAodmFsdWUpIHRoaXMuZmxhZ3MuYWRkKE1lc3NhZ2VGbGFncy5Dcm9zc3Bvc3RlZClcbiAgICBlbHNlIHRoaXMuZmxhZ3MucmVtb3ZlKE1lc3NhZ2VGbGFncy5Dcm9zc3Bvc3RlZClcbiAgfSxcbiAgZ2V0IGVwaGVtZXJhbCgpIHtcbiAgICByZXR1cm4gdGhpcy5mbGFncz8uY29udGFpbnMoTWVzc2FnZUZsYWdzLkVwaGVtZXJhbCkgPz8gZmFsc2VcbiAgfSxcbiAgc2V0IGVwaGVtZXJhbCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICghdGhpcy5mbGFncykgcmV0dXJuXG4gICAgaWYgKHZhbHVlKSB0aGlzLmZsYWdzLmFkZChNZXNzYWdlRmxhZ3MuRXBoZW1lcmFsKVxuICAgIGVsc2UgdGhpcy5mbGFncy5yZW1vdmUoTWVzc2FnZUZsYWdzLkVwaGVtZXJhbClcbiAgfSxcbiAgZ2V0IGZhaWxlZFRvTWVudGlvblNvbWVSb2xlc0luVGhyZWFkKCkge1xuICAgIHJldHVybiB0aGlzLmZsYWdzPy5jb250YWlucyhNZXNzYWdlRmxhZ3MuRmFpbGVkVG9NZW50aW9uU29tZVJvbGVzSW5UaHJlYWQpID8/IGZhbHNlXG4gIH0sXG4gIHNldCBmYWlsZWRUb01lbnRpb25Tb21lUm9sZXNJblRocmVhZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICghdGhpcy5mbGFncykgcmV0dXJuXG4gICAgaWYgKHZhbHVlKSB0aGlzLmZsYWdzLmFkZChNZXNzYWdlRmxhZ3MuRmFpbGVkVG9NZW50aW9uU29tZVJvbGVzSW5UaHJlYWQpXG4gICAgZWxzZSB0aGlzLmZsYWdzLnJlbW92ZShNZXNzYWdlRmxhZ3MuRmFpbGVkVG9NZW50aW9uU29tZVJvbGVzSW5UaHJlYWQpXG4gIH0sXG4gIGdldCBoYXNUaHJlYWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmxhZ3M/LmNvbnRhaW5zKE1lc3NhZ2VGbGFncy5IYXNUaHJlYWQpID8/IGZhbHNlXG4gIH0sXG4gIHNldCBoYXNUaHJlYWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuZmxhZ3MpIHJldHVyblxuICAgIGlmICh2YWx1ZSkgdGhpcy5mbGFncy5hZGQoTWVzc2FnZUZsYWdzLkhhc1RocmVhZClcbiAgICBlbHNlIHRoaXMuZmxhZ3MucmVtb3ZlKE1lc3NhZ2VGbGFncy5IYXNUaHJlYWQpXG4gIH0sXG4gIGdldCBpc0Nyb3NzcG9zdCgpIHtcbiAgICByZXR1cm4gdGhpcy5mbGFncz8uY29udGFpbnMoTWVzc2FnZUZsYWdzLklzQ3Jvc3Nwb3N0KSA/PyBmYWxzZVxuICB9LFxuICBzZXQgaXNDcm9zc3Bvc3QodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuZmxhZ3MpIHJldHVyblxuICAgIGlmICh2YWx1ZSkgdGhpcy5mbGFncy5hZGQoTWVzc2FnZUZsYWdzLklzQ3Jvc3Nwb3N0KVxuICAgIGVsc2UgdGhpcy5mbGFncy5yZW1vdmUoTWVzc2FnZUZsYWdzLklzQ3Jvc3Nwb3N0KVxuICB9LFxuICBnZXQgbG9hZGluZygpIHtcbiAgICByZXR1cm4gdGhpcy5mbGFncz8uY29udGFpbnMoTWVzc2FnZUZsYWdzLkxvYWRpbmcpID8/IGZhbHNlXG4gIH0sXG4gIHNldCBsb2FkaW5nKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKCF0aGlzLmZsYWdzKSByZXR1cm5cbiAgICBpZiAodmFsdWUpIHRoaXMuZmxhZ3MuYWRkKE1lc3NhZ2VGbGFncy5Mb2FkaW5nKVxuICAgIGVsc2UgdGhpcy5mbGFncy5yZW1vdmUoTWVzc2FnZUZsYWdzLkxvYWRpbmcpXG4gIH0sXG4gIGdldCBtZW50aW9uZWRVc2VySWRzKCkge1xuICAgIHJldHVybiB0aGlzLm1lbnRpb25zPy5tYXAoKHVzZXIpID0+IHVzZXIuaWQpID8/IFtdXG4gIH0sXG4gIGdldCBtZW50aW9uRXZlcnlvbmUoKSB7XG4gICAgcmV0dXJuIHRoaXMuYml0ZmllbGQ/LmNvbnRhaW5zKDIpID8/IGZhbHNlXG4gIH0sXG4gIHNldCBtZW50aW9uRXZlcnlvbmUodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuYml0ZmllbGQpIHJldHVyblxuICAgIGlmICh2YWx1ZSkgdGhpcy5iaXRmaWVsZC5hZGQoMilcbiAgICBlbHNlIHRoaXMuYml0ZmllbGQucmVtb3ZlKDIpXG4gIH0sXG4gIGdldCBwaW5uZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuYml0ZmllbGQ/LmNvbnRhaW5zKDMpID8/IGZhbHNlXG4gIH0sXG4gIHNldCBwaW5uZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuYml0ZmllbGQpIHJldHVyblxuICAgIGlmICh2YWx1ZSkgdGhpcy5iaXRmaWVsZC5hZGQoMylcbiAgICBlbHNlIHRoaXMuYml0ZmllbGQucmVtb3ZlKDMpXG4gIH0sXG4gIGdldCBzb3VyY2VNZXNzYWdlRGVsZXRlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5mbGFncz8uY29udGFpbnMoTWVzc2FnZUZsYWdzLlNvdXJjZU1lc3NhZ2VEZWxldGVkKSA/PyBmYWxzZVxuICB9LFxuICBzZXQgc291cmNlTWVzc2FnZURlbGV0ZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuZmxhZ3MpIHJldHVyblxuICAgIGlmICh2YWx1ZSkgdGhpcy5mbGFncy5hZGQoTWVzc2FnZUZsYWdzLlNvdXJjZU1lc3NhZ2VEZWxldGVkKVxuICAgIGVsc2UgdGhpcy5mbGFncy5yZW1vdmUoTWVzc2FnZUZsYWdzLlNvdXJjZU1lc3NhZ2VEZWxldGVkKVxuICB9LFxuICBnZXQgc3VwcHJlc3NFbWJlZHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmxhZ3M/LmNvbnRhaW5zKE1lc3NhZ2VGbGFncy5TdXBwcmVzc0VtYmVkcykgPz8gZmFsc2VcbiAgfSxcbiAgc2V0IHN1cHByZXNzRW1iZWRzKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKCF0aGlzLmZsYWdzKSByZXR1cm5cbiAgICBpZiAodmFsdWUpIHRoaXMuZmxhZ3MuYWRkKE1lc3NhZ2VGbGFncy5TdXBwcmVzc0VtYmVkcylcbiAgICBlbHNlIHRoaXMuZmxhZ3MucmVtb3ZlKE1lc3NhZ2VGbGFncy5TdXBwcmVzc0VtYmVkcylcbiAgfSxcbiAgZ2V0IHN1cHByZXNzTm90aWZpY2F0aW9ucygpIHtcbiAgICByZXR1cm4gdGhpcy5mbGFncz8uY29udGFpbnMoTWVzc2FnZUZsYWdzLlN1cHByZXNzTm90aWZpY2F0aW9ucykgPz8gZmFsc2VcbiAgfSxcbiAgc2V0IHN1cHByZXNzTm90aWZpY2F0aW9ucyh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICghdGhpcy5mbGFncykgcmV0dXJuXG4gICAgaWYgKHZhbHVlKSB0aGlzLmZsYWdzLmFkZChNZXNzYWdlRmxhZ3MuU3VwcHJlc3NOb3RpZmljYXRpb25zKVxuICAgIGVsc2UgdGhpcy5mbGFncy5yZW1vdmUoTWVzc2FnZUZsYWdzLlN1cHByZXNzTm90aWZpY2F0aW9ucylcbiAgfSxcbiAgZ2V0IHRpbWVzdGFtcCgpIHtcbiAgICByZXR1cm4gdGhpcy5pZCA/IHNub3dmbGFrZVRvVGltZXN0YW1wKHRoaXMuaWQpIDogMFxuICB9LFxuICBnZXQgdHRzKCkge1xuICAgIHJldHVybiB0aGlzLmJpdGZpZWxkPy5jb250YWlucygxKSA/PyBmYWxzZVxuICB9LFxuICBzZXQgdHRzKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKCF0aGlzLmJpdGZpZWxkKSByZXR1cm5cbiAgICBpZiAodmFsdWUpIHRoaXMuYml0ZmllbGQuYWRkKDEpXG4gICAgZWxzZSB0aGlzLmJpdGZpZWxkLnJlbW92ZSgxKVxuICB9LFxuICBnZXQgdXJnZW50KCkge1xuICAgIHJldHVybiB0aGlzLmZsYWdzPy5jb250YWlucyhNZXNzYWdlRmxhZ3MuVXJnZW50KSA/PyBmYWxzZVxuICB9LFxuICBzZXQgdXJnZW50KHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKCF0aGlzLmZsYWdzKSByZXR1cm5cbiAgICBpZiAodmFsdWUpIHRoaXMuZmxhZ3MuYWRkKE1lc3NhZ2VGbGFncy5VcmdlbnQpXG4gICAgZWxzZSB0aGlzLmZsYWdzLnJlbW92ZShNZXNzYWdlRmxhZ3MuVXJnZW50KVxuICB9LFxufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtTWVzc2FnZShib3Q6IEJvdCwgcGF5bG9hZDogRGlzY29yZE1lc3NhZ2UsIGV4dHJhPzogeyBzaGFyZElkPzogbnVtYmVyIH0pOiBNZXNzYWdlIHtcbiAgY29uc3QgZ3VpbGRJZCA9IHBheWxvYWQuZ3VpbGRfaWQgPyBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmd1aWxkX2lkKSA6IHVuZGVmaW5lZFxuICBjb25zdCB1c2VySWQgPSBwYXlsb2FkLmF1dGhvcj8uaWQgPyBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmF1dGhvci5pZCkgOiB1bmRlZmluZWRcblxuICBjb25zdCBtZXNzYWdlOiBTZXR1cERlc2lyZWRQcm9wczxNZXNzYWdlLCBUcmFuc2Zvcm1lcnNEZXNpcmVkUHJvcGVydGllcywgRGVzaXJlZFByb3BlcnRpZXNCZWhhdmlvcj4gPSBPYmplY3QuY3JlYXRlKGJhc2VNZXNzYWdlKVxuICBtZXNzYWdlLmJpdGZpZWxkID0gbmV3IFRvZ2dsZUJpdGZpZWxkKClcbiAgbWVzc2FnZS5mbGFncyA9IG5ldyBUb2dnbGVCaXRmaWVsZChwYXlsb2FkLmZsYWdzKVxuXG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5tZXNzYWdlXG5cbiAgaWYgKHByb3BzLmF1dGhvciAmJiBwYXlsb2FkLmF1dGhvcikgbWVzc2FnZS5hdXRob3IgPSBib3QudHJhbnNmb3JtZXJzLnVzZXIoYm90LCBwYXlsb2FkLmF1dGhvcilcbiAgaWYgKHByb3BzLmFwcGxpY2F0aW9uICYmIHBheWxvYWQuYXBwbGljYXRpb24pXG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvciBUT0RPOiBQYXJ0aWFsc1xuICAgIG1lc3NhZ2UuYXBwbGljYXRpb24gPSBib3QudHJhbnNmb3JtZXJzLmFwcGxpY2F0aW9uKGJvdCwgcGF5bG9hZC5hcHBsaWNhdGlvbiwgeyBzaGFyZElkOiBleHRyYT8uc2hhcmRJZCB9KVxuICBpZiAocHJvcHMuYXBwbGljYXRpb25JZCAmJiBwYXlsb2FkLmFwcGxpY2F0aW9uX2lkKSBtZXNzYWdlLmFwcGxpY2F0aW9uSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmFwcGxpY2F0aW9uX2lkKVxuICBpZiAocHJvcHMuYXR0YWNobWVudHMgJiYgcGF5bG9hZC5hdHRhY2htZW50cz8ubGVuZ3RoKVxuICAgIG1lc3NhZ2UuYXR0YWNobWVudHMgPSBwYXlsb2FkLmF0dGFjaG1lbnRzLm1hcCgoYXR0YWNobWVudCkgPT4gYm90LnRyYW5zZm9ybWVycy5hdHRhY2htZW50KGJvdCwgYXR0YWNobWVudCkpXG4gIGlmIChwcm9wcy5jaGFubmVsSWQgJiYgcGF5bG9hZC5jaGFubmVsX2lkKSBtZXNzYWdlLmNoYW5uZWxJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuY2hhbm5lbF9pZClcbiAgaWYgKHByb3BzLmNvbXBvbmVudHMgJiYgcGF5bG9hZC5jb21wb25lbnRzPy5sZW5ndGgpIG1lc3NhZ2UuY29tcG9uZW50cyA9IHBheWxvYWQuY29tcG9uZW50cy5tYXAoKGNvbXApID0+IGJvdC50cmFuc2Zvcm1lcnMuY29tcG9uZW50KGJvdCwgY29tcCkpXG4gIGlmIChwcm9wcy5jb250ZW50KSBtZXNzYWdlLmNvbnRlbnQgPSBwYXlsb2FkLmNvbnRlbnQgPz8gRU1QVFlfU1RSSU5HXG4gIGlmIChwcm9wcy5lZGl0ZWRUaW1lc3RhbXAgJiYgcGF5bG9hZC5lZGl0ZWRfdGltZXN0YW1wKSBtZXNzYWdlLmVkaXRlZFRpbWVzdGFtcCA9IERhdGUucGFyc2UocGF5bG9hZC5lZGl0ZWRfdGltZXN0YW1wKVxuICBpZiAocHJvcHMuZW1iZWRzICYmIHBheWxvYWQuZW1iZWRzPy5sZW5ndGgpIG1lc3NhZ2UuZW1iZWRzID0gcGF5bG9hZC5lbWJlZHMubWFwKChlbWJlZCkgPT4gYm90LnRyYW5zZm9ybWVycy5lbWJlZChib3QsIGVtYmVkKSlcbiAgaWYgKHByb3BzLmd1aWxkSWQgJiYgZ3VpbGRJZCkgbWVzc2FnZS5ndWlsZElkID0gZ3VpbGRJZFxuICBpZiAocHJvcHMuaWQgJiYgcGF5bG9hZC5pZCkgbWVzc2FnZS5pZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaWQpXG4gIGlmIChwcm9wcy5pbnRlcmFjdGlvbk1ldGFkYXRhICYmIHBheWxvYWQuaW50ZXJhY3Rpb25fbWV0YWRhdGEpXG4gICAgbWVzc2FnZS5pbnRlcmFjdGlvbk1ldGFkYXRhID0gYm90LnRyYW5zZm9ybWVycy5tZXNzYWdlSW50ZXJhY3Rpb25NZXRhZGF0YShib3QsIHBheWxvYWQuaW50ZXJhY3Rpb25fbWV0YWRhdGEpXG4gIGlmIChwcm9wcy5pbnRlcmFjdGlvbiAmJiBwYXlsb2FkLmludGVyYWN0aW9uKSB7XG4gICAgY29uc3QgaW50ZXJhY3Rpb24gPSB7fSBhcyBTZXR1cERlc2lyZWRQcm9wczxNZXNzYWdlSW50ZXJhY3Rpb24sIFRyYW5zZm9ybWVyc0Rlc2lyZWRQcm9wZXJ0aWVzLCBEZXNpcmVkUHJvcGVydGllc0JlaGF2aW9yPlxuICAgIGNvbnN0IG1lc3NhZ2VJbnRlcmFjdGlvblByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5tZXNzYWdlSW50ZXJhY3Rpb25cblxuICAgIGlmIChtZXNzYWdlSW50ZXJhY3Rpb25Qcm9wcy5pZCkge1xuICAgICAgaW50ZXJhY3Rpb24uaWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmludGVyYWN0aW9uLmlkKVxuICAgIH1cbiAgICBpZiAobWVzc2FnZUludGVyYWN0aW9uUHJvcHMubWVtYmVyICYmIHBheWxvYWQuaW50ZXJhY3Rpb24ubWVtYmVyKSB7XG4gICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIFRPRE86IHBhcnRpYWwgLSBjaGVjayB3aHkgdGhpcyBpcyBwYXJ0aWFsIGFuZCBoYW5kbGUgYXMgbmVlZGVkXG4gICAgICBpbnRlcmFjdGlvbi5tZW1iZXIgPSBib3QudHJhbnNmb3JtZXJzLm1lbWJlcihib3QsIHBheWxvYWQuaW50ZXJhY3Rpb24ubWVtYmVyLCB7IGd1aWxkSWQsIHVzZXJJZDogcGF5bG9hZC5pbnRlcmFjdGlvbi51c2VyLmlkIH0pXG4gICAgfVxuICAgIGlmIChtZXNzYWdlSW50ZXJhY3Rpb25Qcm9wcy5uYW1lKSB7XG4gICAgICBpbnRlcmFjdGlvbi5uYW1lID0gcGF5bG9hZC5pbnRlcmFjdGlvbi5uYW1lXG4gICAgfVxuICAgIGlmIChtZXNzYWdlSW50ZXJhY3Rpb25Qcm9wcy50eXBlKSB7XG4gICAgICBpbnRlcmFjdGlvbi50eXBlID0gcGF5bG9hZC5pbnRlcmFjdGlvbi50eXBlXG4gICAgfVxuICAgIGlmIChtZXNzYWdlSW50ZXJhY3Rpb25Qcm9wcy51c2VyKSB7XG4gICAgICBpbnRlcmFjdGlvbi51c2VyID0gYm90LnRyYW5zZm9ybWVycy51c2VyKGJvdCwgcGF5bG9hZC5pbnRlcmFjdGlvbi51c2VyKVxuICAgIH1cblxuICAgIG1lc3NhZ2UuaW50ZXJhY3Rpb24gPSBpbnRlcmFjdGlvblxuICB9XG4gIGlmIChwcm9wcy5tZW1iZXIgJiYgZ3VpbGRJZCAmJiB1c2VySWQgJiYgcGF5bG9hZC5tZW1iZXIpXG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvciBUT0RPOiBwYXJ0aWFsXG4gICAgbWVzc2FnZS5tZW1iZXIgPSBib3QudHJhbnNmb3JtZXJzLm1lbWJlcihib3QsIHBheWxvYWQubWVtYmVyLCB7IGd1aWxkSWQsIHVzZXJJZCB9KVxuICBpZiAocGF5bG9hZC5tZW50aW9uX2V2ZXJ5b25lKSBtZXNzYWdlLm1lbnRpb25FdmVyeW9uZSA9IHRydWVcbiAgaWYgKHByb3BzLm1lbnRpb25lZENoYW5uZWxJZHMgJiYgcGF5bG9hZC5tZW50aW9uX2NoYW5uZWxzPy5sZW5ndGgpIHtcbiAgICBtZXNzYWdlLm1lbnRpb25lZENoYW5uZWxJZHMgPSBbXG4gICAgICAvLyBLZWVwIGFueSBpZHMgdGh0IGRpc2NvcmQgc2VuZHNcbiAgICAgIC4uLihwYXlsb2FkLm1lbnRpb25fY2hhbm5lbHMgPz8gW10pLm1hcCgobSkgPT4gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UobS5pZCkpLFxuICAgICAgLy8gQWRkIGFueSBvdGhlciBpZHMgdGhhdCBjYW4gYmUgdmFsaWRhdGVkIGluIGEgY2hhbm5lbCBtZW50aW9uIGZvcm1hdFxuICAgICAgLi4uKHBheWxvYWQuY29udGVudD8ubWF0Y2goQ0hBTk5FTF9NRU5USU9OX1JFR0VYKSA/PyBbXSkubWFwKCh0ZXh0KSA9PlxuICAgICAgICAvLyBjb252ZXJ0cyB0aGUgPCMxMjM+IGludG8gMTIzXG4gICAgICAgIGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHRleHQuc3Vic3RyaW5nKDIsIHRleHQubGVuZ3RoIC0gMSkpLFxuICAgICAgKSxcbiAgICBdXG4gIH1cbiAgaWYgKHByb3BzLm1lbnRpb25lZFJvbGVJZHMgJiYgcGF5bG9hZC5tZW50aW9uX3JvbGVzPy5sZW5ndGgpXG4gICAgbWVzc2FnZS5tZW50aW9uZWRSb2xlSWRzID0gcGF5bG9hZC5tZW50aW9uX3JvbGVzLm1hcCgoaWQpID0+IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKGlkKSlcbiAgaWYgKHByb3BzLm1lbnRpb25zICYmIHBheWxvYWQubWVudGlvbnM/Lmxlbmd0aCkgbWVzc2FnZS5tZW50aW9ucyA9IHBheWxvYWQubWVudGlvbnMubWFwKCh1c2VyKSA9PiBib3QudHJhbnNmb3JtZXJzLnVzZXIoYm90LCB1c2VyKSlcbiAgaWYgKHByb3BzLm1lc3NhZ2VSZWZlcmVuY2UgJiYgcGF5bG9hZC5tZXNzYWdlX3JlZmVyZW5jZSkge1xuICAgIGNvbnN0IHJlZmVyZW5jZSA9IHt9IGFzIE5vbk51bGxhYmxlPE1lc3NhZ2VbJ21lc3NhZ2VSZWZlcmVuY2UnXT5cbiAgICBjb25zdCBtZXNzYWdlUmVmZXJlbmNlUHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLm1lc3NhZ2VSZWZlcmVuY2VcblxuICAgIGlmIChtZXNzYWdlUmVmZXJlbmNlUHJvcHMuY2hhbm5lbElkICYmIHBheWxvYWQubWVzc2FnZV9yZWZlcmVuY2UuY2hhbm5lbF9pZCkge1xuICAgICAgcmVmZXJlbmNlLmNoYW5uZWxJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQubWVzc2FnZV9yZWZlcmVuY2UuY2hhbm5lbF9pZClcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2VSZWZlcmVuY2VQcm9wcy5ndWlsZElkICYmIHBheWxvYWQubWVzc2FnZV9yZWZlcmVuY2UuZ3VpbGRfaWQpIHtcbiAgICAgIHJlZmVyZW5jZS5ndWlsZElkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5tZXNzYWdlX3JlZmVyZW5jZS5ndWlsZF9pZClcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2VSZWZlcmVuY2VQcm9wcy5tZXNzYWdlSWQgJiYgcGF5bG9hZC5tZXNzYWdlX3JlZmVyZW5jZS5tZXNzYWdlX2lkKSB7XG4gICAgICByZWZlcmVuY2UubWVzc2FnZUlkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5tZXNzYWdlX3JlZmVyZW5jZS5tZXNzYWdlX2lkKVxuICAgIH1cblxuICAgIG1lc3NhZ2UubWVzc2FnZVJlZmVyZW5jZSA9IHJlZmVyZW5jZVxuICB9XG4gIGlmIChwcm9wcy5yZWZlcmVuY2VkTWVzc2FnZSAmJiBwYXlsb2FkLnJlZmVyZW5jZWRfbWVzc2FnZSlcbiAgICBtZXNzYWdlLnJlZmVyZW5jZWRNZXNzYWdlID0gYm90LnRyYW5zZm9ybWVycy5tZXNzYWdlKGJvdCwgcGF5bG9hZC5yZWZlcmVuY2VkX21lc3NhZ2UsIHsgc2hhcmRJZDogZXh0cmE/LnNoYXJkSWQgfSlcbiAgaWYgKHByb3BzLm1lc3NhZ2VTbmFwc2hvdHMgJiYgcGF5bG9hZC5tZXNzYWdlX3NuYXBzaG90cylcbiAgICBtZXNzYWdlLm1lc3NhZ2VTbmFwc2hvdHMgPSBwYXlsb2FkLm1lc3NhZ2Vfc25hcHNob3RzLm1hcCgoc25hcCkgPT4gYm90LnRyYW5zZm9ybWVycy5tZXNzYWdlU25hcHNob3QoYm90LCBzbmFwLCB7IHNoYXJkSWQ6IGV4dHJhPy5zaGFyZElkIH0pKVxuICBpZiAocHJvcHMubm9uY2UgJiYgcGF5bG9hZC5ub25jZSkgbWVzc2FnZS5ub25jZSA9IHBheWxvYWQubm9uY2VcbiAgaWYgKHBheWxvYWQucGlubmVkKSBtZXNzYWdlLnBpbm5lZCA9IHRydWVcbiAgaWYgKHByb3BzLnJlYWN0aW9ucyAmJiBwYXlsb2FkLnJlYWN0aW9ucz8ubGVuZ3RoKSB7XG4gICAgbWVzc2FnZS5yZWFjdGlvbnMgPSBwYXlsb2FkLnJlYWN0aW9ucy5tYXAoKHJlYWN0aW9uKSA9PiAoe1xuICAgICAgbWU6IHJlYWN0aW9uLm1lLFxuICAgICAgbWVCdXJzdDogcmVhY3Rpb24ubWVfYnVyc3QsXG4gICAgICBjb3VudDogcmVhY3Rpb24uY291bnQsXG4gICAgICBjb3VudERldGFpbHM6IHtcbiAgICAgICAgYnVyc3Q6IHJlYWN0aW9uLmNvdW50X2RldGFpbHMuYnVyc3QsXG4gICAgICAgIG5vcm1hbDogcmVhY3Rpb24uY291bnRfZGV0YWlscy5ub3JtYWwsXG4gICAgICB9LFxuICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciBUT0RPOiBEZWFsIHdpdGggcGFydGlhbHNcbiAgICAgIGVtb2ppOiBib3QudHJhbnNmb3JtZXJzLmVtb2ppKGJvdCwgcmVhY3Rpb24uZW1vamkpLFxuICAgICAgYnVyc3RDb2xvcnM6IHJlYWN0aW9uLmJ1cnN0X2NvbG9ycyxcbiAgICB9KSlcbiAgfVxuICBpZiAocHJvcHMuc3RpY2tlckl0ZW1zICYmIHBheWxvYWQuc3RpY2tlcl9pdGVtcz8ubGVuZ3RoKVxuICAgIG1lc3NhZ2Uuc3RpY2tlckl0ZW1zID0gcGF5bG9hZC5zdGlja2VyX2l0ZW1zLm1hcCgoaXRlbSkgPT4gKHtcbiAgICAgIGlkOiBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShpdGVtLmlkKSxcbiAgICAgIG5hbWU6IGl0ZW0ubmFtZSxcbiAgICAgIGZvcm1hdFR5cGU6IGl0ZW0uZm9ybWF0X3R5cGUsXG4gICAgfSkpXG4gIGlmIChwYXlsb2FkLnR0cykgbWVzc2FnZS50dHMgPSB0cnVlXG4gIGlmIChwcm9wcy50aHJlYWQgJiYgcGF5bG9hZC50aHJlYWQpIG1lc3NhZ2UudGhyZWFkID0gYm90LnRyYW5zZm9ybWVycy5jaGFubmVsKGJvdCwgcGF5bG9hZC50aHJlYWQsIHsgZ3VpbGRJZCB9KVxuICBpZiAocHJvcHMudHlwZSkgbWVzc2FnZS50eXBlID0gcGF5bG9hZC50eXBlXG4gIGlmIChwcm9wcy53ZWJob29rSWQgJiYgcGF5bG9hZC53ZWJob29rX2lkKSBtZXNzYWdlLndlYmhvb2tJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQud2ViaG9va19pZClcbiAgaWYgKHByb3BzLnBvbGwgJiYgcGF5bG9hZC5wb2xsKSBtZXNzYWdlLnBvbGwgPSBib3QudHJhbnNmb3JtZXJzLnBvbGwoYm90LCBwYXlsb2FkLnBvbGwpXG4gIGlmIChwcm9wcy5jYWxsICYmIHBheWxvYWQuY2FsbCkgbWVzc2FnZS5jYWxsID0gYm90LnRyYW5zZm9ybWVycy5tZXNzYWdlQ2FsbChib3QsIHBheWxvYWQuY2FsbClcblxuICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jdXN0b21pemVycy5tZXNzYWdlKGJvdCwgcGF5bG9hZCwgbWVzc2FnZSwgZXh0cmEpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1NZXNzYWdlUGluKGJvdDogQm90LCBwYXlsb2FkOiBEaXNjb3JkTWVzc2FnZVBpbiwgZXh0cmE/OiB7IHNoYXJkSWQ/OiBudW1iZXIgfSk6IE1lc3NhZ2VQaW4ge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMubWVzc2FnZVBpblxuICBjb25zdCBtZXNzYWdlUGluID0ge30gYXMgU2V0dXBEZXNpcmVkUHJvcHM8TWVzc2FnZVBpbiwgVHJhbnNmb3JtZXJzRGVzaXJlZFByb3BlcnRpZXMsIERlc2lyZWRQcm9wZXJ0aWVzQmVoYXZpb3I+XG5cbiAgaWYgKHByb3BzLnBpbm5lZEF0ICYmIHBheWxvYWQucGlubmVkX2F0KSBtZXNzYWdlUGluLnBpbm5lZEF0ID0gRGF0ZS5wYXJzZShwYXlsb2FkLnBpbm5lZF9hdClcbiAgaWYgKHByb3BzLm1lc3NhZ2UgJiYgcGF5bG9hZC5tZXNzYWdlKSBtZXNzYWdlUGluLm1lc3NhZ2UgPSBib3QudHJhbnNmb3JtZXJzLm1lc3NhZ2UoYm90LCBwYXlsb2FkLm1lc3NhZ2UsIHsgc2hhcmRJZDogZXh0cmE/LnNoYXJkSWQgfSlcblxuICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jdXN0b21pemVycy5tZXNzYWdlUGluKGJvdCwgcGF5bG9hZCwgbWVzc2FnZVBpbiwgZXh0cmEpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1NZXNzYWdlU25hcHNob3QoYm90OiBCb3QsIHBheWxvYWQ6IERpc2NvcmRNZXNzYWdlU25hcHNob3QsIGV4dHJhPzogeyBzaGFyZElkPzogbnVtYmVyIH0pOiBNZXNzYWdlU25hcHNob3Qge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMubWVzc2FnZVNuYXBzaG90XG4gIGNvbnN0IG1lc3NhZ2VTbmFwc2hvdCA9IHt9IGFzIFNldHVwRGVzaXJlZFByb3BzPE1lc3NhZ2VTbmFwc2hvdCwgVHJhbnNmb3JtZXJzRGVzaXJlZFByb3BlcnRpZXMsIERlc2lyZWRQcm9wZXJ0aWVzQmVoYXZpb3I+XG5cbiAgaWYgKHByb3BzLm1lc3NhZ2UgJiYgcGF5bG9hZC5tZXNzYWdlKVxuICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgVE9ETzogUGFydGlhbHNcbiAgICBtZXNzYWdlU25hcHNob3QubWVzc2FnZSA9IGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZShib3QsIHBheWxvYWQubWVzc2FnZSwgeyBzaGFyZElkOiBleHRyYT8uc2hhcmRJZCB9KSBhcyBNZXNzYWdlXG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMubWVzc2FnZVNuYXBzaG90KGJvdCwgcGF5bG9hZCwgbWVzc2FnZVNuYXBzaG90LCBleHRyYSlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybU1lc3NhZ2VJbnRlcmFjdGlvbk1ldGFkYXRhKGJvdDogQm90LCBwYXlsb2FkOiBEaXNjb3JkTWVzc2FnZUludGVyYWN0aW9uTWV0YWRhdGEpOiBNZXNzYWdlSW50ZXJhY3Rpb25NZXRhZGF0YSB7XG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5tZXNzYWdlSW50ZXJhY3Rpb25NZXRhZGF0YVxuICBjb25zdCBtZXRhZGF0YSA9IHt9IGFzIFNldHVwRGVzaXJlZFByb3BzPE1lc3NhZ2VJbnRlcmFjdGlvbk1ldGFkYXRhLCBUcmFuc2Zvcm1lcnNEZXNpcmVkUHJvcGVydGllcywgRGVzaXJlZFByb3BlcnRpZXNCZWhhdmlvcj5cblxuICBpZiAocHJvcHMuaWQpIG1ldGFkYXRhLmlkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5pZClcbiAgaWYgKHByb3BzLmF1dGhvcml6aW5nSW50ZWdyYXRpb25Pd25lcnMpIHtcbiAgICBtZXRhZGF0YS5hdXRob3JpemluZ0ludGVncmF0aW9uT3duZXJzID0ge31cbiAgICBpZiAocGF5bG9hZC5hdXRob3JpemluZ19pbnRlZ3JhdGlvbl9vd25lcnNbJzAnXSlcbiAgICAgIG1ldGFkYXRhLmF1dGhvcml6aW5nSW50ZWdyYXRpb25Pd25lcnNbRGlzY29yZEFwcGxpY2F0aW9uSW50ZWdyYXRpb25UeXBlLkd1aWxkSW5zdGFsbF0gPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShcbiAgICAgICAgcGF5bG9hZC5hdXRob3JpemluZ19pbnRlZ3JhdGlvbl9vd25lcnNbJzAnXSxcbiAgICAgIClcbiAgICBpZiAocGF5bG9hZC5hdXRob3JpemluZ19pbnRlZ3JhdGlvbl9vd25lcnNbJzEnXSlcbiAgICAgIG1ldGFkYXRhLmF1dGhvcml6aW5nSW50ZWdyYXRpb25Pd25lcnNbRGlzY29yZEFwcGxpY2F0aW9uSW50ZWdyYXRpb25UeXBlLlVzZXJJbnN0YWxsXSA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKFxuICAgICAgICBwYXlsb2FkLmF1dGhvcml6aW5nX2ludGVncmF0aW9uX293bmVyc1snMSddLFxuICAgICAgKVxuICB9XG4gIGlmIChwcm9wcy5vcmlnaW5hbFJlc3BvbnNlTWVzc2FnZUlkICYmIHBheWxvYWQub3JpZ2luYWxfcmVzcG9uc2VfbWVzc2FnZV9pZClcbiAgICBtZXRhZGF0YS5vcmlnaW5hbFJlc3BvbnNlTWVzc2FnZUlkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5vcmlnaW5hbF9yZXNwb25zZV9tZXNzYWdlX2lkKVxuICBpZiAocHJvcHMudHlwZSkgbWV0YWRhdGEudHlwZSA9IHBheWxvYWQudHlwZVxuICBpZiAocHJvcHMudXNlciAmJiBwYXlsb2FkLnVzZXIpIG1ldGFkYXRhLnVzZXIgPSBib3QudHJhbnNmb3JtZXJzLnVzZXIoYm90LCBwYXlsb2FkLnVzZXIpXG4gIC8vIEFwcGxpY2F0aW9uIGNvbW1hbmQgbWV0YWRhdGFcbiAgaWYgKCd0YXJnZXRfdXNlcicgaW4gcGF5bG9hZCkge1xuICAgIGlmIChwcm9wcy50YXJnZXRVc2VyICYmIHBheWxvYWQudGFyZ2V0X3VzZXIpIG1ldGFkYXRhLnRhcmdldFVzZXIgPSBib3QudHJhbnNmb3JtZXJzLnVzZXIoYm90LCBwYXlsb2FkLnRhcmdldF91c2VyKVxuICAgIGlmIChwcm9wcy50YXJnZXRNZXNzYWdlSWQgJiYgcGF5bG9hZC50YXJnZXRfbWVzc2FnZV9pZCkgbWV0YWRhdGEudGFyZ2V0TWVzc2FnZUlkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC50YXJnZXRfbWVzc2FnZV9pZClcbiAgfVxuICAvLyBNZXNzYWdlIGNvbXBvbmVudCBtZXRhZGF0YVxuICBpZiAoJ2ludGVyYWN0ZWRfbWVzc2FnZV9pZCcgaW4gcGF5bG9hZCkge1xuICAgIGlmIChwcm9wcy5pbnRlcmFjdGVkTWVzc2FnZUlkICYmIHBheWxvYWQuaW50ZXJhY3RlZF9tZXNzYWdlX2lkKVxuICAgICAgbWV0YWRhdGEuaW50ZXJhY3RlZE1lc3NhZ2VJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaW50ZXJhY3RlZF9tZXNzYWdlX2lkKVxuICB9XG4gIC8vIE1vZGFsIHN1Ym1pdCBtZXRhZGF0YVxuICBpZiAoJ3RyaWdnZXJpbmdfaW50ZXJhY3Rpb25fbWV0YWRhdGEnIGluIHBheWxvYWQpIHtcbiAgICBpZiAocHJvcHMudHJpZ2dlcmluZ0ludGVyYWN0aW9uTWV0YWRhdGEgJiYgcGF5bG9hZC50cmlnZ2VyaW5nX2ludGVyYWN0aW9uX21ldGFkYXRhKVxuICAgICAgbWV0YWRhdGEudHJpZ2dlcmluZ0ludGVyYWN0aW9uTWV0YWRhdGEgPSBib3QudHJhbnNmb3JtZXJzLm1lc3NhZ2VJbnRlcmFjdGlvbk1ldGFkYXRhKGJvdCwgcGF5bG9hZC50cmlnZ2VyaW5nX2ludGVyYWN0aW9uX21ldGFkYXRhKVxuICB9XG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMubWVzc2FnZUludGVyYWN0aW9uTWV0YWRhdGEoYm90LCBwYXlsb2FkLCBtZXRhZGF0YSlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybU1lc3NhZ2VDYWxsKGJvdDogQm90LCBwYXlsb2FkOiBEaXNjb3JkTWVzc2FnZUNhbGwpOiBNZXNzYWdlQ2FsbCB7XG4gIGNvbnN0IGNhbGwgPSB7fSBhcyBTZXR1cERlc2lyZWRQcm9wczxNZXNzYWdlQ2FsbCwgVHJhbnNmb3JtZXJzRGVzaXJlZFByb3BlcnRpZXMsIERlc2lyZWRQcm9wZXJ0aWVzQmVoYXZpb3I+XG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5tZXNzYWdlQ2FsbFxuXG4gIGlmIChwcm9wcy5wYXJ0aWNpcGFudHMgJiYgcGF5bG9hZC5wYXJ0aWNpcGFudHMpIGNhbGwucGFydGljaXBhbnRzID0gcGF5bG9hZC5wYXJ0aWNpcGFudHMubWFwKCh4KSA9PiBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZSh4KSlcbiAgaWYgKHByb3BzLmVuZGVkVGltZXN0YW1wICYmIHBheWxvYWQuZW5kZWRfdGltZXN0YW1wKSBjYWxsLmVuZGVkVGltZXN0YW1wID0gRGF0ZS5wYXJzZShwYXlsb2FkLmVuZGVkX3RpbWVzdGFtcClcblxuICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jdXN0b21pemVycy5tZXNzYWdlQ2FsbChib3QsIHBheWxvYWQsIGNhbGwpXG59XG4iXSwibmFtZXMiOlsiYmFzZU1lc3NhZ2UiLCJ0cmFuc2Zvcm1NZXNzYWdlIiwidHJhbnNmb3JtTWVzc2FnZUNhbGwiLCJ0cmFuc2Zvcm1NZXNzYWdlSW50ZXJhY3Rpb25NZXRhZGF0YSIsInRyYW5zZm9ybU1lc3NhZ2VQaW4iLCJ0cmFuc2Zvcm1NZXNzYWdlU25hcHNob3QiLCJFTVBUWV9TVFJJTkciLCJ1bmRlZmluZWQiLCJjcm9zc3Bvc3RlZCIsImZsYWdzIiwiY29udGFpbnMiLCJNZXNzYWdlRmxhZ3MiLCJDcm9zc3Bvc3RlZCIsInZhbHVlIiwiYWRkIiwicmVtb3ZlIiwiZXBoZW1lcmFsIiwiRXBoZW1lcmFsIiwiZmFpbGVkVG9NZW50aW9uU29tZVJvbGVzSW5UaHJlYWQiLCJGYWlsZWRUb01lbnRpb25Tb21lUm9sZXNJblRocmVhZCIsImhhc1RocmVhZCIsIkhhc1RocmVhZCIsImlzQ3Jvc3Nwb3N0IiwiSXNDcm9zc3Bvc3QiLCJsb2FkaW5nIiwiTG9hZGluZyIsIm1lbnRpb25lZFVzZXJJZHMiLCJtZW50aW9ucyIsIm1hcCIsInVzZXIiLCJpZCIsIm1lbnRpb25FdmVyeW9uZSIsImJpdGZpZWxkIiwicGlubmVkIiwic291cmNlTWVzc2FnZURlbGV0ZWQiLCJTb3VyY2VNZXNzYWdlRGVsZXRlZCIsInN1cHByZXNzRW1iZWRzIiwiU3VwcHJlc3NFbWJlZHMiLCJzdXBwcmVzc05vdGlmaWNhdGlvbnMiLCJTdXBwcmVzc05vdGlmaWNhdGlvbnMiLCJ0aW1lc3RhbXAiLCJzbm93Zmxha2VUb1RpbWVzdGFtcCIsInR0cyIsInVyZ2VudCIsIlVyZ2VudCIsImJvdCIsInBheWxvYWQiLCJleHRyYSIsImd1aWxkSWQiLCJndWlsZF9pZCIsInRyYW5zZm9ybWVycyIsInNub3dmbGFrZSIsInVzZXJJZCIsImF1dGhvciIsIm1lc3NhZ2UiLCJPYmplY3QiLCJjcmVhdGUiLCJUb2dnbGVCaXRmaWVsZCIsInByb3BzIiwiZGVzaXJlZFByb3BlcnRpZXMiLCJhcHBsaWNhdGlvbiIsInNoYXJkSWQiLCJhcHBsaWNhdGlvbklkIiwiYXBwbGljYXRpb25faWQiLCJhdHRhY2htZW50cyIsImxlbmd0aCIsImF0dGFjaG1lbnQiLCJjaGFubmVsSWQiLCJjaGFubmVsX2lkIiwiY29tcG9uZW50cyIsImNvbXAiLCJjb21wb25lbnQiLCJjb250ZW50IiwiZWRpdGVkVGltZXN0YW1wIiwiZWRpdGVkX3RpbWVzdGFtcCIsIkRhdGUiLCJwYXJzZSIsImVtYmVkcyIsImVtYmVkIiwiaW50ZXJhY3Rpb25NZXRhZGF0YSIsImludGVyYWN0aW9uX21ldGFkYXRhIiwibWVzc2FnZUludGVyYWN0aW9uTWV0YWRhdGEiLCJpbnRlcmFjdGlvbiIsIm1lc3NhZ2VJbnRlcmFjdGlvblByb3BzIiwibWVzc2FnZUludGVyYWN0aW9uIiwibWVtYmVyIiwibmFtZSIsInR5cGUiLCJtZW50aW9uX2V2ZXJ5b25lIiwibWVudGlvbmVkQ2hhbm5lbElkcyIsIm1lbnRpb25fY2hhbm5lbHMiLCJtIiwibWF0Y2giLCJDSEFOTkVMX01FTlRJT05fUkVHRVgiLCJ0ZXh0Iiwic3Vic3RyaW5nIiwibWVudGlvbmVkUm9sZUlkcyIsIm1lbnRpb25fcm9sZXMiLCJtZXNzYWdlUmVmZXJlbmNlIiwibWVzc2FnZV9yZWZlcmVuY2UiLCJyZWZlcmVuY2UiLCJtZXNzYWdlUmVmZXJlbmNlUHJvcHMiLCJtZXNzYWdlSWQiLCJtZXNzYWdlX2lkIiwicmVmZXJlbmNlZE1lc3NhZ2UiLCJyZWZlcmVuY2VkX21lc3NhZ2UiLCJtZXNzYWdlU25hcHNob3RzIiwibWVzc2FnZV9zbmFwc2hvdHMiLCJzbmFwIiwibWVzc2FnZVNuYXBzaG90Iiwibm9uY2UiLCJyZWFjdGlvbnMiLCJyZWFjdGlvbiIsIm1lIiwibWVCdXJzdCIsIm1lX2J1cnN0IiwiY291bnQiLCJjb3VudERldGFpbHMiLCJidXJzdCIsImNvdW50X2RldGFpbHMiLCJub3JtYWwiLCJlbW9qaSIsImJ1cnN0Q29sb3JzIiwiYnVyc3RfY29sb3JzIiwic3RpY2tlckl0ZW1zIiwic3RpY2tlcl9pdGVtcyIsIml0ZW0iLCJmb3JtYXRUeXBlIiwiZm9ybWF0X3R5cGUiLCJ0aHJlYWQiLCJjaGFubmVsIiwid2ViaG9va0lkIiwid2ViaG9va19pZCIsInBvbGwiLCJjYWxsIiwibWVzc2FnZUNhbGwiLCJjdXN0b21pemVycyIsIm1lc3NhZ2VQaW4iLCJwaW5uZWRBdCIsInBpbm5lZF9hdCIsIm1ldGFkYXRhIiwiYXV0aG9yaXppbmdJbnRlZ3JhdGlvbk93bmVycyIsImF1dGhvcml6aW5nX2ludGVncmF0aW9uX293bmVycyIsIkRpc2NvcmRBcHBsaWNhdGlvbkludGVncmF0aW9uVHlwZSIsIkd1aWxkSW5zdGFsbCIsIlVzZXJJbnN0YWxsIiwib3JpZ2luYWxSZXNwb25zZU1lc3NhZ2VJZCIsIm9yaWdpbmFsX3Jlc3BvbnNlX21lc3NhZ2VfaWQiLCJ0YXJnZXRVc2VyIiwidGFyZ2V0X3VzZXIiLCJ0YXJnZXRNZXNzYWdlSWQiLCJ0YXJnZXRfbWVzc2FnZV9pZCIsImludGVyYWN0ZWRNZXNzYWdlSWQiLCJpbnRlcmFjdGVkX21lc3NhZ2VfaWQiLCJ0cmlnZ2VyaW5nSW50ZXJhY3Rpb25NZXRhZGF0YSIsInRyaWdnZXJpbmdfaW50ZXJhY3Rpb25fbWV0YWRhdGEiLCJwYXJ0aWNpcGFudHMiLCJ4IiwiZW5kZWRUaW1lc3RhbXAiLCJlbmRlZF90aW1lc3RhbXAiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O1FBMkJhQTtlQUFBQTs7UUFvSEdDO2VBQUFBOztRQW1MQUM7ZUFBQUE7O1FBdkNBQztlQUFBQTs7UUFyQkFDO2VBQUFBOztRQVVBQztlQUFBQTs7O3VCQXhRVDsyQkFDK0I7dUJBYS9CO2dDQUN3QjtBQUUvQixNQUFNQyxlQUFlO0FBRWQsTUFBTU4sY0FBdUI7SUFDbEMsMkVBQTJFO0lBQzNFLEdBQUlPLFNBQVM7SUFFYixJQUFJQyxlQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDQyxLQUFLLEVBQUVDLFNBQVNDLG1CQUFZLENBQUNDLFdBQVcsS0FBSztJQUMzRDtJQUNBLElBQUlKLGFBQVlLLE1BQWdCO1FBQzlCLElBQUksQ0FBQyxJQUFJLENBQUNKLEtBQUssRUFBRTtRQUNqQixJQUFJSSxPQUFPLElBQUksQ0FBQ0osS0FBSyxDQUFDSyxHQUFHLENBQUNILG1CQUFZLENBQUNDLFdBQVc7YUFDN0MsSUFBSSxDQUFDSCxLQUFLLENBQUNNLE1BQU0sQ0FBQ0osbUJBQVksQ0FBQ0MsV0FBVztJQUNqRDtJQUNBLElBQUlJLGFBQVk7UUFDZCxPQUFPLElBQUksQ0FBQ1AsS0FBSyxFQUFFQyxTQUFTQyxtQkFBWSxDQUFDTSxTQUFTLEtBQUs7SUFDekQ7SUFDQSxJQUFJRCxXQUFVSCxNQUFnQjtRQUM1QixJQUFJLENBQUMsSUFBSSxDQUFDSixLQUFLLEVBQUU7UUFDakIsSUFBSUksT0FBTyxJQUFJLENBQUNKLEtBQUssQ0FBQ0ssR0FBRyxDQUFDSCxtQkFBWSxDQUFDTSxTQUFTO2FBQzNDLElBQUksQ0FBQ1IsS0FBSyxDQUFDTSxNQUFNLENBQUNKLG1C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
@@ -32,7 +32,7 @@ function transformGuildOnboarding(bot, payload) {
32
32
  function transformGuildOnboardingPrompt(bot, payload) {
33
33
  const props = bot.transformers.desiredProperties.guildOnboardingPrompt;
34
34
  const prompt = {};
35
- if (props.id && payload.id) prompt.id = bot.transformers.snowflake(prompt.id);
35
+ if (props.id && payload.id) prompt.id = bot.transformers.snowflake(payload.id);
36
36
  if (props.inOnboarding && payload.in_onboarding) prompt.inOnboarding = payload.in_onboarding;
37
37
  if (props.required && payload.required) prompt.required = payload.required;
38
38
  if (props.singleSelect && payload.single_select) prompt.singleSelect = payload.single_select;
@@ -53,4 +53,4 @@ function transformGuildOnboardingPromptOption(bot, payload) {
53
53
  return bot.transformers.customizers.guildOnboardingPromptOption(bot, payload, option);
54
54
  }
55
55
 
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvb25ib2FyZGluZy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IERpc2NvcmRHdWlsZE9uYm9hcmRpbmcsIERpc2NvcmRHdWlsZE9uYm9hcmRpbmdQcm9tcHQsIERpc2NvcmRHdWlsZE9uYm9hcmRpbmdQcm9tcHRPcHRpb24gfSBmcm9tICdAZGlzY29yZGVuby90eXBlcydcbmltcG9ydCB0eXBlIHsgR3VpbGRPbmJvYXJkaW5nLCBHdWlsZE9uYm9hcmRpbmdQcm9tcHQsIEd1aWxkT25ib2FyZGluZ1Byb21wdE9wdGlvbiwgSW50ZXJuYWxCb3QgfSBmcm9tICcuLi9pbmRleC5qcydcblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybUd1aWxkT25ib2FyZGluZyhib3Q6IEludGVybmFsQm90LCBwYXlsb2FkOiBEaXNjb3JkR3VpbGRPbmJvYXJkaW5nKTogdHlwZW9mIGJvdC50cmFuc2Zvcm1lcnMuJGluZmVycmVkVHlwZXMuZ3VpbGRPbmJvYXJkaW5nIHtcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLmd1aWxkT25ib2FyZGluZ1xuICBjb25zdCBndWlsZE9uYm9hcmRpbmcgPSB7fSBhcyBHdWlsZE9uYm9hcmRpbmdcblxuICBpZiAocHJvcHMuZ3VpbGRJZCAmJiBwYXlsb2FkLmd1aWxkX2lkKSBndWlsZE9uYm9hcmRpbmcuZ3VpbGRJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuZ3VpbGRfaWQpXG4gIGlmIChwcm9wcy5kZWZhdWx0Q2hhbm5lbElkcyAmJiBwYXlsb2FkLmRlZmF1bHRfY2hhbm5lbF9pZHMpXG4gICAgZ3VpbGRPbmJvYXJkaW5nLmRlZmF1bHRDaGFubmVsSWRzID0gcGF5bG9hZC5kZWZhdWx0X2NoYW5uZWxfaWRzLm1hcChib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZSlcbiAgaWYgKHByb3BzLmVuYWJsZWQpIGd1aWxkT25ib2FyZGluZy5lbmFibGVkID0gcGF5bG9hZC5lbmFibGVkXG4gIGlmIChwcm9wcy5tb2RlKSBndWlsZE9uYm9hcmRpbmcubW9kZSA9IHBheWxvYWQubW9kZVxuICBpZiAocHJvcHMucHJvbXB0cyAmJiBwYXlsb2FkLnByb21wdHMpIGd1aWxkT25ib2FyZGluZy5wcm9tcHRzID0gcGF5bG9hZC5wcm9tcHRzLm1hcCgocHJvbXB0KSA9PiBib3QudHJhbnNmb3JtZXJzLmd1aWxkT25ib2FyZGluZ1Byb21wdChib3QsIHByb21wdCkpXG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMuZ3VpbGRPbmJvYXJkaW5nKGJvdCwgcGF5bG9hZCwgZ3VpbGRPbmJvYXJkaW5nKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtR3VpbGRPbmJvYXJkaW5nUHJvbXB0KFxuICBib3Q6IEludGVybmFsQm90LFxuICBwYXlsb2FkOiBEaXNjb3JkR3VpbGRPbmJvYXJkaW5nUHJvbXB0LFxuKTogdHlwZW9mIGJvdC50cmFuc2Zvcm1lcnMuJGluZmVycmVkVHlwZXMuZ3VpbGRPbmJvYXJkaW5nUHJvbXB0IHtcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLmd1aWxkT25ib2FyZGluZ1Byb21wdFxuICBjb25zdCBwcm9tcHQgPSB7fSBhcyBHdWlsZE9uYm9hcmRpbmdQcm9tcHRcblxuICBpZiAocHJvcHMuaWQgJiYgcGF5bG9hZC5pZCkgcHJvbXB0LmlkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocHJvbXB0LmlkKVxuICBpZiAocHJvcHMuaW5PbmJvYXJkaW5nICYmIHBheWxvYWQuaW5fb25ib2FyZGluZykgcHJvbXB0LmluT25ib2FyZGluZyA9IHBheWxvYWQuaW5fb25ib2FyZGluZ1xuICBpZiAocHJvcHMucmVxdWlyZWQgJiYgcGF5bG9hZC5yZXF1aXJlZCkgcHJvbXB0LnJlcXVpcmVkID0gcGF5bG9hZC5yZXF1aXJlZFxuICBpZiAocHJvcHMuc2luZ2xlU2VsZWN0ICYmIHBheWxvYWQuc2luZ2xlX3NlbGVjdCkgcHJvbXB0LnNpbmdsZVNlbGVjdCA9IHBheWxvYWQuc2luZ2xlX3NlbGVjdFxuICBpZiAocHJvcHMudGl0bGUgJiYgcGF5bG9hZC50aXRsZSkgcHJvbXB0LnRpdGxlID0gcGF5bG9hZC50aXRsZVxuICBpZiAocHJvcHMudHlwZSkgcHJvbXB0LnR5cGUgPSBwYXlsb2FkLnR5cGVcbiAgaWYgKHByb3BzLm9wdGlvbnMgJiYgcGF5bG9hZC5vcHRpb25zKSBwcm9tcHQub3B0aW9ucyA9IHBheWxvYWQub3B0aW9ucy5tYXAoKG9wdGlvbikgPT4gYm90LnRyYW5zZm9ybWVycy5ndWlsZE9uYm9hcmRpbmdQcm9tcHRPcHRpb24oYm90LCBvcHRpb24pKVxuXG4gIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmN1c3RvbWl6ZXJzLmd1aWxkT25ib2FyZGluZ1Byb21wdChib3QsIHBheWxvYWQsIHByb21wdClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybUd1aWxkT25ib2FyZGluZ1Byb21wdE9wdGlvbihcbiAgYm90OiBJbnRlcm5hbEJvdCxcbiAgcGF5bG9hZDogRGlzY29yZEd1aWxkT25ib2FyZGluZ1Byb21wdE9wdGlvbixcbik6IHR5cGVvZiBib3QudHJhbnNmb3JtZXJzLiRpbmZlcnJlZFR5cGVzLmd1aWxkT25ib2FyZGluZ1Byb21wdE9wdGlvbiB7XG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5ndWlsZE9uYm9hcmRpbmdQcm9tcHRPcHRpb25cbiAgY29uc3Qgb3B0aW9uID0ge30gYXMgR3VpbGRPbmJvYXJkaW5nUHJvbXB0T3B0aW9uXG5cbiAgaWYgKHByb3BzLmlkICYmIHBheWxvYWQuaWQpIG9wdGlvbi5pZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaWQpXG4gIGlmIChwcm9wcy5jaGFubmVsSWRzICYmIHBheWxvYWQuY2hhbm5lbF9pZHMpIG9wdGlvbi5jaGFubmVsSWRzID0gcGF5bG9hZC5jaGFubmVsX2lkcy5tYXAoYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UpXG4gIGlmIChwcm9wcy5yb2xlSWRzICYmIHBheWxvYWQucm9sZV9pZHMpIG9wdGlvbi5yb2xlSWRzID0gcGF5bG9hZC5yb2xlX2lkcy5tYXAoYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UpXG4gIGlmIChwcm9wcy5lbW9qaSAmJiBwYXlsb2FkLmVtb2ppKSBvcHRpb24uZW1vamkgPSBib3QudHJhbnNmb3JtZXJzLmVtb2ppKGJvdCwgcGF5bG9hZC5lbW9qaSlcbiAgaWYgKHByb3BzLnRpdGxlICYmIHBheWxvYWQudGl0bGUpIG9wdGlvbi50aXRsZSA9IHBheWxvYWQudGl0bGVcbiAgaWYgKHByb3BzLmRlc2NyaXB0aW9uICYmIHBheWxvYWQuZGVzY3JpcHRpb24pIG9wdGlvbi5kZXNjcmlwdGlvbiA9IHBheWxvYWQuZGVzY3JpcHRpb25cblxuICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jdXN0b21pemVycy5ndWlsZE9uYm9hcmRpbmdQcm9tcHRPcHRpb24oYm90LCBwYXlsb2FkLCBvcHRpb24pXG59XG4iXSwibmFtZXMiOlsidHJhbnNmb3JtR3VpbGRPbmJvYXJkaW5nIiwidHJhbnNmb3JtR3VpbGRPbmJvYXJkaW5nUHJvbXB0IiwidHJhbnNmb3JtR3VpbGRPbmJvYXJkaW5nUHJvbXB0T3B0aW9uIiwiYm90IiwicGF5bG9hZCIsInByb3BzIiwidHJhbnNmb3JtZXJzIiwiZGVzaXJlZFByb3BlcnRpZXMiLCJndWlsZE9uYm9hcmRpbmciLCJndWlsZElkIiwiZ3VpbGRfaWQiLCJzbm93Zmxha2UiLCJkZWZhdWx0Q2hhbm5lbElkcyIsImRlZmF1bHRfY2hhbm5lbF9pZHMiLCJtYXAiLCJlbmFibGVkIiwibW9kZSIsInByb21wdHMiLCJwcm9tcHQiLCJndWlsZE9uYm9hcmRpbmdQcm9tcHQiLCJjdXN0b21pemVycyIsImlkIiwiaW5PbmJvYXJkaW5nIiwiaW5fb25ib2FyZGluZyIsInJlcXVpcmVkIiwic2luZ2xlU2VsZWN0Iiwic2luZ2xlX3NlbGVjdCIsInRpdGxlIiwidHlwZSIsIm9wdGlvbnMiLCJvcHRpb24iLCJndWlsZE9uYm9hcmRpbmdQcm9tcHRPcHRpb24iLCJjaGFubmVsSWRzIiwiY2hhbm5lbF9pZHMiLCJyb2xlSWRzIiwicm9sZV9pZHMiLCJlbW9qaSIsImRlc2NyaXB0aW9uIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztRQUdnQkE7ZUFBQUE7O1FBY0FDO2VBQUFBOztRQWtCQUM7ZUFBQUE7OztBQWhDVCxTQUFTRix5QkFBeUJHLEdBQWdCLEVBQUVDLE9BQStCO0lBQ3hGLE1BQU1DLFFBQVFGLElBQUlHLFlBQVksQ0FBQ0MsaUJBQWlCLENBQUNDLGVBQWU7SUFDaEUsTUFBTUEsa0JBQWtCLENBQUM7SUFFekIsSUFBSUgsTUFBTUksT0FBTyxJQUFJTCxRQUFRTSxRQUFRLEVBQUVGLGdCQUFnQkMsT0FBTyxHQUFHTixJQUFJRyxZQUFZLENBQUNLLFNBQVMsQ0FBQ1AsUUFBUU0sUUFBUTtJQUM1RyxJQUFJTCxNQUFNTyxpQkFBaUIsSUFBSVIsUUFBUVMsbUJBQW1CLEVBQ3hETCxnQkFBZ0JJLGlCQUFpQixHQUFHUixRQUFRUyxtQkFBbUIsQ0FBQ0MsR0FBRyxDQUFDWCxJQUFJRyxZQUFZLENBQUNLLFNBQVM7SUFDaEcsSUFBSU4sTUFBTVUsT0FBTyxFQUFFUCxnQkFBZ0JPLE9BQU8sR0FBR1gsUUFBUVcsT0FBTztJQUM1RCxJQUFJVixNQUFNVyxJQUFJLEVBQUVSLGdCQUFnQlEsSUFBSSxHQUFHWixRQUFRWSxJQUFJO0lBQ25ELElBQUlYLE1BQU1ZLE9BQU8sSUFBSWIsUUFBUWEsT0FBTyxFQUFFVCxnQkFBZ0JTLE9BQU8sR0FBR2IsUUFBUWEsT0FBTyxDQUFDSCxHQUFHLENBQUMsQ0FBQ0ksU0FBV2YsSUFBSUcsWUFBWSxDQUFDYSxxQkFBcUIsQ0FBQ2hCLEtBQUtlO0lBRTVJLE9BQU9mLElBQUlHLFlBQVksQ0FBQ2MsV0FBVyxDQUFDWixl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
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvb25ib2FyZGluZy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IERpc2NvcmRHdWlsZE9uYm9hcmRpbmcsIERpc2NvcmRHdWlsZE9uYm9hcmRpbmdQcm9tcHQsIERpc2NvcmRHdWlsZE9uYm9hcmRpbmdQcm9tcHRPcHRpb24gfSBmcm9tICdAZGlzY29yZGVuby90eXBlcydcbmltcG9ydCB0eXBlIHtcbiAgQm90LFxuICBEZXNpcmVkUHJvcGVydGllc0JlaGF2aW9yLFxuICBHdWlsZE9uYm9hcmRpbmcsXG4gIEd1aWxkT25ib2FyZGluZ1Byb21wdCxcbiAgR3VpbGRPbmJvYXJkaW5nUHJvbXB0T3B0aW9uLFxuICBTZXR1cERlc2lyZWRQcm9wcyxcbiAgVHJhbnNmb3JtZXJzRGVzaXJlZFByb3BlcnRpZXMsXG59IGZyb20gJy4uL2luZGV4LmpzJ1xuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtR3VpbGRPbmJvYXJkaW5nKGJvdDogQm90LCBwYXlsb2FkOiBEaXNjb3JkR3VpbGRPbmJvYXJkaW5nKTogR3VpbGRPbmJvYXJkaW5nIHtcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLmd1aWxkT25ib2FyZGluZ1xuICBjb25zdCBndWlsZE9uYm9hcmRpbmcgPSB7fSBhcyBTZXR1cERlc2lyZWRQcm9wczxHdWlsZE9uYm9hcmRpbmcsIFRyYW5zZm9ybWVyc0Rlc2lyZWRQcm9wZXJ0aWVzLCBEZXNpcmVkUHJvcGVydGllc0JlaGF2aW9yPlxuXG4gIGlmIChwcm9wcy5ndWlsZElkICYmIHBheWxvYWQuZ3VpbGRfaWQpIGd1aWxkT25ib2FyZGluZy5ndWlsZElkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5ndWlsZF9pZClcbiAgaWYgKHByb3BzLmRlZmF1bHRDaGFubmVsSWRzICYmIHBheWxvYWQuZGVmYXVsdF9jaGFubmVsX2lkcylcbiAgICBndWlsZE9uYm9hcmRpbmcuZGVmYXVsdENoYW5uZWxJZHMgPSBwYXlsb2FkLmRlZmF1bHRfY2hhbm5lbF9pZHMubWFwKGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKVxuICBpZiAocHJvcHMuZW5hYmxlZCkgZ3VpbGRPbmJvYXJkaW5nLmVuYWJsZWQgPSBwYXlsb2FkLmVuYWJsZWRcbiAgaWYgKHByb3BzLm1vZGUpIGd1aWxkT25ib2FyZGluZy5tb2RlID0gcGF5bG9hZC5tb2RlXG4gIGlmIChwcm9wcy5wcm9tcHRzICYmIHBheWxvYWQucHJvbXB0cykgZ3VpbGRPbmJvYXJkaW5nLnByb21wdHMgPSBwYXlsb2FkLnByb21wdHMubWFwKChwcm9tcHQpID0+IGJvdC50cmFuc2Zvcm1lcnMuZ3VpbGRPbmJvYXJkaW5nUHJvbXB0KGJvdCwgcHJvbXB0KSlcblxuICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jdXN0b21pemVycy5ndWlsZE9uYm9hcmRpbmcoYm90LCBwYXlsb2FkLCBndWlsZE9uYm9hcmRpbmcpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1HdWlsZE9uYm9hcmRpbmdQcm9tcHQoYm90OiBCb3QsIHBheWxvYWQ6IERpc2NvcmRHdWlsZE9uYm9hcmRpbmdQcm9tcHQpOiBHdWlsZE9uYm9hcmRpbmdQcm9tcHQge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuZ3VpbGRPbmJvYXJkaW5nUHJvbXB0XG4gIGNvbnN0IHByb21wdCA9IHt9IGFzIFNldHVwRGVzaXJlZFByb3BzPEd1aWxkT25ib2FyZGluZ1Byb21wdCwgVHJhbnNmb3JtZXJzRGVzaXJlZFByb3BlcnRpZXMsIERlc2lyZWRQcm9wZXJ0aWVzQmVoYXZpb3I+XG5cbiAgaWYgKHByb3BzLmlkICYmIHBheWxvYWQuaWQpIHByb21wdC5pZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaWQpXG4gIGlmIChwcm9wcy5pbk9uYm9hcmRpbmcgJiYgcGF5bG9hZC5pbl9vbmJvYXJkaW5nKSBwcm9tcHQuaW5PbmJvYXJkaW5nID0gcGF5bG9hZC5pbl9vbmJvYXJkaW5nXG4gIGlmIChwcm9wcy5yZXF1aXJlZCAmJiBwYXlsb2FkLnJlcXVpcmVkKSBwcm9tcHQucmVxdWlyZWQgPSBwYXlsb2FkLnJlcXVpcmVkXG4gIGlmIChwcm9wcy5zaW5nbGVTZWxlY3QgJiYgcGF5bG9hZC5zaW5nbGVfc2VsZWN0KSBwcm9tcHQuc2luZ2xlU2VsZWN0ID0gcGF5bG9hZC5zaW5nbGVfc2VsZWN0XG4gIGlmIChwcm9wcy50aXRsZSAmJiBwYXlsb2FkLnRpdGxlKSBwcm9tcHQudGl0bGUgPSBwYXlsb2FkLnRpdGxlXG4gIGlmIChwcm9wcy50eXBlKSBwcm9tcHQudHlwZSA9IHBheWxvYWQudHlwZVxuICBpZiAocHJvcHMub3B0aW9ucyAmJiBwYXlsb2FkLm9wdGlvbnMpIHByb21wdC5vcHRpb25zID0gcGF5bG9hZC5vcHRpb25zLm1hcCgob3B0aW9uKSA9PiBib3QudHJhbnNmb3JtZXJzLmd1aWxkT25ib2FyZGluZ1Byb21wdE9wdGlvbihib3QsIG9wdGlvbikpXG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMuZ3VpbGRPbmJvYXJkaW5nUHJvbXB0KGJvdCwgcGF5bG9hZCwgcHJvbXB0KVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtR3VpbGRPbmJvYXJkaW5nUHJvbXB0T3B0aW9uKGJvdDogQm90LCBwYXlsb2FkOiBEaXNjb3JkR3VpbGRPbmJvYXJkaW5nUHJvbXB0T3B0aW9uKTogR3VpbGRPbmJvYXJkaW5nUHJvbXB0T3B0aW9uIHtcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLmd1aWxkT25ib2FyZGluZ1Byb21wdE9wdGlvblxuICBjb25zdCBvcHRpb24gPSB7fSBhcyBTZXR1cERlc2lyZWRQcm9wczxHdWlsZE9uYm9hcmRpbmdQcm9tcHRPcHRpb24sIFRyYW5zZm9ybWVyc0Rlc2lyZWRQcm9wZXJ0aWVzLCBEZXNpcmVkUHJvcGVydGllc0JlaGF2aW9yPlxuXG4gIGlmIChwcm9wcy5pZCAmJiBwYXlsb2FkLmlkKSBvcHRpb24uaWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmlkKVxuICBpZiAocHJvcHMuY2hhbm5lbElkcyAmJiBwYXlsb2FkLmNoYW5uZWxfaWRzKSBvcHRpb24uY2hhbm5lbElkcyA9IHBheWxvYWQuY2hhbm5lbF9pZHMubWFwKGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKVxuICBpZiAocHJvcHMucm9sZUlkcyAmJiBwYXlsb2FkLnJvbGVfaWRzKSBvcHRpb24ucm9sZUlkcyA9IHBheWxvYWQucm9sZV9pZHMubWFwKGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKVxuICBpZiAocHJvcHMuZW1vamkgJiYgcGF5bG9hZC5lbW9qaSkgb3B0aW9uLmVtb2ppID0gYm90LnRyYW5zZm9ybWVycy5lbW9qaShib3QsIHBheWxvYWQuZW1vamkpXG4gIGlmIChwcm9wcy50aXRsZSAmJiBwYXlsb2FkLnRpdGxlKSBvcHRpb24udGl0bGUgPSBwYXlsb2FkLnRpdGxlXG4gIGlmIChwcm9wcy5kZXNjcmlwdGlvbiAmJiBwYXlsb2FkLmRlc2NyaXB0aW9uKSBvcHRpb24uZGVzY3JpcHRpb24gPSBwYXlsb2FkLmRlc2NyaXB0aW9uXG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMuZ3VpbGRPbmJvYXJkaW5nUHJvbXB0T3B0aW9uKGJvdCwgcGF5bG9hZCwgb3B0aW9uKVxufVxuIl0sIm5hbWVzIjpbInRyYW5zZm9ybUd1aWxkT25ib2FyZGluZyIsInRyYW5zZm9ybUd1aWxkT25ib2FyZGluZ1Byb21wdCIsInRyYW5zZm9ybUd1aWxkT25ib2FyZGluZ1Byb21wdE9wdGlvbiIsImJvdCIsInBheWxvYWQiLCJwcm9wcyIsInRyYW5zZm9ybWVycyIsImRlc2lyZWRQcm9wZXJ0aWVzIiwiZ3VpbGRPbmJvYXJkaW5nIiwiZ3VpbGRJZCIsImd1aWxkX2lkIiwic25vd2ZsYWtlIiwiZGVmYXVsdENoYW5uZWxJZHMiLCJkZWZhdWx0X2NoYW5uZWxfaWRzIiwibWFwIiwiZW5hYmxlZCIsIm1vZGUiLCJwcm9tcHRzIiwicHJvbXB0IiwiZ3VpbGRPbmJvYXJkaW5nUHJvbXB0IiwiY3VzdG9taXplcnMiLCJpZCIsImluT25ib2FyZGluZyIsImluX29uYm9hcmRpbmciLCJyZXF1aXJlZCIsInNpbmdsZVNlbGVjdCIsInNpbmdsZV9zZWxlY3QiLCJ0aXRsZSIsInR5cGUiLCJvcHRpb25zIiwib3B0aW9uIiwiZ3VpbGRPbmJvYXJkaW5nUHJvbXB0T3B0aW9uIiwiY2hhbm5lbElkcyIsImNoYW5uZWxfaWRzIiwicm9sZUlkcyIsInJvbGVfaWRzIiwiZW1vamkiLCJkZXNjcmlwdGlvbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7UUFXZ0JBO2VBQUFBOztRQWNBQztlQUFBQTs7UUFlQUM7ZUFBQUE7OztBQTdCVCxTQUFTRix5QkFBeUJHLEdBQVEsRUFBRUMsT0FBK0I7SUFDaEYsTUFBTUMsUUFBUUYsSUFBSUcsWUFBWSxDQUFDQyxpQkFBaUIsQ0FBQ0MsZUFBZTtJQUNoRSxNQUFNQSxrQkFBa0IsQ0FBQztJQUV6QixJQUFJSCxNQUFNSSxPQUFPLElBQUlMLFFBQVFNLFFBQVEsRUFBRUYsZ0JBQWdCQyxPQUFPLEdBQUdOLElBQUlHLFlBQVksQ0FBQ0ssU0FBUyxDQUFDUCxRQUFRTSxRQUFRO0lBQzVHLElBQUlMLE1BQU1PLGlCQUFpQixJQUFJUixRQUFRUyxtQkFBbUIsRUFDeERMLGdCQUFnQkksaUJBQWlCLEdBQUdSLFFBQVFTLG1CQUFtQixDQUFDQyxHQUFHLENBQUNYLElBQUlHLFlBQVksQ0FBQ0ssU0FBUztJQUNoRyxJQUFJTixNQUFNVSxPQUFPLEVBQUVQLGdCQUFnQk8sT0FBTyxHQUFHWCxRQUFRVyxPQUFPO0lBQzVELElBQUlWLE1BQU1XLElBQUksRUFBRVIsZ0JBQWdCUSxJQUFJLEdBQUdaLFFBQVFZLElBQUk7SUFDbkQsSUFBSVgsTUFBTVksT0FB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
@@ -28,14 +28,15 @@ function transformPoll(bot, payload) {
28
28
  if (props.allowMultiselect && payload.allow_multiselect) poll.allowMultiselect = payload.allow_multiselect;
29
29
  if (props.layoutType) poll.layoutType = payload.layout_type;
30
30
  if (props.results && payload.results) {
31
- poll.results = {};
31
+ const results = {};
32
32
  const pollResultProps = bot.transformers.desiredProperties.pollResult;
33
- if (pollResultProps.isFinalized && payload.results.is_finalized) poll.results.isFinalized = payload.results.is_finalized;
34
- if (pollResultProps.answerCounts && payload.results.answer_counts) poll.results.answerCounts = payload.results.answer_counts.map((x)=>({
33
+ if (pollResultProps.isFinalized && payload.results.is_finalized) results.isFinalized = payload.results.is_finalized;
34
+ if (pollResultProps.answerCounts && payload.results.answer_counts) results.answerCounts = payload.results.answer_counts.map((x)=>({
35
35
  id: x.id,
36
36
  count: x.count,
37
37
  meVoted: x.me_voted
38
38
  }));
39
+ poll.results = results;
39
40
  }
40
41
  return bot.transformers.customizers.poll(bot, payload, poll);
41
42
  }
@@ -47,4 +48,4 @@ function transformPollMedia(bot, payload) {
47
48
  return bot.transformers.customizers.pollMedia(bot, payload, pollMedia);
48
49
  }
49
50
 
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvcG9sbC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IERpc2NvcmRFbW9qaSwgRGlzY29yZFBvbGwsIERpc2NvcmRQb2xsTWVkaWEgfSBmcm9tICdAZGlzY29yZGVuby90eXBlcydcbmltcG9ydCB0eXBlIHsgSW50ZXJuYWxCb3QsIFBvbGwsIFBvbGxNZWRpYSwgUG9sbFJlc3VsdCB9IGZyb20gJy4uL2luZGV4LmpzJ1xuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtUG9sbChib3Q6IEludGVybmFsQm90LCBwYXlsb2FkOiBEaXNjb3JkUG9sbCk6IHR5cGVvZiBib3QudHJhbnNmb3JtZXJzLiRpbmZlcnJlZFR5cGVzLnBvbGwge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMucG9sbFxuICBjb25zdCBwb2xsID0ge30gYXMgUG9sbFxuXG4gIGlmIChwcm9wcy5xdWVzdGlvbiAmJiBwYXlsb2FkLnF1ZXN0aW9uKSBwb2xsLnF1ZXN0aW9uID0gYm90LnRyYW5zZm9ybWVycy5wb2xsTWVkaWEoYm90LCBwYXlsb2FkLnF1ZXN0aW9uKVxuICBpZiAocHJvcHMuYW5zd2VycyAmJiBwYXlsb2FkLmFuc3dlcnMpXG4gICAgcG9sbC5hbnN3ZXJzID0gcGF5bG9hZC5hbnN3ZXJzLm1hcCgoeCkgPT4gKHsgYW5zd2VySWQ6IHguYW5zd2VyX2lkLCBwb2xsTWVkaWE6IGJvdC50cmFuc2Zvcm1lcnMucG9sbE1lZGlhKGJvdCwgeC5wb2xsX21lZGlhKSB9KSlcbiAgaWYgKHByb3BzLmV4cGlyeSAmJiBwYXlsb2FkLmV4cGlyeSkgcG9sbC5leHBpcnkgPSBEYXRlLnBhcnNlKHBheWxvYWQuZXhwaXJ5KVxuICBpZiAocHJvcHMuYWxsb3dNdWx0aXNlbGVjdCAmJiBwYXlsb2FkLmFsbG93X211bHRpc2VsZWN0KSBwb2xsLmFsbG93TXVsdGlzZWxlY3QgPSBwYXlsb2FkLmFsbG93X211bHRpc2VsZWN0XG4gIGlmIChwcm9wcy5sYXlvdXRUeXBlKSBwb2xsLmxheW91dFR5cGUgPSBwYXlsb2FkLmxheW91dF90eXBlXG4gIGlmIChwcm9wcy5yZXN1bHRzICYmIHBheWxvYWQucmVzdWx0cykge1xuICAgIHBvbGwucmVzdWx0cyA9IHt9IGFzIFBvbGxSZXN1bHRcbiAgICBjb25zdCBwb2xsUmVzdWx0UHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLnBvbGxSZXN1bHRcblxuICAgIGlmIChwb2xsUmVzdWx0UHJvcHMuaXNGaW5hbGl6ZWQgJiYgcGF5bG9hZC5yZXN1bHRzLmlzX2ZpbmFsaXplZCkgcG9sbC5yZXN1bHRzLmlzRmluYWxpemVkID0gcGF5bG9hZC5yZXN1bHRzLmlzX2ZpbmFsaXplZFxuICAgIGlmIChwb2xsUmVzdWx0UHJvcHMuYW5zd2VyQ291bnRzICYmIHBheWxvYWQucmVzdWx0cy5hbnN3ZXJfY291bnRzKVxuICAgICAgcG9sbC5yZXN1bHRzLmFuc3dlckNvdW50cyA9IHBheWxvYWQucmVzdWx0cy5hbnN3ZXJfY291bnRzLm1hcCgoeCkgPT4gKHsgaWQ6IHguaWQsIGNvdW50OiB4LmNvdW50LCBtZVZvdGVkOiB4Lm1lX3ZvdGVkIH0pKVxuICB9XG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMucG9sbChib3QsIHBheWxvYWQsIHBvbGwpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1Qb2xsTWVkaWEoYm90OiBJbnRlcm5hbEJvdCwgcGF5bG9hZDogRGlzY29yZFBvbGxNZWRpYSk6IHR5cGVvZiBib3QudHJhbnNmb3JtZXJzLiRpbmZlcnJlZFR5cGVzLnBvbGxNZWRpYSB7XG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5wb2xsTWVkaWFcbiAgY29uc3QgcG9sbE1lZGlhID0ge30gYXMgUG9sbE1lZGlhXG5cbiAgaWYgKHByb3BzLnRleHQgJiYgcGF5bG9hZC50ZXh0KSBwb2xsTWVkaWEudGV4dCA9IHBheWxvYWQudGV4dFxuICBpZiAocHJvcHMuZW1vamkgJiYgcGF5bG9hZC5lbW9qaSkgcG9sbE1lZGlhLmVtb2ppID0gYm90LnRyYW5zZm9ybWVycy5lbW9qaShib3QsIHBheWxvYWQuZW1vamkgYXMgRGlzY29yZEVtb2ppKVxuXG4gIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmN1c3RvbWl6ZXJzLnBvbGxNZWRpYShib3QsIHBheWxvYWQsIHBvbGxNZWRpYSlcbn1cbiJdLCJuYW1lcyI6WyJ0cmFuc2Zvcm1Qb2xsIiwidHJhbnNmb3JtUG9sbE1lZGlhIiwiYm90IiwicGF5bG9hZCIsInByb3BzIiwidHJhbnNmb3JtZXJzIiwiZGVzaXJlZFByb3BlcnRpZXMiLCJwb2xsIiwicXVlc3Rpb24iLCJwb2xsTWVkaWEiLCJhbnN3ZXJzIiwibWFwIiwieCIsImFuc3dlcklkIiwiYW5zd2VyX2lkIiwicG9sbF9tZWRpYSIsImV4cGlyeSIsIkRhdGUiLCJwYXJzZSIsImFsbG93TXVsdGlzZWxlY3QiLCJhbGxvd19tdWx0aXNlbGVjdCIsImxheW91dFR5cGUiLCJsYXlvdXRfdHlwZSIsInJlc3VsdHMiLCJwb2xsUmVzdWx0UHJvcHMiLCJwb2xsUmVzdWx0IiwiaXNGaW5hbGl6ZWQiLCJpc19maW5hbGl6ZWQiLCJhbnN3ZXJDb3VudHMiLCJhbnN3ZXJfY291bnRzIiwiaWQiLCJjb3VudCIsIm1lVm90ZWQiLCJtZV92b3RlZCIsImN1c3RvbWl6ZXJzIiwidGV4dCIsImVtb2ppIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztRQUdnQkE7ZUFBQUE7O1FBc0JBQztlQUFBQTs7O0FBdEJULFNBQVNELGNBQWNFLEdBQWdCLEVBQUVDLE9BQW9CO0lBQ2xFLE1BQU1DLFFBQVFGLElBQUlHLFlBQVksQ0FBQ0MsaUJBQWlCLENBQUNDLElBQUk7SUFDckQsTUFBTUEsT0FBTyxDQUFDO0lBRWQsSUFBSUgsTUFBTUksUUFBUSxJQUFJTCxRQUFRSyxRQUFRLEVBQUVELEtBQUtDLFFBQVEsR0FBR04sSUFBSUcsWUFBWSxDQUFDSSxTQUFTLENBQUNQLEtBQUtDLFFBQVFLLFFBQVE7SUFDeEcsSUFBSUosTUFBTU0sT0FBTyxJQUFJUCxRQUFRTyxPQUFPLEVBQ2xDSCxLQUFLRyxPQUFPLEdBQUdQLFFBQVFPLE9BQU8sQ0FBQ0MsR0FBRyxDQUFDLENBQUNDLElBQU8sQ0FBQTtZQUFFQyxVQUFVRCxFQUFFRSxTQUFTO1lBQUVMLFdBQVdQLElBQUlHLFlBQVksQ0FBQ0ksU0FBUyxDQUFDUCxLQUFLVSxFQUFFRyxVQUFVO1FBQUUsQ0FBQTtJQUMvSCxJQUFJWCxNQUFNWSxNQUFNLElBQUliLFFBQVFhLE1BQU0sRUFBRVQsS0FBS1MsTUFBTSxHQUFHQyxLQUFLQyxLQUFLLENBQUNmLFFBQVFhLE1BQU07SUFDM0UsSUFBSVosTUFBTWUsZ0JBQWdCLElBQUloQixRQUFRaUIsaUJBQWlCLEVBQUViLEtBQUtZLGdCQUFnQixHQUFHaEIsUUFBUWlCLGlCQUFpQjtJQUMxRyxJQUFJaEIsTUFBTWlCLFVBQVUsRUFBRWQsS0FBS2MsVUFBVSxHQUFHbEIsUUFBUW1CLFdBQVc7SUFDM0QsSUFBSWxCLE1BQU1tQixPQUFPLElBQUlwQixRQUFRb0IsT0FBTyxFQUFFO1FBQ3BDaEIsS0FBS2dCLE9BQU8sR0FBRyxDQUFDO1FBQ2hCLE1BQU1DLGtCQUFrQnRCLElBQUlHLFlBQVksQ0FBQ0MsaUJBQWlCLENBQUNtQixVQUFVO1FBRXJFLElBQUlELGdCQUFnQkUsV0FBVyxJQUFJdkIsUUFBUW9CLE9BQU8sQ0FBQ0ksWUFBWSxFQUFFcEIsS0FBS2dCLE9BQU8sQ0FBQ0csV0FBVyxHQUFHdkIsUUFBUW9CLE9BQU8sQ0FBQ0ksWUFBWTtRQUN4SCxJQUFJSCxnQkFBZ0JJLFlBQVksSUFBSXpCLFFBQVFvQixPQUFPLENBQUNNLGFBQWEsRUFDL0R0QixLQUFLZ0IsT0FBTyxDQUFDSyxZQUFZLEdBQUd6QixRQUFRb0IsT0FBTyxDQUFDTSxhQUFhLENBQUNsQixHQUFHLENBQUMsQ0FBQ0MsSUFBTyxDQUFBO2dCQUFFa0IsSUFBSWxCLEVBQUVrQixFQUFFO2dCQUFFQyxPQUFPbkIsRUFBRW1CLEtBQUs7Z0JBQUVDLFNBQVNwQixFQUFFcUIsUUFBUTtZQUFDLENBQUE7SUFDMUg7SUFFQSxPQUFPL0IsSUFBSUcsWUFBWSxDQUFDNkIsV0FBVyxDQUFDM0IsSUFBSSxDQUFDTCxLQUFLQyxTQUFTSTtBQUN6RDtBQUVPLFNBQVNOLG1CQUFtQkMsR0FBZ0IsRUFBRUMsT0FBeUI7SUFDNUUsTUFBTUMsUUFBUUYsSUFBSUcsWUFBWSxDQUFDQyxpQkFBaUIsQ0FBQ0csU0FBUztJQUMxRCxNQUFNQSxZQUFZLENBQUM7SUFFbkIsSUFBSUwsTUFBTStCLElBQUksSUFBSWhDLFFBQVFnQyxJQUFJLEVBQUUxQixVQUFVMEIsSUFBSSxHQUFHaEMsUUFBUWdDLElBQUk7SUFDN0QsSUFBSS9CLE1BQU1nQyxLQUFLLElBQUlqQyxRQUFRaUMsS0FBSyxFQUFFM0IsVUFBVTJCLEtBQUssR0FBR2xDLElBQUlHLFlBQVksQ0FBQytCLEtBQUssQ0FBQ2xDLEtBQUtDLFFBQVFpQyxLQUFLO0lBRTdGLE9BQU9sQyxJQUFJRyxZQUFZLENBQUM2QixXQUFXLENBQUN6QixTQUFTLENBQUNQLEtBQUtDLFNBQVNNO0FBQzlEIn0=
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvcG9sbC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IERpc2NvcmRFbW9qaSwgRGlzY29yZFBvbGwsIERpc2NvcmRQb2xsTWVkaWEgfSBmcm9tICdAZGlzY29yZGVuby90eXBlcydcbmltcG9ydCB0eXBlIHsgQm90LCBEZXNpcmVkUHJvcGVydGllc0JlaGF2aW9yLCBQb2xsLCBQb2xsTWVkaWEsIFBvbGxSZXN1bHQsIFNldHVwRGVzaXJlZFByb3BzLCBUcmFuc2Zvcm1lcnNEZXNpcmVkUHJvcGVydGllcyB9IGZyb20gJy4uL2luZGV4LmpzJ1xuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtUG9sbChib3Q6IEJvdCwgcGF5bG9hZDogRGlzY29yZFBvbGwpOiBQb2xsIHtcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLnBvbGxcbiAgY29uc3QgcG9sbCA9IHt9IGFzIFNldHVwRGVzaXJlZFByb3BzPFBvbGwsIFRyYW5zZm9ybWVyc0Rlc2lyZWRQcm9wZXJ0aWVzLCBEZXNpcmVkUHJvcGVydGllc0JlaGF2aW9yPlxuXG4gIGlmIChwcm9wcy5xdWVzdGlvbiAmJiBwYXlsb2FkLnF1ZXN0aW9uKSBwb2xsLnF1ZXN0aW9uID0gYm90LnRyYW5zZm9ybWVycy5wb2xsTWVkaWEoYm90LCBwYXlsb2FkLnF1ZXN0aW9uKVxuICBpZiAocHJvcHMuYW5zd2VycyAmJiBwYXlsb2FkLmFuc3dlcnMpXG4gICAgcG9sbC5hbnN3ZXJzID0gcGF5bG9hZC5hbnN3ZXJzLm1hcCgoeCkgPT4gKHsgYW5zd2VySWQ6IHguYW5zd2VyX2lkLCBwb2xsTWVkaWE6IGJvdC50cmFuc2Zvcm1lcnMucG9sbE1lZGlhKGJvdCwgeC5wb2xsX21lZGlhKSB9KSlcbiAgaWYgKHByb3BzLmV4cGlyeSAmJiBwYXlsb2FkLmV4cGlyeSkgcG9sbC5leHBpcnkgPSBEYXRlLnBhcnNlKHBheWxvYWQuZXhwaXJ5KVxuICBpZiAocHJvcHMuYWxsb3dNdWx0aXNlbGVjdCAmJiBwYXlsb2FkLmFsbG93X211bHRpc2VsZWN0KSBwb2xsLmFsbG93TXVsdGlzZWxlY3QgPSBwYXlsb2FkLmFsbG93X211bHRpc2VsZWN0XG4gIGlmIChwcm9wcy5sYXlvdXRUeXBlKSBwb2xsLmxheW91dFR5cGUgPSBwYXlsb2FkLmxheW91dF90eXBlXG4gIGlmIChwcm9wcy5yZXN1bHRzICYmIHBheWxvYWQucmVzdWx0cykge1xuICAgIGNvbnN0IHJlc3VsdHMgPSB7fSBhcyBTZXR1cERlc2lyZWRQcm9wczxQb2xsUmVzdWx0LCBUcmFuc2Zvcm1lcnNEZXNpcmVkUHJvcGVydGllcywgRGVzaXJlZFByb3BlcnRpZXNCZWhhdmlvcj5cbiAgICBjb25zdCBwb2xsUmVzdWx0UHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLnBvbGxSZXN1bHRcblxuICAgIGlmIChwb2xsUmVzdWx0UHJvcHMuaXNGaW5hbGl6ZWQgJiYgcGF5bG9hZC5yZXN1bHRzLmlzX2ZpbmFsaXplZCkgcmVzdWx0cy5pc0ZpbmFsaXplZCA9IHBheWxvYWQucmVzdWx0cy5pc19maW5hbGl6ZWRcbiAgICBpZiAocG9sbFJlc3VsdFByb3BzLmFuc3dlckNvdW50cyAmJiBwYXlsb2FkLnJlc3VsdHMuYW5zd2VyX2NvdW50cylcbiAgICAgIHJlc3VsdHMuYW5zd2VyQ291bnRzID0gcGF5bG9hZC5yZXN1bHRzLmFuc3dlcl9jb3VudHMubWFwKCh4KSA9PiAoeyBpZDogeC5pZCwgY291bnQ6IHguY291bnQsIG1lVm90ZWQ6IHgubWVfdm90ZWQgfSkpXG5cbiAgICBwb2xsLnJlc3VsdHMgPSByZXN1bHRzXG4gIH1cblxuICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jdXN0b21pemVycy5wb2xsKGJvdCwgcGF5bG9hZCwgcG9sbClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybVBvbGxNZWRpYShib3Q6IEJvdCwgcGF5bG9hZDogRGlzY29yZFBvbGxNZWRpYSk6IFBvbGxNZWRpYSB7XG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5wb2xsTWVkaWFcbiAgY29uc3QgcG9sbE1lZGlhID0ge30gYXMgU2V0dXBEZXNpcmVkUHJvcHM8UG9sbE1lZGlhLCBUcmFuc2Zvcm1lcnNEZXNpcmVkUHJvcGVydGllcywgRGVzaXJlZFByb3BlcnRpZXNCZWhhdmlvcj5cblxuICBpZiAocHJvcHMudGV4dCAmJiBwYXlsb2FkLnRleHQpIHBvbGxNZWRpYS50ZXh0ID0gcGF5bG9hZC50ZXh0XG4gIGlmIChwcm9wcy5lbW9qaSAmJiBwYXlsb2FkLmVtb2ppKSBwb2xsTWVkaWEuZW1vamkgPSBib3QudHJhbnNmb3JtZXJzLmVtb2ppKGJvdCwgcGF5bG9hZC5lbW9qaSBhcyBEaXNjb3JkRW1vamkpXG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMucG9sbE1lZGlhKGJvdCwgcGF5bG9hZCwgcG9sbE1lZGlhKVxufVxuIl0sIm5hbWVzIjpbInRyYW5zZm9ybVBvbGwiLCJ0cmFuc2Zvcm1Qb2xsTWVkaWEiLCJib3QiLCJwYXlsb2FkIiwicHJvcHMiLCJ0cmFuc2Zvcm1lcnMiLCJkZXNpcmVkUHJvcGVydGllcyIsInBvbGwiLCJxdWVzdGlvbiIsInBvbGxNZWRpYSIsImFuc3dlcnMiLCJtYXAiLCJ4IiwiYW5zd2VySWQiLCJhbnN3ZXJfaWQiLCJwb2xsX21lZGlhIiwiZXhwaXJ5IiwiRGF0ZSIsInBhcnNlIiwiYWxsb3dNdWx0aXNlbGVjdCIsImFsbG93X211bHRpc2VsZWN0IiwibGF5b3V0VHlwZSIsImxheW91dF90eXBlIiwicmVzdWx0cyIsInBvbGxSZXN1bHRQcm9wcyIsInBvbGxSZXN1bHQiLCJpc0ZpbmFsaXplZCIsImlzX2ZpbmFsaXplZCIsImFuc3dlckNvdW50cyIsImFuc3dlcl9jb3VudHMiLCJpZCIsImNvdW50IiwibWVWb3RlZCIsIm1lX3ZvdGVkIiwiY3VzdG9taXplcnMiLCJ0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