@discordeno/bot 19.0.0-next.b61cabe → 19.0.0-next.bb6b8df
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 +9 -2
- package/dist/cjs/commandOptionsParser.cjs +1 -1
- package/dist/cjs/helpers.cjs +16 -1
- package/dist/cjs/transformers/interaction.cjs +7 -11
- package/dist/cjs/transformers/message.cjs +12 -1
- package/dist/cjs/transformers/scheduledEvent.cjs +28 -4
- package/dist/cjs/transformers/voiceState.cjs +2 -2
- package/dist/cjs/transformers.cjs +81 -156
- package/dist/cjs/typings.cjs +1 -1
- package/dist/esm/bot.js +9 -2
- package/dist/esm/commandOptionsParser.js +1 -1
- package/dist/esm/helpers.js +16 -1
- package/dist/esm/transformers/interaction.js +7 -11
- package/dist/esm/transformers/message.js +9 -1
- package/dist/esm/transformers/scheduledEvent.js +17 -1
- package/dist/esm/transformers/types.js +1 -1
- package/dist/esm/transformers/voiceState.js +2 -2
- package/dist/esm/transformers.js +80 -155
- package/dist/esm/typings.js +1 -1
- package/dist/types/bot.d.ts +13 -7
- package/dist/types/bot.d.ts.map +1 -1
- package/dist/types/commandOptionsParser.d.ts +11 -2
- package/dist/types/commandOptionsParser.d.ts.map +1 -1
- package/dist/types/helpers.d.ts +4 -1
- package/dist/types/helpers.d.ts.map +1 -1
- package/dist/types/transformers/interaction.d.ts.map +1 -1
- package/dist/types/transformers/message.d.ts +3 -2
- package/dist/types/transformers/message.d.ts.map +1 -1
- package/dist/types/transformers/scheduledEvent.d.ts +3 -2
- package/dist/types/transformers/scheduledEvent.d.ts.map +1 -1
- package/dist/types/transformers/types.d.ts +39 -9
- package/dist/types/transformers/types.d.ts.map +1 -1
- package/dist/types/transformers/voiceState.d.ts +2 -2
- package/dist/types/transformers/voiceState.d.ts.map +1 -1
- package/dist/types/transformers.d.ts +29 -7
- package/dist/types/transformers.d.ts.map +1 -1
- package/dist/types/typings.d.ts +1 -1
- package/dist/types/typings.d.ts.map +1 -1
- package/package.json +10 -10
|
@@ -189,17 +189,13 @@ function transformInteractionDataResolved(bot, resolved, guildId) {
|
|
|
189
189
|
}));
|
|
190
190
|
}
|
|
191
191
|
if (resolved.channels) {
|
|
192
|
-
transformed.channels = new _utils.Collection(Object.entries(resolved.channels).map(([
|
|
193
|
-
const
|
|
194
|
-
|
|
192
|
+
transformed.channels = new _utils.Collection(Object.entries(resolved.channels).map(([_id, value])=>{
|
|
193
|
+
const channel = bot.transformers.channel(bot, {
|
|
194
|
+
channel: value
|
|
195
|
+
});
|
|
195
196
|
return [
|
|
196
|
-
id,
|
|
197
|
-
|
|
198
|
-
id,
|
|
199
|
-
name: channel.name,
|
|
200
|
-
type: channel.type,
|
|
201
|
-
permissions: bot.transformers.snowflake(channel.permissions)
|
|
202
|
-
}
|
|
197
|
+
channel.id,
|
|
198
|
+
channel
|
|
203
199
|
];
|
|
204
200
|
}));
|
|
205
201
|
}
|
|
@@ -215,4 +211,4 @@ function transformInteractionDataResolved(bot, resolved, guildId) {
|
|
|
215
211
|
return transformed;
|
|
216
212
|
}
|
|
217
213
|
|
|
218
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvaW50ZXJhY3Rpb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgdHlwZSBDaGFubmVsVHlwZXMsXG4gIERpc2NvcmRBcHBsaWNhdGlvbkludGVncmF0aW9uVHlwZSxcbiAgdHlwZSBEaXNjb3JkSW50ZXJhY3Rpb24sXG4gIHR5cGUgRGlzY29yZEludGVyYWN0aW9uRGF0YU9wdGlvbixcbiAgSW50ZXJhY3Rpb25SZXNwb25zZVR5cGVzLFxuICBJbnRlcmFjdGlvblR5cGVzLFxuICBNZXNzYWdlRmxhZ3MsXG59IGZyb20gJ0BkaXNjb3JkZW5vL3R5cGVzJ1xuaW1wb3J0IHsgQ29sbGVjdGlvbiB9IGZyb20gJ0BkaXNjb3JkZW5vL3V0aWxzJ1xuaW1wb3J0IHtcbiAgdHlwZSBCb3QsXG4gIHR5cGUgRGlzY29yZENoYW5uZWwsXG4gIHR5cGUgSW50ZXJhY3Rpb24sXG4gIHR5cGUgSW50ZXJhY3Rpb25EYXRhT3B0aW9uLFxuICB0eXBlIEludGVyYWN0aW9uRGF0YVJlc29sdmVkLFxuICB0eXBlIE1lbWJlcixcbiAgdHlwZSBNZXNzYWdlLFxufSBmcm9tICcuLi9pbmRleC5qcydcbmltcG9ydCB0eXBlIHsgRGlzY29yZEludGVyYWN0aW9uRGF0YVJlc29sdmVkIH0gZnJvbSAnLi4vdHlwaW5ncy5qcydcblxuY29uc3QgYmFzZUludGVyYWN0aW9uID0ge1xuICBhc3luYyByZXNwb25kKHJlc3BvbnNlLCBvcHRpb25zKSB7XG4gICAgbGV0IHR5cGUgPSBJbnRlcmFjdGlvblJlc3BvbnNlVHlwZXMuQ2hhbm5lbE1lc3NhZ2VXaXRoU291cmNlXG5cbiAgICAvLyBJZiB1c2VyIHByb3ZpZGVzIGEgc3RyaW5nLCBjaGFuZ2UgaXQgdG8gYSByZXNwb25zZSBvYmplY3RcbiAgICBpZiAodHlwZW9mIHJlc3BvbnNlID09PSAnc3RyaW5nJykgcmVzcG9uc2UgPSB7IGNvbnRlbnQ6IHJlc3BvbnNlIH1cblxuICAgIC8vIElmIHVzZXIgcHJvdmlkZXMgYW4gb2JqZWN0LCBkZXRlcm1pbmUgaWYgaXQgc2hvdWxkIGJlIGFuIGF1dG9jb21wbGV0ZSBvciBhIG1vZGFsIHJlc3BvbnNlXG4gICAgaWYgKHJlc3BvbnNlLnRpdGxlKSB0eXBlID0gSW50ZXJhY3Rpb25SZXNwb25zZVR5cGVzLk1vZGFsXG4gICAgaWYgKHRoaXMudHlwZSA9PT0gSW50ZXJhY3Rpb25UeXBlcy5BcHBsaWNhdGlvbkNvbW1hbmRBdXRvY29tcGxldGUpIHR5cGUgPSBJbnRlcmFjdGlvblJlc3BvbnNlVHlwZXMuQXBwbGljYXRpb25Db21tYW5kQXV0b2NvbXBsZXRlUmVzdWx0XG4gICAgaWYgKHR5cGUgPT09IEludGVyYWN0aW9uUmVzcG9uc2VUeXBlcy5DaGFubmVsTWVzc2FnZVdpdGhTb3VyY2UgJiYgb3B0aW9ucz8uaXNQcml2YXRlKSByZXNwb25zZS5mbGFncyA9IE1lc3NhZ2VGbGFncy5FcGhlbWVyYWxcblxuICAgIC8vIFNpbmNlIHRoaXMgaGFzIGFscmVhZHkgYmVlbiBnaXZlbiBhIHJlc3BvbnNlLCBhbnkgZnVydGhlciByZXNwb25zZXMgbXVzdCBiZSBmb2xsb3d1cHMuXG4gICAgaWYgKHRoaXMuYWNrbm93bGVkZ2VkKSByZXR1cm4gYXdhaXQgdGhpcy5ib3QuaGVscGVycy5zZW5kRm9sbG93dXBNZXNzYWdlKHRoaXMudG9rZW4sIHJlc3BvbnNlKVxuXG4gICAgLy8gTW9kYWxzIGNhbm5vdCBiZSBjaGFpbmVkXG4gICAgaWYgKHRoaXMudHlwZSA9PT0gSW50ZXJhY3Rpb25UeXBlcy5Nb2RhbFN1Ym1pdCAmJiB0eXBlID09PSBJbnRlcmFjdGlvblJlc3BvbnNlVHlwZXMuTW9kYWwpXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCByZXNwb25kIHRvIGEgbW9kYWwgaW50ZXJhY3Rpb24gd2l0aCBhbm90aGVyIG1vZGFsLicpXG5cbiAgICB0aGlzLmFja25vd2xlZGdlZCA9IHRydWVcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5ib3QuaGVscGVycy5zZW5kSW50ZXJhY3Rpb25SZXNwb25zZSh0aGlzLmlkLCB0aGlzLnRva2VuLCB7IHR5cGUsIGRhdGE6IHJlc3BvbnNlIH0pXG4gIH0sXG4gIGFzeW5jIGVkaXQocmVzcG9uc2UsIG1lc3NhZ2VJZCkge1xuICAgIGlmICh0aGlzLnR5cGUgPT09IEludGVyYWN0aW9uVHlwZXMuQXBwbGljYXRpb25Db21tYW5kQXV0b2NvbXBsZXRlKSB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBlZGl0IGFuIGF1dG9jb21wbGV0ZSBpbnRlcmFjdGlvbi4nKVxuXG4gICAgLy8gSWYgdXNlciBwcm92aWRlcyBhIHN0cmluZywgY2hhbmdlIGl0IHRvIGEgcmVzcG9uc2Ugb2JqZWN0XG4gICAgaWYgKHR5cGVvZiByZXNwb25zZSA9PT0gJ3N0cmluZycpIHJlc3BvbnNlID0geyBjb250ZW50OiByZXNwb25zZSB9XG5cbiAgICBpZiAobWVzc2FnZUlkKSB7XG4gICAgICByZXR1cm4gYXdhaXQgdGhpcy5ib3Q/LmhlbHBlcnMuZWRpdEZvbGxvd3VwTWVzc2FnZSh0aGlzLnRva2VuLCBtZXNzYWdlSWQsIHJlc3BvbnNlKVxuICAgIH1cblxuICAgIGlmICghdGhpcy5hY2tub3dsZWRnZWQpIHtcbiAgICAgIGlmICh0aGlzLnR5cGUgIT09IEludGVyYWN0aW9uVHlwZXMuTWVzc2FnZUNvbXBvbmVudClcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVGhpcyBpbnRlcmFjdGlvbiBoYXMgbm90IGJlZW4gcmVzcG9uZGVkIHRvIHlldCBhbmQgdGhpcyBpc24ndCBhIE1lc3NhZ2VDb21wb25lbnQgaW50ZXJhY3Rpb24uXCIpXG5cbiAgICAgIHRoaXMuYWNrbm93bGVkZ2VkID0gdHJ1ZVxuICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuYm90LmhlbHBlcnMuc2VuZEludGVyYWN0aW9uUmVzcG9uc2UodGhpcy5pZCwgdGhpcy50b2tlbiwgeyB0eXBlOiBJbnRlcmFjdGlvblJlc3BvbnNlVHlwZXMuVXBkYXRlTWVzc2FnZSwgZGF0YTogcmVzcG9uc2UgfSlcbiAgICB9XG5cbiAgICByZXR1cm4gYXdhaXQgdGhpcy5ib3QuaGVscGVycy5lZGl0T3JpZ2luYWxJbnRlcmFjdGlvblJlc3BvbnNlKHRoaXMudG9rZW4sIHJlc3BvbnNlKVxuICB9LFxuICBhc3luYyBkZWZlckVkaXQoKSB7XG4gICAgaWYgKHRoaXMudHlwZSA9PT0gSW50ZXJhY3Rpb25UeXBlcy5BcHBsaWNhdGlvbkNvbW1hbmRBdXRvY29tcGxldGUpIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGVkaXQgYW4gYXV0b2NvbXBsZXRlIGludGVyYWN0aW9uLicpXG4gICAgaWYgKHRoaXMuYWNrbm93bGVkZ2VkKSB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBkZWZlciBhbiBhbHJlYWR5IHJlc3BvbmRlZCBpbnRlcmFjdGlvbi4nKVxuXG4gICAgaWYgKHRoaXMudHlwZSAhPT0gSW50ZXJhY3Rpb25UeXBlcy5NZXNzYWdlQ29tcG9uZW50KVxuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQ2Fubm90IGRlZmVyIHRvIHRoZW4gZWRpdCBhbiBpbnRlcmFjdGlvbiB0aGF0IGlzbid0IGEgTWVzc2FnZUNvbXBvbmVudCBpbnRlcmFjdGlvbi5cIilcblxuICAgIHRoaXMuYWNrbm93bGVkZ2VkID0gdHJ1ZVxuICAgIHJldHVybiBhd2FpdCB0aGlzLmJvdC5oZWxwZXJzLnNlbmRJbnRlcmFjdGlvblJlc3BvbnNlKHRoaXMuaWQsIHRoaXMudG9rZW4sIHsgdHlwZTogSW50ZXJhY3Rpb25SZXNwb25zZVR5cGVzLkRlZmVycmVkVXBkYXRlTWVzc2FnZSB9KVxuICB9LFxuICBhc3luYyBkZWZlcihpc1ByaXZhdGUpIHtcbiAgICBpZiAodGhpcy5hY2tub3dsZWRnZWQpIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGRlZmVyIGFuIGFscmVhZHkgcmVzcG9uZGVkIGludGVyYWN0aW9uLicpXG5cbiAgICB0aGlzLmFja25vd2xlZGdlZCA9IHRydWVcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5ib3QuaGVscGVycy5zZW5kSW50ZXJhY3Rpb25SZXNwb25zZSh0aGlzLmlkLCB0aGlzLnRva2VuLCB7XG4gICAgICB0eXBlOiBJbnRlcmFjdGlvblJlc3BvbnNlVHlwZXMuRGVmZXJyZWRDaGFubmVsTWVzc2FnZVdpdGhTb3VyY2UsXG4gICAgICBkYXRhOiB7XG4gICAgICAgIGZsYWdzOiBpc1ByaXZhdGUgPyBNZXNzYWdlRmxhZ3MuRXBoZW1lcmFsIDogdW5kZWZpbmVkLFxuICAgICAgfSxcbiAgICB9KVxuICB9LFxuICBhc3luYyBkZWxldGUobWVzc2FnZUlkKSB7XG4gICAgaWYgKHRoaXMudHlwZSA9PT0gSW50ZXJhY3Rpb25UeXBlcy5BcHBsaWNhdGlvbkNvbW1hbmRBdXRvY29tcGxldGUpIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGRlbGV0ZSBhbiBhdXRvY29tcGxldGUgaW50ZXJhY3Rpb24nKVxuXG4gICAgaWYgKG1lc3NhZ2VJZCkgcmV0dXJuIGF3YWl0IHRoaXMuYm90Py5oZWxwZXJzLmRlbGV0ZUZvbGxvd3VwTWVzc2FnZSh0aGlzLnRva2VuLCBtZXNzYWdlSWQpXG4gICAgZWxzZSByZXR1cm4gYXdhaXQgdGhpcy5ib3Q/LmhlbHBlcnMuZGVsZXRlT3JpZ2luYWxJbnRlcmFjdGlvblJlc3BvbnNlKHRoaXMudG9rZW4pXG4gIH0sXG59IGFzIEludGVyYWN0aW9uXG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1JbnRlcmFjdGlvbihib3Q6IEJvdCwgcGF5bG9hZDogeyBpbnRlcmFjdGlvbjogRGlzY29yZEludGVyYWN0aW9uOyBzaGFyZElkOiBudW1iZXIgfSk6IEludGVyYWN0aW9uIHtcbiAgY29uc3QgZ3VpbGRJZCA9IHBheWxvYWQuaW50ZXJhY3Rpb24uZ3VpbGRfaWQgPyBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmludGVyYWN0aW9uLmd1aWxkX2lkKSA6IHVuZGVmaW5lZFxuICBjb25zdCB1c2VyID0gYm90LnRyYW5zZm9ybWVycy51c2VyKGJvdCwgcGF5bG9hZC5pbnRlcmFjdGlvbi5tZW1iZXI/LnVzZXIgPz8gcGF5bG9hZC5pbnRlcmFjdGlvbi51c2VyISlcblxuICBjb25zdCBpbnRlcmFjdGlvbjogSW50ZXJhY3Rpb24gPSBPYmplY3QuY3JlYXRlKGJhc2VJbnRlcmFjdGlvbilcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLmludGVyYWN0aW9uXG4gIGludGVyYWN0aW9uLmJvdCA9IGJvdFxuICBpbnRlcmFjdGlvbi5hY2tub3dsZWRnZWQgPSBmYWxzZVxuXG4gIGlmIChwcm9wcy5pZCAmJiBwYXlsb2FkLmludGVyYWN0aW9uLmlkKSBpbnRlcmFjdGlvbi5pZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaW50ZXJhY3Rpb24uaWQpXG4gIGlmIChwcm9wcy5hcHBsaWNhdGlvbklkICYmIHBheWxvYWQuaW50ZXJhY3Rpb24uYXBwbGljYXRpb25faWQpXG4gICAgaW50ZXJhY3Rpb24uYXBwbGljYXRpb25JZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaW50ZXJhY3Rpb24uYXBwbGljYXRpb25faWQpXG4gIGlmIChwcm9wcy50eXBlICYmIHBheWxvYWQuaW50ZXJhY3Rpb24udHlwZSkgaW50ZXJhY3Rpb24udHlwZSA9IHBheWxvYWQuaW50ZXJhY3Rpb24udHlwZVxuICBpZiAocHJvcHMudG9rZW4gJiYgcGF5bG9hZC5pbnRlcmFjdGlvbi50b2tlbikgaW50ZXJhY3Rpb24udG9rZW4gPSBwYXlsb2FkLmludGVyYWN0aW9uLnRva2VuXG4gIGlmIChwcm9wcy52ZXJzaW9uICYmIHBheWxvYWQuaW50ZXJhY3Rpb24udmVyc2lvbikgaW50ZXJhY3Rpb24udmVyc2lvbiA9IHBheWxvYWQuaW50ZXJhY3Rpb24udmVyc2lvblxuICBpZiAocHJvcHMubG9jYWxlICYmIHBheWxvYWQuaW50ZXJhY3Rpb24ubG9jYWxlKSBpbnRlcmFjdGlvbi5sb2NhbGUgPSBwYXlsb2FkLmludGVyYWN0aW9uLmxvY2FsZVxuICBpZiAocHJvcHMuZ3VpbGRMb2NhbGUgJiYgcGF5bG9hZC5pbnRlcmFjdGlvbi5ndWlsZF9sb2NhbGUpIGludGVyYWN0aW9uLmd1aWxkTG9jYWxlID0gcGF5bG9hZC5pbnRlcmFjdGlvbi5ndWlsZF9sb2NhbGVcbiAgaWYgKHByb3BzLmd1aWxkICYmIHBheWxvYWQuaW50ZXJhY3Rpb24uZ3VpbGQpXG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvciBwYXlsb2FkLmludGVyYWN0aW9uLmd1aWxkIGlzIGEgUGFydGlhbDxEaXNjb3JkR3VpbGQ+XG4gICAgaW50ZXJhY3Rpb24uZ3VpbGQgPSBib3QudHJhbnNmb3JtZXJzLmd1aWxkKGJvdCwgeyBndWlsZDogcGF5bG9hZC5pbnRlcmFjdGlvbi5ndWlsZCwgc2hhcmRJZDogcGF5bG9hZC5zaGFyZElkIH0pXG4gIGlmIChwcm9wcy5ndWlsZElkICYmIGd1aWxkSWQpIGludGVyYWN0aW9uLmd1aWxkSWQgPSBndWlsZElkXG4gIGlmIChwcm9wcy51c2VyICYmIHVzZXIpIGludGVyYWN0aW9uLnVzZXIgPSB1c2VyXG4gIGlmIChwcm9wcy5hcHBQZXJtaXNzaW9ucyAmJiBwYXlsb2FkLmludGVyYWN0aW9uLmFwcF9wZXJtaXNzaW9ucylcbiAgICBpbnRlcmFjdGlvbi5hcHBQZXJtaXNzaW9ucyA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaW50ZXJhY3Rpb24uYXBwX3Blcm1pc3Npb25zKVxuICBpZiAocHJvcHMubWVzc2FnZSAmJiBwYXlsb2FkLmludGVyYWN0aW9uLm1lc3NhZ2UpIGludGVyYWN0aW9uLm1lc3NhZ2UgPSBib3QudHJhbnNmb3JtZXJzLm1lc3NhZ2UoYm90LCBwYXlsb2FkLmludGVyYWN0aW9uLm1lc3NhZ2UpXG4gIGlmIChwcm9wcy5jaGFubmVsICYmIHBheWxvYWQuaW50ZXJhY3Rpb24uY2hhbm5lbClcbiAgICBpbnRlcmFjdGlvbi5jaGFubmVsID0gYm90LnRyYW5zZm9ybWVycy5jaGFubmVsKGJvdCwgeyBjaGFubmVsOiBwYXlsb2FkLmludGVyYWN0aW9uLmNoYW5uZWwgYXMgRGlzY29yZENoYW5uZWwsIGd1aWxkSWQgfSlcbiAgaWYgKHByb3BzLmNoYW5uZWxJZCAmJiBwYXlsb2FkLmludGVyYWN0aW9uLmNoYW5uZWxfaWQpIGludGVyYWN0aW9uLmNoYW5uZWxJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaW50ZXJhY3Rpb24uY2hhbm5lbF9pZClcbiAgaWYgKHByb3BzLm1lbWJlciAmJiBndWlsZElkICYmIHBheWxvYWQuaW50ZXJhY3Rpb24ubWVtYmVyKVxuICAgIGludGVyYWN0aW9uLm1lbWJlciA9IGJvdC50cmFuc2Zvcm1lcnMubWVtYmVyKGJvdCwgcGF5bG9hZC5pbnRlcmFjdGlvbi5tZW1iZXIsIGd1aWxkSWQsIHVzZXIuaWQpXG4gIGlmIChwcm9wcy5hdXRob3JpemluZ0ludGVncmF0aW9uT3duZXJzICYmIHBheWxvYWQuaW50ZXJhY3Rpb24uYXV0aG9yaXppbmdfaW50ZWdyYXRpb25fb3duZXJzKSB7XG4gICAgaW50ZXJhY3Rpb24uYXV0aG9yaXppbmdJbnRlZ3JhdGlvbk93bmVycyA9IHt9XG5cbiAgICBpZiAocGF5bG9hZC5pbnRlcmFjdGlvbi5hdXRob3JpemluZ19pbnRlZ3JhdGlvbl9vd25lcnNbJzAnXSlcbiAgICAgIGludGVyYWN0aW9uLmF1dGhvcml6aW5nSW50ZWdyYXRpb25Pd25lcnNbRGlzY29yZEFwcGxpY2F0aW9uSW50ZWdyYXRpb25UeXBlLkd1aWxkSW5zdGFsbF0gPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShcbiAgICAgICAgcGF5bG9hZC5pbnRlcmFjdGlvbi5hdXRob3JpemluZ19pbnRlZ3JhdGlvbl9vd25lcnNbJzAnXSxcbiAgICAgIClcbiAgICBpZiAocGF5bG9hZC5pbnRlcmFjdGlvbi5hdXRob3JpemluZ19pbnRlZ3JhdGlvbl9vd25lcnNbJzEnXSlcbiAgICAgIGludGVyYWN0aW9uLmF1dGhvcml6aW5nSW50ZWdyYXRpb25Pd25lcnNbRGlzY29yZEFwcGxpY2F0aW9uSW50ZWdyYXRpb25UeXBlLlVzZXJJbnN0YWxsXSA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKFxuICAgICAgICBwYXlsb2FkLmludGVyYWN0aW9uLmF1dGhvcml6aW5nX2ludGVncmF0aW9uX293bmVyc1snMSddLFxuICAgICAgKVxuICB9XG4gIGlmIChwcm9wcy5jb250ZXh0ICYmIHBheWxvYWQuaW50ZXJhY3Rpb24uY29udGV4dCkgaW50ZXJhY3Rpb24uY29udGV4dCA9IHBheWxvYWQuaW50ZXJhY3Rpb24uY29udGV4dFxuICBpZiAocHJvcHMuZGF0YSAmJiBwYXlsb2FkLmludGVyYWN0aW9uLmRhdGEpIHtcbiAgICBpbnRlcmFjdGlvbi5kYXRhID0ge1xuICAgICAgdHlwZTogcGF5bG9hZC5pbnRlcmFjdGlvbi5kYXRhLnR5cGUsXG4gICAgICBjb21wb25lbnRUeXBlOiBwYXlsb2FkLmludGVyYWN0aW9uLmRhdGEuY29tcG9uZW50X3R5cGUsXG4gICAgICBjdXN0b21JZDogcGF5bG9hZC5pbnRlcmFjdGlvbi5kYXRhLmN1c3RvbV9pZCxcbiAgICAgIGNvbXBvbmVudHM6IHBheWxvYWQuaW50ZXJhY3Rpb24uZGF0YS5jb21wb25lbnRzPy5tYXAoKGNvbXBvbmVudCkgPT4gYm90LnRyYW5zZm9ybWVycy5jb21wb25lbnQoYm90LCBjb21wb25lbnQpKSxcbiAgICAgIHZhbHVlczogcGF5bG9hZC5pbnRlcmFjdGlvbi5kYXRhLnZhbHVlcyxcbiAgICAgIGlkOiBwYXlsb2FkLmludGVyYWN0aW9uLmRhdGEuaWQgPyBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmludGVyYWN0aW9uLmRhdGEuaWQpIDogdW5kZWZpbmVkLFxuICAgICAgbmFtZTogcGF5bG9hZC5pbnRlcmFjdGlvbi5kYXRhLm5hbWUsXG4gICAgICByZXNvbHZlZDogcGF5bG9hZC5pbnRlcmFjdGlvbi5kYXRhLnJlc29sdmVkID8gdHJhbnNmb3JtSW50ZXJhY3Rpb25EYXRhUmVzb2x2ZWQoYm90LCBwYXlsb2FkLmludGVyYWN0aW9uLmRhdGEucmVzb2x2ZWQsIGd1aWxkSWQpIDogdW5kZWZpbmVkLFxuICAgICAgb3B0aW9uczogcGF5bG9hZC5pbnRlcmFjdGlvbi5kYXRhLm9wdGlvbnM/Lm1hcCgob3B0KSA9PiBib3QudHJhbnNmb3JtZXJzLmludGVyYWN0aW9uRGF0YU9wdGlvbnMoYm90LCBvcHQpKSxcbiAgICAgIHRhcmdldElkOiBwYXlsb2FkLmludGVyYWN0aW9uLmRhdGEudGFyZ2V0X2lkID8gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5pbnRlcmFjdGlvbi5kYXRhLnRhcmdldF9pZCkgOiB1bmRlZmluZWQsXG4gICAgICAvLyBndWlsZElkOiBwYXlsb2FkLmludGVyYWN0aW9uLmRhdGEuZ3VpbGRfaWQgPyBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmludGVyYWN0aW9uLmRhdGEuZ3VpbGRfaWQpIDogdW5kZWZpbmVkLFxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmN1c3RvbWl6ZXJzLmludGVyYWN0aW9uKGJvdCwgcGF5bG9hZCwgaW50ZXJhY3Rpb24pXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1JbnRlcmFjdGlvbkRhdGFPcHRpb24oYm90OiBCb3QsIG9wdGlvbjogRGlzY29yZEludGVyYWN0aW9uRGF0YU9wdGlvbik6IEludGVyYWN0aW9uRGF0YU9wdGlvbiB7XG4gIGNvbnN0IG9wdCA9IHtcbiAgICBuYW1lOiBvcHRpb24ubmFtZSxcbiAgICB0eXBlOiBvcHRpb24udHlwZSxcbiAgICB2YWx1ZTogb3B0aW9uLnZhbHVlLFxuICAgIG9wdGlvbnM6IG9wdGlvbi5vcHRpb25zLFxuICAgIGZvY3VzZWQ6IG9wdGlvbi5mb2N1c2VkLFxuICB9IGFzIEludGVyYWN0aW9uRGF0YU9wdGlvblxuXG4gIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmN1c3RvbWl6ZXJzLmludGVyYWN0aW9uRGF0YU9wdGlvbnMoYm90LCBvcHRpb24sIG9wdClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybUludGVyYWN0aW9uRGF0YVJlc29sdmVkKGJvdDogQm90LCByZXNvbHZlZDogRGlzY29yZEludGVyYWN0aW9uRGF0YVJlc29sdmVkLCBndWlsZElkPzogYmlnaW50KTogSW50ZXJhY3Rpb25EYXRhUmVzb2x2ZWQge1xuICBjb25zdCB0cmFuc2Zvcm1lZDogSW50ZXJhY3Rpb25EYXRhUmVzb2x2ZWQgPSB7fVxuXG4gIGlmIChyZXNvbHZlZC5tZXNzYWdlcykge1xuICAgIHRyYW5zZm9ybWVkLm1lc3NhZ2VzID0gbmV3IENvbGxlY3Rpb24oXG4gICAgICBPYmplY3QuZW50cmllcyhyZXNvbHZlZC5tZXNzYWdlcykubWFwKChbX2lkLCB2YWx1ZV0pID0+IHtcbiAgICAgICAgY29uc3QgbWVzc2FnZTogTWVzc2FnZSA9IGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZShib3QsIHZhbHVlKVxuICAgICAgICByZXR1cm4gW21lc3NhZ2UuaWQsIG1lc3NhZ2VdXG4gICAgICB9KSxcbiAgICApXG4gIH1cblxuICBpZiAocmVzb2x2ZWQudXNlcnMpIHtcbiAgICB0cmFuc2Zvcm1lZC51c2VycyA9IG5ldyBDb2xsZWN0aW9uKFxuICAgICAgT2JqZWN0LmVudHJpZXMocmVzb2x2ZWQudXNlcnMpLm1hcCgoW19pZCwgdmFsdWVdKSA9PiB7XG4gICAgICAgIGNvbnN0IHVzZXIgPSBib3QudHJhbnNmb3JtZXJzLnVzZXIoYm90LCB2YWx1ZSlcbiAgICAgICAgcmV0dXJuIFt1c2VyLmlkLCB1c2VyXVxuICAgICAgfSksXG4gICAgKVxuICB9XG5cbiAgaWYgKGd1aWxkSWQgJiYgcmVzb2x2ZWQubWVtYmVycykge1xuICAgIHRyYW5zZm9ybWVkLm1lbWJlcnMgPSBuZXcgQ29sbGVjdGlvbihcbiAgICAgIE9iamVjdC5lbnRyaWVzKHJlc29sdmVkLm1lbWJlcnMpLm1hcCgoW2lkLCB2YWx1ZV0pID0+IHtcbiAgICAgICAgY29uc3QgbWVtYmVyOiBNZW1iZXIgPSBib3QudHJhbnNmb3JtZXJzLm1lbWJlcihib3QsIHZhbHVlLCBndWlsZElkLCBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShpZCkpXG4gICAgICAgIHJldHVybiBbbWVtYmVyLmlkLCBtZW1iZXJdXG4gICAgICB9KSxcbiAgICApXG4gIH1cblxuICBpZiAoZ3VpbGRJZCAmJiByZXNvbHZlZC5yb2xlcykge1xuICAgIHRyYW5zZm9ybWVkLnJvbGVzID0gbmV3IENvbGxlY3Rpb24oXG4gICAgICBPYmplY3QuZW50cmllcyhyZXNvbHZlZC5yb2xlcykubWFwKChbX2lkLCB2YWx1ZV0pID0+IHtcbiAgICAgICAgY29uc3Qgcm9sZSA9IGJvdC50cmFuc2Zvcm1lcnMucm9sZShib3QsIHsgcm9sZTogdmFsdWUsIGd1aWxkSWQgfSlcbiAgICAgICAgcmV0dXJuIFtyb2xlLmlkLCByb2xlXVxuICAgICAgfSksXG4gICAgKVxuICB9XG5cbiAgaWYgKHJlc29sdmVkLmNoYW5uZWxzKSB7XG4gICAgdHJhbnNmb3JtZWQuY2hhbm5lbHMgPSBuZXcgQ29sbGVjdGlvbihcbiAgICAgIE9iamVjdC5lbnRyaWVzKHJlc29sdmVkLmNoYW5uZWxzKS5tYXAoKFtrZXksIHZhbHVlXSkgPT4ge1xuICAgICAgICBjb25zdCBpZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKGtleSlcbiAgICAgICAgY29uc3QgY2hhbm5lbCA9IHZhbHVlIGFzIHtcbiAgICAgICAgICBpZDogc3RyaW5nXG4gICAgICAgICAgbmFtZTogc3RyaW5nXG4gICAgICAgICAgdHlwZTogQ2hhbm5lbFR5cGVzXG4gICAgICAgICAgcGVybWlzc2lvbnM6IHN0cmluZ1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgaWQsXG4gICAgICAgICAge1xuICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICBuYW1lOiBjaGFubmVsLm5hbWUsXG4gICAgICAgICAgICB0eXBlOiBjaGFubmVsLnR5cGUsXG4gICAgICAgICAgICBwZXJtaXNzaW9uczogYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UoY2hhbm5lbC5wZXJtaXNzaW9ucyksXG4gICAgICAgICAgfSxcbiAgICAgICAgXVxuICAgICAgfSksXG4gICAgKVxuICB9XG5cbiAgaWYgKHJlc29sdmVkLmF0dGFjaG1lbnRzKSB7XG4gICAgdHJhbnNmb3JtZWQuYXR0YWNobWVudHMgPSBuZXcgQ29sbGVjdGlvbihcbiAgICAgIE9iamVjdC5lbnRyaWVzKHJlc29sdmVkLmF0dGFjaG1lbnRzKS5tYXAoKFtrZXksIHZhbHVlXSkgPT4ge1xuICAgICAgICBjb25zdCBpZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKGtleSlcbiAgICAgICAgcmV0dXJuIFtpZCwgYm90LnRyYW5zZm9ybWVycy5hdHRhY2htZW50KGJvdCwgdmFsdWUpXVxuICAgICAgfSksXG4gICAgKVxuICB9XG5cbiAgcmV0dXJuIHRyYW5zZm9ybWVkXG59XG4iXSwibmFtZXMiOlsidHJhbnNmb3JtSW50ZXJhY3Rpb24iLCJ0cmFuc2Zvcm1JbnRlcmFjdGlvbkRhdGFPcHRpb24iLCJ0cmFuc2Zvcm1JbnRlcmFjdGlvbkRhdGFSZXNvbHZlZCIsImJhc2VJbnRlcmFjdGlvbiIsInJlc3BvbmQiLCJyZXNwb25zZSIsIm9wdGlvbnMiLCJ0eXBlIiwiSW50ZXJhY3Rpb25SZXNwb25zZVR5cGVzIiwiQ2hhbm5lbE1lc3NhZ2VXaXRoU291cmNlIiwiY29udGVudCIsInRpdGxlIiwiTW9kYWwiLCJJbnRlcmFjdGlvblR5cGVzIiwiQXBwbGljYXRpb25Db21tYW5kQXV0b2NvbXBsZXRlIiwiQXBwbGljYXRpb25Db21tYW5kQXV0b2NvbXBsZXRlUmVzdWx0IiwiaXNQcml2YXRlIiwiZmxhZ3MiLCJNZXNzYWdlRmxhZ3MiLCJFcGhlbWVyYWwiLCJhY2tub3dsZWRnZWQiLCJib3QiLCJoZWxwZXJzIiwic2VuZEZvbGxvd3VwTWVzc2FnZSIsInRva2VuIiwiTW9kYWxTdWJtaXQiLCJFcnJvciIsInNlbmRJbnRlcmFjdGlvblJlc3BvbnNlIiwiaWQiLCJkYXRhIiwiZWRpdCIsIm1lc3NhZ2VJZCIsImVkaXRGb2xsb3d1cE1lc3NhZ2UiLCJNZXNzYWdlQ29tcG9uZW50IiwiVXBkYXRlTWVzc2FnZSIsImVkaXRPcmlnaW5hbEludGVyYWN0aW9uUmVzcG9uc2UiLCJkZWZlckVkaXQiLCJEZWZlcnJlZFVwZGF0ZU1lc3NhZ2UiLCJkZWZlciIsIkRlZmVycmVkQ2hhbm5lbE1lc3NhZ2VXaXRoU291cmNlIiwidW5kZWZpbmVkIiwiZGVsZXRlIiwiZGVsZXRlRm9sbG93dXBNZXNzYWdlIiwiZGVsZXRlT3JpZ2luYWxJbnRlcmFjdGlvblJlc3BvbnNlIiwicGF5bG9hZCIsImd1aWxkSWQiLCJpbnRlcmFjdGlvbiIsImd1aWxkX2lkIiwidHJhbnNmb3JtZXJzIiwic25vd2ZsYWtlIiwidXNlciIsIm1lbWJlciIsIk9iamVjdCIsImNyZWF0ZSIsInByb3BzIiwiZGVzaXJlZFByb3BlcnRpZXMiLCJhcHBsaWNhdGlvbklkIiwiYXBwbGljYXRpb25faWQiLCJ2ZXJzaW9uIiwibG9jYWxlIiwiZ3VpbGRMb2NhbGUiLCJndWlsZF9sb2NhbGUiLCJndWlsZCIsInNoYXJkSWQiLCJhcHBQZXJtaXNzaW9ucyIsImFwcF9wZXJtaXNzaW9ucyIsIm1lc3NhZ2UiLCJjaGFubmVsIiwiY2hhbm5lbElkIiwiY2hhbm5lbF9pZCIsImF1dGhvcml6aW5nSW50ZWdyYXRpb25Pd25lcnMiLCJhdXRob3JpemluZ19pbnRlZ3JhdGlvbl9vd25lcnMiLCJEaXNjb3JkQXBwbGljYXRpb25JbnRlZ3JhdGlvblR5cGUiLCJHdWlsZEluc3RhbGwiLCJVc2VySW5zdGFsbCIsImNvbnRleHQiLCJjb21wb25lbnRUeXBlIiwiY29tcG9uZW50X3R5cGUiLCJjdXN0b21JZCIsImN1c3RvbV9pZCIsImNvbXBvbmVudHMiLCJtYXAiLCJjb21wb25lbnQiLCJ2YWx1ZXMiLCJuYW1lIiwicmVzb2x2ZWQiLCJvcHQiLCJpbnRlcmFjdGlvbkRhdGFPcHRpb25zIiwidGFyZ2V0SWQiLCJ0YXJnZXRfaWQiLCJjdXN0b21pemVycyIsIm9wdGlvbiIsInZhbHVlIiwiZm9jdXNlZCIsInRyYW5zZm9ybWVkIiwibWVzc2FnZXMiLCJDb2xsZWN0aW9uIiwiZW50cmllcyIsIl9pZCIsInVzZXJzIiwibWVtYmVycyIsInJvbGVzIiwicm9sZSIsImNoYW5uZWxzIiwia2V5IiwicGVybWlzc2lvbnMiLCJhdHRhY2htZW50cyIsImF0dGFjaG1lbnQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0lBNEZnQkEsb0JBQW9CO2VBQXBCQTs7SUE4REFDLDhCQUE4QjtlQUE5QkE7O0lBWUFDLGdDQUFnQztlQUFoQ0E7Ozt1QkE5SlQ7dUJBQ29CO0FBWTNCLE1BQU1DLGtCQUFrQjtJQUN0QixNQUFNQyxTQUFRQyxRQUFRLEVBQUVDLE9BQU87UUFDN0IsSUFBSUMsT0FBT0MsK0JBQXdCLENBQUNDLHdCQUF3QjtRQUU1RCw0REFBNEQ7UUFDNUQsSUFBSSxPQUFPSixhQUFhLFVBQVVBLFdBQVc7WUFBRUssU0FBU0w7UUFBUztRQUVqRSw0RkFBNEY7UUFDNUYsSUFBSUEsU0FBU00sS0FBSyxFQUFFSixPQUFPQywrQkFBd0IsQ0FBQ0ksS0FBSztRQUN6RCxJQUFJLElBQUksQ0FBQ0wsSUFBSSxLQUFLTSx1QkFBZ0IsQ0FBQ0MsOEJBQThCLEVBQUVQLE9BQU9DLCtCQUF3QixDQUFDTyxvQ0FBb0M7UUFDdkksSUFBSVIsU0FBU0MsK0JBQXdCLENBQUNDLHdCQUF3QixJQUFJSCxTQUFTVSxXQUFXWCxTQUFTWSxLQUFLLEdBQUdDLG1CQUFZLENBQUNDLFNBQVM7UUFFN0gseUZBQXlGO1FBQ3pGLElBQUksSUFBSSxDQUFDQyxZQUFZLEVBQUUsT0FBTyxNQUFNLElBQUksQ0FBQ0MsR0FBRyxDQUFDQyxPQUFPLENBQUNDLG1CQUFtQixDQUFDLElBQUksQ0FBQ0MsS0FBSyxFQUFFbkI7UUFFckYsMkJBQTJCO1FBQzNCLElBQUksSUFBSSxDQUFDRSxJQUFJLEtBQUtNLHVCQUFnQixDQUFDWSxXQUFXLElBQUlsQixTQUFTQywrQkFBd0IsQ0FBQ0ksS0FBSyxFQUN2RixNQUFNLElBQUljLE1BQU07UUFFbEIsSUFBSSxDQUFDTixZQUFZLEdBQUc7UUFDcEIsT0FBTyxNQUFNLElBQUksQ0FBQ0MsR0FBRyxDQUFDQyxPQUFPLENBQUNLLHVCQUF1QixDQUFDLElBQUksQ0FBQ0MsRUFBRSxFQUFFLElBQUksQ0FBQ0osS0FBSyxFQUFFO1lBQUVqQjtZQUFNc0IsTUFBTXhCO1FBQVM7SUFDcEc7SUFDQSxNQUFNeUIsTUFBS3pCLFFBQVEsRUFBRTBCLFNBQVM7UUFDNUIsSUFBSSxJQUFJLENBQUN4QixJQUFJLEtBQUtNLHVCQUFnQixDQUFDQyw4QkFBOEIsRUFBRSxNQUFNLElBQUlZLE1BQU07UUFFbkYsNERBQTREO1FBQzVELElBQUksT0FBT3JCLGFBQWEsVUFBVUEsV0FBVztZQUFFSyxTQUFTTDtRQUFTO1FBRWpFLElBQUkwQixXQUFXO1lBQ2IsT0FBTyxNQUFNLElBQUksQ0FBQ1YsR0FBRyxFQUFFQyxRQUFRVSxvQkFBb0IsSUFBSSxDQUFDUixLQUFLLEVBQUVPLFdBQVcxQjtRQUM1RTtRQUVBLElBQUksQ0FBQyxJQUFJLENBQUNlLFlBQVksRUFBRTtZQUN0QixJQUFJLElBQUksQ0FBQ2IsSUFBSSxLQUFLTSx1QkFBZ0IsQ0FBQ29CLGdCQUFnQixFQUNqRCxNQUFNLElBQUlQLE1BQU07WUFFbEIsSUFBSSxDQUFDTixZQUFZLEdBQUc7WUFDcEIsT0FBTyxNQUFNLElBQUksQ0FBQ0MsR0FBRyxDQUFDQyxPQUFPLENBQUNLLHVCQUF1QixDQUFDLElBQUksQ0FBQ0MsRUFBRSxFQUFFLElBQUksQ0FBQ0osS0FBSyxFQUFFO2dCQUFFakIsTUFBTUMsK0JBQXdCLENBQUMwQixhQUFhO2dCQUFFTCxNQUFNeEI7WUFBUztRQUM1STtRQUVBLE9BQU8sTUFBTSxJQUFJLENBQUNnQixHQUFHLENBQUNDLE9BQU8sQ0FBQ2EsK0JBQStCLENBQUMsSUFBSSxDQUFDWCxLQUFLLEVBQUVuQjtJQUM1RTtJQUNBLE1BQU0rQjtRQUNKLElBQUksSUFBSSxDQUFDN0IsSUFBSSxLQUFLTSx1QkFBZ0IsQ0FBQ0MsOEJBQThCLEVBQUUsTUFBTSxJQUFJWSxNQUFNO1FBQ25GLElBQUksSUFBSSxDQUFDTixZQUFZLEVBQUUsTUFBTSxJQUFJTSxNQUFNO1FBRXZDLElBQUksSUFBSSxDQUFDbkIsSUFBSSxLQUFLTSx1QkFBZ0IsQ0FBQ29CLGdCQUFnQixFQUNqRCxNQUFNLElBQUlQLE1BQU07UUFFbEIsSUFBSSxDQUFDTixZQUFZLEdBQUc7UUFDcEIsT0FBTyxNQUFNLElBQUksQ0FBQ0MsR0FBRyxDQUFDQyxPQUFPLENBQUNLLHVCQUF1QixDQUFDLElBQUksQ0FBQ0MsRUFBRSxFQUFFLElBQUksQ0FBQ0osS0FBSyxFQUFFO1lBQUVqQixNQUFNQywrQkFBd0IsQ0FBQzZCLHFCQUFxQjtRQUFDO0lBQ3BJO0lBQ0EsTUFBTUMsT0FBTXRCLFNBQVM7UUFDbkIsSUFBSSxJQUFJLENBQUNJLFlBQVksRUFBRSxNQUFNLElBQUlNLE1BQU07UUFFdkMsSUFBSSxDQUFDTixZQUFZLEdBQUc7UUFDcEIsT0FBTyxNQUFNLElBQUksQ0FBQ0MsR0FBRyxDQUFDQyxPQUFPLENBQUNLLHVCQUF1QixDQUFDLElBQUksQ0FBQ0MsRUFBRSxFQUFFLElBQUksQ0FBQ0osS0FBSyxFQUFFO1lBQ3pFakIsTUFBTUMsK0JBQXdCLENBQUMrQixnQ0FBZ0M7WUFDL0RWLE1BQU07Z0JBQ0paLE9BQU9ELFlBQVlFLG1CQUFZLENBQUNDLFNBQVMsR0FBR3FCO1lBQzlDO1FBQ0Y7SUFDRjtJQUNBLE1BQU1DLFFBQU9WLFNBQVM7UUFDcEIsSUFBSSxJQUFJLENBQUN4QixJQUFJLEtBQUtNLHVCQUFnQixDQUFDQyw4QkFBOEIsRUFBRSxNQUFNLElBQUlZLE1BQU07UUFFbkYsSUFBSUssV0FBVyxPQUFPLE1BQU0sSUFBSSxDQUFDVixHQUFHLEVBQUVDLFFBQVFvQixzQkFBc0IsSUFBSSxDQUFDbEIsS0FBSyxFQUFFTzthQUMzRSxPQUFPLE1BQU0sSUFBSSxDQUFDVixHQUFHLEVBQUVDLFFBQVFxQixrQ0FBa0MsSUFBSSxDQUFDbkIsS0FBSztJQUNsRjtBQUNGO0FBRU8sU0FBU3hCLHFCQUFxQnFCLEdBQVEsRUFBRXVCLE9BQTZEO0lBQzFHLE1BQU1DLFVBQVVELFFBQVFFLFdBQVcsQ0FBQ0MsUUFBUSxHQUFHMUIsSUFBSTJCLFlBQVksQ0FBQ0MsU0FBUyxDQUFDTCxRQUFRRSxXQUFXLENBQUNDLFFBQVEsSUFBSVA7SUFDMUcsTUFBTVUsT0FBTzdCLElBQUkyQixZQUFZLENBQUNFLElBQUksQ0FBQzdCLEtBQUt1QixRQUFRRSxXQUFXLENBQUNLLE1BQU0sRUFBRUQsUUFBUU4sUUFBUUUsV0FBVyxDQUFDSSxJQUFJO0lBRXBHLE1BQU1KLGNBQTJCTSxPQUFPQyxNQUFNLENBQUNsRDtJQUMvQyxNQUFNbUQsUUFBUWpDLElBQUkyQixZQUFZLENBQUNPLGlCQUFpQixDQUFDVCxXQUFXO0lBQzVEQSxZQUFZekIsR0FBRyxHQUFHQTtJQUNsQnlCLFlBQVkxQixZQUFZLEdBQUc7SUFFM0IsSUFBSWtDLE1BQU0xQixFQUFFLElBQUlnQixRQUFRRSxXQUFXLENBQUNsQixFQUFFLEVBQUVrQixZQUFZbEIsRUFBRSxHQUFHUCxJQUFJMkIsWUFBWSxDQUFDQyxTQUFTLENBQUNMLFFBQVFFLFdBQVcsQ0FBQ2xCLEVBQUU7SUFDMUcsSUFBSTBCLE1BQU1FLGFBQWEsSUFBSVosUUFBUUUsV0FBVyxDQUFDVyxjQUFjLEVBQzNEWCxZQUFZVSxhQUFhLEdBQUduQyxJQUFJMkIsWUFBWSxDQUFDQyxTQUFTLENBQUNMLFFBQVFFLFdBQVcsQ0FBQ1csY0FBYztJQUMzRixJQUFJSCxNQUFNL0MsSUFBSSxJQUFJcUMsUUFBUUUsV0FBVyxDQUFDdkMsSUFBSSxFQUFFdUMsWUFBWXZDLElBQUksR0FBR3FDLFFBQVFFLFdBQVcsQ0FBQ3ZDLElBQUk7SUFDdkYsSUFBSStDLE1BQU05QixLQUFLLElBQUlvQixRQUFRRSxXQUFXLENBQUN0QixLQUFLLEVBQUVzQixZQUFZdEIsS0FBSyxHQUFHb0IsUUFBUUUsV0FBVyxDQUFDdEIsS0FBSztJQUMzRixJQUFJOEIsTUFBTUksT0FBTyxJQUFJZCxRQUFRRSxXQUFXLENBQUNZLE9BQU8sRUFBRVosWUFBWVksT0FBTyxHQUFHZCxRQUFRRSxXQUFXLENBQUNZLE9BQU87SUFDbkcsSUFBSUosTUFBTUssTUFBTSxJQUFJZixRQUFRRSxXQUFXLENBQUNhLE1BQU0sRUFBRWIsWUFBWWEsTUFBTSxHQUFHZixRQUFRRSxXQUFXLENBQUNhLE1BQU07SUFDL0YsSUFBSUwsTUFBTU0sV0FBVyxJQUFJaEIsUUFBUUUsV0FBVyxDQUFDZSxZQUFZLEVBQUVmLFlBQVljLFdBQVcsR0FBR2hCLFFBQVFFLFdBQVcsQ0FBQ2UsWUFBWTtJQUNySCxJQUFJUCxNQUFNUSxLQUFLLElBQUlsQixRQUFRRSxXQUFXLENBQUNnQixLQUFLLEVBQzFDLHdFQUF3RTtJQUN4RWhCLFlBQVlnQixLQUFLLEdBQUd6QyxJQUFJMkIsWUFBWSxDQUFDYyxLQUFLLENBQUN6QyxLQUFLO1FBQUV5QyxPQUFPbEIsUUFBUUUsV0FBVyxDQUFDZ0IsS0FBSztRQUFFQyxTQUFTbkIsUUFBUW1CLE9BQU87SUFBQztJQUMvRyxJQUFJVCxNQUFNVCxPQUFPLElBQUlBLFNBQVNDLFlBQVlELE9BQU8sR0FBR0E7SUFDcEQsSUFBSVMsTUFBTUosSUFBSSxJQUFJQSxNQUFNSixZQUFZSSxJQUFJLEdBQUdBO0lBQzNDLElBQUlJLE1BQU1VLGNBQWMsSUFBSXBCLFFBQVFFLFdBQVcsQ0FBQ21CLGVBQWUsRUFDN0RuQixZQUFZa0IsY0FBYyxHQUFHM0MsSUFBSTJCLFlBQVksQ0FBQ0MsU0FBUyxDQUFDTCxRQUFRRSxXQUFXLENBQUNtQixlQUFlO0lBQzdGLElBQUlYLE1BQU1ZLE9BQU8sSUFBSXRCLFFBQVFFLFdBQVcsQ0FBQ29CLE9BQU8sRUFBRXBCLFlBQVlvQixPQUFPLEdBQUc3QyxJQUFJMkIsWUFBWSxDQUFDa0IsT0FBTyxDQUFDN0MsS0FBS3VCLFFBQVFFLFdBQVcsQ0FBQ29CLE9BQU87SUFDakksSUFBSVosTUFBTWEsT0FBTyxJQUFJdkIsUUFBUUUsV0FBVyxDQUFDcUIsT0FBTyxFQUM5Q3JCLFlBQVlxQixPQUFPLEdBQUc5QyxJQUFJMkIsWUFBWSxDQUFDbUIsT0FBTyxDQUFDOUMsS0FBSztRQUFFOEMsU0FBU3ZCLFFBQVFFLFdBQVcsQ0FBQ3FCLE9BQU87UUFBb0J0QjtJQUFRO0lBQ3hILElBQUlTLE1BQU1jLFNBQVMsSUFBSXhCLFFBQVFFLFdBQVcsQ0FBQ3VCLFVBQVUsRUFBRXZCLFlBQVlzQixTQUFTLEdBQUcvQyxJQUFJMkIsWUFBWSxDQUFDQyxTQUFTLENBQUNMLFFBQVFFLFdBQVcsQ0FBQ3VCLFVBQVU7SUFDeEksSUFBSWYsTUFBTUgsTUFBTSxJQUFJTixXQUFXRCxRQUFRRSxXQUFXLENBQUNLLE1BQU0sRUFDdkRMLFlBQVlLLE1BQU0sR0FBRzlCLElBQUkyQixZQUFZLENBQUNHLE1BQU0sQ0FBQzlCLEtBQUt1QixRQUFRRSxXQUFXLENBQUNLLE1BQU0sRUFBRU4sU0FBU0ssS0FBS3RCLEVBQUU7SUFDaEcsSUFBSTBCLE1BQU1nQiw0QkFBNEIsSUFBSTFCLFFBQVFFLFdBQVcsQ0FBQ3lCLDhCQUE4QixFQUFFO1FBQzVGekIsWUFBWXdCLDRCQUE0QixHQUFHLENBQUM7UUFFNUMsSUFBSTFCLFFBQVFFLFdBQVcsQ0FBQ3lCLDhCQUE4QixDQUFDLElBQUksRUFDekR6QixZQUFZd0IsNEJBQTRCLENBQUNFLHdDQUFpQyxDQUFDQyxZQUFZLENBQUMsR0FBR3BELElBQUkyQixZQUFZLENBQUNDLFNBQVMsQ0FDbkhMLFFBQVFFLFdBQVcsQ0FBQ3lCLDhCQUE4QixDQUFDLElBQUk7UUFFM0QsSUFBSTNCLFFBQVFFLFdBQVcsQ0FBQ3lCLDhCQUE4QixDQUFDLElBQUksRUFDekR6QixZQUFZd0IsNEJBQTRCLENBQUNFLHdDQUFpQyxDQUFDRSxXQUFXLENBQUMsR0FBR3JELElBQUkyQixZQUFZLENBQUNDLFNBQVMsQ0FDbEhMLFFBQVFFLFdBQVcsQ0FBQ3lCLDhCQUE4QixDQUFDLElBQUk7SUFFN0Q7SUFDQSxJQUFJakIsTUFBTXFCLE9BQU8sSUFBSS9CLFFBQVFFLFdBQVcsQ0FBQzZCLE9BQU8sRUFBRTdCLFlBQVk2QixPQUFPLEdBQUcvQixRQUFRRSxXQUFXLENBQUM2QixPQUFPO0lBQ25HLElBQUlyQixNQUFNekIsSUFBSSxJQUFJZSxRQUFRRSxXQUFXLENBQUNqQixJQUFJLEVBQUU7UUFDMUNpQixZQUFZakIsSUFBSSxHQUFHO1lBQ2pCdEIsTUFBTXFDLFFBQVFFLFdBQVcsQ0FBQ2pCLElBQUksQ0FBQ3RCLElBQUk7WUFDbkNxRSxlQUFlaEMsUUFBUUUsV0FBVyxDQUFDakIsSUFBSSxDQUFDZ0QsY0FBYztZQUN0REMsVUFBVWxDLFFBQVFFLFdBQVcsQ0FBQ2pCLElBQUksQ0FBQ2tELFNBQVM7WUFDNUNDLFlBQVlwQyxRQUFRRSxXQUFXLENBQUNqQixJQUFJLENBQUNtRCxVQUFVLEVBQUVDLElBQUksQ0FBQ0MsWUFBYzdELElBQUkyQixZQUFZLENBQUNrQyxTQUFTLENBQUM3RCxLQUFLNkQ7WUFDcEdDLFFBQVF2QyxRQUFRRSxXQUFXLENBQUNqQixJQUFJLENBQUNzRCxNQUFNO1lBQ3ZDdkQsSUFBSWdCLFFBQVFFLFdBQVcsQ0FBQ2pCLElBQUksQ0FBQ0QsRUFBRSxHQUFHUCxJQUFJMkIsWUFBWSxDQUFDQyxTQUFTLENBQUNMLFFBQVFFLFdBQVcsQ0FBQ2pCLElBQUksQ0FBQ0QsRUFBRSxJQUFJWTtZQUM1RjRDLE1BQU14QyxRQUFRRSxXQUFXLENBQUNqQixJQUFJLENBQUN1RCxJQUFJO1lBQ25DQyxVQUFVekMsUUFBUUUsV0FBVyxDQUFDakIsSUFBSSxDQUFDd0QsUUFBUSxHQUFHbkYsaUNBQWlDbUIsS0FBS3VCLFFBQVFFLFdBQVcsQ0FBQ2pCLElBQUksQ0FBQ3dELFFBQVEsRUFBRXhDLFdBQVdMO1lBQ2xJbEMsU0FBU3NDLFFBQVFFLFdBQVcsQ0FBQ2pCLElBQUksQ0FBQ3ZCLE9BQU8sRUFBRTJFLElBQUksQ0FBQ0ssTUFBUWpFLElBQUkyQixZQUFZLENBQUN1QyxzQkFBc0IsQ0FBQ2xFLEtBQUtpRTtZQUNyR0UsVUFBVTVDLFFBQVFFLFdBQVcsQ0FBQ2pCLElBQUksQ0FBQzRELFNBQVMsR0FBR3BFLElBQUkyQixZQUFZLENBQUNDLFNBQVMsQ0FBQ0wsUUFBUUUsV0FBVyxDQUFDakIsSUFBSSxDQUFDNEQsU0FBUyxJQUFJakQ7UUFFbEg7SUFDRjtJQUVBLE9BQU9uQixJQUFJMkIsWUFBWSxDQUFDMEMsV0FBVyxDQUFDNUMsV0FBVyxDQUFDekIsS0FBS3VCLFNBQVNFO0FBQ2hFO0FBRU8sU0FBUzdDLCtCQUErQm9CLEdBQVEsRUFBRXNFLE1BQW9DO0lBQzNGLE1BQU1MLE1BQU07UUFDVkYsTUFBTU8sT0FBT1AsSUFBSTtRQUNqQjdFLE1BQU1vRixPQUFPcEYsSUFBSTtRQUNqQnFGLE9BQU9ELE9BQU9DLEtBQUs7UUFDbkJ0RixTQUFTcUYsT0FBT3JGLE9BQU87UUFDdkJ1RixTQUFTRixPQUFPRSxPQUFPO0lBQ3pCO0lBRUEsT0FBT3hFLElBQUkyQixZQUFZLENBQUMwQyxXQUFXLENBQUNILHNCQUFzQixDQUFDbEUsS0FBS3NFLFFBQVFMO0FBQzFFO0FBRU8sU0FBU3BGLGlDQUFpQ21CLEdBQVEsRUFBRWdFLFFBQXdDLEVBQUV4QyxPQUFnQjtJQUNuSCxNQUFNaUQsY0FBdUMsQ0FBQztJQUU5QyxJQUFJVCxTQUFTVSxRQUFRLEVBQUU7UUFDckJELFlBQVlDLFFBQVEsR0FBRyxJQUFJQyxpQkFBVSxDQUNuQzVDLE9BQU82QyxPQUFPLENBQUNaLFNBQVNVLFFBQVEsRUFBRWQsR0FBRyxDQUFDLENBQUMsQ0FBQ2lCLEtBQUtOLE1BQU07WUFDakQsTUFBTTFCLFVBQW1CN0MsSUFBSTJCLFlBQVksQ0FBQ2tCLE9BQU8sQ0FBQzdDLEtBQUt1RTtZQUN2RCxPQUFPO2dCQUFDMUIsUUFBUXRDLEVBQUU7Z0JBQUVzQzthQUFRO1FBQzlCO0lBRUo7SUFFQSxJQUFJbUIsU0FBU2MsS0FBSyxFQUFFO1FBQ2xCTCxZQUFZSyxLQUFLLEdBQUcsSUFBSUgsaUJBQVUsQ0FDaEM1QyxPQUFPNkMsT0FBTyxDQUFDWixTQUFTYyxLQUFLLEVBQUVsQixHQUFHLENBQUMsQ0FBQyxDQUFDaUIsS0FBS04sTUFBTTtZQUM5QyxNQUFNMUMsT0FBTzdCLElBQUkyQixZQUFZLENBQUNFLElBQUksQ0FBQzdCLEtBQUt1RTtZQUN4QyxPQUFPO2dCQUFDMUMsS0FBS3RCLEVBQUU7Z0JBQUVzQjthQUFLO1FBQ3hCO0lBRUo7SUFFQSxJQUFJTCxXQUFXd0MsU0FBU2UsT0FBTyxFQUFFO1FBQy9CTixZQUFZTSxPQUFPLEdBQUcsSUFBSUosaUJBQVUsQ0FDbEM1QyxPQUFPNkMsT0FBTyxDQUFDWixTQUFTZSxPQUFPLEVBQUVuQixHQUFHLENBQUMsQ0FBQyxDQUFDckQsSUFBSWdFLE1BQU07WUFDL0MsTUFBTXpDLFNBQWlCOUIsSUFBSTJCLFlBQVksQ0FBQ0csTUFBTSxDQUFDOUIsS0FBS3VFLE9BQU8vQyxTQUFTeEIsSUFBSTJCLFlBQVksQ0FBQ0MsU0FBUyxDQUFDckI7WUFDL0YsT0FBTztnQkFBQ3VCLE9BQU92QixFQUFFO2dCQUFFdUI7YUFBTztRQUM1QjtJQUVKO0lBRUEsSUFBSU4sV0FBV3dDLFNBQVNnQixLQUFLLEVBQUU7UUFDN0JQLFlBQVlPLEtBQUssR0FBRyxJQUFJTCxpQkFBVSxDQUNoQzVDLE9BQU82QyxPQUFPLENBQUNaLFNBQVNnQixLQUFLLEVBQUVwQixHQUFHLENBQUMsQ0FBQyxDQUFDaUIsS0FBS04sTUFBTTtZQUM5QyxNQUFNVSxPQUFPakYsSUFBSTJCLFlBQVksQ0FBQ3NELElBQUksQ0FBQ2pGLEtBQUs7Z0JBQUVpRixNQUFNVjtnQkFBTy9DO1lBQVE7WUFDL0QsT0FBTztnQkFBQ3lELEtBQUsxRSxFQUFFO2dCQUFFMEU7YUFBSztRQUN4QjtJQUVKO0lBRUEsSUFBSWpCLFNBQVNrQixRQUFRLEVBQUU7UUFDckJULFlBQVlTLFFBQVEsR0FBRyxJQUFJUCxpQkFBVSxDQUNuQzVDLE9BQU82QyxPQUFPLENBQUNaLFNBQVNrQixRQUFRLEVBQUV0QixHQUFHLENBQUMsQ0FBQyxDQUFDdUIsS0FBS1osTUFBTTtZQUNqRCxNQUFNaEUsS0FBS1AsSUFBSTJCLFlBQVksQ0FBQ0MsU0FBUyxDQUFDdUQ7WUFDdEMsTUFBTXJDLFVBQVV5QjtZQU1oQixPQUFPO2dCQUNMaEU7Z0JBQ0E7b0JBQ0VBO29CQUNBd0QsTUFBTWpCLFFBQVFpQixJQUFJO29CQUNsQjdFLE1BQU00RCxRQUFRNUQsSUFBSTtvQkFDbEJrRyxhQUFhcEYsSUFBSTJCLFlBQVksQ0FBQ0MsU0FBUyxDQUFDa0IsUUFBUXNDLFdBQVc7Z0JBQzdEO2FBQ0Q7UUFDSDtJQUVKO0lBRUEsSUFBSXBCLFNBQVNxQixXQUFXLEVBQUU7UUFDeEJaLFlBQVlZLFdBQVcsR0FBRyxJQUFJVixpQkFBVSxDQUN0QzVDLE9BQU82QyxPQUFPLENBQUNaLFNBQVNxQixXQUFXLEVBQUV6QixHQUFHLENBQUMsQ0FBQyxDQUFDdUIsS0FBS1osTUFBTTtZQUNwRCxNQUFNaEUsS0FBS1AsSUFBSTJCLFlBQVksQ0FBQ0MsU0FBUyxDQUFDdUQ7WUFDdEMsT0FBTztnQkFBQzVFO2dCQUFJUCxJQUFJMkIsWUFBWSxDQUFDMkQsVUFBVSxDQUFDdEYsS0FBS3VFO2FBQU87UUFDdEQ7SUFFSjtJQUVBLE9BQU9FO0FBQ1QifQ==
|
|
214
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvaW50ZXJhY3Rpb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgdHlwZSBDaGFubmVsVHlwZXMsXG4gIERpc2NvcmRBcHBsaWNhdGlvbkludGVncmF0aW9uVHlwZSxcbiAgdHlwZSBEaXNjb3JkSW50ZXJhY3Rpb24sXG4gIHR5cGUgRGlzY29yZEludGVyYWN0aW9uRGF0YU9wdGlvbixcbiAgSW50ZXJhY3Rpb25SZXNwb25zZVR5cGVzLFxuICBJbnRlcmFjdGlvblR5cGVzLFxuICBNZXNzYWdlRmxhZ3MsXG59IGZyb20gJ0BkaXNjb3JkZW5vL3R5cGVzJ1xuaW1wb3J0IHsgQ29sbGVjdGlvbiB9IGZyb20gJ0BkaXNjb3JkZW5vL3V0aWxzJ1xuaW1wb3J0IHtcbiAgdHlwZSBCb3QsXG4gIHR5cGUgRGlzY29yZENoYW5uZWwsXG4gIHR5cGUgSW50ZXJhY3Rpb24sXG4gIHR5cGUgSW50ZXJhY3Rpb25EYXRhT3B0aW9uLFxuICB0eXBlIEludGVyYWN0aW9uRGF0YVJlc29sdmVkLFxuICB0eXBlIEludGVyYWN0aW9uUmVzb2x2ZWRDaGFubmVsLFxuICB0eXBlIE1lbWJlcixcbiAgdHlwZSBNZXNzYWdlLFxufSBmcm9tICcuLi9pbmRleC5qcydcbmltcG9ydCB0eXBlIHsgRGlzY29yZEludGVyYWN0aW9uRGF0YVJlc29sdmVkIH0gZnJvbSAnLi4vdHlwaW5ncy5qcydcblxuY29uc3QgYmFzZUludGVyYWN0aW9uID0ge1xuICBhc3luYyByZXNwb25kKHJlc3BvbnNlLCBvcHRpb25zKSB7XG4gICAgbGV0IHR5cGUgPSBJbnRlcmFjdGlvblJlc3BvbnNlVHlwZXMuQ2hhbm5lbE1lc3NhZ2VXaXRoU291cmNlXG5cbiAgICAvLyBJZiB1c2VyIHByb3ZpZGVzIGEgc3RyaW5nLCBjaGFuZ2UgaXQgdG8gYSByZXNwb25zZSBvYmplY3RcbiAgICBpZiAodHlwZW9mIHJlc3BvbnNlID09PSAnc3RyaW5nJykgcmVzcG9uc2UgPSB7IGNvbnRlbnQ6IHJlc3BvbnNlIH1cblxuICAgIC8vIElmIHVzZXIgcHJvdmlkZXMgYW4gb2JqZWN0LCBkZXRlcm1pbmUgaWYgaXQgc2hvdWxkIGJlIGFuIGF1dG9jb21wbGV0ZSBvciBhIG1vZGFsIHJlc3BvbnNlXG4gICAgaWYgKHJlc3BvbnNlLnRpdGxlKSB0eXBlID0gSW50ZXJhY3Rpb25SZXNwb25zZVR5cGVzLk1vZGFsXG4gICAgaWYgKHRoaXMudHlwZSA9PT0gSW50ZXJhY3Rpb25UeXBlcy5BcHBsaWNhdGlvbkNvbW1hbmRBdXRvY29tcGxldGUpIHR5cGUgPSBJbnRlcmFjdGlvblJlc3BvbnNlVHlwZXMuQXBwbGljYXRpb25Db21tYW5kQXV0b2NvbXBsZXRlUmVzdWx0XG4gICAgaWYgKHR5cGUgPT09IEludGVyYWN0aW9uUmVzcG9uc2VUeXBlcy5DaGFubmVsTWVzc2FnZVdpdGhTb3VyY2UgJiYgb3B0aW9ucz8uaXNQcml2YXRlKSByZXNwb25zZS5mbGFncyA9IE1lc3NhZ2VGbGFncy5FcGhlbWVyYWxcblxuICAgIC8vIFNpbmNlIHRoaXMgaGFzIGFscmVhZHkgYmVlbiBnaXZlbiBhIHJlc3BvbnNlLCBhbnkgZnVydGhlciByZXNwb25zZXMgbXVzdCBiZSBmb2xsb3d1cHMuXG4gICAgaWYgKHRoaXMuYWNrbm93bGVkZ2VkKSByZXR1cm4gYXdhaXQgdGhpcy5ib3QuaGVscGVycy5zZW5kRm9sbG93dXBNZXNzYWdlKHRoaXMudG9rZW4sIHJlc3BvbnNlKVxuXG4gICAgLy8gTW9kYWxzIGNhbm5vdCBiZSBjaGFpbmVkXG4gICAgaWYgKHRoaXMudHlwZSA9PT0gSW50ZXJhY3Rpb25UeXBlcy5Nb2RhbFN1Ym1pdCAmJiB0eXBlID09PSBJbnRlcmFjdGlvblJlc3BvbnNlVHlwZXMuTW9kYWwpXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCByZXNwb25kIHRvIGEgbW9kYWwgaW50ZXJhY3Rpb24gd2l0aCBhbm90aGVyIG1vZGFsLicpXG5cbiAgICB0aGlzLmFja25vd2xlZGdlZCA9IHRydWVcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5ib3QuaGVscGVycy5zZW5kSW50ZXJhY3Rpb25SZXNwb25zZSh0aGlzLmlkLCB0aGlzLnRva2VuLCB7IHR5cGUsIGRhdGE6IHJlc3BvbnNlIH0pXG4gIH0sXG4gIGFzeW5jIGVkaXQocmVzcG9uc2UsIG1lc3NhZ2VJZCkge1xuICAgIGlmICh0aGlzLnR5cGUgPT09IEludGVyYWN0aW9uVHlwZXMuQXBwbGljYXRpb25Db21tYW5kQXV0b2NvbXBsZXRlKSB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBlZGl0IGFuIGF1dG9jb21wbGV0ZSBpbnRlcmFjdGlvbi4nKVxuXG4gICAgLy8gSWYgdXNlciBwcm92aWRlcyBhIHN0cmluZywgY2hhbmdlIGl0IHRvIGEgcmVzcG9uc2Ugb2JqZWN0XG4gICAgaWYgKHR5cGVvZiByZXNwb25zZSA9PT0gJ3N0cmluZycpIHJlc3BvbnNlID0geyBjb250ZW50OiByZXNwb25zZSB9XG5cbiAgICBpZiAobWVzc2FnZUlkKSB7XG4gICAgICByZXR1cm4gYXdhaXQgdGhpcy5ib3Q/LmhlbHBlcnMuZWRpdEZvbGxvd3VwTWVzc2FnZSh0aGlzLnRva2VuLCBtZXNzYWdlSWQsIHJlc3BvbnNlKVxuICAgIH1cblxuICAgIGlmICghdGhpcy5hY2tub3dsZWRnZWQpIHtcbiAgICAgIGlmICh0aGlzLnR5cGUgIT09IEludGVyYWN0aW9uVHlwZXMuTWVzc2FnZUNvbXBvbmVudClcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVGhpcyBpbnRlcmFjdGlvbiBoYXMgbm90IGJlZW4gcmVzcG9uZGVkIHRvIHlldCBhbmQgdGhpcyBpc24ndCBhIE1lc3NhZ2VDb21wb25lbnQgaW50ZXJhY3Rpb24uXCIpXG5cbiAgICAgIHRoaXMuYWNrbm93bGVkZ2VkID0gdHJ1ZVxuICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuYm90LmhlbHBlcnMuc2VuZEludGVyYWN0aW9uUmVzcG9uc2UodGhpcy5pZCwgdGhpcy50b2tlbiwgeyB0eXBlOiBJbnRlcmFjdGlvblJlc3BvbnNlVHlwZXMuVXBkYXRlTWVzc2FnZSwgZGF0YTogcmVzcG9uc2UgfSlcbiAgICB9XG5cbiAgICByZXR1cm4gYXdhaXQgdGhpcy5ib3QuaGVscGVycy5lZGl0T3JpZ2luYWxJbnRlcmFjdGlvblJlc3BvbnNlKHRoaXMudG9rZW4sIHJlc3BvbnNlKVxuICB9LFxuICBhc3luYyBkZWZlckVkaXQoKSB7XG4gICAgaWYgKHRoaXMudHlwZSA9PT0gSW50ZXJhY3Rpb25UeXBlcy5BcHBsaWNhdGlvbkNvbW1hbmRBdXRvY29tcGxldGUpIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGVkaXQgYW4gYXV0b2NvbXBsZXRlIGludGVyYWN0aW9uLicpXG4gICAgaWYgKHRoaXMuYWNrbm93bGVkZ2VkKSB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBkZWZlciBhbiBhbHJlYWR5IHJlc3BvbmRlZCBpbnRlcmFjdGlvbi4nKVxuXG4gICAgaWYgKHRoaXMudHlwZSAhPT0gSW50ZXJhY3Rpb25UeXBlcy5NZXNzYWdlQ29tcG9uZW50KVxuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQ2Fubm90IGRlZmVyIHRvIHRoZW4gZWRpdCBhbiBpbnRlcmFjdGlvbiB0aGF0IGlzbid0IGEgTWVzc2FnZUNvbXBvbmVudCBpbnRlcmFjdGlvbi5cIilcblxuICAgIHRoaXMuYWNrbm93bGVkZ2VkID0gdHJ1ZVxuICAgIHJldHVybiBhd2FpdCB0aGlzLmJvdC5oZWxwZXJzLnNlbmRJbnRlcmFjdGlvblJlc3BvbnNlKHRoaXMuaWQsIHRoaXMudG9rZW4sIHsgdHlwZTogSW50ZXJhY3Rpb25SZXNwb25zZVR5cGVzLkRlZmVycmVkVXBkYXRlTWVzc2FnZSB9KVxuICB9LFxuICBhc3luYyBkZWZlcihpc1ByaXZhdGUpIHtcbiAgICBpZiAodGhpcy5hY2tub3dsZWRnZWQpIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGRlZmVyIGFuIGFscmVhZHkgcmVzcG9uZGVkIGludGVyYWN0aW9uLicpXG5cbiAgICB0aGlzLmFja25vd2xlZGdlZCA9IHRydWVcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5ib3QuaGVscGVycy5zZW5kSW50ZXJhY3Rpb25SZXNwb25zZSh0aGlzLmlkLCB0aGlzLnRva2VuLCB7XG4gICAgICB0eXBlOiBJbnRlcmFjdGlvblJlc3BvbnNlVHlwZXMuRGVmZXJyZWRDaGFubmVsTWVzc2FnZVdpdGhTb3VyY2UsXG4gICAgICBkYXRhOiB7XG4gICAgICAgIGZsYWdzOiBpc1ByaXZhdGUgPyBNZXNzYWdlRmxhZ3MuRXBoZW1lcmFsIDogdW5kZWZpbmVkLFxuICAgICAgfSxcbiAgICB9KVxuICB9LFxuICBhc3luYyBkZWxldGUobWVzc2FnZUlkKSB7XG4gICAgaWYgKHRoaXMudHlwZSA9PT0gSW50ZXJhY3Rpb25UeXBlcy5BcHBsaWNhdGlvbkNvbW1hbmRBdXRvY29tcGxldGUpIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGRlbGV0ZSBhbiBhdXRvY29tcGxldGUgaW50ZXJhY3Rpb24nKVxuXG4gICAgaWYgKG1lc3NhZ2VJZCkgcmV0dXJuIGF3YWl0IHRoaXMuYm90Py5oZWxwZXJzLmRlbGV0ZUZvbGxvd3VwTWVzc2FnZSh0aGlzLnRva2VuLCBtZXNzYWdlSWQpXG4gICAgZWxzZSByZXR1cm4gYXdhaXQgdGhpcy5ib3Q/LmhlbHBlcnMuZGVsZXRlT3JpZ2luYWxJbnRlcmFjdGlvblJlc3BvbnNlKHRoaXMudG9rZW4pXG4gIH0sXG59IGFzIEludGVyYWN0aW9uXG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1JbnRlcmFjdGlvbihib3Q6IEJvdCwgcGF5bG9hZDogeyBpbnRlcmFjdGlvbjogRGlzY29yZEludGVyYWN0aW9uOyBzaGFyZElkOiBudW1iZXIgfSk6IEludGVyYWN0aW9uIHtcbiAgY29uc3QgZ3VpbGRJZCA9IHBheWxvYWQuaW50ZXJhY3Rpb24uZ3VpbGRfaWQgPyBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmludGVyYWN0aW9uLmd1aWxkX2lkKSA6IHVuZGVmaW5lZFxuICBjb25zdCB1c2VyID0gYm90LnRyYW5zZm9ybWVycy51c2VyKGJvdCwgcGF5bG9hZC5pbnRlcmFjdGlvbi5tZW1iZXI/LnVzZXIgPz8gcGF5bG9hZC5pbnRlcmFjdGlvbi51c2VyISlcblxuICBjb25zdCBpbnRlcmFjdGlvbjogSW50ZXJhY3Rpb24gPSBPYmplY3QuY3JlYXRlKGJhc2VJbnRlcmFjdGlvbilcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLmludGVyYWN0aW9uXG4gIGludGVyYWN0aW9uLmJvdCA9IGJvdFxuICBpbnRlcmFjdGlvbi5hY2tub3dsZWRnZWQgPSBmYWxzZVxuXG4gIGlmIChwcm9wcy5pZCAmJiBwYXlsb2FkLmludGVyYWN0aW9uLmlkKSBpbnRlcmFjdGlvbi5pZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaW50ZXJhY3Rpb24uaWQpXG4gIGlmIChwcm9wcy5hcHBsaWNhdGlvbklkICYmIHBheWxvYWQuaW50ZXJhY3Rpb24uYXBwbGljYXRpb25faWQpXG4gICAgaW50ZXJhY3Rpb24uYXBwbGljYXRpb25JZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaW50ZXJhY3Rpb24uYXBwbGljYXRpb25faWQpXG4gIGlmIChwcm9wcy50eXBlICYmIHBheWxvYWQuaW50ZXJhY3Rpb24udHlwZSkgaW50ZXJhY3Rpb24udHlwZSA9IHBheWxvYWQuaW50ZXJhY3Rpb24udHlwZVxuICBpZiAocHJvcHMudG9rZW4gJiYgcGF5bG9hZC5pbnRlcmFjdGlvbi50b2tlbikgaW50ZXJhY3Rpb24udG9rZW4gPSBwYXlsb2FkLmludGVyYWN0aW9uLnRva2VuXG4gIGlmIChwcm9wcy52ZXJzaW9uICYmIHBheWxvYWQuaW50ZXJhY3Rpb24udmVyc2lvbikgaW50ZXJhY3Rpb24udmVyc2lvbiA9IHBheWxvYWQuaW50ZXJhY3Rpb24udmVyc2lvblxuICBpZiAocHJvcHMubG9jYWxlICYmIHBheWxvYWQuaW50ZXJhY3Rpb24ubG9jYWxlKSBpbnRlcmFjdGlvbi5sb2NhbGUgPSBwYXlsb2FkLmludGVyYWN0aW9uLmxvY2FsZVxuICBpZiAocHJvcHMuZ3VpbGRMb2NhbGUgJiYgcGF5bG9hZC5pbnRlcmFjdGlvbi5ndWlsZF9sb2NhbGUpIGludGVyYWN0aW9uLmd1aWxkTG9jYWxlID0gcGF5bG9hZC5pbnRlcmFjdGlvbi5ndWlsZF9sb2NhbGVcbiAgaWYgKHByb3BzLmd1aWxkICYmIHBheWxvYWQuaW50ZXJhY3Rpb24uZ3VpbGQpXG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvciBwYXlsb2FkLmludGVyYWN0aW9uLmd1aWxkIGlzIGEgUGFydGlhbDxEaXNjb3JkR3VpbGQ+XG4gICAgaW50ZXJhY3Rpb24uZ3VpbGQgPSBib3QudHJhbnNmb3JtZXJzLmd1aWxkKGJvdCwgeyBndWlsZDogcGF5bG9hZC5pbnRlcmFjdGlvbi5ndWlsZCwgc2hhcmRJZDogcGF5bG9hZC5zaGFyZElkIH0pXG4gIGlmIChwcm9wcy5ndWlsZElkICYmIGd1aWxkSWQpIGludGVyYWN0aW9uLmd1aWxkSWQgPSBndWlsZElkXG4gIGlmIChwcm9wcy51c2VyICYmIHVzZXIpIGludGVyYWN0aW9uLnVzZXIgPSB1c2VyXG4gIGlmIChwcm9wcy5hcHBQZXJtaXNzaW9ucyAmJiBwYXlsb2FkLmludGVyYWN0aW9uLmFwcF9wZXJtaXNzaW9ucylcbiAgICBpbnRlcmFjdGlvbi5hcHBQZXJtaXNzaW9ucyA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaW50ZXJhY3Rpb24uYXBwX3Blcm1pc3Npb25zKVxuICBpZiAocHJvcHMubWVzc2FnZSAmJiBwYXlsb2FkLmludGVyYWN0aW9uLm1lc3NhZ2UpIGludGVyYWN0aW9uLm1lc3NhZ2UgPSBib3QudHJhbnNmb3JtZXJzLm1lc3NhZ2UoYm90LCBwYXlsb2FkLmludGVyYWN0aW9uLm1lc3NhZ2UpXG4gIGlmIChwcm9wcy5jaGFubmVsICYmIHBheWxvYWQuaW50ZXJhY3Rpb24uY2hhbm5lbClcbiAgICBpbnRlcmFjdGlvbi5jaGFubmVsID0gYm90LnRyYW5zZm9ybWVycy5jaGFubmVsKGJvdCwgeyBjaGFubmVsOiBwYXlsb2FkLmludGVyYWN0aW9uLmNoYW5uZWwgYXMgRGlzY29yZENoYW5uZWwsIGd1aWxkSWQgfSlcbiAgaWYgKHByb3BzLmNoYW5uZWxJZCAmJiBwYXlsb2FkLmludGVyYWN0aW9uLmNoYW5uZWxfaWQpIGludGVyYWN0aW9uLmNoYW5uZWxJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaW50ZXJhY3Rpb24uY2hhbm5lbF9pZClcbiAgaWYgKHByb3BzLm1lbWJlciAmJiBndWlsZElkICYmIHBheWxvYWQuaW50ZXJhY3Rpb24ubWVtYmVyKVxuICAgIGludGVyYWN0aW9uLm1lbWJlciA9IGJvdC50cmFuc2Zvcm1lcnMubWVtYmVyKGJvdCwgcGF5bG9hZC5pbnRlcmFjdGlvbi5tZW1iZXIsIGd1aWxkSWQsIHVzZXIuaWQpXG4gIGlmIChwcm9wcy5hdXRob3JpemluZ0ludGVncmF0aW9uT3duZXJzICYmIHBheWxvYWQuaW50ZXJhY3Rpb24uYXV0aG9yaXppbmdfaW50ZWdyYXRpb25fb3duZXJzKSB7XG4gICAgaW50ZXJhY3Rpb24uYXV0aG9yaXppbmdJbnRlZ3JhdGlvbk93bmVycyA9IHt9XG5cbiAgICBpZiAocGF5bG9hZC5pbnRlcmFjdGlvbi5hdXRob3JpemluZ19pbnRlZ3JhdGlvbl9vd25lcnNbJzAnXSlcbiAgICAgIGludGVyYWN0aW9uLmF1dGhvcml6aW5nSW50ZWdyYXRpb25Pd25lcnNbRGlzY29yZEFwcGxpY2F0aW9uSW50ZWdyYXRpb25UeXBlLkd1aWxkSW5zdGFsbF0gPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShcbiAgICAgICAgcGF5bG9hZC5pbnRlcmFjdGlvbi5hdXRob3JpemluZ19pbnRlZ3JhdGlvbl9vd25lcnNbJzAnXSxcbiAgICAgIClcbiAgICBpZiAocGF5bG9hZC5pbnRlcmFjdGlvbi5hdXRob3JpemluZ19pbnRlZ3JhdGlvbl9vd25lcnNbJzEnXSlcbiAgICAgIGludGVyYWN0aW9uLmF1dGhvcml6aW5nSW50ZWdyYXRpb25Pd25lcnNbRGlzY29yZEFwcGxpY2F0aW9uSW50ZWdyYXRpb25UeXBlLlVzZXJJbnN0YWxsXSA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKFxuICAgICAgICBwYXlsb2FkLmludGVyYWN0aW9uLmF1dGhvcml6aW5nX2ludGVncmF0aW9uX293bmVyc1snMSddLFxuICAgICAgKVxuICB9XG4gIGlmIChwcm9wcy5jb250ZXh0ICYmIHBheWxvYWQuaW50ZXJhY3Rpb24uY29udGV4dCkgaW50ZXJhY3Rpb24uY29udGV4dCA9IHBheWxvYWQuaW50ZXJhY3Rpb24uY29udGV4dFxuICBpZiAocHJvcHMuZGF0YSAmJiBwYXlsb2FkLmludGVyYWN0aW9uLmRhdGEpIHtcbiAgICBpbnRlcmFjdGlvbi5kYXRhID0ge1xuICAgICAgdHlwZTogcGF5bG9hZC5pbnRlcmFjdGlvbi5kYXRhLnR5cGUsXG4gICAgICBjb21wb25lbnRUeXBlOiBwYXlsb2FkLmludGVyYWN0aW9uLmRhdGEuY29tcG9uZW50X3R5cGUsXG4gICAgICBjdXN0b21JZDogcGF5bG9hZC5pbnRlcmFjdGlvbi5kYXRhLmN1c3RvbV9pZCxcbiAgICAgIGNvbXBvbmVudHM6IHBheWxvYWQuaW50ZXJhY3Rpb24uZGF0YS5jb21wb25lbnRzPy5tYXAoKGNvbXBvbmVudCkgPT4gYm90LnRyYW5zZm9ybWVycy5jb21wb25lbnQoYm90LCBjb21wb25lbnQpKSxcbiAgICAgIHZhbHVlczogcGF5bG9hZC5pbnRlcmFjdGlvbi5kYXRhLnZhbHVlcyxcbiAgICAgIGlkOiBwYXlsb2FkLmludGVyYWN0aW9uLmRhdGEuaWQgPyBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmludGVyYWN0aW9uLmRhdGEuaWQpIDogdW5kZWZpbmVkLFxuICAgICAgbmFtZTogcGF5bG9hZC5pbnRlcmFjdGlvbi5kYXRhLm5hbWUsXG4gICAgICByZXNvbHZlZDogcGF5bG9hZC5pbnRlcmFjdGlvbi5kYXRhLnJlc29sdmVkID8gdHJhbnNmb3JtSW50ZXJhY3Rpb25EYXRhUmVzb2x2ZWQoYm90LCBwYXlsb2FkLmludGVyYWN0aW9uLmRhdGEucmVzb2x2ZWQsIGd1aWxkSWQpIDogdW5kZWZpbmVkLFxuICAgICAgb3B0aW9uczogcGF5bG9hZC5pbnRlcmFjdGlvbi5kYXRhLm9wdGlvbnM/Lm1hcCgob3B0KSA9PiBib3QudHJhbnNmb3JtZXJzLmludGVyYWN0aW9uRGF0YU9wdGlvbnMoYm90LCBvcHQpKSxcbiAgICAgIHRhcmdldElkOiBwYXlsb2FkLmludGVyYWN0aW9uLmRhdGEudGFyZ2V0X2lkID8gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5pbnRlcmFjdGlvbi5kYXRhLnRhcmdldF9pZCkgOiB1bmRlZmluZWQsXG4gICAgICAvLyBndWlsZElkOiBwYXlsb2FkLmludGVyYWN0aW9uLmRhdGEuZ3VpbGRfaWQgPyBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmludGVyYWN0aW9uLmRhdGEuZ3VpbGRfaWQpIDogdW5kZWZpbmVkLFxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmN1c3RvbWl6ZXJzLmludGVyYWN0aW9uKGJvdCwgcGF5bG9hZCwgaW50ZXJhY3Rpb24pXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1JbnRlcmFjdGlvbkRhdGFPcHRpb24oYm90OiBCb3QsIG9wdGlvbjogRGlzY29yZEludGVyYWN0aW9uRGF0YU9wdGlvbik6IEludGVyYWN0aW9uRGF0YU9wdGlvbiB7XG4gIGNvbnN0IG9wdCA9IHtcbiAgICBuYW1lOiBvcHRpb24ubmFtZSxcbiAgICB0eXBlOiBvcHRpb24udHlwZSxcbiAgICB2YWx1ZTogb3B0aW9uLnZhbHVlLFxuICAgIG9wdGlvbnM6IG9wdGlvbi5vcHRpb25zLFxuICAgIGZvY3VzZWQ6IG9wdGlvbi5mb2N1c2VkLFxuICB9IGFzIEludGVyYWN0aW9uRGF0YU9wdGlvblxuXG4gIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmN1c3RvbWl6ZXJzLmludGVyYWN0aW9uRGF0YU9wdGlvbnMoYm90LCBvcHRpb24sIG9wdClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybUludGVyYWN0aW9uRGF0YVJlc29sdmVkKGJvdDogQm90LCByZXNvbHZlZDogRGlzY29yZEludGVyYWN0aW9uRGF0YVJlc29sdmVkLCBndWlsZElkPzogYmlnaW50KTogSW50ZXJhY3Rpb25EYXRhUmVzb2x2ZWQge1xuICBjb25zdCB0cmFuc2Zvcm1lZDogSW50ZXJhY3Rpb25EYXRhUmVzb2x2ZWQgPSB7fVxuXG4gIGlmIChyZXNvbHZlZC5tZXNzYWdlcykge1xuICAgIHRyYW5zZm9ybWVkLm1lc3NhZ2VzID0gbmV3IENvbGxlY3Rpb24oXG4gICAgICBPYmplY3QuZW50cmllcyhyZXNvbHZlZC5tZXNzYWdlcykubWFwKChbX2lkLCB2YWx1ZV0pID0+IHtcbiAgICAgICAgY29uc3QgbWVzc2FnZTogTWVzc2FnZSA9IGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZShib3QsIHZhbHVlKVxuICAgICAgICByZXR1cm4gW21lc3NhZ2UuaWQsIG1lc3NhZ2VdXG4gICAgICB9KSxcbiAgICApXG4gIH1cblxuICBpZiAocmVzb2x2ZWQudXNlcnMpIHtcbiAgICB0cmFuc2Zvcm1lZC51c2VycyA9IG5ldyBDb2xsZWN0aW9uKFxuICAgICAgT2JqZWN0LmVudHJpZXMocmVzb2x2ZWQudXNlcnMpLm1hcCgoW19pZCwgdmFsdWVdKSA9PiB7XG4gICAgICAgIGNvbnN0IHVzZXIgPSBib3QudHJhbnNmb3JtZXJzLnVzZXIoYm90LCB2YWx1ZSlcbiAgICAgICAgcmV0dXJuIFt1c2VyLmlkLCB1c2VyXVxuICAgICAgfSksXG4gICAgKVxuICB9XG5cbiAgaWYgKGd1aWxkSWQgJiYgcmVzb2x2ZWQubWVtYmVycykge1xuICAgIHRyYW5zZm9ybWVkLm1lbWJlcnMgPSBuZXcgQ29sbGVjdGlvbihcbiAgICAgIE9iamVjdC5lbnRyaWVzKHJlc29sdmVkLm1lbWJlcnMpLm1hcCgoW2lkLCB2YWx1ZV0pID0+IHtcbiAgICAgICAgY29uc3QgbWVtYmVyOiBNZW1iZXIgPSBib3QudHJhbnNmb3JtZXJzLm1lbWJlcihib3QsIHZhbHVlLCBndWlsZElkLCBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShpZCkpXG4gICAgICAgIHJldHVybiBbbWVtYmVyLmlkLCBtZW1iZXJdXG4gICAgICB9KSxcbiAgICApXG4gIH1cblxuICBpZiAoZ3VpbGRJZCAmJiByZXNvbHZlZC5yb2xlcykge1xuICAgIHRyYW5zZm9ybWVkLnJvbGVzID0gbmV3IENvbGxlY3Rpb24oXG4gICAgICBPYmplY3QuZW50cmllcyhyZXNvbHZlZC5yb2xlcykubWFwKChbX2lkLCB2YWx1ZV0pID0+IHtcbiAgICAgICAgY29uc3Qgcm9sZSA9IGJvdC50cmFuc2Zvcm1lcnMucm9sZShib3QsIHsgcm9sZTogdmFsdWUsIGd1aWxkSWQgfSlcbiAgICAgICAgcmV0dXJuIFtyb2xlLmlkLCByb2xlXVxuICAgICAgfSksXG4gICAgKVxuICB9XG5cbiAgaWYgKHJlc29sdmVkLmNoYW5uZWxzKSB7XG4gICAgdHJhbnNmb3JtZWQuY2hhbm5lbHMgPSBuZXcgQ29sbGVjdGlvbihcbiAgICAgIE9iamVjdC5lbnRyaWVzKHJlc29sdmVkLmNoYW5uZWxzKS5tYXAoKFtfaWQsIHZhbHVlXSkgPT4ge1xuICAgICAgICBjb25zdCBjaGFubmVsID0gYm90LnRyYW5zZm9ybWVycy5jaGFubmVsKGJvdCwgeyBjaGFubmVsOiB2YWx1ZSB9KSBhcyBJbnRlcmFjdGlvblJlc29sdmVkQ2hhbm5lbFxuICAgICAgICByZXR1cm4gW2NoYW5uZWwuaWQsIGNoYW5uZWxdXG4gICAgICB9KSxcbiAgICApXG4gIH1cblxuICBpZiAocmVzb2x2ZWQuYXR0YWNobWVudHMpIHtcbiAgICB0cmFuc2Zvcm1lZC5hdHRhY2htZW50cyA9IG5ldyBDb2xsZWN0aW9uKFxuICAgICAgT2JqZWN0LmVudHJpZXMocmVzb2x2ZWQuYXR0YWNobWVudHMpLm1hcCgoW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICAgIGNvbnN0IGlkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2Uoa2V5KVxuICAgICAgICByZXR1cm4gW2lkLCBib3QudHJhbnNmb3JtZXJzLmF0dGFjaG1lbnQoYm90LCB2YWx1ZSldXG4gICAgICB9KSxcbiAgICApXG4gIH1cblxuICByZXR1cm4gdHJhbnNmb3JtZWRcbn1cbiJdLCJuYW1lcyI6WyJ0cmFuc2Zvcm1JbnRlcmFjdGlvbiIsInRyYW5zZm9ybUludGVyYWN0aW9uRGF0YU9wdGlvbiIsInRyYW5zZm9ybUludGVyYWN0aW9uRGF0YVJlc29sdmVkIiwiYmFzZUludGVyYWN0aW9uIiwicmVzcG9uZCIsInJlc3BvbnNlIiwib3B0aW9ucyIsInR5cGUiLCJJbnRlcmFjdGlvblJlc3BvbnNlVHlwZXMiLCJDaGFubmVsTWVzc2FnZVdpdGhTb3VyY2UiLCJjb250ZW50IiwidGl0bGUiLCJNb2RhbCIsIkludGVyYWN0aW9uVHlwZXMiLCJBcHBsaWNhdGlvbkNvbW1hbmRBdXRvY29tcGxldGUiLCJBcHBsaWNhdGlvbkNvbW1hbmRBdXRvY29tcGxldGVSZXN1bHQiLCJpc1ByaXZhdGUiLCJmbGFncyIsIk1lc3NhZ2VGbGFncyIsIkVwaGVtZXJhbCIsImFja25vd2xlZGdlZCIsImJvdCIsImhlbHBlcnMiLCJzZW5kRm9sbG93dXBNZXNzYWdlIiwidG9rZW4iLCJNb2RhbFN1Ym1pdCIsIkVycm9yIiwic2VuZEludGVyYWN0aW9uUmVzcG9uc2UiLCJpZCIsImRhdGEiLCJlZGl0IiwibWVzc2FnZUlkIiwiZWRpdEZvbGxvd3VwTWVzc2FnZSIsIk1lc3NhZ2VDb21wb25lbnQiLCJVcGRhdGVNZXNzYWdlIiwiZWRpdE9yaWdpbmFsSW50ZXJhY3Rpb25SZXNwb25zZSIsImRlZmVyRWRpdCIsIkRlZmVycmVkVXBkYXRlTWVzc2FnZSIsImRlZmVyIiwiRGVmZXJyZWRDaGFubmVsTWVzc2FnZVdpdGhTb3VyY2UiLCJ1bmRlZmluZWQiLCJkZWxldGUiLCJkZWxldGVGb2xsb3d1cE1lc3NhZ2UiLCJkZWxldGVPcmlnaW5hbEludGVyYWN0aW9uUmVzcG9uc2UiLCJwYXlsb2FkIiwiZ3VpbGRJZCIsImludGVyYWN0aW9uIiwiZ3VpbGRfaWQiLCJ0cmFuc2Zvcm1lcnMiLCJzbm93Zmxha2UiLCJ1c2VyIiwibWVtYmVyIiwiT2JqZWN0IiwiY3JlYXRlIiwicHJvcHMiLCJkZXNpcmVkUHJvcGVydGllcyIsImFwcGxpY2F0aW9uSWQiLCJhcHBsaWNhdGlvbl9pZCIsInZlcnNpb24iLCJsb2NhbGUiLCJndWlsZExvY2FsZSIsImd1aWxkX2xvY2FsZSIsImd1aWxkIiwic2hhcmRJZCIsImFwcFBlcm1pc3Npb25zIiwiYXBwX3Blcm1pc3Npb25zIiwibWVzc2FnZSIsImNoYW5uZWwiLCJjaGFubmVsSWQiLCJjaGFubmVsX2lkIiwiYXV0aG9yaXppbmdJbnRlZ3JhdGlvbk93bmVycyIsImF1dGhvcml6aW5nX2ludGVncmF0aW9uX293bmVycyIsIkRpc2NvcmRBcHBsaWNhdGlvbkludGVncmF0aW9uVHlwZSIsIkd1aWxkSW5zdGFsbCIsIlVzZXJJbnN0YWxsIiwiY29udGV4dCIsImNvbXBvbmVudFR5cGUiLCJjb21wb25lbnRfdHlwZSIsImN1c3RvbUlkIiwiY3VzdG9tX2lkIiwiY29tcG9uZW50cyIsIm1hcCIsImNvbXBvbmVudCIsInZhbHVlcyIsIm5hbWUiLCJyZXNvbHZlZCIsIm9wdCIsImludGVyYWN0aW9uRGF0YU9wdGlvbnMiLCJ0YXJnZXRJZCIsInRhcmdldF9pZCIsImN1c3RvbWl6ZXJzIiwib3B0aW9uIiwidmFsdWUiLCJmb2N1c2VkIiwidHJhbnNmb3JtZWQiLCJtZXNzYWdlcyIsIkNvbGxlY3Rpb24iLCJlbnRyaWVzIiwiX2lkIiwidXNlcnMiLCJtZW1iZXJzIiwicm9sZXMiLCJyb2xlIiwiY2hhbm5lbHMiLCJhdHRhY2htZW50cyIsImtleSIsImF0dGFjaG1lbnQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0lBNkZnQkEsb0JBQW9CO2VBQXBCQTs7SUE4REFDLDhCQUE4Qjtl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
|
|
@@ -17,6 +17,9 @@ _export(exports, {
|
|
|
17
17
|
},
|
|
18
18
|
transformMessageInteractionMetadata: function() {
|
|
19
19
|
return transformMessageInteractionMetadata;
|
|
20
|
+
},
|
|
21
|
+
transformMessageSnapshot: function() {
|
|
22
|
+
return transformMessageSnapshot;
|
|
20
23
|
}
|
|
21
24
|
});
|
|
22
25
|
const _types = require("@discordeno/types");
|
|
@@ -202,6 +205,8 @@ function transformMessage(bot, payload) {
|
|
|
202
205
|
}
|
|
203
206
|
message.messageReference = reference;
|
|
204
207
|
}
|
|
208
|
+
if (props.referencedMessage && payload.referenced_message) message.referencedMessage = bot.transformers.message(bot, payload.referenced_message);
|
|
209
|
+
if (props.messageSnapshots && payload.message_snapshots) message.messageSnapshots = payload.message_snapshots.map((snap)=>bot.transformers.messageSnapshot(bot, snap));
|
|
205
210
|
if (props.nonce && payload.nonce) message.nonce = payload.nonce;
|
|
206
211
|
if (payload.pinned) message.pinned = true;
|
|
207
212
|
if (props.reactions && payload.reactions?.length) {
|
|
@@ -233,6 +238,12 @@ function transformMessage(bot, payload) {
|
|
|
233
238
|
if (props.call && payload.call) message.call = bot.transformers.messageCall(bot, payload.call);
|
|
234
239
|
return bot.transformers.customizers.message(bot, payload, message);
|
|
235
240
|
}
|
|
241
|
+
function transformMessageSnapshot(bot, payload) {
|
|
242
|
+
const props = bot.transformers.desiredProperties.messageSnapshot;
|
|
243
|
+
const messageSnapshot = {};
|
|
244
|
+
if (props.message && payload.message) messageSnapshot.message = bot.transformers.message(bot, payload.message);
|
|
245
|
+
return bot.transformers.customizers.messageSnapshot(bot, payload, messageSnapshot);
|
|
246
|
+
}
|
|
236
247
|
function transformMessageInteractionMetadata(bot, payload) {
|
|
237
248
|
const props = bot.transformers.desiredProperties.messageInteractionMetadata;
|
|
238
249
|
const metadata = {};
|
|
@@ -257,4 +268,4 @@ function transformMessageCall(bot, payload) {
|
|
|
257
268
|
return bot.transformers.customizers.messageCall(bot, payload, call);
|
|
258
269
|
}
|
|
259
270
|
|
|
260
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvbWVzc2FnZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEaXNjb3JkQXBwbGljYXRpb25JbnRlZ3JhdGlvblR5cGUsXG4gIHR5cGUgRGlzY29yZE1lc3NhZ2UsXG4gIHR5cGUgRGlzY29yZE1lc3NhZ2VDYWxsLFxuICB0eXBlIERpc2NvcmRNZXNzYWdlSW50ZXJhY3Rpb25NZXRhZGF0YSxcbiAgTWVzc2FnZUZsYWdzLFxufSBmcm9tICdAZGlzY29yZGVuby90eXBlcydcbmltcG9ydCB7IENIQU5ORUxfTUVOVElPTl9SRUdFWCB9IGZyb20gJy4uL2NvbnN0YW50cy5qcydcbmltcG9ydCB7IHR5cGUgQm90LCB0eXBlIE1lc3NhZ2UsIHR5cGUgTWVzc2FnZUNhbGwsIHR5cGUgTWVzc2FnZUludGVyYWN0aW9uTWV0YWRhdGEsIHNub3dmbGFrZVRvVGltZXN0YW1wIH0gZnJvbSAnLi4vaW5kZXguanMnXG5pbXBvcnQgeyBUb2dnbGVCaXRmaWVsZCB9IGZyb20gJy4vdG9nZ2xlcy9Ub2dnbGVCaXRmaWVsZC5qcydcblxuY29uc3QgRU1QVFlfU1RSSU5HID0gJydcblxuY29uc3QgYmFzZU1lc3NhZ2UgPSB7XG4gIGdldCBjcm9zc3Bvc3RlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5mbGFncz8uY29udGFpbnMoTWVzc2FnZUZsYWdzLkNyb3NzcG9zdGVkKSA/PyBmYWxzZVxuICB9LFxuICBzZXQgY3Jvc3Nwb3N0ZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuZmxhZ3MpIHJldHVyblxuICAgIGlmICh2YWx1ZSkgdGhpcy5mbGFncy5hZGQoTWVzc2FnZUZsYWdzLkNyb3NzcG9zdGVkKVxuICAgIGVsc2UgdGhpcy5mbGFncy5yZW1vdmUoTWVzc2FnZUZsYWdzLkNyb3NzcG9zdGVkKVxuICB9LFxuICBnZXQgZXBoZW1lcmFsKCkge1xuICAgIHJldHVybiB0aGlzLmZsYWdzPy5jb250YWlucyhNZXNzYWdlRmxhZ3MuRXBoZW1lcmFsKSA/PyBmYWxzZVxuICB9LFxuICBzZXQgZXBoZW1lcmFsKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKCF0aGlzLmZsYWdzKSByZXR1cm5cbiAgICBpZiAodmFsdWUpIHRoaXMuZmxhZ3MuYWRkKE1lc3NhZ2VGbGFncy5FcGhlbWVyYWwpXG4gICAgZWxzZSB0aGlzLmZsYWdzLnJlbW92ZShNZXNzYWdlRmxhZ3MuRXBoZW1lcmFsKVxuICB9LFxuICBnZXQgZmFpbGVkVG9NZW50aW9uU29tZVJvbGVzSW5UaHJlYWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmxhZ3M/LmNvbnRhaW5zKE1lc3NhZ2VGbGFncy5GYWlsZWRUb01lbnRpb25Tb21lUm9sZXNJblRocmVhZCkgPz8gZmFsc2VcbiAgfSxcbiAgc2V0IGZhaWxlZFRvTWVudGlvblNvbWVSb2xlc0luVGhyZWFkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKCF0aGlzLmZsYWdzKSByZXR1cm5cbiAgICBpZiAodmFsdWUpIHRoaXMuZmxhZ3MuYWRkKE1lc3NhZ2VGbGFncy5GYWlsZWRUb01lbnRpb25Tb21lUm9sZXNJblRocmVhZClcbiAgICBlbHNlIHRoaXMuZmxhZ3MucmVtb3ZlKE1lc3NhZ2VGbGFncy5GYWlsZWRUb01lbnRpb25Tb21lUm9sZXNJblRocmVhZClcbiAgfSxcbiAgZ2V0IGhhc1RocmVhZCgpIHtcbiAgICByZXR1cm4gdGhpcy5mbGFncz8uY29udGFpbnMoTWVzc2FnZUZsYWdzLkhhc1RocmVhZCkgPz8gZmFsc2VcbiAgfSxcbiAgc2V0IGhhc1RocmVhZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICghdGhpcy5mbGFncykgcmV0dXJuXG4gICAgaWYgKHZhbHVlKSB0aGlzLmZsYWdzLmFkZChNZXNzYWdlRmxhZ3MuSGFzVGhyZWFkKVxuICAgIGVsc2UgdGhpcy5mbGFncy5yZW1vdmUoTWVzc2FnZUZsYWdzLkhhc1RocmVhZClcbiAgfSxcbiAgZ2V0IGlzQ3Jvc3Nwb3N0KCkge1xuICAgIHJldHVybiB0aGlzLmZsYWdzPy5jb250YWlucyhNZXNzYWdlRmxhZ3MuSXNDcm9zc3Bvc3QpID8/IGZhbHNlXG4gIH0sXG4gIHNldCBpc0Nyb3NzcG9zdCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICghdGhpcy5mbGFncykgcmV0dXJuXG4gICAgaWYgKHZhbHVlKSB0aGlzLmZsYWdzLmFkZChNZXNzYWdlRmxhZ3MuSXNDcm9zc3Bvc3QpXG4gICAgZWxzZSB0aGlzLmZsYWdzLnJlbW92ZShNZXNzYWdlRmxhZ3MuSXNDcm9zc3Bvc3QpXG4gIH0sXG4gIGdldCBsb2FkaW5nKCkge1xuICAgIHJldHVybiB0aGlzLmZsYWdzPy5jb250YWlucyhNZXNzYWdlRmxhZ3MuTG9hZGluZykgPz8gZmFsc2VcbiAgfSxcbiAgc2V0IGxvYWRpbmcodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuZmxhZ3MpIHJldHVyblxuICAgIGlmICh2YWx1ZSkgdGhpcy5mbGFncy5hZGQoTWVzc2FnZUZsYWdzLkxvYWRpbmcpXG4gICAgZWxzZSB0aGlzLmZsYWdzLnJlbW92ZShNZXNzYWdlRmxhZ3MuTG9hZGluZylcbiAgfSxcbiAgZ2V0IG1lbnRpb25lZFVzZXJJZHMoKSB7XG4gICAgcmV0dXJuIHRoaXMubWVudGlvbnM/Lm1hcCgodXNlcikgPT4gdXNlci5pZCkgPz8gW11cbiAgfSxcbiAgZ2V0IG1lbnRpb25FdmVyeW9uZSgpIHtcbiAgICByZXR1cm4gdGhpcy5iaXRmaWVsZD8uY29udGFpbnMoMikgPz8gZmFsc2VcbiAgfSxcbiAgc2V0IG1lbnRpb25FdmVyeW9uZSh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICghdGhpcy5iaXRmaWVsZCkgcmV0dXJuXG4gICAgaWYgKHZhbHVlKSB0aGlzLmJpdGZpZWxkLmFkZCgyKVxuICAgIGVsc2UgdGhpcy5iaXRmaWVsZC5yZW1vdmUoMilcbiAgfSxcbiAgZ2V0IHBpbm5lZCgpIHtcbiAgICByZXR1cm4gdGhpcy5iaXRmaWVsZD8uY29udGFpbnMoMykgPz8gZmFsc2VcbiAgfSxcbiAgc2V0IHBpbm5lZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICghdGhpcy5iaXRmaWVsZCkgcmV0dXJuXG4gICAgaWYgKHZhbHVlKSB0aGlzLmJpdGZpZWxkLmFkZCgzKVxuICAgIGVsc2UgdGhpcy5iaXRmaWVsZC5yZW1vdmUoMylcbiAgfSxcbiAgZ2V0IHNvdXJjZU1lc3NhZ2VEZWxldGVkKCkge1xuICAgIHJldHVybiB0aGlzLmZsYWdzPy5jb250YWlucyhNZXNzYWdlRmxhZ3MuU291cmNlTWVzc2FnZURlbGV0ZWQpID8/IGZhbHNlXG4gIH0sXG4gIHNldCBzb3VyY2VNZXNzYWdlRGVsZXRlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICghdGhpcy5mbGFncykgcmV0dXJuXG4gICAgaWYgKHZhbHVlKSB0aGlzLmZsYWdzLmFkZChNZXNzYWdlRmxhZ3MuU291cmNlTWVzc2FnZURlbGV0ZWQpXG4gICAgZWxzZSB0aGlzLmZsYWdzLnJlbW92ZShNZXNzYWdlRmxhZ3MuU291cmNlTWVzc2FnZURlbGV0ZWQpXG4gIH0sXG4gIGdldCBzdXBwcmVzc0VtYmVkcygpIHtcbiAgICByZXR1cm4gdGhpcy5mbGFncz8uY29udGFpbnMoTWVzc2FnZUZsYWdzLlN1cHByZXNzRW1iZWRzKSA/PyBmYWxzZVxuICB9LFxuICBzZXQgc3VwcHJlc3NFbWJlZHModmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuZmxhZ3MpIHJldHVyblxuICAgIGlmICh2YWx1ZSkgdGhpcy5mbGFncy5hZGQoTWVzc2FnZUZsYWdzLlN1cHByZXNzRW1iZWRzKVxuICAgIGVsc2UgdGhpcy5mbGFncy5yZW1vdmUoTWVzc2FnZUZsYWdzLlN1cHByZXNzRW1iZWRzKVxuICB9LFxuICBnZXQgc3VwcHJlc3NOb3RpZmljYXRpb25zKCkge1xuICAgIHJldHVybiB0aGlzLmZsYWdzPy5jb250YWlucyhNZXNzYWdlRmxhZ3MuU3VwcHJlc3NOb3RpZmljYXRpb25zKSA/PyBmYWxzZVxuICB9LFxuICBzZXQgc3VwcHJlc3NOb3RpZmljYXRpb25zKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKCF0aGlzLmZsYWdzKSByZXR1cm5cbiAgICBpZiAodmFsdWUpIHRoaXMuZmxhZ3MuYWRkKE1lc3NhZ2VGbGFncy5TdXBwcmVzc05vdGlmaWNhdGlvbnMpXG4gICAgZWxzZSB0aGlzLmZsYWdzLnJlbW92ZShNZXNzYWdlRmxhZ3MuU3VwcHJlc3NOb3RpZmljYXRpb25zKVxuICB9LFxuICBnZXQgdGltZXN0YW1wKCkge1xuICAgIHJldHVybiB0aGlzLmlkID8gc25vd2ZsYWtlVG9UaW1lc3RhbXAodGhpcy5pZCkgOiAwXG4gIH0sXG4gIGdldCB0dHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuYml0ZmllbGQ/LmNvbnRhaW5zKDEpID8/IGZhbHNlXG4gIH0sXG4gIHNldCB0dHModmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuYml0ZmllbGQpIHJldHVyblxuICAgIGlmICh2YWx1ZSkgdGhpcy5iaXRmaWVsZC5hZGQoMSlcbiAgICBlbHNlIHRoaXMuYml0ZmllbGQucmVtb3ZlKDEpXG4gIH0sXG4gIGdldCB1cmdlbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmxhZ3M/LmNvbnRhaW5zKE1lc3NhZ2VGbGFncy5VcmdlbnQpID8/IGZhbHNlXG4gIH0sXG4gIHNldCB1cmdlbnQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuZmxhZ3MpIHJldHVyblxuICAgIGlmICh2YWx1ZSkgdGhpcy5mbGFncy5hZGQoTWVzc2FnZUZsYWdzLlVyZ2VudClcbiAgICBlbHNlIHRoaXMuZmxhZ3MucmVtb3ZlKE1lc3NhZ2VGbGFncy5VcmdlbnQpXG4gIH0sXG59IGFzIE1lc3NhZ2VcblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybU1lc3NhZ2UoYm90OiBCb3QsIHBheWxvYWQ6IERpc2NvcmRNZXNzYWdlKTogTWVzc2FnZSB7XG4gIGNvbnN0IGd1aWxkSWQgPSBwYXlsb2FkLmd1aWxkX2lkID8gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5ndWlsZF9pZCkgOiB1bmRlZmluZWRcbiAgY29uc3QgdXNlcklkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5hdXRob3IuaWQpXG5cbiAgY29uc3QgbWVzc2FnZTogTWVzc2FnZSA9IE9iamVjdC5jcmVhdGUoYmFzZU1lc3NhZ2UpXG4gIG1lc3NhZ2UuYml0ZmllbGQgPSBuZXcgVG9nZ2xlQml0ZmllbGQoKVxuICBtZXNzYWdlLmZsYWdzID0gbmV3IFRvZ2dsZUJpdGZpZWxkKHBheWxvYWQuZmxhZ3MpXG5cbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLm1lc3NhZ2VcblxuICBpZiAocHJvcHMuYXV0aG9yICYmIHBheWxvYWQuYXV0aG9yKSBtZXNzYWdlLmF1dGhvciA9IGJvdC50cmFuc2Zvcm1lcnMudXNlcihib3QsIHBheWxvYWQuYXV0aG9yKVxuICBpZiAocHJvcHMuYXBwbGljYXRpb25JZCAmJiBwYXlsb2FkLmFwcGxpY2F0aW9uX2lkKSBtZXNzYWdlLmFwcGxpY2F0aW9uSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmFwcGxpY2F0aW9uX2lkKVxuICBpZiAocHJvcHMuYXR0YWNobWVudHMgJiYgcGF5bG9hZC5hdHRhY2htZW50cz8ubGVuZ3RoKVxuICAgIG1lc3NhZ2UuYXR0YWNobWVudHMgPSBwYXlsb2FkLmF0dGFjaG1lbnRzLm1hcCgoYXR0YWNobWVudCkgPT4gYm90LnRyYW5zZm9ybWVycy5hdHRhY2htZW50KGJvdCwgYXR0YWNobWVudCkpXG4gIGlmIChwcm9wcy5jaGFubmVsSWQgJiYgcGF5bG9hZC5jaGFubmVsX2lkKSBtZXNzYWdlLmNoYW5uZWxJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuY2hhbm5lbF9pZClcbiAgaWYgKHByb3BzLmNvbXBvbmVudHMgJiYgcGF5bG9hZC5jb21wb25lbnRzPy5sZW5ndGgpIG1lc3NhZ2UuY29tcG9uZW50cyA9IHBheWxvYWQuY29tcG9uZW50cy5tYXAoKGNvbXApID0+IGJvdC50cmFuc2Zvcm1lcnMuY29tcG9uZW50KGJvdCwgY29tcCkpXG4gIGlmIChwcm9wcy5jb250ZW50ICYmIHBheWxvYWQuY29udGVudCkgbWVzc2FnZS5jb250ZW50ID0gcGF5bG9hZC5jb250ZW50ID8/IEVNUFRZX1NUUklOR1xuICBpZiAocHJvcHMuZWRpdGVkVGltZXN0YW1wICYmIHBheWxvYWQuZWRpdGVkX3RpbWVzdGFtcCkgbWVzc2FnZS5lZGl0ZWRUaW1lc3RhbXAgPSBEYXRlLnBhcnNlKHBheWxvYWQuZWRpdGVkX3RpbWVzdGFtcClcbiAgaWYgKHByb3BzLmVtYmVkcyAmJiBwYXlsb2FkLmVtYmVkcz8ubGVuZ3RoKSBtZXNzYWdlLmVtYmVkcyA9IHBheWxvYWQuZW1iZWRzLm1hcCgoZW1iZWQpID0+IGJvdC50cmFuc2Zvcm1lcnMuZW1iZWQoYm90LCBlbWJlZCkpXG4gIGlmIChwcm9wcy5ndWlsZElkICYmIGd1aWxkSWQpIG1lc3NhZ2UuZ3VpbGRJZCA9IGd1aWxkSWRcbiAgaWYgKHByb3BzLmlkICYmIHBheWxvYWQuaWQpIG1lc3NhZ2UuaWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmlkKVxuICBpZiAocHJvcHMuaW50ZXJhY3Rpb25NZXRhZGF0YSAmJiBwYXlsb2FkLmludGVyYWN0aW9uX21ldGFkYXRhKVxuICAgIG1lc3NhZ2UuaW50ZXJhY3Rpb25NZXRhZGF0YSA9IHRyYW5zZm9ybU1lc3NhZ2VJbnRlcmFjdGlvbk1ldGFkYXRhKGJvdCwgcGF5bG9hZC5pbnRlcmFjdGlvbl9tZXRhZGF0YSlcbiAgaWYgKHByb3BzLmludGVyYWN0aW9uICYmIHBheWxvYWQuaW50ZXJhY3Rpb24pIHtcbiAgICBjb25zdCBpbnRlcmFjdGlvbiA9IHt9IGFzIE5vbk51bGxhYmxlPE1lc3NhZ2VbJ2ludGVyYWN0aW9uJ10+XG4gICAgY29uc3QgbWVzc2FnZUludGVyYWN0aW9uUHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLm1lc3NhZ2VJbnRlcmFjdGlvblxuXG4gICAgaWYgKG1lc3NhZ2VJbnRlcmFjdGlvblByb3BzLmlkKSB7XG4gICAgICBpbnRlcmFjdGlvbi5pZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaW50ZXJhY3Rpb24uaWQpXG4gICAgfVxuICAgIGlmIChtZXNzYWdlSW50ZXJhY3Rpb25Qcm9wcy5tZW1iZXIgJiYgcGF5bG9hZC5pbnRlcmFjdGlvbi5tZW1iZXIpIHtcbiAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgVE9ETzogcGFydGlhbCAtIGNoZWNrIHdoeSB0aGlzIGlzIHBhcnRpYWwgYW5kIGhhbmRsZSBhcyBuZWVkZWRcbiAgICAgIGludGVyYWN0aW9uLm1lbWJlciA9IGJvdC50cmFuc2Zvcm1lcnMubWVtYmVyKGJvdCwgcGF5bG9hZC5pbnRlcmFjdGlvbi5tZW1iZXIsIGd1aWxkSWQsIHBheWxvYWQuaW50ZXJhY3Rpb24udXNlci5pZClcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2VJbnRlcmFjdGlvblByb3BzLm5hbWUpIHtcbiAgICAgIGludGVyYWN0aW9uLm5hbWUgPSBwYXlsb2FkLmludGVyYWN0aW9uLm5hbWVcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2VJbnRlcmFjdGlvblByb3BzLnR5cGUpIHtcbiAgICAgIGludGVyYWN0aW9uLnR5cGUgPSBwYXlsb2FkLmludGVyYWN0aW9uLnR5cGVcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2VJbnRlcmFjdGlvblByb3BzLnVzZXIpIHtcbiAgICAgIGludGVyYWN0aW9uLnVzZXIgPSBib3QudHJhbnNmb3JtZXJzLnVzZXIoYm90LCBwYXlsb2FkLmludGVyYWN0aW9uLnVzZXIpXG4gICAgfVxuXG4gICAgbWVzc2FnZS5pbnRlcmFjdGlvbiA9IGludGVyYWN0aW9uXG4gIH1cbiAgaWYgKHByb3BzLm1lbWJlciAmJiBndWlsZElkICYmIHBheWxvYWQubWVtYmVyKSBtZXNzYWdlLm1lbWJlciA9IGJvdC50cmFuc2Zvcm1lcnMubWVtYmVyKGJvdCwgcGF5bG9hZC5tZW1iZXIsIGd1aWxkSWQsIHVzZXJJZClcbiAgaWYgKHBheWxvYWQubWVudGlvbl9ldmVyeW9uZSkgbWVzc2FnZS5tZW50aW9uRXZlcnlvbmUgPSB0cnVlXG4gIGlmIChwcm9wcy5tZW50aW9uZWRDaGFubmVsSWRzICYmIHBheWxvYWQubWVudGlvbl9jaGFubmVscz8ubGVuZ3RoKSB7XG4gICAgbWVzc2FnZS5tZW50aW9uZWRDaGFubmVsSWRzID0gW1xuICAgICAgLy8gS2VlcCBhbnkgaWRzIHRodCBkaXNjb3JkIHNlbmRzXG4gICAgICAuLi4ocGF5bG9hZC5tZW50aW9uX2NoYW5uZWxzID8/IFtdKS5tYXAoKG0pID0+IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKG0uaWQpKSxcbiAgICAgIC8vIEFkZCBhbnkgb3RoZXIgaWRzIHRoYXQgY2FuIGJlIHZhbGlkYXRlZCBpbiBhIGNoYW5uZWwgbWVudGlvbiBmb3JtYXRcbiAgICAgIC4uLihwYXlsb2FkLmNvbnRlbnQ/Lm1hdGNoKENIQU5ORUxfTUVOVElPTl9SRUdFWCkgPz8gW10pLm1hcCgodGV4dCkgPT5cbiAgICAgICAgLy8gY29udmVydHMgdGhlIDwjMTIzPiBpbnRvIDEyM1xuICAgICAgICBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZSh0ZXh0LnN1YnN0cmluZygyLCB0ZXh0Lmxlbmd0aCAtIDEpKSxcbiAgICAgICksXG4gICAgXVxuICB9XG4gIGlmIChwcm9wcy5tZW50aW9uZWRSb2xlSWRzICYmIHBheWxvYWQubWVudGlvbl9yb2xlcz8ubGVuZ3RoKVxuICAgIG1lc3NhZ2UubWVudGlvbmVkUm9sZUlkcyA9IHBheWxvYWQubWVudGlvbl9yb2xlcy5tYXAoKGlkKSA9PiBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShpZCkpXG4gIGlmIChwcm9wcy5tZW50aW9ucyAmJiBwYXlsb2FkLm1lbnRpb25zPy5sZW5ndGgpIG1lc3NhZ2UubWVudGlvbnMgPSBwYXlsb2FkLm1lbnRpb25zLm1hcCgodXNlcikgPT4gYm90LnRyYW5zZm9ybWVycy51c2VyKGJvdCwgdXNlcikpXG4gIGlmIChwcm9wcy5tZXNzYWdlUmVmZXJlbmNlICYmIHBheWxvYWQubWVzc2FnZV9yZWZlcmVuY2UpIHtcbiAgICBjb25zdCByZWZlcmVuY2UgPSB7fSBhcyBOb25OdWxsYWJsZTxNZXNzYWdlWydtZXNzYWdlUmVmZXJlbmNlJ10+XG4gICAgY29uc3QgbWVzc2FnZVJlZmVyZW5jZVByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5tZXNzYWdlUmVmZXJlbmNlXG5cbiAgICBpZiAobWVzc2FnZVJlZmVyZW5jZVByb3BzLmNoYW5uZWxJZCAmJiBwYXlsb2FkLm1lc3NhZ2VfcmVmZXJlbmNlLmNoYW5uZWxfaWQpIHtcbiAgICAgIHJlZmVyZW5jZS5jaGFubmVsSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLm1lc3NhZ2VfcmVmZXJlbmNlLmNoYW5uZWxfaWQpXG4gICAgfVxuICAgIGlmIChtZXNzYWdlUmVmZXJlbmNlUHJvcHMuZ3VpbGRJZCAmJiBwYXlsb2FkLm1lc3NhZ2VfcmVmZXJlbmNlLmd1aWxkX2lkKSB7XG4gICAgICByZWZlcmVuY2UuZ3VpbGRJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQubWVzc2FnZV9yZWZlcmVuY2UuZ3VpbGRfaWQpXG4gICAgfVxuICAgIGlmIChtZXNzYWdlUmVmZXJlbmNlUHJvcHMubWVzc2FnZUlkICYmIHBheWxvYWQubWVzc2FnZV9yZWZlcmVuY2UubWVzc2FnZV9pZCkge1xuICAgICAgcmVmZXJlbmNlLm1lc3NhZ2VJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQubWVzc2FnZV9yZWZlcmVuY2UubWVzc2FnZV9pZClcbiAgICB9XG5cbiAgICBtZXNzYWdlLm1lc3NhZ2VSZWZlcmVuY2UgPSByZWZlcmVuY2VcbiAgfVxuICBpZiAocHJvcHMubm9uY2UgJiYgcGF5bG9hZC5ub25jZSkgbWVzc2FnZS5ub25jZSA9IHBheWxvYWQubm9uY2VcbiAgaWYgKHBheWxvYWQucGlubmVkKSBtZXNzYWdlLnBpbm5lZCA9IHRydWVcbiAgaWYgKHByb3BzLnJlYWN0aW9ucyAmJiBwYXlsb2FkLnJlYWN0aW9ucz8ubGVuZ3RoKSB7XG4gICAgbWVzc2FnZS5yZWFjdGlvbnMgPSBwYXlsb2FkLnJlYWN0aW9ucy5tYXAoKHJlYWN0aW9uKSA9PiAoe1xuICAgICAgbWU6IHJlYWN0aW9uLm1lLFxuICAgICAgbWVCdXJzdDogcmVhY3Rpb24ubWVfYnVyc3QsXG4gICAgICBjb3VudDogcmVhY3Rpb24uY291bnQsXG4gICAgICBjb3VudERldGFpbHM6IHtcbiAgICAgICAgYnVyc3Q6IHJlYWN0aW9uLmNvdW50X2RldGFpbHMuYnVyc3QsXG4gICAgICAgIG5vcm1hbDogcmVhY3Rpb24uY291bnRfZGV0YWlscy5ub3JtYWwsXG4gICAgICB9LFxuICAgICAgZW1vamk6IGJvdC50cmFuc2Zvcm1lcnMuZW1vamkoYm90LCByZWFjdGlvbi5lbW9qaSksXG4gICAgICBidXJzdENvbG9yczogcmVhY3Rpb24uYnVyc3RfY29sb3JzLFxuICAgIH0pKVxuICB9XG4gIGlmIChwcm9wcy5zdGlja2VySXRlbXMgJiYgcGF5bG9hZC5zdGlja2VyX2l0ZW1zPy5sZW5ndGgpXG4gICAgbWVzc2FnZS5zdGlja2VySXRlbXMgPSBwYXlsb2FkLnN0aWNrZXJfaXRlbXMubWFwKChpdGVtKSA9PiAoe1xuICAgICAgaWQ6IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKGl0ZW0uaWQpLFxuICAgICAgbmFtZTogaXRlbS5uYW1lLFxuICAgICAgZm9ybWF0VHlwZTogaXRlbS5mb3JtYXRfdHlwZSxcbiAgICB9KSlcbiAgaWYgKHBheWxvYWQudHRzKSBtZXNzYWdlLnR0cyA9IHRydWVcbiAgaWYgKHByb3BzLnRocmVhZCAmJiBwYXlsb2FkLnRocmVhZCkgbWVzc2FnZS50aHJlYWQgPSBib3QudHJhbnNmb3JtZXJzLmNoYW5uZWwoYm90LCB7IGNoYW5uZWw6IHBheWxvYWQudGhyZWFkLCBndWlsZElkIH0pXG4gIGlmIChwcm9wcy50eXBlKSBtZXNzYWdlLnR5cGUgPSBwYXlsb2FkLnR5cGVcbiAgaWYgKHByb3BzLndlYmhvb2tJZCAmJiBwYXlsb2FkLndlYmhvb2tfaWQpIG1lc3NhZ2Uud2ViaG9va0lkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC53ZWJob29rX2lkKVxuICBpZiAocHJvcHMucG9sbCAmJiBwYXlsb2FkLnBvbGwpIG1lc3NhZ2UucG9sbCA9IGJvdC50cmFuc2Zvcm1lcnMucG9sbChib3QsIHBheWxvYWQucG9sbClcbiAgaWYgKHByb3BzLmNhbGwgJiYgcGF5bG9hZC5jYWxsKSBtZXNzYWdlLmNhbGwgPSBib3QudHJhbnNmb3JtZXJzLm1lc3NhZ2VDYWxsKGJvdCwgcGF5bG9hZC5jYWxsKVxuXG4gIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmN1c3RvbWl6ZXJzLm1lc3NhZ2UoYm90LCBwYXlsb2FkLCBtZXNzYWdlKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtTWVzc2FnZUludGVyYWN0aW9uTWV0YWRhdGEoYm90OiBCb3QsIHBheWxvYWQ6IERpc2NvcmRNZXNzYWdlSW50ZXJhY3Rpb25NZXRhZGF0YSk6IE1lc3NhZ2VJbnRlcmFjdGlvbk1ldGFkYXRhIHtcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLm1lc3NhZ2VJbnRlcmFjdGlvbk1ldGFkYXRhXG4gIGNvbnN0IG1ldGFkYXRhID0ge30gYXMgTWVzc2FnZUludGVyYWN0aW9uTWV0YWRhdGFcblxuICBpZiAocHJvcHMuaWQpIG1ldGFkYXRhLmlkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5pZClcbiAgaWYgKHByb3BzLmF1dGhvcml6aW5nSW50ZWdyYXRpb25Pd25lcnMpIHtcbiAgICBtZXRhZGF0YS5hdXRob3JpemluZ0ludGVncmF0aW9uT3duZXJzID0ge31cbiAgICBpZiAocGF5bG9hZC5hdXRob3JpemluZ19pbnRlZ3JhdGlvbl9vd25lcnNbJzAnXSlcbiAgICAgIG1ldGFkYXRhLmF1dGhvcml6aW5nSW50ZWdyYXRpb25Pd25lcnNbRGlzY29yZEFwcGxpY2F0aW9uSW50ZWdyYXRpb25UeXBlLkd1aWxkSW5zdGFsbF0gPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShcbiAgICAgICAgcGF5bG9hZC5hdXRob3JpemluZ19pbnRlZ3JhdGlvbl9vd25lcnNbJzAnXSxcbiAgICAgIClcbiAgICBpZiAocGF5bG9hZC5hdXRob3JpemluZ19pbnRlZ3JhdGlvbl9vd25lcnNbJzEnXSlcbiAgICAgIG1ldGFkYXRhLmF1dGhvcml6aW5nSW50ZWdyYXRpb25Pd25lcnNbRGlzY29yZEFwcGxpY2F0aW9uSW50ZWdyYXRpb25UeXBlLlVzZXJJbnN0YWxsXSA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKFxuICAgICAgICBwYXlsb2FkLmF1dGhvcml6aW5nX2ludGVncmF0aW9uX293bmVyc1snMSddLFxuICAgICAgKVxuICB9XG4gIGlmIChwcm9wcy5pbnRlcmFjdGVkTWVzc2FnZUlkICYmIHBheWxvYWQuaW50ZXJhY3RlZF9tZXNzYWdlX2lkKVxuICAgIG1ldGFkYXRhLmludGVyYWN0ZWRNZXNzYWdlSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmludGVyYWN0ZWRfbWVzc2FnZV9pZClcbiAgaWYgKHByb3BzLm9yaWdpbmFsUmVzcG9uc2VNZXNzYWdlSWQgJiYgcGF5bG9hZC5vcmlnaW5hbF9yZXNwb25zZV9tZXNzYWdlX2lkKVxuICAgIG1ldGFkYXRhLm9yaWdpbmFsUmVzcG9uc2VNZXNzYWdlSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLm9yaWdpbmFsX3Jlc3BvbnNlX21lc3NhZ2VfaWQpXG4gIGlmIChwcm9wcy50cmlnZ2VyaW5nSW50ZXJhY3Rpb25NZXRhZGF0YSAmJiBwYXlsb2FkLnRyaWdnZXJpbmdfaW50ZXJhY3Rpb25fbWV0YWRhdGEpXG4gICAgbWV0YWRhdGEudHJpZ2dlcmluZ0ludGVyYWN0aW9uTWV0YWRhdGEgPSB0cmFuc2Zvcm1NZXNzYWdlSW50ZXJhY3Rpb25NZXRhZGF0YShib3QsIHBheWxvYWQudHJpZ2dlcmluZ19pbnRlcmFjdGlvbl9tZXRhZGF0YSlcbiAgaWYgKHByb3BzLnR5cGUpIG1ldGFkYXRhLnR5cGUgPSBwYXlsb2FkLnR5cGVcbiAgaWYgKHByb3BzLnVzZXIgJiYgcGF5bG9hZC51c2VyKSBtZXRhZGF0YS51c2VyID0gYm90LnRyYW5zZm9ybWVycy51c2VyKGJvdCwgcGF5bG9hZC51c2VyKVxuXG4gIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmN1c3RvbWl6ZXJzLm1lc3NhZ2VJbnRlcmFjdGlvbk1ldGFkYXRhKGJvdCwgcGF5bG9hZCwgbWV0YWRhdGEpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1NZXNzYWdlQ2FsbChib3Q6IEJvdCwgcGF5bG9hZDogRGlzY29yZE1lc3NhZ2VDYWxsKTogTWVzc2FnZUNhbGwge1xuICBjb25zdCBjYWxsID0ge30gYXMgTWVzc2FnZUNhbGxcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLm1lc3NhZ2VDYWxsXG5cbiAgaWYgKHByb3BzLnBhcnRpY2lwYW50cyAmJiBwYXlsb2FkLnBhcnRpY2lwYW50cykgY2FsbC5wYXJ0aWNpcGFudHMgPSBwYXlsb2FkLnBhcnRpY2lwYW50cy5tYXAoKHgpID0+IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHgpKVxuICBpZiAocHJvcHMuZW5kZWRUaW1lc3RhbXAgJiYgcGF5bG9hZC5lbmRlZF90aW1lc3RhbXApIGNhbGwuZW5kZWRUaW1lc3RhbXAgPSBEYXRlLnBhcnNlKHBheWxvYWQuZW5kZWRfdGltZXN0YW1wKVxuXG4gIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmN1c3RvbWl6ZXJzLm1lc3NhZ2VDYWxsKGJvdCwgcGF5bG9hZCwgY2FsbClcbn1cbiJdLCJuYW1lcyI6WyJ0cmFuc2Zvcm1NZXNzYWdlIiwidHJhbnNmb3JtTWVzc2FnZUNhbGwiLCJ0cmFuc2Zvcm1NZXNzYWdlSW50ZXJhY3Rpb25NZXRhZGF0YSIsIkVNUFRZX1NUUklORyIsImJhc2VNZXNzYWdlIiwiY3Jvc3Nwb3N0ZWQiLCJmbGFncyIsImNvbnRhaW5zIiwiTWVzc2FnZUZsYWdzIiwiQ3Jvc3Nwb3N0ZWQiLCJ2YWx1ZSIsImFkZCIsInJlbW92ZSIsImVwaGVtZXJhbCIsIkVwaGVtZXJhbCIsImZhaWxlZFRvTWVudGlvblNvbWVSb2xlc0luVGhyZWFkIiwiRmFpbGVkVG9NZW50aW9uU29tZVJvbGVzSW5UaHJlYWQiLCJoYXNUaHJlYWQiLCJIYXNUaHJlYWQiLCJpc0Nyb3NzcG9zdCIsIklzQ3Jvc3Nwb3N0IiwibG9hZGluZyIsIkxvYWRpbmciLCJtZW50aW9uZWRVc2VySWRzIiwibWVudGlvbnMiLCJtYXAiLCJ1c2VyIiwiaWQiLCJtZW50aW9uRXZlcnlvbmUiLCJiaXRmaWVsZCIsInBpbm5lZCIsInNvdXJjZU1lc3NhZ2VEZWxldGVkIiwiU291cmNlTWVzc2FnZURlbGV0ZWQiLCJzdXBwcmVzc0VtYmVkcyIsIlN1cHByZXNzRW1iZWRzIiwic3VwcHJlc3NOb3RpZmljYXRpb25zIiwiU3VwcHJlc3NOb3RpZmljYXRpb25zIiwidGltZXN0YW1wIiwic25vd2ZsYWtlVG9UaW1lc3RhbXAiLCJ0dHMiLCJ1cmdlbnQiLCJVcmdlbnQiLCJib3QiLCJwYXlsb2FkIiwiZ3VpbGRJZCIsImd1aWxkX2lkIiwidHJhbnNmb3JtZXJzIiwic25vd2ZsYWtlIiwidW5kZWZpbmVkIiwidXNlcklkIiwiYXV0aG9yIiwibWVzc2FnZSIsIk9iamVjdCIsImNyZWF0ZSIsIlRvZ2dsZUJpdGZpZWxkIiwicHJvcHMiLCJkZXNpcmVkUHJvcGVydGllcyIsImFwcGxpY2F0aW9uSWQiLCJhcHBsaWNhdGlvbl9pZCIsImF0dGFjaG1lbnRzIiwibGVuZ3RoIiwiYXR0YWNobWVudCIsImNoYW5uZWxJZCIsImNoYW5uZWxfaWQiLCJjb21wb25lbnRzIiwiY29tcCIsImNvbXBvbmVudCIsImNvbnRlbnQiLCJlZGl0ZWRUaW1lc3RhbXAiLCJlZGl0ZWRfdGltZXN0YW1wIiwiRGF0ZSIsInBhcnNlIiwiZW1iZWRzIiwiZW1iZWQiLCJpbnRlcmFjdGlvbk1ldGFkYXRhIiwiaW50ZXJhY3Rpb25fbWV0YWRhdGEiLCJpbnRlcmFjdGlvbiIsIm1lc3NhZ2VJbnRlcmFjdGlvblByb3BzIiwibWVzc2FnZUludGVyYWN0aW9uIiwibWVtYmVyIiwibmFtZSIsInR5cGUiLCJtZW50aW9uX2V2ZXJ5b25lIiwibWVudGlvbmVkQ2hhbm5lbElkcyIsIm1lbnRpb25fY2hhbm5lbHMiLCJtIiwibWF0Y2giLCJDSEFOTkVMX01FTlRJT05fUkVHRVgiLCJ0ZXh0Iiwic3Vic3RyaW5nIiwibWVudGlvbmVkUm9sZUlkcyIsIm1lbnRpb25fcm9sZXMiLCJtZXNzYWdlUmVmZXJlbmNlIiwibWVzc2FnZV9yZWZlcmVuY2UiLCJyZWZlcmVuY2UiLCJtZXNzYWdlUmVmZXJlbmNlUHJvcHMiLCJtZXNzYWdlSWQiLCJtZXNzYWdlX2lkIiwibm9uY2UiLCJyZWFjdGlvbnMiLCJyZWFjdGlvbiIsIm1lIiwibWVCdXJzdCIsIm1lX2J1cnN0IiwiY291bnQiLCJjb3VudERldGFpbHMiLCJidXJzdCIsImNvdW50X2RldGFpbHMiLCJub3JtYWwiLCJlbW9qaSIsImJ1cnN0Q29sb3JzIiwiYnVyc3RfY29sb3JzIiwic3RpY2tlckl0ZW1zIiwic3RpY2tlcl9pdGVtcyIsIml0ZW0iLCJmb3JtYXRUeXBlIiwiZm9ybWF0X3R5cGUiLCJ0aHJlYWQiLCJjaGFubmVsIiwid2ViaG9va0lkIiwid2ViaG9va19pZCIsInBvbGwiLCJjYWxsIiwibWVzc2FnZUNhbGwiLCJjdXN0b21pemVycyIsIm1lc3NhZ2VJbnRlcmFjdGlvbk1ldGFkYXRhIiwibWV0YWRhdGEiLCJhdXRob3JpemluZ0ludGVncmF0aW9uT3duZXJzIiwiYXV0aG9yaXppbmdfaW50ZWdyYXRpb25fb3duZXJzIiwiRGlzY29yZEFwcGxpY2F0aW9uSW50ZWdyYXRpb25UeXBlIiwiR3VpbGRJbnN0YWxsIiwiVXNlckluc3RhbGwiLCJpbnRlcmFjdGVkTWVzc2FnZUlkIiwiaW50ZXJhY3RlZF9tZXNzYWdlX2lkIiwib3JpZ2luYWxSZXNwb25zZU1lc3NhZ2VJZCIsIm9yaWdpbmFsX3Jlc3BvbnNlX21lc3NhZ2VfaWQiLCJ0cmlnZ2VyaW5nSW50ZXJhY3Rpb25NZXRhZGF0YSIsInRyaWdnZXJpbmdfaW50ZXJhY3Rpb25fbWV0YWRhdGEiLCJwYXJ0aWNpcGFudHMiLCJ4IiwiZW5kZWRUaW1lc3RhbXAiLCJlbmRlZF90aW1lc3RhbXAiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0lBOEhnQkEsZ0JBQWdCO2VBQWhCQTs7SUF5SUFDLG9CQUFvQjtlQUFwQkE7O0lBNUJBQyxtQ0FBbUM7ZUFBbkNBOzs7dUJBck9UOzJCQUMrQjt1QkFDMEU7Z0NBQ2pGO0FBRS9CLE1BQU1DLGVBQWU7QUFFckIsTUFBTUMsY0FBYztJQUNsQixJQUFJQyxlQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDQyxLQUFLLEVBQUVDLFNBQVNDLG1CQUFZLENBQUNDLFdBQVcsS0FBSztJQUMzRDtJQUNBLElBQUlKLGFBQVlLLE1BQWdCO1FBQzlCLElBQUksQ0FBQyxJQUFJLENBQUNKLEtBQUssRUFBRTtRQUNqQixJQUFJSSxPQUFPLElBQUksQ0FBQ0osS0FBSyxDQUFDSyxHQUFHLENBQUNILG1CQUFZLENBQUNDLFdBQVc7YUFDN0MsSUFBSSxDQUFDSCxLQUFLLENBQUNNLE1BQU0sQ0FBQ0osbUJBQVksQ0FBQ0MsV0FBVztJQUNqRDtJQUNBLElBQUlJLGFBQVk7UUFDZCxPQUFPLElBQUksQ0FBQ1AsS0FBSyxFQUFFQyxTQUFTQyxtQkFBWSxDQUFDTSxTQUFTLEtBQUs7SUFDekQ7SUFDQSxJQUFJRCxXQUFVSCxNQUFnQjtRQUM1QixJQUFJLENBQUMsSUFBSSxDQUFDSixLQUFLLEVBQUU7UUFDakIsSUFBSUksT0FBTyxJQUFJLENBQUNKLEtBQUssQ0FBQ0ssR0FBRyxD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
|
|
271
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvbWVzc2FnZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEaXNjb3JkQXBwbGljYXRpb25JbnRlZ3JhdGlvblR5cGUsXG4gIHR5cGUgRGlzY29yZE1lc3NhZ2UsXG4gIHR5cGUgRGlzY29yZE1lc3NhZ2VDYWxsLFxuICB0eXBlIERpc2NvcmRNZXNzYWdlSW50ZXJhY3Rpb25NZXRhZGF0YSxcbiAgdHlwZSBEaXNjb3JkTWVzc2FnZVNuYXBzaG90LFxuICBNZXNzYWdlRmxhZ3MsXG59IGZyb20gJ0BkaXNjb3JkZW5vL3R5cGVzJ1xuaW1wb3J0IHsgQ0hBTk5FTF9NRU5USU9OX1JFR0VYIH0gZnJvbSAnLi4vY29uc3RhbnRzLmpzJ1xuaW1wb3J0IHsgdHlwZSBCb3QsIHR5cGUgTWVzc2FnZSwgdHlwZSBNZXNzYWdlQ2FsbCwgdHlwZSBNZXNzYWdlSW50ZXJhY3Rpb25NZXRhZGF0YSwgdHlwZSBNZXNzYWdlU25hcHNob3QsIHNub3dmbGFrZVRvVGltZXN0YW1wIH0gZnJvbSAnLi4vaW5kZXguanMnXG5pbXBvcnQgeyBUb2dnbGVCaXRmaWVsZCB9IGZyb20gJy4vdG9nZ2xlcy9Ub2dnbGVCaXRmaWVsZC5qcydcblxuY29uc3QgRU1QVFlfU1RSSU5HID0gJydcblxuY29uc3QgYmFzZU1lc3NhZ2UgPSB7XG4gIGdldCBjcm9zc3Bvc3RlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5mbGFncz8uY29udGFpbnMoTWVzc2FnZUZsYWdzLkNyb3NzcG9zdGVkKSA/PyBmYWxzZVxuICB9LFxuICBzZXQgY3Jvc3Nwb3N0ZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuZmxhZ3MpIHJldHVyblxuICAgIGlmICh2YWx1ZSkgdGhpcy5mbGFncy5hZGQoTWVzc2FnZUZsYWdzLkNyb3NzcG9zdGVkKVxuICAgIGVsc2UgdGhpcy5mbGFncy5yZW1vdmUoTWVzc2FnZUZsYWdzLkNyb3NzcG9zdGVkKVxuICB9LFxuICBnZXQgZXBoZW1lcmFsKCkge1xuICAgIHJldHVybiB0aGlzLmZsYWdzPy5jb250YWlucyhNZXNzYWdlRmxhZ3MuRXBoZW1lcmFsKSA/PyBmYWxzZVxuICB9LFxuICBzZXQgZXBoZW1lcmFsKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKCF0aGlzLmZsYWdzKSByZXR1cm5cbiAgICBpZiAodmFsdWUpIHRoaXMuZmxhZ3MuYWRkKE1lc3NhZ2VGbGFncy5FcGhlbWVyYWwpXG4gICAgZWxzZSB0aGlzLmZsYWdzLnJlbW92ZShNZXNzYWdlRmxhZ3MuRXBoZW1lcmFsKVxuICB9LFxuICBnZXQgZmFpbGVkVG9NZW50aW9uU29tZVJvbGVzSW5UaHJlYWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmxhZ3M/LmNvbnRhaW5zKE1lc3NhZ2VGbGFncy5GYWlsZWRUb01lbnRpb25Tb21lUm9sZXNJblRocmVhZCkgPz8gZmFsc2VcbiAgfSxcbiAgc2V0IGZhaWxlZFRvTWVudGlvblNvbWVSb2xlc0luVGhyZWFkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKCF0aGlzLmZsYWdzKSByZXR1cm5cbiAgICBpZiAodmFsdWUpIHRoaXMuZmxhZ3MuYWRkKE1lc3NhZ2VGbGFncy5GYWlsZWRUb01lbnRpb25Tb21lUm9sZXNJblRocmVhZClcbiAgICBlbHNlIHRoaXMuZmxhZ3MucmVtb3ZlKE1lc3NhZ2VGbGFncy5GYWlsZWRUb01lbnRpb25Tb21lUm9sZXNJblRocmVhZClcbiAgfSxcbiAgZ2V0IGhhc1RocmVhZCgpIHtcbiAgICByZXR1cm4gdGhpcy5mbGFncz8uY29udGFpbnMoTWVzc2FnZUZsYWdzLkhhc1RocmVhZCkgPz8gZmFsc2VcbiAgfSxcbiAgc2V0IGhhc1RocmVhZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICghdGhpcy5mbGFncykgcmV0dXJuXG4gICAgaWYgKHZhbHVlKSB0aGlzLmZsYWdzLmFkZChNZXNzYWdlRmxhZ3MuSGFzVGhyZWFkKVxuICAgIGVsc2UgdGhpcy5mbGFncy5yZW1vdmUoTWVzc2FnZUZsYWdzLkhhc1RocmVhZClcbiAgfSxcbiAgZ2V0IGlzQ3Jvc3Nwb3N0KCkge1xuICAgIHJldHVybiB0aGlzLmZsYWdzPy5jb250YWlucyhNZXNzYWdlRmxhZ3MuSXNDcm9zc3Bvc3QpID8/IGZhbHNlXG4gIH0sXG4gIHNldCBpc0Nyb3NzcG9zdCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICghdGhpcy5mbGFncykgcmV0dXJuXG4gICAgaWYgKHZhbHVlKSB0aGlzLmZsYWdzLmFkZChNZXNzYWdlRmxhZ3MuSXNDcm9zc3Bvc3QpXG4gICAgZWxzZSB0aGlzLmZsYWdzLnJlbW92ZShNZXNzYWdlRmxhZ3MuSXNDcm9zc3Bvc3QpXG4gIH0sXG4gIGdldCBsb2FkaW5nKCkge1xuICAgIHJldHVybiB0aGlzLmZsYWdzPy5jb250YWlucyhNZXNzYWdlRmxhZ3MuTG9hZGluZykgPz8gZmFsc2VcbiAgfSxcbiAgc2V0IGxvYWRpbmcodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuZmxhZ3MpIHJldHVyblxuICAgIGlmICh2YWx1ZSkgdGhpcy5mbGFncy5hZGQoTWVzc2FnZUZsYWdzLkxvYWRpbmcpXG4gICAgZWxzZSB0aGlzLmZsYWdzLnJlbW92ZShNZXNzYWdlRmxhZ3MuTG9hZGluZylcbiAgfSxcbiAgZ2V0IG1lbnRpb25lZFVzZXJJZHMoKSB7XG4gICAgcmV0dXJuIHRoaXMubWVudGlvbnM/Lm1hcCgodXNlcikgPT4gdXNlci5pZCkgPz8gW11cbiAgfSxcbiAgZ2V0IG1lbnRpb25FdmVyeW9uZSgpIHtcbiAgICByZXR1cm4gdGhpcy5iaXRmaWVsZD8uY29udGFpbnMoMikgPz8gZmFsc2VcbiAgfSxcbiAgc2V0IG1lbnRpb25FdmVyeW9uZSh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICghdGhpcy5iaXRmaWVsZCkgcmV0dXJuXG4gICAgaWYgKHZhbHVlKSB0aGlzLmJpdGZpZWxkLmFkZCgyKVxuICAgIGVsc2UgdGhpcy5iaXRmaWVsZC5yZW1vdmUoMilcbiAgfSxcbiAgZ2V0IHBpbm5lZCgpIHtcbiAgICByZXR1cm4gdGhpcy5iaXRmaWVsZD8uY29udGFpbnMoMykgPz8gZmFsc2VcbiAgfSxcbiAgc2V0IHBpbm5lZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICghdGhpcy5iaXRmaWVsZCkgcmV0dXJuXG4gICAgaWYgKHZhbHVlKSB0aGlzLmJpdGZpZWxkLmFkZCgzKVxuICAgIGVsc2UgdGhpcy5iaXRmaWVsZC5yZW1vdmUoMylcbiAgfSxcbiAgZ2V0IHNvdXJjZU1lc3NhZ2VEZWxldGVkKCkge1xuICAgIHJldHVybiB0aGlzLmZsYWdzPy5jb250YWlucyhNZXNzYWdlRmxhZ3MuU291cmNlTWVzc2FnZURlbGV0ZWQpID8/IGZhbHNlXG4gIH0sXG4gIHNldCBzb3VyY2VNZXNzYWdlRGVsZXRlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICghdGhpcy5mbGFncykgcmV0dXJuXG4gICAgaWYgKHZhbHVlKSB0aGlzLmZsYWdzLmFkZChNZXNzYWdlRmxhZ3MuU291cmNlTWVzc2FnZURlbGV0ZWQpXG4gICAgZWxzZSB0aGlzLmZsYWdzLnJlbW92ZShNZXNzYWdlRmxhZ3MuU291cmNlTWVzc2FnZURlbGV0ZWQpXG4gIH0sXG4gIGdldCBzdXBwcmVzc0VtYmVkcygpIHtcbiAgICByZXR1cm4gdGhpcy5mbGFncz8uY29udGFpbnMoTWVzc2FnZUZsYWdzLlN1cHByZXNzRW1iZWRzKSA/PyBmYWxzZVxuICB9LFxuICBzZXQgc3VwcHJlc3NFbWJlZHModmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuZmxhZ3MpIHJldHVyblxuICAgIGlmICh2YWx1ZSkgdGhpcy5mbGFncy5hZGQoTWVzc2FnZUZsYWdzLlN1cHByZXNzRW1iZWRzKVxuICAgIGVsc2UgdGhpcy5mbGFncy5yZW1vdmUoTWVzc2FnZUZsYWdzLlN1cHByZXNzRW1iZWRzKVxuICB9LFxuICBnZXQgc3VwcHJlc3NOb3RpZmljYXRpb25zKCkge1xuICAgIHJldHVybiB0aGlzLmZsYWdzPy5jb250YWlucyhNZXNzYWdlRmxhZ3MuU3VwcHJlc3NOb3RpZmljYXRpb25zKSA/PyBmYWxzZVxuICB9LFxuICBzZXQgc3VwcHJlc3NOb3RpZmljYXRpb25zKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKCF0aGlzLmZsYWdzKSByZXR1cm5cbiAgICBpZiAodmFsdWUpIHRoaXMuZmxhZ3MuYWRkKE1lc3NhZ2VGbGFncy5TdXBwcmVzc05vdGlmaWNhdGlvbnMpXG4gICAgZWxzZSB0aGlzLmZsYWdzLnJlbW92ZShNZXNzYWdlRmxhZ3MuU3VwcHJlc3NOb3RpZmljYXRpb25zKVxuICB9LFxuICBnZXQgdGltZXN0YW1wKCkge1xuICAgIHJldHVybiB0aGlzLmlkID8gc25vd2ZsYWtlVG9UaW1lc3RhbXAodGhpcy5pZCkgOiAwXG4gIH0sXG4gIGdldCB0dHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuYml0ZmllbGQ/LmNvbnRhaW5zKDEpID8/IGZhbHNlXG4gIH0sXG4gIHNldCB0dHModmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuYml0ZmllbGQpIHJldHVyblxuICAgIGlmICh2YWx1ZSkgdGhpcy5iaXRmaWVsZC5hZGQoMSlcbiAgICBlbHNlIHRoaXMuYml0ZmllbGQucmVtb3ZlKDEpXG4gIH0sXG4gIGdldCB1cmdlbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmxhZ3M/LmNvbnRhaW5zKE1lc3NhZ2VGbGFncy5VcmdlbnQpID8/IGZhbHNlXG4gIH0sXG4gIHNldCB1cmdlbnQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuZmxhZ3MpIHJldHVyblxuICAgIGlmICh2YWx1ZSkgdGhpcy5mbGFncy5hZGQoTWVzc2FnZUZsYWdzLlVyZ2VudClcbiAgICBlbHNlIHRoaXMuZmxhZ3MucmVtb3ZlKE1lc3NhZ2VGbGFncy5VcmdlbnQpXG4gIH0sXG59IGFzIE1lc3NhZ2VcblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybU1lc3NhZ2UoYm90OiBCb3QsIHBheWxvYWQ6IERpc2NvcmRNZXNzYWdlKTogTWVzc2FnZSB7XG4gIGNvbnN0IGd1aWxkSWQgPSBwYXlsb2FkLmd1aWxkX2lkID8gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5ndWlsZF9pZCkgOiB1bmRlZmluZWRcbiAgY29uc3QgdXNlcklkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5hdXRob3IuaWQpXG5cbiAgY29uc3QgbWVzc2FnZTogTWVzc2FnZSA9IE9iamVjdC5jcmVhdGUoYmFzZU1lc3NhZ2UpXG4gIG1lc3NhZ2UuYml0ZmllbGQgPSBuZXcgVG9nZ2xlQml0ZmllbGQoKVxuICBtZXNzYWdlLmZsYWdzID0gbmV3IFRvZ2dsZUJpdGZpZWxkKHBheWxvYWQuZmxhZ3MpXG5cbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLm1lc3NhZ2VcblxuICBpZiAocHJvcHMuYXV0aG9yICYmIHBheWxvYWQuYXV0aG9yKSBtZXNzYWdlLmF1dGhvciA9IGJvdC50cmFuc2Zvcm1lcnMudXNlcihib3QsIHBheWxvYWQuYXV0aG9yKVxuICBpZiAocHJvcHMuYXBwbGljYXRpb25JZCAmJiBwYXlsb2FkLmFwcGxpY2F0aW9uX2lkKSBtZXNzYWdlLmFwcGxpY2F0aW9uSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmFwcGxpY2F0aW9uX2lkKVxuICBpZiAocHJvcHMuYXR0YWNobWVudHMgJiYgcGF5bG9hZC5hdHRhY2htZW50cz8ubGVuZ3RoKVxuICAgIG1lc3NhZ2UuYXR0YWNobWVudHMgPSBwYXlsb2FkLmF0dGFjaG1lbnRzLm1hcCgoYXR0YWNobWVudCkgPT4gYm90LnRyYW5zZm9ybWVycy5hdHRhY2htZW50KGJvdCwgYXR0YWNobWVudCkpXG4gIGlmIChwcm9wcy5jaGFubmVsSWQgJiYgcGF5bG9hZC5jaGFubmVsX2lkKSBtZXNzYWdlLmNoYW5uZWxJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuY2hhbm5lbF9pZClcbiAgaWYgKHByb3BzLmNvbXBvbmVudHMgJiYgcGF5bG9hZC5jb21wb25lbnRzPy5sZW5ndGgpIG1lc3NhZ2UuY29tcG9uZW50cyA9IHBheWxvYWQuY29tcG9uZW50cy5tYXAoKGNvbXApID0+IGJvdC50cmFuc2Zvcm1lcnMuY29tcG9uZW50KGJvdCwgY29tcCkpXG4gIGlmIChwcm9wcy5jb250ZW50ICYmIHBheWxvYWQuY29udGVudCkgbWVzc2FnZS5jb250ZW50ID0gcGF5bG9hZC5jb250ZW50ID8/IEVNUFRZX1NUUklOR1xuICBpZiAocHJvcHMuZWRpdGVkVGltZXN0YW1wICYmIHBheWxvYWQuZWRpdGVkX3RpbWVzdGFtcCkgbWVzc2FnZS5lZGl0ZWRUaW1lc3RhbXAgPSBEYXRlLnBhcnNlKHBheWxvYWQuZWRpdGVkX3RpbWVzdGFtcClcbiAgaWYgKHByb3BzLmVtYmVkcyAmJiBwYXlsb2FkLmVtYmVkcz8ubGVuZ3RoKSBtZXNzYWdlLmVtYmVkcyA9IHBheWxvYWQuZW1iZWRzLm1hcCgoZW1iZWQpID0+IGJvdC50cmFuc2Zvcm1lcnMuZW1iZWQoYm90LCBlbWJlZCkpXG4gIGlmIChwcm9wcy5ndWlsZElkICYmIGd1aWxkSWQpIG1lc3NhZ2UuZ3VpbGRJZCA9IGd1aWxkSWRcbiAgaWYgKHByb3BzLmlkICYmIHBheWxvYWQuaWQpIG1lc3NhZ2UuaWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmlkKVxuICBpZiAocHJvcHMuaW50ZXJhY3Rpb25NZXRhZGF0YSAmJiBwYXlsb2FkLmludGVyYWN0aW9uX21ldGFkYXRhKVxuICAgIG1lc3NhZ2UuaW50ZXJhY3Rpb25NZXRhZGF0YSA9IHRyYW5zZm9ybU1lc3NhZ2VJbnRlcmFjdGlvbk1ldGFkYXRhKGJvdCwgcGF5bG9hZC5pbnRlcmFjdGlvbl9tZXRhZGF0YSlcbiAgaWYgKHByb3BzLmludGVyYWN0aW9uICYmIHBheWxvYWQuaW50ZXJhY3Rpb24pIHtcbiAgICBjb25zdCBpbnRlcmFjdGlvbiA9IHt9IGFzIE5vbk51bGxhYmxlPE1lc3NhZ2VbJ2ludGVyYWN0aW9uJ10+XG4gICAgY29uc3QgbWVzc2FnZUludGVyYWN0aW9uUHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLm1lc3NhZ2VJbnRlcmFjdGlvblxuXG4gICAgaWYgKG1lc3NhZ2VJbnRlcmFjdGlvblByb3BzLmlkKSB7XG4gICAgICBpbnRlcmFjdGlvbi5pZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaW50ZXJhY3Rpb24uaWQpXG4gICAgfVxuICAgIGlmIChtZXNzYWdlSW50ZXJhY3Rpb25Qcm9wcy5tZW1iZXIgJiYgcGF5bG9hZC5pbnRlcmFjdGlvbi5tZW1iZXIpIHtcbiAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgVE9ETzogcGFydGlhbCAtIGNoZWNrIHdoeSB0aGlzIGlzIHBhcnRpYWwgYW5kIGhhbmRsZSBhcyBuZWVkZWRcbiAgICAgIGludGVyYWN0aW9uLm1lbWJlciA9IGJvdC50cmFuc2Zvcm1lcnMubWVtYmVyKGJvdCwgcGF5bG9hZC5pbnRlcmFjdGlvbi5tZW1iZXIsIGd1aWxkSWQsIHBheWxvYWQuaW50ZXJhY3Rpb24udXNlci5pZClcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2VJbnRlcmFjdGlvblByb3BzLm5hbWUpIHtcbiAgICAgIGludGVyYWN0aW9uLm5hbWUgPSBwYXlsb2FkLmludGVyYWN0aW9uLm5hbWVcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2VJbnRlcmFjdGlvblByb3BzLnR5cGUpIHtcbiAgICAgIGludGVyYWN0aW9uLnR5cGUgPSBwYXlsb2FkLmludGVyYWN0aW9uLnR5cGVcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2VJbnRlcmFjdGlvblByb3BzLnVzZXIpIHtcbiAgICAgIGludGVyYWN0aW9uLnVzZXIgPSBib3QudHJhbnNmb3JtZXJzLnVzZXIoYm90LCBwYXlsb2FkLmludGVyYWN0aW9uLnVzZXIpXG4gICAgfVxuXG4gICAgbWVzc2FnZS5pbnRlcmFjdGlvbiA9IGludGVyYWN0aW9uXG4gIH1cbiAgaWYgKHByb3BzLm1lbWJlciAmJiBndWlsZElkICYmIHBheWxvYWQubWVtYmVyKSBtZXNzYWdlLm1lbWJlciA9IGJvdC50cmFuc2Zvcm1lcnMubWVtYmVyKGJvdCwgcGF5bG9hZC5tZW1iZXIsIGd1aWxkSWQsIHVzZXJJZClcbiAgaWYgKHBheWxvYWQubWVudGlvbl9ldmVyeW9uZSkgbWVzc2FnZS5tZW50aW9uRXZlcnlvbmUgPSB0cnVlXG4gIGlmIChwcm9wcy5tZW50aW9uZWRDaGFubmVsSWRzICYmIHBheWxvYWQubWVudGlvbl9jaGFubmVscz8ubGVuZ3RoKSB7XG4gICAgbWVzc2FnZS5tZW50aW9uZWRDaGFubmVsSWRzID0gW1xuICAgICAgLy8gS2VlcCBhbnkgaWRzIHRodCBkaXNjb3JkIHNlbmRzXG4gICAgICAuLi4ocGF5bG9hZC5tZW50aW9uX2NoYW5uZWxzID8/IFtdKS5tYXAoKG0pID0+IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKG0uaWQpKSxcbiAgICAgIC8vIEFkZCBhbnkgb3RoZXIgaWRzIHRoYXQgY2FuIGJlIHZhbGlkYXRlZCBpbiBhIGNoYW5uZWwgbWVudGlvbiBmb3JtYXRcbiAgICAgIC4uLihwYXlsb2FkLmNvbnRlbnQ/Lm1hdGNoKENIQU5ORUxfTUVOVElPTl9SRUdFWCkgPz8gW10pLm1hcCgodGV4dCkgPT5cbiAgICAgICAgLy8gY29udmVydHMgdGhlIDwjMTIzPiBpbnRvIDEyM1xuICAgICAgICBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZSh0ZXh0LnN1YnN0cmluZygyLCB0ZXh0Lmxlbmd0aCAtIDEpKSxcbiAgICAgICksXG4gICAgXVxuICB9XG4gIGlmIChwcm9wcy5tZW50aW9uZWRSb2xlSWRzICYmIHBheWxvYWQubWVudGlvbl9yb2xlcz8ubGVuZ3RoKVxuICAgIG1lc3NhZ2UubWVudGlvbmVkUm9sZUlkcyA9IHBheWxvYWQubWVudGlvbl9yb2xlcy5tYXAoKGlkKSA9PiBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShpZCkpXG4gIGlmIChwcm9wcy5tZW50aW9ucyAmJiBwYXlsb2FkLm1lbnRpb25zPy5sZW5ndGgpIG1lc3NhZ2UubWVudGlvbnMgPSBwYXlsb2FkLm1lbnRpb25zLm1hcCgodXNlcikgPT4gYm90LnRyYW5zZm9ybWVycy51c2VyKGJvdCwgdXNlcikpXG4gIGlmIChwcm9wcy5tZXNzYWdlUmVmZXJlbmNlICYmIHBheWxvYWQubWVzc2FnZV9yZWZlcmVuY2UpIHtcbiAgICBjb25zdCByZWZlcmVuY2UgPSB7fSBhcyBOb25OdWxsYWJsZTxNZXNzYWdlWydtZXNzYWdlUmVmZXJlbmNlJ10+XG4gICAgY29uc3QgbWVzc2FnZVJlZmVyZW5jZVByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5tZXNzYWdlUmVmZXJlbmNlXG5cbiAgICBpZiAobWVzc2FnZVJlZmVyZW5jZVByb3BzLmNoYW5uZWxJZCAmJiBwYXlsb2FkLm1lc3NhZ2VfcmVmZXJlbmNlLmNoYW5uZWxfaWQpIHtcbiAgICAgIHJlZmVyZW5jZS5jaGFubmVsSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLm1lc3NhZ2VfcmVmZXJlbmNlLmNoYW5uZWxfaWQpXG4gICAgfVxuICAgIGlmIChtZXNzYWdlUmVmZXJlbmNlUHJvcHMuZ3VpbGRJZCAmJiBwYXlsb2FkLm1lc3NhZ2VfcmVmZXJlbmNlLmd1aWxkX2lkKSB7XG4gICAgICByZWZlcmVuY2UuZ3VpbGRJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQubWVzc2FnZV9yZWZlcmVuY2UuZ3VpbGRfaWQpXG4gICAgfVxuICAgIGlmIChtZXNzYWdlUmVmZXJlbmNlUHJvcHMubWVzc2FnZUlkICYmIHBheWxvYWQubWVzc2FnZV9yZWZlcmVuY2UubWVzc2FnZV9pZCkge1xuICAgICAgcmVmZXJlbmNlLm1lc3NhZ2VJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQubWVzc2FnZV9yZWZlcmVuY2UubWVzc2FnZV9pZClcbiAgICB9XG5cbiAgICBtZXNzYWdlLm1lc3NhZ2VSZWZlcmVuY2UgPSByZWZlcmVuY2VcbiAgfVxuICBpZiAocHJvcHMucmVmZXJlbmNlZE1lc3NhZ2UgJiYgcGF5bG9hZC5yZWZlcmVuY2VkX21lc3NhZ2UpIG1lc3NhZ2UucmVmZXJlbmNlZE1lc3NhZ2UgPSBib3QudHJhbnNmb3JtZXJzLm1lc3NhZ2UoYm90LCBwYXlsb2FkLnJlZmVyZW5jZWRfbWVzc2FnZSlcbiAgaWYgKHByb3BzLm1lc3NhZ2VTbmFwc2hvdHMgJiYgcGF5bG9hZC5tZXNzYWdlX3NuYXBzaG90cylcbiAgICBtZXNzYWdlLm1lc3NhZ2VTbmFwc2hvdHMgPSBwYXlsb2FkLm1lc3NhZ2Vfc25hcHNob3RzLm1hcCgoc25hcCkgPT4gYm90LnRyYW5zZm9ybWVycy5tZXNzYWdlU25hcHNob3QoYm90LCBzbmFwKSlcbiAgaWYgKHByb3BzLm5vbmNlICYmIHBheWxvYWQubm9uY2UpIG1lc3NhZ2Uubm9uY2UgPSBwYXlsb2FkLm5vbmNlXG4gIGlmIChwYXlsb2FkLnBpbm5lZCkgbWVzc2FnZS5waW5uZWQgPSB0cnVlXG4gIGlmIChwcm9wcy5yZWFjdGlvbnMgJiYgcGF5bG9hZC5yZWFjdGlvbnM/Lmxlbmd0aCkge1xuICAgIG1lc3NhZ2UucmVhY3Rpb25zID0gcGF5bG9hZC5yZWFjdGlvbnMubWFwKChyZWFjdGlvbikgPT4gKHtcbiAgICAgIG1lOiByZWFjdGlvbi5tZSxcbiAgICAgIG1lQnVyc3Q6IHJlYWN0aW9uLm1lX2J1cnN0LFxuICAgICAgY291bnQ6IHJlYWN0aW9uLmNvdW50LFxuICAgICAgY291bnREZXRhaWxzOiB7XG4gICAgICAgIGJ1cnN0OiByZWFjdGlvbi5jb3VudF9kZXRhaWxzLmJ1cnN0LFxuICAgICAgICBub3JtYWw6IHJlYWN0aW9uLmNvdW50X2RldGFpbHMubm9ybWFsLFxuICAgICAgfSxcbiAgICAgIGVtb2ppOiBib3QudHJhbnNmb3JtZXJzLmVtb2ppKGJvdCwgcmVhY3Rpb24uZW1vamkpLFxuICAgICAgYnVyc3RDb2xvcnM6IHJlYWN0aW9uLmJ1cnN0X2NvbG9ycyxcbiAgICB9KSlcbiAgfVxuICBpZiAocHJvcHMuc3RpY2tlckl0ZW1zICYmIHBheWxvYWQuc3RpY2tlcl9pdGVtcz8ubGVuZ3RoKVxuICAgIG1lc3NhZ2Uuc3RpY2tlckl0ZW1zID0gcGF5bG9hZC5zdGlja2VyX2l0ZW1zLm1hcCgoaXRlbSkgPT4gKHtcbiAgICAgIGlkOiBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShpdGVtLmlkKSxcbiAgICAgIG5hbWU6IGl0ZW0ubmFtZSxcbiAgICAgIGZvcm1hdFR5cGU6IGl0ZW0uZm9ybWF0X3R5cGUsXG4gICAgfSkpXG4gIGlmIChwYXlsb2FkLnR0cykgbWVzc2FnZS50dHMgPSB0cnVlXG4gIGlmIChwcm9wcy50aHJlYWQgJiYgcGF5bG9hZC50aHJlYWQpIG1lc3NhZ2UudGhyZWFkID0gYm90LnRyYW5zZm9ybWVycy5jaGFubmVsKGJvdCwgeyBjaGFubmVsOiBwYXlsb2FkLnRocmVhZCwgZ3VpbGRJZCB9KVxuICBpZiAocHJvcHMudHlwZSkgbWVzc2FnZS50eXBlID0gcGF5bG9hZC50eXBlXG4gIGlmIChwcm9wcy53ZWJob29rSWQgJiYgcGF5bG9hZC53ZWJob29rX2lkKSBtZXNzYWdlLndlYmhvb2tJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQud2ViaG9va19pZClcbiAgaWYgKHByb3BzLnBvbGwgJiYgcGF5bG9hZC5wb2xsKSBtZXNzYWdlLnBvbGwgPSBib3QudHJhbnNmb3JtZXJzLnBvbGwoYm90LCBwYXlsb2FkLnBvbGwpXG4gIGlmIChwcm9wcy5jYWxsICYmIHBheWxvYWQuY2FsbCkgbWVzc2FnZS5jYWxsID0gYm90LnRyYW5zZm9ybWVycy5tZXNzYWdlQ2FsbChib3QsIHBheWxvYWQuY2FsbClcblxuICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jdXN0b21pemVycy5tZXNzYWdlKGJvdCwgcGF5bG9hZCwgbWVzc2FnZSlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybU1lc3NhZ2VTbmFwc2hvdChib3Q6IEJvdCwgcGF5bG9hZDogRGlzY29yZE1lc3NhZ2VTbmFwc2hvdCk6IE1lc3NhZ2VTbmFwc2hvdCB7XG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5tZXNzYWdlU25hcHNob3RcbiAgY29uc3QgbWVzc2FnZVNuYXBzaG90ID0ge30gYXMgTWVzc2FnZVNuYXBzaG90XG5cbiAgaWYgKHByb3BzLm1lc3NhZ2UgJiYgcGF5bG9hZC5tZXNzYWdlKSBtZXNzYWdlU25hcHNob3QubWVzc2FnZSA9IGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZShib3QsIHBheWxvYWQubWVzc2FnZSBhcyBEaXNjb3JkTWVzc2FnZSlcblxuICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jdXN0b21pemVycy5tZXNzYWdlU25hcHNob3QoYm90LCBwYXlsb2FkLCBtZXNzYWdlU25hcHNob3QpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1NZXNzYWdlSW50ZXJhY3Rpb25NZXRhZGF0YShib3Q6IEJvdCwgcGF5bG9hZDogRGlzY29yZE1lc3NhZ2VJbnRlcmFjdGlvbk1ldGFkYXRhKTogTWVzc2FnZUludGVyYWN0aW9uTWV0YWRhdGEge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMubWVzc2FnZUludGVyYWN0aW9uTWV0YWRhdGFcbiAgY29uc3QgbWV0YWRhdGEgPSB7fSBhcyBNZXNzYWdlSW50ZXJhY3Rpb25NZXRhZGF0YVxuXG4gIGlmIChwcm9wcy5pZCkgbWV0YWRhdGEuaWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmlkKVxuICBpZiAocHJvcHMuYXV0aG9yaXppbmdJbnRlZ3JhdGlvbk93bmVycykge1xuICAgIG1ldGFkYXRhLmF1dGhvcml6aW5nSW50ZWdyYXRpb25Pd25lcnMgPSB7fVxuICAgIGlmIChwYXlsb2FkLmF1dGhvcml6aW5nX2ludGVncmF0aW9uX293bmVyc1snMCddKVxuICAgICAgbWV0YWRhdGEuYXV0aG9yaXppbmdJbnRlZ3JhdGlvbk93bmVyc1tEaXNjb3JkQXBwbGljYXRpb25JbnRlZ3JhdGlvblR5cGUuR3VpbGRJbnN0YWxsXSA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKFxuICAgICAgICBwYXlsb2FkLmF1dGhvcml6aW5nX2ludGVncmF0aW9uX293bmVyc1snMCddLFxuICAgICAgKVxuICAgIGlmIChwYXlsb2FkLmF1dGhvcml6aW5nX2ludGVncmF0aW9uX293bmVyc1snMSddKVxuICAgICAgbWV0YWRhdGEuYXV0aG9yaXppbmdJbnRlZ3JhdGlvbk93bmVyc1tEaXNjb3JkQXBwbGljYXRpb25JbnRlZ3JhdGlvblR5cGUuVXNlckluc3RhbGxdID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UoXG4gICAgICAgIHBheWxvYWQuYXV0aG9yaXppbmdfaW50ZWdyYXRpb25fb3duZXJzWycxJ10sXG4gICAgICApXG4gIH1cbiAgaWYgKHByb3BzLmludGVyYWN0ZWRNZXNzYWdlSWQgJiYgcGF5bG9hZC5pbnRlcmFjdGVkX21lc3NhZ2VfaWQpXG4gICAgbWV0YWRhdGEuaW50ZXJhY3RlZE1lc3NhZ2VJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaW50ZXJhY3RlZF9tZXNzYWdlX2lkKVxuICBpZiAocHJvcHMub3JpZ2luYWxSZXNwb25zZU1lc3NhZ2VJZCAmJiBwYXlsb2FkLm9yaWdpbmFsX3Jlc3BvbnNlX21lc3NhZ2VfaWQpXG4gICAgbWV0YWRhdGEub3JpZ2luYWxSZXNwb25zZU1lc3NhZ2VJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQub3JpZ2luYWxfcmVzcG9uc2VfbWVzc2FnZV9pZClcbiAgaWYgKHByb3BzLnRyaWdnZXJpbmdJbnRlcmFjdGlvbk1ldGFkYXRhICYmIHBheWxvYWQudHJpZ2dlcmluZ19pbnRlcmFjdGlvbl9tZXRhZGF0YSlcbiAgICBtZXRhZGF0YS50cmlnZ2VyaW5nSW50ZXJhY3Rpb25NZXRhZGF0YSA9IHRyYW5zZm9ybU1lc3NhZ2VJbnRlcmFjdGlvbk1ldGFkYXRhKGJvdCwgcGF5bG9hZC50cmlnZ2VyaW5nX2ludGVyYWN0aW9uX21ldGFkYXRhKVxuICBpZiAocHJvcHMudHlwZSkgbWV0YWRhdGEudHlwZSA9IHBheWxvYWQudHlwZVxuICBpZiAocHJvcHMudXNlciAmJiBwYXlsb2FkLnVzZXIpIG1ldGFkYXRhLnVzZXIgPSBib3QudHJhbnNmb3JtZXJzLnVzZXIoYm90LCBwYXlsb2FkLnVzZXIpXG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMubWVzc2FnZUludGVyYWN0aW9uTWV0YWRhdGEoYm90LCBwYXlsb2FkLCBtZXRhZGF0YSlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybU1lc3NhZ2VDYWxsKGJvdDogQm90LCBwYXlsb2FkOiBEaXNjb3JkTWVzc2FnZUNhbGwpOiBNZXNzYWdlQ2FsbCB7XG4gIGNvbnN0IGNhbGwgPSB7fSBhcyBNZXNzYWdlQ2FsbFxuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMubWVzc2FnZUNhbGxcblxuICBpZiAocHJvcHMucGFydGljaXBhbnRzICYmIHBheWxvYWQucGFydGljaXBhbnRzKSBjYWxsLnBhcnRpY2lwYW50cyA9IHBheWxvYWQucGFydGljaXBhbnRzLm1hcCgoeCkgPT4gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UoeCkpXG4gIGlmIChwcm9wcy5lbmRlZFRpbWVzdGFtcCAmJiBwYXlsb2FkLmVuZGVkX3RpbWVzdGFtcCkgY2FsbC5lbmRlZFRpbWVzdGFtcCA9IERhdGUucGFyc2UocGF5bG9hZC5lbmRlZF90aW1lc3RhbXApXG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMubWVzc2FnZUNhbGwoYm90LCBwYXlsb2FkLCBjYWxsKVxufVxuIl0sIm5hbWVzIjpbInRyYW5zZm9ybU1lc3NhZ2UiLCJ0cmFuc2Zvcm1NZXNzYWdlQ2FsbCIsInRyYW5zZm9ybU1lc3NhZ2VJbnRlcmFjdGlvbk1ldGFkYXRhIiwidHJhbnNmb3JtTWVzc2FnZVNuYXBzaG90IiwiRU1QVFlfU1RSSU5HIiwiYmFzZU1lc3NhZ2UiLCJjcm9zc3Bvc3RlZCIsImZsYWdzIiwiY29udGFpbnMiLCJNZXNzYWdlRmxhZ3MiLCJDcm9zc3Bvc3RlZCIsInZhbHVlIiwiYWRkIiwicmVtb3ZlIiwiZXBoZW1lcmFsIiwiRXBoZW1lcmFsIiwiZmFpbGVkVG9NZW50aW9uU29tZVJvbGVzSW5UaHJlYWQiLCJGYWlsZWRUb01lbnRpb25Tb21lUm9sZXNJblRocmVhZCIsImhhc1RocmVhZCIsIkhhc1RocmVhZCIsImlzQ3Jvc3Nwb3N0IiwiSXNDcm9zc3Bvc3QiLCJsb2FkaW5nIiwiTG9hZGluZyIsIm1lbnRpb25lZFVzZXJJZHMiLCJtZW50aW9ucyIsIm1hcCIsInVzZXIiLCJpZCIsIm1lbnRpb25FdmVyeW9uZSIsImJpdGZpZWxkIiwicGlubmVkIiwic291cmNlTWVzc2FnZURlbGV0ZWQiLCJTb3VyY2VNZXNzYWdlRGVsZXRlZCIsInN1cHByZXNzRW1iZWRzIiwiU3VwcHJlc3NFbWJlZHMiLCJzdXBwcmVzc05vdGlmaWNhdGlvbnMiLCJTdXBwcmVzc05vdGlmaWNhdGlvbnMiLCJ0aW1lc3RhbXAiLCJzbm93Zmxha2VUb1RpbWVzdGFtcCIsInR0cyIsInVyZ2VudCIsIlVyZ2VudCIsImJvdCIsInBheWxvYWQiLCJndWlsZElkIiwiZ3VpbGRfaWQiLCJ0cmFuc2Zvcm1lcnMiLCJzbm93Zmxha2UiLCJ1bmRlZmluZWQiLCJ1c2VySWQiLCJhdXRob3IiLCJtZXNzYWdlIiwiT2JqZWN0IiwiY3JlYXRlIiwiVG9nZ2xlQml0ZmllbGQiLCJwcm9wcyIsImRlc2lyZWRQcm9wZXJ0aWVzIiwiYXBwbGljYXRpb25JZCIsImFwcGxpY2F0aW9uX2lkIiwiYXR0YWNobWVudHMiLCJsZW5ndGgiLCJhdHRhY2htZW50IiwiY2hhbm5lbElkIiwiY2hhbm5lbF9pZCIsImNvbXBvbmVudHMiLCJjb21wIiwiY29tcG9uZW50IiwiY29udGVudCIsImVkaXRlZFRpbWVzdGFtcCIsImVkaXRlZF90aW1lc3RhbXAiLCJEYXRlIiwicGFyc2UiLCJlbWJlZHMiLCJlbWJlZCIsImludGVyYWN0aW9uTWV0YWRhdGEiLCJpbnRlcmFjdGlvbl9tZXRhZGF0YSIsImludGVyYWN0aW9uIiwibWVzc2FnZUludGVyYWN0aW9uUHJvcHMiLCJtZXNzYWdlSW50ZXJhY3Rpb24iLCJtZW1iZXIiLCJuYW1lIiwidHlwZSIsIm1lbnRpb25fZXZlcnlvbmUiLCJtZW50aW9uZWRDaGFubmVsSWRzIiwibWVudGlvbl9jaGFubmVscyIsIm0iLCJtYXRjaCIsIkNIQU5ORUxfTUVOVElPTl9SRUdFWCIsInRleHQiLCJzdWJzdHJpbmciLCJtZW50aW9uZWRSb2xlSWRzIiwibWVudGlvbl9yb2xlcyIsIm1lc3NhZ2VSZWZlcmVuY2UiLCJtZXNzYWdlX3JlZmVyZW5jZSIsInJlZmVyZW5jZSIsIm1lc3NhZ2VSZWZlcmVuY2VQcm9wcyIsIm1lc3NhZ2VJZCIsIm1lc3NhZ2VfaWQiLCJyZWZlcmVuY2VkTWVzc2FnZSIsInJlZmVyZW5jZWRfbWVzc2FnZSIsIm1lc3NhZ2VTbmFwc2hvdHMiLCJtZXNzYWdlX3NuYXBzaG90cyIsInNuYXAiLCJtZXNzYWdlU25hcHNob3QiLCJub25jZSIsInJlYWN0aW9ucyIsInJlYWN0aW9uIiwibWUiLCJtZUJ1cnN0IiwibWVfYnVyc3QiLCJjb3VudCIsImNvdW50RGV0YWlscyIsImJ1cnN0IiwiY291bnRfZGV0YWlscyIsIm5vcm1hbCIsImVtb2ppIiwiYnVyc3RDb2xvcnMiLCJidXJzdF9jb2xvcnMiLCJzdGlja2VySXRlbXMiLCJzdGlja2VyX2l0ZW1zIiwiaXRlbSIsImZvcm1hdFR5cGUiLCJmb3JtYXRfdHlwZSIsInRocmVhZCIsImNoYW5uZWwiLCJ3ZWJob29rSWQiLCJ3ZWJob29rX2lkIiwicG9sbCIsImNhbGwiLCJtZXNzYWdlQ2FsbCIsImN1c3RvbWl6ZXJzIiwibWVzc2FnZUludGVyYWN0aW9uTWV0YWRhdGEiLCJtZXRhZGF0YSIsImF1dGhvcml6aW5nSW50ZWdyYXRpb25Pd25lcnMiLCJhdXRob3JpemluZ19pbnRlZ3JhdGlvbl9vd25lcnMiLCJEaXNjb3JkQXBwbGljYXRpb25JbnRlZ3JhdGlvblR5cGUiLCJHdWlsZEluc3RhbGwiLCJVc2VySW5zdGFsbCIsImludGVyYWN0ZWRNZXNzYWdlSWQiLCJpbnRlcmFjdGVkX21lc3NhZ2VfaWQiLCJvcmlnaW5hbFJlc3BvbnNlTWVzc2FnZUlkIiwib3JpZ2luYWxfcmVzcG9uc2VfbWVzc2FnZV9pZCIsInRyaWdnZXJpbmdJbnRlcmFjdGlvbk1ldGFkYXRhIiwidHJpZ2dlcmluZ19pbnRlcmFjdGlvbl9tZXRhZGF0YSIsInBhcnRpY2lwYW50cyIsIngiLCJlbmRlZFRpbWVzdGFtcCIsImVuZGVkX3RpbWVzdGFtcCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7SUErSGdCQSxnQkFBZ0I7ZUFBaEJBOztJQXFKQUMsb0JBQW9CO2VBQXBCQTs7SUE1QkFDLG1DQUFtQztlQUFuQ0E7O0lBVEFDLHdCQUF3QjtlQUF4QkE7Ozt1QkF4T1Q7MkJBQytCO3VCQUNnRztnQ0FDdkc7QUFFL0IsTUFBTUMsZUFBZTtBQUVyQixNQUFNQyxjQUFjO0lBQ2xCLElBQUlDLGVBQWM7UUFDaEIsT0FBTyxJQUFJLENBQUNDLEtBQUssRUFBRUMsU0FBU0MsbUJBQVksQ0FBQ0MsV0FBVyxLQUFLO0lBQzNEO0lBQ0EsSUFBSUosYUFBWUssTUFBZ0I7UUFDOUIsSUFBSSxDQUFDLElBQUksQ0FBQ0osS0FBSyxFQUFFO1FBQ2pCLElBQUlJLE9BQU8sSUFBSSxDQUFDSixLQUFLLENBQUNLLEdBQUcsQ0FBQ0gsbUJBQVksQ0FBQ0MsV0FBVzthQUM3QyxJQUFJLENBQUNILEtBQUssQ0FBQ00sTUFBTSxDQUFDSixtQkFBWSxDQUFDQyxXQUFXO0lBQ2pEO0lBQ0EsSUFBSUksYUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDUCxLQUFLLEVBQUVDLFNBQVNDLG1CQUFZLENBQUNNLFNBQVMsS0FBSztJQUN6RDtJQUNBLElBQUlELFdBQVVILE1BQWdCO1FB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
|
|
@@ -2,10 +2,18 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", {
|
|
3
3
|
value: true
|
|
4
4
|
});
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
function _export(target, all) {
|
|
6
|
+
for(var name in all)Object.defineProperty(target, name, {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: all[name]
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
_export(exports, {
|
|
12
|
+
transformScheduledEvent: function() {
|
|
8
13
|
return transformScheduledEvent;
|
|
14
|
+
},
|
|
15
|
+
transformScheduledEventRecurrenceRule: function() {
|
|
16
|
+
return transformScheduledEventRecurrenceRule;
|
|
9
17
|
}
|
|
10
18
|
});
|
|
11
19
|
const _index = require("../index.cjs");
|
|
@@ -28,7 +36,23 @@ function transformScheduledEvent(bot, payload) {
|
|
|
28
36
|
if (props.userCount) scheduledEvent.userCount = payload.user_count ?? 0;
|
|
29
37
|
if (props.location && payload.entity_metadata?.location) scheduledEvent.location = payload.entity_metadata.location;
|
|
30
38
|
if (props.image && payload.image) scheduledEvent.image = (0, _index.iconHashToBigInt)(payload.image);
|
|
39
|
+
if (props.recurrenceRule && payload.recurrence_rule) scheduledEvent.recurrenceRule = bot.transformers.scheduledEventRecurrenceRule(bot, payload.recurrence_rule);
|
|
31
40
|
return bot.transformers.customizers.scheduledEvent(bot, payload, scheduledEvent);
|
|
32
41
|
}
|
|
42
|
+
function transformScheduledEventRecurrenceRule(bot, payload) {
|
|
43
|
+
const props = bot.transformers.desiredProperties.scheduledEventRecurrenceRule;
|
|
44
|
+
const recurrenceRule = {};
|
|
45
|
+
if (props.start && payload.start) recurrenceRule.start = Date.parse(payload.start);
|
|
46
|
+
if (props.end && payload.end) recurrenceRule.end = Date.parse(payload.end);
|
|
47
|
+
if (props.frequency && payload.frequency) recurrenceRule.frequency = payload.frequency;
|
|
48
|
+
if (props.interval && payload.interval) recurrenceRule.interval = payload.interval;
|
|
49
|
+
if (props.byWeekday && payload.by_weekday) recurrenceRule.byWeekday = payload.by_weekday;
|
|
50
|
+
if (props.byNWeekday && payload.by_n_weekday) recurrenceRule.byNWeekday = payload.by_n_weekday;
|
|
51
|
+
if (props.byMonth && payload.by_month) recurrenceRule.byMonth = payload.by_month;
|
|
52
|
+
if (props.byMonthDay && payload.by_month_day) recurrenceRule.byMonthDay = payload.by_month_day;
|
|
53
|
+
if (props.byYearDay && payload.by_year_day) recurrenceRule.byYearDay = payload.by_year_day;
|
|
54
|
+
if (props.count && payload.count) recurrenceRule.count = payload.count;
|
|
55
|
+
return bot.transformers.customizers.scheduledEventRecurrenceRule(bot, payload, recurrenceRule);
|
|
56
|
+
}
|
|
33
57
|
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvc2NoZWR1bGVkRXZlbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBEaXNjb3JkU2NoZWR1bGVkRXZlbnQgfSBmcm9tICdAZGlzY29yZGVuby90eXBlcydcbmltcG9ydCB7IHR5cGUgQm90LCB0eXBlIFNjaGVkdWxlZEV2ZW50LCBpY29uSGFzaFRvQmlnSW50IH0gZnJvbSAnLi4vaW5kZXguanMnXG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1TY2hlZHVsZWRFdmVudChib3Q6IEJvdCwgcGF5bG9hZDogRGlzY29yZFNjaGVkdWxlZEV2ZW50KTogU2NoZWR1bGVkRXZlbnQge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuc2NoZWR1bGVkRXZlbnRcbiAgY29uc3Qgc2NoZWR1bGVkRXZlbnQgPSB7fSBhcyBTY2hlZHVsZWRFdmVudFxuXG4gIGlmIChwcm9wcy5pZCAmJiBwYXlsb2FkLmlkKSBzY2hlZHVsZWRFdmVudC5pZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaWQpXG4gIGlmIChwcm9wcy5ndWlsZElkICYmIHBheWxvYWQuZ3VpbGRfaWQpIHNjaGVkdWxlZEV2ZW50Lmd1aWxkSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmd1aWxkX2lkKVxuICBpZiAocHJvcHMuY2hhbm5lbElkICYmIHBheWxvYWQuY2hhbm5lbF9pZCkgc2NoZWR1bGVkRXZlbnQuY2hhbm5lbElkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5jaGFubmVsX2lkKVxuICBpZiAocHJvcHMuY3JlYXRvcklkICYmIHBheWxvYWQuY3JlYXRvcl9pZCkgc2NoZWR1bGVkRXZlbnQuY3JlYXRvcklkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5jcmVhdG9yX2lkKVxuICBpZiAocHJvcHMuc2NoZWR1bGVkU3RhcnRUaW1lICYmIHBheWxvYWQuc2NoZWR1bGVkX3N0YXJ0X3RpbWUpIHNjaGVkdWxlZEV2ZW50LnNjaGVkdWxlZFN0YXJ0VGltZSA9IERhdGUucGFyc2UocGF5bG9hZC5zY2hlZHVsZWRfc3RhcnRfdGltZSlcbiAgaWYgKHByb3BzLnNjaGVkdWxlZEVuZFRpbWUgJiYgcGF5bG9hZC5zY2hlZHVsZWRfZW5kX3RpbWUpIHNjaGVkdWxlZEV2ZW50LnNjaGVkdWxlZEVuZFRpbWUgPSBEYXRlLnBhcnNlKHBheWxvYWQuc2NoZWR1bGVkX2VuZF90aW1lKVxuICBpZiAocHJvcHMuZW50aXR5SWQgJiYgcGF5bG9hZC5lbnRpdHlfaWQpIHNjaGVkdWxlZEV2ZW50LmVudGl0eUlkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5lbnRpdHlfaWQpXG4gIGlmIChwcm9wcy5jcmVhdG9yICYmIHBheWxvYWQuY3JlYXRvcikgc2NoZWR1bGVkRXZlbnQuY3JlYXRvciA9IGJvdC50cmFuc2Zvcm1lcnMudXNlcihib3QsIHBheWxvYWQuY3JlYXRvcilcbiAgaWYgKHByb3BzLm5hbWUgJiYgcGF5bG9hZC5uYW1lKSBzY2hlZHVsZWRFdmVudC5uYW1lID0gcGF5bG9hZC5uYW1lXG4gIGlmIChwcm9wcy5kZXNjcmlwdGlvbiAmJiBwYXlsb2FkLmRlc2NyaXB0aW9uKSBzY2hlZHVsZWRFdmVudC5kZXNjcmlwdGlvbiA9IHBheWxvYWQuZGVzY3JpcHRpb25cbiAgaWYgKHByb3BzLnByaXZhY3lMZXZlbCAmJiBwYXlsb2FkLnByaXZhY3lfbGV2ZWwpIHNjaGVkdWxlZEV2ZW50LnByaXZhY3lMZXZlbCA9IHBheWxvYWQucHJpdmFjeV9sZXZlbFxuICBpZiAocHJvcHMuc3RhdHVzICYmIHBheWxvYWQuc3RhdHVzKSBzY2hlZHVsZWRFdmVudC5zdGF0dXMgPSBwYXlsb2FkLnN0YXR1c1xuICBpZiAocHJvcHMuZW50aXR5VHlwZSAmJiBwYXlsb2FkLmVudGl0eV90eXBlKSBzY2hlZHVsZWRFdmVudC5lbnRpdHlUeXBlID0gcGF5bG9hZC5lbnRpdHlfdHlwZVxuICBpZiAocHJvcHMudXNlckNvdW50KSBzY2hlZHVsZWRFdmVudC51c2VyQ291bnQgPSBwYXlsb2FkLnVzZXJfY291bnQgPz8gMFxuICBpZiAocHJvcHMubG9jYXRpb24gJiYgcGF5bG9hZC5lbnRpdHlfbWV0YWRhdGE/LmxvY2F0aW9uKSBzY2hlZHVsZWRFdmVudC5sb2NhdGlvbiA9IHBheWxvYWQuZW50aXR5X21ldGFkYXRhLmxvY2F0aW9uXG4gIGlmIChwcm9wcy5pbWFnZSAmJiBwYXlsb2FkLmltYWdlKSBzY2hlZHVsZWRFdmVudC5pbWFnZSA9IGljb25IYXNoVG9CaWdJbnQocGF5bG9hZC5pbWFnZSlcblxuICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jdXN0b21pemVycy5zY2hlZHVsZWRFdmVudChib3QsIHBheWxvYWQsIHNjaGVkdWxlZEV2ZW50KVxufVxuIl0sIm5hbWVzIjpbInRyYW5zZm9ybVNjaGVkdWxlZEV2ZW50IiwiYm90IiwicGF5bG9hZCIsInByb3BzIiwidHJhbnNmb3JtZXJzIiwiZGVzaXJlZFByb3BlcnRpZXMiLCJzY2hlZHVsZWRFdmVudCIsImlkIiwic25vd2ZsYWtlIiwiZ3VpbGRJZCIsImd1aWxkX2lkIiwiY2hhbm5lbElkIiwiY2hhbm5lbF9pZCIsImNyZWF0b3JJZCIsImNyZWF0b3JfaWQiLCJzY2hlZHVsZWRTdGFydFRpbWUiLCJzY2hlZHVsZWRfc3RhcnRfdGltZSIsIkRhdGUiLCJwYXJzZSIsInNjaGVkdWxlZEVuZFRpbWUiLCJzY2hlZHVsZWRfZW5kX3RpbWUiLCJlbnRpdHlJZCIsImVudGl0eV9pZCIsImNyZWF0b3IiLCJ1c2VyIiwibmFtZSIsImRlc2NyaXB0aW9uIiwicHJpdmFjeUxldmVsIiwicHJpdmFjeV9sZXZlbCIsInN0YXR1cyIsImVudGl0eVR5cGUiLCJlbnRpdHlfdHlwZSIsInVzZXJDb3VudCIsInVzZXJfY291bnQiLCJsb2NhdGlvbiIsImVudGl0eV9tZXRhZGF0YSIs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
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvc2NoZWR1bGVkRXZlbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBEaXNjb3JkU2NoZWR1bGVkRXZlbnQsIERpc2NvcmRTY2hlZHVsZWRFdmVudFJlY3VycmVuY2VSdWxlIH0gZnJvbSAnQGRpc2NvcmRlbm8vdHlwZXMnXG5pbXBvcnQgeyB0eXBlIEJvdCwgdHlwZSBTY2hlZHVsZWRFdmVudCwgdHlwZSBTY2hlZHVsZWRFdmVudFJlY3VycmVuY2VSdWxlLCBpY29uSGFzaFRvQmlnSW50IH0gZnJvbSAnLi4vaW5kZXguanMnXG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1TY2hlZHVsZWRFdmVudChib3Q6IEJvdCwgcGF5bG9hZDogRGlzY29yZFNjaGVkdWxlZEV2ZW50KTogU2NoZWR1bGVkRXZlbnQge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuc2NoZWR1bGVkRXZlbnRcbiAgY29uc3Qgc2NoZWR1bGVkRXZlbnQgPSB7fSBhcyBTY2hlZHVsZWRFdmVudFxuXG4gIGlmIChwcm9wcy5pZCAmJiBwYXlsb2FkLmlkKSBzY2hlZHVsZWRFdmVudC5pZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaWQpXG4gIGlmIChwcm9wcy5ndWlsZElkICYmIHBheWxvYWQuZ3VpbGRfaWQpIHNjaGVkdWxlZEV2ZW50Lmd1aWxkSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmd1aWxkX2lkKVxuICBpZiAocHJvcHMuY2hhbm5lbElkICYmIHBheWxvYWQuY2hhbm5lbF9pZCkgc2NoZWR1bGVkRXZlbnQuY2hhbm5lbElkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5jaGFubmVsX2lkKVxuICBpZiAocHJvcHMuY3JlYXRvcklkICYmIHBheWxvYWQuY3JlYXRvcl9pZCkgc2NoZWR1bGVkRXZlbnQuY3JlYXRvcklkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5jcmVhdG9yX2lkKVxuICBpZiAocHJvcHMuc2NoZWR1bGVkU3RhcnRUaW1lICYmIHBheWxvYWQuc2NoZWR1bGVkX3N0YXJ0X3RpbWUpIHNjaGVkdWxlZEV2ZW50LnNjaGVkdWxlZFN0YXJ0VGltZSA9IERhdGUucGFyc2UocGF5bG9hZC5zY2hlZHVsZWRfc3RhcnRfdGltZSlcbiAgaWYgKHByb3BzLnNjaGVkdWxlZEVuZFRpbWUgJiYgcGF5bG9hZC5zY2hlZHVsZWRfZW5kX3RpbWUpIHNjaGVkdWxlZEV2ZW50LnNjaGVkdWxlZEVuZFRpbWUgPSBEYXRlLnBhcnNlKHBheWxvYWQuc2NoZWR1bGVkX2VuZF90aW1lKVxuICBpZiAocHJvcHMuZW50aXR5SWQgJiYgcGF5bG9hZC5lbnRpdHlfaWQpIHNjaGVkdWxlZEV2ZW50LmVudGl0eUlkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5lbnRpdHlfaWQpXG4gIGlmIChwcm9wcy5jcmVhdG9yICYmIHBheWxvYWQuY3JlYXRvcikgc2NoZWR1bGVkRXZlbnQuY3JlYXRvciA9IGJvdC50cmFuc2Zvcm1lcnMudXNlcihib3QsIHBheWxvYWQuY3JlYXRvcilcbiAgaWYgKHByb3BzLm5hbWUgJiYgcGF5bG9hZC5uYW1lKSBzY2hlZHVsZWRFdmVudC5uYW1lID0gcGF5bG9hZC5uYW1lXG4gIGlmIChwcm9wcy5kZXNjcmlwdGlvbiAmJiBwYXlsb2FkLmRlc2NyaXB0aW9uKSBzY2hlZHVsZWRFdmVudC5kZXNjcmlwdGlvbiA9IHBheWxvYWQuZGVzY3JpcHRpb25cbiAgaWYgKHByb3BzLnByaXZhY3lMZXZlbCAmJiBwYXlsb2FkLnByaXZhY3lfbGV2ZWwpIHNjaGVkdWxlZEV2ZW50LnByaXZhY3lMZXZlbCA9IHBheWxvYWQucHJpdmFjeV9sZXZlbFxuICBpZiAocHJvcHMuc3RhdHVzICYmIHBheWxvYWQuc3RhdHVzKSBzY2hlZHVsZWRFdmVudC5zdGF0dXMgPSBwYXlsb2FkLnN0YXR1c1xuICBpZiAocHJvcHMuZW50aXR5VHlwZSAmJiBwYXlsb2FkLmVudGl0eV90eXBlKSBzY2hlZHVsZWRFdmVudC5lbnRpdHlUeXBlID0gcGF5bG9hZC5lbnRpdHlfdHlwZVxuICBpZiAocHJvcHMudXNlckNvdW50KSBzY2hlZHVsZWRFdmVudC51c2VyQ291bnQgPSBwYXlsb2FkLnVzZXJfY291bnQgPz8gMFxuICBpZiAocHJvcHMubG9jYXRpb24gJiYgcGF5bG9hZC5lbnRpdHlfbWV0YWRhdGE/LmxvY2F0aW9uKSBzY2hlZHVsZWRFdmVudC5sb2NhdGlvbiA9IHBheWxvYWQuZW50aXR5X21ldGFkYXRhLmxvY2F0aW9uXG4gIGlmIChwcm9wcy5pbWFnZSAmJiBwYXlsb2FkLmltYWdlKSBzY2hlZHVsZWRFdmVudC5pbWFnZSA9IGljb25IYXNoVG9CaWdJbnQocGF5bG9hZC5pbWFnZSlcbiAgaWYgKHByb3BzLnJlY3VycmVuY2VSdWxlICYmIHBheWxvYWQucmVjdXJyZW5jZV9ydWxlKVxuICAgIHNjaGVkdWxlZEV2ZW50LnJlY3VycmVuY2VSdWxlID0gYm90LnRyYW5zZm9ybWVycy5zY2hlZHVsZWRFdmVudFJlY3VycmVuY2VSdWxlKGJvdCwgcGF5bG9hZC5yZWN1cnJlbmNlX3J1bGUpXG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMuc2NoZWR1bGVkRXZlbnQoYm90LCBwYXlsb2FkLCBzY2hlZHVsZWRFdmVudClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybVNjaGVkdWxlZEV2ZW50UmVjdXJyZW5jZVJ1bGUoYm90OiBCb3QsIHBheWxvYWQ6IERpc2NvcmRTY2hlZHVsZWRFdmVudFJlY3VycmVuY2VSdWxlKTogU2NoZWR1bGVkRXZlbnRSZWN1cnJlbmNlUnVsZSB7XG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5zY2hlZHVsZWRFdmVudFJlY3VycmVuY2VSdWxlXG4gIGNvbnN0IHJlY3VycmVuY2VSdWxlID0ge30gYXMgU2NoZWR1bGVkRXZlbnRSZWN1cnJlbmNlUnVsZVxuXG4gIGlmIChwcm9wcy5zdGFydCAmJiBwYXlsb2FkLnN0YXJ0KSByZWN1cnJlbmNlUnVsZS5zdGFydCA9IERhdGUucGFyc2UocGF5bG9hZC5zdGFydClcbiAgaWYgKHByb3BzLmVuZCAmJiBwYXlsb2FkLmVuZCkgcmVjdXJyZW5jZVJ1bGUuZW5kID0gRGF0ZS5wYXJzZShwYXlsb2FkLmVuZClcbiAgaWYgKHByb3BzLmZyZXF1ZW5jeSAmJiBwYXlsb2FkLmZyZXF1ZW5jeSkgcmVjdXJyZW5jZVJ1bGUuZnJlcXVlbmN5ID0gcGF5bG9hZC5mcmVxdWVuY3lcbiAgaWYgKHByb3BzLmludGVydmFsICYmIHBheWxvYWQuaW50ZXJ2YWwpIHJlY3VycmVuY2VSdWxlLmludGVydmFsID0gcGF5bG9hZC5pbnRlcnZhbFxuICBpZiAocHJvcHMuYnlXZWVrZGF5ICYmIHBheWxvYWQuYnlfd2Vla2RheSkgcmVjdXJyZW5jZVJ1bGUuYnlXZWVrZGF5ID0gcGF5bG9hZC5ieV93ZWVrZGF5XG4gIGlmIChwcm9wcy5ieU5XZWVrZGF5ICYmIHBheWxvYWQuYnlfbl93ZWVrZGF5KSByZWN1cnJlbmNlUnVsZS5ieU5XZWVrZGF5ID0gcGF5bG9hZC5ieV9uX3dlZWtkYXlcbiAgaWYgKHByb3BzLmJ5TW9udGggJiYgcGF5bG9hZC5ieV9tb250aCkgcmVjdXJyZW5jZVJ1bGUuYnlNb250aCA9IHBheWxvYWQuYnlfbW9udGhcbiAgaWYgKHByb3BzLmJ5TW9udGhEYXkgJiYgcGF5bG9hZC5ieV9tb250aF9kYXkpIHJlY3VycmVuY2VSdWxlLmJ5TW9udGhEYXkgPSBwYXlsb2FkLmJ5X21vbnRoX2RheVxuICBpZiAocHJvcHMuYnlZZWFyRGF5ICYmIHBheWxvYWQuYnlfeWVhcl9kYXkpIHJlY3VycmVuY2VSdWxlLmJ5WWVhckRheSA9IHBheWxvYWQuYnlfeWVhcl9kYXlcbiAgaWYgKHByb3BzLmNvdW50ICYmIHBheWxvYWQuY291bnQpIHJlY3VycmVuY2VSdWxlLmNvdW50ID0gcGF5bG9hZC5jb3VudFxuXG4gIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmN1c3RvbWl6ZXJzLnNjaGVkdWxlZEV2ZW50UmVjdXJyZW5jZVJ1bGUoYm90LCBwYXlsb2FkLCByZWN1cnJlbmNlUnVsZSlcbn1cbiJdLCJuYW1lcyI6WyJ0cmFuc2Zvcm1TY2hlZHVsZWRFdmVudCIsInRyYW5zZm9ybVNjaGVkdWxlZEV2ZW50UmVjdXJyZW5jZVJ1bGUiLCJib3QiLCJwYXlsb2FkIiwicHJvcHMiLCJ0cmFuc2Zvcm1lcnMiLCJkZXNpcmVkUHJvcGVydGllcyIsInNjaGVkdWxlZEV2ZW50IiwiaWQiLCJzbm93Zmxha2UiLCJndWlsZElkIiwiZ3VpbGRfaWQiLCJjaGFubmVsSWQiLCJjaGFubmVsX2lkIiwiY3JlYXRvcklkIiwiY3JlYXRvcl9pZCIsInNjaGVkdWxlZFN0YXJ0VGltZSIsInNjaGVkdWxlZF9zdGFydF90aW1lIiwiRGF0ZSIsInBhcnNlIiwic2NoZWR1bGVkRW5kVGltZSIsInNjaGVkdWxlZF9lbmRfdGltZSIsImVudGl0eUlkIiwiZW50aXR5X2lkIiwiY3JlYXRvciIsInVzZXIiLCJuYW1lIiwiZGVzY3JpcHRpb24iLCJwcml2YWN5TGV2ZWwiLCJwcml2YWN5X2xldmVsIiwic3RhdHVzIiwiZW50aXR5VHlwZSIsImVudGl0eV90eXBlIiwidXNlckNvdW50IiwidXNlcl9jb3VudCIsImxvY2F0aW9uIiwiZW50aXR5X21ldGFkYXRhIiwiaW1hZ2UiLCJpY29uSGFzaFRvQmlnSW50IiwicmVjdXJyZW5jZVJ1bGUiLCJyZWN1cnJlbmNlX3J1bGUiLCJzY2hlZHVsZWRFdmVudFJlY3VycmVuY2VSdWxlIiwiY3VzdG9taXplcnMiLCJzdGFydCIsImVuZCIsImZyZXF1ZW5jeSIsImludGVydmFsIiwiYnlXZWVrZGF5IiwiYnlfd2Vla2RheSIsImJ5TldlZWtkYXkiLCJieV9uX3dlZWtkYXkiLCJieU1vbnRoIiwiYnlfbW9udGgiLCJieU1vbnRoRGF5IiwiYnlfbW9udGhfZGF5IiwiYnlZZWFyRGF5IiwiYnlfeWVhcl9kYXkiLCJjb3VudCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7SUFHZ0JBLHVCQUF1QjtlQUF2QkE7O0lBMEJBQyxxQ0FBcUM7ZUFBckNBOzs7dUJBNUJtRjtBQUU1RixTQUFTRCx3QkFBd0JFLEdBQVEsRUFBRUMsT0FBOEI7SUFDOUUsTUFBTUMsUUFBUUYsSUFBSUcsWUFBWSxDQUFDQyxpQkFBaUIsQ0FBQ0MsY0FBYztJQUMvRCxNQUFNQSxpQkFBaUIsQ0FBQztJQUV4QixJQUFJSCxNQUFNSSxFQUFFLElBQUlMLFFBQVFLLEVBQUUsRUFBRUQsZUFBZUMsRUFBRSxHQUFHTixJQUFJRyxZQUFZLENBQUNJLFNBQVMsQ0FBQ04sUUFBUUssRUFBRTtJQUNyRixJQUFJSixNQUFNTSxPQUFPLElBQUlQLFFBQVFRLFFBQVEsRUFBRUosZUFBZUcsT0FBTyxHQUFHUixJQUFJRyxZQUFZLENBQUNJLFNBQVMsQ0FBQ04sUUFBUVEsUUFBUTtJQUMzRyxJQUFJUCxNQUFNUSxTQUFTLElBQUlULFFBQVFVLFVBQVUsRUFBRU4sZUFBZUssU0FBUyxHQUFHVixJQUFJRyxZQUFZLENBQUNJLFNBQVMsQ0FBQ04sUUFBUVUsVUFBVTtJQUNuSCxJQUFJVCxNQUFNVSxTQUFTLElBQUlYLFFBQVFZLFVBQVUsRUFBRVIsZUFBZU8sU0FBUyxHQUFHWixJQUFJRyxZQUFZLENBQUNJLFNBQVMsQ0FBQ04sUUFBUVksVUFBVTtJQUNuSCxJQUFJWCxNQUFNWSxrQkFBa0IsSUFBSWIsUUFBUWMsb0JBQW9CLEVBQUVWLGVBQWVTLGtCQUFrQixHQUFHRSxLQUFLQyxLQUFLLENBQUNoQixRQUFRYyxvQkFBb0I7SUFDekksSUFBSWIsTUFBTWdCLGdCQUFnQixJQUFJakIsUUFBUWtCLGtCQUFrQixFQUFFZCxlQUFlYSxnQkFBZ0IsR0FBR0YsS0FBS0MsS0FBSyxDQUFDaEIsUUFBUWtCLGtCQUFrQjtJQUNqSSxJQUFJakIsTUFBTWtCLFFBQVEsSUFBSW5CLFFBQVFvQixTQUFTLEVBQUVoQixlQUFlZSxRQUFRLEdBQUdwQixJQUFJRyxZQUFZLENBQUNJLFNBQVMsQ0FBQ04sUUFBUW9CLFNBQVM7SUFDL0csSUFBSW5CLE1BQU1vQixPQUFPLElBQUlyQixRQUFRcUIsT0FBTyxFQUFFakIsZUFBZWlCLE9BQU8sR0FBR3RCLElBQUlHLFlBQVksQ0FBQ29CLElBQUksQ0FBQ3ZCLEtBQUtDLFFBQVFxQixPQUFPO0lBQ3pHLElBQUlwQixNQUFNc0IsSUFBSSxJQUFJdkIsUUFBUXVCLElBQUksRUFBRW5CLGVBQWVtQixJQUFJLEdBQUd2QixRQUFRdUIsSUFBSTtJQUNsRSxJQUFJdEIsTUFBTXVCLFdBQVcsSUFBSXhCLFFBQVF3QixXQUFXLEVBQUVwQixlQUFlb0IsV0FBVyxHQUFHeEIsUUFBUXdCLFdBQVc7SUFDOUYsSUFBSXZCLE1BQU13QixZQUFZLElBQUl6QixRQUFRMEIsYUFBYSxFQUFFdEIsZUFBZXFCLFlBQVksR0FBR3pCLFFBQVEwQixhQUFhO0lBQ3BHLElBQUl6QixNQUFNMEIsTUFBTSxJQUFJM0IsUUFBUTJCLE1BQU0sRUFBRXZCLGVBQWV1QixNQUFNLEdBQUczQixRQUFRMkIsTUFBTTtJQUMxRSxJQUFJMUIsTUFBTTJCLFVBQVUsSUFBSTVCLFFBQVE2QixXQUFXLEVBQUV6QixlQUFld0IsVUFBVSxHQUFHNUIsUUFBUTZCLFdBQVc7SUFDNUYsSUFBSTVCLE1BQU02QixTQUFTLEVBQUUxQixlQUFlMEIsU0FBUyxHQUFHOUIsUUFBUStCLFVBQVUsSUFBSTtJQUN0RSxJQUFJOUIsTUFBTStCLFFBQVEsSUFBSWhDLFFBQVFpQyxlQUFlLEVBQUVELFVBQVU1QixlQUFlNEIsUUFBUSxHQUFHaEMsUUFBUWlDLGVBQWUsQ0FBQ0QsUUFBUTtJQUNuSCxJQUFJL0IsTUFBTWlDLEtBQUssSUFBSWxDLFFBQVFrQyxLQUFLLEVBQUU5QixlQUFlOEIsS0FBSyxHQUFHQyxJQUFBQSx1QkFBZ0IsRUFBQ25DLFFBQVFrQyxLQUFLO0lBQ3ZGLElBQUlqQyxNQUFNbUMsY0FBYyxJQUFJcEMsUUFBUXFDLGVBQWUsRUFDakRqQyxlQUFlZ0MsY0FBYyxHQUFHckMsSUFBSUcsWUFBWSxDQUFDb0MsNEJBQTRCLENBQUN2QyxLQUFLQyxRQUFRcUMsZUFBZTtJQUU1RyxPQUFPdEMsSUFBSUcsWUFBWSxDQUFDcUMsV0FBVyxDQUFDbkMsY0FBYyxDQUFDTCxLQUFLQyxTQUFTSTtBQUNuRTtBQUVPLFNBQVNOLHNDQUFzQ0MsR0FBUSxFQUFFQyxPQUE0QztJQUMxRyxNQUFNQyxRQUFRRixJQUFJRyxZQUFZLENBQUNDLGlCQUFpQixDQUFDbUMsNEJBQTRCO0lBQzdFLE1BQU1GLGlCQUFpQixDQUFDO0lBRXhCLElBQUluQyxNQUFNdUMsS0FBSyxJQUFJeEMsUUFBUXdDLEtBQUssRUFBRUosZUFBZUksS0FBSyxHQUFHekIsS0FBS0MsS0FBSyxDQUFDaEIsUUFBUXdDLEtBQUs7SUFDakYsSUFBSXZDLE1BQU13QyxHQUFHLElBQUl6QyxRQUFReUMsR0FBRyxFQUFFTCxlQUFlSyxHQUFHLEdBQUcxQixLQUFLQyxLQUFLLENBQUNoQixRQUFReUMsR0FBRztJQUN6RSxJQUFJeEMsTUFBTXlDLFNBQVMsSUFBSTFDLFFBQVEwQyxTQUFTLEVBQUVOLGVBQWVNLFNBQVMsR0FBRzFDLFFBQVEwQyxTQUFTO0lBQ3RGLElBQUl6QyxNQUFNMEMsUUFBUSxJQUFJM0MsUUFBUTJDLFFBQVEsRUFBRVAsZUFBZU8sUUFBUSxHQUFHM0MsUUFBUTJDLFFBQVE7SUFDbEYsSUFBSTFDLE1BQU0yQyxTQUFTLElBQUk1QyxRQUFRNkMsVUFBVSxFQUFFVCxlQUFlUSxTQUFTLEdBQUc1QyxRQUFRNkMsVUFBVTtJQUN4RixJQUFJNUMsTUFBTTZDLFVBQVUsSUFBSTlDLFFBQVErQyxZQUFZLEVBQUVYLGVBQWVVLFVBQVUsR0FBRzlDLFFBQVErQyxZQUFZO0lBQzlGLElBQUk5QyxNQUFNK0MsT0FBTyxJQUFJaEQsUUFBUWlELFFBQVEsRUFBRWIsZUFBZVksT0FBTyxHQUFHaEQsUUFBUWlELFFBQVE7SUFDaEYsSUFBSWhELE1BQU1pRCxVQUFVLElBQUlsRCxRQUFRbUQsWUFBWSxFQUFFZixlQUFlYyxVQUFVLEdBQUdsRCxRQUFRbUQsWUFBWTtJQUM5RixJQUFJbEQsTUFBTW1ELFNBQVMsSUFBSXBELFFBQVFxRCxXQUFXLEVBQUVqQixlQUFlZ0IsU0FBUyxHQUFHcEQsUUFBUXFELFdBQVc7SUFDMUYsSUFBSXBELE1BQU1xRCxLQUFLLElBQUl0RCxRQUFRc0QsS0FBSyxFQUFFbEIsZUFBZWtCLEtBQUssR0FBR3RELFFBQVFzRCxLQUFLO0lBRXRFLE9BQU92RCxJQUFJRyxZQUFZLENBQUNxQyxXQUFXLENBQUNELDRCQUE0QixDQUFDdkMsS0FBS0MsU0FBU29DO0FBQ2pGIn0=
|
|
@@ -14,11 +14,11 @@ function transformVoiceState(bot, payload) {
|
|
|
14
14
|
const voiceState = {};
|
|
15
15
|
if (props.requestToSpeakTimestamp && payload.voiceState.request_to_speak_timestamp) voiceState.requestToSpeakTimestamp = Date.parse(payload.voiceState.request_to_speak_timestamp);
|
|
16
16
|
if (props.channelId && payload.voiceState.channel_id) voiceState.channelId = bot.transformers.snowflake(payload.voiceState.channel_id);
|
|
17
|
-
if (props.guildId) voiceState.guildId = payload.guildId;
|
|
17
|
+
if (props.guildId) voiceState.guildId = bot.transformers.snowflake(payload.guildId);
|
|
18
18
|
if (props.toggles) voiceState.toggles = new _voice.VoiceStateToggles(payload.voiceState);
|
|
19
19
|
if (props.sessionId) voiceState.sessionId = payload.voiceState.session_id;
|
|
20
20
|
if (props.userId && payload.voiceState.user_id) voiceState.userId = bot.transformers.snowflake(payload.voiceState.user_id) ?? 0n;
|
|
21
21
|
return bot.transformers.customizers.voiceState(bot, payload.voiceState, voiceState);
|
|
22
22
|
}
|
|
23
23
|
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvdm9pY2VTdGF0ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEJpZ1N0cmluZywgRGlzY29yZFZvaWNlU3RhdGUgfSBmcm9tICdAZGlzY29yZGVuby90eXBlcydcbmltcG9ydCB0eXBlIHsgQm90LCBWb2ljZVN0YXRlIH0gZnJvbSAnLi4vaW5kZXguanMnXG5pbXBvcnQgeyBWb2ljZVN0YXRlVG9nZ2xlcyB9IGZyb20gJy4vdG9nZ2xlcy92b2ljZS5qcydcblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybVZvaWNlU3RhdGUoYm90OiBCb3QsIHBheWxvYWQ6IHsgdm9pY2VTdGF0ZTogRGlzY29yZFZvaWNlU3RhdGUgfSAmIHsgZ3VpbGRJZDogQmlnU3RyaW5nIH0pOiBWb2ljZVN0YXRlIHtcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLnZvaWNlU3RhdGVcbiAgY29uc3Qgdm9pY2VTdGF0ZSA9IHt9IGFzIFZvaWNlU3RhdGVcblxuICBpZiAocHJvcHMucmVxdWVzdFRvU3BlYWtUaW1lc3RhbXAgJiYgcGF5bG9hZC52b2ljZVN0YXRlLnJlcXVlc3RfdG9fc3BlYWtfdGltZXN0YW1wKVxuICAgIHZvaWNlU3RhdGUucmVxdWVzdFRvU3BlYWtUaW1lc3RhbXAgPSBEYXRlLnBhcnNlKHBheWxvYWQudm9pY2VTdGF0ZS5yZXF1ZXN0X3RvX3NwZWFrX3RpbWVzdGFtcClcbiAgaWYgKHByb3BzLmNoYW5uZWxJZCAmJiBwYXlsb2FkLnZvaWNlU3RhdGUuY2hhbm5lbF9pZCkgdm9pY2VTdGF0ZS5jaGFubmVsSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLnZvaWNlU3RhdGUuY2hhbm5lbF9pZClcbiAgaWYgKHByb3BzLmd1aWxkSWQpIHZvaWNlU3RhdGUuZ3VpbGRJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuZ3VpbGRJZClcbiAgaWYgKHByb3BzLnRvZ2dsZXMpIHZvaWNlU3RhdGUudG9nZ2xlcyA9IG5ldyBWb2ljZVN0YXRlVG9nZ2xlcyhwYXlsb2FkLnZvaWNlU3RhdGUpXG4gIGlmIChwcm9wcy5zZXNzaW9uSWQpIHZvaWNlU3RhdGUuc2Vzc2lvbklkID0gcGF5bG9hZC52b2ljZVN0YXRlLnNlc3Npb25faWRcbiAgaWYgKHByb3BzLnVzZXJJZCAmJiBwYXlsb2FkLnZvaWNlU3RhdGUudXNlcl9pZCkgdm9pY2VTdGF0ZS51c2VySWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLnZvaWNlU3RhdGUudXNlcl9pZCkgPz8gMG5cblxuICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jdXN0b21pemVycy52b2ljZVN0YXRlKGJvdCwgcGF5bG9hZC52b2ljZVN0YXRlLCB2b2ljZVN0YXRlKVxufVxuIl0sIm5hbWVzIjpbInRyYW5zZm9ybVZvaWNlU3RhdGUiLCJib3QiLCJwYXlsb2FkIiwicHJvcHMiLCJ0cmFuc2Zvcm1lcnMiLCJkZXNpcmVkUHJvcGVydGllcyIsInZvaWNlU3RhdGUiLCJyZXF1ZXN0VG9TcGVha1RpbWVzdGFtcCIsInJlcXVlc3RfdG9fc3BlYWtfdGltZXN0YW1wIiwiRGF0ZSIsInBhcnNlIiwiY2hhbm5lbElkIiwiY2hhbm5lbF9pZCIsInNub3dmbGFrZSIsImd1aWxkSWQiLCJ0b2dnbGVzIiwiVm9pY2VTdGF0ZVRvZ2dsZXMiLCJzZXNzaW9uSWQiLCJzZXNzaW9uX2lkIiwidXNlcklkIiwidXNlcl9pZCIsImN1c3RvbWl6ZXJzIl0sIm1hcHBpbmdzIjoiOzs7OytCQUlnQkE7OztlQUFBQTs7O3VCQUZrQjtBQUUzQixTQUFTQSxvQkFBb0JDLEdBQVEsRUFBRUMsT0FBbUU7SUFDL0csTUFBTUMsUUFBUUYsSUFBSUcsWUFBWSxDQUFDQyxpQkFBaUIsQ0FBQ0MsVUFBVTtJQUMzRCxNQUFNQSxhQUFhLENBQUM7SUFFcEIsSUFBSUgsTUFBTUksdUJBQXVCLElBQUlMLFFBQVFJLFVBQVUsQ0FBQ0UsMEJBQTBCLEVBQ2hGRixXQUFXQyx1QkFBdUIsR0FBR0UsS0FBS0MsS0FBSyxDQUFDUixRQUFRSSxVQUFVLENBQUNFLDBCQUEwQjtJQUMvRixJQUFJTCxNQUFNUSxTQUFTLElBQUlULFFBQVFJLFVBQVUsQ0FBQ00sVUFBVSxFQUFFTixXQUFXSyxTQUFTLEdBQUdWLElBQUlHLFlBQVksQ0FBQ1MsU0FBUyxDQUFDWCxRQUFRSSxVQUFVLENBQUNNLFVBQVU7SUFDckksSUFBSVQsTUFBTVcsT0FBTyxFQUFFUixXQUFXUSxPQUFPLEdBQUdiLElBQUlHLFlBQVksQ0FBQ1MsU0FBUyxDQUFDWCxRQUFRWSxPQUFPO0lBQ2xGLElBQUlYLE1BQU1ZLE9BQU8sRUFBRVQsV0FBV1MsT0FBTyxHQUFHLElBQUlDLHdCQUFpQixDQUFDZCxRQUFRSSxVQUFVO0lBQ2hGLElBQUlILE1BQU1jLFNBQVMsRUFBRVgsV0FBV1csU0FBUyxHQUFHZixRQUFRSSxVQUFVLENBQUNZLFVBQVU7SUFDekUsSUFBSWYsTUFBTWdCLE1BQU0sSUFBSWpCLFFBQVFJLFVBQVUsQ0FBQ2MsT0FBTyxFQUFFZCxXQUFXYSxNQUFNLEdBQUdsQixJQUFJRyxZQUFZLENBQUNTLFNBQVMsQ0FBQ1gsUUFBUUksVUFBVSxDQUFDYyxPQUFPLEtBQUssRUFBRTtJQUVoSSxPQUFPbkIsSUFBSUcsWUFBWSxDQUFDaUIsV0FBVyxDQUFDZixVQUFVLENBQUNMLEtBQUtDLFFBQVFJLFVBQVUsRUFBRUE7QUFDMUUifQ==
|