@discordeno/utils 21.0.0-next.9404081 → 21.0.0-next.99c8a2e
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/images.cjs
CHANGED
|
@@ -75,8 +75,8 @@ const _hash = require("./hash.cjs");
|
|
|
75
75
|
function formatImageUrl(url, size = 128, format) {
|
|
76
76
|
return `${url}.${format ?? (url.includes('/a_') ? 'gif' : 'webp')}?size=${size}`;
|
|
77
77
|
}
|
|
78
|
-
function emojiUrl(emojiId, animated = false) {
|
|
79
|
-
return `https://cdn.discordapp.com/emojis/${emojiId}.${animated ? 'gif' : '
|
|
78
|
+
function emojiUrl(emojiId, animated = false, format = 'png') {
|
|
79
|
+
return `https://cdn.discordapp.com/emojis/${emojiId}.${animated ? format === 'webp' ? 'webp' : 'gif' : format}${animated && format === 'webp' ? '?animated=true' : ''}`;
|
|
80
80
|
}
|
|
81
81
|
function avatarUrl(userId, discriminator, options) {
|
|
82
82
|
return options?.avatar ? formatImageUrl(`https://cdn.discordapp.com/avatars/${userId}/${typeof options.avatar === 'string' ? options.avatar : (0, _hash.iconBigintToHash)(options.avatar)}`, options?.size ?? 128, options?.format) : `https://cdn.discordapp.com/embed/avatars/${discriminator === '0' ? (BigInt(userId) >> BigInt(22)) % BigInt(6) : Number(discriminator) % 5}.png`;
|
|
@@ -139,4 +139,4 @@ function roleIconUrl(roleId, iconHash, options) {
|
|
|
139
139
|
return iconHash ? formatImageUrl(`https://cdn.discordapp.com/role-icons/${roleId}/${typeof iconHash === 'string' ? iconHash : (0, _hash.iconBigintToHash)(iconHash)}`, options?.size ?? 128, options?.format) : undefined;
|
|
140
140
|
}
|
|
141
141
|
|
|
142
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbWFnZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBCaWdTdHJpbmcsIHR5cGUgR2V0R3VpbGRXaWRnZXRJbWFnZVF1ZXJ5LCB0eXBlIEltYWdlRm9ybWF0LCB0eXBlIEltYWdlU2l6ZSwgU3RpY2tlckZvcm1hdFR5cGVzIH0gZnJvbSAnQGRpc2NvcmRlbm8vdHlwZXMnXG5pbXBvcnQgeyBpY29uQmlnaW50VG9IYXNoIH0gZnJvbSAnLi9oYXNoLmpzJ1xuXG4vKiogSGVscCBmb3JtYXQgYW4gaW1hZ2UgdXJsLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdEltYWdlVXJsKHVybDogc3RyaW5nLCBzaXplOiBJbWFnZVNpemUgPSAxMjgsIGZvcm1hdD86IEltYWdlRm9ybWF0KTogc3RyaW5nIHtcbiAgcmV0dXJuIGAke3VybH0uJHtmb3JtYXQgPz8gKHVybC5pbmNsdWRlcygnL2FfJykgPyAnZ2lmJyA6ICd3ZWJwJyl9P3NpemU9JHtzaXplfWBcbn1cblxuLyoqXG4gKiBHZXQgdGhlIHVybCBmb3IgYW4gZW1vamkuXG4gKlxuICogQHBhcmFtIGVtb2ppSWQgVGhlIGlkIG9mIHRoZSBlbW9qaVxuICogQHBhcmFtIGFuaW1hdGVkIFdoZXRoZXIgb3Igbm90IHRoZSBlbW9qaSBpcyBhbmltYXRlZFxuICogQHJldHVybnMgc3RyaW5nXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlbW9qaVVybChlbW9qaUlkOiBCaWdTdHJpbmcsIGFuaW1hdGVkID0gZmFsc2UpOiBzdHJpbmcge1xuICByZXR1cm4gYGh0dHBzOi8vY2RuLmRpc2NvcmRhcHAuY29tL2Vtb2ppcy8ke2Vtb2ppSWR9LiR7YW5pbWF0ZWQgPyAnZ2lmJyA6ICdwbmcnfWBcbn1cblxuLyoqXG4gKiBCdWlsZHMgYSBVUkwgdG8gYSB1c2VyJ3MgYXZhdGFyIHN0b3JlZCBpbiB0aGUgRGlzY29yZCBDRE4uXG4gKlxuICogQHBhcmFtIHVzZXJJZCAtIFRoZSBJRCBvZiB0aGUgdXNlciB0byBnZXQgdGhlIGF2YXRhciBvZi5cbiAqIEBwYXJhbSBkaXNjcmltaW5hdG9yIC0gVGhlIHVzZXIncyBkaXNjcmltaW5hdG9yLiAoNC1kaWdpdCB0YWcgYWZ0ZXIgdGhlIGhhc2h0YWcuKVxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIGJ1aWxkaW5nIG9mIHRoZSBVUkwuXG4gKiBAcmV0dXJucyBUaGUgbGluayB0byB0aGUgcmVzb3VyY2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhdmF0YXJVcmwoXG4gIHVzZXJJZDogQmlnU3RyaW5nLFxuICBkaXNjcmltaW5hdG9yOiBzdHJpbmcsXG4gIG9wdGlvbnM/OiB7XG4gICAgYXZhdGFyOiBCaWdTdHJpbmcgfCB1bmRlZmluZWRcbiAgICBzaXplPzogSW1hZ2VTaXplXG4gICAgZm9ybWF0PzogSW1hZ2VGb3JtYXRcbiAgfSxcbik6IHN0cmluZyB7XG4gIHJldHVybiBvcHRpb25zPy5hdmF0YXJcbiAgICA/IGZvcm1hdEltYWdlVXJsKFxuICAgICAgICBgaHR0cHM6Ly9jZG4uZGlzY29yZGFwcC5jb20vYXZhdGFycy8ke3VzZXJJZH0vJHt0eXBlb2Ygb3B0aW9ucy5hdmF0YXIgPT09ICdzdHJpbmcnID8gb3B0aW9ucy5hdmF0YXIgOiBpY29uQmlnaW50VG9IYXNoKG9wdGlvbnMuYXZhdGFyKX1gLFxuICAgICAgICBvcHRpb25zPy5zaXplID8/IDEyOCxcbiAgICAgICAgb3B0aW9ucz8uZm9ybWF0LFxuICAgICAgKVxuICAgIDogYGh0dHBzOi8vY2RuLmRpc2NvcmRhcHAuY29tL2VtYmVkL2F2YXRhcnMvJHtkaXNjcmltaW5hdG9yID09PSAnMCcgPyAoQmlnSW50KHVzZXJJZCkgPj4gQmlnSW50KDIyKSkgJSBCaWdJbnQoNikgOiBOdW1iZXIoZGlzY3JpbWluYXRvcikgJSA1fS5wbmdgXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhdmF0YXJEZWNvcmF0aW9uVXJsKGF2YXRhckRlY29yYXRpb246IEJpZ1N0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBgaHR0cHM6Ly9jZG4uZGlzY29yZGFwcC5jb20vYXZhdGFyLWRlY29yYXRpb24tcHJlc2V0cy8ke1xuICAgIHR5cGVvZiBhdmF0YXJEZWNvcmF0aW9uID09PSAnc3RyaW5nJyA/IGF2YXRhckRlY29yYXRpb24gOiBpY29uQmlnaW50VG9IYXNoKGF2YXRhckRlY29yYXRpb24pXG4gIH0ucG5nYFxufVxuXG4vKipcbiAqIEJ1aWxkcyBhIFVSTCB0byBhIHVzZXIncyBiYW5uZXIgc3RvcmVkIGluIHRoZSBEaXNjb3JkIENETi5cbiAqXG4gKiBAcGFyYW0gdXNlcklkIC0gVGhlIElEIG9mIHRoZSB1c2VyIHRvIGdldCB0aGUgYmFubmVyIG9mLlxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIGJ1aWxkaW5nIG9mIHRoZSBVUkwuXG4gKiBAcmV0dXJucyBUaGUgbGluayB0byB0aGUgcmVzb3VyY2Ugb3IgYHVuZGVmaW5lZGAgaWYgbm8gYmFubmVyIGhhcyBub3QgYmVlbiBzZXQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBiYW5uZXJVcmwoXG4gIHVzZXJJZDogQmlnU3RyaW5nLFxuICBvcHRpb25zPzoge1xuICAgIGJhbm5lcj86IEJpZ1N0cmluZ1xuICAgIHNpemU/OiBJbWFnZVNpemVcbiAgICBmb3JtYXQ/OiBJbWFnZUZvcm1hdFxuICB9LFxuKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIG9wdGlvbnM/LmJhbm5lclxuICAgID8gZm9ybWF0SW1hZ2VVcmwoXG4gICAgICAgIGBodHRwczovL2Nkbi5kaXNjb3JkYXBwLmNvbS9iYW5uZXJzLyR7dXNlcklkfS8ke3R5cGVvZiBvcHRpb25zLmJhbm5lciA9PT0gJ3N0cmluZycgPyBvcHRpb25zLmJhbm5lciA6IGljb25CaWdpbnRUb0hhc2gob3B0aW9ucy5iYW5uZXIpfWAsXG4gICAgICAgIG9wdGlvbnM/LnNpemUgPz8gMTI4LFxuICAgICAgICBvcHRpb25zPy5mb3JtYXQsXG4gICAgICApXG4gICAgOiB1bmRlZmluZWRcbn1cblxuLyoqXG4gKiBCdWlsZHMgYSBVUkwgdG8gdGhlIGd1aWxkIGJhbm5lciBzdG9yZWQgaW4gdGhlIERpc2NvcmQgQ0ROLlxuICpcbiAqIEBwYXJhbSBndWlsZElkIC0gVGhlIElEIG9mIHRoZSBndWlsZCB0byBnZXQgdGhlIGxpbmsgdG8gdGhlIGJhbm5lciBmb3IuXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgYnVpbGRpbmcgb2YgdGhlIFVSTC5cbiAqIEByZXR1cm5zIFRoZSBsaW5rIHRvIHRoZSByZXNvdXJjZSBvciBgdW5kZWZpbmVkYCBpZiBubyBiYW5uZXIgaGFzIGJlZW4gc2V0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ3VpbGRCYW5uZXJVcmwoXG4gIGd1aWxkSWQ6IEJpZ1N0cmluZyxcbiAgb3B0aW9uczoge1xuICAgIGJhbm5lcj86IEJpZ1N0cmluZ1xuICAgIHNpemU/OiBJbWFnZVNpemVcbiAgICBmb3JtYXQ/OiBJbWFnZUZvcm1hdFxuICB9LFxuKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIG9wdGlvbnMuYmFubmVyXG4gICAgPyBmb3JtYXRJbWFnZVVybChcbiAgICAgICAgYGh0dHBzOi8vY2RuLmRpc2NvcmRhcHAuY29tL2Jhbm5lcnMvJHtndWlsZElkfS8ke3R5cGVvZiBvcHRpb25zLmJhbm5lciA9PT0gJ3N0cmluZycgPyBvcHRpb25zLmJhbm5lciA6IGljb25CaWdpbnRUb0hhc2gob3B0aW9ucy5iYW5uZXIpfWAsXG4gICAgICAgIG9wdGlvbnMuc2l6ZSA/PyAxMjgsXG4gICAgICAgIG9wdGlvbnMuZm9ybWF0LFxuICAgICAgKVxuICAgIDogdW5kZWZpbmVkXG59XG5cbi8qKlxuICogQnVpbGRzIGEgVVJMIHRvIHRoZSBndWlsZCBpY29uIHN0b3JlZCBpbiB0aGUgRGlzY29yZCBDRE4uXG4gKlxuICogQHBhcmFtIGd1aWxkSWQgLSBUaGUgSUQgb2YgdGhlIGd1aWxkIHRvIGdldCB0aGUgbGluayB0byB0aGUgYmFubmVyIGZvci5cbiAqIEBwYXJhbSBpbWFnZUhhc2ggLSBUaGUgaGFzaCBpZGVudGlmeWluZyB0aGUgZXZlbnQgY292ZXIgaW1hZ2UuXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgYnVpbGRpbmcgb2YgdGhlIFVSTC5cbiAqIEByZXR1cm5zIFRoZSBsaW5rIHRvIHRoZSByZXNvdXJjZSBvciBgdW5kZWZpbmVkYCBpZiBubyBiYW5uZXIgaGFzIGJlZW4gc2V0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ3VpbGRJY29uVXJsKFxuICBndWlsZElkOiBCaWdTdHJpbmcsXG4gIGltYWdlSGFzaDogQmlnU3RyaW5nIHwgdW5kZWZpbmVkLFxuICBvcHRpb25zPzoge1xuICAgIHNpemU/OiBJbWFnZVNpemVcbiAgICBmb3JtYXQ/OiBJbWFnZUZvcm1hdFxuICB9LFxuKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIGltYWdlSGFzaFxuICAgID8gZm9ybWF0SW1hZ2VVcmwoXG4gICAgICAgIGBodHRwczovL2Nkbi5kaXNjb3JkYXBwLmNvbS9pY29ucy8ke2d1aWxkSWR9LyR7dHlwZW9mIGltYWdlSGFzaCA9PT0gJ3N0cmluZycgPyBpbWFnZUhhc2ggOiBpY29uQmlnaW50VG9IYXNoKGltYWdlSGFzaCl9YCxcbiAgICAgICAgb3B0aW9ucz8uc2l6ZSA/PyAxMjgsXG4gICAgICAgIG9wdGlvbnM/LmZvcm1hdCxcbiAgICAgIClcbiAgICA6IHVuZGVmaW5lZFxufVxuXG4vKipcbiAqIEJ1aWxkcyB0aGUgVVJMIHRvIGEgZ3VpbGQgc3BsYXNoIHN0b3JlZCBpbiB0aGUgRGlzY29yZCBDRE4uXG4gKlxuICogQHBhcmFtIGd1aWxkSWQgLSBUaGUgSUQgb2YgdGhlIGd1aWxkIHRvIGdldCB0aGUgc3BsYXNoIG9mLlxuICogQHBhcmFtIGltYWdlSGFzaCAtIFRoZSBoYXNoIGlkZW50aWZ5aW5nIHRoZSBzcGxhc2ggaW1hZ2UuXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgYnVpbGRpbmcgb2YgdGhlIFVSTC5cbiAqIEByZXR1cm5zIFRoZSBsaW5rIHRvIHRoZSByZXNvdXJjZSBvciBgdW5kZWZpbmVkYCBpZiB0aGUgZ3VpbGQgZG9lcyBub3QgaGF2ZSBhIHNwbGFzaCBpbWFnZSBzZXQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBndWlsZFNwbGFzaFVybChcbiAgZ3VpbGRJZDogQmlnU3RyaW5nLFxuICBpbWFnZUhhc2g6IEJpZ1N0cmluZyB8IHVuZGVmaW5lZCxcbiAgb3B0aW9ucz86IHtcbiAgICBzaXplPzogSW1hZ2VTaXplXG4gICAgZm9ybWF0PzogSW1hZ2VGb3JtYXRcbiAgfSxcbik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBpbWFnZUhhc2hcbiAgICA/IGZvcm1hdEltYWdlVXJsKFxuICAgICAgICBgaHR0cHM6Ly9jZG4uZGlzY29yZGFwcC5jb20vc3BsYXNoZXMvJHtndWlsZElkfS8ke3R5cGVvZiBpbWFnZUhhc2ggPT09ICdzdHJpbmcnID8gaW1hZ2VIYXNoIDogaWNvbkJpZ2ludFRvSGFzaChpbWFnZUhhc2gpfWAsXG4gICAgICAgIG9wdGlvbnM/LnNpemUgPz8gMTI4LFxuICAgICAgICBvcHRpb25zPy5mb3JtYXQsXG4gICAgICApXG4gICAgOiB1bmRlZmluZWRcbn1cblxuLyoqXG4gKiBCdWlsZHMgdGhlIFVSTCB0byBhIGd1aWxkIGRpc2NvdmVyeSBzcGxhc2ggc3RvcmVkIGluIHRoZSBEaXNjb3JkIENETi5cbiAqXG4gKiBAcGFyYW0gZ3VpbGRJZCAtIFRoZSBJRCBvZiB0aGUgZ3VpbGQgdG8gZ2V0IHRoZSBzcGxhc2ggb2YuXG4gKiBAcGFyYW0gaW1hZ2VIYXNoIC0gVGhlIGhhc2ggaWRlbnRpZnlpbmcgdGhlIGRpc2NvdmVyeSBzcGxhc2ggaW1hZ2UuXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgYnVpbGRpbmcgb2YgdGhlIFVSTC5cbiAqIEByZXR1cm5zIFRoZSBsaW5rIHRvIHRoZSByZXNvdXJjZSBvciBgdW5kZWZpbmVkYCBpZiB0aGUgZ3VpbGQgZG9lcyBub3QgaGF2ZSBhIHNwbGFzaCBpbWFnZSBzZXQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBndWlsZERpc2NvdmVyeVNwbGFzaFVybChcbiAgZ3VpbGRJZDogQmlnU3RyaW5nLFxuICBpbWFnZUhhc2g6IEJpZ1N0cmluZyB8IHVuZGVmaW5lZCxcbiAgb3B0aW9ucz86IHtcbiAgICBzaXplPzogSW1hZ2VTaXplXG4gICAgZm9ybWF0PzogSW1hZ2VGb3JtYXRcbiAgfSxcbik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBpbWFnZUhhc2hcbiAgICA/IGZvcm1hdEltYWdlVXJsKFxuICAgICAgICBgaHR0cHM6Ly9jZG4uZGlzY29yZGFwcC5jb20vZGlzY292ZXJ5LXNwbGFzaGVzLyR7Z3VpbGRJZH0vJHt0eXBlb2YgaW1hZ2VIYXNoID09PSAnc3RyaW5nJyA/IGltYWdlSGFzaCA6IGljb25CaWdpbnRUb0hhc2goaW1hZ2VIYXNoKX1gLFxuICAgICAgICBvcHRpb25zPy5zaXplID8/IDEyOCxcbiAgICAgICAgb3B0aW9ucz8uZm9ybWF0LFxuICAgICAgKVxuICAgIDogdW5kZWZpbmVkXG59XG5cbi8qKlxuICogQnVpbGRzIHRoZSBVUkwgdG8gYSBndWlsZCBzY2hlZHVsZWQgZXZlbnQgY292ZXIgc3RvcmVkIGluIHRoZSBEaXNjb3JkIENETi5cbiAqXG4gKiBAcGFyYW0gZXZlbnRJZCAtIFRoZSBJRCBvZiB0aGUgc2NoZWR1bGVkIGV2ZW50IHRvIGdldCB0aGUgY292ZXIgb2YuXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgYnVpbGRpbmcgb2YgdGhlIFVSTC5cbiAqIEByZXR1cm5zIFRoZSBsaW5rIHRvIHRoZSByZXNvdXJjZSBvciBgdW5kZWZpbmVkYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGd1aWxkU2NoZWR1bGVkRXZlbnRDb3ZlclVybChcbiAgZXZlbnRJZDogQmlnU3RyaW5nLFxuICBvcHRpb25zOiB7XG4gICAgY292ZXI/OiBCaWdTdHJpbmdcbiAgICBzaXplPzogSW1hZ2VTaXplXG4gICAgZm9ybWF0PzogSW1hZ2VGb3JtYXRcbiAgfSxcbik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBvcHRpb25zLmNvdmVyXG4gICAgPyBmb3JtYXRJbWFnZVVybChcbiAgICAgICAgYGh0dHBzOi8vY2RuLmRpc2NvcmRhcHAuY29tL2d1aWxkLWV2ZW50cy8ke2V2ZW50SWR9LyR7dHlwZW9mIG9wdGlvbnMuY292ZXIgPT09ICdzdHJpbmcnID8gb3B0aW9ucy5jb3ZlciA6IGljb25CaWdpbnRUb0hhc2gob3B0aW9ucy5jb3Zlcil9YCxcbiAgICAgICAgb3B0aW9ucy5zaXplID8/IDEyOCxcbiAgICAgICAgb3B0aW9ucy5mb3JtYXQsXG4gICAgICApXG4gICAgOiB1bmRlZmluZWRcbn1cblxuLyoqXG4gKiBCdWlsZHMgYSBVUkwgdG8gdGhlIGd1aWxkIHdpZGdldCBpbWFnZSBzdG9yZWQgaW4gdGhlIERpc2NvcmQgQ0ROLlxuICpcbiAqIEBwYXJhbSBndWlsZElkIC0gVGhlIElEIG9mIHRoZSBndWlsZCB0byBnZXQgdGhlIGxpbmsgdG8gdGhlIHdpZGdldCBpbWFnZSBmb3IuXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgYnVpbGRpbmcgb2YgdGhlIFVSTC5cbiAqIEByZXR1cm5zIFRoZSBsaW5rIHRvIHRoZSByZXNvdXJjZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFdpZGdldEltYWdlVXJsKGd1aWxkSWQ6IEJpZ1N0cmluZywgb3B0aW9ucz86IEdldEd1aWxkV2lkZ2V0SW1hZ2VRdWVyeSk6IHN0cmluZyB7XG4gIGxldCB1cmwgPSBgaHR0cHM6Ly9kaXNjb3JkYXBwLmNvbS9hcGkvZ3VpbGRzLyR7Z3VpbGRJZH0vd2lkZ2V0LnBuZ2BcblxuICBpZiAob3B0aW9ucz8uc3R5bGUpIHtcbiAgICB1cmwgKz0gYD9zdHlsZT0ke29wdGlvbnMuc3R5bGV9YFxuICB9XG5cbiAgcmV0dXJuIHVybFxufVxuXG4vKipcbiAqIEJ1aWxkcyBhIFVSTCB0byBhIG1lbWJlcidzIGF2YXRhciBzdG9yZWQgaW4gdGhlIERpc2NvcmQgQ0ROLlxuICpcbiAqIEBwYXJhbSBndWlsZElkIC0gVGhlIElEIG9mIHRoZSBndWlsZCB3aGVyZSB0aGUgbWVtYmVyIGlzXG4gKiBAcGFyYW0gdXNlcklkIC0gVGhlIElEIG9mIHRoZSB1c2VyIHRvIGdldCB0aGUgYXZhdGFyIG9mLlxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIGJ1aWxkaW5nIG9mIHRoZSBVUkwuXG4gKiBAcmV0dXJucyBUaGUgbGluayB0byB0aGUgcmVzb3VyY2Ugb3IgYHVuZGVmaW5lZGAgaWYgbm8gYmFubmVyIGhhcyBiZWVuIHNldC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1lbWJlckF2YXRhclVybChcbiAgZ3VpbGRJZDogQmlnU3RyaW5nLFxuICB1c2VySWQ6IEJpZ1N0cmluZyxcbiAgb3B0aW9ucz86IHtcbiAgICBhdmF0YXI/OiBCaWdTdHJpbmdcbiAgICBzaXplPzogSW1hZ2VTaXplXG4gICAgZm9ybWF0PzogSW1hZ2VGb3JtYXRcbiAgfSxcbik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBvcHRpb25zPy5hdmF0YXJcbiAgICA/IGZvcm1hdEltYWdlVXJsKFxuICAgICAgICBgaHR0cHM6Ly9jZG4uZGlzY29yZGFwcC5jb20vZ3VpbGRzLyR7Z3VpbGRJZH0vdXNlcnMvJHt1c2VySWR9L2F2YXRhcnMvJHtcbiAgICAgICAgICB0eXBlb2Ygb3B0aW9ucy5hdmF0YXIgPT09ICdzdHJpbmcnID8gb3B0aW9ucy5hdmF0YXIgOiBpY29uQmlnaW50VG9IYXNoKG9wdGlvbnMuYXZhdGFyKVxuICAgICAgICB9YCxcbiAgICAgICAgb3B0aW9ucz8uc2l6ZSA/PyAxMjgsXG4gICAgICAgIG9wdGlvbnM/LmZvcm1hdCxcbiAgICAgIClcbiAgICA6IHVuZGVmaW5lZFxufVxuXG4vKipcbiAqIEJ1aWxkcyBhIFVSTCB0byBhIG1lbWJlcidzIGJhbm5lciBzdG9yZWQgaW4gdGhlIERpc2NvcmQgQ0ROLlxuICpcbiAqIEBwYXJhbSBndWlsZElkIC0gVGhlIElEIG9mIHRoZSBndWlsZCB3aGVyZSB0aGUgbWVtYmVyIGlzXG4gKiBAcGFyYW0gdXNlcklkIC0gVGhlIElEIG9mIHRoZSB1c2VyIHRvIGdldCB0aGUgYmFubmVyIG9mLlxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIGJ1aWxkaW5nIG9mIHRoZSBVUkwuXG4gKiBAcmV0dXJucyBUaGUgbGluayB0byB0aGUgcmVzb3VyY2Ugb3IgYHVuZGVmaW5lZGAgaWYgbm8gYmFubmVyIGhhcyBiZWVuIHNldC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1lbWJlckJhbm5lclVybChcbiAgZ3VpbGRJZDogQmlnU3RyaW5nLFxuICB1c2VySWQ6IEJpZ1N0cmluZyxcbiAgb3B0aW9ucz86IHtcbiAgICBiYW5uZXI/OiBCaWdTdHJpbmdcbiAgICBzaXplPzogSW1hZ2VTaXplXG4gICAgZm9ybWF0PzogSW1hZ2VGb3JtYXRcbiAgfSxcbik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBvcHRpb25zPy5iYW5uZXJcbiAgICA/IGZvcm1hdEltYWdlVXJsKFxuICAgICAgICBgaHR0cHM6Ly9jZG4uZGlzY29yZGFwcC5jb20vZ3VpbGRzLyR7Z3VpbGRJZH0vdXNlcnMvJHt1c2VySWR9L2Jhbm5lcnMvJHtcbiAgICAgICAgICB0eXBlb2Ygb3B0aW9ucy5iYW5uZXIgPT09ICdzdHJpbmcnID8gb3B0aW9ucy5iYW5uZXIgOiBpY29uQmlnaW50VG9IYXNoKG9wdGlvbnMuYmFubmVyKVxuICAgICAgICB9YCxcbiAgICAgICAgb3B0aW9ucz8uc2l6ZSA/PyAxMjgsXG4gICAgICAgIG9wdGlvbnM/LmZvcm1hdCxcbiAgICAgIClcbiAgICA6IHVuZGVmaW5lZFxufVxuXG4vKipcbiAqIEJ1aWxkcyB0aGUgVVJMIHRvIGFuIGFwcGxpY2F0aW9uIGljb24gc3RvcmVkIGluIHRoZSBEaXNjb3JkIENETi5cbiAqXG4gKiBAcGFyYW0gYXBwbGljYXRpb25JZCAtIFRoZSBJRCBvZiB0aGUgYXBwbGljYXRpb24gdG8gZ2V0IHRoZSBpY29uIG9mLlxuICogQHBhcmFtIGljb25IYXNoIC0gVGhlIGhhc2ggaWRlbnRpZnlpbmcgdGhlIGFwcGxpY2F0aW9uIGljb24uXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgYnVpbGRpbmcgb2YgdGhlIFVSTC5cbiAqIEByZXR1cm5zIFRoZSBsaW5rIHRvIHRoZSByZXNvdXJjZSBvciBgdW5kZWZpbmVkYFxuICovXG5leHBvcnQgZnVuY3Rpb24gYXBwbGljYXRpb25JY29uVXJsKFxuICBhcHBsaWNhdGlvbklkOiBCaWdTdHJpbmcsXG4gIGljb25IYXNoOiBCaWdTdHJpbmcgfCB1bmRlZmluZWQsXG4gIG9wdGlvbnM/OiB7XG4gICAgc2l6ZT86IEltYWdlU2l6ZVxuICAgIGZvcm1hdD86IEltYWdlRm9ybWF0XG4gIH0sXG4pOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICByZXR1cm4gaWNvbkhhc2hcbiAgICA/IGZvcm1hdEltYWdlVXJsKFxuICAgICAgICBgaHR0cHM6Ly9jZG4uZGlzY29yZGFwcC5jb20vYXBwLWljb25zLyR7YXBwbGljYXRpb25JZH0vJHt0eXBlb2YgaWNvbkhhc2ggPT09ICdzdHJpbmcnID8gaWNvbkhhc2ggOiBpY29uQmlnaW50VG9IYXNoKGljb25IYXNoKX1gLFxuICAgICAgICBvcHRpb25zPy5zaXplID8/IDEyOCxcbiAgICAgICAgb3B0aW9ucz8uZm9ybWF0LFxuICAgICAgKVxuICAgIDogdW5kZWZpbmVkXG59XG5cbi8qKlxuICogQnVpbGRzIHRoZSBVUkwgdG8gYW4gYXBwbGljYXRpb24gY292ZXIgc3RvcmVkIGluIHRoZSBEaXNjb3JkIENETi5cbiAqXG4gKiBAcGFyYW0gYXBwbGljYXRpb25JZCAtIFRoZSBJRCBvZiB0aGUgYXBwbGljYXRpb24gdG8gZ2V0IHRoZSBjb3ZlciBvZi5cbiAqIEBwYXJhbSBjb3Zlckhhc2ggLSBUaGUgaGFzaCBpZGVudGlmeWluZyB0aGUgYXBwbGljYXRpb24gY292ZXIuXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgYnVpbGRpbmcgb2YgdGhlIFVSTC5cbiAqIEByZXR1cm5zIFRoZSBsaW5rIHRvIHRoZSByZXNvdXJjZSBvciBgdW5kZWZpbmVkYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFwcGxpY2F0aW9uQ292ZXJVcmwoXG4gIGFwcGxpY2F0aW9uSWQ6IEJpZ1N0cmluZyxcbiAgY292ZXJIYXNoOiBCaWdTdHJpbmcgfCB1bmRlZmluZWQsXG4gIG9wdGlvbnM/OiB7XG4gICAgc2l6ZT86IEltYWdlU2l6ZVxuICAgIGZvcm1hdD86IEltYWdlRm9ybWF0XG4gIH0sXG4pOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICByZXR1cm4gY292ZXJIYXNoXG4gICAgPyBmb3JtYXRJbWFnZVVybChcbiAgICAgICAgYGh0dHBzOi8vY2RuLmRpc2NvcmRhcHAuY29tL2FwcC1pY29ucy8ke2FwcGxpY2F0aW9uSWR9LyR7dHlwZW9mIGNvdmVySGFzaCA9PT0gJ3N0cmluZycgPyBjb3Zlckhhc2ggOiBpY29uQmlnaW50VG9IYXNoKGNvdmVySGFzaCl9YCxcbiAgICAgICAgb3B0aW9ucz8uc2l6ZSA/PyAxMjgsXG4gICAgICAgIG9wdGlvbnM/LmZvcm1hdCxcbiAgICAgIClcbiAgICA6IHVuZGVmaW5lZFxufVxuXG4vKipcbiAqIEJ1aWxkcyB0aGUgVVJMIHRvIGFuIGFwcGxpY2F0aW9uIGFzc2V0IHN0b3JlZCBpbiB0aGUgRGlzY29yZCBDRE4uXG4gKlxuICogQHBhcmFtIGFwcGxpY2F0aW9uSWQgLSBUaGUgSUQgb2YgdGhlIGFwcGxpY2F0aW9uIHRvIGdldCB0aGUgYXNzZXQgb2YuXG4gKiBAcGFyYW0gYXNzZXRJZCAtIFRoZSBpZCBpZGVudGlmeWluZyB0aGUgYXBwbGljYXRpb24gYXNzZXQuXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgYnVpbGRpbmcgb2YgdGhlIFVSTC5cbiAqIEByZXR1cm5zIFRoZSBsaW5rIHRvIHRoZSByZXNvdXJjZSBvciBgdW5kZWZpbmVkYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFwcGxpY2F0aW9uQXNzZXRVcmwoXG4gIGFwcGxpY2F0aW9uSWQ6IEJpZ1N0cmluZyxcbiAgYXNzZXRJZDogQmlnU3RyaW5nIHwgdW5kZWZpbmVkLFxuICBvcHRpb25zPzoge1xuICAgIHNpemU/OiBJbWFnZVNpemVcbiAgICBmb3JtYXQ/OiBJbWFnZUZvcm1hdFxuICB9LFxuKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIGFzc2V0SWRcbiAgICA/IGZvcm1hdEltYWdlVXJsKFxuICAgICAgICBgaHR0cHM6Ly9jZG4uZGlzY29yZGFwcC5jb20vYXBwLWljb25zLyR7YXBwbGljYXRpb25JZH0vJHt0eXBlb2YgYXNzZXRJZCA9PT0gJ3N0cmluZycgPyBhc3NldElkIDogaWNvbkJpZ2ludFRvSGFzaChhc3NldElkKX1gLFxuICAgICAgICBvcHRpb25zPy5zaXplID8/IDEyOCxcbiAgICAgICAgb3B0aW9ucz8uZm9ybWF0LFxuICAgICAgKVxuICAgIDogdW5kZWZpbmVkXG59XG5cbi8qKlxuICogQnVpbGRzIHRoZSBVUkwgdG8gYSBzdGlja2VyIHBhY2sgYmFubmVyIHN0b3JlZCBpbiB0aGUgRGlzY29yZCBDRE4uXG4gKlxuICogQHBhcmFtIGJhbm5lckFzc2V0SWQgLSBUaGUgSUQgb2YgdGhlIGJhbm5lciBhc3NldCBmb3IgdGhlIHN0aWNrZXIgcGFjay5cbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBidWlsZGluZyBvZiB0aGUgVVJMLlxuICogQHJldHVybnMgVGhlIGxpbmsgdG8gdGhlIHJlc291cmNlIG9yIGB1bmRlZmluZWRgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc3RpY2tlclBhY2tCYW5uZXJVcmwoXG4gIGJhbm5lckFzc2V0SWQ6IEJpZ1N0cmluZyB8IHVuZGVmaW5lZCxcbiAgb3B0aW9ucz86IHtcbiAgICBzaXplPzogSW1hZ2VTaXplXG4gICAgZm9ybWF0PzogSW1hZ2VGb3JtYXRcbiAgfSxcbik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBiYW5uZXJBc3NldElkXG4gICAgPyBmb3JtYXRJbWFnZVVybChcbiAgICAgICAgYGh0dHBzOi8vY2RuLmRpc2NvcmRhcHAuY29tL2FwcC1hc3NldHMvNzEwOTgyNDE0MzAxNzkwMjE2L3N0b3JlLyR7XG4gICAgICAgICAgdHlwZW9mIGJhbm5lckFzc2V0SWQgPT09ICdzdHJpbmcnID8gYmFubmVyQXNzZXRJZCA6IGljb25CaWdpbnRUb0hhc2goYmFubmVyQXNzZXRJZClcbiAgICAgICAgfWAsXG4gICAgICAgIG9wdGlvbnM/LnNpemUgPz8gMTI4LFxuICAgICAgICBvcHRpb25zPy5mb3JtYXQsXG4gICAgICApXG4gICAgOiB1bmRlZmluZWRcbn1cblxuLyoqXG4gKiBCdWlsZHMgdGhlIFVSTCB0byBhIHN0aWNrZXIgc3RvcmVkIGluIHRoZSBEaXNjb3JkIENETi5cbiAqXG4gKiBAcGFyYW0gc3RpY2tlcklkIC0gVGhlIElEIG9mIHRoZSBzdGlja2VyIHRvIGdldCB0aGUgaWNvbiBvZlxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIGJ1aWxkaW5nIG9mIHRoZSBVUkwuXG4gKiBAcmV0dXJucyBUaGUgbGluayB0byB0aGUgcmVzb3VyY2Ugb3IgYHVuZGVmaW5lZGAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzdGlja2VyVXJsKFxuICBzdGlja2VySWQ6IEJpZ1N0cmluZyB8IG51bWJlcixcbiAgb3B0aW9ucz86IHtcbiAgICBzaXplPzogSW1hZ2VTaXplXG4gICAgZm9ybWF0PzogSW1hZ2VGb3JtYXRcbiAgICB0eXBlPzogU3RpY2tlckZvcm1hdFR5cGVzXG4gIH0sXG4pOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICBpZiAoIXN0aWNrZXJJZCkgcmV0dXJuXG5cbiAgY29uc3QgdXJsID1cbiAgICBvcHRpb25zPy50eXBlID09PSBTdGlja2VyRm9ybWF0VHlwZXMuR2lmXG4gICAgICA/IGBodHRwczovL21lZGlhLmRpc2NvcmRhcHAubmV0L3N0aWNrZXJzLyR7c3RpY2tlcklkfWBcbiAgICAgIDogYGh0dHBzOi8vY2RuLmRpc2NvcmRhcHAuY29tL3N0aWNrZXJzLyR7c3RpY2tlcklkfWBcblxuICByZXR1cm4gZm9ybWF0SW1hZ2VVcmwodXJsLCBvcHRpb25zPy5zaXplID8/IDEyOCwgb3B0aW9ucz8uZm9ybWF0KVxufVxuXG4vKipcbiAqIEJ1aWxkcyB0aGUgVVJMIHRvIGEgdGVhbSBpY29uIHN0b3JlZCBpbiB0aGUgRGlzY29yZCBDRE4uXG4gKlxuICogQHBhcmFtIHRlYW1JZCAtIFRoZSBJRCBvZiB0aGUgdGVhbSB0byBnZXQgdGhlIGljb24gb2ZcbiAqIEBwYXJhbSBpY29uSGFzaCAtIFRoZSBoYXNoIG9mIHRoZSB0ZWFtIGljb24uXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgYnVpbGRpbmcgb2YgdGhlIFVSTC5cbiAqIEByZXR1cm5zIFRoZSBsaW5rIHRvIHRoZSByZXNvdXJjZSBvciBgdW5kZWZpbmVkYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRlYW1JY29uVXJsKFxuICB0ZWFtSWQ6IEJpZ1N0cmluZyxcbiAgaWNvbkhhc2g6IEJpZ1N0cmluZyB8IHVuZGVmaW5lZCxcbiAgb3B0aW9ucz86IHtcbiAgICBzaXplPzogSW1hZ2VTaXplXG4gICAgZm9ybWF0PzogSW1hZ2VGb3JtYXRcbiAgfSxcbik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBpY29uSGFzaFxuICAgID8gZm9ybWF0SW1hZ2VVcmwoXG4gICAgICAgIGBodHRwczovL2Nkbi5kaXNjb3JkYXBwLmNvbS90ZWFtLWljb25zLyR7dGVhbUlkfS9zdG9yZS8ke3R5cGVvZiBpY29uSGFzaCA9PT0gJ3N0cmluZycgPyBpY29uSGFzaCA6IGljb25CaWdpbnRUb0hhc2goaWNvbkhhc2gpfWAsXG4gICAgICAgIG9wdGlvbnM/LnNpemUgPz8gMTI4LFxuICAgICAgICBvcHRpb25zPy5mb3JtYXQsXG4gICAgICApXG4gICAgOiB1bmRlZmluZWRcbn1cblxuLyoqXG4gKiBCdWlsZHMgdGhlIFVSTCB0byBhIHJvbGUgaWNvbiBzdG9yZWQgaW4gdGhlIERpc2NvcmQgQ0ROLlxuICpcbiAqIEBwYXJhbSByb2xlSWQgLSBUaGUgSUQgb2YgdGhlIHJvbGUgdG8gZ2V0IHRoZSBpY29uIG9mXG4gKiBAcGFyYW0gaWNvbkhhc2ggLSBUaGUgaGFzaCBvZiB0aGUgcm9sZSBpY29uLlxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIGJ1aWxkaW5nIG9mIHRoZSBVUkwuXG4gKiBAcmV0dXJucyBUaGUgbGluayB0byB0aGUgcmVzb3VyY2Ugb3IgYHVuZGVmaW5lZGAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByb2xlSWNvblVybChcbiAgcm9sZUlkOiBCaWdTdHJpbmcsXG4gIGljb25IYXNoOiBCaWdTdHJpbmcgfCB1bmRlZmluZWQsXG4gIG9wdGlvbnM/OiB7XG4gICAgc2l6ZT86IEltYWdlU2l6ZVxuICAgIGZvcm1hdD86IEltYWdlRm9ybWF0XG4gIH0sXG4pOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICByZXR1cm4gaWNvbkhhc2hcbiAgICA/IGZvcm1hdEltYWdlVXJsKFxuICAgICAgICBgaHR0cHM6Ly9jZG4uZGlzY29yZGFwcC5jb20vcm9sZS1pY29ucy8ke3JvbGVJZH0vJHt0eXBlb2YgaWNvbkhhc2ggPT09ICdzdHJpbmcnID8gaWNvbkhhc2ggOiBpY29uQmlnaW50VG9IYXNoKGljb25IYXNoKX1gLFxuICAgICAgICBvcHRpb25zPy5zaXplID8/IDEyOCxcbiAgICAgICAgb3B0aW9ucz8uZm9ybWF0LFxuICAgICAgKVxuICAgIDogdW5kZWZpbmVkXG59XG4iXSwibmFtZXMiOlsiYXBwbGljYXRpb25Bc3NldFVybCIsImFwcGxpY2F0aW9uQ292ZXJVcmwiLCJhcHBsaWNhdGlvbkljb25VcmwiLCJhdmF0YXJEZWNvcmF0aW9uVXJsIiwiYXZhdGFyVXJsIiwiYmFubmVyVXJsIiwiZW1vamlVcmwiLCJmb3JtYXRJbWFnZVVybCIsImdldFdpZGdldEltYWdlVXJsIiwiZ3VpbGRCYW5uZXJVcmwiLCJndWlsZERpc2NvdmVyeVNwbGFzaFVybCIsImd1aWxkSWNvblVybCIsImd1aWxkU2NoZWR1bGVkRXZlbnRDb3ZlclVybCIsImd1aWxkU3BsYXNoVXJsIiwibWVtYmVyQXZhdGFyVXJsIiwibWVtYmVyQmFubmVyVXJsIiwicm9sZUljb25VcmwiLCJzdGlja2VyUGFja0Jhbm5lclVybCIsInN0aWNrZXJVcmwiLCJ0ZWFtSWNvblVybCIsInVybCIsInNpemUiLCJmb3JtYXQiLCJpbmNsdWRlcyIsImVtb2ppSWQiLCJhbmltYXRlZCIsInVzZXJJZCIsImRpc2NyaW1pbmF0b3IiLCJvcHRpb25zIiwiYXZhdGFyIiwiaWNvbkJpZ2ludFRvSGFzaCIsIkJpZ0ludCIsIk51bWJlciIsImF2YXRhckRlY29yYXRpb24iLCJiYW5uZXIiLCJ1bmRlZmluZWQiLCJndWlsZElkIiwiaW1hZ2VIYXNoIiwiZXZlbnRJZCIsImNvdmVyIiwic3R5bGUiLCJhcHBsaWNhdGlvbklkIiwiaWNvbkhhc2giLCJjb3Zlckhhc2giLCJhc3NldElkIiwiYmFubmVyQXNzZXRJZCIsInN0aWNrZXJJZCIsInR5cGUiLCJTdGlja2VyRm9ybWF0VHlwZXMiLCJHaWYiLCJ0ZWFtSWQiLCJyb2xlSWQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0lBeVVnQkEsbUJBQW1CO2VBQW5CQTs7SUF6QkFDLG1CQUFtQjtlQUFuQkE7O0lBekJBQyxrQkFBa0I7ZUFBbEJBOztJQTFPQUMsbUJBQW1CO2VBQW5CQTs7SUFsQkFDLFNBQVM7ZUFBVEE7O0lBK0JBQyxTQUFTO2VBQVRB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
|
|
142
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbWFnZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBCaWdTdHJpbmcsIHR5cGUgR2V0R3VpbGRXaWRnZXRJbWFnZVF1ZXJ5LCB0eXBlIEltYWdlRm9ybWF0LCB0eXBlIEltYWdlU2l6ZSwgU3RpY2tlckZvcm1hdFR5cGVzIH0gZnJvbSAnQGRpc2NvcmRlbm8vdHlwZXMnXG5pbXBvcnQgeyBpY29uQmlnaW50VG9IYXNoIH0gZnJvbSAnLi9oYXNoLmpzJ1xuXG4vKiogSGVscCBmb3JtYXQgYW4gaW1hZ2UgdXJsLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdEltYWdlVXJsKHVybDogc3RyaW5nLCBzaXplOiBJbWFnZVNpemUgPSAxMjgsIGZvcm1hdD86IEltYWdlRm9ybWF0KTogc3RyaW5nIHtcbiAgcmV0dXJuIGAke3VybH0uJHtmb3JtYXQgPz8gKHVybC5pbmNsdWRlcygnL2FfJykgPyAnZ2lmJyA6ICd3ZWJwJyl9P3NpemU9JHtzaXplfWBcbn1cblxuLyoqXG4gKiBHZXQgdGhlIHVybCBmb3IgYW4gZW1vamkuXG4gKlxuICogQHBhcmFtIGVtb2ppSWQgVGhlIGlkIG9mIHRoZSBlbW9qaVxuICogQHBhcmFtIGFuaW1hdGVkIFdoZXRoZXIgb3Igbm90IHRoZSBlbW9qaSBpcyBhbmltYXRlZFxuICogQHBhcmFtIGZvcm1hdCBUaGUgZm9ybWF0IG9mIHRoZSBpbWFnZSwgZGVmYXVsdHMgdG8gcG5nXG4gKiBAcmV0dXJucyBzdHJpbmdcbiAqXG4gKiBAcmVtYXJrc1xuICogVGhlIGFuaW1hdGVkIHBhcmFtZXRlciBpcyB1c2VkIHRvIHNwZWNpZnkgdGhlIGFuaW1hdGVkIHF1ZXJ5IHBhcmFtZXRlciB2YWxpZCBmb3Igd2VicCBpbWFnZXMgb3IgdG8gZm9yY2UgdGhlIGdpZiBpZiB0aGUgZm9ybWF0IGlzIG5vdCBzZXQgdG8gd2VicC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGVtb2ppVXJsKGVtb2ppSWQ6IEJpZ1N0cmluZywgYW5pbWF0ZWQgPSBmYWxzZSwgZm9ybWF0OiBJbWFnZUZvcm1hdCA9ICdwbmcnKTogc3RyaW5nIHtcbiAgcmV0dXJuIGBodHRwczovL2Nkbi5kaXNjb3JkYXBwLmNvbS9lbW9qaXMvJHtlbW9qaUlkfS4ke2FuaW1hdGVkID8gKGZvcm1hdCA9PT0gJ3dlYnAnID8gJ3dlYnAnIDogJ2dpZicpIDogZm9ybWF0fSR7YW5pbWF0ZWQgJiYgZm9ybWF0ID09PSAnd2VicCcgPyAnP2FuaW1hdGVkPXRydWUnIDogJyd9YFxufVxuXG4vKipcbiAqIEJ1aWxkcyBhIFVSTCB0byBhIHVzZXIncyBhdmF0YXIgc3RvcmVkIGluIHRoZSBEaXNjb3JkIENETi5cbiAqXG4gKiBAcGFyYW0gdXNlcklkIC0gVGhlIElEIG9mIHRoZSB1c2VyIHRvIGdldCB0aGUgYXZhdGFyIG9mLlxuICogQHBhcmFtIGRpc2NyaW1pbmF0b3IgLSBUaGUgdXNlcidzIGRpc2NyaW1pbmF0b3IuICg0LWRpZ2l0IHRhZyBhZnRlciB0aGUgaGFzaHRhZy4pXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgYnVpbGRpbmcgb2YgdGhlIFVSTC5cbiAqIEByZXR1cm5zIFRoZSBsaW5rIHRvIHRoZSByZXNvdXJjZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGF2YXRhclVybChcbiAgdXNlcklkOiBCaWdTdHJpbmcsXG4gIGRpc2NyaW1pbmF0b3I6IHN0cmluZyxcbiAgb3B0aW9ucz86IHtcbiAgICBhdmF0YXI6IEJpZ1N0cmluZyB8IHVuZGVmaW5lZFxuICAgIHNpemU/OiBJbWFnZVNpemVcbiAgICBmb3JtYXQ/OiBJbWFnZUZvcm1hdFxuICB9LFxuKTogc3RyaW5nIHtcbiAgcmV0dXJuIG9wdGlvbnM/LmF2YXRhclxuICAgID8gZm9ybWF0SW1hZ2VVcmwoXG4gICAgICAgIGBodHRwczovL2Nkbi5kaXNjb3JkYXBwLmNvbS9hdmF0YXJzLyR7dXNlcklkfS8ke3R5cGVvZiBvcHRpb25zLmF2YXRhciA9PT0gJ3N0cmluZycgPyBvcHRpb25zLmF2YXRhciA6IGljb25CaWdpbnRUb0hhc2gob3B0aW9ucy5hdmF0YXIpfWAsXG4gICAgICAgIG9wdGlvbnM/LnNpemUgPz8gMTI4LFxuICAgICAgICBvcHRpb25zPy5mb3JtYXQsXG4gICAgICApXG4gICAgOiBgaHR0cHM6Ly9jZG4uZGlzY29yZGFwcC5jb20vZW1iZWQvYXZhdGFycy8ke2Rpc2NyaW1pbmF0b3IgPT09ICcwJyA/IChCaWdJbnQodXNlcklkKSA+PiBCaWdJbnQoMjIpKSAlIEJpZ0ludCg2KSA6IE51bWJlcihkaXNjcmltaW5hdG9yKSAlIDV9LnBuZ2Bcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGF2YXRhckRlY29yYXRpb25VcmwoYXZhdGFyRGVjb3JhdGlvbjogQmlnU3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIGBodHRwczovL2Nkbi5kaXNjb3JkYXBwLmNvbS9hdmF0YXItZGVjb3JhdGlvbi1wcmVzZXRzLyR7XG4gICAgdHlwZW9mIGF2YXRhckRlY29yYXRpb24gPT09ICdzdHJpbmcnID8gYXZhdGFyRGVjb3JhdGlvbiA6IGljb25CaWdpbnRUb0hhc2goYXZhdGFyRGVjb3JhdGlvbilcbiAgfS5wbmdgXG59XG5cbi8qKlxuICogQnVpbGRzIGEgVVJMIHRvIGEgdXNlcidzIGJhbm5lciBzdG9yZWQgaW4gdGhlIERpc2NvcmQgQ0ROLlxuICpcbiAqIEBwYXJhbSB1c2VySWQgLSBUaGUgSUQgb2YgdGhlIHVzZXIgdG8gZ2V0IHRoZSBiYW5uZXIgb2YuXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgYnVpbGRpbmcgb2YgdGhlIFVSTC5cbiAqIEByZXR1cm5zIFRoZSBsaW5rIHRvIHRoZSByZXNvdXJjZSBvciBgdW5kZWZpbmVkYCBpZiBubyBiYW5uZXIgaGFzIG5vdCBiZWVuIHNldC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJhbm5lclVybChcbiAgdXNlcklkOiBCaWdTdHJpbmcsXG4gIG9wdGlvbnM/OiB7XG4gICAgYmFubmVyPzogQmlnU3RyaW5nXG4gICAgc2l6ZT86IEltYWdlU2l6ZVxuICAgIGZvcm1hdD86IEltYWdlRm9ybWF0XG4gIH0sXG4pOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICByZXR1cm4gb3B0aW9ucz8uYmFubmVyXG4gICAgPyBmb3JtYXRJbWFnZVVybChcbiAgICAgICAgYGh0dHBzOi8vY2RuLmRpc2NvcmRhcHAuY29tL2Jhbm5lcnMvJHt1c2VySWR9LyR7dHlwZW9mIG9wdGlvbnMuYmFubmVyID09PSAnc3RyaW5nJyA/IG9wdGlvbnMuYmFubmVyIDogaWNvbkJpZ2ludFRvSGFzaChvcHRpb25zLmJhbm5lcil9YCxcbiAgICAgICAgb3B0aW9ucz8uc2l6ZSA/PyAxMjgsXG4gICAgICAgIG9wdGlvbnM/LmZvcm1hdCxcbiAgICAgIClcbiAgICA6IHVuZGVmaW5lZFxufVxuXG4vKipcbiAqIEJ1aWxkcyBhIFVSTCB0byB0aGUgZ3VpbGQgYmFubmVyIHN0b3JlZCBpbiB0aGUgRGlzY29yZCBDRE4uXG4gKlxuICogQHBhcmFtIGd1aWxkSWQgLSBUaGUgSUQgb2YgdGhlIGd1aWxkIHRvIGdldCB0aGUgbGluayB0byB0aGUgYmFubmVyIGZvci5cbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBidWlsZGluZyBvZiB0aGUgVVJMLlxuICogQHJldHVybnMgVGhlIGxpbmsgdG8gdGhlIHJlc291cmNlIG9yIGB1bmRlZmluZWRgIGlmIG5vIGJhbm5lciBoYXMgYmVlbiBzZXQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBndWlsZEJhbm5lclVybChcbiAgZ3VpbGRJZDogQmlnU3RyaW5nLFxuICBvcHRpb25zOiB7XG4gICAgYmFubmVyPzogQmlnU3RyaW5nXG4gICAgc2l6ZT86IEltYWdlU2l6ZVxuICAgIGZvcm1hdD86IEltYWdlRm9ybWF0XG4gIH0sXG4pOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICByZXR1cm4gb3B0aW9ucy5iYW5uZXJcbiAgICA/IGZvcm1hdEltYWdlVXJsKFxuICAgICAgICBgaHR0cHM6Ly9jZG4uZGlzY29yZGFwcC5jb20vYmFubmVycy8ke2d1aWxkSWR9LyR7dHlwZW9mIG9wdGlvbnMuYmFubmVyID09PSAnc3RyaW5nJyA/IG9wdGlvbnMuYmFubmVyIDogaWNvbkJpZ2ludFRvSGFzaChvcHRpb25zLmJhbm5lcil9YCxcbiAgICAgICAgb3B0aW9ucy5zaXplID8/IDEyOCxcbiAgICAgICAgb3B0aW9ucy5mb3JtYXQsXG4gICAgICApXG4gICAgOiB1bmRlZmluZWRcbn1cblxuLyoqXG4gKiBCdWlsZHMgYSBVUkwgdG8gdGhlIGd1aWxkIGljb24gc3RvcmVkIGluIHRoZSBEaXNjb3JkIENETi5cbiAqXG4gKiBAcGFyYW0gZ3VpbGRJZCAtIFRoZSBJRCBvZiB0aGUgZ3VpbGQgdG8gZ2V0IHRoZSBsaW5rIHRvIHRoZSBiYW5uZXIgZm9yLlxuICogQHBhcmFtIGltYWdlSGFzaCAtIFRoZSBoYXNoIGlkZW50aWZ5aW5nIHRoZSBldmVudCBjb3ZlciBpbWFnZS5cbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBidWlsZGluZyBvZiB0aGUgVVJMLlxuICogQHJldHVybnMgVGhlIGxpbmsgdG8gdGhlIHJlc291cmNlIG9yIGB1bmRlZmluZWRgIGlmIG5vIGJhbm5lciBoYXMgYmVlbiBzZXQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBndWlsZEljb25VcmwoXG4gIGd1aWxkSWQ6IEJpZ1N0cmluZyxcbiAgaW1hZ2VIYXNoOiBCaWdTdHJpbmcgfCB1bmRlZmluZWQsXG4gIG9wdGlvbnM/OiB7XG4gICAgc2l6ZT86IEltYWdlU2l6ZVxuICAgIGZvcm1hdD86IEltYWdlRm9ybWF0XG4gIH0sXG4pOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICByZXR1cm4gaW1hZ2VIYXNoXG4gICAgPyBmb3JtYXRJbWFnZVVybChcbiAgICAgICAgYGh0dHBzOi8vY2RuLmRpc2NvcmRhcHAuY29tL2ljb25zLyR7Z3VpbGRJZH0vJHt0eXBlb2YgaW1hZ2VIYXNoID09PSAnc3RyaW5nJyA/IGltYWdlSGFzaCA6IGljb25CaWdpbnRUb0hhc2goaW1hZ2VIYXNoKX1gLFxuICAgICAgICBvcHRpb25zPy5zaXplID8/IDEyOCxcbiAgICAgICAgb3B0aW9ucz8uZm9ybWF0LFxuICAgICAgKVxuICAgIDogdW5kZWZpbmVkXG59XG5cbi8qKlxuICogQnVpbGRzIHRoZSBVUkwgdG8gYSBndWlsZCBzcGxhc2ggc3RvcmVkIGluIHRoZSBEaXNjb3JkIENETi5cbiAqXG4gKiBAcGFyYW0gZ3VpbGRJZCAtIFRoZSBJRCBvZiB0aGUgZ3VpbGQgdG8gZ2V0IHRoZSBzcGxhc2ggb2YuXG4gKiBAcGFyYW0gaW1hZ2VIYXNoIC0gVGhlIGhhc2ggaWRlbnRpZnlpbmcgdGhlIHNwbGFzaCBpbWFnZS5cbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBidWlsZGluZyBvZiB0aGUgVVJMLlxuICogQHJldHVybnMgVGhlIGxpbmsgdG8gdGhlIHJlc291cmNlIG9yIGB1bmRlZmluZWRgIGlmIHRoZSBndWlsZCBkb2VzIG5vdCBoYXZlIGEgc3BsYXNoIGltYWdlIHNldC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGd1aWxkU3BsYXNoVXJsKFxuICBndWlsZElkOiBCaWdTdHJpbmcsXG4gIGltYWdlSGFzaDogQmlnU3RyaW5nIHwgdW5kZWZpbmVkLFxuICBvcHRpb25zPzoge1xuICAgIHNpemU/OiBJbWFnZVNpemVcbiAgICBmb3JtYXQ/OiBJbWFnZUZvcm1hdFxuICB9LFxuKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIGltYWdlSGFzaFxuICAgID8gZm9ybWF0SW1hZ2VVcmwoXG4gICAgICAgIGBodHRwczovL2Nkbi5kaXNjb3JkYXBwLmNvbS9zcGxhc2hlcy8ke2d1aWxkSWR9LyR7dHlwZW9mIGltYWdlSGFzaCA9PT0gJ3N0cmluZycgPyBpbWFnZUhhc2ggOiBpY29uQmlnaW50VG9IYXNoKGltYWdlSGFzaCl9YCxcbiAgICAgICAgb3B0aW9ucz8uc2l6ZSA/PyAxMjgsXG4gICAgICAgIG9wdGlvbnM/LmZvcm1hdCxcbiAgICAgIClcbiAgICA6IHVuZGVmaW5lZFxufVxuXG4vKipcbiAqIEJ1aWxkcyB0aGUgVVJMIHRvIGEgZ3VpbGQgZGlzY292ZXJ5IHNwbGFzaCBzdG9yZWQgaW4gdGhlIERpc2NvcmQgQ0ROLlxuICpcbiAqIEBwYXJhbSBndWlsZElkIC0gVGhlIElEIG9mIHRoZSBndWlsZCB0byBnZXQgdGhlIHNwbGFzaCBvZi5cbiAqIEBwYXJhbSBpbWFnZUhhc2ggLSBUaGUgaGFzaCBpZGVudGlmeWluZyB0aGUgZGlzY292ZXJ5IHNwbGFzaCBpbWFnZS5cbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBidWlsZGluZyBvZiB0aGUgVVJMLlxuICogQHJldHVybnMgVGhlIGxpbmsgdG8gdGhlIHJlc291cmNlIG9yIGB1bmRlZmluZWRgIGlmIHRoZSBndWlsZCBkb2VzIG5vdCBoYXZlIGEgc3BsYXNoIGltYWdlIHNldC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGd1aWxkRGlzY292ZXJ5U3BsYXNoVXJsKFxuICBndWlsZElkOiBCaWdTdHJpbmcsXG4gIGltYWdlSGFzaDogQmlnU3RyaW5nIHwgdW5kZWZpbmVkLFxuICBvcHRpb25zPzoge1xuICAgIHNpemU/OiBJbWFnZVNpemVcbiAgICBmb3JtYXQ/OiBJbWFnZUZvcm1hdFxuICB9LFxuKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIGltYWdlSGFzaFxuICAgID8gZm9ybWF0SW1hZ2VVcmwoXG4gICAgICAgIGBodHRwczovL2Nkbi5kaXNjb3JkYXBwLmNvbS9kaXNjb3Zlcnktc3BsYXNoZXMvJHtndWlsZElkfS8ke3R5cGVvZiBpbWFnZUhhc2ggPT09ICdzdHJpbmcnID8gaW1hZ2VIYXNoIDogaWNvbkJpZ2ludFRvSGFzaChpbWFnZUhhc2gpfWAsXG4gICAgICAgIG9wdGlvbnM/LnNpemUgPz8gMTI4LFxuICAgICAgICBvcHRpb25zPy5mb3JtYXQsXG4gICAgICApXG4gICAgOiB1bmRlZmluZWRcbn1cblxuLyoqXG4gKiBCdWlsZHMgdGhlIFVSTCB0byBhIGd1aWxkIHNjaGVkdWxlZCBldmVudCBjb3ZlciBzdG9yZWQgaW4gdGhlIERpc2NvcmQgQ0ROLlxuICpcbiAqIEBwYXJhbSBldmVudElkIC0gVGhlIElEIG9mIHRoZSBzY2hlZHVsZWQgZXZlbnQgdG8gZ2V0IHRoZSBjb3ZlciBvZi5cbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBidWlsZGluZyBvZiB0aGUgVVJMLlxuICogQHJldHVybnMgVGhlIGxpbmsgdG8gdGhlIHJlc291cmNlIG9yIGB1bmRlZmluZWRgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ3VpbGRTY2hlZHVsZWRFdmVudENvdmVyVXJsKFxuICBldmVudElkOiBCaWdTdHJpbmcsXG4gIG9wdGlvbnM6IHtcbiAgICBjb3Zlcj86IEJpZ1N0cmluZ1xuICAgIHNpemU/OiBJbWFnZVNpemVcbiAgICBmb3JtYXQ/OiBJbWFnZUZvcm1hdFxuICB9LFxuKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIG9wdGlvbnMuY292ZXJcbiAgICA/IGZvcm1hdEltYWdlVXJsKFxuICAgICAgICBgaHR0cHM6Ly9jZG4uZGlzY29yZGFwcC5jb20vZ3VpbGQtZXZlbnRzLyR7ZXZlbnRJZH0vJHt0eXBlb2Ygb3B0aW9ucy5jb3ZlciA9PT0gJ3N0cmluZycgPyBvcHRpb25zLmNvdmVyIDogaWNvbkJpZ2ludFRvSGFzaChvcHRpb25zLmNvdmVyKX1gLFxuICAgICAgICBvcHRpb25zLnNpemUgPz8gMTI4LFxuICAgICAgICBvcHRpb25zLmZvcm1hdCxcbiAgICAgIClcbiAgICA6IHVuZGVmaW5lZFxufVxuXG4vKipcbiAqIEJ1aWxkcyBhIFVSTCB0byB0aGUgZ3VpbGQgd2lkZ2V0IGltYWdlIHN0b3JlZCBpbiB0aGUgRGlzY29yZCBDRE4uXG4gKlxuICogQHBhcmFtIGd1aWxkSWQgLSBUaGUgSUQgb2YgdGhlIGd1aWxkIHRvIGdldCB0aGUgbGluayB0byB0aGUgd2lkZ2V0IGltYWdlIGZvci5cbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBidWlsZGluZyBvZiB0aGUgVVJMLlxuICogQHJldHVybnMgVGhlIGxpbmsgdG8gdGhlIHJlc291cmNlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0V2lkZ2V0SW1hZ2VVcmwoZ3VpbGRJZDogQmlnU3RyaW5nLCBvcHRpb25zPzogR2V0R3VpbGRXaWRnZXRJbWFnZVF1ZXJ5KTogc3RyaW5nIHtcbiAgbGV0IHVybCA9IGBodHRwczovL2Rpc2NvcmRhcHAuY29tL2FwaS9ndWlsZHMvJHtndWlsZElkfS93aWRnZXQucG5nYFxuXG4gIGlmIChvcHRpb25zPy5zdHlsZSkge1xuICAgIHVybCArPSBgP3N0eWxlPSR7b3B0aW9ucy5zdHlsZX1gXG4gIH1cblxuICByZXR1cm4gdXJsXG59XG5cbi8qKlxuICogQnVpbGRzIGEgVVJMIHRvIGEgbWVtYmVyJ3MgYXZhdGFyIHN0b3JlZCBpbiB0aGUgRGlzY29yZCBDRE4uXG4gKlxuICogQHBhcmFtIGd1aWxkSWQgLSBUaGUgSUQgb2YgdGhlIGd1aWxkIHdoZXJlIHRoZSBtZW1iZXIgaXNcbiAqIEBwYXJhbSB1c2VySWQgLSBUaGUgSUQgb2YgdGhlIHVzZXIgdG8gZ2V0IHRoZSBhdmF0YXIgb2YuXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgYnVpbGRpbmcgb2YgdGhlIFVSTC5cbiAqIEByZXR1cm5zIFRoZSBsaW5rIHRvIHRoZSByZXNvdXJjZSBvciBgdW5kZWZpbmVkYCBpZiBubyBiYW5uZXIgaGFzIGJlZW4gc2V0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gbWVtYmVyQXZhdGFyVXJsKFxuICBndWlsZElkOiBCaWdTdHJpbmcsXG4gIHVzZXJJZDogQmlnU3RyaW5nLFxuICBvcHRpb25zPzoge1xuICAgIGF2YXRhcj86IEJpZ1N0cmluZ1xuICAgIHNpemU/OiBJbWFnZVNpemVcbiAgICBmb3JtYXQ/OiBJbWFnZUZvcm1hdFxuICB9LFxuKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIG9wdGlvbnM/LmF2YXRhclxuICAgID8gZm9ybWF0SW1hZ2VVcmwoXG4gICAgICAgIGBodHRwczovL2Nkbi5kaXNjb3JkYXBwLmNvbS9ndWlsZHMvJHtndWlsZElkfS91c2Vycy8ke3VzZXJJZH0vYXZhdGFycy8ke1xuICAgICAgICAgIHR5cGVvZiBvcHRpb25zLmF2YXRhciA9PT0gJ3N0cmluZycgPyBvcHRpb25zLmF2YXRhciA6IGljb25CaWdpbnRUb0hhc2gob3B0aW9ucy5hdmF0YXIpXG4gICAgICAgIH1gLFxuICAgICAgICBvcHRpb25zPy5zaXplID8/IDEyOCxcbiAgICAgICAgb3B0aW9ucz8uZm9ybWF0LFxuICAgICAgKVxuICAgIDogdW5kZWZpbmVkXG59XG5cbi8qKlxuICogQnVpbGRzIGEgVVJMIHRvIGEgbWVtYmVyJ3MgYmFubmVyIHN0b3JlZCBpbiB0aGUgRGlzY29yZCBDRE4uXG4gKlxuICogQHBhcmFtIGd1aWxkSWQgLSBUaGUgSUQgb2YgdGhlIGd1aWxkIHdoZXJlIHRoZSBtZW1iZXIgaXNcbiAqIEBwYXJhbSB1c2VySWQgLSBUaGUgSUQgb2YgdGhlIHVzZXIgdG8gZ2V0IHRoZSBiYW5uZXIgb2YuXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgYnVpbGRpbmcgb2YgdGhlIFVSTC5cbiAqIEByZXR1cm5zIFRoZSBsaW5rIHRvIHRoZSByZXNvdXJjZSBvciBgdW5kZWZpbmVkYCBpZiBubyBiYW5uZXIgaGFzIGJlZW4gc2V0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gbWVtYmVyQmFubmVyVXJsKFxuICBndWlsZElkOiBCaWdTdHJpbmcsXG4gIHVzZXJJZDogQmlnU3RyaW5nLFxuICBvcHRpb25zPzoge1xuICAgIGJhbm5lcj86IEJpZ1N0cmluZ1xuICAgIHNpemU/OiBJbWFnZVNpemVcbiAgICBmb3JtYXQ/OiBJbWFnZUZvcm1hdFxuICB9LFxuKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIG9wdGlvbnM/LmJhbm5lclxuICAgID8gZm9ybWF0SW1hZ2VVcmwoXG4gICAgICAgIGBodHRwczovL2Nkbi5kaXNjb3JkYXBwLmNvbS9ndWlsZHMvJHtndWlsZElkfS91c2Vycy8ke3VzZXJJZH0vYmFubmVycy8ke1xuICAgICAgICAgIHR5cGVvZiBvcHRpb25zLmJhbm5lciA9PT0gJ3N0cmluZycgPyBvcHRpb25zLmJhbm5lciA6IGljb25CaWdpbnRUb0hhc2gob3B0aW9ucy5iYW5uZXIpXG4gICAgICAgIH1gLFxuICAgICAgICBvcHRpb25zPy5zaXplID8/IDEyOCxcbiAgICAgICAgb3B0aW9ucz8uZm9ybWF0LFxuICAgICAgKVxuICAgIDogdW5kZWZpbmVkXG59XG5cbi8qKlxuICogQnVpbGRzIHRoZSBVUkwgdG8gYW4gYXBwbGljYXRpb24gaWNvbiBzdG9yZWQgaW4gdGhlIERpc2NvcmQgQ0ROLlxuICpcbiAqIEBwYXJhbSBhcHBsaWNhdGlvbklkIC0gVGhlIElEIG9mIHRoZSBhcHBsaWNhdGlvbiB0byBnZXQgdGhlIGljb24gb2YuXG4gKiBAcGFyYW0gaWNvbkhhc2ggLSBUaGUgaGFzaCBpZGVudGlmeWluZyB0aGUgYXBwbGljYXRpb24gaWNvbi5cbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBidWlsZGluZyBvZiB0aGUgVVJMLlxuICogQHJldHVybnMgVGhlIGxpbmsgdG8gdGhlIHJlc291cmNlIG9yIGB1bmRlZmluZWRgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhcHBsaWNhdGlvbkljb25VcmwoXG4gIGFwcGxpY2F0aW9uSWQ6IEJpZ1N0cmluZyxcbiAgaWNvbkhhc2g6IEJpZ1N0cmluZyB8IHVuZGVmaW5lZCxcbiAgb3B0aW9ucz86IHtcbiAgICBzaXplPzogSW1hZ2VTaXplXG4gICAgZm9ybWF0PzogSW1hZ2VGb3JtYXRcbiAgfSxcbik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBpY29uSGFzaFxuICAgID8gZm9ybWF0SW1hZ2VVcmwoXG4gICAgICAgIGBodHRwczovL2Nkbi5kaXNjb3JkYXBwLmNvbS9hcHAtaWNvbnMvJHthcHBsaWNhdGlvbklkfS8ke3R5cGVvZiBpY29uSGFzaCA9PT0gJ3N0cmluZycgPyBpY29uSGFzaCA6IGljb25CaWdpbnRUb0hhc2goaWNvbkhhc2gpfWAsXG4gICAgICAgIG9wdGlvbnM/LnNpemUgPz8gMTI4LFxuICAgICAgICBvcHRpb25zPy5mb3JtYXQsXG4gICAgICApXG4gICAgOiB1bmRlZmluZWRcbn1cblxuLyoqXG4gKiBCdWlsZHMgdGhlIFVSTCB0byBhbiBhcHBsaWNhdGlvbiBjb3ZlciBzdG9yZWQgaW4gdGhlIERpc2NvcmQgQ0ROLlxuICpcbiAqIEBwYXJhbSBhcHBsaWNhdGlvbklkIC0gVGhlIElEIG9mIHRoZSBhcHBsaWNhdGlvbiB0byBnZXQgdGhlIGNvdmVyIG9mLlxuICogQHBhcmFtIGNvdmVySGFzaCAtIFRoZSBoYXNoIGlkZW50aWZ5aW5nIHRoZSBhcHBsaWNhdGlvbiBjb3Zlci5cbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBidWlsZGluZyBvZiB0aGUgVVJMLlxuICogQHJldHVybnMgVGhlIGxpbmsgdG8gdGhlIHJlc291cmNlIG9yIGB1bmRlZmluZWRgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYXBwbGljYXRpb25Db3ZlclVybChcbiAgYXBwbGljYXRpb25JZDogQmlnU3RyaW5nLFxuICBjb3Zlckhhc2g6IEJpZ1N0cmluZyB8IHVuZGVmaW5lZCxcbiAgb3B0aW9ucz86IHtcbiAgICBzaXplPzogSW1hZ2VTaXplXG4gICAgZm9ybWF0PzogSW1hZ2VGb3JtYXRcbiAgfSxcbik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBjb3Zlckhhc2hcbiAgICA/IGZvcm1hdEltYWdlVXJsKFxuICAgICAgICBgaHR0cHM6Ly9jZG4uZGlzY29yZGFwcC5jb20vYXBwLWljb25zLyR7YXBwbGljYXRpb25JZH0vJHt0eXBlb2YgY292ZXJIYXNoID09PSAnc3RyaW5nJyA/IGNvdmVySGFzaCA6IGljb25CaWdpbnRUb0hhc2goY292ZXJIYXNoKX1gLFxuICAgICAgICBvcHRpb25zPy5zaXplID8/IDEyOCxcbiAgICAgICAgb3B0aW9ucz8uZm9ybWF0LFxuICAgICAgKVxuICAgIDogdW5kZWZpbmVkXG59XG5cbi8qKlxuICogQnVpbGRzIHRoZSBVUkwgdG8gYW4gYXBwbGljYXRpb24gYXNzZXQgc3RvcmVkIGluIHRoZSBEaXNjb3JkIENETi5cbiAqXG4gKiBAcGFyYW0gYXBwbGljYXRpb25JZCAtIFRoZSBJRCBvZiB0aGUgYXBwbGljYXRpb24gdG8gZ2V0IHRoZSBhc3NldCBvZi5cbiAqIEBwYXJhbSBhc3NldElkIC0gVGhlIGlkIGlkZW50aWZ5aW5nIHRoZSBhcHBsaWNhdGlvbiBhc3NldC5cbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBidWlsZGluZyBvZiB0aGUgVVJMLlxuICogQHJldHVybnMgVGhlIGxpbmsgdG8gdGhlIHJlc291cmNlIG9yIGB1bmRlZmluZWRgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYXBwbGljYXRpb25Bc3NldFVybChcbiAgYXBwbGljYXRpb25JZDogQmlnU3RyaW5nLFxuICBhc3NldElkOiBCaWdTdHJpbmcgfCB1bmRlZmluZWQsXG4gIG9wdGlvbnM/OiB7XG4gICAgc2l6ZT86IEltYWdlU2l6ZVxuICAgIGZvcm1hdD86IEltYWdlRm9ybWF0XG4gIH0sXG4pOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICByZXR1cm4gYXNzZXRJZFxuICAgID8gZm9ybWF0SW1hZ2VVcmwoXG4gICAgICAgIGBodHRwczovL2Nkbi5kaXNjb3JkYXBwLmNvbS9hcHAtaWNvbnMvJHthcHBsaWNhdGlvbklkfS8ke3R5cGVvZiBhc3NldElkID09PSAnc3RyaW5nJyA/IGFzc2V0SWQgOiBpY29uQmlnaW50VG9IYXNoKGFzc2V0SWQpfWAsXG4gICAgICAgIG9wdGlvbnM/LnNpemUgPz8gMTI4LFxuICAgICAgICBvcHRpb25zPy5mb3JtYXQsXG4gICAgICApXG4gICAgOiB1bmRlZmluZWRcbn1cblxuLyoqXG4gKiBCdWlsZHMgdGhlIFVSTCB0byBhIHN0aWNrZXIgcGFjayBiYW5uZXIgc3RvcmVkIGluIHRoZSBEaXNjb3JkIENETi5cbiAqXG4gKiBAcGFyYW0gYmFubmVyQXNzZXRJZCAtIFRoZSBJRCBvZiB0aGUgYmFubmVyIGFzc2V0IGZvciB0aGUgc3RpY2tlciBwYWNrLlxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIGJ1aWxkaW5nIG9mIHRoZSBVUkwuXG4gKiBAcmV0dXJucyBUaGUgbGluayB0byB0aGUgcmVzb3VyY2Ugb3IgYHVuZGVmaW5lZGAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzdGlja2VyUGFja0Jhbm5lclVybChcbiAgYmFubmVyQXNzZXRJZDogQmlnU3RyaW5nIHwgdW5kZWZpbmVkLFxuICBvcHRpb25zPzoge1xuICAgIHNpemU/OiBJbWFnZVNpemVcbiAgICBmb3JtYXQ/OiBJbWFnZUZvcm1hdFxuICB9LFxuKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIGJhbm5lckFzc2V0SWRcbiAgICA/IGZvcm1hdEltYWdlVXJsKFxuICAgICAgICBgaHR0cHM6Ly9jZG4uZGlzY29yZGFwcC5jb20vYXBwLWFzc2V0cy83MTA5ODI0MTQzMDE3OTAyMTYvc3RvcmUvJHtcbiAgICAgICAgICB0eXBlb2YgYmFubmVyQXNzZXRJZCA9PT0gJ3N0cmluZycgPyBiYW5uZXJBc3NldElkIDogaWNvbkJpZ2ludFRvSGFzaChiYW5uZXJBc3NldElkKVxuICAgICAgICB9YCxcbiAgICAgICAgb3B0aW9ucz8uc2l6ZSA/PyAxMjgsXG4gICAgICAgIG9wdGlvbnM/LmZvcm1hdCxcbiAgICAgIClcbiAgICA6IHVuZGVmaW5lZFxufVxuXG4vKipcbiAqIEJ1aWxkcyB0aGUgVVJMIHRvIGEgc3RpY2tlciBzdG9yZWQgaW4gdGhlIERpc2NvcmQgQ0ROLlxuICpcbiAqIEBwYXJhbSBzdGlja2VySWQgLSBUaGUgSUQgb2YgdGhlIHN0aWNrZXIgdG8gZ2V0IHRoZSBpY29uIG9mXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgYnVpbGRpbmcgb2YgdGhlIFVSTC5cbiAqIEByZXR1cm5zIFRoZSBsaW5rIHRvIHRoZSByZXNvdXJjZSBvciBgdW5kZWZpbmVkYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN0aWNrZXJVcmwoXG4gIHN0aWNrZXJJZDogQmlnU3RyaW5nIHwgbnVtYmVyLFxuICBvcHRpb25zPzoge1xuICAgIHNpemU/OiBJbWFnZVNpemVcbiAgICBmb3JtYXQ/OiBJbWFnZUZvcm1hdFxuICAgIHR5cGU/OiBTdGlja2VyRm9ybWF0VHlwZXNcbiAgfSxcbik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIGlmICghc3RpY2tlcklkKSByZXR1cm5cblxuICBjb25zdCB1cmwgPVxuICAgIG9wdGlvbnM/LnR5cGUgPT09IFN0aWNrZXJGb3JtYXRUeXBlcy5HaWZcbiAgICAgID8gYGh0dHBzOi8vbWVkaWEuZGlzY29yZGFwcC5uZXQvc3RpY2tlcnMvJHtzdGlja2VySWR9YFxuICAgICAgOiBgaHR0cHM6Ly9jZG4uZGlzY29yZGFwcC5jb20vc3RpY2tlcnMvJHtzdGlja2VySWR9YFxuXG4gIHJldHVybiBmb3JtYXRJbWFnZVVybCh1cmwsIG9wdGlvbnM/LnNpemUgPz8gMTI4LCBvcHRpb25zPy5mb3JtYXQpXG59XG5cbi8qKlxuICogQnVpbGRzIHRoZSBVUkwgdG8gYSB0ZWFtIGljb24gc3RvcmVkIGluIHRoZSBEaXNjb3JkIENETi5cbiAqXG4gKiBAcGFyYW0gdGVhbUlkIC0gVGhlIElEIG9mIHRoZSB0ZWFtIHRvIGdldCB0aGUgaWNvbiBvZlxuICogQHBhcmFtIGljb25IYXNoIC0gVGhlIGhhc2ggb2YgdGhlIHRlYW0gaWNvbi5cbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBidWlsZGluZyBvZiB0aGUgVVJMLlxuICogQHJldHVybnMgVGhlIGxpbmsgdG8gdGhlIHJlc291cmNlIG9yIGB1bmRlZmluZWRgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdGVhbUljb25VcmwoXG4gIHRlYW1JZDogQmlnU3RyaW5nLFxuICBpY29uSGFzaDogQmlnU3RyaW5nIHwgdW5kZWZpbmVkLFxuICBvcHRpb25zPzoge1xuICAgIHNpemU/OiBJbWFnZVNpemVcbiAgICBmb3JtYXQ/OiBJbWFnZUZvcm1hdFxuICB9LFxuKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIGljb25IYXNoXG4gICAgPyBmb3JtYXRJbWFnZVVybChcbiAgICAgICAgYGh0dHBzOi8vY2RuLmRpc2NvcmRhcHAuY29tL3RlYW0taWNvbnMvJHt0ZWFtSWR9L3N0b3JlLyR7dHlwZW9mIGljb25IYXNoID09PSAnc3RyaW5nJyA/IGljb25IYXNoIDogaWNvbkJpZ2ludFRvSGFzaChpY29uSGFzaCl9YCxcbiAgICAgICAgb3B0aW9ucz8uc2l6ZSA/PyAxMjgsXG4gICAgICAgIG9wdGlvbnM/LmZvcm1hdCxcbiAgICAgIClcbiAgICA6IHVuZGVmaW5lZFxufVxuXG4vKipcbiAqIEJ1aWxkcyB0aGUgVVJMIHRvIGEgcm9sZSBpY29uIHN0b3JlZCBpbiB0aGUgRGlzY29yZCBDRE4uXG4gKlxuICogQHBhcmFtIHJvbGVJZCAtIFRoZSBJRCBvZiB0aGUgcm9sZSB0byBnZXQgdGhlIGljb24gb2ZcbiAqIEBwYXJhbSBpY29uSGFzaCAtIFRoZSBoYXNoIG9mIHRoZSByb2xlIGljb24uXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgYnVpbGRpbmcgb2YgdGhlIFVSTC5cbiAqIEByZXR1cm5zIFRoZSBsaW5rIHRvIHRoZSByZXNvdXJjZSBvciBgdW5kZWZpbmVkYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJvbGVJY29uVXJsKFxuICByb2xlSWQ6IEJpZ1N0cmluZyxcbiAgaWNvbkhhc2g6IEJpZ1N0cmluZyB8IHVuZGVmaW5lZCxcbiAgb3B0aW9ucz86IHtcbiAgICBzaXplPzogSW1hZ2VTaXplXG4gICAgZm9ybWF0PzogSW1hZ2VGb3JtYXRcbiAgfSxcbik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBpY29uSGFzaFxuICAgID8gZm9ybWF0SW1hZ2VVcmwoXG4gICAgICAgIGBodHRwczovL2Nkbi5kaXNjb3JkYXBwLmNvbS9yb2xlLWljb25zLyR7cm9sZUlkfS8ke3R5cGVvZiBpY29uSGFzaCA9PT0gJ3N0cmluZycgPyBpY29uSGFzaCA6IGljb25CaWdpbnRUb0hhc2goaWNvbkhhc2gpfWAsXG4gICAgICAgIG9wdGlvbnM/LnNpemUgPz8gMTI4LFxuICAgICAgICBvcHRpb25zPy5mb3JtYXQsXG4gICAgICApXG4gICAgOiB1bmRlZmluZWRcbn1cbiJdLCJuYW1lcyI6WyJhcHBsaWNhdGlvbkFzc2V0VXJsIiwiYXBwbGljYXRpb25Db3ZlclVybCIsImFwcGxpY2F0aW9uSWNvblVybCIsImF2YXRhckRlY29yYXRpb25VcmwiLCJhdmF0YXJVcmwiLCJiYW5uZXJVcmwiLCJlbW9qaVVybCIsImZvcm1hdEltYWdlVXJsIiwiZ2V0V2lkZ2V0SW1hZ2VVcmwiLCJndWlsZEJhbm5lclVybCIsImd1aWxkRGlzY292ZXJ5U3BsYXNoVXJsIiwiZ3VpbGRJY29uVXJsIiwiZ3VpbGRTY2hlZHVsZWRFdmVudENvdmVyVXJsIiwiZ3VpbGRTcGxhc2hVcmwiLCJtZW1iZXJBdmF0YXJVcmwiLCJtZW1iZXJCYW5uZXJVcmwiLCJyb2xlSWNvblVybCIsInN0aWNrZXJQYWNrQmFubmVyVXJsIiwic3RpY2tlclVybCIsInRlYW1JY29uVXJsIiwidXJsIiwic2l6ZSIsImZvcm1hdCIsImluY2x1ZGVzIiwiZW1vamlJZCIsImFuaW1hdGVkIiwidXNlcklkIiwiZGlzY3JpbWluYXRvciIsIm9wdGlvbnMiLCJhdmF0YXIiLCJpY29uQmlnaW50VG9IYXNoIiwiQmlnSW50IiwiTnVtYmVyIiwiYXZhdGFyRGVjb3JhdGlvbiIsImJhbm5lciIsInVuZGVmaW5lZCIsImd1aWxkSWQiLCJpbWFnZUhhc2giLCJldmVudElkIiwiY292ZXIiLCJzdHlsZSIsImFwcGxpY2F0aW9uSWQiLCJpY29uSGFzaCIsImNvdmVySGFzaCIsImFzc2V0SWQiLCJiYW5uZXJBc3NldElkIiwic3RpY2tlcklkIiwidHlwZSIsIlN0aWNrZXJGb3JtYXRUeXBlcyIsIkdpZiIsInRlYW1JZCIsInJvbGVJZCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7SUE2VWdCQSxtQkFBbUI7ZUFBbkJBOztJQXpCQUMsbUJBQW1CO2VBQW5CQTs7SUF6QkFDLGtCQUFrQjtlQUFsQkE7O0lBMU9BQyxtQkFBbUI7ZUFBbkJBOztJQWxCQUMsU0FBUztlQUFUQTs7SUErQkFDLFNBQVM7ZUFBVEE7O0lBM0NBQyxRQUFRO2VBQVJBOztJQWZBQyxjQUFjO2VBQWRBOztJQTZNQUMsaUJBQWlCO2VBQWpCQTs7SUEzSEFDLGNBQWM7ZUFBZEE7O0lBMkVBQyx1QkFBdUI7ZUFBdkJBOztJQWxEQUMsWUFBWTtlQUFaQTs7SUEwRUFDLDJCQUEyQjtlQUEzQkE7O0lBakRBQyxjQUFjO2VBQWRBOztJQTJGQUMsZUFBZTtlQUFmQTs7SUE0QkFDLGVBQWU7ZUFBZkE7O0lBa0xBQyxXQUFXO2VBQVhBOztJQTVFQUMsb0JBQW9CO2VBQXBCQTs7SUF5QkFDLFVBQVU7ZUFBVkE7O0lBMEJBQyxXQUFXO2VBQVhBOzs7dUJBeFpvRztzQkFDbkY7QUFHMUIsU0FBU1osZUFBZWEsR0FBVyxFQUFFQyxPQUFrQixHQUFHLEVBQUVDLE1BQW9CO0lBQ3JGLE9BQU8sR0FBR0YsSUFBSSxDQUFDLEVBQUVFLFVBQVdGLENBQUFBLElBQUlHLFFBQVEsQ0FBQyxTQUFTLFFBQVEsTUFBSyxFQUFHLE1BQU0sRUFBRUYsTUFBTTtBQUNsRjtBQWFPLFNBQVNmLFNBQVNrQixPQUFrQixFQUFFQyxXQUFXLEtBQUssRUFBRUgsU0FBc0IsS0FBSztJQUN4RixPQUFPLENBQUMsa0NBQWtDLEVBQUVFLFFBQVEsQ0FBQyxFQUFFQyxXQUFZ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
|
package/dist/esm/images.js
CHANGED
|
@@ -8,9 +8,13 @@ import { iconBigintToHash } from './hash.js';
|
|
|
8
8
|
*
|
|
9
9
|
* @param emojiId The id of the emoji
|
|
10
10
|
* @param animated Whether or not the emoji is animated
|
|
11
|
+
* @param format The format of the image, defaults to png
|
|
11
12
|
* @returns string
|
|
12
|
-
|
|
13
|
-
|
|
13
|
+
*
|
|
14
|
+
* @remarks
|
|
15
|
+
* The animated parameter is used to specify the animated query parameter valid for webp images or to force the gif if the format is not set to webp.
|
|
16
|
+
*/ export function emojiUrl(emojiId, animated = false, format = 'png') {
|
|
17
|
+
return `https://cdn.discordapp.com/emojis/${emojiId}.${animated ? format === 'webp' ? 'webp' : 'gif' : format}${animated && format === 'webp' ? '?animated=true' : ''}`;
|
|
14
18
|
}
|
|
15
19
|
/**
|
|
16
20
|
* Builds a URL to a user's avatar stored in the Discord CDN.
|
|
@@ -186,4 +190,4 @@ export function avatarDecorationUrl(avatarDecoration) {
|
|
|
186
190
|
return iconHash ? formatImageUrl(`https://cdn.discordapp.com/role-icons/${roleId}/${typeof iconHash === 'string' ? iconHash : iconBigintToHash(iconHash)}`, options?.size ?? 128, options?.format) : undefined;
|
|
187
191
|
}
|
|
188
192
|
|
|
189
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbWFnZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBCaWdTdHJpbmcsIHR5cGUgR2V0R3VpbGRXaWRnZXRJbWFnZVF1ZXJ5LCB0eXBlIEltYWdlRm9ybWF0LCB0eXBlIEltYWdlU2l6ZSwgU3RpY2tlckZvcm1hdFR5cGVzIH0gZnJvbSAnQGRpc2NvcmRlbm8vdHlwZXMnXG5pbXBvcnQgeyBpY29uQmlnaW50VG9IYXNoIH0gZnJvbSAnLi9oYXNoLmpzJ1xuXG4vKiogSGVscCBmb3JtYXQgYW4gaW1hZ2UgdXJsLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdEltYWdlVXJsKHVybDogc3RyaW5nLCBzaXplOiBJbWFnZVNpemUgPSAxMjgsIGZvcm1hdD86IEltYWdlRm9ybWF0KTogc3RyaW5nIHtcbiAgcmV0dXJuIGAke3VybH0uJHtmb3JtYXQgPz8gKHVybC5pbmNsdWRlcygnL2FfJykgPyAnZ2lmJyA6ICd3ZWJwJyl9P3NpemU9JHtzaXplfWBcbn1cblxuLyoqXG4gKiBHZXQgdGhlIHVybCBmb3IgYW4gZW1vamkuXG4gKlxuICogQHBhcmFtIGVtb2ppSWQgVGhlIGlkIG9mIHRoZSBlbW9qaVxuICogQHBhcmFtIGFuaW1hdGVkIFdoZXRoZXIgb3Igbm90IHRoZSBlbW9qaSBpcyBhbmltYXRlZFxuICogQHJldHVybnMgc3RyaW5nXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlbW9qaVVybChlbW9qaUlkOiBCaWdTdHJpbmcsIGFuaW1hdGVkID0gZmFsc2UpOiBzdHJpbmcge1xuICByZXR1cm4gYGh0dHBzOi8vY2RuLmRpc2NvcmRhcHAuY29tL2Vtb2ppcy8ke2Vtb2ppSWR9LiR7YW5pbWF0ZWQgPyAnZ2lmJyA6ICdwbmcnfWBcbn1cblxuLyoqXG4gKiBCdWlsZHMgYSBVUkwgdG8gYSB1c2VyJ3MgYXZhdGFyIHN0b3JlZCBpbiB0aGUgRGlzY29yZCBDRE4uXG4gKlxuICogQHBhcmFtIHVzZXJJZCAtIFRoZSBJRCBvZiB0aGUgdXNlciB0byBnZXQgdGhlIGF2YXRhciBvZi5cbiAqIEBwYXJhbSBkaXNjcmltaW5hdG9yIC0gVGhlIHVzZXIncyBkaXNjcmltaW5hdG9yLiAoNC1kaWdpdCB0YWcgYWZ0ZXIgdGhlIGhhc2h0YWcuKVxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIGJ1aWxkaW5nIG9mIHRoZSBVUkwuXG4gKiBAcmV0dXJucyBUaGUgbGluayB0byB0aGUgcmVzb3VyY2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhdmF0YXJVcmwoXG4gIHVzZXJJZDogQmlnU3RyaW5nLFxuICBkaXNjcmltaW5hdG9yOiBzdHJpbmcsXG4gIG9wdGlvbnM/OiB7XG4gICAgYXZhdGFyOiBCaWdTdHJpbmcgfCB1bmRlZmluZWRcbiAgICBzaXplPzogSW1hZ2VTaXplXG4gICAgZm9ybWF0PzogSW1hZ2VGb3JtYXRcbiAgfSxcbik6IHN0cmluZyB7XG4gIHJldHVybiBvcHRpb25zPy5hdmF0YXJcbiAgICA/IGZvcm1hdEltYWdlVXJsKFxuICAgICAgICBgaHR0cHM6Ly9jZG4uZGlzY29yZGFwcC5jb20vYXZhdGFycy8ke3VzZXJJZH0vJHt0eXBlb2Ygb3B0aW9ucy5hdmF0YXIgPT09ICdzdHJpbmcnID8gb3B0aW9ucy5hdmF0YXIgOiBpY29uQmlnaW50VG9IYXNoKG9wdGlvbnMuYXZhdGFyKX1gLFxuICAgICAgICBvcHRpb25zPy5zaXplID8/IDEyOCxcbiAgICAgICAgb3B0aW9ucz8uZm9ybWF0LFxuICAgICAgKVxuICAgIDogYGh0dHBzOi8vY2RuLmRpc2NvcmRhcHAuY29tL2VtYmVkL2F2YXRhcnMvJHtkaXNjcmltaW5hdG9yID09PSAnMCcgPyAoQmlnSW50KHVzZXJJZCkgPj4gQmlnSW50KDIyKSkgJSBCaWdJbnQoNikgOiBOdW1iZXIoZGlzY3JpbWluYXRvcikgJSA1fS5wbmdgXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhdmF0YXJEZWNvcmF0aW9uVXJsKGF2YXRhckRlY29yYXRpb246IEJpZ1N0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBgaHR0cHM6Ly9jZG4uZGlzY29yZGFwcC5jb20vYXZhdGFyLWRlY29yYXRpb24tcHJlc2V0cy8ke1xuICAgIHR5cGVvZiBhdmF0YXJEZWNvcmF0aW9uID09PSAnc3RyaW5nJyA/IGF2YXRhckRlY29yYXRpb24gOiBpY29uQmlnaW50VG9IYXNoKGF2YXRhckRlY29yYXRpb24pXG4gIH0ucG5nYFxufVxuXG4vKipcbiAqIEJ1aWxkcyBhIFVSTCB0byBhIHVzZXIncyBiYW5uZXIgc3RvcmVkIGluIHRoZSBEaXNjb3JkIENETi5cbiAqXG4gKiBAcGFyYW0gdXNlcklkIC0gVGhlIElEIG9mIHRoZSB1c2VyIHRvIGdldCB0aGUgYmFubmVyIG9mLlxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIGJ1aWxkaW5nIG9mIHRoZSBVUkwuXG4gKiBAcmV0dXJucyBUaGUgbGluayB0byB0aGUgcmVzb3VyY2Ugb3IgYHVuZGVmaW5lZGAgaWYgbm8gYmFubmVyIGhhcyBub3QgYmVlbiBzZXQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBiYW5uZXJVcmwoXG4gIHVzZXJJZDogQmlnU3RyaW5nLFxuICBvcHRpb25zPzoge1xuICAgIGJhbm5lcj86IEJpZ1N0cmluZ1xuICAgIHNpemU/OiBJbWFnZVNpemVcbiAgICBmb3JtYXQ/OiBJbWFnZUZvcm1hdFxuICB9LFxuKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIG9wdGlvbnM/LmJhbm5lclxuICAgID8gZm9ybWF0SW1hZ2VVcmwoXG4gICAgICAgIGBodHRwczovL2Nkbi5kaXNjb3JkYXBwLmNvbS9iYW5uZXJzLyR7dXNlcklkfS8ke3R5cGVvZiBvcHRpb25zLmJhbm5lciA9PT0gJ3N0cmluZycgPyBvcHRpb25zLmJhbm5lciA6IGljb25CaWdpbnRUb0hhc2gob3B0aW9ucy5iYW5uZXIpfWAsXG4gICAgICAgIG9wdGlvbnM/LnNpemUgPz8gMTI4LFxuICAgICAgICBvcHRpb25zPy5mb3JtYXQsXG4gICAgICApXG4gICAgOiB1bmRlZmluZWRcbn1cblxuLyoqXG4gKiBCdWlsZHMgYSBVUkwgdG8gdGhlIGd1aWxkIGJhbm5lciBzdG9yZWQgaW4gdGhlIERpc2NvcmQgQ0ROLlxuICpcbiAqIEBwYXJhbSBndWlsZElkIC0gVGhlIElEIG9mIHRoZSBndWlsZCB0byBnZXQgdGhlIGxpbmsgdG8gdGhlIGJhbm5lciBmb3IuXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgYnVpbGRpbmcgb2YgdGhlIFVSTC5cbiAqIEByZXR1cm5zIFRoZSBsaW5rIHRvIHRoZSByZXNvdXJjZSBvciBgdW5kZWZpbmVkYCBpZiBubyBiYW5uZXIgaGFzIGJlZW4gc2V0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ3VpbGRCYW5uZXJVcmwoXG4gIGd1aWxkSWQ6IEJpZ1N0cmluZyxcbiAgb3B0aW9uczoge1xuICAgIGJhbm5lcj86IEJpZ1N0cmluZ1xuICAgIHNpemU/OiBJbWFnZVNpemVcbiAgICBmb3JtYXQ/OiBJbWFnZUZvcm1hdFxuICB9LFxuKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIG9wdGlvbnMuYmFubmVyXG4gICAgPyBmb3JtYXRJbWFnZVVybChcbiAgICAgICAgYGh0dHBzOi8vY2RuLmRpc2NvcmRhcHAuY29tL2Jhbm5lcnMvJHtndWlsZElkfS8ke3R5cGVvZiBvcHRpb25zLmJhbm5lciA9PT0gJ3N0cmluZycgPyBvcHRpb25zLmJhbm5lciA6IGljb25CaWdpbnRUb0hhc2gob3B0aW9ucy5iYW5uZXIpfWAsXG4gICAgICAgIG9wdGlvbnMuc2l6ZSA/PyAxMjgsXG4gICAgICAgIG9wdGlvbnMuZm9ybWF0LFxuICAgICAgKVxuICAgIDogdW5kZWZpbmVkXG59XG5cbi8qKlxuICogQnVpbGRzIGEgVVJMIHRvIHRoZSBndWlsZCBpY29uIHN0b3JlZCBpbiB0aGUgRGlzY29yZCBDRE4uXG4gKlxuICogQHBhcmFtIGd1aWxkSWQgLSBUaGUgSUQgb2YgdGhlIGd1aWxkIHRvIGdldCB0aGUgbGluayB0byB0aGUgYmFubmVyIGZvci5cbiAqIEBwYXJhbSBpbWFnZUhhc2ggLSBUaGUgaGFzaCBpZGVudGlmeWluZyB0aGUgZXZlbnQgY292ZXIgaW1hZ2UuXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgYnVpbGRpbmcgb2YgdGhlIFVSTC5cbiAqIEByZXR1cm5zIFRoZSBsaW5rIHRvIHRoZSByZXNvdXJjZSBvciBgdW5kZWZpbmVkYCBpZiBubyBiYW5uZXIgaGFzIGJlZW4gc2V0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ3VpbGRJY29uVXJsKFxuICBndWlsZElkOiBCaWdTdHJpbmcsXG4gIGltYWdlSGFzaDogQmlnU3RyaW5nIHwgdW5kZWZpbmVkLFxuICBvcHRpb25zPzoge1xuICAgIHNpemU/OiBJbWFnZVNpemVcbiAgICBmb3JtYXQ/OiBJbWFnZUZvcm1hdFxuICB9LFxuKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIGltYWdlSGFzaFxuICAgID8gZm9ybWF0SW1hZ2VVcmwoXG4gICAgICAgIGBodHRwczovL2Nkbi5kaXNjb3JkYXBwLmNvbS9pY29ucy8ke2d1aWxkSWR9LyR7dHlwZW9mIGltYWdlSGFzaCA9PT0gJ3N0cmluZycgPyBpbWFnZUhhc2ggOiBpY29uQmlnaW50VG9IYXNoKGltYWdlSGFzaCl9YCxcbiAgICAgICAgb3B0aW9ucz8uc2l6ZSA/PyAxMjgsXG4gICAgICAgIG9wdGlvbnM/LmZvcm1hdCxcbiAgICAgIClcbiAgICA6IHVuZGVmaW5lZFxufVxuXG4vKipcbiAqIEJ1aWxkcyB0aGUgVVJMIHRvIGEgZ3VpbGQgc3BsYXNoIHN0b3JlZCBpbiB0aGUgRGlzY29yZCBDRE4uXG4gKlxuICogQHBhcmFtIGd1aWxkSWQgLSBUaGUgSUQgb2YgdGhlIGd1aWxkIHRvIGdldCB0aGUgc3BsYXNoIG9mLlxuICogQHBhcmFtIGltYWdlSGFzaCAtIFRoZSBoYXNoIGlkZW50aWZ5aW5nIHRoZSBzcGxhc2ggaW1hZ2UuXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgYnVpbGRpbmcgb2YgdGhlIFVSTC5cbiAqIEByZXR1cm5zIFRoZSBsaW5rIHRvIHRoZSByZXNvdXJjZSBvciBgdW5kZWZpbmVkYCBpZiB0aGUgZ3VpbGQgZG9lcyBub3QgaGF2ZSBhIHNwbGFzaCBpbWFnZSBzZXQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBndWlsZFNwbGFzaFVybChcbiAgZ3VpbGRJZDogQmlnU3RyaW5nLFxuICBpbWFnZUhhc2g6IEJpZ1N0cmluZyB8IHVuZGVmaW5lZCxcbiAgb3B0aW9ucz86IHtcbiAgICBzaXplPzogSW1hZ2VTaXplXG4gICAgZm9ybWF0PzogSW1hZ2VGb3JtYXRcbiAgfSxcbik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBpbWFnZUhhc2hcbiAgICA/IGZvcm1hdEltYWdlVXJsKFxuICAgICAgICBgaHR0cHM6Ly9jZG4uZGlzY29yZGFwcC5jb20vc3BsYXNoZXMvJHtndWlsZElkfS8ke3R5cGVvZiBpbWFnZUhhc2ggPT09ICdzdHJpbmcnID8gaW1hZ2VIYXNoIDogaWNvbkJpZ2ludFRvSGFzaChpbWFnZUhhc2gpfWAsXG4gICAgICAgIG9wdGlvbnM/LnNpemUgPz8gMTI4LFxuICAgICAgICBvcHRpb25zPy5mb3JtYXQsXG4gICAgICApXG4gICAgOiB1bmRlZmluZWRcbn1cblxuLyoqXG4gKiBCdWlsZHMgdGhlIFVSTCB0byBhIGd1aWxkIGRpc2NvdmVyeSBzcGxhc2ggc3RvcmVkIGluIHRoZSBEaXNjb3JkIENETi5cbiAqXG4gKiBAcGFyYW0gZ3VpbGRJZCAtIFRoZSBJRCBvZiB0aGUgZ3VpbGQgdG8gZ2V0IHRoZSBzcGxhc2ggb2YuXG4gKiBAcGFyYW0gaW1hZ2VIYXNoIC0gVGhlIGhhc2ggaWRlbnRpZnlpbmcgdGhlIGRpc2NvdmVyeSBzcGxhc2ggaW1hZ2UuXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgYnVpbGRpbmcgb2YgdGhlIFVSTC5cbiAqIEByZXR1cm5zIFRoZSBsaW5rIHRvIHRoZSByZXNvdXJjZSBvciBgdW5kZWZpbmVkYCBpZiB0aGUgZ3VpbGQgZG9lcyBub3QgaGF2ZSBhIHNwbGFzaCBpbWFnZSBzZXQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBndWlsZERpc2NvdmVyeVNwbGFzaFVybChcbiAgZ3VpbGRJZDogQmlnU3RyaW5nLFxuICBpbWFnZUhhc2g6IEJpZ1N0cmluZyB8IHVuZGVmaW5lZCxcbiAgb3B0aW9ucz86IHtcbiAgICBzaXplPzogSW1hZ2VTaXplXG4gICAgZm9ybWF0PzogSW1hZ2VGb3JtYXRcbiAgfSxcbik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBpbWFnZUhhc2hcbiAgICA/IGZvcm1hdEltYWdlVXJsKFxuICAgICAgICBgaHR0cHM6Ly9jZG4uZGlzY29yZGFwcC5jb20vZGlzY292ZXJ5LXNwbGFzaGVzLyR7Z3VpbGRJZH0vJHt0eXBlb2YgaW1hZ2VIYXNoID09PSAnc3RyaW5nJyA/IGltYWdlSGFzaCA6IGljb25CaWdpbnRUb0hhc2goaW1hZ2VIYXNoKX1gLFxuICAgICAgICBvcHRpb25zPy5zaXplID8/IDEyOCxcbiAgICAgICAgb3B0aW9ucz8uZm9ybWF0LFxuICAgICAgKVxuICAgIDogdW5kZWZpbmVkXG59XG5cbi8qKlxuICogQnVpbGRzIHRoZSBVUkwgdG8gYSBndWlsZCBzY2hlZHVsZWQgZXZlbnQgY292ZXIgc3RvcmVkIGluIHRoZSBEaXNjb3JkIENETi5cbiAqXG4gKiBAcGFyYW0gZXZlbnRJZCAtIFRoZSBJRCBvZiB0aGUgc2NoZWR1bGVkIGV2ZW50IHRvIGdldCB0aGUgY292ZXIgb2YuXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgYnVpbGRpbmcgb2YgdGhlIFVSTC5cbiAqIEByZXR1cm5zIFRoZSBsaW5rIHRvIHRoZSByZXNvdXJjZSBvciBgdW5kZWZpbmVkYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGd1aWxkU2NoZWR1bGVkRXZlbnRDb3ZlclVybChcbiAgZXZlbnRJZDogQmlnU3RyaW5nLFxuICBvcHRpb25zOiB7XG4gICAgY292ZXI/OiBCaWdTdHJpbmdcbiAgICBzaXplPzogSW1hZ2VTaXplXG4gICAgZm9ybWF0PzogSW1hZ2VGb3JtYXRcbiAgfSxcbik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBvcHRpb25zLmNvdmVyXG4gICAgPyBmb3JtYXRJbWFnZVVybChcbiAgICAgICAgYGh0dHBzOi8vY2RuLmRpc2NvcmRhcHAuY29tL2d1aWxkLWV2ZW50cy8ke2V2ZW50SWR9LyR7dHlwZW9mIG9wdGlvbnMuY292ZXIgPT09ICdzdHJpbmcnID8gb3B0aW9ucy5jb3ZlciA6IGljb25CaWdpbnRUb0hhc2gob3B0aW9ucy5jb3Zlcil9YCxcbiAgICAgICAgb3B0aW9ucy5zaXplID8/IDEyOCxcbiAgICAgICAgb3B0aW9ucy5mb3JtYXQsXG4gICAgICApXG4gICAgOiB1bmRlZmluZWRcbn1cblxuLyoqXG4gKiBCdWlsZHMgYSBVUkwgdG8gdGhlIGd1aWxkIHdpZGdldCBpbWFnZSBzdG9yZWQgaW4gdGhlIERpc2NvcmQgQ0ROLlxuICpcbiAqIEBwYXJhbSBndWlsZElkIC0gVGhlIElEIG9mIHRoZSBndWlsZCB0byBnZXQgdGhlIGxpbmsgdG8gdGhlIHdpZGdldCBpbWFnZSBmb3IuXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgYnVpbGRpbmcgb2YgdGhlIFVSTC5cbiAqIEByZXR1cm5zIFRoZSBsaW5rIHRvIHRoZSByZXNvdXJjZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFdpZGdldEltYWdlVXJsKGd1aWxkSWQ6IEJpZ1N0cmluZywgb3B0aW9ucz86IEdldEd1aWxkV2lkZ2V0SW1hZ2VRdWVyeSk6IHN0cmluZyB7XG4gIGxldCB1cmwgPSBgaHR0cHM6Ly9kaXNjb3JkYXBwLmNvbS9hcGkvZ3VpbGRzLyR7Z3VpbGRJZH0vd2lkZ2V0LnBuZ2BcblxuICBpZiAob3B0aW9ucz8uc3R5bGUpIHtcbiAgICB1cmwgKz0gYD9zdHlsZT0ke29wdGlvbnMuc3R5bGV9YFxuICB9XG5cbiAgcmV0dXJuIHVybFxufVxuXG4vKipcbiAqIEJ1aWxkcyBhIFVSTCB0byBhIG1lbWJlcidzIGF2YXRhciBzdG9yZWQgaW4gdGhlIERpc2NvcmQgQ0ROLlxuICpcbiAqIEBwYXJhbSBndWlsZElkIC0gVGhlIElEIG9mIHRoZSBndWlsZCB3aGVyZSB0aGUgbWVtYmVyIGlzXG4gKiBAcGFyYW0gdXNlcklkIC0gVGhlIElEIG9mIHRoZSB1c2VyIHRvIGdldCB0aGUgYXZhdGFyIG9mLlxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIGJ1aWxkaW5nIG9mIHRoZSBVUkwuXG4gKiBAcmV0dXJucyBUaGUgbGluayB0byB0aGUgcmVzb3VyY2Ugb3IgYHVuZGVmaW5lZGAgaWYgbm8gYmFubmVyIGhhcyBiZWVuIHNldC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1lbWJlckF2YXRhclVybChcbiAgZ3VpbGRJZDogQmlnU3RyaW5nLFxuICB1c2VySWQ6IEJpZ1N0cmluZyxcbiAgb3B0aW9ucz86IHtcbiAgICBhdmF0YXI/OiBCaWdTdHJpbmdcbiAgICBzaXplPzogSW1hZ2VTaXplXG4gICAgZm9ybWF0PzogSW1hZ2VGb3JtYXRcbiAgfSxcbik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBvcHRpb25zPy5hdmF0YXJcbiAgICA/IGZvcm1hdEltYWdlVXJsKFxuICAgICAgICBgaHR0cHM6Ly9jZG4uZGlzY29yZGFwcC5jb20vZ3VpbGRzLyR7Z3VpbGRJZH0vdXNlcnMvJHt1c2VySWR9L2F2YXRhcnMvJHtcbiAgICAgICAgICB0eXBlb2Ygb3B0aW9ucy5hdmF0YXIgPT09ICdzdHJpbmcnID8gb3B0aW9ucy5hdmF0YXIgOiBpY29uQmlnaW50VG9IYXNoKG9wdGlvbnMuYXZhdGFyKVxuICAgICAgICB9YCxcbiAgICAgICAgb3B0aW9ucz8uc2l6ZSA/PyAxMjgsXG4gICAgICAgIG9wdGlvbnM/LmZvcm1hdCxcbiAgICAgIClcbiAgICA6IHVuZGVmaW5lZFxufVxuXG4vKipcbiAqIEJ1aWxkcyBhIFVSTCB0byBhIG1lbWJlcidzIGJhbm5lciBzdG9yZWQgaW4gdGhlIERpc2NvcmQgQ0ROLlxuICpcbiAqIEBwYXJhbSBndWlsZElkIC0gVGhlIElEIG9mIHRoZSBndWlsZCB3aGVyZSB0aGUgbWVtYmVyIGlzXG4gKiBAcGFyYW0gdXNlcklkIC0gVGhlIElEIG9mIHRoZSB1c2VyIHRvIGdldCB0aGUgYmFubmVyIG9mLlxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIGJ1aWxkaW5nIG9mIHRoZSBVUkwuXG4gKiBAcmV0dXJucyBUaGUgbGluayB0byB0aGUgcmVzb3VyY2Ugb3IgYHVuZGVmaW5lZGAgaWYgbm8gYmFubmVyIGhhcyBiZWVuIHNldC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1lbWJlckJhbm5lclVybChcbiAgZ3VpbGRJZDogQmlnU3RyaW5nLFxuICB1c2VySWQ6IEJpZ1N0cmluZyxcbiAgb3B0aW9ucz86IHtcbiAgICBiYW5uZXI/OiBCaWdTdHJpbmdcbiAgICBzaXplPzogSW1hZ2VTaXplXG4gICAgZm9ybWF0PzogSW1hZ2VGb3JtYXRcbiAgfSxcbik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBvcHRpb25zPy5iYW5uZXJcbiAgICA/IGZvcm1hdEltYWdlVXJsKFxuICAgICAgICBgaHR0cHM6Ly9jZG4uZGlzY29yZGFwcC5jb20vZ3VpbGRzLyR7Z3VpbGRJZH0vdXNlcnMvJHt1c2VySWR9L2Jhbm5lcnMvJHtcbiAgICAgICAgICB0eXBlb2Ygb3B0aW9ucy5iYW5uZXIgPT09ICdzdHJpbmcnID8gb3B0aW9ucy5iYW5uZXIgOiBpY29uQmlnaW50VG9IYXNoKG9wdGlvbnMuYmFubmVyKVxuICAgICAgICB9YCxcbiAgICAgICAgb3B0aW9ucz8uc2l6ZSA/PyAxMjgsXG4gICAgICAgIG9wdGlvbnM/LmZvcm1hdCxcbiAgICAgIClcbiAgICA6IHVuZGVmaW5lZFxufVxuXG4vKipcbiAqIEJ1aWxkcyB0aGUgVVJMIHRvIGFuIGFwcGxpY2F0aW9uIGljb24gc3RvcmVkIGluIHRoZSBEaXNjb3JkIENETi5cbiAqXG4gKiBAcGFyYW0gYXBwbGljYXRpb25JZCAtIFRoZSBJRCBvZiB0aGUgYXBwbGljYXRpb24gdG8gZ2V0IHRoZSBpY29uIG9mLlxuICogQHBhcmFtIGljb25IYXNoIC0gVGhlIGhhc2ggaWRlbnRpZnlpbmcgdGhlIGFwcGxpY2F0aW9uIGljb24uXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgYnVpbGRpbmcgb2YgdGhlIFVSTC5cbiAqIEByZXR1cm5zIFRoZSBsaW5rIHRvIHRoZSByZXNvdXJjZSBvciBgdW5kZWZpbmVkYFxuICovXG5leHBvcnQgZnVuY3Rpb24gYXBwbGljYXRpb25JY29uVXJsKFxuICBhcHBsaWNhdGlvbklkOiBCaWdTdHJpbmcsXG4gIGljb25IYXNoOiBCaWdTdHJpbmcgfCB1bmRlZmluZWQsXG4gIG9wdGlvbnM/OiB7XG4gICAgc2l6ZT86IEltYWdlU2l6ZVxuICAgIGZvcm1hdD86IEltYWdlRm9ybWF0XG4gIH0sXG4pOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICByZXR1cm4gaWNvbkhhc2hcbiAgICA/IGZvcm1hdEltYWdlVXJsKFxuICAgICAgICBgaHR0cHM6Ly9jZG4uZGlzY29yZGFwcC5jb20vYXBwLWljb25zLyR7YXBwbGljYXRpb25JZH0vJHt0eXBlb2YgaWNvbkhhc2ggPT09ICdzdHJpbmcnID8gaWNvbkhhc2ggOiBpY29uQmlnaW50VG9IYXNoKGljb25IYXNoKX1gLFxuICAgICAgICBvcHRpb25zPy5zaXplID8/IDEyOCxcbiAgICAgICAgb3B0aW9ucz8uZm9ybWF0LFxuICAgICAgKVxuICAgIDogdW5kZWZpbmVkXG59XG5cbi8qKlxuICogQnVpbGRzIHRoZSBVUkwgdG8gYW4gYXBwbGljYXRpb24gY292ZXIgc3RvcmVkIGluIHRoZSBEaXNjb3JkIENETi5cbiAqXG4gKiBAcGFyYW0gYXBwbGljYXRpb25JZCAtIFRoZSBJRCBvZiB0aGUgYXBwbGljYXRpb24gdG8gZ2V0IHRoZSBjb3ZlciBvZi5cbiAqIEBwYXJhbSBjb3Zlckhhc2ggLSBUaGUgaGFzaCBpZGVudGlmeWluZyB0aGUgYXBwbGljYXRpb24gY292ZXIuXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgYnVpbGRpbmcgb2YgdGhlIFVSTC5cbiAqIEByZXR1cm5zIFRoZSBsaW5rIHRvIHRoZSByZXNvdXJjZSBvciBgdW5kZWZpbmVkYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFwcGxpY2F0aW9uQ292ZXJVcmwoXG4gIGFwcGxpY2F0aW9uSWQ6IEJpZ1N0cmluZyxcbiAgY292ZXJIYXNoOiBCaWdTdHJpbmcgfCB1bmRlZmluZWQsXG4gIG9wdGlvbnM/OiB7XG4gICAgc2l6ZT86IEltYWdlU2l6ZVxuICAgIGZvcm1hdD86IEltYWdlRm9ybWF0XG4gIH0sXG4pOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICByZXR1cm4gY292ZXJIYXNoXG4gICAgPyBmb3JtYXRJbWFnZVVybChcbiAgICAgICAgYGh0dHBzOi8vY2RuLmRpc2NvcmRhcHAuY29tL2FwcC1pY29ucy8ke2FwcGxpY2F0aW9uSWR9LyR7dHlwZW9mIGNvdmVySGFzaCA9PT0gJ3N0cmluZycgPyBjb3Zlckhhc2ggOiBpY29uQmlnaW50VG9IYXNoKGNvdmVySGFzaCl9YCxcbiAgICAgICAgb3B0aW9ucz8uc2l6ZSA/PyAxMjgsXG4gICAgICAgIG9wdGlvbnM/LmZvcm1hdCxcbiAgICAgIClcbiAgICA6IHVuZGVmaW5lZFxufVxuXG4vKipcbiAqIEJ1aWxkcyB0aGUgVVJMIHRvIGFuIGFwcGxpY2F0aW9uIGFzc2V0IHN0b3JlZCBpbiB0aGUgRGlzY29yZCBDRE4uXG4gKlxuICogQHBhcmFtIGFwcGxpY2F0aW9uSWQgLSBUaGUgSUQgb2YgdGhlIGFwcGxpY2F0aW9uIHRvIGdldCB0aGUgYXNzZXQgb2YuXG4gKiBAcGFyYW0gYXNzZXRJZCAtIFRoZSBpZCBpZGVudGlmeWluZyB0aGUgYXBwbGljYXRpb24gYXNzZXQuXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgYnVpbGRpbmcgb2YgdGhlIFVSTC5cbiAqIEByZXR1cm5zIFRoZSBsaW5rIHRvIHRoZSByZXNvdXJjZSBvciBgdW5kZWZpbmVkYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFwcGxpY2F0aW9uQXNzZXRVcmwoXG4gIGFwcGxpY2F0aW9uSWQ6IEJpZ1N0cmluZyxcbiAgYXNzZXRJZDogQmlnU3RyaW5nIHwgdW5kZWZpbmVkLFxuICBvcHRpb25zPzoge1xuICAgIHNpemU/OiBJbWFnZVNpemVcbiAgICBmb3JtYXQ/OiBJbWFnZUZvcm1hdFxuICB9LFxuKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIGFzc2V0SWRcbiAgICA/IGZvcm1hdEltYWdlVXJsKFxuICAgICAgICBgaHR0cHM6Ly9jZG4uZGlzY29yZGFwcC5jb20vYXBwLWljb25zLyR7YXBwbGljYXRpb25JZH0vJHt0eXBlb2YgYXNzZXRJZCA9PT0gJ3N0cmluZycgPyBhc3NldElkIDogaWNvbkJpZ2ludFRvSGFzaChhc3NldElkKX1gLFxuICAgICAgICBvcHRpb25zPy5zaXplID8/IDEyOCxcbiAgICAgICAgb3B0aW9ucz8uZm9ybWF0LFxuICAgICAgKVxuICAgIDogdW5kZWZpbmVkXG59XG5cbi8qKlxuICogQnVpbGRzIHRoZSBVUkwgdG8gYSBzdGlja2VyIHBhY2sgYmFubmVyIHN0b3JlZCBpbiB0aGUgRGlzY29yZCBDRE4uXG4gKlxuICogQHBhcmFtIGJhbm5lckFzc2V0SWQgLSBUaGUgSUQgb2YgdGhlIGJhbm5lciBhc3NldCBmb3IgdGhlIHN0aWNrZXIgcGFjay5cbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBidWlsZGluZyBvZiB0aGUgVVJMLlxuICogQHJldHVybnMgVGhlIGxpbmsgdG8gdGhlIHJlc291cmNlIG9yIGB1bmRlZmluZWRgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc3RpY2tlclBhY2tCYW5uZXJVcmwoXG4gIGJhbm5lckFzc2V0SWQ6IEJpZ1N0cmluZyB8IHVuZGVmaW5lZCxcbiAgb3B0aW9ucz86IHtcbiAgICBzaXplPzogSW1hZ2VTaXplXG4gICAgZm9ybWF0PzogSW1hZ2VGb3JtYXRcbiAgfSxcbik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBiYW5uZXJBc3NldElkXG4gICAgPyBmb3JtYXRJbWFnZVVybChcbiAgICAgICAgYGh0dHBzOi8vY2RuLmRpc2NvcmRhcHAuY29tL2FwcC1hc3NldHMvNzEwOTgyNDE0MzAxNzkwMjE2L3N0b3JlLyR7XG4gICAgICAgICAgdHlwZW9mIGJhbm5lckFzc2V0SWQgPT09ICdzdHJpbmcnID8gYmFubmVyQXNzZXRJZCA6IGljb25CaWdpbnRUb0hhc2goYmFubmVyQXNzZXRJZClcbiAgICAgICAgfWAsXG4gICAgICAgIG9wdGlvbnM/LnNpemUgPz8gMTI4LFxuICAgICAgICBvcHRpb25zPy5mb3JtYXQsXG4gICAgICApXG4gICAgOiB1bmRlZmluZWRcbn1cblxuLyoqXG4gKiBCdWlsZHMgdGhlIFVSTCB0byBhIHN0aWNrZXIgc3RvcmVkIGluIHRoZSBEaXNjb3JkIENETi5cbiAqXG4gKiBAcGFyYW0gc3RpY2tlcklkIC0gVGhlIElEIG9mIHRoZSBzdGlja2VyIHRvIGdldCB0aGUgaWNvbiBvZlxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIGJ1aWxkaW5nIG9mIHRoZSBVUkwuXG4gKiBAcmV0dXJucyBUaGUgbGluayB0byB0aGUgcmVzb3VyY2Ugb3IgYHVuZGVmaW5lZGAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzdGlja2VyVXJsKFxuICBzdGlja2VySWQ6IEJpZ1N0cmluZyB8IG51bWJlcixcbiAgb3B0aW9ucz86IHtcbiAgICBzaXplPzogSW1hZ2VTaXplXG4gICAgZm9ybWF0PzogSW1hZ2VGb3JtYXRcbiAgICB0eXBlPzogU3RpY2tlckZvcm1hdFR5cGVzXG4gIH0sXG4pOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICBpZiAoIXN0aWNrZXJJZCkgcmV0dXJuXG5cbiAgY29uc3QgdXJsID1cbiAgICBvcHRpb25zPy50eXBlID09PSBTdGlja2VyRm9ybWF0VHlwZXMuR2lmXG4gICAgICA/IGBodHRwczovL21lZGlhLmRpc2NvcmRhcHAubmV0L3N0aWNrZXJzLyR7c3RpY2tlcklkfWBcbiAgICAgIDogYGh0dHBzOi8vY2RuLmRpc2NvcmRhcHAuY29tL3N0aWNrZXJzLyR7c3RpY2tlcklkfWBcblxuICByZXR1cm4gZm9ybWF0SW1hZ2VVcmwodXJsLCBvcHRpb25zPy5zaXplID8/IDEyOCwgb3B0aW9ucz8uZm9ybWF0KVxufVxuXG4vKipcbiAqIEJ1aWxkcyB0aGUgVVJMIHRvIGEgdGVhbSBpY29uIHN0b3JlZCBpbiB0aGUgRGlzY29yZCBDRE4uXG4gKlxuICogQHBhcmFtIHRlYW1JZCAtIFRoZSBJRCBvZiB0aGUgdGVhbSB0byBnZXQgdGhlIGljb24gb2ZcbiAqIEBwYXJhbSBpY29uSGFzaCAtIFRoZSBoYXNoIG9mIHRoZSB0ZWFtIGljb24uXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgYnVpbGRpbmcgb2YgdGhlIFVSTC5cbiAqIEByZXR1cm5zIFRoZSBsaW5rIHRvIHRoZSByZXNvdXJjZSBvciBgdW5kZWZpbmVkYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRlYW1JY29uVXJsKFxuICB0ZWFtSWQ6IEJpZ1N0cmluZyxcbiAgaWNvbkhhc2g6IEJpZ1N0cmluZyB8IHVuZGVmaW5lZCxcbiAgb3B0aW9ucz86IHtcbiAgICBzaXplPzogSW1hZ2VTaXplXG4gICAgZm9ybWF0PzogSW1hZ2VGb3JtYXRcbiAgfSxcbik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBpY29uSGFzaFxuICAgID8gZm9ybWF0SW1hZ2VVcmwoXG4gICAgICAgIGBodHRwczovL2Nkbi5kaXNjb3JkYXBwLmNvbS90ZWFtLWljb25zLyR7dGVhbUlkfS9zdG9yZS8ke3R5cGVvZiBpY29uSGFzaCA9PT0gJ3N0cmluZycgPyBpY29uSGFzaCA6IGljb25CaWdpbnRUb0hhc2goaWNvbkhhc2gpfWAsXG4gICAgICAgIG9wdGlvbnM/LnNpemUgPz8gMTI4LFxuICAgICAgICBvcHRpb25zPy5mb3JtYXQsXG4gICAgICApXG4gICAgOiB1bmRlZmluZWRcbn1cblxuLyoqXG4gKiBCdWlsZHMgdGhlIFVSTCB0byBhIHJvbGUgaWNvbiBzdG9yZWQgaW4gdGhlIERpc2NvcmQgQ0ROLlxuICpcbiAqIEBwYXJhbSByb2xlSWQgLSBUaGUgSUQgb2YgdGhlIHJvbGUgdG8gZ2V0IHRoZSBpY29uIG9mXG4gKiBAcGFyYW0gaWNvbkhhc2ggLSBUaGUgaGFzaCBvZiB0aGUgcm9sZSBpY29uLlxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIGJ1aWxkaW5nIG9mIHRoZSBVUkwuXG4gKiBAcmV0dXJucyBUaGUgbGluayB0byB0aGUgcmVzb3VyY2Ugb3IgYHVuZGVmaW5lZGAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByb2xlSWNvblVybChcbiAgcm9sZUlkOiBCaWdTdHJpbmcsXG4gIGljb25IYXNoOiBCaWdTdHJpbmcgfCB1bmRlZmluZWQsXG4gIG9wdGlvbnM/OiB7XG4gICAgc2l6ZT86IEltYWdlU2l6ZVxuICAgIGZvcm1hdD86IEltYWdlRm9ybWF0XG4gIH0sXG4pOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICByZXR1cm4gaWNvbkhhc2hcbiAgICA/IGZvcm1hdEltYWdlVXJsKFxuICAgICAgICBgaHR0cHM6Ly9jZG4uZGlzY29yZGFwcC5jb20vcm9sZS1pY29ucy8ke3JvbGVJZH0vJHt0eXBlb2YgaWNvbkhhc2ggPT09ICdzdHJpbmcnID8gaWNvbkhhc2ggOiBpY29uQmlnaW50VG9IYXNoKGljb25IYXNoKX1gLFxuICAgICAgICBvcHRpb25zPy5zaXplID8/IDEyOCxcbiAgICAgICAgb3B0aW9ucz8uZm9ybWF0LFxuICAgICAgKVxuICAgIDogdW5kZWZpbmVkXG59XG4iXSwibmFtZXMiOlsiU3RpY2tlckZvcm1hdFR5cGVzIiwiaWNvbkJpZ2ludFRvSGFzaCIsImZvcm1hdEltYWdlVXJsIiwidXJsIiwic2l6ZSIsImZvcm1hdCIsImluY2x1ZGVzIiwiZW1vamlVcmwiLCJlbW9qaUlkIiwiYW5pbWF0ZWQiLCJhdmF0YXJVcmwiLCJ1c2VySWQiLCJkaXNjcmltaW5hdG9yIiwib3B0aW9ucyIsImF2YXRhciIsIkJpZ0ludCIsIk51bWJlciIsImF2YXRhckRlY29yYXRpb25VcmwiLCJhdmF0YXJEZWNvcmF0aW9uIiwiYmFubmVyVXJsIiwiYmFubmVyIiwidW5kZWZpbmVkIiwiZ3VpbGRCYW5uZXJVcmwiLCJndWlsZElkIiwiZ3VpbGRJY29uVXJsIiwiaW1hZ2VIYXNoIiwiZ3VpbGRTcGxhc2hVcmwiLCJndWlsZERpc2NvdmVyeVNwbGFzaFVybCIsImd1aWxkU2NoZWR1bGVkRXZlbnRDb3ZlclVybCIsImV2ZW50SWQiLCJjb3ZlciIsImdldFdpZGdldEltYWdlVXJsIiwic3R5bGUiLCJtZW1iZXJBdmF0YXJVcmwiLCJtZW1iZXJCYW5uZXJVcmwiLCJhcHBsaWNhdGlvbkljb25VcmwiLCJhcHBsaWNhdGlvbklkIiwiaWNvbkhhc2giLCJhcHBsaWNhdGlvbkNvdmVyVXJsIiwiY292ZXJIYXNoIiwiYXBwbGljYXRpb25Bc3NldFVybCIsImFzc2V0SWQiLCJzdGlja2VyUGFja0Jhbm5lclVybCIsImJhbm5lckFzc2V0SWQiLCJzdGlja2VyVXJsIiwic3RpY2tlcklkIiwidHlwZSIsIkdpZiIsInRlYW1JY29uVXJsIiwidGVhbUlkIiwicm9sZUljb25VcmwiLCJyb2xlSWQiXSwibWFwcGluZ3MiOiJBQUFBLFNBQTBGQSxrQkFBa0IsUUFBUSxvQkFBbUI7QUFDdkksU0FBU0MsZ0JBQWdCLFFBQVEsWUFBVztBQUU1Qyw4QkFBOEIsR0FDOUIsT0FBTyxTQUFTQyxlQUFlQyxHQUFXLEVBQUVDLE9BQWtCLEdBQUcsRUFBRUMsTUFBb0I7SUFDckYs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
|
|
193
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbWFnZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBCaWdTdHJpbmcsIHR5cGUgR2V0R3VpbGRXaWRnZXRJbWFnZVF1ZXJ5LCB0eXBlIEltYWdlRm9ybWF0LCB0eXBlIEltYWdlU2l6ZSwgU3RpY2tlckZvcm1hdFR5cGVzIH0gZnJvbSAnQGRpc2NvcmRlbm8vdHlwZXMnXG5pbXBvcnQgeyBpY29uQmlnaW50VG9IYXNoIH0gZnJvbSAnLi9oYXNoLmpzJ1xuXG4vKiogSGVscCBmb3JtYXQgYW4gaW1hZ2UgdXJsLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdEltYWdlVXJsKHVybDogc3RyaW5nLCBzaXplOiBJbWFnZVNpemUgPSAxMjgsIGZvcm1hdD86IEltYWdlRm9ybWF0KTogc3RyaW5nIHtcbiAgcmV0dXJuIGAke3VybH0uJHtmb3JtYXQgPz8gKHVybC5pbmNsdWRlcygnL2FfJykgPyAnZ2lmJyA6ICd3ZWJwJyl9P3NpemU9JHtzaXplfWBcbn1cblxuLyoqXG4gKiBHZXQgdGhlIHVybCBmb3IgYW4gZW1vamkuXG4gKlxuICogQHBhcmFtIGVtb2ppSWQgVGhlIGlkIG9mIHRoZSBlbW9qaVxuICogQHBhcmFtIGFuaW1hdGVkIFdoZXRoZXIgb3Igbm90IHRoZSBlbW9qaSBpcyBhbmltYXRlZFxuICogQHBhcmFtIGZvcm1hdCBUaGUgZm9ybWF0IG9mIHRoZSBpbWFnZSwgZGVmYXVsdHMgdG8gcG5nXG4gKiBAcmV0dXJucyBzdHJpbmdcbiAqXG4gKiBAcmVtYXJrc1xuICogVGhlIGFuaW1hdGVkIHBhcmFtZXRlciBpcyB1c2VkIHRvIHNwZWNpZnkgdGhlIGFuaW1hdGVkIHF1ZXJ5IHBhcmFtZXRlciB2YWxpZCBmb3Igd2VicCBpbWFnZXMgb3IgdG8gZm9yY2UgdGhlIGdpZiBpZiB0aGUgZm9ybWF0IGlzIG5vdCBzZXQgdG8gd2VicC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGVtb2ppVXJsKGVtb2ppSWQ6IEJpZ1N0cmluZywgYW5pbWF0ZWQgPSBmYWxzZSwgZm9ybWF0OiBJbWFnZUZvcm1hdCA9ICdwbmcnKTogc3RyaW5nIHtcbiAgcmV0dXJuIGBodHRwczovL2Nkbi5kaXNjb3JkYXBwLmNvbS9lbW9qaXMvJHtlbW9qaUlkfS4ke2FuaW1hdGVkID8gKGZvcm1hdCA9PT0gJ3dlYnAnID8gJ3dlYnAnIDogJ2dpZicpIDogZm9ybWF0fSR7YW5pbWF0ZWQgJiYgZm9ybWF0ID09PSAnd2VicCcgPyAnP2FuaW1hdGVkPXRydWUnIDogJyd9YFxufVxuXG4vKipcbiAqIEJ1aWxkcyBhIFVSTCB0byBhIHVzZXIncyBhdmF0YXIgc3RvcmVkIGluIHRoZSBEaXNjb3JkIENETi5cbiAqXG4gKiBAcGFyYW0gdXNlcklkIC0gVGhlIElEIG9mIHRoZSB1c2VyIHRvIGdldCB0aGUgYXZhdGFyIG9mLlxuICogQHBhcmFtIGRpc2NyaW1pbmF0b3IgLSBUaGUgdXNlcidzIGRpc2NyaW1pbmF0b3IuICg0LWRpZ2l0IHRhZyBhZnRlciB0aGUgaGFzaHRhZy4pXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgYnVpbGRpbmcgb2YgdGhlIFVSTC5cbiAqIEByZXR1cm5zIFRoZSBsaW5rIHRvIHRoZSByZXNvdXJjZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGF2YXRhclVybChcbiAgdXNlcklkOiBCaWdTdHJpbmcsXG4gIGRpc2NyaW1pbmF0b3I6IHN0cmluZyxcbiAgb3B0aW9ucz86IHtcbiAgICBhdmF0YXI6IEJpZ1N0cmluZyB8IHVuZGVmaW5lZFxuICAgIHNpemU/OiBJbWFnZVNpemVcbiAgICBmb3JtYXQ/OiBJbWFnZUZvcm1hdFxuICB9LFxuKTogc3RyaW5nIHtcbiAgcmV0dXJuIG9wdGlvbnM/LmF2YXRhclxuICAgID8gZm9ybWF0SW1hZ2VVcmwoXG4gICAgICAgIGBodHRwczovL2Nkbi5kaXNjb3JkYXBwLmNvbS9hdmF0YXJzLyR7dXNlcklkfS8ke3R5cGVvZiBvcHRpb25zLmF2YXRhciA9PT0gJ3N0cmluZycgPyBvcHRpb25zLmF2YXRhciA6IGljb25CaWdpbnRUb0hhc2gob3B0aW9ucy5hdmF0YXIpfWAsXG4gICAgICAgIG9wdGlvbnM/LnNpemUgPz8gMTI4LFxuICAgICAgICBvcHRpb25zPy5mb3JtYXQsXG4gICAgICApXG4gICAgOiBgaHR0cHM6Ly9jZG4uZGlzY29yZGFwcC5jb20vZW1iZWQvYXZhdGFycy8ke2Rpc2NyaW1pbmF0b3IgPT09ICcwJyA/IChCaWdJbnQodXNlcklkKSA+PiBCaWdJbnQoMjIpKSAlIEJpZ0ludCg2KSA6IE51bWJlcihkaXNjcmltaW5hdG9yKSAlIDV9LnBuZ2Bcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGF2YXRhckRlY29yYXRpb25VcmwoYXZhdGFyRGVjb3JhdGlvbjogQmlnU3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIGBodHRwczovL2Nkbi5kaXNjb3JkYXBwLmNvbS9hdmF0YXItZGVjb3JhdGlvbi1wcmVzZXRzLyR7XG4gICAgdHlwZW9mIGF2YXRhckRlY29yYXRpb24gPT09ICdzdHJpbmcnID8gYXZhdGFyRGVjb3JhdGlvbiA6IGljb25CaWdpbnRUb0hhc2goYXZhdGFyRGVjb3JhdGlvbilcbiAgfS5wbmdgXG59XG5cbi8qKlxuICogQnVpbGRzIGEgVVJMIHRvIGEgdXNlcidzIGJhbm5lciBzdG9yZWQgaW4gdGhlIERpc2NvcmQgQ0ROLlxuICpcbiAqIEBwYXJhbSB1c2VySWQgLSBUaGUgSUQgb2YgdGhlIHVzZXIgdG8gZ2V0IHRoZSBiYW5uZXIgb2YuXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgYnVpbGRpbmcgb2YgdGhlIFVSTC5cbiAqIEByZXR1cm5zIFRoZSBsaW5rIHRvIHRoZSByZXNvdXJjZSBvciBgdW5kZWZpbmVkYCBpZiBubyBiYW5uZXIgaGFzIG5vdCBiZWVuIHNldC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJhbm5lclVybChcbiAgdXNlcklkOiBCaWdTdHJpbmcsXG4gIG9wdGlvbnM/OiB7XG4gICAgYmFubmVyPzogQmlnU3RyaW5nXG4gICAgc2l6ZT86IEltYWdlU2l6ZVxuICAgIGZvcm1hdD86IEltYWdlRm9ybWF0XG4gIH0sXG4pOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICByZXR1cm4gb3B0aW9ucz8uYmFubmVyXG4gICAgPyBmb3JtYXRJbWFnZVVybChcbiAgICAgICAgYGh0dHBzOi8vY2RuLmRpc2NvcmRhcHAuY29tL2Jhbm5lcnMvJHt1c2VySWR9LyR7dHlwZW9mIG9wdGlvbnMuYmFubmVyID09PSAnc3RyaW5nJyA/IG9wdGlvbnMuYmFubmVyIDogaWNvbkJpZ2ludFRvSGFzaChvcHRpb25zLmJhbm5lcil9YCxcbiAgICAgICAgb3B0aW9ucz8uc2l6ZSA/PyAxMjgsXG4gICAgICAgIG9wdGlvbnM/LmZvcm1hdCxcbiAgICAgIClcbiAgICA6IHVuZGVmaW5lZFxufVxuXG4vKipcbiAqIEJ1aWxkcyBhIFVSTCB0byB0aGUgZ3VpbGQgYmFubmVyIHN0b3JlZCBpbiB0aGUgRGlzY29yZCBDRE4uXG4gKlxuICogQHBhcmFtIGd1aWxkSWQgLSBUaGUgSUQgb2YgdGhlIGd1aWxkIHRvIGdldCB0aGUgbGluayB0byB0aGUgYmFubmVyIGZvci5cbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBidWlsZGluZyBvZiB0aGUgVVJMLlxuICogQHJldHVybnMgVGhlIGxpbmsgdG8gdGhlIHJlc291cmNlIG9yIGB1bmRlZmluZWRgIGlmIG5vIGJhbm5lciBoYXMgYmVlbiBzZXQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBndWlsZEJhbm5lclVybChcbiAgZ3VpbGRJZDogQmlnU3RyaW5nLFxuICBvcHRpb25zOiB7XG4gICAgYmFubmVyPzogQmlnU3RyaW5nXG4gICAgc2l6ZT86IEltYWdlU2l6ZVxuICAgIGZvcm1hdD86IEltYWdlRm9ybWF0XG4gIH0sXG4pOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICByZXR1cm4gb3B0aW9ucy5iYW5uZXJcbiAgICA/IGZvcm1hdEltYWdlVXJsKFxuICAgICAgICBgaHR0cHM6Ly9jZG4uZGlzY29yZGFwcC5jb20vYmFubmVycy8ke2d1aWxkSWR9LyR7dHlwZW9mIG9wdGlvbnMuYmFubmVyID09PSAnc3RyaW5nJyA/IG9wdGlvbnMuYmFubmVyIDogaWNvbkJpZ2ludFRvSGFzaChvcHRpb25zLmJhbm5lcil9YCxcbiAgICAgICAgb3B0aW9ucy5zaXplID8/IDEyOCxcbiAgICAgICAgb3B0aW9ucy5mb3JtYXQsXG4gICAgICApXG4gICAgOiB1bmRlZmluZWRcbn1cblxuLyoqXG4gKiBCdWlsZHMgYSBVUkwgdG8gdGhlIGd1aWxkIGljb24gc3RvcmVkIGluIHRoZSBEaXNjb3JkIENETi5cbiAqXG4gKiBAcGFyYW0gZ3VpbGRJZCAtIFRoZSBJRCBvZiB0aGUgZ3VpbGQgdG8gZ2V0IHRoZSBsaW5rIHRvIHRoZSBiYW5uZXIgZm9yLlxuICogQHBhcmFtIGltYWdlSGFzaCAtIFRoZSBoYXNoIGlkZW50aWZ5aW5nIHRoZSBldmVudCBjb3ZlciBpbWFnZS5cbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBidWlsZGluZyBvZiB0aGUgVVJMLlxuICogQHJldHVybnMgVGhlIGxpbmsgdG8gdGhlIHJlc291cmNlIG9yIGB1bmRlZmluZWRgIGlmIG5vIGJhbm5lciBoYXMgYmVlbiBzZXQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBndWlsZEljb25VcmwoXG4gIGd1aWxkSWQ6IEJpZ1N0cmluZyxcbiAgaW1hZ2VIYXNoOiBCaWdTdHJpbmcgfCB1bmRlZmluZWQsXG4gIG9wdGlvbnM/OiB7XG4gICAgc2l6ZT86IEltYWdlU2l6ZVxuICAgIGZvcm1hdD86IEltYWdlRm9ybWF0XG4gIH0sXG4pOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICByZXR1cm4gaW1hZ2VIYXNoXG4gICAgPyBmb3JtYXRJbWFnZVVybChcbiAgICAgICAgYGh0dHBzOi8vY2RuLmRpc2NvcmRhcHAuY29tL2ljb25zLyR7Z3VpbGRJZH0vJHt0eXBlb2YgaW1hZ2VIYXNoID09PSAnc3RyaW5nJyA/IGltYWdlSGFzaCA6IGljb25CaWdpbnRUb0hhc2goaW1hZ2VIYXNoKX1gLFxuICAgICAgICBvcHRpb25zPy5zaXplID8/IDEyOCxcbiAgICAgICAgb3B0aW9ucz8uZm9ybWF0LFxuICAgICAgKVxuICAgIDogdW5kZWZpbmVkXG59XG5cbi8qKlxuICogQnVpbGRzIHRoZSBVUkwgdG8gYSBndWlsZCBzcGxhc2ggc3RvcmVkIGluIHRoZSBEaXNjb3JkIENETi5cbiAqXG4gKiBAcGFyYW0gZ3VpbGRJZCAtIFRoZSBJRCBvZiB0aGUgZ3VpbGQgdG8gZ2V0IHRoZSBzcGxhc2ggb2YuXG4gKiBAcGFyYW0gaW1hZ2VIYXNoIC0gVGhlIGhhc2ggaWRlbnRpZnlpbmcgdGhlIHNwbGFzaCBpbWFnZS5cbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBidWlsZGluZyBvZiB0aGUgVVJMLlxuICogQHJldHVybnMgVGhlIGxpbmsgdG8gdGhlIHJlc291cmNlIG9yIGB1bmRlZmluZWRgIGlmIHRoZSBndWlsZCBkb2VzIG5vdCBoYXZlIGEgc3BsYXNoIGltYWdlIHNldC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGd1aWxkU3BsYXNoVXJsKFxuICBndWlsZElkOiBCaWdTdHJpbmcsXG4gIGltYWdlSGFzaDogQmlnU3RyaW5nIHwgdW5kZWZpbmVkLFxuICBvcHRpb25zPzoge1xuICAgIHNpemU/OiBJbWFnZVNpemVcbiAgICBmb3JtYXQ/OiBJbWFnZUZvcm1hdFxuICB9LFxuKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIGltYWdlSGFzaFxuICAgID8gZm9ybWF0SW1hZ2VVcmwoXG4gICAgICAgIGBodHRwczovL2Nkbi5kaXNjb3JkYXBwLmNvbS9zcGxhc2hlcy8ke2d1aWxkSWR9LyR7dHlwZW9mIGltYWdlSGFzaCA9PT0gJ3N0cmluZycgPyBpbWFnZUhhc2ggOiBpY29uQmlnaW50VG9IYXNoKGltYWdlSGFzaCl9YCxcbiAgICAgICAgb3B0aW9ucz8uc2l6ZSA/PyAxMjgsXG4gICAgICAgIG9wdGlvbnM/LmZvcm1hdCxcbiAgICAgIClcbiAgICA6IHVuZGVmaW5lZFxufVxuXG4vKipcbiAqIEJ1aWxkcyB0aGUgVVJMIHRvIGEgZ3VpbGQgZGlzY292ZXJ5IHNwbGFzaCBzdG9yZWQgaW4gdGhlIERpc2NvcmQgQ0ROLlxuICpcbiAqIEBwYXJhbSBndWlsZElkIC0gVGhlIElEIG9mIHRoZSBndWlsZCB0byBnZXQgdGhlIHNwbGFzaCBvZi5cbiAqIEBwYXJhbSBpbWFnZUhhc2ggLSBUaGUgaGFzaCBpZGVudGlmeWluZyB0aGUgZGlzY292ZXJ5IHNwbGFzaCBpbWFnZS5cbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBidWlsZGluZyBvZiB0aGUgVVJMLlxuICogQHJldHVybnMgVGhlIGxpbmsgdG8gdGhlIHJlc291cmNlIG9yIGB1bmRlZmluZWRgIGlmIHRoZSBndWlsZCBkb2VzIG5vdCBoYXZlIGEgc3BsYXNoIGltYWdlIHNldC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGd1aWxkRGlzY292ZXJ5U3BsYXNoVXJsKFxuICBndWlsZElkOiBCaWdTdHJpbmcsXG4gIGltYWdlSGFzaDogQmlnU3RyaW5nIHwgdW5kZWZpbmVkLFxuICBvcHRpb25zPzoge1xuICAgIHNpemU/OiBJbWFnZVNpemVcbiAgICBmb3JtYXQ/OiBJbWFnZUZvcm1hdFxuICB9LFxuKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIGltYWdlSGFzaFxuICAgID8gZm9ybWF0SW1hZ2VVcmwoXG4gICAgICAgIGBodHRwczovL2Nkbi5kaXNjb3JkYXBwLmNvbS9kaXNjb3Zlcnktc3BsYXNoZXMvJHtndWlsZElkfS8ke3R5cGVvZiBpbWFnZUhhc2ggPT09ICdzdHJpbmcnID8gaW1hZ2VIYXNoIDogaWNvbkJpZ2ludFRvSGFzaChpbWFnZUhhc2gpfWAsXG4gICAgICAgIG9wdGlvbnM/LnNpemUgPz8gMTI4LFxuICAgICAgICBvcHRpb25zPy5mb3JtYXQsXG4gICAgICApXG4gICAgOiB1bmRlZmluZWRcbn1cblxuLyoqXG4gKiBCdWlsZHMgdGhlIFVSTCB0byBhIGd1aWxkIHNjaGVkdWxlZCBldmVudCBjb3ZlciBzdG9yZWQgaW4gdGhlIERpc2NvcmQgQ0ROLlxuICpcbiAqIEBwYXJhbSBldmVudElkIC0gVGhlIElEIG9mIHRoZSBzY2hlZHVsZWQgZXZlbnQgdG8gZ2V0IHRoZSBjb3ZlciBvZi5cbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBidWlsZGluZyBvZiB0aGUgVVJMLlxuICogQHJldHVybnMgVGhlIGxpbmsgdG8gdGhlIHJlc291cmNlIG9yIGB1bmRlZmluZWRgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ3VpbGRTY2hlZHVsZWRFdmVudENvdmVyVXJsKFxuICBldmVudElkOiBCaWdTdHJpbmcsXG4gIG9wdGlvbnM6IHtcbiAgICBjb3Zlcj86IEJpZ1N0cmluZ1xuICAgIHNpemU/OiBJbWFnZVNpemVcbiAgICBmb3JtYXQ/OiBJbWFnZUZvcm1hdFxuICB9LFxuKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIG9wdGlvbnMuY292ZXJcbiAgICA/IGZvcm1hdEltYWdlVXJsKFxuICAgICAgICBgaHR0cHM6Ly9jZG4uZGlzY29yZGFwcC5jb20vZ3VpbGQtZXZlbnRzLyR7ZXZlbnRJZH0vJHt0eXBlb2Ygb3B0aW9ucy5jb3ZlciA9PT0gJ3N0cmluZycgPyBvcHRpb25zLmNvdmVyIDogaWNvbkJpZ2ludFRvSGFzaChvcHRpb25zLmNvdmVyKX1gLFxuICAgICAgICBvcHRpb25zLnNpemUgPz8gMTI4LFxuICAgICAgICBvcHRpb25zLmZvcm1hdCxcbiAgICAgIClcbiAgICA6IHVuZGVmaW5lZFxufVxuXG4vKipcbiAqIEJ1aWxkcyBhIFVSTCB0byB0aGUgZ3VpbGQgd2lkZ2V0IGltYWdlIHN0b3JlZCBpbiB0aGUgRGlzY29yZCBDRE4uXG4gKlxuICogQHBhcmFtIGd1aWxkSWQgLSBUaGUgSUQgb2YgdGhlIGd1aWxkIHRvIGdldCB0aGUgbGluayB0byB0aGUgd2lkZ2V0IGltYWdlIGZvci5cbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBidWlsZGluZyBvZiB0aGUgVVJMLlxuICogQHJldHVybnMgVGhlIGxpbmsgdG8gdGhlIHJlc291cmNlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0V2lkZ2V0SW1hZ2VVcmwoZ3VpbGRJZDogQmlnU3RyaW5nLCBvcHRpb25zPzogR2V0R3VpbGRXaWRnZXRJbWFnZVF1ZXJ5KTogc3RyaW5nIHtcbiAgbGV0IHVybCA9IGBodHRwczovL2Rpc2NvcmRhcHAuY29tL2FwaS9ndWlsZHMvJHtndWlsZElkfS93aWRnZXQucG5nYFxuXG4gIGlmIChvcHRpb25zPy5zdHlsZSkge1xuICAgIHVybCArPSBgP3N0eWxlPSR7b3B0aW9ucy5zdHlsZX1gXG4gIH1cblxuICByZXR1cm4gdXJsXG59XG5cbi8qKlxuICogQnVpbGRzIGEgVVJMIHRvIGEgbWVtYmVyJ3MgYXZhdGFyIHN0b3JlZCBpbiB0aGUgRGlzY29yZCBDRE4uXG4gKlxuICogQHBhcmFtIGd1aWxkSWQgLSBUaGUgSUQgb2YgdGhlIGd1aWxkIHdoZXJlIHRoZSBtZW1iZXIgaXNcbiAqIEBwYXJhbSB1c2VySWQgLSBUaGUgSUQgb2YgdGhlIHVzZXIgdG8gZ2V0IHRoZSBhdmF0YXIgb2YuXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgYnVpbGRpbmcgb2YgdGhlIFVSTC5cbiAqIEByZXR1cm5zIFRoZSBsaW5rIHRvIHRoZSByZXNvdXJjZSBvciBgdW5kZWZpbmVkYCBpZiBubyBiYW5uZXIgaGFzIGJlZW4gc2V0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gbWVtYmVyQXZhdGFyVXJsKFxuICBndWlsZElkOiBCaWdTdHJpbmcsXG4gIHVzZXJJZDogQmlnU3RyaW5nLFxuICBvcHRpb25zPzoge1xuICAgIGF2YXRhcj86IEJpZ1N0cmluZ1xuICAgIHNpemU/OiBJbWFnZVNpemVcbiAgICBmb3JtYXQ/OiBJbWFnZUZvcm1hdFxuICB9LFxuKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIG9wdGlvbnM/LmF2YXRhclxuICAgID8gZm9ybWF0SW1hZ2VVcmwoXG4gICAgICAgIGBodHRwczovL2Nkbi5kaXNjb3JkYXBwLmNvbS9ndWlsZHMvJHtndWlsZElkfS91c2Vycy8ke3VzZXJJZH0vYXZhdGFycy8ke1xuICAgICAgICAgIHR5cGVvZiBvcHRpb25zLmF2YXRhciA9PT0gJ3N0cmluZycgPyBvcHRpb25zLmF2YXRhciA6IGljb25CaWdpbnRUb0hhc2gob3B0aW9ucy5hdmF0YXIpXG4gICAgICAgIH1gLFxuICAgICAgICBvcHRpb25zPy5zaXplID8/IDEyOCxcbiAgICAgICAgb3B0aW9ucz8uZm9ybWF0LFxuICAgICAgKVxuICAgIDogdW5kZWZpbmVkXG59XG5cbi8qKlxuICogQnVpbGRzIGEgVVJMIHRvIGEgbWVtYmVyJ3MgYmFubmVyIHN0b3JlZCBpbiB0aGUgRGlzY29yZCBDRE4uXG4gKlxuICogQHBhcmFtIGd1aWxkSWQgLSBUaGUgSUQgb2YgdGhlIGd1aWxkIHdoZXJlIHRoZSBtZW1iZXIgaXNcbiAqIEBwYXJhbSB1c2VySWQgLSBUaGUgSUQgb2YgdGhlIHVzZXIgdG8gZ2V0IHRoZSBiYW5uZXIgb2YuXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgYnVpbGRpbmcgb2YgdGhlIFVSTC5cbiAqIEByZXR1cm5zIFRoZSBsaW5rIHRvIHRoZSByZXNvdXJjZSBvciBgdW5kZWZpbmVkYCBpZiBubyBiYW5uZXIgaGFzIGJlZW4gc2V0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gbWVtYmVyQmFubmVyVXJsKFxuICBndWlsZElkOiBCaWdTdHJpbmcsXG4gIHVzZXJJZDogQmlnU3RyaW5nLFxuICBvcHRpb25zPzoge1xuICAgIGJhbm5lcj86IEJpZ1N0cmluZ1xuICAgIHNpemU/OiBJbWFnZVNpemVcbiAgICBmb3JtYXQ/OiBJbWFnZUZvcm1hdFxuICB9LFxuKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIG9wdGlvbnM/LmJhbm5lclxuICAgID8gZm9ybWF0SW1hZ2VVcmwoXG4gICAgICAgIGBodHRwczovL2Nkbi5kaXNjb3JkYXBwLmNvbS9ndWlsZHMvJHtndWlsZElkfS91c2Vycy8ke3VzZXJJZH0vYmFubmVycy8ke1xuICAgICAgICAgIHR5cGVvZiBvcHRpb25zLmJhbm5lciA9PT0gJ3N0cmluZycgPyBvcHRpb25zLmJhbm5lciA6IGljb25CaWdpbnRUb0hhc2gob3B0aW9ucy5iYW5uZXIpXG4gICAgICAgIH1gLFxuICAgICAgICBvcHRpb25zPy5zaXplID8/IDEyOCxcbiAgICAgICAgb3B0aW9ucz8uZm9ybWF0LFxuICAgICAgKVxuICAgIDogdW5kZWZpbmVkXG59XG5cbi8qKlxuICogQnVpbGRzIHRoZSBVUkwgdG8gYW4gYXBwbGljYXRpb24gaWNvbiBzdG9yZWQgaW4gdGhlIERpc2NvcmQgQ0ROLlxuICpcbiAqIEBwYXJhbSBhcHBsaWNhdGlvbklkIC0gVGhlIElEIG9mIHRoZSBhcHBsaWNhdGlvbiB0byBnZXQgdGhlIGljb24gb2YuXG4gKiBAcGFyYW0gaWNvbkhhc2ggLSBUaGUgaGFzaCBpZGVudGlmeWluZyB0aGUgYXBwbGljYXRpb24gaWNvbi5cbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBidWlsZGluZyBvZiB0aGUgVVJMLlxuICogQHJldHVybnMgVGhlIGxpbmsgdG8gdGhlIHJlc291cmNlIG9yIGB1bmRlZmluZWRgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhcHBsaWNhdGlvbkljb25VcmwoXG4gIGFwcGxpY2F0aW9uSWQ6IEJpZ1N0cmluZyxcbiAgaWNvbkhhc2g6IEJpZ1N0cmluZyB8IHVuZGVmaW5lZCxcbiAgb3B0aW9ucz86IHtcbiAgICBzaXplPzogSW1hZ2VTaXplXG4gICAgZm9ybWF0PzogSW1hZ2VGb3JtYXRcbiAgfSxcbik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBpY29uSGFzaFxuICAgID8gZm9ybWF0SW1hZ2VVcmwoXG4gICAgICAgIGBodHRwczovL2Nkbi5kaXNjb3JkYXBwLmNvbS9hcHAtaWNvbnMvJHthcHBsaWNhdGlvbklkfS8ke3R5cGVvZiBpY29uSGFzaCA9PT0gJ3N0cmluZycgPyBpY29uSGFzaCA6IGljb25CaWdpbnRUb0hhc2goaWNvbkhhc2gpfWAsXG4gICAgICAgIG9wdGlvbnM/LnNpemUgPz8gMTI4LFxuICAgICAgICBvcHRpb25zPy5mb3JtYXQsXG4gICAgICApXG4gICAgOiB1bmRlZmluZWRcbn1cblxuLyoqXG4gKiBCdWlsZHMgdGhlIFVSTCB0byBhbiBhcHBsaWNhdGlvbiBjb3ZlciBzdG9yZWQgaW4gdGhlIERpc2NvcmQgQ0ROLlxuICpcbiAqIEBwYXJhbSBhcHBsaWNhdGlvbklkIC0gVGhlIElEIG9mIHRoZSBhcHBsaWNhdGlvbiB0byBnZXQgdGhlIGNvdmVyIG9mLlxuICogQHBhcmFtIGNvdmVySGFzaCAtIFRoZSBoYXNoIGlkZW50aWZ5aW5nIHRoZSBhcHBsaWNhdGlvbiBjb3Zlci5cbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBidWlsZGluZyBvZiB0aGUgVVJMLlxuICogQHJldHVybnMgVGhlIGxpbmsgdG8gdGhlIHJlc291cmNlIG9yIGB1bmRlZmluZWRgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYXBwbGljYXRpb25Db3ZlclVybChcbiAgYXBwbGljYXRpb25JZDogQmlnU3RyaW5nLFxuICBjb3Zlckhhc2g6IEJpZ1N0cmluZyB8IHVuZGVmaW5lZCxcbiAgb3B0aW9ucz86IHtcbiAgICBzaXplPzogSW1hZ2VTaXplXG4gICAgZm9ybWF0PzogSW1hZ2VGb3JtYXRcbiAgfSxcbik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBjb3Zlckhhc2hcbiAgICA/IGZvcm1hdEltYWdlVXJsKFxuICAgICAgICBgaHR0cHM6Ly9jZG4uZGlzY29yZGFwcC5jb20vYXBwLWljb25zLyR7YXBwbGljYXRpb25JZH0vJHt0eXBlb2YgY292ZXJIYXNoID09PSAnc3RyaW5nJyA/IGNvdmVySGFzaCA6IGljb25CaWdpbnRUb0hhc2goY292ZXJIYXNoKX1gLFxuICAgICAgICBvcHRpb25zPy5zaXplID8/IDEyOCxcbiAgICAgICAgb3B0aW9ucz8uZm9ybWF0LFxuICAgICAgKVxuICAgIDogdW5kZWZpbmVkXG59XG5cbi8qKlxuICogQnVpbGRzIHRoZSBVUkwgdG8gYW4gYXBwbGljYXRpb24gYXNzZXQgc3RvcmVkIGluIHRoZSBEaXNjb3JkIENETi5cbiAqXG4gKiBAcGFyYW0gYXBwbGljYXRpb25JZCAtIFRoZSBJRCBvZiB0aGUgYXBwbGljYXRpb24gdG8gZ2V0IHRoZSBhc3NldCBvZi5cbiAqIEBwYXJhbSBhc3NldElkIC0gVGhlIGlkIGlkZW50aWZ5aW5nIHRoZSBhcHBsaWNhdGlvbiBhc3NldC5cbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBidWlsZGluZyBvZiB0aGUgVVJMLlxuICogQHJldHVybnMgVGhlIGxpbmsgdG8gdGhlIHJlc291cmNlIG9yIGB1bmRlZmluZWRgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYXBwbGljYXRpb25Bc3NldFVybChcbiAgYXBwbGljYXRpb25JZDogQmlnU3RyaW5nLFxuICBhc3NldElkOiBCaWdTdHJpbmcgfCB1bmRlZmluZWQsXG4gIG9wdGlvbnM/OiB7XG4gICAgc2l6ZT86IEltYWdlU2l6ZVxuICAgIGZvcm1hdD86IEltYWdlRm9ybWF0XG4gIH0sXG4pOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICByZXR1cm4gYXNzZXRJZFxuICAgID8gZm9ybWF0SW1hZ2VVcmwoXG4gICAgICAgIGBodHRwczovL2Nkbi5kaXNjb3JkYXBwLmNvbS9hcHAtaWNvbnMvJHthcHBsaWNhdGlvbklkfS8ke3R5cGVvZiBhc3NldElkID09PSAnc3RyaW5nJyA/IGFzc2V0SWQgOiBpY29uQmlnaW50VG9IYXNoKGFzc2V0SWQpfWAsXG4gICAgICAgIG9wdGlvbnM/LnNpemUgPz8gMTI4LFxuICAgICAgICBvcHRpb25zPy5mb3JtYXQsXG4gICAgICApXG4gICAgOiB1bmRlZmluZWRcbn1cblxuLyoqXG4gKiBCdWlsZHMgdGhlIFVSTCB0byBhIHN0aWNrZXIgcGFjayBiYW5uZXIgc3RvcmVkIGluIHRoZSBEaXNjb3JkIENETi5cbiAqXG4gKiBAcGFyYW0gYmFubmVyQXNzZXRJZCAtIFRoZSBJRCBvZiB0aGUgYmFubmVyIGFzc2V0IGZvciB0aGUgc3RpY2tlciBwYWNrLlxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIGJ1aWxkaW5nIG9mIHRoZSBVUkwuXG4gKiBAcmV0dXJucyBUaGUgbGluayB0byB0aGUgcmVzb3VyY2Ugb3IgYHVuZGVmaW5lZGAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzdGlja2VyUGFja0Jhbm5lclVybChcbiAgYmFubmVyQXNzZXRJZDogQmlnU3RyaW5nIHwgdW5kZWZpbmVkLFxuICBvcHRpb25zPzoge1xuICAgIHNpemU/OiBJbWFnZVNpemVcbiAgICBmb3JtYXQ/OiBJbWFnZUZvcm1hdFxuICB9LFxuKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIGJhbm5lckFzc2V0SWRcbiAgICA/IGZvcm1hdEltYWdlVXJsKFxuICAgICAgICBgaHR0cHM6Ly9jZG4uZGlzY29yZGFwcC5jb20vYXBwLWFzc2V0cy83MTA5ODI0MTQzMDE3OTAyMTYvc3RvcmUvJHtcbiAgICAgICAgICB0eXBlb2YgYmFubmVyQXNzZXRJZCA9PT0gJ3N0cmluZycgPyBiYW5uZXJBc3NldElkIDogaWNvbkJpZ2ludFRvSGFzaChiYW5uZXJBc3NldElkKVxuICAgICAgICB9YCxcbiAgICAgICAgb3B0aW9ucz8uc2l6ZSA/PyAxMjgsXG4gICAgICAgIG9wdGlvbnM/LmZvcm1hdCxcbiAgICAgIClcbiAgICA6IHVuZGVmaW5lZFxufVxuXG4vKipcbiAqIEJ1aWxkcyB0aGUgVVJMIHRvIGEgc3RpY2tlciBzdG9yZWQgaW4gdGhlIERpc2NvcmQgQ0ROLlxuICpcbiAqIEBwYXJhbSBzdGlja2VySWQgLSBUaGUgSUQgb2YgdGhlIHN0aWNrZXIgdG8gZ2V0IHRoZSBpY29uIG9mXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgYnVpbGRpbmcgb2YgdGhlIFVSTC5cbiAqIEByZXR1cm5zIFRoZSBsaW5rIHRvIHRoZSByZXNvdXJjZSBvciBgdW5kZWZpbmVkYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN0aWNrZXJVcmwoXG4gIHN0aWNrZXJJZDogQmlnU3RyaW5nIHwgbnVtYmVyLFxuICBvcHRpb25zPzoge1xuICAgIHNpemU/OiBJbWFnZVNpemVcbiAgICBmb3JtYXQ/OiBJbWFnZUZvcm1hdFxuICAgIHR5cGU/OiBTdGlja2VyRm9ybWF0VHlwZXNcbiAgfSxcbik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIGlmICghc3RpY2tlcklkKSByZXR1cm5cblxuICBjb25zdCB1cmwgPVxuICAgIG9wdGlvbnM/LnR5cGUgPT09IFN0aWNrZXJGb3JtYXRUeXBlcy5HaWZcbiAgICAgID8gYGh0dHBzOi8vbWVkaWEuZGlzY29yZGFwcC5uZXQvc3RpY2tlcnMvJHtzdGlja2VySWR9YFxuICAgICAgOiBgaHR0cHM6Ly9jZG4uZGlzY29yZGFwcC5jb20vc3RpY2tlcnMvJHtzdGlja2VySWR9YFxuXG4gIHJldHVybiBmb3JtYXRJbWFnZVVybCh1cmwsIG9wdGlvbnM/LnNpemUgPz8gMTI4LCBvcHRpb25zPy5mb3JtYXQpXG59XG5cbi8qKlxuICogQnVpbGRzIHRoZSBVUkwgdG8gYSB0ZWFtIGljb24gc3RvcmVkIGluIHRoZSBEaXNjb3JkIENETi5cbiAqXG4gKiBAcGFyYW0gdGVhbUlkIC0gVGhlIElEIG9mIHRoZSB0ZWFtIHRvIGdldCB0aGUgaWNvbiBvZlxuICogQHBhcmFtIGljb25IYXNoIC0gVGhlIGhhc2ggb2YgdGhlIHRlYW0gaWNvbi5cbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBidWlsZGluZyBvZiB0aGUgVVJMLlxuICogQHJldHVybnMgVGhlIGxpbmsgdG8gdGhlIHJlc291cmNlIG9yIGB1bmRlZmluZWRgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdGVhbUljb25VcmwoXG4gIHRlYW1JZDogQmlnU3RyaW5nLFxuICBpY29uSGFzaDogQmlnU3RyaW5nIHwgdW5kZWZpbmVkLFxuICBvcHRpb25zPzoge1xuICAgIHNpemU/OiBJbWFnZVNpemVcbiAgICBmb3JtYXQ/OiBJbWFnZUZvcm1hdFxuICB9LFxuKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIGljb25IYXNoXG4gICAgPyBmb3JtYXRJbWFnZVVybChcbiAgICAgICAgYGh0dHBzOi8vY2RuLmRpc2NvcmRhcHAuY29tL3RlYW0taWNvbnMvJHt0ZWFtSWR9L3N0b3JlLyR7dHlwZW9mIGljb25IYXNoID09PSAnc3RyaW5nJyA/IGljb25IYXNoIDogaWNvbkJpZ2ludFRvSGFzaChpY29uSGFzaCl9YCxcbiAgICAgICAgb3B0aW9ucz8uc2l6ZSA/PyAxMjgsXG4gICAgICAgIG9wdGlvbnM/LmZvcm1hdCxcbiAgICAgIClcbiAgICA6IHVuZGVmaW5lZFxufVxuXG4vKipcbiAqIEJ1aWxkcyB0aGUgVVJMIHRvIGEgcm9sZSBpY29uIHN0b3JlZCBpbiB0aGUgRGlzY29yZCBDRE4uXG4gKlxuICogQHBhcmFtIHJvbGVJZCAtIFRoZSBJRCBvZiB0aGUgcm9sZSB0byBnZXQgdGhlIGljb24gb2ZcbiAqIEBwYXJhbSBpY29uSGFzaCAtIFRoZSBoYXNoIG9mIHRoZSByb2xlIGljb24uXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgYnVpbGRpbmcgb2YgdGhlIFVSTC5cbiAqIEByZXR1cm5zIFRoZSBsaW5rIHRvIHRoZSByZXNvdXJjZSBvciBgdW5kZWZpbmVkYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJvbGVJY29uVXJsKFxuICByb2xlSWQ6IEJpZ1N0cmluZyxcbiAgaWNvbkhhc2g6IEJpZ1N0cmluZyB8IHVuZGVmaW5lZCxcbiAgb3B0aW9ucz86IHtcbiAgICBzaXplPzogSW1hZ2VTaXplXG4gICAgZm9ybWF0PzogSW1hZ2VGb3JtYXRcbiAgfSxcbik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBpY29uSGFzaFxuICAgID8gZm9ybWF0SW1hZ2VVcmwoXG4gICAgICAgIGBodHRwczovL2Nkbi5kaXNjb3JkYXBwLmNvbS9yb2xlLWljb25zLyR7cm9sZUlkfS8ke3R5cGVvZiBpY29uSGFzaCA9PT0gJ3N0cmluZycgPyBpY29uSGFzaCA6IGljb25CaWdpbnRUb0hhc2goaWNvbkhhc2gpfWAsXG4gICAgICAgIG9wdGlvbnM/LnNpemUgPz8gMTI4LFxuICAgICAgICBvcHRpb25zPy5mb3JtYXQsXG4gICAgICApXG4gICAgOiB1bmRlZmluZWRcbn1cbiJdLCJuYW1lcyI6WyJTdGlja2VyRm9ybWF0VHlwZXMiLCJpY29uQmlnaW50VG9IYXNoIiwiZm9ybWF0SW1hZ2VVcmwiLCJ1cmwiLCJzaXplIiwiZm9ybWF0IiwiaW5jbHVkZXMiLCJlbW9qaVVybCIsImVtb2ppSWQiLCJhbmltYXRlZCIsImF2YXRhclVybCIsInVzZXJJZCIsImRpc2NyaW1pbmF0b3IiLCJvcHRpb25zIiwiYXZhdGFyIiwiQmlnSW50IiwiTnVtYmVyIiwiYXZhdGFyRGVjb3JhdGlvblVybCIsImF2YXRhckRlY29yYXRpb24iLCJiYW5uZXJVcmwiLCJiYW5uZXIiLCJ1bmRlZmluZWQiLCJndWlsZEJhbm5lclVybCIsImd1aWxkSWQiLCJndWlsZEljb25VcmwiLCJpbWFnZUhhc2giLCJndWlsZFNwbGFzaFVybCIsImd1aWxkRGlzY292ZXJ5U3BsYXNoVXJsIiwiZ3VpbGRTY2hlZHVsZWRFdmVudENvdmVyVXJsIiwiZXZlbnRJZCIsImNvdmVyIiwiZ2V0V2lkZ2V0SW1hZ2VVcmwiLCJzdHlsZSIsIm1lbWJlckF2YXRhclVybCIsIm1lbWJlckJhbm5lclVybCIsImFwcGxpY2F0aW9uSWNvblVybCIsImFwcGxpY2F0aW9uSWQiLCJpY29uSGFzaCIsImFwcGxpY2F0aW9uQ292ZXJVcmwiLCJjb3Zlckhhc2giLCJhcHBsaWNhdGlvbkFzc2V0VXJsIiwiYXNzZXRJZCIsInN0aWNrZXJQYWNrQmFubmVyVXJsIiwiYmFubmVyQXNzZXRJZCIsInN0aWNrZXJVcmwiLCJzdGlja2VySWQiLCJ0eXBlIiwiR2lmIiwidGVhbUljb25VcmwiLCJ0ZWFtSWQiLCJyb2xlSWNvblVybCIsInJvbGVJZCJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBMEZBLGtCQUFrQixRQUFRLG9CQUFtQjtBQUN2SSxTQUFTQyxnQkFBZ0IsUUFBUSxZQUFXO0FBRTVDLDhCQUE4QixHQUM5QixPQUFPLFNBQVNDLGVBQWVDLEdBQVcsRUFBRUMsT0FBa0IsR0FBRyxFQUFFQyxNQUFvQjtJQUNyRixPQUFPLEdBQUdGLElBQUksQ0FBQyxFQUFFRSxVQUFXRixDQUFBQSxJQUFJRyxRQUFRLENBQUMsU0FBUyxRQUFRLE1BQUssRUFBRyxNQUFNLEVBQUVGLE1BQU07QUFDbEY7QUFFQTs7Ozs7Ozs7OztDQVVDLEdBQ0QsT0FBTyxTQUFTRyxTQUFTQyxPQUFrQixFQUFFQyxXQUFXLEtBQUssRUFBRUosU0FBc0IsS0FBSztJQUN4RixPQUFPLENBQUMsa0NBQWtDLEVBQUVHLFFBQVEsQ0FBQyxFQUFFQyxXQUFZSixXQUFXLFNBQVMsU0FBUyxRQUFTQSxTQUFTSSxZQUFZSixXQUFXLFNBQVMsbUJBQW1CLElBQUk7QUFDM0s7QUFFQTs7Ozs7OztDQU9DLEdBQ0QsT0FBTyxTQUFTSyxVQUNkQyxNQUFpQixFQUNqQkMsYUFBcUIsRUFDckJDLE9BSUM7SUFFRCxPQUFPQSxTQUFTQyxTQUNaWixlQUNFLENBQUMsbUNBQW1DLEVBQUVTLE9BQU8sQ0FBQyxFQUFFLE9BQU9FLFFBQVFDLE1BQU0sS0FBSyxXQUFXRCxRQUFRQyxNQUFNLEdBQUdiLGlCQUFpQlksUUFBUUMsTUFBTSxHQUFHLEVBQ3hJRCxTQUFTVCxRQUFRLEtBQ2pCUyxTQUFTUixVQUVYLENBQUMseUNBQXlDLEVBQUVPLGtCQUFrQixNQUFNLEFB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
|
package/dist/types/images.d.ts
CHANGED
|
@@ -6,9 +6,13 @@ export declare function formatImageUrl(url: string, size?: ImageSize, format?: I
|
|
|
6
6
|
*
|
|
7
7
|
* @param emojiId The id of the emoji
|
|
8
8
|
* @param animated Whether or not the emoji is animated
|
|
9
|
+
* @param format The format of the image, defaults to png
|
|
9
10
|
* @returns string
|
|
11
|
+
*
|
|
12
|
+
* @remarks
|
|
13
|
+
* The animated parameter is used to specify the animated query parameter valid for webp images or to force the gif if the format is not set to webp.
|
|
10
14
|
*/
|
|
11
|
-
export declare function emojiUrl(emojiId: BigString, animated?: boolean): string;
|
|
15
|
+
export declare function emojiUrl(emojiId: BigString, animated?: boolean, format?: ImageFormat): string;
|
|
12
16
|
/**
|
|
13
17
|
* Builds a URL to a user's avatar stored in the Discord CDN.
|
|
14
18
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"images.d.ts","sourceRoot":"","sources":["../../src/images.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,wBAAwB,EAAE,KAAK,WAAW,EAAE,KAAK,SAAS,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAGvI,gCAAgC;AAChC,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,GAAE,SAAe,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,MAAM,CAE/F;AAED
|
|
1
|
+
{"version":3,"file":"images.d.ts","sourceRoot":"","sources":["../../src/images.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@discordeno/utils",
|
|
3
|
-
"version": "21.0.0-next.
|
|
3
|
+
"version": "21.0.0-next.99c8a2e",
|
|
4
4
|
"main": "./dist/esm/index.js",
|
|
5
5
|
"types": "./dist/types/index.d.ts",
|
|
6
6
|
"exports": {
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
"test:test-type": "tsc --project tests/tsconfig.json"
|
|
34
34
|
},
|
|
35
35
|
"dependencies": {
|
|
36
|
-
"@discordeno/types": "21.0.0-next.
|
|
36
|
+
"@discordeno/types": "21.0.0-next.99c8a2e"
|
|
37
37
|
},
|
|
38
38
|
"devDependencies": {
|
|
39
39
|
"@biomejs/biome": "^1.9.4",
|