@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.
- package/dist/cjs/bot.cjs +1 -1
- package/dist/cjs/desiredProperties.cjs +1 -1
- package/dist/cjs/handlers/channels/CHANNEL_CREATE.cjs +3 -4
- package/dist/cjs/handlers/channels/CHANNEL_DELETE.cjs +3 -5
- package/dist/cjs/handlers/channels/CHANNEL_UPDATE.cjs +2 -4
- package/dist/cjs/handlers/channels/THREAD_CREATE.cjs +2 -4
- package/dist/cjs/handlers/channels/THREAD_DELETE.cjs +2 -4
- package/dist/cjs/handlers/channels/THREAD_LIST_SYNC.cjs +2 -3
- package/dist/cjs/handlers/channels/THREAD_MEMBERS_UPDATE.cjs +4 -2
- package/dist/cjs/handlers/channels/THREAD_MEMBER_UPDATE.cjs +1 -3
- package/dist/cjs/handlers/channels/THREAD_UPDATE.cjs +2 -4
- package/dist/cjs/handlers/guilds/GUILD_CREATE.cjs +2 -3
- package/dist/cjs/handlers/guilds/GUILD_DELETE.cjs +6 -8
- package/dist/cjs/handlers/guilds/GUILD_UPDATE.cjs +2 -3
- package/dist/cjs/handlers/guilds/index.cjs +2 -2
- package/dist/cjs/handlers/index.cjs +3 -3
- package/dist/cjs/handlers/interactions/INTERACTION_CREATE.cjs +3 -3
- package/dist/cjs/handlers/invites/INVITE_CREATE.cjs +3 -3
- package/dist/cjs/handlers/members/GUILD_MEMBER_ADD.cjs +5 -2
- package/dist/cjs/handlers/members/GUILD_MEMBER_UPDATE.cjs +6 -3
- package/dist/cjs/handlers/messages/MESSAGE_CREATE.cjs +2 -3
- package/dist/cjs/handlers/messages/MESSAGE_REACTION_ADD.cjs +6 -2
- package/dist/cjs/handlers/messages/MESSAGE_REACTION_REMOVE.cjs +2 -1
- package/dist/cjs/handlers/messages/MESSAGE_REACTION_REMOVE_EMOJI.cjs +2 -1
- package/dist/cjs/handlers/messages/MESSAGE_UPDATE.cjs +2 -3
- package/dist/cjs/handlers/messages/index.cjs +3 -3
- package/dist/cjs/handlers/misc/TYPING_START.cjs +5 -2
- package/dist/cjs/handlers/roles/GUILD_ROLE_CREATE.cjs +2 -3
- package/dist/cjs/handlers/roles/GUILD_ROLE_UPDATE.cjs +2 -3
- package/dist/cjs/handlers/soundboard/index.cjs +3 -3
- package/dist/cjs/handlers/voice/VOICE_STATE_UPDATE.cjs +3 -3
- package/dist/cjs/handlers/voice/index.cjs +2 -2
- package/dist/cjs/helpers.cjs +82 -150
- package/dist/cjs/index.cjs +3 -4
- package/dist/cjs/transformers/activity.cjs +1 -1
- package/dist/cjs/transformers/application.cjs +44 -45
- package/dist/cjs/transformers/attachment.cjs +1 -1
- package/dist/cjs/transformers/channel.cjs +44 -40
- package/dist/cjs/transformers/component.cjs +2 -2
- package/dist/cjs/transformers/emoji.cjs +1 -1
- package/dist/cjs/transformers/entitlement.cjs +1 -1
- package/dist/cjs/transformers/guild.cjs +75 -68
- package/dist/cjs/transformers/incidentsData.cjs +1 -1
- package/dist/cjs/transformers/interaction.cjs +89 -83
- package/dist/cjs/transformers/invite.cjs +30 -31
- package/dist/cjs/transformers/lobby.cjs +2 -4
- package/dist/cjs/transformers/member.cjs +9 -6
- package/dist/cjs/transformers/message.cjs +72 -69
- package/dist/cjs/transformers/onboarding.cjs +2 -2
- package/dist/cjs/transformers/poll.cjs +5 -4
- package/dist/cjs/transformers/presence.cjs +9 -10
- package/dist/cjs/transformers/reverse/application.cjs +1 -1
- package/dist/cjs/transformers/reverse/attachment.cjs +15 -14
- package/dist/cjs/transformers/reverse/component.cjs +5 -5
- package/dist/cjs/transformers/reverse/emoji.cjs +3 -3
- package/dist/cjs/transformers/reverse/index.cjs +1 -2
- package/dist/cjs/transformers/reverse/member.cjs +34 -32
- package/dist/cjs/transformers/reverse/presence.cjs +1 -1
- package/dist/cjs/transformers/reverse/team.cjs +1 -1
- package/dist/cjs/transformers/role.cjs +19 -19
- package/dist/cjs/transformers/scheduledEvent.cjs +1 -1
- package/dist/cjs/transformers/sku.cjs +1 -1
- package/dist/cjs/transformers/soundboardSound.cjs +1 -1
- package/dist/cjs/transformers/stageInstance.cjs +1 -1
- package/dist/cjs/transformers/stageInviteInstance.cjs +10 -4
- package/dist/cjs/transformers/sticker.cjs +1 -1
- package/dist/cjs/transformers/subscription.cjs +1 -1
- package/dist/cjs/transformers/team.cjs +1 -1
- package/dist/cjs/transformers/template.cjs +1 -1
- package/dist/cjs/transformers/threadMember.cjs +7 -4
- package/dist/cjs/transformers/user.cjs +1 -1
- package/dist/cjs/transformers/voiceState.cjs +11 -9
- package/dist/cjs/transformers/webhook.cjs +1 -1
- package/dist/cjs/transformers/widget.cjs +6 -16
- package/dist/cjs/transformers.cjs +164 -162
- package/dist/esm/bot.js +2 -2
- package/dist/esm/desiredProperties.js +1 -1
- package/dist/esm/events.js +1 -1
- package/dist/esm/handlers/channels/CHANNEL_CREATE.js +3 -4
- package/dist/esm/handlers/channels/CHANNEL_DELETE.js +3 -5
- package/dist/esm/handlers/channels/CHANNEL_UPDATE.js +2 -4
- package/dist/esm/handlers/channels/THREAD_CREATE.js +2 -4
- package/dist/esm/handlers/channels/THREAD_DELETE.js +2 -4
- package/dist/esm/handlers/channels/THREAD_LIST_SYNC.js +2 -3
- package/dist/esm/handlers/channels/THREAD_MEMBERS_UPDATE.js +4 -2
- package/dist/esm/handlers/channels/THREAD_MEMBER_UPDATE.js +1 -3
- package/dist/esm/handlers/channels/THREAD_UPDATE.js +2 -4
- package/dist/esm/handlers/guilds/GUILD_CREATE.js +2 -3
- package/dist/esm/handlers/guilds/GUILD_DELETE.js +6 -8
- package/dist/esm/handlers/guilds/GUILD_UPDATE.js +2 -3
- package/dist/esm/handlers/guilds/index.js +2 -2
- package/dist/esm/handlers/index.js +3 -3
- package/dist/esm/handlers/interactions/INTERACTION_CREATE.js +3 -3
- package/dist/esm/handlers/invites/INVITE_CREATE.js +3 -3
- package/dist/esm/handlers/members/GUILD_MEMBER_ADD.js +5 -2
- package/dist/esm/handlers/members/GUILD_MEMBER_UPDATE.js +6 -3
- package/dist/esm/handlers/messages/MESSAGE_CREATE.js +2 -3
- package/dist/esm/handlers/messages/MESSAGE_REACTION_ADD.js +6 -2
- package/dist/esm/handlers/messages/MESSAGE_REACTION_REMOVE.js +2 -1
- package/dist/esm/handlers/messages/MESSAGE_REACTION_REMOVE_EMOJI.js +2 -1
- package/dist/esm/handlers/messages/MESSAGE_UPDATE.js +2 -3
- package/dist/esm/handlers/messages/index.js +3 -3
- package/dist/esm/handlers/misc/TYPING_START.js +5 -2
- package/dist/esm/handlers/roles/GUILD_ROLE_CREATE.js +2 -3
- package/dist/esm/handlers/roles/GUILD_ROLE_UPDATE.js +2 -3
- package/dist/esm/handlers/soundboard/index.js +3 -3
- package/dist/esm/handlers/voice/VOICE_STATE_UPDATE.js +3 -3
- package/dist/esm/handlers/voice/index.js +2 -2
- package/dist/esm/helpers.js +82 -150
- package/dist/esm/index.js +3 -4
- package/dist/esm/transformers/activity.js +1 -1
- package/dist/esm/transformers/application.js +44 -45
- package/dist/esm/transformers/attachment.js +1 -1
- package/dist/esm/transformers/channel.js +44 -40
- package/dist/esm/transformers/component.js +2 -2
- package/dist/esm/transformers/emoji.js +1 -1
- package/dist/esm/transformers/entitlement.js +1 -1
- package/dist/esm/transformers/guild.js +75 -68
- package/dist/esm/transformers/incidentsData.js +1 -1
- package/dist/esm/transformers/interaction.js +91 -83
- package/dist/esm/transformers/invite.js +31 -32
- package/dist/esm/transformers/lobby.js +2 -4
- package/dist/esm/transformers/member.js +9 -6
- package/dist/esm/transformers/message.js +72 -69
- package/dist/esm/transformers/onboarding.js +2 -2
- package/dist/esm/transformers/poll.js +5 -4
- package/dist/esm/transformers/presence.js +9 -10
- package/dist/esm/transformers/reverse/application.js +1 -1
- package/dist/esm/transformers/reverse/attachment.js +15 -14
- package/dist/esm/transformers/reverse/component.js +5 -5
- package/dist/esm/transformers/reverse/emoji.js +3 -3
- package/dist/esm/transformers/reverse/index.js +1 -2
- package/dist/esm/transformers/reverse/member.js +34 -32
- package/dist/esm/transformers/reverse/presence.js +1 -1
- package/dist/esm/transformers/reverse/team.js +1 -1
- package/dist/esm/transformers/role.js +19 -19
- package/dist/esm/transformers/scheduledEvent.js +1 -1
- package/dist/esm/transformers/sku.js +1 -1
- package/dist/esm/transformers/soundboardSound.js +1 -1
- package/dist/esm/transformers/stageInstance.js +1 -1
- package/dist/esm/transformers/stageInviteInstance.js +10 -4
- package/dist/esm/transformers/sticker.js +1 -1
- package/dist/esm/transformers/subscription.js +1 -1
- package/dist/esm/transformers/team.js +1 -1
- package/dist/esm/transformers/template.js +1 -1
- package/dist/esm/transformers/threadMember.js +7 -4
- package/dist/esm/transformers/types.js +1 -1
- package/dist/esm/transformers/user.js +1 -1
- package/dist/esm/transformers/voiceState.js +11 -9
- package/dist/esm/transformers/webhook.js +1 -1
- package/dist/esm/transformers/widget.js +6 -16
- package/dist/esm/transformers.js +166 -164
- package/dist/types/bot.d.ts +1 -5
- package/dist/types/bot.d.ts.map +1 -1
- package/dist/types/desiredProperties.d.ts +2 -1
- package/dist/types/desiredProperties.d.ts.map +1 -1
- package/dist/types/events.d.ts +4 -4
- package/dist/types/events.d.ts.map +1 -1
- package/dist/types/handlers/channels/CHANNEL_CREATE.d.ts.map +1 -1
- package/dist/types/handlers/channels/CHANNEL_DELETE.d.ts.map +1 -1
- package/dist/types/handlers/channels/THREAD_MEMBER_UPDATE.d.ts.map +1 -1
- package/dist/types/handlers/guilds/GUILD_DELETE.d.ts.map +1 -1
- package/dist/types/handlers/guilds/index.d.ts +1 -1
- package/dist/types/handlers/guilds/index.d.ts.map +1 -1
- package/dist/types/handlers/index.d.ts +2 -2
- package/dist/types/handlers/index.d.ts.map +1 -1
- package/dist/types/handlers/interactions/INTERACTION_CREATE.d.ts.map +1 -1
- package/dist/types/handlers/invites/INVITE_CREATE.d.ts.map +1 -1
- package/dist/types/handlers/members/GUILD_MEMBER_ADD.d.ts +2 -2
- package/dist/types/handlers/members/GUILD_MEMBER_ADD.d.ts.map +1 -1
- package/dist/types/handlers/members/GUILD_MEMBER_UPDATE.d.ts.map +1 -1
- package/dist/types/handlers/messages/MESSAGE_REACTION_ADD.d.ts.map +1 -1
- package/dist/types/handlers/messages/MESSAGE_REACTION_REMOVE.d.ts.map +1 -1
- package/dist/types/handlers/messages/MESSAGE_REACTION_REMOVE_EMOJI.d.ts.map +1 -1
- package/dist/types/handlers/messages/index.d.ts +2 -2
- package/dist/types/handlers/messages/index.d.ts.map +1 -1
- package/dist/types/handlers/roles/GUILD_ROLE_CREATE.d.ts.map +1 -1
- package/dist/types/handlers/roles/GUILD_ROLE_UPDATE.d.ts.map +1 -1
- package/dist/types/handlers/soundboard/index.d.ts +2 -2
- package/dist/types/handlers/soundboard/index.d.ts.map +1 -1
- package/dist/types/handlers/voice/VOICE_STATE_UPDATE.d.ts.map +1 -1
- package/dist/types/handlers/voice/index.d.ts +1 -1
- package/dist/types/handlers/voice/index.d.ts.map +1 -1
- package/dist/types/helpers.d.ts +9 -9
- package/dist/types/helpers.d.ts.map +1 -1
- package/dist/types/index.d.ts +2 -3
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/transformers/activity.d.ts +3 -3
- package/dist/types/transformers/activity.d.ts.map +1 -1
- package/dist/types/transformers/application.d.ts +2 -3
- package/dist/types/transformers/application.d.ts.map +1 -1
- package/dist/types/transformers/attachment.d.ts +2 -2
- package/dist/types/transformers/attachment.d.ts.map +1 -1
- package/dist/types/transformers/channel.d.ts +5 -6
- package/dist/types/transformers/channel.d.ts.map +1 -1
- package/dist/types/transformers/emoji.d.ts +4 -4
- package/dist/types/transformers/emoji.d.ts.map +1 -1
- package/dist/types/transformers/entitlement.d.ts +2 -2
- package/dist/types/transformers/entitlement.d.ts.map +1 -1
- package/dist/types/transformers/guild.d.ts +5 -6
- package/dist/types/transformers/guild.d.ts.map +1 -1
- package/dist/types/transformers/incidentsData.d.ts +2 -2
- package/dist/types/transformers/incidentsData.d.ts.map +1 -1
- package/dist/types/transformers/interaction.d.ts +16 -20
- package/dist/types/transformers/interaction.d.ts.map +1 -1
- package/dist/types/transformers/invite.d.ts +4 -5
- package/dist/types/transformers/invite.d.ts.map +1 -1
- package/dist/types/transformers/lobby.d.ts +3 -3
- package/dist/types/transformers/lobby.d.ts.map +1 -1
- package/dist/types/transformers/member.d.ts +7 -3
- package/dist/types/transformers/member.d.ts.map +1 -1
- package/dist/types/transformers/message.d.ts +13 -13
- package/dist/types/transformers/message.d.ts.map +1 -1
- package/dist/types/transformers/onboarding.d.ts +4 -4
- package/dist/types/transformers/onboarding.d.ts.map +1 -1
- package/dist/types/transformers/poll.d.ts +3 -3
- package/dist/types/transformers/poll.d.ts.map +1 -1
- package/dist/types/transformers/presence.d.ts +2 -2
- package/dist/types/transformers/presence.d.ts.map +1 -1
- package/dist/types/transformers/reverse/application.d.ts +2 -2
- package/dist/types/transformers/reverse/application.d.ts.map +1 -1
- package/dist/types/transformers/reverse/attachment.d.ts +2 -2
- package/dist/types/transformers/reverse/attachment.d.ts.map +1 -1
- package/dist/types/transformers/reverse/emoji.d.ts +2 -2
- package/dist/types/transformers/reverse/emoji.d.ts.map +1 -1
- package/dist/types/transformers/reverse/index.d.ts +0 -1
- package/dist/types/transformers/reverse/index.d.ts.map +1 -1
- package/dist/types/transformers/reverse/member.d.ts +3 -4
- package/dist/types/transformers/reverse/member.d.ts.map +1 -1
- package/dist/types/transformers/reverse/presence.d.ts +2 -2
- package/dist/types/transformers/reverse/presence.d.ts.map +1 -1
- package/dist/types/transformers/reverse/team.d.ts +2 -2
- package/dist/types/transformers/reverse/team.d.ts.map +1 -1
- package/dist/types/transformers/role.d.ts +6 -7
- package/dist/types/transformers/role.d.ts.map +1 -1
- package/dist/types/transformers/scheduledEvent.d.ts +3 -3
- package/dist/types/transformers/scheduledEvent.d.ts.map +1 -1
- package/dist/types/transformers/sku.d.ts +2 -2
- package/dist/types/transformers/sku.d.ts.map +1 -1
- package/dist/types/transformers/soundboardSound.d.ts +2 -2
- package/dist/types/transformers/soundboardSound.d.ts.map +1 -1
- package/dist/types/transformers/stageInstance.d.ts +2 -2
- package/dist/types/transformers/stageInstance.d.ts.map +1 -1
- package/dist/types/transformers/stageInviteInstance.d.ts +4 -4
- package/dist/types/transformers/stageInviteInstance.d.ts.map +1 -1
- package/dist/types/transformers/sticker.d.ts +3 -3
- package/dist/types/transformers/sticker.d.ts.map +1 -1
- package/dist/types/transformers/subscription.d.ts +2 -2
- package/dist/types/transformers/subscription.d.ts.map +1 -1
- package/dist/types/transformers/team.d.ts +2 -2
- package/dist/types/transformers/team.d.ts.map +1 -1
- package/dist/types/transformers/template.d.ts +2 -2
- package/dist/types/transformers/template.d.ts.map +1 -1
- package/dist/types/transformers/threadMember.d.ts +11 -2
- package/dist/types/transformers/threadMember.d.ts.map +1 -1
- package/dist/types/transformers/types.d.ts +8 -8
- package/dist/types/transformers/types.d.ts.map +1 -1
- package/dist/types/transformers/user.d.ts +6 -6
- package/dist/types/transformers/user.d.ts.map +1 -1
- package/dist/types/transformers/voiceState.d.ts +4 -5
- package/dist/types/transformers/voiceState.d.ts.map +1 -1
- package/dist/types/transformers/webhook.d.ts +2 -2
- package/dist/types/transformers/webhook.d.ts.map +1 -1
- package/dist/types/transformers/widget.d.ts +1 -1
- package/dist/types/transformers/widget.d.ts.map +1 -1
- package/dist/types/transformers.d.ts +86 -68
- package/dist/types/transformers.d.ts.map +1 -1
- package/package.json +6 -6
- package/dist/cjs/transformers/reverse/createApplicationCommand.cjs +0 -36
- package/dist/cjs/utils.cjs +0 -32
- package/dist/esm/transformers/reverse/createApplicationCommand.js +0 -26
- package/dist/esm/utils.js +0 -11
- package/dist/types/transformers/reverse/createApplicationCommand.d.ts +0 -3
- package/dist/types/transformers/reverse/createApplicationCommand.d.ts.map +0 -1
- package/dist/types/utils.d.ts +0 -5
- package/dist/types/utils.d.ts.map +0 -1
|
@@ -109,67 +109,68 @@ const baseInteraction = {
|
|
|
109
109
|
else return await this.bot?.helpers.deleteOriginalInteractionResponse(this.token);
|
|
110
110
|
}
|
|
111
111
|
};
|
|
112
|
-
function transformInteraction(bot, payload) {
|
|
113
|
-
const guildId = payload.
|
|
114
|
-
const user = bot.transformers.user(bot, payload.interaction.member?.user ?? payload.interaction.user);
|
|
112
|
+
function transformInteraction(bot, payload, extra) {
|
|
113
|
+
const guildId = payload.guild_id ? bot.transformers.snowflake(payload.guild_id) : undefined;
|
|
115
114
|
const interaction = Object.create(baseInteraction);
|
|
116
115
|
const props = bot.transformers.desiredProperties.interaction;
|
|
117
|
-
// Typescript has an hard time with this, so we need to tell him for sure this is a Bot
|
|
118
116
|
interaction.bot = bot;
|
|
119
117
|
interaction.acknowledged = false;
|
|
120
|
-
if (props.id && payload.
|
|
121
|
-
if (props.applicationId && payload.
|
|
122
|
-
if (props.type && payload.
|
|
123
|
-
if (props.token && payload.
|
|
124
|
-
if (props.version && payload.
|
|
125
|
-
if (props.locale && payload.
|
|
126
|
-
if (props.guildLocale && payload.
|
|
127
|
-
if (props.guild && payload.
|
|
128
|
-
interaction.guild = bot.transformers.guild(bot, {
|
|
129
|
-
|
|
130
|
-
shardId: payload.shardId
|
|
118
|
+
if (props.id && payload.id) interaction.id = bot.transformers.snowflake(payload.id);
|
|
119
|
+
if (props.applicationId && payload.application_id) interaction.applicationId = bot.transformers.snowflake(payload.application_id);
|
|
120
|
+
if (props.type && payload.type) interaction.type = payload.type;
|
|
121
|
+
if (props.token && payload.token) interaction.token = payload.token;
|
|
122
|
+
if (props.version && payload.version) interaction.version = payload.version;
|
|
123
|
+
if (props.locale && payload.locale) interaction.locale = payload.locale;
|
|
124
|
+
if (props.guildLocale && payload.guild_locale) interaction.guildLocale = payload.guild_locale;
|
|
125
|
+
if (props.guild && payload.guild) // @ts-expect-error payload.guild is a Partial<DiscordGuild>
|
|
126
|
+
interaction.guild = bot.transformers.guild(bot, payload.guild, {
|
|
127
|
+
shardId: extra?.shardId
|
|
131
128
|
});
|
|
132
129
|
if (props.guildId && guildId) interaction.guildId = guildId;
|
|
133
|
-
if (props.user
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
130
|
+
if (props.user) {
|
|
131
|
+
if (payload.member?.user) interaction.user = bot.transformers.user(bot, payload.member?.user);
|
|
132
|
+
else if (payload.user) interaction.user = bot.transformers.user(bot, payload.user);
|
|
133
|
+
}
|
|
134
|
+
if (props.appPermissions && payload.app_permissions) interaction.appPermissions = bot.transformers.snowflake(payload.app_permissions);
|
|
135
|
+
if (props.message && payload.message) interaction.message = bot.transformers.message(bot, payload.message, {
|
|
136
|
+
shardId: extra?.shardId
|
|
138
137
|
});
|
|
139
|
-
if (props.channel && payload.
|
|
140
|
-
|
|
138
|
+
if (props.channel && payload.channel) // @ts-expect-error payload.channel is a Partial<>
|
|
139
|
+
interaction.channel = bot.transformers.channel(bot, payload.channel, {
|
|
141
140
|
guildId
|
|
142
141
|
});
|
|
143
|
-
if (props.channelId && payload.
|
|
144
|
-
if (props.member && guildId && payload.
|
|
145
|
-
|
|
146
|
-
|
|
142
|
+
if (props.channelId && payload.channel_id) interaction.channelId = bot.transformers.snowflake(payload.channel_id);
|
|
143
|
+
if (props.member && guildId && payload.member) interaction.member = bot.transformers.member(bot, payload.member, {
|
|
144
|
+
guildId,
|
|
145
|
+
userId: payload.member?.user.id ?? payload.user?.id
|
|
146
|
+
});
|
|
147
|
+
if (props.entitlements && payload.entitlements) interaction.entitlements = payload.entitlements.map((e)=>bot.transformers.entitlement(bot, e));
|
|
148
|
+
if (props.authorizingIntegrationOwners && payload.authorizing_integration_owners) {
|
|
147
149
|
interaction.authorizingIntegrationOwners = {};
|
|
148
|
-
if (payload.
|
|
149
|
-
if (payload.
|
|
150
|
+
if (payload.authorizing_integration_owners['0']) interaction.authorizingIntegrationOwners[_types.DiscordApplicationIntegrationType.GuildInstall] = bot.transformers.snowflake(payload.authorizing_integration_owners['0']);
|
|
151
|
+
if (payload.authorizing_integration_owners['1']) interaction.authorizingIntegrationOwners[_types.DiscordApplicationIntegrationType.UserInstall] = bot.transformers.snowflake(payload.authorizing_integration_owners['1']);
|
|
150
152
|
}
|
|
151
|
-
if (props.context && payload.
|
|
152
|
-
if (props.attachmentSizeLimit && payload.
|
|
153
|
-
if (props.data && payload.
|
|
153
|
+
if (props.context && payload.context) interaction.context = payload.context;
|
|
154
|
+
if (props.attachmentSizeLimit && payload.attachment_size_limit) interaction.attachmentSizeLimit = payload.attachment_size_limit;
|
|
155
|
+
if (props.data && payload.data) {
|
|
154
156
|
interaction.data = {
|
|
155
|
-
type: payload.
|
|
156
|
-
componentType: payload.
|
|
157
|
-
customId: payload.
|
|
158
|
-
components: payload.
|
|
159
|
-
values: payload.
|
|
160
|
-
id: payload.
|
|
161
|
-
name: payload.
|
|
162
|
-
resolved: payload.
|
|
163
|
-
|
|
164
|
-
shardId: payload.shardId,
|
|
157
|
+
type: payload.data.type,
|
|
158
|
+
componentType: payload.data.component_type,
|
|
159
|
+
customId: payload.data.custom_id,
|
|
160
|
+
components: payload.data.components?.map((component)=>bot.transformers.component(bot, component)),
|
|
161
|
+
values: payload.data.values,
|
|
162
|
+
id: payload.data.id ? bot.transformers.snowflake(payload.data.id) : undefined,
|
|
163
|
+
name: payload.data.name,
|
|
164
|
+
resolved: payload.data.resolved ? bot.transformers.interactionDataResolved(bot, payload.data.resolved, {
|
|
165
|
+
shardId: extra?.shardId,
|
|
165
166
|
guildId
|
|
166
167
|
}) : undefined,
|
|
167
|
-
options: payload.
|
|
168
|
-
targetId: payload.
|
|
168
|
+
options: payload.data.options?.map((opt)=>bot.transformers.interactionDataOptions(bot, opt)),
|
|
169
|
+
targetId: payload.data.target_id ? bot.transformers.snowflake(payload.data.target_id) : undefined
|
|
169
170
|
};
|
|
170
171
|
}
|
|
171
172
|
// Typescript has an hard time with interaction.bot, so we need to tell him for sure this interaction is the of the correct type
|
|
172
|
-
return bot.transformers.customizers.interaction(bot, payload, interaction);
|
|
173
|
+
return bot.transformers.customizers.interaction(bot, payload, interaction, extra);
|
|
173
174
|
}
|
|
174
175
|
function transformInteractionDataOption(bot, option) {
|
|
175
176
|
const opt = {
|
|
@@ -181,13 +182,13 @@ function transformInteractionDataOption(bot, option) {
|
|
|
181
182
|
};
|
|
182
183
|
return bot.transformers.customizers.interactionDataOptions(bot, option, opt);
|
|
183
184
|
}
|
|
184
|
-
function transformInteractionDataResolved(bot, payload) {
|
|
185
|
+
function transformInteractionDataResolved(bot, payload, extra) {
|
|
185
186
|
const transformed = {};
|
|
186
|
-
if (payload.
|
|
187
|
-
transformed.messages = new _utils.Collection(Object.entries(payload.
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
shardId:
|
|
187
|
+
if (payload.messages) {
|
|
188
|
+
transformed.messages = new _utils.Collection(Object.entries(payload.messages).map(([_id, value])=>{
|
|
189
|
+
// @ts-expect-error TODO: Deal with partials
|
|
190
|
+
const message = bot.transformers.message(bot, value, {
|
|
191
|
+
shardId: extra?.shardId
|
|
191
192
|
});
|
|
192
193
|
return [
|
|
193
194
|
message.id,
|
|
@@ -195,8 +196,8 @@ function transformInteractionDataResolved(bot, payload) {
|
|
|
195
196
|
];
|
|
196
197
|
}));
|
|
197
198
|
}
|
|
198
|
-
if (payload.
|
|
199
|
-
transformed.users = new _utils.Collection(Object.entries(payload.
|
|
199
|
+
if (payload.users) {
|
|
200
|
+
transformed.users = new _utils.Collection(Object.entries(payload.users).map(([_id, value])=>{
|
|
200
201
|
const user = bot.transformers.user(bot, value);
|
|
201
202
|
return [
|
|
202
203
|
user.id,
|
|
@@ -204,20 +205,24 @@ function transformInteractionDataResolved(bot, payload) {
|
|
|
204
205
|
];
|
|
205
206
|
}));
|
|
206
207
|
}
|
|
207
|
-
if (
|
|
208
|
-
transformed.members = new _utils.Collection(Object.entries(payload.
|
|
209
|
-
|
|
208
|
+
if (extra?.guildId && payload.members) {
|
|
209
|
+
transformed.members = new _utils.Collection(Object.entries(payload.members).map(([id, value])=>{
|
|
210
|
+
// @ts-expect-error TODO: Deal with partials, value is missing 2 values but the transformer can handle it, despite what the types says
|
|
211
|
+
const member = bot.transformers.member(bot, value, {
|
|
212
|
+
guildId: extra.guildId,
|
|
213
|
+
userId: bot.transformers.snowflake(id)
|
|
214
|
+
});
|
|
215
|
+
// We need to tell TS that we are sure the id is a bigint
|
|
210
216
|
return [
|
|
211
217
|
member.id,
|
|
212
218
|
member
|
|
213
219
|
];
|
|
214
220
|
}));
|
|
215
221
|
}
|
|
216
|
-
if (
|
|
217
|
-
transformed.roles = new _utils.Collection(Object.entries(payload.
|
|
218
|
-
const role = bot.transformers.role(bot, {
|
|
219
|
-
|
|
220
|
-
guildId: payload.guildId
|
|
222
|
+
if (extra?.guildId && payload.roles) {
|
|
223
|
+
transformed.roles = new _utils.Collection(Object.entries(payload.roles).map(([_id, value])=>{
|
|
224
|
+
const role = bot.transformers.role(bot, value, {
|
|
225
|
+
guildId: extra.guildId
|
|
221
226
|
});
|
|
222
227
|
return [
|
|
223
228
|
role.id,
|
|
@@ -225,37 +230,39 @@ function transformInteractionDataResolved(bot, payload) {
|
|
|
225
230
|
];
|
|
226
231
|
}));
|
|
227
232
|
}
|
|
228
|
-
if (payload.
|
|
229
|
-
transformed.channels = new _utils.Collection(Object.entries(payload.
|
|
230
|
-
const channel = bot.transformers.channel(bot,
|
|
231
|
-
|
|
232
|
-
});
|
|
233
|
+
if (payload.channels) {
|
|
234
|
+
transformed.channels = new _utils.Collection(Object.entries(payload.channels).map(([_id, value])=>{
|
|
235
|
+
const channel = bot.transformers.channel(bot, value);
|
|
236
|
+
// We need to tell TS that we are sure the id is a bigint
|
|
233
237
|
return [
|
|
234
238
|
channel.id,
|
|
235
239
|
channel
|
|
236
240
|
];
|
|
237
241
|
}));
|
|
238
242
|
}
|
|
239
|
-
if (payload.
|
|
240
|
-
transformed.attachments = new _utils.Collection(Object.entries(payload.
|
|
243
|
+
if (payload.attachments) {
|
|
244
|
+
transformed.attachments = new _utils.Collection(Object.entries(payload.attachments).map(([key, value])=>{
|
|
241
245
|
const id = bot.transformers.snowflake(key);
|
|
246
|
+
const attachment = bot.transformers.attachment(bot, value);
|
|
242
247
|
return [
|
|
243
248
|
id,
|
|
244
|
-
|
|
249
|
+
attachment
|
|
245
250
|
];
|
|
246
251
|
}));
|
|
247
252
|
}
|
|
248
|
-
return bot.transformers.customizers.interactionDataResolved(bot, payload, transformed
|
|
253
|
+
return bot.transformers.customizers.interactionDataResolved(bot, payload, transformed, {
|
|
254
|
+
shardId: extra?.shardId,
|
|
255
|
+
guildId: extra?.guildId ? bot.transformers.snowflake(extra.guildId) : undefined
|
|
256
|
+
});
|
|
249
257
|
}
|
|
250
|
-
function transformInteractionCallbackResponse(bot, payload) {
|
|
258
|
+
function transformInteractionCallbackResponse(bot, payload, extra) {
|
|
251
259
|
const props = bot.transformers.desiredProperties.interactionCallbackResponse;
|
|
252
260
|
const response = {};
|
|
253
|
-
if (props.interaction && payload.
|
|
254
|
-
if (props.resource && payload.
|
|
255
|
-
|
|
256
|
-
shardId: payload.shardId
|
|
261
|
+
if (props.interaction && payload.interaction) response.interaction = bot.transformers.interactionCallback(bot, payload.interaction);
|
|
262
|
+
if (props.resource && payload.resource) response.resource = bot.transformers.interactionResource(bot, payload.resource, {
|
|
263
|
+
shardId: extra?.shardId
|
|
257
264
|
});
|
|
258
|
-
return bot.transformers.customizers.interactionCallbackResponse(bot, payload
|
|
265
|
+
return bot.transformers.customizers.interactionCallbackResponse(bot, payload, response, extra);
|
|
259
266
|
}
|
|
260
267
|
function transformInteractionCallback(bot, payload) {
|
|
261
268
|
const props = bot.transformers.desiredProperties.interactionCallback;
|
|
@@ -268,16 +275,15 @@ function transformInteractionCallback(bot, payload) {
|
|
|
268
275
|
if (props.responseMessageLoading && payload.response_message_loading) callback.responseMessageLoading = payload.response_message_loading;
|
|
269
276
|
return bot.transformers.customizers.interactionCallback(bot, payload, callback);
|
|
270
277
|
}
|
|
271
|
-
function transformInteractionResource(bot, payload) {
|
|
278
|
+
function transformInteractionResource(bot, payload, extra) {
|
|
272
279
|
const props = bot.transformers.desiredProperties.interactionResource;
|
|
273
280
|
const resource = {};
|
|
274
|
-
if (props.type && payload.
|
|
275
|
-
if (props.activityInstance && payload.
|
|
276
|
-
if (props.message && payload.
|
|
277
|
-
|
|
278
|
-
shardId: payload.shardId
|
|
281
|
+
if (props.type && payload.type) resource.type = payload.type;
|
|
282
|
+
if (props.activityInstance && payload.activity_instance) resource.activityInstance = payload.activity_instance;
|
|
283
|
+
if (props.message && payload.message) resource.message = bot.transformers.message(bot, payload.message, {
|
|
284
|
+
shardId: extra?.shardId
|
|
279
285
|
});
|
|
280
|
-
return bot.transformers.customizers.interactionResource(bot, payload
|
|
286
|
+
return bot.transformers.customizers.interactionResource(bot, payload, resource, extra);
|
|
281
287
|
}
|
|
282
288
|
|
|
283
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvaW50ZXJhY3Rpb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRGlzY29yZEFwcGxpY2F0aW9uSW50ZWdyYXRpb25UeXBlLFxuICB0eXBlIERpc2NvcmRJbnRlcmFjdGlvbixcbiAgdHlwZSBEaXNjb3JkSW50ZXJhY3Rpb25DYWxsYmFjayxcbiAgdHlwZSBEaXNjb3JkSW50ZXJhY3Rpb25DYWxsYmFja1Jlc3BvbnNlLFxuICB0eXBlIERpc2NvcmRJbnRlcmFjdGlvbkRhdGFPcHRpb24sXG4gIHR5cGUgRGlzY29yZEludGVyYWN0aW9uRGF0YVJlc29sdmVkLFxuICB0eXBlIERpc2NvcmRJbnRlcmFjdGlvblJlc291cmNlLFxuICBJbnRlcmFjdGlvblJlc3BvbnNlVHlwZXMsXG4gIEludGVyYWN0aW9uVHlwZXMsXG4gIE1lc3NhZ2VGbGFncyxcbn0gZnJvbSAnQGRpc2NvcmRlbm8vdHlwZXMnXG5pbXBvcnQgeyBDb2xsZWN0aW9uIH0gZnJvbSAnQGRpc2NvcmRlbm8vdXRpbHMnXG5pbXBvcnQgdHlwZSB7XG4gIEJvdCxcbiAgRGlzY29yZENoYW5uZWwsXG4gIEludGVyYWN0aW9uLFxuICBJbnRlcmFjdGlvbkNhbGxiYWNrLFxuICBJbnRlcmFjdGlvbkNhbGxiYWNrUmVzcG9uc2UsXG4gIEludGVyYWN0aW9uRGF0YU9wdGlvbixcbiAgSW50ZXJhY3Rpb25EYXRhUmVzb2x2ZWQsXG4gIEludGVyYWN0aW9uUmVzb2x2ZWRDaGFubmVsLFxuICBJbnRlcmFjdGlvblJlc291cmNlLFxuICBJbnRlcm5hbEJvdCxcbiAgTWVtYmVyLFxuICBNZXNzYWdlLFxufSBmcm9tICcuLi9pbmRleC5qcydcblxuZXhwb3J0IGNvbnN0IGJhc2VJbnRlcmFjdGlvbjogSW50ZXJuYWxCb3RbJ3RyYW5zZm9ybWVycyddWyckaW5mZXJyZWRUeXBlcyddWydpbnRlcmFjdGlvbiddID0ge1xuICAvLyBUaGlzIGFsbG93cyB0eXBlc2NyaXB0IHRvIHN0aWxsIGNoZWNrIGZvciB0eXBlIGVycm9ycyBvbiBmdW5jdGlvbnMgYmVsb3dcbiAgLi4uKHVuZGVmaW5lZCBhcyB1bmtub3duIGFzIEludGVybmFsQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsnaW50ZXJhY3Rpb24nXSksXG5cbiAgYXN5bmMgcmVzcG9uZChyZXNwb25zZSwgb3B0aW9ucykge1xuICAgIGxldCB0eXBlID0gSW50ZXJhY3Rpb25SZXNwb25zZVR5cGVzLkNoYW5uZWxNZXNzYWdlV2l0aFNvdXJjZVxuXG4gICAgLy8gSWYgdXNlciBwcm92aWRlcyBhIHN0cmluZywgY2hhbmdlIGl0IHRvIGEgcmVzcG9uc2Ugb2JqZWN0XG4gICAgaWYgKHR5cGVvZiByZXNwb25zZSA9PT0gJ3N0cmluZycpIHJlc3BvbnNlID0geyBjb250ZW50OiByZXNwb25zZSB9XG5cbiAgICAvLyBJZiB1c2VyIHByb3ZpZGVzIGFuIG9iamVjdCwgZGV0ZXJtaW5lIGlmIGl0IHNob3VsZCBiZSBhbiBhdXRvY29tcGxldGUgb3IgYSBtb2RhbCByZXNwb25zZVxuICAgIGlmIChyZXNwb25zZS50aXRsZSkgdHlwZSA9IEludGVyYWN0aW9uUmVzcG9uc2VUeXBlcy5Nb2RhbFxuICAgIGlmICh0aGlzLnR5cGUgPT09IEludGVyYWN0aW9uVHlwZXMuQXBwbGljYXRpb25Db21tYW5kQXV0b2NvbXBsZXRlKSB0eXBlID0gSW50ZXJhY3Rpb25SZXNwb25zZVR5cGVzLkFwcGxpY2F0aW9uQ29tbWFuZEF1dG9jb21wbGV0ZVJlc3VsdFxuICAgIGlmICh0eXBlID09PSBJbnRlcmFjdGlvblJlc3BvbnNlVHlwZXMuQ2hhbm5lbE1lc3NhZ2VXaXRoU291cmNlICYmIG9wdGlvbnM/LmlzUHJpdmF0ZSkge1xuICAgICAgcmVzcG9uc2UuZmxhZ3MgPz89IDBcbiAgICAgIHJlc3BvbnNlLmZsYWdzIHw9IE1lc3NhZ2VGbGFncy5FcGhlbWVyYWxcbiAgICB9XG5cbiAgICAvLyBTaW5jZSB0aGlzIGhhcyBhbHJlYWR5IGJlZW4gZ2l2ZW4gYSByZXNwb25zZSwgYW55IGZ1cnRoZXIgcmVzcG9uc2VzIG11c3QgYmUgZm9sbG93dXBzLlxuICAgIGlmICh0aGlzLmFja25vd2xlZGdlZCkgcmV0dXJuIGF3YWl0IHRoaXMuYm90LmhlbHBlcnMuc2VuZEZvbGxvd3VwTWVzc2FnZSh0aGlzLnRva2VuLCByZXNwb25zZSlcblxuICAgIC8vIE1vZGFscyBjYW5ub3QgYmUgY2hhaW5lZFxuICAgIGlmICh0aGlzLnR5cGUgPT09IEludGVyYWN0aW9uVHlwZXMuTW9kYWxTdWJtaXQgJiYgdHlwZSA9PT0gSW50ZXJhY3Rpb25SZXNwb25zZVR5cGVzLk1vZGFsKVxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgcmVzcG9uZCB0byBhIG1vZGFsIGludGVyYWN0aW9uIHdpdGggYW5vdGhlciBtb2RhbC4nKVxuXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5ib3QuaGVscGVycy5zZW5kSW50ZXJhY3Rpb25SZXNwb25zZShcbiAgICAgIHRoaXMuaWQsXG4gICAgICB0aGlzLnRva2VuLFxuICAgICAgeyB0eXBlLCBkYXRhOiByZXNwb25zZSB9LFxuICAgICAgeyB3aXRoUmVzcG9uc2U6IG9wdGlvbnM/LndpdGhSZXNwb25zZSB9LFxuICAgIClcbiAgICB0aGlzLmFja25vd2xlZGdlZCA9IHRydWVcbiAgICByZXR1cm4gcmVzdWx0XG4gIH0sXG4gIGFzeW5jIGVkaXQocmVzcG9uc2UsIG1lc3NhZ2VJZCwgb3B0aW9ucykge1xuICAgIGlmICh0aGlzLnR5cGUgPT09IEludGVyYWN0aW9uVHlwZXMuQXBwbGljYXRpb25Db21tYW5kQXV0b2NvbXBsZXRlKSB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBlZGl0IGFuIGF1dG9jb21wbGV0ZSBpbnRlcmFjdGlvbi4nKVxuXG4gICAgLy8gSWYgdXNlciBwcm92aWRlcyBhIHN0cmluZywgY2hhbmdlIGl0IHRvIGEgcmVzcG9uc2Ugb2JqZWN0XG4gICAgaWYgKHR5cGVvZiByZXNwb25zZSA9PT0gJ3N0cmluZycpIHJlc3BvbnNlID0geyBjb250ZW50OiByZXNwb25zZSB9XG5cbiAgICBpZiAobWVzc2FnZUlkKSB7XG4gICAgICByZXR1cm4gYXdhaXQgdGhpcy5ib3Q/LmhlbHBlcnMuZWRpdEZvbGxvd3VwTWVzc2FnZSh0aGlzLnRva2VuLCBtZXNzYWdlSWQsIHJlc3BvbnNlKVxuICAgIH1cblxuICAgIGlmICghdGhpcy5hY2tub3dsZWRnZWQpIHtcbiAgICAgIGlmICh0aGlzLnR5cGUgIT09IEludGVyYWN0aW9uVHlwZXMuTWVzc2FnZUNvbXBvbmVudCAmJiB0aGlzLnR5cGUgIT09IEludGVyYWN0aW9uVHlwZXMuTW9kYWxTdWJtaXQpXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIlRoaXMgaW50ZXJhY3Rpb24gaGFzIG5vdCBiZWVuIHJlc3BvbmRlZCB0byB5ZXQgYW5kIHRoaXMgaXNuJ3QgYSBNZXNzYWdlQ29tcG9uZW50IG9yIE1vZGFsU3VibWl0IGludGVyYWN0aW9uLlwiKVxuXG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLmJvdC5oZWxwZXJzLnNlbmRJbnRlcmFjdGlvblJlc3BvbnNlKFxuICAgICAgICB0aGlzLmlkLFxuICAgICAgICB0aGlzLnRva2VuLFxuICAgICAgICB7IHR5cGU6IEludGVyYWN0aW9uUmVzcG9uc2VUeXBlcy5VcGRhdGVNZXNzYWdlLCBkYXRhOiByZXNwb25zZSB9LFxuICAgICAgICBvcHRpb25zLFxuICAgICAgKVxuICAgICAgdGhpcy5hY2tub3dsZWRnZWQgPSB0cnVlXG4gICAgICByZXR1cm4gcmVzdWx0XG4gICAgfVxuXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuYm90LmhlbHBlcnMuZWRpdE9yaWdpbmFsSW50ZXJhY3Rpb25SZXNwb25zZSh0aGlzLnRva2VuLCByZXNwb25zZSlcbiAgfSxcbiAgYXN5bmMgZGVmZXJFZGl0KG9wdGlvbnMpIHtcbiAgICBpZiAodGhpcy50eXBlID09PSBJbnRlcmFjdGlvblR5cGVzLkFwcGxpY2F0aW9uQ29tbWFuZEF1dG9jb21wbGV0ZSkgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgZWRpdCBhbiBhdXRvY29tcGxldGUgaW50ZXJhY3Rpb24uJylcbiAgICBpZiAodGhpcy5hY2tub3dsZWRnZWQpIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGRlZmVyIGFuIGFscmVhZHkgcmVzcG9uZGVkIGludGVyYWN0aW9uLicpXG5cbiAgICBpZiAodGhpcy50eXBlICE9PSBJbnRlcmFjdGlvblR5cGVzLk1lc3NhZ2VDb21wb25lbnQgJiYgdGhpcy50eXBlICE9PSBJbnRlcmFjdGlvblR5cGVzLk1vZGFsU3VibWl0KVxuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQ2Fubm90IGRlZmVyIHRvIHRoZW4gZWRpdCBhbiBpbnRlcmFjdGlvbiB0aGF0IGlzbid0IGEgTWVzc2FnZUNvbXBvbmVudCBvciBNb2RhbFN1Ym1pdCBpbnRlcmFjdGlvbi5cIilcblxuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuYm90LmhlbHBlcnMuc2VuZEludGVyYWN0aW9uUmVzcG9uc2UoXG4gICAgICB0aGlzLmlkLFxuICAgICAgdGhpcy50b2tlbixcbiAgICAgIHsgdHlwZTogSW50ZXJhY3Rpb25SZXNwb25zZVR5cGVzLkRlZmVycmVkVXBkYXRlTWVzc2FnZSB9LFxuICAgICAgb3B0aW9ucyxcbiAgICApXG4gICAgdGhpcy5hY2tub3dsZWRnZWQgPSB0cnVlXG4gICAgcmV0dXJuIHJlc3VsdFxuICB9LFxuICBhc3luYyBkZWZlcihpc1ByaXZhdGUsIG9wdGlvbnMpIHtcbiAgICBpZiAodGhpcy5hY2tub3dsZWRnZWQpIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGRlZmVyIGFuIGFscmVhZHkgcmVzcG9uZGVkIGludGVyYWN0aW9uLicpXG5cbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLmJvdC5oZWxwZXJzLnNlbmRJbnRlcmFjdGlvblJlc3BvbnNlKFxuICAgICAgdGhpcy5pZCxcbiAgICAgIHRoaXMudG9rZW4sXG4gICAgICB7XG4gICAgICAgIHR5cGU6IEludGVyYWN0aW9uUmVzcG9uc2VUeXBlcy5EZWZlcnJlZENoYW5uZWxNZXNzYWdlV2l0aFNvdXJjZSxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIGZsYWdzOiBpc1ByaXZhdGUgPyBNZXNzYWdlRmxhZ3MuRXBoZW1lcmFsIDogdW5kZWZpbmVkLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIG9wdGlvbnMsXG4gICAgKVxuICAgIHRoaXMuYWNrbm93bGVkZ2VkID0gdHJ1ZVxuICAgIHJldHVybiByZXN1bHRcbiAgfSxcbiAgYXN5bmMgZGVsZXRlKG1lc3NhZ2VJZCkge1xuICAgIGlmICh0aGlzLnR5cGUgPT09IEludGVyYWN0aW9uVHlwZXMuQXBwbGljYXRpb25Db21tYW5kQXV0b2NvbXBsZXRlKSB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBkZWxldGUgYW4gYXV0b2NvbXBsZXRlIGludGVyYWN0aW9uJylcblxuICAgIGlmIChtZXNzYWdlSWQpIHJldHVybiBhd2FpdCB0aGlzLmJvdD8uaGVscGVycy5kZWxldGVGb2xsb3d1cE1lc3NhZ2UodGhpcy50b2tlbiwgbWVzc2FnZUlkKVxuICAgIGVsc2UgcmV0dXJuIGF3YWl0IHRoaXMuYm90Py5oZWxwZXJzLmRlbGV0ZU9yaWdpbmFsSW50ZXJhY3Rpb25SZXNwb25zZSh0aGlzLnRva2VuKVxuICB9LFxufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtSW50ZXJhY3Rpb24oXG4gIGJvdDogSW50ZXJuYWxCb3QsXG4gIHBheWxvYWQ6IHsgaW50ZXJhY3Rpb246IERpc2NvcmRJbnRlcmFjdGlvbjsgc2hhcmRJZDogbnVtYmVyIH0sXG4pOiB0eXBlb2YgYm90LnRyYW5zZm9ybWVycy4kaW5mZXJyZWRUeXBlcy5pbnRlcmFjdGlvbiB7XG4gIGNvbnN0IGd1aWxkSWQgPSBwYXlsb2FkLmludGVyYWN0aW9uLmd1aWxkX2lkID8gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5pbnRlcmFjdGlvbi5ndWlsZF9pZCkgOiB1bmRlZmluZWRcbiAgY29uc3QgdXNlciA9IGJvdC50cmFuc2Zvcm1lcnMudXNlcihib3QsIHBheWxvYWQuaW50ZXJhY3Rpb24ubWVtYmVyPy51c2VyID8/IHBheWxvYWQuaW50ZXJhY3Rpb24udXNlciEpXG5cbiAgY29uc3QgaW50ZXJhY3Rpb246IEludGVyYWN0aW9uID0gT2JqZWN0LmNyZWF0ZShiYXNlSW50ZXJhY3Rpb24pXG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5pbnRlcmFjdGlvblxuICAvLyBUeXBlc2NyaXB0IGhhcyBhbiBoYXJkIHRpbWUgd2l0aCB0aGlzLCBzbyB3ZSBuZWVkIHRvIHRlbGwgaGltIGZvciBzdXJlIHRoaXMgaXMgYSBCb3RcbiAgaW50ZXJhY3Rpb24uYm90ID0gYm90IGFzIHVua25vd24gYXMgQm90XG4gIGludGVyYWN0aW9uLmFja25vd2xlZGdlZCA9IGZhbHNlXG5cbiAgaWYgKHByb3BzLmlkICYmIHBheWxvYWQuaW50ZXJhY3Rpb24uaWQpIGludGVyYWN0aW9uLmlkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5pbnRlcmFjdGlvbi5pZClcbiAgaWYgKHByb3BzLmFwcGxpY2F0aW9uSWQgJiYgcGF5bG9hZC5pbnRlcmFjdGlvbi5hcHBsaWNhdGlvbl9pZClcbiAgICBpbnRlcmFjdGlvbi5hcHBsaWNhdGlvbklkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5pbnRlcmFjdGlvbi5hcHBsaWNhdGlvbl9pZClcbiAgaWYgKHByb3BzLnR5cGUgJiYgcGF5bG9hZC5pbnRlcmFjdGlvbi50eXBlKSBpbnRlcmFjdGlvbi50eXBlID0gcGF5bG9hZC5pbnRlcmFjdGlvbi50eXBlXG4gIGlmIChwcm9wcy50b2tlbiAmJiBwYXlsb2FkLmludGVyYWN0aW9uLnRva2VuKSBpbnRlcmFjdGlvbi50b2tlbiA9IHBheWxvYWQuaW50ZXJhY3Rpb24udG9rZW5cbiAgaWYgKHByb3BzLnZlcnNpb24gJiYgcGF5bG9hZC5pbnRlcmFjdGlvbi52ZXJzaW9uKSBpbnRlcmFjdGlvbi52ZXJzaW9uID0gcGF5bG9hZC5pbnRlcmFjdGlvbi52ZXJzaW9uXG4gIGlmIChwcm9wcy5sb2NhbGUgJiYgcGF5bG9hZC5pbnRlcmFjdGlvbi5sb2NhbGUpIGludGVyYWN0aW9uLmxvY2FsZSA9IHBheWxvYWQuaW50ZXJhY3Rpb24ubG9jYWxlXG4gIGlmIChwcm9wcy5ndWlsZExvY2FsZSAmJiBwYXlsb2FkLmludGVyYWN0aW9uLmd1aWxkX2xvY2FsZSkgaW50ZXJhY3Rpb24uZ3VpbGRMb2NhbGUgPSBwYXlsb2FkLmludGVyYWN0aW9uLmd1aWxkX2xvY2FsZVxuICBpZiAocHJvcHMuZ3VpbGQgJiYgcGF5bG9hZC5pbnRlcmFjdGlvbi5ndWlsZClcbiAgICAvLyBAdHMtZXhwZWN0LWVycm9yIHBheWxvYWQuaW50ZXJhY3Rpb24uZ3VpbGQgaXMgYSBQYXJ0aWFsPERpc2NvcmRHdWlsZD5cbiAgICBpbnRlcmFjdGlvbi5ndWlsZCA9IGJvdC50cmFuc2Zvcm1lcnMuZ3VpbGQoYm90LCB7IGd1aWxkOiBwYXlsb2FkLmludGVyYWN0aW9uLmd1aWxkLCBzaGFyZElkOiBwYXlsb2FkLnNoYXJkSWQgfSlcbiAgaWYgKHByb3BzLmd1aWxkSWQgJiYgZ3VpbGRJZCkgaW50ZXJhY3Rpb24uZ3VpbGRJZCA9IGd1aWxkSWRcbiAgaWYgKHByb3BzLnVzZXIgJiYgdXNlcikgaW50ZXJhY3Rpb24udXNlciA9IHVzZXJcbiAgaWYgKHByb3BzLmFwcFBlcm1pc3Npb25zICYmIHBheWxvYWQuaW50ZXJhY3Rpb24uYXBwX3Blcm1pc3Npb25zKVxuICAgIGludGVyYWN0aW9uLmFwcFBlcm1pc3Npb25zID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5pbnRlcmFjdGlvbi5hcHBfcGVybWlzc2lvbnMpXG4gIGlmIChwcm9wcy5tZXNzYWdlICYmIHBheWxvYWQuaW50ZXJhY3Rpb24ubWVzc2FnZSlcbiAgICBpbnRlcmFjdGlvbi5tZXNzYWdlID0gYm90LnRyYW5zZm9ybWVycy5tZXNzYWdlKGJvdCwgeyBtZXNzYWdlOiBwYXlsb2FkLmludGVyYWN0aW9uLm1lc3NhZ2UsIHNoYXJkSWQ6IDAgfSlcbiAgaWYgKHByb3BzLmNoYW5uZWwgJiYgcGF5bG9hZC5pbnRlcmFjdGlvbi5jaGFubmVsKVxuICAgIGludGVyYWN0aW9uLmNoYW5uZWwgPSBib3QudHJhbnNmb3JtZXJzLmNoYW5uZWwoYm90LCB7IGNoYW5uZWw6IHBheWxvYWQuaW50ZXJhY3Rpb24uY2hhbm5lbCBhcyBEaXNjb3JkQ2hhbm5lbCwgZ3VpbGRJZCB9KVxuICBpZiAocHJvcHMuY2hhbm5lbElkICYmIHBheWxvYWQuaW50ZXJhY3Rpb24uY2hhbm5lbF9pZCkgaW50ZXJhY3Rpb24uY2hhbm5lbElkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5pbnRlcmFjdGlvbi5jaGFubmVsX2lkKVxuICBpZiAocHJvcHMubWVtYmVyICYmIGd1aWxkSWQgJiYgcGF5bG9hZC5pbnRlcmFjdGlvbi5tZW1iZXIpXG4gICAgaW50ZXJhY3Rpb24ubWVtYmVyID0gYm90LnRyYW5zZm9ybWVycy5tZW1iZXIoYm90LCBwYXlsb2FkLmludGVyYWN0aW9uLm1lbWJlciwgZ3VpbGRJZCwgdXNlci5pZClcbiAgaWYgKHByb3BzLmVudGl0bGVtZW50cyAmJiBwYXlsb2FkLmludGVyYWN0aW9uLmVudGl0bGVtZW50cylcbiAgICBpbnRlcmFjdGlvbi5lbnRpdGxlbWVudHMgPSBwYXlsb2FkLmludGVyYWN0aW9uLmVudGl0bGVtZW50cy5tYXAoKGUpID0+IGJvdC50cmFuc2Zvcm1lcnMuZW50aXRsZW1lbnQoYm90LCBlKSlcbiAgaWYgKHByb3BzLmF1dGhvcml6aW5nSW50ZWdyYXRpb25Pd25lcnMgJiYgcGF5bG9hZC5pbnRlcmFjdGlvbi5hdXRob3JpemluZ19pbnRlZ3JhdGlvbl9vd25lcnMpIHtcbiAgICBpbnRlcmFjdGlvbi5hdXRob3JpemluZ0ludGVncmF0aW9uT3duZXJzID0ge31cblxuICAgIGlmIChwYXlsb2FkLmludGVyYWN0aW9uLmF1dGhvcml6aW5nX2ludGVncmF0aW9uX293bmVyc1snMCddKVxuICAgICAgaW50ZXJhY3Rpb24uYXV0aG9yaXppbmdJbnRlZ3JhdGlvbk93bmVyc1tEaXNjb3JkQXBwbGljYXRpb25JbnRlZ3JhdGlvblR5cGUuR3VpbGRJbnN0YWxsXSA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKFxuICAgICAgICBwYXlsb2FkLmludGVyYWN0aW9uLmF1dGhvcml6aW5nX2ludGVncmF0aW9uX293bmVyc1snMCddLFxuICAgICAgKVxuICAgIGlmIChwYXlsb2FkLmludGVyYWN0aW9uLmF1dGhvcml6aW5nX2ludGVncmF0aW9uX293bmVyc1snMSddKVxuICAgICAgaW50ZXJhY3Rpb24uYXV0aG9yaXppbmdJbnRlZ3JhdGlvbk93bmVyc1tEaXNjb3JkQXBwbGljYXRpb25JbnRlZ3JhdGlvblR5cGUuVXNlckluc3RhbGxdID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UoXG4gICAgICAgIHBheWxvYWQuaW50ZXJhY3Rpb24uYXV0aG9yaXppbmdfaW50ZWdyYXRpb25fb3duZXJzWycxJ10sXG4gICAgICApXG4gIH1cbiAgaWYgKHByb3BzLmNvbnRleHQgJiYgcGF5bG9hZC5pbnRlcmFjdGlvbi5jb250ZXh0KSBpbnRlcmFjdGlvbi5jb250ZXh0ID0gcGF5bG9hZC5pbnRlcmFjdGlvbi5jb250ZXh0XG4gIGlmIChwcm9wcy5hdHRhY2htZW50U2l6ZUxpbWl0ICYmIHBheWxvYWQuaW50ZXJhY3Rpb24uYXR0YWNobWVudF9zaXplX2xpbWl0KVxuICAgIGludGVyYWN0aW9uLmF0dGFjaG1lbnRTaXplTGltaXQgPSBwYXlsb2FkLmludGVyYWN0aW9uLmF0dGFjaG1lbnRfc2l6ZV9saW1pdFxuICBpZiAocHJvcHMuZGF0YSAmJiBwYXlsb2FkLmludGVyYWN0aW9uLmRhdGEpIHtcbiAgICBpbnRlcmFjdGlvbi5kYXRhID0ge1xuICAgICAgdHlwZTogcGF5bG9hZC5pbnRlcmFjdGlvbi5kYXRhLnR5cGUsXG4gICAgICBjb21wb25lbnRUeXBlOiBwYXlsb2FkLmludGVyYWN0aW9uLmRhdGEuY29tcG9uZW50X3R5cGUsXG4gICAgICBjdXN0b21JZDogcGF5bG9hZC5pbnRlcmFjdGlvbi5kYXRhLmN1c3RvbV9pZCxcbiAgICAgIGNvbXBvbmVudHM6IHBheWxvYWQuaW50ZXJhY3Rpb24uZGF0YS5jb21wb25lbnRzPy5tYXAoKGNvbXBvbmVudCkgPT4gYm90LnRyYW5zZm9ybWVycy5jb21wb25lbnQoYm90LCBjb21wb25lbnQpKSxcbiAgICAgIHZhbHVlczogcGF5bG9hZC5pbnRlcmFjdGlvbi5kYXRhLnZhbHVlcyxcbiAgICAgIGlkOiBwYXlsb2FkLmludGVyYWN0aW9uLmRhdGEuaWQgPyBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmludGVyYWN0aW9uLmRhdGEuaWQpIDogdW5kZWZpbmVkLFxuICAgICAgbmFtZTogcGF5bG9hZC5pbnRlcmFjdGlvbi5kYXRhLm5hbWUsXG4gICAgICByZXNvbHZlZDogcGF5bG9hZC5pbnRlcmFjdGlvbi5kYXRhLnJlc29sdmVkXG4gICAgICAgID8gYm90LnRyYW5zZm9ybWVycy5pbnRlcmFjdGlvbkRhdGFSZXNvbHZlZChib3QsIHsgcmVzb2x2ZWQ6IHBheWxvYWQuaW50ZXJhY3Rpb24uZGF0YS5yZXNvbHZlZCwgc2hhcmRJZDogcGF5bG9hZC5zaGFyZElkLCBndWlsZElkIH0pXG4gICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgb3B0aW9uczogcGF5bG9hZC5pbnRlcmFjdGlvbi5kYXRhLm9wdGlvbnM/Lm1hcCgob3B0KSA9PiBib3QudHJhbnNmb3JtZXJzLmludGVyYWN0aW9uRGF0YU9wdGlvbnMoYm90LCBvcHQpKSxcbiAgICAgIHRhcmdldElkOiBwYXlsb2FkLmludGVyYWN0aW9uLmRhdGEudGFyZ2V0X2lkID8gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5pbnRlcmFjdGlvbi5kYXRhLnRhcmdldF9pZCkgOiB1bmRlZmluZWQsXG4gICAgfVxuICB9XG5cbiAgLy8gVHlwZXNjcmlwdCBoYXMgYW4gaGFyZCB0aW1lIHdpdGggaW50ZXJhY3Rpb24uYm90LCBzbyB3ZSBuZWVkIHRvIHRlbGwgaGltIGZvciBzdXJlIHRoaXMgaW50ZXJhY3Rpb24gaXMgdGhlIG9mIHRoZSBjb3JyZWN0IHR5cGVcbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMuaW50ZXJhY3Rpb24oYm90LCBwYXlsb2FkLCBpbnRlcmFjdGlvbiBhcyB1bmtub3duIGFzIHR5cGVvZiBib3QudHJhbnNmb3JtZXJzLiRpbmZlcnJlZFR5cGVzLmludGVyYWN0aW9uKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtSW50ZXJhY3Rpb25EYXRhT3B0aW9uKGJvdDogQm90LCBvcHRpb246IERpc2NvcmRJbnRlcmFjdGlvbkRhdGFPcHRpb24pOiBJbnRlcmFjdGlvbkRhdGFPcHRpb24ge1xuICBjb25zdCBvcHQgPSB7XG4gICAgbmFtZTogb3B0aW9uLm5hbWUsXG4gICAgdHlwZTogb3B0aW9uLnR5cGUsXG4gICAgdmFsdWU6IG9wdGlvbi52YWx1ZSxcbiAgICBvcHRpb25zOiBvcHRpb24ub3B0aW9ucyxcbiAgICBmb2N1c2VkOiBvcHRpb24uZm9jdXNlZCxcbiAgfSBhcyBJbnRlcmFjdGlvbkRhdGFPcHRpb25cblxuICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jdXN0b21pemVycy5pbnRlcmFjdGlvbkRhdGFPcHRpb25zKGJvdCwgb3B0aW9uLCBvcHQpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1JbnRlcmFjdGlvbkRhdGFSZXNvbHZlZChcbiAgYm90OiBJbnRlcm5hbEJvdCxcbiAgcGF5bG9hZDogeyByZXNvbHZlZDogRGlzY29yZEludGVyYWN0aW9uRGF0YVJlc29sdmVkOyBzaGFyZElkOiBudW1iZXI7IGd1aWxkSWQ/OiBiaWdpbnQgfSxcbik6IEludGVyYWN0aW9uRGF0YVJlc29sdmVkIHtcbiAgY29uc3QgdHJhbnNmb3JtZWQ6IEludGVyYWN0aW9uRGF0YVJlc29sdmVkID0ge31cblxuICBpZiAocGF5bG9hZC5yZXNvbHZlZC5tZXNzYWdlcykge1xuICAgIHRyYW5zZm9ybWVkLm1lc3NhZ2VzID0gbmV3IENvbGxlY3Rpb24oXG4gICAgICBPYmplY3QuZW50cmllcyhwYXlsb2FkLnJlc29sdmVkLm1lc3NhZ2VzKS5tYXAoKFtfaWQsIHZhbHVlXSkgPT4ge1xuICAgICAgICBjb25zdCBtZXNzYWdlOiBNZXNzYWdlID0gYm90LnRyYW5zZm9ybWVycy5tZXNzYWdlKGJvdCwgeyBtZXNzYWdlOiB2YWx1ZSwgc2hhcmRJZDogcGF5bG9hZC5zaGFyZElkIH0pXG4gICAgICAgIHJldHVybiBbbWVzc2FnZS5pZCwgbWVzc2FnZV1cbiAgICAgIH0pLFxuICAgIClcbiAgfVxuXG4gIGlmIChwYXlsb2FkLnJlc29sdmVkLnVzZXJzKSB7XG4gICAgdHJhbnNmb3JtZWQudXNlcnMgPSBuZXcgQ29sbGVjdGlvbihcbiAgICAgIE9iamVjdC5lbnRyaWVzKHBheWxvYWQucmVzb2x2ZWQudXNlcnMpLm1hcCgoW19pZCwgdmFsdWVdKSA9PiB7XG4gICAgICAgIGNvbnN0IHVzZXIgPSBib3QudHJhbnNmb3JtZXJzLnVzZXIoYm90LCB2YWx1ZSlcbiAgICAgICAgcmV0dXJuIFt1c2VyLmlkLCB1c2VyXVxuICAgICAgfSksXG4gICAgKVxuICB9XG5cbiAgaWYgKHBheWxvYWQuZ3VpbGRJZCAmJiBwYXlsb2FkLnJlc29sdmVkLm1lbWJlcnMpIHtcbiAgICB0cmFuc2Zvcm1lZC5tZW1iZXJzID0gbmV3IENvbGxlY3Rpb24oXG4gICAgICBPYmplY3QuZW50cmllcyhwYXlsb2FkLnJlc29sdmVkLm1lbWJlcnMpLm1hcCgoW2lkLCB2YWx1ZV0pID0+IHtcbiAgICAgICAgY29uc3QgbWVtYmVyOiBNZW1iZXIgPSBib3QudHJhbnNmb3JtZXJzLm1lbWJlcihib3QsIHZhbHVlLCBwYXlsb2FkLmd1aWxkSWQhLCBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShpZCkpXG4gICAgICAgIHJldHVybiBbbWVtYmVyLmlkLCBtZW1iZXJdXG4gICAgICB9KSxcbiAgICApXG4gIH1cblxuICBpZiAocGF5bG9hZC5ndWlsZElkICYmIHBheWxvYWQucmVzb2x2ZWQucm9sZXMpIHtcbiAgICB0cmFuc2Zvcm1lZC5yb2xlcyA9IG5ldyBDb2xsZWN0aW9uKFxuICAgICAgT2JqZWN0LmVudHJpZXMocGF5bG9hZC5yZXNvbHZlZC5yb2xlcykubWFwKChbX2lkLCB2YWx1ZV0pID0+IHtcbiAgICAgICAgY29uc3Qgcm9sZSA9IGJvdC50cmFuc2Zvcm1lcnMucm9sZShib3QsIHsgcm9sZTogdmFsdWUsIGd1aWxkSWQ6IHBheWxvYWQuZ3VpbGRJZCEgfSlcbiAgICAgICAgcmV0dXJuIFtyb2xlLmlkLCByb2xlXVxuICAgICAgfSksXG4gICAgKVxuICB9XG5cbiAgaWYgKHBheWxvYWQucmVzb2x2ZWQuY2hhbm5lbHMpIHtcbiAgICB0cmFuc2Zvcm1lZC5jaGFubmVscyA9IG5ldyBDb2xsZWN0aW9uKFxuICAgICAgT2JqZWN0LmVudHJpZXMocGF5bG9hZC5yZXNvbHZlZC5jaGFubmVscykubWFwKChbX2lkLCB2YWx1ZV0pID0+IHtcbiAgICAgICAgY29uc3QgY2hhbm5lbCA9IGJvdC50cmFuc2Zvcm1lcnMuY2hhbm5lbChib3QsIHsgY2hhbm5lbDogdmFsdWUgfSkgYXMgSW50ZXJhY3Rpb25SZXNvbHZlZENoYW5uZWxcbiAgICAgICAgcmV0dXJuIFtjaGFubmVsLmlkLCBjaGFubmVsXVxuICAgICAgfSksXG4gICAgKVxuICB9XG5cbiAgaWYgKHBheWxvYWQucmVzb2x2ZWQuYXR0YWNobWVudHMpIHtcbiAgICB0cmFuc2Zvcm1lZC5hdHRhY2htZW50cyA9IG5ldyBDb2xsZWN0aW9uKFxuICAgICAgT2JqZWN0LmVudHJpZXMocGF5bG9hZC5yZXNvbHZlZC5hdHRhY2htZW50cykubWFwKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgICAgY29uc3QgaWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShrZXkpXG4gICAgICAgIHJldHVybiBbaWQsIGJvdC50cmFuc2Zvcm1lcnMuYXR0YWNobWVudChib3QsIHZhbHVlKV1cbiAgICAgIH0pLFxuICAgIClcbiAgfVxuXG4gIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmN1c3RvbWl6ZXJzLmludGVyYWN0aW9uRGF0YVJlc29sdmVkKGJvdCwgcGF5bG9hZCwgdHJhbnNmb3JtZWQpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1JbnRlcmFjdGlvbkNhbGxiYWNrUmVzcG9uc2UoXG4gIGJvdDogSW50ZXJuYWxCb3QsXG4gIHBheWxvYWQ6IHsgaW50ZXJhY3Rpb25DYWxsYmFja1Jlc3BvbnNlOiBEaXNjb3JkSW50ZXJhY3Rpb25DYWxsYmFja1Jlc3BvbnNlOyBzaGFyZElkOiBudW1iZXIgfSxcbik6IHR5cGVvZiBib3QudHJhbnNmb3JtZXJzLiRpbmZlcnJlZFR5cGVzLmludGVyYWN0aW9uQ2FsbGJhY2tSZXNwb25zZSB7XG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5pbnRlcmFjdGlvbkNhbGxiYWNrUmVzcG9uc2VcbiAgY29uc3QgcmVzcG9uc2UgPSB7fSBhcyBJbnRlcmFjdGlvbkNhbGxiYWNrUmVzcG9uc2VcblxuICBpZiAocHJvcHMuaW50ZXJhY3Rpb24gJiYgcGF5bG9hZC5pbnRlcmFjdGlvbkNhbGxiYWNrUmVzcG9uc2UuaW50ZXJhY3Rpb24pXG4gICAgcmVzcG9uc2UuaW50ZXJhY3Rpb24gPSBib3QudHJhbnNmb3JtZXJzLmludGVyYWN0aW9uQ2FsbGJhY2soYm90LCBwYXlsb2FkLmludGVyYWN0aW9uQ2FsbGJhY2tSZXNwb25zZS5pbnRlcmFjdGlvbilcbiAgaWYgKHByb3BzLnJlc291cmNlICYmIHBheWxvYWQuaW50ZXJhY3Rpb25DYWxsYmFja1Jlc3BvbnNlLnJlc291cmNlKVxuICAgIHJlc3BvbnNlLnJlc291cmNlID0gYm90LnRyYW5zZm9ybWVycy5pbnRlcmFjdGlvblJlc291cmNlKGJvdCwge1xuICAgICAgaW50ZXJhY3Rpb25SZXNvdXJjZTogcGF5bG9hZC5pbnRlcmFjdGlvbkNhbGxiYWNrUmVzcG9uc2UucmVzb3VyY2UsXG4gICAgICBzaGFyZElkOiBwYXlsb2FkLnNoYXJkSWQsXG4gICAgfSlcblxuICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jdXN0b21pemVycy5pbnRlcmFjdGlvbkNhbGxiYWNrUmVzcG9uc2UoYm90LCBwYXlsb2FkLmludGVyYWN0aW9uQ2FsbGJhY2tSZXNwb25zZSwgcmVzcG9uc2UpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1JbnRlcmFjdGlvbkNhbGxiYWNrKFxuICBib3Q6IEludGVybmFsQm90LFxuICBwYXlsb2FkOiBEaXNjb3JkSW50ZXJhY3Rpb25DYWxsYmFjayxcbik6IHR5cGVvZiBib3QudHJhbnNmb3JtZXJzLiRpbmZlcnJlZFR5cGVzLmludGVyYWN0aW9uQ2FsbGJhY2sge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuaW50ZXJhY3Rpb25DYWxsYmFja1xuICBjb25zdCBjYWxsYmFjayA9IHt9IGFzIEludGVyYWN0aW9uQ2FsbGJhY2tcblxuICBpZiAocHJvcHMuaWQgJiYgcGF5bG9hZC5pZCkgY2FsbGJhY2suaWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmlkKVxuICBpZiAocHJvcHMudHlwZSAmJiBwYXlsb2FkLnR5cGUpIGNhbGxiYWNrLnR5cGUgPSBwYXlsb2FkLnR5cGVcbiAgaWYgKHByb3BzLmFjdGl2aXR5SW5zdGFuY2VJZCAmJiBwYXlsb2FkLmFjdGl2aXR5X2luc3RhbmNlX2lkKSBjYWxsYmFjay5hY3Rpdml0eUluc3RhbmNlSWQgPSBwYXlsb2FkLmFjdGl2aXR5X2luc3RhbmNlX2lkXG4gIGlmIChwcm9wcy5yZXNwb25zZU1lc3NhZ2VJZCAmJiBwYXlsb2FkLnJlc3BvbnNlX21lc3NhZ2VfaWQpIGNhbGxiYWNrLnJlc3BvbnNlTWVzc2FnZUlkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5yZXNwb25zZV9tZXNzYWdlX2lkKVxuICBpZiAocHJvcHMucmVzcG9uc2VNZXNzYWdlRXBoZW1lcmFsICYmIHBheWxvYWQucmVzcG9uc2VfbWVzc2FnZV9lcGhlbWVyYWwpIGNhbGxiYWNrLnJlc3BvbnNlTWVzc2FnZUVwaGVtZXJhbCA9IHBheWxvYWQucmVzcG9uc2VfbWVzc2FnZV9lcGhlbWVyYWxcbiAgaWYgKHByb3BzLnJlc3BvbnNlTWVzc2FnZUxvYWRpbmcgJiYgcGF5bG9hZC5yZXNwb25zZV9tZXNzYWdlX2xvYWRpbmcpIGNhbGxiYWNrLnJlc3BvbnNlTWVzc2FnZUxvYWRpbmcgPSBwYXlsb2FkLnJlc3BvbnNlX21lc3NhZ2VfbG9hZGluZ1xuXG4gIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmN1c3RvbWl6ZXJzLmludGVyYWN0aW9uQ2FsbGJhY2soYm90LCBwYXlsb2FkLCBjYWxsYmFjaylcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybUludGVyYWN0aW9uUmVzb3VyY2UoXG4gIGJvdDogSW50ZXJuYWxCb3QsXG4gIHBheWxvYWQ6IHsgaW50ZXJhY3Rpb25SZXNvdXJjZTogRGlzY29yZEludGVyYWN0aW9uUmVzb3VyY2U7IHNoYXJkSWQ6IG51bWJlciB9LFxuKTogdHlwZW9mIGJvdC50cmFuc2Zvcm1lcnMuJGluZmVycmVkVHlwZXMuaW50ZXJhY3Rpb25SZXNvdXJjZSB7XG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5pbnRlcmFjdGlvblJlc291cmNlXG4gIGNvbnN0IHJlc291cmNlID0ge30gYXMgSW50ZXJhY3Rpb25SZXNvdXJjZVxuXG4gIGlmIChwcm9wcy50eXBlICYmIHBheWxvYWQuaW50ZXJhY3Rpb25SZXNvdXJjZS50eXBlKSByZXNvdXJjZS50eXBlID0gcGF5bG9hZC5pbnRlcmFjdGlvblJlc291cmNlLnR5cGVcbiAgaWYgKHByb3BzLmFjdGl2aXR5SW5zdGFuY2UgJiYgcGF5bG9hZC5pbnRlcmFjdGlvblJlc291cmNlLmFjdGl2aXR5X2luc3RhbmNlKVxuICAgIHJlc291cmNlLmFjdGl2aXR5SW5zdGFuY2UgPSBwYXlsb2FkLmludGVyYWN0aW9uUmVzb3VyY2UuYWN0aXZpdHlfaW5zdGFuY2VcbiAgaWYgKHByb3BzLm1lc3NhZ2UgJiYgcGF5bG9hZC5pbnRlcmFjdGlvblJlc291cmNlLm1lc3NhZ2UpXG4gICAgcmVzb3VyY2UubWVzc2FnZSA9IGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZShib3QsIHsgbWVzc2FnZTogcGF5bG9hZC5pbnRlcmFjdGlvblJlc291cmNlLm1lc3NhZ2UsIHNoYXJkSWQ6IHBheWxvYWQuc2hhcmRJZCB9KVxuXG4gIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmN1c3RvbWl6ZXJzLmludGVyYWN0aW9uUmVzb3VyY2UoYm90LCBwYXlsb2FkLmludGVyYWN0aW9uUmVzb3VyY2UsIHJlc291cmNlKVxufVxuIl0sIm5hbWVzIjpbImJhc2VJbnRlcmFjdGlvbiIsInRyYW5zZm9ybUludGVyYWN0aW9uIiwidHJhbnNmb3JtSW50ZXJhY3Rpb25DYWxsYmFjayIsInRyYW5zZm9ybUludGVyYWN0aW9uQ2FsbGJhY2tSZXNwb25zZSIsInRyYW5zZm9ybUludGVyYWN0aW9uRGF0YU9wdGlvbiIsInRyYW5zZm9ybUludGVyYWN0aW9uRGF0YVJlc29sdmVkIiwidHJhbnNmb3JtSW50ZXJhY3Rpb25SZXNvdXJjZSIsInVuZGVmaW5lZCIsInJlc3BvbmQiLCJyZXNwb25zZSIsIm9wdGlvbnMiLCJ0eXBlIiwiSW50ZXJhY3Rpb25SZXNwb25zZVR5cGVzIiwiQ2hhbm5lbE1lc3NhZ2VXaXRoU291cmNlIiwiY29udGVudCIsInRpdGxlIiwiTW9kYWwiLCJJbnRlcmFjdGlvblR5cGVzIiwiQXBwbGljYXRpb25Db21tYW5kQXV0b2NvbXBsZXRlIiwiQXBwbGljYXRpb25Db21tYW5kQXV0b2NvbXBsZXRlUmVzdWx0IiwiaXNQcml2YXRlIiwiZmxhZ3MiLCJNZXNzYWdlRmxhZ3MiLCJFcGhlbWVyYWwiLCJhY2tub3dsZWRnZWQiLCJib3QiLCJoZWxwZXJzIiwic2VuZEZvbGxvd3VwTWVzc2FnZSIsInRva2VuIiwiTW9kYWxTdWJtaXQiLCJFcnJvciIsInJlc3VsdCIsInNlbmRJbnRlcmFjdGlvblJlc3BvbnNlIiwiaWQiLCJkYXRhIiwid2l0aFJlc3BvbnNlIiwiZWRpdCIsIm1lc3NhZ2VJZCIsImVkaXRGb2xsb3d1cE1lc3NhZ2UiLCJNZXNzYWdlQ29tcG9uZW50IiwiVXBkYXRlTWVzc2FnZSIsImVkaXRPcmlnaW5hbEludGVyYWN0aW9uUmVzcG9uc2UiLCJkZWZlckVkaXQiLCJEZWZlcnJlZFVwZGF0ZU1lc3NhZ2UiLCJkZWZlciIsIkRlZmVycmVkQ2hhbm5lbE1lc3NhZ2VXaXRoU291cmNlIiwiZGVsZXRlIiwiZGVsZXRlRm9sbG93dXBNZXNzYWdlIiwiZGVsZXRlT3JpZ2luYWxJbnRlcmFjdGlvblJlc3BvbnNlIiwicGF5bG9hZCIsImd1aWxkSWQiLCJpbnRlcmFjdGlvbiIsImd1aWxkX2lkIiwidHJhbnNmb3JtZXJzIiwic25vd2ZsYWtlIiwidXNlciIsIm1lbWJlciIsIk9iamVjdCIsImNyZWF0ZSIsInByb3BzIiwiZGVzaXJlZFByb3BlcnRpZXMiLCJhcHBsaWNhdGlvbklkIiwiYXBwbGljYXRpb25faWQiLCJ2ZXJzaW9uIiwibG9jYWxlIiwiZ3VpbGRMb2NhbGUiLCJndWlsZF9sb2NhbGUiLCJndWlsZCIsInNoYXJkSWQiLCJhcHBQZXJtaXNzaW9ucyIsImFwcF9wZXJtaXNzaW9ucyIsIm1lc3NhZ2UiLCJjaGFubmVsIiwiY2hhbm5lbElkIiwiY2hhbm5lbF9pZCIsImVudGl0bGVtZW50cyIsIm1hcCIsImUiLCJlbnRpdGxlbWVudCIsImF1dGhvcml6aW5nSW50ZWdyYXRpb25Pd25lcnMiLCJhdXRob3JpemluZ19pbnRlZ3JhdGlvbl9vd25lcnMiLCJEaXNjb3JkQXBwbGljYXRpb25JbnRlZ3JhdGlvblR5cGUiLCJHdWlsZEluc3RhbGwiLCJVc2VySW5zdGFsbCIsImNvbnRleHQiLCJhdHRhY2htZW50U2l6ZUxpbWl0IiwiYXR0YWNobWVudF9zaXplX2xpbWl0IiwiY29tcG9uZW50VHlwZSIsImNvbXBvbmVudF90eXBlIiwiY3VzdG9tSWQiLCJjdXN0b21faWQiLCJjb21wb25lbnRzIiwiY29tcG9uZW50IiwidmFsdWVzIiwibmFtZSIsInJlc29sdmVkIiwiaW50ZXJhY3Rpb25EYXRhUmVzb2x2ZWQiLCJvcHQiLCJpbnRlcmFjdGlvbkRhdGFPcHRpb25zIiwidGFyZ2V0SWQiLCJ0YXJnZXRfaWQiLCJjdXN0b21pemVycyIsIm9wdGlvbiIsInZhbHVlIiwiZm9jdXNlZCIsInRyYW5zZm9ybWVkIiwibWVzc2FnZXMiLCJDb2xsZWN0aW9uIiwiZW50cmllcyIsIl9pZCIsInVzZXJzIiwibWVtYmVycyIsInJvbGVzIiwicm9sZSIsImNoYW5uZWxzIiwiYXR0YWNobWVudHMiLCJrZXkiLCJhdHRhY2htZW50IiwiaW50ZXJhY3Rpb25DYWxsYmFja1Jlc3BvbnNlIiwiaW50ZXJhY3Rpb25DYWxsYmFjayIsInJlc291cmNlIiwiaW50ZXJhY3Rpb25SZXNvdXJjZSIsImNhbGxiYWNrIiwiYWN0aXZpdHlJbnN0YW5jZUlkIiwiYWN0aXZpdHlfaW5zdGFuY2VfaWQiLCJyZXNwb25zZU1lc3NhZ2VJZCIsInJlc3BvbnNlX21lc3NhZ2VfaWQiLCJyZXNwb25zZU1lc3NhZ2VFcGhlbWVyYWwiLCJyZXNwb25zZV9tZXNzYWdlX2VwaGVtZXJhbCIsInJlc3BvbnNlTWVzc2FnZUxvYWRpbmciLCJyZXNwb25zZV9tZXNzYWdlX2xvYWRpbmciLCJhY3Rpdml0eUluc3RhbmNlIiwiYWN0aXZpdHlfaW5zdGFuY2UiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O1FBNEJhQTtlQUFBQTs7UUFxR0dDO2VBQUFBOztRQXNLQUM7ZUFBQUE7O1FBbEJBQztlQUFBQTs7UUEzRUFDO2VBQUFBOztRQVlBQztlQUFBQTs7UUFrR0FDO2VBQUFBOzs7dUJBN1NUO3VCQUNvQjtBQWdCcEIsTUFBTU4sa0JBQWdGO0lBQzNGLDJFQUEyRTtJQUMzRSxHQUFJTyxTQUFTO0lBRWIsTUFBTUMsU0FBUUMsUUFBUSxFQUFFQyxPQUFPO1FBQzdCLElBQUlDLE9BQU9DLCtCQUF3QixDQUFDQyx3QkFBd0I7UUFFNUQsNERBQTREO1FBQzVELElBQUksT0FBT0osYUFBYSxVQUFVQSxXQUFXO1lBQUVLLFNBQVNMO1FBQVM7UUFFakUsNEZBQTRGO1FBQzVGLElBQUlBLFNBQVNNLEtBQUssRUFBRUosT0FBT0MsK0JBQXdCLENBQUNJLEtBQUs7UUFDekQsSUFBSSxJQUFJLENBQUNMLElBQUksS0FBS00sdUJBQWdCLENBQUNDLDhCQUE4QixFQUFFUCxPQUFPQywrQkFBd0IsQ0FBQ08sb0NBQW9DO1FBQ3ZJLElBQUlSLFNBQVNDLCtCQUF3QixDQUFDQyx3QkFBd0IsSUFBSUgsU0FBU1UsV0FBVztZQUNwRlgsU0FBU1ksS0FBSyxLQUFLO1lBQ25CWixTQUFTWSxLQUFLLElBQUlDLG1CQUFZLENBQUNDLFNBQVM7UUFDMUM7UUFFQSx5RkFBeUY7UUFDekYsSUFBSSxJQUFJLENBQUNDLFlBQVksRUFBRSxPQUFPLE1BQU0sSUFBSSxDQUFDQyxHQUFHLENBQUNDLE9BQU8sQ0FBQ0MsbUJBQW1CLENBQUMsSUFBSSxDQUFDQyxLQUFLLEVBQUVuQjtRQUVyRiwyQkFBMkI7UUFDM0IsSUFBSSxJQUFJLENBQUNFLElBQUksS0FBS00sdUJBQWdCLENBQUNZLFdBQVcsSUFBSWxCLFNBQVNDLCtCQUF3QixDQUFDSSxLQUFLLEVBQ3ZGLE1BQU0sSUFBSWMsTUFBTTtRQUVsQixNQUFNQyxTQUFTLE1BQU0sSUFBSSxDQUFDTixHQUFHLENBQUNDLE9BQU8sQ0FBQ00sdUJBQXVCLENBQzNELElBQUksQ0FBQ0MsRUFBRSxFQUNQLElBQUksQ0FBQ0wsS0FBSyxFQUNWO1lBQUVqQjtZQUFNdUIsTUFBTXpCO1FBQVMsR0FDdkI7WUFBRTBCLGNBQWN6QixTQUFTeUI7UUFBYTtRQUV4QyxJQUFJLENBQUNYLFlBQVksR0FBRztRQUNwQixPQUFPTztJQUNUO0lBQ0EsTUFBTUssTUFBSzNCLFFBQVEsRUFBRTRCLFNBQVMsRUFBRTNCLE9BQU87UUFDckMsSUFBSSxJQUFJLENBQUNDLElBQUksS0FBS00sdUJBQWdCLENBQUNDLDhCQUE4QixFQUFFLE1BQU0sSUFBSVksTUFBTTtRQUVuRiw0REFBNEQ7UUFDNUQsSUFBSSxPQUFPckIsYUFBYSxVQUFVQSxXQUFXO1lBQUVLLFNBQVNMO1FBQVM7UUFFakUsSUFBSTRCLFdBQVc7WUFDYixPQUFPLE1BQU0sSUFBSSxDQUFDWixHQUFHLEVBQUVDLFFBQVFZLG9CQUFvQixJQUFJLENBQUNWLEtBQUssRUFBRVMsV0FBVzVCO1FBQzVFO1FBRUEsSUFBSSxDQUFDLElBQUksQ0FBQ2UsWUFBWSxFQUFFO1lBQ3RCLElBQUksSUFBSSxDQUFDYixJQUFJLEtBQUtNLHVCQUFnQixDQUFDc0IsZ0JBQWdCLElBQUksSUFBSSxDQUFDNUIsSUFBSSxLQUFLTSx1QkFBZ0IsQ0FBQ1ksV0FBVyxFQUMvRixNQUFNLElBQUlDLE1BQU07WUFFbEIsTUFBTUMsU0FBUyxNQUFNLElBQUksQ0FBQ04sR0FBRyxDQUFDQyxPQUFPLENBQUNNLHVCQUF1QixDQUMzRCxJQUFJLENBQUNDLEVBQUUsRUFDUCxJQUFJLENBQUNMLEtBQUssRUFDVjtnQkFBRWpCLE1BQU1DLCtCQUF3QixDQUFDNEIsYUFBYTtnQkFBRU4sTUFBTXpCO1lBQVMsR0FDL0RDO1lBRUYsSUFBSSxDQUFDYyxZQUFZLEdBQUc7WUFDcEIsT0FBT087UUFDVDtRQUVBLE9BQU8sTUFBTSxJQUFJLENBQUNOLEdBQUcsQ0FBQ0MsT0FBTyxDQUFDZSwrQkFBK0IsQ0FBQyxJQUFJLENBQUNiLEtBQUssRUFBRW5CO0lBQzVFO0lBQ0EsTUFBTWlDLFdBQVVoQyxPQUFPO1FBQ3JCLElBQUksSUFBSSxDQUFDQyxJQUFJLEtBQUtNLHVCQUFnQixDQUFDQyw4QkFBOEIsRUFBRSxNQUFNLElBQUlZLE1BQU07UUFDbkYsSUFBSSxJQUFJLENBQUNOLFlBQVksRUFBRSxNQUFNLElBQUlNLE1BQU07UUFFdkMsSUFBSSxJQUFJLENBQUNuQixJQUFJLEtBQUtNLHVCQUFnQixDQUFDc0IsZ0JBQWdCLElBQUksSUFBSSxDQUFDNUIsSUFBSSxLQUFLTSx1QkFBZ0IsQ0FBQ1ksV0FBVyxFQUMvRixNQUFNLElBQUlDLE1BQU07UUFFbEIsTUFBTUMsU0FBUyxNQUFNLElBQUksQ0FBQ04sR0FBRyxDQUFDQyxPQUFPLENBQUNNLHVCQUF1QixDQUMzRCxJQUFJLENBQUNDLEVBQUUsRUFDUCxJQUFJLENBQUNMLEtBQUssRUFDVjtZQUFFakIsTUFBTUMsK0JBQXdCLENBQUMrQixxQkFBcUI7UUFBQyxHQUN2RGpDO1FBRUYsSUFBSSxDQUFDYyxZQUFZLEdBQUc7UUFDcEIsT0FBT087SUFDVDtJQUNBLE1BQU1hLE9BQU14QixTQUFTLEVBQUVWLE9BQU87UUFDNUIsSUFBSSxJQUFJLENBQUNjLFlBQVksRUFBRSxNQUFNLElBQUlNLE1BQU07UUFFdkMsTUFBTUMsU0FBUyxNQUFNLElBQUksQ0FBQ04sR0FBRyxDQUFDQyxPQUFPLENBQUNNLHVCQUF1QixDQUMzRCxJQUFJLENBQUNDLEVBQUUsRUFDUCxJQUFJLENBQUNMLEtBQUssRUFDVjtZQUNFakIsTUFBTUMsK0JBQXdCLENBQUNpQyxnQ0FBZ0M7WUFDL0RYLE1BQU07Z0JBQ0piLE9BQU9ELFlBQVlFLG1CQUFZLENBQUNDLFNBQVMsR0FBR2hCO1lBQzlDO1FBQ0YsR0FDQUc7UUFFRixJQUFJLENBQUNjLFlBQVksR0FBRztRQUNwQixPQUFPTztJQUNUO0lBQ0EsTUFBTWUsUUFBT1QsU0FBUztRQUNwQixJQUFJLElBQUksQ0FBQzFCLElBQUksS0FBS00sdUJBQWdCLENBQUNDLDhCQUE4QixFQUFFLE1BQU0sSUFBSVksTUFBTTtRQUVuRixJQUFJTyxXQUFXLE9BQU8sTUFBTSxJQUFJLENBQUNaLEdBQUcsRUFBRUMsUUFBUXFCLHNCQUFzQixJQUFJLENBQUNuQixLQUFLLEVBQUVTO2FBQzNFLE9BQU8sTUFBTSxJQUFJLENBQUNaLEdBQUcsRUFBRUMsUUFBUXNCLGtDQUFrQyxJQUFJLENBQUNwQixLQUFLO0lBQ2xGO0FBQ0Y7QUFFTyxTQUFTM0IscUJBQ2R3QixHQUFnQixFQUNoQndCLE9BQTZEO0lBRTdELE1BQU1DLFVBQVVELFFBQVFFLFdBQVcsQ0FBQ0MsUUFBUSxHQUFHM0IsSUFBSTRCLFlBQVksQ0FBQ0MsU0FBUyxDQUFDTCxRQUFRRSxXQUFXLENBQUNDLFFBQVEsSUFBSTdDO0lBQzFHLE1BQU1nRCxPQUFPOUIsSUFBSTRCLFlBQVksQ0FBQ0UsSUFBSSxDQUFDOUIsS0FBS3dCLFFBQVFFLFdBQVcsQ0FBQ0ssTUFBTSxFQUFFRCxRQUFRTixRQUFRRSxXQUFXLENBQUNJLElBQUk7SUFFcEcsTUFBTUosY0FBMkJNLE9BQU9DLE1BQU0sQ0FBQzFEO0lBQy9DLE1BQU0yRCxRQUFRbEMsSUFBSTRCLFlBQVksQ0FBQ08saUJBQWlCLENBQUNULFdBQVc7SUFDNUQsdUZBQXVGO0lBQ3ZGQSxZQUFZMUIsR0FBRyxHQUFHQTtJQUNsQjBCLFlBQVkzQixZQUFZLEdBQUc7SUFFM0IsSUFBSW1DLE1BQU0xQixFQUFFLElBQUlnQixRQUFRRSxXQUFXLENBQUNsQixFQUFFLEVBQUVrQixZQUFZbEIsRUFBRSxHQUFHUixJQUFJNEIsWUFBWSxDQUFDQyxTQUFTLENBQUNMLFFBQVFFLFdBQVcsQ0FBQ2xCLEVBQUU7SUFDMUcsSUFBSTBCLE1BQU1FLGFBQWEsSUFBSVosUUFBUUUsV0FBVyxDQUFDVyxjQUFjLEVBQzNEWCxZQUFZVSxhQUFhLEdBQUdwQyxJQUFJNEIsWUFBWSxDQUFDQyxTQUFTLENBQUNMLFFBQVFFLFdBQVcsQ0FBQ1csY0FBYztJQUMzRixJQUFJSCxNQUFNaEQsSUFBSSxJQUFJc0MsUUFBUUUsV0FBVyxDQUFDeEMsSUFBSSxFQUFFd0MsWUFBWXhDLElBQUksR0FBR3NDLFFBQVFFLFdBQVcsQ0FBQ3hDLElBQUk7SUFDdkYsSUFBSWdELE1BQU0vQixLQUFLLElBQUlxQixRQUFRRSxXQUFXLENBQUN2QixLQUFLLEVBQUV1QixZQUFZdkIsS0FBSyxHQUFHcUIsUUFBUUUsV0FBVyxDQUFDdkIsS0FBSztJQUMzRixJQUFJK0IsTUFBTUksT0FBTyxJQUFJZCxRQUFRRSxXQUFXLENBQUNZLE9BQU8sRUFBRVosWUFBWVksT0FBTyxHQUFHZCxRQUFRRSxXQUFXLENBQUNZLE9BQU87SUFDbkcsSUFBSUosTUFBTUssTUFBTSxJQUFJZixRQUFRRSxXQUFXLENBQUNhLE1BQU0sRUFBRWIsWUFBWWEsTUFBTSxHQUFHZixRQUFRRSxXQUFXLENBQUNhLE1BQU07SUFDL0YsSUFBSUwsTUFBTU0sV0FBVyxJQUFJaEIsUUFBUUUsV0FBVyxDQUFDZSxZQUFZLEVBQUVmLFlBQVljLFdBQVcsR0FBR2hCLFFBQVFFLFdBQVcsQ0FBQ2UsWUFBWTtJQUNySCxJQUFJUCxNQUFNUSxLQUFLLElBQUlsQixRQUFRRSxXQUFXLENBQUNnQixLQUFLLEVBQzFDLHdFQUF3RTtJQUN4RWhCLFlBQVlnQixLQUFLLEdBQUcxQyxJQUFJNEIsWUFBWSxDQUFDYyxLQUFLLENBQUMxQyxLQUFLO1FBQUUwQyxPQUFPbEIsUUFBUUUsV0FBVyxDQUFDZ0IsS0FBSztRQUFFQyxTQUFTbkIsUUFBUW1CLE9BQU87SUFBQztJQUMvRyxJQUFJVCxNQUFNVCxPQUFPLElBQUlBLFNBQVNDLFlBQVlELE9BQU8sR0FBR0E7SUFDcEQsSUFBSVMsTUFBTUosSUFBSSxJQUFJQSxNQUFNSixZQUFZSSxJQUFJLEdBQUdBO0lBQzNDLElBQUlJLE1BQU1VLGNBQWMsSUFBSXBCLFFBQVFFLFdBQVcsQ0FBQ21CLGVBQWUsRUFDN0RuQixZQUFZa0IsY0FBYyxHQUFHNUMsSUFBSTRCLFlBQVksQ0FBQ0MsU0FBUyxDQUFDTCxRQUFRRSxXQUFXLENBQUNtQixlQUFlO0lBQzdGLElBQUlYLE1BQU1ZLE9BQU8sSUFBSXRCLFFBQVFFLFdBQVcsQ0FBQ29CLE9BQU8sRUFDOUNwQixZQUFZb0IsT0FBTyxHQUFHOUMsSUFBSTRCLFlBQVksQ0FBQ2tCLE9BQU8sQ0FBQzlDLEtBQUs7UUFBRThDLFNBQVN0QixRQUFRRSxXQUFXLENBQUNvQixPQUFPO1FBQUVILFNBQVM7SUFBRTtJQUN6RyxJQUFJVCxNQUFNYSxPQUFPLElBQUl2QixRQUFRRSxXQUFXLENBQUNxQixPQUFPLEVBQzlDckIsWUFBWXFCLE9BQU8sR0FBRy9DLElBQUk0QixZQUFZLENBQUNtQixPQUFPLENBQUMvQyxLQUFLO1FBQUUrQyxTQUFTdkIsUUFBUUUsV0FBVyxDQUFDcUIsT0FBTztRQUFvQnRCO0lBQVE7SUFDeEgsSUFBSVMsTUFBTWMsU0FBUyxJQUFJeEIsUUFBUUUsV0FBVyxDQUFDdUIsVUFBVSxFQUFFdkIsWUFBWXNCLFNBQVMsR0FBR2hELElBQUk0QixZQUFZLENBQUNDLFNBQVMsQ0FBQ0wsUUFBUUUsV0FBVyxDQUFDdUIsVUFBVTtJQUN4SSxJQUFJZixNQUFNSCxNQUFNLElBQUlOLFdBQVdELFFBQVFFLFdBQVcsQ0FBQ0ssTUFBTSxFQUN2REwsWUFBWUssTUFBTSxHQUFHL0IsSUFBSTRCLFlBQVksQ0FBQ0csTUFBTSxDQUFDL0IsS0FBS3dCLFFBQVFFLFdBQVcsQ0FBQ0ssTUFBTSxFQUFFTixTQUFTSyxLQUFLdEIsRUFBRTtJQUNoRyxJQUFJMEIsTUFBTWdCLFlBQVksSUFBSTFCLFFBQVFFLFdBQVcsQ0FBQ3dCLFlBQVksRUFDeER4QixZQUFZd0IsWUFBWSxHQUFHMUIsUUFBUUUsV0FBVyxDQUFDd0IsWUFBWSxDQUFDQyxHQUFHLENBQUMsQ0FBQ0MsSUFBTXBELElBQUk0QixZQUFZLENBQUN5QixXQUFXLENBQUNyRCxLQUFLb0Q7SUFDM0csSUFBSWxCLE1BQU1vQiw0QkFBNEIsSUFBSTlCLFFBQVFFLFdBQVcsQ0FBQzZCLDhCQUE4QixFQUFFO1FBQzVGN0IsWUFBWTRCLDRCQUE0QixHQUFHLENBQUM7UUFFNUMsSUFBSTlCLFFBQVFFLFdBQVcsQ0FBQzZCLDhCQUE4QixDQUFDLElBQUksRUFDekQ3QixZQUFZNEIsNEJBQTRCLENBQUNFLHdDQUFpQyxDQUFDQyxZQUFZLENBQUMsR0FBR3pELElBQUk0QixZQUFZLENBQUNDLFNBQVMsQ0FDbkhMLFFBQVFFLFdBQVcsQ0FBQzZCLDhCQUE4QixDQUFDLElBQUk7UUFFM0QsSUFBSS9CLFFBQVFFLFdBQVcsQ0FBQzZCLDhCQUE4QixDQUFDLElBQUksRUFDekQ3QixZQUFZNEIsNEJBQTRCLENBQUNFLHdDQUFpQyxDQUFDRSxXQUFXLENBQUMsR0FBRzFELElBQUk0QixZQUFZLENBQUNDLFNBQVMsQ0FDbEhMLFFBQVFFLFdBQVcsQ0FBQzZCLDhCQUE4QixDQUFDLElBQUk7SUFFN0Q7SUFDQSxJQUFJckIsTUFBTXlCLE9BQU8sSUFBSW5DLFFBQVFFLFdBQVcsQ0FBQ2lDLE9BQU8sRUFBRWpDLFlBQVlpQyxPQUFPLEdBQUduQyxRQUFRRSxXQUFXLENBQUNpQyxPQUFPO0lBQ25HLElBQUl6QixNQUFNMEIsbUJBQW1CLElBQUlwQyxRQUFRRSxXQUFXLENBQUNtQyxxQkFBcUIsRUFDeEVuQyxZQUFZa0MsbUJBQW1CLEdBQUdwQyxRQUFRRSxXQUFXLENBQUNtQyxxQkFBcUI7SUFDN0UsSUFBSTNCLE1BQU16QixJQUFJLElBQUllLFFBQVFFLFdBQVcsQ0FBQ2pCLElBQUksRUFBRTtRQUMxQ2lCLFlBQVlqQixJQUFJLEdBQUc7WUFDakJ2QixNQUFNc0MsUUFBUUUsV0FBVyxDQUFDakIsSUFBSSxDQUFDdkIsSUFBSTtZQUNuQzRFLGVBQWV0QyxRQUFRRSxXQUFXLENBQUNqQixJQUFJLENBQUNzRCxjQUFjO1lBQ3REQyxVQUFVeEMsUUFBUUUsV0FBVyxDQUFDakIsSUFBSSxDQUFDd0QsU0FBUztZQUM1Q0MsWUFBWTFDLFFBQVFFLFdBQVcsQ0FBQ2pCLElBQUksQ0FBQ3lELFVBQVUsRUFBRWYsSUFBSSxDQUFDZ0IsWUFBY25FLElBQUk0QixZQUFZLENBQUN1QyxTQUFTLENBQUNuRSxLQUFLbUU7WUFDcEdDLFFBQVE1QyxRQUFRRSxXQUFXLENBQUNqQixJQUFJLENBQUMyRCxNQUFNO1lBQ3ZDNUQsSUFBSWdCLFFBQVFFLFdBQVcsQ0FBQ2pCLElBQUksQ0FBQ0QsRUFBRSxHQUFHUixJQUFJNEIsWUFBWSxDQUFDQyxTQUFTLENBQUNMLFFBQVFFLFdBQVcsQ0FBQ2pCLElBQUksQ0FBQ0QsRUFBRSxJQUFJMUI7WUFDNUZ1RixNQUFNN0MsUUFBUUUsV0FBVyxDQUFDakIsSUFBSSxDQUFDNEQsSUFBSTtZQUNuQ0MsVUFBVTlDLFFBQVFFLFdBQVcsQ0FBQ2pCLElBQUksQ0FBQzZELFFBQVEsR0FDdkN0RSxJQUFJNEIsWUFBWSxDQUFDMkMsdUJBQXVCLENBQUN2RSxLQUFLO2dCQUFFc0UsVUFBVTlDLFFBQVFFLFdBQVcsQ0FBQ2pCLElBQUksQ0FBQzZELFFBQVE7Z0JBQUUzQixTQUFTbkIsUUFBUW1CLE9BQU87Z0JBQUVsQjtZQUFRLEtBQy9IM0M7WUFDSkcsU0FBU3VDLFFBQVFFLFdBQVcsQ0FBQ2pCLElBQUksQ0FBQ3hCLE9BQU8sRUFBRWtFLElBQUksQ0FBQ3FCLE1BQVF4RSxJQUFJNEIsWUFBWSxDQUFDNkMsc0JBQXNCLENBQUN6RSxLQUFLd0U7WUFDckdFLFVBQVVsRCxRQUFRRSxXQUFXLENBQUNqQixJQUFJLENBQUNrRSxTQUFTLEdBQUczRSxJQUFJNEIsWUFBWSxDQUFDQyxTQUFTLENBQUNMLFFBQVFFLFdBQVcsQ0FBQ2pCLElBQUksQ0FBQ2tFLFNBQVMsSUFBSTdGO1FBQ2xIO0lBQ0Y7SUFFQSxnSUFBZ0k7SUFDaEksT0FBT2tCLElBQUk0QixZQUFZLENBQUNnRCxXQUFXLENBQUNsRCxXQUFXLENBQUMxQixLQUFLd0IsU0FBU0U7QUFDaEU7QUFFTyxTQUFTL0MsK0JBQStCcUIsR0FBUSxFQUFFNkUsTUFBb0M7SUFDM0YsTUFBTUwsTUFBTTtRQUNWSCxNQUFNUSxPQUFPUixJQUFJO1FBQ2pCbkYsTUFBTTJGLE9BQU8zRixJQUFJO1FBQ2pCNEYsT0FBT0QsT0FBT0MsS0FBSztRQUNuQjdGLFNBQVM0RixPQUFPNUYsT0FBTztRQUN2QjhGLFNBQVNGLE9BQU9FLE9BQU87SUFDekI7SUFFQSxPQUFPL0UsSUFBSTRCLFlBQVksQ0FBQ2dELFdBQVcsQ0FBQ0gsc0JBQXNCLENBQUN6RSxLQUFLNkUsUUFBUUw7QUFDMUU7QUFFTyxTQUFTNUYsaUNBQ2RvQixHQUFnQixFQUNoQndCLE9BQXdGO0lBRXhGLE1BQU13RCxjQUF1QyxDQUFDO0lBRTlDLElBQUl4RCxRQUFROEMsUUFBUSxDQUFDVyxRQUFRLEVBQUU7UUFDN0JELFlBQVlDLFFBQVEsR0FBRyxJQUFJQyxpQkFBVSxDQUNuQ2xELE9BQU9tRCxPQUFPLENBQUMzRCxRQUFROEMsUUFBUSxDQUFDVyxRQUFRLEVBQUU5QixHQUFHLENBQUMsQ0FBQyxDQUFDaUMsS0FBS04sTUFBTTtZQUN6RCxNQUFNaEMsVUFBbUI5QyxJQUFJNEIsWUFBWSxDQUFDa0IsT0FBTyxDQUFDOUMsS0FBSztnQkFBRThDLFNBQVNnQztnQkFBT25DLFNBQVNuQixRQUFRbUIsT0FBTztZQUFDO1lBQ2xHLE9BQU87Z0JBQUNHLFFBQVF0QyxFQUFFO2dCQUFFc0M7YUFBUTtRQUM5QjtJQUVKO0lBRUEsSUFBSXRCLFFBQVE4QyxRQUFRLENBQUNlLEtBQUssRUFBRTtRQUMxQkwsWUFBWUssS0FBSyxHQUFHLElBQUlILGlCQUFVLENBQ2hDbEQsT0FBT21ELE9BQU8sQ0FBQzNELFFBQVE4QyxRQUFRLENBQUNlLEtBQUssRUFBRWxDLEdBQUcsQ0FBQyxDQUFDLENBQUNpQyxLQUFLTixNQUFNO1lBQ3RELE1BQU1oRCxPQUFPOUIsSUFBSTRCLFlBQVksQ0FBQ0UsSUFBSSxDQUFDOUIsS0FBSzhFO1lBQ3hDLE9BQU87Z0JBQUNoRCxLQUFLdEIsRUFBRTtnQkFBRXNCO2FBQUs7UUFDeEI7SUFFSjtJQUVBLElBQUlOLFFBQVFDLE9BQU8sSUFBSUQsUUFBUThDLFFBQVEsQ0FBQ2dCLE9BQU8sRUFBRTtRQUMvQ04sWUFBWU0sT0FBTyxHQUFHLElBQUlKLGlCQUFVLENBQ2xDbEQsT0FBT21ELE9BQU8sQ0FBQzNELFFBQVE4QyxRQUFRLENBQUNnQixPQUFPLEVBQUVuQyxHQUFHLENBQUMsQ0FBQyxDQUFDM0MsSUFBSXNFLE1BQU07WUFDdkQsTUFBTS9DLFNBQWlCL0IsSUFBSTRCLFlBQVksQ0FBQ0csTUFBTSxDQUFDL0IsS0FBSzhFLE9BQU90RCxRQUFRQyxPQUFPLEVBQUd6QixJQUFJNEIsWUFBWSxDQUFDQyxTQUFTLENBQUNyQjtZQUN4RyxPQUFPO2dCQUFDdUIsT0FBT3ZCLEVBQUU7Z0JBQUV1QjthQUFPO1FBQzVCO0lBRUo7SUFFQSxJQUFJUCxRQUFRQyxPQUFPLElBQUlELFFBQVE4QyxRQUFRLENBQUNpQixLQUFLLEVBQUU7UUFDN0NQLFlBQVlPLEtBQUssR0FBRyxJQUFJTCxpQkFBVSxDQUNoQ2xELE9BQU9tRCxPQUFPLENBQUMzRCxRQUFROEMsUUFBUSxDQUFDaUIsS0FBSyxFQUFFcEMsR0FBRyxDQUFDLENBQUMsQ0FBQ2lDLEtBQUtOLE1BQU07WUFDdEQsTUFBTVUsT0FBT3hGLElBQUk0QixZQUFZLENBQUM0RCxJQUFJLENBQUN4RixLQUFLO2dCQUFFd0YsTUFBTVY7Z0JBQU9yRCxTQUFTRCxRQUFRQyxPQUFPO1lBQUU7WUFDakYsT0FBTztnQkFBQytELEtBQUtoRixFQUFFO2dCQUFFZ0Y7YUFBSztRQUN4QjtJQUVKO0lBRUEsSUFBSWhFLFFBQVE4QyxRQUFRLENBQUNtQixRQUFRLEVBQUU7UUFDN0JULFlBQVlTLFFBQVEsR0FBRyxJQUFJUCxpQkFBVSxDQUNuQ2xELE9BQU9tRCxPQUFPLENBQUMzRCxRQUFROEMsUUFBUSxDQUFDbUIsUUFBUSxFQUFFdEMsR0FBRyxDQUFDLENBQUMsQ0FBQ2lDLEtBQUtOLE1BQU07WUFDekQsTUFBTS9CLFVBQVUvQyxJQUFJNEIsWUFBWSxDQUFDbUIsT0FBTyxDQUFDL0MsS0FBSztnQkFBRStDLFNBQVMrQjtZQUFNO1lBQy9ELE9BQU87Z0JBQUMvQixRQUFRdkMsRUFBRTtnQkFBRXVDO2FBQVE7UUFDOUI7SUFFSjtJQUVBLElBQUl2QixRQUFROEMsUUFBUSxDQUFDb0IsV0FBVyxFQUFFO1FBQ2hDVixZQUFZVSxXQUFXLEdBQUcsSUFBSVIsaUJBQVUsQ0FDdENsRCxPQUFPbUQsT0FBTyxDQUFDM0QsUUFBUThDLFFBQVEsQ0FBQ29CLFdBQVcsRUFBRXZDLEdBQUcsQ0FBQyxDQUFDLENBQUN3QyxLQUFLYixNQUFNO1lBQzVELE1BQU10RSxLQUFLUixJQUFJNEIsWUFBWSxDQUFDQyxTQUFTLENBQUM4RDtZQUN0QyxPQUFPO2dCQUFDbkY7Z0JBQUlSLElBQUk0QixZQUFZLENBQUNnRSxVQUFVLENBQUM1RixLQUFLOEU7YUFBTztRQUN0RDtJQUVKO0lBRUEsT0FBTzlFLElBQUk0QixZQUFZLENBQUNnRCxXQUFXLENBQUNMLHVCQUF1QixDQUFDdkUsS0FBS3dCLFNBQVN3RDtBQUM1RTtBQUVPLFNBQVN0RyxxQ0FDZHNCLEdBQWdCLEVBQ2hCd0IsT0FBNkY7SUFFN0YsTUFBTVUsUUFBUWxDLElBQUk0QixZQUFZLENBQUNPLGlCQUFpQixDQUFDMEQsMkJBQTJCO0lBQzVFLE1BQU03RyxXQUFXLENBQUM7SUFFbEIsSUFBSWtELE1BQU1SLFdBQVcsSUFBSUYsUUFBUXFFLDJCQUEyQixDQUFDbkUsV0FBVyxFQUN0RTFDLFNBQVMwQyxXQUFXLEdBQUcxQixJQUFJNEIsWUFBWSxDQUFDa0UsbUJBQW1CLENBQUM5RixLQUFLd0IsUUFBUXFFLDJCQUEyQixDQUFDbkUsV0FBVztJQUNsSCxJQUFJUSxNQUFNNkQsUUFBUSxJQUFJdkUsUUFBUXFFLDJCQUEyQixDQUFDRSxRQUFRLEVBQ2hFL0csU0FBUytHLFFBQVEsR0FBRy9GLElBQUk0QixZQUFZLENBQUNvRSxtQkFBbUIsQ0FBQ2hHLEtBQUs7UUFDNURnRyxxQkFBcUJ4RSxRQUFRcUUsMkJBQTJCLENBQUNFLFFBQVE7UUFDakVwRCxTQUFTbkIsUUFBUW1CLE9BQU87SUFDMUI7SUFFRixPQUFPM0MsSUFBSTRCLFlBQVksQ0FBQ2dELFdBQVcsQ0FBQ2lCLDJCQUEyQixDQUFDN0YsS0FBS3dCLFFBQVFxRSwyQkFBMkIsRUFBRTdHO0FBQzVHO0FBRU8sU0FBU1AsNkJBQ2R1QixHQUFnQixFQUNoQndCLE9BQW1DO0lBRW5DLE1BQU1VLFFBQVFsQyxJQUFJNEIsWUFBWSxDQUFDTyxpQkFBaUIsQ0FBQzJELG1CQUFtQjtJQUNwRSxNQUFNRyxXQUFXLENBQUM7SUFFbEIsSUFBSS9ELE1BQU0xQixFQUFFLElBQUlnQixRQUFRaEIsRUFBRSxFQUFFeUYsU0FBU3pGLEVBQUUsR0FBR1IsSUFBSTRCLFlBQVksQ0FBQ0MsU0FBUyxDQUFDTCxRQUFRaEIsRUFBRTtJQUMvRSxJQUFJMEIsTUFBTWhELElBQUksSUFBSXNDLFFBQVF0QyxJQUFJLEVBQUUrRyxTQUFTL0csSUFBSSxHQUFHc0MsUUFBUXRDLElBQUk7SUFDNUQsSUFBSWdELE1BQU1nRSxrQkFBa0IsSUFBSTFFLFFBQVEyRSxvQkFBb0IsRUFBRUYsU0FBU0Msa0JBQWtCLEdBQUcxRSxRQUFRMkUsb0JBQW9CO0lBQ3hILElBQUlqRSxNQUFNa0UsaUJBQWlCLElBQUk1RSxRQUFRNkUsbUJBQW1CLEVBQUVKLFNBQVNHLGlCQUFpQixHQUFHcEcsSUFBSTRCLFlBQVksQ0FBQ0MsU0FBUyxDQUFDTCxRQUFRNkUsbUJBQW1CO0lBQy9JLElBQUluRSxNQUFNb0Usd0JBQXdCLElBQUk5RSxRQUFRK0UsMEJBQTBCLEVBQUVOLFNBQVNLLHdCQUF3QixHQUFHOUUsUUFBUStFLDBCQUEwQjtJQUNoSixJQUFJckUsTUFBTXNFLHNCQUFzQixJQUFJaEYsUUFBUWlGLHdCQUF3QixFQUFFUixTQUFTTyxzQkFBc0IsR0FBR2hGLFFBQVFpRix3QkFBd0I7SUFFeEksT0FBT3pHLElBQUk0QixZQUFZLENBQUNnRCxXQUFXLENBQUNrQixtQkFBbUIsQ0FBQzlGLEtBQUt3QixTQUFTeUU7QUFDeEU7QUFFTyxTQUFTcEgsNkJBQ2RtQixHQUFnQixFQUNoQndCLE9BQTZFO0lBRTdFLE1BQU1VLFFBQVFsQyxJQUFJNEIsWUFBWSxDQUFDTyxpQkFBaUIsQ0FBQzZELG1CQUFtQjtJQUNwRSxNQUFNRCxXQUFXLENBQUM7SUFFbEIsSUFBSTdELE1BQU1oRCxJQUFJLElBQUlzQyxRQUFRd0UsbUJBQW1CLENBQUM5RyxJQUFJLEVBQUU2RyxTQUFTN0csSUFBSSxHQUFHc0MsUUFBUXdFLG1CQUFtQixDQUFDOUcsSUFBSTtJQUNwRyxJQUFJZ0QsTUFBTXdFLGdCQUFnQixJQUFJbEYsUUFBUXdFLG1CQUFtQixDQUFDVyxpQkFBaUIsRUFDekVaLFNBQVNXLGdCQUFnQixHQUFHbEYsUUFBUXdFLG1CQUFtQixDQUFDVyxpQkFBaUI7SUFDM0UsSUFBSXpFLE1BQU1ZLE9BQU8sSUFBSXRCLFFBQVF3RSxtQkFBbUIsQ0FBQ2xELE9BQU8sRUFDdERpRCxTQUFTakQsT0FBTyxHQUFHOUMsSUFBSTRCLFlBQVksQ0FBQ2tCLE9BQU8sQ0FBQzlDLEtBQUs7UUFBRThDLFNBQVN0QixRQUFRd0UsbUJBQW1CLENBQUNsRCxPQUFPO1FBQUVILFNBQVNuQixRQUFRbUIsT0FBTztJQUFDO0lBRTVILE9BQU8zQyxJQUFJNEIsWUFBWSxDQUFDZ0QsV0FBVyxDQUFDb0IsbUJBQW1CLENBQUNoRyxLQUFLd0IsUUFBUXdFLG1CQUFtQixFQUFFRDtBQUM1RiJ9
|
|
289
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvaW50ZXJhY3Rpb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRGlzY29yZEFwcGxpY2F0aW9uSW50ZWdyYXRpb25UeXBlLFxuICB0eXBlIERpc2NvcmRJbnRlcmFjdGlvbixcbiAgdHlwZSBEaXNjb3JkSW50ZXJhY3Rpb25DYWxsYmFjayxcbiAgdHlwZSBEaXNjb3JkSW50ZXJhY3Rpb25DYWxsYmFja1Jlc3BvbnNlLFxuICB0eXBlIERpc2NvcmRJbnRlcmFjdGlvbkRhdGFPcHRpb24sXG4gIHR5cGUgRGlzY29yZEludGVyYWN0aW9uRGF0YVJlc29sdmVkLFxuICB0eXBlIERpc2NvcmRJbnRlcmFjdGlvblJlc291cmNlLFxuICBJbnRlcmFjdGlvblJlc3BvbnNlVHlwZXMsXG4gIEludGVyYWN0aW9uVHlwZXMsXG4gIE1lc3NhZ2VGbGFncyxcbn0gZnJvbSAnQGRpc2NvcmRlbm8vdHlwZXMnXG5pbXBvcnQgeyBDb2xsZWN0aW9uIH0gZnJvbSAnQGRpc2NvcmRlbm8vdXRpbHMnXG5pbXBvcnQgdHlwZSB7XG4gIEF0dGFjaG1lbnQsXG4gIEJpZ1N0cmluZyxcbiAgQm90LFxuICBDb21wbGV0ZURlc2lyZWRQcm9wZXJ0aWVzLFxuICBEZXNpcmVkUHJvcGVydGllc0JlaGF2aW9yLFxuICBJbnRlcmFjdGlvbixcbiAgSW50ZXJhY3Rpb25DYWxsYmFjayxcbiAgSW50ZXJhY3Rpb25DYWxsYmFja1Jlc3BvbnNlLFxuICBJbnRlcmFjdGlvbkRhdGFPcHRpb24sXG4gIEludGVyYWN0aW9uRGF0YVJlc29sdmVkLFxuICBJbnRlcmFjdGlvblJlc29sdmVkRGF0YUNoYW5uZWwsXG4gIEludGVyYWN0aW9uUmVzb2x2ZWREYXRhTWVtYmVyLFxuICBJbnRlcmFjdGlvblJlc291cmNlLFxuICBNZXNzYWdlLFxuICBSb2xlLFxuICBTZXR1cERlc2lyZWRQcm9wcyxcbiAgVHJhbnNmb3JtZXJzRGVzaXJlZFByb3BlcnRpZXMsXG4gIFRyYW5zZm9ybVByb3BlcnR5LFxuICBVc2VyLFxufSBmcm9tICcuLi9pbmRleC5qcydcblxuLy8gQXNzdW1lIHdlIGhhdmUgYWxsIGRlc2lyZWQgcHJvcGVydGllcyBmb3IgdGhpcyBvciBlbHNlIHR5cGVzY3JpcHQgd2lsbCBnZXQgdmVyeSBjb25mdXNlZCBmb3IgdGhlIHJldHVybiB0eXBlcyBvZiB0aGVzZSBmdW5jdGlvbnMuXG4vLyBUaGlzIGlzIHVzZWQgYXMgYSBwcm90b3R5cGUsIHNvIHRoZSBhY3R1YWwgdHlwZSB3aXRoIHRoZSB1c2VyIGRlc2lyZWQgcHJvcGVydGllcyB3aWxsIGJlIHNldCBsYXRlci5cbmV4cG9ydCBjb25zdCBiYXNlSW50ZXJhY3Rpb246IFNldHVwRGVzaXJlZFByb3BzPEludGVyYWN0aW9uLCBDb21wbGV0ZURlc2lyZWRQcm9wZXJ0aWVzPHt9LCB0cnVlPiwgRGVzaXJlZFByb3BlcnRpZXNCZWhhdmlvci5SZW1vdmVLZXk+ID0ge1xuICAvLyBUaGlzIGFsbG93cyB0eXBlc2NyaXB0IHRvIHN0aWxsIGNoZWNrIGZvciB0eXBlIGVycm9ycyBvbiBmdW5jdGlvbnMgYmVsb3dcbiAgLi4uKHVuZGVmaW5lZCBhcyB1bmtub3duIGFzIFNldHVwRGVzaXJlZFByb3BzPEludGVyYWN0aW9uLCBDb21wbGV0ZURlc2lyZWRQcm9wZXJ0aWVzPHt9LCB0cnVlPiwgRGVzaXJlZFByb3BlcnRpZXNCZWhhdmlvci5SZW1vdmVLZXk+KSxcblxuICBhc3luYyByZXNwb25kKHJlc3BvbnNlLCBvcHRpb25zKSB7XG4gICAgbGV0IHR5cGUgPSBJbnRlcmFjdGlvblJlc3BvbnNlVHlwZXMuQ2hhbm5lbE1lc3NhZ2VXaXRoU291cmNlXG5cbiAgICAvLyBJZiB1c2VyIHByb3ZpZGVzIGEgc3RyaW5nLCBjaGFuZ2UgaXQgdG8gYSByZXNwb25zZSBvYmplY3RcbiAgICBpZiAodHlwZW9mIHJlc3BvbnNlID09PSAnc3RyaW5nJykgcmVzcG9uc2UgPSB7IGNvbnRlbnQ6IHJlc3BvbnNlIH1cblxuICAgIC8vIElmIHVzZXIgcHJvdmlkZXMgYW4gb2JqZWN0LCBkZXRlcm1pbmUgaWYgaXQgc2hvdWxkIGJlIGFuIGF1dG9jb21wbGV0ZSBvciBhIG1vZGFsIHJlc3BvbnNlXG4gICAgaWYgKHJlc3BvbnNlLnRpdGxlKSB0eXBlID0gSW50ZXJhY3Rpb25SZXNwb25zZVR5cGVzLk1vZGFsXG4gICAgaWYgKHRoaXMudHlwZSA9PT0gSW50ZXJhY3Rpb25UeXBlcy5BcHBsaWNhdGlvbkNvbW1hbmRBdXRvY29tcGxldGUpIHR5cGUgPSBJbnRlcmFjdGlvblJlc3BvbnNlVHlwZXMuQXBwbGljYXRpb25Db21tYW5kQXV0b2NvbXBsZXRlUmVzdWx0XG4gICAgaWYgKHR5cGUgPT09IEludGVyYWN0aW9uUmVzcG9uc2VUeXBlcy5DaGFubmVsTWVzc2FnZVdpdGhTb3VyY2UgJiYgb3B0aW9ucz8uaXNQcml2YXRlKSB7XG4gICAgICByZXNwb25zZS5mbGFncyA/Pz0gMFxuICAgICAgcmVzcG9uc2UuZmxhZ3MgfD0gTWVzc2FnZUZsYWdzLkVwaGVtZXJhbFxuICAgIH1cblxuICAgIC8vIFNpbmNlIHRoaXMgaGFzIGFscmVhZHkgYmVlbiBnaXZlbiBhIHJlc3BvbnNlLCBhbnkgZnVydGhlciByZXNwb25zZXMgbXVzdCBiZSBmb2xsb3d1cHMuXG4gICAgaWYgKHRoaXMuYWNrbm93bGVkZ2VkKSByZXR1cm4gYXdhaXQgdGhpcy5ib3QuaGVscGVycy5zZW5kRm9sbG93dXBNZXNzYWdlKHRoaXMudG9rZW4sIHJlc3BvbnNlKVxuXG4gICAgLy8gTW9kYWxzIGNhbm5vdCBiZSBjaGFpbmVkXG4gICAgaWYgKHRoaXMudHlwZSA9PT0gSW50ZXJhY3Rpb25UeXBlcy5Nb2RhbFN1Ym1pdCAmJiB0eXBlID09PSBJbnRlcmFjdGlvblJlc3BvbnNlVHlwZXMuTW9kYWwpXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCByZXNwb25kIHRvIGEgbW9kYWwgaW50ZXJhY3Rpb24gd2l0aCBhbm90aGVyIG1vZGFsLicpXG5cbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLmJvdC5oZWxwZXJzLnNlbmRJbnRlcmFjdGlvblJlc3BvbnNlKFxuICAgICAgdGhpcy5pZCxcbiAgICAgIHRoaXMudG9rZW4sXG4gICAgICB7IHR5cGUsIGRhdGE6IHJlc3BvbnNlIH0sXG4gICAgICB7IHdpdGhSZXNwb25zZTogb3B0aW9ucz8ud2l0aFJlc3BvbnNlIH0sXG4gICAgKVxuICAgIHRoaXMuYWNrbm93bGVkZ2VkID0gdHJ1ZVxuICAgIHJldHVybiByZXN1bHRcbiAgfSxcbiAgYXN5bmMgZWRpdChyZXNwb25zZSwgbWVzc2FnZUlkLCBvcHRpb25zKSB7XG4gICAgaWYgKHRoaXMudHlwZSA9PT0gSW50ZXJhY3Rpb25UeXBlcy5BcHBsaWNhdGlvbkNvbW1hbmRBdXRvY29tcGxldGUpIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGVkaXQgYW4gYXV0b2NvbXBsZXRlIGludGVyYWN0aW9uLicpXG5cbiAgICAvLyBJZiB1c2VyIHByb3ZpZGVzIGEgc3RyaW5nLCBjaGFuZ2UgaXQgdG8gYSByZXNwb25zZSBvYmplY3RcbiAgICBpZiAodHlwZW9mIHJlc3BvbnNlID09PSAnc3RyaW5nJykgcmVzcG9uc2UgPSB7IGNvbnRlbnQ6IHJlc3BvbnNlIH1cblxuICAgIGlmIChtZXNzYWdlSWQpIHtcbiAgICAgIHJldHVybiBhd2FpdCB0aGlzLmJvdD8uaGVscGVycy5lZGl0Rm9sbG93dXBNZXNzYWdlKHRoaXMudG9rZW4sIG1lc3NhZ2VJZCwgcmVzcG9uc2UpXG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLmFja25vd2xlZGdlZCkge1xuICAgICAgaWYgKHRoaXMudHlwZSAhPT0gSW50ZXJhY3Rpb25UeXBlcy5NZXNzYWdlQ29tcG9uZW50ICYmIHRoaXMudHlwZSAhPT0gSW50ZXJhY3Rpb25UeXBlcy5Nb2RhbFN1Ym1pdClcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVGhpcyBpbnRlcmFjdGlvbiBoYXMgbm90IGJlZW4gcmVzcG9uZGVkIHRvIHlldCBhbmQgdGhpcyBpc24ndCBhIE1lc3NhZ2VDb21wb25lbnQgb3IgTW9kYWxTdWJtaXQgaW50ZXJhY3Rpb24uXCIpXG5cbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuYm90LmhlbHBlcnMuc2VuZEludGVyYWN0aW9uUmVzcG9uc2UoXG4gICAgICAgIHRoaXMuaWQsXG4gICAgICAgIHRoaXMudG9rZW4sXG4gICAgICAgIHsgdHlwZTogSW50ZXJhY3Rpb25SZXNwb25zZVR5cGVzLlVwZGF0ZU1lc3NhZ2UsIGRhdGE6IHJlc3BvbnNlIH0sXG4gICAgICAgIG9wdGlvbnMsXG4gICAgICApXG4gICAgICB0aGlzLmFja25vd2xlZGdlZCA9IHRydWVcbiAgICAgIHJldHVybiByZXN1bHRcbiAgICB9XG5cbiAgICByZXR1cm4gYXdhaXQgdGhpcy5ib3QuaGVscGVycy5lZGl0T3JpZ2luYWxJbnRlcmFjdGlvblJlc3BvbnNlKHRoaXMudG9rZW4sIHJlc3BvbnNlKVxuICB9LFxuICBhc3luYyBkZWZlckVkaXQob3B0aW9ucykge1xuICAgIGlmICh0aGlzLnR5cGUgPT09IEludGVyYWN0aW9uVHlwZXMuQXBwbGljYXRpb25Db21tYW5kQXV0b2NvbXBsZXRlKSB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBlZGl0IGFuIGF1dG9jb21wbGV0ZSBpbnRlcmFjdGlvbi4nKVxuICAgIGlmICh0aGlzLmFja25vd2xlZGdlZCkgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgZGVmZXIgYW4gYWxyZWFkeSByZXNwb25kZWQgaW50ZXJhY3Rpb24uJylcblxuICAgIGlmICh0aGlzLnR5cGUgIT09IEludGVyYWN0aW9uVHlwZXMuTWVzc2FnZUNvbXBvbmVudCAmJiB0aGlzLnR5cGUgIT09IEludGVyYWN0aW9uVHlwZXMuTW9kYWxTdWJtaXQpXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJDYW5ub3QgZGVmZXIgdG8gdGhlbiBlZGl0IGFuIGludGVyYWN0aW9uIHRoYXQgaXNuJ3QgYSBNZXNzYWdlQ29tcG9uZW50IG9yIE1vZGFsU3VibWl0IGludGVyYWN0aW9uLlwiKVxuXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5ib3QuaGVscGVycy5zZW5kSW50ZXJhY3Rpb25SZXNwb25zZShcbiAgICAgIHRoaXMuaWQsXG4gICAgICB0aGlzLnRva2VuLFxuICAgICAgeyB0eXBlOiBJbnRlcmFjdGlvblJlc3BvbnNlVHlwZXMuRGVmZXJyZWRVcGRhdGVNZXNzYWdlIH0sXG4gICAgICBvcHRpb25zLFxuICAgIClcbiAgICB0aGlzLmFja25vd2xlZGdlZCA9IHRydWVcbiAgICByZXR1cm4gcmVzdWx0XG4gIH0sXG4gIGFzeW5jIGRlZmVyKGlzUHJpdmF0ZSwgb3B0aW9ucykge1xuICAgIGlmICh0aGlzLmFja25vd2xlZGdlZCkgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgZGVmZXIgYW4gYWxyZWFkeSByZXNwb25kZWQgaW50ZXJhY3Rpb24uJylcblxuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuYm90LmhlbHBlcnMuc2VuZEludGVyYWN0aW9uUmVzcG9uc2UoXG4gICAgICB0aGlzLmlkLFxuICAgICAgdGhpcy50b2tlbixcbiAgICAgIHtcbiAgICAgICAgdHlwZTogSW50ZXJhY3Rpb25SZXNwb25zZVR5cGVzLkRlZmVycmVkQ2hhbm5lbE1lc3NhZ2VXaXRoU291cmNlLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgZmxhZ3M6IGlzUHJpdmF0ZSA/IE1lc3NhZ2VGbGFncy5FcGhlbWVyYWwgOiB1bmRlZmluZWQsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgb3B0aW9ucyxcbiAgICApXG4gICAgdGhpcy5hY2tub3dsZWRnZWQgPSB0cnVlXG4gICAgcmV0dXJuIHJlc3VsdFxuICB9LFxuICBhc3luYyBkZWxldGUobWVzc2FnZUlkKSB7XG4gICAgaWYgKHRoaXMudHlwZSA9PT0gSW50ZXJhY3Rpb25UeXBlcy5BcHBsaWNhdGlvbkNvbW1hbmRBdXRvY29tcGxldGUpIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGRlbGV0ZSBhbiBhdXRvY29tcGxldGUgaW50ZXJhY3Rpb24nKVxuXG4gICAgaWYgKG1lc3NhZ2VJZCkgcmV0dXJuIGF3YWl0IHRoaXMuYm90Py5oZWxwZXJzLmRlbGV0ZUZvbGxvd3VwTWVzc2FnZSh0aGlzLnRva2VuLCBtZXNzYWdlSWQpXG4gICAgZWxzZSByZXR1cm4gYXdhaXQgdGhpcy5ib3Q/LmhlbHBlcnMuZGVsZXRlT3JpZ2luYWxJbnRlcmFjdGlvblJlc3BvbnNlKHRoaXMudG9rZW4pXG4gIH0sXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1JbnRlcmFjdGlvbihib3Q6IEJvdCwgcGF5bG9hZDogRGlzY29yZEludGVyYWN0aW9uLCBleHRyYT86IHsgc2hhcmRJZD86IG51bWJlciB9KTogSW50ZXJhY3Rpb24ge1xuICBjb25zdCBndWlsZElkID0gcGF5bG9hZC5ndWlsZF9pZCA/IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuZ3VpbGRfaWQpIDogdW5kZWZpbmVkXG5cbiAgY29uc3QgaW50ZXJhY3Rpb246IFNldHVwRGVzaXJlZFByb3BzPEludGVyYWN0aW9uLCBUcmFuc2Zvcm1lcnNEZXNpcmVkUHJvcGVydGllcywgRGVzaXJlZFByb3BlcnRpZXNCZWhhdmlvcj4gPSBPYmplY3QuY3JlYXRlKGJhc2VJbnRlcmFjdGlvbilcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLmludGVyYWN0aW9uXG5cbiAgaW50ZXJhY3Rpb24uYm90ID0gYm90XG4gIGludGVyYWN0aW9uLmFja25vd2xlZGdlZCA9IGZhbHNlXG5cbiAgaWYgKHByb3BzLmlkICYmIHBheWxvYWQuaWQpIGludGVyYWN0aW9uLmlkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5pZClcbiAgaWYgKHByb3BzLmFwcGxpY2F0aW9uSWQgJiYgcGF5bG9hZC5hcHBsaWNhdGlvbl9pZCkgaW50ZXJhY3Rpb24uYXBwbGljYXRpb25JZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuYXBwbGljYXRpb25faWQpXG4gIGlmIChwcm9wcy50eXBlICYmIHBheWxvYWQudHlwZSkgaW50ZXJhY3Rpb24udHlwZSA9IHBheWxvYWQudHlwZVxuICBpZiAocHJvcHMudG9rZW4gJiYgcGF5bG9hZC50b2tlbikgaW50ZXJhY3Rpb24udG9rZW4gPSBwYXlsb2FkLnRva2VuXG4gIGlmIChwcm9wcy52ZXJzaW9uICYmIHBheWxvYWQudmVyc2lvbikgaW50ZXJhY3Rpb24udmVyc2lvbiA9IHBheWxvYWQudmVyc2lvblxuICBpZiAocHJvcHMubG9jYWxlICYmIHBheWxvYWQubG9jYWxlKSBpbnRlcmFjdGlvbi5sb2NhbGUgPSBwYXlsb2FkLmxvY2FsZVxuICBpZiAocHJvcHMuZ3VpbGRMb2NhbGUgJiYgcGF5bG9hZC5ndWlsZF9sb2NhbGUpIGludGVyYWN0aW9uLmd1aWxkTG9jYWxlID0gcGF5bG9hZC5ndWlsZF9sb2NhbGVcbiAgaWYgKHByb3BzLmd1aWxkICYmIHBheWxvYWQuZ3VpbGQpXG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvciBwYXlsb2FkLmd1aWxkIGlzIGEgUGFydGlhbDxEaXNjb3JkR3VpbGQ+XG4gICAgaW50ZXJhY3Rpb24uZ3VpbGQgPSBib3QudHJhbnNmb3JtZXJzLmd1aWxkKGJvdCwgcGF5bG9hZC5ndWlsZCwgeyBzaGFyZElkOiBleHRyYT8uc2hhcmRJZCB9KVxuICBpZiAocHJvcHMuZ3VpbGRJZCAmJiBndWlsZElkKSBpbnRlcmFjdGlvbi5ndWlsZElkID0gZ3VpbGRJZFxuICBpZiAocHJvcHMudXNlcikge1xuICAgIGlmIChwYXlsb2FkLm1lbWJlcj8udXNlcikgaW50ZXJhY3Rpb24udXNlciA9IGJvdC50cmFuc2Zvcm1lcnMudXNlcihib3QsIHBheWxvYWQubWVtYmVyPy51c2VyKVxuICAgIGVsc2UgaWYgKHBheWxvYWQudXNlcikgaW50ZXJhY3Rpb24udXNlciA9IGJvdC50cmFuc2Zvcm1lcnMudXNlcihib3QsIHBheWxvYWQudXNlcilcbiAgfVxuICBpZiAocHJvcHMuYXBwUGVybWlzc2lvbnMgJiYgcGF5bG9hZC5hcHBfcGVybWlzc2lvbnMpIGludGVyYWN0aW9uLmFwcFBlcm1pc3Npb25zID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5hcHBfcGVybWlzc2lvbnMpXG4gIGlmIChwcm9wcy5tZXNzYWdlICYmIHBheWxvYWQubWVzc2FnZSkgaW50ZXJhY3Rpb24ubWVzc2FnZSA9IGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZShib3QsIHBheWxvYWQubWVzc2FnZSwgeyBzaGFyZElkOiBleHRyYT8uc2hhcmRJZCB9KVxuICBpZiAocHJvcHMuY2hhbm5lbCAmJiBwYXlsb2FkLmNoYW5uZWwpXG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvciBwYXlsb2FkLmNoYW5uZWwgaXMgYSBQYXJ0aWFsPD5cbiAgICBpbnRlcmFjdGlvbi5jaGFubmVsID0gYm90LnRyYW5zZm9ybWVycy5jaGFubmVsKGJvdCwgcGF5bG9hZC5jaGFubmVsLCB7IGd1aWxkSWQgfSlcbiAgaWYgKHByb3BzLmNoYW5uZWxJZCAmJiBwYXlsb2FkLmNoYW5uZWxfaWQpIGludGVyYWN0aW9uLmNoYW5uZWxJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuY2hhbm5lbF9pZClcbiAgaWYgKHByb3BzLm1lbWJlciAmJiBndWlsZElkICYmIHBheWxvYWQubWVtYmVyKVxuICAgIGludGVyYWN0aW9uLm1lbWJlciA9IGJvdC50cmFuc2Zvcm1lcnMubWVtYmVyKGJvdCwgcGF5bG9hZC5tZW1iZXIsIHtcbiAgICAgIGd1aWxkSWQsXG4gICAgICB1c2VySWQ6IHBheWxvYWQubWVtYmVyPy51c2VyLmlkID8/IHBheWxvYWQudXNlcj8uaWQsXG4gICAgfSlcbiAgaWYgKHByb3BzLmVudGl0bGVtZW50cyAmJiBwYXlsb2FkLmVudGl0bGVtZW50cykgaW50ZXJhY3Rpb24uZW50aXRsZW1lbnRzID0gcGF5bG9hZC5lbnRpdGxlbWVudHMubWFwKChlKSA9PiBib3QudHJhbnNmb3JtZXJzLmVudGl0bGVtZW50KGJvdCwgZSkpXG4gIGlmIChwcm9wcy5hdXRob3JpemluZ0ludGVncmF0aW9uT3duZXJzICYmIHBheWxvYWQuYXV0aG9yaXppbmdfaW50ZWdyYXRpb25fb3duZXJzKSB7XG4gICAgaW50ZXJhY3Rpb24uYXV0aG9yaXppbmdJbnRlZ3JhdGlvbk93bmVycyA9IHt9XG5cbiAgICBpZiAocGF5bG9hZC5hdXRob3JpemluZ19pbnRlZ3JhdGlvbl9vd25lcnNbJzAnXSlcbiAgICAgIGludGVyYWN0aW9uLmF1dGhvcml6aW5nSW50ZWdyYXRpb25Pd25lcnNbRGlzY29yZEFwcGxpY2F0aW9uSW50ZWdyYXRpb25UeXBlLkd1aWxkSW5zdGFsbF0gPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShcbiAgICAgICAgcGF5bG9hZC5hdXRob3JpemluZ19pbnRlZ3JhdGlvbl9vd25lcnNbJzAnXSxcbiAgICAgIClcbiAgICBpZiAocGF5bG9hZC5hdXRob3JpemluZ19pbnRlZ3JhdGlvbl9vd25lcnNbJzEnXSlcbiAgICAgIGludGVyYWN0aW9uLmF1dGhvcml6aW5nSW50ZWdyYXRpb25Pd25lcnNbRGlzY29yZEFwcGxpY2F0aW9uSW50ZWdyYXRpb25UeXBlLlVzZXJJbnN0YWxsXSA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKFxuICAgICAgICBwYXlsb2FkLmF1dGhvcml6aW5nX2ludGVncmF0aW9uX293bmVyc1snMSddLFxuICAgICAgKVxuICB9XG4gIGlmIChwcm9wcy5jb250ZXh0ICYmIHBheWxvYWQuY29udGV4dCkgaW50ZXJhY3Rpb24uY29udGV4dCA9IHBheWxvYWQuY29udGV4dFxuICBpZiAocHJvcHMuYXR0YWNobWVudFNpemVMaW1pdCAmJiBwYXlsb2FkLmF0dGFjaG1lbnRfc2l6ZV9saW1pdCkgaW50ZXJhY3Rpb24uYXR0YWNobWVudFNpemVMaW1pdCA9IHBheWxvYWQuYXR0YWNobWVudF9zaXplX2xpbWl0XG4gIGlmIChwcm9wcy5kYXRhICYmIHBheWxvYWQuZGF0YSkge1xuICAgIGludGVyYWN0aW9uLmRhdGEgPSB7XG4gICAgICB0eXBlOiBwYXlsb2FkLmRhdGEudHlwZSxcbiAgICAgIGNvbXBvbmVudFR5cGU6IHBheWxvYWQuZGF0YS5jb21wb25lbnRfdHlwZSxcbiAgICAgIGN1c3RvbUlkOiBwYXlsb2FkLmRhdGEuY3VzdG9tX2lkLFxuICAgICAgY29tcG9uZW50czogcGF5bG9hZC5kYXRhLmNvbXBvbmVudHM/Lm1hcCgoY29tcG9uZW50KSA9PiBib3QudHJhbnNmb3JtZXJzLmNvbXBvbmVudChib3QsIGNvbXBvbmVudCkpLFxuICAgICAgdmFsdWVzOiBwYXlsb2FkLmRhdGEudmFsdWVzLFxuICAgICAgaWQ6IHBheWxvYWQuZGF0YS5pZCA/IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuZGF0YS5pZCkgOiB1bmRlZmluZWQsXG4gICAgICBuYW1lOiBwYXlsb2FkLmRhdGEubmFtZSxcbiAgICAgIHJlc29sdmVkOiBwYXlsb2FkLmRhdGEucmVzb2x2ZWRcbiAgICAgICAgPyBib3QudHJhbnNmb3JtZXJzLmludGVyYWN0aW9uRGF0YVJlc29sdmVkKGJvdCwgcGF5bG9hZC5kYXRhLnJlc29sdmVkLCB7IHNoYXJkSWQ6IGV4dHJhPy5zaGFyZElkLCBndWlsZElkIH0pXG4gICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgb3B0aW9uczogcGF5bG9hZC5kYXRhLm9wdGlvbnM/Lm1hcCgob3B0KSA9PiBib3QudHJhbnNmb3JtZXJzLmludGVyYWN0aW9uRGF0YU9wdGlvbnMoYm90LCBvcHQpKSxcbiAgICAgIHRhcmdldElkOiBwYXlsb2FkLmRhdGEudGFyZ2V0X2lkID8gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5kYXRhLnRhcmdldF9pZCkgOiB1bmRlZmluZWQsXG4gICAgfVxuICB9XG5cbiAgLy8gVHlwZXNjcmlwdCBoYXMgYW4gaGFyZCB0aW1lIHdpdGggaW50ZXJhY3Rpb24uYm90LCBzbyB3ZSBuZWVkIHRvIHRlbGwgaGltIGZvciBzdXJlIHRoaXMgaW50ZXJhY3Rpb24gaXMgdGhlIG9mIHRoZSBjb3JyZWN0IHR5cGVcbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMuaW50ZXJhY3Rpb24oYm90LCBwYXlsb2FkLCBpbnRlcmFjdGlvbiBhcyB1bmtub3duIGFzIHR5cGVvZiBib3QudHJhbnNmb3JtZXJzLiRpbmZlcnJlZFR5cGVzLmludGVyYWN0aW9uLCBleHRyYSlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybUludGVyYWN0aW9uRGF0YU9wdGlvbihib3Q6IEJvdCwgb3B0aW9uOiBEaXNjb3JkSW50ZXJhY3Rpb25EYXRhT3B0aW9uKTogSW50ZXJhY3Rpb25EYXRhT3B0aW9uIHtcbiAgY29uc3Qgb3B0ID0ge1xuICAgIG5hbWU6IG9wdGlvbi5uYW1lLFxuICAgIHR5cGU6IG9wdGlvbi50eXBlLFxuICAgIHZhbHVlOiBvcHRpb24udmFsdWUsXG4gICAgb3B0aW9uczogb3B0aW9uLm9wdGlvbnMsXG4gICAgZm9jdXNlZDogb3B0aW9uLmZvY3VzZWQsXG4gIH0gYXMgSW50ZXJhY3Rpb25EYXRhT3B0aW9uXG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMuaW50ZXJhY3Rpb25EYXRhT3B0aW9ucyhib3QsIG9wdGlvbiwgb3B0KVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtSW50ZXJhY3Rpb25EYXRhUmVzb2x2ZWQoXG4gIGJvdDogQm90LFxuICBwYXlsb2FkOiBEaXNjb3JkSW50ZXJhY3Rpb25EYXRhUmVzb2x2ZWQsXG4gIGV4dHJhPzogeyBzaGFyZElkPzogbnVtYmVyOyBndWlsZElkPzogQmlnU3RyaW5nIH0sXG4pOiBUcmFuc2Zvcm1Qcm9wZXJ0eTxJbnRlcmFjdGlvbkRhdGFSZXNvbHZlZCwgVHJhbnNmb3JtZXJzRGVzaXJlZFByb3BlcnRpZXMsIERlc2lyZWRQcm9wZXJ0aWVzQmVoYXZpb3IuUmVtb3ZlS2V5PiB7XG4gIGNvbnN0IHRyYW5zZm9ybWVkOiBJbnRlcmFjdGlvbkRhdGFSZXNvbHZlZCA9IHt9XG5cbiAgaWYgKHBheWxvYWQubWVzc2FnZXMpIHtcbiAgICB0cmFuc2Zvcm1lZC5tZXNzYWdlcyA9IG5ldyBDb2xsZWN0aW9uKFxuICAgICAgT2JqZWN0LmVudHJpZXMocGF5bG9hZC5tZXNzYWdlcykubWFwKChbX2lkLCB2YWx1ZV0pID0+IHtcbiAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciBUT0RPOiBEZWFsIHdpdGggcGFydGlhbHNcbiAgICAgICAgY29uc3QgbWVzc2FnZSA9IGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZShib3QsIHZhbHVlLCB7IHNoYXJkSWQ6IGV4dHJhPy5zaGFyZElkIH0pIGFzIE1lc3NhZ2VcbiAgICAgICAgcmV0dXJuIFttZXNzYWdlLmlkLCBtZXNzYWdlXVxuICAgICAgfSksXG4gICAgKVxuICB9XG5cbiAgaWYgKHBheWxvYWQudXNlcnMpIHtcbiAgICB0cmFuc2Zvcm1lZC51c2VycyA9IG5ldyBDb2xsZWN0aW9uKFxuICAgICAgT2JqZWN0LmVudHJpZXMocGF5bG9hZC51c2VycykubWFwKChbX2lkLCB2YWx1ZV0pID0+IHtcbiAgICAgICAgY29uc3QgdXNlciA9IGJvdC50cmFuc2Zvcm1lcnMudXNlcihib3QsIHZhbHVlKSBhcyBVc2VyXG4gICAgICAgIHJldHVybiBbdXNlci5pZCwgdXNlcl1cbiAgICAgIH0pLFxuICAgIClcbiAgfVxuXG4gIGlmIChleHRyYT8uZ3VpbGRJZCAmJiBwYXlsb2FkLm1lbWJlcnMpIHtcbiAgICB0cmFuc2Zvcm1lZC5tZW1iZXJzID0gbmV3IENvbGxlY3Rpb24oXG4gICAgICBPYmplY3QuZW50cmllcyhwYXlsb2FkLm1lbWJlcnMpLm1hcCgoW2lkLCB2YWx1ZV0pID0+IHtcbiAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciBUT0RPOiBEZWFsIHdpdGggcGFydGlhbHMsIHZhbHVlIGlzIG1pc3NpbmcgMiB2YWx1ZXMgYnV0IHRoZSB0cmFuc2Zvcm1lciBjYW4gaGFuZGxlIGl0LCBkZXNwaXRlIHdoYXQgdGhlIHR5cGVzIHNheXNcbiAgICAgICAgY29uc3QgbWVtYmVyID0gYm90LnRyYW5zZm9ybWVycy5tZW1iZXIoYm90LCB2YWx1ZSwge1xuICAgICAgICAgIGd1aWxkSWQ6IGV4dHJhLmd1aWxkSWQsXG4gICAgICAgICAgdXNlcklkOiBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShpZCksXG4gICAgICAgIH0pIGFzIEludGVyYWN0aW9uUmVzb2x2ZWREYXRhTWVtYmVyPFRyYW5zZm9ybWVyc0Rlc2lyZWRQcm9wZXJ0aWVzLCBEZXNpcmVkUHJvcGVydGllc0JlaGF2aW9yPlxuXG4gICAgICAgIC8vIFdlIG5lZWQgdG8gdGVsbCBUUyB0aGF0IHdlIGFyZSBzdXJlIHRoZSBpZCBpcyBhIGJpZ2ludFxuICAgICAgICByZXR1cm4gW21lbWJlci5pZCBhcyBiaWdpbnQsIG1lbWJlcl1cbiAgICAgIH0pLFxuICAgIClcbiAgfVxuXG4gIGlmIChleHRyYT8uZ3VpbGRJZCAmJiBwYXlsb2FkLnJvbGVzKSB7XG4gICAgdHJhbnNmb3JtZWQucm9sZXMgPSBuZXcgQ29sbGVjdGlvbihcbiAgICAgIE9iamVjdC5lbnRyaWVzKHBheWxvYWQucm9sZXMpLm1hcCgoW19pZCwgdmFsdWVdKSA9PiB7XG4gICAgICAgIGNvbnN0IHJvbGUgPSBib3QudHJhbnNmb3JtZXJzLnJvbGUoYm90LCB2YWx1ZSwgeyBndWlsZElkOiBleHRyYS5ndWlsZElkIH0pIGFzIFJvbGVcbiAgICAgICAgcmV0dXJuIFtyb2xlLmlkLCByb2xlXVxuICAgICAgfSksXG4gICAgKVxuICB9XG5cbiAgaWYgKHBheWxvYWQuY2hhbm5lbHMpIHtcbiAgICB0cmFuc2Zvcm1lZC5jaGFubmVscyA9IG5ldyBDb2xsZWN0aW9uKFxuICAgICAgT2JqZWN0LmVudHJpZXMocGF5bG9hZC5jaGFubmVscykubWFwKChbX2lkLCB2YWx1ZV0pID0+IHtcbiAgICAgICAgY29uc3QgY2hhbm5lbCA9IGJvdC50cmFuc2Zvcm1lcnMuY2hhbm5lbChib3QsIHZhbHVlKSBhcyB1bmtub3duIGFzIEludGVyYWN0aW9uUmVzb2x2ZWREYXRhQ2hhbm5lbDxcbiAgICAgICAgICBUcmFuc2Zvcm1lcnNEZXNpcmVkUHJvcGVydGllcyxcbiAgICAgICAgICBEZXNpcmVkUHJvcGVydGllc0JlaGF2aW9yXG4gICAgICAgID5cbiAgICAgICAgLy8gV2UgbmVlZCB0byB0ZWxsIFRTIHRoYXQgd2UgYXJlIHN1cmUgdGhlIGlkIGlzIGEgYmlnaW50XG4gICAgICAgIHJldHVybiBbY2hhbm5lbC5pZCBhcyBiaWdpbnQsIGNoYW5uZWxdXG4gICAgICB9KSxcbiAgICApXG4gIH1cblxuICBpZiAocGF5bG9hZC5hdHRhY2htZW50cykge1xuICAgIHRyYW5zZm9ybWVkLmF0dGFjaG1lbnRzID0gbmV3IENvbGxlY3Rpb24oXG4gICAgICBPYmplY3QuZW50cmllcyhwYXlsb2FkLmF0dGFjaG1lbnRzKS5tYXAoKFtrZXksIHZhbHVlXSkgPT4ge1xuICAgICAgICBjb25zdCBpZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKGtleSlcbiAgICAgICAgY29uc3QgYXR0YWNobWVudCA9IGJvdC50cmFuc2Zvcm1lcnMuYXR0YWNobWVudChib3QsIHZhbHVlKSBhcyBBdHRhY2htZW50XG4gICAgICAgIHJldHVybiBbaWQsIGF0dGFjaG1lbnRdXG4gICAgICB9KSxcbiAgICApXG4gIH1cblxuICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jdXN0b21pemVycy5pbnRlcmFjdGlvbkRhdGFSZXNvbHZlZChib3QsIHBheWxvYWQsIHRyYW5zZm9ybWVkLCB7XG4gICAgc2hhcmRJZDogZXh0cmE/LnNoYXJkSWQsXG4gICAgZ3VpbGRJZDogZXh0cmE/Lmd1aWxkSWQgPyBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShleHRyYS5ndWlsZElkKSA6IHVuZGVmaW5lZCxcbiAgfSlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybUludGVyYWN0aW9uQ2FsbGJhY2tSZXNwb25zZShcbiAgYm90OiBCb3QsXG4gIHBheWxvYWQ6IERpc2NvcmRJbnRlcmFjdGlvbkNhbGxiYWNrUmVzcG9uc2UsXG4gIGV4dHJhPzogeyBzaGFyZElkPzogbnVtYmVyIH0sXG4pOiBJbnRlcmFjdGlvbkNhbGxiYWNrUmVzcG9uc2Uge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuaW50ZXJhY3Rpb25DYWxsYmFja1Jlc3BvbnNlXG4gIGNvbnN0IHJlc3BvbnNlID0ge30gYXMgU2V0dXBEZXNpcmVkUHJvcHM8SW50ZXJhY3Rpb25DYWxsYmFja1Jlc3BvbnNlLCBUcmFuc2Zvcm1lcnNEZXNpcmVkUHJvcGVydGllcywgRGVzaXJlZFByb3BlcnRpZXNCZWhhdmlvcj5cblxuICBpZiAocHJvcHMuaW50ZXJhY3Rpb24gJiYgcGF5bG9hZC5pbnRlcmFjdGlvbikgcmVzcG9uc2UuaW50ZXJhY3Rpb24gPSBib3QudHJhbnNmb3JtZXJzLmludGVyYWN0aW9uQ2FsbGJhY2soYm90LCBwYXlsb2FkLmludGVyYWN0aW9uKVxuICBpZiAocHJvcHMucmVzb3VyY2UgJiYgcGF5bG9hZC5yZXNvdXJjZSkgcmVzcG9uc2UucmVzb3VyY2UgPSBib3QudHJhbnNmb3JtZXJzLmludGVyYWN0aW9uUmVzb3VyY2UoYm90LCBwYXlsb2FkLnJlc291cmNlLCB7IHNoYXJkSWQ6IGV4dHJhPy5zaGFyZElkIH0pXG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMuaW50ZXJhY3Rpb25DYWxsYmFja1Jlc3BvbnNlKGJvdCwgcGF5bG9hZCwgcmVzcG9uc2UsIGV4dHJhKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtSW50ZXJhY3Rpb25DYWxsYmFjayhib3Q6IEJvdCwgcGF5bG9hZDogRGlzY29yZEludGVyYWN0aW9uQ2FsbGJhY2spOiBJbnRlcmFjdGlvbkNhbGxiYWNrIHtcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLmludGVyYWN0aW9uQ2FsbGJhY2tcbiAgY29uc3QgY2FsbGJhY2sgPSB7fSBhcyBTZXR1cERlc2lyZWRQcm9wczxJbnRlcmFjdGlvbkNhbGxiYWNrLCBUcmFuc2Zvcm1lcnNEZXNpcmVkUHJvcGVydGllcywgRGVzaXJlZFByb3BlcnRpZXNCZWhhdmlvcj5cblxuICBpZiAocHJvcHMuaWQgJiYgcGF5bG9hZC5pZCkgY2FsbGJhY2suaWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmlkKVxuICBpZiAocHJvcHMudHlwZSAmJiBwYXlsb2FkLnR5cGUpIGNhbGxiYWNrLnR5cGUgPSBwYXlsb2FkLnR5cGVcbiAgaWYgKHByb3BzLmFjdGl2aXR5SW5zdGFuY2VJZCAmJiBwYXlsb2FkLmFjdGl2aXR5X2luc3RhbmNlX2lkKSBjYWxsYmFjay5hY3Rpdml0eUluc3RhbmNlSWQgPSBwYXlsb2FkLmFjdGl2aXR5X2luc3RhbmNlX2lkXG4gIGlmIChwcm9wcy5yZXNwb25zZU1lc3NhZ2VJZCAmJiBwYXlsb2FkLnJlc3BvbnNlX21lc3NhZ2VfaWQpIGNhbGxiYWNrLnJlc3BvbnNlTWVzc2FnZUlkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5yZXNwb25zZV9tZXNzYWdlX2lkKVxuICBpZiAocHJvcHMucmVzcG9uc2VNZXNzYWdlRXBoZW1lcmFsICYmIHBheWxvYWQucmVzcG9uc2VfbWVzc2FnZV9lcGhlbWVyYWwpIGNhbGxiYWNrLnJlc3BvbnNlTWVzc2FnZUVwaGVtZXJhbCA9IHBheWxvYWQucmVzcG9uc2VfbWVzc2FnZV9lcGhlbWVyYWxcbiAgaWYgKHByb3BzLnJlc3BvbnNlTWVzc2FnZUxvYWRpbmcgJiYgcGF5bG9hZC5yZXNwb25zZV9tZXNzYWdlX2xvYWRpbmcpIGNhbGxiYWNrLnJlc3BvbnNlTWVzc2FnZUxvYWRpbmcgPSBwYXlsb2FkLnJlc3BvbnNlX21lc3NhZ2VfbG9hZGluZ1xuXG4gIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmN1c3RvbWl6ZXJzLmludGVyYWN0aW9uQ2FsbGJhY2soYm90LCBwYXlsb2FkLCBjYWxsYmFjaylcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybUludGVyYWN0aW9uUmVzb3VyY2UoYm90OiBCb3QsIHBheWxvYWQ6IERpc2NvcmRJbnRlcmFjdGlvblJlc291cmNlLCBleHRyYT86IHsgc2hhcmRJZD86IG51bWJlciB9KTogSW50ZXJhY3Rpb25SZXNvdXJjZSB7XG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5pbnRlcmFjdGlvblJlc291cmNlXG4gIGNvbnN0IHJlc291cmNlID0ge30gYXMgU2V0dXBEZXNpcmVkUHJvcHM8SW50ZXJhY3Rpb25SZXNvdXJjZSwgVHJhbnNmb3JtZXJzRGVzaXJlZFByb3BlcnRpZXMsIERlc2lyZWRQcm9wZXJ0aWVzQmVoYXZpb3I+XG5cbiAgaWYgKHByb3BzLnR5cGUgJiYgcGF5bG9hZC50eXBlKSByZXNvdXJjZS50eXBlID0gcGF5bG9hZC50eXBlXG4gIGlmIChwcm9wcy5hY3Rpdml0eUluc3RhbmNlICYmIHBheWxvYWQuYWN0aXZpdHlfaW5zdGFuY2UpIHJlc291cmNlLmFjdGl2aXR5SW5zdGFuY2UgPSBwYXlsb2FkLmFjdGl2aXR5X2luc3RhbmNlXG4gIGlmIChwcm9wcy5tZXNzYWdlICYmIHBheWxvYWQubWVzc2FnZSkgcmVzb3VyY2UubWVzc2FnZSA9IGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZShib3QsIHBheWxvYWQubWVzc2FnZSwgeyBzaGFyZElkOiBleHRyYT8uc2hhcmRJZCB9KVxuXG4gIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmN1c3RvbWl6ZXJzLmludGVyYWN0aW9uUmVzb3VyY2UoYm90LCBwYXlsb2FkLCByZXNvdXJjZSwgZXh0cmEpXG59XG4iXSwibmFtZXMiOlsiYmFzZUludGVyYWN0aW9uIiwidHJhbnNmb3JtSW50ZXJhY3Rpb24iLCJ0cmFuc2Zvcm1JbnRlcmFjdGlvbkNhbGxiYWNrIiwidHJhbnNmb3JtSW50ZXJhY3Rpb25DYWxsYmFja1Jlc3BvbnNlIiwidHJhbnNmb3JtSW50ZXJhY3Rpb25EYXRhT3B0aW9uIiwidHJhbnNmb3JtSW50ZXJhY3Rpb25EYXRhUmVzb2x2ZWQiLCJ0cmFuc2Zvcm1JbnRlcmFjdGlvblJlc291cmNlIiwidW5kZWZpbmVkIiwicmVzcG9uZCIsInJlc3BvbnNlIiwib3B0aW9ucyIsInR5cGUiLCJJbnRlcmFjdGlvblJlc3BvbnNlVHlwZXMiLCJDaGFubmVsTWVzc2FnZVdpdGhTb3VyY2UiLCJjb250ZW50IiwidGl0bGUiLCJNb2RhbCIsIkludGVyYWN0aW9uVHlwZXMiLCJBcHBsaWNhdGlvbkNvbW1hbmRBdXRvY29tcGxldGUiLCJBcHBsaWNhdGlvbkNvbW1hbmRBdXRvY29tcGxldGVSZXN1bHQiLCJpc1ByaXZhdGUiLCJmbGFncyIsIk1lc3NhZ2VGbGFncyIsIkVwaGVtZXJhbCIsImFja25vd2xlZGdlZCIsImJvdCIsImhlbHBlcnMiLCJzZW5kRm9sbG93dXBNZXNzYWdlIiwidG9rZW4iLCJNb2RhbFN1Ym1pdCIsIkVycm9yIiwicmVzdWx0Iiwic2VuZEludGVyYWN0aW9uUmVzcG9uc2UiLCJpZCIsImRhdGEiLCJ3aXRoUmVzcG9uc2UiLCJlZGl0IiwibWVzc2FnZUlkIiwiZWRpdEZvbGxvd3VwTWVzc2FnZSIsIk1lc3NhZ2VDb21wb25lbnQiLCJVcGRhdGVNZXNzYWdlIiwiZWRpdE9yaWdpbmFsSW50ZXJhY3Rpb25SZXNwb25zZSIsImRlZmVyRWRpdCIsIkRlZmVycmVkVXBkYXRlTWVzc2FnZSIsImRlZmVyIiwiRGVmZXJyZWRDaGFubmVsTWVzc2FnZVdpdGhTb3VyY2UiLCJkZWxldGUiLCJkZWxldGVGb2xsb3d1cE1lc3NhZ2UiLCJkZWxldGVPcmlnaW5hbEludGVyYWN0aW9uUmVzcG9uc2UiLCJwYXlsb2FkIiwiZXh0cmEiLCJndWlsZElkIiwiZ3VpbGRfaWQiLCJ0cmFuc2Zvcm1lcnMiLCJzbm93Zmxha2UiLCJpbnRlcmFjdGlvbiIsIk9iamVjdCIsImNyZWF0ZSIsInByb3BzIiwiZGVzaXJlZFByb3BlcnRpZXMiLCJhcHBsaWNhdGlvbklkIiwiYXBwbGljYXRpb25faWQiLCJ2ZXJzaW9uIiwibG9jYWxlIiwiZ3VpbGRMb2NhbGUiLCJndWlsZF9sb2NhbGUiLCJndWlsZCIsInNoYXJkSWQiLCJ1c2VyIiwibWVtYmVyIiwiYXBwUGVybWlzc2lvbnMiLCJhcHBfcGVybWlzc2lvbnMiLCJtZXNzYWdlIiwiY2hhbm5lbCIsImNoYW5uZWxJZCIsImNoYW5uZWxfaWQiLCJ1c2VySWQiLCJlbnRpdGxlbWVudHMiLCJtYXAiLCJlIiwiZW50aXRsZW1lbnQiLCJhdXRob3JpemluZ0ludGVncmF0aW9uT3duZXJzIiwiYXV0aG9yaXppbmdfaW50ZWdyYXRpb25fb3duZXJzIiwiRGlzY29yZEFwcGxpY2F0aW9uSW50ZWdyYXRpb25UeXBlIiwiR3VpbGRJbnN0YWxsIiwiVXNlckluc3RhbGwiLCJjb250ZXh0IiwiYXR0YWNobWVudFNpemVMaW1pdCIsImF0dGFjaG1lbnRfc2l6ZV9saW1pdCIsImNvbXBvbmVudFR5cGUiLCJjb21wb25lbnRfdHlwZSIsImN1c3RvbUlkIiwiY3VzdG9tX2lkIiwiY29tcG9uZW50cyIsImNvbXBvbmVudCIsInZhbHVlcyIsIm5hbWUiLCJyZXNvbHZlZCIsImludGVyYWN0aW9uRGF0YVJlc29sdmVkIiwib3B0IiwiaW50ZXJhY3Rpb25EYXRhT3B0aW9ucyIsInRhcmdldElkIiwidGFyZ2V0X2lkIiwiY3VzdG9taXplcnMiLCJvcHRpb24iLCJ2YWx1ZSIsImZvY3VzZWQiLCJ0cmFuc2Zvcm1lZCIsIm1lc3NhZ2VzIiwiQ29sbGVjdGlvbiIsImVudHJpZXMiLCJfaWQiLCJ1c2VycyIsIm1lbWJlcnMiLCJyb2xlcyIsInJvbGUiLCJjaGFubmVscyIsImF0dGFjaG1lbnRzIiwia2V5IiwiYXR0YWNobWVudCIsImludGVyYWN0aW9uQ2FsbGJhY2tSZXNwb25zZSIsImludGVyYWN0aW9uQ2FsbGJhY2siLCJyZXNvdXJjZSIsImludGVyYWN0aW9uUmVzb3VyY2UiLCJjYWxsYmFjayIsImFjdGl2aXR5SW5zdGFuY2VJZCIsImFjdGl2aXR5X2luc3RhbmNlX2lkIiwicmVzcG9uc2VNZXNzYWdlSWQiLCJyZXNwb25zZV9tZXNzYWdlX2lkIiwicmVzcG9uc2VNZXNzYWdlRXBoZW1lcmFsIiwicmVzcG9uc2VfbWVzc2FnZV9lcGhlbWVyYWwiLCJyZXNwb25zZU1lc3NhZ2VMb2FkaW5nIiwicmVzcG9uc2VfbWVzc2FnZV9sb2FkaW5nIiwiYWN0aXZpdHlJbnN0YW5jZSIsImFjdGl2aXR5X2luc3RhbmNlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztRQXFDYUE7ZUFBQUE7O1FBcUdHQztlQUFBQTs7UUFnTEFDO2VBQUFBOztRQWRBQztlQUFBQTs7UUEzRkFDO2VBQUFBOztRQVlBQztlQUFBQTs7UUEyR0FDO2VBQUFBOzs7dUJBN1RUO3VCQUNvQjtBQXlCcEIsTUFBTU4sa0JBQTRIO0lBQ3ZJLDJFQUEyRTtJQUMzRSxHQUFJTyxTQUFTO0lBRWIsTUFBTUMsU0FBUUMsUUFBUSxFQUFFQyxPQUFPO1FBQzdCLElBQUlDLE9BQU9DLCtCQUF3QixDQUFDQyx3QkFBd0I7UUFFNUQsNERBQTREO1FBQzVELElBQUksT0FBT0osYUFBYSxVQUFVQSxXQUFXO1lBQUVLLFNBQVNMO1FBQVM7UUFFakUsNEZBQTRGO1FBQzVGLElBQUlBLFNBQVNNLEtBQUssRUFBRUosT0FBT0MsK0JBQXdCLENBQUNJLEtBQUs7UUFDekQsSUFBSSxJQUFJLENBQUNMLElBQUksS0FBS00sdUJBQWdCLENBQUNDLDhCQUE4QixFQUFFUCxPQUFPQywrQkFBd0IsQ0FBQ08sb0NBQW9DO1FBQ3ZJLElBQUlSLFNBQVNDLCtCQUF3QixDQUFDQyx3QkFBd0IsSUFBSUgsU0FBU1UsV0FBVztZQUNwRlgsU0FBU1ksS0FBSyxLQUFLO1lBQ25CWixTQUFTWSxLQUFLLElBQUlDLG1CQUFZLENBQUNDLFNBQVM7UUFDMUM7UUFFQSx5RkFBeUY7UUFDekYsSUFBSSxJQUFJLENBQUNDLFlBQVksRUFBRSxPQUFPLE1BQU0sSUFBSSxDQUFDQyxHQUFHLENBQUND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
|
|
@@ -9,44 +9,43 @@ Object.defineProperty(exports, "transformInvite", {
|
|
|
9
9
|
}
|
|
10
10
|
});
|
|
11
11
|
const _index = require("../index.cjs");
|
|
12
|
-
function transformInvite(bot, payload) {
|
|
12
|
+
function transformInvite(bot, payload, extra) {
|
|
13
13
|
const props = bot.transformers.desiredProperties.invite;
|
|
14
14
|
const invite = {};
|
|
15
|
-
if (props.type && 'type' in payload
|
|
16
|
-
if (props.code && payload.
|
|
17
|
-
if (props.createdAt && payload.
|
|
18
|
-
if (props.inviter && payload.
|
|
19
|
-
if (props.maxAge) invite.maxAge = payload.
|
|
20
|
-
if (props.maxUses) invite.maxUses = payload.
|
|
21
|
-
if (props.targetType && payload.
|
|
22
|
-
if (props.targetUser && payload.
|
|
23
|
-
if (props.targetApplication && payload.
|
|
24
|
-
|
|
25
|
-
shardId:
|
|
15
|
+
if (props.type && 'type' in payload) invite.type = payload.type;
|
|
16
|
+
if (props.code && payload.code) invite.code = payload.code;
|
|
17
|
+
if (props.createdAt && payload.created_at) invite.createdAt = Date.parse(payload.created_at);
|
|
18
|
+
if (props.inviter && payload.inviter) invite.inviter = bot.transformers.user(bot, payload.inviter);
|
|
19
|
+
if (props.maxAge) invite.maxAge = payload.max_age;
|
|
20
|
+
if (props.maxUses) invite.maxUses = payload.max_uses;
|
|
21
|
+
if (props.targetType && payload.target_type) invite.targetType = payload.target_type;
|
|
22
|
+
if (props.targetUser && payload.target_user) invite.targetUser = bot.transformers.user(bot, payload.target_user);
|
|
23
|
+
if (props.targetApplication && payload.target_application) // @ts-expect-error TODO: Partials
|
|
24
|
+
invite.targetApplication = bot.transformers.application(bot, payload.target_application, {
|
|
25
|
+
shardId: extra?.shardId
|
|
26
26
|
});
|
|
27
|
-
if (props.temporary && payload.
|
|
28
|
-
if (props.uses && payload.
|
|
29
|
-
if ((0, _index.isInviteWithMetadata)(payload
|
|
30
|
-
if (props.channelId && payload.
|
|
31
|
-
if (props.guildId && payload.
|
|
32
|
-
if (props.approximateMemberCount && payload.
|
|
33
|
-
if (props.approximatePresenceCount && payload.
|
|
34
|
-
if (props.guildScheduledEvent && payload.
|
|
35
|
-
if (props.stageInstance &&
|
|
36
|
-
invite.stageInstance = bot.transformers.inviteStageInstance(bot, {
|
|
37
|
-
|
|
38
|
-
guildId: invite.guildId
|
|
27
|
+
if (props.temporary && payload.temporary) invite.temporary = payload.temporary;
|
|
28
|
+
if (props.uses && payload.uses) invite.uses = payload.uses;
|
|
29
|
+
if ((0, _index.isInviteWithMetadata)(payload)) {
|
|
30
|
+
if (props.channelId && payload.channel?.id) invite.channelId = bot.transformers.snowflake(payload.channel.id);
|
|
31
|
+
if (props.guildId && payload.guild?.id) invite.guildId = bot.transformers.snowflake(payload.guild.id);
|
|
32
|
+
if (props.approximateMemberCount && payload.approximate_member_count) invite.approximateMemberCount = payload.approximate_member_count;
|
|
33
|
+
if (props.approximatePresenceCount && payload.approximate_presence_count !== undefined) invite.approximatePresenceCount = payload.approximate_presence_count;
|
|
34
|
+
if (props.guildScheduledEvent && payload.guild_scheduled_event) invite.guildScheduledEvent = bot.transformers.scheduledEvent(bot, payload.guild_scheduled_event);
|
|
35
|
+
if (props.stageInstance && payload.guild?.id && payload.stage_instance) {
|
|
36
|
+
invite.stageInstance = bot.transformers.inviteStageInstance(bot, payload.stage_instance, {
|
|
37
|
+
guildId: payload.guild.id
|
|
39
38
|
});
|
|
40
39
|
}
|
|
41
|
-
if (props.expiresAt && payload.
|
|
42
|
-
invite.expiresAt = Date.parse(payload.
|
|
40
|
+
if (props.expiresAt && payload.expires_at) {
|
|
41
|
+
invite.expiresAt = Date.parse(payload.expires_at);
|
|
43
42
|
}
|
|
44
|
-
if (props.flags && payload.
|
|
43
|
+
if (props.flags && payload.flags) invite.flags = new _index.ToggleBitfield(payload.flags);
|
|
45
44
|
} else {
|
|
46
|
-
if (props.channelId && payload.
|
|
47
|
-
if (props.guildId && payload.
|
|
45
|
+
if (props.channelId && payload.channel_id) invite.channelId = bot.transformers.snowflake(payload.channel_id);
|
|
46
|
+
if (props.guildId && payload.guild_id) invite.guildId = bot.transformers.snowflake(payload.guild_id);
|
|
48
47
|
}
|
|
49
|
-
return bot.transformers.customizers.invite(bot, payload
|
|
48
|
+
return bot.transformers.customizers.invite(bot, payload, invite, extra);
|
|
50
49
|
}
|
|
51
50
|
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvaW52aXRlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRGlzY29yZEludml0ZUNyZWF0ZSwgRGlzY29yZEludml0ZU1ldGFkYXRhIH0gZnJvbSAnQGRpc2NvcmRlbm8vdHlwZXMnXG5pbXBvcnQge1xuICB0eXBlIEJvdCxcbiAgdHlwZSBEZXNpcmVkUHJvcGVydGllc0JlaGF2aW9yLFxuICB0eXBlIEludml0ZSxcbiAgaXNJbnZpdGVXaXRoTWV0YWRhdGEsXG4gIHR5cGUgU2V0dXBEZXNpcmVkUHJvcHMsXG4gIFRvZ2dsZUJpdGZpZWxkLFxuICB0eXBlIFRyYW5zZm9ybWVyc0Rlc2lyZWRQcm9wZXJ0aWVzLFxufSBmcm9tICcuLi9pbmRleC5qcydcblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybUludml0ZShib3Q6IEJvdCwgcGF5bG9hZDogRGlzY29yZEludml0ZUNyZWF0ZSB8IERpc2NvcmRJbnZpdGVNZXRhZGF0YSwgZXh0cmE/OiB7IHNoYXJkSWQ/OiBudW1iZXIgfSk6IEludml0ZSB7XG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5pbnZpdGVcbiAgY29uc3QgaW52aXRlID0ge30gYXMgU2V0dXBEZXNpcmVkUHJvcHM8SW52aXRlLCBUcmFuc2Zvcm1lcnNEZXNpcmVkUHJvcGVydGllcywgRGVzaXJlZFByb3BlcnRpZXNCZWhhdmlvcj5cblxuICBpZiAocHJvcHMudHlwZSAmJiAndHlwZScgaW4gcGF5bG9hZCkgaW52aXRlLnR5cGUgPSBwYXlsb2FkLnR5cGVcbiAgaWYgKHByb3BzLmNvZGUgJiYgcGF5bG9hZC5jb2RlKSBpbnZpdGUuY29kZSA9IHBheWxvYWQuY29kZVxuICBpZiAocHJvcHMuY3JlYXRlZEF0ICYmIHBheWxvYWQuY3JlYXRlZF9hdCkgaW52aXRlLmNyZWF0ZWRBdCA9IERhdGUucGFyc2UocGF5bG9hZC5jcmVhdGVkX2F0KVxuICBpZiAocHJvcHMuaW52aXRlciAmJiBwYXlsb2FkLmludml0ZXIpIGludml0ZS5pbnZpdGVyID0gYm90LnRyYW5zZm9ybWVycy51c2VyKGJvdCwgcGF5bG9hZC5pbnZpdGVyKVxuICBpZiAocHJvcHMubWF4QWdlKSBpbnZpdGUubWF4QWdlID0gcGF5bG9hZC5tYXhfYWdlXG4gIGlmIChwcm9wcy5tYXhVc2VzKSBpbnZpdGUubWF4VXNlcyA9IHBheWxvYWQubWF4X3VzZXNcbiAgaWYgKHByb3BzLnRhcmdldFR5cGUgJiYgcGF5bG9hZC50YXJnZXRfdHlwZSkgaW52aXRlLnRhcmdldFR5cGUgPSBwYXlsb2FkLnRhcmdldF90eXBlXG4gIGlmIChwcm9wcy50YXJnZXRVc2VyICYmIHBheWxvYWQudGFyZ2V0X3VzZXIpIGludml0ZS50YXJnZXRVc2VyID0gYm90LnRyYW5zZm9ybWVycy51c2VyKGJvdCwgcGF5bG9hZC50YXJnZXRfdXNlcilcbiAgaWYgKHByb3BzLnRhcmdldEFwcGxpY2F0aW9uICYmIHBheWxvYWQudGFyZ2V0X2FwcGxpY2F0aW9uKVxuICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgVE9ETzogUGFydGlhbHNcbiAgICBpbnZpdGUudGFyZ2V0QXBwbGljYXRpb24gPSBib3QudHJhbnNmb3JtZXJzLmFwcGxpY2F0aW9uKGJvdCwgcGF5bG9hZC50YXJnZXRfYXBwbGljYXRpb24sIHsgc2hhcmRJZDogZXh0cmE/LnNoYXJkSWQgfSlcbiAgaWYgKHByb3BzLnRlbXBvcmFyeSAmJiBwYXlsb2FkLnRlbXBvcmFyeSkgaW52aXRlLnRlbXBvcmFyeSA9IHBheWxvYWQudGVtcG9yYXJ5XG4gIGlmIChwcm9wcy51c2VzICYmIHBheWxvYWQudXNlcykgaW52aXRlLnVzZXMgPSBwYXlsb2FkLnVzZXNcblxuICBpZiAoaXNJbnZpdGVXaXRoTWV0YWRhdGEocGF5bG9hZCkpIHtcbiAgICBpZiAocHJvcHMuY2hhbm5lbElkICYmIHBheWxvYWQuY2hhbm5lbD8uaWQpIGludml0ZS5jaGFubmVsSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmNoYW5uZWwuaWQpXG4gICAgaWYgKHByb3BzLmd1aWxkSWQgJiYgcGF5bG9hZC5ndWlsZD8uaWQpIGludml0ZS5ndWlsZElkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5ndWlsZC5pZClcbiAgICBpZiAocHJvcHMuYXBwcm94aW1hdGVNZW1iZXJDb3VudCAmJiBwYXlsb2FkLmFwcHJveGltYXRlX21lbWJlcl9jb3VudCkgaW52aXRlLmFwcHJveGltYXRlTWVtYmVyQ291bnQgPSBwYXlsb2FkLmFwcHJveGltYXRlX21lbWJlcl9jb3VudFxuICAgIGlmIChwcm9wcy5hcHByb3hpbWF0ZVByZXNlbmNlQ291bnQgJiYgcGF5bG9hZC5hcHByb3hpbWF0ZV9wcmVzZW5jZV9jb3VudCAhPT0gdW5kZWZpbmVkKVxuICAgICAgaW52aXRlLmFwcHJveGltYXRlUHJlc2VuY2VDb3VudCA9IHBheWxvYWQuYXBwcm94aW1hdGVfcHJlc2VuY2VfY291bnRcbiAgICBpZiAocHJvcHMuZ3VpbGRTY2hlZHVsZWRFdmVudCAmJiBwYXlsb2FkLmd1aWxkX3NjaGVkdWxlZF9ldmVudClcbiAgICAgIGludml0ZS5ndWlsZFNjaGVkdWxlZEV2ZW50ID0gYm90LnRyYW5zZm9ybWVycy5zY2hlZHVsZWRFdmVudChib3QsIHBheWxvYWQuZ3VpbGRfc2NoZWR1bGVkX2V2ZW50KVxuICAgIGlmIChwcm9wcy5zdGFnZUluc3RhbmNlICYmIHBheWxvYWQuZ3VpbGQ/LmlkICYmIHBheWxvYWQuc3RhZ2VfaW5zdGFuY2UpIHtcbiAgICAgIGludml0ZS5zdGFnZUluc3RhbmNlID0gYm90LnRyYW5zZm9ybWVycy5pbnZpdGVTdGFnZUluc3RhbmNlKGJvdCwgcGF5bG9hZC5zdGFnZV9pbnN0YW5jZSwgeyBndWlsZElkOiBwYXlsb2FkLmd1aWxkLmlkIH0pXG4gICAgfVxuICAgIGlmIChwcm9wcy5leHBpcmVzQXQgJiYgcGF5bG9hZC5leHBpcmVzX2F0KSB7XG4gICAgICBpbnZpdGUuZXhwaXJlc0F0ID0gRGF0ZS5wYXJzZShwYXlsb2FkLmV4cGlyZXNfYXQpXG4gICAgfVxuICAgIGlmIChwcm9wcy5mbGFncyAmJiBwYXlsb2FkLmZsYWdzKSBpbnZpdGUuZmxhZ3MgPSBuZXcgVG9nZ2xlQml0ZmllbGQocGF5bG9hZC5mbGFncylcbiAgfSBlbHNlIHtcbiAgICBpZiAocHJvcHMuY2hhbm5lbElkICYmIHBheWxvYWQuY2hhbm5lbF9pZCkgaW52aXRlLmNoYW5uZWxJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuY2hhbm5lbF9pZClcbiAgICBpZiAocHJvcHMuZ3VpbGRJZCAmJiBwYXlsb2FkLmd1aWxkX2lkKSBpbnZpdGUuZ3VpbGRJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuZ3VpbGRfaWQpXG4gIH1cblxuICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jdXN0b21pemVycy5pbnZpdGUoYm90LCBwYXlsb2FkLCBpbnZpdGUsIGV4dHJhKVxufVxuIl0sIm5hbWVzIjpbInRyYW5zZm9ybUludml0ZSIsImJvdCIsInBheWxvYWQiLCJleHRyYSIsInByb3BzIiwidHJhbnNmb3JtZXJzIiwiZGVzaXJlZFByb3BlcnRpZXMiLCJpbnZpdGUiLCJ0eXBlIiwiY29kZSIsImNyZWF0ZWRBdCIsImNyZWF0ZWRfYXQiLCJEYXRlIiwicGFyc2UiLCJpbnZpdGVyIiwidXNlciIsIm1heEFnZSIsIm1heF9hZ2UiLCJtYXhVc2VzIiwibWF4X3VzZXMiLCJ0YXJnZXRUeXBlIiwidGFyZ2V0X3R5cGUiLCJ0YXJnZXRVc2VyIiwidGFyZ2V0X3VzZXIiLCJ0YXJnZXRBcHBsaWNhdGlvbiIsInRhcmdldF9hcHBsaWNhdGlvbiIsImFwcGxpY2F0aW9uIiwic2hhcmRJZCIsInRlbXBvcmFyeSIsInVzZXMiLCJpc0ludml0ZVdpdGhNZXRhZGF0YSIsImNoYW5uZWxJZCIsImNoYW5uZWwiLCJpZCIsInNub3dmbGFrZSIsImd1aWxkSWQiLCJndWlsZCIsImFwcHJveGltYXRlTWVtYmVyQ291bnQiLCJhcHByb3hpbWF0ZV9tZW1iZXJfY291bnQiLCJhcHByb3hpbWF0ZVByZXNlbmNlQ291bnQiLCJhcHByb3hpbWF0ZV9wcmVzZW5jZV9jb3VudCIsInVuZGVmaW5lZCIsImd1aWxkU2NoZWR1bGVkRXZlbnQiLCJndWlsZF9zY2hlZHVsZWRfZXZlbnQiLCJzY2hlZHVsZWRFdmVudCIsInN0YWdlSW5zdGFuY2UiLCJzdGFnZV9pbnN0YW5jZSIsImludml0ZVN0YWdlSW5zdGFuY2UiLCJleHBpcmVzQXQiLCJleHBpcmVzX2F0IiwiZmxhZ3MiLCJUb2dnbGVCaXRmaWVsZCIsImNoYW5uZWxfaWQiLCJndWlsZF9pZCIsImN1c3RvbWl6ZXJzIl0sIm1hcHBpbmdzIjoiOzs7OytCQVdnQkE7OztlQUFBQTs7O3VCQUZUO0FBRUEsU0FBU0EsZ0JBQWdCQyxHQUFRLEVBQUVDLE9BQW9ELEVBQUVDLEtBQTRCO0lBQzFILE1BQU1DLFFBQVFILElBQUlJLFlBQVksQ0FBQ0MsaUJBQWlCLENBQUNDLE1BQU07SUFDdkQsTUFBTUEsU0FBUyxDQUFDO0lBRWhCLElBQUlILE1BQU1JLElBQUksSUFBSSxVQUFVTixTQUFTSyxPQUFPQyxJQUFJLEdBQUdOLFFBQVFNLElBQUk7SUFDL0QsSUFBSUosTUFBTUssSUFBSSxJQUFJUCxRQUFRTyxJQUFJLEVBQUVGLE9BQU9FLElBQUksR0FBR1AsUUFBUU8sSUFBSTtJQUMxRCxJQUFJTCxNQUFNTSxTQUFTLElBQUlSLFFBQVFTLFVBQVUsRUFBRUosT0FBT0csU0FBUyxHQUFHRSxLQUFLQyxLQUFLLENBQUNYLFFBQVFTLFVBQVU7SUFDM0YsSUFBSVAsTUFBTVUsT0FBTyxJQUFJWixRQUFRWSxPQUFPLEVBQUVQLE9BQU9PLE9BQU8sR0FBR2IsSUFBSUksWUFBWSxDQUFDVSxJQUFJLENBQUNkLEtBQUtDLFFBQVFZLE9BQU87SUFDakcsSUFBSVYsTUFBTVksTUFBTSxFQUFFVCxPQUFPUyxNQUFNLEdBQUdkLFFBQVFlLE9BQU87SUFDakQsSUFB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
|
|
@@ -24,9 +24,7 @@ function transformLobby(bot, payload) {
|
|
|
24
24
|
if (props.applicationId && payload.application_id) lobby.applicationId = bot.transformers.snowflake(payload.application_id);
|
|
25
25
|
if (props.metadata && payload.metadata) lobby.metadata = payload.metadata;
|
|
26
26
|
if (props.members && payload.members) lobby.members = payload.members.map((member)=>bot.transformers.lobbyMember(bot, member));
|
|
27
|
-
if (props.linkedChannel && payload.linked_channel) lobby.linkedChannel = bot.transformers.channel(bot,
|
|
28
|
-
channel: payload.linked_channel
|
|
29
|
-
});
|
|
27
|
+
if (props.linkedChannel && payload.linked_channel) lobby.linkedChannel = bot.transformers.channel(bot, payload.linked_channel);
|
|
30
28
|
return bot.transformers.customizers.lobby(bot, payload, lobby);
|
|
31
29
|
}
|
|
32
30
|
function transformLobbyMember(bot, payload) {
|
|
@@ -38,4 +36,4 @@ function transformLobbyMember(bot, payload) {
|
|
|
38
36
|
return bot.transformers.customizers.lobbyMember(bot, payload, lobbyMember);
|
|
39
37
|
}
|
|
40
38
|
|
|
41
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvbG9iYnkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBEaXNjb3JkTG9iYnksIERpc2NvcmRMb2JieU1lbWJlciB9IGZyb20gJ0BkaXNjb3JkZW5vL3R5cGVzJ1xuaW1wb3J0IHtcbiAgdHlwZSBCb3QsXG4gIHR5cGUgRGVzaXJlZFByb3BlcnRpZXNCZWhhdmlvcixcbiAgdHlwZSBMb2JieSxcbiAgdHlwZSBMb2JieU1lbWJlcixcbiAgdHlwZSBTZXR1cERlc2lyZWRQcm9wcyxcbiAgVG9nZ2xlQml0ZmllbGQsXG4gIHR5cGUgVHJhbnNmb3JtZXJzRGVzaXJlZFByb3BlcnRpZXMsXG59IGZyb20gJy4uL2luZGV4LmpzJ1xuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtTG9iYnkoYm90OiBCb3QsIHBheWxvYWQ6IERpc2NvcmRMb2JieSk6IExvYmJ5IHtcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLmxvYmJ5XG4gIGNvbnN0IGxvYmJ5ID0ge30gYXMgU2V0dXBEZXNpcmVkUHJvcHM8TG9iYnksIFRyYW5zZm9ybWVyc0Rlc2lyZWRQcm9wZXJ0aWVzLCBEZXNpcmVkUHJvcGVydGllc0JlaGF2aW9yPlxuXG4gIGlmIChwcm9wcy5pZCAmJiBwYXlsb2FkLmlkKSBsb2JieS5pZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaWQpXG4gIGlmIChwcm9wcy5hcHBsaWNhdGlvbklkICYmIHBheWxvYWQuYXBwbGljYXRpb25faWQpIGxvYmJ5LmFwcGxpY2F0aW9uSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmFwcGxpY2F0aW9uX2lkKVxuICBpZiAocHJvcHMubWV0YWRhdGEgJiYgcGF5bG9hZC5tZXRhZGF0YSkgbG9iYnkubWV0YWRhdGEgPSBwYXlsb2FkLm1ldGFkYXRhXG4gIGlmIChwcm9wcy5tZW1iZXJzICYmIHBheWxvYWQubWVtYmVycykgbG9iYnkubWVtYmVycyA9IHBheWxvYWQubWVtYmVycy5tYXAoKG1lbWJlcikgPT4gYm90LnRyYW5zZm9ybWVycy5sb2JieU1lbWJlcihib3QsIG1lbWJlcikpXG4gIGlmIChwcm9wcy5saW5rZWRDaGFubmVsICYmIHBheWxvYWQubGlua2VkX2NoYW5uZWwpIGxvYmJ5LmxpbmtlZENoYW5uZWwgPSBib3QudHJhbnNmb3JtZXJzLmNoYW5uZWwoYm90LCBwYXlsb2FkLmxpbmtlZF9jaGFubmVsKVxuXG4gIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmN1c3RvbWl6ZXJzLmxvYmJ5KGJvdCwgcGF5bG9hZCwgbG9iYnkpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1Mb2JieU1lbWJlcihib3Q6IEJvdCwgcGF5bG9hZDogRGlzY29yZExvYmJ5TWVtYmVyKTogTG9iYnlNZW1iZXIge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMubG9iYnlNZW1iZXJcbiAgY29uc3QgbG9iYnlNZW1iZXIgPSB7fSBhcyBTZXR1cERlc2lyZWRQcm9wczxMb2JieU1lbWJlciwgVHJhbnNmb3JtZXJzRGVzaXJlZFByb3BlcnRpZXMsIERlc2lyZWRQcm9wZXJ0aWVzQmVoYXZpb3I+XG5cbiAgaWYgKHByb3BzLmlkICYmIHBheWxvYWQuaWQpIGxvYmJ5TWVtYmVyLmlkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5pZClcbiAgaWYgKHByb3BzLm1ldGFkYXRhICYmIHBheWxvYWQubWV0YWRhdGEpIGxvYmJ5TWVtYmVyLm1ldGFkYXRhID0gcGF5bG9hZC5tZXRhZGF0YVxuICBpZiAocHJvcHMuZmxhZ3MgJiYgcGF5bG9hZC5mbGFncykgbG9iYnlNZW1iZXIuZmxhZ3MgPSBuZXcgVG9nZ2xlQml0ZmllbGQocGF5bG9hZC5mbGFncylcblxuICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jdXN0b21pemVycy5sb2JieU1lbWJlcihib3QsIHBheWxvYWQsIGxvYmJ5TWVtYmVyKVxufVxuIl0sIm5hbWVzIjpbInRyYW5zZm9ybUxvYmJ5IiwidHJhbnNmb3JtTG9iYnlNZW1iZXIiLCJib3QiLCJwYXlsb2FkIiwicHJvcHMiLCJ0cmFuc2Zvcm1lcnMiLCJkZXNpcmVkUHJvcGVydGllcyIsImxvYmJ5IiwiaWQiLCJzbm93Zmxha2UiLCJhcHBsaWNhdGlvbklkIiwiYXBwbGljYXRpb25faWQiLCJtZXRhZGF0YSIsIm1lbWJlcnMiLCJtYXAiLCJtZW1iZXIiLCJsb2JieU1lbWJlciIsImxpbmtlZENoYW5uZWwiLCJsaW5rZWRfY2hhbm5lbCIsImNoYW5uZWwiLCJjdXN0b21pemVycyIsImZsYWdzIiwiVG9nZ2xlQml0ZmllbGQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O1FBV2dCQTtlQUFBQTs7UUFhQUM7ZUFBQUE7Ozt1QkFmVDtBQUVBLFNBQVNELGVBQWVFLEdBQVEsRUFBRUMsT0FBcUI7SUFDNUQsTUFBTUMsUUFBUUYsSUFBSUcsWUFBWSxDQUFDQyxpQkFBaUIsQ0FBQ0MsS0FBSztJQUN0RCxNQUFNQSxRQUFRLENBQUM7SUFFZixJQUFJSCxNQUFNSSxFQUFFLElBQUlMLFFBQVFLLEVBQUUsRUFBRUQsTUFBTUMsRUFBRSxHQUFHTixJQUFJRyxZQUFZLENBQUNJLFNBQVMsQ0FBQ04sUUFBUUssRUFBRTtJQUM1RSxJQUFJSixNQUFNTSxhQUFhLElBQUlQLFFBQVFRLGNBQWMsRUFBRUosTUFBTUcsYUFBYSxHQUFHUixJQUFJRyxZQUFZLENBQUNJLFNBQVMsQ0FBQ04sUUFBUVEsY0FBYztJQUMxSCxJQUFJUCxNQUFNUSxRQUFRLElBQUlULFFBQVFTLFFBQVEsRUFBRUwsTUFBTUssUUFBUSxHQUFHVCxRQUFRUyxRQUFRO0lBQ3pFLElBQUlSLE1BQU1TLE9BQU8sSUFBSVYsUUFBUVUsT0FBTyxFQUFFTixNQUFNTSxPQUFPLEdBQUdWLFFBQVFVLE9BQU8sQ0FBQ0MsR0FBRyxDQUFDLENBQUNDLFNBQVdiLElBQUlHLFlBQVksQ0FBQ1csV0FBVyxDQUFDZCxLQUFLYTtJQUN4SCxJQUFJWCxNQUFNYSxhQUFhLElBQUlkLFFBQVFlLGNBQWMsRUFBRVgsTUFBTVUsYUFBYSxHQUFHZixJQUFJRyxZQUFZLENBQUNjLE9BQU8sQ0FBQ2pCLEtBQUtDLFFBQVFlLGNBQWM7SUFFN0gsT0FBT2hCLElBQUlHLFlBQVksQ0FBQ2UsV0FBVyxDQUFDYixLQUFLLENBQUNMLEtBQUtDLFNBQVNJO0FBQzFEO0FBRU8sU0FBU04scUJBQXFCQyxHQUFRLEVBQUVDLE9BQTJCO0lBQ3hFLE1BQU1DLFFBQVFGLElBQUlHLFlBQVksQ0FBQ0MsaUJBQWlCLENBQUNVLFdBQVc7SUFDNUQsTUFBTUEsY0FBYyxDQUFDO0lBRXJCLElBQUlaLE1BQU1JLEVBQUUsSUFBSUwsUUFBUUssRUFBRSxFQUFFUSxZQUFZUixFQUFFLEdBQUdOLElBQUlHLFlBQVksQ0FBQ0ksU0FBUyxDQUFDTixRQUFRSyxFQUFFO0lBQ2xGLElBQUlKLE1BQU1RLFFBQVEsSUFBSVQsUUFBUVMsUUFBUSxFQUFFSSxZQUFZSixRQUFRLEdBQUdULFFBQVFTLFFBQVE7SUFDL0UsSUFBSVIsTUFBTWlCLEtBQUssSUFBSWxCLFFBQVFrQixLQUFLLEVBQUVMLFlBQVlLLEtBQUssR0FBRyxJQUFJQyxxQkFBYyxDQUFDbkIsUUFBUWtCLEtBQUs7SUFFdEYsT0FBT25CLElBQUlHLFlBQVksQ0FBQ2UsV0FBVyxDQUFDSixXQUFXLENBQUNkLEtBQUtDLFNBQVNhO0FBQ2hFIn0=
|