@discordeno/utils 22.0.1-next.a85207e → 22.0.1-next.abff4d2

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.
@@ -1 +1 @@
1
- {"version":3,"file":"images.d.ts","sourceRoot":"","sources":["../src/images.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"images.d.ts","sourceRoot":"","sources":["../src/images.ts"],"names":[],"mappings":"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"}
package/dist/images.js CHANGED
@@ -1,7 +1,9 @@
1
1
  import { StickerFormatTypes } from '@discordeno/types';
2
2
  import { iconBigintToHash } from './hash.js';
3
3
  /** Help format an image url. */ export function formatImageUrl(url, size = 128, format) {
4
- return `${url}.${format ?? (url.includes('/a_') ? 'gif' : 'webp')}?size=${size}`;
4
+ const animated = url.includes('/a_');
5
+ format ??= animated ? 'gif' : 'webp';
6
+ return `${url}.${format}?size=${size}${animated && format === 'webp' ? '&animated=true' : ''}`;
5
7
  }
6
8
  /**
7
9
  * Get the url for an emoji.
@@ -223,4 +225,4 @@ export function avatarDecorationUrl(avatarDecoration) {
223
225
  return formatImageUrl(`https://cdn.discordapp.com/guild-tag-badges/${guildId}/${badgeHash}`, options?.size ?? 128, options?.format);
224
226
  }
225
227
 
226
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbWFnZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBCaWdTdHJpbmcsIHR5cGUgR2V0R3VpbGRXaWRnZXRJbWFnZVF1ZXJ5LCB0eXBlIEltYWdlRm9ybWF0LCB0eXBlIEltYWdlU2l6ZSwgU3RpY2tlckZvcm1hdFR5cGVzIH0gZnJvbSAnQGRpc2NvcmRlbm8vdHlwZXMnO1xuaW1wb3J0IHsgaWNvbkJpZ2ludFRvSGFzaCB9IGZyb20gJy4vaGFzaC5qcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSW1hZ2VPcHRpb25zIHtcbiAgc2l6ZT86IEltYWdlU2l6ZTtcbiAgZm9ybWF0PzogSW1hZ2VGb3JtYXQ7XG59XG5cbi8qKiBIZWxwIGZvcm1hdCBhbiBpbWFnZSB1cmwuICovXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0SW1hZ2VVcmwodXJsOiBzdHJpbmcsIHNpemU6IEltYWdlU2l6ZSA9IDEyOCwgZm9ybWF0PzogSW1hZ2VGb3JtYXQpOiBzdHJpbmcge1xuICByZXR1cm4gYCR7dXJsfS4ke2Zvcm1hdCA/PyAodXJsLmluY2x1ZGVzKCcvYV8nKSA/ICdnaWYnIDogJ3dlYnAnKX0/c2l6ZT0ke3NpemV9YDtcbn1cblxuLyoqXG4gKiBHZXQgdGhlIHVybCBmb3IgYW4gZW1vamkuXG4gKlxuICogQHBhcmFtIGVtb2ppSWQgVGhlIGlkIG9mIHRoZSBlbW9qaVxuICogQHBhcmFtIGFuaW1hdGVkIFdoZXRoZXIgb3Igbm90IHRoZSBlbW9qaSBpcyBhbmltYXRlZFxuICogQHBhcmFtIGZvcm1hdCBUaGUgZm9ybWF0IG9mIHRoZSBpbWFnZSwgZGVmYXVsdHMgdG8gcG5nXG4gKiBAcmV0dXJucyBzdHJpbmdcbiAqXG4gKiBAcmVtYXJrc1xuICogVGhlIGFuaW1hdGVkIHBhcmFtZXRlciBpcyB1c2VkIHRvIHNwZWNpZnkgdGhlIGFuaW1hdGVkIHF1ZXJ5IHBhcmFtZXRlciB2YWxpZCBmb3Igd2VicCBpbWFnZXMgb3IgdG8gZm9yY2UgdGhlIGdpZiBpZiB0aGUgZm9ybWF0IGlzIG5vdCBzZXQgdG8gd2VicC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGVtb2ppVXJsKGVtb2ppSWQ6IEJpZ1N0cmluZywgYW5pbWF0ZWQgPSBmYWxzZSwgZm9ybWF0OiBJbWFnZUZvcm1hdCA9ICdwbmcnKTogc3RyaW5nIHtcbiAgcmV0dXJuIGBodHRwczovL2Nkbi5kaXNjb3JkYXBwLmNvbS9lbW9qaXMvJHtlbW9qaUlkfS4ke2FuaW1hdGVkID8gKGZvcm1hdCA9PT0gJ3dlYnAnID8gJ3dlYnAnIDogJ2dpZicpIDogZm9ybWF0fSR7YW5pbWF0ZWQgJiYgZm9ybWF0ID09PSAnd2VicCcgPyAnP2FuaW1hdGVkPXRydWUnIDogJyd9YDtcbn1cblxuLyoqXG4gKiBCdWlsZHMgYSBVUkwgdG8gYSB1c2VyJ3MgYXZhdGFyIHN0b3JlZCBpbiB0aGUgRGlzY29yZCBDRE4uXG4gKlxuICogQHBhcmFtIHVzZXJJZCAtIFRoZSBJRCBvZiB0aGUgdXNlciB0byBnZXQgdGhlIGF2YXRhciBvZi5cbiAqIEBwYXJhbSBhdmF0YXIgLSBUaGUgdXNlcidzIGF2YXRhciBoYXNoLlxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIGJ1aWxkaW5nIG9mIHRoZSBVUkwuXG4gKiBAcmV0dXJucyBUaGUgdXNlciBhdmF0YXIgYXMgYSBVUkwuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhdmF0YXJVcmwodXNlcklkOiBCaWdTdHJpbmcsIGF2YXRhcjogQmlnU3RyaW5nLCBvcHRpb25zPzogSW1hZ2VPcHRpb25zKTogc3RyaW5nIHtcbiAgcmV0dXJuIGZvcm1hdEltYWdlVXJsKFxuICAgIGBodHRwczovL2Nkbi5kaXNjb3JkYXBwLmNvbS9hdmF0YXJzLyR7dXNlcklkfS8ke3R5cGVvZiBhdmF0YXIgPT09ICdzdHJpbmcnID8gYXZhdGFyIDogaWNvbkJpZ2ludFRvSGFzaChhdmF0YXIpfWAsXG4gICAgb3B0aW9ucz8uc2l6ZSA/PyAxMjgsXG4gICAgb3B0aW9ucz8uZm9ybWF0LFxuICApO1xufVxuXG4vKipcbiAqIEJ1aWxkcyBhIFVSTCB0byBhIHVzZXIncyBkZWZhdWx0IGF2YXRhciBzdG9yZWQgaW4gdGhlIERpc2NvcmQgQ0ROLlxuICpcbiAqIEBwYXJhbSB1c2VySWQgLSBUaGUgSUQgb2YgdGhlIHVzZXIgdG8gZ2V0IHRoZSBhdmF0YXIgb2YuXG4gKiBAcGFyYW0gZGlzY3JpbWluYXRvciAtIFRoZSB1c2VyJ3MgZGlzY3JpbWluYXRvci4gKDQtZGlnaXQgdGFnIGFmdGVyIHRoZSBoYXNodGFnLilcbiAqIEByZXR1cm5zIFRoZSB1c2VyIGRlZmF1bHQgYXZhdGFyIGFzIGFuIFVSTC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlZmF1bHRBdmF0YXJVcmwodXNlcklkOiBCaWdTdHJpbmcsIGRpc2NyaW1pbmF0b3I6IHN0cmluZykge1xuICBjb25zdCBpc0xlZ2FjeSA9IGRpc2NyaW1pbmF0b3IgPT09ICcwJyB8fCBkaXNjcmltaW5hdG9yID09PSAnMDAwMCc7XG4gIGNvbnN0IGluZGV4ID0gaXNMZWdhY3kgPyAoQmlnSW50KHVzZXJJZCkgPj4gMjJuKSAlIDZuIDogTnVtYmVyKGRpc2NyaW1pbmF0b3IpICUgNTtcblxuICByZXR1cm4gYGh0dHBzOi8vY2RuLmRpc2NvcmRhcHAuY29tL2VtYmVkL2F2YXRhcnMvJHtpbmRleH0ucG5nYDtcbn1cblxuLyoqXG4gKiBCdWlsZHMgYSBVUkwgdG8gYSB1c2VyJ3MgZGlzcGxheSBhdmF0YXIgc3RvcmVkIGluIHRoZSBEaXNjb3JkIENETi5cbiAqXG4gKiBAcGFyYW0gdXNlcklkIC0gVGhlIElEIG9mIHRoZSB1c2VyIHRvIGdldCB0aGUgYXZhdGFyIG9mLlxuICogQHBhcmFtIGRpc2NyaW1pbmF0b3IgLSBUaGUgdXNlcidzIGRpc2NyaW1pbmF0b3IuICg0LWRpZ2l0IHRhZyBhZnRlciB0aGUgaGFzaHRhZy4pXG4gKiBAcGFyYW0gYXZhdGFyIC0gVGhlIHVzZXIncyBhdmF0YXIgaGFzaC5cbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBidWlsZGluZyBvZiB0aGUgVVJMLlxuICogQHJldHVybnMgVGhlIHVzZXIgZGlzcGxheSBhdmF0YXIgYXMgYW4gVVJMLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZGlzcGxheUF2YXRhclVybCh1c2VySWQ6IEJpZ1N0cmluZywgZGlzY3JpbWluYXRvcjogc3RyaW5nLCBhdmF0YXI6IEJpZ1N0cmluZyB8IHVuZGVmaW5lZCwgb3B0aW9ucz86IEltYWdlT3B0aW9ucyk6IHN0cmluZyB7XG4gIHJldHVybiBhdmF0YXIgPyBhdmF0YXJVcmwodXNlcklkLCBhdmF0YXIsIG9wdGlvbnMpIDogZGVmYXVsdEF2YXRhclVybCh1c2VySWQsIGRpc2NyaW1pbmF0b3IpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYXZhdGFyRGVjb3JhdGlvblVybChhdmF0YXJEZWNvcmF0aW9uOiBCaWdTdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gYGh0dHBzOi8vY2RuLmRpc2NvcmRhcHAuY29tL2F2YXRhci1kZWNvcmF0aW9uLXByZXNldHMvJHtcbiAgICB0eXBlb2YgYXZhdGFyRGVjb3JhdGlvbiA9PT0gJ3N0cmluZycgPyBhdmF0YXJEZWNvcmF0aW9uIDogaWNvbkJpZ2ludFRvSGFzaChhdmF0YXJEZWNvcmF0aW9uKVxuICB9LnBuZ2A7XG59XG5cbi8qKlxuICogQnVpbGRzIGEgVVJMIHRvIGEgdXNlcidzIGJhbm5lciBzdG9yZWQgaW4gdGhlIERpc2NvcmQgQ0ROLlxuICpcbiAqIEBwYXJhbSB1c2VySWQgLSBUaGUgSUQgb2YgdGhlIHVzZXIgdG8gZ2V0IHRoZSBiYW5uZXIgb2YuXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgYnVpbGRpbmcgb2YgdGhlIFVSTC5cbiAqIEByZXR1cm5zIFRoZSBsaW5rIHRvIHRoZSByZXNvdXJjZSBvciBgdW5kZWZpbmVkYCBpZiBubyBiYW5uZXIgaGFzIG5vdCBiZWVuIHNldC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJhbm5lclVybCh1c2VySWQ6IEJpZ1N0cmluZywgb3B0aW9ucz86IEltYWdlT3B0aW9ucyAmIHsgYmFubmVyPzogQmlnU3RyaW5nIH0pOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICByZXR1cm4gb3B0aW9ucz8uYmFubmVyXG4gICAgPyBmb3JtYXRJbWFnZVVybChcbiAgICAgICAgYGh0dHBzOi8vY2RuLmRpc2NvcmRhcHAuY29tL2Jhbm5lcnMvJHt1c2VySWR9LyR7dHlwZW9mIG9wdGlvbnMuYmFubmVyID09PSAnc3RyaW5nJyA/IG9wdGlvbnMuYmFubmVyIDogaWNvbkJpZ2ludFRvSGFzaChvcHRpb25zLmJhbm5lcil9YCxcbiAgICAgICAgb3B0aW9ucz8uc2l6ZSA/PyAxMjgsXG4gICAgICAgIG9wdGlvbnM/LmZvcm1hdCxcbiAgICAgIClcbiAgICA6IHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBCdWlsZHMgYSBVUkwgdG8gdGhlIGd1aWxkIGJhbm5lciBzdG9yZWQgaW4gdGhlIERpc2NvcmQgQ0ROLlxuICpcbiAqIEBwYXJhbSBndWlsZElkIC0gVGhlIElEIG9mIHRoZSBndWlsZCB0byBnZXQgdGhlIGxpbmsgdG8gdGhlIGJhbm5lciBmb3IuXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgYnVpbGRpbmcgb2YgdGhlIFVSTC5cbiAqIEByZXR1cm5zIFRoZSBsaW5rIHRvIHRoZSByZXNvdXJjZSBvciBgdW5kZWZpbmVkYCBpZiBubyBiYW5uZXIgaGFzIGJlZW4gc2V0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ3VpbGRCYW5uZXJVcmwoZ3VpbGRJZDogQmlnU3RyaW5nLCBvcHRpb25zOiBJbWFnZU9wdGlvbnMgJiB7IGJhbm5lcj86IEJpZ1N0cmluZyB9KTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIG9wdGlvbnMuYmFubmVyXG4gICAgPyBmb3JtYXRJbWFnZVVybChcbiAgICAgICAgYGh0dHBzOi8vY2RuLmRpc2NvcmRhcHAuY29tL2Jhbm5lcnMvJHtndWlsZElkfS8ke3R5cGVvZiBvcHRpb25zLmJhbm5lciA9PT0gJ3N0cmluZycgPyBvcHRpb25zLmJhbm5lciA6IGljb25CaWdpbnRUb0hhc2gob3B0aW9ucy5iYW5uZXIpfWAsXG4gICAgICAgIG9wdGlvbnMuc2l6ZSA/PyAxMjgsXG4gICAgICAgIG9wdGlvbnMuZm9ybWF0LFxuICAgICAgKVxuICAgIDogdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIEJ1aWxkcyBhIFVSTCB0byB0aGUgZ3VpbGQgaWNvbiBzdG9yZWQgaW4gdGhlIERpc2NvcmQgQ0ROLlxuICpcbiAqIEBwYXJhbSBndWlsZElkIC0gVGhlIElEIG9mIHRoZSBndWlsZCB0byBnZXQgdGhlIGxpbmsgdG8gdGhlIGJhbm5lciBmb3IuXG4gKiBAcGFyYW0gaW1hZ2VIYXNoIC0gVGhlIGhhc2ggaWRlbnRpZnlpbmcgdGhlIGV2ZW50IGNvdmVyIGltYWdlLlxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIGJ1aWxkaW5nIG9mIHRoZSBVUkwuXG4gKiBAcmV0dXJucyBUaGUgbGluayB0byB0aGUgcmVzb3VyY2Ugb3IgYHVuZGVmaW5lZGAgaWYgbm8gYmFubmVyIGhhcyBiZWVuIHNldC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGd1aWxkSWNvblVybChndWlsZElkOiBCaWdTdHJpbmcsIGltYWdlSGFzaDogQmlnU3RyaW5nIHwgdW5kZWZpbmVkLCBvcHRpb25zPzogSW1hZ2VPcHRpb25zKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIGltYWdlSGFzaFxuICAgID8gZm9ybWF0SW1hZ2VVcmwoXG4gICAgICAgIGBodHRwczovL2Nkbi5kaXNjb3JkYXBwLmNvbS9pY29ucy8ke2d1aWxkSWR9LyR7dHlwZW9mIGltYWdlSGFzaCA9PT0gJ3N0cmluZycgPyBpbWFnZUhhc2ggOiBpY29uQmlnaW50VG9IYXNoKGltYWdlSGFzaCl9YCxcbiAgICAgICAgb3B0aW9ucz8uc2l6ZSA/PyAxMjgsXG4gICAgICAgIG9wdGlvbnM/LmZvcm1hdCxcbiAgICAgIClcbiAgICA6IHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBCdWlsZHMgdGhlIFVSTCB0byBhIGd1aWxkIHNwbGFzaCBzdG9yZWQgaW4gdGhlIERpc2NvcmQgQ0ROLlxuICpcbiAqIEBwYXJhbSBndWlsZElkIC0gVGhlIElEIG9mIHRoZSBndWlsZCB0byBnZXQgdGhlIHNwbGFzaCBvZi5cbiAqIEBwYXJhbSBpbWFnZUhhc2ggLSBUaGUgaGFzaCBpZGVudGlmeWluZyB0aGUgc3BsYXNoIGltYWdlLlxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIGJ1aWxkaW5nIG9mIHRoZSBVUkwuXG4gKiBAcmV0dXJucyBUaGUgbGluayB0byB0aGUgcmVzb3VyY2Ugb3IgYHVuZGVmaW5lZGAgaWYgdGhlIGd1aWxkIGRvZXMgbm90IGhhdmUgYSBzcGxhc2ggaW1hZ2Ugc2V0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ3VpbGRTcGxhc2hVcmwoZ3VpbGRJZDogQmlnU3RyaW5nLCBpbWFnZUhhc2g6IEJpZ1N0cmluZyB8IHVuZGVmaW5lZCwgb3B0aW9ucz86IEltYWdlT3B0aW9ucyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBpbWFnZUhhc2hcbiAgICA/IGZvcm1hdEltYWdlVXJsKFxuICAgICAgICBgaHR0cHM6Ly9jZG4uZGlzY29yZGFwcC5jb20vc3BsYXNoZXMvJHtndWlsZElkfS8ke3R5cGVvZiBpbWFnZUhhc2ggPT09ICdzdHJpbmcnID8gaW1hZ2VIYXNoIDogaWNvbkJpZ2ludFRvSGFzaChpbWFnZUhhc2gpfWAsXG4gICAgICAgIG9wdGlvbnM/LnNpemUgPz8gMTI4LFxuICAgICAgICBvcHRpb25zPy5mb3JtYXQsXG4gICAgICApXG4gICAgOiB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogQnVpbGRzIHRoZSBVUkwgdG8gYSBndWlsZCBkaXNjb3Zlcnkgc3BsYXNoIHN0b3JlZCBpbiB0aGUgRGlzY29yZCBDRE4uXG4gKlxuICogQHBhcmFtIGd1aWxkSWQgLSBUaGUgSUQgb2YgdGhlIGd1aWxkIHRvIGdldCB0aGUgc3BsYXNoIG9mLlxuICogQHBhcmFtIGltYWdlSGFzaCAtIFRoZSBoYXNoIGlkZW50aWZ5aW5nIHRoZSBkaXNjb3Zlcnkgc3BsYXNoIGltYWdlLlxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIGJ1aWxkaW5nIG9mIHRoZSBVUkwuXG4gKiBAcmV0dXJucyBUaGUgbGluayB0byB0aGUgcmVzb3VyY2Ugb3IgYHVuZGVmaW5lZGAgaWYgdGhlIGd1aWxkIGRvZXMgbm90IGhhdmUgYSBzcGxhc2ggaW1hZ2Ugc2V0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ3VpbGREaXNjb3ZlcnlTcGxhc2hVcmwoZ3VpbGRJZDogQmlnU3RyaW5nLCBpbWFnZUhhc2g6IEJpZ1N0cmluZyB8IHVuZGVmaW5lZCwgb3B0aW9ucz86IEltYWdlT3B0aW9ucyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBpbWFnZUhhc2hcbiAgICA/IGZvcm1hdEltYWdlVXJsKFxuICAgICAgICBgaHR0cHM6Ly9jZG4uZGlzY29yZGFwcC5jb20vZGlzY292ZXJ5LXNwbGFzaGVzLyR7Z3VpbGRJZH0vJHt0eXBlb2YgaW1hZ2VIYXNoID09PSAnc3RyaW5nJyA/IGltYWdlSGFzaCA6IGljb25CaWdpbnRUb0hhc2goaW1hZ2VIYXNoKX1gLFxuICAgICAgICBvcHRpb25zPy5zaXplID8/IDEyOCxcbiAgICAgICAgb3B0aW9ucz8uZm9ybWF0LFxuICAgICAgKVxuICAgIDogdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIEJ1aWxkcyB0aGUgVVJMIHRvIGEgZ3VpbGQgc2NoZWR1bGVkIGV2ZW50IGNvdmVyIHN0b3JlZCBpbiB0aGUgRGlzY29yZCBDRE4uXG4gKlxuICogQHBhcmFtIGV2ZW50SWQgLSBUaGUgSUQgb2YgdGhlIHNjaGVkdWxlZCBldmVudCB0byBnZXQgdGhlIGNvdmVyIG9mLlxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIGJ1aWxkaW5nIG9mIHRoZSBVUkwuXG4gKiBAcmV0dXJucyBUaGUgbGluayB0byB0aGUgcmVzb3VyY2Ugb3IgYHVuZGVmaW5lZGAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBndWlsZFNjaGVkdWxlZEV2ZW50Q292ZXJVcmwoZXZlbnRJZDogQmlnU3RyaW5nLCBvcHRpb25zOiBJbWFnZU9wdGlvbnMgJiB7IGNvdmVyPzogQmlnU3RyaW5nIH0pOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICByZXR1cm4gb3B0aW9ucy5jb3ZlclxuICAgID8gZm9ybWF0SW1hZ2VVcmwoXG4gICAgICAgIGBodHRwczovL2Nkbi5kaXNjb3JkYXBwLmNvbS9ndWlsZC1ldmVudHMvJHtldmVudElkfS8ke3R5cGVvZiBvcHRpb25zLmNvdmVyID09PSAnc3RyaW5nJyA/IG9wdGlvbnMuY292ZXIgOiBpY29uQmlnaW50VG9IYXNoKG9wdGlvbnMuY292ZXIpfWAsXG4gICAgICAgIG9wdGlvbnMuc2l6ZSA/PyAxMjgsXG4gICAgICAgIG9wdGlvbnMuZm9ybWF0LFxuICAgICAgKVxuICAgIDogdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIEJ1aWxkcyBhIFVSTCB0byB0aGUgZ3VpbGQgd2lkZ2V0IGltYWdlIHN0b3JlZCBpbiB0aGUgRGlzY29yZCBDRE4uXG4gKlxuICogQHBhcmFtIGd1aWxkSWQgLSBUaGUgSUQgb2YgdGhlIGd1aWxkIHRvIGdldCB0aGUgbGluayB0byB0aGUgd2lkZ2V0IGltYWdlIGZvci5cbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBidWlsZGluZyBvZiB0aGUgVVJMLlxuICogQHJldHVybnMgVGhlIGxpbmsgdG8gdGhlIHJlc291cmNlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0V2lkZ2V0SW1hZ2VVcmwoZ3VpbGRJZDogQmlnU3RyaW5nLCBvcHRpb25zPzogR2V0R3VpbGRXaWRnZXRJbWFnZVF1ZXJ5KTogc3RyaW5nIHtcbiAgbGV0IHVybCA9IGBodHRwczovL2Rpc2NvcmRhcHAuY29tL2FwaS9ndWlsZHMvJHtndWlsZElkfS93aWRnZXQucG5nYDtcblxuICBpZiAob3B0aW9ucz8uc3R5bGUpIHtcbiAgICB1cmwgKz0gYD9zdHlsZT0ke29wdGlvbnMuc3R5bGV9YDtcbiAgfVxuXG4gIHJldHVybiB1cmw7XG59XG5cbi8qKlxuICogQnVpbGRzIGEgVVJMIHRvIGEgbWVtYmVyJ3MgYXZhdGFyIHN0b3JlZCBpbiB0aGUgRGlzY29yZCBDRE4uXG4gKlxuICogQHBhcmFtIGd1aWxkSWQgLSBUaGUgSUQgb2YgdGhlIGd1aWxkIHdoZXJlIHRoZSBtZW1iZXIgaXNcbiAqIEBwYXJhbSB1c2VySWQgLSBUaGUgSUQgb2YgdGhlIHVzZXIgdG8gZ2V0IHRoZSBhdmF0YXIgb2YuXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgYnVpbGRpbmcgb2YgdGhlIFVSTC5cbiAqIEByZXR1cm5zIFRoZSBsaW5rIHRvIHRoZSByZXNvdXJjZSBvciBgdW5kZWZpbmVkYCBpZiBubyBiYW5uZXIgaGFzIGJlZW4gc2V0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gbWVtYmVyQXZhdGFyVXJsKGd1aWxkSWQ6IEJpZ1N0cmluZywgdXNlcklkOiBCaWdTdHJpbmcsIG9wdGlvbnM/OiBJbWFnZU9wdGlvbnMgJiB7IGF2YXRhcj86IEJpZ1N0cmluZyB9KTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIG9wdGlvbnM/LmF2YXRhclxuICAgID8gZm9ybWF0SW1hZ2VVcmwoXG4gICAgICAgIGBodHRwczovL2Nkbi5kaXNjb3JkYXBwLmNvbS9ndWlsZHMvJHtndWlsZElkfS91c2Vycy8ke3VzZXJJZH0vYXZhdGFycy8ke1xuICAgICAgICAgIHR5cGVvZiBvcHRpb25zLmF2YXRhciA9PT0gJ3N0cmluZycgPyBvcHRpb25zLmF2YXRhciA6IGljb25CaWdpbnRUb0hhc2gob3B0aW9ucy5hdmF0YXIpXG4gICAgICAgIH1gLFxuICAgICAgICBvcHRpb25zPy5zaXplID8/IDEyOCxcbiAgICAgICAgb3B0aW9ucz8uZm9ybWF0LFxuICAgICAgKVxuICAgIDogdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIEJ1aWxkcyBhIFVSTCB0byBhIG1lbWJlcidzIGJhbm5lciBzdG9yZWQgaW4gdGhlIERpc2NvcmQgQ0ROLlxuICpcbiAqIEBwYXJhbSBndWlsZElkIC0gVGhlIElEIG9mIHRoZSBndWlsZCB3aGVyZSB0aGUgbWVtYmVyIGlzXG4gKiBAcGFyYW0gdXNlcklkIC0gVGhlIElEIG9mIHRoZSB1c2VyIHRvIGdldCB0aGUgYmFubmVyIG9mLlxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIGJ1aWxkaW5nIG9mIHRoZSBVUkwuXG4gKiBAcmV0dXJucyBUaGUgbGluayB0byB0aGUgcmVzb3VyY2Ugb3IgYHVuZGVmaW5lZGAgaWYgbm8gYmFubmVyIGhhcyBiZWVuIHNldC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1lbWJlckJhbm5lclVybChndWlsZElkOiBCaWdTdHJpbmcsIHVzZXJJZDogQmlnU3RyaW5nLCBvcHRpb25zPzogSW1hZ2VPcHRpb25zICYgeyBiYW5uZXI/OiBCaWdTdHJpbmcgfSk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBvcHRpb25zPy5iYW5uZXJcbiAgICA/IGZvcm1hdEltYWdlVXJsKFxuICAgICAgICBgaHR0cHM6Ly9jZG4uZGlzY29yZGFwcC5jb20vZ3VpbGRzLyR7Z3VpbGRJZH0vdXNlcnMvJHt1c2VySWR9L2Jhbm5lcnMvJHtcbiAgICAgICAgICB0eXBlb2Ygb3B0aW9ucy5iYW5uZXIgPT09ICdzdHJpbmcnID8gb3B0aW9ucy5iYW5uZXIgOiBpY29uQmlnaW50VG9IYXNoKG9wdGlvbnMuYmFubmVyKVxuICAgICAgICB9YCxcbiAgICAgICAgb3B0aW9ucz8uc2l6ZSA/PyAxMjgsXG4gICAgICAgIG9wdGlvbnM/LmZvcm1hdCxcbiAgICAgIClcbiAgICA6IHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBCdWlsZHMgdGhlIFVSTCB0byBhbiBhcHBsaWNhdGlvbiBpY29uIHN0b3JlZCBpbiB0aGUgRGlzY29yZCBDRE4uXG4gKlxuICogQHBhcmFtIGFwcGxpY2F0aW9uSWQgLSBUaGUgSUQgb2YgdGhlIGFwcGxpY2F0aW9uIHRvIGdldCB0aGUgaWNvbiBvZi5cbiAqIEBwYXJhbSBpY29uSGFzaCAtIFRoZSBoYXNoIGlkZW50aWZ5aW5nIHRoZSBhcHBsaWNhdGlvbiBpY29uLlxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIGJ1aWxkaW5nIG9mIHRoZSBVUkwuXG4gKiBAcmV0dXJucyBUaGUgbGluayB0byB0aGUgcmVzb3VyY2Ugb3IgYHVuZGVmaW5lZGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFwcGxpY2F0aW9uSWNvblVybChhcHBsaWNhdGlvbklkOiBCaWdTdHJpbmcsIGljb25IYXNoOiBCaWdTdHJpbmcgfCB1bmRlZmluZWQsIG9wdGlvbnM/OiBJbWFnZU9wdGlvbnMpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICByZXR1cm4gaWNvbkhhc2hcbiAgICA/IGZvcm1hdEltYWdlVXJsKFxuICAgICAgICBgaHR0cHM6Ly9jZG4uZGlzY29yZGFwcC5jb20vYXBwLWljb25zLyR7YXBwbGljYXRpb25JZH0vJHt0eXBlb2YgaWNvbkhhc2ggPT09ICdzdHJpbmcnID8gaWNvbkhhc2ggOiBpY29uQmlnaW50VG9IYXNoKGljb25IYXNoKX1gLFxuICAgICAgICBvcHRpb25zPy5zaXplID8/IDEyOCxcbiAgICAgICAgb3B0aW9ucz8uZm9ybWF0LFxuICAgICAgKVxuICAgIDogdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIEJ1aWxkcyB0aGUgVVJMIHRvIGFuIGFwcGxpY2F0aW9uIGNvdmVyIHN0b3JlZCBpbiB0aGUgRGlzY29yZCBDRE4uXG4gKlxuICogQHBhcmFtIGFwcGxpY2F0aW9uSWQgLSBUaGUgSUQgb2YgdGhlIGFwcGxpY2F0aW9uIHRvIGdldCB0aGUgY292ZXIgb2YuXG4gKiBAcGFyYW0gY292ZXJIYXNoIC0gVGhlIGhhc2ggaWRlbnRpZnlpbmcgdGhlIGFwcGxpY2F0aW9uIGNvdmVyLlxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIGJ1aWxkaW5nIG9mIHRoZSBVUkwuXG4gKiBAcmV0dXJucyBUaGUgbGluayB0byB0aGUgcmVzb3VyY2Ugb3IgYHVuZGVmaW5lZGAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhcHBsaWNhdGlvbkNvdmVyVXJsKGFwcGxpY2F0aW9uSWQ6IEJpZ1N0cmluZywgY292ZXJIYXNoOiBCaWdTdHJpbmcgfCB1bmRlZmluZWQsIG9wdGlvbnM/OiBJbWFnZU9wdGlvbnMpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICByZXR1cm4gY292ZXJIYXNoXG4gICAgPyBmb3JtYXRJbWFnZVVybChcbiAgICAgICAgYGh0dHBzOi8vY2RuLmRpc2NvcmRhcHAuY29tL2FwcC1pY29ucy8ke2FwcGxpY2F0aW9uSWR9LyR7dHlwZW9mIGNvdmVySGFzaCA9PT0gJ3N0cmluZycgPyBjb3Zlckhhc2ggOiBpY29uQmlnaW50VG9IYXNoKGNvdmVySGFzaCl9YCxcbiAgICAgICAgb3B0aW9ucz8uc2l6ZSA/PyAxMjgsXG4gICAgICAgIG9wdGlvbnM/LmZvcm1hdCxcbiAgICAgIClcbiAgICA6IHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBCdWlsZHMgdGhlIFVSTCB0byBhbiBhcHBsaWNhdGlvbiBhc3NldCBzdG9yZWQgaW4gdGhlIERpc2NvcmQgQ0ROLlxuICpcbiAqIEBwYXJhbSBhcHBsaWNhdGlvbklkIC0gVGhlIElEIG9mIHRoZSBhcHBsaWNhdGlvbiB0byBnZXQgdGhlIGFzc2V0IG9mLlxuICogQHBhcmFtIGFzc2V0SWQgLSBUaGUgaWQgaWRlbnRpZnlpbmcgdGhlIGFwcGxpY2F0aW9uIGFzc2V0LlxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIGJ1aWxkaW5nIG9mIHRoZSBVUkwuXG4gKiBAcmV0dXJucyBUaGUgbGluayB0byB0aGUgcmVzb3VyY2Ugb3IgYHVuZGVmaW5lZGAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhcHBsaWNhdGlvbkFzc2V0VXJsKGFwcGxpY2F0aW9uSWQ6IEJpZ1N0cmluZywgYXNzZXRJZDogQmlnU3RyaW5nIHwgdW5kZWZpbmVkLCBvcHRpb25zPzogSW1hZ2VPcHRpb25zKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIGFzc2V0SWRcbiAgICA/IGZvcm1hdEltYWdlVXJsKFxuICAgICAgICBgaHR0cHM6Ly9jZG4uZGlzY29yZGFwcC5jb20vYXBwLWljb25zLyR7YXBwbGljYXRpb25JZH0vJHt0eXBlb2YgYXNzZXRJZCA9PT0gJ3N0cmluZycgPyBhc3NldElkIDogaWNvbkJpZ2ludFRvSGFzaChhc3NldElkKX1gLFxuICAgICAgICBvcHRpb25zPy5zaXplID8/IDEyOCxcbiAgICAgICAgb3B0aW9ucz8uZm9ybWF0LFxuICAgICAgKVxuICAgIDogdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIEJ1aWxkcyB0aGUgVVJMIHRvIGEgc3RpY2tlciBwYWNrIGJhbm5lciBzdG9yZWQgaW4gdGhlIERpc2NvcmQgQ0ROLlxuICpcbiAqIEBwYXJhbSBiYW5uZXJBc3NldElkIC0gVGhlIElEIG9mIHRoZSBiYW5uZXIgYXNzZXQgZm9yIHRoZSBzdGlja2VyIHBhY2suXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgYnVpbGRpbmcgb2YgdGhlIFVSTC5cbiAqIEByZXR1cm5zIFRoZSBsaW5rIHRvIHRoZSByZXNvdXJjZSBvciBgdW5kZWZpbmVkYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN0aWNrZXJQYWNrQmFubmVyVXJsKGJhbm5lckFzc2V0SWQ6IEJpZ1N0cmluZyB8IHVuZGVmaW5lZCwgb3B0aW9ucz86IEltYWdlT3B0aW9ucyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBiYW5uZXJBc3NldElkXG4gICAgPyBmb3JtYXRJbWFnZVVybChcbiAgICAgICAgYGh0dHBzOi8vY2RuLmRpc2NvcmRhcHAuY29tL2FwcC1hc3NldHMvNzEwOTgyNDE0MzAxNzkwMjE2L3N0b3JlLyR7XG4gICAgICAgICAgdHlwZW9mIGJhbm5lckFzc2V0SWQgPT09ICdzdHJpbmcnID8gYmFubmVyQXNzZXRJZCA6IGljb25CaWdpbnRUb0hhc2goYmFubmVyQXNzZXRJZClcbiAgICAgICAgfWAsXG4gICAgICAgIG9wdGlvbnM/LnNpemUgPz8gMTI4LFxuICAgICAgICBvcHRpb25zPy5mb3JtYXQsXG4gICAgICApXG4gICAgOiB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogQnVpbGRzIHRoZSBVUkwgdG8gYSBzdGlja2VyIHN0b3JlZCBpbiB0aGUgRGlzY29yZCBDRE4uXG4gKlxuICogQHBhcmFtIHN0aWNrZXJJZCAtIFRoZSBJRCBvZiB0aGUgc3RpY2tlciB0byBnZXQgdGhlIGljb24gb2ZcbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBidWlsZGluZyBvZiB0aGUgVVJMLlxuICogQHJldHVybnMgVGhlIGxpbmsgdG8gdGhlIHJlc291cmNlIG9yIGB1bmRlZmluZWRgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc3RpY2tlclVybChzdGlja2VySWQ6IEJpZ1N0cmluZyB8IG51bWJlciwgb3B0aW9ucz86IEltYWdlT3B0aW9ucyAmIHsgdHlwZT86IFN0aWNrZXJGb3JtYXRUeXBlcyB9KTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgaWYgKCFzdGlja2VySWQpIHJldHVybjtcblxuICBjb25zdCB1cmwgPVxuICAgIG9wdGlvbnM/LnR5cGUgPT09IFN0aWNrZXJGb3JtYXRUeXBlcy5HaWZcbiAgICAgID8gYGh0dHBzOi8vbWVkaWEuZGlzY29yZGFwcC5uZXQvc3RpY2tlcnMvJHtzdGlja2VySWR9YFxuICAgICAgOiBgaHR0cHM6Ly9jZG4uZGlzY29yZGFwcC5jb20vc3RpY2tlcnMvJHtzdGlja2VySWR9YDtcblxuICByZXR1cm4gZm9ybWF0SW1hZ2VVcmwodXJsLCBvcHRpb25zPy5zaXplID8/IDEyOCwgb3B0aW9ucz8uZm9ybWF0KTtcbn1cblxuLyoqXG4gKiBCdWlsZHMgdGhlIFVSTCB0byBhIHRlYW0gaWNvbiBzdG9yZWQgaW4gdGhlIERpc2NvcmQgQ0ROLlxuICpcbiAqIEBwYXJhbSB0ZWFtSWQgLSBUaGUgSUQgb2YgdGhlIHRlYW0gdG8gZ2V0IHRoZSBpY29uIG9mXG4gKiBAcGFyYW0gaWNvbkhhc2ggLSBUaGUgaGFzaCBvZiB0aGUgdGVhbSBpY29uLlxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIGJ1aWxkaW5nIG9mIHRoZSBVUkwuXG4gKiBAcmV0dXJucyBUaGUgbGluayB0byB0aGUgcmVzb3VyY2Ugb3IgYHVuZGVmaW5lZGAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0ZWFtSWNvblVybCh0ZWFtSWQ6IEJpZ1N0cmluZywgaWNvbkhhc2g6IEJpZ1N0cmluZyB8IHVuZGVmaW5lZCwgb3B0aW9ucz86IEltYWdlT3B0aW9ucyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBpY29uSGFzaFxuICAgID8gZm9ybWF0SW1hZ2VVcmwoXG4gICAgICAgIGBodHRwczovL2Nkbi5kaXNjb3JkYXBwLmNvbS90ZWFtLWljb25zLyR7dGVhbUlkfS9zdG9yZS8ke3R5cGVvZiBpY29uSGFzaCA9PT0gJ3N0cmluZycgPyBpY29uSGFzaCA6IGljb25CaWdpbnRUb0hhc2goaWNvbkhhc2gpfWAsXG4gICAgICAgIG9wdGlvbnM/LnNpemUgPz8gMTI4LFxuICAgICAgICBvcHRpb25zPy5mb3JtYXQsXG4gICAgICApXG4gICAgOiB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogQnVpbGRzIHRoZSBVUkwgdG8gYSByb2xlIGljb24gc3RvcmVkIGluIHRoZSBEaXNjb3JkIENETi5cbiAqXG4gKiBAcGFyYW0gcm9sZUlkIC0gVGhlIElEIG9mIHRoZSByb2xlIHRvIGdldCB0aGUgaWNvbiBvZlxuICogQHBhcmFtIGljb25IYXNoIC0gVGhlIGhhc2ggb2YgdGhlIHJvbGUgaWNvbi5cbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBidWlsZGluZyBvZiB0aGUgVVJMLlxuICogQHJldHVybnMgVGhlIGxpbmsgdG8gdGhlIHJlc291cmNlIG9yIGB1bmRlZmluZWRgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcm9sZUljb25Vcmwocm9sZUlkOiBCaWdTdHJpbmcsIGljb25IYXNoOiBCaWdTdHJpbmcgfCB1bmRlZmluZWQsIG9wdGlvbnM/OiBJbWFnZU9wdGlvbnMpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICByZXR1cm4gaWNvbkhhc2hcbiAgICA/IGZvcm1hdEltYWdlVXJsKFxuICAgICAgICBgaHR0cHM6Ly9jZG4uZGlzY29yZGFwcC5jb20vcm9sZS1pY29ucy8ke3JvbGVJZH0vJHt0eXBlb2YgaWNvbkhhc2ggPT09ICdzdHJpbmcnID8gaWNvbkhhc2ggOiBpY29uQmlnaW50VG9IYXNoKGljb25IYXNoKX1gLFxuICAgICAgICBvcHRpb25zPy5zaXplID8/IDEyOCxcbiAgICAgICAgb3B0aW9ucz8uZm9ybWF0LFxuICAgICAgKVxuICAgIDogdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIEJ1aWxkcyB0aGUgVVJMIHRvIGEgZ3VpbGQgdGFnIGJhZGdlIHN0b3JlZCBpbiB0aGUgRGlzY29yZCBDRE4uXG4gKlxuICogQHBhcmFtIGd1aWxkSWQgLSBUaGUgSUQgb2YgdGhlIGd1aWxkIHRvIGdldCB0aGUgdGFnIGJhZGdlIG9mXG4gKiBAcGFyYW0gYmFkZ2VIYXNoIC0gVGhlIGhhc2ggaWRlbnRpZnlpbmcgdGhlIGd1aWxkIHRhZyBiYWRnZS5cbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBidWlsZGluZyBvZiB0aGUgVVJMLlxuICogQHJldHVybnMgVGhlIGxpbmsgdG8gdGhlIHJlc291cmNlIG9yIGB1bmRlZmluZWRgIGlmIG5vIGJhZGdlIGhhcyBiZWVuIHNldC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGd1aWxkVGFnQmFkZ2VVcmwoZ3VpbGRJZDogQmlnU3RyaW5nLCBiYWRnZUhhc2g6IEJpZ1N0cmluZyB8IHVuZGVmaW5lZCwgb3B0aW9ucz86IEltYWdlT3B0aW9ucyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIGlmIChiYWRnZUhhc2ggPT09IHVuZGVmaW5lZCkgcmV0dXJuIHVuZGVmaW5lZDtcblxuICByZXR1cm4gZm9ybWF0SW1hZ2VVcmwoYGh0dHBzOi8vY2RuLmRpc2NvcmRhcHAuY29tL2d1aWxkLXRhZy1iYWRnZXMvJHtndWlsZElkfS8ke2JhZGdlSGFzaH1gLCBvcHRpb25zPy5zaXplID8/IDEyOCwgb3B0aW9ucz8uZm9ybWF0KTtcbn1cbiJdLCJuYW1lcyI6WyJTdGlja2VyRm9ybWF0VHlwZXMiLCJpY29uQmlnaW50VG9IYXNoIiwiZm9ybWF0SW1hZ2VVcmwiLCJ1cmwiLCJzaXplIiwiZm9ybWF0IiwiaW5jbHVkZXMiLCJlbW9qaVVybCIsImVtb2ppSWQiLCJhbmltYXRlZCIsImF2YXRhclVybCIsInVzZXJJZCIsImF2YXRhciIsIm9wdGlvbnMiLCJkZWZhdWx0QXZhdGFyVXJsIiwiZGlzY3JpbWluYXRvciIsImlzTGVnYWN5IiwiaW5kZXgiLCJCaWdJbnQiLCJOdW1iZXIiLCJkaXNwbGF5QXZhdGFyVXJsIiwiYXZhdGFyRGVjb3JhdGlvblVybCIsImF2YXRhckRlY29yYXRpb24iLCJiYW5uZXJVcmwiLCJiYW5uZXIiLCJ1bmRlZmluZWQiLCJndWlsZEJhbm5lclVybCIsImd1aWxkSWQiLCJndWlsZEljb25VcmwiLCJpbWFnZUhhc2giLCJndWlsZFNwbGFzaFVybCIsImd1aWxkRGlzY292ZXJ5U3BsYXNoVXJsIiwiZ3VpbGRTY2hlZHVsZWRFdmVudENvdmVyVXJsIiwiZXZlbnRJZCIsImNvdmVyIiwiZ2V0V2lkZ2V0SW1hZ2VVcmwiLCJzdHlsZSIsIm1lbWJlckF2YXRhclVybCIsIm1lbWJlckJhbm5lclVybCIsImFwcGxpY2F0aW9uSWNvblVybCIsImFwcGxpY2F0aW9uSWQiLCJpY29uSGFzaCIsImFwcGxpY2F0aW9uQ292ZXJVcmwiLCJjb3Zlckhhc2giLCJhcHBsaWNhdGlvbkFzc2V0VXJsIiwiYXNzZXRJZCIsInN0aWNrZXJQYWNrQmFubmVyVXJsIiwiYmFubmVyQXNzZXRJZCIsInN0aWNrZXJVcmwiLCJzdGlja2VySWQiLCJ0eXBlIiwiR2lmIiwidGVhbUljb25VcmwiLCJ0ZWFtSWQiLCJyb2xlSWNvblVybCIsInJvbGVJZCIsImd1aWxkVGFnQmFkZ2VVcmwiLCJiYWRnZUhhc2giXSwibWFwcGluZ3MiOiJBQUFBLFNBQTBGQSxrQkFBa0IsUUFBUSxvQkFBb0I7QUFDeEksU0FBU0MsZ0JBQWdCLFFBQVEsWUFBWTtBQU83Qyw4QkFBOEIsR0FDOUIsT0FBTyxTQUFTQyxlQUFlQyxHQUFXLEVBQUVDLE9BQWtCLEdBQUcsRUFBRUMsTUFBb0I7SUFDckYsT0FBTyxHQUFHRixJQUFJLENBQUMsRUFBRUUsVUFBV0YsQ0FBQUEsSUFBSUcsUUFBUSxDQUFDLFNBQVMsUUFBUSxNQUFLLEVBQUcsTUFBTSxFQUFFRixNQUFNO0FBQ2xGO0FBRUE7Ozs7Ozs7Ozs7Q0FVQyxHQUNELE9BQU8sU0FBU0csU0FBU0MsT0FBa0IsRUFBRUMsV0FBVyxLQUFLLEVBQUVKLFNBQXNCLEtBQUs7SUFDeEYsT0FBTyxDQUFDLGtDQUFrQyxFQUFFRyxRQUFRLENBQUMsRUFBRUMsV0FBWUosV0FBVyxTQUFTLFNBQVMsUUFBU0EsU0FBU0ksWUFBWUosV0FBVyxTQUFTLG1CQUFtQixJQUFJO0FBQzNLO0FBRUE7Ozs7Ozs7Q0FPQyxHQUNELE9BQU8sU0FBU0ssVUFBVUMsTUFBaUIsRUFBRUMsTUFBaUIsRUFBRUMsT0FBc0I7SUFDcEYsT0FBT1gsZUFDTCxDQUFDLG1DQUFtQyxFQUFFUyxPQUFPLENBQUMsRUFBRSxPQUFPQyxXQUFXLFdBQVdBLFNBQVNYLGlCQUFpQlcsU0FBUyxFQUNoSEMsU0FBU1QsUUFBUSxLQUNqQlMsU0FBU1I7QUFFYjtBQUVBOzs7Ozs7Q0FNQyxHQUNELE9BQU8sU0FBU1MsaUJB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
228
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbWFnZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBCaWdTdHJpbmcsIHR5cGUgR2V0R3VpbGRXaWRnZXRJbWFnZVF1ZXJ5LCB0eXBlIEltYWdlRm9ybWF0LCB0eXBlIEltYWdlU2l6ZSwgU3RpY2tlckZvcm1hdFR5cGVzIH0gZnJvbSAnQGRpc2NvcmRlbm8vdHlwZXMnO1xuaW1wb3J0IHsgaWNvbkJpZ2ludFRvSGFzaCB9IGZyb20gJy4vaGFzaC5qcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSW1hZ2VPcHRpb25zIHtcbiAgc2l6ZT86IEltYWdlU2l6ZTtcbiAgZm9ybWF0PzogSW1hZ2VGb3JtYXQ7XG59XG5cbi8qKiBIZWxwIGZvcm1hdCBhbiBpbWFnZSB1cmwuICovXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0SW1hZ2VVcmwodXJsOiBzdHJpbmcsIHNpemU6IEltYWdlU2l6ZSA9IDEyOCwgZm9ybWF0PzogSW1hZ2VGb3JtYXQpOiBzdHJpbmcge1xuICBjb25zdCBhbmltYXRlZCA9IHVybC5pbmNsdWRlcygnL2FfJyk7XG4gIGZvcm1hdCA/Pz0gYW5pbWF0ZWQgPyAnZ2lmJyA6ICd3ZWJwJztcblxuICByZXR1cm4gYCR7dXJsfS4ke2Zvcm1hdH0/c2l6ZT0ke3NpemV9JHthbmltYXRlZCAmJiBmb3JtYXQgPT09ICd3ZWJwJyA/ICcmYW5pbWF0ZWQ9dHJ1ZScgOiAnJ31gO1xufVxuXG4vKipcbiAqIEdldCB0aGUgdXJsIGZvciBhbiBlbW9qaS5cbiAqXG4gKiBAcGFyYW0gZW1vamlJZCBUaGUgaWQgb2YgdGhlIGVtb2ppXG4gKiBAcGFyYW0gYW5pbWF0ZWQgV2hldGhlciBvciBub3QgdGhlIGVtb2ppIGlzIGFuaW1hdGVkXG4gKiBAcGFyYW0gZm9ybWF0IFRoZSBmb3JtYXQgb2YgdGhlIGltYWdlLCBkZWZhdWx0cyB0byBwbmdcbiAqIEByZXR1cm5zIHN0cmluZ1xuICpcbiAqIEByZW1hcmtzXG4gKiBUaGUgYW5pbWF0ZWQgcGFyYW1ldGVyIGlzIHVzZWQgdG8gc3BlY2lmeSB0aGUgYW5pbWF0ZWQgcXVlcnkgcGFyYW1ldGVyIHZhbGlkIGZvciB3ZWJwIGltYWdlcyBvciB0byBmb3JjZSB0aGUgZ2lmIGlmIHRoZSBmb3JtYXQgaXMgbm90IHNldCB0byB3ZWJwLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZW1vamlVcmwoZW1vamlJZDogQmlnU3RyaW5nLCBhbmltYXRlZCA9IGZhbHNlLCBmb3JtYXQ6IEltYWdlRm9ybWF0ID0gJ3BuZycpOiBzdHJpbmcge1xuICByZXR1cm4gYGh0dHBzOi8vY2RuLmRpc2NvcmRhcHAuY29tL2Vtb2ppcy8ke2Vtb2ppSWR9LiR7YW5pbWF0ZWQgPyAoZm9ybWF0ID09PSAnd2VicCcgPyAnd2VicCcgOiAnZ2lmJykgOiBmb3JtYXR9JHthbmltYXRlZCAmJiBmb3JtYXQgPT09ICd3ZWJwJyA/ICc/YW5pbWF0ZWQ9dHJ1ZScgOiAnJ31gO1xufVxuXG4vKipcbiAqIEJ1aWxkcyBhIFVSTCB0byBhIHVzZXIncyBhdmF0YXIgc3RvcmVkIGluIHRoZSBEaXNjb3JkIENETi5cbiAqXG4gKiBAcGFyYW0gdXNlcklkIC0gVGhlIElEIG9mIHRoZSB1c2VyIHRvIGdldCB0aGUgYXZhdGFyIG9mLlxuICogQHBhcmFtIGF2YXRhciAtIFRoZSB1c2VyJ3MgYXZhdGFyIGhhc2guXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgYnVpbGRpbmcgb2YgdGhlIFVSTC5cbiAqIEByZXR1cm5zIFRoZSB1c2VyIGF2YXRhciBhcyBhIFVSTC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGF2YXRhclVybCh1c2VySWQ6IEJpZ1N0cmluZywgYXZhdGFyOiBCaWdTdHJpbmcsIG9wdGlvbnM/OiBJbWFnZU9wdGlvbnMpOiBzdHJpbmcge1xuICByZXR1cm4gZm9ybWF0SW1hZ2VVcmwoXG4gICAgYGh0dHBzOi8vY2RuLmRpc2NvcmRhcHAuY29tL2F2YXRhcnMvJHt1c2VySWR9LyR7dHlwZW9mIGF2YXRhciA9PT0gJ3N0cmluZycgPyBhdmF0YXIgOiBpY29uQmlnaW50VG9IYXNoKGF2YXRhcil9YCxcbiAgICBvcHRpb25zPy5zaXplID8/IDEyOCxcbiAgICBvcHRpb25zPy5mb3JtYXQsXG4gICk7XG59XG5cbi8qKlxuICogQnVpbGRzIGEgVVJMIHRvIGEgdXNlcidzIGRlZmF1bHQgYXZhdGFyIHN0b3JlZCBpbiB0aGUgRGlzY29yZCBDRE4uXG4gKlxuICogQHBhcmFtIHVzZXJJZCAtIFRoZSBJRCBvZiB0aGUgdXNlciB0byBnZXQgdGhlIGF2YXRhciBvZi5cbiAqIEBwYXJhbSBkaXNjcmltaW5hdG9yIC0gVGhlIHVzZXIncyBkaXNjcmltaW5hdG9yLiAoNC1kaWdpdCB0YWcgYWZ0ZXIgdGhlIGhhc2h0YWcuKVxuICogQHJldHVybnMgVGhlIHVzZXIgZGVmYXVsdCBhdmF0YXIgYXMgYW4gVVJMLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZGVmYXVsdEF2YXRhclVybCh1c2VySWQ6IEJpZ1N0cmluZywgZGlzY3JpbWluYXRvcjogc3RyaW5nKSB7XG4gIGNvbnN0IGlzTGVnYWN5ID0gZGlzY3JpbWluYXRvciA9PT0gJzAnIHx8IGRpc2NyaW1pbmF0b3IgPT09ICcwMDAwJztcbiAgY29uc3QgaW5kZXggPSBpc0xlZ2FjeSA/IChCaWdJbnQodXNlcklkKSA+PiAyMm4pICUgNm4gOiBOdW1iZXIoZGlzY3JpbWluYXRvcikgJSA1O1xuXG4gIHJldHVybiBgaHR0cHM6Ly9jZG4uZGlzY29yZGFwcC5jb20vZW1iZWQvYXZhdGFycy8ke2luZGV4fS5wbmdgO1xufVxuXG4vKipcbiAqIEJ1aWxkcyBhIFVSTCB0byBhIHVzZXIncyBkaXNwbGF5IGF2YXRhciBzdG9yZWQgaW4gdGhlIERpc2NvcmQgQ0ROLlxuICpcbiAqIEBwYXJhbSB1c2VySWQgLSBUaGUgSUQgb2YgdGhlIHVzZXIgdG8gZ2V0IHRoZSBhdmF0YXIgb2YuXG4gKiBAcGFyYW0gZGlzY3JpbWluYXRvciAtIFRoZSB1c2VyJ3MgZGlzY3JpbWluYXRvci4gKDQtZGlnaXQgdGFnIGFmdGVyIHRoZSBoYXNodGFnLilcbiAqIEBwYXJhbSBhdmF0YXIgLSBUaGUgdXNlcidzIGF2YXRhciBoYXNoLlxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIGJ1aWxkaW5nIG9mIHRoZSBVUkwuXG4gKiBAcmV0dXJucyBUaGUgdXNlciBkaXNwbGF5IGF2YXRhciBhcyBhbiBVUkwuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkaXNwbGF5QXZhdGFyVXJsKHVzZXJJZDogQmlnU3RyaW5nLCBkaXNjcmltaW5hdG9yOiBzdHJpbmcsIGF2YXRhcjogQmlnU3RyaW5nIHwgdW5kZWZpbmVkLCBvcHRpb25zPzogSW1hZ2VPcHRpb25zKTogc3RyaW5nIHtcbiAgcmV0dXJuIGF2YXRhciA/IGF2YXRhclVybCh1c2VySWQsIGF2YXRhciwgb3B0aW9ucykgOiBkZWZhdWx0QXZhdGFyVXJsKHVzZXJJZCwgZGlzY3JpbWluYXRvcik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhdmF0YXJEZWNvcmF0aW9uVXJsKGF2YXRhckRlY29yYXRpb246IEJpZ1N0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBgaHR0cHM6Ly9jZG4uZGlzY29yZGFwcC5jb20vYXZhdGFyLWRlY29yYXRpb24tcHJlc2V0cy8ke1xuICAgIHR5cGVvZiBhdmF0YXJEZWNvcmF0aW9uID09PSAnc3RyaW5nJyA/IGF2YXRhckRlY29yYXRpb24gOiBpY29uQmlnaW50VG9IYXNoKGF2YXRhckRlY29yYXRpb24pXG4gIH0ucG5nYDtcbn1cblxuLyoqXG4gKiBCdWlsZHMgYSBVUkwgdG8gYSB1c2VyJ3MgYmFubmVyIHN0b3JlZCBpbiB0aGUgRGlzY29yZCBDRE4uXG4gKlxuICogQHBhcmFtIHVzZXJJZCAtIFRoZSBJRCBvZiB0aGUgdXNlciB0byBnZXQgdGhlIGJhbm5lciBvZi5cbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBidWlsZGluZyBvZiB0aGUgVVJMLlxuICogQHJldHVybnMgVGhlIGxpbmsgdG8gdGhlIHJlc291cmNlIG9yIGB1bmRlZmluZWRgIGlmIG5vIGJhbm5lciBoYXMgbm90IGJlZW4gc2V0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gYmFubmVyVXJsKHVzZXJJZDogQmlnU3RyaW5nLCBvcHRpb25zPzogSW1hZ2VPcHRpb25zICYgeyBiYW5uZXI/OiBCaWdTdHJpbmcgfSk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBvcHRpb25zPy5iYW5uZXJcbiAgICA/IGZvcm1hdEltYWdlVXJsKFxuICAgICAgICBgaHR0cHM6Ly9jZG4uZGlzY29yZGFwcC5jb20vYmFubmVycy8ke3VzZXJJZH0vJHt0eXBlb2Ygb3B0aW9ucy5iYW5uZXIgPT09ICdzdHJpbmcnID8gb3B0aW9ucy5iYW5uZXIgOiBpY29uQmlnaW50VG9IYXNoKG9wdGlvbnMuYmFubmVyKX1gLFxuICAgICAgICBvcHRpb25zPy5zaXplID8/IDEyOCxcbiAgICAgICAgb3B0aW9ucz8uZm9ybWF0LFxuICAgICAgKVxuICAgIDogdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIEJ1aWxkcyBhIFVSTCB0byB0aGUgZ3VpbGQgYmFubmVyIHN0b3JlZCBpbiB0aGUgRGlzY29yZCBDRE4uXG4gKlxuICogQHBhcmFtIGd1aWxkSWQgLSBUaGUgSUQgb2YgdGhlIGd1aWxkIHRvIGdldCB0aGUgbGluayB0byB0aGUgYmFubmVyIGZvci5cbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBidWlsZGluZyBvZiB0aGUgVVJMLlxuICogQHJldHVybnMgVGhlIGxpbmsgdG8gdGhlIHJlc291cmNlIG9yIGB1bmRlZmluZWRgIGlmIG5vIGJhbm5lciBoYXMgYmVlbiBzZXQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBndWlsZEJhbm5lclVybChndWlsZElkOiBCaWdTdHJpbmcsIG9wdGlvbnM6IEltYWdlT3B0aW9ucyAmIHsgYmFubmVyPzogQmlnU3RyaW5nIH0pOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICByZXR1cm4gb3B0aW9ucy5iYW5uZXJcbiAgICA/IGZvcm1hdEltYWdlVXJsKFxuICAgICAgICBgaHR0cHM6Ly9jZG4uZGlzY29yZGFwcC5jb20vYmFubmVycy8ke2d1aWxkSWR9LyR7dHlwZW9mIG9wdGlvbnMuYmFubmVyID09PSAnc3RyaW5nJyA/IG9wdGlvbnMuYmFubmVyIDogaWNvbkJpZ2ludFRvSGFzaChvcHRpb25zLmJhbm5lcil9YCxcbiAgICAgICAgb3B0aW9ucy5zaXplID8/IDEyOCxcbiAgICAgICAgb3B0aW9ucy5mb3JtYXQsXG4gICAgICApXG4gICAgOiB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogQnVpbGRzIGEgVVJMIHRvIHRoZSBndWlsZCBpY29uIHN0b3JlZCBpbiB0aGUgRGlzY29yZCBDRE4uXG4gKlxuICogQHBhcmFtIGd1aWxkSWQgLSBUaGUgSUQgb2YgdGhlIGd1aWxkIHRvIGdldCB0aGUgbGluayB0byB0aGUgYmFubmVyIGZvci5cbiAqIEBwYXJhbSBpbWFnZUhhc2ggLSBUaGUgaGFzaCBpZGVudGlmeWluZyB0aGUgZXZlbnQgY292ZXIgaW1hZ2UuXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgYnVpbGRpbmcgb2YgdGhlIFVSTC5cbiAqIEByZXR1cm5zIFRoZSBsaW5rIHRvIHRoZSByZXNvdXJjZSBvciBgdW5kZWZpbmVkYCBpZiBubyBiYW5uZXIgaGFzIGJlZW4gc2V0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ3VpbGRJY29uVXJsKGd1aWxkSWQ6IEJpZ1N0cmluZywgaW1hZ2VIYXNoOiBCaWdTdHJpbmcgfCB1bmRlZmluZWQsIG9wdGlvbnM/OiBJbWFnZU9wdGlvbnMpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICByZXR1cm4gaW1hZ2VIYXNoXG4gICAgPyBmb3JtYXRJbWFnZVVybChcbiAgICAgICAgYGh0dHBzOi8vY2RuLmRpc2NvcmRhcHAuY29tL2ljb25zLyR7Z3VpbGRJZH0vJHt0eXBlb2YgaW1hZ2VIYXNoID09PSAnc3RyaW5nJyA/IGltYWdlSGFzaCA6IGljb25CaWdpbnRUb0hhc2goaW1hZ2VIYXNoKX1gLFxuICAgICAgICBvcHRpb25zPy5zaXplID8/IDEyOCxcbiAgICAgICAgb3B0aW9ucz8uZm9ybWF0LFxuICAgICAgKVxuICAgIDogdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIEJ1aWxkcyB0aGUgVVJMIHRvIGEgZ3VpbGQgc3BsYXNoIHN0b3JlZCBpbiB0aGUgRGlzY29yZCBDRE4uXG4gKlxuICogQHBhcmFtIGd1aWxkSWQgLSBUaGUgSUQgb2YgdGhlIGd1aWxkIHRvIGdldCB0aGUgc3BsYXNoIG9mLlxuICogQHBhcmFtIGltYWdlSGFzaCAtIFRoZSBoYXNoIGlkZW50aWZ5aW5nIHRoZSBzcGxhc2ggaW1hZ2UuXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgYnVpbGRpbmcgb2YgdGhlIFVSTC5cbiAqIEByZXR1cm5zIFRoZSBsaW5rIHRvIHRoZSByZXNvdXJjZSBvciBgdW5kZWZpbmVkYCBpZiB0aGUgZ3VpbGQgZG9lcyBub3QgaGF2ZSBhIHNwbGFzaCBpbWFnZSBzZXQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBndWlsZFNwbGFzaFVybChndWlsZElkOiBCaWdTdHJpbmcsIGltYWdlSGFzaDogQmlnU3RyaW5nIHwgdW5kZWZpbmVkLCBvcHRpb25zPzogSW1hZ2VPcHRpb25zKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIGltYWdlSGFzaFxuICAgID8gZm9ybWF0SW1hZ2VVcmwoXG4gICAgICAgIGBodHRwczovL2Nkbi5kaXNjb3JkYXBwLmNvbS9zcGxhc2hlcy8ke2d1aWxkSWR9LyR7dHlwZW9mIGltYWdlSGFzaCA9PT0gJ3N0cmluZycgPyBpbWFnZUhhc2ggOiBpY29uQmlnaW50VG9IYXNoKGltYWdlSGFzaCl9YCxcbiAgICAgICAgb3B0aW9ucz8uc2l6ZSA/PyAxMjgsXG4gICAgICAgIG9wdGlvbnM/LmZvcm1hdCxcbiAgICAgIClcbiAgICA6IHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBCdWlsZHMgdGhlIFVSTCB0byBhIGd1aWxkIGRpc2NvdmVyeSBzcGxhc2ggc3RvcmVkIGluIHRoZSBEaXNjb3JkIENETi5cbiAqXG4gKiBAcGFyYW0gZ3VpbGRJZCAtIFRoZSBJRCBvZiB0aGUgZ3VpbGQgdG8gZ2V0IHRoZSBzcGxhc2ggb2YuXG4gKiBAcGFyYW0gaW1hZ2VIYXNoIC0gVGhlIGhhc2ggaWRlbnRpZnlpbmcgdGhlIGRpc2NvdmVyeSBzcGxhc2ggaW1hZ2UuXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgYnVpbGRpbmcgb2YgdGhlIFVSTC5cbiAqIEByZXR1cm5zIFRoZSBsaW5rIHRvIHRoZSByZXNvdXJjZSBvciBgdW5kZWZpbmVkYCBpZiB0aGUgZ3VpbGQgZG9lcyBub3QgaGF2ZSBhIHNwbGFzaCBpbWFnZSBzZXQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBndWlsZERpc2NvdmVyeVNwbGFzaFVybChndWlsZElkOiBCaWdTdHJpbmcsIGltYWdlSGFzaDogQmlnU3RyaW5nIHwgdW5kZWZpbmVkLCBvcHRpb25zPzogSW1hZ2VPcHRpb25zKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIGltYWdlSGFzaFxuICAgID8gZm9ybWF0SW1hZ2VVcmwoXG4gICAgICAgIGBodHRwczovL2Nkbi5kaXNjb3JkYXBwLmNvbS9kaXNjb3Zlcnktc3BsYXNoZXMvJHtndWlsZElkfS8ke3R5cGVvZiBpbWFnZUhhc2ggPT09ICdzdHJpbmcnID8gaW1hZ2VIYXNoIDogaWNvbkJpZ2ludFRvSGFzaChpbWFnZUhhc2gpfWAsXG4gICAgICAgIG9wdGlvbnM/LnNpemUgPz8gMTI4LFxuICAgICAgICBvcHRpb25zPy5mb3JtYXQsXG4gICAgICApXG4gICAgOiB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogQnVpbGRzIHRoZSBVUkwgdG8gYSBndWlsZCBzY2hlZHVsZWQgZXZlbnQgY292ZXIgc3RvcmVkIGluIHRoZSBEaXNjb3JkIENETi5cbiAqXG4gKiBAcGFyYW0gZXZlbnRJZCAtIFRoZSBJRCBvZiB0aGUgc2NoZWR1bGVkIGV2ZW50IHRvIGdldCB0aGUgY292ZXIgb2YuXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgYnVpbGRpbmcgb2YgdGhlIFVSTC5cbiAqIEByZXR1cm5zIFRoZSBsaW5rIHRvIHRoZSByZXNvdXJjZSBvciBgdW5kZWZpbmVkYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGd1aWxkU2NoZWR1bGVkRXZlbnRDb3ZlclVybChldmVudElkOiBCaWdTdHJpbmcsIG9wdGlvbnM6IEltYWdlT3B0aW9ucyAmIHsgY292ZXI/OiBCaWdTdHJpbmcgfSk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBvcHRpb25zLmNvdmVyXG4gICAgPyBmb3JtYXRJbWFnZVVybChcbiAgICAgICAgYGh0dHBzOi8vY2RuLmRpc2NvcmRhcHAuY29tL2d1aWxkLWV2ZW50cy8ke2V2ZW50SWR9LyR7dHlwZW9mIG9wdGlvbnMuY292ZXIgPT09ICdzdHJpbmcnID8gb3B0aW9ucy5jb3ZlciA6IGljb25CaWdpbnRUb0hhc2gob3B0aW9ucy5jb3Zlcil9YCxcbiAgICAgICAgb3B0aW9ucy5zaXplID8/IDEyOCxcbiAgICAgICAgb3B0aW9ucy5mb3JtYXQsXG4gICAgICApXG4gICAgOiB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogQnVpbGRzIGEgVVJMIHRvIHRoZSBndWlsZCB3aWRnZXQgaW1hZ2Ugc3RvcmVkIGluIHRoZSBEaXNjb3JkIENETi5cbiAqXG4gKiBAcGFyYW0gZ3VpbGRJZCAtIFRoZSBJRCBvZiB0aGUgZ3VpbGQgdG8gZ2V0IHRoZSBsaW5rIHRvIHRoZSB3aWRnZXQgaW1hZ2UgZm9yLlxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIGJ1aWxkaW5nIG9mIHRoZSBVUkwuXG4gKiBAcmV0dXJucyBUaGUgbGluayB0byB0aGUgcmVzb3VyY2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRXaWRnZXRJbWFnZVVybChndWlsZElkOiBCaWdTdHJpbmcsIG9wdGlvbnM/OiBHZXRHdWlsZFdpZGdldEltYWdlUXVlcnkpOiBzdHJpbmcge1xuICBsZXQgdXJsID0gYGh0dHBzOi8vZGlzY29yZGFwcC5jb20vYXBpL2d1aWxkcy8ke2d1aWxkSWR9L3dpZGdldC5wbmdgO1xuXG4gIGlmIChvcHRpb25zPy5zdHlsZSkge1xuICAgIHVybCArPSBgP3N0eWxlPSR7b3B0aW9ucy5zdHlsZX1gO1xuICB9XG5cbiAgcmV0dXJuIHVybDtcbn1cblxuLyoqXG4gKiBCdWlsZHMgYSBVUkwgdG8gYSBtZW1iZXIncyBhdmF0YXIgc3RvcmVkIGluIHRoZSBEaXNjb3JkIENETi5cbiAqXG4gKiBAcGFyYW0gZ3VpbGRJZCAtIFRoZSBJRCBvZiB0aGUgZ3VpbGQgd2hlcmUgdGhlIG1lbWJlciBpc1xuICogQHBhcmFtIHVzZXJJZCAtIFRoZSBJRCBvZiB0aGUgdXNlciB0byBnZXQgdGhlIGF2YXRhciBvZi5cbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBidWlsZGluZyBvZiB0aGUgVVJMLlxuICogQHJldHVybnMgVGhlIGxpbmsgdG8gdGhlIHJlc291cmNlIG9yIGB1bmRlZmluZWRgIGlmIG5vIGJhbm5lciBoYXMgYmVlbiBzZXQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtZW1iZXJBdmF0YXJVcmwoZ3VpbGRJZDogQmlnU3RyaW5nLCB1c2VySWQ6IEJpZ1N0cmluZywgb3B0aW9ucz86IEltYWdlT3B0aW9ucyAmIHsgYXZhdGFyPzogQmlnU3RyaW5nIH0pOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICByZXR1cm4gb3B0aW9ucz8uYXZhdGFyXG4gICAgPyBmb3JtYXRJbWFnZVVybChcbiAgICAgICAgYGh0dHBzOi8vY2RuLmRpc2NvcmRhcHAuY29tL2d1aWxkcy8ke2d1aWxkSWR9L3VzZXJzLyR7dXNlcklkfS9hdmF0YXJzLyR7XG4gICAgICAgICAgdHlwZW9mIG9wdGlvbnMuYXZhdGFyID09PSAnc3RyaW5nJyA/IG9wdGlvbnMuYXZhdGFyIDogaWNvbkJpZ2ludFRvSGFzaChvcHRpb25zLmF2YXRhcilcbiAgICAgICAgfWAsXG4gICAgICAgIG9wdGlvbnM/LnNpemUgPz8gMTI4LFxuICAgICAgICBvcHRpb25zPy5mb3JtYXQsXG4gICAgICApXG4gICAgOiB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogQnVpbGRzIGEgVVJMIHRvIGEgbWVtYmVyJ3MgYmFubmVyIHN0b3JlZCBpbiB0aGUgRGlzY29yZCBDRE4uXG4gKlxuICogQHBhcmFtIGd1aWxkSWQgLSBUaGUgSUQgb2YgdGhlIGd1aWxkIHdoZXJlIHRoZSBtZW1iZXIgaXNcbiAqIEBwYXJhbSB1c2VySWQgLSBUaGUgSUQgb2YgdGhlIHVzZXIgdG8gZ2V0IHRoZSBiYW5uZXIgb2YuXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgYnVpbGRpbmcgb2YgdGhlIFVSTC5cbiAqIEByZXR1cm5zIFRoZSBsaW5rIHRvIHRoZSByZXNvdXJjZSBvciBgdW5kZWZpbmVkYCBpZiBubyBiYW5uZXIgaGFzIGJlZW4gc2V0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gbWVtYmVyQmFubmVyVXJsKGd1aWxkSWQ6IEJpZ1N0cmluZywgdXNlcklkOiBCaWdTdHJpbmcsIG9wdGlvbnM/OiBJbWFnZU9wdGlvbnMgJiB7IGJhbm5lcj86IEJpZ1N0cmluZyB9KTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIG9wdGlvbnM/LmJhbm5lclxuICAgID8gZm9ybWF0SW1hZ2VVcmwoXG4gICAgICAgIGBodHRwczovL2Nkbi5kaXNjb3JkYXBwLmNvbS9ndWlsZHMvJHtndWlsZElkfS91c2Vycy8ke3VzZXJJZH0vYmFubmVycy8ke1xuICAgICAgICAgIHR5cGVvZiBvcHRpb25zLmJhbm5lciA9PT0gJ3N0cmluZycgPyBvcHRpb25zLmJhbm5lciA6IGljb25CaWdpbnRUb0hhc2gob3B0aW9ucy5iYW5uZXIpXG4gICAgICAgIH1gLFxuICAgICAgICBvcHRpb25zPy5zaXplID8/IDEyOCxcbiAgICAgICAgb3B0aW9ucz8uZm9ybWF0LFxuICAgICAgKVxuICAgIDogdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIEJ1aWxkcyB0aGUgVVJMIHRvIGFuIGFwcGxpY2F0aW9uIGljb24gc3RvcmVkIGluIHRoZSBEaXNjb3JkIENETi5cbiAqXG4gKiBAcGFyYW0gYXBwbGljYXRpb25JZCAtIFRoZSBJRCBvZiB0aGUgYXBwbGljYXRpb24gdG8gZ2V0IHRoZSBpY29uIG9mLlxuICogQHBhcmFtIGljb25IYXNoIC0gVGhlIGhhc2ggaWRlbnRpZnlpbmcgdGhlIGFwcGxpY2F0aW9uIGljb24uXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgYnVpbGRpbmcgb2YgdGhlIFVSTC5cbiAqIEByZXR1cm5zIFRoZSBsaW5rIHRvIHRoZSByZXNvdXJjZSBvciBgdW5kZWZpbmVkYFxuICovXG5leHBvcnQgZnVuY3Rpb24gYXBwbGljYXRpb25JY29uVXJsKGFwcGxpY2F0aW9uSWQ6IEJpZ1N0cmluZywgaWNvbkhhc2g6IEJpZ1N0cmluZyB8IHVuZGVmaW5lZCwgb3B0aW9ucz86IEltYWdlT3B0aW9ucyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBpY29uSGFzaFxuICAgID8gZm9ybWF0SW1hZ2VVcmwoXG4gICAgICAgIGBodHRwczovL2Nkbi5kaXNjb3JkYXBwLmNvbS9hcHAtaWNvbnMvJHthcHBsaWNhdGlvbklkfS8ke3R5cGVvZiBpY29uSGFzaCA9PT0gJ3N0cmluZycgPyBpY29uSGFzaCA6IGljb25CaWdpbnRUb0hhc2goaWNvbkhhc2gpfWAsXG4gICAgICAgIG9wdGlvbnM/LnNpemUgPz8gMTI4LFxuICAgICAgICBvcHRpb25zPy5mb3JtYXQsXG4gICAgICApXG4gICAgOiB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogQnVpbGRzIHRoZSBVUkwgdG8gYW4gYXBwbGljYXRpb24gY292ZXIgc3RvcmVkIGluIHRoZSBEaXNjb3JkIENETi5cbiAqXG4gKiBAcGFyYW0gYXBwbGljYXRpb25JZCAtIFRoZSBJRCBvZiB0aGUgYXBwbGljYXRpb24gdG8gZ2V0IHRoZSBjb3ZlciBvZi5cbiAqIEBwYXJhbSBjb3Zlckhhc2ggLSBUaGUgaGFzaCBpZGVudGlmeWluZyB0aGUgYXBwbGljYXRpb24gY292ZXIuXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgYnVpbGRpbmcgb2YgdGhlIFVSTC5cbiAqIEByZXR1cm5zIFRoZSBsaW5rIHRvIHRoZSByZXNvdXJjZSBvciBgdW5kZWZpbmVkYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFwcGxpY2F0aW9uQ292ZXJVcmwoYXBwbGljYXRpb25JZDogQmlnU3RyaW5nLCBjb3Zlckhhc2g6IEJpZ1N0cmluZyB8IHVuZGVmaW5lZCwgb3B0aW9ucz86IEltYWdlT3B0aW9ucyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBjb3Zlckhhc2hcbiAgICA/IGZvcm1hdEltYWdlVXJsKFxuICAgICAgICBgaHR0cHM6Ly9jZG4uZGlzY29yZGFwcC5jb20vYXBwLWljb25zLyR7YXBwbGljYXRpb25JZH0vJHt0eXBlb2YgY292ZXJIYXNoID09PSAnc3RyaW5nJyA/IGNvdmVySGFzaCA6IGljb25CaWdpbnRUb0hhc2goY292ZXJIYXNoKX1gLFxuICAgICAgICBvcHRpb25zPy5zaXplID8/IDEyOCxcbiAgICAgICAgb3B0aW9ucz8uZm9ybWF0LFxuICAgICAgKVxuICAgIDogdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIEJ1aWxkcyB0aGUgVVJMIHRvIGFuIGFwcGxpY2F0aW9uIGFzc2V0IHN0b3JlZCBpbiB0aGUgRGlzY29yZCBDRE4uXG4gKlxuICogQHBhcmFtIGFwcGxpY2F0aW9uSWQgLSBUaGUgSUQgb2YgdGhlIGFwcGxpY2F0aW9uIHRvIGdldCB0aGUgYXNzZXQgb2YuXG4gKiBAcGFyYW0gYXNzZXRJZCAtIFRoZSBpZCBpZGVudGlmeWluZyB0aGUgYXBwbGljYXRpb24gYXNzZXQuXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgYnVpbGRpbmcgb2YgdGhlIFVSTC5cbiAqIEByZXR1cm5zIFRoZSBsaW5rIHRvIHRoZSByZXNvdXJjZSBvciBgdW5kZWZpbmVkYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFwcGxpY2F0aW9uQXNzZXRVcmwoYXBwbGljYXRpb25JZDogQmlnU3RyaW5nLCBhc3NldElkOiBCaWdTdHJpbmcgfCB1bmRlZmluZWQsIG9wdGlvbnM/OiBJbWFnZU9wdGlvbnMpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICByZXR1cm4gYXNzZXRJZFxuICAgID8gZm9ybWF0SW1hZ2VVcmwoXG4gICAgICAgIGBodHRwczovL2Nkbi5kaXNjb3JkYXBwLmNvbS9hcHAtaWNvbnMvJHthcHBsaWNhdGlvbklkfS8ke3R5cGVvZiBhc3NldElkID09PSAnc3RyaW5nJyA/IGFzc2V0SWQgOiBpY29uQmlnaW50VG9IYXNoKGFzc2V0SWQpfWAsXG4gICAgICAgIG9wdGlvbnM/LnNpemUgPz8gMTI4LFxuICAgICAgICBvcHRpb25zPy5mb3JtYXQsXG4gICAgICApXG4gICAgOiB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogQnVpbGRzIHRoZSBVUkwgdG8gYSBzdGlja2VyIHBhY2sgYmFubmVyIHN0b3JlZCBpbiB0aGUgRGlzY29yZCBDRE4uXG4gKlxuICogQHBhcmFtIGJhbm5lckFzc2V0SWQgLSBUaGUgSUQgb2YgdGhlIGJhbm5lciBhc3NldCBmb3IgdGhlIHN0aWNrZXIgcGFjay5cbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBidWlsZGluZyBvZiB0aGUgVVJMLlxuICogQHJldHVybnMgVGhlIGxpbmsgdG8gdGhlIHJlc291cmNlIG9yIGB1bmRlZmluZWRgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc3RpY2tlclBhY2tCYW5uZXJVcmwoYmFubmVyQXNzZXRJZDogQmlnU3RyaW5nIHwgdW5kZWZpbmVkLCBvcHRpb25zPzogSW1hZ2VPcHRpb25zKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIGJhbm5lckFzc2V0SWRcbiAgICA/IGZvcm1hdEltYWdlVXJsKFxuICAgICAgICBgaHR0cHM6Ly9jZG4uZGlzY29yZGFwcC5jb20vYXBwLWFzc2V0cy83MTA5ODI0MTQzMDE3OTAyMTYvc3RvcmUvJHtcbiAgICAgICAgICB0eXBlb2YgYmFubmVyQXNzZXRJZCA9PT0gJ3N0cmluZycgPyBiYW5uZXJBc3NldElkIDogaWNvbkJpZ2ludFRvSGFzaChiYW5uZXJBc3NldElkKVxuICAgICAgICB9YCxcbiAgICAgICAgb3B0aW9ucz8uc2l6ZSA/PyAxMjgsXG4gICAgICAgIG9wdGlvbnM/LmZvcm1hdCxcbiAgICAgIClcbiAgICA6IHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBCdWlsZHMgdGhlIFVSTCB0byBhIHN0aWNrZXIgc3RvcmVkIGluIHRoZSBEaXNjb3JkIENETi5cbiAqXG4gKiBAcGFyYW0gc3RpY2tlcklkIC0gVGhlIElEIG9mIHRoZSBzdGlja2VyIHRvIGdldCB0aGUgaWNvbiBvZlxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIGJ1aWxkaW5nIG9mIHRoZSBVUkwuXG4gKiBAcmV0dXJucyBUaGUgbGluayB0byB0aGUgcmVzb3VyY2Ugb3IgYHVuZGVmaW5lZGAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzdGlja2VyVXJsKHN0aWNrZXJJZDogQmlnU3RyaW5nIHwgbnVtYmVyLCBvcHRpb25zPzogSW1hZ2VPcHRpb25zICYgeyB0eXBlPzogU3RpY2tlckZvcm1hdFR5cGVzIH0pOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICBpZiAoIXN0aWNrZXJJZCkgcmV0dXJuO1xuXG4gIGNvbnN0IHVybCA9XG4gICAgb3B0aW9ucz8udHlwZSA9PT0gU3RpY2tlckZvcm1hdFR5cGVzLkdpZlxuICAgICAgPyBgaHR0cHM6Ly9tZWRpYS5kaXNjb3JkYXBwLm5ldC9zdGlja2Vycy8ke3N0aWNrZXJJZH1gXG4gICAgICA6IGBodHRwczovL2Nkbi5kaXNjb3JkYXBwLmNvbS9zdGlja2Vycy8ke3N0aWNrZXJJZH1gO1xuXG4gIHJldHVybiBmb3JtYXRJbWFnZVVybCh1cmwsIG9wdGlvbnM/LnNpemUgPz8gMTI4LCBvcHRpb25zPy5mb3JtYXQpO1xufVxuXG4vKipcbiAqIEJ1aWxkcyB0aGUgVVJMIHRvIGEgdGVhbSBpY29uIHN0b3JlZCBpbiB0aGUgRGlzY29yZCBDRE4uXG4gKlxuICogQHBhcmFtIHRlYW1JZCAtIFRoZSBJRCBvZiB0aGUgdGVhbSB0byBnZXQgdGhlIGljb24gb2ZcbiAqIEBwYXJhbSBpY29uSGFzaCAtIFRoZSBoYXNoIG9mIHRoZSB0ZWFtIGljb24uXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgYnVpbGRpbmcgb2YgdGhlIFVSTC5cbiAqIEByZXR1cm5zIFRoZSBsaW5rIHRvIHRoZSByZXNvdXJjZSBvciBgdW5kZWZpbmVkYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRlYW1JY29uVXJsKHRlYW1JZDogQmlnU3RyaW5nLCBpY29uSGFzaDogQmlnU3RyaW5nIHwgdW5kZWZpbmVkLCBvcHRpb25zPzogSW1hZ2VPcHRpb25zKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIGljb25IYXNoXG4gICAgPyBmb3JtYXRJbWFnZVVybChcbiAgICAgICAgYGh0dHBzOi8vY2RuLmRpc2NvcmRhcHAuY29tL3RlYW0taWNvbnMvJHt0ZWFtSWR9L3N0b3JlLyR7dHlwZW9mIGljb25IYXNoID09PSAnc3RyaW5nJyA/IGljb25IYXNoIDogaWNvbkJpZ2ludFRvSGFzaChpY29uSGFzaCl9YCxcbiAgICAgICAgb3B0aW9ucz8uc2l6ZSA/PyAxMjgsXG4gICAgICAgIG9wdGlvbnM/LmZvcm1hdCxcbiAgICAgIClcbiAgICA6IHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBCdWlsZHMgdGhlIFVSTCB0byBhIHJvbGUgaWNvbiBzdG9yZWQgaW4gdGhlIERpc2NvcmQgQ0ROLlxuICpcbiAqIEBwYXJhbSByb2xlSWQgLSBUaGUgSUQgb2YgdGhlIHJvbGUgdG8gZ2V0IHRoZSBpY29uIG9mXG4gKiBAcGFyYW0gaWNvbkhhc2ggLSBUaGUgaGFzaCBvZiB0aGUgcm9sZSBpY29uLlxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIGJ1aWxkaW5nIG9mIHRoZSBVUkwuXG4gKiBAcmV0dXJucyBUaGUgbGluayB0byB0aGUgcmVzb3VyY2Ugb3IgYHVuZGVmaW5lZGAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByb2xlSWNvblVybChyb2xlSWQ6IEJpZ1N0cmluZywgaWNvbkhhc2g6IEJpZ1N0cmluZyB8IHVuZGVmaW5lZCwgb3B0aW9ucz86IEltYWdlT3B0aW9ucyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBpY29uSGFzaFxuICAgID8gZm9ybWF0SW1hZ2VVcmwoXG4gICAgICAgIGBodHRwczovL2Nkbi5kaXNjb3JkYXBwLmNvbS9yb2xlLWljb25zLyR7cm9sZUlkfS8ke3R5cGVvZiBpY29uSGFzaCA9PT0gJ3N0cmluZycgPyBpY29uSGFzaCA6IGljb25CaWdpbnRUb0hhc2goaWNvbkhhc2gpfWAsXG4gICAgICAgIG9wdGlvbnM/LnNpemUgPz8gMTI4LFxuICAgICAgICBvcHRpb25zPy5mb3JtYXQsXG4gICAgICApXG4gICAgOiB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogQnVpbGRzIHRoZSBVUkwgdG8gYSBndWlsZCB0YWcgYmFkZ2Ugc3RvcmVkIGluIHRoZSBEaXNjb3JkIENETi5cbiAqXG4gKiBAcGFyYW0gZ3VpbGRJZCAtIFRoZSBJRCBvZiB0aGUgZ3VpbGQgdG8gZ2V0IHRoZSB0YWcgYmFkZ2Ugb2ZcbiAqIEBwYXJhbSBiYWRnZUhhc2ggLSBUaGUgaGFzaCBpZGVudGlmeWluZyB0aGUgZ3VpbGQgdGFnIGJhZGdlLlxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIGJ1aWxkaW5nIG9mIHRoZSBVUkwuXG4gKiBAcmV0dXJucyBUaGUgbGluayB0byB0aGUgcmVzb3VyY2Ugb3IgYHVuZGVmaW5lZGAgaWYgbm8gYmFkZ2UgaGFzIGJlZW4gc2V0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ3VpbGRUYWdCYWRnZVVybChndWlsZElkOiBCaWdTdHJpbmcsIGJhZGdlSGFzaDogQmlnU3RyaW5nIHwgdW5kZWZpbmVkLCBvcHRpb25zPzogSW1hZ2VPcHRpb25zKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgaWYgKGJhZGdlSGFzaCA9PT0gdW5kZWZpbmVkKSByZXR1cm4gdW5kZWZpbmVkO1xuXG4gIHJldHVybiBmb3JtYXRJbWFnZVVybChgaHR0cHM6Ly9jZG4uZGlzY29yZGFwcC5jb20vZ3VpbGQtdGFnLWJhZGdlcy8ke2d1aWxkSWR9LyR7YmFkZ2VIYXNofWAsIG9wdGlvbnM/LnNpemUgPz8gMTI4LCBvcHRpb25zPy5mb3JtYXQpO1xufVxuIl0sIm5hbWVzIjpbIlN0aWNrZXJGb3JtYXRUeXBlcyIsImljb25CaWdpbnRUb0hhc2giLCJmb3JtYXRJbWFnZVVybCIsInVybCIsInNpemUiLCJmb3JtYXQiLCJhbmltYXRlZCIsImluY2x1ZGVzIiwiZW1vamlVcmwiLCJlbW9qaUlkIiwiYXZhdGFyVXJsIiwidXNlcklkIiwiYXZhdGFyIiwib3B0aW9ucyIsImRlZmF1bHRBdmF0YXJVcmwiLCJkaXNjcmltaW5hdG9yIiwiaXNMZWdhY3kiLCJpbmRleCIsIkJpZ0ludCIsIk51bWJlciIsImRpc3BsYXlBdmF0YXJVcmwiLCJhdmF0YXJEZWNvcmF0aW9uVXJsIiwiYXZhdGFyRGVjb3JhdGlvbiIsImJhbm5lclVybCIsImJhbm5lciIsInVuZGVmaW5lZCIsImd1aWxkQmFubmVyVXJsIiwiZ3VpbGRJZCIsImd1aWxkSWNvblVybCIsImltYWdlSGFzaCIsImd1aWxkU3BsYXNoVXJsIiwiZ3VpbGREaXNjb3ZlcnlTcGxhc2hVcmwiLCJndWlsZFNjaGVkdWxlZEV2ZW50Q292ZXJVcmwiLCJldmVudElkIiwiY292ZXIiLCJnZXRXaWRnZXRJbWFnZVVybCIsInN0eWxlIiwibWVtYmVyQXZhdGFyVXJsIiwibWVtYmVyQmFubmVyVXJsIiwiYXBwbGljYXRpb25JY29uVXJsIiwiYXBwbGljYXRpb25JZCIsImljb25IYXNoIiwiYXBwbGljYXRpb25Db3ZlclVybCIsImNvdmVySGFzaCIsImFwcGxpY2F0aW9uQXNzZXRVcmwiLCJhc3NldElkIiwic3RpY2tlclBhY2tCYW5uZXJVcmwiLCJiYW5uZXJBc3NldElkIiwic3RpY2tlclVybCIsInN0aWNrZXJJZCIsInR5cGUiLCJHaWYiLCJ0ZWFtSWNvblVybCIsInRlYW1JZCIsInJvbGVJY29uVXJsIiwicm9sZUlkIiwiZ3VpbGRUYWdCYWRnZVVybCIsImJhZGdlSGFzaCJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBMEZBLGtCQUFrQixRQUFRLG9CQUFvQjtBQUN4SSxTQUFTQyxnQkFBZ0IsUUFBUSxZQUFZO0FBTzdDLDhCQUE4QixHQUM5QixPQUFPLFNBQVNDLGVBQWVDLEdBQVcsRUFBRUMsT0FBa0IsR0FBRyxFQUFFQyxNQUFvQjtJQUNyRixNQUFNQyxXQUFXSCxJQUFJSSxRQUFRLENBQUM7SUFDOUJGLFdBQVdDLFdBQVcsUUFBUTtJQUU5QixPQUFPLEdBQUdILElBQUksQ0FBQyxFQUFFRSxPQUFPLE1BQU0sRUFBRUQsT0FBT0UsWUFBWUQsV0FBVyxTQUFTLG1CQUFtQixJQUFJO0FBQ2hHO0FBRUE7Ozs7Ozs7Ozs7Q0FVQyxHQUNELE9BQU8sU0FBU0csU0FBU0MsT0FBa0IsRUFBRUgsV0FBVyxLQUFLLEVBQUVELFNBQXNCLEtBQUs7SUFDeEYsT0FBTyxDQUFDLGtDQUFrQyxFQUFFSSxRQUFRLENBQUMsRUFBRUgsV0FBWUQsV0FBVyxTQUFTLFNBQVMsUUFBU0EsU0FBU0MsWUFBWUQsV0FBVyxTQUFTLG1CQUFtQixJQUFJO0FBQzNLO0FBRUE7Ozs7Ozs7Q0FPQyxHQUNELE9BQU8sU0FBU0ssVUFBVUMsTUFBaUIsRUFBRUMsTUFBaUIsRUFBRUMsT0FBc0I7SUFDcEYsT0FBT1gsZUFD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
package/dist/oauth2.d.ts CHANGED
@@ -28,7 +28,7 @@ export interface CreateOAuth2LinkOptions {
28
28
  * The type of response
29
29
  *
30
30
  * @remarks
31
- * Should be defined only if using either OAuth2 authorization, implicit or not, or [advanced bot authorization](https://discord.com/developers/docs/topics/oauth2#advanced-bot-authorization)
31
+ * Should be defined only if using either OAuth2 authorization, implicit or not, or [advanced bot authorization](https://docs.discord.com/developers/topics/oauth2#advanced-bot-authorization)
32
32
  */
33
33
  responseType?: 'code' | 'token';
34
34
  /** The id of the application */
@@ -38,14 +38,14 @@ export interface CreateOAuth2LinkOptions {
38
38
  /**
39
39
  * The optional state for security
40
40
  *
41
- * @see https://discord.com/developers/docs/topics/oauth2#state-and-security
41
+ * @see https://docs.discord.com/developers/topics/oauth2#state-and-security
42
42
  */
43
43
  state?: string;
44
44
  /**
45
45
  * The redirect uri for after the authentication
46
46
  *
47
47
  * @remarks
48
- * Should be defined only if using either OAuth2 authorization, implicit or not, or [advanced bot authorization](https://discord.com/developers/docs/topics/oauth2#advanced-bot-authorization)
48
+ * Should be defined only if using either OAuth2 authorization, implicit or not, or [advanced bot authorization](https://docs.discord.com/developers/topics/oauth2#advanced-bot-authorization)
49
49
  */
50
50
  redirectUri?: string;
51
51
  /**
@@ -60,21 +60,21 @@ export interface CreateOAuth2LinkOptions {
60
60
  * The permissions of the invited bot
61
61
  *
62
62
  * @remarks
63
- * Should be defined only in a [bot authorization flow](https://discord.com/developers/docs/topics/oauth2#bot-authorization-flow) or with [advanced bot authorization](https://discord.com/developers/docs/topics/oauth2#advanced-bot-authorization)
63
+ * Should be defined only in a [bot authorization flow](https://docs.discord.com/developers/topics/oauth2#bot-authorization-flow) or with [advanced bot authorization](https://docs.discord.com/developers/topics/oauth2#advanced-bot-authorization)
64
64
  */
65
65
  permissions?: BigString | PermissionStrings[];
66
66
  /**
67
67
  * Pre-fills the dropdown picker with a guild for the user
68
68
  *
69
69
  * @remarks
70
- * Should be defined only in a [bot authorization flow](https://discord.com/developers/docs/topics/oauth2#bot-authorization-flow) or with [advanced bot authorization](https://discord.com/developers/docs/topics/oauth2#advanced-bot-authorization) or with the `webhook.incoming` scope
70
+ * Should be defined only in a [bot authorization flow](https://docs.discord.com/developers/topics/oauth2#bot-authorization-flow) or with [advanced bot authorization](https://docs.discord.com/developers/topics/oauth2#advanced-bot-authorization) or with the `webhook.incoming` scope
71
71
  */
72
72
  guildId?: BigString;
73
73
  /**
74
74
  * Disallows the user from changing the guild dropdown if set to true
75
75
  *
76
76
  * @remarks
77
- * Should be defined only in a [bot authorization flow](https://discord.com/developers/docs/topics/oauth2#bot-authorization-flow), with [advanced bot authorization](https://discord.com/developers/docs/topics/oauth2#advanced-bot-authorization) or with the `webhook.incoming` scope
77
+ * Should be defined only in a [bot authorization flow](https://docs.discord.com/developers/topics/oauth2#bot-authorization-flow), with [advanced bot authorization](https://docs.discord.com/developers/topics/oauth2#advanced-bot-authorization) or with the `webhook.incoming` scope
78
78
  */
79
79
  disableGuildSelect?: boolean;
80
80
  /**
package/dist/oauth2.js CHANGED
@@ -45,4 +45,4 @@ export function createOAuth2Link(options) {
45
45
  return encodeBase64Url(hashed);
46
46
  }
47
47
 
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9vYXV0aDIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBCaWdTdHJpbmcsIERpc2NvcmRBcHBsaWNhdGlvbkludGVncmF0aW9uVHlwZSwgT0F1dGgyU2NvcGUsIFBlcm1pc3Npb25TdHJpbmdzIH0gZnJvbSAnQGRpc2NvcmRlbm8vdHlwZXMnO1xuaW1wb3J0IHsgZW5jb2RlQmFzZTY0VXJsIH0gZnJvbSAnLi9iYXNlNjQuanMnO1xuaW1wb3J0IHsgY2FsY3VsYXRlQml0cyB9IGZyb20gJy4vcGVybWlzc2lvbnMuanMnO1xuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlT0F1dGgyTGluayhvcHRpb25zOiBDcmVhdGVPQXV0aDJMaW5rT3B0aW9ucyk6IHN0cmluZyB7XG4gIGNvbnN0IGpvaW5lZFNjb3BlU3RyaW5nID0gb3B0aW9ucy5zY29wZS5qb2luKCclMjAnKTtcblxuICBsZXQgdXJsID0gYGh0dHBzOi8vZGlzY29yZC5jb20vb2F1dGgyL2F1dGhvcml6ZT9jbGllbnRfaWQ9JHtvcHRpb25zLmNsaWVudElkfSZzY29wZT0ke2pvaW5lZFNjb3BlU3RyaW5nfWA7XG5cbiAgaWYgKG9wdGlvbnMucmVzcG9uc2VUeXBlKSB1cmwgKz0gYCZyZXNwb25zZV90eXBlPSR7b3B0aW9ucy5yZXNwb25zZVR5cGV9YDtcbiAgaWYgKG9wdGlvbnMuc3RhdGUpIHVybCArPSBgJnN0YXRlPSR7ZW5jb2RlVVJJQ29tcG9uZW50KG9wdGlvbnMuc3RhdGUpfWA7XG4gIGlmIChvcHRpb25zLnJlZGlyZWN0VXJpKSB1cmwgKz0gYCZyZWRpcmVjdF91cmk9JHtlbmNvZGVVUklDb21wb25lbnQob3B0aW9ucy5yZWRpcmVjdFVyaSl9YDtcbiAgaWYgKG9wdGlvbnMucHJvbXB0KSB1cmwgKz0gYCZwcm9tcHQ9JHtvcHRpb25zLnByb21wdH1gO1xuICBpZiAob3B0aW9ucy5wZXJtaXNzaW9ucykgdXJsICs9IGAmcGVybWlzc2lvbnM9JHtBcnJheS5pc0FycmF5KG9wdGlvbnMucGVybWlzc2lvbnMpID8gY2FsY3VsYXRlQml0cyhvcHRpb25zLnBlcm1pc3Npb25zKSA6IG9wdGlvbnMucGVybWlzc2lvbnN9YDtcbiAgaWYgKG9wdGlvbnMuZ3VpbGRJZCkgdXJsICs9IGAmZ3VpbGRfaWQ9JHtvcHRpb25zLmd1aWxkSWR9YDtcbiAgaWYgKG9wdGlvbnMuZGlzYWJsZUd1aWxkU2VsZWN0ICE9PSB1bmRlZmluZWQpIHVybCArPSBgJmRpc2FibGVfZ3VpbGRfc2VsZWN0PSR7b3B0aW9ucy5kaXNhYmxlR3VpbGRTZWxlY3R9YDtcbiAgaWYgKG9wdGlvbnMuaW50ZWdyYXRpb25UeXBlKSB1cmwgKz0gYCZpbnRlZ3JhdGlvbl90eXBlPSR7b3B0aW9ucy5pbnRlZ3JhdGlvblR5cGV9YDtcblxuICAvLyBPcHRpb25zIGRlZmluZWQgYnkgUkZDIDc2MzYgKGh0dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvZG9jL2h0bWwvcmZjNzYzNilcbiAgaWYgKG9wdGlvbnMuY29kZUNoYWxsZW5nZSkgdXJsICs9IGAmY29kZV9jaGFsbGVuZ2U9JHtvcHRpb25zLmNvZGVDaGFsbGVuZ2V9YDtcbiAgaWYgKG9wdGlvbnMuY29kZUNoYWxsZW5nZU1ldGhvZCkgdXJsICs9IGAmY29kZV9jaGFsbGVuZ2VfbWV0aG9kPSR7b3B0aW9ucy5jb2RlQ2hhbGxlbmdlTWV0aG9kfWA7XG5cbiAgcmV0dXJuIHVybDtcbn1cblxuLyoqXG4gKiBHZW5lcmF0ZXMgYSBjb2RlIHZlcmlmaWVyIGZvciB1c2UgaW4gdGhlIFBLQ0UgZXh0ZW5zaW9uIHRvIE9BdXRoMi5cbiAqXG4gKiBAcGFyYW0gb2N0ZXRMZW5ndGggLSBUaGUgbGVuZ3RoIG9mIHRoZSBjb2RlIHZlcmlmaWVyIGluIG9jdGV0cyAoZGVmYXVsdCBpcyAzMikuXG4gKiBAcmV0dXJuIFRoZSBiYXNlNjR1cmwgZW5jb2RlZCBjb2RlIHZlcmlmaWVyXG4gKlxuICogQHJlbWFya3NcbiAqIFRoZSBlbnRyb3B5IG9mIHRoZSBjb2RlIHZlcmlmaWVyIHNob3VsZCBiZSBiZXR3ZWVuIDI1NiBhbmQgNzY4IGJpdHMgKDMyIHRvIDk2IG9jdGV0cyksIGFzIHRoZSByZXN1bHRpbmcgYmFzZTY0dXJsIGVuY29kZWQgc3RyaW5nIGhhcyB0byBiZSBiZXR3ZWVuIDQzIGFuZCAxMjggY2hhcmFjdGVycyBsb25nLlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9kb2MvaHRtbC9yZmM3NjM2I3NlY3Rpb24tNy4xIGZvciB0aGUgb2N0ZXQgbGVuZ3RoXG4gKiBAc2VlIGh0dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvZG9jL2h0bWwvcmZjNzYzNiNzZWN0aW9uLTQuMSBmb3Igd2h5IDMyIG9jdGV0cyBpcyB0aGUgZGVmYXVsdFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVDb2RlVmVyaWZpZXIob2N0ZXRMZW5ndGg6IG51bWJlciA9IDMyKSB7XG4gIGNvbnN0IHJhbmRvbUJ5dGVzID0gbmV3IFVpbnQ4QXJyYXkob2N0ZXRMZW5ndGgpO1xuICBjcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKHJhbmRvbUJ5dGVzKTtcbiAgcmV0dXJuIGVuY29kZUJhc2U2NFVybChyYW5kb21CeXRlcyk7XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIGNvZGUgY2hhbGxlbmdlIGZyb20gdGhlIGNvZGUgdmVyaWZpZXIgdXNpbmcgdGhlIHNwZWNpZmllZCBtZXRob2QuXG4gKlxuICogQHBhcmFtIHZlcmlmaWVyIC0gVGhlIGNvZGUgdmVyaWZpZXIgdG8gdXNlLlxuICogQHJldHVybnMgVGhlIGNvZGUgY2hhbGxlbmdlLlxuICpcbiAqIEByZW1hcmtzXG4gKiBUaGlzIHBlcmZvcm1zIGEgU0hBLTI1NiBoYXNoIG9uIHRoZSB2ZXJpZmllciBhbmQgZW5jb2RlcyBpdCB1c2luZyBiYXNlNjR1cmwgZW5jb2RpbmcuIERpc2NvcmQgb25seSBzdXBwb3J0cyAnUzI1NicgYXMgdGhlIGNvZGUgY2hhbGxlbmdlIG1ldGhvZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNyZWF0ZUNvZGVDaGFsbGVuZ2UodmVyaWZpZXI6IHN0cmluZykge1xuICBjb25zdCBoYXNoZWQgPSBhd2FpdCBjcnlwdG8uc3VidGxlLmRpZ2VzdCgnU0hBLTI1NicsIG5ldyBUZXh0RW5jb2RlcigpLmVuY29kZSh2ZXJpZmllcikpO1xuICByZXR1cm4gZW5jb2RlQmFzZTY0VXJsKGhhc2hlZCk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlT0F1dGgyTGlua09wdGlvbnMge1xuICAvKipcbiAgICogVGhlIHR5cGUgb2YgcmVzcG9uc2VcbiAgICpcbiAgICogQHJlbWFya3NcbiAgICogU2hvdWxkIGJlIGRlZmluZWQgb25seSBpZiB1c2luZyBlaXRoZXIgT0F1dGgyIGF1dGhvcml6YXRpb24sIGltcGxpY2l0IG9yIG5vdCwgb3IgW2FkdmFuY2VkIGJvdCBhdXRob3JpemF0aW9uXShodHRwczovL2Rpc2NvcmQuY29tL2RldmVsb3BlcnMvZG9jcy90b3BpY3Mvb2F1dGgyI2FkdmFuY2VkLWJvdC1hdXRob3JpemF0aW9uKVxuICAgKi9cbiAgcmVzcG9uc2VUeXBlPzogJ2NvZGUnIHwgJ3Rva2VuJztcbiAgLyoqIFRoZSBpZCBvZiB0aGUgYXBwbGljYXRpb24gKi9cbiAgY2xpZW50SWQ6IEJpZ1N0cmluZztcbiAgLyoqIFRoZSBzY29wZXMgZm9yIHRoZSBhcHBsaWNhdGlvbiAqL1xuICBzY29wZTogT0F1dGgyU2NvcGVbXTtcbiAgLyoqXG4gICAqIFRoZSBvcHRpb25hbCBzdGF0ZSBmb3Igc2VjdXJpdHlcbiAgICpcbiAgICogQHNlZSBodHRwczovL2Rpc2NvcmQuY29tL2RldmVsb3BlcnMvZG9jcy90b3BpY3Mvb2F1dGgyI3N0YXRlLWFuZC1zZWN1cml0eVxuICAgKi9cbiAgc3RhdGU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgcmVkaXJlY3QgdXJpIGZvciBhZnRlciB0aGUgYXV0aGVudGljYXRpb25cbiAgICpcbiAgICogQHJlbWFya3NcbiAgICogU2hvdWxkIGJlIGRlZmluZWQgb25seSBpZiB1c2luZyBlaXRoZXIgT0F1dGgyIGF1dGhvcml6YXRpb24sIGltcGxpY2l0IG9yIG5vdCwgb3IgW2FkdmFuY2VkIGJvdCBhdXRob3JpemF0aW9uXShodHRwczovL2Rpc2NvcmQuY29tL2RldmVsb3BlcnMvZG9jcy90b3BpY3Mvb2F1dGgyI2FkdmFuY2VkLWJvdC1hdXRob3JpemF0aW9uKVxuICAgKi9cbiAgcmVkaXJlY3RVcmk/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgdHlwZSBvZiBwcm9tcHQgdG8gZ2l2ZSB0byB0aGUgdXNlclxuICAgKlxuICAgKiBAcmVtYXJrc1xuICAgKiBJZiBzZXQgdG8gYG5vbmVgLCBpdCB3aWxsIHNraXAgdGhlIGF1dGhvcml6YXRpb24gc2NyZWVuIGFuZCByZWRpcmVjdCB0aGVtIGJhY2sgdG8geW91ciByZWRpcmVjdCBVUkkgd2l0aG91dCByZXF1ZXN0aW5nIHRoZWlyIGF1dGhvcml6YXRpb24uXG4gICAqIEZvciBwYXNzdGhyb3VnaCBzY29wZXMsIGxpa2UgYm90IGFuZCB3ZWJob29rLmluY29taW5nLCBhdXRob3JpemF0aW9uIGlzIGFsd2F5cyByZXF1aXJlZC5cbiAgICovXG4gIHByb21wdD86ICdjb25zZW50JyB8ICdub25lJztcbiAgLyoqXG4gICAqIFRoZSBwZXJtaXNzaW9ucyBvZiB0aGUgaW52aXRlZCBib3RcbiAgICpcbiAgICogQHJlbWFya3NcbiAgICogU2hvdWxkIGJlIGRlZmluZWQgb25seSBpbiBhIFtib3QgYXV0aG9yaXphdGlvbiBmbG93XShodHRwczovL2Rpc2NvcmQuY29tL2RldmVsb3BlcnMvZG9jcy90b3BpY3Mvb2F1dGgyI2JvdC1hdXRob3JpemF0aW9uLWZsb3cpIG9yIHdpdGggW2FkdmFuY2VkIGJvdCBhdXRob3JpemF0aW9uXShodHRwczovL2Rpc2NvcmQuY29tL2RldmVsb3BlcnMvZG9jcy90b3BpY3Mvb2F1dGgyI2FkdmFuY2VkLWJvdC1hdXRob3JpemF0aW9uKVxuICAgKi9cbiAgcGVybWlzc2lvbnM/OiBCaWdTdHJpbmcgfCBQZXJtaXNzaW9uU3RyaW5nc1tdO1xuICAvKipcbiAgICogUHJlLWZpbGxzIHRoZSBkcm9wZG93biBwaWNrZXIgd2l0aCBhIGd1aWxkIGZvciB0aGUgdXNlclxuICAgKlxuICAgKiBAcmVtYXJrc1xuICAgKiBTaG91bGQgYmUgZGVmaW5lZCBvbmx5IGluIGEgW2JvdCBhdXRob3JpemF0aW9uIGZsb3ddKGh0dHBzOi8vZGlzY29yZC5jb20vZGV2ZWxvcGVycy9kb2NzL3RvcGljcy9vYXV0aDIjYm90LWF1dGhvcml6YXRpb24tZmxvdykgb3Igd2l0aCBbYWR2YW5jZWQgYm90IGF1dGhvcml6YXRpb25dKGh0dHBzOi8vZGlzY29yZC5jb20vZGV2ZWxvcGVycy9kb2NzL3RvcGljcy9vYXV0aDIjYWR2YW5jZWQtYm90LWF1dGhvcml6YXRpb24pIG9yIHdpdGggdGhlIGB3ZWJob29rLmluY29taW5nYCBzY29wZVxuICAgKi9cbiAgZ3VpbGRJZD86IEJpZ1N0cmluZztcbiAgLyoqXG4gICAqIERpc2FsbG93cyB0aGUgdXNlciBmcm9tIGNoYW5naW5nIHRoZSBndWlsZCBkcm9wZG93biBpZiBzZXQgdG8gdHJ1ZVxuICAgKlxuICAgKiBAcmVtYXJrc1xuICAgKiBTaG91bGQgYmUgZGVmaW5lZCBvbmx5IGluIGEgW2JvdCBhdXRob3JpemF0aW9uIGZsb3ddKGh0dHBzOi8vZGlzY29yZC5jb20vZGV2ZWxvcGVycy9kb2NzL3RvcGljcy9vYXV0aDIjYm90LWF1dGhvcml6YXRpb24tZmxvdyksIHdpdGggW2FkdmFuY2VkIGJvdCBhdXRob3JpemF0aW9uXShodHRwczovL2Rpc2NvcmQuY29tL2RldmVsb3BlcnMvZG9jcy90b3BpY3Mvb2F1dGgyI2FkdmFuY2VkLWJvdC1hdXRob3JpemF0aW9uKSBvciB3aXRoIHRoZSBgd2ViaG9vay5pbmNvbWluZ2Agc2NvcGVcbiAgICovXG4gIGRpc2FibGVHdWlsZFNlbGVjdD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIGluc3RhbGxhdGlvbiBjb250ZXh0IGZvciB0aGUgYXV0aG9yaXphdGlvblxuICAgKlxuICAgKiBAcmVtYXJrc1xuICAgKiBTaG91bGQgYmUgZGVmaW5lZCBvbmx5IHdoZW4ge0BsaW5rIHNjb3BlfSBpbmNsdWRlcyB7QGxpbmsgT0F1dGgyU2NvcGUuQXBwbGljYXRpb25zQ29tbWFuZHN9LlxuICAgKlxuICAgKiBXaGVuIHNldCB0byBHdWlsZEluc3RhbGwgKDApIHRoZSBhcHBsaWNhdGlvbiB3aWxsIGJlIGF1dGhvcml6ZWQgZm9yIGluc3RhbGxhdGlvbiB0byBhIHNlcnZlciwgYW5kIHdoZW4gc2V0IHRvIFVzZXJJbnN0YWxsICgxKSB0aGUgYXBwbGljYXRpb24gd2lsbCBiZSBhdXRob3JpemVkIGZvciBpbnN0YWxsYXRpb24gdG8gYSB1c2VyLlxuICAgKlxuICAgKiBUaGUgYXBwbGljYXRpb24gbXVzdCBiZSBjb25maWd1cmVkIGluIHRoZSBEZXZlbG9wZXIgUG9ydGFsIHRvIHN1cHBvcnQgdGhlIHByb3ZpZGVkIGBpbnRlZ3JhdGlvblR5cGVgLlxuICAgKi9cbiAgaW50ZWdyYXRpb25UeXBlPzogRGlzY29yZEFwcGxpY2F0aW9uSW50ZWdyYXRpb25UeXBlO1xuICAvKipcbiAgICogVGhlIGNvZGUgY2hhbGxlbmdlIHVzZWQgdG8gdmVyaWZ5IHRoZSBhdXRob3JpemF0aW9uIHJlcXVlc3RcbiAgICpcbiAgICogQHNlZSBodHRwczovL2RhdGF0cmFja2VyLmlldGYub3JnL2RvYy9odG1sL3JmYzc2MzYjc2VjdGlvbi00LjFcbiAgICovXG4gIGNvZGVDaGFsbGVuZ2U/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgY2hhbGxlbmdlIG1ldGhvZCB1c2VkIHRvIGdlbmVyYXRlIHRoZSBjb2RlIGNoYWxsZW5nZVxuICAgKlxuICAgKiBAcmVtYXJrc1xuICAgKiBXaGlsZSB0aGUgUkZDIGFsbG93cyBmb3IgdGhlICdwbGFpbicgdmFsdWUgdG8gYmUgc2V0LCBkaXNjb3JkIGRvZXMgbm90IGFsbG93IGl0XG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9kb2MvaHRtbC9yZmM3NjM2I3NlY3Rpb24tNC4yXG4gICAqL1xuICBjb2RlQ2hhbGxlbmdlTWV0aG9kPzogJ1MyNTYnO1xufVxuIl0sIm5hbWVzIjpbImVuY29kZUJhc2U2NFVybCIsImNhbGN1bGF0ZUJpdHMiLCJjcmVhdGVPQXV0aDJMaW5rIiwib3B0aW9ucyIsImpvaW5lZFNjb3BlU3RyaW5nIiwic2NvcGUiLCJqb2luIiwidXJsIiwiY2xpZW50SWQiLCJyZXNwb25zZVR5cGUiLCJzdGF0ZSIsImVuY29kZVVSSUNvbXBvbmVudCIsInJlZGlyZWN0VXJpIiwicHJvbXB0IiwicGVybWlzc2lvbnMiLCJBcnJheSIsImlzQXJyYXkiLCJndWlsZElkIiwiZGlzYWJsZUd1aWxkU2VsZWN0IiwidW5kZWZpbmVkIiwiaW50ZWdyYXRpb25UeXBlIiwiY29kZUNoYWxsZW5nZSIsImNvZGVDaGFsbGVuZ2VNZXRob2QiLCJnZW5lcmF0ZUNvZGVWZXJpZmllciIsIm9jdGV0TGVuZ3RoIiwicmFuZG9tQnl0ZXMiLCJVaW50OEFycmF5IiwiY3J5cHRvIiwiZ2V0UmFuZG9tVmFsdWVzIiwiY3JlYXRlQ29kZUNoYWxsZW5nZSIsInZlcmlmaWVyIiwiaGFzaGVkIiwic3VidGxlIiwiZGlnZXN0IiwiVGV4dEVuY29kZXIiLCJlbmNvZGUiXSwibWFwcGluZ3MiOiJBQUNBLFNBQVNBLGVBQWUsUUFBUSxjQUFjO0FBQzlDLFNBQVNDLGFBQWEsUUFBUSxtQkFBbUI7QUFFakQsT0FBTyxTQUFTQyxpQkFBaUJDLE9BQWdDO0lBQy9ELE1BQU1DLG9CQUFvQkQsUUFBUUUsS0FBSyxDQUFDQyxJQUFJLENBQUM7SUFFN0MsSUFBSUMsTUFBTSxDQUFDLCtDQUErQyxFQUFFSixRQUFRSyxRQUFRLENBQUMsT0FBTyxFQUFFSixtQkFBbUI7SUFFekcsSUFBSUQsUUFBUU0sWUFBWSxFQUFFRixPQUFPLENBQUMsZUFBZSxFQUFFSixRQUFRTSxZQUFZLEVBQUU7SUFDekUsSUFBSU4sUUFBUU8sS0FBSyxFQUFFSCxPQUFPLENBQUMsT0FBTyxFQUFFSSxtQkFBbUJSLFFBQVFPLEtBQUssR0FBRztJQUN2RSxJQUFJUCxRQUFRUyxXQUFXLEVBQUVMLE9BQU8sQ0FBQyxjQUFjLEVBQUVJLG1CQUFtQlIsUUFBUVMsV0FBVyxHQUFHO0lBQzFGLElBQUlULFFBQVFVLE1BQU0sRUFBRU4sT0FBTyxDQUFDLFFBQVEsRUFBRUosUUFBUVUsTUFBTSxFQUFFO0lBQ3RELElBQUlWLFFBQVFXLFdBQVcsRUFBRVAsT0FBTyxDQUFDLGFBQWEsRUFBRVEsTUFBTUMsT0FBTyxDQUFDYixRQUFRVyxXQUFXLElBQUliLGNBQWNFLFFBQVFXLFdBQVcsSUFBSVgsUUFBUVcsV0FBVyxFQUFFO0lBQy9JLElBQUlYLFFBQVFjLE9BQU8sRUFBRVYsT0FBTyxDQUFDLFVBQVUsRUFBRUosUUFBUWMsT0FBTyxFQUFFO0lBQzFELElBQUlkLFFBQVFlLGtCQUFrQixLQUFLQyxXQUFXWixPQUFPLENBQUMsc0JBQXNCLEVBQUVKLFFBQVFlLGtCQUFrQixFQUFFO0lBQzFHLElBQUlmLFFBQVFpQixlQUFlLEVBQUViLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRUosUUFBUWlCLGVBQWUsRUFBRTtJQUVsRiw4RUFBOEU7SUFDOUUsSUFBSWpCLFFBQVFrQixhQUFhLEVBQUVkLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRUosUUFBUWtCLGFBQWEsRUFBRTtJQUM1RSxJQUFJbEIsUUFBUW1CLG1CQUFtQixFQUFFZixPQUFPLENBQUMsdUJBQXVCLEVBQUVKLFFBQVFtQixtQkFBbUIsRUFBRTtJQUUvRixPQUFPZjtBQUNUO0FBRUE7Ozs7Ozs7Ozs7O0NBV0MsR0FDRCxPQUFPLFNBQVNnQixxQkFBcUJDLGNBQXNCLEVBQUU7SUFDM0QsTUFBTUMsY0FBYyxJQUFJQyxXQUFXRjtJQUNuQ0csT0FBT0MsZUFBZSxDQUFDSDtJQUN2QixPQUFPekIsZ0JBQWdCeUI7QUFDekI7QUFFQTs7Ozs7Ozs7Q0FRQyxHQUNELE9BQU8sZUFBZUksb0JBQW9CQyxRQUFnQjtJQUN4RCxNQUFNQyxTQUFTLE1BQU1KLE9BQU9LLE1BQU0sQ0FBQ0MsTUFBTSxDQUFDLFdBQVcsSUFBSUMsY0FBY0MsTUFBTSxDQUFDTDtJQUM5RSxPQUFPOUIsZ0JBQWdCK0I7QUFDekIifQ==
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9vYXV0aDIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBCaWdTdHJpbmcsIERpc2NvcmRBcHBsaWNhdGlvbkludGVncmF0aW9uVHlwZSwgT0F1dGgyU2NvcGUsIFBlcm1pc3Npb25TdHJpbmdzIH0gZnJvbSAnQGRpc2NvcmRlbm8vdHlwZXMnO1xuaW1wb3J0IHsgZW5jb2RlQmFzZTY0VXJsIH0gZnJvbSAnLi9iYXNlNjQuanMnO1xuaW1wb3J0IHsgY2FsY3VsYXRlQml0cyB9IGZyb20gJy4vcGVybWlzc2lvbnMuanMnO1xuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlT0F1dGgyTGluayhvcHRpb25zOiBDcmVhdGVPQXV0aDJMaW5rT3B0aW9ucyk6IHN0cmluZyB7XG4gIGNvbnN0IGpvaW5lZFNjb3BlU3RyaW5nID0gb3B0aW9ucy5zY29wZS5qb2luKCclMjAnKTtcblxuICBsZXQgdXJsID0gYGh0dHBzOi8vZGlzY29yZC5jb20vb2F1dGgyL2F1dGhvcml6ZT9jbGllbnRfaWQ9JHtvcHRpb25zLmNsaWVudElkfSZzY29wZT0ke2pvaW5lZFNjb3BlU3RyaW5nfWA7XG5cbiAgaWYgKG9wdGlvbnMucmVzcG9uc2VUeXBlKSB1cmwgKz0gYCZyZXNwb25zZV90eXBlPSR7b3B0aW9ucy5yZXNwb25zZVR5cGV9YDtcbiAgaWYgKG9wdGlvbnMuc3RhdGUpIHVybCArPSBgJnN0YXRlPSR7ZW5jb2RlVVJJQ29tcG9uZW50KG9wdGlvbnMuc3RhdGUpfWA7XG4gIGlmIChvcHRpb25zLnJlZGlyZWN0VXJpKSB1cmwgKz0gYCZyZWRpcmVjdF91cmk9JHtlbmNvZGVVUklDb21wb25lbnQob3B0aW9ucy5yZWRpcmVjdFVyaSl9YDtcbiAgaWYgKG9wdGlvbnMucHJvbXB0KSB1cmwgKz0gYCZwcm9tcHQ9JHtvcHRpb25zLnByb21wdH1gO1xuICBpZiAob3B0aW9ucy5wZXJtaXNzaW9ucykgdXJsICs9IGAmcGVybWlzc2lvbnM9JHtBcnJheS5pc0FycmF5KG9wdGlvbnMucGVybWlzc2lvbnMpID8gY2FsY3VsYXRlQml0cyhvcHRpb25zLnBlcm1pc3Npb25zKSA6IG9wdGlvbnMucGVybWlzc2lvbnN9YDtcbiAgaWYgKG9wdGlvbnMuZ3VpbGRJZCkgdXJsICs9IGAmZ3VpbGRfaWQ9JHtvcHRpb25zLmd1aWxkSWR9YDtcbiAgaWYgKG9wdGlvbnMuZGlzYWJsZUd1aWxkU2VsZWN0ICE9PSB1bmRlZmluZWQpIHVybCArPSBgJmRpc2FibGVfZ3VpbGRfc2VsZWN0PSR7b3B0aW9ucy5kaXNhYmxlR3VpbGRTZWxlY3R9YDtcbiAgaWYgKG9wdGlvbnMuaW50ZWdyYXRpb25UeXBlKSB1cmwgKz0gYCZpbnRlZ3JhdGlvbl90eXBlPSR7b3B0aW9ucy5pbnRlZ3JhdGlvblR5cGV9YDtcblxuICAvLyBPcHRpb25zIGRlZmluZWQgYnkgUkZDIDc2MzYgKGh0dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvZG9jL2h0bWwvcmZjNzYzNilcbiAgaWYgKG9wdGlvbnMuY29kZUNoYWxsZW5nZSkgdXJsICs9IGAmY29kZV9jaGFsbGVuZ2U9JHtvcHRpb25zLmNvZGVDaGFsbGVuZ2V9YDtcbiAgaWYgKG9wdGlvbnMuY29kZUNoYWxsZW5nZU1ldGhvZCkgdXJsICs9IGAmY29kZV9jaGFsbGVuZ2VfbWV0aG9kPSR7b3B0aW9ucy5jb2RlQ2hhbGxlbmdlTWV0aG9kfWA7XG5cbiAgcmV0dXJuIHVybDtcbn1cblxuLyoqXG4gKiBHZW5lcmF0ZXMgYSBjb2RlIHZlcmlmaWVyIGZvciB1c2UgaW4gdGhlIFBLQ0UgZXh0ZW5zaW9uIHRvIE9BdXRoMi5cbiAqXG4gKiBAcGFyYW0gb2N0ZXRMZW5ndGggLSBUaGUgbGVuZ3RoIG9mIHRoZSBjb2RlIHZlcmlmaWVyIGluIG9jdGV0cyAoZGVmYXVsdCBpcyAzMikuXG4gKiBAcmV0dXJuIFRoZSBiYXNlNjR1cmwgZW5jb2RlZCBjb2RlIHZlcmlmaWVyXG4gKlxuICogQHJlbWFya3NcbiAqIFRoZSBlbnRyb3B5IG9mIHRoZSBjb2RlIHZlcmlmaWVyIHNob3VsZCBiZSBiZXR3ZWVuIDI1NiBhbmQgNzY4IGJpdHMgKDMyIHRvIDk2IG9jdGV0cyksIGFzIHRoZSByZXN1bHRpbmcgYmFzZTY0dXJsIGVuY29kZWQgc3RyaW5nIGhhcyB0byBiZSBiZXR3ZWVuIDQzIGFuZCAxMjggY2hhcmFjdGVycyBsb25nLlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9kb2MvaHRtbC9yZmM3NjM2I3NlY3Rpb24tNy4xIGZvciB0aGUgb2N0ZXQgbGVuZ3RoXG4gKiBAc2VlIGh0dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvZG9jL2h0bWwvcmZjNzYzNiNzZWN0aW9uLTQuMSBmb3Igd2h5IDMyIG9jdGV0cyBpcyB0aGUgZGVmYXVsdFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVDb2RlVmVyaWZpZXIob2N0ZXRMZW5ndGg6IG51bWJlciA9IDMyKSB7XG4gIGNvbnN0IHJhbmRvbUJ5dGVzID0gbmV3IFVpbnQ4QXJyYXkob2N0ZXRMZW5ndGgpO1xuICBjcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKHJhbmRvbUJ5dGVzKTtcbiAgcmV0dXJuIGVuY29kZUJhc2U2NFVybChyYW5kb21CeXRlcyk7XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIGNvZGUgY2hhbGxlbmdlIGZyb20gdGhlIGNvZGUgdmVyaWZpZXIgdXNpbmcgdGhlIHNwZWNpZmllZCBtZXRob2QuXG4gKlxuICogQHBhcmFtIHZlcmlmaWVyIC0gVGhlIGNvZGUgdmVyaWZpZXIgdG8gdXNlLlxuICogQHJldHVybnMgVGhlIGNvZGUgY2hhbGxlbmdlLlxuICpcbiAqIEByZW1hcmtzXG4gKiBUaGlzIHBlcmZvcm1zIGEgU0hBLTI1NiBoYXNoIG9uIHRoZSB2ZXJpZmllciBhbmQgZW5jb2RlcyBpdCB1c2luZyBiYXNlNjR1cmwgZW5jb2RpbmcuIERpc2NvcmQgb25seSBzdXBwb3J0cyAnUzI1NicgYXMgdGhlIGNvZGUgY2hhbGxlbmdlIG1ldGhvZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNyZWF0ZUNvZGVDaGFsbGVuZ2UodmVyaWZpZXI6IHN0cmluZykge1xuICBjb25zdCBoYXNoZWQgPSBhd2FpdCBjcnlwdG8uc3VidGxlLmRpZ2VzdCgnU0hBLTI1NicsIG5ldyBUZXh0RW5jb2RlcigpLmVuY29kZSh2ZXJpZmllcikpO1xuICByZXR1cm4gZW5jb2RlQmFzZTY0VXJsKGhhc2hlZCk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlT0F1dGgyTGlua09wdGlvbnMge1xuICAvKipcbiAgICogVGhlIHR5cGUgb2YgcmVzcG9uc2VcbiAgICpcbiAgICogQHJlbWFya3NcbiAgICogU2hvdWxkIGJlIGRlZmluZWQgb25seSBpZiB1c2luZyBlaXRoZXIgT0F1dGgyIGF1dGhvcml6YXRpb24sIGltcGxpY2l0IG9yIG5vdCwgb3IgW2FkdmFuY2VkIGJvdCBhdXRob3JpemF0aW9uXShodHRwczovL2RvY3MuZGlzY29yZC5jb20vZGV2ZWxvcGVycy90b3BpY3Mvb2F1dGgyI2FkdmFuY2VkLWJvdC1hdXRob3JpemF0aW9uKVxuICAgKi9cbiAgcmVzcG9uc2VUeXBlPzogJ2NvZGUnIHwgJ3Rva2VuJztcbiAgLyoqIFRoZSBpZCBvZiB0aGUgYXBwbGljYXRpb24gKi9cbiAgY2xpZW50SWQ6IEJpZ1N0cmluZztcbiAgLyoqIFRoZSBzY29wZXMgZm9yIHRoZSBhcHBsaWNhdGlvbiAqL1xuICBzY29wZTogT0F1dGgyU2NvcGVbXTtcbiAgLyoqXG4gICAqIFRoZSBvcHRpb25hbCBzdGF0ZSBmb3Igc2VjdXJpdHlcbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuZGlzY29yZC5jb20vZGV2ZWxvcGVycy90b3BpY3Mvb2F1dGgyI3N0YXRlLWFuZC1zZWN1cml0eVxuICAgKi9cbiAgc3RhdGU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgcmVkaXJlY3QgdXJpIGZvciBhZnRlciB0aGUgYXV0aGVudGljYXRpb25cbiAgICpcbiAgICogQHJlbWFya3NcbiAgICogU2hvdWxkIGJlIGRlZmluZWQgb25seSBpZiB1c2luZyBlaXRoZXIgT0F1dGgyIGF1dGhvcml6YXRpb24sIGltcGxpY2l0IG9yIG5vdCwgb3IgW2FkdmFuY2VkIGJvdCBhdXRob3JpemF0aW9uXShodHRwczovL2RvY3MuZGlzY29yZC5jb20vZGV2ZWxvcGVycy90b3BpY3Mvb2F1dGgyI2FkdmFuY2VkLWJvdC1hdXRob3JpemF0aW9uKVxuICAgKi9cbiAgcmVkaXJlY3RVcmk/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgdHlwZSBvZiBwcm9tcHQgdG8gZ2l2ZSB0byB0aGUgdXNlclxuICAgKlxuICAgKiBAcmVtYXJrc1xuICAgKiBJZiBzZXQgdG8gYG5vbmVgLCBpdCB3aWxsIHNraXAgdGhlIGF1dGhvcml6YXRpb24gc2NyZWVuIGFuZCByZWRpcmVjdCB0aGVtIGJhY2sgdG8geW91ciByZWRpcmVjdCBVUkkgd2l0aG91dCByZXF1ZXN0aW5nIHRoZWlyIGF1dGhvcml6YXRpb24uXG4gICAqIEZvciBwYXNzdGhyb3VnaCBzY29wZXMsIGxpa2UgYm90IGFuZCB3ZWJob29rLmluY29taW5nLCBhdXRob3JpemF0aW9uIGlzIGFsd2F5cyByZXF1aXJlZC5cbiAgICovXG4gIHByb21wdD86ICdjb25zZW50JyB8ICdub25lJztcbiAgLyoqXG4gICAqIFRoZSBwZXJtaXNzaW9ucyBvZiB0aGUgaW52aXRlZCBib3RcbiAgICpcbiAgICogQHJlbWFya3NcbiAgICogU2hvdWxkIGJlIGRlZmluZWQgb25seSBpbiBhIFtib3QgYXV0aG9yaXphdGlvbiBmbG93XShodHRwczovL2RvY3MuZGlzY29yZC5jb20vZGV2ZWxvcGVycy90b3BpY3Mvb2F1dGgyI2JvdC1hdXRob3JpemF0aW9uLWZsb3cpIG9yIHdpdGggW2FkdmFuY2VkIGJvdCBhdXRob3JpemF0aW9uXShodHRwczovL2RvY3MuZGlzY29yZC5jb20vZGV2ZWxvcGVycy90b3BpY3Mvb2F1dGgyI2FkdmFuY2VkLWJvdC1hdXRob3JpemF0aW9uKVxuICAgKi9cbiAgcGVybWlzc2lvbnM/OiBCaWdTdHJpbmcgfCBQZXJtaXNzaW9uU3RyaW5nc1tdO1xuICAvKipcbiAgICogUHJlLWZpbGxzIHRoZSBkcm9wZG93biBwaWNrZXIgd2l0aCBhIGd1aWxkIGZvciB0aGUgdXNlclxuICAgKlxuICAgKiBAcmVtYXJrc1xuICAgKiBTaG91bGQgYmUgZGVmaW5lZCBvbmx5IGluIGEgW2JvdCBhdXRob3JpemF0aW9uIGZsb3ddKGh0dHBzOi8vZG9jcy5kaXNjb3JkLmNvbS9kZXZlbG9wZXJzL3RvcGljcy9vYXV0aDIjYm90LWF1dGhvcml6YXRpb24tZmxvdykgb3Igd2l0aCBbYWR2YW5jZWQgYm90IGF1dGhvcml6YXRpb25dKGh0dHBzOi8vZG9jcy5kaXNjb3JkLmNvbS9kZXZlbG9wZXJzL3RvcGljcy9vYXV0aDIjYWR2YW5jZWQtYm90LWF1dGhvcml6YXRpb24pIG9yIHdpdGggdGhlIGB3ZWJob29rLmluY29taW5nYCBzY29wZVxuICAgKi9cbiAgZ3VpbGRJZD86IEJpZ1N0cmluZztcbiAgLyoqXG4gICAqIERpc2FsbG93cyB0aGUgdXNlciBmcm9tIGNoYW5naW5nIHRoZSBndWlsZCBkcm9wZG93biBpZiBzZXQgdG8gdHJ1ZVxuICAgKlxuICAgKiBAcmVtYXJrc1xuICAgKiBTaG91bGQgYmUgZGVmaW5lZCBvbmx5IGluIGEgW2JvdCBhdXRob3JpemF0aW9uIGZsb3ddKGh0dHBzOi8vZG9jcy5kaXNjb3JkLmNvbS9kZXZlbG9wZXJzL3RvcGljcy9vYXV0aDIjYm90LWF1dGhvcml6YXRpb24tZmxvdyksIHdpdGggW2FkdmFuY2VkIGJvdCBhdXRob3JpemF0aW9uXShodHRwczovL2RvY3MuZGlzY29yZC5jb20vZGV2ZWxvcGVycy90b3BpY3Mvb2F1dGgyI2FkdmFuY2VkLWJvdC1hdXRob3JpemF0aW9uKSBvciB3aXRoIHRoZSBgd2ViaG9vay5pbmNvbWluZ2Agc2NvcGVcbiAgICovXG4gIGRpc2FibGVHdWlsZFNlbGVjdD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIGluc3RhbGxhdGlvbiBjb250ZXh0IGZvciB0aGUgYXV0aG9yaXphdGlvblxuICAgKlxuICAgKiBAcmVtYXJrc1xuICAgKiBTaG91bGQgYmUgZGVmaW5lZCBvbmx5IHdoZW4ge0BsaW5rIHNjb3BlfSBpbmNsdWRlcyB7QGxpbmsgT0F1dGgyU2NvcGUuQXBwbGljYXRpb25zQ29tbWFuZHN9LlxuICAgKlxuICAgKiBXaGVuIHNldCB0byBHdWlsZEluc3RhbGwgKDApIHRoZSBhcHBsaWNhdGlvbiB3aWxsIGJlIGF1dGhvcml6ZWQgZm9yIGluc3RhbGxhdGlvbiB0byBhIHNlcnZlciwgYW5kIHdoZW4gc2V0IHRvIFVzZXJJbnN0YWxsICgxKSB0aGUgYXBwbGljYXRpb24gd2lsbCBiZSBhdXRob3JpemVkIGZvciBpbnN0YWxsYXRpb24gdG8gYSB1c2VyLlxuICAgKlxuICAgKiBUaGUgYXBwbGljYXRpb24gbXVzdCBiZSBjb25maWd1cmVkIGluIHRoZSBEZXZlbG9wZXIgUG9ydGFsIHRvIHN1cHBvcnQgdGhlIHByb3ZpZGVkIGBpbnRlZ3JhdGlvblR5cGVgLlxuICAgKi9cbiAgaW50ZWdyYXRpb25UeXBlPzogRGlzY29yZEFwcGxpY2F0aW9uSW50ZWdyYXRpb25UeXBlO1xuICAvKipcbiAgICogVGhlIGNvZGUgY2hhbGxlbmdlIHVzZWQgdG8gdmVyaWZ5IHRoZSBhdXRob3JpemF0aW9uIHJlcXVlc3RcbiAgICpcbiAgICogQHNlZSBodHRwczovL2RhdGF0cmFja2VyLmlldGYub3JnL2RvYy9odG1sL3JmYzc2MzYjc2VjdGlvbi00LjFcbiAgICovXG4gIGNvZGVDaGFsbGVuZ2U/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgY2hhbGxlbmdlIG1ldGhvZCB1c2VkIHRvIGdlbmVyYXRlIHRoZSBjb2RlIGNoYWxsZW5nZVxuICAgKlxuICAgKiBAcmVtYXJrc1xuICAgKiBXaGlsZSB0aGUgUkZDIGFsbG93cyBmb3IgdGhlICdwbGFpbicgdmFsdWUgdG8gYmUgc2V0LCBkaXNjb3JkIGRvZXMgbm90IGFsbG93IGl0XG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9kb2MvaHRtbC9yZmM3NjM2I3NlY3Rpb24tNC4yXG4gICAqL1xuICBjb2RlQ2hhbGxlbmdlTWV0aG9kPzogJ1MyNTYnO1xufVxuIl0sIm5hbWVzIjpbImVuY29kZUJhc2U2NFVybCIsImNhbGN1bGF0ZUJpdHMiLCJjcmVhdGVPQXV0aDJMaW5rIiwib3B0aW9ucyIsImpvaW5lZFNjb3BlU3RyaW5nIiwic2NvcGUiLCJqb2luIiwidXJsIiwiY2xpZW50SWQiLCJyZXNwb25zZVR5cGUiLCJzdGF0ZSIsImVuY29kZVVSSUNvbXBvbmVudCIsInJlZGlyZWN0VXJpIiwicHJvbXB0IiwicGVybWlzc2lvbnMiLCJBcnJheSIsImlzQXJyYXkiLCJndWlsZElkIiwiZGlzYWJsZUd1aWxkU2VsZWN0IiwidW5kZWZpbmVkIiwiaW50ZWdyYXRpb25UeXBlIiwiY29kZUNoYWxsZW5nZSIsImNvZGVDaGFsbGVuZ2VNZXRob2QiLCJnZW5lcmF0ZUNvZGVWZXJpZmllciIsIm9jdGV0TGVuZ3RoIiwicmFuZG9tQnl0ZXMiLCJVaW50OEFycmF5IiwiY3J5cHRvIiwiZ2V0UmFuZG9tVmFsdWVzIiwiY3JlYXRlQ29kZUNoYWxsZW5nZSIsInZlcmlmaWVyIiwiaGFzaGVkIiwic3VidGxlIiwiZGlnZXN0IiwiVGV4dEVuY29kZXIiLCJlbmNvZGUiXSwibWFwcGluZ3MiOiJBQUNBLFNBQVNBLGVBQWUsUUFBUSxjQUFjO0FBQzlDLFNBQVNDLGFBQWEsUUFBUSxtQkFBbUI7QUFFakQsT0FBTyxTQUFTQyxpQkFBaUJDLE9BQWdDO0lBQy9ELE1BQU1DLG9CQUFvQkQsUUFBUUUsS0FBSyxDQUFDQyxJQUFJLENBQUM7SUFFN0MsSUFBSUMsTUFBTSxDQUFDLCtDQUErQyxFQUFFSixRQUFRSyxRQUFRLENBQUMsT0FBTyxFQUFFSixtQkFBbUI7SUFFekcsSUFBSUQsUUFBUU0sWUFBWSxFQUFFRixPQUFPLENBQUMsZUFBZSxFQUFFSixRQUFRTSxZQUFZLEVBQUU7SUFDekUsSUFBSU4sUUFBUU8sS0FBSyxFQUFFSCxPQUFPLENBQUMsT0FBTyxFQUFFSSxtQkFBbUJSLFFBQVFPLEtBQUssR0FBRztJQUN2RSxJQUFJUCxRQUFRUyxXQUFXLEVBQUVMLE9BQU8sQ0FBQyxjQUFjLEVBQUVJLG1CQUFtQlIsUUFBUVMsV0FBVyxHQUFHO0lBQzFGLElBQUlULFFBQVFVLE1BQU0sRUFBRU4sT0FBTyxDQUFDLFFBQVEsRUFBRUosUUFBUVUsTUFBTSxFQUFFO0lBQ3RELElBQUlWLFFBQVFXLFdBQVcsRUFBRVAsT0FBTyxDQUFDLGFBQWEsRUFBRVEsTUFBTUMsT0FBTyxDQUFDYixRQUFRVyxXQUFXLElBQUliLGNBQWNFLFFBQVFXLFdBQVcsSUFBSVgsUUFBUVcsV0FBVyxFQUFFO0lBQy9JLElBQUlYLFFBQVFjLE9BQU8sRUFBRVYsT0FBTyxDQUFDLFVBQVUsRUFBRUosUUFBUWMsT0FBTyxFQUFFO0lBQzFELElBQUlkLFFBQVFlLGtCQUFrQixLQUFLQyxXQUFXWixPQUFPLENBQUMsc0JBQXNCLEVBQUVKLFFBQVFlLGtCQUFrQixFQUFFO0lBQzFHLElBQUlmLFFBQVFpQixlQUFlLEVBQUViLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRUosUUFBUWlCLGVBQWUsRUFBRTtJQUVsRiw4RUFBOEU7SUFDOUUsSUFBSWpCLFFBQVFrQixhQUFhLEVBQUVkLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRUosUUFBUWtCLGFBQWEsRUFBRTtJQUM1RSxJQUFJbEIsUUFBUW1CLG1CQUFtQixFQUFFZixPQUFPLENBQUMsdUJBQXVCLEVBQUVKLFFBQVFtQixtQkFBbUIsRUFBRTtJQUUvRixPQUFPZjtBQUNUO0FBRUE7Ozs7Ozs7Ozs7O0NBV0MsR0FDRCxPQUFPLFNBQVNnQixxQkFBcUJDLGNBQXNCLEVBQUU7SUFDM0QsTUFBTUMsY0FBYyxJQUFJQyxXQUFXRjtJQUNuQ0csT0FBT0MsZUFBZSxDQUFDSDtJQUN2QixPQUFPekIsZ0JBQWdCeUI7QUFDekI7QUFFQTs7Ozs7Ozs7Q0FRQyxHQUNELE9BQU8sZUFBZUksb0JBQW9CQyxRQUFnQjtJQUN4RCxNQUFNQyxTQUFTLE1BQU1KLE9BQU9LLE1BQU0sQ0FBQ0MsTUFBTSxDQUFDLFdBQVcsSUFBSUMsY0FBY0MsTUFBTSxDQUFDTDtJQUM5RSxPQUFPOUIsZ0JBQWdCK0I7QUFDekIifQ==
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@discordeno/utils",
3
- "version": "22.0.1-next.a85207e",
3
+ "version": "22.0.1-next.abff4d2",
4
4
  "exports": "./dist/index.js",
5
5
  "type": "module",
6
6
  "license": "Apache-2.0",
@@ -24,17 +24,17 @@
24
24
  "test:type": "tsc --noEmit"
25
25
  },
26
26
  "dependencies": {
27
- "@discordeno/types": "22.0.1-next.a85207e"
27
+ "@discordeno/types": "22.0.1-next.abff4d2"
28
28
  },
29
29
  "devDependencies": {
30
- "@biomejs/biome": "2.3.11",
31
- "@swc/cli": "^0.7.10",
32
- "@swc/core": "^1.15.10",
30
+ "@biomejs/biome": "2.4.4",
31
+ "@swc/cli": "^0.8.0",
32
+ "@swc/core": "^1.15.18",
33
33
  "@types/chai": "^5.2.3",
34
34
  "@types/mocha": "^10.0.10",
35
- "@types/node": "^25.0.10",
35
+ "@types/node": "^25.3.3",
36
36
  "@types/sinon": "^21.0.0",
37
- "c8": "^10.1.3",
37
+ "c8": "^11.0.0",
38
38
  "chai": "^6.2.2",
39
39
  "mocha": "^11.7.5",
40
40
  "sinon": "^21.0.1",