@discordeno/bot 22.0.1-next.cf02481 → 22.0.1-next.cf0fec0

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 (209) hide show
  1. package/dist/bot.d.ts +3 -3
  2. package/dist/bot.d.ts.map +1 -1
  3. package/dist/bot.js +3 -2
  4. package/dist/constants.d.ts.map +1 -1
  5. package/dist/constants.js +2 -2
  6. package/dist/desiredProperties.d.ts +5 -2
  7. package/dist/desiredProperties.d.ts.map +1 -1
  8. package/dist/desiredProperties.js +41 -1
  9. package/dist/events.d.ts +22 -7
  10. package/dist/events.d.ts.map +1 -1
  11. package/dist/events.js +1 -1
  12. package/dist/handlers/guilds/automod/AUTO_MODERATION_ACTION_EXECUTION.js +2 -2
  13. package/dist/handlers/guilds/automod/AUTO_MODERATION_RULE_CREATE.js +2 -2
  14. package/dist/handlers/guilds/automod/AUTO_MODERATION_RULE_DELETE.js +2 -2
  15. package/dist/handlers/guilds/automod/AUTO_MODERATION_RULE_UPDATE.js +2 -2
  16. package/dist/handlers/interactions/APPLICATION_COMMAND_PERMISSIONS_UPDATE.js +2 -2
  17. package/dist/handlers/invites/INVITE_CREATE.d.ts.map +1 -1
  18. package/dist/handlers/invites/INVITE_CREATE.js +20 -4
  19. package/dist/handlers/invites/INVITE_DELETE.d.ts.map +1 -1
  20. package/dist/handlers/invites/INVITE_DELETE.js +4 -4
  21. package/dist/handlers/members/GUILD_MEMBER_UPDATE.d.ts.map +1 -1
  22. package/dist/handlers/members/GUILD_MEMBER_UPDATE.js +4 -4
  23. package/dist/handlers/messages/MESSAGE_REACTION_ADD.d.ts.map +1 -1
  24. package/dist/handlers/messages/MESSAGE_REACTION_ADD.js +4 -3
  25. package/dist/handlers/messages/MESSAGE_REACTION_REMOVE.d.ts.map +1 -1
  26. package/dist/handlers/messages/MESSAGE_REACTION_REMOVE.js +4 -3
  27. package/dist/handlers/messages/MESSAGE_REACTION_REMOVE_EMOJI.d.ts.map +1 -1
  28. package/dist/handlers/messages/MESSAGE_REACTION_REMOVE_EMOJI.js +4 -3
  29. package/dist/helpers.d.ts +17 -4
  30. package/dist/helpers.d.ts.map +1 -1
  31. package/dist/helpers.js +63 -23
  32. package/dist/transformers/activity.d.ts +17 -5
  33. package/dist/transformers/activity.d.ts.map +1 -1
  34. package/dist/transformers/activity.js +55 -37
  35. package/dist/transformers/application.d.ts +3 -3
  36. package/dist/transformers/application.d.ts.map +1 -1
  37. package/dist/transformers/application.js +55 -41
  38. package/dist/transformers/applicationCommand.d.ts +3 -2
  39. package/dist/transformers/applicationCommand.d.ts.map +1 -1
  40. package/dist/transformers/applicationCommand.js +19 -17
  41. package/dist/transformers/applicationCommandOption.d.ts +3 -2
  42. package/dist/transformers/applicationCommandOption.d.ts.map +1 -1
  43. package/dist/transformers/applicationCommandOption.js +22 -19
  44. package/dist/transformers/applicationCommandOptionChoice.d.ts +3 -2
  45. package/dist/transformers/applicationCommandOptionChoice.d.ts.map +1 -1
  46. package/dist/transformers/applicationCommandOptionChoice.js +10 -8
  47. package/dist/transformers/applicationCommandPermission.d.ts +7 -3
  48. package/dist/transformers/applicationCommandPermission.d.ts.map +1 -1
  49. package/dist/transformers/applicationCommandPermission.js +20 -13
  50. package/dist/transformers/attachment.d.ts +3 -1
  51. package/dist/transformers/attachment.d.ts.map +1 -1
  52. package/dist/transformers/attachment.js +12 -4
  53. package/dist/transformers/auditLogEntry.d.ts +7 -3
  54. package/dist/transformers/auditLogEntry.d.ts.map +1 -1
  55. package/dist/transformers/auditLogEntry.js +32 -25
  56. package/dist/transformers/automodActionExecution.d.ts +10 -3
  57. package/dist/transformers/automodActionExecution.d.ts.map +1 -1
  58. package/dist/transformers/automodActionExecution.js +35 -23
  59. package/dist/transformers/automodRule.d.ts +7 -3
  60. package/dist/transformers/automodRule.d.ts.map +1 -1
  61. package/dist/transformers/automodRule.js +30 -30
  62. package/dist/transformers/avatarDecorationData.d.ts +3 -2
  63. package/dist/transformers/avatarDecorationData.d.ts.map +1 -1
  64. package/dist/transformers/avatarDecorationData.js +6 -3
  65. package/dist/transformers/channel.d.ts +6 -3
  66. package/dist/transformers/channel.d.ts.map +1 -1
  67. package/dist/transformers/channel.js +14 -9
  68. package/dist/transformers/component.d.ts +9 -4
  69. package/dist/transformers/component.d.ts.map +1 -1
  70. package/dist/transformers/component.js +200 -33
  71. package/dist/transformers/embed.d.ts +16 -3
  72. package/dist/transformers/embed.d.ts.map +1 -1
  73. package/dist/transformers/embed.js +71 -42
  74. package/dist/transformers/emoji.d.ts +7 -3
  75. package/dist/transformers/emoji.d.ts.map +1 -1
  76. package/dist/transformers/emoji.js +10 -5
  77. package/dist/transformers/entitlement.d.ts +3 -2
  78. package/dist/transformers/entitlement.d.ts.map +1 -1
  79. package/dist/transformers/entitlement.js +6 -3
  80. package/dist/transformers/gatewayBot.d.ts +7 -3
  81. package/dist/transformers/gatewayBot.d.ts.map +1 -1
  82. package/dist/transformers/gatewayBot.js +20 -13
  83. package/dist/transformers/guild.d.ts +3 -2
  84. package/dist/transformers/guild.d.ts.map +1 -1
  85. package/dist/transformers/guild.js +26 -34
  86. package/dist/transformers/incidentsData.d.ts +3 -2
  87. package/dist/transformers/incidentsData.d.ts.map +1 -1
  88. package/dist/transformers/incidentsData.js +6 -3
  89. package/dist/transformers/integration.d.ts +10 -3
  90. package/dist/transformers/integration.d.ts.map +1 -1
  91. package/dist/transformers/integration.js +43 -31
  92. package/dist/transformers/interaction.d.ts +20 -12
  93. package/dist/transformers/interaction.d.ts.map +1 -1
  94. package/dist/transformers/interaction.js +47 -32
  95. package/dist/transformers/invite.d.ts +4 -4
  96. package/dist/transformers/invite.d.ts.map +1 -1
  97. package/dist/transformers/invite.js +26 -24
  98. package/dist/transformers/lobby.d.ts +13 -4
  99. package/dist/transformers/lobby.d.ts.map +1 -1
  100. package/dist/transformers/lobby.js +35 -5
  101. package/dist/transformers/member.d.ts +3 -2
  102. package/dist/transformers/member.d.ts.map +1 -1
  103. package/dist/transformers/member.js +6 -3
  104. package/dist/transformers/message.d.ts +20 -10
  105. package/dist/transformers/message.d.ts.map +1 -1
  106. package/dist/transformers/message.js +52 -25
  107. package/dist/transformers/onboarding.d.ts +9 -4
  108. package/dist/transformers/onboarding.d.ts.map +1 -1
  109. package/dist/transformers/onboarding.js +17 -10
  110. package/dist/transformers/poll.d.ts +6 -3
  111. package/dist/transformers/poll.d.ts.map +1 -1
  112. package/dist/transformers/poll.js +14 -7
  113. package/dist/transformers/presence.d.ts +3 -2
  114. package/dist/transformers/presence.d.ts.map +1 -1
  115. package/dist/transformers/presence.js +10 -6
  116. package/dist/transformers/reverse/activity.d.ts +4 -3
  117. package/dist/transformers/reverse/activity.d.ts.map +1 -1
  118. package/dist/transformers/reverse/activity.js +20 -24
  119. package/dist/transformers/reverse/applicationCommand.js +2 -2
  120. package/dist/transformers/reverse/component.d.ts.map +1 -1
  121. package/dist/transformers/reverse/component.js +152 -11
  122. package/dist/transformers/reverse/embed.d.ts.map +1 -1
  123. package/dist/transformers/reverse/embed.js +19 -4
  124. package/dist/transformers/reverse/member.d.ts.map +1 -1
  125. package/dist/transformers/reverse/member.js +4 -2
  126. package/dist/transformers/reverse/presence.d.ts.map +1 -1
  127. package/dist/transformers/reverse/presence.js +3 -2
  128. package/dist/transformers/reverse/user.d.ts +5 -0
  129. package/dist/transformers/reverse/user.d.ts.map +1 -0
  130. package/dist/transformers/reverse/user.js +17 -0
  131. package/dist/transformers/role.d.ts +7 -4
  132. package/dist/transformers/role.d.ts.map +1 -1
  133. package/dist/transformers/role.js +11 -7
  134. package/dist/transformers/scheduledEvent.d.ts +6 -3
  135. package/dist/transformers/scheduledEvent.d.ts.map +1 -1
  136. package/dist/transformers/scheduledEvent.js +10 -5
  137. package/dist/transformers/sku.d.ts +3 -2
  138. package/dist/transformers/sku.d.ts.map +1 -1
  139. package/dist/transformers/sku.js +6 -3
  140. package/dist/transformers/soundboardSound.d.ts +3 -2
  141. package/dist/transformers/soundboardSound.d.ts.map +1 -1
  142. package/dist/transformers/soundboardSound.js +6 -3
  143. package/dist/transformers/stageInstance.d.ts +3 -2
  144. package/dist/transformers/stageInstance.d.ts.map +1 -1
  145. package/dist/transformers/stageInstance.js +6 -3
  146. package/dist/transformers/stageInviteInstance.d.ts +3 -3
  147. package/dist/transformers/stageInviteInstance.d.ts.map +1 -1
  148. package/dist/transformers/stageInviteInstance.js +10 -8
  149. package/dist/transformers/sticker.d.ts +6 -3
  150. package/dist/transformers/sticker.d.ts.map +1 -1
  151. package/dist/transformers/sticker.js +18 -14
  152. package/dist/transformers/subscription.d.ts +3 -2
  153. package/dist/transformers/subscription.d.ts.map +1 -1
  154. package/dist/transformers/subscription.js +6 -3
  155. package/dist/transformers/team.d.ts +7 -3
  156. package/dist/transformers/team.d.ts.map +1 -1
  157. package/dist/transformers/team.js +22 -16
  158. package/dist/transformers/template.d.ts +3 -2
  159. package/dist/transformers/template.d.ts.map +1 -1
  160. package/dist/transformers/template.js +18 -16
  161. package/dist/transformers/threadMember.d.ts +6 -3
  162. package/dist/transformers/threadMember.d.ts.map +1 -1
  163. package/dist/transformers/threadMember.js +20 -16
  164. package/dist/transformers/toggles/channel.d.ts +2 -2
  165. package/dist/transformers/toggles/channel.d.ts.map +1 -1
  166. package/dist/transformers/toggles/channel.js +2 -2
  167. package/dist/transformers/toggles/emoji.d.ts +1 -1
  168. package/dist/transformers/toggles/emoji.d.ts.map +1 -1
  169. package/dist/transformers/toggles/emoji.js +1 -1
  170. package/dist/transformers/toggles/guild.d.ts +19 -16
  171. package/dist/transformers/toggles/guild.d.ts.map +1 -1
  172. package/dist/transformers/toggles/guild.js +29 -23
  173. package/dist/transformers/toggles/role.d.ts +1 -1
  174. package/dist/transformers/toggles/role.d.ts.map +1 -1
  175. package/dist/transformers/toggles/role.js +1 -1
  176. package/dist/transformers/toggles/user.d.ts +1 -1
  177. package/dist/transformers/toggles/user.d.ts.map +1 -1
  178. package/dist/transformers/toggles/user.js +1 -1
  179. package/dist/transformers/toggles/voice.d.ts +1 -1
  180. package/dist/transformers/toggles/voice.d.ts.map +1 -1
  181. package/dist/transformers/toggles/voice.js +1 -1
  182. package/dist/transformers/types.d.ts +216 -54
  183. package/dist/transformers/types.d.ts.map +1 -1
  184. package/dist/transformers/types.js +2 -2
  185. package/dist/transformers/user.d.ts +13 -5
  186. package/dist/transformers/user.d.ts.map +1 -1
  187. package/dist/transformers/user.js +18 -9
  188. package/dist/transformers/voiceRegion.d.ts +3 -2
  189. package/dist/transformers/voiceRegion.d.ts.map +1 -1
  190. package/dist/transformers/voiceRegion.js +12 -10
  191. package/dist/transformers/voiceState.d.ts +3 -3
  192. package/dist/transformers/voiceState.d.ts.map +1 -1
  193. package/dist/transformers/voiceState.js +6 -4
  194. package/dist/transformers/webhook.d.ts +3 -1
  195. package/dist/transformers/webhook.d.ts.map +1 -1
  196. package/dist/transformers/webhook.js +9 -6
  197. package/dist/transformers/welcomeScreen.d.ts +7 -3
  198. package/dist/transformers/welcomeScreen.d.ts.map +1 -1
  199. package/dist/transformers/welcomeScreen.js +19 -12
  200. package/dist/transformers/widget.d.ts +3 -2
  201. package/dist/transformers/widget.d.ts.map +1 -1
  202. package/dist/transformers/widget.js +17 -13
  203. package/dist/transformers/widgetSettings.d.ts +3 -2
  204. package/dist/transformers/widgetSettings.d.ts.map +1 -1
  205. package/dist/transformers/widgetSettings.js +9 -7
  206. package/dist/transformers.d.ts +183 -78
  207. package/dist/transformers.d.ts.map +1 -1
  208. package/dist/transformers.js +90 -28
  209. package/package.json +18 -18
