@cichol/logger 4.3.1 → 4.4.0
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/package.json +1 -1
- package/releases/cjs.js +1 -0
- package/releases/esm.js +1 -0
package/package.json
CHANGED
package/releases/cjs.js
CHANGED
|
@@ -540,3 +540,4 @@ class Logger {
|
|
|
540
540
|
var logger = Logger.instance;
|
|
541
541
|
|
|
542
542
|
module.exports = logger;
|
|
543
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2pzLmpzIiwic291cmNlcyI6WyIuLi9zb3VyY2VzL2hlbHBlcnMvbG9nZ2luZy1sZXZlbC50cyIsIi4uL3NvdXJjZXMvaGVscGVycy9jb2xvci1zY2hlbWUudHMiLCIuLi9zb3VyY2VzL2hlbHBlcnMvbGFiZWwtZGVjb3JhdG9yLnRzIiwiLi4vc291cmNlcy9oYW5kbGVycy9lcnJvci50cyIsIi4uL3NvdXJjZXMvaGFuZGxlcnMvZmF0YWwudHMiLCIuLi9zb3VyY2VzL2hhbmRsZXJzL3dhcm5pbmcudHMiLCIuLi9zb3VyY2VzL2hhbmRsZXJzL25vdGljZS50cyIsIi4uL3NvdXJjZXMvaGFuZGxlcnMvaW5mby50cyIsIi4uL3NvdXJjZXMvaGFuZGxlcnMvaHR0cC50cyIsIi4uL3NvdXJjZXMvaGFuZGxlcnMvcXVlcnkudHMiLCIuLi9zb3VyY2VzL2hhbmRsZXJzL3ZlcmJvc2UudHMiLCIuLi9zb3VyY2VzL2hhbmRsZXJzL2RlYnVnLnRzIiwiLi4vc291cmNlcy9oYW5kbGVycy9pbmRleC50cyIsIi4uL3NvdXJjZXMvZm9ybWF0dGVycy9jb21tYW5kLWxpbmUudHMiLCIuLi9zb3VyY2VzL2hlbHBlcnMvY29uc3RhbnRzLnRzIiwiLi4vc291cmNlcy9mb3JtYXR0ZXJzL21vcmdhbi50cyIsIi4uL3NvdXJjZXMvY2xhc3Nlcy9sb2dnZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgTG9nZ2luZ0xldmVsID0ge1xuICAgIC8vIENyaXRpY2FsIGxldmVscy4gKEl0IHdpbGwgY3Jhc2ggdGhlIHByb2Nlc3MpXG4gICAgRmF0YWw6IDAsXG4gICAgRXJyb3I6IDEsXG5cbiAgICAvLyBXYXJuaW5nIGxldmVscy4gKEl0IGp1c3QgcmVwb3J0IHdhcm5pbmcgaW5mb3JtYXRpb24sIG5vdCBjcmFzaCB0aGUgcHJvY2VzcylcbiAgICBXYXJuaW5nOiAyLFxuXG4gICAgLy8gUmVndWxhciBsZXZlbCBhbmQgYWxpYXNlcy5cbiAgICBOb3RpY2U6IDMsXG4gICAgSW5mbzogMyxcblxuICAgIC8vIE1heWJlIHNlbnNpdGl2ZSBsZXZlbHMuIChJbiBnZW5lcmFsLCBkb2VzIG5vdCB1c2VmdWwpXG4gICAgSHR0cDogNCxcbiAgICBRdWVyeTogNCxcblxuICAgIC8vIExvdWQgbGV2ZWxzLlxuICAgIFZlcmJvc2U6IDUsXG4gICAgRGVidWc6IDVcbn0gYXMgY29uc3Q7XG5cbnR5cGUgTG9nZ2luZ0xldmVsID0gdHlwZW9mIExvZ2dpbmdMZXZlbFtrZXlvZiB0eXBlb2YgTG9nZ2luZ0xldmVsXTtcblxuZXhwb3J0IGRlZmF1bHQgTG9nZ2luZ0xldmVsO1xuIiwiLyogZXNsaW50LWRpc2FibGUgbm8tdXNlLWJlZm9yZS1kZWZpbmUgKi9cblxuLy8gVGhpcmQtcGFydHkgbW9kdWxlcy5cbmltcG9ydCBjaGFsaywgeyB0eXBlIENoYWxrSW5zdGFuY2UgfSBmcm9tICdjaGFsayc7XG5cbi8vIENvbnN0YW50cy5cbmNvbnN0IGNvbG9yaXplck1hcCA9IG5ldyBNYXA8bnVtYmVyLCBDaGFsa0luc3RhbmNlPigpO1xuXG4vLyBIZWxwZXJzLlxuZnVuY3Rpb24gY3JlYXRlU2NoZW1lKG9wdGlvbnM6IHsgYmFja2dyb3VuZDogQ29sb3JWYWx1ZSwgZm9yZWdyb3VuZDogQ29sb3JWYWx1ZSB9KTogbnVtYmVyIHtcbiAgICBjb25zdCBuZXh0SW5kZXggPSBjb2xvcml6ZXJNYXAuc2l6ZTtcbiAgICBjb25zdCBjb2xvcml6ZXIgPSBjaGFsay5iZ0hleChvcHRpb25zLmJhY2tncm91bmQpLmhleChvcHRpb25zLmZvcmVncm91bmQpO1xuXG4gICAgY29sb3JpemVyTWFwLnNldChuZXh0SW5kZXgsIGNvbG9yaXplcik7XG5cbiAgICByZXR1cm4gbmV4dEluZGV4O1xufVxuXG4vLyBDb2xvciBkZWZpbml0aW9ucy5cbmNvbnN0IENvbG9yVmFsdWUgPSB7XG4gICAgLy8gQmFzaWMgY29sb3JzLlxuICAgIFdoaXRlOiAnI0ZGRkZGRicsXG4gICAgR3JheTogJyM4MDgwODAnLFxuICAgIEJsYWNrOiAnIzAwMDAwMCcsXG5cbiAgICAvLyBTcGVjaWFsaXplZCBjb2xvcnMuXG4gICAgQ3JpdGljYWw6ICcjRDYzMDMxJyxcbiAgICBXYXJuaW5nOiAnI0ZEQ0I2RScsXG4gICAgUmVndWxhcjogJyMwOTg0RTMnLFxuICAgIEh0dHA6ICcjNkFCMDRDJyxcbiAgICBRdWVyeTogJyMzOTlBRjMnXG59IGFzIGNvbnN0O1xuXG50eXBlIENvbG9yVmFsdWUgPSB0eXBlb2YgQ29sb3JWYWx1ZVtrZXlvZiB0eXBlb2YgQ29sb3JWYWx1ZV07XG5cbmNvbnN0IENvbG9yU2NoZW1lID0ge1xuICAgIENyaXRpY2FsOiBjcmVhdGVTY2hlbWUoe1xuICAgICAgICBiYWNrZ3JvdW5kOiBDb2xvclZhbHVlLkNyaXRpY2FsLFxuICAgICAgICBmb3JlZ3JvdW5kOiBDb2xvclZhbHVlLkJsYWNrXG4gICAgfSksXG5cbiAgICBXYXJuaW5nOiBjcmVhdGVTY2hlbWUoe1xuICAgICAgICBiYWNrZ3JvdW5kOiBDb2xvclZhbHVlLldhcm5pbmcsXG4gICAgICAgIGZvcmVncm91bmQ6IENvbG9yVmFsdWUuQmxhY2tcbiAgICB9KSxcblxuICAgIFJlZ3VsYXI6IGNyZWF0ZVNjaGVtZSh7XG4gICAgICAgIGJhY2tncm91bmQ6IENvbG9yVmFsdWUuUmVndWxhcixcbiAgICAgICAgZm9yZWdyb3VuZDogQ29sb3JWYWx1ZS5XaGl0ZVxuICAgIH0pLFxuXG4gICAgSHR0cDogY3JlYXRlU2NoZW1lKHtcbiAgICAgICAgYmFja2dyb3VuZDogQ29sb3JWYWx1ZS5IdHRwLFxuICAgICAgICBmb3JlZ3JvdW5kOiBDb2xvclZhbHVlLkJsYWNrXG4gICAgfSksXG5cbiAgICBRdWVyeTogY3JlYXRlU2NoZW1lKHtcbiAgICAgICAgYmFja2dyb3VuZDogQ29sb3JWYWx1ZS5RdWVyeSxcbiAgICAgICAgZm9yZWdyb3VuZDogQ29sb3JWYWx1ZS5CbGFja1xuICAgIH0pLFxuXG4gICAgTG91ZDogY3JlYXRlU2NoZW1lKHtcbiAgICAgICAgYmFja2dyb3VuZDogQ29sb3JWYWx1ZS5CbGFjayxcbiAgICAgICAgZm9yZWdyb3VuZDogQ29sb3JWYWx1ZS5HcmF5XG4gICAgfSlcbn0gYXMgY29uc3Q7XG5cbnR5cGUgQ29sb3JTY2hlbWUgPSB0eXBlb2YgQ29sb3JTY2hlbWVba2V5b2YgdHlwZW9mIENvbG9yU2NoZW1lXTtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldENoYWxrT2YoY29sb3JTZXQ6IENvbG9yU2NoZW1lKTogQ2hhbGtJbnN0YW5jZSB7XG4gICAgcmV0dXJuIGNvbG9yaXplck1hcC5nZXQoY29sb3JTZXQpID8/IGNoYWxrO1xufVxuXG5leHBvcnQgZGVmYXVsdCBDb2xvclNjaGVtZTtcblxuLyogZXNsaW50LWVuYWJsZSBuby11c2UtYmVmb3JlLWRlZmluZSAqL1xuIiwiLy8gTm9kZS5qcyBidWlsdC1pbiBBUElzLlxuaW1wb3J0IHByb2Nlc3MgZnJvbSAncHJvY2Vzcyc7XG5cbi8vIExvY2FsIGhlbHBlcnMuXG5pbXBvcnQgQ29sb3JTY2hlbWUsIHsgZ2V0Q2hhbGtPZiB9IGZyb20gJy4vY29sb3Itc2NoZW1lJztcblxuLy8gQ29uc3RhbnRzLlxuY29uc3QgeyBpc1RUWSB9ID0gcHJvY2Vzcy5zdGRvdXQ7XG5jb25zdCBpc05vdE9uQ0xJID0gIWlzVFRZO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBkZWNvcmF0ZUxhYmVsPFQgZXh0ZW5kcyBzdHJpbmc+KGxhYmVsOiBULCBzY2hlbWU6IENvbG9yU2NoZW1lKTogVCB7XG4gICAgaWYgKGlzTm90T25DTEkpIHtcbiAgICAgICAgcmV0dXJuIGxhYmVsO1xuICAgIH1cblxuICAgIGNvbnN0IGNoYWxrID0gZ2V0Q2hhbGtPZihzY2hlbWUpO1xuICAgIGNvbnN0IGRlY29yYXRlZExhYmVsID0gY2hhbGsuYm9sZChgICR7bGFiZWx9IGApO1xuXG4gICAgcmV0dXJuIGRlY29yYXRlZExhYmVsIGFzIFQ7XG59XG4iLCIvLyBOb2RlLmpzIGJ1aWx0LWluIEFQSXMuXG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCBwcm9jZXNzLCB7IHZlcnNpb24gfSBmcm9tICdwcm9jZXNzJztcblxuLy8gVGhpcmQtcGFydHkgbW9kdWxlcy5cbmltcG9ydCBjaGFsayBmcm9tICdjaGFsayc7XG5cbi8vIExvY2FsIGhlbHBlcnMuXG5pbXBvcnQgTG9nZ2luZ0xldmVsIGZyb20gJy4uL2hlbHBlcnMvbG9nZ2luZy1sZXZlbCc7XG5pbXBvcnQgQ29sb3JTY2hlbWUgZnJvbSAnLi4vaGVscGVycy9jb2xvci1zY2hlbWUnO1xuaW1wb3J0IGRlY29yYXRlTGFiZWwgZnJvbSAnLi4vaGVscGVycy9sYWJlbC1kZWNvcmF0b3InO1xuXG4vLyBUeXBlIGRlZmluaXRpb25zLlxudHlwZSBMb2dnaW5nRGF0YSA9IHsgbGV2ZWw6IHN0cmluZywgbWVzc2FnZTogc3RyaW5nIH0gJiBSZWNvcmQ8UHJvcGVydHlLZXksIGFueT47XG50eXBlIEhhbmRsZWREYXRhID0geyBsYWJlbDogc3RyaW5nLCBwYXlsb2FkOiBzdHJpbmcgfTtcblxuLy8gQ29uc3RhbnRzLlxuY29uc3Qgcm9vdFBhdGggPSBwcm9jZXNzLmN3ZCgpO1xuY29uc3QgY29uanVuY3Rpb24gPSBgICR7Y2hhbGsuYmx1ZSgn4pSA4pSAJyl9IGA7XG5jb25zdCBzcGxhdDogdW5pcXVlIHN5bWJvbCA9IFN5bWJvbC5mb3IoJ3NwbGF0Jyk7XG5cbi8vIEhhbmRsZXIgbWV0YWRhdGEuXG5leHBvcnQgY29uc3QgbmFtZSA9ICdlcnJvcic7XG5leHBvcnQgY29uc3QgbGV2ZWwgPSBMb2dnaW5nTGV2ZWwuRXJyb3I7XG5leHBvcnQgY29uc3QgbGFiZWwgPSBkZWNvcmF0ZUxhYmVsKCdFUlJPUicsIENvbG9yU2NoZW1lLkNyaXRpY2FsKTtcblxuZnVuY3Rpb24gbWFwTG9jYXRpb25PZkVycm9yVGhyb3duKGZpbGVuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGxldCB0YXJnZXQgPSBwYXRoLnJlbGF0aXZlKHJvb3RQYXRoLCBmaWxlbmFtZSk7XG5cbiAgICBpZiAodGFyZ2V0LnN0YXJ0c1dpdGgoJ25vZGVfbW9kdWxlcycpKSB7XG4gICAgICAgIHRhcmdldCA9IGNoYWxrLmdyYXkodGFyZ2V0KS5yZXBsYWNlKFxuICAgICAgICAgICAgL25vZGVfbW9kdWxlc1tcXFxcL10oW15cXFxcL10rKSguKikvLFxuICAgICAgICAgICAgKG1hdGNoZXMsIG1vZHVsZU5hbWU6IHN0cmluZywgdHJhaWxpbmc6IHN0cmluZykgPT4gYG5vZGVfbW9kdWxlcyR7cGF0aC5zZXB9JHtjaGFsay5ib2xkLnVuZGVybGluZShtb2R1bGVOYW1lKX0ke2NoYWxrLmdyYXkodHJhaWxpbmcpfWAgLy8gZXNsaW50LWRpc2FibGUtbGluZSBtYXgtbGVuXG4gICAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgdGFyZ2V0ID0gYCR7Y2hhbGsuZ3JheShwYXRoLmRpcm5hbWUodGFyZ2V0KSArIHBhdGguc2VwKX0ke2NoYWxrLmJvbGQudW5kZXJsaW5lKHBhdGguYmFzZW5hbWUodGFyZ2V0KSl9YDtcbiAgICB9XG5cbiAgICByZXR1cm4gdGFyZ2V0O1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBoYW5kbGUoZGF0YTogTG9nZ2luZ0RhdGEpOiBIYW5kbGVkRGF0YSB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgeyBbc3BsYXRdOiBbIGVycm9yIF0gPSBbXSB9ID0gZGF0YSBhcyBhbnk7XG5cbiAgICBpZiAoIShlcnJvciBpbnN0YW5jZW9mIEVycm9yKSkge1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGNvbnN0IHsgbmFtZSwgbWVzc2FnZSwgc3RhY2s6IHJhd1N0YWNrID0gJycgfSA9IGVycm9yO1xuXG4gICAgY29uc3Qgc3RhY2sgPSByYXdTdGFja1xuICAgICAgICAuc2xpY2UobmFtZS5sZW5ndGggKyBtZXNzYWdlLmxlbmd0aCArIDMpXG4gICAgICAgIC5zcGxpdCgnXFxuJylcbiAgICAgICAgLm1hcChsaW5lID0+IGxpbmUucmVwbGFjZSgvXlxccythdCAvZywgJycpKVxuICAgICAgICAubWFwKGxpbmUgPT4gKHBhdGguaXNBYnNvbHV0ZShsaW5lKSA/IGA8YW5vbnltb3VzPiR7Y29uanVuY3Rpb259JHttYXBMb2NhdGlvbk9mRXJyb3JUaHJvd24obGluZSl9YCA6IGxpbmUpKVxuICAgICAgICAubWFwKGxpbmUgPT4gbGluZS5yZXBsYWNlKC9eKC4rKSBcXCgoLispXFwpJC8sIChtYXRjaGVzLCBjb250ZXh0TmFtZTogc3RyaW5nLCByYXdMb2NhdGlvbjogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICBsZXQgbG9jYXRpb247XG5cbiAgICAgICAgICAgIGlmIChyYXdMb2NhdGlvbiA9PT0gJzxhbm9ueW1vdXM+Jykge1xuICAgICAgICAgICAgICAgIGxvY2F0aW9uID0gY2hhbGsuZ3JheShyYXdMb2NhdGlvbik7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IFsgZmlsZW5hbWUsIGxpbmUsIGNvbHVtbiBdID0gcmF3TG9jYXRpb24uc3BsaXQoJzonKTtcblxuICAgICAgICAgICAgICAgIGlmIChwYXRoLmlzQWJzb2x1dGUoZmlsZW5hbWUpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRhcmdldCA9IG1hcExvY2F0aW9uT2ZFcnJvclRocm93bihwYXRoLnJlbGF0aXZlKHJvb3RQYXRoLCBmaWxlbmFtZSkpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0cmFpbGluZyA9IGNoYWxrLmdyYXkoYDoke2xpbmV9OiR7Y29sdW1ufWApO1xuXG4gICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uID0gdGFyZ2V0ICsgdHJhaWxpbmc7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgbG9jYXRpb24gPSBjaGFsay5ncmF5KGBodHRwczovL2dpdGh1Yi5jb20vJHtjaGFsay5ib2xkLnVuZGVybGluZSgnbm9kZWpzJyl9L25vZGUvYmxvYi8ke3ZlcnNpb259L2xpYi8ke2ZpbGVuYW1lfSNMJHtsaW5lfWApOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG1heC1sZW5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBgJHtjb250ZXh0TmFtZX0ke2Nvbmp1bmN0aW9ufSR7bG9jYXRpb259YDtcbiAgICAgICAgfSkpXG4gICAgICAgIC5qb2luKCdcXG4nKTtcblxuICAgIGNvbnN0IGxhYmVsID0gZGVjb3JhdGVMYWJlbChuYW1lLCBDb2xvclNjaGVtZS5Dcml0aWNhbCk7XG4gICAgY29uc3QgcGF5bG9hZCA9IGAke21lc3NhZ2V9XFxuXFxuJHtzdGFja31cXG5gO1xuXG4gICAgcmV0dXJuIHsgbGFiZWwsIHBheWxvYWQgfTtcbn1cbiIsIi8vIExvY2FsIGhlbHBlcnMuXG5pbXBvcnQgTG9nZ2luZ0xldmVsIGZyb20gJy4uL2hlbHBlcnMvbG9nZ2luZy1sZXZlbCc7XG5pbXBvcnQgQ29sb3JTY2hlbWUgZnJvbSAnLi4vaGVscGVycy9jb2xvci1zY2hlbWUnO1xuaW1wb3J0IGRlY29yYXRlTGFiZWwgZnJvbSAnLi4vaGVscGVycy9sYWJlbC1kZWNvcmF0b3InO1xuXG4vLyBIYW5kbGVyIG1ldGFkYXRhLlxuZXhwb3J0IGNvbnN0IG5hbWUgPSAnZmF0YWwnO1xuZXhwb3J0IGNvbnN0IGxldmVsID0gTG9nZ2luZ0xldmVsLkZhdGFsO1xuZXhwb3J0IGNvbnN0IGxhYmVsID0gZGVjb3JhdGVMYWJlbCgnRkFUQUwnLCBDb2xvclNjaGVtZS5Dcml0aWNhbCk7XG5cbmV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tICcuL2Vycm9yJztcbiIsIi8vIExvY2FsIGhlbHBlcnMuXG5pbXBvcnQgTG9nZ2luZ0xldmVsIGZyb20gJy4uL2hlbHBlcnMvbG9nZ2luZy1sZXZlbCc7XG5pbXBvcnQgQ29sb3JTY2hlbWUgZnJvbSAnLi4vaGVscGVycy9jb2xvci1zY2hlbWUnO1xuaW1wb3J0IGRlY29yYXRlTGFiZWwgZnJvbSAnLi4vaGVscGVycy9sYWJlbC1kZWNvcmF0b3InO1xuXG4vLyBIYW5kbGVyIG1ldGFkYXRhLlxuZXhwb3J0IGNvbnN0IG5hbWUgPSAnd2FybmluZyc7XG5leHBvcnQgY29uc3QgbGV2ZWwgPSBMb2dnaW5nTGV2ZWwuV2FybmluZztcbmV4cG9ydCBjb25zdCBsYWJlbCA9IGRlY29yYXRlTGFiZWwoJ1dBUk5JTkcnLCBDb2xvclNjaGVtZS5XYXJuaW5nKTtcblxuZXhwb3J0IGRlZmF1bHQgbnVsbDtcbiIsIi8vIExvY2FsIGhlbHBlcnMuXG5pbXBvcnQgTG9nZ2luZ0xldmVsIGZyb20gJy4uL2hlbHBlcnMvbG9nZ2luZy1sZXZlbCc7XG5pbXBvcnQgQ29sb3JTY2hlbWUgZnJvbSAnLi4vaGVscGVycy9jb2xvci1zY2hlbWUnO1xuaW1wb3J0IGRlY29yYXRlTGFiZWwgZnJvbSAnLi4vaGVscGVycy9sYWJlbC1kZWNvcmF0b3InO1xuXG4vLyBIYW5kbGVyIG1ldGFkYXRhLlxuZXhwb3J0IGNvbnN0IG5hbWUgPSAnbm90aWNlJztcbmV4cG9ydCBjb25zdCBsZXZlbCA9IExvZ2dpbmdMZXZlbC5Ob3RpY2U7XG5leHBvcnQgY29uc3QgbGFiZWwgPSBkZWNvcmF0ZUxhYmVsKCdOT1RJQ0UnLCBDb2xvclNjaGVtZS5SZWd1bGFyKTtcblxuZXhwb3J0IGRlZmF1bHQgbnVsbDtcbiIsIi8vIExvY2FsIGhlbHBlcnMuXG5pbXBvcnQgTG9nZ2luZ0xldmVsIGZyb20gJy4uL2hlbHBlcnMvbG9nZ2luZy1sZXZlbCc7XG5pbXBvcnQgQ29sb3JTY2hlbWUgZnJvbSAnLi4vaGVscGVycy9jb2xvci1zY2hlbWUnO1xuaW1wb3J0IGRlY29yYXRlTGFiZWwgZnJvbSAnLi4vaGVscGVycy9sYWJlbC1kZWNvcmF0b3InO1xuXG4vLyBIYW5kbGVyIG1ldGFkYXRhLlxuZXhwb3J0IGNvbnN0IG5hbWUgPSAnaW5mbyc7XG5leHBvcnQgY29uc3QgbGV2ZWwgPSBMb2dnaW5nTGV2ZWwuSW5mbztcbmV4cG9ydCBjb25zdCBsYWJlbCA9IGRlY29yYXRlTGFiZWwoJ0lORk8nLCBDb2xvclNjaGVtZS5SZWd1bGFyKTtcblxuZXhwb3J0IGRlZmF1bHQgbnVsbDtcbiIsIi8vIExvY2FsIGhlbHBlcnMuXG5pbXBvcnQgTG9nZ2luZ0xldmVsIGZyb20gJy4uL2hlbHBlcnMvbG9nZ2luZy1sZXZlbCc7XG5pbXBvcnQgQ29sb3JTY2hlbWUgZnJvbSAnLi4vaGVscGVycy9jb2xvci1zY2hlbWUnO1xuaW1wb3J0IGRlY29yYXRlTGFiZWwgZnJvbSAnLi4vaGVscGVycy9sYWJlbC1kZWNvcmF0b3InO1xuXG4vLyBIYW5kbGVyIG1ldGFkYXRhLlxuZXhwb3J0IGNvbnN0IG5hbWUgPSAnaHR0cCc7XG5leHBvcnQgY29uc3QgbGV2ZWwgPSBMb2dnaW5nTGV2ZWwuSHR0cDtcbmV4cG9ydCBjb25zdCBsYWJlbCA9IGRlY29yYXRlTGFiZWwoJ0hUVFAnLCBDb2xvclNjaGVtZS5IdHRwKTtcblxuZXhwb3J0IGRlZmF1bHQgbnVsbDtcbiIsIi8vIEhpZ2hsaWdodC5qc1xuaW1wb3J0IGhpZ2hsaWdodCBmcm9tICdjbGktaGlnaGxpZ2h0JztcblxuLy8gTG9jYWwgaGVscGVycy5cbmltcG9ydCBMb2dnaW5nTGV2ZWwgZnJvbSAnLi4vaGVscGVycy9sb2dnaW5nLWxldmVsJztcbmltcG9ydCBDb2xvclNjaGVtZSBmcm9tICcuLi9oZWxwZXJzL2NvbG9yLXNjaGVtZSc7XG5pbXBvcnQgZGVjb3JhdGVMYWJlbCBmcm9tICcuLi9oZWxwZXJzL2xhYmVsLWRlY29yYXRvcic7XG5cbi8vIFR5cGUgZGVmaW5pdGlvbnMuXG50eXBlIExvZ2dpbmdEYXRhID0geyBsZXZlbDogc3RyaW5nLCBtZXNzYWdlOiBzdHJpbmcgfSAmIFJlY29yZDxQcm9wZXJ0eUtleSwgYW55PjtcbnR5cGUgSGFuZGxlZERhdGEgPSB7IGxhYmVsOiBzdHJpbmcsIHBheWxvYWQ6IHN0cmluZyB9O1xuXG4vLyBIYW5kbGVyIG1ldGFkYXRhLlxuZXhwb3J0IGNvbnN0IG5hbWUgPSAncXVlcnknO1xuZXhwb3J0IGNvbnN0IGxldmVsID0gTG9nZ2luZ0xldmVsLlF1ZXJ5O1xuZXhwb3J0IGNvbnN0IGxhYmVsID0gZGVjb3JhdGVMYWJlbCgnUVVFUlknLCBDb2xvclNjaGVtZS5RdWVyeSk7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGhhbmRsZShkYXRhOiBMb2dnaW5nRGF0YSk6IEhhbmRsZWREYXRhIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBwYXlsb2FkID0gaGlnaGxpZ2h0KGRhdGEubWVzc2FnZSwgeyBsYW5ndWFnZTogJ3NxbCcgfSk7XG5cbiAgICByZXR1cm4geyBsYWJlbCwgcGF5bG9hZCB9O1xufVxuIiwiLy8gTG9jYWwgaGVscGVycy5cbmltcG9ydCBMb2dnaW5nTGV2ZWwgZnJvbSAnLi4vaGVscGVycy9sb2dnaW5nLWxldmVsJztcbmltcG9ydCBDb2xvclNjaGVtZSBmcm9tICcuLi9oZWxwZXJzL2NvbG9yLXNjaGVtZSc7XG5pbXBvcnQgZGVjb3JhdGVMYWJlbCBmcm9tICcuLi9oZWxwZXJzL2xhYmVsLWRlY29yYXRvcic7XG5cbi8vIEhhbmRsZXIgbWV0YWRhdGEuXG5leHBvcnQgY29uc3QgbmFtZSA9ICd2ZXJib3NlJztcbmV4cG9ydCBjb25zdCBsZXZlbCA9IExvZ2dpbmdMZXZlbC5WZXJib3NlO1xuZXhwb3J0IGNvbnN0IGxhYmVsID0gZGVjb3JhdGVMYWJlbCgnVkVSQk9TRScsIENvbG9yU2NoZW1lLkxvdWQpO1xuXG5leHBvcnQgZGVmYXVsdCBudWxsO1xuIiwiLy8gTG9jYWwgaGVscGVycy5cbmltcG9ydCBMb2dnaW5nTGV2ZWwgZnJvbSAnLi4vaGVscGVycy9sb2dnaW5nLWxldmVsJztcbmltcG9ydCBDb2xvclNjaGVtZSBmcm9tICcuLi9oZWxwZXJzL2NvbG9yLXNjaGVtZSc7XG5pbXBvcnQgZGVjb3JhdGVMYWJlbCBmcm9tICcuLi9oZWxwZXJzL2xhYmVsLWRlY29yYXRvcic7XG5cbi8vIEhhbmRsZXIgbWV0YWRhdGEuXG5leHBvcnQgY29uc3QgbmFtZSA9ICdkZWJ1Zyc7XG5leHBvcnQgY29uc3QgbGV2ZWwgPSBMb2dnaW5nTGV2ZWwuRGVidWc7XG5leHBvcnQgY29uc3QgbGFiZWwgPSBkZWNvcmF0ZUxhYmVsKCdERUJVRycsIENvbG9yU2NoZW1lLkxvdWQpO1xuXG5leHBvcnQgZGVmYXVsdCBudWxsO1xuIiwiLy8gSGFuZGxlciBpbXBsZW1lbnRhdGlvbnMuXG5pbXBvcnQgKiBhcyBGYXRhbEhhbmRsZXIgZnJvbSAnLi9mYXRhbCc7XG5pbXBvcnQgKiBhcyBFcnJvckhhbmRsZXIgZnJvbSAnLi9lcnJvcic7XG5pbXBvcnQgKiBhcyBXYXJuaW5nSGFuZGxlciBmcm9tICcuL3dhcm5pbmcnO1xuaW1wb3J0ICogYXMgTm90aWNlSGFuZGxlciBmcm9tICcuL25vdGljZSc7XG5pbXBvcnQgKiBhcyBJbmZvSGFuZGxlciBmcm9tICcuL2luZm8nO1xuaW1wb3J0ICogYXMgSHR0cEhhbmRsZXIgZnJvbSAnLi9odHRwJztcbmltcG9ydCAqIGFzIFF1ZXJ5SGFuZGxlciBmcm9tICcuL3F1ZXJ5JztcbmltcG9ydCAqIGFzIFZlcmJvc2VIYW5kbGVyIGZyb20gJy4vdmVyYm9zZSc7XG5pbXBvcnQgKiBhcyBEZWJ1Z0hhbmRsZXIgZnJvbSAnLi9kZWJ1Zyc7XG5cbmNvbnN0IGhhbmRsZXJzID0gW1xuICAgIEZhdGFsSGFuZGxlcixcbiAgICBFcnJvckhhbmRsZXIsXG4gICAgV2FybmluZ0hhbmRsZXIsXG4gICAgTm90aWNlSGFuZGxlcixcbiAgICBJbmZvSGFuZGxlcixcbiAgICBIdHRwSGFuZGxlcixcbiAgICBRdWVyeUhhbmRsZXIsXG4gICAgVmVyYm9zZUhhbmRsZXIsXG4gICAgRGVidWdIYW5kbGVyXG5dO1xuXG5leHBvcnQgdHlwZSBMb2dnaW5nTGV2ZWxOYW1lID0gKHR5cGVvZiBoYW5kbGVycyBleHRlbmRzIChpbmZlciBUKVtdID8gVCA6IG5ldmVyKVsnbmFtZSddO1xuZXhwb3J0IGRlZmF1bHQgaGFuZGxlcnM7XG4iLCIvLyBUaGlyZC1wYXJ0eSBtb2R1bGVzLlxuaW1wb3J0IGNoYWxrIGZyb20gJ2NoYWxrJztcbmltcG9ydCByVHJhY2VyIGZyb20gJ2Nscy1ydHJhY2VyJztcbmltcG9ydCB7IERhdGVUaW1lIH0gZnJvbSAnbHV4b24nO1xuaW1wb3J0IHsgZm9ybWF0IH0gZnJvbSAnd2luc3Rvbic7XG5cbi8vIExvY2FsIGhlbHBlcnMuXG5pbXBvcnQgTG9nZ2luZ0xldmVsIGZyb20gJy4uL2hlbHBlcnMvbG9nZ2luZy1sZXZlbCc7XG5cbi8vIEhhbmRsZXIgaW1wbGVtZW50YXRpb25zLlxuaW1wb3J0IGhhbmRsZXJzIGZyb20gJy4uL2hhbmRsZXJzJztcblxuZXhwb3J0IGRlZmF1bHQgZm9ybWF0LnByaW50ZihkYXRhID0+IHtcbiAgICBjb25zdCB0aW1lc3RhbXAgPSBjaGFsay5ncmF5KERhdGVUaW1lLm5vdygpLnRvSVNPKHsgaW5jbHVkZU9mZnNldDogdHJ1ZSB9KSk7XG4gICAgY29uc3QgaGFuZGxlciA9IGhhbmRsZXJzLmZpbmQoKHsgbmFtZSB9KSA9PiBuYW1lID09PSBkYXRhLmxldmVsKTtcbiAgICBjb25zdCBmYWxsYmFjayA9IHsgbGFiZWw6IGhhbmRsZXI/LmxhYmVsLCBwYXlsb2FkOiBkYXRhLm1lc3NhZ2UgfTtcbiAgICBjb25zdCBwZXJmb3JtSGFuZGxlID0gaGFuZGxlcj8uZGVmYXVsdCA/PyAoKCk6IHR5cGVvZiBmYWxsYmFjayA9PiBmYWxsYmFjayk7XG5cbiAgICAvLyBFeGVjdXRlIGhhbmRsZXIgYW5kIHRoZW4sIGdldCBkZWNvcmF0ZWQgcGF5bG9hZC5cbiAgICBjb25zdCB7IGxhYmVsLCBwYXlsb2FkIH0gPSBSZWZsZWN0LmFwcGx5KHBlcmZvcm1IYW5kbGUsIHVuZGVmaW5lZCwgWyBkYXRhIF0pID8/IGZhbGxiYWNrO1xuXG4gICAgbGV0IGV4dHJhRmluZ2VycHJpbnQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAgIGlmIChoYW5kbGVyPy5sZXZlbCA9PT0gTG9nZ2luZ0xldmVsLkh0dHApIHtcbiAgICAgICAgZXh0cmFGaW5nZXJwcmludCA9IGRhdGEudHJhbnNhY3Rpb25JZFxuICAgICAgICAgICAgPyBgKFRyYW5zYWN0aW9uLUlEID0gJHtkYXRhLnRyYW5zYWN0aW9uSWQgYXMgc3RyaW5nfSlgXG4gICAgICAgICAgICA6IGAoUmVxdWVzdC1JRCA9ICR7clRyYWNlci5pZCgpIGFzIHN0cmluZ30pYDtcbiAgICB9XG5cbiAgICByZXR1cm4gYCR7bGFiZWwgYXMgc3RyaW5nfSAke3RpbWVzdGFtcH0ke2V4dHJhRmluZ2VycHJpbnQgPyBgICR7ZXh0cmFGaW5nZXJwcmludH1gIDogJyd9XFxuJHtwYXlsb2FkIGFzIHN0cmluZ31gO1xufSk7XG4iLCIvLyBOb2RlLmpzIGJ1aWx0LWluIEFQSXMuXG5pbXBvcnQgY2x1c3RlciBmcm9tICdjbHVzdGVyJztcbmltcG9ydCB7IGVudiBhcyBlbnZpcm9ubWVudHMgfSBmcm9tICdwcm9jZXNzJztcbmltcG9ydCB7IGlzTWFpblRocmVhZCB9IGZyb20gJ3dvcmtlcl90aHJlYWRzJztcblxuLy8gVHlwZSBkZWZpbml0aW9ucy5cbmV4cG9ydCBjb25zdCBFeGVjdXRpb25Nb2RlID0ge1xuICAgIERldmVsb3BtZW50TW9kZTogJ2RldmVsb3BtZW50JyxcbiAgICBQcm9kdWN0aW9uTW9kZTogJ3Byb2R1Y3Rpb24nXG59IGFzIGNvbnN0O1xuXG5leHBvcnQgY29uc3QgQ2x1c3RlcmluZ01vZGUgPSB7XG4gICAgTWFzdGVyUHJvY2VzczogMCxcbiAgICBXb3JrZXJQcm9jZXNzOiAxXG59IGFzIGNvbnN0O1xuXG5leHBvcnQgY29uc3QgVGhyZWFkaW5nTW9kZSA9IHtcbiAgICBNYWluVGhyZWFkOiAwLFxuICAgIFdvcmtlclRocmVhZDogMVxufSBhcyBjb25zdDtcblxuZXhwb3J0IHR5cGUgRXhlY3V0aW9uTW9kZSA9IHR5cGVvZiBFeGVjdXRpb25Nb2RlW2tleW9mIHR5cGVvZiBFeGVjdXRpb25Nb2RlXTtcbmV4cG9ydCB0eXBlIENsdXN0ZXJpbmdNb2RlID0gdHlwZW9mIENsdXN0ZXJpbmdNb2RlW2tleW9mIHR5cGVvZiBDbHVzdGVyaW5nTW9kZV07XG5leHBvcnQgdHlwZSBUaHJlYWRpbmdNb2RlID0gdHlwZW9mIFRocmVhZGluZ01vZGVba2V5b2YgdHlwZW9mIFRocmVhZGluZ01vZGVdO1xuXG4vLyBFeHBvcnRpbmdzLlxuZXhwb3J0IGNvbnN0IGV4ZWN1dGlvbk1vZGUgPSBlbnZpcm9ubWVudHMuTk9ERV9FTlYgYXMgRXhlY3V0aW9uTW9kZSA/PyBFeGVjdXRpb25Nb2RlLkRldmVsb3BtZW50TW9kZTtcblxuZXhwb3J0IGNvbnN0IGNsdXN0ZXJpbmdNb2RlOiBDbHVzdGVyaW5nTW9kZSA9IGNsdXN0ZXIuaXNQcmltYXJ5ID8/IGNsdXN0ZXIuaXNNYXN0ZXJcbiAgICA/IENsdXN0ZXJpbmdNb2RlLk1hc3RlclByb2Nlc3NcbiAgICA6IENsdXN0ZXJpbmdNb2RlLldvcmtlclByb2Nlc3M7XG5cbmV4cG9ydCBjb25zdCB0aHJlYWRpbmdNb2RlOiBUaHJlYWRpbmdNb2RlID0gaXNNYWluVGhyZWFkXG4gICAgPyBUaHJlYWRpbmdNb2RlLk1haW5UaHJlYWRcbiAgICA6IFRocmVhZGluZ01vZGUuV29ya2VyVGhyZWFkO1xuIiwiLy8gTm9kZS5qcyBidWlsdC1pbiBBUElzLlxuaW1wb3J0IHtcbiAgICBTVEFUVVNfQ09ERVMsXG4gICAgSW5jb21pbmdNZXNzYWdlIGFzIEh0dHBSZXF1ZXN0LFxuICAgIFNlcnZlclJlc3BvbnNlIGFzIEh0dHBSZXNwb25zZVxufSBmcm9tICdodHRwJztcblxuLy8gVGhpcmQtcGFydHkgbW9kdWxlcy5cbmltcG9ydCBjaGFsayBmcm9tICdjaGFsayc7XG5pbXBvcnQgbW9yZ2FuIGZyb20gJ21vcmdhbic7XG5pbXBvcnQgcHJldHR5Qnl0ZXMgZnJvbSAncHJldHR5LWJ5dGVzJztcbmltcG9ydCBwcmV0dHlNcyBmcm9tICdwcmV0dHktbXMnO1xuXG4vLyBMb2NhbCBoZWxwZXJzLlxuaW1wb3J0IHsgRXhlY3V0aW9uTW9kZSwgZXhlY3V0aW9uTW9kZSB9IGZyb20gJy4uL2hlbHBlcnMvY29uc3RhbnRzJztcblxuLy8gVHlwZSBkZWZpbml0aW9ucy5cbmRlY2xhcmUgbW9kdWxlICdtb3JnYW4nIHtcbiAgICBjb25zdCBjb21iaW5lZDogbW9yZ2FuLkZvcm1hdEZuO1xufVxuXG5pbnRlcmZhY2UgVG9rZW5JbmRleGVyIHtcbiAgICBbdG9rZW5OYW1lOiBzdHJpbmddOiAoXG4gICAgICAgIHJlcXVlc3Q6IEh0dHBSZXF1ZXN0LFxuICAgICAgICByZXNwb25zZTogSHR0cFJlc3BvbnNlLFxuICAgICAgICAuLi5hcmdzOiBhbnlbXVxuICAgICkgPT4gc3RyaW5nIHwgdW5kZWZpbmVkO1xufVxuXG4vLyBIZWxwZXJzLlxuZnVuY3Rpb24gZGVjb3JhdGVTdGF0dXNDb2RlKHN0YXR1c0NvZGU6IGtleW9mIHR5cGVvZiBTVEFUVVNfQ09ERVMpOiBzdHJpbmcge1xuICAgIGNvbnN0IGdyb3VwT2ZDb2RlID0gTWF0aC5mbG9vcihOdW1iZXIoc3RhdHVzQ29kZSkgLyAxMDApICogMTAwO1xuICAgIGNvbnN0IGJhc2VNZXNzYWdlID0gYCR7c3RhdHVzQ29kZX0gJHtTVEFUVVNfQ09ERVNbc3RhdHVzQ29kZV0gYXMgc3RyaW5nfWA7XG5cbiAgICBzd2l0Y2ggKGdyb3VwT2ZDb2RlKSB7XG4gICAgY2FzZSAyMDA6IHtcbiAgICAgICAgcmV0dXJuIGNoYWxrLmdyZWVuKGJhc2VNZXNzYWdlKTtcbiAgICB9XG5cbiAgICBjYXNlIDMwMDoge1xuICAgICAgICByZXR1cm4gY2hhbGsubWFnZW50YShiYXNlTWVzc2FnZSk7XG4gICAgfVxuICAgIGNhc2UgNDAwOlxuICAgIGNhc2UgNTAwOiB7XG4gICAgICAgIHJldHVybiBjaGFsay5yZWQoYmFzZU1lc3NhZ2UpO1xuICAgIH1cblxuICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgcmV0dXJuIGNoYWxrLmdyYXkoYmFzZU1lc3NhZ2UpO1xuICAgIH1cbiAgICB9XG59XG5cbmZ1bmN0aW9uIGZvcm1hdEZvck1vcmdhbih0b2tlbnM6IGFueSwgcmVxdWVzdDogSHR0cFJlcXVlc3QsIHJlc3BvbnNlOiBIdHRwUmVzcG9uc2UpOiBzdHJpbmcge1xuICAgIGZ1bmN0aW9uIF8odG9rZW46IHN0cmluZywgLi4uc3ViQXJnczogYW55W10pOiBzdHJpbmcgfCB2b2lkIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtYXJndW1lbnRcbiAgICAgICAgcmV0dXJuICh0b2tlbnMgYXMgVG9rZW5JbmRleGVyKVt0b2tlbl0ocmVxdWVzdCwgcmVzcG9uc2UsIC4uLnN1YkFyZ3MpO1xuICAgIH1cblxuICAgIC8vIFJhdyB2YWx1ZXMuXG4gICAgY29uc3QgbWV0aG9kID0gXygnbWV0aG9kJyk7XG4gICAgY29uc3QgVVJMID0gXygndXJsJyk7XG4gICAgY29uc3QgaHR0cFZlcnNpb24gPSBgSFRUUC8ke18oJ2h0dHAtdmVyc2lvbicpIGFzIHN0cmluZ31gO1xuICAgIGNvbnN0IHN0YXR1c0NvZGUgPSBOdW1iZXIoXygnc3RhdHVzJykpO1xuICAgIGNvbnN0IGNvbnRlbnRMZW5ndGggPSBOdW1iZXIoXygncmVzJywgJ2NvbnRlbnQtbGVuZ3RoJykgPz8gLTEpO1xuICAgIGNvbnN0IHJlc3BvbnNlVGltZSA9IE51bWJlcihfKCdyZXNwb25zZS10aW1lJykgPz8gLTEpO1xuXG4gICAgLy8gRGVjb3JhdGVkIHZhbHVlcy5cbiAgICBjb25zdCAkbWV0aG9kID0gY2hhbGsuYm9sZChtZXRob2QpO1xuICAgIGNvbnN0ICR2ZXJzaW9uID0gY2hhbGsucmdiKDk4LCAxNzcsIDI1NSkoaHR0cFZlcnNpb24pO1xuICAgIGNvbnN0ICRzdGF0dXNDb2RlID0gZGVjb3JhdGVTdGF0dXNDb2RlKHN0YXR1c0NvZGUpO1xuICAgIGNvbnN0ICRjb250ZW50TGVuZ3RoID0gY29udGVudExlbmd0aCA+PSAwID8gcHJldHR5Qnl0ZXMoY29udGVudExlbmd0aCkgOiAnPyBCJztcbiAgICBjb25zdCAkcmVzcG9uc2VUaW1lID0gcmVzcG9uc2VUaW1lID49IDAgPyBwcmV0dHlNcyhyZXNwb25zZVRpbWUpIDogJyc7XG5cbiAgICAvLyBBZGRpdGlvbmFsIGluZm9ybWF0aW9uLlxuICAgIGNvbnN0IG1ldGFkYXRhID0gYCgkeyRjb250ZW50TGVuZ3RofSwgJHskcmVzcG9uc2VUaW1lfSlgO1xuXG4gICAgcmV0dXJuIFtcbiAgICAgICAgYOKGkiAkeyRtZXRob2R9ICR7VVJMIGFzIHN0cmluZ30gJHskdmVyc2lvbn1gLFxuICAgICAgICBg4oaQICR7JHZlcnNpb259ICR7JHN0YXR1c0NvZGV9ICR7bWV0YWRhdGF9YFxuICAgIF0uam9pbignXFxuJyk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGV4ZWN1dGlvbk1vZGUgPT09IEV4ZWN1dGlvbk1vZGUuRGV2ZWxvcG1lbnRNb2RlID8gZm9ybWF0Rm9yTW9yZ2FuIDogbW9yZ2FuLmNvbWJpbmVkO1xuIiwiaW1wb3J0ICdyZWZsZWN0LW1ldGFkYXRhJztcblxuLy8gTm9kZS5qcyBidWlsdC1pbiBBUElzLlxuaW1wb3J0IHsgSW5jb21pbmdNZXNzYWdlIGFzIEh0dHBSZXF1ZXN0LCBTZXJ2ZXJSZXNwb25zZSBhcyBIdHRwUmVzcG9uc2UgfSBmcm9tICdodHRwJztcbmltcG9ydCB7IFBhc3NUaHJvdWdoIH0gZnJvbSAnc3RyZWFtJztcblxuLy8gVGhpcmQtcGFydHkgbW9kdWxlcy5cbmltcG9ydCBQcm9taXNlIGZyb20gJ2JsdWViaXJkJztcbmltcG9ydCBsb2Rhc2ggZnJvbSAnbG9kYXNoJztcbmltcG9ydCBtb3JnYW4gZnJvbSAnbW9yZ2FuJztcbmltcG9ydCB0eXBlIHsgbGV2ZWwgYXMgTG9nZ2luZ0xldmVsIH0gZnJvbSAnd2luc3Rvbic7XG5pbXBvcnQgKiBhcyB3aW5zdG9uIGZyb20gJ3dpbnN0b24nO1xuaW1wb3J0IHsgTG9nZ2VyIGFzIEJhc2VMb2dnZXIgfSBmcm9tICd3aW5zdG9uJztcblxuLy8gRm9ybWF0dGVycy5cbmltcG9ydCBmb3JtYXRGb3JDTEkgZnJvbSAnLi4vZm9ybWF0dGVycy9jb21tYW5kLWxpbmUnO1xuaW1wb3J0IGZvcm1hdEZvck1vcmdhbiBmcm9tICcuLi9mb3JtYXR0ZXJzL21vcmdhbic7XG5cbi8vIExvY2FsIGhlbHBlcnMuXG5pbXBvcnQgeyBFeGVjdXRpb25Nb2RlLCBleGVjdXRpb25Nb2RlIH0gZnJvbSAnLi4vaGVscGVycy9jb25zdGFudHMnO1xuXG4vLyBIYW5kbGVyIGltcGxlbWVudGF0aW9ucy5cbmltcG9ydCB0eXBlIHsgTG9nZ2luZ0xldmVsTmFtZSB9IGZyb20gJy4uL2hhbmRsZXJzJztcbmltcG9ydCBoYW5kbGVycyBmcm9tICcuLi9oYW5kbGVycyc7XG5cbi8vIFR5cGUgZGVmaW5pdGlvbnMuXG50eXBlIE1vcmdhbiA9IChyZXE6IEh0dHBSZXF1ZXN0LCByZXM6IEh0dHBSZXNwb25zZSwgbmV4dDogKGVycm9yPzogRXJyb3IpID0+IHZvaWQpID0+IHZvaWQ7XG5cbi8vIFRyYW5zcG9ydHMuXG5jb25zdCB7IENvbnNvbGU6IENvbnNvbGVUcmFuc3BvcnQgfSA9IHdpbnN0b24udHJhbnNwb3J0cztcblxuLy8gS2V5cyBpbiBvcmRlciB0byBhY2Nlc3MgcHJpdmF0ZSBwcm9wZXJ0aWVzLlxuY29uc3QgS2V5T2ZJbnN0YW5jZTogdW5pcXVlIHN5bWJvbCA9IFN5bWJvbCgnQGNpY2hvbC9sb2dnZXI6OmNsYXNzZXMvbG9nZ2VyOjpJbnN0YW5jZScpO1xuY29uc3QgS2V5T2ZQYXNzcG9ydDogdW5pcXVlIHN5bWJvbCA9IFN5bWJvbCgnQGNpY2hvbC9sb2dnZXI6OmNsYXNzZXMvbG9nZ2VyOjpQYXNzcG9ydCcpO1xuXG5jbGFzcyBMb2dnZXIge1xuICAgICNsb2dnZXI6IEJhc2VMb2dnZXIgPSB3aW5zdG9uLmNyZWF0ZUxvZ2dlcih7XG4gICAgICAgIGxldmVsczogbG9kYXNoKGhhbmRsZXJzKVxuICAgICAgICAgICAgLm1hcCgoeyBuYW1lLCBsZXZlbCB9KSA9PiBbIG5hbWUsIGxldmVsIF0pXG4gICAgICAgICAgICAuZmlsdGVyKChbICwgbGV2ZWwgXSkgPT4gdHlwZW9mIGxldmVsID09PSAnbnVtYmVyJylcbiAgICAgICAgICAgIC5mcm9tUGFpcnMoKVxuICAgICAgICAgICAgLnZhbHVlKCksXG5cbiAgICAgICAgbGV2ZWw6IChleGVjdXRpb25Nb2RlID09PSBFeGVjdXRpb25Nb2RlLlByb2R1Y3Rpb25Nb2RlID8gJ2h0dHAnIDogJ3ZlcmJvc2UnKSBhcyB0eXBlb2YgTG9nZ2luZ0xldmVsLFxuXG4gICAgICAgIHRyYW5zcG9ydHM6IFtcbiAgICAgICAgICAgIG5ldyBDb25zb2xlVHJhbnNwb3J0KHsgZm9ybWF0OiBmb3JtYXRGb3JDTEkgfSlcbiAgICAgICAgXSxcblxuICAgICAgICBleGl0T25FcnJvcjogZmFsc2VcbiAgICB9KTtcblxuICAgICNtb3JnYW46IE1vcmdhbiA9IG1vcmdhbihmb3JtYXRGb3JNb3JnYW4sIHtcbiAgICAgICAgc3RyZWFtOiBuZXcgUGFzc1Rocm91Z2goeyBvYmplY3RNb2RlOiB0cnVlIH0pLm9uKCdkYXRhJywgKGRhdGE6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgdGhpcy5sb2coJ2h0dHAnLCBkYXRhLnRyaW0oKSk7XG4gICAgICAgIH0pXG4gICAgfSkgYXMgTW9yZ2FuO1xuXG4gICAgcHJpdmF0ZSBjb25zdHJ1Y3RvcihwYXNzcG9ydDogdHlwZW9mIEtleU9mUGFzc3BvcnQpIHtcbiAgICAgICAgaWYgKHBhc3Nwb3J0ICE9PSBLZXlPZlBhc3Nwb3J0KSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoJ0xvZ2dlciBjbGFzcyBjYW5ub3QgYmUgY29uc3RydWN0ZWQgaW4gZGlyZWN0bHknKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgZ2V0IGluc3RhbmNlKCk6IExvZ2dlciB7XG4gICAgICAgIGlmICh0aGlzICE9PSBMb2dnZXIpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBSZWZlcmVuY2VFcnJvcignTG9nZ2VyIGNsYXNzIGlzIG5vdCBpbmhlcml0YWJsZScpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKFJlZmxlY3QuaGFzT3duTWV0YWRhdGEoS2V5T2ZJbnN0YW5jZSwgTG9nZ2VyKSkge1xuICAgICAgICAgICAgcmV0dXJuIFJlZmxlY3QuZ2V0T3duTWV0YWRhdGEoS2V5T2ZJbnN0YW5jZSwgTG9nZ2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGluc3RhbmNlID0gbmV3IExvZ2dlcihLZXlPZlBhc3Nwb3J0KTtcblxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgcmV0dXJuIGluc3RhbmNlO1xuICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgICAgUmVmbGVjdC5kZWZpbmVNZXRhZGF0YShLZXlPZkluc3RhbmNlLCBpbnN0YW5jZSwgTG9nZ2VyKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIExvZ2dpbmcgbWVzc2FnZSB3aXRoIHNwZWNpZmljIGxldmVsLlxuICAgICAqXG4gICAgICogQHBhcmFtIGxldmVsXG4gICAgICogQHBhcmFtIG1lc3NhZ2VcbiAgICAgKiBAcGFyYW0gYXJncyBBZGRpdGlvbmFsIG1ldGFkYXRhLlxuICAgICAqL1xuICAgIHB1YmxpYyBsb2cobGV2ZWw6IExvZ2dpbmdMZXZlbE5hbWUsIG1lc3NhZ2U6IHN0cmluZywgLi4uYXJnczogYW55W10pOiB2b2lkO1xuXG4gICAgLyoqXG4gICAgICogTG9nZ2luZyBIVFRQIEkvTy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSByZXF1ZXN0IE5vZGUuanMgYnVpbHQtaW4gYEluY29taW5nTWVzc2FnZWAgaW5zdGFuY2UgZnJvbSBgaHR0cGAgbW9kdWxlLlxuICAgICAqIEBwYXJhbSByZXNwb25zZSBOb2RlLmpzIGJ1aWx0LWluIGBTZXJ2ZXJSZXNwb25zZWAgaW5zdGFuY2UgZnJvbSBgaHR0cGAgbW9kdWxlLlxuICAgICAqL1xuICAgIHB1YmxpYyBsb2cocmVxdWVzdDogSHR0cFJlcXVlc3QsIHJlc3BvbnNlOiBIdHRwUmVzcG9uc2UpOiBQcm9taXNlPHZvaWQ+O1xuXG4gICAgLyoqXG4gICAgICogTG9nZ2luZyBlcnJvcnMgaW4gZGV0YWlsLlxuICAgICAqXG4gICAgICogQHBhcmFtIGVycm9yXG4gICAgICovXG4gICAgcHVibGljIGxvZyhlcnJvcjogRXJyb3IpOiB2b2lkO1xuXG4gICAgcHVibGljIGxvZyguLi5hcmdzOiBhbnlbXSk6IHZvaWQgfCBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29uc3QgbG9nZ2VyID0gdGhpcy4jbG9nZ2VyO1xuICAgICAgICBjb25zdCBtb3JnYW4gPSB0aGlzLiNtb3JnYW47XG5cbiAgICAgICAgc3dpdGNoICh0cnVlKSB7XG4gICAgICAgIGNhc2UgKGFyZ3MubGVuZ3RoID49IDIgJiYgYXJnc1swXSBpbnN0YW5jZW9mIEh0dHBSZXF1ZXN0ICYmIGFyZ3NbMV0gaW5zdGFuY2VvZiBIdHRwUmVzcG9uc2UpOiB7XG4gICAgICAgICAgICBjb25zdCBbIHJlcXVlc3QsIHJlc3BvbnNlIF0gPSBhcmdzIGFzIFsgSHR0cFJlcXVlc3QsIEh0dHBSZXNwb25zZSBdO1xuXG4gICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5mcm9tQ2FsbGJhY2s8dm9pZD4oY2FsbGJhY2sgPT4gbW9yZ2FuKHJlcXVlc3QsIHJlc3BvbnNlLCBjYWxsYmFjaykpO1xuICAgICAgICB9XG5cbiAgICAgICAgY2FzZSAoYXJncy5sZW5ndGggPj0gMSAmJiBhcmdzWzBdIGluc3RhbmNlb2YgRXJyb3IpOiB7XG4gICAgICAgICAgICBjb25zdCBbIGVycm9yLCAuLi5kYXRhIF0gPSBhcmdzIGFzIFsgRXJyb3IsIC4uLmFueVtdIF07XG5cbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWFyZ3VtZW50XG4gICAgICAgICAgICBsb2dnZXIubG9nKCdlcnJvcicsIGVycm9yLm1lc3NhZ2UsIGVycm9yLCAuLi5kYXRhKTtcblxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuXG4gICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgIGNvbnN0IFsgbGV2ZWwsIG1lc3NhZ2UsIC4uLmRhdGEgXSA9IGFyZ3MgYXMgWyB0eXBlb2YgTG9nZ2luZ0xldmVsLCBzdHJpbmcsIC4uLmFueVtdIF07XG5cbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWFyZ3VtZW50XG4gICAgICAgICAgICBsb2dnZXIubG9nKGxldmVsLCBtZXNzYWdlLCAuLi5kYXRhKTtcblxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBMb2dnZXIuaW5zdGFuY2U7XG4iXSwibmFtZXMiOlsiTG9nZ2luZ0xldmVsIiwiRmF0YWwiLCJFcnJvciIsIldhcm5pbmciLCJOb3RpY2UiLCJJbmZvIiwiSHR0cCIsIlF1ZXJ5IiwiVmVyYm9zZSIsIkRlYnVnIiwiY29sb3JpemVyTWFwIiwiX01hcCIsImNyZWF0ZVNjaGVtZSIsIm9wdGlvbnMiLCJuZXh0SW5kZXgiLCJzaXplIiwiY29sb3JpemVyIiwiY2hhbGsiLCJiZ0hleCIsImJhY2tncm91bmQiLCJoZXgiLCJmb3JlZ3JvdW5kIiwic2V0IiwiQ29sb3JWYWx1ZSIsIldoaXRlIiwiR3JheSIsIkJsYWNrIiwiQ3JpdGljYWwiLCJSZWd1bGFyIiwiQ29sb3JTY2hlbWUiLCJMb3VkIiwiZ2V0Q2hhbGtPZiIsImNvbG9yU2V0IiwiZ2V0IiwiaXNUVFkiLCJwcm9jZXNzIiwic3Rkb3V0IiwiaXNOb3RPbkNMSSIsImRlY29yYXRlTGFiZWwiLCJsYWJlbCIsInNjaGVtZSIsImRlY29yYXRlZExhYmVsIiwiYm9sZCIsInJvb3RQYXRoIiwiY3dkIiwiY29uanVuY3Rpb24iLCJibHVlIiwic3BsYXQiLCJfU3ltYm9sJGZvciIsIm5hbWUiLCJsZXZlbCIsIm1hcExvY2F0aW9uT2ZFcnJvclRocm93biIsImZpbGVuYW1lIiwidGFyZ2V0IiwicGF0aCIsInJlbGF0aXZlIiwiX3N0YXJ0c1dpdGhJbnN0YW5jZVByb3BlcnR5IiwiY2FsbCIsImdyYXkiLCJyZXBsYWNlIiwibWF0Y2hlcyIsIm1vZHVsZU5hbWUiLCJ0cmFpbGluZyIsInNlcCIsInVuZGVybGluZSIsImRpcm5hbWUiLCJiYXNlbmFtZSIsImhhbmRsZSIsImRhdGEiLCJfY29udGV4dCIsIl9jb250ZXh0MiIsIl9jb250ZXh0MyIsImVycm9yIiwidW5kZWZpbmVkIiwibWVzc2FnZSIsInN0YWNrIiwicmF3U3RhY2siLCJfbWFwSW5zdGFuY2VQcm9wZXJ0eSIsIl9zbGljZUluc3RhbmNlUHJvcGVydHkiLCJsZW5ndGgiLCJzcGxpdCIsImxpbmUiLCJpc0Fic29sdXRlIiwiY29udGV4dE5hbWUiLCJyYXdMb2NhdGlvbiIsImxvY2F0aW9uIiwiY29sdW1uIiwidmVyc2lvbiIsImpvaW4iLCJwYXlsb2FkIiwiaGlnaGxpZ2h0IiwibGFuZ3VhZ2UiLCJoYW5kbGVycyIsIkZhdGFsSGFuZGxlciIsIkVycm9ySGFuZGxlciIsIldhcm5pbmdIYW5kbGVyIiwiTm90aWNlSGFuZGxlciIsIkluZm9IYW5kbGVyIiwiSHR0cEhhbmRsZXIiLCJRdWVyeUhhbmRsZXIiLCJWZXJib3NlSGFuZGxlciIsIkRlYnVnSGFuZGxlciIsImZvcm1hdCIsInByaW50ZiIsInRpbWVzdGFtcCIsIkRhdGVUaW1lIiwibm93IiwidG9JU08iLCJpbmNsdWRlT2Zmc2V0IiwiaGFuZGxlciIsIl9maW5kSW5zdGFuY2VQcm9wZXJ0eSIsImZhbGxiYWNrIiwicGVyZm9ybUhhbmRsZSIsImRlZmF1bHQiLCJfUmVmbGVjdCRhcHBseSIsImV4dHJhRmluZ2VycHJpbnQiLCJ0cmFuc2FjdGlvbklkIiwiclRyYWNlciIsImlkIiwiRXhlY3V0aW9uTW9kZSIsIkRldmVsb3BtZW50TW9kZSIsIlByb2R1Y3Rpb25Nb2RlIiwiQ2x1c3RlcmluZ01vZGUiLCJNYXN0ZXJQcm9jZXNzIiwiV29ya2VyUHJvY2VzcyIsImV4ZWN1dGlvbk1vZGUiLCJlbnZpcm9ubWVudHMiLCJOT0RFX0VOViIsImNsdXN0ZXIiLCJpc1ByaW1hcnkiLCJpc01hc3RlciIsImRlY29yYXRlU3RhdHVzQ29kZSIsInN0YXR1c0NvZGUiLCJncm91cE9mQ29kZSIsIk1hdGgiLCJmbG9vciIsIk51bWJlciIsImJhc2VNZXNzYWdlIiwiU1RBVFVTX0NPREVTIiwiZ3JlZW4iLCJtYWdlbnRhIiwicmVkIiwiZm9ybWF0Rm9yTW9yZ2FuIiwidG9rZW5zIiwicmVxdWVzdCIsInJlc3BvbnNlIiwiXyIsInRva2VuIiwic3ViQXJncyIsIm1ldGhvZCIsIlVSTCIsImh0dHBWZXJzaW9uIiwiY29udGVudExlbmd0aCIsInJlc3BvbnNlVGltZSIsIiRtZXRob2QiLCIkdmVyc2lvbiIsInJnYiIsIiRzdGF0dXNDb2RlIiwiJGNvbnRlbnRMZW5ndGgiLCJwcmV0dHlCeXRlcyIsIiRyZXNwb25zZVRpbWUiLCJwcmV0dHlNcyIsIm1ldGFkYXRhIiwibW9yZ2FuIiwiY29tYmluZWQiLCJDb25zb2xlIiwiQ29uc29sZVRyYW5zcG9ydCIsIndpbnN0b24iLCJ0cmFuc3BvcnRzIiwiS2V5T2ZJbnN0YW5jZSIsIl9TeW1ib2wiLCJLZXlPZlBhc3Nwb3J0IiwiTG9nZ2VyIiwiY3JlYXRlTG9nZ2VyIiwibGV2ZWxzIiwiX2ZpbHRlckluc3RhbmNlUHJvcGVydHkiLCJsb2Rhc2giLCJmcm9tUGFpcnMiLCJ2YWx1ZSIsImZvcm1hdEZvckNMSSIsImV4aXRPbkVycm9yIiwic3RyZWFtIiwiUGFzc1Rocm91Z2giLCJvYmplY3RNb2RlIiwib24iLCJsb2ciLCJfdHJpbUluc3RhbmNlUHJvcGVydHkiLCJjb25zdHJ1Y3RvciIsInBhc3Nwb3J0IiwiUmVmZXJlbmNlRXJyb3IiLCJpbnN0YW5jZSIsIlJlZmxlY3QiLCJoYXNPd25NZXRhZGF0YSIsImdldE93bk1ldGFkYXRhIiwiZGVmaW5lTWV0YWRhdGEiLCJhcmdzIiwibG9nZ2VyIiwiSHR0cFJlcXVlc3QiLCJIdHRwUmVzcG9uc2UiLCJQcm9taXNlIiwiZnJvbUNhbGxiYWNrIiwiY2FsbGJhY2si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
|
package/releases/esm.js
CHANGED
|
@@ -520,3 +520,4 @@ class Logger {
|
|
|
520
520
|
var logger = Logger.instance;
|
|
521
521
|
|
|
522
522
|
export { logger as default };
|
|
523
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNtLmpzIiwic291cmNlcyI6WyIuLi9zb3VyY2VzL2hlbHBlcnMvbG9nZ2luZy1sZXZlbC50cyIsIi4uL3NvdXJjZXMvaGVscGVycy9jb2xvci1zY2hlbWUudHMiLCIuLi9zb3VyY2VzL2hlbHBlcnMvbGFiZWwtZGVjb3JhdG9yLnRzIiwiLi4vc291cmNlcy9oYW5kbGVycy9lcnJvci50cyIsIi4uL3NvdXJjZXMvaGFuZGxlcnMvZmF0YWwudHMiLCIuLi9zb3VyY2VzL2hhbmRsZXJzL3dhcm5pbmcudHMiLCIuLi9zb3VyY2VzL2hhbmRsZXJzL25vdGljZS50cyIsIi4uL3NvdXJjZXMvaGFuZGxlcnMvaW5mby50cyIsIi4uL3NvdXJjZXMvaGFuZGxlcnMvaHR0cC50cyIsIi4uL3NvdXJjZXMvaGFuZGxlcnMvcXVlcnkudHMiLCIuLi9zb3VyY2VzL2hhbmRsZXJzL3ZlcmJvc2UudHMiLCIuLi9zb3VyY2VzL2hhbmRsZXJzL2RlYnVnLnRzIiwiLi4vc291cmNlcy9oYW5kbGVycy9pbmRleC50cyIsIi4uL3NvdXJjZXMvZm9ybWF0dGVycy9jb21tYW5kLWxpbmUudHMiLCIuLi9zb3VyY2VzL2hlbHBlcnMvY29uc3RhbnRzLnRzIiwiLi4vc291cmNlcy9mb3JtYXR0ZXJzL21vcmdhbi50cyIsIi4uL3NvdXJjZXMvY2xhc3Nlcy9sb2dnZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgTG9nZ2luZ0xldmVsID0ge1xuICAgIC8vIENyaXRpY2FsIGxldmVscy4gKEl0IHdpbGwgY3Jhc2ggdGhlIHByb2Nlc3MpXG4gICAgRmF0YWw6IDAsXG4gICAgRXJyb3I6IDEsXG5cbiAgICAvLyBXYXJuaW5nIGxldmVscy4gKEl0IGp1c3QgcmVwb3J0IHdhcm5pbmcgaW5mb3JtYXRpb24sIG5vdCBjcmFzaCB0aGUgcHJvY2VzcylcbiAgICBXYXJuaW5nOiAyLFxuXG4gICAgLy8gUmVndWxhciBsZXZlbCBhbmQgYWxpYXNlcy5cbiAgICBOb3RpY2U6IDMsXG4gICAgSW5mbzogMyxcblxuICAgIC8vIE1heWJlIHNlbnNpdGl2ZSBsZXZlbHMuIChJbiBnZW5lcmFsLCBkb2VzIG5vdCB1c2VmdWwpXG4gICAgSHR0cDogNCxcbiAgICBRdWVyeTogNCxcblxuICAgIC8vIExvdWQgbGV2ZWxzLlxuICAgIFZlcmJvc2U6IDUsXG4gICAgRGVidWc6IDVcbn0gYXMgY29uc3Q7XG5cbnR5cGUgTG9nZ2luZ0xldmVsID0gdHlwZW9mIExvZ2dpbmdMZXZlbFtrZXlvZiB0eXBlb2YgTG9nZ2luZ0xldmVsXTtcblxuZXhwb3J0IGRlZmF1bHQgTG9nZ2luZ0xldmVsO1xuIiwiLyogZXNsaW50LWRpc2FibGUgbm8tdXNlLWJlZm9yZS1kZWZpbmUgKi9cblxuLy8gVGhpcmQtcGFydHkgbW9kdWxlcy5cbmltcG9ydCBjaGFsaywgeyB0eXBlIENoYWxrSW5zdGFuY2UgfSBmcm9tICdjaGFsayc7XG5cbi8vIENvbnN0YW50cy5cbmNvbnN0IGNvbG9yaXplck1hcCA9IG5ldyBNYXA8bnVtYmVyLCBDaGFsa0luc3RhbmNlPigpO1xuXG4vLyBIZWxwZXJzLlxuZnVuY3Rpb24gY3JlYXRlU2NoZW1lKG9wdGlvbnM6IHsgYmFja2dyb3VuZDogQ29sb3JWYWx1ZSwgZm9yZWdyb3VuZDogQ29sb3JWYWx1ZSB9KTogbnVtYmVyIHtcbiAgICBjb25zdCBuZXh0SW5kZXggPSBjb2xvcml6ZXJNYXAuc2l6ZTtcbiAgICBjb25zdCBjb2xvcml6ZXIgPSBjaGFsay5iZ0hleChvcHRpb25zLmJhY2tncm91bmQpLmhleChvcHRpb25zLmZvcmVncm91bmQpO1xuXG4gICAgY29sb3JpemVyTWFwLnNldChuZXh0SW5kZXgsIGNvbG9yaXplcik7XG5cbiAgICByZXR1cm4gbmV4dEluZGV4O1xufVxuXG4vLyBDb2xvciBkZWZpbml0aW9ucy5cbmNvbnN0IENvbG9yVmFsdWUgPSB7XG4gICAgLy8gQmFzaWMgY29sb3JzLlxuICAgIFdoaXRlOiAnI0ZGRkZGRicsXG4gICAgR3JheTogJyM4MDgwODAnLFxuICAgIEJsYWNrOiAnIzAwMDAwMCcsXG5cbiAgICAvLyBTcGVjaWFsaXplZCBjb2xvcnMuXG4gICAgQ3JpdGljYWw6ICcjRDYzMDMxJyxcbiAgICBXYXJuaW5nOiAnI0ZEQ0I2RScsXG4gICAgUmVndWxhcjogJyMwOTg0RTMnLFxuICAgIEh0dHA6ICcjNkFCMDRDJyxcbiAgICBRdWVyeTogJyMzOTlBRjMnXG59IGFzIGNvbnN0O1xuXG50eXBlIENvbG9yVmFsdWUgPSB0eXBlb2YgQ29sb3JWYWx1ZVtrZXlvZiB0eXBlb2YgQ29sb3JWYWx1ZV07XG5cbmNvbnN0IENvbG9yU2NoZW1lID0ge1xuICAgIENyaXRpY2FsOiBjcmVhdGVTY2hlbWUoe1xuICAgICAgICBiYWNrZ3JvdW5kOiBDb2xvclZhbHVlLkNyaXRpY2FsLFxuICAgICAgICBmb3JlZ3JvdW5kOiBDb2xvclZhbHVlLkJsYWNrXG4gICAgfSksXG5cbiAgICBXYXJuaW5nOiBjcmVhdGVTY2hlbWUoe1xuICAgICAgICBiYWNrZ3JvdW5kOiBDb2xvclZhbHVlLldhcm5pbmcsXG4gICAgICAgIGZvcmVncm91bmQ6IENvbG9yVmFsdWUuQmxhY2tcbiAgICB9KSxcblxuICAgIFJlZ3VsYXI6IGNyZWF0ZVNjaGVtZSh7XG4gICAgICAgIGJhY2tncm91bmQ6IENvbG9yVmFsdWUuUmVndWxhcixcbiAgICAgICAgZm9yZWdyb3VuZDogQ29sb3JWYWx1ZS5XaGl0ZVxuICAgIH0pLFxuXG4gICAgSHR0cDogY3JlYXRlU2NoZW1lKHtcbiAgICAgICAgYmFja2dyb3VuZDogQ29sb3JWYWx1ZS5IdHRwLFxuICAgICAgICBmb3JlZ3JvdW5kOiBDb2xvclZhbHVlLkJsYWNrXG4gICAgfSksXG5cbiAgICBRdWVyeTogY3JlYXRlU2NoZW1lKHtcbiAgICAgICAgYmFja2dyb3VuZDogQ29sb3JWYWx1ZS5RdWVyeSxcbiAgICAgICAgZm9yZWdyb3VuZDogQ29sb3JWYWx1ZS5CbGFja1xuICAgIH0pLFxuXG4gICAgTG91ZDogY3JlYXRlU2NoZW1lKHtcbiAgICAgICAgYmFja2dyb3VuZDogQ29sb3JWYWx1ZS5CbGFjayxcbiAgICAgICAgZm9yZWdyb3VuZDogQ29sb3JWYWx1ZS5HcmF5XG4gICAgfSlcbn0gYXMgY29uc3Q7XG5cbnR5cGUgQ29sb3JTY2hlbWUgPSB0eXBlb2YgQ29sb3JTY2hlbWVba2V5b2YgdHlwZW9mIENvbG9yU2NoZW1lXTtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldENoYWxrT2YoY29sb3JTZXQ6IENvbG9yU2NoZW1lKTogQ2hhbGtJbnN0YW5jZSB7XG4gICAgcmV0dXJuIGNvbG9yaXplck1hcC5nZXQoY29sb3JTZXQpID8/IGNoYWxrO1xufVxuXG5leHBvcnQgZGVmYXVsdCBDb2xvclNjaGVtZTtcblxuLyogZXNsaW50LWVuYWJsZSBuby11c2UtYmVmb3JlLWRlZmluZSAqL1xuIiwiLy8gTm9kZS5qcyBidWlsdC1pbiBBUElzLlxuaW1wb3J0IHByb2Nlc3MgZnJvbSAncHJvY2Vzcyc7XG5cbi8vIExvY2FsIGhlbHBlcnMuXG5pbXBvcnQgQ29sb3JTY2hlbWUsIHsgZ2V0Q2hhbGtPZiB9IGZyb20gJy4vY29sb3Itc2NoZW1lJztcblxuLy8gQ29uc3RhbnRzLlxuY29uc3QgeyBpc1RUWSB9ID0gcHJvY2Vzcy5zdGRvdXQ7XG5jb25zdCBpc05vdE9uQ0xJID0gIWlzVFRZO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBkZWNvcmF0ZUxhYmVsPFQgZXh0ZW5kcyBzdHJpbmc+KGxhYmVsOiBULCBzY2hlbWU6IENvbG9yU2NoZW1lKTogVCB7XG4gICAgaWYgKGlzTm90T25DTEkpIHtcbiAgICAgICAgcmV0dXJuIGxhYmVsO1xuICAgIH1cblxuICAgIGNvbnN0IGNoYWxrID0gZ2V0Q2hhbGtPZihzY2hlbWUpO1xuICAgIGNvbnN0IGRlY29yYXRlZExhYmVsID0gY2hhbGsuYm9sZChgICR7bGFiZWx9IGApO1xuXG4gICAgcmV0dXJuIGRlY29yYXRlZExhYmVsIGFzIFQ7XG59XG4iLCIvLyBOb2RlLmpzIGJ1aWx0LWluIEFQSXMuXG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCBwcm9jZXNzLCB7IHZlcnNpb24gfSBmcm9tICdwcm9jZXNzJztcblxuLy8gVGhpcmQtcGFydHkgbW9kdWxlcy5cbmltcG9ydCBjaGFsayBmcm9tICdjaGFsayc7XG5cbi8vIExvY2FsIGhlbHBlcnMuXG5pbXBvcnQgTG9nZ2luZ0xldmVsIGZyb20gJy4uL2hlbHBlcnMvbG9nZ2luZy1sZXZlbCc7XG5pbXBvcnQgQ29sb3JTY2hlbWUgZnJvbSAnLi4vaGVscGVycy9jb2xvci1zY2hlbWUnO1xuaW1wb3J0IGRlY29yYXRlTGFiZWwgZnJvbSAnLi4vaGVscGVycy9sYWJlbC1kZWNvcmF0b3InO1xuXG4vLyBUeXBlIGRlZmluaXRpb25zLlxudHlwZSBMb2dnaW5nRGF0YSA9IHsgbGV2ZWw6IHN0cmluZywgbWVzc2FnZTogc3RyaW5nIH0gJiBSZWNvcmQ8UHJvcGVydHlLZXksIGFueT47XG50eXBlIEhhbmRsZWREYXRhID0geyBsYWJlbDogc3RyaW5nLCBwYXlsb2FkOiBzdHJpbmcgfTtcblxuLy8gQ29uc3RhbnRzLlxuY29uc3Qgcm9vdFBhdGggPSBwcm9jZXNzLmN3ZCgpO1xuY29uc3QgY29uanVuY3Rpb24gPSBgICR7Y2hhbGsuYmx1ZSgn4pSA4pSAJyl9IGA7XG5jb25zdCBzcGxhdDogdW5pcXVlIHN5bWJvbCA9IFN5bWJvbC5mb3IoJ3NwbGF0Jyk7XG5cbi8vIEhhbmRsZXIgbWV0YWRhdGEuXG5leHBvcnQgY29uc3QgbmFtZSA9ICdlcnJvcic7XG5leHBvcnQgY29uc3QgbGV2ZWwgPSBMb2dnaW5nTGV2ZWwuRXJyb3I7XG5leHBvcnQgY29uc3QgbGFiZWwgPSBkZWNvcmF0ZUxhYmVsKCdFUlJPUicsIENvbG9yU2NoZW1lLkNyaXRpY2FsKTtcblxuZnVuY3Rpb24gbWFwTG9jYXRpb25PZkVycm9yVGhyb3duKGZpbGVuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGxldCB0YXJnZXQgPSBwYXRoLnJlbGF0aXZlKHJvb3RQYXRoLCBmaWxlbmFtZSk7XG5cbiAgICBpZiAodGFyZ2V0LnN0YXJ0c1dpdGgoJ25vZGVfbW9kdWxlcycpKSB7XG4gICAgICAgIHRhcmdldCA9IGNoYWxrLmdyYXkodGFyZ2V0KS5yZXBsYWNlKFxuICAgICAgICAgICAgL25vZGVfbW9kdWxlc1tcXFxcL10oW15cXFxcL10rKSguKikvLFxuICAgICAgICAgICAgKG1hdGNoZXMsIG1vZHVsZU5hbWU6IHN0cmluZywgdHJhaWxpbmc6IHN0cmluZykgPT4gYG5vZGVfbW9kdWxlcyR7cGF0aC5zZXB9JHtjaGFsay5ib2xkLnVuZGVybGluZShtb2R1bGVOYW1lKX0ke2NoYWxrLmdyYXkodHJhaWxpbmcpfWAgLy8gZXNsaW50LWRpc2FibGUtbGluZSBtYXgtbGVuXG4gICAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgdGFyZ2V0ID0gYCR7Y2hhbGsuZ3JheShwYXRoLmRpcm5hbWUodGFyZ2V0KSArIHBhdGguc2VwKX0ke2NoYWxrLmJvbGQudW5kZXJsaW5lKHBhdGguYmFzZW5hbWUodGFyZ2V0KSl9YDtcbiAgICB9XG5cbiAgICByZXR1cm4gdGFyZ2V0O1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBoYW5kbGUoZGF0YTogTG9nZ2luZ0RhdGEpOiBIYW5kbGVkRGF0YSB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgeyBbc3BsYXRdOiBbIGVycm9yIF0gPSBbXSB9ID0gZGF0YSBhcyBhbnk7XG5cbiAgICBpZiAoIShlcnJvciBpbnN0YW5jZW9mIEVycm9yKSkge1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGNvbnN0IHsgbmFtZSwgbWVzc2FnZSwgc3RhY2s6IHJhd1N0YWNrID0gJycgfSA9IGVycm9yO1xuXG4gICAgY29uc3Qgc3RhY2sgPSByYXdTdGFja1xuICAgICAgICAuc2xpY2UobmFtZS5sZW5ndGggKyBtZXNzYWdlLmxlbmd0aCArIDMpXG4gICAgICAgIC5zcGxpdCgnXFxuJylcbiAgICAgICAgLm1hcChsaW5lID0+IGxpbmUucmVwbGFjZSgvXlxccythdCAvZywgJycpKVxuICAgICAgICAubWFwKGxpbmUgPT4gKHBhdGguaXNBYnNvbHV0ZShsaW5lKSA/IGA8YW5vbnltb3VzPiR7Y29uanVuY3Rpb259JHttYXBMb2NhdGlvbk9mRXJyb3JUaHJvd24obGluZSl9YCA6IGxpbmUpKVxuICAgICAgICAubWFwKGxpbmUgPT4gbGluZS5yZXBsYWNlKC9eKC4rKSBcXCgoLispXFwpJC8sIChtYXRjaGVzLCBjb250ZXh0TmFtZTogc3RyaW5nLCByYXdMb2NhdGlvbjogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICBsZXQgbG9jYXRpb247XG5cbiAgICAgICAgICAgIGlmIChyYXdMb2NhdGlvbiA9PT0gJzxhbm9ueW1vdXM+Jykge1xuICAgICAgICAgICAgICAgIGxvY2F0aW9uID0gY2hhbGsuZ3JheShyYXdMb2NhdGlvbik7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IFsgZmlsZW5hbWUsIGxpbmUsIGNvbHVtbiBdID0gcmF3TG9jYXRpb24uc3BsaXQoJzonKTtcblxuICAgICAgICAgICAgICAgIGlmIChwYXRoLmlzQWJzb2x1dGUoZmlsZW5hbWUpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRhcmdldCA9IG1hcExvY2F0aW9uT2ZFcnJvclRocm93bihwYXRoLnJlbGF0aXZlKHJvb3RQYXRoLCBmaWxlbmFtZSkpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0cmFpbGluZyA9IGNoYWxrLmdyYXkoYDoke2xpbmV9OiR7Y29sdW1ufWApO1xuXG4gICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uID0gdGFyZ2V0ICsgdHJhaWxpbmc7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgbG9jYXRpb24gPSBjaGFsay5ncmF5KGBodHRwczovL2dpdGh1Yi5jb20vJHtjaGFsay5ib2xkLnVuZGVybGluZSgnbm9kZWpzJyl9L25vZGUvYmxvYi8ke3ZlcnNpb259L2xpYi8ke2ZpbGVuYW1lfSNMJHtsaW5lfWApOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG1heC1sZW5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBgJHtjb250ZXh0TmFtZX0ke2Nvbmp1bmN0aW9ufSR7bG9jYXRpb259YDtcbiAgICAgICAgfSkpXG4gICAgICAgIC5qb2luKCdcXG4nKTtcblxuICAgIGNvbnN0IGxhYmVsID0gZGVjb3JhdGVMYWJlbChuYW1lLCBDb2xvclNjaGVtZS5Dcml0aWNhbCk7XG4gICAgY29uc3QgcGF5bG9hZCA9IGAke21lc3NhZ2V9XFxuXFxuJHtzdGFja31cXG5gO1xuXG4gICAgcmV0dXJuIHsgbGFiZWwsIHBheWxvYWQgfTtcbn1cbiIsIi8vIExvY2FsIGhlbHBlcnMuXG5pbXBvcnQgTG9nZ2luZ0xldmVsIGZyb20gJy4uL2hlbHBlcnMvbG9nZ2luZy1sZXZlbCc7XG5pbXBvcnQgQ29sb3JTY2hlbWUgZnJvbSAnLi4vaGVscGVycy9jb2xvci1zY2hlbWUnO1xuaW1wb3J0IGRlY29yYXRlTGFiZWwgZnJvbSAnLi4vaGVscGVycy9sYWJlbC1kZWNvcmF0b3InO1xuXG4vLyBIYW5kbGVyIG1ldGFkYXRhLlxuZXhwb3J0IGNvbnN0IG5hbWUgPSAnZmF0YWwnO1xuZXhwb3J0IGNvbnN0IGxldmVsID0gTG9nZ2luZ0xldmVsLkZhdGFsO1xuZXhwb3J0IGNvbnN0IGxhYmVsID0gZGVjb3JhdGVMYWJlbCgnRkFUQUwnLCBDb2xvclNjaGVtZS5Dcml0aWNhbCk7XG5cbmV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tICcuL2Vycm9yJztcbiIsIi8vIExvY2FsIGhlbHBlcnMuXG5pbXBvcnQgTG9nZ2luZ0xldmVsIGZyb20gJy4uL2hlbHBlcnMvbG9nZ2luZy1sZXZlbCc7XG5pbXBvcnQgQ29sb3JTY2hlbWUgZnJvbSAnLi4vaGVscGVycy9jb2xvci1zY2hlbWUnO1xuaW1wb3J0IGRlY29yYXRlTGFiZWwgZnJvbSAnLi4vaGVscGVycy9sYWJlbC1kZWNvcmF0b3InO1xuXG4vLyBIYW5kbGVyIG1ldGFkYXRhLlxuZXhwb3J0IGNvbnN0IG5hbWUgPSAnd2FybmluZyc7XG5leHBvcnQgY29uc3QgbGV2ZWwgPSBMb2dnaW5nTGV2ZWwuV2FybmluZztcbmV4cG9ydCBjb25zdCBsYWJlbCA9IGRlY29yYXRlTGFiZWwoJ1dBUk5JTkcnLCBDb2xvclNjaGVtZS5XYXJuaW5nKTtcblxuZXhwb3J0IGRlZmF1bHQgbnVsbDtcbiIsIi8vIExvY2FsIGhlbHBlcnMuXG5pbXBvcnQgTG9nZ2luZ0xldmVsIGZyb20gJy4uL2hlbHBlcnMvbG9nZ2luZy1sZXZlbCc7XG5pbXBvcnQgQ29sb3JTY2hlbWUgZnJvbSAnLi4vaGVscGVycy9jb2xvci1zY2hlbWUnO1xuaW1wb3J0IGRlY29yYXRlTGFiZWwgZnJvbSAnLi4vaGVscGVycy9sYWJlbC1kZWNvcmF0b3InO1xuXG4vLyBIYW5kbGVyIG1ldGFkYXRhLlxuZXhwb3J0IGNvbnN0IG5hbWUgPSAnbm90aWNlJztcbmV4cG9ydCBjb25zdCBsZXZlbCA9IExvZ2dpbmdMZXZlbC5Ob3RpY2U7XG5leHBvcnQgY29uc3QgbGFiZWwgPSBkZWNvcmF0ZUxhYmVsKCdOT1RJQ0UnLCBDb2xvclNjaGVtZS5SZWd1bGFyKTtcblxuZXhwb3J0IGRlZmF1bHQgbnVsbDtcbiIsIi8vIExvY2FsIGhlbHBlcnMuXG5pbXBvcnQgTG9nZ2luZ0xldmVsIGZyb20gJy4uL2hlbHBlcnMvbG9nZ2luZy1sZXZlbCc7XG5pbXBvcnQgQ29sb3JTY2hlbWUgZnJvbSAnLi4vaGVscGVycy9jb2xvci1zY2hlbWUnO1xuaW1wb3J0IGRlY29yYXRlTGFiZWwgZnJvbSAnLi4vaGVscGVycy9sYWJlbC1kZWNvcmF0b3InO1xuXG4vLyBIYW5kbGVyIG1ldGFkYXRhLlxuZXhwb3J0IGNvbnN0IG5hbWUgPSAnaW5mbyc7XG5leHBvcnQgY29uc3QgbGV2ZWwgPSBMb2dnaW5nTGV2ZWwuSW5mbztcbmV4cG9ydCBjb25zdCBsYWJlbCA9IGRlY29yYXRlTGFiZWwoJ0lORk8nLCBDb2xvclNjaGVtZS5SZWd1bGFyKTtcblxuZXhwb3J0IGRlZmF1bHQgbnVsbDtcbiIsIi8vIExvY2FsIGhlbHBlcnMuXG5pbXBvcnQgTG9nZ2luZ0xldmVsIGZyb20gJy4uL2hlbHBlcnMvbG9nZ2luZy1sZXZlbCc7XG5pbXBvcnQgQ29sb3JTY2hlbWUgZnJvbSAnLi4vaGVscGVycy9jb2xvci1zY2hlbWUnO1xuaW1wb3J0IGRlY29yYXRlTGFiZWwgZnJvbSAnLi4vaGVscGVycy9sYWJlbC1kZWNvcmF0b3InO1xuXG4vLyBIYW5kbGVyIG1ldGFkYXRhLlxuZXhwb3J0IGNvbnN0IG5hbWUgPSAnaHR0cCc7XG5leHBvcnQgY29uc3QgbGV2ZWwgPSBMb2dnaW5nTGV2ZWwuSHR0cDtcbmV4cG9ydCBjb25zdCBsYWJlbCA9IGRlY29yYXRlTGFiZWwoJ0hUVFAnLCBDb2xvclNjaGVtZS5IdHRwKTtcblxuZXhwb3J0IGRlZmF1bHQgbnVsbDtcbiIsIi8vIEhpZ2hsaWdodC5qc1xuaW1wb3J0IGhpZ2hsaWdodCBmcm9tICdjbGktaGlnaGxpZ2h0JztcblxuLy8gTG9jYWwgaGVscGVycy5cbmltcG9ydCBMb2dnaW5nTGV2ZWwgZnJvbSAnLi4vaGVscGVycy9sb2dnaW5nLWxldmVsJztcbmltcG9ydCBDb2xvclNjaGVtZSBmcm9tICcuLi9oZWxwZXJzL2NvbG9yLXNjaGVtZSc7XG5pbXBvcnQgZGVjb3JhdGVMYWJlbCBmcm9tICcuLi9oZWxwZXJzL2xhYmVsLWRlY29yYXRvcic7XG5cbi8vIFR5cGUgZGVmaW5pdGlvbnMuXG50eXBlIExvZ2dpbmdEYXRhID0geyBsZXZlbDogc3RyaW5nLCBtZXNzYWdlOiBzdHJpbmcgfSAmIFJlY29yZDxQcm9wZXJ0eUtleSwgYW55PjtcbnR5cGUgSGFuZGxlZERhdGEgPSB7IGxhYmVsOiBzdHJpbmcsIHBheWxvYWQ6IHN0cmluZyB9O1xuXG4vLyBIYW5kbGVyIG1ldGFkYXRhLlxuZXhwb3J0IGNvbnN0IG5hbWUgPSAncXVlcnknO1xuZXhwb3J0IGNvbnN0IGxldmVsID0gTG9nZ2luZ0xldmVsLlF1ZXJ5O1xuZXhwb3J0IGNvbnN0IGxhYmVsID0gZGVjb3JhdGVMYWJlbCgnUVVFUlknLCBDb2xvclNjaGVtZS5RdWVyeSk7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGhhbmRsZShkYXRhOiBMb2dnaW5nRGF0YSk6IEhhbmRsZWREYXRhIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBwYXlsb2FkID0gaGlnaGxpZ2h0KGRhdGEubWVzc2FnZSwgeyBsYW5ndWFnZTogJ3NxbCcgfSk7XG5cbiAgICByZXR1cm4geyBsYWJlbCwgcGF5bG9hZCB9O1xufVxuIiwiLy8gTG9jYWwgaGVscGVycy5cbmltcG9ydCBMb2dnaW5nTGV2ZWwgZnJvbSAnLi4vaGVscGVycy9sb2dnaW5nLWxldmVsJztcbmltcG9ydCBDb2xvclNjaGVtZSBmcm9tICcuLi9oZWxwZXJzL2NvbG9yLXNjaGVtZSc7XG5pbXBvcnQgZGVjb3JhdGVMYWJlbCBmcm9tICcuLi9oZWxwZXJzL2xhYmVsLWRlY29yYXRvcic7XG5cbi8vIEhhbmRsZXIgbWV0YWRhdGEuXG5leHBvcnQgY29uc3QgbmFtZSA9ICd2ZXJib3NlJztcbmV4cG9ydCBjb25zdCBsZXZlbCA9IExvZ2dpbmdMZXZlbC5WZXJib3NlO1xuZXhwb3J0IGNvbnN0IGxhYmVsID0gZGVjb3JhdGVMYWJlbCgnVkVSQk9TRScsIENvbG9yU2NoZW1lLkxvdWQpO1xuXG5leHBvcnQgZGVmYXVsdCBudWxsO1xuIiwiLy8gTG9jYWwgaGVscGVycy5cbmltcG9ydCBMb2dnaW5nTGV2ZWwgZnJvbSAnLi4vaGVscGVycy9sb2dnaW5nLWxldmVsJztcbmltcG9ydCBDb2xvclNjaGVtZSBmcm9tICcuLi9oZWxwZXJzL2NvbG9yLXNjaGVtZSc7XG5pbXBvcnQgZGVjb3JhdGVMYWJlbCBmcm9tICcuLi9oZWxwZXJzL2xhYmVsLWRlY29yYXRvcic7XG5cbi8vIEhhbmRsZXIgbWV0YWRhdGEuXG5leHBvcnQgY29uc3QgbmFtZSA9ICdkZWJ1Zyc7XG5leHBvcnQgY29uc3QgbGV2ZWwgPSBMb2dnaW5nTGV2ZWwuRGVidWc7XG5leHBvcnQgY29uc3QgbGFiZWwgPSBkZWNvcmF0ZUxhYmVsKCdERUJVRycsIENvbG9yU2NoZW1lLkxvdWQpO1xuXG5leHBvcnQgZGVmYXVsdCBudWxsO1xuIiwiLy8gSGFuZGxlciBpbXBsZW1lbnRhdGlvbnMuXG5pbXBvcnQgKiBhcyBGYXRhbEhhbmRsZXIgZnJvbSAnLi9mYXRhbCc7XG5pbXBvcnQgKiBhcyBFcnJvckhhbmRsZXIgZnJvbSAnLi9lcnJvcic7XG5pbXBvcnQgKiBhcyBXYXJuaW5nSGFuZGxlciBmcm9tICcuL3dhcm5pbmcnO1xuaW1wb3J0ICogYXMgTm90aWNlSGFuZGxlciBmcm9tICcuL25vdGljZSc7XG5pbXBvcnQgKiBhcyBJbmZvSGFuZGxlciBmcm9tICcuL2luZm8nO1xuaW1wb3J0ICogYXMgSHR0cEhhbmRsZXIgZnJvbSAnLi9odHRwJztcbmltcG9ydCAqIGFzIFF1ZXJ5SGFuZGxlciBmcm9tICcuL3F1ZXJ5JztcbmltcG9ydCAqIGFzIFZlcmJvc2VIYW5kbGVyIGZyb20gJy4vdmVyYm9zZSc7XG5pbXBvcnQgKiBhcyBEZWJ1Z0hhbmRsZXIgZnJvbSAnLi9kZWJ1Zyc7XG5cbmNvbnN0IGhhbmRsZXJzID0gW1xuICAgIEZhdGFsSGFuZGxlcixcbiAgICBFcnJvckhhbmRsZXIsXG4gICAgV2FybmluZ0hhbmRsZXIsXG4gICAgTm90aWNlSGFuZGxlcixcbiAgICBJbmZvSGFuZGxlcixcbiAgICBIdHRwSGFuZGxlcixcbiAgICBRdWVyeUhhbmRsZXIsXG4gICAgVmVyYm9zZUhhbmRsZXIsXG4gICAgRGVidWdIYW5kbGVyXG5dO1xuXG5leHBvcnQgdHlwZSBMb2dnaW5nTGV2ZWxOYW1lID0gKHR5cGVvZiBoYW5kbGVycyBleHRlbmRzIChpbmZlciBUKVtdID8gVCA6IG5ldmVyKVsnbmFtZSddO1xuZXhwb3J0IGRlZmF1bHQgaGFuZGxlcnM7XG4iLCIvLyBUaGlyZC1wYXJ0eSBtb2R1bGVzLlxuaW1wb3J0IGNoYWxrIGZyb20gJ2NoYWxrJztcbmltcG9ydCByVHJhY2VyIGZyb20gJ2Nscy1ydHJhY2VyJztcbmltcG9ydCB7IERhdGVUaW1lIH0gZnJvbSAnbHV4b24nO1xuaW1wb3J0IHsgZm9ybWF0IH0gZnJvbSAnd2luc3Rvbic7XG5cbi8vIExvY2FsIGhlbHBlcnMuXG5pbXBvcnQgTG9nZ2luZ0xldmVsIGZyb20gJy4uL2hlbHBlcnMvbG9nZ2luZy1sZXZlbCc7XG5cbi8vIEhhbmRsZXIgaW1wbGVtZW50YXRpb25zLlxuaW1wb3J0IGhhbmRsZXJzIGZyb20gJy4uL2hhbmRsZXJzJztcblxuZXhwb3J0IGRlZmF1bHQgZm9ybWF0LnByaW50ZihkYXRhID0+IHtcbiAgICBjb25zdCB0aW1lc3RhbXAgPSBjaGFsay5ncmF5KERhdGVUaW1lLm5vdygpLnRvSVNPKHsgaW5jbHVkZU9mZnNldDogdHJ1ZSB9KSk7XG4gICAgY29uc3QgaGFuZGxlciA9IGhhbmRsZXJzLmZpbmQoKHsgbmFtZSB9KSA9PiBuYW1lID09PSBkYXRhLmxldmVsKTtcbiAgICBjb25zdCBmYWxsYmFjayA9IHsgbGFiZWw6IGhhbmRsZXI/LmxhYmVsLCBwYXlsb2FkOiBkYXRhLm1lc3NhZ2UgfTtcbiAgICBjb25zdCBwZXJmb3JtSGFuZGxlID0gaGFuZGxlcj8uZGVmYXVsdCA/PyAoKCk6IHR5cGVvZiBmYWxsYmFjayA9PiBmYWxsYmFjayk7XG5cbiAgICAvLyBFeGVjdXRlIGhhbmRsZXIgYW5kIHRoZW4sIGdldCBkZWNvcmF0ZWQgcGF5bG9hZC5cbiAgICBjb25zdCB7IGxhYmVsLCBwYXlsb2FkIH0gPSBSZWZsZWN0LmFwcGx5KHBlcmZvcm1IYW5kbGUsIHVuZGVmaW5lZCwgWyBkYXRhIF0pID8/IGZhbGxiYWNrO1xuXG4gICAgbGV0IGV4dHJhRmluZ2VycHJpbnQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAgIGlmIChoYW5kbGVyPy5sZXZlbCA9PT0gTG9nZ2luZ0xldmVsLkh0dHApIHtcbiAgICAgICAgZXh0cmFGaW5nZXJwcmludCA9IGRhdGEudHJhbnNhY3Rpb25JZFxuICAgICAgICAgICAgPyBgKFRyYW5zYWN0aW9uLUlEID0gJHtkYXRhLnRyYW5zYWN0aW9uSWQgYXMgc3RyaW5nfSlgXG4gICAgICAgICAgICA6IGAoUmVxdWVzdC1JRCA9ICR7clRyYWNlci5pZCgpIGFzIHN0cmluZ30pYDtcbiAgICB9XG5cbiAgICByZXR1cm4gYCR7bGFiZWwgYXMgc3RyaW5nfSAke3RpbWVzdGFtcH0ke2V4dHJhRmluZ2VycHJpbnQgPyBgICR7ZXh0cmFGaW5nZXJwcmludH1gIDogJyd9XFxuJHtwYXlsb2FkIGFzIHN0cmluZ31gO1xufSk7XG4iLCIvLyBOb2RlLmpzIGJ1aWx0LWluIEFQSXMuXG5pbXBvcnQgY2x1c3RlciBmcm9tICdjbHVzdGVyJztcbmltcG9ydCB7IGVudiBhcyBlbnZpcm9ubWVudHMgfSBmcm9tICdwcm9jZXNzJztcbmltcG9ydCB7IGlzTWFpblRocmVhZCB9IGZyb20gJ3dvcmtlcl90aHJlYWRzJztcblxuLy8gVHlwZSBkZWZpbml0aW9ucy5cbmV4cG9ydCBjb25zdCBFeGVjdXRpb25Nb2RlID0ge1xuICAgIERldmVsb3BtZW50TW9kZTogJ2RldmVsb3BtZW50JyxcbiAgICBQcm9kdWN0aW9uTW9kZTogJ3Byb2R1Y3Rpb24nXG59IGFzIGNvbnN0O1xuXG5leHBvcnQgY29uc3QgQ2x1c3RlcmluZ01vZGUgPSB7XG4gICAgTWFzdGVyUHJvY2VzczogMCxcbiAgICBXb3JrZXJQcm9jZXNzOiAxXG59IGFzIGNvbnN0O1xuXG5leHBvcnQgY29uc3QgVGhyZWFkaW5nTW9kZSA9IHtcbiAgICBNYWluVGhyZWFkOiAwLFxuICAgIFdvcmtlclRocmVhZDogMVxufSBhcyBjb25zdDtcblxuZXhwb3J0IHR5cGUgRXhlY3V0aW9uTW9kZSA9IHR5cGVvZiBFeGVjdXRpb25Nb2RlW2tleW9mIHR5cGVvZiBFeGVjdXRpb25Nb2RlXTtcbmV4cG9ydCB0eXBlIENsdXN0ZXJpbmdNb2RlID0gdHlwZW9mIENsdXN0ZXJpbmdNb2RlW2tleW9mIHR5cGVvZiBDbHVzdGVyaW5nTW9kZV07XG5leHBvcnQgdHlwZSBUaHJlYWRpbmdNb2RlID0gdHlwZW9mIFRocmVhZGluZ01vZGVba2V5b2YgdHlwZW9mIFRocmVhZGluZ01vZGVdO1xuXG4vLyBFeHBvcnRpbmdzLlxuZXhwb3J0IGNvbnN0IGV4ZWN1dGlvbk1vZGUgPSBlbnZpcm9ubWVudHMuTk9ERV9FTlYgYXMgRXhlY3V0aW9uTW9kZSA/PyBFeGVjdXRpb25Nb2RlLkRldmVsb3BtZW50TW9kZTtcblxuZXhwb3J0IGNvbnN0IGNsdXN0ZXJpbmdNb2RlOiBDbHVzdGVyaW5nTW9kZSA9IGNsdXN0ZXIuaXNQcmltYXJ5ID8/IGNsdXN0ZXIuaXNNYXN0ZXJcbiAgICA/IENsdXN0ZXJpbmdNb2RlLk1hc3RlclByb2Nlc3NcbiAgICA6IENsdXN0ZXJpbmdNb2RlLldvcmtlclByb2Nlc3M7XG5cbmV4cG9ydCBjb25zdCB0aHJlYWRpbmdNb2RlOiBUaHJlYWRpbmdNb2RlID0gaXNNYWluVGhyZWFkXG4gICAgPyBUaHJlYWRpbmdNb2RlLk1haW5UaHJlYWRcbiAgICA6IFRocmVhZGluZ01vZGUuV29ya2VyVGhyZWFkO1xuIiwiLy8gTm9kZS5qcyBidWlsdC1pbiBBUElzLlxuaW1wb3J0IHtcbiAgICBTVEFUVVNfQ09ERVMsXG4gICAgSW5jb21pbmdNZXNzYWdlIGFzIEh0dHBSZXF1ZXN0LFxuICAgIFNlcnZlclJlc3BvbnNlIGFzIEh0dHBSZXNwb25zZVxufSBmcm9tICdodHRwJztcblxuLy8gVGhpcmQtcGFydHkgbW9kdWxlcy5cbmltcG9ydCBjaGFsayBmcm9tICdjaGFsayc7XG5pbXBvcnQgbW9yZ2FuIGZyb20gJ21vcmdhbic7XG5pbXBvcnQgcHJldHR5Qnl0ZXMgZnJvbSAncHJldHR5LWJ5dGVzJztcbmltcG9ydCBwcmV0dHlNcyBmcm9tICdwcmV0dHktbXMnO1xuXG4vLyBMb2NhbCBoZWxwZXJzLlxuaW1wb3J0IHsgRXhlY3V0aW9uTW9kZSwgZXhlY3V0aW9uTW9kZSB9IGZyb20gJy4uL2hlbHBlcnMvY29uc3RhbnRzJztcblxuLy8gVHlwZSBkZWZpbml0aW9ucy5cbmRlY2xhcmUgbW9kdWxlICdtb3JnYW4nIHtcbiAgICBjb25zdCBjb21iaW5lZDogbW9yZ2FuLkZvcm1hdEZuO1xufVxuXG5pbnRlcmZhY2UgVG9rZW5JbmRleGVyIHtcbiAgICBbdG9rZW5OYW1lOiBzdHJpbmddOiAoXG4gICAgICAgIHJlcXVlc3Q6IEh0dHBSZXF1ZXN0LFxuICAgICAgICByZXNwb25zZTogSHR0cFJlc3BvbnNlLFxuICAgICAgICAuLi5hcmdzOiBhbnlbXVxuICAgICkgPT4gc3RyaW5nIHwgdW5kZWZpbmVkO1xufVxuXG4vLyBIZWxwZXJzLlxuZnVuY3Rpb24gZGVjb3JhdGVTdGF0dXNDb2RlKHN0YXR1c0NvZGU6IGtleW9mIHR5cGVvZiBTVEFUVVNfQ09ERVMpOiBzdHJpbmcge1xuICAgIGNvbnN0IGdyb3VwT2ZDb2RlID0gTWF0aC5mbG9vcihOdW1iZXIoc3RhdHVzQ29kZSkgLyAxMDApICogMTAwO1xuICAgIGNvbnN0IGJhc2VNZXNzYWdlID0gYCR7c3RhdHVzQ29kZX0gJHtTVEFUVVNfQ09ERVNbc3RhdHVzQ29kZV0gYXMgc3RyaW5nfWA7XG5cbiAgICBzd2l0Y2ggKGdyb3VwT2ZDb2RlKSB7XG4gICAgY2FzZSAyMDA6IHtcbiAgICAgICAgcmV0dXJuIGNoYWxrLmdyZWVuKGJhc2VNZXNzYWdlKTtcbiAgICB9XG5cbiAgICBjYXNlIDMwMDoge1xuICAgICAgICByZXR1cm4gY2hhbGsubWFnZW50YShiYXNlTWVzc2FnZSk7XG4gICAgfVxuICAgIGNhc2UgNDAwOlxuICAgIGNhc2UgNTAwOiB7XG4gICAgICAgIHJldHVybiBjaGFsay5yZWQoYmFzZU1lc3NhZ2UpO1xuICAgIH1cblxuICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgcmV0dXJuIGNoYWxrLmdyYXkoYmFzZU1lc3NhZ2UpO1xuICAgIH1cbiAgICB9XG59XG5cbmZ1bmN0aW9uIGZvcm1hdEZvck1vcmdhbih0b2tlbnM6IGFueSwgcmVxdWVzdDogSHR0cFJlcXVlc3QsIHJlc3BvbnNlOiBIdHRwUmVzcG9uc2UpOiBzdHJpbmcge1xuICAgIGZ1bmN0aW9uIF8odG9rZW46IHN0cmluZywgLi4uc3ViQXJnczogYW55W10pOiBzdHJpbmcgfCB2b2lkIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtYXJndW1lbnRcbiAgICAgICAgcmV0dXJuICh0b2tlbnMgYXMgVG9rZW5JbmRleGVyKVt0b2tlbl0ocmVxdWVzdCwgcmVzcG9uc2UsIC4uLnN1YkFyZ3MpO1xuICAgIH1cblxuICAgIC8vIFJhdyB2YWx1ZXMuXG4gICAgY29uc3QgbWV0aG9kID0gXygnbWV0aG9kJyk7XG4gICAgY29uc3QgVVJMID0gXygndXJsJyk7XG4gICAgY29uc3QgaHR0cFZlcnNpb24gPSBgSFRUUC8ke18oJ2h0dHAtdmVyc2lvbicpIGFzIHN0cmluZ31gO1xuICAgIGNvbnN0IHN0YXR1c0NvZGUgPSBOdW1iZXIoXygnc3RhdHVzJykpO1xuICAgIGNvbnN0IGNvbnRlbnRMZW5ndGggPSBOdW1iZXIoXygncmVzJywgJ2NvbnRlbnQtbGVuZ3RoJykgPz8gLTEpO1xuICAgIGNvbnN0IHJlc3BvbnNlVGltZSA9IE51bWJlcihfKCdyZXNwb25zZS10aW1lJykgPz8gLTEpO1xuXG4gICAgLy8gRGVjb3JhdGVkIHZhbHVlcy5cbiAgICBjb25zdCAkbWV0aG9kID0gY2hhbGsuYm9sZChtZXRob2QpO1xuICAgIGNvbnN0ICR2ZXJzaW9uID0gY2hhbGsucmdiKDk4LCAxNzcsIDI1NSkoaHR0cFZlcnNpb24pO1xuICAgIGNvbnN0ICRzdGF0dXNDb2RlID0gZGVjb3JhdGVTdGF0dXNDb2RlKHN0YXR1c0NvZGUpO1xuICAgIGNvbnN0ICRjb250ZW50TGVuZ3RoID0gY29udGVudExlbmd0aCA+PSAwID8gcHJldHR5Qnl0ZXMoY29udGVudExlbmd0aCkgOiAnPyBCJztcbiAgICBjb25zdCAkcmVzcG9uc2VUaW1lID0gcmVzcG9uc2VUaW1lID49IDAgPyBwcmV0dHlNcyhyZXNwb25zZVRpbWUpIDogJyc7XG5cbiAgICAvLyBBZGRpdGlvbmFsIGluZm9ybWF0aW9uLlxuICAgIGNvbnN0IG1ldGFkYXRhID0gYCgkeyRjb250ZW50TGVuZ3RofSwgJHskcmVzcG9uc2VUaW1lfSlgO1xuXG4gICAgcmV0dXJuIFtcbiAgICAgICAgYOKGkiAkeyRtZXRob2R9ICR7VVJMIGFzIHN0cmluZ30gJHskdmVyc2lvbn1gLFxuICAgICAgICBg4oaQICR7JHZlcnNpb259ICR7JHN0YXR1c0NvZGV9ICR7bWV0YWRhdGF9YFxuICAgIF0uam9pbignXFxuJyk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGV4ZWN1dGlvbk1vZGUgPT09IEV4ZWN1dGlvbk1vZGUuRGV2ZWxvcG1lbnRNb2RlID8gZm9ybWF0Rm9yTW9yZ2FuIDogbW9yZ2FuLmNvbWJpbmVkO1xuIiwiaW1wb3J0ICdyZWZsZWN0LW1ldGFkYXRhJztcblxuLy8gTm9kZS5qcyBidWlsdC1pbiBBUElzLlxuaW1wb3J0IHsgSW5jb21pbmdNZXNzYWdlIGFzIEh0dHBSZXF1ZXN0LCBTZXJ2ZXJSZXNwb25zZSBhcyBIdHRwUmVzcG9uc2UgfSBmcm9tICdodHRwJztcbmltcG9ydCB7IFBhc3NUaHJvdWdoIH0gZnJvbSAnc3RyZWFtJztcblxuLy8gVGhpcmQtcGFydHkgbW9kdWxlcy5cbmltcG9ydCBQcm9taXNlIGZyb20gJ2JsdWViaXJkJztcbmltcG9ydCBsb2Rhc2ggZnJvbSAnbG9kYXNoJztcbmltcG9ydCBtb3JnYW4gZnJvbSAnbW9yZ2FuJztcbmltcG9ydCB0eXBlIHsgbGV2ZWwgYXMgTG9nZ2luZ0xldmVsIH0gZnJvbSAnd2luc3Rvbic7XG5pbXBvcnQgKiBhcyB3aW5zdG9uIGZyb20gJ3dpbnN0b24nO1xuaW1wb3J0IHsgTG9nZ2VyIGFzIEJhc2VMb2dnZXIgfSBmcm9tICd3aW5zdG9uJztcblxuLy8gRm9ybWF0dGVycy5cbmltcG9ydCBmb3JtYXRGb3JDTEkgZnJvbSAnLi4vZm9ybWF0dGVycy9jb21tYW5kLWxpbmUnO1xuaW1wb3J0IGZvcm1hdEZvck1vcmdhbiBmcm9tICcuLi9mb3JtYXR0ZXJzL21vcmdhbic7XG5cbi8vIExvY2FsIGhlbHBlcnMuXG5pbXBvcnQgeyBFeGVjdXRpb25Nb2RlLCBleGVjdXRpb25Nb2RlIH0gZnJvbSAnLi4vaGVscGVycy9jb25zdGFudHMnO1xuXG4vLyBIYW5kbGVyIGltcGxlbWVudGF0aW9ucy5cbmltcG9ydCB0eXBlIHsgTG9nZ2luZ0xldmVsTmFtZSB9IGZyb20gJy4uL2hhbmRsZXJzJztcbmltcG9ydCBoYW5kbGVycyBmcm9tICcuLi9oYW5kbGVycyc7XG5cbi8vIFR5cGUgZGVmaW5pdGlvbnMuXG50eXBlIE1vcmdhbiA9IChyZXE6IEh0dHBSZXF1ZXN0LCByZXM6IEh0dHBSZXNwb25zZSwgbmV4dDogKGVycm9yPzogRXJyb3IpID0+IHZvaWQpID0+IHZvaWQ7XG5cbi8vIFRyYW5zcG9ydHMuXG5jb25zdCB7IENvbnNvbGU6IENvbnNvbGVUcmFuc3BvcnQgfSA9IHdpbnN0b24udHJhbnNwb3J0cztcblxuLy8gS2V5cyBpbiBvcmRlciB0byBhY2Nlc3MgcHJpdmF0ZSBwcm9wZXJ0aWVzLlxuY29uc3QgS2V5T2ZJbnN0YW5jZTogdW5pcXVlIHN5bWJvbCA9IFN5bWJvbCgnQGNpY2hvbC9sb2dnZXI6OmNsYXNzZXMvbG9nZ2VyOjpJbnN0YW5jZScpO1xuY29uc3QgS2V5T2ZQYXNzcG9ydDogdW5pcXVlIHN5bWJvbCA9IFN5bWJvbCgnQGNpY2hvbC9sb2dnZXI6OmNsYXNzZXMvbG9nZ2VyOjpQYXNzcG9ydCcpO1xuXG5jbGFzcyBMb2dnZXIge1xuICAgICNsb2dnZXI6IEJhc2VMb2dnZXIgPSB3aW5zdG9uLmNyZWF0ZUxvZ2dlcih7XG4gICAgICAgIGxldmVsczogbG9kYXNoKGhhbmRsZXJzKVxuICAgICAgICAgICAgLm1hcCgoeyBuYW1lLCBsZXZlbCB9KSA9PiBbIG5hbWUsIGxldmVsIF0pXG4gICAgICAgICAgICAuZmlsdGVyKChbICwgbGV2ZWwgXSkgPT4gdHlwZW9mIGxldmVsID09PSAnbnVtYmVyJylcbiAgICAgICAgICAgIC5mcm9tUGFpcnMoKVxuICAgICAgICAgICAgLnZhbHVlKCksXG5cbiAgICAgICAgbGV2ZWw6IChleGVjdXRpb25Nb2RlID09PSBFeGVjdXRpb25Nb2RlLlByb2R1Y3Rpb25Nb2RlID8gJ2h0dHAnIDogJ3ZlcmJvc2UnKSBhcyB0eXBlb2YgTG9nZ2luZ0xldmVsLFxuXG4gICAgICAgIHRyYW5zcG9ydHM6IFtcbiAgICAgICAgICAgIG5ldyBDb25zb2xlVHJhbnNwb3J0KHsgZm9ybWF0OiBmb3JtYXRGb3JDTEkgfSlcbiAgICAgICAgXSxcblxuICAgICAgICBleGl0T25FcnJvcjogZmFsc2VcbiAgICB9KTtcblxuICAgICNtb3JnYW46IE1vcmdhbiA9IG1vcmdhbihmb3JtYXRGb3JNb3JnYW4sIHtcbiAgICAgICAgc3RyZWFtOiBuZXcgUGFzc1Rocm91Z2goeyBvYmplY3RNb2RlOiB0cnVlIH0pLm9uKCdkYXRhJywgKGRhdGE6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgdGhpcy5sb2coJ2h0dHAnLCBkYXRhLnRyaW0oKSk7XG4gICAgICAgIH0pXG4gICAgfSkgYXMgTW9yZ2FuO1xuXG4gICAgcHJpdmF0ZSBjb25zdHJ1Y3RvcihwYXNzcG9ydDogdHlwZW9mIEtleU9mUGFzc3BvcnQpIHtcbiAgICAgICAgaWYgKHBhc3Nwb3J0ICE9PSBLZXlPZlBhc3Nwb3J0KSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoJ0xvZ2dlciBjbGFzcyBjYW5ub3QgYmUgY29uc3RydWN0ZWQgaW4gZGlyZWN0bHknKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgZ2V0IGluc3RhbmNlKCk6IExvZ2dlciB7XG4gICAgICAgIGlmICh0aGlzICE9PSBMb2dnZXIpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBSZWZlcmVuY2VFcnJvcignTG9nZ2VyIGNsYXNzIGlzIG5vdCBpbmhlcml0YWJsZScpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKFJlZmxlY3QuaGFzT3duTWV0YWRhdGEoS2V5T2ZJbnN0YW5jZSwgTG9nZ2VyKSkge1xuICAgICAgICAgICAgcmV0dXJuIFJlZmxlY3QuZ2V0T3duTWV0YWRhdGEoS2V5T2ZJbnN0YW5jZSwgTG9nZ2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGluc3RhbmNlID0gbmV3IExvZ2dlcihLZXlPZlBhc3Nwb3J0KTtcblxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgcmV0dXJuIGluc3RhbmNlO1xuICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgICAgUmVmbGVjdC5kZWZpbmVNZXRhZGF0YShLZXlPZkluc3RhbmNlLCBpbnN0YW5jZSwgTG9nZ2VyKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIExvZ2dpbmcgbWVzc2FnZSB3aXRoIHNwZWNpZmljIGxldmVsLlxuICAgICAqXG4gICAgICogQHBhcmFtIGxldmVsXG4gICAgICogQHBhcmFtIG1lc3NhZ2VcbiAgICAgKiBAcGFyYW0gYXJncyBBZGRpdGlvbmFsIG1ldGFkYXRhLlxuICAgICAqL1xuICAgIHB1YmxpYyBsb2cobGV2ZWw6IExvZ2dpbmdMZXZlbE5hbWUsIG1lc3NhZ2U6IHN0cmluZywgLi4uYXJnczogYW55W10pOiB2b2lkO1xuXG4gICAgLyoqXG4gICAgICogTG9nZ2luZyBIVFRQIEkvTy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSByZXF1ZXN0IE5vZGUuanMgYnVpbHQtaW4gYEluY29taW5nTWVzc2FnZWAgaW5zdGFuY2UgZnJvbSBgaHR0cGAgbW9kdWxlLlxuICAgICAqIEBwYXJhbSByZXNwb25zZSBOb2RlLmpzIGJ1aWx0LWluIGBTZXJ2ZXJSZXNwb25zZWAgaW5zdGFuY2UgZnJvbSBgaHR0cGAgbW9kdWxlLlxuICAgICAqL1xuICAgIHB1YmxpYyBsb2cocmVxdWVzdDogSHR0cFJlcXVlc3QsIHJlc3BvbnNlOiBIdHRwUmVzcG9uc2UpOiBQcm9taXNlPHZvaWQ+O1xuXG4gICAgLyoqXG4gICAgICogTG9nZ2luZyBlcnJvcnMgaW4gZGV0YWlsLlxuICAgICAqXG4gICAgICogQHBhcmFtIGVycm9yXG4gICAgICovXG4gICAgcHVibGljIGxvZyhlcnJvcjogRXJyb3IpOiB2b2lkO1xuXG4gICAgcHVibGljIGxvZyguLi5hcmdzOiBhbnlbXSk6IHZvaWQgfCBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29uc3QgbG9nZ2VyID0gdGhpcy4jbG9nZ2VyO1xuICAgICAgICBjb25zdCBtb3JnYW4gPSB0aGlzLiNtb3JnYW47XG5cbiAgICAgICAgc3dpdGNoICh0cnVlKSB7XG4gICAgICAgIGNhc2UgKGFyZ3MubGVuZ3RoID49IDIgJiYgYXJnc1swXSBpbnN0YW5jZW9mIEh0dHBSZXF1ZXN0ICYmIGFyZ3NbMV0gaW5zdGFuY2VvZiBIdHRwUmVzcG9uc2UpOiB7XG4gICAgICAgICAgICBjb25zdCBbIHJlcXVlc3QsIHJlc3BvbnNlIF0gPSBhcmdzIGFzIFsgSHR0cFJlcXVlc3QsIEh0dHBSZXNwb25zZSBdO1xuXG4gICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5mcm9tQ2FsbGJhY2s8dm9pZD4oY2FsbGJhY2sgPT4gbW9yZ2FuKHJlcXVlc3QsIHJlc3BvbnNlLCBjYWxsYmFjaykpO1xuICAgICAgICB9XG5cbiAgICAgICAgY2FzZSAoYXJncy5sZW5ndGggPj0gMSAmJiBhcmdzWzBdIGluc3RhbmNlb2YgRXJyb3IpOiB7XG4gICAgICAgICAgICBjb25zdCBbIGVycm9yLCAuLi5kYXRhIF0gPSBhcmdzIGFzIFsgRXJyb3IsIC4uLmFueVtdIF07XG5cbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWFyZ3VtZW50XG4gICAgICAgICAgICBsb2dnZXIubG9nKCdlcnJvcicsIGVycm9yLm1lc3NhZ2UsIGVycm9yLCAuLi5kYXRhKTtcblxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuXG4gICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgIGNvbnN0IFsgbGV2ZWwsIG1lc3NhZ2UsIC4uLmRhdGEgXSA9IGFyZ3MgYXMgWyB0eXBlb2YgTG9nZ2luZ0xldmVsLCBzdHJpbmcsIC4uLmFueVtdIF07XG5cbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWFyZ3VtZW50XG4gICAgICAgICAgICBsb2dnZXIubG9nKGxldmVsLCBtZXNzYWdlLCAuLi5kYXRhKTtcblxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBMb2dnZXIuaW5zdGFuY2U7XG4iXSwibmFtZXMiOlsiTG9nZ2luZ0xldmVsIiwiRmF0YWwiLCJFcnJvciIsIldhcm5pbmciLCJOb3RpY2UiLCJJbmZvIiwiSHR0cCIsIlF1ZXJ5IiwiVmVyYm9zZSIsIkRlYnVnIiwiY29sb3JpemVyTWFwIiwiX01hcCIsImNyZWF0ZVNjaGVtZSIsIm9wdGlvbnMiLCJuZXh0SW5kZXgiLCJzaXplIiwiY29sb3JpemVyIiwiY2hhbGsiLCJiZ0hleCIsImJhY2tncm91bmQiLCJoZXgiLCJmb3JlZ3JvdW5kIiwic2V0IiwiQ29sb3JWYWx1ZSIsIldoaXRlIiwiR3JheSIsIkJsYWNrIiwiQ3JpdGljYWwiLCJSZWd1bGFyIiwiQ29sb3JTY2hlbWUiLCJMb3VkIiwiZ2V0Q2hhbGtPZiIsImNvbG9yU2V0IiwiZ2V0IiwiaXNUVFkiLCJwcm9jZXNzIiwic3Rkb3V0IiwiaXNOb3RPbkNMSSIsImRlY29yYXRlTGFiZWwiLCJsYWJlbCIsInNjaGVtZSIsImRlY29yYXRlZExhYmVsIiwiYm9sZCIsInJvb3RQYXRoIiwiY3dkIiwiY29uanVuY3Rpb24iLCJibHVlIiwic3BsYXQiLCJfU3ltYm9sJGZvciIsIm5hbWUiLCJsZXZlbCIsIm1hcExvY2F0aW9uT2ZFcnJvclRocm93biIsImZpbGVuYW1lIiwidGFyZ2V0IiwicGF0aCIsInJlbGF0aXZlIiwiX3N0YXJ0c1dpdGhJbnN0YW5jZVByb3BlcnR5IiwiY2FsbCIsImdyYXkiLCJyZXBsYWNlIiwibWF0Y2hlcyIsIm1vZHVsZU5hbWUiLCJ0cmFpbGluZyIsInNlcCIsInVuZGVybGluZSIsImRpcm5hbWUiLCJiYXNlbmFtZSIsImhhbmRsZSIsImRhdGEiLCJfY29udGV4dCIsIl9jb250ZXh0MiIsIl9jb250ZXh0MyIsImVycm9yIiwidW5kZWZpbmVkIiwibWVzc2FnZSIsInN0YWNrIiwicmF3U3RhY2siLCJfbWFwSW5zdGFuY2VQcm9wZXJ0eSIsIl9zbGljZUluc3RhbmNlUHJvcGVydHkiLCJsZW5ndGgiLCJzcGxpdCIsImxpbmUiLCJpc0Fic29sdXRlIiwiY29udGV4dE5hbWUiLCJyYXdMb2NhdGlvbiIsImxvY2F0aW9uIiwiY29sdW1uIiwidmVyc2lvbiIsImpvaW4iLCJwYXlsb2FkIiwiaGlnaGxpZ2h0IiwibGFuZ3VhZ2UiLCJoYW5kbGVycyIsIkZhdGFsSGFuZGxlciIsIkVycm9ySGFuZGxlciIsIldhcm5pbmdIYW5kbGVyIiwiTm90aWNlSGFuZGxlciIsIkluZm9IYW5kbGVyIiwiSHR0cEhhbmRsZXIiLCJRdWVyeUhhbmRsZXIiLCJWZXJib3NlSGFuZGxlciIsIkRlYnVnSGFuZGxlciIsImZvcm1hdCIsInByaW50ZiIsInRpbWVzdGFtcCIsIkRhdGVUaW1lIiwibm93IiwidG9JU08iLCJpbmNsdWRlT2Zmc2V0IiwiaGFuZGxlciIsIl9maW5kSW5zdGFuY2VQcm9wZXJ0eSIsImZhbGxiYWNrIiwicGVyZm9ybUhhbmRsZSIsImRlZmF1bHQiLCJfUmVmbGVjdCRhcHBseSIsImV4dHJhRmluZ2VycHJpbnQiLCJ0cmFuc2FjdGlvbklkIiwiclRyYWNlciIsImlkIiwiRXhlY3V0aW9uTW9kZSIsIkRldmVsb3BtZW50TW9kZSIsIlByb2R1Y3Rpb25Nb2RlIiwiQ2x1c3RlcmluZ01vZGUiLCJNYXN0ZXJQcm9jZXNzIiwiV29ya2VyUHJvY2VzcyIsImV4ZWN1dGlvbk1vZGUiLCJlbnZpcm9ubWVudHMiLCJOT0RFX0VOViIsImNsdXN0ZXIiLCJpc1ByaW1hcnkiLCJpc01hc3RlciIsImRlY29yYXRlU3RhdHVzQ29kZSIsInN0YXR1c0NvZGUiLCJncm91cE9mQ29kZSIsIk1hdGgiLCJmbG9vciIsIk51bWJlciIsImJhc2VNZXNzYWdlIiwiU1RBVFVTX0NPREVTIiwiZ3JlZW4iLCJtYWdlbnRhIiwicmVkIiwiZm9ybWF0Rm9yTW9yZ2FuIiwidG9rZW5zIiwicmVxdWVzdCIsInJlc3BvbnNlIiwiXyIsInRva2VuIiwic3ViQXJncyIsIm1ldGhvZCIsIlVSTCIsImh0dHBWZXJzaW9uIiwiY29udGVudExlbmd0aCIsInJlc3BvbnNlVGltZSIsIiRtZXRob2QiLCIkdmVyc2lvbiIsInJnYiIsIiRzdGF0dXNDb2RlIiwiJGNvbnRlbnRMZW5ndGgiLCJwcmV0dHlCeXRlcyIsIiRyZXNwb25zZVRpbWUiLCJwcmV0dHlNcyIsIm1ldGFkYXRhIiwibW9yZ2FuIiwiY29tYmluZWQiLCJDb25zb2xlIiwiQ29uc29sZVRyYW5zcG9ydCIsIndpbnN0b24iLCJ0cmFuc3BvcnRzIiwiS2V5T2ZJbnN0YW5jZSIsIl9TeW1ib2wiLCJLZXlPZlBhc3Nwb3J0IiwiTG9nZ2VyIiwiY3JlYXRlTG9nZ2VyIiwibGV2ZWxzIiwiX2ZpbHRlckluc3RhbmNlUHJvcGVydHkiLCJsb2Rhc2giLCJmcm9tUGFpcnMiLCJ2YWx1ZSIsImZvcm1hdEZvckNMSSIsImV4aXRPbkVycm9yIiwic3RyZWFtIiwiUGFzc1Rocm91Z2giLCJvYmplY3RNb2RlIiwib24iLCJsb2ciLCJfdHJpbUluc3RhbmNlUHJvcGVydHkiLCJjb25zdHJ1Y3RvciIsInBhc3Nwb3J0IiwiUmVmZXJlbmNlRXJyb3IiLCJpbnN0YW5jZSIsIlJlZmxlY3QiLCJoYXNPd25NZXRhZGF0YSIsImdldE93bk1ldGFkYXRhIiwiZGVmaW5lTWV0YWRhdGEiLCJhcmdzIiwibG9nZ2VyIiwiSHR0cFJlcXVlc3QiLCJIdHRwUmVzcG9uc2UiLCJQcm9taXNlIiwiZnJvbUNhbGxiYWNrIiwiY2FsbGJhY2siXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsTUFBTUEsWUFBWSxHQUFHO0FBQ2pCO0FBQ0FDLEVBQUFBLEtBQUssRUFBRSxDQUFDO0FBQ1JDLEVBQUFBLEtBQUssRUFBRSxDQUFDO0FBRVI7QUFDQUMsRUFBQUEsT0FBTyxFQUFFLENBQUM7QUFFVjtBQUNBQyxFQUFBQSxNQUFNLEVBQUUsQ0FBQztBQUNUQyxFQUFBQSxJQUFJLEVBQUUsQ0FBQztBQUVQO0FBQ0FDLEVBQUFBLElBQUksRUFBRSxDQUFDO0FBQ1BDLEVBQUFBLEtBQUssRUFBRSxDQUFDO0FBRVI7QUFDQUMsRUFBQUEsT0FBTyxFQUFFLENBQUM7QUFDVkMsRUFBQUEsS0FBSyxFQUFFLENBQUE7QUFDWCxDQUFVOztBQ2RWO0FBQ0EsTUFBTUMsWUFBWSxHQUFHLElBQUFDLElBQUEsRUFBZ0MsQ0FBQTs7QUFFckQ7QUFDQSxTQUFTQyxZQUFZQSxDQUFDQyxPQUEyRCxFQUFVO0FBQ3ZGLEVBQUEsTUFBTUMsU0FBUyxHQUFHSixZQUFZLENBQUNLLElBQUksQ0FBQTtBQUNuQyxFQUFBLE1BQU1DLFNBQVMsR0FBR0MsS0FBSyxDQUFDQyxLQUFLLENBQUNMLE9BQU8sQ0FBQ00sVUFBVSxDQUFDLENBQUNDLEdBQUcsQ0FBQ1AsT0FBTyxDQUFDUSxVQUFVLENBQUMsQ0FBQTtBQUV6RVgsRUFBQUEsWUFBWSxDQUFDWSxHQUFHLENBQUNSLFNBQVMsRUFBRUUsU0FBUyxDQUFDLENBQUE7QUFFdEMsRUFBQSxPQUFPRixTQUFTLENBQUE7QUFDcEIsQ0FBQTs7QUFFQTtBQUNBLE1BQU1TLFVBQVUsR0FBRztBQUNmO0FBQ0FDLEVBQUFBLEtBQUssRUFBRSxTQUFTO0FBQ2hCQyxFQUFBQSxJQUFJLEVBQUUsU0FBUztBQUNmQyxFQUFBQSxLQUFLLEVBQUUsU0FBUztBQUVoQjtBQUNBQyxFQUFBQSxRQUFRLEVBQUUsU0FBUztBQUNuQnhCLEVBQUFBLE9BQU8sRUFBRSxTQUFTO0FBQ2xCeUIsRUFBQUEsT0FBTyxFQUFFLFNBQVM7QUFDbEJ0QixFQUFBQSxJQUFJLEVBQUUsU0FBUztBQUNmQyxFQUFBQSxLQUFLLEVBQUUsU0FBQTtBQUNYLENBQVUsQ0FBQTtBQUlWLE1BQU1zQixXQUFXLEdBQUc7RUFDaEJGLFFBQVEsRUFBRWYsWUFBWSxDQUFDO0lBQ25CTyxVQUFVLEVBQUVJLFVBQVUsQ0FBQ0ksUUFBUTtJQUMvQk4sVUFBVSxFQUFFRSxVQUFVLENBQUNHLEtBQUFBO0FBQzNCLEdBQUMsQ0FBQztFQUVGdkIsT0FBTyxFQUFFUyxZQUFZLENBQUM7SUFDbEJPLFVBQVUsRUFBRUksVUFBVSxDQUFDcEIsT0FBTztJQUM5QmtCLFVBQVUsRUFBRUUsVUFBVSxDQUFDRyxLQUFBQTtBQUMzQixHQUFDLENBQUM7RUFFRkUsT0FBTyxFQUFFaEIsWUFBWSxDQUFDO0lBQ2xCTyxVQUFVLEVBQUVJLFVBQVUsQ0FBQ0ssT0FBTztJQUM5QlAsVUFBVSxFQUFFRSxVQUFVLENBQUNDLEtBQUFBO0FBQzNCLEdBQUMsQ0FBQztFQUVGbEIsSUFBSSxFQUFFTSxZQUFZLENBQUM7SUFDZk8sVUFBVSxFQUFFSSxVQUFVLENBQUNqQixJQUFJO0lBQzNCZSxVQUFVLEVBQUVFLFVBQVUsQ0FBQ0csS0FBQUE7QUFDM0IsR0FBQyxDQUFDO0VBRUZuQixLQUFLLEVBQUVLLFlBQVksQ0FBQztJQUNoQk8sVUFBVSxFQUFFSSxVQUFVLENBQUNoQixLQUFLO0lBQzVCYyxVQUFVLEVBQUVFLFVBQVUsQ0FBQ0csS0FBQUE7QUFDM0IsR0FBQyxDQUFDO0VBRUZJLElBQUksRUFBRWxCLFlBQVksQ0FBQztJQUNmTyxVQUFVLEVBQUVJLFVBQVUsQ0FBQ0csS0FBSztJQUM1QkwsVUFBVSxFQUFFRSxVQUFVLENBQUNFLElBQUFBO0dBQzFCLENBQUE7QUFDTCxDQUFVLENBQUE7QUFJSCxTQUFTTSxVQUFVQSxDQUFDQyxRQUFxQixFQUFpQjtBQUM3RCxFQUFBLE9BQU90QixZQUFZLENBQUN1QixHQUFHLENBQUNELFFBQVEsQ0FBQyxJQUFJZixLQUFLLENBQUE7QUFDOUMsQ0FBQTs7QUFJQTs7QUMzRUE7O0FBTUE7QUFDQSxNQUFNO0FBQUVpQixFQUFBQSxLQUFBQTtBQUFNLENBQUMsR0FBR0MsT0FBTyxDQUFDQyxNQUFNLENBQUE7QUFDaEMsTUFBTUMsVUFBVSxHQUFHLENBQUNILEtBQUssQ0FBQTtBQUVWLFNBQVNJLGFBQWFBLENBQW1CQyxLQUFRLEVBQUVDLE1BQW1CLEVBQUs7QUFDdEYsRUFBQSxJQUFJSCxVQUFVLEVBQUU7QUFDWixJQUFBLE9BQU9FLEtBQUssQ0FBQTtBQUNoQixHQUFBO0FBRUEsRUFBQSxNQUFNdEIsS0FBSyxHQUFHYyxVQUFVLENBQUNTLE1BQU0sQ0FBQyxDQUFBO0VBQ2hDLE1BQU1DLGNBQWMsR0FBR3hCLEtBQUssQ0FBQ3lCLElBQUksQ0FBQyxDQUFBLENBQUEsRUFBSUgsS0FBSyxDQUFBLENBQUEsQ0FBRyxDQUFDLENBQUE7QUFFL0MsRUFBQSxPQUFPRSxjQUFjLENBQUE7QUFDekI7O0FDUEE7O0FBSUE7QUFDQSxNQUFNRSxRQUFRLEdBQUdSLE9BQU8sQ0FBQ1MsR0FBRyxFQUFFLENBQUE7QUFDOUIsTUFBTUMsV0FBVyxHQUFHLENBQUk1QixDQUFBQSxFQUFBQSxLQUFLLENBQUM2QixJQUFJLENBQUMsSUFBSSxDQUFDLENBQUcsQ0FBQSxDQUFBLENBQUE7QUFDM0MsTUFBTUMsS0FBb0IsR0FBR0MsV0FBQSxDQUFXLE9BQU8sQ0FBQyxDQUFBOztBQUVoRDtBQUNPLE1BQU1DLE1BQUksR0FBRyxPQUFPLENBQUE7QUFDcEIsTUFBTUMsT0FBSyxHQUFHbEQsWUFBWSxDQUFDRSxLQUFLLENBQUE7QUFDaEMsTUFBTXFDLE9BQUssR0FBR0QsYUFBYSxDQUFDLE9BQU8sRUFBRVQsV0FBVyxDQUFDRixRQUFRLENBQUMsQ0FBQTtBQUVqRSxTQUFTd0Isd0JBQXdCQSxDQUFDQyxRQUFnQixFQUFVO0VBQ3hELElBQUlDLE1BQU0sR0FBR0MsSUFBSSxDQUFDQyxRQUFRLENBQUNaLFFBQVEsRUFBRVMsUUFBUSxDQUFDLENBQUE7RUFFOUMsSUFBSUksMkJBQUEsQ0FBQUgsTUFBTSxDQUFBSSxDQUFBQSxJQUFBLENBQU5KLE1BQU0sRUFBWSxjQUFjLENBQUMsRUFBRTtBQUNuQ0EsSUFBQUEsTUFBTSxHQUFHcEMsS0FBSyxDQUFDeUMsSUFBSSxDQUFDTCxNQUFNLENBQUMsQ0FBQ00sT0FBTyxDQUMvQixnQ0FBZ0MsRUFDaEMsQ0FBQ0MsT0FBTyxFQUFFQyxVQUFrQixFQUFFQyxRQUFnQixLQUFLLENBQUEsWUFBQSxFQUFlUixJQUFJLENBQUNTLEdBQUcsQ0FBRzlDLEVBQUFBLEtBQUssQ0FBQ3lCLElBQUksQ0FBQ3NCLFNBQVMsQ0FBQ0gsVUFBVSxDQUFDLENBQUEsRUFBRzVDLEtBQUssQ0FBQ3lDLElBQUksQ0FBQ0ksUUFBUSxDQUFDLEVBQUU7S0FDekksQ0FBQTtBQUNMLEdBQUMsTUFBTTtBQUNIVCxJQUFBQSxNQUFNLEdBQUcsQ0FBQSxFQUFHcEMsS0FBSyxDQUFDeUMsSUFBSSxDQUFDSixJQUFJLENBQUNXLE9BQU8sQ0FBQ1osTUFBTSxDQUFDLEdBQUdDLElBQUksQ0FBQ1MsR0FBRyxDQUFDLENBQUc5QyxFQUFBQSxLQUFLLENBQUN5QixJQUFJLENBQUNzQixTQUFTLENBQUNWLElBQUksQ0FBQ1ksUUFBUSxDQUFDYixNQUFNLENBQUMsQ0FBQyxDQUFFLENBQUEsQ0FBQTtBQUMzRyxHQUFBO0FBRUEsRUFBQSxPQUFPQSxNQUFNLENBQUE7QUFDakIsQ0FBQTtBQUVlLFNBQVNjLFFBQU1BLENBQUNDLElBQWlCLEVBQTJCO0FBQUEsRUFBQSxJQUFBQyxRQUFBLEVBQUFDLFNBQUEsRUFBQUMsU0FBQSxDQUFBO0VBQ3ZFLE1BQU07QUFBRSxJQUFBLENBQUN4QixLQUFLLEdBQUcsQ0FBRXlCLEtBQUssQ0FBRSxHQUFHLEVBQUE7QUFBRyxHQUFDLEdBQUdKLElBQVcsQ0FBQTtBQUUvQyxFQUFBLElBQUksRUFBRUksS0FBSyxZQUFZdEUsS0FBSyxDQUFDLEVBQUU7QUFDM0IsSUFBQSxPQUFPdUUsU0FBUyxDQUFBO0FBQ3BCLEdBQUE7RUFFQSxNQUFNO0lBQUV4QixJQUFJO0lBQUV5QixPQUFPO0lBQUVDLEtBQUssRUFBRUMsUUFBUSxHQUFHLEVBQUE7QUFBRyxHQUFDLEdBQUdKLEtBQUssQ0FBQTtFQUVyRCxNQUFNRyxLQUFLLEdBQUdFLG9CQUFBLENBQUFSLFFBQUEsR0FBQVEsb0JBQUEsQ0FBQVAsU0FBQSxHQUFBTyxvQkFBQSxDQUFBTixTQUFBLEdBQUFPLHNCQUFBLENBQUFGLFFBQVEsQ0FBQW5CLENBQUFBLElBQUEsQ0FBUm1CLFFBQVEsRUFDWDNCLElBQUksQ0FBQzhCLE1BQU0sR0FBR0wsT0FBTyxDQUFDSyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQ3ZDQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUEsQ0FBQXZCLElBQUEsQ0FBQWMsU0FBQSxFQUNQVSxJQUFJLElBQUlBLElBQUksQ0FBQ3RCLE9BQU8sQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQSxDQUFBRixJQUFBLENBQUFhLFNBQUEsRUFDckNXLElBQUksSUFBSzNCLElBQUksQ0FBQzRCLFVBQVUsQ0FBQ0QsSUFBSSxDQUFDLEdBQUcsQ0FBY3BDLFdBQUFBLEVBQUFBLFdBQVcsQ0FBR00sRUFBQUEsd0JBQXdCLENBQUM4QixJQUFJLENBQUMsQ0FBRSxDQUFBLEdBQUdBLElBQUssQ0FBQyxDQUFBLENBQUF4QixJQUFBLENBQUFZLFFBQUEsRUFDdEdZLElBQUksSUFBSUEsSUFBSSxDQUFDdEIsT0FBTyxDQUFDLGlCQUFpQixFQUFFLENBQUNDLE9BQU8sRUFBRXVCLFdBQW1CLEVBQUVDLFdBQW1CLEtBQUs7QUFDaEcsSUFBQSxJQUFJQyxRQUFRLENBQUE7SUFFWixJQUFJRCxXQUFXLEtBQUssYUFBYSxFQUFFO0FBQy9CQyxNQUFBQSxRQUFRLEdBQUdwRSxLQUFLLENBQUN5QyxJQUFJLENBQUMwQixXQUFXLENBQUMsQ0FBQTtBQUN0QyxLQUFDLE1BQU07QUFDSCxNQUFBLE1BQU0sQ0FBRWhDLFFBQVEsRUFBRTZCLElBQUksRUFBRUssTUFBTSxDQUFFLEdBQUdGLFdBQVcsQ0FBQ0osS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFBO0FBRXpELE1BQUEsSUFBSTFCLElBQUksQ0FBQzRCLFVBQVUsQ0FBQzlCLFFBQVEsQ0FBQyxFQUFFO0FBQzNCLFFBQUEsTUFBTUMsTUFBTSxHQUFHRix3QkFBd0IsQ0FBQ0csSUFBSSxDQUFDQyxRQUFRLENBQUNaLFFBQVEsRUFBRVMsUUFBUSxDQUFDLENBQUMsQ0FBQTtRQUMxRSxNQUFNVSxRQUFRLEdBQUc3QyxLQUFLLENBQUN5QyxJQUFJLENBQUMsQ0FBQSxDQUFBLEVBQUl1QixJQUFJLENBQUEsQ0FBQSxFQUFJSyxNQUFNLENBQUEsQ0FBRSxDQUFDLENBQUE7UUFFakRELFFBQVEsR0FBR2hDLE1BQU0sR0FBR1MsUUFBUSxDQUFBO0FBQ2hDLE9BQUMsTUFBTTtRQUNIdUIsUUFBUSxHQUFHcEUsS0FBSyxDQUFDeUMsSUFBSSxDQUFDLENBQXNCekMsbUJBQUFBLEVBQUFBLEtBQUssQ0FBQ3lCLElBQUksQ0FBQ3NCLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBY3VCLFdBQUFBLEVBQUFBLE9BQU8sQ0FBUW5DLEtBQUFBLEVBQUFBLFFBQVEsS0FBSzZCLElBQUksQ0FBQSxDQUFFLENBQUMsQ0FBQztBQUNoSSxPQUFBO0FBQ0osS0FBQTtBQUVBLElBQUEsT0FBTyxHQUFHRSxXQUFXLENBQUEsRUFBR3RDLFdBQVcsQ0FBQSxFQUFHd0MsUUFBUSxDQUFFLENBQUEsQ0FBQTtBQUNwRCxHQUFDLENBQUMsQ0FBQyxDQUNGRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7RUFFZixNQUFNakQsS0FBSyxHQUFHRCxhQUFhLENBQUNXLElBQUksRUFBRXBCLFdBQVcsQ0FBQ0YsUUFBUSxDQUFDLENBQUE7QUFDdkQsRUFBQSxNQUFNOEQsT0FBTyxHQUFHLENBQUEsRUFBR2YsT0FBTyxDQUFBLElBQUEsRUFBT0MsS0FBSyxDQUFJLEVBQUEsQ0FBQSxDQUFBO0VBRTFDLE9BQU87SUFBRXBDLEtBQUs7QUFBRWtELElBQUFBLE9BQUFBO0dBQVMsQ0FBQTtBQUM3Qjs7Ozs7Ozs7OztBQ2pGQTs7QUFLQTtBQUNPLE1BQU14QyxNQUFJLEdBQUcsT0FBTyxDQUFBO0FBQ3BCLE1BQU1DLE9BQUssR0FBR2xELFlBQVksQ0FBQ0MsS0FBSyxDQUFBO0FBQ2hDLE1BQU1zQyxPQUFLLEdBQUdELGFBQWEsQ0FBQyxPQUFPLEVBQUVULFdBQVcsQ0FBQ0YsUUFBUSxDQUFDOzs7Ozs7Ozs7O0FDUmpFOztBQUtBO0FBQ08sTUFBTXNCLE1BQUksR0FBRyxTQUFTLENBQUE7QUFDdEIsTUFBTUMsT0FBSyxHQUFHbEQsWUFBWSxDQUFDRyxPQUFPLENBQUE7QUFDbEMsTUFBTW9DLE9BQUssR0FBR0QsYUFBYSxDQUFDLFNBQVMsRUFBRVQsV0FBVyxDQUFDMUIsT0FBTyxDQUFDLENBQUE7QUFFbEUsY0FBZSxJQUFJOzs7Ozs7Ozs7O0FDVm5COztBQUtBO0FBQ08sTUFBTThDLE1BQUksR0FBRyxRQUFRLENBQUE7QUFDckIsTUFBTUMsT0FBSyxHQUFHbEQsWUFBWSxDQUFDSSxNQUFNLENBQUE7QUFDakMsTUFBTW1DLE9BQUssR0FBR0QsYUFBYSxDQUFDLFFBQVEsRUFBRVQsV0FBVyxDQUFDRCxPQUFPLENBQUMsQ0FBQTtBQUVqRSxhQUFlLElBQUk7Ozs7Ozs7Ozs7QUNWbkI7O0FBS0E7QUFDTyxNQUFNcUIsTUFBSSxHQUFHLE1BQU0sQ0FBQTtBQUNuQixNQUFNQyxPQUFLLEdBQUdsRCxZQUFZLENBQUNLLElBQUksQ0FBQTtBQUMvQixNQUFNa0MsT0FBSyxHQUFHRCxhQUFhLENBQUMsTUFBTSxFQUFFVCxXQUFXLENBQUNELE9BQU8sQ0FBQyxDQUFBO0FBRS9ELFdBQWUsSUFBSTs7Ozs7Ozs7OztBQ1ZuQjs7QUFLQTtBQUNPLE1BQU1xQixNQUFJLEdBQUcsTUFBTSxDQUFBO0FBQ25CLE1BQU1DLE9BQUssR0FBR2xELFlBQVksQ0FBQ00sSUFBSSxDQUFBO0FBQy9CLE1BQU1pQyxPQUFLLEdBQUdELGFBQWEsQ0FBQyxNQUFNLEVBQUVULFdBQVcsQ0FBQ3ZCLElBQUksQ0FBQyxDQUFBO0FBRTVELFdBQWUsSUFBSTs7Ozs7Ozs7OztBQ1ZuQjs7QUFRQTs7QUFJQTtBQUNPLE1BQU0yQyxNQUFJLEdBQUcsT0FBTyxDQUFBO0FBQ3BCLE1BQU1DLE9BQUssR0FBR2xELFlBQVksQ0FBQ08sS0FBSyxDQUFBO0FBQ2hDLE1BQU1nQyxPQUFLLEdBQUdELGFBQWEsQ0FBQyxPQUFPLEVBQUVULFdBQVcsQ0FBQ3RCLEtBQUssQ0FBQyxDQUFBO0FBRS9DLFNBQVM0RCxNQUFNQSxDQUFDQyxJQUFpQixFQUEyQjtBQUN2RSxFQUFBLE1BQU1xQixPQUFPLEdBQUdDLFNBQVMsQ0FBQ3RCLElBQUksQ0FBQ00sT0FBTyxFQUFFO0FBQUVpQixJQUFBQSxRQUFRLEVBQUUsS0FBQTtBQUFNLEdBQUMsQ0FBQyxDQUFBO0VBRTVELE9BQU87V0FBRXBELE9BQUs7QUFBRWtELElBQUFBLE9BQUFBO0dBQVMsQ0FBQTtBQUM3Qjs7Ozs7Ozs7OztBQ3JCQTs7QUFLQTtBQUNPLE1BQU14QyxNQUFJLEdBQUcsU0FBUyxDQUFBO0FBQ3RCLE1BQU1DLE9BQUssR0FBR2xELFlBQVksQ0FBQ1EsT0FBTyxDQUFBO0FBQ2xDLE1BQU0rQixPQUFLLEdBQUdELGFBQWEsQ0FBQyxTQUFTLEVBQUVULFdBQVcsQ0FBQ0MsSUFBSSxDQUFDLENBQUE7QUFFL0QsY0FBZSxJQUFJOzs7Ozs7Ozs7O0FDVm5COztBQUtBO0FBQ08sTUFBTW1CLElBQUksR0FBRyxPQUFPLENBQUE7QUFDcEIsTUFBTUMsS0FBSyxHQUFHbEQsWUFBWSxDQUFDUyxLQUFLLENBQUE7QUFDaEMsTUFBTThCLEtBQUssR0FBR0QsYUFBYSxDQUFDLE9BQU8sRUFBRVQsV0FBVyxDQUFDQyxJQUFJLENBQUMsQ0FBQTtBQUU3RCxZQUFlLElBQUk7Ozs7Ozs7Ozs7QUNWbkI7QUFXQSxNQUFNOEQsUUFBUSxHQUFHLENBQ2JDLFlBQVksRUFDWkMsWUFBWSxFQUNaQyxjQUFjLEVBQ2RDLGFBQWEsRUFDYkMsV0FBVyxFQUNYQyxXQUFXLEVBQ1hDLFlBQVksRUFDWkMsY0FBYyxFQUNkQyxZQUFZLENBQ2Y7O0FDVEQsbUJBQWVDLE1BQU0sQ0FBQ0MsTUFBTSxDQUFDbkMsSUFBSSxJQUFJO0FBQ2pDLEVBQUEsTUFBTW9DLFNBQVMsR0FBR3ZGLEtBQUssQ0FBQ3lDLElBQUksQ0FBQytDLFFBQVEsQ0FBQ0MsR0FBRyxFQUFFLENBQUNDLEtBQUssQ0FBQztBQUFFQyxJQUFBQSxhQUFhLEVBQUUsSUFBQTtBQUFLLEdBQUMsQ0FBQyxDQUFDLENBQUE7RUFDM0UsTUFBTUMsT0FBTyxHQUFHQyxxQkFBQSxDQUFBbEIsUUFBUSxFQUFBbkMsSUFBQSxDQUFSbUMsUUFBUSxFQUFNLENBQUM7QUFBRTNDLElBQUFBLElBQUFBO0FBQUssR0FBQyxLQUFLQSxJQUFJLEtBQUttQixJQUFJLENBQUNsQixLQUFLLENBQUMsQ0FBQTtBQUNoRSxFQUFBLE1BQU02RCxRQUFRLEdBQUc7SUFBRXhFLEtBQUssRUFBRXNFLE9BQU8sRUFBRXRFLEtBQUs7SUFBRWtELE9BQU8sRUFBRXJCLElBQUksQ0FBQ00sT0FBQUE7R0FBUyxDQUFBO0VBQ2pFLE1BQU1zQyxhQUFhLEdBQUdILE9BQU8sRUFBRUksT0FBTyxLQUFLLE1BQXVCRixRQUFRLENBQUMsQ0FBQTs7QUFFM0U7RUFDQSxNQUFNO0lBQUV4RSxLQUFLO0FBQUVrRCxJQUFBQSxPQUFBQTtBQUFRLEdBQUMsR0FBR3lCLGNBQUEsQ0FBY0YsYUFBYSxFQUFFdkMsU0FBUyxFQUFFLENBQUVMLElBQUksQ0FBRSxDQUFDLElBQUkyQyxRQUFRLENBQUE7QUFFeEYsRUFBQSxJQUFJSSxnQkFBb0MsQ0FBQTtBQUV4QyxFQUFBLElBQUlOLE9BQU8sRUFBRTNELEtBQUssS0FBS2xELFlBQVksQ0FBQ00sSUFBSSxFQUFFO0FBQ3RDNkcsSUFBQUEsZ0JBQWdCLEdBQUcvQyxJQUFJLENBQUNnRCxhQUFhLEdBQy9CLHFCQUFxQmhELElBQUksQ0FBQ2dELGFBQWEsQ0FBQSxDQUFBLENBQWEsR0FDcEQsQ0FBaUJDLGNBQUFBLEVBQUFBLE9BQU8sQ0FBQ0MsRUFBRSxFQUFFLENBQWEsQ0FBQSxDQUFBLENBQUE7QUFDcEQsR0FBQTtBQUVBLEVBQUEsT0FBTyxDQUFHL0UsRUFBQUEsS0FBSyxDQUFjaUUsQ0FBQUEsRUFBQUEsU0FBUyxHQUFHVyxnQkFBZ0IsR0FBRyxDQUFJQSxDQUFBQSxFQUFBQSxnQkFBZ0IsQ0FBRSxDQUFBLEdBQUcsRUFBRSxDQUFBLEVBQUEsRUFBSzFCLE9BQU8sQ0FBWSxDQUFBLENBQUE7QUFDbkgsQ0FBQyxDQUFDOztBQzlCRjs7QUFLQTtBQUNPLE1BQU04QixhQUFhLEdBQUc7QUFDekJDLEVBQUFBLGVBQWUsRUFBRSxhQUFhO0FBQzlCQyxFQUFBQSxjQUFjLEVBQUUsWUFBQTtBQUNwQixDQUFVLENBQUE7QUFFSCxNQUFNQyxjQUFjLEdBQUc7QUFDMUJDLEVBQUFBLGFBQWEsRUFBRSxDQUFDO0FBQ2hCQyxFQUFBQSxhQUFhLEVBQUUsQ0FBQTtBQUNuQixDQUFVLENBQUE7QUFXVjtBQUNPLE1BQU1DLGFBQWEsR0FBR0MsR0FBWSxDQUFDQyxRQUFRLElBQXFCUixhQUFhLENBQUNDLGVBQWUsQ0FBQTtBQUV0RFEsT0FBTyxDQUFDQyxTQUFTLElBQUlELE9BQU8sQ0FBQ0UsUUFBUSxHQUM3RVIsY0FBYyxDQUFDQyxhQUFhLEdBQzVCRCxjQUFjLENBQUNFOztBQzlCckI7O0FBZ0JBOztBQWFBO0FBQ0EsU0FBU08sa0JBQWtCQSxDQUFDQyxVQUFxQyxFQUFVO0FBQ3ZFLEVBQUEsTUFBTUMsV0FBVyxHQUFHQyxJQUFJLENBQUNDLEtBQUssQ0FBQ0MsTUFBTSxDQUFDSixVQUFVLENBQUMsR0FBRyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUE7RUFDOUQsTUFBTUssV0FBVyxHQUFHLENBQUdMLEVBQUFBLFVBQVUsSUFBSU0sWUFBWSxDQUFDTixVQUFVLENBQUMsQ0FBWSxDQUFBLENBQUE7QUFFekUsRUFBQSxRQUFRQyxXQUFXO0FBQ25CLElBQUEsS0FBSyxHQUFHO0FBQUUsTUFBQTtBQUNOLFFBQUEsT0FBT3BILEtBQUssQ0FBQzBILEtBQUssQ0FBQ0YsV0FBVyxDQUFDLENBQUE7QUFDbkMsT0FBQTtBQUVBLElBQUEsS0FBSyxHQUFHO0FBQUUsTUFBQTtBQUNOLFFBQUEsT0FBT3hILEtBQUssQ0FBQzJILE9BQU8sQ0FBQ0gsV0FBVyxDQUFDLENBQUE7QUFDckMsT0FBQTtBQUNBLElBQUEsS0FBSyxHQUFHLENBQUE7QUFDUixJQUFBLEtBQUssR0FBRztBQUFFLE1BQUE7QUFDTixRQUFBLE9BQU94SCxLQUFLLENBQUM0SCxHQUFHLENBQUNKLFdBQVcsQ0FBQyxDQUFBO0FBQ2pDLE9BQUE7QUFFQSxJQUFBO0FBQVMsTUFBQTtBQUNMLFFBQUEsT0FBT3hILEtBQUssQ0FBQ3lDLElBQUksQ0FBQytFLFdBQVcsQ0FBQyxDQUFBO0FBQ2xDLE9BQUE7QUFDQSxHQUFBO0FBQ0osQ0FBQTtBQUVBLFNBQVNLLGVBQWVBLENBQUNDLE1BQVcsRUFBRUMsT0FBb0IsRUFBRUMsUUFBc0IsRUFBVTtBQUN4RixFQUFBLFNBQVNDLENBQUNBLENBQUNDLEtBQWEsRUFBRSxHQUFHQyxPQUFjLEVBQWlCO0FBQ3hEO0lBQ0EsT0FBUUwsTUFBTSxDQUFrQkksS0FBSyxDQUFDLENBQUNILE9BQU8sRUFBRUMsUUFBUSxFQUFFLEdBQUdHLE9BQU8sQ0FBQyxDQUFBO0FBQ3pFLEdBQUE7O0FBRUE7QUFDQSxFQUFBLE1BQU1DLE1BQU0sR0FBR0gsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFBO0FBQzFCLEVBQUEsTUFBTUksR0FBRyxHQUFHSixDQUFDLENBQUMsS0FBSyxDQUFDLENBQUE7QUFDcEIsRUFBQSxNQUFNSyxXQUFXLEdBQUcsQ0FBQSxLQUFBLEVBQVFMLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBWSxDQUFBLENBQUE7RUFDekQsTUFBTWQsVUFBVSxHQUFHSSxNQUFNLENBQUNVLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFBO0FBQ3RDLEVBQUEsTUFBTU0sYUFBYSxHQUFHaEIsTUFBTSxDQUFDVSxDQUFDLENBQUMsS0FBSyxFQUFFLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQTtFQUM5RCxNQUFNTyxZQUFZLEdBQUdqQixNQUFNLENBQUNVLENBQUMsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBOztBQUVyRDtBQUNBLEVBQUEsTUFBTVEsT0FBTyxHQUFHekksS0FBSyxDQUFDeUIsSUFBSSxDQUFDMkcsTUFBTSxDQUFDLENBQUE7QUFDbEMsRUFBQSxNQUFNTSxRQUFRLEdBQUcxSSxLQUFLLENBQUMySSxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQ0wsV0FBVyxDQUFDLENBQUE7QUFDckQsRUFBQSxNQUFNTSxXQUFXLEdBQUcxQixrQkFBa0IsQ0FBQ0MsVUFBVSxDQUFDLENBQUE7RUFDbEQsTUFBTTBCLGNBQWMsR0FBR04sYUFBYSxJQUFJLENBQUMsR0FBR08sV0FBVyxDQUFDUCxhQUFhLENBQUMsR0FBRyxLQUFLLENBQUE7RUFDOUUsTUFBTVEsYUFBYSxHQUFHUCxZQUFZLElBQUksQ0FBQyxHQUFHUSxRQUFRLENBQUNSLFlBQVksQ0FBQyxHQUFHLEVBQUUsQ0FBQTs7QUFFckU7QUFDQSxFQUFBLE1BQU1TLFFBQVEsR0FBRyxDQUFBLENBQUEsRUFBSUosY0FBYyxDQUFBLEVBQUEsRUFBS0UsYUFBYSxDQUFHLENBQUEsQ0FBQSxDQUFBO0VBRXhELE9BQU8sQ0FDSCxLQUFLTixPQUFPLENBQUEsQ0FBQSxFQUFJSixHQUFHLENBQWNLLENBQUFBLEVBQUFBLFFBQVEsRUFBRSxFQUMzQyxDQUFBLEVBQUEsRUFBS0EsUUFBUSxDQUFJRSxDQUFBQSxFQUFBQSxXQUFXLElBQUlLLFFBQVEsQ0FBQSxDQUFFLENBQzdDLENBQUMxRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7QUFDaEIsQ0FBQTtBQUVBLHdCQUFlcUMsYUFBYSxLQUFLTixhQUFhLENBQUNDLGVBQWUsR0FBR3NCLGVBQWUsR0FBR3FCLE1BQU0sQ0FBQ0MsUUFBUTs7OztBQzFEbEc7O0FBR0E7QUFDQSxNQUFNO0FBQUVDLEVBQUFBLE9BQU8sRUFBRUMsZ0JBQUFBO0FBQWlCLENBQUMsR0FBR0MsT0FBTyxDQUFDQyxVQUFVLENBQUE7O0FBRXhEO0FBQ0EsTUFBTUMsYUFBNEIsR0FBR0MsT0FBQSxDQUFPLDBDQUEwQyxDQUFDLENBQUE7QUFDdkYsTUFBTUMsYUFBNEIsR0FBR0QsT0FBQSxDQUFPLDBDQUEwQyxDQUFDLENBQUE7QUFFdkYsTUFBTUUsTUFBTSxDQUFDO0FBQ1QsRUFBQSxPQUFPLEdBQWVMLE9BQU8sQ0FBQ00sWUFBWSxDQUFDO0FBQ3ZDQyxJQUFBQSxNQUFNLEVBQUVDLHVCQUFBLENBQUExRyxRQUFBLEdBQUFRLG9CQUFBLENBQUFQLFNBQUEsR0FBQTBHLE1BQU0sQ0FBQ3BGLFFBQVEsQ0FBQyxDQUFBLENBQUFuQyxJQUFBLENBQUFhLFNBQUEsRUFDZixDQUFDO01BQUVyQixJQUFJO0FBQUVDLE1BQUFBLEtBQUFBO0FBQU0sS0FBQyxLQUFLLENBQUVELElBQUksRUFBRUMsS0FBSyxDQUFFLENBQUMsQ0FBQSxDQUFBTyxJQUFBLENBQUFZLFFBQUEsRUFDbEMsQ0FBQyxHQUFJbkIsS0FBSyxDQUFFLEtBQUssT0FBT0EsS0FBSyxLQUFLLFFBQVEsQ0FBQyxDQUNsRCtILFNBQVMsRUFBRSxDQUNYQyxLQUFLLEVBQUU7SUFFWmhJLEtBQUssRUFBRzJFLGFBQWEsS0FBS04sYUFBYSxDQUFDRSxjQUFjLEdBQUcsTUFBTSxHQUFHLFNBQWlDO0FBRW5HK0MsSUFBQUEsVUFBVSxFQUFFLENBQ1IsSUFBSUYsZ0JBQWdCLENBQUM7QUFBRWhFLE1BQUFBLE1BQU0sRUFBRTZFLFlBQUFBO0FBQWEsS0FBQyxDQUFDLENBQ2pEO0FBRURDLElBQUFBLFdBQVcsRUFBRSxLQUFBO0FBQ2pCLEdBQUMsQ0FBQyxDQUFBO0FBRUYsRUFBQSxPQUFPLEdBQVdqQixNQUFNLENBQUNyQixpQkFBZSxFQUFFO0lBQ3RDdUMsTUFBTSxFQUFFLElBQUlDLFdBQVcsQ0FBQztBQUFFQyxNQUFBQSxVQUFVLEVBQUUsSUFBQTtBQUFLLEtBQUMsQ0FBQyxDQUFDQyxFQUFFLENBQUMsTUFBTSxFQUFHcEgsSUFBWSxJQUFLO0FBQ3ZFLE1BQUEsSUFBSSxDQUFDcUgsR0FBRyxDQUFDLE1BQU0sRUFBRUMscUJBQUEsQ0FBQXRILElBQUksQ0FBQVgsQ0FBQUEsSUFBQSxDQUFKVyxJQUFVLENBQUMsQ0FBQyxDQUFBO0tBQ2hDLENBQUE7QUFDTCxHQUFDLENBQUMsQ0FBQTtFQUVNdUgsV0FBV0EsQ0FBQ0MsUUFBOEIsRUFBRTtJQUNoRCxJQUFJQSxRQUFRLEtBQUtqQixhQUFhLEVBQUU7QUFDNUIsTUFBQSxNQUFNLElBQUlrQixjQUFjLENBQUMsZ0RBQWdELENBQUMsQ0FBQTtBQUM5RSxLQUFBO0FBQ0osR0FBQTtFQUVBLFdBQWtCQyxRQUFRQSxHQUFXO0lBQ2pDLElBQUksSUFBSSxLQUFLbEIsTUFBTSxFQUFFO0FBQ2pCLE1BQUEsTUFBTSxJQUFJaUIsY0FBYyxDQUFDLGlDQUFpQyxDQUFDLENBQUE7QUFDL0QsS0FBQTtJQUVBLElBQUlFLE9BQU8sQ0FBQ0MsY0FBYyxDQUFDdkIsYUFBYSxFQUFFRyxNQUFNLENBQUMsRUFBRTtBQUMvQyxNQUFBLE9BQU9tQixPQUFPLENBQUNFLGNBQWMsQ0FBQ3hCLGFBQWEsRUFBRUcsTUFBTSxDQUFDLENBQUE7QUFDeEQsS0FBQTtBQUVBLElBQUEsTUFBTWtCLFFBQVEsR0FBRyxJQUFJbEIsTUFBTSxDQUFDRCxhQUFhLENBQUMsQ0FBQTtJQUUxQyxJQUFJO0FBQ0EsTUFBQSxPQUFPbUIsUUFBUSxDQUFBO0FBQ25CLEtBQUMsU0FBUztNQUNOQyxPQUFPLENBQUNHLGNBQWMsQ0FBQ3pCLGFBQWEsRUFBRXFCLFFBQVEsRUFBRWxCLE1BQU0sQ0FBQyxDQUFBO0FBQzNELEtBQUE7QUFDSixHQUFBOztBQUVBO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUdJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFHSTtBQUNKO0FBQ0E7QUFDQTtBQUNBOztFQUdXYSxHQUFHQSxDQUFDLEdBQUdVLElBQVcsRUFBd0I7QUFDN0MsSUFBQSxNQUFNQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQTtBQUMzQixJQUFBLE1BQU1qQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQTtBQUUzQixJQUFBLFFBQVEsSUFBSTtBQUNaLE1BQUEsS0FBTWdDLElBQUksQ0FBQ3BILE1BQU0sSUFBSSxDQUFDLElBQUlvSCxJQUFJLENBQUMsQ0FBQyxDQUFDLFlBQVlFLGVBQVcsSUFBSUYsSUFBSSxDQUFDLENBQUMsQ0FBQyxZQUFZRyxjQUFZO0FBQUcsUUFBQTtBQUMxRixVQUFBLE1BQU0sQ0FBRXRELE9BQU8sRUFBRUMsUUFBUSxDQUFFLEdBQUdrRCxJQUFxQyxDQUFBO0FBRW5FLFVBQUEsT0FBT0ksU0FBTyxDQUFDQyxZQUFZLENBQU9DLFFBQVEsSUFBSXRDLE1BQU0sQ0FBQ25CLE9BQU8sRUFBRUMsUUFBUSxFQUFFd0QsUUFBUSxDQUFDLENBQUMsQ0FBQTtBQUN0RixTQUFBO01BRUEsS0FBTU4sSUFBSSxDQUFDcEgsTUFBTSxJQUFJLENBQUMsSUFBSW9ILElBQUksQ0FBQyxDQUFDLENBQUMsWUFBWWpNLEtBQUs7QUFBRyxRQUFBO0FBQ2pELFVBQUEsTUFBTSxDQUFFc0UsS0FBSyxFQUFFLEdBQUdKLElBQUksQ0FBRSxHQUFHK0gsSUFBMkIsQ0FBQTs7QUFFdEQ7QUFDQUMsVUFBQUEsTUFBTSxDQUFDWCxHQUFHLENBQUMsT0FBTyxFQUFFakgsS0FBSyxDQUFDRSxPQUFPLEVBQUVGLEtBQUssRUFBRSxHQUFHSixJQUFJLENBQUMsQ0FBQTtBQUVsRCxVQUFBLE9BQU9LLFNBQVMsQ0FBQTtBQUNwQixTQUFBO0FBRUEsTUFBQTtBQUFTLFFBQUE7VUFDTCxNQUFNLENBQUV2QixLQUFLLEVBQUV3QixPQUFPLEVBQUUsR0FBR04sSUFBSSxDQUFFLEdBQUcrSCxJQUFpRCxDQUFBOztBQUVyRjtVQUNBQyxNQUFNLENBQUNYLEdBQUcsQ0FBQ3ZJLEtBQUssRUFBRXdCLE9BQU8sRUFBRSxHQUFHTixJQUFJLENBQUMsQ0FBQTtBQUVuQyxVQUFBLE9BQU9LLFNBQVMsQ0FBQTtBQUNwQixTQUFBO0FBQ0EsS0FBQTtBQUNKLEdBQUE7QUFDSixDQUFBO0FBRUEsYUFBZW1HLE1BQU0sQ0FBQ2tCLFFBQVE7Ozs7In0=
|