@@ -1,4 +1,5 @@
1
- import { calculatePermissions, iconHashToBigInt } from '@discordeno/utils';
1
+ import { iconHashToBigInt } from '@discordeno/utils';
2
+ import { callCustomizer } from '../transformers.js';
2
3
  import { ChannelToggles } from './toggles/channel.js';
3
4
  import { Permissions } from './toggles/Permissions.js';
4
5
  const Mask = (1n << 64n) - 1n;
@@ -48,8 +49,8 @@ export const baseChannel = {
48
49
  return {
49
50
  type,
50
51
  id,
51
- allow: calculatePermissions(allow),
52
- deny: calculatePermissions(deny)
52
+ allow,
53
+ deny
53
54
  };
54
55
  }) ?? [];
55
56
  },
@@ -70,7 +71,7 @@ export function transformChannel(bot, payload, extra) {
70
71
  channel.toggles = new ChannelToggles(payload);
71
72
  if (props.id && payload.id) channel.id = bot.transformers.snowflake(payload.id);
72
73
  if (props.guildId && (extra?.guildId ?? payload.guild_id)) channel.guildId = extra?.guildId ? bot.transformers.snowflake(extra.guildId) : bot.transformers.snowflake(payload.guild_id);
73
- if (props.type) channel.type = payload.type;
74
+ if (props.type && payload.type !== undefined) channel.type = payload.type;
74
75
  if (props.position) channel.position = payload.position;
75
76
  if (props.name && payload.name) channel.name = payload.name;
76
77
  if (props.topic && payload.topic) channel.topic = payload.topic;
@@ -92,6 +93,7 @@ export function transformChannel(bot, payload, extra) {
92
93
  }
93
94
  if (props.defaultAutoArchiveDuration && payload.default_auto_archive_duration) channel.defaultAutoArchiveDuration = payload.default_auto_archive_duration;
94
95
  if (props.permissions && payload.permissions) channel.permissions = new Permissions(payload.permissions);
96
+ if (props.appPermissions && payload.app_permissions) channel.appPermissions = new Permissions(payload.app_permissions);
95
97
  if (props.flags) channel.flags = payload.flags;
96
98
  if (props.permissionOverwrites && payload.permission_overwrites) channel.internalOverwrites = payload.permission_overwrites.map((o)=>packOverwrites(o.allow ?? '0', o.deny ?? '0', o.id, o.type));
97
99
  if (props.parentId && payload.parent_id) channel.parentId = bot.transformers.snowflake(payload.parent_id);
@@ -108,11 +110,12 @@ export function transformChannel(bot, payload, extra) {
108
110
  if (props.defaultThreadRateLimitPerUser && payload.default_thread_rate_limit_per_user) channel.defaultThreadRateLimitPerUser = payload.default_thread_rate_limit_per_user;
109
111
  if (props.defaultSortOrder && payload.default_sort_order !== undefined) channel.defaultSortOrder = payload.default_sort_order;
110
112
  if (props.defaultForumLayout && payload.default_forum_layout !== undefined) channel.defaultForumLayout = payload.default_forum_layout;
111
- return bot.transformers.customizers.channel(bot, payload, channel, {
112
- guildId: extra?.guildId ? bot.transformers.snowflake(extra.guildId) : undefined
113
+ return callCustomizer('channel', bot, payload, channel, {
114
+ guildId: extra?.guildId ? bot.transformers.snowflake(extra.guildId) : undefined,
115
+ partial: extra?.partial ?? false
113
116
  });
114
117
  }
115
- export function transformForumTag(bot, payload) {
118
+ export function transformForumTag(bot, payload, extra) {
116
119
  const props = bot.transformers.desiredProperties.forumTag;
117
120
  const forumTag = {};
118
121
  if (props.id && payload.id) forumTag.id = bot.transformers.snowflake(payload.id);
@@ -120,7 +123,9 @@ export function transformForumTag(bot, payload) {
120
123
  if (props.moderated && payload.moderated) forumTag.moderated = payload.moderated;
121
124
  if (props.emojiId && payload.emoji_id) forumTag.emojiId = bot.transformers.snowflake(payload.emoji_id);
122
125
  if (props.emojiName && payload.emoji_name) forumTag.emojiName = payload.emoji_name;
123
- return bot.transformers.customizers.forumTag(bot, payload, forumTag);
126
+ return callCustomizer('forumTag', bot, payload, forumTag, {
127
+ partial: extra?.partial ?? false
128
+ });
124
129
  }
125
130
 
126
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvY2hhbm5lbC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEJpZ1N0cmluZywgRGlzY29yZENoYW5uZWwsIERpc2NvcmRGb3J1bVRhZyB9IGZyb20gJ0BkaXNjb3JkZW5vL3R5cGVzJztcbmltcG9ydCB7IGNhbGN1bGF0ZVBlcm1pc3Npb25zLCBpY29uSGFzaFRvQmlnSW50IH0gZnJvbSAnQGRpc2NvcmRlbm8vdXRpbHMnO1xuaW1wb3J0IHR5cGUgeyBCb3QgfSBmcm9tICcuLi9ib3QuanMnO1xuaW1wb3J0IHR5cGUgeyBEZXNpcmVkUHJvcGVydGllc0JlaGF2aW9yLCBTZXR1cERlc2lyZWRQcm9wcywgVHJhbnNmb3JtZXJzRGVzaXJlZFByb3BlcnRpZXMgfSBmcm9tICcuLi9kZXNpcmVkUHJvcGVydGllcy5qcyc7XG5pbXBvcnQgeyBDaGFubmVsVG9nZ2xlcyB9IGZyb20gJy4vdG9nZ2xlcy9jaGFubmVsLmpzJztcbmltcG9ydCB7IFBlcm1pc3Npb25zIH0gZnJvbSAnLi90b2dnbGVzL1Blcm1pc3Npb25zLmpzJztcbmltcG9ydCB0eXBlIHsgQ2hhbm5lbCwgRm9ydW1UYWcgfSBmcm9tICcuL3R5cGVzLmpzJztcblxuY29uc3QgTWFzayA9ICgxbiA8PCA2NG4pIC0gMW47XG5cbmV4cG9ydCBmdW5jdGlvbiBwYWNrT3ZlcndyaXRlcyhhbGxvdzogc3RyaW5nLCBkZW55OiBzdHJpbmcsIGlkOiBzdHJpbmcsIHR5cGU6IG51bWJlcik6IGJpZ2ludCB7XG4gIHJldHVybiBwYWNrNjQoYWxsb3csIDApIHwgcGFjazY0KGRlbnksIDEpIHwgcGFjazY0KGlkLCAyKSB8IHBhY2s2NCh0eXBlLCAzKTtcbn1cbmZ1bmN0aW9uIHVucGFjazY0KHY6IGJpZ2ludCwgc2hpZnQ6IG51bWJlcik6IGJpZ2ludCB7XG4gIHJldHVybiAodiA+PiBCaWdJbnQoc2hpZnQgKiA2NCkpICYgTWFzaztcbn1cbmZ1bmN0aW9uIHBhY2s2NCh2OiBzdHJpbmcgfCBudW1iZXIsIHNoaWZ0OiBudW1iZXIpOiBiaWdpbnQge1xuICBjb25zdCBiID0gQmlnSW50KHYpO1xuICBpZiAoYiA8IDAgfHwgYiA+IE1hc2spIHRocm93IG5ldyBFcnJvcignc2hvdWxkIGhhdmUgYmVlbiBhIDY0IGJpdCB1bnNpZ25lZCBpbnRlZ2VyOiAnICsgdi50b1N0cmluZygpKTtcbiAgcmV0dXJuIGIgPDwgQmlnSW50KHNoaWZ0ICogNjQpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIHNlcGFyYXRlT3ZlcndyaXRlcyh2OiBiaWdpbnQpOiBbbnVtYmVyLCBiaWdpbnQsIGJpZ2ludCwgYmlnaW50XSB7XG4gIHJldHVybiBbTnVtYmVyKHVucGFjazY0KHYsIDMpKSwgdW5wYWNrNjQodiwgMiksIHVucGFjazY0KHYsIDApLCB1bnBhY2s2NCh2LCAxKV0gYXMgW251bWJlciwgYmlnaW50LCBiaWdpbnQsIGJpZ2ludF07XG59XG5cbmV4cG9ydCBjb25zdCBiYXNlQ2hhbm5lbDogQ2hhbm5lbCA9IHtcbiAgLy8gVGhpcyBhbGxvd3MgdHlwZXNjcmlwdCB0byBzdGlsbCBjaGVjayBmb3IgdHlwZSBlcnJvcnMgb24gZnVuY3Rpb25zIGJlbG93XG4gIC4uLih1bmRlZmluZWQgYXMgdW5rbm93biBhcyBDaGFubmVsKSxcblxuICBnZXQgYXJjaGl2ZWQoKSB7XG4gICAgcmV0dXJuICEhdGhpcy50b2dnbGVzPy5hcmNoaXZlZDtcbiAgfSxcbiAgZ2V0IGludml0YWJsZSgpIHtcbiAgICByZXR1cm4gISF0aGlzLnRvZ2dsZXM/Lmludml0YWJsZTtcbiAgfSxcbiAgZ2V0IGxvY2tlZCgpIHtcbiAgICByZXR1cm4gISF0aGlzLnRvZ2dsZXM/LmxvY2tlZDtcbiAgfSxcbiAgZ2V0IG5zZncoKSB7XG4gICAgcmV0dXJuICEhdGhpcy50b2dnbGVzPy5uc2Z3O1xuICB9LFxuICBnZXQgbmV3bHlDcmVhdGVkKCkge1xuICAgIHJldHVybiAhIXRoaXMudG9nZ2xlcz8ubmV3bHlDcmVhdGVkO1xuICB9LFxuICBnZXQgbWFuYWdlZCgpIHtcbiAgICByZXR1cm4gISF0aGlzLnRvZ2dsZXM/Lm1hbmFnZWQ7XG4gIH0sXG4gIGdldCBwZXJtaXNzaW9uT3ZlcndyaXRlcygpIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5pbnRlcm5hbE92ZXJ3cml0ZXM/Lm1hcCgob3ZlcndyaXRlKSA9PiB7XG4gICAgICAgIGNvbnN0IFt0eXBlLCBpZCwgYWxsb3csIGRlbnldID0gc2VwYXJhdGVPdmVyd3JpdGVzKG92ZXJ3cml0ZSk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgdHlwZSxcbiAgICAgICAgICBpZCxcbiAgICAgICAgICBhbGxvdzogY2FsY3VsYXRlUGVybWlzc2lvbnMoYWxsb3cpLFxuICAgICAgICAgIGRlbnk6IGNhbGN1bGF0ZVBlcm1pc3Npb25zKGRlbnkpLFxuICAgICAgICB9O1xuICAgICAgfSkgPz8gW11cbiAgICApO1xuICB9LFxuICBnZXQgdGhyZWFkTWV0YWRhdGEoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGFyY2hpdmVUaW1lc3RhbXA6IHRoaXMuaW50ZXJuYWxUaHJlYWRNZXRhZGF0YT8uYXJjaGl2ZVRpbWVzdGFtcCxcbiAgICAgIGNyZWF0ZVRpbWVzdGFtcDogdGhpcy5pbnRlcm5hbFRocmVhZE1ldGFkYXRhPy5jcmVhdGVUaW1lc3RhbXAsXG4gICAgICBhdXRvQXJjaGl2ZUR1cmF0aW9uOiB0aGlzLmludGVybmFsVGhyZWFkTWV0YWRhdGE/LmF1dG9BcmNoaXZlRHVyYXRpb24sXG4gICAgICBsb2NrZWQ6ICEhdGhpcy50b2dnbGVzPy5sb2NrZWQsXG4gICAgICBpbnZpdGFibGU6ICEhdGhpcy50b2dnbGVzPy5pbnZpdGFibGUsXG4gICAgICBhcmNoaXZlZDogISF0aGlzLnRvZ2dsZXM/LmFyY2hpdmVkLFxuICAgIH07XG4gIH0sXG59O1xuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtQ2hhbm5lbChib3Q6IEJvdCwgcGF5bG9hZDogRGlzY29yZENoYW5uZWwsIGV4dHJhPzogeyBndWlsZElkPzogQmlnU3RyaW5nIH0pIHtcbiAgY29uc3QgY2hhbm5lbCA9IE9iamVjdC5jcmVhdGUoYmFzZUNoYW5uZWwpIGFzIFNldHVwRGVzaXJlZFByb3BzPENoYW5uZWwsIFRyYW5zZm9ybWVyc0Rlc2lyZWRQcm9wZXJ0aWVzLCBEZXNpcmVkUHJvcGVydGllc0JlaGF2aW9yPjtcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLmNoYW5uZWw7XG4gIGNoYW5uZWwudG9nZ2xlcyA9IG5ldyBDaGFubmVsVG9nZ2xlcyhwYXlsb2FkKTtcblxuICBpZiAocHJvcHMuaWQgJiYgcGF5bG9hZC5pZCkgY2hhbm5lbC5pZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaWQpO1xuICBpZiAocHJvcHMuZ3VpbGRJZCAmJiAoZXh0cmE/Lmd1aWxkSWQgPz8gcGF5bG9hZC5ndWlsZF9pZCkpXG4gICAgY2hhbm5lbC5ndWlsZElkID0gZXh0cmE/Lmd1aWxkSWQgPyBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShleHRyYS5ndWlsZElkKSA6IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuZ3VpbGRfaWQhKTtcbiAgaWYgKHByb3BzLnR5cGUpIGNoYW5uZWwudHlwZSA9IHBheWxvYWQudHlwZTtcbiAgaWYgKHByb3BzLnBvc2l0aW9uKSBjaGFubmVsLnBvc2l0aW9uID0gcGF5bG9hZC5wb3NpdGlvbjtcbiAgaWYgKHByb3BzLm5hbWUgJiYgcGF5bG9hZC5uYW1lKSBjaGFubmVsLm5hbWUgPSBwYXlsb2FkLm5hbWU7XG4gIGlmIChwcm9wcy50b3BpYyAmJiBwYXlsb2FkLnRvcGljKSBjaGFubmVsLnRvcGljID0gcGF5bG9hZC50b3BpYztcbiAgaWYgKHByb3BzLmxhc3RNZXNzYWdlSWQgJiYgcGF5bG9hZC5sYXN0X21lc3NhZ2VfaWQpIGNoYW5uZWwubGFzdE1lc3NhZ2VJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQubGFzdF9tZXNzYWdlX2lkKTtcbiAgaWYgKHByb3BzLmJpdHJhdGUgJiYgcGF5bG9hZC5iaXRyYXRlKSBjaGFubmVsLmJpdHJhdGUgPSBwYXlsb2FkLmJpdHJhdGU7XG4gIGlmIChwcm9wcy51c2VyTGltaXQpIGNoYW5uZWwudXNlckxpbWl0ID0gcGF5bG9hZC51c2VyX2xpbWl0O1xuICBpZiAocHJvcHMucmF0ZUxpbWl0UGVyVXNlcikgY2hhbm5lbC5yYXRlTGltaXRQZXJVc2VyID0gcGF5bG9hZC5yYXRlX2xpbWl0X3Blcl91c2VyO1xuICBpZiAocHJvcHMub3duZXJJZCAmJiBwYXlsb2FkLm93bmVyX2lkKSBjaGFubmVsLm93bmVySWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLm93bmVyX2lkKTtcbiAgaWYgKHByb3BzLmxhc3RQaW5UaW1lc3RhbXAgJiYgcGF5bG9hZC5sYXN0X3Bpbl90aW1lc3RhbXApIGNoYW5uZWwubGFzdFBpblRpbWVzdGFtcCA9IERhdGUucGFyc2UocGF5bG9hZC5sYXN0X3Bpbl90aW1lc3RhbXApO1xuICBpZiAocHJvcHMucnRjUmVnaW9uICYmIHBheWxvYWQucnRjX3JlZ2lvbikgY2hhbm5lbC5ydGNSZWdpb24gPSBwYXlsb2FkLnJ0Y19yZWdpb247XG4gIGlmIChwcm9wcy52aWRlb1F1YWxpdHlNb2RlICYmIHBheWxvYWQudmlkZW9fcXVhbGl0eV9tb2RlKSBjaGFubmVsLnZpZGVvUXVhbGl0eU1vZGUgPSBwYXlsb2FkLnZpZGVvX3F1YWxpdHlfbW9kZTtcbiAgaWYgKHByb3BzLm1lc3NhZ2VDb3VudCkgY2hhbm5lbC5tZXNzYWdlQ291bnQgPSBwYXlsb2FkLm1lc3NhZ2VfY291bnQ7XG4gIGlmIChwcm9wcy5tZW1iZXJDb3VudCkgY2hhbm5lbC5tZW1iZXJDb3VudCA9IHBheWxvYWQubWVtYmVyX2NvdW50O1xuICBpZiAocHJvcHMudGhyZWFkTWV0YWRhdGEpIHtcbiAgICBjaGFubmVsLmludGVybmFsVGhyZWFkTWV0YWRhdGEgPSB7fSBhcyBOb25OdWxsYWJsZTxDaGFubmVsWydpbnRlcm5hbFRocmVhZE1ldGFkYXRhJ10+O1xuICAgIGlmIChwYXlsb2FkLnRocmVhZF9tZXRhZGF0YT8uYXJjaGl2ZV90aW1lc3RhbXApXG4gICAgICBjaGFubmVsLmludGVybmFsVGhyZWFkTWV0YWRhdGEuYXJjaGl2ZVRpbWVzdGFtcCA9IERhdGUucGFyc2UocGF5bG9hZC50aHJlYWRfbWV0YWRhdGEuYXJjaGl2ZV90aW1lc3RhbXApO1xuICAgIGlmIChwYXlsb2FkLnRocmVhZF9tZXRhZGF0YT8uY3JlYXRlX3RpbWVzdGFtcClcbiAgICAgIGNoYW5uZWwuaW50ZXJuYWxUaHJlYWRNZXRhZGF0YS5jcmVhdGVUaW1lc3RhbXAgPSBEYXRlLnBhcnNlKHBheWxvYWQudGhyZWFkX21ldGFkYXRhLmNyZWF0ZV90aW1lc3RhbXApO1xuICAgIGlmIChwYXlsb2FkLnRocmVhZF9tZXRhZGF0YT8uYXV0b19hcmNoaXZlX2R1cmF0aW9uKVxuICAgICAgY2hhbm5lbC5pbnRlcm5hbFRocmVhZE1ldGFkYXRhLmF1dG9BcmNoaXZlRHVyYXRpb24gPSBwYXlsb2FkLnRocmVhZF9tZXRhZGF0YS5hdXRvX2FyY2hpdmVfZHVyYXRpb247XG4gIH1cbiAgaWYgKHByb3BzLmRlZmF1bHRBdXRvQXJjaGl2ZUR1cmF0aW9uICYmIHBheWxvYWQuZGVmYXVsdF9hdXRvX2FyY2hpdmVfZHVyYXRpb24pXG4gICAgY2hhbm5lbC5kZWZhdWx0QXV0b0FyY2hpdmVEdXJhdGlvbiA9IHBheWxvYWQuZGVmYXVsdF9hdXRvX2FyY2hpdmVfZHVyYXRpb247XG4gIGlmIChwcm9wcy5wZXJtaXNzaW9ucyAmJiBwYXlsb2FkLnBlcm1pc3Npb25zKSBjaGFubmVsLnBlcm1pc3Npb25zID0gbmV3IFBlcm1pc3Npb25zKHBheWxvYWQucGVybWlzc2lvbnMpO1xuICBpZiAocHJvcHMuZmxhZ3MpIGNoYW5uZWwuZmxhZ3MgPSBwYXlsb2FkLmZsYWdzO1xuICBpZiAocHJvcHMucGVybWlzc2lvbk92ZXJ3cml0ZXMgJiYgcGF5bG9hZC5wZXJtaXNzaW9uX292ZXJ3cml0ZXMpXG4gICAgY2hhbm5lbC5pbnRlcm5hbE92ZXJ3cml0ZXMgPSBwYXlsb2FkLnBlcm1pc3Npb25fb3ZlcndyaXRlcy5tYXAoKG8pID0+IHBhY2tPdmVyd3JpdGVzKG8uYWxsb3cgPz8gJzAnLCBvLmRlbnkgPz8gJzAnLCBvLmlkLCBvLnR5cGUpKTtcbiAgaWYgKHByb3BzLnBhcmVudElkICYmIHBheWxvYWQucGFyZW50X2lkKSBjaGFubmVsLnBhcmVudElkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5wYXJlbnRfaWQpO1xuICBpZiAocHJvcHMucmVjaXBpZW50cyAmJiBwYXlsb2FkLnJlY2lwaWVudHMpIGNoYW5uZWwucmVjaXBpZW50cyA9IHBheWxvYWQucmVjaXBpZW50cy5tYXAoKHUpID0+IGJvdC50cmFuc2Zvcm1lcnMudXNlcihib3QsIHUpKTtcbiAgaWYgKHByb3BzLmljb24gJiYgcGF5bG9hZC5pY29uKSBjaGFubmVsLmljb24gPSBpY29uSGFzaFRvQmlnSW50KHBheWxvYWQuaWNvbik7XG4gIGlmIChwcm9wcy5hcHBsaWNhdGlvbklkICYmIHBheWxvYWQuYXBwbGljYXRpb25faWQpIGNoYW5uZWwuYXBwbGljYXRpb25JZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuYXBwbGljYXRpb25faWQpO1xuICBpZiAocHJvcHMubWVtYmVyICYmIHBheWxvYWQubWVtYmVyKSBjaGFubmVsLm1lbWJlciA9IGJvdC50cmFuc2Zvcm1lcnMudGhyZWFkTWVtYmVyKGJvdCwgcGF5bG9hZC5tZW1iZXIsIHsgZ3VpbGRJZDogZXh0cmE/Lmd1aWxkSWQgfSk7XG4gIGlmIChwcm9wcy50b3RhbE1lc3NhZ2VTZW50ICYmIHBheWxvYWQudG90YWxfbWVzc2FnZV9zZW50ICE9PSB1bmRlZmluZWQpIGNoYW5uZWwudG90YWxNZXNzYWdlU2VudCA9IHBheWxvYWQudG90YWxfbWVzc2FnZV9zZW50O1xuICBpZiAocHJvcHMuYXZhaWxhYmxlVGFncyAmJiBwYXlsb2FkLmF2YWlsYWJsZV90YWdzKSBjaGFubmVsLmF2YWlsYWJsZVRhZ3MgPSBwYXlsb2FkLmF2YWlsYWJsZV90YWdzLm1hcCgoeCkgPT4gYm90LnRyYW5zZm9ybWVycy5mb3J1bVRhZyhib3QsIHgpKTtcbiAgaWYgKHByb3BzLmFwcGxpZWRUYWdzICYmIHBheWxvYWQuYXBwbGllZF90YWdzKSBjaGFubmVsLmFwcGxpZWRUYWdzID0gcGF5bG9hZC5hcHBsaWVkX3RhZ3MubWFwKCh4KSA9PiBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZSh4KSk7XG4gIGlmIChwcm9wcy5kZWZhdWx0UmVhY3Rpb25FbW9qaSAmJiBwYXlsb2FkLmRlZmF1bHRfcmVhY3Rpb25fZW1vamkpXG4gICAgY2hhbm5lbC5kZWZhdWx0UmVhY3Rpb25FbW9qaSA9IGJvdC50cmFuc2Zvcm1lcnMuZGVmYXVsdFJlYWN0aW9uRW1vamkoYm90LCBwYXlsb2FkLmRlZmF1bHRfcmVhY3Rpb25fZW1vamkpO1xuICBpZiAocHJvcHMuZGVmYXVsdFRocmVhZFJhdGVMaW1pdFBlclVzZXIgJiYgcGF5bG9hZC5kZWZhdWx0X3RocmVhZF9yYXRlX2xpbWl0X3Blcl91c2VyKVxuICAgIGNoYW5uZWwuZGVmYXVsdFRocmVhZFJhdGVMaW1pdFBlclVzZXIgPSBwYXlsb2FkLmRlZmF1bHRfdGhyZWFkX3JhdGVfbGltaXRfcGVyX3VzZXI7XG4gIGlmIChwcm9wcy5kZWZhdWx0U29ydE9yZGVyICYmIHBheWxvYWQuZGVmYXVsdF9zb3J0X29yZGVyICE9PSB1bmRlZmluZWQpIGNoYW5uZWwuZGVmYXVsdFNvcnRPcmRlciA9IHBheWxvYWQuZGVmYXVsdF9zb3J0X29yZGVyO1xuICBpZiAocHJvcHMuZGVmYXVsdEZvcnVtTGF5b3V0ICYmIHBheWxvYWQuZGVmYXVsdF9mb3J1bV9sYXlvdXQgIT09IHVuZGVmaW5lZCkgY2hhbm5lbC5kZWZhdWx0Rm9ydW1MYXlvdXQgPSBwYXlsb2FkLmRlZmF1bHRfZm9ydW1fbGF5b3V0O1xuXG4gIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmN1c3RvbWl6ZXJzLmNoYW5uZWwoYm90LCBwYXlsb2FkLCBjaGFubmVsLCB7XG4gICAgZ3VpbGRJZDogZXh0cmE/Lmd1aWxkSWQgPyBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShleHRyYS5ndWlsZElkKSA6IHVuZGVmaW5lZCxcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1Gb3J1bVRhZyhib3Q6IEJvdCwgcGF5bG9hZDogRGlzY29yZEZvcnVtVGFnKTogRm9ydW1UYWcge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuZm9ydW1UYWc7XG4gIGNvbnN0IGZvcnVtVGFnID0ge30gYXMgU2V0dXBEZXNpcmVkUHJvcHM8Rm9ydW1UYWcsIFRyYW5zZm9ybWVyc0Rlc2lyZWRQcm9wZXJ0aWVzLCBEZXNpcmVkUHJvcGVydGllc0JlaGF2aW9yPjtcblxuICBpZiAocHJvcHMuaWQgJiYgcGF5bG9hZC5pZCkgZm9ydW1UYWcuaWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmlkKTtcbiAgaWYgKHByb3BzLm5hbWUgJiYgcGF5bG9hZC5uYW1lKSBmb3J1bVRhZy5uYW1lID0gcGF5bG9hZC5uYW1lO1xuICBpZiAocHJvcHMubW9kZXJhdGVkICYmIHBheWxvYWQubW9kZXJhdGVkKSBmb3J1bVRhZy5tb2RlcmF0ZWQgPSBwYXlsb2FkLm1vZGVyYXRlZDtcbiAgaWYgKHByb3BzLmVtb2ppSWQgJiYgcGF5bG9hZC5lbW9qaV9pZCkgZm9ydW1UYWcuZW1vamlJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuZW1vamlfaWQpO1xuICBpZiAocHJvcHMuZW1vamlOYW1lICYmIHBheWxvYWQuZW1vamlfbmFtZSkgZm9ydW1UYWcuZW1vamlOYW1lID0gcGF5bG9hZC5lbW9qaV9uYW1lO1xuXG4gIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmN1c3RvbWl6ZXJzLmZvcnVtVGFnKGJvdCwgcGF5bG9hZCwgZm9ydW1UYWcpO1xufVxuIl0sIm5hbWVzIjpbImNhbGN1bGF0ZVBlcm1pc3Npb25zIiwiaWNvbkhhc2hUb0JpZ0ludCIsIkNoYW5uZWxUb2dnbGVzIiwiUGVybWlzc2lvbnMiLCJNYXNrIiwicGFja092ZXJ3cml0ZXMiLCJhbGxvdyIsImRlbnkiLCJpZCIsInR5cGUiLCJwYWNrNjQiLCJ1bnBhY2s2NCIsInYiLCJzaGlmdCIsIkJpZ0ludCIsImIiLCJFcnJvciIsInRvU3RyaW5nIiwic2VwYXJhdGVPdmVyd3JpdGVzIiwiTnVtYmVyIiwiYmFzZUNoYW5uZWwiLCJ1bmRlZmluZWQiLCJhcmNoaXZlZCIsInRvZ2dsZXMiLCJpbnZpdGFibGUiLCJsb2NrZWQiLCJuc2Z3IiwibmV3bHlDcmVhdGVkIiwibWFuYWdlZCIsInBlcm1pc3Npb25PdmVyd3JpdGVzIiwiaW50ZXJuYWxPdmVyd3JpdGVzIiwibWFwIiwib3ZlcndyaXRlIiwidGhyZWFkTWV0YWRhdGEiLCJhcmNoaXZlVGltZXN0YW1wIiwiaW50ZXJuYWxUaHJlYWRNZXRhZGF0YSIsImNyZWF0ZVRpbWVzdGFtcCIsImF1dG9BcmNoaXZlRHVyYXRpb24iLCJ0cmFuc2Zvcm1DaGFubmVsIiwiYm90IiwicGF5bG9hZCIsImV4dHJhIiwiY2hhbm5lbCIsIk9iamVjdCIsImNyZWF0ZSIsInByb3BzIiwidHJhbnNmb3JtZXJzIiwiZGVzaXJlZFByb3BlcnRpZXMiLCJzbm93Zmxha2UiLCJndWlsZElkIiwiZ3VpbGRfaWQiLCJwb3NpdGlvbiIsIm5hbWUiLCJ0b3BpYyIsImxhc3RNZXNzYWdlSWQiLCJsYXN0X21lc3NhZ2VfaWQiLCJiaXRyYXRlIiwidXNlckxpbWl0IiwidXNlcl9saW1pdCIsInJhdGVMaW1pdFBlclVzZXIiLCJyYXRlX2xpbWl0X3Blcl91c2VyIiwib3duZXJJZCIsIm93bmVyX2lkIiwibGFzdFBpblRpbWVzdGFtcCIsImxhc3RfcGluX3RpbWVzdGFtcCIsIkRhdGUiLCJwYXJzZSIsInJ0Y1JlZ2lvbiIsInJ0Y19yZWdpb24iLCJ2aWRlb1F1YWxpdHlNb2RlIiwidmlkZW9fcXVhbGl0eV9tb2RlIiwibWVzc2FnZUNvdW50IiwibWVzc2FnZV9jb3VudCIsIm1lbWJlckNvdW50IiwibWVtYmVyX2NvdW50IiwidGhyZWFkX21ldGFkYXRhIiwiYXJjaGl2ZV90aW1lc3RhbXAiLCJjcmVhdGVfdGltZXN0YW1wIiwiYXV0b19hcmNoaXZlX2R1cmF0aW9uIiwiZGVmYXVsdEF1dG9BcmNoaXZlRHVyYXRpb24iLCJkZWZhdWx0X2F1dG9fYXJjaGl2ZV9kdXJhdGlvbiIsInBlcm1pc3Npb25zIiwiZmxhZ3MiLCJwZXJtaXNzaW9uX292ZXJ3cml0ZXMiLCJvIiwicGFyZW50SWQiLCJwYXJlbnRfaWQiLCJyZWNpcGllbnRzIiwidSIsInVzZXIiLCJpY29uIiwiYXBwbGljYXRpb25JZCIsImFwcGxpY2F0aW9uX2lkIiwibWVtYmVyIiwidGhyZWFkTWVtYmVyIiwidG90YWxNZXNzYWdlU2VudCIsInRvdGFsX21lc3NhZ2Vfc2VudCIsImF2YWlsYWJsZVRhZ3MiLCJhdmFpbGFibGVfdGFncyIsIngiLCJmb3J1bVRhZyIsImFwcGxpZWRUYWdzIiwiYXBwbGllZF90YWdzIiwiZGVmYXVsdFJlYWN0aW9uRW1vamkiLCJkZWZhdWx0X3JlYWN0aW9uX2Vtb2ppIiwiZGVmYXVsdFRocmVhZFJhdGVMaW1pdFBlclVzZXIiLCJkZWZhdWx0X3RocmVhZF9yYXRlX2xpbWl0X3Blcl91c2VyIiwiZGVmYXVsdFNvcnRPcmRlciIsImRlZmF1bHRfc29ydF9vcmRlciIsImRlZmF1bHRGb3J1bUxheW91dCIsImRlZmF1bHRfZm9ydW1fbGF5b3V0IiwiY3VzdG9taXplcnMiLCJ0cmFuc2Zvcm1Gb3J1bVRhZyIsIm1vZGVyYXRlZCIsImVtb2ppSWQiLCJlbW9qaV9pZCIsImVtb2ppTmFtZSIsImVtb2ppX25hbWUiXSwibWFwcGluZ3MiOiJBQUNBLFNBQVNBLG9CQUFvQixFQUFFQyxnQkFBZ0IsUUFBUSxvQkFB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
131
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvY2hhbm5lbC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEJpZ1N0cmluZywgRGlzY29yZENoYW5uZWwsIERpc2NvcmRGb3J1bVRhZyB9IGZyb20gJ0BkaXNjb3JkZW5vL3R5cGVzJztcbmltcG9ydCB7IGljb25IYXNoVG9CaWdJbnQgfSBmcm9tICdAZGlzY29yZGVuby91dGlscyc7XG5pbXBvcnQgdHlwZSB7IEJvdCB9IGZyb20gJy4uL2JvdC5qcyc7XG5pbXBvcnQgdHlwZSB7IERlc2lyZWRQcm9wZXJ0aWVzQmVoYXZpb3IsIFNldHVwRGVzaXJlZFByb3BzLCBUcmFuc2Zvcm1lcnNEZXNpcmVkUHJvcGVydGllcyB9IGZyb20gJy4uL2Rlc2lyZWRQcm9wZXJ0aWVzLmpzJztcbmltcG9ydCB7IGNhbGxDdXN0b21pemVyIH0gZnJvbSAnLi4vdHJhbnNmb3JtZXJzLmpzJztcbmltcG9ydCB7IENoYW5uZWxUb2dnbGVzIH0gZnJvbSAnLi90b2dnbGVzL2NoYW5uZWwuanMnO1xuaW1wb3J0IHsgUGVybWlzc2lvbnMgfSBmcm9tICcuL3RvZ2dsZXMvUGVybWlzc2lvbnMuanMnO1xuaW1wb3J0IHR5cGUgeyBDaGFubmVsLCBGb3J1bVRhZyB9IGZyb20gJy4vdHlwZXMuanMnO1xuXG5jb25zdCBNYXNrID0gKDFuIDw8IDY0bikgLSAxbjtcblxuZXhwb3J0IGZ1bmN0aW9uIHBhY2tPdmVyd3JpdGVzKGFsbG93OiBzdHJpbmcsIGRlbnk6IHN0cmluZywgaWQ6IHN0cmluZywgdHlwZTogbnVtYmVyKTogYmlnaW50IHtcbiAgcmV0dXJuIHBhY2s2NChhbGxvdywgMCkgfCBwYWNrNjQoZGVueSwgMSkgfCBwYWNrNjQoaWQsIDIpIHwgcGFjazY0KHR5cGUsIDMpO1xufVxuZnVuY3Rpb24gdW5wYWNrNjQodjogYmlnaW50LCBzaGlmdDogbnVtYmVyKTogYmlnaW50IHtcbiAgcmV0dXJuICh2ID4+IEJpZ0ludChzaGlmdCAqIDY0KSkgJiBNYXNrO1xufVxuZnVuY3Rpb24gcGFjazY0KHY6IHN0cmluZyB8IG51bWJlciwgc2hpZnQ6IG51bWJlcik6IGJpZ2ludCB7XG4gIGNvbnN0IGIgPSBCaWdJbnQodik7XG4gIGlmIChiIDwgMCB8fCBiID4gTWFzaykgdGhyb3cgbmV3IEVycm9yKCdzaG91bGQgaGF2ZSBiZWVuIGEgNjQgYml0IHVuc2lnbmVkIGludGVnZXI6ICcgKyB2LnRvU3RyaW5nKCkpO1xuICByZXR1cm4gYiA8PCBCaWdJbnQoc2hpZnQgKiA2NCk7XG59XG5leHBvcnQgZnVuY3Rpb24gc2VwYXJhdGVPdmVyd3JpdGVzKHY6IGJpZ2ludCk6IFtudW1iZXIsIGJpZ2ludCwgYmlnaW50LCBiaWdpbnRdIHtcbiAgcmV0dXJuIFtOdW1iZXIodW5wYWNrNjQodiwgMykpLCB1bnBhY2s2NCh2LCAyKSwgdW5wYWNrNjQodiwgMCksIHVucGFjazY0KHYsIDEpXSBhcyBbbnVtYmVyLCBiaWdpbnQsIGJpZ2ludCwgYmlnaW50XTtcbn1cblxuZXhwb3J0IGNvbnN0IGJhc2VDaGFubmVsOiBDaGFubmVsID0ge1xuICAvLyBUaGlzIGFsbG93cyB0eXBlc2NyaXB0IHRvIHN0aWxsIGNoZWNrIGZvciB0eXBlIGVycm9ycyBvbiBmdW5jdGlvbnMgYmVsb3dcbiAgLi4uKHVuZGVmaW5lZCBhcyB1bmtub3duIGFzIENoYW5uZWwpLFxuXG4gIGdldCBhcmNoaXZlZCgpIHtcbiAgICByZXR1cm4gISF0aGlzLnRvZ2dsZXM/LmFyY2hpdmVkO1xuICB9LFxuICBnZXQgaW52aXRhYmxlKCkge1xuICAgIHJldHVybiAhIXRoaXMudG9nZ2xlcz8uaW52aXRhYmxlO1xuICB9LFxuICBnZXQgbG9ja2VkKCkge1xuICAgIHJldHVybiAhIXRoaXMudG9nZ2xlcz8ubG9ja2VkO1xuICB9LFxuICBnZXQgbnNmdygpIHtcbiAgICByZXR1cm4gISF0aGlzLnRvZ2dsZXM/Lm5zZnc7XG4gIH0sXG4gIGdldCBuZXdseUNyZWF0ZWQoKSB7XG4gICAgcmV0dXJuICEhdGhpcy50b2dnbGVzPy5uZXdseUNyZWF0ZWQ7XG4gIH0sXG4gIGdldCBtYW5hZ2VkKCkge1xuICAgIHJldHVybiAhIXRoaXMudG9nZ2xlcz8ubWFuYWdlZDtcbiAgfSxcbiAgZ2V0IHBlcm1pc3Npb25PdmVyd3JpdGVzKCkge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLmludGVybmFsT3ZlcndyaXRlcz8ubWFwKChvdmVyd3JpdGUpID0+IHtcbiAgICAgICAgY29uc3QgW3R5cGUsIGlkLCBhbGxvdywgZGVueV0gPSBzZXBhcmF0ZU92ZXJ3cml0ZXMob3ZlcndyaXRlKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICB0eXBlLFxuICAgICAgICAgIGlkLFxuICAgICAgICAgIGFsbG93LFxuICAgICAgICAgIGRlbnksXG4gICAgICAgIH07XG4gICAgICB9KSA/PyBbXVxuICAgICk7XG4gIH0sXG4gIGdldCB0aHJlYWRNZXRhZGF0YSgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgYXJjaGl2ZVRpbWVzdGFtcDogdGhpcy5pbnRlcm5hbFRocmVhZE1ldGFkYXRhPy5hcmNoaXZlVGltZXN0YW1wLFxuICAgICAgY3JlYXRlVGltZXN0YW1wOiB0aGlzLmludGVybmFsVGhyZWFkTWV0YWRhdGE/LmNyZWF0ZVRpbWVzdGFtcCxcbiAgICAgIGF1dG9BcmNoaXZlRHVyYXRpb246IHRoaXMuaW50ZXJuYWxUaHJlYWRNZXRhZGF0YT8uYXV0b0FyY2hpdmVEdXJhdGlvbixcbiAgICAgIGxvY2tlZDogISF0aGlzLnRvZ2dsZXM/LmxvY2tlZCxcbiAgICAgIGludml0YWJsZTogISF0aGlzLnRvZ2dsZXM/Lmludml0YWJsZSxcbiAgICAgIGFyY2hpdmVkOiAhIXRoaXMudG9nZ2xlcz8uYXJjaGl2ZWQsXG4gICAgfTtcbiAgfSxcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1DaGFubmVsKGJvdDogQm90LCBwYXlsb2FkOiBQYXJ0aWFsPERpc2NvcmRDaGFubmVsPiwgZXh0cmE/OiB7IGd1aWxkSWQ/OiBCaWdTdHJpbmc7IHBhcnRpYWw/OiBib29sZWFuIH0pIHtcbiAgY29uc3QgY2hhbm5lbCA9IE9iamVjdC5jcmVhdGUoYmFzZUNoYW5uZWwpIGFzIFNldHVwRGVzaXJlZFByb3BzPENoYW5uZWwsIFRyYW5zZm9ybWVyc0Rlc2lyZWRQcm9wZXJ0aWVzLCBEZXNpcmVkUHJvcGVydGllc0JlaGF2aW9yPjtcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLmNoYW5uZWw7XG4gIGNoYW5uZWwudG9nZ2xlcyA9IG5ldyBDaGFubmVsVG9nZ2xlcyhwYXlsb2FkKTtcblxuICBpZiAocHJvcHMuaWQgJiYgcGF5bG9hZC5pZCkgY2hhbm5lbC5pZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaWQpO1xuICBpZiAocHJvcHMuZ3VpbGRJZCAmJiAoZXh0cmE/Lmd1aWxkSWQgPz8gcGF5bG9hZC5ndWlsZF9pZCkpXG4gICAgY2hhbm5lbC5ndWlsZElkID0gZXh0cmE/Lmd1aWxkSWQgPyBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShleHRyYS5ndWlsZElkKSA6IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuZ3VpbGRfaWQhKTtcbiAgaWYgKHByb3BzLnR5cGUgJiYgcGF5bG9hZC50eXBlICE9PSB1bmRlZmluZWQpIGNoYW5uZWwudHlwZSA9IHBheWxvYWQudHlwZTtcbiAgaWYgKHByb3BzLnBvc2l0aW9uKSBjaGFubmVsLnBvc2l0aW9uID0gcGF5bG9hZC5wb3NpdGlvbjtcbiAgaWYgKHByb3BzLm5hbWUgJiYgcGF5bG9hZC5uYW1lKSBjaGFubmVsLm5hbWUgPSBwYXlsb2FkLm5hbWU7XG4gIGlmIChwcm9wcy50b3BpYyAmJiBwYXlsb2FkLnRvcGljKSBjaGFubmVsLnRvcGljID0gcGF5bG9hZC50b3BpYztcbiAgaWYgKHByb3BzLmxhc3RNZXNzYWdlSWQgJiYgcGF5bG9hZC5sYXN0X21lc3NhZ2VfaWQpIGNoYW5uZWwubGFzdE1lc3NhZ2VJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQubGFzdF9tZXNzYWdlX2lkKTtcbiAgaWYgKHByb3BzLmJpdHJhdGUgJiYgcGF5bG9hZC5iaXRyYXRlKSBjaGFubmVsLmJpdHJhdGUgPSBwYXlsb2FkLmJpdHJhdGU7XG4gIGlmIChwcm9wcy51c2VyTGltaXQpIGNoYW5uZWwudXNlckxpbWl0ID0gcGF5bG9hZC51c2VyX2xpbWl0O1xuICBpZiAocHJvcHMucmF0ZUxpbWl0UGVyVXNlcikgY2hhbm5lbC5yYXRlTGltaXRQZXJVc2VyID0gcGF5bG9hZC5yYXRlX2xpbWl0X3Blcl91c2VyO1xuICBpZiAocHJvcHMub3duZXJJZCAmJiBwYXlsb2FkLm93bmVyX2lkKSBjaGFubmVsLm93bmVySWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLm93bmVyX2lkKTtcbiAgaWYgKHByb3BzLmxhc3RQaW5UaW1lc3RhbXAgJiYgcGF5bG9hZC5sYXN0X3Bpbl90aW1lc3RhbXApIGNoYW5uZWwubGFzdFBpblRpbWVzdGFtcCA9IERhdGUucGFyc2UocGF5bG9hZC5sYXN0X3Bpbl90aW1lc3RhbXApO1xuICBpZiAocHJvcHMucnRjUmVnaW9uICYmIHBheWxvYWQucnRjX3JlZ2lvbikgY2hhbm5lbC5ydGNSZWdpb24gPSBwYXlsb2FkLnJ0Y19yZWdpb247XG4gIGlmIChwcm9wcy52aWRlb1F1YWxpdHlNb2RlICYmIHBheWxvYWQudmlkZW9fcXVhbGl0eV9tb2RlKSBjaGFubmVsLnZpZGVvUXVhbGl0eU1vZGUgPSBwYXlsb2FkLnZpZGVvX3F1YWxpdHlfbW9kZTtcbiAgaWYgKHByb3BzLm1lc3NhZ2VDb3VudCkgY2hhbm5lbC5tZXNzYWdlQ291bnQgPSBwYXlsb2FkLm1lc3NhZ2VfY291bnQ7XG4gIGlmIChwcm9wcy5tZW1iZXJDb3VudCkgY2hhbm5lbC5tZW1iZXJDb3VudCA9IHBheWxvYWQubWVtYmVyX2NvdW50O1xuICBpZiAocHJvcHMudGhyZWFkTWV0YWRhdGEpIHtcbiAgICBjaGFubmVsLmludGVybmFsVGhyZWFkTWV0YWRhdGEgPSB7fSBhcyBOb25OdWxsYWJsZTxDaGFubmVsWydpbnRlcm5hbFRocmVhZE1ldGFkYXRhJ10+O1xuICAgIGlmIChwYXlsb2FkLnRocmVhZF9tZXRhZGF0YT8uYXJjaGl2ZV90aW1lc3RhbXApXG4gICAgICBjaGFubmVsLmludGVybmFsVGhyZWFkTWV0YWRhdGEuYXJjaGl2ZVRpbWVzdGFtcCA9IERhdGUucGFyc2UocGF5bG9hZC50aHJlYWRfbWV0YWRhdGEuYXJjaGl2ZV90aW1lc3RhbXApO1xuICAgIGlmIChwYXlsb2FkLnRocmVhZF9tZXRhZGF0YT8uY3JlYXRlX3RpbWVzdGFtcClcbiAgICAgIGNoYW5uZWwuaW50ZXJuYWxUaHJlYWRNZXRhZGF0YS5jcmVhdGVUaW1lc3RhbXAgPSBEYXRlLnBhcnNlKHBheWxvYWQudGhyZWFkX21ldGFkYXRhLmNyZWF0ZV90aW1lc3RhbXApO1xuICAgIGlmIChwYXlsb2FkLnRocmVhZF9tZXRhZGF0YT8uYXV0b19hcmNoaXZlX2R1cmF0aW9uKVxuICAgICAgY2hhbm5lbC5pbnRlcm5hbFRocmVhZE1ldGFkYXRhLmF1dG9BcmNoaXZlRHVyYXRpb24gPSBwYXlsb2FkLnRocmVhZF9tZXRhZGF0YS5hdXRvX2FyY2hpdmVfZHVyYXRpb247XG4gIH1cbiAgaWYgKHByb3BzLmRlZmF1bHRBdXRvQXJjaGl2ZUR1cmF0aW9uICYmIHBheWxvYWQuZGVmYXVsdF9hdXRvX2FyY2hpdmVfZHVyYXRpb24pXG4gICAgY2hhbm5lbC5kZWZhdWx0QXV0b0FyY2hpdmVEdXJhdGlvbiA9IHBheWxvYWQuZGVmYXVsdF9hdXRvX2FyY2hpdmVfZHVyYXRpb247XG4gIGlmIChwcm9wcy5wZXJtaXNzaW9ucyAmJiBwYXlsb2FkLnBlcm1pc3Npb25zKSBjaGFubmVsLnBlcm1pc3Npb25zID0gbmV3IFBlcm1pc3Npb25zKHBheWxvYWQucGVybWlzc2lvbnMpO1xuICBpZiAocHJvcHMuYXBwUGVybWlzc2lvbnMgJiYgcGF5bG9hZC5hcHBfcGVybWlzc2lvbnMpIGNoYW5uZWwuYXBwUGVybWlzc2lvbnMgPSBuZXcgUGVybWlzc2lvbnMocGF5bG9hZC5hcHBfcGVybWlzc2lvbnMpO1xuICBpZiAocHJvcHMuZmxhZ3MpIGNoYW5uZWwuZmxhZ3MgPSBwYXlsb2FkLmZsYWdzO1xuICBpZiAocHJvcHMucGVybWlzc2lvbk92ZXJ3cml0ZXMgJiYgcGF5bG9hZC5wZXJtaXNzaW9uX292ZXJ3cml0ZXMpXG4gICAgY2hhbm5lbC5pbnRlcm5hbE92ZXJ3cml0ZXMgPSBwYXlsb2FkLnBlcm1pc3Npb25fb3ZlcndyaXRlcy5tYXAoKG8pID0+IHBhY2tPdmVyd3JpdGVzKG8uYWxsb3cgPz8gJzAnLCBvLmRlbnkgPz8gJzAnLCBvLmlkLCBvLnR5cGUpKTtcbiAgaWYgKHByb3BzLnBhcmVudElkICYmIHBheWxvYWQucGFyZW50X2lkKSBjaGFubmVsLnBhcmVudElkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5wYXJlbnRfaWQpO1xuICBpZiAocHJvcHMucmVjaXBpZW50cyAmJiBwYXlsb2FkLnJlY2lwaWVudHMpIGNoYW5uZWwucmVjaXBpZW50cyA9IHBheWxvYWQucmVjaXBpZW50cy5tYXAoKHUpID0+IGJvdC50cmFuc2Zvcm1lcnMudXNlcihib3QsIHUpKTtcbiAgaWYgKHByb3BzLmljb24gJiYgcGF5bG9hZC5pY29uKSBjaGFubmVsLmljb24gPSBpY29uSGFzaFRvQmlnSW50KHBheWxvYWQuaWNvbik7XG4gIGlmIChwcm9wcy5hcHBsaWNhdGlvbklkICYmIHBheWxvYWQuYXBwbGljYXRpb25faWQpIGNoYW5uZWwuYXBwbGljYXRpb25JZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuYXBwbGljYXRpb25faWQpO1xuICBpZiAocHJvcHMubWVtYmVyICYmIHBheWxvYWQubWVtYmVyKSBjaGFubmVsLm1lbWJlciA9IGJvdC50cmFuc2Zvcm1lcnMudGhyZWFkTWVtYmVyKGJvdCwgcGF5bG9hZC5tZW1iZXIsIHsgZ3VpbGRJZDogZXh0cmE/Lmd1aWxkSWQgfSk7XG4gIGlmIChwcm9wcy50b3RhbE1lc3NhZ2VTZW50ICYmIHBheWxvYWQudG90YWxfbWVzc2FnZV9zZW50ICE9PSB1bmRlZmluZWQpIGNoYW5uZWwudG90YWxNZXNzYWdlU2VudCA9IHBheWxvYWQudG90YWxfbWVzc2FnZV9zZW50O1xuICBpZiAocHJvcHMuYXZhaWxhYmxlVGFncyAmJiBwYXlsb2FkLmF2YWlsYWJsZV90YWdzKSBjaGFubmVsLmF2YWlsYWJsZVRhZ3MgPSBwYXlsb2FkLmF2YWlsYWJsZV90YWdzLm1hcCgoeCkgPT4gYm90LnRyYW5zZm9ybWVycy5mb3J1bVRhZyhib3QsIHgpKTtcbiAgaWYgKHByb3BzLmFwcGxpZWRUYWdzICYmIHBheWxvYWQuYXBwbGllZF90YWdzKSBjaGFubmVsLmFwcGxpZWRUYWdzID0gcGF5bG9hZC5hcHBsaWVkX3RhZ3MubWFwKCh4KSA9PiBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZSh4KSk7XG4gIGlmIChwcm9wcy5kZWZhdWx0UmVhY3Rpb25FbW9qaSAmJiBwYXlsb2FkLmRlZmF1bHRfcmVhY3Rpb25fZW1vamkpXG4gICAgY2hhbm5lbC5kZWZhdWx0UmVhY3Rpb25FbW9qaSA9IGJvdC50cmFuc2Zvcm1lcnMuZGVmYXVsdFJlYWN0aW9uRW1vamkoYm90LCBwYXlsb2FkLmRlZmF1bHRfcmVhY3Rpb25fZW1vamkpO1xuICBpZiAocHJvcHMuZGVmYXVsdFRocmVhZFJhdGVMaW1pdFBlclVzZXIgJiYgcGF5bG9hZC5kZWZhdWx0X3RocmVhZF9yYXRlX2xpbWl0X3Blcl91c2VyKVxuICAgIGNoYW5uZWwuZGVmYXVsdFRocmVhZFJhdGVMaW1pdFBlclVzZXIgPSBwYXlsb2FkLmRlZmF1bHRfdGhyZWFkX3JhdGVfbGltaXRfcGVyX3VzZXI7XG4gIGlmIChwcm9wcy5kZWZhdWx0U29ydE9yZGVyICYmIHBheWxvYWQuZGVmYXVsdF9zb3J0X29yZGVyICE9PSB1bmRlZmluZWQpIGNoYW5uZWwuZGVmYXVsdFNvcnRPcmRlciA9IHBheWxvYWQuZGVmYXVsdF9zb3J0X29yZGVyO1xuICBpZiAocHJvcHMuZGVmYXVsdEZvcnVtTGF5b3V0ICYmIHBheWxvYWQuZGVmYXVsdF9mb3J1bV9sYXlvdXQgIT09IHVuZGVmaW5lZCkgY2hhbm5lbC5kZWZhdWx0Rm9ydW1MYXlvdXQgPSBwYXlsb2FkLmRlZmF1bHRfZm9ydW1fbGF5b3V0O1xuXG4gIHJldHVybiBjYWxsQ3VzdG9taXplcignY2hhbm5lbCcsIGJvdCwgcGF5bG9hZCwgY2hhbm5lbCwge1xuICAgIGd1aWxkSWQ6IGV4dHJhPy5ndWlsZElkID8gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UoZXh0cmEuZ3VpbGRJZCkgOiB1bmRlZmluZWQsXG4gICAgcGFydGlhbDogZXh0cmE/LnBhcnRpYWwgPz8gZmFsc2UsXG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtRm9ydW1UYWcoYm90OiBCb3QsIHBheWxvYWQ6IFBhcnRpYWw8RGlzY29yZEZvcnVtVGFnPiwgZXh0cmE/OiB7IHBhcnRpYWw/OiBib29sZWFuIH0pIHtcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLmZvcnVtVGFnO1xuICBjb25zdCBmb3J1bVRhZyA9IHt9IGFzIFNldHVwRGVzaXJlZFByb3BzPEZvcnVtVGFnLCBUcmFuc2Zvcm1lcnNEZXNpcmVkUHJvcGVydGllcywgRGVzaXJlZFByb3BlcnRpZXNCZWhhdmlvcj47XG5cbiAgaWYgKHByb3BzLmlkICYmIHBheWxvYWQuaWQpIGZvcnVtVGFnLmlkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5pZCk7XG4gIGlmIChwcm9wcy5uYW1lICYmIHBheWxvYWQubmFtZSkgZm9ydW1UYWcubmFtZSA9IHBheWxvYWQubmFtZTtcbiAgaWYgKHByb3BzLm1vZGVyYXRlZCAmJiBwYXlsb2FkLm1vZGVyYXRlZCkgZm9ydW1UYWcubW9kZXJhdGVkID0gcGF5bG9hZC5tb2RlcmF0ZWQ7XG4gIGlmIChwcm9wcy5lbW9qaUlkICYmIHBheWxvYWQuZW1vamlfaWQpIGZvcnVtVGFnLmVtb2ppSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmVtb2ppX2lkKTtcbiAgaWYgKHByb3BzLmVtb2ppTmFtZSAmJiBwYXlsb2FkLmVtb2ppX25hbWUpIGZvcnVtVGFnLmVtb2ppTmFtZSA9IHBheWxvYWQuZW1vamlfbmFtZTtcblxuICByZXR1cm4gY2FsbEN1c3RvbWl6ZXIoJ2ZvcnVtVGFnJywgYm90LCBwYXlsb2FkLCBmb3J1bVRhZywge1xuICAgIHBhcnRpYWw6IGV4dHJhPy5wYXJ0aWFsID8/IGZhbHNlLFxuICB9KTtcbn1cbiJdLCJuYW1lcyI6WyJpY29uSGFzaFRvQmlnSW50IiwiY2FsbEN1c3RvbWl6ZXIiLCJDaGFubmVsVG9nZ2xlcyIsIlBlcm1pc3Npb25zIiwiTWFzayIsInBhY2tPdmVyd3JpdGVzIiwiYWxsb3ciLCJkZW55IiwiaWQiLCJ0eXBlIiwicGFjazY0IiwidW5wYWNrNjQiLCJ2Iiwic2hpZnQiLCJCaWdJbnQiLCJiIiwiRXJyb3IiLCJ0b1N0cmluZyIsInNlcGFyYXRlT3ZlcndyaXRlcyIsIk51bWJlciIsImJhc2VDaGFubmVsIiwidW5kZWZpbmVkIiwiYXJjaGl2ZWQiLCJ0b2dnbGVzIiwiaW52aXRhYmxlIiwibG9ja2VkIiwibnNmdyIsIm5ld2x5Q3JlYXRlZCIsIm1hbmFnZWQiLCJwZXJtaXNzaW9uT3ZlcndyaXRlcyIsImludGVybmFsT3ZlcndyaXRlcyIsIm1hcCIsIm92ZXJ3cml0ZSIsInRocmVhZE1ldGFkYXRhIiwiYXJjaGl2ZVRpbWVzdGFtcCIsImludGVybmFsVGhyZWFkTWV0YWRhdGEiLCJjcmVhdGVUaW1lc3RhbXAiLCJhdXRvQXJjaGl2ZUR1cmF0aW9uIiwidHJhbnNmb3JtQ2hhbm5lbCIsImJvdCIsInBheWxvYWQiLCJleHRyYSIsImNoYW5uZWwiLCJPYmplY3QiLCJjcmVhdGUiLCJwcm9wcyIsInRyYW5zZm9ybWVycyIsImRlc2lyZWRQcm9wZXJ0aWVzIiwic25vd2ZsYWtlIiwiZ3VpbGRJZCIsImd1aWxkX2lkIiwicG9zaXRpb24iLCJuYW1lIiwidG9waWMiLCJsYXN0TWVzc2FnZUlkIiwibGFzdF9tZXNzYWdlX2lkIiwiYml0cmF0ZSIsInVzZXJMaW1pdCIsInVzZXJfbGltaXQiLCJyYXRlTGltaXRQZXJVc2VyIiwicmF0ZV9saW1pdF9wZXJfdXNlciIsIm93bmVySWQiLCJvd25lcl9pZCIsImxhc3RQaW5UaW1lc3RhbXAiLCJsYXN0X3Bpbl90aW1lc3RhbXAiLCJEYXRlIiwicGFyc2UiLCJydGNSZWdpb24iLCJydGNfcmVnaW9uIiwidmlkZW9RdWFsaXR5TW9kZSIsInZpZGVvX3F1YWxpdHlfbW9kZSIsIm1lc3NhZ2VDb3VudCIsIm1lc3NhZ2VfY291bnQiLCJtZW1iZXJDb3VudCIsIm1lbWJlcl9jb3VudCIsInRocmVhZF9tZXRhZGF0YSIsImFyY2hpdmVfdGltZXN0YW1wIiwiY3JlYXRlX3RpbWVzdGFtcCIsImF1dG9fYXJjaGl2ZV9kdXJhdGlvbiIsImRlZmF1bHRBdXRvQXJjaGl2ZUR1cmF0aW9uIiwiZGVmYXVsdF9hdXRvX2FyY2hpdmVfZHVyYXRpb24iLCJwZXJtaXNzaW9ucyIsImFwcFBlcm1pc3Npb25zIiwiYXBwX3Blcm1pc3Npb25zIiwiZmxhZ3MiLCJwZXJtaXNzaW9uX292ZXJ3cml0ZXMiLCJvIiwicGFyZW50SWQiLCJwYXJlbnRfaWQiLCJyZWNpcGllbnRzIiwidSIsInVzZXIiLCJpY29uIiwiYXBwbGljYXRpb25JZCIsImFwcGxpY2F0aW9uX2lkIiwibWVtYmVyIiwidGhyZWFkTWVtYmVyIiwidG90YWxNZXNzYWdlU2VudCIsInRvdGFsX21lc3NhZ2Vfc2VudCIsImF2YWlsYWJsZVRhZ3MiLCJhdmFpbGFibGVfdGFncyIsIngiLCJmb3J1bVRhZyIsImFwcGxpZWRUYWdzIiwiYXBwbGllZF90YWdzIiwiZGVmYXVsdFJlYWN0aW9uRW1vamkiLCJkZWZhdWx0X3JlYWN0aW9uX2Vtb2ppIiwiZGVmYXVsdFRocmVhZFJhdGVMaW1pdFBlclVzZXIiLCJkZWZhdWx0X3RocmVhZF9yYXRlX2xpbWl0X3Blcl91c2VyIiwiZGVmYXVsdFNvcnRPcmRlciIsImRlZmF1bHRfc29ydF9vcmRlciIsImRlZmF1bHRGb3J1bUxheW91dCIsImRlZmF1bHRfZm9ydW1fbGF5b3V0IiwicGFydGlhbCIsInRyYW5zZm9ybUZvcnVtVGFnIiwibW9kZXJhdGVkIiwiZW1vamlJZCIsImVtb2ppX2lkIiwiZW1vamlOYW1lIiwiZW1vamlfbmFtZSJdLCJtYXBwaW5ncyI6IkFBQ0EsU0FBU0EsZ0JBQWdCLFFBQVEsb0JBQW9CO0FBR3JELFNBQVNDLGNBQWMsUUFBUSxxQkFBcUI7QUFDcEQsU0FBU0MsY0FBYyxRQUFRLHVCQUF1QjtBQUN0RCxTQUFTQyxXQUFXLFFBQVEsMkJBQTJCO0FBR3ZELE1BQU1DLE9BQU8sQUFBQyxDQUFBLEVBQUUsSUFBSSxHQUFHLEFBQUQsSUFBSyxFQUFFO0FBRTdCLE9BQU8sU0FBU0MsZUFBZUMsS0FBYSxFQUFFQyxJQUFZLEVBQUVDLEVBQVUsRUFBRUMsSUFBWTtJQUNsRixPQUFPQyxPQUFPSixPQUFPLEtBQUtJLE9BQU9ILE1BQU0sS0FBS0csT0FBT0YsSUFBSSxLQUFLRSxPQUFPRCxNQUFNO0FBQzNFO0FBQ0EsU0FBU0UsU0FBU0MsQ0FBUyxFQUFFQyxLQUFhO0lBQ3hDLE9BQU8sQUFBQ0QsS0FBS0UsT0FBT0QsUUFBUSxNQUFPVDtBQUNyQztBQUNBLFNBQVNNLE9BQU9FLENBQWtCLEVBQUVDLEtBQWE7SUFDL0MsTUFBTUUsSUFBSUQsT0FBT0Y7SUFDakIsSUFBSUcsSUFBSSxLQUFLQSxJQUFJWCxNQUFNLE1BQU0sSUFBSVksTUFBTSxpREFBaURKLEVBQUVLLFFBQVE7SUFDbEcsT0FBT0YsS0FBS0QsT0FBT0QsUUFBUTtBQUM3QjtBQUNBLE9BQU8sU0FBU0ssbUJBQW1CTixDQUFTO0lBQzFDLE9BQU87UUFBQ08sT0FBT1IsU0FBU0MsR0FBRztRQUFLRCxTQUFTQyxHQUFHO1FBQUlELFNBQVNDLEdBQUc7UUFBSUQsU0FBU0MsR0FBRztLQUFHO0FBQ2pGO0FBRUEsT0FBTyxNQUFNUSxjQUF1QjtJQUNsQywyRUFBMkU7SUFDM0UsR0FBSUMsU0FBUztJQUViLElBQUlDO1FBQ0YsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDQyxPQUFPLEVBQUVEO0lBQ3pCO0lBQ0EsSUFBSUU7UUFDRixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUNELE9BQU8sRUFBRUM7SUFDekI7SUFDQSxJQUFJQztRQUNGLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQ0YsT0FBTyxFQUFFRTtJQUN6QjtJQUNBLElBQUlDO1FBQ0YsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDSCxPQUFPLEVBQUVHO0lBQ3pCO0lBQ0EsSUFBSUM7UUFDRixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUNKLE9BQU8sRUFBRUk7SUFDekI7SUFDQSxJQUFJQztRQUNGLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQ0wsT0FBTyxFQUFFSztJQUN6QjtJQUNBLElBQUlDO1FBQ0YsT0FDRSxJQUFJLENBQUNDLGtCQUFrQixFQUFFQyxJQUFJLENBQUNDO1lBQzVCLE1BQU0sQ0FBQ3ZCLE1BQU1ELElBQUlGLE9BQU9DLEtBQUssR0FBR1csbUJBQW1CYztZQUNuRCxPQUFPO2dCQUNMdkI7Z0JBQ0FEO2dCQUNBRjtnQkFDQUM7WUFDRjtRQUNGLE1BQU0sRUFBRTtJQUVaO0lBQ0EsSUFBSTBCO1FBQ0YsT0FBTztZQUNMQyxrQkFBa0IsSUFBSSxDQUFDQyxzQkFBc0IsRUFBRUQ7WUFDL0NFLGlCQUFpQixJQUFJLENBQUNELHNCQUFzQixFQUFFQztZQUM5Q0MscUJBQXFCLElBQUksQ0FBQ0Ysc0JBQXNCLEVBQUVFO1lBQ2xEWixRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUNGLE9BQU8sRUFBRUU7WUFDeEJELFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FBQ0QsT0FBTyxFQUFFQztZQUMzQkYsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDQyxPQUFPLEVBQUVEO1FBQzVCO0lBQ0Y7QUFDRixFQUFFO0FBRUYsT0FBTyxTQUFTZ0IsaUJBQWlCQyxHQUFRLEVBQUVDLE9BQWdDLEVBQUVDLEtBQWtEO0lBQzdILE1BQU1DLFVBQVVDLE9BQU9DLE1BQU0sQ0FBQ3hCO0lBQzlCLE1BQU15QixRQUFRTixJQUFJTyxZQUFZLENBQUNDLGlCQUFpQixDQUFDTCxPQUFPO0lBQ3hEQSxRQUFRbkIsT0FBTyxHQUFHLElBQUlyQixlQUFlc0M7SUFFckMsSUFBSUssTUFBTXJDLEVBQUUsSUFBSWdDLFFBQVFoQyxFQUFFLEVBQUVrQyxRQUFRbEMsRUFBRSxHQUFHK0IsSUFBSU8sWUFBWSxDQUFDRSxTQUFTLENBQUNSLFFBQVFoQyxFQUFFO0lBQzlFLElBQUlxQyxNQUFNSSxPQUFPLElBQUtSLENBQUFBLE9BQU9RLFdBQVdULFFBQVFVLFFBQVEsQUFBRCxHQUNyRFIsUUFBUU8sT0FBTyxHQUFHUixPQUFPUSxVQUFVVixJQUFJTyxZQUFZLENBQUNFLFNBQVMsQ0FBQ1AsTUFBTVEsT0FBTyxJQUFJVixJQUFJTyxZQUFZLENBQUNFLFNBQVMsQ0FBQ1IsUUFBUVUsUUFBUTtJQUM1SCxJQUFJTCxNQUFNcEMsSUFBSSxJQUFJK0IsUUFBUS9CLElBQUksS0FBS1ksV0FBV3FCLFFBQVFqQyxJQUFJLEdBQUcrQixRQUFRL0IsSUFBSTtJQUN6RSxJQUFJb0MsTUFBTU0sUUFBUSxFQUFFVCxRQUFRUyxRQUFRLEdBQUdYLFFBQVFXLFFBQVE7SUFDdkQsSUFBSU4sTUFBTU8sSUFBSSxJQUFJWixRQUFRWSxJQUFJLEVBQUVWLFFBQVFVLElBQUksR0FBR1osUUFBUVksSUFBSTtJQUMzRCxJQUFJUCxNQUFNUSxLQUFLLElBQUliLFFBQVFhLEtBQUssRUFBRVgsUUFBUVcsS0FBSyxHQUFHYixRQUFRYSxLQUFLO0lBQy9ELElBQUlSLE1BQU1TLGFBQWEsSUFBSWQsUUFBUWUsZUFBZSxFQUFFYixRQUFRWSxhQUFhLEdBQUdmLElBQUlPLFlBQVksQ0FBQ0UsU0FBUyxDQUFDUixRQUFRZSxlQUFlO0lBQzlILElBQUlWLE1BQU1XLE9BQU8sSUFBSWhCLFFBQVFnQixPQUFPLEVBQUVkLFFBQVFjLE9BQU8sR0FBR2hCLFFBQVFnQixPQUFPO0lBQ3ZFLElBQUlYLE1BQU1ZLFNBQVMsRUFBRWYsUUFBUWUsU0FBUyxHQUFHakIsUUFBUWtCLFVBQVU7SUFDM0QsSUFBSWIsTUFBTWMsZ0JBQWdCLEVBQUVqQixRQUFRaUIsZ0JBQWdCLEdBQUduQixRQUFRb0IsbUJBQW1CO0lBQ2xGLElBQUlmLE1BQU1nQixPQUFPLElBQUlyQixRQUFRc0IsUUFBUSxFQUFFcEIsUUFBUW1CLE9BQU8sR0FBR3RCLElBQUlPLFlBQVksQ0FBQ0UsU0FBUyxDQUFDUixRQUFRc0IsUUFBUTtJQUNwRyxJQUFJakIsTUFBTWtCLGdCQUFnQixJQUFJdkIsUUFBUXdCLGtCQUFrQixFQUFFdEIsUUFBUXFCLGdCQUFnQixHQUFHRSxLQUFLQyxLQUFLLENBQUMxQixRQUFRd0Isa0JBQWtCO0lBQzFILElBQUluQixNQUFNc0IsU0FBUyxJQUFJM0IsUUFBUTRCLFVBQVUsRUFBRTFCLFFBQVF5QixTQUFTLEdBQUczQixRQUFRNEIsVUFBVTtJQUNqRixJQUFJdkIsTUFBTXdCLGdCQUFnQixJQUFJN0IsUUFBUThCLGtCQUFrQixFQUFFNUIsUUFBUTJCLGdCQUFnQixHQUFHN0IsUUFBUThCLGtCQUFrQjtJQUMvRyxJQUFJekIsTUFBTTBCLFlBQVksRUFBRTdCLFFBQVE2QixZQUFZLEdBQUcvQixRQUFRZ0MsYUFBYTtJQUNwRSxJQUFJM0IsTUFBTTRCLFdBQVcsRUFBRS9CLFFBQVErQixXQUFXLEdBQUdqQyxRQUFRa0MsWUFBWTtJQUNqRSxJQUFJN0IsTUFBTVosY0FBYyxFQUFFO1FBQ3hCUyxRQUFRUCxzQkFBc0IsR0FBRyxDQUFDO1FBQ2xDLElBQUlLLFFBQVFtQyxlQUFlLEVBQUVDLG1CQUMzQmxDLFFBQVFQLHNCQUFzQixDQUFDRCxnQkFBZ0IsR0FBRytCLEtBQUtDLEtBQUssQ0FBQzFCLFFBQVFtQyxlQUFlLENBQUNDLGlCQUFpQjtRQUN4RyxJQUFJcEMsUUFBUW1DLGVBQWUsRUFBRUUsa0JBQzNCbkMsUUFBUVAsc0JBQXNCLENBQUNDLGVBQWUsR0FBRzZCLEtBQUtDLEtBQUssQ0FBQzFCLFFBQVFtQyxlQUFlLENBQUNFLGdCQUFnQjtRQUN0RyxJQUFJckMsUUFBUW1DLGVBQWUsRUFBRUcsdUJBQzNCcEMsUUFBUVAsc0JBQXNCLENBQUNFLG1CQUFtQixHQUFHRyxRQUFRbUMsZUFBZSxDQUFDRyxxQkFBcUI7SUFDdEc7SUFDQSxJQUFJakMsTUFBTWtDLDBCQUEwQixJQUFJdkMsUUFBUXdDLDZCQUE2QixFQUMzRXRDLFFBQVFxQywwQkFBMEIsR0FBR3ZDLFFBQVF3Qyw2QkFBNkI7SUFDNUUsSUFBSW5DLE1BQU1vQyxXQUFXLElBQUl6QyxRQUFReUMsV0FBVyxFQUFFdkMsUUFBUXVDLFdBQVcsR0FBRyxJQUFJOUUsWUFBWXFDLFFBQVF5QyxXQUFXO0lBQ3ZHLElBQUlwQyxNQUFNcUMsY0FBYyxJQUFJMUMsUUFBUTJDLGVBQWUsRUFBRXpDLFFBQVF3QyxjQUFjLEdBQUcsSUFBSS9FLFlBQVlxQyxRQUFRMkMsZUFBZTtJQUNySCxJQUFJdEMsTUFBTXVDLEtBQUssRUFBRTFDLFFBQVEwQyxLQUFLLEdBQUc1QyxRQUFRNEMsS0FBSztJQUM5QyxJQUFJdkMsTUFBTWhCLG9CQUFvQixJQUFJVyxRQUFRNkMscUJBQXFCLEVBQzdEM0MsUUFBUVosa0JBQWtCLEdBQUdVLFFBQVE2QyxxQkFBcUIsQ0FBQ3RELEdBQUcsQ0FBQyxDQUFDdUQsSUFBTWpGLGVBQWVpRixFQUFFaEYsS0FBSyxJQUFJLEtBQUtnRixFQUFFL0UsSUFBSSxJQUFJLEtBQUsrRSxFQUFFOUUsRUFBRSxFQUFFOEUsRUFBRTdFLElBQUk7SUFDbEksSUFBSW9DLE1BQU0wQyxRQUFRLElBQUkvQyxRQUFRZ0QsU0FBUyxFQUFFOUMsUUFBUTZDLFFBQVEsR0FBR2hELElBQUlPLFlBQVksQ0FBQ0UsU0FBUyxDQUFDUixRQUFRZ0QsU0FBUztJQUN4RyxJQUFJM0MsTUFBTTRDLFVBQVUsSUFBSWpELFFBQVFpRCxVQUFVLEVBQUUvQyxRQUFRK0MsVUFBVSxHQUFHakQsUUFBUWlELFVBQVUsQ0FBQzFELEdBQUcsQ0FBQyxDQUFDMkQsSUFBTW5ELElBQUlPLFlBQVksQ0FBQzZDLElBQUksQ0FBQ3BELEtBQUttRDtJQUMxSCxJQUFJN0MsTUFBTStDLElBQUksSUFBSXBELFFBQVFvRCxJQUFJLEVBQUVsRCxRQUFRa0QsSUFBSSxHQUFHNUYsaUJBQWlCd0MsUUFBUW9ELElBQUk7SUFDNUUsSUFBSS9DLE1BQU1nRCxhQUFhLElBQUlyRCxRQUFRc0QsY0FBYyxFQUFFcEQsUUFBUW1ELGFBQWEsR0FBR3RELElBQUlPLFlBQVksQ0FBQ0UsU0FBUyxDQUFDUixRQUFRc0QsY0FBYztJQUM1SCxJQUFJakQsTUFBTWtELE1BQU0sSUFBSXZELFFBQVF1RCxNQUFNLEVBQUVyRCxRQUFRcUQsTUFBTSxHQUFHeEQsSUFBSU8sWUFBWSxDQUFDa0QsWUFBWSxDQUFDekQsS0FBS0MsUUFBUXVELE1BQU0sRUFBRTtRQUFFOUMsU0FBU1IsT0FBT1E7SUFBUTtJQUNsSSxJQUFJSixNQUFNb0QsZ0JBQWdCLElBQUl6RCxRQUFRMEQsa0JBQWtCLEtBQUs3RSxXQUFXcUIsUUFBUXVELGdCQUFnQixHQUFHekQsUUFBUTBELGtCQUFrQjtJQUM3SCxJQUFJckQsTUFBTXNELGFBQWEsSUFBSTNELFFBQVE0RCxjQUFjLEVBQUUxRCxRQUFReUQsYUFBYSxHQUFHM0QsUUFBUTRELGNBQWMsQ0FBQ3JFLEdBQUcsQ0FBQyxDQUFDc0UsSUFBTTlELElBQUlPLFlBQVksQ0FBQ3dELFFBQVEsQ0FBQy9ELEtBQUs4RDtJQUM1SSxJQUFJeEQsTUFBTTBELFdBQVcsSUFBSS9ELFFBQVFnRSxZQUFZLEVBQUU5RCxRQUFRNkQsV0FBVyxHQUFHL0QsUUFBUWdFLFlBQVksQ0FBQ3pFLEdBQUcsQ0FBQyxDQUFDc0UsSUFBTTlELElBQUlPLFlBQVksQ0FBQ0UsU0FBUyxDQUFDcUQ7SUFDaEksSUFBSXhELE1BQU00RCxvQkFBb0IsSUFBSWpFLFFBQVFrRSxzQkFBc0IsRUFDOURoRSxRQUFRK0Qsb0JBQW9CLEdBQUdsRSxJQUFJTyxZQUFZLENBQUMyRCxvQkFBb0IsQ0FBQ2xFLEtBQUtDLFFBQVFrRSxzQkFBc0I7SUFDMUcsSUFBSTdELE1BQU04RCw2QkFBNkIsSUFBSW5FLFFBQVFvRSxrQ0FBa0MsRUFDbkZsRSxRQUFRaUUsNkJBQTZCLEdBQUduRSxRQUFRb0Usa0NBQWtDO0lBQ3BGLElBQUkvRCxNQUFNZ0UsZ0JBQWdCLElBQUlyRSxRQUFRc0Usa0JBQWtCLEtBQUt6RixXQUFXcUIsUUFBUW1FLGdCQUFnQixHQUFHckUsUUFBUXNFLGtCQUFrQjtJQUM3SCxJQUFJakUsTUFBTWtFLGtCQUFrQixJQUFJdkUsUUFBUXdFLG9CQUFvQixLQUFLM0YsV0FBV3FCLFFBQVFxRSxrQkFBa0IsR0FBR3ZFLFFBQVF3RSxvQkFBb0I7SUFFckksT0FBTy9HLGVBQWUsV0FBV3NDLEtBQUtDLFNBQVNFLFNBQVM7UUFDdERPLFNBQVNSLE9BQU9RLFVBQVVWLElBQUlPLFlBQVksQ0FBQ0UsU0FBUyxDQUFDUCxNQUFNUSxPQUFPLElBQUk1QjtRQUN0RTRGLFNBQVN4RSxPQUFPd0UsV0FBVztJQUM3QjtBQUNGO0FBRUEsT0FBTyxTQUFTQyxrQkFBa0IzRSxHQUFRLEVBQUVDLE9BQWlDLEVBQUVDLEtBQTZCO0lBQzFHLE1BQU1JLFFBQVFOLElBQUlPLFlBQVksQ0FBQ0MsaUJBQWlCLENBQUN1RCxRQUFRO0lBQ3pELE1BQU1BLFdBQVcsQ0FBQztJQUVsQixJQUFJekQsTUFBTXJDLEVBQUUsSUFBSWdDLFFBQVFoQyxFQUFFLEVBQUU4RixTQUFTOUYsRUFBRSxHQUFHK0IsSUFBSU8sWUFBWSxDQUFDRSxTQUFTLENBQUNSLFFBQVFoQyxFQUFFO0lBQy9FLElBQUlxQyxNQUFNTyxJQUFJLElBQUlaLFFBQVFZLElBQUksRUFBRWtELFNBQVNsRCxJQUFJLEdBQUdaLFFBQVFZLElBQUk7SUFDNUQsSUFBSVAsTUFBTXNFLFNBQVMsSUFBSTNFLFFBQVEyRSxTQUFTLEVBQUViLFNBQVNhLFNBQVMsR0FBRzNFLFFBQVEyRSxTQUFTO0lBQ2hGLElBQUl0RSxNQUFNdUUsT0FBTyxJQUFJNUUsUUFBUTZFLFFBQVEsRUFBRWYsU0FBU2MsT0FBTyxHQUFHN0UsSUFBSU8sWUFBWSxDQUFDRSxTQUFTLENBQUNSLFFBQVE2RSxRQUFRO0lBQ3JHLElBQUl4RSxNQUFNeUUsU0FBUyxJQUFJOUUsUUFBUStFLFVBQVUsRUFBRWpCLFNBQVNnQixTQUFTLEdBQUc5RSxRQUFRK0UsVUFBVTtJQUVsRixPQUFPdEgsZUFBZSxZQUFZc0MsS0FBS0MsU0FBUzhELFVBQVU7UUFDeERXLFNBQVN4RSxPQUFPd0UsV0FBVztJQUM3QjtBQUNGIn0=
@@ -1,7 +1,12 @@
1
1
  import { type DiscordMediaGalleryItem, type DiscordMessageComponent, type DiscordMessageComponentFromModalInteractionResponse, type DiscordUnfurledMediaItem } from '@discordeno/types';
2
2
  import type { Bot } from '../bot.js';
3
- import type { Component, MediaGalleryItem, UnfurledMediaItem } from './types.js';
4
- export declare function transformComponent(bot: Bot, payload: DiscordMessageComponent | DiscordMessageComponentFromModalInteractionResponse): Component;
5
- export declare function transformUnfurledMediaItem(bot: Bot, payload: DiscordUnfurledMediaItem): UnfurledMediaItem;
6
- export declare function transformMediaGalleryItem(bot: Bot, payload: DiscordMediaGalleryItem): MediaGalleryItem;
3
+ export declare function transformComponent(bot: Bot, payload: Partial<DiscordMessageComponent | DiscordMessageComponentFromModalInteractionResponse>, extra?: {
4
+ partial?: boolean;
5
+ }): any;
6
+ export declare function transformUnfurledMediaItem(bot: Bot, payload: Partial<DiscordUnfurledMediaItem>, extra?: {
7
+ partial?: boolean;
8
+ }): any;
9
+ export declare function transformMediaGalleryItem(bot: Bot, payload: Partial<DiscordMediaGalleryItem>, extra?: {
10
+ partial?: boolean;
11
+ }): any;
7
12
  //# sourceMappingURL=component.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../src/transformers/component.ts"],"names":[],"mappings":"AAAA,OAAO,EAUL,KAAK,uBAAuB,EAC5B,KAAK,uBAAuB,EAC5B,KAAK,mDAAmD,EAUxD,KAAK,wBAAwB,EAE9B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAErC,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEjF,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,uBAAuB,GAAG,mDAAmD,GAAG,SAAS,CAmD9I;AAED,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,wBAAwB,GAAG,iBAAiB,CAYzG;AAED,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,uBAAuB,GAAG,gBAAgB,CAStG"}
1
+ {"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../src/transformers/component.ts"],"names":[],"mappings":"AAAA,OAAO,EAgBL,KAAK,uBAAuB,EAG5B,KAAK,uBAAuB,EAC5B,KAAK,mDAAmD,EAcxD,KAAK,wBAAwB,EAI9B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAMrC,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,GAAG,EACR,OAAO,EAAE,OAAO,CAAC,uBAAuB,GAAG,mDAAmD,CAAC,EAC/F,KAAK,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,OA4E9B;AAED,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,wBAAwB,CAAC,EAAE,KAAK,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,OAiB7H;AAED,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,uBAAuB,CAAC,EAAE,KAAK,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,OAW3H"}